指令集架构、微架构、处理器架构、CPU架构

  前两天看书碰到了“CPU架构”这个词,脑子里感觉有点模糊不懂。查阅相关资料后又陆续碰到了“指令集架构”、“微架构”、“处理器架构”等词,于是就更加懵逼了。接着又陆陆续续的看了些资料,同时结合自己的一些理解,给出这些词的解释,也方便以后查阅。以下关于“指令集架构”和“微架构”的英文解释摘录于维基百科(参考资料1和2):
  
1. 指令集架构
 An instruction set architecture (ISA, 指令集架构) is an abstract model of a computer. It is also referred to as architecture or computer architecture. A realization of an ISA is called an implementation. An ISA permits multiple implementations that may vary in performance, physical size, and monetary cost (among other things); because the ISA serves as the interface between software and hardware. Software that has been written for an ISA can run on different implementations of the same ISA. This has enabled binary compatibility between different generations of computers to be easily achieved, and the development of computer families.
 An instruction set architecture is distinguished from a microarchitecture(微架构), which is the set of processor design techniques used, in a particular processor, to implement the instruction set. Processors with different microarchitectures can share a common instruction set. For example, the Intel Pentium and the Advanced Micro Devices Athlon implement nearly identical versions of the x86 instruction set, but have radically different internal designs.
 
2. 微架构
 In electronics engineering and computer engineering, microarchitecture(微架构), also called computer organization and sometimes abbreviated as µarch or uarch, is the way a given instruction set architecture (ISA, 指令集架构), or the ways the PCB is pathed in the Processing unit, is implemented in a particular processor. A given ISA may be implemented with different microarchitectures; Implementations may vary due to different goals of a given design or due to shifts in technology.

  根据以上维基百科关于“指令集架构”和“微架构”的解释以及我自己的理解。我对指令集架构的理解是:指令集架构就是规定了一堆指令,比如加、移位指令啥的。加指令可以完成加法操作,移位指令可以完成移位的操作。由于整个计算机系统是硬件和软件的集合,最后具体的指令在计算机硬件上就只是一串的二进制码对应着相应的高电平与低电平。假设加指令对应着二进制码:10010010. 在规定了指令集架构之后,还得去具体地去实现该指令集。对于加指令对应的二进制码:10010010. 具体的实现就是怎么去设计CPU里面的硬件电路啥的使得CPU收到这一串二进制码之后就做出加指令相应的操作,这就是微架构。按我的理解微架构、处理器架构、CPU架构是指的一个概念,但是有的资料好像把处理器架构和CPU架构归类到了指令集架构,这里不知道我说的对不对。
  对于同一个指令集架构可以有不同的微架构,比如 Intel Pentium 和 Advanced Micro Devices Athlon 都采用的是x86指令集,但是它们的微架构却完全不同。指令集架构是计算机的一种抽象模型。指令集架构是具体硬件和软件之间的接口。针对同一指令集架构编写的软件可以运行在采用该指令集架构而微架构不同的机器上。由于指令集架构中的指令较多,如果直接使用机器码(也就是指令对应的二进制码)来编写软件会比较困难。这样就出现了如c++等高级语言,经过高级语言编写完程序之后再经过编译器软件将高级语言编译成对应的机器码就可以在机器上执行了,因为实际的硬件只认识机器码。
  参考资料3、4和5也是对指令集架构和微架构区别等的相关解释。参考资料6对常见的指令集架构做了相关解释和列表。

参考资料:

  1. https://en.wikipedia.org/wiki/Microarchitecture#Aspects_of_microarchitecture
  2. https://en.wikipedia.org/wiki/Instruction_set_architecture#Machine_language
  3. https://www.quora.com/What-is-the-difference-between-architecture-and-microarchitecture-in-CPU
  4. https://sidkashyap.wordpress.com/2012/10/06/instruction-set-architecture-vs-micro-architecture/
  5. https://www.zhihu.com/question/23474438
  6. https://en.wikipedia.org/wiki/Comparison_of_instruction_set_architectures

千G云盘学习资料免费领取:https://blog.csdn.net/qq_42914528/article/details/81777449

                                                  欢迎关注公众号,免费领取千G云盘学习资料,和我一起成长!

                                                         

猜你喜欢

转载自blog.csdn.net/qq_42914528/article/details/81779727