1.DDR4 x8 x16
x8表示單顆數(shù)據(jù)位寬為8bit序攘,x16表示單顆數(shù)據(jù)位寬為16bit
x8的DDR4有4個(gè)bank group,每個(gè)bank group連接4個(gè)bank。
x16的DDR4有2個(gè)bank group,每個(gè)bank group連接4個(gè)bank
2.DDR4帶寬計(jì)算方法
DDR4可以在時(shí)鐘的上邊沿與下邊沿都發(fā)送數(shù)據(jù)。所以在計(jì)算傳輸速度的時(shí)候需要乘一個(gè)2聚磺。比如對(duì)DDR4 2400MT/s而言。意味著該DDR4每秒可以傳輸2400M次鄙信,這意味著蹈丸。該DDR可以工作在1200M的頻率。如果DDR4的位寬為64bit玻墅。那么傳輸速度為2400M * 64/8=18.75GB/s介牙。如果user 端的頻率為300M,位寬為512bit澳厢』反。可以計(jì)算出速度為:300M * 512/8=18.75GB/s。
3.DDR4內(nèi)部結(jié)構(gòu)
內(nèi)部多通道——Bank Group
它在內(nèi)部設(shè)計(jì)了Bank Group架構(gòu)剩拢,每個(gè)Bank Group可以獨(dú)立讀寫數(shù)據(jù)线得,這樣一來(lái)內(nèi)部的數(shù)據(jù)吞吐量大幅度提升,可以同時(shí)讀取大量的數(shù)據(jù)徐伐,內(nèi)存的等效頻率在這種設(shè)置下也得到巨大的提升框都。如果內(nèi)存內(nèi)部設(shè)計(jì)了兩個(gè)獨(dú)立的bank group那么相當(dāng)于每次操作16bit的數(shù)據(jù)。
點(diǎn)對(duì)點(diǎn)總線
傳統(tǒng)的DDR3設(shè)計(jì)中內(nèi)存和內(nèi)存控制器采用多點(diǎn)分支總線鏈接。這種總線允許在一個(gè)接口上掛接很多規(guī)格的芯片魏保。這種設(shè)計(jì)類似于為每次只能雙向通行一對(duì)汽車的道路邊修建倉(cāng)庫(kù)熬尺,倉(cāng)庫(kù)直連道路,雖然每個(gè)倉(cāng)庫(kù)都有自己的運(yùn)輸車和運(yùn)輸能力谓罗,但道路只允許每次雙向通行一對(duì)車粱哼,因此這種設(shè)計(jì)如果不停的加修倉(cāng)庫(kù),只是擴(kuò)大了存儲(chǔ)能力而已檩咱,對(duì)運(yùn)輸能力幫助不大揭措。
DDR4拋棄了這種設(shè)計(jì),轉(zhuǎn)而采用點(diǎn)對(duì)點(diǎn)總線刻蚯。點(diǎn)對(duì)點(diǎn)總線的特性是內(nèi)存控制器每通道只能支持唯一的一根內(nèi)存绊含,相比多點(diǎn)分支總線,點(diǎn)對(duì)點(diǎn)相當(dāng)于為每個(gè)倉(cāng)庫(kù)都設(shè)計(jì)了一條道路
DDR4的效率問(wèn)題
從內(nèi)存控制器的角度來(lái)分析炊汹,一個(gè)Group FSM每三個(gè)系統(tǒng)周期可以發(fā)送一個(gè)CAS指令躬充。就算地址遞增,連續(xù)發(fā)生頁(yè)命中讨便。如果只有一個(gè)Group FSM在發(fā)送指令充甚。那么DDR4的最高效率也只有1/3=33.3%。
如果同時(shí)只有兩個(gè)Group FSM在發(fā)送霸褒。那么效率就是2/3= 66.7%伴找。當(dāng)有4個(gè)Group FSM在運(yùn)作時(shí),效率可以達(dá)到100%
DDR4中的延遲信息
- tRAS (Row Active Time) :行激活時(shí)間(Row Active) 表示從內(nèi)存行有效命令發(fā)出至預(yù)充電命令發(fā)出之間的最短時(shí)間废菱。 如果tRAS的周期太長(zhǎng)技矮,系統(tǒng)會(huì)因?yàn)闊o(wú)謂的等待而降低性能。如果tRAS的周期太短殊轴,則可能因缺乏足夠的時(shí)間而無(wú)法完成數(shù)據(jù)的突發(fā)傳輸衰倦,這樣會(huì)引發(fā)丟失數(shù)據(jù)或損壞數(shù)據(jù)。
- tRP (Row precharging time):表示行預(yù)充電時(shí)間梳凛。tRP用來(lái)設(shè)定在另一行能被激活之前耿币,現(xiàn)有的工作行需要的充電時(shí)間。從開(kāi)始關(guān)閉現(xiàn)有的工作行韧拒,到可以打開(kāi)新的工作行之間的間隔就是tRP淹接。
- tRCD (RAS to CAS Delay ) :是行激活到讀指令發(fā)送的時(shí)間
- tCL (CAS latency) : 列地址脈沖選通潛伏期,從讀指令和列地址一起發(fā)送到數(shù)據(jù)有效的時(shí)間間隔
- tRC (Row cycle time):表示“ SDRAM行周期時(shí)間 ”叛溢,它是 包括行單元預(yù)充電到激活在內(nèi)的整個(gè)過(guò)程所需要的最小的時(shí)鐘周期數(shù) 塑悼。其計(jì)算公式是: (tRC) =(tRAS) + (tRP)。
https://blog.csdn.net/fillthesky/article/details/52204200
https://blog.csdn.net/njuitjf/article/details/18360741
DDR存取的步驟
內(nèi)存是根據(jù)行和列尋址的楷掉,當(dāng)請(qǐng)求觸發(fā)后厢蒜,最初是tRAS(Activeto Precharge Delay),預(yù)充電后,內(nèi)存才真正開(kāi)始初始化RAS斑鸦。一旦tRAS激活后愕贡,RAS(Row Address Strobe )開(kāi)始進(jìn)行需要數(shù)據(jù)的尋址。首先是行地址巷屿,然后初始化tRCD固以,周期結(jié)束,接著通過(guò)CAS訪問(wèn)所需數(shù)據(jù)的精確十六進(jìn)制地址嘱巾。期間從CAS開(kāi)始到CAS結(jié)束就是CAS延遲憨琳。所以CAS是找到數(shù)據(jù)的最后一個(gè)步驟,也是內(nèi)存參數(shù)中最重要的旬昭。
在數(shù)據(jù)讀取完之后篙螟,為了騰出讀出放大器以供同一Bank內(nèi)其他行的尋址并傳輸數(shù)據(jù),內(nèi)存芯片將進(jìn)行預(yù)充電的操作來(lái)關(guān)閉當(dāng)前工作行问拘。還是以上面那個(gè)Bank示意圖為例遍略。當(dāng)前尋址的存儲(chǔ)單元是B1、R2场梆、C6墅冷。如果接下來(lái)的尋址命令是B1纯路、R2或油、C4,則不用預(yù)充電驰唬,因?yàn)樽x出放大器正在為這一行服務(wù)顶岸。但如果地址命令是B1、R4叫编、C4辖佣,由于是同一Bank的不同行,那么就必須要先把R2關(guān)閉搓逾,才能對(duì)R4尋址卷谈。從開(kāi)始關(guān)閉現(xiàn)有的工作行,到可以打開(kāi)新的工作行之間的間隔就是tRP(Row Precharge command Period霞篡,行預(yù)充電有效周期)世蔗,單位也是時(shí)鐘周期數(shù)。
端口信號(hào)
init_calib_complete
是一個(gè)高有效信號(hào)朗兵,表明DDR4的初始化和校準(zhǔn)已經(jīng)完成污淋,可以正常接受信號(hào)了。
內(nèi)存控制器
控制器操縱DRAM的時(shí)鐘頻率和系統(tǒng)時(shí)鐘的比率為4比1