Bài giảng Kiến trúc máy tính - Chương 3: Bộ xử lý
Thành phần cơ bản của bộ xử lý
– Lệnh truy cập
– Các toán tử ALU
– Toán tử bộ nhớ
Kết nối các thành phần
– Các tín hiệu điều khiển và bộ đồn kênh MUXes
– Các chỉ thị giải mã lệnh
Readings from the book
– ALU Function field (fig.4.13 in 4.4)
– Some data path details
– The book has excellent descriptions of this topic.
Please read the book before watching this lecture.
The reading assignment is on the website.
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 - Chương 3: Bộ xử lý", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc máy tính - Chương 3: Bộ xử lý
Chương 3: Bộ xử lý Khối điều khiển và Đường dữ liệu Nội dung Thành phần cơ bản của bộ xử lý – Lệnh truy cập – Các toán tử ALU – Toán tử bộ nhớ Kết nối các thành phần – Các tín hiệu điều khiển và bộ đồn kênh MUXes – Các chỉ thị giải mã lệnh Material that is not in this lecture Readings from the book – ALU Function field (fig.4.13 in 4.4) – Some data path details – The book has excellent descriptions of this topic. Please read the book before watching this lecture. The reading assignment is on the website. Thực thi cơ bản của MIPS (from the book) Xem lại các tập lệnh cơ bản trong MIPS – Memory: lw, sw – Arithmetic: add,sub – Logic: and, or – Branch: beq Đọc thêm : – Multiply, divide – A bunch of logic operations – jump – jr and jal Các hoạt động chính của bộ xử lý? Nạp lệnh : tìm ra lệnh và tải lệnh Tính toán trên ALU : tìm ra toán tử và thực thi Truy nhập bộ nhớ : tìm ra địa chỉ và truy nhập Thiết kế đơn xung nhịp Thiết kế đầu tiên sẽ xử lý một lệnh trong một chu kỳ đồng hồ. Chia lệnh thành các pha và thực hiện trong một chu kỳ đồng hồ. Nhắc lại về thiết kế mức logic: Tổ hợp các mức logic tạo ra trạng thái kế tiếp Bộ nhớ (các mạch chốt, RAM) lưu trữ trạng thái Bộ đồng hồ chuyển đổi trạng thái kế tiếp Quy trình nạp lệnh Trạng thái kế tiếp : PC+4 (ngoại trừ các lệnh nhảy) Trạng thái : Program Counter (lệnh hiện tại) Thiết kế đơn xung nhịp Thiết kế xử lý một lệnh trong một chu kỳ đồng hồ Các khối xử lý cơ bản: – Combinational logic tạo ra next state – Memories (latches , RAM) lưu trữ trạng thái – Clock chuyển đổi next state thành current state . Sơ đồ khối HUST-FET, 29/11/2021 8 Triển khai các lệnh Lệnh truy cập bộ nhớ : lw, sw Lệnh số học và logic : add, sub, and, or, slt Lệnh điều khiển dòng chương trình : beq, j Triển khai các pha hoạt động Dùng thanh ghi PC để lưu địa chỉ lệnh Đọc lệnh từ bộ nhớ, và cập nhật giá trị PC Giải mã lệnh và đọc các thanh ghi Thực hiện lệnh Lưu kết quả Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Fetch PC = PC+4 Decode Exec, Store Stages of Execution on Datapath instruction memory + 4 rt rs rd registers ALU Data memory imm 1. Instruction Fetch 2. Decode/ Register Read 3. Execute 4. Memory 5. Register Write PC Nạp lệnh Theo dõi địa chỉ lệnh hiện tại tên thanh PC. – Tăng PC lên 4 trong mỗi chu kỳ – Tải lệnh tại địa chỉ được xác định bởi PC Nạp lệnh HUST-FET, 29/11/2021 11 Đọc lệnh tại địa chỉ (lưu trong) PC từ bộ nhớ lệnh ( eng. Instruction Memory ) Cập nhật giá trị PC tới địa chỉ của lệnh kế tiếp Read Address Instruction Instruction Memory Add PC 4 PC được cập nhật ở mọi chu kỳ không cần tín hiệu điều khiển ghi PC. Đọc từ bộ nhớ lệnh được thực hiện bằng logic tổ hợp Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Giải mã lệnh HUST-FET, 29/11/2021 12 Chuyển các bit thuộc trường mã lệnh và trường mã chức năng tới khối điều khiển Instruction Control Unit Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Giải mã lệnh (lệnh R) Giải mã lệnh (Lệnh trực tiếp) Giải mã lệnh (các tín hiệu điều khiển) Giải mã lệnh (R-format ) Giải mã lệnh (load) Nạp toán hạng HUST-FET, 29/11/2021 18 Đọc 2 giá trị toán hạng nguồn từ tệp thanh ghi Chỉ số các thanh ghi nằm trong lệnh Mở rộng dấu cho toán hạng trực tiếp I Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Thực hiện lệnh HUST-FET, 29/11/2021 19 Thực hiện phép toán (mã hóa bới op và funct ) trên giá trị toán hạng opA và opB Các phép toán của lệnh R và I Phép toán tính địa chỉ trong lệnh lw, sw Phép toán so sánh trong lệnh beq, bne Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction opB ALU overflow zero ALU control opA result Tính toán trên ALU (các chỉ thị lệnh dạng R-type) Các bước thực hiện? – Đ ọc dữ liệu từ tệp thanh ghi (specify rs and rt ) – Thực thi tính toán ALU – Ghi dữ liệu về tệp thanh ghi (specify rd ) Tính toán trên ALU Các bước thực hiện? – Đ ọc dữ liệu từ tệp thanh ghi (xác định rõ rs và rt ) – Thực hiện tính toán ALU – Ghi dữ liệu trở lại tệp thanh ghi (xác định rõ rd ) Ghi kết quả HUST-FET, 29/11/2021 22 Từ ALU với các lệnh tính toán Từ bộ nhớ với các lệnh truy cập bộ nhớ Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 RegWrite Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Truy cập bộ nhớ HUST-FET, 29/11/2021 23 MemWrite MemRead Data Memory Address Write Data Read Data Địa chỉ theo byte Dữ liệu từ thanh ghi rt Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Truy cập bộ nhớ Các bước thực hiện? – Tính toán địa chỉ – Gửi địa chỉ đến bộ nhớ dữ liệu (write: data) – Đọc: nhận kết quả trả về và đưa vào tệp thanh ghi Q: Điều gì xảy ra nếu đọc ghi vào bộ nhớ cùng một thời điểm 1/ không thể xảy ra 2/ dữ liệu sẽ bị sai lệch hoặc không hợp lệ 3/ không có vấn để gì cả vì có đầu ra đọc dữ liệu và đầu vào ghi dữ liệu A: 2 Hoạt động của RAM: kích hoạt một hàng đọc/ghi dữ liệu. Nếu thực hiện cả 2 cùng lúc sẽ làm các bit bị xáo trộn. Ngoài ra cần phải 2 địa chỉ cho quá trình ghi đọc Kết nối các thành phần • Bộ tính toán ALU – tải lệnh – tính toán giá trị tiếp theo của PC – đọc từ tệp thanh ghi – thực thi tính toán – ghi lại tệp thanh ghi • Truy nhập bộ nhớ (load/store) – tải lệnh – tính toán giá trị tiếp theo củaPC – đọc từ tệp thanh ghi – tính toán địa chỉ – Read/Write dữ liệu bộ – Write dữ liệu vào tệp thanh ghi • Nạp lệnh (branch) – tải lệnh – tính toán giá trị tiếp theo của PC – đọc từ tệp thanh ghi Tính toán địa chỉ rẽ nhánh: không sử dụng ALU cho phép toán so sánh và tính toán địa chỉ cùng một thời điểm . – thực thi các nhánh so sánh – cập nhật lại giá trị của PC Kết nối RF và ALU Kết nối ALU với bộ nhớ Kết nối giá trị tức thời để tính toán địa chỉ Thêm vào bộ dồn kênh Lựa chọn tín hiệu bằng Bộ dồn kênh MUX Định tuyến tính hiệu (control) • MUX lựa chọn ALU input (tệp thanh ghi hoặc các giá trị hằng số có dấu tức thời) • MUX lựa chọn tệp thanh ghi ghi dữ liệu (kết quả tính toán được tại ALU hoặc dữ liệu từ bộ nhớ) Các tín hiệu điều khiển xác định hoạt động: Lệnh addi Định nghĩa về tín hiệu điều khiển: ALUSrc (ALU source) và MemtoReg (Memory to Register File) Các tín hiệu điều khiển xác định hoạt động: lệnh add Xây dựng các khối rẽ nhánh có điều kiện Các bước thực hiện? – Mặc định: PC = PC + 4 – Trường hợp có điều kiện : PC = PC + 4 + [Sign-extended immediate << 2] if branch Tín hiệu PCSrc Các bước thực hiện? – Mặc định: PC = PC + 4 – Trường hợp có điều kiện: PC = PC+4+[Sign-extended immediate << 2] if branch Đường tín hiệu đơn xung nhịp trong MIPS Các dữ liệu nguồn (dữ liệu lấy ra ở đâu? ) Các dữ liệu đích (dữ liệu đi đến đâu?) Ví dụ: addi Lặp lại quá trình Thực hiện lệnh loại R và ghi kết quả HUST-FET, 29/11/2021 40 Lệnh định dạng R ( add, sub, slt, and, or ) Thực hiện phép toán (mã hóa bới op và funct ) trên giá trị toạn hạng trong rs và rt Ghi kết quả vào tệp thanh ghi (tại vị trí rd ) Instruction Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU overflow zero ALU control RegWrite R-type: 31 25 20 15 5 0 op rs rt rd funct shamt 10 Tệp thanh ghi không được ghi ở mọi chu kỳ cần tín hiệu điều khiển ghi riêng biệt. Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Đọc ghi bộ nhớ HUST-FET, 29/11/2021 41 Địa chỉ bộ nhớ tính ở bước EX: cộng thanh ghi cơ sở (đọc từ tệp thanh ghi khi giải mã lệnh) với giá trị offset ghi (sw) giá trị (được đọc từ tệp thanh ghi khi giải mã lệnh) vào bộ nhớ dữ liệu đọc (lw) giá trị từ bộ nhớ dữ liệu vào tệp thanh ghi Instruction Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU overflow zero ALU control RegWrite Data Memory Address Write Data Read Data Sign Extend MemWrite MemRead 16 32 Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Lệnh rẽ nhánh có điều kiện HUST-FET, 29/11/2021 42 S o sánh toán hạng đọc từ tệp thanh ghi khi giải mã T ính địa chỉ đích bằng cách cộng giá trị PC (sau khi cập nhât) với trường offset 16 bit đã được mở rộng dấu. Instruction Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU zero ALU control Sign Extend 16 32 Shift left 2 Add 4 Add PC Branch target address (to branch control logic) Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Lệnh nhảy không điều kiện HUST-FET, 29/11/2021 43 Thay 28 bit thấp của PC bằng 26 bít thấp của lệnh được nạp và 2 bít 0 Read Address Instruction Instruction Memory Add PC 4 Shift left 2 Jump address 26 4 28 Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Đường dữ liệu: Lệnh R, I, lw,sw HUST-FET, 29/11/2021 44 MemtoReg Read Address Instruction Instruction Memory Add PC 4 Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU ovf zero ALU control RegWrite Data Memory Address Write Data Read Data MemWrite MemRead Sign Extend 16 32 ALUSrc Đường dữ liệu: Lệnh rẽ nhánh HUST-FET, 29/11/2021 45 Instr[5-0] Read Address Instr[31-0] Instruction Memory Add PC 4 Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU ovf zero RegWrite Sign Extend 16 32 ALUSrc Shift left 2 Add PCSrc RegDst ALU control 1 1 0 0 0 1 ALUOp Instr[15-0] Instr[25-21] Instr[20-16] Instr[15 -11] Control Unit Instr[31-26] Branch Đường dữ liệu: Lệnh R,I, lw, sw, beq, bne HUST-FET, 29/11/2021 46 Read Address Instr[31-0] Instruction Memory Add PC 4 Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU ovf zero RegWrite Data Memory Address Write Data Read Data MemWrite MemRead Sign Extend 16 32 MemtoReg ALUSrc Shift left 2 Add PCSrc RegDst ALU control 1 1 1 0 0 0 0 1 ALUOp Instr[5-0] Instr[15-0] Instr[25-21] Instr[20-16] Instr[15 -11] Control Unit Instr[31-26] Branch Bộ xử lý đơn xung nhịp (2) – Lệnh R HUST-FET, 29/11/2021 47 Read Address Instr[31-0] Instruction Memory Add PC 4 Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU ovf zero RegWrite Data Memory Address Write Data Read Data MemWrite MemRead Sign Extend 16 32 MemtoReg ALUSrc Shift left 2 Add PCSrc RegDst ALU control 1 1 1 0 0 0 0 1 ALUOp Instr[5-0] Instr[15-0] Instr[25-21] Instr[20-16] Instr[15 -11] Control Unit Instr[31-26] Branch BXL đơn xung nhịp (3) – Lệnh lw, sw HUST-FET, 29/11/2021 48 Read Address Instr[31-0] Instruction Memory Add PC 4 Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU ovf zero RegWrite Data Memory Address Write Data Read Data MemWrite MemRead Sign Extend 16 32 MemtoReg ALUSrc Shift left 2 Add PCSrc RegDst ALU control 1 1 1 0 0 0 0 1 ALUOp Instr[5-0] Instr[15-0] Instr[25-21] Instr[20-16] Instr[15 -11] Control Unit Instr[31-26] Branch BXL đơn xung nhịp (3) – Lệnh lw, sw HUST-FET, 29/11/2021 49 Read Address Instr[31-0] Instruction Memory Add PC 4 Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU ovf zero RegWrite Data Memory Address Write Data Read Data MemWrite MemRead Sign Extend 16 32 MemtoReg ALUSrc Shift left 2 Add PCSrc RegDst ALU control 1 1 1 0 0 0 0 1 ALUOp Instr[5-0] Instr[15-0] Instr[25-21] Instr[20-16] Instr[15 -11] Control Unit Instr[31-26] Branch BXL đơn xung nhịp (4) – Lệnh rẽ nhánh HUST-FET, 29/11/2021 50 Read Address Instr[31-0] Instruction Memory Add PC 4 Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU ovf zero RegWrite Data Memory Address Write Data Read Data MemWrite MemRead Sign Extend 16 32 MemtoReg ALUSrc Shift left 2 Add PCSrc RegDst ALU control 1 1 1 0 0 0 0 1 ALUOp Instr[5-0] Instr[15-0] Instr[25-21] Instr[20-16] Instr[15 -11] Control Unit Instr[31-26] Branch BXL đơn xung nhịp (4) – Lệnh rẽ nhánh HUST-FET, 29/11/2021 51 Read Address Instr[31-0] Instruction Memory Add PC 4 Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU ovf zero RegWrite Data Memory Address Write Data Read Data MemWrite MemRead Sign Extend 16 32 MemtoReg ALUSrc Shift left 2 Add PCSrc RegDst ALU control 1 1 1 0 0 0 0 1 ALUOp Instr[5-0] Instr[15-0] Instr[25-21] Instr[20-16] Instr[15 -11] Control Unit Instr[31-26] Branch BXL đơn xung nhịp – Thêm lệnh nhảy HUST-FET, 29/11/2021 52 Read Address Instr[31-0] Instruction Memory Add PC 4 Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU ovf zero RegWrite Data Memory Address Write Data Read Data MemWrite MemRead Sign Extend 16 32 MemtoReg ALUSrc Shift left 2 Add PCSrc RegDst ALU control 1 1 1 0 0 0 0 1 ALUOp Instr[5-0] Instr[15-0] Instr[25-21] Instr[20-16] Instr[15 -11] Control Unit Instr[31-26] Branch Shift left 2 0 1 Jump 32 Instr[25-0] 26 PC+4[31-28] 28 PC + 4 Thiết kế đồng bộ theo đồng hồ HUST-FET, 29/11/2021 Mạch đồng bộ theo đồng hồ: 1 phần tử trạng thái là hợp lệ và ổn định được quy định bởi xung đồng hồ Phần tử trạng thái - phần tử nhớ - VD. thanh ghi, bộ nhớ lệnh, bộ nhớ dữ liệu. Kích hoạt theo s ườn – các trạng thái thay đối khi có s ườn xung Đọc nội dung của phần tử trạng thái tính giá trị bằng logic tổ hợp ghi kết quả vào phần tử trạng thái Các phần tử trạng thái được ghi ở tất cả các chu kỳ đồng hồ. State element 1 State element 2 Combinational logic clock one clock cycle Đồng hồ ở đâu? Ví dụ: Lệnh addi thực thi như thế nào? Khi có tín hiệu đồng hồ, biến mới được lưu trữ Lặp lại quá trình Ví dụ lệnh: addi Các tuyến logic và các bộ trễ Tốc độ xử lý xác định như thế nào? Tính chu ky đồng hồ T c – Đường dài nhất HUST-FET, 29/11/2021 Instr. I Mem Reg Rd ALU Op D Mem Reg Wr Total R-type 2 1 2 1 6ns load 2 1 2 2 1 8ns store 2 1 2 2 7ns beq 2 1 2 5ns jump 2 2ns Tính chu kỳ đồng hồ trong trường hợp bỏ qua trễ ở bộ ghép, khối điều khiển, khối mở rộng dấu, khối đọc PC, khối dịch 2, dây dẫn, thời gian thiết lập và giữ. Cho biết độ trễ : - Truy cập bộ nhớ lệnh và bộ nhớ dữ liệu (2ns) - Khối số học logic và bộ cộng (2 ns) - Truy cập tệp thanh ghi (đọc hoặc ghi ) (1 ns) Hiệu năng thiết kế đơn xung nhịp HUST-FET, 29/11/2021 Độ trễ logic khi Truy cập lệnh 2 ns Đọc thanh ghi 1 ns Hoạt động ALU 2 ns Truy cập bộ nhớ DL 2 ns Ghi thanh ghi 1 ns Tổng 8 ns Tốc độ đồng hồ = 125 MHz Các loại lệnh: R-type 44% 6 ns Load 24% 8 ns Store 12% 7 ns Branch 18% 5 ns Jump 2% 4 ns Thời gian trung bình 6.38 ns CPI = 1. Thiết kế đơn xung nhịp – Ưu nhược điểm HUST-FET, 29/11/2021 63 Sử dụng chu kỳ đồng hồ không hiệu quả – chu kỳ đồng hồ được đặt theo lệnh chậm nhất . Các lệnh phức tạp như lệnh nhân dấu phẩy động: Tốn diện tích thiết kế vì cần nhân đôi một số khối chức năng (VD. bộ cộng) vì chúng không thể được chia sẻ trong cùng 1 chu kỳ đồng hồ Đơn giản và dễ hiểu Clk lw sw Waste Cycle 1 Cycle 2 Thiết kế đa xung nhịp HUST-FET, 29/11/2021 64 Chia lệnh thành các pha thực hiện: IF, ID, EX, MEM, WB. Mỗi pha thực hiện trong 1 chu kỳ xung nhịp Thời gian thực hiện (= số pha) của mỗi lệnh được điều chỉnh tùy thuộc độ phức tạp của lệnh Các khối chức năng được chia sẻ giữa các pha khác nhau của lệnh do một khối chức năng cụ thể không cần trong toàn bộ các pha thực hiện của lệnh Hiệu năng thiết kế đa xung nhịp HUST-FET, 29/11/2021 Các loại lệnh sử dụng số chu kỳ khác nhau R-type 44% 4 cycles Load 24% 5 cycles Store 12% 4 cycles Branch 18% 3 cycles Jump 2% 2 cycles Đóng góp vào số chu kỳ trung bình cần cho một lệnh: R-type Load Store Branch Jump _____________________________ CPI trung bình Hiệu năng thiết kế đa xung nhịp HUST-FET, 29/11/2021 66 Các loại lệnh sử dụng số chu kỳ khác nhau R-type 44% 4 cycles Load 24% 5 cycles Store 12% 4 cycles Branch 18% 3 cycles Jump 2% 2 cycles Tính số chu kỳ trung bình cần cho một lệnh: R-type 0.44 4 = 1.76 Load 0.24 5 = 1.20 Store 0.12 4 = 0.48 Branch 0.18 3 = 0.54 Jump 0.02 2 = 0.04 _____________________________ CPI trung bình 4.02 So sánh hiệu năng xử lý So sánh hiệu năng xử lý của thiết kế đa xung nhịp và thiết đơn xung nhịp, biết tần suất xuất hiện các lệnh như sau: lw : 20% sw: 20% R - : 45 % beq: 15% Thiết kế đơn xung nhịp HUST-FET, 29/11/2021 68 Clock rate = 125 MHz CPI = 1 (125 MIPS) Thiết kế đa xung nhịp HUST-FET, 29/11/2021 69 Clock rate = 500 MHz CPI 4 ( 125 MIPS) 2
File đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_3_bo_xu_ly.pptx