DDR2基础
一.?DDR2介紹
DDR2由JEDEC(電子設備工程聯合委員會)開發的新生代內存技術標準。該標準定義了DDR2封裝、尋址及操作、電氣等所有特性。
DDR相關技術對比
| ? | DDR | DDR2 | DDR3 |
| 電壓,VDD | 2,5V | 1,8V | 1,5V |
| I/O接口 | SSTL_25 | SSTL_18 | SSTL_15 |
| 數據傳輸率 | 200~400 | 400~800 | 800~2000 |
| 容量標準 | 64M~1G | 256M~4G | 512M~8G |
| CL值 | 1,5/2/2,5/3 | 3/4/5/6 | 5/6/7/8 |
| 預讀取(Bit) | 2 | 4 | 8 |
| Bank數量 | 2/4 | 4/8 | 8/16 |
| 突發長度 | 2/4/8 | 4/8 | 8 |
| 封裝形式 | TSOP | FBGA | FBGA |
| 針腳數(Pin) | 184 | 240 | 240 |
?
?
?
二.?DDR2信號
時鐘信號CK、CK#、CKE
片選芯片CS#
片內終結信號ODT
命令輸入信號RAS#、CAS#、WE#
數據掩碼DM
地址信號BA0-BA2、A0-A15
數據信號DQ
數據索引信號DQS、DQS#
電源信號等
?
注:DDR比SDRAM多一個CLK#時鐘信號,該信號與標準時鐘信號CLK相位相差180。,從而形成差分時鐘。與SDRAM只能在時鐘的上升沿進行數據傳輸不同,DDR在CLK的上升沿和下降沿都可以傳輸數據,這樣,在相同的系統時鐘下,DDR的數據傳輸速率就是SDRAM的兩倍。
需要注意的是,CLK#并不作為第二個觸發時鐘,而是用于校準觸發時鐘。這是因為DDR在CLK的雙沿觸發數據傳輸,使得傳輸周期縮短一半,因此必須保證傳輸周期的穩定以確保數據的正確傳輸。基于這一要求,必須對CLK的上下沿間距進行精確的控制。但由于溫度波動、電阻性能改變等原因,CLK上下沿間距可能會發生變化,此時CLK#可以起到校準的作用。
?
?
三.?DDR2采用的新技術
OCD(off-chip?driver):離線驅動調整,DDR?II通過OCD可以提高信號的完整性。DDRII通過調整上拉/下拉的電阻值使兩者電壓相等。使用OCD通過減少DQ-DQS的傾斜來提高信號的完整性;通過控制電壓來提高信號品質。
ODT(on-die?terminal):內建核心的終結電阻器。DDR2根據自己的特點內建合適的終結電阻,可以保證最佳信號波形,達到最佳的信號質量。
Post?CAS:前置CAS,為提高DDR2內存的利用效率而設定。在Post?CAS操作中,CAS信號(讀寫/命令)能夠被插到RAS信號后面的一個時鐘周期,CAS命令可以在附加延遲(Additive?Latency)后面保持有效。原來的tRCD(RAS到CAS延遲)被AL(Additive?Latency)所取代,AL可以在0,1,2,3,4中進行設置。由于CAS信號放在了RAS信號后面一個時鐘周期,因此ACT(行選擇)和CAS信號永遠也不會產生碰撞沖突。
四.?DDR2構造
DDR2內部的存儲單元按bank進行管理,根據容量大小一般分為4或8個bank。每個bank中又分為行和列,bank的位寬就是整個芯片的位寬。
五.?DDR2工作方式
DDR2工作時每個bank只允許打開1行,即只允許對打開的行進行讀寫操作,如果要對同一bank中的其他行進行讀寫操作,則必須先用預充電(precharge)命令關閉已經打開的行,再用激活(active)命令打開需要進行讀寫操作的行。發送激活命令時要同時給出bank地址和行地址,選定需要打開的行,等待一定時間間隔后再給出列地址。DDR2的行列地址線是復用的,通過列地址選通信號CAS可以區分行地址與列地址。
DDR2采用突發方式進行數據傳輸,即對同一行中相鄰的存儲單元連續進行數據傳輸,連續傳輸所涉及的存儲單元(列)的數量就是突發長度(Burst?Lengths)。工作時只要給出起始地址和突發長度,DDR2就會依次自動對后面相應數量的列進行讀寫操作。DDR2支持的突發長度為4或8。
DDR2采用電容存儲數據信息,電容的漏電造成數據丟失,必須要定時刷新才不會丟失。為了保存內部數據,DDR2每隔一定的時間就要對每一行進行刷新。根據DDR2的JEDEC標準,最多每隔7.8us就要刷新一次,用來保持DDR2內部數據的正確性。DDR2有兩種刷新模式:自刷新(self-refresh)和自動刷新(auto-refresh)。自刷新通常工作于所有bank都處于空閑的狀態,功耗低,但是進入自刷新模式和退出自刷新模式都要經過復雜的時序步驟來完成,控制復雜。自動刷新模式由定時器產生刷新命令,易于控制,因此一般選擇自動刷新模式。
DDR2的工作頻率很高,因此數據窗口很窄,為了能準確采集數據,DDR2使用差分信號DQS、DQS_N來采集數據。寫操作中,DQS信號由控制器發出,DQS信號與數據窗口中央對齊;讀操作中DQS信號由DDR2存儲器發出,DQS信號與數據窗口邊沿對齊,控制器接收到DQS信號后,要將DQS信號與數據窗I:1相位偏移90°,使DQS信號與數據窗口中央對齊。DQS信號對相位要求很嚴格,在實際使用中,考慮連線延遲、管腳延遲等因素,在高頻率下進行數據采集變得很困難,一般由專門的PHY(Physical?Layer?Interface)來完成。
上電后控制器首先執行的是初始化過程,然后才是讀寫操作。在讀寫過程中,會遇到刷新請求,刷新的優先權要高于讀寫操作。如果刷新操作與讀寫操作沖突,則控制器會先通知用戶停止發送讀寫命令,并等待現有的讀寫操作完成,然后進行刷新操作。
執行讀寫操作時,控制器會先根據映射的行地址來判斷操作所需要的行是否已經激活,如果已經激活,則直接發送列地址;如果沒激活且在不同的bank中,則先發送激活命令再發送列地址和讀寫命令;如果沒激活且在相同的bank中,則先要發送預充電命令關閉已經打開的行,然后依次發送激活命令和讀寫命令。
如果執行讀操作,則在讀命令發出后,要等待讀數據傳回,根據DQS信號來接收讀數據,將雙速率的64bit數據轉換成單速率的128?bit數據送給用戶端口(CPU)。
?
讀命令
當DDR2?SDRAM的bank被打開之后,就可以對該bank進行讀寫訪問操作。當控制器給出讀命令的同時,要給出訪問目標的列地址,并設定自動預充電是否有效。如果自動預充電有效,當讀操作結束時自動執行預充電并關閉該bank。
從DDR2?SDRAM接受讀命令到給出到有效讀數據之間的延時,稱為讀延遲(Read?Latency,即RL)。讀延遲被定義為AL和CL的和,即RL=AL+CL。AL和CL的值可以分別通過MR和EMR來設定。
DQS/DQSn是由DDR2?SDRAM驅動的,伴隨數據輸出的選通脈沖信號。如下圖所示,當即將輸出數據時,DQS信號被設為低——DQSn信號是DQS信號的反,這就是所謂的前同步信號(preamble);當輸出數據即將結束時,即一次讀訪問的最后一個有效數據時,DQS信號為低,這就是所謂的后同步信號(postamble)。
寫命令
與讀命令相似,寫命令也只能在目標地址所在的bank被打開后才能進行;同樣,在給出寫命令的同時要給出地址和自動刷新命令。寫命令與寫數據之間的延遲稱為寫延遲(Write?Latency,WL),定義為讀延遲減去1,即L=RL-1。
寫操作也有前同步信號和后同步信號,與讀操作的相比,在長度上有所不同。讀操作的前同步信號是1個時鐘寬度,后同步信號是0.5個時鐘寬度;寫操作的前后同步信號的寬度都是在0.5到1個時鐘寬度之間。在DQS和數據DQ的同步問題上,讀寫操作也各不相同。讀操作的數據信號DQ和數據選通信號DQS是同步的;寫操作的數據信號DQ和數據選通信號DQS的相位相差90度,這是為了數據在寫入內存時,數據眼圖中央部分的可靠信號可以被內存模塊截獲。
預充電命令(Precharge)
預充電有兩種發起方式,一是通過由控制器通過命令總線的預充電命令發起;二是通過與讀寫命令一起的自動預充電命令發起。預充電命令可以選擇一個特定bank或所有bank的處于打開狀態的行進行關閉,當然,由于DDR2?SDRAM的bank結構的原因,每個bank最多只能有1個行處于打開狀態。
如果是由命令總線的預充電命令發起的,那么地址線上的第10位信號(A10)的輸入將決定是關閉全部bank的行還是單一bank的行。當A10為高時,bank地址將被忽略,所有的bank都將被關閉;當A10信號為低時,bank地址將指定被關閉的bank。如果預充電命令是自動預充電的話,在讀寫命令發出時,A10表示是否要在完成讀寫操作之后進行預充電。為保證存儲單元內數據的信號強度,DDR2?SDRAM要求平均間隔tREFI,最大間隔9×tREFI,進行一次刷新操作。通常,常溫使用狀態下tREFI?為7.8us;當工作溫度高于85℃時,tREFI為3.9us。
空操作命令NOP
空操作命令,顧名思義,就是沒有實際的特殊功能的操作。NOP是DDR2?SDRAM處于空閑或者等待的狀態時,為了避免命令總線上出現不定的動作而設定的,它不會對DDR2?SDRAM當前的狀態及動作產生任何影響。
?
六.?地址映射
????用戶端發送的是線性地址,而不同類型DDR2存儲器所規定的行列地址及bank地址所占用的位寬不相同,因此要將輸入的線性地址根據所使用的DDR2存儲器進行地址映射,將最終發送給DDR2的各類地址分離出來,供狀態機(DDR2)使用。
七.?timing
CL?:CAS(READ)?latency,列選擇到數據輸出的時間。
tRAS:ACTIVE-to-PRECHARGE?command
tRC:ACTIVE-to-ACTIVE?command?period(同bank)。
tRRD:ACTIVE?bank?a?to?ACTIVE?bank?b?command(異bank)。
tRCD:ACTIVE-to-READ?or?WRITE?delay,行選擇(RAS)到列選擇(CAS)延遲。
tRP:PRECHARGE?command?period,預充電命令的執行時間。
?
參考:
?
?
AM3352中關于VTP的描述
The?VTP?controller?macro?evaluates?silicon?performance?at?current?voltage,?temperature,?and?process?(VTP)?to?enable?IO?drivers?to?set?constant?predetermined?output?driver?impedance.?The?controller?operates?by?comparing?driver?impedances?to?the?external?reference?resistor?and?adjusting?driver?impedance?to?obtain?an?impedance?match.
轉載于:https://www.cnblogs.com/embedded-linux/p/4993069.html
總結
- 上一篇: 实现SELECT的全选,反选,AB选的J
- 下一篇: 【数据库题型大总结】应用题总结