TWI712890B - 電子設備中執行任務級快取記憶體管理的方法和裝置 - Google Patents

電子設備中執行任務級快取記憶體管理的方法和裝置 Download PDF

Info

Publication number
TWI712890B
TWI712890B TW108131510A TW108131510A TWI712890B TW I712890 B TWI712890 B TW I712890B TW 108131510 A TW108131510 A TW 108131510A TW 108131510 A TW108131510 A TW 108131510A TW I712890 B TWI712890 B TW I712890B
Authority
TW
Taiwan
Prior art keywords
task
cache
processor core
electronic device
cache memory
Prior art date
Application number
TW108131510A
Other languages
English (en)
Other versions
TW202011205A (zh
Inventor
魏聖儒
陳家明
鄭亦呈
張順傑
Original Assignee
聯發科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 聯發科技股份有限公司 filed Critical 聯發科技股份有限公司
Publication of TW202011205A publication Critical patent/TW202011205A/zh
Application granted granted Critical
Publication of TWI712890B publication Critical patent/TWI712890B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

電子設備中執行任務級快取記憶體管理的方法和裝置,該方法應用於該電子設備的處理電路,且包括:在處理器核運行多個任務中一任務之前,對該任務執行檢查操作以生成檢查結果,其中,該檢查結果表明該任務是否是具有從快取記憶體中驅逐緊急任務的快取資料的風險的風險任務,並且該快取記憶體專用於包括該處理器核的處理器核集合;以及根據該檢查結果來確定是否在該處理器核運行該任務的時間段期間暫時限制該處理器核的快取記憶體存取權限,以防止由於該任務導致的該快取記憶體的快取記憶體驅逐。

Description

電子設備中執行任務級快取記憶體管理的方法和裝置
本發明涉及快取記憶體控制,更具體地,涉及用於在電子設備中執行任務級快取記憶體管理的方法和裝置。
根據現有技術,將頻繁存取的資料保持在快取記憶體中可以增強系統性能,但是這並非總是如此。例如,作業系統可以為具有較高優先順序的緊急任務分配處理資源,而通常僅參考存取頻率來分配快取記憶體。在各種處理資源配置中,當前的快取記憶體資源是在沒有系統級性能優化的情況下分配的。結果,在處理性能和快取記憶體性能之間可能存在取捨。因此,需要新穎的方法及相關架構來增強電子設備的整體性能。
本發明的目的之一是提供一種用於在電子設備中執行任務級快取記憶體管理的方法和裝置,以解決現有技術中存在的問題。
本發明的另一個目的是提供一種用於在電子設備中執行任務級快取記憶體管理的方法和裝置,以保證該電子設備的整體性能。
根據本發明的至少一個實施方式,提供了一種用於在電子設備中執 行任務級快取記憶體管理的方法,其中,該方法可以被應用於電子設備的處理電路。該方法可以包括:在處理器核運行多個任務中之一任務之前,對任務執行至少一個檢查操作以生成至少一個檢查結果,其中,至少一個檢查結果表明該任務是否為具有從快取記憶體中驅逐緊急任務的緩存資料的風險的風險任務,並且快取記憶體專用於包括處理電路內的處理器核的處理器核集合;以及根據至少一個檢查結果,確定在處理器核運行任務的時間段期間是否暫時限制處理器核的快取記憶體存取權限,以防止由於任務導致的快取記憶體的快取記憶體驅逐。
根據本發明的至少一個實施方式,提供了一種用於在電子設備中執行任務級快取記憶體管理的裝置,其中,該裝置可以包括被佈置為控制電子設備的操作的處理電路。例如,處理電路包括多個處理器核。另外,在處理器核運行多個任務中的任務之前,處理電路對任務執行至少一個檢查操作以生成至少一個檢查結果,其中,至少一個檢查結果表明任務是否為具有從快取記憶體中驅逐緊急任務的緩存資料的風險的風險任務,並且快取記憶體專用於包括多個處理器核內的處理器核的處理器核集合。另外,根據至少一個檢查結果,處理電路確定在處理器核運行任務的時間段期間是否暫時限制處理器核的快取記憶體存取權限,以防止由於任務導致的快取記憶體的快取記憶體驅逐。
本發明的方法和相關裝置可以在不會帶來不必要的副作用的情況下,或者以不太可能帶來副作用的方式,來解決現有技術中存在的問題。另外,本發明的方法和相關裝置可適當地控制電子設備的操作,以確保電子設備的整體性能。
對於本領域普通技術人員來說,在閱讀下述附圖以及各個附圖中例示的優選實施方式的詳細說明之後,本發明的這些以及其他目的無疑將會變得顯而易見。
100:裝置
110:處理電路
120:動態隨機存取記憶體(DRAM)
111:處理器
112_1-112_N:集群
113_1-113_N:處理器核集合
114_1-114_N:快取記憶體
200:L3快取記憶體
210、220、230、240:快取記憶體控制單元
300、500:方法
310-340、510-550:步驟
第1圖是示出根據本發明實施方式的用於在電子設備中執行任務級快取記憶體管理的裝置之示意圖。
第2圖示出根據本發明實施方式的第1圖所示的裝置的一些實現細節。
第3圖是根據本發明實施方式的用於在電子設備中執行任務級快取記憶體管理的方法的流程圖。
第4圖示出了根據本發明實施方式的第3圖所示的方法的控制方案。
第5圖示出了根據本發明實施方式的第3圖所示的方法的工作流。
第6圖示出根據本發明實施方式的第3圖所示的方法的一些實現細節。
貫穿下述說明書和請求保護範圍使用的某些術語涉及特定的元件。如本領域技術人員將理解的,電子設備製造商可以用不同的名稱來指代元件。本文無意區分名稱不同但功能相同的組件。在下述說明書和權利要求書中,術語□包括□和□包含□是以開放式方式被使用,因此應當被解釋為意指□包括但不限於......□。而且,術語□耦接□旨在表示間接或直接電連接。因此,如果一個設備耦接至到另一設備,則該連接可以是通過直接電連接,或者是通過經由其他設備和連接的間接電連接。
第1圖是示出根據本發明實施方式的用於在電子設備中執行任務級快取記憶體管理的裝置100的圖。裝置100可以包括電子設備的至少一部分(例如,部分或全部)。例如,裝置100可以包括上述電子設備的一部分,並且更具體地,可以是至少一個硬體電路,諸如電子設備內的至少一個積體電路(IC)。 在另一示例中,裝置100可以是上述電子設備的整體。在另一示例中,裝置100可以包括系統,該系統包括上述電子設備(例如,包括電子設備的音訊/視頻系統)。電子設備的示例可以包括但不限於行動電話(例如,多功能行動電話)、平板電腦和諸如膝上型電腦的個人電腦。
如第1圖所示,裝置100可以包括被佈置為控制電子設備的操作的處理電路110,並且包括被佈置為存儲處理電路110的資訊的動態隨機存取記憶體(DRAM)120,並且處理電路110和DRAM 120可以分別位於不同的晶片中,但是本發明不限於此。為了更好地理解,上述行動電話(例如,多功能行動電話)可以作為電子設備的示例,並且裝置100還可以包括諸如存放裝置(例如,快閃記憶體模組)、顯示裝置(例如,液晶顯示器(LCD)面板)、輸入裝置(例如,觸摸面板)、一個或更多個音訊播放設備(例如,揚聲器)等的其他元件,以執行電子設備的一個或更多個操作,其中,顯示裝置和輸入裝置可以集成到同一模組中,例如觸控式螢幕。根據該實施方式,處理電路110可以包括至少一個處理器(例如,一個或更多個處理器),其可統稱為處理器111,並且上述至少一個處理器(例如,處理器111)可包括多個處理器核(processor cores)。更具體地,上述至少一個處理器(例如,處理器111)可包括多個集群(clusters)112_1至112_N(例如,集群112_1、......和集群112_N),並且多個集群112_1至112_N可分別包括多個處理器核集合113_1至113_N(例如,處理器核集合113_1、......和處理器核集合113_N)以及多個快取記憶體114_1至114_N(例如,快取記憶體114_1、......和快取記憶體114_N),其中,符號□N□可表示正整數,並且快取記憶體114_1至114_N可被稱為高速緩衝記憶體。例如,集群112_1至集群112_N中的任何集群112_n(例如,符號□n□可以表示區間[1,N]內的正整數)可以包括處理器核集合113_n和快取記憶體114_n,並且在同一集群(例如,集群112_n)中的處理器核集合113_n的可以共用快取記憶體114_n。另外,當控制電子設備 的一個或更多個操作時,處理器核集合113_n中的任何處理器核都可以存取(例如,讀或寫)DRAM 120中的資料,並且可以存取(例如,讀或寫)快取記憶體114_n中的資料。通常,快取記憶體114_n可以在需要時快取記憶體被頻繁存取的資料。
根據一些實施方式,處理電路110(例如,處理電路110中的記憶體控制單元)可以通過將快取記憶體114_n的快取記憶體路(cache way)(例如,由處理器核存取的方式)的數量限制為快取記憶體114_n的快取記憶體路的預定數量來限制處理器核集合113_n中的任何處理器核的快取記憶體存取權限(cache access permission),其中快取記憶體路的預定數量小於快取記憶體114_n的快取記憶體路的總數量。
第2圖示出根據本發明實施方式的第1圖所示的裝置100的一些實現細節。可以將集群Cluster(0)作為集群112_n的示例,可以將處理器核Core(0)和Core(1)作為處理器核集合113_n的示例,並且可以將三級(L3)快取記憶體200作為快取記憶體114_n的示例。L3快取記憶體200可以包括多個快取記憶體路(為了簡潔起見,在第2圖中標記為“CW”),其可以被劃分為多個快取記憶體控制單元,例如快取記憶體控制單元210、220、230和240。例如,L3快取記憶體200可以被劃分成多個快取記憶體路(例如,16個快取記憶體路),其被佈置為多個快取記憶體路集合(例如,4個快取記憶體路集合),並且多個快取記憶體路集合中的各個快取記憶體路集合都可以被用作快取記憶體控制單元。當限制處理器核Core(0)和處理器核Core(1)中的處理器核的快取記憶體存取權限時,處理電路110可以將快取記憶體200的用於由處理器核存取的快取記憶體路的數量(例如,可由處理器核存取的快取記憶體路的數量)限制為快取記憶體路的預定數量。在該實施方式中,快取記憶體路的總數量可以是16,快取記憶體路的預定數量可以是4、8和12中的任何一個,並且可以從快取記憶體控制單元210、220、 230和240中的一個或更多個中選擇在快取記憶體存取權限下可由處理器核存取的快取記憶體路,其中,快取記憶體200的存取控制可以利用切換控制來實現,例如,使用控制信號基於相關聯的寄存器設置來控制的一些切換,但是本發明不限於此。根據一些實施方式,快取記憶體200的存取控制可以變化。例如,快取記憶體路的預定數量、快取記憶體路的總數量和/或用作快取記憶體控制單元的快取記憶體路集合中的快取記憶體路的數量可以變化。
第3圖是根據本發明實施方式的用於在電子設備中執行任務級快取記憶體管理的方法300的流程圖。方法300可被應用於第1圖所示的裝置100。例如,多個處理器核內的某個處理器核可以運行與方法300相對應的一個或更多個程式模組,以根據方法300進行控制,但本發明不限於此。方法300可以描述如下。
在步驟310中,處理電路110可將多個任務排序,以逐個地(例如,一個接一個地)在處理電路110內的處理器核上運行。為了更好地理解,處理器核可以表示處理器核集合113_n中的任何處理器核,例如上述第2圖中所示的處理器核Core(0)和Core(1)中的處理器核,但本發明不限於此。
在步驟320中,在處理器核運行多個任務中的任務之前,處理電路110(例如,運行一個或更多個程式模組的特定處理器核)可以對該任務執行至少一個檢查操作(例如,一個或更多個檢查操作),以生成至少一個檢查結果(例如,一個或更多個檢查結果),其中,上述至少一個檢查結果可以表明該任務是否為具有從快取記憶體中驅逐緊急任務的緩存資料的風險的風險任務。例如,在處理器核是處理器核集合113_n中的一個的情況下,該快取記憶體可以表示快取記憶體114_n。更具體地,快取記憶體114_n(例如,L3快取記憶體200)可以專用於處理器核集合113_n(例如,處理器核Core(0)和處理器核Core(1))。
在步驟330中,根據上述至少一個檢查結果,處理電路110(例如, 運行一個或更多個程式模組的特定處理器核)可確定在處理器核運行任務的時間段期間是否暫時限制處理器核的快取記憶體存取權限,以防止由於所述任務導致的快取記憶體的快取記憶體驅逐(eviction)。例如,當確定在該時間段期間暫時限制處理器核(諸如處理器核集合113_n中的一個處理器核)的快取記憶體存取權限時,處理電路110(例如,運行一個或更多個程式模組的特定處理器核)可以暫時將快取記憶體114_n的用於由處理器核存取的快取記憶體路的數量限制為快取記憶體路的預定數量,但是本發明不限於此。
在步驟340中,當確定在該時間段期間暫時限制處理器核的快取記憶體存取權限時,處理電路110可以控制電子設備在該時間段期間執行與任務相對應的操作,例如,在快取記憶體存取權限被限制為快取記憶體的快取記憶體路的預定數量的時間段期間,其中,快取記憶體路的預定數量小於快取記憶體的快取記憶體路的總數。
為了更好地理解,方法300可以用第3圖中所示的工作流來說明,但本發明不限於此。根據一些實施方式,可以在第3圖中所示的工作流中添加、刪除或改變一個或更多個步驟。
第4圖示出了根據本發明的實施方式的第3圖所示的方法的控制方案,其中,在第4圖的右下角處示出的快取記憶體路的四個集合0-3、4-7、8-11和12-15可以作為上述多個緩存路集合的示例。在第4圖中,圓柱狀物可以表示預定硬體資源容量(標記為“L”和“H”,分別表示較低硬體資源容量和較高硬體資源容量)的一些處理器核,並且某些任務可以分別在這些處理器核(如虛線所示的框中所示)上運行。關於第4圖的左半部分,後臺核可以表示運行幕後工作的處理器核,前臺核可以表示運行前臺任務的處理器核。例如,安排哪些任務在哪些處理器核上運行可以取決於電子設備的作業系統(OS)中的一些現有規則,但是本發明不限於此。
基於方法300,處理電路110可以根據方法300在不違反現有規則的情況下動態地調整快取記憶體存取權限(例如,改變具有較低快取記憶體優先順序的核和/或將執行幕後工作的一個或更多個核的優先順序變為具有較低快取記憶體優先順序),例如,通過臨時限制執行或運行風險任務(例如,風險幕後工作等)的處理器核(為了簡便起見,第4圖中標記為□執行風險任務的核□)的快取記憶體存取權限來動態地調整,但是本發明不限於此。由於現有規則不會改變,本發明的方法和相關裝置可以在不會帶來不必要的副作用的情況下,或者以不太可能帶來副作用的方式來解決現有技術中存在的問題。更具體地,當確定在該時間段期間暫時限制處理器核(諸如處理器核集合113_n中的一個處理器核)的快取記憶體存取權限時,處理電路110可以暫時將快取記憶體114_n的用於由處理器核存取的快取記憶體路的數量限制為快取記憶體路的預定數量,例如4、8或12。例如,當快取記憶體路的預定數量等於4時,處理器核在該時間段期間僅可以存取四個快取記憶體路集合0-3、4-7、8-11和12-15中的一個快取記憶體路集合。在這種情況下,在處理器核上運行的任務可以利用四個快取記憶體路集合0-3、4-7、8-11和12-15內的一個快取記憶體路集合,而非其他快取記憶體路集合。又例如,當快取記憶體路的預定數量等於8時,處理器核在該時間段期間僅可以存取四個快取記憶體路集合0-3、4-7、8-11和12-15中的兩個快取記憶體路集合。在這種情況下,在處理器核上運行的任務可以利用四個快取記憶體路集合0-3、4-7、8-11和12-15內的兩個快取記憶體路集合,而非其他快取記憶體路集合。又例如,當快取記憶體路的預定數量等於12時,處理器核在該時間段期間僅可以存取四個快取記憶體路集合0-3、4-7、8-11和12-15中的三個快取記憶體路集合。在這種情況下,在處理器核上運行的任務可以利用四個快取記憶體路集合0-3、4-7、8-11和12-15內的三個快取記憶體路集合,而非另一個快取記憶體路集合。
根據該實施方式,處理電路110可執行任務級快取記憶體存取控制,並且可在某些任務(例如,在目標任務)正在這些處理器核上運行時,能夠對處理電路110內的一些處理器核進行快取記憶體存取限制。更具體地,處理電路110可以監測任何任務以選擇性地應用或釋放(移除)快取記憶體存取限制。以步驟320中提到的任務為例,處理電路110可以監控該任務,並且可以在處理器核將要運行任務之前,將快取記憶體存取限制應用於該處理器核(例如,將快取記憶體114_n的用於由處理器核存取的快取記憶體路的數量限制為快取記憶體路的預定數量),並且在處理器核剛剛停止運行任務之後釋放該快取記憶體存取限制。
第5圖示出了根據本發明實施方式的第3圖所示的方法300的工作流500。可以將步驟510、520和530的操作作為上述步驟320的至少一個檢查操作的示例,並且可以將步驟540和550的操作作為上述步驟330的至少一個檢查操作的示例。
在步驟510中,處理電路110(例如,運行一個或更多個程式模組的某個處理器核)可以檢查任務的快取記憶體驅逐率是否達到(更具體地,大於或等於)第一預定閾值Th1,以生成上述至少一個檢查結果內的第一檢查結果。根據該實施方式,任務的快取記憶體驅逐率可對應於關於該任務驅逐一個或更多個其他任務的資料的行為的監測因數的歷史統計資料,其中,處理電路110可對監測因數進行監測,並且可存儲並更新監測因數。監測因數的示例可以包括但不限於:由於任務導致的快取記憶體驅逐的次數、由於任務導致的快取記憶體驅逐的資料量等。當第一檢查結果表明任務的快取記憶體驅逐率達到第一預定閾值Th1時,進入步驟520;否則,進入步驟550。
在步驟520中,當第一檢查結果表明任務的快取記憶體驅逐率達到第一預定閾值Th1時,處理電路110(例如,運行一個或更多個程式模組的某個處 理器核)可以檢查任務的任務偏好性能指標是否達到(更具體地,大於或等於)第二預定閾值Th2,以生成上述至少一個檢查結果內的第二檢查結果。根據該實施方式,可以根據至少一個預定規則預先將多個任務分別分類為多個組,並且任務的任務偏好性能指標可以與該任務是否屬於這些組內的預定組有關,其中,將任務分類為組可以由處理電路110在OS的控制下執行,但是本發明不限於此。當第二檢查結果表明任務的任務偏好性能指標達到第二預定閾值Th2時,進入步驟550;否則,進入步驟530。
在步驟530中,當第二檢查結果表明任務的任務偏好性能指標未達到第二預定閾值Th2時,處理電路110(例如,運行一個或更多個程式模組的某個處理器核)可以檢查該任務是否為時間限制任務,以生成上述至少一個檢查結果內的第三檢查結果。例如,處理電路110可以根據任務是否為特定類型的任務其中之一來確定該任務是否為時間限制任務。當任務是特定類型的任務其中之一時,處理電路110可以確定該任務是時間限制任務;否則,處理電路110可以確定該任務不是時間限制任務。特定類型的任務的示例可以包括但不限於:即時(RT)任務、幀率(fps)跟蹤任務、具有用戶定義的截止時間的用戶截止時間任務等。當第三檢查結果表明該任務為時間限制任務時,進入步驟550;否則,進入步驟540。
在步驟540中,處理電路110(例如,運行一個或更多個程式模組的某個處理器核)可以在一時間段期間(處理器核運行任務的時間段期間)限制處理器核的快取記憶體存取權限。根據該實施方式,當第三檢查結果表明任務不是時間限制任務時,處理電路110可以確定在該時間段期間暫時限制處理器核的快取記憶體存取權限,並且更具體地,可以在該時間段期間將快取記憶體存取權限限制為快取記憶體的快取記憶體路的預定數量,以防止由於該任務而導致的快取記憶體的快取記憶體驅逐。
在步驟550中,處理電路110(例如,運行一個或更多個程式模組的某個處理器核)在該時間段期間不限制處理器核的快取記憶體存取權限。根據該實施方式,當第三檢查結果表明任務是時間限制任務時,處理電路110可以在該時間段期間避免限制處理器核的快取記憶體存取權限。
基於工作流500,當上述至少一個檢查結果表明滿足預定條件(例如,以下各項中的每一項都為真的條件:任務的快取記憶體驅逐率達到第一預定閾值Th1;任務的任務偏好性能指標未達到第二預定閾值Th2;並且任務不是時間限制任務)時,處理電路可以確定在該時間段期間暫時限制處理器核的快取記憶體存取權限,以防止由於該任務而導致的快取記憶體的快取記憶體驅逐。根據該實施方式,處理電路110可以監測任務的快取記憶體驅逐率等。當上述至少一個檢查結果表明任務是具有從快取記憶體中驅逐緊急任務的緩存資料的風險的風險任務(例如,該任務將驅逐大量的緩存資料)時,處理電路110可以限制快取記憶體的快取記憶體路的可存取數量,以防止同一集群的共用快取記憶體中的重要資料(例如,緊急任務的資料)被該任務驅逐,並且因此可以保證緊急任務的執行。
為了更好地理解,方法300一些操作可以用第5圖中所示的工作流來說明,但本發明不限於此。根據一些實施方式,可以在工作流500中添加、刪除或改變一個或更多個步驟。
根據一些實施方式,處理電路110可至少根據處理電路110內的性能監測單元(PMU)的預定寄存器中的最新值來確定任務的快取記憶體驅逐率,其中,監測因數可被存儲在預定寄存器中,但本發明不限於此。例如,處理電路110可以根據處理電路110內的預定寄存器中的最新值和其他硬體電路的其他硬體資訊來確定任務的快取記憶體驅逐率。在一些實施方式中,處理電路110可根據電子設備的至少一個系統指標(例如,一個或更多個系統指標)來調整第 一預定閾值Th1。上述至少一個系統指標的示例可以包括但不限於:PMU的PMU指標、L3快取記憶體驅逐率、DRAM時延等。在一些實施方式中,處理電路110可根據使用者提示或使用者設置來確定第一預定閾值Th1。在一些實施方式中,處理電路110可利用第一預定閾值Th1作為每個組的閾值,例如取決於相應任務組的閾值。例如,可以根據OS的任務組定義來確定任務組。又例如,可以根據另一組定義(例如,電子設備的製造商的組定義)來確定任務組。
根據一些實施方式,多個組可以包括至少一個非緊急組(例如,一個或更多個非緊急組)和至少一個緊急組(例如,一個或更多個緊急組)。例如,上述至少一個非緊急組包括多個任務內的非緊急任務,並且上述至少一個緊急組包括多個任務內的緊急任務。在步驟520中,處理電路110可至少根據任務是否屬於上述至少一個非緊急組內的組來確定任務的任務偏好性能指標,其中,該組可作為預定組的示例,但本發明不限於此。任務的任務偏好性能指標可以被實現為任務的重要性分數。例如,當任務屬於上述至少一個非緊急組內的組時,重要性分數可以較低,並且更具體地,對於存在多個非緊急組的情況,重要性分數可以取決於該組在其他非緊急組中的預定重要性值。又例如,當任務屬於上述至少一個緊急組內的任何組時,重要性分數可以較高,並且更具體地,對於存在多個緊急組的情況,重要性分數可以取決於該組在其他緊急組中的預定重要性值。在一些實施方式中,處理電路110可根據任務是否屬於上述至少一個非緊急組內的組並且根據任務是否為一個或更多個重要任務(例如,一個或更多個緊急任務)來確定任務的任務偏好性能指標。在一些實施方式中,處理電路110可以根據任務是否屬於上述至少一個非緊急組內的組和/或根據與任務相關的使用者提示來確定任務的任務偏好性能指標。
根據一些實施方式,任務執行可以是算術、邏輯條件和資料獲取的組合,其可以被統稱為任務上下文。由於佇列中的多個任務可以在步驟310中提 到的處理器核上一個接一個地運行,因此當處理器核停止運行一個任務且處理器核將要運行另一個任務時,可以發生任務上下文的上下文切換。
第6圖示出根據本發明實施方式的第3圖所示的方法300的一些實現細節。第6圖中所示的水準軸可以表示時間。為了更好地理解,步驟320中提到的任務可以是非緊急任務,並且可以被排序以在處理器核Core(0)上運行,其中,任務佇列中的前一任務和下一任務都可以是緊急任務,但是本發明不限於此。處理電路110可以監測諸如非緊急任務之類的任務,並且可以在處理器核Core(0)上將要運行任務之前的上下文切換的時間點將快取記憶體存取限制應用於處理器核Core(0)(例如,將快取記憶體200的用於由處理器核Core(0)存取的快取記憶體路的數量限制為快取記憶體路的預定數量),並且在處理器核Core(0)上剛剛停止運行任務之後的上下文切換的時間點釋放快取記憶體存取限制。為了簡潔起見,這裡不再詳細地重複對該實施方式的類似描述。
本領域技術人員會很容易地想到,在保留本發明的教導的同時,可以對設備和方法進行多種修改和變化。因此,上述公開應被解釋為僅受所附權利要求的範圍和界限的限制。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
300:方法
310-340:步驟

Claims (20)

  1. 一種用於在電子設備中執行任務級快取記憶體管理的方法,所述方法被應用於所述電子設備的處理電路,所述方法包括以下步驟:在處理器核運行多個任務中的一個任務之前,對所述任務執行至少一個檢查操作以生成至少一個檢查結果,其中,所述至少一個檢查結果表明所述任務是否為具有從快取記憶體中驅逐緊急任務的緩存資料的風險的風險任務,並且所述快取記憶體專用於包括在所述處理電路之內的所述處理器核的處理器核集合;以及根據所述至少一個檢查結果,確定在所述處理器核運行所述任務的時間段期間是否暫時限制所述處理器核的快取記憶體存取權限,以防止由於所述任務導致的所述快取記憶體的快取記憶體驅逐。
  2. 如申請專利範圍第1項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述處理電路包括多個集群,所述多個集群分別包括多個處理器核集合,並且所述處理器核集合是所述多個處理器核集合內的一個集合。
  3. 如申請專利範圍第2項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述處理器核集合和所述快取記憶體位於所述多個集群中的一個集群內。
  4. 如申請專利範圍第1項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述對所述任務執行所述至少一個檢查操作以生成所述至少一個檢查結果的步驟還包括: 檢查所述任務的快取記憶體驅逐率是否達到第一預定閾值,以生成所述至少一個檢查結果內的第一檢查結果。
  5. 如申請專利範圍第4項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述任務的所述快取記憶體驅逐率對應於關於所述任務驅逐一個或更多個其他任務的資料的行為的監測因數的歷史統計資料。
  6. 如申請專利範圍第4項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述方法還包括:至少根據所述處理電路內的性能監測單元的預定寄存器中的最新值來確定所述任務的所述快取記憶體驅逐率。
  7. 如申請專利範圍第6項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述方法還包括:根據所述處理電路內的所述預定寄存器中的所述最新值和其他硬體電路的其他硬體資訊來確定所述任務的所述快取記憶體驅逐率。
  8. 如申請專利範圍第4項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述方法還包括:根據所述電子設備的至少一個系統指標來調整所述第一預定閾值。
  9. 如申請專利範圍第4項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,根據至少一個預定規則預先將所述多個任 務分別分類為多個組;所述多個組包括至少一個非緊急組和至少一個緊急組;並且所述對所述任務執行所述至少一個檢查操作以生成所述至少一個檢查結果的步驟還包括:當所述第一檢查結果表明所述任務的所述快取記憶體驅逐率達到所述第一預定閾值時,檢查所述任務的任務偏好性能指標是否達到第二預定閾值,以生成所述至少一個檢查結果內的第二檢查結果,其中,至少根據所述任務是否屬於所述至少一個非緊急組內的組來確定所述任務的所述任務偏好性能指標。
  10. 如申請專利範圍第9項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述至少一個非緊急組包括所述多個任務內的非緊急任務,並且所述至少一個緊急組包括所述多個任務內的緊急任務。
  11. 如申請專利範圍第9項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述對所述任務執行所述至少一個檢查操作以生成所述至少一個檢查結果的步驟還包括:當所述第二檢查結果表明所述任務的所述任務偏好性能指標未達到所述第二預定閾值時,檢查所述任務是否為時間限制任務,以生成所述至少一個檢查結果內的第三檢查結果。
  12. 如申請專利範圍第11項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述確定在所述處理器核運行所述任務的所述時間段期間是否暫時限制所述處理器核的所述快取記憶體存取權限 的步驟還包括:當所述第三檢查結果表明所述任務不是時間限制任務時,確定在所述時間段期間暫時限制所述處理器核的所述快取記憶體存取權限,以防止由於所述任務導致的所述快取記憶體的所述快取記憶體驅逐。
  13. 如申請專利範圍第1項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述確定在所述處理器核運行所述任務的所述時間段期間是否暫時限制所述處理器核的所述快取記憶體存取權限的步驟還包括:當所述至少一個檢查結果表明滿足預定條件時,確定在所述時間段期間暫時限制所述處理器核的所述快取記憶體存取權限,以防止由於所述任務導致的所述快取記憶體的所述快取記憶體驅逐。
  14. 如申請專利範圍第1項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述方法還包括:當確定在所述時間段期間暫時限制所述處理器核的所述快取記憶體存取權限時,控制所述電子設備在所述快取記憶體存取權限被限制為所述快取記憶體的快取記憶體路的預定數量的所述時間段期間執行與所述任務相對應的操作,其中,所述快取記憶體路的預定數量小於所述快取記憶體的快取記憶體路的總數量。
  15. 如申請專利範圍第1項所述之一種用於在電子設備中執行任務級快取記憶體管理的方法,其中,所述限制所述處理器核的所述快取記憶體存取權限的步驟包括:將所述快取記憶體的用於由所述處理器核存取的 快取記憶體路的數量限制為所述快取記憶體的快取記憶體路的預定數量,其中,所述快取記憶體路的所述預定數量小於所述快取記憶體的快取記憶體路的總數量。
  16. 一種用於在電子設備中執行任務級快取記憶體管理的裝置,所述裝置包括:處理電路,所述處理電路被佈置為控制所述電子設備的操作,其中,所述處理電路包括多個處理器核,其中:在處理器核運行多個任務中的一個任務之前,所述處理電路對所述任務執行至少一個檢查操作以生成至少一個檢查結果,其中,所述至少一個檢查結果表明所述任務是否為具有從快取記憶體中驅逐緊急任務的緩存資料的風險的風險任務,並且所述快取記憶體專用於包括在所述多個處理器核內的所述處理器核的處理器核集合;並且根據所述至少一個檢查結果,所述處理電路確定在所述處理器核運行所述任務的時間段期間是否暫時限制所述處理器核的快取記憶體存取權限,以防止由於所述任務導致的所述快取記憶體的快取記憶體驅逐。
  17. 如申請專利範圍第16項所述之一種用於在電子設備中執行任務級快取記憶體管理的裝置,其中,所述處理電路包括多個集群,所述多個集群分別包括多個處理器核集合,並且所述處理器核集合是所述多個處理器核集合內的一個集合。
  18. 如申請專利範圍第16項所述之一種用於在電子設備中執行任務級快 取記憶體管理的裝置,其中,所述處理電路檢查所述任務的快取記憶體驅逐率是否達到第一預定閾值,以生成所述至少一個檢查結果內的第一檢查結果。
  19. 如申請專利範圍第16項所述之一種用於在電子設備中執行任務級快取記憶體管理的裝置,其中,當所述至少一個檢查結果表明滿足預定條件時,所述處理電路確定在所述時間段期間暫時限制所述處理器核的所述快取記憶體存取權限,以防止由於所述任務導致的所述快取記憶體的所述快取記憶體驅逐。
  20. 如申請專利範圍第16項所述之一種用於在電子設備中執行任務級快取記憶體管理的裝置,其中,當確定在所述時間段期間暫時限制所述處理器核的所述快取記憶體存取權限時,所述處理電路控制所述電子設備在所述快取記憶體存取權限被限制為所述快取記憶體的預定數量的快取記憶體路的所述時間段期間執行與所述任務相對應的操作,其中,所述快取記憶體路的預定數量小於所述快取記憶體的快取記憶體路的總數量。
TW108131510A 2018-09-10 2019-09-02 電子設備中執行任務級快取記憶體管理的方法和裝置 TWI712890B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/125,780 US10509727B1 (en) 2018-09-10 2018-09-10 Method and apparatus for performing task-level cache management in electronic device
US16/125,780 2018-09-10

Publications (2)

Publication Number Publication Date
TW202011205A TW202011205A (zh) 2020-03-16
TWI712890B true TWI712890B (zh) 2020-12-11

Family

ID=68841415

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108131510A TWI712890B (zh) 2018-09-10 2019-09-02 電子設備中執行任務級快取記憶體管理的方法和裝置

Country Status (3)

Country Link
US (1) US10509727B1 (zh)
CN (1) CN110888749B (zh)
TW (1) TWI712890B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111736998A (zh) * 2020-06-18 2020-10-02 上海商汤智能科技有限公司 内存管理方法和相关产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI264639B (en) * 2001-08-27 2006-10-21 Intel Corp Method and apparatus for accessing shared-access information stored in memory, and computer program product residing on a computer-readable medium
US7711902B2 (en) * 2006-04-07 2010-05-04 Broadcom Corporation Area effective cache with pseudo associative memory
US8261022B2 (en) * 2001-10-09 2012-09-04 Agere Systems Inc. Method and apparatus for adaptive cache frame locking and unlocking

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182567B1 (en) * 2000-08-21 2012-03-07 Texas Instruments France Software controlled cache configuration
US7844779B2 (en) * 2007-12-13 2010-11-30 International Business Machines Corporation Method and system for intelligent and dynamic cache replacement management based on efficient use of cache for individual processor core
US8255627B2 (en) * 2009-10-10 2012-08-28 International Business Machines Corporation Secondary cache for write accumulation and coalescing
US9268542B1 (en) * 2011-04-28 2016-02-23 Google Inc. Cache contention management on a multicore processor based on the degree of contention exceeding a threshold
CN104011694A (zh) * 2011-12-21 2014-08-27 英特尔公司 用于存储器层次知晓的生产者-消费者指令的装置和方法
US9274963B2 (en) * 2012-07-20 2016-03-01 International Business Machines Corporation Cache replacement for shared memory caches
WO2014018025A2 (en) * 2012-07-25 2014-01-30 Empire Technology Development Llc Management of chip multiprocessor cooperative caching based on eviction rate
US9569367B1 (en) * 2014-03-04 2017-02-14 EMC IP Holding Company LLC Cache eviction based on types of data stored in storage systems
WO2018001528A1 (en) * 2016-07-01 2018-01-04 Intel Corporation Apparatus and methods to manage memory side cache eviction

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI264639B (en) * 2001-08-27 2006-10-21 Intel Corp Method and apparatus for accessing shared-access information stored in memory, and computer program product residing on a computer-readable medium
US8261022B2 (en) * 2001-10-09 2012-09-04 Agere Systems Inc. Method and apparatus for adaptive cache frame locking and unlocking
US7711902B2 (en) * 2006-04-07 2010-05-04 Broadcom Corporation Area effective cache with pseudo associative memory

Also Published As

Publication number Publication date
CN110888749A (zh) 2020-03-17
TW202011205A (zh) 2020-03-16
US10509727B1 (en) 2019-12-17
CN110888749B (zh) 2023-04-14

Similar Documents

Publication Publication Date Title
US10104008B1 (en) Allocating processor resources based on a task identifier
US9626295B2 (en) Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring
US9864636B1 (en) Allocating processor resources based on a service-level agreement
US9405572B2 (en) Optimized resource allocation and management in a virtualized computing environment
KR101629879B1 (ko) 캐시 사용 기반 어댑티브 스케줄링을 가지는 멀티코어 컴퓨터 시스템
US20080250415A1 (en) Priority based throttling for power/performance Quality of Service
US20150046656A1 (en) Managing and sharing storage cache resources in a cluster environment
US20160203083A1 (en) Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture
US20130073783A1 (en) Hybrid data storage management taking into account input/output (i/o) priority
US10496550B2 (en) Multi-port shared cache apparatus
WO2006014254A1 (en) An apparatus and method for heterogenous chip multiprocessors via resource allocation and restriction
JP2013109777A (ja) パフォーマンスカウンタの仮想化
US20120290789A1 (en) Preferentially accelerating applications in a multi-tenant storage system via utility driven data caching
US20160179580A1 (en) Resource management based on a process identifier
GB2545058A (en) Flash memory management
CN114375439A (zh) 用于页表行走存储器事务的分区标识符
US10042659B1 (en) Caching virtual contexts for sharing of physical instances of a hardware resource
TWI712890B (zh) 電子設備中執行任務級快取記憶體管理的方法和裝置
CN112988388A (zh) 一种内存页管理方法及计算设备
Usui et al. Squash: Simple qos-aware high-performance memory scheduler for heterogeneous systems with hardware accelerators
US10678705B2 (en) External paging and swapping for dynamic modules
EP4022446B1 (en) Memory sharing
US11899551B1 (en) On-chip software-based activity monitor to configure throttling at a hardware-based activity monitor
US10051087B2 (en) Dynamic cache-efficient event suppression for network function virtualization
US11693778B2 (en) Cache grouping for increasing performance and fairness in shared caches