[go: up one dir, main page]

TWI768198B - 微控制器、記憶體模組及用於更新微控制器之韌體的方法 - Google Patents

微控制器、記憶體模組及用於更新微控制器之韌體的方法 Download PDF

Info

Publication number
TWI768198B
TWI768198B TW108111648A TW108111648A TWI768198B TW I768198 B TWI768198 B TW I768198B TW 108111648 A TW108111648 A TW 108111648A TW 108111648 A TW108111648 A TW 108111648A TW I768198 B TWI768198 B TW I768198B
Authority
TW
Taiwan
Prior art keywords
mcu
data
checksum
application
check
Prior art date
Application number
TW108111648A
Other languages
English (en)
Other versions
TW202038091A (zh
Inventor
約翰 喬瑟夫 三世 克萊明斯
朱英菖
李昆樺
Original Assignee
美商海盜船記憶體公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商海盜船記憶體公司 filed Critical 美商海盜船記憶體公司
Priority to TW108111648A priority Critical patent/TWI768198B/zh
Publication of TW202038091A publication Critical patent/TW202038091A/zh
Application granted granted Critical
Publication of TWI768198B publication Critical patent/TWI768198B/zh

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本發明提供一種微控制器單元,該微控制器單元具有一處理單元及一記憶體單元。該記憶體單元經組態以包括具有一電腦程式碼之一開機載入程式區段。當該電腦程式碼由該處理單元執行時,該微控制器單元根據複數個資料塊及與該等資料塊相關聯的複數個檢查和執行一檢查機制,以在韌體更新期間產生複數個第一檢查結果。亦提供一種包括該微控制器單元之一記憶體模組。亦提供一種用於初始化及更新該微控制器單元之韌體的方法。

Description

微控制器、記憶體模組及用於更新微控制器之韌體的方法
本發明係關於一種微控制器、記憶體模組及用於更新微控制器之韌體的方法,尤其是關於一種可不斷電進行韌體更新的微控制器、記憶體模組及方法。
記憶體模組可包括模組板及安裝於模組板上之一些揮發性記憶體組件。除記憶體組件以外的一些組件(例如光學組件、音訊組件等)亦可整合至模組板中。一或多個控制器(例如,微控制器單元Microcontroller Unit,MCU)由此引入於記憶體模組上以控制此等組件。
由控制器運行之韌體可能需要更新以修正錯誤(其導致此等非記憶體組件之故障)或將特徵添加至此等非記憶體組件。
本發明提供一種不需要關閉電腦電源以使對使用者之中斷最小化的韌體更新方案。
本發明之一些實施例提供一種微控制器單元(Microcontroller Unit,MCU)。MCU包括處理單元及記憶體單元。記憶體單元經組態以包括開機載入程式區段。開機載入程式區段經組態以儲存 電腦程式碼。該電腦程式碼在由該處理單元執行時,使得該MCU根據複數個資料塊及與該等資料塊相關聯的複數個檢查和執行第一檢查機制,以在韌體更新階段產生複數個第一檢查結果。
本發明之一些實施例提供一種記憶體模組。該記憶體模組包括模組板、複數個揮發性記憶體組件及MCU。模組板具有介面。揮發性記憶體組件安置於模組板上,且經由介面電連接至外部中央處理單元(Central Processing Unit,CPU)。MCU安置於模組板上,且經組態以:在開機載入程式模式下自外部CPU接收複數個資料塊及複數個檢查和,複數個資料塊中之每一者與來自該複數個檢查和的指定檢查和配對,其中資料塊及檢查和由外部CPU自經更新之韌體檔案擷取;以及檢查複數個資料塊中之每一者是否對應於指定檢查和。
本發明之一些實施例提供一種用於更新MCU之韌體的方法。MCU經由通道與外部CPU以通信方式耦接。該方法包括:外部CPU接收經更新之韌體檔案;外部CPU執行經更新之韌體檔案以獲取複數個資料塊及與該等資料塊相關聯的複數個檢查和;MCU接收複數個資料塊中之第一資料塊及複數個檢查和中指定給第一資料塊之第一檢查和;以及MCU根據第一資料塊及第一檢查和執行檢查機制,以產生第一檢查結果。
本發明之一些實施例提供一種用於初始化MCU之方法。MCU經由通道與外部CPU以通信方式耦接。該方法包括:MCU根據應用程式區段中之應用程式資料及資料區段中之應用程式檢查和執行第一檢查機制,以產生第一檢查結果;當第一檢查結果正確時,MCU進入應用程式模式;當第一檢查結果不正確時,MCU進入開機載入程式模式;以及 當MCU處於開機載入程式模式下時,執行所提及之更新MCU之韌體的方法。
10:網路連接
11:更新韌體提供端
13:經更新韌體接收端
21:經更新韌體提供端
23:經更新韌體裝置
25:使用者終端
27:電腦可讀媒體
110:經更新韌體
130:匯流排
131:通信模組
132:中央處理單元
133:記憶體模組
135:MCU
139:主機板
210:經更新韌體
230:匯流排
231:介面
232:CPU
233:記憶體模組
235:MCU
239:主機板
310:經更新韌體檔案
330:系統管理匯流排或積體電路間匯流排
332:CPU
333:記憶體模組
334:模組板
335:MCU
336:串列存在偵測單元
337:介面
339:主機板
411:資料塊
412:檢查和
435:MCU
435M:記憶體單元
435P:處理單元
901:連接器
903:MCU
4350:應用程式區段
4350a:應用程式資料
4352:資料區段
4352a:應用程式資料之資訊
4352b:應用程式檢查和
4354:開機載入程式區段
PG:電腦程式碼
PG1:第一檢查機制
PG2:第二檢查機制
S501:操作
S502:操作
S503:操作
S504:操作
S505:操作
S701:操作
S702:操作
S703:操作
S704:操作
S705:操作
S706:操作
S707:操作
S708:操作
S709:操作
S801:操作
S802:操作
S803:操作
S804:操作
S805:操作
S806:操作
S807:操作
S808:操作
S809:操作
S810:操作
S811:操作
U1:揮發性記憶體組件
U2:揮發性記憶體組件
U3:揮發性記憶體組件
U4:揮發性記憶體組件
U5:揮發性記憶體組件
U6:揮發性記憶體組件
U7:揮發性記憶體組件
U8:揮發性記憶體組件
結合附圖閱讀以下詳細描述會最佳地理解本發明之態樣。應注意,各種特徵可能未按比例繪製。事實上,可出於論述清楚起見,而任意地增大或減小各種特徵之尺寸。
圖1為根據本發明之一些實施例的包括經更新韌體提供端及經更新韌體接收器的韌體更新環境之方塊圖。
圖2為根據本發明之一些實施例的包括經更新韌體提供端、使用者終端及電腦可讀媒體的韌體更新環境之方塊圖。
圖3為說明根據本發明之一些實施例的記憶體模組與主機板之間的連接的連接圖。
圖4A及圖4B為展示根據本發明之一些實施例的微控制器單元中之若干功能區塊的方塊圖。
圖5為展示根據本發明之一些實施例的用於韌體初始化及更新的方法的流程圖。
圖6為根據本發明之一些實施例的處理經更新韌體檔案的示意圖。
圖7為展示根據本發明之一些實施例的用於韌體初始化及更新的方法的流程圖。
圖8為展示根據本發明之一些實施例的用於韌體初始化及更新的方法的流程圖。
圖9為根據本發明之一些比較實施例的記憶體模組。
以下揭示內容提供用於實施所提供之主題之不同特徵的許多不同實施例或實例。下文描述組件及配置之特定實例以簡化本發明。當然,此等組件及配置僅為實例且不意欲為限制性的。在本發明中,在以下描述中提及第一特徵形成於第二特徵上方或上可包括第一特徵與第二特徵直接接觸地形成的實施例,且亦可包括額外特徵可在第一特徵與第二特徵之間形成,使得第一特徵與第二特徵可能不直接接觸的實施例。另外,本發明可在各種實例中重複附圖標號及/或字母。此重複係出於簡化及清楚之目的,且本身並不指示所論述之各種實施例及/或組態之間的關係。
在下文更詳細地論述本發明之實施例。然而,應瞭解,本發明提供可在廣泛多種特定情境中體現之許多適用的概念。所論述特定實施例僅為說明性的且並不限制本發明之範疇。
此外,為了易於描述,諸如「在......之下」、「在......下方」、「在......上方」、「上部」、「下部」、「左側」、「右側」及其類似術語之空間相對術語可在本文中用於描述一個元件或特徵與另一(或多個)元件或特徵之如圖式中所說明的關係。除圖式中所描繪之定向以外,空間相對術語意欲涵蓋裝置在使用或操作中之不同定向。設備可以其他方式定向(旋轉90度或處於其他定向),且本文中所使用之空間相對描述詞可同樣相應地進行解譯。應理解,當元件被稱為「連接至」或「耦接至」另一元件時,該元件可直接連接至或耦接至另一元件,或可存在介入元件。
闡述本發明之廣泛範疇的數值範圍及參數為近似值,且可儘可能精確地報告特定實例中闡述之數值。然而,一些數值可含有由各別測試量測值中發現之標準差必然引起的某些誤差。此外,如本文中所使 用,術語「約」通常意謂在給定值或範圍之±10%、±5%、±1%或±0.5%內。替代地,一般熟習此項技術者認為,術語「約」意謂在平均值之可接受標準誤差內。除在操作/工作實例中以外,或除非以其他方式明確指定,否則數值範圍、量、值及百分比(諸如,本文中所揭示之材料數量、持續時間、溫度、操作條件、量之比率及其類似者之彼等者)中之所有應理解為在所有情況下由術語「約」修飾。因此,除非有相反指示,否則本發明及所附申請專利範圍中所闡述之數值參數為可變化之近似值。至少,應根據所報導之有效數位之數字且藉由應用一般捨位技術理解各數值參數。範圍可在本文中表現為自一個端點至另一端點或在兩個端點之間。除非另外指定,否則本文中所揭示之所有範圍包括端點。術語「大體上共面」可指沿著同一平面處於數微米(μm)內(諸如,沿著同一平面處於10μm內、5μm內、1μm內或0.5μm內)之兩個表面。在稱數值或特性「大體上」相同時,該術語可指該等值處於該等值之平均值的±10%、±5%、±1%或±0.5%內。
一些組件可整合至動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)模組中以提供額外功能(例如,視覺效果、音訊效果、功率管理等)。微控制器單元(Microcontroller Unit,MCU)亦併入至DRAM模組中以控制此等組件。
參看圖1,其為根據本發明之一些實施例的包括經更新韌體提供端11及經更新韌體接收端13的韌體更新環境之方塊圖。經更新韌體接收端13包括通信模組131、中央處理單元(Central Processing Unit,CPU)132及包括MCU 135之記憶體模組133。通信模組131、CPU 133及記憶體模組133安置於主機板139上,且由匯流排130電性耦接。在此韌體 更新環境中,在經更新韌體提供端11與經更新韌體接收端13之間建立網路連接10以用於傳輸相關資料。將在下文中進一步描述該等元件之間的交互作用。
在一些實施例中,當經更新韌體110經開發且分配就緒時,經更新韌體提供端11可將經更新韌體110經由網路連接10傳輸至經更新韌體接收端13。另一方面,經更新韌體接收端13之通信模組131接收經更新韌體110。接著,在經更新韌體接收端13接收經更新韌體110之後,經更新韌體接收端13之CPU 132可預處理更新韌體110,且將更新韌體110轉送至記憶體模組133之MCU 135。因此,MCU 135可藉由經更新韌體110更新MCU 135之韌體。
應特別瞭解,在一些實施例中,通信模組可為網路資料傳輸器及網路資料接收器之組合,或用於傳輸網路資料及接收網路資料之電路之組合。然而,此類描述不意欲限制本發明之硬體實現實施例。
參看圖2,其為根據本發明之一些實施例的包括經更新韌體提供端21、經更新韌體裝置23、使用者終端25及電腦可讀媒體27的韌體更新環境之方塊圖。經更新韌體裝置23包括介面231、CPU 232及包括MCU 235之記憶體模組233。介面231、CPU 233及記憶體模組233安置於主機板239上,且由匯流排230電性耦接。將在下文中進一步描述該等元件之間的交互作用。
在一些實施例中,當經更新韌體210經開發且分配就緒時,經更新韌體210可首先記錄於電腦可讀媒體27中。隨後,經更新韌體提供端21將具有經更新韌體210之電腦可讀媒體27提供至使用者終端25。在使用者終端25獲得具有經更新韌體210之電腦可讀媒體27之後,經更新 韌體裝置23之介面231可用於自電腦可讀媒體27擷取經更新韌體210。接著,在經更新韌體裝置23擷取經更新韌體210之後,經更新韌體裝置23之CPU 232可預處理更新韌體210,並將更新韌體210轉送至記憶體模組233之MCU 235。因此,MCU 235可藉由經更新韌體210更新MCU 235之韌體。
應特別瞭解,在一些實施例中,電腦可讀媒體可實施為非暫時性電子產品,例如唯讀記憶體(Read-Only Memory,ROM)、快閃記憶體、軟碟、硬碟、光碟(Compact Disc,CD)、數位光學光碟(Digital Versatile Disc,DVD)、藍光光碟(Blueray Disc,BD)或任何其他具有相同功能之儲存媒體。介面可為I/O埠或用於接收電腦可讀媒體之資料讀取設備。然而,此類描述不意欲限制本發明之硬體實現實施例。
參看圖3,其為說明根據本發明之一些實施例的主機板339上之記憶體模組333與CPU 332之間的連接之連接圖。記憶體模組333包括具有介面337之模組板334、安置於模組板334上之MCU 335及安置於模組板334上之複數個揮發性記憶體組件U1至U8。記憶體模組333經由介面337附接至主機板339,且MCU 335經由介面337與主機板339上之CPU 332交換資料。將在下文中進一步描述該等元件之間的交互作用。
在一些實施例中,當MCU 335進入開機載入程式模式時,MCU 335可進入更新過程。因此,MCU 335自CPU 332接收經更新韌體檔案310之複數個資料塊及複數個檢查和。複數個資料塊中之每一者與複數個檢查和之指定檢查和配對。接著,MCU 335檢查每一資料塊是否對應於指定檢查和。當每一資料塊對應於指定檢查和時,資料塊經驗證且作為資料塊之集合的經更新韌體檔案310因此經驗證。因此,MCU 335可藉 由經更新韌體檔案310更新並進入應用程式模式。另一方面,當有一個資料塊未對應於指定檢查和時,資料塊之傳輸可能不完整或資料塊在傳輸期間偶然更改或損壞。因此,MCU 335可保持在開機載入程式模式中且重新檢查每一資料塊是否對應於指定的資料塊。
在一些實施例中,MCU 335可經由介面337及系統管理匯流排(System Management Bus,SMBus)或積體電路間(Inter-Integrated Circuit,IIC)匯流排330與主機板339上之CPU 332通信。在一些實施例中,記憶體模組333包括串列存在偵測(Serial Presence Detect,SPD)單元336,且SMBus或IIC匯流排330可用於SPD單元336與CPU 332通信。在一些實施例中,MCU 335共用通信通道,例如SPD單元336與CPU 332之間的SMBus或IIC匯流排330。由於SMBus或CII匯流排330將多個裝置或模組連接至主機板339,因此前述多個裝置或模組可經由SMBus或CII匯流排330同時發送或接收資料。然而,SMBus或CII匯流排330一次僅可允許一個裝置或模組將資料發送或接收至主機板339/自主機板339發送或接收資料,因此,故障或不完整資料傳輸可必然在SMBus或CII匯流排330與主機板339上之CPU 332之間發生。為了減少此傳輸困難,尤其在使用SMBus或CII匯流排330作為通信通道時,資料傳輸之精確性可藉由一次傳輸一對資料塊及指定檢查和來提高,如將於本發明之圖5至圖8中所論述。
應特別瞭解,在一些實施例中,揮發性記憶體組件U1至U8可包括DRAM之記憶體單元。介面337可為與周邊組件互連(Peripheral Component Interconnect,PCI)或周邊組件高速互連(Peripheral Component Interconnect Express,PCI-E、PCIe)相容之介面。然而,此 類描述不意欲限制本發明之硬體實現實施例。
參看圖4A,其為展示根據本發明之一些實施例的MCU 435中的功能區塊之方塊圖。MCU 435包括處理單元435P及記憶體單元435M。記憶體單元435M可包括開機載入程式區段4354。開機載入程式區段4354儲存電腦程式碼PG。將在下文中進一步描述該等元件之間的交互作用。
在一些實施例中,當電腦程式碼PG由處理單元435P執行時,使得MCU 435根據複數個資料塊411及與該等資料塊相關聯的複數個檢查和412執行第一檢查機制PG1,以在韌體更新期間產生複數個第一檢查結果。換言之,當MCU 435處於開機載入程式模式下時,MCU 435根據資料塊411及檢查和412執行第一檢查機制PG1以產生第一檢查結果,且檢查第一檢查結果對於更新韌體而言是否全部正確。
參看圖4B,其為展示根據本發明之一些實施例的MCU 435中的詳細功能區塊之方塊圖。記憶體單元435P可進一步包括應用程式區段4350及資料區段4352。應用程式區段4350儲存應用程式資料4350a。資料區段4352儲存應用程式資料4350a之資訊4352a及應用程式檢查和4352b。將在下文中進一步描述該等元件之間的交互作用。
在一些實施例中,應用程式資料4350a可包括MCU 435之應用程式韌體。應用程式資料4350a之資訊4352a可包括應用程式韌體之版本、應用程式韌體之大小及應用程式韌體之記憶體位址。應用程式檢查和4352b可為基於應用程式資料4350a而產生的檢查和資料。
應注意,在一些實施例中,應用程式檢查和4352b之產生可藉由將應用程式資料4350a輸入檢查和函數來實施。詳言之,檢查和函 數可與散列函數、指紋、隨機化函數或密碼散列函數有關。因此,在將應用程式資料4350a輸入檢查和函數中時,對應於應用程式資料4350a之應用程式檢查和4352b導出為檢查和函數之輸出。因此,歸因於應用程式資料4350a與應用程式檢查和4352b之間的相關性,應用程式檢查和4352b可用於驗證應用程式資料4350a是否尚未偶然更改或損壞。
開機載入程式區段4354儲存用於MCU 435之電腦程式碼PG以在不同階段執行不同檢查機制。在一些實施例中,當MCU 435經激活時MCU 435處於初始化階段,且電腦程式碼PG由處理單元435P執行以用於根據應用程式資料4350a及應用程式檢查和4352執行第二檢查機制PG2,以產生第二檢查結果。特定言之,由於應用程式檢查和4352b為應用程式資料4350a之檢查和資料,因此處理單元435可檢查應用程式檢查和4352b是否對應於應用程式資料4350a,並產生第二檢查結果。
在一些實施例中,當第二檢查結果正確時,亦即,當應用程式檢查和4352b對應於應用程式資料4350a時,處理單元435P控制MCU 435進入應用程式模式。因此,對應於應用程式資料4350a之應用程式檢查和4352b可指示應用程式資料4350a可能尚未偶然更改或損壞。因此,MCU 435可進入應用程式模式。在一些實施例中,當第二檢查結果不正確時,亦即,當應用程式檢查和4352b未對應於應用程式資料4350a時,處理單元435P控制MCU 435進入開機載入程式模式。因此,未能對應於應用程式資料4350a之應用程式檢查和4352b可指示應用程式資料4350a可能已偶然更改或損壞。因此,MCU 435可進入開機載入程式模式以更新應用程式資料4350a。
在一些實施例中,當正經更新時,MCU 435處於更新階 段,且電腦程式碼PG由處理單元435P執行以根據資料塊411及指定給該等資料塊411之檢查和412執行第一檢查機制PG1,以產生第一檢查結果。特定言之,當MCU 435處於更新階段時,處理單元435P首先接收資料塊411及檢查和412。由於一個檢查和412指定給一個資料塊411,因此處理單元435P可檢查檢查和412是否分別對應於資料塊411,並產生第一檢查結果。
在一些實施例中,當資料塊411及檢查和412之第一檢查結果正確時,亦即,當檢查和412分別對應於資料塊411時,處理單元435P控制MCU 435自開機載入程式模式進入應用程式模式。因此,對應於資料塊411之檢查和412可指示,用於更新MCU 435之資料塊411之傳輸已完成且所接收之資料塊411經驗證。因此,MCU 435可經更新且接著進入應用程式模式。
在一些實施例中,當第一檢查結果中之一者不正確時,亦即,當資料塊411之一個資料塊411a未對應於檢查和412中指定給資料塊411a的一個檢查和412a時,處理單元435P控制MCU 435保持在開機載入程式模式。因此,未能對應於指定檢查和412a之一個資料塊411a可指示,用於更新MCU 435之資料塊411a的傳輸中之一者不完整或資料塊411a可在傳輸期間偶然更改或損壞。因此,MCU 435可保持在開機載入程式模式。此外,MCU 435可重新擷取資料塊411a及檢查和412a以用於重新產生對應檢查結果,且基於前述操作再次檢查對應檢查結果之正確性。
本發明之一些實施例包括一種用於韌體初始化及更新之方法,且其流程圖展示於圖5中。一些實施例之方法用於MCU(例如,前述 實施例之MCU)中,且MCU經由通道(例如,前述實施例之SMBus或IIC匯流排)與外部CPU(例如,前述實施例之主機板之CPU)通信。方法之詳細操作如下。
MCU執行操作S501以根據儲存於MCU之應用程式區段中之應用程式資料及儲存於MCU之資料區段中之應用程式檢查和執行檢查機制以產生檢查結果。在此實施例中,應用程式檢查和應對應於應用程式資料。MCU執行操作S502以檢查該檢查結果是否正確。換言之,在操作S502中,MCU檢查應用程式檢查和是否對應於應用程式資料。
在一些實施例中,當檢查結果正確時(亦即,當該對應用程式檢查和及應用程式資料對應時),MCU執行操作S503以進入應用程式模式。在一些實施例中,當檢查結果不正確時(亦即,當該對應用程式檢查和及應用程式資料不對應時),MCU執行操作S504以進入開機載入程式模式。MCU執行操作S505以基於前述實施例執行韌體更新。
本發明之一些實施例包括一種用於韌體初始化及更新之方法,且其流程圖展示於圖7中。一些實施例之方法用於MCU(例如,前述實施例之MCU)中,且MCU經由通道(例如,前述實施例之SMBus及IIC匯流排)與外部CPU(例如,前述實施例之主機板之CPU)通信。方法之詳細操作如下。
在藉由經更新韌體檔案更新MCU之前,更新韌體檔案可由外部CPU處理以導出資料塊及檢查和對,如圖6中所示。隨後,MCU執行操作S701以進入開機載入程式模式。MCU執行操作S702以經由通道接收經更新韌體檔案之一對資料塊i及檢查和i。在一些實施例中,經更新韌體檔案包括N個數目之資料塊及與N個數目之資料塊相關聯的N個數目之檢 查和,且檢查和i指定給資料塊i,其中i等於1至N。MCU執行操作S703以對該對資料塊i及檢查和i執行檢查機制,以產生檢查結果i。MCU執行操作S704以判定檢查結果i是否正確。換言之,在操作S704中,MCU檢查檢查和i是否對應於資料塊i。
在一些實施例中,當檢查結果i正確時(亦即,當該對資料塊i及檢查和i對應時),MCU執行操作S705以判定資料塊i是否為最末資料塊。若資料塊i不為最末資料塊,則MCU執行操作S706以將值1添加至i,且對MCU執行操作S702以接收下一對資料塊及指定檢查和並執行後續操作。若資料塊i經判定為最末資料塊,則MCU執行操作S707以藉由經更新韌體檔案更新MCU之韌體,該經更新韌體檔案可為該等對資料塊及指定檢查和之集合。MCU執行操作S708以在MCU之韌體更新之後進入應用程式模式。
在一些實施例中,當檢查結果i在操作S704中經判定為不正確時(亦即,當該對資料塊i及檢查和i不對應時),直接對MCU執行操作S702以再次接收該對資料塊i及檢查和i並執行後續操作。
在一些實施例中,可指示MCU在更新韌體之前進入開機載入程式模式。詳言之,當外部CPU經由主機板之通信模組自經更新韌體提供端擷取經更新韌體檔案時,外部CPU可指示MCU進入開機載入程式模式並準備更新韌體。
在一些實施例中,當檢查結果i在操作S704中經判定為不正確時,視情況MCU執行操作S709(由虛線表示)以通知外部CPU重新發送經更新韌體檔案之資料塊i及檢查和i。
本發明之一些實施例包括一種用於韌體初始化及更新之方 法,且其流程圖展示於圖8中。一些實施例之方法用於MCU(例如,前述實施例之MCU)中,且MCU經由通道(例如,前述實施例之SMBus及IIC匯流排)與外部CPU(例如,前述實施例之主機板之CPU)通信。方法之詳細操作如下。
類似地,在藉由經更新韌體檔案更新MCU之前,更新韌體檔案可由外部CPU處理以導出資料塊及檢查和對,如圖8中所示。隨後,MCU執行操作S801以進入開機載入程式模式。MCU執行操作S802以經由通道接收經更新韌體檔案之一對資料塊i及檢查和i。在一些實施例中,經更新韌體檔案包括N個數目之資料塊及與N個數目之資料塊相關聯的N個數目之檢查和,且檢查和i指定給資料塊i,其中i等於1至N。MCU執行操作S803以對該對資料塊i及檢查和i執行檢查機制,以產生檢查結果i。MCU執行操作S804以判定檢查結果i是否正確。換言之,在操作S804中,MCU檢查檢查和i是否對應於資料塊i。
在一些實施例中,當檢查結果i正確時(亦即,當該對資料塊i及檢查和i對應時),MCU執行操作S805以判定資料塊i是否為最末資料塊。若資料塊i不為最末資料塊,則MCU執行操作S806以將值1添加至i,且對MCU執行操作S802以接收下一對資料塊及指定檢查和並執行後續操作。
在一些實施例中,若資料塊i為最末資料塊,MCU執行操作S807以對經更新韌體檔案執行總檢查機制,以產生總檢查結果。MCU執行S808以判定總檢查結果是否正確。換言之,在操作S808中,MCU檢查總檢查和是否對應於經更新韌體檔案。
在一些實施例中,當總檢查結果正確時(亦即,當該對經更 新韌體檔案及總檢查和對應時),MCU執行操作S809以藉由經更新韌體檔案更新MCU之韌體,該經更新韌體檔案為該等對資料塊及指定檢查和之集合。MCU執行操作S810以在MCU之韌體更新之後進入應用程式模式。
在一些實施例中,當總檢查結果不正確時(亦即,當經更新韌體檔案及總檢查和不對應時),MCU執行操作S811以將i值重設為1,且對MCU執行操作S802以接收第一對資料塊及指定檢查和並執行後續操作。
在一些實施例中,當檢查結果i在操作S804中經判定為不正確時(亦即,當該對資料塊i及檢查和i不對應時),直接對MCU執行操作S802以再次接收該對資料塊i及指定檢查和i並執行後續操作。
參看圖9,其為展示記憶體模組之比較實施例。記憶體模組包括MCU 903、插座、跳線器或用於外部連接之連接器901,以及一些記憶體U1、U2、U3、U4、U5、U6、U7及U8。
大體而言,若記憶體模組歸因於MCU 903中發現之任何物理或硬體損害而出故障,則將舊MCU替換為另一MCU(例如,圖9中未展示之新的或良好MCU)可為解決此問題的解決方案中之一者。
即使記憶體模組歸因於軟體或韌體問題而出故障,具有經更新或相對較新版本之軟體或韌體的另一MCU亦可用於替換MCU 903。然而,插座、跳線器或連接器901可為解決前述問題提供一種選項。舉例而言,連接器901可接收信號或命令以更新實施於MCU 903中之軟體或韌體。在更新之前,記憶體模組駐存之電子裝置(例如,個人電腦、膝上型電腦、行動電話或其類似者)必須關閉或斷電以取出或拔出記憶體模組。隨後,記憶體模組必須發送至服務提供端以現場更新。關閉電子裝置及運 送記憶體模組可對使用者造成不便。此外,記憶體模組(例如,連接器901與MCU 903之間的電連接之電路佈局)上佔據相對較大空間或面積的連接器901可能會不利地影響記憶體模組之小型化。
10:網路連接
11:更新韌體提供端
110:經更新韌體
130:匯流排
131:通信模組
132:中央處理單元
133:記憶體模組
135:MCU
139:主機板

Claims (16)

  1. 一種用於一記憶體模組之微控制器單元(MCU),其包含:一處理單元;及一記憶體單元,其中該記憶體單元經組態以包含:一應用程式區段,經組態以儲存應用程式資料;及一開機載入程式區段,經組態以儲存一電腦程式碼,其中該電腦程式碼在由該處理單元執行時,使該MCU:自一外部中央處理單元(CPU)接收複數個資料塊及複數個檢查和;根據該複數個資料塊及與該等資料塊相關聯的該複數個檢查和執行一第一檢查機制,以在一韌體更新階段產生複數個第一檢查結果;及當該複數個第一檢查結果正確時,藉由使用儲存於該應用程式區段中之該應用程式資料而自一開機載入程式模式進入一應用程式模式;其中該外部CPU與該記憶體模組安置於同一主機板,且該MCU經由該記憶體模組之一模組板之一介面,自該外部CPU接收該複數個資料塊及該複數個檢查和。
  2. 如請求項1之MCU,其中該記憶體單元進一步經組態以包括:一資料區段,經組態以儲存一應用程式檢查和及與該應用程式資料相關聯的資訊; 其中當該電腦程式碼由該處理單元執行時,進一步使該MCU:根據該應用程式區段中之該應用程式資料及該資料區段中之該應用程式檢查和執行一第二檢查機制,以在一初始化階段產生一第二檢查結果。
  3. 如請求項2之MCU,其中該資料區段中之該應用程式資料之該資訊包含該應用程式資料在該應用程式區段中的一大小或一位址。
  4. 如請求項2之MCU,其中根據該應用程式區段中之該應用程式資料及該資料區段中之該應用程式檢查和執行該第二檢查機制以在該初始化階段產生該第二檢查結果進一步包含:當該第二檢查結果正確時,進入一應用程式模式;以及當該第二檢查結果不正確時,進入一開機載入程式模式。
  5. 如請求項1之MCU,其中進一步使該MCU執行:當該複數個第一檢查結果中之一者不正確時,保持在該開機載入程式模式。
  6. 一種記憶體模組,其包含:一模組板,具有一介面;複數個揮發性記憶體組件,安置於該模組板上且經由該介面電性連接至一外部中央處理單元(CPU);及一微控制器單元(MCU),安置於該模組板上,經由該介面與該外部 CPU交換資料,其中該外部CPU與該記憶體模組安置於同一主機板,且該MCU經組態以:在一開機載入程式模式下自該外部CPU接收複數個資料塊及複數個檢查和,該複數個資料塊中之每一者與來自該複數個檢查和之一指定檢查和配對,其中該複數個資料塊及該複數個檢查和由該外部CPU自一經更新韌體檔案中擷取;檢查該複數個資料塊中之每一者是否對應於該指定檢查和;及當該複數個資料塊中之每一者對應於該指定檢查和時,藉由使用儲存於一應用程式區段中之應用程式資料而自該開機載入程式模式進入一應用程式模式。
  7. 如請求項6之記憶體模組,其中該MCU經組態以經由一系統管理匯流排(SMBus)或一積體電路間匯流排(IIC)與該外部CPU通信。
  8. 如請求項7之記憶體模組,進一步包含經由該SMBus或該IIC與該外部CPU通信的一串列存在偵測(SPD)單元。
  9. 一種用於更新一記憶體模組之微控制器單元(MCU)之一韌體的方法,該MCU經由該記憶體模組之一模組板之一介面與一外部中央處理單元(CPU)以通信方式耦接,該方法包含:藉由該外部CPU接收一經更新韌體檔案;藉由該外部CPU執行該經更新韌體檔案以獲取複數個資料塊及與該複數個資料塊相關聯的複數個檢查和; 藉由該MCU經由該記憶體模組之該模組板之該介面,自該外部CPU接收該複數個資料塊中之一第一資料塊及該複數個檢查和中指定給該第一資料塊的一第一檢查和,其中該外部CPU與該記憶體模組安置於同一主機板;藉由該MCU根據該第一資料塊及該第一檢查和執行一檢查機制,以產生一第一檢查結果;藉由該MCU根據該經更新韌體檔案及一韌體檢查和執行一總檢查機制,以產生一總檢查結果;當該總檢查結果指示該經更新韌體檔案對應於該韌體檢查和時,藉由該MCU經由該經更新韌體檔案更新該MCU之該韌體;及藉由該MCU在更新該韌體之後利用儲存於一應用程式區段中之應用程式資料而進入一應用程式模式。
  10. 如請求項9之方法,其進一步包含:藉由該MCU根據來自該外部CPU之一指令進入一開機載入程式模式;其中藉由該MCU在該開機載入程式模式下接收該第一資料塊及該第一檢查和。
  11. 如請求項9之方法,其進一步包含:當該第一檢查結果指示該第一資料塊對應於該第一檢查和時,藉由該MCU接收該複數個資料塊中之一第二資料塊及該複數個檢查和中指定給該第二資料塊之一第二檢查和;以及 根據該第二資料塊及該第二檢查和執行該檢查機制,以產生一第二檢查結果。
  12. 如請求項9之方法,其進一步包含:當該第一檢查結果指示該第一資料塊未對應於該第一檢查和時,藉由該MCU接收該複數個資料塊中之該第一資料塊及該複數個檢查和中之該第一檢查和;以及藉由該MCU根據該第一資料塊及該第一檢查和執行該檢查機制,以重新產生該第一檢查結果。
  13. 如請求項12之方法,其中當該第一檢查結果指示該第一資料塊未對應於該第一檢查和時接收該第一資料塊及該第一檢查和進一步包含:當該第一檢查結果指示該第一資料塊未對應於該第一檢查和時,藉由該MCU通知該外部CPU重新發送該第一資料塊及指定給該第一資料塊之該第一檢查和;以及藉由該MCU接收該第一資料塊及該第一檢查和。
  14. 如請求項9之方法,其進一步包含:藉由該MCU接收該複數個資料塊中之一最末資料塊及該複數個檢查和中指定給該最末資料塊的一最末檢查和;以及根據該最末資料塊及該最末檢查和執行該檢查機制,以產生一最末檢查結果;當該最末檢查結果指示該最末資料塊對應於該最末檢查和時,藉由 該MCU根據該經更新韌體檔案及該韌體檢查和執行該總檢查機制,以產生該總檢查結果。
  15. 如請求項9之方法,其中該通道包含一系統管理匯流排(SMBus)或一積體電路間匯流排(IIC)。
  16. 一種用於初始化如請求項2之微控制器單元(MCU)之方法,該MCU經由該記憶體模組之該模組板之該介面與一外部中央處理單元(CPU)以通信方式耦接,該方法包含:藉由該MCU根據該應用程式區段中之該應用程式資料及該資料區段中之該應用程式檢查和執行該第二檢查機制,以產生該第二檢查結果;當該第二檢查結果正確時,藉由該MCU進入一應用程式模式;當該第二檢查結果不正確時,藉由該MCU進入一開機載入程式模式;以及當該MCU處於該開機載入程式模式時,執行如請求項9之方法。
TW108111648A 2019-04-02 2019-04-02 微控制器、記憶體模組及用於更新微控制器之韌體的方法 TWI768198B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW108111648A TWI768198B (zh) 2019-04-02 2019-04-02 微控制器、記憶體模組及用於更新微控制器之韌體的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108111648A TWI768198B (zh) 2019-04-02 2019-04-02 微控制器、記憶體模組及用於更新微控制器之韌體的方法

Publications (2)

Publication Number Publication Date
TW202038091A TW202038091A (zh) 2020-10-16
TWI768198B true TWI768198B (zh) 2022-06-21

Family

ID=74091292

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108111648A TWI768198B (zh) 2019-04-02 2019-04-02 微控制器、記憶體模組及用於更新微控制器之韌體的方法

Country Status (1)

Country Link
TW (1) TWI768198B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741094A (zh) * 2022-02-18 2022-07-12 长江存储科技有限责任公司 一种固件更新方法、设备及数据系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138267A1 (en) * 2003-12-23 2005-06-23 Bains Kuljit S. Integral memory buffer and serial presence detect capability for fully-buffered memory modules
TWI251170B (en) * 2001-10-12 2006-03-11 Phoenix Tech Ltd Apparatus and method for updating firmware
US20080086652A1 (en) * 2006-10-10 2008-04-10 Ken Krieger Updating a power supply microcontroller
US20120117365A1 (en) * 2010-11-08 2012-05-10 Delta Electronics (Thailand) Public Co., Ltd. Firmware update method and system for micro-controller unit in power supply unit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI251170B (en) * 2001-10-12 2006-03-11 Phoenix Tech Ltd Apparatus and method for updating firmware
US20050138267A1 (en) * 2003-12-23 2005-06-23 Bains Kuljit S. Integral memory buffer and serial presence detect capability for fully-buffered memory modules
US20080086652A1 (en) * 2006-10-10 2008-04-10 Ken Krieger Updating a power supply microcontroller
TW200838084A (en) * 2006-10-10 2008-09-16 Exaflop Llc Updating a power supply microcontroller
US20120117365A1 (en) * 2010-11-08 2012-05-10 Delta Electronics (Thailand) Public Co., Ltd. Firmware update method and system for micro-controller unit in power supply unit

Also Published As

Publication number Publication date
TW202038091A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
JP6244042B2 (ja) USB Type−Cの付属装置ドッキングモードに移行する方法、装置及びコンピュータプログラム製品
KR20130043662A (ko) 전자 디바이스들을 위한 케이블 연결들의 검출
US20100035461A1 (en) System and Method for Detecting Module Presence in an Information Handling System
TWI608357B (zh) 共用匯流排埠之系統及共用匯流排埠之方法
CN113742182A (zh) 硬盘点灯方法、装置、存储介质及计算机程序产品
CN111858431A (zh) 一种基于pcie的扩展柜的热插拔方法、装置、设备和介质
US8438374B2 (en) Computer system and control method of the same
US20190391948A1 (en) Electronic system capable of detecting number of hot plug insertion and extraction cycles
CN118427020A (zh) 硬件设备管理方法、装置、bmc、存储介质及程序产品
CN105320620B (zh) 存储器存储装置及控制方法、存储器控制电路单元及模块
TWI768198B (zh) 微控制器、記憶體模組及用於更新微控制器之韌體的方法
CN110620677A (zh) 网络系统及认证方法
US11010250B2 (en) Memory device failure recovery system
CN113656339B (zh) Nvme热插拔的处理方法、bmc、装置、设备及介质
CN116126221A (zh) 被配置为获得外部装置的数据以用于调试的存储装置
CN111766797A (zh) 微控制器、存储模块及用于更新微控制器的韧件的方法
US20170270021A1 (en) Repair of failed firmware through an unmodified dual-role communication port
US11341014B2 (en) System and method for generating a hotkey in a pre-boot environment
US9940289B2 (en) Preventing access to misplugged devices by a service processor
CN116414797A (zh) 一种系统文件拷贝的方法、装置、设备及介质
US10489334B2 (en) Server system and method for detecting transmission mode of server system
TWI735869B (zh) 儲存控制裝置及其控制方法
US20080160811A1 (en) Automatic configuration of an interface to a host or client
US20250390401A1 (en) Channel warnings on device insertion issues
CN106648007B (zh) 一种通用槽位实现方法、装置及通信设备