一種內(nèi)存自適配方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明屬于計(jì)算機(jī)領(lǐng)域,尤其涉及一種內(nèi)存自適配方法及裝置。
【背景技術(shù)】
[0002]串行檢測SI3D是SERIAL PRESENCE DETECT的縮寫。內(nèi)存的SI3D信息是一組關(guān)于內(nèi)存模組的配置信息,通常存儲在內(nèi)存條上的一顆采用SOIC封裝的8針的EEPROM芯片里,容量為256字節(jié)。sro芯片內(nèi)記錄了內(nèi)存的許多重要信息,諸如地址選通脈沖延遲、行預(yù)充電時間、行尋址至列尋址延遲時間、行有效至行預(yù)充電時間、內(nèi)存芯片及模組的生產(chǎn)廠商、額定工作頻率、工作電壓、速度、容量等參數(shù)。
[0003]目前的飛騰平臺,固件會在EEPROM中預(yù)留一段空間,用于存放內(nèi)存的STO信息,以下稱為內(nèi)存參數(shù)存儲區(qū)。第一次開機(jī)時,固件辨別內(nèi)存參數(shù)存儲區(qū)的數(shù)據(jù)是空的,固件就會執(zhí)行一次讀取內(nèi)存的sro信息,初始化微控制單元mcu,同時將內(nèi)存的sro信息存放到內(nèi)存參數(shù)存儲區(qū)中,后續(xù)開機(jī)則直接使用內(nèi)存參數(shù)存儲區(qū)中的sro信息進(jìn)行開機(jī)。但是在更換不相同的內(nèi)存條以后,若還使用存儲在內(nèi)存參數(shù)存儲區(qū)中的sro參數(shù)進(jìn)行開機(jī)時,將會出現(xiàn)開機(jī)異常、程序運(yùn)行異常,甚至檔機(jī)等現(xiàn)象。所以在更換不同的內(nèi)存條以后,需要手動操作,重新讀取一次內(nèi)存的sro信息,初始化mcu,操作繁瑣,不靈活。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種內(nèi)存自適配方法及裝置,以解決飛騰平臺中更換不同的內(nèi)存后首次開機(jī)啟動操作繁瑣的問題。
[0005]本發(fā)明是這樣實(shí)現(xiàn)的,一種內(nèi)存自適配方法,所述方法包括:
[0006]在檢測到系統(tǒng)開機(jī)時,讀取第一存儲區(qū)中的串行檢測sro信息;
[0007]判斷讀取的所述sro信息是否為缺省值;
[0008]若否,讀取內(nèi)存sro芯片的sro信息;
[0009]判斷第一存儲區(qū)中讀取的sro信息和內(nèi)存sro芯片上讀取的sro信息是否相同;
[0010]若否,根據(jù)所述內(nèi)存sro芯片上讀取的sro信息,初始化微控制單元mcu ;
[0011]所述第一存儲區(qū)為系統(tǒng)預(yù)先配置的電可擦可編程只讀存儲器中的存儲空間。
[0012]本發(fā)明還提供一種內(nèi)存自適配裝置,所述裝置包括:
[0013]第一讀取單元,用于在檢測到系統(tǒng)開機(jī)時,讀取第一存儲區(qū)中的串行檢測sro信息;
[0014]缺省值判斷單元,用于判斷讀取的所述sro信息是否為缺省值;
[0015]第二讀取單元,用于在所述缺省值判斷單元判斷結(jié)果為否時,讀取內(nèi)存sro芯片的SPD信息;
[0016]第二判斷單元,用于判斷第一存儲區(qū)中讀取的sro信息和內(nèi)存sro芯片上讀取的SPD信息是否相同;
[0017]初始化單元,用于在所述第二判斷單元判斷結(jié)果為否時,根據(jù)所述內(nèi)存sro芯片上讀取的sro信息,初始化微控制單元Mcu ;
[0018]所述第一存儲區(qū)為預(yù)先配置的電可擦可編程只讀存儲器中的存儲空間。
[0019]在本發(fā)明中,通過判斷第一存儲區(qū)的sro信息是否為缺省值;若否,則讀取內(nèi)存SPD芯片的sro信息,判斷所述內(nèi)存sro芯片的sro信息和第一存儲區(qū)中的sro信息是否相同;若不相同,則根據(jù)所述內(nèi)存sro芯片的sro信息,初始化微控制單元mcu。從而完成了內(nèi)存自適配,簡化了飛騰平臺中設(shè)備更換不同的內(nèi)存后首次開機(jī)啟動的操作,提升了用戶體驗(yàn)。
【附圖說明】
[0020]圖1是本發(fā)明實(shí)施例提供的內(nèi)存自適配方法的流程圖;
[0021]圖2是本發(fā)明實(shí)施例提供的內(nèi)存自適配裝置的結(jié)構(gòu)圖;
【具體實(shí)施方式】
[0022]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0023]本發(fā)明適用于飛騰平臺,提供了一種內(nèi)存自適配方法及裝置。該方法基于SPARC架構(gòu),利用sro信息來分辨是否更換了不相同的內(nèi)存。若是,則重新讀取內(nèi)存sro芯片上的SPD信息,初始化MCU ;否則,加載第一存儲區(qū)中的sro信息,系統(tǒng)正常開機(jī)。從而完成了內(nèi)存的自適配。
[0024]為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。
[0025]圖1示出了本發(fā)明實(shí)施例提供的內(nèi)存自適配方法的流程,詳述如下:
[0026]在步驟SlOl中,在檢測到系統(tǒng)開機(jī)時,讀取第一存儲區(qū)中的串行檢測sro信息;
[0027]在本實(shí)施例中,所述系統(tǒng)包括但不限于計(jì)算機(jī)系統(tǒng)、手機(jī)系統(tǒng)。
[0028]所述系統(tǒng)開機(jī)信息是指系統(tǒng)上電的開機(jī)信息。
[0029]所述串行檢測SH)是SERIAL PRESENCE DETECT的縮寫,SH)信息是一組關(guān)于內(nèi)存模組的配置信息,通常存儲在內(nèi)存條上的一顆采用SOIC封裝的8針的EEPROM芯片里,該芯片稱為SPD芯片,容量為256字節(jié)。SPD芯片內(nèi)記錄了內(nèi)存的許多重要信息,諸如內(nèi)存類型、內(nèi)存插槽類型、DRAM容量和內(nèi)部bank數(shù)、DRAM行列地址線數(shù)目、DRAM最小時鐘周期、內(nèi)存芯片及模組的生產(chǎn)廠商、額定工作頻率、工作電壓、速度、容量等參數(shù)。
[0030]作為本發(fā)明的一個實(shí)施示例,固件預(yù)先配置了 16byte的EEPROM空間作為第一存儲區(qū),用于存放系統(tǒng)前一次開機(jī)時所使用的內(nèi)存條的內(nèi)存sro芯片上的sro信息。
[0031]在步驟S102中,判斷讀取的所述sro信息是否為缺省值;
[0032]在本實(shí)施例中,所述缺省值為預(yù)先配置。缺省值是指系統(tǒng)第一次開機(jī)以前,第一存儲區(qū)里存儲的初始值,通常設(shè)置為全零。
[0033]進(jìn)行缺省值判斷,是為了識別系統(tǒng)是否為首次開機(jī);若為首次開機(jī),第一存儲區(qū)上為全零的缺省值;否則,第一存儲區(qū)上為系統(tǒng)前一次開機(jī)時所使用的內(nèi)存條的內(nèi)存sro芯片上的sro信息。
[0034]判斷讀取的所述sro信息是否為缺省值。判斷結(jié)果為是時,則讀取內(nèi)存SPD芯片的sro信息,執(zhí)行步驟S105 ;否則,執(zhí)行步驟S103。
[0035]在步驟S103中,讀取內(nèi)存SPD芯片的SH)信息;
[0036]在本實(shí)施例中,內(nèi)存SPD芯片是指系統(tǒng)當(dāng)前所使用的內(nèi)存的SPD芯片。
[0037]在步驟S104中,判斷第一存儲區(qū)中讀取的SPD信息和內(nèi)存SPD芯片上讀取的SPD息是否相同。
[0038]作為本發(fā)明的一個實(shí)施示例,固件預(yù)留了一個EEPROM空間作為臨時區(qū),用于在讀取內(nèi)存sro芯片上的sro信息后,存儲所述sro信息。
[0039]對第一存儲區(qū)中讀取的sro信息和內(nèi)存sro芯片上的sro信息是否相同進(jìn)行判斷,是為了判斷是否更換了不同的內(nèi)存。判斷結(jié)果為相同時,表示沒有更換內(nèi)存條或者更換了完全相同的內(nèi)存條,sro信息不變;若判斷結(jié)果為不相同時,表示更換了不相同的內(nèi)存條。
[0040]在本實(shí)施例中,判斷所述內(nèi)存sro芯片的sro信息和第一存儲區(qū)中sro信息是否相同;若是,則執(zhí)行步驟S106 ;否則,執(zhí)行步驟S105。
[0041]在步驟S105中,根據(jù)所述內(nèi)存sro芯片上讀取的sro信息,初始化微控制單元MCU ;
[0042]作為本發(fā)明的一個實(shí)施示例,所述根據(jù)所述內(nèi)存sro芯片上讀取的sro信息,初始化微控制單元MCU步驟是指在飛騰平臺中,固件執(zhí)行memory leveling操作。B1S利用sro信息中的模塊大小、數(shù)據(jù)寬度、速度以及電壓等信息來合適配置內(nèi)存以達(dá)到最好的性能和可靠性。
[0043]進(jìn)一步地,所述步驟S105后還包括:
[0044]將所述內(nèi)存sro芯片的sro信息更新到所述第一存儲區(qū)中。
[0045]在MCU初始化結(jié)束后,系統(tǒng)正常開機(jī)。
[0046]在步驟S106中,加載第一存儲區(qū)中的sro信息,系統(tǒng)正常開機(jī);
[0047]