專(zhuān)利名稱(chēng):支持16位和32位字寬存儲(chǔ)器的啟動(dòng)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)讀取的方法和裝置,尤其涉及讀取非易失性存儲(chǔ)器的數(shù)據(jù)的方法和裝置。
背景技術(shù):
軟硬件結(jié)合系統(tǒng)是在硬件結(jié)構(gòu)的基礎(chǔ)上進(jìn)行軟件開(kāi)發(fā),提供面向用戶的應(yīng)用。基于軟件的靈活和易修改性,在不改變硬件的基礎(chǔ)上可以提供多種應(yīng)用。這類(lèi)軟硬件結(jié)合系統(tǒng),例如,計(jì)算機(jī)、手機(jī)以及所有電腦控制的消費(fèi)品,都是在系統(tǒng)上電后,啟動(dòng)軟件代碼,與硬件協(xié)作完成所需的功能應(yīng)用。而這些軟件代碼必須保證存放在非易失性存儲(chǔ)器中,并且在系統(tǒng)上電后,硬件系統(tǒng)會(huì)自動(dòng)到該存儲(chǔ)器中取指令并執(zhí)行。
在處理芯片內(nèi)部,存儲(chǔ)器的地址都是以字節(jié)為單位的,即一個(gè)存儲(chǔ)地址對(duì)應(yīng)8位數(shù)據(jù)。通常32位處理器都認(rèn)為每一個(gè)PC地址(內(nèi)部程序指針地址)對(duì)應(yīng)一個(gè)32位的數(shù)據(jù)。因此在芯片內(nèi)部PC地址的最低兩位是不關(guān)心的。在利用芯片進(jìn)行電路板設(shè)計(jì)時(shí),用戶既可能選用32位數(shù)據(jù)寬度的存儲(chǔ)器也可能選用16位寬度的存儲(chǔ)器。這點(diǎn)從芯片設(shè)計(jì)的角度是不可預(yù)知的。需要芯片內(nèi)部的存儲(chǔ)控制器來(lái)做32位和16位數(shù)據(jù)寬度的轉(zhuǎn)換。
如果外部存儲(chǔ)器的數(shù)據(jù)寬度是32位,則一個(gè)芯片內(nèi)部的一個(gè)32位存儲(chǔ)器地址訪問(wèn)直接對(duì)應(yīng)外部的一個(gè)外部存儲(chǔ)器地址訪問(wèn),存儲(chǔ)控制器將芯片內(nèi)部地址除以4(丟掉內(nèi)部地址的最低兩位)作為外部存儲(chǔ)器地址;如果外部存儲(chǔ)器的數(shù)據(jù)寬度是16位,存儲(chǔ)控制器將芯片內(nèi)部地址除以2(丟掉內(nèi)部地址的最低一位)作為外部存儲(chǔ)器地址,這時(shí),一個(gè)芯片內(nèi)部的32位存儲(chǔ)器訪問(wèn)會(huì)對(duì)應(yīng)兩個(gè)外部的存儲(chǔ)器地址,即每次一個(gè)內(nèi)部的32位存儲(chǔ)器訪問(wèn)會(huì)產(chǎn)生兩個(gè)外部的16位存儲(chǔ)器訪問(wèn),存儲(chǔ)控制器將兩次16位的數(shù)據(jù)訪問(wèn)合并成一個(gè)32位的數(shù)據(jù)完成一次芯片內(nèi)部的32位存儲(chǔ)器訪問(wèn)。
由于不同的外部存儲(chǔ)器數(shù)據(jù)寬度的配置會(huì)導(dǎo)致同樣的內(nèi)部地址輸出不同的外部地址,所以即使PC地址不變,改變存儲(chǔ)控制器的存儲(chǔ)器寬度配置會(huì)使外部的存儲(chǔ)器地址變化。例如,處理器對(duì)PC=0x0000001C進(jìn)行訪問(wèn)時(shí),配置為16位數(shù)據(jù)寬度時(shí)外部地址是0x0000000E,而且存儲(chǔ)器會(huì)自動(dòng)插入一個(gè)對(duì)地址0x0000000F的訪問(wèn);而配置32位數(shù)據(jù)寬度時(shí)外部地址是0x00000007。
非易失性存儲(chǔ)器可能是16位字寬,也可能是32位字寬。如果存儲(chǔ)控制器原來(lái)配置的存儲(chǔ)器字寬和實(shí)際使用的存儲(chǔ)器字寬不同,處理器將不能正確從外部存儲(chǔ)器取指。為了保證系統(tǒng)硬件可以正確的從存儲(chǔ)器中取指令并執(zhí)行,目前是從硬件上更改設(shè)計(jì),為芯片提供額外的硬件管腳來(lái)做存儲(chǔ)器寬度的配置,使之支持16位字寬或者32位字寬的存儲(chǔ)器。這會(huì)導(dǎo)致僅僅由于存儲(chǔ)器字寬的不同,就需要提供兩種類(lèi)型的硬件結(jié)構(gòu),而硬件結(jié)構(gòu)的更改會(huì)帶來(lái)很大的開(kāi)銷(xiāo)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種不需改變硬件結(jié)構(gòu),即可支持16位和32位字寬存儲(chǔ)器的啟動(dòng)方法。
為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種支持16位和32位字寬存儲(chǔ)器的啟動(dòng)方法,應(yīng)用于包括處理器、存儲(chǔ)控制器和非易失性存儲(chǔ)器的32位總線的系統(tǒng),包括以下步驟(a)采用寄存器相應(yīng)控制位的值來(lái)設(shè)置存儲(chǔ)控制器所適應(yīng)的存儲(chǔ)器字寬,初始設(shè)置為16位,對(duì)16位字寬的非易失性存儲(chǔ)器可正常取指并執(zhí)行;(b)對(duì)32位字寬的非易失性存儲(chǔ)器,從起始位置依次設(shè)置第一至第四存儲(chǔ)區(qū),在第一、第三存儲(chǔ)區(qū),每條32位指令的高、低16位分別放入相鄰的兩個(gè)存儲(chǔ)器單元,在第二、第四存儲(chǔ)區(qū),每條32位指令直接放入一個(gè)存儲(chǔ)器單元;(c)系統(tǒng)啟動(dòng),在第一存儲(chǔ)區(qū)執(zhí)行了在該區(qū)存放的第一跳轉(zhuǎn)指令后,轉(zhuǎn)入第三存儲(chǔ)區(qū)繼續(xù)執(zhí)行;(d)在第三存儲(chǔ)區(qū)執(zhí)行在該區(qū)存放的修改所述控制位值的指令,將所述存儲(chǔ)控制器的存儲(chǔ)器字寬設(shè)置改為32位,自動(dòng)轉(zhuǎn)入第二存儲(chǔ)區(qū)繼續(xù)執(zhí)行;(e)在第二存儲(chǔ)區(qū)執(zhí)行了在該區(qū)存放的第二跳轉(zhuǎn)指令后,轉(zhuǎn)入第四存儲(chǔ)區(qū)繼續(xù)執(zhí)行在該區(qū)存放的指令。
上述方法可具有以下特點(diǎn)在所述第一、第三存儲(chǔ)區(qū),每條32位指令的低16位和高16位均放在存儲(chǔ)器單元的低16位。
上述方法可具有以下特點(diǎn)在所述第一、第三存儲(chǔ)區(qū),每條32位指令的低16位放在偶數(shù)標(biāo)號(hào)的存儲(chǔ)器單元,而該指令的高16位放在比偶數(shù)標(biāo)號(hào)大1的相鄰存儲(chǔ)器單元。
上述方法可具有以下特點(diǎn)所述步驟(c)在執(zhí)行第一跳轉(zhuǎn)指令之前,先執(zhí)行在第一存儲(chǔ)區(qū)該跳轉(zhuǎn)指令之前存放的設(shè)置芯片內(nèi)部寄存器的指令。
上述方法可具有以下特點(diǎn)所述第一跳轉(zhuǎn)指令、第二跳轉(zhuǎn)指令、修改所述控制位值的指令,及第四存儲(chǔ)區(qū)的指令之間存放有若干的空指令。
本發(fā)明要解決的另一技術(shù)問(wèn)題是提供一種不需改變硬件結(jié)構(gòu),即可支持16位和32位字寬存儲(chǔ)器的啟動(dòng)裝置。
為了解決以上技術(shù)問(wèn)題,本發(fā)明提供了一種支持16位和32位字寬存儲(chǔ)器的啟動(dòng)裝置,應(yīng)用于32位總線的硬件系統(tǒng),包括依次連接的處理器、存儲(chǔ)控制器,以及16位或32位非易失性存儲(chǔ)器,其特征在于所述存儲(chǔ)控制器包括一寄存器,該寄存器相應(yīng)控制位的值設(shè)置了所連接存儲(chǔ)器的字寬,初始設(shè)置為16位;所述32位存儲(chǔ)器進(jìn)一步包括第一至第四指令存儲(chǔ)區(qū)域,在第一和第三指令存儲(chǔ)區(qū)域,每條32位指令的高、低16位分別存放在相鄰存儲(chǔ)器單元,在第二和第四指令存儲(chǔ)區(qū)域,每條32位指令存放在一個(gè)存儲(chǔ)器單元,且第一存儲(chǔ)區(qū)域存放有指向第三存儲(chǔ)區(qū)域的第一跳轉(zhuǎn)指令,第二存儲(chǔ)區(qū)域存放有指向第四存儲(chǔ)區(qū)域的第二跳轉(zhuǎn)指令,第三存儲(chǔ)區(qū)存放有修改所述控制位值的指令;所述處理器用于在啟動(dòng)后從所述32位存儲(chǔ)器取指執(zhí)行,在第一指令存儲(chǔ)區(qū)域執(zhí)行所述第一跳轉(zhuǎn)指令后,轉(zhuǎn)入第三指令存儲(chǔ)區(qū)域;在第三指令存儲(chǔ)區(qū)域執(zhí)行所述修改控制位值的指令后,將所述存儲(chǔ)控制器的存儲(chǔ)器字寬設(shè)置改為32位,自動(dòng)轉(zhuǎn)入第二指令存儲(chǔ)區(qū)域;在第二指令存儲(chǔ)區(qū)域執(zhí)行了所述第二跳轉(zhuǎn)指令后,轉(zhuǎn)入第四指令存儲(chǔ)區(qū)域繼續(xù)執(zhí)行在該區(qū)存放的指令。
上述啟動(dòng)裝置可具有以下特點(diǎn)在所述第一和第三指令存儲(chǔ)區(qū)域,每條32位指令的高、低16位分別存放在相鄰存儲(chǔ)器單元的低16位。
上述啟動(dòng)裝置可具有以下特點(diǎn)所述處理器在執(zhí)行所述第一跳轉(zhuǎn)指令、修改所述控制位值的指令、第二跳轉(zhuǎn)指令及第四存儲(chǔ)區(qū)的非空指令之間還執(zhí)行若干不進(jìn)行任何操作的空指令。
上述啟動(dòng)裝置可具有以下特點(diǎn)所述處理器在執(zhí)行所述第一跳轉(zhuǎn)指令之前,先執(zhí)行若干設(shè)置芯片內(nèi)部寄存器的指令。
由上可知,本發(fā)明在不更改硬件結(jié)構(gòu)的基礎(chǔ)上,通過(guò)在外部存儲(chǔ)器中采用特別的指令結(jié)構(gòu)放置特定的指令代碼,從而達(dá)到可以利用軟件來(lái)完成對(duì)外部存儲(chǔ)器數(shù)據(jù)寬度的配置,使得相同的硬件結(jié)構(gòu)即可以支持從16位存儲(chǔ)器啟動(dòng),又可以支持從32位存儲(chǔ)器啟動(dòng)。
圖1是本發(fā)明實(shí)施例裝置的結(jié)構(gòu)示意圖。
圖2是本發(fā)明實(shí)施例存儲(chǔ)器指令代碼存放位置的示意圖。
具體實(shí)施例方式
現(xiàn)有技術(shù)是通過(guò)額外管腳的電平來(lái)控制字寬設(shè)置的,本發(fā)明改用存儲(chǔ)控制器寄存器中相應(yīng)的控制位的值來(lái)實(shí)現(xiàn),以避免對(duì)硬件的改動(dòng)。但由于最初的取指令操作發(fā)生在軟件代碼執(zhí)行之前,該控制位的值并不能在一開(kāi)始就用指令直接修改,必須巧妙地對(duì)指令進(jìn)行設(shè)計(jì)。
如圖1所示,本發(fā)明實(shí)施例裝置是一種用于32位總線的硬件系統(tǒng),它包含一款32位處理器1和一個(gè)存儲(chǔ)控制器2,并通過(guò)存儲(chǔ)控制器2與非易失性存儲(chǔ)器3(如,F(xiàn)LASH)相連。
在硬件設(shè)計(jì)時(shí),設(shè)置存儲(chǔ)控制器適應(yīng)的初始存儲(chǔ)器字寬為16位。如果存儲(chǔ)控制器接16位字寬存儲(chǔ)器,硬件系統(tǒng)自然能夠適應(yīng)該存儲(chǔ)器,正常取指并執(zhí)行。假定存儲(chǔ)控制器接的是32位字寬存儲(chǔ)器,本實(shí)施例通過(guò)增加一部分軟件代碼以及巧妙地設(shè)計(jì)這些代碼在存儲(chǔ)器中的存放位置,來(lái)實(shí)現(xiàn)正常的取指和執(zhí)行。
以下是在該存儲(chǔ)器起始位置設(shè)置的指令代碼示例,均為32位MOVr1,#0x02000000;instructionl
ADDr1,r1,#0x10000 ;insruuction2ADDr1,r1,#0xA000 ;instruction3ADDr1,r1,#A4 ;instruction4LDRr0,[r1] ;instruction5LDRpc,=0x38;instruction6NOP ;instruction7NOP ;instruction8NOP ;instruction9NOP ;instruction10NOP ;instruction11NOP ;instruction12NOP ;instruction13NOP ;instruction14NOP ;instruction15NOP ;instruction16NOP ;instruction17NOP ;instruction18LDRpc,=0xA0;instruction19NOP ;instruction20NOP ;instruction21NOP ;instruction22ORRr0,r0,#0x00000080 ;instruction23STRr0,[r1] ;instruction24NOP ;instruction25NOP ;instruction26NOP ;instruction27NOP ;instruction28NOP ;instruction29NOP ;instruction30LDR ;instruction31
其中指令1到指令5為設(shè)置芯片內(nèi)部寄存器的代碼;指令6為跳轉(zhuǎn)指令,跳到指令23的位置;指令7到指令18為空指令,不做任何實(shí)質(zhì)操作,只占用處理器的周期,以保證處理器進(jìn)行安全跳轉(zhuǎn);指令19為跳轉(zhuǎn)指令,跳到指令29的位置;指令20到指令22為空指令;指令23和24完成對(duì)存儲(chǔ)控制器寄存器中相位的字寬設(shè)置控制位的修改,由16位改為32位;指令25到30是空指令;指令31為其它需要執(zhí)行的啟動(dòng)指令。各個(gè)指令均為32位指令。
圖2示出了所需軟件代碼在存儲(chǔ)器中的正確放置方法,圖中有陰影的框表示存放有指令數(shù)據(jù)指令1到指令6,由于此時(shí)的存儲(chǔ)器字寬設(shè)置為16位,為了保證正常取指執(zhí)行,將32位指令的高16位放置在奇數(shù)標(biāo)號(hào)的存儲(chǔ)器單元的低16位,將低16位放置在偶數(shù)標(biāo)號(hào)的存儲(chǔ)器單元的低16位;指令7到指令22,為了保證存儲(chǔ)器字寬設(shè)置改變后,回跳到該區(qū)域時(shí)能夠正確取指令,將每條32位指令放入一個(gè)存儲(chǔ)器單元(32位)中;指令23到指令28,是在存儲(chǔ)器字寬設(shè)置為16位的情況下需要執(zhí)行的指令,所以也按照指令1到指令6的規(guī)則來(lái)放置;從指令29開(kāi)始,按照每條32位指令,占用一個(gè)存儲(chǔ)器字寬的規(guī)則存入存儲(chǔ)器中。
從存放方式來(lái)劃分,可以將指令1到指令6所存放的區(qū)域劃分為第一指令存儲(chǔ)區(qū)域,將指令7到指令22所存放的區(qū)域劃分為第二指令存儲(chǔ)區(qū)域,將指令23到指令28所存放的區(qū)域劃分為第三指令存儲(chǔ)區(qū)域,將從指令29所在位置以后劃分為第四指令存儲(chǔ)區(qū)域。
圖2還示出了軟件啟動(dòng)的執(zhí)行順序開(kāi)始存儲(chǔ)控制器的設(shè)置為16位字寬,從指令1到指令5進(jìn)行芯片內(nèi)部寄存器的設(shè)置,執(zhí)行到指令6后,改變PC值,處理器取指位置發(fā)生變化,所以跳到第23條指令的位置;繼續(xù)執(zhí)行指令23和24,將存儲(chǔ)控制器的存儲(chǔ)器字寬設(shè)置更改為32位,由于該字寬設(shè)置的改變,雖然PC不變,但是處理器通過(guò)存儲(chǔ)器取指令的外部存儲(chǔ)器地址發(fā)生了改變,因而在執(zhí)行完指令26后,會(huì)跳轉(zhuǎn)回指令12所在的物理地址取指并執(zhí)行;繼續(xù)執(zhí)行到跳轉(zhuǎn)指令19,然后跳轉(zhuǎn)到指令29進(jìn)入正常32位指令存放區(qū),此時(shí)存儲(chǔ)控制器的存儲(chǔ)器字寬設(shè)置已與實(shí)際存儲(chǔ)器字寬一致且指令是按正常方式存放,即可正常取指并執(zhí)行了。
綜上所述,本發(fā)明在不更改硬件結(jié)構(gòu)的基礎(chǔ)上,巧妙的利用了存儲(chǔ)控制器和外部存儲(chǔ)器的特點(diǎn),通過(guò)在外部存儲(chǔ)器中采用特別的指令結(jié)構(gòu)放置特定的指令代碼,從而達(dá)到可以利用軟件來(lái)完成對(duì)外部存儲(chǔ)器數(shù)據(jù)寬度的配置,使得相同的硬件結(jié)構(gòu)即可以支持從16位存儲(chǔ)器啟動(dòng),又可以支持從32位存儲(chǔ)器啟動(dòng),避免了硬件結(jié)構(gòu)的更改帶來(lái)的開(kāi)銷(xiāo)。
權(quán)利要求
1.一種支持16位和32位字寬存儲(chǔ)器的啟動(dòng)方法,應(yīng)用于包括處理器、存儲(chǔ)控制器和非易失性存儲(chǔ)器的32位總線的系統(tǒng),包括以下步驟(a)采用寄存器相應(yīng)控制位的值來(lái)設(shè)置存儲(chǔ)控制器所適應(yīng)的存儲(chǔ)器字寬,初始設(shè)置為16位,對(duì)16位字寬的非易失性存儲(chǔ)器可正常取指并執(zhí)行;(b)對(duì)32位字寬的非易失性存儲(chǔ)器,從起始位置依次設(shè)置第一至第四存儲(chǔ)區(qū),在第一、第三存儲(chǔ)區(qū),每條32位指令的高、低16位分別放入相鄰的兩個(gè)存儲(chǔ)器單元,在第二、第四存儲(chǔ)區(qū),每條32位指令直接放入一個(gè)存儲(chǔ)器單元;(c)系統(tǒng)啟動(dòng),在第一存儲(chǔ)區(qū)執(zhí)行了在該區(qū)存放的第一跳轉(zhuǎn)指令后,轉(zhuǎn)入第三存儲(chǔ)區(qū)繼續(xù)執(zhí)行;(d)在第三存儲(chǔ)區(qū)執(zhí)行在該區(qū)存放的修改所述控制位值的指令,將所述存儲(chǔ)控制器的存儲(chǔ)器字寬設(shè)置改為32位,自動(dòng)轉(zhuǎn)入第二存儲(chǔ)區(qū)繼續(xù)執(zhí)行;(e)在第二存儲(chǔ)區(qū)執(zhí)行了在該區(qū)存放的第二跳轉(zhuǎn)指令后,轉(zhuǎn)入第四存儲(chǔ)區(qū)繼續(xù)執(zhí)行在該區(qū)存放的指令。
2.如權(quán)利要求1所述的方法,其特征在于,在所述第一、第三存儲(chǔ)區(qū),每條32位指令的低16位和高16位均放在存儲(chǔ)器單元的低16位。
3.如權(quán)利要求1所述的方法,其特征在于,在所述第一、第三存儲(chǔ)區(qū),每條32位指令的低16位放在偶數(shù)標(biāo)號(hào)的存儲(chǔ)器單元,高16位放在比偶數(shù)標(biāo)號(hào)大1的相鄰存儲(chǔ)器單元。
4.如權(quán)利要求1所述的方法,其特征在于,所述步驟(c)在執(zhí)行所述第一跳轉(zhuǎn)指令之前,先執(zhí)行在第一存儲(chǔ)區(qū)該跳轉(zhuǎn)指令之前存放的設(shè)置芯片內(nèi)部寄存器的指令。
5.如權(quán)利要求1所述的方法,其特征在于,所述第一跳轉(zhuǎn)指令、第二跳轉(zhuǎn)指令、修改所述控制位值的指令,及第四存儲(chǔ)區(qū)的指令之間存放有若干的空指令。
6.一種支持16位和32位字寬存儲(chǔ)器的啟動(dòng)裝置,應(yīng)用于32位總線的硬件系統(tǒng),包括依次連接的處理器、存儲(chǔ)控制器,以及16位或32位非易失性存儲(chǔ)器,其特征在于所述存儲(chǔ)控制器包括一寄存器,該寄存器相應(yīng)控制位的值設(shè)置了所連接存儲(chǔ)器的字寬,初始設(shè)置為16位;所述32位存儲(chǔ)器進(jìn)一步包括第一至第四指令存儲(chǔ)區(qū)域,在第一和第三指令存儲(chǔ)區(qū)域,每條32位指令的高、低16位分別存放在相鄰存儲(chǔ)器單元,在第二和第四指令存儲(chǔ)區(qū)域,每條32位指令存放在一個(gè)存儲(chǔ)器單元,且第一存儲(chǔ)區(qū)域存放有指向第三存儲(chǔ)區(qū)域的第一跳轉(zhuǎn)指令,第二存儲(chǔ)區(qū)域存放有指向第四存儲(chǔ)區(qū)域的第二跳轉(zhuǎn)指令,第三存儲(chǔ)區(qū)存放有修改所述控制位值的指令;所述處理器用于在啟動(dòng)后從所述32位存儲(chǔ)器取指執(zhí)行,在第一指令存儲(chǔ)區(qū)域執(zhí)行所述第一跳轉(zhuǎn)指令后,轉(zhuǎn)入第三指令存儲(chǔ)區(qū)域;在第三指令存儲(chǔ)區(qū)域執(zhí)行所述修改控制位值的指令后,將所述存儲(chǔ)控制器的存儲(chǔ)器字寬設(shè)置改為32位,自動(dòng)轉(zhuǎn)入第二指令存儲(chǔ)區(qū)域;在第二指令存儲(chǔ)區(qū)域執(zhí)行了所述第二跳轉(zhuǎn)指令后,轉(zhuǎn)入第四指令存儲(chǔ)區(qū)域繼續(xù)執(zhí)行在該區(qū)存放的指令。
7.如權(quán)利要求6所述的啟動(dòng)裝置,其特征在于,在所述第一和第三指令存儲(chǔ)區(qū)域,每條32位指令的高、低16位分別存放在相鄰存儲(chǔ)器單元的低16位。
8.如權(quán)利要求6所述的啟動(dòng)裝置,其特征在于,所述處理器在執(zhí)行所述第一跳轉(zhuǎn)指令、修改所述控制位值的指令、第二跳轉(zhuǎn)指令及第四存儲(chǔ)區(qū)的非空指令之間還執(zhí)行若干不進(jìn)行任何操作的空指令。
9.如權(quán)利要求6所述的啟動(dòng)裝置,其特征在于,所述處理器在執(zhí)行所述第一跳轉(zhuǎn)指令之前,先執(zhí)行若干設(shè)置芯片內(nèi)部寄存器的指令。
全文摘要
本發(fā)明公開(kāi)一種支持16位和32位字寬存儲(chǔ)器的啟動(dòng)方法和裝置,應(yīng)用于32位總線的包括處理器、存儲(chǔ)控制器和存儲(chǔ)器的系統(tǒng)。在芯片設(shè)計(jì)時(shí)先設(shè)定寄存器相應(yīng)控制位的值,使存儲(chǔ)控制器適應(yīng)的初始存儲(chǔ)器字寬為16位;對(duì)32位字寬存儲(chǔ)器,依次設(shè)置第一至第四存儲(chǔ)區(qū),在一、三存儲(chǔ)區(qū),32位指令的高、低16位分別放入相鄰兩個(gè)存儲(chǔ)器單元的低16位,在二、四存儲(chǔ)區(qū),每條指令放入一個(gè)存儲(chǔ)器單元;啟動(dòng)后,在第一存儲(chǔ)區(qū)執(zhí)行跳轉(zhuǎn)指令轉(zhuǎn)入第三存儲(chǔ)區(qū),修改所述控制位的值,將存儲(chǔ)控制器的存儲(chǔ)器字寬設(shè)置改為32位,自動(dòng)轉(zhuǎn)入第二存儲(chǔ)區(qū),再執(zhí)行跳轉(zhuǎn)指令轉(zhuǎn)入第四存儲(chǔ)區(qū)繼續(xù)執(zhí)行。本發(fā)明不更改硬件結(jié)構(gòu),即可支持16位和32位字寬的存儲(chǔ)器啟動(dòng)。
文檔編號(hào)G06F9/312GK1584825SQ200410046269
公開(kāi)日2005年2月23日 申請(qǐng)日期2004年6月8日 優(yōu)先權(quán)日2004年6月8日
發(fā)明者劉迪軍, 吳銘 申請(qǐng)人:大唐微電子技術(shù)有限公司