C66x指令集(一)——指令集架構初探索
最近面試的時候被問到指令集,一頭霧水,由於之前的工作沒有涉及到指令集方面的知識,現總結成文。
定義
指令集架構(英語:Instruction Set Architecture,縮寫為ISA),又稱指令集或指令集體系,是計算機體系結構中與程式設計有關的部分,包含了基本資料型別,指令集,暫存器,定址模式,儲存體系,中斷,異常處理以及外部I/O。指令集架構包含一系列的opcode即操作碼(機器語言),以及由特定處理器執行的基本命令。(wiki定義 )
關於指令集的工作方式,知乎上有一個回答我覺得還可以,這裡引用一下:
CPU的指令集存放在哪裡?
其內容如下:
比如我們設計一套指令集,其中肯定有條加法指令。比如Add R1 R2 。我們可以認為這條指令的意思是計算暫存器R1中的內容和R2的和,然後把結果存到R1暫存器中。
那麼經過編譯後這條指令會變成二進位制,比如010100010010 。這條二進位制指令一共12位。明顯可以分為三大部分。最前面的0101表示這是條加法指令,後面0001說的是第一個運算元是暫存器1,最後0010說的是第二個數就是暫存器2(其實實際沒有這麼簡單的指令,至少應該區分運算元是暫存器還是直接的資料,但為了把這說的更容易理解作了簡化)。我們可以通過十二根導線把這條指令輸入一個CPU中。導線通電就是1,不通電就是0 。為了敘述方便我們從左到右用A0-A11給這12根導線編上號。
然後計算機會分析這條指令。步驟如下:
最開始的兩根導線A0和A1,第一根有電第二根沒電,就能知道這是一條運算指令(而非儲存器操作或者跳轉等指令)。那麼指令將被送入邏輯運算單元(ALU)去進行計算。其實很簡單。只要這兩根線控制接下來那部分電路開關即可。
接下來的A2和A3,01表示加法,那麼就走加法運算那部分電路,關閉減法等運算電路。
A4-A7將被送入暫存器電路,從中讀取暫存器儲存的值。送到ALU的第一個資料介面電路上。
後面的A8-A11同樣被送入暫存器選擇電路,接通R2暫存器,然後R2就把值送出來,放到ALU的第二個資料介面上。
ALU開始運算,把兩個介面電路上的資料加起來,然後輸出。
最後結果又被送回R1。
基本上簡單的運算計算機就是這麼操作的。他其實不知道你那些指令都是什麼意思。具體的指令程式設計機器碼後就會變成數位電路的開關訊號。其中某幾段會作為控制訊號,控制其他部分的資料走不同的電路以執行運算。他沒有一個地方儲存著如何翻譯這些機器碼的字典,所有機器碼的意義都被體現在整個電路的設計中了。
當然,從彙編到機器碼這步是彙編程式翻譯的。彙編程式當然知道某條指令要翻譯成什麼樣的機器碼。
所以指令集的目的就是為了實現底層操作,為每一種運算,每一種操作(如資料移動)提供相應的暫存器級別的動作,這些暫存器再和最底層的邏輯電路對應,最終完成頂層類似於"int a = 0; a = 1 + 2"的功能。
Reference:
[1] Wiki:指令集架構
[2] 知乎——CPU的指令集放在哪裡?
相關文章
- MIPS指令集架構架構
- 2_指令集、體系架構、微架構架構
- CPU架構及指令集之研究架構
- 指令集結構
- 處理器指令集架構的位數架構
- 關於CPU、指令集、架構、晶片的一些科普架構晶片
- 指令集體系結構 - ISA
- 處理器核、Core、處理器、CPU區別&&指令集架構與微架構的區別&&32位與64位指令集架構說明架構
- ARM晶片、核心、架構、指令集的聯絡與區別晶片架構
- javap 指令集Java
- 指令集結構與微體系結構
- 精簡指令集和複雜指令集的區別
- CISC(複雜指令集)與RISC(精簡指令集)的區別
- JVM筆記 -- JVM的發展以及基於棧的指令集架構JVM筆記架構
- 指令集架構、arm核心、SoC、處理器、CPU、GPU等的關係架構GPU
- ARM指令集詳解
- 【軟體硬體】精簡指令集和複雜指令集的區別
- (計算機體系結構)MIPS指令集結構計算機
- DB2常用指令集合DB2
- 計算機基礎——指令集體系結構ISA計算機
- CPU、指令集、體系結構以及作業系統作業系統
- ARM彙編指令集彙總
- MIPS 指令集(共 31條)
- 處理器、指令集架構和作業系統——32-bit與64-bit架構作業系統
- 中晟巨集芯獲IBM的Power8架構和指令集永久授權IBM架構
- 安裝Tensorflow使用AVX指令集
- 指令集體系結構_計算機體系結構:指令程式碼計算機
- 計算機指令集的相關概念計算機
- OpenHarmony LiteOS C-SKY指令集移植指北
- 指令集的進步——MMX和SSE (轉)
- 動手寫一個簡單版的谷歌TPU-指令集谷歌
- RSIC-V指令集——spec閱讀記錄
- 設計一個簡易的處理器(1)--定義指令集體系結構(ISA)
- 【JZ2440】【知識點0】【ARM指令集體系結構和ARM系列】
- 死磕以太坊原始碼分析之EVM指令集原始碼
- 深入iOS系統底層之指令集介紹iOS
- 計算機組成知識整理4:指令集計算機
- Tomcat 架構探索Tomcat架構