1. Mục tiêu Viết chương trình mô phỏng bộ nhớ đệm và đánh giá hiệu xuất của bộ nhớ đệm với nhiều cấu hình khác nhau. 2. Thời hạn nộp và đánh giá Thời gian dự kiến để hoàn thành bài tập này là 2 tuần. Thời hạn nộp chương trình mô phỏng và kết quả đánh giá hiệu xuất của bộ nhớ đệm: Thứ 7, ngày 6, tháng 12, năm 2014 Kết quả bài làm gửi tới địa chỉ thư điện tử: vtphuongcse.hcmut.edu.vn Bài tập lớn này được quy đổi tối đa 2 điểm cộng vào điểm cuối kỳ (10 điểm bài tập lớn được quy đổi thành 2 điểm cộng)
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
Mô phỏng bộ nhớ đệm
Môn: Kiến Trúc Máy Tính - 504002
Bài tập lớn (Assigment)
TP HCM 11/2014
Trang 21 Mục tiêu 3
2 Thời hạn nộp và đánh giá 3
3 Yêu cầu chi tiết 3
4 Gợi ý làm bài 5
Trang 3Bài tập lớn kiến trúc máy tính Mô phỏng bộ nhớ đệm
1 Mục tiêu
Viết chương trình mô phỏng bộ nhớ đệm và đánh giá hiệu xuất của bộ nhớ đệm với nhiều cấu hình khác nhau
2 Thời hạn nộp và đánh giá
Thời gian dự kiến để hoàn thành bài tập này là 2 tuần Thời hạn nộp chương
trình mô phỏng và kết quả đánh giá hiệu xuất của bộ nhớ đệm: Thứ 7, ngày
6, tháng 12, năm 2014
Kết quả bài làm gửi tới địa chỉ thư điện tử: vtphuong@cse.hcmut.edu.vn
Bài tập lớn này được quy đổi tối đa 2 điểm cộng vào điểm cuối kỳ (10 điểm bài tập lớn được quy đổi thành 2 điểm cộng)
3 Yêu cầu chi tiết
Sinh viên tự viết chương trình mô phỏng bộ nhớ đệm (bằng ngôn ngữ cấp cao như C, C++, Java…) với các thông tin đầu vào (inputs), đầu ra (outputs) như sau:
INPUTS OUTPUTS
I4 Degree of associativity O4 Conflict miss rate I5 Replacement policy
Giải thích các thuật ngữ:
I1.Memory trace: File *.trace, thể hiện địa chỉ ô nhớ (theo từng byte) được truy xuất bởi các lệnh “load” và “store” trong chương trình Có
Bộ nhớ đệm
mô phỏng
Trang 4nhiều file *.trace khác nhau Trong một file *.trace, một dòng (ví dụ:
“l 0x1fffff98 6”) có 3 trường thông tin:
o Lệnh: load l; store s
o Địa chỉ ô nhớ: số hex 32 bit
o Số lệnh khác (không phải lệnh “load” và “store”) giữ hai lần truy xuất bộ nhớ
I2.Cache size: Kích thước vùng chứa dữ liệu của bộ nhớ đệm theo đơn
vị KB (ví dụ: 64 nghĩa là vùng chứa dữ liệu có kích thước 64KB) Cache size là một số dương mũ của 2 (ví dụ: 1, 2, 4, 8, 32 …) Cache size có giá trị từ 1KB đến 8MB
I3.Block size: Kích thước chứa dữ liệu của một line theo đơn vị byte (ví dụ: 8 nghĩa là một line chứa 8 byte dữ liệu) Block size là một số dương mũ của 2 (ví dụ: 1, 2, 4, 8, 32 …) Block size có giá trị từ 2 bytes đến 2048 bytes
I4.Degree of associativity: Số line trong một set (1 nghĩa là direct mapped, 0 nghĩa là full associative, các giá trị khác phải là mũ của 2) Các giá trị hợp lệ: 0(full), 1(direct), 2(2-way), 4(4-way), 8(8-way)
I5.Replacement policy: Cách thay thế dữ liệu trong một line (0 nghĩa
là thay thế ngẫu nhiên, 1 nghĩa là LRU, các giá trị khác không hợp lệ)
O1.Total miss rate: Tổng số lần không tìm thấy dữ liệu trong bộ nhớ
đệm Total miss rate = Compulsory miss rate + Capacity miss rate
+ Conflict miss rate
O2 Compulsory miss rate: Tổng số lần không tìm thấy dữ liệu ở bộ nhớ đệm dạng bắt buột (truy xuất lần đầu)
O3.Capacity miss rate: Tổng số lần không tìm thấy dữ liệu cũ ở bộ nhớ đệm do bộ nhớ đệm đầy (dữ liệu đã được truy xuất trước đó đang được truy xuất lại nhưng không tìm thấy và bộ nhớ đệm đang đầy)
O4.Conflict miss rate: Tổng số lần không tìm thấy dữ liệu cũ ở bộ nhớ đệm không phải do bộ nhớ đệm đầy (dữ liệu đã được truy xuất trước
đó đang được truy xuất lại nhưng không tìm thấy và bộ nhớ đệm chưa đầy)
Sau khi có chương trình mô phỏng bộ nhớ đệm, sinh viên tiến hành đánh giá hiệu xuất của bộ nhớ đệm mô phỏng bằng cách thay đôi file “memory trace”
Trang 5Bài tập lớn kiến trúc máy tính Mô phỏng bộ nhớ đệm
và thay đổi cấu hình của bộ nhớ đệm Thông tin được báo cáo lại dạng file report.csv và dạng đồ thị như ví dụ trong slide bài giảng:
Hình 3.1 Sự thay đổi Miss Rate với những cấu hình khác nhau
4 Gợi ý làm bài
Lưu đồ xác định các loại “cache miss” theo như hình dưới
YES Is cache full?
Is block in cache?
there before?
No, comp_miss++
Yes, Cap_miss++
No, conf_miss++
Read in next address Calculate block number