gem5验证cache的不同映像方式对cache命中率的影响

本文通过gem5模拟器研究了不同cache映像方式(全相联、直接相联、组相联)对命中率的影响。实验发现,对于特定测试程序,4路组相联能显著减少cache miss次数,而直接映象可能导致大量冲突。在后续实验中,作者发现了因变量连续定义导致的额外cache miss,通过调整变量布局解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

陆续写些关于新书《自己动手写CPU》的博客,本篇主要是讲解 gem5验证cache的不同映像方式对cache命中率的影响。


cache的基本在http://blog.csdn.net/leishangwen/article/details/30049469中已有介绍,此处不再重复,只是简单介绍一下。

        主要由三大部分组成:

  •   Cache存储体:存放由主存调入的指令与数据块。
  •   地址转换部件:建立目录表以实现主存地址到缓存地址的转换。
  •   替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。


地址映象:是指某一数据在内存中的地址与在缓冲中的地址,两者之间的对应关系。有三种地址映象的方式。

1、全相联方式

  地址映象规则:主存的任意一块可以映象到Cache中的任意一块
  (1) 主存与缓存分成相同大小的数据块。
  (2) 主存的某一数据块可以装入缓存的任意一块空间中。

2、直接相联方式

  地址映象规则: 主存储器中一块只能映象到Cache的一个特定的块中。
  (1) 主存与缓存分成相同大小的数据块。
  (2) 主存容量应是缓存容量的整数倍,将主存空间按缓存的容量分成区,主存中每一区的块数与缓存的总块数相等。
  (3) 主存中某区的一块存入缓存时只能存入缓存中块号相同的位置。 


3、组相联映象方式

  组相联的映象规则:
  (1) 主存和Cache按同样大小划分成块。
  (2) 主存和Cache按同样大小划分成组。
  (3) 主存容量是缓存容量的整数倍,将主存空间按缓冲区的大小分成区,主存中每一区的组数与缓存的组数相同。
  (4) 当主存的数据调入缓存时,主存与缓存的组号应相等,也就是各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放, 即从主存的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值