计算机组成原理(6)指令系统

回顾:

一个存储器由存储体和MAR+MDR构成,存储体又由多个存储元构成的存储矩阵构成。

工作原理:把存储矩阵还有译码器和控制电路组装在一起就是一个存储芯片,其中有片选线、地址线和数据线,从而理解如何寻址。

具体分类:上一章说到存储器的分类以及组成,可以按照材料进行分类,也可以按照功能进行分类:分为Cache、内存、外存。

其中存储器还分为RAM和ROM,RAM就是随机存储寄存器,其读取需要的时间与存储的位置无关,又分为SRAM和DRAM,这两个一个是靠触发器,一个是靠电容。

DRAM由于其为破坏性读数,需要刷新,所以做主存更多,SRAM做缓存更多,来解决CPU和存储器速度不一致的问题,这两个都是一断电数据就丢失。

所以产生了ROM。


指令格式

指令寻址方式

两种设计方式:CISC和RISC

一条指令就是机器语言的一条,软件能工作也是因为其首先翻译成指令,硬件在指令的指挥下进行工作。

一条指令分为操作码+地址码

设主存里不仅存储指令还存储数据,那么一条指令的执行过程是这样的

假设执行的是

把(A_^{1})+(A_{}^{2})的内容放到A_{}^{3}里面,下一条指令是A4

其中地址为6位,地址中放的内容是32位,放的内容可能是数据也可能是指令,如果放的是指令那么操作码占8位,4个地址码占6位。

因为地址码占6位,那么一共有64个不同的位置。如上图叙述,该过程要访问主存4次。

如果把存放数据和指令放在两个不同的地方,那么执行完一条指令,直接读下一条指令就可以,即地址+1,所以增加了一个PC,计数器,会自加。这样就不需要A_{}^{4}了,指令结构可以优化为三地址指令,又接着优化为2地址指令和一地址指令,如图:

无论怎么改变都没有改变指令字长,这样的叫定长指令字结构:指令长度固定

还有变长指令字结构:随着地址码的减小指令变短。如:从一地址变为零地址

定长操作码和扩展操作码

扩展操作码是把其中一个状态表示为扩展状态,然后后面的地址码就表示操作码,对操作码进行扩展,地址减少,会变为n-1地址指令

就是哈夫曼编码

如何设计可扩展指令呢?假设指令字长固定为16

数据存放

其实这部分之前也讲过,大端模式:高位先放,小端模式:低位先放。

按字存储,按字节存储。

还有分为对齐和不对齐

不对齐效率低。

指令寻址

基于PC的顺序寻址和跳跃寻址

数据寻址有不同的寻址方式

形式地址不是真的对应存储器中的地址,而是根据存储特征,把他转化为存储器中的真实地址

这就是一地址指令,当然还有二地址指令

立即寻址

直接寻址

间接寻址

怎么判断寻址结束呢?
增加一个位,如果为1,则表示存储是形式地址,0的话表示存储的是实际地址

寄存器寻址

寄存器间接寻址

隐含寻址

默认把一个操作数放到硬件里

总结

猜你喜欢

转载自blog.csdn.net/devilangel2/article/details/114042787