新四季網

新存儲器體系結構中用直接存儲器訪問來系統引導的方法

2023-04-27 15:30:56 2

專利名稱:新存儲器體系結構中用直接存儲器訪問來系統引導的方法
技術領域:
本發明一般涉及計算機系統的初始化。具體地,本發明設計改善的用於引導計算機系統的存儲器體系結構。
背景技術:
許多現代電子設備,比如手機、PDA、可攜式音樂播放器、儀器等通常合併了嵌入式計算機系統。嵌入式計算機系統通常包含計算機處理器(稱為主機)、非易失性存儲器(比如閃速存儲器和/或ROM存儲器)、和易失性存儲器,比如動態隨機訪問存儲器(DRAM)。主機可包括中央處理單元(CPU)、數位訊號處理器(DSP)、微控制器單元(MCU)或直接存儲器訪問(DMA)數據傳輸設備。
在操作期間,主機通常運行作業系統或其它操作代碼。因為易失性存儲器通常比非易失性存儲器可被更快速地訪問,因此操作代碼可存儲在易失性存儲器中並由主機從易失性存儲器訪問。但是,由於易失性存儲器要求電源來維持存儲於其中的數據,因此當嵌入式系統掉電時,易失性存儲器通常被擦除。由此,當嵌入式系統掉電(例如當嵌入式系統進入復位狀態時),主機系統所要求的操作代碼通常被加載到易失性存儲器中。通常,從非易失性存儲器(例如ROM和/或閃速存儲器)加載操作代碼,非易失性存儲器即使在嵌入式系統沒有加電時也保持所存儲的數據。將存儲在非易失性存儲器中的代碼加載到易失性存儲器中並執行來自易失性存儲器的代碼的過程可稱為代碼映射(code shadowing)。
當嵌入式系統被加電時,嵌入式系統通常執行引導序列以正確地從非易失性存儲器加載操作代碼到易失性存儲器,並用操作代碼來初始化主機。為了執行引導序列,主機通常訪問存儲在非易失性存儲器的預定區域中的引導代碼。引導代碼是可由主機執行的簡單代碼,使主機能夠執行將操作代碼加載到易失性存儲器並開始執行操作代碼所要求的更複雜的動作。
在一些情況下,主機可利用直接存儲器訪問(DMA)將操作代碼從非易失性存儲器傳送到易失性存儲器。DMA允許部分的存儲器快速並自動地從一個存儲單元移動到另一個存儲單元。為了執行DMA傳送,主機可能需要初始化DMA引擎。在一些情況下,DMA引擎可位於主機中。為了初始化DMA引擎,主機可使用由引導代碼提供的信息和/或指令。一旦DMA引擎被初始化,則主機可向DMA引擎發出命令將操作代碼從非易失性存儲器加載到易失性存儲器。主機接著可開始執行操作代碼和其它主機正確操作所需要的代碼。
如前所述引導嵌入式系統對於主機可能需要各種特定的配置。例如,主機通常要求被配置為將多種存儲器(閃速、ROM、和DRAM類型的存儲器)對接的多個接口。主機還通常被配置為自動加載引導代碼、加載用於嵌入式微控制器的控制器代碼、並提供初始化和管理從非易失性存儲器到易失性存儲器的DMA傳送的能力以作為一部分的引導序列。主機引導嵌入式系統所要求的這種特定配置通常降低了靈活性並增加了主機和嵌入式系統的設計成本。
由此,所需要的是一種改善的用於引導嵌入式系統的系統和方法。

發明內容
本發明的實施例提供了一種用於初始化計算機系統的方法和設備,其中該計算機系統包括處理器、易失性存儲器和非易失性存儲器。在一個實施例中,該方法包括,當計算機系統被初始化時,自動將存儲在非易失性存儲器中的初始化代碼複製到易失性存儲器,其中易失性存儲器中的電路自動創建副本,並通過處理器來執行來自易失性存儲器的初始化代碼的副本。


因此,參考實施例可得到詳細理解本發明的上述特徵的方式和上面簡要概括的本發明更特殊的描述,這些實施例中一些在附圖中說明。但是注意到,附圖只說明本發明的典型實施例,並因此不被認為限制其範圍,對於本發明可承認其它等同的有效實施例。
圖1是描述根據本發明的一個實施例的示例系統的框圖。
圖2是描述示例DRAM設備和NAND閃速存儲器的詳細視圖和數據路徑的框圖。
圖3A和3B是描述根據本發明的一個實施例的用於嵌入式系統的示例引導序列的流程圖。
圖4是描述根據本發明的一個實施例的用於引導嵌入式系統的示例狀態機的狀態圖。
圖5是描述根據本發明的一個實施例的示例DMA引擎/參數設置的詳細視圖的框圖。
圖6是描述根據本發明的一個實施例的用於利用感知復位(sense-on-reset)方案來初始化DMA引擎的電路的框圖。
圖7描述了根據本發明的一個實施例的用於存儲引導代碼和OS代碼的組合RAM存儲器。
具體實施例方式
本發明的實施例提供一種改進的用於引導嵌入式系統的系統和方法。本發明的一個實施例中,存儲在非易失性存儲器中的引導代碼和控制器代碼可由位於易失性存儲器晶片上的DMA引擎加載到引導代碼緩衝器和控制器代碼緩衝器中。通過利用位於易失性存儲器晶片上的DMA引擎來加載引導和控制器代碼,可將引導嵌入式系統所需的處理工作量從主機處理器卸載到易失性存儲器晶片,由此降低主機處理器和嵌入式系統的複雜度(以及因此的總成本)。
在已經將引導代碼從非易失性存儲器加載到易失性存儲器中的引導代碼緩衝器後,主機處理器可接著訪問存儲在引導代碼緩衝器中的引導代碼。當主機訪問存儲在引導代碼緩衝器中的引導代碼時,主機可執行引導操作。在一個實施例中,引導操作可包括向DMA引擎發出命令以加載易失性存儲器中的作業系統代碼。主機可接著執行存儲在易失性存儲器中的作業系統代碼。在一個實施例中,引導代碼和控制器代碼可由DMA引擎加載到易失性存儲器晶片中而不用與主機交互。
下面對於包括主機處理器、易失性存儲器和非易失性存儲器的嵌入式系統來描述本發明的實施例。但是,在一些情況下,嵌入式系統可包含多個主機處理器、多個易失性存儲器和多個非易失性存儲器。易失性存儲器可包括任何類型的DRAM、SRAM或者任何其它類型的易失性存儲器。非易失性存儲器可包括任何類型的NAND閃速存儲器、NOR閃速存儲器、可編程只讀存儲器(PROM)、電可擦除可編程只讀存儲器(EE-PROM)、只讀存儲器(ROM)、或任何其它類型的非易失性存儲器。主機處理器可包括任何類型的處理器,包括中央處理單元(CPU)、數位訊號處理器(DSP)、微控制器單元(MCU)或直接存儲器訪問(DMA)數據傳輸設備。並且在一些情況下,系統中的每塊晶片可包含多種處理器和/或存儲器。例如,主機可包括CPU、DSP和SRAM。在一些情況下,非易失性存儲器可包括ROM和閃速存儲器。本領域技術人員應當容易理解可與本發明實施例一起使用的其它示例組合。
示例嵌入式系統圖1是描述根據本發明的一個實施例的示例系統100的框圖。如圖所示,系統100包括主機102、易失性存儲器(DRAM設備110)和非易失性存儲器(NAND閃速存儲器130)。主機可經由DRAM連接104訪問DRAM設備110。DRAM設備110可經由閃速接口122和閃速存儲器連接124訪問NAND閃速存儲器130。在一些情況下,由於閃速接口位於DRAM設備110上,因此主機102可不需要閃速存儲器接口或連接,由此簡化了主機102的設計和選擇。可選地,在需要時,主機102可包括閃速存儲器接口和連接。
在本發明的一個實施例中,DRAM設備110可包括SDRAM存儲器陣列108。DRAM設備還可包含引導代碼和數據緩衝器106、DRAM接口114、閃速管理器112、控制器代碼緩衝器116、嵌入式微控制器核118和DMA引擎120。如下所述,NAND閃速接口122可用於訪問存儲在NAND閃速存儲器130中的信息,包括引導代碼132、控制器代碼134、作業系統和應用代碼136、數據138和任何其它存儲在NAND閃速存儲器130中的信息。
圖2是描述根據本發明的一個實施例的DRAM設備110和NAND閃速存儲器130的詳細視圖和數據路徑的框圖。在一些情況下,NAND閃速存儲器130可被劃分為多個塊(blk0到blkm)並被分區(例如劃分為不重疊的存儲器區域)。在圖1中描述的每種類型的代碼132、134、136可作為映像(例如從單個源得到的副本)存儲在分區中。如圖2所示,NAND閃速存儲器130可包含控制器代碼映像234、引導映像232、以及作業系統、應用和/或DSP代碼映像236。NAND閃速存儲器130還可包含其它數據138。並且,如前所述,DRAM存儲器設備110可包含數據和引導代碼緩衝器106。在一些情況下,數據緩衝器210和引導代碼緩衝器212可被提供作為分離的緩衝器,如圖所示。
如下對於引導序列所述,DMA引擎電路120可用於自動將引導代碼132從引導代碼映像232加載到引導代碼緩衝器212,並且加載來自控制器代碼映像234的控制器代碼134。在已經將引導代碼132和控制器代碼134加載到DRAM存儲器設備110後,發給DMA引擎120的命令可用來啟動DMA訪問,其將來自OS、應用、和DSP代碼映像236的所需要代碼以及其它數據138複製到代碼映射240和存儲在SDRAM陣列108中的其它數據202中。
在一些情況下,通過將工作從主機102卸載到DRAM存儲器設備110中的DMA引擎120和嵌入式微控制器118,來簡化主機102和嵌入式系統100的設計和操作。並且,通過將引導代碼132、控制器代碼134、和OS/應用/DSP代碼136存儲到可編程非易失性存儲器130中,嵌入式系統100操作所需要的代碼可以更靈活的方式被存儲和取回。例如,為了更新引導代碼132、控制器代碼134、和/或OS/應用/DSP代碼136,可僅僅在可編程非易失性存儲器130中的舊代碼上重寫新的代碼。因為有關代碼存儲和取回的信息還可存儲在可編程非易失性存儲器中,所以在更新任何代碼時,新的存儲和取回信息可被編程到可編程非易失性存儲器130中。
示例引導序列圖3A和3B是描述根據本發明的一個實施例的用於嵌入式系統100的示例引導序列的流程圖。引導序列可利用存儲在NAND閃速存儲器130中的信息。在例如NAND程式設計師302初始引導系統100之前,該信息可存儲在NAND閃速存儲器130中。NAND程式設計師302可將引導代碼132(步驟304)、控制器代碼134(步驟306)和OS代碼136(步驟308)燒進NAND閃速存儲器130。在為每個代碼132、134、136選擇相關存儲器尺寸和位置時進行了本領域技術人員已知的設計考慮。
當在步驟310系統100被加電時,在步驟312引導序列可通過加載引導代碼132而開始。在一個實施例中,利用DRAM存儲器設備110的DMA引擎電路120,可將引導代碼132從NAND閃速存儲器130加載到引導代碼緩衝器212。本領域技術人員已知的是,DMA訪問可包括將引導代碼132從NAND閃速存儲器130自動傳送到引導代碼緩衝器212而不需要外部控制或輸入,例如通過主機102或其它外部控制器電路。DMA訪問可繼續直到DMA加載完成(步驟314)。
DMA引擎電路120可利用DRAM存儲器設備110的NAND閃速接口122來訪問NAND閃速存儲器130。在一個實施例中,DMA引擎電路120或DRMA設備中的其它適當電路可被自動配置為從NAND閃速存儲器130的預定義區域(例如從塊0、存儲器地址0開始並繼續指定長度)加載引導代碼132。可選地,引導代碼的源地址和尺寸可由外部設備、由存儲在存儲器區域中(例如ROM中或NAND閃速存儲器130的預定義區域中)的數據或以另一方式提供,如下所述。
當已經在步驟312和314加載了引導代碼132後,在步驟316可開始加載由嵌入式微控制器核118使用的控制器代碼116。在一些情況下,在引導代碼132已經完成加載後自動啟動控制器代碼134的加載。在一個實施例中,可將控制器代碼134從NAND閃速存儲器130加載到控制器代碼緩衝器116,其中控制器代碼134可由嵌入式微控制器核118訪問。在一些情況下,可將DMA引擎120配置為例如在加載引導代碼132後自動加載控制器代碼134。利用引導代碼132中的指令、利用從外部設備發出的指令、或利用本領域技術人員已知的其它方式,可從NAND閃速存儲器130的預定義區域加載控制器代碼134。下面還會更詳細地描述加載引導和控制器代碼132、134的其它實施例。用於加載控制器代碼134的DMA訪問可繼續直到在步驟318完成加載。
在引導代碼132和控制器代碼134已經分別加載到引導代碼緩衝器212和控制器代碼緩衝器116中後,在步驟320可激活嵌入式微控制器118,並且可設置NAND閃速管理器112、誤差校正代碼(ECC)和代碼解壓縮工具。嵌入式微控制器118可用於為NAND閃速存儲器130提供NAND閃速管理功能(例如,由此從主機102卸載這種閃速存儲器管理)。NAND閃速管理器112還可由嵌入式微控制器118用來訪問NAND閃速存儲器130(例如通過提供對從NAND閃速存儲器130讀取和向NAND閃速存儲器130寫入的支持)。ECC工具可用來確保從NAND閃速存儲器130接收的數據已經被正確傳輸並可能地校正傳輸中的錯誤,如果有的話。代碼解壓縮工具可用來解壓縮從NAND閃速存儲器130取回的以壓縮格式存儲的代碼(例如OS/應用代碼136)。
在已經激活嵌入式微控制器118後並且在已經初始化有關的支持電路後,可從引導緩衝器212引導主機102。在本發明的一個實施例中,引導緩衝器212可由主機102經由DRAM連接104來訪問。例如,引導緩衝器212可由主機102通過從DRAM存儲器設備110內的特定的、預定義存儲器地址請求數據來訪問。可選地,從存儲器設備110發出的特殊命令可用來訪問引導緩衝器212。主機102可使用存儲在引導緩衝器212中的引導代碼132來執行將作業系統代碼136加載到DRAM存儲器設備110中並開始執行作業系統代碼136以及主機系統中其它硬體設備等所需的更複雜的動作。例如,引導代碼132可禁止中斷、初始化主機102中的模式寄存器,並向存儲器設備110發出命令來開始作業系統代碼136的代碼映射。引導代碼132還可提供指明哪些命令應當發給存儲器設備110以執行代碼映射操作的信息,以及NAND閃速存儲器130內作業系統代碼132的位置。
當在步驟322主機102已經引導並初始化硬體後,在步驟328可加載OS/App/DSP映像236。在本發明的一個實施例中,主機102可向DMA引擎120發出命令來啟動經由DMA傳送將OS/App/DSP映像236從NAND閃速存儲器130加載到SDRAM陣列108。在一些情況下,主機102可使用引導代碼132來向DMA引擎120和/或控制器118發出適當的命令。一旦命令已經發給DMA引擎120,則DMA引擎120可自動並自發地執行DMA傳送而不用與主機102交互。同時,主機102可與一些其它任務(可包括等待狀態中的等待)一起保持活動,直到存儲器設備110和/或DMA引擎120指示映射完成(步驟324)。
在加載OS/App/DSP映像236的同時,在步驟330,可利用嵌入式ECC來校驗正在加載的代碼並將其解壓縮(如果代碼236以壓縮格式存儲)。在一個實施例中,嵌入式微控制器核118和/或其它部件(例如DMA引擎電路120和NAND閃速管理器112)可利用ECC來校驗傳送的代碼並執行解壓縮。DMA傳送可繼續直到代碼映射204的DMA加載完成(步驟332)。
在主機102確定映射完成(步驟324)後,主機可從位於SDRAM陣列108中的代碼映射204啟動作業系統代碼136(和主機102使用的任何其它代碼)。在一個實施例中,在OS/App/DSP代碼的DMA傳送136完成後,由DMA引擎120發出的信號或命令可用來向主機102指明已經完成了代碼映射。當主機102從DRAM存儲器設備110啟動操作代碼時,嵌入式系統100的普通操作可開始,成功地完成了引導序列300。
上述的引導序列因為若干原因可幫助改善嵌入式系統的設計。例如,在一些情況下,主機102可不用於引導準備,比如加載引導代碼132,由此克服了在加載引導代碼132之前使能主機102的在先初始化的需要。並且,主機102可不涉及NAND閃速存儲器130的初始化,從而又減少了主機102的在先初始化的需要。此外,由於DRAM存儲器設備110可包含DMA引擎120和嵌入式微控制器核118,所以因此主機102不需要提供對DMA傳送和代碼映射的廣泛支持。相反,主機102可僅僅向DRAM存儲器設備110發出命令並允許DRAM存儲器設備110執行必要的DMA傳送。
圖4是描述根據本發明的一個實施例的用於引導嵌入式系統100的示例狀態機400的狀態圖。當系統100被初始加電時,每個系統部件可進入復位狀態402。在下一個狀態(DMA參數狀態404)中,DMA引擎電路120可用DMA參數(例如源地址、目的地址和要移動的數據尺寸)來初始化,以便加載引導代碼132。在本發明的一個實施例中,利用感知復位配置(SOR),引導代碼132的DMA參數可放置在DMA引擎120的寄存器(Reg0)中。下面將詳細描述DMA引擎寄存器和SOR配置。
在已經存儲了引導代碼132的DMA參數之後,可在DMA加載狀態406下執行DMA加載。在一個實施例中,DMA引擎120可利用自動計數器來將引導代碼132從源地址傳送到目的地址,直到由尺寸參數指定的引導代碼132已經被移動。每次將讀取請求發送到NAND閃速存儲器130時,來自NAND閃速存儲器的信號(R/B#,其在NAND存儲器就緒時被聲明並在NAND存儲器繁忙時被降低)可保持低,這表明正在從NAND閃速存儲器130加載頁面(例如NAND閃速存儲器130處於繁忙狀態)。當R/B#信號被聲明時,這表明頁面已經被加載,DMA引擎120可通過從NAND閃速存儲器130加載另一頁面來繼續DMA傳送(取決於計數器值和尺寸參數),或完成到下一個狀態的加載和轉移。
在引導代碼132已經經由DMA引擎120完成加載後,自動觸發器可使狀態轉移回DMA參數狀態404,其中用於傳送控制器代碼134的DMA參數被初始化。在一個實施例中,可通過將源地址、目的地址和控制器代碼134的尺寸加載到DMA引擎120的寄存器(Reg1)來初始化DMA參數。在已經存儲了控制器代碼134的DMA參數之後,狀態可轉移到DMA加載狀態406,其中控制器代碼134的DMA加載通過將代碼134從源地址傳送到目的地址來執行,同時如上所述計數器跟蹤所傳送代碼的尺寸。
在已經加載了控制器代碼134並完成了初始DMA傳送之後,狀態可轉移到DMA空閒狀態408,其中DMA引擎120保持在空閒狀態408。同時,嵌入式微處理器118可在控制器開始狀態410處啟動並初始化對訪問NAND閃速存儲器130的支持,對諸如NAND閃速管理器112、ECC和代碼解壓縮功能的支持。如上所述,嵌入式微處理器118可利用存儲在控制器代碼緩衝器116中的控制器代碼134來執行初始化。在嵌入式微處理器啟動並且NAND閃速存儲器130可工作後,狀態可轉移到主機引導狀態412,其中例如利用存儲在引導代碼緩衝器212中的引導代碼132來啟動主機102。
當主機102引導並完成任何硬體初始化時,主機可向DMA引擎120發出命令(例如,使用由引導代碼132提供的命令)來使DMA引擎120從DMA空閒狀態408轉移到DMA參數狀態404,其中主機102初始化DMA引擎120的DMA參數以便執行OS/App/DSP映像236從NAND閃速存儲器130到SDRAM陣列108的代碼映射。主機102可例如通過為OS/App/DSP映像236的源地址、目的地址和尺寸提供DMA參數來初始化DMA引擎120。OS/App/DSP映像236的參數可例如被存儲在DMA引擎寄存器(Reg2)中。在已經存儲了OS/App/DSP映像236的DMA參數之後,狀態可轉移到DMA加載狀態406,其中通過將OS/App/DSP代碼136從源地址傳送到目的地址來執行OS/App/DSP映像236的DMA加載,同時計數器如前所述跟蹤所傳送的代碼的尺寸。
在已經經由DMA傳送將OS/App/DSP代碼136加載到SDRAM陣列108後,DMA引擎120可返回到DMA空閒狀態408,同時主機102利用代碼映射204來啟動作業系統(主機啟動OS狀態414)。在主機102開始普通操作後,主機102或嵌入式系統100中的其它部件可在數據傳送狀態416開始時初始化其它DMA數據傳送。
DMA引擎的控制圖5是描述根據本發明的一個實施例的示例DMA引擎120和參數設置的詳細視圖的框圖。如圖所示,DMA引擎120可包含多個寄存器5020、5021、5022、5023,地址生成器和計數器504,NAND訪問控制506以及DMA有限狀態機(FSM)508。DMA引擎120還可包含引導/OS/數據下載控制510、控制器代碼下載控制512和數據上載控制514。下面更詳細地描述每個部件。
在本發明的一個實施例中,DMA引擎寄存器5020、5021、5022、5023可用於控制從NAND閃速存儲器130加載哪些數據到SDRAM 108,反之亦然。如圖所示,在寄存器中可存儲指示要傳送的數據的源地址(SA)、目的地址(DA)和尺寸的值。
為了執行DMA傳送,寄存器5020、5021、5022、5023可被輸入到由DMA FSM 508控制的地址生成器和計數器504中。地址生成器和計數器504可使用每個源地址、目的地址和尺寸條目來生成源地址和目的地址。地址生成器和計數器504還可保持監控DMA傳送進度的計數器。例如,當啟動DMA傳送時,地址生成器和計數器504可初始化計數器並提供源和目的地址給NAND閃速存儲器130(經由NAND閃速接口122)和SDRAM陣列108(經由SDRAM接口114或其它例如用於引導代碼緩衝器212的接口)。
在地址生成器和計數器已經提供了源和目的地址後,DMA FSM508可向NAND訪問控制506發送命令來請求將從源地址讀取數據並將數據寫入到目的地址。取決於正在傳送的數據,DMA引擎120可利用引導/OS/數據下載控制510、控制器代碼下載控制512或數據上載控制514來執行傳送。在已經執行了傳送之後,地址生成器和計數器504可增加或減少計數器並為DMA傳送計算下一個源和目的地址。DMA傳送可繼續直到已經傳送了等於尺寸參數的數據量(例如利用地址生成器和計數器504中的計數器來跟蹤)。
DMA引擎的初始化如上所述,在本發明的一個實施例中,當嵌入式系統被加電並且DMA引擎120被初始化時,DMA引擎120可將引導代碼132和控制器代碼134從NAND閃速存儲器130自動傳送到DRAM設備110中的緩衝器106、116,以供初始化和操作主機102和嵌入式微控制器118使用。接著可將命令發給DRAM設備110(例如,通過主機102),使OS/APP/DSP代碼136經由DMA傳送從NAND閃速存儲器130加載到SDRAM陣列108,其中代碼136可因此由主機訪問。在一些情況下,在一個實施例中,發給DMA引擎120(例如給DMA FSM 508)的加電-觸發信號和主機-觸發信號可用於將DMA FSM置於適當狀態以便加載代碼、控制器和/或OS/APP/DSP代碼132、134、136。例如當接收到加電-觸發信號時,DMA引擎120可自動加載引導和控制器代碼132、134。隨後,當接收到主機-觸發信號時,DMA引擎120可自動加載OS/APP/DSP代碼136。
在本發明的一個實施例中,為了執行引導代碼132從NAND閃速存儲器130到引導代碼緩衝器212的初始傳送,DMA引擎120的第一寄存器5020可用正在傳送的引導代碼132的源地址SA和目的地址DA以及尺寸來初始化。在一些情況下,可在DMA引擎120中預置初始化信息(例如存儲在ROM或硬接線中)。可選地,初始化信息可存儲在NAND閃速存儲器130的預定義區域。還可從任何方便的外部源接收初始化信息。在一些情況下,組合源(預定義的、ROM、NAND閃速存儲器130和/或外部源)可用於獲得DMA引擎120的初始化信息。還可從這種源或這種源的組合接收控制器代碼和OS/APP/DSP代碼136的初始化信息。
圖6是描述根據本發明的一個實施例的用於利用感知復位方案來初始化DMA引擎120的電路600的框圖。在所述的情況下,施加到配置引腳614的信號可用於選擇將要加載的引導代碼132的源地址SA和尺寸。如上所述,引導代碼132可在預定義位置處被加載到引導代碼緩衝器中,使得引導代碼132的目的地址DA可不經由配置引腳614來利用或提供。在一些情況下,因為對於一些諸如DRAM設備110的設備類型,在非復位模式期間對於常規操作可共享配置引腳614(例如,配置引腳614在非復位模式期間可用作為地址引腳或控制引腳),所以不需要或增加附加引腳給DRAM設備110來為DMA引擎120的初始化提供源地址和尺寸。
在本發明的一個實施例中,例如在感知復位(SOR)操作期間,可利用鎖存器604來鎖存放置在配置引腳614上的數據。在SOR操作期間,可內部生成復位信號或由DRAM設備110經由復位引腳602(RESET#)接收復位信號,明系統100已經被復位或加電。例如,當系統100被加電時,可由DRAM設備110生成加電-觸發器信號。當檢測到復位信號時,鎖存器604可鎖存經由配置引腳614提供的數據。在本發明的實施例中,配置引腳614上的初始化數據可由諸如主機102的外部設備或其它方便設備來提供。可選地,如果需要,配置引腳614上的初始化數據可經由硬接線連接而被提供到所期望的電壓電平(例如,經由上拉或下拉寄存器)。
在已經接收到復位信號並且鎖存器604已經鎖存了在配置引腳614上提供的初始化數據之後,初始化數據可被置於適當的寄存器中。在本發明的一個實施例中,初始化數據可用於在源地址表608和尺寸表606中查找引導代碼132的源地址和尺寸。如圖所示,如果四個復位引腳用於源地址,則查找表608可為源地址提供16個不同的條目。例如,源地址可被提供作為NAND閃速存儲器130內的塊編號。可選地,可提供更多的引腳,並且直接尋址可用於源地址。對於尺寸值,如果四個復位引腳用於尺寸值,則尺寸表606可包含16個可能的條目,可從這16個可能的條目選擇引導代碼132的尺寸。例如,尺寸值可提供為千字節(KB)的數量。如所述的,每個表606、608可具有預設值,可通過將適當的電壓施加到配置引腳614或通過使配置引腳616斷開來應用該預設值。
在源地址和尺寸已經被確定後,源地址和尺寸可例如存儲在DMA引擎120的第一寄存器5020中。一旦已經將引導代碼132從NAND閃速存儲器130中的引導代碼映像232經由DMA傳送加載到SDRAM陣列108,則DMA引擎120就繼續進行加載控制代碼134。
在本發明的一個實施例中,可通過使用引導代碼132中的指令以向DRAM設備110發出命令來加載控制器代碼134或通過將引導代碼132中的數據直接加載到DMA引擎120中的寄存器,而利用存儲在引導代碼132中的數據來加載控制器代碼134。而且如前所述,其它源可用於獲得用於加載控制器代碼134的信息。
如圖6所示,在一個實施例中,利用來自引導代碼DMA寄存器設置的數據和來自引導代碼132本身數據的數據來獲得控制器代碼DMA寄存器設置。例如,在一些情況下,控制器代碼映像234可連續存儲(例如,在下一個可用存儲器空間)在具有引導代碼映像232的NAND閃速存儲器130中。因此,為了確定控制器代碼映像234的源地址,可將引導代碼映像232的源地址加上引導代碼映像232的尺寸610。結果所得到地址指向控制器代碼映像134的開始處。對於控制器代碼134的目的地址,如前所述,由於控制器代碼可存儲在控制代碼緩衝器116中因而可預先確定地址。
在一個實施例中,可從存儲在引導代碼映像232中或位於其末尾處的數據獲得要傳送的控制器代碼134的尺寸。例如,預定義控制器代碼尺寸信息的大小可從引導代碼映像232的末尾加載612到控制器代碼設置的寄存器5021。一旦寄存器被初始化,DMA引擎120可執行控制器代碼134從NAND閃速存儲器130到控制器代碼緩衝器116的DMA傳送。
在一個實施例中,DMA引擎寄存器5022、5023可用於例如OS/App/DSP代碼136的後續傳送或用於任何其它傳送。可選地,不利用多個寄存器,而是重新使用用於引導代碼132和控制器代碼134傳送的寄存器。可選地,在一些情況下,單個寄存器可用於初始化每個DMA傳送。
為了初始化DMA引擎存器5022、5023以便傳送OS/App/DSP代碼136,可使用上述任何方法。在一個實施例中,主機102可訪問引導代碼緩衝器212並利用引導代碼132中的指令來初始化DMA引擎存器5022、5023。接著DMA引擎120可自動執行OS/App/DSP代碼136的代碼映射而不用與主機102交互。在已經創建了代碼映射204後,主機102可執行來自SDRAM陣列108的OS/App/DSP代碼136並開始常規操作嵌入式系統100。
雖然對於DRAM存儲器設備110上面已經描述了SDRAM陣列108、數據緩衝器120、引導代碼緩衝器212和控制器代碼緩衝器116,但是緩衝器和存儲器陣列的任何方便的配置可用於上述操作。例如,在一個實施例中,每個DMA傳送可出現在NAND閃速存儲器130和SDRAM陣列108之間而不用在單獨的專用緩衝器中存儲代碼。可選地,在一些情況下,代碼可初始加載到SDRAM陣列108中並接著在由其它設備和/或電路訪問之前傳送到緩衝器。
如另一個示例,圖7描述了根據本發明的一個實施例的用於存儲引導代碼132和OS代碼136的組合RAM存儲器702(其還可稱為共享緩衝器702)。如圖所示,引導代碼132、OS/App/DSP代碼136和其它數據138可如前所述從NAND閃速存儲器130傳送到共享緩衝器702。可選地,其它數據可直接傳送到SDRAM陣列108。控制器代碼134可例如被存儲在控制器代碼緩衝器116中。
在一個實施例中,為了避免改寫組合存儲器702中的其它數據,引導代碼132可存儲在組合存儲器702中的引導代碼區域702中,並且SO代碼、其它代碼和數據可存儲在組合存儲器702中的OS代碼/數據區域706中。為了將數據有效地存儲到組合存儲器702中,引導代碼區域704可存儲在組合存儲器702的開始處,同時OS代碼/數據區域706可存儲在組合存儲器702的末尾處。當數據和代碼被傳送到組合存儲器702時,可從低存儲器地址向上和從高存儲器地址向下來填充存儲器702。在一個實施例中,控制電路可用於確保引導代碼區域704和OS代碼/數據區域706沒有衝突出現。可選地,在一些情況下,存儲在共享存儲器702中的引導代碼132可用於初始化主機102並接著在引導了主機102後被改寫。
如上所述,本發明的實施例提供了具有DMA引擎120的DRAM設備110,其用於將引導代碼132和控制器代碼134從NAND閃速存儲器130自動傳送到DRAM存儲器設備110。DMA引擎120還可直接或間接接收來自外部設備的命令,以允許將OS/App/DSP代碼136映射到DRAM設備110中。在一些情況下,DMA引擎120可執行初始引導而不用嵌入式微控制器118或主機102的輸入,並且可適用於可重新定位的引導/控制器代碼存儲單元。並且,在一些情況下,可能使用共享緩衝器702來存儲引導代碼132和OS或其它代碼136。
儘管前面針對的是本發明的實施例,在不偏離其基本範圍的情況下可得出本發明的其他和另外實施例,並且其範圍由隨後的權利要求來確定。
權利要求
1.一種用於初始化計算機系統的方法,其中該計算機系統包括處理器、易失性存儲器和非易失性存儲器,該方法包括當計算機系統被初始化時,自動將存儲在非易失性存儲器中的初始化代碼複製到易失性存儲器,其中易失性存儲器中的電路自動創建副本;並且通過處理器來執行來自易失性存儲器的初始化代碼的副本。
2.權利要求1的方法,其中自動創建初始代碼的副本包括執行直接存儲器訪問來將初始化代碼從非易失性存儲器傳送到易失性存儲器,其中易失性存儲器中的電路執行直接存儲器訪問。
3.權利要求2的方法,其中執行用於將初始化代碼從非易失性存儲器傳送到易失性存儲器的直接存儲器訪問包括將引導代碼自動傳送到引導代碼緩衝器;和將控制器代碼自動傳送到控制器代碼緩衝器。
4.權利要求3的方法,其中引導代碼和控制器代碼被放置在包括引導代碼緩衝器和控制器代碼緩衝器的共享緩衝器中。
5.權利要求3的方法,其中處理器執行來自引導代碼緩衝器的引導代碼,並且其中易失性存儲器設備上的控制器執行來自控制器代碼緩衝器的控制器代碼。
6.一種用於初始化計算機系統的方法,其中該計算機系統包括處理器、動態隨機訪問存儲器(DRAM)存儲器和閃速存儲器,該方法包括當計算機系統被初始化時,在DRAM存儲器的引導代碼緩衝器中自動創建存儲在閃速存儲器中的引導代碼的副本,其中在DRAM存儲器中的直接存儲器訪問電路自動創建副本;並且執行來自DRAM存儲器中引導代碼緩衝器的引導代碼的副本。
7.權利要求6的方法,其中處理器執行來自引導代碼緩衝器的引導代碼的副本,並且還包括響應於執行引導代碼的副本,而從處理器向DRAM存儲器發出命令,其中所述命令使直接存儲器訪問電路在DRAM存儲器的存儲器陣列中自動創建存儲在閃速存儲器中的作業系統代碼的副本;並且執行來自DRAM存儲器的存儲器陣列的作業系統代碼的副本。
8.權利要求6的方法,其中經由直接存儲器訪問傳送來創建存儲在閃速存儲器中的引導代碼的副本。
9.權利要求8的方法,其中在處理器和DRAM存儲器之間沒有發出命令的情況下啟動直接存儲器訪問傳送。
10.權利要求6的方法,還包括在創建引導代碼的副本後,在DRAM存儲器的控制器代碼緩衝器中自動創建存儲在閃速存儲器中的控制器代碼的副本,其中DRAM存儲器中的直接存儲器訪問電路自動創建該副本;並且用DRAM存儲器中的控制器來執行存儲在控制器代碼緩衝器中的控制器代碼的副本。
11.一種用於在嵌入式系統中將初始化代碼從非易失性存儲器加載到易失性存儲器的方法,該方法包括接收加電信號,其表示嵌入式系統已經被加電;在易失性存儲器的引腳上讀取初始化代碼的源地址和尺寸數據;和執行初始化代碼從非易失性存儲器到易失性存儲器的直接存儲器訪問傳送。
12.權利要求11的方法,其中由易失性存儲器內的直接存儲器訪問電路來自動執行直接存儲器訪問傳送。
13.權利要求12的方法,還包括根據在易失性存儲器的引腳上的源地址數據和尺寸數據來確定引導代碼的源地址和尺寸,其中源地址數據表示非易失性存儲器中對應於源地址的塊,並且其中尺寸數據表示對應於引導代碼尺寸的字節數;並且使用引導代碼的源地址和尺寸來執行直接存儲器訪問傳送。
14.權利要求11的方法,還包括根據引導代碼的源地址和尺寸數據來計算控制器代碼的源地址;從非易失性存儲器中的預定位置讀取控制器代碼的尺寸數據;並且利用所計算的控制器代碼的源地址和尺寸數據來執行控制器代碼從非易失性存儲器到易失性存儲器的直接存儲器訪問傳送。
15.權利要求11的方法,還包括接收來自嵌入式系統的處理器的命令;並且響應於接收來自處理器的命令,而執行作業系統代碼從非易失性存儲器到易失性存儲器的直接存儲器訪問傳送。
16.一種動態隨機訪問存儲器(DRAM)設備,包括存儲器陣列;緩衝器;和電路,被配置為檢測初始化信號;響應於檢測到初始化信號,而執行引導代碼從外部非易失性存儲器到緩衝器的直接存儲器訪問傳送。
17.權利要求16的DRAM設備,其中當DRAM設備被加電時由DRAM設備生成初始化信號。
18.權利要求16的DRAM設備,其中DRAM設備還包括第二緩衝器,並且其中所述電路還被配置為自動執行控制器代碼從外部非易失性存儲器到第二緩衝器的傳送。
19.權利要求18的DRAM設備,還包括控制器電路,被配置為執行第二緩衝器中的控制器代碼。
20.權利要求16的DRAM設備,其中所述電路還被配置為接收來自外部處理器的命令;並且響應於接收到命令,執行作業系統代碼從外部非易失性存儲器到存儲器陣列的直接存儲器訪問傳送。
21.一種動態隨機訪問存儲器(DRAM)設備,包括用於存儲的易失性裝置;用於緩衝的裝置;和用於傳送的裝置,被配置為檢測初始化信號;響應於檢測到初始化信號,而執行引導代碼從用於存儲的外部非易失性裝置到用於緩衝的裝置的直接存儲器訪問傳送。
22.權利要求21的DRAM設備,其中當DRAM設備被加電時由DRAM設備生成初始化信號。
23.權利要求21的DRAM設備,其中DRAM設備還包括用於緩衝的第二裝置,並且其中所述用於傳送的裝置還被配置為自動執行控制器代碼從用於存儲的外部非易失性裝置到用於緩衝的第二裝置的傳送。
24.權利要求23的DRAM設備,還包括用於控制的裝置,被配置為執行存儲在用於緩衝的第二裝置中的控制器代碼。
25.權利要求21的DRAM設備,其中用於傳送的裝置還被配置為接收來自用於處理的外部裝置的命令;並且響應於接收到命令,而執行作業系統代碼從外部非易失性存儲器到用於存儲的易失性裝置的直接存儲器訪問傳送。
26.一種嵌入式系統,包括處理器;非易失性存儲器設備;和易失性存儲器設備,包括用於與處理器通信的接口;用於與非易失性存儲器通信的接口;緩衝器;存儲器陣列;和電路,被配置為響應於檢測到嵌入式系統的初始化,而自動執行引導代碼經由用於與非易失性存儲器通信的接口從非易失性存儲器到緩衝器的直接存儲器訪問傳送。
27.權利要求26的嵌入式系統,其中處理器被配置為從易失性存儲器設備讀取存儲在緩衝器中的引導代碼;執行所讀取的引導代碼;並且響應於執行引導代碼,向易失性存儲器中的電路發出命令,其中,響應於接收到發出的命令,易失性存儲器中的電路被配置為經由用於與非易失性存儲器通信的接口將作業系統代碼從非易失性存儲器自動傳送到易失性存儲器設備的存儲器陣列。
28.權利要求27的嵌入式系統,其中處理器還被配置為檢測來自易失性存儲器設備的信號,表示完成了作業系統代碼的自動傳送;並且響應於檢測到信號,而開始執行存儲在易失性存儲器設備的存儲器陣列中的作業系統代碼。
29.權利要求26的嵌入式系統,其中易失性存儲器設備還包括第二緩衝器,並且其中易失性存儲器設備的電路還被配置為響應於檢測表示完成了引導代碼的直接存儲器訪問傳送的信號,而自動執行控制器代碼經由與非易失性存儲器通信的接口從非易失性存儲器設備到第二緩衝器的第二直接存儲器訪問傳送。
全文摘要
本發明的實施例提供了一種用於初始化計算機系統的方法和設備,其中該計算機系統包括處理器、易失性存儲器和非易失性存儲器。在一個實施例中,該方法包括,當計算機系統被初始化時,自動將存儲在非易失性存儲器中的初始化代碼複製到易失性存儲器,其中易失性存儲器中的電路自動創建副本,並通過處理器來執行來自易失性存儲器的初始化代碼的副本。
文檔編號G06F9/445GK101051275SQ20071000404
公開日2007年10月10日 申請日期2007年1月23日 優先權日2006年1月23日
發明者R·-S·考 申請人:奇夢達股份公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀