天天看點

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

r## 4.1指令系統的發展與性能要求

4.1.1指令系統的發展

計算機的程式是由一系列的機器指令組成的。指令就是計算機執行某種操作的指令。從計算機組成的層次結構來說,計算機指令分為:微指令、機器指令和宏指令。

微指令:微程式級指令,屬于硬體

宏指令:由若幹機器指令組成的軟體指令,屬于軟體

機器指令:介于兩者之間,簡稱指令,每一條指令可完成一個獨立的算術運算或邏輯運算操作。

指令系統(指令集):一台計算機中所有機器指令的集合。表現計算機性能,格式與功能不僅影響機器的硬體結構,還有系統軟體;指令是一台計算機的硬體與低層軟體的接口

系列計算機:基本指令系統相同、基本體系結構相同的一列計算機。時間和器件不同,結構性能上有差距。

CISC:複雜指令系統計算機,研制周期長,大量指令使用率低

RISC:精簡指令系統計算機,

4.1.2指令系統的性能要求

完備性:用彙編語言編寫程式是,指令系統提供的指令足夠使用,不需要用軟體實作。

有效性:用指令系統編寫的程式能高效率的運作,一般說功能強、指令系統完善其有效性就會更好

規整性:對稱性、勻齊性、指令格式和資料格式的一緻性。

對稱性:指令系統中所有的寄存器和存儲器單元都可同等對待,
所有的指令都可使用各種尋址方式
         勻齊性:一種操作性質的指令可以支援多種資料類型,如算術運算:
支援位元組、字、十進制、單雙浮點。
         指令格式和資料格式的一緻性:指令長度和資料長度有一定關系,
一友善處理和存取。如:指令長度和資料長度通常是位元組長度的整數倍。
           

相容性:計算機間基本結構和基本指令系統相同,隻能“向上相容”

4.1.3 低級語言與硬體結構的關系

彙編語言依賴于計算機的硬體結構和指令系統。

進階語言不依賴

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

4.2指令格式

指令字:機器指令使用機器字來表示的,一條指令的機器字就是指令字,稱指令

格式:

操作碼字段OP | 位址碼字段A

4.2.1操作碼

指令的操作碼OP表示該指令應進行什麼性質的操作,指令不同操作碼字段的編碼不同,一種編碼代表一種指令;001 加法 110 取整

指令系統的規模決定了操作碼字段的位數: 2的n次方個指令表示需要n個操作碼

4.2.2位址碼

根據一條指令中操作數位址個數不同,可将其分為幾位址指令。

1) 零位址指令

2)一位址指令:隻有一個位址碼,指定一個操作數,另一個操作數位址是隐含的。

AC<—(AC)OP(A)

op表示操作性質,如加、減、乘除

(AC)表示累加寄存器AC中的數

(A)表示記憶體中位址為A的存儲單元中的數,或運算器中位址為A的通用寄存器中的數;

<—:表示把操作結果傳送到指定的地方。

注意:位址碼字段A指明的是操作數的位址,而不是操作數本身

3)二位址指令(雙操作數指令):位址段A1和A2,分别指明參與操作的兩個數在記憶體中或運算器中通用寄存器的位址,A1兼作存放操作結果的位址。數學含義:

A1<-----(A1)op(A2)

操作數的實體位置有分為三種類型:

存儲器存儲器型指令(SS):通路記憶體的指令格式,從記憶體一個單元取出放入另記憶體一個單元

寄存器寄存器(RR):機器執行指令時,需要多個通用寄存器或個别專用

從一個到另一個,執行速度快,不需要通路記憶體

寄存器-存儲器(RS):通路記憶體單元和寄存器

4)三位址指令 操作數位址:A1,A2,A3 數學含義:

A1 <—(A1)OP(A2)

A1為被操作數位址,源操作數位址

A2操作數位址,終點操作數位址

A3存放操作結果的位址。

這三種通常指定為運算器中通用寄存器的位址,目的:加快指令執行速度。

4.2.3指令字長度

指令字長度:一個指令中包含二進制代碼的位數

機器字長:計算機能直接處理的二進制資料的位數,決定了計算機的運算精度。與主存單元的位數一緻。

單字長指令:指令字長度等于機器字長度的指令

半字長指令:

雙字長指令:

4.2.4指令助記符

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

4.2.5 指令格式舉例

1.八位微型計算機的指令格式

單字長指令:   操作碼
  雙字長指令:   操作碼      操作數位址
  三字長指令:   操作碼     操作數位址1      操作數位址2
           

雙或三字長指令包含操作碼和位址碼,由于記憶體按位元組編址,是以但字長指令每執行一條指令後,指令位址+1,雙或三字指令每執行一條指令時,必須從記憶體連續讀2或3個位元組代碼,是以指令位址要+2或+3,多位元組指令不利于提高機器速度。

2.MIPS R4000指令格式

字長32位,位元組尋址。 指令數量少,通用寄存器32個,算術指令格式:

OP   rs  rt   rd   shamt  funct             R型
           

OP字段—操作碼,指定一條指令的基本操作 6位

rs字段–指定第一個源操作數寄存器,最多有32個寄存器 5位

rt字段----指定第2個源操作數寄存器,最多有32個寄存器 5位

rd字段—指定存放操作結果的目的數寄存器,最多32 5位

shamt字段------ 移位值,用于移位指令 5位

funct字段----函數位,指定R型指令的特定操作

在MIPS中所有算術運算,資料必須放在通用寄存器中,

通路存儲器(取數或存數)需要使用資料傳送指令。此時的指令格式稱為I型(立即數)指令,格式:

OP       rs      rt        常數或位址(address)   I型
           6為   5位    5位      16位
           

16位字段address提供取字指令(IW),存字指令(SW)通路存儲器的基值位址碼(位移量)

保持指令格式基本一緻可降低硬體複雜程度,例如:R與I前3個字段長度相等,名稱一樣;I型格式第四個字段與R型後三個字段的長度相等。

3.ARM的指令格式

ARM是字長32位的嵌入式處理機,

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

4.Pentium指令格式

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

4.3 操作數類型

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

4.4 指令和資料的尋址方式

存儲器既可以用來存放資料、又可以用來存放指令,當某個操作數或某條指令存放在某個存儲單元時,存儲單元的編号,就是該操作數或指令在存儲器中的位址。

在存儲器中,操作數或指令字寫入或獨處方式:位址指定方式、相聯存儲方式、堆棧存取方式。

計算機在記憶體中采用位址指定方式。此時形成操作數或指令位址的方式,稱為尋址方式。 尋址方式分為:指令尋址方式和資料尋址方式,

馮諾依曼結構計算機中,記憶體中指令的尋址和資料的尋址交替進行

哈佛型計算機這指令和資料尋址是分開的。

  • 這兩者那種好呢?都是啥意思呢?

4.4.1指令的尋址方式

1.順序尋址方式(PC實作)

由于指令位址在記憶體中按順序安排,從存儲器取出一條指令,執行,接着重複這種順序執行過程。使用程式計數器(PC)來計數指令的順序号,該順序号就是指令在記憶體中的位址。

2.跳躍尋址方式(由程式來實作)

程式計數器:存放下一條要存儲指令的位址,

本條指令給出下條指令的位址。

4.4.2操作數基本尋址方式

定義:形成操作數的有效存儲位址的方法。

1.隐含尋址

在指令中隐含着操作數的位址

2.立即尋址

指令的位址字段指出的不是操作數的位址,而是操作數本身

3.直接尋址

操作數的位址直接給出而不需要經過某種變換。

特點:在指令格式的位址字段中直接指出操作數在記憶體的位址A。

4.間接尋址

相對于直接尋址而言的,指令位址字段中的形式位址A不是操作數D的真正位址,而是操作數位址的知識器

5.寄存器尋址

當操作數不在記憶體中,而是在CPU的通用寄存器中時,可采用寄存器尋址方式。

6.寄存器間接尋址

指令格式中的寄存器内容不是操作數,而是操作數的位址,該位址指明的操作數在記憶體中。

7.偏移尋址

直接尋址和寄存器間接尋址方式的結合

相對尋址:隐含引用的專用寄存器是程式計數器(PC),即EA=A+(PC),它是目前PC的内容加上指令位址字段中A的值。

基址尋址:被引用的專用寄存器含有一個存儲器位址,位址字段含有一個相對于該位址的偏移量

變址尋址:位址域引用一個主存位址,被引用的專用寄存器含有對那個位址的正偏移量(為了重複操作的完成提供一種高效機制)

8.段尋址

繼續閱讀