• Cung cấp một phương pháp để chuyển giao thông tin giữa bộ lưu trữnội bộ bộ nhớ và các thanh ghi CPU và các thiết bị I/O bên ngoài • Giải quyết sự chênh lệch giữa các thiết bị máy tính
Trang 1KIẾN TRÚC MÁY TÍNH
Chương VI: Tổ chức vào ra
Giảng viên: TS Nguyễn Quý Sỹ
Email: synq@ptit.edu.vn
Trang 21 Các thiết bị ngoại vi
2 Giao diện Vào/Ra
3 Chuyển giao dữ liệu không đồng bộ
4 Các chế độ chuyển giao
5 Bộ xử lý vào-ra
Nội dung
Trang 3trung tâm và môi trường bên ngoài
Trang 51 Các thiết bị ngoại vi
2 Giao diện Vào/Ra
3 Chuyển giao dữ liệu không đồng bộ
4 Các chế độ chuyển giao
5 Bộ xử lý vào-ra
Trang 6• Cung cấp một phương pháp để chuyển giao thông tin giữa bộ lưu trữ
nội bộ (bộ nhớ và các thanh ghi CPU) và các thiết bị I/O bên ngoài
• Giải quyết sự chênh lệch giữa các thiết bị máy tính và các thiết bị
ngoại vi
– Ngoại vi-Các thiết bị cơ điện
– CPU hoặc bộ nhớ-Thiết bị điện tử
• Tốc độ chuyển giao dữ liệu
– Ngoại vi - thường chậm hơn
– CPU hoặc bộ nhớ-Thường nhanh hơn ngoại vi
• Có thể cần tới một số kiểu cơ chế đồng bộ
– Khối thông tin
• Ngoại vi – Byte, Khối, …
• CPU hoặc bộ nhớ – Từ
– Biểu diễn dữ liệu có thể khác nhau
2 Giao diện vào ra
Trang 7• Giao diện
– Giải mã địa chỉ thiết bị (mã thiết bị)
– Giải mã lệnh (tác vụ)
– Cung cấp các tín hiệu cho bộ điều khiển ngoại vị
– Đồng bộ luồng dữ liệu và giám sát tốc độ chuyển giao dữ liệu
giữa ngoại vi và CPU hoặc bộ nhớ
Processor
Interface
Keyboard and display terminal
Magnetic tape Printer
Interface Interface Interface
Data Address Control
Magnetic disk I/O bus
Trang 82 Giao diện vào ra-Kết nối của I/O Bus
Trang 9• Kết nối của bus I/O bus tới CPU
I/O bus
Device address
Command decoder Function code
Data lines
Buffer register
Peripheral register
Output peripheral device and controller
AD = 1101 Interface
Logic
I/O bus
Op.
code
Device address
Function code
Accumulator register
Computer I/O control
Sense lines Data lines
Function code lines Device address lines
CPU
Trang 10• Bus bộ nhớ là để cho chuyển giao các thông tin giữa CPU
và MM
và thiết bị I/O thông qua giao diện I/O
cho cả hai khối bộ nhớ và khối giao diện I/O
– Sử dụng một bus chung nhưng các đường điều khiển tách biệt
cho từng chức năng
– Sử dụng một bus chung với các đường điều khiển chung cho cả
hai chức năng
nhớ
Trang 11• Một số máy tính sử dụng hai bus tách riêng, một trao đổi
thông tin với bộ nhớ và một với các giao diện I/O
– Trao đổi thông tin giữa CPU và tất cả các khối giao diện là qua
một bus I/O chung
– Một giao diện nối tới một thiết bị ngoại vi có thể có một số thanh
ghi dữ liệu, 1 thanh ghi điều khiển và 1 thanh ghi trạng thái
– Một lệnh được chuyển tới ngoại vi bằng cách gửi tới một thanh
ghi giao diện thích hợp
– Không cần tới các đường mã chức năng và đường cảm ứng
(chuyển giao thông tin điều khiển dữ liệu và thông tin trạng thái luôn qua một bus I/O chung)
Trang 12• I/O riêng biệt
– Tách riêng các đưòng điều khiển đọc/ghi I/O ngoài các đường
điều khiển đọc/ghi bộ nhớ
– Tách riêng không gian địa chỉ bộ nhớ và không gian địa chỉ I/O
– Các lệnh vào và ra riêng biệt
– Một tập duy nhất các đường điều khiển đọc/ghi (không tách
riêng giữa chuyển giao bộ nhớ và I/O
– Các địa chỉ bộ nhớ và I/O sử dụng chung không gian địa chỉ ->
giảm được khoảng địa chỉ bộ nhớ có thể sử dụng
– Lệnh vào hoặc ra không xác định->các lệnh tương tự tham chiếu
bộ nhớ có thể sử dụng để chuyển giao I/O
– Khá linh hoạt trong các tác vụ giám sát I/O
nhớ (t)
Trang 13• I/O riêng biệt
– Tách riêng các đưòng điều khiển đọc/ghi I/O ngoài các đường
điều khiển đọc/ghi bộ nhớ
– Tách riêng không gian địa chỉ bộ nhớ và không gian địa chỉ I/O
– Các lệnh vào và ra riêng biệt
– Một tập duy nhất các đường điều khiển đọc/ghi (không tách
riêng giữa chuyển giao bộ nhớ và I/O
– Các địa chỉ bộ nhớ và I/O sử dụng chung không gian địa chỉ ->
giảm được khoảng địa chỉ bộ nhớ có thể sử dụng
– Lệnh vào hoặc ra không xác định->các lệnh tương tự tham chiếu
bộ nhớ có thể sử dụng để chuyển giao I/O
– Khá linh hoạt trong các tác vụ giám sát I/O
Trang 142 Giao diện I/O (t)
I/O write
CS RS1 RS0 RD WR
Timing and Control
Bus buffers
Bidirectional data bus
Port A register
Port B register
Control register
Status register
Trang 15• Giao diện có thể lập trình
– Thông tin trong mỗi cổng có thể được ấn định một ý nghĩa phụ
thuộc vào chế độ hoạt động của thiết bị I/O
→ Port A = Data; Port B = Command; Port C = Status
– CPU khởi tạo (nạp) từng cổng bằng cách chuyển một byte vào
thanh ghi điều khiển
→ Cho phép CPU có thể định nghĩa chế độ hoạt động của mỗi cổng
→ Cổng có thể lập trình được: Nhờ thay đổi các bit trong thanh ghi
điều khiển, nó có thể thay đổi các đặc tính giao diện
Trang 16• ISA - Industrial Standard Architecture:
– Khe gắn card mở rộng trên Mainboard
– Card mở rộng chuẩn ISA: Card âm thanh, card màn hình và
các thiết bị ngoại vi khác.
– Băng thông của ISA là 8-16 bits, tần số 8-10Mhz.
– ISA là chuẩn kênh truyền mở rộng chính trên máy tính IBM AT
nên thường được gọi là "kênh AT"
– Kênh truyền 32-bit (máy PS/2, RS/6000 và một số đời của
ES/9370)
– Hỗ trợ 15 mức Bus Mastering cho phép truyền dữ liệu từ tốc độ
20Mbytes/s đến 80 Mbytes/s
– Vào cuối năm 1996, IBM ngưng hỗ trợ công nghệ MCA và
chuyển qua sử dụng PCI.
2 Giao diện I/O-Một số giao diện điển hình
Trang 17• EISA - Extended ISA:
– Phiên bản mở rộng của kênh truyền ISA (Kênh truyền AT - AT
bus) 16-bit thành kênh truyền 32-bit
– Một sự lựa chọn 32-bit thay thế cho MCA
– Card mở rộng loại ISA có thể gắn vào khe gắn EISA dễ dàng do
cả hai cùng sử dụng tốc độ 8-10Mhz
– Chuẩn EISA sau này được thay thế bởi chuẩn PCI.
– Được phát triển bởi VESA và sử dụng phổ biến ở các đời máy
486
– VL-Bus là loại kênh truyền 32-bit, hỗ trợ bus mastering và họat
động ở tốc độ 40Mhz.
Trang 18• EISA - Extended ISA:
– Phiên bản mở rộng của kênh truyền ISA (Kênh truyền AT - AT
bus) 16-bit thành kênh truyền 32-bit
– Một sự lựa chọn 32-bit thay thế cho MCA
– Card mở rộng loại ISA có thể gắn vào khe gắn EISA dễ dàng do
cả hai cùng sử dụng tốc độ 8-10Mhz
– Chuẩn EISA sau này được thay thế bởi chuẩn PCI.
– Được phát triển bởi VESA và sử dụng phổ biến ở các đời máy
Trang 19• PCI - Peripheral Component Interconnect
– Là một loại kênh ngoại vi trên Mainboard -Intel thiết kế vào
năm 1993
– Dùng để gắn các card mở rộng cung cấp các đường truyền tốc
độ cao giữa CPU và các thiết bị ngoại vi (màn hình, mạng, đĩa cứng ngoài )
– Cung cấp khả năng "cắm và chạy" ( plug and play ) là khả năng
tự nhận dạng và cài đặt các card PCI rất tốt
– PCI cho phép chia sẻ "tài nguyên" IRQ (Interrupt
Request-Ngắt hệ thống) giữa các card PCI với nhau
– Đặc điểm này rất quan trọng trong khi các card ngoại vi phục
vụ nhiều thiết bị ngoại vi và ứng dụng ngày càng nhiều còn số lượng các IRQ được hỗ trợ thì lại giới hạn.
– Thiết bị PCI hoạt động ở tần số 33Mhz với các đường truyền dữ
liệu có băng thông 32 hoặc 64 bits (PCI version 2.1 họat động ở xung nhịp 66Mhz).
Trang 20• AGP - Accelerated Graphics Port
– Chuẩn của khe gắn card mở rộng chuyên dùng cho card màn
hình tốc độ cao
– Cung cấp kết nối trực tiếp giữa card màn hình và bộ nhớ
– Có màu nâu, ngắn hơn và được thiết kế hơi thụt vào một chút so
với khe gắn PCI
– AGP có băng thông 32-bits
• Chuẩn AGP nguyên thủy (AGP 1X) cung cấp tốc độ truyền dữ
Trang 21• CNR-Communications and Networking Riser
– Là chuẩn khe gắn cho phép gắn bổ xung mạch hỗ trợ các chức năng
như âm thanh (audio), modem (communications) và mạng (networking).
– Là một chuẩn khe gắn cho phép gắn các card mở rộng chứa mạch xử lý
âm thanh (audio) và bộ điều biến (modem) lên Mainboard
– Được thiết kế bởi hãng Intel,
– AMR cung cấp khe cắm 46-pin giao diện kỹ thuật số (digital interface)
lên Mainboard
– Card mở rộng chuẩn AMR hỗ trợ tất cả các chức năng xử lý tương tự
(analog functions - codecs) theo yêu cầu xử lý âm thanh và truyền thông dạng tương tự
– Cùng với chuẩn cắm CNR, AMR là các lựa chọn cho các nhà sản xuất
Mainboard Hiện nay, AMR và CNR chưa hỗ trợ khả năng tương thích rộng rãi như các chuẩn khe cắm công nghiệp khác trước đây.
Trang 22• USB - Universal Serial Bus:
– Giao diện kết nối phần cứng dùng cho các thiết bị ngoại vi có tốc
độ thấp như: keyboard, mouse, cần chỉnh hướng (dùng cho game), máy in và các thiết bị điện thoại
– Nó còn hỗ trợ video kỹ thuật số như MPEG-1 và MPEG-2
– USB 1.1 có băng thông (bandwidth) lớn nhất là 12 Mbits/sec
(tương đương với 1.5 Mbytes/sec) và có thể gắn được tới 127 thiết bị
– Các thiết bị USB được mắc nối tiếp tạo thành chuỗi thiết bị
USB
– Các thiết bị cần tốc độ cao thì sử dụng tòan bộ băng thông còn
những thiết bị tốc độ thấp thì có thể truyền dữ liệu ở các kênh truyền con là 1.5 Mbits/sec
– Khả năng hoán đổi nóng của USB cho phép mọi thiết bị được
gắn vào hoặc tháo ra mà không cần phải tắt máy
2 Giao diện I/O-Một số giao diện điển hình (t)
Trang 23• USB - Universal Serial Bus: (t)
– Các cổng USB đã có trong các máy tính cá nhân từ năm 1997, và
Windows 98 hỗ trợ đầy đủ cho giao diện này
– USB 2.0 tăng dung lượng đột ngột lên đến 480 Mbits/sec Nó
được xem là mạch ghép nối tuần tự cho tương lai và là "đối thủ" của chuẩn giao tiếp FireWire (IEEE1394).
– Các thiết bị USB có thể được gắn trực tiếp vào ổ cắm 4-chân
(4-pin socket) trên PC, gắn vào hub có nhiều cổng được nối vào PC hoặc gắn vào thiết bị có chức năng như là hub cho các thiết bị khác.
– Phân phối 0.5 amps (500 milliamps) cho mỗi cổng
– Bổ sung nguồn: sử dụng adapter nguồn AC rời
– Hub (USB) có thể lấy nguồn điện từ đường truyền USB (gọi là
Bus powered - được cung cấp nguồn qua kênh truyền dữ liệu),
Trang 241 Các thiết bị ngoại vi
2 Giao diện Vào/Ra
3 Chuyển giao dữ liệu không đồng bộ
4 Các chế độ chuyển giao
5 Bộ xử lý vào-ra
Nội dung
Trang 25• Các hoạt động đồng bộ và không đồng bộ
– Đồng bộ - Tất cả các thiết bị lấy thông tin thời gian từ một CLK
chung
– Chuyển giao dữ liệu không đồng bộ giữa hai khối độc lập yêu
cầu các tín hiệu điều khiển phải phát đi giữa các khối thông tin
để chỉ thị dữ liệu đang được phát đi
– Strobe pulse (xung nháy): Một xung strobe được cung cấp bởi
một khối để chỉ thị khối khác khi chuyển giao xảy ra
– Bắt tay: Một tín hiệu điều khiển được cung cấp cùng với dữ liệu
Trang 26• Sử dụng một đường điều khiển duy nhất cho mỗi lần chuyển giao
• Strobe có thể được kích hoạt hoặc bằng khối nguồn hoặc khối đích
3 Chuyển giao dữ liệu không đồng bộ-STROBE
Source
unit
Destination unit
Destination unit
Trang 27• Các phương pháp Strobe-hạn chế
• Khối nguồn khởi tạo chuyển giao không có cách nào để biết được
khối đích đã thực sự nhận được dữ liệu hay không
– Đích khởi tạo
• Khối đích khởi tạo chuyển giao không có cách nào để biết được
nguồn đã thực sự đặt dữ liệu lên bus hay không
một tín hiệu điều khiển thứ hai để cung cấp một phản hồi (Reply) cho khối khởi tạo ra chuyển giao
Trang 28• Cho phép trễ tuỳ ý từ trạng thái này sang trạng thái khác
liệu của nó
cao do hoàn toàn thành công chuyển giao dữ liệu dựa trên
sự tham gia tích cực bởi cả hai khối
hoàn thành
-> Có thể phát hiện được bằng các cơ chế timeout
khởi tạo chuyển giao
Trang 29Sequence of Events
Place data on bus.
Enable data valid.
Disable data valid.
Invalidate data on bus.
Source unit
Destination unit Data accepted
Data bus
Data valid
Valid data Data valid
Sequence of Events
Place data on bus.
Enable data valid.
Disable data valid.
Invalidate data on bus.
Source unit
Destination unit Data accepted
Data bus
Data valid
Valid data Data valid
Data accepted
Trang 30khởi tạo chuyển giao (t)
Block Diagram
Timing Diagram
Source unit
Destination unit
Data bus Ready for data Data valid
Sequence of Events
Place data on bus.
Enable data valid.
Ready to accept data.
Enable ready for data.
Disable data valid.
Invalidate data on bus (initial state).
Accept data from bus.
Disable ready for data.
Ready for data
Destination unit
Data bus Ready for data Data valid
Sequence of Events
Place data on bus.
Enable data valid.
Ready to accept data.
Enable ready for data.
Disable data valid.
Invalidate data on bus (initial state).
Accept data from bus.
Disable ready for data.
Ready for data
Data valid
Trang 31• Bốn dạng chuyển giao
– Chuyển giao nối tiếp không đồng bộ
– Chuyển giao nối tiếp đồng bộ
Trang 32• Chuyển giao nối tiếp không đồng bộ
– Sử dụng các bit đặc biệt chèn vào 2 đầu của mã ký tự
– Mỗi ký tự chưa 3 phần: Start bit; Data bits; Stop bits.
– Khi dữ liệu không có, đường được duy trì ở trạng thái 1 (trạng
thái rỗi)
– Khởi tạo truyền ký tự được phát hiện bởi Start Bit, luôn là 1 số
0
– Các bit ký tự luôn luôn theo sau Start Bit
– Sau kỹ tự cuối cùng, một Stop Bit được phát hiện khi đường trả
lạ trạng thái 1 ít nhất 1 lần
thông tin dự kiến
3 Chuyển giao không đồng bộ-N ối tiếp (t)
Trang 33• Giao diện trao đổi thông tin không đồng bộ thông thường
Bus buffers
Bidirectional
data bus
Transmitter register
Control register
Status register
Receiver register
Shift register
Transmitter control and clock
Receiver control and clock
Shift register
Transmit data
Transmitter clock
Receiver clock
Receive data
Trang 34• Thanh ghi phát
– Chấp nhận một byte dữ liệu (từ CPU)
– Chuyển tới một thanh ghi dịch để truyền nối tiếp
– Nhận thông tin nối tiếp vào một thanh ghi
– byte dữ liệu hoàn thành được gửi tới thanh ghi nhận
– Được dùng cho các cờ I/O và cho các lỗi ghi
– Định nghĩa tốc độ baud, số lượng bit trên mỗi ký tự
– Tạo ra và kiểm tra parity, và số lượng các bit dừng
3 Chuyển giao không đồng bộ- UART (t)
Trang 35• Dữ liệu vào và ra ở hai tốc độ khác nhau
đệm
giao không đồng bộ
Trang 363 Chuyển giao không đồng bộ-B ộ đệm FIFO (t)
4-bit register
S R
F F'
1 1
4-bit register
S R
F F'
2 2
4-bit register
S R
F F'
3 3
4-bit register
S R
F F'
4 4
F F
S R
F F'
S R
Data output
Output ready
Delete
Data input
Insert
Input ready
Master clear
Trang 371 Các thiết bị ngoại vi
2 Giao diện Vào/Ra
3 Chuyển giao dữ liệu không đồng bộ
4 Các chế độ chuyển giao
5 Bộ xử lý vào-ra
Trang 38• 3 chế độ chuyển giao dữ liệu giữa máy tính trung tâm
(CPU hoặc bộ nhớ) và các ngoại vi;
– I/O được điều khiển bằng chương trình
– I/O được điều khiển bằng ngắt
– Bộ xử lý (kênh) I/O
4 Chế độ chuyển giao
Trang 39• I/O được điều khiển bằng chương trình
Polling or Status Checking
Continue with program
= 0
= 1
yes no
CPU
Data bus Address bus I/O read I/O write
Interface Data register
Status register F
I/O bus Data valid Data accepted
I/O device
Trang 40• Bầu chọn (điều khiển I/O bằng chương trình) làm mất
thời gian quý giá của CPU
chuyển -> Ngắt.
liệu, nó tạo ra một yêu cầu ngắt cho CPU
đang thực hiện, rẽ nhánh tới thủ tục dịch vụ ngắt để xử lý chuyển giao dữ liệu, và sau đó chuyển trả về nhiệm vụ nó đang thực hiện trước đó
4.2 I/O kh ởi tạo ngắt
Trang 41– Các ngắt ưu tiên cao hơn có thể thực hiện các yêu cầu ngắt khi
máy tính đang phục vụ ngắt ưu tiên thấp hơn
– Sự ưu tiên được thiết lập theo thứ tự bầu chọn thiết bị (các
nguồn ngắt)
– Linh hoạt bởi vì được thiết lập bằng phần mềm
– Chi phí thấp vì nó cần phần cứng tối thiểu
Trang 42• Ngắt ưu tiên bằng phần cứng
– Yêu cầu một bộ quản ngắt ưu tiên, bộ quản lý ngắt chấp nhận
tất cả các yêu cầu ngắt để xác định yêu cầu ưu tiên cao nhất
– Nhanh vì nhận dạng yêu cầu ngắt có độ ưu tiên cao nhất được
nhận dạng bằng phần cứng
– Nhanh vì mỗi nguồn ngắt có một vector ngắt để truy cập trực
tiếp tới thủ tục dịch vụ ngắt của nó
4.2 I/O kh ởi tạo ngắt (t)