TWI786793B - 用於修補啟動唯讀記憶體之方法、電腦可讀儲存媒體及電子設備 - Google Patents

用於修補啟動唯讀記憶體之方法、電腦可讀儲存媒體及電子設備 Download PDF

Info

Publication number
TWI786793B
TWI786793B TW110132233A TW110132233A TWI786793B TW I786793 B TWI786793 B TW I786793B TW 110132233 A TW110132233 A TW 110132233A TW 110132233 A TW110132233 A TW 110132233A TW I786793 B TWI786793 B TW I786793B
Authority
TW
Taiwan
Prior art keywords
address
data
record
boot
rom
Prior art date
Application number
TW110132233A
Other languages
English (en)
Other versions
TW202246987A (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 美商谷歌有限責任公司
Publication of TW202246987A publication Critical patent/TW202246987A/zh
Application granted granted Critical
Publication of TWI786793B publication Critical patent/TWI786793B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本文件闡述用於具有相關及直接映射之修補資料之記憶體修補之技術及設備。在某些態樣中,一處理器請求儲存於一啟動ROM(110)之一位址映射之一第一區域的一位址處之啟動碼(118)。一啟動ROM控制器(114)可基於該位址而判定一可程式化記憶體(112)中之一相關記錄包含匹配該位址之位址資訊。該控制器傳回該相關記錄之修補資料(120)。此修補資料包含去往該位址映射之一第二區域的另一位址。該處理器請求該另一位址之另一資料,該另一位址直接映射至不包含與該位址映射有關之位址資訊的該可程式化記憶體之其他記錄。基於該第二區域之起始位址與被請求資料之該另一位址之間的一位移,可自直接映射之記錄提取該另一資料。

Description

用於修補啟動唯讀記憶體之方法、電腦可讀儲存媒體及電子設備
本揭露係關於用於具有相關及直接映射之修補資料之記憶體修補之技術,特定而言係用於使一匯流排控制器或啟動載入器能夠經由一唯讀記憶體(ROM)控制器向一啟動ROM請求啟動碼。
在各種各樣數位裝置中,啟動程序面臨維持完整性及確實性之挑戰。例如,對啟動程序之入侵可能使不法分子能夠控制一數位裝置,從而允許存取作業系統、應用程式及私有資料。唯讀記憶體(ROM)通常用於在啟動期間藉由經由硬接線、不可更改之記憶體提供啟動碼、資料或指令來克服完整性及確實性問題。儘管改良了安全性,但ROM帶來實際軟體開發挑戰,因為對該ROM之改變可能在下線之後或在其他裝置階段期間無法實現。此問題通常藉由包含某一量之單次或多次可程式化記憶體來解決,該單次或多次可程式化記憶體可填充有稍後(諸如在工廠或測試設施之晶片製造週期之硬體組態階段)判定之修補程式碼。然而,將可程式化記憶體添加至一積體電路或晶片設計可係昂貴的且消耗對於其他組件或邏輯可係有用的之設計空間。
本文件闡述用於具有相關及直接映射之修補資料之記憶體修補之技術。該等所闡述技術可使一匯流排控制器或啟動載入器能夠經由一唯讀記憶體(ROM)控制器向一啟動ROM請求啟動碼。該啟動碼可儲存於該啟動ROM之一位址映射之一第一區域的一位址處,該位址可映射至由該ROM儲存之啟動碼之列。該啟動ROM控制器可基於該位址而判定一可程式化記憶體中之一相關記錄包含一匹配位址或位址資訊。基於該判定,該啟動ROM控制器將該相關記錄之修補資料傳回該匯流排控制器。該修補資料包含去往該位址映射之一第二區域中的另一位址之一跳躍指令,該另一位址可直接映射至該可程式化記憶體之修補資料記錄。該匯流排控制器然後向該位址映射之該第二區域中的該另一位址請求另一資料,該另一位址直接映射至不包含與該位址映射有關之位址資訊的該可程式化記憶體之其他記錄(例如,直接映射之記錄)。基於該啟動ROM之該位址映射之該第二區域的開頭與被請求資料之該另一位址之間的一位移,可存取該另一資料(例如,修補資料或修補程式碼)且將該另一資料傳回至該匯流排控制器或啟動載入器。
在態樣中,直接映射之記錄可不使用或需要相關位址欄位來與ROM記憶體位置相關,此可減少用於儲存相關位址欄位之必要記憶體空間量及用以評估請求ROM位址之相關位址之處理時間。因此,所闡述技術及設備可減少可程式化記憶體內用於儲存修補資訊之儲存空間,而且提供其他優點。本文件闡述可使具有相關及直接映射之修補資料或記錄之記憶體修補能夠用於啟動ROM修補或者其他程式碼修改或替換操作的各種方法、組態、系統、設備及技術。
提供此發明內容以介紹實施方式及圖式中進一步闡述之具有相關及直接映射之修補資料之記憶體修補之簡化概念。此發明內容並不意欲識別所主張標的物之基本特徵,亦不意欲用於判定所主張標的物之範疇。
100:環境
102:運算裝置
102-1:智慧型電話
102-2:平板電腦
102-3:膝上型電腦
102-4:桌上型電腦
102-5:運算手錶
102-6:運算眼鏡
102-7:遊戲系統
102-8:家庭自動化與控制系統
102-9:智慧型電器
104:處理器/電腦處理器
106:電腦可讀媒體
108:隨機存取記憶體
110:啟動唯讀記憶體
112:可程式化記憶體
114:啟動唯讀記憶體控制器
116:修補資料管理器/修補管理器
118:啟動碼
120:修補資料
122:應用程式
124:作業系統
126:系統設定
200:匯流排控制器
202:匯流排
204:啟動載入器
206:修補資料完整性電路
300:通信路徑
302:類型指示器
304:位址匯流排
306:請求有效指示
308:回應有效指示
310:讀取資料匯流排
312:錯誤指示
400:記錄資料結構
402:類型H標頭記錄/標頭記錄
404:標頭資料
406:Num_Type_FA
408:類型FA記錄/相關記錄
410:資料
412:相關位址
414:記錄啟用位元
416:類型DM記錄/直接映射之記錄
418:資料
420:啟用位元
502:啟動唯讀記憶體位址映射/唯讀記憶體位址映射/位址映射
504:唯讀記憶體區域
506:類型DM區域
508:標頭記錄
510:相關記錄
512:直接映射之記錄
600:方法
602:方塊
604:方塊
606:方塊
608:方塊
610:方塊
612:方塊
在本文件中參考附圖闡述具有相關及直接映射之修補資料之記憶體修補之一或多個態樣之細節。相同編號在所有圖式中用於指代相似特徵及組件:圖1圖解說明一實例性環境,其中可根據本發明之一或多個實施方案實施使直接映射之修補資料能夠用於記憶體修補之技術;圖2根據本發明之一或多個實施方案圖解說明一修補管理器及可程式化記憶體之一實例性組態;圖3根據本發明之一或多個實施方案圖解說明用於一修補管理器之一實例性通信介面;圖4根據本發明之一或多個實施方案圖解說明記錄及記錄資料結構之實例性圖式;圖5根據本發明之一或多個實施方案圖解說明一實例性位址映射;且圖6根據一或多個實施方案圖解說明用於使用直接映射之可程式化記憶體存取修補資料之一實例性方法。
概述
諸多運算裝置包含各種積體電路,且該等積體電路可由功能或操作定義。作為實例,該等積體電路可與網路、顯示器、通信系統、 相機、內部裝置及周邊裝置介接以適合使用者、其他運算裝置及其他實施方式。在某些情形中,為了提供安全運算,可實施一唯讀記憶體(ROM)以為運算裝置之啟動操作提供一個一致起點。亦即,當將運算裝置通電或重設時,順序地載入ROM內的指令及資料(例如,ROM資料)以每次以一相同或類似方式初始化或「啟動」運算裝置之子系統。用於啟動運算裝置之此ROM程式碼、指令及/或資料有時稱為一啟動ROM。
一ROM可定義為一硬接線之記憶體電路,其具有在製作程序中之某一時刻(例如,下線、製造或另一步驟)之後不可改變的指令。此硬接線之記憶體電路可在製作期間且在製作之後透過微影、蝕刻或其他記憶體實施方式來形成。一般而言,ROM包含識別啟動碼、啟動指令或其他啟動資料(其一般可稱為啟動碼)之記錄、行、列或記憶體位置。作為一實例,ROM可具有一或多個位址區域或空間,該一或多個位址區域或空間具有與個別記憶體位址相關聯之記錄。每一記錄可對應於記憶體之一列、位置或行。在製作或發佈期間之某一時刻,ROM或者儲存於其中之程式碼及資料被鎖定或以其他方式不可更改。可在運算裝置之整個生命中分發用於硬編碼之ROM之各種修補,該等修補包含錯誤校正(例如,漏洞修復)、安全修訂或其他修改。
如本文中所闡述,為了允許更改ROM資料,另一記憶體可安置於運算裝置上以使替換、刪除、省略或插入指令及資料能夠作為指令或其他硬編碼之ROM資料(例如,修補資料)之替代方案。額外記憶體可具有有限可程式性以阻止對ROM之未經授權或惡意修補。作為一實例,可程式化記憶體可係一次寫入、單次可程式化(OTP)或多次可程式化記憶體(MTP)。作為實例,可程式化記憶體可透過電熔絲或反熔絲來實施。此 外,可程式化記憶體可根據一鎖位元或允許在設定之前的一或多個修訂(例如,OTP、MTP)之另一實施方式來鎖定以阻止未經授權或惡意人員對修補程式碼進行後續修改。
在各種態樣中,一可程式化記憶體可包含儲存用於啟動碼之修補資料之記錄或記憶體位置。作為一實例,可程式化記憶體可具有一或多個位址區域或位址空間,該一或多個位址區域或位址空間具有與個別記憶體位址相關聯之記錄。每一記錄可對應於儲存於可程式化記憶體中(例如,一記憶體位置、列或行處)之資料及/或資訊。與可程式化記憶體相關聯之一記憶體映射中之一位址區域可自與啟動ROM相關聯之該記憶體映射之一位址區域位移或分開以允許存取儲存於ROM及可程式化記憶體中之任一者或兩者中之唯一記憶體記錄。在態樣中,可程式化記憶體包含填充有與ROM中之一位址全相關之記錄(例如,類型FA記錄)之一或多個區域。類型FA記錄可包含修補資料及ROM中與該修補資料有關之一位址。可程式化記憶體亦可包含填充有直接映射至位址映射之一位移區域中的一位址之記錄(例如,直接映射之記錄或類型DM記錄)的一或多個區域,且該等記錄僅與ROM所映射至之啟動映射之一區域中的一位址隱式關聯。類型DM記錄可包含修補資料或指令,但與一類型FA記錄不同,不包含藉以存取類型DM記錄之一位址(例如,ROM所支持之一位址)。為了達成一類型DM記錄之存取,位址映射之位移區域中的一位址可自位移區域的一開頭位移設定數量之記錄、位址、列或行。另外,位移可包含可程式化記憶體內之一DM記錄區域的一開頭或自該開頭經索引。因此,可判定在位址映射之位移位址區域的一開頭與可程式化記憶體中之類型DM記錄之一開頭之間的一或多個位移。藉由如此操作,可基於一源位址(例 如,在位址映射之位移區域中)及其中儲存有記錄之可程式化記憶體區域中的一位移而存取可程式化記憶體中之直接映射之記錄,此可藉助可程式化記憶體之修補資料之直接映射之記錄有效地達成啟動碼修補操作。此僅僅係用於記憶體修補之直接映射之修補資料之一個實例,在本發明通篇中提供該直接映射之修補資料之其他實例。
藉由實例方式,考量具有一啟動ROM位址映射或與該啟動ROM位址映射相關聯之一啟動ROM,該啟動ROM位址映射包含具有自0x0000_0000至0x0000_FFFF之十六進制表示位址之一區域(例如,一位址空間或映射)。假定此等位址包括位址映射之一ROM區域,該ROM區域具有與儲存啟動碼之記錄(例如,ROM記錄或啟動記錄)之ROM項目對應的位址。啟動ROM位址映射亦包含直接映射之位址之一位移區域(例如,一類型DM區域),該等直接映射之位址以位址0x0001_0000開始且自彼處向上遞增(例如,0x0001_0000、0x0001_0001、0x0001_0002、...、0x0001_0009、0x0001_000A、...、0x0001_000F等等)。
在此實例中,一匯流排控制器(例如,一運算裝置之一處理器或微控制器)向啟動ROM發佈對儲存於0x0000_0000與0x0000_FFFF之間的一ROM位址處之資料的一請求(例如,發佈一讀取異動)(例如,經由一ROM控制器)。針對此實例,假定請求係針對ROM位址0x0000_0008處之資料。ROM控制器經由ROM控制器與可程式化記憶體之控制邏輯之間的一介面向一可程式化記憶體控制器(例如,一處理器、微控制器或其他邏輯或電路系統)發佈一對應異動。介面可係一專用介面或另一介面之一部分。在某些實施方案中,匯流排控制器可同時向ROM控制器及可程式化記憶體控制器發送請求(例如,經由專用介面或另一連接)。
在此實例中,可程式化記憶體係一單次可程式化(OTP)記憶體且可程式化記憶體控制器稱為一OTP控制器。OTP記憶體包含儲存修補資料之各種OTP記錄,該等OTP記錄包含對啟動記錄之添加或修改。在態樣中,OTP記錄包含一標頭記錄(例如,一類型H記錄)、與一ROM記錄全相關之記錄(例如,類型FA記錄)及可直接映射至一ROM記錄之其他記錄(例如,類型DM記錄)。在態樣中,可將OTP記憶體之記錄一起程式化,其中OTP中之任何剩餘空間經燒錄或設定至一已定義狀態且經由一鎖位元或安全暫存器設定來鎖定。類型H記錄或標頭係OTP記憶體中之「第一」記錄(例如,最低記錄)且指示類型FA記錄之數目。類型FA記錄在類型H記錄之後開始且含有一位址欄位,該位址欄位包含相關聯ROM位址(或記錄)之位址或位址資訊以及針對待修補之彼ROM位址(或記錄)之修補資料。類型DM記錄可在最後一類型FA記錄之後開始且包含修補資料或指令,但與類型FA記錄不同,一般不包含從中調用類型DM記錄之一位址欄位或位址資訊。如本文中所闡述,基於一源位址、位址映射之一DM區域的一位移及/或OTP記憶體之DM區域中的一位移或索引而隱式存取類型DM記錄。
回應於匯流排控制器之請求,ROM控制器存取啟動ROM以準備提取所請求位址處之ROM資料(例如,讀取去往一內部快取記憶體或緩衝器之ROM資料及/或將該ROM資料排隊)。此係由ROM控制器實施之操作之一部分,且由於針對所請求位址可能不存在修補資料,因此ROM控制器準備傳回對應ROM記錄中之資料(例如,以避免延時問題)。基於請求,OTP控制器對照所請求ROM位址(例如,0x0000_0008)檢查類型FA記錄以判定是否任何類型FA記錄皆包含用於修補資料之一匹配位址。若不存在具有一匹配位址之類型FA記錄,則OTP控制器將不存在匹配位址 之一指示傳回至ROM控制器(例如,經由介面),且ROM控制器將所請求ROM位址之啟動資料傳回至匯流排控制器。
若存在具有一匹配位址之一類型FA記錄,則OTP控制器將該類型FA記錄之修補資料傳回至ROM控制器(例如,經由介面)。為了達成直接映射之修補資料之態樣,類型FA記錄之資料包含去往位址映射之類型DM區域或位移區域中的一位址之一跳躍指令。舉例而言,該跳躍指令可係去往對應於或指向修補資料之類型DM位址之用以設定匯流排控制器之一程式計數器或使該程式計數器遞增的一指令或者向類型DM位址請求資料之另一類型的指令。在此實例之內容脈絡中,假定OTP控制器傳回一跳躍指令,該跳躍指令係向位址映射之位移區域中的類型DM位址0x0001_0002之一跳躍(例如,自ROM區域位移0x0001_)。作為回應,ROM控制器將類型FA記錄資料傳回至匯流排控制器。因此,替代來自0x0000_0008處之所請求ROM記錄之啟動資料,ROM控制器傳回來自具有匹配相關聯位址之類型FA記錄之修補資料,在此實例中,該修補資料係去往位址映射之位移區域的類型DM位址0x0001_0002之跳躍指令。
基於來自類型FA記錄之修補資料之跳躍指令,匯流排控制器向ROM控制器發佈對位址映射之類型DM位址區域中的位址0x0001_0002之資料的一請求或讀取異動。作為回應,ROM控制器向OTP控制器發佈一對應讀取異動。OTP控制器基於0x0001_0002位址(例如,位址映射之DM區域中的第二位址)及由標頭記錄規定之一位移而存取OTP之類型DM記錄,此使OTP控制器能夠索引至OTP記憶體中之一對應類型DM記錄。OTP控制器然後將來自OTP記憶體之類型DM記錄之修補資料傳回至ROM控制器,該類型DM記錄直接映射至啟動ROM位址映射 之DM位址區域中的0x0001_0002位址。ROM控制器將此修補資料傳回至匯流排控制器,該匯流排控制器然後可基於一遞增程式計數器而請求下一個類型DM記錄。為了傳回啟動碼,修補資料之最後一類型DM記錄可包含回到位址映射之ROM區域的另一跳躍指令以在透過使用OTP記憶體中之類型DM記錄達成之程式碼插入或修改之後重新開始啟動程序。
注意,不存在經修補之ROM位址(0x0000_0008)與位址映射之類型DM區域中的類型DM記錄之位址(0x0001_0002)之間的相關關係。換言之,可使用自一類型FA記錄至一所要類型DM區域位址之一跳躍指令修補任何ROM位址以自一直接映射之類型DM記錄(例如,OTP中之一項目、行或列)獲得修補資料。由於位址映射中不存在支持在0x0000_FFFF上面之位址之ROM資料,因此OTP控制器自直接映射之OTP列傳回類型DM記錄資料。ROM位址映射之類型DM區域的列/位址(例如,以0x0001_0000開始之彼等列/位址)與OTP中之類型DM記錄之間的映射基於類型H記錄及在OTP中之類型DM記錄下面之類型FA記錄之數目而係隱式的。因此,類型DM記錄可包含不需要相關位址資訊之修補程式碼,此能夠更高效地使用儲存修補程式碼之OTP記憶體或相對於僅依賴於相關記錄進行修補操作之先前修補技術儲存更多修補程式碼之一OTP記憶體。
在態樣中,可如下實施類型DM記錄之隱式定址。基於類型H記錄及ROM位址空間中之異動之源位址(例如,0x0001_0002),OTP控制器可判定應傳回哪一行修補資料。首先,存在一個類型H記錄,其指示存在於OTP記憶體中之類型FA記錄之數目。其次,所請求類型DM位址闡述(例如,藉由索引)哪一類型DM記錄包含所請求修補資料。舉例而言, 位址0x0001_0002指示請求第三類型DM記錄之資料(「02」係在「00」及「01」之後的第三記錄)。對於此實例,假定類型H記錄指示存在填充或燒錄至OTP記憶體中之十五個類型FA記錄。因此,將基於一個類型H記錄、十五個類型FA記錄及三個類型DM記錄之一計數之一總和而自OTP記憶體中之第十九個類型DM記錄存取所請求資料。因此,使用一類型FA記錄跳躍指令,可藉由使用一類型FA記錄來修補ROM位址映射之一啟動區域(例如,一下部64KB區域)中之一位址處之ROM程式碼之任何一或若干行以跳躍至位址映射之類型DM區域中的一直接映射之類型DM記錄之一位址(例如,在0x0001_0000處或上面)。如所述,在匯流排控制器接收到來自直接映射至0x0001_0002位址之類型DM記錄之修補資料之後,匯流排控制器繼續向接下來之遞增DM位址(例如,0x0001_0003、0x0001_0004等等)請求資料,直至所傳回修補資料包含將匯流排控制器之請求引導回至ROM位址空間中之一跳躍指令或位址(例如,在0x0001_0000下面)。
與所闡述態樣相比較,用於修補啟動ROM之諸多先前方法完全依賴於類型FA記錄,此可能增加啟動時間,因為必須對照用於修補指令或資料之每一類型FA記錄檢查ROM中之每一位址(例如,啟動碼之每一記錄、列或行)以判定針對彼ROM位址是否存在具有修補資料之一類型FA記錄。另外,此意味必須針對每個類型FA記錄至少讀取位址欄位,此可消耗時間及處理/運算資源。此外,類型FA記錄亦必須佔據足夠實體記憶體空間以包含用於與ROM記憶體位置相關之相關位址欄位及相關修補資料兩者。
因此,所闡述態樣(其實施不包含用於與一ROM記憶體位置 相關之一位址欄位或其他相關位址資訊的類型DM記錄)達成更高效啟動操作及可程式化記憶體容量之經改良利用率。換言之,用於修補啟動碼之多個行之類型DM記錄通常佔據與類型FA記錄相比相對較少之記憶體空間。另外,存取類型DM記錄之處理時間可能減少,因為要讀取或評估之類型DM記錄中不存在位址或位址資訊,尤其係一旦起始經由類型DM記錄進行之修補。在其中修補包含將修補資料之諸多順序行插入至啟動碼中或取代啟動碼之一情形中,此可係尤其有利的。在此等情形中,即使插入修補資料之數個行(一個用以跳躍至類型DM位址區域且最後一類型DM記錄包含跳躍回到ROM位址區域)亦讀取僅一個類型FA記錄係一常見修補模式。因此,在其中將12行修補資料插入至啟動碼中之一實例中,需要填充且讀取僅一個類型FA記錄,而非12個單獨類型FA記錄,此節省空間且減少一晶片或系統之啟動ROM系統之修補時間及資源消耗。僅存在用於記憶體修補之直接映射之修補資料之幾個實例,在本發明通篇中在各種設備、系統、組件及/或方法之上下文中闡述其他實例。
實例性設備、系統及組件
圖1根據本發明之一或多個態樣圖解說明其中可實施達成具有相關及直接映射之修補資料之記憶體修補之技術的一實例性環境100。可根據各種製造及/或裝配程序提供一實例性運算裝置102或其中之組件,該等製造及/或裝配程序包含併入如本文中所闡述之一唯讀記憶體及可程式化記憶體。藉助各種各樣實例性裝置圖解說明實例性運算裝置102,其包含一智慧型電話102-1、一平板電腦102-2、一膝上型電腦102-3、一桌上型電腦(例如,一運算裝置)102-4、一運算手錶102-5、運算眼鏡102-6、一遊戲系統102-7、一家庭自動化與控制系統102-8及一智慧型電器 102-9。儘管未展示,但運算裝置102亦可實施為其他類型之裝置,例如,一電視機、機上盒、娛樂系統、音訊系統、一汽車用電腦、無人機、小筆電、電子閱讀器、家庭安全系統、另一家用電器及其他物聯網裝置。注意,一運算裝置102可係行動的、穿戴式的、非穿戴式但行動的或相對固定的(例如,在資料中心之桌上型電器及伺服器)。因此,在本發明通篇所闡述之態樣中預期具有一唯讀記憶體及可程式化記憶體之任何適合類型之運算裝置。
如圖1中所展示,實例性運算裝置102亦可包含一或多個處理器(或電腦處理器)104。處理器104可實施為任何適合類型或組態之處理器且可與一電腦可讀媒體(CRM)106相關聯。在此實例中,電腦可讀媒體106包含隨機存取記憶體108(RAM 108)、實施為一啟動ROM 110之一唯讀記憶體(ROM)及一可程式化記憶體112。運算裝置102亦包含一啟動ROM控制器114及一修補資料管理器116(修補管理器116)以管理啟動ROM 110及/或可程式化記憶體112之操作及功能性。一般而言,啟動ROM控制器114可與電腦可讀媒體106之啟動ROM 110相關聯,且修補管理器116可與可程式化記憶體112相關聯。啟動ROM 110可實施為硬接線之記憶體電路系統或單元(例如,記憶體電路、記憶體晶片、記憶體陣列及/或記憶體位址空間),其具有在下線、製作、製造、程式化或運算裝置之另一生命循環週期之後不可改變之硬編碼指令或儲存於其中之資料。可在製作上面形成有啟動ROM 110之一積體電路基板期間透過微影、蝕刻或其他記憶體實施方式形成硬接線之記憶體電路、組件及啟動ROM 110之其他特徵。
在態樣中,運算裝置102之啟動ROM 110包含啟動碼118, 可在運算裝置102之一啟動程序期間利用啟動碼118。啟動碼118可包含用於啟動或初始化運算裝置102或其子系統之程式碼、記錄、項目、指令或資料。啟動碼118亦可或替代地包含儲存啟動碼、啟動指令、啟動資料等等之記憶體位置。作為一實例,啟動ROM 110之內容可係可定址的或透過一位址空間(例如,一記憶體映射或位址區域)來存取,該地址空間具有與個別記憶體位址相關聯的啟動碼之記錄、列或行。每一位址可對應於啟動ROM 110內之一或多個記憶體位置或記錄。在製作或製造期間之某一時刻,啟動ROM 110之內容可係硬編碼的、程式化的、燒錄的或以其他方式不可更改的。照此,可在製作啟動ROM 110之後使用可程式化記憶體112之修補資料120對啟動ROM 110之內容實施改變或修補以用於錯誤校正(例如,漏洞修復)、安全修訂或其他修改。舉例而言,可在裝配、程式化或佈建其中實施啟動ROM 110(例如,作為一系統單晶片之一部分)之一印刷電路板運算裝置期間修補啟動ROM 110。
在態樣中,修補資料120寫入或儲存至可程式化記憶體112且可包含組態為對啟動碼118之一更新或修訂之修補資料或修補程式碼。修補資料120可透過各種實施方案寫入至可程式化記憶體112,該等實施方案可包含設定熔絲值或燃燒熔絲以設定修補資料120之位元或行之各別值。作為一實例,可程式化記憶體112可係透過電熔絲或反熔絲程式化之一次寫入或單次可程式化(OTP)記憶體或一多次可程式化(MTP)記憶體(未展示之熔絲程式化邏輯)。一般而言,可在運算裝置102之生命期間(例如,在一測試階段、評估階段或程式化階段期間)在各個時間將修補資料120寫入至可程式化記憶體112。其他機制及實施方式可用於將修訂限制於可程式化記憶體112之內容。作為一實例,可程式化記憶體112可與一 旦經設定便鎖定可程式化記憶體112以免受進一步更改之一控制位元相關聯。照此,修補資料120可寫入至可程式化記憶體112以允許修補管理器116或另一實施方式應用儲存於其中之修補資料120而不具有修補資料120被未經授權或惡意人員進行後續更改之風險。處理器104、啟動ROM控制器114及修補管理器116中之每一者可實施為電路系統、記憶體及邏輯之一各別組合,根據各種態樣,所有該等電路系統、記憶體及邏輯可包含處理器及其他處理電路系統或介面邏輯以存取可程式化記憶體112、啟動ROM 110、啟動碼118、修補資料120及/或電腦可讀媒體106。
運算裝置102亦可包含實施為電腦可讀媒體106上可由電腦處理器104執行之電腦可讀指令之應用程式122及/或一作業系統124。儘管未展示,但運算裝置102之某些實施方案可包含用於經由有線、無線或光學網路傳遞資料之一網路介面。藉由實例而非限制方式,一運算裝置102之網路介面可使得能夠經由一區域網路(LAN)、一無線區域網路(WLAN)、一個人區域網路(PAN)、一廣域網路(WAN)、一內部網路、網際網路、一對等網路、點對點網路或一網狀網路傳遞資料。
在其他實施方案(未展示)中,運算裝置102之組件中之某些或所有組件可實施為一系統單晶片(SoC)、一或多個積體電路(IC)、一印刷電路板總成、具有嵌入韌體之硬體或其任一組合。儲存於CRM 106上之處理器可執行指令可包含應用程式122、作業系統124及/或系統設定126,其可由處理器104或其他基於硬體之處理器執行以提供運算裝置102之功能性及/或與用於記憶體修補之直接映射之修補資料之態樣相關聯之操作。換言之,處理器104、啟動ROM控制器114及/或修補管理器116可執行該等指令以實施如本發明中所提供之操作及執行之一組合。
圖2根據本發明之一或多個態樣圖解說明一修補管理器116及一匯流排控制器200之一實例性組態。作為一啟動程序之一部分,匯流排控制器200或一運算裝置之一啟動載入器204可向啟動ROM控制器114請求儲存於啟動ROM 110(例如,啟動碼118)內在一特定ROM位址處之ROM資料。可透過由與運算裝置102及安置於其中之電路系統有關之協定或通信標準定義之各種信號及通信來實施在圖2之實體之間交換之各種請求及回應。在接收到請求之後,啟動ROM控制器114可查詢啟動ROM 110以獲得位於ROM位址處之啟動碼(或其他啟動指令或啟動資料)。啟動ROM控制器114亦可將查詢可程式化記憶體112以獲得與所請求位址對應的儲存於其中之修補資料(例如,修補資料120)的一請求發送至修補管理器116。作為一實例,修補管理器116可基於ROM位址而查詢可程式化記憶體112以獲得記錄從而判定修補資料是否存在或針對給定ROM位址而組態。
基於針對所請求位址存在修補資料,啟動ROM控制器114可經組態或具有電路系統以將ROM資料或修補資料(在存在時)發送至匯流排控制器200。匯流排控制器200可在一匯流排202上發送啟動指令及其他資料以由積體電路、處理器及其他組件處理以基於啟動碼及修補資料而執行啟動操作。舉例而言,匯流排控制器200可將啟動碼118或修補資料120傳輸至啟動載入器204(或一啟動處理器),啟動載入器204繼而實施啟動運算裝置102之操作。在某些實施方案中,匯流排控制器200可包含一修補資料完整性電路206,修補資料完整性電路206包含暫存器、閘極及/或其他組件以確保啟動指令及資料之完整性。作為一實例,自啟動ROM控制器114接收之啟動指令及資料可係互補的或反轉的且然後由修補資料完 整性電路206之各種組件儲存。該等啟動指令(例如,啟動碼118或修補資料120)、資料、反轉或其補數在沿著匯流排202發送至下游處理器、積體電路及其他組件(例如,至啟動載入器204或一啟動處理器)以初始化運算裝置102之前然後可經檢查及驗證(例如,以阻止載入惡意程式碼或旁通道攻擊之嘗試)。
將匯流排控制器200、啟動ROM控制器114及修補管理器116繪示為與各別啟動ROM 110、可程式化記憶體112及匯流排202相關聯之相異電路系統。在某些態樣中,將匯流排控制器200、啟動ROM控制器114及修補管理器116實施為與啟動ROM、可程式化記憶體及/或耦合運算裝置102之各種組件以達成本文中所描述之各種通信及操作之一構造或互連件(例如,匯流排)相關聯之各別IP區塊。可將匯流排控制器200、啟動ROM控制器114及修補管理器116整合一統一實體或分段為各種數量之實體。匯流排控制器200、啟動ROM控制器114及修補管理器116之間的通信可係內部的或外部的且使用開源或專屬協定。舉例而言,啟動ROM控制器114及修補管理器116可經由一專有介面或經由連接匯流排控制器200及啟動ROM控制器114之一介面或匯流排之一部分通信。匯流排控制器200、啟動ROM控制器114及修補管理器116可位於電腦可讀媒體106內或外側。作為一實例,電腦可讀媒體106可包含用於將資料提供至處理器104或運算裝置102之其他組件之積體電路系統。作為另一實例,啟動ROM控制器114、匯流排控制器200及修補管理器116可不同於電腦可讀媒體106。作為一額外實例,啟動ROM控制器114、匯流排控制器200及修補管理器116可包含掃描位址或自電腦可讀媒體106接收資料之硬體中斷。
在態樣中,匯流排控制器200、一啟動載入器或處理器可基 於儲存於電腦可讀媒體106內之處理器可執行指令而根據一步驟或指令序列來操作。例如,該步驟序列可包含自電腦可讀媒體106讀取含有啟動指令及其他資料(例如,啟動碼118)之啟動ROM 110(例如,一位址空間或區域)之一位址映射。步驟組合亦可包含產生去往啟動ROM控制器114之對位址空間中之每一位址或特定位址之異動請求以供擷取。匯流排控制器200然後可執行或使用自啟動ROM 110或可程式化記憶體112接收的指令或資料以實施運算裝置102之啟動操作或其他功能性。
啟動ROM控制器114亦可根據步驟或指令之一組合來操作。步驟或指令之該組合可作為處理器可執行指令而儲存於電腦可讀媒體106內,在相關聯電路系統內定義,或以其他方式提供。例如,啟動ROM控制器114可自匯流排控制器200接收對儲存於啟動ROM 110之位址映射之一第一區域中的一第一位址處之第一資料的一請求。啟動ROM控制器114然後可基於可程式化記憶體112之一第一區域中的一相關記錄包含匹配第一位址之一位址的一判定而將相關記錄之修補資料120傳回至匯流排控制器200。在某些情形中,位址匹配之判定係基於第一位址及相關記錄之一相關位址。啟動ROM控制器114可直接或間接(例如,透過修補管理器116)查詢可程式化記憶體112。當可程式化記憶體112之第一區域中存在一匹配相關記錄時,啟動ROM控制器114將修補資料120傳回至匯流排控制器200。
在態樣中,相關記錄之修補資料120可包含去往啟動ROM之位址映射之一第二區域中的一第二位址之一跳躍指令。當修補資料120包含一跳躍指令時,匯流排控制器200處理或執行該跳躍指令且發送對指定跳躍位址處之修補資料之一請求。因此,啟動ROM控制器114然後可自 匯流排控制器200且基於修補資料120而接收對儲存於位址映射之一第二區域中的一第二位址處之第二資料之一請求。位址映射之第二區域中的位址可直接映射至可程式化記憶體112之一第二區域中的記錄。因此,儲存於啟動ROM位址映射之第二區域中的第二位址處之資料未儲存於啟動ROM 110中而是儲存於可程式化記憶體112中。啟動ROM控制器114然後可自修補管理器116接收第二資料(例如,回應於啟動ROM控制器114將對第二資料之請求轉發至修補管理器116)。在某些實施方案中,啟動ROM控制器114或匯流排控制器200可直接向可程式化記憶體112或修補管理器116請求第二資料。修補管理器116可經組態以基於位址映射之第二區域的開頭與第二位址之間的一位移而存取第二資料。啟動ROM控制器114然後可將可程式化記憶體112之直接映射之記錄之第二資料傳回至匯流排控制器200。
考量一位移判定之以下實例。如所闡述,可程式化記憶體112可包含儲存修補資料120之記錄。此等記錄包含一標頭記錄(例如,一類型H記錄)、與一ROM記錄全相關之記錄(例如,類型FA記錄)及可直接映射至一ROM記錄之其他記錄(例如,類型DM記錄)。因此,類型FA記錄可對應於可程式化記憶體112之第一區域中的相關記錄。類似地,類型DM記錄可對應於定位於可程式化記憶體112之第二區域中的直接映射之記錄。此外,類型H記錄可放置或定位為可程式化記憶體112中之「第一」記錄(例如,最低記錄)且包含闡述儲存於可程式化記憶體112中之相關記錄之數量(例如,可程式化記憶體112中之類型FA記錄之數目)之一值。如本文中所闡述,類型FA記錄可在類型H記錄之後開始且含有包含相關聯ROM記錄之位址或位址資訊以及針對彼ROM記錄之修補資料的一位 址欄位。類型DM記錄在最後一類型FA記錄之後開始且包含修補資料或指令,但不包含一位址、位址欄位或位址資訊。
在態樣中,類型FA記錄之資料可包含去往位址映射之第二區域(例如,一類型DM區域)中之一位址之一跳躍指令。舉例而言,跳躍指令可係去往含有修補資料120之類型DM位址之用以設定匯流排控制器200或啟動載入器之一程式計數器或使該程式計數器遞增之一指令。跳躍指令中之位址可包含識別要請求哪一位址之一索引或其他手段。舉例而言,假定跳躍指令係向十六進制表示為0x0001_000N之類型DM位址之一跳躍。基於來自類型FA記錄之資料之跳躍指令,匯流排控制器200向啟動ROM控制器114發佈對ROM位址映射之類型DM位址區域中的位址0x0001_000N之資料之一請求或讀取異動。作為回應,啟動ROM控制器114可向修補管理器116發佈一對應讀取異動。修補管理器116可將來自可程式化記憶體112之類型DM記錄之修補資料120傳回至ROM控制器,該類型DM記錄直接映射至啟動ROM位址映射之DM位址區域中的0x0001_000N位址。啟動ROM控制器114然後可將修補資料120傳回至匯流排控制器200。
ROM位址映射之類型DM區域的列/位址(例如,以0x0001_0000開始之彼等列/位址)與可程式化記憶體112中之類型DM記錄之間的位移(例如,映射)係隱式的且可基於類型H記錄、在可程式化記憶體112中之類型DM記錄下面之類型FA記錄之一數量及跳躍指令中之類型DM記錄之位址。舉例而言,基於類型H記錄及所請求類型DM記錄之源位址(例如,0x0001_000N),修補管理器116可判定應傳回之修補資料120。首先,針對此實例假定存在一個類型H記錄且該類型H記錄包含儲存於可 程式化記憶體112中之類型FA記錄之數量。其次,所請求類型DM位址闡述哪一類型DM記錄包含所請求修補資料。舉例而言,位址0x0001_000N指示請求第N個類型DM記錄之資料(例如,若N係「2」,則請求第三類型DM記錄之資料,因為「2」係在「0」及「1」之後的第三記錄)。在此實例中,假定類型H記錄指示存在十五個類型FA記錄(且N=2)。因此,所請求資料在將一個類型H記錄、十五個類型FA記錄及三個類型DM記錄算入的可程式化記憶體112中之第十九個記錄中。因此,使用一類型FA記錄跳躍指令,可藉由使用一類型FA記錄來修補ROM位址映射之一啟動區域(例如,一下部64KB區域)中之一位址處之ROM程式碼之任何一或若干行以跳躍至位址空間之類型DM區域中的一直接映射之類型DM記錄之一位址(例如,在0x0001_0000處或上面)。
修補管理器116亦可根據步驟或指令之一組合來操作。步驟或指令之該組合可儲存於電腦可讀媒體106內,在相關聯電路系統內定義,或以其他方式提供。例如,該步驟組合可包含自啟動ROM控制器114、匯流排控制器200或另一實施方式接收一位址。該位址可與可程式化記憶體112內之位址及資訊進行比較,如本文中所論述。若發現一匹配,則相關修補資料由修補管理器116提供至啟動ROM控制器114、匯流排控制器200或另一實施方式。
圖3根據本發明之一或多個實施方案圖解說明實例性通信路徑300。如所展示,啟動ROM控制器114可經由通信路徑300(例如,作為ROM與OTP IP區塊之間的一通信介面)與修補管理器116介接。如本文中所提及,通信路徑300可在與啟動ROM 110及可程式化記憶體112介接之組件內部或外部。在某些實施方案中,通信路徑300包含一專用介面。舉 例而言,類型指示器302可指示修補管理器116之啟動ROM控制器114所尋求之記錄類型。例如,一TRUE值(例如,一「1」)可指示尋求一相關記錄(例如,一類型FA記錄),而一FALSE值(例如,一「0」)可指示尋求一直接映射之記錄(例如,一類型DM記錄)。一位址匯流排304可傳遞與請求相關聯之指定。作為一實例,位址匯流排304可傳遞匯流排控制器200所請求之啟動ROM位址。位址匯流排304亦可提供所請求直接映射之記錄之一索引。作為一實例,使記憶體位址與用於將直接映射之記錄定位在可程式化記憶體(例如,可程式化記憶體112)內之索引相關聯之一查找表可儲存於啟動ROM控制器114或修補管理器116上。啟動ROM控制器114可將指示所提供資訊係完整的且準備用於消耗以滿足請求之一請求有效指示306發送至修補管理器116。作為一實例,修補管理器116可經由位址匯流排304接收來自類型指示器302之一TRUE指示及一啟動ROM位址。在完成傳輸之後,請求有效指示306稱為TRUE,從而指示修補管理器116應使用儲存於其中之暫存器中之資訊來滿足請求。
修補管理器116可將一回應有效指示308往回發送至啟動ROM控制器114以指示完成資訊讀取及傳回,從而允許啟動ROM控制器114作用於儲存於其中之緩衝器中之資訊。修補管理器116可經由讀取資料匯流排310將自可程式化記憶體112讀取之修補資料傳遞至啟動ROM控制器114。讀取資料匯流排310可經定大小以並行地或以組塊形式傳遞修補資料。作為一實例,讀取資料匯流排310可係一32位元匯流排。可自修補管理器116提供一錯誤指示312以指示修補資料在給定記憶體位置處不可用或與可程式化記憶體112相關聯之其他錯誤。
考量根據本發明之一或多個實施方案圖解說明可程式化記 憶體112之實例性記錄資料結構400之圖4。一類型H標頭記錄402可與一記憶體位址(例如,一標頭記錄位址)相關聯,該記憶體位址係一可程式化記憶體位址或者可程式化記憶體112之一第一或基礎行。該標頭記錄位址可在可程式化記憶體位址空間之開頭處(例如,在第一位址處)開始。標頭記錄402可包含可指示一或多個位元組之資訊(例如,八個位元)之標頭資料404,該資訊指示存在於可程式化記憶體中之若干個類型FA記錄。作為一實例,標頭記錄402可與一個位元組之標頭資料404相關聯,標頭資料404在可程式化記憶體位址空間之開頭處開始且指示具有八個位元[0:7]之資訊之一「Num_Type_FA」406或若干個類型FA記錄。
可程式化記憶體之一或多個類型FA記錄(全相關記錄)408可包含用於資料410(例如,修補資料、位元[47-16])、一相關位址412(例如,位元[15:2])及/或一記錄啟用位元414(例如,位元[0])之欄位,記錄啟用位元414可用於指示是否啟用FA類型記錄。因此,類型FA記錄408可藉由相關位址412與位址映射中之各別記憶體位址(例如,相關記錄記憶體位址)相關聯,相關位址412可係可根據類型FA記錄來程式化的。相關位址412可對應於ROM記憶體位址(例如,針對啟動碼118之啟動記錄之位址)或具有與ROM記憶體位址相等、等效或類似之值,從而指示針對與啟動碼118相關聯之對應ROM記憶體位址存在資料410(例如,修補資料120之至少一部分)。照此,啟動ROM控制器114可自匯流排控制器200接收一所請求記憶體位址。啟動ROM控制器114可將具有用於與相關位址412進行比較之記憶體位址之請求發送至修補管理器116。修補管理器116可以各種次序或順序地查詢相關位址412,從而比較經由位址匯流排304接收之記憶體位址與儲存於可程式化記憶體112內之相關位址412。照此,可 基於相關位址412而依據可程式化記憶體112之類型FA記錄408辨識並讀取資料410,相關位址412與經由讀取資料匯流排310提供並發送至啟動ROM控制器114之記憶體位址對應、相等、等效或類似。
一或多個類型DM記錄(直接映射之記錄)416可包含用於資料418及一啟用位元420之一欄位,啟用位元420可用於指示是否啟用DM類型記錄。一般而言,可程式化記憶體之類型DM記錄直接映射至或相關聯於啟動ROM之位址映射之一位移或第二區域中的各別記憶體位址。類型DM記錄儲存於可程式化記憶體中在標頭記錄及類型FA記錄後面或上面,使得可基於自類型FA記錄中之最後一個或可程式化記憶體之類型DM區域的一開始(或開頭)之一索引或計數而實施與類型DM記錄之一隱式映射。在一項實例中,直接映射之記錄416可填充可程式化記憶體112之位址之其餘部分。修補資料(例如,修補資料120之至少一部分)可儲存於用於直接映射之記錄416之資料418之欄位內,可經由一請求將資料418擷取至一各別類型DM記錄所映射至之位址映射之位移區域中的一位址。圖4中所繪示之名稱與相關聯於特定記錄類型之實例性欄位有關。實施及使用各種類型之記錄之方式有變化且在本發明通篇中進行闡述。
圖5根據本發明之一或多個實施方案在500處圖解說明一實例性啟動ROM位址映射502。針對實例性啟動ROM位址映射502之記憶體位址所儲存之資料可佔據啟動ROM 110及/或可程式化記憶體112之記憶體位置。如圖5中所展示,實例性啟動ROM位址映射502包含具有記憶體位址之一ROM區域504,該等記憶體位址係可以0x0000_0000開始且可一直遞增至0x0000_FFFF之十六進制表示位址。ROM區域504之位址可映射至儲存啟動碼118的啟動ROM 110之對應行。實例性啟動ROM位址映射502 亦包含具有直接映射至類型DM記錄之位址之一類型DM區域506,該等位址以位址0x0001_0000開始且自彼處向上遞增(例如,一直至0x0001_FFFF)。換言之,類型DM區域506之位址可直接映射至儲存修補資料120之記錄的可程式化記憶體之行或列。
在某些實施方案中,啟動ROM位址映射可係可藉由啟動ROM控制器114、啟動ROM 110、修補管理器116或可程式化記憶體112中之一或多者電子存取的。因此,匯流排控制器200(或另一組件)可將對啟動碼118之一ROM記錄之請求發佈至啟動ROM 110(例如,經由啟動ROM控制器114),該ROM記錄包含儲存於0x0000_0000與0x0000_FFFF之間的一ROM位址處之資料。啟動ROM控制器114可經由一介面(例如,一專用介面)將一對應請求發佈至修補管理器116。在某些實施方案中,匯流排控制器200可同時向啟動ROM控制器114及修補管理器116發送請求。
如參考圖1所闡述,可程式化記憶體112包含儲存修補資料120之記錄。可程式化記憶體112之記錄包含至少一個標頭記錄508(例如,類型H標頭記錄402)、相關記錄510及直接映射之記錄512。如圖5中所展示,可程式化記憶體112包含一個標頭記錄508、n個相關記錄510及N個直接映射之記錄512。相關記錄510係與一ROM記錄全相關之記錄(例如,類型FA記錄408)。直接映射之記錄512係可直接映射至一ROM記錄之記錄(例如,類型DM記錄416)。標頭記錄508包含相關記錄510之數目。相關記錄510在標頭記錄508之後開始且含有包含相關聯ROM記錄之位址資訊以及用於彼ROM記錄之修補資料120的一欄位。直接映射之記錄512在最後一類型FA記錄之後開始且包含修補資料或指令(例如,一跳躍指令),但不包含位址欄位或位址資訊。
回應於匯流排控制器200之請求,修補管理器116對照所請求ROM位址檢查相關記錄510以判定是否任何相關記錄510皆包含一匹配位址。若不存在具有一匹配位址之相關記錄510,則修補管理器116將不存在匹配位址之一指示傳回至啟動ROM控制器114,且啟動ROM控制器114將所請求ROM位址之資料傳回至匯流排控制器200。若存在具有一匹配位址之一相關記錄510,則修補管理器116將相關記錄510之資料傳回至啟動ROM控制器114。類型FA記錄之資料可包含去往位址映射之類型DM區域506中之一位址之一跳躍指令。該跳躍指令可係(舉例而言)去往含有修補資料120之一或若干直接映射之記錄512之用以設定匯流排控制器200之一程式計數器或使該程式計數器遞增的一指令(或向直接映射之記錄512請求資料之另一類型的指令)。因此,替代來自所請求ROM記錄之啟動碼118資料,啟動ROM控制器114傳回來自具有匹配相關聯位址之相關記錄510之修補資料(例如,去往一直接映射之記錄512之跳躍指令)。
在某些實施方案中,在將可程式化記憶體112程式化期間,修補資料120包括其中將插入多於一個順序列之修補資料120(例如,除了或代替啟動碼118)之一或多個區段。在此情形中,一各別相關記錄510可填充有一第一ROM位址(例如,插入或添加點)以及去往類型DM區域506中映射至序列之第一直接映射之記錄512之一位址的一跳躍指令。
基於該跳躍指令,匯流排控制器200可將對作為修補資料120傳回的類型DM區域506中之位址之資料之一請求發佈至啟動ROM控制器114。修補管理器116然後可將來自直接映射之記錄512之修補資料120傳回至啟動ROM控制器114。ROM控制器將修補資料120傳回至匯流排控制器。應注意,經修補之ROM位址與類型DM區域506中之直接映射 之記錄512之位址之間不存在相關關係。替代地,ROM位址映射502之類型DM區域506之列/位址與可程式化記憶體112中之直接映射之記錄512之間的映射基於標頭記錄508及在可程式化記憶體112中之直接映射之記錄512下面之相關記錄510之數目而係隱式的。因此,任何ROM位址可使用一類型FA記錄來修補以跳躍至一所要類型DM區域位址以獲得來自可程式化記憶體112中之一直接映射之記錄之修補資料120。
舉例而言,基於標頭記錄508及ROM位址空間中之異動之源位址(例如,跳躍指令),修補管理器116可判定應傳回之修補資料120。首先,如圖1中所展示,存在一個標頭記錄508且標頭記錄508包含經展示為圖5中之「#_ARec」的相關記錄510之數目。其次,所請求位址(例如,跳躍指令)闡述哪一直接映射之記錄512包含所請求修補資料。在某些情形中,所請求位址可指示至少兩個順序直接映射之記錄512中之第一者。舉例而言,位址0x0001_0002指示請求第三直接映射之記錄512之資料(「02」係在「00」及「01」之後的第三記錄)。對於此實例,假定標頭記錄508指示存在十五個相關記錄510(例如,#_ARec=15)。因此,所請求資料在將一個標頭記錄508、十五個相關記錄510及三個直接映射之記錄512算入的可程式化記憶體112之第十九個記錄中。因此,使用來自一相關記錄510之一跳躍指令,可藉由使用跳躍指令來修補ROM位址映射之一啟動區域(例如,一下部64KB區域)中之一位址處之啟動碼118之任何一或若干行以跳躍至位址映射502空間之類型DM區域506中之一位址(例如,在0x0001_0000處或上面),該位址直接映射至可程式化記憶體112中之一記錄。
在匯流排控制器200接收來自直接映射之記錄512之修補資 料120之後,匯流排控制器200繼續向類型DM區域506中之接下來之遞增位址請求資料,直至所傳回修補資料120包含指導匯流排控制器200請求位址映射502之ROM區域504之一位址的一跳躍指令或位址。此一實施方案減少所需相關記錄510之數目且因此節省空間並減少處理及應用修補資料120所需要之時間及運算資源。
實例性方法
圖6根據本發明之一或多個實施方案圖解說明用於實施具有相關及直接映射之修補資料之記憶體修補之一實例性方法600。方法600經展示為規定所執行操作及步驟但未必限制於針對由各別區塊執行操作所展示之次序或組合的一組方塊。此外,可重複、組合、辨識、省略或聯繫操作中之一或多者中之任一者以提供各種各樣額外及/或替代方法。在以下論述之部分中,可參考先前圖之實例,僅出於實例之目的而參考該等圖。用於記憶體修補之直接映射之修補資料之技術不限於由在一個裝置上操作之一個實體或多個實體執行。
在方塊602處,自一匯流排控制器接收對儲存於一啟動ROM之一位址映射之一第一區域中的一第一位址處之第一資料之一請求。舉例而言,啟動ROM控制器114自匯流排控制器200或另一實體(例如,經由一資料匯流排自一啟動載入器)接收對儲存於啟動ROM 110之位址映射之第一區域中的第一位址(例如,位址映射502之ROM區域504中針對啟動碼118中之一ROM記錄之一位址)處之第一資料之請求。舉例而言,第一資料可係啟動指令、啟動碼、啟動資料、硬編碼ROM內容或其一組合。匯流排控制器200可具有啟動ROM 110內可用於啟動程序之一預定義記憶體位址清單。舉例而言,匯流排控制器200可將對啟動ROM 110 之呈一升序(例如,0x0000_0000、0x0000_0001、0x0000_0002、0x0000_00003)或另一次序之記憶體位址之一請求發送至啟動ROM控制器114。在某些實施方案中,位址亦可或替代地係所請求可程式化記憶體位址之一索引(例如,1、2、3等等)。索引I可指示對第I個經索引記憶體位址之修補資料120之一請求(例如,其中I=2,該請求可係針對可程式化記憶體112中之第二直接映射之記錄)。為了實施位址或索引之遞增,啟動ROM控制器114可為自匯流排控制器200接收之一請求之一當前位址、最後一所存取位址或最後一位址維持一或多個各別程式計數器。
在方塊604處,基於第一位址而做出可程式化記憶體中之一相關記錄包含與所請求第一資料之第一位址匹配之一位址之一判定。舉例而言,啟動ROM控制器114可判定可程式化記憶體112中之一相關記錄408(或510)包含與匯流排控制器200所請求之第一位址匹配之一位址。為了做出判定,啟動ROM控制器114可直接或間接(例如,透過修補管理器116)查詢可程式化記憶體112。舉例而言,該查詢可包括讀取、感測或存取相關記錄之一相關位址412以判定相關位址412(或相關記錄中之其他資訊)是否匹配所請求位址。
在方塊606處,將相關記錄之修補資料傳回至匯流排控制器。相關記錄之修補資料可包含去往啟動ROM之位址映射之一第二區域中的一第二位址之一跳躍指令。舉例而言,啟動ROM控制器114可將修補資料120(例如,所請求第一資料,諸如相關記錄408或510之資料410)傳回至匯流排控制器200。相關記錄408之修補資料120可包含去往啟動ROM 110之位址映射之第二區域中的第二位址之一跳躍指令。舉例而言,跳躍指令可係去往位址映射502之類型DM區域506中之一位址。在其他實施方 案中,替代或除了跳躍指令,相關記錄之修補資料120可包含對於替換或修改儲存於啟動ROM 110中之第一位址處之啟動碼有用的指令或資料。
在方塊608處,基於相關記錄之修補資料,自匯流排控制器接收對儲存於位址映射之第二區域中的第二位址處之第二資料之一請求。換言之,相關記錄之修補資料對於將啟動程序重新引導至位址映射之類型DM區域以存取直接映射之修補資料係有用的。如本文中所闡述,位址映射之第二或位移區域中的位址可直接映射至可程式化記憶體之一第二區域中的記錄。舉例而言,啟動ROM控制器114自匯流排控制器200且基於修補資料120(例如,跳躍指令)而接收對儲存於位址映射502之類型DM區域506中之一位址處之第二資料之請求。第二資料可儲存於一直接映射之記錄512(或416)中在類型DM區域506之一位址處(例如,第二資料可係直接映射之記錄512或416之資料418)。如所闡述,儲存於啟動ROM位址映射之第二區域中的第二位址處之資料(例如,直接映射之記錄416或512)未儲存於啟動ROM 110中。確切而言,資料實體上位於可係(舉例而言)一單次可程式化(OTP)記憶體或一多次可程式化(MTP)記憶體之可程式化記憶體112中。
在方塊610處,基於位址映射之第二區域的起始位址與第二位址之間的一位移而存取直接映射之記錄之第二資料(例如,修補資料)。舉例而言,啟動ROM控制器114可直接或間接(例如,透過修補管理器116)存取直接映射之記錄之第二資料(例如,儲存於第二位址處之第二資料)。可基於位址映射502之第二區域(例如,類型DM區域506)之起始位址與第二位址之間的一位移而實施此存取。
在態樣中,位移基於可程式化記憶體112之一標頭記錄、儲 存於可程式化記憶體中之相關記錄之一數量及/或啟動ROM 110之位址映射502之第二區域(例如,類型DM區域506)中之第二位址。舉例而言,類型H記錄可係可程式化記憶體112中之「第一」記錄(例如,最低記錄)且包含闡述儲存於可程式化記憶體112中之相關記錄之數量(例如,可程式化記憶體112中之類型FA記錄之數目)之一值。另外,第二位址(例如,源位址)可包含一值,該值指示一第一直接映射之記錄與在第二資料儲存於OTP中之情況下之直接映射之記錄之間的直接映射之記錄之一數量或索引。因此,如所闡述,藉助一個類型H記錄實施OTP,類型H記錄指示儲存於可程式化記憶體之第一區域中的類型FA記錄之數目。另外,所請求類型DM位址指示哪一類型DM記錄項目包含所請求修補資料。舉例而言,0x0001_0002之一源位址指示請求第三類型DM記錄之資料(定位為在「00」及「01」類型DM記錄之後第三個之一「02」記錄)。假定類型H記錄指示標頭記錄與類型DM記錄之一開頭之間存在儲存於可程式化記憶體中之十五個類型FA記錄,修補管理器116基於一個類型H記錄、十五個類型FA記錄及三個類型DM記錄之總數而存取可程式化記憶體112之第十九行或列(例如,自0x0000算起之0x0018)。
在方塊612處,將直接映射之記錄之第二資料(例如,修補資料)傳回至匯流排控制器。舉例而言,啟動ROM控制器114可將直接映射之記錄之第二資料(例如,資料418)傳回至匯流排控制器200。在某些實施方案中,可將修補資料120發送至一啟動載入器(例如,經由資料匯流排)。在匯流排控制器200自直接映射之記錄512接收到修補資料120之後,匯流排控制器200可繼續向類型DM區域506中之接下來之遞增位址請求資料,直至所傳回修補資料120包含指導匯流排控制器200請求位址映 射502之ROM區域504之一位址之一跳躍指令或位址。換言之,用於提供修補程式碼之多個行之一類型DM記錄序列中之最後一類型DM記錄組態有一跳躍指令及/或位址以將啟動程序之執行或前進傳回至位址映射之第一或啟動ROM區域。
所闡述方法一般透過使用隱式定址之類型DM記錄達成具有較少類型FA記錄之修補操作,該等隱式定址之類型DM記錄亦佔據與類型FA記錄相比較相對較少之記憶體空間。進一步地,由於類型DM記錄中不存在待讀取或評估之位址欄位、相關位址或位址資訊,因此可減少處理時間及修補啟動碼所消耗之資源。
作為其他實例,考量可經實施以在不同情景中提供具有相關及直接映射之修補資料之記憶體修補之以下所闡述方法及設備。在某些實施方案中,修補程序係將額外程式碼插入至啟動碼118中。如所述,此係一常見修補模式,且修補資料之多個行可插入於順序地定址之啟動碼之兩個行之間。為了執行插入,一般程序係使用一類型FA記錄(例如,一相關記錄408或510)自恰好在預期插入點之前的啟動碼位址跳躍至位址映射502之類型DM區域506中之一位址(例如,一直接映射之記錄416或512)。匯流排控制器200然後向以彼位址開始之直接映射之記錄中之一或多者請求資料(例如,資料418)。插入程式碼中之最後一指令(例如,最後一個直接映射之記錄)包含在插入點之後的下一啟動ROM位址處跳回至啟動碼118之一指令。
在一位址映射之內容脈絡中,考慮以下實例,其中修補資料包含待插入於啟動ROM位址行14與15之間(例如,ROM位址映射502之0x0000_0014與0x0000_0015之間)的一程式碼序列。在此實例中,匯流排 控制器200將對儲存於啟動ROM 110中在啟動ROM位址0x0000_0014處之資料之一請求(例如,將一讀取異動發佈)發佈至啟動ROM控制器114。啟動ROM控制器114將一對應異動發佈至修補管理器116(啟動ROM控制器114亦可存取所請求位址處之資料以可能提取與位址0x0000_0014對應的啟動記錄/資料)。修補管理器116搜索類型FA記錄以判定是否存在與位址0x0000_0014匹配之一類型FA記錄(例如,匹配位址0x0000_0014之一相關位址412)。若存在一匹配,則修補管理器116將類型FA記錄之資料(例如,資料410)傳回至啟動ROM控制器114。在此實例中,假定資料410包含位址0x0000_0014之啟動碼及進入位址映射502之類型DM區域506中在一第三行或位址項目(例如,0x0001_0002)處之一跳躍指令。啟動ROM控制器114然後回應於對位址0x0000_0014之資料之請求而將類型FA記錄資料傳回至匯流排控制器200。因此,替代來自啟動ROM 110中之位址0x0000_0014之啟動碼118,啟動ROM控制器114傳回來自與所請求位址0x0000_0014匹配之類型FA記錄之修補資料120,修補資料120在此實例中係去往位址0x0001_0002之一跳躍指令,如上文所闡述。
當匯流排控制器200或一啟動載入器接收到類型FA記錄之程式碼時,執行用於位址0x0000_0014之修補資料120,且跳躍指令致使匯流排控制器200之一程式計數器跳躍或指向位址映射中之類型DM區域506之位址0x0001_0002(例如,在啟動ROM位址映射之位移區域中)。因此,匯流排控制器200發佈對位址0x0001_0002處之修補資料之一請求(且啟動ROM控制器114將一對應請求發佈至修補管理器116)。修補管理器116將映射至0x0001_0002位址之直接映射之記錄512之資料418之資料傳回至啟動ROM控制器114。如上文所闡述,所映射位址0x0001_0002對應 於OTP記憶體中在標頭記錄402及所有相關記錄408後面之一第三位址(00,01,02)或索引。舉例而言,若存在11個相關記錄408,則02位址映射或索引至可程式化記憶體112中之第十五個位址(一個標頭記錄、十一個相關記錄及三個直接映射之記錄)。啟動ROM控制器114然後將直接映射至位址映射中之0x0001_0002位址之資料418自可程式化記憶體傳回至匯流排控制器200。匯流排控制器200執行資料418(直接映射之修補資料)且繼續向接下來之位址(例如,0x0001_0003、0x0001_0004等等)請求資料,直至自可程式化記憶體擷取之一直接映射之記錄512包含跳回至位址映射502之ROM區域504中之一位址之一指令。舉例而言,假定位址0x0001_0005包含回到ROM區域504之位址0x0000_0015以在完成修補資料之插入之後傳回之一跳躍指令。
另一類型之修補程序係程式碼之一省略。為了執行目標啟動碼之省略或跳過,一類型FA記錄(例如,一相關記錄408或510)用於自剛好在預期省略點之前的啟動碼位址跳躍至在所省略程式碼之最後一行之後的位址。舉例而言,考量其中修補程式碼包含意欲省略啟動ROM行15及16(例如,ROM位址映射502之0x0000_0014及0x0000_0015)之一程式碼序列的一實例。在此實例中,匯流排控制器200將對儲存於啟動ROM 110中在啟動ROM位址0x0000_0014處之資料之一請求發佈(例如,將一讀取異動發佈)至啟動ROM控制器114。啟動ROM控制器114將一對應異動發佈至修補管理器116(啟動ROM控制器114亦可存取所請求位址處之資料以可能提取對應於位址0x0000_0014之啟動記錄/資料)。修補管理器116搜索類型FA記錄以判定是否存在與位址0x0000_0014匹配之一類型FA記錄(例如,匹配位址0x0000_0014之一相關位址412)。在此處,修補管 理器116傳回類型FA記錄之資料(例如,資料410),該資料僅包含去往ROM區域504之位址0x0000_0016之省略或跳過行14及15處之啟動碼之一跳躍指令。因此,當匯流排控制器200請求針對ROM位址0x0000_0014之資料時,修補程式碼跳躍指令跳過行15及16(例如,經省略或「經刪除」行),且匯流排控制器繼續請求位址0x0000_0016處之啟動碼之行17。
此外,此處所闡述之態樣亦可用於具有類型DM記錄之啟動碼118之一程式碼修改,其中執行交替修補程式碼而非意欲進行修補之啟動碼。舉例而言,修補程式碼(例如,修補資料120)可用於修改ROM位址映射502之位址0x0000_0003、0x0000_0004、0x0000_0005處之啟動ROM行2、3及4。一般程序類似於如上文所闡述之一程式碼插入,除了返回跳躍指向在經修改啟動碼之最後一行之後的一位址。在此實例中,假定用於程式碼修改之修補資料120儲存於可程式化記憶體之直接映射之記錄512中,直接映射之記錄512映射至位址映射502之類型DM區域506之行8、9及10在位址0x0001_0007、0x0001_0008及0x0001_0009處。因此,為了實施程式碼修改,一相關記錄510用於自啟動ROM位址0x0000_0003跳躍至位址映射之位移區域中在0x0001_0007處之一位址以自可程式化記憶體之對應直接映射之記錄獲得修補資料120。將來自直接映射至位址0x0001_0007、0x0001_0008及0x0001_0009之類型DM記錄之修補資料傳回至匯流排控制器200以待執行。映射至位址0x0001_0009之類型DM記錄之資料418亦包含去往ROM區域504之行6(在用修補資料修改之啟動碼之後的第一行)之位址0x0000_0007之一跳躍指令。以此方式,藉由與位址映射之DM區域中的位址0x0001_0007、0x0001_0008及0x0001_0009對應的直接映射之記錄替換(例如,「修改」)啟動ROM位址 0x0000_0003、0x0000_0004、0x0000_0005之啟動碼118。
在本文中所闡述之各種態樣中,修補可包括插入、刪除、修改或以其他方式改變儲存於啟動ROM 110內及/或自啟動ROM 110擷取的指令及資料之各種方法。儲存於啟動ROM 110內的指令及資料之實際修改可係不必要的,因為可藉由下游控制器(例如,匯流排控制器200)在不改變基礎電路系統之情況下取代或省略指令及資料。以此一方式,用於啟動運算裝置102及其中之電路系統的指令及資料可在無修改之情況下儲存於啟動ROM 110中且藉助儲存於可程式化記憶體112內的指令及資料來安全地修補。一啟動常式可係基於所提供資料而初始化一作業系統、電路系統或運算裝置102之其他功能的一步驟序列。
電腦可讀媒體106可係連續的或非連續的,且啟動ROM 110、可程式化記憶體112及在其中界定之其他記憶體結構可係連續的或非連續的。在一實例中,電腦可讀媒體106可係一組連續位址空間,其中啟動ROM 110由一順序位址空間界定且一順序位址相依於可程式化記憶體112。術語第一、第二及其他數值形容詞意欲用於區別及現行目的而非順序目的,且本文中所敘述之形容詞不意欲限制相依於其之名詞之廣度。
儘管已經以特徵及/或方法特有之語言闡述用於具有相關及直接映射之修補資料之記憶體修補之技術以及達成具有相關及直接映射之修補資料之記憶體修補之設備的實施方案,但應理解,隨附申請專利範圍之標的物未必限制於所揭示之特定特徵或方法。確切而言,將特定特徵及方法揭示為使直接映射之修補資料能夠用於記憶體修補之實例性實施方案。
在下文中,闡述數個實例:
實例1. 一種用於修補一啟動唯讀記憶體(ROM)之方法,該方法包括:自一匯流排控制器接收對儲存於該啟動ROM之一位址映射之一第一區域中的一第一位址處之第一資料之一請求;基於該第一位址而判定一可程式化記憶體之一第一區域中的一相關記錄包含匹配該第一位址之一位址;將該相關記錄之修補資料傳回至該匯流排控制器,該修補資料包含去往該啟動ROM之該位址映射之一第二區域中的一第二位址之一跳躍指令;自該匯流排控制器且基於該修補資料而接收對儲存於該位址映射之該第二區域中的該第二位址處之第二資料之一請求,該位址映射之該第二區域中的位址直接映射至該可程式化記憶體之一第二區域中的記錄;基於該位址映射之該第二區域的開頭與該第二位址之間的一位移而存取該可程式化記憶體之該第二區域中的一直接映射之記錄之該第二資料;及將來自該可程式化記憶體之該直接映射之記錄之該第二資料傳回至該匯流排控制器。
實例2. 如實例1之方法,其中該位移基於:該可程式化記憶體之一標頭記錄;儲存於該可程式化記憶體之該第一區域中的相關記錄之一數量;及該啟動ROM之該位址映射之該第二區域中的該第二位址。
實例3. 如實例2之方法,其中該可程式化記憶體之該標頭記錄包含闡述儲存於該可程式化記憶體中之相關記錄之該數量之一值。
實例4. 如前述實例中任一實例之方法,其中該第二位址指示與該可程式化記憶體之該第二區域中的一第一直接映射之記錄與儲存該第二資料之該可程式化記憶體中之該直接映射之記錄之間的直接映射之記錄之一數量對應的一值。
實例5. 如前述實例中任一實例之方法,其進一步包括存取 儲存於該啟動ROM之該位址映射之該第二區域中的一第三位址處之第三資料,該第三資料包含另一跳躍指令,該另一跳躍指令包含該位址映射之該第一區域中的一第四位址。
實例6. 如前述實例中任一實例之方法,其中該可程式化記憶體之該第二區域的該等直接映射之記錄:不包含一位址欄位;或不包含與該啟動ROM之該位址映射之該第二區域的位址有關之資訊。
實例7. 如前述實例中任一實例之方法,其中該啟動ROM不包含儲存於該啟動ROM位址映射之該第二區域中的該第二位址處之資料。
實例8. 如前述實例中任一實例之方法,其中:由一啟動載入器將對該第一資料之該請求發佈至該匯流排控制器,經由一資料匯流排接收該請求,該請求係對啟動碼之一請求,且該方法進一步包括:作為給對該第一資料之該請求之一回應而經由該資料匯流排將該第二資料作為修補資料發送至該啟動載入器。
實例9. 如前述實例中任一實例之方法,其中該可程式化記憶體實施為以下各項中之一者:一單次可程式化OTP記憶體;或一多次可程式化MTP記憶體。
實例10. 如前述實例中任一實例之方法,其中:對所儲存第一資料之該請求係對儲存於該啟動ROM中之啟動碼之一請求;且該第二資料包括修補資料,該修補資料包含以下各項中之一者:用以在與該位址映射中在該第一位址之後的一或多個其他位址對應的儲存於該啟動ROM中之啟動碼之前執行的指令;或用以替代與該位址映射中在該第一位址之後之一或多個其他位址對應的儲存於該啟動ROM中之啟動碼而執 行的指令。
實例11. 一種包括電腦可執行指令之電腦可讀儲存媒體,該等電腦可執行指令在由一電腦執行時將致使該電腦實施如前述實例中任一實例之一方法。
實例12.一種設備,其包括:一啟動唯讀記憶體(ROM);一可程式化記憶體;一修補管理器;及一ROM控制器,其經組態以:自一匯流排控制器接收對儲存於該啟動ROM之一位址映射之一第一區域中的一第一位址處之第一資料之一請求;基於該修補管理器做出的一可程式化記憶體之一第一區域中的一相關記錄包含匹配該第一位址之一位址之一判定而將該相關記錄之修補資料傳回至該匯流排控制器,該修補資料包含去往該啟動ROM之該位址映射之一第二區域中的一第二位址之一跳躍指令;自該匯流排控制器且基於該修補資料而接收對儲存於該位址映射之該第二區域中的該第二位址處之第二資料之一請求,該位址映射之該第二區域中的位址直接映射至該可程式化記憶體之一第二區域中的記錄;自該修補管理器接收來自該可程式化記憶體之該第二區域中的一直接映射之記錄之該第二資料,該修補管理器經組態以基於該位址映射之該第二區域的開頭與該第二位址之間的一位移而存取該可程式化記憶體之該第二區域中的該等直接映射之記錄;及將該可程式化記憶體之該第二區域中的該直接映射之記錄之該第二資料傳回至該匯流排控制器。
實例13. 如實例12之設備,其中該可程式化記憶體之該等直接映射之記錄:不包含一位址欄位;或不包含與該啟動ROM之該位址映射之該第二區域的位址有關之資訊。
實例14. 如前述實例中任一實例之設備,其中:該啟動 ROM之該位址映射之該第二區域中的位址自該啟動ROM之該位址映射之該第一位址區域中的位址位移;且該啟動ROM不包含映射至該啟動ROM位址映射之該第二區域中的該等位址的啟動碼之列或行。
實例15. 如前述實例中任一實例之設備,其中該ROM控制器進一步經組態以:經由一資料匯流排自一啟動載入器接收對儲存於該啟動ROM之該位址映射之該第一區域中的該第一位址處之該第一資料之該請求作為對啟動碼之一請求;且作為給對該第一資料之該請求之一回應而經由該資料匯流排將該修補資料傳回至該啟動載入器。
實例16. 如前述實例中任一實例之設備,其中該可程式化記憶體實施為以下各項中之一者:一單次可程式化OTP記憶體;或一多次可程式化MTP記憶體。
100:環境
102:運算裝置
102-1:智慧型電話
102-2:平板電腦
102-3:膝上型電腦
102-4:桌上型電腦
102-5:運算手錶
102-6:運算眼鏡
102-7:遊戲系統
102-8:家庭自動化與控制系統
102-9:智慧型電器
104:處理器/電腦處理器
106:電腦可讀媒體
108:隨機存取記憶體
110:啟動唯讀記憶體
112:可程式化記憶體
114:啟動唯讀記憶體控制器
116:修補資料管理器/修補管理器
118:啟動碼
120:修補資料
122:應用程式
124:作業系統
126:系統設定

Claims (16)

  1. 一種用於修補一啟動唯讀記憶體(ROM)之方法,該方法包括:自一匯流排控制器接收對儲存於該啟動ROM之一位址映射之一第一區域中的一第一位址處之第一資料之一請求;基於該第一位址而判定一可程式化記憶體之一第一區域中的一相關記錄包含匹配該第一位址之一位址;將該相關記錄之修補資料傳回至該匯流排控制器,該修補資料包含去往該啟動ROM之該位址映射之一第二區域中的一第二位址之一跳躍指令;自該匯流排控制器且基於該修補資料而接收對儲存於該位址映射之該第二區域中的該第二位址處之第二資料之一請求,該位址映射之該第二區域中的位址直接映射至該可程式化記憶體之一第二區域中的記錄;基於該位址映射之該第二區域的開頭與該第二位址之間的一位移而存取該可程式化記憶體之該第二區域中的一直接映射之記錄之該第二資料;及將來自該可程式化記憶體之該直接映射之記錄之該第二資料傳回至該匯流排控制器。
  2. 如請求項1之方法,其中該位移基於:該可程式化記憶體之一標頭記錄;儲存於該可程式化記憶體之該第一區域中的相關記錄之一數量;及該啟動ROM之該位址映射之該第二區域中的該第二位址。
  3. 如請求項2之方法,其中該可程式化記憶體之該標頭記錄包含闡述儲存於該可程式化記憶體中之相關記錄之該數量之一值。
  4. 如請求項1至3中任一項之方法,其中該第二位址指示與該可程式化記憶體之該第二區域中的一第一直接映射之記錄與儲存該第二資料之該可程式化記憶體中之該直接映射之記錄之間的直接映射之記錄之一數量對應的一值。
  5. 如請求項1至3中任一項之方法,其進一步包括存取儲存於該啟動ROM之該位址映射之該第二區域中的一第三位址處之第三資料,該第三資料包含另一跳躍指令,該另一跳躍指令包含該位址映射之該第一區域中的一第四位址。
  6. 如請求項1至3中任一項之方法,其中該可程式化記憶體之該第二區域的該等直接映射之記錄:不包含一位址欄位;或不包含與該啟動ROM之該位址映射之該第二區域的位址有關之資訊。
  7. 如請求項1至3中任一項之方法,其中該啟動ROM不包含儲存於該啟動ROM位址映射之該第二區域中的該第二位址處之資料。
  8. 如請求項1至3中任一項之方法,其中:由一啟動載入器將對該第一資料之該請求發佈至該匯流排控制器,經由一資料匯流排接收該請求,該請求係對啟動碼之一請求,且該方法進一步包括:作為給對該第一資料之該請求之一回應而經由該資料匯流排將該第二資料作為修補資料發送至該啟動載入器。
  9. 如請求項1至3中任一項之方法,其中該可程式化記憶體實施為以下各項中之一者:一單次可程式化OTP記憶體;或一多次可程式化MTP記憶體。
  10. 如請求項1至3中任一項之方法,其中:對所儲存該第一資料之該請求係對儲存於該啟動ROM中之啟動碼之一請求;且該第二資料包括修補資料,該修補資料包含以下各項中之一者:用以在與該位址映射中在該第一位址之後的一或多個其他位址對應的儲存於該啟動ROM中之啟動碼之前執行的指令;或用以替代與該位址映射中在該第一位址之後之一或多個其他位址對應的儲存於該啟動ROM中之啟動碼而執行的指令。
  11. 一種包括電腦可執行指令之電腦可讀儲存媒體,該等電腦可執行指令在由一電腦執行時將致使該電腦實施一種如請求項1至10之方法。
  12. 一種電子設備,其包括:一啟動唯讀記憶體(ROM);一可程式化記憶體;一修補管理器;及一ROM控制器,其經組態以:自一匯流排控制器接收對儲存於該啟動ROM之一位址映射之一第一區域中的一第一位址處之第一資料之一請求;基於該修補管理器做出的該可程式化記憶體之一第一區域中的一相關記錄包含匹配該第一位址之一位址之一判定而將該相關記錄之修補資料傳回至該匯流排控制器,該修補資料包含去往該啟動ROM之該位址映射之一第二區域中的一第二位址之一跳躍指令;自該匯流排控制器且基於該修補資料而接收對儲存於該位址映射之該第二區域中的該第二位址處之第二資料之一請求,該位址映射之該第二區域中的位址直接映射至該可程式化記憶體之一第二區域中的記錄;自該修補管理器接收來自該可程式化記憶體之該第二區域中的一直接映射之記錄之該第二資料,該修補管理器經組態以基於該位址映射之該第二區域的開頭與該第二位址之間的一位移而存取該可程式化記憶體之該第二區域中的該等直接映射之記錄;及將該可程式化記憶體之該第二區域中的該直接映射之記錄之該第二資料傳回至該匯流排控制器。
  13. 如請求項12之電子設備,其中該可程式化記憶體之該等直接映射之記錄:不包含一位址欄位;或不包含與該啟動ROM之該位址映射之該第二區域的位址有關之資訊。
  14. 如請求項12或請求項13之電子設備,其中:該啟動ROM之該位址映射之該第二區域中的位址自該啟動ROM之該位址映射之該第一位址區域中的位址位移;且該啟動ROM不包含映射至該啟動ROM位址映射之該第二區域中的該等位址的啟動碼之列或行。
  15. 如請求項12或請求項13之電子設備,其中該ROM控制器進一步經組態以:經由一資料匯流排自一啟動載入器接收對儲存於該啟動ROM之該位址映射之該第一區域中的該第一位址處之該第一資料之該請求作為對啟動碼之一請求;且作為給對該第一資料之該請求之一回應而經由該資料匯流排將該修補資料傳回至該啟動載入器。
  16. 如請求項12或請求項13之電子設備,其中該可程式化記憶體實施為以下各項中之一者:一單次可程式化OTP記憶體;或一多次可程式化MTP記憶體。
TW110132233A 2021-05-24 2021-08-31 用於修補啟動唯讀記憶體之方法、電腦可讀儲存媒體及電子設備 TWI786793B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
WOPCT/US21/33926 2021-05-24
PCT/US2021/033926 WO2022250653A1 (en) 2021-05-24 2021-05-24 Memory patching with associative and directly mapped patch data

Publications (2)

Publication Number Publication Date
TW202246987A TW202246987A (zh) 2022-12-01
TWI786793B true TWI786793B (zh) 2022-12-11

Family

ID=76624147

Family Applications (2)

Application Number Title Priority Date Filing Date
TW110132233A TWI786793B (zh) 2021-05-24 2021-08-31 用於修補啟動唯讀記憶體之方法、電腦可讀儲存媒體及電子設備
TW111144277A TW202314511A (zh) 2021-05-24 2021-08-31 用於修補啟動唯讀記憶體之方法、電腦可讀儲存媒體及電子設備

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW111144277A TW202314511A (zh) 2021-05-24 2021-08-31 用於修補啟動唯讀記憶體之方法、電腦可讀儲存媒體及電子設備

Country Status (4)

Country Link
EP (1) EP4330811A1 (zh)
CN (1) CN117321566A (zh)
TW (2) TWI786793B (zh)
WO (1) WO2022250653A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201222254A (en) * 2010-11-26 2012-06-01 Inventec Corp Method for protecting data in damaged memory cells by dynamically switching memory mode
TW201222552A (en) * 2010-11-16 2012-06-01 Hon Hai Prec Ind Co Ltd Memory and method for repairing same, data processing device and driving method using same
TW201502990A (zh) * 2013-02-22 2015-01-16 Marvell World Trade Ltd 唯讀記憶體之修補啓動碼
TW201603035A (zh) * 2014-04-07 2016-01-16 美光科技公司 記憶體裝置之軟包裝後修復

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757690A (en) * 1997-04-23 1998-05-26 Exponential Technology, Inc. Embedded ROM with RAM valid bits for fetching ROM-code updates from external memory
US7039776B2 (en) * 2003-04-17 2006-05-02 Broadcom Corporation Patch memory system for a ROM-based processor
US9471785B2 (en) * 2013-08-30 2016-10-18 Freescale Semiconductor, Inc. Systems and methods for secure boot ROM patch
US20150242213A1 (en) * 2014-02-23 2015-08-27 Qualcomm Incorporated System and method for modification of coded instructions in read-only memory using one-time programmable memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201222552A (en) * 2010-11-16 2012-06-01 Hon Hai Prec Ind Co Ltd Memory and method for repairing same, data processing device and driving method using same
TW201222254A (en) * 2010-11-26 2012-06-01 Inventec Corp Method for protecting data in damaged memory cells by dynamically switching memory mode
TW201502990A (zh) * 2013-02-22 2015-01-16 Marvell World Trade Ltd 唯讀記憶體之修補啓動碼
TWI664574B (zh) * 2013-02-22 2019-07-01 馬維爾國際貿易有限公司 唯讀記憶體之修補啟動碼的方法及系統單晶片
TW201603035A (zh) * 2014-04-07 2016-01-16 美光科技公司 記憶體裝置之軟包裝後修復
TWI584294B (zh) * 2014-04-07 2017-05-21 美光科技公司 記憶體裝置之軟包裝後修復

Also Published As

Publication number Publication date
CN117321566A (zh) 2023-12-29
TW202246987A (zh) 2022-12-01
WO2022250653A1 (en) 2022-12-01
EP4330811A1 (en) 2024-03-06
TW202314511A (zh) 2023-04-01

Similar Documents

Publication Publication Date Title
US11392301B2 (en) Secure boot hardware including hardware serial presence detection
TWI655643B (zh) 用於辨識對應目標記憶體位址之記憶體屬性單元之區域之區域辨識操作
US8832050B2 (en) Validation of distributed balanced trees
US6505278B1 (en) Method for flashing ESCD and variables into a ROM
TWI444826B (zh) 用以對電腦裝置中的韌體提供安全儲存的方法、系統及保留有電腦可執行指令的媒體
US7663957B2 (en) Microprocessor with program-accessible re-writable non-volatile state embodied in blowable fuses of the microprocessor
US6334173B1 (en) Combined cache with main memory and a control method thereof
GB2568527A (en) Address layout varying process
CN111190915B (zh) 一种道具标识或角色标识的确定方法、服务器及存储介质
CN108171041B (zh) 用于对访问存储器的应用程序进行身份验证的方法和装置
TWI786793B (zh) 用於修補啟動唯讀記憶體之方法、電腦可讀儲存媒體及電子設備
WO2019047142A1 (zh) 程序打补丁的方法、装置、微控制单元和终端设备
US20040078536A1 (en) Authentication mechanism integrated with random access memory and method of use
US11132304B2 (en) Data accessing device and method
JP7369701B2 (ja) 処理回路上で実行されるべきプログラムをデバッグするときにメタデータにアクセスする方法
US6745313B2 (en) Absolute address bits kept in branch history table
US7386890B2 (en) Method and apparatus to preserve a hash value of an executable module
TW201727496A (zh) 記憶體位址變換管理
US10592437B2 (en) Memory matching key capability
CN116775292A (zh) 硬件资源的分配方法及装置、电子设备与存储介质
US20200026474A1 (en) Virtual one-time programmable memory management
WO2022253706A1 (en) Device identity keys