|
Posted on
2017-12-03 02:31
warmbeast
阅读( 5311)
评论()
编辑
收藏
举报
关于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实现不了的功能,是某种架构独有的;而不同指令集是用来对上层代码进行不同的翻译,从而使电路实现的方式不同;
|