DRAM命令到底是什么
本文將仔細研究用于控制和與 DRAM 交互的命令。
我之前的文章介紹了動態(tài)隨機存取存儲器,即 DRAM。DRAM 是一種需要經(jīng)常動態(tài)刷新的 RAM。這是因為 DRAM 使用一組電容器來存儲數(shù)字信息。當存在電荷時,存儲二進制“1”,而沒有電荷表示二進制“0”。DRAM 被組織成多個存儲體,這些存儲體進一步分為行和列。電容器位于這些行和列的交叉處。
圖 1 顯示了上一篇文章中介紹的 x4 DRAM bank。
圖 1. 帶有讀出放大器和解碼器的存儲器陣列
但是如何實際使用 DRAM 呢?處理器或內(nèi)存控制器如何告訴 DRAM 在特定位置返回或存儲特定數(shù)據(jù)?了解發(fā)送到 DRAM 芯片的命令是實際設(shè)計使用 DRAM 的系統(tǒng)的第一步。
基本 DRAM 命令
雖然 DRAM 可能因制造商而異,但大多數(shù) DRAM 芯片使用一組基本命令來執(zhí)行操作。為了執(zhí)行命令,內(nèi)存控制器會將值寫入 DRAM 中的一組輸入。這些輸入屬于 DRAM 的命令解碼器。該解碼器有一個 4 位輸入,根據(jù)位的組合,請求不同的命令。
圖 2. 帶輸入的 DRAM 解碼器(# 符號表示這些是低電平有效信號)
這些低電平有效輸入都有名稱,通常定義為 CS、CAS、RAS 和 WE:
CS:片選(啟用或禁用命令解碼器)
RAS:行地址選通
CAS:列地址選通
WE: 寫使能
這四個輸入允許將多達 16 個命令內(nèi)置到 DRAM 中。
圖 3 顯示了 DRAM 芯片的簡化視圖。它可以用作參考,以更好地理解列出的不同命令。
圖 3. DRAM 參考。圖片由Alliance Memory提供
命令禁止
命令禁止,或有時稱為設(shè)備取消選擇,禁用在 DRAM 上執(zhí)行命令的能力。要使用該命令,請將 CS 輸入拉高(忽略其他輸入,即“不關(guān)心”)。如前所述,CS 代表芯片選擇并禁用命令解碼器。因此,這將被拉高以抑制命令是有道理的。
啟用
激活本質(zhì)上是行訪問命令。意思是,它打開一行并將電荷從電容器移動到感應(yīng)放大器。訪問一行總是在 DRAM 中的一列之前完成。該命令與存儲體地址寄存器(選擇當前存儲體)和行地址寄存器(選擇所需行)的輸入配對。關(guān)于激活命令的一個重要注意事項是,當前打開的行保持打開狀態(tài),直到發(fā)出預充電命令(稍后將詳細介紹預充電)。要使用此命令,大多數(shù) DRAM 需要將 CS 和 RAS 拉低,而將 CAS 和 WE 拉高。
預充電
預充電會停用當前在銀行中打開的行。當發(fā)出預充電命令時,DRAM 被告知恢復從電容器行讀取的值。這是由讀出放大器完成的,當完成時,為另一行訪問做好準備。通過將 CS、RAS 和 WE 拉低并將 CAS 拉高來執(zhí)行預充電。
讀
讀取命令也可以被認為是列讀取命令。當與適當?shù)拇鎯w地址和列地址相結(jié)合時,最近從激活命令(行訪問)移入讀出放大器的數(shù)據(jù)現(xiàn)在被推送到數(shù)據(jù)總線上。DRAM 通常包含“讀取和自動預充電”命令,該命令執(zhí)行列讀取,然后關(guān)閉/預充電行。這樣,不需要發(fā)出單獨的預充電命令。如果需要訪問同一行但不同的列,則根本不會發(fā)出預充電,并且該行將保持打開狀態(tài)。要使用讀取命令,CS 和 CAS 被拉低,而 RAS 和 WE 被拉高。
寫
除了數(shù)據(jù)的方向之外,寫入命令實際上與讀取相同。在寫入命令期間,數(shù)據(jù)從數(shù)據(jù)總線中拉出并放入選定的存儲區(qū)、行和列。自動預充電可以像讀取一樣執(zhí)行,并在寫入完成時關(guān)閉當前激活的行。為了執(zhí)行寫操作,CS、CAS 和 WE 被拉低,而 RAS 保持高。
圖 4 以黃色顯示激活命令(行訪問),隨后以藍色顯示讀/寫命令(列訪問)。行列交叉處的數(shù)據(jù)(以綠色顯示)在讀出放大器和數(shù)據(jù)緩沖器之間移動。
圖 4. 突出顯示激活和讀/寫命令
刷新
DRAM 與其他類型的隨機存取存儲器的不同之處在于,用于存儲器存儲的電容器會隨著時間的推移而泄漏電荷。因此,DRAM 是動態(tài)的,因為它需要定期刷新。這就是刷新命令的用武之地。在 DRAM 中,刷新命令每隔一段時間就會發(fā)出一次。刷新的一個重要方面是任何活動的銀行都應(yīng)該在發(fā)出命令之前進行預充電。為了執(zhí)行刷新 CS、RAS 和 CAS 被拉低,WE 為高。
刷新后,DRAM 跟蹤最后刷新的行并遞增刷新計數(shù)器,以便下一個刷新命令對下一行進行操作。請記住,當發(fā)出刷新命令時,會刷新每個 bank 中的當前行。大多數(shù) DRAM 將每 64 毫秒執(zhí)行 8192 次刷新周期。那是每 7.813 μs。盡管設(shè)備密度不斷增加,但這種情況一直保持不變。
其他命令
其他常見的 DRAM 命令包括 NOP(無操作)、突發(fā)終止和加載模式寄存器。NOP 用于強制 DRAM 什么也不做。這在 DRAM 需要等待時很有用,例如當前正在刷新時。實際上,對 DRAM 的讀取和寫入是在短時間內(nèi)完成的。Burst terminate 將截斷讀或?qū)懨睿丛谕瓿芍皩⑵渫V埂RAM 可以置于不同的模式。這些模式通過加載模式寄存器命令進行更改。
圖 5 顯示了一個真值表,列出了用于執(zhí)行不同 DRAM 命令的解碼器輸入組合。
圖 5. DRAM 命令——真值表
結(jié)論
本文討論了 DRAM 能夠執(zhí)行的不同命令。這些命令由與 DRAM 交互的內(nèi)存控制器或 CPU 發(fā)起。
通過寫入 DRAM 命令解碼器的輸入來執(zhí)行命令。任何需要認真工作的系統(tǒng)都將具有板載內(nèi)存。如果您了解這些命令,那么在您的下一個項目中實現(xiàn) DRAM 將會容易得多。
-
DRAM
+關(guān)注
關(guān)注
40文章
2343瀏覽量
185242 -
控制
+關(guān)注
關(guān)注
5文章
1023瀏覽量
123580 -
內(nèi)存控制器
+關(guān)注
關(guān)注
0文章
40瀏覽量
9140
發(fā)布評論請先 登錄
看看芯片到底是如何設(shè)計的
“電感飽和”到底是什么意思?

評論