專利名稱:新存儲器體系結(jié)構(gòu)中用直接存儲器訪問來系統(tǒng)引導(dǎo)的方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計(jì)算機(jī)系統(tǒng)的初始化。具體地,本發(fā)明設(shè)計(jì)改善的用于引導(dǎo)計(jì)算機(jī)系統(tǒng)的存儲器體系結(jié)構(gòu)。
背景技術(shù):
許多現(xiàn)代電子設(shè)備,比如手機(jī)、PDA、便攜式音樂播放器、儀器等通常合并了嵌入式計(jì)算機(jī)系統(tǒng)。嵌入式計(jì)算機(jī)系統(tǒng)通常包含計(jì)算機(jī)處理器(稱為主機(jī))、非易失性存儲器(比如閃速存儲器和/或ROM存儲器)、和易失性存儲器,比如動態(tài)隨機(jī)訪問存儲器(DRAM)。主機(jī)可包括中央處理單元(CPU)、數(shù)字信號處理器(DSP)、微控制器單元(MCU)或直接存儲器訪問(DMA)數(shù)據(jù)傳輸設(shè)備。
在操作期間,主機(jī)通常運(yùn)行操作系統(tǒng)或其它操作代碼。因?yàn)橐资源鎯ζ魍ǔ1确且资源鎯ζ骺杀桓焖俚卦L問,因此操作代碼可存儲在易失性存儲器中并由主機(jī)從易失性存儲器訪問。但是,由于易失性存儲器要求電源來維持存儲于其中的數(shù)據(jù),因此當(dāng)嵌入式系統(tǒng)掉電時,易失性存儲器通常被擦除。由此,當(dāng)嵌入式系統(tǒng)掉電(例如當(dāng)嵌入式系統(tǒng)進(jìn)入復(fù)位狀態(tài)時),主機(jī)系統(tǒng)所要求的操作代碼通常被加載到易失性存儲器中。通常,從非易失性存儲器(例如ROM和/或閃速存儲器)加載操作代碼,非易失性存儲器即使在嵌入式系統(tǒng)沒有加電時也保持所存儲的數(shù)據(jù)。將存儲在非易失性存儲器中的代碼加載到易失性存儲器中并執(zhí)行來自易失性存儲器的代碼的過程可稱為代碼映射(code shadowing)。
當(dāng)嵌入式系統(tǒng)被加電時,嵌入式系統(tǒng)通常執(zhí)行引導(dǎo)序列以正確地從非易失性存儲器加載操作代碼到易失性存儲器,并用操作代碼來初始化主機(jī)。為了執(zhí)行引導(dǎo)序列,主機(jī)通常訪問存儲在非易失性存儲器的預(yù)定區(qū)域中的引導(dǎo)代碼。引導(dǎo)代碼是可由主機(jī)執(zhí)行的簡單代碼,使主機(jī)能夠執(zhí)行將操作代碼加載到易失性存儲器并開始執(zhí)行操作代碼所要求的更復(fù)雜的動作。
在一些情況下,主機(jī)可利用直接存儲器訪問(DMA)將操作代碼從非易失性存儲器傳送到易失性存儲器。DMA允許部分的存儲器快速并自動地從一個存儲單元移動到另一個存儲單元。為了執(zhí)行DMA傳送,主機(jī)可能需要初始化DMA引擎。在一些情況下,DMA引擎可位于主機(jī)中。為了初始化DMA引擎,主機(jī)可使用由引導(dǎo)代碼提供的信息和/或指令。一旦DMA引擎被初始化,則主機(jī)可向DMA引擎發(fā)出命令將操作代碼從非易失性存儲器加載到易失性存儲器。主機(jī)接著可開始執(zhí)行操作代碼和其它主機(jī)正確操作所需要的代碼。
如前所述引導(dǎo)嵌入式系統(tǒng)對于主機(jī)可能需要各種特定的配置。例如,主機(jī)通常要求被配置為將多種存儲器(閃速、ROM、和DRAM類型的存儲器)對接的多個接口。主機(jī)還通常被配置為自動加載引導(dǎo)代碼、加載用于嵌入式微控制器的控制器代碼、并提供初始化和管理從非易失性存儲器到易失性存儲器的DMA傳送的能力以作為一部分的引導(dǎo)序列。主機(jī)引導(dǎo)嵌入式系統(tǒng)所要求的這種特定配置通常降低了靈活性并增加了主機(jī)和嵌入式系統(tǒng)的設(shè)計(jì)成本。
由此,所需要的是一種改善的用于引導(dǎo)嵌入式系統(tǒng)的系統(tǒng)和方法。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供了一種用于初始化計(jì)算機(jī)系統(tǒng)的方法和設(shè)備,其中該計(jì)算機(jī)系統(tǒng)包括處理器、易失性存儲器和非易失性存儲器。在一個實(shí)施例中,該方法包括,當(dāng)計(jì)算機(jī)系統(tǒng)被初始化時,自動將存儲在非易失性存儲器中的初始化代碼復(fù)制到易失性存儲器,其中易失性存儲器中的電路自動創(chuàng)建副本,并通過處理器來執(zhí)行來自易失性存儲器的初始化代碼的副本。
因此,參考實(shí)施例可得到詳細(xì)理解本發(fā)明的上述特征的方式和上面簡要概括的本發(fā)明更特殊的描述,這些實(shí)施例中一些在附圖中說明。但是注意到,附圖只說明本發(fā)明的典型實(shí)施例,并因此不被認(rèn)為限制其范圍,對于本發(fā)明可承認(rèn)其它等同的有效實(shí)施例。
圖1是描述根據(jù)本發(fā)明的一個實(shí)施例的示例系統(tǒng)的框圖。
圖2是描述示例DRAM設(shè)備和NAND閃速存儲器的詳細(xì)視圖和數(shù)據(jù)路徑的框圖。
圖3A和3B是描述根據(jù)本發(fā)明的一個實(shí)施例的用于嵌入式系統(tǒng)的示例引導(dǎo)序列的流程圖。
圖4是描述根據(jù)本發(fā)明的一個實(shí)施例的用于引導(dǎo)嵌入式系統(tǒng)的示例狀態(tài)機(jī)的狀態(tài)圖。
圖5是描述根據(jù)本發(fā)明的一個實(shí)施例的示例DMA引擎/參數(shù)設(shè)置的詳細(xì)視圖的框圖。
圖6是描述根據(jù)本發(fā)明的一個實(shí)施例的用于利用感知復(fù)位(sense-on-reset)方案來初始化DMA引擎的電路的框圖。
圖7描述了根據(jù)本發(fā)明的一個實(shí)施例的用于存儲引導(dǎo)代碼和OS代碼的組合RAM存儲器。
具體實(shí)施例方式
本發(fā)明的實(shí)施例提供一種改進(jìn)的用于引導(dǎo)嵌入式系統(tǒng)的系統(tǒng)和方法。本發(fā)明的一個實(shí)施例中,存儲在非易失性存儲器中的引導(dǎo)代碼和控制器代碼可由位于易失性存儲器芯片上的DMA引擎加載到引導(dǎo)代碼緩沖器和控制器代碼緩沖器中。通過利用位于易失性存儲器芯片上的DMA引擎來加載引導(dǎo)和控制器代碼,可將引導(dǎo)嵌入式系統(tǒng)所需的處理工作量從主機(jī)處理器卸載到易失性存儲器芯片,由此降低主機(jī)處理器和嵌入式系統(tǒng)的復(fù)雜度(以及因此的總成本)。
在已經(jīng)將引導(dǎo)代碼從非易失性存儲器加載到易失性存儲器中的引導(dǎo)代碼緩沖器后,主機(jī)處理器可接著訪問存儲在引導(dǎo)代碼緩沖器中的引導(dǎo)代碼。當(dāng)主機(jī)訪問存儲在引導(dǎo)代碼緩沖器中的引導(dǎo)代碼時,主機(jī)可執(zhí)行引導(dǎo)操作。在一個實(shí)施例中,引導(dǎo)操作可包括向DMA引擎發(fā)出命令以加載易失性存儲器中的操作系統(tǒng)代碼。主機(jī)可接著執(zhí)行存儲在易失性存儲器中的操作系統(tǒng)代碼。在一個實(shí)施例中,引導(dǎo)代碼和控制器代碼可由DMA引擎加載到易失性存儲器芯片中而不用與主機(jī)交互。
下面對于包括主機(jī)處理器、易失性存儲器和非易失性存儲器的嵌入式系統(tǒng)來描述本發(fā)明的實(shí)施例。但是,在一些情況下,嵌入式系統(tǒng)可包含多個主機(jī)處理器、多個易失性存儲器和多個非易失性存儲器。易失性存儲器可包括任何類型的DRAM、SRAM或者任何其它類型的易失性存儲器。非易失性存儲器可包括任何類型的NAND閃速存儲器、NOR閃速存儲器、可編程只讀存儲器(PROM)、電可擦除可編程只讀存儲器(EE-PROM)、只讀存儲器(ROM)、或任何其它類型的非易失性存儲器。主機(jī)處理器可包括任何類型的處理器,包括中央處理單元(CPU)、數(shù)字信號處理器(DSP)、微控制器單元(MCU)或直接存儲器訪問(DMA)數(shù)據(jù)傳輸設(shè)備。并且在一些情況下,系統(tǒng)中的每塊芯片可包含多種處理器和/或存儲器。例如,主機(jī)可包括CPU、DSP和SRAM。在一些情況下,非易失性存儲器可包括ROM和閃速存儲器。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)容易理解可與本發(fā)明實(shí)施例一起使用的其它示例組合。
示例嵌入式系統(tǒng)圖1是描述根據(jù)本發(fā)明的一個實(shí)施例的示例系統(tǒng)100的框圖。如圖所示,系統(tǒng)100包括主機(jī)102、易失性存儲器(DRAM設(shè)備110)和非易失性存儲器(NAND閃速存儲器130)。主機(jī)可經(jīng)由DRAM連接104訪問DRAM設(shè)備110。DRAM設(shè)備110可經(jīng)由閃速接口122和閃速存儲器連接124訪問NAND閃速存儲器130。在一些情況下,由于閃速接口位于DRAM設(shè)備110上,因此主機(jī)102可不需要閃速存儲器接口或連接,由此簡化了主機(jī)102的設(shè)計(jì)和選擇??蛇x地,在需要時,主機(jī)102可包括閃速存儲器接口和連接。
在本發(fā)明的一個實(shí)施例中,DRAM設(shè)備110可包括SDRAM存儲器陣列108。DRAM設(shè)備還可包含引導(dǎo)代碼和數(shù)據(jù)緩沖器106、DRAM接口114、閃速管理器112、控制器代碼緩沖器116、嵌入式微控制器核118和DMA引擎120。如下所述,NAND閃速接口122可用于訪問存儲在NAND閃速存儲器130中的信息,包括引導(dǎo)代碼132、控制器代碼134、操作系統(tǒng)和應(yīng)用代碼136、數(shù)據(jù)138和任何其它存儲在NAND閃速存儲器130中的信息。
圖2是描述根據(jù)本發(fā)明的一個實(shí)施例的DRAM設(shè)備110和NAND閃速存儲器130的詳細(xì)視圖和數(shù)據(jù)路徑的框圖。在一些情況下,NAND閃速存儲器130可被劃分為多個塊(blk0到blkm)并被分區(qū)(例如劃分為不重疊的存儲器區(qū)域)。在圖1中描述的每種類型的代碼132、134、136可作為映像(例如從單個源得到的副本)存儲在分區(qū)中。如圖2所示,NAND閃速存儲器130可包含控制器代碼映像234、引導(dǎo)映像232、以及操作系統(tǒng)、應(yīng)用和/或DSP代碼映像236。NAND閃速存儲器130還可包含其它數(shù)據(jù)138。并且,如前所述,DRAM存儲器設(shè)備110可包含數(shù)據(jù)和引導(dǎo)代碼緩沖器106。在一些情況下,數(shù)據(jù)緩沖器210和引導(dǎo)代碼緩沖器212可被提供作為分離的緩沖器,如圖所示。
如下對于引導(dǎo)序列所述,DMA引擎電路120可用于自動將引導(dǎo)代碼132從引導(dǎo)代碼映像232加載到引導(dǎo)代碼緩沖器212,并且加載來自控制器代碼映像234的控制器代碼134。在已經(jīng)將引導(dǎo)代碼132和控制器代碼134加載到DRAM存儲器設(shè)備110后,發(fā)給DMA引擎120的命令可用來啟動DMA訪問,其將來自O(shè)S、應(yīng)用、和DSP代碼映像236的所需要代碼以及其它數(shù)據(jù)138復(fù)制到代碼映射240和存儲在SDRAM陣列108中的其它數(shù)據(jù)202中。
在一些情況下,通過將工作從主機(jī)102卸載到DRAM存儲器設(shè)備110中的DMA引擎120和嵌入式微控制器118,來簡化主機(jī)102和嵌入式系統(tǒng)100的設(shè)計(jì)和操作。并且,通過將引導(dǎo)代碼132、控制器代碼134、和OS/應(yīng)用/DSP代碼136存儲到可編程非易失性存儲器130中,嵌入式系統(tǒng)100操作所需要的代碼可以更靈活的方式被存儲和取回。例如,為了更新引導(dǎo)代碼132、控制器代碼134、和/或OS/應(yīng)用/DSP代碼136,可僅僅在可編程非易失性存儲器130中的舊代碼上重寫新的代碼。因?yàn)橛嘘P(guān)代碼存儲和取回的信息還可存儲在可編程非易失性存儲器中,所以在更新任何代碼時,新的存儲和取回信息可被編程到可編程非易失性存儲器130中。
示例引導(dǎo)序列圖3A和3B是描述根據(jù)本發(fā)明的一個實(shí)施例的用于嵌入式系統(tǒng)100的示例引導(dǎo)序列的流程圖。引導(dǎo)序列可利用存儲在NAND閃速存儲器130中的信息。在例如NAND程序員302初始引導(dǎo)系統(tǒng)100之前,該信息可存儲在NAND閃速存儲器130中。NAND程序員302可將引導(dǎo)代碼132(步驟304)、控制器代碼134(步驟306)和OS代碼136(步驟308)燒進(jìn)NAND閃速存儲器130。在為每個代碼132、134、136選擇相關(guān)存儲器尺寸和位置時進(jìn)行了本領(lǐng)域技術(shù)人員已知的設(shè)計(jì)考慮。
當(dāng)在步驟310系統(tǒng)100被加電時,在步驟312引導(dǎo)序列可通過加載引導(dǎo)代碼132而開始。在一個實(shí)施例中,利用DRAM存儲器設(shè)備110的DMA引擎電路120,可將引導(dǎo)代碼132從NAND閃速存儲器130加載到引導(dǎo)代碼緩沖器212。本領(lǐng)域技術(shù)人員已知的是,DMA訪問可包括將引導(dǎo)代碼132從NAND閃速存儲器130自動傳送到引導(dǎo)代碼緩沖器212而不需要外部控制或輸入,例如通過主機(jī)102或其它外部控制器電路。DMA訪問可繼續(xù)直到DMA加載完成(步驟314)。
DMA引擎電路120可利用DRAM存儲器設(shè)備110的NAND閃速接口122來訪問NAND閃速存儲器130。在一個實(shí)施例中,DMA引擎電路120或DRMA設(shè)備中的其它適當(dāng)電路可被自動配置為從NAND閃速存儲器130的預(yù)定義區(qū)域(例如從塊0、存儲器地址0開始并繼續(xù)指定長度)加載引導(dǎo)代碼132??蛇x地,引導(dǎo)代碼的源地址和尺寸可由外部設(shè)備、由存儲在存儲器區(qū)域中(例如ROM中或NAND閃速存儲器130的預(yù)定義區(qū)域中)的數(shù)據(jù)或以另一方式提供,如下所述。
當(dāng)已經(jīng)在步驟312和314加載了引導(dǎo)代碼132后,在步驟316可開始加載由嵌入式微控制器核118使用的控制器代碼116。在一些情況下,在引導(dǎo)代碼132已經(jīng)完成加載后自動啟動控制器代碼134的加載。在一個實(shí)施例中,可將控制器代碼134從NAND閃速存儲器130加載到控制器代碼緩沖器116,其中控制器代碼134可由嵌入式微控制器核118訪問。在一些情況下,可將DMA引擎120配置為例如在加載引導(dǎo)代碼132后自動加載控制器代碼134。利用引導(dǎo)代碼132中的指令、利用從外部設(shè)備發(fā)出的指令、或利用本領(lǐng)域技術(shù)人員已知的其它方式,可從NAND閃速存儲器130的預(yù)定義區(qū)域加載控制器代碼134。下面還會更詳細(xì)地描述加載引導(dǎo)和控制器代碼132、134的其它實(shí)施例。用于加載控制器代碼134的DMA訪問可繼續(xù)直到在步驟318完成加載。
在引導(dǎo)代碼132和控制器代碼134已經(jīng)分別加載到引導(dǎo)代碼緩沖器212和控制器代碼緩沖器116中后,在步驟320可激活嵌入式微控制器118,并且可設(shè)置NAND閃速管理器112、誤差校正代碼(ECC)和代碼解壓縮工具。嵌入式微控制器118可用于為NAND閃速存儲器130提供NAND閃速管理功能(例如,由此從主機(jī)102卸載這種閃速存儲器管理)。NAND閃速管理器112還可由嵌入式微控制器118用來訪問NAND閃速存儲器130(例如通過提供對從NAND閃速存儲器130讀取和向NAND閃速存儲器130寫入的支持)。ECC工具可用來確保從NAND閃速存儲器130接收的數(shù)據(jù)已經(jīng)被正確傳輸并可能地校正傳輸中的錯誤,如果有的話。代碼解壓縮工具可用來解壓縮從NAND閃速存儲器130取回的以壓縮格式存儲的代碼(例如OS/應(yīng)用代碼136)。
在已經(jīng)激活嵌入式微控制器118后并且在已經(jīng)初始化有關(guān)的支持電路后,可從引導(dǎo)緩沖器212引導(dǎo)主機(jī)102。在本發(fā)明的一個實(shí)施例中,引導(dǎo)緩沖器212可由主機(jī)102經(jīng)由DRAM連接104來訪問。例如,引導(dǎo)緩沖器212可由主機(jī)102通過從DRAM存儲器設(shè)備110內(nèi)的特定的、預(yù)定義存儲器地址請求數(shù)據(jù)來訪問。可選地,從存儲器設(shè)備110發(fā)出的特殊命令可用來訪問引導(dǎo)緩沖器212。主機(jī)102可使用存儲在引導(dǎo)緩沖器212中的引導(dǎo)代碼132來執(zhí)行將操作系統(tǒng)代碼136加載到DRAM存儲器設(shè)備110中并開始執(zhí)行操作系統(tǒng)代碼136以及主機(jī)系統(tǒng)中其它硬件設(shè)備等所需的更復(fù)雜的動作。例如,引導(dǎo)代碼132可禁止中斷、初始化主機(jī)102中的模式寄存器,并向存儲器設(shè)備110發(fā)出命令來開始操作系統(tǒng)代碼136的代碼映射。引導(dǎo)代碼132還可提供指明哪些命令應(yīng)當(dāng)發(fā)給存儲器設(shè)備110以執(zhí)行代碼映射操作的信息,以及NAND閃速存儲器130內(nèi)操作系統(tǒng)代碼132的位置。
當(dāng)在步驟322主機(jī)102已經(jīng)引導(dǎo)并初始化硬件后,在步驟328可加載OS/App/DSP映像236。在本發(fā)明的一個實(shí)施例中,主機(jī)102可向DMA引擎120發(fā)出命令來啟動經(jīng)由DMA傳送將OS/App/DSP映像236從NAND閃速存儲器130加載到SDRAM陣列108。在一些情況下,主機(jī)102可使用引導(dǎo)代碼132來向DMA引擎120和/或控制器118發(fā)出適當(dāng)?shù)拿睢R坏┟钜呀?jīng)發(fā)給DMA引擎120,則DMA引擎120可自動并自發(fā)地執(zhí)行DMA傳送而不用與主機(jī)102交互。同時,主機(jī)102可與一些其它任務(wù)(可包括等待狀態(tài)中的等待)一起保持活動,直到存儲器設(shè)備110和/或DMA引擎120指示映射完成(步驟324)。
在加載OS/App/DSP映像236的同時,在步驟330,可利用嵌入式ECC來校驗(yàn)正在加載的代碼并將其解壓縮(如果代碼236以壓縮格式存儲)。在一個實(shí)施例中,嵌入式微控制器核118和/或其它部件(例如DMA引擎電路120和NAND閃速管理器112)可利用ECC來校驗(yàn)傳送的代碼并執(zhí)行解壓縮。DMA傳送可繼續(xù)直到代碼映射204的DMA加載完成(步驟332)。
在主機(jī)102確定映射完成(步驟324)后,主機(jī)可從位于SDRAM陣列108中的代碼映射204啟動操作系統(tǒng)代碼136(和主機(jī)102使用的任何其它代碼)。在一個實(shí)施例中,在OS/App/DSP代碼的DMA傳送136完成后,由DMA引擎120發(fā)出的信號或命令可用來向主機(jī)102指明已經(jīng)完成了代碼映射。當(dāng)主機(jī)102從DRAM存儲器設(shè)備110啟動操作代碼時,嵌入式系統(tǒng)100的普通操作可開始,成功地完成了引導(dǎo)序列300。
上述的引導(dǎo)序列因?yàn)槿舾稍蚩蓭椭纳魄度胧较到y(tǒng)的設(shè)計(jì)。例如,在一些情況下,主機(jī)102可不用于引導(dǎo)準(zhǔn)備,比如加載引導(dǎo)代碼132,由此克服了在加載引導(dǎo)代碼132之前使能主機(jī)102的在先初始化的需要。并且,主機(jī)102可不涉及NAND閃速存儲器130的初始化,從而又減少了主機(jī)102的在先初始化的需要。此外,由于DRAM存儲器設(shè)備110可包含DMA引擎120和嵌入式微控制器核118,所以因此主機(jī)102不需要提供對DMA傳送和代碼映射的廣泛支持。相反,主機(jī)102可僅僅向DRAM存儲器設(shè)備110發(fā)出命令并允許DRAM存儲器設(shè)備110執(zhí)行必要的DMA傳送。
圖4是描述根據(jù)本發(fā)明的一個實(shí)施例的用于引導(dǎo)嵌入式系統(tǒng)100的示例狀態(tài)機(jī)400的狀態(tài)圖。當(dāng)系統(tǒng)100被初始加電時,每個系統(tǒng)部件可進(jìn)入復(fù)位狀態(tài)402。在下一個狀態(tài)(DMA參數(shù)狀態(tài)404)中,DMA引擎電路120可用DMA參數(shù)(例如源地址、目的地址和要移動的數(shù)據(jù)尺寸)來初始化,以便加載引導(dǎo)代碼132。在本發(fā)明的一個實(shí)施例中,利用感知復(fù)位配置(SOR),引導(dǎo)代碼132的DMA參數(shù)可放置在DMA引擎120的寄存器(Reg0)中。下面將詳細(xì)描述DMA引擎寄存器和SOR配置。
在已經(jīng)存儲了引導(dǎo)代碼132的DMA參數(shù)之后,可在DMA加載狀態(tài)406下執(zhí)行DMA加載。在一個實(shí)施例中,DMA引擎120可利用自動計(jì)數(shù)器來將引導(dǎo)代碼132從源地址傳送到目的地址,直到由尺寸參數(shù)指定的引導(dǎo)代碼132已經(jīng)被移動。每次將讀取請求發(fā)送到NAND閃速存儲器130時,來自NAND閃速存儲器的信號(R/B#,其在NAND存儲器就緒時被聲明并在NAND存儲器繁忙時被降低)可保持低,這表明正在從NAND閃速存儲器130加載頁面(例如NAND閃速存儲器130處于繁忙狀態(tài))。當(dāng)R/B#信號被聲明時,這表明頁面已經(jīng)被加載,DMA引擎120可通過從NAND閃速存儲器130加載另一頁面來繼續(xù)DMA傳送(取決于計(jì)數(shù)器值和尺寸參數(shù)),或完成到下一個狀態(tài)的加載和轉(zhuǎn)移。
在引導(dǎo)代碼132已經(jīng)經(jīng)由DMA引擎120完成加載后,自動觸發(fā)器可使?fàn)顟B(tài)轉(zhuǎn)移回DMA參數(shù)狀態(tài)404,其中用于傳送控制器代碼134的DMA參數(shù)被初始化。在一個實(shí)施例中,可通過將源地址、目的地址和控制器代碼134的尺寸加載到DMA引擎120的寄存器(Reg1)來初始化DMA參數(shù)。在已經(jīng)存儲了控制器代碼134的DMA參數(shù)之后,狀態(tài)可轉(zhuǎn)移到DMA加載狀態(tài)406,其中控制器代碼134的DMA加載通過將代碼134從源地址傳送到目的地址來執(zhí)行,同時如上所述計(jì)數(shù)器跟蹤所傳送代碼的尺寸。
在已經(jīng)加載了控制器代碼134并完成了初始DMA傳送之后,狀態(tài)可轉(zhuǎn)移到DMA空閑狀態(tài)408,其中DMA引擎120保持在空閑狀態(tài)408。同時,嵌入式微處理器118可在控制器開始狀態(tài)410處啟動并初始化對訪問NAND閃速存儲器130的支持,對諸如NAND閃速管理器112、ECC和代碼解壓縮功能的支持。如上所述,嵌入式微處理器118可利用存儲在控制器代碼緩沖器116中的控制器代碼134來執(zhí)行初始化。在嵌入式微處理器啟動并且NAND閃速存儲器130可工作后,狀態(tài)可轉(zhuǎn)移到主機(jī)引導(dǎo)狀態(tài)412,其中例如利用存儲在引導(dǎo)代碼緩沖器212中的引導(dǎo)代碼132來啟動主機(jī)102。
當(dāng)主機(jī)102引導(dǎo)并完成任何硬件初始化時,主機(jī)可向DMA引擎120發(fā)出命令(例如,使用由引導(dǎo)代碼132提供的命令)來使DMA引擎120從DMA空閑狀態(tài)408轉(zhuǎn)移到DMA參數(shù)狀態(tài)404,其中主機(jī)102初始化DMA引擎120的DMA參數(shù)以便執(zhí)行OS/App/DSP映像236從NAND閃速存儲器130到SDRAM陣列108的代碼映射。主機(jī)102可例如通過為OS/App/DSP映像236的源地址、目的地址和尺寸提供DMA參數(shù)來初始化DMA引擎120。OS/App/DSP映像236的參數(shù)可例如被存儲在DMA引擎寄存器(Reg2)中。在已經(jīng)存儲了OS/App/DSP映像236的DMA參數(shù)之后,狀態(tài)可轉(zhuǎn)移到DMA加載狀態(tài)406,其中通過將OS/App/DSP代碼136從源地址傳送到目的地址來執(zhí)行OS/App/DSP映像236的DMA加載,同時計(jì)數(shù)器如前所述跟蹤所傳送的代碼的尺寸。
在已經(jīng)經(jīng)由DMA傳送將OS/App/DSP代碼136加載到SDRAM陣列108后,DMA引擎120可返回到DMA空閑狀態(tài)408,同時主機(jī)102利用代碼映射204來啟動操作系統(tǒng)(主機(jī)啟動OS狀態(tài)414)。在主機(jī)102開始普通操作后,主機(jī)102或嵌入式系統(tǒng)100中的其它部件可在數(shù)據(jù)傳送狀態(tài)416開始時初始化其它DMA數(shù)據(jù)傳送。
DMA引擎的控制圖5是描述根據(jù)本發(fā)明的一個實(shí)施例的示例DMA引擎120和參數(shù)設(shè)置的詳細(xì)視圖的框圖。如圖所示,DMA引擎120可包含多個寄存器5020、5021、5022、5023,地址生成器和計(jì)數(shù)器504,NAND訪問控制506以及DMA有限狀態(tài)機(jī)(FSM)508。DMA引擎120還可包含引導(dǎo)/OS/數(shù)據(jù)下載控制510、控制器代碼下載控制512和數(shù)據(jù)上載控制514。下面更詳細(xì)地描述每個部件。
在本發(fā)明的一個實(shí)施例中,DMA引擎寄存器5020、5021、5022、5023可用于控制從NAND閃速存儲器130加載哪些數(shù)據(jù)到SDRAM 108,反之亦然。如圖所示,在寄存器中可存儲指示要傳送的數(shù)據(jù)的源地址(SA)、目的地址(DA)和尺寸的值。
為了執(zhí)行DMA傳送,寄存器5020、5021、5022、5023可被輸入到由DMA FSM 508控制的地址生成器和計(jì)數(shù)器504中。地址生成器和計(jì)數(shù)器504可使用每個源地址、目的地址和尺寸條目來生成源地址和目的地址。地址生成器和計(jì)數(shù)器504還可保持監(jiān)控DMA傳送進(jìn)度的計(jì)數(shù)器。例如,當(dāng)啟動DMA傳送時,地址生成器和計(jì)數(shù)器504可初始化計(jì)數(shù)器并提供源和目的地址給NAND閃速存儲器130(經(jīng)由NAND閃速接口122)和SDRAM陣列108(經(jīng)由SDRAM接口114或其它例如用于引導(dǎo)代碼緩沖器212的接口)。
在地址生成器和計(jì)數(shù)器已經(jīng)提供了源和目的地址后,DMA FSM508可向NAND訪問控制506發(fā)送命令來請求將從源地址讀取數(shù)據(jù)并將數(shù)據(jù)寫入到目的地址。取決于正在傳送的數(shù)據(jù),DMA引擎120可利用引導(dǎo)/OS/數(shù)據(jù)下載控制510、控制器代碼下載控制512或數(shù)據(jù)上載控制514來執(zhí)行傳送。在已經(jīng)執(zhí)行了傳送之后,地址生成器和計(jì)數(shù)器504可增加或減少計(jì)數(shù)器并為DMA傳送計(jì)算下一個源和目的地址。DMA傳送可繼續(xù)直到已經(jīng)傳送了等于尺寸參數(shù)的數(shù)據(jù)量(例如利用地址生成器和計(jì)數(shù)器504中的計(jì)數(shù)器來跟蹤)。
DMA引擎的初始化如上所述,在本發(fā)明的一個實(shí)施例中,當(dāng)嵌入式系統(tǒng)被加電并且DMA引擎120被初始化時,DMA引擎120可將引導(dǎo)代碼132和控制器代碼134從NAND閃速存儲器130自動傳送到DRAM設(shè)備110中的緩沖器106、116,以供初始化和操作主機(jī)102和嵌入式微控制器118使用。接著可將命令發(fā)給DRAM設(shè)備110(例如,通過主機(jī)102),使OS/APP/DSP代碼136經(jīng)由DMA傳送從NAND閃速存儲器130加載到SDRAM陣列108,其中代碼136可因此由主機(jī)訪問。在一些情況下,在一個實(shí)施例中,發(fā)給DMA引擎120(例如給DMA FSM 508)的加電-觸發(fā)信號和主機(jī)-觸發(fā)信號可用于將DMA FSM置于適當(dāng)狀態(tài)以便加載代碼、控制器和/或OS/APP/DSP代碼132、134、136。例如當(dāng)接收到加電-觸發(fā)信號時,DMA引擎120可自動加載引導(dǎo)和控制器代碼132、134。隨后,當(dāng)接收到主機(jī)-觸發(fā)信號時,DMA引擎120可自動加載OS/APP/DSP代碼136。
在本發(fā)明的一個實(shí)施例中,為了執(zhí)行引導(dǎo)代碼132從NAND閃速存儲器130到引導(dǎo)代碼緩沖器212的初始傳送,DMA引擎120的第一寄存器5020可用正在傳送的引導(dǎo)代碼132的源地址SA和目的地址DA以及尺寸來初始化。在一些情況下,可在DMA引擎120中預(yù)置初始化信息(例如存儲在ROM或硬接線中)。可選地,初始化信息可存儲在NAND閃速存儲器130的預(yù)定義區(qū)域。還可從任何方便的外部源接收初始化信息。在一些情況下,組合源(預(yù)定義的、ROM、NAND閃速存儲器130和/或外部源)可用于獲得DMA引擎120的初始化信息。還可從這種源或這種源的組合接收控制器代碼和OS/APP/DSP代碼136的初始化信息。
圖6是描述根據(jù)本發(fā)明的一個實(shí)施例的用于利用感知復(fù)位方案來初始化DMA引擎120的電路600的框圖。在所述的情況下,施加到配置引腳614的信號可用于選擇將要加載的引導(dǎo)代碼132的源地址SA和尺寸。如上所述,引導(dǎo)代碼132可在預(yù)定義位置處被加載到引導(dǎo)代碼緩沖器中,使得引導(dǎo)代碼132的目的地址DA可不經(jīng)由配置引腳614來利用或提供。在一些情況下,因?yàn)閷τ谝恍┲T如DRAM設(shè)備110的設(shè)備類型,在非復(fù)位模式期間對于常規(guī)操作可共享配置引腳614(例如,配置引腳614在非復(fù)位模式期間可用作為地址引腳或控制引腳),所以不需要或增加附加引腳給DRAM設(shè)備110來為DMA引擎120的初始化提供源地址和尺寸。
在本發(fā)明的一個實(shí)施例中,例如在感知復(fù)位(SOR)操作期間,可利用鎖存器604來鎖存放置在配置引腳614上的數(shù)據(jù)。在SOR操作期間,可內(nèi)部生成復(fù)位信號或由DRAM設(shè)備110經(jīng)由復(fù)位引腳602(RESET#)接收復(fù)位信號,明系統(tǒng)100已經(jīng)被復(fù)位或加電。例如,當(dāng)系統(tǒng)100被加電時,可由DRAM設(shè)備110生成加電-觸發(fā)器信號。當(dāng)檢測到復(fù)位信號時,鎖存器604可鎖存經(jīng)由配置引腳614提供的數(shù)據(jù)。在本發(fā)明的實(shí)施例中,配置引腳614上的初始化數(shù)據(jù)可由諸如主機(jī)102的外部設(shè)備或其它方便設(shè)備來提供。可選地,如果需要,配置引腳614上的初始化數(shù)據(jù)可經(jīng)由硬接線連接而被提供到所期望的電壓電平(例如,經(jīng)由上拉或下拉寄存器)。
在已經(jīng)接收到復(fù)位信號并且鎖存器604已經(jīng)鎖存了在配置引腳614上提供的初始化數(shù)據(jù)之后,初始化數(shù)據(jù)可被置于適當(dāng)?shù)募拇嫫髦小T诒景l(fā)明的一個實(shí)施例中,初始化數(shù)據(jù)可用于在源地址表608和尺寸表606中查找引導(dǎo)代碼132的源地址和尺寸。如圖所示,如果四個復(fù)位引腳用于源地址,則查找表608可為源地址提供16個不同的條目。例如,源地址可被提供作為NAND閃速存儲器130內(nèi)的塊編號??蛇x地,可提供更多的引腳,并且直接尋址可用于源地址。對于尺寸值,如果四個復(fù)位引腳用于尺寸值,則尺寸表606可包含16個可能的條目,可從這16個可能的條目選擇引導(dǎo)代碼132的尺寸。例如,尺寸值可提供為千字節(jié)(KB)的數(shù)量。如所述的,每個表606、608可具有缺省值,可通過將適當(dāng)?shù)碾妷菏┘拥脚渲靡_614或通過使配置引腳616斷開來應(yīng)用該缺省值。
在源地址和尺寸已經(jīng)被確定后,源地址和尺寸可例如存儲在DMA引擎120的第一寄存器5020中。一旦已經(jīng)將引導(dǎo)代碼132從NAND閃速存儲器130中的引導(dǎo)代碼映像232經(jīng)由DMA傳送加載到SDRAM陣列108,則DMA引擎120就繼續(xù)進(jìn)行加載控制代碼134。
在本發(fā)明的一個實(shí)施例中,可通過使用引導(dǎo)代碼132中的指令以向DRAM設(shè)備110發(fā)出命令來加載控制器代碼134或通過將引導(dǎo)代碼132中的數(shù)據(jù)直接加載到DMA引擎120中的寄存器,而利用存儲在引導(dǎo)代碼132中的數(shù)據(jù)來加載控制器代碼134。而且如前所述,其它源可用于獲得用于加載控制器代碼134的信息。
如圖6所示,在一個實(shí)施例中,利用來自引導(dǎo)代碼DMA寄存器設(shè)置的數(shù)據(jù)和來自引導(dǎo)代碼132本身數(shù)據(jù)的數(shù)據(jù)來獲得控制器代碼DMA寄存器設(shè)置。例如,在一些情況下,控制器代碼映像234可連續(xù)存儲(例如,在下一個可用存儲器空間)在具有引導(dǎo)代碼映像232的NAND閃速存儲器130中。因此,為了確定控制器代碼映像234的源地址,可將引導(dǎo)代碼映像232的源地址加上引導(dǎo)代碼映像232的尺寸610。結(jié)果所得到地址指向控制器代碼映像134的開始處。對于控制器代碼134的目的地址,如前所述,由于控制器代碼可存儲在控制代碼緩沖器116中因而可預(yù)先確定地址。
在一個實(shí)施例中,可從存儲在引導(dǎo)代碼映像232中或位于其末尾處的數(shù)據(jù)獲得要傳送的控制器代碼134的尺寸。例如,預(yù)定義控制器代碼尺寸信息的大小可從引導(dǎo)代碼映像232的末尾加載612到控制器代碼設(shè)置的寄存器5021。一旦寄存器被初始化,DMA引擎120可執(zhí)行控制器代碼134從NAND閃速存儲器130到控制器代碼緩沖器116的DMA傳送。
在一個實(shí)施例中,DMA引擎寄存器5022、5023可用于例如OS/App/DSP代碼136的后續(xù)傳送或用于任何其它傳送??蛇x地,不利用多個寄存器,而是重新使用用于引導(dǎo)代碼132和控制器代碼134傳送的寄存器??蛇x地,在一些情況下,單個寄存器可用于初始化每個DMA傳送。
為了初始化DMA引擎存器5022、5023以便傳送OS/App/DSP代碼136,可使用上述任何方法。在一個實(shí)施例中,主機(jī)102可訪問引導(dǎo)代碼緩沖器212并利用引導(dǎo)代碼132中的指令來初始化DMA引擎存器5022、5023。接著DMA引擎120可自動執(zhí)行OS/App/DSP代碼136的代碼映射而不用與主機(jī)102交互。在已經(jīng)創(chuàng)建了代碼映射204后,主機(jī)102可執(zhí)行來自SDRAM陣列108的OS/App/DSP代碼136并開始常規(guī)操作嵌入式系統(tǒng)100。
雖然對于DRAM存儲器設(shè)備110上面已經(jīng)描述了SDRAM陣列108、數(shù)據(jù)緩沖器120、引導(dǎo)代碼緩沖器212和控制器代碼緩沖器116,但是緩沖器和存儲器陣列的任何方便的配置可用于上述操作。例如,在一個實(shí)施例中,每個DMA傳送可出現(xiàn)在NAND閃速存儲器130和SDRAM陣列108之間而不用在單獨(dú)的專用緩沖器中存儲代碼??蛇x地,在一些情況下,代碼可初始加載到SDRAM陣列108中并接著在由其它設(shè)備和/或電路訪問之前傳送到緩沖器。
如另一個示例,圖7描述了根據(jù)本發(fā)明的一個實(shí)施例的用于存儲引導(dǎo)代碼132和OS代碼136的組合RAM存儲器702(其還可稱為共享緩沖器702)。如圖所示,引導(dǎo)代碼132、OS/App/DSP代碼136和其它數(shù)據(jù)138可如前所述從NAND閃速存儲器130傳送到共享緩沖器702。可選地,其它數(shù)據(jù)可直接傳送到SDRAM陣列108??刂破鞔a134可例如被存儲在控制器代碼緩沖器116中。
在一個實(shí)施例中,為了避免改寫組合存儲器702中的其它數(shù)據(jù),引導(dǎo)代碼132可存儲在組合存儲器702中的引導(dǎo)代碼區(qū)域702中,并且SO代碼、其它代碼和數(shù)據(jù)可存儲在組合存儲器702中的OS代碼/數(shù)據(jù)區(qū)域706中。為了將數(shù)據(jù)有效地存儲到組合存儲器702中,引導(dǎo)代碼區(qū)域704可存儲在組合存儲器702的開始處,同時OS代碼/數(shù)據(jù)區(qū)域706可存儲在組合存儲器702的末尾處。當(dāng)數(shù)據(jù)和代碼被傳送到組合存儲器702時,可從低存儲器地址向上和從高存儲器地址向下來填充存儲器702。在一個實(shí)施例中,控制電路可用于確保引導(dǎo)代碼區(qū)域704和OS代碼/數(shù)據(jù)區(qū)域706沒有沖突出現(xiàn)??蛇x地,在一些情況下,存儲在共享存儲器702中的引導(dǎo)代碼132可用于初始化主機(jī)102并接著在引導(dǎo)了主機(jī)102后被改寫。
如上所述,本發(fā)明的實(shí)施例提供了具有DMA引擎120的DRAM設(shè)備110,其用于將引導(dǎo)代碼132和控制器代碼134從NAND閃速存儲器130自動傳送到DRAM存儲器設(shè)備110。DMA引擎120還可直接或間接接收來自外部設(shè)備的命令,以允許將OS/App/DSP代碼136映射到DRAM設(shè)備110中。在一些情況下,DMA引擎120可執(zhí)行初始引導(dǎo)而不用嵌入式微控制器118或主機(jī)102的輸入,并且可適用于可重新定位的引導(dǎo)/控制器代碼存儲單元。并且,在一些情況下,可能使用共享緩沖器702來存儲引導(dǎo)代碼132和OS或其它代碼136。
盡管前面針對的是本發(fā)明的實(shí)施例,在不偏離其基本范圍的情況下可得出本發(fā)明的其他和另外實(shí)施例,并且其范圍由隨后的權(quán)利要求來確定。
權(quán)利要求
1.一種用于初始化計(jì)算機(jī)系統(tǒng)的方法,其中該計(jì)算機(jī)系統(tǒng)包括處理器、易失性存儲器和非易失性存儲器,該方法包括當(dāng)計(jì)算機(jī)系統(tǒng)被初始化時,自動將存儲在非易失性存儲器中的初始化代碼復(fù)制到易失性存儲器,其中易失性存儲器中的電路自動創(chuàng)建副本;并且通過處理器來執(zhí)行來自易失性存儲器的初始化代碼的副本。
2.權(quán)利要求1的方法,其中自動創(chuàng)建初始代碼的副本包括執(zhí)行直接存儲器訪問來將初始化代碼從非易失性存儲器傳送到易失性存儲器,其中易失性存儲器中的電路執(zhí)行直接存儲器訪問。
3.權(quán)利要求2的方法,其中執(zhí)行用于將初始化代碼從非易失性存儲器傳送到易失性存儲器的直接存儲器訪問包括將引導(dǎo)代碼自動傳送到引導(dǎo)代碼緩沖器;和將控制器代碼自動傳送到控制器代碼緩沖器。
4.權(quán)利要求3的方法,其中引導(dǎo)代碼和控制器代碼被放置在包括引導(dǎo)代碼緩沖器和控制器代碼緩沖器的共享緩沖器中。
5.權(quán)利要求3的方法,其中處理器執(zhí)行來自引導(dǎo)代碼緩沖器的引導(dǎo)代碼,并且其中易失性存儲器設(shè)備上的控制器執(zhí)行來自控制器代碼緩沖器的控制器代碼。
6.一種用于初始化計(jì)算機(jī)系統(tǒng)的方法,其中該計(jì)算機(jī)系統(tǒng)包括處理器、動態(tài)隨機(jī)訪問存儲器(DRAM)存儲器和閃速存儲器,該方法包括當(dāng)計(jì)算機(jī)系統(tǒng)被初始化時,在DRAM存儲器的引導(dǎo)代碼緩沖器中自動創(chuàng)建存儲在閃速存儲器中的引導(dǎo)代碼的副本,其中在DRAM存儲器中的直接存儲器訪問電路自動創(chuàng)建副本;并且執(zhí)行來自DRAM存儲器中引導(dǎo)代碼緩沖器的引導(dǎo)代碼的副本。
7.權(quán)利要求6的方法,其中處理器執(zhí)行來自引導(dǎo)代碼緩沖器的引導(dǎo)代碼的副本,并且還包括響應(yīng)于執(zhí)行引導(dǎo)代碼的副本,而從處理器向DRAM存儲器發(fā)出命令,其中所述命令使直接存儲器訪問電路在DRAM存儲器的存儲器陣列中自動創(chuàng)建存儲在閃速存儲器中的操作系統(tǒng)代碼的副本;并且執(zhí)行來自DRAM存儲器的存儲器陣列的操作系統(tǒng)代碼的副本。
8.權(quán)利要求6的方法,其中經(jīng)由直接存儲器訪問傳送來創(chuàng)建存儲在閃速存儲器中的引導(dǎo)代碼的副本。
9.權(quán)利要求8的方法,其中在處理器和DRAM存儲器之間沒有發(fā)出命令的情況下啟動直接存儲器訪問傳送。
10.權(quán)利要求6的方法,還包括在創(chuàng)建引導(dǎo)代碼的副本后,在DRAM存儲器的控制器代碼緩沖器中自動創(chuàng)建存儲在閃速存儲器中的控制器代碼的副本,其中DRAM存儲器中的直接存儲器訪問電路自動創(chuàng)建該副本;并且用DRAM存儲器中的控制器來執(zhí)行存儲在控制器代碼緩沖器中的控制器代碼的副本。
11.一種用于在嵌入式系統(tǒng)中將初始化代碼從非易失性存儲器加載到易失性存儲器的方法,該方法包括接收加電信號,其表示嵌入式系統(tǒng)已經(jīng)被加電;在易失性存儲器的引腳上讀取初始化代碼的源地址和尺寸數(shù)據(jù);和執(zhí)行初始化代碼從非易失性存儲器到易失性存儲器的直接存儲器訪問傳送。
12.權(quán)利要求11的方法,其中由易失性存儲器內(nèi)的直接存儲器訪問電路來自動執(zhí)行直接存儲器訪問傳送。
13.權(quán)利要求12的方法,還包括根據(jù)在易失性存儲器的引腳上的源地址數(shù)據(jù)和尺寸數(shù)據(jù)來確定引導(dǎo)代碼的源地址和尺寸,其中源地址數(shù)據(jù)表示非易失性存儲器中對應(yīng)于源地址的塊,并且其中尺寸數(shù)據(jù)表示對應(yīng)于引導(dǎo)代碼尺寸的字節(jié)數(shù);并且使用引導(dǎo)代碼的源地址和尺寸來執(zhí)行直接存儲器訪問傳送。
14.權(quán)利要求11的方法,還包括根據(jù)引導(dǎo)代碼的源地址和尺寸數(shù)據(jù)來計(jì)算控制器代碼的源地址;從非易失性存儲器中的預(yù)定位置讀取控制器代碼的尺寸數(shù)據(jù);并且利用所計(jì)算的控制器代碼的源地址和尺寸數(shù)據(jù)來執(zhí)行控制器代碼從非易失性存儲器到易失性存儲器的直接存儲器訪問傳送。
15.權(quán)利要求11的方法,還包括接收來自嵌入式系統(tǒng)的處理器的命令;并且響應(yīng)于接收來自處理器的命令,而執(zhí)行操作系統(tǒng)代碼從非易失性存儲器到易失性存儲器的直接存儲器訪問傳送。
16.一種動態(tài)隨機(jī)訪問存儲器(DRAM)設(shè)備,包括存儲器陣列;緩沖器;和電路,被配置為檢測初始化信號;響應(yīng)于檢測到初始化信號,而執(zhí)行引導(dǎo)代碼從外部非易失性存儲器到緩沖器的直接存儲器訪問傳送。
17.權(quán)利要求16的DRAM設(shè)備,其中當(dāng)DRAM設(shè)備被加電時由DRAM設(shè)備生成初始化信號。
18.權(quán)利要求16的DRAM設(shè)備,其中DRAM設(shè)備還包括第二緩沖器,并且其中所述電路還被配置為自動執(zhí)行控制器代碼從外部非易失性存儲器到第二緩沖器的傳送。
19.權(quán)利要求18的DRAM設(shè)備,還包括控制器電路,被配置為執(zhí)行第二緩沖器中的控制器代碼。
20.權(quán)利要求16的DRAM設(shè)備,其中所述電路還被配置為接收來自外部處理器的命令;并且響應(yīng)于接收到命令,執(zhí)行操作系統(tǒng)代碼從外部非易失性存儲器到存儲器陣列的直接存儲器訪問傳送。
21.一種動態(tài)隨機(jī)訪問存儲器(DRAM)設(shè)備,包括用于存儲的易失性裝置;用于緩沖的裝置;和用于傳送的裝置,被配置為檢測初始化信號;響應(yīng)于檢測到初始化信號,而執(zhí)行引導(dǎo)代碼從用于存儲的外部非易失性裝置到用于緩沖的裝置的直接存儲器訪問傳送。
22.權(quán)利要求21的DRAM設(shè)備,其中當(dāng)DRAM設(shè)備被加電時由DRAM設(shè)備生成初始化信號。
23.權(quán)利要求21的DRAM設(shè)備,其中DRAM設(shè)備還包括用于緩沖的第二裝置,并且其中所述用于傳送的裝置還被配置為自動執(zhí)行控制器代碼從用于存儲的外部非易失性裝置到用于緩沖的第二裝置的傳送。
24.權(quán)利要求23的DRAM設(shè)備,還包括用于控制的裝置,被配置為執(zhí)行存儲在用于緩沖的第二裝置中的控制器代碼。
25.權(quán)利要求21的DRAM設(shè)備,其中用于傳送的裝置還被配置為接收來自用于處理的外部裝置的命令;并且響應(yīng)于接收到命令,而執(zhí)行操作系統(tǒng)代碼從外部非易失性存儲器到用于存儲的易失性裝置的直接存儲器訪問傳送。
26.一種嵌入式系統(tǒng),包括處理器;非易失性存儲器設(shè)備;和易失性存儲器設(shè)備,包括用于與處理器通信的接口;用于與非易失性存儲器通信的接口;緩沖器;存儲器陣列;和電路,被配置為響應(yīng)于檢測到嵌入式系統(tǒng)的初始化,而自動執(zhí)行引導(dǎo)代碼經(jīng)由用于與非易失性存儲器通信的接口從非易失性存儲器到緩沖器的直接存儲器訪問傳送。
27.權(quán)利要求26的嵌入式系統(tǒng),其中處理器被配置為從易失性存儲器設(shè)備讀取存儲在緩沖器中的引導(dǎo)代碼;執(zhí)行所讀取的引導(dǎo)代碼;并且響應(yīng)于執(zhí)行引導(dǎo)代碼,向易失性存儲器中的電路發(fā)出命令,其中,響應(yīng)于接收到發(fā)出的命令,易失性存儲器中的電路被配置為經(jīng)由用于與非易失性存儲器通信的接口將操作系統(tǒng)代碼從非易失性存儲器自動傳送到易失性存儲器設(shè)備的存儲器陣列。
28.權(quán)利要求27的嵌入式系統(tǒng),其中處理器還被配置為檢測來自易失性存儲器設(shè)備的信號,表示完成了操作系統(tǒng)代碼的自動傳送;并且響應(yīng)于檢測到信號,而開始執(zhí)行存儲在易失性存儲器設(shè)備的存儲器陣列中的操作系統(tǒng)代碼。
29.權(quán)利要求26的嵌入式系統(tǒng),其中易失性存儲器設(shè)備還包括第二緩沖器,并且其中易失性存儲器設(shè)備的電路還被配置為響應(yīng)于檢測表示完成了引導(dǎo)代碼的直接存儲器訪問傳送的信號,而自動執(zhí)行控制器代碼經(jīng)由與非易失性存儲器通信的接口從非易失性存儲器設(shè)備到第二緩沖器的第二直接存儲器訪問傳送。
全文摘要
本發(fā)明的實(shí)施例提供了一種用于初始化計(jì)算機(jī)系統(tǒng)的方法和設(shè)備,其中該計(jì)算機(jī)系統(tǒng)包括處理器、易失性存儲器和非易失性存儲器。在一個實(shí)施例中,該方法包括,當(dāng)計(jì)算機(jī)系統(tǒng)被初始化時,自動將存儲在非易失性存儲器中的初始化代碼復(fù)制到易失性存儲器,其中易失性存儲器中的電路自動創(chuàng)建副本,并通過處理器來執(zhí)行來自易失性存儲器的初始化代碼的副本。
文檔編號G06F9/445GK101051275SQ20071000404
公開日2007年10月10日 申請日期2007年1月23日 優(yōu)先權(quán)日2006年1月23日
發(fā)明者R·-S·考 申請人:奇夢達(dá)股份公司