文档详情

计算机组成原理实验2.2_实验报告.doc

发布:2017-06-18约4.11千字共7页下载文档
文本预览下载声明
学生实验报告 学 院:软 件 学 院 专 业:软 件 工 程 年 级: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 数据
显示全部
相似文档