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