华中科技大学计算机组成原理——存储系统实验

该实验涉及存储系统的基本原理,包括位扩展和字扩展,通过Logisim设计了汉字字库、MIPSRAM、寄存器文件和Cache。在实践中,遇到数据转移、元器件理解等问题,通过学习和讨论得以解决。实验强调了理论知识的重要性,并提升了问题解决能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所有资源都已打包
计算机组成原理.zip官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘

一、实验目的

(1)理解存储系统位扩展、字扩展的基本原理,能利用相关原理解决实验中汉字字库的存储扩展问题;

(2)理解主存地址进行编址基本概念和存储位扩展基本思想,并能利用相关原理构建同时支持字节、半字、字访问的存储子系统;

(3)了解MIPS寄存文件基本概念,进一步熟悉多路选择器、译码器、解复用器等Logisim组件的使用,并利用相关组件设计实现MIPS寄存器文件;

(4)掌握cache实现的3个关键技术:数据查找、地址映射、代替算法,熟练掌握译码器、多路选择器、寄存器的使用,能根据不同映射策略用数字逻辑电路实现对应的cache模块。

二、实验内容

(1)字库电路实验

现有ROM组件,4片4K32位ROM,7片16K32位ROM,用4片4K*32位的ROM 替换其中一片16K*32位器件,即进行字扩展,需要构建GB2312汉字编码的16K*16点阵汉字字库。

实验结果如下:

4875592d897f49e79ada1bbf0a3d7318.png

 实验电路如下:  9f221afa5149450890fd65784daff84f.png

 (2)MIPS RAM设计实验

      主存通常按字节进行编制,主存既可以按字节访问,也可以按16位半字访问,还可以按32位的字进行访问。根据访问存储单元的大小,主存地址可以分为字节地址、半字地址和字地址。

     00表示字访问,01表示1字节访问(即单字节访问),10表示2字节访问(即半字访问)。在实验中字32bit,单字节8bit,半字为16bit。地址在字访问时忽略最低两位;半字访问时忽略最低位,倒数第二位为片选;字节访问时,第二位进行片选。为了避免存储单元中的数据被覆盖,需要根据Mode和低二位决定4个存储器哪一个需要去存储。

实验电路图如下:

4ca1aad2b6434fb680797d78a83a8156.png

测试效果图如下:

69756a8e7b7844158daa3d402c4e5225.png

引脚的功能如下:

9c470f4cc6a64c9f9ef5e5ea440fee57.png

(3)MIPS寄存器文件实验

寄存器文件(寄存器堆)是CPU中通用寄存器的集合。以MIPS寄存器文件为例,MIPS指令支持32个通用寄存器,32个通用寄存器均包含在寄存器文件中,其中每个寄存器的内容可以通过对应寄存器编号进行访问,类似于一个具有多地址端口和多个数据端口的高速存储器。利用多路选择器、译码器等组件设计实现一个MIPS寄存器文件,内容包含32个32位寄存器。

实现电路如下:

b19904a218b54d6f8d7e8c092eb911ca.png

电路测试结果如下:

71977d5a3596496aa9da7b8e88803824.png


具体引脚与功能如下: 

288b166055c641dda053e8aa67528c53.png

(4)Cache硬件设计实验

本试验采用直接相联映射。

假设cache块大小为4W,共8行,字节地址为16位,分为tag、index、offset三个部分,因为块大小为4W,故offset为2位;cache共8行,故index为3为;tag则为11位。行索引index字段部分经过行索引译码器生成若干行索引译码信号,由行索引译码信号选择对应的cache行,控制对应行的有效位valid、标记位tag、数据块输出,所有行数据输出均采用三态门控制输出至系统数据总线。行译码信号L0-L7连接至对应的三态门控制端,只有行译码信号有效的行才会进行输出,同一时刻只有一行输出。当选中行有效位为1且标记位与字节地址中的tag相同时,数据命中。命中信号hit控制最终的字选择多路选择器的使能端,决定具体输出选中行中哪一个字,从而实现数据的查找和访问。

数据未命中时,Miss信号为1,当Miss信号和BlkReady信号同时为1时,结合行索引译码信号,对cache中相应行的valid信号、tag、data进行修改,然后取出正确数据。
实验效果如下:

f56a877aa2144b488e3d0f3f7d04743c.png

引脚功能如下:

b5088bdf7edb4d08ae30718b829baff0.png实现电路如下:

e8e905c73663472f87a11b7950df97af.png

三、实验工具

Logisim仿真实验软件

四、遇到的问题及解决方法

1.在连接完字库电路后,字库测试时发现结果有一定偏差,经过与同学讨论得知,是未将参考字库存储器中的数据转移至设计电路寄存器中的原因,在将参考字库存储器中的数据复制至设计电路存储器中的过程也遇到了难题,不知道如何正确对应数据,在进一步查询资料学习后,问题才得以解决。

2.对各实验原理欠缺全面了解。在实验设计之前,我重新学习了相关实验的理论知识,搞清楚各实验背后的原理,然后才尝试进行试验的设计。结合教材上提示的电路原理图以及网上的相关资料,最后在理解实验背后理论知识原理的基础上,完成了电路的设计工作。

3.对于一些元器件的作用不太清楚。由于暂时还没有学习数电,对一些元器件的功能没有清楚的认识,很多时候无法正确地选择元器件。在查阅大量资料后才解决此问题。

五、心得体会

总体来说,本次试验比上次好。但还是不知道从何处入手去解决问题,在翻阅课本和查阅大量资料后,才知道怎么去做。在后面的实验中,要提前将实验原理理解,这样做实验的时候会轻松很多。当然在试验过程中也遇到了很多的问题,或是通过查阅相关资料,或是和同学探讨,或是向老师咨询,最后都顺利解决了问题。

华中科技大学计算机组成原理实验实验报告及alu源文件 1 实验目的  熟悉Logisim软件平台;  掌握运算器基本工作原理;  掌握运算溢出检测的原理和实现方法;  理解有符号数和无符号数运算的区别;  理解基于补码的加/减运算实现原理; 2 实验环境 Logisim是一款数字电路模拟的教育软件,每一位用户都可以通过它来学习如何创建逻辑电路,方便简单。 它是一款基于Java的应用程序,可运行在任何支持JAVA环境的平台,方便学生来学习设计和模仿数字逻辑电路。Logisim中的主要成部分之一就在于设计并以图示来显示CPU。当然Logisim中还有其他多种合分析模型来对你进行帮助,如转换电路,表达式,布尔型和真值表等等。同时还可以重新利用小规模的电路来作为大型电路的一部分。 3 实验内容 3.1 Logism实验  学习使用Logism工具栏上的功能  学会使用子电路,并能将子电路放到main电路中使用  学会使用分线器,理解线宽的概念  学会使用隧道,学习使用探测器,了解logisim数据监测方法。 3.2 运算器封装实验  利用logisim平台中现有运算部件构建一个32位运算器,可支持算数加、减、乘、除,逻辑与、或、非、异或运算、逻辑左移、逻辑右移,算术右移运算,支持常用程序状态标志(有符号溢出OF、无符号溢出CF,结果相等Equal),运算器功能以及输入输出引脚见下表,在主电路中详细测试自己封装的运算器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值