Bài tập môn Kiến trúc máy tính

Giả thiết rằng máy tính có 128KB cache tổ chức theo kiểu ánh xạ liên kết tập hợp 4-line. Cache có tất cả là 1024 Set từ S0 đến S1023. Địa chỉ bộ nhớ chính là 32-bit và đánh địa chỉ cho từng byte. a) Tính số bit cho các trường địa chỉ khi truy nhập cache ? b) Xác định byte nhớ có địa chỉ 003D02AF(16) được ánh xạ vào Set nào của cache ? 2 July 2020 IT3030 6Giả thiết rằng máy tính có 128KB cache tổ chức theo kiểu ánh xạ liên kết tập hợp 4-line. Cache có tất cả là 1024 Set từ S0 đến S1023. Địa chỉ bộ nhớ chính là 32-bit và đánh địa chỉ cho từng byte. a) Tính số bit cho các trường địa chỉ khi truy nhập cache ? b) Xác định byte nhớ có địa chỉ 003D02AF(16) được ánh xạ vào Set nào của cache ? = * < so line/set> * < line size> --> = 128KB / 1024 / 4 = 32 B Do danh dia chi theo byte nen moi so bit dia chi can co de xac dinh byte nao trong line la 5. (vi 32 = 25)

pdf10 trang | Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 1564 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Bài tập môn Kiến trúc máy tính, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Kiểu lệnh Số lệnh (IC) Số chu kỳ trên 1 lệnh (CPI) Logic 15000 1 Số học số nguyên 50000 1 Chuyển dữ liệu 47000 2 Số học số dấu phẩy động 5000 3 Rẽ nhánh, Nhảy 3000 2 Bài tập: Máy tính có CPU chạy với tần số xung nhịp (clock rate) là 2GHz. Giả sử có một chương trình được thực hiện trên đó có 120000 lệnh với các loại lệnh khác nhau theo số liệu như bảng dưới đây: Hãy xác định: 1.1. CPI trung bình 1.2. MIPS (số triệu lệnh được thực hiện trên 1 giây) 1.3. Thời gian thực hiện chương trình đó. Cho đoạn chương trình vòng lặp viết bằng hợp ngữ của MIPS sau đây: addi $t1, $zero, 8 xor$s2, $s2, $s2 LOOP: addi $s2, $s2, 1 sll $s2, $s2, 1 addi $t1, $t1, -1 slt $t2, $zero, $t1 beq $t2, $zero, DONE j LOOP DONE: 1.Tính số lệnh được thực hiện khi bộ xử lý MIPS chạy chương trình trên. 2.Xác định giá trị thanh ghi $s2 sau khi thực hiện đoạn chương trình trên. 3.Tối ưu đoạn chương trình trên. Cho biết kết quả hiện ở console khi thực hiện chương trình C sau: union U { float x; int i; }; int _tmain(int argc, _TCHAR* argv[]) { U u; u.x = 2015.125f; printf("%x", u.i); return 0; } Cho một máy tính có bus địa chỉ và bus dữ liệu có độ rộng 32-bit, lưu trữ theo kiểu đầu nhỏ. Máy tính sử dụng bộ nhớ RAM gồm 4 băng nhớ thiết kế theo kiểu băng nhớ đan xen. Hãy cho biết 1)Ngăn nhớ ở địa chỉ 0x1F562D6E nằm trên băng nhớ nào? 2)Mảng A gồm 2 số nguyên 32-bit với A[0]=0x000ABCD0, A[1] = 0xFECDBA01. Biết rằng mảng A được lưu trữ tại địa chỉ 0x2000. Hãy chỉ rõ địa chỉ, giá trị, băng nhớ của tất cả các ngăn nhớ chứa mảng A. Lưu ý: viết tất cả các số nguyên ở hệ mười sáu Băng 3 Băng 2 Băng 1 Băng 0 00 0x2003 0A 0x2002 BC 0x2001 D0 0x2000 FE 0x2007 CD 0x2006 BA 0x2005 01 0x2004 0x20B 0x20A 0x2009 0x2008 •Băng nhớ = 0x1F562D6E % 4 = E % 4 = 14 % 4 = 2 •Mảng A được lưu trữ như sau (0x2000 = 8192) Giả thiết rằng máy tính có 128KB cache tổ chức theo kiểu ánh xạ liên kết tập hợp 4-line. Cache có tất cả là 1024 Set từ S0 đến S1023. Địa chỉ bộ nhớ chính là 32-bit và đánh địa chỉ cho từng byte. a) Tính số bit cho các trường địa chỉ khi truy nhập cache ? b) Xác định byte nhớ có địa chỉ 003D02AF(16) được ánh xạ vào Set nào của cache ? 2 July 2020 IT3030 6 Giả thiết rằng máy tính có 128KB cache tổ chức theo kiểu ánh xạ liên kết tập hợp 4-line. Cache có tất cả là 1024 Set từ S0 đến S1023. Địa chỉ bộ nhớ chính là 32-bit và đánh địa chỉ cho từng byte. a) Tính số bit cho các trường địa chỉ khi truy nhập cache ? b) Xác định byte nhớ có địa chỉ 003D02AF(16) được ánh xạ vào Set nào của cache ? -------------------------------------------------------------------------- = * * --> = 128KB / 1024 / 4 = 32 B Do danh dia chi theo byte nen moi so bit dia chi can co de xac dinh byte nao trong line la 5. (vi 32 = 25) 2 July 2020 IT3030 7 S S S S S S S S S S W W W WW17 bit Tag Bài tập: xác định tỷ lệ cache miss Bộ nhớ chính 64 byte, bộ nhớ đệm 16 byte, kích thước line 4 byte, ánh xạ trực tiếp, cache ban đầu không chứa thông tin Thứ tự truy cập bộ nhớ: 0 4 8 12 16 12 16 60 3 4 15 00 Mem(0) 00 Mem(0) 00 Mem(1) 00 Mem(0) 00 Mem(0) 00 Mem(1) 00 Mem(2) 0 miss 1 miss 2 miss 3 miss 4 miss misshit hit 00 Mem(0) 00 Mem(1) 00 Mem(2) 00 Mem(3) 01 Mem(4) 00 Mem(1) 00 Mem(2) 00 Mem(3) 01 Mem(4) 00 Mem(1) 00 Mem(2) 00 Mem(3) 01 Mem(4) 00 Mem(1) 00 Mem(2) 00 Mem(3) 01 4 11 15 00 Mem(1) 00 Mem(2) 00 Mem(3) 8 requests, 6 misses Cho đoạn chương trình MIPS nằm trong bộ nhớ ở dải địa chỉ như sau Address Instruction 80020000 ANDI $09, $0, 1 80020004 ANDI $0A, $0, 2 80020008 BNE $09, $0A, 0x2 8002000C NOP 80020010 NOP 80020014 ANDI $09, $0, 0 80020018 ANDI $0A, $0, 0 8002001C BEQ $09, $0A, 0xfff8 80020020 NOP a. Xét lệnh ở địa chỉ 80020008 • Có rẽ nhánh hay không? • Giá trị 0x2 nghĩa là gì? • Giá trị của PC sau khi thực hiện lệnh này? b. Xét lệnh ở địa chỉ 8002001C • Có rẽ nhánh hay không? • Giá trị 0xfff8 nghĩa là gì? • Giá trị của PC sau khi thực hiện lệnh này? Viết đoạn chương trình assembly cho MIPS thực hiện công việc tương đương hàm C sau với hiệu năng tối đa int MUL(int x) { return x * 17; };

Các file đính kèm theo tài liệu này:

  • pdfbai_tap_mon_kien_truc_may_tinh.pdf