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)
10 trang |
Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 1564 | Lượt tải: 1
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:
- bai_tap_mon_kien_truc_may_tinh.pdf