DDR協(xié)議解析
DRAM內(nèi)部分割成多個L-Bank,每個L-Bank形狀相同,彼此獨立,可以獨立工作。早期的DRAM芯片內(nèi)部分為2個L-Bank,后來是4個,DDR3內(nèi)存芯片為8個。在進(jìn)行尋址時需要先確定是哪個L-Bank,然后再在這個選定的L-Bank中選擇相應(yīng)的行與列進(jìn)行尋址。對內(nèi)存的訪問,一次只能是一個L-Bank,而每次與CPU交換的數(shù)據(jù)就是 L-Bank 存儲陣列中一個“存儲單元”的容量。SDRAM內(nèi)存芯片一次傳輸?shù)臄?shù)據(jù)量就是芯片的位寬,那么這個存儲單元的容量就是芯片的位寬(也是 L-Bank 的位寬)。下圖為4BANK內(nèi)存顆粒內(nèi)部結(jié)構(gòu)示意圖。
針對內(nèi)存的操作指令有如下幾種:
1).Command INHIBIT(初始化);
2).No Operation(無動作);
3).Active(使指定L-Bank中的指定行有效);
4).Read(從指定L-Bank中的指定列開始讀取數(shù)據(jù));
5).Write(從指定L-Bank中的指定列開始寫入數(shù)據(jù));
6).Burst Terminate(突發(fā)傳輸終止);
7).Precharge(預(yù)充電命令,關(guān)閉指定或全部L-Bank中的工作行);
8).Auto Refresh(自動刷新);
9).Load Mode Register(模式寄存器加載);
10).寫允許/輸出允許;
11).寫禁止/輸出屏蔽
基本命令是通過操作各種控制信號/地址信號的組合來完成。下表中除了自刷新命令外,所有命令都是默認(rèn)CKE有效(其中H代表高電平,L代表低電平,X 表示高低電平?jīng)]有影響)。
內(nèi)存的初始化
一旦VDD、VDDQ被同時家電,并且時鐘已經(jīng)穩(wěn)定,SDRAM需要一個200us的延遲,在這個時間段中,Command INHIBIT和No Operation指令有效,這個過程實際上就是內(nèi)存的自檢過程,一旦這個過程通過后,一個Precharge命令就會生效,在這個命令周期中,內(nèi)存會處于Idle狀態(tài)。隨后執(zhí)行幾個Auto Refresh周期,之后SDRAM為模式寄存器編程做準(zhǔn)備。整個初始化過程如下圖所示,其中前3個操作應(yīng)該都是DDR內(nèi)部自動完成的。
參數(shù)解釋:
下圖為一個完整的從行尋址到行關(guān)閉的時序圖(其中tRCD=2、CL=2、tRP=2)。
tRCD (RAS to CAS Delay / ACTIVE toREAD/WRITE delay):
表示行尋址到列尋址延遲時間。從行有效到讀/寫命令發(fā)出之間的間隔被定義為tRCD,也叫行選通周期。這是根據(jù)存儲陣列電子元件響應(yīng)時間(從一種狀態(tài)到另一種狀態(tài)變化的過程)所制定的延遲。
CL (CAS latency):
表示內(nèi)存讀作前列地址選通的潛伏時間。相關(guān)的列地址被選中之后,將會觸發(fā)數(shù)據(jù)傳輸,但從存儲單元中輸出到真正出現(xiàn)在內(nèi)存芯片的 I/O 接口之間還需要一定的時間(數(shù)據(jù)的觸發(fā)有延遲,而且還需要進(jìn)行信號放大)。 這個參數(shù)控制內(nèi)存接收到一條數(shù)據(jù)讀取指令后要等待多少個時鐘周期。同時該參數(shù)也決定了在一次內(nèi)存突發(fā)傳送過程中完成第一部分傳送所需要的時鐘周期數(shù)。在保證穩(wěn)定性的前提下,CL值越小,則內(nèi)存的速度越快。 CL是找到數(shù)據(jù)的最后一個步驟,也是內(nèi)存參數(shù)中最重要的參數(shù)。
tRP (Row precharging time):
表示行預(yù)充電時間。tRP用來設(shè)定在另一行能被激活之前,現(xiàn)有的工作行需要的充電時間。從開始關(guān)閉現(xiàn)有的工作行,到可以打開新的工作行之間的間隔就是tRP。
tRAS(Row Active Time / Active to PrechargeDelay):
表示從內(nèi)存行有效命令發(fā)出至預(yù)充電命令發(fā)出之間的最短時間。 如果tRAS的周期太長,系統(tǒng)會因為無謂的等待而降低性能。如果tRAS的周期太短,則可能因缺乏足夠的時間而無法完成數(shù)據(jù)的突發(fā)傳輸,這樣會引發(fā)丟失數(shù)據(jù)或損壞數(shù)據(jù)。
tRC (Row cycle time):
表示“ SDRAM行周期時間”,它是包括行單元預(yù)充電到激活在內(nèi)的整個過程所需要的最小的時鐘周期數(shù)。其計算公式是: (tRC) =(tRAS) + (tRP)。
tDQSS( WRITE Command tothe first corresponding rising edge of DQS):
發(fā)出寫入命令后,DQS與寫入數(shù)據(jù)要等一段時間才會送達(dá)。為什么要有這樣的延遲設(shè)計呢?原因也在于同步,畢竟一個時鐘周期兩次傳送,需要很高的控制精度,它必須要等接收方做好充分的準(zhǔn)備才行。tDQSS是DDR內(nèi)存寫入操作的一個重要參數(shù),太短的話恐怕接受有誤,太長則會造成總線空閑。tDQSS最短不能小于0.75個時鐘周期,最長不能超過1.25個時鐘周期。有人可能會說,如果這樣,DQS不就與芯片內(nèi)的時鐘不同步了嗎?對,正常情況下,tDQSS是一個時鐘周期,但寫入時接受方的時鐘只用來控制命令信號的同步,而數(shù)據(jù)的接受則完全依靠DQS進(jìn)行同步,所以 DQS與時鐘不同步也無所謂。不過,tDQSS產(chǎn)生了一個不利影響——讀后寫操作延遲的增加,如果CL=2.5,還要在tDQSS基礎(chǔ)上加入半個時鐘周期,因為命令都要在CK的上升沿發(fā)出。
tMRD(Mode Register Delay) :
表示在進(jìn)行初始化時,從LOAD MODEREGISTER命令發(fā)出到可以執(zhí)行ACTIVE / REFRESH命令的時間。
tWR(Write Recovery Time):
表示寫恢復(fù)延時。指在一個激活的bank中完成有效的寫操作及預(yù)充電前,必須等待多少個時鐘周期。 這段必須的時鐘周期用來確保在預(yù)充電發(fā)生前,寫緩沖中的數(shù)據(jù)可以被寫進(jìn)內(nèi)存單元中。過低的tWR雖然提高了系統(tǒng)性能,但可能導(dǎo)致數(shù)據(jù)還未被正確寫入到內(nèi)存單元中,就發(fā)生了預(yù)充電操作,會導(dǎo)致數(shù)據(jù)的丟失及損壞。
tRFC(AUTO REFRESH Command period) :
表示Auto Refresh所需要的時間。
tRRD(Row to Row Delay / RAS to RAS delay /ACTIVE to ACTIVE delay) :
表示行單元到行單元的延時。該值也表示向相同bank中的同一個行單元兩次發(fā)送激活指令之間的時間間隔。tRRD值越小越好,延遲越低表示下一個行能更快地被激活,進(jìn)行讀寫操作。
深圳穎特新科技作為【華邦代理商】,公司擁有穩(wěn)定的進(jìn)貨渠道,貨源直接、充足,信譽第一,貨真價實,優(yōu)質(zhì)服務(wù),公平交易,取信于客戶,向廣大客戶提供價格合理的優(yōu)質(zhì)產(chǎn)品。想了解更多關(guān)于winbond 系列的技術(shù)資料,請咨詢 QQ:83650012
編輯:simon 最后修改時間:2019-09-29