网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
全相连映射:主存中的每一个字块可映射到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章 运算方法和运算部件
定点原码一位乘:符号位单独计算,运算数取绝对值参与计算。
定点原码两位乘:提高了乘法速度,但仍基于重复相加和移位的思想,且随着乘数位数的↗,重复次数↗,仍影响乘法速度。计算较复杂,不常考,自行看书!
并行阵列乘法器:可大大提升乘法速度。(拓展)
定点补码一位乘:分校正法和比较法(Booth法)。校正法中被乘数符号任意,乘数分正、负两种情况。若乘数为正,则按原码一位乘的算法计算,符号位不用另外计算,被乘数的符号位参与计算;若乘数为负,则按原码一位乘的算法计算,被乘数和乘数取绝对值参与计算,最后加上 [-x]补 校正。虽然可将乘数和被乘数互换,使乘数保持+,不必校正,但当两数均为-时必须校正。∵Booth的运算规则不受乘数符号的约束 ∴控制线路较简明,在计算机中普遍使用,常考!
~~定点补码两位乘:~~自行看书!
区别:补码乘法中,乘积得符号位是在运算过程中自然形成的。而原码乘法中,符号位与数值部分分开计算。
困扰作者得问题是:被乘数和乘数互换位置的其它情况在此不一 一列举,以上三个例子,两个源于书本,同一组数据,书上的校正法却不能全部适用。望指点!
P8应=1,感谢网友指正
较复杂,不怎么考,在此不赘述!
第四章 主存储器
第七章 指令系统
教材P324
第3篇 中央处理器
教材P384
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
1-1715709955097)]
[外链图片转存中…(img-21ySp52q-1715709955098)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新