六、寄存器 & 內存

一、背景

ALU能執行 算術和邏輯運算,算出來以後的結果須要存起來,可能還要進行多個連續操做,所以須要用到計算機內存。優化

二、內存分類

隨機存取存儲器:簡稱"RAM",它只能在有電的狀況下存儲東西,好比遊戲狀態。
持久存儲:電源關閉時數據也不會丟失。spa

三、 製做只能存儲 1 位的電路

3.1 背景:
前幾集說過的電路都是單向的,老是向前流動,好比上集的 8 位 "脈動進位加法器"。但也能夠作迴向電路,把輸出連回輸入。設計

3.2 例子1:用一個 OR 門試試,把輸出連回輸入。
(1)兩個輸入(A,)都設爲 0,"0 OR 0" 是 0,因此電路輸出0。
圖片描述
(2)將 A 變成1,"1 OR 0" 爲 1,因此輸出 1。一轉眼的功夫,輸出回到 B,OR 門看到兩個輸入都是 1,"1 OR 1" 仍然爲1,因此輸出不變。
圖片描述
圖片描述
(3)若是將 A 變成 0,OR 門依然輸出 1。
圖片描述
(4)結果:
這個電路能記錄 "1",並且是永久的,不管怎麼試,都無法從 1 變回 0。code

3.3 例子2: AND 門
開始時,A 和 B 都設 1,"1 AND 1" 永遠輸出 1,若是以後 A 設爲 0,因爲是 AND 門,輸出會變成 0。
結論:這個電路能記錄 0,不管 A 設什麼值,電路始終輸出 0。遊戲

圖片描述
圖片描述

四、"AND-OR 鎖存器"

把能存 0 和 1 的電路結合起來作成AND-OR 鎖存器。圖片

4.1 特色:
有兩個輸入。"設置"輸入, 把輸出變成 1, "復位"輸入, 把輸出變成 0。
若是"設置"和"復位"都是 0,電路會輸出最後放入的內容。也就是說,它存住了 1 位的信息!
放入數據的動做叫 "寫入" ,拿出數據的動做叫 "讀取"內存

圖片描述
4.2 缺點:it

用兩條線 "設置"和"復位" 來輸入, 有點難理解。class

4.3 優化:門鎖電路
爲了更容易用,咱們但願只有一條輸入線,將它設爲 0 或 1 來存儲值;還須要一根線(容許寫入線)來"啓用"內存,啓用時容許寫入,沒啓用時就 "鎖定。由於門能夠打開和關上,因此叫"門鎖"。
圖片描述
將"門鎖"抽象成組件:把 "門鎖" 放到盒子裏 - 這個盒子能存一個 bit。關掉容許寫入線,無論給 "數據線" 什麼值,輸出都不會變。
圖片描述容器

五、寄存器

5.1 定義
若是並排放 8 個鎖存器,能夠存 8 位信息,好比一個 8 bit 數字,一組這樣的鎖存器叫 "寄存器"。
寄存器能存一個數字,這個數字的位數,叫"位寬"。早期電腦用 8 位寄存器,而後是 16 位,32 位, 64 位寬的寄存器。

5.2 原理設計

  • 寫入寄存器前,要先啓用裏面全部鎖存器。能夠用一根線鏈接全部 "容許輸入線", 把它設爲 1。 而後用 8 條數據線發數據,而後將
  • "容許寫入線" 設回 0,如今 8 位的值就存起來了。

5.3 並排放置鎖存器的缺點
若是隻有不多的位(bits),把鎖存器並排放置,也勉強夠用,可是64 位寄存器要 64 根數據線,64 根"容許輸入線"和1 根線啓用全部鎖存器 , 加起來也有 129 條線了。若是存 256 位要 513 條線。

改進:使用矩陣 排列鎖存器。

六、矩陣

在矩陣中,將鎖存器排列成網格。
存 256 位,咱們用 16x16 網格的鎖存器,有 16 行 16 列,要啓用某個鎖存器,就打開相應的 行線 和 列線。
圖片描述
6.1 特色:

  • 用一根 "容許寫入線" 連全部鎖存器,爲了讓鎖存器變成 "容許寫入",行線,列線和 "容許寫入線" 都必須是 1。

    每次只有 1 個鎖存器會啓用,來存數據。其餘鎖存器會忽略數據線上的值,由於沒有 "容許寫入"。
  • 用一根"容許讀取線"來讀數據,從一個指定的鎖存器,讀取數據
  • 對於 256 位的存儲,只要 35 條"數據線", 1條"容許寫入線", 1條"容許讀取線"。還有16行16列的線用於選擇鎖存器 .
  • 須要某種方法來 惟一指定 交叉路口---多路複用器

圖片描述
6.2 多路複用器:

原理:
須要某種方法來 惟一指定 交叉路口,好比說在城市中,你可能想和別人 在第 12 大道和第 8 街的交界碰面,這是一個交叉點的地址。反應到矩陣中是"12行 8列"。12 用二進制表示爲 1100,8 用二進制表示爲 1000。"12行 8列"能夠寫成 11001000,爲了將地址轉成行和列,咱們須要 "多路複用器。
即 使用二進制表示行和列,來惟必定位鎖存器。

工做方式:
輸入一個 4 位數字,它會把線連到相應的輸出線,若是輸入 0000,它會選擇第一列,若是輸入 0001,會選擇下一列。

一個多路複用器處理行(row) N 另外一個多路複用器處理列(column)。
圖片描述

七、概念抽象

7.1 256 位內存
能夠把 256 位內存當成一個總體。構成以下:

  • 輸入一個 8 位地址:4 位表明列,4 位表明行。
  • "容許寫入線"
  • "容許讀取線"
  • 一條數據線,用於讀/寫數據。

圖片描述
7.2 擴大規模,並排放置256 位內存。
一行8個,能夠存一個 8 位數字 , 8 位也叫一個字節(byte)。
爲了存一個 8 位數字,咱們同時給 8 個 256 位內存同樣的地址,每一個地址存 1 位。這裏總共能存 256 個字節 (byte)。
圖片描述

圖片描述
7.3 當作一個總體的可尋址內存。
有 256 個地址。每一個地址能讀或寫一個 8 位值。
圖片描述
7.4
8 位最多能表明 256 個內存地址 ,(1111 1111 是255,0~255 一共 256 個數字)。要給千兆或十億字節的內存尋址,須要 32 位的地址。

八、 內存

內存能夠隨時訪問任何位置,所以叫 "隨機存取存儲器" ,簡稱 RAM。
RAM 就像人類的短時間記憶,記錄當前在作什麼事。

這節課 咱們用鎖存器作了一塊 SRAM(靜態隨機存取存儲器),還有其餘類型的 RAM,如 DRAM,閃存和 NVRAM。它們在功能上與 SRAM 類似,但用不一樣的電路存單個位,- 好比用不一樣的邏輯門,電容器,電荷捕獲或憶阻器。但根本上 這些技術都是矩陣層層嵌套,來存儲大量信息。

相關文章
相關標籤/搜索