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

article/2025/10/7 23:39:30

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

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

三、微架构

微架构(Microarchitecture)是指处理器的内部结构和功能,它包括了指令集架构,但还包括了处理器的其他组成部分,如缓存、寄存器和总线等。因此,微架构比指令集架构更加全面。可以把微架构看作是一个处理器的“骨架”,它定义了处理器的逻辑构造和功能,而指令集架构则是微架构的一部分,它规定了处理器能够执行的指令集。微架构定义了处理器的逻辑构造和功能,以及如何通过硬件电路实现这些功能。因此,一个相同的指令集可以由不同形式的电路实现,从而形成不同的微架构(集成电路工程师在设计处理器时,会按照指令集规定的指令,设计具体的译码和运算电路来支持这些指令的运行)。不同的微架构可能具有不同的性能和特性,并且可能适用于不同的应用场景。例如,对于同一个指令集,一个微架构可能更适用于高性能的计算,而另一个微架构则更适用于低功耗的设备。

在设计一个微架构时,一般需要考虑很多问题:处理器是否支持分支预测,单发射还是多发射,顺序执行还是乱序执行?流水线需要多少级?主频需要多高?Cache需要多大?需要几级Cache?根据不同的配置选项,我们可以基于一套指令集设计出不同的微架构。以ARMV7指令集为例,基于该套指令集,面向高性能、低功耗等不同的币场定位,ARM公司设计出了CoItex-A7、Cortex-A8、CortexA9、Co1texˉA15、CortexˉAl7等不同的微架构。

四、处理器架构

处理器架构(Processor Architecture)是指处理器的总体设计,包括了处理器的功能、特性、指令集架构和微架构等。它定义了处理器的整体特性和功能,以及处理器的各个部分如何协同工作以实现这些功能。

处理器架构是处理器设计的基础,它为软件开发人员提供了一个统一的接口,使得他们可以为处理器开发应用程序。处理器架构还为硬件开发人员提供了一个参考模型,帮助他们设计出符合架构要求的处理器。处理器架构的设计决定了处理器的性能、能效比和可扩展性等方面的重要特性。

五、处理器内核

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

  • 在操作系统领域,内核指的是操作系统的核心部分。通常包括中断处理、任务管理、调度等功能,同时又有微内核、宏内核、混合内核等分类。
  • 在浏览器领域,内核一般是指浏览器的渲染引擎,也是浏览器的核心部分,比如是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博客


http://chatgpt.dhexx.cn/article/dKRpHgtY.shtml

相关文章

VS2012 处理器架构“x86”不匹配 通过配置管理器更改您的项目的目标处理器架构...

在VS2012中新建一个项目。然后引用之前VS2010写的一个基础类库。 VS2012编译通过但是出现警告。 所生成项目的处理器架构“MSIL”与引用“E:\work\C#\Dt.Utility\bin\Debug\Dt.Utility.exe”的处理器架构“x86”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更…

《嵌入式 - 嵌入式大杂烩》 处理器架构与指令集

大家天天都在使用手机,你知道你的手机使用的什么处理器?处理器又是何种架构呢?今天笔者就来谈谈处理器的架构和指令集。 我们知道一台手机最重要的就是处理器,也就是处理器,那么什么是处理器呢? 处理器就是一堆数字电路(架构)以高低电平的各种组合实现了各种基本的运…

『已解决』.NET报错:所生成项目的处理器框架“MSIL”与引用“wdapi_dotnet1021”的处理器架构“AMD64”不匹配

📣读完这篇文章里你能收获到 处理器架构“AMD64”不匹配问题的处理方案,只需要鼠标点几下就解决这篇文章强烈建议收藏!!!免得下次找不到 文章目录 一、现象二、解决方案 一、现象 .NET C#错误:所生成项目…

处理器架构——多发射处理器技术

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 多发射处理器总结数据冒险动态调度-Tomasulo算法GPU与CPU的多发射技术对比(待考究) 多发射处理器总结 无论是动态多发射还是静态多发射&…

认识多处理器架构

常见的多处理器架构有哪些? SMP(Symmetric Multi-Processor) 对称多处理器结构NUMA(Non-Uniform Memory Access) 非统一内存访问架构MPP(Massive Parallel Processing) 大规模并行处理结构 他们都是如何工作的? SMP 所谓对称多处理器结构&#xff0c…

.NET报错:所生成项目的处理器框架“MSIL”与引用“xxx”的处理器架构“AMD64”不匹配

一、现象 所生成项目的处理器架构“MSIL”与引用“System.Data.SQLite, Version1.0.60.0, Cultureneutral, PublicKeyTokendb937bc2d44ff139, processorArchitecturex86”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目…

Linux 系统查询处理器架构

注意 给出的命令大多需要 root 权限才能运行,请确保您现在已经处于有 root 权限的环境下。 如果您现在没有切换到 root 账户下,那么请使用 su 或者 sudo -s 命令来进行切换。 确认处理器架构 执行下面的命令,根据输出结果查表&#xff1a…

自己编写自动同步脚本

Step1: 运行脚本,将结果保存到sync_date.log下; 执行的时候,将地址修改为slave ip --databases 指定为需要同步的db_name user 和password修改为对应的账号密码; /* #!/bin/bash #define sync function sync(){ apt-table-sync --execut…

Typora+Git+Gitee实现个人笔记自动同步

TyporaGitGitee配置markdown笔记自动同步 配置gitee 注册gitee账号 在你自己电脑上(这里以windows举例),生成公钥 打开你的公钥文件,复制全部内容 找到设置,添加公钥,将复制内容粘贴到指示位置,确定 创建一个仓库,找到你创建的仓库页面,复制ssh链接 配置Git软件 下载G…

FreeFileSync 同步自动备份RealTimeSync(自动同步工具)

,因此在文件大小相同时检测不同文件的唯一方法是阅读其内容。 (1)文件仅存在于一侧 ->仅在左侧 ->仅在右侧 (2)文件存在于双侧 ->相同文件 ->内容不同 3.3 按文件大小比较 如果文件大小相同&#xff…

如何实现文件的双向自动同步备份?

如果一份文件可以自动在你的2个存储硬盘里进行备份保存,你觉得如何呢?对于一个每天面对很多重要文件的上班族来说,每天要保存很多的资料文件。但是总是担心公司电脑的损坏,造成公司重要资料文件的全部丢失。 最开始没有接触到自动数据备份的…

批处理之FTP自动同步文件

1. FTP.exe工具 ftp.exe是Windows系统提供的一个FTP客户端命令行工具。通过ftp.exe可以完成登录,显示远程文件、下载、上传、重命名、删除远程文件等操作。 1.1. 命令参数 FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-A] [-x:sendbuffer] [-r:recvbuffer]…

十二.deepin文件自动同步阿里云盘

timeshift作用强大,可以备份系统和恢复历史版本,但不够直观,主要是我也没用它恢复过,在deepin论坛看到有人制作了一款工具,可以按文件夹自动同步到阿里云盘,这对于及时把重要数据恢复到其他电脑太有用了。至…

Xp计算机同步时间,windows xp时间不准不能自动同步的解决办法

起因是老妈的电脑上时间老是不准确,每次都慢几个小时,以至于有时做饭都不知道时间,经过检查,初步确认是主板CMOS电池电量不足了,本来也是没什么大不了的事情,反正有手机可以看时间,但是因为老妈…

设置swagger文档自动同步到YApi

SpringBoot项目引入swagger文档后,每次都要手工维护接口到YApi很麻烦,有没有设置自动化同步的办法?操作如下: 进入YApi后添加项目 添加完项目后,点击设置,配置基本项目信息,由于我这边走的是网关…

实现电脑文件自动同步到FTP

在电脑使用的过程中最害怕的就是文件丢失,尤其是办公电脑,里面包含很多公司重要,一旦遗失会造成不可挽回的损失,所以我们通常是要对电脑本地文件进行备份,有的人喜欢备份到网盘,有的人会备份到U盘或者移动硬…

计算机无法自动矫正时间,怎么设置电脑上的时间自动同步进行校正

怎么设置电脑上的时间自动同步进行校正 腾讯视频/爱奇艺/优酷/外卖 充值4折起 今天给大家介绍一下怎么设置电脑上的时间自动同步进行校正的具体操作步骤。 1. 打开电脑,进入桌面,在任务栏的右下角点击时间,如图,弹出时间日期的窗口: 2. 点击窗口中的“更改日期和时间设置”…

提交代码到Gitlab自动同步备份到Gitee

一.明确需求,日常工作中使用的代码管理工具是Gitlab,但是我们需要Gitee也要有一份跟Gitlab代码库中的同样的代码并且Gitlab有新的提交就自动同步到Gitee。 二.入坑前准备工作 ①分别注册gitlab账户和gitee账户 ②需要在gitlab添加一个SSH密钥&#xff…

电脑自动同步服务器时间bat,关于电脑时间自动同步校准方法

据网友反应,电脑操作系统的时间总是不对,经常性的出现电脑时间总是快,还有其他客户可能会遇到电脑时间变回N年前,那么下面学习啦小编就教大家一个超级好用的电脑时间自动同步校准方法。 电脑系统时间总是不对变快 变慢自动同步校准…

linux设置时间自动同步

1.查看和手动修改时间 查看时间 date 修改时间 date -s ‘yyyy-mm-dd hh:mm:ss’ 2.使用ntp服务自动同步网络时间 1.检测是否安装和启动服务 service --status-all2.安装ntp 服务 yum install ntp3.同步时间 ntpdate ntp.api.bz3.设置开机自启 systemctl enable ntpd.s…