HC VIN NG N HNG KHOA H THNG

  • Slides: 47
Download presentation
HỌC VIỆN NG N HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ KIẾN TRÚC

HỌC VIỆN NG N HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ KIẾN TRÚC MÁY TÍNH CHƯƠNG 11: HỆ THỐNG VÀO/RA Hà Nội – 2016

Tổng quan về Hệ thống vào/ra v Chức năng của hệ thống vào/ra: trao

Tổng quan về Hệ thống vào/ra v 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 v Các thao tác cơ bản: § Vào dữ liệu (Input) § Ra dữ liệu (Output) v 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)

Hệ thống vào/ra

Hệ thống vào/ra

Tại sao cần Modul vào/ra? v Không thể nối trực tiếp các thiết bị

Tại sao cần Modul vào/ra? v 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 v 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

Các thiết bị ngoại vi v Chức năng: chuyển đổi dữ liệu giữa bên

Các thiết bị ngoại vi v Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính v 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)

Sơ đồ khối của TBNV

Sơ đồ khối của TBNV

Các thành phần cơ bản của TBNV v Bộ chuyển đổi tín hiệu (transducer):

Các thành phần cơ bản của TBNV v 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 v 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 v 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

Modul vào/ra v Chức năng: § § § Điều khiển và định thời gian

Modul vào/ra v 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

Sơ đồ khối của Modul vào/ra

Sơ đồ khối của Modul vào/ra

Thành phần cơ bản của Modul vào/ra v Thanh ghi dữ liệu: đệm dữ

Thành phần cơ bản của Modul vào/ra v Thanh ghi dữ liệu: đệm dữ liệu trong quá trình trao đổi v 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 v 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 v Logic điều khiển: điều khiển Modul vào/ra

Các PP địa chỉ hóa cổng vào/ra v Vào/ra cách biệt (isolated IO) v

Các PP địa chỉ hóa cổng vào/ra v Vào/ra cách biệt (isolated IO) v Vào/ra theo bản đồ bộ nhớ (memory mapped IO)

Vào/ra cách biệt v Đặc điểm: § Không gian địa chỉ cổng vào/ra nằm

Vào/ra cách biệt v Đặc điểm: § Không gian địa chỉ cổng vào/ra nằm ngoài không gian địa chỉ bộ nhớ v 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.

Vào/ra theo bản đồ bộ nhớ v Đặc điểm: § Không gian địa chỉ

Vào/ra theo bản đồ bộ nhớ v Đặc điểm: § Không gian địa chỉ cổng vào/ra nằm trong không gian địa chỉ bộ nhớ v 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ớ

Các phương pháp điều khiển vào/ra v Vào/ra bằng chương trình (Programmed IO) v

Các phương pháp điều khiển vào/ra v Vào/ra bằng chương trình (Programmed IO) v Vào/ra bằng ngắt (Interrupt Driven IO) v Vào/ra bằng DMA (Direct Memory Access)

Vào/ra bằng chương trình v Nguyên tắc chung: § Sử dụng lệnh vào/ra trong

Vào/ra bằng chương trình v 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

Hoạt động vào/ra bằng chương trình v BXL yêu cầu thao tác vào/ra v

Hoạt động vào/ra bằng chương trình v BXL yêu cầu thao tác vào/ra v Modul vào/ra thực hiện thao tác v Modul vào/ra thiết lập các bit trạng thái v 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

Các lệnh vào/ra v BXL phát ra địa chỉ § Xác định Modul vào/ra

Các lệnh vào/ra v 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ị) v 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ị

Đặc điểm v BXL trực tiếp điều khiển vào/ra § Nhận biết thông tin

Đặc điểm v 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 v BXL chờ đến khi Modul vào/ra hoàn thành thao tác v Tốn thời gian của BXL

Phân loại ngắt v Ngắt cứng (Hard Interrupt): yêu cầu ngắt do mạch phần

Phân loại ngắt v 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

Phân loại ngắt v Ngắt mềm (Soft Interrupt): Yêu cầu ngắt do lệnh gọi

Phân loại ngắt v 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 v 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

Nguyên tắc hoạt động v BXL không mất thời gian chờ đợi v BXL

Nguyên tắc hoạt động v BXL không mất thời gian chờ đợi v BXL không phải kiểm tra trạng thái sẵn sàng của TBNV v Modul vào/ra ngắt BXL khi nó ở trạng thái sẵn sàng

Hoạt động

Hoạt động

Đặc điểm v Có sự kết hợp giữa phần cứng và phần mềm §

Đặc điểm v 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 v BXL trực tiếp điều khiển vào/ra v BXL không phải đợi Modul vào/ra hiệu quả BXL sử dụng tốt hơn

Các PP xác định modul ngắt v Nhiều đường yêu cầu ngắt (Different line

Các PP xác định modul ngắt v Nhiều đường yêu cầu ngắt (Different line for each module) v Kiểm tra vòng bằng phần mềm (Software poll) v Kiểm tra vòng bằng phần cứng (Daisy Chain or Hardware poll) v Chiếm bus (Bus Master)

PP 1: Nhiều đường yêu cầu ngắt v BXL phải có các đường yêu

PP 1: Nhiều đường yêu cầu ngắt v BXL phải có các đường yêu cầu ngắt khác nhau cho mỗi modul vào/ra v Hạn chế số lượng thiết bị

PP 2: Kiểm tra vòng bằng phần mềm v BXL thực hiện phần mềm

PP 2: Kiểm tra vòng bằng phần mềm v BXL thực hiện phần mềm kiểm tra từng Modul v Tốc độ chậm

PP 3: Kiểm tra vòng bằng phần cứng v BXL phát tín hiệu chấp

PP 3: Kiểm tra vòng bằng phần cứng v BXL phát tín hiệu chấp nhận ngắt đến chuỗi các Modul vào/ra v Modul sẽ đáp ứng bằng cách đặt vectơ ngắt lên bus dữ liệu v BXL sử dụng vectơ để xác định CTC điều khiển ngắt

PP 4: Chiếm bus v Modul vào/ra cần chiếm bus trước khi nó phát

PP 4: Chiếm bus v 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 Ví dụ: § PCI § SCSI

Xử lý với nhiều ngắt v Các ngắt bị cấm § BXL sẽ bỏ

Xử lý với nhiều ngắt v 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ự v Đị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 đó

Ngắt tuần tự

Ngắt tuần tự

Ngắt lồng nhau

Ngắt lồng nhau

Nhiều ngắt xảy ra đồng thời v Nếu có nhiều yêu cầu ngắt cùng

Nhiều ngắt xảy ra đồng thời v 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? v Nhờ sự can thiệp của Mạch điều khiển ngắt lập trình được (PIC - Programmable Interrupt Controller)

PIC v PIC có nhiều đường vào yêu cầu ngắt v PIC chọn ngắt

PIC v PIC có nhiều đường vào yêu cầu ngắt v PIC chọn ngắt có ưu tiên cao nhất (không bị cấm) gửi tới BXL

Vào/ra bằng DMA v Vào ra bằng chương trình và vào ra bằng ngắt

Vào/ra bằng DMA v 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 v Để 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

Sơ đồ cấu trúc của DMAC

Sơ đồ cấu trúc của DMAC

Các thành phần của DMAC v Thanh ghi dữ liệu: chứa dữ liệu cần

Các thành phần của DMAC v Thanh ghi dữ liệu: chứa dữ liệu cần trao đổi v Thanh ghi địa chỉ: chứa địa chỉ ngăn nhớ dữ liệu v Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổi v Logic điều khiển: điều khiển hoạt động của DMAC

Quá trình hoạt động v B 1: TBNV gửi tín hiệu DREQ (Dma REQuest)

Quá trình hoạt động v B 1: TBNV gửi tín hiệu DREQ (Dma REQuest) tới DMAC v B 2: DMAC gửi tín hiệu HRQ (Hold Re. Quest) để xin dùng các đường bus v B 3: 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 (Ho. LD Acknowledge) tới DMAC v B 4: DMAC gửi tín hiệu DACK (Dma ACKnowledge) tới TBNV báo chuẩn bị truyền dữ liệu v B 5: DMAC thực hiện điều khiển quá trình truyền dữ liệu giữa bộ nhớ và TBNV v B 6: 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.

Các kiểu thực hiện DMA v DMA truyền theo khối (block-transfer DMA): DMAC sử

Các kiểu thực hiện DMA v DMA truyền theo khối (block-transfer DMA): DMAC sử dụng bus để truyền cả khối dữ liệu v 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 v 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

DMA: kiểu 1 v Bus đơn, bộ điều khiển DMA riêng rẽ v Mỗi

DMA: kiểu 1 v Bus đơn, bộ điều khiển DMA riêng rẽ v 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ớ v BXL bị treo bus 2 lần

DMA: kiểu 2 v Bus đơn, bộ điều khiển DMA tích hợp v DMAC

DMA: kiểu 2 v Bus đơn, bộ điều khiển DMA tích hợp v DMAC điều khiển một hoặc vài Modul vào/ra v Mỗi lần truyền, chỉ sử dụng bus 1 lần § Từ DMAC tới bộ nhớ v BXL chỉ bị treo bus 1 lần

DMA: kiểu 3 v Bus vào/ra tách rời, hỗ trợ tất cả các thiết

DMA: kiểu 3 v Bus vào/ra tách rời, hỗ trợ tất cả các thiết bị cho phép DMA v Mỗi lần truyền chỉ dùng bus 1 lần: § Từ DMA tới bộ nhớ v BXL cũng chỉ bị treo bus 1 lần

Nối ghép thiết bị ngoại vi v Các kiểu nối ghép vào/ra: § Nối

Nối ghép thiết bị ngoại vi v Các kiểu nối ghép vào/ra: § Nối ghép song § Nối ghép nối tiếp v Các cấu hình nối ghép: § Điểm tới điểm § Điểm tới đa điểm

Nối ghép song v Truyền nhiều bit song v Tốc độ nhanh v Cần

Nối ghép song v Truyền nhiều bit song v Tốc độ nhanh v Cần nhiều đường truyền dữ liệu

Nối ghép nối tiếp v Truyền lần lượt từng bit v Cần có bộ

Nối ghép nối tiếp v Truyền lần lượt từng bit v Cần có bộ chuyển đổi song thành nối tiếp và ngược lại v Tốc dộ chậm v Cần ít đường truyền dữ liệu

Các cấu hình nối ghép v Điểm tới điểm (point-to-point): § Thông qua một

Các cấu hình nối ghép v Đ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, . . . v Đ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 Fire. Wire: 63 thiết bị