提示:学习过程中建议通过错题整理、绘制模块流程图(如指令执行流程、Cache 映射机制)等方式强化理解,最终实现从 “碎片化记忆” 到 “系统性掌握” 的提升。
前言
提示:这篇文章是我在备考过程中刷了无数习题、踩过不少坑后,一点点总结下来的计算机组成原理易错知识点。每一个要点都凝结着反复纠错的心血,希望能帮大家少走弯路,高效备考!
在计算机组成原理的学习中,易错知识点往往是理解硬件系统架构、掌握核心原理的关键障碍。这些知识点看似细碎,却贯穿于计算机系统的各个模块。为帮助读者高效梳理核心概念、规避常见误区,本文系统整理了各章节高频易错内容。每个知识点均结合原理分析与易错点辨析,既适合408备考复习,也可作为日常学习的查漏补缺手册。希望通过本文的梳理,读者能突破认知盲区,建立更扎实的计算机组成原理知识体系。
第一章 计算机系统概述
- IR存放当前执行的指令代码,PC存放下一条指令的地址。
- CPU由运算器和控制器两个部件组成。运算器的核心是ALU,地址寄存器MDR位于CPU中。
- 把汇编语言源程序翻译成机器语言程序的过程称为汇编。
- 系列机的基本特征是指令系统向后兼容。向后兼容是指时间上向后兼容,即新机器兼容使用以前机器的指令系统。
- 存储字长是指存放在一个存储单元中的二进制代码位数。
- 从用户观点看,评价计算机系统性能的综合参数是吞吐率。
- 指令执行速度 = 主频/平均CPI ; 运行时间= 指令数*CPI/主频
- MIPS = 主频/(CPI*10^6)。
- 机器字长 = ALU位数 = 通用寄存器宽度
- 机器语言和汇编语言与机器指令对应,而高级语言不与指令直接对应,具有较好的可移植性。
第二章 数据的表示和运算
1.任意一个二进制小数都可以用十进制小数表示,但并不是每个十进制小数都可以准确的用二进制表示。
2. 若同时有无符号数和有符号数参与运算,则C语言标准规定按无符号数进行运算。
3. 原数字是无符号整数则进行零扩展,扩展后的高位用0补充,否则进行符号扩展。
4. 算术左移时低位补0,算术右移时高位补符号位。
5. 机器运算发生溢出的根本原因是计算机的字长有限(寄存器的位数有限)。
6. 存储模4补码仅需一个符号位,只在ALU中采用双符号位。
第三章 存储系统
- 主存和辅存之间的数据调动是由硬件和操作系统共同完成的,仅对应用级程序员透明。CPU与主存可直接交换信息。
- 静态随机存储器SRAM的存储元是双稳态触发器,SRAM一般用于高速缓冲存储器Cache。
- 数据线的位数通常等于存储字长,因此MDR的位数通常等于存储字长。
- 集中刷新必然存在死时间;分散刷新不存在死时间,但存储周期变长;异步刷新虽然缩短了死时间,但死时间依然存在。
- 主存由RAM和ROM构成,两者统一编址,因此随机存储器和只读存储器可以统一编址。
- DRAM一次完整的刷新过程只需要占用一个存储周期。
- 刷新也是一个读取的过程,因此会和CPU的访存冲突,会有访存死时间。
- 刷新是通过对存储单元进行“读但不输出数据”,即“假读”的操作来实现的。
- 每推出新一代DRAM芯片,地址线至少增加1根,则容量至少提高到原来的4倍。(DRAM采用地址线复用技术行地址和列地址分时复用,每增加1根地址线,则行地址和列地址各增加1位。所以行数和列数各增加1倍,因此容量至少提高到原来的4倍。)
- 磁盘地址应该由磁道号(柱面号)、磁头号(盘面号)和扇区号组成。
- 磁盘存储器读/写操作的最小读/写单位是一个扇区。
- 磁盘存储器采用直接存储器存储DMA方式进行输入/输出。按批处理方式进行一个数据块的读写。磁盘存储器通常直接与主存交换信息。
- 固态硬盘的擦除以块为单位,读/写以页为单位。
- 固态硬盘SSD基于闪存技术,常用作外存而非主存。
- 写分配法和非写分配法都是在不命中Cache的情况下使用的。回写法和全写法是在命中Cache的情况下使用的。
- 在写Cache时,写分配法和回写法搭配使用,非写分配法和全写法搭配使用。
- 写操作比较密集,采用回写法速度快,更适合访问密集型的应用。全写法每次均写入主存和Cache,能够随时保持储存数据的一致性,适合安全性要求很高的应用。
- Cache的功能完全由硬件实现。Cache和主存是以块为单位进行数据交换的。
- 指令Cache通常比数据Cache具有更好的空间局部性。
- 直接映射是多对一的映射,无需考虑替换问题,而组相联映射和全相联映射都必须考虑如何进行替换。
- 虚存需要通过对操作系统实现地址映射,因此对操作系统的设计者即系统程序员是不透明的;而应用程序员写的程序所使用的是逻辑地址,因此对其是透明的。
- 段的分界与程序的逻辑分界相对应,使得它易于编译、修改、保护和共享。
- 对于虚拟存储管理机制的页表来说,非所有进程都可以访问页表,通常只能由操作系统和硬件进行访问页表。
- 缺页处理完成后回到发生缺页的指令继续执行。
- TLB和Cache均由SRAM组成,两者缺失后都需要去访问主存。
第四章 指令系统
- 执行调用指令与转移指令的区别:执行调用指令时必须保存下一条指令的地址(返回地址),当子程序执行结束时,根据返回地址返回到主程序继续执行;转移指令则不返回执行。
- 在CPU执行指令的过程中,指令的地址由程序计数器PC给出,而指令的地址码字段则保存操作数地址。
- 程序控制类指令用于改变程序执行的顺序。程序控制类指令主要包括无条件转移、有条件转移、子程序调用和返回指令、循环指令等。
- 采用拓展操作码设计方案的目的是保持指令字长度不变而增加指令的数量。
- 相对寻址便于程序浮动。
- 基址寻址有利于多道程序设计,可用于编制浮动程序。
- 变址寻址适合编制循环程序。主要用于处理数组问题。
- 采用不同寻址方式的目的是为了缩短指令字长,扩大寻址空间,提高编程的灵活性。
- 直接转移执行时直接将地址码送入PC;间接转移中相对转移为当前PC值加上偏移量,偏移量一般在指令中;绝对转移是指转移目标地址直接由指令或寄存器给出。
- 简化地址结构的基本方法是尽量采用隐含寻址。
- 相对寻址方式中指令所提供的相对地址实质上是一种以下条指令在内存中首地址为基准位置的偏移量。
- 内存地址是无符号数。
- 两个操作数的符号不同,必然不会溢出,即OF = 0;
- 嵌套调用时返回地址通常保存在栈中,非嵌套调用时可保存在特定寄存器中。
- 调用指令与高级语言源程序中的过程调用相对应一次过程调用对应一条调用指令。
- RISC精简指令集系统必然采用流水线技术。
第五章 中央处理器
- 运算器中的寄存器有通用寄存器组、累加寄存器ACC、移位寄存器SR、暂存寄存器、程序状态字寄存器PSW;
- 控制器的寄存器有程序计数器PC、指令寄存器IR、存储器地址寄存器MAR、存储器数据寄存器MDR;
- 指令总是根据程序计数器PC从主存储器中读出。
- 程序计数器PC的位数取决于存储器的容量和指令字长。
- 机器指令中不能显式的使用PC。
- 调用指令执行后,PC值一定是被调用过程的入口地址。
- 条件转移指令执行后PC值一定是转移目标地址。
- 指令译码器仅对操作码字段进行译码。
- 间址周期的作用是取操作数的有效地址,因此间址周期结束后,MDR中的内容为操作数地址。
- 取指周期的任务是根据PC中的内容从主存中取出指令代码并存放在IR中。
- 执行周期的任务是取操作数。
- 中断周期的任务是处理中断请求。
- 取指操作是自动进行的,控制器不需要得到相应的指令。
- 在指令长度相同的情况下,所有指令的取址操作是相同的。
- 在多周期CPU中,执行各条指令的机器周期数可变,各机器周期的长度可变。
- 指令字长等于存储字长的前提下,取址周期等于机器周期。
- 数据通路的功能由控制部件送出的控制信号决定。
- CPU内部电路通过采用总线连接方式,总线上信号流动的原则是每个时刻只有一个器件发出信息。每个时刻有一个或多个器件接收信息。
- 在一条指令执行过程中,单周期CPU的每个控制信号保持不变,每个部件只能使用一次。多周期CPU的控制信号可能发生改变,同一个部件可使用多次。
- 采用CPU内部总线的方式的数据通路的特点是结构简单,实现容易,性能较低,存在较多的冲突现象。
- 组合逻辑元件(操作元件)包括加法器,算术逻辑单元,译码器,多路选择器和三态门。
- 时序逻辑元件(状态原件)包括各类寄存器和存储器,比如通用寄存器组,程序计数器,状态寄存器。
- 在组合逻辑控制器中微操作控制信号的形成主要与指令译码信号和时钟信号有关。
- 微程序控制存储器属于CPU的一部分,而非主存。
- 硬部件控制器和微程序控制器相比,微程序控制器的时序系统比较简单。
- 在微程序控制器中,控制部件向执行部件发出的控制信号称为微命令。微命令执行的操作称为微操作,微指令是若干微命令的集合,若干微指令的有序集合称为微程序。
- 一条水平型微指令能定义并执行几种并行的基本操作。一条垂直行为指令只能定义并执行一种基本操作。
- 主存储器MM在CPU外用于存储指令和数据,由RAM和ROM实现,主要是RAM。控制存储器CS用来存储微指令,用ROM实现。
- 指令执行结果出现异常,属于内中断的故障。
- 进程上下文切换由操作系统的内核程序实现,而异常/中断的响应则由硬件实现。
- “陷阱”类异常的断点为陷阱指令下一条指令的地址。“故障”类异常的断点为当前发生异常的指令的地址。“终止”的断点可以是当前指令或下一条指令的地址。外部中断的断点是已经执行的指令的下一条指令。“自陷”处理完成后返回陷阱指令的下一条指令执行。【很重要!!】
- 流水线CPU是一种非常经济而实用的时间并行技术。
- 度为n的超标量流水线连续执行m条指令,每条指令由3个子部件完成,需要(3+(m-n)/n)时间。
- 在流水线数据通路中,时钟信号不仅作用在流水段寄存器上,还要作用在PC、各类寄存器、存储器的状态元件上。每条指令的取指令阶段和指令译码阶段不需要控制信号。
- 重复设置功能部件可以避免结构冒险。数据Cache和指令Cache分离可解决两条指令同时分别取数据和取指令的冒险。【重要哦!!】
- 采用旁路技术可以解决数据相关问题。
- 部分数据冒险可以通过转发技术解决,但有些数据冒险不行。
- Lode-use类型的数据冒险会引起一个或多个时钟周期的阻塞,需要添加空操作指令解决。
- 插入空操作指令可以避免数据冒险。采用转发技术可以解决部分数据冒险。通过编译器调整相关指令的顺序,也可以解决部分数据冒险。
- 分支预测技术用于处理控制冒险。预测错误时已被错误放入流水线执行的指令必须被舍弃。
- 超长指令字技术不仅对优化编译器的要求更高,还需要更多的硬件资源。如寄存器、功能部件、指令译码电路等。
- 超流水线技术相当于将流水线再分段,从而提高每个周期内功能部件的使用次数。
- 超线程技术是在一个CPU中提供两套线程处理单元,让单个处理器实现线程级并行。有超线程技术的CPU需要芯片组的支持才能发挥技术优势。
- 双核技术是指将两个CPU核心集成到一个封装中,是指在CPU上集成两个运算核心。
- UMA构架需要解决的重要问题是Cache一致性。
- 硬件多线程技术在一个核中处理多个线程可用于单核处理器。
- 共享内存多处理器(SMP)具有共享的单一物理地址空间,所有核都可通过存取指令来访问同一片主存地址空间。
第六章 总线
- 只有主设备才能获得总线控制权,一条总线上可以有多个设备作为主设备。但在同一时刻只能有一个主设备控制总线的传输操作。
- 计算机使用总线结构便于增减外设,同时减少信息传输线的条数。
- 地址总线上的代码用来指明CPU要访问的存储单元或I/O端口的地址。
- 总线中数据总线是双向传输的。地址总线是单向传输的,地址信息只能由CPU发送至内存或外设。控制信息和状态信息也是单向传输的。
- 同步通信不需要应答信号,且总线长度较短。各部件的存取时间较接近。
- 在异步方式下传输操作是由双方按需求分配时间的。
- 总线的传输周期分为寻址阶段、申请分配阶段、传输阶段。
第七章 I/O系统
- 在独立编址方式下,CPU需要设置专门的输入/输出指令访问端口。
- I/O的编址方式采用统一编址方式时进行输入/输出的操作指令是访存指令。
- 主机和外设之间的正确连接通路是:CPU和主存—I/O总线—I/O接口–通信总线–外设。(助记:CPU和主存通过I/O总线和I/O接口连接,I/O接口通过通信总线和外设相连)
- CPU会在每个存储周期(总线周期)结束后检查是否有DMA请求。
- 中断隐指令不在指令系统中,因此不属于程序控制类指令。无条件转移指令、有条件转移指令以及循环指令都属于程序控制类指令。
- 在中断I/O方式下,外设接口中的寄存器和CPU中的寄存器直接交换数据。
- 设计中断屏蔽标志可以改变多个终端服务程序执行完的次序。
- 程序查询每完成一次数据传送后,将主存地址加1,计数器减1。
- DNA在与主存交换数据是通过周期窃取方式窃取的是存取周期。
- 在主机和外设的信息传输中直接存储器存取(DMA)不是一种程序控制方式。
- 在DMA方式下,数据从内存传送到外设经过的路径是:内存 - 数据总线 - DMAC -外设。
- 中断I/O方式不适合高速外设,多路型DMA控制器也适合同时为多个慢速外设服务。
总结
本文聚焦计算机组成原理中易混淆、易出错的核心知识点,从七大模块进行深度解析, 通过对以上易错点的梳理,可清晰把握计算机硬件系统的工作原理及模块间的协同机制,为后续深入学习操作系统、体系结构等课程奠定基础。
如果觉得有用,欢迎点赞关注我哦~后续还会持续更新计算机考研的核心知识点、解题技巧,甚至避坑指南!要是有任何不理解的地方,随时在评论区留言,我们一起讨论、逐个击破!备考路上不孤单,一起加油冲吧~