【嵌入式开发】到底什么是指令集?什么是微架构?他们是什么关系?

news/2024/12/15 23:58:34/文章来源:https://www.cnblogs.com/o-O-oO/p/18608929
一、简述
二、指令集
三、微架构及其与指令集的关系?
四、芯片厂、ARM公司和这些指令集、微架构是什么关系?
五、x86和ARM的竞争!

一、简述

CPU的设计遵循图灵机的基本设计思想:任何复杂的运算都可以分解为有限个基本指令的组合来完成。这些基本指令比如加、减、乘、与、或、非、跳转、Load/Store等,一般称为指令集。

Tip📌:任何复杂的运算都可以分解为指令集中的基本指令。

微架构是指计算机处理器内部的设计和实现方式。它决定了处理器如何执行指令集中定义的操作。微架构包括处理器中的寄存器、执行单元、缓存等组件,以及它们之间的连接方式。

二、指令集

我们可以把指令集理解为一套设计标准:

由于任何复杂的运算都可以拆分成最基本的运算的组合,因此人们制定出一套基本的运算指令,比如包含加、减、乘、与、或、非等几十条基本指令,这套指令就是指令集。

芯片工程师在设计CPU时,遵循这套指令集标准,设计实现不同的电路来支持指令集中各种指令的运行。

由于电路设计的实现方式不是唯一的,即指令集最终的实现有各种不同的设计架构,这个架构就是微架构,其实就是CPU内部的各种译码和执行电路设计方式。

编译器厂商在研发编译器工具或IDE时,也以这套指令集为标准,将我们编写的C语言高级程序转换为指令集中规定的各种指令。

正因为CPU研发者、编译器开发者都遵循相同的指令集标准去设计,才使得我们编写的高级程序经过编译后,可以直接在CPU上运行。基于指令集从CPU设计到编译器,从编译器到高级语言编写的应用程序,一个完整的计算机系统生态就建立起来了。

目前市面上常见的指令集有ARM指令集、x86指令集、RISC-V指令集(一种新兴的开放式指令集)。

关于RISC-V指令集

RISC-V指令集免费开源,和ARM一样,同属于RISC指令集,两者都可以看作RISC指令集的一个分支。RISC-V属于RISC的第五个版本,因此叫作RISC-V。
目前已经有公司基于该指令集开发出自己的处理器,如平头哥半导体有限公司发布的玄铁910。

Tip📌:指令集也会随着应用需求的推动不断迭代更新,不断扩充新的指令。例如ARM公司的指令集,从最初的ARM V1发展到目前的ARM V8。

三、微架构及其与指令集的关系

集成电路工程师在设计处理器时,会按照指令集规定的指令,设计具体的译码和运算电路来支持这些指令的运行;指令集在CPU处理器内部的具体硬件电路的实现,我们就称为微架构

(该图片来自“小破站”博主:It_server技术分享)

Tip📌:一套相同的指令集,可以由不同形式的电路实现,可以有不同的微架构。在设计一个微架构时,一般需要考虑很多问题:

处理器是否支持分支预测?
流水线需要多少级?
主频需要多高?
Cache需要多大?
需要几级Cache?

... ... (等一系列问题)

根据不同的配置选项,我们可以基于一套指令集设计出不同的微架构

以ARM V7指令集为例,基于该套指令集,面向高性能、低功耗等不同的市场定位,ARM公司设计出了Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A15、Cortex-A17等不同的微架构。

基于一款相同的微架构,通过不同的配置,也可以设计出不同的处理器类型(上图中的4.系统架构)。不同的SoC厂商,获得ARM公司的Cortex-A9微架构授权后,基于该内核架构可以搭建出不同的SoC芯片,并最终流向市场。

3聊聊常说的X86指令集

另外一个常见的指令集是x86指令集,目前能获得X86指令集授权,并基于该指令集设计微架构和处理器的厂商有三家:Intel、AMD和上海的兆芯。

综上,指令集、微架构与处理器三者之间的关系如下图所示。

Intel的酷睿处理器,无论是i3、i5还是i7,都基于相同的微架构,面向市场的不同定位和需求,在处理器主频、核数、Cache大小等方面进行差异性配置,设计出不同市场定位的处理器。

AMD系列的处理器也是如此,基于Zen3微架构,通过不同配置,可以设计出锐龙3、锐龙5、锐龙7等面向不同市场定位的处理器。

Tip📌:微架构不等于SoC

微架构一般也称为CPU内核,在一个ARM SoC芯片上,我们把CPU内核和各种外设IP通过AMBA总线连接起来,构成一个片上系统,即System OnChip,简称SoC。

四、芯片厂、ARM公司、和这些指令集、微架构有什么关系?

并不是所有的芯片厂商都有能力和精力去设计微架构。除了ARM公司和几个技术积累比较深厚的芯片巨头,其他小芯片厂商、创业公司更倾向于直接使用ARM公司设计的微架构来快速搭建自己的SoC芯片。

这种设计模式可以大大减少芯片的开发难度和成本。ARM公司自己不生产芯片,也不卖芯片,主要靠IP授权盈利。

IP授权?

ARM公司的IP授权是指ARM公司授权给其他公司使用其知识产权(Intellectual Property,简称IP)的权利。
面对不同的芯片厂商和市场需求,ARM公司有多种灵活的授权方式,目前主要有以下三种:

指令集授权

可以基于该指令集实现自己的微架构,甚至可以对该指令集进行扩展或缩减,有这个能力的公司不多,大家熟知的比如华为、高通、龙芯。

内核授权

也叫做微架构授权。
ARM公司根据自家的指令集标准设计出不同的微架构,其他芯片公司购买这个微架构,即CPU内核,然后使用AMBA总线和各种IP模块连接,就可以快速搭建出一个片上系统,即SoC芯片,封装测试通过后就可以快速推向市场销售了。

也许你想知道什么是...

【AMBA总线】
AMBA(Advanced Microcontroller Bus Architecture)总线是ARM公司推出的一种片上总线架构,用于连接集成电路系统中的各种模块和外设。

【IP模块】
在ARM公司的生态系统中,IP模块是指各种功能模块的知识产权,包括处理器核心、外设控制器、存储控制器、总线控制器、加速器等。这些模块已经经过ARM公司的设计和验证,可以直接集成到其他公司的芯片中,以实现芯片的快速设计和开发。

ARM的内核授权客户有很多,国外的公司有三星、飞思卡尔、ST、德州仪器,国内的公司有海思、全志、联发科等。

微架构授权的特点是客户不能对ARM的CPU内核(微架构)进行修改。为了满足不同客户的不同需求,基于一套相同的指令集,ARM公司会设计出不同的微架构,甚至会开放微架构中的一些可配置选项(如Cache大小),以方便客户搭建出差异化的处理器产品。ARM指令集与微架构如下表所示。

使用授权

如果你发现了不错的商机,比如制造某个小电子产品,因为你没有那么多精力和成本从0开始设计只满足你需求的处理器,此时就可以考虑使用授权。
直接使用已经封装好的ARM处理器,只需要关心自己的业务设计,快速做出产品推向市场。(大多数企业做工业产品制造的都是用这种授权方式,其实就是直接买芯片用,比如我们玩STM32做一些小东西)

五、x86和ARM的竞争

当前的主流处理器市场基本上被X86和ARM瓜分。X86指令集不授权,不开放内核,靠X86专利垄断制造行业壁垒,抬高其他处理器厂商的准入门槛。

所以你能看到市面上的X86 CPU厂家只有那几个巨头(除了Intel、AMD、兆芯这三家公司,其他公司一般无法获得授权去设计和生产自己的X86处理器)。

ARM则不同,通过开放ARM指令集授权,其他公司可以基于授权的指令集去设计自己的微架构和SoC芯片,或者基于ARM官方的微架构直接去设计自己的SoC处理器。

所以百花齐放的ARM处理器市场构建了一个庞大的ARM系统生态,垄断移动市场。比如基于ARM V8指令集,市场上出现的不同微架构,以及各种处理器和芯片厂商。他们和ARM公司一起构建了整个ARM开发生态。

直呼:开源精神,YYDS!!

原创 车载系统攻城狮

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/853542.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

福卫兵-多源异构数据采集与融合应用综合实践

这个项目属于哪个课程 <首页 - 2024数据采集与融合技术实践 - 福州大学 - 班级博客 - 博客园 (cnblogs.com)>这个作业要求在哪里 <综合设计 - 作业 - 2024数据采集与融合技术实践 - 班级博客 - 博客园 (cnblogs.com)>组名、项目简介 <组名:福小兵,项目需求:实…

福卫兵——多源异构数据采集与融合应用综合实践

福州大学多模态网络舆情分析与可视化系统序号 信息类别 内容描述1 这个项目属于哪个课程 数据采集与融合综合实践2 组名、项目简介 组名:福小兵,项目需求:实时舆情监控系统,项目目标:为福州大学提供舆情监控与决策辅助工具,技术路线:使用 Flask 后端、Memfire(PostgreSQ…

SQL优化之《预警事件统计》

在做一件什么事情: 在首页大屏上,可以通过各种维度展示事件统计信息。 sql如下:点击查看代码 SELECTcount( * ) count,camera_code groupName FROMalarm_event WHEREalarm_event.illegal_tag ="24"AND alarm_event.organization_code ="310000110000"AN…

树形dp专项测试1

A. Promises I Cant Keep 题目意为求以每个点为根时的期望得分的最大值,换根DP即可。 式子不太难推,半个小时就出来了。太长了不往这写了。Code#include<bits/stdc++.h> #define ll long long #define il inline #define read(x){\char ch;\int fu=1;\while(!isdigit(c…

测试使用自己编译的WPF框架(本地nuget 包引用)

上一篇博客 本地编译WPF框架源码 - wuty007 - 博客园 说到自己在本地编译WPF 框架源码,并在本地 源码 的 \wpf\artifacts\packages\Debug\NonShipping 路径下打包处了 对应的 nuget包 接下来实操测试一下如何使用这些编译出来的包 一、首先为了方便看到测试的效果,我在WPF源…

安全帽佩戴监测摄像机

安全帽是工业生产中必不可少的安全防护装备,能有效保护工人头部免受意外伤害。然而,管理人员往往难以监督工人是否正确佩戴安全帽,这可能导致一些潜在的安全隐患。为了解决这一问题,一种新型的安全帽佩戴监测摄像机应运而生。安全帽是工业生产中必不可少的安全防护装备,能…

工作服穿戴监测识别摄像机

工作服穿戴监测识别摄像机是一种现代智能监控设备,通过将摄像机集成到工作服中,实现实时监测、识别和记录员工的工作状态和环境变化,从而提高工作效率和安全性。这种技术在工业生产、建筑施工、安保巡逻等领域具有广泛应用前景。工作服穿戴监测识别摄像机是一种现代智能监控…

第2章 C# 语言基础

第2章 C# 语言基础 难点提纲 mindmap 第2章 C#语言基础数值类型数值字面量溢出检查特殊的浮点值decimal舍入误差数组简化初始化的<br/>两种方式变量和参数引用局部变量引用返回值语句模式switch命名空间命名范围名称隐藏外部别名全局命名空间 2.2 语法 2.2.1 标识符和关键…

《Django 5 By Example》阅读笔记:p551-p560

《Django 5 By Example》学习第 20 天,p551-p560 总结,总计 10 页。 一、技术总结 1.custom model field (1)示例 courses/fields.py from django.core.exceptions import ObjectDoesNotExist from django.db import modelsclass OrderField(models.PositiveIntegerField):de…

C++基础学习--随记

博客地址:https://www.cnblogs.com/zylyehuo/参考“C++基础与深度解析”一、预备知识 // c++常用工具 /usr/bin/time //查看程序用了多少时间(Linux自带) $ sleep 1 $ /usr/bin/time sleep 1valgrind //分析是否有内存泄漏(软件)cppreference.com //"百科全书"…

厨师帽佩戴识别摄像机

厨师帽佩戴识别摄像机是一种用于识别厨师是否佩戴帽子的智能设备,其作用在于强制执行食品安全卫生标准,防止头发掉落入食物中。该摄像机利用人工智能和图像识别技术,能够识别厨师是否佩戴厨师帽。当摄像机检测到厨师未佩戴帽子时,会触发警报或者发送通知给相关人员进行处理…

在PyCharm/Idea中快捷放大和缩小代码界面

【File】->【Setting】->【keymap】 在Keymap中找到Increase Font Size,双击,选择Add Mouse Shortcut 在弹出的Mouse Shortcut界面,按住 Ctrl 并同时向上滚动鼠标滚轮,实现放大代码界面的设置。 在Keymap中找到Decrease Font Size,双击,选择Add Mouse Shortcut …