DDR SDRAM
發布時間:2010/12/7 10:57:27 訪問次數:1207
- 51電子網公益庫存:
- AX2258
- STI5518BQC
- IC18F2550-I/S
- 90-13026
- 6000FC9003A
- 5082-7300
- 40307/1R2A
- 309A2
- 2022Q
- W24257AJ-12
這種內部存儲單元容量(也可以稱為芯片內部總線位寬)=2×芯片位寬(也可稱為芯片i/o總線位寬)的設計,就是所謂的兩位預取(2-bit prefetch),有的公司則貼切的稱之為2-n prefetch(n代表芯片位寬)。
b、ddr sdram與sdram的不同
ddr sdram與sdram的不同主要體現在以下幾個方面。
ddr sdram與sdram一樣,在開機時也要進行mrs,不過由于操作功能的增多,ddr sdram在mrs之前還多了一emrs階段(extended mode register set,擴展模式寄存器設置),這個擴展模式寄存器控制著dll的有效/禁止、輸出驅動強度、qfc 有效/無效等。
由于emrs與mrs的操作方法與sdram的mrs大同小異,在此就不再列出具體的模式表了,有興趣的話可查看相關的ddr內存資料。下面我們就著重說說ddr sdram的新設計與新功能。
差分時鐘(參見上文“ddr sdram讀操作時序圖”)是ddr的一個必要設計,但ck#的作用,并不能理解為第二個觸發時鐘(你可以在講述ddr原理時簡單地這么比喻),而是起到觸發時鐘校準的作用。由于數據是在ck的上下沿觸發,造成傳輸周期縮短了一半,因此必須要保證傳輸周期的穩定以確保數據的正確傳輸,這就要求ck的上下沿間距要有精確的控制。但因為溫度、電阻性能的改變等原因,ck上下沿間距可能發生變化,此時與其反相的ck#就起到糾正的作用(ck上升快下降慢,ck#則是上升慢下降快)。而由于上下沿觸發的原因,也使cl=1.5和2.5成為可能,并容易實現。
2、 數據選取脈沖(dqs)
dqs是ddr sdram中的重要功能,它的功能主要用來在一個時鐘周期內準確的區分出每個傳輸周期,并便于接收方準確接收數據。每一顆芯片都有一個dqs信號線,它是雙向的,在寫入時它用來傳送由北橋發來的dqs信號,讀取時,則由芯片生成dqs向北橋發送。完全可以說,它就是數據的同步信號。
在讀取時,dqs與數據信號同時生成(也是在ck與ck#的交叉點)。而ddr內存中的cl也就是從cas發出到dqs生成的間隔,數據真正出現在數據i/o總線上相對于dqs觸發的時間間隔被稱為tac。注意,這與sdram中的tac的不同。實際上,dqs生成時,芯片內部的預取已經完畢了,tac是指上文結構圖中灰色部分的數據輸出時間,由于預取的原因,實際的數據傳出可能會提前于dqs發生(數據提前于dqs傳出)。由于是并行傳輸,ddr內存對tac也有一定的要求,對于ddr266,tac的允許范圍是±0.75ns,對于ddr333,則是±0.7ns,有關它們的時序圖示見前文,其中cl里包含了一段dqs的導入期。
3、 寫入延遲
在上面的dqs寫入時序圖中,可以發現寫入延遲已經不是0了,在發出寫入命令后,dqs與寫入數據要等一段時間才會送達。這個周期被稱為dqs 相對于寫入命令的延遲時間(tdqss, write command to the first corresponding rising edge of dqs),對于這個時間大家應該很好理解了。
為什么要有這樣的延遲設計呢?原因也在于同步,畢竟一個時鐘周期兩次傳送,需要很高的控制精度,它必須要等接收方做好充分的準備才行。 tdqss是ddr內存寫入操作的一個重要參數,太短的話恐怕接受有誤,太長則會造成總線空閑。tdqss最短不能小于0.75個時鐘周期,最長不能超過 1.25個時鐘周期。有人可能會說,如果這樣,dqs不就與芯片內的時鐘不同步了嗎?對,正常情況下,tdqss是一個時鐘周期,但寫入時接受方的時鐘只用來控制命令信號的同步,而數據的接受則完全依靠dqs進行同步,所以dqs與時鐘不同步也無所謂。不過,tdqss產生了一個不利影響——讀后寫操作延遲的增加,如果cl=2.5,還要在tdqss基礎上加入半個時鐘周期,因為命令都要在ck的上升沿發出。
另外,ddr內存的數據真正寫入由于要經過更多步驟的處理,所以寫回時間(twr)也明顯延長,一般在3個時鐘周期左右,而在ddr-Ⅱ規范中更是將twr列為模式寄存器的一項,可見它的重要性。
4、 突發長度與寫入掩碼
在ddr sdram中,突發長度只有2、4、8三種選擇,沒有了隨機存取的操作(突發長度為1)和全頁式突發。這是為什么呢?因為l-bank一次就存取兩倍于芯片位寬的數據,所以芯片至少也要進行兩次傳輸才可以,否則內部多出來的數據怎么處理?而全頁式突發事實證明在pc內存中是很難用得上的,所以被取消也不希奇。
另外,ddr內存的數據真正寫入由于要經過更多步驟的處理,所以寫回時間(twr)也明顯延長,一般在3個時鐘周期左右,而在ddr-Ⅱ規范中更是將twr列為模式寄存器的一項,可見它的重要性。
但是,突發長度的定義也與sdram的不一樣了(見本章節最前那幅ddr簡示圖),它不再指所連續尋址的存儲單元數量,而是指連續的傳輸周期數,每次是一個芯片位寬的數據。對于突發寫入,如果其中有不想存入的數據,仍可以運用dm信號進行屏蔽。dm信號和數據信號同時發出,接收方在dqs的上升與下降沿來判斷dm的狀態,如果dm為高電平,那么之前從dqs中部選取的數據就被屏蔽了。有人可能會覺得,dm是輸入信號,意味著芯片不能發出dm信號給北橋作為屏蔽讀取數據的參考。其實,該讀哪個數據也是由北橋芯片決定的,所以芯片也無需參與北橋的工作,哪個數據是有用的就留給北橋自己去選吧。
5、 延遲鎖定回路(dll)
ddr sdram對時鐘的精確性有著很高的要求,而ddr sdram有兩個時鐘,一個是外部的總線時鐘,一個是內部的工作時鐘,在理論上ddr sdram這兩個時鐘應該是同步的,但由于種種原因,如溫度、電壓波動而產生延遲使兩者很難同步,更何況時鐘頻率本身也有不穩定的情況(sdram也內部時鐘,不過因為它的工作/傳輸頻率較低,所以內外同步問題并不突出)。ddr sdram的tac就是因為內部時鐘與外部時鐘有偏差而引起的,它很可能造成因數據不同步而產生錯誤的惡果。實際上,不同步就是一種正/負延遲,如果延遲不可避免,那么若是設定一個延遲值,如一個時鐘周期,那么內外時鐘的上升與下降沿還是同步的。鑒于外部時鐘周期也不會絕對統一,所以需要根據外部時鐘動態修正內部時鐘的延遲來實現與外部時鐘的同步,這就是dll的任務。
- 51電子網公益庫存:
- AX2258
- STI5518BQC
- IC18F2550-I/S
- 90-13026
- 6000FC9003A
- 5082-7300
- 40307/1R2A
- 309A2
- 2022Q
- W24257AJ-12
這種內部存儲單元容量(也可以稱為芯片內部總線位寬)=2×芯片位寬(也可稱為芯片i/o總線位寬)的設計,就是所謂的兩位預取(2-bit prefetch),有的公司則貼切的稱之為2-n prefetch(n代表芯片位寬)。
b、ddr sdram與sdram的不同
ddr sdram與sdram的不同主要體現在以下幾個方面。
ddr sdram與sdram一樣,在開機時也要進行mrs,不過由于操作功能的增多,ddr sdram在mrs之前還多了一emrs階段(extended mode register set,擴展模式寄存器設置),這個擴展模式寄存器控制著dll的有效/禁止、輸出驅動強度、qfc 有效/無效等。
由于emrs與mrs的操作方法與sdram的mrs大同小異,在此就不再列出具體的模式表了,有興趣的話可查看相關的ddr內存資料。下面我們就著重說說ddr sdram的新設計與新功能。
差分時鐘(參見上文“ddr sdram讀操作時序圖”)是ddr的一個必要設計,但ck#的作用,并不能理解為第二個觸發時鐘(你可以在講述ddr原理時簡單地這么比喻),而是起到觸發時鐘校準的作用。由于數據是在ck的上下沿觸發,造成傳輸周期縮短了一半,因此必須要保證傳輸周期的穩定以確保數據的正確傳輸,這就要求ck的上下沿間距要有精確的控制。但因為溫度、電阻性能的改變等原因,ck上下沿間距可能發生變化,此時與其反相的ck#就起到糾正的作用(ck上升快下降慢,ck#則是上升慢下降快)。而由于上下沿觸發的原因,也使cl=1.5和2.5成為可能,并容易實現。
2、 數據選取脈沖(dqs)
dqs是ddr sdram中的重要功能,它的功能主要用來在一個時鐘周期內準確的區分出每個傳輸周期,并便于接收方準確接收數據。每一顆芯片都有一個dqs信號線,它是雙向的,在寫入時它用來傳送由北橋發來的dqs信號,讀取時,則由芯片生成dqs向北橋發送。完全可以說,它就是數據的同步信號。
在讀取時,dqs與數據信號同時生成(也是在ck與ck#的交叉點)。而ddr內存中的cl也就是從cas發出到dqs生成的間隔,數據真正出現在數據i/o總線上相對于dqs觸發的時間間隔被稱為tac。注意,這與sdram中的tac的不同。實際上,dqs生成時,芯片內部的預取已經完畢了,tac是指上文結構圖中灰色部分的數據輸出時間,由于預取的原因,實際的數據傳出可能會提前于dqs發生(數據提前于dqs傳出)。由于是并行傳輸,ddr內存對tac也有一定的要求,對于ddr266,tac的允許范圍是±0.75ns,對于ddr333,則是±0.7ns,有關它們的時序圖示見前文,其中cl里包含了一段dqs的導入期。
3、 寫入延遲
在上面的dqs寫入時序圖中,可以發現寫入延遲已經不是0了,在發出寫入命令后,dqs與寫入數據要等一段時間才會送達。這個周期被稱為dqs 相對于寫入命令的延遲時間(tdqss, write command to the first corresponding rising edge of dqs),對于這個時間大家應該很好理解了。
為什么要有這樣的延遲設計呢?原因也在于同步,畢竟一個時鐘周期兩次傳送,需要很高的控制精度,它必須要等接收方做好充分的準備才行。 tdqss是ddr內存寫入操作的一個重要參數,太短的話恐怕接受有誤,太長則會造成總線空閑。tdqss最短不能小于0.75個時鐘周期,最長不能超過 1.25個時鐘周期。有人可能會說,如果這樣,dqs不就與芯片內的時鐘不同步了嗎?對,正常情況下,tdqss是一個時鐘周期,但寫入時接受方的時鐘只用來控制命令信號的同步,而數據的接受則完全依靠dqs進行同步,所以dqs與時鐘不同步也無所謂。不過,tdqss產生了一個不利影響——讀后寫操作延遲的增加,如果cl=2.5,還要在tdqss基礎上加入半個時鐘周期,因為命令都要在ck的上升沿發出。
另外,ddr內存的數據真正寫入由于要經過更多步驟的處理,所以寫回時間(twr)也明顯延長,一般在3個時鐘周期左右,而在ddr-Ⅱ規范中更是將twr列為模式寄存器的一項,可見它的重要性。
4、 突發長度與寫入掩碼
在ddr sdram中,突發長度只有2、4、8三種選擇,沒有了隨機存取的操作(突發長度為1)和全頁式突發。這是為什么呢?因為l-bank一次就存取兩倍于芯片位寬的數據,所以芯片至少也要進行兩次傳輸才可以,否則內部多出來的數據怎么處理?而全頁式突發事實證明在pc內存中是很難用得上的,所以被取消也不希奇。
另外,ddr內存的數據真正寫入由于要經過更多步驟的處理,所以寫回時間(twr)也明顯延長,一般在3個時鐘周期左右,而在ddr-Ⅱ規范中更是將twr列為模式寄存器的一項,可見它的重要性。
但是,突發長度的定義也與sdram的不一樣了(見本章節最前那幅ddr簡示圖),它不再指所連續尋址的存儲單元數量,而是指連續的傳輸周期數,每次是一個芯片位寬的數據。對于突發寫入,如果其中有不想存入的數據,仍可以運用dm信號進行屏蔽。dm信號和數據信號同時發出,接收方在dqs的上升與下降沿來判斷dm的狀態,如果dm為高電平,那么之前從dqs中部選取的數據就被屏蔽了。有人可能會覺得,dm是輸入信號,意味著芯片不能發出dm信號給北橋作為屏蔽讀取數據的參考。其實,該讀哪個數據也是由北橋芯片決定的,所以芯片也無需參與北橋的工作,哪個數據是有用的就留給北橋自己去選吧。
5、 延遲鎖定回路(dll)
ddr sdram對時鐘的精確性有著很高的要求,而ddr sdram有兩個時鐘,一個是外部的總線時鐘,一個是內部的工作時鐘,在理論上ddr sdram這兩個時鐘應該是同步的,但由于種種原因,如溫度、電壓波動而產生延遲使兩者很難同步,更何況時鐘頻率本身也有不穩定的情況(sdram也內部時鐘,不過因為它的工作/傳輸頻率較低,所以內外同步問題并不突出)。ddr sdram的tac就是因為內部時鐘與外部時鐘有偏差而引起的,它很可能造成因數據不同步而產生錯誤的惡果。實際上,不同步就是一種正/負延遲,如果延遲不可避免,那么若是設定一個延遲值,如一個時鐘周期,那么內外時鐘的上升與下降沿還是同步的。鑒于外部時鐘周期也不會絕對統一,所以需要根據外部時鐘動態修正內部時鐘的延遲來實現與外部時鐘的同步,這就是dll的任務。
上一篇:MAX9626 MAX9628