讀寫分離 四種方法搞懂DDR3的讀寫分離

2021-10-12 21:42:42 字數 1710 閱讀 5569

ddr3是目前ddr的主流產品,ddr3的讀寫分離作為ddr最基本也是最常用的部分,本文主要闡述ddr3讀寫分離的方法。

最開始的ddr, 晶元採用的是tsop封裝,管腳露在晶元兩側的,測試起來相當方便;但是,ddrii和iii就不一樣了,它採用的是bga封裝,所有焊點是藏在晶元的底部的,測試起來非常不便,一般需要提前預留測試點。

在ddr讀寫burst分析之前,首先得把read burst和write burst分離出來,讀寫雙向的資料全部都擱在dqs和dq上。那麼,ddr的手冊中,留下了那些線索供我們進行都寫的分離呢?

要實現ddr的快速的便捷的分離,在讀寫分離之前,我們必須得知道ddr讀寫訊號之間的特徵差異。首先,看看spec裡面的定義:

方法一:preamble的差異在每次的burst之前,dqs會從高阻態切換到一段負脈衝,然後才開始正常的讀寫。這段負脈衝,我們叫做preamble(preamble實際上是在讀寫前,dqs提前通知dram晶元或者是controller的訊號)。一般說來,讀資料dqs的preamble寬度要大於寫資料。對於ddr3,情況就更簡單了。因為在ddr3中,讀資料的preamble是負脈衝,寫資料的preamble是正脈衝。

方法二:幅度上的差異

一般在dram端進行測試,寫資料從memory controller出來,經過了主機板pcb板,記憶體插槽和記憶體條pcb板,到達dram顆粒的時候,訊號已經被衰減了,而讀資料剛剛從dram出來,還沒有經過任何的衰減,因此讀資料的幅度要大於寫資料。

方法三:

寫資料是dqs和dq centre-align(中間對齊), 讀資料dqs和dq是edge align(邊沿對齊),memory controller在接收到記憶體的讀資料時,在controller內部把dqs和dq的相位錯開90度,實現中間對齊來取樣(這個過程示波器就看不到咯);

方法四:斜率的差異:

讀資料的斜率大於寫資料。一般在dram端進行測試,寫資料從memory controller出來,經過了主機板pcb板,記憶體插槽和記憶體條pcb板,到達dram顆粒的時候,訊號已經被衰減了,所以,斜率也小一些;而讀資料剛剛從dram出來,還沒有經過任何的衰減,因此讀資料的斜率要大於寫資料。也可以從下圖得到區分。

遍歷HashMap的四種方法

public static void main string args 第二種 system.out.println 通過map.entryset使用iterator遍歷key和value iterator it map.entryset iterator while it.hasnext 第三種 ...

遍歷Map的四種方法

public static void main string args 第二種 system.out.println 通過map.entryset使用iterator遍歷key和value iterator it map.entryset iterator while it.hasnext 第三種 ...

遍歷Map的四種方法

第一種 普遍使用,二次取值 system.out.println 通過map.keyset遍歷key和value for string key map.keyset 第二種 system.out.println 通過map.entryset使用iterator遍歷key和value iterator...