本实验是华科大三的核心课计算机组成原理的配套实验,设计非常良心,而且理论课和实验课都在mooc上有全套视频,地址为计算机组成原理_中国大学MOOC,实验所用的软件资源/测试电路也全部开放,地址为:计算机硬件系统设计_中国大学MOOC
存储系统实验
字库电路
要求我们用4个12位地址线的小rom代替一个地址线为14位的大rom,并对其中的数据进行正确的载入。
首先是地址线和片选信 的连接,这个比较简单,就是多余的高位的地址部分作多路选择器的输入端,地址信 是低12位:
MIPS RAM设计
这个实验看似没什么,其实难度非常大,有几个细节要特别注意。
整体来看,实验要求我们根据MODE信 ,WE信 ,字节地址信 给出存储器访问的相关控制信 。虽然是一个组合电路设计,但是需要对内存地址有着比较深的理解。
- 字地址,也就是32位地址,由4个字节组成,因此按字节编址的话,地址末尾一定是00。而半字地址,末尾一定是0。本实验的输入没有做严格限定,要求我们相应MODE下对地址进行对齐。
- load信 一直有效,而写信 只有当WE=1时才有效。
- 32位数据由四片rom并行工作给出,16位选高两片或低两片,8位则只需1片rom工作。
- 给出的地址是字节地址,因此为了选中相应的rom,需要取出后两位判断;为了取出相应的半字,需要对第二低位进行判断。
- 送入写入端的数据,根据MODE和Din的相关位生成
首先,给出整体的架构图:
- 读一个字节时,由最低两位来选中对应字节。
- 读两个字节时,由第二低位来确定在哪个组,然后输出半字。
下一步我们可以确定输入数据的取值,即根据mode的值来确定 D i n Din Din。
考虑一下什么情况下这个rom需要写入数据。32位写入时肯定所有rom都要写入;16位写入时,只有当前片被选中才需要写入;单字节写入时,只有指定了当前片才需要写入。于是可以构造以下的电路:
- 或门表示任一模式下被选中即有效。
- 当写入字节时,我们需要判断地址的低两位是否指向了本rom
- 当写入16位时,需要判断地址的第二低位是否指向了该rom所在的组
MIPS Regfile
这个实验就相对比较简单,只需按地址选通相应的寄存器输出,以及根据写地址的值选通对应的寄存器的enable端。
然后即可由读地址选择对应的寄存器的值输出:
- 只有当块数据有效,且未命中时才需要给出写信
- 用一个解复用器将需要写的信 传递到各槽
- 选择信 高位为index,低位为具体的槽 【槽 只用两位】
- 根据槽是否满选择写入空槽 和淘汰槽
写入逻辑比较复杂,要区分槽满和不满两种情况。槽不满的话,可以直接挑一个空槽进行数据的写入,否则就得选一个位进行淘汰,再写入。如何挑空余的槽是难点,最简单的应该是用一个优先编码器:
最后一步为写入逻辑

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!