cs保研经验贴|计算机组成原理
基础知识
计算机体系结构:概念性的结构与功能特性;
计算机组成:实现计算机体系结构所体现的属性。
各种周期
一个指令周期包含多个机器周期(CPU周期),一个机器周期包含多个时钟周期,一个时钟周期为一个微指令周期。
时钟周期是计算机内部时钟震荡器发出一个完整的周期所需的时间。它是CPU工作的最小时间单位。
计算机的性能指标?
总线宽度、吞吐量、CPU主频、利用率、CPI、IPS、处理机字长。
CPU执行时间=CPU时钟周期数/主频=(指令条数×CPI)÷主频。
什么是总线?总线有什么好处?总线有什么功能?
总线:总线是指计算机系统中连接各个硬件组件的物理通道或逻辑通道。
系统总线:单总线结构、双总线结构(主存总线连接CPU、主存、通道;IO总线。优点:分离了低速IO)、三总线结构(主存总线、IO总线、DMA总线。优点:进一步提高了吞吐量)。
内部总线:单总线(所有组件挂载一组总线上)、多总线、专用线
好处:不同的设备可以通过总线发送和接收数据,实现彼此之间的通信和协作;使用总线可以减少硬件的复杂性和成本。
通信总线(I/O总线)。
功能:
(1)数据传输:总线用于在不同的设备之间传输数据。它提供了数据线路,使得设备能够发送和接收数据。
(2)地址传输:总线可以传输地址信息,指示数据在内存中的位置或设备的寻址方式。
(3)控制信号传输:总线传递控制信号,用于启动、停止、同步和调度数据传输。
(4)中断传输:总线还可以传输中断信号,以通知CPU需要处理的事件或请求。
总线判优方式:链式查询、独立请求。
总线的性能指标?
总线宽度、总线带宽、信号线数、时钟同步/异步。
什么是冯诺依曼体系?
1)采用“存储程序”的工作方式:指令和数据存储在存储器中,一旦计算机被启动,计算机就会逐条执行存放在存储器中的指令。
2)计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
3)指令和数据均用二进制代码表示。
4)指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址。
5)以运算器为中心。
计算机从启动电源到显示图形化桌面,经历了哪些过程?
BIOS:一组固化到计算机内主板上一个ROM芯片上的程序,保存着计算机最重要的基本输入输出的程序(ROM)、开机后自检程序、系统自启动程序,其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
通电 → BIOS 硬件初始化和检查 → 控制权交给主引导记录(MBR) → MBR找启动文件并读入内存 → 控制权给启动文件 载入操作系统
GPU是什么,其工作原理?
GPU(Graphics Processing Unit,图形处理器)是一种专门设计用来快速处理图像、视频和大量并行计算任务的处理器。GPU特别擅长处理可以分解成许多独立小任务的问题,这些任务可以在不同的核心上同时执行。GPU配备专用的高速显存(如GDDR6, HBM),具有极高的内存带宽。
说说CPU的功能
CPU由运算器和控制器组成。其中,控制器的功能是负责协调并控制计算机各部件执行程序的指令序列,包括取指令、分析指令和执行指令、总线管理、处理异常和中断;运算器的功能是对数据进行加工。
CPU工作周期(描述的是指令处理的完整逻辑步骤,基于冯·诺依曼架构的串行执行模型):取指周期、间址周期、执行周期、中断周期。
简述多级存储系统
为了解决存储系统大容量、高速度和低成本3个相互制约的矛盾,在计算机系统中,通常采用多级存储器结构,在图中由上至下,位价越来越低,速度越来越慢,容量越来越大, CPU 访问的频度也越来越低。
多级缓存的主要思想是根据访问速度和容量的权衡,将缓存划分为多个级别,每个级别的缓存大小和访问速度逐级降低。通常,L1缓存是距离处理器(CPU)最近的、最小但速度最快的缓存,而L2和L3缓存则相对较大但速度较慢。这种层次化的缓存结构可以有效地利用不同类型的缓存来提高缓存命中率,并减少对主存的访问次数,从而加快数据访问速度。
同时,数据cache和指令cache分离,可以解决结构冲突的问题;同时可以利用各自的局部性。
影响流水线性能的因素
(1)结构相关:是当多条指令同一时刻争用同一资源形成冲突。
(2)数据相关:当后继指令需要用到前面指令的执行结果时发生的。解决:停顿、分离寄存器的读写周期、旁路转发、nop+转发(load-use型冒险)
(3)控制相关:是当流水线遇到分支指令和其他改变PC值的指令时引起的。
组成
运算器:ALU+通用寄存器(ACC、基址寄存器、变址寄存器、操作数计算器等)+PSW
控制器:PC+IR+CU、MDR、MAR
CU的输入:时钟信号、标志、IR、外来信号
存储器:内存+外存
CPU与主存通过地址、控制、数据三条总线连接
寄存器A和ACC?
A 表示了累加器中的内容,是【寄存器寻址】;ACC 表示了累加器的地址【直接寻址】。ACC用于“隐含寻址”。
数制
OF:对有符号数判断溢出
CF(进位借位):对无符号数判断溢出
数分为有符号数和无符号数,有符号数分为定点和浮点。
规格化:使有效数字尽量占满尾数部分,使尾数的最高位上是一个有效值。(对基数为2的数来说是1)左规发生多次,右规发生一次。
IEEE 754中,会在小数点前隐藏一位1,使得浮点数的精度更高。
阶码为1时,达到最小;为254达到最大。为255表示无穷大,为0表示0。
为255时若尾数不为0,则为NaN,为0时若尾数不为0,则为非规格化数(隐藏位为0,用于处理下溢)。运算结果是否溢出主要看结果的指数是否溢出。
阶码用移码:检验特殊值(0和max)比较容易。
浮点数加减:对阶(小对大)、尾数加减(原码加减!!)、规格化、尾数舍入。
除法:恢复余数法、加减交替法。
存储器(半导体、磁介质)
随机访问
RAM随机存储器【易失性存储器】(静态(不需要定时刷新,非破坏性读出)、动态)
ROM只读存储器【非易失性存储器】。包含flash(长期保存信息,在线时快速读写)、SSD(一块含多页,以页为单位读写,每次擦除一块)
串行访问存储器【非易失性存储器】:磁带(顺序存取)、磁盘(直接存取)、光盘;存取时间与物理地址有关
分为破坏性读出和非破坏性读出。
恢复方式——按行刷新:集中刷新(有死区)、分散刷新(无死区,按行刷新)、异步刷新(一个周期内,每一行刷新一次)≠读后再生
可采用引脚复用技术,先后通过相同的引脚输入行列地址,减半了地址引脚个数。
空间并行技术来优化吞吐率:单体多字(一次读出连续的m个字)、多体并行(高位交叉:高位地址表示模块号,不提高吞吐率;低位交叉:低位地址表示模块号,各模块轮流访问或同时访问,提高了吞吐率)
主存容量扩展提高容量:位扩展(处理数据线;每块芯片占据几位)、字扩展(处理地址线;地址的高位充当片选信号、用来选择芯片);除此之外,还有读写线、片选线与存储器有关
RAID通过同时使用多个磁盘,提高了传输速率:通过在多个磁盘上并行存取来大幅提高存储系统的数据吞吐量:通过镜像功能,提高安全可靠性;通过数据校验,提供容错能力。
Cache-主存由硬件处理,缺页处理由软件完成,主存-辅存由虚拟存储技术实现。
写分配法(写不命中时)和非写分配法(写不命中时)
写分配策略在发生写操作时,将数据加载到缓存中,并在缓存中进行修改。
不写分配策略在发生写操作时,直接更新主存,而不将数据加载到缓存中。
指令
指令分类:零、一、二、三、四(存下一条指令的地址)地址指令;分为定长操作码、扩展操作码(指令字长有限的情况下,保留较多的种类)。
操作类型:数据传送(mov push pop )、算术和逻辑运算(add sub inc dec mul div and or xor not neg)、移位(shl shr)、地址转移(jmp jcondition配合cmp/test call/ret)、输入输出
指令寻址:顺序、跳跃(相对和绝对)
数据寻址(指令中为形式地址):隐含寻址(如利用ACC)、立即数寻址(表示的数据范围有限,不访存)、直接寻址(表示的地址范围有限,访存一次)、间接寻址(访存两次、范围大、且便于编制程序)、寄存器直接寻址(速度快、指令短)、寄存器间接寻址(访存一次)、基址寻址(利用值不变的基址寄存器,利于多道程序设计、存储空间分配);变址寻址(利用值时刻变化的变址寄存器,处理数组问题)、堆栈寻址
地址指定方式:大端、小端
高级流水线技术:
多发射技术(CPI<1,同时处理多条指令):动态多发射技术——每个时钟周期并发处理多条独立指令(乱序执行:会发生WAR、WAW相关冲突);静态多发射技术——将多条能并行操作的指令组合成一条超长指令)
超流水线技术(增加流水线级数,以提高吞吐率;但会增加流水寄存器开销)
一条指令对应一段微程序,一段微程序包含多条微指令。
指令流水线是把指令分解为若干子过程,通过将每个子过程与其他子过程并行执行,来提高计算机的吞吐率的技术。
I:立即数的算数、取数读数指令;分支跳转指令
处理器
单周期处理器:所有指令相同的执行时间(一个时钟周期)
多周期处理器(不定个时钟周期)
流水线处理器(并行,理想情况下CPI=1)
数据通路的元件:组合逻辑元件、时序逻辑元件(各类寄存器、存储器)。数据通路:数据在功能部件之间传送的路径及其经过的元件。
数据通路基本结构:CPU内部单总线(一个时钟周期只允许一个操作,无法完成一条指令的所有操作(一次数据传输);需要暂存器,因为ALU需要两个输入同时进入)、CPU内部多总线(效率更高)、专用数据通路(硬件量大)
控制器发出控制信号的方式:
硬布线控制器:化简各种控制信号后用电路实现,扩展、修改麻烦。
微程序控制器:每条机器指令编写一个微程序,每个微程序包含诺干微指令(对应诺干个微周期,一个微周期通常为一个时钟周期),每个水平型微指令并行发出多个微命令,垂直型微指令只能执行一种微命令。
微指令=操作码+下一条微指令的地址(微程序存放在控制存储器CM中,在CPU内部。同样的配件有微PC、微IR)
水平型微指令操作码:直接编码方式(0和1控制有无)、字段直接编码方式(需要译码器)、字段间接编码方式
垂直型微指令操作码:类似机器指令操作码,简单规整,但执行效率低,并行操作能力弱。
中断
内中断=故障(软中断)、自陷(软中断)、终止(硬中断)。内中断由CPU自身检测。
外中断=可屏蔽中断(INTR线;多个INTR组成中断请求标记寄存器)、不可屏蔽中断(NMI线)。外中断不和任何指令相关联。
异常常采用软件识别,中断则采用硬件识别。
中断判优逻辑:硬件判断(排队器)、软件判断
中断服务程序入口地址的寻找:硬件向量法、软件查询法
硬件识别(向量中断):异常或中断处理程序的首地址称为中断向量,所有中断向量都存放在中断向量表中。
软件查询法:OS用一个统一的异常或中断查询程序,按优先级查询异常状态寄存器。
响应优先级由硬件线路或查询程序决定,不可改变;处理优先级可利用中断屏蔽(中断屏蔽字MASK)改变。外中断发生时,中断源改变相应中断请求标记触发器的值(硬件实现),在一条指令执行完毕后,CPU结合是否开中断、是否屏蔽了中断,来采样中断信号。
中断服务程序和主程序一般是无关的,而程序调用有主从关系;中断需要硬件电路;子程序嵌套可以诺干级
IO
IO接口:地址信息、控制信息转码;数据缓冲;通信控制。