Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一文了解指令集和微架构

一文了解指令集和微架构

作者头像
Defry
发布于 2022-04-19 10:23:33
发布于 2022-04-19 10:23:33
2.5K0
举报
文章被收录于专栏:Vehicle攻城狮Vehicle攻城狮

1

指令集

建设一栋大楼的基本元素有:水泥、砖头、钢材等原材料,但不同的构造过程则会呈现不同的建筑形式,其中建造图纸起到了很大的指导作用。

同样, CPU从表象上看虽然形式很多,但基本电路都由晶体管构成,例如常见的MOS管。

通过晶体管等基本电子元器件的组合可构成基本的逻辑电路:如与门、非门、与非门等。

这些基本逻辑电路通过不同的逻辑组合可分别完成不同的功能,就好比“把大象放进冰箱的段子”,首先打开冰箱门-->然后把大象放进去-->最后关上冰箱门。通过这些逻辑组合使动作具有了意义,而这些实现特定功能的逻辑组合集合就是指令集,如基本的加减运算。

指令集是一个标准,其会随着需求变化不断添加新的指令或优化。同样,指令集发生变更后,工程师在设计CPU时也需要在硬件电路上增加对应的电路模块来支持变更的指令,配套的编译器也会随之升级。我们在玩51、STM32等单片机时需要相应的编译器来实现相应程序开发就是这个道理。而在任何一款遵循同一指令集架构实现的处理器上,开发的应用无须做任何修改便可以运行。

2

指令集与机器码的桥梁-编译器

无论处于上层的应用程序多么酷炫吊炸天,其在处理器上执行就必须被翻译成“机器语言”,然后通过0或1的排列组合去操作硬件实现功能。翻译官这个角色就是编译器的活,它将软件与硬件世界连接了起来。编译器在这个过程中,要经过编译、汇编、链接等几个步骤, 最后生成"可执行文件",可执行文件中保存的是二进制机器码,这串机器码可以直接被CPU读取和执行。

上图表示在指令寄存器中正在执行的一段为00101110机器码,左四位0010为指令集LOAD_A(汇编代码,将数据放到寄存器A),右四位1110(RAM地址,就是要去取这个地址上的8bit 机器码数据放到寄存器A)。注意到0010这4bit数据先被放入一个门电路中,输出结果就是1bit(拉高电压),去控制内存读取这一条wire。这个图只突出显示了开启内存读取一条wire的原理,没有显示在这一步指令中所有门电路原理图。

3

为啥根据指令集设计CPU而不是先设计CPU再指令集

设计一款CPU的过程就好比建房子,我们建房子肯定先要以一定的建设标准和规范为前提,依据一定的工程标准不仅使建设过程有序进行更重要的是最终能被验收和被大家所接受。这也类似于我们软件开发流程,必须先有需求再有开发,否则开发的软件都没有应用的场景。因此凭空设计一款CPU,首先会不会被厂商用另说,很多相应的配套也难以支持更何谈让软件开发人员进行开发和推广了。所以指令集作为一种标准规范,用于规范芯片设计工程师及编译器开发工程师。

因为芯片与集成开发环境-IDE都遵循相同的指令集标准,所以高级语言编写的程序经指定编译器编译后能直接运行在对应的CPU上,反之则不能运行。

所以,CPU在设计之前,就需要先设计一套指令集或者说使用现成的指令集(如ARM、X86指令集)并在硬件电路上实现这些指令。CPU设计好后,还需要配套的编译器,编译器也需要参考这个指令集标准,将我们编写的C程序、C++等程序编译成CPU硬件电路支持的加减乘除、与或非等指令,我们的程序才能在CPU上运行。

4

指令集与微架构

微架构是将指定指令集在处理器中如何执行实现的方法,同现实生活中解决相同问题有很多途径的原理一样:同一指令集可以有不同的微架构,因同一指令可以通过不同的电路单元或组合来实现。例如英特尔基于x86指令集的微架构就很多代:

再比如ARM M系列处理器基于Armv6-M指令集所构建的M0/M1等微架构:

我们曾接触的STM32F4系列单片机就是基于Armv7-M指令集的ARM Cortex-M4内核:

不同的微架构有着不同的用途和性能,总体来说一大堆的运算单元、逻辑单元、寄存器等在各种总线和控制线的连接下组成了CPU的微架构。因此处理器架构是微架构和指令集架构的结合,指令集是处理器的语言,而微架构是具体的实现。

5

指令集分类

目前市面上存在两种指令集类型:

1、Reduced Instruction Set Computing (RISC) 精简指令集:比如ARM、MIPS和大火的RISC-V等。

2、Complex Instruction Set Computing (CISC) 复杂指令集:比如Intel、AMD的X86等。

其中x86架构主要占据传统PC市场,善于处理大数据;ARM占据移动市场,善于处理快数据;而RISC-V则依靠自己精简的优势在数据传输领域占据优势。除此之外,其他指令集架构也占据部分市场如MIPS、Power等。

无论是CISC还是RISC,除了努力巩固自己的性能优势,加强产品的性能外,还需要汲取双方产品的特色,取长补短,期望有所突破,例如英特尔逐渐开始拥抱RISC-V。不过无论如何,未来的CPU肯定在朝着高性能、低功耗的方向发展。谁能在低功耗下提供高性能,谁就有希望获得成功

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Vehicle攻城狮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Unity手游实战:从0开始SLG——ECS战斗(五)浅谈CPU缓存命中
ECS在游戏里的运用,最初是用来解决预测和回放的问题。但是由于面向数据的编程结构,天然符合了现代CPU的编程思想,所以目前UnityECS主要还是推动展现性能方面的优势。那么ECS是如何提升程序性能的呢?最重要的其实就是CPU的缓存命中。讲CPU命中之前,我们先说说CPU的一些基础知识。
放牛的星星
2020/07/10
1.6K0
Unity手游实战:从0开始SLG——ECS战斗(五)浅谈CPU缓存命中
四大主流芯片架构(X86、ARM、RISC-V和MIPS)
X86是微处理器执行的计算机语言指令集,指一个Intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。1978年6月8日,Intel 发布了新款16位微处理器 8086,也同时开创了一个新时代:X86架构诞生了。 X86指令集是美国Intel公司为其第一块16位CPU(i8086)专门开发的,美国IBM公司1981年推出的世界第一台PC机中的CPU–i8088(i8086简化版)使用的也是X86指令。
全栈程序员站长
2022/09/01
18.8K0
一文带你厘清国产 CPU
有没有碰到过这种情况?开发出一款软件产品,交付给客户,客户说安装不上。经过一番调查,原因让人哭笑不得,你以兆芯为目标进行开发,客户电脑却用的是龙芯。这也不能怪客户,经过多年的市场培育,在大多数人的认知里,电脑就是 Windows 系统加上英特尔处理器。
云水木石
2023/12/13
6490
一文带你厘清国产 CPU
ARM、MIPS与RISC-V指令集有什么区别?
ARM、MIPS 和 RISC-V 是三种常见的精简指令集计算(RISC,Reduced Instruction Set Computing)架构,各自都有其特点和设计理念。
不脱发的程序猿
2025/02/25
3590
ARM、MIPS与RISC-V指令集有什么区别?
RISC-V架构系列之1:指令集和特权模式
从2010年开始的RISC-V 项目,已经有10年的时间,RISC-V基金会先后批准了RISC-V Base ISA, Privileged Architecture,Processor Trace等规范。RISC-V对Linux的基本支持也已经完成。本文尝试通俗易懂的介绍RISC-V对于Linux的基本支持,包括指令集和异常处理。内存管理,迁移到RISC-V,UEFI,KVM等支持,欢迎继续关注本公众号。
Linux阅码场
2021/02/24
2.9K0
RISC-V架构系列之1:指令集和特权模式
了解一下ARM CPU架构
最近有个需求:要求安装一个MySQL8.0在ARM架构上;CPU的ARM架构听说过,但没实际部署过;且这个ARMCPU架构又是一个什么东东,只是脑子有这么个名字,具体不是很了解。故今日集中学习下,有了此文。
bisal
2020/07/31
2.3K0
了解一下ARM CPU架构
RISC-V国际基金会理事长戴路:RISC-V是最适合AI的指令集架构!
7月6日,在“世界人工智能大会”期间,由上海开放处理器产业创新中心、芯原微电子(上海)股份有限公司主办,中国RISC-V产业联盟协办的以“智”由“芯”生为主题的“RISC-V和生成式Al论坛”在上海世博中心召开。在此次论坛上,RISC-V国际基金会理事长戴路指出,RISC-V是最适合人工智能(Al)的一种指令集架构。
芯智讯
2024/07/12
3050
RISC-V国际基金会理事长戴路:RISC-V是最适合AI的指令集架构!
RISC-V指令集讲解(1)通用寄存器和汇编指令分类
本文将开始详细讲解RISC-V指令集。CPU中包含32个通用寄存器,有时候也会被称为通用寄存器文件,如图1所示。通用寄存器的命名方式为X0-X31。其中第一个寄存器X0的值,被硬连线到0,因此值永远是0。其他寄存器X1-X31都是可读可写的。0-31也叫做索引号,索引号也可以理解为寄存器的地址,当指令需要调用通用寄存器时可以通过索引号查找。之后将会在介绍FPGA程序时讲解如何设计读写寄存器文件。对于32位系统,所有通用寄存器的宽度都是32bit,寄存器总个数也是32个。
IC知识库
2021/07/30
3.4K2
RISC-V指令集讲解(1)通用寄存器和汇编指令分类
【系统架构设计师】计算机组成与体系结构 ⑬ ( 计算机指令集架构 | CISC 与 RISC | 复杂指令集架构 - CISC | 精简指令集架构 - RISC )
计算机指令集架构 ( ISA , Instruction Set Architecture ) 定义了 计算机 如何 执行 和 操作 指令 , 计算机 可 执行的 所有指令的集合 ;
韩曙亮
2024/07/14
5220
【AI系统】CPU 指令集架构
我们知道,计算机指令是指挥机器工作的指示和命令,程序就是一系列指令按照顺序排列的集合,执行程序的过程就是计算机的工作过程。从微观上看,我们输入指令的时候,计算机会将指令转换成二进制码存储在存储单元里面,然后在即将执行的时候拿出来。那么计算机是怎么知道我们输入的是什么指令,指令要怎么执行呢?
用户11307734
2024/11/26
4310
Linux x86 和ARM什么区别?
CISC:Complex Instruction Set Computer,复杂指令集计算机;
FPGA技术江湖
2021/01/13
2.8K0
关于处理器指令集和微架构
大家好,前段时间小伙伴测试了两款服务器处理器,同是armV8指令集架构,结果差别巨大,可以看出两家公司在微架构设计能力上的差距。
虚拟化云计算
2023/03/27
1.1K0
关于处理器指令集和微架构
CPU_X86架构和ARM架构入门篇
常见的四大CPU体系结构ARM、X86/Atom、MIPS、PowerPC,这里我们来看下主流的X86架构和ARM架构。
小小工匠
2021/08/17
5.2K0
两位图灵奖得主万字长文:新计算机架构,黄金十年爆发!
2017年3月,计算机架构领域两位巨星级人物David Patterson与John Hennessy在斯坦福大学发表演讲时如是说。
新智元
2019/05/08
1.5K0
两位图灵奖得主万字长文:新计算机架构,黄金十年爆发!
处理器核、Core、处理器、CPU区别&指令集架构与微架构的区别
严格来说“处理器核”和“ Core ”是指处理器内部最核心的部分,是真正的处理器内核;而“处理器”和“CPU往往是一个完整的 SoC,包含了处理器内核和其他的设备或者存储器。
玖柒的小窝
2021/09/15
4.1K0
RISC-V 学习笔记:由来、基础整数指令集、汇编语言、特权架构
github地址:https://github.com/yunwei37/os-summer-of-code-daily
云微
2023/02/11
1.3K0
芯片也开源?网红RISC-V,到底是什么东东?
今天小枣君又要给大家介绍一个开源的东西,那就是现在半导体行业的网红、被很多人称之为“开源芯片”的RISC-V。
鲜枣课堂
2019/07/20
9910
详解AI加速器(三):架构基础离不开ISA、可重构处理器……
在这一章节中,Adi Fuchs 为我们介绍了 AI 加速器的架构基础,包括指令集架构 ISA、特定领域的 ISA、超长指令字 (VLIW) 架构、脉动阵列、可重构处理器、数据流操作、内存处理。
机器之心
2022/02/24
8550
详解AI加速器(三):架构基础离不开ISA、可重构处理器……
深入iOS系统底层之指令集介绍
说到指令集以及CPU架构体系,大家就会想到计算机专业课程里面的计算机体系结构的方面的内容。既然课程中已经有了的内容我就不想那么枯燥的去复述一遍,而是先看一个类的定义:
欧阳大哥2013
2018/08/22
1.2K0
深入iOS系统底层之指令集介绍
MIPS架构深入理解1-MIPS和RISC架构体系介绍
众多RISC精简指令集架构中,MIPS架构是最优雅的”舞者”。就连它的竞争者也为其强大的影响力所折服。DEC公司的Alpha指令集(现在已被放弃)和HP的Precision都受其影响。虽说,优雅不足以让其在残酷的市场中固若金汤,但是,MIPS架构还是以最简单的设计成为每一代CPU架构中,执行效率最快的那一个。
Tupelo
2022/08/15
8.8K0
MIPS架构深入理解1-MIPS和RISC架构体系介绍
推荐阅读
相关推荐
Unity手游实战:从0开始SLG——ECS战斗(五)浅谈CPU缓存命中
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档