TW202333046A - 用於系統更新之動態資源判定技術 - Google Patents
用於系統更新之動態資源判定技術 Download PDFInfo
- Publication number
- TW202333046A TW202333046A TW111125370A TW111125370A TW202333046A TW 202333046 A TW202333046 A TW 202333046A TW 111125370 A TW111125370 A TW 111125370A TW 111125370 A TW111125370 A TW 111125370A TW 202333046 A TW202333046 A TW 202333046A
- Authority
- TW
- Taiwan
- Prior art keywords
- update
- firmware
- component
- system update
- time
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 67
- 238000004891 communication Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 5
- 230000010267 cellular communication Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000015654 memory Effects 0.000 description 42
- 238000003860 storage Methods 0.000 description 30
- 230000008569 process Effects 0.000 description 26
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 239000004065 semiconductor Substances 0.000 description 10
- 238000013461 design Methods 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 230000000977 initiatory effect Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3212—Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本文所揭露的技術包括得到用於管理由一電池供電之一運算系統的一軟體組件及一韌體組件中至少一個之更新的一系統更新組配;至少部分地基於該系統更新組配來判定使用該電池來更新該軟體組件及該韌體組件中該至少一個之一估計的系統更新時間;當該系統更新組配的資源需求被滿足並且該估計的系統更新時間小於或等於該電池的一最小剩餘使用時間時,更新該軟體組件及該韌體組件中的該至少一個;以及當該系統更新組配的該等資源需求不被滿足或該估計的系統更新時間大於該電池的該最小剩餘使用時間時,延後更新該軟體組件及該韌體組件中的該至少一個。
Description
交叉引用到相關的申請
本申請宣稱於2021年9月29日所提交之印度臨時專利申請第202141044107號的權益,該申請通過引用被整體併入到本文。
發明領域
本發明一般涉及更新在一運算系統中的軟體及/或韌體,並更具體地,涉及動態地判定用於更新在一運算系統中的該軟體及/或韌體所需的資源是否可用。
發明背景
更新具有有限電池容量之一行動運算系統的軟體及/或韌體至少受到以下因素的挑戰:a)有限的或沒有保證的剩餘電池壽命;b)缺乏資源保證導致系統資源使用效率低下;c)大多數的資源及電源管理功能在一作業系統(OS)先前環境統一可擴展韌體介面(UEFI)基本輸入/輸出(I/O)系統(BIOS)層級上並不提供;以及d)強制更新(例如,沒有明確使用者同意的更新)會破壞該使用者體驗。因此,大多數的行動運算系統都強制要求基於未發展完全之啟發式的剩餘電池需求(以避免一行動運算系統變磚或在該更新期間導致一中點故障),從而導致使用者體驗不佳及平台資源的使用效率低下。這可能會導致該終端使用者不容易接受系統更新,從而增加了該行動運算系統容易受到安全性威脅及性能、熱、及/或可靠性挫敗的該等機會。
依據本發明之一實施例,係特地提出一種方法,其包含有:得到一系統更新組配,該系統更新組配用於管理由一電池供電之一運算系統的一軟體組件及一韌體組件中之至少一者之更新;至少部分地基於該系統更新組配來判定使用該電池來更新該軟體組件及該韌體組件中之該至少一者之一估計的系統更新時間;以及當該系統更新組配的資源需求被滿足並且該估計的系統更新時間小於或等於該電池的一最小剩餘使用時間時,更新該軟體組件及該韌體組件中之該至少一者。
較佳實施例之詳細說明
本文所描述的技術提供了一種用於動態資源判定之方法及系統,用於有效更新由一電池所供電之一運算系統(例如,一行動運算系統)的軟體及韌體中的一或多個。在一實施例中,這包括只有在確保所需資源可用而且該系統更新被保證之後才啟動一系統更新,否則禁止該使用者或系統管理員(admin)接受及執行該系統更新。然後該系統更新被延後直到該所需的資源標準被滿足為止。本文所描述的該技術包括一種在執行諸如系統更新之類的關鍵任務時動態地保證那些所需資源的可用性以提高服務品質(QoS)的方法。
在下面的詳細描述中,參考了構成本說明書一部分的該等附圖,其中通過說明的方式圖示出可被實現的具體實例。這些實例被進行了足夠詳細的描述以使得本領域的習知技藝者能夠實踐該技術主題,並且應被理解的是,可以使用其他的實例並且可以進行邏輯、機械、電氣及/或其他的改變而不背離本發明該技術主題的該範圍。因此,以下的詳細描述被提供來描述實例實現方式並不被視為限制在本發明中所描述該技術主題的該範圍。來自以下描述之不同方面的某些特徵可被組合以形成以下討論之該技術主題的另外新方面。
如在本文中所使用的,連接參考(例如,附接、耦合、連接、以及接合)可包括在由該連接參考所參考到該等元件之間的中間構件及/或在那些元件之間的相對運動,除非另有說明。因此,連接參考不一定推斷兩個元素直接連接及/或彼此具有固定關係。如在本文中所使用的,陳述任何部分與另一部分「接觸」被定義為意味著在該等兩個部分之間沒有中間部分。
除非另有明確說明,否則在本文中所使用諸如「第一」、「第二」、「第三」、等等的描述用語並不以任何方式暗示或以其他方式指出優先等級、實體順序、在一列表中的佈置、及/或排序的任何含義,而僅被使用作為標記及/或任意名稱來區分元件以便於理解該等所揭露的實例。在一些實例中,該描述用語「第一」可被使用來在指在本詳細說明中的一元件,而在一請求項中可能使用不同的描述用語諸如「第二」或「第三」來指出該相同的元件。在這樣的情況下,應被理解的是,這樣的描述用語僅被使用來清楚地識別可能,例如,以其他方式共享一相同名稱的那些元件。如在本文中所使用的,「近似」及「大約」係指由於製造公差及/或其他實際的缺陷而可能不準確的大小。
如在本文中所使用的,「處理器電路」或「硬體資源」被定義為包括(i)一或多個被建構來執行特定操作之專用電路並且包括有一或多個基於半導體的邏輯裝置(例如,由一或多個電晶體所實現的電氣硬體)、及/或(ii)一或多個通用基於半導體的電路,該電路用指令被規劃以執行特定操作並包括有一或多個基於半導體的邏輯裝置(例如,由一或多個電晶體所實現的電氣硬體)。處理器電路的實例包括經規劃的微處理器、可以實例化指令的現場可規劃閘陣列(FPGA)、中央處理器單元(CPU)、圖形處理器單元(GPU)、數位信號處理器(DSP)、XPU、或微控制器及積體電路諸如特定應用積體電路(ASIC)。例如,一XPU的實現可由包括有多種類型的處理器電路(例如,一或多個FPGA、一或多個CPU、一或多個GPU、一或多個DSP、等等,及/或其之一組合)的一異構運算系統以及可把運算任務分配給在該等多種類型處理電路中最適合執行該(等)運算任務之任何一(或多)個的應用程式規劃介面(API)。
如在本文中所使用的,一運算系統可以是,例如,一伺服器、一個人電腦、一工作站、一自我學習機器(例如,一神經網路)、一行動裝置(例如,一手機、一智慧型手機、一平板電腦(諸如iPad
TM))、一個人數位助理(PDA)、一網際網路裝置、一DVD播放器、一CD播放器、一數位視訊錄影機、一藍光播放器、一遊戲機、一個人視訊錄影機、一機上盒、一頭戴式耳機(例如,一擴增實境(AR)頭戴式耳機、一虛擬實境(VR)頭戴式耳機、等等)或其他可穿戴式裝置、或任何其他類型的運算裝置。
在許多的行動運算系統(包括有那些通常從一電池取得電源來運作的運算系統)中,一「現場」韌體及/或OS更新通常係被需要的,而且一良好的使用者體驗來確保一穩健的系統更新係一運算系統之平台穩定性的一指標。一良好使用者體驗的一個關鍵性能指標(KPI)係以最佳化的系統資源使用來保證一成功的系統更新。
以該等現代行動運算系統來說,電源最佳化僅限於作業系統電源管理(OSPM)並且該作業系統先前運算環境缺乏在諸如一系統更新之類的一任務期間組配該行動運算系統之該等主要電力消耗者的方法。在系統更新處理中的該可預測性以及確保成功系統更新的一保證資源預留都缺乏。由於缺乏此類知識,一行動運算系統可能會在完成一系統更新之前耗盡所需資源,這可能導致行一動運算系統損壞(例如,由於該電池低於用於一系統更新的一最低臨界值準位,一般且粗略地被設置為大約50%的剩餘電池壽命)。
因此,當前的系統更新演進過程缺乏判定用於一成功系統更新所需要資源的可預測性。此外,當在執行諸如系統更新之類的關鍵任務時確保QoS而不會導致行動運算系統可能無法運行,分析該系統資源可持續性的一結果可能要禁止該使用者接受一系統更新,但對此沒有已知的機制。
在本文中所描述的該技術包括在一作業系統(OS)或一基本輸入/輸出系統(BIOS)中的至少一個附加組件,其在本文中被稱為一預測資源評估程式,以基於可用系統資源來執行該預測並至少部分地基於一更新程式元資料檔案(例如,被包括作為一更新程式套件的一部分)來計算該估計的系統更新時間。如果該估計的系統更新時間大於該電池在當前作業模式下該最小的剩餘使用時間(在本文中被稱為B_min),則該系統更新過程會被延後到一以後的時間。此過程可在啟動該系統更新過程之前,確保成功執行一系統更新所需資源(其包括有電池壽命)的一保證準位係可用的。
此外,本創新提出了一種新的作業模式,被稱為最小電力更新,以在一動態電源及熱管理功能尚不可用的一模式下執行一硬體裝置的初始化時,確保最小的系統電力使用。此方法包括由該系統更新過程考慮用於系統資源的一最大臨界值,諸如在該當前作業模式下該電池的一剩餘使用時間(在本文被稱為B_max)。根據一種實現方式,只有當該估計的系統更新時間係在B_min與B_max之間時才執行一系統更新。在一實施例中,至少部分地基於一使用者/管理員組配,運算硬體之選定的智慧財產權(IP)區塊可被設置為該最小電力更新電源狀態。
本方法確保一啟動的系統更新永遠不會導致部分的系統更新或一無法運行的行動運算系統,也不會浪費系統資源(例如,網路頻寬、電池使用、等等)。
圖1根據一些實施例係一更新佈置100的一示意圖。更新程式套件104可以是從一系統更新儲存庫106(例如,更新程式套件的一資料庫),本地地或遠端地,所獲得的一檔案。在一些實施例中,更新程式套件104的更新程式元資料檔案102包含執行一更新所需之系統重啟次數的一指示,從而允許一預測資源評估程式204(如以下所述的)計算一估計的更新時間,包括有重新啟動該系統該所需的時間。在其他的實施例中,更新程式元資料檔案102可以包括用於正被更新之韌體及/或軟體之一或多個先前版本的更新時間資訊。在另一個實施例中,更新時間資訊可經由把一估計的時間與一實際的時間進行比較之已知眾包技術來被更新及取得,以更新一類似的運算系統組配。例如,當從v0.2軟體更新到v0.5軟體時,該運算系統可能需要七分鐘才能在十億赫茲(GHz)單一處理核心上執行更新,但從v0.4軟體更新到v0.5軟體時可能只需兩分鐘。此資訊允許該預測資源評估程式204在知道安裝在該系統上該軟體當前版本及在該系統上該正被升級較新版本兩者的情況下計算該預測的更新時間。
在一些實施例中,更新程式元資料檔案102包含有關於細粒度的更新階段及/或時間的資訊,從而能夠執行多階段/分段更新。例如,如果更新程式套件104包括用於八個不同智慧財產權(IP)區塊的更新(其中一IP區塊係在一行動運算系統中的一硬體資源),該更新可能需要五分鐘來更新三個IP區塊、12分鐘來更新五個IP區塊、以及20分鐘來更新所有的八個IP區塊。對於低電池壽命情況及/或預測,該預測資源評估程式204可以使用此資訊來執行一種「部分」升級而不用取消該整個系統更新。例如,在給定該行動運算系統該當前電池壽命狀況的情況下,可以僅對三個IP區塊執行一系統更新,並且一旦該行動運算系統的該電池被重新充電,就可以執行該升級的該剩下部分。
更新程式套件104可以包括OS套件107,其包括有用於一或多個驅動程式及應用程式(app)的代碼,以及韌體(FW)套件108。FW套件108可以包括用於零或多個裝置FW 110及零或多個系統FW 112(BIOS)的代碼。
圖2根據一些實施例係一運算系統200之部分的一示意圖。在一實施例中,運算系統200係依賴一電池供電的一行動運算系統。本文所揭露的該技術包括:1)用於一最小電力更新模式222及一通知能力之組配的一更新程式使用者介面(UI)管理程式202;2)一預測資源評估程式204;3) 用於該最小電力更新模式的一資源預留管理程式206;4)一系統更新管理程式208;5)一系統更新226;以及6)韌體214及硬體資源216分別的重新啟動作業210、212,到一最小電力更新模式(以執行硬體資源216的系統更新226)並然後轉換到一完全作業模式224。
實施例提出了在該系統更新過程中的一種動態方法論,其中一或多個基於OS的組件在啟動一系統更新226之前分析硬體資源216的該可用性及準位,並且僅當硬體資源的該可用性及準位足夠時才進行該系統更新,否則該系統更新將被延後直到該資源條件被滿足為止。這為基於動態獲得的運算系統資源知識來觸發一系統更新提供了靈活性,而不是盲目地啟動該系統更新(如果沒有足夠的資源,其可能導致一運算系統無法運行,從而導致一較差的使用者體驗)。
在一種實現方式中,支援這種動態能力的該等組件被整合到OS 201中。在另一種實現方式中,支援這種動態能力的該等組件被整合到該BIOS(例如,FW 214)中。
更新程式UI管理程式202從系統更新儲存庫106獲得包含有更新程式元資料檔案102的更新程式套件104。更新程式元資料檔案102包含元資料,該元資料包括有關於具有或不具有眾包更新時間資訊的一FW或系統軟體更新的提示。預測資源評估程式204藉由了解該系統更新的該類型及執行該系統更新(例如,韌體更新、OS更新、工作頻率、預先啟動單一處理核心還是多處理核心環境、蜂巢式通訊、WiFi通訊、藍牙®通訊、其他網路通訊、等等)所需的該等資源來判定用於完成該系統更新之該估計的持續時間。資源預留管理程式206在藉由把那些系統資源組配為一最小可作業電力(其中該運算系統的該剩餘電力準位對一系統更新的該成功性能沒有影響)來最佳化系統資源之後,藉由創建最大及最小資源使用邊界來定義一系統資源使用模型。如果一預測資源使用限制係在資源邊界內(即,在一最大與最小剩餘電池壽命之間),則系統更新管理程式208指示韌體214的韌體更新管理程式215執行一韌體更新226,否則該終端使用者及/或系統更新儲存庫106被通知該系統可用的資源不足以啟動該韌體更新。韌體214包含重置220、最小電力更新模式222、完全作業模式224、以及啟動到OS 230。
系統更新管理程式208藉由把韌體214重新啟動到最小電力更新模式(經由重置220)來開始210該最小電力更新。系統更新管理程式208還在硬體資源216中把一運行時更新IP狀態設置212為最小電力更新模式。最小電力更新模式222在最小電力更新模式中執行系統更新226。韌體214經由操作228把硬體資源216恢復到完全作業模式。分析代理218計算最小電力更新資源需求並把該資訊發送到資源預留管理程式206。在一種實現方式中,最小電力更新資源需求包括需要處於一活動D0狀態的一IP區塊列表以完成使用者功能(諸如媒體播放、全球定位系統(GPS)或電話應用程式(例如,對於一電話應用程式,該運算系統可能需要保留長期演進(LTE)能力、一顯示器、一麥克風、音訊、等等))。分析代理218可以提供來自平台更新遙測技術的分析見解。在一個實施例中包括該預測資源評估程式204對於執行該更新的該實際時間能夠多好地預測該估計更新時間的該時間。基於該分析代理218的洞察力,資源預留管理程式206以那些IP區塊、記憶體及/或互連電路需要處於一特定電力狀態供該預啟動OS在一運算系統平台期間強制執行來更新資訊系統更新表(ISUT 232)。在一實施例中,該資源預留管理程式206在ISUT 232中儲存該運算系統之選定硬體IP區塊217的識別並至少部分地基於一使用者或管理員組配把該等IP區塊設置為最小電力更新模式(例如,最小電力更新模式)。
在一個實施例中,本技術可以分三個階段來實現。在第一階段中,該估計的系統更新資源可用性至少部分地基於系統更新的該類型及所需資源(例如韌體更新、OS更新、工作頻率、預先啟動單一核心還是多核心環境、等等)被預測。在第二階段中,該資源使用最大及最小邊界(例如,執行該系統更新所需的最大剩餘電池壽命及最小剩餘電池壽命)被判定,在最佳電力狀態中管理該等可用及所需的資源(例如,一電話應用程式要求需要處於一活動狀態之資源的一子集,而該運算系統的其餘部分可以處於一省電狀態)。在第三階段中,一系統更新使用者通訊及通知方法論被決定,其僅在如果一預測資源使用限制係在資源邊界內(例如,在最小剩餘電池壽命與最大值之間)才允許一系統更新被啟動。否則,將通知該終端使用者可用的系統資源可能不足以啟動該系統更新並且該系統更新被延後直到一稍後的時間。
在第一階段中,在判定是否要啟動一系統更新之前判定系統更新資源的該可用性。在一種實現方式中,一系統更新的執行係藉由實現一狀態機來完成該更新過程。首先,更新程式UI管理程式202下載該系統更新。在此一步驟中,更新程式UI管理程式202從系統更新儲存庫 106下載更新程式套件104,其中更新程式元資料檔案102資訊進一步有助於針對來自過去更新之給定可用資源及/或來自其他類似運算系統之眾包資訊來計算該估計的系統更新時間(例如,根據預測應用程式安裝系統更新的1%所花費的時間)。在一實施例中,更新元資料檔案102包括有關基於在一單一處理核心運算環境中一特定頻率之該系統更新時間的資訊(由該OEM在發送該更新程式套件104時來提供)。系統更新儲存庫106可以由一原始設備製造商(OEM)或OS供應商來提供。在此步驟中所使用的系統資源可能包括網路頻寬及電池使用。因此,在計算用於下載該系統更新之一精確的估計時間中,這些資源需要被包括。
接下來,判定基於網路頻寬下載該系統更新之該估計的時間。在一實施例中,該更新程式套件104大小(使用一應用程式介面(API)獲得)及該運算系統之該當前下載頻寬被使用來計算該估計的下載時間。在一種實現方式中,該估計的更新程式套件下載時間(以秒為單位)=更新程式套件大小(以百萬位元組(MB)為單位)/網路頻寬(以MB/秒為單位)。該估計的更新程式套件下載時間在下面被稱為X。
在某些運算系統(諸如一膝上型個人電腦(PC))上,該電池係一重要的子系統,當該系統處於電池模式時,運行的任何任務都會影響電池壽命。圖3根據一些實施例係在一常規作業模式與一系統更新模式之間一電池容量視圖300的一示意圖。通常,用於履行一系統更新的一臨界值302被大約設置為剩餘電池壽命的50%。通常,該電池系統具有其他的臨界值,諸如一OEM設計用於警告(W)的臨界值304及用於設計安全性之低準位(L)的臨界值306。因此,用於正常(常規)操作的該最大電池容量臨界值為=(電池設計的最大容量–設計安全餘裕)。該用於正常操作的臨界值以下被稱為N。
對於一系統更新,該系統在電池模式下運行時有一額外的臨界值,被稱為一用於系統更新的臨界值 =(電池設計的最大容量 – 設計安全餘裕) x 50%。該系統更新臨界值以下被稱為T。
在一些運算系統中的電池管理策略由一與先進組態與電源介面(ACPI)兼容的OS來管理。一ACPI兼容的電池裝置實現了在BIOS ACPI機器語言(AML)代碼中所實現的一控制方法電池介面。該控制方法電池報告出該當前的電池消耗率。該當前的電池消耗率在下面被稱為R。因此,以下計算把用於下載系統更新的該最小電池可用性估計判定為D:D(以秒為單位)=(N – (R * X))/R。
例如,假設一系統更新程式套件大小為十億個位元組(GB),該運算系統的網路頻寬為每秒10個百萬位元組(Mbps),因此「X」會是100秒。假設在該下載過程中該當前的電池消耗R為每小時5000毫安(mAh)而該OEM電池設計容量(N)為35,000 mAh。因此,用於一成功下載系統更新的該預測系統電池最小可用時間為:D(以秒為單位)= ((35,000 – (5,000 * 0.0277778)) / 5,000) * 60 * 60 = ~25,100 秒(~6.97 小時)。
如在圖3中所示,用於系統更新310之一估計的時間必須在該電池的一最小剩餘使用時間(例如,用於更新的最小範圍)B_min 312與用於更新的最大範圍B_max 308之間。如果用於系統更新310之該估計的時間結果為該電池低於用於更新的最小範圍(B_min) 312,則該系統更新的啟動會被延後並通知該使用者。
接下來,系統更新管理程式208基於該系統更新的類型(例如,一韌體更新及/或OS更新,並且可選擇地包括有描述用於啟動該更新之該底層運算環境的資訊,諸如一多執行緒環境或一單一執行緒環境、等等)安裝更新程式套件104之該下載的二進位檔案。
在一個實施例中,一資訊系統更新表(ISUT)232可以由資源預留管理程式206來創建及維護以儲存與該系統更新決策過程有關的資訊。該ISUT 232至少部分地基於來自分析代理218的洞察把來自該OS 201的學習反饋資訊儲存到該BIOS。在一種實現方式中,ISUT 232被儲存在可由該資源預留管理程式存取的記憶體中。一ISUT資料結構的一實例如以下所示。
Typedef struct {
UINT8 FW_Update : 1; // 設置來告知FW更新可用
UINT8 OS_Update : 1; // 設置來告知OS更新可用
UINT 8 Multi_cores_enable : 1; // 在多執行緒環境中啟動更新
UINT 8 core_count : 5; // 用於啟動更新之可用最大核心數
} INFORMATIVE_TASK;
Typedef struct {
UINT32 Signature; // 有效簽名為 “FEEDC0DE”
INFORMATIVE_TASK task; // 在系統更新過程之前定義資訊任務
}INFORMATIVE_SYSTEM_UPDATE_TABLE
在一實施例中,可基於在一受信任執行環境(TEE)中的一平台所有權密鑰對該ISUT進行數位簽名,以便韌體214可以確保該ISUT係一經授權的更新,而不是惡意軟體所創建之一畸形的ISUT且發起一潛在針對該運算系統的阻斷服務攻擊(例如,聲稱有足夠的電源但確是一在幾乎耗盡電源的運算系統上調用該更新)。
在一第一次啟動時,該韌體214(例如,一BIOS)把INFORMATIVE_OPTIMIZATION_TABLE結構分配到即時時脈(RTC)記憶體(在圖2中未被示出)中並把該表簽名初始化為「FEEDC0DE」。在連續的啟動階段,該BIOS會讀取此記憶體區域以檢查該簽名是否有效。在驗證時,該BIOS檢查是否有任何資訊條目已經藉由讀取ISUT 232的一「FW_Update」資料變數來被做出以了解該系統更新的該類型。基於該資料任務位元定義(如在ISUT 232中所示),可進行一估計以判定成功地完成一系統更新安裝所需要之該最小電池資源可用性。如在該實例ISUT 232中所示,如果在該ISUT資料結構中該FW_Update位元被設置,這意味著「把系統資源使用保持在B_Min準位並觸發系統更新」。
在一實施例中,預測資源評估程式204可以與各種OS 201服務進行通訊以檢索資訊,諸如操作CPU頻率及該可用核心數,以計算1%更新之該估計的系統更新時間。此資訊有用於計算用於安裝一系統更新所需之該電池的該最小剩餘使用時間,以下被稱為I。因此, I(以秒為單位)= ((100 – i) * x) / C;其中:i = 待完成系統更新的百分比,x= 根據預測資源評估程式204安裝系統更新的1% 所用的時間。用於安裝更新的該可用核心數(C) = (ISUT.OS_Update) ?( (ISUT.Multi_cores_enable ) ?ISUT.core_count : 1) : 1。
用於一次成功系統更新所需的該電池最小使用時間係下載該更新及安裝該系統更新該時間的該總時間:估計的系統更新時間(P)= D + I。
在第二階段中,判定系統資源使用邊界。一ACPI兼容的系統BIOS具有控制方法來檢索電池使用資訊。在一典型的場景中,一ACPI控制方法會報告在該當前工作模式下用於計算該最小電池壽命的該當前消耗率(R)。如果電池剩餘容量(B)大於或等於用於系統更新的臨界值(T),則此公式被使用來計算該最小的邊界:該電池的最小剩餘使用時間 (B_min) = ((B – T) / 當前電池消耗率(R)。
在一實施例中,可以把一內部電力校正器(IPC)因子計算為特定於該所考慮運算系統在該完全作業模式與該最小電力更新模式之間該電池消耗節省的一比率。
該IPC比率可被套用於計算用於更新的該最大範圍308:剩餘電池壽命最大臨界值 (B_max) = B_min * IPC。
例如,如果電池剩餘容量(B)為25,000 mAh、當前電池消耗率(R)為 7,500 mAh、以及該OEM設計電池臨界值(T)為17,500 mAh。那麼用於一系統更新的B_min及B_max將分別約為60分鐘及214分鐘。
在第三階段中,預測資源評估程式204使用在第一及第二階段中所收集的資訊來決定要執行該系統更新還是要把該系統更新延後到該等所需資源可用時的一稍後時間。表1說明了因素及可能做出的決定。
表1
系統環境 | 狀況 | 邏輯 | 決定 |
電池供電系統 | 電池臨界值的最小剩餘使用時間小於用於系統更新的臨界值。 | B_min < T | 延後該系統更新到稍後時間,並通知使用者連接充電器。 |
估計的更新程式套件下載時間小於用於系統更新的臨界值。 | D < T | 延後該系統更新到稍後時間,並通知使用者連接充電器。 | |
估計的系統更新時間大於該電池的最小剩餘使用時間且小於最大臨界值。 | B_max> P > B_min | 切換到負對比顯示器極性用於系統更新通知並觸發系統更新。在系統更新成功後,恢復到正常的顯示器極性。 | |
估計的系統更新時間大於最大臨界值及該電池的最小剩餘時間。 | P > B_max> B_min | 延後該系統更新到稍後時間,並通知使用者連接充電器。 | |
交流電源供電系統 | ISUT表識別出系統更新 | ISUT.FW_Update || ISUT.OS_Update | 把系統資源使用率保持在 B_Min準位並觸發系統更新 |
電池準位在低與警告臨界值之間。 | B_Min < L < W | 切換到負對比極性用於系統更新通知並觸發系統更新。 |
圖4根據一些實施例圖示出一系統更新組配流程400。一旦運算系統200被啟動,可以在運行應用程式之前定義及/或選擇一系統更新組配240。在一實施例中,系統更新組配240包含與在該運算系統上成功驗證及安裝更新有關資訊的一快照。在一實例中,該系統更新組配可以是由該運算系統供應商的供應商(例如,OEM)為使用者所選擇的一預設組配。這可以由更新程式UI管理程式202使用一UI儀表板以有效的使用者憑證來被覆蓋。如在本文中所使用的,更新程式元資料檔案102包括由該系統更新儲存庫106基於該更新程式套件104的該等內容伴隨任何眾包資訊所提供的資訊。
在一實施例中,流程400的該處理可至少部分地由OS 201及韌體214來執行。在方塊402,OS 201判定是否支援一動態系統更新能力(如在本文中所描述的)。如果不支援動態系統更新,則系統更新組配處理結束。如果支援動態系統更新能力,則在方塊404,OS 201的更新程式UI管理程式202判定是否允許一系統更新組配240的UI客製化。如果不允許客製化,則系統更新組配處理結束。在一實施例中,客製化可以包括為一運算系統200的一使用者提供選擇及/或指定與該系統更新之組配相關之一或多個設置的能力,諸如不讓當前的GPS應用程式或電話應用程式受到干擾因為使用者正在使用導航功能或正在打電話
。如果允許客製化,則在方塊406,更新程式UI管理程式202判定該使用者的憑證是否有效。也就是說,該運算系統判定嘗試改變該系統更新組配240的該使用者是否被授權這樣做。如果該使用者未經授權,則系統更新組配處理結束。如果該使用者被授權,則在方塊408,更新程式UI管理程式202從該使用者接收一或多個設置及/或選擇以改變系統更新組配240。在一實施例中,這可以包括向該使用者呈現該等當前系統更新組配參數的一快照並且接受輸入選擇以更新一或多個系統更新組配參數。在方塊410,更新程式UI管理程式202判定該經更新的系統更新組配240是否有效。如果該經更新的系統更新組配240無效,則系統更新組配處理結束。如果該經更新的系統更新組配240有效,則該經更新的系統更新組配在方塊412被套用到該運算系統。任何後續系統更新(例如,OS 201及/或韌體214的系統更新)將使用該經更新的系統組配240。
圖5A及5B根據一些實施例圖示出一系統更新運行時作業流程500。如果OS 201在方塊502檢測到一新的更新程式套件104可從該系統更新儲存庫106得到,則在方塊504更新程式UI管理程式202得到該系統更新組配。在一實施例中,該系統更新組配240可以由該運算系統200的平台受信任執行環境(TEE)、由該OS 201或在更新UI管理程式202的一快取內被管理。
如果沒有新的更新程式套件104可用,則系統更新運行時作業處理結束。在方塊506,預測資源評估程式204判定執行該系統更新所需的該等運算系統資源。資源可以包括電池電量、通訊能力(例如,全球定位系統(GPS)、蜂巢式通訊、WiFi)、音訊或視訊回放、相機、顯示器、等等)。在方塊508,預測資源評估程式204判定硬體資源216之一或多個智慧財產權(IP)區塊217與執行該系統更新所需之該等資源的相依關係。在一實施例中,該等相依關係被表示為一相依關係圖。在一實施例中,該相依關係圖指出在該系統更新期間那些IP區塊必須是活動的以及哪些IP區塊必須靜止。在方塊510,預測資源評估程式204判定一估計的系統更新時間(例如,P,下載該更新程式套件(D)及執行該系統更新(I)所需的該時間)。在一實施例中,該估計的系統更新時間係使用來自更新程式元資料檔案102之該相依關係圖及元資料中的一或多個來判定的。在一個實例中,元資料可以包括:
元資料結構{
更新版本資訊 V;
平均更新時間歷史H;
版本V的群眾來源更新時間 T;
}
在方塊512,預測資源評估程式204判定是否滿足該系統更新組配的該等要求。在一實施例中,這可藉由把該估計的系統更新時間(P)與該電池的該最小剩餘使用時間(B_min)進行比較來實現。例如,預測資源評估程式204可以判定該估計的系統更新時間是否大於B_min。如果不滿足該等系統更新組配要求(包括有所需的剩餘電池壽命及其他所需的資源),則在方塊514該系統更新的啟動被延後並且系統更新運行時作業處理結束。否則,該系統更新可以經由連接器5B進行到圖5B的方塊520。在方塊520,OS 201的資源預留管理程式206分配及管理執行系該統更新所需的資源(例如,在一指定頻率處運行所需的核心、預留所需的任何記憶體頻寬、確保IP區塊處於指定的電源/時脈狀態、等等)。在一實施例中,該分配及管理的執行係至少部分地基於該相依關係圖及該所需的剩餘電池時間(例如,估計的系統更新時間P) (不違反該B_min臨界值)。
在方塊522,系統更新管理程式208啟動該系統更新(例如,經由圖2的操作210)。在啟動該系統更新之後,系統更新管理程式208在方塊524更新ISUT 232並更新更新程式元資料檔案102。在一實施例中,由系統更新管理程式208對ISUT 232的更新可以包括基於該等使用者限制(例如,保持本地音訊播放,其中除了音訊IP區塊及相關聯的記憶體及揚聲器之外的資源在一OS先前運算環境中被設置為一電力閘控狀態)來指定該運算系統的該等作業狀態。在另一個實施例中,系統更新管理程式208以該平台快照在B_Min、B_Max、當前更新時間、資源狀態、等等方面更新該更新程式元資料檔案102,作為保存用於未來更新的記錄。作為該系統更新該啟動的一部分,韌體214被設置為一最小電力更新模式222。在方塊526,系統更新管理程式208指示(經由操作212)至少部分地基於ISUT 232、更新程式元資料檔案102、以及該系統更新組配來執行硬體資源216初始化。在方塊528,系統更新管理程式208更新在該更新程式元資料檔案102中的該系統更新元資料。在一實施例中,這包括B_Min、B_Max、當前更新時間、資源狀態、等等。在方塊530,系統更新管理程式208檢驗該系統更新的成功履行,並可選擇地,保存該經更新的系統更新組配。在一實施例中,這可以包括分析代理218從在硬體資源216中的該等IP區塊217檢索該電力及性能計數器,以向資源預留管理程式206提供用於未來資源預留的洞察力。
該經更新的系統組配240的儲存或保存取決於一實現方式。實例包括把該系統更新組配儲存在具有或不具有TEE保護的非依電性記憶體快速(NVMe)記憶體裝置、串列週邊介面(SPI) NOR快閃記憶體、一OS磁碟分區、等等中。在一實施例中,對未來系統更新有用的元資料可以包括當前升級的系統軟體/韌體版本、大小、校驗和、數位簽名、更新時間戳、驗證結果、最小電力模式、資源預留表、ISUT 232、以及更新程式元資料檔案102。根據該實現方式選擇,此資訊可能被本地地儲存,也可能被儲存在雲端中。
在方塊532,系統更新管理程式208把該經更新的系統更新元資料發送到系統更新儲存庫106(經由資源預留管理程式206及/或更新程式UI管理程式202)以供未來的系統更新(韌體及/或軟體)使用。
圖6根據一些實施例係系統更新處理600的一流程圖。在方塊602,OS 201的更新程式UI管理程式202得到一系統更新組配240。在一實施例中,該系統更新組配被包括在更新程式套件104的更新程式元資料檔案102中。在一實施例中,系統更新組配240係由該OS 201來儲存。在一個實施例中,該系統更新組配240指定用於更新零或多個軟體組件(例如,在一OS套件107中OS 201的至少一部分)及/或零或多個韌體(FW)組件(例如,在FW套件108中的系統FW 112 (BIOS)及裝置FW 110) 所需的資源。將被更新之軟體組件及韌體組件的該總數係一或多個(例如,任何數量的軟體組件及任何數量的軟體組件,只要該總數至少為一個即可)。在方塊604,OS 201的預測資源評估程式204至少部分地基於該系統更新組配來判定使用一電池來更新軟體組件的該等零或多個及零個或多個韌體組件之一估計的系統更新時間(例如,P)。在方塊606,預測資源評估程式204判定該系統更新組配的資源需求是否被滿足並且該估計的系統更新時間(例如,P)是否小於或等於該電池的該最小剩餘使用時間(例如,B_min)。如果是的話,則在方塊608,OS 201的系統更新管理程式208執行該等零或多個軟體組件及該等零或多個韌體組件的該更新。如果否的話,則在方塊610,系統更新管理程式208把該等零或多個軟體組件及該等零或多個韌體組件的更新延後到一稍後的時間。
雖然在圖1-6中說明了實現本文所描述之該技術的一實例方式,但在圖1-6中所示出的元件、過程、及/或裝置中的一或多個可被組合、分割、重新佈置、省略、移除,及/或以任何其他方式被實現。此外,該等實例硬體資源216可以由硬體、軟體、韌體、及/或硬體、軟體及/或韌體的任何組合來被實現。因此,例如,該等硬體資源216的任一可以由處理器電路、類比電路、數位電路、邏輯電路、可規劃處理器、可規劃微控制器、圖形處理單元(GPU)、數位信號處理器(DSP)、特定應用積體電路(ASIC)、可規劃邏輯裝置(PLD)、及/或現場可規劃邏輯裝置(FPLD)諸如現場可規劃閘陣列(FPGA)來實現。當閱讀本專利之該等設備或系統請求項之任一以涵蓋一純粹軟體及/或韌體實現方式時,該等實例硬體資源中的至少一個在本文被明確地定義為包括非暫時性電腦可讀取儲存裝置或儲存碟諸如一記憶體、一數位多功能碟(DVD)、一光碟(CD)、一藍光光碟、等等,其包括有該軟體及/或韌體。更進一步的是,圖2的該實例電路可以包括一或多個元件、過程、及/或裝置作為在圖2中所示那些的補充或替代,及/或可以包括該等所示出元件、過程、及/或裝置之任一或所有中的一個以上。
代表用於實現圖2該運算系統200之實例硬體邏輯電路、機器可讀指令、硬體實現的狀態機、及/或其任何組合的流程圖在圖4-6中被示出。該等機器可讀指令可以是由處理器電路所執行之一可執行程式的一或多個可執行程式或部分,該處理器電路係諸如在以下結合圖7所討論該實例處理器平台700中所示的該處理器電路712、及/或以下結合圖8及/或9所討論的該實例處理器電路。該程式可被體現成為儲存在一或多個諸如一CD、一軟碟、一硬碟(HDD)、一DVD、一藍光光碟、一依電性記憶體(例如,任何類型的隨機存取記憶體(RAM)、等等)、或一非依電性記憶體(例如,快閃記憶體、一HDD、等等)之類的非暫時性電腦可讀取儲存媒體上的軟體中,其與位於一或多個硬體裝置中的處理器電路相關聯,但其整個程式及/或其部分可替代地由該處理器電路之外的一或多個硬體裝置來執行及/或被體現在韌體或專用硬體中。該有形的機器可讀指令可以被散佈在多個硬體裝置上及/或由兩個或更多個硬體裝置(例如,一伺服器及一客戶端硬體裝置)來執行。例如,該客戶端硬體裝置可以由一末端客戶端硬體裝置(例如,與一使用者相關聯的硬體裝置)或一中間客戶端硬體裝置(例如,可便於在一伺服器與一末端客戶端硬體裝置之間通訊的一無線接取網路(RAN)閘道)來實現。類似地,該非暫時性電腦可讀取儲存媒體可以包括位於一或多個硬體裝置中的一或多個媒體。此外,儘管參考了在圖4-6中所示該等流程圖描述了該實例程式,但是可以替代地使用實現該實例運算系統200的許多其他的方法。例如,該等方塊的該執行順序可被改變,及/或在該等所描述方塊中的一些可被改變、移除、或組合。附加地或替代地,該等方塊的任一或全部可由一或多個硬體電路(例如,處理器電路、分立及/或整合式的類比及/或數位電路、一FPGA、一ASIC、一比較器、一運算放大器(op-amp)、一邏輯電路、等等)來實現,該等一或多個硬體電路被建構成在不執行軟體或韌體的情況下執行該對應的操作。該處理器電路可被分佈在不同的網路位置及/或本地於在一單一機器中的一或多個硬體裝置(例如,一單一核心處理器(例如,一單核心中央處理器單元(CPU))、一多核心處理器(例如,一多核心CPU)、等等)中、散佈遍及一伺服器機架之多台伺服器的多個處理器中、散佈遍及一或多個伺服器機架的多個處理器中、位於同一封裝(例如,相同的積體電路(IC)封裝或在兩個或更多個獨立外殼中、等等)中的一CPU及/或一FPGA中。
在本文中所描述的該等機器可讀指令可以以一壓縮格式、一加密格式、一分段格式、一經編譯的格式、一可執行的格式、一打包格式、等等中的一或多種來被儲存。如在本文中所描述的機器可讀指令可被儲存作為可被使用來創建、製造、及/或產生機器可執行指令的資料或一資料結構(例如,作為指令、代碼、代碼之表示、等等的部分)。例如,該等機器可讀指令可以被分段並被儲存在一或多個儲存裝置及/或運算裝置(例如,伺服器)上,該等儲存裝置及/或運算裝置係位於一網路或網路集合之相同或不同位置處(例如,在雲端中,在邊緣裝置中、等等)。該等機器可讀指令可能需要安裝、修改、改編、更新、組合、補充、組配、解密、解壓縮、打開、分發、重新分配、編譯、等等中的一或多種,以使其直接可讀、可解譯、及/或可由一運算裝置及/或其他機器執行。例如,該等機器可讀指令可被儲存在多個部分中,這些部分被單獨地壓縮、加密、及/或儲存在單獨的運算裝置上,其中該等部分當在解密、解壓縮、及/或組合時,形成實現一或多個操作的一組機器可執行指令,這些操作可以一起形成諸如在本文中所描述的一程式。
在另一個實例中,該等機器可讀指令可被儲存在它們可由處理器電路讀取的一狀態中,但是需要添加程式庫(例如,一動態連接程式庫(DLL))、一軟體開發工具包(SDK)、一應用程式規劃介面(API)、等等,以便在一特定運算裝置或其他裝置上執行該等機器可讀指令。在另一實例中,在該等機器可讀指令及/或該(等)相應程式可以被整體地或部分地執行之前,該等機器可讀指令可能需要被組配(例如,所儲存的設置、資料輸入、所記錄的網路位址、等等)。因此,如在本文中所使用的機器可讀取媒體可以包括機器可讀指令及/或程式,而不管該等機器可讀指令及/或程式在儲存時或以其他方式處於靜止或在傳遞時的特定格式或狀態。
在本文中所描述的該等機器可讀指令可以由任何過去、現在、或未來的指令語言、腳本語言、程式語言、等等來表示。例如,該等機器可讀指令可以使用以下任何的語言來表示:C、C++、Java、C#、Perl、Python、JavaScript、超文字標記語言(HTML)、結構化查詢語言(SQL)、Swift、等等。
如以上所提到的,圖4-6的該等實例操作可以使用可執行指令(例如,電腦及/或機器可讀指令)來實現,該等可執行指令被儲存在一或多個非暫時性的電腦及/或機器可讀取媒體上諸如光學儲存裝置、磁性儲存裝置、一HDD、一快閃記憶體、一唯讀記憶體(ROM)、一CD、一DVD、一快取、一任何類型的RAM、一暫存器、及/或任何其他的儲存裝置或儲存碟,其中資訊被儲存用於任何的持續時間(例如,用於延長時間段、永久地、用於短暫的實例、用於臨時緩沖、及/或用於資訊的快取)。如在本文中所使用的,術語非暫時性的電腦可讀取媒體及非暫時性的電腦可讀取儲存媒體被明確地定義為包括任何類型的電腦可讀取儲存裝置及/或儲存碟並且排除傳播信號及排除傳輸媒體。
「包括有」及「包含有」(及其所有的形式及時態)在本文中被使用作為開放式的術語。因此,只要一請求項採用任何形式的「包括」或「包含」(例如,包含、包括、包含有、包括有、具有、等等)作為一前言或在一任何類型的請求項陳述中,應被了解為在不超出該對應請求項或引用之該範圍的情況下,可以存在附加的元素、術語、等等。如在本文中所使用的,當該短語「至少」被使用作為,例如,在一請求項前言中的該過渡用語時其係開放式的,如同術語「包含有」及「包括有」係開放式的方式相同。當術語「及/或」被使用時,例如,以諸如A、B、及/或C的形式,指的是A、B、C的任何組合或子集,例如(1)單獨A、(2)單獨B、(3)單獨C、(4)A與B、(5)A與C、(6)B與C、或(7)A與B及與C。如在本文中所使用的,在描述結構、組件、項目、物件、及/或事物的上下文中,短語「A及B中的至少一個」旨在指包括有以下任意一種的實現方式:(1)至少一個A、(2)至少一個B、或(3)至少一個A 及至少一個B。類似地,如在本文中所使用的,在描述結構、組件、項目、物件、及/或事物的上下文中,短語「A或B中的至少一個」旨在指包括有以下任意一種的實現方式:(1)至少一個A、(2)至少一個B、或(3)至少一個A 及至少一個B。如在本文中所使用的,在描述過程、指令、活動及/或步驟之該履行或執行的上下文中,短語「A及B中的至少一個」旨在指包括有以下任意一種的實現方式:(1)至少一個A、(2)至少一個B、或(3)至少一個A 及至少一個B。類似地,如在本文中所使用的,在描述過程、指令、活動及/或步驟之該履行或執行的上下文中,短語「A或B中的至少一個」旨在指包括有以下任意一種的實現方式:(1)至少一個A、(2)至少一個B、或(3)至少一個A 及至少一個B。
如在本文中所使用的,單數引用(例如,「一」、「一個」、「第一」、「第二」、等等)不排除複數引用。如在本文中所使用的,術語「一」或「一個」物件係指該物件的一或多個。術語「一」(或「一個」)、「一或多個」、及「至少一個」在本文中可被互換地使用。此外,雖然單獨地被列出,但複數個構件、元件或方法動作可以由,例如,相同的實體或物件來被實現。此外,雖然單獨的特徵可被包括在不同的實例或請求項中,但是這些可能被組合,並且在不同的實例或請求項中該包括的特徵並不意味著該等特徵的一種組合不是可行的及/或有利的。
圖7係建構來執行及/或實例化圖4-6之該等機器可讀指令及/或操作以實現圖2該設備之一實例處理器平台1000的一方塊圖。在一實施例中,處理器平台1000係圖2的硬體資源216的一實例。該處理器平台1000可以是,例如,一伺服器、一個人電腦、一工作站、一自我學習機器(例如,一神經網路)、一行動裝置(例如,一行動電話、一智慧型手機、一平板電腦諸如一iPad
TM)、一個人數位助理(PDA)、一網際網路家電、一DVD播放器、一CD播放器、一數位視訊錄影機、一藍光播放器、一遊戲機、一個人錄影機、一機上盒、一頭戴式耳機(例如,一擴增實境(AR)頭戴式耳機、虛擬實境(VR)頭戴式耳機、等等)或其他可穿戴式裝置、或任何其他類型的運算裝置。
該所示實例的該處理器平台1000包括處理器電路1012。該所示實例的該處理器電路1012係硬體。例如,該處理器電路1012可由來自任何所欲系列或製造商的一或多個積體電路、邏輯電路、FPGA微處理器、CPU、GPU、DSP及/或微控制器來實現。該處理器電路1012可由一或多個基於半導體(例如,基於矽)的裝置來被實現。在本實例中,該處理器電路1012實現該實例處理器電路122。
該所示實例的該處理器電路1012包括一本地記憶體1013(例如,一快取、一暫存器、等等)。該所示實例的該處理器電路1012藉由一匯流排1018與包括有一依電性記憶體1014及一非依電性記憶體1016的一主記憶體進行通訊。該依電性記憶體1014可由同步動態隨機存取記憶體(SDRAM)、動態隨機存取記憶體(DRAM)、RAMBUS®動態隨機存取記憶體(RDRAM®)、及/或任何其他類型的RAM裝置來實現。該非依電性記憶體1016可以由快閃記憶體及/或任何其他所欲類型的儲存裝置來實現。對該所示實例的該主記憶體1014、1016的存取係由一記憶體控制器1017來控制。
該所示實例的該處理器平台1000還包括介面電路1020。該介面電路1020可以根據任何類型的介面標準由硬體來實現,諸如一以太網路介面、一通用串列匯流排(USB)介面、一藍牙®介面、一近場通訊(NFC)介面、一PCI介面、及/或一PCIe介面。
在該所示的實例中,一或多個輸入裝置1022被連接到該介面電路1020。該(等)輸入裝置1022允許一使用者把資料及/或命令輸入到該處理器電路1012中。該(等)輸入裝置1022可由,例如,一音訊感測器、一麥克風、一相機(靜態或視訊)、一鍵盤、一按鈕、一滑鼠、一觸控螢幕、一觸控板、一軌跡球、一isopoint裝置、及/或一語音識別系統來實現。
一或多個輸出裝置1024也被連接到該所示實例的該介面電路1020。該等輸出裝置1024,例如,可由顯示器裝置(例如,一發光二極體(LED)、一有機發光二極體(OLED)、一液晶顯示器(LCD)、一陰極射線管(CRT)顯示器、一就地切換(IPS)顯示器、一觸控螢幕、等等)、一觸覺輸出裝置、一印表機、及/或揚聲器來實現。因此,該所示實例的該介面電路1020通常包括一圖形驅動卡、一圖形驅動晶片、及/或諸如一GPU的圖形處理器電路。
該所示實例的該介面電路1020還包括一通訊裝置諸如一發射器、一接收器、一收發器、一調變解調器、一住宅閘道、一無線接取點、及/或一網路介面,以便於由一網路1026與外部機器(例如,任何種類的運算裝置)的資料交換。該通訊可以藉由,例如,一以太網路連接、一數位用戶迴路(DSL)連接、一電話線連接、一同軸電纜系統、一衛星系統、一現場無線系統、一蜂巢式電話系統、一光纖連接、等等。
該所示實例的該處理器平台1000還包括一或多個大容量儲存裝置1028以儲存軟體及/或資料。這種大容量儲存裝置1028的實例包括磁性儲存裝置、光學儲存裝置、軟碟、HDD、CD、藍光光碟、獨立磁碟冗餘陣列(RAID)系統、固態儲存裝置諸如快閃記憶體裝置、以及DVD碟。
該等機器可執行指令1032,其可由圖4-6的該等機器可讀指令來實現,可被儲存在該大容量儲存裝置1028中、該依電性記憶體1014中、該非依電性記憶體1016中、及/或在一可移除式的非暫時性電腦可讀取儲存媒體上諸如一CD或DVD。
圖8係圖7該處理器電路1012之一實例實現方式的一方塊圖。在這個實例中,圖8的該處理器電路1012係由一微處理器1100來實現。例如,該微處理器1100可以實現多核心硬體電路諸如一CPU、一DSP、一GPU、一XPU、等等。儘管它可以包括任何數量的實例核心1102(例如,1核心),本實例的該微處理器1100係包括有N個核心的一多核心半導體裝置。該微處理器1100的該等核心1102可以獨立作業或者可以協作以執行機器可讀指令。例如,對應於一韌體程式、一嵌入式軟體程式、或一軟體程式的機器代碼可由該等核心1102中的一個來執行或者可由該等核心1102的多個在相同或不同時間來執行。在一些實例中,對應於該韌體程式、該嵌入式軟體程式、或該軟體程式的機器代碼被分割成為執行緒並由該等核心1102的兩個或更多個被並行地執行。該軟體程式可對應於圖4-6該等流程圖所表示之該等機器可讀指令及/或操作的一部分或全部。
該等核心1102可以由一實例匯流排1104進行通訊。在一些實例中,該匯流排1104可以實現一通訊匯流排以實現與該等核心1102之一或多個核心相關聯的通訊。例如,該匯流排1104可以實現一內部積體電路(I2C)匯流排、一串列週邊介面(SPI)匯流排、一PCI匯流排、或一PCIe匯流排中的至少一個。附加地或替代地,該匯流排1104可以實現任何其他類型的運算或電氣匯流排。該等核心1102可以藉由實例介面電路1106從一或多個外部裝置獲得資料、指令、及/或信號。該等核心1102可以藉由介面電路1106向一或多個外部裝置輸出資料、指令、及/或信號。雖然這個實例的該等核心1102包括實例本地記憶體1120(例如,可以分為一L1資料快取及一L1指令快取的一級(L1)快取),但該微處理器1100還包括實例共享記憶體1110,其可由該等核心共享(例如,二級(L2_快取))用於高速存取資料及/或指令。資料及/或指令可以藉由寫入到該共享記憶體1110及/或從該共享記憶體1110讀取來被傳輸(例如,共享)。該等核心1102每一個的該本地記憶體1120及該共享的記憶體1110可以是儲存裝置之一層級架構的一部分,其包括有多層的快取記憶體及該主記憶體(例如,圖7的該主記憶體1014、1016)。通常,在該層級架構中較高級別的記憶體比較低級別的記憶體表現出較短的存取時間並且具有較小的儲存容量。在該快取層級架構的各個級別中的變化係由一快取一致性策略來管理(例如,協調)。
每一個核心1102可被稱為一CPU、DSP、GPU、等等,或任何其他類型的硬體電路。每一個核心1102包括控制單元電路1114、算術及邏輯(AL)電路(有時稱為一ALU)1116、複數個暫存器1118、在本地記憶體1120中的該L1快取、以及一實例匯流排1122。其他結構可以呈現。例如,每一個核心1102可以包括向量單元電路、單一指令多重資料(SIMD)單元電路、載入/儲存單元(LSU)電路、分支/跳轉單元電路、浮點單元(FPU)電路、等等。該控制單元電路1114包括基於半導體的電路,其被建構來控制(例如,協調)在該對應核心1102內的資料移動。該AL電路1116包括基於半導體的電路,其被建構來在該對應核心1102內的資料上執行一或多個數學及/或邏輯運算。一些實例的該AL電路1116執行基於整數的運算。在其他的實例中,該AL電路1116還執行浮點運算。在又一其他的實例中,該AL電路1116可包括執行基於整數之運算的第一AL電路及執行浮點運算的第二AL電路。在一些實例中,該AL電路1116可以被稱為一算術邏輯單元(ALU)。該等暫存器1118是基於半導體的結構,用以儲存資料及/或指令,諸如由該對應核心1102的該AL電路1116所執行之該等運算之一或多個的結果。例如,該等暫存器1118可以包括向量暫存器、SIMD暫存器、通用暫存器、旗標暫存器、區段暫存器、機器特定暫存器、指令指標暫存器、控制暫存器、除錯暫存器、記憶體管理暫存器、機器檢查暫存器、等等。該等暫存器1118可被佈置在如圖8中所示的一排組中。另外地,該等暫存器1118可以以任何其他佈置、格式、或結構來被組織,包括有被散佈在該整個核心1102中以縮短存取時間。該匯流排1104可以實現一I2C匯流排、一SPI匯流排、一PCI匯流排、或一PCIe匯流排中的至少一種。
每一個核心1102及/或,更一般地,該微處理器1100可以包括對以上所示及描述那些之附加的及/或替代的結構。例如,一或多個時脈電路、一或多個電源供應、一或多個電力閘、一或多個快取歸屬代理(CHA)、一或多個聚合/公共網格站(CMS)、一或多個移位器(例如,桶形移位器)及/或其他電路可能存在。該微處理器1100係被製造成包括許多電晶體的一半導體裝置,該等電晶體被互連以在被包含在一或多個封裝中的一或多個積體電路(IC)中實現該等上述的結構。該處理器電路可以包括及/或與一或多個加速器協作。在一些實例中,加速器由邏輯電路實現以能比一通用處理器更快及/或更有效地執行某些任務。加速器的實例包括ASIC及FPGA諸如在本文中所討論的那些。一GPU或其他可規劃裝置也可以是一加速器。加速器可以板載在處理器電路上、在與該處理器電路相同的晶片封裝中及/或在與該處理器電路分開的一或多個封裝中。
圖9係圖7該處理器電路1012之另一種實例實現方式的一方塊圖。在這個實例中,該處理器電路1012由FPGA電路1200來實現。該FPGA電路1200可被使用來,例如,執行原本可由圖8該實例微處理器1100執行對應機器可讀指令所執行之操作。然而,一旦被組配,該FPGA電路1200在硬體中實例化該等機器可讀指令,因此,執行該等操作通常會比該等操作由執行該對應軟體之一通用微處理器來執行要快。
更具體地說,與上述圖8該微處理器1100(其係一通用裝置,其可被規劃以執行由圖4-6該等流程圖所表示之該等機器可讀指令的一些或全部,但其互連及邏輯電路一旦被製造就固定了)形成對比的是,圖9該實例的該FPGA電路1200包括可在製造之後以不同方式被組配及/或互連的互連及邏輯電路,以實例化例如由圖4-6之該等流程圖所表示之該等機器可讀指令的一些或全部。特別地是,該FPGA 1200可被認為是邏輯閘、互連、以及開關的一陣列。可以對該等開關進行規劃以改變邏輯閘如何藉由該等互連來被互連,從而有效地形成一或多個專用邏輯電路(除非並且直到該FPGA電路1200被重新規劃為止)。該組配的邏輯電路使得該等邏輯閘能夠以不同的方式協作以在由輸入電路所接收到的資料上執行不同的操作。那些操作可以對應到圖4-6該等流程圖所表示該軟體的一些或全部。因此,該FPGA電路1200可被建構來有效地把圖4-6該等流程圖之該等機器可讀指令的一些或全部實例化為專用邏輯電路,以一種於類似於一ASIC專用的方式執行對應於那些軟體指令的該等操作。因此,該FPGA電路1200比起該通用微處理器可更快地執行與圖4-6該等機器可讀指令中一些或全部相對應的該等操作。
在圖9的該實例中,該FPGA電路1200被建構成由一終端使用者使用諸如Verilog的一硬體描述語言(HDL)來被規劃(及/或被重新規劃一或多次)。圖9的該FPGA電路1200,包括實例輸入/輸出(I/O)電路1202以得到及/或輸出資料前往/來自實例組配電路1204及/或外部硬體(例如,外部硬體電路)1206。例如,該組配電路1204可以實現可獲得機器可讀指令以組配該FPGA電路1200或其一部分的介面電路。在一些這樣的實例中,該組配電路1204可以從一使用者、一機器(例如,硬體電路(例如,經規劃的或專用的電路)可實現一人工智慧/機器學習(AI/ML)模型以產生該等指令)、等等獲得該等機器可讀指令。在一些實例中,該外部硬體1206可以實現圖8的該微處理器1100。該FPGA電路1200還包括實例邏輯閘電路1208、複數個實例可組配互連1210、以及實例儲存電路1212的一陣列。該邏輯閘電路1208及互連1210係可組配的以實例化可對應到圖4-6之該等機器可讀指令中至少一些的一或多個操作及/或其他所欲的操作。在圖9中所示的該邏輯閘電路1208係以群組或區塊的形式被製造。每一個區塊包括可被組配成邏輯電路之基於半導體的電氣結構。在一些實例中,該等電氣結構包括為邏輯電路提供基本建構塊的邏輯閘(例如,及閘、或閘、非或閘、等等)。電氣可控制開關(例如,電晶體)出現在該邏輯閘電路1208的每一個中以使該等電氣結構及/或邏輯閘的組配可以形成電路來執行所欲的操作。該邏輯閘電路1208可以包括其他的電氣結構,諸如查找表(LUT)、暫存器(例如,正反器或閂鎖器)、多工器、等等。
該所示實例的該等互連1210係導電路徑、跡線、通孔、等等,其可以包括電氣可控制開關(例如,電晶體),其狀態可以藉由規劃(例如,使用一HDL指令語言)來被改變以激活或停用在該邏輯閘電路1208的一或多個之間的一或多個連接以對所欲的邏輯電路進行規劃。
該所示實例的該儲存電路1212被建構來儲存由對應邏輯閘所執行該等操作之該等一或多個的結果。該儲存電路1212可以由暫存器等等來被實現。在該所示實例中,該儲存電路1212被分佈在該邏輯閘電路1208中以便於存取及提高執行速度。
圖9的該實例FPGA電路1200還包括一實例專用操作電路1214。在此實例中,該專用操作電路1214包括專用電路1216,其可被調用來實現常用的功能以避免需要在現場對那些功能進行規劃。這種專用電路1216的實例包括記憶體(例如,DRAM)控制器電路、PCIe控制器電路、時脈電路、收發器電路、記憶體、以及乘法累加器電路。可能存在其他類型的專用電路。在一些實例中,該FPGA電路1200還可以包括實例通用可規劃電路1218,諸如一實例CPU 1220及/或一實例DSP 1222。其他通用可規劃電路1218可另外地或替代地存在,諸如一GPU、一XPU、等等,其可被規劃來執行其他的操作。
雖然圖8及9圖示了圖7該處理器電路1012的兩種實例實現方式,許多其他的方法也可被設想。例如,如以上所述,現代FPGA電路可以包括一板載CPU,諸如圖9該實例CPU 1220的一或多個。因此,圖7的該處理器電路1012可以另外地藉由組合圖8的該實例微處理器1100與圖9的該實例FPGA電路1200來實現。在一些這樣的混合實例中,由圖4-6該等流程圖所表示之該等機器可讀指令的一第一部分可由圖8該等核心1102的一或多個來執行,而由圖4-6該等流程圖所表示之該等機器可讀指令的一第二部分可由圖9的該FPGA電路1200來執行。
在一些實例中,圖7的該處理器電路1012可以在一或多個封裝中。例如,圖8的該處理器電路1100及/或圖9的該FPGA電路1200可以在一或多個封裝中。在一些實例中,一XPU可由圖7的該處理器電路1012來實現,其可能是在一或多個封裝中。例如,該XPU可以包括在一個封裝中的一CPU、在另一個封裝中的一DSP、在又另一個封裝中的一GPU、以及仍又在另一個封裝中的一FPGA。
一方塊圖被圖示在圖10中,其圖示出一實例軟體分發平台1305,用以把諸如圖7之該等實例機器可讀指令1032之類的軟體分發給由第三方所擁有及/或操作的硬體裝置。該實例軟體分發平台1305可由能夠儲存軟體並把軟體傳輸給其他運算裝置之任何電腦伺服器、資料設施、雲端服務、等等來實現。該等第三方可以是擁有及/或運營該軟體分發平台1305之該實體的客戶。例如,擁有及/或運營該軟體分發平台1305的該實體可以是諸如圖7該等實例機器可讀指令1032之類軟體的一開發商、一銷售商、及/或授權者。該等第三方可能是消費者、使用者、零售商、OEM、等等,他們購買該軟體及/或取得該軟體授權以供使用及/或轉售及/或再授權。在該所示實例中,該軟體分發平台1305包括一或多個伺服器及一或多個儲存裝置。該等儲存裝置儲存機器可讀指令1032,其可對應於該等實例機器可讀指令,如以上所述。該實例軟體分發平台1305的該等一或多個伺服器與一網路1310進行通訊,該網路1310可以對應於網際網路的任何一或多個及/或該等實例網路的任一、等等,如以上所述。在一些實例中,該等一或多個伺服器會對要把該軟體傳輸到一請求方作為商業交易之一部分的請求做出回應。對於該軟體的交付、銷售、及/或授權的支付可以由該軟體分發平台的該等一或多個伺服器及/或一第三方支付實體來處理。該等伺服器使得購買者及/或授權者能夠從該軟體分發平台1305下載該等機器可讀指令1032。例如,可以把對應於上述該等實例機器可讀指令的該軟體下載到該實例處理器平台1300,其將執行該等機器可讀指令1032以實現該等上述方法及相關聯的運算系統200。在一些實例中,該軟體分發平台1305的一或多個伺服器週期性對該軟體(例如,圖7的該等實例機器可讀指令1032)地提供、傳輸、及/或強制更新以確保被分發並被套用到在該等終端使用者裝置處該軟體的改進、補丁、更新、等等。
在一些實例中,一設備包括用於處理圖2的OS 201及/或韌體214的構件。例如,該等用於處理的構件可由處理器電路、處理器電路、韌體電路、等等來實現。在一些實例中,該處理器電路可由機器可執行指令來實現,該等機器可執行指令係由處理器電路來執行的,該處理器電路可由圖7的該實例處理器電路1012、圖8的該實例處理器電路1100、及/或圖9的該實例現場可規劃閘陣列(FPGA)電路1200來實現。在其他實例中,該處理器電路係由其他硬體邏輯電路、硬體實現的狀態機、及/或硬體、軟體及/或韌體的任何其他組合來實現。例如,該處理器電路可由至少一或多個硬體電路(例如,處理器電路、分立及/或整合式的類比及/或數位電路、一FPGA、一特定應用積體電路(ASIC)、一比較器、一運算放大器(op-amp)、一邏輯電路、等等)來實現,其被建構成在不執行軟體或韌體的情況下執行該對應的操作,但其他結構係同樣合適的。
從前述的內容中,將被理解的是實例系統、方法、設備、及製品已被揭露,其提供了改進的系統更新。該等揭露的系統、方法、設備及製品藉由判定欲更新在一運算系統中韌體及/或軟體所需資源的可用性來提高使用一運算裝置的該效率;當該等資源可用時,更新在該運算系統中的韌體及/或軟體;以及當該等資源不可用時,延後更新該韌體及/或軟體。該等揭露的系統、方法、設備及製品因此被導向到在一機器之該操作中的一或多個改進,該機器諸如一電腦或其他電子及/或機械裝置。
以下的實施例涉及進一步的實施例。在該等實例中的細節可以在一或多個實施例中的任何地方被使用。實例1係一種包括有得到一系統更新組配的方法,該組配用於管理由一電池供電之一運算系統的一軟體組件及一韌體組件中至少一個的更新;至少部分地基於該系統更新組配來判定使用該電池來更該新軟體組件及該韌體組件中該至少一個的一估計系統更新時間;當該系統更新組配的資源需求被滿足並且該估計的系統更新時間小於或等於該電池的最小剩餘使用時間時,更新該軟體組件及該韌體組件中該至少一個;以及當該系統更新組配的該等資源需求不被滿足或該估計的系統更新時間大於該電池的最小剩餘使用時間時,延後更新該軟體組件及該韌體組件中的該至少一個。
在實例2中,實例1的該技術主題可以可選擇性地包括從一更新程式套件中得到該系統更新組配,該更新程式套件係從由一網路被耦合到該運算系統之一系統更新儲存庫所獲得的。在實例3中,實例2的該技術主題可以可選擇性地包括其中該估計的系統更新時間包含下載該更新程式套件的一時間及執行至該少一個軟體組件及該韌體組件該更新的一時間。在實例4中,實例2的該技術主題可以可選擇性地包括其中該更新程式套件包含經更新的韌體以替換在該韌體組件中的韌體並且該韌體組件係一基本輸入/輸出系統(BIOS)。在實例5中,實例4的該技術主題其中該更新程式套件包含經更新的韌體以替換在該韌體組件中的韌體並且該韌體組件係該運算系統的一裝置。在實例6中,實例2的該技術主題可以可選擇性地包括其中該更新程式套件包含經更新的軟體以替換在該軟體組件中的軟體並且該軟體組件係一作業系統(OS)的至少一部分。在實例7中,實例2的該技術主題可以可選擇性地包括其中該等資源需求包含得到該更新程式套件所需要的蜂巢式通訊。在實例8中,實例2的該技術主題可以可選擇性地包括其中該等資源需求包含得到該更新程式套件所需的WiFi通訊。在實例9中,實例1的該技術主題可以可選擇性地包括檢驗該至少一個該軟體組件及該韌體組件之該更新的成果以及保存該系統更新組配。在實例10中,實例2的該技術主題可以可選擇性地包括至少部分地基於該軟體組件及該韌體組件中至少一個該更新的成果來更新該更新程式套件的更新程式元資料並把該經更新的更新程式元資料發送到該系統更新儲存庫。
實例11係至少一種有形之機器可讀取非暫時性的媒體,其包含有複數個指令,該等指令回應於正被一處理器執行時致使該處理器可以:得到一系統更新組配,該組配用於管理由一電池供電之一運算系統的一軟體組件及一韌體組件中至少一個的更新;至少部分地基於該系統更新組配來判定使用該電池來更該新軟體組件及該韌體組件中該至少一個的一估計系統更新時間;當該系統更新組配的資源需求被滿足並且該估計的系統更新時間小於或等於該電池的最小剩餘使用時間時,更新該軟體組件及該韌體組件中該至少一個;以及當該系統更新組配的該等資源需求不被滿足或該估計的系統更新時間大於該電池的最小剩餘使用時間時,延後更新該軟體組件及該韌體組件中的該至少一個。
在實例12中,實例11的該技術主題可以可選擇性地包括有複數個指令,該等指令回應於正被一處理器執行時致使該處理器可以:從一更新程式套件中得到該系統更新組配,該更新程式套件係從由一網路被耦合到該運算系統之一系統更新儲存庫所獲得的。在實例13中,實例12的該技術主題可以可選擇性地包括其中該估計的系統更新時間包含下載該更新程式套件的一時間及執行該至少一個軟體組件及該韌體組件該更新的一時間。在實例14中,實例12的該技術主題可以可選擇性地包括其中該更新程式套件包含經更新的韌體以替換在該韌體組件中的韌體並且該韌體組件係一基本輸入/輸出系統(BIOS)。在實例15中,實例14的該技術主題可以可選擇性地包括其中該更新程式套件包含經更新的韌體以替換在該韌體組件中的韌體並且該韌體組件係該運算系統的一裝置。
實例16係一種運算系統,其包含有:一電池;由該電池供電的一處理器,該處理器得到一系統更新組配,該組配用於管理由一電池供電之一運算系統的一軟體組件及一韌體組件中至少一個的更新;至少部分地基於該系統更新組配來判定使用該電池來更該新軟體組件及該韌體組件中該至少一個的一估計系統更新時間;當該系統更新組配的資源需求被滿足並且該估計的系統更新時間小於或等於該電池的最小剩餘使用時間時,更新該軟體組件及該韌體組件中該至少一個;以及當該系統更新組配的該等資源需求不被滿足或該估計的系統更新時間大於該電池的最小剩餘使用時間時,延後更新該軟體組件及該韌體組件中的該至少一個。
在實例17中,實例16的該技術主題可以可選擇性地包括從一更新程式套件中得到該系統更新組配,該更新程式套件係從由一網路被耦合到該運算系統之一系統更新儲存庫所獲得的。在實例18中,實例17的該技術主題可以可選擇性地包括其中該估計的系統更新時間包含下載該更新程式套件的一時間及執行該至少一個軟體組件及該韌體組件該更新的一時間。在實例19中,實例16的該技術主題可以可選擇性地包括其中該更新程式套件包含經更新的韌體以替換在該韌體組件中的韌體並且該韌體組件係一基本輸入/輸出系統(BIOS)。在實例20中,實例19的該技術主題可以可選擇性地包括其中該更新程式套件包含經更新的韌體以替換在該韌體組件中的韌體並且該韌體組件係該運算系統的一裝置。實例21係一種設備,其操作來執行如實例1至10任一之方法。實例22係一種設備,其包括用於執行實例1至10中任一之方法的構件。實例23係一種設備,其包括操作來執行實例1至10中任一之方法的模組及/或單元及/或邏輯及/或電路及/或構件的任意組合。實例24係一可選擇性非暫時性的及/或有形的機器可讀取媒體,其可選擇性地儲存或以其他方式提供指令,如果及/或當該等指令由一電腦系統或其他機器執行時,操作來致使該機器執行實例1至10任一之方法。
雖然本文已經揭露了某些實例系統、方法、設備、及製品,但是本專利的該涵蓋範圍不侷限於此。相反的是,本專利涵蓋了完全落入本專利實例之該範圍內所有的系統、方法、設備、及製品。
100:更新佈置
102:更新程式元資料檔案
104:更新程式套件
106:系統更新儲存庫
107:OS套件(驅動程式及應用程式)
108:FW套件
110:裝置FW
112:系統FW(BIOS)
200:運算系統
201:OS
202:更新程式UI管理程式
204:預測資源評估程式
206:資源預留管理程式
208:系統更新管理程式
210、212、228:操作
214:韌體
215:韌體更新管理程式
216:硬體資源
217:IP區塊
218:分析代理
220:重置
222:最小電力更新模式
224:完全作業模式
226:系統更新
230:啟動至OS
232:ISUT
300:電池容量視圖
302:系統更新臨界值(例如,50%)
304:警告臨界值
306:低準位臨界值
308:用於更新的最大範圍(B_max)
310:用於系統更新之估計的時間
312:用於更新的最小範圍(B_min)
314:警告臨界值:延後系統更新並通知使用者
400、500:流程
402〜412、502〜514、520〜532、602〜610:方塊
600:更新處理
1000:處理器平台
1012、1100:處理器電路
1013:本地記憶體
1014:依電性記憶體
1016:非依電性記憶體
1017:記憶體控制器
1018:匯流排
1020:介面
1022:輸入裝置
1024:輸出裝置
1026:網路
1028:大容量儲存器
1032:經編碼的指令
1102:核心
1104:匯流排
1106:介面電路
1110:L2快取
1120:L1快取
1114:控制單元電路
1116:AL電路
1118:暫存器
1200:FPGA電路
1202:輸入/輸出(I/O)電路
1204:組配電路
1206:外部硬體
1208:邏輯閘電路
1210:互連
1212:儲存電路
1214:專用操作電路
1216:專用電路
1218:通用可規劃電路
1220:中央處理單元CPU
1222:數位信號處理器(DSP)
1300:處理器平台
1305:軟體分發平台
1310:網路
圖1根據一些實施例圖示出一種更新佈置。
圖2根據一些實施例係一運算系統之部分的一示意圖。
圖3根據一些實施例係在一正常操作模式與一系統更新模式之間一電池容量視圖的一圖示。
圖4根據一些實施例圖示出一系統更新組配流程。
圖5A及5B根據一些實施例圖示出一系統更新執行時操作流程。
圖6根據一些實施例係系統更新處理的一流程圖。
圖7係被建構成執行及/或實例化圖4-6之該機器可讀指令及/或操作以實現參考圖1-6所討論之該設備的一實例處理器平台的一方塊圖。
圖8係圖7該處理器電路之一種實例實現方式的一方塊圖。
圖9係圖7該處理器電路的另一種實例實現方式的一方塊圖。
圖10係一方塊圖,其圖示出用於把諸如圖7該等實例機器可讀指令的軟體分發到由第三方所擁有及/或操作之硬體裝置的一實例軟體分發平台。
該等圖不是按比例被繪製的。通常,在整個該(等)附圖及伴隨的書面描述中將使用相同的附圖標記來指相同或相似的部分。
600:更新處理
602~610:方塊
Claims (23)
- 一種方法,其包含有: 得到一系統更新組配,該系統更新組配用於管理由一電池供電之一運算系統的一軟體組件及一韌體組件中之至少一者之更新; 至少部分地基於該系統更新組配來判定使用該電池來更新該軟體組件及該韌體組件中之該至少一者之一估計的系統更新時間;以及 當該系統更新組配的資源需求被滿足並且該估計的系統更新時間小於或等於該電池的一最小剩餘使用時間時,更新該軟體組件及該韌體組件中之該至少一者。
- 如請求項1之方法,其包含有: 當該系統更新組配的該等資源需求不被滿足或該估計的系統更新時間大於該電池的該最小剩餘使用時間時,延後更新該軟體組件及該韌體組件中之該至少一者。
- 如請求項2之方法,其包含有從一更新程式套件中得到該系統更新組配,該更新程式套件係從藉由一網路被耦合到該運算系統之一系統更新儲存庫所獲得。
- 如請求項3之方法,其中該估計的系統更新時間包含下載該更新程式套件的一時間及執行該至少一個軟體組件及該韌體組件之該更新的一時間。
- 如請求項3之方法,其中該更新程式套件包含經更新的韌體用以替換在該韌體組件中的韌體,且該韌體組件係一基本輸入/輸出系統(BIOS)。
- 如請求項5之方法,其中該更新程式套件包含經更新的韌體用以替換在該韌體組件中的韌體,且該韌體組件係該運算系統中的一裝置。
- 如請求項3之方法,其中該更新程式套件包含經更新的軟體用以替換在該軟體組件中的軟體,且該軟體組件係一作業系統(OS)的至少一部分。
- 如請求項3之方法,其中該等資源需求包含得到該更新程式套件所需要的蜂巢式通訊。
- 如請求項3之方法,其中該等資源需求包含得到該更新程式套件所需要的WiFi通訊。
- 如請求項1之方法,其包含有檢驗該至少一個該軟體組件及該韌體組件之該更新的成果以及保存該系統更新組配。
- 如請求項3之方法,其包含有至少部分地基於該軟體組件及該韌體組件中之至少一者之該更新的成果來更新該更新程式套件的更新程式元資料以及把經更新的該更新程式元資料發送到該系統更新儲存庫。
- 如請求項1之方法,其包含有把該運算系統之選定的硬體智慧財產權(IP)區塊的識別儲存在一表中,以及至少部分地基於一使用者或管理員組配中之至少一者把該等IP區塊設置為一最小電力更新模式。
- 一種包含有複數個指令之至少一個有形之機器可讀取非暫時性媒體,該等指令回應於正由一處理器執行時,致使該處理器用以: 得到一系統更新組配,該系統更新組配用於管理由一電池供電之一運算系統的一軟體組件及一韌體組件中之至少一者之更新; 至少部分地基於該系統更新組配來判定使用該電池來更新該軟體組件及該韌體組件中之該至少一者之一估計的系統更新時間;以及 當該系統更新組配的資源需求被滿足並且該估計的系統更新時間小於或等於該電池的一最小剩餘使用時間時,更新該軟體組件及該韌體組件中之該至少一者。
- 如請求項13之至少一個有形機器可讀取非暫時性媒體,其包含有複數個指令,該等指令回應於正由一處理器執行時,致使該處理器用以: 當該系統更新組配的該等資源需求不被滿足或該估計的系統更新時間大於該電池的該最小剩餘使用時間時,延後更新該軟體組件及該韌體組件中之該至少一者。
- 如請求項14之至少一個有形機器可讀取非暫時性媒體,其包含有複數個指令,該等指令回應於正由一處理器執行時,致使該處理器用以: 從一更新程式套件中得到該系統更新組配,該更新程式套件係從藉由一網路被耦合到該運算系統之一系統更新儲存庫所獲得。
- 如請求項15之至少一個有形機器可讀取非暫時性媒體,其中該估計的系統更新時間包含下載該更新程式套件的一時間及執行該至少一個軟體組件及該韌體組件之該更新的一時間。
- 如請求項15之至少一個有形機器可讀取非暫時性媒體,其中該更新程式套件包含經更新的韌體用以替換在該韌體組件中的韌體,且該韌體組件係一基本輸入/輸出系統(BIOS)。
- 如請求項17之至少一個有形機器可讀取非暫時性媒體,其中該更新程式套件包含經更新的韌體用以替換在該韌體組件中的韌體,且該韌體組件係該運算系統中的一裝置。
- 一種運算系統,其包含有: 一電池;及 由該電池供電的一處理器,該處理器用以: 得到一系統更新組配,該系統更新組配用於管理一軟體組件及一韌體組件中之至少一者之更新; 至少部分地基於該系統更新組配來判定使用該電池來更新該軟體組件及該韌體組件中之該至少一者之一估計的系統更新時間;以及 當該系統更新組配的資源需求被滿足並且該估計的系統更新時間小於或等於該電池的一最小剩餘使用時間時,更新該軟體組件及該韌體組件中之該至少一者。
- 如請求項19之運算系統,其包含有該處理器用以: 當該系統更新組配的該等資源需求不被滿足或該估計的系統更新時間大於該電池的該最小剩餘使用時間時,延後更新該軟體組件及該韌體組件中之該至少一者。
- 如請求項19之運算系統,其中該估計的系統更新時間包含下載該更新程式套件的一時間及執行該至少一個軟體組件及該韌體組件之該更新的一時間。
- 如請求項21之運算系統,其中該更新程式套件包含經更新的韌體用以替換在該韌體組件中的韌體,且該韌體組件係一基本輸入/輸出系統(BIOS)。
- 如請求項21之運算系統,其中該更新程式套件包含經更新的韌體用以替換在該韌體組件中的韌體,且該韌體組件係該運算系統中的一裝置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202141044107 | 2021-09-29 | ||
IN202141044107 | 2021-09-29 | ||
PCT/US2022/031222 WO2023055438A1 (en) | 2021-09-29 | 2022-05-26 | Dynamic resource determination for system update |
WOPCT/US22/31222 | 2022-05-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202333046A true TW202333046A (zh) | 2023-08-16 |
Family
ID=82156737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111125370A TW202333046A (zh) | 2021-09-29 | 2022-07-06 | 用於系統更新之動態資源判定技術 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN117581199A (zh) |
TW (1) | TW202333046A (zh) |
WO (1) | WO2023055438A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012181578A (ja) * | 2011-02-28 | 2012-09-20 | Fuji Xerox Co Ltd | 更新制御装置及びプログラム |
KR102587084B1 (ko) * | 2018-09-05 | 2023-10-11 | 현대자동차주식회사 | 차량의 업데이트 제공 장치 및 방법 |
CN111182526A (zh) * | 2018-11-12 | 2020-05-19 | 奇酷互联网络科技(深圳)有限公司 | 数据更新方法、移动终端以及计算机存储介质 |
EP3884375B1 (en) * | 2019-09-03 | 2023-11-01 | Google LLC | Accelerating application and sub-package installations |
-
2022
- 2022-05-26 WO PCT/US2022/031222 patent/WO2023055438A1/en active Application Filing
- 2022-05-26 CN CN202280046756.2A patent/CN117581199A/zh active Pending
- 2022-07-06 TW TW111125370A patent/TW202333046A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023055438A1 (en) | 2023-04-06 |
CN117581199A (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8510422B2 (en) | Systems and methods for extension of server management functions | |
US10127080B2 (en) | Dynamically controlled distributed workload execution | |
CN107209697B (zh) | 动态控制的工作负载执行 | |
CN114879828A (zh) | 具有持久性存储器存储装置的固件接口 | |
US20160224382A1 (en) | Dynamically Controlled Workload Execution by an Application | |
US20110173628A1 (en) | System and method of controlling power in an electronic device | |
US20220012150A1 (en) | Methods and apparatus to manage endpoint performance | |
TW202333046A (zh) | 用於系統更新之動態資源判定技術 | |
US20220188016A1 (en) | Methods and apparatus to adapt memory channel usage on a per-user basis | |
CN115525307A (zh) | 用于在计算平台上支持制造后固件扩展的方法和装置 | |
US10572310B2 (en) | Deploying and utilizing a software library and corresponding field programmable device binary | |
CN115617736A (zh) | 用于在计算系统中有条件地激活大核心的方法和装置 | |
US20220114136A1 (en) | Methods, systems, and apparatus to reconfigure a computer | |
US11755359B2 (en) | Methods and apparatus to implement intelligent selection of content items for provisioning | |
US20230393881A1 (en) | Autonomous clusters in a virtualization computing environment | |
US20220012062A1 (en) | Methods and apparatus to increase boot performance | |
US11934249B2 (en) | Methods and apparatus to manage energy usage and compute performance | |
US20230136365A1 (en) | Methods and apparatus to allocate accelerator usage | |
WO2023097426A1 (en) | Methods and apparatus to improve sleep state demotion with hardware power monitor | |
TWI549056B (zh) | 以函式庫作業系統達成之應用程式相容性 | |
US20220189418A1 (en) | Methods and apparatus to perform platform agnostic control of a display using a hardware agent | |
US20220390995A1 (en) | Heat pipe dryout prevention | |
US20240028374A1 (en) | Methods and apparatus to monitor cloud resources with a lightweight collector | |
US20240126354A1 (en) | Power budgeting for computer peripherals | |
US20240031263A1 (en) | Methods and apparatus to improve management operations of a cloud computing environment |