DRAM 儲存單元的讀寫


版本一:

DRAM(Dynamic Random Access Memory),即動態隨機存儲器,最常見的應用場景是電腦和手機的內存,是目前的電路系統中不可或缺的重要組成部分,本文會細致且較為形象的說明DRAM存儲數據以及讀取數據的全過程。
1. 單管構成的DRAM最小單元
單管DRAM是目前大容量存儲器唯一的選擇方案。電路構成上包括一個讀寫開關管和一個存儲電容器,如下圖所示。利用存儲電容器存儲數據,如果存儲電容器上存有電荷,則表示存儲單元存儲1,否則存儲O。
2

首先,要知道兩個前提:其一,施加到存儲電容上的電壓為1/2的電源電壓(Vcc/2);其二,由於電子是帶負電荷,因此,電子越多處電勢就越低。為了便於理清概念,我們把水庫頂部電勢定為0V,水庫底部的電勢定為Vcc。
存儲單元的三個基本操作
三個基本操作分別是存儲資料,寫入資料以及讀取資料三種。同樣,便於理解,將這三種過程用水庫存儲放掉水來類比,稍微形象一些。
存儲資料
資料存儲的示意圖如下所示,也就是當水庫閘門關閉時(行地址線路Vth=0V),水庫中的水無法流出,上游的水也無法流入,存儲在水庫中的水位保持不變,因此可以實現存儲資料的目的。水位的高低就用高低電平來表示。
3

寫入資料
資料的寫入可以分為寫入“0”的情形和寫入“1”的情形兩種。以寫入0的情形來說明。
4

具體順序是:首先,由於之前可能有資料,水庫中可能是滿水或者缺水空水的的狀態。然后,將上游水道(列地址選路)中水位上升到滿水,相當於低電位狀態(列地址線路Vcc=0V)。最后,利用行地址線路控制(Vth=高電平)將上游水閘門打開,由於上游水道(列地址線路Vcc=0V)水位全滿為高水位狀態,因此根據水庫中水位狀態,會將水池填滿,使得水庫變為高水位(低電平狀態0)。
5

類比,貨物過運河水閘的情形也非常容易理解,大家自行腦補。
讀取資料
DRAM存儲單元中讀取資料時,一般使用的列地址選路1/2VCC預充電技術。以讀取0為例。
6

首先,水庫中水位全滿(電位0V),水道中水位先預設在2.5V;然后,打開水閘,也就是行地址線路為高電平,使得水庫中的水回流到水道(列地址線路)中,由於水庫中水量很小,因此只能使得水道中水位微幅上升。當感應放大器檢測到水道的水位產生delta的變化時,就可以辨別出水庫(電容)中資料為0。
7

其中,水位的變化為:delta=5/2(1+Cb/Cs),水道(列地址線路)的電容量大於水庫(行地址線路)的容量。具體過程遠比這復雜,但是通過這種類比可以了解到工作原理,夠用了。
哦,對了,差了忘記了,如果沒有外界水道中的水來補充水庫,那么水庫中的水位由於蒸發、滲透,水量會慢慢減少,最后干涸。因此,原理圖中電容也是一樣,需要隔一段時間檢測刷新,充電,這就是動態的根本原因。

 

 

版本二:

MOSFET的控制原理——水庫模型

要說明這個MOSFET的控制原理,我們借助一個水庫的模型來說明。MOSFET有三個極,分別是源極(Source)、漏極(Drain)和柵極(Gate)。下圖左邊就是一個MOSFET的電路圖,右邊是我們畫出的一個水庫模型。
image010.jpg



圖中S為源極,D為漏極,G為柵極。S極連接着電容,D級連接列地址線路,並接到數據IO,G則是控制電荷流出的閥門,連接行地址線路。電容在充電后電勢會改變,這樣S極的電勢就會跟着改變,與D極形成電勢差,而G極的電勢,就決定了S極有多少電荷可以流入D極。由於電子是帶負電荷,因此電子越多電勢就越低。為了不至於混淆概念,我們把水池頂部電勢定為0V,水池底部電勢定為5V(僅舉例說明,DRAM中的電容實際電壓未必是5V)。當電子數量越多時,電勢越低,接近0V,電子數量越少時,電勢越高,接近5V。
image012.jpg

 



用水庫模型說明,就是左邊的水池水量升高(電容充電后),當閥門關閉時,左邊的水是不會往右邊流的。然后閥門打開(降低,電勢升高),左邊的水就可以往右邊流,閥門的高度就決定了有多少水能流去右邊的水道(但是在數字電路中,MOSFET只有開和關兩種狀態,因此下文提到的打開MOSFET就是全開);同樣道理如果右邊水多,閥門打開之后也可以向左邊流。因此在水庫模型中,電容就充當了左邊的水池,而MOSFET的柵極就充當了閥門,列地址線路和IO則充當了右邊的水道。

 

儲存數據

MOSFET柵極電勢為0V時,電容的電荷不會流出,因此數據就可以保存我們可以用2.5V為參考分界線,電容電勢低於2.5V時,表示數據0,電勢高於2.5V時,表示數據1。例如上一樓水庫模型的左圖,電容中儲存的電子數高於一半的高度,電勢低於2.5V,因此可以表示數據0。但以上只是理論情況,實際上電容會自然漏電,電子數量會逐漸減少,電勢就會逐漸升高,當電勢升高到2.5V以上時,數據就會出錯,因此每隔一段時間必須打開MOSFET往電容中充電,以保持電勢,這就是刷新。因此,數據的儲存主要就是對電容中電勢的保持操作。

寫入數據

數據寫入的操作分為寫入0和寫入1兩種情況。寫入前,電容原有的情況可能是高電勢與低電勢的狀態,我們不用管它。寫入0和寫入1對cell的操作不盡相同,我們分別來看。

先來看寫入0的操作。寫入開始時,IO線路上電勢為0(水道處於水位最高點),MOSFET柵極電勢升高到5V(水庫閥門降到最低),閥門打開,電容中的電勢就跟着降低(水位升高),直到接近0V(水池被灌滿),寫入0完成,柵極電勢降回0V,閥門關閉。
write-0.jpg



再看寫入1的操作。寫入開始時,IO線路上的電勢為5V(水道水位為最低點),MOSFET柵極電勢升高到5V(水庫閥門降到最低),閥門打開,電容中的電勢跟着升高(水流出並降低水位)到接近5V,寫入1完成,柵極電勢回到0V,閥門關閉。
write-1.jpg



讀取數據

讀取的時候,對漏極的電壓操作跟寫入有些不同。因為水道中的水比水池中的多,或者說水道的容量比水池要大得多。如果水道(漏極)的水為滿或者空,在閥門打開的時候很容易出現水道的水倒灌進水池的現象,或是水池的水全部流去水道,這樣就有可能導致電容中的電勢狀態改變,電容對應儲存的0或者1也會改變。所以讀取數據的時候,IO線路的電壓應為1/2的滿電勢,即2.5V。

讀取也同樣分讀取0和1兩種情況。在讀取之前,電容中的電勢應該是大於或者小於2.5V的,分別代表存儲了1和0。由於刷新機制的存在,應該不會允許出現等於2.5V的情況。

首先看讀取0操作。電容中為低電勢(假設為0V,水池為高水位),IO線路上電勢升高至2.5V(這時水道水位比水池低),MOSFET柵極電勢升高到5V(水庫閥門降到最低),閥門打開,電容中電勢升高(水位降低),但由於水道容量較大,因此水位不會升高太多,但是總歸也會有個電勢的變低,最終電容與IO線路上的電勢都變成0-2.5V的一個中間值,並且接近2.5V(假設為2.3V)。這時候感應放大器檢測到IO線路上電勢低於2.5V,因此識別出0讀出。
read-0.jpg



再看讀取1操作。電容中為高電勢(假設為5V,水池空),IO線路上電勢升高至2.5V(這時候水道水位比水池高),MOSFET柵極電勢升高到5V(水庫閥門降到最低),閥門打開,電容中電勢降低(水位升高),但由於水道容量較大,水位不會降低太多,不過多少也會降低一點(電勢會升高),假設升高到2.7V。這時候感應放大器檢測到IO線路的電勢高於2.5V,識別出1讀出。
read-1.jpg

 



以上講述的只是從cell到內存IO線路的讀寫操作,至於CPU-IMC-內存的讀寫操作,不在本文討論范圍。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM