TWI474334B - 記憶體的最佳化數值搜尋方法 - Google Patents
記憶體的最佳化數值搜尋方法 Download PDFInfo
- Publication number
- TWI474334B TWI474334B TW100114453A TW100114453A TWI474334B TW I474334 B TWI474334 B TW I474334B TW 100114453 A TW100114453 A TW 100114453A TW 100114453 A TW100114453 A TW 100114453A TW I474334 B TWI474334 B TW I474334B
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- phase delay
- values
- optimized
- memory
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 35
- 238000005457 optimization Methods 0.000 claims description 55
- 101100407422 Arabidopsis thaliana PDV1 gene Proteins 0.000 description 50
- 101100519278 Arabidopsis thaliana PDV2 gene Proteins 0.000 description 45
- 240000007320 Pinus strobus Species 0.000 description 30
- 238000010586 diagram Methods 0.000 description 14
- 229910004670 OPV1 Inorganic materials 0.000 description 7
- 229910004667 OPV2 Inorganic materials 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
本發明是有關於一種最佳化數值搜尋方法,且特別是有關於一種記憶體的最佳化相位延遲值的搜尋方法。
近年來,由於雙倍資料速率(double data rate,DDR)同步動態隨機存取記憶體(Synchronous Dynamic Random Access Memory,SDRAM)的低耗電性、高耐久性以及高速讀寫的特性,使得雙倍資料速率同步動態隨機存取記憶體模組廣泛用在筆記型電腦、工作站、伺服器、路由器及交換器等電子產品中。
為了使記憶體可以穩定的讀寫,其讀寫方法是將資料選通(Data Queue Strobe,DQS)信號作適當的延遲後,才來栓鎖記憶體的資料(Data Queue,DQ)信號。一般而言,資料選通信號的延遲時間係由設定一相位延遲值來決定,而改變相位延遲值的大小即可改變控制延遲時間。而且,現今的資料選通信號的延遲時間會依據預設值做設定,而此預設值為根據廠商提供的資料手冊(Data Sheet)來設定。然而,依據廠商提供的資料手冊而設定的相位延遲值並不能隨著個別的環境、元件狀態或電路佈局等因素而調整,因此資料選通信號的延遲時間可能並非最佳的設定,使得記憶體的讀寫狀況會不穩定。
本發明提供一種記憶體的最佳化數值搜尋方法,可搜尋相位延遲值的最佳化數值,以避免記憶體因相位延遲值的設定不佳而讀寫失敗。
本發明提出一種記憶體的最佳化數值搜尋方法,包括下列步驟。將記憶體的第一相位延遲值依序設定為多個第一數值。將記憶體的第二相位延遲值依序設定為多個第二數值。對記憶體進行讀寫測試。記錄每一第一數值與這些第二數值的不同組合中通過讀寫測試的組合數。選取這些第一數值中對應通過讀寫測試的組合數大於第一門檻值的部分。於上述選取的這些第一數值中選取為中間值或靠近中間值的第一數值作為第一最佳化數值。將第一相位延遲值設定為第一最佳化數值。記錄這些第二數值通過讀寫測試的部分。選取這些第二數值中通過讀寫測試的部分中為中間值或靠近中間值的第二數值作為第二最佳化數值。將第二相位延遲值設定為第二最佳化數值。
在本發明之一實施例中,記憶體的最佳化數值搜尋方法更包括:將記憶體的第三相位延遲值依序設定為多個第三數值;將記憶體的第四相位延遲值依序設定為多個第四數值;記錄每一第三數值與這些第一數值、這些第二數值及這些第四數值的不同組合中通過讀寫測試的組合數;選取這些第三數值中對應通過讀寫測試的組合數大於第二門檻值的部分;於上述選取的這些第三數值中選取為中間值或靠近中間值的第三數值作為第三最佳化數值;將第三相位延遲值設定為第三最佳化數值;記錄每一第四數值與這些第一數值及這些第二數值的不同組合中通過讀寫測試的組合數;選取這些第四數值中對應通過讀寫測試的組合數大於第三門檻值的部分;於上述選取的這些第四數值中選取為中間值或靠近中間值的第四數值作為第四最佳化數值;將第四相位延遲值設定為第四最佳化數值。
在本發明之一實施例中,這些第一數值、這些第二數值、這些第三數值及這些第四數值分別為多個連續且大於等於0的整數。
在本發明之一實施例中,這些第一數值、這些第二數值、這些第三數值及這些第四數值分別為多個不連續且大於等於0的整數。
在本發明之一實施例中,這些第一數值、這些第二數值、這些第三數值及這些第四數值的間距相同。
在本發明之一實施例中,記憶體的最佳化數值搜尋方法,更包括:依據第一最佳化數值選取多個連續的第五數值,其中這些第五數值包括第一最佳化數值;依據第二最佳化數值選取多個連續的第六數值,其中這些第六數值包括第二最佳化數值;依據第三最佳化數值選取多個連續的第七數值,其中這些第七數值包括第三最佳化數值;依據第四最佳化數值選取多個連續的第五數值,其中這些第五數值包括第一最佳化數值;將第一相位延遲值依序設定為這些第五數值;將第二相位延遲值依序設定為這些第六數值;將第三相位延遲值依序設定為這些第七數值;將第四相位延遲值依序設定為這些第八數值;記錄每一第七數值與這些第五數值、這些第六數值及這些第八數值的不同組合中通過讀寫測試的組合數;選取這些第七數值中對應通過讀寫測試的組合數大於第四門檻值的部分;於上述選取的這些第七數值中選取為中間值或靠近中間值的第七數值作為第四最佳化數值;將第三相位延遲值設定為第五最佳化數值;記錄每一第八數值與這些第五數值及這些第六數值的不同組合中通過讀寫測試的組合數;選取這些第八數值中對應通過讀寫測試的組合數大於第五門檻值的部分;於上述選取的這些第八數值中選取為中間值或靠近中間值的第八數值作為第六最佳化數值;將第四相位延遲值設定為第六最佳化數值;記錄每一第五數值與這些第六數值的不同組合中通過讀寫測試的組合數;選取這些第五數值中對應通過讀寫測試的組合數大於第六門檻值的部分;於上述選取的這些第五數值中選取為中間值或靠近中間值的第五數值作為第七最佳化數值;將第一相位延遲值設定為第七最佳化數值;記錄這些第六數值通過讀寫測試的部分;於上述選取的這些第六數值中選取為中間值或靠近中間值的第六數值作為第八最佳化數值;將第二相位延遲值設定為第八最佳化數值。
在本發明之一實施例中,第一最佳化數值為這些第五數值的中間值,第二最佳化數值為這些第六數值的中間值,第三最佳化數值為這些第七數值的中間值,第一最佳化數值為這些第五數值的中間值。
在本發明之一實施例中,第一相位延遲值、第二相位延遲值、第三相位延遲值及第四相位延遲值分別為記憶體進行資料讀取時的資料選通(Data Queue Strobe,DQS)信號對應的相位延遲值及資料(Data Queue,DQ)信號對應的相位延遲值、以及記憶體進行資料寫入時的資料選通信號對應的相位延遲值及資料信號對應的相位延遲值。
在本發明之一實施例中,這些第一數值及這些第二數值分別為多個連續且大於等於0的整數。
在本發明之一實施例中,這些第一數值及這些第二數值分別為多個不連續且大於等於0的整數。
在本發明之一實施例中,這些第一數值及這些第二數值的間距相同。
在本發明之一實施例中,記憶體的最佳化數值搜尋方法,更包括:依據第一最佳化數值選取多個連續的第九數值,其中這些第九數值包括第一最佳化數值;依據第二最佳化數值選取多個連續的第十數值,其中這些第十數值包括第二最佳化數值;將第一相位延遲值依序設定為這些第九數值;將第二相位延遲值依序設定為這些第十數值;記錄每一第九數值與這些第十數值的不同組合中通過讀寫測試的組合數;選取這些第九數值中對應通過讀寫測試的組合數大於第七門檻值的部分;於上述選取的這些第九數值中選取為中間值或靠近中間值的第九數值作為第九最佳化數值;將第一相位延遲值設定為第九最佳化數值;記錄這些第十數值通過讀寫測試的部分;選取這些第十數值中通過讀寫測試的部分中為中間值或靠近中間值的第十數值作為第十最佳化數值;將第二相位延遲值設定為第十最佳化數值。
在本發明之一實施例中,之第一最佳化數值為這些第九數值的中間值,第二最佳化數值為這些第十數值的中間值。
在本發明之一實施例中,第一相位延遲值為記憶體進行資料讀取時的資料選通信號對應的相位延遲值及記憶體進行資料寫入時的資料選通信號對應的相位延遲值的其中之一,第二相位延遲值為記憶體進行資料讀取時的資料信號對應的相位延遲值及記憶體進行資料寫入時的資料信號對應的相位延遲值的其中之一。
基於上述,本發明實施例的記憶體的最佳化數值搜尋方法,其將第一相位延遲值多個第一數值,以及將第二相位延遲值依序設定為多個第二數值,據此形成多個不同的組合,並且測試這些組合是否通過讀寫測試,再依據通過測試的組合找出用以設定第一相位延遲值的第一最佳化數值。在第一相位延遲值設定為第一最佳化數值時,第二相位延遲值會依序設定為這些第二數值,並且測試是否通過讀寫測試,據此找出用以設定第二相位延遲值的第二最佳化數值。藉此,第一相位延遲值及第二相位延遲值可設定為經過讀寫測試的第一最佳化數值及第二最佳化數值,以避免記憶體因相位延遲值的設定不佳而讀寫失敗的效果。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
依據上述,由於資料選通信號的相位延遲值為依據廠商提供的資料手冊來設定,因此資料選通信號的延遲時間並不能隨著個別的環境、元件狀態或電路佈局等因素而調整,以致於有資料讀寫失敗的可能。為了解決上述可能資料讀寫失敗的問題,本發明提出一種記憶體的最佳化數值搜尋方法,以搜尋最佳的相位延遲值。並且,上述的相位延遲值為設定資料選通信號的延遲時間,相反地,亦可對資料信號設定對應的延遲時間,亦即設定對應資料信號的相位延遲值,以使資料選通信號與資料信號於時序上可相互配合,進而達到資料讀寫的功能。
此外,在進行資料讀取的時序與進行資料寫入的時序可能會不同,因此資料選通信號與資料信號於進行資料讀取時的適當延遲時間可能會不同於進行資料寫入時的適當延遲時間,亦即在進行資料讀取時,資料選通信號與資料信號會分別對應兩個相位延遲值,在進行資料寫入時,資料選通信號與資料信號會分別對應另外兩個相位延遲值。
再者,相位延遲值的數值範圍為依據相位延遲值的位元數大小而定。若相位延遲值為5位元,則相位延遲值的數值範圍為0至31(即相位延遲值具有32個檔位(gear));若相位延遲值為8位元,則相位延遲值的數值範圍為0至255(即相位延遲值具有256個檔位)。其中,不同檔位對應不同的相位延遲,亦即不同檔位對應不同的延遲時間。
圖1為依據本發明一實施例的多個相位延遲值依序設定為不同數值的時序示意圖。請參照圖1,在本實施例中,相位延遲值PDV1可以為記憶體進行資料寫入時資料選通信號及資料信號其中之一對應的相位延遲值,而相位延遲值PDV2可以為記憶體進行資料讀取時資料選通信號及資料信號其中之一對應的相位延遲值。
進一步來說,當相位延遲值PDV1為記憶體進行資料寫入時資料選通信號對應的相位延遲值,則記憶體進行資料寫入時資料信號對應的相位延遲值會設定為固定值;當相位延遲值PDV1為記憶體進行資料寫入時資料信號對應的相位延遲值,則記憶體進行資料寫入時資料選通信號對應的相位延遲值會設定為固定值。相似地,當相位延遲值PDV2為記憶體進行資料讀取時資料選通信號對應的相位延遲值,則記憶體進行資料讀取時資料信號對應的相位延遲值會設定為固定值;當相位延遲值PDV2為記憶體進行資料讀取時資料信號對應的相位延遲值,則記憶體進行資料讀取時資料選通信號對應的相位延遲值會設定為固定值。其中,上述固定值可以為特定的檔位。
在其他實施例中,相位延遲值PDV1可以為記憶體進行資料讀取時資料選通信號及資料信號其中之一對應的相位延遲值,而相位延遲值PDV2可以為記憶體進行資料寫入時資料選通信號及資料信號其中之一對應的相位延遲值,此可依據本領域通常知識者自行設定。
在本實施例中,假設相位延遲值PDV1及PDV2為5位元的數值,因此相位延遲值PDV1及PDV2的數值範圍為0至31。在本實施例的記憶體的最佳化數值搜尋方法中,首先將相位延遲值PDV1及PDV2依序設定為0至31。並且,在相位延遲值PDV2設定為0的期間,相位延遲值PDV1會依序設定為0至31;在相位延遲值PDV2設定為1的期間,相位延遲值PDV1同樣會依序設定為0至31,其餘則以此類推。換言之,相位延遲值PDV1的數值更換速度較快,相位延遲值PDV2的數值更換速度較慢。
在每次相位延遲值PDV1的數值更換之後,皆會對記憶體進行讀寫測試,以測試相位延遲值PDV1及PDV2不同的數值組合是否可以通過讀寫測試。並且,記錄相位延遲值PDV2分別設定為0至31時,與相位延遲值PDV1分別設定為0至31的不同組合中通過讀寫測試的組合數。
圖2為依據本發明一實施例的這些相位延遲值與通過讀寫測試的組合數的對應示意圖。請參照圖1及圖2,在本實施例中,假設相位延遲值PDV2設定為0時,通過讀寫測試的組合數為0;假設相位延遲值PDV2設定為1時,通過讀寫測試的組合數為0;假設相位延遲值PDV2設定為2時,通過讀寫測試的組合數為1,其餘則參照圖示,在此不作贅述。
接著,選取對應的通過讀寫測試的組合數大於門檻值TH1的數值。在此門檻值TH1以9為例,則被選取的數值為15至23。然後,在被選取的數值(即15至23)之中,選取為中間值的19作為最佳化數值OPV2,其中當被選取的這些數值的中間值非整數值時,則可以選取靠近中間值且較大或較小於中間值的數值,本發明實施例不以此為限。
在搜尋到最佳化數值OPV2之後,將相位延遲值PDV2設定為最佳化數值OPV2(例如19)。在相位延遲值PDV2設定為19的期間,相位延遲值PDV1同樣會依序設定為0至31。在每次相位延遲值PDV1的數值更換之後,同樣會對記憶體進行讀寫測試。並且,記錄相位延遲值PDV1分別設定為0至31時通過讀寫測試的部分。例如,在相位延遲值PDV2設定為19且相位延遲值PDV1設定為4至15時,記憶體可通過讀寫測試。據此,會取4至15的中間值作為最佳化數值OPV1,並且將相位延遲值PDV1設定最佳化數值OPV1,其中,由於4至15的中間值非整數,因此可選取9或10作為最佳化數值OPV1。
在將相位延遲值PDV1設定為最佳化數值OPV1且相位延遲值PDV2設定為最佳化數值OPV2之後,由於最佳化數值OPV1及OPV2為經由讀寫測試所獲得,因此可避免記憶體因相位延遲值PDV1及PDV2的設定不佳而讀寫失敗。
此外,在上述實施例的最佳化數值搜尋方法中,其相位延遲值PDV1及PDV2會依序設定為多個連續且大於等於0的整數。然而,當相位延遲值PDV1及PDV2的位元數增加時,則上述實施例的最佳化數值搜尋方法所花費的時間亦會增加。因此,本發明的另一實施例提出另一種最佳化數值搜尋方法,以降低搜尋最佳化數值所需要的時間。
圖3為依據本發明另一實施例的多個相位延遲值依序設定為不同數值的時序示意圖。請參照圖1及圖3,在本實施例中,假設相位延遲值PDV1及PDV2為8位元的數值,因此相位延遲值PDV1及PDV2的數值範圍為0至255。在本實施例的記憶體的最佳化數值搜尋方法中,相位延遲值PDV1及PDV2皆不會依序設定為0至255,而是依序設定為0、8、16、…、248等遞增8的數值。其中,上述相位延遲值PDV1及PDV2設定的數值為由0至255中取32個,但在其他實施例中,亦可以選擇性地取16或64個,而數值間的間距則對應的調整為16或4,此可依據本領域通常知識都自行設定。
在每次相位延遲值PDV1的數值更換之後,同樣會對記憶體進行讀寫測試,以測試相位延遲值PDV1及PDV2不同的數值組合是否可以通過讀寫測試。並且,記錄相位延遲值PDV2分別設定為0、8、16、…、248等時,與相位延遲值PDV1分別設定為0、8、16、…、248等的不同組合中通過讀寫測試的組合數,再依據對應的通過讀寫測試的組合數是否大於門檻值TH2(例如為9)來選取用以設定相位延遲值PDV2的數值。
在此假設選取的數值為160、168、176、184、192、200、208、216及224,則將上述選取的數值的中間值(即192)作為最佳化數值OPV4。接著,將相位延遲值PDV2設定為192(亦即最佳化數值OPV4)。在相位延遲值PDV2設定為192的期間,相位延遲值PDV1同樣會依序設定為0、8、16、…、248等。在每次相位延遲值PDV1的數值更換之後,同樣會對記憶體進行讀寫測試。並且,記錄相位延遲值PDV1分別設定為0、8、16、…、248等時通過讀寫測試的部分。
例如,在相位延遲值PDV2設定為192且相位延遲值PDV1分別設定為96、104、112、120、128、136、144、152及160時,記憶體可通過讀寫測試。據此,會取96、104、112、120、128、136、144、152及160的中間值(即128)作為最佳化數值OPV3,並且將相位延遲值PDV1設定最佳化數值OPV3。其中,當選取的數值的中間值不為本實施例中用以設定相位延遲值PDV1及PDV2的數值時,則會從本實施例中用以設定相位延遲值PDV1及PDV2的數值中選取靠近中間值且較大於或較小於中間值的數值。
依據上述,本實施例的記憶體的最佳化數值搜尋方法是作概略性搜尋,並且搜尋到的最佳化數值OPV3及OPV4同樣具有可避免記憶體因相位延遲值PDV1及PDV2的設定不佳而讀寫失敗的效果。並且,可再依據最佳化數值OPV3及OPV4進行進一步的搜尋,以搜尋相位延遲值PDV1及PDV2更精細的最佳化設定。
圖4為依據本發明另一實施例的這些相位延遲值進一步依序設定為不同數值的時序示意圖。請參照圖3及圖4,在本實施例中,會以最佳化數值OPV3及OPV4為基準點(例如作為中間值)選取多個連續的數值來依序設定相位延遲值PDV1及PDV2。假設最佳化數值OPV3為128,則在本實施例中會以128為基準點取前面8個及後面7個共16個數值(亦即120至135)用以依序設定相位延遲值PDV1。假設最佳化數值OPV4為192,則在本實施例中會以192為基準點取前面8個及後面7個共16個數值(亦即184至199)用以依序設定相位延遲值PDV2。其中,上述數值的選取範圍可依據本領域通常知識者自行調整,並且可往前及往後取同數量的數值,以使最佳化數值OPV3及OPV4為選取的數值的中間值,本發明不以此為限。
接著,相位延遲值PDV1會依序設定為120至135,並且相位延遲值PDV2會依序設定為184至199。在每次相位延遲值PDV1的數值更換之後,同樣會對記憶體進行讀寫測試。並且,記錄相位延遲值PDV2分別設定為184至199時,與相位延遲值PDV1分別設定為120至135的不同組合中通過讀寫測試的組合數。同樣地,會依據對應的通過讀寫測試的組合數是否大於門檻值TH3(例如為5)來選取用以設定相位延遲值PDV2的數值
在此假設選取的數值為188至194,則將上述選取的數值的中間值(即191)作為最佳化數值OPV6。接著,將相位延遲值PDV2設定為191(亦即最佳化數值OPV6)。在相位延遲值PDV2設定為191的期間,相位延遲值PDV1同樣會依序設定為120至135。在每次相位延遲值PDV1的數值更換之後,同樣會對記憶體進行讀寫測試。並且,記錄相位延遲值PDV1分別設定為120至135時通過讀寫測試的部分。
例如,在相位延遲值PDV2設定為191且相位延遲值PDV1分別設定為122至128時,記憶體可通過讀寫測試。據此,會取122至128的中間值(即125)作為最佳化數值OPV5,並且將相位延遲值PDV1設定最佳化數值OPV5。
圖5為依據本發明再一實施例的多個相位延遲值依序設定為不同數值的時序示意圖。請參照圖1及圖5,上述實施例為搜尋記憶體進行資料寫入時資料選通信號及資料信號其中之一對應的相位延遲值,以及搜尋記憶體進行資料讀取時資料選通信號及資料信號其中之一對應的相位延遲值。但在本實施例中,則會搜尋記憶體進行資料寫入時資料選通信號及資料信號對應的相位延遲值,以及搜尋記憶體進行資料讀取時資料選通信號及資料信號對應的相位延遲值。換言之,相位延遲值PDV3至PDV6分別為記憶體進行資料寫入時資料選通信號及資料信號對應的相位延遲值,以及記憶體進行資料讀取時資料選通信號及資料信號對應的相位延遲值。
在本實施例中,相位延遲值PDV3至PDV6是為5位元的數值為例,因此相位延遲值PDV3至PDV6的數值範圍為0至31。在本實施例中,記憶體的最佳化數值搜尋方法首先將相位延遲值PDV3至PDV6依序設定為0至31。
在每次相位延遲值PDV3的數值更換之後,皆會對記憶體進行讀寫測試,以測試相位延遲值PDV3至PDV6不同的數值組合是否可以通過讀寫測試。並且,記錄相位延遲值PDV6分別設定為0至31時,與相位延遲值PDV5分別設定為0至31、相位延遲值PDV4分別設定為0至31及相位延遲值PDV3分別設定為0至31的不同組合中通過讀寫測試的組合數。接著,依據對應的通過讀寫測試的組合數是否大於門檻值TH4(例如為9216)來選取用以設定相位延遲值PDV6的數值。
在此假設選取的數值為13至17,則將上述選取的數值的中間值(即15)作為最佳化數值OPV10。接著,將相位延遲值PDV6設定為15(亦即最佳化數值OPV10)。在相位延遲值PDV6設定為15的期間,相位延遲值PDV3至PDV5會依序設定為0至31。在每次相位延遲值PDV3的數值更換之後,會對記憶體進行讀寫測試。並且,記錄相位延遲值PDV5分別設定為0至31時,與相位延遲值PDV4分別設定為0至31及相位延遲值PDV3分別設定為0至31的不同組合中通過讀寫測試的組合數。接著,依據對應的通過讀寫測試的組合數是否大於門檻值TH5(例如為288)來選取用以設定相位延遲值PDV5的數值。
在此假設選取的數值為16至22,則將上述選取的數值的中間值(即19)作為最佳化數值OPV9。接著,將相位延遲值PDV5設定為19(亦即最佳化數值OPV9)。在相位延遲值PDV6設定為15且相位延遲值PDV5設定為19的期間,相位延遲值PDV3及PDV4會依序設定為0至31。在每次相位延遲值PDV3的數值更換之後,同樣會對記憶體進行讀寫測試。並且,記錄相位延遲值PDV4分別設定為0至31時,與相位延遲值PDV3分別設定為0至31的不同組合中通過讀寫測試的組合數。接著,依據對應的通過讀寫測試的組合數是否大於門檻值TH6(例如為9)來選取用以設定相位延遲值PDV4的數值。
在此假設選取的數值為14至18,則將上述選取的數值的中間值(即16)作為最佳化數值OPV8。接著,將相位延遲值PDV4設定為16(亦即最佳化數值OPV8)。在相位延遲值PDV6設定為15、相位延遲值PDV5設定為19且相位延遲值PDV4設定為16的期間,相位延遲值PDV3會依序設定為0至31。在每次相位延遲值PDV3的數值更換之後,同樣會對記憶體進行讀寫測試。並且,記錄相位延遲值PDV3分別設定為0至31時通過讀寫測試的部分。
例如,在相位延遲值PDV6設定為15、相位延遲值PDV5設定為19、相位延遲值PDV4設定為16且相位延遲值PDV3分別設定為10至17時,記憶體可通過讀寫測試。據此,會取10至17的中間值(即14)作為最佳化數值OPV7,並且將相位延遲值PDV3設定最佳化數值OPV7。
圖6為依據本發明又一實施例的多個相位延遲值依序設定為不同數值的時序示意圖。請參照圖5及圖6,在本實施例中,假設相位延遲值PDV3至PDV6為8位元的數值,因此相位延遲值PDV3至PDV6的數值範圍為0至255。在本實施例的記憶體的最佳化數值搜尋方法中,相位延遲值PDV3至PDV6不會依序設定為0至255,而是依序設定為0、8、16、…、248等遞增8的數值。
在每次相位延遲值PDV3的數值更換之後,同樣會對記憶體進行讀寫測試,以測試相位延遲值PDV3至PDV6不同的數值組合是否可以通過讀寫測試。並且,記錄相位延遲值PDV6分別設定為0、8、16、…、248等時,與相位延遲值PDV5分別設定為0、8、16、…、248等、相位延遲值PDV4分別設定為0、8、16、…、248等及相位延遲值PDV3分別設定為0、8、16、…、248等的不同組合中通過讀寫測試的組合數。接著,依據對應的通過讀寫測試的組合數是否大於門檻值TH7(例如為9216)來選取用以設定相位延遲值PDV6的數值。
在此假設選取的數值為96、104、112、120、128、136、144、152及160,則將上述選取的數值的中間值(即128)作為最佳化數值OPV14。接著,將相位延遲值PDV6設定為128(亦即最佳化數值OPV14)。在相位延遲值PDV6設定為128的期間,相位延遲值PDV3至PDV5同樣會依序設定為0、8、16、…、248等。在每次相位延遲值PDV3的數值更換之後,同樣會對記憶體進行讀寫測試。接著,依據對應的通過讀寫測試的組合數是否大於門檻值TH8(例如為288)來選取用以設定相位延遲值PDV5的數值。
在此假設選取的數值為96、104、112、120、128、136、144、152及160,則將上述選取的數值的中間值(即128)作為最佳化數值OPV13。接著,將相位延遲值PDV5設定為128(亦即最佳化數值OPV13)。在相位延遲值PDV6設定為128且相位延遲值PDV5設定為128的期間,相位延遲值PDV3及PDV4同樣會依序設定為0、8、16、…、248等。在每次相位延遲值PDV3的數值更換之後,同樣會對記憶體進行讀寫測試。接著,依據對應的通過讀寫測試的組合數是否大於門檻值TH9(例如為9)來選取用以設定相位延遲值PDV4的數值。
在此假設選取的數值為160、168、176、184、192、200、208、216及224,則將上述選取的數值的中間值(即192)作為最佳化數值OPV12。接著,將相位延遲值PDV4設定為192(亦即最佳化數值OPV12)。在相位延遲值PDV6設定為128、相位延遲值PDV5設定為128且相位延遲值PDV4設定為192的期間,相位延遲值PDV3同樣會依序設定為0、8、16、…、248等。在每次相位延遲值PDV3的數值更換之後,同樣會對記憶體進行讀寫測試。並且,記錄相位延遲值PDV3分別設定為0、8、16、…、248等時通過讀寫測試的部分。
例如,在相位延遲值PDV6設定為128、相位延遲值PDV5設定為128、相位延遲值PDV4設定為192且相位延遲值PDV3分別設定為96、104、112、120、128、136、144、152及160時,記憶體可通過讀寫測試。據此,會取96、104、112、120、128、136、144、152及160的中間值(即128)作為最佳化數值OPV11,並且將相位延遲值PDV3設定最佳化數值OPV11。其中,當選取的數值的中間值不為本實施中用以設定相位延遲值PDV3至PDV6的數值時,則會從本實施中用以設定相位延遲值PDV3至PDV6的數值中選取靠近中間值且較大於或較小於中間值的數值。
依據上述,本實施例的記憶體的最佳化數值搜尋方法是作概略性搜尋,並且搜尋到的最佳化數值OPV11及OPV14同樣具有可避免記憶體因相位延遲值PDV3至PDV6的設定不佳而讀寫失敗的效果。並且,可再依據最佳化數值OPV11至OPV14進行進一步的搜尋,以搜尋相位延遲值PDV3至PDV6更精細的最佳化設定。
圖7為依據本發明又一實施例的這些相位延遲值進一步依序設定為不同數值的時序示意圖。請參照圖6及圖7,在本實施例中,會以最佳化數值OPV15至OPV18為基準點(例如為中間值)選取多個連續的數值來依序設定相位延遲值PDV3至PDV6。假設最佳化數值OPV15為128,則以128為基準點取前面8個及後面7個共16個數值(亦即120至135)用以依序設定相位延遲值PDV3。假設最佳化數值OPV16為192,則以192為基準點取前面8個及後面7個共16個數值(亦即184至199)用以依序設定相位延遲值PDV4。假設最佳化數值OPV15為128,則以128為基準點取前面8個及後面7個共16個數值(亦即120至135)用以依序設定相位延遲值PDV5。假設最佳化數值OPV15為128,則以128為基準點取前面8個及後面7個共16個數值(亦即120至135)用以依序設定相位延遲值PDV6。
接著,相位延遲值PDV3、PDV5及PDV6會依序設定為120至135,並且相位延遲值PDV4會依序設定為184至199。在每次相位延遲值PDV3的數值更換之後,同樣會對記憶體進行讀寫測試。並且,記錄相位延遲值PDV6分別設定為120至135時,與相位延遲值PDV5分別設定為120至135、相位延遲值PDV4分別設定為184至199以及相位延遲值PDV3分別設定為120至135的不同組合中通過讀寫測試的組合數。同樣地,會依據對應的通過讀寫測試的組合數是否大於門檻值TH10(例如為5)來選取用以設定相位延遲值PDV6的數值。
在此假設選取的數值為124至130,則將上述選取的數值的中間值(即127)作為最佳化數值OPV18。接著,將相位延遲值PDV6設定為127(亦即最佳化數值OPV18)。在相位延遲值PDV6設定為127的期間,相位延遲值PDV3及PDV5同樣會依序設定為120至135,相位延遲值PDV4同樣會依序設定為184至199。在每次相位延遲值PDV3的數值更換之後,同樣會對記憶體進行讀寫測試。並且,記錄相位延遲值PDV5分別設定為120至135時,與相位延遲值PDV4分別設定為184至199以及相位延遲值PDV3分別設定為120至135的不同組合中通過讀寫測試的組合數。同樣地,會依據對應的通過讀寫測試的組合數是否大於門檻值TH11(例如為5)來選取用以設定相位延遲值PDV5的數值。
在此假設選取的數值為126至132,則將上述選取的數值的中間值(即129)作為最佳化數值OPV17。接著,將相位延遲值PDV5設定為129(亦即最佳化數值OPV17)。在相位延遲值PDV6設定為127且相位延遲值PDV5設定為129的期間,相位延遲值PDV3同樣會依序設定為120至135,相位延遲值PDV4同樣會依序設定為184至199。在每次相位延遲值PDV3的數值更換之後,同樣會對記憶體進行讀寫測試。並且,記錄相位延遲值PDV4分別設定為184至199時,與相位延遲值PDV3分別設定為120至135的不同組合中通過讀寫測試的組合數。同樣地,會依據對應的通過讀寫測試的組合數是否大於門檻值TH12(例如為5)來選取用以設定相位延遲值PDV4的數值。
在此假設選取的數值為189至195,則將上述選取的數值的中間值(即192)作為最佳化數值OPV16。接著,將相位延遲值PDV4設定為192(亦即最佳化數值OPV16)。在相位延遲值PDV6設定為127、相位延遲值PDV5設定為129且相位延遲值PDV4設定為192的期間,相位延遲值PDV3同樣會依序設定為120至135。在每次相位延遲值PDV3的數值更換之後,同樣會對記憶體進行讀寫測試。並且,記錄相位延遲值PDV3分別設定為120至135時通過讀寫測試的部分。
例如,在相位延遲值PDV6設定為127、相位延遲值PDV5設定為129、相位延遲值PDV4設定為192且相位延遲值PDV3分別設定為122至128時,記憶體可通過讀寫測試。據此,會取122至128的中間值(即125)作為最佳化數值OPV15,並且將相位延遲值PDV3設定最佳化數值OPV15。
綜上所述,本發明實施例的記憶體的最佳化數值搜尋方法,其將相位延遲值依序設定為多個數值,以形成不同的組合,並且測試這些組合是否通過讀寫測試,再依據通過測試的組合找出最佳化數值。藉此,相位延遲值可設定為經過讀寫測試的最佳化數值,避免記憶體因相位延遲值的設定不佳而讀寫失敗的效果。並且,相位延遲值可依序設定為多個不連續的數值,以找出概略性的最佳化數值,再依據上述概略性的最佳化數值選取多個連續的數值來設定相位延遲值,進而找出更精細的最佳化數值。藉此,透過二階段搜尋的方式,可降低搜尋的時間。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
PDV1~PDV6‧‧‧相位延遲值
OPV1~OPV18‧‧‧最佳化數值
圖1為依據本發明一實施例的多個相位延遲值依序設定為不同數值的時序示意圖。
圖2為依據本發明一實施例的這些相位延遲值與通過讀寫測試的組合數的對應示意圖。
圖3為依據本發明另一實施例的多個相位延遲值依序設定為不同數值的時序示意圖。
圖4為依據本發明另一實施例的這些相位延遲值進一步依序設定為不同數值的時序示意圖。
圖5為依據本發明再一實施例的多個相位延遲值依序設定為不同數值的時序示意圖。
圖6為依據本發明又一實施例的多個相位延遲值依序設定為不同數值的時序示意圖。
圖7為依據本發明又一實施例的這些相位延遲值進一步依序設定為不同數值的時序示意圖。
PDV1~PDV2...相位延遲值
OPV1~OPV2...最佳化數值
Claims (14)
- 一種記憶體的最佳化數值搜尋方法,包括:將該記憶體的一第一相位延遲值依序設定為多個第一數值;將該記憶體的一第二相位延遲值依序設定為多個第二數值;對該記憶體進行讀寫測試;記錄每一該些第一數值與該些第二數值的不同組合中通過讀寫測試的組合數;選取該些第一數值中對應通過讀寫測試的組合數大於一第一門檻值的部分;於上述選取的該些第一數值中選取為中間值或靠近中間值的第一數值作為一第一最佳化數值;將該第一相位延遲值設定為該第一最佳化數值;記錄該些第二數值通過讀寫測試的部分;選取該些第二數值中通過讀寫測試的部分中為中間值或靠近中間值的第二數值作為一第二最佳化數值;以及將該第二相位延遲值設定為該第二最佳化數值。
- 如申請專利範圍第1項所述之記憶體的最佳化數值搜尋方法,更包括:將該記憶體的一第三相位延遲值依序設定為多個第三數值;將該記憶體的一第四相位延遲值依序設定為多個第四數值; 記錄每一該些第三數值與該些第一數值、該些第二數值及該些第四數值的不同組合中通過讀寫測試的組合數;選取該些第三數值中對應通過讀寫測試的組合數大於一第二門檻值的部分;於上述選取的該些第三數值中選取為中間值或靠近中間值的第三數值作為一第三最佳化數值;將該第三相位延遲值設定為該第三最佳化數值;記錄每一該些第四數值與該些第一數值及該些第二數值的不同組合中通過讀寫測試的組合數;選取該些第四數值中對應通過讀寫測試的組合數大於一第三門檻值的部分;於上述選取的該些第四數值中選取為中間值或靠近中間值的第四數值作為一第四最佳化數值;以及將該第四相位延遲值設定為該第四最佳化數值。
- 如申請專利範圍第2項所述之記憶體的最佳化數值搜尋方法,其中該些第一數值、該些第二數值、該些第三數值及該些第四數值分別為多個連續且大於等於0的整數。
- 如申請專利範圍第2項所述之記憶體的最佳化數值搜尋方法,其中該些第一數值、該些第二數值、該些第三數值及該些第四數值分別為多個不連續且大於等於0的整數。
- 如申請專利範圍第4項所述之記憶體的最佳化數值搜尋方法,其中該些第一數值、該些第二數值、該些第 三數值及該些第四數值的間距相同。
- 如申請專利範圍第4項所述之記憶體的最佳化數值搜尋方法,更包括:依據該第一最佳化數值選取多個連續的第五數值,其中該些第五數值包括該第一最佳化數值;依據該第二最佳化數值選取多個連續的第六數值,其中該些第六數值包括該第二最佳化數值;依據該第三最佳化數值選取多個連續的第七數值,其中該些第七數值包括該第三最佳化數值;依據該第四最佳化數值選取多個連續的第五數值,其中該些第五數值包括該第一最佳化數值;將該第一相位延遲值依序設定為該些第五數值;將該第二相位延遲值依序設定為該些第六數值;將該第三相位延遲值依序設定為該些第七數值;將該第四相位延遲值依序設定為該些第八數值;記錄每一該些第七數值與該些第五數值、該些第六數值及該些第八數值的不同組合中通過讀寫測試的組合數;選取該些第七數值中對應通過讀寫測試的組合數大於一第四門檻值的部分;於上述選取的該些第七數值中選取為中間值或靠近中間值的第七數值作為一第五最佳化數值;將該第三相位延遲值設定為該第五最佳化數值;記錄每一該些第八數值與該些第五數值及該些第六數值的不同組合中通過讀寫測試的組合數; 選取該些第八數值中對應通過讀寫測試的組合數大於一第五門檻值的部分;於上述選取的該些第八數值中選取為中間值或靠近中間值的第八數值作為一第六最佳化數值;將該第四相位延遲值設定為該第六最佳化數值;記錄每一該些第五數值與該些第六數值的不同組合中通過讀寫測試的組合數;選取該些第五數值中對應通過讀寫測試的組合數大於一第六門檻值的部分;於上述選取的該些第五數值中選取為中間值或靠近中間值的第五數值作為一第七最佳化數值;將該第一相位延遲值設定為該第七最佳化數值;記錄該些第六數值通過讀寫測試的部分;於上述選取的該些第六數值中選取為中間值或靠近中間值的第六數值作為一第八最佳化數值;以及將該第二相位延遲值設定為該第八最佳化數值。
- 如申請專利範圍第6項所述之記憶體的最佳化數值搜尋方法,其中該第一最佳化數值為該些第五數值的中間值,該第二最佳化數值為該些第六數值的中間值,該第三最佳化數值為該些第七數值的中間值,該第一最佳化數值為該些第五數值的中間值。
- 如申請專利範圍第2項所述之記憶體的最佳化數值搜尋方法,其中該第一相位延遲值、該第二相位延遲值、該第三相位延遲值及該第四相位延遲值分別為該記憶體進 行資料讀取時的一資料選通(Data Queue Strobe,DQS)信號對應的相位延遲值及一資料(Data Queue,DQ)信號對應的相位延遲值、以及該記憶體進行資料寫入時的該資料選通信號對應的相位延遲值及該資料信號對應的相位延遲值。
- 如申請專利範圍第1項所述之記憶體的最佳化數值搜尋方法,其中該些第一數值及該些第二數值分別為多個連續且大於等於0的整數。
- 如申請專利範圍第1項所述之記憶體的最佳化數值搜尋方法,其中該些第一數值及該些第二數值分別為多個不連續且大於等於0的整數。
- 如申請專利範圍第10項所述之記憶體的最佳化數值搜尋方法,其中該些第一數值及該些第二數值的間距相同。
- 如申請專利範圍第10項所述之記憶體的最佳化數值搜尋方法,更包括:依據該第一最佳化數值選取多個連續的第九數值,其中該些第九數值包括該第一最佳化數值;依據該第二最佳化數值選取多個連續的第十數值,其中該些第十數值包括該第二最佳化數值;將該第一相位延遲值依序設定為該些第九數值;將該第二相位延遲值依序設定為該些第十數值;記錄每一該些第九數值與該些第十數值的不同組合中通過讀寫測試的組合數;選取該些第九數值中對應通過讀寫測試的組合數大 於一第七門檻值的部分;於上述選取的該些第九數值中選取為中間值或靠近中間值的第九數值作為一第九最佳化數值;將該第一相位延遲值設定為該第九最佳化數值;記錄該些第十數值通過讀寫測試的部分;選取該些第十數值中通過讀寫測試的部分中為中間值或靠近中間值的第十數值作為一第十最佳化數值;以及將該第二相位延遲值設定為該第十最佳化數值。
- 如申請專利範圍第12項所述之記憶體的最佳化數值搜尋方法,其中該第一最佳化數值為該些第九數值的中間值,該第二最佳化數值為該些第十數值的中間值。
- 如申請專利範圍第1項所述之記憶體的最佳化數值搜尋方法,其中該第一相位延遲值為該記憶體進行資料讀取時的一資料選通信號對應的相位延遲值及該記憶體進行資料寫入時的該資料選通信號對應的相位延遲值的其中之一,該第二相位延遲值為該記憶體進行資料讀取時的一資料信號對應的相位延遲值及該記憶體進行資料寫入時的該資料信號對應的相位延遲值的其中之一。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW100114453A TWI474334B (zh) | 2011-04-26 | 2011-04-26 | 記憶體的最佳化數值搜尋方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW100114453A TWI474334B (zh) | 2011-04-26 | 2011-04-26 | 記憶體的最佳化數值搜尋方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201243859A TW201243859A (en) | 2012-11-01 |
| TWI474334B true TWI474334B (zh) | 2015-02-21 |
Family
ID=48093954
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW100114453A TWI474334B (zh) | 2011-04-26 | 2011-04-26 | 記憶體的最佳化數值搜尋方法 |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI474334B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI508087B (zh) * | 2013-07-01 | 2015-11-11 | Mstar Semiconductor Inc | 記憶體信號的動態相位追蹤方法及其相關控制電路 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6889334B1 (en) * | 2001-10-02 | 2005-05-03 | Advanced Micro Devices, Inc. | Multimode system for calibrating a data strobe delay for a memory read operation |
| US20050286320A1 (en) * | 2004-06-28 | 2005-12-29 | Keiichi Iwasaki | Jitter and skew suppressing delay control apparatus |
| US7107424B1 (en) * | 2004-03-25 | 2006-09-12 | Emc Corporation | Memory read strobe pulse optimization training system |
| US20060265161A1 (en) * | 2005-05-06 | 2006-11-23 | Bruce Querbach | Regulating a timing between a strobe signal and a data signal |
| US20080104351A1 (en) * | 2006-10-31 | 2008-05-01 | Vanzante Craig | Method for automatic adjustment of timing of double data rate interface |
| US7382146B2 (en) * | 2005-07-07 | 2008-06-03 | Advantest Corporation | Semiconductor testing apparatus |
-
2011
- 2011-04-26 TW TW100114453A patent/TWI474334B/zh not_active IP Right Cessation
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6889334B1 (en) * | 2001-10-02 | 2005-05-03 | Advanced Micro Devices, Inc. | Multimode system for calibrating a data strobe delay for a memory read operation |
| US7107424B1 (en) * | 2004-03-25 | 2006-09-12 | Emc Corporation | Memory read strobe pulse optimization training system |
| US20050286320A1 (en) * | 2004-06-28 | 2005-12-29 | Keiichi Iwasaki | Jitter and skew suppressing delay control apparatus |
| US20060265161A1 (en) * | 2005-05-06 | 2006-11-23 | Bruce Querbach | Regulating a timing between a strobe signal and a data signal |
| US7480360B2 (en) * | 2005-05-06 | 2009-01-20 | Intel Corporation | Regulating a timing between a strobe signal and a data signal |
| TWI330321B (en) * | 2005-05-06 | 2010-09-11 | Intel Corp | Regulating a timing between a strobe signal and a data signal |
| US7382146B2 (en) * | 2005-07-07 | 2008-06-03 | Advantest Corporation | Semiconductor testing apparatus |
| US20080104351A1 (en) * | 2006-10-31 | 2008-05-01 | Vanzante Craig | Method for automatic adjustment of timing of double data rate interface |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201243859A (en) | 2012-11-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12154616B2 (en) | Memory device and operation method thereof | |
| US8509011B2 (en) | Command paths, apparatuses, memories, and methods for providing internal commands to a data path | |
| JP5160770B2 (ja) | レイテンシー制御回路及びその方法、そして、自動プリチャージ制御回路及びその方法 | |
| US9905288B2 (en) | Semiconductor memory devices and methods of operating the same | |
| US7957210B2 (en) | Variable delay circuit, memory control circuit, delay amount setting apparatus, delay amount setting method and computer-readable recording medium in which delay amount setting program is recorded | |
| US8020022B2 (en) | Delay time control of memory controller | |
| JP5268392B2 (ja) | メモリデバイス及びメモリシステム並びにメモリシステムにおけるアクセスタイミング調整方法 | |
| US10410696B2 (en) | Methods and apparatuses for command shifter reduction | |
| US8208340B2 (en) | Latency counter, semiconductor memory device including the same, and data processing system | |
| US7813211B2 (en) | Semiconductor memory device | |
| JP5626670B2 (ja) | データ信号ミラーリング | |
| KR102020991B1 (ko) | 듀얼 지연동기회로를 가지는 동기 반도체 메모리 장치 및 듀얼 지연동기회로의 운영방법 | |
| US8947956B2 (en) | Delay circuit and latency control circuit of memory, and signal delay method thereof | |
| TWI474334B (zh) | 記憶體的最佳化數值搜尋方法 | |
| JP5673842B2 (ja) | 半導体装置 | |
| US20190310798A1 (en) | Semiconductor memory device and operating method thereof | |
| US8295119B2 (en) | Latency counter, semiconductor memory device including the same, and data processing system | |
| US8576656B2 (en) | Latency counter, semiconductor memory device including the same, and data processing system | |
| KR20150051021A (ko) | 반도체 집적회로 | |
| US8687441B2 (en) | Method for searching optimum value of memory | |
| JP6398801B2 (ja) | メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置 | |
| US9075711B2 (en) | Non-volatile memory device using division addressing and electronic device including same | |
| US11373698B2 (en) | Semiconductor device, semiconductor system including the same and operating method for a semiconductor system | |
| US20220270671A1 (en) | Semiconductor device, semiconductor system including the same and operating method for a semiconductor system | |
| US12530045B2 (en) | Controller, system and method for controlling memories in storage devices |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |