Bài tập thực hành Kiến trúc máy tính số 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 single clock, multi clock và pipeline.
• Tính hiệu suất của hệ thống pipeline với hệ thống single clock và multi clock.
• Hiểu chức năng về cơ chế pipeline và cách khắc phục các hiện tượng Hazard do quá trình
pipeline gây ra. 
pdf 3 trang xuanthi 28/12/2022 1060
Bạn đang xem tài liệu "Bài tập thực hành Kiến trúc máy tính số 7 - Chương 4: Kiến trúc mips: PipeLine", để 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:

  • pdfbai_tap_thuc_hanh_kien_truc_may_tinh_so_7_chuong_4_kien_truc.pdf

Nội dung text: Bài tập thực hành Kiến trúc máy tính số 7 - Chương 4: Kiến trúc mips: PipeLine

  1. 3. EXE: Thực thi tác vụ lệnh (khối ALU). 4. MEM: Truy xuất vùng nhớ (khối Data Memory) - chỉ dùng cho lệnh load/store. 5. WB: Ghi kết quả vào thanh ghi (khối Registers). Bài tập và Thực hành Bài 1: Xác định clock cycle Cho thời gian delay của các khối như Bảng1 Bảng. 1: delay của các khối phần cứng Phần cứng Delay (ns) Instruction memory 150 Register 100 ALU 100 Data memory 150 Các bộ phần cứng khác 0 Xét đoạn chương trình như sau: 1 addi $t1, $zero, 100 2 addi $t2, $zero, 0 3 loop: 4 beq $t1, $t2, exit 5 addi $t1, $t1, -1 6 addi $t2, $t2, 1 7 j loop (a) Xác định clock cycle của hệ thống single clock, multi clock và pipeline clock. (b) Xác định thời gian thực thi của chương trình trên khi chạy với hệ thống single cycle, multi cycle và pipeline cycle(không xét stall). (c) Tính speed up của hệ thống pipeline với hệ thống multi cycle và với single cycle. (d) Khi delay ALU thay đổi từ 100 –> 150. Tính lại kết quả câu a,b,c Bài 2: Xử lý Hazard. Dùng lại đoạn code của Bài 1: (a) Xác định sự phụ thuộc dữ liệu trong đoạn chương trình trên. (b) Giải quyết data hazard bằng chèn stall (giải quyết bằng phần mềm), khi thực thi đoạn code trên với hệ thống pipeline thì cần chèn vào bao nhiêu stall (khựng lại) ? (c) Dùng cơ chế forward để giải quyết hazard (giải quyết bằng phần cứng), khi đó có bao nhiêu stall? Vẽ hình minh họa. (d) Dùng cơ chế forward, stall, để giải quyết hazard (control và data), khi đó có bao nhiêu stall? (e) Ngoài 2 cơ chế ở trên, ta có thể giảm stall bằng cách sắp xếp lại thứ tự code (giải quyết bằng trình biên dịch compiler). Hãy sắp xếp lại code sao cho ít stall nhất. Bài 3: Xử lý Hazard (lệnh load) Cho đoạn code sau: 1 addi $t1, $zero, 100 2 addi $t2, $zero, 100 3 add $t3, $t1, $t2 4 lw $t4, 0($a0) 5 lw $t5, 4($a0) 6 and $t6, $t4, $t5 7 sw $t6, 8($a0) Trả lời câu hỏi trong Bài 2: 2