2024年C C++最全计算机组成原理期末复习【超实用】,2024年最新最详细的解释小白也能听懂

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

数据相关:是指令在流水线中重叠执行时,当后继指令需要用到前面指令的执行结果时发生的。可能改变对操作数的读写访问顺序。

控制相关:是当流水线遇到分支指令和其它改变PC值的指令时引起的。

2. 为了保证DRAM的存储信息不遭破坏,必须在电荷漏掉前就进行充电,称为刷新。常见的刷新方式有哪三种,试分析它们间的区别。P86

集中刷新:是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。

分散刷新:是指对每行存储单元的刷新分散到每个存储周期内完成。

异步刷新:是前两种方式的结合,既可缩短“死时间”,又充分利用最大刷新间隔2ms的特点。

3. 说明计算机九大寻址方式及有效地址EA计算方法。P311

立即寻址:无需寻址        隐含寻址:无需寻址       直接寻址:EA=A        间接寻址:EA=(A)         相对寻址:EA=(PC)+A

基址寻址:EA=(BR)+A    变址寻址:EA=(IX)+A    寄存器寻址:EA=Rj    寄存器间接寻址:EA=(Rj)

4. 按传输信息的不同,系统总线可分为哪几类?并加以简单描述。P43

数据总线:用来传输各种功能部件间的数据信息,是双向传输总线,其位数与机器字长、存储字长有关,一般为8/16/32位。

地址总线:主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址。

控制总线:用来发送各种控制信号的传输线,通常对任意控制线而言,它的传输是单向的。

5. 试说明具有Cache-主存结构的计算机,CPU在访问存储器时的工作流程。P110

CPU欲读取主存某字时,有两种可能:一种是所需要的字已经在缓存中,即可直接访问Cache;另一种是所需的字不在Cache内,此时需将该字所在的主存整个字块一次调入Cache中(Cache与主存之间是字块传输)。当Cache未满时,主存块可被调入缓存块中,称该主存块与缓存块建立了联系。当Cache已满时,无法接收来自主存块的信息,就由Cache内的替换机构按一定的算法从Cache内移除哪块返回主存,并把新的主存块调入Cache中。

6. 在写操作时,要考虑Cache和主存的数据一致性的问题,试说明写回法和写直达法的区别。P113

写回法(拷回法):写操作时只把数据写入Cache而不写入主存(减少了主存的写操作次数),写操作时间=访Cache时间。但当(读操作且Cache已满时)Cache数据被替换出来时才写回主存,增加了Cache复杂性。

写直达法(存直达法):写操作时数据既写入Cache又写入主存,写操作时间=访存时间,它能随时保证主存与Cache的数据始终一致,但增加了访存次数。(读操作时不涉及对主存的写操作,更新策划较容易实现。)

7. 说明补码定点加减运算,判断溢出的两种方法。P239-240

一位符号位判断溢出:参加操作的两个数(减法时即为被减数和“求补”后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出。

两位符号位判断溢出:若结果双符号位相同,则未溢出;若双符号位不同,则溢出。最高符号位为真结果符号。

8. 说明Cache-主存的地址映像有哪三种方式,说明他们的基本映像原理。P117

直接映射:将主存空间按Cache的尺寸分区,每区内相同的块号映像到Cache中相同的块位置。优:实现简单;缺:不够灵活

全相连映射:主存中的每一个字块可映射到Cache任何一个字块位置上,当访问一个块中的数据时,块地址要与Cache块表中的所有地址标记进行比较以确认是否命中。

组相连映射:是直接映射和全相连映射的一种折中方案,这种方案将存储空间分为若干组,各组间是直接映射,而组内各块间是全相连映射。

9. 试说明指令周期,机器周期,时钟周期之间的关系。P386

一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期(节拍),每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等。

10. 试说明单译码方式(线选法)和双译码方式(重合法)的区别。P75

存储芯片内的地址译码器有两种方式:一种是线选法,适用于地址线较少的芯片。地址信号只需经过一个方向的译码器就可以选中某一存储单元的所有位,结构较简单。

另一种是重合法,适用于地址线较多的芯片。地址线分为两组,分别经行地址译码器和列地址译码器,通过两者“与”选中存储单元才能进行读/写。

11. 分别说明一下名词MAR,MDR,CU,IR,PC的中文名称及该器件的主要功能。P14-16

MAR是存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数。

MDR是存储器数据寄存器,用来存放从存储体某单元取出or存入的代码,其位数与存储字长相等。

如4K × 8位的存储芯片,有log2(4K)=12条地址线,8条数据线

CU是控制单元,用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。

IR是指令寄存器,用来存放当前指令,IR的内容来自MDR。

PC是程序计数器,用来存放当前欲执行指令的地址,它与主存的MAR间有一条直接通道且具有自动加1功能,即可自动形成下一条指令的地址。

12. 计算机的五大基本组成是什么?P9

运算器:用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器里。

存储器:用来存放数据和程序。

控制器:用来控制、指挥程序和数据的输入、运行以及处理运算的结果。

输入设备:用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等。

输出设备:可将机器运算结果转换为人们熟悉的信息形式,如打印机输出等。

13. 设某计算机采用微程序控制器,试说明微程序控制器的基本工作原理(即CPU执行指令时的操作过程)。P405

首先将用户程序的首地址送到PC,然后进入

取指阶段:①将取指周期微程序首地址M→CMAR

②取微指令:将对应控存M地址单元中的第一条微指令读到控存数据寄存器中,记为CM(CMAR)→CMDR

③产生微操作指令:第一条微指令的操作控制字段中为“1”的各位发出控制信号,如PC→MAR、I→R,命令主存    接收程序首地址并进行读操作。

④形成下一条微指令的地址:此微指令的顺序控制字段指出了下一条微指令的地址为M+1,将M+1送至CMAR,即Ad(CMDR)→CMAR

⑤取下一条微指令:将对应控存M+1地址单元中的第二条微指令读到CMDR中,即CM(CMAR)→CMDR

⑥产生微操作指令:由第二条微指令的操作控制字段中对应“1”的各位发出控制信号,如M(MAR)→MDR使对应主存2000H地址单元中的第一条机器指令从主存中读出,送至MDR中。

⑦形成下一条微指令地址:将第二条微指令下地址字段指出的地址M+2送至CMAR,即Ad(CMDR)→CMAR

执行阶段:①取数指令微程序首地址的形成:当取数指令存入IR后,其操作码OP(IR)直接送到微地址形成部件,该部件的输出即为取数指令微程序的首地址P,且将P送至CMAR,记作OP(IR)→微地址形成部件→CMAR

②取微指令:将对应控存P地址单元中的微指令读到CMDR中,记为CM(CMAR)→CMDR

③产生为操作命令:由微指令操作控制字段中对应“1”的各位发出控制信号,如Ad(IR)→MAR、I→R,命令主存读操作数。

④形成下一条微指令地址:将此条微指令下地址字段指出的P+1送至CMAR,即Ad(CMDR)→CMAR

14. 试说明汉明码的校验原理(即如何生成汉明码,以及汉明码的检验原理),默认偶校验。P110

汉明码的生成步骤:①确定校验位的位数 2^k ≥ n + k +1

②确定校验位的位置

③分组

④生成校验位的值

⑤得出结论

检验原理:将已知的汉明码按照前三步正常进行,到第四步时,用H接收P和D一起异或,然后把H倒序排列,若都为0,即无错。否则,该序列对应的二进制位置出错。

15. 试说明循环冗余校验码的校验原理。P144

循环冗余校验码的生成步骤:①确定校验位的位数 r

②写出信息多项式 M(x)

③将信息多项式左移 r 位,得到 M(x)·x^r

④用 M(x)·x^r 除以生成多项式 G(x),得到 r 位校验位

⑤M(x)·x^r+R(x) 得到CRC码

检验原理:根据余数判出错位,取反纠错。

二、计算题
第6章  运算方法和运算部件

定点原码一位乘:符号位单独计算,运算数取绝对值参与计算。

定点原码两位乘:提高了乘法速度,但仍基于重复相加和移位的思想,且随着乘数位数的↗,重复次数↗,仍影响乘法速度。计算较复杂,不常考,自行看书!

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

5-1715542860315)]
[外链图片转存中…(img-0DS5k56R-1715542860315)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 11
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值