1. Trang chủ
  2. » Giáo Dục - Đào Tạo

HKI 2013 2014 CK

5 125 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 0,99 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Với các biến nguyên i, j được gán lần lượt vào thanh ghi $s0, $s1; và địa chỉ nền của mảng số nguyên A được lưu trong thanh ghi $s3... Tính thời gian trễ lớn nhất cho lệnh trên e Nếu đổ

Trang 1

1

TRƯỜNG ĐẠI HỌC CNTT

KHOA KỸ THUẬT MÁY TÍNH

ĐỀ THI CUỐI KỲ MÔN: KIẾN TRÚC MÁY TÍNH

Thời gian: 90 phút Ghi chú: Được sử dụng tài liệu

Câu 1 (2 điểm)

a) Chuyển đổi mã assembly MIPS sang dạng mã máy MIPS: (1 điểm)

 lw $s5, -28 ($s1)

 sltiu $t1, $t2, 19

b) Chuyển dòng lệnh C dưới đây sang mã assembly của MIPS Với các biến nguyên i, j được gán lần lượt vào thanh ghi $s0, $s1; và địa chỉ nền của mảng số nguyên A được lưu trong thanh ghi

$s3 (1 điểm)

if (i<j) A[i]= i;

else A[i] = j;

Câu 2 (1 điểm)

Cho 2 số nguyên A và B trong hệ 10: A = 7, B = 3

Tính thương số và phần dư của A chia B theo cấu trúc phần cứng như trong hình 1, giả sử phép chia làm việc trong phạm vi số không dấu 3 bits (chú ý: sinh viên phải trình bày rõ ràng nội dung của từng thanh ghi qua từng bước)

Hình 1 (Dùng cho câu 2)

Câu 3 (2 điểm)

Cho 2 số thực dấu chấm động (floating-point) A và B trong hệ 10:

A = −0.0356125 x 102, B = 1125 x 10-2

a) Biểu diễn A và B theo chuẩn IEEE-754 độ chính xác đơn (1 điểm)

b) Giả sử A và B đang được biểu diễn theo IEEE-754 độ chính xác đơn, tính kết quả của A x B (chú

ý: trình bày rõ ràng từng bước tính toán và kết quả cuối cùng cũng phải được biểu diễn dưới dạng

IEEE-754 độ chính xác đơn) (1 điểm)

Câu 4 (2 điểm)

Cho đoạn chương trình sau được thực thi trong kiến trúc pipeline 5 tầng:

lw $s1, 4($s2)

add $s4, $s3, $s1

and $s5, $s4, $s1

Sử dụng lệnh nop để giải quyết nếu có xung đột dữ liệu (data hazard) trong hai trường hợp sau:

Trang 2

2

a Không dùng kỹ thuật “forwarding” (1 điểm)

b Dùng kỹ thuật “forwarding” (1 điểm)

Chú ý: Vẽ rõ ràng hình ảnh các chu kỳ pipeline khi đoạn lệnh trên thực thi

Câu 5 (3 điểm)

Cho một kiến trúc máy tính MIPS với datapath và tín hiệu điều khiển như hình 2

Đối với lệnh: addi Rt, Rs, Imm (ý nghĩa Rt = Rs + Imm)

a) Những block nào sẽ cần sử dụng cho lệnh trên, block nào không cần sử dụng?

b) Cho biết giá trị của các tín hiệu điều khiển?

c) Những block nào có cho dữ liệu output nhưng dữ liệu này không sử dụng? Những block nào

không cho output?

d) Cho thời gian trễ như sau: I-Mem=400ps, Add=100ps, Mux=30ps, ALU=120ps, Regs=200ps,

D-Mem=400ps, Control=100ps Tính thời gian trễ lớn nhất cho lệnh trên

e) Nếu đổi lệnh trên thành “addi Rt, Rs, Rx, Imm” thì phải thay đổi hay thêm vào hình trên những

block nào?

Hình 2 (Dùng cho câu 4)

Xác nhận trưởng bộ môn Giảng viên ra đề

Trang 3

Câu 1 (1,5 điểm)

Sinh viên muốn thực hiện lệnh if, phải biết tận dụng các lệnh rẽ nhánh được học (hoặc beq hoặc bne)

slt $t0, $s0, $s1 // if (i<j) $t0=1 else $t0=0

sll $t1, $s0, 2

add $t1, $t1, $s3 //now $t1 holds the address of A[i] in D-mem

beq $t0, $zero, Else

sw $s0, 0($t1) // A[i] = i

j Exit

Else: sw $s1, 0($t1) //A[i] = j

Exit:

Câu 2 (1,5 điểm)

7(10) = 111(2)

3(10) = 11(2)

Rem < 0, R= R + D, Q<< 000 011 000 000 111

Rem < 0, R=R + D, Q<< 000 001 100 000 111

Rem > 0, Q<<, Q0 = 1 001 000 110 000 001

Rem < 0, R=R + D, Q<< 010 000 010 000 001

Kết quả: Thương số = 010(2) = 2(10); phần dư = 1

Trang 4

Câu 4 (2 điểm)

a Không “forwarding” (1 điểm)

lw $s1, 4($s2)

nop

nop

add $s4, $s3, $s1

nop

nop

and $s5, $s4, $s1

Hình ảnh các chu kỳ pipeline khi đoạn lệnh trên thực thi:

lw $s1, 4($s2) IF ID EX MEM WB

nop

nop

add $s4, $s3, $s1 IF ID EX MEM WB

nop

nop

b Có “forwarding” (1 điểm)

lw $s1, 4($s2)

nop

add $s4, $s3, $s1

and $s5, $s4, $s1

Hình ảnh các chu kỳ pipeline khi đoạn lệnh trên thực thi:

lw $s1, 4($s2) IF ID EX MEM WB

nop

add $s4, $s3, $s1 IF ID EX MEM WB

and $s5, $s4, $s1 IF ID EX MEM WB

Trang 5

Câu 5 (3 điểm)

addi Rt, Rs, Imm (ý nghĩa Rt = Rs + Imm)

a) Tất cả các block đều được sử dụng ngoài trừ Data memory (0,5đ)

b) Giá trị của các tín hiệu điều khiển? (0,5đ)

c) (0,5đ)

- Những block có cho dữ liệu output nhưng dữ liệu này không sử dụng: Bộ cộng thứ 2 (bộ cộng

mà có một input qua khối shift_left_2 trước khi vào bộ cộng)

- Những block không cho output: Data memory

d) (0,5đ)

Thời gian trễ lớn nhất cho lệnh trên = I-Mem + Mux + Regs + Mux + ALU + Mux + Regs

= 400 + 30 + 200 + 30 + 120 + 30 + 200 = 1010 ps

e) “addi Rt, Rs, Rx, Imm” (ý nghĩa Rt = Rs + Rx + Imm) (1đ)

- Việc cộng thưc hiện trên 3 toán hạng nên: hoặc sử dụng thêm 1 ALU hoặc chỉnh sửa lại ALU

đang có bằng cách đưa thêm một input thứ 3 vào (0.5 điểm)

- Trường opcode (6 bits), 3 thanh ghi (mỗi thanh ghi 5 bits)  số bits trống còn lại trong format lệnh trên là 11 bits

Vậy trường Imm có thể sử dụng bao nhiêu bits tùy vào thiết kế, nhưng không quá 11 bits này Gọi

n là số bits cho trường Imm  Khối Sign-extend hiện tại là mở rộng có dấu từ số tức thời 16 bits

thành 32 bits; vì vậy hoặc sử dụng thêm một khối Sign-extend với input là n bits hoặc chỉnh sửa khối Sign-extend sao cho có thể nhận cả input 16 bits và n bits

ALU cần thực hiện thao tác cộng

Giá trị mà ALUOp nên nhận ở đây phụ thuộc vào thiết kế của khối ALU Control (sao cho đảm bảo kết quả của ALU Control ra tương ứng với thao tác cộng)

Nếu theo thiết kế trong sách tham khảo chính thì ALUOp

có thể nhận 2 giá trị 00 giống như lw hoăc sw cho lệnh addi

này

Như mình đã thống nhất là ở đây có thêm Regs Nhưng sẽ có một số sinh viên không chú ý

sẽ không thêm ở đây

Vì đây là lần đầu, lỗi cũng do mình thống nhất trễ cho sinh viên, nên nếu sinh viên nào

không cộng ở đây mình cũng cho điểm full luôn được không mọi người?

Ngày đăng: 25/10/2019, 11:14

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w