计算机组成原理错题本
王道考研-2024-计算机组成原理考研复习指导
第一章 计算机系统概述
p008-1.2.6
- 冯诺伊曼机的基本工作方式是控制流驱动方式
- 多处理机的工作方式是多指令多数据流
- 相联存储器的特点:存储器按内容选择地址。相联存储器既可以按地址寻址,又可以按内容寻址,又称按内容寻址的存储器。
- 冯诺伊曼机的根本特征“存储程序”原理,微程序控制方式





- CPU存取速度比较:寄存器>Cache>内存

- 系列机的基本特性是指令系统向后兼容
- 数据库系统不属于系统软件!数据库系统是在计算机系统种引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员构成。其中数据库管理系统是系统程序。[坑]
- 虽然指令和数据都以二进制形式存放在存储器中,但CPU可以根据指令周期的不同阶段来区分是指令还是数据,通常在取指阶段取出的是指令,在执行阶段取出的数据。CPU只有在确定取出的是指令后才会将其操作码送去译码,因此不能根据译码结果来区分指令和数据。
p015-1.3.3
- 存储体由许多存储单元组成,每个存储单元又包含若干存储元件,每个存储元件能寄存一位二进制代码“0”或“1”。可见,一个存储单元可存储一串二进制代码,称这串二进制代码为一个存储字,称这串二进制代码的位数为存储字长。
- 计算机的机器字长是指数据运算的基本单位长度
- 寄存器由D触发器构成
- 磁盘可以永久性存放数据和程序(仅408)
- 机器字长,指令字长,存储字长三者在数值上可能不等

- 数据字长:数据总线一次可以并行传输的位数,不一定等于MDR
- 机器字长是机器一次可以处理的二进制数据位数,因此决定着可处理二进制代码的位数
- 一台计算机的字长为n,则计算结果最大应为$2^n-1$,因为要将0算在内。
- 汇编程序员可以通过JMP指令来设置 PC(程序计数器) 的值。状态寄存器、通用寄存器只有为汇编程序员可见,才能实现编程,而IR(指令寄存器)、MAR(地址寄存器)、MDR(数据寄存器)是CPU的内部工作寄存器,对程序员均不可见。
- CPI是==执行一条指令所需的时钟周期数==,系统结构、指令集、计算机组织都会影响CPI,但时钟频率不会影响CPI
- 兼容指计算机软件或硬件的通用性,通常在同一系列不同型号的计算机间通用。
- 计算机不同方面的应用

- 命令包括操作系统的命令(管态),应用程序的命令(目态),所以评价运算速度时不能只对一种进行评价。

- 机器字长是指CPU内部用于整数运算的数据通路的宽度。主要是CPU内部进行数据运算,存储和传送的不见,这些部件的宽度基本上要保持一致,因此,==机器字长等于CPU内部用于整数运算的运算器(ALU)位数和通用寄存器宽度==。

- 若给出主存容量为64K*32位:该主存有64K个存储单元,每个存储单元有32位。得出以下结论:(假设指令字长=存储字长=机器字长)
- 地址位数:$64K=2^6*2^{10}=2^{16}$,故地址位数16位。
- 存储字长:32位。
- ACC,X,MDR,MQ:存储数据,且指令字长=存储字长=机器字长,故均为32位。
- IR为指令寄存器且指令字长=存储字长=机器字长,故为32位。
- MAR,PC用于存放地址,故为16位
- 数据通路:

- p018-03:


- ==总结==:修改指令集后,可以先计算修改后程序的指令总数再算出比例,列出表格更直观
第二章 数据的表示和运算
p030-2.1.5
<–未总结完部分–>
第三章 存储系统
p081-3.1.4
- 相联存储器是按照内容指定方式和地址指定方式相结合的方式寻址的。
- Cache命中率计算中,若要求存取时间不超过某时间时,计算结果应向上取。
- 能看到虚拟存储器中主存和辅存之间的数据调动。只对应用级程序员透明。
- EPROM(可编程可擦除只读存储器),RAM类的ROM类的基本都能随机读写,CD-ROM是例外。
- 主存系统效率:$$主存系统效率=\frac{访问Cache的时间}{平均访问时间}$$
p89-3.2.5
SRAM芯片引脚除了地址线,数据线,电源和接地外,还需要1根RD(读控制线)和2根WE(写控制线)。
DRAM的刷新是以行为单位的
若一DRAM芯片采用地址复用技术,地址线减半,数据线不变,同时,需要两套读写控制线。[坑]
动态半导体存储器利用电容储存电荷记录信息,需要刷新,但刷新是在RAM上进行的,只进行了一次访存,因此完整的刷新过程只需要一个存储周期。
注意在体数的非整数倍的连续内存上读取数据时,多次读写的等待时间。可能未必需要一个存储周期就可以进行访问。如下题(ps:遇到该类型题目可参考下题答案画图解决)



程序的局部性原理:是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。相应地,执行访问的存储空间也局限于某个内存区域,具体来说,局部性通常有两种形式:时间局部性和空间局部性
- 时间局部性:被引用过一次的存储器位置会在未来被多次引用(通常在循环中)。
- 空间局部性:如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。
由上条内容知:由于高位交叉存储器在单个存储器中的字时连续存放的,不满足程序的局部性原理;儿地位交叉存储器时交叉存放的,很好的满足了程序的局部性原理。
高位交叉存储器虽然不能满足程序的连续读取,但仍可能一次连续读出彼此地址相差一个存储体容量的几个字,只是这么读的概率较小
DRAM默认采用地址线复用技术,地址线为所得值的一半
SDRAM是现在常用的DRAM,也需要刷新才能保留数据,若题目中问到,则它被包含于DRAM,应当选DRAM。
DRAM缓冲大小为单个芯片一行的总位数。即8192*8192*8的DRAM芯片缓冲大小为8192*8位。
在显示器中,用于存放显示信息的存储器称为刷新存储器,要提高刷新存储器带宽,可采用以下技术:①采用告诉DRAM芯片;②采用多体交叉存储结构;③刷新存储器至显示器的内部总线宽度加倍;④采用双端口存储器将刷新端口和更新端口分开。
不一定在同一模块内访问间隔小于体数就会冲突,如果中间存在访问冲突,造成的延迟可能会使其不再发生冲突。

同时启动按顺序访问时,需要访问地址高位相同(每一轮启动的单元地址高位相同),如图:

访问途中阴影部分,需要三个周期,一次只能读同一行的内容。

若把存储器改成单体4字宽度带来的好处和问题?

- 比较多体存储器和多端口存储器的优缺点?

p101-3.3.5
- 地址总线低位接入地址端,高位用于选片。
- 编址时,应当按照地址空间大小来计算MAR的位数,实际容量可能比地址空间大小更小,但它不能代表MAR的位数,因为考虑到存储器扩展的需要,MAR应保证能访问到整个主存空间。反过来,MAR的位数决定了主存地址空间的大小。
- DRAM采用地址复用技术,只有行列相同时地址线才为原来的$\frac{1}{2}$,且地址分行列两次传送。若DRAM有r行,c列,则地址引脚的个数为:$log_2(max{r,c})$。
- DRAM刷新是按行刷新的,若需要减少刷新开销,应当减少行数。
- 说明地址线作用时,应具体指明那些地址线的工作和原因,如下例是由32个512K*8位的芯片组成的4M*32位的存储器的22根地址线的作用:

- DRAM刷新时按行刷新,刷新间隔内只需要考虑单个芯片的刷新即可,如一个DRAM芯片(64*64)刷新间隔不超过2ms,则刷新信号周期为:$\frac{2ms}{64}=0.03125ms$。无需考虑整个内存中的所有芯片。
- 画出CPU存储器连接结构图,CPU的接口有地址信号,数据信号和控制信号。

- 分配非2的整次方大小的存储时选择多种芯片,应当从大的选起,使所选芯片尽可能少。




p109-3.4.3
- 计算机械硬盘的读取所需时间种,其寻址时间是寻道时间加上旋转延迟(未指明则为硬盘转半圈的时长)。易错!。
- 磁盘条带化:指将一块连续的数据分成很多小部分,并把它们分别存储到不同磁盘上。这样进程在访问数据的时候,可以同时向多个不同部分同时发出I/O请求,由于这些数据存放在不同的磁盘上,因而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的I/O并行能力,从而获得非常好的性能。(RAID0)。
- 磁盘存储器的最小读写单位为一个扇区,即磁盘按块存取。
- 磁盘扇区种包含数据、地址和校验等信息。

- 在磁盘中,若长度超过一个磁道容量的文件,将它记录在同一个柱面上是比较合理的,因为不需要重新寻找磁道,这样数据读写速度快。
p119-3.5.6
- 各层次的存储系统不是孤立工作的,三级结构的存储系统是围绕主存储器来组织、管理和调度的从存储器系统,它们既是一个整体,又要遵循系统的运行原理,其中包括包含性原则。由于Cache种存放的是主存种某一部分信息的副本,所以不能认为总容量为两个层次容量的简单相加!!![易错+重点]
- 一个块通常由若干字组成,CPU与Cache (或主存)间信息交互的单位是字,而Cache 与主存间信息交互的单位是块。
- Cache为空时同样不可能命中,应计入失效率种
- 各种映射中,地址映射表的单个大小除了一致维护和替换算法位外,还需考虑一位的有效位。
- **直接映射**中主存地址结构:(注意这是主存地址!不是Cache前面的标记)

主存字块标记(标记):$主存地址位数-Cache内地址位数$,表示主存大小是Cache大小的多少倍,倍数的二进制表示的位数。用于存储该可表示该块Cache是主存上哪一大块的。可以看作将主存分为和Cache相等的n大块,这是第几大块上的数据。
Cache字块地址(Cache行号):$Cache地址位数-每块块内地址位数$。非标记部分,仅用于查找。他能表明当前主存块应当存在Cache的哪一个块上。
字块内地址(块内地址):对应的大小是主存的字长,所以一般用块的总大小(bit)除以主存的字长得到的值位数。
- **全相联映射**中主存地址结构:(注意这是主存地址!不是Cache前面的标记)

标记:用于标记该块在主存的具体位置,因为全相联并不具有位置规律,所以除了块内地址外全部都是标识。其中末尾n位可作为块号,n是Cache块的个数所占位数。块号和后面的块内地址连起来(相连接,不是相加)是对应Cache的字地址(按字编址的地址)。
块内地址:块内地址记录要查的内存在Cache块内的位置。$块内地址总数=块内数据宽度(bit)/主存字长(bit)$,由此可得出对应宽度。需要注意,主存字长和Cache字长未必相等,因此这里比较的是数据宽度。
- **组相联映射**中主存地址结构:(注意这是主存地址!不是Cache前面的标记)(n路组相联是指一组由n个块,不是有n个组)

标记:实际作用同直接映射,位数可以通过公式算出,也可用总位数减去Cache组号位数和块内地址位数算出。
Cache组号:$Cache组号=主存块号 mod Cache组数$,该部分位数位组数的二进制位数。
块内地址:块内地址记录要查的内存在Cache块内的位置。$块内地址总数=块内数据宽度(bit)/主存字长(bit)$,由此可得出对应宽度。需要注意,主存字长和Cache字长未必相等,因此这里比较的是数据宽度。
标记和Cache组成主存块号:一同组成了主存块号,该地址指定Cache上数据是主存中哪一大块的相同位置的数据。
- CPU访问存储体系(Cache+内存+硬盘)时,发送的地址一定是主存物理地址。不会发送Cache地址,因为主存地址可以直接用于匹配Cache块。
- 逻辑地址、逻辑空间,即虚拟地址,虚拟空间。
- 对于虚拟存储器,一般主存的页(块)和虚拟存储的页一样大。
- 无论是物理地址还是虚拟地址,都有$物理/虚拟地址=物理/虚拟页号+页内地址$。
- 【题目:p120.14】难度:⭐⭐⭐


总结:一个数据指总线宽度的字长,每次读取对应字长的数据都需要发送地址和读命令,存储器也是每次都需要准备数据。
补充:由下面15题知道:部分存储器支持突发传送,可以连续的传输n个数据,因此n个数据传输需要n个总线传输市场,但仅需要1个发送地址和读命令的时长和1个准备数据的时长即可
- 第多少号储存单元就是第多少个地址,看清编址大小。由此可以推出对应的内存地址。
- 把指令Cache与数据Cache分离后,取指和取数分别到不同的Cache中寻找,则流水线中取指令部分和取数部分就可以很好的避免冲突,即减少了流水线的冲突。
a = a + 1;中,对a访问了2次,而不是一次,第一次访问若未命中则调入Cache中,第二次访问就会命中。[坑]- 时间局部性:一旦一条指令执行,它就可能在不久的将来再被执行。空间局部性:一旦一个存储单元被访问,它附近的存储单月也很快被访问。
- 组相联映射CPU访存,先根据地址中间的组号找到对应的组,然后将对应Cache组中的每个行的标记与主存地址的高位(标记位)进行比较,若有一个相等且有效位为1则命中,否则不命中。
- 由上得知:组相联映射Cache中比较器有以下特点:
- Cache块内有m个主存字长的数据段,则需要m个比较器(一块能存几个内存字长的数据)。
- 标志位的宽度为n,则需要n位比较器。
<–8,9两题存在超纲内容,一轮复习结束后写–>
<–虚拟内存需学完操作系统后可做–>
第四章 指令系统
p149-4.1.4
PC存放当前欲执行指令的地址,而指令的地址码字段保存操作数的地址,易混淆,CPU在执行指令的过程中指令的地址由PC给出
Tips:堆栈指令的访存次数,取决于采用的是软堆栈还是硬堆栈。若是软堆栈(对栈区由内存实现),则对于双目运算需要访问4次内存:取指、取原数1、取原数2、存结果。若是硬堆栈(堆栈区由寄存器实现),则只需在取指令时访问一次内存。
单字长的指令可以加快读取指令的速度。
但地址指令中只有一个地址码,在完成两个操作数的算数运算时,一个操作数由地址码指出,另一个操作数通常存放在累加寄存器(ACC)中,属于隐含寻址。
来看看GPT对寻址的介绍
- 直接寻址(Direct Addressing):直接寻址是一种常见的寻址模式,其中指令中包含了要访问的操作数的内存地址。指令直接指定了要读取或写入数据的存储器位置。
- 立即寻址(Immediate Addressing):立即寻址是一种寻址模式,其中指令本身包含了要使用的立即值(常量)。这个立即值通常被用作算术运算、逻辑运算或条件判断的操作数,而不需要从内存中加载。
- 隐含寻址(Implied Addressing):隐含寻址是一种简化的寻址模式,其中指令没有显式指定操作数的位置或地址。相反,该指令已经约定好了要操作的特定寄存器或内存位置。这种寻址模式通常用于某些特定的操作或指令,例如清除寄存器或跳转指令。
- 间接寻址(Indirect Addressing):间接寻址是一种寻址模式,其中指令中给出了一个内存地址,该地址指向另一个内存位置,而实际的数据则存储在这个间接指向的位置中。通过间接寻址,可以通过在内存中使用指针或索引来访问数据。
- 基址寻址(Base Addressing):基址寻址是一种寻址模式,其中指令中给出了一个基址寄存器和一个偏移量。基址寄存器包含着一个内存地址,而偏移量表示相对于该基址的位移量。通过将基址和偏移量相加,可以计算出实际的内存地址,并从该地址读取或写入数据。
每种寻址模式都有其适用的场景和优势,编程语言和计算机架构通常支持多种寻址模式,以提供更灵活和高效的编程方式。
在指令格式中,采用扩展操作码设计方案的目的时:保持指令长度不变而增加指令的数量。
计算指令最短长度时,记得按字节编址。如计算出最短23位,则实际指令字长需要24位。需要为字的整数倍。
若题目未说明采用扩展操作码指令格式,则不使用。如下题所示
【题目:p151.1】难度:⭐⭐


总结:对于这种题,尝试变长指令,所有指令的占位数都由操作码位数和地址位数组成,应将其相加。
- 采用扩展操作码,若n地址的指令数小于等于n+1地址指令所留下的可分配指令数,则分配到该空间,剩余操作数位置补0。
p159-4.2.3
- 采用不同寻址方式的目的是为了缩短指令字长,扩大寻址空间,提高编程的灵活性。但这也提高了指令译码的复杂度。
- 程序控制是靠转移指令而非寻址方式实现的。
- 为了缩短指令中某个地址段的位数,有效的方法是采用寄存器寻址:因为CPU中寄存器的数量通常不会太多,用很短的编码就能指定寄存器。
- 简化地址结构的基本方法是尽量采用隐地址:隐地址不给出明显的操作数地址,而是在指令中隐含 操作数的地址,因此可以简化地址结构,如零地址指令。
- 指令寻址的各种方式中,**立即寻址最快,指令直接给出操作数;寄存器寻址次之,只需要访问一次寄存器;直接寻址再次之,访问一次内存;间接寻址最慢**,要访问内存两次以上。
- 多道程序设计中,相对寻址尤为重要。相对寻址编址的程序无须指定绝对地址,只需确定程序内部的相对距离,从而可实现浮动地址,给程序的重定位带来了方便。便于实现多道程序。
- 跳跃寻址通过转移类指令(如相对寻址)来实现,可用来实现程序的条件或无条件转移。
- 转移指令、子程序与返回指令用于解决变动程序中指令执行次序的需求,而不是数据调用次序的需求。
- 寻址方式中,寄存器寻址的地址码最短,立即寻址的地址码最长。
- 采用寄存器寻址时执行速度最快,因为寄存器位于CPU内部,无需到内存读取操作数。立即寻址虽然无需读取操作数,但因取指令访问花费的时间较多,故没有寄存器寻址块。
- 编址寻址的寻址范围应该是Rx寄存器的寻址范围+形式地址(偏移量的寻址范围)。可以省略小的一部分。
- 无符号整数比较大小的判断不需要OF位,因此表达式中是否有OF可作为判断是否为有符号整数比较的依据。
- 仔细阅读题目,题目可能修改了寻址方式的部分细节。


<–9,10两题存在超纲内容,一轮复习结束后写–>
p182-4.3.5
- P为调用过程,Q为被调用过程,在32位x86处理器上执行,过程调用所涉及的操作:
- 过程P将实参存放到Q能访问到的地方。
- 过程P将返回地址存放到待定处,并跳到Q执行。
- 过程Q保存P的现场,并为非静态局部变量分配空间。
- 执行过程Q的函数体。
- 过程Q回复P的现场,并释放局部变量所占空间。
- 过程Q取出返回地址,并跳转到过程P执行。
- 判断指令集是CISC或RISC,可优先从指令长度入手,若指令长度不同,则为CISC,其次,可以从寻址方式入手,RISC只允许load和store指令读写内存。
- 整数类型只要机器数不包含最高有效位则可通过整体左移(右移)的方式实现乘2(除以2)。而浮点数类型不可以,因为浮点数的数据中包含了阶码部分,不能通过整体移动实现。因此,浮点数的乘2(除以2)不能使用
shl指令实现,其运算比整型运算要复杂,耗时也更长。 ret指令是程序的返回指令,也会使程序跳转执行,是无条件跳转指令中容易忽略的一种。[易错]- 若整型计算结果数值已经超过计算机字长能表示的最大值,可以使用浮点型损失部分精度以获得正确结果。也可转换为long long??
- 在整数乘法指令
imul中,若乘积的高33位为非全0或非全1,则OF=1。编译器应在imul指令后加一条“溢出自陷”指令,使CPU自动查询溢出标志OF,当OF=1时,调出”溢出异常处理程序“。
p188-4.4.4
- RISC一定采用流水技术,CISC可以使用流水技术。
- CISC兼容性上比RISC好,CISC可以兼容很多老机器。
- RISC选择一些常用的寄存器型指令,并不是为了兼容CISC,RISC也不可能加绒CISC。
- RISC只是CPU结构发生变化,基本不影响整个计算机的结构,并且即使采用RISC的CPU,其架构也不可能像早期一样简单。
- RISC的指令功能简单,通过简单指令的组合来实现复杂的指令的功能,并没有怎加每条指令的功能。
- RISC指令长度一致、按边界对齐存放、仅Load/Store指令访存,它们使取指令、取操作数的操作简化且时间长度固定,能够有效地简化流水线的复杂度。
第五章 中央处理器
p193-5.1.3
- 数据总线的位数与处理器的位数相同,它表示CPU一次能处理的数据的位数,即CPU的位数。
- 转移指令时,不能说PC的值总修改为转移指令的目的地址,因为有可能使条件转移,只有在条件成立的情况下才修改PC寄存器的值。
- 程序计数器的位数取决于存储器的容量:因为内容为指令在主存中的地址,所以应与存储器地址的位数相等。
- 指令寄存器的位数取决于指令字长:指令寄存器保存当前正在执行的指令,所以其位数取决于指令字长。
- CPU中通用寄存器的位数取决于机器字长:通用寄存器用于存放操作数和各种地址信息等,其位数与机器字长相等,便于操作控制。
- 通用寄存器供用户自由编程,可以存放数据和地址。而指令寄存器是专门用于存放指令的专用寄存器,不能由通用寄存器代替。
- 程序状态字寄存器用于保留算数、逻辑运算及测试指令的结果状态。
- 地址译码器是主存等存储器的组成部分,不是CPU的组成部分。
- 间址周期的作用是取操作数的有效地址,因此间址周期结束后,MDR中的内容为操作数地址。
- CPU中的专用寄存器有:程序计数器(PC)、指令寄存器(IR)、存储器数据寄存器(MDR)、存储器地址寄存器(MAR)和程序状态字寄存器(PSW)。
p200-5.2.4
- CPU从主存中每取出并执行一条指令所需的全部时间成为指令周期。
- 时钟周期通常成为节拍或T周期,它是CPU操作的最基本单位。
- CPU周期也称机器周期,一个机器周期包含若干个时钟周期。
- 存取周期是指存储器进行两次独立的存储器操作(连续两次读或写操作)所需的最小间隔时间。
- 取指操作是自动进行的,控制器不需要得到相应的指令。
- 取指周期是取指令字。
- 由于CPU内部操作速度较快,而CPU访问一次存储器的时间较长,因此机器周期通常由存取周期来确定。
- 通常把通过一次总线事务访问一次主存或I/O的时间定位一个机器周期。
- 执行各条指令的机器周期数可变,各机器周期的长度可变:机器周期是指令执行中每步操作(如取指令、存储器读、存储器写等) 所需要的时间,每个机器周期内的节拍数可以不等,因此其长度可变。因为各种指令的功能不同,所以各指令执行时所需的机器周期数是可变的。
- CPU相应中断的时间是:一条指令执行结束,而不是指令周期结束,因为终端周期也属于指令周期。
- 存储器本身无法区分存储单元中存放的是指令还是数据。而是在控制单元的控制下,计算机在不同的阶段对存储器进行读写操作时去除的代码有不同的用处。在取指阶段读出的为指令,执行阶段读出的则可能为数据。其它部件均不能区分。
- 指令字长一般都取存储字长的整数倍,若指令字长等于存储字长的 2 倍,则需要两次访存取指周期等于机器周期的 2 倍:若指令字长等于存储字长,则取指周期等于机器周期。
- 指令字长一般取字节或存储字长的整数倍,而不一定都和存储字长一样大。
p205-5.3.3
- 在单总线CPU中,ALU只有一个输入端与总线连接,另一输入端和输出端需要通过寄存器与总线连接。
- 是否采用CPU内部总线的数据通路的特点:
- 采用CPU内部总线方式的数据通路的特点:结构简单、实现容易、性能较低、存在较多的冲突现象;
- 不采用CPU内部总线方式的数据通路的特点:结构复杂、硬件量大、不易实现、性能高、基本不存在数据冲突现象。
- 单周期处理器是指所有指令的指令周期为一个时钟周期的处理器,故:
- 每条指令的 CPI为1,
- 要考虑比较慢的指令,所以处理器的时钟频率较低。
- 单总线数据通路将所有寄存器的输入输出端都连接在一条公共通路上,一个时钟内只允许一次操作,无法完成指令的所有操作。
- 控制信号是 CU 根据指操作码发出的信号,对于单周期处理器来说,每条指令的执行只有一个时钟周期,而在一个时钟周期内控制信号并不会变化。若是多周期处理器,则指令的执行需要多个时钟周期,在每个时钟周期控制器会发出不同信号。
- 指令执行过程中数据所经过的路径,包括路径上的部件,称为数据通路。ALU、通用寄存器状态寄存器、Cache、MMU、浮点运算逻辑、异常和中断处理逻辑等,都是指令执行过程中数据流经的部件,都属于数据通路的一部分。数据通路中的数据流动路径由控制部件控制,控制部件根据每条指令功能的不同,生成对数据通路的控制信号。
<–大题部分有时间再写–>
p226-5.4.4
- CU 的输入信号来源如下: ①经指令译码器译码产生的指令信息; ②时序系统产生的机器周期信号和节拍信号;③来自执行单元的反馈信息即标志。前两者是主要因素。
- 微指令计数器决定的是微指令的执行顺序,而不是指令的执行顺序。
- 一条微指令存放在控制器的一个控制存储单元中。
- 微程序控制器的时序系统比较简单,因为它只需按照节拍的安排,顺序执行微指令。而硬件布线控制器需要结合各微操作的节拍安排,综合分析,写出逻辑表达式,再设计成逻辑电路图。因此时序系统比较复杂。
- 在微程序控制器中,控制部件向执行部件发出的控制信号称为微命令,微命令执行的操作称为微操作。微指令则是若干微命令的集合,若干微指令的有序集合称为微程序。
- 一组实现一定功能的微命令的组合构成一条微指令,有序的微指令序列构成一段微程序,微程序的作用是实现一条对应的机器指令。
- 兼容性微命令是指那些可以同时产生、共同完成某些微操作的微命令。
- 指令周期是从一条指令启动到下一条指令启动的间隔时间,而 CPU 周期是机器周期,是指令执行中每步操作所需的时间。
- 在采用微程序控制器的 CPU 中,一条指令对应一个微程序,一个微程序由许多微指令构成,一条微指令会发出很多不同的微命令。故一个微程序的周期对应一个指令周期。
- CPU 控制器主要由三个部件组成: 指令寄存器、程序计数器和操作控制器。
- 状态条件寄存器通常属于运算器的部件,保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,如运算结果进位标志(C)、运算结果溢出标志 (V) 等。
- 运算器、存储器、外围设备相对控制器来说就是执行部件。
- 不论主存储器(MM)或控制存储器(CS)都按地址访问。MM存储指令和数据,CS存储微指令,MM在CPU外,CS在CPU内。MM用RAM和ROM实现,CS用ROM实现。
- CPU时钟脉冲信号以相邻状态单元间组合逻辑电路的最大延迟为基准确定。
- 只有在理想情况下的流水线 CPU 中,才可能实现每个时钟周期开始执行一条新指令,故不能说总是开始执行一条新的指令。
- 汇编程序员可见的寄存器有基址寄存器(用于实现多道程序设计或者编制浮动程序)和状态标志寄存器、程序计数器PC及通用寄存器组;而MAR、MDR、IR是CPU的内部工作寄存器对汇编程序员不可见。微指令寄存器属于微程序控制器的组成部分,它是硬件设计者的任务,对汇编程序员是透明的(不可见的)。
- 即使是控制存储器(CM)的容量也要求是2的整数次幂,如计算得出241条指令,那么CM容量应该为 $256*指令字长$。
<–5.5节暂未讲解不知道傻逼王道搞什么–>
p244-5.6.6
p258-5.7.4
第六章 总线
p267-6.1.6
p274-6.2.4
第七章 输入/输出系统
p280-7.1.4
p284-7.2.5
p293-7.3.4
2017.43
- IEEE754浮点数阶码全1,位数全0表示无穷