專利名稱:內(nèi)存控制器讀選通使能微調寄存器的最小單元計算方法
技術領域:
本發(fā)明涉及計算機的內(nèi)存控制器領域,尤其是DDR3內(nèi)存控制器讀選通使能微調寄存器的最小単元計算方法。
背景技術:
在雙倍數(shù)據(jù)速率2 (DDR2)中,內(nèi)存模組上,時鐘信 號(Clock)、地址信號、命令信號和控制信號采用T型走線方式。印制電路板PCB設計中,數(shù)據(jù)組與數(shù)據(jù)組之間嚴格等長。在讀操作中,內(nèi)存控制器發(fā)出讀命令之后,會同時到達內(nèi)存通道上的每個內(nèi)存芯片;各個內(nèi)存芯片收到讀命令,間隔相同時間之后發(fā)出數(shù)據(jù)選通信號,最終各個內(nèi)存芯片發(fā)出的數(shù)據(jù)選通信號會同時到達內(nèi)存控制器。這樣,內(nèi)存控制器就可以將各個數(shù)據(jù)組的讀選通使能時機配置成相同值。因此在DDR2的內(nèi)存控制器的寄存器設計中,通常只有一個讀選通使能粗調寄存器,而沒有讀選通使能微調寄存器,并且統(tǒng)一配置所有數(shù)據(jù)組。在雙倍數(shù)據(jù)速率3 (DDR3)中,內(nèi)存模組上,時鐘信號、地址信號、命令信號和控制信號采用飛越總線(Fly-By Bus)走線方式。這種走線方式設計,在讀操作中,內(nèi)存控制器發(fā)出讀命令之后,同一個內(nèi)存通道上每個內(nèi)存芯片接收到讀命令的時間點可能都不一樣。飛越總線走線先經(jīng)過的內(nèi)存芯片最先接收到讀命令,該內(nèi)存芯片會最先發(fā)出數(shù)據(jù);同理,經(jīng)過的最后ー個內(nèi)存芯片最后收到讀命令,該內(nèi)存芯片會最后發(fā)出數(shù)據(jù)。也就是說,讀操作中同一個通道上的各個數(shù)據(jù)組對應的內(nèi)存芯片,發(fā)出的數(shù)據(jù)可能分別會在不同的時間點達到內(nèi)存控制器。因此內(nèi)存控制器必須單獨給每個數(shù)據(jù)組設置讀選通使能寄存器,DDR3的讀選通使能寄存器通常由讀選通使能粗調寄存器和讀選通使能微調寄存器共同組成。在DDR3中,內(nèi)存控制器對單個數(shù)據(jù)組的讀選通使能寄存器的配置,是由對讀選通使能粗調寄存器進行粗調,然后對讀選通使能微調寄存器進行微調來共同完成的。粗調通常步幅較大,讀選通使能粗調寄存器的最小単元(I ),通常為1/2個時鐘周期或者1/4個時鐘周期;微調通常步幅較小,讀選通使能微調寄存器的最小単元(Tra),通常為1/64個時鐘周期或者1/128個時鐘周期。內(nèi)存控制器寄存器設計中,讀選通使能微調寄存器能設置的最大值通常等于讀選通使能粗調寄存器的最小単元值。這樣,讀選通使能寄存器的值可以任意配置。內(nèi)存控制器對單個數(shù)據(jù)組的讀選通使能寄存器的配置,業(yè)內(nèi)通行的做法是,將讀選通使能寄存器的值由ー個很大的值,以每次減小讀選通使能微調寄存器的最小単元(Tfci)的步幅,逐一減小做試驗,一直試驗到很小的值。以該數(shù)據(jù)組寫進去的值讀出來正確為判定條件,統(tǒng)計滿足條件的讀選通使能寄存器最大值及最小值,將最大值和最小值的算木平均值作為該數(shù)據(jù)組讀選通使能寄存器最終值。但在某些DDR3內(nèi)存控制器中,讀選通使能粗調寄存器的最小單兀(Tetl)是已知的,但是讀選通使能微調寄存器的最小單兀(Tfci)是未知的,即內(nèi)存控制器相關文檔中并未說明讀選通使能微調寄存器的最小単元(Tra)的具體大小,僅僅說明該最小単元是個固定時間長度值并與時鐘周期無關,這使得讀選通使能時機的配置成為困難。
發(fā)明內(nèi)容
為了解決上述問題,針對讀選通使能微調寄存器的最小単元未知的DDR3內(nèi)存控制器,本發(fā)明提供了一種內(nèi)存控制器讀選通使能微調寄存器的最小単元計算方法,以完成對讀選通使能寄存器的配置。本發(fā)明利用的原理是內(nèi)存控制器發(fā)出讀命令推遲的時間,等于相應內(nèi)存控制器讀選通使能的最晚時機推遲的時間。本發(fā)明方法主要包括如下步驟
Cl)從通道內(nèi)隨機選擇ー個數(shù)據(jù)組,用來試驗;
(2)將讀選通使能粗調寄存器設置為(CL+1)*TeK,其中CL為列選通延時,Tcx為時鐘周
期;
(3)將該數(shù)據(jù)組所在的內(nèi)存芯片所使用的時鐘信號的延時寄存器設置為0,時鐘信號的延時寄存器最小単元值為Tai ;
(4)計算時鐘信號的延時值設置為O吋,讀選通使能微調寄存器可配置的最大值Omax,此時讀選通使能寄存器最大值為(CL+1)* Tck +Omax* Tfci,其中Tfci為讀選通使能微調寄存器的最小單兀;
(5)將該數(shù)據(jù)組所在的內(nèi)存芯片所使用的時鐘信號的延時寄存器設置為N;
(6)計算時鐘信號的延時值設置為N吋,讀選通使能微調寄存器可配置的最大值Nmax,此時讀選通使能寄存器最大值為(CL+1)* Tck +Nmax* Tfo ;
(7)設時鐘信號的延時寄存器由O變?yōu)镹吋,內(nèi)存控制器發(fā)出讀命令的時間推遲TD,即Td= N* Tai,內(nèi)存控制器讀選通使能的最晚時機也會相應推遲TD,則有
Td - { (CL+1)* Tck +Nmax* TfJ-{ (CL+1)* Tck +Omax* TfJ-Tfci*( Nmax _0mx);
因此得到 N* Tco= TF0* ( Nmax -Omax);
從而 Tfo=N* Tco/ ( Nmax-Omax) ο進ー步,所述讀選通使能微調寄存器可配置的最大值Omax與Nmax的計算方法為
(1)將該數(shù)據(jù)組對應的讀選通使能微調寄存器值設置為O;
(2)發(fā)出寫操作;
(3)再發(fā)出讀操作去讀剛寫進去的值;
(4)檢查讀出來該數(shù)據(jù)組對應值是否正確;
(5)將該數(shù)據(jù)組對應的讀選通使能微調寄存器值逐一増大,毎次増大1,直至讀選通使能微調寄存器本身能夠設置并有效的最大值M ;每設ー個讀選通使能微調寄存器值,執(zhí)行步驟(2)至(4);
(6)以滿足該數(shù)據(jù)組對應值寫 進去再讀出來正確為條件,得到該數(shù)據(jù)組的讀選通使能微調寄存器可配置的最大值。進ー步,所述N的取值應滿足Nmax小于M。本發(fā)明通過對讀選通使能微調寄存器最小単元的計算,使得某些未直接給出該最小単元具體值的DDR3內(nèi)存控制器也能完成讀選通使能時機的配置,并且使配置結果更精確。
圖I是讀選通使能微調寄存器的最小単元的計算方法流程示意圖。圖2是讀選通使能微調寄存器最大值的計算方法流程示意圖。
具體實施例方式下面結合附圖和實施例對本發(fā)明作進ー步詳細說明。本發(fā)明方法應用的基本原理是,內(nèi)存控制器對內(nèi)存模組早發(fā)出讀命令,從內(nèi)存芯片中讀取出來的數(shù)據(jù)將會早到達內(nèi)存控制器;內(nèi)存控制器對內(nèi)存模組晚發(fā)出讀命令,從內(nèi)存芯片中讀取出來的數(shù)據(jù)將會晚到達內(nèi)存控制器。本發(fā)明方 法中,利用內(nèi)存控制器發(fā)出讀命令推遲的時間,等于相應內(nèi)存控制器讀選通使能的最晚時機推遲的時間,也等于相應內(nèi)存控制器讀選通使能的最早時機推遲的時間。這里,讀選通使能的最晚時機,對應讀選通使能寄存器的最大值;讀選通使能的最早時機,對應讀選通使能寄存器的最小值。本發(fā)明方法,利用內(nèi)存控制器發(fā)出讀命令推遲的時間,等于相應內(nèi)存控制器讀選通使能的最晚時機推遲的時間。假設將內(nèi)存控制器發(fā)出讀命令的時間推遲TD,那么內(nèi)存芯片發(fā)出的數(shù)據(jù)將會推遲Td到達內(nèi)存控制器,相應內(nèi)存控制器讀選通使能的最晚時機也會相應推遲TD。如圖I所示,為了求得內(nèi)存控制器讀選通使能微調寄存器的最小単元,本發(fā)明方法步驟如下
(1)從通道內(nèi)隨機選擇ー個數(shù)據(jù)組,用來試驗;
(2)將讀選通使能粗調寄存器設置為(CL+1)*TeK,其中CL為列選通延時(CASLatency), Tck為時鐘周期;
(3)將該數(shù)據(jù)組所在的內(nèi)存芯片所使用的時鐘信號的延時寄存器設置為0,時鐘信號(Clock)的延時寄存器最小單元為Ira ;
(4)根據(jù)讀選通使能微調寄存器最大值的計算方法,得到時鐘信號(Clock)的延時值設置為O時,讀選通使能微調寄存器可配置最大值為Omax,此時讀選通使能寄存器最大值為(CL+1) * Tck +Omax* Tfo ;
(5)將該數(shù)據(jù)組所在的內(nèi)存芯片所使用的時鐘信號(Clock)的延時寄存器設置為N;
(6)根據(jù)讀選通使能微調寄存器最大值的計算方法,得到時鐘信號(Clock)的延時值設置為N時,讀選通使能微調寄存器可配置最大值為Nmax,此時讀選通使能寄存器最大值為(CL+1) * Tck +Nmax* Tfo ;
(7)計算讀選通使能微調寄存器的最小単元(Tra)的大小,根據(jù)本發(fā)明方法的基本原理,假設將內(nèi)存控制器發(fā)出讀命令的時間推遲TD,那么內(nèi)存芯片發(fā)出的數(shù)據(jù)將會推遲Td到達內(nèi)存控制器,相應內(nèi)存控制器讀選通使能的最晚時機也會相應推遲Td ;
Ca)時鐘信號(Clock)的延時寄存器由O變?yōu)镹,根據(jù)寄存器描述,時鐘信號(Clock)的延時寄存器的最小単元值為Tai,那么若內(nèi)存控制器發(fā)出讀命令的時間推遲TD,即Td= N*Tai,相應內(nèi)存控制器讀選通使能的最晚時機也會相應推遲TD,則有
Td - { (CL+1)* Tck +Nmax* TfJ-{ (CL+1)* Tck +Omax* TfJ-Tfci*( Nmax _0mx);
(b)因此得到N* Tco= TFQ*( Nmax -Omax);
(c)那么,讀選通使能微調寄存器的最小単元Tfci為
Tfo-N* Tco/ ( Nmax-Omax)。本發(fā)明方法在步驟(I)中選擇數(shù)據(jù)組用來試驗時,沒有嚴格要求,可以隨機選取ー個數(shù)據(jù)組來進行相關試驗。在步驟(2)中,將讀選通使能粗調寄存器設置為(CL+1) * Tck的原因是,讀選通使能的時機計算的起始點是發(fā)出讀命令信號。根據(jù)固態(tài)技術協(xié)會(JEDEC)的定義,內(nèi)存控制器讀選通使能時機要選在讀準備(Read Preamble)過程中。也就是說,讀選通使能寄存器的最大值,對應的時間點就是數(shù)據(jù)信號(DQ)到達內(nèi)存控制器的時間。下面描述從內(nèi)存控制器發(fā)出讀命令到數(shù)據(jù)信號到達內(nèi)存控制器的過程首先內(nèi)存控制器發(fā)出的讀命令經(jīng)過芯片延時(包括內(nèi)存控制器及內(nèi)存芯片內(nèi)部延時),以及印制電路板(PCB)走線的延時之后到達內(nèi)存芯片;內(nèi)存芯片在CL* Tcx之后發(fā)出數(shù)據(jù)信號,數(shù)據(jù)信號再次經(jīng)過芯片延時(包括內(nèi)存控制器及內(nèi)存芯片內(nèi)部延時)以及印制電路板走線的延時之后到達內(nèi)存控制器。綜合以上因素,將讀選通使能粗調寄存器設置為(CL+1)* Tcx,當然在實際調試過程中,如果該讀選通使能粗調寄存器設置下,讀選通使能微調寄存器最大值計算的過程中,出現(xiàn)所有值均不能滿足該數(shù)據(jù)組對應值寫進去再讀出來正確的情況下,則需要考慮將讀選通使能粗調寄存器值相應調大或者調小一個粗調寄存器的最小単元。圖2示出了讀選通使能粗調寄存器設置好之后,讀選通使能微調寄存器的最大值 確定方法。如圖2所示,具體步驟如下
(1)將該數(shù)據(jù)組對應的讀選通使能微調寄存器值設置為O;
(2)發(fā)出寫操作;
(3)再發(fā)出讀操作去讀剛寫進去的值;
(4)檢查讀出來該數(shù)據(jù)組對應值是否正確;
(5)將該數(shù)據(jù)組對應的讀選通使能微調寄存器值逐一増大,毎次増大1,直至M值(M值是讀選通使能微調寄存器本身能夠設置并有效的最大值);每設ー個讀選通使能微調寄存器值,執(zhí)行步驟(2)至(4);
(6)以滿足該數(shù)據(jù)組對應值寫進去再讀出來正確為條件,最后得到該數(shù)據(jù)組的讀選通使能微調寄存器可配置的最大值。本發(fā)明中,Nmax和Omax均是讀選通使能微調寄存器在某種特定條件下的最大值,與M值之間應該滿足0 ( Omax < Nmax < M ;其中,Nmax不能等于M,當Nmax等于M吋,說明已經(jīng)遭遇讀選通使能微調寄存器本身能夠設置并有效的最大值邊界,此時Nmax無效。另外,N在取值時應該也要滿足Nmax < M,且N值最好不要太小,否則會導致較大的誤差。
權利要求
1.一種內(nèi)存控制器讀選通使能微調寄存器的最小単元計算方法,包括如下步驟 (1)從通道內(nèi)隨機選擇ー個數(shù)據(jù)組,用來試驗; (2)將讀選通使能粗調寄存器設置為(CL+1)*TeK,其中CL為列選通延時,Tcx為時鐘周期; (3)將該數(shù)據(jù)組所在的內(nèi)存芯片所使用的時鐘信號的延時寄存器設置為O,時鐘信號的延時寄存器最小単元值為Tai ; (4)計算時鐘信號的延時值設置為O吋,讀選通使能微調寄存器可配置的最大值Omax,此時讀選通使能寄存器最大值為(CL+1)* Tck +Omax* Tfci,其中Tfci為讀選通使能微調寄存器的最小單兀; (5)將該數(shù)據(jù)組所在的內(nèi)存芯片所使用的時鐘信號的延時寄存器設置為N; (6)計算時鐘信號的延時值設置為N吋,讀選通使能微調寄存器可配置的最大值Nmax,此時讀選通使能寄存器最大值為(CL+1)* Tck +Nmax* Tfo ; (7)設時鐘信號的延時寄存器由O變?yōu)镹吋,內(nèi)存控制器發(fā)出讀命令的時間推遲TD,即Td= N* Tai,內(nèi)存控制器讀選通使能的最晚時機也會相應推遲TD,則有Td - { (CL+1)* Tck +Nmax* TfJ-{ (CL+1)* Tck +Omax* TfJ-Tfci*( Nmax _0mx);因此得到 N* Tco= TF0* ( Nmax -Omax);從而 Tfo=N* Tco/ ( Nmax-Omax) ο
2.根據(jù)權利要求I所述的方法,其特征是所述讀選通使能微調寄存器可配置的最大值Omax與Nmax的計算方法為 (1)將該數(shù)據(jù)組對應的讀選通使能微調寄存器值設置為O; (2)發(fā)出寫操作; (3)再發(fā)出讀操作去讀剛寫進去的值; (4)檢查讀出來該數(shù)據(jù)組對應值是否正確; (5)將該數(shù)據(jù)組對應的讀選通使能微調寄存器值逐一増大,毎次増大1,直至讀選通使能微調寄存器本身能夠設置并有效的最大值M ;每設ー個讀選通使能微調寄存器值,執(zhí)行步驟(2)至(4); (6)以滿足該數(shù)據(jù)組對應值寫進去再讀出來正確為條件,得到該數(shù)據(jù)組的讀選通使能微調寄存器可配置的最大值。
3.根據(jù)權利要求2所述的方法,其特征是所述N的取值應滿足Nmax小于M。
全文摘要
本發(fā)明公開了一種內(nèi)存控制器讀選通使能微調寄存器的最小單元計算方法,以實現(xiàn)對讀選通使能寄存器的配置。本發(fā)明利用的基本原理是內(nèi)存控制器發(fā)出讀命令推遲的時間,等于相應內(nèi)存控制器讀選通使能的最晚時機推遲的時間。首先計算不同時鐘信號延時值條件下的讀選通使能微調寄存器可配置的最大值,再利用上述原理進行計算,求得最終結果。本發(fā)明使得某些未直接給出讀選通使能微調寄存器最小單元具體值的DDR3內(nèi)存控制器也能完成讀選通使能時機的配置。
文檔編號G06F13/16GK102693197SQ201210138318
公開日2012年9月26日 申請日期2012年5月7日 優(yōu)先權日2012年5月7日
發(fā)明者吳少剛, 周國強, 張斌, 張福新 申請人:江蘇中科夢蘭電子科技有限公司