1、CISC(Complex Instruction Set Computing),RISC(Reduced Instruction-Set Computer),MIPS(Million Instructions Per Second)。
2、CISC編碼是可變長度的,IA32的指令長度可以是1~15;RISC編碼是固定長度的,通常所有的指令都是編碼為4個位元組。
3、在硬體設計中,電子電路被用來計算位的函數(function on bits),以及在各種儲存元素中儲存位。大多數現代電路技術都用訊號線上的高電壓或低電壓來表示不同的位值。要實現一個數字系統需要三個主要的組成部分:計算位的函數的組合邏輯,儲存位的儲存空間元素,以及控制儲存空間元素更新的時鐘訊號。
4、通常,處理一條指令包括很多操作。
1)取指(fetch):取指階段從儲存空間讀入指令,地址為程式計數器PC的值。從指令中抽取出指令指示符位元組的兩個四位部分,稱為icode(指令代碼)和ifun(指令功能)。
2)解碼(decode):解碼階段從寄存器檔案讀入最多兩個運算元,得到值valA or/and valB。
3)執行(execute):在執行階段,算術/邏輯單元(ALU)要麼執行指令指明的操作(根據ifun的值),計算儲存空間引用的有效地址,要麼增加或減少棧指標。
4)訪存(memory):訪存階段可以將資料寫入儲存空間,或者從儲存空間讀出資料。讀出的值為valM。
5)寫回(write back):寫回階段最多可以寫兩個結果到寄存器檔案。
6)更新PC(PC update,程式計數器):將PC設定成下一條指令的地址。
註:這一部分就是所謂的微指令,在《電腦群組成原理》這門課中有講述。
5、指令執行過程,從PC中取出指令,然後沿著上述的幾個步驟操作,周而復始的進行迴圈。
6、處理器從來不需要為了完成一條指令的執行而讀由指令更新的狀態。
7、關於處理器的硬體結構設計,SEQ時序,及流水線設計,可以參見書中第四章部分。
<Computer Systems:A Programmer's Perspective>