You are on page 1of 3

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

Hiệu năng máy tính và bộ nhớ cache

1. Một chương trình chạy ở một máy tính có tần số hoạt động 200MHz và sau đó được chạy trên
một máy tính khác có tần số hoạt động 400MHz. Chương trình này gồm 2.000.000 lệnh được
thực thi với thông tin như sau:
Loại lệnh Số lệnh được thực thi Số chu kỳ/lệnh
Tính toán số nguyên 1.000.000 1
Di chuyển dữ liệu 600.000 2
Tính toán dấu phẩy động 300.000 2
Điều khiển truyền thông 100.000 2
Tính số CPI và MIPS trong hai trường hợp trên.
2. Hai máy tính khác nhau sử dụng hai tập lệnh khác nhau nhưng đều hoạt động ở tần số
200MHz. Hai máy tính này chạy cùng một chương trình đánh giá với kết quả như sau:
Loại lệnh Số lệnh thực thi Số chu kỳ/lệnh
Máy tính A Số học và logic 8.000.000 1
Load và store 4.000.000 3
Branch (rẽ nhánh) 2.000.000 4
Các lệnh khác 4.000.000 3
Máy tính B Số học và logic 10.000.000 1
Load và store 8.000.000 2
Branch (rẽ nhánh) 2.000.000 4
Các lệnh khác 4.000.000 3
a) Tính CPI, MIPS và thời gian chạy chương trình trên mỗi máy tính.
b) Máy tính nào chạy nhanh hơn và đưa ra nhận xét về kết quả.
3. Một máy tính đơn giản có tập lệnh có dạng như sau:
0 3 4 15
Opcode Address

Máy tính này có các thanh ghi như sau:


▪ Program Counter (bộ đếm chương trình): PC
▪ Thanh ghi lệnh/Instruction Regisster (IR)
▪ Thanh ghi cộng dồn/Accumulator Register (AC)

Opcode
Ý nghĩa
Dạng nhị phân Dạng Hex
0001 1 Viết giá trị của thanh ghi AC vào bộ nhớ

1
0010 2 Cộng giá trị của thanh ghi AC với giá trị của ô nhớ
và lưu vào thanh ghi AC
0101 5 Đọc giá trị từ ô nhớ vào thanh ghi AC
0011 3 Viết giá trị của thanh ghi AC vào thiết bị I/O
0100 4 Đọc giá trị từ thiết bị I/O vào thanh ghi AC

Thiết bị I/O:
▪ Màn hình có địa chỉ 3
▪ Bàn phím có địa chỉ 7
a. Máy tính này có thể truy cập bộ nhớ vật lý có dung lượng tối đa là bao nhiêu? Giải thích.
b. Viết chương trình thực hiện tác vụ sau và biểu diễn chương trình trong bộ nhớ:
1. Đọc giá trị từ bàn phím vào thanh ghi AC
2. Cộng giá trị của thanh AC với giá trị được lưu tại ô nhớ có địa chỉ 820
3. Viết giá trị từ thanh ghi AC vào ô nhớ có địa chỉ 821
4. Viết giá trị từ thanh ghi AC ra màn hình
Dữ liệu trả về từ bàn phím là 1 và giá trị tại ô nhớ 820 là 30
Giải thích cách thức hoạt động của chương trình vừa viết trong máy tính đã cho với các giá trị
tương ứng của các thanh ghi.
4. Cho máy tính với các đặc điểm sau:
▪ Dung lượng bộ nhớ chính (main memory): 1MB
▪ Kích thước từ nhớ (word size): 1 byte
▪ Kích thước của khối (block size): 16 bytes
▪ Kích thước của bộ nhớ đệm (cache size): 64kB
a. Tìm các giá trị của tag, địa chỉ dòng cache (cache line/slot address), và địa chỉ của từ nhớ
(word offset) cho các địa chỉ F0010, 01234, và CABBE của bộ nhớ chính trong trường
hợp sử dụng bộ nhớ đệm dùng phương pháp ánh xạ trực tiếp. Chỉ ra hai địa chỉ với giá trị
tag khác nhau như ánh xạ vào cùng một dòng cache trong trường hợp này.
b. Tìm giá trị của tag và địa chỉ của từ nhớ (word offset) trong trường hợp sử dụng phương
pháp ánh xạ kết hợp cho địa chỉ F0010 và CABBE của bộ nhớ chính.
c. Tìm giá trị của tag, địa chỉ của tập hợp (cache set) và địa chỉ của từ nhớ (word offset)
trong trường hợp sử dụng bộ nhớ cache theo kiểu kết hợp theo tập hợp 2 đường (2-way
set-associative cache) cho địa chỉ F0010 và CABBE của bộ nhớ chính.
Mã nhị phân của các địa chỉ như sau:
Mã Hex Mã nhị phân
F0010 1111 0000 0000 0001 0000
01234 0000 0001 0010 0011 0100
CABBE 1100 1010 1011 1011 1110

2
5. Cho một vi xử lý có chu kỳ đồng hồ là 0.125ns.
a. Tần số hoạt động (clock rate) của máy tính này là bao nhiêu.
b. Tìm thời gian thực thi của một lệnh cơ bản mất 8 chu kỳ đồng hồ (clock cycle)
6. Một máy điện toán có bộ nhớ 2GB được đánh địa chỉ theo từ nhớ 32bits và một bộ nhớ cache
có dung lượng 1MB sử dụng phương thức ánh xạ trực tiếp. Địa chỉ một từ nhớ sẽ được phân
thành các trường như thế nào nếu kích thước mỗi block là 16 từ nhớ ?
a. Tag = 9bits, Index = 16bits và Block = 4bits.
b. Tag = 13bits, Index = 12bits và Block = 4bits.
c. Tag = 11bits, Index = 14bits và Block = 4bits.
d. Tag = 18bits, Index = 10bits và Block = 4bits.

7. Tính số lượng cache hit và cache miss cho chuỗi truy cập có dạng như sau:
ABCDABDCBA
Trong trường hợp sử dụng các thuật toán thay thế (replacement algorithms) như:
a) FIFO (First-In First-Out)
b) LRU (Least Recently Used)
c) LFU (Least Frequently Used)
d) Optimal (tìm trường hợp thay thế có số cache miss là nhỏ nhất)
Giả sử bộ nhớ cache có 3 cache slot, sử dụng phương pháp ánh xạ kết hợp. Tại thời điểm ban
đầu, bộ nhớ cache chưa chứa các khối dữ liệu ở trên.
Bài tập thêm (được cộng điểm nếu hoàn thành):
8. Xét đoạn mã lệnh viết bằng ngôn ngữ C dưới đây, được thi hành trên computer có bộ nhớ
cache dung lượng 2MB sử dụng phương pháp ánh xạ kết hợp và mỗi block có kích thước 16
bytes.

register int i,j ; //i, j được lưu trong các thanh ghi
int A[5][50] ; // int là kiểu tự nhiên độ lớn 32 bits
int B[101][6] ;
for (i=0 ; i<5 ; i++)
for (j=0 ; j<50; j++)
A[i][j] = B[j*2][4]*B[j*2+1][4] ;

Hãy tính số lần thất bại, cache miss, khi đoạn mã này được thi hành, giả sử ban đầu bộ nhớ cache
chưa sử dụng bất kỳ slot nào? Giải thích rõ các bước tính toán trong quá trình đánh giá.

You might also like