【计算机组成原理】 指令周期
摘要指令周期是计算机组成原理中的核心概念理解它对于掌握CPU工作原理至关重要。本文将深入剖析不同类型指令的周期构成帮助你彻底搞懂指令执行的全过程。一、什么是指令周期指令周期Instruction Cycle是指CPU取出并执行一条指令所需的全部时间。一个完整的指令周期通常包含若干个机器周期Machine Cycle而每个机器周期又由若干个时钟周期Clock Cycle/节拍组成。核心要点每个指令周期内机器周期数可以不等每个机器周期内的节拍数也可以不等。二、指令周期的基本构成2.1 机器周期的类型根据指令执行的不同阶段机器周期主要分为以下几种机器周期英文功能说明取指周期Fetch Cycle从内存中取出指令间址周期Indirect Cycle获取操作数的有效地址间接寻址时执行周期Execute Cycle执行指令规定的操作中断周期Interrupt Cycle响应中断请求保存断点2.2 指令周期的层次结构指令周期 ├── 机器周期1如取指周期 │ ├── 时钟周期1节拍T1 │ ├── 时钟周期2节拍T2 │ └── 时钟周期3节拍T3 ├── 机器周期2如执行周期 │ ├── 时钟周期1节拍T1 │ └── 时钟周期2节拍T2 └── ...三、不同类型指令的周期分析3.1 空指令 NOP周期构成取指周期|←—— 取指周期 ——→| |←—— 指令周期 ——→|特点最简单的指令仅完成取指操作执行阶段不做任何实质性操作常用于延时或指令对齐3.2 加法指令 ADD周期构成取指周期 执行周期|←—— 取指周期 ——→|←—— 执行周期 ——→| |←—————— 指令周期 ——————→|执行过程取指周期从PC指向的内存地址取出ADD指令执行周期从寄存器或内存读取操作数在ALU中完成加法运算将结果写回目标寄存器3.3 乘法指令 MUL周期构成取指周期 执行周期较长|←—— 取指周期 ——→|←———————— 执行周期 ————————→| |←—————————— 指令周期 ——————————→|为什么执行周期长乘法算法本身复杂Booth算法、移位相加等可能需要多个时钟周期完成部分积计算64位乘32位可能产生128位结果3.4 具有间接寻址的指令周期构成取指周期 间址周期 执行周期|←—— 取指周期 ——→|←—— 间址周期 ——→|←—— 执行周期 ——→| |←———————————— 指令周期 ————————————→|什么是间接寻址间接寻址是指指令中给出的不是操作数的直接地址而是存放操作数地址的内存单元的地址。示例指令格式MOV AX, [BX] BX 1000H存放的是地址不是数据 内存[1000H] 2000H这才是操作数的真正地址 最终操作数在内存[2000H]中3.5 带有中断周期的指令周期构成取指周期 间址周期 执行周期 中断周期|←—— 取指周期 ——→|←—— 间址周期 ——→|←—— 执行周期 ——→|←—— 中断周期 ——→| |←—————————————————— 指令周期 ——————————————————→|中断周期的作用保存断点将当前PC值返回地址压入堆栈获取中断服务程序入口地址从中断向量表中读取设置中断屏蔽根据需要屏蔽其他中断转去执行中断服务程序四、指令周期对比总结指令类型机器周期数典型周期构成适用场景NOP1取指延时、对齐ADD2取指 执行算术运算MUL2执行周期长取指 执行乘法运算间接寻址3取指 间址 执行指针操作中断指令4取指 间址 执行 中断中断响应