指令集 ISA Instruction Set Architecture
- CPU执行计算任务时候的规范,或者说是CPU的语言
- 程序在执行之前要被编译为CPU能够理解的语言,这种语言或者说是规范就是指令集ISA
- 反映了CPU软件层面的设计
- 指令集的Example - x86,Arm v8,Mips
- 指令集也可以被拓展
- 比如x86-64添加了对64位机器的支持
- 厂商可以开发兼容某种指令集的CPU,需要获得指令集作者的授权
- Intel授权x86指令集给amd,AMD来造x86架构的计算机
- 大家一般都会选择软件生态环境较好的指令集
- 支持该指令集的软件越多越好
- 与汇编语言的关系? (机器码-汇编-高级语言)
- 用人能看得懂的语言去描述指令集(Original指令集的机器码就是一堆二进制码)
- 汇编被转化为二进制机器/运算码(Opcode)(两者基本一一对应)CPU内部的译码电路从纯硬件层面转化(Control/Logic Unit)
- 🤔是否可以理解二进制码就是一大串从很多根wire进去的比特流,里面就是拿数电搭出来的逻辑与存储(SRAM),实际上会更加有条理(比如冯诺依曼架构-运算(ALU)/存储/控制)
- 汇编被转化为二进制机器/运算码(Opcode)(两者基本一一对应)CPU内部的译码电路从纯硬件层面转化(Control/Logic Unit)
- 指令就是汇编程序嘛,指令的组合编程了指令集
- 不同平台(CISC RISC)指令的长度不一样,内容也不一样,自然指令集也不一样
- 指令集改变的时候,就会改变汇编语言,移植性差人们去开发高于指令集的语言,也就是高级语言
- 用人能看得懂的语言去描述指令集(Original指令集的机器码就是一堆二进制码)
- RISC-V就是开源指令集
- 大家不需要商业授权都可以用的,开发者在其后端可以开发生态
- UCB Work
- 刚出来(2019.09/27 for future reference)阿里平头哥的玄铁910应该是基于它的
- 量子位在他的文章里就来了一个
基于RISCV架构开发- RISCV是指令集不是架构!
- 量子位在他的文章里就来了一个
核心 > 微架构
- 处理器架构指的就是微架构(然而我好像感觉实际中有混用的情况,至少引起了我的误解)
- 物理上一个CPU可以有多个核心(Core)
- 多个核心可以同时执行多个任务
- 核心的具体实现方式(Implemention)被称为微架构(microarchitecture)
- 反映了CPU硬件架构的设计
- 指令集会决定处理器的架构
- 处理器的微架构就相当于用硬件去实现指令集
- 比如Haswell,Cortex-A15都属于微架构
- 华为麒麟指令集也是买的Arm的
- ARM公司自己研发Arm指令集,同时还将微架构(Cortex)对外授权
- Arm公司可喜欢卖微架构的授权给其他厂商了,所以很多芯片都标注是Cortex核心
- 通过购买微架构来生产芯片不能叫做做CPU嗷 - 三星 Exynos
- 当然大厂一般是兼容arm指令集,但是自己设计微架构 - 高通骁龙,苹果A系列 (他们可以被叫做自主研发CPU)
- 使用了Arm指令集的也不一定是Arm处理器(其微结构不一定是arm的Cortex)
- 比如Intel,Nvidia都有兼容arm指令集的微架构-(aarch64?)
- Arm公司可喜欢卖微架构的授权给其他厂商了,所以很多芯片都标注是Cortex核心
- 微架构的设计才是真正的CPU设计(暴论)
- 指令集可以授权,但是微架构的设计是绝对保密的
- 比如龙芯就是兼容MIPS指令集的(但是微架构是自己设计的)
- 为啥子AMD的CPU干不过Intel,Intel把自己研发的指令集丢给你,但是你设计不出和它一样好的微架构(但是amd现在牛逼了,AMD YES)