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

一文了解指令集和微架构

作者头像
Defry
发布于 2022-04-19 10:23:33
发布于 2022-04-19 10:23:33
2.4K0
举报
文章被收录于专栏: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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【AI系统】CPU 指令集架构
我们知道,计算机指令是指挥机器工作的指示和命令,程序就是一系列指令按照顺序排列的集合,执行程序的过程就是计算机的工作过程。从微观上看,我们输入指令的时候,计算机会将指令转换成二进制码存储在存储单元里面,然后在即将执行的时候拿出来。那么计算机是怎么知道我们输入的是什么指令,指令要怎么执行呢?
用户11307734
2024/11/26
3270
关于处理器指令集和微架构
大家好,前段时间小伙伴测试了两款服务器处理器,同是armV8指令集架构,结果差别巨大,可以看出两家公司在微架构设计能力上的差距。
虚拟化云计算
2023/03/27
1K0
关于处理器指令集和微架构
Linux x86 和ARM什么区别?
CISC:Complex Instruction Set Computer,复杂指令集计算机;
FPGA技术江湖
2021/01/13
2.5K0
了解一下ARM CPU架构
最近有个需求:要求安装一个MySQL8.0在ARM架构上;CPU的ARM架构听说过,但没实际部署过;且这个ARMCPU架构又是一个什么东东,只是脑子有这么个名字,具体不是很了解。故今日集中学习下,有了此文。
bisal
2020/07/31
2.2K0
了解一下ARM CPU架构
嵌入式:ARM体系结构详解
为了清楚地表达每个ARM应用实例所使用的指令集,ARM公司定义了8种主要的ARM指令集体系结构版本,以版本号V1~V8表示。
timerring
2022/12/09
1.6K0
嵌入式:ARM体系结构详解
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:指令集和特权模式
深入iOS系统底层之指令集介绍
说到指令集以及CPU架构体系,大家就会想到计算机专业课程里面的计算机体系结构的方面的内容。既然课程中已经有了的内容我就不想那么枯燥的去复述一遍,而是先看一个类的定义:
欧阳大哥2013
2018/08/22
1.2K0
深入iOS系统底层之指令集介绍
指令集架构(ISA)之IBM Power ISA开源应对​RISC-V生态(13k字)
科学Sciences导读:指令集架构(Instruction-SetArchitecture, ISA)之IBM Power ISA开源应对RISC-V生态。本文介绍IBMPower ISA开源概述;RISC-V和OpenPOWER如何共存;ower(处理器)九代产品概述;IBM的POWER和Intel的X86处理器比较。关键词:指令集,指令集架构,ISA,RISC-V,x86,中央处理器(CPU),英特尔(Intel),国际商用机器(IBM),POWER PC(或者PPC),开源。分享或赞赏支持后,公号输入框内发送“Power ISA”获取本文PDF。
秦陇纪
2019/08/26
2.9K0
指令集架构(ISA)之IBM Power ISA开源应对​RISC-V生态(13k字)
计算机体系结构的一知半解
计算机的体系结构是关于计算机自身的系统架构,而软件指令集架构在计算机体系结构中处于核心地位,因为软件和硬件之间都是通过软件指令集架构(ISA)来对话的。
半吊子全栈工匠
2022/03/29
6550
计算机体系结构的一知半解
ARM、MIPS与RISC-V指令集有什么区别?
ARM、MIPS 和 RISC-V 是三种常见的精简指令集计算(RISC,Reduced Instruction Set Computing)架构,各自都有其特点和设计理念。
不脱发的程序猿
2025/02/25
2270
ARM、MIPS与RISC-V指令集有什么区别?
处理器核、Core、处理器、CPU区别&指令集架构与微架构的区别
严格来说“处理器核”和“ Core ”是指处理器内部最核心的部分,是真正的处理器内核;而“处理器”和“CPU往往是一个完整的 SoC,包含了处理器内核和其他的设备或者存储器。
玖柒的小窝
2021/09/15
3.9K0
ARM与x86架构对比:从编程视角解析
ARM和x86是目前计算领域中最常见的两种微处理器架构。x86架构主要由Intel和AMD开发,广泛应用于个人计算机和服务器市场;而ARM架构则因其低功耗、高能效的特点,在移动设备和嵌入式系统中占据主导地位。随着技术的发展,ARM架构也在向高性能计算领域拓展,如苹果M1芯片的成功就是很好的例证。了解这两种架构的异同对于开发者来说至关重要,尤其是当面对跨平台编程任务时。
用户9925864
2024/07/12
1.9K0
ARM与x86架构对比:从编程视角解析
一文带你厘清国产 CPU
有没有碰到过这种情况?开发出一款软件产品,交付给客户,客户说安装不上。经过一番调查,原因让人哭笑不得,你以兆芯为目标进行开发,客户电脑却用的是龙芯。这也不能怪客户,经过多年的市场培育,在大多数人的认知里,电脑就是 Windows 系统加上英特尔处理器。
云水木石
2023/12/13
5330
一文带你厘清国产 CPU
MIPS架构深入理解1-MIPS和RISC架构体系介绍
众多RISC精简指令集架构中,MIPS架构是最优雅的”舞者”。就连它的竞争者也为其强大的影响力所折服。DEC公司的Alpha指令集(现在已被放弃)和HP的Precision都受其影响。虽说,优雅不足以让其在残酷的市场中固若金汤,但是,MIPS架构还是以最简单的设计成为每一代CPU架构中,执行效率最快的那一个。
Tupelo
2022/08/15
8.5K0
MIPS架构深入理解1-MIPS和RISC架构体系介绍
RISC-V 学习笔记:由来、基础整数指令集、汇编语言、特权架构
github地址:https://github.com/yunwei37/os-summer-of-code-daily
云微
2023/02/11
1.2K0
四大主流芯片架构(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
14.1K0
RISC-V 简介(2)RISC-V指令集的特点及分类
上一篇RISC-V 简介(1)RISC-V的由来对RISC-V发展的背景进行了描述,通过与CISC架构的比较,以及与其他RISC架构的比较,将RISC-V的重要性和优势简单列了出来。本文将简单介绍RISC-V的指令集特点及分类。
IC知识库
2021/07/29
2.1K0
RISC-V 简介(2)RISC-V指令集的特点及分类
arm架构和riscv架构_开源芯片架构
第一个区别就是所谓的“复杂指令集”与“精简指令集”系统,也就是经常看到的“CISC”与“RISC”。 Intel和ARM处理器,前者使用复杂指令集(CISC),而后者使用精简指令集(RISC)。属于这两种类中的各种架构之间最大的区别,在于它们的设计者考虑问题方式的不同。
全栈程序员站长
2022/10/04
1.7K0
arm架构和riscv架构_开源芯片架构
RISC-V 简介(1)RISC-V的由来
指令集架构(Instruction Set Architecture, ISA),是一种抽象模型,包括指令集,寄存器,内存处理,寻址模式,中断和异常处理,以及外部的I/0接口。指令集包括一系列的操作码(opcode),或机器码(machine code),以及特定处理器执行的基本命令。ISA以不依赖于其实现特性方式,指定了在其实现上运行机器码的行为。中央处理器(central processing unit, CPU)可以看作是ISA的实现。
IC知识库
2021/07/28
1.4K0
RISC-V 简介(1)RISC-V的由来
CPU_X86架构和ARM架构入门篇
常见的四大CPU体系结构ARM、X86/Atom、MIPS、PowerPC,这里我们来看下主流的X86架构和ARM架构。
小小工匠
2021/08/17
5K0
推荐阅读
相关推荐
【AI系统】CPU 指令集架构
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档