Bài 11: Hệ thống nhập xuất Phạm Tuấn Sơn ptson@fit.hcmus.edu.vn Thiết bị nhập xuất • Một số thiết bị nhập xuất – Chuột, hình, bàn phím, máy in, đĩa cứng, loa, modem, cạc mạng, … • Vai trị thiết bị nhập xuất – Giao tiếp thành phần xử lý máy tính với đối tượng bên ngồi giúp đối tượng cung cấp yêu cầu liệu cho thành phần xử lý • Một số tiêu chí phân loại thiết bị nhập xuất – Chức • Nhập – Xuất – Lưu trữ – Đối tượng tương tác • Người dùng – Thiết bị khác – Tốc độ nhập xuất Một số thiết bị nhập xuất • Tốc độ nhập xuất: số byte truyền giây Thiết bị Keyboard Mouse Voice output Floppy disk Laser Printer Magnetic Disk Wireless Network Graphics Display Wired LAN Network Chức Đối tượng Input Input Output Storage Output Storage I or O Output I or O Human Human Human Machine Human Machine Machine Human Machine Tốc độ (KBytes/s) 0.01 0.02 5.00 50.00 100.00 10,000.00 10,000.00 30,000.00 125,000.00 Tổ chức kết nối thiết bị nhập xuất • Nhiều thiết bị nhập xuất với tốc độ nhập xuất chênh lệch nhau, chênh lệch với tốc độ truy xuất CPU – Bộ xử lý 1GHz xử lý tỉ lệnh truy xuất nhớ giây, tương đương tốc độ truy xuất liệu 4,000,000 KB/s • Do đó, hệ thống máy tính thường sử dụng nhiều cấp độ bus khác để kết nối nhóm thiết bị nhập xuất – PCI, PCIe, AGP, USB, IDE, SATA • Bus thường gồm phần: bus địa chỉ, bus liệu, bus điều khiển Truy xuất thiết bị nhập xuất (1/2) • Bộ xử lý truy xuất thiết bị nhập xuất cách ? – Port-mapped: Mỗi thiết bị gán vài port Truy xuất vào port tương ứng với truy xuất thiết bị Trong lệnh xử lý thường phải có có số lệnh chuyên biệt để thao tác với thiết bị nhập xuất • Ví dụ: lệnh IN OUT kiến trúc x86 – Memory-mapped: Mỗi thiết bị ánh xạ vào vài vùng nhớ Truy xuất vào vùng nhớ tương ứng với truy xuất thiết bị • Ví dụ: dùng lệnh lw sw để truy xuất thiết bị kiến trúc MIPS Truy xuất thiết bị nhập xuất (2/2) • Bộ xử lý truy xuất thiết bị nhập xuất ? • chế giao tiếp CPU thiết bị nhập xuất – Polling (còn gọi Programmed I/O) – Interrupt-driven – Direct memory access (DMA) Issue read command to I/O module CPU I/O Read status of I/O module I/O CPU Polling • CPU điều khiển tồn q trình nhập xuất – Kiểm tra tình trạng thiết bị – Gửi yêu cầu truy xuất – Truyền liệu Not ready Check status Error Condition Ready Read word from I/O module • CPU phải chờ suốt thời gian truy xuất thiết bị Write word into memory No I/O CPU CPU Memory Done ? Yes Next instruction Issue read command to I/O module Interrupt-driven • CPU khơng phải chờ suốt q trình truy xuất thiết bị • Chi phí xử lý ngắt Read status of I/O module Check status Memory (1) I/O interrupt (2) save PC (3) jump to interrupt service routine (5) (4) perform transfer add sub and or Interrupt I/O CPU Error Condition Ready Read word from I/O module user program Write word into memory read store jr CPU I/O Do something else interrupt service routine No I/O àCPU CPU Memory Done ? Yes Next instruction DMA • Khi truyền liệu lớn, phải ngắt CPU nhiều lần (trên đơn vị truyền liệu) • Direct memory access – Hệ thống hỗ trợ thành phần DMA Controller để giao tiếp với thiết bị cần truy xuất khối lượng lớn liệu – Chỉ ngắt CPU lần cho yêu cầu truy xuất liệu Issue read block command to I/O module Read status of DMA module Next instruction CPU DMA Do something else Interrupt DMA CPU Tham khảo • Phần 8.4 8.5, P&H 10 ... Memory-mapped: Mỗi thiết bị ánh xạ vào vài vùng nhớ Truy xuất vào vùng nhớ tương ứng với truy xuất thiết bị • Ví dụ: dùng lệnh lw sw để truy xuất thiết bị kiến trúc MIPS Truy xuất thiết bị nhập... bị gán vài port Truy xuất vào port tương ứng với truy xuất thiết bị Trong lệnh xử lý thường phải có có số lệnh chuyên biệt để thao tác với thiết bị nhập xuất • Ví dụ: lệnh IN OUT kiến trúc x86... thiết bị nhập xuất – Chuột, hình, bàn phím, máy in, đĩa cứng, loa, modem, cạc mạng, … • Vai trị thiết bị nhập xuất – Giao tiếp thành phần xử lý máy tính với đối tượng bên ngồi giúp đối tượng cung