内存攻略:SDRAM应用解析
生活随笔
收集整理的這篇文章主要介紹了
内存攻略:SDRAM应用解析
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
SDRAM(Synchronous Dynamic Random Access Memory) 同步動態(tài)隨機存儲器,同步是指 Memory工作需要同步時鐘,內(nèi)部的命令的發(fā)送與數(shù)據(jù)的傳輸都以它為基準;動態(tài)是指存儲陣列需要不斷的刷新來保證數(shù)據(jù)不丟失;隨機是指數(shù)據(jù)不是線性依次存儲,而是自由指定地址進行數(shù)據(jù)讀寫(from baidu)。
SDRAM的儲存是由電容介質(zhì)充放電實現(xiàn)的,掉電丟失。
下面我們拿三星的一款SDRAM作為樣本詳細解析 這塊芯片是一塊CMOS技術(shù)芯片,標準供電電壓3.3V SDRAM芯片的地址都有行列之分,相當于一個表格給定行地址和列地址就能確定其中的某個數(shù)據(jù),一塊芯片里有幾個不同的表格,每個表格稱為一個bank 該芯片(大部分SDRAM)中有4個bank
上圖中有三種型號*4 *8 *16分別表示輸出數(shù)據(jù)寬度為4bit,8bit,16bit 上圖中的引腳作用如下(#代表低電平有效)
CLK?????????? ?系統(tǒng)時鐘?????????????? ??? 邊沿采樣,系統(tǒng)時鐘必須供給才能讓芯片運作 #CS????????? ? 片選信號???????????????? ??能夠屏蔽對芯片的操作,除了CLK,CKE,DQM腳不被影響 CKE??????????? 時鐘使能信號????????? ?當它為0時能夠屏蔽系統(tǒng)時鐘以此來凍結(jié)整個芯片(類似鎖存作用)在發(fā)送命令一個時鐘周期之前就必須將CKE置1 A0~A12????? 地址????????????????????????? 行列地址共用這個信號,行地址占用A0~A12,列地址占用(x4 : CA0~ CA9,CA11), (x8 : CA0~ CA9), (x16 : CA0~ CA8)
BA0~BA1?? bank選擇地址???????????在行地址鎖存時間時激活某個bank,在列地址鎖存時間時選擇bank來讀寫(后面會說) #RAS???????? 行地址鎖存???????????????當它為0時在時鐘邊沿時鎖存行地址 #CAS???????? 列地址鎖存?????????????? 當它為0時在時鐘邊沿時鎖存列地址 #WE????????? 寫使能?????????????????????? 使能寫,使能行預(yù)充電 DQM?????????數(shù)據(jù)輸入輸出屏蔽???? 使數(shù)據(jù)輸出腳變成高阻態(tài),屏蔽數(shù)據(jù)輸入 DQ0~n???? ?數(shù)據(jù)輸入輸出??????????? 這些腳同時是數(shù)據(jù)輸入腳也是數(shù)據(jù)輸出腳(x4 : DQ0~3), (x8 : DQ0~7), (x16 : DQ0~15) VDD????????? 電源 VSS????????? 地 VDDQ?????? 數(shù)據(jù)電源???????????????????數(shù)據(jù)電源需要較小的噪聲干擾 VSSQ?????? 數(shù)據(jù)地?????????????????????? 同樣需要較小的噪聲干擾 NC???????????無連接
下面是芯片工作環(huán)境的相關(guān)參數(shù),一般商用SDRAM的標準值應(yīng)該也差不多
下面我們通過真值表來對使用時序進行分析
H高電平,L低電平,X無影響,V有效的
SDRAM的初始化: 當VDD和VDDQ被同時加電后,首先需要維持CLK時鐘還有CKE為1,DQM為1,200us的延時(期間空操作,對應(yīng)No Operation Command),然后就需要一個預(yù)充電指令Precharge我們選擇所有bank預(yù)充電,這個指令的值可以在真值表中看出,然后執(zhí)行2個以上自動刷新Auto refresh接著就執(zhí)行Mode register set SDRAM具有模式寄存器,通過該模式寄存器,可以切換SDRAM的操作模式
Mode register set(模式寄存器設(shè)置)相關(guān)信息 如果A9在模式寄存器設(shè)置周期為1,"Burst Read Single Bit Write(突發(fā)讀單bit寫)"功能將允許,RFU在模式寄存器設(shè)置周期應(yīng)該保持為0 在模式寄存器周期之后芯片就能夠正常讀寫了
先來說下突發(fā)的概念 在實際工作中,bank地址與相應(yīng)的行地址是同時發(fā)出的,這個命令叫做“行有效”或“行激活”對應(yīng)前面圖中bank active&row addr。 在此之后將發(fā)送列地址尋址命令與具體的操作命令(讀還是寫),這兩個命令也是同時發(fā)出的我們叫“讀/寫”(看真值表) 從”行有效“到“讀/寫”命令發(fā)出之間的間隔被定義為tRCD(RAS to CAS Delay),直白地說“行選通周期”,它是SDRAM時序的一個重要參數(shù),需要根據(jù)控制芯片頻率而定。 tRCD以時鐘周期為單位 翻看數(shù)據(jù)手冊,我們可以發(fā)現(xiàn)該芯片的tRCD的最小值 接下來,相關(guān)的列地址被選中后,將會觸發(fā)數(shù)據(jù)傳輸。數(shù)據(jù)從儲存器到達IO口仍然需要一定時間,該時間被定義為CL(CAS Lantency) 直白地說,列地址脈沖選通潛伏期 CL也是以時鐘周期為單位,對于SDRAM,寫入是沒有潛伏期的 突發(fā)(burst)是指在同一行周期中相鄰的存儲單元連續(xù)進行數(shù)據(jù)傳輸?shù)姆绞?#xff0c;連續(xù)傳輸?shù)闹芷跀?shù)就是突發(fā)長度(Burst Lengths)BL 在進行突發(fā)傳輸時,只要指定起始列地址與突發(fā)長度,內(nèi)存就會依次自動對后面相應(yīng)數(shù)量的存儲單元進行讀/寫操作而不再需要控制器連續(xù)地提供列地址 這樣,除了第一次數(shù)據(jù)傳輸需要若干周期(主要是tRCD+CL)外,其后每個數(shù)據(jù)只需要一個時鐘周期就可以獲得。 在讀取完數(shù)據(jù)之后為了騰出讀出放大器以供同一bank內(nèi)其他行的尋址并行傳輸數(shù)據(jù),內(nèi)存芯片要進行預(yù)充電工作,如果當前尋址的存儲單元是bank1, 行2,列6,接下來的尋址是bank1,行2,列8,則不用預(yù)充電,因為讀出放大器正在為這一行服務(wù),但如果是bank1,行4,列2,因為不同行,就必須先把行2關(guān)閉 從開始關(guān)閉現(xiàn)有行工作到可以打開新行的工作之間的時間間隔是tRP(Row Precharge command period)行預(yù)充電有效周期,單位也是時鐘周期數(shù)
預(yù)充電:如果在讀寫完一行后要對同一bank另一行進行尋址,就要將原有效行關(guān)閉,準備打開新有效行重新尋址。關(guān)閉原有效行,準備打開新行的操作就是預(yù)充電。 預(yù)充電可以通過命令控制,也可以通過輔助設(shè)定讓芯片在每次讀寫操作之后自動執(zhí)行。在發(fā)送預(yù)充電命令之后,需要一段時間才能允許發(fā)送行有效,這個間隔就是tRP
刷新:SDRAM需要不斷刷新來保留數(shù)據(jù),刷新操作分為兩種,自動刷新Auto Refresh和自刷新Self Refresh,都是一個內(nèi)部的自動操作。 自動刷新:SDRAM內(nèi)部有一個行地址生成器,用來自動依次生成行地址,由于刷新是針對一行中的所有儲存體進行,所以無需列尋址,所以是列提前于行方式刷新 自刷新:主要用于休眠模式低功耗模式下的數(shù)據(jù)儲存,此時不需要依靠系統(tǒng)時鐘工作,而是根據(jù)內(nèi)部時鐘進行刷新操作,在SR期間除了SKE之外的所有外部信號都是無效的。 只有重新使能CKE才能退出自刷新模式進入正常狀態(tài)。
數(shù)據(jù)掩碼(DQM):在講述讀/寫操作時,我們談到了突發(fā)長度,如果BL=4,那么也就是說一次傳送4*位寬bit數(shù)據(jù)。但是,如果其中的第二筆數(shù)據(jù)不需要怎么辦,這就用到了該技術(shù) 通過DQM,內(nèi)存可以控制IO端口取消哪些輸入或者輸出數(shù)據(jù)。在讀取時,被屏蔽的數(shù)據(jù)仍然會從儲存體傳出,只是被屏蔽。
下面我們拿三星的一款SDRAM作為樣本詳細解析 這塊芯片是一塊CMOS技術(shù)芯片,標準供電電壓3.3V SDRAM芯片的地址都有行列之分,相當于一個表格給定行地址和列地址就能確定其中的某個數(shù)據(jù),一塊芯片里有幾個不同的表格,每個表格稱為一個bank 該芯片(大部分SDRAM)中有4個bank
上圖中有三種型號*4 *8 *16分別表示輸出數(shù)據(jù)寬度為4bit,8bit,16bit 上圖中的引腳作用如下(#代表低電平有效)
CLK?????????? ?系統(tǒng)時鐘?????????????? ??? 邊沿采樣,系統(tǒng)時鐘必須供給才能讓芯片運作 #CS????????? ? 片選信號???????????????? ??能夠屏蔽對芯片的操作,除了CLK,CKE,DQM腳不被影響 CKE??????????? 時鐘使能信號????????? ?當它為0時能夠屏蔽系統(tǒng)時鐘以此來凍結(jié)整個芯片(類似鎖存作用)在發(fā)送命令一個時鐘周期之前就必須將CKE置1 A0~A12????? 地址????????????????????????? 行列地址共用這個信號,行地址占用A0~A12,列地址占用(x4 : CA0~ CA9,CA11), (x8 : CA0~ CA9), (x16 : CA0~ CA8)
BA0~BA1?? bank選擇地址???????????在行地址鎖存時間時激活某個bank,在列地址鎖存時間時選擇bank來讀寫(后面會說) #RAS???????? 行地址鎖存???????????????當它為0時在時鐘邊沿時鎖存行地址 #CAS???????? 列地址鎖存?????????????? 當它為0時在時鐘邊沿時鎖存列地址 #WE????????? 寫使能?????????????????????? 使能寫,使能行預(yù)充電 DQM?????????數(shù)據(jù)輸入輸出屏蔽???? 使數(shù)據(jù)輸出腳變成高阻態(tài),屏蔽數(shù)據(jù)輸入 DQ0~n???? ?數(shù)據(jù)輸入輸出??????????? 這些腳同時是數(shù)據(jù)輸入腳也是數(shù)據(jù)輸出腳(x4 : DQ0~3), (x8 : DQ0~7), (x16 : DQ0~15) VDD????????? 電源 VSS????????? 地 VDDQ?????? 數(shù)據(jù)電源???????????????????數(shù)據(jù)電源需要較小的噪聲干擾 VSSQ?????? 數(shù)據(jù)地?????????????????????? 同樣需要較小的噪聲干擾 NC???????????無連接
下面是芯片工作環(huán)境的相關(guān)參數(shù),一般商用SDRAM的標準值應(yīng)該也差不多
下面我們通過真值表來對使用時序進行分析
H高電平,L低電平,X無影響,V有效的
SDRAM的初始化: 當VDD和VDDQ被同時加電后,首先需要維持CLK時鐘還有CKE為1,DQM為1,200us的延時(期間空操作,對應(yīng)No Operation Command),然后就需要一個預(yù)充電指令Precharge我們選擇所有bank預(yù)充電,這個指令的值可以在真值表中看出,然后執(zhí)行2個以上自動刷新Auto refresh接著就執(zhí)行Mode register set SDRAM具有模式寄存器,通過該模式寄存器,可以切換SDRAM的操作模式
Mode register set(模式寄存器設(shè)置)相關(guān)信息 如果A9在模式寄存器設(shè)置周期為1,"Burst Read Single Bit Write(突發(fā)讀單bit寫)"功能將允許,RFU在模式寄存器設(shè)置周期應(yīng)該保持為0 在模式寄存器周期之后芯片就能夠正常讀寫了
先來說下突發(fā)的概念 在實際工作中,bank地址與相應(yīng)的行地址是同時發(fā)出的,這個命令叫做“行有效”或“行激活”對應(yīng)前面圖中bank active&row addr。 在此之后將發(fā)送列地址尋址命令與具體的操作命令(讀還是寫),這兩個命令也是同時發(fā)出的我們叫“讀/寫”(看真值表) 從”行有效“到“讀/寫”命令發(fā)出之間的間隔被定義為tRCD(RAS to CAS Delay),直白地說“行選通周期”,它是SDRAM時序的一個重要參數(shù),需要根據(jù)控制芯片頻率而定。 tRCD以時鐘周期為單位 翻看數(shù)據(jù)手冊,我們可以發(fā)現(xiàn)該芯片的tRCD的最小值 接下來,相關(guān)的列地址被選中后,將會觸發(fā)數(shù)據(jù)傳輸。數(shù)據(jù)從儲存器到達IO口仍然需要一定時間,該時間被定義為CL(CAS Lantency) 直白地說,列地址脈沖選通潛伏期 CL也是以時鐘周期為單位,對于SDRAM,寫入是沒有潛伏期的 突發(fā)(burst)是指在同一行周期中相鄰的存儲單元連續(xù)進行數(shù)據(jù)傳輸?shù)姆绞?#xff0c;連續(xù)傳輸?shù)闹芷跀?shù)就是突發(fā)長度(Burst Lengths)BL 在進行突發(fā)傳輸時,只要指定起始列地址與突發(fā)長度,內(nèi)存就會依次自動對后面相應(yīng)數(shù)量的存儲單元進行讀/寫操作而不再需要控制器連續(xù)地提供列地址 這樣,除了第一次數(shù)據(jù)傳輸需要若干周期(主要是tRCD+CL)外,其后每個數(shù)據(jù)只需要一個時鐘周期就可以獲得。 在讀取完數(shù)據(jù)之后為了騰出讀出放大器以供同一bank內(nèi)其他行的尋址并行傳輸數(shù)據(jù),內(nèi)存芯片要進行預(yù)充電工作,如果當前尋址的存儲單元是bank1, 行2,列6,接下來的尋址是bank1,行2,列8,則不用預(yù)充電,因為讀出放大器正在為這一行服務(wù),但如果是bank1,行4,列2,因為不同行,就必須先把行2關(guān)閉 從開始關(guān)閉現(xiàn)有行工作到可以打開新行的工作之間的時間間隔是tRP(Row Precharge command period)行預(yù)充電有效周期,單位也是時鐘周期數(shù)
預(yù)充電:如果在讀寫完一行后要對同一bank另一行進行尋址,就要將原有效行關(guān)閉,準備打開新有效行重新尋址。關(guān)閉原有效行,準備打開新行的操作就是預(yù)充電。 預(yù)充電可以通過命令控制,也可以通過輔助設(shè)定讓芯片在每次讀寫操作之后自動執(zhí)行。在發(fā)送預(yù)充電命令之后,需要一段時間才能允許發(fā)送行有效,這個間隔就是tRP
刷新:SDRAM需要不斷刷新來保留數(shù)據(jù),刷新操作分為兩種,自動刷新Auto Refresh和自刷新Self Refresh,都是一個內(nèi)部的自動操作。 自動刷新:SDRAM內(nèi)部有一個行地址生成器,用來自動依次生成行地址,由于刷新是針對一行中的所有儲存體進行,所以無需列尋址,所以是列提前于行方式刷新 自刷新:主要用于休眠模式低功耗模式下的數(shù)據(jù)儲存,此時不需要依靠系統(tǒng)時鐘工作,而是根據(jù)內(nèi)部時鐘進行刷新操作,在SR期間除了SKE之外的所有外部信號都是無效的。 只有重新使能CKE才能退出自刷新模式進入正常狀態(tài)。
數(shù)據(jù)掩碼(DQM):在講述讀/寫操作時,我們談到了突發(fā)長度,如果BL=4,那么也就是說一次傳送4*位寬bit數(shù)據(jù)。但是,如果其中的第二筆數(shù)據(jù)不需要怎么辦,這就用到了該技術(shù) 通過DQM,內(nèi)存可以控制IO端口取消哪些輸入或者輸出數(shù)據(jù)。在讀取時,被屏蔽的數(shù)據(jù)仍然會從儲存體傳出,只是被屏蔽。
總結(jié)
以上是生活随笔為你收集整理的内存攻略:SDRAM应用解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Kaggle比赛] 高频股价预测小结
- 下一篇: IBM T43 刷bios 装win7教