專利名稱:采樣點可配置的片外dram數據采樣方法
技術領域:
本發明主要涉及到微處理芯片設計領域,特指一種對片外DDR DRAM進行數據讀取時采樣點可配置的片外DRAM數據采樣方法。
背景技術:
目前無論在高性能微處理器領域還是在嵌入式應用中,DDR DRAM都是主流內存技術之一。DDR是雙倍數據速率(double data rate)的意思。DDR DRAM的特征是雙沿傳輸、數據寬度64位。目前市場上的主流DDR DRAM類型大致有兩種DDR1 DRAM和DDR2 DRAM。DDR1 DRAM為2.5V基準電壓,速度規格分為DDR266B、DDR333B和DDR400B,實際時鐘頻率為133MHz、166MHz和200MHz;DDR2 DRAM與DDR1 DRAM特性很相像,只是為了加快訪問速度將基準電壓變成1.8V和增加了一些抗干擾和加速的技術,目前速度規格有DDR2-400、DDR2-533、DDR2-667和DDR2-800,實際時鐘頻率為200MHz、266MHz、333MHz和400MHz。
DRAM讀寫頻率的提高對片內DRAM控制器接口邏輯的設計和板上走線的要求越來越嚴。對于DDR DRAM,由于采用雙沿傳輸,因此采樣窗口最大只有半周期。以DDR2-800為例,采樣窗口最大只有1.25ns,而信號占空比、每組信號在片內外的走線偏斜、片內及片間的各種干擾都會大大減少有效采樣窗口,因此為了達到高速傳輸的目的,必須仔細設計DRAM接口控制邏輯。
DDR DRAM接口控制邏輯分為寫接口邏輯和讀接口邏輯。寫接口邏輯主動發送信號到DDR DRAM中去,這些信號與片內其他信號為同步信號,設計較為簡單;讀接口邏輯讀取DDR DRAM的數據,DDR DRAM在讀取時返回的為同頻異步源同步信號,因此讀接口邏輯必須判斷何時采樣輸入信號及進行輸入數據的同步操作,設計比較復雜。我們這里說明的方法只針對DDR DRAM讀接口邏輯中的數據采樣方法。由于我們的數據采樣方法對于DDR1DRAM和DDR2 DRAM完全相同,為簡單起見,我們下面就不區分DDR1 DRAM和DDR2 DRAM而將它們統一稱為DDR DRAM。
DDR DRAM協議中規定的讀取過程為,首先激活相應頁,再發出讀命令和頁內地址,經過一定讀延時后,DDR DRAM發出源同步的DQS、DQ和DM信號。這里DQS信號為源同步時鐘信號,DQ為8位數據信號,DM為1位數據選通信號,它們為邊沿對齊的信號且對片內邏輯而言,它們為同頻異步信號。在進入芯片后,DQ和DM由對應的DQS來采樣。DQS信號在無操作時為高阻,進行數據讀取時,一旦DQS為低,意味著讀取數據在下一個DQS上升沿開始返回。數據返回時,采用猝發方式,即對一次請求連續發回多個64位數據,目前的猝發長度有2、4、8。
目前DDR DRAM數據采樣的通常做法是,在發出讀命令后,檢測DQS是否為低,如檢測到DQS為低,就將DQS信號延時四分之一周期后用它的每個上升沿和下降沿采樣DQ和DM信號,采樣后的DQ和DM信號和其他片內信號為同頻異步信號,這兩組信號再通過延時單元成為與片內邏輯同步的信號再進行內部采樣,延時單元的延時時間是可以配置的。延時單元有兩種做法使用標準單元構造和使用全定制延時單元。使用標準單元構造的缺點是這種做法受工藝、電壓和溫度的影響很大,延時很不準確,只能用于低頻的場合;使用全定制延時單元的缺點是信號需要大量延時單元,而片內延時單元的面積往往很大,這樣會占用大量芯片面積,這種做法適用于大型設計。
發明內容
本發明要解決的技術問題就在于針對現有技術存在的技術問題,本發明提供一種能夠滿足硬件實現簡單、面積小、功耗低的條件下,實現數據正確采樣以獲得較高性能的采樣點可配置的片外DRAM數據采樣方法。
為解決上述技術問題,本發明提出的解決方案為一種采樣點可配置的片外DRAM數據采樣方法,其特征在于在選定采樣時刻時,先用延時后的輸入時鐘對輸入數據進行采集,通過內部生成的多種相位的時鐘對采集后的同頻異步數據同時采樣,然后對多個采樣結果進行分析后選擇采樣結果正確的時鐘,將采樣時刻和采樣時鐘這2個參數固定下來用作以后的讀取操作。
在采樣過程,須提供軟件可設置的采樣時刻寄存器和同步時鐘寄存器,通過設置采樣時刻寄存器確定在哪一拍進行數據采樣,通過設置同步時鐘寄存器選擇一種相位的時鐘作為同步時鐘對輸入數據進行同步,其中同步時鐘寄存器用來設置使用哪個相位的時鐘對經輸入時鐘采樣后的輸入數據進行同步,同步時鐘寄存器用來設置使用哪個相位的時鐘對經輸入時鐘采樣后的輸入數據進行同步。
與現有技術相比,本發明的優點就在于1、在不增加硬件復雜性的前提下,采用內部時鐘直接采樣輸入數據的方法,相比對輸入數據進行時鐘域切換的方法來說,采樣速度至少快一個時鐘周期。
2、與通常設計相比,由于不需要對輸入數據進行延時,也就不需要通常設計中的那些面積巨大的延時單元,因此大大降低了芯片面積,適合低功耗應用。
3、提供軟件可設置的寄存器,使用軟硬件配合的方式實現所需功能,使得這種方法能夠靈活地適應各種環境。本發明已成功應用在國防科學技術大學自行研制的YeS64處理器中。
圖1是DDR DRAM讀返回信號時序圖;圖2是DDR DRAM控制器中數據采樣邏輯結構圖;圖3是DDR DRAM控制器中的參數配置流程圖;圖4是DDR DRAM控制器讀取邏輯中的讀數據采樣時序圖。
具體實施例方式
以下將結合附圖和具體實施例對本發明做進一步詳細說明。
本發明的一種采樣點可配置的片外DRAM數據采樣方法,在選定采樣時刻時,先用延時后的輸入時鐘對輸入數據進行采集,通過內部生成的多種相位的時鐘對采集后的同頻異步數據同時采樣,然后對多個采樣結果進行分析后選擇采樣結果正確的時鐘,將采樣時刻和采樣時鐘這2個參數固定下來用作以后的讀取操作。在采樣過程,須提供軟件可設置的采樣時刻寄存器和同步時鐘寄存器,通過設置采樣時刻寄存器確定在哪一拍進行數據采樣,通過設置同步時鐘寄存器選擇一種相位的時鐘作為同步時鐘對輸入數據進行同步,其中同步時鐘寄存器用來設置使用哪個相位的時鐘對經輸入時鐘采樣后的輸入數據進行同步,同步時鐘寄存器用來設置使用哪個相位的時鐘對經輸入時鐘采樣后的輸入數據進行同步。
其中,本發明在DDR DRAM數據采樣邏輯中,提供軟件可設置的采樣時刻寄存器和同步時鐘寄存器,通過設置采樣時刻寄存器確定在哪一拍進行數據采樣,通過設置同步時鐘寄存器選擇一種相位的時鐘作為同步時鐘對輸入數據進行同步。
本發明中采樣時刻寄存器和同步時鐘寄存器都為軟件可設置的寄存器,在進行正常DDR DRAM操作之前,必須先選擇正確的參數對這兩個寄存器進行配置。
采樣時刻寄存器用來確定在發出讀命令之后幾個時鐘周期用內部時鐘對經輸入時鐘采集后的輸入數據進行采樣。這個寄存器的值與DDR協議中的CL(CAS Latency)不同,它是從讀命令由讀邏輯發出到接口邏輯開始到由DDR DRAM發出的讀數據經接口邏輯采樣及同步后返回到讀邏輯為止的周期數,而CL僅僅是DDR DRAM由接收到讀命令到發出響應的周期數,因此采樣時刻寄存器的值要稍大于CL。
同步時鐘寄存器用來設置使用哪個相位的時鐘對經輸入時鐘采樣后的輸入數據進行同步。由于此時的輸入數據對于片內邏輯而言是同頻異步的,因此片內同步時鐘必須和數據信號保持足夠大的相位差以獲得足夠的采樣窗口來避免采樣錯誤。我們必須提供片內多個不同相位的時鐘作為同步時鐘的選擇。多數芯片內部使用鎖相環產生內部時鐘,DDR DRAM控制邏輯只需不超過400MHz頻率的時鐘,通過鎖相環很容易直接提供或分頻產生相隔四分之一或八分之一相位的時鐘,同步時鐘越多,時鐘相位間隔越小,數據采樣越精確。我們下面的說明假設只使用4個不同相位的時鐘,我們的方法同樣適合于更多相位時鐘的場合。
假設我們使用的4個時鐘分別為內部時鐘、內部時鐘偏移90度、內部時鐘偏移180度和內部時鐘偏移270度,我們將它們稱為CLK、CLK90、CLK180和CLK270。輸入數據在被輸入時鐘采集后,必須再用內部4個相位時鐘之一進行同步才能進入內部邏輯。對于DDR2-800而言,輸入數據有效寬度為1.25ns,幾個內部時鐘的相位差為0.625ns,必有至少一個相位的內部時鐘可以采樣到正確數據,可以選擇其中一個較穩定的作為同步時鐘。
無論設置哪個同步時鐘,數據最終必須被片內時鐘CLK采樣進入內部邏輯,這時要注意,對于CLK270而言,如果數據由它采樣后再被CLK采樣,間隔時間只有四分之一周期,如果DDR DRAM工作在400MHz頻率上,四分之一周期只有0.625ns,時間非常緊張,因此對于CLK270同步后的數據我們再用CLK90或CLK180采樣一次再送給CLK采樣,這樣最小采樣間隔為半周期,避免了建立時間不足的問題。
由于板上延時的不確定性,在系統調試時,我們對采樣時刻寄存器和同步時鐘寄存器應該設什么值并不清楚,必須用軟件對每種可能的設置進行寫讀比較,讀出數據正確的參數配置可以固定下來使用。
圖1所示為DDR DRAM讀返回信號時序圖,圖中CLK為片內DDR DRAM控制邏輯發出的時鐘信號,DQS、DQ、DM是讀數據時從DDR DRAM返回的信號,它們是邊沿對齊的并且與CLK為同頻異步信號,這3組信號在無數據操作時為高阻。
圖2所示為本發明在DDR DRAM控制器讀接口邏輯中數據采樣邏輯的結構圖。DQS、DQ和DM信號在無數據操作時是三態信號,在對DDR DRAM數據讀取時是輸入信號。采樣過程分以下幾步(1)用經過延時的DQS作為時鐘對DQ和DM進行采樣。在DQ和DM信號進入片內時,由于DQS和DQ和DM是邊沿對齊的,所以必須將DQS經過延時單元延時四分之一周期后對DQ和DM進行采集,只要DQS不為高阻,就進行數據采集。(2)用不同相位時鐘的狀態機對DQ和DM進行采樣。經過第一步的DQ和DM同時進入幾個不同相位時鐘的狀態機,由于DDR DRAM數據傳輸使用猝發方式,因此我們使用有限狀態機來實現數據同步,這里我們假設片內提供了四個不同相位的時鐘CLK、CLK90、CLK180和CLK270,它們與系統時鐘同頻,相位依次相差90度,每個時鐘控制一個狀態機,因此存在四個同步狀態機。同步狀態機何時開始操作取決于讀命令發出的時刻和采樣時刻寄存器的值。讀命令發出后,將有一個讀計數器開始計數,讀計數器的初值為采樣時刻寄存器的值,每過1個周期,讀計數器減1,當計數到0時,觸發采樣命令,這時4個同步狀態機開始采樣。(3)經過4個同步狀態機采樣后的4組數據通過采樣時鐘寄存器選擇其中一組輸出,采樣時鐘寄存器的值是通過軟件配置的,配置過程見圖3。(4)最后數據還要經過系統CLK采樣成為系統時鐘域中的信號輸入到內部邏輯。
圖3是本發明在DDR DRAM控制器中的參數配置流程圖。在印制板生產完成后,主控制芯片和DDR DRAM之間的延時并不知道,因此必須首先對主控制芯片中的配置參數進行設置,也就是設置采樣時刻寄存器和同步時鐘寄存器。從圖中我們可以看出,參數配置時,首先要寫1組數據到DDR DRAM中,然后遍歷每種參數配置,對同一地址進行讀操作,再用讀出的數據與寫入的數據進行比較,如果相同,表示參數配置成功,否則配置失敗。這里采樣時刻的范圍假設為6到8個時鐘周期,具體應用時根據實際情況可能會有所不同,同步時鐘參數的范圍為0到3,這是因為這里只提供了4個采樣時鐘,如果有8個采樣時鐘,此參數應為0到7。實際應用中,經常會遇到同時有幾組參數都滿足條件的情況,這時可以隨意選擇一組運行較穩定的參數配置,也可以適當調高時鐘頻率提高系統性能。
圖4是本發明在DDR DRAM控制器讀取邏輯中的讀數據采樣時序圖。這里假設DDR DRAM的猝發長度為4。由于DQ和DM都可以作為數據對待且它們的采樣及同步過程完全一樣,為簡單起見,圖中只畫出DQ的采樣同步過程。從圖中可以看出,在DQS和DQ進入片內后,首先將DQS延遲四分之一周期成為DQS_Delay,然后用DQS_Delay的上下沿采樣DQ,上沿采樣后的數據為DQ_Low,它包括DQ的第一和第三組數據,下沿采樣后的數據為DQ_High,它包括DQ的第二和第四組數據。接著將DQ_Low和DQ_High合并產生DQ_In,它的有效寬度如圖所示為半周期。接著應如圖3所示遍歷各種配置選擇正確參數進行設置。在此圖中,我們隨意給出了1組相差四分之一相位的內部時鐘,對此相位的波形,軟件在配置成功時會選擇時鐘CLK180作為同步時鐘,用時鐘CLK180同步的數據為DQ_180。最后,DQ_180還需被系統時鐘CLK采樣為DQ_Clk后進入芯片內部的同步邏輯。
權利要求
1.一種采樣點可配置的片外DRAM數據采樣方法,其特征在于在選定采樣時刻時,先用延時后的輸入時鐘對輸入數據進行采集,通過內部生成的多種相位的時鐘對采集后的同頻異步數據同時采樣,然后對多個采樣結果進行分析后選擇采樣結果正確的時鐘,將采樣時刻和采樣時鐘這2個參數固定下來用作以后的讀取操作。
2.根據權利要求1所述的采樣點可配置的片外DRAM數據采樣方法,其特征在于在采樣過程,須提供軟件可設置的采樣時刻寄存器和同步時鐘寄存器,通過設置采樣時刻寄存器確定在哪一拍進行數據采樣,通過設置同步時鐘寄存器來確定使用哪個相位的時鐘作為同步時鐘對經輸入時鐘采樣后的輸入數據進行同步。
全文摘要
本發明公開了一種采樣點可配置的片外DRAM數據采樣方法,在選定采樣時刻時,先用延時后的輸入時鐘對輸入數據進行采集,通過內部生成的多種相位的時鐘對采集后的同頻異步數據同時采樣,然后對多個采樣結果進行分析后選擇采樣結果正確的時鐘,將采樣時刻和采樣時鐘這2個參數固定下來用作以后的讀取操作。本發明是一種能夠滿足硬件實現簡單、面積小、功耗低的條件下,實現數據正確采樣以獲得較高性能的采樣點可配置的片外DRAM數據采樣方法。
文檔編號G11C11/4063GK101042929SQ20071003474
公開日2007年9月26日 申請日期2007年4月16日 優先權日2007年4月16日
發明者馬馳遠, 穆長富, 張明, 楊學軍, 張民選, 邢座程, 蔣江, 陳海燕, 高軍, 李晉文, 衣曉飛, 陽柳, 曾獻君, 李勇, 倪曉強, 唐遇星, 張承義 申請人:中國人民解放軍國防科學技術大學