本篇內(nèi)容主要講解“SDRAM是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“SDRAM是什么”吧!
網(wǎng)站建設(shè)、基于H5技術(shù)技術(shù)的Web開發(fā)、手機(jī)站開發(fā)、微信開發(fā)等互聯(lián)網(wǎng)應(yīng)用服務(wù)。成都創(chuàng)新互聯(lián)公司始終關(guān)注著互聯(lián)網(wǎng)行業(yè)的前沿動(dòng)態(tài),創(chuàng)新互聯(lián)堅(jiān)信:真誠的態(tài)度,勤奮的工作是我們贏得客戶信賴的基礎(chǔ);而不斷創(chuàng)新、力求完美,才是創(chuàng)新互聯(lián)共同邁向美好未來的保證。
Synchronous Dynamic Random Access Memory: 同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器. 同步 : 由soc發(fā)送時(shí)鐘給SDRAM, 通過該時(shí)鐘的節(jié)拍來發(fā)送控制信號(hào). 動(dòng)態(tài) : 存儲(chǔ)器需要不斷的刷新來保證數(shù)據(jù)不丟失. 隨機(jī) : 數(shù)據(jù)非線性存儲(chǔ), 可自由指定地址進(jìn)行數(shù)據(jù)的讀寫
圖1 本開發(fā)板用兩片sdram來配置為32bit位寬的sdram.
sdram的檢索原理和表格一樣, 通過先指定行, 再指定列就能準(zhǔn)確找到所需要的存儲(chǔ)單元. 但是由于技術(shù)/成本的原因, 一個(gè)sdram內(nèi)部不可能只有一個(gè)表格, 目前基本是4個(gè), 這個(gè)類似表格一樣的結(jié)構(gòu)叫做 邏輯Bank, L-Bank. 這樣要找到某個(gè)存儲(chǔ)單元就要先確定是哪個(gè)bank, 然后選定行,再選定列.
行有效
必須先使能芯片, 選中相應(yīng)的L-BANK, 再使能 行(ROW), 再使能 列(COLUMN)來對(duì)某個(gè)存儲(chǔ)單元進(jìn)行讀寫.
圖2 行有效時(shí)序圖
通過BA0\BA1來選中某個(gè)L-BANK, 通過RAS\CAS來區(qū)分 行 與 列. 這是同時(shí)進(jìn)行的, 所以行有效也可以稱為 L-BANK有效
列讀寫
行選通之后就可以發(fā)送列地址對(duì)存儲(chǔ)單元進(jìn)行讀寫了. 讀/寫 命令是通過 WE 信號(hào)線來區(qū)分的, WE = 1 : 寫入 ; WE = 0 : 讀取
圖3 命令列表
由上表可知, SDRAM的各種指令都是通過 控制/地址線 的高低電平組合來完成的, 并沒有命令字. 所以 讀寫命令 與 列地址 同時(shí)發(fā)出.
圖4 讀寫操作示意圖
CAS(ColumnAddress Strobe,列地址選通脈沖)信號(hào)配合A0-A9/A11(不固定)來確定具體的列地址.
圖5
在發(fā)送列讀寫命令時(shí)必須要與行有效命令有一個(gè)間隔,這個(gè)間隔被定義為tRCD,即RAS to CAS Delay(RAS至CAS延遲),也可以理解為行選通周期,這應(yīng)該是根據(jù)芯片存儲(chǔ)陣列電子元件響應(yīng)時(shí)間(從一種狀態(tài)到另一 種狀態(tài)變化的過程)所制定的延遲。tRCD是SDRAM的一個(gè)重要時(shí)序參數(shù),廣義的tRCD以時(shí)鐘周期(tCK,Clock Time)數(shù)為單位,比如tRCD=2,就代表延遲周期為兩個(gè)時(shí)鐘周期,具體到確切的時(shí)間,則要根據(jù)時(shí)鐘頻率而定,對(duì)于PC100的SDRAM,tRCD=2,代表20ns的延遲,對(duì)于PC133則為15ns
BWSCON = 0x2201 1110
BWSCON[31] = 0, 禁止數(shù)據(jù)掩碼引腳
數(shù)據(jù)掩碼
在講述讀/寫操作時(shí),我們談到了突發(fā)長(zhǎng)度。如果BL=4,一次就傳送4×64bit的數(shù)據(jù)。但是,如果第二筆 數(shù)據(jù)是不需要的,怎么辦?為了屏蔽不需要的數(shù)據(jù),人們采用了數(shù)據(jù)掩碼(Data I/O Mask,簡(jiǎn)稱DQM)技術(shù)。通過DQM,內(nèi)存可以控制I/O端口取消哪些輸出或輸入的數(shù)據(jù)。這里需要強(qiáng)調(diào)的是,在讀取時(shí),被屏 蔽的數(shù)據(jù)仍然會(huì)從存儲(chǔ)體傳出,只是在“掩碼邏輯單元”處被屏蔽。為了精確屏蔽一個(gè)P-Bank位寬中的每個(gè)字節(jié),每個(gè)DIMM有8個(gè)DQM信號(hào)線,每個(gè)信號(hào)針對(duì)一個(gè)字節(jié)。這樣,對(duì)于4bit位寬芯片,兩個(gè)芯片共用一個(gè)DQM信號(hào)線,對(duì)于8bit位寬芯片,一個(gè)芯片占用一個(gè)DQM信號(hào),而對(duì)于16bit位寬芯片,則需要兩個(gè)DQM引腳。SDRAM官方規(guī)定,在讀取時(shí)DQM發(fā)出兩個(gè)時(shí)鐘周期后生效,而在寫入時(shí),DQM與寫入命令一樣是立即成效
BWSCON[30] = 0, 禁止WAIT信號(hào)
BWSCON[29:28] = 1:0; 設(shè)置BANK7數(shù)據(jù)總線寬度為32bit
(BANK6同BANK7)
BANKCONx = 0x0700
BANKCONx( 0 <= x <= 5)用來控制BANK0~BANK5外接設(shè)備的訪問時(shí)序, 采用默認(rèn)值即可
BANKCONx(6 <= x <= 7) = 0x0001 8005
BANKCONx[16:15] = 1:1, 設(shè)置存儲(chǔ)器類型為 SDRAM
BANKCONx[3:0] = 0:1:0:1, 設(shè)置RAS到CAS的延遲(tRCD)為3個(gè)時(shí)鐘, 設(shè)置列地址數(shù)為9bit
REFRESH = 0x008C 07A3
BANKCONx[23] = 1, 使能自動(dòng)刷新功能
BANKCONx[22] = 0, Auto refresh, 等于1為 self refresh
BANKCONx[21:20] = 0:0, 預(yù)充電時(shí)間為2個(gè)時(shí)鐘周期 (預(yù)充電見解釋)
BANKCONx[19:18] = 1:1, 設(shè)置半行周期時(shí)間為7個(gè)時(shí)鐘
BANKCONx[10:0] 設(shè)置刷新計(jì)數(shù), 刷新計(jì)數(shù)= 2^11+1-12*7.8=1955( 0x07A3 )
刷新
之所以稱為DRAM,就是因?yàn)樗粩噙M(jìn)行刷新(Refresh)才能保留住數(shù)據(jù),那么要隔多長(zhǎng)時(shí)間進(jìn)行一次刷新呢? 我們?cè)诳磧?nèi)存規(guī)格時(shí),經(jīng)常會(huì)看到4096 Refresh Cycles/64ms或8192 Refresh Cycles/64ms的標(biāo)識(shí),這里的4096與8192就代表這個(gè)芯片中每個(gè)L-Bank的行數(shù)。刷新命令一次對(duì)一行有效,發(fā)送間隔也是隨總行數(shù)而變化,4096行時(shí)為15.625μs(微秒,1/1000毫秒),8192行時(shí)就為7.8125μs. 刷新操作分為兩種:Auto Refresh,簡(jiǎn)稱AR與Self Refresh,簡(jiǎn)稱SR。不論是何種刷新方式,都不需要外部提供行地址信息,因?yàn)檫@是一個(gè)內(nèi)部的自動(dòng)操作。
預(yù)充電
由于SDRAM的尋址具有獨(dú)占性,所以在進(jìn)行完讀寫操作后,如果要對(duì)同一L-Bank的另一行進(jìn)行尋址,就要將原來有效(工作) 的行關(guān)閉,重新發(fā)送 行/列地址。L-Bank關(guān)閉現(xiàn)有工作行,準(zhǔn)備打開新行的操作就是預(yù)充電(Precharge)
BANKSIZE = 0xB1
BANKCONx[7] = 1, 使能突發(fā)操作
BANKCONx[6] = 0, 保留
BANKCONx[5] = 1, 使能SDRAM掉電模式
BANKCONx[4] = 1, 設(shè)置只在訪問SDRAM的時(shí)候發(fā)送時(shí)鐘
BANKCONx[3] = 0, 保留
BANKCONx[2:0] = 0:0:1, BANK6/BANK7存儲(chǔ)器映射大小 = 64MB/64MB
數(shù)據(jù)輸入(寫入)
圖7
數(shù)據(jù)寫入的操作也是在tRCD之后進(jìn)行,但此時(shí)沒有了CL(記住,CL只出現(xiàn)在讀取操作中),行尋址與列尋址的時(shí)序圖和上文一樣 ,只是在列尋址時(shí),WE#為有效狀態(tài)。從圖中可見,由于數(shù)據(jù)信號(hào)由控制端發(fā)出,輸入時(shí)芯片無需做任何調(diào)校,只需直接傳到數(shù)據(jù)輸入寄存器中,然后再由寫入驅(qū)動(dòng)器進(jìn)行對(duì)存儲(chǔ)電容的充電操作,因此數(shù)據(jù)可以與CAS同時(shí)發(fā)送,也就是說寫入延遲為0。不過,數(shù)據(jù)并不是即時(shí)地寫入存儲(chǔ)電容,因?yàn)檫x通三極管 (就如讀取時(shí)一樣)與電容的充電必須要有一段時(shí)間,所以數(shù)據(jù)的真正寫入需要一定的周期。為了保證數(shù)據(jù)的可靠寫入,都會(huì)留出足夠的 寫入/校正時(shí)間(tWR,Write Recovery Time),這個(gè)操作也被稱作寫回(Write Back)。tWR至少占用一個(gè)時(shí)鐘周期或再多一點(diǎn)(時(shí)鐘頻率越高,tWR占用周期越多),有關(guān)它的影響將在下文進(jìn)一步講述
突發(fā)長(zhǎng)度
突發(fā)(Burst)是指在同一行中相鄰的存儲(chǔ)單元連續(xù)進(jìn)行數(shù)據(jù)傳輸?shù)姆绞?,連續(xù)傳輸所涉及到存儲(chǔ)單元(列)的數(shù)量就是突發(fā)長(zhǎng)度(Burst Lengths,簡(jiǎn)稱BL)
非突發(fā)連續(xù)讀取模式:依次單獨(dú)尋址,此時(shí)可等效于BL=1。雖然可以讓數(shù)據(jù)是連續(xù)的傳輸,但每次都要發(fā)送列地 址與命令信息,控制資源占用極大
突發(fā)連續(xù)讀取模式:只要指定起始列地址與突發(fā)長(zhǎng)度,尋址操作與數(shù)據(jù)的讀取操作自動(dòng)進(jìn)行,只要控制好兩段突發(fā)讀取命令的間隔周期(與BL 相同)即可做到連續(xù)的突發(fā)傳輸
突發(fā)讀/突發(fā)寫,表示讀與寫操作 都是突發(fā)傳輸?shù)?,每次讀/寫操作持續(xù)BL所設(shè)定的長(zhǎng)度,這也是常規(guī)的設(shè)定
突發(fā)讀/單一寫,表示讀操作是突發(fā)傳輸,寫操作則只是 一個(gè)個(gè)單獨(dú)進(jìn)行。突發(fā)傳輸模式代表著突發(fā)周期內(nèi)所涉及到的存儲(chǔ)單元的傳輸順序
MRSR = 0x30
MRSR[6:4] = 0:1:1, 設(shè)置 發(fā)送讀取命令到第一個(gè)數(shù)據(jù)輸出的時(shí)間 為 3 個(gè)時(shí)鐘周期
數(shù)據(jù)輸出(讀出)
在CAS 發(fā)出之后,仍要經(jīng)過一定的時(shí)間才能有數(shù)據(jù)輸出,從CAS與讀取命令發(fā)出到第一筆數(shù)據(jù)輸出的這段時(shí)間,被定義為CL(CAS Latency,CAS潛伏期)。由于CL只在讀取時(shí)出現(xiàn),所以CL又被稱為讀取潛伏期(RL,Read Latency)。CL的單位與tRCD一樣,為時(shí)鐘周期數(shù),具體耗時(shí)由時(shí)鐘頻率決定
圖6 CL=2與tAC示意圖
JZ2440的裸機(jī)SDRAM代碼執(zhí)行流程:
到此,相信大家對(duì)“SDRAM是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)頁題目:SDRAM是什么
URL標(biāo)題:http://aaarwkj.com/article38/pcscsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站設(shè)計(jì)公司、做網(wǎng)站、App設(shè)計(jì)、網(wǎng)站策劃、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)