專利名稱:電子系統及其數據處理方法
技術領域:
本發明是有關于 一種用于非易失性存儲器元件的數據處理 方法,特別是有關于一種可用于非易失性存儲器元件中所儲存 的開機相關程序碼的數據處理方法。
背景技術:
一般而言,系統中都具有至少 一開機禾呈序碼(例如基本輸入
輸出系統(BIOS)碼)以記錄所有系統的信息以及開機所需要的 相關程序。對于擁有非易失性存儲器元件(例如與非門快閃存儲 器(NAND Type Flash,簡稱NAND快閃存儲器))的系統而言,一 般會將開機程序碼也存到非易失性存儲器元件以避免使用單獨 的非易失性存儲器存儲開機程序碼。非易失性存儲器元件(如快 閃存儲器)和 一 般動態隨機存取存儲器(DRAM)或靜態隨機存取 存儲器(SRAM)最大的不同處在于,當無電源時,非易失性存儲 器元件能保存數據完整性,并且具備省電功能及耐震,因此非 易失性存儲器元件成為嵌入式系統最佳存儲器解決方案。
存儲器元件通常包括一存儲器控制器以及一存儲器。存儲 器控制器在系統的外圍總線(例如PCI總線)重置完成之前, 必須先知道關于此快閃存儲器的 一 些屬性數據,例如總線寬度 為8位或16位以及分頁(page)大小為512字節、2048字節或4096 字節等信息,存儲器控制器才能在外圍總線完成重置之后正確 讀出存儲器里儲存的開機程序碼。
一般而言,這樣的屬性數據可由存儲器控制器通過檢測硬 件接腳(稱為strapping pin)的電壓電平獲得。然而,每個這類的 屬性都對應到至少 一根的硬件接腳,例如至少需要一根接腳用
以表示總線寬度以及兩根接腳用以表示分頁大小。
由于系統的接腳數有限,這些硬件接腳將占用原有的接腳, 若找不到足夠多的硬件接腳,將使得系統無法正常地工作。
發明內容
有鑒于此,本發明的目的之一即在于提供一種用于具有開 機程序碼的非易失性存儲器的數據處理方法,以解決上述找不 到足夠多的特殊硬件接腳的問題。
基于上述目的,本發明提供一種適用于電子系統的數據處 理方法。其中,電子系統至少包括一非易失性存儲器、 一連接 至該非易失性記體的存儲器總線以及一外圍總線,非易失性存 儲器存儲 一 屬性數據以及 一 開機程序碼。數據處理方法包括下 列步驟。首先,在該存儲器總線的一重置信號中止后,依據一 預設屬性數據執行一 自動讀取程序以由非易失性存儲器中得到 非易失性存儲器的至少 一 屬性數據以及該開機程序碼的地址。
接著,在外圍總線的重置信號中止(deassert)后,利用得到的至 少 一 屬性數據以及該開機程序碼的地址,讀取該開機程序碼至 該外圍總線。
本發明另提供一種電子系統,包括一非易失性存儲器、一 控制器、 一存儲器總線以及一外圍總線。非易失性存儲器存儲 至少一屬性數據以及一開機程序碼。控制器用以控制非易失性 存儲器。存儲器總線用以耦接非易失性存儲器以及控制器。外 圍總線耦接于該控制器。其中,控制器在該存儲器總線的一重 置信號中止后,執行一 自動讀取程序以由非易失性存儲器中得 到非易失性存儲器的至少 一屬性數據以及該開機程序碼的地 址,并在外圍總線的重置信號中止后,利用得到的至少一屬性 數據以及開機程序碼的地址,讀取該開機程序碼至該外圍總線。
本發明尚提供一種數據處理方法,適用于一電子系統,其 中該電子系統包括一非易失性存儲器、 一控制器、 一耦接至該 控制器與該非易失性存儲器之間的存儲器總線以及 一 耦接至該 控制器外圍總線。該非易失性存儲器存儲至少一屬性數據。數 據處理方法包括下列步驟。首先,在該存儲器總線的一重置信 號中止后,依據 一 預設屬性數據以及 一 預設地址由該非易失性 存儲器中讀取至少一屬性數據。然后,在該外圍總線的一重置 信號中止前,利用得到的該屬性數據配置該控制器。
本發明所述的電子系統及其數據處理方法,解決了系統硬 件接腳不足的問題,而且也方便進一步的擴充。
圖l顯示一依據本發明實施例的電子系統連接的示意圖。
圖2顯示一依據本發明實施例的系統的開才幾序列時序圖。 圖3A顯示 一依據本發明實施例的快閃存儲器內容配置的 示意圖。
圖3B顯示一依據本發明實施例的屬性數據區塊的示意圖。 圖3C顯示另 一依據本發明實施例的屬性數據區塊的示意圖。
圖4顯示 一依據本發明實施例于開機時的數據處理方法的
流程圖。
圖5顯示一依據本發明實施例的自動讀取程序的流程圖。 圖6顯示另 一依據本發明實施例的自動讀取程序的流程圖。
具體實施例方式
為使本發明的上述和其他目的、特征和優點能更明顯易懂, 下文特舉出較佳實施例,并配合所附圖式,作詳細說明如下。
本發明的實施例關于一種適用于非易失性存儲器元件(例 如快閃存儲器)的數據處理方法,利用非易失性存儲器元件的 結構特性,使存儲器控制器讀取設置在非易失性存儲器元件的 特定位置中的特定格式數據,以獲取非易失性存儲器元件相關 的屬性數據以及存放于其中的程序碼的相關索引,可用以取代 已知的硬件接腳,解決系統硬件接腳不足的問題,而且也方便 進一步的擴充。
此外,根據本發明的方法,可將儲存于非易失性存儲器元
件中的開機程序碼(即BIOS碼)分成不同的區塊并且連續或不連 續地放置,再利用本發明所提供的對照表順序讀出每個區塊, 可使得設計更有彈性且更有效率。
圖l顯示一依據本發明實施例的電子系統100。電子系統100 中至少包括一處理器102、 一芯片組IOI、 一耦接于處理器102 與芯片組101之間的前端總線180、以及一非易失性存儲器120。 芯片組101包括一控制器110、 一PCI總線控制器160、 一耦接控 制器IIO與PCI總線控制器160的PCI總線170、以及一 電源管理 單元190。雖然于本實施例中,控制器110通過PCI總線與電子 系統100的其他才莫塊通信,然而如本領域技術人員所知,電子系 統10 0也可以使用其它規格的外圍總線來實現控制器110與其他 模塊之間的通信。控制器110通過一存儲器總線(例如NAND Flash總線)130耦接至非易失性存儲器120。電源管理單元190至 少包括一第 一暫存器140以及一第二暫存器150。于此實施例中, 第一暫存器140以及第二暫存器150為電池供電式(batter well) 暫存器,可分別用以保留數據142以及152,以供開機時使用, 但不限于此。
非易失性存儲器120中包括了 一開機程序碼(例如BIOS 碼)122,儲存了電子系統100開機所需要的各種程序,用以于電
子系統100啟動電源后,沖丸行系統開機牙呈序(boot sequence), 以 使其能正常運作。非易失性存儲器120中還包括一屬性數據124, 儲存了非易失性存儲器12 0的基本屬性數據,例如總線寬度為8 位或16位以及分頁(page)大小為512字節、2048字節或4096字節
等信息。
控制器110透過存儲器總線130與非易失性存儲器120耦接, 并借此存取非易失性存儲器120。因此,控制器110可透過存儲 器總線130存取非易失性存儲器120中的開機程序碼122。
于以下實施例中,非易失性存儲器120以NAND快閃存儲器 作為說明,但本發明并不限于此。NAND快閃存儲器由一系列 的區塊(block)構成,每一區塊又包含一系列的分頁(page)。
圖2顯示圖l所示的電子系統100的 一開才幾序列時序圖。i青一 并參閱圖l與圖2所示,四種信號線分別用以表示開機時的系統 時序運作,其中信號線CPURST# 、 PCIRST弁、NFRST弁以及 PWRGD分別用以表示處理器重置信號線、PCI總線重置信號 線、快閃存儲器重置信號線以及系統電源信號線。當處理器重 置信號線CPURST# 、 PCI總線重置信號線PCIRST#以及快閃存 儲器重置信號線NFRST弁送出(assert)時,信號線上將出現低電 平,當其被中止(deassert)時,信號線上將出現高電平。當系統 電源信號線PWRGD上出現高電平時,表示電子系統100已正常 供電。
圖3A顯示一依據本發明實施例的快閃存儲器內容配置的 示意圖。如圖所示,快閃存儲器300中的起始位置(即第l個區塊 的分頁0)中包括了 一個第一數據區塊310,且也包括了 一個開機 程序碼3 4 0,此開程序碼3 4 0由如圖標號3 12所示的快閃存儲器 300的位置開始存放,亦即標號312表示開機程序碼340的起始位 置。第 一數據區塊3 10中儲存了快閃存儲器300的相關屬性數據,用以表示快閃存儲器300所使用的格式。第一數據區塊310中也 儲存了表示開機程序碼340在快閃存儲器300的起始位置的相關 存儲器地址的指針索引。為了確保這些重要數據不會因為存取 錯誤或其他原因發生錯誤而造成或執行錯誤的結果,因此第一 數據區塊310可以另包括了這些數據的相關備份,這些備份數據 可用來還原并取得原始的數據。
由于NAND快閃存儲器的工藝不能保證NAND的存儲陣列 在其生命周期中保持性能的可靠,因此,在NAND快閃存儲器 的生產中及使用過程中會產生壞塊。然而,NAND快閃存儲器 的生產者會確保快閃存儲器的第 一 數據區塊310是好的,因此, 一般會將開機程序碼連續地儲存于第 一 數據區塊3 10中以確保 開機程序碼340不被損壞。于本實施例中,為增加設計的彈性, 開機程序碼340可存放于快閃存儲器的任意位置,并可通過存儲 于第一數據區塊310中的開機程序碼的地址指針索引數據360定 位開才幾程序碼的初始地址。如圖3A所示,開才幾程序碼340分成 多個區塊,如圖所示的區塊# l至區塊# 4。開機程序碼340也具 有 一 個對照表(T) 3 3 0,對照表T中可包含區塊號碼以及該區塊對 應的快閃存儲器地址,其中此對應的快閃存儲器地址可為快閃 存儲器300中的一絕對地址或是以與區塊# l的距離表示的相對 地址。開機程序碼340的區塊# 1中儲存有表示對照表T所在地 址的對照表地址320,亦即,可由對照表地址320找到并參考對 照表T。如圖所示,對照表T存放于地址314,因此,對照表地 址320中的內容即設為地址314。其中,對照表T可放置于開機 程序碼340的任何位置中。
值得注意的是,雖然本實施例中的開機程序碼的區塊連續 地配置,于其他實施例中,開機程序碼的區塊也可不連續地任 意分散配置,例如區塊#1接著區塊#3,接下來才是區塊#2。
如圖3A所示,第 一數據區塊310依序存放有代表屬性數據
350的數據B0以及B1,以及代表開機程序碼340的起始位置的相 關指針索引360的數據P0、 Pl、 P2以及P3,其中B1為B0的備份, P1為P0的備份,P3為P2的備份,并且P2用以表示用于備份的開 機程序碼存放的地址。請注意,第一數據區塊310尚包括有許多 保留數據部分,可供后續擴充之用。
在圖3A所示的屬性數據350與開機程序碼的地址指針索引 數據360各為一個字節,本領域技術人員可以了解到這種安排僅 為眾多實施例的一種。在實施系統上可以因應各種工程上或其 它考慮加以變化而不脫出本發明的真意。
圖3B顯示一依據本發明實施例的屬性數據350的示意圖。 屬性數據350可以包括用以表示總線寬度351、分頁大小352、目 前工作模式353以及支持模式的數據354。舉例來說,總線寬度 351可為8位或16位,分頁大小352可為512字節(byte)、 2048字節 或4096字節。支持模式354可為單通道模式或雙通道模式,即對 16位的數據而言,單通道模式是指數據以8位加8位的方式進行 存取,而雙通道模式是指數據以每通道8位的方式進行存取,因 而若為雙通道才莫式,則可一次進行16位的存取。目前工作才莫式 353則包括了單片(single chip)模式以及多片(multi chip )模式。 此是針對快閃存儲器中有兩份的開機程序碼的工作模式,其中 一份為原始開機程序碼, 一份為備份的開機程序碼。當快閃存 儲器處于單片模式時,表示原始開機程序碼以及備份開機程序 碼都放在同一個快閃存儲器芯片中。當快閃存儲器處于多片模 式,如雙片模式時,表示原始開機程序碼以及備份開機程序碼 分別放在不同的快閃存儲器芯片中。
于一實施例中,每一屬性用特定的位數加以表示,例如, 以 一 個位表示其總線寬度以及兩個位表示其分頁大小。如圖3B
所示,屬性數據350(B0/B1)為一8位的數據,其中位bO(351)表示 總線寬度,位b2-bl(352)表示分頁大小,位b3(353)表示支持模 式,位b4(353)表示目前工作模式,位b6-b5(355)為保留位,位 b7(356)則表示錯誤檢查位。錯誤檢查位用以檢查數據在傳輸過 程中,是否發生錯誤。請注意,雖然于此實施例中是利用循環 冗余檢查碼(Cyclic Redundancy Check,以下簡稱CRC)來產生錯 誤檢查位,于其他實施例中,可采用任何已知的錯誤檢查碼, 例如同位檢查(Parity Check)、漢明碼檢查(Hamming Code Check) 或錯誤更正碼(ECC),來產生錯誤檢查位,用以判斷數據是否 為正確。CRC檢查是在發送端根據要傳送的k位二進制碼序列, 以一定的規則產生一個校驗用的監督碼(即CRC碼)r位,并附 在信息后邊,構成一個新的二進制碼序列數共(k+r)位,最后發 送出去。在接收端,則根據信息碼和CRC碼之間所遵循的規則 進行檢驗,以確定傳送中是否出錯。
當屬性數據350的位bO的值為0時,表示總線寬度為8位,而 當位bO的值為l時,表示總線寬度為16位。類似地,位b2-bl的 值為OO、 01、 10以及11時分別表示分頁大小為512字節、2千字 節、4千字節或保留值。位b3的值為0以及l時分別表示支持模式 為單通道沖莫式以及雙通道才莫式。當位b4的值為0時,表示目前工 作模式為單片模式,而當位b4的值為l時,表示目前工作模式為 多片模式。換言之,可由屬性數據350中的位b4得知快閃存儲器 目前的工作才莫式。
圖3C顯示另 一依據本發明實施例的開機程序碼的地址指 針索引數據360的示意圖。如圖3C所示,地址指針索引數據 360(P0/P1/P2/P3)為一8位的數據,其中位b6-b0(361)表示開機程 序碼的起始位置(亦即區塊# l的位置),位b7(263)則表示錯誤檢 查位。同樣地,錯誤檢查位采用CRC碼或奇同位碼,可用以判斷數據是否為正確。
本領域技術人員可以明白,圖3A至圖3C只是眾多實施例中 的幾個例子。為了說明方便起見,圖3A至圖3C的數據結構將用 于以下的實施例中。
圖4顯示 一依據本發明實施例于開機時的數據處理方法的 流程圖400。
-清同時參照圖l、圖2以及圖4。當系統電源:故啟動,且系統
的電源達到系統可以穩定操作的范圍時,系統電源信號線
PWRGD將^皮觸發(高電平),以表示電源已處于穩定狀態。
此時,如步驟S410,在快閃存儲器重置信號線NFRST弁中 止后,即快閃存儲器系統完成重置作業后,控制器110依據一組 預設的屬性數據執行一 自動讀取程序以由快閃存儲器120中得 到快閃存儲器120的屬性數據以及開機程序碼122的區塊#1的地 址(起始地址)。本實施例中,預設的屬性數據是指以快閃存儲 器120的位寬為8位,分頁大小為2048字節的方式讀取快閃存儲 器120中的數據。尤其需要說明的是,在某些實施例當中,控制 器100在PCIRST弁重置信號中止前完成自動讀取程序(如圖2所 示的210以及周期T。。關于自動讀取程序以及屬性數據將詳細 介紹于下。
當執行完自動讀取程序后,便可以得到快閃存儲器120的屬
于是,如步驟S420,控制器110依據屬性數據配置快閃存 儲器系統,以使快閃存儲器系統以最優化的方式進行存取。
如步驟S430,在PCI總線的PCIRST弁重置信號中止后,控制 器110以配置后的存取方式,依據在自動讀取程序中獲得的開機 程序碼的區塊#1的地址讀取系統配置信息,以使系統完成芯片 組101和系統存儲器的配置(如圖2所示的220以及周期T2)。通
常,系統配置信息是開機程序碼最先被執行的一部分,因而控 制器110會在PCI總線重置完成之后(即PCI總線重置信號線
PCIRST弁中止后),依據芯片組101發出的指令(未圖示),讀取 開機程序碼340的區塊#1中的系統配置信息。在一個實施例當 中,前述的芯片組101可包含北橋芯片,其所發出的指令為 ROMSIP指令。
之后,如步驟S440,在處理器重置信號線CPURST弁中止后, 即處理器完成重置作業后,通過PCI總線讀取并執行開機程序 碼的區塊#1的剩余部分(如圖2所示的230以及周期T3)。此開機 程序碼的區塊#1的地址等于開機程序碼122在快閃存儲器120中 的起始或基底位置。
接下來,區塊#2可能連續地設置在區塊#1之后,也可能不 連續地放置在快閃存儲器120中的任意位置中。因此,如步驟 S450,接著由區塊#1中得到一對照表地址。最后,如步驟S460, 再利用對照表地址得到一對照表T,再參考對照表T找到并執行 開機程序碼122的剩余區塊,以進行整個系統的啟動操作。對照 表T中可包含區塊號碼以及該區塊對應的快閃存儲器地址。因 此,可參考對照表T里所記載的剩余區塊在開機程序碼12 2的相 對位置,依序找到每個剩余區塊并順序讀取,以將開機程序碼 自快閃存儲器中讀出。請參照圖3A,開機程序碼122的剩佘區 塊為區塊# 2至區塊# 4,因此可于對照表T中依序找到這些剩 余區塊并順序讀出。
圖5顯示一依據本發明實施例的自動讀取程序的流程圖 500。于此實施例中,假設有兩份開機程序碼。存儲快閃存儲器 若為單片模式,則兩份開機程序碼存于同一快閃存儲器芯片內, 若為多片模式,例如雙片模式,則兩份開機程序碼分別放于一 第一快閃存儲器芯片以及一第二快閃存儲器芯片中。 如圖所示,如步驟S510,根據第二暫存器150儲存的數據
152,決定存放有要讀取的開機程序碼的一檢查裝置。在雙片模 式的一實施例中,若數據152為0,則表示檢查裝置為第一快閃 存儲器芯片,否則檢查裝置則為第二快閃存儲器芯片。
接著,如步驟S520,以預設屬性數據讀取檢查裝置(快閃 存儲器)的第一個單位長度的數據。于本實施例中,因為每份 數據有 一 個備份數據且其數據為8位,因此單位長度的數據定義 為32位的數據。換言之,第一數據區塊310中的屬性數據BO以 及B1以及相關指針索引P0以及P1將同時被讀取。 一開始時,并 無法得知快閃存儲器真正的屬性數據,因此先以預設的屬性數 據例如總線寬度為8位、分頁大小為2仟字節以及采用 一 個位的 錯誤更正碼(ECC)等,來讀取第 一數據區塊的第 一個16位的數 據。 一個位的錯誤更正碼(ECC)可用以檢測并自動更正(修復) 只有 一 個位的錯誤的數據,使其恢復成正確的原始數據。
其次,如步驟S530,檢查第一個單位長度的數據,得到一 有效數據。由于屬性數據B0以及B1已經被讀取,因此接著檢查 屬性數據BO ( 350 )是否有效。透過屬性數據B0中位b7的錯誤 檢查位進行C R C檢查,判斷屬性數據B 0是否正確。
如果屬性數據BO的CRC檢查結果為正確,則屬性數據BO即 為有效數據。否則,接著檢查屬性數據B1的CRC檢查結果是否 正確,若正確則屬性數據B1即為有效數據。對于本領域技術人 員皆知,若采用1個位的錯誤更正碼(ECC),則對單一階層單元 設計(single level cell, SLC)的快閃存儲器而言,若只發生一個 位的錯誤,則其備份數據應該是正確的。因此,若屬性數據BO 的CRC檢查結果為不正確,可改采用屬性數據B1為有效數據。
接著,如步驟S540,根據有效數據,得到快閃存儲器的目 前工作模式。請參照圖3B,可根據有效數據的位b4的值得到快
閃存儲器的目前工作模式為單片模式或多片模式。
如步驟S550,根據目前工作模式以及第一暫存器140儲存 的數據140,決定要檢查的一存儲器地址指針索引,并從而得到
開機程序碼的區塊#1的地址。
圖6顯示另 一依據本發明實施例的自動讀取程序的流程圖 600,用以表示步驟S550的細部運作。
如圖所示,若步驟S630中的目前工作模式為單片模式,則 執行步驟S610,若為多片模式,則執行步驟S620。于步驟S610, 檢查第一暫存器儲存140的數據142。于步驟S612,判斷數據142 是否為'O,。若是,如步驟S614,檢查存儲器地址指針索引O(PO) 的CRC是否正確。若是(步驟S614的是),如步驟S616,決定存 儲器地址指針索引O(PO)為有效數據,否則,決定存儲器指針 1(P1)為有效數據(步驟S618),即可依據存儲器指針l讀取開機程 序碼的區塊#1。
若數據142為'1,(步驟S612的否),便執行步驟S613,以相同 的預設屬性數據讀取檢查裝置中的快閃存儲器的第二個單位長 度的數據。類似地,第一數據區塊中的下一個32位的數據將被 讀取,亦即,存儲器地址指針索引2(P2)以及存儲器地址指針索 引3(P3)將被讀取。
接著,于步驟S615,檢查存儲器地址指針索引2(P2)的CRC 是否正確。若是(步驟S615的是),如步驟S617,決定存儲器地 址指針索引2(P2)為有效數據,否則,決定存儲器地址指針索引 3(P3)為有效數據,即依據存儲器指針3讀取開機程序碼的區塊 #1。
若目前工作模式為多片模式,則執行步驟S620,檢查存儲 器地址指針索引O的CRC是否正確。若是,如步驟S622,決定存 儲器地址指針索引O(PO)為有效數據,否則,決定存儲器指針 1 (P 1 )為有效數據(步驟S624)。
經由上述步驟之后,便可得到記錄有快閃存儲器屬性數據 的有效數據以及記錄有開機程序碼的第 一 區塊的地址的有效數 據,接著,便可利用這些數據來設定控制器以開始讀取開機程 序碼。當讀取時,因為采用 一個位的錯誤更正技術,若發生只 有一個位的數據錯誤將被自動修復。
假設在單通道模式下利用存儲器地址指針索引0執行開機 程序并遇到無法修正的錯誤(例如有兩個或以上的錯誤)時,便 將第 一暫存器儲存140的數據142設為"1",重新回到步驟S610
開始執行,即依據存儲器地址指針索引l讀取備份的開機程序 碼。若在單通道模式下利用存儲器地址指針索引l執行開機程序
并遇到無法修正的錯誤時,表示備份的數據也發生錯誤,因此 開機失敗。假設在雙通道模式下利用存儲器地址指針索引O讀取 開機程序碼并遇到無法修正的錯誤時,便檢查第二暫存器儲存 150的數據152。若數據152為"0",則將其改設為"l",并將第一 暫存器140的數據設為"0",并重新回到步驟S510開始執行,即 讀取另一存儲器芯片中的第一數據區塊。若數據152為"1",則 表示備份的數據也發生錯誤,因此開機失敗。
因此,可以#4居上述自動讀取流程,于開^^幾時,于快閃存 儲器的第 一數據區塊中得到有效的屬性數據以及開機程序碼的 第一個區塊的位置索引,以便控制器設定相關屬性數據以開始 讀取其中的開機程序碼,隨后再由第 一 個區塊中所記載的對照 表地址找到對照表,再參考對照表找到并讀取開機程序碼的每 一剩余區塊。
顯然以上描述的'決閃存儲器系統的驅動方法及開機程序碼 讀取方法也可應用于多階層單元設計(multi level cell, MLC)的 快閃存儲器。唯,由于MLC快閃存儲器的每個存儲單元(cell)
均可存儲2個位,因而在判斷存儲器地址指針索引是否為有效數
據時,不能通過CRC來糾錯。鑒于此,若快閃存儲器采用多階 層單元設計時,則可使控制器110在自動讀取程序中一次讀取l 個扇區(sector)的數據,并通過4位的ECC糾錯來判斷存儲器 地址指針索引的內容是否正確。
上述說明提供多種不同實施例或應用本發明的不同方法。 實例中的特定裝置以及方法是用以幫助闡釋本發明的主要精神 及目的,當然本發明不限于此。
以上所述僅為本發明較佳實施例,然其并非用以限定本發 明的范圍,任何熟悉本項技術的人員,在不脫離本發明的精神 和范圍內,可在此基礎上做進一步的改進和變化,因此本發明 的保護范圍當以本申請的權利要求書所界定的范圍為準。
附圖中符號的簡單說明如下
100:電子系統
101:芯片組
102:處理器
110:控制器
120:非易失性存儲
122:開機程序碼
124:屬性數據
130:存儲器總線
140:第一暫存器
150:第二暫存器
142、152:數據
160:PCI控制器
170:PCI總線
180:前端總線
190:電源管理單元
CPURST#、 PCIRST#、 NFRST#、PWRGD: 4言號線
300:快閃存儲器
310:第一數據區塊
312、314: 地址
320:對照表地址
330:對照表T
340:開才幾程序碼
350、B0、 Bl、 351、 352、 353、354:屬性數據
360、P0、 Pl、 P2、 P3:地址指針索引數據
S410-S460:步驟
S510-S550:步驟
S610、S612、 S613、 S614、 S615、S616、 S617、 S618、 S620、
S622、 S624、 S630:步驟。
權利要求
1.一種數據處理方法,適用于一電子系統,其特征在于,該電子系統至少包括一非易失性存儲器、連接至該非易失性存儲器的一存儲器總線以及一外圍總線,該非易失性存儲器存儲至少一屬性數據以及一開機程序碼,該數據處理方法包括下列步驟在該存儲器總線的一重置信號中止后,依據一預設屬性數據執行一自動讀取程序以由該非易失性存儲器中得到該非易失性存儲器的該至少一屬性數據以及該開機程序碼的地址;以及在該外圍總線的一重置信號中止后,利用得到的該至少一屬性數據以及該開機程序碼的地址,讀取該開機程序碼至該外圍總線。
2. 根據權利要求l項所述的數據處理方法,其特征在于, 還包括利用該開機程序碼的地址讀取該開才幾程序碼的 一第 一 區 塊,并由該第一區塊中得到一對照表地址;以及利用該對照表地址得到一對照表,乂人而執行該開枳4呈序碼 的至少 一 剩余區塊。
3. 根據權利要求l所述的數據處理方法,其特征在于,還 包括讀取該非易失性存儲器的 一起始位置,得到 一 第 一數據區 塊;以及由該第 一數據區塊,得到該至少 一屬性數據以及該開機程 序碼的地址。
4. 根據權利要求l所述的數據處理方法,其特征在于,該 執行該自動讀取程序的步驟還包括根據一第一暫存器儲存的一數據,決定一檢查裝置; 以一預設屬性數據讀取該檢查裝置的一起始位置的一第一單位長度數據;以及檢查該第一單位長度數據,得到一有效數據。
5. 根據權利要求4所述的數據處理方法,其特征在于,該 第 一單位長度數據具有 一原始數據以及一備份數據,該原始數 據以及該備份數據具有 一 錯誤檢查位,該檢查該第 一 單位長度數據的步驟還包括依據該原始數據的該錯誤檢查位,判斷該原始數據是否正確;若該原始數據正確,決定該原始數據為該有效數據; 若該原始數據為不正確,決定該備份數據為該有效數據;以及其中該原始數據與該備份數據相同。
6. 根據權利要求5所述的數據處理方法,其特征在于,該 原始數據為 一 包括該至少 一屬性數據或該開機程序碼的地址的 索引數據。
7. 根據權利要求4所述的數據處理方法,其特征在于,該 執行該自動讀取程序的步驟還包括根據該有效數據,得到該非易失性存儲器的一 目前工作模 式,其中該目前工作模式包括一第一模式以及一第二模式;以 及根據該目前工作模式以及一第二暫存器儲存的一數據,決 定欲檢查的一存儲器地址指針索引,從而得到該開機程序碼的地址。
8. 根據權利要求7所述的數據處理方法,其特征在于,該決定欲檢查的該存儲器地址指針索引的步驟還包括由該第一單位長度數據中取得一第一存儲器地址指針索引以及一第二地址存儲器地址指針索引;以及當該目前工作模式為該單片模式時,檢查該第二暫存器的 該數據是否等于 一 預設值。
9. 根據權利要求8所述的數據處理方法,其特征在于,還 包括若該第二暫存器的該數據等于該預設值,檢查該第 一 存儲 器地址指針索引是否正確;當該第 一 存儲器地址指針索引正確時,決定^fe夂檢查的該存 儲器地址指針索引為該第一存儲器地址指針索引;以及當該第一存儲器地址指針索引為不正確時,決定欲檢查的 該存儲器地址指針索引為該第二存儲器地址指針索引。
10. 根據權利要求8所述的數據處理方法,其特征在于,還 包括若該第二暫存器的該數據不等于該預設值時,以該預設屬性數據讀取該檢查裝置的一第二單位長度數據,其中該第二單位長度數據位于該第一單位長度數據之后;由該第二單位長度數據中取得一第三存儲器地址指針索引以及一第四存儲器地址指針索引;以及依據該第三存儲器地址指針索引以及該第四存儲器地址指 針索引中的該錯誤檢查位,決定該欲檢查的該存儲器地址指針 索引。
11. 根據權利要求l所述的數據處理方法,其特征在于,還 包括利用得到的該至少 一 屬性數據配置 一 控制器。
12. —種電子系統,其特征在于,包括一非易失性存儲器,其存儲至少一屬性數據以及一開機程序碼;一控制器,用以控制該非易失性存儲器;以及一存儲器總線,用以耦接該非易失性存儲器以及該控制器;一外圍總線,用以耦接至該控制器;其中該控制器在該存儲器總線的 一 重置信號中止后,執行 一自動讀取程序以由該非易失性存儲器中得到該非易失性存儲 器的該至少一屬性數據以及該開機程序碼的地址,并在該外圍 總線的該重置信號中止后,利用得到的該至少一屬性數據以及 該開才幾程序碼的地址,讀取該開才幾程序碼至該外圍總線。
13. —種數據處理方法,適用于一電子系統,其特征在于, 該電子系統包括一非易失性存儲器、 一控制器、 一耦接至該控 制器與該非易失性存儲器的存儲器總線以及 一 耦接至該控制器 的外圍總線,該非易失性存儲器存儲至少一屬性數據,該數據 處理方法包括下列步驟在該存儲器總線的一重置信號中止后,依據一預設屬性數 據以及一預設地址由該非易失性存儲器中讀取該至少 一屬性數 據;以及于該外圍總線的 一 重置信號中止前,利用得到的該屬性數 據配置該控制器。
14. 根據權利要求13所述的數據處理方法,其特征在于, 該非易失性存儲器還存儲 一 開機程序碼以及該開機程序碼的地址。
15. 根據權利要求14所述的數據處理方法,其特征在于, 還包括在該存儲器總線的一重置信號中止后,依據該預設屬性數 據以及該預設地址由該非易失性存儲器中讀取該開機程序碼的 地址;以及在該外圍總線的 一 重置信號中止后,利用該開機程序碼的 地址讀取該開機程序碼。
全文摘要
本發明提供一種電子系統及其數據處理方法,特別涉及一種數據處理方法,適用于一電子系統。其中,電子系統至少包括一非易失性存儲器、一存儲器總線以及一外圍總線,非易失性存儲器存儲至少一屬性數據以及一開機程序碼。數據處理方法包括下列步驟。首先,在該存儲器總線的一重置信號中止后,執行一自動讀取程序以由非易失性存儲器中得到非易失性存儲器的至少一屬性數據以及該開機程序碼的地址。接著,在該外圍總線的重置信號中止后,利用得到的至少一屬性數據以及該開機程序碼的地址,設定并開始執行開機程序碼。本發明所述的電子系統及其數據處理方法,解決了系統硬件接腳不足的問題,而且也方便進一步的擴充。
文檔編號G06F9/445GK101187879SQ200710307079
公開日2008年5月28日 申請日期2007年12月27日 優先權日2007年12月27日
發明者伍尚智 申請人:威盛電子股份有限公司