← 返回计算机组成原理目录
计算机组成原理指令系统#520

字长与扩展操作码

672
目录 · 4 个章节

5.2 字长与扩展操作码

三种字长

名称含义主要影响
指令字长一条机器指令占多少位操作码、地址码能分到多少位;取指时能否一次取完整条指令
机器字长CPU 一次能直接处理的数据位数ALU 位数、通用寄存器宽度、数据通路宽度、直接处理的数据范围
存储字长一个存储单元能存放多少位一个地址对应的数据位数;按字节编址时通常为 8 bit
易错点
“字长”不是一个统一数值。现代机器可能是 64 位机器字长、变长指令、内存按字节编址;题目中必须先判断问的是指令字长、机器字长还是存储字长。

定长操作码

定长操作码:所有指令的操作码字段长度相同。若操作码占 nn 位,最多表示 2n2^n 种操作。

特点:

  • 译码简单:CPU 固定读取同一段操作码即可。
  • 指令格式整齐,硬件实现容易。
  • 编码利用率可能低:零地址、一地址、二地址、三地址指令对地址字段需求不同,统一格式会让部分位被闲置。

扩展操作码

扩展操作码:不同地址数的指令使用不同长度的操作码。核心是:地址字段少的指令,把省下的地址位转给操作码。

本质是在固定指令字长内分层使用编码空间:

  • 三地址指令:地址字段多,操作码短。
  • 二地址、一地址、零地址指令:地址字段逐渐减少,操作码逐渐变长。
  • 某些短操作码不直接表示指令,而是作为扩展前缀,引出下一层更长操作码。

计算抓手

题目给定指令字长和每个地址字段长度时,不先背结论,先数“入口”。

以 16 位指令、每个地址字段 4 位为例:

  • 三地址:OP + A1 + A2 + A3,地址共 12 位,OP 只有 4 位,最多 24=162^4=16 个三地址入口。
  • 若三地址用 15 个,剩 1 个作为二地址扩展前缀,则二地址层多出 4 位扩展操作码,最多 16 个入口。
  • 若二地址再用 15 个、留 1 个继续扩展,则一地址层最多 16 个入口。
  • 若一地址再留 1 个扩展到零地址,则零地址层最多 16 条。

速记:每进入下一层,少一个地址字段,就多出该字段位数的操作码空间;但要继续向下扩展,必须消耗至少一个入口作为前缀。

讨论

0 条评论

登录后参与讨论

登录后可以发布评论、回复和点赞。

暂无评论。

x1a0Y4NGren's Blog

一个计算机学生的学习记录、算法题解与个人知识管理。

RSS