计算机工作过程¶
概述¶
计算机的工作过程本质上就是执行程序的过程。程序由一系列指令组成,计算机通过逐条执行这些指令来完成特定的任务。理解计算机的工作过程对于深入理解计算机系统至关重要。
基本概念¶
寄存器¶
- PC (Program Counter): 程序计数器,存放当前指令的地址
- MAR (Memory Address Register): 存储器地址寄存器,存放要访问的存储单元地址
- MDR (Memory Data Register): 存储器数据寄存器,存放从存储器读出或写入存储器的数据
- IR (Instruction Register): 指令寄存器,存放当前正在执行的指令
- ACC (Accumulator): 累加器,用于存放操作数和运算结果
- CU (Control Unit): 控制单元,负责指令译码和发出控制信号
指令格式¶
指令通常由两部分组成:
- 操作码 (OP): 指明指令要完成的操作
- 地址码 (Ad): 指明操作数或操作数所在的地址
表示方法¶
(PC): 表示PC寄存器中的内容M(MAR): 表示MAR指向的存储单元中的数据(ACC): 表示ACC寄存器中的数据OP(IR): 取指令寄存器中的操作码Ad(IR): 取指令寄存器中的地址码
指令执行过程¶
计算机执行指令的过程通常分为三个阶段:取指令、分析指令和执行指令。
1. 取指令阶段¶
取指令阶段的主要任务是从存储器中取出当前要执行的指令,并将其放入指令寄存器中。
步骤:
- (PC) → MAR: 将PC的内容(指令地址)送到MAR
- M(MAR) → MDR: 将MAR指向的存储单元的内容(指令)送到MDR
- (MDR) → IR: 将MDR的内容(指令)送到IR
- (PC) + 1 → PC: PC自动加1,为取下一条指令做准备
2. 分析指令阶段¶
分析指令阶段的主要任务是对取出的指令进行译码,确定指令要执行的操作。
步骤:
- OP(IR) → CU: 将指令的操作码送到控制单元进行译码
- 控制单元根据操作码产生相应的控制信号
3. 执行指令阶段¶
执行指令阶段的主要任务是根据指令的操作码和地址码,完成相应的操作。
以取数指令为例:
- Ad(IR) → MAR: 将指令的地址码送到MAR
- M(MAR) → MDR: 将MAR指向的存储单元的内容送到MDR
- (MDR) → ACC: 将MDR的内容送到累加器ACC
以加法指令为例:
- Ad(IR) → MAR: 将指令的地址码送到MAR
- M(MAR) → MDR: 将MAR指向的存储单元的内容送到MDR
- (ACC) + (MDR) → ACC: 将ACC的内容与MDR的内容相加,结果送回ACC
以存数指令为例:
- Ad(IR) → MAR: 将指令的地址码送到MAR
- (ACC) → MDR: 将ACC的内容送到MDR
- (MDR) → M(MAR): 将MDR的内容存入MAR指向的存储单元
指令周期¶
指令周期的概念¶
指令周期是指取出并执行一条指令所需的全部时间。指令周期通常包含若干个机器周期,每个机器周期又包含若干个时钟周期。
指令周期的组成¶
- 取指周期: 从存储器取出指令的时间
- 间址周期: 取操作数有效地址的时间(如果指令采用间接寻址)
- 执行周期: 执行指令操作的时间
- 中断周期: 处理中断的时间(如果有中断请求)
指令周期流程¶
| Text Only | |
|---|---|
数据通路¶
数据通路是指数据在功能部件之间传送的路径,包括:
1. CPU内部总线¶
- 用于连接CPU内部各寄存器和运算器
- 实现数据在寄存器之间的传送
2. 系统总线¶
- 数据总线: 传送数据信息
- 地址总线: 传送地址信息
- 控制总线: 传送控制信号
3. 存储器总线¶
- 连接CPU和主存储器
- 实现CPU与主存之间的数据交换
控制信号¶
控制单元产生的控制信号用于控制各个部件的工作:
1. 寄存器控制信号¶
- PCout: PC内容输出到总线
- PCin: 总线内容输入到PC
- MARout: MAR内容输出到总线
- MARin: 总线内容输入到MAR
- MDRout: MDR内容输出到总线
- MDRin: 总线内容输入到MDR
- IRin: 总线内容输入到IR
- ACCout: ACC内容输出到总线
- ACCin: 总线内容输入到ACC
2. 存储器控制信号¶
- Read: 读存储器
- Write: 写存储器
3. 运算器控制信号¶
- Add: 加法运算
- Sub: 减法运算
- And: 与运算
- Or: 或运算
中断处理¶
中断的概念¶
中断是指CPU暂停当前程序的执行,转去处理突发事件,处理完后再返回原程序继续执行的过程。
中断处理过程¶
- 中断请求: 外设向CPU发出中断请求信号
- 中断判优: CPU判断中断优先级
- 中断响应: CPU响应中断,保存断点和程序状态
- 中断服务: 执行中断服务程序
- 中断返回: 恢复断点和程序状态,返回原程序
中断的作用¶
- 实现CPU与外设的并行工作
- 处理硬件故障和软件错误
- 实现人机交互
- 支持多道程序设计