早期计算机出现时,软件的编写都是直接面向硬件系统的,即使是同一计算机公司的不同计算机产品,它们的软件都是不能通用的,这个时代的软件和硬件紧密的耦合在一起,不可分离。
IBM为了让自己的一系列计算机能使用相同的软件,免去重复编写软件的痛苦,在它的System/360计算机中引入了ISA(Instruction SetArchitecture,指令集体系结构)的概念,将编程所需要了解的硬件信息从硬件系统中抽象出来,这样软件人员就可以面向ISA进行编程,开发出的软件不经过修改就可以应用在其他ISA架构的系统上。
ISA用来描述编程时用到的抽象机器,而非这种机器的具体实现。从编程人员的角度来看,ISA包括一套指令集和一些寄存器,程序员知道它们就可以编写程序。在PC领域,Intel和AMD 的处理器都是基于x86指令集,因此我们不用担心换了更高性能的CPU,软件不能用,而手机上的程序不能在电脑上用,这是因为手机上的程序绝大部分是基于ARM指令集的。
- 指令集架构:指令集主要是指CPU硬件和软件之间的接口描述,它本质上是一段二进制机器码,指令集作为CPU和编译器的设计规范和参考标准主要用来定义指令的各种操作、操作数的类型、寄存器的分配、地址的格式等。
- 微架构:指处理器的内部结构和功能,它包括了指令集架构,但还包括了处理器的其他组成部分,如缓存、寄存器和总线等
- 处理器架构:处理器架构(Processor Architecture)是指处理器的总体设计,包括了处理器的功能、特性、指令集架构和微架构等。
- 处理器内核:是在硬件层面按照指令集的设计规范,把它实现出来,可以把内核当作指令集的实物化,但是硬件的设计方案各有不同,所以同一个版本的指令集可能也有不同版本的内核。
目录
一、概述
二、指令集架构
(1)指令集
(2)架构
(3)指令集架构
三、微架构
四、处理器架构
五、处理器内核
六、总结
一、概述
ISA的出现,是处理器领域的一件大事,处理器的外部呈现和内部实现可以分离开来。处理器被分为3个层次,如下图(左)所示:
图(右)描述了处理的物理结构,包括3大部分:内核、存储器、外设与接口
SA常被简称为Architecture(架构),是处理器的一个抽象描述,ISA在处理器中的实现,被称为Microarchitecture(微架构),同样是x86的Architecture,Intel和 AMD各自使用不同的 Microarchitecture。Microarchitecture通常也可以认为等同于内核(core),一个处理器除了内核外,也还有很多其他的东西。例如:IO (Input/Output)、电源、时钟等,同样一种微架构可以出多种型号的处理器。
二、指令集架构
(1)指令集
指令集主要是指CPU硬件和软件之间的接口描述,它本质上是一段二进制机器码,CPU只能识别机器码,但是机器码是一串无意义的字符串,程序员很难看看懂这些语句,用它来开发软件,所以后面就发明了汇编语言,汇编语言本质上跟机器码一一对应的,现在有很多不同版本的汇编语言,本质上就是有不同的指令集,指令集可以简单的分为复杂指令集和精简指令集。最近比较火的RISC-V,也是指令集的一种。指令集作为CPU和编译器的设计规范和参考标准主要用来定义指令的各种操作、操作数的类型、寄存器的分配、地址的格式等。指令集也不是—成不变的也会随着应用需求的推动不断迭代更新,不断扩充新的指令。例如ARM指令集从最初的ARMV1发展到目前的ARMV8,一直在不断地发展不断添加新的指令。
(2)架构
架构主要是指某一个处理器所使用的具体指令集,比如说m6ull,他是基于ArmV7架构的,就是指它是使用armV7指令集,在大部分场合,架构等于指令集。
(3)指令集架构
ISA常被简称为Architecture(架构),指令集架构是计算机体系架构的一部分。指令集是一个很虚的东西,是一个标准规范。例如我们的交通规则,红灯停、绿灯行、黄灯亮了等—等,只有行人和司机都去遵守这套交通规则我们的交通系统才能有条不紊地运行下去。指令集也一样,芯片工程师在设计CPU时也要以指令集中规定的指令格式为标准实现不同的译码电路来支持指令集各种指令的运行。指令集最终的实现就是微架构,就是CPU内部的各种译码和执行电路。
编译器厂商在研发编译器工具或IDE时,也要以指令集为标准将我们编写的C语言高级程序转换为指令集中规定的各种机器指令。为什么我们编写的高级程序经过编译后可以直接在CPU上运行呢” />
六、总结
通俗的说,Architecture是处理器的外表,Microarchitecture是处理器的内心。Architecture是设计规范,定义处理器能做什么,Microarchitecture是设计实现,描述处理器是怎么实现功能的,物理实现是具体的实现过程,可以用20nm的集成电路工艺实现处理器,也可以用40nm的工艺实现,可以用电子实现(电子计算机),也可以用量子实现(量子计算机)。
如果用软件开发的流程来和处理器进行对比,那么Architecture就好比需求,Microarchitecture好比设计,物理实现好比真正的代码。
参考资料:
书籍《大话处理器》
(9条消息) 通俗来理解 ARM芯片内核,架构,指令集,软核和硬核之间的关系_howards~~~的博客-CSDN博客_芯片内核是什么意思
(10条消息) 指令集架构、微架构、处理器架构、CPU架构、内核_qqssss121dfd的博客-CSDN博客