| 项目 | 值 |
|---|---|
| 功能 | 指令控制、操作控制、时间控制、数据加工 |
| 组成 | 运算器 + 控制器 + 寄存器组 + 中断系统 |
CPU(Central Processing Unit,中央处理器)是计算机的核心部件,负责指令的读取、译码和执行。CPU 由运算器和控制器两大部分组成。
功能:算术(加/减/乘/除)、逻辑(与/或/非/异或)、移位、比较
输入:操作数A、操作数B、功能选择
输出:结果F、标志位(CF/ZF/OF/SF)
CF(Carry Flag):进位/借位标志
ZF(Zero Flag):零标志
OF(Overflow Flag):溢出标志
SF(Sign Flag):符号标志
功能:存放下一条要执行的指令地址
工作:取指(从PC取地址访存)→ PC ← PC + 指令长度(顺序)
→ PC ← 目标地址(跳转)
功能:存放当前正在执行的指令
组成:[操作码 | 地址码]
操作码 → 送入译码器;地址码 → 计算操作数地址
| 寄存器 | 功能 |
|---|---|
| 通用寄存器 | 存放数据和地址 |
| 程序计数器 PC | 下一条指令地址 |
| 状态寄存器 PSW | 运算状态和标志 |
| 浮点寄存器 | 浮点运算数据 |
| 程序状态字 | 程序运行状态 |
| 寄存器 | 功能 |
|---|---|
| 指令寄存器 IR | 当前指令 |
| 存储器地址寄存器 MAR | 访存地址 |
| 存储器数据寄存器 MDR | 访存数据 |
| 微指令寄存器 | 微程序控制 |
MAR(Memory Address Register):存放要访问的内存地址,位数决定可寻址空间
MDR(Memory Data Register):存放访存数据,位数通常等于字长
读:MAR ← 地址,发读命令,数据 → MDR
写:MAR ← 地址,MDR ← 数据,发写命令
1. MAR ← (PC) // 地址送 MAR
2. MDR ← M[MAR] // 从内存取指令
3. IR ← (MDR) // 指令送 IR
4. PC ← PC + len // PC 指向下一条
1. 操作码 → 指令译码器
2. 产生控制信号
3. 地址码 → 计算操作数地址
1. 取操作数 2. 运算(ALU) 3. 存结果
检查是否有中断请求;若有 → 保存现场,转入中断处理
寄存器组 ←→ 内部总线 ←→ ALU ←→ 内部总线 ←→ MDR/MAR
CPU时间 = 指令数 × CPI × 时钟周期
1. 指令数:由指令集和编译器决定
2. CPI :由微架构决定
3. 时钟周期:由电路工艺和设计决定
调节三个因子,观察 CPU 时间如何变化(CPU时间 = 指令数 × CPI × 时钟周期)。
★ 演示级:CPU 的指令周期状态机 —— 取指 → 间址 → 执行 → 中断检查,走一圈。
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。