590 likes | 856 Views
本章綱要. 5 、 1 指令碼 5 、 2 計算機暫存器 5 、 3 計算機指令 5 、 4 定時與控制 5 、 5 指令週期 5 、 6 記憶存取指令 5 、 7 輸入 -- 輸出及岔斷 5 、 8 完整的計算機描述 5 、 9 基本計算機之設計 5 、 10 累積器之邏輯設計. 5—1 指令碼. 計算機組識是由計算機內部之暫存器、定時及控制結構,以及計算機所用之指令集來定義。 數位系統的內部組織是由執行於暫存器內指令之微運算順序所定義。
E N D
本章綱要 5 、1 指令碼 5 、2 計算機暫存器 5 、3 計算機指令 5 、4 定時與控制 5 、5 指令週期 5 、6 記憶存取指令 5 、7 輸入-- 輸出及岔斷 5 、8 完整的計算機描述 5 、9 基本計算機之設計 5 、10 累積器之邏輯設計
5—1 指令碼 • 計算機組識是由計算機內部之暫存器、定時及控制結構,以及計算機所用之指令集來定義。 • 數位系統的內部組織是由執行於暫存器內指令之微運算順序所定義。 • 計算機指令為一種用來指定計算機之微運算順序的二進碼。指令碼(instruction code )以及資料都被儲存在記憶體中。
5—1 指令碼 • 指令碼指令碼通常可分成兩部分,運算碼與運算元。指令的運算碼(operation code )為用來指定諸如加、減、乘、移位,及變補等運算的一組位元。例如:對一已知的2 n(或更少)種不同的運算而言,運算碼至少必須由n 個位元組成。假定計算機有64 種不同的運算,其中之一種為ADD 運算。此運算碼是由六個位元組成 。
5—1 指令碼 • 指令的運算元指明運算元所在的暫存器或記憶字,以及儲存運算結果的暫存器或記憶字之所在。 例如:暫存器可藉一個k 位元之二進碼在指令中標明,k 位元共可標明2k 個暫存器。記憶字以其位址在指令碼中載明。
指令集完整性 • 若一計算機在下列各項中都有足夠數量的指令時,其指令集可稱為完整的(complete )。 1 .算術、邏輯及移位指令。 2 .在記憶器及處理暫存器之間傳遞資訊的 指令。 3 .程式控制之指令,以及檢查狀態條件之 指令。 4 .輸入及輸出指令。
5--4 定時與控制 控制單元之組織有兩種: 固線式控制(hardwired control ):控制邏輯是用邏輯閘、正反器、解碼器,及其他數位電路來實現。 微程式控制(microprogrammed control ):控制資訊是儲存於控制記憶體中。控制記憶體可用程式設定來啟動所需的微運算順序。
5--5 指令週期 • 指令週期(instruction cycle )被分成一連串的子週期(subcycle )或階段(phase ) 。基本計算機之每一指令週期包含下列各階段: 1 .從記憶單元提取指令。2 .解碼所提取之指令。3 .若此指令具有間接位址,則從記憶單元 讀出有效位址。4 .執行此指令。
提取及解碼 • 提取及解碼階段之微運算,可用下列暫存器傳遞敘述表示。 1 .藉設定匯流排選擇輸入S1S2S3為010,而將PC之內容置於匯流排中。2 .藉啟動AR 之LD 輸入,而傳遞匯流排之內容 至AR 。 因為T0 = 1 ,所以在下次時脈遞移時會使資料從PC 傳入AR 中。
提取及解碼 1 .啟動記憶體之讀出輸入。2 .藉設定S1S2S3 = 111 將記憶內容置於匯流排 中。3 .藉啟動IR 之LD 輸入將匯流排之內容傳人IR 中。4 .藉啟動Pc 之INR 輸人使PC 遞增。因為Tl = 1 ,所以下次時脈遞移時會啟動讀出及遞增運算。
提取及解碼 在時間T2時,IR 中之運算碼被解碼,間接位址位元被傳至正反器I ,而指令之位址部分則被傳至AR。注意,在每一時鐘脈衝之後,SC 會遞增,而產生T0、Tl、T2之序列。 圖5 一8 說明上述前三個暫存器傳遞敘述如何在匯流排系統中實現。
提取及解碼 這三種指令類型可區分成四條不同路徑。被選到之運算是由定時訊號T3結束時的時脈遞移來啟動。這可用下列符號形式表示:
暫存器存取指令 • 暫存器存取指令可由控制函數D7=1及I = 0 而得知。這類指令是用指令碼之位元0 至n 來標示12 個指令。這12 位元存於IR ( 0 - 11 )中,在時間T2時會被傳入AR。 • 表5--3 列舉暫存器存取指令之控制函數及微運算。前七個暫存器存取指令執行清除、變補、循環移位,及遞增微運算於AC 或E 暫存器。其後的四個指令,在條件符合時,會跨越下一個指令。HLT指令可清除起動--停止(start、stop )正反器S ,並停止順序計數器之計數。
對AC 作AND • 此指令可對AC 中之位元以及有效位址所指定之記憶字的位元,作AND 邏輯運算。運算的結果保留於AC 中。執行此指令之微運算為:
對AC 作ADD • 此指令將有效位址指定之記憶字內容,加至AC 之現值上。相加之和傳回AC ,而輸出進位Cout傳遞至E(延伸累積器extended accumulator)正反器。執行此指令所需之微運算為:
LDA :對AC 作載入 • 此指令將有效位址指示之記憶字傳至AC 。執行此指令所需之微運算為:
STA:儲存AC • 此指令將AC 現有內容儲存至有效位址所指定之記憶字。因為AC 之輸出是連接於匯流排,且記憶體之資料輸人也是連接於匯流排,因此,此指令可用一個微運算執行:
BUN:無條件分支 • 此指令將程式轉移至有效位址所指之指令。記住,PC 存有次一個指令週期中要從記憶體讀出之指令的位址。在時間T1時,PC 會遞增,以備妥程式中下一個指令之位址。BUN 指令允許程式設計者不按順序指定一個指令,故稱為無條件程式分支(branch )或是跳位Cump ) 。此指令可用一微運算執行:
BSA:分支並保存回返位址 • 此指令是用於分支至程式中的副常式(subroutine )或程序(Procedure )部分。當執行時,BSA 指令會將下一個指令之位址(存在PC 之中)置於有效位址所指定之記憶體位置。有效位址加1 之後再傳至PC,作為副常式中第一個指令之位址。此運算已在表5-4中說明,可用下列暫存器傳遞語言表示:
BSA:分支並保存回返位址 • 當我們使用基本計算機之匯流排系統時,不可能在一時脈週期內完成BSA 指令之運算。若欲適當的使用記憶體及匯流排,則BSA 指令必須用兩個微運算順序執行:
ISZ:遞增且若零則跨越 • 此指令可將有效位址所指定之記憶字遞增,若遞增之後的值為0 ,則PC 遞增1。程式設計師通常儲存一個負數(以2 補數形式)在記憶字中。當此負數重覆遞增1 時,終究會變為0 。此時,PC 遞增1,用以跨越程式中下一個指令。因為在記憶體中遞增一個記憶字是不可能的,所以必須將記憶字讀出至DR 中,再遞增DR ,並將此字存回記憶體。這可由下列微運算來完成:
程式岔斷 • 計算機持續檢查旗標位元,當旗標位元為設定時,會啟動資訊之傳送。計算機和它的輸人一輸出裝置問資訊流動速率的差異,使得此種傳輸方式效率很低。 • 例如:假定計算機的指令週期為1 us(微秒)。輸入、輸出裝置傳送資訊之最大速率為每秒10 個字元。亦即每100000us可傳送一個字元。當計算機檢查旗標位元並決定不作資訊傳遞時,會執行兩個指令。這表示,在最大傳輸速率下,計算機在每次資料傳遞時,須檢查旗標50 , 000次。而檢查旗標極為浪費時間。
程式岔斷 • 程式控制資訊轉移的變通辦法是,當外界裝置準備傳送資訊時,再通知計算機。在此之前計算機可處理其他工作。這種資訊傳送是用岔斷設施來完成。當計算機在執行程式時,不需檢查旗標。然而,當旗標被設定時,計算機暫時由目前程式被岔斷,並被告知旗標已被設定。計算機暫時脫離目前執行之工作,轉而處理輸入或輸出之資料傳遞。岔斷處理完畢再回返並繼續岔斷之前的程式。
岔斷週期 • R 正反器被設定為1 的條件是當IEN =1 且FGI =1 或FGO = 1 。除了當定時訊號T0 , T1,或T2為有效之外,在其他任何時脈轉移時,這種情形都會發生。下列暫存器傳遞敘述表示:
修改後之提取階段 • 我們將三個定時訊號與R '作AND 運算,以取代僅用定時訊號T0 , Tl ,及T2(如圖5--9所示),因此,提取及解碼階段可從三個函數R ' T0 , R ' Tl ,及R 'T2辨認。這種修改的主要原因是因為,當指令執行之後,而且SC 被清除為0 時,若R=0 ,控制才會經過提取階段;否則,若R=1 ,控制會經過岔斷週期。岔斷週期將回返位址(存在PC 中之值)儲存於記憶體位置0 ,再分支至記憶體位置1 , 並清除IEN 、 R及SC 為0 。這可由下列之微運算來完成:
5--9 基本計算機之設計 • 此基本計算機是由下列硬體元件組成: 1 、4096 個字的記憶體,其中每字16 位元2、9 個暫存器:AR , PC , DR , AC , IR , TR , OUTR ,INPR 及SC 3 、7 個正反器:I , S , E , R , IEN , FGI及FGO 4 、2 個解碼器:一個3 × 8 運算解碼器及一個4 × 16 定時解碼器5 、一個16 位元公用匯流排6 、控制邏輯閘7 、連接於AC 之輸入的加法器和邏輯電路
控制邏輯閘 • 圖5 一6 為控制邏輯閘之方塊圖,控制邏輯電路的輸出含:1 .用以控制9 個暫存器之輸入的訊號2 .用以控制記憶體之讀出及寫入輸入之訊號3 .用以設定、清除,或變補正反器之訊號4 .用以選擇匯流排暫存器的S2、S1及S0訊號5 .用以控制AC 加法器及邏輯電路之訊號 各種控制訊號之規格可直接從表5--6 中列舉之暫存器傳遞敘述求得。
暫存器及記憶體之控制 • 圖5--4 指出計算機中連接於公用匯流排系統之暫存器,暫存器控制輸入為LD、INR、CLR。假定我們要求與AR之控制輸入相關聯之邏輯閘結構,可從表5--6 找出所有能改變AR內容之敘述如下:
單一正反器之控制 • 例如,表5 一6 顯示,IEN 的值依ION 及IOF 兩個指令的執行而定。其中p = D7IT3 而B7及B6。為IR 之位元7 及6 。在岔斷週期結束時,IEN 會清除為0 。若用JK正反器作為IEN , 則圖5--17 為其控制邏輯圖。