计算机系统的工作原理
计算机的功能部件

存储器
基本组成:
- 存储体:由大量存储单元组成,是实际存放数据和指令的物理介质。
- 存储地址寄存器(MAR):用来存放欲访问存储单元的地址
- MAR 的位数(长度)决定了最多可寻址的存储单元的个数
- MAR 为 10 位,则最多 个存储单元,记为 1 K
- MAR 的长度与 PC 的长度相等:这确保了程序计数器(PC)能正确寻址到存储器中的任何指令或数据单元
- MAR 的位数(长度)决定了最多可寻址的存储单元的个数
- 存储数据寄存器(MDR):用来存放从存储体的某个存储单元取出的信息或者准备往某个存储单元存入的信息
- MDR 的位数(长度)与存储字长相等:这保证了 MDR 能完整地存储或取出存储器中的一个字
- 时序控制逻辑:用于产生存储器操作所需的各种时序信号,如读/写控制信号。
相关概念: - 存储元:存储器中最小的、不可再分的存储单位,通常存放一位二进制信息(0 或 1)。
- 存储单元:可被独立寻址的最小存储区域,存放一个存储字。
- 存储字:存放在一个存储单元中的二进制代码串。
- 存储字长:一个存储单元所能存放的二进制代码的位数。
- 机器字长:CPU 一次能并行处理的二进制数据的位数,通常等于 ALU 的位数。
- 指令字长:一条指令所占用的二进制代码的位数,可以是机器字长的整数倍。
- 数据字长:CPU 能直接处理的数据的位数,通常等于或小于机器字长。

运算器
运算器是中央处理器(CPU)的核心组成部分,主要负责执行所有的算术运算和逻辑运算指令。
基本组成:
- ALU:算术逻辑单元 (Arithmetic Logic Unit) ALU 是执行所有算术运算(如加、减、乘、除)和逻辑运算(如与、或、非、异或)的核心电路。
- ACC:累加器 (Accumulator) 累加器是一个通用寄存器,通常用于在算术逻辑运算中存储操作数或运算结果。
- MQ:乘商寄存器 (Multiplier-Quotient Register) 乘商寄存器是专门用于乘法和除法运算的寄存器,在乘法中存放乘数或乘积的低位,在除法中存放商或余数。
- X:通用的操作数寄存器 (General Operand Register) 通用操作数寄存器是一个辅助性的寄存器,用于暂时存放参与运算的操作数,减轻 ACC 的负担。
以上是必须具备的
- IX:变址寄存器 (Index Register) 变址寄存器用于在变址寻址方式中存放变址量(偏移量),该变址量与指令中的地址码相加形成有效地址。
- BR :基址寄存器 (Base Register) 基址寄存器存放程序或数据的起始地址(基地址),用于程序浮动和实现多道程序的内存保护。
- PSW:程序状态寄存器 (Program Status Word),也称标志寄存器 PSW 用于存放 ALU 运算得到的一些标志信息或处理机的状态信息,这些标志位(如溢出、进位、零、符号等)影响程序的条件分支和执行流程。

操作过程
# M表示主存储器中某个存储单元的地址
# (M)表示地址为M的存储单元中的内容
# ACC、MQ、X 同理
# 加法操作过程
(M) -> X # 取出内容(加数)
(ACC)+(X) -> ACC # 将累加器内容与加数相加,结果存回累加器
# 减法操作过程
(M) -> X # 取出减数
(ACC)-(X) -> ACC # 将累加器内容减去减数,结果存回累加器
# 乘法操作过程
(M) -> MQ # 将乘数取至乘商寄存器MQ
(ACC) * (MQ) -> ACC || MQ # 将累加器中的被乘数与MQ中的乘数相乘,乘积高位存入ACC,低位存入MQ
# 除法操作过程
(M) -> X # 将除数取至通用寄存器X
(ACC) / (X) -> MQ # 将累加器中的被除数除以X中的除数,商存入MQ,余数保留在累加器ACC控制器
核心功能: 负责解析指令并产生一系列控制信号,以协调和指挥计算机各部件协同工作。
-
取指 (Fetch Instruction):PC→MAR→M→MDR→IR
- 根据 PC (程序计数器) 中存放的地址,从主存储器中取出当前要执行的指令。
- 取出的指令被送入 IR (指令寄存器)。
- 同时,PC 中的值自动修改(通常是加 1 个指令字长),指向下一条即将执行的指令在主存中的地址。
-
分析 (Decode Instruction):OP(IR)→CU
- CU (控制单元) 对 IR 中存放的指令的操作码进行译码,识别指令的类型和所需执行的操作。
- 确定操作所需的源操作数地址(或立即数)以及目的操作数的存放位置。
- 根据译码结果,为后续的执行阶段准备相应的控制信号。
-
执行 (Execute Instruction):Ad(IR)→MAR→M→MDR→ACC
- CU 根据指令译码结果和分析出的操作数信息,生成并发送一系列精确的时序控制信号。
- 这些控制信号驱动计算机其他相关部件(如 ALU 算术逻辑单元、寄存器、存储器)协同工作,完成指令所规定的具体操作,例如算术逻辑运算、数据传送、条件判断、程序跳转等。
- 操作完成后,更新相关的状态寄存器或将结果存入指定位置。
相关概念:
- PC (程序计数器 Program Counter)
- 存放下一条即将执行的指令在主存中的地址。它是指令寻址的关键寄存器。
- 每取一条指令后,PC 值会自动修改(通常是加 1 个指令字长,具体增量取决于指令的字节数或字长),指向下一条指令的起始地址。
- 在遇到转移指令(如 JMP、CALL、RET 等)时,PC 值会被修改为转移目标地址,从而实现程序的跳转或分支。
- IR (指令寄存器 Instruction Register)
- 存放当前正在执行的指令的全部内容。它是指令内容的载体。
- CPU 从主存中取出指令后,首先将其送入 IR,然后由 CU 对 IR 中的指令进行分析和执行。
- CU (控制单元 Control Unit)
- 控制器最核心的部件,负责指令的译码和控制信号的产生。
- 根据 IR 中的指令操作码译码结果,并结合当前时序信号,生成并发送一系列时序控制信号(如读/写信号、寄存器使能信号、ALU 操作选择信号等)。
- 这些控制信号驱动其他部件(如 ALU、存储器、寄存器、I/O 接口)协同工作,完成指令的各项操作,是实现指令功能的关键。

输入设备
输出设备
计算机系统的细节
机器指令

基本工作原理
举例说明指令执行过程



第二条指令


