Ste*_*eve 7 cpu computer-architecture
在一个典型的指令周期中,取、译码、执行共同构成一个周期。我的问题是关于解码步骤:解码的部分是什么,它是指令的操作码吗?如果是这样,那么为什么要对其进行编码?
事实上,我理解这里的解码方式与在安全领域给定密钥的情况下解码消息的方式类似,这让我有点困惑。
除了操作码之外,汇编指令通常具有指示寄存器和寻址模式(绝对、相对、自动递增等)的位域。
解码是解释操作码和那些其他位域以确定指令将对其进行操作或以其他方式进行操作的循环。
摘要:它计算出指令的可选细节
示例: 0x90 ( 10010000 binary ) 通常被认为是NOP
8086 指令集,没有操作。
但是有一条XCHG
指令,表示为二进制 10010reg (reg=3 bits), (0x90 + reg) 是一个 16 位交换寄存器与AX
指令。表示为“reg”的 3 位定义了要交换的寄存器。
二进制 000 的“reg”,表示“带寄存器AX
”。所以 0x90 解码为“AX
与”交换AX
,这没什么用,AKA No OperationNOP
指令和寻址模式是解码的内容。指令 + 寻址模式由操作码和操作码后面的任何立即数数据(操作数)组成。
如果是这样,那么为什么要对其进行编码?
因为我们使用 RAM 中的值来“代表”指令和寻址模式。必须存在一种方案,其中 X = 任何指令 + 任何寻址模式。类似于 ASCII/Unicode 是一种“代表”数字、字母和终端控制代码的方案。
如果您有一台机器,每个可能的指令都有 1 个开关,则不需要解码步骤。这个“RAM 等效”将是 8 位(或其他)字节中每位 1 条指令,如果有多个位,则所有指令(是的,您将被限制为 8 个)将“触发”那一步。我相信 60 年代末/ 70 年代初的 PDP 组装与此相去不远。
事实上,我理解这里的解码方式与在安全领域给定密钥的情况下解码消息的方式类似,这让我有点困惑。
不,这更像是将 MPEG 数据解码为原始视频数据 - 原始 MPEG 数据不能直接绘制在屏幕上,必须对其进行处理和“解包”以找出其确切含义。
解码是指解析指令以确定其含义。
一条典型的指令由一个操作码和(通常)一个或多个参数组成。这些参数可以指特定的寄存器或存储器地址,也可以是在执行期间直接使用的立即值。此外,某些指令可能具有改变其功能的前缀(例如LOCK
在 x86 中)或功能代码(例如funct
某些 MIPS 指令的字段)。
在解码过程中,处理器需要:
对于现代处理器,这可能是一项复杂的操作,需要管道中的多个阶段。为了加速这个过程,可以使用专用高速缓存来存储频繁执行的指令的微操作。
有关用于在现代处理器中提供高性能的技术的更多信息,您可能需要阅读此答案。
归档时间: |
|
查看次数: |
7409 次 |
最近记录: |