关于CPU 架构与指令集的一些个人理解

关于CPU 架构与指令集的一些个人理解

(理解不一定正确,只是目前的理解)

1、一般所说的X86,是指基于Intel X86架构处理器的一套指令集,即X86指令集;

2、CPU的架构是最底层的,是处理器的硬件结构,即CPU按照什么样的硬件结构来设计(架构是一个框架,架构确定,则硬件结构大体就确定了,同一架构的不同型号CPU可能只是某些细节设计不一样);

3、CPU的硬件结构,即架构,一旦确定,那么使用该架构的CPU能实现的功能大体上是一样的,而且去实现该功能的方法也大体上一样的;其它架构的处理器可能也可以实现某些相同的功能,但是实现的方式不一样,如果都一样,那不就是同一款处理器了吗!

4、某种架构CPU的指令集,是由该CPU架构决定的,如X86指令集,是因为该CPU采用了X86结构,所以才叫X86指令集;指令集是指某种架构CPU能实现的所有功能,这些功能对应的代码编号构成指令集;代码编号应该就是指机器码这种底层代码,某种架构CPU架构确定后,代码编号就确定了,这些编号反映了CPU以什么样的方式去执行某些功能,决定了硬件的执行方式;前面说这些代码编号可能就是机器码,机器码就是二进制数字,二进制数字反映在电路上就是高低电平,从而驱动电路运行;不同代码编号的二进制数字排列就不同,所以驱动电路的高低电平就不同,所以电路执行的方式就不同;

5、接着上面的论述,,同一种汇编代码,实现的功能相同,但是在不同架构的CPU上,使用不同的指令集来对同一种汇编代码进行翻译,翻译的机器代码则不同,即二进制数字排列方式不同,所以电路的运行方式就不一样;这就体现了不同架构处理器实现某种相同功能,运行的方式不同;

6、接着论述,,如果所谓的指令集就是指汇编代码,即机器代码的上一层,那么不同架构就会产生不同的汇编代码,好像是有不同的汇编代码这回事,那么实现同一个功能,不同架构就会使用不同的汇编代码来执行,即采用不同的方式实现相同的功能;与上面论述的原理一样;如果指令集指的是汇编语言,则同一种C语言,实现功能相同,但是在不同架构的CPU上,使用不同的指令集来对同一种C语言进行翻译,结果翻译成不同的汇编语言,还是回到原道理,即采用不同的方式实现相同的功能。

总结: 不同架构的CPU,最终体现在CPU实现相同功能的方式不同,或者有的CPU具有其它CPU实现不了的功能,是某种架构独有的;而不同指令集是用来对上层代码进行不同的翻译,从而使电路实现的方式不同;

后期续接:(后期加深认识内容)

1、指令集与CPU架构谁决定谁?

一般先设计指令集,再根据指令集要实现的功能,设计CPU的架构;但是设计指令集的时候,也应该会考虑CPU架构的实现,再设计能实现的指令集;所以指令集与CPU架构相辅相成,设计时应该同时考虑;所以经常说的X86架构,可能同时表示CPU的硬件架构与指令集吧。

2、某种CPU的编译器?

编译器类型是针对CPU类型而言的,不同架构的CPU,需要不同的编译器;某种架构CPU对应某种类型编译器,该编译器根据该CPU架构指令集,将高级语言翻译成对应的机器码,从而让高级语言在该CPU上运行。

3、进一步理解

指令集是一款CPU处理指令及数据的规范,我们只能通过输入指定格式的指令才能操作计算机。而这个是面向程序员和用户层面的。而微架构是面向CPU设计人员的,通过设计处理器的指令执行单元,当完成整个设计时,组成的一整套执行规定指令的微处理器的架构就叫“微架构”。

前面提到了指令集就是“规范”,这也就意味着他能指导CPU设计人员通过阅读“指令集规范”这本“指南”来设计CPU。而CPU设计人员通过阅读这本规范后设计出来的CPU结构就叫“微架构”。举个简单的例子,就是小学老师教会我们如何解决一元二次方程,但题目是很多的,我们就需要通过解题方法来解决这些实际的问题。这里“解题方法”就是指令集,而“具体的题目”就是微架构了。

讲到这里更正式的表述就是“微架构”就是“指令集”的具体“实现”。所以从我们日常使用中就可以举例,AMD和英特尔同样都是采用x86指令集的处理器,但是他们处理器具体微架构是不同的,这就是典型的“实现”问题。而近期发布的Arm Cortex-A77处理器微架构,其采用的是Arm v8.2指令集,其前代微架构Cortex-A76也是采用的Arm v8.2指令集。所以从软件开发层面上讲,其汇编语言也是相同的,所以两者就可以使用相同的操作系统,基本相同的软件,而基本不需要重新开发编译。

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值