Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 14: Hệ thống I/O
Các thiết bị nhập/xuất (I/O)
?Đây chỉ là một vài thí dụ về những thiết bị
I/O khác nhau mà ta đã quen biết chúng.
?Lưu ý rằng hầu hết các thiết bị I/O đều có
con người là đối tác của chúng. Các thiết bị
này thường có tốc độ dữ liệu đỉnh tương đối
thấp, do con người trong trường hợp tổng
quát tương đối chậm so với hệ thống máy
tính.
?Các ngoại lệ là máy in laser và bộ hiển thị
đồ họa
?Đây chỉ là một vài thí dụ về những thiết bị
I/O khác nhau mà ta đã quen biết chúng.
?Lưu ý rằng hầu hết các thiết bị I/O đều có
con người là đối tác của chúng. Các thiết bị
này thường có tốc độ dữ liệu đỉnh tương đối
thấp, do con người trong trường hợp tổng
quát tương đối chậm so với hệ thống máy
tính.
?Các ngoại lệ là máy in laser và bộ hiển thị
đồ họa
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 14: Hệ thống I/O", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- bai_giang_vi_xu_ly_nang_cao_phan_1_thiet_ke_cpu_risc_bai_14.pdf
- Lec14.ppt
Nội dung text: Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 14: Hệ thống I/O
- Bài giảng “Vi xử lý nâng cao” Phần 1: Thiết kế CPU RISC Bài 14: Hệ thống I/O 1
- Các thiết bị nhập/xuất (I/O) Các thiết bị I/O rất đa dạng đối với Hành vi – nhập (input), xuất (output), lưu trữ (storage). Đối tác – con người (human) hoặc máy (machine). Tốc độ dữ liệu (Mb/s) – tốc độ đỉnh ở đó dữ liệu có thể truyền giữa thiết bị I/O và bộ nhớ chính hoặc bộ xử lý. Thiết bị Hành vi Đối tác Tốc độ dữ liệu Bàn phím nhập người 0.0001 Chuột nhập người 0.0038 8 Máy in laser xuất người 3.2000 tốc độtầm Hiển thị đồ xuất máy 800.0000-8000.0000 họa Mạng /LAN nhập hoặc máy 100.0000-1000.0000 xuất Đĩa từ lưu trữ máy 240.0000-2560.0000 3
- Các thiết bị nhập/xuất (I/O) Máy in laser yêu cầu tốc độ dữ liệu cao do máy này lấy nhiều bit để mô tả hình ảnh độ phân giải cao mà ta muốn in bằng đầu ghi laser. Bộ hiển thị đồ họa cũng yêu cầu tốc độ dữ liệu cao do tất cả đối tượng màu mà ta thấy trong thế giới thực và cho là hiển nhiên đều rất khó tái tạo trên màn hình đồ họa. Các tốc độ dữ liệu trải rộng ra 8 bậc và luôn luôn được đánh giá theo cơ số 10 sao cho 10 Mb/sec = 10,000,000 bit/sec. 5
- Truyền thông giữa thiết bị I/O và bộ xử lý Nếu các lệnh I/O đặc biệt được sử dụng, hệ điều hành (OS) sẽ sử dụng lệnh I/O này để chỉ rõ cả số của thiết bị lẫn từ lệnh (command word). Bộ xử lý kế đến thực thi lệnh I/O đặc biệt này bằng cách truyền số của thiết bị đến thiết bị I/O (trong đa số trường hợp) thông qua tập các đường điều khiển trên bus và đồng thời gởi lệnh đến thiết bị I/O bằng cách sử dụng các đường dữ liệu của bus. Các lệnh I/O đặc biệt không được sử dụng một cách rộng rãi. Đa số bộ xử lý đều dùng I/O ánh xạ bộ nhớ trong đó nhiều phần của không gian địa chỉ được gán đến thiết bị I/O. 7
- I/O trong SPIM SPIM hỗ trợ một thiết bị I/O ánh xạ bộ nhớ – một thiết bị đầu cuối có hai đơn vị độc lập. Đơn vị nhận (receiver) đọc các ký tự từ bàn phím. Đơn vị phát (transmitter) ghi các ký tự đến màn hình. Processor Devices Control Transmitter Memory Datapath Receiver 9
- Điều khiển đơn vị nhận (nhập) với SPIM Đầu cuối nhập được điều khiển nhờ 2 thanh ghi ánh xạ bộ nhớ của thiết bị (i.e., mỗi thanh ghi hiện diện như là một vị trí nhớ đặc biệt) . 7 0 Receiver data unused (0xffff0004) (thanh ghi received byte dữ liệu (read only) nhận) 1 0 Receiver control unused (0xffff0000) (thanh ghi interrupt enable ready điều khiển (read only) nhận) 11
- Điều khiển đơn vị phát (xuất) với SPIM Đầu cuối phát được điều khiển nhờ 2 thanh ghi ánh xạ bộ nhớ của thiết bị (i.e., mỗi thanh ghi hiện diện như là một vị trí nhớ đặc biệt). 7 0 Transmitter data unused (0xffff000c) (thanh ghi transmitted byte dữ liệu phát) 1 0 Transmitter control unused (0xffff0008) (thanh ghi interrupt enable ready điều khiển (read only) phát) 13
- Các ngắt của I/O Một ngắt I/O là không đồng bộ đối với việc thực thi lệnh, trong khi đó ngoại lệ như là tràn hoặc lỗi trang luôn luôn kết hợp với một lệnh nào đó. Cũng đối với ngoại lệ, thông tin duy nhất cần được truyền là sự kiện mà điều kiện ngoại lệ xảy ra, còn đối với ngắt có nhiều thông tin hơn cần được truyền. Ta cần xem xét tỉ mỉ ngắt và ngoại lệ. Không như ngoại lệ luôn luôn kết hợp với một lệnh, ngắt không kết hợp với bất kỳ lệnh nào. Chương trình của người sử dụng chỉ sẽ được thực hiện khi có một ngắt xảy ra. 15
- Thiết bị nhập kích ngắt 1. Processor ngắt nhập add sub and chương or trình của 2.1 lưu PC beq user Receiver Memory 2.3 phục vụ ngắt. 2.2 nhảy đến Keyboard trình phục lbu vụ ngắt ISR sb trình phục vụ 2.4 trở về jr ngắt chương nhập trình của user. memory 17
- Thiết bị nhập kích ngắt Nghĩa là, mỗi khi thiết bị I/O cần sự chú ý từ bộ xử lý, thiết bị I/O sẽ tạm dừng bộ xử lý từ lệnh mà bộ xử lý đang thực thiện. Dĩ nhiên bộ xử lý phải hoàn tất lệnh hoặc nhóm lệnh đang thực thi trước khi phục vụ ngắt. Đây là cách thức một ngắt I/O nhìn vào sơ đồ tổng thể. Bộ xử lý đang bận tâm đến công việc của mình khi một trong các thiết bị I/O muốn được quan tâm và gây ra một ngắt. Kế đến bộ xử lý lưu PC hiện hành, rẽ nhánh đến nơi mà trình phục vụ ngắt ISR (interrupt service routine) đang thường trú và bắt đầu thực thi ISR này. 19
- Thiết bị xuất kích ngắt 1. Ngắt xuất add sub Processor and chương or trình của 2.1 lưu PC beq user 2.3 phục vụ ngắt. Memory Trnsmttr 2.2 nhảy đến trình phục lbu vụ ngắt ISR sb trình Display phục vụ 2.4 trở về jr ngắt xuất chương trình của user. memory 21
- Các ngoại lệ tổng quát Xử lý ngoại Chương trình lệ của hệ của user Luồng điều Ngoại lệ thống khiển bình thường: tuần tự, nhảy , rẽ nhánh , Trở về từ gọi , trở về ngoại lệ Ngoại lệ = chuyển điều khiển không được lập trình. hệ thống hành động để xử lý ngoại lệ - phải ghi lại địa chỉ của sự phạm lỗi hoặc cái tiếp theo để thực thi lệnh và lưu (và khôi phục) trạng thái chương trình của người sử dụng. trả điều khiển cho chương trình của người sử dụng sau khi xử lý ngoại lệ. 23
- Thêm vào MIPS ISA để hỗ trợ ngoại lệ Đồng xử lý 0 ghi lại thông tin mà phần mềm cần để xử lý các ngoại lệ. EPC (register 14) – lưu địa chỉ +4 của lệnh đang thực thi khi ngoại lệ xảy ra. Status (register 12) – các bit mặt nạ và cho phép bẫy/ngắt. 15 8 4 1 0 Intr Mask User mode Intr enable Excp level - Intr Mask = 1 bit cho mỗi mức trong 6 mức ngoại lệ cứng và 2 mức ngoại lệ mềm (1 sẽ cho phép các ngoại lệ ở mức này ). - User mode = 0 nếu đang chạy trong chế độ kernel khi ngoại lệ xảy ra ; 1 nếu đang chạy trong chế độ người sử dụng (cố định ở 1 trong SPIM). - Excp level = bằng 1 (không cho phép các ngoại lệ) sau khi ngoại lệ xảy ra ; cần được xóa bởi trình xử lý ngoại lệ sau khi xong. - Intr enable = 1 nếu các ngoại lệ được cho phép ; 0 không cho phép. 25
- Thêm vào MIPS ISA cho các ngắt I/O Các tín hiệu để ghi EPC ( EPCWrite ), Cause (CauseWrite ), và Status. Phần cứng để ghi lại kiểu (loại) ngắt trong Cause. Sửa đổi máy trạng thái hữu hạn sao cho địa chỉ của trình xử lý ngắt (interrupt handler) (8000 0180 hex ) có thể được nạp vào trong PC, do vậy cần tăng kích thước của mạch ghép kênh PC ( PC mux). và lưu địa chỉ của lệnh kế tiếp trong EPC. 27
- FSM đã sửa đổi ngắt 0IorD = 0 Instr Fetch 1 Decode MemRead;IRWrite ALUSrcA = 0 ALUSrcA = 0 Start ALUsrcB = 01 ALUSrcB = 11 ALUOp = 00 ALUOp = 00 PCSource = 00 PCWrite 2 6 8 9 ALUSrcA = 1 ALUSrcA = 1 ALUSrcA = 1 ALUSrcB = 00 PCSource = 10 ALUSrcB = 10 Execute ALUSrcB = 00 ALUOp = 01 PCWrite ALUOp = 00 ALUOp = 10 PCSource = 01 PCWriteCond 3 Memory Access 5 7 RegDst = 1 MemRead MemWrite IorD = 1 RegWrite IorD = 1 MemtoReg = 0 11 Interrupt 4 pending? RegDst = 0 CauseWrite RegWrite EPCWrite;PCWrite MemtoReg = 1 IntrOrExcp = 0 Write Back PCSource = 11 29
- Thí dụ về trình phục vụ ngắt I/O Giả định rằng ký tự nhập sẽ được trả về chương trình trong $v0 còn ký tự xuất ở trong $v1. Trình xử lý ngắt không thể cất các thanh ghi vào stack, như một chương trình bình thường sẽ làm, do nguyên nhân của ngắt có thể là tham chiếu bộ nhớ sử dụng một giá trị xấu (như là 0) trong con trỏ stack (stack pointer). Thay vào đó, trình xử lý ngắt lưu các thanh ghi vào trong các ô nhớ. 31
- Thêm vào MIPS ISA cho các bẫy Các lệnh đặc biệt để xử lý các bẫy. lwc0 and swc0 – để nạp (lưu) một từ trong không gian nhớ người sử dụng vào trong thanh ghi của đồng xử lý 0. mfc0 and mtc0 – để di chuyển từ (đến) 1 thanh ghi của đồng xử lý 0 đến (từ) thanh ghi của bộ xử lý. eret – trở về từ ngoại lệ (xóa bit EXL của thanh ghi Status và nhảy đến lệnh được trỏ bởi EPC). 15 8 4 1 0 Intr Mask User mode Intr enable Excp level Các tín hiệu điều khiển để ghi EPC ( EPCWrite & IntrOrExcp ), Cause ( CauseWrite ), Status, & BadVAddr Phần cứng ghi lại kiểu (loại) của bẫy trong Cause. Sửa đổi thêm nữa máy trạng thái hữu hạn sao cho đối với các bẫy , ghi lại địa chỉ của lệnh (lỗi vi phạm) hiện hành trong EPC, do vậy không cần thực hiện PC = PC + 4 trong thời gian tìm nạp. 33
- Cách thức điều khiển phát hiện 2 bẫy Các lệnh không định nghĩa (RI) – được phát hiện khi không có trạng thái kế được định rõ từ trạng thái 1 đối với giá trị của opcode. Định rõ giá trị trạng thái kế cho mọi giá trị op khác với lw, sw, R-type, jmp, và beq như là trạng thái 10. Tràn số học (OVF) – tín hiệu tràn từ ALU được sử dụng trong trạng thái 6 ( nếu không muốn hoàn tất RegWrite) hoặc trong trạng thái 7 để chỉ rõ trạng thái kế đúng. Cần sửa đổi FSM theo cách tuơng tự đối với các bẫy còn lại. Thách thức ở đây là xử lý những tương tác giữa các lệnh và các sự kiện gây ra ngoại lệ sao cho mạch logic điều khiển vẫn nhỏ và nhanh. - Những tương tác phức tạp khiến cho đơn vị điều khiển trở khía cạnh nhiều thử thách nhất của việc thiết kế phần cứng, đặc biệt là trong các bộ xử lý có đường ống. 35
- Thí dụ về trình phục vụ bẫy .kdata s1: .word 0 s2: .word 0 .ktext 0x80000180 move $k1, $at # Save $at sw $v0, s1 # Not re-entrant and we can't trust $sp sw $a0, s2 mfc0 $k0, $13 # Save Cause sgt $v0, $k0, 0x00 # ignore interrupt exceptions bgtz $v0, ret addu $0, $0, 0 li $v0, 4 # syscall 4 (print_str) la $a0 __m1_ syscall li $v0, 1 # syscall 1 (print_int) srl $a0, $k0, 2 # shift Cause reg syscall li $v0, 4 # syscall 4 (print_str) lw $a0, __excp($k0) syscall bne $k0, 0x18, ok_pc # Bad PC requires special checks . . . ok_pc:li $v0, 4 # syscall 4 (print_str) la $a0, __m2_ syscall mtc0 $0, $13 # Clear Cause register ret:lw $v0, s1 lw $a0, s2 move $at, $k1 # Restore $at mfc0 $k0, $14 # read EPC addiu $k0, $k0, 4 # EPC = EPC +4 mtc0 $k0, $14 # to return to next instruction eret # Return from exception handler 37
- Vấn đề liên kết nối hệ thống I/O Đây là hình ảnh hệ thống I/O chuyên dụng của một máy tính điển hình. Các thiết bị I/O trình bày ở đây được kết nối với máy tính thông qua các bộ điều khiển I/O đặt trên các bus Memory-I/O. Ta sẽ đề cập đến các bus này sau. Vào lúc này, ta lưu ý rằng hệ thống I/O vốn đã không bình thường so với hệ thống bộ xử lý và bộ nhớ do mọi thiết bị I/O khác nhau (disk, graphics) đều có thể tiếp xúc vào hệ thống này. Do vậy, khi ta thiết kế một hệ thống I/O, hiệu suất vẫn là điều quan trọng cần xem xét. 39
- Các bus Bus là liên kết truyền thông dùng chung (tập duy nhất các dây dẫn được sử dụng để kết nối nhiều hệ thống con) cần để hỗ trợ cho một lượng thiết bị có độ trì hoãn và tốc độ truyền dữ liệu thay đổi rộng. Ưu điểm - Đa dụng – nhiều thiết bị mới có thể được thêm vào một cách dễ dàng và có thể di chuyển được giữa các hệ máy tính sử dụng cùng chuẩn bus. - Giá thành thấp – 1 tập dây dẫn được chia sẻ theo nhiều cách. Khuyết điểm - Tạo ra cổ chai truyền thông – băng thông ( bandwidth) của bus sẽ giới hạn thông lượng ( throughput) I/O cực đại. Tốc độ bus cực đại bị giới hạn ở mức độ lớn bởi chiều dài (length ) của bus, số lượng (number ) thiết bị trên bus. 41
- Các bus Bất lợi chính của tổ chức bus là tổ chức này tạo ra hiện tượng cổ chai truyền thông. Khi I/O phải truyền thông qua một bus duy nhất, băng thông của bus có thể giới hạn thông lượng I/O cực đại. Tốc độ bus cực đại cũng bị giới hạn nghiêm trọng bởi: (a) Chiều dài của bus. (b) Số thiết bị I/O trên bus. (c) Và nhu cầu hỗ trợ một tầm rộng các thiết bị có độ trễ thay đổi lớn và tốc độ truyền dữ liệu khác nhau nhiều. 43
- Các loại bus Bus bộ xử lý/bộ nhớ (độc quyền). Ngắn và tốc độ cao. Tương thích với hệ nhớ để cực đại hóa băng thông bộ nhớ- bộ xử lý. Được tối ưu hóa cho việc truyền khối cache. Bus I/O (chuẩn công nghiệp, e.g., SCSI, USB, Firewire) Thường dài hơn và chậm hơn. Cần phù hợp với tầm rộng các thiết bị I/O. Kết nối với bus bộ xử lý-bộ nhớ hoặc bus backplane. Bus backplane (chuẩn công nghiệp, e.g., ATA, PCIexpress) Backplane là cấu trúc liên kết nối bên trong máy. Được sử dụng làm bus trung gian kết nối các bus I/O với bus bộ xử lý-bộ nhớ. 45
- Các loại bus Bus I/O thường dài và chậm do phải tương thích với một tầm rộng các thiết bị I/O và bus này thường được kết nối với bus bộ xử lý-bộ nhớ hoặc bus backplane. Bus backplane được đặt tên như vậy là do bus này đã được xây dựng vào trong backplane của máy tính –đây là một cấu trúc liên kết nối bên trong chassis. Bus backplane được thiết kế để cho phép bộ xử lý, bộ nhớ và các thiết bị I/O cùng tồn tại trên một bus duy nhất nên bus này có lợi điểm về giá thành là chỉ có một bus duy nhất cho tất cả các thành phần. 47
- Thí dụ: Các bus của Pentium 4 Về cơ bản, chip Northbridge là bộ điều khiển DMA (cho bộ nhớ, thiết bị xuất đồ họa (monitor) và chip Southbridge). Chip Southbridge nối chip Northbridge đến kho hàng (cornucopia) của các bus I/O. 49
- Các bus đang chuyển tiếp Các công ty đang chuyển tiếp từ bus rộng, song song, đồng bộ sang bus hẹp không đồng bộ. Sự dội lại trên các dây dẫn và độ lệch clock làm cho bus khó sử dụng 16 đến 64 đường dây dẫn song song hoạt động ở tốc độ clock cao (e.g., ~400 MHz) nên các công ty đang chuyển dần đến các bus có vài dây dẫn một chiều hoạt động ở tốc độ “clock” rất cao (~2 GHz). PCI PCI express ATA Serial ATA Total # wires 120 36 80 7 # data wires 32 – 64 2 x 4 16 2 x 2 (2-way) (1-way) (2-way) (1-way) Clock (MHz) 33 – 133 635 50 150 Peak BW 128 – 1064 300 100 375 (3 Gbps) (MB/s) 51
- Tán thành () và phản đối () bus Mỗi đơn vị tiếp xúc sẽ thêm vào điện dung ký sinh, do đó hiệu suất điện suy biến theo sự phát triển. Định thời bus sẽ khó khăn trong các quá trình xử lý dưới micron. Trì hoãn của bộ phân xử bus tăng theo số đơn vị chủ. Bộ phân xử bus cũng là một chi tiết thí dụ. Băng thông bị giới hạn và dùng chung bởi tất cả đơn vị tiếp xúc. 53
- Mạng trên chip Software Traffic Queuin Modeling g Transport Architect Theory ures Network Sự dàn xếp của các Wiring công ty Networking Tiếp cận sắp xếp theo lớp. Bus được thay thế bằng kiến trúc nối mạng - Các tính chất điện tốt hơn. - Băng thông cao hơn. - Hiệu quả về năng lượng. - Định tỉ lệ được. 55