TW202125240A - 用於擷取作業系統組態狀態和記憶體管理的資源管理單元 - Google Patents
用於擷取作業系統組態狀態和記憶體管理的資源管理單元 Download PDFInfo
- Publication number
- TW202125240A TW202125240A TW109128890A TW109128890A TW202125240A TW 202125240 A TW202125240 A TW 202125240A TW 109128890 A TW109128890 A TW 109128890A TW 109128890 A TW109128890 A TW 109128890A TW 202125240 A TW202125240 A TW 202125240A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- program
- resource
- management unit
- operating system
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明描述一運算系統中之用於擷取在一中央處理單元(CPU)上執行之一作業系統之一組態狀態及基於該組態狀態將記憶體管理任務卸載至諸如一系統單晶片(SoC)之一資源管理單元之方法、裝置、系統及程序。該資源管理單元基於該作業系統之該經擷取之組態狀態識別需要記憶體交換之一資源之一狀態。該資源管理單元接著交換該記憶體以減輕該CPU處理該交換之負擔,從而改良整體運算系統效能。
Description
電腦系統大體上包含一中央處理單元(CPU)、記憶體、輸入/輸出(I/O)裝置及其他電子組件,以及軟體、韌體及資料。儲存於記憶體中且在該CPU上執行之作業系統(OS)軟體管理電腦系統之核心功能,諸如排程任務、執行軟體應用程式、管理記憶體及控制I/O及周邊裝置。可在一主機板上包含額外硬體或其他積體電路組件(諸如一記憶體管理單元(MMU))以自CPU卸載處理任務,以努力改良系統之效能。然而,用額外硬體或其他組件改良系統之效能之此等努力通常無法有效地或充分地改良系統效能。
本文件描述利用一資源管理單元用於自一中央處理單元(CPU)卸載記憶體管理任務之一實例性運算系統及方法。該資源管理單元擷取在該CPU上執行之一作業系統(OS)之一組態狀態;識別用於記憶體管理之機會;且接著基於該經擷取之組態狀態及該等經識別之機會將記憶體交換任務自該CPU卸載至該資源管理單元。
運算系統包含CPU、資源管理單元及具有指令之記憶體,回應於藉由CPU或資源管理單元執行,該等指令引起資源管理單元擷取作業系統之組態狀態,識別用於記憶體管理之機會及執行一記憶體交換。在其他態樣中,運算系統包含一超管理器或虛擬機器,且資源管理單元擷取該超管理器或虛擬機器之作業系統之組態狀態,識別用於記憶體管理之一機會及執行一記憶體交換。在額外態樣中,資源管理單元可使用記憶體中之一可變大小之內容來交換,而無一設定頁面大小(例如,區塊大小)限制。
在隨附圖式及以下描述中闡述用一資源管理單元擷取作業系統組態狀態以用於識別記憶體管理機會及執行記憶體交換任務之一或多個方法、裝置、系統及程序之細節。將自描述、圖式及技術方案明白其他特徵及優點。提供此概述以介紹在詳細描述及圖式中進一步描述之標的物。因此,此概述不應被視為限制所主張之標的物之範疇。
相關申請案
本申請案係2019年12月19日申請且標題為「Resource Management Unit for Capturing Operating System Configuration States and Memory Management」之國際申請案第PCT/US2019/067560號之一接續申請案,該案之全部揭示內容以引用的方式併入本文中。
本發明描述用於擷取作業系統組態狀態以將記憶體管理任務卸載至一資源管理單元之方法及系統。一運算系統利用一資源管理單元(諸如一系統單晶片(SoC))以擷取在該運算系統之一中央處理單元(CPU)上執行之一作業系統(OS)之一組態狀態。基於該作業系統之該組態狀態,該資源管理單元識別該運算系統中之需要記憶體管理之一程序資源之一狀態。該資源管理單元接著執行該記憶體管理(諸如一記憶體交換),以減輕該CPU處理該任務之負擔,因此改良整體運算系統效能。給定資源管理單元對作業系統組態狀態及資源之觀點,資源管理單元可使用記憶體中之一可變大小之內容來交換,而無一設定頁面大小(例如,區塊大小)限制。
本發明大體上描述用一資源管理單元擷取一作業系統組態狀態,及基於該經擷取狀態卸載任務。描述卸載任務之各種方式,包含處理任務、記憶體管理、惡意程式及脆弱性管理及動態地按比例調整時脈速率。雖然此等實例係在下文子章節中描述,但此等子章節並不旨在將此等實例限於僅在該等子章節,其等與其他實例共存或其等之獨立操作中進行描述。擷取作業系統組態狀態及將任務卸載至一資源管理單元
一電腦系統之硬體組件通常經組態以協助具有處理任務之一作業系統或CPU。然而,此等處理任務保持藉由該作業系統(其係透過該CPU執行)管理。此外,此等組件對作業系統及CPU強加其等自身限制,諸如呈循環緩衝器之形式之應用程式設計介面(API)、記憶體映射之輸入/輸出(MMIO)、共用記憶體限制及用於交換記憶體頁或I/O區塊之設定大小限制。此等限制繼續給CPU帶來負擔,即使自一使用者之角度來看,亦經常引起運算系統之延遲或效能下降。例如,在作業系統管理系統之資源(諸如排程任務、暫停執行一程序、分配記憶體、交換記憶體、開始執行另一程序等)時,一使用者之輸入或回應於該輸入之預期輸出可能被延遲。即使此等功能之一些被指派給額外硬體且在額外硬體之幫助下完成,亦可發生此情況,此係因為作業系統保持負責透過CPU指派任務或執行與此等硬體組件有關之特定功能,因此給CPU帶來負擔。
相比而言,本發明之資源管理單元藉由擷取作業系統組態狀態,將作業系統組態狀態儲存於與資源管理系統相關聯或可藉由資源管理系統存取之一資料庫(例如,記憶體)中,自該資料庫識別系統中之資源之一狀態及獨立地處理與該等資源相關聯之任務來避免此等限制。藉由資源管理單元之此獨立處理有效地減輕處理器必須執行任務之負擔,因此改良整體系統效能。
儘管所描述之資源管理單元可為一SoC,然類似地可單獨或結合對本發明之資源管理單元提供相當功能性之韌體或軟體使用其他硬體組態。
圖1係繪示具有一資源管理單元102 (例如,一系統單晶片(SoC))及相關聯記憶體104,以及一處理器106 (例如,CPU)及其相關聯記憶體108之一實例性運算系統100之一方塊圖。記憶體104及108係電腦可讀儲存媒體,且可包含在各種記憶體裝置組態(包含一共用記憶體組態)中之隨機存取記憶體(RAM)、唯讀記憶體(ROM)、快閃記憶體、快取記憶體及其他類型之儲存記憶體之各項實施方案。記憶體108包含在處理器106上執行之作業系統110及指令。
資源管理單元102包含經組態以擷取或獲得(在本文中可互換使用)作業系統110之一OS組態狀態114之一OS組態狀態管理器112。OS組態狀態114反映作業系統在一給定時間點之一瞬時狀態(state或status)。作為一實例且為簡化此論述,OS組態狀態114反映在作業系統110中發生一資源異動事件132時作業系統之一狀態。然而,可類似地選擇其他事件或時間以擷取OS組態狀態。
OS組態狀態管理器112擷取OS組態狀態114並將其儲存至一OS組態狀態資料庫(資料庫) 116中。資料庫116可定位於記憶體104或與資源管理單元102相關聯,製造於資源管理單元上或製造為資源管理單元之部分或定位於運算系統100中之別處且可藉由資源管理單元102經由低延時存取來存取之任何其他快速記憶體中。OS組態狀態資料庫116可為經組態以擷取如本發明中所描述之作業系統組態狀態之指示符之任何標準資料庫結構,諸如一表、樹、階層式、關係型(例如,MySQL、SQLite、Oracle、Sybase)、NoSQL或物件導向方案。
經擷取至OS組態狀態資料庫116中之OS組態狀態114可包含與一程序運行佇列、一程序等待佇列、主動裝置及虛擬記憶體表相關聯之資訊。此等佇列包含與各佇列中之特定程序有關之程序資料。該程序資料包含定義如儲存於一資料結構(諸如一程序控制區塊或類似結構)中之該程序之狀態,如下文進一步描述用於定義及追蹤作業系統中之程序及活動之資料。虛擬記憶體表定義其中可定址一輔助儲存器124 (例如,記憶體)如同其係記憶體108之部分之儲存分配方案。經擷取之作業系統之其他實例性態樣可包含程序優先級資料、剩餘之程序運行時間、資源排程資料、資源使用資料、記憶體使用資料、記憶體映射資料、儲存管理資料、主動裝置資料、一超管理器狀態、一虛擬機器(VM)狀態、一VM客作業系統狀態或藉由超管理器或虛擬機器使用之資源。經擷取之額外作業系統態樣可類似於使用一作業系統分析工具(諸如Linux作業系統事件導向可觀察性工具,例如,「perf」)識別之作業系統態樣。此容許追蹤作業系統之效能計數器、事件、追蹤點、任務、工作負載、控制流、快取未命中、分頁錯失及其他剖析態樣以提供作業系統組態狀態之一穩健參考觀點。
出於本發明之目的,一程序係在一處理器106 (或該處理器之一或若干核心)上執行之一程式(例如,二進位程式檔案)之一例項。一程序可藉由其在記憶體中如何被引用來定義。記憶體中之一程序定義之實例可包含與程式計數器及暫存器有關之文字(例如,經編譯之程式碼)、資料(例如,全域及靜態變數)、堆積(例如,用於動態記憶體分配)、堆疊(例如,局部變數)及資訊之元素。作業系統中之一程序之一狀態(程序狀態)可包含:(i)正在形成之一新程序;(ii)其資源準備就緒但尚未在處理器上運行之一就緒程序;(iii)正藉由處理器執行之一運行程序;(iv)未運行但正等待一事件發生或資源變得可用之一等待程序;及(v)已在處理器上完成執行之一終止程序。此外,對於各程序,存在在本發明中被稱為一程序控制區塊之儲存程序特定資訊之一資料結構(例如,參見圖6)。該程序控制區塊可包含指示以下項之資料:(i)程序識別(ID);(ii)程序狀態;(iii)處理器暫存器及程式計數器(例如,用於將程序換入及換出處理器);(iv)處理器排程資訊(例如,優先級資訊);(v)記憶體管理資料(例如,頁面表格);(vi)賬務資料(例如,消耗之處理器時間、限制);及(vii)輸入/輸出狀態資料(例如,所使用之裝置、開啟檔案)。
資源管理單元102進一步包含一資源狀態管理器118及一資源任務管理器120。資源狀態管理器118基於OS組態狀態114識別如儲存於資料庫116中之在運算系統中之一資源之一狀態。例如,藉由引用一程序之程序控制區塊來偵測該程序之一狀態,從而偵測程序狀態、暫存器、排程、優先級、記憶體管理及其他程序相關資訊。資源任務管理器120處理與如藉由資源狀態管理器118識別之資源之狀態相關聯之一任務,以減輕處理器106執行該任務之負擔且藉此改良運算系統100之整體效能。例如,若程序控制區塊指示一程序係在一等待狀態中且需要一記憶體資源,則資源任務管理器120處理釋放記憶體之一任務,因此程序可自該等待狀態移動至就緒狀態以供執行。儘管OS組態狀態管理器112、資源狀態管理器118及資源任務管理器120在圖式中被展示為作為可執行指令(例如,韌體或軟體)儲存於記憶體104中,但替代性地,其等可形成於資源管理單元102上之數位邏輯硬體區塊中,或使用韌體、軟體及硬體區塊之一組合來啟用。
一通信管理器122實現運算系統100外部(諸如一網路化運算環境、網際網路、或一雲端或多雲端網路運算環境,在本文中被統稱為一網路126外部)之通信。資源管理單元102及處理器106一起形成運算系統100中之一處理器複合體,且記憶體104、108包含儲存於其上以引起處理器複合體102、106執行貫穿本文件所描述之方法及功能之資料或指令。
一輔助儲存器124對運算系統100提供額外儲存(例如,記憶體)功能性。輔助儲存器124之實例包含非揮發性記憶體、固定及可移除媒體裝置及維持可執行指令及/或支援資料之任何合適記憶體裝置或電子資料儲存器。輔助儲存器124可包含RAM、ROM或其他類型之非揮發性記憶體(諸如一固態磁碟機(SSD)或一硬碟機(HDD))或其等之組合之各項實施方案。輔助儲存器124可用於儲存軟體應用程式或資料,或用於記憶體管理目的。
資源管理單元102可包含此實例中未展示之其他組件,諸如處理單元(例如,中央處理單元、圖形處理單元、人工智慧處理單元、顯示處理器、視訊處理器)、通信單元(例如,數據機)、輸入/輸出控制器及感測器集線器(對於額外實例參見圖3)。
資源管理單元102及處理器106藉由在與處理器及其記憶體108相同之一積體電路晶粒上實施資源管理單元或藉由使用一高速介面匯流排128及資料鏈路130使用低延時通信及寫入異動來通信。高速匯流排128可為形成資源管理單元102與處理器106之間的一無縫介面之任何快速匯流排標準,諸如周邊組件快速互連匯流排(另外被稱為快速PCI或PCIe),或具有低延時效能之其他類似開放式或專有匯流排標準。資源管理單元102亦可具有經由資料鏈路130至記憶體108之用於在無需將資料傳遞通過處理器106之情況下將資料傳送至記憶體108/自記憶體108傳送資料之一直接記憶體存取(DMA)通道。
在一個實例中,協同資源管理單元102上之OS組態狀態管理器112擷取作業系統110之一OS組態狀態114包含偵測指示作業系統及其經管理資源之操作狀態資訊之資源異動事件132。資源異動事件之實例包含關於以下項之事件:一程序運行佇列、一程序等待佇列、程序優先級資料、剩餘之程序運行時間、資源排程資料、資源使用資料、主動裝置資料、記憶體使用資料、記憶體映射資料、虛擬記憶體表、儲存管理資料、一超管理器狀態、一虛擬機器(VM)狀態、一VM客作業系統或藉由超管理器或虛擬機器使用之資源。
在一個實例中,偵測一資源異動事件132且藉由使用一OS抽象指令層134擷取OS組態狀態114。藉由處理器106執行此等指令134以將OS組態狀態推入至資源管理單元102。替代性地或結合抽象層,資源管理單元102上之OS組態狀態管理器112經組態以在偵測到資源異動事件132時擷取或提取OS組態狀態114。在一些情況中,透過監測至高速匯流排128介面及資料鏈路130之寫入異動(諸如透過API佇列及中斷線)來偵測此等資源異動事件132。
經由資源管理單元102中之OS組態狀態管理器112擷取之OS組態狀態114係儲存於與資源管理單元記憶體104相關聯之OS組態狀態資料庫116中,使得資源狀態管理器118可藉由存取資料庫來識別任何特定資源之一狀態。可針對其等識別一狀態之資源之實例包含一程序運行佇列、程序等待佇列、程序優先級資料、剩餘之程序運行時間、資源排程資料、主動裝置資料、記憶體使用資料、記憶體映射資料、虛擬記憶體表、儲存管理資料、一超管理器、一虛擬機器(VM)、一VM客作業系統或藉由該超管理器或虛擬機器使用之資源。
基於對OS組態狀態資料庫116之理解及其對作業系統資源之描繪,資源管理單元資源任務管理器120處理與一資源之狀態相關聯之一任務。資源管理單元102在處理器106可識別及處理之內容之前識別並作用於一資源任務。資源管理單元可針對一特定任務增加處理優先級或效能因子,或解決運算系統有關一特定程序之一安全態樣,或處理運算系統之一額外耗用管理活動。所有此等態樣可導致改良整體系統效能且亦可導致改良使用者對回應處理之感知。因為在資源管理單元執行額外耗用系統管理工作及其他處理任務時,處理器106可專注於使用者可感知活動或其他優先級,所以實現此減少之延時(真實的及如由一使用者感知兩者)。
圖2係繪示大體上包含資源管理單元102、作業系統110、記憶體108及處理器106之一運算系統100之另一實例之一方塊圖。然而,在此實例中,運算系統100經組態為具有一超管理器136及運行一客作業系統之虛擬機器138。儘管僅描繪一個虛擬機器,但運算系統100可包含如藉由超管理器136管理之多個虛擬機器及/或客作業系統。
先前參考圖1所論述之組件、功能性及方法類似地執行以用於管理圖2中所包含之超管理器及虛擬機器組件。例如,資源管理單元102之OS組態狀態管理器112將OS組態狀態114儲存至一OS組態狀態資料庫116中。然而,OS組態狀態114可包含與超管理器136及虛擬機器138有關之作業系統態樣。資源狀態管理器118再次基於作業系統110、超管理器136及虛擬機器138之組態狀態114識別如儲存於資料庫116中之在運算系統中之一資源之一狀態。資源任務管理器120處理與如藉由資源狀態管理器118識別之該資源之該狀態相關聯之一任務,以減輕處理器106執行該任務之負擔,因此改良運算系統之整體效能。
類似於參考圖1所論述之態樣,擷取作業系統110、超管理器136及虛擬機器138之OS組態狀態114包含獲得作業系統及其經管理資源之操作狀態資訊。可藉由監測及偵測OS資源異動事件132來獲得此資訊。可由資源管理單元102藉由使用虛擬化技術140 (諸如單根輸入/輸出虛擬化(SR-IOV)或多根輸入/輸出虛擬化(MR-IOV))來擷取此資訊,以容許為可管理性及效能而藉由超管理器或虛擬機器隔離匯流排(例如,PCIe)。經管理資源之實例性操作狀態資訊可係關於:一程序運行佇列、一程序等待佇列、程序優先級資料、剩餘之程序運行時間、資源排程資料、資源使用資料、主動裝置資料、記憶體使用資料、記憶體映射資料、虛擬記憶體表、儲存管理資料、一超管理器、一虛擬機器、一虛擬機器客作業系統或藉由該超管理器或虛擬機器使用之資源。
圖3係繪示作為一運算裝置302或整合至運算裝置302中之一實例性運算系統300之一概念圖,該運算裝置302經組態為具有用於擷取OS組態狀態以用於將任務卸載至一資源管理單元(例如,一資源管理單元102)之組件及功能性。運算裝置302係用於圖1之運算系統100之一實例性運算環境或應用程式。舉一些非限制性實例,運算裝置302可為一行動電話302-1、一平板電腦裝置302-2、一膝上型電腦302-3、一電視機/顯示器或桌上型或伺服器電腦302-4、一電腦化手錶302-5或其他可佩戴裝置302-6、一遊戲控制器302-7、一網路化多媒體或語音助理系統302-8或一家用電器302-9。
運算裝置302包含資源管理單元102、記憶體104及經組態以擷取或獲得儲存於記憶體108中且在處理器106上執行之作業系統110之OS組態狀態114之OS組態狀態管理器112。資源管理單元102之OS組態狀態管理器112將OS組態狀態114儲存至與資源管理單元102相關聯之一OS組態狀態資料庫116中。資源狀態管理器118基於OS組態狀態114識別如儲存於資料庫116中之在運算裝置中之一資源之一狀態。資源任務管理器120處理與如藉由資源狀態管理器118識別之該資源之該狀態相關聯之一任務,以減輕處理器106執行該任務之負擔且藉此改良運算裝置之整體效能。
運算裝置302亦包含通信組件304、輸入/輸出組件306、通信介面310及輸入/輸出介面312。此等介面及組件可利用記憶體108及處理器106,及/或被併入至資源管理單元102中以利用其操作。
資源管理單元102亦可包含處理單元308。處理單元308處理電腦可執行指令以執行運算裝置302之操作且執行運算裝置302之功能。處理單元308可包含控制器、微控制器、處理器、微處理器、硬體處理器、硬體處理單元、數位信號處理器、圖形處理器、圖形處理單元、視訊處理器、視訊處理單元及類似者之任何組合。
與資源管理單元102相關聯之記憶體104,及記憶體108儲存藉由處理器106及/或處理單元308執行以執行操作且執行功能之資訊及指令。此等記憶體經組態以對運算裝置302提供可執行指令(例如,韌體、恢復韌體、軟體、應用程式、模組、程式、功能及類似者)及資料(例如,使用者資料、操作資料、掃描結果)之持久性及/或非持久性儲存以支援該等可執行指令之執行。此等記憶體之實例包含揮發性記憶體及非揮發性記憶體、固定及可移除媒體裝置及維持可執行指令及支援資料之任何合適記憶體裝置或電子資料儲存器。此等記憶體可包含在各種記憶體裝置組態中之RAM、ROM、快閃記憶體、快取記憶體及其他類型之儲存記憶體之各項實施方案,或可為一固態磁碟機(SSD)、一硬碟機(HDD)或其等之組合。此等記憶體排除傳播信號。
通信組件304實現裝置資料在運算裝置302與其他裝置、運算系統及網路126之間的有線及/或無線通信。通信組件304可包含用於各種類型之有線及無線通信之接收器、傳輸器及收發器。通信介面310處置與使用通信組件304傳輸及接收之通信相關聯之訊息傳遞及協定。
輸入/輸出組件306對運算裝置302提供連接能力。例如,輸入/輸出組件306可包含管理運算裝置302之一使用者介面之一使用者介面裝置,或可提供超出僅僅該使用者介面裝置之額外連接能力。輸入/輸出組件306亦可包含用於接收資料(包含使用者輸入)之資料介面或資料輸入埠。處理器106及/或處理單元308可根據藉由輸入/輸出介面312自輸入/輸出組件306獲得之輸入資訊定製操作。同樣地,基於藉由通信介面310自通信組件304獲得之資訊,處理器106及/或處理單元308根據傳入或傳出通信定製操作。
圖4至圖5係繪示用於在一運算系統中擷取作業系統組態狀態以用於將任務卸載至一資源管理單元之實例性方法之高階操作的流程圖400、500。方法400、500及本文中所描述之其他方法之操作可體現為儲存於一非暫時性、機器可讀(例如,電腦/處理器可讀)媒體(諸如一RAM或ROM記憶體或其他儲存裝置)上以在一(或若干)運算裝置中執行之程式化指令,或可藉由硬體區塊執行,或其等之組合。在一些實例中,可藉由包含一主處理器及一資源管理單元之一處理器複合體讀取及執行儲存於記憶體中之程式化指令及/或結合資源管理單元之硬體區塊起作用,來達成實施方法之操作。在一些實例中,可使用一資源管理單元(諸如一系統單晶片(SoC)及/或其他硬體組件)獨立地或結合可藉由一運算裝置中之一(或若干)處理器執行之程式化指令來達成實施方法之操作。
本發明中所描述之實例性方法可包含一個以上實施方案,且方法之不同實施方案可能不採用各自流程圖中所呈現之每個操作,或可採用未展示之額外操作。因此,雖然方法之操作在(若干)流程圖內按一特定順序呈現,但其等呈現之順序並不旨在限制可實際實施操作之順序,亦不限制是否可實施所有操作。例如,方法之一項實施方案可透過執行數個初始操作而不執行後續操作來達成,而方法之另一實施方案可透過執行所有操作來達成。
現參考圖4之實例性方法400,一第一操作402包含回應於作業系統在一運算系統中之一處理器上執行而將一作業系統資源異動事件記入(posting)於該運算系統之一記憶體中。一作業系統異動事件係指示由於正發生或已發生一作業系統事件而何時可擷取作業系統之一組態狀態。擷取作業系統之一組態狀態包含獲得作業系統及其經管理資源之操作狀態資訊。此等資源及作業系統操作狀態資訊之實例包含一程序運行佇列、一程序等待佇列、程序優先級資料、剩餘之程序運行時間、資源排程資料、資源使用資料、主動裝置資料、記憶體使用資料、記憶體映射資料、虛擬記憶體表、儲存管理資料、超管理器活動、虛擬機器活動、虛擬機器客作業系統活動及其他相關程序及系統活動、狀態及資料。
在404,一資源管理單元(諸如一SoC)獲得作業系統之組態狀態且將其儲存於與該資源管理單元相關聯之一資料庫(例如,記憶體)中。例如,上文所描述之資源管理單元102藉由憑藉在與處理器及其記憶體相同之一積體電路晶粒上實施資源管理單元或藉由使用一高速介面匯流排及資料鏈路使用低延時通信及讀取/寫入異動與處理器及記憶體通信來獲得組態狀態。資源管理單元亦可具有至記憶體之用於在無需將資料傳遞通過運算系統中之處理器之情況下將資料傳送至記憶體/自記憶體傳送資料之一直接記憶體存取(DMA)通道。
在406,資源管理單元基於儲存於資料庫中之作業系統組態狀態識別運算系統中之一資源之一狀態,且識別與該資源相關聯之待執行之一任務。例如,程序運行佇列中之一程序資源之一狀態可經識別為針對處理器上之執行時間係下一個之一程序,且該程序要執行需要一定數目之位元組之一記憶體資源。作為另一實例,程序等待佇列中之一程序資源之一狀態可經識別為等待一資源相關事件發生之一個狀態。一實例性事件可為程序需要描述檔案系統中之一目錄之一虛擬檔案系統(VFS)索引節點(inode),且該索引節點可能不在快取區中。因為此,程序在其可繼續執行之前必須等待自含有檔案系統之實體媒體提取該索引節點。
在408,資源管理單元處理與資源之狀態相關聯之任務以減輕處理器執行該任務之負擔且改良運算系統之效能。例如,在上文所描述之背景內容(需要一定數目之位元組之記憶體之一記憶體資源之一任務之背景內容)中,資源管理單元可執行使該記憶體資源可用之任務,諸如藉由換出記憶體,使得當實際上在處理器上再次執行程序時足夠記憶體可用。作為另一實例,在上文所描述之關於等待提取一索引節點之等待佇列之背景內容中,資源管理單元可在作業系統及處理器可能夠執行任務之前執行任務以提取索引節點。相對於程序已等待處理器(而非資源管理單元裝置之處理器)提取索引節點之情況,此容許程序避免等待執行。其他實例包含資源管理單元針對一特定程序修改處理優先級或效能因子,解決運算系統有關一特定程序之一安全態樣及處理運算系統之其他額外耗用管理活動。
現參考圖5,實例性方法500描繪用於擷取作業系統組態狀態以用於將任務卸載至一運算系統中之一資源管理單元之額外細節。在502,儲存於一記憶體中之一作業系統在一運算系統中之一處理器上執行。在504,在作業系統指令之執行期間,該作業系統將指示一資源事件發生及作業系統之一新組態狀態之一資源異動事件記入至記憶體。作為一實例,作業系統軟體之一抽象層記入指示(例如)一程序執行狀態、資源使用及排程、記憶體使用及映射、超管理器狀態、虛擬機器狀態及/或作業系統為運算系統管理之任何其他異動事件之資源異動事件資料。
在506,一資源管理單元經由一低延時通信資料鏈路與處理器及記憶體通信。此低延時通信資料鏈路可為一高速匯流排(例如,PCIe)或經由快取區(若資源管理單元係在與處理器相同之一積體電路晶粒上實施)。在508,資源管理單元獲得(例如,擷取)作業系統之組態狀態且將其儲存至與資源管理單元相關聯之一資料庫。應注意,在記入一異動事件504之後,圖中之一返回執行流程箭頭514繪示即使在資源管理單元與記憶體及處理器通信506時,作業系統仍繼續在處理器上執行502。此容許即使在資源管理單元針對整體改良系統效能而執行其功能時508、510、512時,作業系統仍繼續執行其操作。
在510,資源管理單元基於作業系統之組態狀態識別來自資料庫之一資源之一狀態。例如,一資源之一狀態可經識別為需要額外時間來執行之一程序,或將需要存取需要自儲存器擷取之特定I/O資源之一程序,或若經執行則可引起一安全問題之一程序,或可受益於修改一計時組件之一時脈速率/信號頻率之一程序或系統。
在512,資源管理單元處理與資源之狀態相關聯之一任務。例如,預先交換記憶體,因此在佇列中等待下一個執行之程序在其如上所述開始在處理器上執行時具有足夠可用記憶體,或如上所述提取一資源,或針對在佇列中等待下一個執行之程序分配額外記憶體,或解決關於一程序之一潛在安全問題,或調整一分量信號頻率以滿足處理要求。對一資源狀態之此認識使資源管理單元能夠在處理器或作業系統最終可執行一任務之前作用於該任務。
在512處理針對資源之任務之後,執行控制在516返回,以容許資源管理單元視需要自資料庫識別510下一資源之一狀態,且處理與該下一資源相關聯之另一任務512。視需要針對在資料庫中所識別之資源重複此處理。在藉由資源管理單元執行此資源狀態識別510及任務處理512時,作業系統繼續執行502及記入資源異動事件504,且資源管理單元繼續與處理器及記憶體通信506且擷取508作業系統之一組態狀態且將該組態狀態儲存於資料庫中。擷取作業系統組態狀態以用於將任務自一運算系統中之一處理器卸載至一資源管理單元之此實例性方法提供整體改良之運算系統效能。
圖6係繪示如藉由一資源管理單元102擷取至一記憶體104及一資料庫116中之在一運算系統100之一記憶體108中之一實例性OS組態狀態114的一方塊圖。類似於參考圖1至圖3之論述,運算系統100大體上包含資源管理單元102、記憶體108、作業系統110及主處理器106。此實例將用於例示性資源之在記憶體108中之操作狀態資訊描繪為指示在偵測到一資源異動事件(例如,資源異動事件132)之一時間之OS組態狀態114。在此實例中,OS組態狀態114亦描繪表示如上文參考圖1所描述之程序運行佇列或等待佇列中之一實例性程序之一狀態之一程序控制區塊142。儘管僅描繪一單個程序控制區塊,但針對程序運行佇列及等待佇列中之各程序存在一程序控制區塊。在偵測到資源異動事件132時,便將OS組態狀態114複製602 (推入或提取)至資源管理單元102上之OS組態狀態資料庫116中。儘管圖式繪示識別數個實例性資源之一實例性OS組態狀態,但可類似地藉由資源管理單元102協同OS組態狀態管理器112參考、識別及擷取其他作業系統組態狀態資源、資源參考或狀態指示符至資料庫116中。
在資料庫116具有OS組態狀態114之情況下,資源管理單元102接著可處理與在資料庫中識別之任何給定資源之一狀態相關聯之一任務以改良運算系統之效能。例如,資源管理單元102可針對一特定程序增加處理優先級或效能準則,或解決運算系統有關一特定程序之一安全態樣,或處理運算系統之一額外耗用管理活動,或修改一計時組件之一信號頻率。處理一額外耗用管理活動(諸如記憶體分配或資料提取)之一實例係在上文參考圖4且在下文進一步參考圖9進行描述。使資源管理單元處理此等任務之各者引起經改良整體系統效能且亦可改良一使用者對運算系統中之回應處理之感知,此係因為在資源管理單元102執行額外耗用系統管理工作時,處理器106可專注於使用者可感知活動或其他所需活動。用一資源管理單元動態地按比例調整時脈速率
圖7係繪示經組態以藉由一資源管理單元擷取作業系統組態狀態以用於動態地按比例調整時脈速率之實例性運算系統100之一方塊圖。動態地按比例調整一運算系統中之計時組件之時脈速率或時脈頻率(在本文中可互換使用)達成包含效能提升、功率最佳化、熱動力約束及減少處理時間之益處。使一資源管理單元而非一CPU能夠回應於作業系統組態狀態而動態地按比例調整系統中之時脈速率,實現對活動事件之更敏感回應及相關比例調整,且避免CPU在比例調整任務上浪費資源,使得其可解決其他運算系統操作。
作業系統110在處理器106上自記憶體108執行,且在偵測到一OS異動事件132時,藉由資源管理單元102之OS組態狀態管理器112擷取602 OS組態狀態114且將其儲存至記憶體104之OS組態狀態資料庫116中。為簡潔及圖式空間限制,在OS組態狀態114及資料庫116中僅展示兩個實例性作業系統資源(一程序運行佇列及一程序等待佇列),但可類似地藉由資源管理單元102表示、參考、識別及擷取其他OS組態狀態資源、狀態指示符或資料至資料庫116中。
在資料庫116中表示程序運行佇列及程序等待佇列資源之情況下,資源管理單元資源狀態管理器118接著可識別該等佇列中之一特定資源116之狀態且處理與該特定資源相關聯之一任務120以改良運算系統之效能。在此實例中,資源狀態管理器118自資料庫116中之運行佇列識別一程序資源之指示其需要或將受益於修改運算系統中之一計時組件之時脈速率之狀態。益處包含維持或改良運算系統100之程序之效能、整體系統效能、電力使用或熱動力。在一個實例中,藉由引用程序控制區塊識別程序資源之狀態。所考量之程序控制區塊中之因數可包含程序狀態、排程資訊、記憶體管理資料及指示需要或消耗大量處理時間或需要大量記憶體之賬務資料。藉由知道程序之狀態(諸如程序將何時執行、程序需要之資源及運算系統中之其他資源之狀態),資源管理單元可相應動態地按比例調整時脈速率。修改時脈速率可包含修改處理器之一效能或記憶體之存取速度以解決運算系統中之負載操作條件、效能、功率消耗、熱動力或其等之組合。
在識別程序之狀態之經擷取OS組態狀態可用之情況下,且視需要在其他程序相關度量可用之情況下,資源管理單元102可在作業系統110實際可在處理器106上偵測及執行之內容之前識別處理需求及時脈速率修改益處。例如,OS組態狀態連同相關聯之程序度量或表示程序度量之一經偵測或經指派程序評分可展示:(i)所識別程序比正常需要更多記憶體資源;(ii)程序需要處理器密集型活動;(iii)程序可在減少記憶體資源或減少處理器活動之情況下工作;(iv)可在短時間內關閉(例如,時脈速率終止)處理器106中之一特定核心或記憶體108中之一記憶體庫;或(v)一超管理器或虛擬機器為改良整體系統效能而需要增加或減少之處理器活動或記憶體使用。
在藉由資源狀態管理器118判定可修改運算系統中之一計時組件(諸如處理器106或記憶體108)之一時脈速率以改良程序或運算系統100之態樣之情況下,則資源任務管理器120起始修改相關計時組件之時脈速率之任務。在此所描繪實例中,基於所識別之關於OS組態狀態資料庫116中之一程序之資訊,資源任務管理器120可修改一時脈704之一時脈速率702,該時脈704修改至記憶體108之時脈速率信號706。類似地,在此所描繪實例中,資源任務管理器120可修改一時脈708之時脈速率702,該時脈708修改至處理器106之時脈速率信號710。資源任務管理器120可類似地修改至系統100中之任何數目個其他時脈之時脈速率702以修改此實例中未展示之其他各自計時組件(例如,一圖形處理單元(GPU)、MMU、匯流排、特定記憶體庫)之時脈速率信號。
為判定一程序或整體系統是否可受益於修改時脈速率,可考量與程序、其程序控制區塊及OS組態狀態114有關之任何數目個因素,例如,包含記憶體使用、記憶體需求、排程、程序運行佇列、程序等待佇列、程序優先級資料、程序運行時間剩餘資料、程序排程資料、超管理器狀態、虛擬機器狀態或其等之組合。替代性地或組合地,可考量與一程序(程序度量)相關聯之處理度量,該等處理度量指示所使用之資源及與程序之執行相關聯之系統度量。可擷取程序度量、對其等指派一評分且將其等儲存於資料庫116中,或若先前已對程序指派評分則可偵測或獲得評分。可藉由在於處理器106上執行期間監測程序來擷取及獲得程序度量,或若可用,則自資料庫116或在運算系統100外部且可經由通信管理器122及網路126存取之一儲存資源712擷取程序度量。
可藉由使用一作業系統分析工具(諸如一Linux作業系統事件導向可觀察性工具,例如,「perf」)獲得反映所使用之資源及相關處理資料之程序度量。此容許追蹤作業系統之效能計數器、事件、追蹤點、任務、工作負載、控制流、快取未命中、分頁錯失及其他剖析態樣。使用一可觀察性或剖析工具擷取或自外部儲存資源712獲得之程序度量經維持於資料庫116中以供資源狀態管理器118在判定修改一組件之一時脈速率是否可有利於整體程序或系統時參考。基於程序度量修改該時脈速率在任何數目個事件中可為有利的,例如,該等事件包含:若程序評分或度量指示程序需要大量記憶體使用,則增加記憶體108之時脈速率;或若程序評分或度量指示程序需要繁重處理,則增加處理器106之時脈速率;或若程序評分或度量指示形成增加之熱問題之繁重處理,則降低處理器之時脈速率以減少熱問題。
因為程序評分表示與程序相關聯之處理度量,所以其使資源狀態管理器118能夠快速且容易地識別程序或系統是否將受益於修改一計時組件之一時脈速率。評分亦使資源狀態管理器118能夠容易地比較程序與系統中之其他程序之評分。若程序係先前與一評分相關聯之一程序,則可自外部儲存資源712獲得一評分。例如,可對表示由使用者在一運算裝置上玩之一遊戲之一程序指派有關其如在其他運算裝置或系統中使用之已知處理度量一評分。該評分接著可如與該特定程序相關聯地儲存於外部儲存資源712中且由資源管理單元102利用以快速且容易地判定修改運算系統100中之程序之時脈速率之益處。
資源任務管理器118亦可偵測與儲存於OS組態狀態資料庫116中之其他程序狀態相關聯之其他評分,或基於經偵測之處理度量對該等其他程序指派其他評分,或獲得來自儲存資源712之其他程序之其他評分,該等其他評分全部表示與該等其他程序相關聯之處理度量及藉由該等程序使用之資源。資源任務管理器接著可比較程序評分與其他程序之評分以判定為改良系統效能是否、何時及如何修改運算系統100中之計時組件之時脈速率。
例如,可比較程序評分與另一程序之一評分,或與程序運行佇列中之多個其他程序之評分之一組合,且倘若其他程序之評分或多個其他程序之一組合評分滿足指示用於修改組件之時脈速率之一給定臨限值,則可修改該組件之時脈速率。作為一個實例,若在處理器使用上對程序評分加權非常重,且在程序運行佇列中不存在對處理器重度加權之其他程序評分,則資源任務管理器118可能不需要修改程序之時脈速率。另一方面,若在程序運行佇列中存在對處理器重度加權之其他程序評分,則資源任務管理器118可針對程序增加有關處理器106、記憶體108或其他計時組件之時脈速率。
圖8繪示用於藉由一資源管理單元擷取作業系統組態狀態以用於動態地按比例調整時脈速率之一實例性方法800。在802,該資源管理單元擷取在運算系統中之處理器上執行之在記憶體中之作業系統之一組態狀態,且將該組態狀態儲存至與資源管理單元相關聯之一資料庫。在804,資源管理單元基於作業系統之組態狀態自該資料庫識別運算系統中之一程序資源之一狀態。在用於動態地按比例調整時脈速率之此實例中,程序可為在一運行佇列中之等待在處理器上執行之一程序,或在等待佇列中之已部分執行但暫停且在再次開始執行之前等待一事件發生之一程序。
資源管理單元檢查程序狀態以判定程序或運算系統是否受益於修改運算系統中之一計時組件(諸如處理器或記憶體)之一時脈速率,以維持或改良運算系統之程序之效能、整體系統效能、功率消耗或熱動力。例如,資源管理單元檢查運行佇列或等待佇列中之程序之程序控制區塊。若一程序狀態、排程資訊、記憶體管理資料及/或賬務資料指示仍需要或消耗大量處理時間,或需要大量記憶體,則可藉由資源管理單元增加處理器時脈速率或記憶體時脈速率以解決需求。在806,另一實例係使資源管理單元偵測一程序評分是否與程序相關聯。該程序評分表示與程序相關聯之整體處理度量,及藉由運算系統及作業系統中或在運算系統外部之具有資源管理單元之另一運算系統及作業系統中之程序使用之資源。程序評分使資源管理單元能夠容易地識別程序或系統是否將受益於修改一計時組件之一時脈速率。
若未偵測到806與程序相關聯之一程序評分,則可自一作業系統剖析工具或一外部儲存資源獲得808一程序評分。雖然程序係在運算系統中執行,但可使用已知用於追蹤作業系統之效能計數器、事件、追蹤點、任務、工作負載、控制流、快取未命中、分頁錯失及其他剖析態樣之標準作業系統剖析工具來計算或獲得程序評分。替代性地,可自一外部儲存資源獲得程序評分。
在810,若OS組態狀態或程序評分滿足一臨限值,則資源管理單元修改與程序相關聯或以其他方式對運算系統有益之用於一計時組件之時脈速率812。若未滿足該臨限值,則執行控制返回814以使資源管理單元識別804運算系統中之另一程序資源之一狀態。
為判定一OS組態狀態是否滿足臨限值810以用於修改時脈速率,考量與程序狀態相關聯之因素,例如,包含記憶體使用、記憶體需求、排程、程序運行佇列、程序等待佇列、程序優先級資料、程序運行時間剩餘資料、程序排程資料、超管理器狀態、虛擬機器狀態或其等之組合。另一方面,程序評分容許資源管理單元容易地比較其與一臨限值評分810,或比較其與系統中之其他程序之評分以判定是否滿足一整體臨限值評分810。可在其他程序在運算系統中執行時自一剖析工具,或若該等其他程序先前已與一評分相關聯,則自一外部儲存資源獲得或計算系統中之其他程序之評分。若OS組態狀態及/或程序評分滿足臨限值810,則資源管理單元修改運算系統中之各自計時組件之時脈速率812,且執行控制返回816以識別804另一程序之一狀態並對其起作用。
基於作業系統組態狀態、程序狀態及度量修改時脈速率在任何數目個事件中可為有利的。例如,若度量暗示程序需要大量記憶體使用,則可發生增加記憶體之時脈速率,或若度量暗示任何程序需要繁重處理,則可發生增加處理器或一超管理器或虛擬機器之時脈速率。另一方面,若度量暗示通常形成增加之熱問題之繁重處理,則可發生降低處理器之時脈速率以減少熱動力,或若度量暗示特定組件中無活動,則甚至可在該等組件中發生短暫地終止一時脈速率。將記憶體管理卸載至一資源管理單元
圖9係繪示經組態為具有用於擷取作業系統組態狀態及管理記憶體交換之一資源管理單元102之一實例性運算系統100的一方塊圖。作業系統110在處理器106上自記憶體108執行。在偵測到一OS異動事件132之後,藉由資源管理單元102之OS組態狀態管理器112擷取602 OS組態狀態114且將其儲存至記憶體104之OS組態狀態資料庫116中。為論述簡潔及圖式限制,在資料庫116中僅展示兩個實例性作業系統資源(一程序運行佇列及一程序等待佇列),但可類似地藉由資源管理單元102表示、參考、識別及擷取其他作業系統組態狀態資源、狀態指示符或資料至資料庫116中。
在資料庫116中表示程序運行佇列及程序等待佇列資源之情況下,在此實例中,資源管理單元資源狀態管理器118自資料庫116中之運行佇列識別一程序,該程序需要交換與該程序相關聯之記憶體資源902以維持或改良整體系統效能。藉由考量任何數目個態樣自如儲存於資料庫116中之作業系統110之OS組態狀態114識別與程序相關聯或有關程序(諸如在程序控制區塊中識別)之程序狀態及資源。例如,態樣可包含記憶體使用、記憶體需求、輔助記憶體使用、排程、程序運行佇列、程序等待佇列、程序優先級資料、程序運行時間剩餘資料、程序排程資料、一超管理器或虛擬機器之狀態,或其等之組合。
術語記憶體交換可係指將一整個程序位址空間作為一單個事件複製出至一交換裝置(諸如輔助儲存器124)或返回。且術語分頁可係指以更精細粒度(諸如每區塊4K位元組,被稱為一頁面大小)複製進或出位址空間之一或多個相同大小區塊。然而,為簡化本發明中之論述,分頁及交換將可互換地用於指代至或自輔助儲存器124複製記憶體內容。
在經擷取OS組態狀態在資料庫116中可用之情況下,資源管理單元102可在作業系統將在處理器106上偵測及執行之內容之前識別對於一程序之記憶體交換要求,從而避免記憶體分頁錯失且改良運算系統效能。例如,OS組態狀態可展示所識別程序需要執行比記憶體108中當前可用之記憶體資源更多之記憶體資源,或程序最近完成執行且並不需要記憶體資源。考量到諸如老化、頁面是否鎖定於記憶體中或頁面是否在記憶體中共用之因素,資源狀態管理器118檢視資料庫116中之程序以查看其是否為用於交換之一良好候選者,例如,其是否具有可在記憶體中交換或自記憶體丟棄之頁面。
當資源狀態管理器118判定程序需要換進或可換出記憶體內容902時,資源任務管理器120執行記憶體108與輔助儲存器124之間的記憶體交換904。若程序需要執行比記憶體108中可用之記憶體更多之記憶體,則資源管理單元102可使當前時間不需要用於執行之其他記憶體內容移出至輔助儲存器124,且資源管理單元自輔助儲存器124換進程序需要執行之內容。另一方面,若程序已完成執行且並不需要使用記憶體內容902,則資源管理單元102可使記憶體內容902移出至輔助儲存器124以釋放記憶體108。
在另一實例中,在無需內容之頁面大小計算或頁面大小處理之情況下使用一可變大小之記憶體內容在記憶體108與輔助儲存器124之間交換記憶體內容902。例如,資源管理單元102可以所需之一特定量(部分或全部記憶體內容902)將記憶體內容902換出至輔助儲存器124,或以所需之該特定量以一次資料串流交換將記憶體內容902換進至記憶體108中,而非使用一標準設定頁面大小(例如,1K、2K或4K位元組)以交換記憶體內容902,從而需要交換多個頁面之多個處理任務且可能不太有效地使用記憶體。例如,若需要交換之記憶體之大小係1.5K,則資源管理單元102交換1.5K。因此,無需使用一傳統頁面大小計算或多階段頁面處理活動來處理交換以交換部分或全部記憶體內容902。
可執行此記憶體管理及交換,此係因為資源管理單元瞭解OS組態狀態114,且例如,由於已知等待佇列及排程優先級兩者,所以資源管理單元知道各程序將使用什麼記憶體、什麼記憶體係空閒的,需要交換多少記憶體,運行佇列中之下一程序將需要執行多少記憶體及指導記憶體之使用以改良運算系統中之效能之其他因素。資源管理單元102可使用其自身直接記憶體存取(DMA)且在無需暫停處理器106之情況下,以程序將消耗該等頁面之順序(例如,使用用於預測此之堆疊及堆積指示符)且在用於該等頁面之記憶體108不足之情況下,在各程序運行之前預交換用於各程序之頁面。資源管理單元亦知道在處理器106上執行之最後程序及哪一程序在其返回至一運行狀態為止剩餘的時間最多,因此資源管理單元可驅逐該最後程序頁面以在記憶體108中騰出更多空間以用於其他處理需求。
類似地,在運行於運算系統100中之一超管理器136或虛擬機器138之背景內容中,藉由資源管理單元102對該超管理器及該虛擬機器之此記憶體管理處理改良其等有效性,例如,超管理器換出或遷移虛擬機器。資源管理單元知道哪一虛擬機器將最近運行及接下來將為哪一虛擬機器排程,因此資源管理單元可在需要時將虛擬機器提取至記憶體108且在虛擬機器完成執行之後將其換回至輔助儲存器,從而使超管理器更有效。
圖10繪示用於藉由一運算系統中之一資源管理單元擷取作業系統組態狀態以用於管理記憶體交換之一實例性方法1000。在1002,資源管理單元擷取在該運算系統中之處理器上執行之作業系統之一組態狀態且將該組態狀態儲存至與資源管理單元相關聯之一資料庫(例如,記憶體)。在1004,資源管理單元基於作業系統之組態狀態自該資料庫識別運算系統中之一程序資源之一狀態(如可在程序控制區塊中引用)。作為一實例,程序可為在一運行佇列中但等待在處理器上執行之一程序,或已部分執行但暫停且在再次開始執行之前在等待佇列中等待一事件發生之一程序。
在此實例中,資源管理管理自資料庫中之運行佇列識別如需要交換記憶體資源以維持程序執行或改良系統效能之一程序。藉由考量諸如以下之因素自作業系統之組態狀態識別該程序之狀態及與程序相關聯或與程序有關之資源:作業系統之記憶體使用、記憶體需求、輔助記憶體使用、排程、程序運行佇列、程序等待佇列、程序優先級資料、程序運行時間剩餘資料、程序排程資料、超管理器或虛擬機器活動,或其等之組合。
在1006,若經判定不需要一記憶體交換,則執行控制返回1012以識別另一程序1004。若經判定1006程序需要基於經擷取之作業系統組態狀態交換記憶體,則資源管理單元判定一記憶體交換大小1008。在此實例中,該記憶體交換大小係基於為改良系統效能及有效記憶體使用而在記憶體中交換之內容之可變大小。給定經擷取之作業系統組態狀態,資源管理單元知道程序及其他系統活動之細節,使得其可基於可變大小之內容執行記憶體交換,而非必須執行內容之標準設定頁面大小傳送。
在1010,在此實例中,使用基於記憶體內容之可變大小之一交換大小至或自一輔助儲存器交換記憶體內容,而無需使用一設定頁面大小限制。例如,資源管理單元可使用記憶體內容之實際大小而非一設定頁面大小以一次資料串流交換將記憶體內容換出至輔助儲存器,或將記憶體內容自輔助儲存器換入記憶體中,從而避免交換多個頁面之多個處理任務。在交換記憶體內容1010之後,執行控制返回1014以識別另一程序之一狀態1004。
雖然資源管理單元在處理擷取作業系統組態狀態1002,識別可能需要一記憶體交換之一程序1004,判定是否需要一記憶體交換1006,判定記憶體交換大小1008且接著實際上交換記憶體內容1010之所有此等功能,但作業系統分開地且並行地繼續在處理器上執行其操作。用一資源管理單元管理惡意程式及脆弱性
圖11係繪示經組態以用一資源管理單元102擷取作業系統組態狀態以用於偵測及管理惡意程式及軟體脆弱性之一實例性運算系統100之一方塊圖。作業系統110係在處理器106上自記憶體108執行,且在偵測到一作業系統異動事件132時,藉由資源管理單元102之OS組態狀態管理器112擷取602 OS組態狀態114且將其儲存至記憶體104之OS組態狀態資料庫116中。為論述簡潔及圖式空間限制,在資料庫116中僅展示兩個實例性作業系統資源(一程序運行佇列及一程序等待佇列),但可類似地藉由資源管理單元102表示、參考、識別及擷取其他作業系統組態狀態資源、資料或狀態指示符114至資料庫116中。
在資料庫116中表示程序運行佇列及程序等待佇列資源之情況下,資源管理單元接著可識別一資源118之狀態且處理與該資源相關聯之一任務120以改良運算系統之效能。在此實例中,資源管理單元資源狀態管理器118自資料庫116中之運行佇列識別如就緒以待執行(例如,藉由引用程序控制區塊)之一第一程序。在執行該第一程序之前,藉由資源任務管理器120識別(例如,產生) 1102第一程序之一指紋以隨後與儲存於記憶體104中之經標記程序之複數個指紋1104比較。在其他態樣中,在多個時間點(諸如在執行之前、期間及/或緊接其後)識別第一程序之指紋以擷取程序之一潛在滾動(例如,變化)指紋。
對於本發明,一指紋表示識別程序或其二進位或源檔案之一或多個態樣、特性、方案、性狀或角度。例如,指紋可係關於以下項或自以下項產生:(i)程序之二進位程式檔案;(ii)程序之源程式檔案;(iii)在程序執行時在記憶體中之程序之一角度(例如,由於程序碼在執行時可在記憶體中動態地變形,包含在記憶體中之滾動或分散執行變化,諸如自一程式碼段至一資料段);及/或(iv)如藉由一機器學習演算法產生之在記憶體中之程序或其二進位檔案或其源檔案或其等之某一組合之一角度。因此,一單個程序可具有多個指紋,且出於關聯目的可連結該多個指紋。
可藉由對第一程序執行一雜湊函數(例如,藉由對第一程序之二進位程式檔案或源程式檔案,或在程序之程式碼或資料存在於記憶體中以供處理器執行時對程序之程式碼或資料執行一雜湊函數)來識別第一程序之指紋。例如,在程序資料在移動通過資料之一窗口中雜湊之情況下可應用一滾動雜湊函數,或可使用多項式應用一拉賓(Rabin)指紋方案。亦可藉由使第一程序通過一搜尋過濾器,諸如一正規表達式(例如,regex或regexp)引擎來識別指紋。此可藉由對以下項應用該搜尋過濾器來完成:(i)程序之二進位程式檔案;(ii)程序之源程式檔案;(iii)如存在於記憶體中之程序之程式碼或資料;及/或(iv)程序正在存取之資料、記憶體或裝置。可使用變化參數遞迴地或迭代地應用此正規表達式功能性以逐步縮小範疇及結果。指紋產生方法簡單地與儲存於資源管理單元之記憶體104中之經標記程序之複數個指紋1104之指紋產生方法一致,使得可進行一準確比較。
經標記程序之複數個指紋1104係指示程序、可執行檔案、程式、應用程式、作業系統或其他軟體,其等包含可執行指令或係具有一已知脆弱性或已被識別為惡意程式之二進位程式檔案。惡意程式之實例可呈以下形式:一病毒、木馬程式、蠕蟲程式、廣告軟體間諜程式或勒索軟體,或專門設計用以破壞、損壞運算系統或獲得對運算系統之未經授權存取或控制或竊取或毀壞資料之任何軟體。一脆弱性係軟體中或運算系統中之可被利用於破壞、損壞運算系統或獲得對運算系統之未經授權存取或控制,或損及運算系統或引起運算系統之非預期行為之任何弱點。
可藉由資源任務管理器120透過資源管理單元通信管理器122及網路126自一外部儲存器1106週期性地(意謂在系統參數容許時偶爾地或連續地)獲得經標記程序之指紋1104。外部儲存器1106可為運算系統外部之一區域網路上之一資料庫,或定位於一遠端運算環境(諸如一雲端運算環境或多雲端環境)中經由網際網路存取之一資料庫。外部儲存器1106維持已知惡意程式及脆弱軟體之一指紋清單。資源管理單元週期性地存取外部儲存器1106以更新其自身之經標記程序之指紋1104之記憶體。
資源管理單元102比較第一程序之指紋1102與儲存於資源管理單元之記憶體104中之經標記程序之指紋1104。替代性地或結合與儲存於記憶體104中之經標記程序之指紋1104比較,資源管理單元可比較第一程序之指紋與如儲存於外部儲存器1106中之經標記程序之指紋。
若第一程序之指紋1102與經標記程序之指紋1104之任一者存在不匹配,則不採取行動,且資源管理單元102及處理器106繼續執行其等正常命令及功能。然而,若第一程序之指紋1102與經標記程序之指紋1104之至少一者匹配,則視情況而定,將第一程序辨識為惡意程式或一脆弱程序,且資源任務管理器120採取行動以保護運算系統免受第一程序之非所要影響。此行動可包含資源管理單元、處理器及/或作業系統之間的用以保護運算系統之任何數目個可單獨行動或協調之事件。例如,此行動可包含通知運算系統之一使用者、禁止第一程序之執行、中止第一程序之排程、限制第一程序之執行、停止第一程序之執行、將第一程序存檔於一安全庫中、完全移除第一程序、停止運算系統中之特定處理或其等之組合。
雖然資源管理單元在處理擷取OS組態狀態114及管理惡意程式及脆弱性之所有此等所描述功能,但作業系統110分開地且並行地繼續在處理器106上執行其操作。除非偵測到一脆弱程序或惡意程式並對其作用,否則此將使處理器及作業系統不承受資源管理單元之活動之負擔。
圖12繪示使一資源管理單元(諸如一SoC)擷取在一運算系統中之一處理器上執行之一作業系統之作業系統組態狀態且偵測並管理該運算系統中之一脆弱程序或惡意程式之一實例性方法1200。在1202,將經標記程序之複數個指紋儲存至該資源管理單元之一記憶體。經標記程序係指示包含具有一已知脆弱性或已被識別為惡意程式之可執行指令之程序、可執行檔案、程式、應用程式、作業系統或其他軟體。可自維持已知惡意程式及脆弱性之一指紋清單之一外部儲存器週期性地獲得經標記程序之複數個指紋。資源管理單元週期性地存取該外部儲存器以更新其自身之經標記程序之指紋之記憶體。
在1204,資源管理單元獲得在運算系統中之主處理器上執行之作業系統之一組態狀態,且將該組態狀態儲存至與資源管理單元相關聯之一資料庫。在1206,資源管理單元基於作業系統之組態狀態自資料庫識別運算系統中之一第一程序資源之一狀態。作為一實例,第一程序可為在一運行佇列中但等待在處理器上執行之一程序,或已部分執行但暫停且在再次開始執行之前在等待佇列中等待一事件發生之一程序。
在1208,資源管理單元識別第一程序之一指紋。例如,可藉由對第一程序執行一雜湊函數以產生一指紋,或藉由使第一程序通過一搜尋過濾器或其等之某一組合來識別該指紋。亦可在有關執行之不同時間點識別(例如,產生)第一程序之多個指紋,且連結該多個指紋以與程序相關聯。
在1210,資源管理單元比較第一程序之指紋與儲存於資源管理單元之記憶體中之經標記程序之指紋。替代性地或結合與儲存於記憶體中之經標記程序之指紋比較,資源管理單元可比較第一程序之指紋與如儲存於外部儲存器中之經標記程序之指紋。
若第一程序之指紋與經標記程序之指紋之任一者存在不匹配1212,則執行控制返回1216以使資源管理單元重複識別另一程序1206、識別一指紋1208及比較1210指紋與經標記程序之指紋之步驟。若第一程序之指紋與經標記程序之指紋之一者存在匹配1212,則則視情況而定,將第一程序辨識為惡意程式或一脆弱程序,且資源管理單元採取行動1214以保護運算系統免受第一程序之非所要影響。此行動可包含如上文參考圖11所描述之任何數目個行動。
顯著地,雖然資源管理單元在處理方法1200中所描繪之所有此等功能,且亦雖然資源管理單元針對基於擷取作業系統之組態狀態而在運算系統中識別之不同程序資源重複處理此等功能,但作業系統為整體改良運算系統效能而分開地且並行地繼續在運算系統中之處理器上執行其操作。
雖然已參考上文概述之實例性實施例描述本發明,但很顯然,熟習此項技術者將明白替代、修改及變動。因此,本發明之所描述及所描繪之實施例旨在為闡釋性而非限制性,且隨附發明申請專利範圍之標的並不一定限於本發明中所描述之特定特徵或方法。實例
在以下段落中,描述一些實例。
實例1:一種管理一運算系統(100; 300)之方法,該方法包含:藉由一資源管理單元(102)擷取(112; 404; 508)一第二記憶體(108)中之一作業系統(110)之一組態狀態(114)且將其擷取(112; 404; 508)至一第一記憶體(104)中,該作業系統(110)在該運算系統之一處理器(106)上執行;藉由該資源管理單元(102)基於該作業系統(110)之該組態狀態(114)識別(118; 406; 1004)該運算系統(100; 300)中之一程序(116)之一狀態,該程序之該狀態指示需要在該運算系統中交換一記憶體資源;及回應於識別指示需要交換該記憶體資源之該程序之該狀態,藉由該資源管理單元(102)交換對減輕處理器(106)交換該記憶體資源之負擔有效之該記憶體資源(120; 904; 1010)。
實例2:如實例1之方法,其中指示需要交換該記憶體資源之該程序之該狀態係指示該程序需要該記憶體資源在該處理器上執行,或該程序完成執行且不需要該記憶體資源。
實例3:如任何前述實例之方法,其中交換該記憶體資源包含在該第二記憶體與一輔助儲存器之間交換該記憶體資源之一內容。
實例4:如任何前述實例之方法,其中交換該記憶體資源包含在無需該內容之一頁面大小或區塊大小計算之情況下使用該記憶體資源之一可變大小之該內容交換該記憶體資源之一內容。
實例5:如任何前述實例之方法,其中交換該記憶體資源包含在藉由該處理器執行該程序之前將該記憶體資源之一內容自一輔助儲存器交換至該第二記憶體中以在藉由該處理器執行該程序期間使該程序使用該第二記憶體中之該內容。
實例6:如任何前述實例之方法,其中交換該記憶體資源包含在藉由該處理器執行該程序之後將該記憶體資源之一內容自該第二記憶體交換至一輔助儲存器以在藉由該處理器執行一第二程序時使該第二程序使用該第二記憶體。
實例7:如任何前述實例之方法,其進一步包含該資源管理單元使用一低延時通信資料鏈路或一高速介面匯流排或藉由與同該處理器相同之一積體電路晶粒整合而與該處理器或該第二記憶體通信以用於擷取該作業系統之該組態狀態。
實例8:如任何前述實例之方法,其中擷取該作業系統之該組態狀態包含一抽象指令層協同如藉由該處理器執行之該作業系統用於偵測與該作業系統相關聯之一資源異動事件及回應於該資源異動事件將該作業系統之該組態狀態推入至該資源管理單元之該第一記憶體。
實例9:如任何前述實例之方法,其中擷取該作業系統之該組態狀態包含該資源管理單元偵測與該作業系統相關聯之一資源異動事件及回應於該資源異動事件將該作業系統之該組態狀態提取至該資源管理單元之該第一記憶體。
實例10:如任何前述實例之方法,其中識別該程序之該狀態包含識別一記憶體使用、記憶體需求、輔助儲存器、排程資料、程序運行佇列、程序等待佇列、程序優先級資料、剩餘之程序運行時間、超管理器、虛擬機器或其等之組合。
實例11:如實例1至10中任一項之運算系統(100; 300),其包含:該處理器(106);該資源管理單元(102);及其上儲存有指令之該第一記憶體(104)或該第二記憶體(108),該等指令回應於藉由該處理器(106)或該資源管理單元(102)執行而引起該資源管理單元(102)執行如實例1至10中任一項之方法。
實例12:如實例1至10中任一項之運算系統(100; 300),其包含:該處理器(106);該資源管理單元(102),其包含一系統單晶片、一特定應用積體電路或一特定應用標準產品;及其上儲存有指令之該第一記憶體(104)或該第二記憶體(108),該等指令回應於藉由該處理器(106)或該資源管理單元(102)執行而引起該資源管理單元(102)執行如實例1至10中任一項之方法。
實例13:如實例1至10中任一項之運算系統(100; 300),其包含:一超管理器(136)或一虛擬機器(138);該處理器(106);該資源管理單元(102);及其上儲存有指令之該第一記憶體(104)或該第二記憶體(108),該等指令回應於藉由該處理器(106)或該資源管理單元(102)執行而引起該資源管理單元(102)執行如實例1至10中任一項之方法。
實例14:如實例1至10中任一項之第一記憶體(104)或第二記憶體(108),其包含指令,該等指令在藉由該處理器(106)或該資源管理單元(102)執行時引起該資源管理單元(102)執行如實例1至10中任一項之方法。
實例15:如實例1至10中任一項之運算系統(100; 300),其進一步包含用以執行如實例1至10中任一項之方法之構件。
實例16:如實例1至10中任一項之方法,其中擷取該作業系統之該組態狀態包含獲得關於以下項之至少一者之該作業系統之操作狀態資訊:一程序運行佇列、一程序等待佇列、程序優先級資料、程序運行時間剩餘資料、資源排程資料、資源使用資料、主動裝置資料、記憶體使用資料、記憶體映射資料、虛擬記憶體表、儲存管理資料、該超管理器之一狀態、該虛擬機器之一狀態、該虛擬機器中之一客作業系統之一狀態、藉由該超管理器使用之該運算系統之資源、藉由該虛擬機器使用之該運算系統之資源或其等之組合。
實例17:如實例1至10中任一項之方法,其中識別該運算系統中之該程序之該狀態包含存取該第一記憶體及識別以下項之至少一者之一狀態:一程序運行佇列、程序等待佇列、程序優先級資料、程序運行時間剩餘資料、資源排程資料、主動裝置資料、記憶體使用資料、記憶體映射資料、虛擬記憶體表、儲存管理資料、超管理器、虛擬機器、該虛擬機器中之該客作業系統、藉由該超管理器使用之該運算系統之資源、藉由該虛擬機器使用之該運算系統之資源或其等之組合。
實例18:如實例1至9中任一項之第一記憶體(104)及第二記憶體(108),其包括一共用記憶體及指令,該等指令在藉由該處理器(106)或該資源管理單元(102)執行時引起該資源管理單元(102)執行如技術方案1至10中任一項之方法。
100:運算系統/系統
102:資源管理單元
104:記憶體/資源管理單元記憶體/第一記憶體
106:處理器/主處理器
108:記憶體/第二記憶體
110:作業系統
112:作業系統(OS)組態狀態管理器
114:作業系統(OS)組態狀態/組態狀態/狀態指示符
116:作業系統(OS)組態狀態資料庫/資料庫/特定資源
118:資源狀態管理器/資源/資源管理單元資源狀態管理器
120:資源任務管理器/任務/資源管理單元資源任務管理器
122:通信管理器/資源管理單元通信管理器
124:輔助儲存器
126:網路
128:高速介面匯流排/高速匯流排
130:資料鏈路
132:資源異動事件/作業系統(OS)資源異動事件
134:作業系統(OS)抽象指令層/指令
136:超管理器
138:虛擬機器
140:虛擬化技術
142:程序控制區塊
300:運算系統
302:運算裝置
302-1:行動電話
302-2:平板電腦裝置
302-3:膝上型電腦
302-4:電視機/顯示器或桌上型或伺服器電腦
302-5:電腦化手錶
302-6:可佩戴裝置
302-7:遊戲控制器
302-8:網路化多媒體或語音助理系統
302-9:家用電器
304:通信組件
306:輸入/輸出組件
308:處理單元
310:通信介面
312:輸入/輸出介面
400:流程圖/方法
402:第一操作
404:操作
406:操作
408:操作
500:流程圖/方法
502:操作
504:操作
506:操作
508:操作
510:操作
512:操作
514:返回執行流程箭頭
516:操作
602:複製/擷取
702:時脈速率
704:時脈
706:時脈速率信號
708:時脈
710:時脈速率信號
712:儲存資源/外部儲存資源
800:方法
802:操作
804:操作
806:操作
808:操作
810:操作
812:操作
814:操作
816:操作
902:記憶體資源
904:記憶體交換
1000:方法
1002:操作
1004:操作
1006:操作
1008:操作
1010:操作
1012:操作
1014:操作
1102:第一程序之指紋
1104:經標記程序之指紋
1106:外部儲存器
1200:方法
1202:操作
1204:操作
1206:操作
1208:操作
1210:操作
1212:操作
1214:操作
1216:操作
參考以下圖式描述用於擷取作業系統組態狀態及記憶體管理之一資源管理單元之一或多項態樣之細節。在描述及圖中之不同例項中使用相同元件符號可指示相同元件。
圖1係繪示經組態以擷取作業系統組態狀態以將任務(例如,按比例調整時脈速率、記憶體管理、處理、管理脆弱性)卸載至一資源管理單元之一實例性運算系統之一方塊圖。
圖2係繪示包含一超管理器及虛擬機器之經組態以擷取作業系統組態狀態以將任務卸載至一資源管理單元之另一實例性運算系統之一方塊圖。
圖3繪示用於可實施擷取作業系統組態狀態以將任務卸載至一資源管理單元之各項態樣之一使用者設備之一實例性裝置圖。
圖4繪示用於擷取作業系統組態狀態以將任務卸載至一運算系統中之一資源管理單元之一實例性方法。
圖5繪示具有用於擷取作業系統組態狀態以將任務卸載至一運算系統中之一資源管理單元之額外細節之一實例性方法。
圖6係繪示描繪如藉由一資源管理單元擷取以用於將作業系統任務卸載至該資源管理單元之一實例性作業系統組態狀態之一實例性運算系統的一方塊圖。
圖7係繪示經組態以藉由一資源管理單元擷取作業系統組態狀態以用於動態地按比例調整時脈速率之一實例性運算系統之一方塊圖。
圖8繪示用於藉由一運算系統中之一資源管理單元擷取作業系統組態狀態以用於動態地按比例調整時脈速率之一實例性方法。
圖9係繪示經組態以藉由一資源管理單元擷取作業系統組態狀態以用於執行記憶體管理任務之一實例性運算系統之一方塊圖。
圖10繪示用於藉由一運算系統中之一資源管理單元擷取作業系統組態狀態以用於管理記憶體交換之一實例性方法。
圖11係繪示經組態以藉由一資源管理單元擷取作業系統組態狀態以用於偵測及管理惡意程式(malware)及軟體脆弱性之一實例性運算系統之一方塊圖。
圖12繪示用於藉由一運算系統中之一資源管理單元擷取作業系統組態狀態以用於偵測及管理惡意程式及軟體脆弱性之一實例性方法。
100:運算系統/系統
102:資源管理單元
104:記憶體/資源管理單元記憶體/第一記憶體
106:處理器/主處理器
108:記憶體/第二記憶體
110:作業系統
112:作業系統(OS)組態狀態管理器
114:作業系統(OS)組態狀態/組態狀態/狀態指示符
116:作業系統(OS)組態狀態資料庫/資料庫/特定資源
118:資源狀態管理器/資源/資源管理單元資源狀態管理器
120:資源任務管理器/任務/資源管理單元資源任務管理器
122:通信管理器/資源管理單元通信管理器
124:輔助儲存器
126:網路
128:高速介面匯流排/高速匯流排
130:資料鏈路
132:資源異動事件/作業系統(OS)資源異動事件
602:複製/擷取
902:記憶體資源
904:記憶體交換
Claims (20)
- 一種管理一運算系統之方法,該方法包括: 藉由一資源管理單元擷取一第二記憶體中之一作業系統之一組態狀態且將其擷取至一第一記憶體中,該作業系統在該運算系統之一處理器上執行; 藉由該資源管理單元基於該作業系統之該組態狀態識別該運算系統中之一程序之一狀態,該程序之該狀態指示在該運算系統中交換一記憶體資源之一要求;及 回應於識別指示交換該記憶體資源之該要求之該程序之該狀態,藉由該資源管理單元交換對減輕該處理器交換該記憶體資源之負擔有效之該記憶體資源。
- 如請求項1之方法,其中交換該記憶體資源包括在該第二記憶體與一輔助儲存器之間交換該記憶體資源之一內容。
- 如請求項2之方法,其中交換該記憶體資源包括在無需該內容之一頁面大小計算之情況下使用該記憶體資源之一可變大小之該內容交換該記憶體資源之該內容。
- 如請求項2之方法,其中交換該記憶體資源包括在藉由該處理器執行該程序之前將該記憶體資源之該內容自該輔助儲存器交換至該第二記憶體中,該交換在藉由該處理器執行該程序期間使該程序使用該第二記憶體中之該內容。
- 如請求項1之方法,其中交換該記憶體資源包括在藉由該處理器執行該程序之後將該記憶體資源之一內容自該第二記憶體交換至一輔助儲存器以在藉由該處理器執行一第二程序時使該第二程序使用該第二記憶體。
- 如請求項1之方法,其進一步包括該資源管理單元使用一低延時通信資料鏈路或一高速介面匯流排或藉由與同該處理器相同之一積體電路晶粒整合而與該處理器或該第二記憶體通信以用於擷取該作業系統之該組態狀態。
- 如請求項1之方法,其中擷取該作業系統之該組態狀態包括一抽象指令層協同如藉由該處理器執行之該作業系統用於偵測與該作業系統相關聯之一資源異動事件及回應於該資源異動事件將該作業系統之該組態狀態推入至該資源管理單元之該第一記憶體。
- 如請求項1之方法,其中擷取該作業系統之該組態狀態包括該資源管理單元偵測與該作業系統相關聯之一資源異動事件及回應於該資源異動事件將該作業系統之該組態狀態提取至該資源管理單元之該第一記憶體。
- 如請求項1之方法,其中識別該程序之該狀態包括識別一記憶體使用、記憶體需求、輔助儲存器、排程資料、程序運行佇列、程序等待佇列、程序優先級資料、剩餘之程序運行時間、超管理器、虛擬機器或其等之組合。
- 一種運算系統,其包括: 一處理器; 一資源管理單元; 一第一記憶體;及 一第二記憶體,其具有一作業系統,該第一記憶體或該第二記憶體具有儲存於其上之指令,該等指令回應於藉由該處理器或該資源管理單元執行而引起該資源管理單元執行包括以下之操作: 藉由該資源管理單元擷取該第二記憶體中之該作業系統之一組態狀態且將其擷取至該第一記憶體中,該作業系統在該運算系統之該處理器上執行; 藉由該資源管理單元基於該作業系統之該組態狀態識別該運算系統中之一程序之一狀態,該程序之該狀態指示在該運算系統中交換一記憶體資源之一要求;及 回應於識別指示交換該記憶體資源之該要求之該程序之該狀態,藉由該資源管理單元交換對減輕該處理器交換該記憶體資源之負擔有效之該記憶體資源。
- 如請求項10之運算系統,其中該資源管理單元包含一系統單晶片、一特定應用積體電路或一特定應用標準產品。
- 如請求項10之運算系統,其中交換該記憶體資源包括在該第二記憶體與一輔助儲存器之間交換該記憶體資源之一內容。
- 如請求項12之運算系統,其中交換該記憶體資源包括在無需該內容之一頁面大小計算之情況下使用該記憶體資源之一可變大小之該內容交換該記憶體資源之該內容。
- 如請求項12之運算系統,其中交換該記憶體資源包括在藉由該處理器執行該程序之前將該記憶體資源之該內容自該輔助儲存器交換至該第二記憶體中,該交換在藉由該處理器執行該程序期間使該程序使用該第二記憶體中之該內容。
- 如請求項10之運算系統,其中交換該記憶體資源包括在藉由該處理器執行該程序之後將該記憶體資源之一內容自該第二記憶體交換至一輔助儲存器以在藉由該處理器執行一第二程序時使該第二程序使用該第二記憶體。
- 如請求項10之運算系統,其中該等操作進一步包括該資源管理單元使用一低延時通信資料鏈路或一高速介面匯流排或藉由與同該處理器相同之一積體電路晶粒整合而與該處理器或該第二記憶體通信以用於擷取該作業系統之該組態狀態。
- 如請求項10之運算系統,其中擷取該作業系統之該組態狀態包括一抽象指令層協同如藉由該處理器執行之該作業系統用於偵測與該作業系統相關聯之一資源異動事件及回應於該資源異動事件將該作業系統之該組態狀態推入至該資源管理單元之該第一記憶體。
- 如請求項10之運算系統,其中擷取該作業系統之該組態狀態包括該資源管理單元偵測與該作業系統相關聯之一資源異動事件及回應於該資源異動事件將該作業系統之該組態狀態提取至該資源管理單元之該第一記憶體。
- 如請求項10之運算系統,其中識別該程序之該狀態包括識別一記憶體使用、記憶體需求、輔助儲存器、排程資料、程序運行佇列、程序等待佇列、程序優先級資料、剩餘之程序運行時間、超管理器、虛擬機器或其等之組合。
- 如請求項10之運算系統,其進一步包括一超管理器或虛擬機器,且其中: 藉由該資源管理單元擷取該作業系統之該組態狀態且將其擷取至該第一記憶體中擷取該超管理器或該虛擬機器之該作業系統之該組態狀態。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2019/067560 WO2021126217A1 (en) | 2019-12-19 | 2019-12-19 | Resource management unit for capturing operating system configuration states and memory management |
WOPCT/US19/67560 | 2019-12-19 | ||
US16/906,828 | 2020-06-19 | ||
US16/906,828 US11630698B2 (en) | 2019-12-19 | 2020-06-19 | Resource management unit for capturing operating system configuration states and swapping memory content |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202125240A true TW202125240A (zh) | 2021-07-01 |
TWI779338B TWI779338B (zh) | 2022-10-01 |
Family
ID=69182720
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109128890A TWI779338B (zh) | 2019-12-19 | 2020-08-25 | 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法 |
TW112151516A TW202418076A (zh) | 2019-12-19 | 2020-08-25 | 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法 |
TW111133646A TWI828307B (zh) | 2019-12-19 | 2020-08-25 | 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112151516A TW202418076A (zh) | 2019-12-19 | 2020-08-25 | 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法 |
TW111133646A TWI828307B (zh) | 2019-12-19 | 2020-08-25 | 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11630698B2 (zh) |
EP (1) | EP3857371A1 (zh) |
TW (3) | TWI779338B (zh) |
WO (1) | WO2021126217A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021126216A1 (en) | 2019-12-19 | 2021-06-24 | Google Llc | Resource management unit for capturing operating system configuration states and offloading tasks |
EP4164184A1 (en) * | 2021-10-07 | 2023-04-12 | Renesas Electronics Corporation | A communication controller and communication control method |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5928321A (en) * | 1997-05-30 | 1999-07-27 | Sony Corporation | Task and stack manager for digital video decoding |
US6430593B1 (en) * | 1998-03-10 | 2002-08-06 | Motorola Inc. | Method, device and article of manufacture for efficient task scheduling in a multi-tasking preemptive priority-based real-time operating system |
JP2004126982A (ja) | 2002-10-03 | 2004-04-22 | Nri & Ncc Co Ltd | 運用管理システム |
US7373363B2 (en) | 2003-07-03 | 2008-05-13 | Hewlett-Packard Development Company, L.P. | Method of managing modification of configuration states of resources in a dynamic data center |
US8776050B2 (en) | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
US7421533B2 (en) | 2004-04-19 | 2008-09-02 | Intel Corporation | Method to manage memory in a platform with virtual machines |
US7958292B2 (en) | 2004-06-23 | 2011-06-07 | Marvell World Trade Ltd. | Disk drive system on chip with integrated buffer memory and support for host memory access |
US7282966B2 (en) | 2004-09-28 | 2007-10-16 | Intel Corporation | Frequency management apparatus, systems, and methods |
US7882561B2 (en) | 2005-01-31 | 2011-02-01 | Microsoft Corporation | System and method of caching decisions on when to scan for malware |
US7766235B2 (en) | 2006-03-09 | 2010-08-03 | Jadak Technologies, Inc. | Combined radio frequency identification and optical imaging module |
US7661007B2 (en) | 2006-09-28 | 2010-02-09 | Via Technologies, Inc. | Methods and systems for adjusting clock frequency |
EP2075696A3 (en) | 2007-05-10 | 2010-01-27 | Texas Instruments Incorporated | Interrupt- related circuits, systems and processes |
US8286246B2 (en) | 2007-08-10 | 2012-10-09 | Fortinet, Inc. | Circuits and methods for efficient data transfer in a virus co-processing system |
US8312461B2 (en) | 2008-06-09 | 2012-11-13 | Oracle America, Inc. | System and method for discovering and protecting allocated resources in a shared virtualized I/O device |
US8190930B2 (en) | 2009-03-30 | 2012-05-29 | Intel Corporation | Methods and apparatuses for controlling thread contention |
KR101042729B1 (ko) | 2009-04-09 | 2011-06-20 | 삼성에스디에스 주식회사 | 휴대단말기에서의 시스템온칩 및 주문형반도체 기반의 악성코드 검출 장치 |
US8364857B2 (en) * | 2009-08-31 | 2013-01-29 | Qualcomm Incorporated | Wireless modem with CPU and auxiliary processor that shifts control between processors when in low power state while maintaining communication link to wireless network |
GB2474666B (en) | 2009-10-21 | 2015-07-15 | Advanced Risc Mach Ltd | Hardware resource management within a data processing system |
JP2011227598A (ja) * | 2010-04-16 | 2011-11-10 | Fuji Xerox Co Ltd | 情報処理装置及び情報処理プログラム |
US8694533B2 (en) * | 2010-05-19 | 2014-04-08 | Google Inc. | Presenting mobile content based on programming context |
KR101201622B1 (ko) | 2010-08-19 | 2012-11-14 | 삼성에스디에스 주식회사 | 보안 기능을 가진 시스템 온 칩 및 이를 이용한 디바이스 및 스캔 방법 |
US20120096292A1 (en) | 2010-10-15 | 2012-04-19 | Mosaid Technologies Incorporated | Method, system and apparatus for multi-level processing |
WO2012135041A2 (en) | 2011-03-25 | 2012-10-04 | Soft Machines, Inc. | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
JP5661921B2 (ja) | 2011-04-12 | 2015-01-28 | 株式会社日立製作所 | 計算機システム及び管理システム |
US9465632B2 (en) | 2012-02-04 | 2016-10-11 | Global Supercomputing Corporation | Parallel hardware hypervisor for virtualizing application-specific supercomputers |
US8887149B2 (en) | 2012-02-21 | 2014-11-11 | Microsoft Corporation | Time shift configuration management for software product installation |
US8904068B2 (en) * | 2012-05-09 | 2014-12-02 | Nvidia Corporation | Virtual memory structure for coprocessors having memory allocation limitations |
US9245120B2 (en) | 2012-07-13 | 2016-01-26 | Cisco Technologies, Inc. | Method and apparatus for retroactively detecting malicious or otherwise undesirable software as well as clean software through intelligent rescanning |
US9223979B2 (en) | 2012-10-31 | 2015-12-29 | Intel Corporation | Detection of return oriented programming attacks |
US9076530B2 (en) | 2013-02-07 | 2015-07-07 | Seagate Technology Llc | Non-volatile write buffer data retention pending scheduled verification |
US9507603B2 (en) | 2013-03-09 | 2016-11-29 | Gerald George Pechanek | Methods and apparatus for signal flow graph pipelining that reduce storage of temporary variables |
US9244629B2 (en) | 2013-06-25 | 2016-01-26 | Advanced Micro Devices, Inc. | Method and system for asymmetrical processing with managed data affinity |
US20150067238A1 (en) * | 2013-08-29 | 2015-03-05 | Sandisk Technologies Inc. | Computing Device and Method for Predicting Low Memory Conditions |
JP6307847B2 (ja) | 2013-11-19 | 2018-04-11 | 富士通株式会社 | 情報処理装置,制御装置及び制御プログラム |
JP2015130035A (ja) | 2014-01-07 | 2015-07-16 | 富士通株式会社 | 半導体装置および制御方法 |
US9444827B2 (en) | 2014-02-15 | 2016-09-13 | Micron Technology, Inc. | Multi-function, modular system for network security, secure communication, and malware protection |
US9633233B2 (en) * | 2014-05-07 | 2017-04-25 | Sandisk Technologies Llc | Method and computing device for encrypting data stored in swap memory |
US9588815B1 (en) | 2015-06-17 | 2017-03-07 | EMC IP Holding Company LLC | Architecture for data collection and event management supporting automation in service provider cloud environments |
US9886299B2 (en) | 2015-07-28 | 2018-02-06 | American Megatrends, Inc. | System and method for dynamically allocating resources of virtual machines based on service-level agreements (SLA) and privilege levels of users |
GB2543554B (en) | 2015-10-22 | 2019-01-23 | Advanced Risc Mach Ltd | Handling exceptional conditions for vector arithmetic instruction |
US10255433B2 (en) | 2015-10-27 | 2019-04-09 | Blackberry Limited | Executing process code integrity verificaton |
US10558369B2 (en) | 2016-02-01 | 2020-02-11 | Qualcomm Incorporated | Flash device lifetime monitor systems and methods |
TW201738802A (zh) * | 2016-02-10 | 2017-11-01 | 納格維遜股份有限公司 | 用以防止檔案的未授權利用及控制存取的可卸式安全裝置及方法 |
US10423787B2 (en) | 2016-02-23 | 2019-09-24 | Carbon Black, Inc. | Cybersecurity systems and techniques |
US10318311B2 (en) * | 2016-06-30 | 2019-06-11 | Amazon Technologies, Inc. | Memory allocation techniques at partially-offloaded virtualization managers |
US10380039B2 (en) | 2017-04-07 | 2019-08-13 | Intel Corporation | Apparatus and method for memory management in a graphics processing environment |
US10515216B2 (en) | 2017-06-30 | 2019-12-24 | Paypal, Inc. | Memory layout based monitoring |
CN107403152B (zh) * | 2017-07-19 | 2020-07-31 | 大唐终端技术有限公司 | 高通平台TrustZone指纹识别实现方法及系统 |
CN107451458A (zh) * | 2017-09-18 | 2017-12-08 | 合肥贯硕信息科技有限公司 | 一种计算机指纹开机认证系统 |
US10790984B1 (en) | 2018-03-21 | 2020-09-29 | Altiris, Inc. | Probabilistic set membership using partial prefix matching |
US10817333B2 (en) * | 2018-06-26 | 2020-10-27 | Nutanix, Inc. | Managing memory in devices that host virtual machines and have shared memory |
WO2020006415A1 (en) | 2018-06-28 | 2020-01-02 | Crowdstrike, Inc. | Analysis of malware |
US11138019B1 (en) | 2019-05-23 | 2021-10-05 | Xilinx, Inc. | Routing in a compilation flow for a heterogeneous multi-core architecture |
US11068273B2 (en) * | 2019-09-03 | 2021-07-20 | Microsoft Technology Licensing, Llc | Swapping and restoring context-specific branch predictor states on context switches in a processor |
WO2021126222A1 (en) | 2019-12-19 | 2021-06-24 | Google Llc | Resource management unit for capturing operating system configuration states and managing malware |
WO2021126216A1 (en) | 2019-12-19 | 2021-06-24 | Google Llc | Resource management unit for capturing operating system configuration states and offloading tasks |
-
2019
- 2019-12-19 WO PCT/US2019/067560 patent/WO2021126217A1/en unknown
- 2019-12-19 EP EP19839591.5A patent/EP3857371A1/en active Pending
-
2020
- 2020-06-19 US US16/906,828 patent/US11630698B2/en active Active
- 2020-08-25 TW TW109128890A patent/TWI779338B/zh active
- 2020-08-25 TW TW112151516A patent/TW202418076A/zh unknown
- 2020-08-25 TW TW111133646A patent/TWI828307B/zh active
Also Published As
Publication number | Publication date |
---|---|
WO2021126217A1 (en) | 2021-06-24 |
TWI779338B (zh) | 2022-10-01 |
TW202314498A (zh) | 2023-04-01 |
TWI828307B (zh) | 2024-01-01 |
US20210191776A1 (en) | 2021-06-24 |
EP3857371A1 (en) | 2021-08-04 |
TW202418076A (zh) | 2024-05-01 |
US11630698B2 (en) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210192046A1 (en) | Resource Management Unit for Capturing Operating System Configuration States and Managing Malware | |
US9760493B1 (en) | System and methods of a CPU-efficient cache replacement algorithm | |
US9098302B2 (en) | System and apparatus to improve boot speed in serial peripheral interface system using a baseboard management controller | |
US11782761B2 (en) | Resource management unit for capturing operating system configuration states and offloading tasks | |
US10169105B2 (en) | Method for simplified task-based runtime for efficient parallel computing | |
WO2018094649A1 (zh) | 一种虚拟机启动过程中的数据获取方法和云计算系统 | |
TWI828307B (zh) | 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法 | |
WO2017126003A1 (ja) | 複数種類のメモリデバイスを含む計算機システム及び方法 | |
US20130073779A1 (en) | Dynamic memory reconfiguration to delay performance overhead | |
WO2022068760A1 (zh) | 内存管理的方法及其装置 | |
JP2014056425A (ja) | データ管理装置、データ管理システム、処理割当方法および処理割当プログラム | |
JP5831319B2 (ja) | 制御装置、管理装置、情報処理システム、制御装置の動作方法、管理装置の動作方法、情報処理システムの動作方法およびプログラム | |
CN115087961B (zh) | 用于相干及非相干存储器请求的仲裁方案 | |
US11341108B2 (en) | System and method for data deduplication in a smart data accelerator interface device | |
US10055359B2 (en) | Pinning objects in multi-level memory hierarchies | |
JP6281442B2 (ja) | 割り当て制御プログラム、割り当て制御方法及び割り当て制御装置 | |
US10216524B2 (en) | System and method for providing fine-grained memory cacheability during a pre-OS operating environment | |
US10051087B2 (en) | Dynamic cache-efficient event suppression for network function virtualization | |
US11347692B1 (en) | Zero block elimination reporting for a file system | |
KR20230034535A (ko) | 플래시 메모리 저장장치의 동작방법 | |
JP2013200827A (ja) | プロセススケジューリング装置、プロセススケジューリング方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |