华中科技大学计算机组成原理实验记录 存储实验【偏难,画完约8h】

本实验是华科大三的核心课计算机组成原理的配套实验,设计非常良心,而且理论课和实验课都在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端。

然后即可由读地址选择对应的寄存器的值输出:

    写入逻辑比较复杂,要区分槽满和不满两种情况。槽不满的话,可以直接挑一个空槽进行数据的写入,否则就得选一个位进行淘汰,再写入。如何挑空余的槽是难点,最简单的应该是用一个优先编码器:

    最后一步为写入逻辑

    -m523
    • 只有当块数据有效,且未命中时才需要给出写信
    • 用一个解复用器将需要写的信 传递到各槽
    • 选择信 高位为index,低位为具体的槽 【槽 只用两位】
    • 根据槽是否满选择写入空槽 和淘汰槽

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

上一篇 2019年11月18日
下一篇 2019年11月18日

相关推荐