Cache实验报告
实验求:
1阅读分析附件模拟器代码
求:1)读懂 2)关键注释 3)总结关键参数算法实现方法
2通读懂代码加深解cache实现技术
3结合书题1进行测试
4通测试进行实验设计解参数算法选择特点相互关系(较组合等)需定性量化结合说明数字图表等种描述手段配合说明
二实验代码:
1 LRU页面置换算法
程序3中模式:
Direct_mapped 2 Set_associate 3 Fully_associate
第种直接映射显然LRU算法址cache中方
两种组相联映射全相联映射需LRU算法
中全相联映射等setSet_associateLRU正set中面两种模式LRU问题结种:set中没页面需置换出应该置换出问题
具体程:
1 set中blocklru值初始0
2 次访问set时候否命中set中blocklru值+1
3 需置换出页面时候选择lru值置换出入放入刚刚进
4 否命中刚刚访问者加入blocklru值置0
if(x
xlru[index][z]
yz
}
if(z((assoc*2)2))没命中时
{
newarray[index][y+1]tag lru值换掉
misscount++
cmisstype(blockaddress[j]NOofblockj)
cc1
for(m0m<(assoc*2)mm+2)lru值+1
lru[index][m]++
lru[index][y]0lru值换掉
}
zz+2
2 判断缺页类型算法
程序中体现3中缺页类型:
Compulsory Miss:前没出现址肯定会命中
Conflict Miss:突产生命中
Capacity Miss:容量足导致命中
函数int misstype(int ba int nb int l)中
ba:表示前命中址
nb:表示NOofblockcache中block数目
l:表示前ba访问序列bytearray数组中位置
before数组表示前已访问页面
blarray数组表示相邻两次访问ba间访问址
变量b表示blarray数组
Compulsory Miss:
前访问页面前没访问Compulsory Miss种类型
代码:遍历before数组没ba相没话Compulsory Miss时忘记ba加入before数组供次
Conflict Miss:
统计相邻两次访问ba间址数目时数组blarrayb值nb较b
反果b>nb表示相邻两次访问ba间址数目导致空间够Capacity Miss
三实验程:
1 原始代码测试
第测试:Direct mapped
第二测试:twoway set associative
第三测试:fully associative
见三次测试结果相三组输入数相
面书例子进行测试:
第测试:Direct mapped:
图课结果吻合全部miss中3种址Compulsory miss数目3
第二测试:twoway set associative
图课结果吻合hit中3种址Compulsory miss数目3
第三测试:fully associative
图课结果吻合2hit中3种址Compulsory miss数目3
综述三种模式miss率:左:direct 中:2way 右:full
hit 0
miss 100
miss 80
hit 20
hit 40
miss 60
2 代码测试
课题进行代码测试:测试blocknway中nmiss率影响需反复实验需种策略生成访问序列址便生成序列需满足定空间局部性时间局部性
源代码中加入段测试代码:(网找测试代码源代码中指定开文件注释掉改函数生成:页面访问序列生成函数)
int num e N
int Gen(int que[])
{
double t (rand() 100) * 001
int m (rand() (N 2)) + 1
int p rand() (N 2)
int cnt 0
while(true)
{
e rand() (N 2) + 1
for(int i 0 i < m i++)
{
que[cnt++] rand() e + p
if (que[cnt 1] > N 1) que[cnt 1] N 1
if (cnt num) break
}
if (cnt num) break
double r (rand() 100) * 001
if (r < t)
p rand() N
else p (p + 1) N
}
return cnt
}
兼顾3种模式面
A Direct mapped模式仅BlockSize增加
B 仅nwayn改变1~16
C 仅采全相联
相数测试1000次观察效果
(1)Direct mapped直接映射BlockSize增加
Cache固定128序列长度100
BlockSize 1时候:
BlockSize 2时候:
BlockSize 4时候:
见直接映射blocksize124次增长时缺页率减少
(2)组相联映射中n缺页率影响测试实验:
Cache固定64BlockSize1序列长度100n1变16结果:
n1时:
n2
n4
n8
n16
知着n增缺页率逐步减
3 全相联映射:
Cache固定128BlockSize2序列长度100
见综合方面全相联映射优方法缺页率低
4实验总结
通次实验解cache中三种映规:直接映射组相联映射全相联映射优缺点性提高阅读代码力时理解作业中遇问题总受益匪浅
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档