最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【知乎】DDR3快速掃盲

2023-12-11 18:01 作者:Bili_394329148  | 我要投稿


【DDR3】快速掃盲

【DDR3】快速掃盲

smith John

FPGA開發(fā)

24 人贊同了該文章

目錄

收起

DDR3基礎簡介

關鍵技術

Prefetch 預取

Burst 突發(fā)傳輸

示例:MT41K256M16xx-125

時鐘頻率與帶寬

地址及容量計算

關于容量的計算

引腳說明

控制組

地址組

數(shù)據(jù)組

DDR操作

命令模式

DES & NOP

ZQCL & ZQCS

ACT

PRE & PREA

RD

WR

REF

SRE & SRX

write leveling

系統(tǒng)狀態(tài)機

DDR3基礎簡介

DDR3 SDRAM(double-data-rate 3 synchronous dynamic RAM)即第三代雙倍數(shù)據(jù)速率同步動態(tài)隨機存儲器。

  • 同步:指DDR3數(shù)據(jù)的讀取寫入是按時鐘同步的

  • 動態(tài):指DDR3中的數(shù)據(jù)掉電無法保存,且需要周期性的刷新,才能保持數(shù)據(jù)

  • 隨機存?。嚎梢噪S機操作任一地址的數(shù)據(jù)

  • 雙倍數(shù)據(jù)速率:時鐘的上升沿和下降沿都發(fā)生數(shù)據(jù)傳輸

關鍵技術

Prefetch 預取

DRAM內(nèi)部存儲單元的核心頻率提高比較困難且成本較高,引入 prefetch 來保障數(shù)據(jù)傳輸速率的增長。本質上是并串轉換,通過并行方式提前取得數(shù)據(jù)再串行輸出,從而提升數(shù)據(jù)傳輸速率。

在DDR3中采用8-bit prefetch或8-n prefetch(n代表芯片位寬),從而使實際數(shù)據(jù)傳輸速率為核心頻率的8倍。

芯片位寬的另一種說法是配置模式(Configuration),在DDR3時代,一般有x4,x8,x16
當DDR3 為x8 Configuration時,一個Cell的容量為8x8bits,即8個字節(jié)。換一句話說,在指定bank、row地址和col地址之后,可以往該地址內(nèi)寫入(或讀?。? Bytes。

http://blog.chinaaet.com/justlxy/p/5100052027

blog.chinaaet.com/justlxy/p/5100052027

Burst 突發(fā)傳輸

Burst(突發(fā))是指在同一行中相鄰的存儲單元連續(xù)進行數(shù)據(jù)傳輸?shù)姆绞健?/p>

Burst Lengths(突發(fā)長度,簡稱BL)指連續(xù)傳輸所涉及到存儲單元(列)的數(shù)量就是突發(fā)長度。

在DDR3 SDRAM時代,內(nèi)部配置采用了8n prefetch(預?。﹣韺崿F(xiàn)高速讀寫。這也導致了DDR3的Burst Length一般都是8。當然也有Bursth ength為4的設置(BC4),是指另外4筆數(shù)據(jù)是不被傳輸?shù)幕蛘弑徽J為無效。

示例:MT41K256M16xx-125

以MT41K256M16 為例,其命名規(guī)則如下:

時鐘頻率與帶寬

關于DDR的時鐘頻率相關參數(shù)主要有如下三種:

  • core freq: 核心頻率,用于DDR內(nèi)部cell(存儲單元)的時鐘

  • clock freq:時鐘頻率,用于DDR的IO buffer的時鐘,同時也是IO接口時鐘,是通過核心頻率倍頻4倍得到

  • data bus/rate:數(shù)據(jù)速率,單根數(shù)據(jù)線的數(shù)據(jù)傳送次數(shù)

他們之間的關系如下:

從 part number 中的 speed 選項可知,-125 所支持的最小時鐘周期 tCK = 1.25ns,對應芯片支持的最大 IO 時鐘頻率為 800MHz。

不同速度等級對應的時間參數(shù)如下:

表中 data rate 為單數(shù)據(jù)線的數(shù)據(jù)速率,DDR為雙邊沿傳輸,因此 -125 對應 1600 MT/s(Mega Transfers/s),有時也對應稱此內(nèi)存為 DDR3-1600

那么這片16位數(shù)據(jù)線內(nèi)存的帶寬為:


在實際應用確定DDR3工作頻率時,除了DDR3本身時鐘速率的限制,我們還需要考慮控制器所能支持的輸出頻率。例如,MT41K256M16是支持1.35V(DDR3L)和1.5V(DDR3)兩個電平標準,當我們用 Xilinx K7的FF封裝FPGA芯片作為控制器時,參考 DS182 手冊查看支持的最高速率:

采用不同bank類型以及電壓均對支持的最大速率有影響

地址及容量計算

所對應的功能框圖如下:

MT41J256M16擁有18根地址線和16跟數(shù)據(jù)線:

端口類型描述BA[2:0]I地址線:Bank地址選擇,模式寄存器選擇A[14:0]I地址線:復用行列地址線DQ[15:0]I/O數(shù)據(jù)線

在DDR4往后,開始有BANK GROUP概念,BANK被劃分為兩組BANK GROUP,由BG0進行控制,此時BA變?yōu)閮晌?。并且地址線A中擁有1位專用于區(qū)分行地址和列地址??蓞⒖迹篽ttps://blog.csdn.net/u012489236/article/details/107730731

從DDR的命名中可以知道:MT41J256M16 是一片 256M*16 bit = 4 Gb 容量的內(nèi)存。4Gb 這個系列根據(jù)顆粒大小的參數(shù)區(qū)別如下:

DDR3的內(nèi)部是由8個邏輯 bank 組成,如下所示

每個bank類似于一個表格,通過指定行與列來確定具體的存儲單元。DDR3通過分時復用的方式,將有限的地址線能夠尋址更大的容量。

對于DDR3還有物理 bank 概念(即 rank),rank 針對于系統(tǒng)而非內(nèi)存本身。內(nèi)存為了保證CPU正常工作,必須一次傳輸完CPU在一個傳輸周期內(nèi)所需總線位寬的數(shù)據(jù)。目前這個位寬通常為64 bit,如果DDR3有128 bit地址線,則為2個rank。

關于容量的計算

在1個bank中,有15位行地址與10位列地址,數(shù)據(jù)寬度為16位(每個存儲單元為16bit)。

  • 行地址容量為:2^15 = 32K

  • 列地址容量為:2^10 = 1K

  • 每個bank的地址總容量為:32K * 1K = 32 M,即 configuration 中對應的 32 Meg

  • DDR總地址容量為:32M * 8 = 256 M,即名稱中的 256 Meg

  • 每行的存儲容量為:1K * 16 bit = 16 Kbit = 2 KB,稱為 page size

我們對應功能框圖中的一個bank容量標識:

(行地址)(列地址)(數(shù)據(jù)寬度預?。?/p>


列地址/8與突發(fā)傳輸有關,對于DDR3一般突發(fā)長度為8(對應8-bit prefetch),每次傳輸8列的數(shù)據(jù),因此列地址只需要原來的八分之一。

從功能框圖也可以看到,列地址尋址范圍為 2^7,只有7bit用于了列地址譯碼:

列地址的低三位 A[2:0]以及 A[3] 被用作 burst 讀寫中地址順序的規(guī)定:

比如一次Burst Read的時候如果CA[2:0]=3’b001表示低三位從地址1開始讀取, - CA3=0的時候按順序讀取1,2,3,0,5,6,7,4,
  • CA3=1的時候為交錯讀取1,0,3,2,5,4,7,6。

對于Prefetch而言,正好是8N Prefetch,對于Burst而言對應BL8。BC4其實也是一次BL8的操作,只是丟棄了后一半的數(shù)據(jù)。

引腳說明

為了更好的認識,可以將DDR3的數(shù)字引腳按照功能分類為:控制組,地址組和數(shù)據(jù)組三類

控制組

所有帶#信號均為低電平有效

名稱功能描述CK,CK#差分時鐘輸入所有控制和地址輸入信號在CK上升沿和CK#的下降沿交叉處被采樣,輸出數(shù)據(jù)選通(DQs,DQS#)參考與CK和CK#的交叉點。CKE時鐘使能內(nèi)部時鐘使能信號CS#片選CS#為低時DDR芯片使能,CS#的參考值是VREFCARAS#行地址行地址標識信號,其參考值是VREFCACAS#列地址列地址標識信號,其參考值是VREFCAWE#讀寫低電平表示寫,高電平表示讀操作,其參考值是VREFCARESET#復位參考值是 VSSODT片上終端使能在正常操作使能時,ODT僅對:DQ[7:0]、DQS、DQS#和DM引腳有效。如果通過LOADMODE命令禁止,ODT輸入被忽略。ODT的參考值是VREFCA。ZQ#外部校準輸出驅動校準的外部參考,這個引腳應該連接240歐姆電阻到VSSQ。

CS#,RAS#,CAS#和WE#可以構成命令組,它們將在時鐘的上升沿被采用,在DDR手冊中可以查看對應的真值表。

地址組

名稱功能描述A[14:0]地址總線為 ACTIVATE命令提供行地址
為 READ/WRTE 命令提供列地址和自動預充電位(A10),以便從某個Bank的內(nèi)存陣列里選出一個位置。
LOAD MODE命令期間,地址輸入提供一個操作碼。地址輸入的參考值是 VREFCABA[2:0]bank選通確定要操作的Bank,參考值是VREFCA

數(shù)據(jù)組

名稱功能描述DQ數(shù)據(jù)總線雙向總線DQS,DQS#數(shù)據(jù)選通用于數(shù)據(jù)同步:
讀時是輸出,邊緣與讀出的數(shù)據(jù)對齊。
寫時是輸入,中心與寫數(shù)據(jù)對齊。TDQS,TDQS#數(shù)據(jù)選通功能與DQS相同,只是當兩種不同的DIMM混合應用在同一個系統(tǒng)時,DQS的負載就會不同,這樣會造成信號完整性問題,TDQS就是為了解決這個問題的。
當TDQS使能時,DM必須禁止,TDQS和TDDS提供終端電阻。DM數(shù)據(jù)屏蔽DM是寫數(shù)據(jù)的輸入屏蔽信號,在寫期間,當DM信號被采樣為高時,輸入數(shù)據(jù)被屏蔽。
雖然DM僅作為輸入腳,但是DM負載被設計成與DQ和DQS腳負載相匹配。DM的參考值是 VREFCA。
注意: DQS與DM共用一個物理引腳,所以DM可選作為TDQS。

DDR操作

命令模式

其中V表示邏輯電平H或L。

DES & NOP

DES(取消選擇)和NOP(無操作)命令比較類似:

  • DES防止DRAM執(zhí)行新命令

  • NOP防止不需要的命令在空閑或等待期間執(zhí)行

對于已經(jīng)進行的操作兩者都不會影響

ZQCL & ZQCS

ZQCL(ZQ校準長)和ZQCS(ZQ校準短)都用于校準,區(qū)別在于:

  • ZQCL用于上電初始化和復位序列期間執(zhí)行初始校準,校準完成后會更新RON和ODT值。

  • ZQCS用于執(zhí)行定期校準來解決電壓和溫度的小變化,在64個時鐘周期內(nèi)完成校準

ACT

ACT(啟用)用于打開(或激活)特定bank中的行以便后續(xù)訪問。在此期間該行將保持打開(或活動)直到該bank發(fā)出PRECHARGE命令。打開同一bank中不同行之前必須執(zhí)行PRECHARGE命令。

PRE & PREA

PRECHARGE(預充電) 命令?于取消激活特定 bank 中的打開或全部 bank。bank 在發(fā)出預充電命令的 tRP 時間后可以繼續(xù)訪問后續(xù)行。

bank 在預充電后處于空閑狀態(tài),在任意讀操作之前必須激活(ACT)bank或發(fā)出寫命令(WR)。

RD

READ命令用于啟動對話行的突發(fā)讀取訪問。

  • 輸? A[2:0] 以及突發(fā)順序表選擇起始列地址。

  • 輸? A[10] 上的值決定是否使??動預充電。如果選擇了?動預充電,則正在訪問的行將在 READ 突發(fā)結束時進行預充電,否則該行將保持打開狀態(tài)以供后續(xù)訪問。

  • 輸入 A[12] 上的值(如果模式寄存器啟用)決定使用BC4(0)或BL8(1)

WR

WRITE 命令?于啟動對活動行的突發(fā)寫?訪問。

  • 輸入 BA[2:0] 值決定選擇 bank,地址 A 的作用與 RD 相似

  • 出現(xiàn)在 DQ 上的輸?數(shù)據(jù)被寫?受 DM 輸?影響,如果給定的 DM 信號為低電平,數(shù)據(jù)將被寫入內(nèi)存,反之數(shù)據(jù)將被忽略。

REF

REFRESH(刷新) 命令在 DRAM 正常運行期間使?,與地址位無關,平均間隔為7.8us。最多可以將?個 REFRESH 命令發(fā)布到任何 給定的 DRAM。

SRE & SRX

SELF REFRESH(自刷新) 命令?于在 DRAM 中保留數(shù)據(jù),DRAM ?需外部時鐘即可保留數(shù)據(jù)。

write leveling

為了更好的信號完整性,DDR3 SDRAM 內(nèi)存模塊對命令、地址、控制信號和時鐘采?了 fly-by 拓撲。Fly-by拓撲能有效減少stub的長度,但是較長的走線帶來了CK-CK#與DQS-DQS#間的時延(由于CK-CK#的飛行時間,其到達每個DDR3顆粒的時間不同,而DQS-DQS#通常為點到點拓撲)。

write leveling(寫均衡)通過 DRAM 提供的簡單反饋功能調整或消除 DRAM 上的 DQS 選通脈沖(DQS、DQS#)與 CK 的關系。

Wrtie leveling 是一個完全自動的過程。CPU 不停的發(fā)送不同時延的DQS 信號,DDR3 SDRAM 顆粒在DQS-DQS#的上升沿采樣CK 的狀態(tài),并通過DQ 線反饋給DDR3 控制器??刂破鞫朔磸偷恼{整DQS-DQS#的延時,直到控制器端檢測到DQ 線上0 到1 的跳變(說明tDQSS參數(shù)得到了滿足)。控制器就lock 住此時的delay value。此時便完成了一個Wrtie leveling過程。

Leveling 過程中,DQS-DQS#從控制器端輸出,所以在DDR3 SDRAM 側必須進行端接;同理,DQ 線由DDR3 SDRAM 顆粒側輸出,在控制器端必須進行端接;

系統(tǒng)狀態(tài)機




發(fā)布于 2022-11-11 15:20?IP 屬地上海

ddr3

FPGA開發(fā)

存儲器

發(fā)布一條帶圖評論吧


6 條評論

默認

最新

電子機械工人

Rank和Bank可是不一樣哦

03-21 · IP 屬地美國

smith John

作者

batman

印象里ZYNQ的功能引腳都分配好了,推薦你去Xilinx官網(wǎng),找對應芯片的開發(fā)板套件,會有原理圖設計文件可以參考

06-08 · IP 屬地上海

batman

您好我想問下,就硬件電路來說,RAS#,CAS#和WE#怎么連接呢,我使用的ZYNQ,DDR控制器BANK沒有這三個引腳,可以不可接多余的地址線A15~A17呢。ZYNQ手冊也沒有寫。

06-07 · IP 屬地陜西

掩耳盜鈴響叮當

請教下BC4有什么作用呢?只要一半數(shù)據(jù)的話,DM不是也能做到嗎?

11-23 · IP 屬地湖南

smith John

作者

是為了向前兼容DDR2

11-23 · IP 屬地上海


【知乎】DDR3快速掃盲的評論 (共 條)

分享到微博請遵守國家法律
木里| 会昌县| 武陟县| 沙湾县| 尤溪县| 陆丰市| 东乌珠穆沁旗| 紫云| 中阳县| 嘉峪关市| 冀州市| 太和县| 友谊县| 孝义市| 扎赉特旗| 固原市| 嘉兴市| 胶州市| 潮安县| 会泽县| 蓬安县| 全州县| 从江县| 隆林| 仙游县| 呼和浩特市| 深州市| 留坝县| 唐海县| 曲麻莱县| 金门县| 武川县| 潞城市| 长治市| 融水| 建瓯市| 武鸣县| 邓州市| 太湖县| 大关县| 塘沽区|