本發(fā)明實施例涉及DDR技術(shù)領(lǐng)域,尤其涉及一種DDR控制參數(shù)的優(yōu)化方法及裝置。
背景技術(shù):
雙倍速率同步動態(tài)隨機存儲器DDR一般在應(yīng)用時,需要配置很多控制參數(shù),這些控制參數(shù)決定了DDR的讀寫速度、穩(wěn)定性、功耗等性能指標(biāo),因此對這些控制參數(shù)的調(diào)試和優(yōu)化就變得尤其重要。
目前,有些廠商提供的DDR本身就有內(nèi)部硬件電路可以自動找出最優(yōu)的控制參數(shù)并自動配置,但是有些廠商的DDR就沒有這種硬件電路,而是在這些DDR出廠時就依靠經(jīng)驗對控制參數(shù)進行了設(shè)置,這種DDR不一定適用于所有的應(yīng)用環(huán)境,因此,如何配置這些DDR的控制參數(shù)就成為了寇待解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種DDR控制參數(shù)的優(yōu)化方法及裝置,用以實現(xiàn)DDR控制參數(shù)的優(yōu)化配置。
本發(fā)明實施例第一方面提供一種DDR控制參數(shù)的優(yōu)化方法,該方法包括:
在DDR中定義一個驗證參數(shù),并為所述驗證參數(shù)賦值;
從所述DDR中讀取DDR控制參數(shù)的值;
根據(jù)所述DDR控制參數(shù)的值和預(yù)設(shè)算法,重新配置所述DDR控制參數(shù)的值;
從所述DDR中讀取所述驗證參數(shù)的值,并判斷所述驗證參數(shù)的值是否改變;
若否,則執(zhí)行根據(jù)所述DDR控制參數(shù)的值和預(yù)設(shè)算法,重新配置所述DDR控制參數(shù)的取值的步驟;若是,則保存所述重新配置后的DDR控制參數(shù)的值,并重新啟動所述DDR,執(zhí)行所述從DDR中讀取DDR控制參數(shù)的值的步驟,直至預(yù)設(shè)次數(shù)后停止;
根據(jù)所述預(yù)設(shè)次數(shù)后保存的DDR控制參數(shù)的各個值,確定所述DDR控制參數(shù)的取值范圍;
根據(jù)所述DDR控制參數(shù)的取值范圍,確定所述DDR控制參數(shù)的最優(yōu)值。
本發(fā)明實施例第二方面提供一種DDR控制參數(shù)的優(yōu)化裝置,該裝置包括:
定義模塊、讀取模塊、配置模塊、判斷模塊、保存模塊、范圍確定模塊以及最優(yōu)值確定模塊:
所述定義模塊用于在DDR中定義一個驗證參數(shù),并為所述驗證參數(shù)賦值;
所述讀取模塊用于從所述DDR中讀取DDR控制參數(shù)的值;
所述配置模塊用于根據(jù)所述DDR控制參數(shù)的值和預(yù)設(shè)算法,重新配置所述DDR控制參數(shù)的值;
所述判斷模塊用于從所述DDR中讀取所述驗證參數(shù)的值,并判斷所述驗證參數(shù)的值是否改變,以及在否的情況下調(diào)用所述配置模塊,在是的情況下調(diào)用所述保存模塊;
所述保存模塊用于保存所述重新配置后的DDR控制參數(shù)的值,并重新啟動所述DDR,以及調(diào)用所述讀取模塊,直至預(yù)設(shè)次數(shù)后停止;
所述范圍確定模塊用于根據(jù)所述預(yù)設(shè)次數(shù)后保存的DDR控制參數(shù)的各個值,確定所述DDR控制參數(shù)的取值范圍;
所述最優(yōu)值確定模塊用于根據(jù)所述DDR控制參數(shù)的取值范圍,確定所述DDR控制參數(shù)的最優(yōu)值。
本發(fā)明實施例,根據(jù)DDR讀寫過程受到控制參數(shù)影響的這個特性,通過預(yù)先在DDR中定義一個驗證參數(shù),然后再在控制參數(shù)的不同取值下,對驗證參數(shù)的值進行讀寫,并在驗證參數(shù)的值發(fā)生變化即讀寫過程發(fā)生錯誤時獲取控制參數(shù)的多個取值,從而根據(jù)該些取值即可獲得DDR讀寫正常時,控制參數(shù)的取值范圍。進而將該取值范圍中的最優(yōu)值配置給控制參數(shù)即可實現(xiàn)控制參數(shù)的優(yōu)化,從而有效的解決了DDR控制參數(shù)的經(jīng)驗值不夠準(zhǔn)確,而現(xiàn)有技術(shù)又無法對其進行優(yōu)化配置的問題。提高了DDR的可靠性和使用體驗。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一實施例提供的DDR控制參數(shù)的優(yōu)化方法的流程示意圖;
圖2為本發(fā)明一實施例提供的DDR控制參數(shù)的優(yōu)化裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明的說明書和權(quán)利要求書的術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟的過程或結(jié)構(gòu)的裝置不必限于清楚地列出的那些結(jié)構(gòu)或步驟而是可包括沒有清楚地列出的或?qū)τ谶@些過程或裝置固有的其它步驟或結(jié)構(gòu)。
圖1為本發(fā)明一實施例提供的DDR控制參數(shù)的優(yōu)化方法的流程示意圖,該方法可以由一DDR控制參數(shù)的優(yōu)化裝置來執(zhí)行。如圖1所示,本實施例提供的方法包括如下步驟:
步驟S101、在DDR中定義一個驗證參數(shù),并為所述驗證參數(shù)賦值。
實際應(yīng)用中,在對DDR控制參數(shù)進行優(yōu)化前,需要先在DDR中定義一個驗證參數(shù),該驗證參數(shù)的值用于判斷DDR控制參數(shù)的準(zhǔn)確性。特別的,在本實施例中,該驗證參數(shù)的值可以是隨機賦予的,且定義驗證參數(shù)的方法與現(xiàn)有技術(shù)類似,在這里不再贅述。
步驟S102、從所述DDR中讀取DDR控制參數(shù)的值。
實際應(yīng)用中,DDR的控制參數(shù)包括讀控制參數(shù)和寫控制參數(shù),其中,讀控制參數(shù)包括RDQS0、RDQS1、RDQS2、RDQS3、ICLK。寫控制參數(shù)包括WDQS0、WDQS1、WDQS2、WDQS3、OCLK。本實施例中優(yōu)化的對象可以是DDR控制參數(shù)中的讀控制參數(shù)和/或?qū)懣刂茀?shù)。并且,在進行參數(shù)優(yōu)化之前,DDR中存儲有讀控制參數(shù)的值和/或?qū)懣刂茀?shù)的值,示例的,該讀控制參數(shù)的值和/或?qū)懣刂茀?shù)的值可以是生產(chǎn)廠商根據(jù)經(jīng)驗設(shè)定的經(jīng)驗值。且該經(jīng)驗值不能適用于所有的應(yīng)用場景。當(dāng)然此處僅為示例說明,而不是對本發(fā)明的唯一限定。
以讀控制參數(shù)為例,在DDR中,讀控制參數(shù)中的RDQS0、RDQS1和ICLK存儲在一個32位的地址中,而RDQS2和RDQS3存儲在另一個32位的地址中。當(dāng)對DDR的讀控制參數(shù)進行優(yōu)化時,需要從這兩個32位的地址中讀取讀控制參數(shù)的值。寫控制參數(shù)的獲取方法與讀控制參數(shù)類似,在這里不再贅述。
步驟S103、根據(jù)所述DDR控制參數(shù)的值和預(yù)設(shè)算法,重新配置所述DDR控制參數(shù)的值。
本實施例中預(yù)設(shè)算法可以通過軟件來實現(xiàn)。仍以讀控制參數(shù)為例,假設(shè)RDQS0、RDQS1和ICLK存儲在第一地址中。RDQS2、RDQS3存儲在第二地址中,則可以將非負整數(shù)i和j的范圍作為循環(huán)條件,在循環(huán)中通過如下算法實現(xiàn)對DDR中讀控制參數(shù)的重新配置:
RDQS01_value=(RDQS01_value&0x00FFFF00)+(j<<24)+(i<<4)+i
RDQS23_value=(RDQS23_value&0x00FFFFFF)+(i<<28)+(i<<24)其中,左起第一個RDQS01_value為重新配置后第一地址中的值。左起第二個RDQS01_value為重新配置之前,第一地址中存儲的值,當(dāng)初次執(zhí)行此算法時,左起第二個RDQS01_value的值為在步驟S102中獲取到的第一地址中的值。左起第一個RDQS23_value為重新配置后第二地址中的值。左起第二個RDQS23_value為重新配置之前,第二地址中存儲的值,當(dāng)初次執(zhí)行此算法時,左起第二個RDQS23_value的值為在步驟S102中獲取到的第二地址中的值。i,j為隨機獲取的兩個值。當(dāng)然這里僅是示例說明并不是對本發(fā)明的唯一限定。
步驟S104、從所述DDR中讀取所述驗證參數(shù)的值,并判斷所述驗證參數(shù)的值是否改變,若否,則繼續(xù)步驟S103,若是,則執(zhí)行步驟S105。
步驟S105、保存所述重新配置后的DDR控制參數(shù)的值,并確定保存DDR控制參數(shù)值的次數(shù)是否超過預(yù)設(shè)次數(shù),若否,則重新啟動所述DDR,并跳轉(zhuǎn)到步驟S102,若是,執(zhí)行步驟S106。
仍以讀控制參數(shù)為例,假設(shè)驗證參數(shù)的值為c,當(dāng)步驟S103中完成對讀控制參數(shù)的重新配置后,從預(yù)先定義的驗證參數(shù)中讀取數(shù)值,并將讀取的數(shù)值與c進行對比,確定二者是否一致,若不一致,則說明DDR的讀寫過程發(fā)生錯誤,此時讀控制參數(shù)的值已經(jīng)接近DDR性能要求的邊界值,記錄此時讀控制參數(shù)的值,以作為確定讀控制參數(shù)取值范圍的參考,并重新啟動DDR,從步驟S101開始執(zhí)行。而當(dāng)二者一致時,則說明DDR的讀寫過程正確,此時讀控制參數(shù)的值并沒有達到DDR性能要求的臨界值。此時繼續(xù)執(zhí)行步驟S104,直至記錄獲取預(yù)設(shè)個數(shù)的讀控制參數(shù)的值為止。本實施例中,對于寫控制參數(shù)的執(zhí)行方法與讀控制參數(shù)類似,在這里不再贅述。
步驟S106、根據(jù)所述預(yù)設(shè)次數(shù)后保存的DDR控制參數(shù)的各個值,確定所述DDR控制參數(shù)的取值范圍。
由于本實施例中獲取到的預(yù)設(shè)個數(shù)的DDR控制參數(shù)的值,均是在接近DDR性能要求邊界值時DDR控制參數(shù)的取值,因此,根據(jù)這些值中的最大值和最小值,即可確定DDR控制參數(shù)的取值范圍。
步驟S107、根據(jù)所述DDR控制參數(shù)的取值范圍,確定所述DDR控制參數(shù)的最優(yōu)值。
實際應(yīng)用中,可以從獲取到的DDR控制參數(shù)的取值范圍中任取一值作為DDR控制參數(shù)的最優(yōu)值,也可以將該取值范圍的中間值作為DDR控制參數(shù)的最優(yōu)值,本實施例中不對此做具體的限定。
本實施例,根據(jù)DDR讀寫過程受到控制參數(shù)影響的這個特性,通過預(yù)先在DDR中定義一個驗證參數(shù),然后再在控制參數(shù)的不同取值下,對驗證參數(shù)的值進行讀寫,并在驗證參數(shù)的值發(fā)生變化即讀寫過程發(fā)生錯誤時獲取控制參數(shù)的多個取值,從而根據(jù)該些取值即可獲得DDR讀寫正常時,控制參數(shù)的取值范圍。進而將該取值范圍中的最優(yōu)值配置給控制參數(shù)即可實現(xiàn)控制參數(shù)的優(yōu)化,從而有效的解決了DDR控制參數(shù)的經(jīng)驗值不夠準(zhǔn)確,而現(xiàn)有技術(shù)又無法對其進行優(yōu)化配置的問題。提高了DDR的可靠性和使用體驗。
圖2為本發(fā)明一實施例提供的DDR控制參數(shù)的優(yōu)化裝置的結(jié)構(gòu)示意圖,如圖2所示,該裝置包括:
定義模塊11、讀取模塊12、配置模塊13、判斷模塊14、保存模塊15、范圍確定模塊16以及最優(yōu)值確定模塊17:
所述定義模塊11用于在DDR中定義一個驗證參數(shù),并為所述驗證參數(shù)賦值;
所述讀取模塊12用于從所述DDR中讀取DDR控制參數(shù)的值;
所述配置模塊13用于根據(jù)所述DDR控制參數(shù)的值和預(yù)設(shè)算法,重新配置所述DDR控制參數(shù)的值;
所述判斷模塊14用于從所述DDR中讀取所述驗證參數(shù)的值,并判斷所述驗證參數(shù)的值是否改變,以及在否的情況下調(diào)用所述配置模塊,在是的情況下調(diào)用所述保存模塊15;
所述保存模塊15用于保存所述重新配置后的DDR控制參數(shù)的值,并重新啟動所述DDR,以及調(diào)用所述讀取模塊,直至預(yù)設(shè)次數(shù)后停止;
所述范圍確定模塊16用于根據(jù)所述預(yù)設(shè)次數(shù)后保存的DDR控制參數(shù)的各個值,確定所述DDR控制參數(shù)的取值范圍;
所述最優(yōu)值確定模塊17用于根據(jù)所述DDR控制參數(shù)的取值范圍,確定所述DDR控制參數(shù)的最優(yōu)值。
其中,所述最優(yōu)值確定模塊17,具體用于:
將所述取值范圍的中間值作為所述DDR控制參數(shù)的最優(yōu)值。
所述DDR控制參數(shù)包括寫控制參數(shù)和/或讀控制參數(shù)。
所述讀控制參數(shù),包括:RDQS0、RDQS1、RDQS2、RDQS3、ICLK。
所述寫控制參數(shù),包括:WDQS0、WDQS1、WDQS2、WDQS3、OCLK。
本實施例提供的裝置適用于圖1所示的實施例,其執(zhí)行方式和有益效果類似,在這里不再贅述。
最后需要說明的是,本領(lǐng)域普通技術(shù)人員可以理解上述實施例方法中的全部或者部分流程,是可以通過計算機程序來指令相關(guān)的硬件完成,所述的程序可存儲于一計算機可讀存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可以為磁盤、光盤、只讀存儲記憶體(ROM)或隨機存儲記憶體(RAM)等。
本發(fā)明實施例中的各個功能單元可以集成在一個處理模塊中,也可以是各個單元單獨的物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn),并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀存儲介質(zhì)中。上述提到的存儲介質(zhì)可以是只讀存儲器、磁盤或光盤等。
以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。