專利名稱:從非線性存儲(chǔ)器引導(dǎo)的制作方法
交叉參考光盤(pán)上附帶的源代碼也構(gòu)成本專利說(shuō)明書(shū)的組成部分.且根據(jù)37 CFR 1以引用的方式全部并入本文中作為一附錄,其包括如下文件02085_0938\CPU_NAND_If\cmd_decode.vhf,1/31/02,2KB;02085_0938\CPU_NAND_If\int_out_bus_mux.vhf,1/31/02,2KB;02085_0938\CPU_NAND_If\io_buff_control.vhf,1/31/02,2KB;02085_0938\CPU_NAND_If\nand_8_bit_if.ucf,1/18/01,2KB;02085_0938\CPU_NAND_If\nand_ce.vhf,1/31/02,2KB;02085_0938\CPU_NAND_If\nand_control-signals.vhf,1/31/02,7KB;02085_0938\CPU_NAND_If\nand_cpu_bus.vhf,1/31/02,6KB;02085_0938\CPU_NAND_If\nand_rd_control.vhf,1/31/02,3KB;02085_0938\CPU_NAND_If\nand_reset_control.vhf,1/31/02,5KB;02085_0938\CPU_NAND_If\nand_wp.vhf,1/31/02,2KB;02085_0938\CPU_NAND_If\nand_wr_control.vhf,1/31/02,8KB;02085_0938\CPU_NAND_If\nce_extend.vhf,1/31/02,2KB;02085_0938\CPU_NAND_If\OCM_start_vl.asm,2/1/02,5KB;02085_0938\CPU_NAND_If\Page_0.img,1/31/02,1KB;02085_0938\CPU_NAND_If\Page_0_readme.txt,7/29/02,1KB;02085_0938\CPU_NAND_If\Page_1.img,1/31/02,1KB;02085_0938\CPU_NAND_If\PowerPC_start_code.asm,4/26/02,9KB;02085_0938\CPU_NAND_If\ppc_start.asm,2/1/02,5KB;02085_0938\CPU_NAND_If\read_only_cntrl.vhf,1/31/02,6KB;02085_0938\CPU_NAND_If\sky_stream.vhf,1/31/02,11KB;02085_0938\CPU_NAND_If\status_register.vhf,1/31/02,2KB;
02085_0938\Hardware Design.doc,7/29/02,30KB.
發(fā)明
背景技術(shù):
領(lǐng)域本發(fā)明是關(guān)于微處理器控制的裝置的引導(dǎo)。
背景技術(shù):
現(xiàn)今各種微處理器控制的“智能”裝置含有非易失性存儲(chǔ)器。特別是非易失性閃速存儲(chǔ)器,因其能夠無(wú)電保持?jǐn)?shù)據(jù)而且可以迅速擦除和重新編程,而在當(dāng)今得到廣泛應(yīng)用。閃速存儲(chǔ)器令人感興趣的一種用途是存儲(chǔ)一裝置在啟動(dòng)時(shí)使用的引導(dǎo)代碼或引導(dǎo)信息。所述引導(dǎo)代碼是存儲(chǔ)于所述裝置上的固件代碼的一部分。使用閃速存儲(chǔ)器存儲(chǔ)引導(dǎo)代碼具有很多好處,因?yàn)榘ㄒ龑?dǎo)代碼在內(nèi)的固件易于修改和更新。
在引導(dǎo)或啟動(dòng)時(shí),一微處理器在一存儲(chǔ)裝置的一個(gè)規(guī)定位置讀取所述代碼。典型的微處理器一般配置為訪問(wèn)和執(zhí)行線性存儲(chǔ)裝置中的代碼。對(duì)線性存儲(chǔ)裝置中的數(shù)據(jù)的訪問(wèn)是通過(guò)讀取一個(gè),一般而言,由所述數(shù)據(jù)的行和列構(gòu)成的一線性地址規(guī)定的存儲(chǔ)單元來(lái)實(shí)現(xiàn)的。對(duì)數(shù)據(jù)的每個(gè)存儲(chǔ)單元、字節(jié)或位的訪問(wèn)是通過(guò)規(guī)定其行和列來(lái)實(shí)現(xiàn)的。所述處理器將順序規(guī)定讀取的線性地址。
在一典型的存儲(chǔ)系統(tǒng)中,用以將數(shù)據(jù)從所述存儲(chǔ)器轉(zhuǎn)移到主機(jī)的協(xié)議如下1)通過(guò)確定芯片選擇線來(lái)選定所述存儲(chǔ)器裝置;2)通過(guò)確定地址總線的地址來(lái)選定讀取的地址;3)確定讀取信號(hào)。所述存儲(chǔ)裝置將響應(yīng)在數(shù)據(jù)總線上確定的數(shù)據(jù)。
一典型程序包括指令數(shù)據(jù),該等指令數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中各個(gè)互不相連或相鄰的存儲(chǔ)區(qū)域中。因此,在執(zhí)行一個(gè)程序時(shí),所述處理器可能會(huì)首先執(zhí)行來(lái)自一個(gè)存儲(chǔ)區(qū)域的一個(gè)地址中的一個(gè)指令,然后再執(zhí)行遠(yuǎn)處或不相鄰的第二個(gè)存儲(chǔ)區(qū)域的第二個(gè)地址中的指令(依此類推,第三個(gè)......)。此外,沒(méi)有一種標(biāo)準(zhǔn)來(lái)規(guī)定一個(gè)邏輯順序,據(jù)以確定從何處開(kāi)始讀取或執(zhí)行。每一程序會(huì)根據(jù)其自己的特定程式從不同的存儲(chǔ)區(qū)域開(kāi)始執(zhí)行。
但是,某些類型的存儲(chǔ)裝置,例如閃速存儲(chǔ)器,尤其是NAND(與非)和AND(與)型閃速存儲(chǔ)器不可線性尋址。這意味著在引導(dǎo)時(shí)所述處理器不能從其讀取或執(zhí)行代碼。NAND存儲(chǔ)器中的存儲(chǔ)空間分解為多個(gè)稱為頁(yè)面的離散數(shù)據(jù)組。為了檢索所述數(shù)據(jù),必須首先規(guī)定頁(yè)面,然后還必須規(guī)定所述數(shù)據(jù)在所述頁(yè)面中的位置,即規(guī)定距所述頁(yè)面開(kāi)頭的區(qū)距。但是,與線性存儲(chǔ)裝置不同的是,如果一頁(yè)面的長(zhǎng)度為例如528字節(jié),如果不先讀完前面的254個(gè)字節(jié),就不能讀取第255個(gè)字節(jié)。另外,只讀一個(gè)字節(jié)是相對(duì)更為復(fù)雜的過(guò)程,其不符合線性存儲(chǔ)器的典型計(jì)時(shí)要求。到目前為止,這使得從非線性存儲(chǔ)器引導(dǎo)仍是一項(xiàng)無(wú)法完成的任務(wù)。
發(fā)明內(nèi)容
從一非線性存儲(chǔ)裝置引導(dǎo)的系統(tǒng)和方法在采用非線性存儲(chǔ)裝置的電子裝置的啟動(dòng)中具有許多應(yīng)用。其可用于引導(dǎo)任何微處理器控制的裝置,例如(但不限于)蜂窩電話、便攜式組織器、計(jì)算機(jī)、全球定位系統(tǒng)以及智能設(shè)備。等待裝置啟動(dòng)非常令人煩惱,不管該裝置是蜂窩電話、計(jì)算機(jī)、便攜式組織器還是任何其它智能裝置。采用本發(fā)明開(kāi)始執(zhí)行引導(dǎo)代碼所需要的時(shí)間明顯短于現(xiàn)有裝置,現(xiàn)有裝置依賴于在執(zhí)行之前對(duì)引導(dǎo)代碼進(jìn)行遮蔽處理。與采用專門(mén)存儲(chǔ)引導(dǎo)代碼的代碼存儲(chǔ)裝置相比,根據(jù)本發(fā)明制造的設(shè)備的成本亦有所降低。
本發(fā)明的第一方面是一種引導(dǎo)一包括一非線性存儲(chǔ)裝置的微處理器控制的裝置的方法。所述方法包括接收一系統(tǒng)復(fù)位信號(hào);及初始化所述非線性存儲(chǔ)裝置,使得所述非線性存儲(chǔ)裝置指向所述非線性存儲(chǔ)裝置內(nèi)的系統(tǒng)引導(dǎo)代碼。所述方法進(jìn)一步包括借助所述微處理器執(zhí)行所述非線性存儲(chǔ)裝置中的系統(tǒng)引導(dǎo)代碼的第一部分。
本發(fā)明的第二方面是一由微處理器控制的裝置,其包括一微處理器、易失性RAM(隨機(jī)存取存儲(chǔ)器)、一非線性存儲(chǔ)器以及一線性存儲(chǔ)器仿真器,所述仿真器可用于將非線性存儲(chǔ)器中的代碼轉(zhuǎn)換為一可由所述微處理器執(zhí)行的線性格式。
本發(fā)明的另一方面是一基于微處理器的系統(tǒng),其包括一可用于讀取線性存儲(chǔ)裝置的微處理器、一非線性存儲(chǔ)裝置以及用于借助可有效讀取線性存儲(chǔ)裝置的所述微處理器執(zhí)行非線性存儲(chǔ)裝置中代碼的構(gòu)件。
圖1A是系統(tǒng)100的一示意圖。
圖1B是系統(tǒng)100運(yùn)行的一概念性圖示。
圖2是一系統(tǒng)100的非線性存儲(chǔ)裝置140的存儲(chǔ)空間的圖示。
圖3是一系統(tǒng)100中使用的并在本專利說(shuō)明中述及的信號(hào)的表格。
圖4是總引導(dǎo)順序的一流程圖。
具體實(shí)施例方式
下文詳細(xì)說(shuō)明本發(fā)明的說(shuō)明性實(shí)施例。由于下文將結(jié)合前述圖紙對(duì)本發(fā)明的這些實(shí)施例予以說(shuō)明,所屬領(lǐng)域的技術(shù)人員可以明顯地看出可對(duì)所說(shuō)明的方法及/或結(jié)構(gòu)做各種修改或改動(dòng)。依賴于本發(fā)明的教示且該些教示據(jù)以推進(jìn)此項(xiàng)技術(shù)的所有此等修改、改動(dòng)或變更均應(yīng)視為包括在本發(fā)明的范圍之內(nèi)。因此,此等說(shuō)明及圖紙不應(yīng)視為具有限制性,因?yàn)閼?yīng)當(dāng)了解,本發(fā)明在任何意義上均非僅限于所舉例說(shuō)明的實(shí)施例。
所述從一非線性存儲(chǔ)器引導(dǎo)的系統(tǒng)及方法在采用非線性存儲(chǔ)裝置的電子裝置的啟動(dòng)方面具有許多用途。雖然本發(fā)明的系統(tǒng)和方法涵蓋含有任何類型的非線性存儲(chǔ)裝置的任何裝置的啟動(dòng),但為舉例說(shuō)明本發(fā)明之目的,將對(duì)NAND閃速存儲(chǔ)器進(jìn)行說(shuō)明。
相對(duì)于從一專門(mén)的代碼存儲(chǔ)裝置(例如ROM(只讀存儲(chǔ)器))引導(dǎo)來(lái)說(shuō),從非線性存儲(chǔ)器引導(dǎo)具有很多優(yōu)點(diǎn)。相對(duì)于在CPU能夠執(zhí)行代碼之前不得不將代碼拷貝或遮蔽進(jìn)RAM存儲(chǔ)器來(lái)說(shuō),從非線性存儲(chǔ)器引導(dǎo)亦具有優(yōu)點(diǎn)。在使用一專門(mén)的代碼存儲(chǔ)裝置(DCSD)的情況下,本發(fā)明降低了采用本發(fā)明之所述系統(tǒng)或方法的電子裝置的成本。在DCSD已被取消但所述裝置仍須首先將引導(dǎo)指令拷貝到RAM中以供所述微處理器或CPU執(zhí)行所述指令并啟動(dòng)所述裝置的情況下,采用本發(fā)明可使啟動(dòng)時(shí)間大幅度縮短。本發(fā)明實(shí)際上可與任何處理器配合工作,與采用一DCSD的系統(tǒng)相比,本發(fā)明可與更多類型的處理器具有更高的兼容性。等待一裝置啟動(dòng)令人非常煩惱,不管該裝置是一蜂窩電話、一計(jì)算機(jī)、一便攜式組織器,還是任何其它智能裝置。采用本發(fā)明開(kāi)始執(zhí)行引導(dǎo)代碼所需的時(shí)間大約就是訪問(wèn)所述非線性存儲(chǔ)裝置的時(shí)間。在NAND實(shí)例中,所述時(shí)間大約為15微秒(micro-second),而在過(guò)去的系統(tǒng)中,開(kāi)始執(zhí)行代碼之前的遮蔽甚至就可能需要數(shù)百毫秒(milli-second)的時(shí)間。
光盤(pán)上的源代碼亦構(gòu)成本說(shuō)明的組成部分,并以引用方式全部并入本文中。
圖1A舉例說(shuō)明系統(tǒng)100。處理器130通過(guò)系統(tǒng)總線115與若干其它裝置相連。系統(tǒng)總線115連接至非線性存儲(chǔ)裝置(NLSD)140、非線性存儲(chǔ)裝置接口(NLI)120、處理器130、易失性隨機(jī)存取存儲(chǔ)器(RAM)150、外圍設(shè)備160和人機(jī)接口裝置170??刂凭€142將NLSD 140和NLI 120連接在一起。NLI 120包括一可編程邏輯裝置或特定用途集成電路或集成至一芯片中的邏輯門(mén),所述芯片有時(shí)被稱為一系統(tǒng)芯片(system in a chip)。NLI 120亦包括在前述裝置中執(zhí)行的邏輯。外圍設(shè)備160可以是打印機(jī)或其它輸出設(shè)備或另外的驅(qū)動(dòng)器和所屬技術(shù)領(lǐng)域內(nèi)熟知的任何其它外圍設(shè)備。人機(jī)接口裝置是諸如一鍵盤(pán)、顯示器、鼠標(biāo)、麥克風(fēng)或揚(yáng)聲器之類的物件,且同樣亦在所屬技術(shù)領(lǐng)域內(nèi)眾所周知。由于本發(fā)明在諸如蜂窩電話之類的便攜式裝置具有特別的優(yōu)勢(shì),因此其外圍設(shè)備和人機(jī)接口裝置全部集成為一體,但是其仍可為傳統(tǒng)的單獨(dú)部件。
如上文所述,在本優(yōu)選實(shí)施例中,NLSD140包括NAND型閃速存儲(chǔ)器。NLSD 140中存儲(chǔ)有引導(dǎo)代碼146。引導(dǎo)載入程序144可以視為引導(dǎo)代碼146的組成部分,或者亦可視其為獨(dú)立存在。與系統(tǒng)總線115相連的每一連接線路均可進(jìn)行雙向通信且可包括多條線路,雖然為清晰起見(jiàn),圖中僅描述一單一線路。盡管往來(lái)于NLSD 140的數(shù)據(jù)傳輸均通過(guò)系統(tǒng)總線115實(shí)施,但圖1B中提供了一關(guān)于所述數(shù)據(jù)流動(dòng)的概念性說(shuō)明,以強(qiáng)調(diào)引導(dǎo)載入程序144是通過(guò)接口120直接從NLSD 140執(zhí)行。
NLSD 140的存儲(chǔ)空間在圖2中作了進(jìn)一步的描述。NLSD 140是一個(gè)多用途存儲(chǔ)裝置,用于存儲(chǔ)所有類型的用戶文件以及啟動(dòng)時(shí)用于啟動(dòng)系統(tǒng)100的引導(dǎo)代碼。文件存儲(chǔ)區(qū)210可具有一小至幾個(gè)KB大至許多GB的容量。諸如數(shù)碼圖像、歌曲、程序以及其它數(shù)據(jù)文件之類的用戶文件均可存儲(chǔ)于文件存儲(chǔ)區(qū)210內(nèi)。引導(dǎo)代碼146和引導(dǎo)載入程序144存儲(chǔ)于NLSD 140的專用區(qū)域內(nèi),以防止被意外蓋寫(xiě)。關(guān)于這一方面的更多信息,請(qǐng)參閱于2001年8月6日提交的共同待決的第09/923874號(hào)美國(guó)臨時(shí)專利申請(qǐng),其以引用方式全文并入本文書(shū)。在本優(yōu)選實(shí)施例中,所述引導(dǎo)代碼146和引導(dǎo)載入程序144可在需要時(shí)很容易地進(jìn)行更新。引導(dǎo)載入程序144在NAND存儲(chǔ)器中較佳占用一個(gè)數(shù)據(jù)頁(yè)面。頁(yè)面長(zhǎng)度在不同的存儲(chǔ)器結(jié)構(gòu)中通常稍有變化。在本實(shí)例中,所述頁(yè)面長(zhǎng)度為512字節(jié)。所述閃速存儲(chǔ)器可以封裝成任何形式,例如但不限于一可編程只讀存儲(chǔ)器、集成至芯片存儲(chǔ)器上、CF卡(微型閃存卡)、以及諸如MMC卡(多媒體卡)和SD卡(安全數(shù)字卡)之類的串行非線性閃速存儲(chǔ)器。
盡管NAND閃速存儲(chǔ)器因具有許多優(yōu)點(diǎn)而導(dǎo)致其具有廣泛用途,但這種存儲(chǔ)器中所存儲(chǔ)的數(shù)據(jù)的非線性性質(zhì)迄今仍阻止設(shè)計(jì)成用于執(zhí)行可線性尋址的數(shù)據(jù)的微處理器直接執(zhí)行所述數(shù)據(jù)。以往,必須先將數(shù)據(jù)拷貝到RAM中,然后才能由微處理器執(zhí)行。采用本發(fā)明,處理器直接執(zhí)行引導(dǎo)載入程序144,也就是說(shuō),在執(zhí)行之前其未被遮蔽至RAM內(nèi)。從NAND存儲(chǔ)器直接讀取非???,一般僅需大約15微秒。這種直接執(zhí)行節(jié)省了系統(tǒng)100的啟動(dòng)過(guò)程中的寶貴時(shí)間。這是由非線性接口120實(shí)現(xiàn),下文將參照?qǐng)D4的流程圖對(duì)此作進(jìn)一步描述。圖3是將在圖4的流程圖的描述中涉及的接口120所用的信號(hào)或命令表。
圖4是一裝置(諸如圖1所例示的系統(tǒng)100)的總體啟動(dòng)順序的流程圖。在處理器130或接口120收到系統(tǒng)復(fù)位信號(hào)后,在步驟202中初始化微處理器。這種類型的觸發(fā)性復(fù)位可以是硬復(fù)位,也可以是軟復(fù)位。在步驟202中,所述微處理器經(jīng)由接口120從NLSD 140直接執(zhí)行圖1和圖2所示的引導(dǎo)載入程序144。
如上文所述,在構(gòu)建NAND存儲(chǔ)器的系統(tǒng)100的實(shí)例中,引導(dǎo)載入程序144包括位于NAND存儲(chǔ)器的第一頁(yè)面中的指令。所述指令按順序依次排列。也就是說(shuō),要執(zhí)行的第一指令在要讀取的第一區(qū)域內(nèi)有一地址,要執(zhí)行的第二指令在與第一區(qū)域相連的第二區(qū)域內(nèi)有一地址,依此類推。這很重要,因?yàn)樵贜AND閃速存儲(chǔ)器以及其它非線性存儲(chǔ)器中,某一區(qū)域(例如255字節(jié))在不先讀完其前面的所有其它區(qū)域(前254個(gè)字節(jié))之前是無(wú)法讀取的。
在步驟210A中設(shè)置微處理器130的關(guān)鍵寄存器。這包括禁止中斷微處理器、確定目的存儲(chǔ)器的位置并初始化目的存儲(chǔ)器。在系統(tǒng)100的實(shí)例中,所述目的地為RAM 150。所述目的存儲(chǔ)器可以是一或多個(gè)單獨(dú)的RAM芯片,也可以位于處理器130內(nèi),或者可以是位于正被引導(dǎo)的智能裝置內(nèi)的其他位置的任何類型的存儲(chǔ)器。對(duì)于一包括NAND閃速存儲(chǔ)器作為非線性存儲(chǔ)器的8位系統(tǒng),微處理器的寄存器設(shè)置如下
用于舉例說(shuō)明NLSD 140之運(yùn)行的NAND存儲(chǔ)器中的數(shù)據(jù)字節(jié)傳輸(讀或?qū)?是一個(gè)復(fù)雜的過(guò)程,包括必須精確計(jì)時(shí)的多項(xiàng)操作。一般而言,從NLSD 140讀取數(shù)據(jù)包括借助NLI 120監(jiān)測(cè)微處理器地址線是否發(fā)生一地址變化,然后在NLI 120檢測(cè)到一地址變化時(shí),用脈沖向NLSD 140輸送一寫(xiě)入線。然后數(shù)據(jù)被放置在數(shù)據(jù)總線115上,并去往NLI 120,隨后數(shù)據(jù)從NLI 120再經(jīng)數(shù)據(jù)總線115被轉(zhuǎn)移至微處理器130。更具體而言,作為一實(shí)例,在528字節(jié)/頁(yè)面的非線性存儲(chǔ)器中,一特定字節(jié)的轉(zhuǎn)移一般經(jīng)過(guò)下列四個(gè)主要步驟1.接口120計(jì)算所述字節(jié)在所述頁(yè)面中的位置(地址)。所述地址被劃分為至少3個(gè)字節(jié)。對(duì)于一512兆位的裝置,必須讀4個(gè)字節(jié)。
2.接口120從3個(gè)命令字(前256字節(jié),后256字節(jié)或備用區(qū)域)之一中選擇;3.接口120在步驟2中按下列步驟將命令寫(xiě)入NLSD 140a.確定NLSD 140片選(CE);b.確定NLSD 140命令鎖存允許(CLE)信號(hào);c.確定NLSD 140I/O線上的命令數(shù)據(jù);d.確定NLSD 140寫(xiě)入線;e.撤銷NLSD 140片選;f.撤銷NLSD 140命令鎖存允許信號(hào)。
4.接口120然后按如下步驟發(fā)送地址a.確定NLSD 140片選(CE);b.確定NLSD 140命令鎖存允許(CLE)信號(hào);c.確定NLSD 140I/O線上的第一個(gè)地址字節(jié);d.確定NLSD 140寫(xiě)允許(WE)線持續(xù)最短的規(guī)定時(shí)間(一般為50ns或以上);e.撤銷NLSD 140寫(xiě)允許(WE);
f.確定NLSD 140I/O線上的第二個(gè)地址字節(jié);g.確定NLSD 140寫(xiě)允許(WE)線用于最短的規(guī)定時(shí)間(一般為50ns或以上);h.撤銷NLSD 140寫(xiě)允許(WE);i.確定NLSD 140I/O線上的第三個(gè)地址字節(jié);j.確定NLSD 140寫(xiě)允許(WE)線用于最短的規(guī)定時(shí)間(一般為50ns或以上);k.撤銷NLSD 140寫(xiě)允許(WE);l.確定NLSD 140I/O線上的第四個(gè)地址字節(jié);m.確定NLSD 140寫(xiě)允許(WE)線用于最短的規(guī)定時(shí)間(一般為50ns或以上);n.撤銷NLSD 140寫(xiě)允許(WE);及o.撤銷ALE(地址鎖存允許)很重要的一點(diǎn)是應(yīng)當(dāng)注意到,NLSD 140將斷言其忙,具有一高達(dá)200ns之延遲,而且每當(dāng)NLSD 140發(fā)出一CE信號(hào)時(shí),所述CE信號(hào)必須在NLSD 140忙期間保持被確定狀態(tài)。微處理器120僅可在NLSD 140準(zhǔn)備就緒時(shí)按一順序方式讀取數(shù)據(jù)。
再次參見(jiàn)圖4,引導(dǎo)載入程序144的指令中的指令一旦被讀取和執(zhí)行,即會(huì)將引導(dǎo)代碼146的剩余部分拷貝到RAM 150中。在所述指令被所述微處理器直接從NLSD 140讀取和執(zhí)行后,其將在步驟210B中將所述引導(dǎo)代碼146拷貝到RAM 150中。在步驟214中,所述微處理器從RAM 140執(zhí)行引導(dǎo)代碼146的拷貝部分。
本發(fā)明具有數(shù)個(gè)優(yōu)點(diǎn)。接口120可以采用一成本非常低廉的可編程邏輯裝置、ASIC(特定用途集成電路)或者亦可以被納入一系統(tǒng)芯片設(shè)計(jì)型處理器中。所述系統(tǒng)被設(shè)計(jì)成具有盡可能高的訪問(wèn)速度,因而可以將采用本發(fā)明之系統(tǒng)或方法的任何裝置的啟動(dòng)時(shí)間減至最短。其提供一簡(jiǎn)單的基于寄存器的訪問(wèn)模型,使所述系統(tǒng)易于為編程器使用和納入。其亦支持不同的系統(tǒng)配置和平臺(tái)。例如,其可以支持8位、16位、32位或其它位數(shù)的系統(tǒng)。
雖然文中展示并介紹了本發(fā)明的實(shí)施例,但可在脫離本發(fā)明更寬泛方面的前提下對(duì)該等舉例說(shuō)明性實(shí)施例做變更和修改。因此,應(yīng)了解,本發(fā)明還有其他的實(shí)施例,盡管上文沒(méi)有明確描述,但該些其他實(shí)施例均屬于本發(fā)明的范圍。因此,本發(fā)明的范圍并非僅限于所展示的說(shuō)明性實(shí)施例。故而,應(yīng)當(dāng)了解,隨附的權(quán)利要求界定本發(fā)明的范圍。但是,由于語(yǔ)言并不是描述本發(fā)明范圍的最佳方式,因此亦應(yīng)了解,等效的結(jié)構(gòu)和方法盡管未涵蓋于權(quán)利要求明確文字中,但亦應(yīng)包括在本發(fā)明的真實(shí)范圍中。
權(quán)利要求
1.一種用于引導(dǎo)一包括一非線性存儲(chǔ)裝置的微處理器控制的裝置的方法,該方法包括接收一系統(tǒng)復(fù)位信號(hào);初始化所述非線性存儲(chǔ)裝置,使得所述非線性存儲(chǔ)裝置指向所述非線性存儲(chǔ)裝置內(nèi)的系統(tǒng)引導(dǎo)代碼;借助所述微處理器執(zhí)行所述非線性存儲(chǔ)裝置中的所述系統(tǒng)引導(dǎo)代碼的第一部分。
2.根據(jù)權(quán)利要求1所述的方法,其中無(wú)須先將所述系統(tǒng)引導(dǎo)代碼的所述第一部分拷貝到RAM(隨機(jī)存取存儲(chǔ)器)中,所述微處理器即執(zhí)行所述系統(tǒng)引導(dǎo)代碼的所述第一部分。
3.根據(jù)權(quán)利要求1所述的方法,其中駐留在所述非線性存儲(chǔ)裝置中由所述微處理器執(zhí)行的所述系統(tǒng)引導(dǎo)代碼部分為512字節(jié)或更小字節(jié)。
4.根據(jù)權(quán)利要求1所述的方法,其中所述非線性存儲(chǔ)裝置包括NAND閃速存儲(chǔ)器。
5.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括將系統(tǒng)引導(dǎo)代碼的第二部分從所述非線性存儲(chǔ)裝置拷貝到RAM中;借助所述微處理器執(zhí)行所述RAM中的所述系統(tǒng)引導(dǎo)代碼的所述第二部分。
6.根據(jù)權(quán)利要求1所述的方法,其中借助所述微處理器執(zhí)行駐留在所述非線性存儲(chǔ)裝置中的所述系統(tǒng)引導(dǎo)代碼的第一部分包括監(jiān)測(cè)所述微處理器地址線是否發(fā)生一地址變化;及在檢測(cè)到所述地址變化時(shí),用脈沖向所述非線性存儲(chǔ)器輸送一讀取線。
7.根據(jù)權(quán)利要求6所述的方法,其中借助所述微處理器執(zhí)行駐留在所述非線性存儲(chǔ)裝置中的所述系統(tǒng)引導(dǎo)代碼的第一部分進(jìn)一步包括在所述脈沖輸送后從所述非線性存儲(chǔ)器接收數(shù)據(jù);及將所述數(shù)據(jù)提供至所述微處理器。
8.一種微處理器控制的裝置,其包括一微處理器;易失性RAM;一非線性存儲(chǔ)器;及一線性存儲(chǔ)器仿真器,其可用于將所述非線性存儲(chǔ)器中的代碼轉(zhuǎn)換為一可由所述微處理器執(zhí)行的線性格式。
9.根據(jù)權(quán)利要求8所述的裝置,其中所述非線性存儲(chǔ)器包括NAND閃速存儲(chǔ)器。
10.根據(jù)權(quán)利要求8所述的裝置,其進(jìn)一步包括所述非線性存儲(chǔ)器中的引導(dǎo)代碼,無(wú)須先將所述非線性存儲(chǔ)器中的所述引導(dǎo)代碼的第一部分拷貝到RAM中,所述微處理器即執(zhí)行所述第一部分;及所述第一部分,其指示所述微處理器將所述引導(dǎo)代碼的第二部分拷貝到RAM中,其中所述第二部分由所述微處理器從所述RAM讀取并執(zhí)行。
11.根據(jù)權(quán)利要求8所述的裝置,其中所述線性存儲(chǔ)器仿真器可用于監(jiān)測(cè)所述微處理器地址線是否發(fā)生一變化;及在檢測(cè)到所述變化時(shí),用脈沖向所述非線性存儲(chǔ)器輸送一讀取線。
12.根據(jù)權(quán)利要求11所述的裝置,其中所述線性存儲(chǔ)器仿真器還可用于在所述脈沖輸送后從所述非線性存儲(chǔ)器接收數(shù)據(jù);及將所述數(shù)據(jù)提供至所述微處理器。
13.一種基于微處理器的系統(tǒng),其包括一可用于讀取線性存儲(chǔ)裝置的微處理器;非線性閃速存儲(chǔ)器;一接口,其使所述微處理器能夠執(zhí)行所述非線性閃速存儲(chǔ)器中的代碼。
14. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述微處理器執(zhí)行存儲(chǔ)在所述非線性閃速存儲(chǔ)器中的引導(dǎo)代碼的第一部分。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述引導(dǎo)代碼的所述第一部分包含專用于所述處理器類型和所述系統(tǒng)配置的指令。
16.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述非線性閃速存儲(chǔ)器包括NAND型閃速存儲(chǔ)器,且其中所述第一部分包括所述NAND型閃速存儲(chǔ)器的第一頁(yè)面。
17.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述引導(dǎo)代碼的所述第一部分包含指示所述微處理器執(zhí)行下列操作的指令初始化所述微處理器;初始化一或多個(gè)隨機(jī)存取存儲(chǔ)器;及將所述引導(dǎo)代碼的第二部分拷貝到所述一或多個(gè)隨機(jī)存取存儲(chǔ)器中。
18.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述引導(dǎo)代碼的所述第一部分進(jìn)一步包含指示所述微處理器執(zhí)行所述一或多個(gè)隨機(jī)存取存儲(chǔ)器中的所述引導(dǎo)代碼的所述第二部分的指令。
19.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述非線性閃速存儲(chǔ)器包括AND型閃速存儲(chǔ)器。
20.一種基于微處理器的系統(tǒng),其包括一可用于讀取線性存儲(chǔ)裝置的微處理器;一非線性存儲(chǔ)裝置;借助所述可用于讀取線性存儲(chǔ)裝置的微處理器執(zhí)行所述非線性存儲(chǔ)裝置上的代碼的構(gòu)件。
全文摘要
本發(fā)明揭示一種用于引導(dǎo)一微處理器控制的裝置的方法和系統(tǒng)。一設(shè)計(jì)成從一線性存儲(chǔ)裝置讀取數(shù)據(jù)的微處理器通過(guò)一接口或仿真器執(zhí)行一非線性存儲(chǔ)裝置中的代碼,該接口或仿真器向所述非線性存儲(chǔ)裝置寫(xiě)入或從其中讀取專門(mén)格式化的引導(dǎo)指令。
文檔編號(hào)G06F9/445GK1698032SQ03824679
公開(kāi)日2005年11月16日 申請(qǐng)日期2003年9月30日 優(yōu)先權(quán)日2002年10月2日
發(fā)明者亨利·R·赫頓, 法施德·薩伯特-沙吉, 羅伯特·C·張, 郭永 申請(qǐng)人:桑迪士克股份有限公司