Bài giảng môn Kiến trúc máy tính - Chương 7: Hệ thống IO (Input Output System)
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng môn Kiến trúc máy tính - Chương 7: Hệ thống IO (Input Output System)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_mon_kien_truc_may_tinh_chuong_7_he_thong_io_input.ppt
Nội dung text: Bài giảng môn Kiến trúc máy tính - Chương 7: Hệ thống IO (Input Output System)
- Chương 7 Hệ thống IO (Input Output System)
- Nội dung • Tổng quan về hệ thống IO • Điều khiển IO • Nối ghép thiết bị ngoại vi • Các thiết bị ngoại vi thông dụng
- Tổng quan về hệ thống IO • Giới thiệu chung – Chức năng của hệ thống IO: Trao đổi thông tin giữa máy tính với thế giới bên ngoài – Các thao tác cơ bản: • Nhập dữ liệu (Input) • Xuất dữ liệu (Output) – Các thành phần chính: • Các thiết bị ngoại vi • Các mô-đun IO (IO module) – Tất cả các thiết bị ngoại vi đều chậm hơn CPU và RAM → Cần có các mô-đun IO để nối ghép các thiết bị ngoại vi với CPU và bộ nhớ chính
- Tổng quan về hệ thống IO • Cấu trúc cơ bản của hệ thống IO
- Tổng quan về hệ thống IO • Các thiết bị ngoại vi – Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính – Phân loại: • Thiết bị ngoại vi giao tiếp người-máy (người đọc): Bàn phím, Màn hình, Máy in, • Thiết bị ngoại vi giao tiếp máy-máy (máy đọc): Đĩa cứng, CDROM, USB, • Thiết bị ngoại vi truyền thông: Modem, Network Interface Card (NIC)
- Tổng quan về hệ thống IO • Tốc độ 1 số TBNV
- Tổng quan về hệ thống IO • Các thành phần của thiết bị ngoại vi – Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu giữa bên ngoài và bên trong máy tính – Bộ đệm dữ liệu: đệm dữ liệu khi truyền giữa mô-đun IO và thiết bị ngoại vi – Khối logic điều khiển: điều khiển hoạt động của thiết bị ngoại vi đáp ứng theo yêu cầu từ mô-đun IO
- Tổng quan về hệ thống IO • Chức năng của mô-đun IO: – Điều khiển và định thời – Trao đổi thông tin với CPU hoặc bộ nhớ chính – Trao đổi thông tin với thiết bị ngoại vi – Đệm giữa bên trong máy tính với thiết bị ngoại vi – Phát hiện lỗi của thiết bị ngoại vi
- Tổng quan về hệ thống IO • Không gian địa chỉ của CPU – Một số CPU quản lý duy nhất một không gian địa chỉ: • Không gian địa chỉ bộ nhớ: 2M địa chỉ – Một số CPU quản lý hai không gian địa chỉ tách biệt: • Không gian địa chỉ bộ nhớ: 2M địa chỉ • Không gian địa chỉ IO: 2I địa chỉ • Có tín hiệu điều khiển phân biệt truy nhập không gian địa chỉ • Tập lệnh có các lệnh IO chuyên dụng – Ví dụ: CPU Intel Pentium 4 • Không gian địa chỉ bộ nhớ = 236 byte = 64GB • Không gian địa chỉ IO = 216 byte = 64KB • Lệnh IO chuyên dụng: IN, OUT
- Tổng quan về hệ thống IO • Các phương pháp địa chỉ hoá cổng IO – IO riêng biệt (Isolated IO, IO mapped IO) • Cổng IO được đánh địa chỉ theo không gian địa chỉ IO • CPU trao đổi dữ liệu với cổng IO thông qua các lệnh IO chuyên dụng (IN, OUT) • Chỉ có thể thực hiện trên các hệ thống có quản lý không gian địa chỉ IO riêng biệt – IO theo bộ nhớ (Memory mapped IO) • Cổng IO được đánh địa chỉ theo không gian địa chỉ bộ nhớ • IO giống như đọc/ghi bộ nhớ • CPU trao đổi dữ liệu với cổng IO thông qua các lệnh truy nhập dữ liệu bộ nhớ • Có thể thực hiện trên mọi hệ thống
- Tổng quan về hệ thống IO • Ví dụ: So sánh 2 phương pháp IO
- Điều khiển IO • Các phương pháp điều khiển IO – IO bằng chương trình (Programmed IO) – IO điều khiển bằng ngắt (Interrupt Driven IO) – Truy nhập bộ nhớ trực tiếp DMA (Direct Memory Access)
- Điều khiển IO
- Điều khiển IO • IO bằng chương trình – Nguyên tắc chung: CPU điều khiển trực tiếp IO bằng chương trình → cần phải lập trình IO. – Với IO riêng biệt: sử dụng các lệnh IO chuyên dụng (IN, OUT). – Với IO theo bản đồ bộ nhớ: sử dụng các lệnh trao đổi dữ liệu với bộ nhớ để trao đổi dữ liệu với cổng IO.
- Điều khiển IO • Các tín hiệu điều khiển IO – Tín hiệu điều khiển (Control): kích hoạt & khởi động thiết bị ngoại vi – Tín hiệu kiểm tra (Test): kiểm tra trạng thái của mô- đun IO và thiết bị ngoại vi – Tín hiệu điều khiển đọc (Read): yêu cầu môđun IO nhận dữ liệu từ thiết bị ngoại vi và đưa vào thanh ghi đệm dữ liệu, rồi CPU nhận dữ liệu đó – Tín hiệu điều khiển ghi (Write): yêu cầu môđun IO lấy dữ liệu trên bus dữ liệu đưa đến thanh ghi đệm dữ liệu rồi chuyển ra thiết bị ngoại vi
- Điều khiển IO • Hoạt động của IO bằng chương trình – CPU yêu cầu thao tác IO – Mô-đun IO thực hiện thao tác – Mô-đun IO thiết lập các bit trạng thái – CPU kiểm tra các bit trạng thái: • Nếu chưa sẵn sàng thì quay lại kiểm tra • Nếu sẵn sàng thì chuyển sang trao đổi dữ liệu với mô-đun IO • Đặc điểm – IO do ý muốn của người lập trình – CPU trực tiếp điều khiển IO – CPU đợi mô-đun IO → tiêu tốn thời gian của CPU
- Điều khiển IO • IO điều khiển bằng ngắt – Sau khi gửi yêu cầu IO, CPU không phải đợi trạng thái sẵn sàng của mô-đun IO, CPU thực hiện một chương trình nào đó – Khi mô-đun IO sẵn sàng thì nó phát tín hiệu ngắt CPU – CPU thực hiện chương trình con IO tương ứng để trao đổi dữ liệu (trình xử lý ngắt) – CPU trở lại tiếp tục thực hiện chương trình đang bị ngắt
- Điều khiển IO • Hoạt động nhập dữ liệu: nhìn từ mô-đun IO – Mô-đun IO nhận tín hiệu điều khiển đọc từ CPU – Mô-đun IO nhận dữ liệu từ thiết bị ngoại vi, trong khi đó CPU làm việc khác – Khi đã có dữ liệu → mô-đun IO phát tín hiệu ngắt CPU – CPU yêu cầu dữ liệu – Mô-đun IO chuyển dữ liệu đến CPU
- Điều khiển IO • Hoạt động nhập dữ liệu: nhìn từ CPU – Phát tín hiệu điều khiển đọc – Làm việc khác – Cuối mỗi chu trình lệnh, kiểm tra tín hiệu ngắt – Nếu bị ngắt: • Cất ngữ cảnh (nội dung các thanh ghi) • Thực hiện chương trình con ngắt để nhập dữ liệu • Khôi phục ngữ cảnh của chương trình đang thực hiện
- Điều khiển IO • Các vấn đề nảy sinh khi có ngắt: – Xác định được mô-đun IO nào phát tín hiệu ngắt ? – Có nhiều yêu cầu ngắt cùng xảy ra ? • Các phương pháp nối ghép ngắt – Sử dụng nhiều đường yêu cầu ngắt – Hỏi vòng bằng phần mềm (Software Poll) – Hỏi vòng bằng phần cứng (Daisy Chain or Hardware Poll) – Sử dụng bộ điều khiển ngắt lập trình được PIC (Programmable Interrupt Controller)
- Điều khiển IO • Nhiều đường yêu cầu ngắt – Mỗi mô-đun IO được nối với một đường yêu cầu ngắt – CPU phải có nhiều đường tín hiệu yêu cầu ngắt – Hạn chế số lượng mô-đun IO – Các đường ngắt được qui định mức ưu tiên
- Điều khiển IO • Hỏi vòng bằng phần mềm – CPU thực hiện phần mềm hỏi lần lượt từng mô- đun IO – Chậm – Thứ tự các mô-đun được hỏi vòng chính là thứ tự ưu tiên
- Điều khiển IO • Hỏi vòng bằng phần cứng – CPU phát tín hiệu chấp nhận ngắt (INTA) đến mô-đun IO đầu tiên – Nếu mô-đun IO đó không gây ra ngắt thì nó gửi tín hiệu đến mô-đun kế tiếp cho đến khi xác định được mô-đun gây ngắt – Thứ tự các mô-đun IO kết nối trong chuỗi xác định thứ tự ưu tiên
- Điều khiển IO • Bộ điều khiển ngắt lập trình được PIC – PIC có nhiều đường vào yêu cầu ngắt có qui định mức ưu tiên – PIC chọn một yêu cầu ngắt không bị cấm có mức ưu tiên cao nhất gửi tới CPU
- Điều khiển IO • Đặc điểm của IO điều khiển bằng ngắt – Có sự kết hợp giữa phần cứng và phần mềm – Phần cứng: gây ngắt CPU – Phần mềm: trao đổi dữ liệu – CPU trực tiếp điều khiển IO – CPU không phải đợi mô-đun IO → hiệu quả sử dụng CPU tốt hơn
- • Ví dụ: Hệ thống ngắt trên máy PC – CPU Intel x86 có 1 chân tín hiệu ngắt – PIC 8259A có 8 đường ngắt – Có thể đấu nối nhiều PIC theo chế độ master/ slaver để tăng số lượng đường ngắt phục vụ cho nhiều thiết bị
- Điều khiển IO • DMA (Direct Memory Access) – IO bằng chương trình và bằng ngắt do CPU trực tiếp điều khiển: • Chiếm thời gian của CPU • Tốc độ truyền bị hạn chế vì phải chuyển dữ liệu qua CPU (thanh ghi có dung lượng nhỏ) – Để khắc phục dùng DMA • Thêm mô-đun phần cứng trên bus → DMAC (DMA Controller) • DMAC điều khiển trao đổi dữ liệu giữa môđun IO với bộ nhớ chính
- Điều khiển IO • Sơ đồ cấu trúc của DMAC – Thanh ghi dữ liệu: chứa dữ liệu trao đổi – Thanh ghi địa chỉ: chứa địa chỉ ô nhớ dữ liệu – Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổi – Logic điều khiển: điều khiển hoạt động của DMAC
- Điều khiển IO • Hoạt động DMA – CPU gửi tín hiệu cho DMAC • Vào hay Ra dữ liệu • Địa chỉ thiết bị IO (cổng IO tương ứng) • Địa chỉ đầu của mảng nhớ chứa dữ liệu → nạp vào thanh ghi địa chỉ • Số từ dữ liệu cần truyền → nạp vào bộ đếm dữ liệu – CPU làm việc khác – DMAC điều khiển trao đổi dữ liệu – Sau khi truyền được một từ dữ liệu thì: • nội dung thanh ghi địa chỉ tăng • nội dung bộ đếm dữ liệu giảm – Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt CPU để báo kết thúc DMA
- Điều khiển IO • Các kiểu thực hiện DMA – DMA truyền theo khối (Block-transfer DMA): DMAC sử dụng bus để truyền xong cả khối dữ liệu – DMA lấy lén chu kỳ (Cycle Stealing DMA): DMAC cưỡng bức CPU treo tạm thời từng chu kỳ bus, DMAC chiếm bus thực hiện truyền một từ dữ liệu. – DMA trong suốt (Transparent DMA): DMAC nhận biết những chu kỳ nào CPU không sử dụng bus thì chiếm bus để trao đổi một từ dữ liệu.
- Điều khiển IO • Cấu hình DMA 1: Bus chung, DMA tách biệt – Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus hai lần • Giữa mô-đun IO với DMAC • Giữa DMAC với bộ nhớ – CPU bị treo khỏi bus 2 lần
- Điều khiển IO • Cấu hình DMA 2: Bus chung, DMA tích hợp – DMAC điều khiển một hoặc vài mô-đun IO – Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một lần • Giữa DMAC với bộ nhớ – CPU bị treo khỏi bus 1 lần
- Điều khiển IO • Cấu hình DMA 3: Bus IO riêng – Bus IO tách rời hỗ trợ tất cả các thiết bị cho phép DMA – Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một lần • Giữa DMAC với bộ nhớ – CPU bị treo khỏi bus 1 lần
- Điều khiển IO • Đặc điểm của 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ới mô-đun IO (hoàn toàn bằng phần cứng) → tốc độ nhanh – Phù hợp với các yêu cầu trao đổi mảng dữ liệu có kích thước lớn (Block devices) • Phân loại TBNV – Character devices – Block devices
- Điều khiển IO • Ví dụ: Chip DMA trong máy PC – Intel 8237A DMA Controller – Giao tiếp với CPU Intel x86 và DRAM – Khi DMA cần bus, nó gửi tín hiệu HRQ cho CPU – CPU trả lời bằng tín hiệu HLDA – DMA bắt đầu sử dụng bus
- Điều khiển IO • Kênh IO (IO channel) – Việc điều khiển IO được thực hiện bởi một bộ xử lý IO chuyên dụng – Bộ xử lý IO hoạt động theo chương trình của riêng nó – Chương trình của bộ xử lý IO có thể nằm trong bộ nhớ chính hoặc nằm trong một bộ nhớ riêng – Hoạt động theo kiến trúc đa xử lý • CPU gửi yêu cầu IO cho kênh IO • Kênh IO tự thực hiện việc truyền dữ liệu
- Nối ghép thiết bị ngoại vi • Các kiểu nối ghép – Nối ghép song song (parallel) – Nối ghép nối tiếp (serial) • Nối ghép song song – Truyền nhiều bit song song – Cần nhiều đường truyền dữ liệu – Tốc độ nhanh – Dễ bị nhiễu giữa các tín hiệu
- Nối ghép thiết bị ngoại vi • Nối ghép nối tiếp – Truyền lần lượt từng bit – Cần có bộ chuyển đổi từ dữ liệu song song sang nối tiếp hoặc/và ngược lại – Cần ít đường truyền dữ liệu – Tốc độ chậm hơn
- Nối ghép thiết bị ngoại vi • Các cấu hình nối ghép – Điểm tới điểm (Point to Point) • Mỗi cổng IO nối ghép với một thiết bị ngoại vi • Ví dụ: – SATA (Serial ATA) – SAS (Serial Atache SCSI) – Điểm tới đa điểm (Point to Multipoint) • Mỗi cổng IO cho phép nối ghép với nhiều thiết bị ngoại vi • Ví dụ: – SCSI (Small Computer System Interface): 7 hoặc 15 thiết bị – USB (Universal Serial Bus): 127 thiết bị – IEEE 1394 (FireWire): 63 thiết bị
- Nối ghép thiết bị ngoại vi • Ví dụ: Các cổng nối ghép ngoại vi trên PC – PS/2: nối ghép bàn phím và chuột – MiniDIN 6 chân – RJ45: nối ghép mạng – LPT (Line Printer): nối ghép với máy in, là cổng song song (Parallel Port) – 25 chân – COM (Communication): nối ghép với Modem, là cổng nối tiếp (Serial Port) - 9 hoặc 25 chân – USB (Universal Serial Bus): Cổng nối tiếp đa năng, cho phép nối ghép tối đa 127 thiết bị
- Nối ghép thiết bị ngoại vi • Ví dụ: Các cổng nối ghép trên card màn hình – VGA: Cổng nối ghép màn hình Analog– 15 chân – DVI: Cổng nối ghép màn hình Digital – S-Video – HDMI
- Nối ghép thiết bị ngoại vi • Ví dụ: Hệ thống bus ngoại vi trên máy PC
- Nối ghép thiết bị ngoại vi • Hệ thống bus ngoại vi trên máy PC (tiếp) – ISA (Industry Standard Architecture): Sử dụng trên máy PC 8086 (8 bit) và AT 80286 (16 bit) – MCA (Micro Channel Architecture): Sử dụng trên máy 80386 của IBM (32 bit) – EISA (Extended ISA) Sử dụng trên các máy 80386 tương thích (32 bit) – VL bus (VESA Local bus): Sử dụng trên các máy 80486 (32 bit)
- Nối ghép thiết bị ngoại vi • Hệ thống bus ngoại vi trên máy PC (tiếp) – AGP (Accelerated Graphics Port): Bus dành riêng cho card màn hình trên máy Pentium. Bao gồm các mức tốc độ 1x, 2x, 4x và 8x (1x=266MB/s). – PCI (Peripheral Component Interconnect): Sử dụng trên các máy Pentium (32 & 64 bit) • PCI-X: Sử dụng tần số xung nhịp cao hơn (66-133 MHz) so với PCI 33 MHz • PCI-E (PCI-Express): Cho phép truyền dữ liệu tốc độ cao, được sử dụng trong các máy PC đời mới. Gồm nhiều mức tốc độ: 1x, 2x, , 32x (1x: 1 Lane có 4 đường truyền nối tiếp 250 MB/s)
- Nối ghép thiết bị ngoại vi • Các cổng điều khiển đĩa – Đĩa mềm : Dùng cáp 34 chân kết nối tối đa 2 ổ mềm – Đĩa cứng/CD/DVD/SSD : • Chuẩn ST506 • Chuẩn ESDI • Chuẩn IDE/UDMA/PATA • Chuẩn SCSI • Chuẩn SATA • Chuẩn SAS
- Các thiết bị ngoại vi thông dụng • Thiết bị nhập – Bàn phím, chuột, scanner, digitizer, micro, đọc vân tay, đọc bar-code, camera, • Thiết bị xuất – Màn hình, máy in, máy vẽ, loa, projector, • Thiết bị mạng & truyền thông – Modem, Router, • Thiết bị lưu trữ – Đĩa mềm, đĩa cứng, SSD, CD, DVD, thẻ nhớ,
- Câu hỏi