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

本文详细解析了存储器的工作原理,包括存储矩阵、寻址方式(CISC/RISC)、指令格式、数据存放(大/小端模式),并介绍了指令寻址的不同类型,如顺序/跳跃、立即/直接/间接寻址。讨论了存储器的扩展操作码和指令字长优化,以及寄存器寻址和哈夫曼编码的应用。

回顾:

一个存储器由存储体和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的话表示存储的是实际地址

寄存器寻址

寄存器间接寻址

隐含寻址

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

总结

 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值