專利名稱:一種新型ddriii內(nèi)存識別和初始化方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)設(shè)計(jì)中DDRIII內(nèi)存識別和初始化技術(shù)領(lǐng)域,具體說是一種新型DDRIII內(nèi)存識別和初始化方法。
背景技術(shù):
嵌入式系統(tǒng)設(shè)計(jì)中,已經(jīng)越來越多的使用DDRIII (雙倍速率同步動(dòng)態(tài)隨機(jī)存儲器第三代)內(nèi)存,且由于空間和可靠性原因,一般都是將DDRIII內(nèi)存芯片貼于電路板之上。眾所周知,不同于其他芯片,DDRIII內(nèi)存芯片本身是不提供接口訪問和內(nèi)部也不會(huì)設(shè)置內(nèi)存芯片的識別號碼的,所以,如果系統(tǒng)單板設(shè)計(jì)時(shí)需要使用并識別不同型號和容量大小的內(nèi)存時(shí),就面臨一個(gè)內(nèi)存識別以及讀取和配置內(nèi)存控制器相關(guān)時(shí)序參數(shù)的問題,不能正確的識別出內(nèi)存,就不能正確的初始化內(nèi)存。傳統(tǒng)的嵌入式系統(tǒng)設(shè)計(jì)中,解決正確識別DDRIII內(nèi)存問題的方法之一是使用固定一種型號的DDRIII內(nèi)存芯片,將初始化數(shù)據(jù)固化在啟動(dòng)代碼里,這種方法的缺點(diǎn)是開發(fā)難度大,調(diào)試周期長,生產(chǎn)物料采購范圍小,且易受供貨廠家產(chǎn)能影響。另一種常用的方法,比如內(nèi)存條,是使用一片電子可擦寫式只讀存儲器EEPR0M,依照一定的數(shù)據(jù)格式(電子元件工業(yè)聯(lián)合會(huì)JEDEC制定的SPD(串行配置檢測)規(guī)范)將內(nèi)存相關(guān)的存儲容量大小、內(nèi)存類型、時(shí)序、物理尺寸等參數(shù)存儲起來,處理器通過I2C(內(nèi)部整合電路)接口讀取該信息,BootLoader (系統(tǒng)啟動(dòng)程序)使用這些信息初始化DDRIII控制器和內(nèi)存芯片。相對于嵌入式系統(tǒng)設(shè)計(jì),這種方法的缺點(diǎn)是不靈活,EEPROM是要焊接在電路板上的,產(chǎn)品定型后,換一種型號內(nèi)存芯片,其內(nèi)容也要相應(yīng)更新,燒寫更新EEPROM不方便,調(diào)試時(shí)需要反復(fù)更新時(shí)序參數(shù)的配置,那就更不便了。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種新型DDRIII內(nèi)存識別和初始化方法,降低開發(fā)難度,電路設(shè)計(jì)可擴(kuò)展性更好,調(diào)試簡單方便,生產(chǎn)物料選擇范圍更廣。為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是一種新型DDRIII內(nèi)存識別和初始化方法,所述DDRIII內(nèi)存為內(nèi)存裸片,其特征在于采用可編程邏輯器件CPLD存儲內(nèi)存芯片相關(guān)信息,且數(shù)據(jù)存儲格式在串行配置檢測 SPD規(guī)范基礎(chǔ)上有四點(diǎn)不同e、地址1處,是PPD的版本號;f、地址3處,定義的是內(nèi)存芯片組訪問的模式,非緩沖型還是寄存器型;g、地址32處,定義的是內(nèi)存芯片生產(chǎn)廠家對應(yīng)編碼;h、地址33到125和地址128到255都是定義的備用;此種新的數(shù)據(jù)存儲格式稱為并行配置探測PPD規(guī)范,處理器訪問可編程邏輯器件CPLD的總線采用處理器通常都具備的本地并行總線,處理器的系統(tǒng)啟動(dòng)程序bootloader程序通過本地并行總線讀取存儲在CPLD里的內(nèi)存相關(guān)信息,然后使用讀取到的信息對內(nèi)存控制器進(jìn)行初始化,內(nèi)存相關(guān)信息的存儲及其總線訪問邏輯接口,是通過在CPLD里做邏輯來實(shí)現(xiàn)的。在上述技術(shù)方案的基礎(chǔ)上,所述存儲在CPLD里的內(nèi)存相關(guān)信息至少包括內(nèi)存芯片的密度和物理片選數(shù)、芯片地址的行數(shù)和列數(shù)、時(shí)序參數(shù)、內(nèi)存芯片組訪問的模式、內(nèi)存芯片生產(chǎn)廠家對應(yīng)編碼。在上述技術(shù)方案的基礎(chǔ)上,CPLD邏輯設(shè)定bootloader要訪問的地址和數(shù)據(jù)寬度, 按照設(shè)定的地址排列順序?qū)⒋鎯υ贑PLD里的內(nèi)存相關(guān)信息讀出來。在上述技術(shù)方案的基礎(chǔ)上,CPLD邏輯設(shè)定bootloader要訪問的地址和數(shù)據(jù)寬度取8位數(shù)據(jù)寬度和8位地址寬度。在上述技術(shù)方案的基礎(chǔ)上,利用CPLD的目標(biāo)文件能通過其聯(lián)合測試行為組織 JTAG接口通過PC機(jī)專用線纜實(shí)時(shí)在線下載功能,來改變存儲在CPLD里的內(nèi)存相關(guān)信息中的需要調(diào)整的內(nèi)存參數(shù)的配置。在上述技術(shù)方案的基礎(chǔ)上,具體步驟為步驟1,配置完P(guān)PD,將邏輯編譯成目標(biāo)文件,編譯的目標(biāo)文件通過JTAG下載線纜下載到CPLD中,步驟2,將處理器和CPLD所在電路復(fù)位或重新上電,開始測試過程,步驟3,BootLoader程序通過本地并行總線讀取內(nèi)存參數(shù),其內(nèi)部程序根據(jù)讀到的信息,自動(dòng)計(jì)算出處理器需要的寄存器值,將數(shù)量眾多的控制器的寄存器自動(dòng)的初始化并啟動(dòng),步驟4,用戶通過調(diào)試端口對內(nèi)存讀寫進(jìn)行測試,如測試不成功,返回,檢查修改 PPD配置參數(shù),再重復(fù)步驟1到步驟4,直至測試成功。本發(fā)明所述的新型DDRIII內(nèi)存識別和初始化方法,采用新的存儲方式和總線訪問方式,降低開發(fā)難度,電路設(shè)計(jì)可擴(kuò)展性更好,調(diào)試簡單方便,生產(chǎn)物料選擇范圍更廣。
本發(fā)明有如下附圖圖1本地并行總線接口原理示意圖,圖2DDRI11初始化調(diào)試流程圖。
具體實(shí)施例方式以下結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)說明。本發(fā)明所述的新型DDRIII內(nèi)存識別和初始化方法,存儲內(nèi)存芯片相關(guān)信息的存儲介質(zhì)采用CPLD (可編程邏輯器件),數(shù)據(jù)存儲格式與DDR3SPD規(guī)范只有四點(diǎn)不同,我們稱這種新定義的數(shù)據(jù)存儲格式為PPD(并行配置探測)規(guī)范,這四點(diǎn)不同具體是地址1處, SPD規(guī)范是SPD版本號,PPD規(guī)范是PPD的版本號;地址3處,SPD規(guī)范定義的是內(nèi)存模塊的類型,PPD規(guī)范定義的是內(nèi)存芯片組訪問的模式,非緩沖型還是寄存器型;地址32處,SPD規(guī)范定義的是備用,PPD規(guī)范定義的是內(nèi)存芯片生產(chǎn)廠家對應(yīng)編碼;最后一點(diǎn)不同是PPD規(guī)范里地址33到125和地址128到255都是定義的備用,而SPD規(guī)范里有些有定義具體內(nèi)容, 有的是定義的備用。處理器訪問存儲介質(zhì)(即CPLD)的總線采用處理器通常都具備的本地并行總線(本發(fā)明只適用于有本地并行總線的處理器)。處理器的bootloader程序(系統(tǒng)啟動(dòng)程序)可以通過本地并行總線讀取存儲在 CPLD里的內(nèi)存相關(guān)信息,比如內(nèi)存芯片的密度和物理片選數(shù)、芯片地址的行數(shù)和列數(shù)、時(shí)序參數(shù)等等,然后使用讀取到的信息對內(nèi)存控制器進(jìn)行初始化。而內(nèi)存相關(guān)信息的存儲及其總線訪問邏輯接口,是通過在CPLD里做邏輯來實(shí)現(xiàn)的。這里以飛思卡爾的雙核處理器P2020為例,DDRIII數(shù)據(jù)傳輸速率667MT/s,使用2 個(gè)物理片選,DDR3內(nèi)存芯片使用8片美光公司的MT41JU8M16HA-15E(內(nèi)存芯片型號,單顆粒容量2G bit)。給出CPLD的可編程邏輯描述語言的實(shí)例如下
林 林林 ** *** * * *
權(quán)利要求
1.一種新型DDRIII內(nèi)存識別和初始化方法,所述DDRIII內(nèi)存為內(nèi)存裸片,其特征在于采用可編程邏輯器件CPLD存儲內(nèi)存芯片相關(guān)信息,且數(shù)據(jù)存儲格式在串行配置檢測 SPD規(guī)范基礎(chǔ)上有四點(diǎn)不同a、地址1處,是PPD的版本號;b、地址3處,定義的是內(nèi)存芯片組訪問的模式,非緩沖型還是寄存器型;C、地址32處,定義的是內(nèi)存芯片生產(chǎn)廠家對應(yīng)編碼;d、地址33到125和地址128到255都是定義的備用;此種新的數(shù)據(jù)存儲格式稱為并行配置探測PPD規(guī)范,處理器訪問可編程邏輯器件CPLD的總線采用處理器通常都具備的本地并行總線,處理器的系統(tǒng)啟動(dòng)程序bootloader程序通過本地并行總線讀取存儲在CPLD里的內(nèi)存相關(guān)信息,然后使用讀取到的信息對內(nèi)存控制器進(jìn)行初始化,內(nèi)存相關(guān)信息的存儲及其總線訪問邏輯接口,是通過在CPLD里做邏輯來實(shí)現(xiàn)的。
2.如權(quán)利要求1所述的新型DDRIII內(nèi)存識別和初始化方法,其特征在于所述存儲在CPLD里的內(nèi)存相關(guān)信息至少包括內(nèi)存芯片的密度和物理片選數(shù)、芯片地址的行數(shù)和列數(shù)、時(shí)序參數(shù)、內(nèi)存芯片組訪問的模式、內(nèi)存芯片生產(chǎn)廠家對應(yīng)編碼。
3.如權(quán)利要求1所述的新型DDRIII內(nèi)存識別和初始化方法,其特征在于CPLD邏輯設(shè)定bootloader要訪問的地址和數(shù)據(jù)寬度,按照設(shè)定的地址排列順序?qū)⒋鎯υ贑PLD里的內(nèi)存相關(guān)信息讀出來。
4.如權(quán)利要求3所述的新型DDRIII內(nèi)存識別和初始化方法,其特征在于CPLD邏輯設(shè)定bootloader要訪問的地址和數(shù)據(jù)寬度取8位數(shù)據(jù)寬度和8位地址寬度。
5.如權(quán)利要求1所述的新型DDRIII內(nèi)存識別和初始化方法,其特征在于利用CPLD的目標(biāo)文件能通過其聯(lián)合測試行為組織JTAG接口通過PC機(jī)專用線纜實(shí)時(shí)在線下載功能,來改變存儲在CPLD里的內(nèi)存相關(guān)信息中的需要調(diào)整的內(nèi)存參數(shù)的配置。
6.如權(quán)利要求1所述的新型DDRIII內(nèi)存識別和初始化方法,其特征在于,具體步驟為步驟1,配置完P(guān)PD,將邏輯編譯成目標(biāo)文件,編譯的目標(biāo)文件通過JTAG下載線纜下載到CPLD中,步驟2,將處理器和CPLD所在電路復(fù)位或重新上電,開始測試過程,步驟3,BootLoader程序通過本地并行總線讀取內(nèi)存參數(shù),其內(nèi)部程序根據(jù)讀到的信息,自動(dòng)計(jì)算出處理器需要的寄存器值,將數(shù)量眾多的控制器的寄存器自動(dòng)的初始化并啟動(dòng),步驟4,用戶通過調(diào)試端口對內(nèi)存讀寫進(jìn)行測試,如測試不成功,返回,檢查修改PPD配置參數(shù),再重復(fù)步驟1到步驟4,直至測試成功。
全文摘要
本發(fā)明涉及一種新型DDRIII內(nèi)存識別和初始化方法,所述DDRIII內(nèi)存為內(nèi)存裸片,采用可編程邏輯器件CPLD存儲內(nèi)存芯片相關(guān)信息,且數(shù)據(jù)存儲格式在串行配置檢測SPD規(guī)范基礎(chǔ)上有四點(diǎn)不同;處理器訪問可編程邏輯器件CPLD的總線采用處理器通常都具備的本地并行總線,處理器的系統(tǒng)啟動(dòng)程序bootloader程序通過本地并行總線讀取存儲在CPLD里的內(nèi)存相關(guān)信息,然后使用讀取到的信息對內(nèi)存控制器進(jìn)行初始化,內(nèi)存相關(guān)信息的存儲及其總線訪問邏輯接口,是通過在CPLD里做邏輯來實(shí)現(xiàn)的。本發(fā)明所述的新型DDRIII內(nèi)存識別和初始化方法,降低開發(fā)難度,電路設(shè)計(jì)可擴(kuò)展性更好,調(diào)試簡單方便,生產(chǎn)物料選擇范圍更廣。
文檔編號G06F12/06GK102306127SQ201110223228
公開日2012年1月4日 申請日期2011年8月5日 優(yōu)先權(quán)日2011年8月5日
發(fā)明者李傳寶 申請人:烽火通信科技股份有限公司