计算机组成原理实验2.2_实验报告.doc
文本预览下载声明
学生实验报告
学 院:软 件 学 院
专 业:软 件 工 程
年 级:2010级
学 号:
学 生 姓 名:
同组学生姓名:
实验课程名称:计 算 机 组 成 原 理 实 验
实 验 名 称:Cache 控制器设计实验
指 导 教 师:
实 验 时 间:
实 验 地 点:
2012年 月 日
实验目的与要求
(1) 掌握Cache 控制器的原理及其设计方法。
(2) 熟悉CPLD 应用设计及EDA 软件的使用。
实验设备
PC 机一台,TD-CM3+或TD-CMX 实验系统一套。
实验原理
本实验采用的地址变换是直接映象方式,这种变换方式简单而直接,硬件实
现很简单,访问速度也比较快,但是块的冲突率比较高。其主要原则是:主存中一块只能映象到Cache 的一个特定的块中。
假设主存的块号为B,Cache 的块号为b,则它们之间的映象关系可以表示
为:b = B mod Cb
其中,Cb 是Cache 的块容量。设主存的块容量为Mb,区容量为Me,则直接
映象方法的关系如图2-2-1 所示。把主存按Cache 的大小分成区,一般主存容量为Cache 容量的整数倍,主存每一个分区内的块数与Cache 的总块数相等。直接映象方式只能把主存各个区中相对块号相同的那些块映象到Cache 中同一块号的那个特定块中。例如,主存的块0 只能映象到Cache 的块0 中,主存的块1 只能映象到Cache 的块1 中,同样,主存区1 中的块Cb(在区1 中的相对块号是0)
也只能映象到 Cache 的块0 中。根据上面给出的地址映象规则,整个Cache 地址与主存地址的低位部分是完全相同的。
直接映象方式的地址变换过程如图2-2-2 所示,主存地址中的块号B 与Cache 地址中的块号b 是完全相同的。同样,主存地址中的块内地址W 与Cache 地址中的块内地址w 也是完全相同的,主存地址比Cache 地址长出来的部分称为区号E。
在程序执行过程中,当要访问 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 以及存储器的关系如图2-2-3 所示。
Cache 控制器顶层模块如图2-2-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 数据
显示全部