处理器架构 (三) 架构指令集微架构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 标准的 一种实现。
// 定义的是硬件和软件的接口,并没有指定实现。
一种指令集架构实现 对应多种微架构
  • 微架构 微结构
微结构(processor microarchitecture)则描述的是如何设计一个处理器来符合一个体系结构
x86的P5 x86的P6 x86的Netburst
ARMv7的cortex-m ARMv7的cortex-r  ARMv7的cortex-a
一种微架构对应多种芯片
  • 芯片
指令集架构实现	微架构				芯片型号
ARMv4 			ARM9TDMI 			S3C2440&&S3C2410 
ARMv6			ARM11				S3C6410
ARMv7			Cortex-M3			STM32F103zgt6
ARMv7 			Cortex-A8 			s5pv210
ARMv7			Cortex-A9			exynos4412
ARMv7			高通微架构Scorpio/Krait	
ARMv7			苹果Swift微架构	 	A6

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


RISC-V 			Bumblebee  			GD32VF103C8U6

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

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

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

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

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

详述

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

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

  - ISA定义的内容:指令编码,内存模型,IO模型,逻辑寄存器数量和功能,控制寄存器,特权级别。
  - 一条指令都包含什么: 指令功能,操作对象(立即数,普通寄存器,特殊寄存器,内存), 环境变量(标志位,特权级别),指令编码。
  - 指令的功能分类:逻辑指令,数学指令,控制指令,内存指令,IO指令,特殊指令。
  - 是CISC还是RISC
  - 每一种二进制指令具体是什么
  • 微架构 定义了什么
- CPU微架构包括缓存管理,缓存设计,乱序执行,超标量,超流水线,内存控制,分支预测等众多的极其复杂的电路,这些结构的电路的效率是直接决定CPU性能的
- 微结构(processor microarchitecture)则描述的是如何设计一个处理器来符合一个体系结构。体系结构并不定义微结构。
- 定义了 所有的二进制指令 的具体实现。
  - 流水线
  - 多发乱序流水线
  - 多线程流水线
  - 多核
  - 特殊流水线:VLWI, vector, GPU
  - 多核,超标量,指令分支预测,乱序执行,多层次存储等等
  • 芯片厂家(假定该厂家只能在封装微架构,不能修改微架构) 定义了什么
芯片的 功能模块的种类及个数及对应的引脚引出?
封装?

其他

  • 狭义的计算机体系结构(架构)(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,安全,上下文切换效率,中断和异常的定义等等,都留到第二章)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章