CPU架构与指令集

文章探讨了CPU的架构和指令集,包括CISC(复杂指令集)和RISC(精简指令集)的区别。以x86和ARM为例,CISC的指令长度不固定,适合复杂操作,而RISC使用固定长度指令,更利于优化和流水线处理,但可能需要更多指令来完成某些任务。ARM的load/store架构限制了直接内存访问,而x86支持更多样的寻址方式。
摘要由CSDN通过智能技术生成

CPU架构与指令集

​ CPU即中央处理单元(Central Processing Unit),其作用是从内存中读取指令,然后进行解码和执行。CPU架构就是CPU的内部设计和结构,也叫做微架构(Microarchitecture),由一堆硬件电路组成,用于实现指令集所规定的操作或者运算。

​ 指令集架构(Instruction Set Architecture,ISA)简称指令集,包含了一系列的操作码(opcode),以及由特定CPU执行的基本命令。指令集在CPU中的实现称为微架构,要想设计CPU,首先得决定使用什么用的指令集,然后才是设计硬件电路。

指令集架构

​ 指令集架构有两个CISC(复杂指令集计算机)和RISC(精简指令集计算机)

​ 将两者进行对比,我们选择x86和ARM处理器,分别从指令集、寄存器和寻址方式等方面来进行对比。大多数RISC的指令长度是固定的,对于32位的ARM处理器,所有指令都是4个字节,即32位;而CISC的指令长度是不固定的,通常在1到6个字节之间。固定长度的指令有理由解码和优化,可以实现流水线(pipeline),缺点则是平均代码长度更大,会占用更多的存储空间。

​ 从逆向工程的角度来看,指令长度不固定会造成更大的麻烦:因为同一段操作码,从不同的地方开始反汇编,可能会出现不同的结果,即指令错位。

​ CISC可能为某个特定的操作专门设计一条指令,而RISC则需要组合多条指令来完成该操作。例如x86处理器有专门的出入栈指令pop、push指令,而ARM处理器则需要通过load/store以及add等多条指令才能完成。

​ 对于寻址方式,由于ARM采用了load/store架构,处理器的运算指令在执行过程中只能处理立即数,或者寄存器中的数据,而不能访问内存。因此,存储器和寄存器之间的数据交互,由专门的load(加载)和store(回存)指令负责。相反,x86既能处理寄存器中的数据,也能处理存储器中的数据,因此寻址方式也更多样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值