CHƯƠNG IV: HỆ THỐNG VÀO RA
4.2. Các phương pháp điều khiển vào ra
- Vào ra bằng chương trình
- Vào ra bằng ngắt
- Truy cập bộ nhớ trực tiếp DMA
4.2.1. Vào ra bằng chương trình – polling
91
- Sử dụng lệnh vào ra trong chương trình đểtrao đổi dữ liệu với cổng vào ra
- Khi CPU thực hiện chương trình gặp lệnh vào ra thì CPU điều khiển trao đổi
dữ liệu với cổng vào ra.
- CPU và thiết bị ngoại vi chỉ trao đổi dữ liệu khi có tín hiệu móc nối báo sẵn
sàng (Ready/ACK) của các phía. Sau khi máy tính khởi động thiết bị ngoại vi (khối
ghép nối), máy tính luôn chờ và kiểm tra trạng thái sẵn sàng của thiết bị ngoại vi gồm
các bước:
(1) Đọc thông tin về trạng thái sẵn sàng của thiết bị ngoại vi
(2) Kiểm tra: Nếu thiết bị ngoại vi sẵn sàng thì trao đổi dữ liệu, ngược lại thì về bước (1) để kiểm tra lại.
Phương pháp này được dùng khi tốc độ trao đổi dữ liệu của các bên (CPU và thiết bị ngoại vi) rất không bằng nhau.
Nhận xét:
92
- Tốn thời gian CPU vì phải kiểm tra trạng thái sẵn sàng của thiết bị ngoại vi, việc kiểm tra này do CPU đảm nhiệm nên giảm hiệu suất của hệ thống.
- Phù hợp với những hệ thống không đòi hỏi cao về tốc độ trao đổi dữ liệu, hệ
thống có ít thiết bị ngoại vi.
4.2.2. Vào ra bằng phương pháp ngắt
Bình thường máy tính thực hiện một chương trình (công việc) nào đó. Khi thiết bị ngoại vi có yêu cầu trao đổi dữ liệu, nó sẽ gửi tín hiệu yêu cầu ngắt CPU dừng công việc hiện tại, phục vụ cho trao đổi dữ liệu thông qua tín hiệu yêu cầu ngắt IRQ
(Interrupt Request) tác động vào chân INTR (chân tiếp nhận yêu cầu ngắt) của CPU.
CPU nhận được yêu cầu ngắt, nếu chấp nhận nó sẽ đưa ra xung INTA xác nhận tới
thiết bị ngoại vi, sau đó CPU tìm chương trình con phục vụ ngắt tương ứng số hiệu
ngắt và thực hiện nó. Đó chính là chương trình con thực hiện trao đổi(vào/ra) dữ liệu
do thiết bị ngoại vi yêu cầu. Khi trao đổi xong (ISR – Interrupt Service Routine) kết
93
4.2.3. Vào ra sử dụng DMA
Trong các phương pháp vào/ra dữ liệu bằng chương trình kể trên, dữ liệu phải
được chuyển qua lại từ bộ nhớđến CPU rồi đến thiết bị ngoại vi hoặc ngược lại bằng việc thực hiện từng lệnh (MOV, IN hoặc OUT) của CPU với sự tham gia của các thanh ghi. Dữ liệu của mỗi lần vận chuyển là byte hoặc word (2 byte), tốc độ trao đổi dữ liệu phụ thuộc rất nhiều vào tốc độ thực hiện các lệnh trao đổi dữ liệu kể trên. Nói chung, tốc độ trao đổi dữ liệu là không thể nhanh được. Với các thiết bị làm việc với bộ nhớ khối như màn hình, ổđĩa, ... yêu cầu trao đổi cả mảng dữ liệu thì phương pháp
vào/ra dữ liệu bằng chương trình là không phù hợp. Khi đó người ta nghĩ đến việc
điều khiển dữ liệu vào/ra trực tiếp từ bộ nhớ đến thiết bị ngoại vi hoặc ngược lại mà
không thông qua CPU bằng những lệnh trao đổi dữ liệu như MOV, IN hoặc
OUT. Đó là phương pháp vào/ra dữ liệu bằng cách truy nhập trực tiếp bộ nhớ (DMA
– Direct Memory Access). Trong trường hợp này CPU trao quyền điều khiển cho một mạch phần cứng phụ điều khiển việc vào/ra dữ liệu, đó là DMAC– DMA Controller
Các thành phần của DMAC
- Thanh ghi dữ liệu: chứa dữ liệu trao đổi.
- Thanh ghi địa chỉ: chứa địa chỉ của ngăn nhớ dữ liệu - Bộđếm dữ liệu: chứa số từ dữ liệu cần trao đổi
94
- Khối logic điều khiển: điều khiển hoạt động của DMAC
Hoạt động của DMA
Khi cần vào ra dữ liệu thì CPU nhờ DMAC tiến hành vào ra dữ liệu với thông tin
cho biết như sau:
- Địa chỉ thiết bị vào ra
- Địa chỉđầu của mảng nhớ chứa dữ liệu và DMAC nạp thanh ghi địa chỉ
- Số từ dữ liệu cần truyền và DMAC nạp vào bộđếm dữ liệu
- CPU sẽ đi thực hiện việc khác
- DMAC điều khiển việc trao đổi dữ liệu sau khi truyền một từ dữ liệu thì nội
dung thanh ghi địa chỉ tăng lên và nội dung bộ đếm dữ liệu giảm xuống một đơn
vị.
- Khi bộđếm bằng dữ liệu bằng 0, DMAC gởi tín hiệu ngắt CPU để báo kết thúc
DMA
Các kiểu thực hiện DMA
- DMA truyền theo khối: DMAC sử dụng BUS để truyền cả khối dữ liệu
(CPU chuyển nhượng BUS cho DMAC)
- DMA lấy chu kỳ: DMAC cưỡng bức CPU treo tạm thời từng chu kỳBUS để
95
- DMA trong suốt: DMAC nhận biết những chu kỳ nào CPU không sử dụng
BUS thì chiếm BUS đểtrao đổi dữ liệu (DMAC lấy lén chu kỳ)
Đặc điểm DMA
- CPU không tham gia trong quá trình trao đổi dữ liệu
- DMAC điều khiển trao đổi dữ liệu giữa bộ nhớ chính và Module vào ra với tốc
độ nhanh.
- Phù hợp với yêu cầu trao đổi mảng dữ liệu có kích thước lớn.
4.3. Ghép nối thiết bị ngoại vi
Các kiểu nối ghép vào ra
- Nối ghép song song
- Nối ghép nối tiếp
Nối ghép song song
- Truyền các bit dữ liệu được truyền song song trong cùng một thời điểm trên
nhiều đường dây.
- Tốc độ truyền cao
- Cần đường truyền song song để tải các bit dữ liệu cùng đi, điều đó khiến
phương pháp này tốn kém về dây dẫn.
Điển hình của phương pháp này cổng máy in 25 chân LPT.
Nối ghép nối tiếp
- Từng Bit của dữ liệu lần lượt được gửi đi trên một đường truyền duy nhất
- Dữ liệu trong máy tính thường ở dạng 8bit, 16bit,… vì thế cần có bộ chuyển
đổi từ song song sang nối tiếp.
- Tốc độ truyền của phương pháp này chậm vì truyền tường bit trên một đường dây
- Ưu điểm là kinh tế, không tốn dây, có thể dùng để truyền đi xa.
- Các cấu hình ghép nối:
+ Điểm - điểm (point to point): Qua một cổng vào ra chỉ có thể ghép một thiết
96
+ Điểm - đa điểm (Point to multipoint): Thông qua một cổng vào ra ghép nhiều
thiết bị vào ra. Ví dụ: SCSI(7,15), USB (127),…
4.4. Các cổng vào ra thông dụng trên máy tính 4.4.1. Cổng song song LPT