Kiến trúc và tổ chức máy tính - Chương 5: Hệ thống Vào/ Ra

1. Tổng quan về hệ thống vào/ra – Cấu trúc cơ bản – Đặc điểm 2. Các phương pháp điều khiển vào/ra – Bằng chương trình – Bằng ngắt – Truy nhập bộ nhớ trực tiếp DMA 3. Ghép nối Thiết bị ngoại vi 4. Các cổng vào/ra thông dụng trên PC

pdf28 trang | Chia sẻ: thuychi16 | Lượt xem: 784 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Kiến trúc và tổ chức máy tính - Chương 5: Hệ thống Vào/ Ra, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
bangtqh@utc2.edu.vn KIẾN TRÚC VÀ TỔ CHỨC MÁY TÍNH (Computer Organization and Architecture) Chương 5 Hệ thống Vào/Ra bangtqh@utc2.edu.vn Nội dung 1. Tổng quan về hệ thống vào/ra – Cấu trúc cơ bản – Đặc điểm 2. Các phương pháp điều khiển vào/ra – Bằng chương trình – Bằng ngắt – Truy nhập bộ nhớ trực tiếp DMA 3. Ghép nối Thiết bị ngoại vi 4. Các cổng vào/ra thông dụng trên PC 2Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn 5.1. Tổng quan về hệ thống I/O Chương 5 - Hệ thống Vào/Ra 3 Cache Bus chÝnh BXL Bé nhí chÝnh M¹ch §K vµo/ra M¹ch §K vµo/ra M¹ch §K vµo/ra §Üa §Üa §å häa M¹ng C¸c ng¾t bangtqh@utc2.edu.vn 5.1. Tổng quan về hệ thống I/O Chức năng: – Trao đổi thông tin giữa máy tính với môi trường bên ngoài Các thao tác cơ bản: – Vào dữ liệu (Input) – Ra dữ liệu (Output) Các thành phần chính: – Thiết bị ngoại vi – Mạch ghép nối vào ra (Module vào/ra) Chương 5 - Hệ thống Vào/Ra 4 bangtqh@utc2.edu.vn Đặc điểm hệ thống vào/ra Tồn tại đa dạng các TBNV khác nhau về: – Nguyên tắc hoạt động – Tốc độ truy xuất – Khuôn dạng dữ liệu Tất cả các thiết bị ngoại vi đều chậm hơn CPU và bộ nhớ chính  Cần có modul vào ra để nối ghép TBNV với CPU và bộ nhớ chính Chương 5 - Hệ thống Vào/Ra 5 bangtqh@utc2.edu.vn Tại sao cần Modul vào/ra? Không thể nối trực tiếp các thiết bị ngoại với bus hệ thống, vì: – CPU không thể điều khiển được tất cả TBNV – Tốc độ trao đổi dữ liệu khác nhau – Khuôn dạng dữ liệu khác nhau – Tất cả có tốc độ chậm hơn CPU và RAM Chức năng của Modul vào/ra: – Nối ghép với CPU và hệ thống nhớ – Nối ghép với một hoặc nhiều TBNV 6Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn 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 Đặc điểm – Tốc độ làm việc chậm hơn CPU và RAM rất nhiều → cần có Module vào ra để ghép nối các thiết bị ngoại vi vào hệ thống Bus máy tính. Phân loại – Giao tiếp người-máy: Bàn phím, máy in, màn hình,. – Giao tiếp máy-máy: Thiết bị theo dõi và kiểm tra – Truyền thông: Modem, NIC, . Chương 5 - Hệ thống Vào/Ra 7 bangtqh@utc2.edu.vn Một số TB ngoại vi thông dụng Chương 5 - Hệ thống Vào/Ra 8 bangtqh@utc2.edu.vn Cấu trúc chung của TB ngoại vi Chương 5 - Hệ thống Vào/Ra 9 bangtqh@utc2.edu.vn Các thành phần của TB ngoại vi Bộ chuyển đổi dữ liệu (transducer): Chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính Bộ đệm dữ liệu (Buffer): Đệm dữ liệu khi truyền giữa module vào/ra và TBNV Khối logic điều khiển (Control logic) : Điều khiển hoạt động của TBNV đáp ứng theo yêu cầu từng module vào ra Chương 5 - Hệ thống Vào/Ra 10 bangtqh@utc2.edu.vn Module vào/ra Chức năng: –Điều khiển và định thời gian – Trao đổi thông tin với CPU – Trao đổi thông tin với TBNV – Bộ đệm dữ liệu – Phát hiện lỗi nếu có Chương 5 - Hệ thống Vào/Ra 11 bangtqh@utc2.edu.vn Cấu trúc chung của Modul vào/ra C¸c ®−êng d÷ liÖu Nèi ghÐp víi TBNV C¸c ®−êng ®Þa chØ C¸c ®−êng ®iÒu khiÓn Thanh ghi d÷ liÖu Thanh ghi §K/tr¹ng th¸i Logic vµo/ra Logic giao diÖn víi TBNV Logic giao diÖn víi TBNV D÷ liÖu §iÒu khiÓn Tr¹ng th¸i D÷ liÖu §iÒu khiÓn Tr¹ng th¸i Nèi ghÐp víi bus hÖ thèng 12Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Thành phần cơ bản của Modul vào/ra Thanh ghi dữ liệu: đệm dữ liệu trong quá trình trao đổi giữa CPU và TBNV Các cổng vào/ra: kết nối với TBNV, mỗi cổng có một địa chỉ xác định Thanh ghi điều khiển/trạng thái: lữu giữ thông tin điều khiển, trạng thái cho các cổng vào/ra Logic điều khiển: điều khiển Modul vào/ra 13Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Địa chỉ hóa cổng Vào/Ra Vào/Ra riêng biệt – Không gian địa chỉ cổng vào/ra nằm ngoài không gian địa chỉ bộ nhớ (dữ liệu). – CPU trao đổi với cổng vào/ra theo các lệnh chuyên dụng: IN, OUT – Cần có tín hiệu phân biệt truy nhập cổng vào/ra hay truy nhập bộ nhớ Vào/Ra theo bản đồ bộ nhớ – Không gian địa chỉ cổng vào/ra nằm trong không gian địa chỉ bộ nhớ – Dùng chung tín hiệu truy nhập bộ nhớ – Dùng chung lệnh trao đổi dữ liệu với bộ nhớ Chương 5 - Hệ thống Vào/Ra 14 bangtqh@utc2.edu.vn VD Địa chỉ hóa cổng vào ra riêng biệt 15 1 MB 00000h FFFFFh 64 KB 0000h FFFFh 64 KB 0000h FFFFh Bộ nhớ Lệnh: MOV T/h ĐK: IO/M = 0 Thiết bị vào Lệnh: IN T/h ĐK: IO/M = 1 Thiết bị ra Lệnh: OUT T/h ĐK: IO/M = 1 Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn VD Đ/chỉ hóa cổng IO bằng bản đồ bộ nhớ Lệnh và tín hiệu điều khiển chung cho cả hai: Chương 5 - Hệ thống Vào/Ra 16 Vµo/ra 00000H FFFFFH Bé nhí MOV IO/M = 0 bangtqh@utc2.edu.vn 5.2. Các P/pháp đ.khiển Vào/Ra Vào/ra bằng chương trình (Programmed IO) Vào/ra bằng ngắt (Interrupt Driven IO) Vào/ra bằng DMA (Direct Memory Access) Chương 5 - Hệ thống Vào/Ra 17 bangtqh@utc2.edu.vn Vào/ra bằng chương trình Nguyên tắc chung: – 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 BXL thực hiện chương trình, gặp lệnh vào/ra thì BXL điều khiển trao đổi dữ liệu với thiết bị ngoại vi 18Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Hoạt động vào/ra bằng chương trình CPU yêu cầu thao tác vào/ra Modul vào/ra thực hiện thao tác Modul vào/ra thiết lập các bit trạng thái CPU kiểm tra các bit trạng thái để nắm được tình trạng của TBNV: – Nếu chưa sẵn sàng thì quay lại kiểm tra – Nếu đã sẵn sàng thì tiến hành trao đổi dữ liệu với modul vào ra 19 §äc tr¹ng th¸i cña TBNV TBNV s½n sµng ? Trao ®æi DL víi TBNV Sai §óng Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Nhận xét CPU trực tiếp điều khiển vào ra: đọc trạng thái, kiểm tra trạng thái, thực hiện trao đổi dữ liệu. Trường hợp thiết bị chưa sẵn sàng hoặc nhiều thiết bị cùng cần trao đổi dữ liệu → tốn nhiều thời gian CPU. Việc thực hiện trao đổi đơn giản, theo ý muốn của người lập trình. Chương 5 - Hệ thống Vào/Ra 20 bangtqh@utc2.edu.vn Vào/Ra bằng Ngắt (interrrupt) Nguyên tắc chung – CPU không phải đợi trạng thái sẵn sàng của Module vào ra. – Khi Module vào ra sẵn sàng thì nó phát ra tín hiệu yêu cầu ngắt CPU. – CPU thực hiện chương trình con vào ra tương ứng để trao đổi dữ liệu. – CPU trở lại chương trình đang bị ngắt. Chương 5 - Hệ thống Vào/Ra 21 bangtqh@utc2.edu.vn Vào/Ra bằng Ngắt (tt) Chuyển điều khiển đến chương trình con Chương 5 - Hệ thống Vào/Ra 22 bangtqh@utc2.edu.vn Ngắt tuần tự 23Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Ng¾t lång nhau 24Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Hoạt động Chương 5 - Hệ thống Vào/Ra 25 Mạch điều khiển thiết bị phát ra ngắt BXL thực hiện xong lệnh hiện tại BXL phát tín hiệu chấp nhận ngắt BXL cất nội dung Thanh ghi cờ và Bộ đếm CT vào Stack BXL nạp vào Bộ đếm CT giá trị địa chỉ mới lấy từ ngắt vào BXL cất các thông tin còn lại của trạng thái xử lý Thực hiện ngắt Khôi phục thông tin trạng thái Khôi phục Thanh ghi cờ và Bộ đếm CT Ph ầ n cứ n g Ph ầ n m ềm bangtqh@utc2.edu.vn Nhiều ngắt xảy ra đồng thời Nếu có nhiều yêu cầu ngắt cùng một lúc gửi đến CPU thì CPU giải quyết thế nào? Nhờ sự can thiệp của Mạch điều khiển ngắt lập trình được (PIC - Programmable Interrupt Controller) 26Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Xử lý với nhiều ngắt Các ngắt bị cấm – BXL sẽ bỏ qua các ngắt khác trong khi đang thực hiện một ngắt – Các ngắt phải chờ và được kiểm tra sau khi ngắt đang phục vụ được xử lý xong – Các ngắt được thực hiện tuần tự Đinh nghĩa ưu tiên ngắt: – Ngắt có mức ưu tiên thấp hơn thì có thể bị ngắt bởi ngắt có ưu tiên cao hơn – Khi ngắt có mức ưu tiên cao hơn được xử lý xong thì BXL quay về ngắt trước đó 27Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Đặc điểm Điều khiển vào/ra 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: yêu cầu ngắt BXL – Phần mềm: trao đổi dữ liệu BXL trực tiếp điều khiển vào/ra BXL không phải đợi Modul vào/ra ⇒ hiệu quả BXL sử dụng tốt hơn Chương 5 - Hệ thống Vào/Ra 28 bangtqh@utc2.edu.vn Phân loại ngắt Ngắt cứng (Hard Interrupt): yêu cầu ngắt do mạch phần cứng bên ngoài gửi đến – Ngắt cứng NMI (None Maskable Interrupt): có yêu cầu ngắt thì bắt buộc phải ngắt • Ví dụ: Có sự cố nguồn; lỗi bộ nhớ – Ngắt cứng MI (Maskable Interrupt): có yêu cầu ngắt thì có hai khả năng xẩy ra: • Được ngắt nếu ngắt đó ở trạng thái cho phép • Không được ngắt nếu ngắt đó ở trạng thái bị cấm – Ngắt cứng MI dùng để trao đổi dữ liệu với TBNV 29Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Phân loại ngắt Ngắt mềm (Soft Interrupt): Yêu cầu ngắt do lệnh gọi ngắt nằm trong chương trình sinh ra Ngắt ngoại lệ (Exception Interrupt): là các ngắt sinh ra do lỗi xuất hiện trong quá trình thực hiện chương trình – Ví dụ: • Gặp lệnh chia cho 0 • Lệnh sai cú pháp • tràn số • Nhảy đến các điều kiện không tồn tại 30Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Vào/Ra bằng Ngắt (tt) Nhìn từ CPU – Hoạt động đọc dữ liệu – Phát tín hiệu điều khiển đọc – Làm việc khác – Cuối mỗi chu kỳ lệnh, kiểm tra tín hiệu ngắt – Nếu bị ngắt • Cất trạng thái (các thanh ghi) vào stack • Chuyển tới địa chỉ chương trình con phục vụ ngắt để đọc dữ liệu • Khôi phụ trạng thái (các thanh ghi) Chương 5 - Hệ thống Vào/Ra 31 bangtqh@utc2.edu.vn Vào/Ra bằng Ngắt (tt) Nhìn từ Modul Vào/ra – Hoạt động đọc dữ liệu – Đọc tín hiệu điều khiển từ CPU – Nhận dữ liệu từ TBNV (trong lúc này CPU làm việc khác) – Khi đã có dữ liệu  phát tín hiệu ngắt tới CPU – CPU nhận dữ liệu vào (để xử lý) – Truyền dữ liệu tới CPU Chương 5 - Hệ thống Vào/Ra 32 bangtqh@utc2.edu.vn Vào/Ra bằng Ngắt (tt) Vấn đề nảy sinh – CPU làm sao phân biệt được Module vào/ra nào phát tín hiệu ngắt – Trường hợp cùng 1 lúc có nhiều Module phát tín hiệu ngắt thì sao? Cần có phương pháp ghép nối ngắt Các phương pháp: – Sử dụng nhiều đường ngắt – Software Poll (Kiểm tra vòng bằng phần mềm) – Daisy Chain or Hardware Poll (Kiểm tra vòng bằng phần cứng) – Sử dụng bộ điều khiển ngắt (PIC) Chương 5 - Hệ thống Vào/Ra 33 bangtqh@utc2.edu.vn PP Sử dụng nhiều đường ngắt Mỗi Modul vào/ra có đường yêu cầu ngắt khác nhau CPU phải có nhiều đường tín hiệu yêu cầu ngắt  Số lượng Modul bị hạn chế (hạn chế số lượng TBNV)  Phải quy định mức độ ưu tiên các đường ngắt Chương 5 - Hệ thống Vào/Ra 34 bangtqh@utc2.edu.vn Phương pháp Software Poll CPU thực hiện phần mềm hỏi lần lượt từng modul vào/ra Tốc độ chậm Thứ tự hỏi vòng chính là thứ tự ưu tiên Chương 5 - Hệ thống Vào/Ra 35 bangtqh@utc2.edu.vn PP Daisy Chain or Hardware Poll CPU phát tín hiệu chấp nhận ngắt (INTA) đến Modul vào/ra đầu tiên, nếu module này không có nhu cầu ngắt  nó gửi đến modul kế tiếp (cứ như vậy) Nếu modul có nhu cầu ngắt, nó sẽ đáp ứng bằng cách đặt vectơ ngắt lên bus dữ liệu CPU sử dụng vectơ để xác định CTC điều khiển ngắt Chương 5 - Hệ thống Vào/Ra 36 bangtqh@utc2.edu.vn PP Sử dụng bộ điều khiển ngắt PIC – Programable Interrupt Controller: Có nhiều đường ngắt quy định mức ưu tiên PIC chọn 1 ngắt không bị cấm có ưu tiên cao nhất gửi tới CPU Chương 5 - Hệ thống Vào/Ra 37 bangtqh@utc2.edu.vn Ví dụ: PIC 8259A 38Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Vào/ra bằng DMA Nhược diểm của vào/ra bằng chương trình và vào/ra bằng ngắt – Tốc độ truyền bị hạn chế – Chiếm thời gian của CPU (do CPU tham gia vào quá trình trao đổi dữ liệu) Để khắc phục, dùng DMA – Thêm modul phần cứng trên bus: DMAC (DMA Controller) – DMAC điều khiển vào/ra không cần sự tham gia của CPU 39Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Sơ đồ cấu trúc của DMAC 40Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Các thành phần của DMAC Thanh ghi dữ liệu: – Chứa dữ liệu cần trao đổi Thanh ghi địa chỉ: – Chứa địa chỉ ngăn 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 41Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Hoạt động của DMA CPU báo cho DMAC – Input hay Output ? – Địa chỉ cổng vào/ra (thiết bị) – Địa chỉ đầu tiên của mảng nhớ dữ liệu  nạp vào thanh ghi địa chỉ – Số từ nhớ cần truyền CPU làm việc khác DMAC điều khiển trao đổi dữ liệu (giữa bộ nhớ chính với Modul vào/ra) Với mỗi từ nhớ (dữ liệu) được truyền thì – Nội dung thanh ghi địa chỉ tăng – Bộ đếm dữ liệu giảm Khi bộ đếm dữ liệu = 0 thì DMAC gửi tín hiệu ngắt tới CPU để báo kết thúc DMA Chương 5 - Hệ thống Vào/Ra 42 bangtqh@utc2.edu.vn Sơ đồ 43 DMACCPU Bé nhí TBNV HRQ DACK DREQ HLDA Bus ®Þa chØ Bus d÷ liÖu Bus ®iÒu khiÓn 1 2 3 4 5 Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Quá trình hoạt động  B1: TBNV gửi tín hiệu DREQ (Dma REQuest) tới DMAC  B2: DMAC gửi tín hiệu HRQ (Hold ReQuest) để xin dùng các đường bus  B3: CPU sẽ thực hiện xong chu kỳ bus hiện tại và trả lời đồng ý bằng việc gửi tín hiệu HLDA (HoLD Acknowledge) tới DMAC  B4: DMAC gửi tín hiệu DACK (DMA ACKnowledge) tới TBNV báo chuẩn bị truyền dữ liệu  B5: DMAC thực hiện điều khiển quá trình truyền dữ liệu giữa bộ nhớ và TBNV  B6: DMAC thực hiện xong công việc, nó bỏ kích hoạt tín hiệu HRQ. Hệ thống trở lại bình thường. 44Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn 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 cả khối dữ liệu DMA ăn trộm chu kỳ (cycle stealing DMA): DMAC ép buộc CPU treo tạm thời từng chu kỳ để thực hiện truyền một byte dữ liệu DMA trong suốt (transparent DMA): DMAC nhận biết những chu kỳ nào CPU không dùng bus thì lấy bus để tranh thủ truyền một byte dữ liệu 45Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Cấu hình DMA: kiểu 1 Bus đơn, bộ điều khiển DMA riêng rẽ Mỗi lần truyền, DMAC sử dụng bus 2 lần: – Từ Modul vào/ra đến DMAC – Từ DMAC đến bộ nhớ CPU bị treo bus 2 lần 46Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Cấu hình DMA: kiểu 2 Bus đơn, bộ điều khiển DMA tích hợp DMAC điều khiển một hoặc vài Modul vào/ra Mỗi lần truyền, chỉ sử dụng bus 1 lần – Từ DMAC tới bộ nhớ CPU chỉ bị treo bus 1 lần 47Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Cấu hình DMA: kiểu 3 Bus vào/ra tách rời, hỗ trợ tất cả các thiết bị cho phép DMA Mỗi lần truyền chỉ dùng bus 1 lần: – Từ DMA tới bộ nhớ CPU cũng chỉ bị treo bus 1 lần 48Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Đặc điểm vào/ra bằng DMA CPU không tham gia quá trình trao đổi dữ liệu DMAC điều khiển quá trình trao đổi dữ liệu giữ bộ nhớ chính với Modul Vào/ra  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 kích thước lớn Chương 5 - Hệ thống Vào/Ra 49 bangtqh@utc2.edu.vn 5.3. Nối ghép 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 Các cấu hình nối ghép: – Điểm tới điểm – Điểm tới đa điểm 50Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Nối ghép song song Truyền nhiều bit song song Tốc độ nhanh Cần nhiều đường truyền dữ liệu 51 Modul vµo/ra song song §Õn bus hÖ thèng §Õn thiÕt bÞ ngo¹i vi Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Nối ghép nối tiếp Truyền lần lượt từng bit Cần có bộ chuyển đổi song song thành nối tiếp và ngược lại Tốc dộ chậm Cần ít đường truyền dữ liệu 52 Modul vµo/ra nèi tiÕp §Õn bus hÖ thèng §Õn thiÕt bÞ ngo¹i vi Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn Các cấu hình ghép nối Điểm tới điểm (point-to-point): – Thông qua một cổng vào/ra, nối ghép với một TBNV – Ví dụ: cổng chuột, bàn phím, ... Điểm tới đa điểm (point-to-multipoint): – Thông qua một cổng vào/ra, nối ghép được với nhiều TBNV – Ví dụ: • SCSI: 7 hoặc 15 thiết bị • USB: 127 thiết bị • IEEE 1394 FireWire: 63 thiết bị 53Chương 5 - Hệ thống Vào/Ra bangtqh@utc2.edu.vn 5.4. Các cổng vào ra thông dụng Cổng P/S2 Cổng ghép nối màn hình Cổng LPT (Line Printer) Cổng COM Cổng USB Cổng HDMI  Chia nhóm – thảo luận Chương 5 - Hệ thống Vào/Ra 54 bangtqh@utc2.edu.vn Thắc mắc – Thảo luận? 55Chương 5 - Hệ thống Vào/Ra
Tài liệu liên quan