正文 第四章 計算機工作的邏輯基礎(二)(3 / 3)

例:將數字鍵輸出編碼為8421碼。

鍵盤上設置有0~9共十字鍵,它們實際上是一組開關,平時斷開,按下哪個鍵相應的開關觸點就閉合。未按鍵時輸出為高電平,按鍵時輸出低電平,鍵後又恢複為高電平。如果定義符號K-表示命題“按下鍵”,那麼輸出信號就應該命名另K,即按下K,鍵則K,這樣的定義與電路輸出狀態相符。

我們暫且略去編碼器的設計過程,直接給出一個8421編碼電路,予以解釋。

用四個與非門完成8421編碼功能。按鍵輸出送與非門輸入端,四個與非門的輸出則分別對應於8421碼的四位。我們舉二個例子證明其邏輯功能的正確性。如果按下“1”鍵,則1=0,這個信號輸入到最低位的與非門,-0則1,所以S1=l;對於其它三位與非門,因輸入全高,所以S4、S都為0,整個編碼器輸出與1對應的8421碼(0001)a如果按下“9”鍵,K=0,則S=l,S3=0,S=0,輸出與9相應的代碼(1001)。讀者可自行驗證其它按鍵的對應輸出。

二、譯碼器

譯碼是編碼的逆過程,用來確定一組代碼或一組信號的含意。例如譯出一組8421碼的十進製含意,或者譯出指令代碼中操作碼的操作含意。廣義的譯碼還包含將某種編碼轉換成另一種編碼。讓我們列舉幾個常見的應用實例。許多裝置中設有數碼顯示管,將若幹位8421碼送往譯碼器,譯碼器的輸出再驅動數碼顯示管,就能顯示出人們熟悉的十進製數字。下麵即將介紹被稱為計數器的部件,它可用來控製操作的次數或表征時間值。計數器是用若幹個觸發器按計數規律組成的,計算機如何知道當前的計數值呢?這就需要將各位觸發器的輸出送給譯碼器的輸入端,譯出此刻的計數狀態。前麵曾經指出,計算機在執行程序時是按照指令行事的,指令代碼中有一段代碼稱為操作碼,它以編碼形式表示操作含意,例如以0001表示加,0010表示減等。如何知道指令要求執行什麼操作呢?這也需要用譯碼電路對操作碼進行譯碼以確定其操作含意。所謂由控製器分析指令含意,實際h就是一種譯碼過程。

由上麵兩個例子可以看出,譯碼器可由一些與門或者由與非門組成,譯碼器有多個輸入,多個輸出,但對應於某一時刻的一種輸入組合狀態,隻有一個輸出起作用(有效),表達一種確定的含意。所以我們說:同一組譯碼器的各個輸出間是“互斥”的,例如“加”為真,則其餘操作含意均為假。

三、計教器

計數器是計算機中又一種重要邏輯部件。一段程序有若幹條指令,在多數情況下是順序執行,這就需要在控製器中設置一個“程序計數器”PC,又稱“指令計數器”,讓它對指令X的執行進行計數,每取出一條指令,讓PC內容增加一個量,以控製主存儲器的地址碼順序增加,相應地順序取出後繼指令。又如執行一次多位長的乘、除運算,往往需要分成若幹步,什麼時候完成了一次乘、除運算呢?這裏又需要計數器。可見計數器是控製器中的一種有用部件。

有兩種常用的計數方法,一種是利用已有的加法器;進行加1計數或減1計數,另一種是讓寄存器具有計數能力。現在我們介紹後一種類型的邏輯實現,對於初學者可能有一定的困難,隻要求大家有初步的了解。

用一種計數序列來描述計數器的計數規律與狀態變化,現在假設某計數器隻有二位,其計數序列按二進製是:00—01—10—11—00……。為了實現這樣一種可以循環的計數序列,首先需要二位觸發器保存某一時刻的計數值,才能在該計數值的基礎上變為加1後的狀態。因此,可以設想建立這樣一種計數邏輯,它包含兩大部分:一個寄存器,另一部分是根據原計數值形成新計數值輸入的邏輯電路。用表4-8描述一個二位加法計數器的邏輯關係,它可以作為設計的基礎。

設計數器的高位觸發器為r,它的一對互補輸出,輸入低位觸發器,相應的輸出,輸入現在我們解釋一下表4-8的含意,如計數器的當前狀態為00,按照計數規律下一狀態應當是01,為此應在端準備好輸入信息01,等計數脈衝一到,上升沿將01打入寄存器形成新狀態01。實現這一轉換的邏輯條件是當前狀態00,產生的輸出是=01,它又作為寄存器的輸入而導致最後輸出010照此推理可以得到表4-S中的轉換關係,加以簡化後得到為1與1為1的邏輯表達式。

本章小結:

(1)計算機的基本功能是靠數字邏輯電路實現。最基本的邏輯關係有三種:與、或、非,各種複雜的邏輯都是由這三種基本邏輯複合而成的。比較常用的邏輯電路有與非門、與或非門、異或門。

(2)數字邏輯的實現,基於以二進製數字表示各類信息。本章闡述了幾個方麵的對應關係:用文字敘述的邏輯命題與邏輯關係,符號及其邏輯代數式,二值邏輯與二進製數字。邏輯電路及電平信號的高低。

(3)計算機的運算功能以二進製加法為核心,可用若幹位全加器加以實現,每位全加器可用與或非門實現,或用兩級半加器(異或門)實現。

(4)在計算機中,用寄存器、半導體存儲器、磁表麵存儲器(磁盤、磁帶)等存儲信息。寄存器由多位觸發器組成。雙穩態觸發器是存儲一位信息0或1的基本邏輯單元,常見的觸發器有R-S觸發器、D觸發器。半導體存儲器分成靜態存儲器與動態存儲器兩類,前者靠雙穩態觸發器存儲信息,後者靠電容存儲信息,一塊半導體存儲芯片可以集成許多位。磁表麵存儲器是靠保留磁化狀態存儲信息。

(5)計算機的操作基本上可歸結為各類信息傳送,為此,常用與非門及與或非門進行傳送控製與選擇。相應地計算機使用兩類控製信號(微操作命令),一類是電平命令,如開門、關門命令,一類是脈衝信號,如同步打入脈衝及其它各種定時脈衝。

(6)計算機中還利用邏輯電路完成多類工作,如編碼器、譯碼器、計數器等。