Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 53 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
53
Dung lượng
487,86 KB
Nội dung
KIẾN TRÚC MÁY TÍNH Tuần 10 BỘ XỬ LÝ PROCESSOR 03/2017 Copyrights 2017 CE-UIT All Rights Reserved BỘ XỬ LÝ Mục đích: Hiểu chế thực thi lệnh quy ước thiết kế logic Thiết kế Datapath với lệnh cho xử lý cách thực thiết kế Slide tham khảo từ: Computer Organization and Design: The Hardware/Software Interface, Patterson, D A., and J L Hennessy, Morgan Kaufman, Revised Fourth Edition, 2011 03/2017 NUS, Singapore Copyrights 2017 CE-UIT All Rights Reserved BỘ XỬ LÝ 03/2017 Giới thiệu Nhắc lại quy ước thiết kế logic Xây dựng đường liệu (datapath) đơn giản Hiện thực datapath đơn chu kỳ Copyrights 2017 CE-UIT All Rights Reserved Giới thiệu Hiệu suất máy tính xác định ba yếu tố: Tổng số câu lệnh Được xác định trình biên dịch kiến trúc tập lệnh Chu kỳ xung clock Được xác định trình thực xử Số chu kỳ xung clock lệnh lý (Clock cycles per instruction − CPI) Mục đích chương này: Giải thích quy tắc hoạt động hướng dẫn xây dựng datapath cho xử lý chứa số lệnh đơn giản (giống kiến trúc tập lệnh dạng MIPS), gồm hai ý chính: • Thiết kế datapath • Hiện thực datapath thiết kế MIPS (bắt nguồn từ chữ viết tắt ‘Microprocessor without Interlocked Pipeline Stages’) kiến trúc tập tập lệnh dạng RISC, phát triển MIPS Technologies (trước MIPS Computer Systems, Inc.) 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Giới thiệu Chương xem xét lệnh nhóm tập lệnh MIPS: Nhóm lệnh tham khảo nhớ (lw sw) Nhóm lệnh liên quan đến logic số học (add, sub, AND, OR, slt) Nhóm lệnh nhảy (Lệnh nhảy với điều kiện beq) 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Giới thiệu Tổng quan lệnh cần xem xét: Nhóm lệnh tham khảo nhớ: Nạp lệnh Đọc một/hai ghi Sử dụng ALU Truy xuất nhớ để đọc/ghi liệu Nhóm lệnh logic số học: Nạp lệnh Đọc một/hai ghi Sử dụng ALU Ghi liệu vào ghi Nhóm lệnh nhảy: Nạp lệnh Đọc một/hai ghi Sử dụng ALU Chuyển đến địa lệnh dựa kết so sánh 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Giới thiệu Hình ảnh datapath xử lý với lệnh MIPS: add, sub, AND, OR, slt, lw, sw beq 03/2017 BỘ XỬ LÝ 03/2017 Giới thiệu Nhắc lại quy ước thiết kế logic Xây dựng đường liệu (datapath) đơn giản Hiện thực datapath đơn chu kỳ Copyrights 2017 CE-UIT All Rights Reserved Quy ước thiết kế Phần nhắc lại khái niệm: Mạch tổ hợp (Combinational): ALU Mạch (Sequential): instruction/data memories ghi Tín hiệu điều khiển (Control signal) Tín hiệu liệu (Data signal) Asserted (assert): Khi tín hiệu mức cao ‘true’ Deasserted (deassert): Khi tín hiệu mức thấp ‘false’ Edge-triggered clocking (Rising/Falling) Bus 03/2017 Copyrights 2017 CE-UIT All Rights Reserved BỘ XỬ LÝ 03/2017 Giới thiệu Nhắc lại quy ước thiết kế logic Xây dựng đường liệu (datapath) đơn giản Hiện thực datapath đơn chu kỳ Copyrights 2017 CE-UIT All Rights Reserved 10 Datapath với cơng đoạn ALU hồn chỉnh Add PC M U Add X PCSrc: Tín hiệu điều khiển để lựa chọn (PC+4) địa đích mà Left Shift 2-bit 000100 opcode 31:26 PCSrc lệnh nhánh/nhảy nhảy tới ALUcontrol 01001 rs 25:21 Inst [25:21] Read Read register 00000 rt 20:16 16] Inst [20: data Read register isZero? Register File register M 15:0 Immediate 0000 0000 0000 0011 Inst [15:11] data ALU result Read data Write U ALU Write M U X X RegWrite RegDst Inst [15:0] 16 Sign Extend 32 ALUSrc Ví dụ: "beq $9, $0, 3" 03/2017 39 Quy trình thực thi lệnh MIPS (5 cơng đoạn) Fetch Instruction Next Instruction Decode ALU Instruction Fetch (Nạp lệnh) Instruction Decode & Operand Fetch (Giải mã lấy toán hạng cần thiết, Gọi tắt “Instruction Decode”) ALU (Giai đoạn sử dụng ALU hay giai đoạn thực thi) Memory Access (Giai đoạn truy xuất vùng nhớ) Result Write (Giai đoạn ghi lại kết quả/lưu trữ) Memory Access Result Write 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 40 Giai đoạn truy xuất vùng nhớ (Memory stage) Giai đoạn truy xuất vùng nhớ: Chỉ có lệnh Load Store cần thực thao tác giai đoạn này: Sử dụng địa vùng nhớ tính tốn giai đoạn ALU Đọc liệu ghi liệu vào vùng nhớ liệu Tất lệnh khác rảnh giai đoạn Đầu vào từ giai đoạn trước (ALU): Kết tính tốn dùng làm địa vùng nhớ (nếu ứng dụng) Đầu cho giai đoạn (Result Write): Kết lưu trữ lại (nếu cần) 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 41 Giai đoạn truy xuất vùng nhớ (Memory stage) MemWrite ALU Stage Read Result Data Write Data Data Result Store Stage Address Memory MemRead Bộ nhớ lưu trữ liệu 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 42 Khối Data Memory Vùng nhớ lưu trữ liệu cần thiết chương trình Inputs: Address: Địa vùng nhớ Write Data: Dữ liệu ghi vào vùng nhớ lệnh Store MemWrite Address Tín hiệu điều khiển: Read Tín hiệu đọc (MemRead ) ghi (MemWrite); tín hiệu bật lên Data Write Data Data thời điểm Memory Output: Dữ liệu đọc từ vùng nhớ lệnh Load 03/2017 Copyrights 2017 CE-UIT All Rights Reserved MemRead 43 Giai đoạn Memory: lệnh Load Chỉ phần liên quan đến Decode & ALU Stage trình bày 100011 000100 opcode 31:26 lw $21, -50($22) ALUcontrol 10110 01001 rs 25:21 Inst [25:21] RR1 RD1 10101 00000 rt 20:16 16] Inst [20: MemWrite RR2 Registers WR ALU M 1111 0011 0000 1111 0000 1100 0000 1110 15:0 Immediate 03/2017 result RD2 U Inst [15:11] ALU Address M WD Data U X Memory X Read RegWrite Data Write RegDst Data ALUSrc Inst [15:0] 16 Sign Extend 32 MemRead Copyrights 2017 CE-UIT All Rights Reserved 44 Giai đoạn Memory: lệnh Store Cần Read Data (Decode) để đưa vào Write Data 101011 000100 opcode 31:26 sw $21, -50($22) ALUcontrol 10110 01001 rs 25:21 Inst [25:21] RR1 RD1 10101 00000 rt 20:16 16] Inst [20: MemWrite RR2 Registers WR ALU M 1111 0011 0000 1111 0000 1100 0000 1110 15:0 Immediate 03/2017 result RD2 U Inst [15:11] ALU Address M WD Data U X Memory X Read RegWrite Data Write RegDst Inst [15:0] Data 16 Sign Extend 32 MemRead Copyrights 2017 CE-UIT All Rights Reserved 45 Giai đoạn Memory: lệnh không truy xuất vùng nhớ Sử dụng thêm multiplexer để lựa chọn kết lưu trữ vào ghi 000000 31:26 opcode add $8, $9, $10 ALUcontrol 01001 rs 25:21 Inst [25:21] RR1 RD1 MemWrite 01010 rt 20:16 16] Inst [20: RR2 Registers WR ALU M result 01000 rd 15:11 RD2 U Inst [15:11] ALU Address M WD Data U X Memory X 00000 10:6 shamt Read RegWrite Data M Write RegDst Inst [15:0] U Data 16 100000 5:0 funct Sign Extend X 32 MemRead MemToReg MemToReg: Tín hiệu điều khiển giúp lựa chọn giá trị lưu vào ghi từ 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Read Data hay từ ALU result 46 Quy trình thực thi lệnh MIPS (5 công đoạn) Fetch Instruction Next Instruction Decode ALU Instruction Fetch (Nạp lệnh) Instruction Decode & Operand Fetch (Giải mã lấy toán hạng cần thiết, Gọi tắt “Instruction Decode”) ALU (Giai đoạn sử dụng ALU hay giai đoạn thực thi) Memory Access (Giai đoạn truy xuất vùng nhớ) Result Write (Giai đoạn ghi lại kết quả/lưu trữ) Memory Access Result Write 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 47 Giai đoạn lưu trữ kết (Result Write) Công đoạn Result Write: Những lệnh ghi kết phép toán vào ghi: Ví dụ: số học, logic, shifts, load, set-less-than Cần số ghi đích kết tính tốn Những lệnh khơng ghi kết như: store, branch, jump: Khơng có ghi kết Những lệnh rảnh giai đoạn Đầu vào từ giai đoạn trước (Memory): Kết tính tốn từ Memory từ ALU 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 48 Giai đoạn lưu trữ kết (Result Write) Read Read register Memory Stage data Read register Write register Registers Read data Result Write data Cơng đoạn Result Write khơng có thêm thành phần khác: Chỉ đơn giản đưa kết vào ghi (ngõ Write data khối Registers/Register file) Chỉ số ghi ghi vào (ngõ vào Write Register) sinh giai đoạn Decode Stage 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 49 Giai đoạn lưu trữ kết (Result Write) add $8, $9, $10 000000 31:26 opcode ALUcontrol 01001 rs 25:21 Inst [25:21] RR1 RD1 MemWrite 01010 rt 20:16 16] Inst [20: RR2 Registers WR ALU M 01000 rd 15:11 U Inst [15:11] ALU RD2 WD result Address M Data U X X 00000 10:6 shamt Read RegWrite Data M Write U Data Inst [15:0] 100000 5:0 funct 03/2017 MemToReg Memory X Sign Extend MemRead Copyrights 2017 CE-UIT All Rights Reserved 50 (Chưa có khối Control để điều khiển tín hiệu điều khiển) Datapath hồn chỉnh Instruction Memory Add PC M Instruction U Add X Left Shift 2-bit Address PCSrc 000000 31:26 opcode ALUcontrol 01001 rs 25:21 Inst [25:21] RR1 RD1 01010 rt 20:16 16] Inst [20: is0? RR2 Registers 01000 rd 15:11 Inst [15:11] ALU ALUSrc WR ALU M U MemWrite RD2 WD result Address M Data U X X 00000 10:6 shamt Read RegWrite RegDst MemToReg Memory Write Data U Data Inst [15:0] M X 100000 5:0 funct Sign Extend MemRead 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 51 BỘ XỬ LÝ Tổng kết: Phần trình bày cách thiết kế datapath đơn giản cho xử lý 32 bits, với lệnh MIPS: • add, sub, and, or, slt • lw, sw • beq Với khối chức xử lý (tập ghi, khối ALU, khối Control, ghi PC, ghi IR) nhớ chính, khối kết nối với để đảm bảo thực thi lệnh 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 52 BỘ XỬ LÝ Lý thuyết: Đọc sách tham khảo • Mục: 4.1, 4.2, 4.3 • Sách: Computer Organization and Design: The Hardware/Software Interface, Patterson, D A., and J L Hennessy, Morgan Kaufman, Revised Fourth Edition, 2011 Bài tập: file đính kèm 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 53 ... 101 011 00 0100 opcode 31:26 sw $21, -50($22) ALUcontrol 101 10 0100 1 rs 25:21 Inst [25:21] RR1 RD1 101 01 00000 rt 20:16 16] Inst [20: MemWrite RR2 Registers WR ALU M 1111 0011 0000 1111 0000 1100 ... 100 011 00 0100 opcode 31:26 lw $21, -50($22) ALUcontrol 101 10 0100 1 rs 25:21 Inst [25:21] RR1 RD1 101 01 00000 rt 20:16 16] Inst [20: MemWrite RR2 Registers WR ALU M 1111 0011 0000 1111 0000 1100 ... AND 0001 OR 0 010 add 0 110 subtract 0111 slt 1100 NOR 36 Công đoạn ALU: lệnh non-branch Các lệnh không nhánh/nhảy (non-branch) kết nối ALU hình: 000000 31:26 opcode add $8, $9, $10 0100 1 rs 25:21