Bài toán aảnh màu kiến trúc máy tính

1. Trình bày khái niệm về máy tính điện tử? - Máy tính (computer) là một thiết bị điện tử dùng để tính toán, xử lý dữ liệu theo chương trình đã lập trình trước 2. Máy tính điện tử đầu tiên ENIAC sử dụng linh kiện đèn điện tử hay transistor? Sô l°ợng linh kiện tích hợp trên chip thể hiện điều gì? - Sử dụng linh kiện đèn điện tử vì transistor chưa được phát minh - Thể hiện thời gian xử lí tính toán và đưa ra lệnh để điều khiển hệ thống máy tính. 3. Trình bày chức năng c¢ bản của máy tính? - Máy tính thực hiện các công việc sau: - Nhận thông tin vào.

  • Xử lý thông tin theo chương trình được nhớ sẵn bên trong bộ nhớ.
  • Đưa thông tin ra. 4. Trình bày các thành phần c¢ bản của máy tính, nêu chức năng của từng thành phần đó?
  • CPU : thực hiện các câu lệnh của chương trình máy tính bằng cách thực hiện các phép tính số học, logic, so sánh và các hoạt động nhập/xuất dữ liệu (I/O) cơ bản do mã lệnh chỉ ra.
  • RAM : là một loại bộ nhớ khả biến cho phép truy xuất đọc ghi ngẫu nhiên đến bất kỳ vị trí nào trong bộ nhớ dựa theo địa chỉ bộ nhớ.
  • à cứng : chứa toàn bộ dữ liệu của bạn, từ á hệ điều hành cho đến các chương trình, phần mềm, file văn bản... nói chung là nó sẽ lưu lại tất cả dữ liệu.
  • Bộ ngußn : cung cấp năng lượng cho tất cả các thiết bị phần cứng của máy tính hoạt động.
  • Card đß họa : xử lý các thông tin về hình ảnh trong máy tính, cụ thể như màu sắc, chi tiết độ phân giải, độ tương phản của hình ảnh.
  • Mainboard : liên kết các thiết bị thông qua các đầu cắm hoặc dây dẫn phù hợp. 5. Hiểu thế nào là phần dẻo (firmware) trong máy tính? Chúng có nhiệm vụ chức năng nh° thế nào đối với máy tính?
  • Firmware là một thuật ngữ được dùng để chỉ những chương trình máy tính cố định và điều khiển cấp thấp nhiều thiết bị điện tử
  • Chức năng: Kiểm soát các dữ liệu trên HĐH. 6. Đ¢n vị xử lý trung tâm (CPU MIPS) gồm những bộ phận nào? Trình bày chức năng của từng bộ phận đó?
  • Khối điều khiển (CU) : thông dịch các lệnh của chương trình điều khiển hoạt động xử lý
  • Khối tính toán (ALU) : tính toán kỹ lưỡng rßi sau đó đưa ra kết quả tới các quá trình và chờ cho quá trình xử lý tiếp theo.

7. Nói việc trao đổi dữ liệu giữa máy tính và thiết bị ngoại vi đ°ợc thực hiện qua 1 cổng (port) có đúng không? Vị dụ? - Đúng. Ví dụ chuột máy tính kết nối với máy tính qua cáng USB. 8. Bộ nhớ chính trong máy tính gồm những thành phần nào? Tại sao gọi RAM là bộ nhớ truy cập ngẫu nhiên? - Thanh RAM được cấu tạo từ nhiều các chi tiết nhỏ khác nhau, gßm có: điện trở, là phần bao quanh các chip nhớ (resistor); tụ điện (capacitor). Dãy điện trở và tụ điện thường được thiết kế nằm cạnh tham RAM để cung cấp điện áp một cách án định và chính xác cho các chip nhớ. - RAM được gọi là bộ nhớ truy cập ngẫu nhiên vì nó có đặc tính: thời gian thực hiện thao tác đọc hoặc ghi đối với mỗi ô nhớ là như nhau, cho dù đang ở bất kỳ vị trí nào trong bộ nhớ. 9. Dựa vào những tiêu chí gì để đánh giá sự phát triển của máy tính điện tử số qua các giai đoạn khác nhau? 10. Trình bày nguyên lý Von Newmann? - Máy tính có thể hoạt động theo một chương trình đã được lưu trữ. Theo Von Neumann, chúng ta có thể tập hợp các lệnh cho máy thi hành theo một chương trình được thiết kế và coi đó như một tập dữ liệu. Dữ liệu này được cài vào trong máy và được truyền bằng xung điện. Ðây là một cuộc cách mạng mới cho máy tính nhằm tăng tốc độ tính toán vào thời đó vì trước kia máy chỉ có thể nhận được các lệnh từ băng giấy hoặc bìa đục lỗ và nạp vào bằng tay. Nếu gặp bài toán lặp lại nhiều lần thì cũng tiếp tục bằng cách nạp lại một cách thủ công như vậy gây hạn chế trong tính toán sử dụng. - Bộ nhớ được địa chỉ hóa Mỗi dữ liệu đều có một địa chỉ của vùng nhớ chứa số liệu đó. Như vậy để truy nhập dữ liệu ta chỉ cần xác định địa chỉ của nó trên bộ nhớ. - Bộ đếm của chương trình Nếu mỗi câu lệnh phải dùng một vùng nhớ để chứa địa chỉ của câu lệnh tiếp theo thì không gian bộ nhớ sẽ bị thu hẹp. Ðể khắc phục hạn chế này, máy được gắn một thanh ghi để chỉ ra vị trí của lệnh tiếp theo cần được thực hiện và nội dung của nó tự động được tăng lên mỗi lần lệnh được truy cập. Muốn đái thứ tự lệnh ta chỉ cần thay đái nội dung thanh ghi bằng một địa chỉ của lệnh cần được thực hiện tiếp. 11. Thông tin đ°ợc l°u trữ và truyền bên trong máy tính d°ới dạng nào? - Thông tin được lưu trữ dưới dạng số và truyền đi dưới dạng tín hiệu điện. 12. Trình bày trình tự xử lý thông tin của máy tính điện tử? - Nhập thông tin vào máy tính => Xử lí thông tin => Xuất thông tin ra màn hình

13. Thế nào là bus hệ thống? Chức năng của chúng? - là một bus máy tính đơn lẻ kết nối các thành phần chính của một hệ thống máy tính, kết hợp các chức năng của một bus dữ liệu để mang

Một số bù 2 có được do đảo tất cả các bit có trong số nhị phân (đái 1 thành 0 và ngược lại) rßi thêm 1 vào kết quả vừa đạt được. Thực chất, số biểu diễn ở dạng bù 2 là số biểu diễn ở bù 1 (đảo bit) rßi sau đó cộng thêm 1.

Phương pháp bù 2 thường được sử dụng để biểu diễn số âm trong máy tính.

5. Đối với số nguyên có dấu 8 bit, dùng ph°¢ng pháp

Vậy 101 được biểu diễn thành 01100101

6. Đối với số nguyên có dấu 8 bit, dùng ph°¢ng pháp

101 = 0110 0101 2 Vậy 101 được biểu diễn thành 01100101 7. Đối với số nguyên có dấu, 8 bit, dùng ph°¢ng pháp

Vậy -29 được biểu diễn thành 11100011

8. Đối với các số 8 bit, không dấu. Hãy cho biết kết quả khi thực hiện phép cộng: 0100 0111 + 0101 1111.

0100 0111 +

0101 1111

10100110 9. Đối với số có dấu, 8 bit, xét phép cộng: (-39) + (-42). Phát biểu nào sau đây

là đúng: A. Không cho kết quả, vì tràn số B. Không cho kết quả, vì có nhớ ra khỏi bit cao nhất

  1. Tổng là - D. Tổng là 81

Tại sao?

  • (-39) 10 =11011001 2 (biểu diễn dạng bù 2)

-(-42) 10 = 11010110 2 (biểu diễn dạng bù 2) (-39) 10 +(-42) 10 =10101111 2 =175 10 và vượt qua phạm vi biểu diễn của số có dấu 8 bit(>127)➔ ta để kết quả ở dạng bù 2 và = -81. Ph°¢ng án chọn là C

10. Đối với số có dấu, 8 bit, xét phép cộng: 91 + 63. Phát biểu nào sau đây là đúng:

  1. Không cho kết quả, vì tràn số
  1. Kết quả sai, vì có nhớ ra khỏi bit cao nhất
  1. Tổng là 154
  1. Tổng là -

Tại sao?

-91 10 = 010110112

-63 10 = 001111112

9110 +63 10 =10011010 2 =154 10 và vượt qua phạm vi biểu diễn của số có dấu 8 bit(>127)➔nên ta để kết quả ở dạng bù 2 và = -102. Chọn ph°¢ng án D

11. Phép cộng 2 số hệ 16: 1C37286A + 9395E84B có kết quả bằng: AFCD10B5. 12. Phép trừ 2 số hệ 16: B14FC675 – 839EA247 có kết quả bằng :2DB1242E 13. Số hex 9DB1242E là số d°¢ng hay âm? 14. Giá trị lớn nhất của số nguyên không dấu 8 bit bằng : 255 15. Giá trị lớn nhất của số nguyên có dấu 8 bit bằng : 127 16. 1KB(kilobyte) =1024 byte 17. 1Kb(kilobit) = 125byte 18. Cho số hệ thập lục phân 8A1F, giá trị hệ thập phân đối với số có dấu và không dấu bằng bao nhiêu? có dấu : 35359 không dấu: 19. Khái niệm về Carry và Overflow?

- Carry(nhớ) xuất hiện trong các bài toán cộng trừ hai 2 không dấu khi báo táng dạng không dấu bị ngoài tầm biểu diễn, xảy ra khi <0 hoặc >max giá trị không dấu n bit.

-Overflow(tràn) xuất hiện khi cộng trừ 2 số có dấu khi báo táng có dấu bị ngoài tầm biểu diễn(tràn) xảy ra khi ta cộng hai số dương và được táng là một sô âm hay cộng hai số âm được táng là một số dương.

20. Thực hiện phép cộng 2 số nhị phân 11010010 + 10111101. Hãy cho biết giá trị 2 bit carry (C) và overflow (O).

11010010 (210) (-46)+10111101 (189) (-67)10001111 (143) (-113)

Carry=1 Overflow=

Ch°¢ng 4 :

1. Khái niệm về kiến trúc tập lệnh? Các thành phần của nó bao gồm những gì?

  • Khái niệm về kiến trúc tập lệnh: Là giao diện giữa phần cứng và phần mềm.
  • Thanh ghi PC: Chứa địa chỉ câu lệnh thực thi.
  • Thanh ghi HI, LO: Có chức năng để khiểm soát kết quả của một lệnh thực hiện nhân hoặc chia số nguyên. 5. Khối ALU trong CPU có chức năng nhiệm vụ gì?
  • Có chức năng thực hiện các phép toán số học và logic sau đó trả lại kết quả cho thanh ghi hoặc bộ nhớ.
  • Nhiệm vụ:
  • Thực hiện phép cộng
  • Thay đái logic hoặc số học từ các dữ liệu 6. Khối Integer mul/div trong CPU có chức năng nhiệm vụ gì?
  • Có chức năng nhân và chia các số nguyên 7. EIU thực hiện chức năng gì?
  • Đơn vị này chịu trách nhiệm thực hiện tất cả các lệnh kiểu dữ liệu số nguyên, cụ thể là tính toán số học, tính toán logic, shifts, loads, stores, và branches. Bốn đường dẫn dữ liệu độc lập cho phép thực hiện tối đa bốn lệnh số nguyên trong mỗi chu kỳ. Hỗn hợp lệnh được phép cho bốn lệnh này là: 2 hoạt động số học, 1 hoạt động bộ nhớ (tải / lưu trữ) và 1 hoạt động truyền điều khiển (nhánh).

8. FPU thực hiện chức năng gì? Để để CPU có thể xử lý dữ liệu với các số thực với độ chính xác cao và các phép toán phức tạp như sin cos Tính tích phân các CPU thường được trang bị thêm bộ đßng xử lý toán học(FPU: Floating Point Unit) còn được gọi là bộ xử lý dấu chấm động 9. MIPS có bao nhiêu thanh ghi đa năng/ dấu phảy động? Các thanh ghi đó có chức năng gì? - MIPS có 32 ghi đa năng và 32 thanh ghi dấu phảy động - Chức năng của các thanh ghi: - Thanh ghi đa năng: + Thanh ghi zero (có tên là $zero): chứa giá trị 0; không một giá trị nào được ghi vào thanh ghi zero. + Thanh ghi 1(có tên là $at): được gọi cho hợp ngữ tạm thời, thanh ghi này dùng cho tính toán các lệnh macro, và không nên sử dụng cho các chương trình hợp ngữ + Các thanh ghi $k0 và $k1: được sử dụng bởi các nhân (kermel) của lệnh điều hành và không nên bị thay đái bởi các trương trình người dùng. + Thanh ghi cuối cùng $31($ra): được dùng giống như một thanh ghi liên kết giữa lệnh nhảy và lệnh liên kết, cái mà sẽ được sử dụng để gọi một thủ tục. Thanh ghi $31 được dùng để ghi nhớ địa chỉ trả về của một thủ tục được gọi + Các thanh ghi $v0 và $v1: dùng để lưu trữ giá trị trả về của hàm

  • Các thanh ghi $t0-$t9: là các thanh ghi có nhớ lời gọi. Dùng cho các giá trị tạm thời mà không cần phải nhớ mỗi khi có lời mời gọi.
  • Các thanh ghi $s0-$s7 là các thanh ghi có nhớ lời gọi. Dùng cho các giá trị không thay đái mỗi khi có lời gọi.
  • Thanh ghi $sp là con trỏ stack, trỏ tới vị trí cuối cùng trỏ tên stack.
  • Thanh ghi $rp là con trỏ frame.
  • Thanh ghi $ra ghi lại địa chỉ trả về mỗi khi có lời gọi hàm.
  • Thanh ghi $gp là con trỏ toàn cục trỏ tới vị trí giữa của khối bộ nhớ 64K vùng heap, nơi chứa các biến và hằng số toàn cục.
  • Thanh ghi dấu phẩy động: Dùng để biểu diễn độ chính xác đơn của số thực. Các thanh ghi này có tên là: $f0 – $f31. 10. Khối FP Arith có chức năng gì?
  • dấu phẩy động được dùng để chỉ một hệ thống biểu diễn số mà trong đó sử dụng một chuỗi chữ số (hay bit) để biểu diễn một số hữu tỉ. 11. Thanh ghi trong máy tính có thể tháo rời nâng cấp đ°ợc không? Không. 12. RAM có thể tháo rời để nâng cấp đ°ợc không? Có 13. Trong các thanh ghi đa năng của MIPS, có thanh ghi không thể lập

trình đ°ợc không?

Có thanh ghi không thể lập trình được $s

14. Kiến trúc tập lệnh MIPS có bao nhiêu định dạng lệnh, trình bày từng

định dạng?

  • Các lệnh nạp và ghi (Load and Store Instructions) là các lệnh di chuyển dữ liệu giữ bộ nhớ và các thanh ghi chung. Chúng đều là các lệnh có định dạng kiểu immediate (I-type), do đó phương thức đánh địa chỉ duy nhất được hỗ trợ là thanh ghi cơ sở cộng 16 bit, có bù định dạng immediate có dấu.
  • Cáclệnh số học nguyên: Các lệnh cộng/trừ, lệnh luận lí (and, or, nor, xor), và lệnh dịch (shift left, shift right).
  • Các lệnh truy xuất từ bộ nhớ: Lệnh Load&Store tương ứng thao tác đọc/ghi, hỗ trợ dữ liệu (1 byte), half word (2 byte), word (4 byte)
  • Lệnh nhảy và rẽ nhánh (Jump and Branch): Các lệnh điều khiển dòng thực thi khác cách tuần tự
  • Các lệnh số học thực: Các lệnh thao tác trên các thanh ghi số thực.
  • Các lệnh phụ: Các lệnh hỗ trợ xử lí ngoại lệ, các lệnh quản lí bộ nhớ.
  • Các lệnh nạp, nhớ, di chuyển dữ liệu. 15. Định dạng R-type có mấy tr°ờng bit? Ý nghĩa của từng tr°ờng bit? 000000 10001 10010 01000 00000 100001

21. Cho câu lệnh hợp ngữ addu $s1, $s2, $s3. Xác định mã máy? addu $s1, $s2, $s3.

22. Cho câu lệnh hợp ngữ add $t1, $s2, $s3. Xác định mã máy? add $t1, $s2, $s3.

23. Cho câu lệnh hợp ngữ subu $t2, $s2, $s3. Xác định mã máy? subu $t2, $s2, $s3.

24. Cho câu lệnh hợp ngữ and $t0, $s1, $s2. Xác định mã máy? and $t0, $s1, $s2.

25. Cho câu lệnh hợp ngữ or $t3, $s4, $s5. Xác định mã máy? or $t3, $s4, $s5. Rd = Rs /Rt

26. Giả sử $s = 0xabcd1234 và $s2 = 0xffff0000. Cho lệnh hợp ngữ and $s0, $s1, $s2, hãy xác định kết quả trên thanh ghi $s0?

$s1 = 0xabcd1234 và $s2 = 0xffff

X y x and y 0 0 1 1

01010001

So từng bit:

Op Rs Rt Rd Sa funct 0 Rs=$s2 Rt=$s3 Rd=$s1 0 21 000000 10010 10011 10001 00000 100001

Op Rs Rt Rd Sa funct 0 Rs=$s2 Rt=$s3 Rd=$t1 0 20 000000 10010 10011 1001 00000 100000

Op Rs Rt Rd Sa funct 0 Rs=$s2 Rt=$s3 Rd=$t2 0 23 000000 10010 10011 1010 00000 100011

Op Rs Rt Rd Sa funct 0 Rs=$s1 Rt=$s2 Rd=$t0 0 24 000000 10001 10010 1000 00000 100100

Op Rs Rt Rd Sa funct 0 Rs=$s4 Rt=$s5 Rd=$t3 0 24 000000 10100 10101 1011 00000 100101

- 4 và 0: 0 = So từng bit:

4 = 0100

and: → 0000 = 0

- 3 và 0: 0 =

3 = 0011

and: → 0000 = 0

  • Tương tự: 2 và 0: and → 0

1 và 0: and → 0

- 2 và f: 2 =

f = 1111

and: → 1101 = d

  • c và f: c = 1100

f = 1111

and: → 1100 = c

  • Tương tự: b và f: and → b a và f: and → a ➔ and $s0, $s1, $s

Kết quả: $s0 = 0xabcd0000.

27. Giả sử $s1 = 0xabcd1234 và $s2 = 0xffff0000. Cho lệnh hợp ngữ or $s0, $s1, $s2, hãy xác định kết quả trên thanh ghi $s0?

$s1 = 0xabcd1234 và $s2 = 0xffff

X y x or y 0 0 1 1

01010111

So từng bit:

  • 4 và 0: 0 = 0000 4 = 0100

or: → 0100 = 4

Kết quả: $s0 = 0x54321234. 29. Giả sử $s1 = 0x11223344 và $s2 = 0xffff0000. Cho lệnh hợp ngữ xor $s0,

x y x xor y

`

  • - d và f: d =
    • f = `
  • xor: → 0010 = - - c và f: c = - f =
  • xor: → 0011 = - - b và f : b = - f =
  • xor: → 0100 = - - a và f : a = - f =
  • xor: → 0101 = - ➔ xor $s0, $s1, $s
  • $s1 = 0x11223344 và $s2 = 0xffff $s1, $s2, hãy xác định kết quả trên thanh ghi $s0?
    • x y x xor y
    • `
      • `
        • * 4 và 0: 0 = So từng bit:
          • 4 =
  • xor: → 0100 = - - 3 và 0: 0 = - 3 =
  • xor: → 0011 = - - 2 và f: 2 = - f = - - 1 và f: 1 = xor: → 1101 = d - f =

xor: → 1110 = e

➔ xor $s0, $s1, $s

Kết quả: $s0 = 0xeedd3344. 30. Cho câu lệnh hợp ngữ sll $s1, $s2, 10, với $s2 = 0xaabbccdd, xác định $s1?

sll $s1, $s2, 10 → $s1 = $s2 << 10 bit, $s2 = 0xaabbccdd

aabbccdd = 1010 1010 1011 1011 1100 1100 1101 1101

➔ 1110 1111 0011 0011 0111 0100 0000 0000 = ef Kết quả: $s1 = 0xef337400. 31. Cho câu lệnh hợp ngữ sll $s1, $s2, 4, với $s2 = 0x1122ccdd, xác định $s1?

sll $s1, $s2, 4 → $s1 = $s2 << 4 bit, $s2 = 0x1122ccdd

➔ $s1 = 0x122ccdd0. 32. Cho câu lệnh hợp ngữ srl $s1, $s2, 10, với $s2 = 0xaabbccdd, xác định $s1?

srl $s1, $s2, 10 → $s1 = $s2 >>> 10 bit, $s2 = 0xaabbccdd

aabbccdd = 1010 1010 1011 1011 1100 1100 1101 1101

➔ 0000 0000 0010 1010 1010 1110 1111 0011 = 002aaef Kết quả: $s1 = 0x002aaef3. 33. Cho câu lệnh hợp ngữ srl $s1, $s2, 4, với $s2 = 0xccdd1122, xác định $s1?

srl $s1, $s2, 4 → $s1 = $s2 >>>4 bit, $s2 = 0xccdd

➔ $s1 = 0x0ccdd112. 34. Cho câu lệnh hợp ngữ srlv $s1, $s2, $s3, với $s2 = 0xaabbccdd, $s3=8, xác định $s1?

srlv $s1, $s2, $s3 → $s2 = 0xaabbccdd, $s3=8, $s1 = $s2 >>> $s

➔ $s1 = 0x00aabbcc. 35. Cho câu lệnh hợp ngữ sra $s1, $s2, 10, với $s2 = 0xaabbccdd, xác định $s1?

sra $s1, $s2, 10 → $s2 = 0xaabbccdd, $s1 = $s2 >> 10

aabbccdd = 1010 1010 1011 1011 1100 1100 1101 1101

➔ 1111 1111 1110 1010 1010 1110 1111 0011 = ffeaaef

Kết quả: $s1 = 0xffeaaef3.

36. Cho câu lệnh hợp ngữ sra $s1, $s2, 10, với $s2 = 0x1234aabb, xác định $s1?

sra $s1, $s2, 10 → $s2 = 0x1234aabb, $s1 = $s2 >>

1234aabb = 0001 0010 0011 0100 1010 1010 1011 1011

ori $s1, $s1, 0x65D Xác định $s1?

  • $s1= 0xac5165d 47. Cho đoạn code: lui $s1, 0xAC ori $s1, $s1, 0x65D Xác định $s1?
  • $s1= 0xac5165d 48. Trong kiến trong tập lệnh MIPS, định dạng lệnh J-Type tr°ờng hằng số có độ dài bao nhiêu? Giá trị thanh ghi PC thay đổi thế nào sau khi thực hiện lệnh J?
  • Định dạng J-Type trường hằng số có độ dài 26-bit được gắn trong lệnh: hằng số này cho biết địa chỉ nhảy đến.
  • Thanh ghi PC được thay đái như sau: PC4 Immediate26 00
  • Next PC =
  • 4 bit cao nhất của PC k đái
  • 2 bit cuối luôn bằng 00

49. Giải thích câu lệnh sau beq Rs, Rt, label. Giá trị PC bằng bao nhiêu sau khi thực hiện lệnh trên? 50. Giả sử $s0=1 và $s1=-1=0xffffffff. Lệnh slt $t0, $s0, $s1 cho kết quả $t bằng bao nhiêu? - slt $t0, $s0, $s1 kết quả $t0 = 0

51. Thực hiện chuyển phát biểu IF if (($s1>0) && ($s2<0)) {$s3++;} sang hợp ngữ MIPS? - blez $s1, next

skip if false bgez $s2, next

skip if false addiu $s3,$s3,1

both are true next :

52. Vi xử lý mips truy cập bộ nhớ bằng câu lệnh nào? Ví dụ?

  • Các lệnh truy xuất bộ nhớ Load & Store
  • Qua lệnh Load Word (nạp 1 từ dữ liệu bộ nhớ vào thanh ghi)
  • Lw Rt, # Rt <- Memory[Rs+]
  • Ví dụ: lw $t0,12($s0). Lệnh này nào từ nhớ có địa chỉ ($s0 +12) vào thanh ghi $t
  • Qua lệnh Store Word (sw)
  • Sw Rt, , # Rt -> Memory[Rs+]

Ví dụ: Sw $t0, 12($s0). Lênh này lưu giá trị trong thanh ghi $t0 vào ô nhớ có địa chỉ ($s0 +12)

53. Giả sử có lệnh lw 8($t0). Vùng nhớ có địa chỉ bằng?

  • Lệnh này nào từ nhớ có địa chỉ ($s0 + 8)
  • Nạp dữ liệu từ bộ nhớ (load word - lw) vào thanh ghi 54. Giải thích câu lệnh sw $t0, 12($s0)?
  • Lưu 1 từ dữ liệu thanh ghi (store word - sw) vào bộ nhớ
  • Lệnh này lưu giá trị trong thanh ghi $t0 vào ô nhớ có địa chỉ ($s0 + 12)

55. Giả sử A là mảng các từ nhớ, $s3 là địa chỉ bắt đầu của A. Lệnh lw $t0, 20($s3) cho ra kết quả $t0? - 56. Giả sử A là mảng các từ nhớ, g, h đ°ợc ánh xạ lần l°ợt là $s1, $s2. $s3 là địa chỉ bắt đầu của A. Câu lệnh g = h + A[5] đ°ợc biên dịch thành lệnh hợp ngữ MIPS nh° thế nào? - A là mảng các từ nhớ - g: $s1, h: $s2, $s3: địa chỉ bắt đầu của A g = h + A[5]; ● Được biên dịch thành lệnh máy MIPS như sau: lw $t0, 20($s3) #$t0 gets A[5] add $s1, $s2, $t0 #$s1 = h+A[5] 57. Giải thích câu lệnh lb $s0, 3($s1)? - Lệnh này nạp giá trị byte nhớ có địa chỉ ($s1 + 3) vào byte thấp của thanh ghi $s0. - 24 bit còn lại sẽ có giá trị theo bit dấu của giá trị 1byte (sign- extended) - Nếu không muốn các bit còn lại có giá trị theo bit dấu, sử dụng lệnh: lbu (load byte unsigned) 58. Viết đoạn code hợp ngữ mips thể hiện biểu thức A[300] = h + A[300]? lw $t0,1200($t1) # Dùng thanh ghi tạm $t0 nhận A[300] add $t0,$s2,$t0 # Dùng thanh ghi tạm $t0 nhận h + A[300] sw $t0,1200($t1) # Lưu h + A[300] trở lại vào A[300] 59. Xác định 1 lệnh hợp ngữ mips thể hiện đoạn code C if ($s2 < $s3) $s1 = 1; else $s1 = 0;? ($s2 < $s3) $s1 = 1; else $s1 = 0;? slt $s1, $s2,$s

60. Vi xử lý MIPS hỗ trợ l°u trữ dữ liệu theo dạng big endians hay little endians

VD: 11012 (13) + 10102 (10) = 1000 0010 (130)

3. Cho phép tính 11102 x 10102. Triển khai các b°ớc vi xử lý thực hiện phép nhân? Xác định kết quả? (giả sử 2 số hạng trên có độ rộng (mẫu) 4 bit)

Iteration Multiplicand Carry Product = HI,LO 0 Initialize (HI = 0, LO = Multiplier) 1101 0000 101 0 1 LO[0] = 0 => Do Nothing + Shift Right (Carry, HI, LO) by 1 bit 0000 010 1 2 LO[0] = 1 => ADD + 0 1101 0101 Shift Right (Carry, HI, LO) by 1 bit 0110 101 0 3 LO[0] = 0 => Do Nothing Shift Right (Carry, HI, LO) by 1 bit 0011 010 1 4 LO[0] = 1 => ADD + 1 0000 0101 Shift Right (Carry, HI, LO) by 1 bit 1000 0010

Iteration Multiplicand Carry Product = HI,LO 0 Initialize (HI = 0, LO = Multiplier) 1110 0000 101 0 1 LO[0] = 0 => Do Nothing + Shift Right (Carry, HI, LO) by 1 bit 0000 010 1 2 LO[0] = 1 => ADD + 0 1110 0101 Shift Right (Carry, HI, LO) by 1 bit 0111 001 0 3 LO[0] = 0 => Do Nothing Shift Right (Carry, HI, LO) by 1 bit 0011 100 1 4 LO[0] = 1 => ADD + 1 0001 1001 Shift Right (Carry, HI, LO) by 1 bit 1000 1100

4. Vẽ l°u đồ thuật toán thực hiện phép nhân với số nguyên có dấu? Giải thích.

Đầu tiên gán thanh ghi HI = 0, thanh ghi LO = thừa số thứ 2. Xét điều kiện khi thanh ghi LO[0] = 0 thì dịch phải 1 bit, khi thanh ghi LO[0] = 1 thì 31 lần lặp đầu tiên: HI = HI + thừa số thứ 2. Lần lặp cuối cùng: HI = HI – thừa số thứ 2 xong mỗi chu trình thì dịch phải 1 bit. Kết thúc thuật toán.

5. Vẽ datapath thực hiện phép nhân có dấu? Giải thích các tín hiệu và các thành phần datapath?

6. Cho phép tính 11002 (-4) x 10102 (-6). Triển khai các b°ớc vi xử lý thực hiện phép nhân? Xác định kết quả? (giả sử 2 số hạng trên có độ rộng 4 bit)

Iteration Multiplicand Sign Product = HI,LO 0 Initialize (HI = 0, LO = Multiplier) 1100 0000 101 0 1 LO[0] = 0 => Do Nothing Shift Right (Carry, HI, LO) by 1 bit 1000 010 1