当前位置: 首页 > news >正文

傻白入门芯片设计,指令集架构、微架构、处理器内核(十一)

早期计算机出现时,软件的编写都是直接面向硬件系统的,即使是同一计算机公司的不同计算机产品,它们的软件都是不能通用的,这个时代的软件和硬件紧密的耦合在一起,不可分离。

IBM为了让自己的一系列计算机能使用相同的软件,免去重复编写软件的痛苦,在它的System/360计算机中引入了ISA(Instruction SetArchitecture,指令集体系结构)的概念,将编程所需要了解的硬件信息从硬件系统中抽象出来,这样软件人员就可以面向ISA进行编程,开发出的软件不经过修改就可以应用在其他ISA架构的系统上。

ISA用来描述编程时用到的抽象机器,而非这种机器的具体实现。从编程人员的角度来看,ISA包括一套指令集和一些寄存器,程序员知道它们就可以编写程序。在PC领域,Intel和AMD 的处理器都是基于x86指令集,因此我们不用担心换了更高性能的CPU,软件不能用,而手机上的程序不能在电脑上用,这是因为手机上的程序绝大部分是基于ARM指令集的。

  • 指令集架构:指令集主要是指CPU硬件和软件之间的接口描述,它本质上是一段二进制机器码指令集作为CPU和编译器的设计规范和参考标准主要用来定义指令的各种操作、操作数的类型、寄存器的分配、地址的格式等。
  • 微架构:指令集在CPU处理器内部的具体硬件电路的实现,我们就称为微架构,即CPU内部的各种译码和执行电路,根据不同的配置选项,我们可以基于一套指令集设计出不同的微架构。
  • 处理器内核:是在硬件层面按照指令集的设计规范,把它实现出来,可以把内核当作指令集的实物化但是硬件的设计方案各有不同,所以同一个版本的指令集可能也有不同版本的内核。

目录

一、概述

二、指令集架构

(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上运行呢?就是因为CPU设计者和编译器开发者遵循的是同一个指令集标准,“编译器最终编译生成的指令”都是CPU硬件电路支持运行的指令,每一种不同架构的CPU一般都需要配套一个对应的编译器

三、微架构

微架构(Microarchitecture),也就是处理器架构。集成电路工程师在设计处理器时,会按照指令集规定的指令,设计具体的译码和运算电路来支持这些指令的运行;指令集在CPU处理器内部的具体硬件电路的实现,我们就称为微架构,一套相同的指令集,可以由不同形式的电路实现,可以有不同的微架构。在设计一个微架构时,一般需要考虑很多问题:处理器是否支持分支预测,单发射还是多发射,顺序执行还是乱序执行?流水线需要多少级?主频需要多高?Cache需要多大?需要几级Cache?根据不同的配置选项,我们可以基于一套指令集设计出不同的微架构。以ARMV7指令集为例,基于该套指令集,面向高性能、低功耗等不同的币场定位,ARM公司设计出了CoItex-A7、Cortex-A8、CortexA9、Co1texˉA15、CortexˉAl7等不同的微架构。

四、处理器内核

在不同领域里表达的是不同的东西,是指一个东西的核心部分,具体是什么,要看你指的是什么东西。

  • 在操作系统领域,内核指的是操作系统的核心部分。通常包括中断处理、任务管理、调度等功能,同时又有微内核、宏内核、混合内核等分类。
  • 在浏览器领域,内核一般是指浏览器的渲染引擎,也是浏览器的核心部分,比如是webkit还是IE等等。你说的UC内核,指的是浏览器领域的内核概念。
  • CPU领域,处理器内核:是芯片内部的核心单元模块,是在硬件层面按照指令集的设计规范,把它实现出来,可以把内核当作指令集的实物化但是硬件的设计方案各有不同,所以同一个版本的指令集可能也有不同版本的内核,我们经常说的cotex-m3,cotex-m4,cotex-A7等等就是属于内核层面的概念。早期CPU只有一个核,但是随着技术的发展现在也出现了包含多个核的CPU。

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

注意:datasheet是指数据手册,电子元器件或者芯片的数据手册,一般由厂家编写,格式一般为PDF,内容为电子元件或者芯片的各项参数,电性参数,物理参数,甚至制造材料,使用建议等,内容形式一般为说明文字,各种特性曲线,图表,数据表等。

以ARMV8指令集生态为例,说明指令集、微架构、处理器之间的关系,如下图:

五、总结

通俗的说,Architecture是处理器的外表,Microarchitecture是处理器的内心。Architecture是设计规范,定义处理器能做什么,Microarchitecture是设计实现,描述处理器是怎么实现功能的,物理实现是具体的实现过程,可以用20nm的集成电路工艺实现处理器,也可以用40nm的工艺实现,可以用电子实现(电子计算机),也可以用量子实现(量子计算机)。 
如果用软件开发的流程来和处理器进行对比,那么Architecture就好比需求,Microarchitecture好比设计,物理实现好比真正的代码。
 

 参考资料:

书籍《大话处理器》

(9条消息) 通俗来理解 ARM芯片内核,架构,指令集,软核和硬核之间的关系_howards~~~的博客-CSDN博客_芯片内核是什么意思

(10条消息) 指令集架构、微架构、处理器架构、CPU架构、内核_qqssss121dfd的博客-CSDN博客

相关文章:

  • Qt-FFmpeg开发-打开本地摄像头录制视频(7)
  • java基于SSM的婚纱影楼管理系统-计算机毕业设计
  • 【数字信号去噪】基于matlab变分贝叶斯卡尔曼滤波器数字信号滤波【含Matlab源码 2256期】
  • 一文800字手把手教你使用Docker实现分布式Web自动化
  • 11 假设检验
  • 《痞子衡嵌入式半月刊》 第 66 期
  • 【Educoder作业】CC++线性表实训
  • 链表的有序构建和查找
  • [附源码]Python计算机毕业设计SSM焦作旅游网站(程序+LW)
  • Java入门教程(11) ——基本数据类型
  • Redis 事务
  • 公众号美食文案怎么写?怎么写才能吸引人?
  • 计算机毕业设计Java汉服配饰销售系统(源码+系统+mysql数据库+lw文档)
  • 实践案例丨CenterNet-Hourglass论文复现
  • 【2010NOIP普及组】T4. 三国游戏 试题解析
  • Jenkins + GitBlit自动构建
  • ES自定义routing的推算数字列表
  • 【pen200-lab】10.11.1.10
  • [附源码]计算机毕业设计基于springboot框架的资产管理系统设计与实现
  • 开源项目-绩效管理系统
  • 国产API管理神器Eolink也太强了吧
  • 智慧交通的待解谜题,中科视语在首届昇腾AI创新大赛交出金奖答案
  • 仿QQ音乐(HTML+CSS)
  • java计算机毕业设计跑腿管理系统源程序+mysql+系统+lw文档+远程调试
  • 【代码随想录训练营】Day57-动态规划
  • 码云线上误删主项目文件夹的恢复
  • Maiores incidunt cupiditate reprehenderit.Ipsam doloribus in.
  • Python内置函数(55)——round
  • 《C++语言程序设计》大作业(三个模块)
  • R语言使用lightgbm包构建多分类的LightGBM模型、使用predict函数和训练好的模型进行预测推理、将推理后的概率值转化为预测标签
  • 湖南2021本科批(普通类历史类)第一次征集志愿投档分数线
  • 2022年甘肃高考482分能报什么大学 482分能上哪些院校
  • 2022年全国各大高校在山东招生计划及分数
  • 浙江有哪些师范大学,年浙江师范类大学分数线排名一览表
  • 武汉设计工程学院是几本
  • 2022感恩节放假吗 中国有哪些节日会放假
  • 12种新高考3+1+2选科组合分析 怎么选科好
  • 0基础艺考最容易过的专业有哪些 通过率最高的专业是什么
  • 体育高水平怎么报名
  • 浙江2022普通类第二段平行投档分数线是多少