CO2008 KIẾN TRÚC MÁY TÍNH Khoa Khoa Học và Kỹ Thuật Máy Tính Đại học Bách Khoa – Tp HCM 08/2019 Bài tập/Thực hành 7 CHƯƠNG 4 KIẾN TRÚC MIPS PIPELINE Mục tiêu • Xác định thời gian chu kỳ của hệ thống s[.]
CO2008 - KIẾN TRÚC MÁY TÍNH Khoa Khoa Học Kỹ Thuật Máy Tính Đại học Bách Khoa – Tp.HCM 08/2019 Bài tập/Thực hành CHƯƠNG KIẾN TRÚC MIPS: PIPELINE Mục tiêu • Xác định thời gian chu kỳ hệ thống single clock, multi clock pipeline • Tính hiệu suất hệ thống pipeline với hệ thống single clock multi clock • Hiểu chức chế pipeline cách khắc phục tượng Hazard q trình pipeline gây u cầu • Xem slide pipeline • Nộp file code hợp ngữ đặt tên theo format Bai*.[pdf,txt] chứa thư mục Lab7_MSSV Hình ảnh so sánh hệ thống single cycle, multi cycle pipeline cycle Single clock cycle Load Add IF ID EXE MEM WB MEM WB IF MEM EXE ID IF WB MEM EXE ID IF WB MEM EXE ID Multi cycle Load IF ID EXE IF ID Jump EXE MEM ID EXE WB WB MEM EXE WB MEM WB Add WB IF ID Store EXE Jump Store IF IF ID ID MEM WB EXE MEM IF ID Branch EXE MEM WB IF ID EXE MEM WB Branch IF ID EXE Pipeline IF ID IF EXE ID IF • Single Clock Cycle: Một lệnh thực thi chu kỳ Ví dụ lệnh load thực thi chu kỳ(màu xanh), lệnh store thực thi chu kỳ( màu vàng) Thời gian màu xanh vàng • Multi Clock Cycle: lệnh thực thi nhiều chu kỳ Ví dụ lệnh Load thực thi chu kỳ (5 chu kỳ nhỏ tương ứng với chu kỳ lớn bên single clock cycle), lệnh Store thực thi chu kỳ (màu vàng) • Pipeline Lệnh thực thi chu kỳ, lệnh cịn lại sau chu kỳ hồn thành xong lệnh Các bước thực lệnh MIPS Bộ xử lý Pipeline chia trình thực thi lệnh thành bước, bước thực thi trong chu kỳ IF: Lấy lệnh (khối Instruction Memory), 32bits lệnh chứa thông tin lệnh lấy từ instruction memory ID: Giải mã lệnh (khối Registers Control), xác định tốn tử, tín hiệu điều khiển, nội dung ghi, giá trị immediate 3 EXE: Thực thi tác vụ lệnh (khối ALU) MEM: Truy xuất vùng nhớ (khối Data Memory) - dùng cho lệnh load/store WB: Ghi kết vào ghi (khối Registers) Bài tập Thực hành Bài 1: Xác định clock cycle Cho thời gian delay khối Bảng Bảng 1: delay khối phần cứng Phần cứng Delay (ns) Instruction memory 150 Register 100 ALU 100 Data memory 150 Các phần cứng khác Xét đoạn chương trình sau: addi $t1, $zero, 100 addi $t2, $zero, loop: beq $t1, $t2, exit addi $t1, $t1, -1 addi $t2, $t2, j loop (a) Xác định clock cycle hệ thống single clock, multi clock pipeline clock (b) Xác định thời gian thực thi chương trình chạy với hệ thống single cycle, multi cycle pipeline cycle(khơng xét stall) (c) Tính speed up hệ thống pipeline với hệ thống multi cycle với single cycle (d) Khi delay ALU thay đổi từ 100 –> 150 Tính lại kết câu a,b,c Bài 2: Xử lý Hazard Dùng lại đoạn code Bài 1: (a) Xác định phụ thuộc liệu đoạn chương trình (b) Giải data hazard chèn stall (giải phần mềm), thực thi đoạn code với hệ thống pipeline cần chèn vào stall (khựng lại) ? (c) Dùng chế forward để giải hazard (giải phần cứng), có stall? Vẽ hình minh họa (d) Dùng chế forward, stall, để giải hazard (control data), có stall? (e) Ngồi chế trên, ta giảm stall cách xếp lại thứ tự code (giải trình biên dịch compiler) Hãy xếp lại code cho stall Bài 3: Xử lý Hazard (lệnh load) Cho đoạn code sau: addi addi add lw lw and sw $t1, $t2, $t3, $t4, $t5, $t6, $t6, $zero, 100 $zero, 100 $t1, $t2 0($a0) 4($a0) $t4, $t5 8($a0) Trả lời câu hỏi Bài 2: Bài tập TextBook 4.13, 4.16