1. 程式人生 > >計算機原理之儲存器組織

計算機原理之儲存器組織

目錄

一、八位鎖存器

二、8-1選擇器

三、3-8譯碼器

四、隨機訪問儲存器

五、RAM陣列

六、大規模RAM陣列

七、64K x 8 的RAM陣列


一、八位鎖存器

    可以將電平觸發的D型鎖存器表示成如下形式:

    從結構上來講,這套電路與先前的電平觸發的D型鎖存器是同一種觸發器,只是命名的方式不盡相同:

  • Q輸出端被稱為資料輸出端(Data Out)
  • 時鐘輸入端命名為寫操作端(Write)

    一般情況下:

  • 如果寫操作端為0,則資料輸入訊號的狀態對輸出無影響
  • 如果想把資料輸入訊號儲存在觸發器中時,可以把寫入訊號應先置1後置為0

    前面已經講過,這種型別的電路也被稱為鎖存器,因為儲存進去的資料就好像被鎖住了一樣。

    上面的電路結構可以簡寫為:

    可以把多個1位鎖存器組織成為多位鎖存器,所要做的就是把寫操作端的訊號連線到系統中:

    如果要把一個8位二進位制數儲存在鎖存器中,首先要把寫操作端置1,然後置0

    上面的8位鎖存器可以簡寫為:

 

二、8-1選擇器

    還有另一種方法整合8

1位鎖存器,但其結構並不像上面的這樣直觀。

    這種方法能夠用一個燈泡來確定鎖存器的資料輸出訊號:

    如下所示,只需要一個8-1資料選擇器(8-Line-to-1-Line Data Selector)。

    8-1選擇器8資料輸入端(在其頂部),以及3選擇輸入端(在其左側)。

    選擇輸入端的功能就是選擇一個輸入端資料,然後使其在輸出端輸出。

    如果選擇輸入端000,則將D0鎖存器的值輸出,若選擇端為111,則D7鎖存器的值將被輸出。

    系統的真值表如下:

    8-1選擇器主要組成部件為:

  • 三個反向器
  • 八個4埠輸入與門
  • 一個8埠輸入或門

    8-1選擇器的組織結構如下圖所示:

    所以可以使用一個8-1選擇器對8個鎖存器進行選擇操作,並將相應鎖存器的資料輸出:

 

三、3-8譯碼器

    除此之外,還需要一個獨立的寫入訊號,它能被寫到任意(且唯一)的鎖存器上。

    需要另外一款電路元件,這款元件與8-1選擇器功能類似,但它的作用正好相反:

    這款電路元件叫3-8譯碼器(3-to-8 Decoder):

    3-8譯碼器的輸出埠共有8個。

    在任何時候,譯碼器只會有一個鎖存器的輸出為1,其餘均為0

    每一個輸出端的結果都是由S0S1S2這三個訊號的排列組合決定的。

    3-8譯碼器的邏輯表如下:

 

 

四、隨機訪問儲存器

    將8鎖存器加入到電路就形成了完整的系統:

    譯碼器選擇器具有相同的選擇訊號,在上圖中這三個訊號一起被稱為地址埠(Address)。

    地址的作用就像我們平時使用的郵箱號,長度為三位的地址決定了8鎖存器中的哪一個將被引用。

    在3-8譯碼器的輸入端,地址起到了決定哪些鎖存器可以被寫操作端的訊號觸發來儲存資料的引用。

    在輸出端,8-1選擇器通過地址來選擇8鎖存器中的一個作為輸出。

    這種配置下的鎖存器普遍的叫法是隨機訪問儲存器(Random Access Memory),或RAM

    以上的隨機訪問儲存器可儲存8個獨立位元的RAM,它的簡化結構如下:

    相比於其他的順序型的儲存器,這種儲存器在使用時有一定的限制,如果想要讀取地址為101的資料,必須先把地址為100的資料讀取出來。

 

五、RAM陣列

    將RAM進行特殊的配置可形成RAM陣列(Array)。

    RAM陣列的組合形式多種多樣,比如可以通過共享地址的方式可以把兩個8 x 1RAM陣列連線起來,如下所示:

    可以把這兩個8 x 1RAM陣列的地址和輸出都分別看成一個整體,這樣就得到了一個8 x 2RAM陣列

    這個RAM陣列可儲存的二進位制數依然是8個,但每個數的位寬為2位。

    還可以把兩個8 x 1RAM陣列看作是兩個鎖存器,使用一個2-1選擇器和一個1-2譯碼器就可以把它們按照單個鎖存器連線方式進行整合:

    “選擇”端之所以連線到1-2譯碼器2-1選擇器,主要作用是在兩個8 x 1RAM陣列中選擇一個,本質上它扮演了第4根地址線的角色

    因此這種結構實際上是一種16 x 1的RAM陣列,如下圖所示:

    RAM陣列的儲存容量與其地址輸入端的數量有直接的聯絡

  • 在沒有地址輸入端的情況下(只有1位鎖存器和8位鎖存器的情況)    ——    只能儲存1個單位的資料
  • 當存在1個地址輸入端時(2-1選擇器和1-2譯碼器)    ——    可以儲存2個單位的資料
  • 有兩個地址輸入端時(4-1選擇器和2-4譯碼器)    ——    可以儲存4個單位的資料
  • 有3個地址輸入端時(8-1選擇器和3-8譯碼器)    ——    可以儲存8個單位的資料
  • 有4個地址輸入端時(16-1選擇器和4-16譯碼器)    ——    可以儲存16個單位的資料

    可以把它們之間的關係歸納成如下等式:

 

六、大規模RAM陣列

    搭建了小型RAM陣列,自然就能搭建一個大規模的RAM陣列,就像下面這樣:

    上圖所示的RAM陣列可儲存8192個位元的資訊,每8個位元為一組,共分為1024個組。

    因為210次方恰好是1024,所以地址端共有10個輸入埠。

    電路還包括8位的資料輸入端和8位的資料輸出端。

    從專業的角度來講,這個RAM陣列的儲存容量為1024個位元組(1位元組等於8位元)。

    就好比一個郵局放置了1024個郵箱,而每個郵箱裡面都可以存放1位元組大小的郵件。

    1024位元組通常稱為1千位元組,千位元組可以簡寫為KB

    所以這種RAM陣列儲存容量也可以表示為1KB,如果再加上一條地址線,它的儲存容量將變成原來的兩倍。

    下面的公式表示了儲存容量的翻倍的過程:

    相同的邏輯,可以把1024KB統稱為1兆位元組(megabyte,希臘文中的mega意味著巨集大)。

    兆位元組通常縮寫為MB

    下面的例子表示了兆位元組為單位的儲存容量翻倍的過程。

    1024MB也被順氣自然地稱為1吉位元組(gigabyte,希臘文中的giga意味著巨大),縮寫為GB

    同理,1024GB被稱為1太位元組(terabyte,teras希臘語意思為巨人),縮寫為TB

    1KB近似為1000個位元組,1MB近似為100萬個位元組,1GB近似為10億個位元組,1TB近似為1萬億個位元組。

    在1999年時,家用電腦的隨機儲存器的容量一般為32MB64MB128MB

 

七、64K x 8 的RAM陣列

    能夠構造任意大小的RAM陣列後,就可以構造一個容量為64KB(65535位元組 = 64 x 1024 x 8 位元)的儲存器組織,如下所示:

    為什麼選擇大小為64KBRAM陣列?而非32KB128KB

    因為65536是一個約整數,轉換為冪的形式就是2^{16},這個RAM陣列需要配備16位的定址端。

    換句話說,該地址恰好可以用2個位元組表示。

    64KB的記憶體是1980年的個人電腦的主流配置,但它的確不是用電報繼電器組成的。

    在先前的討論中,儲存每個位元需要9繼電器(因為1電平觸發的D型鎖存器9繼電器構成),推算一下64K x 8RAM陣列就需要至少500萬個繼電器!(準確的數字是64 x 1024 x 8 x 9 = 4718592

    如果用一種控制面板來輔助管理對這塊64KB儲存器的操作—— 包括寫資料和讀資料,一切將會直觀明瞭。

    在這款控制面板上,有16個開關用於控制地址位,還有8個開關用來控制要輸入的8位元資料。

    寫操作端也用一個開關來表示,8個燈泡用來顯示8位資料,這個控制面板如下所示:

    初始狀態下所有的開關均置為0。其中右下角有一個標識為控制端的開關。

    這個開關的作用是確定由控制面板還是由外部所連線的其他電路來控制儲存器

    如果控制端0儲存器由其他電路系統接管,控制面板上的其他開關將不起任何作用。

    當控制端1時,控制面板將重新獲得對儲存器的控制能力。

    這種功能可以用252-1選擇器來實現 —— 其中包括16地址輸入端8資料輸入端,以及1寫操作端

    電路如下圖所示:

  •     當控制端開關斷開時,RAM陣列地址端資料輸入端寫操作端的資料全部來源於外部訊號,也就是在2-1選擇器的左上角的輸入訊號
  •     當控制端開關閉合時,RAM陣列地址端資料輸入端寫操作端的資料來源於控制面板開關發出的訊號。

    但最終RAM陣列的輸出訊號都會傳輸到8個燈泡上或其他可能的地方。

    下面這幅是控制面板64K x 8 RAM陣列的邏輯結構框圖:

    當控制端開關閉合時,通過操作16地址開關,可以選擇65536個地址中的任何一個。

    燈泡的狀態將表示該地址中所儲存的8位資料。

    可以使用8個數據開關表示出一個新數,然後把寫操作端置1,從而將資料寫入儲存器。

    64k x 8 的RAM陣列控制面板這一組合的確很實用,它可以幫助我們儲存655368位資料並且讀取其中的任意一個。

    與此同時,它也給其他部件提供了接入系統的機會——需要接入系統的通常是一些電路部件——這些部件可以輕易地讀取並利用儲存器中存放的資料,還可以把資料寫入儲存器

    關於儲存器有一個問題尤其值得注意,而且需要特別注意:

    一個辛辛苦苦裝滿了65536位元組珍貴資料的64K x 8 RAM陣列,如果斷掉電源,會發生什麼事情呢?

    首先所有的電磁鐵都將因為沒有電流而失去磁性,隨著“梆”的一聲,金屬片將彈回原位,所有繼電器將還原到未觸發狀態。

    RAM中儲存的資料呢?它們將如風中殘燭般消失在黑暗中。

    正因為如此,隨機訪問儲存器也被稱為易失性儲存器

    為了保證儲存資料不丟失,易失性儲存器需要恆定的電流