對DDR2中總線時序(Post CAS技術中)附加延遲(AL)的理解

 最近在認真研究DDR2芯片的時序和配置過程。在看到有關時序的時候有tRCD和AL,沒有搞清楚他們之間的關係的話在看時序的時候會比較混亂。所以專門找了下這方面的知識,總結如下。

    首先要看看關於學習DDR2時值得一看的資料,這些資料極有參考價值。

    對於AL的解釋,美光有一個技術文檔還算是解釋的比較到位的:DDR2 Posted CAS# Additive Latency Technical Note

    當然爾必達也有一份技術文檔,講的也不錯:http://www.elpida.com/pdfs/E0678E10.pdf

    爾必達的圖其實很好,但是有點複雜,建議理解了美光的圖後在看爾必達的文檔,這樣就可以完全理解了。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    現在需要分清楚的是tRCD、AL、RL等的概念:以數據的讀取爲例。
    如果需要DDR中突發讀取數據BL(突發長度)爲4,則必須先發出激活bank命令(同時送上行地址),然後發出讀命令(同時送上列地址),然後就可以在數據總線上讀到數據了。但是這個過程中有幾個參數:

tRCD在發送列讀寫命令時必須與前面的bank激活命令(行有效也在其中)有一個間隔,這個間隔被定義爲tRCD,即RAS to CAS Delay(RAS 至CAS 延遲),可以理解爲行選通週期。這是根據芯片存儲陣列內部響應時間所需要的延遲,這個和芯片的工藝相關,是必然存在的一個延時。tRCD 是SDRAM 的一個重要硬件參數。

CLCAS (列讀命令)發出之後,仍要經過一定的時間纔能有數據輸出,從CAS 讀取命令發出到數據穩定輸出(可以讀取)的這段時間,被定義爲CL(CAS Latency,CAS 潛伏期)

這裏Delay(延遲)和Latency(潛伏)本質是不同的:Delay是事情要在這個時間之後開始,而Latency是事情已經發生,但是還不夠穩定需要一個穩定時間。

    所以從發送出激活bank命令(想要讀取數據的時刻)到讀到數據這段時間應該是tRCD+CL

    雖然在tRCD中我們可以插入其他bank的激活指令(RAS),但是與上一個RAS必須有BL/2的時鐘間隔,否則會出現數據輸出衝突。這種情況分析下時序圖便知:tRCD+CL的時間是一定的,BL=4的情況下,tRCD+CL後面跟了兩個數據輸出週期。如果兩個bank激活指令(RAS)小於2(BL/2),那麼前一個請求的數據的後兩字節就和緊跟的那個請求的前兩個字節衝突了。數據“輕度追尾”了,後果很嚴重~~~

    那麼我們再來看看美光文檔上的圖3,Figure 3: DDR2 Bank Interleave Reads with AL = 0(沒有使用PostCAS技術的時序)

    本來第三個數據的bank激活命令(RAS)應該在T4那個時鐘上的,但是這樣又和第一個數據的讀命令(列地址數據)衝突了,所以第三個數據的bank激活命令(RAS)只好向後挪了一個時鐘,這樣數據總線上就出現了一個空洞(效率降低了)。

   雖然這個空洞不過浪費了一個時鐘,在實際使用中有影響效率可是不小。所以現在如何改進這個時序呢?在DDR2標準中使用了一個新的技術:Post CAS技術
    Post CAS就是爲了提高DDR2內存的利用效率而設定的。在PostCAS操作中,CAS信號(讀寫/命令)能夠被插到RAS信號後面的一個時鐘週期,實際的CAS命令可以在附加延遲(Additive Latency,AL)後面執行。原來的tRCD(RAS到CAS延遲)被AL所取代,且AL可以在DDR2的初始化時進行設置。由於CAS信號放在了RAS信號後面一個時鐘週期,因此別的bank激活命令(RAS)和CAS信號就不會產生衝突了。

   這裏我們就引出了AL這個概念:
   附加延遲(AL, additive latency)是使用Post CAS技術時,總線上發出CAS信號(讀寫/命令)後到這個指令實際被執行的延時。
   所以在使用了這個技術之後,從發送出激活bank命令(想要讀取數據的時刻)到讀到數據這段時間應該是AL+CL+1(CAS信號也要一個時鐘),這樣就不難理解美光文檔上的圖4:Figure 4:DDR2 Bank Interleave Reads with AL = 3,從圖上可以看出有了這個技術,那個空洞不存在了,數據完美的連續了。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

但是對於這個改進個人理解上有兩個地方值得注意的:
1、tRCD依然是存在的,這個是硬件的限制。而Post CAS技術改進的是命令的傳輸機制。我是這樣理解的:Post CAS技術是對CAS信號指令提供一種芯片內部延時的機制,也可以理解爲將CAS信號緩存AL時間後執行,這樣不妨礙總線上的其他命令的發送。

2、Post CAS技術在單次的突發訪問中是沒有影響的,只有連續多次的突發訪問纔有性能的提升,但是對於內存操作一般不可能做單次的突發,就算程序這樣做了硬件緩存機制也會做多次的突發。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章