Giáo trình Kiến trúc máy tính - Chương 6: Hệ thống vào/ra
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Kiến trúc máy tính - Chương 6: Hệ thống vào/ra", để 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:
- giao_trinh_kien_truc_may_tinh_chuong_6_he_thong_vaora.pdf
Nội dung text: Giáo trình Kiến trúc máy tính - Chương 6: Hệ thống vào/ra
- Kiến trỳc mỏy tớnh Chương 6 HỆ THỐNG VÀO/RA Phan Trung Kiờn 1
- 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 2
- 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 3
- Tổng quan về Hệ thống vào/ra BXL Cỏc ngắt Cache Bus chớnh Mạch ĐK Mạch ĐK Mạch ĐK Bộ nhớ vào/ra vào/ra vào/ra chớnh Đồ họa Đĩa Đĩa Mạng Phan Trung Kiờn 4
- 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 5
- 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 6
- Một số TBNV thụng dụng Phan Trung Kiờn 7
- Sơ đồ khối của TBNV Tín hiệu ĐK Tín hiệu TT Dữ liệu đến từ Modul đến Modul và từ Modul vào/ra vào/ra vào/ra Bộ đệm Logic ĐK Bộ chuyển đổi tín hiệu Dữ liệu đến và từ môi tr−ờng bên ngoài Phan Trung Kiờn 8
- 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 9
- 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 10
- Sơ đồ khối của Modul vào/ra Nối ghép với Nối ghép với bus hệ thống TBNV Dữ liệu Thanh ghi dữ liệu Logic Các đ−ờng giao diện Trạng thái dữ liệu với TBNV Thanh ghi ĐK/trạng thái Điều khiển Các đ−ờng Dữ liệu địa chỉ Logic Logic giao diện Trạng thái Các đ−ờng vào/ra với TBNV Điều khiển điều khiển Phan Trung Kiờn 11
- 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 12
- 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 13
- 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 14
- Vớ dụ đối với BXL 8088 00000H 1 MB 0000H 0000H 64 KB 64 KB FFFFFH FFFFH FFFFH 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 Phan Trung Kiờn 15
- 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 16
- Vớ dụ đối với BXL 8088 00000H . Lệnh và tớn hiệu đi ều khiển chung VÀO/RA BỘ NHỚ cho cả hai: MOV IO/M = 0 FFFFFH Phan Trung Kiờn 17
- 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 18
- 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 19
- 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 20
- Lưu đồ hoạt động Đọc trạng thỏi của TBNV Sai TBNV sẵn sàng? Đỳng Trao đổi DL với TBNV Phan Trung Kiờn 21
- 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 22
- Đặ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 23
- 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 24
- 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 25
- 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 26
- Hoạt động Mạch điều khiển thiết bị phỏt ra ngắt BXL thực hiện BXL cất cỏc thụng tin cũn xong lệnh hiện tại lại của trạng thỏi xử lý ng ứ BXL phỏt tớn hiệu Thực hiện Ph chấp nhận ngắt ngắt n c ần m ầ Ph BXL cất nội dung Thanh ghi Khụi phục ềm cờ và Bộ đếm CT vào Stack thụng tin trạng thỏi BXL nạp vào Bộ đếm CT giỏ trị địa chỉ mới lấy từ Khụi phục Thanh ngắt vào ghi cờ và Bộ đếm CT Phan Trung Kiờn 27
- Đặ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 28
- 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 29
- PP1: Nhiều đường yờu cầu ngắt INTR 3 ắt INTR 2 INTR 1 INTR 0 Thanh ghi ng Modul Modul Modul Modul vào ra vào ra vào ra vào ra BXL . 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ị Phan Trung Kiờn 30
- PP2: Kiểm tra vũng bằng phần mềm Cờ yờu INTR cầu ngắt Modul Modul Modul Modul vào ra vào ra vào ra vào ra BXL . BXL thực hiện phần mềm kiểm tra từng Modul . Tố c độ chậm Phan Trung Kiờn 31
- PP3: Kiểm tra vũng bằng phần cứng Bus dữ liệu Cờ yờu INTR cầu ngắt INTA Modul Modul Modul Modul vào ra vào ra vào ra vào ra BXL . 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 Phan Trung Kiờn 32
- 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 33
- 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 34
- Ngắt tuần tự Phan Trung Kiờn 35
- Ngắt lồng nhau Phan Trung Kiờn 36
- 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 37
- PIC Bus DL INTR 3 INTR 2 INTR INTR 1 BXL PIC INTR 0 Modul Modul Modul Modul INTA vào ra vào ra vào ra vào ra . 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 Phan Trung Kiờn 38
- Vớ dụ: PIC 8259A Phan Trung Kiờn 39
- 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 40
- Sơ đồ cấu trỳc của DMAC Phan Trung Kiờn 41
- 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 42
- Sơ đồ Bus địa chỉ HRQ DREQ BXL DMAC Bộ nhớ TBNV HLDA DACK Bus dữ liệu Bus điều khiển Phan Trung Kiờn 43
- 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 44
- 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 45
- 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 46
- 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 47
- 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 48
- 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 49
- Nối ghộp song song Đến Đến Modul bus hệ thiết bị vào/ra thống ngoại song vi song . Truyền nhiều bit song song . Tố c độ nhanh . C ần nhiều đường truyền dữ liệu Phan Trung Kiờn 50
- Nối ghộp nối tiếp Đến Đến Modul bus thiết vào/ra hệ bị nối thụn ngoạ tiếp i vi g . 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 Phan Trung Kiờn 51
- 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 52
- 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 53
- Kiến trỳc mỏy tớnh HẾT CHƯƠNG 6 Phan Trung Kiờn 54