处理器架构 (三) 架构指令集微架构ISA 等概念

简述

  • 指令集架构标准 RISC与CISC
RISC(全称Reduced Instruction Set Computer,精简指令系统计算机)则是一套优化过的指令架构
更像是 指令集架构标准,并不是实现。
一种标准对应多种指令集架构实现 
  • 指令集架构实现 体系结构 汇编指令集 指令集架构(ISA) x86 x86_64 51 arm mips powerpc avr pic risc-v ia64
x86 x86_64 51 分别是 CISC 标准的 几种实现, 是 指令集架构实现
arm mips powerpc avr pic risc-v 分别是 RISC 标准的 几种实现, 是 指令集架构实现(arm有 v5 v6 v7 版本的指令集,arm指令不是完全兼容的,所有指令集有版本区别)
ia64 是 EPIC 标准的 一种实现。
// 定义的是硬件和软件的接口,并没有指定实现。
一种指令集架构实现 对应多种微架构
将 ISA 变成真正可以使用的实物需要经过“实现”,它包括两个层面:组成和硬件。

阿姆道尔 明确了 计算机体系结构 的定义.
	计算机体系结构 是 程序员(2019年写汇编的程序员)所看到的 计算机的属性,即概念性结构与功能特性.
	汇编程序员能看到的计算机属性分类
		1. 数据表示: 计算机硬件能够辨认和处理的数据类型(不同于编程语言中的数据类型)
		2. 寻址规则: 计算机在访问存储器时的访问规则,最小寻址单元,寻址方式及其表示
		3. 寄存器定义: 寄存器的定义,数量和使用方式
		4. 指令系统: 机器指令的操作类型和格式,指令间的排序和控制机构等
		5. 中断系统: 中断类型和中断响应硬件的功能等.
		6. 机器工作状态的定义和切换: 如 管态和目态.
		7. 存储系统: 程序员可用的最大存储容量.
		8. 保护信息: 信息保护方式和硬件的支持
		9. IO结构: IO寻址方式,数据传送的方式

在这里插入图片描述

简单有序的模型
	指令集架构
并行执行多条指令
	微架构
  • 微架构 微结构
微结构(processor microarchitecture)则描述的是如何设计一个处理器来符合一个体系结构
x86的P5 x86的P6 x86的Netburst
ARMv7的cortex-m ARMv7的cortex-r  ARMv7的cortex-a
一种微架构对应多种芯片
https://wenku.baidu.com/view/f18e5864bcd126fff7050b42.html
组成是从计算机设计的高阶层面而言,
	例如:存储系统、存储互连接、CPU(包括算术、逻辑分支、数据传输的实现)设计,有时候“组成”又被称作微架构(microarchitecture)
	英特尔 Nehalem、NVIDIA Kepler、ARM Cotrex-A57 都可以属于各自某系列芯片的微架构,其中 Kepler 的 ISA 是 CUDA PTX 和 Cortex-A57的 ISA 属于 ARMv8。

计算机组成
	计算机组成涉及到计算机各个部件的关联,也就是计算机系统能分解的最小的有意义的逻辑单位
	1. 数据通路宽度
	2. 各个功能操作部件和他的共享程度
	3. 专用功能部件的设置
	4. 功能部件的并行性
		决定机器有效工作的效率
	5. 缓冲和排队技术
		有效的平滑各个部件中间瞬间流量的不同,也可以缓冲因为部件不同而带来的程序指令执行过程中的等待.
	6. 预测技术
		加快程序执行效率
	7. 可靠性技术
		是不是要采用多部件冗余.高可靠支撑技术
	8. 控制机构的组成
		让指令单步或同时执行
		让程序同时执行

指令系统的实现方法分类
	1. 微程序(RTL)实现
	2. 硬件的组合逻辑电路
  • 芯片
硬件通常是指电脑的规格,包括具体的逻辑设计、封装技术,同一系列的产品可能有相同的 ISA、近乎一样的微架构,但是存在某些具体规格的差别,例如NVIDIA Tegra 3,有 AP30、AP33、T30、T33、T30S、T33S、T30SL 等具体的型号,它们都属于 Tegra 3 微架构,但是频率规格、内存规格等地方都有差别。
指令集架构实现	微架构				芯片型号

Armv4           ARM7                S3C44B0
ARMv5 			ARM920T 			S3C2440&&S3C2410 
ARMv6			ARM1176JZFS		S3C6410
ARMv7			Cortex-M3			STM32F103zgt6
ARMv7 			Cortex-A8 			s5pv210
ARMv7			Cortex-A9			exynos4412 AppleA5
ARMv7			Qualcomm Scorpio/Krait	MSM8060/MSM8960
ARMv7			苹果Swift微架构	 	A6

ARMv8			Apple Cyclone/Typhoon/Twister/Fusion/Bionic	A7/A8/A9/A10/A11
ARMv8			Cortex-A35/A53/A57/A72/A73/A55/A75
ARMv8			高通 Kryo
ARMv8			nVidia  Project Denver

ARMv8           A53           骁龙410/骁龙630
ARMv8           A55           紫光展锐SC9863A
ARMv8           A57           骁龙808/Exynos7420
ARMv8           A72           骁龙650/麒麟955
ARMv8           A73           Exynos7872/骁龙835
ARMv8           A75           联发科G80/骁龙845
ARMv8           A76           麒麟990 5G/骁龙675
ARMv8           A77           Enynos980/骁龙690G/麒麟9000
ARMv8           A78           骁龙888/天玑1200/exynos2100


ARMv9(2021-3-31凌晨发布)			

RISC-V 			Bumblebee  			GD32VF103C8U6

//高效能之路:让核心微架构同时间内能够有效处理更多的指令

计算机实现
	CPU 内存的 物理形态(长宽高,功耗,工作温度)
	器件的集成度和速度
	信号传输(光电,无线输出)
	器件,模块,插件,地板的划分与连接
	涉及的专用器件(风扇,水冷铜管,空调)
	电源,冷却
	微组装技术
	微机装配技术等

  • 例子

arm 对应不断迭代的 指令集 ,属于架构范畴.

然后arm V7 是 第七版的指令集,也即第七版的架构

cortex-a15 是 微架构,这个微架构是arm发布的

而 exynos 4412 就是针对 cortex-a15 最出来的 一个芯片

详述

  • 指令集架构标准 定义了什么
RISC 定义了 精简指令集?
CISC 定义了 复杂指令集?

  • 指令集架构实现 定义了什么
- 体系结构(computer architecture)定义的是硬件和软件的接口,并没有指定实现。RISC-V即定义的体系结构。

  - ISA定义的内容:指令编码,内存模型,IO模型,逻辑寄存器数量和功能,控制寄存器,特权级别。
  - 一条指令都包含什么: 指令功能,操作对象(立即数,普通寄存器,特殊寄存器,内存), 环境变量(标志位,特权级别),指令编码。
  - 指令的功能分类:逻辑指令,数学指令,控制指令,内存指令,IO指令,特殊指令。
  - 是CISC还是RISC
  - 每一种二进制指令具体是什么

例如:
	armv5 在cpu架构方面定义了 
		寄存器(37) 
		指令集(ARM和THUMB和Jazelle) 
		异常(7) 
		处理器状态(3) 
		处理器工作模式(7)  
		数据类型(,32bit 半字,16bit byte,8bit) 
		大小端 
		同步原语 
		饱和整数运算 
		ARM寻址方式
  • 微架构 定义了什么
- CPU微架构包括缓存管理,缓存设计,乱序执行,超标量,超流水线,内存控制,分支预测等众多的极其复杂的电路,这些结构的电路的效率是直接决定CPU性能的
- 微结构(processor microarchitecture)则描述的是如何设计一个处理器来符合一个体系结构。体系结构并不定义微结构。
- 定义了 所有的二进制指令 的具体实现。
- 流水线
	将 取值译码执行 分为更多的工位。如果是10个工位,就是10级流水线
- 多发乱序流水线
- 多线程流水线(超线程 SMT ) // intel Hyper-Threading
- 多核
- 特殊流水线:VLWI, vector, GPU
- 多核,超标量,指令分支预测,乱序执行,多层次存储 动态调度 线程级并行化 SIMD(数据级并行)存储系统分层结构
- 超标量
	原来做了20个工位,一条流水线,现在double一下,出来了两条流水线。然后这就是2路超标量
  • 芯片厂家(假定该厂家只能在封装微架构,不能修改微架构) 定义了什么
芯片的 功能模块的种类及个数及对应的引脚引出?
封装?

其他

  • 狭义的计算机体系结构(架构)(CPU架构)(处理器架构)指的是 指令集架构实现
  • 广义的计算机体系结构(架构)(CPU架构)(处理器架构)指的是 指令集架构实现 + 微架构
  • 指令集架构实现与微架构
A指令集架构实现做加法运算的指令二进制代码是10000001
B指令集架构实现的加法指令代码是10000010。

你要基于A指令架构就必须把电路做成加法指令代码是10000001
电路怎么变,微架构怎么变随你,怎么实现收到10000001的指令时做加法运算随你
但这些指令集对应的代码不能变,它必须是10000001就是加法运算。

这套指令集你必须全兼容才能运行基于它的程序。

  • 体系结构与微结构的互相影响
    • 比较CISC和RISC的特性。 RISC的每条指令功能复杂度基本一致,执行时间基本一致,编码长度基本一致,流水线控制简单,指令调度简单,代码密度相对CISC较小。 CISC的指令功能复杂度不一,执行时间长短不一,编码长度也不一样。直接运行导致流水线控制复杂调度困难,一般动态拆做类似RISC的微指令执行。代码密度相对RISC较高。
    • 操作数:单指令寄存器个数。从栈寻址到多寄存器寻址在代码密度,流水线调度,执行时间上的考虑。
    • 操作数:内存寻址方式。RISC的内存寻址方式单一,调度简单,可做单独流水线,但指令密度高。CISC调度方式复杂,流水线设计复杂,指令密度高。
    • 环境变量: 条件执行对流水线的影响。(第二章具体讲)
    • 指令编码:RISC编码和SISC编码,解码难度,取址难度,分支预测难度等等。(第二章具体讲RISC-V的编码设计)
    • 编译器: 编译器是指令集和高级语言的接口。 语言的抽象等级越高,ISA的使用就更加受限:ABI,systemcall,context switching。 通用逻辑寄存器的功能异化,数量对编译器的影响。
    • 操作系统:硬件资源的管理者,特权软件。 操作系统需要ISA的支持:控制寄存器,特权指令,内存模型,IO模型等等,hyervisor模式。 (更具体的,比如对VM,安全,上下文切换效率,中断和异常的定义等等,都留到第二章)
ARMv8 有几种架构
Armv8.0-A
Armv8.1-A
Armv8.2-A
Armv8.3-A
Armv8.4-A
Armv8.5-A
Armv8.6-A
Armv8.7-A

ARMv9(2021年4月1日) 提到了什么
安全
性能
能效
经济
设计自由
通用计算
矢量

AI
dsp
5G
ML
Mali GPU
Ethos NPU
Armv9-A
Armv9.0-A
Armv9.2-A
SVE2
ARM7 ARM9 ARM11 区别
https://blog.csdn.net/lovecaoxing/article/details/8626850

ARM7 	ARMv4 	3级流水线	冯诺依曼		100Mhz				一般没有MMU/720T有MMU					无SIMD		无vfp
ARM9 	ARMv5 	5级流水线 	哈佛结构		200Mhz				一般有MMU/ARM9940T没有MMU,有MPU		无SIMD		有vfp
ARM11	ARMv6 	8级流水线	哈佛结构		350MHz-500Mhz 		有MMU								有SIMD		有vfp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值