Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >计算机组成原理实验解析

计算机组成原理实验解析

作者头像
用户7267083
发布于 2022-12-08 06:23:53
发布于 2022-12-08 06:23:53
8300
举报
文章被收录于专栏:sukuna的博客sukuna的博客

计算机组成原理实验解析

于2021年12月7日2021年12月7日由Sukuna发布

数据表示实验

第一关:汉字转换

  • 区位码+2020H=国标码
  • 那么根据补码原理,国标-2020H = 国标+FFFFH-2020H+1 = 国标+DFDFH+1 = 国标+DFE0H

第二关:偶校验码生成

回忆:偶校验就是为了让数里面1的个数为偶数,做法是所有数位.奇校验就是让数里面1的个数为奇数

第三关:检验错误

偶校验检验错误就是看数里面1的个数是不是偶数,做法就是异或:

第四关:海明编码

海明码的位置是这样的,校验位占据2的幂方次位,其他数据位就是占据其他没有被校验位占据的位置. 对于数据位

怎么放置校验组的方法就是看数据位的下标,把下标

用二进制标出来,第几位是1就放进第几组校验组. 第n组校验组里面全部都是下标第n位为1的数据 比如说

,二进制标出来是1111,就放入第一个第二个第三个第四个校验组里面.然后每个校验码都是校验组里面所有数据位异或即可.

第五关:海明解码

看看总校验码G的大小,G=0代表没有出错,G=n代表第n位出错了,最后有一个总的偶检验位,如果发生了两位错,偶检验是检验不出来的,但是一位错偶检验肯定能看出来.

运算器实验

第一关:8位可控加减法器

时延已经填写在上面了,全加器的时延是,产生进位需要5T,获取答案需要6T,但是我们知道在第二个全加器之后,有关X和Y的运算都已经算好了,就等待上一个全加器的进位信号了,也就是说假如说有关X和Y的运算已经算好的情况下,全加器输出进位只需要2T,输出结果只需要3T.也就是说n个全加器输出进位信号只需要2n+6T的时间.

实验的思路很简单,就是上一位的进位沿着进位链进行传播.下面用一个Sub信号代表控制减法,因为根据减法的性质,我们可以知道x-y就相当于x+-y的补码,负数的补码就是取反+1,这个可以用异或门代表取反,谁异或0都是自己,谁异或1都是自己的相反.

第二关:四位先行进位加法器

我们可以构造

,

,这个时候我们就知道

,

,然后按照级次来依次构造,生成本组的进位生成函数和进位传递函数,这个时候我们对于4的倍数位加法就可以进行分割,每4位进行一次加法,然后每个四位都可以生成进位和得数

第三关:四位快速加法器

输入X和Y,通过每一位的P和G生成进位,这个时候可以利用生成得到的进位函数直接带入全加器进行运算,就是用一个电路并行生成进位,然后再用这个进位直接生成答案

第四关:16位快速加法器

这下可以把16位拆成4个4位运算,把每个4位运算当成整体来进行计算,先输入X和Y(4位),每4位都可以产生进位生成函数和进位传递函数,接着传给CLA74182,它会并行生成

的进位信号.接着4个快速加法器可以并行生成答案.

思路就是把16位的分解成4个4位的,对每个4位的加法都当成一个整体,这4位加法都产生进位生成函数和进位生成函数然后传递给CLA74182,接着生成进位.并行计算

时延:每个快速加法器生成P和G,5T,74182计算进位,2T,就是7T,每个元素算出答案是5T,就是12T

第五关:32位快速加法器

把32位拆成2个16位,第一个16位加法运算的向后进位传递给第二个16位加法运算.

第六关:阵列乘法器

对着书看就行

第七关:乘法流水线

模仿竖式计算的思路,通过与门阵列的元素乘数第n位乘以被乘数的值,这个是5位的,然后就是模拟竖式计算的.

第八关:补码阵列乘法器

单独对符号位进行处理.负负得正,正负得负.

第九关:原码一位乘法器

为什么计数器要到9才停止呢?因为第一次要载入Y,有n位就做n次加法运算,然后维护一个暂存值P,每一次做加法都看y的最低一位,如果最低一位是0的话,暂存值就加0,如果最低一位是1的话,暂存值就加x.注意,每次做完加法Y和暂存值P都要往右移动一位

第十关:补码一位乘法器

在y的右边增加一位,这样一来,Y就有n+1位元素了!还是一样,有一个暂存值P还有一个Y值,加法的时候就是看Y的最后两位(包括增加的那一位),如果最后两位是01的话就是暂存值P加x,如果最后两位是11&00的话就是暂存值P加0,如果最后两位是10的话就是暂存值P减去x.做完加法后的话暂存值和Y都是要右走一位的.

存储器实验

第一关:字库实验

一个大的块分成若干个小的块,地址不变的情况的情况下,地址的高位选择究竟是哪块,低地址就是选择块内的哪一个字节.

第二关:RAM

首先是选择究竟是直接访问一个字,还是一个字节,还是只是半个字.如果是一个字就好办,如果只是半个字的话,另外一半字就是要输出0,如果只是一个字节,那么另外3/4个字就是0.写也是一样,但是写的话可以选择究竟写在哪个半字,究竟写在哪个字节里面.

在字节的情况下,Din0,Din1,Din2,Din3都是一样的,在字的情况下,Din0,Din1&Din2,Din3都是一样的,然后我们可以根据半字选择和字选择选择写在哪里或者读在哪里.假设字有4位,那么倒数第2位就是选择写在哪个半字里面,最后2位就是字内偏移.

第三关:寄存器组,W#确定写在哪里,WE表示这里要开始写数据了,R1#表示选择哪个寄存器来读.很简单(注意,第一个寄存器一定是0)

第四关:四路组相连Cache

这个电路比较复杂,现在我在这里进行讲解.

这一个部分是对地址进行分析的,把地址进行了分块,最低的就是块内偏移,index代表会分到哪一个组里面,这个是确定的,这里面一共分成了4个部分,每个部分有两组.最后一个就是tag.

cache被分成固定大小的组,每组有k行,就是k-路组相连.cache组号=主存块号%cache组数(这里cache有两组)

接着就是存储功能的器件:这里cache有8个行,一组有4行,一共有两个组,所以说cache组号=块号%2,每一行存储了淘汰计数,valid,tag和数据副本.

检查命中:检查命中的原理就是,先看这个主存地址属于哪一组,然后在这个组内部的4个元素一一进行比较,找到和哪个tag是一样的.

写入也是一样的,对于要写入cache的主存地址,首先看看这个主存地址属于哪个组里面,再在这个组里面寻找到一个合适的位置塞进去.

所有的行里面的valid都满了那就是槽满了

淘汰策略:没有被访问过计数器的值+1,被访问过了就清零,然后看计数器内部的元素谁最大?

选择写在那个槽里面

CPU实验

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年12月7日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【自己动手画CPU】运算器设计
(2) 熟悉 Logisim 平台基本功能,能在 logisim 中实现多位可控加减法电路。
SarPro
2024/02/20
1.2K0
【自己动手画CPU】运算器设计
计算机组成原理概述
计算机硬件是构成计算机系统各功能部件的集合。是由电子、机械和光电元件组成的各种计算机部件和设备的总称,是计算机完成各项工作的物质基础。计算机硬件是看得见、摸得着的,实实在在存在的物理实体。 计算机软件是指与计算机系统操作有关的各种程序以及任何与之相关的文档和数据的集合。其中程序是用程序设计语言描述的适合计算机执行的语句指令序列。 没有安装任何软件的计算机通常称为“裸机”,裸机是无法工作的。如果计算机硬件脱离了计算机软件,那么它就成为了一台无用的机器。如果计算机软件脱离了计算机的硬件就失去了它运行的物质基础;所以说二者相互依存,缺一不可,共同构成一个完整的计算机系统。
黄规速
2022/04/14
1.4K0
计算机组成原理概述
【计算机组成原理】加法器原理及其优化
这章在王道书里好像没有专门讲,估计不是考纲 但觉得对后面的理解还是有帮助的 故记录学习
苏泽
2024/04/21
1590
【计算机组成原理】加法器原理及其优化
【自己动手画CPU】控制器设计(二)
(2) 熟悉 Logisim 平台基本功能,能在 logisim 中实现多位可控加减法电路。
SarPro
2024/02/20
1.5K0
【自己动手画CPU】控制器设计(二)
计算机组成原理:从电、电磁、继电器到数字计算机(13k字)
科学Sciences导读:公号对话框发送“计算机组成原理”获取10k字4表65图25页PDF计算机组成原理:从电、电磁、继电器到数字计算机。关键词:电(electricity),电磁(electromagnetic),数字计算机(digital computer),计算机(computer),组成原理(composition principle)。QinlongGEcai微信被封,转向自用、科普文章、学术论文OAJ电子刊免费开放获取。
秦陇纪
2020/11/05
1.8K0
计算机组成原理:从电、电磁、继电器到数字计算机(13k字)
计算机是如何实现加法的
我们除去右下角看其他部分,和或运算结果是完全一致的。再单独看一下右下角,输入都为1时输出为0这不就是与非的操作结果吗。那我们将输入同时给到或门和与非门看下他们的输出:
蛋不炒饭
2018/11/26
2.8K0
计算机是如何实现加法的
【计组不挂科】计算机组成综合习题库(选择题207道&判断题93道&填空题143道)(含答案与解析)
A.输入/输出设备 B.外存储器 C.远程通信设备 D.除了CPU和内存以外的其他设备
YY的秘密代码小屋
2025/01/03
1470
【计组不挂科】计算机组成综合习题库(选择题207道&判断题93道&填空题143道)(含答案与解析)
干货!计算机组成原理简介
未名编程
2024/10/12
2560
计算机组成原理-大题
Cn-1(次高位进位)SF(Sign Flag)符号标志输出结果的符号信息——ZF(Zero Flag)零标志ZF = 1表示 输出结果为0——CF(Carry Flag)进位标志 (无符号数溢出标志)运算结果超出了无符号数的表示范围,产生进位Cout
黎鹤舞
2024/12/03
1610
计算机组成原理-大题
《计算机组成原理》基础概念笔记整理
2、计数器查询;(优先级设置比较灵活,对故障不敏感,连线及控制部分过程比较复杂。)
全栈程序员站长
2022/08/23
1.5K0
JavaWeb 基础知识(一)——计算机是如何组成的
  冯诺依曼提出了计算机结构体系的一个设想,规定了计算机大概要有什么设备,还有计算机要使用二进制等等…,后人为了纪念这个伟大的人物,就将这个计算机体系定义为冯诺依曼体系.
RAIN7
2021/10/12
3760
【408计算机组成原理】溢出判断
我们都知道 机器字长(也就是一次能够处理的数的位数)是固定的 那一定会有溢出的情况 于是就有了这个 溢出判断
苏泽
2024/04/25
2270
【408计算机组成原理】溢出判断
重学计算机组成原理(十二)- 加法器
这些基本的门电路,是我们计算机硬件端的最基本的“积木” 包含十亿级别晶体管的现代CPU,都是由这样一个一个的门电路组合而成的。
JavaEdge
2022/11/30
9800
重学计算机组成原理(十二)-  加法器
计算机组成原理--数据的表示及其运算和运算器(附考研题目)
8421BCD用于表示字符型数据:电话号码、学号等,不用于运算 大小比较: 原码:正数越大值越大,负数越大值越小 移码:看着越大值越大 00000
风骨散人Chiam
2020/10/28
6750
《计算机组成原理》| 第六章 计算机的运算方法-运算器 知识梳理
             (1111…1) -2n+1 ≤x ≤2n-1 (0111…1)
Twcat_tree
2022/11/30
9540
《计算机组成原理》| 第六章 计算机的运算方法-运算器 知识梳理
【自己动手画CPU】计算机数据表示
(1) 掌握汉字机内码、区位码,最终利用相关工具批量获取一段文字的 GB2312 机内码,并利用简单电路实现 GB2312 编码与区位码的转换;
SarPro
2024/02/20
5770
【自己动手画CPU】计算机数据表示
计算机组成原理期末复习90分以上选择填空大题总考点
闲来无事,将复习时整理的部分资料push来,纯手打,部分错误根据自身基础忽略即可,不影响阅读。
全栈程序员站长
2022/07/22
6030
计算机组成原理期末复习90分以上选择填空大题总考点
计算机组成原理:第二章 运算法和运算器
将数据分为纯整数和纯小数两类,用n+1位表示一个定点数,x_n为符号位,放在最左边,0表示正号,1表示负号。故一个数 x 可以表示为 x = x_nx_{n-1}…x_1x_0
Here_SDUT
2022/08/08
3.9K0
计算机组成原理:第二章 运算法和运算器
计算机如何从0到1的?
现代计算机已经发展的非常复杂,要理解计算机的运行原理都已经变得异常艰难,虽说我们无法亲自去制造他,但我们可以了解下计算机系统是怎么从0发展而来的。
用户1260737
2019/07/30
1.2K0
计算机如何从0到1的?
计算机组成原理期末总结「建议收藏」
如果想白嫖(点个关注也行啊),需要本文markdown或PDF文件下方评论留言留下邮箱看到即回
全栈程序员站长
2022/07/28
2.1K0
计算机组成原理期末总结「建议收藏」
推荐阅读
相关推荐
【自己动手画CPU】运算器设计
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档