TW202338563A - 用於存取控制之保存恢復引擎 - Google Patents
用於存取控制之保存恢復引擎 Download PDFInfo
- Publication number
- TW202338563A TW202338563A TW111131478A TW111131478A TW202338563A TW 202338563 A TW202338563 A TW 202338563A TW 111131478 A TW111131478 A TW 111131478A TW 111131478 A TW111131478 A TW 111131478A TW 202338563 A TW202338563 A TW 202338563A
- Authority
- TW
- Taiwan
- Prior art keywords
- component
- sre
- configuration data
- local memory
- save
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000000977 initiatory effect Effects 0.000 claims abstract description 3
- 238000011084 recovery Methods 0.000 claims description 64
- 230000004044 response Effects 0.000 claims description 38
- 238000013507 mapping Methods 0.000 description 17
- 238000002955 isolation Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000004321 preservation Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Power Sources (AREA)
Abstract
本發明揭示用於在一運算裝置中實施一保存恢復引擎之方法、系統及設備。該設備之一者包含:一電力管理器,其經組態以控制經提供至該裝置上之複數個電力域的電力,其中各電力域具有一各自用戶端裝置,其中各個各自用戶端裝置具有經組態以控制該裝置上之哪些其他組件可與該各自用戶端裝置通信之一各自存取控制(AC)組件;及一保存恢復引擎(SRE),其經組態以將經定位於受到起始一電力崩潰操作之該電力管理器影響之一電力域中之一AC組件的組態資料保存在一隔離本端記憶體中,且其中該SRE經組態以當該電力管理器將該電力恢復至該AC組件之該電力域時,從該隔離本端記憶體恢復該AC組件的該組態資料。
Description
本說明書係關於具有積體電路裝置之系統。
一系統單晶片(SoC)係整合一運算裝置之不同組件之一積體電路,其可包含例如一中央處理單元(CPU)、記憶體、輸入/輸出埠、蜂巢式無線電及輔助儲存器等。與傳統的基於主機板之PC架構(其中一主機板容置及連接可拆卸或可更換組件)相比,SoC將全部此等組件整合至一單一積體電路中。SoC通常用於行動運算、邊緣運算及嵌入式系統中,諸如智慧型電話、平板電腦、WiFi路由器、物聯網(IoT)裝置等。
一SoC可包含一或多個子系統,且各子系統可包含複數個模組,例如,用戶端裝置。例如,模組可包含一記憶體映射資源或一I/O映射資源。該等模組可彼此隔離,且可屬於不同安全領域,此意謂系統假定該等裝置彼此不信任。因此,各模組可使用控制裝置上之哪些其他模組可與該模組通信之裝置及組態資訊來實施。
當一SoC或一模組失去其電力且接著重新獲得電力時,例如,歸因於一裝置進入睡眠,關於哪些模組可與哪些其他模組通信之組態資訊需要以一安全方式從一保存狀態恢復。
本說明書描述用於實施一安全保存恢復引擎(SRE)之技術,該SRE用於在系統斷電或關閉組件以節省電力之一電力崩潰事件期間保存及恢復一運算裝置中之組件之組態資料。SRE可利用在電力崩潰事件期間通電之一隔離本端記憶體,此可防止受損或不可信程式碼修改所保存組態資料。SRE之一個應用係保存及恢復管控系統之哪些組件被容許與哪些其他組件通信之存取控制(AC)組件或暫存器之組態資料。
本說明書中描述之標的物可在特定實施例中實施以實現以下優點之一或多者。本說明書中描述之保存恢復引擎(SRE)可實施一更安全、基於硬體之狀態機以執行一運算裝置中之組件(例如,AC組件或其他暫存器)之組態資料之保存及恢復。SRE經組態以在電力崩潰事件期間使用具有永遠開啟或備用電力軌之一隔離本端記憶體。本端記憶體之隔離保護組態資料免受SoC上之不可信組件之存取。另外,本端記憶體之隔離使其免受受損應用軟體之影響。
本說明書中描述之技術提供優於用於保存及恢復組態資料之其他機制之若干優點。與基於軟體及基於動態隨機存取記憶體(DRAM)之解決方案相比,本說明書中描述之技術顯著更快地執行,且消耗顯著更少電力。例如,使用一DRAM控制器及一DRAM實體層進行一保存恢復操作在一電力崩潰事件之後喚醒之時間及電力消耗方面係相對高成本的。
SRE可在AC組件或其他暫存器之組態資料之保存及恢復期間實施分散式資料包裝及解包裝。各待保存組件可在保存操作之第一異動上向SRE通知需要保存之資料之大小。因此,各待保存組件可在保存程序期間執行其資料之本端包裝,且可在恢復程序期間執行其本端解包裝,此有助於高效地利用本端記憶體以及減少恢復時間。與基於軟體之解決方案或基於DRAM之硬體解決方案相比,基於SRE之方法提供較佳電力使用及AC組件或其他暫存器之資料之較佳保護,且避免對資料之完整性保護之需求。SRE可將一特殊信號發送至AC組件或其他暫存器。此導致AC組件或其他暫存器阻止與AC組件或其他暫存器之任何用戶端異動,直至由SRE完成保存或恢復操作。
本說明書中描述之技術可阻止對本端資源之存取,直至AC組件或其他暫存器之恢復完成。因此,本說明書中描述之技術可防止基於軟體之解決方案所可能之某些類型之攻擊。例如,本說明書中描述之技術可防止其他實體在一重設指令之發放與AC組件或其他暫存器之組態之恢復完成之間之時間段內惡意地獲得來自受保護資源之資訊。
在下文之附圖及描述中闡述本說明書之標的物之一或多項實施例之細節。從描述、圖式及發明申請專利範圍將變得明白標的物之其他特徵、態樣及優點。
圖1係一實例運算裝置100之一圖。運算裝置100可為安裝在一行動裝置(例如,一智慧型電話或一平板裝置)上之一系統單晶片(SoC)裝置。一SoC係將系統之各組件包含在一單一矽基板上或多個互連晶粒上(例如,使用矽中介層、堆疊晶粒或互連橋)之一積體電路。
運算裝置100包含一或多個子系統,且各子系統可包含一或多個用戶端裝置。為了改良操作完整性及資料安全性,用戶端裝置可彼此隔離,且系統可經設計以操作,使得裝置彼此不信任。為此,各用戶端裝置可具有一各自存取控制(AC)組件,該各自存取控制(AC)組件經組態以控制運算裝置100上之哪些其他組件可與用戶端裝置或其他用戶端裝置通信。各用戶端裝置可具有需要跨電力崩潰之保存及恢復之其他暫存器。
AC組件可被實施為硬體安全組件,其等可管理子系統中之一異動之安全性,且可在子系統中之資源之間提供隔離,例如,記憶體映射組件及IO映射組件。記憶體映射組件係可由一起始器(諸如一CPU)藉由使用系統記憶體映射中之一特定位址對資源進行定址來存取之資源。記憶體映射組件之實例包含靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、組態暫存器。IO映射組件係未被顯式記憶體映射之資源。可藉由起始器使用針對各IO映射組件客製之特殊程式化序列存取IO映射組件。IO映射組件之實例包含先進先出(FIFO)緩衝器、周邊裝置,諸如快捷周邊組件互連介面(PCIE)、串列周邊介面(SPI)等。一運算裝置中之AC組件之實例包含防火牆、領域分配器(RA)及系統級記憶體管理單元(SMMU)。例如,圖1展示一AC組件112、一AC組件114、一AC組件120及一第三方AC組件116。
當一子系統經電力閘控時,運算裝置100可包含複數個保持暫存器以保持AC組件之資料。例如,一SoC可包含用於AC組件中之控制暫存器之保持暫存器,且保持暫存器可定位於一非電力閘控電力軌中。然而,在一電力崩潰事件期間,保持暫存器亦丟失其等之內容。因此,當運算裝置100丟失其電力時,例如,當電力軌崩潰時,可期望將AC組件或其他暫存器之資料(例如,AC組件之狀態及組態)保存在運算裝置100上具有主動電力之某一區域中,使得當運算裝置100恢復其電力時,例如,當電力軌重新通電時,AC組件或其他暫存器可恢復。
運算裝置100包含一保存恢復引擎(SRE) 102。SRE 102經組態以將定位於受到一電力崩潰事件影響之一電力域150中之一AC組件或其他暫存器(例如,AC組件112)之組態資料(例如,狀態資料及組態資料)保存在一隔離本端記憶體106中。SRE 102經組態以當電力域150之電力恢復時從隔離本端記憶體106恢復AC組件或其他暫存器之組態資料。
一電力域係由同一電力及接地供應器供電之閘極及裝置之一集合。例如,AC組件112、AC組件114及第三方AC組件116處於同一電力域150中。作為另一實例,隔離本端記憶體106、SRE 102、AC表104及電力管理器108處於同一電力域152中,且電力域152之電力永遠開啟。
在一些實施方案中,一AC組件(例如,一防火牆)可包含支援SRE之保存及恢復操作之一額外功能。例如,AC組件可包含SRE保存請求或恢復請求之一識別。且在接收到一保存請求或一恢復請求之後,AC組件可在保存/恢復操作期間鎖定系統對AC組件之組態資料之存取。
在一些實施方案中,AC組件可經組態以具有用以壓縮待保存在隔離本端記憶體中之組態資料之一機制。需要被保存及恢復之組態資訊可包含高度可壓縮之資訊。例如,為了節省隔離本端記憶體106中之儲存空間,可部署一介面工具集118 (例如,一壓縮介面工具集)以壓縮組態資訊。作為另一實例,介面工具集118可使用一位址映射表來選擇AC組件116中需要被保存之關鍵控制暫存器。因此,可減少待保存之組態資料量。
在一些實施方案中,一組件可在需要被保存或恢復之位址位置之間具有多個未使用位址位置。當壓實用於保存/恢復操作之酬載時,可藉由跳過此等未使用位址位置來避免此等位置。在一些實施方案中,一組件可具有實施需要被保存或恢復之少量資料(例如,少於四個位元組之資料)之多個位址。因此,來自多個位址之資料可組合為用於保存/恢復操作之一給定異動之一單一酬載。在一些實施方案中,AC組件可實施適合於AC組件之客製壓實或解壓方法。因此,SRE 102可不涉及參與保存/恢復操作之AC組件之組態暫存器之資料結構。例如,SRE機制可表現得像一插頭操作(例如,連接至系統匯流排110及信號122之一插頭)、一暫存器操作(例如,製作一AC組件表之一條目之一暫存器)及一播放操作。
運算裝置100包含經組態以控制提供至裝置上之複數個電力域之電力之一電力管理器108。例如,電力管理器經組態以控制提供至AC組件112及AC組件之在電力域150中之對應用戶端裝置之電力。電力管理器108可在電力域150中發出一電力崩潰操作。電力管理器108可將電力恢復至電力域150。在一些實施方案中,在一電力崩潰事件期間,電力管理器108可停用運算裝置100之一子系統中之位址再映射器128。位址再映射器128可將不同位址傳遞至運算裝置100中之不同組件,例如,將不同位址傳遞至不同DRAM。藉由停用位址再映射器128,AC組件可透過實體位址空間中之一靜態映射而具有一靜態位址。
電力管理器108可與SRE 102通信,使得SRE 102可執行保存操作及恢復操作。例如,電力管理器108可將一保存請求(例如,「saveReq」130)發送至SRE 102以起始一保存操作。電力管理器108可將一AC組件之一識別(例如「saveSswpid」132)發送至SRE 102以識別其組態資料需要被保存之AC組件。當保存操作完成時,電力管理器108可接收來自SRE 102之一保存回應(例如,「saveRdy」134)。電力管理器108可將一恢復請求(例如,「restoreReq」138)發送至SRE 102以起始一恢復操作。電力管理器108可將一AC組件之一識別(例如「restoreSswpid」140)發送至SRE 102以識別其組態資料需要被恢復之AC組件。當恢復操作完成時,電力管理器108可接收來自SRE 102之一恢復回應(例如,「restoreRdy」142)。
運算裝置100包含一存取控制(AC)表104。AC表104定義在一電力崩潰事件期間需要被保存及/或恢復之運算裝置100中之一或多個AC組件。AC表104可為一硬編碼表,且各運算裝置100可具有一對應AC表。AC表104包含對應於運算裝置100中之一或多個AC組件之一或多個條目,且可使用各自AC組件之一識別來將各條目編索引。該識別識別運算裝置100中之AC組件。
在一些實施方案中,各條目之欄位可包含指示相關聯AC組件條目是否有效之一欄位及指示相關聯AC組件之一開始位址之一欄位。在一保存操作期間,SRE可從以AC組件之開始位址開始之一記憶體位置讀取AC組件之組態資料。在一恢復操作期間,SRE可將組態資料寫入至以AC組件之開始位址開始之一記憶體位置。在一些實施方案中,運算裝置可包含多個子系統,且各子系統可包含一或多個AC組件。可藉由子系統之一識別及子系統中之AC組件之一識別將AC表104中之各條目編索引。
運算裝置100包含一隔離本端記憶體106。隔離本端記憶體106僅可由SRE 102存取,未經記憶體映射,且軟體無法存取。例如,隔離本端記憶體106可包含用於儲存及保持之一非記憶體映射偽雙埠SRAM。作為另一實例,隔離本端記憶體106可包含可用於保存及恢復AC組件之組態資料之一DRAM,且系統可使用密碼方法保護儲存在DRAM中之組態資料免受潛在篡改,諸如透過加密/解密之鑑認、防重播保護等。因此,保護隔離本端記憶體106受保護免受不可信安全組件及/或異動之影響。隔離本端記憶體106處於一永遠開啟電力域152中。在一電力崩潰事件期間,隔離本端記憶體106可具有電力,使得儲存在隔離本端記憶體106中之AC組件之組態資料不會丟失。在一電力崩潰事件期間,SRE 102可將一或多個AC組件之各者之組態資料保存在隔離本端記憶體106中。當電力恢復時,SRE 102可將組態資料從隔離本端記憶體106恢復至一或多個AC組件之各者。
在成功地將AC組件之組態資料保存在隔離本端記憶體106中之後,SRE 102可經組態以將一信號122發送至AC組件,例如,AC組件112及/或AC組件114。例如,信號122可指示AC組件之一恢復操作待決。該信號可導致AC組件進入其中其他組件或異動無法存取AC組件之組態資料之一狀態,直至一恢復操作完成。在一些實施方案中,藉由使SRE 102寫入至AC組件112或AC組件114中之一專用暫存器,可在不具有一邊帶硬體信號之情況下達成發信。
在一些實施方案中,SRE 102可經組態以將信號122發送至與一第三方AC組件116連接之一介面工具集118。例如,信號122可指示第三方AC組件116之一恢復操作待決。該信號可導致介面工具集118進入其中其他組件或異動無法存取第三方AC組件116之組態資料之一狀態,直至一恢復操作完成。
運算裝置100可包含連接運算裝置100在電力域152中之組件及運算裝置100在電力域150中之組件之一系統匯流排110。SRE 102可透過系統匯流排110與一AC組件通信。電力管理器108可透過系統匯流排110與一AC組件通信。在一些實施方案中,系統匯流排110可與一子系統電力管理組件126或124通信,該子系統電力管理組件126或124與AC組件通信。子系統電力管理組件可在子系統之AC組件之存取控制組態恢復之前確保子系統不可用。
在一些實施方案中,運算裝置100可包含一第三方AC組件116。運算裝置可包含經組態以實施追蹤保存操作或恢復操作何時開始及結束之一保存恢復追蹤器之一介面工具集118。由於第三方組件可未經組態以解釋來自SRE 102之保存或恢復操作,所以介面工具集118可藉由識別SRE保存或恢復請求來幫助支援保存及恢復操作,例如,接收來自SRE之信號122,且在保存或恢復操作期間鎖定系統對第三方AC組件之組態資料之存取。
圖2係一實例保存恢復引擎(SRE) 200之一圖,其可為圖1之運算裝置100之SRE 102之一實例實施方案。SRE 200可接受來自一電力管理器之保存及/或恢復請求。SRE 200可執行一保存操作,包含:識別AC表202中列出之AC組件;及將來自AC組件之組態資料保存至一隔離本端記憶體204。SRE 200可執行一恢復操作,包含:識別已保存在隔離本端記憶體204中之AC表202中列出之AC組件;及將AC組件之組態資料從隔離本端記憶體204恢復至AC組件。
SRE 200可實施一基於硬體之狀態機(例如,保存狀態機206及恢復狀態機208)以執行AC組件之組態資料之保存及恢復。即,SRE不具有一軟體介面。因此,SRE可將隔離本端記憶體204與從運算裝置之異動及/或組件產生之系統存取隔離。
SRE 200可包含一本端表210。本端表210包含複數個條目,且各條目可對應於一運算裝置中之一AC組件或運算裝置之一子系統。可藉由一AC組件之一識別或一子系統之一識別將各條目編索引。
針對各AC組件,本端表210之一條目可包含指示AC組件是否被成功地保存在隔離本端記憶體204中之一第一欄位,例如,一VLD位元。例如,本端表210之各條目可包含一欄位,例如,指示一子系統之AC組件的組態資料是否被成功地保存在隔離本端記憶體中之一個位元。如果保存操作被成功地完成,則此位元可被設定為1。如果保存操作未被成功地完成,例如,發生一錯誤,則此位元可被設定為0。如果一恢復操作被成功地完成,則此位元可被重設為0。在一些實施方案中,位元可在運算裝置之一冷重設期間被設定為0。
針對各AC組件,本端表210之一條目可包含指示隔離本端記憶體204中之AC組件執行保存操作及恢復操作之一開始位址之一第二欄位。例如,欄位可為32位元或64位元,且可在針對對應AC組件執行第一保存操作時設定。欄位可在運算裝置之一冷重設期間被重設為0。
在一些實施方案中,本端表210之一條目可包含指示AC組件是否已被映射至隔離本端記憶體204中以用於保存操作及恢復操作之一第三欄位(例如,一設定位元)。例如,欄位可為一個位元,且可在針對對應AC組件執行第一保存操作時被設定。欄位可在運算裝置之一冷重設期間被重設為0。
在一些實施方案中,SRE 200可在一保存操作期間或在一恢復操作期間將一信號220發送至一AC組件。例如,本端表210可發送信號220。信號220可向AC組件(例如,一子系統中之一防火牆)指示保存或恢復操作待決。回應於接收到信號220,AC組件可進入其中AC組件僅可由SRE 200存取之一狀態。即,AC組件可阻止運算裝置中之其他組件或異動透過其埠之存取。
SRE 200包含一基於硬體之狀態機以執行AC組件之組態資料的保存及恢復。SRE 200可包含一保存狀態機206及一恢復狀態機208。保存狀態機206在一保存操作期間儲存及更新狀態資訊,例如,一指標及一計數器之一位址。保存狀態機206可透過一保存介面212與電力管理器互動。保存狀態機206可存取來自本端表210 (例如,來自與AC組件相關聯之一各自條目)之資訊。例如,保存狀態機206可獲得隔離本端記憶體204中之AC組件之一開始位址。保存狀態機206可將資訊寫入至本端表210,例如,寫入至與AC組件相關聯之一各自條目。例如,在隔離本端記憶體204中分配用於一AC組件的記憶體空間之後,保存狀態機206可將隔離本端記憶體204中之AC組件的開始位址保存在本端表210中。作為另一實例,在一成功保存操作之後,保存狀態機206可將一保存成功位元設定為1。
保存狀態機206可將一AC組件之組態資料保存至隔離本端記憶體204。保存狀態機206可從AC表202獲得資訊。例如,保存狀態機可驗證一AC組件是否在AC表202中列出,且可從AC表202獲得AC組件之一開始位址。保存狀態機206可透過一介面與系統匯流排互動。例如,保存狀態機206可透過一先進可擴展介面(AXI)讀取通道216與系統匯流排互動以讀取一AC組件之組態資料。AXI讀取介面可支援具有預定數目個位元(例如,32位元或64位元)之資料寬度之單次讀取。
恢復狀態機208在一恢復操作期間儲存及更新狀態資訊,例如,一指標及一計數器之一位址。恢復狀態機208可透過一恢復介面214與電力管理器互動。恢復狀態機208可存取來自本端表210 (例如,來自與AC組件相關聯之一各自條目)之資訊。例如,恢復狀態機208可獲得隔離本端記憶體204中之AC組件之一開始位址。恢復狀態機208可將資訊寫入至本端表210,例如,寫入至與AC組件相關聯之一各自條目。例如,在一成功恢復操作之後,保存狀態機206可將一保存成功位元設定為0。
恢復狀態機208可從隔離本端記憶體204恢復一AC組件之組態資料。恢復狀態機208可從AC表202獲得資訊。例如,恢復狀態機可驗證一AC組件是否在AC表202中列出,且可從AC表202獲得AC組件之一開始位址。恢復狀態機208可透過一介面與系統匯流排互動。例如,恢復狀態機208可透過一先進可擴展介面(AXI)寫入通道218與系統匯流排互動以寫入一AC組件之組態資料。AXI寫入介面可支援具有預定數目個位元(例如,32位元或64位元)之資料寬度之單次寫入。
圖3係用於保存一AC組件之組態資料之一實例程序300之一流程圖。為了方便起見,程序300將被描述為藉由包含運算裝置中之一SRE (例如,圖1之運算裝置100中之SRE 102)之一系統執行。系統可包含參考圖1描述之組件,包含一或多個AC組件、一電力管理器、一隔離本端記憶體、一AC表或此等之某一組合。
系統可接收來自一電力管理器之一保存請求及一AC組件之一識別(302)。例如,一電力管理器可將一保存請求(例如,saveReq130信號)發出至SRE,且可提供AC組件之一識別(ID)或連同待保存之子系統之一識別(例如,saveSswrpid 132信號)。
系統可判定是否在一AC表中定義AC組件之識別(304)。在接收到保存請求之後,SRE可例如透過ID檢查是否在定義AC組件之AC表中定義所請求之AC組件。如果系統判定未在AC表中定義AC組件之識別,則系統可發出一錯誤回應(306)。例如,如果SRE無法在AC表中找到所請求之AC組件,則SRE可用一錯誤回應(例如,saveResp 136信號)來回應電力管理器。
在一些實施方案中,當在一段時間內或同時接收到多個保存請求時,SRE可將從電力管理器接收之多個保存請求排入佇列。SRE可將一回應訊息(例如,saveResp 136信號)發送至電力管理器。回應訊息可包含被排入佇列之AC組件之ID或連同待保存之子系統之一識別。
如果系統判定在AC表中定義AC組件之識別,則系統可從AC表獲得AC組件之一開始位址(308)。即,如果所請求之AC組件在AC表中,則SRE可載入AC表中指示之開始位址。例如,SRE可包含存取AC組件之一指標,且SRE可將指標設定至AC組件之開始位址。
在一些實施方案中,SRE可接收來自電力管理器之一保存請求以保存運算裝置中之一子系統之複數個AC組件。SRE可接收來自電力管理器之一子系統封裝器之一ID。SRE可使用子系統封裝器之ID獲得AC表中指示之AC組件之各者之一開始位址。例如,SRE可將其存取AC組件之讀取指標設定至複數個AC組件之第一AC組件(例如,組件0)之開始位址。在完成保存第一AC組件之組態資料之後,SRE可將讀取指標移動至下一AC組件之開始位址。
系統可判定是否在一隔離本端記憶體中分配AC組件之記憶體空間(310)。SRE可檢查是否在連接至SRE之隔離本端記憶體中針對所請求之AC組件進行記憶體空間之一初始分配。SRE可檢查SRE之本端表210。例如,SRE可檢查本端表210中之條目之一個位元SET欄位以判定是否已進行初始分配。可在針對對應AC組件執行第一保存操作時設定此位元。
如果系統判定未分配記憶體空間,則系統可分配AC組件之記憶體空間(312)。例如,如果未進行一分配,例如,當此係第一次保存AC組件時,SRE可使用本端記憶體中之一未映射位址位置產生AC組件之一分配。此後,SRE可更新其本端表以將AC組件之開始位址保存在隔離本端記憶體中。
在分配記憶體空間之後,或如果系統判定記憶體空間被分配,則系統可從AC組件讀取AC組件之組態資料(314)。如果進行分配,則SRE可從SRE之一本端表210讀取與AC組件相關聯之一位址(例如,一開始位址)。可在針對對應AC組件執行第一保存操作時設定本端表中之一條目之開始位址欄位。例如,SRE可包含一保存狀態機206,該保存狀態機206包含至AC組件之一讀取指標及至隔離本端記憶體之一寫入指標。SRE可將讀取指標設定至AC組件之開始位址,且可將寫入指標設定至隔離本端記憶體中之AC組件之開始位址。
在一些實施方案中,SRE可將一初始讀取操作發送至AC組件,連同將指示保存操作之一信號發送至AC組件。在接收到初始讀取操作之後,AC組件可判定保存操作已初始化,且可阻止從並非來自SRE之異動對其組態資料之任何進一步存取。例如,AC組件可阻止對其組態資料之任何進一步存取,除非存取來自SRE。
在一些實施方案中,在接收到來自SRE之初始讀取操作之後,AC組件可提供需要被保存在隔離位置記憶體中之組態資料之大小。例如,AC組件可提供SRE在保存操作期間需要完成之最大讀取次數。SRE可將組態資料之大小寫入至隔離本端記憶體,例如,用於AC組件之經分配記憶體之一第一部分(例如,一位元組)中。在寫入大小資訊之後,SRE可增加指標之值,使得指標可指向所分配記憶體之下一部分。
系統可將AC組件之組態資料寫入隔離本端記憶體中(316)。在設定讀取及寫入指標之後(且在大小資訊之初始讀取及寫入之後),SRE可從AC組件循序讀取組態資料之一部分,且可循序將該部分寫入至隔離記憶體,直至達到組態資料之大小。例如,SRE可增加至AC組件之讀取指標以從AC組件讀取。SRE可增加至隔離本端記憶體之寫入指標。
在一些實施方案中,SRE可包含一讀取計數器,該讀取計數器計數SRE在保存操作期間已完成之讀取次數。如果讀取計數器之值小於組態資料之大小,例如,最大讀取次數,則SRE可繼續讀取組態資料之下一部分。如果讀取計數器之值不小於組態資料之大小,則系統可判定保存操作成功完成。
系統可將一保存完成回應發送至電力管理器(318)。如果針對AC組件之保存操作成功完成,則SRE可將一保存完成回應(例如,saveRdy 134信號)發送至電力管理器。如果SRE接收到來自AC組件之一錯誤,則SRE可將錯誤報告回至電力管理器,例如,saveResp 136信號,且SRE可停止保存操作。
在一些實施方案中,SRE需要將一子系統之多個AC組件保存至隔離本端記憶體。如果當前AC組件之保存操作完成,則SRE可將針對子系統之下一組件保存在AC表中。該程序繼續,直至針對子系統之AC表中之全部有效組件被保存。當子系統之全部AC組件被保存時,SRE可用一保存完成回應來回應電力管理器。
在一些實施方案中,電力管理器可發送對應於需要被保存之複數個AC組件之識別之一序列。SRE可平行處理識別之序列,且可平行保存複數個AC組件之組態資料。因此,系統可改良效率且增強保存操作之效能。
在接收到保存完成回應之後,電力管理器可繼續進行子系統或AC組件之電力崩潰。在一些實施方案中,在完成保存操作之後,SRE可將其本端表中之一欄位(例如,一VLD位元)設定為1,從而指示AC組件已被成功地保存在隔離本端記憶體中。
在一些實施方案中,在保存操作成功完成之後,SRE可將一信號122發送至子系統或AC組件。例如,該信號(例如,信號值等於1)可指示AC組件之恢復操作待決。該信號可導致AC組件進入其中其他組件或異動無法存取AC組件之組態資料之一狀態,直至一恢復操作完成。例如,在接收到信號之後,AC組件可阻止任何用戶端異動,除非異動來自SRE,直至針對AC組件之恢復操作完成。在一些實施方案中,信號122未被驅動至覆蓋子系統電力管理之AC組件,使得電力管理器可執行通電序列。
在一些實施方案中,實例程序300可用於保存一運算裝置中之需要保存/恢復之其他類型之組件之組態資料,且一或多個組件並非安全相關AC組件。在一些實施方案中,組件可為一SoC中之一記憶體映射組件。在一些實施方案中,組件可為一SoC中之一IO映射組件。在一些實施方案中,組件可包含一運算裝置中之一或多個暫存器。即,保存恢復引擎(SRE)係一通用保存/恢復引擎,且本說明書中描述之技術並不特定於安全相關AC組件。
圖4係用於恢復組態資料之一實例程序400之一流程圖。為了方便起見,程序400將被描述為藉由包含運算裝置中之一SRE (例如,圖1之運算裝置100中之SRE 102)之一系統執行。系統可包含參考圖1描述之組件,包含一或多個AC組件、一電力管理器、一隔離本端記憶體、一AC表或此等之某一組合。
在一電力恢復事件期間,在將恢復請求發送至SRE之前,一電力管理器可首先恢復電力軌,且可與恢復中之子系統中之子系統電力管理組件通信以發放AC組件之重設。電力系統亦可與連接至AC組件之匯流排(例如,系統匯流排110)通信。位址再映射器128可保持在一重設或停用狀態,使得AC組件可在實體位址空間中具有一靜態位址。由於來自SRE之信號122接通,AC組件可阻止從任何其他異動或組件對AC組件之組態資料之存取。
系統可接收來自電力管理器之一恢復請求及一AC組件之一識別(ID) (402)。例如,在完成AC組件及匯流排之通電序列之後,電力管理器可將一恢復請求(例如,restoreReq 138信號)發出至SRE,且可提供待恢復之AC組件之ID (例如,restoreSswrpid 140信號)。電力管理器可等待,直至接收來自SRE之一完成回應或一錯誤回應。
系統可判定是否在一AC表中定義識別(404)。例如,在接收到恢復請求之後,SRE可檢查是否在定義AC組件之AC表中定義所請求之AC組件或AC組件之子系統。如果系統判定未在AC表中定義識別,則系統可發出一錯誤回應(406)。
在一些實施方案中,當組態資料被儲存在隔離本端記憶體中時,系統可使用組態資料之一數位指紋來保護組態資料免受可能篡改的影響。當將AC組件之組態資料儲存在隔離本端記憶體中時,系統可運算組態資料之一數位指紋,例如,一校驗和或一密碼雜湊。可在保存操作時運算及保存數位指紋。當系統執行恢復操作時,系統可運算從隔離本端記憶體恢復之組態資料之一數位指紋。系統可將所恢復組態資料之數位指紋與在保存操作時運算之數位指紋進行比較。如果兩個數位指紋不匹配,則系統可產生一系統錯誤,且恢復操作可中止。如果兩個數位指紋匹配,則系統可判定AC組件之組態資料在其被儲存在隔離本端記憶體中時尚未被篡改。
如果系統判定在AC表中定義識別,則系統可判定AC組件先前是否保存在隔離本端記憶體中(408)。例如,SRE可藉由在SRE之本端表中檢查AC組件之對應條目之VLD位元來檢查先前是否保存AC組件。如果系統判定AC組件先前未保存在隔離本端記憶體中,則系統可發出一錯誤回應(406)。例如,如果VLD位元指示AC組件先前未保存在隔離本端記憶體中,則SRE可將一錯誤回應發送至電力管理器。
如果系統判定AC組件先前保存在隔離本端記憶體中,則系統可從AC表獲得AC組件之一開始位址(410)。例如,如果VLD位元指示AC組件先前保存在隔離本端記憶體中,則SRE可讀取AC表中指示之AC組件之開始位址。在一些實施方案中,SRE接收恢復一子系統中之複數個AC組件之一恢復請求及子系統之一ID。SRE可讀取AC表中指示之子系統之開始位址。SRE可包含一寫入指標,且SRE可將寫入指標設定至子系統之開始位址處之第一AC組件(例如,組件0)。在SRE完成寫入第一AC組件之後,SRE可移動寫入指標以指向子系統中之下一AC組件。
系統可獲得儲存在隔離本端記憶體中之AC組件之組態資料之一開始位址(412)。例如,SRE可從其本端表載入儲存在隔離本端記憶體中之組態資料之開始位址。SRE可包含一讀取指標以存取隔離本端記憶體以進行恢復,且SRE可將讀取指標設定至開始位址。在一些實施方案中,SRE可包含一恢復狀態機208,且恢復狀態機208可儲存讀取指標及寫入指標。
系統可從隔離本端記憶體讀取AC組件之組態資料(414)。例如,系統可使用指向儲存在隔離本端記憶體中之組態資料之讀取指標來讀取AC組件之組態資料。系統可寫入AC組件之組態資料(416)。在一些實施方案中,在將寫入指標設定至AC組件且將讀取指標設定至隔離本端記憶體中之組態資料之開始位址之後,SRE可發出一初始讀取以獲得儲存在隔離本端記憶體中之AC組件之組態資料之大小資訊。例如,SRE可獲得SRE在恢復操作期間需要完成之最大寫入次數。系統可循序從隔離本端記憶體讀取組態資料之一部分,且可循序將該部分寫入至AC組件,直至達到組態資料之大小。例如,SRE可從隔離本端記憶體讀取組態資料,且可用指示此通信係來自SRE之一信號將組態資料寫入至AC組件。此程序可在由AC組件之大小資訊指示之AC組件之全部部分上重複。
在一些實施方案中,在將組態資料之第一部分寫入至AC組件之後,該信號可導致AC組件進入其中AC組件僅可由SRE存取之一狀態。例如,在第一次寫入之後,AC組件可識別恢復操作已起始,且AC組件可阻止從其他組件或異動存取其組態資料之任何嘗試。當對AC組件之恢復完成時,AC組件可解鎖從其他組件或異動對其組態資料之存取。
在一些實施方案中,在恢復期間,如果對AC組件之一寫入操作導致一錯誤回應,則恢復操作可被視為已失敗。SRE可將一錯誤回應(例如,restoreResp 144信號)發出至電力管理器。在一些實施方案中,在此情境中,電力管理器可判定執行運算裝置之一冷重啟。
在一些實施方案中,當在一段時間內或同時接收到多個恢復請求時,SRE可將從電力管理器接收之多個恢復請求排入佇列。SRE可將一回應訊息(例如,restoreResp 144信號)發送至電力管理器。回應訊息可包含被排入佇列之AC組件之ID或連同待保存之子系統之一識別。
在一些實施方案中,SRE可包含一寫入計數器,該寫入計數器計數SRE在恢復操作期間已完成之寫入次數。如果寫入計數器之值小於保存在隔離位置記憶體中之組態資料之大小,例如,最大寫入次數,則SRE可繼續將組態資料之下一部分寫入至AC組件。如果寫入計數器之值不小於保存在隔離本端記憶體中之組態資料之大小,則系統可判定恢復操作成功完成。
系統可將一恢復完成回應(例如,restoreRdy 142信號)發送至電力管理器(418)。在一些實施方案中,SRE可需要恢復一子系統中之複數個AC組件。SRE可循序恢復AC表中識別之子系統之各AC組件之組態資料。當子系統之全部AC組件成功恢復之後,系統可將一恢復完成回應發送至電力管理器。
在一些實施方案中,電力管理器可發送對應於需要被恢復之複數個AC組件之識別之一序列。SRE可平行處理識別之序列,且可平行恢復複數個AC組件之組態資料。因此,系統可改良效率且增強恢復操作之效能。
在一些實施方案中,在成功完成恢復之後,SRE可使其本端表中之欄位(例如,VLD位元)無效化以指示AC組件不再被保存在隔離本端記憶體中。例如,SRE可將本端表中之一對應條目之VLD位元設定為0。
在一些實施方案中,SRE可將一信號122發送至已被恢復之子系統或AC組件。例如,該信號可指示AC組件之恢復操作已經完成。該信號可導致AC組件允許來自其他組件或異動的存取。例如,在將信號設定為0之後,一AC組件(例如,一防火牆)可進入其中基於防火牆之所恢復組態資料憑藉適當許可檢查允許異動流過防火牆的一狀態。在一些實施方案中,在由SRE成功完成恢復操作之後,電力管理器可將子系統之其餘部分從一重設狀態釋放出來以進行功能操作。因此,子系統之電力恢復完成。
在一些實施方案中,實例程序400可用於恢復一運算裝置中需要保存/恢復之其他類型之組件的組態資料,且一或多個組件並非安全相關AC組件。在一些實施方案中,組件可為一SoC中之一記憶體映射組件。在一些實施方案中,組件可為一SoC中之一IO映射組件。在一些實施方案中,組件可包含一運算裝置中之一或多個暫存器。即,保存恢復引擎(SRE)係一通用保存/恢復引擎,且本說明書中描述之技術並不特定於安全相關AC組件。
圖5係一實例通用保存恢復介面工具集500之一圖。在一些實施方案中,一運算裝置可包含具有一各自通用AC組件(例如,一SMMU)之一通用模組或用戶端裝置。由於調適AC組件以支援SRE之保存及恢復操作可能是困難或不可能的,所以運算裝置100可包含一介面工具集(例如,一通用保存恢復介面工具集500)以幫助支援SRE之保存及恢復操作。
介面工具集可包含一保存恢復追蹤器502,該保存恢復追蹤器502追蹤保存操作或恢復操作何時開始及結束。保存恢復追蹤器502可識別來自SRE之一保存請求或一恢復請求。例如,當SRE存取AC組件之第一位置時,保存恢復追蹤器502可識別一保存操作或一恢復操作之開始。
恢復追蹤器502可導致通用AC組件進入其中通用AC組件僅可由SRE及介面工具集500存取之一狀態。例如,恢復追蹤器502可在來自其他組件或異動之保存/恢復操作期間停用系統對AC組件之組態資料之存取。因此,追蹤器502可防止系統在操作期間改變通用AC組件之狀態。
在成功完成保存操作之後,追蹤器502可使AC組件能夠進入其中不可由其他組件或異動存取AC組件之組態資料之一狀態,直至AC組件成功恢復。例如,SRE可將一信號504 (例如,圖1中之信號122)發送至保存恢復追蹤器502以識別AC組件或AC組件之子系統之恢復操作之完成。
介面工具集500可經組態以將通用AC組件之組態資料之大小資訊發送至SRE 。例如,介面工具集可運算保存操作之大小資訊,且可在保存操作之第一次讀取期間將大小資訊發送至SRE。
圖6係用於一第三方存取控制(AC)組件之一實例保存恢復介面工具集600之一圖。例如,保存恢復介面工具集600可為用於圖1中之第三方AC組件116之介面工具集118。
運算裝置可包含一第三方AC組件。例如,第三方組件可為一第三方IP供應商,例如,包含一異動控制單元(TCU)及一異動緩衝單元(TBU)之一SMMU。運算裝置可包含經組態以實施追蹤保存操作或恢復操作何時開始及結束之一保存恢復追蹤器602之一介面工具集600。例如,保存恢復追蹤器602可識別來自SRE之一保存請求或一恢復請求。當使用指示存取係來自一SRE之一信號對TCU/TBU組件之第一位置進行存取時,可識別保存/恢復操作之開始。
在一些實施方案中,介面工具集600可經組態以將一信號發送至第三方AC組件,且該信號可導致第三方組件進入其中第三方AC組件僅可由SRE及介面工具集600存取之一狀態,直至SRE完成保存或恢復第三方AC組件。例如,在識別一保存請求或一恢復請求之後,追蹤器可在保存/恢復操作期間鎖定系統對一SMMU之組態資料之存取。當保存或恢復操作已開始時,追蹤器602可停用源自非SRE起始器之任何存取。因此,追蹤器602可防止系統在保存/恢復操作期間改變第三方組件之組態資料,例如,包含狀態資料。
在成功完成保存操作之後,追蹤器602可使AC組件能夠進入其中不可由其他組件或異動存取AC組件之組態資料之一狀態,直至AC組件成功恢復。例如,SRE可將一信號604 (例如,圖1中之信號122)發送至保存恢復追蹤器602以識別AC組件或AC組件之子系統之恢復操作之完成。
介面工具集600可經組態以將第三方AC組件之組態資料之大小資訊發送至SRE 。例如,介面工具集可運算保存操作之大小資訊,且可在保存操作之第一次讀取期間將大小資訊發送至SRE。
在一些實施方案中,介面工具集600可包含第三方AC組件中之各模組之一位址映射表。例如,介面工具集600可包含TCU之一位址映射表(例如,位址映射表606)及TBU之各者之一位址映射表(例如,位址映射表608、610…612)。在保存/恢復操作期間,位址映射表可將一輸入位址轉譯為第三方AC組件中之各模組之位址,例如,TCU/TBU位址。在一些實施方案中,介面工具集600可經組態以執行壓實待由SRE保存在一隔離本端記憶體中之酬載之一機制之一佈建。
例如,介面工具集600可使用位址映射表來選擇TCU/TBU中需要被保存之關鍵控制暫存器。因此,可減少待保存之組態資料量。
本說明書中描述之標的物以及動作及操作之實施例可在以下中實施:數位電子電路、有形體現之電腦軟體或韌體、電腦硬體(包含本說明書中揭示之結構及其等結構等效物),或其等之一或多者之組合。本說明書中描述之標的物之實施例可被實施為一或多個電腦程式,即,編碼於一有形非暫時性儲存載體上以由資料處理設備執行或控制資料處理設備之操作的電腦程式指令之一或多個模組。替代地或另外,可將程式指令編碼於一人工產生之傳播信號(例如,一機器產生之電、光學或電磁信號)上,該傳播信號經產生以編碼用於傳輸至適合接收器設備之資訊以由一資料處理設備執行。電腦儲存媒體可為一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或其等之一或多者之一組合或可為其等之部分。一電腦儲存媒體並非一傳播信號。
本說明書中描述之處理組件指代資料處理硬體且涵蓋用於處理資料之所有種類之設備、裝置及機器,包含(藉由實例)一可程式化處理器、一微處理器、一電腦或多個處理器或電腦。設備亦可為或進一步包含專用邏輯電路,例如,一FPGA (場可程式化閘陣列)或一ASIC (特定應用積體電路)。設備除包含硬體之外,亦可視情況包含產生電腦程式之一執行環境之程式碼,例如,構成處理器韌體、一協定堆疊、或其等之一或多者之一組合之程式碼。
一電腦程式(其亦可被稱為或描述為一程式、軟體、一軟體應用程式、一應用程式、一模組、一軟體模組、一引擎、一指令碼或程式碼)可以任何形式之程式設計語言(包含編譯或解譯語言或宣告或程序語言)撰寫;且其可部署為任何形式,包含作為一獨立程式或作為一模組、組件、引擎、副常式或適於在一運算環境中執行之其他單元,該環境可包含在一或多個位置中由一資料通信網路互連之一或多個組件。
一電腦程式可(但不必)對應於一檔案系統中之一檔案。一電腦程式可儲存於保存其他程式或資料(例如,儲存於一標記語言文件中之一或多個指令碼)之一檔案之一部分中、儲存於專用於所討論程式之一單一檔案中,或儲存於多個協同檔案(例如,儲存程式碼之一或多個模組、子程式或部分之檔案)中。
除上文描述之實施例之外,以下實施例亦為創新的:
實施例1係一種裝置,其包括:
一電力管理器,其經組態以控制提供至該裝置上之複數個電力域之電力,其中各電力域具有一各自用戶端裝置,
其中各各自用戶端裝置具有經組態以控制該裝置上之哪些其他組件可與該各自用戶端裝置通信之一各自存取控制(AC)組件;及
一保存恢復引擎(SRE),其經組態以將定位於受到起始一電力崩潰操作之該電力管理器影響之一電力域中之一AC組件之組態資料保存在一隔離本端記憶體中,且
其中該SRE經組態以當該電力管理器將該電力恢復至該AC組件之該電力域時從該隔離本端記憶體恢復該AC組件之該組態資料。
實施例2係實施例1之裝置,其中該SRE包括一本端表,該本端表針對該AC組件包含:
一第一欄位,其指示該AC組件是否成功保存在該隔離本端記憶體中;及
一第二欄位,其指示該隔離本端記憶體中執行該保存操作及該恢復操作之一開始位址。
實施例3係實施例1之裝置,其中將該AC組件之該組態資料保存在該隔離本端記憶體中包括:
藉由該SRE接收來自該電力管理器之一保存請求及該AC組件之一識別;
藉由該SRE判定在定義該AC組件之一存取控制表中定義該識別;
藉由該SRE從該AC組件讀取該AC組件之該組態資料;及
藉由該SRE將該AC組件之該組態資料寫入該隔離本端記憶體中。
實施例4係實施例3之裝置,其中將該AC組件之該組態資料保存在該隔離本端記憶體中包括:
回應於判定在該存取控制表中定義該識別,藉由該SRE從該存取控制表獲得該AC組件之一開始位址;
藉由該SRE判定是否在該隔離本端記憶體中分配用於該AC組件之記憶體空間;及
回應於判定未分配用於該AC組件之該記憶體空間,使用該隔離本端記憶體中之一未映射位址位置分配用於該AC組件之該記憶體空間。
實施例5係實施例3之裝置,其中保存該AC組件之該組態資料包括:藉由該SRE將一保存完成回應發送至該電力管理器。
實施例6係實施例1之裝置,其中在將該AC組件之該組態資料保存在該隔離本端記憶體中期間,該SRE經組態以將一信號發送至該AC組件,其中該信號導致該AC組件進入其中該AC組件僅可由該SRE存取之一狀態。
實施例7係實施例1之裝置,其中從該隔離本端記憶體恢復該AC組件之該組態資料包括:
藉由該SRE接收來自該電力管理器之一恢復請求及該AC組件之一識別;
藉由該SRE判定在定義該AC組件之一存取控制表中定義該識別;
藉由該SRE從該隔離本端記憶體讀取該AC組件之該組態資料;及
將該組態資料寫入至該AC組件。
實施例8係實施例7之裝置,其中從該隔離本端記憶體恢復該AC組件之該組態資料包括:
回應於判定在該存取控制表中定義該識別,藉由該SRE判定該AC組件先前保存在該隔離本端記憶體中;
作為回應,藉由該SRE從該存取控制表獲得該AC組件之一開始位址;及
藉由該SRE獲得儲存在該隔離本端記憶體中之該AC組件之該組態資料之一開始位址。
實施例9係實施例7之裝置,其中恢復該AC組件之該組態資料包括:藉由該SRE將一恢復完成回應發送至該電力管理器。
實施例10係實施例1之裝置,其中在恢復該隔離本端記憶體中之該AC組件之該組態資料期間,該SRE經組態以將一信號發送至該AC組件,其中該信號導致該AC組件進入其中該AC組件僅可由該SRE存取之一狀態。
實施例11係實施例1之裝置,其中該AC組件係一第三方AC組件,其中該裝置進一步包括經組態以實施追蹤該保存操作或該恢復操作何時開始及結束之一保存恢復追蹤器之一介面工具集。
實施例12係實施例11之裝置,其中該介面工具集經組態以將一信號發送至該第三方AC組件,其中該信號導致該第三方AC組件進入其中該第三方AC組件僅可由該SRE及該介面工具集存取之一狀態,直至該SRE完成保存或恢復該第三方AC組件。
實施例13係實施例1之裝置,其中將該AC組件之該組態資料保存在該隔離本端記憶體中包括:
從該AC組件且藉由該SRE獲得需要被保存在該隔離本端記憶體中之該組態資料之大小;
藉由該SRE將該組態資料之該大小寫入該隔離本端記憶體中;及
循序從該AC組件讀取該組態資料之一部分,且將該部分寫入至該隔離本端記憶體,直至達到該組態資料之該大小。
實施例14係實施例1之裝置,其中從該隔離本端記憶體恢復該AC組件之該組態資料包括:
從該隔離本端記憶體且藉由該SRE獲得需要被恢復之該組態資料之大小;及
循序從該隔離本端記憶體讀取該組態資料之一部分,且將該部分寫入至該AC組件,直至達到該組態資料之該大小。
實施例15係實施例1之裝置,其中該SRE經組態以:
將待保存之該AC組件之該組態資料之一第一數位指紋保存在該隔離本端記憶體中,
獲得從該隔離本端記憶體恢復之該AC組件之該組態資料之一第二數位指紋,及
至少基於比較該第一數位指紋與該第二數位指紋來判定儲存在該隔離本端記憶體中之該組態資料是否被篡改。
實施例16係實施例1之裝置,其中該隔離本端記憶體包括一動態隨機存取記憶體(DRAM),其中該SRE經組態以將該AC組件之該組態資料保存在該DRAM中,且其中該SRE使用一密碼方法保護該組態資料不被篡改。
實施例17係一種方法,其包括:
藉由一保存恢復引擎(SRE)接收來自一電力管理器之一保存請求及一存取控制(AC)組件之一識別;
藉由該SRE從一AC表獲得該AC組件之一開始位址;
藉由該SRE從該AC組件讀取該AC組件之組態資料;
藉由該SRE將該AC組件之該組態資料寫入隔離本端記憶體中;及
藉由該SRE將一保存完成回應發送至該電力管理器。
實施例18係一或多種非暫時性儲存媒體,其或其等經編碼具有當由一運算裝置之一保存恢復引擎(SRE)執行時導致該SRE執行包括以下之操作之指令:
接收來自一電力管理器之一保存請求及一存取控制(AC)組件之一識別;
從一AC表獲得該AC組件之一開始位址;
從該AC組件讀取該AC組件之組態資料;
將該AC組件之該組態資料寫入隔離本端記憶體中;及
將一保存完成回應發送至該電力管理器。
實施例19係一種方法,其包括:
藉由一保存恢復引擎(SRE)接收來自一電力管理器之一恢復請求及一存取控制(AC)組件之一識別;
藉由該SRE從一AC表獲得該AC組件之一開始位址;
藉由該SRE從隔離本端記憶體讀取該AC組件之組態資料;
藉由該SRE將該組態資料寫入至該AC組件;及
藉由該SRE將一恢復完成回應發送至該電力管理器。
實施例20係一或多種非暫時性儲存媒體,其或其等經編碼具有當由一運算裝置之一保存恢復引擎(SRE)執行時導致該SRE執行包括以下之操作之指令:
接收來自一電力管理器之一恢復請求及一存取控制(AC)組件之一識別;
從一AC表獲得該AC組件之一開始位址;
從隔離本端記憶體讀取該AC組件之組態資料;及
將該組態資料寫入至該AC組件;及
將一恢復完成回應發送至該電力管理器。
雖然本說明書含有許多特定實施方案細節,但此等不應被解釋為對任何發明之範疇或所主張或可主張之內容之範疇之限制,而應被解釋為可特定於特定發明之特定實施例之特徵之描述。本說明書中在分開的實施例之內容脈絡中描述之某些特徵亦可在一單一實施例中組合地實施。相反地,在一單一實施例之內容脈絡中描述之各種特徵亦可分開地或以任何適合子組合在多項實施例中實施。再者,儘管上文可將特徵描述為以特定組合起作用且甚至最初如此主張,然在一些情況中,來自一所主張組合之一或多個特徵可從組合中免除,且發明申請專利範圍可係關於一子組合或一子組合之變動。
類似地,雖然按一特定順序在圖式中描繪且在發明申請專利範圍中敘述操作,但此不應被理解為要求按所展示之特定順序或循序順序執行此等操作或執行全部所繪示操作以達成所要結果。在某些境況中,多任務處理及平行處理可為有利的。再者,上文描述之實施例中之各種系統模組及組件之分離不應被理解為在所有實施例中皆需要此分離,且應理解,所描述之程式組件及系統可大體上一起整合於一單一軟體產品中或封裝至多個軟體產品中。
已描述標的物之特定實施例。其他實施例在以下發明申請專利範圍之範疇內。例如,在發明申請專利範圍中敘述之動作可按一不同順序執行且仍達成所要結果。作為一個實例,在附圖中描繪之程序不一定要求所展示之特定順序或循序順序來達成所要結果。在一些情況中,多任務處理及平行處理可為有利的。
100:運算裝置
102:保存恢復引擎(SRE)
104:存取控制(AC)表
106:隔離本端記憶體
108:電力管理器
110:系統匯流排
112:存取控制(AC)組件
114:存取控制(AC)組件
116:第三方存取控制(AC)組件
118:介面工具集
120:存取控制(AC)組件
122:信號
124:子系統電力管理組件
126:子系統電力管理組件
128:位址再映射器
130:「saveReq」
132:「saveSswpid」
134:「saveRdy」
136:saveResp
138:「restoreReq」
140:「restoreSswpid」
142:「restoreRdy」
144:restoreResp
150:電力域
152:電力域
200:保存恢復引擎(SRE)
202:存取控制(AC)表
204:隔離本端記憶體
206:保存狀態機
208:恢復狀態機
210:本端表
212:保存介面
214:恢復介面
216:先進可擴展介面(AXI)讀取通道
218:先進可擴展介面(AXI)寫入通道
220:信號
300:程序
302:步驟
304:步驟
306:步驟
308:步驟
310:步驟
312:步驟
314:步驟
316:步驟
318:步驟
400:程序
402:步驟
404:步驟
406:步驟
408:步驟
410:步驟
412:步驟
414:步驟
416:步驟
418:步驟
500:通用保存恢復介面工具集
502:保存恢復追蹤器
504:信號
600:保存恢復介面工具集
602:保存恢復追蹤器
604:信號
606:位址映射表
608:位址映射表
610:位址映射表
612:位址映射表
圖1係一實例運算裝置之一圖。
圖2係一實例保存恢復引擎(SRE)之一圖。
圖3係用於保存組態資料之一實例程序之一流程圖。
圖4係用於恢復組態資料之一實例程序之一流程圖。
圖5係一實例通用保存恢復介面工具集之一圖。
圖6係用於一第三方存取控制組件之一實例保存恢復介面工具集之一圖。
在各個圖式中,相似元件符號及名稱指示相似組件。
100:運算裝置
102:保存恢復引擎(SRE)
104:存取控制(AC)表
106:隔離本端記憶體
108:電力管理器
110:系統匯流排
112:存取控制(AC)組件
114:存取控制(AC)組件
116:第三方存取控制(AC)組件
118:介面工具集
120:存取控制(AC)組件
122:信號
124:子系統電力管理組件
126:子系統電力管理組件
128:位址再映射器
130:「saveReq」
132:「saveSswpid」
134:「saveRdy」
136:saveResp
138:「restoreReq」
140:「restoreSswpid」
142:「restoreRdy」
144:restoreResp
150:電力域
152:電力域
Claims (20)
- 一種裝置,其包括: 一電力管理器,其經組態以控制經提供至該裝置上之複數個電力域的電力,其中各電力域具有一各自用戶端裝置, 其中各各自用戶端裝置具有經組態以控制該裝置上之哪些其他組件可與該各自用戶端裝置通信之一各自存取控制(AC)組件;及 一保存恢復引擎(SRE),其經組態以將經定位於受到起始一電力崩潰操作之該電力管理器影響之一電力域中之一AC組件的組態資料保存在一隔離本端記憶體中,且 其中該SRE經組態以當該電力管理器將該電力恢復至該AC組件之該電力域時,從該隔離本端記憶體恢復該AC組件的該組態資料。
- 如請求項1之裝置,其中該SRE包括一本端表,該本端表針對該AC組件包含: 一第一欄位,其指示該AC組件是否被成功地保存在該隔離本端記憶體中;及 一第二欄位,其指示該隔離本端記憶體中執行該保存操作及該恢復操作之一開始位址。
- 如請求項1之裝置,其中將該AC組件之該組態資料保存在該隔離本端記憶體中包括: 藉由該SRE接收來自該電力管理器之一保存請求及該AC組件之一識別; 藉由該SRE判定在定義該AC組件之一存取控制表中定義該識別; 藉由該SRE從該AC組件讀取該AC組件之該組態資料;及 藉由該SRE將該AC組件之該組態資料寫入該隔離本端記憶體中。
- 如請求項3之裝置,其中將該AC組件之該組態資料保存在該隔離本端記憶體中包括: 回應於判定在該存取控制表中定義該識別,藉由該SRE從該存取控制表獲得該AC組件之一開始位址; 藉由該SRE判定是否在該隔離本端記憶體中分配用於該AC組件之記憶體空間;及 回應於判定未分配用於該AC組件之該記憶體空間,使用該隔離本端記憶體中之一未映射位址位置來分配用於該AC組件之該記憶體空間。
- 如請求項3之裝置,其中保存該AC組件之該組態資料包括:藉由該SRE將一保存完成回應發送至該電力管理器。
- 如請求項1之裝置,其中在將該AC組件之該組態資料保存在該隔離本端記憶體中期間,該SRE經組態以將一信號發送至該AC組件,其中該信號導致該AC組件進入其中該AC組件僅可由該SRE存取之一狀態。
- 如請求項1之裝置,其中從該隔離本端記憶體恢復該AC組件之該組態資料包括: 藉由該SRE接收來自該電力管理器之一恢復請求及該AC組件之一識別; 藉由該SRE判定在定義該AC組件之一存取控制表中定義該識別; 藉由該SRE從該隔離本端記憶體讀取該AC組件之該組態資料;及 將該組態資料寫入至該AC組件。
- 如請求項7之裝置,其中從該隔離本端記憶體恢復該AC組件之該組態資料包括: 回應於判定在該存取控制表中定義該識別,藉由該SRE判定該AC組件先前保存在該隔離本端記憶體中; 作為回應,藉由該SRE從該存取控制表獲得該AC組件之一開始位址;及 藉由該SRE獲得經儲存在該隔離本端記憶體中之該AC組件之該組態資料之一開始位址。
- 如請求項7之裝置,其中恢復該AC組件之該組態資料包括:藉由該SRE將一恢復完成回應發送至該電力管理器。
- 如請求項1之裝置,其中在恢復該隔離本端記憶體中之該AC組件之該組態資料期間,該SRE經組態以將一信號發送至該AC組件,其中該信號導致該AC組件進入其中該AC組件僅可由該SRE存取之一狀態。
- 如請求項1之裝置,其中該AC組件係一第三方AC組件,其中該裝置進一步包括經組態以實施追蹤該保存操作或該恢復操作何時開始及結束之一保存恢復追蹤器的一介面工具集。
- 如請求項11之裝置,其中該介面工具集經組態以將一信號發送至該第三方AC組件,其中該信號導致該第三方AC組件進入其中該第三方AC組件僅可由該SRE及該介面工具集存取之一狀態,直至該SRE完成保存或恢復該第三方AC組件。
- 如請求項1之裝置,其中將該AC組件之該組態資料保存在該隔離本端記憶體中包括: 從該AC組件且藉由該SRE獲得需要被保存在該隔離本端記憶體中之該組態資料的大小; 藉由該SRE將該組態資料之該大小寫入該隔離本端記憶體中;及 循序從該AC組件讀取該組態資料的一部分,且將該部分寫入至該隔離本端記憶體,直至達到該組態資料的該大小。
- 如請求項1之裝置,其中從該隔離本端記憶體恢復該AC組件之該組態資料包括: 從該隔離本端記憶體且藉由該SRE獲得需要被恢復之該組態資料的大小;及 循序從該隔離本端記憶體讀取該組態資料的一部分,且將該部分寫入至該AC組件,直至達到該組態資料的該大小。
- 如請求項1之裝置,其中該SRE經組態以: 將待保存之該AC組件之該組態資料之一第一數位指紋保存在該隔離本端記憶體中, 獲得從該隔離本端記憶體恢復之該AC組件之該組態資料之一第二數位指紋,及 至少基於比較該第一數位指紋與該第二數位指紋來判定經儲存在該隔離本端記憶體中之該組態資料是否被篡改。
- 如請求項1之裝置,其中該隔離本端記憶體包括一動態隨機存取記憶體(DRAM),其中該SRE經組態以將該AC組件之該組態資料保存在該DRAM中,且其中該SRE使用一密碼方法來保護該組態資料不被篡改。
- 一種方法,其包括: 藉由一保存恢復引擎(SRE)接收來自一電力管理器之一保存請求及一存取控制(AC)組件之一識別; 藉由該SRE從一AC表獲得該AC組件之一開始位址; 藉由該SRE從該AC組件讀取該AC組件之組態資料; 藉由該SRE將該AC組件之該組態資料寫入隔離本端記憶體中;及 藉由該SRE將一保存完成回應發送至該電力管理器。
- 一或多種非暫時性儲存媒體,其或其等經編碼具有當由一運算裝置之一保存恢復引擎(SRE)執行時導致該SRE執行包括以下之操作的指令: 接收來自一電力管理器之一保存請求及一存取控制(AC)組件之一識別; 從一AC表獲得該AC組件之一開始位址; 從該AC組件讀取該AC組件之組態資料; 將該AC組件之該組態資料寫入隔離本端記憶體中;及 將一保存完成回應發送至該電力管理器。
- 一種方法,其包括: 藉由一保存恢復引擎(SRE)接收來自一電力管理器之一恢復請求及一存取控制(AC)組件之一識別; 藉由該SRE從一AC表獲得該AC組件之一開始位址; 藉由該SRE從隔離本端記憶體讀取該AC組件之組態資料;及 藉由該SRE將該組態資料寫入至該AC組件;及 藉由該SRE將一恢復完成回應發送至該電力管理器。
- 一或多種非暫時性儲存媒體,其或其等經編碼具有當由一運算裝置之一保存恢復引擎(SRE)執行時導致該SRE執行包括以下之操作的指令: 接收來自一電力管理器之一恢復請求及一存取控制(AC)組件之一識別; 從一AC表獲得該AC組件之一開始位址; 從隔離本端記憶體讀取該AC組件之組態資料;及 將該組態資料寫入至該AC組件;及 將一恢復完成回應發送至該電力管理器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
WOPCT/US22/20999 | 2022-03-18 | ||
PCT/US2022/020999 WO2023177408A1 (en) | 2022-03-18 | 2022-03-18 | Save-restore engine for access control |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202338563A true TW202338563A (zh) | 2023-10-01 |
Family
ID=81325262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111131478A TW202338563A (zh) | 2022-03-18 | 2022-08-22 | 用於存取控制之保存恢復引擎 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4268051A1 (zh) |
TW (1) | TW202338563A (zh) |
WO (1) | WO2023177408A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080307240A1 (en) * | 2007-06-08 | 2008-12-11 | Texas Instruments Incorporated | Power management electronic circuits, systems, and methods and processes of manufacture |
US8732379B2 (en) * | 2010-10-29 | 2014-05-20 | Texas Instruments Incorporated | Adapting legacy/third party IPs to advanced power management protocol |
WO2022055490A1 (en) * | 2020-09-11 | 2022-03-17 | Google Llc | Hardware-based save-and-restore controller |
-
2022
- 2022-03-18 WO PCT/US2022/020999 patent/WO2023177408A1/en unknown
- 2022-03-18 EP EP22717477.8A patent/EP4268051A1/en active Pending
- 2022-08-22 TW TW111131478A patent/TW202338563A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023177408A1 (en) | 2023-09-21 |
EP4268051A1 (en) | 2023-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107092495B (zh) | 平台固件铠装技术 | |
US10318765B2 (en) | Protecting critical data structures in an embedded hypervisor system | |
US9021476B1 (en) | Ensuring the privacy and integrity of a hypervisor | |
EP3690661A1 (en) | Flexible counter system for memory protection | |
US9678760B2 (en) | Memory card and storage system having authentication program and method for operating thereof | |
US10061718B2 (en) | Protecting secret state from memory attacks | |
US10303880B2 (en) | Security device having indirect access to external non-volatile memory | |
US11847225B2 (en) | Blocking access to firmware by units of system on chip | |
WO2020029254A1 (zh) | 一种SoC芯片及总线访问控制方法 | |
US20030172214A1 (en) | Data processing system with peripheral access protection and method therefor | |
EP3631667B1 (en) | Flash recovery mode | |
US20190065236A1 (en) | Ensuring the privacy and integrity of a hypervisor | |
US10089247B2 (en) | System and method for coupling a host device to secure and non-secure devices | |
CN111949372B (zh) | 一种虚拟机迁移方法、通用处理器及电子设备 | |
CN111143247A (zh) | 存储装置数据完整性保护方法及其控制器、片上系统 | |
CN116049825A (zh) | 管理基板管理控制器的存储器中的秘密的存储 | |
JPWO2020158377A1 (ja) | 電子制御装置、電子制御装置のセキュリティ検証方法 | |
CN111989677B (zh) | Nop雪橇防御 | |
WO2021066959A1 (en) | Protection of data in memory of an integrated circuit using a secret token | |
KR20180066601A (ko) | 메모리 시스템의 구동 방법 | |
TW202338563A (zh) | 用於存取控制之保存恢復引擎 | |
US7246213B2 (en) | Data address security device and method | |
US11644999B2 (en) | Protecting memory regions based on occurrence of an event | |
US20220391517A1 (en) | Ephemeral Data Storage | |
KR20170138412A (ko) | 장치의 시스템 온 칩의 보안 모듈로의 복수의 액세스를 관리하기 위한 디바이스 |