SDRAM設計之重新整理(二)

2021-10-12 03:02:15 字數 1230 閱讀 2694

今天來聊一聊關於sdram的重新整理操作,sdram的全稱:同步動態隨機訪問記憶體(synchronous dynamic random-access memory),動態就體現於sdram晶元需要每隔特定的時間就需要進行一次重新整理操作,用於保證已經被寫入的資料不丟失。由此可以發現,重新整理操作是很關鍵的操作,重新整理操作不及時,會造成資料的丟失,這在系統中是絕對不容許發生的事情,甚至造成嚴重的後果。

每個sdram晶元的手冊首頁都會有這樣一條,以美光的一款sdram mt48lc16m16a2為例,如下圖所示:

上圖中表示的就是在64ms內,需要進行8192次重新整理,可以算出多久就需要重新整理一次,即64000us/8192次=7.8125us/次;這裡要注意一下,這個重新整理頻率是乙個臨界值,一般為了保證能夠滿足需求,重新整理周期要設計的比7.8125us稍微小一點,這樣就能夠保證64ms內能夠重新整理夠8192次,當然也不能太小了,一直讓sdram進行重新整理,資料固然是丟不了了,但是重新整理過程我們是無法進行讀、寫操作的,會大大壓縮留給我們讀寫的時間,使得我們的設計讀寫能力不夠。

可以考慮下,這款晶元的行位址一共有13bit,也就是說剛好每個bank都會有8192行,由此可以看出重新整理周期和行數是否有某種神秘關係呢,這裡不做過多的討論了…

下面來看一下重新整理的時序圖,了解下重新整理的時序過程:

將重新整理過程總結如下:

首先執行一次precharge 命令,一般選擇對所有bank進行操作;

至少 等待 trp時間,在此期間需要執行nop命令,所有的bank將會進入idle state;

執行一次atuto refresh 命令;

至少等待trfc時間,在此期間需要執行nop命令;

執行一次atuto refresh 命令;

至少等待trfc時間,在此期間需要執行nop命令;

至此sdram的重新整理已經完成,可以進行後續的各種命令操作。

注意下時序圖中的notes,trfc期間除了nop和inhibit命令以外,不要給其他命令,在fpga設計中就是得注意我們時序邏輯中的最後乙個else,決定暫存器是保持輸出,還是進入乙個預設狀態,**設計時需注意。

同樣補充乙個命令列表,sdram各種控制命令是通過控制幾個引腳配合來完成的:

就到這裡了,sdram系列持續更新中…

SDRAM的重新整理操作

sdram的重新整理操作 sun 403 重新整理操作分為兩種 自動重新整理 auto refresh,簡稱 ar 與自重新整理 self refresh,簡稱 sr 不論是何種重新整理方式,都不需要外部提供行位址資訊,因為這是乙個內部的自動操作。對於 ar,sdram 內部有乙個行位址生成器 也稱...

SDRAM控制器設計(4)自動重新整理 自重新整理操作

ps 重新整理 預充電 重新整理操作與預充電中重寫的操作一樣,都是用s amp先讀再寫。但為什麼有預充電操作還要進行重新整理呢?因為預充電是對乙個或所有l bank中的工作行操作,並且是不定期的,而重新整理則是有固定的週期,依次對所有行進行操作,以保留那些久久沒有經歷重寫的儲存體中的資料。但與所有l...

FPGA之SDRAM控制器設計(二)

fpga之sdram控制器設計 二 重新整理 這次要來解決上次留下來的重新整理問題,在100us後首先要經過兩次重新整理才進行模式暫存器設定。這顆sdram晶元需要每隔64ms對8192行 列位址10 位,行位址13位 的每乙個儲存電容進行一次重新整理,因為不重新整理電充會洩露電流導致儲存資訊丟失。...