Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
636,69 KB
Nội dung
Bài 07: Thiết kế xử lý Phạm Tuấn Sơn ptson@fit.hcmus.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Quan điểm cấu tạo CPU • William Stallings – Registers – ALU – CU – Internal bus Mục tiêu: hiểu cấu tạo hoạt động CPU • Patterson & Hennessy – Datapath – Control Mục tiêu: thiết kế CPU CuuDuongThanCong.com https://fb.com/tailieudientucntt Các bước thiết kế CPU Phân tích kiến trúc lệnh (ISA) ⇒ yêu cầu datapath – – – Trình bày lệnh dạng register transfers language (RTL) để thấy rõ ý nghĩa các lệnh datapath phải có thành phần lưu trữ (bộ nhớ / cache) cho ghi kiến trúc lệnh datapath phải hỗ trợ thực thi tất lệnh Lựa chọn khối mạch cần thiết để xây dựng datapath – – Khối mạch tổ hợp Khối mạch Lắp ráp khối mạch đáp ứng yêu cầu lệnh Phân tích lệnh để xác định tín hiệu điều khiển cần thiết Thiết kế mạch cho tín hiệu điều khiển CuuDuongThanCong.com https://fb.com/tailieudientucntt Vấn đề thiết kế datapath • Vấn đề: xây dựng khối datapath phức tạp để xử lý lệnh (nạp lệnh thực thi lệnh …) khó khăn khơng hiệu • Giải pháp: chia nhỏ q trình xử lý lệnh thành cơng đoạn nhỏ (stages), xây dựng khối xử lý cho công đoạn lắp ráp thành datapath – Các công đoạn nhỏ dễ thiết kế – Dễ thay đổi, tối ưu cơng đoạn mà ảnh hưởng tới công đoạn khác CuuDuongThanCong.com https://fb.com/tailieudientucntt Thiết kế xử lý MIPS thu gọn • Bộ xử lý MIPS thu gọn gồm lệnh – – – – – – – – – add sub and or lw sw beq slt j $1, $2, $3 $1, $2, $3 $1, $2, $3 $1, $2, $3 $1, 0($2) $1, 0($2) $1, $2, NHAN $1, $2, $3 NHAN • Tại lệnh ? CuuDuongThanCong.com https://fb.com/tailieudientucntt Nhắc lại: Các cấu trúc lệnh MIPS • Tất lệnh MIPS dài 32 bit Có cấu trúc 31 – R-type 26 op bits 31 – I-type rs bits 26 op bits 31 – J-type 21 16 rt bits 21 rs bits 11 rd bits shamt bits funct bits 16 address/immediate rt bits 16 bits 26 op bits target address 26 bits • Các trường – op (“opcode”): mã thao tác lệnh, xác định lệnh làm – funct: kết hợp với op (nếu cần) để xác định lệnh làm – rs, rt, rd: địa ghi nguồn đích – shamt: số bit dịch – address / immediate: địa số tính tốn – target address: địa cần nhảy tới CuuDuongThanCong.com https://fb.com/tailieudientucntt Cấu trúc lệnh CPU MIPS thu gọn • add, sub, and, or, slt – – – – – add sub and or slt rd,rs,rt rd,rs,rt rd,rs,rt rd,rs,rt rd,rs,rt 31 op bits 31 • lw, sw, beq – lw rt,imm16(rs) – sw rt,imm16(rs) – beq rs,rt,imm16 • j 26 – j addr26 CuuDuongThanCong.com rs bits 26 op bits 31 21 21 rs bits 16 rt bits 11 rd bits shamt bits 16 funct bits rt bits immediate 16 bits 26 op bits 0 target address 26 bits https://fb.com/tailieudientucntt Các công đoạn lệnh (1/3) • Công đoạn 1: Nạp lệnh (Instruction Fetch) – Nạp lệnh 32 bit từ nhớ địa ghi PC vào ghi lệnh Công đoạn cho tất lệnh – Sau đó, tăng PC để chuẩn bị nạp lệnh sau xử lý xong lệnh (PC = PC + 4) • Cơng đoạn 2: Giải mã lệnh (Instruction Decode) – Phân tích trường lệnh • Xác định opcode để biết loại lệnh vị trí trường khác • Sau đó, đọc ghi nguồn để chuẩn bị thực cơng đoạn Ví dụ – Lệnh add, đọc ghi nguồn – Lệnh lw, đọc ghi nguồn CuuDuongThanCong.com https://fb.com/tailieudientucntt Các cơng đoạn lệnh (2/3) • Cơng đoạn 3: Tính tốn (ALU – Arithmetic-Logic Unit) – Cơng việc hầu hết lệnh thực cơng đoạn này: tính toán số học (+, -), luận lý (&, |), so sánh (beq,slt) – Lệnh beq tính vị trí cần nhảy tới – Còn lệnh lw sw làm cơng đoạn ? • lw $t0, 40($t1) • Địa vùng nhớ cần truy xuất = giá trị $t1 CỘNG 40 • Do đó, thực phép cộng công đoạn CuuDuongThanCong.com https://fb.com/tailieudientucntt Các công đoạn lệnh (3/3) • Cơng đoạn 4: Truy xuất nhớ (Memory Access) – Thực có lệnh lw sw thực công đoạn lệnh – Do công việc truy xuất nhớ thời gian tương đối nhiều nên cần cơng đoạn riêng • Cơng đoạn 5: Ghi kết vào ghi (Register Write) – Hầu hết lệnh ghi kết tính tốn vào ghi tính tốn số học, luận lý, lw, slt – Còn lệnh sw, lệnh nhảy ? • Khơng ghi kết vào ghi • Do đó, lệnh khơng làm công đoạn lệnh CuuDuongThanCong.com https://fb.com/tailieudientucntt Sơ đồ datapath tổng quát 26 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bước 4+5: Thiết kế đơn vị điều khiển 27 CuuDuongThanCong.com https://fb.com/tailieudientucntt Thiết kế đơn vị điều khiển (1/2) 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt Thiết kế đơn vị điều khiển (2/2) 29 CuuDuongThanCong.com https://fb.com/tailieudientucntt Thiết kế đơn vị điều khiển ALU (1/2) 30 CuuDuongThanCong.com https://fb.com/tailieudientucntt Thiết kế đơn vị điều khiển ALU (2/2) 31 CuuDuongThanCong.com https://fb.com/tailieudientucntt Sơ đồ xử lý lệnh R-Format 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt Sơ đồ xử lý lệnh lw 33 CuuDuongThanCong.com https://fb.com/tailieudientucntt Sơ đồ xử lý lệnh beq 34 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bổ sung lệnh j 35 CuuDuongThanCong.com https://fb.com/tailieudientucntt Hạn chế kỹ thuật thiết kế CPU chu kỳ • Kỹ thuật thiết kế CPU chu kỳ khơng sử dụng khơng hiệu – Tất công đoạn lệnh phải xử lý chu kỳ theo tín hiệu đồng nên thành phần mạch có khả dùng chung tách riêng, làm cho sơ đồ mạch phức tạp • Thành phần tính tốn: ALU, Adder • Thành phần lưu trữ: Instruction memory, Data memory – Một chu kỳ đồng hồ phải đủ lâu để xử lý lệnh phức tạp Trong MIPS, lệnh lw xử lý phức tạp (5 công đoạn), tất lệnh khác (beq) (R-Format, …) cơng đoạn – Với chương trình có IC (instruction count) lệnh xử lý 800×IC (ps) CuuDuongThanCong.com https://fb.com/tailieudientucntt Kỹ thuật thiết kế CPU nhiều chu kỳ • Thiết kế CPU nhiều chu kỳ: Mỗi công đoạn lệnh thực chu kỳ – Mỗi chu kỳ đồng hồ phải đủ lâu để thực công đoạn lệnh Instruction Fetch Decode/ Execute Register Read Memory Reg Write – Với chương trình có IC (instruction count) lệnh xử lý (0.25×5 + 0.1×4 + 0.52×4 + 0.11×3 + 0.02×3) × 200 × IC = 824×IC (ps) !!! 37 CuuDuongThanCong.com https://fb.com/tailieudientucntt Sơ đồ khối CPU nhiều chu kỳ • Do công đoạn thực thi chu kỳ riêng, nên ghép thành phần mạch dùng chung (ALU + Adder, Imem + DMem) mà khơng xảy đụng độ • Cần thêm ghi để lưu giữ kết trung gian công đoạn lệnh (A, B, ALUOut,…) 38 CuuDuongThanCong.com https://fb.com/tailieudientucntt … • Thiết kế chi tiết datapath control xử lý theo kỹ thuật nhiều chu kỳ môn KTMT nâng cao 39 CuuDuongThanCong.com https://fb.com/tailieudientucntt Tham khảo • Phần 5.5, P&H 40 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... thể có nhiều cơng đoạn lệnh khơng ? – Có, kiến trúc khác x86 CuuDuongThanCong .com https://fb .com/ tailieudientucntt Kỹ thuật thiết kế CPU chu kỳ • Thiết kế CPU chu kỳ: Tất công đoạn lệnh xử lý chu... https://fb .com/ tailieudientucntt Thiết kế đơn vị điều khiển (1/2) 28 CuuDuongThanCong .com https://fb .com/ tailieudientucntt Thiết kế đơn vị điều khiển (2/2) 29 CuuDuongThanCong .com https://fb .com/ tailieudientucntt... https://fb .com/ tailieudientucntt Thiết kế đơn vị điều khiển ALU (1/2) 30 CuuDuongThanCong .com https://fb .com/ tailieudientucntt Thiết kế đơn vị điều khiển ALU (2/2) 31 CuuDuongThanCong .com https://fb .com/ tailieudientucntt