Cache控制器设计实验报告

《计算机组成原理》
实验报告
(2019-2020学年 第一学期)
项目名称          Cache控制器设计                         
实验序号:                03                       
专    业          计算机科学与技术                            了不起的女汉子
班    级          18计算机卓越1班                         
姓    名                  ZRZ                     
学    号            1810716643                             
指导教师              许高攀                   
成    绩                                     
计算机与信息工程学院
浪漫主义手法
2019
11
18
1 实验目的及要求
(1) 掌握 Cache 控制器的原理及其设计方法。
(2) 熟悉 CPLD 应用设计及 EDA 软件的使用。
2 实验设备(环境)及要求
PC机一台,TD-CMA实验系统一套。
3 实验内容与步骤
实验原理:
天河区先烈东小学
本实验采用的地址变换是直接映象方式,这种变换方式简单而直接,硬件实现很简单,访问速度也比较快,但是块的冲突率比较高。其主要原则是:主存中一块只能映象到Cache
泰素帝
的一个特定的块中。假设主存的块号为B,Cache的块号为b,则它们之间的映象关系可以表示为:
b = B mod Cb
其中,Cb是 Cache 的块容量。设主存的块容量为Mb,区容量为Me,则直接映象方法的关系如图1所示。把主存按Cache的大小分成区,一般主存容量为Cache容量的整数倍,主存每一个分区内的块数与Cache的总块数相等。直接映象方式只能把主存各个区中相对块号相同的那些块映象到Cache中同一块号的那个特定块中。例如,主存的块0只能映象到Cache的块0中,主存的块1只能映象到Cache的块1中,同样,主存区1中的块 Cb(在区1中的相对块号是0)
 
1:直接相联映象方式
也只能映象到 Cache 的块 0 中。根据上面给出的地址映象规则,整个 Cache 地址与主存地址的低位部分是完全相同的。
直接映象方式的地址变换过程如图 2-2-2 所示,主存地址中的块号 B 与 Cache 地址中的块号 b 是完全相同的。同样,主存地址中的块内地址 W 与 Cache 地址中的块内地址 w 也是完全相同的,主存地址比 Cache 地址长出来的部分称为区号 E。
聚二甲基硅氧烷2:直接相联地址变换
国家公司在程序执行过程中,当要访问 Cache 时,为了实现主存块号到 Cache 块号的变换,需要有一个存放主存区号的小容量存储器,这个存储器的容量与 Cache 的块数相等,字长为主存地址中区号 E 的长度,另外再加一个有效位。
在主存地址到 Cache 地址的变换过程中,首先用主存地址中的块号去访问区号存储器(按地址访问)。把读出来的区号与主存地址中的区号 E 进行比较,根据比较结果和与区号在同一存储字中的有效位情况作出处理。如果区号比较结果相等,有效位为‘1’,则 Cache 命中,表示要访问的那一块已经装入到 Cache 中了,这时 Cache 地址(与主存地址的低位部分完全相同)是正确的。用这个 Cache 地址去访问 Cache,把读出来的数据送往 CPU。其他情况均为 Cache没有命中,或称为 Cache 失效,表示要访问的那个块还没有装入到 Cache 中,这时,要用主存地址去访问主存储器,先把该地址所在的块读到 Cache 中,然后 CPU 从 Cache 中读取该地址中的数据。
本实验要在 CPLD 中实现 Cache 及其地址变换逻辑(也叫 Cache 控制器),采用直接相联地址变换,只考虑 CPU 从 Cache 读数据,不考虑 CPU 从主存中读数据和写回数据的
情况,Cache和 CPU 以及存储器的关系如图 3 所示。
3:Cache 系统图
Cache 控制器顶层模块如图 4所示,主存地址为 A7…A0,共 8 位,区号 E 取 3 位,这样Cache 地址还剩 5 位,所以 Cache 容量为 32 个单元,块号 B 取 3 位,那么 Cache 分为 8 块,块内地址 W 取 2 位,则每块为 4 个单元。图 2-2-4 中,WCT 为写 Cache 块表信号,CLR 为系统总清零信号,A7…A0 为 CPU 访问内存的地址,M 为 Cache 失效信号,CA4…CA0 为 Cache 地址,MD7…MD0 为主存送 Cache 的数据,D7…D0 为 Cache 送 CPU 数据,T2 为系统时钟,RD 为CPU 访问内存读信号,LA1 和 LA0 为块内地址。
4:Cache 控制器顶层模块图
在 QuartusII 软件中先实现一个 8 位的存储单元(见例程中的 MemCell.bdf),然后用这
个 8位的存储单元来构成一个 32 X 8 位的 Cache(见例程中的 CacheMem.bdf),这样就实现了 Cache的存储体。
再实现一个 4 位的存储单元(见例程中的 TableCell.bdf),然后用这个 4 位的存储单元来构成一个 8 X 4 位的区表存储器,用来存放区号和有效位(见例程中的 CacheTable.bdf),在这个文件中,还实现了一个区号比较器,如果主存地址的区号 E 和区表中相应单元中的区号相等,且有效位为 1,则 Cache 命中,否则 Cache 失效,标志为 M,M 为 0 时表示 Cache 失效。
当 Cache 命中时,就将 Cache 存储体中相应单元的数据送往 CPU,这个过程比较简单。当Cache 失效时,就将主存中相应块中的数据读出写入 Cache 中,这样 Cache 控制器就要产生访问主存储器的地址和主存储器的读信号,由于每块占四个单元,所以需要连续访问四次主存,这就需要一个低地址发生器,即一个 2 位计数器(见例程中的 Counter.vhd),将低 2 位和 CPU 给出的高 6 位地址组合起来,形成访问主存储器的地址。M 就可以做为主存的读信号,这样,在时钟的控制下,就可以将主存中相应的块写入到 Cache 的相应块中,最后再修改区表(见例程中的(CacheCtrl.bdf)。

本文发布于:2024-09-21 01:25:43,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/99336.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:地址   主存   访问   实验   映象
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议