云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 专业实践最终报告(郭良鹏 樊照程) - 图文

专业实践最终报告(郭良鹏 樊照程) - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/5/6 1:27:55

图2-3-1 两路组相连Cache的示意图 它表明了地址各部分的分配和作用

B,LRU最近最少替换策略的实现:这需要每一个cache块增加一项来保存它被访问的历史,从而从一组的若干的块中判断出哪个是最早被访问需要被淘汰的。一般的做法是设置一个若干位(n路至少需要n位)的历史纪录,每次命中该组时,这组所有的块的历史纪录左移一位,被命中的块末尾补1,其余的末尾补0。这样的话如果发生缺失,历史纪录所代表的数字最大的那个块就是最早被访问的,即需要被淘汰的。而由于这个设计中只有2路cache,所以历史纪录可以退化成1位,只需记住上次访问的是那个块,在缺失时把另一个淘汰就行了

C,写策略是cache设计的难点和关键,一般有两套策略:

a)一是write through(写直达)+no-write allocate(非写分配)策略,即实质上只提供读cache,而写的时候把信息同时写到cache块和较低层次的主存块中,发生缺失时,仅修改下层存储器中的该块而不将该块取到cache中。这种方式的特点是结构简单,但是直接写的效率较低,一般需要加入一个非阻塞的写缓冲来改善它的性能;

b)第二种策略是write back(拖后写)+ write allocate(写分配)策略,在这种策略下,cache是可读写的,即信息只被写入cache块。只有cache的该块将被替换出去的时候,信息才会被写回到主存中。在发生写缺失时,贮存的块被读到cache中,然后执行写命中操作。它的特点极大改善了写的性能,但是控制比较复杂。

经过一番斟酌之后,我们最终选择了实现比较有挑战的第二套策略。首先在cache块增加了dirty标志位。写出了对于write back + write allocate策略,cache执行流程如下:

图2-3-2 Cache读写策略的流程图

其中最复杂的通路如下:

图2-3-2 Cache策略中最复杂的情况 发生缺失并且同组的两路都是脏块

在这种情况下,首先在读cache时发生缺失,然后需要把内存相应块读到cache中,这时发现要写的cache块都是脏块,这时需要把其中一块(用LRU淘汰算法选择)写入到内存中,然后再把刚才读入的块放入这个位置。最后在执行命中的操作,把刚才缺失的数据读出。

D,块传送的实现,指令读和数据读冲突的解决,读写缓冲的实现。

a),由于本次实验中RAM的读写都是通过唯一的一个地址端口和数据端口来完成的,而设计的cache是以4个字的块为单位来读写的,所以首先必须实现成块传送的逻辑;

b),其次,由于我们的CPU是5级流水的。所以当数据cache和指令cache都发生缺失的时候,必须解决内存的读写冲突问题。 E,Memory Interface(buffer)的实现

我们设计一个带缓冲的RAM读写接口Memory Interface,它向下逐字对RAM进行访问,而向上提供以块为传送单位的一个只读接口,一个可读写接口。用这个接口来为cache屏蔽上面两个问题。使得结构清晰简单,如下图:

图2-3-3 Cache体系的总体结构图 采用内存接口来屏蔽块传送和读写冲突的处理细节

向上的读写的接口除了数据口和地址口外,还提供请求口和应答口,Memory Interface和cache之间的块传送是按照请求应答的方式来进行的。而块对RAM的读取和写入是在Memory Interface中计数器的控制下,逐字对RAM读写的。而当发生冲突的时候,只要将指令和数据的计数器置为不同的值,就可以将它们对RAM的访问错开。例如,假设每个时钟沿计数器减1,计数器为0?3的时候访问RAM, 当发生冲突的时候,把指令的计数器置为3,数据的计数器置为7,

就可以实现前4拍指令buffer访问RAM,后4拍数据buffer访问RAM,当然在实际设计中,为了体现cache的优势,人为的假设RAM的访问时间要2个周期,就需要把计数器设为7(8个周期)来读入4个字。

对进一步扩展的考虑,由于我们有了一个很好的接口Memory Interface来屏蔽访问RAM的细节,后面如果有时间,还可以在这个buffer的基础上实现非阻塞的写缓冲,甚至“牺牲者”cache,来进一步提高cache的效率。

2.3.5, CPU的详细结构图及相关指令数据通路: ◆CPU结构图(不包括cache)

]2[献文照参分部号信和图框 )ehcac括包不(图构结UPC 4-3-2图

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

图2-3-1 两路组相连Cache的示意图 它表明了地址各部分的分配和作用 B,LRU最近最少替换策略的实现:这需要每一个cache块增加一项来保存它被访问的历史,从而从一组的若干的块中判断出哪个是最早被访问需要被淘汰的。一般的做法是设置一个若干位(n路至少需要n位)的历史纪录,每次命中该组时,这组所有的块的历史纪录左移一位,被命中的块末尾补1,其余的末尾补0。这样的话如果发生缺失,历史纪录所代表的数字最大的那个块就是最早被访问的,即需要被淘汰的。而由于这个设计中只有2路cache,所以历史纪录可以退化成1位,只需记住上次访问的是那个块,在缺失时把另一个淘汰就行了 C,写策略是cache设计的难点和关键,一般有两套策略: a)一是write through(写直达)+no-write allocate(非写分

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com