Cache控制器设计实验.doc
《Cache控制器设计实验.doc》由会员分享,可在线阅读,更多相关《Cache控制器设计实验.doc(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、实验3 Cache 控制器设计1实验目的(1) 掌握Cache 控制器的原理及其设计方法。(2) 熟悉FPGA应用设计及EDA 软件的使用。(3) 熟悉Vivado软件的使用及FPGA应用设计。2实验原理Cache是介于CPU和主存之间的小容量存储器,包括管理在内的全部功能由硬件实现,对程序员是透明的,在一定程度上解决了CPU和主存之间的速度差异。与主存容量相比,Cache的容量很小,它保存的内容只是内存内容的一个子集,且Cache与主存的数据交互以块为单位。把主存中的块放到Cache中时必须把主存地址映射到Cache中,即确定位置的对应关系,并采用硬件实现,以便CPU给出的访存地址能够自动变
2、换成Cache地址。由于程序访问的局部性,使得主存的平均读出时间接近Cache的读出时间,大大提高了CPU的访存效率。地址映射方式有全相联方式、直接相联方式、组相联方式,本实验采用的是直接方式,这种变换方式简单而直接,硬件实现很简单,访问速度也比较快,但是块的冲突率比较高。其主要原则是:主存中一块只能映象到Cache的一个特定的块中。假设主存的块号为B,Cache的块号为b,则它们之间的映象关系可以表示为:b = B mod Cb其中,Cb是Cache的块容量。设主存的块容量为Mb,区容量为Me,则直接映象方法的关系如图3.19所示。把主存按Cache的大小分成区,一般主存容量为Cache容量
3、的整数倍,主存每一个分区内的块数与Cache的总块数相等。直接映象方式只能把主存各个区中相对块号相同的那些块映象到Cache中同一块号的那个特定块中。例如,主存的块0只能映象到Cache 的块0中,主存的块1只能映象到Cache的块1中,同样,主存区1中的块Cb(在区1中的相对块号是0)也只能映象到Cache 的块0中。根据上面给出的地址映象规则,整个Cache 地址与主存地址的低位部分是完全相同的。图1直接相联映像方式直接映象方式的地址变换过程如图1所示,主存地址中的块号B与Cache地址中的块号b 是完全相同的。同样,主存地址中的块内地址W与Cache地址中的块内地址w也是完全相同的,主存
4、地址比Cache地址长出来的部分称为区号E。图2直接相联地址变换在程序执行过程中,当要访问Cache时,为了实现主存块号到Cache块号的变换,需要有一个存放主存区号的小容量存储器,这个存储器的容量与Cache的块数相等,字长为主存地址中区号E 的长度,另外再加一个有效位。在主存地址到Cache地址的变换过程中,首先用主存地址中的块号去访问区号存储器(按地址访问)。把读出来的区号与主存地址中的区号E进行比较,根据比较结果和与区号在同一存储字中的有效位情况作出处理。如果区号比较结果相等,有效位为1,则Cache 命中,表示要访问的那一块已经装入到Cache中了,这时Cache地址(与主存地址的低
5、位部分完全相同)是正确的。用这个Cache地址去访问Cache,把读出来的数据送往CPU。其他情况均为Cache没有命中,或称为Cache失效,表示要访问的那个块还没有装入到Cache中,这时,要用主存地址去访问主存储器,把读出来的一个字送往CPU,同时,把包括被访问字在内的一块都从主存储器中读出来,送往Cache的相应块。Cache和CPU以及存储器的连接如图3所示,本实验要在FPGA中实现Cache及其地址变换逻辑(也叫Cache控制器),采用直接相联地址变换,只考虑CPU从Cache读数据,不考虑CPU写回数据的情况。Cache控制器顶层模块如图4所示,主存地址为A7A0,共8位,区号E
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Cache 控制器 设计 实验
限制150内