- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 1/ NUMPAGES 5
PAGE 2/ NUMPAGES 5
PAGE 1/ NUMPAGES 5
高等计算机体系结构
作业6: 预取和并行
预取 I 20分
假如你是一位架构师,正在为你的机器设计预取引擎。你先在机器上使用跨度预取器执行了A和B两个应用。
应用A:
uint8_t a[1000];
sum = 0;
for (i = 0; i 1000; i += 4)
{
sum += a[i];
}
应用B:
uint8_t a[1000];
sum = 0;
for (i = 1; i 1000; i *= 4)
{
sum += a[i];
}
i 和 sum在寄存器中,数组a在内存中,一个cache块大小为4个字节。
(a) 使用跨度预取器,应用A和B的预取精度和覆盖率分别是多少?这个跨度预取器检测两次连续访存的跨度,从当前访问的cache块按照这个跨度预取下一个cache块。
答:应用A可以看到执行了1000/4=250次,第一次去内存取数组,而cache块大小为4字节32位,数组访问每次间隔为4,数组存储单位为无符号的8位,刚好每次访存时候都是一个cache块,因此第一次和第二次会访存形成跨度为4的预取模式。访问序列为a[0],a[4], a[8],…,a[996],预取序列从a[8],…,a[996],a[1000](访问a[996]时候会预取a[1000]),因此有249个块被预取,248个块被使用,所以预取精度为248/249=99.6%,cache块缺失250次,预取消除块缺失有248次,因此覆盖率为248/250=99.20%
应用B访问为a[1],a[4], a[16], a[64], a[256],由于访存的跨度不是常数,所以所有预取都没命中,因此覆盖率和命中率都为0。
(b) 请分别为应用A和B建议能获得更好的精度和覆盖率的预取器
i) 应用A
答:预取器总是预取下一个块的方式,这样的话a[4]这个块在a[0]访问的时候就会被预取,从而使得预取精度提高到为249/250,覆盖率为249/250。
ii)应用B
答:目前没有特别好的预取方式能够提升应用B这种翻倍访问的方式,大多数的预取器比如跨度、流、下一块都没办很好的预取应用B访问的块,没办法提供一种合适的访存模式。
预取II 25分
你跟你的同学一起设计一个预取器,这台机器使用单核、 L1 和 L2 cache 以及DRAM 内存。我们需要分析不同的预取器和可能的tradeoff。
在本题中,我们要计算预取器在达到稳定状态后的预取精度、覆盖率和带宽开销,所以,所有计算都不包括最开始的6次请求,这6次请求作为预取器的训练集。
(a)你首先设计一个跨度预取器,观察最后三次cache块请求,如果最后三次请求的跨度是常数,预取器将会使用这一跨度预取下一个cache块。
你执行了一个应用,它具有如下的访存模式 (这些是cache块地址):
A,A+1,A+2,A+7,A+8,A+9,A+14,A+15,A+16,A+21,A+22,A+23,A+28,A+29,A+30...
假设这个模式持续了很长时间。
计算你的跨度预取器对于这个应用的精度和覆盖率
答:预取器的规则是假如最后三次请求的跨度是常数,那么就预取这个跨度的下一块,那么以A+14,A+15,A+16为例子,预取器发现符合规则预取A+17但是没有命中,所以预取精度和覆盖率为0。
(b) 你的同学设计了一个新的预取器,当有一个cache块访问时,预取紧接着的N个cache块
(i) 如果用他的预取器执行你刚刚执行过的应用,预取覆盖率和精度分别是66.67%和50%,N是多少?
答:N=2。
当N=1时候,预取覆盖率为66.67%,精度为66.67%不正确。当N=2时候,访问块14,预取器预取块15,16,访问块15时候预取16,17,访问块16预取17,18。因此预取序列中覆盖访问序列的覆盖率为66.67%,而预取的精度为50%,只有一半的预取命中。
(ii) 假如我们将带宽开销定义为:有预取器时所有cache块的请求数/没有预取器时所有cache块的请求数,那么你同学的预取器在执行刚才那个应用时的带宽开销是多少?
答:首先这里假设预取器的重复请求是不在计数中的,因此按照上一题的分析,宽带开销=5/3。例如访问14,预取15,16,17,18。
(c) 你的同学希望改进他的预取器对于刚才那个应用的覆盖率,他可以容忍带宽开销最多两倍。请问他能做到吗?为什么可以/不可以?
答:不可以。想要获得更高的覆盖率必须要让预取跨过每3组连续的中间跳过的块,比如预取访问A+14,A+15,A+16,假如想要让A+14和A+21被预取,那么至
您可能关注的文档
网络工程师持证人
本人已从事浙江省工程咨询5年,对浙江省内工程信息非常熟悉,可获取新建工程相关联系人、设计院、业主等关键信息。另外从事楼宇自控专业已10年,考取了一建二建等资格证书,有关考试方面的问题(考试心得、方法、学习资料等)都欢饮来咨询交流。
原创力文档


文档评论(0)