SDRAM是一種同步動態(tài)隨機(jī)訪問內(nèi)存,它具有內(nèi)置控制器,通過與CPU時鐘同步來工作,使得數(shù)據(jù)傳輸更為高效。SDRAM在內(nèi)存顆粒市場中占據(jù)主導(dǎo)地位,廣泛應(yīng)用于各種計(jì)算機(jī)系統(tǒng)和服務(wù)器中,為數(shù)據(jù)處理和存儲提供了快速且可靠的支持。 SDRAM具有高速度、高密度、低功耗等優(yōu)點(diǎn)。其內(nèi)部結(jié)構(gòu)采用Bank架構(gòu),允許同時進(jìn)行多個讀寫操作,從而提高了整體性能。此外,SDRAM還具有自動刷新功能,能夠確保數(shù)據(jù)在長時間內(nèi)保持正確性。 華芯微特已經(jīng)將SDRAM合封入芯片,合封的SDRAM大小根據(jù)芯片型號不同,具體見選型手冊。
SDRAM 結(jié)構(gòu)框圖
SDRAM的內(nèi)部是一個存儲陣列,將數(shù)據(jù)“填”進(jìn)去,你可以它想象成一張表格。和表格的檢索原理一樣,先指定一個行(Row),再指定一個列(Column),我們就可以準(zhǔn)確地找到所需要的單元格,這就是內(nèi)存芯片尋址的基本原理。 為了詳細(xì)地介紹SDRAM以及它的使用,以某一款SDRAM數(shù)據(jù)手冊結(jié)構(gòu)框圖來分析, 內(nèi)部主要構(gòu)成部分如下圖所示:
01 SDRAM 信號線
CLK:同步時鐘信號,提供SDRAM工作時鐘,所有輸入信號在CLK為上升沿時被采樣。 CKE:時鐘使能信號。時鐘使能進(jìn)入正常工作模式,時鐘失能進(jìn)入休眠模式或者自刷新模式。 CS :片選信號,低電平有效。 CAS:列地址選通,當(dāng)為低電平時地址線表示為列地址。 RAS:行地址選通,當(dāng)為低電平時地址線表示為行地址。 WE:讀寫指令切換信號。低電平:寫使能;高電平:讀使能。 DQM[1:0]:輸入/輸出掩碼信號,表示DQ數(shù)據(jù)的有效部分。當(dāng)DQM在讀取周期中被采樣為高時,輸出緩沖器被置于Hi-Z(具有2的延遲)。在寫入周期中,采樣DQM高電平將以零延遲阻止寫入操作。 BS:BANK地址輸入,選擇要控制的BNAK。 A[12:0]:地址信號線,地址線A10控制著是否進(jìn)行在讀或?qū)懖僮髦螽?dāng)前L-Bank自動進(jìn)行預(yù)充電。 DQ[15:0] :數(shù)據(jù)輸入輸出信號線。
對于DQM(Data I/O Mask)信號,每個DQM控制屏蔽8bit數(shù)據(jù),對于這款SDRAM,它是16bit的,UDQM可屏蔽高8位,LDQM可屏蔽低8位。對于16bit的數(shù)0xDDFF,我們?nèi)绻恍韪?位寫入,低8位不寫入,在寫入時可以將UDQM置低,LDQM置高。
02 SDRAM 操作命令
NO-Operation:空操作命令,用于選中SDRAM,防止SDRAM接受錯誤的命令,為接下來的命令發(fā)送做準(zhǔn)備。
Active (用于存儲單位尋址):激活命令,該命令必須在讀寫操作之前被發(fā)送,用于設(shè)置所需要的BANK和行地址 (同時設(shè)置) ,BANK地址由BS0(BA0),BS1(BA1)決定,行地址由A0~12決定。
Read / Write:讀/寫命令,在發(fā)送完激活命令后,并進(jìn)行讀寫再發(fā)送列地址就可以完成對SDRAM的尋址,并進(jìn)行讀寫操作。
Precharge:預(yù)充電指令,用于關(guān)閉BANK中所打開的行地址,準(zhǔn)備打開新行。進(jìn)行完讀寫操作后,要對同一BANK的另一行進(jìn)行尋址,就要將原來有效(打開)的行關(guān)閉,重新發(fā)送行/列地址。
Refresh:SDRAM存儲的數(shù)據(jù)需要不斷進(jìn)行刷新操作才能保存,用于刷新一行數(shù)據(jù),可以依次對所有的行進(jìn)行刷新操作。CKE引腳高電平為自動刷新(Auto Refresh),CKE為低電平是自我刷新(Self Refresh)。
自動刷新:依靠刷新計(jì)數(shù)器(行地址生成器)自動依次生成要刷新的行地址刷新周期 (完成一次所有行的刷新所需要的時間) :64ms。自我刷新:用于休眠低功耗狀態(tài)下的數(shù)據(jù)保存。
Mode Register Set:設(shè)置模式寄存器。SDRAM芯片內(nèi)部有一個邏輯控制單元,控制單元的相關(guān)參數(shù)由模式寄存器提供。該命令在每次對SDRAM進(jìn)行初始化時都需要用到。
具體模式設(shè)置,如下圖:
A0~A2:用來指定突發(fā)的長度,1,2,4,8或者全頁突發(fā)。所謂的“突發(fā)”是指當(dāng)我們對一個地址進(jìn)行尋址并操作完成后,不必再重新對下一個地址進(jìn)行尋址,而是直接進(jìn)行操作。
A3:設(shè)置突發(fā)的類型,連續(xù)型和非連續(xù)型。
A4~A6:指定潛伏期的長度,可以選擇延時2,3兩個周期。
A9:用來指定操作模式。
03 SDRAM容量計(jì)算
SDRAM總存儲容量 =行數(shù)×列數(shù)×L-Bank的數(shù)量×存儲單元的容量
Row Address : A0~A11
Column Address : A0-A8
Bank = 4
Data Width=16bit
Capacity=212x 29x 4bank x 16bit=128Mbit
04 SDRAM上電初始化過程
1、VDD (供輸入buffer和邏輯電路)和VDDQ(供輸出buffer)上電,此期間CKE保持低電平。2、開始時鐘并使CKE置高。
3、電源、時鐘都穩(wěn)定后,再等待200uS。
4、發(fā)出預(yù)充電命令。
5、發(fā)出多個 (8個以上) 刷新命令 (REF)。
6、發(fā)出模式寄存器設(shè)置命令 (MRS),初始化模式寄存器 (DDR2 中還有EMRS,進(jìn)行ODT.OCD等功能的設(shè)置和調(diào)整)。
05 SDRAM 讀寫時序
這里從SDRAM手冊截取讀時序進(jìn)行分析,這里需要參考下圖的操作命令具體值與時序圖一起分析。
1.讀時序(Burst Length = 4, CAS Latency = 3, Auto-Precharge))
讀取數(shù)據(jù)過程:
1)發(fā)送激活命令,設(shè)置行地址和Bank地址。
2)設(shè)置列地址,發(fā)送讀命令。
3)將A10地址線拉高,自動預(yù)充電使能。
4)開始執(zhí)行預(yù)充電。
5) 完成數(shù)據(jù)讀取。
2.寫時序(Auto-Precharge Write,Burst Length = 4)
寫過程跟讀取類似:
1)發(fā)送激活命令,設(shè)置行地址和Bank地址。
2)設(shè)置列地址,發(fā)送寫命令。
3)將A10地址線拉高,自動預(yù)充電使能
4)開始執(zhí)行預(yù)充電。
5) 完成數(shù)據(jù)寫入。
-
芯片
+關(guān)注
關(guān)注
456文章
51154瀏覽量
426294 -
SDRAM
+關(guān)注
關(guān)注
7文章
430瀏覽量
55316 -
寄存器
+關(guān)注
關(guān)注
31文章
5363瀏覽量
120949
原文標(biāo)題:芯課堂|SDRAM工作原理及時序分析
文章出處:【微信號:gh_ed4f95bde4df,微信公眾號:華芯微特32位MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論