跳转至

计算机工作过程

概述

计算机的工作过程本质上就是执行程序的过程。程序由一系列指令组成,计算机通过逐条执行这些指令来完成特定的任务。理解计算机的工作过程对于深入理解计算机系统至关重要。

基本概念

寄存器

  • 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. 取指令阶段

取指令阶段的主要任务是从存储器中取出当前要执行的指令,并将其放入指令寄存器中。

步骤:

  1. (PC) → MAR: 将PC的内容(指令地址)送到MAR
  2. M(MAR) → MDR: 将MAR指向的存储单元的内容(指令)送到MDR
  3. (MDR) → IR: 将MDR的内容(指令)送到IR
  4. (PC) + 1 → PC: PC自动加1,为取下一条指令做准备

2. 分析指令阶段

分析指令阶段的主要任务是对取出的指令进行译码,确定指令要执行的操作。

步骤:

  1. OP(IR) → CU: 将指令的操作码送到控制单元进行译码
  2. 控制单元根据操作码产生相应的控制信号

3. 执行指令阶段

执行指令阶段的主要任务是根据指令的操作码和地址码,完成相应的操作。

以取数指令为例:

  1. Ad(IR) → MAR: 将指令的地址码送到MAR
  2. M(MAR) → MDR: 将MAR指向的存储单元的内容送到MDR
  3. (MDR) → ACC: 将MDR的内容送到累加器ACC

以加法指令为例:

  1. Ad(IR) → MAR: 将指令的地址码送到MAR
  2. M(MAR) → MDR: 将MAR指向的存储单元的内容送到MDR
  3. (ACC) + (MDR) → ACC: 将ACC的内容与MDR的内容相加,结果送回ACC

以存数指令为例:

  1. Ad(IR) → MAR: 将指令的地址码送到MAR
  2. (ACC) → MDR: 将ACC的内容送到MDR
  3. (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暂停当前程序的执行,转去处理突发事件,处理完后再返回原程序继续执行的过程。

中断处理过程

  1. 中断请求: 外设向CPU发出中断请求信号
  2. 中断判优: CPU判断中断优先级
  3. 中断响应: CPU响应中断,保存断点和程序状态
  4. 中断服务: 执行中断服务程序
  5. 中断返回: 恢复断点和程序状态,返回原程序

中断的作用

  • 实现CPU与外设的并行工作
  • 处理硬件故障和软件错误
  • 实现人机交互
  • 支持多道程序设计

参考资料