Bài giảng Kiến trúc máy tính và hệ điều hành - Chương 4: Nhập/Xuất
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính và hệ điều hành - Chương 4: Nhập/Xuất", để 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_kien_truc_may_tinh_va_he_dieu_hanh_chuong_4_nhapxu.pdf
Nội dung text: Bài giảng Kiến trúc máy tính và hệ điều hành - Chương 4: Nhập/Xuất
- Chương 4 NHẬP/XUẤT 1 1
- Nội dung Hệ thống Bus Một số loại bus: ISA, EISA, PCI, AGP, PCI-E Hệ thống nhập/xuất Các phương pháp điều khiển nhập/xuất Thiết bị ngoại vị và phương pháp nối ghép Các cổng nhập/xuất thông dụng trên PC
- Hệ thống BUS register On chip bus System bus CPU Memory I/O I/O ALU Board Board Local bus Coprocessor
- Hệ thống BUS Bus là tập hợp các đường kết nối dùng để vận chuyển thông tin giữa các thành phần của máy tính với nhau. Độ rộng bus là số đường dây của bus có thể truyền các bit thông tin đồng thời (chỉ dùng cho bus địa chỉ và bus dữ liệu) Phân loại cấu trúc bus: Cấu trúc đơn bus Cấu trúc đa bus
- Hệ thống BUS
- Hệ thống BUS Bus địa chỉ (Address bus) Vận chuyển địa chỉ để xác định ngăn nhớ hay cổng vào/ra. Độ rộng bus địa chỉ xác định dung lượng bộ nhớ cực đại của hệ thống. Nếu độ rộng bus địa chỉ là N bit: AN-1, AN-2, A2, A1, A0 =>dung lượng bộ nhớ cực đại là 2N byte (còn gọi là không gian địa chỉ bộ nhớ) Ví dụ: Bộ xử lý Intel Pentium có bus địa chỉ 32 bit => không gian địa chỉ là 232 byte = 4 GB.
- Hệ thống BUS Bus dữ liệu (Data bus) Vận chuyển lệnh từ bộ nhớ đến CPU vận chuyển dữ liệu giữa CPU, các môđun nhớ và môđun vào-ra. Độ rộng bus dữ liệu xác định số bit dữ liệu có thể được trao đổi đồng thời. M bit: DM-1, DM-2, D2, D1, D0 M thường là 8, 16, 32, 64, 128 bit Ví dụ: Các bộ xử lý Pentium có bus dữ liệu là 64 bit
- Hệ thống BUS Bus điều khiển (Control bus) Vận chuyển các tín hiệu điều khiển Các loại tín hiệu điều khiển: Các tín hiệu phát ra từ CPU để điều khiển môđun nhớ và môđun nhập/xuất Các tín hiệu từ môđun nhớ hay môđun nhập/xuất gửi đến yêu cầu CPU. Các tín hiệu điều khiển đọc/ghi: Memory Read (MEMR) Memory Write (MEMW) I/O Read (IOR) I/O Write (IOW)
- Hệ thống BUS Bus điều khiển (Control bus) Các tín hiệu điều khiển ngắt: Interrupt Request (INTR) Interrupt Acknowledge (INTA) Non Markable Interrupt (NMI) Reset Các tín hiệu điều khiển bus: Bus Request (BRQ): (HOLD) Bus Grant (BGT): (Hold Acknowledge (HLDA) Lock Unlock
- Hệ thống BUS Phân cấp bus cho các thành phần: Bus của bộ xử lý Bus của bộ nhớ chính Các bus vào-ra Phân cấp bus khác nhau về tốc độ Bus bộ nhớ chính và các bus nhập/xuất không phụ thuộc vào bộ xử lý cụ thể.
- Hệ thống BUS Tại một thời điểm chỉ một module trong CPU và DMA Controller có thể điều khiển bus. Sự điều phối này chia thành 2 dạng: Điều phối tập trung: - Một thiết bị phần cứng điều khiển sự truy nhập bus được gọi là Bộ điều khiển bus (Bus Controller) hay Trọng tài bus (Arbiter) - Có thể nằm trên CPU hoặc tách riêng Điều phối phân tán: - Mỗi môđun có thể điều khiển bus, nhưng có sự điều khiển logic trên tất cả các môđun.
- Hệ thống BUS Có 2 dạng bus: Bus đồng bộ Bus có đường tín hiệu Clock Các sự kiện trên bus được xác định bởi xung nhịp Clock. Bus không đồng bộ Không có đường tín hiệu Clock Kết thúc một sự kiện này trên bus sẽ kích hoạt cho một sự kiện tiếp theo.
- Hệ thống BUS Bus đồng bộ
- Hệ thống BUS Bus bất đồng bộ Chu kỳ đọc Chu kỳ ghi
- Một số loại BUS Các Bus điển hình Bus của bộ xử lý (Front Side Bus - FSB): có tốc độ nhanh nhất. Bus của bộ nhớ chính (nối ghép với các môđun RAM). AGP bus (Accelerated Graphic Port) - Bus đồ họa tăng tốc: nối ghép card màn hình tăng tốc. ISA (Industry Standard Architecture) PCI bus (Peripheral Component Interconnection): nối ghép với các TBNV có tốc độ trao đổi dữ liệu nhanh. USB (Universal Serial Bus): Bus nối tiếp đa năng IDE (Integrated Driver Electronics): Bus kết nối với ổ đĩa cứng hoặc ổ đĩa CD, DVD.
- Một số loại BUS Các Bus điển hình trong PC
- Một số loại BUS ISA Bus (Industry Standard Architecture) PC/XT: 20 đường địa chỉ 8 bit dữ liệu Intel 8086/8088 62 chân PC/AT 24 đường địa chỉ 16 bit dữ liệu Intel 80286 98 chân
- Một số loại BUS EISA Bus (Extended Industry Standard Architecture) 32 đường địa chỉ 32 bit dữ liệu Phần mở rộng có 2 levels Ngắt có thể được lập trình
- Một số loại BUS MCA (Micro Channel architecture) Cấu trúc giống EISA Bảng mạch nhỏ hơn EISA Dữ liệu 8 bit, 16 bit, 32 bit Intel 80386/80486 Network Interface Card IBM 83X9648 (MCA)
- Một số loại BUS PCI Bus (Peripheral Component Interconnect) Do Intel thiết kế, độc lập với CPU Băng thông rộng (133MB/sec, 528MB/sec) Hỗ trợ Plug-and-Play (thiết lập cấu hình tự động) Bus dữ liệu: 32 bit, 64 bit Xung nhịp: 33 MHz, 66 MHz
- Một số loại BUS PCI Bus Các thiết bị sử dụng: network card sound card Modems TV tuner card
- Một số loại BUS PCI Express Bus Phát triển kiến trúc PCI (tương thích với PCI) Kiến trúc Point-to-Point Serial Links (Lane) Không dùng kiến trúc shared parallel bus Băng thông rộng Bắt đầu từ 200 MB/sec, có thể x2, ,x32 Hỗ trợ tốt hơn cho truyền thông đa phương tiện (audio, video) Thêm bớt thiết bị khi máy hoạt động (Hot plugging)
- Một số loại BUS PCI Epress Bus
- Một số loại BUS AGP (Accelerated Graphics Port) Do Intel thiết kế Tăng tốc độ hiển thị hình 3D, hình động Dùng 1 bus riêng (AGP) Chip AGP có thể đồng thời truy cập bộ nhớ với CPU Băng thông 533 MB/sec
- Một số loại BUS SCSI (Small Computer System Interface) Dạng I/O bus, điều Serial Attached SCSI drive connector khiển nhiều loại thiết bị: đĩa cứng, CDROM, scanner, máy in Có thể đến 15 thiết bị/cáp Sử dụng cả 2 loại giao tiếp serial và parallel Centronics 50 SCSI connector
- Một số loại BUS IDE (Integrated Drive Electronics) Còn gọi là ATA (AT Attachment) EIDE (Extended IDE) ATA-2 Điều khiển CDROM Hỗ trợ LBA (Logical Block Addressing) ATA-4 Ultra ATA ATA-33/66/100 : tốc độ DMA là 33MHz
- Một số loại BUS USB (Universal Serial Bus) Kết nối các thiết bị đặt ngoài (external) Hỗ trợ cắm nóng (Hot- Sơ đồ 4 đường trong USB ở một dây plugging, Plug-and-Play). dẫn kết nối USB; trong đó: 1, 4 là đường nguồn 5Vdc; 2, 3 là đường Tốc độ: 12 Mbps (1.0), 480 tín hiệu; Chuẩn A cắm vào máy tính, Mbps (2.0), 4.8 Gbps (3.0). chuẩn B cắm vào thiết bị ngoại vi Serial ATA (SATA) Tốc độ cao, từ 150 MB/sec Chỉ điều khiển đĩa Dễ cài đặt (Hot-plugging)
- Hệ thống nhập/xuất Chức năng: 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 Các môđun nhập/xuất
- Hệ thống nhập/xuất Đặc điểm: Tồn tại đa dạng các thiết bị ngoại vi khác nhau về: Nguyên tắc hoạt động Tốc độ Khuôn dạng dữ liệu Tất cả các thiết bị ngoại đều chậm hơn CPU và RAM. Vì vậy, cần có các môđun vào-ra để nối ghép các thiết bị ngoại vi với CPU và bộ nhớ chính
- Hệ thống nhập/xuất Tốc độ nhập/xuất của một số thiết bị (bps)
- Hệ thống nhập/xuất Các thiết bị nhập/xuất Được gọi chung là Thiết bị ngoại vi (peripheral device) Có 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: - Chuột, bàn phím, màn hình, máy in, Thiết bị ngoại vi giao tiếp máy-máy: - Gồm các thiết bị theo dõi và kiểm tra Thiết bị ngoại vi truyền thông: - Modem (modulator/demodulator), - Network Interface Card (NIC, card mạng)
- Hệ thống nhập/xuất Cấu trúc chung Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu giữa bên ngoài và bên trong thiết bị Bộ đệm dữ liệu: đệm dữ liệu khi truyền giữa môđun nhập/xuất và thiết bị Khối logic điều khiển: điều khiển hoạt động của thiết bị đáp ứng theo yêu cầu từ môđun nhập/xuất
- Hệ thống nhập/xuất Module nhập/xuất Điều khiển và định thời Trao đổi thông tin với CPU Trao đổi thông tin với TBNV Đệm giữa bên trong máy tính với TBNV Phát hiện lỗi của TBNV
- Hệ thống nhập/xuất Cấu trúc module nhập/xuất Thanh ghi đệm dữ liệu: đệm dữ liệu trong quá trình trao đổi Các cổng nhập/xuất (I/O Port): kết nối với thiết bị ngoại vi, mỗi cổng có một địa chỉ xác định Thanh ghi trạng thái/điều khiển: lưu giữ thông tin trạng thái/điều khiển cho các cổng vào-ra Khối logic điều khiển: điều khiển môđun vào-ra
- Các phương pháp điều khiển nhập/xuất Các phương pháp địa chỉ hóa cổng nhập/xuất Không gian địa chỉ của bộ xử lý: Một số bộ xử lý chỉ quản lý một không gian địa chỉ duy nhất, gọi là không gian địa chỉ bộ nhớ. N bit địa chỉ -> có 2N địa chỉ
- Các phương pháp điều khiển nhập/xuất Một số bộ xử lý quản lý 2 không gian địa chỉ tách biệt: Không gian địa chỉ bộ nhớ: 2N địa chỉ Không gian địa chỉ vào-ra: 2N1 địa chỉ
- Các phương pháp điều khiển nhập/xuất Đặc điểm của bộ xử lý có 2 không gian địa chỉ: Có tín hiệu điều khiển phân biệt truy nhập không gian địa chỉ bộ nhớ hay không gian địa chỉ nhập/xuất Tập lệnh có các lệnh vào-ra chuyên dụng (IN/OUT) Vídụ: Các bộ xử lý 80x86 và Pentium (Intel) Không gian địa chỉ bộ nhớ = 2^32 Byte = 4 GB Không gian địa chỉ nhập/xuất = 2^16 Byte = 64 KB Tín hiệu điều khiển: M/IO 2 lệnh nhập/xuất chuyên dụng: IN, OUT
- Các phương pháp điều khiển nhập/xuất Nhập/xuất theo bản đồ bộ nhớ (Memory mapped IO) Cổng nhập/xuất được đánh địa chỉ theo không gian địa chỉ bộ nhớ Vào-ra giống như đọc/ghi bộ nhớ CPU trao đổi dữ liệu với cổng nhập/xuất 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 Nhập/xuất riêng biệt (Isolated IO hay IO mapped IO) Cổng nhập/xuất được đánh địa chỉ theo không gian địa chỉ vào-ra riêng biệt CPU trao đổi dữ liệu với cổng nhập/xuất thông qua các lệnh vào-ra chuyên dụng (IN/OUT) Chỉ có thể thực hiện trên các hệ thống có không gian địa chỉ nhập/xuất riêng biệt
- Các phương pháp điều khiển nhập/xuất Nhập/xuất bằng chương trình (Programmed IO): CPU điều khiển trực tiếp nhập/xuất bằng chương trình, Kiểm tra trạng thái của thiết bị ngoại vi, Phát tín hiệu điều khiển đọc/ghi, Trao đổi dữ liệu Nhập/xuất điều khiển bằng ngắt (Interrupt Driven IO): CPU không phải đợi trạng thái sẵn sàng của môđun vào- ra, CPU thực hiện một chương trình nào đó. Khi môđun vào-ra 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 vào-ra tương ứng để trao đổi dữ liệu CPU trở lại tiếp tục thực hiện chương trình đang bị ngắt
- Các phương pháp điều khiển nhập/xuất Truy nhập bộ nhớ trực tiếp – DMA (Direct Memory Access): Nhập/xuất bằng chương trình và bằng ngắt do CPU trực tiếp điều khiển sẽ chiếm thời gian của CPU, tốc độ bị hạn chế vì phải chuyển qua CPU. DMA khắc phục được các vấn đề trên. Thêm môđun phần cứng trên bus -> DMAC (DMA Controller) DMAC điều khiển nhập/xuất không thông qua CPU
- Các phương pháp điều khiển nhập/xuất Hoạt động nhập dữ liệu Module nhập/xuất nhận tín hiệu điều khiển đọc từ CPU Module nhập/xuất nhận dữ liệu từ thiết bị ngoại vi, trong khi đó CPU làm việc khác Module nhập/xuất phát tín hiệu ngắt CPU CPU yêu cầu dữ liệu Môđun nhập/xuất chuyển dữ liệu đến CPU Đối với CPU: CPU phát tín hiệu điều khiển đọc CPU có thể xử lý yêu cầu 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 ngữ cảnh (nội dung các thanh ghi) Thực hiện chương trình con ngắt để vào dữ liệu Khôi phục ngữ cảnh của chương trình đang thực hiện
- Thiết bị ngoại vi và phương pháp nối ghép 1. Nhiều đườ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 module nhập/xuất Các đường ngắt được quy I/O I/O I/O I/O định mức ưu tiên 2. Kiểm tra vòng bằng phần mềm (Software Poll) CPU thực hiện phần mềm hỏi lần lượt từng module nhập/xuất I/O I/O I/O I/O Chậm Thứ tự các môđun được hỏi vòng chính là thứ tự ưu tiên
- Thiết bị ngoại vi và phương pháp nối ghép 3. Kiểm tra vòng bằng phần cứng (Daisy Chain hay Hardware Poll) CPU phát tín hiệu chấp nhận ngắt (INTA) đến môđun vào-ra đầu tiên Nếu môđun vào-ra đó 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 Môđun vào-ra gây ngắt sẽ đặt vector ngắt lên bus dữ liệu CPU sử dụng vector ngắt để xác định nơi chứa chương trình con điều khiển ngắt Thứ tự các môđun vào-ra kết nối trong chuỗi xác định thứ tự ưu tiên. I/O I/O I/O I/O
- Thiết bị ngoại vi và phương pháp nối ghép 4. Bộ điều khiển ngắt lập trình được (PIC) PIC – Programmable Interrupt Controller PIC có nhiều đường vào yêu cầu ngắt có quy đị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 Ví dụ: PIC 8259A I/O I/O I/O I/O
- Các phương pháp điều khiển nhập/xuất Đặc điểm của nhập/xuất đ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 vào-ra CPU không phải đợi môđun vào-ra -> hiệu quả sử dụng CPU tốt hơn
- Các phương pháp điều khiển nhập/xuất Các thành phần của DMAC Thanh ghi dữ liệu: Chứa dữ liệu 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 (word) cần trao đổi Logic điều khiển: Điều khiển hoạt động của DMAC
- Các phương pháp điều khiển nhập/xuất Hoạt động DMA CPU “nói” cho DMAC: Vào hay ra dữ liệu Địa chỉ thiết bị vào-ra Đị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 word 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
- Các phương pháp điều khiển nhập/xuất 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 chiếm chu kỳ (Cycle Stealing DMA): DMAC ép CPU treo tạm thời từng chu kỳ bus DMAC chiếm bus thực hiện truyền một word 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 word
- Các phương pháp điều khiển nhập/xuất Cấu hình DMA Mỗi lần truyền, DMA sử dụng bus 2 lần Giữa môđun nhập/xuất với DMAC Giữa DMAC với bộ nhớ DMAC điều khiển một hoặc vài module nhập/xuất Mỗi lần truyền, DMAC sử dụng bus 1 lần: Giữa DMAC với bộ nhớ
- Thiết bị ngoại vi và phương pháp ghép nối Cấu hình DMA Bus nhập/xuất tách rời, hỗ trợ tất cả các thiết bị cho phép DMA. Mỗi lần truyền, DMAC sử dụng bus 1 lần: Giữa DMAC với bộ nhớ. 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 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 dữ liệu có kích thước lớn
- Thiết bị ngoại vi và phương pháp ghép nối Việc điều khiển nhập/xuất được thực hiện bởi một bộ xử lý nhập/xuất chuyên dụng. Bộ xử lý nhập/xuất hoạt động theo chương trình của riêng nó. Chương trình của bộ xử lý nhập/xuất 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ý.
- Thiết bị ngoại vi và phương pháp ghép nối Ghép song song Truyền nhiều bit song song Module Tốc độ nhanh I/O song Cần nhiều đường truyền dữ song liệu Ghép nối tiếp Truyền lần lượt từng bit Cần có bộ chuyển đổi từ dữ Module liệu song song sang nối tiếp I/O nối hoặc/và ngược lại tiếp Tốc độ chậm hơn Cần ít đường truyền dữ liệu
- Các cổng nhập/xuất thông dụng 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 (RS232) 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ị (quaUSB Hub)