撕裂內存,刨析原理

目錄:

  1. 內存的物理構造(與或非門)
    先來看一下能存一個字節(1)的邏輯門電路:
    在這裏插入圖片描述
    當B爲 1 時,無論 A的輸入是啥,輸出都是1。這也就意味着這個異或邏輯門電路能存一個字節爲 1 的數據。
    在來看一個能存 0 的邏輯門電路:
    在這裏插入圖片描述
    同樣的當B=0 時,無論 A 輸入是啥,此時的 out = 0 的。
    我們都知道計算機處理的數據是二進制的也即0和1,所以我們將 AND 和 OR 邏輯門電路組成起來,就可存二進制的數據了。
    組合起來的邏輯門電路如下:
    在這裏插入圖片描述
    SET 端就是用來數據輸入的,而 RESET 顧名思義就是復位用的。我們將這個邏輯門電路裝在一個黑箱子後:
    在這裏插入圖片描述
    我們將8個門鎖組合在一起就能構造一個寄存器(D觸發器)。
    PS:D觸發器的原理
    在這裏插入圖片描述
    這樣感覺是不是這很抽象? 那我們舉個栗子:
    在這裏插入圖片描述
    那麼你會問內存跟寄存器又有啥關係? 怎麼感覺一點關係都沒有呢?
    你可以這樣理解,我們將許多的寄存器(10億夠不夠?)組成矩陣。這樣多個矩陣就能組成內存了。這裏我將內存條放大,有個感性的認識。
    在這裏插入圖片描述
    有沒有看到放大最後的那張照片,裏面就是組成的矩陣。哈哈,現在是不是有點理解了?

2.CPU 訪問內存的過程
在這裏插入圖片描述
(1) BUS Request
申請地址總線的控制權,將訪問的地址發送給 MMU (內存控制器/內存管理單元) 。 MMU 將地址分解成 row 和 column 地址。
(2) [ Precharge ] and Row Access
即預充電 (後面說) 和行訪問,MMU 通過 BUS 將 row 發送給 Row Decoder 使其激活要訪問的那一行。
(3)Column Access
列訪問,MMU 通過 BUS 將 column 發送給 Column Decoder 使其激活要訪問的那一列。將(row,column)所指向的那一行數據 通過 Sens Amplifiers(讀出放大器)read 到 Data in/out Buffer 中。
(4) Bus Transmission
總線傳輸(row,column)所代表的數據。

這裏爲啥要把那一行都 read 到 buffer 中呢? 還不是爲了提高訪問速度,如果 cpu 下次訪問的數據還在那一行則直接從緩存中讀取出來。 那如果不是呢?
則將讀取出來那一行的狀態使其失效即可。 — Precharge (預充電)

小結:
其實從硬件在到邏輯角度理解內存就發現 哦? 原來內存內部構造是這樣的呀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章