Bài thí nghim Kiến trúc máy tính 3
2010
Khoa Điện t- Vin thông
Page 1
Bài 3. Hoạt động ca b đệm, tối ưu hóa bộ đệm
(Bài thí nghiệm này được biên son da trên bài thí nghim môn hc K thut máy tính ca F.
Lundevall, Khoa công ngh thông tin và truyn thông, Hc vin công ngh Hoàng gia, Thụy Điển [1])
1 Mục đích
Trong bài thí nghim này sinh viên s tìm hiu b đệm trong b x MIPS hc cách tối ưu a
các tham s b đệm, hoặc cách thay đổi cấu trúc chương trình để được hiu sut tính toán cao
hơn.
2 Công c
Bài thí nghim s dng b phn mm MIPSIT [1] đểphng hoạt động ca mt h thng máy tính
da trên b x MIPSIT.
3 Lý thuyết
Sinh viên cn nm v b đệm; các tham s ca b đệm ảnh hưởng đến hiu sut tính toán
ca b x lý. Ngoài ra sinh viên cn kiến thc v cách sp xếp các lnh máy các biến trong b
nh (eng. memory mapping). (bài ging chương 2, chương 3). Sách tham kho [3].
Sinh viên cn hiu các khái nim trong b đm như: t l trúng (eng. hit rate), tn hao trượt (eng.
miss penalties), thi gian truy cp (eng. access time), b đệm ánh x trc tiếp (eng. direct mapped
cache), b đệm kết hp toàn phn (eng. fully associative cache), b đệm kết hợp k đường (eng. k-
way associative cache).
4 Thc hin
4.1 Cài đặt và làm quen vi phn mm
4.1.1 Cài đặt
Ti b công c MIPSIT t địa ch:
https://sites.google.com/site/fethutca/my-forms/MipsICT.zip?attredirects=0&d=1.
Gii nén tệp MipsICT.zip” chy tp nhận được MipsICT.exe để phm mm t gii nén vào th
mc: C:\MipsIT.
Trong b phn mm MIPSIT, ta s s dng 2 phn mm MIPSITStudio (xem bài thí nghim s 2)
Mips Simulator.
4.1.2 Gii thiu MIPSITStudio
Mipsitstudio phn mm phng hoạt động ca h thng máy tính da trên b x MIPS. Gi
chương trình bằng cách chy tệp “C:\MipsIT\bin\Mips.exe (Hình 1).
Phm mm mô phng vic thc hin một chương trình (được biên dch bng MIPSITStudio) trên mt
h thng máy tính gm:
1. B xMIPS (CPU)
2. B đệm lnh (I-Cache)
3. B đệm d liu (D-Cache)
4. B nh chính (RAM)
5. Ca s console (Console)
Bài thí nghim Kiến trúc máy tính 3
2010
Khoa Điện t- Vin thông
Page 2
6. Thiết b ngoi vi (I/O)
Ca s hin th trng thái ca các khi trong h thống nói trên được m bng cách bm vào các khi
tương ứng trên sơ đ khi Hình 1.
Hình 1. Chương trình mô phỏng h thng máy tính dùng CPU MIPS.
Hình 2. Ca s hin th trng thái ca b x lý (Register), b nh chính (Memory), vào ra
(Input&Output), và ca s Console.
Bài thí nghim Kiến trúc máy tính 3
2010
Khoa Điện t- Vin thông
Page 3
Trng thái ca CPU là giá tr ca các thanh ghi hin th trong ca s thanh ghi (Hình 2). Trng thái ca
RAM là ni dung các ô nh (Hình 2). Trng thái ca Console là ca s hin th ni dung được chương
trình ghi ra bng câu lnh in ra màn hình ví d như printf” (Hình 2). Trng thái ca I/O là ca s hin
th ni dung các cổng điu khiển đèn LED ra và các công tc vào (Hình 2). Ca s D-Cache và I-Cache
hin th cu trúc b đệm nh x trc tiếp, kết hp toàn phn, hay kết hợp k đường) và nội dung lưu
trong b đệm (Hình 3).
Hình 3. Ca s hin th trng thái b đệm lnh (I-Cache) và b đệm d liu (D-Cache).
4.1.3 Thiết lp tham s b đệm
Trước khi thc hin mô phng, các tham s ca b đệm cần được thiết lp bng cách la chn menu
Edit->Cache/Mem Config”.
Trong các tab Inst. CacheData Cachecủa ca s thiết lp (Hình 4), các tham s cu trúc ca
b đệm lnh b đệm d liệu như kích thước b đệm (eng. size), kích thước đường/khi (eng.
block size), s ợng đường/khi trong tp (eng. blocks in sets). (Cn chú ý s ợng đường s xác
định loi b đệm: ánh x trc tiếp, kết hp toàn phn hoc kết hợp k đường).
Ngoài ra, vi b đệm d liu, ta th thiết lp chính sách thay thế (eng. Replacement policy),
chính sách ghi (eng. Write policy).
Ta th hiu hóa (loi b) b đệm khi h thng bng cách chn Disable”. Tổn hao trượt b
đệm (thi gian truy cp b nh chính) s không được tính đến khi phng nếu chọn Disable
penalty.
Hình 4. Ca s thiết lp các tham s cu trúc b đệm I-Cache, D-Cache.
Bài thí nghim Kiến trúc máy tính 3
2010
Khoa Điện t- Vin thông
Page 4
Tổn hao trượt ph thuc vào thi gian truy cp b nh chính. Các tham s này được thiết lp bng
tab “Memory” (Hình 5). Thời gian đọc ghi b nh chính được xác định bng s chu kz xung nhp
ca CPU. đây giá trị mặc định 50 chu kz. Các tham s này ph thuc vào công ngh chế to
b nh chính, được xác định da trên các tham s thi gian ca RAM (Tham kho [4]).
Hình 5. Thiết lp thi gian truy cp b nh chính.
4.1.4 Thc hin mô phng
Chương trình sau khi được biên dch thành tp thc thi s đưc np vào b nh h thng mô phng
t phn mm MIPSITStudio bng cách la chọn menu Build->Upload->To Simulator hoc bng
phím tt F5.
Phn mm phng s thc hiện chương trình đã đươc nạp bng cách bm nút trên thanh
công c.
Các kết quphng như số lần trúng, trượt b đệm, t l trúng, s chu kz thc hiện chương trình
đưc hin phần “Cache Statistics” bên dưới phi ca ca s I-Cache”, D-Cache”.
Để thc hin mt ln phng mi, h thng cần được khi to li (eng. reset) bằng menu CPU-
>Reset”. Sau khi khởi to li, vì b đệm và b nh s tr v trng thái mặc định, các tham s b đm,
b nh phải được thiết lp li. Thêm vào đó, chương trình đã được biên dch cần được np li t
MIPSITStudio.
4.2 Tối ưu bộ đệm lnh cho chương trình copy chuỗi
4.2.1 c 1: Chun b chương trình C.
To một đề án C(minimal)/Assembler trong môi trường MIPSITStudio. Đặt tên đề án này Bai3-1.
Chn thư mục để u là “C:\MipsIt\Projects\Bai3-1”. Tạo mt tệp chương trình C vi tên “bai3-1.c.
Son tho đon mã C vào tệp chương trình như Hình 6.
Biên dch đ án bng cách la chọn menu Build -> Build Bai3-1” hoặc phím F7.
Bài thí nghim Kiến trúc máy tính 3
2010
Khoa Điện t- Vin thông
Page 5
Hình 6. Chương trình bai3-1.c
4.2.2 c 2: Mô phng.
Chy phn mm mô phỏng “C:\MipsIT\bin\Mips.exe. Quay v phn mm MIPSITStudio, nạp chương
trình đã biên dịch vào phn mm phng (phím tt F5). Chương trình câu lệnh in ra thi gian
thc hin hàm str_cpy tính bng s chu kz đồng h. Tr li các câu hi:
Câu 1. Thc hin phỏng xác định các kết qu: s ln trúng, s lần trượt b đệm, t l trúng, s
chu kz thc hin chương trình thống kê bi phn mm mô phng (eng. Cycle count) và s chu kz tính
bởi chương trình (eng. Time to copy).
Hit count = ………………………………………………………………………………………………………………………………………….
Miss count = ……………………………………………………………………………………………………………………………………….
Hit rate = …….………………………………………………………………………………………………………………………………………
Cycle count=………………………………………………………………………………………………………………………………………..
Time to copy=………………………………………………………………………………………………………………………………………
Tính toán ch s CPI khi h thng thc hin hàm str_cpy (chú ý thi gian thc tế thc hin hàm copy
khác thi gian thng bi phn mm phng, đây ta dùng thời gian thng bi phn mm
mô phng)
CPI=……………………………………………………………………………………………………………………………………………………..
1. /* strcpy.c */
2. #include <stdio.h>
3. #include <idt_entrypt.h>
4. /* C stringcopy */
5. static void str_cpy( char *to, const char *from)
6. {
7. while( *from)
8. {
9. *to++ = *from++;
10. }
11. *to = '\0';
12. }
13. int main()
14. {
15. static char* hello = "Hello";
16. static char to[4711] = "Function str_cpy";
17. int Time;
18. printf("String before copy: %s\n", hello);
19. flush_cache(); /* khi to li các b đo b đệm */
20. timer_start(); /* bt đu tính thi gian thc hin hàm str_cpy*/
21. str_cpy( to, hello);
22. Time = timer_stop(); /* kết thúc tính thi gian thc hin hàm str_cpy*/
23. printf("Time to copy: %d\n",Time); /* In ra tng thi gian copy */
24. printf("String after copy: %s\n", to);
25. }
89
68
0,57
11862
1,279