Bài giảng Kiến trúc máy tính - Chương 6: Hệ thống vào/ra - Phan Trung Kiên
Tóm tắt Bài giảng Kiến trúc máy tính - Chương 6: Hệ thống vào/ra - Phan Trung Kiên: ...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) Phan Trung Kiên 19 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 ... 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 P h ầ n c ứ n g P hần m ềm Phan Trung Kiên 28 Đặc điểm Có sự kết ...vào ra Modul vào ra PIC INTR 0 INTR 1 INTR 2 INTR 3 BXL Bus DL INTR INTA Phan Trung Kiên 39 Ví dụ: PIC 8259A Phan Trung Kiên 40 Vào/ra bằng DMA Vào ra bằng chương trình và vào/ra bằng ngắt do BXL điều khiển • Tốc độ truyền bị hạn chế • Chiếm thời gian của BXL Để khắ...
Phan Trung Kiờn 1 Kiến trỳc mỏy tớnh Chương 6 HỆ THỐNG VÀO/RA Phan Trung Kiờn 2 Nội dung chương 6 Tổng quan về hệ thống vào/ra Cỏc phương phỏp địa chỉ húa cổng vào/ra Cỏc phương phỏp điều khiển vào/ra Nối ghộp thiết bị ngoại vi. Phan Trung Kiờn 3 Tổng quan về Hệ thống vào/ra Chức năng của hệ thống vào/ra: 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: • Vào dữ liệu (Input) • Ra dữ liệu (Output) Cỏc thành phần chớnh: • Cỏc thiết bị ngoại vi • Mạch nối ghộp vào/ra (Modul vào/ra) Phan Trung Kiờn 4 Tổng quan về Hệ thống vào/ra 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 Phan Trung Kiờn 5 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ỡ: • BXL 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 BXL và RAM Chức năng của Modul vào/ra: • Nối ghộp với BXL và hệ thống nhớ • Nối ghộp với một hoặc nhiều TBNV Phan Trung Kiờn 6 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: • TBNV giao tiếp người-mỏy: màn hỡnh, bàn phớm, mỏy in, ... • TBNV giao tiếp mỏy-mỏy: cỏc thiết bị theo dừi và kiểm tra • TBNV truyền thụng: modem, card giao tiếp mạng (NIC) Phan Trung Kiờn 7 Một số TBNV thụng dụng Phan Trung Kiờn 8 Sơ đồ khối của TBNV Tín hiệu ĐK từ Modul vào/ra Tín hiệu TT đến Modul vào/ra Dữ liệu đến và từ Modul vào/ra Dữ liệu đến và từ môi tr−ờng bên ngoài Logic ĐK Bộ đệm Bộ chuyển đổi tín hiệu Phan Trung Kiờn 9 Cỏc thành phần cơ bản của TBNV Bộ chuyển đổi tớn hiệu (transducer): chuyển đổi dữ liệu từ dạng tớn hiệu điện thành dạng năng lượng khỏc và ngược lạ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ừ Modul vào/ra Bộ đệm (buffer): chứa dữ liệu tạm thời khi trao đổi dữ liệu giữa Modul vào/ra và TBNV Phan Trung Kiờn 10 Modul vào/ra Chức năng: • Điều khiển và định thời gian • Trao đổi thụng tin với BXL • Trao đổi thụng tin với TBNV • Bộ đệm dữ liệu • Phỏt hiện lỗi Phan Trung Kiờn 11 Sơ đồ khối 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 Phan Trung Kiờn 12 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 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 Phan Trung Kiờn 13 Cỏc PP địa chỉ húa cổng vào/ra Vào/ra tỏch biệt (isolated IO) Vào/ra theo bản đồ bộ nhớ (memory mapped IO) Phan Trung Kiờn 14 Vào/ra cỏch biệt Đặc điểm: • Khụng gian địa chỉ cổng vào/ra nằm ngoài khụng gian địa chỉ bộ nhớ Cỏch truy nhập: • 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ớ • Sử dụng lệnh vào/ra chuyờn dụng: IN, OUT. Phan Trung Kiờn 15 Vớ dụ đối với BXL 8088 BỘ NHỚ THIẾT BỊ VÀO THIẾT BỊ RA Lệnh: MOV IN OUT T/h ĐK: IO/M = 0 IO/M = 1 IO/M = 1 1 MB 00000H FFFFFH 64 KB 0000H FFFFH 64 KB 0000H FFFFH Phan Trung Kiờn 16 Vào/ra theo bản đồ bộ nhớ Đặc điểm: • Khụng gian địa chỉ cổng vào/ra nằm trong khụng gian địa chỉ bộ nhớ Cỏch truy nhập: • Dựng chung tớn hiệu như truy nhập bộ nhớ • Dựng chung lệnh trao đổi dữ liệu với bộ nhớ Phan Trung Kiờn 17 Vớ dụ đối với BXL 8088 Lệnh và tớn hiệu điều khiển chung cho cả hai: MOV IO/M = 0 00000H FFFFFH VÀO/RA BỘ NHỚ Phan Trung Kiờn 18 Cỏc phương phỏp điều 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) Phan Trung Kiờn 19 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 Phan Trung Kiờn 20 Hoạt động vào/ra bằng chương trỡnh BXL 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 BXL 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ỡ tiến hành trao đổi dữ liệu với modul vào ra Phan Trung Kiờn 21 Lưu đồ hoạt động Đọc trạng thỏi của TBNV TBNV sẵn sàng? Trao đổi DL với TBNV Sai Đỳng Phan Trung Kiờn 22 Cỏc lệnh vào/ra BXL phỏt ra địa chỉ • Xỏc định Modul vào/ra (và thiết bị nếu một Modul chứa nhiều hơn 1 thiết bị) BXL phỏt ra lệnh: • Điều khiển: yờu cầu Modul làm việc gỡ VD: điều khiển quay đĩa • Kiểm tra: kiểm tra trạng thỏi VD: nguồn? lỗi? • Đọc/ghi Modul truyền DL qua bộ đệm từ/tới thiết bị Phan Trung Kiờn 23 Đặc điểm BXL trực tiếp điều khiển vào/ra • Nhận biết thụng tin trạng thỏi từ TBNV • Phỏt tớn hiệu điều khiển Read/Write • Trao đổi dữ liệu BXL chờ đến khi Modul vào/ra hoàn thành thao tỏc Tốn thời gian của BXL Phan Trung Kiờn 24 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 Phan Trung Kiờn 25 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 Phan Trung Kiờn 26 Nguyờn tắc hoạt động BXL khụng mất thời gian chờ đợi BXL khụng phải kiểm tra trạng thỏi sẵn sàng của TBNV Modul vào/ra ngắt BXL khi nú ở trạng thỏi sẵn sàng Phan Trung Kiờn 27 Hoạt động 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 P h ầ n c ứ n g P hần m ềm Phan Trung Kiờn 28 Đặc điểm 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 Phan Trung Kiờn 29 Cỏc PP xỏc định modul ngắt Nhiều đường yờu cầu ngắt (Different line for each module) Kiểm tra vũng bằng phần mềm (Software poll) Kiểm tra vũng bằng phần cứng (Daisy Chain or Hardware poll) Chiếm bus (Bus Master) Phan Trung Kiờn 30 PP1: Nhiều đường yờu cầu ngắt BXL phải cú cỏc đường yờu cầu ngắt khỏc nhau cho mỗi modul vào/ra Hạn chế số lượng thiết bị Modul vào ra Modul vào ra Modul vào ra Modul vào ra BXL T h a n h g h i n g ắ t INTR 0 INTR 1 INTR 2 INTR 3 Phan Trung Kiờn 31 PP2: Kiểm tra vũng bằng phần mềm BXL thực hiện phần mềm kiểm tra từng Modul Tốc độ chậm Modul vào ra Modul vào ra Modul vào ra Modul vào ra BXL Cờ yờu cầu ngắt INTR Phan Trung Kiờn 32 PP3: Kiểm tra vũng bằng phần cứng BXL phỏt tớn hiệu chấp nhận ngắt đến chuỗi cỏc Modul vào/ra Modul sẽ đỏp ứng bằng cỏch đặt vectơ ngắt lờn bus dữ liệu BXL sử dụng vectơ để xỏc định CTC điều khiển ngắt Modul vào ra Modul vào ra Modul vào ra Modul vào ra BXL Cờ yờu cầu ngắt INTR Bus dữ liệu INTA Phan Trung Kiờn 33 PP4: Chiếm bus Modul vào/ra cần chiếm bus trước khi nú phỏt tớn hiệu yờu cầu ngắt Vớ dụ: • PCI • SCSI Phan Trung Kiờn 34 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ự Định 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 đú Phan Trung Kiờn 35 Ngắt tuần tự Phan Trung Kiờn 36 Ngắt lồng nhau Phan Trung Kiờn 37 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 BXL thỡ BXL 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) Phan Trung Kiờn 38 PIC PIC cú nhiều đường vào yờu cầu ngắt PIC chọn ngắt cú ưu tiờn cao nhất (khụng bị cấm) gửi tới BXL Modul vào ra Modul vào ra Modul vào ra Modul vào ra PIC INTR 0 INTR 1 INTR 2 INTR 3 BXL Bus DL INTR INTA Phan Trung Kiờn 39 Vớ dụ: PIC 8259A Phan Trung Kiờn 40 Vào/ra bằng DMA Vào ra bằng chương trỡnh và vào/ra bằng ngắt do BXL điều khiển • Tốc độ truyền bị hạn chế • Chiếm thời gian của BXL Để 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 qua BXL Phan Trung Kiờn 41 Sơ đồ cấu trỳc của DMAC Phan Trung Kiờn 42 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 Phan Trung Kiờn 43 Sơ đồ DMACBXL Bộ nhớ TBNV HRQ DACK DREQ HLDA Bus địa chỉ Bus dữ liệu Bus điều khiển Phan Trung Kiờn 44 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: BXL 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. Phan Trung Kiờn 45 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 BXL 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 BXL khụng dựng bus thỡ lấy bus để tranh thủ truyền một byte dữ liệu. Phan Trung Kiờn 46 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ớ BXL bị treo bus 2 lần Phan Trung Kiờn 47 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ớ BXL chỉ bị treo bus 1 lần Phan Trung Kiờn 48 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ớ BXL cũng chỉ bị treo bus 1 lần Phan Trung Kiờn 49 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 Phan Trung Kiờn 50 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 Modul vào/ra song song Đến bus hệ thống Đến thiết bị ngoại vi Phan Trung Kiờn 51 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 Modul vào/ra nối tiếp Đến bus hệ thụn g Đến thiết bị ngoạ i vi Phan Trung Kiờn 52 Cỏc cấu hỡnh nối ghộp Đ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ị Phan Trung Kiờn 53 Cỏc cổng vào-ra thụng dụng trờn PC Cỏc cổng PS/2: nối ghộp bàn phớm và chuột Cổng nối ghộp màn hỡnh Cổng LPT (Line Printer): nối ghộp với mỏy in, là cổng song song (Parallel Port) – 25 chõn Cổng COM (Communication): nối ghộp với modem, chuột, là cổng nối tiếp (Serial Port) – 9 chõn hoặc 25 chõn Cổng 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ị, nhờ cỏc USB Hub Phan Trung Kiờn 54 Kiến trỳc mỏy tớnh HẾT CHƯƠNG 6
File đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_6_he_thong_vaora_phan_tr.pdf