存储系统设计(HUST)--第4关:全相联cache设计

第4关:全相联cache设计

(下载免费)

链接:https://pan.baidu.com/s/1gFwqQ0dQaN6boQ_lDv6avA 
提取码:iah3

实验目的

学生掌握 cache 实现的三个关键技术:数据查找,地址映射,替换算法,熟悉译码器,多路选择器,寄存器的使用,能根据不同的映射策略在 Logisim 平台中用数字逻辑电路实现 cache 机制。

实验内容

上图给出了一个在 Logisim 中设计完成的 cache 系统自动测试电路,为简化实验设计,这里所有 cache 模块均为只读 cache(类似指令 cache),无写入机制。电路左侧计数器与存储器部分会在时钟驱动下逐一生成地址访问序列给 cache 模块。计数器模块的使能端受命中信号驱动,缺失时使能端无效,计数器不计数,等待系统将待请求数据所在块从二级存储器中调度到 cache 后才能继续计数。cache 与二级存储器之间通过块交换逻辑实现数据块交换,由于二级存储器相比 cache 慢很多,所以一次块交换需要多个时钟周期才能完成,cache 模块判断数据块准备好的逻辑是 blkready 信号有效,该信号有效且时钟到来时,cache 将块数据从 BlkDin 端口一次性载入到对应cache 行缓冲区中,此时 cache 数据命中,直接输出请求数据,解锁计数器使能端,继续访问下一个地址。 自动测试电路会逐一取出 trace 存储器中的主存地址去访问存储系统,并逐一将数据从 cache 模块取出送校验和计算电路计算校验和,计数器值为256时会停止电路运行,此时所有存储访问的 cache 命中率将会在右上角 LED 数码管显示。本次实验的主要任务就是设计该电路的核心模块 cache 子电路。 结合引脚功能说明,实现全相联 cache 模块,该 cache 模块共包括8个 cache 行,每个数据块包含包括4个字节共32位数据。

电路框架

storage.circ

电路引脚

常见问题

标准输出中访问第2块应该命中,结果实际系统没有命中,调度二级存储器进行了块交换,所以访问第2块有3次输出,分别是缺失,blkok,命中三行,这个故障说明调度算法有问题,把不应该淘汰的数据淘汰出去了。

电路测试

完成设计后可以在 cache 自动测试电路中进行测试,正确结果如下:

确认实验完成正确后可利用文本编辑工具打开 storage.circ,将所有文字信息复制粘贴到 Educoder平台的 storage.circ 文件中,再点击评测按钮即可进行本关测试,平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:

(这里 CNT 位第几次访问,下面第0次访问经历了3个状态,地址位0,缺失,等待从二级存储器载入数据,blkok 信号为 1,载入后,Hit 为1,见前3行)

清零中的毛刺问题解决:

清零动作改成同步清零,具体可以增加一个D触发器,将清零信号接输入,输出接异步清零,另外D触发器时钟触发方式请修改为上跳沿。

每个节拍对应各cache slot中的数据块如下,出现问题,可以参考

链接:https://pan.baidu.com/s/1gFwqQ0dQaN6boQ_lDv6avA 
提取码:iah3

  • 24
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
头哥实践教学平台存储系统设计(HUST)第5要求我们设计一个直接相联缓存系统。 直接相联缓存是一种简单的缓存结构,每个主存块只能放置在缓存中的某个固定位置。比如,如果我们的缓存总共有16个位置,那么主存块A只能存放在位置0(或称为槽位0),主存块B只能存放在位置1,以此类推。当需要将主存中的一个块存入缓存时,根据其物理地址,会直接确定其在缓存中的位置。 直接相联缓存的设计需要注意以下几点: 1. 设置合适的缓存容量和块大小。缓存容量应根据需求和可用资源进行合理规划。块大小则需根据主存块的大小进行设置,既要保证缓存能够存放足够多的主存块,又要尽量减少缓存的空间浪费。 2. 注缓存的组织结构。每个位置都需要有一个标签来记录其对应的主存块的地址信息,以便进行比较和查找。此外,还需要有一个有效位来表示该位置是否已经被占用,以及其他控制位来实现一些策略和操作。 3. 设计合理的替换策略。直接相联缓存中,当需要存入的主存块需要的位置已经被占用时,需要根据一定的策略替换掉已存在的主存块。常见的替换策略有最近最少使用(LRU)和随机替换等。 4. 实现高效的访问控制。直接相联缓存中,由于每个位置只能存放一个主存块,所以不会存在冲突问题。然而,需要根据给定的主存块地址进行查找和读写操作,并保证缓存与主存之间的一致性。 通过以上的设计和实现,我们可以完成头哥实践教学平台存储系统设计第5的直接相联缓存系统。该系统可以提高访问速度,并减少对主存的访问次数,从而提升整体性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值