前两天看书碰到了“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.

根据以上维基百科关于指令集架构和微架构的解释以及我自己的理解。我对指令集架构的粗略理解是:指令集架构就是设计了一堆指令(数据处理和存储操作、算术和逻辑操作以及控制流操作等,具体的就是一段一段的机器二进制编码)。由于整个计算机系统是硬件和软件的集合,最后指令的具体执行就是在计算机硬件(主要是CPU)上的二进制机器码对应着的高电平与低电平的变化。假设加指令对应着二进制机器码:10010010. 在设计完指令集架构之后,还得去具体地去实现该指令集。具体的实现就是怎么去设计CPU里面的硬件电路啥的使得CPU收到这一串二进制机器码之后就做出指令集架构规定的加指令相应的操作并得到对应的结果。指令集的硬件实现就是微架构处理器架构和CPU架构是一个比较模糊的概念,它们同时包含了指令集架构和微架构的内容。
     对于同一个指令集架构可以有不同的微架构,比如 Intel Pentium 和 Advanced Micro Devices Athlon 都采用的是x86指令集,但是它们的微架构却完全不同。不同的微架构可能是考虑到了性能、物理尺寸以及成本多方面的问题,具体可看如下摘录自维基百科的介绍:

  • An ISA specifies the behavior of machine code running on implementations of that ISA in a fashion that does not depend on the characteristics of that implementation, providing binary compatibility between implementations. This enables multiple implementations of an ISA that differ in performance, physical size, and monetary cost (among other things), but that are capable of running the same machine code, so that a lower-performance, lower-cost machine can be replaced with a higher-cost, higher-performance machine without having to replace software. It also enables the evolution of the microarchitectures of the implementations of that ISA, so that a newer, higher-performance implementation of an ISA can run software that runs on previous generations of implementations.

指令集架构是计算机的一种抽象模型。指令集架构是具体硬件和软件之间的接口。针对同一指令集架构编写的软件可以运行在采用该指令集架构而微架构不同的机器上。由于指令集架构中的指令较多,如果直接使用机器码(也就是指令对应的二进制码)来编写软件会比较困难。这样就出现了如c++等高级语言,经过高级语言编写完程序之后再经过编译器软件将高级语言编译成对应的机器码就可以在机器上执行了,因为实际的硬件只认识机器码。
     参考资料3、4和5也是对指令集架构和微架构区别等的相关解释。参考资料6对常见的指令集架构做了相关解释和列表。
  
---------------------------------------------分割线(2020.09.04)------------------------------------------------------------------------

指令集架构有很多的分类方法,主要的分类通过架构的复杂度来分类,可以分为复杂指令集计算机(complex instruction set computer, CISC) 和精简指令集计算机(reduced instruction set computer, RISC) 。复杂指令集计算机有许多特别的指令,它们中的一下很少在程序中使用。精简指令集计算机通过只实现经常被使用的指令来达到对复杂指令集计算机精简的目的,对于一些不太经常使用的操作可以通过经常使用的简单指令的组合来实现。
     复杂指令集计算机简单的理解就是提供的指令很多,也都很复杂。以 intel 的 x86 架构为代表,主要针对的操作系统是微软的 Windows 和苹果的 maxOS。另外 Linux,一些 UNIX 等,都可以运行在复杂指令集架构的微处理器。(参考与这里)
     精简指令集计算机简单理解就是提供的指令很少,也都比较简单,只是一些基础的指令。以 ARM 公司的 arm 架构为代表。当前有 UNIX、Linux 以及包括 iOS、Android、Windows Phone 等在内的大多数移动操作系统运行在精简指令集的处理器上。(参考与这里)

内核,在不同领域里表达的是不同的东西,是指一个东西的核心部分,具体是什么,要看你指的是什么东西。
(参考于这里):

  • 在操作系统领域,内核指的是操作系统的核心部分。通常包括中断处理、任务管理、调度等功能,同时又有微内核、宏内核、混合内核等分类。
  • 在浏览器领域,内核一般是指浏览器的渲染引擎,也是浏览器的核心部分,比如是webkit还是IE等等。你说的UC内核,指的是浏览器领域的内核概念。
  • CPU领域,一般都叫核心,简单的理解就是CPU的核心部分,早期CPU只有一个核,但是随着技术的发展现在也出现了包含多个核的CPU。

现在举个简单的例子,ARM公司就是一个设计指令集架构的公司,一些芯片生产公司购买ARM公司的授权来生产芯片就相当于是在生产微架构。做嵌入式工作的都知道,经常在芯片的datasheetdatasheetdatasheet里面看到说该芯片是基于ARM某某内核,这里的内核指的是指令集架构。

参考资料:

  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

指令集架构、微架构、处理器架构、CPU架构、内核相关推荐

  1. android物联网开发技术架构,Android 相关七种 CPU 架构适配,android七种

    Android 相关七种 CPU 架构适配,android七种 转载请注明出处:http://blog.csdn.net/kester_/article/details/71055901 NDK 开发 ...

  2. android app 64位架构升级 适配64位cpu架构

    一. 本质 so库的升级 二.so库升级 1.so库检查 1,首先设置: abiFilters "armeabi-v7a","arm64-v8a",然后编译出对 ...

  3. 一文看透指令集、微架构、CPU

    一.微处理器的指令集架构(Instruction Set Architecture)分类 复杂指令集运算(Complex Instruction Set Computing,CISC): 精简指令集运 ...

  4. 华为云CPU架构鲲鹏计算ARM服务器架构详解

    华为云服务器CPU架构分为x86和鲲鹏计算,鲲鹏计算的云服务器处理器是基于Arm架构,采用RISC精简指令集(RISC),鲲鹏CPU架构相对于X86 CPU架构具有更加均衡的性能功耗比,云服务器吧来详 ...

  5. java基础—java内存模型(JMM)CPU架构、缓存一致性、重排序、JMM的实现、JMM保证可见性、有序性问题的详解

    java基础-JMM(CPU架构.JMM保证可见性.有序性) 文章目录 java基础-JMM(CPU架构.JMM保证可见性.有序性) CPU架构 说一说现在计算机存储器的结构层次 使用CPU缓存,会导 ...

  6. IOT-OS之RT-Thread(二)--- CPU架构与BSP移植过程

    文章目录 一.RT-Thread内核简介 二.RT-Thread CPU架构移植 2.1 Cortex-M CPU 架构简介 2.2 RT-Thread 中断机制 2.3 CPU 架构移植 三.RT- ...

  7. 华为鲲鹏云服务器系列的规格,华为云服务器CPU架构x86计算和鲲鹏计算的区别是什么?...

    华为云服务器CPU架构鲲鹏计算和x86计算有什么区别?如何选择CPU架构?通用的CPU架构为x86,华为云鲲鹏是基于ARM架构,性能大幅提升,久云大使来详细说下华为云服务器CPU架构鲲鹏计算和x86计 ...

  8. Android 的7种CPU架构

    目前android支持如下7中CPU架构: armeabi 第5代 ARM v5TE,使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢(只支持armeabi) armeabi-v7a 第7代 A ...

  9. Android 相关七种CPU架构适配

    NDK开发时会涉及到CPU架构的适配,不同的机器上可能会有不同的CPU架构,也就是说,翻译到机器上使用的规则不一样,Android上有7种CPU架构. 1.armeabi 2.armeabi-v7a ...

最新文章

  1. C#中统计程序运行时间
  2. oracle:集合查询
  3. [转载]JAVA实现鼠标右键功能
  4. java 使用本机代理_Java与本机代理–他们所做的强大功能
  5. sql 为什么要用where 1=1或者where 1 =0 ?
  6. LintCode 802. 数独(回溯)/ LeetCode 37. 解数独
  7. python调用系统_python 执行系统命令
  8. python资料-大牛分享python资料
  9. 没有资本怎么创业的思维:不是钱,是实现。
  10. SSM框架整合环境搭建
  11. android 7.0下载地址,android 7.0 Downloadprovider 下载流程
  12. 计算物体自由下落的距离
  13. 后台获取访问端的真实ip地址
  14. Lemp + Wordpress 快速搭建个人博客
  15. Try HP DL388 Gen9 and Dell PowerEdge R320 (by joshua)
  16. C++实现远程桌面集群软件
  17. 统考英语和计算机可以插u盘吗,英语B统考前用U盘里面的文件复制到机考电脑上会被抓到吗...
  18. 反工厂的零工族,他们的出路在哪里
  19. java 解压缩文件
  20. ftrack获得2亿美金支持

热门文章

  1. Android工作经验6年,Android事件分发机制收藏这一篇就够了,分享PDF高清版
  2. 华为电脑Linux进pe,华为 matebook X Pro怎样用PE重装系统win10
  3. win7资源管理器经常崩溃shellext.dll_unloaded
  4. C++ typename的起源与用法
  5. 爱了!京东新产算法宝典在Github上爆火,成功激起了老夫的少女心!
  6. 华为计算机平台芯片,华为连发两款AI芯片,计算力远超谷歌及英伟达
  7. 01-Intellij IDEA搭建SSM(SpringMVC+Spring+Mybatis+Maven)框架(上)
  8. idea中开启多个线程运行多个项目
  9. java核心技术卷一,java面试题大全带答案
  10. hdu 1849 Rabbit and Grass Nim博弈