SDRAM工作的大体流程
1、 首先,我們知道內存控制器要先確定一個P-Bank的芯片集合,然后才對這集合中的芯片進行尋址操作。因此要有一個片選的信號,它一次選擇一個P-Bank的芯片集(根據位寬的不同,數量也不同)。被選中的芯片將同時接收或讀取數據,所以要有一個片選信號。
2、 接下來是對所有被選中的芯片進行統一的L-Bank的尋址,目前SDRAM中L-Bank的數量最高為4個,所以需要兩個L-Bank地址信號(22=4)。
3、 最后就是對被選中的芯片進行統一的行/列(存儲單元)尋址。地址線數量要根據芯片的組織結構分別設計了。但在相同容量下,行數不變,只有列數會根據位寬的而變化,位寬越 大,列數越少,因為所需的存儲單元減少了。
4、 找到了存儲單元后,被選中的芯片就要進行統一的數據傳輸,那么肯定要有與位寬相同數量的數據I/O通道才行,所以肯定要有相應數量的數據線引腳。
SDRAM的內部基本操作與工作時序
1.芯片的初始化
SDRAM在開機時的初始化過程如下
2.行地址有效
??? 初始化完成后,要想對一個L-Bank中的陣列進行尋址,首先就要確定行(Row),使之處于活動狀態(Active),然后再確定列。雖然之前要進行片選和L-Bank的定址,但它們與行有效可以同時進行。
??? 在CS#、L-Bank定址的同時,RAS(Row Address Strobe,行地址選通脈沖)也處于有效狀態。此時An地址線則發送具體的行地址。由于行有效的同時也是相應L-Bank有效,所以行有效也可稱為L-Bank有效。
3.列讀寫
行地址確定之后,就要對列地址進行尋址了。但是,地址線仍然是行地址所用的A0-A11(本例)。沒錯,在SDRAM中,行地址與列地址線是共用的。不過,讀/寫的命令是怎么發出的呢?其實沒有一個信號是發送讀或寫的明確命令的,而是通過芯片的可寫狀態的控制來達到讀/寫的目的。顯然WE#信號就是一個關鍵。WE#無效時,當然就是讀取命令。
??? 列尋址信號與讀寫命令是同時發出的。雖然地址線與行尋址共用,但CAS(Column Address Strobe,列地址選通脈沖)信號則可以區分開行與列尋址的不同,配合A0-A9,A11來確定具體的列地址。
??? 然而,在發送列讀寫命令時必須要與行有效命令有一個間隔,這個間隔被定義為tRCD,即RAS to CAS Delay(RAS至CAS延遲),大家也可以理解為行選通周期,這應該是根據芯片存儲陣列電子元件響應時間(從一種狀態到另一種狀態變化的過程)所制定的延遲。tRCD是SDRAM的一個重要時序參數,可以通過主板BIOS經過北橋芯片進行調整,但不能超過廠商的預定范圍。廣義的tRCD以時鐘周期(tCK,Clock Time)數為單位,比如tRCD=2,就代表延遲周期為兩個時鐘周期,具體到確切的時間,則要根據時鐘頻率而定.
tRCD=3的時序圖如下
4.? 數據輸出(讀)
??? 在選定列地址后,就已經確定了具體的存儲單元,剩下的事情就是數據通過數據I/O通道(DQ)輸出到內存總線上了。但是在CAS發出之后,仍要經過一定的時間才能有數據輸出,從CAS與讀取命令發出到第一筆數據輸出的這段時間,被定義為CL(CAS Latency,CAS潛伏期)。由于CL只在讀取時出現,所以CL又被稱為讀取潛伏期(RL,Read Latency)。CL的單位與tRCD一樣,為時鐘周期數,具體耗時由時鐘頻率決定。
??? 不過,CAS并不是在經過CL周期之后才送達存儲單元。實際上CAS與RAS一樣是瞬間到達的,但CAS的響應時間要更快一些。為什么呢?假設芯片位寬為n個bit,列數為c,那么一個行地址要選通n×c個存儲體,而一個列地址只需選通n個存儲體。但存儲體中晶體管的反應時間仍會造成數據不可能與CAS在同一上升沿觸發,肯定要延后至少一個時鐘周期。
??? 由于芯片體積的原因,存儲單元中的電容容量很小,所以信號要經過放大來保證其有效的識別性,這個放大/驅動工作由S-AMP負責,一個存儲體對應一個S-AMP通道。但它要有一個準備時間才能保證信號的發送強度(事前還要進行電壓比較以進行邏輯電平的判斷),因此從數據I/O總線上有數據輸出之前的一個時鐘上升沿開始,數據即已傳向S-AMP,也就是說此時數據已經被觸發,經過一定的驅動時間最終傳向數據I/O總線進行輸出,這段時間我們稱之為tAC(Access Time from CLK,時鐘觸發后的訪問時間)。tAC的單位是ns,對于不同的頻率各有不同的明確規定,但必須要小于一個時鐘周期,否則會因訪問時過長而使效率降低。比如PC133的時鐘周期為7.5ns,tAC則是5.4ns。需要強調的是,每個數據在讀取時都有tAC,包括在連續讀取中,只是在進行第一個數據傳輸的同時就開始了第二個數據的tAC。
???????????????? CL=2的tac示意圖
CL的數值不能超出芯片的設計規范,否則會導致內存的不穩定,甚至開不了機(超頻的玩家應該有體會),而且它也不能在數據讀取前臨時更改。CL周期在開機初始化過程中的MRS階段進行設置,在BIOS中一般都允許用戶對其調整,然后BIOS控制北橋芯片在開機時通過A4-A6地址線對MR中CL寄存器的信息進行更改。
5、數據輸入(寫)
數據寫入的操作也是在tRCD之后進行,但此時沒有了CL(記住,CL只出現在讀取操作中),行尋址與列尋址的時序圖和上文一樣,只是在列尋址時,WE#為有效狀態。
從圖中可見,由于數據信號由控制端發出,輸入時芯片無需做任何調校,只需直接傳到數據輸入寄存器中,然后再由寫入驅動器進行對存儲電容的充電操作,因此數據可以與CAS同時發送,也就是說寫入延遲為0。不過,數據并不是即時地寫入存儲電容,因為選通三極管(就如讀取時一樣)與電容的充電必須要有一段時間,所以數據的真正寫入需要一定的周期。為了保證數據的可靠寫入,都會留出足夠的寫入/校正時間(tWR,Write Recovery Time),這個操作也被稱作寫回(Write Back)。tWR至少占用一個時鐘周期或再多一點(時鐘頻率越高,tWR占用周期越多).
路漫漫其修遠兮,吾將上下而求索總結
以上是生活随笔為你收集整理的SDRAM工作的大体流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Quartus ii与Modelsim-
- 下一篇: 门控时钟的使用