固件更新方法和使用該方法更新固件的晶片的製作方法
2023-05-24 11:10:01
專利名稱:固件更新方法和使用該方法更新固件的晶片的製作方法
技術領域:
本發明涉及一種固件更新方法和使用該方法更新固件的晶片。更具體地, 本發明涉及一種能夠簡化固件更新過程並且減少固件更新成本和時間的固件 更新方法以及使用該方法更新固件的晶片。
背景技術:
目前,諸如網絡集線器之類的設備中的很多晶片都包括微控制器單元
(MCU)以及存儲用於該MCU的固件的只讀存儲器(ROM),該固件是在 對晶片進行流片(tape out)時固化在ROM中的。圖1示出了這種傳統晶片 的示意性框圖。如圖l所示,晶片100包括通過ROM總線彼此連接的ROM 101和MCU 102。當激活晶片100時,MCU 102讀取存儲在ROM 101中的 固件,然後利用該固件來執行操作。
在晶片使用過程中,為了修正硬體的缺陷或固件中的錯誤、給晶片增加 新的功能、或者進一步優化固件以提高晶片的性能,常常需要對固件進行更 新。然而,在傳統晶片中,用於MCU 102的固件被固化在ROM 101中,不 能通過直接對ROM101進行擦除和寫入來更新該固件,因此,往往需要對整 個晶片進行重新流片以便將ROM中的原始固件替換為更新的固件。這樣的 固件更新過程較為複雜,且成本高、時間長。
因此,需要一種改進的固件更新方法和使用該方法更新固件的晶片,以 便簡化固件更新過程,從而減少固件更新成本和時間。
發明內容
考慮到以上問題而做出了本發明。本發明的一個目的是提供一種晶片, 其能夠在需要更新固件時,利用簡化的固件更新過程來更新固件,而不需要 被重新流片,從而減少固件更新成本和時間。
本發明的另 一 目的是提供一種固件更新方法,其能夠簡化固件更新過程, /人而減少固件更新成本和時間。
4根據本發明的一個方面,提供了一種晶片,該晶片包括控制單元以及存
儲用於控制單元的原始固件的第一存儲器,並且還包括第二存儲器;以及 主控器(master),用於檢查是否存在用於控制單元的更新的固件,並且當存 在更新的固件時將該更新的固件寫入第二存儲器中以供控制單元使用。
根據本發明的另一方面,提供了一種固件更新方法,用於包括控制單元、 存儲用於該控制單元的原始固件的第一存儲器、第二存儲器、以及主控器的 晶片,該方法包括以下步驟由主控器檢查是否存在用於控制單元的更新的 固件;以及當存在更新的固件時,由主控器將該更新的固件寫入第二存儲器 中以供控制單元使用。
在根據本發明的實施例的晶片和固件更新方法中,當需要更新用於晶片 中的控制單元的固件時,將更新的固件直接寫入與存儲原始固件的只讀存儲 器不同的存儲器中,使得控制單元能夠利用該更新的固件來執行操作,由此 既達到了更新固件的目的,又消除了對晶片進行重新流片的需要,並且減少 了固件更新成本和時間。
通過結合附圖對本發明的實施例進行詳細描述,本發明的上述和其它目 的、特徵、優點將會變得更加清楚,其中 圖1示出了傳統晶片的示意性框圖; 圖2是根據本發明的實施例的晶片的示意性框圖; 圖3是示出根據本發明的實施例的晶片更新方法的流程圖。
具體實施例方式
下面將參照附圖來描述根據本發明的實施例的晶片和晶片更新方法。 圖2示出了根據本發明的實施例的晶片的示意性框圖,該晶片可以是諸 如網絡集線器之類的設備中的獨立晶片、或者是這種獨立晶片的一部分。如 圖2所示,晶片200包括只讀存儲器(ROM) 201、主控器(master) 202、 靜態隨機存取存儲器(SRAM) 203、多路復用器(MUX) 204以及微控制器 單元(MCU) 205。主控器202連接到位於晶片200外部的外部存儲器400。 外部存儲器400用於存儲更新的固件,,該更新的固件用於替換晶片200 中的原始固件,以便修正硬體的缺陷或固件中的錯誤、給晶片200增加新的功能、或者進一步優化固件以提高晶片200的性能等。外部存儲器400可以 是只讀存儲器或者其它可用來存儲固件的存儲器。根據需要,外部存儲器400 可以位於晶片200外部的任何位置,優選地位於與晶片200相同的電路板上。 當需要更新晶片200中的原始固件(具體地說,用於MCU205的原始固件) 時,晶片製造商或者用戶可以將所準備的更新的固件存儲到外部存儲器400 中。可以經由網絡將該更新的固件下載到外部存儲器400中,也可以將該更 新的固件在本地直接寫入外部存儲器400中。
ROM 201存儲用於MCU 205的原始固件,即,在最初對晶片200進行 流片時固化在其中的用於MCU205的固件。當晶片200被激活時,ROM201 響應於MCU 205的讀取固件的請求而將該原始固件輸出到MUX 204。
主控器202檢查是否存在用於MCU205的更新的固件,並且當確定存在 更新的固件時,將該更新的固件寫入SRAM 203中。具體i也,當例如通過向 晶片200加電或施加使能信號而激活晶片200時,主控器203與外部存儲器 400通信,並且確定在外部存儲器400中是否存儲了用於MCU 205的更新的 固件。如果存在更新的固件,則主控器202將該更新的固件從外部存儲器400 寫入SRAM 203中,然後設置用於控制MUX 204的輸出的控制信號SEL,例 如,將SEL設為1,以表示存在更新的固件。在開始上述檢查操作之前,主 控器203還向MCU 205施加復位信號RESET,以使其處於復位狀態,從而 防止其執行固件讀取操作。在完成所述檢查操作之後,主控器202去除施加 到MCU 205上的復位信號,使得MCU 205退出復位狀態並且開始讀取固件。 在本實施例中,主控器202在每次激活晶片200時都自動地執行所述檢查操 作以及隨後的寫入操作,然而本發明不限於此。也可以在激活晶片200之後, 主控器202在預定時刻或者以預定周期執行所述檢查操作以及隨後的寫入操 作。或者,也可以額外地提供能夠與該主控器202通信的用戶接口,使得主 控器202可響應於用戶經由該用戶接口發出的指令而執行所述檢查操作以及 隨後的寫入才喿作。主控器202可以用硬體、軟體、固件、或者它們中的兩個 或更多個的組合來實現,但優選地利用硬體來實現。
SRAM203用於存儲由主控器202寫入的更新的固件。此外,SRAM203 還響應於來自MCU 205的讀取固件的請求而將存儲在其中的所述更新的固 件輸出到MUX204。 SRAM203的容量可以根據實際需要而變化,例如可以 為12K字節。應當認識到,儘管在這裡使用了 SRAM來存儲更新的固件,但這僅僅是說明性的,而不是限制性的。實際上,也可以使用快閃記憶體(flash memory)或者其它能夠用來存儲固件的可讀寫存儲器來存儲所述更新的固 件。
MUX 204選擇性地將從ROM 201輸出的原始固件或從SRAM 203輸出 的更新的固件"提供給MCU 205。具體地,當MUX 204從主控器202接收到 用於控制MUX 204的輸出的控制信號SEL時,若SEL信號已經被設置,例 如,SEL信號被設為1,則表示存在更新的固件,MUX 204將從SRAM 203 輸出的更新的固件提供給MCU 205 ,否則,若SEL信號未被設置,例如,SEL 信號為0,則表示不存在更新的固件,MUX204將從ROM201輸出的原始固 件提供給MCU205。
MCU 205讀取來自ROM 201的原始固件或者來自SRAM 203的更新的 固件,並且根據所讀取的固件執行操作。具體地,當激活晶片200時,由於 主控器202將復位信號RESET施加到MCU 205 ,因此MCU 205進入復位狀 態。當主控器202完成所述檢查操作之後,主控器202去除施加到MCU205 的復位信號,使得MCU 205退出復位狀態,並且向ROM 201和SRAM 203 二者發出讀取固件的請求。如上所述,響應於該請求,ROM 201和SRAM 203 分別將原始固件和更新的固件輸出到MUX 204,然後MUX 204根據從主控 器202接收到的控制MUX 204的輸出的控制信號SEL而選擇性地將所述原 始固件或更新的固件提供給MCU205。隨後,MCU利用從MUX204提供的 這一固件來執行操作。
可以看到,在根據本發明的實施例的晶片200中,除了存儲原始固件的 ROM 201以外,還設置了主控器202和可讀寫存儲器203。當存在更新的固 件時,主控器202將該更新的固件寫入可讀寫存儲器203中,使得MCU205 利用該更新的固件而不是原始固件來執行操作,由此,達到了更新固件的目 的,而不需要對晶片200進行重新流片以更新ROM201中的固件。這簡化了 固件更新過程,從而減少了固件更新成本和時間。
應當認識到,上面描述的晶片200的結構是示意性的,也可以根據需要 而設計其它結構。例如,可以將SRAM 203置於晶片200外部,並且利用高 速數據總線來將SRAM 203分別與主控器202、 MUX 204和MCU 205相連接。 此外,儘管在上文所述的晶片中,主控器202在執行所述檢查搡作之前向MCU 205施加復位信號,並且在完成所述檢查操作之後去除該復位信號,但這不是必需的,也可以不事先施加該復位信號,而是在完成所述檢查操作並且確
定存在更新的固件之後再向MCU 205施加一復位信號,以使其開始讀取固 件。
下面,將參照圖3來描述根據本發明的實施例的固件更新方法。該固件 更新方法可以由圖2所示的晶片200執行。
如圖3所示,當激活晶片200時,在步驟S301中,主控器202向MCU 205施加復位信號RESET,以使其進入復位狀態。接下來,在步驟S302中, 主控器202檢查是否存在用於MCU 205的更新的固件。具體地,主控器202 與外部存儲器400通信,並且確定在外部存儲器400中是否存儲了用於MCU 205的更新的固件。當在步驟S302中確定存在更新的固件時,在步驟S303 中,主控器202將該更新的固件從外部存儲器400寫入SRAM 403。
在執行了步驟S303之後,在步驟S304中,主控器202去除施加到MCU 205上的復位信號,並且設置向MUX204發送的用於控制MUX 204的輸出的 控制信號SEL,例如,SEL信號被設為1。
另一方面,當在步驟S302中確定不存在更新的固件時,在步驟S305中, 主控器202去除施加到MCU 205上的復位信號,而不設置向MUX 204發送 的控制信號SEL,例如,SEL信號為O。
接下來,在步驟S306中,由於施加到MCU205上的復位信號被去除, 因此MCU205退出復位狀態,並且向ROM 201和SRAM 203 二者發送讀取 固件的請求。響應於該請求,ROM201將存儲在其中的原始固件輸出到MUX 204, SRAM 203將存儲在其中的更新的固件輸出到MUX 204。
隨後,在步驟S307中,MUX 204選4奪性地將從ROM 201輸出的原始固 件或從SRAM 203輸出的更新的固件提供給MCU 205 。具體地,當MUX 204 從主控器202接收到已被設置的控制信號SEL時,例如,SEL信號被設為1, MUX 204將從SRAM 203輸出的更新的固件提供給MCU 205。另 一方面,當 MUX204從主控器202接收到未被設置的控制信號SEL時,例如,SEL信號 為0, MUX 204將從ROM 201輸出的原始固件提供給MCU 205。由此, MCU 205可以在主控器202的控制下,利用從ROM 201輸出的原始固件或 從SRAM 203輸出的更新的固件來#^行操作。
本領域技術人員應當認識到,上文所述的方法不是限制性的。例如,盡 管在上文所述的方法中,在步驟S301向MCU 205施加復位信號,並且在步驟S304或S305去除該復位信號,但這不是必需的,也可以不^l行這兩個步 驟,而是在完成所述檢查操作並且確定存在更新的固件之後再向MCU 205施 加一復位信號,以使其開始讀取固件。
可以看到,在根據本發明的實施例的固件更新方法中,當存在更新的固 件時,主控器202將該更新的固件寫入與只讀存儲器201不同的可讀寫存儲 器203,使得MCU205能夠利用該更新的固件來執行操作。因此,不再需要 像傳統技術那樣對晶片200進行重新流片,從而簡化了固件更新過程,節省 了固件更新成本和時間。
應當注意,儘管在上文中以晶片為例描述了本發明,但是本發明的應用 不限於晶片,而是可以廣泛應用於存在更新固件的需要的其它設備或器件。
儘管在這裡示出和描述了本發明的示例性實施例,但是本領域技術人員 應當理解,在不背離權利要求及其等同物中限定的本發明的範圍和精神的情 況下,可以對這些示例性實施例4故出各種形式和細節上的變化。
權利要求
1.一種晶片,包括控制單元以及存儲用於控制單元的原始固件的第一存儲器,其特徵在於,該晶片還包括第二存儲器;以及主控器,用於檢查是否存在用於控制單元的更新的固件,並且當存在更新的固件時將該更新的固件寫入第二存儲器中以供控制單元使用。
2. 如權利要求l所述的晶片,其中,主控器通過與位於晶片外部的第三存儲器通信並且確定在第三存儲器中是否存儲了所述更新的固件,來執行所述檢查。
3. 如權利要求l之一所述的晶片,其中,主控器在每次激活晶片時都自 動地執行所述檢查。
4. 如權利要求1之一所述的晶片,其中,在激活晶片之後,主控器在預 定時刻或以預定周期執行所述檢查。
5. 如權利要求1之一所述的晶片,其中,主控器響應於用戶的指令而執 行所述檢查。
6. 如權利要求1所述的晶片,還包括復用器,用於當存在所述更新的固件時,響應於來自控制單元的讀取固 件的請求而將存儲在第二存儲器中的更新的固件提供給控制單元。
7. —種固件更新方法,用於包括控制單元、存儲用於該控制單元的原始 固件的第一存儲器、第二存儲器、以及主控器的晶片,該方法包括以下步驟由主控器檢查是否存在用於控制單元的更新的固件;以及 當存在更新的固件時,由主控器將該更新的固件寫入第二存儲器中以供 控制單元使用。
8. 如權利要求7所述的固件更新方法,其中,主控器通過與位於晶片外 部的第三存儲器通信並且確定在第三存儲器中是否存儲了所述更新的固件, 來執行所述檢查。
9. 如權利要求7之一所述的固件更新方法,其中,主控器在每次激活芯 片時都自動地執行所述檢查。
10. 如權利要求7之一所述的固件更新方法,其中,在激活晶片之後, 主控器在預定時刻或以預定周期執行所述檢查。
11. 如權利要求7之一所述的固件更新方法,其中,主控器響應於用戶 的指令而執行所述檢查。
12. 如權利要求7所述的固件更新方法,還包括以下步驟 當存在所述更新的固件時,響應於來自控制單元的讀取固件的請求而將存儲在第二存儲器的更新的固件提供給控制單元。
全文摘要
提供了一種固件更新方法和使用該方法更新固件的晶片。該晶片包括控制單元以及存儲用於控制單元的原始固件的第一存儲器,並且還包括第二存儲器;以及主控器,用於檢查是否存在用於控制單元的更新的固件,並且當存在更新的固件時將該更新的固件寫入第二存儲器中以供控制單元使用。所述晶片和固件更新方法能夠簡化固件更新過程,從而減少固件更新成本和時間。
文檔編號G06F9/445GK101667133SQ20091020403
公開日2010年3月10日 申請日期2009年9月30日 優先權日2009年9月30日
發明者傑 丁, 瑾 賴 申請人:威盛電子股份有限公司