專(zhuān)利名稱(chēng):內(nèi)存參數(shù)配置方法、處理器及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù),尤其涉及一種內(nèi)存參數(shù)配置方法、處理器及設(shè)備。
背景技術(shù):
一般通信系統(tǒng)都需要集成多種外設(shè)控制器的處理器,一般稱(chēng)為嵌入式處理器。嵌入式處理器需要大容量存儲(chǔ)器,簡(jiǎn)稱(chēng)為內(nèi)存,用于保存嵌入式處理器的運(yùn)行程序和數(shù)據(jù)。目前常用的存儲(chǔ)器有同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(Synchronous Dynamic Radom Access Memory ; 簡(jiǎn)稱(chēng)為SDRAM)、雙倍數(shù)據(jù)率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(Double Data Rate SDRAM ;簡(jiǎn)稱(chēng)為DDR SDRAM)、第二代雙倍數(shù)據(jù)率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR2 SDRAM)、第三代雙倍數(shù)據(jù)率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR3 SDRAM),這些存儲(chǔ)器所允許的操作速率越來(lái)越高,其操作控制動(dòng)作也越來(lái)越復(fù)雜。嵌入式處理器通過(guò)相應(yīng)技術(shù)的內(nèi)存控制器對(duì)存儲(chǔ)器件進(jìn)行管理。內(nèi)存控制器和內(nèi)存器件之間采用一組電氣信號(hào)線(xiàn)連接,這組電氣信號(hào)線(xiàn)一般有用戶(hù)同步工作節(jié)奏的時(shí)鐘信號(hào)、命令控制信號(hào)、地址信號(hào)、數(shù)據(jù)信號(hào)等。為了使內(nèi)存控制器和內(nèi)存器件能夠協(xié)同工作, 兩者之間定義了各種嚴(yán)格的標(biāo)準(zhǔn)信號(hào)傳輸格式,包括信號(hào)節(jié)拍變化的先后關(guān)系(簡(jiǎn)稱(chēng)為時(shí)序)。這些信號(hào)的時(shí)序受內(nèi)存控制器、內(nèi)存器件、連接兩者的印制板走線(xiàn)的電氣特性影響,同時(shí)還受外部的溫度、濕度、電磁干擾等環(huán)境因素的影響。為了消除這些影響,需要在內(nèi)存控制器內(nèi)和內(nèi)存器件內(nèi)配置一定的參數(shù),這組參數(shù)配置后,可以使內(nèi)存控制器和內(nèi)存器件按照標(biāo)準(zhǔn)的時(shí)序關(guān)系運(yùn)行,從而使內(nèi)存控制器可以正確存取內(nèi)存器件。正確配置內(nèi)存控制器和內(nèi)存器件的時(shí)序參數(shù)使之能穩(wěn)定工作往往比較困難,如何獲得正確的配置參數(shù)也比較困難。目前,獲取和配置內(nèi)存控制器和內(nèi)存器件的配置參數(shù)的方法往往是在特定的嵌入式系統(tǒng)中,針對(duì)特定的嵌入式處理器,選取特定的內(nèi)存器件與之配合。然后選取多種可能的內(nèi)存配置參數(shù),借助外部工具(如示波器),測(cè)試內(nèi)存控制器和內(nèi)存器件在每一種可能的配置參數(shù)下的操作時(shí)序,對(duì)比這些操作時(shí)序關(guān)系圖,選取最標(biāo)準(zhǔn)的時(shí)序關(guān)系圖所對(duì)應(yīng)的那組配置參數(shù)。將這組配置參數(shù)存儲(chǔ)到非易失性的只讀存儲(chǔ)器(Read-Only Memory ;簡(jiǎn)稱(chēng)為 ROM)中。嵌入式處理器每次啟動(dòng)后,將這組參數(shù)從ROM中讀出寫(xiě)入到內(nèi)存控制器和內(nèi)存器件中,使其按照預(yù)設(shè)的時(shí)序關(guān)系操作運(yùn)行。上述方法是借助外部工具(如示波器)通過(guò)多次測(cè)試獲取內(nèi)存控制器和內(nèi)存的配置參數(shù)。然而隨著技術(shù)的發(fā)展,內(nèi)存控制器和內(nèi)存器件之間的工作頻率越來(lái)越高,并且他們的電信號(hào)的振動(dòng)幅度值越來(lái)越低,而現(xiàn)有測(cè)試工具由于技術(shù)原因,其采樣精度無(wú)法隨著內(nèi)存技術(shù)的快速提升而提升,因此已經(jīng)無(wú)法準(zhǔn)確測(cè)試出需要配置的配置參數(shù),往往測(cè)試出來(lái)的參數(shù)值和實(shí)際的工作情況有較大的偏差。
發(fā)明內(nèi)容
本發(fā)明提供一種內(nèi)存參數(shù)配置方法、處理器及設(shè)備,用以解決因受外部測(cè)試工具
6技術(shù)的限制無(wú)法獲取準(zhǔn)確性較高的配置參數(shù)的問(wèn)題,提高配置參數(shù)的準(zhǔn)確性。本發(fā)明提供一種內(nèi)存參數(shù)配置方法,包括處理器根據(jù)預(yù)設(shè)步長(zhǎng)和預(yù)先存儲(chǔ)的配置參數(shù)的初始值,對(duì)所述配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取所述配置參數(shù)的最大配置值和最小配置值;所述處理器對(duì)所述最大配置值和所述最小配置值進(jìn)行數(shù)值計(jì)算,獲取所述配置參數(shù)的最佳配置值;所述處理器將所述配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件。本發(fā)明提供一種處理器,包括第一獲取模塊,用于根據(jù)預(yù)設(shè)步長(zhǎng)和預(yù)先存儲(chǔ)的配置參數(shù)的初始值,對(duì)所述配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取所述配置參數(shù)的最大配置值和最小配置值;第二獲取模塊,用于對(duì)所述最大配置值和所述最小配置值進(jìn)行數(shù)值計(jì)算,獲取所述配置參數(shù)的最佳配置值;配置模塊,用于將所述配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件。本發(fā)明提供一種設(shè)備,包括內(nèi)存控制器、內(nèi)存器件和本發(fā)明提供的任一處理器。本發(fā)明的內(nèi)存參數(shù)配置方法、處理器及設(shè)備,由處理器根據(jù)配置參數(shù)的初始值和預(yù)設(shè)步長(zhǎng),對(duì)配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,根據(jù)讀寫(xiě)測(cè)試結(jié)果獲取最大配置值和最小配置值,并將最大配置值和最小配置值數(shù)值計(jì)算的結(jié)果作為配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件中,實(shí)現(xiàn)對(duì)配置參數(shù)的配置,由于不再使用外部工具,解決了受外部工具技術(shù)限制而無(wú)法獲取到準(zhǔn)確性較高的配置參數(shù)的問(wèn)題,實(shí)現(xiàn)了配置參數(shù)的自適應(yīng)配置, 提高了所配置的配置參數(shù)的準(zhǔn)確性。
圖1為本發(fā)明一實(shí)施例提供的內(nèi)存參數(shù)配置方法的流程圖;圖2A為本發(fā)明一實(shí)施例提供的步驟101的一種實(shí)施方式的流程圖;圖2B為本發(fā)明一實(shí)施例提供的處理器控制內(nèi)存控制器根據(jù)遞增后的配置參數(shù)或根據(jù)遞減后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作的一種實(shí)施方式的流程圖;圖2C為本發(fā)明一實(shí)施例提供的處理器控制內(nèi)存控制器根據(jù)遞增后的配置參數(shù)或根據(jù)遞減后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作的另一種實(shí)施方式的流程圖;圖3為本發(fā)明另一實(shí)施例提供的內(nèi)存參數(shù)配置方法的流程圖;圖4為本發(fā)明又一實(shí)施例提供的內(nèi)存參數(shù)配置方法的流程圖;圖5為本發(fā)明一實(shí)施例提供的處理器的結(jié)構(gòu)示意圖;圖6為本發(fā)明另一實(shí)施例提供的處理器的結(jié)構(gòu)示意圖;圖7為本發(fā)明一實(shí)施例提供的設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施例方式圖1為本發(fā)明一實(shí)施例提供的內(nèi)存參數(shù)配置方法的流程圖。如圖1所示,本實(shí)施例的方法包括步驟101、處理器根據(jù)預(yù)設(shè)步長(zhǎng)和預(yù)先存儲(chǔ)的配置參數(shù)的初始值,對(duì)配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取配置參數(shù)的最大配置值和最小配置值。
7
在本實(shí)施例中,處理器可以為嵌入式處理器,但不限于此。該處理器包括大容量的存儲(chǔ)器,即內(nèi)存器件,并通過(guò)內(nèi)存控制器對(duì)內(nèi)存器件進(jìn)行控制。一般,處理器的內(nèi)存控制器上電復(fù)位后,都保存著一組默認(rèn)的配置參數(shù),并且每個(gè)配置參數(shù)均有初始值。這組默認(rèn)的配置參數(shù)是預(yù)先存儲(chǔ)進(jìn)去的。每個(gè)配置參數(shù)的初始值一般是由處理器的設(shè)計(jì)者經(jīng)過(guò)統(tǒng)計(jì)計(jì)算得到的。每個(gè)配置參數(shù)的初始值一般都落在該配置參數(shù)的取值范圍內(nèi),可以使內(nèi)存控制器正常訪(fǎng)問(wèn)內(nèi)存器件,但并不能保證在任何環(huán)境下內(nèi)存控制器都可以可靠的訪(fǎng)問(wèn)內(nèi)存器件的所有空間,也就是說(shuō),每個(gè)配置參數(shù)的初始值并非最佳配置值。在本實(shí)施例中,處理器可以先將每個(gè)默認(rèn)配置參數(shù)的初始值保存在非易失性ROM 中。以便于進(jìn)行內(nèi)存讀寫(xiě)測(cè)試。在本實(shí)施例中,處理器對(duì)每個(gè)配置參數(shù)均進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,為每個(gè)配置參數(shù)均獲取最佳配置值,并且對(duì)每個(gè)配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試的方法相同。在本實(shí)施例中,為了獲取每個(gè)配置參數(shù)的最佳配置值,預(yù)先設(shè)定了配置參數(shù)的取值逐漸變化時(shí)的步長(zhǎng),基于此, 處理器以每個(gè)配置參數(shù)的初始值為開(kāi)始,按照預(yù)設(shè)步長(zhǎng)逐漸增加或減小配置參數(shù)的取值, 并控制內(nèi)存控制器在配置參數(shù)取每個(gè)值時(shí)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作,即進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,根據(jù)讀寫(xiě)操作的結(jié)果,獲取每個(gè)配置參數(shù)的最大配置值和最小配置值。處理器可以將每個(gè)配置參數(shù)的最大配置值和最小配置值也存儲(chǔ)到ROM中。在本實(shí)施例中,每個(gè)配置參數(shù)的最大配置值是根據(jù)步長(zhǎng)逐漸增加配置參數(shù)的取值進(jìn)行內(nèi)存讀寫(xiě)測(cè)試時(shí),第一次出現(xiàn)測(cè)試失敗時(shí)對(duì)應(yīng)的配置參數(shù)的取值。每個(gè)配置參數(shù)的最小配置值是根據(jù)步長(zhǎng)逐漸減小配置參數(shù)的取值進(jìn)行內(nèi)存讀寫(xiě)測(cè)試時(shí),第一次出現(xiàn)測(cè)試失敗時(shí)對(duì)應(yīng)的配置參數(shù)的取值。其中,每個(gè)配置參數(shù)的最大配置值和最小配置值并不限于上述獲取方式,還可以是其他獲取方式,例如可以設(shè)定遞增或遞減的次數(shù),并將到達(dá)遞增或遞減次數(shù)時(shí)配置參數(shù)的取值作為最大配置值或最小配置值。步驟102、處理器對(duì)最大配置值和最小配置值進(jìn)行數(shù)值計(jì)算,獲取配置參數(shù)的最佳配置值。其中,處理器對(duì)最大配置值和最小配置值進(jìn)行數(shù)值計(jì)算,獲取配置參數(shù)的最佳配置值的方法包括在獲取每個(gè)配置參數(shù)的最大配置值和最小配置值后,處理器對(duì)獲取的最大配置值和最小配置值取平均,將配置參數(shù)的最大配置值和最小配置值的平均值作為該配置參數(shù)的最佳配置值。這種方式簡(jiǎn)單、易于實(shí)現(xiàn),且所獲取的最佳配置值準(zhǔn)確性較高。在此說(shuō)明,處理器對(duì)配置參數(shù)的最大配置值和最小配置值進(jìn)行數(shù)值計(jì)算,獲取配置參數(shù)的最佳配置值的方式并不限于取平均一種,還可以是其他方式,如可以通過(guò)最大配置值和最小配置值加權(quán)求和的方法獲取最佳配置值,例如最佳配置值=最大配置值 χ0· 6+最小配置值χ0. 4。步驟103、處理器將配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件。在獲取配置參數(shù)的最佳配置值后,處理器將配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件,實(shí)現(xiàn)對(duì)內(nèi)存控制器和內(nèi)存器件的配置參數(shù)的配置,從而使內(nèi)存控制器可以根據(jù)所配置的配置參數(shù)正確的對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作,提高內(nèi)存控制器讀寫(xiě)內(nèi)存器件的成功率。在本實(shí)施例中,處理器根據(jù)預(yù)設(shè)步長(zhǎng)和內(nèi)存控制器中預(yù)先存儲(chǔ)的配置參數(shù)的初始值,逐步遞增或遞減配置參數(shù)的取值,并在每種取值的情況下控制內(nèi)存控制器對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作,實(shí)現(xiàn)對(duì)配置參數(shù)的內(nèi)存讀寫(xiě)測(cè)試,根據(jù)測(cè)試結(jié)果獲取配置參數(shù)的最大配置值和最小配置值,并根據(jù)最大配置值和最小配置值獲取最佳配置值,完成對(duì)內(nèi)存控制器和內(nèi)存器件的參數(shù)的配置,實(shí)現(xiàn)了配置參數(shù)的自適應(yīng)配置,不再依賴(lài)外部測(cè)試工具,解決了配置參數(shù)的準(zhǔn)確性受外部測(cè)試工具限制的問(wèn)題,提高了所配置的配置參數(shù)值的準(zhǔn)確性,進(jìn)而提高了內(nèi)存控制器對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作的成功率。另外,內(nèi)存控制器和內(nèi)存器件的時(shí)序關(guān)系和環(huán)境具有較強(qiáng)的相關(guān)性,在不同的環(huán)境下,所需的配置參數(shù)值有較大差異,為了達(dá)到最佳時(shí)序關(guān)系,現(xiàn)有技術(shù)需要重新使用外部測(cè)試工具進(jìn)行測(cè)試,而使用外部測(cè)試工具獲取的配置參數(shù)值的方法相當(dāng)不方便,而本實(shí)施例可由處理器自行完成配置參數(shù)的最佳配置值的獲取和配置,不受外部測(cè)試工具的限制, 在環(huán)境發(fā)生變化時(shí)可以隨時(shí)進(jìn)行重新配置,提高了對(duì)內(nèi)存控制器和內(nèi)存器件進(jìn)行參數(shù)配置的靈活性,為內(nèi)存控制器和內(nèi)存器件之間的時(shí)序關(guān)系在不同環(huán)境下均達(dá)到最佳提供了保障。再者,由于內(nèi)存工藝技術(shù)更新?lián)Q代非??欤虼藘?nèi)存器件的更新?lián)Q代也很快,處理器系統(tǒng)的內(nèi)存器件也要經(jīng)常更換,更換的內(nèi)存器件的電氣特性肯定會(huì)產(chǎn)生差異,因此,每更換一次內(nèi)存器件,就需要重新測(cè)試,重新確定配置參數(shù)的值?,F(xiàn)有技術(shù)使用ROM存儲(chǔ)配置參數(shù)的值,故每更換一次內(nèi)存器件就需要更換一次ROM,這種操作既費(fèi)時(shí)又費(fèi)力。而本實(shí)施例由于不再依賴(lài)外部測(cè)試工具,使得對(duì)配置參數(shù)的測(cè)試和配置變得簡(jiǎn)單易于執(zhí)行,使處理器可以直接將獲取的配置參數(shù)的最佳配置值寫(xiě)入內(nèi)存控制器和內(nèi)存器件,當(dāng)需要重新配置時(shí)可以在執(zhí)行一次測(cè)試和配置操作即可,與更換ROM的操作相比,要省時(shí)省力的多。圖2A為本發(fā)明一實(shí)施例提供的步驟101的一種實(shí)施方式的流程圖。如圖2A所示, 本實(shí)施方式包括步驟101a、處理器將配置參數(shù)由初始值開(kāi)始按照所述步長(zhǎng)中的第一步長(zhǎng)逐漸遞增,并將遞增后的配置參數(shù)寫(xiě)入所述內(nèi)存控制器和所述內(nèi)存器件,并控制內(nèi)存控制器根據(jù)遞增后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作,獲取讀寫(xiě)操作不成功時(shí)的配置參數(shù)的值作為配置參數(shù)的最大配置值。步驟101b、處理器將配置參數(shù)由初始值開(kāi)始按照所述步長(zhǎng)中的第二步長(zhǎng)逐漸遞減,并將遞減后的配置參數(shù)寫(xiě)入內(nèi)存控制器和內(nèi)存器件,并控制內(nèi)存控制器根據(jù)遞減后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作,獲取讀寫(xiě)操作不成功時(shí)的配置參數(shù)的值作為配置參數(shù)的最小配置值。其中,步驟IOla用于獲取配置參數(shù)的最大配置值,故將配置參數(shù)的取值按照一定步長(zhǎng)(即第一步長(zhǎng))逐漸遞增;步驟IOlb用于獲取配置參數(shù)的最小配置值,故將配置參數(shù)的取值按照一定步長(zhǎng)(即第二步長(zhǎng))逐漸遞減。在本實(shí)施例中,配置參數(shù)遞增時(shí)的第一步長(zhǎng)和遞減時(shí)的第二步長(zhǎng)可以相同,也可以不同。其中,在步驟IOla中,處理器將配置參數(shù)由初始值每遞增一個(gè)步長(zhǎng),就將遞增后的配置參數(shù)寫(xiě)入內(nèi)存控制器和內(nèi)存器件,并在每寫(xiě)入一個(gè)遞增后的配置參數(shù)就控制內(nèi)存控制器根據(jù)該寫(xiě)入的遞增后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作,然后緊跟著判斷此次讀寫(xiě)操作是否成功,直到出現(xiàn)讀寫(xiě)操作不成功(即第一次讀寫(xiě)操作不成功)時(shí),將此時(shí)配置參數(shù)
9的值作為其最大配置值。另外,在步驟IOla中,處理器將配置參數(shù)由初始值開(kāi)始逐漸遞增,獲取多個(gè)遞增后的配置參數(shù),將多個(gè)遞增后的配置參數(shù)一起寫(xiě)入內(nèi)存控制器和內(nèi)存器件中,并控制內(nèi)存控制器按照配置參數(shù)的取值由小到大的順序依次根據(jù)寫(xiě)入的遞增后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作,并緊跟著判斷每次讀寫(xiě)操作是否成功,直到出現(xiàn)讀寫(xiě)操作不成功(即第一次讀寫(xiě)操作不成功)時(shí),將此時(shí)配置參數(shù)的值作為其最大配置值。在該實(shí)施方式中,要求處理器能夠從所獲取的多個(gè)遞增后的配置參數(shù)中確定出配置參數(shù)的最大配置值。其中,在步驟IOlb中,處理器將配置參數(shù)由初始值每遞減一個(gè)步長(zhǎng),就將遞減后的配置參數(shù)寫(xiě)入內(nèi)存控制器和內(nèi)存器件,并在每寫(xiě)入一個(gè)遞減后的配置參數(shù)就控制內(nèi)存控制器根據(jù)該寫(xiě)入的遞減后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作,然后緊跟著判斷此次讀寫(xiě)操作是否成功,直到出現(xiàn)讀寫(xiě)操作不成功(即第一次讀寫(xiě)操作不成功)時(shí),將此時(shí)配置參數(shù)的值作為其最小配置值。另外,在步驟IOlb中,處理器將配置參數(shù)由初始值開(kāi)始逐漸遞減,獲取多個(gè)遞減后的配置參數(shù),將多個(gè)遞減后的配置參數(shù)一起寫(xiě)入內(nèi)存控制器和內(nèi)存器件中,并控制內(nèi)存控制器按照配置參數(shù)的取值由大到小的順序依次根據(jù)寫(xiě)入的遞減后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作,并緊跟著判斷每次讀寫(xiě)操作是否成功,直到出現(xiàn)讀寫(xiě)操作不成功(即第一次讀寫(xiě)操作不成功)時(shí),將此時(shí)配置參數(shù)的值作為其最小配置值。在該實(shí)施方式中,要求處理器能夠從所獲取的多個(gè)遞減后的配置參數(shù)中確定出配置參數(shù)的最小配置值。本實(shí)施例并不限制步驟IOla和步驟IOlb的執(zhí)行順序,除了本實(shí)施例的執(zhí)行方式夕卜,還可以先執(zhí)行步驟IOlb的操作,然后再執(zhí)行步驟IOla的操作,或者以并行的方式同時(shí)執(zhí)行步驟IOla和步驟IOlb的操作。進(jìn)一步,處理器控制內(nèi)存控制器根據(jù)遞增后的配置參數(shù)或根據(jù)遞減后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作可以使用各種通過(guò)讀寫(xiě)操作檢測(cè)內(nèi)存存取可靠性的算法。如圖2B所示,一種處理器控制內(nèi)存控制器根據(jù)某個(gè)遞增后的配置參數(shù)或某個(gè)遞減后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作的實(shí)施方式包括步驟1011、處理器隨機(jī)生成內(nèi)存測(cè)試地址空間的起始地址和結(jié)束地址。在本實(shí)施例中,處理器可以使用任何可以生成隨機(jī)數(shù)的算法,例如偽隨機(jī)算法,來(lái)隨機(jī)生成內(nèi)存測(cè)試地址空間的起始地址和結(jié)束地址。本實(shí)施例使用隨機(jī)生成方式可以使讀寫(xiě)操作更加符合內(nèi)存器件的實(shí)際使用情況,提高測(cè)試的準(zhǔn)確性。步驟1012、處理器控制內(nèi)存控制器根據(jù)遞增后的配置參數(shù)或遞減后的配置參數(shù)向起始地址和結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第一測(cè)試數(shù)據(jù),然后依次讀出第一測(cè)試數(shù)據(jù)。其中,如果處理器將配置參數(shù)遞增,就會(huì)將遞增后的配置參數(shù)寫(xiě)入內(nèi)存控制器和內(nèi)存器件,故處理器啟動(dòng)或觸發(fā)內(nèi)存控制器,并告知內(nèi)存控制器對(duì)起始地址和結(jié)束地址所界定的所有內(nèi)存空間進(jìn)行讀寫(xiě)操作,并告知內(nèi)存控制器需要寫(xiě)入的測(cè)試數(shù)據(jù)(即第一測(cè)試數(shù)據(jù))后,內(nèi)存控制器就會(huì)根據(jù)之前處理器寫(xiě)入的遞增后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作。如果處理器將配置參數(shù)遞減,就會(huì)將遞減后的配置參數(shù)寫(xiě)入內(nèi)存控制器和內(nèi)存器件, 故處理器啟動(dòng)或觸發(fā)內(nèi)存控制器,并告知內(nèi)存控制器對(duì)起始地址和結(jié)束地址所界定的所有內(nèi)存空間進(jìn)行讀寫(xiě)操作,并告知內(nèi)存控制器需要寫(xiě)入的測(cè)試數(shù)據(jù)(即第一測(cè)試數(shù)據(jù))后,內(nèi)存控制器就會(huì)根據(jù)之前處理器寫(xiě)入的遞減后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作。在本步驟中,內(nèi)存控制器向起始地址和結(jié)束地址所界定的所有內(nèi)存空間進(jìn)行遍歷,依次寫(xiě)入第一測(cè)試數(shù)據(jù),然后再依次從起始地址和結(jié)束地址所界定的所有內(nèi)存空間讀出寫(xiě)入的第一測(cè)試數(shù)據(jù)。例如假設(shè)起始地址和結(jié)束地址所界定的所有內(nèi)存空間包括第1 地址-第N地址,則內(nèi)存控制器依次向第1地址-第N地址中寫(xiě)入第一測(cè)試數(shù)據(jù),然后依次從第1地址-第N地址中讀出第一測(cè)試數(shù)據(jù)。內(nèi)存控制器將讀出的第一測(cè)試數(shù)據(jù)提供給處理器。其中,N是自然數(shù)。步驟1013、處理器判斷寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)是否全部相同;如果判斷結(jié)果為是,執(zhí)行步驟1014 ;如果判斷結(jié)果為否,執(zhí)行步驟1017。具體的,處理器通過(guò)將每個(gè)地址對(duì)應(yīng)的寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)進(jìn)行比較,判斷是否相同;如果在某個(gè)地址上出現(xiàn)了寫(xiě)入和讀出的第一測(cè)試數(shù)據(jù)不同, 就執(zhí)行步驟1017 ;如果每個(gè)地址對(duì)應(yīng)的寫(xiě)入和讀出的第一測(cè)試數(shù)據(jù)均相同,則執(zhí)行步驟 1014。步驟1014、處理器控制內(nèi)存控制器根據(jù)遞增后的配置參數(shù)或遞減后的配置參數(shù)向起始地址和結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第二測(cè)試數(shù)據(jù),然后依次讀出第二測(cè)試數(shù)據(jù)。為了提高測(cè)試的準(zhǔn)確性,當(dāng)步驟1012所示的測(cè)試通過(guò)后,處理器進(jìn)一步控制內(nèi)存控制器再根據(jù)處理器之前寫(xiě)入的遞增或遞減后的配置參數(shù)向起始地址和結(jié)束地址所界定的所有內(nèi)存空間讀寫(xiě)第二測(cè)試數(shù)據(jù),即對(duì)遞增或遞減后的配置參數(shù)進(jìn)行第二次測(cè)試。其中,內(nèi)存控制器向起始地址和結(jié)束地址所界定的所有內(nèi)存空間讀寫(xiě)第二測(cè)試數(shù)據(jù)的過(guò)程,與向起始地址和結(jié)束地址所界定的所有內(nèi)存空間讀寫(xiě)第一測(cè)試數(shù)據(jù)的過(guò)程相同,在此不再詳述。其中,為了進(jìn)一步提高測(cè)試的準(zhǔn)確性,第一測(cè)試數(shù)據(jù)與第二測(cè)試數(shù)據(jù)不同,但并不限于不同。步驟1015、處理器判斷寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)是否全部相同;如果判斷結(jié)果為是,執(zhí)行步驟1016 ;如果判斷結(jié)果為否,執(zhí)行步驟1017。該步驟與步驟1013相類(lèi)似,處理器通過(guò)將每個(gè)地址對(duì)應(yīng)的寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)進(jìn)行比較,判斷是否相同;如果在某個(gè)地址上出現(xiàn)了寫(xiě)入和讀出的第二測(cè)試數(shù)據(jù)不同,就執(zhí)行步驟1017 ;如果每個(gè)地址對(duì)應(yīng)的寫(xiě)入和讀出的第二測(cè)試數(shù)據(jù)均相同,則執(zhí)行步驟1016。步驟1016、處理器確定讀寫(xiě)操作成功。步驟1017、處理器確定讀寫(xiě)操作不成功。在本實(shí)施方式中并不限制第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)的具體數(shù)值。其中,對(duì)于以二進(jìn)制表示時(shí)具有0和1連續(xù)變化的數(shù)值能夠更好地測(cè)試內(nèi)存控制器和內(nèi)存器件間的時(shí)序關(guān)系,故第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)優(yōu)選采用以二進(jìn)制表示時(shí)具有0和1連續(xù)變化的數(shù)值,例如0x55(0x55的二進(jìn)制表示為Ob,01010101)和Oxaa(Oxaa 二進(jìn)制表示為 Ob’ 10101010)?;谏鲜?,更為優(yōu)選的,第一測(cè)試數(shù)據(jù)為0x55,第二測(cè)試數(shù)據(jù)為Oxaa ;或者第一測(cè)試數(shù)據(jù)為Oxaa,第二測(cè)試數(shù)據(jù)為0x55。
11
進(jìn)一步說(shuō)明,在本實(shí)施方式中,處理器先控制內(nèi)存控制器根據(jù)第一測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,然后根據(jù)第二測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,但并不限于該順序;例如處理器還可以先控制內(nèi)存控制器根據(jù)第二測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,然后根據(jù)第一測(cè)試數(shù)據(jù)進(jìn)行測(cè)試。進(jìn)一步,本實(shí)施方式還可以根據(jù)實(shí)際應(yīng)用環(huán)境,選擇采用一個(gè)測(cè)試數(shù)據(jù)、二個(gè)、三個(gè)或更多測(cè)試數(shù)據(jù)進(jìn)行測(cè)試的方式。本實(shí)施例方式通過(guò)采用隨機(jī)生成地址空間的方法,保證對(duì)任意空間任意地址的隨機(jī)測(cè)試,符合內(nèi)存的實(shí)際使用情況,進(jìn)而通過(guò)選擇具有0和1連續(xù)變化的測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,可以很好的模擬內(nèi)存控制器和內(nèi)存器件間的時(shí)序關(guān)系,進(jìn)一步提高了測(cè)試的真實(shí)性;同時(shí)通過(guò)采用兩次測(cè)試的方式,提高了測(cè)試準(zhǔn)確性。如圖2C所示,另一種處理器控制內(nèi)存控制器根據(jù)某個(gè)遞增后的配置參數(shù)或某個(gè)遞減后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作的實(shí)施方式包括步驟2011、處理器隨機(jī)生成內(nèi)存測(cè)試地址空間的起始地址和結(jié)束地址。步驟2012、處理器控制內(nèi)存控制器根據(jù)遞增后的配置參數(shù)或遞減后的配置參數(shù)向起始地址和結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第一測(cè)試數(shù)據(jù),然后依次讀出第一測(cè)試數(shù)據(jù)。步驟2013、處理器判斷寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)是否全部相同;如果判斷結(jié)果為是,執(zhí)行步驟2014 ;如果判斷結(jié)果為否,執(zhí)行步驟2019。步驟2014、處理器控制內(nèi)存控制器根據(jù)遞增后的配置參數(shù)或遞減后的配置參數(shù)向起始地址和結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第二測(cè)試數(shù)據(jù),然后依次讀出第二測(cè)試數(shù)據(jù)。步驟2015、處理器判斷寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)是否全部相同;如果判斷結(jié)果為是,執(zhí)行步驟2016 ;如果判斷結(jié)果為否,執(zhí)行步驟2019。上述步驟2011-步驟2015可參見(jiàn)步驟1011-步驟1015的描述,在此不再贅述。
步驟2016、處理器控制內(nèi)存控制器根據(jù)遞增后的配置參數(shù)或遞減后的配置參數(shù)向起始地址和結(jié)束地址所界定的所有內(nèi)存空間中依次交替寫(xiě)入第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù),然后依次讀出交替寫(xiě)入的第一測(cè)試測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)。在本實(shí)施方式中,處理器為了進(jìn)一步提高測(cè)試準(zhǔn)確性,在經(jīng)過(guò)步驟2012和步驟 2014的測(cè)試后,進(jìn)一步控制內(nèi)存控制器根據(jù)處理器之前寫(xiě)入的遞增或遞減后的配置參數(shù)對(duì)起始地址和結(jié)束地址所界定的所有內(nèi)存空間進(jìn)行交替讀寫(xiě)操作。在本步驟中,內(nèi)存控制器向起始地址和結(jié)束地址所界定的所有內(nèi)存空間進(jìn)行遍歷,交替地向起始地址和結(jié)束地址所界定的地址空間中寫(xiě)入第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù),然后再依次從起始地址和結(jié)束地址所界定的地址空間讀出所寫(xiě)入的第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)。例如假設(shè)起始地址和結(jié)束地址所界定的所有內(nèi)存空間包括第1地址-第N 地址,則內(nèi)存控制器向第1地址和第2地址分別寫(xiě)入第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù),向第3 地址和第4地址分別寫(xiě)入第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù),……,向第η地址和第η+1地址分別寫(xiě)入第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù),直至寫(xiě)滿(mǎn)起始地址和結(jié)束地址所界定的所有內(nèi)存空間。然后依次從第1地址-第N地址中讀出第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)。1 ^n^n+l^N, N是自然數(shù)。內(nèi)存控制器將讀出的第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)提供給處理器。
步驟2017、處理器判斷交替寫(xiě)入的第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)是否全部相同;如果判斷結(jié)果為是,執(zhí)行步驟2018 ;如果判斷結(jié)果為否,執(zhí)行步驟2019。步驟2018、處理器確定讀寫(xiě)操作成功。步驟2019、處理器確定讀寫(xiě)操作不成功。在本實(shí)施例方式中,同樣不限制第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)的具體數(shù)值。較為優(yōu)選的,第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)不同。更為優(yōu)選的,第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)優(yōu)選采用以二進(jìn)制表示時(shí)具有O和1連續(xù)變化的數(shù)值,例如0x55 (0x55的二進(jìn)制表示為 Ob,01010101)和Oxaa(Oxaa 二進(jìn)制表示為Ob,10101010)。例如第一測(cè)試數(shù)據(jù)為0x55, 第二測(cè)試數(shù)據(jù)為Oxaa ;或者第一測(cè)試數(shù)據(jù)為Oxaa,第二測(cè)試數(shù)據(jù)為0x55。在此說(shuō)明,在本實(shí)施方式中,處理器先控制內(nèi)存控制器根據(jù)第一測(cè)試數(shù)據(jù)進(jìn)行單獨(dú)測(cè)試,然后根據(jù)第二測(cè)試數(shù)據(jù)進(jìn)行單獨(dú)測(cè)試,再同時(shí)根據(jù)第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)進(jìn)行交替測(cè)試,但并不限于該順序。例如處理器還可以先控制內(nèi)存控制器根據(jù)第二測(cè)試數(shù)據(jù)進(jìn)行單獨(dú)測(cè)試,然后再根據(jù)第一測(cè)試數(shù)據(jù)進(jìn)行單獨(dú)測(cè)試,再同時(shí)根據(jù)第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)進(jìn)行交替測(cè)試。又例如處理器還可以先控制內(nèi)存控制器同時(shí)根據(jù)第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)進(jìn)行交替測(cè)試,然后根據(jù)第一測(cè)試數(shù)據(jù)進(jìn)行單獨(dú)測(cè)試,再根據(jù)第二測(cè)試數(shù)據(jù)進(jìn)行單獨(dú)測(cè)試。再例如處理器還可以先控制內(nèi)存控制器同時(shí)根據(jù)第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)進(jìn)行交替測(cè)試,然后根據(jù)第二測(cè)試數(shù)據(jù)進(jìn)行單獨(dú)測(cè)試,再根據(jù)第一測(cè)試數(shù)據(jù)進(jìn)行單獨(dú)測(cè)試。另外,所使用的測(cè)試數(shù)據(jù)也不限于兩個(gè)。本實(shí)施例方式通過(guò)采用隨機(jī)生成地址空間的方法,保證對(duì)任意空間任意地址的隨機(jī)測(cè)試,符合內(nèi)存的實(shí)際使用情況,進(jìn)而通過(guò)選擇具有0和1連續(xù)變化的測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,可以很好的模擬內(nèi)存控制器和內(nèi)存器件間的時(shí)序關(guān)系,進(jìn)一步提高了測(cè)試的真實(shí)性;同時(shí)通過(guò)多種測(cè)試方式進(jìn)行多次測(cè)試,提高了測(cè)試準(zhǔn)確性。圖3為本發(fā)明另一實(shí)施例提供的內(nèi)存參數(shù)配置方法的流程圖。如圖3所示,本實(shí)施例的方法包括步驟300、處理器將配置參數(shù)及其初始值配置到內(nèi)存控制器和內(nèi)存器件中。其中,處理器可以根據(jù)實(shí)際應(yīng)用場(chǎng)景,選擇內(nèi)存控制器和內(nèi)存器件的配置參數(shù),并對(duì)配置參數(shù)進(jìn)行初始化,然后將配置參數(shù)和其初始值寫(xiě)入內(nèi)存控制器和內(nèi)存器件。步驟301、處理器根據(jù)預(yù)設(shè)步長(zhǎng)和配置參數(shù)的初始值,對(duì)配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取配置參數(shù)的最大配置值和最小配置值。該步驟301的具體實(shí)現(xiàn)可參見(jiàn)圖2A-圖2C的描述,在此不再贅述。步驟302、處理器對(duì)最大配置值和最小配置值進(jìn)行數(shù)值計(jì)算,獲取配置參數(shù)的最佳配置值。其中,數(shù)值計(jì)算方法可以是取平均的方法,也可以是加權(quán)求和的方法。該步驟302 可詳見(jiàn)步驟102的描述。步驟303、處理器判斷循環(huán)次數(shù)是否為0 ;當(dāng)判斷結(jié)果為否,執(zhí)行步驟304 ;當(dāng)判斷結(jié)果為是,執(zhí)行步驟305。在本實(shí)施例中,為了更精確找到最佳配置值,可以通過(guò)循環(huán)執(zhí)行上述步驟301和步驟320,其中重復(fù)循環(huán)的次數(shù)越多,得到最佳配置值越準(zhǔn)確。故在本實(shí)施例中,預(yù)先設(shè)定循環(huán)次數(shù),并通過(guò)判斷循環(huán)次數(shù)是否遞減為0,來(lái)實(shí)現(xiàn)多次循環(huán)。通常,重復(fù)2次得到的最佳配置值的準(zhǔn)確性基本可以滿(mǎn)足需要,故循環(huán)次數(shù)可以設(shè)置為2,但不限于此。步驟304、處理器將配置參數(shù)的最佳配置值作為配置參數(shù)的初始值,并返回執(zhí)行步驟 301。步驟305、處理器將配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件。在本實(shí)施例中,通過(guò)設(shè)置循環(huán)次數(shù)實(shí)現(xiàn)重復(fù)循環(huán)獲取最佳配置值,提高了獲取的最佳配置值的準(zhǔn)確性。圖4為本發(fā)明又一實(shí)施例提供的內(nèi)存參數(shù)配置方法的流程圖。如圖4所示,本實(shí)施例的方法包括步驟400、處理器根據(jù)內(nèi)存控制器和內(nèi)存器件對(duì)應(yīng)的所有配置參數(shù)的特性,從所有配置參數(shù)中選擇出相互獨(dú)立的一組配置參數(shù)并存儲(chǔ)。在實(shí)際應(yīng)用中,通過(guò)測(cè)試發(fā)現(xiàn),內(nèi)存控制器和內(nèi)存可以配置的參數(shù)往往是有限的組合,比如,只有m個(gè)參數(shù)^,P2J3-PJt5在這些參數(shù)組合中,有些配置參數(shù)是相關(guān)的,根據(jù)內(nèi)存控制器和內(nèi)存器件對(duì)應(yīng)的配置參數(shù)的特性或作用,可以將有限的組合歸納為η個(gè)獨(dú)立不相關(guān)的配置參數(shù){PpPyP^^J。例如,根據(jù)配置參數(shù)的特性或作用可以歸納出以下幾個(gè)不相關(guān)的配置參數(shù)操作命令到數(shù)據(jù)輸入的間隔控制參數(shù)、操作命令到數(shù)據(jù)輸出的間隔控制參數(shù)、一個(gè)操作完成到下一個(gè)操作的最小間隔控制參數(shù)、控制命令中的時(shí)序控制參數(shù)、總線(xiàn)驅(qū)動(dòng)能力和端接特性控制參數(shù)等。這些配置參數(shù)都獨(dú)立影響總線(xiàn)操作的時(shí)序關(guān)系。其中, m、η均為自然數(shù),且η < m。每個(gè)配置參數(shù)都有一定的取值范圍,假設(shè)每個(gè)配置參數(shù)有k個(gè)取值,則每個(gè)配置參數(shù)的取值范圍可以表示為Pi = {pn,pi2,Pi3,…,PwPifr+mPiM),…, Pi(k-2)'Pi0t-D'PiJ ;其中1彡i彡η。而這η個(gè)獨(dú)立不相關(guān)的配置參數(shù)中每個(gè)參數(shù)的配置值都不會(huì)影響其它參數(shù)的配置值對(duì)操作時(shí)序關(guān)系的影響。這幾個(gè)獨(dú)立不相關(guān)的配置參數(shù)對(duì)時(shí)序關(guān)系的影響滿(mǎn)足疊加關(guān)系。這些組合中,每個(gè)配置參數(shù)只有一定的取值范圍可以保證內(nèi)存控制器可以正常訪(fǎng)問(wèn)內(nèi)存器件,而且往往只有一個(gè)組合的配置值,例如{plf,P2f,P3f-PnfI會(huì)使內(nèi)存控制器和內(nèi)存之間時(shí)序關(guān)系最佳,即只有一個(gè)取值可以保證內(nèi)存控制器可以最可靠的訪(fǎng)問(wèn)存取內(nèi)存。而和這個(gè)最佳配置值差值越大的配置值,會(huì)使內(nèi)存控制器和內(nèi)存之間的時(shí)序關(guān)系變得越差,g卩,每個(gè)配置參數(shù)的取值的連續(xù)變化有使內(nèi)存控制器和內(nèi)存之間的時(shí)序關(guān)系連續(xù)變化的趨勢(shì)。步驟401、處理器對(duì)選擇出的相互獨(dú)立的配置參數(shù)進(jìn)行初始化,并將相互獨(dú)立的配置參數(shù)及其各自的初始值寫(xiě)入內(nèi)存控制器和內(nèi)存器件中。為了從每個(gè)配置參數(shù)的取值范圍中獲取最佳配置值,本實(shí)施例的處理器對(duì)選出的相互獨(dú)立的配置參數(shù)分別進(jìn)行初始化。其中,初始化所選擇的初始值處于每個(gè)配置參數(shù)的取值范圍內(nèi),其可以保證內(nèi)存控制器可以訪(fǎng)問(wèn)內(nèi)存器件,但不一定是最佳配置值。步驟402、處理器設(shè)置變量r,并設(shè)置其初始值為寫(xiě)入內(nèi)存控制器和內(nèi)存器件中的配置參數(shù)的個(gè)數(shù)。其中,變量r用于表示當(dāng)前還未進(jìn)行最佳配置值獲取操作的配置參數(shù)個(gè)數(shù)。步驟403、處理器選擇其中一個(gè)配置參數(shù)。
步驟404、處理器保持其他配置參數(shù)的值不變,根據(jù)預(yù)設(shè)步長(zhǎng)和選擇的配置參數(shù)的初始值,對(duì)選擇的配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取選擇的配置參數(shù)的最大配置值和最小配置值。步驟405、處理器對(duì)最大配置值和最小配置值取平均,獲取配置參數(shù)的最佳配置值。步驟406、處理器判斷循環(huán)次數(shù)是否為0 ;當(dāng)判斷結(jié)果為否,執(zhí)行步驟407 ;當(dāng)判斷結(jié)果為是,執(zhí)行步驟408。步驟407、處理器將選擇的配置參數(shù)的最佳配置值作為選擇的配置參數(shù)的初始值, 并返回執(zhí)行步驟404。步驟408、處理器將選擇的配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件。步驟409、處理器將變量r減1。其中,每對(duì)一個(gè)配置參數(shù)進(jìn)行完最佳配置值獲取操作后,就將變量r減去1,以統(tǒng)計(jì)當(dāng)前未執(zhí)行獲取最佳配置值操作的配置參數(shù)的個(gè)數(shù)。步驟410、處理器判斷變量r是否為0 ;如果判斷結(jié)果為否,返回執(zhí)行步驟403 ;如果判斷結(jié)果為是,執(zhí)行步驟411。步驟411、結(jié)束操作。本實(shí)施例描述了處理器同時(shí)獲取多個(gè)配置參數(shù)的最佳配置值,并進(jìn)行配置的過(guò)程,其中對(duì)于每個(gè)配置參數(shù)的配置流程均相同,可參見(jiàn)前述實(shí)施例的描述。另外,本實(shí)施例與現(xiàn)有技術(shù)相比,通過(guò)獲取相互獨(dú)立的多個(gè)配置參數(shù),既可以滿(mǎn)足內(nèi)存控制器和內(nèi)存器件之間時(shí)序關(guān)系的需求,又降低了配置操作,有利于提高配置效率。圖5為本發(fā)明一實(shí)施例提供的處理器的結(jié)構(gòu)示意圖。如圖5所示,本實(shí)施例的處理器包括第一獲取模塊51、第二獲取模塊52和配置模塊53。其中,第一獲取模塊51,用于根據(jù)預(yù)設(shè)步長(zhǎng)和預(yù)先存儲(chǔ)的配置參數(shù)的初始值,對(duì)配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取配置參數(shù)的最大配置值和最小配置值。第二獲取模塊52,與第一獲取模塊51連接,用于對(duì)第一獲取模塊51獲取的最大配置值和最小配置值進(jìn)行數(shù)值計(jì)算,獲取配置參數(shù)的最佳配置值。配置模塊53,與第二獲取模塊52連接,用于將第二獲取模塊52獲取的配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件。其中,本實(shí)施例的處理器與內(nèi)存器件、內(nèi)存控制器屬于同一設(shè)備的不同部件,處理器可以將有關(guān)數(shù)據(jù)存儲(chǔ)到內(nèi)存器件中,并控制內(nèi)存控制器對(duì)內(nèi)存器件進(jìn)行讀取操作。本實(shí)施例的處理器的各功能模塊可用于執(zhí)行圖1所述內(nèi)存參數(shù)配置方法的流程, 其具體工作原理不再贅述,詳見(jiàn)方法實(shí)施例的描述。本實(shí)施例的處理器,根據(jù)預(yù)設(shè)步長(zhǎng)和內(nèi)存控制器中預(yù)先存儲(chǔ)的配置參數(shù)的初始值,逐步遞增或遞減配置參數(shù)的取值,并在每種取值的情況下控制內(nèi)存控制器對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作,實(shí)現(xiàn)對(duì)配置參數(shù)的內(nèi)存讀寫(xiě)測(cè)試,根據(jù)測(cè)試結(jié)果獲取配置參數(shù)的最大配置值和最小配置值,并根據(jù)最大配置值和最小配置值獲取最佳配置值,完成對(duì)內(nèi)存控制器和內(nèi)存器件的參數(shù)的配置,實(shí)現(xiàn)了配置參數(shù)的自適應(yīng)配置,不再依賴(lài)外部測(cè)試工具,解決了配置參數(shù)的準(zhǔn)確性受外部測(cè)試工具限制的問(wèn)題,提高了所配置的配置參數(shù)值的準(zhǔn)確性,進(jìn)而提高了內(nèi)存控制器對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作的成功率。另外,本實(shí)施例的處理器通過(guò)自行獲取配置參數(shù)的最佳配置值并完成配置,不受外部測(cè)試工具的限制,在環(huán)境發(fā)生變化時(shí)可以隨時(shí)進(jìn)行重新配置,提高了對(duì)內(nèi)存控制器和內(nèi)存器件進(jìn)行參數(shù)配置的靈活性,為內(nèi)存控制器和內(nèi)存器件之間的時(shí)序關(guān)系在不同環(huán)境下均達(dá)到最佳提供了保障。同時(shí),本實(shí)施例的處理器使參數(shù)配置不再依賴(lài)外部測(cè)試工具,使得對(duì)配置參數(shù)的測(cè)試和配置變得簡(jiǎn)單易于執(zhí)行,并且處理器可以直接將獲取的配置參數(shù)的最佳配置值寫(xiě)入內(nèi)存控制器和內(nèi)存器件,當(dāng)需要重新配置時(shí)可以在執(zhí)行一次測(cè)試和配置操作即可,與現(xiàn)有技術(shù)中每次更新配置參數(shù)時(shí)需要執(zhí)行更換存儲(chǔ)配置參數(shù)的ROM的操作相比,要省時(shí)省力的多。圖6為本發(fā)明另一實(shí)施例提供的處理器的結(jié)構(gòu)示意圖。本實(shí)施例基于圖6所示實(shí)施例實(shí)現(xiàn),如圖6所示,本實(shí)施例的第一獲取模塊51包括最大值獲取子模塊511和最小值獲取子模塊512。其中,最大值獲取子模塊511,用于將配置參數(shù)由初始值開(kāi)始按照步長(zhǎng)中的第一步長(zhǎng)逐漸遞增,并將遞增后的配置參數(shù)寫(xiě)入內(nèi)存控制器和內(nèi)存器件,并控制內(nèi)存控制器根據(jù)遞增后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作,獲取第一次讀寫(xiě)操作不成功時(shí)的配置參數(shù)的值作為配置參數(shù)的最大配置值,并提供給第二獲取模塊52。最小值獲取子模塊512,用于將配置參數(shù)由初始值開(kāi)始按照步長(zhǎng)中的第二步長(zhǎng)逐漸遞減,并將遞減后的配置參數(shù)寫(xiě)入內(nèi)存控制器和內(nèi)存器件,并控制內(nèi)存控制器根據(jù)遞減后的配置參數(shù)對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作,獲取第一次讀寫(xiě)操作不成功時(shí)的配置參數(shù)的值作為配置參數(shù)的最小配置值,并提供給第二獲取模塊52。上述各功能子模塊可用于執(zhí)行圖2A所示實(shí)施方式的流程,其具體工作原理不再贅述,詳見(jiàn)方法實(shí)施例的描述。進(jìn)一步,本實(shí)施例的最大值獲取子模塊511還包括第一寫(xiě)入單元5111、第一生成單元5112、第一控制單元5113、第一確定單元5114和第一獲取單元5115。其中,第一寫(xiě)入單元5111,用于將配置參數(shù)由初始值開(kāi)始按照所述步長(zhǎng)中的第一步長(zhǎng)逐漸遞增,并將遞增后的配置參數(shù)寫(xiě)入內(nèi)存控制器和所述內(nèi)存器件。第一生成單元 5112,用于隨機(jī)生成內(nèi)存測(cè)試地址空間的起始地址和結(jié)束地址。第一控制單元5113,與第一寫(xiě)入單元5111和第一生成單元5112連接,用于控制內(nèi)存控制器根據(jù)第一寫(xiě)入單元5111寫(xiě)入的遞增后的配置參數(shù)向第一生成單元5112所生成的起始地址和結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第一測(cè)試數(shù)據(jù),然后依次讀出第一測(cè)試數(shù)據(jù),并控制內(nèi)存控制器根據(jù)遞增后的配置參數(shù)向起始地址和結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第二測(cè)試數(shù)據(jù),然后依次讀出第二測(cè)試數(shù)據(jù)。第一確定單元5114,與第一控制單元5113連接,用于在寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)相同,且寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)相同時(shí),確定讀寫(xiě)操作成功,在寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)不相同,或者寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)不相同時(shí),確定讀寫(xiě)操作不成功。第一獲取單元5115,與第一確定單元5114連接,用于獲取第一確定單元5114確定出的第一次讀寫(xiě)操作不成功時(shí)的配置參數(shù)的值作為配置參數(shù)的最大配置值。進(jìn)一步,最小值獲取子模塊512包括第二寫(xiě)入單元5121、第二生成單元5122、第二控制單元5123、第二確定單元51M和第二獲取單元5125。其中,第二寫(xiě)入單元5121,用于將配置參數(shù)由初始值開(kāi)始按照所述步長(zhǎng)中的第二步長(zhǎng)逐漸遞減,并將遞減后的配置參數(shù)寫(xiě)入內(nèi)存控制器和內(nèi)存器件。第二生成單元5122, 用于隨機(jī)生成內(nèi)存測(cè)試地址空間的起始地址和結(jié)束地址。第二控制單元5123,與第二寫(xiě)入
16單元5121和第二生成單元5122連接,用于控制內(nèi)存控制器根據(jù)第二寫(xiě)入單元5121寫(xiě)入的遞減后的配置參數(shù)向第二生成單元5122所生成的起始地址和結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第一測(cè)試數(shù)據(jù),然后依次讀出第一測(cè)試數(shù)據(jù),并控制內(nèi)存控制器根據(jù)遞減后的配置參數(shù)向起始地址和結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第二測(cè)試數(shù)據(jù),然后依次讀出第二測(cè)試數(shù)據(jù)。第二確定單元5124,與第二控制單元5123連接,用于在寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)相同,且寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)相同時(shí),確定讀寫(xiě)操作成功,在寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)不相同,或者寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)不相同時(shí),確定讀寫(xiě)操作不成功。第二獲取單元 5125,與第二確定單元51M連接,用于獲取第二確定單元51M確定出的第一次讀寫(xiě)操作不成功時(shí)的配置參數(shù)的值作為配置參數(shù)的最小配置值。上述各功能單元可用于執(zhí)行圖2A和圖2B所示實(shí)施方式中的相應(yīng)流程,其具體工作原理不再贅述,詳見(jiàn)方法實(shí)施例的描述。另外,本實(shí)施例的第一控制單元5113還用于控制內(nèi)存控制器根據(jù)遞增后的配置參數(shù)向起始地址和結(jié)束地址所界定的所有內(nèi)存空間中依次交替寫(xiě)入第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù),然后依次讀出交替寫(xiě)入的第一測(cè)試測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)。第二控制單元5123還用于控制內(nèi)存控制器根據(jù)遞減后的配置參數(shù)向起始地址和結(jié)束地址所界定的所有內(nèi)存空間中依次交替寫(xiě)入第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù),然后依次讀出交替寫(xiě)入的第一測(cè)試測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)。其中,本實(shí)施例對(duì)第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)的具體數(shù)值不做限定,但較為優(yōu)選的,第一測(cè)試數(shù)據(jù)和第二測(cè)試數(shù)據(jù)優(yōu)選采用以二進(jìn)制表示時(shí)具有0和1連續(xù)變化的數(shù)值, 例如0x55和Oxaa。例如第一測(cè)試數(shù)據(jù)為0x55,第二測(cè)試數(shù)據(jù)為Oxaa ;或者第一測(cè)試數(shù)據(jù)為Oxaa,第二測(cè)試數(shù)據(jù)為0x55。上述各功能單元可用于執(zhí)行圖2C所示實(shí)施方式中的相應(yīng)流程,其具體工作原理不再贅述,詳見(jiàn)方法實(shí)施例的描述。進(jìn)一步,本實(shí)施例的處理器還包括重置觸發(fā)模塊61。重置觸發(fā)模塊61,與第一獲取模塊51和第二獲取模塊52連接,用于在配置模塊將配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件之前,將第二獲取模塊52獲取的配置參數(shù)的最佳配置值作為配置參數(shù)的初始值,發(fā)送給第一獲取模塊51,并觸發(fā)第一獲取模塊51重新根據(jù)預(yù)設(shè)步長(zhǎng)和配置參數(shù)的初始值,對(duì)配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取配置參數(shù)的最大配置值和最小配置值。該重置觸發(fā)模塊61可用于執(zhí)行圖3所示內(nèi)存參數(shù)配置方法中的相應(yīng)流程,其具體工作原理不再贅述。進(jìn)一步,本實(shí)施例的處理器還可以包括獲取存儲(chǔ)模塊62。該獲取存儲(chǔ)模塊62,用與第一獲取模塊51連接,于在第一獲取模塊根據(jù)預(yù)設(shè)步長(zhǎng)和預(yù)先存儲(chǔ)的配置參數(shù)的初始值,對(duì)配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取配置參數(shù)的最大配置值和最小配置值之前,根據(jù)內(nèi)存控制器和內(nèi)存器件對(duì)應(yīng)的所有配置參數(shù)的特性,從所有配置參數(shù)中選擇出相互獨(dú)立的一組配置參數(shù)并存儲(chǔ),并將所存儲(chǔ)的配置參數(shù)提供給第一獲取模塊51。該獲取存儲(chǔ)模塊62可用執(zhí)行圖4所示內(nèi)存參數(shù)配置方法中的相應(yīng)流程,其具體工作原理不再贅述。本實(shí)施例的處理器,通過(guò)采用隨機(jī)生成地址空間的方法,保證對(duì)任意空間任意地址的隨機(jī)測(cè)試,符合內(nèi)存的實(shí)際使用情況,進(jìn)而通過(guò)選擇具有0和1連續(xù)變化的測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,可以很好的模擬內(nèi)存控制器和內(nèi)存器件間的時(shí)序關(guān)系,進(jìn)一步提高了測(cè)試的真實(shí)性;同時(shí)通過(guò)采用多次測(cè)試的方式,提高了測(cè)試準(zhǔn)確性。圖7為本發(fā)明一實(shí)施例提供的設(shè)備的結(jié)構(gòu)示意圖。如圖7所示,本實(shí)施例的設(shè)備包括處理器71、內(nèi)存控制器72和內(nèi)存器件73。處理器71與內(nèi)存控制器72連接,內(nèi)存控制器72與內(nèi)存器件73連接。其中,處理器71為本發(fā)明上述實(shí)施例提供的處理器,其實(shí)現(xiàn)結(jié)構(gòu)可參見(jiàn)圖5或圖 6所示,其工作原理可參見(jiàn)圖1-圖4所示方法實(shí)施例的描述,在此均不再贅述。另外,處理器71與內(nèi)存控制器72和內(nèi)存器件73之間的操作關(guān)系,以及內(nèi)存控制器72與內(nèi)存器件73之間的操作關(guān)系也參見(jiàn)圖1-圖4所示方法實(shí)施例中的描述。本實(shí)施例的設(shè)備,由處理器自行完成對(duì)內(nèi)存器件和內(nèi)存控制器的配置參數(shù)的配置,不再依賴(lài)外部測(cè)試工具,解決了配置參數(shù)的準(zhǔn)確性受外部測(cè)試工具限制的問(wèn)題,提高了所配置的配置參數(shù)值的準(zhǔn)確性,進(jìn)而提高了內(nèi)存控制器對(duì)內(nèi)存器件進(jìn)行讀寫(xiě)操作的成功率。另外,本實(shí)施例的設(shè)備由于不受外部測(cè)試工具的限制,在環(huán)境發(fā)生變化時(shí)可以隨時(shí)進(jìn)行重新配置,提高了對(duì)內(nèi)存控制器和內(nèi)存器件進(jìn)行參數(shù)配置的靈活性,為內(nèi)存控制器和內(nèi)存器件之間的時(shí)序關(guān)系在不同環(huán)境下均達(dá)到最佳提供了保障。并且,本實(shí)施例的設(shè)備在進(jìn)行配置參數(shù)更新時(shí),不需要更換ROM,與現(xiàn)有技術(shù)相比要省時(shí)省力的多。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
權(quán)利要求
1.一種內(nèi)存參數(shù)配置方法,其特征在于,包括處理器根據(jù)預(yù)設(shè)步長(zhǎng)和預(yù)先存儲(chǔ)的配置參數(shù)的初始值,對(duì)所述配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取所述配置參數(shù)的最大配置值和最小配置值;所述處理器對(duì)所述最大配置值和所述最小配置值進(jìn)行數(shù)值計(jì)算,獲取所述配置參數(shù)的最佳配置值;所述處理器將所述配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件。
2.根據(jù)權(quán)利要求1所述的內(nèi)存參數(shù)配置方法,其特征在于,所述處理器根據(jù)預(yù)設(shè)步長(zhǎng)和預(yù)先存儲(chǔ)的配置參數(shù)的初始值,對(duì)所述配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取所述配置參數(shù)的最大配置值和最小配置值包括所述處理器將所述配置參數(shù)由初始值開(kāi)始按照所述步長(zhǎng)中的第一步長(zhǎng)逐漸遞增,并將遞增后的配置參數(shù)寫(xiě)入所述內(nèi)存控制器和所述內(nèi)存器件,并控制所述內(nèi)存控制器根據(jù)所述遞增后的配置參數(shù)對(duì)所述內(nèi)存器件進(jìn)行讀寫(xiě)操作,獲取第一次讀寫(xiě)操作不成功時(shí)的配置參數(shù)的值作為所述配置參數(shù)的最大配置值;所述處理器將所述配置參數(shù)由初始值開(kāi)始按照所述步長(zhǎng)中的第二步長(zhǎng)逐漸遞減,并將遞減后的配置參數(shù)寫(xiě)入所述內(nèi)存控制器和所述內(nèi)存器件,并控制所述內(nèi)存控制器根據(jù)所述遞減后的配置參數(shù)對(duì)所述內(nèi)存器件進(jìn)行讀寫(xiě)操作,獲取第一次讀寫(xiě)操作不成功時(shí)的配置參數(shù)的值作為所述配置參數(shù)的最小配置值。
3.根據(jù)權(quán)利要求2所述的內(nèi)存參數(shù)配置方法,其特征在于,所述處理器控制所述內(nèi)存控制器根據(jù)所述遞增后的配置參數(shù)或所述遞減后的配置參數(shù)對(duì)所述內(nèi)存器件進(jìn)行讀寫(xiě)操作包括所述處理器隨機(jī)生成內(nèi)存測(cè)試地址空間的起始地址和結(jié)束地址; 所述處理器控制所述內(nèi)存控制器根據(jù)所述遞增后的配置參數(shù)或所述遞減后的配置參數(shù)向所述起始地址和所述結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第一測(cè)試數(shù)據(jù),然后依次讀出所述第一測(cè)試數(shù)據(jù);所述處理器控制所述內(nèi)存控制器根據(jù)所述遞增后的配置參數(shù)或所述遞減后的配置參數(shù)向所述起始地址和所述結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第二測(cè)試數(shù)據(jù),然后依次讀出所述第二測(cè)試數(shù)據(jù);如果寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)相同,且寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)相同,所述處理器確定讀寫(xiě)操作成功;如果寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)不相同,或者寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)不相同,所述處理器確定讀寫(xiě)操作不成功。
4.根據(jù)權(quán)利要求2所述的內(nèi)存參數(shù)配置方法,其特征在于,所述處理器控制所述內(nèi)存控制器根據(jù)所述遞增后的配置參數(shù)或所述遞減后的配置參數(shù)對(duì)所述內(nèi)存器件進(jìn)行讀寫(xiě)操作包括所述處理器隨機(jī)生成內(nèi)存測(cè)試地址空間的起始地址和結(jié)束地址; 所述處理器控制所述內(nèi)存控制器根據(jù)所述遞增后的配置參數(shù)或所述遞減后的配置參數(shù)向所述起始地址和所述結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第一測(cè)試數(shù)據(jù),然后依次讀出所述第一測(cè)試數(shù)據(jù);所述處理器控制所述內(nèi)存控制器根據(jù)所述遞增后的配置參數(shù)或所述遞減后的配置參數(shù)向所述起始地址和所述結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第二測(cè)試數(shù)據(jù),然后依次讀出所述第二測(cè)試數(shù)據(jù);所述處理器控制所述內(nèi)存控制器根據(jù)所述遞增后的配置參數(shù)或所述遞減后的配置參數(shù)向所述起始地址和所述結(jié)束地址所界定的所有內(nèi)存空間中依次交替寫(xiě)入所述第一測(cè)試數(shù)據(jù)和所述第二測(cè)試數(shù)據(jù),然后依次讀出交替寫(xiě)入的所述第一測(cè)試測(cè)試數(shù)據(jù)和所述第二測(cè)試數(shù)據(jù);如果寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)相同,且寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)相同,所述處理器確定讀寫(xiě)操作成功;如果寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)不相同,或者寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)不相同,所述處理器確定讀寫(xiě)操作不成功。
5.根據(jù)權(quán)利要求3或4所述的內(nèi)存參數(shù)配置方法,其特征在于,所述第一測(cè)試數(shù)據(jù)為0x55,所述第二測(cè)試數(shù)據(jù)為Oxaa ;或者,所述第一測(cè)試數(shù)據(jù)Oxaa,所述第二測(cè)試數(shù)據(jù)為 0x55。
6.根據(jù)權(quán)利要求1-4任一項(xiàng)所述的內(nèi)存參數(shù)配置方法,其特征在于,所述處理器將所述配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件之前包括所述處理器將所述配置參數(shù)的最佳配置值作為所述配置參數(shù)的初始值,并重新根據(jù)預(yù)設(shè)步長(zhǎng)和所述配置參數(shù)的初始值,對(duì)所述配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取所述配置參數(shù)的最大配置值和最小配置值,并對(duì)所述最大配置值和所述最小配置值進(jìn)行數(shù)值計(jì)算,獲取所述配置參數(shù)的最佳配置值。
7.根據(jù)權(quán)利要求1-4任一項(xiàng)所述的內(nèi)存參數(shù)配置方法,其特征在于,所述處理器根據(jù)預(yù)設(shè)步長(zhǎng)和預(yù)先存儲(chǔ)的配置參數(shù)的初始值,對(duì)所述配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取所述配置參數(shù)的最大配置值和最小配置值之前包括所述處理器根據(jù)所述內(nèi)存控制器和所述內(nèi)存器件對(duì)應(yīng)的所有配置參數(shù)的特性,從所有配置參數(shù)中選擇出相互獨(dú)立的一組配置參數(shù)并存儲(chǔ)。
8.—種處理器,其特征在于,包括第一獲取模塊,用于根據(jù)預(yù)設(shè)步長(zhǎng)和預(yù)先存儲(chǔ)的配置參數(shù)的初始值,對(duì)所述配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取所述配置參數(shù)的最大配置值和最小配置值;第二獲取模塊,用于對(duì)所述最大配置值和所述最小配置值進(jìn)行數(shù)值計(jì)算,獲取所述配置參數(shù)的最佳配置值;配置模塊,用于將所述配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件。
9.根據(jù)權(quán)利要求8所述的處理器,其特征在于,所述第一獲取模塊包括最大值獲取子模塊,用于將所述配置參數(shù)由初始值開(kāi)始按照所述步長(zhǎng)中的第一步長(zhǎng)逐漸遞增,并將遞增后的配置參數(shù)寫(xiě)入所述內(nèi)存控制器和所述內(nèi)存器件,并控制所述內(nèi)存控制器根據(jù)所述遞增后的配置參數(shù)對(duì)所述內(nèi)存器件進(jìn)行讀寫(xiě)操作,獲取第一次讀寫(xiě)操作不成功時(shí)的配置參數(shù)的值作為所述配置參數(shù)的最大配置值;最小值獲取子模塊,用于將所述配置參數(shù)由初始值開(kāi)始按照所述步長(zhǎng)中的第二步長(zhǎng)逐漸遞減,并將遞減后的配置參數(shù)寫(xiě)入所述內(nèi)存控制器和所述內(nèi)存器件,并控制所述內(nèi)存控制器根據(jù)所述遞減后的配置參數(shù)對(duì)所述內(nèi)存器件進(jìn)行讀寫(xiě)操作,獲取第一次讀寫(xiě)操作不成功時(shí)的配置參數(shù)的值作為所述配置參數(shù)的最小配置值。
10.根據(jù)權(quán)利要求9所述的處理器,其特征在于,所述最大值獲取子模塊包括第一寫(xiě)入單元,用于將所述配置參數(shù)由初始值開(kāi)始按照所述步長(zhǎng)中的第一步長(zhǎng)逐漸遞增,并將遞增后的配置參數(shù)寫(xiě)入所述內(nèi)存控制器和所述內(nèi)存器件;第一生成單元,用于隨機(jī)生成內(nèi)存測(cè)試地址空間的起始地址和結(jié)束地址; 第一控制單元,用于控制所述內(nèi)存控制器根據(jù)所述遞增后的配置參數(shù)向所述起始地址和所述結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第一測(cè)試數(shù)據(jù),然后依次讀出所述第一測(cè)試數(shù)據(jù),并控制所述內(nèi)存控制器根據(jù)所述遞增后的配置參數(shù)向所述起始地址和所述結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第二測(cè)試數(shù)據(jù),然后依次讀出所述第二測(cè)試數(shù)據(jù);第一確定單元,用于在寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)相同,且寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)相同時(shí),確定讀寫(xiě)操作成功,在寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)不相同,或者寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)不相同時(shí), 確定讀寫(xiě)操作不成功;第一獲取單元,用于獲取第一次讀寫(xiě)操作不成功時(shí)的配置參數(shù)的值作為所述配置參數(shù)的最大配置值;所述最小值獲取子模塊包括第二寫(xiě)入單元,用于將所述配置參數(shù)由初始值開(kāi)始按照所述步長(zhǎng)中的第二步長(zhǎng)逐漸遞減,并將遞減后的配置參數(shù)寫(xiě)入所述內(nèi)存控制器和所述內(nèi)存器件;第二生成單元,用于隨機(jī)生成內(nèi)存測(cè)試地址空間的起始地址和結(jié)束地址; 第二控制單元,用于控制所述內(nèi)存控制器根據(jù)所述遞減后的配置參數(shù)向所述起始地址和所述結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第一測(cè)試數(shù)據(jù),然后依次讀出所述第一測(cè)試數(shù)據(jù),并控制所述內(nèi)存控制器根據(jù)所述遞減后的配置參數(shù)向所述起始地址和所述結(jié)束地址所界定的所有內(nèi)存空間中依次寫(xiě)入第二測(cè)試數(shù)據(jù),然后依次讀出所述第二測(cè)試數(shù)據(jù);第二確定單元,用于在寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)相同,且寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)相同時(shí),確定讀寫(xiě)操作成功,在寫(xiě)入的第一測(cè)試數(shù)據(jù)和讀出的第一測(cè)試數(shù)據(jù)不相同,或者寫(xiě)入的第二測(cè)試數(shù)據(jù)和讀出的第二測(cè)試數(shù)據(jù)不相同時(shí), 確定讀寫(xiě)操作不成功;第二獲取單元,用于獲取第一次讀寫(xiě)操作不成功時(shí)的配置參數(shù)的值作為所述配置參數(shù)的最小配置值。
11.根據(jù)權(quán)利要求10所述的處理器,其特征在于,所述第一控制單元還用控制所述內(nèi)存控制器根據(jù)所述遞增后的配置參數(shù)向所述起始地址和所述結(jié)束地址所界定的所有內(nèi)存空間中依次交替寫(xiě)入所述第一測(cè)試數(shù)據(jù)和所述第二測(cè)試數(shù)據(jù),然后依次讀出交替寫(xiě)入的所述第一測(cè)試測(cè)試數(shù)據(jù)和所述第二測(cè)試數(shù)據(jù);所述第二控制單元還用于控制所述內(nèi)存控制器根據(jù)所述遞減后的配置參數(shù)向所述起始地址和所述結(jié)束地址所界定的所有內(nèi)存空間中依次交替寫(xiě)入所述第一測(cè)試數(shù)據(jù)和所述第二測(cè)試數(shù)據(jù),然后依次讀出交替寫(xiě)入的所述第一測(cè)試測(cè)試數(shù)據(jù)和所述第二測(cè)試數(shù)據(jù)。
12.根據(jù)權(quán)利要求8-11任一項(xiàng)所述的處理器,其特征在于,還包括重置觸發(fā)模塊,用于在所述配置模塊將所述配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件之前,將所述配置參數(shù)的最佳配置值作為所述配置參數(shù)的初始值,發(fā)送給所述第一獲取模塊,并觸發(fā)所述第一獲取模塊重新根據(jù)預(yù)設(shè)步長(zhǎng)和所述配置參數(shù)的初始值,對(duì)所述配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取所述配置參數(shù)的最大配置值和最小配置值。
13.根據(jù)權(quán)利要求8-11任一項(xiàng)所述的處理器,其特征在于,還包括獲取存儲(chǔ)模塊,用于在所述第一獲取模塊根據(jù)預(yù)設(shè)步長(zhǎng)和預(yù)先存儲(chǔ)的配置參數(shù)的初始值,對(duì)所述配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取所述配置參數(shù)的最大配置值和最小配置值之前,根據(jù)所述內(nèi)存控制器和所述內(nèi)存器件對(duì)應(yīng)的所有配置參數(shù)的特性,從所有配置參數(shù)中選擇出相互獨(dú)立的一組配置參數(shù)并存儲(chǔ)。
14.一種設(shè)備,其特征在于,包括內(nèi)存控制器、內(nèi)存器件和權(quán)利要求8-13任一項(xiàng)所述的處理器。
全文摘要
本發(fā)明提供一種內(nèi)存參數(shù)配置方法、處理器及設(shè)備。其中,方法包括處理器根據(jù)預(yù)設(shè)步長(zhǎng)和預(yù)先存儲(chǔ)的配置參數(shù)的初始值,對(duì)配置參數(shù)進(jìn)行內(nèi)存讀寫(xiě)測(cè)試,獲取配置參數(shù)的最大配置值和最小配置值;處理器對(duì)最大配置值和最小配置值進(jìn)行數(shù)值計(jì)算,獲取配置參數(shù)的最佳配置值;處理器將配置參數(shù)的最佳配置值分別寫(xiě)入內(nèi)存控制器和內(nèi)存器件。本發(fā)明技術(shù)方案解決了受外部工具技術(shù)限制而無(wú)法獲取到準(zhǔn)確性較高的配置參數(shù)的問(wèn)題,實(shí)現(xiàn)了配置參數(shù)的自適應(yīng)配置,提高了所配置的配置參數(shù)的準(zhǔn)確性。
文檔編號(hào)G06F11/00GK102508726SQ20111035997
公開(kāi)日2012年6月20日 申請(qǐng)日期2011年11月14日 優(yōu)先權(quán)日2011年11月14日
發(fā)明者黃金燦 申請(qǐng)人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司