Cache控制器设计实验

Cache控制器设计实验

ID:42624889

大小:1.03 MB

页数:7页

时间:2019-09-19

Cache控制器设计实验_第1页
Cache控制器设计实验_第2页
Cache控制器设计实验_第3页
Cache控制器设计实验_第4页
Cache控制器设计实验_第5页
资源描述:

《Cache控制器设计实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验3Cache控制器设计1.实验目的(1)掌握Cache控制器的原理及其设计方法。(2)熟悉FPGA应用设计及EDA软件的使用。(3)熟悉Vivado软件的使用及FPGA应用设计。2.实验原理Cache是介于CPU和主存之间的小容量存储器,包括管理在内的全部功能由硬件实现,对程序员是透明的,在一定程度上解决了CPU和主存之间的速度差异。与主存容量相比,Cache的容量很小,它保存的内容只是内存内容的一个子集,且Cache与主存的数据交互以块为单位。把主存中的块放到Cache中时必须把主存地址映射到Cache中,即确定位置的对应关系,并采

2、用硬件实现,以便CPU给出的访存地址能够自动变换成Cache地址。由于程序访问的局部性,使得主存的平均读出时间接近Cache的读出时间,大大提高了CPU的访存效率。地址映射方式有全相联方式、直接相联方式、组相联方式,本实验采用的是直接方式,这种变换方式简单而直接,硬件实现很简单,访问速度也比较快,但是块的冲突率比较高。其主要原则是:主存中一块只能映象到Cache的一个特定的块中。假设主存的块号为B,Cache的块号为b,则它们之间的映象关系可以表示为:b=BmodCb其中,Cb是Cache的块容量。设主存的块容量为Mb,区容量为Me,则直

3、接映象方法的关系如图3.19所示。把主存按Cache的大小分成区,一般主存容量为Cache容量的整数倍,主存每一个分区内的块数与Cache的总块数相等。直接映象方式只能把主存各个区中相对块号相同的那些块映象到Cache中同一块号的那个特定块中。例如,主存的块0只能映象到Cache的块0中,主存的块1只能映象到Cache的块1中,同样,主存区1中的块Cb(在区1中的相对块号是0)也只能映象到Cache的块0中。根据上面给出的地址映象规则,整个Cache地址与主存地址的低位部分是完全相同的。图1直接相联映像方式直接映象方式的地址变换过程如图1

4、所示,主存地址中的块号B与Cache地址中的块号b是完全相同的。同样,主存地址中的块内地址W与Cache地址中的块内地址w也是完全相同的,主存地址比Cache地址长出来的部分称为区号E。图2直接相联地址变换在程序执行过程中,当要访问Cache时,为了实现主存块号到Cache块号的变换,需要有一个存放主存区号的小容量存储器,这个存储器的容量与Cache的块数相等,字长为主存地址中区号E的长度,另外再加一个有效位。在主存地址到Cache地址的变换过程中,首先用主存地址中的块号去访问区号存储器(按地址访问)。把读出来的区号与主存地址中的区号E进

5、行比较,根据比较结果和与区号在同一存储字中的有效位情况作出处理。如果区号比较结果相等,有效位为‘1’,则Cache命中,表示要访问的那一块已经装入到Cache中了,这时Cache地址(与主存地址的低位部分完全相同)是正确的。用这个Cache地址去访问Cache,把读出来的数据送往CPU。其他情况均为Cache没有命中,或称为Cache失效,表示要访问的那个块还没有装入到Cache中,这时,要用主存地址去访问主存储器,把读出来的一个字送往CPU,同时,把包括被访问字在内的一块都从主存储器中读出来,送往Cache的相应块。Cache和CPU以

6、及存储器的连接如图3所示,本实验要在FPGA中实现Cache及其地址变换逻辑(也叫Cache控制器),采用直接相联地址变换,只考虑CPU从Cache读数据,不考虑CPU写回数据的情况。Cache控制器顶层模块如图4所示,主存地址为A7…A0,共8位,区号E取3位,这样Cache地址还剩5位,所以Cache容量为32个单元,块号B取3位,那么Cache分为8块,块内地址W取2位,则每块为4个单元。图4中,WCT为写Cache块表信号,CLR为系统总清零信号,A7…A0为CPU访问内存的地址,M为Cache失效信号,CA4…CA0为Cache

7、地址,MD7…MD0为主存送Cache的数据,D7…D0为Cache送CPU数据,T2为系统时钟,RD为CPU访问内存读信号,LA1和LA0为块内地址。图3Cache系统图图4Cache控制器顶层模块图3.实验内容(1)在Vivado软件中,使用D触发器作为存储一个二进制代码的存储单元,设计一个8位的存储单元模块,按照基于硬件描述语言的设计流程输入该电路,进行编译、仿真验证后生成存储单元模块供上层设计调用。(2)根据对实验原理的描述,使用这个8位的存储单元构成一个32*8位的Cache存储体,并在Vivado软件中实现该电路,进行编译、仿

8、真验证后生成Cache存储体模块供上层调用。(3)参照上面两步,在Vivado软件中实现一个4位的存储单元模块;然后使用这个4位存储单元构成一个8*4位的区表存储器,用来存放区号和有效位。由图

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。