天天看點

計算機組成原理---指令系統

機器指令系統的分類、常見的尋址方式、指令格式、設計指令系統時應考慮的各種因素。

人們習慣把每一條機器語言的語句稱為機器指令,将全部機器指令的集合稱為機器的指令系統。

機器的指令系統集中反應了機器的功能。

指令的一般格式

指令由操作碼和位址碼組成

操作碼

其位數反應了機器的操作種類,機器允許的指令條數

通常采用擴充操作碼技術,使操作碼的長度随位址數的減少而增加,不同的位址數指令可以具有不同長度的操作碼,進而滿足需要的前提下,有效縮短指令字長。

位址碼

這裡的“位址”可以是主存的位址,也可以是寄存器的位址,甚至可以使I/O裝置的位址。

四位址指令

OP為操作碼;A1為第一操作數位址;A2為第二操作數位址;A3為結果位址;A4為下一條指令的位址。

三位址指令

可以完成(A1)OP(A2)->A3的操作,後續指令的位址隐含在程式計數器PC之中。

二位址指令

可以完成(A1)OP(A2)->A1的操作,即A1字段既代表源操作數的位址,又代表了本次運算結果的位址。直接尋址範圍為2的12次方=4K。

一位址指令

可以完成(ACC)OP(A1)->ACC的操作,ACC既存放參與運算的操作數,又存放運算的中間結果。指令字長為32位,操作碼位數為8位,直接尋址範圍為2的24次方=16M。

零位址指令

零位址指令在指令字中無位址碼,例如空操作(NOP),停機(HLT)這類指令沒有位址碼。

而子程式傳回(RET)、中斷傳回(IRET)這類指令沒有位址碼,其操作數的位址隐含在堆棧指針SP中。

位址字段表示寄存器時,也有三位址、二位址、一位址之分,在指令的執行階段都不必通路存儲器,直接通路寄存器,使機器運作速度得到提高(因為寄存器類型的紫菱隻需在取指階段通路一次存儲器)。

指令字長

指令字長取決于操作碼的長度、操作數位址的長度和操作數位址的個數。

早期的計算機指令字長是固定的,随着計算機的發展,一台機器的指令系統可以采用位數不相同的指令,多次通路存儲器,使CPU速度下降,常用的指令設計成單子長或短字長。

操作數類型

位址:無符号整數

數字:定點數、浮點數和十進制數

字元:普遍采用ASCII碼

邏輯資料

資料在存儲器中的存放方式

存放在存儲器或寄存器中,寄存器的位數便可反應機器字長。

存儲器存儲字長如果為32位,可按位元組、半字、字、雙字通路。

操作類型

資料傳送、算術邏輯操作、移位、轉移(無條件轉移、條件轉移、調用與傳回、陷阱Trap與陷阱指令)、輸入輸出、其他(等待指令、停機指令、空操作指令、開中斷指令、關中斷指令、置條件碼等指令)。

尋址方式

尋址方式分為指令尋址和資料尋址

指令尋址分為順序尋址和跳躍尋址兩種。

資料尋址

指令的位址碼字段通常都代表操作數的真實位址,把它稱為形式位址,記作A;

操作數的真實位址稱為有效位址,記作EA。

1、立即尋址

立即尋址的特點是操作數本身設在指令字内,即形式位址A不是操作數的位址,而是操作數的本身,又稱為立即數。

2、直接尋址

直接尋址的特點是,指令字中的形式位址A就是操作數的真實位址。

EA = A

3、隐含位址

隐含位址是指指令字中不明顯的給出操作數的位址,其操作數的位址隐含在操作碼或寄存器中

EA = A + (ACC)

4、間接尋址

倘若指令字中的形式位址不直接指出操作數的位址,而是指出操作數有效位址所在的存儲單元

EA = (A)

5、寄存器尋址

在寄存器尋址的指令中,位址碼字段直接指出了寄存器的編号

EA = R

6、寄存器間接尋址

Ri中的内容不是操作數,而是操作數所在的主存單元的位址号,即EA = (Ri)。

7、基址尋址

基址寄存器BR

EA = A + (BR)

8、變址尋址

變址寄存器IX

EA = A + (IX)

9、相對尋址

EA = (PC)+ A

相對尋址也可與間接尋址配合使用

RISC技術

RISC即精簡指令系統計算機,與其對應的是CISC,即複雜指令系統計算機。

能否用最常用的20%的簡單指令,重新組合不常用的80%的指令功能呢?這便引發出RISC技術。

RISC主要特征

執行程式所需的時間P

P = I * C * T

I是進階語言編譯後在機器上運作的機器指令數;

C為執行每條機器指令所需的平均機器周期;

T是每個機器周期的執行時間。

RISC和CISC的比較

1、充分利用VLSL晶片的面積

2、提高計算機運算速度

3、便于設計,可降低成本,提高可靠性

4、有效支援進階語言程式

繼續閱讀