處理器架構 (三) 架構指令集微架構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,安全,上下文切換效率,中斷和異常的定義等等,都留到第二章)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章