期末复习¶
教材:《计算机组成原理 第六版》白中英
第一章导论¶
冯诺依曼设计思想(了解、记忆):p10
存储程序,并按地址顺序执行
第二章机器码¶
1)浮点数IEE754的计算
知识点:
- 32位IEE754的标准格式
- 二进制小数位->十进制
题型p23:
- IEE754->求普通浮点数
- 普通浮点数->标准二进制IEE754格式
2)四码(原、反、补、移)
知识点:
- why要有四码,即为了解决什么问题?(解决计算机计算时候,符号位的问题)
- why要有补码?(解决原码留下的问题,简化减法运算。即用加法代替减法)
- 补码的定义(负数求补码的原始方法:2(n+1次)+x)| x为负数
- 移码的传统定义
- 原->补:除符号位,全部取反,最后加一
题型p21
- 正负补码->求原十进制数
- 十进制真值->二进制真值->求原、反、补、移
- 原、反、补的表示范围(数轴形式)p23【最直观可视化看懂三个码】
3)奇偶校验码
题型p27:
- 根据数据,编写奇偶校验码(校验码=1的个数 mod2,将校验码放到数据最后 )
4)补码的加减、溢出
知识点:
- 二进制浮点数的组成(x = 2的阶码次 * 尾数M)
- x补+y补=(x+y)补
- x补-y补=(x+(-y))补
- 应对溢出采用双符号位的办法
题型p28、29:
- 二进制真值的加减法,利用补码来做
- 正溢出、负溢出
5)浮点数加减法、乘除法
知识点:
- 加减法的四步骤(前提:先变成标准二进制浮点数。四步骤:1.检查0操作数-2.对阶-3.尾数相加-4.规格化并检查舍入)
- 乘除法(没看)
题型p53
- 浮点数的加减法
- 乘除法(很少考,有时间再看)
第三章存储器¶
1)存储器的分类
知识点p64:RAM、ROM
2)SRAM、DRAM概念
知识点P64:
- SRAM(static-RAM)静态RAM、DRAM(dramatic-RAM)动态
- DRAM的刷新方式(策略)p72:集中式、分散式
3)位扩展、字扩展、芯片选择、地址选择
什么是位扩展:存储器的位数太少 什么是字扩展:存储器容量太小
知识点and题型P69:
- 位扩展的要点(分配数据总线)
- 字扩展的要点(利用译码器去配置地址总线)
4)双端口存储器命名由来,冲突判断
知识点p86:
- why要有并行存储器?(CPU和主存储器的速度不匹配,限制了高速计算机的设计。为了解决速度问题,需要改进存储器和CPU之间的连接方式,传统的存储器只有一个读写口,所以 提出了多口存储器结构(e.g双端口存储器)
- What is 双端口存储器?(具有两组相互独立的读写控制电路&两组独立的地址线、控制线、数据线)
- how 解决有冲突的读写控制?
- 总体上:设置BUSY非标志->片上判断逻辑决定哪个端口优先读写->优先端口的BUSY高电平、延迟端口低电平->完成之后延迟端口BUSY复位变高电平
- 具体的判断方式p88:(CE非)判断、地址有效判断
5)交叉存储器的交叉存取度,带宽计算
知识点p89、90:
- Why要有交叉存储器(参考why要有并行存储器?)
- What是顺序存储器、交叉存储器(顺序:模块访问地址是按顺序一个一个分配给模块的;交叉:地址是交叉分配给不同的模块的)p89图片
- 交叉存储器的优势(可以实现多模块并行存取,提高带宽、机器运行速度CPU同时访问N个模块)
- What交叉存取度m(m最小=T/tao)【解释:在完成运输所有数据(时间mtao)之前新的数据要被存储(时间T)进来,这样就可以不间断的运输数据了。即T<=mtao m>=T/tao】
前置知识:
- CPU速度>存储器速度
- 即 总线传送周期tao<存储周期T
存储器->CPU的核心逻辑:存储器模块先存储数据,时间为T->总线再将数据传送到CPU,时间为tao
顺序存储器的核心逻辑:存储器慢慢存储数据,而总线速度比存储器存储数据快得多,直接和存储数据的时间重叠了。所以:读出n个字的时间为t2=nT
交叉存储器的核心逻辑:让总线传送可以源源不断地从模块中拿到数据送到CPU(流水线方式)
举个具体的例子(书本p90图)来看:
- 模块M0先存储数据,时间为T
- M0完成后,总线将数据送到CPU,时间为tao,总时间为T+tao
- 在总线将数据送到CPU之后,也就是tao时间过后。M1完成了一次存储数据,总线又可以继续传送数据到CPU了
- M1怎么回事呢?M1在M0开始存储数据后的一小段时间,开始了存储数据,并在T+tao时间完成了数据存储。(同理M2、3、4)
- 所以:交叉存储读取m个字的时间为t1=T+(m-1)tao
题型p90:
- 顺序交叉存储的带宽计算、交叉存取度的计算
6)cache 命中率、平均访问时间、效率的计算
知识点p92:
- Why要有cache?(解决CPU和主存之间速度不匹配的问题)
- What是cache?(介于CPU和主存的之间的小容量存储器,速度>主存,容量<<主存)
- CPU和cache、主存之间的交互逻辑(CPU想要从内存读取一个数据,先问cache里有没有。如果有,就从cache中送数据到CPU,叫==cache命中==;如果没有,则从主存中读取数据,同时把含有这个字的数据块从主存读取送到cache中,叫==cache缺失==
- cache命中率h、cache/主存的平均访问时间ta、访问效率e 的概念p93
- 最理想的cache是怎样的?(命中率为1,即 尽可能让CPU和cache交互,而不是让CPU和主存交互)
题型p93:
- 计算cache命中率、平均访问时间、效率的计算
公式:
前置知识:tc>=ta>tm 【tc:cache访问时间、tm:主存访问时间、ta总访问时间】
- 命中率h=(cache存取次数)/(总次数)【总次数=cache+主存存取次数】
- cache/主存系统的平均访问时间ta= htc + (1-h)tm
- 效率e = tc / ta
7)cache 地址映射的 3 种方式,直接映射方式分配位置计算,以及直接映射方式的内存地址
(有视频:b站、老师讲解)
知识点:
- why要有这个?
- CPU与cache之间数据交换是以字为单位的,而cache与主存之间的数据交换是以块为单位的。(cache保存内容只是主存的一个子集)
个人理解(why要有cache与主存的地址映射):
- 前提:
- 主存中数据的排列:一个主存有N个块,每块有M个字
- 为了精准找到具体是哪一个字,所以
主存地址= 块号 + 字地址
- CPU根据主存地址精准的从主存中找到具体的某一个地址。具体逻辑:根据块号找到块号为x的块->再根据字地址找到第x块中具体的第y字
- 解释why要有cache与主存的地址映射
- 本质不变:CPU仍然是需要从主存中找到数据
- 只不过为了提高速度,把部分数据从主存移到了cache
- 现在的查找数据逻辑:CPU根据主存地址->去cache找->去主存找
- 那如何将主存数据信息定位到cache中?————地址映射
永远不变的:CPU->主存,通过主存地址 = 块号 + 字地址
为了实现cache到主存的地址映射:块号 = 标记位 + 块号(组号)
CPU到cache查找数据的逻辑:
- 前提:CPU本身是要找主存中的2号块
- 从cache中先去查找->根据组号判断2号块在的组中有没有数据->如果有,根据标记位判断这个块具体是不是2号块
具体举例,推荐去看视频教程
以上部分都是个人理解(对why地址映射,cpu-cache-主存之间逻辑),一时脑热,可能有错。
对于做题来说,上面这些想法可以更简单一些。(以组相联为例)
简化思想步骤:
- 先不看主存,CPU直接想从cache中获取数据,需要
组号
、字地址
。 - 但是CPU根本上是想从主存中获得某一个数据,只不过一部分数据被映射到cache中了。
- 所以需要
标记位
来确定是不是真的具体就是这个数据。 - 解释原因:这是因为组相联的思想是==取余== ,也就是说cache中第0组中,可能包含主存的第0、4、9块,要想确定cache的第0组存在的数据真的是CPU想要从主存中的第4块,而不是第0、9块,这就需要标记位来帮忙。
- 标记位怎么做的?标记位+组号=块号,这时候
内存地址的块号
与 cache的标记+组号
进行对比。判断是不是这一块。 - 注意:cache中没有标记,这个标记是另外的存储器来实现的,这个存储器在cache旁边,叫相联存储器。
题型p99
- 全相联、直接相联、组相联 求内存地址的格式
8)物理地址、逻辑地址的计算,物理空间、逻辑空间的计算(习题)
页式存储器为例
知识点p105
题型p117
9)主存-辅存和 cache-主存的相同和不同点(简答)
知识点p105:
- What是辅存(辅存:比主存速度慢、容量大。e.g.外接硬盘)
-
What是虚存(虚存:虚拟内存,解决的是内存不够大的问题,用一定的软件将部分虚存当作主存,逻辑地址<->物理地址)
-
相同:
- 出发点相同:提升性能
- 原理相同:把常用的数据从大但慢的存储器中掉入小但快的存储器中
- 不同点:
- 侧重点不同:cache是为了解决主存和CPU之间速度差异的问题,虚存解决主存容量小的问题
- 数据通路不同:CPU可以直接和cache访问,而虚存和CPU之间隔了主存
- 透明性不同:cache是靠硬件支持;虚存是软件(OS)+硬件(辅存)实现的,对硬件系统程序员不透明,对应用型的透明
- 未命中时损失不同:cache存取速度>主存>>辅存。所以,主存未命中时候系统的性能损失比cache远远多
10)虚拟存储器的 3 种管理方式
知识点:
- 页式、段式、段页式
11)页式虚拟存储器的工作原理及其实地址计算方法,页表大小的计算。(习题)
与上面的(8)一样
12)虚存的替换算法,列表法计算(简单
知识点:
- FIFO、LRU
题型p111、116
第四章 指令¶
1) 指令的组成(操作码和地址码)
知识点p121:
- 操作码、地址码(N地址指令)
2)二地址指令格式中的 3 种类型(RR,RS,SS),及其判断
知识点:
- R-Rigister
- S-Storage
3)指令格式特点的分析(简答)
知识点:
- 指令字长:单字长、双字长、半字长
题型p126
- x字长x地址指令
- 操作码OP可以制定2的n次条指令
- RR(RS)型指令
4)指令寻址方式
- 顺序寻址(通过PC,一条一条执行指令)
- 跳跃寻址(遇到JMP指令,PC直接跳转到某一条指令)
5)操作数的寻址方式及其有效地址计算公式
知识点:
- What是操作数?(用于参与到计算的数字,123,456,789)
- 操作数的寻址方式(P131,看图就能懂)
- 隐含寻址、立即寻址(指令里,就有操作数了,而不是操作数的地址)
- 直接寻址、间接寻址、寄存器寻址、偏移寻址、堆栈寻址
6)精简指令RISC系统的 3 个最大特点(简答)
知识点p138
- RISC的三个最大特点
- 指令条数少、都是使用频率最高的
- 指令长度固定,指令格式种类少,寻址方式少
- 只有取数/存数指令能访问存储器,其他都是在寄存器之间进行(回忆自己写RISC的时候)
第五章 CPU¶
1)CPU 的四个基本功能
知识点p145
- WhyCPU的基本组成是运算器、控制器?(CPU核心功能是运算(运算器的作用),那在运算当中会涉及到很多情况,那应对各种情况,总需要一个‘人’去控制指挥吧,那就是控制器了)
- 四个基本功能:指令控制、操作控制、时间控制、数据加工
2)CPU 中的主要寄存器的功能辨别
- 数据缓冲寄存器DR(暂时存放ALU的运算结果的,作用:缓冲)
- 指令寄存器IR
- 程序计数器PC
- 数据地址寄存器AR
- 通用寄存器(为ALU提供一个工作区的,可以来暂时存放数据)
- 程序状态字寄存器PSWR(用来表明计算后结果状态的寄存器,e.g.进位、0、负数、溢出)
3)操作控制器的两种类型
知识点:
- Why要有控制器(寄存器之间传送数据,那这么多的寄存器,总需要一个指挥控制的吧)
- 操作控制器(分类:硬布线控制器、微程序控制器)
4)CPU 周期、指令周期、微指令周期定义以及之间关系。
知识点:
- 程序、机器指令、微程序、微指令
- 1个程序=N个机器指令
- 1个机器指令=1个微程序=N个微指令
- 指令周期、CPU周期、微指令周期
- 指令周期(取指令时间+执行指令时间)=N个CPU周期(从内存中取一个指令的时间)
- 1个CPU周期=1个微指令周期(微指令:控制部件【控制器】向执行部件【运算器alu、存储器、外围设备】发出一次命令)
5)方框图语言中各符号的含义(不想看p157)
也就是N个指令的逻辑运算,A->B->C
6)时序信号的体制,3 种情况p160
7)程序、机器指令、微程序、微指令之间的关系
见(4)
8)控制存储器容量的计算(课后习题)
p186
9)相斥、相容性微操作的判别(没找到)
10) 微命令编码的 3 种方式,及其应用(课后习题 8)
知识点p169
- 直接表示、编码表示、混合表示
11)并行性的定义(简答)
知识点p176
- 同时性:2个以上事件同时发生
- 并发性:2个以上事件在统一时间间隔内发生
12)流水线的 3 个主要问题(填空)
知识点p178
- 资源相关
- 数据相关
- 控制相关
第六章 总线系统(简单看看¶
- What是总线(是部件之间数据传送的公共通道,比如数据传送总线(地址线、数据线、控制线))
- What是IO接口(CPU、主存、外围设备之间通过总线进行连接的逻辑部件)
第七章 外围设备¶
1)外围设备的三个基本组成
知识点p215
- 存储介质(磁盘
- 驱动装置
- 控制电路
逻辑记忆:外围设备是用来存储数据的,存储数据的东西(磁盘)->磁变成计算机的电信号:控制电路->这一小部分装满数据后,需要用磁盘的空部分来装数据,转动磁盘:驱动装置
2)磁道、柱面、扇区是什么p222(考前看
3)道密度、位密度、面密度是什么p223(考前看
4)磁盘相关的计算题p224(考前看,这个知识点都不会
5)显示器相关计算题p236(考前看,这个也是)
第八章 输入/输出系统¶
1)I/O(外围设备)和CPU进行信息交换的四种方式
知识点p244
- 无条件传送方式
- 程序查询方式
- 程序中断方式
- 直接内存访问(DMA)
- 通道和输入/输出处理器
记忆:
本质:速度与效果之间的平衡
发展历程(按时间线):
速度:传输数据的速度;效果:最终实现拿到数据的效果; 理论上速度越快,效果越差。
- 无条件传送(速度最好,效果最差)
- 程序查询(速度最差,效果最好)
- 程序中断(兼顾了速度和效果,但是能不能再快一点?)
- 直接内存访问DMA(提高速度,但是硬件上需要高度外围设备的支持)
- 通道和输入/输出处理器(提高了效果,这是因为通道和输入/输出处理器可以理解成简化版的cpu,处理数据用)
物理上:依赖cpu->放弃cpu->简化版cpu
2)DMA的三种传输方式
知识点p261
- 成组连续传输
- 周期挪用
- 透明DMA