IT3283E - Computer Architecture

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/62

encourage image

There's no tags or description

Looks like no tags are added yet.

63 Terms

1
New cards

Select the RISC-V implementation of *a = b + c. Assume a is a pointer in a1 and b and c are in a2 and a3, respectively.

a. lw t0, 0(a1)     add t0, a2, a3

b. add t0, a2, a3     lw t0, 0(a1)

c. sw t0, 0(a1)     add t0, a2, a3

d. add t0, a2, a3     sw t0, 0(a1)

d. add t0, a2, a3 → sw t0, 0(a1)

2
New cards

Given the IEEE 754 single-precision word 0xC11A0000, what is its value in decimal?

−9.625

3
New cards

What is the decimal value of register s4 after executing these instructions?

addi s1, zero, 87

addi s2, zero, 53

xor s3, s2, zero

addi s3, s3, 1

add s4, s1, s3

141

4
New cards

What is the decimal value of the immediate operand in addi t0, s0, 0x1FF?

a. -2047

b. -511

c. 2047

d. 511

d. 511

5
New cards

Represent the decimal value −13.75 in IEEE 754 single-precision format. Write the answer in hexadecimal.

0xC15C0000

6
New cards

Consider two processors doing the same job. P1 has a clock rate of 1.5 GHz, an average CPI of 1.8, and executes 3.0E9 instructions. P2 has a clock rate of 2 GHz, an average CPI of 1.2, and executes 4.0E9 instructions. How much faster is P2 than P1? Here xEy means x × 10ʸ.

1.5×

7
New cards

Given the RISC-V R-format machine code 0x007302b3, what is its destination operand?

a. x10

b. x7

c. x5

d. x6

c. x5 (t0)

8
New cards

Assume all numbers are represented as 8-bit signed numbers. What is +65 + 65? Give the decimal answer without spaces.

−126

9
New cards

A processor runs a program at 4 GHz. Type A instructions account for 40% with CPI 1, type B for 35% with CPI 3, and type C for 25% with CPI 5. The program executes 2 billion instructions. What is the total execution time?

a. 1.1 seconds

b. 1.25 seconds

c. 1.35 seconds

d. 1.4 seconds

c. 1.35 seconds

10
New cards

Given the branch instruction beq with machine code 0x01ee8463, what are its source registers?

a. x30, x31

b. x29, x29

c. x5, x6

d. x29, x28

e. x29, x30

e. x29, x30

11
New cards

Select the RISC-V implementation of a = b + *c. Assume a and b are in a1 and a2, respectively, and c is a pointer in a3.

a. li t0, 0(a3)     add a1, a2, t0

b. sw t0, 0(a3)     add a1, a2, t0

c. la t0, 0(a3)     add a1, a2, t0

d. lw t0, 0(a3)     add a1, a2, t0

d. lw t0, 0(a3) → add a1, a2, t0

12
New cards

What are the values of t0 and t1 after executing the following code?

li s0, 67 li s1, -13 div t0, s0, s1 rem t1, s0, s1

a. t0 = 0xfffffffb, t1 = 0x00000010

b. t0 = 0x00000005, t1 = 0xfffffffd

c. t0 = 0xfffffffb, t1 = 0x00000005

d. t0 = 0xfffffffb, t1 = 0x00000002

d. t0 = 0xfffffffb, t1 = 0x00000002

13
New cards

Registers s1 and s2 hold the base addresses of integer arrays A and B, respectively. Which C statement is equivalent to the code below?

lw t0, 24(s1) addi s0, t0, 1 sw s0, 20(s2)

a. A[24] = B[20] + 1

b. B[20] = A[24] + 1

c. A[5] = B[6] + 1

d. B[5] = A[6] + 1

d. B[5] = A[6] + 1

14
New cards

What is the destination address of the sw instruction below, in hexadecimal?

li s0, 0x1001BCDE addi s1, s0, 0x321 sw s0, 1(s1)

0x1001C000

15
New cards

Assume the first instruction starts at 0x00400000. What is the decimal value of the encoded 12-bit immediate field of beq t0, zero, else?

addi s0, zero, 100     

slti t0, s0, -100     

beq t0, zero, else     

addi t2, t2, 1     

j endif

else:      addi t2, t2, -1

endif:     nop

a. 8

b. 3

c. 2

d. 6

d. 6 (the branch target is 12 bytes ahead)

16
New cards

Given the memory contents below on a little-endian RISC-V system, what is the value of s0 after the code executes?

ADDRESS VALUE

0x10010000 0x1a

0x10010001 0x2b

0x10010002 0x3c

0x10010003 0x4d

0x10010004 0x5e

0x10010005 0x6f

li $t1, 0x10010004

addi $t1, $t1, -4

lh $s0, 2($t1)

a. 0x00003c4d

b. 0x00006f5e

c. 0x3c4d5e6f

d. 0x00002b1a

e. 0x4d3c2b1a

f. 0x00004d3c

f. 0x00004d3c

17
New cards

A 32-bit integer array A[] has base address 0x20230200. Which element will t0 hold after the code executes?

lui s0, 0x20230 addi s0, s0, 0x20C lw t0, 4(s0)

a. A[1]

b. A[2]

c. A[5]

d. A[0]

e. A[3]

f. A[4]

f. A[4]

18
New cards

The RISC-V stack grows toward lower addresses. Which code is appropriate to allocate and store one word on the stack?

a. addi sp, sp, -4     sw s0, 0(sp)

b. addi sp, sp, 0     sw s0, 0(sp)

c. addi sp, sp, 4     sw s0, 0(sp)

d. addi sp, sp, -8     sw s0, 4(sp)

a. addi sp, sp, -4 → sw s0, 0(sp)

19
New cards

Which instructions store PC + 4 in ra before transferring control?

a. j

b. jr

c. jal

d. jalr

e. beq

c and d. jal and jalr, when rd is ra

20
New cards

What is the hexadecimal value of s2 after executing this RISC-V code?

li s0, 1

lui s1, 0xFFFFF

ori s1, s1, 2047

add s2, s0, s1

0xFFFFF800

21
New cards

What is the value of s0 after executing the following code?

.data   

x: .byte -24


.text   

la t0, x   

lb s0, 0(t0)


a. 0xffe8

b. 0xe8

c. 0x000000e8

d. 0xffffffe8

d. 0xffffffe8

22
New cards

Select the RISC-V implementation of a += 0x12345678. Assume a is in s0.

a. li t0, 0x12345     addi t0, t0, 0x678     add s0, s0, t0

b. lui t0, 0x1234     addi t0, t0, 0x5678     add s0, s0, t0

c. lui t0, 0x12345     addi t0, t0, 0x678     add s0, zero, t0

d. lui t0, 0x12345     addi t0, t0, 0x678     add s0, s0, t0

d. lui t0, 0x12345 → addi t0, t0, 0x678 → add s0, s0, t0

23
New cards

What is the decimal value of s5 after executing the following code?

.data: A: .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

.text     

li s1, 0     

li s3, 10     

la s2, A

loop:     

add t1, s1, s1     

add t1, t1, t1     

add t1, t1, s2     

lw t0, 0(t1)     

add s5, s5, t0     

addi s1, s1, 2     

bne s1, s3, loop

25

24
New cards

What hexadecimal value is stored in s2 after executing the program on a little-endian RISC-V CPU?

.data

A: .word 0xa1b2c3d4

.text     

la t0, A     

lb s1, 0(t0)     

andi s2, s1, 0xf0

a. 0x000000c0

b. 0x000000a0

c. 0x000000c3

d. 0x000000d0

d. 0x000000d0

25
New cards

What is the output of the following program?

.text     

li t0, -2     

li t1, 2     

blt t0, t1, else     

li a0, 1     

addi a0, a0, 5     

j print

else:     

li a0, 2     

addi a0, a0, 7

print:     

li a7, 1     ecall

a. 1

b. 2

c. 7

d. 5

e. 6

f. 9

f. 9

26
New cards

Assume t0 holds the decimal value 512. What range of t1 causes signed overflow when add t2, t0, t1 is executed?

a. 0x7FFFD00 - 0x7FFFFFFF

b. 0x7FFFDFF - 0x7FFFFFFF

c. 0x7FFFFE00 - 0x80000000

d. 0x7FFFFE00 - 0x7FFFFFFF

d. 0x7FFFFE00–0x7FFFFFFF

27
New cards

What is the output of the following program?

.text     

li t0, -10     

li t1, 10     

bltu t0, t1, else     

li a0, 10     

addi a0, a0, 5     

j print

else:     

li a0, 20     

addi a0, a0, 7

print:     

li a7, 1     ecall

a. 15

b. 20

c. 7

d. 27

e. 5

f. 10

a. 15

28
New cards

Which of the following instructions can be used to clear s0?

a. AND s0, s0, zero

b. XOR s0, s0, s0

c. XOR s0, s0, zero

d. AND s0, s0, s0

a and b. AND s0, s0, zero and XOR s0, s0, s0

29
New cards

Which of the following instructions have a 20-bit immediate field?

a. lui

b. auipc

c. jal

d. sw

e. lw

f. addi

g. beq

a, b, and c. lui, auipc, and jal

30
New cards

Which of the following is equivalent to the RISC-V pseudoinstruction li t0, 0x20241120?

a. lui t0, 0x202411     ori t0, t0, 0x20

b. lui t0, 0x2024     addi t0, t0, 0x1120

c. lui t0, 0x2024     ori t0, t0, 0x1120

d. lui t0, 0x20241     addi t0, t0, 0x120

d. lui t0, 0x20241 → addi t0, t0, 0x120

31
New cards
<p>Bản đồ bộ nhớ của hệ thống RISC-V 32-bit, lưu theo thứ tự đầu nhỏ. Mỗi dòng liệt kê bốn byte theo thứ tự địa chỉ tăng dần.</p><p>Hãy cho biết giá trị số 32-bit ở địa chỉ 0x400000, ở hệ 16. Ví dụ 0x12345678.</p>

Bản đồ bộ nhớ của hệ thống RISC-V 32-bit, lưu theo thứ tự đầu nhỏ. Mỗi dòng liệt kê bốn byte theo thứ tự địa chỉ tăng dần.

Hãy cho biết giá trị số 32-bit ở địa chỉ 0x400000, ở hệ 16. Ví dụ 0x12345678.

0x007302B3

32
New cards

Sau đoạn lệnh hợp ngữ bên dưới, hai thanh ghi s0 và t1 bằng bao nhiêu?

lui s0, 0x400 addi s0, s0, 0x18 lh t1, 0(s0)

s0 = 0x00400018, t1 = 0xFFFFF0EF (lh mở rộng dấu).

33
New cards

Lệnh ở địa chỉ 0x400014 có thanh ghi đích rd là gì? Ví dụ t6.

s3 (x19)

34
New cards

Lệnh thứ 3 được trình bày trong bản đồ bên là lệnh tương đương với phép chia. Đó là phép chia với hằng số bằng mấy? Ví dụ 2, 7, 8, 15.

128 (srli dịch phải 7 bit).

35
New cards

Hằng số của lệnh ở địa chỉ 0x400008 bằng mấy? Viết ở hệ 16. Ví dụ 0x1234.

0x7

36
New cards

Hãy cho biết thao tác của lệnh ở địa chỉ 0x400010 là gì. Ví dụ add, bne, lui.

beq

37
New cards

Giả định bản đồ chứa mảng A gồm 3 phần tử 8-bit có dấu, ở địa chỉ cơ sở 0x400009. Hãy xác định giá trị và sắp xếp chúng tăng dần. Ví dụ 0x11 < 0x12 < 0x13.

0xDE < 0x00 < 0x74 (−34 < 0 < 116).

38
New cards

Sau khi kết thúc chương trình RISC-V sau, thanh ghi a0 = -7. Hãy viết một lệnh bị thiếu ở vị trí …

ADDI t1, x0, 3 … XOR a0, t1, t2 # a0 = -7

ADDI t2, x0, -6

39
New cards

Một phần mềm gồm 15% lệnh tốn 3 chu kỳ, 35% lệnh tốn 5 chu kỳ và 10% lệnh tốn 2 chu kỳ. Các lệnh còn lại tốn 4 chu kỳ. CPI trung bình của phần mềm là bao nhiêu?

4

40
New cards

Hãy liệt kê đủ dạng lệnh trong 6 dạng của RISC-V 32-bit không chứa hằng số.

Dạng R

41
New cards

Nhận xét nào sau đây đúng?

L1: beq t1, t2, L2     addi t3, x0, 0 L2: jal ra, L1 L3: jalr x0, ra, 8

a. Hằng số L1 trong lệnh jal sẽ được biên dịch thành hằng số dương.

b. Hằng số L2 trong lệnh beq sẽ được biên dịch thành hằng số âm.

c. Hằng số 8 ở lệnh jalr và hằng số L2 trong lệnh beq có số lượng bit biểu diễn bằng nhau.

d. Thanh ghi ra sẽ chứa số âm.

c. Hai lệnh có 12 bit được mã hóa cho hằng số.

42
New cards
<p>Bản đồ bộ nhớ của hệ thống RISC-V 32-bit, lưu theo thứ tự đầu nhỏ. Mỗi dòng liệt kê bốn byte theo thứ tự địa chỉ tăng dần.</p><p>Hãy cho biết giá trị số 32-bit ở địa chỉ 0x400018, ở hệ 16. Ví dụ 0x12345678.</p>

Bản đồ bộ nhớ của hệ thống RISC-V 32-bit, lưu theo thứ tự đầu nhỏ. Mỗi dòng liệt kê bốn byte theo thứ tự địa chỉ tăng dần.

Hãy cho biết giá trị số 32-bit ở địa chỉ 0x400018, ở hệ 16. Ví dụ 0x12345678.

0xFE9FF0EF

43
New cards

Sau đoạn lệnh hợp ngữ bên dưới, hai thanh ghi s0 và t1 bằng bao nhiêu?

lui s0, 0x400 addi s0, s0, 0x16 lh t1, 0(s0)

s0 = 0x00400016, t1 = 0x00001234

44
New cards

Lệnh ở địa chỉ 0x400000 có thanh ghi nguồn rs1 là gì? Ví dụ t6.

t1 (x6)

45
New cards

Lệnh thứ 3 được trình bày trong bản đồ bên là lệnh tương đương với phép chia. Đó là phép chia với hằng số bằng mấy? Ví dụ 2, 7, 8, 15.

8 (srli dịch phải 3 bit).

46
New cards

Trong bản đồ, lệnh beq duy nhất ở địa chỉ nào? Ví dụ 0x1234.

0x400010

47
New cards

Hãy cho biết thao tác của lệnh ở địa chỉ 0x400008 là gì. Ví dụ add, bne, lui.

srli

48
New cards

Giả định bản đồ chứa mảng A gồm 3 phần tử 8-bit có dấu, ở địa chỉ cơ sở 0x400014. Hãy xác định giá trị và sắp xếp chúng tăng dần. Ví dụ 0x11 < 0x12 < 0x13.

0xB7 < 0x34 < 0x59 (−73 < 52 < 89).

49
New cards

Sau khi kết thúc chương trình RISC-V sau, thanh ghi a0 = -5. Hãy viết một lệnh bị thiếu ở vị trí …

ADDI t1, x0, -2 … XOR a0, t1, t2 # a0 = -5

ADDI t2, x0, 5

50
New cards

Một phần mềm gồm 10% lệnh tốn 4 chu kỳ, 40% lệnh tốn 6 chu kỳ, 30% lệnh tốn 8 chu kỳ, còn lại là lệnh 10 chu kỳ. CPI trung bình của phần mềm là bao nhiêu?

7,2

51
New cards

Hãy liệt kê đủ các dạng lệnh trong 6 dạng của RISC-V 32-bit có hằng số và độ dài của hằng số là 20 bit.

Dạng U và J (20 bit được mã hóa).

52
New cards

Nhận xét nào sau đây đúng?

L1: jal ra, L2     addi t3, x0, 0 L2: beq t1, t2, L1 L3: jalr x0, ra, 8

a. Hằng số L1 trong lệnh beq sẽ được biên dịch thành hằng số âm.

b. Hằng số L2 trong lệnh jal sẽ được biên dịch thành hằng số âm.

c. Hằng số L2 trong lệnh jal có phạm vi biểu diễn nhỏ hơn hằng số L1 trong lệnh beq.

d. Thanh ghi ra sẽ chứa địa chỉ của lệnh jalr ở dòng 4.

a. Hằng số L1 trong lệnh beq sẽ được biên dịch thành hằng số âm.

53
New cards
<p>Bản đồ bộ nhớ của hệ thống RISC-V 32-bit, lưu theo thứ tự đầu nhỏ. Mỗi dòng liệt kê bốn byte theo thứ tự địa chỉ tăng dần.</p><p>Hãy cho biết giá trị số 32-bit ở địa chỉ 0x400008, ở hệ 16. Ví dụ 0x12345678.</p>

Bản đồ bộ nhớ của hệ thống RISC-V 32-bit, lưu theo thứ tự đầu nhỏ. Mỗi dòng liệt kê bốn byte theo thứ tự địa chỉ tăng dần.

Hãy cho biết giá trị số 32-bit ở địa chỉ 0x400008, ở hệ 16. Ví dụ 0x12345678.

0x038B0B13

54
New cards

Sau đoạn lệnh hợp ngữ bên dưới, hai thanh ghi s0 và t1 bằng bao nhiêu?

lui s0, 0x400 addi s0, s0, 0x16 lb t1, 0(s0)

s0 = 0x00400016, t1 = 0x0000001F

55
New cards

Lệnh ở địa chỉ 0x400000 có thanh ghi nguồn rs2 là gì? Ví dụ t6.

t2 (x7)

56
New cards

Lệnh cuối cùng được trình bày trong bản đồ bên là lệnh tương đương với phép nhân. Đó là phép nhân với hằng số bằng mấy? Ví dụ 2, 7, 8, 15.

4 (slli dịch trái 2 bit).

57
New cards

Lệnh dạng U ở địa chỉ 0x400004 có toán hạng là hằng số bằng mấy? Viết ở hệ 16. Ví dụ 0x1234.

0x40

58
New cards

Hãy cho biết thao tác của lệnh ở địa chỉ 0x400004 là gì. Ví dụ add, bne, lui.

lui

59
New cards

Giả định bản đồ chứa mảng A gồm 3 phần tử 8-bit có dấu, ở địa chỉ cơ sở 0x400009. Hãy xác định giá trị và sắp xếp chúng tăng dần. Ví dụ 0x11 < 0x12 < 0x13.

0x8B < 0x03 < 0x0B (−117 < 3 < 11).

60
New cards

Viết một lệnh RISC-V còn thiếu để thực hiện biểu thức a = (a + b) * 64 - a.

ADD t2, s3, s4 … SUB s3, t3, s4

SLLI t3, t2, 6 (s4 giữ a đầu vào, s3 nhận kết quả).

61
New cards

Biết t0 = 0x35B9D2E4, t1 = 0x0F0F0F0F. Giá trị của t2 bằng bao nhiêu sau khi thực hiện lệnh XOR t2, t0, t1?

0x3AB6DDEB

62
New cards

Giải thích nào về lệnh RISC-V bne t1, t2, -16 là đúng?

a. Nếu t1 != t2 thì rẽ nhánh về 4 lệnh sau lệnh hiện thời.

b. Nếu t1 != t2 thì rẽ nhánh về 4 lệnh trước lệnh hiện thời.

c. Nếu t1 == t2 thì rẽ nhánh về 4 lệnh sau lệnh hiện thời.

d. Nếu t1 == t2 thì rẽ nhánh về 4 lệnh trước lệnh hiện thời.

b. Nếu t1 != t2 thì rẽ nhánh về 4 lệnh trước lệnh hiện thời.

63
New cards

Bộ xử lý RISC-V có tần số xung nhịp 1 GHz thực hiện phần mềm gồm 200.000 lệnh máy với CPI = 3, 200.000 lệnh máy với CPI = 4 và 300.000 lệnh máy với CPI = 2. Hỏi phần mềm đó chạy trong bao lâu?

2 ms (0,002 giây).