计算机组成原理指令系统#520
字长与扩展操作码
约 672 字
目录 · 4 个章节
5.2 字长与扩展操作码
三种字长
| 名称 | 含义 | 主要影响 |
|---|---|---|
| 指令字长 | 一条机器指令占多少位 | 操作码、地址码能分到多少位;取指时能否一次取完整条指令 |
| 机器字长 | CPU 一次能直接处理的数据位数 | ALU 位数、通用寄存器宽度、数据通路宽度、直接处理的数据范围 |
| 存储字长 | 一个存储单元能存放多少位 | 一个地址对应的数据位数;按字节编址时通常为 8 bit |
易错点
“字长”不是一个统一数值。现代机器可能是 64 位机器字长、变长指令、内存按字节编址;题目中必须先判断问的是指令字长、机器字长还是存储字长。
定长操作码
定长操作码:所有指令的操作码字段长度相同。若操作码占 位,最多表示 种操作。
特点:
- 译码简单:CPU 固定读取同一段操作码即可。
- 指令格式整齐,硬件实现容易。
- 编码利用率可能低:零地址、一地址、二地址、三地址指令对地址字段需求不同,统一格式会让部分位被闲置。
扩展操作码
扩展操作码:不同地址数的指令使用不同长度的操作码。核心是:地址字段少的指令,把省下的地址位转给操作码。
本质是在固定指令字长内分层使用编码空间:
- 三地址指令:地址字段多,操作码短。
- 二地址、一地址、零地址指令:地址字段逐渐减少,操作码逐渐变长。
- 某些短操作码不直接表示指令,而是作为扩展前缀,引出下一层更长操作码。
计算抓手
题目给定指令字长和每个地址字段长度时,不先背结论,先数“入口”。
以 16 位指令、每个地址字段 4 位为例:
- 三地址:
OP + A1 + A2 + A3,地址共 12 位,OP只有 4 位,最多 个三地址入口。 - 若三地址用 15 个,剩 1 个作为二地址扩展前缀,则二地址层多出 4 位扩展操作码,最多 16 个入口。
- 若二地址再用 15 个、留 1 个继续扩展,则一地址层最多 16 个入口。
- 若一地址再留 1 个扩展到零地址,则零地址层最多 16 条。
速记:每进入下一层,少一个地址字段,就多出该字段位数的操作码空间;但要继续向下扩展,必须消耗至少一个入口作为前缀。
讨论
0 条评论
登录后参与讨论
登录后可以发布评论、回复和点赞。
暂无评论。