1 / 58

本章綱要

本章綱要. 5 、 1 指令碼 5 、 2 計算機暫存器 5 、 3 計算機指令 5 、 4 定時與控制 5 、 5 指令週期 5 、 6 記憶存取指令 5 、 7 輸入 -- 輸出及岔斷 5 、 8 完整的計算機描述 5 、 9 基本計算機之設計 5 、 10 累積器之邏輯設計. 5—1 指令碼. 計算機組識是由計算機內部之暫存器、定時及控制結構,以及計算機所用之指令集來定義。 數位系統的內部組織是由執行於暫存器內指令之微運算順序所定義。

lumina
Download Presentation

本章綱要

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 本章綱要 5 、1 指令碼 5 、2 計算機暫存器 5 、3 計算機指令 5 、4 定時與控制 5 、5 指令週期 5 、6 記憶存取指令 5 、7 輸入-- 輸出及岔斷 5 、8 完整的計算機描述 5 、9 基本計算機之設計 5 、10 累積器之邏輯設計

  2. 5—1 指令碼 • 計算機組識是由計算機內部之暫存器、定時及控制結構,以及計算機所用之指令集來定義。 • 數位系統的內部組織是由執行於暫存器內指令之微運算順序所定義。 • 計算機指令為一種用來指定計算機之微運算順序的二進碼。指令碼(instruction code )以及資料都被儲存在記憶體中。

  3. 5—1 指令碼 • 指令碼指令碼通常可分成兩部分,運算碼與運算元。指令的運算碼(operation code )為用來指定諸如加、減、乘、移位,及變補等運算的一組位元。例如:對一已知的2 n(或更少)種不同的運算而言,運算碼至少必須由n 個位元組成。假定計算機有64 種不同的運算,其中之一種為ADD 運算。此運算碼是由六個位元組成 。

  4. 5—1 指令碼 • 指令的運算元指明運算元所在的暫存器或記憶字,以及儲存運算結果的暫存器或記憶字之所在。 例如:暫存器可藉一個k 位元之二進碼在指令中標明,k 位元共可標明2k 個暫存器。記憶字以其位址在指令碼中載明。

  5. 內儲程式組織

  6. 間接位址

  7. 5--2 計算機暫存器

  8. 5--2 計算機暫存器

  9. 公用匯流排系統

  10. 5--3 計算機指令

  11. 5--3 計算機指令

  12. 指令集完整性 • 若一計算機在下列各項中都有足夠數量的指令時,其指令集可稱為完整的(complete )。 1 .算術、邏輯及移位指令。 2 .在記憶器及處理暫存器之間傳遞資訊的 指令。 3 .程式控制之指令,以及檢查狀態條件之 指令。 4 .輸入及輸出指令。

  13. 5--4 定時與控制 控制單元之組織有兩種: 固線式控制(hardwired control ):控制邏輯是用邏輯閘、正反器、解碼器,及其他數位電路來實現。 微程式控制(microprogrammed control ):控制資訊是儲存於控制記憶體中。控制記憶體可用程式設定來啟動所需的微運算順序。

  14. 控制單元

  15. 定時訊號

  16. 5--5 指令週期 • 指令週期(instruction cycle )被分成一連串的子週期(subcycle )或階段(phase ) 。基本計算機之每一指令週期包含下列各階段: 1 .從記憶單元提取指令。2 .解碼所提取之指令。3 .若此指令具有間接位址,則從記憶單元 讀出有效位址。4 .執行此指令。

  17. 提取及解碼 • 提取及解碼階段之微運算,可用下列暫存器傳遞敘述表示。 1 .藉設定匯流排選擇輸入S1S2S3為010,而將PC之內容置於匯流排中。2 .藉啟動AR 之LD 輸入,而傳遞匯流排之內容 至AR 。 因為T0 = 1 ,所以在下次時脈遞移時會使資料從PC 傳入AR 中。

  18. 提取及解碼 1 .啟動記憶體之讀出輸入。2 .藉設定S1S2S3 = 111 將記憶內容置於匯流排 中。3 .藉啟動IR 之LD 輸入將匯流排之內容傳人IR 中。4 .藉啟動Pc 之INR 輸人使PC 遞增。因為Tl = 1 ,所以下次時脈遞移時會啟動讀出及遞增運算。

  19. 提取及解碼 在時間T2時,IR 中之運算碼被解碼,間接位址位元被傳至正反器I ,而指令之位址部分則被傳至AR。注意,在每一時鐘脈衝之後,SC 會遞增,而產生T0、Tl、T2之序列。 圖5 一8 說明上述前三個暫存器傳遞敘述如何在匯流排系統中實現。

  20. 提取及解碼

  21. 提取及解碼

  22. 提取及解碼 這三種指令類型可區分成四條不同路徑。被選到之運算是由定時訊號T3結束時的時脈遞移來啟動。這可用下列符號形式表示:

  23. 暫存器存取指令 • 暫存器存取指令可由控制函數D7=1及I = 0 而得知。這類指令是用指令碼之位元0 至n 來標示12 個指令。這12 位元存於IR ( 0 - 11 )中,在時間T2時會被傳入AR。 • 表5--3 列舉暫存器存取指令之控制函數及微運算。前七個暫存器存取指令執行清除、變補、循環移位,及遞增微運算於AC 或E 暫存器。其後的四個指令,在條件符合時,會跨越下一個指令。HLT指令可清除起動--停止(start、stop )正反器S ,並停止順序計數器之計數。

  24. 暫存器存取指令

  25. 5--6 記憶存取指令

  26. 對AC 作AND • 此指令可對AC 中之位元以及有效位址所指定之記憶字的位元,作AND 邏輯運算。運算的結果保留於AC 中。執行此指令之微運算為:

  27. 對AC 作ADD • 此指令將有效位址指定之記憶字內容,加至AC 之現值上。相加之和傳回AC ,而輸出進位Cout傳遞至E(延伸累積器extended accumulator)正反器。執行此指令所需之微運算為:

  28. LDA :對AC 作載入 • 此指令將有效位址指示之記憶字傳至AC 。執行此指令所需之微運算為:

  29. STA:儲存AC • 此指令將AC 現有內容儲存至有效位址所指定之記憶字。因為AC 之輸出是連接於匯流排,且記憶體之資料輸人也是連接於匯流排,因此,此指令可用一個微運算執行:

  30. BUN:無條件分支 • 此指令將程式轉移至有效位址所指之指令。記住,PC 存有次一個指令週期中要從記憶體讀出之指令的位址。在時間T1時,PC 會遞增,以備妥程式中下一個指令之位址。BUN 指令允許程式設計者不按順序指定一個指令,故稱為無條件程式分支(branch )或是跳位Cump ) 。此指令可用一微運算執行:

  31. BSA:分支並保存回返位址 • 此指令是用於分支至程式中的副常式(subroutine )或程序(Procedure )部分。當執行時,BSA 指令會將下一個指令之位址(存在PC 之中)置於有效位址所指定之記憶體位置。有效位址加1 之後再傳至PC,作為副常式中第一個指令之位址。此運算已在表5-4中說明,可用下列暫存器傳遞語言表示:

  32. BSA:分支並保存回返位址

  33. BSA:分支並保存回返位址 • 當我們使用基本計算機之匯流排系統時,不可能在一時脈週期內完成BSA 指令之運算。若欲適當的使用記憶體及匯流排,則BSA 指令必須用兩個微運算順序執行:

  34. ISZ:遞增且若零則跨越 • 此指令可將有效位址所指定之記憶字遞增,若遞增之後的值為0 ,則PC 遞增1。程式設計師通常儲存一個負數(以2 補數形式)在記憶字中。當此負數重覆遞增1 時,終究會變為0 。此時,PC 遞增1,用以跨越程式中下一個指令。因為在記憶體中遞增一個記憶字是不可能的,所以必須將記憶字讀出至DR 中,再遞增DR ,並將此字存回記憶體。這可由下列微運算來完成:

  35. 控制流程圖

  36. 5--7 輸入 - 輸出及岔斷

  37. 輸入 - 輸出指令

  38. 程式岔斷 • 計算機持續檢查旗標位元,當旗標位元為設定時,會啟動資訊之傳送。計算機和它的輸人一輸出裝置問資訊流動速率的差異,使得此種傳輸方式效率很低。 • 例如:假定計算機的指令週期為1 us(微秒)。輸入、輸出裝置傳送資訊之最大速率為每秒10 個字元。亦即每100000us可傳送一個字元。當計算機檢查旗標位元並決定不作資訊傳遞時,會執行兩個指令。這表示,在最大傳輸速率下,計算機在每次資料傳遞時,須檢查旗標50 , 000次。而檢查旗標極為浪費時間。

  39. 程式岔斷 • 程式控制資訊轉移的變通辦法是,當外界裝置準備傳送資訊時,再通知計算機。在此之前計算機可處理其他工作。這種資訊傳送是用岔斷設施來完成。當計算機在執行程式時,不需檢查旗標。然而,當旗標被設定時,計算機暫時由目前程式被岔斷,並被告知旗標已被設定。計算機暫時脫離目前執行之工作,轉而處理輸入或輸出之資料傳遞。岔斷處理完畢再回返並繼續岔斷之前的程式。

  40. 岔斷週期

  41. 岔斷週期

  42. 岔斷週期 • R 正反器被設定為1 的條件是當IEN =1 且FGI =1 或FGO = 1 。除了當定時訊號T0 , T1,或T2為有效之外,在其他任何時脈轉移時,這種情形都會發生。下列暫存器傳遞敘述表示:

  43. 修改後之提取階段 • 我們將三個定時訊號與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 。這可由下列之微運算來完成:

  44. 5--8 完整的計算機描述

  45. 計算機的控制函數及微運算

  46. 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 之輸入的加法器和邏輯電路

  47. 控制邏輯閘 • 圖5 一6 為控制邏輯閘之方塊圖,控制邏輯電路的輸出含:1 .用以控制9 個暫存器之輸入的訊號2 .用以控制記憶體之讀出及寫入輸入之訊號3 .用以設定、清除,或變補正反器之訊號4 .用以選擇匯流排暫存器的S2、S1及S0訊號5 .用以控制AC 加法器及邏輯電路之訊號 各種控制訊號之規格可直接從表5--6 中列舉之暫存器傳遞敘述求得。

  48. 暫存器及記憶體之控制 • 圖5--4 指出計算機中連接於公用匯流排系統之暫存器,暫存器控制輸入為LD、INR、CLR。假定我們要求與AR之控制輸入相關聯之邏輯閘結構,可從表5--6 找出所有能改變AR內容之敘述如下:

  49. 暫存器及記憶體之控制

  50. 單一正反器之控制 • 例如,表5 一6 顯示,IEN 的值依ION 及IOF 兩個指令的執行而定。其中p = D7IT3 而B7及B6。為IR 之位元7 及6 。在岔斷週期結束時,IEN 會清除為0 。若用JK正反器作為IEN , 則圖5--17 為其控制邏輯圖。

More Related