TW201701170A - 用於多執行緒處理器之頻寬/資源管理 - Google Patents

用於多執行緒處理器之頻寬/資源管理 Download PDF

Info

Publication number
TW201701170A
TW201701170A TW105115830A TW105115830A TW201701170A TW 201701170 A TW201701170 A TW 201701170A TW 105115830 A TW105115830 A TW 105115830A TW 105115830 A TW105115830 A TW 105115830A TW 201701170 A TW201701170 A TW 201701170A
Authority
TW
Taiwan
Prior art keywords
threads
thread
level
priority
hazard
Prior art date
Application number
TW105115830A
Other languages
English (en)
Other versions
TWI711932B (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 TW201701170A publication Critical patent/TW201701170A/zh
Application granted granted Critical
Publication of TWI711932B publication Critical patent/TWI711932B/zh

Links

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

本發明提供關於管理包含兩個或兩個以上處理執行緒之一多執行緒處理器中之共用資源的系統及方法。判定該兩個或兩個以上執行緒之危險等級,其中一執行緒之危險等級係基於歸因於一共用資源之不可用性的該執行緒未能符合一期限之一潛在可能;亦判定與該兩個或兩個以上執行緒相關聯之優先權等級,其中該優先權等級對於未能符合一期限的情況為不可接受之一執行緒係較高的,且該優先權等級對於未能符合一期限的情況為可接受之一執行緒係較低的。至少基於該兩個或兩個以上執行緒之該等所判定的危險等級以及與該兩個或兩個以上執行緒相關聯之優先權等級而對該兩個或兩個以上執行緒排程。

Description

用於多執行緒處理器之頻寬/資源管理 根據35 U.S.C.§119之優先權主張
本專利申請案主張2015年5月29日申請的標題為「BANDWIDTH/RESOURCE MANAGEMENT FOR MULTITHREADED PROCESSORS」之臨時申請案第62/168,708號的優先權,該臨時申請案讓予給本受讓人且特此明確地以引用之方式併入本文中。
所揭示之態樣係關於包含多執行緒處理器之處理系統。更特定而言,例示性態樣係關於一或多個多執行緒處理器之資源及頻寬管理。
攜帶型計算裝置(PCD)包括蜂巢式電話、攜帶型數位助理(PDA)、攜帶型遊戲機、膝上型電腦及其他攜帶型電子裝置。PCD可使用包含整合於同一晶片或晶粒上之一或多個處理核心的系統單晶片(SOC)架構。處理核心可具有期限,若該等期限被錯失則可導致在PCD操作期間不可接受的可偵測或可見失敗。此類核心在本發明中被稱為不可接受期限錯失(UDM)核心。UDM核心亦可被稱為即時用戶端/核心(或此項技術中已知之適合替代名稱)以表達即時或核心操作期間之期限錯失為不可接受的。
相比之下,可存在可遭受效能降級,但(例如)效能降級或未能符合期限之情況可接受的其他核心。此類核心在本發明中被稱為非UDM核心。非UDM核心亦可被稱為非即時用戶端/核心或適合的替代名稱以表達核心之即時期限錯失為可接受的。
一般而言,核心之期限可由該核心自共用資源(諸如記憶體(例如,動態隨機存取記憶體(DRAM)、內部靜態隨機存取記憶體(SRAM)記憶體(IMEM))、匯流排(例如,快速周邊組件互連(PCI-e)、外部輸送鏈路)等,或任何共用頻寬資源)接收之頻寬(BW)的量驅動。更具體而言,期限可基於在指定時間段內對核心可用之頻寬。該指定時間段可為相對較小的,例如在10微秒至100微秒之範圍內。
當某些核心未在指定時間段內接收足夠記憶體BW時,可發生可對使用者可見之失敗。舉例而言,PCD中之核心中的一者可為自記憶體元件(例如,DRAM)讀取資料並且將資料輸出至顯示面板/裝置以供使用者觀看之顯示引擎。若顯示引擎不能夠在固定時間段內自DRAM讀取足夠資料,則可導致顯示引擎用完顯示資料且被迫在顯示器上顯示固定單色(例如,藍色或黑色)。此為關於顯示引擎之錯誤狀況,且在此項技術中可被稱為「顯示欠位」、「顯示欠載」或「顯示撕裂」。此類顯示錯誤狀況被認為係不可接受的,使得顯示引擎為UDM核心。
不可接受之失敗的另一實例可涉及PCD中之相機。一般而言,相機可自感測器接收資料並且將彼資料寫入至DRAM。然而,若相機所接收之資料不在固定時間段內寫入至DRAM,則相機可變得被所接收之資料擁塞且開始丟失自感測器接收之輸入資料。此為相機之錯誤狀況且可被稱為「相機溢位」或「相機影像訛誤」。該相機錯誤狀況可導致不可接受之影像品質損失,使得相機成為UDM核心。
不可接受之失敗的又一實例可關於數據機核心不能夠在固定時間 段內自/向DRAM讀取/寫入足夠資料,此可阻止數據機核心按時完成關鍵任務。若在特定期限內未完成關鍵任務,則數據機核心之韌體可當機:在一時間段內丟失PCD之語音或資料呼叫,或網際網路連接可顯得遲緩(亦即,在網際網路連接期間時斷時續)。此為數據機核心之不可接受之錯誤狀況,且因此數據機核心亦可被視為UDM核心。
儘管以上實例被描述為對於特定核心之不可接受之期限錯失,但一些核心可為具有兩個或兩個以上並行處理執行緒之多執行緒處理器。多執行緒處理器可具有就期限錯失而論之額外考慮因素。不可接受期限錯失之任務可在一或多個執行緒上執行。UDM任務在上面執行之執行緒可被稱為UDM執行緒。若不符合期限,則UDM執行緒上之任務將導致不可接受之失敗。多執行緒處理器亦可具有一或多個非UDM執行緒,其中非UDM執行緒上之任務在不符合期限的情況下將不導致不可接受之失敗。
管理用於具有UDM執行緒與非UDM執行緒之混合的PCD之多執行緒處理器的頻寬及資源係具有挑戰性的。可需要保護UDM執行緒以免被多執行緒處理器內之非UDM執行緒用光頻寬/資源。此外,處理系統可包含在多執行緒處理器外部之一或多個核心。因而,亦可需要保護多執行緒處理器之UDM執行緒之頻寬/資源以免被在多執行緒處理器外部之核心使用。此外,一些處理系統可包括一個以上多處理器,其意謂亦可需要保護每一多處理器之UDM執行緒以免受頻寬/資源降級。
因此,在此項技術中需要管理包含至少一個多執行緒處理器之處理系統之頻寬/資源,其中該多執行緒處理器可包含至少一個UDM執行緒。
例示性態樣係關於用於管理包含兩個或兩個以上處理執行緒之多 執行緒處理器中之共用資源的系統及方法。該等執行緒可為UDM執行緒或非UDM執行緒。多執行緒處理器可為數位信號處理器(DSP)、通用處理器(GPP)或中央處理單元(CPU)中的一者。一態樣包括判定兩個或兩個以上執行緒之危險等級,其中執行緒之危險等級係基於歸因於一共用資源之不可用性的該執行緒未能符合一期限之一潛在可能。一態樣進一步包括偵測與該兩個或兩個以上執行緒相關聯之優先權等級,其中該優先權等級對於未能符合一期限的情況為不可接受之執行緒係較高的,且該優先權等級對於未能符合一期限的情況為可接受之執行緒係較低的。在一些態樣中,基於執行緒之優先權等級而在記分板中將來自一或多個執行緒之異動分組允許基於優先權等級之排程。一例示性態樣進一步包括基於執行緒之相關聯危險等級及優先權等級而排程兩個或兩個以上執行緒中的每一者。
在一些態樣中,節流未能符合期限的情況為可接受之至少一個低優先權執行緒(例如,非UDM執行緒)。節流低優先權執行緒可意謂阻止或延遲來自低優先權執行緒之低優先權異動的排程,其中該低優先權異動若被排程則將消耗共用資源。此外,節流低優先權執行緒亦可導致或允許實現排程來自未能符合期限的情況為不可接受之至少一個高優先權執行緒(例如,UDM執行緒)之高優先權異動,其中基於節流低優先權異動而使用於高優先權執行緒之共用資源可用。
一些態樣包括基於兩個或兩個以上執行緒之內部危險等級以及包含多執行緒處理器之系統之一或多個核心的一外部危險等級而判定該兩個或兩個以上執行緒之危險等級。舉例而言,該內部危險等級可基於以下各項中之一或多者:由以每一執行緒之危險等級程式化之軟體可程式化暫存器提供之危險等級、在一計時器在與執行緒相關聯之任務完成之前逾期的情況下由該計時器提供之危險等級、由用於每一執行緒之頻寬監測器提供之危險等級,或由用於每一執行緒之潛時監測 器提供之危險等級。
因此,一例示性態樣關於一種管理包含兩個或兩個以上處理執行緒之一多執行緒處理器中之共用資源的方法,該方法包含:判定該兩個或兩個以上執行緒之危險等級,其中一執行緒之危險等級係基於歸因於一共用資源之不可用性的該執行緒未能符合一期限之一潛在可能;偵測與該兩個或兩個以上執行緒相關聯之優先權等級,其中該優先權等級對於未能符合一期限的情況為不可接受之一執行緒係較高的,且該優先權等級對於未能符合一期限的情況為可接受之一執行緒係較低的;及至少基於該兩個或兩個以上執行緒之該等所判定的危險等級以及與該兩個或兩個以上執行緒相關聯之優先權等級而排程該兩個或兩個以上執行緒。
另一例示性態樣係關於一種處理系統,其包含:一多執行緒處理器,其經組態以處理兩個或兩個以上處理執行緒;一危險彙總器,其經組態以判定該兩個或兩個以上執行緒之危險等級,其中一執行緒之危險等級係基於歸因於一共用資源之不可用性的該執行緒未能符合一期限之一潛在可能;一異動記分板,其經組態以追蹤與該兩個或兩個以上執行緒相關聯之優先權等級,其中該優先權等級對於未能符合一期限的情況為不可接受之一執行緒係較高的,且該優先權等級對於未能符合一期限的情況為可接受之一執行緒係較低的;及一移出佇列引擎,其經組態以至少基於該兩個或兩個以上執行緒之該等所判定的危險等級以及與該兩個或兩個以上執行緒相關聯之優先權等級而排程該兩個或兩個以上執行緒。
又一例示性態樣係關於一種處理系統,其包含:用於處理兩個或兩個以上處理執行緒的多執行緒處理構件;用於判定該兩個或兩個以上執行緒之危險等級的構件,其中一執行緒之危險等級係基於歸因於一共用資源之不可用性的該執行緒未能符合一期限之一潛在可能;用 於偵測與該兩個或兩個以上執行緒相關聯之優先權等級的構件,其中該優先權等級對於未能符合一期限的情況為不可接受之一執行緒係較高的,且該優先權等級對於未能符合一期限的情況為可接受之一執行緒係較低的;及用於至少基於該兩個或兩個以上執行緒之該等所判定的危險等級以及與該兩個或兩個以上執行緒相關聯之優先權等級而排程該兩個或兩個以上執行緒的構件。
另一例示性態樣係關於一種非暫時性電腦可讀儲存媒體,其包含在由一處理器執行時導致該處理器執行用於管理包含兩個或兩個以上處理執行緒之一多執行緒處理器中之共用資源的操作的程式碼,該非暫時性電腦可讀儲存媒體包含:用於判定該兩個或兩個以上執行緒之危險等級的程式碼,其中一執行緒之危險等級係基於歸因於一共用資源之不可用性的該執行緒未能符合一期限之一潛在可能;用於偵測與該兩個或兩個以上執行緒相關聯之優先權等級的程式碼,其中該優先權等級對於未能符合一期限的情況為不可接受之一執行緒係較高的,且該優先權等級對於未能符合一期限的情況為可接受之一執行緒係較低的;及用於至少基於該兩個或兩個以上執行緒之該等所判定的危險等級以及與該兩個或兩個以上執行緒相關聯之優先權等級而排程該兩個或兩個以上執行緒的程式碼。
101‧‧‧處理系統
112‧‧‧記憶體
202‧‧‧頻率控制器
204‧‧‧服務品質(「QoS」)控制器
206a至206j‧‧‧流量節流器
208‧‧‧節流等級命令線
210‧‧‧互連件
212‧‧‧記憶體控制器QoS原則資料線
214‧‧‧記憶體控制器
214a至214n‧‧‧記憶體控制器
216‧‧‧頻率改變請求
218‧‧‧互連件及記憶體控制器頻率
220A‧‧‧命令/頻率命令線
220B‧‧‧命令線/線
220C‧‧‧命令線/線
222a‧‧‧不可接受之期限錯失(UDM)核心
222a1‧‧‧UDM核心
222a2‧‧‧UDM核心
222b‧‧‧非UDM核心
222b1至222b4‧‧‧非UDM核心
222c‧‧‧混合式UDM核心(HUC)
222c1‧‧‧HUC
222c2‧‧‧HUC
300‧‧‧輸出異動排程器/多工器
301a‧‧‧危險等級信號/危險信號/危險等級
301b‧‧‧危險信號/危險等級
301c‧‧‧危險信號/危險等級
301d‧‧‧危險信號/危險等級
304a‧‧‧讀取及寫入異動匯流排
304n‧‧‧讀取及寫入異動匯流排
304x/306x‧‧‧異動/第一子組之異動
304y/306y‧‧‧異動/第二子組之異動
305‧‧‧信號暫停源命令
306‧‧‧記分板移出佇列引擎
306a‧‧‧讀取及寫入異動匯流排
306n‧‧‧讀取及寫入異動匯流排
320‧‧‧優先權模式暫存器
324a‧‧‧多執行緒可程式化核心
324n‧‧‧多執行緒可程式化核心
326a‧‧‧固定功能子核心
326n‧‧‧固定功能子核心
328‧‧‧軟體可程式化暫存器/軟體可寫暫存器
330‧‧‧危險偵測塊/計時器
332‧‧‧每執行緒/核心頻寬監測器
334‧‧‧每執行緒/核心外部潛時監測器
336‧‧‧危險彙總器/危險等級彙總器
338‧‧‧至互連件之讀取及寫入異動匯流排/讀取及寫入異動匯流排
340‧‧‧HUC危險等級偵測塊
401‧‧‧QoS原則產生器
402‧‧‧記分板移出佇列排程器
403a至403n‧‧‧計數器
403a‧‧‧優先權1異動計數器
403n‧‧‧優先權N異動計數器
404‧‧‧異動記分板
405‧‧‧流量排程器及多工器
407‧‧‧異動仲裁器/輸出異動仲裁器
410‧‧‧記分板QoS原則
600‧‧‧無線裝置或PCD
626‧‧‧顯示控制器
628‧‧‧顯示器
630‧‧‧輸入裝置
634‧‧‧編碼器/解碼器(編碼解碼器)
636‧‧‧揚聲器
638‧‧‧麥克風
640‧‧‧無線控制器
642‧‧‧無線天線
644‧‧‧電源供應器
A‧‧‧危險等級感測器
B‧‧‧危險等級信號
D‧‧‧頻寬等級
F‧‧‧優先權模式信號
G‧‧‧HUC內部QoS原則信號
H‧‧‧信號
呈現附圖以輔助描述本發明之態樣,且提供該等附圖僅用於說明該等態樣而非對其加以限制。
圖1說明在攜帶型計算裝置(PCD)內之用於基於自可利用共用資源之一或多個不可接受期限錯失(UDM)核心監測的危險信號之頻寬工程化/調整/整形/節流之例示性系統的方塊圖。
圖2說明包含UDM執行緒及非UDM執行緒之混合式UDM核心(HUC)或多執行緒處理器的方塊圖。
圖3說明圖2之HUC之輸出異動排程器/多工器的方塊圖。
圖4為管理多執行緒處理器中之共用資源之方法的流程圖。
圖5說明可在其中有利地使用本發明之態樣之例示性無線裝置或PCD。
本發明之態樣揭示於以下描述以及有關本發明之具體態樣之相關圖式中。可在不脫離本發明之範疇的情況下設計出替代性態樣。另外,本發明之眾所熟知之元件將不加以詳細描述或將被省略以便不混淆本發明之相關細節。
詞語「例示性」在本文中用以意謂「充當實例、例子或說明」。不必將本文中描述為「例示性」之任何態樣解釋為較佳或優於其他態樣。同樣地,術語「本發明之態樣」並不要求本發明之所有態樣皆包括所論述之特徵、優點或操作模式。
本文中所使用之術語僅出於描述特定態樣之目的,且並不意欲限制本發明之態樣。如本文中所使用,單數形式「一」及「該」意欲亦包括複數形式,除非上下文另有清晰指示。將進一步理解,術語“包含”及/或“包括”當在本文中使用時指定所陳述之特徵、整體、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整體、步驟、操作、元件、組件及/或其群組的存在或添加。
此外,就待由(例如)計算裝置之元件執行的動作序列而言描述許多態樣。將認識到,本文中所描述之各種動作可以由具體電路(例如,特殊應用積體電路(ASIC))、由一或多個處理器所執行之程式指令或由兩者之組合來執行。另外,可認為本文中所描述之此等動作序列完全體現於任何形式之電腦可讀儲存媒體內,該電腦可讀儲存媒體儲存有在執行時將使一相關聯之處理器執行本文中所描述之功能性的電腦指令之對應集合。因此,本發明之各種態樣可以許多不同形式體 現,已預期所有該等形式皆在所主張標的物之範疇內。另外,對於本文中所描述之態樣中每一者,任何此等態樣之對應形式可在本文中被描述為(例如)「經組態以執行所描述動作之邏輯」。
在本發明中,包括至少一個不可接受期限錯失(UDM)執行緒與至少一個非UDM執行緒之混合的多執行緒處理器被稱為混合式UDM核心(HUC)。在例示性態樣中,至少一個UDM執行緒與至少一個非UDM執行緒能夠同時在HUC中執行。失敗或期限錯失為不可接受的UDM執行緒之實例為HUC之音訊執行緒。藉以執行音訊應用程式或任務之音訊執行緒可在不按時完成所述應用程序時導致可聽見的「砰聲」或聲音。此砰聲被視為包含UDM。失敗可導致品質降級但不認為不可接受的非UDM執行緒之實例為視訊編碼執行緒。若在後續或後繼圖框開始之前未完成對當前圖框之編碼,則與UDM音訊執行緒同時或並行地在HUC上執行之非UDM視訊編碼執行緒可跳過後繼圖框。以此方式跳過後繼圖框可導致品質損失但不認為不可接受。
在HUC之內容脈絡中,術語執行緒與核心可互換地用以指可同時執行任務之處理引擎。不存在假定在HUC或多執行緒處理器之執行緒/核心之間存在的實體分離。
HUC可為能夠並行地執行兩個或兩個以上處理執行緒之中央處理單元(CPU)、數位信號處理器(DSP)、通用處理器(GPU)等。HUC可為例如經組態為前述攜帶型計算裝置(PCD)的系統單晶片(SoC)之一或多個處理核心當中的一者。在本發明之例示性態樣中,描述對HUC之資源/頻寬之管理。由於HUC可包括UDM執行緒及非UDM執行緒,因此必須注意確保UDM執行緒接收足夠頻寬/資源,以使得可阻止UDM執行緒之不可接受之期限錯失。HUC之UDM執行緒可由於HUC內之非UDM執行緒以及由諸如PCD中之其他核心或其他HUC的外部元件導致之節流而被節流或用盡資源/頻寬。可節流UDM執行緒/核心之元件 可被稱為侵入者。
在本發明之例示性態樣中,若在HUC外部之UDM核心節流HUC(亦稱為外部節流),則使用系統及方法來節流HUC中之非UDM執行緒/核心而不影響HUC中之UDM執行緒/核心。另一方面,節流危險可起因於HUC內(內部節流)。在內部節流之情形下,HUC可在例示性態樣中經設計以感測其UDM執行緒/核心中之一或多者歸因於缺少資源/頻寬而瀕臨不可接受之期限錯失的危險。為了避免節流瀕臨危險之UDM執行緒/核心,例示性解決方案關於節流外部非UDM核心或內部非UDM核心/執行緒中之一或多者,以使得阻止節流內部UDM核心/執行緒。
參考圖1,說明例示性處理系統101之方塊圖。處理系統101可關於或包含攜帶型計算裝置(PCD)。處理系統101一般而言經組態以用於基於自可利用如記憶體112、互連件210等共用資源之一或多個硬體元件(諸如核心222)監測之危險信號的頻寬節流。處理系統101可包含服務品質(「QoS」)控制器204,其耦接至大體被指定元件符號222a之一或多個不可接受期限錯失(UDM)核心(包含UDM核心222a1及222a2)。UDM核心222a1至222a2可導致在本發明中被認為不可接受之例示性錯誤狀況,諸如(但不限於)顯示欠位、相機溢位、電話呼叫中斷、網際網路連接遲緩等。UDM核心222a1至222a2可包含危險等級感測器「A」,其產生危險等級信號「B」,其中危險等級信號B由QoS控制器204接收及監測。
處理系統101亦經展示為包括大體上被指定元件符號222b且包含非UDM核心222b1至222b4之非UDM核心。非UDM核心222b1至222b4不展示為包括危險等級感測器A。在一些態樣中,非UDM核心222b1至222b4中之一或多者可能具有危險等級感測器A,然而,非UDM核心222b1至222b4之此等感測器A不耦接至QoS控制器204或可斷開此等 危險等級感測器A之開關(未說明),使得QoS控制器204不自此等非UDM核心222b1至222b4接收任何危險等級信號B。
另外,如上所述,處理系統101亦包括大體上被指定元件符號222c且包含HUC 222c1及222c2之混合式UDM核心(HUC)。HUC 222c1至222c2亦包括危險等級感測器,其被指定為混合式危險等級感測器H。混合式危險等級感測器H亦經組態以產生由QoS控制器204接收及監測之危險等級信號B。另外,HUC 222c亦產生由QoS控制器204接收及監測之優先權模式信號F,且自QoS控制器204接收HUC內部QoS原則信號G。下文參考圖2進一步詳細解釋與HUC 222c相關之信號F、G及H。
每一UDM核心222a、非UDM核心222b及HUC 222c可耦接至大體上被指定元件符號206且包含耦接至各別核心222之流量節流器206a至206j的流量整形器或流量節流器。流量節流器206可耦接至互連件210,該互連件210可包含如一般熟習此項技術者所理解之一或多個開關網狀架構(fabrics)、環、縱橫式連接件(crossbar)、匯流排等。互連件210可耦接至一或多個記憶體控制器214。
大體上被指定元件符號214且包含記憶體控制器214a至214n之記憶體控制器可耦接至記憶體112。記憶體112可包含揮發性或非揮發性記憶體。記憶體112可包括(但不限於)DRAM、IMEM等。儘管未示出,但處理系統101亦可包括經由PCI-e外部輸送件耦接至一或多個PCI周邊裝置的PCI控制器。
QoS控制器204可經由節流等級命令線208發出命令信號給個別流量節流器206。類似地,QoS控制器204可經由記憶體控制器QoS原則資料線212發出記憶體控制器QoS原則信號給個別記憶體控制器214。QoS控制器204亦可發出改變互連件及/或記憶體控制器之頻率的命令220A給頻率控制器202。QoS控制器204可監測UDM核心222a及HUC 222c產生之危險等級信號B。QoS控制器204亦可監測被指定為輸入218之互連件及記憶體控制器頻率。
頻率控制器202可分別經由命令線220B及220C發出頻率改變命令給互連件210及記憶體控制器214。頻率控制器202可自主控裝置(諸如,自UDM核心222a、非UDM核心222b及HUC 222c)接收頻率改變請求216作為輸入。如先前所述,頻率控制器202亦可自QoS控制器204接收用於改變互連件210及/或記憶體控制器214的頻率之命令220A。
如上文所論述,QoS控制器204自UDM核心222a及HUC 222c接收危險等級信號B作為其輸入中之一者。另外,QoS控制器204亦自HUC 222c接收優先權模式信號F。將首先解釋危險等級信號B以說明QoS控制器204之操作。然而,除了關於HUC 222c以外,在本發明中將避免對QoS控制器204、頻率控制器202及相關態樣之詳細解釋。申請人之同在申請中之美國專利申請案第14/588,798及14/588,812號提供對用於包括UDM核心222a及非UDM核心222b之非HUC之處理系統101的詳細解釋。
為了提供關於HUC及非HUC(亦即,UDM核心222a及非UDM核心222b)的QoS控制器204之操作之相關背景,現將提供針對UDM核心222a之在QoS控制器204處接收危險等級信號B及管理節流器206的概念。危險等級信號B可包含指示UDM核心222a相信其處於不符合期限之危險中及/或處於失敗危險中的等級或程度之資訊。該失敗可包含上文在先前技術部分針對硬體裝置(諸如(但不限於)顯示引擎、相機及數據機)所描述的一或多個錯誤狀況。每一危險等級信號B可相對於各別硬體元件係唯一的。
基於危險等級信號B與互連件及記憶體控制器頻率218,QoS控制器204判定用於正被監測的每一核心222(包含UDM核心222a、非UDM核心222b及HUC 222c)的合適QoS原則。將理解,在本發明之態樣 中,一些核心222可不明確地發信號或確證危險等級信號B,但如本文中所論述,QoS控制器204亦可將未自一或多個核心222接收到危險等級信號B當作指示不發信號表示危險等級的一或多個核心222之危險程度的資訊(例如,彼等一或多個核心222不處於危險中)。因此,如本文中所論述,偵測或判定危險等級B不僅包括經明確地確證之危險等級信號,而且涵蓋不明確地確證危險等級信號B之情形。QoS控制器204維持用於每一核心222之個別QoS原則。用於正被監測之每一核心222的QoS原則經由節流等級命令線208被傳達或轉送至指派給特定核心222的每一各別節流器206。每一流量節流器206調整來自各別核心222之頻寬以匹配由QoS控制器204經由節流等級命令線208指定之頻寬等級「D」。在一些態樣中,傳達至流量節流器206之QOS原則亦可指示流量節流器206將流動通過其之異動的優先權改變為較低等級,使得來自UDM核心222a或HUC核心222c之異動在下游共用資源(如互連件210、記憶體112等)處被給予較高優先權。
一般而言,QoS控制器204可節流或更改核心222之侵入者核心(其可為或可不為UDM類型硬體元件)之流量或頻寬的優先權,記住用於節流HUC 222c之原則係不同的,且除了來自HUC 222c之危險等級信號B以外,亦將基於優先權模式信號F。藉由整形/節流核心222之侵入者核心(諸如,例如非UDM核心222b)之頻寬,UDM核心222a可自處理系統101接收更大頻寬及/或更低潛時異動,藉此降低各別UDM核心222a之各別危險等級。
另外,QoS控制器亦可判定每一記憶體控制器214以及互連件210之合適操作頻率「E」。藉由增加互連件210及/或一或多個記憶體控制器214之頻率,例如,UDM核心222a可接收更大操作頻寬。一旦QoS控制器204判定一或多個UDM核心222a不處於失敗之危險中,QoS控制器204便可減小頻率。具體而言,QoS控制器204可經由頻率命令線 220A發出頻率控制命令給頻率控制器202。頻率控制器202繼而可在線220B、220C上發出頻率改變命令給互連件210及記憶體控制器214。
現將基於圖1之處理系統101之以上描述而詳細地解釋關於HUC 222c之頻寬/資源管理之例示性態樣。如先前提及,在HUC之情形下出現兩個考慮因素。第一考慮因素係關於外部節流。外部節流適用於以下情形:其中,例如,一或多個非HUC UDM核心222a(例如,顯示引擎,如先前提及)感測到危險且產生危險等級信號B,基於該等危險等級信號B,QoS控制器204可尋求節流所有頻寬侵入者,包括HUC 222c。此可有效地促使QoS控制器204導致節流器206f及206j(分別耦接至HUC 222c1及222c2)節流HUC 222c1及222c2。然而,由於HUC 222c可包括作用中的UDM及非UDM執行緒(其中再一次非UDM執行緒本身可為侵入者),因此可最終對HUC 222c1至222c2之UDM執行緒以及非UDM侵入者執行緒進行節流。儘管需要節流非UDM執行緒,但不應在阻止發生不可接受之失敗的過程中節流UDM執行緒。因而,HUC 222c經設計以依以下方式節流HUC 222c內之非UDM執行緒/核心,而不影響UDM執行緒/核心。
第二考慮因素關於(例如)在HUC之UDM執行緒歸因於來自在同一HUC上執行之侵入者非UDM執行緒的資源爭用而處於錯失期限之危險中時自HUC產生的內部壓力。侵入者非UDM執行緒可藉由佔用(hog)共用資源將UDM執行緒置於發生不可接受之失敗的危險中。共用資源可在HUC內部,例如快取記憶體、緩衝器、未處理異動等。共用資源亦可在HUC外部,例如互連件210或記憶體112之頻寬。在HUC 222c1(例如)經歷內部壓力之此等情形中,QoS控制器204無法經由HUC 222c1之節流器206f應用節流,此係由於在HUC 222c1上並行地執行之UDM執行緒與非UDM執行緒不存在空間分離。
在例示性態樣中,為了阻止外部及內部影響節流HUC內之UDM執行緒,為UDM執行緒提供增大的復原性以在存在侵入者非UDM執行緒的情況下符合其期限。
現參考圖2,說明例示性HUC 222c之方塊圖。HUC 222c經展示為包含指定為324a至324n的兩個或兩個以上多執行緒可程式化核心。多執行緒可程式化核心324a至324n可經組態為CPU/DSP/GPU等,且可具有一或多個可程式化執行緒,其中每一執行緒可為UDM執行緒或非UDM執行緒。HUC 222c亦包括固定功能子核心326a至326n,其可包含UDM子核心及/或非UDM子核心。儘管多執行緒可程式化核心324a至324n具有可程式化的執行緒,但固定功能子核心326a至326n為經設計以實施固定功能之子核心。
優先權模式暫存器320包含關於UDM執行緒/核心與非UDM執行緒/核心之混合的資訊。一般而言,較高優先權可適用於具有UDM執行緒/核心之較高組成的HUC,且較低優先權可適用於具有UDM執行緒/核心之較低組成的HUC。優先權模式F係自優先權模式暫存器320輸出且提供給如圖1中所展示之QoS控制器204的信號。除了危險等級信號B以外,QoS控制器204亦接收來自HUC 222c之優先權模式信號F。優先權模式信號F使得QoS控制器204能夠評估可節流HUC 222c的程度。若HUC 222c2(例如)具有多個UDM執行緒(例如由優先權模式信號F之較高值所指示),則QoS控制器204可不將任何節流應用於對應節流器206j。另一方面,若結果是HUC 222c1具有低數目個或無UDM核心/執行緒(如由優先權模式信號F之低或最小值所指示),則QoS排程器204可出於節流之目的將HUC 222c1當作非UDM核心且在節流器206f上應用較大節流。在其他態樣中,QoS控制器204可使用優先權模式信號F作為包含QoS原則(其控管節流及/或優先權等級)之表的索引,QoS控制器204被允許將該QoS原則應用於耦接至特定HUC 222c (例如,HUC 222c2)之節流器(例如,節流器206j)。如先前所描述,基於執行之任務,執行緒/核心可為UDM或非UDM。可程式化執行緒對於一些任務可為UDM以及對於一些其他任務可為非UDM,且因此,HUC中之作用中UDM執行緒/核心之組成可以動態方式變化。
多執行緒可程式化核心324a至324n以及固定功能子核心326a至326n在各別讀取及寫入異動匯流排304a至304n及306a至306n上輸出資料。讀取及寫入異動匯流排304a至304n及306a至306n耦接至參考圖3進一步解釋的HUC之輸出異動排程器/多工器(OTSM)300。一般而言,OTSM 300經組態以自讀取及寫入異動匯流排304a至304n及306a至306n接收不同異動,且基於特定危險等級(內部及外部),視需要節流非UDM執行緒/核心,考慮指派給異動之不同優先權等級,以及優先化且排程將(例如)經由至互連件之讀取及寫入異動匯流排338發出至互連件210之異動。OTSM 300可暫停或結束(例如,非UDM執行緒/核心之)一些異動。
信號暫停源命令305係來自OTSM 300之輸出,其用以暫停多執行緒可程式化核心324a至324n或固定功能子核心326a至326n之非UDM執行緒/子核心中的任一或多者。暫停源命令305可暫時應用於多執行緒可程式化核心324a至324n及固定功能子核心326a至326n之特定執行緒/核心。
HUC內部QoS原則信號G係QoS控制器204之輸出,其係至HUC 222c之輸入,且具體言之,至OTSM 300之輸入。HUC內部QoS原則信號G將外部危險傳達給HUC 222c。舉例而言,QoS控制器204可自一或多個UDM核心222a及/或其他HUC 222c(例如,HUC 222c1)接收危險等級信號B,以判定可應用於特定HUC 222c(例如,HUC 222c2)之非UDM核心/執行緒的節流量,此外,記住在一些情形中可不接收指示核心222之對應危險等級的明確信號(例如,一或多個UDM核心 222a及/或一或多個HUC 222c可藉由不確證明確危險等級信號來指示不具有危險)。
至OTSM 300之另一輸入係危險等級信號B,其亦為供應給QoS控制器204的HUC 222c之輸出。危險等級信號B係在HUC 222c內由被指定為圖2中之區塊340的HUC危險等級偵測感測器H產生。HUC危險等級偵測區塊340可涉及各種類型之危險等級偵測且包括危險彙總器336以基於可偵測到之各種類型之危險等級而提供經彙總危險等級信號B。舉例而言,如所展示,危險等級信號301a可為HUC 222c所產生之內部危險信號,可直接自軟體可寫暫存器328(其可針對每一執行緒/核心動態地經程式化或靜態地設定,以指示若UDM執行緒/核心正擱置傳輸,則必定觸發危險)提供該內部危險信號。另外,可使用基於計時器之危險偵測區塊330,其中軟體可寫暫存器328可設定計時器,且若UDM執行緒不在計時器逾時之前停用HUC 222c之計時器,則在計時器逾時時,例如,可設定危險信號301b。每執行緒/核心頻寬監測器332及每執行緒/核心外部潛時監測器334亦可提供基於硬體之危險觸發。若可用於UDM執行緒之頻寬下降至低於例如特定針對該執行緒之特定臨限值,則每執行緒/核心頻寬監測器332可產生危險信號301c。若(例如)用於UDM執行緒之異動之潛時(例如,在讀取及寫入異動匯流排338上發出對應讀取命令之後讀取資料返回至UDM執行緒/核心所花費的時間)超過預定臨限值,則每執行緒/核心外部潛時監測器334可產生危險信號301d。
危險等級彙總器336可以任何適合方式(例如,加權總和,或藉由實施查找表,或其他彙總/組合機制)彙總危險信號301a至301d。危險彙總器336所輸出之危險等級信號B提供給QoS控制器204以及OTSM 300兩者,如先前解釋。如先前論述,在一些情形中,並非所有危險信號301a至301d可經確證或具有明確值,且危險彙總器336在判定危 險等級時亦可考慮不具有對具體危險信號之確證。
在HUC 222c中,每一UDM執行緒/核心可偵測(例如,經由硬體、軟體或其組合)UDM執行緒/核心處於危險中且將對應危險等級信號B傳達至QoS控制器204(在HUC 222c外部)且至OTSM 300(在HUC 222c內部),如上所述。儘管QoS控制器204接收並監測來自處理系統101之不同核心222之危險等級信號B,但在HUC 222c內部之OTSM 300在內部管理危險以便保護UDM執行緒/核心免受不可接受之失敗。OTSM 300經組態以視需要節流來自多執行緒可程式化核心324a至324n及固定功能子核心326a至326n之非UDM執行緒/核心,以確保UDM執行緒/核心不處於危險中。
將參考圖3解釋OTSM 300。OTSM 300包括流量排程器及多工器405,其在各別讀取及寫入異動匯流排304a至304n及306a至306n上自多執行緒可程式化核心324a至324n及固定功能子核心326a至326n接收異動。讀取及寫入異動亦可合併至如此項技術中已知之單個讀取寫入匯流排中。流量排程器及多工器405可將自讀取及寫入異動匯流排304a至n及306a至n接收之異動的第一子組(經展示為異動304x/306x)轉送至異動記分板404。視情況地,自讀取及寫入異動匯流排304a至n及306a至n接收之異動的第二子組(經展示為異動304y/306y)可繞過異動記分板404且直接發送至輸出異動仲裁器407。
在一些態樣中,包含異動304y/306y之該第二子組可包括(例如)寫入異動。在此等態樣中,認識到,寫入異動可不以與讀取異動影響共用資源之消耗相同之方式影響共用資源之消耗(例如,在處理音訊應用程式之UDM執行緒/核心之前述實例中,非UDM侵入者執行緒/核心可佔用共用DRAM頻寬,導致UDM執行緒/核心無共用DRAM頻寬可用或被節流,在音訊UDM執行緒/核心不及時接收來自共用DRAM之讀取資料的情況下導致不可接受之可聽見的砰聲;然而,在寫入異動 之情形下可不存在類似問題)。
現將考慮進入異動記分板404之第一子組之異動304x/306x。異動記分板404實施關於第一子組之異動304x/306x的兩步驟程序。在兩步驟程序之第一步驟中,異動記分板404經設計以延遲第一子組之異動304x/306x的自非UDM執行緒之異動傳輸。就此而言,異動記分板404經組態以將來自執行緒/核心之異動分組成多個優先權遞減的群組,使得在存在危險的情況下,將較大延遲應用於較低優先權的非UDM執行緒/核心。以此方式將異動分組允許藉由導致非UDM執行緒/核心消耗之共用資源(在HUC 222c內部及外部)的量減少而減緩非UDM執行緒/核心之執行。隨著危險等級(在HUC 222c內部及/或外部)增加,應用於來自非UDM執行緒之每一異動之延遲的量增加。
進一步詳細地,參考圖3,看見異動記分板404包含具有索引「1至k」之多個項。每一項可具有在一個欄位中之異動或異動群組,以及在另一欄位中之指示為「異動源優先權」之相關聯優先權。異動記分板404之一些項可不具有任何異動,且因此其經展示為「空槽」。異動記分板404中之異動的次序不指示其優先權,且因此,每一異動之優先權儲存於異動源優先權欄位中。異動記分板404允許以任何次序以及不必按次序或到達插入異動以及自異動記分板404刪除異動。如將瞭解,最高優先權異動將為UDM執行緒/核心,而非UDM執行緒/核心接收異動記分板404中之較低/最低優先權值。將理解,儘管特定異動可具有預定優先權等級,但異動記分板404中之異動之優先權等級亦可隨時間改變。舉例而言,關於預提取操作(亦即,針對在實際需求資料之前自共用資源(諸如記憶體112)提取該資料)之執行緒/核心可能係低的。然而,若相同異動變成按需求提取(例如,由於異動記分板404接收到對來自與預提取操作相同之位址或相同之快取線之讀取資料的需求),則可增加彼異動之優先權,此係由於在可發生不可接 受之期限錯失之前獲得待提取之按需求資料變得重要。
OTSM 300亦包括以元件符號403a至403n描繪之N個計數器,其分別對異動記分板404中的優先權等級在1至N範圍內之異動的數目進行計數。舉例而言,優先權1異動計數器403a對具有最高優先權等級「1」之異動的數目計數。類似地,優先權N異動計數器403n對具有最低優先權等級「N」之異動的數目計數。
QoS原則產生器401係如下之模組:其接受來自(圖2之)HUC危險偵測感測器H之危險等級信號B(內部危險)以及HUC內部QoS原則信號G(外部危險),且將經展示為記分板QoS原則410的信號上之經合併危險等級供應至記分板移出佇列排程器402。QoS原則產生器401可實施為由危險等級信號B以及HUC內部QoS原則信號G索引之查找表,且經索引項可包含經合併危險等級,其作為來自QOS原則產生器401之輸出提供為記分板QoS原則410。可替代地,QoS原則產生器401可實施為固定或可程式化邏輯功能或甚至可程式化核心,諸如微控制器。在一些態樣中,QOS原則產生器401可為由HUC 222c之執行緒/核心中的一者定期地程式化之暫存器。
因此,記分板移出佇列排程器402接收來自計數器403a至403n的不同優先權等級之異動之數目的計數,以及來自QoS原則產生器401之經合併危險等級,即記分板QoS原則410。記分板移出佇列排程器402因此具有關於在異動記分板404中的當前處於擱置中之具有不同相關聯優先權等級之異動/異動群組之數目的資訊,以及對內部及外部危險之經合併指示。記分板移出佇列排程器402使用此資訊判定應將哪些異動移出佇列且將該等異動經由記分板移出佇列引擎306發出至輸出異動仲裁器407。舉例而言,若記分板QoS原則410上之經合併內部及外部危險指示係低的,則可經由記分板移出佇列引擎306將更多低優先權(例如,非UDM執行緒/核心)移出佇列。若記分板QoS原則 410上之經合併內部及外部危險指示係高的,則將延遲低優先權(例如,非UDM執行緒/核心),而將允許經由記分板移出佇列引擎306將高優先權(例如,UDM執行緒)移出佇列。因此,在一些態樣中,可在兩個或兩個以上執行緒之所判定的危險等級為低之情況下,排程一或多個低優先權異動,且可在兩個或兩個以上執行緒之所判定的危險等級為高之情況下,排程一或多個高優先權異動而延遲一或多個低優先權異動之排程。在記分板移出佇列排程器402決定將來自具有相同優先權之異動群組之異動移出佇列的情形中,記分板移出佇列排程器402可使用仲裁方案選擇來自異動群組之一個異動,其中該等仲裁方案可涉及循環、先來先服務、隨機選擇,或此項技術中已知之其他技術。
輸出異動仲裁器407接收經由記分板移出佇列引擎306的將自異動記分板404移出佇列之異動以及繞過異動記分板404之第二子組之異動304y/306y,且在該等異動之間做出仲裁。輸出異動仲裁器407基於該仲裁而發出至互連件之讀取及寫入異動338(例如,至來自圖1之共用互連件210)。舉例而言,若自記分板移出佇列引擎306接收到來自UDM執行緒/核心之高優先權異動,則輸出異動仲裁器407使將自異動記分板404移出佇列之異動優先於繞過異動記分板404之第二子組之異動304y/306y。在輸出異動仲裁器407將異動發出至被指定為至互連件之讀取及寫入異動338之匯流排時,認為完成由OTSM 300實施之前述兩步驟程序之用以排程異動的第一步驟。
現將解釋由OTSM 300實施之兩步驟程序的第二步驟。在第二步驟中,再次使用記分板移出佇列排程器402。記分板移出佇列排程器402經組態以基於計數器403a至403n供應之資訊判定是否超過預定數目個低優先權異動(例如,來自非UDM執行緒/核心)。若異動記分板404中之來自非UDM執行緒之異動的數目超過預定數目,則將暫停此 等正以此等大數目個低優先權異動填滿異動記分板404之非UDM執行緒的執行。此尤其係記分板QoS原則410上之經合併內部及外部危險等級指示為高之情形。記分板移出佇列排程器402產生前述暫停源命令305(參見圖2之論述)以暫時暫停多執行緒可程式化核心324a至324n及/或固定功能核心326a至326n上之一或多個非UDM執行緒的執行,直至在異動記分板404中之來自此等低優先權執行緒之異動的數目減小為止。如將認識到,藉由此程序,在較高優先權非UDM執行緒群組之前暫停較低優先權非UDM執行緒群組。
以此方式,包含UDM執行緒/核心(亦被稱作即時執行緒/核心)以及非UDM執行緒/核心(亦被稱作非即時執行緒/核心)之HUC 222c可在執行緒/核心當中強制實施服務品質(QoS),且依防止UDM執行緒/核心以不可接受之方式被節流或導致失敗的方式排程/管理不同執行緒/核心。HUC 222c可實施用於偵測危險且將危險發信號至UDM執行緒/核心的基於硬體之解決方案(例如,如參考圖2至圖3所展示及描述),以確保即使在短時間內發生危險(其可能為足夠快速的而無法被僅軟體機制偵測到),UDM執行緒/核心仍不會錯失其期限。如所解釋,應用於每一執行緒之QoS約束或節流之等級係隨執行緒之危險等級及執行緒之優先權而變化。
將瞭解,態樣包括用於執行本文中揭示之程序、功能及/或演算法的各種方法。舉例而言,圖4說明管理包含兩個或兩個以上處理執行緒(例如,多執行緒可程式化核心324a至324n、固定函數核心326a至326n等之UDM執行緒/核心及非UDM執行緒/核心)之多執行緒處理器(例如,HUC 222c)中之共用資源的方法500。舉例而言,多執行緒處理器可為數位信號處理器(DSP)、通用處理器(GPP)或中央處理單元(CPU)中的一者。
在區塊502中,方法500包括判定兩個或兩個以上執行緒之危險等 級,其中執行緒之危險等級係基於歸因於共用資源之不可用性的執行緒未能符合期限之潛在可能。舉例而言,危險彙總器336在危險等級信號B上供應HUC 222c之內部危險等級且經由HUC內部QoS原則信號G供應外部危險等級至OTSM 300。執行緒之危險等級係基於執行緒將被節流/用盡共用資源(諸如互連件210、記憶體112等)的可能性。
在區塊504中,方法500包括偵測與兩個或兩個以上執行緒相關聯之優先權等級,其中優先權等級對於未能符合期限的情況為不可接受之執行緒係較高的,且優先權等級對於未能符合期限的情況為可接受之執行緒係較低的。在一些態樣中,基於執行緒之優先權等級而在記分板(例如,異動記分板404)中將來自一或多個執行緒的異動分組允許基於優先權等級之排程。舉例而言,異動記分板404儲存不同異動之優先權等級,該等異動按優先權等級之次序分組。計數器403a至403n對每一優先權等級之異動的數目計數,且將該等計數供應至記分板移出佇列排程器402。
在區塊506中,方法500包括至少基於兩個或兩個以上執行緒之所判定的危險等級以及與該兩個或兩個以上執行緒相關聯之優先權等級而排程該兩個或兩個以上執行緒。舉例而言,在信號記分板QoS原則410上將經合併內部及外部危險等級提供至記分板移出佇列排程器402。與來自計數器403a至403n之優先權等級資訊組合,記分板移出佇列排程器402指示記分板移出佇列引擎306將異動記分板404中之擱置中異動移出佇列且排程該等擱置中異動。舉例而言,輸出異動仲裁器407將該等異動發出至互連件210。
應瞭解,在圖4之所說明之方法500中,節流未能符合期限的情況為可接受之至少一個低優先權執行緒(例如,非UDM核心/執行緒)(例如,此係由於防止低優先權或非UDM執行緒/核心被記分板移出佇列排程器402排程,或記分板移出佇列排程器402供應的暫停源命令305 防止/暫停產生低優先權異動之執行緒/核心之執行)。如在此內容脈絡中所見,節流低優先權執行緒可意謂防止或延遲來自低優先權執行緒之低優先權異動的排程,其中低優先權異動若被排程則將消耗共用資源。此外,節流低優先權執行緒亦可導致或允許實現排程來自未能符合期限的情況為不可接受之至少一個高優先權執行緒(例如,UDM執行緒/核心)之高優先權異動,其中基於節流低優先權異動而使用於高優先權執行緒之共用資源可用(例如,互連件210/記憶體112可用於來自藉由節流非UDM執行緒/核心所排程之UDM執行緒/核心的異動)。
在方法500之一些態樣中,判定兩個或兩個以上執行緒之危險等級係基於兩個或兩個以上執行緒之內部危險等級(例如,由危險彙總器336提供之危險等級信號B)以及包含多執行緒處理器之系統之一或多個核心的外部危險等級(例如,QoS控制器204供應之HUC內部QoS原則信號G),同時記住可不明確地確證一或多個內部危險等級或外部危險等級。舉例而言,內部危險等級(例如,來自危險彙總器336)可基於以下各項中之一或多者:由以每一執行緒之危險等級程式化之軟體可程式化暫存器(例如,328)提供之危險等級(例如,301a)、在一計時器(例如,330)在與執行緒相關聯之任務完成之前逾期的情況下由該計時器提供之危險等級(例如,301b)、由用於每一執行緒之頻寬監測器(例如,332)提供之危險等級(例如,301c),或由用於每一執行緒之潛時監測器(例如,334)提供之危險等級(例如,301d)。
現參考圖5,描繪根據例示性態樣組態之無線裝置(例如,PCD)的方塊圖且其大體被指定為600。無線裝置或PCD 600包括圖1之處理系統101之特定態樣,如下文將解釋。在無線裝置600中特別說明HUC 222c,HUC 222c可被組態為包含UDM執行緒/核心與非UDM執行緒/核心之混合的多執行緒處理器,如圖2至圖3中所展示。HUC 222c可為DSP、CPU、通用處理器等。HUC 222c可經組態以執行圖4之方法 500。圖1之一些態樣(諸如耦接至HUC 222c及互連件210之節流器206f/206j,以及耦接至互連件210及記憶體112之記憶體控制器214)代表性地在圖5中展示,而圖1之其他態樣(諸如QoS控制器204、頻率控制器202以及相關互連件)為清楚起見未在圖5中展示,同時記住圖1之各種態樣及細節(儘管未在圖5中另外明確地展示)可包含在無線裝置600中。如圖5中所展示,對於一些應用,HUC 222c亦可直接耦接至記憶體112(而在例示性態樣中,HUC 222c與記憶體112之間的通信可經由組態於HUC 222c與記憶體112之間的諸如節流器206f/206j、互連件210、記憶體控制器214等組件)。
圖5亦展示耦接至HUC 222c及顯示器628之顯示控制器626。編碼器/解碼器(編碼解碼器)634(例如,音訊及/或語音編碼解碼器)可耦接至HUC 222c。亦說明諸如無線控制器640(其可包括數據機)之其他組件。揚聲器636及麥克風638可耦接至編碼解碼器634。圖5亦指示無線控制器640可耦接至無線天線642。在一些態樣中,HUC 222c、顯示控制器626、記憶體112、編碼解碼器634及無線控制器640(且在一些實例中,圖1之態樣,諸如QoS控制器204、頻率控制器202、不同節流器206、不同記憶體控制器214、互連件210等)可包含在處理系統101中,處理系統101可被組態為系統級封裝或系統單晶片裝置。此外,在一些態樣中,顯示控制器626、無線控制器640及編碼解碼器634可包含圖1中展示之核心222(例如,UDM核心222a、非UDM核心222b等)中之一或多者。
在一特定態樣中,輸入裝置630及電源供應器644耦接至系統單晶片裝置或處理系統101。此外,在一特定態樣中,如在圖5中所說明,顯示器628、輸入裝置630、揚聲器636、麥克風638、無線天線642及電源供應器644在系統單晶片裝置或處理系統101外部。然而,顯示器628、輸入裝置630、揚聲器636、麥克風638、無線天線642及電源供 應器644中的每一者可耦接至系統單晶片裝置或處理系統101之組件,諸如介面或控制器。
應注意,儘管圖5描繪無線通信裝置,但HUC 222c及記憶體112亦可整合至機上盒、音樂播放機、視訊播放機、娛樂單元、導航裝置、個人數位助理(PDA)、固定位置資料單元、電腦、膝上型電腦、平板電腦、行動電話或其他類似裝置中。
熟習此項技術者將瞭解,可使用多種不同技藝及技術中之任一者來表示資訊及信號。舉例而言,可由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子或其任何組合表示貫穿以上描述可能提及之資料、指令、命令、資訊、信號、位元、符號及碼片。
此外,熟習此項技術者將瞭解,結合本文中所揭示之態樣而描述的各種說明性邏輯區塊、模組、電路及演算法步驟可實施為電子硬體、電腦軟體或兩者之組合。為了清楚地說明硬體與軟體之此可互換性,各種說明性組件、區塊、模組、電路及步驟已在上文大體按其功能性加以描述。此功能性實施為硬體抑或軟體取決於特定應用及強加於整個系統上之設計約束。熟習此項技術者可針對每一特定應用以不同方式實施所描述之功能性,但不應將此等實施決策解釋為導致脫離本發明之範疇。
結合本文中所揭示之態樣描述之方法、序列及/或演算法可以硬體、以由處理器執行之軟體模組、或以兩者之組合直接體現。軟體模組可駐存於RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟、抽取式磁碟、CD-ROM,或此項技術中已知之任何其他形式的儲存媒體中。例示性儲存媒體耦接至處理器,使得處理器可自儲存媒體讀取資訊且將資訊寫入至儲存媒體。在替代方案中,儲存媒體可整合至處理器。
因此,本發明之一態樣可包括體現用於管理/排程多執行緒處理 器之執行緒之方法的電腦可讀媒體。因此,本發明不限於所說明之實例,且用於執行本文中所描述之功能性的任何構件包括於本發明之態樣中。
儘管前述揭示內容展示本發明之說明性態樣,但應注意,在不脫離如由所附申請專利範圍所界定之本發明之範疇的情況下,可在本文中作出各種改變及修改。無需以任何特定次序執行根據本文中所描述之本發明之態樣的方法請求項之功能、步驟及/或動作。此外,儘管可以單數形式描述或主張本發明之元件,但除非明確地陳述對單數形式之限制,否則預期複數形式。
222c‧‧‧混合式UDM核心(HUC)
300‧‧‧輸出異動排程器/多工器
301a‧‧‧危險等級信號/危險信號/危險等級
301b‧‧‧危險信號/危險等級
301c‧‧‧危險信號/危險等級
301d‧‧‧危險信號/危險等級
304a‧‧‧讀取及寫入異動匯流排
304n‧‧‧讀取及寫入異動匯流排
305‧‧‧信號暫停源命令
306a‧‧‧讀取及寫入異動匯流排
306n‧‧‧讀取及寫入異動匯流排
320‧‧‧優先權模式暫存器
324a‧‧‧多執行緒可程式化核心
324n‧‧‧多執行緒可程式化核心
326a‧‧‧固定功能子核心
326n‧‧‧固定功能子核心
328‧‧‧軟體可程式化暫存器/軟體可寫暫存器
330‧‧‧危險偵測塊/計時器
332‧‧‧每執行緒/核心頻寬監測器
334‧‧‧每執行緒/核心外部潛時監測器
336‧‧‧危險彙總器/危險等級彙總器
338‧‧‧至互連件之讀取及寫入異動匯流排/讀取及寫入異動匯流排
340‧‧‧HUC危險等級偵測塊
B‧‧‧危險等級信號
F‧‧‧優先權模式信號
G‧‧‧HUC內部QoS原則信號
H‧‧‧信號

Claims (27)

  1. 一種管理包含兩個或兩個以上處理執行緒之一多執行緒處理器中之共用資源的方法,該方法包含:判定該兩個或兩個以上執行緒之危險等級,其中一執行緒之該危險等級係基於歸因於一共用資源之不可用性的該執行緒未能符合一期限之一潛在可能;偵測與該兩個或兩個以上執行緒相關聯之優先權等級,其中該優先權等級對於未能符合一期限的情況為不可接受之一執行緒係較高的,且該優先權等級對於未能符合一期限的情況為可接受之一執行緒係較低的;及至少基於該兩個或兩個以上執行緒之該等所判定的危險等級以及與該兩個或兩個以上執行緒相關聯之優先權等級而排程該兩個或兩個以上執行緒。
  2. 如請求項1之方法,其進一步包含節流未能符合一期限的情況為可接受之至少一個低優先權執行緒,其中節流該低優先權執行緒包含阻止或延遲來自該低優先權執行緒之一低優先權異動的排程,其中該低優先權異動若被排程則將消耗共用資源。
  3. 如請求項2之方法,其進一步包含排程來自未能符合一期限的情況為不可接受之至少一個高優先權執行緒的一高優先權異動,其中基於節流該低優先權異動而使用於該高優先權執行緒之共用資源可用。
  4. 如請求項1之方法,其中判定該兩個或兩個以上執行緒之該等危險等級係基於該兩個或兩個以上執行緒之一內部危險等級以及包含該多執行緒處理器之一系統之一或多個核心的一外部危險等級。
  5. 如請求項4之方法,其中該內部危險等級係基於以下各項中之一或多者:由以每一執行緒之危險等級程式化之一軟體可程式化暫存器提供之一危險等級、在一計時器在與一執行緒相關聯之一任務完成之前逾期的情況下由該計時器提供之一危險等級、由用於每一執行緒之一頻寬監測器提供之一危險等級,或由用於每一執行緒之一潛時監測器提供之一危險等級。
  6. 如請求項5之方法,其進一步包含將該內部危險等級提供至用於管理該系統之該一或多個核心之服務品質(QoS)原則的一QoS控制器。
  7. 如請求項4之方法,其中該外部危險等級係基於該系統之該一或多個核心之一服務品質(QoS)。
  8. 如請求項1之方法,其包含基於與該兩個或兩個以上執行緒相關聯之優先權等級,在一記分板中將來自該一或多個執行緒之異動分組。
  9. 如請求項1之方法,其中該多執行緒處理器係一數位信號處理器(DSP)、通用處理器(GPP)或一中央處理單元(CPU)中的一者。
  10. 如請求項1之方法,其包含在該兩個或兩個以上執行緒之該等所判定的危險等級為低之情況下,排程一或多個低優先權異動,且在該兩個或兩個以上執行緒之該等所判定的危險等級為高之情況下,排程一或多個高優先權異動而延遲一或多個低優先權異動之排程。
  11. 一種處理系統,其包含:一多執行緒處理器,其經組態以處理兩個或兩個以上處理執行緒;一危險彙總器,其經組態以判定該兩個或兩個以上執行緒之危險等級,其中一執行緒之該危險等級係基於歸因於一共用資 源之不可用性的該執行緒未能符合一期限之一潛在可能;一異動記分板,其經組態以追蹤與該兩個或兩個以上執行緒相關聯之優先權等級,其中該優先權等級對於未能符合一期限的情況為不可接受之一執行緒係較高的,且該優先權等級對於未能符合一期限的情況為可接受之一執行緒係較低的;及一移出佇列引擎,其經組態以至少基於該兩個或兩個以上執行緒之該等所判定的危險等級以及與該兩個或兩個以上執行緒相關聯之優先權等級而排程該兩個或兩個以上執行緒。
  12. 如請求項11之處理系統,其進一步包含一排程器,該排程器經組態以節流未能符合一期限的情況為可接受之至少一個低優先權執行緒。
  13. 如請求項12之處理系統,其中該排程器進一步經組態以排程來自未能符合一期限的情況為不可接受之至少一個高優先權執行緒的一高優先權異動,其中資源在該經節流低優先權執行緒與該高優先權執行緒之間共用。
  14. 如請求項13之處理系統,其中該等資源包含一互連件或一記憶體中之一或多者。
  15. 如請求項11之處理系統,其中該危險彙總器經組態以基於該兩個或兩個以上執行緒之一內部危險等級以及該處理系統之一或多個核心之一外部危險等級而判定該兩個或兩個以上執行緒之該等危險等級。
  16. 如請求項15之處理系統,其中該內部危險等級係基於以下各項中之一或多者:由以每一執行緒之危險等級程式化之一軟體可程式化暫存器提供之一危險等級、在一計時器在與一執行緒相關聯之一任務完成之前逾期的情況下由該計時器提供之一危險等級、由用於每一執行緒之一頻寬監測器提供之一危險等級, 或由用於每一執行緒之一潛時監測器提供之一危險等級。
  17. 如請求項16之處理系統,其中該危險彙總器進一步經組態以將該內部危險等級提供至經組態以管理該處理系統之該一或多個核心之服務品質(QoS)原則的一QoS控制器。
  18. 如請求項15之處理系統,其中該外部危險等級係基於該一或多個核心及該多執行緒處理器之一服務品質(QoS)。
  19. 如請求項11之處理系統,其中該異動記分板經組態以基於與該兩個或兩個以上執行緒相關聯之優先權等級,將來自該一或多個執行緒之異動分組。
  20. 如請求項11之處理系統,其中該移出佇列引擎經組態以在該兩個或兩個以上執行緒之該等所判定的危險等級為低之情況下,排程一或多個低優先權異動,且在該兩個或兩個以上執行緒之該等所判定的危險等級為高之情況下,排程一或多個高優先權異動且延遲一或多個低優先權異動。
  21. 如請求項11之處理系統,其中該多執行緒處理器係一數位信號處理器(DSP)、通用處理器(GPP)或一中央處理單元(CPU)中的一者。
  22. 如請求項11之處理系統,其整合至選自由以下各項組成之群組的一裝置中:一機上盒、音樂播放機、視訊播放機、娛樂單元、導航裝置、通信裝置、個人數位助理(PDA)、固定位置資料單元及一電腦。
  23. 一種處理系統,其包含:用於以多執行緒方式處理兩個或兩個以上處理執行緒的構件;用於判定該兩個或兩個以上執行緒之危險等級的構件,其中一執行緒之危險等級係基於歸因於一共用資源之不可用性的該 執行緒未能符合一期限之一潛在可能;用於偵測與該兩個或兩個以上執行緒相關聯之優先權等級的構件,其中該優先權等級對於未能符合一期限的情況為不可接受之一執行緒係較高的,且該優先權等級對於未能符合一期限的情況為可接受之一執行緒係較低的;及用於至少基於該兩個或兩個以上執行緒之該等所判定的危險等級以及與該兩個或兩個以上執行緒相關聯之優先權等級而排程該兩個或兩個以上執行緒的構件。
  24. 如請求項23之處理系統,其進一步包含用於節流未能符合一期限的情況為可接受之至少一個低優先權執行緒的構件。
  25. 如請求項23之處理系統,其進一步包含用於排程來自未能符合一期限的情況為不可接受之至少一個高優先權執行緒之一高優先權異動的構件。
  26. 如請求項23之處理系統,其進一步包含用於基於該兩個或兩個以上執行緒之一內部危險等級以及該處理系統之一或多個核心之一外部危險等級而判定該兩個或兩個以上執行緒之該等危險等級的構件。
  27. 一種非暫時性電腦可讀儲存媒體,其包含在由一處理器執行時導致該處理器執行用於管理包含兩個或兩個以上執行緒之一多執行緒處理器中之共用資源的操作的程式碼,該非暫時性電腦可讀儲存媒體包含:用於判定該兩個或兩個以上執行緒之危險等級的程式碼,其中一執行緒之該危險等級係基於歸因於一共用資源之不可用性的該執行緒未能符合一期限之一潛在可能;用於偵測與該兩個或兩個以上執行緒相關聯之優先權等級的程式碼,其中該優先權等級對於未能符合一期限的情況為不可 接受之一執行緒係較高的,且該優先權等級對於未能符合一期限的情況為可接受之一執行緒係較低的;及用於至少基於該兩個或兩個以上執行緒之該等所判定的危險等級以及與該兩個或兩個以上執行緒相關聯之優先權等級而排程該兩個或兩個以上執行緒的程式碼。
TW105115830A 2015-05-29 2016-05-20 用於多執行緒處理器之頻寬/資源管理 TWI711932B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562168708P 2015-05-29 2015-05-29
US62/168,708 2015-05-29
US14/866,012 2015-09-25
US14/866,012 US10102031B2 (en) 2015-05-29 2015-09-25 Bandwidth/resource management for multithreaded processors

Publications (2)

Publication Number Publication Date
TW201701170A true TW201701170A (zh) 2017-01-01
TWI711932B TWI711932B (zh) 2020-12-01

Family

ID=57398627

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105115830A TWI711932B (zh) 2015-05-29 2016-05-20 用於多執行緒處理器之頻寬/資源管理

Country Status (9)

Country Link
US (1) US10102031B2 (zh)
EP (1) EP3304301B1 (zh)
JP (1) JP6703009B2 (zh)
KR (1) KR102560556B1 (zh)
CN (1) CN107646104B (zh)
BR (1) BR112017025550A2 (zh)
CA (1) CA2983800A1 (zh)
TW (1) TWI711932B (zh)
WO (1) WO2016195851A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI639955B (zh) * 2017-11-06 2018-11-01 晨星半導體股份有限公司 多處理器系統及其處理器管理方法
TWI676935B (zh) * 2018-07-20 2019-11-11 瑞昱半導體股份有限公司 處理中斷優先級的電路系統
TWI684131B (zh) * 2019-02-26 2020-02-01 華碩電腦股份有限公司 資料傳輸裝置、資料傳輸方法以及非暫態電腦可讀取記錄媒體
TWI752354B (zh) * 2018-09-27 2022-01-11 美商高通公司 提供預測性指令分派節流以防止在基於亂序處理器(oop)的設備中的資源溢出

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9864647B2 (en) 2014-10-23 2018-01-09 Qualcom Incorporated System and method for dynamic bandwidth throttling based on danger signals monitored from one more elements utilizing shared resources
US20160127259A1 (en) * 2014-10-31 2016-05-05 Qualcomm Incorporated System and method for managing safe downtime of shared resources within a pcd
US10067691B1 (en) * 2017-03-02 2018-09-04 Qualcomm Incorporated System and method for dynamic control of shared memory management resources
CN108845870B (zh) * 2018-05-29 2021-05-07 大连理工大学 一种基于pWCET整形的概率性实时任务调度方法
US11340948B2 (en) * 2019-05-30 2022-05-24 Microsoft Technology Licensing, Llc Timed multi-thread access for high-throughput slow-response systems
CN111078394B (zh) * 2019-11-08 2022-12-06 苏州浪潮智能科技有限公司 一种gpu线程负载均衡方法与装置
JP7002618B1 (ja) * 2020-10-08 2022-01-20 レノボ・シンガポール・プライベート・リミテッド 電子機器、及び制御方法
KR20220048619A (ko) * 2020-10-13 2022-04-20 에스케이하이닉스 주식회사 메모리 시스템, 메모리 콘트롤러 및 메모리 콘트롤러의 동작 방법
US11770647B2 (en) * 2021-02-02 2023-09-26 Mediatek Inc. Task assigning method and task assigning device
WO2023167438A1 (ko) * 2022-03-03 2023-09-07 삼성전자주식회사 시스템의 성능 병목 현상을 처리하는 전자 장치 및 그 동작 방법

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6499072B1 (en) * 1999-09-02 2002-12-24 Ati International Srl Data bus bandwidth allocation apparatus and method
US7096471B2 (en) * 2001-06-01 2006-08-22 Texas Instruments Incorporated Apparatus for resource management in a real-time embedded system
US7689998B1 (en) * 2004-07-13 2010-03-30 Microsoft Corporation Systems and methods that manage processing resources
US8091088B2 (en) * 2005-02-22 2012-01-03 Microsoft Corporation Method and system for hierarchical resource management involving hard and soft resource limits
US8245230B2 (en) * 2005-03-14 2012-08-14 Qnx Software Systems Limited Adaptive partitioning scheduler for multiprocessing system
JP2006343872A (ja) * 2005-06-07 2006-12-21 Keio Gijuku マルチスレッド中央演算装置および同時マルチスレッディング制御方法
GB2443277B (en) 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US8028286B2 (en) * 2006-11-30 2011-09-27 Oracle America, Inc. Methods and apparatus for scheduling threads on multicore processors under fair distribution of cache and other shared resources of the processors
GB2449455B (en) * 2007-05-22 2011-08-03 Advanced Risc Mach Ltd A data processing apparatus and method for managing multiple program threads executed by processing circuitry
US8151008B2 (en) 2008-07-02 2012-04-03 Cradle Ip, Llc Method and system for performing DMA in a multi-core system-on-chip using deadline-based scheduling
EP2192492B1 (en) 2008-11-24 2012-11-14 Barcelona Supercomputing Center-Centro Nacional de Supercomputación Method, mechanism and computer program product for executing several tasks in a multithreaded processor and for providing estimates for worst-case execution times
WO2010141016A1 (en) 2009-06-03 2010-12-09 Hewlett-Packard Development Company, L.P. Scheduling realtime information storage system access requests
GB2473505B (en) * 2009-09-15 2016-09-14 Advanced Risc Mach Ltd A data processing apparatus and a method for setting priority levels for transactions
US9106591B2 (en) * 2009-12-24 2015-08-11 Delphix Corporation Adaptive resource management using survival minimum resources for low priority consumers
US8370665B2 (en) * 2010-01-11 2013-02-05 Qualcomm Incorporated System and method of sampling data within a central processing unit
CN103299271B (zh) 2011-01-11 2016-04-13 惠普发展公司,有限责任合伙企业 并发请求调度
US20120210150A1 (en) * 2011-02-10 2012-08-16 Alcatel-Lucent Usa Inc. Method And Apparatus Of Smart Power Management For Mobile Communication Terminals
US20130007755A1 (en) * 2011-06-29 2013-01-03 International Business Machines Corporation Methods, computer systems, and physical computer storage media for managing resources of a storage server
US20130074088A1 (en) * 2011-09-19 2013-03-21 Timothy John Purcell Scheduling and management of compute tasks with different execution priority levels
US8935699B1 (en) 2011-10-28 2015-01-13 Amazon Technologies, Inc. CPU sharing techniques
US9021493B2 (en) * 2012-09-14 2015-04-28 International Business Machines Corporation Management of resources within a computing environment
US9632822B2 (en) * 2012-09-21 2017-04-25 Htc Corporation Multi-core device and multi-thread scheduling method thereof
US9063795B2 (en) * 2012-12-19 2015-06-23 International Business Machines Corporation Adaptive resource usage limits for workload management
US9135062B2 (en) 2013-04-09 2015-09-15 National Instruments Corporation Hardware assisted method and system for scheduling time critical tasks
JP2015064861A (ja) * 2013-08-29 2015-04-09 株式会社デンソー マルチスレッドプロセッサ
US9864647B2 (en) * 2014-10-23 2018-01-09 Qualcom Incorporated System and method for dynamic bandwidth throttling based on danger signals monitored from one more elements utilizing shared resources

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI639955B (zh) * 2017-11-06 2018-11-01 晨星半導體股份有限公司 多處理器系統及其處理器管理方法
TWI676935B (zh) * 2018-07-20 2019-11-11 瑞昱半導體股份有限公司 處理中斷優先級的電路系統
TWI752354B (zh) * 2018-09-27 2022-01-11 美商高通公司 提供預測性指令分派節流以防止在基於亂序處理器(oop)的設備中的資源溢出
TWI684131B (zh) * 2019-02-26 2020-02-01 華碩電腦股份有限公司 資料傳輸裝置、資料傳輸方法以及非暫態電腦可讀取記錄媒體

Also Published As

Publication number Publication date
US10102031B2 (en) 2018-10-16
TWI711932B (zh) 2020-12-01
EP3304301A1 (en) 2018-04-11
CA2983800A1 (en) 2016-12-08
KR102560556B1 (ko) 2023-07-26
WO2016195851A1 (en) 2016-12-08
JP6703009B2 (ja) 2020-06-03
US20160350152A1 (en) 2016-12-01
KR20180013923A (ko) 2018-02-07
EP3304301B1 (en) 2023-04-26
BR112017025550A2 (pt) 2018-08-07
CN107646104B (zh) 2021-11-23
CN107646104A (zh) 2018-01-30
JP2018519582A (ja) 2018-07-19

Similar Documents

Publication Publication Date Title
TWI711932B (zh) 用於多執行緒處理器之頻寬/資源管理
TWI423161B (zh) 繪圖處理單元、元命令處理系統以及元命令執行方法
US10241799B2 (en) Out-of-order command execution with sliding windows to maintain completion statuses
JP6199477B2 (ja) ゲストオペレーティングシステムおよび仮想プロセッサとともにハイパーバイザを使用するシステムおよび方法
US9026763B2 (en) Managing out-of-order memory command execution from multiple queues while maintaining data coherency
US9146690B2 (en) Systems and methods for dynamic priority control
US9489324B2 (en) Data processing device, semiconductor external view inspection device, and data volume increase alleviation method
US7853743B2 (en) Processor and interrupt controlling method
US8479207B2 (en) Priority inheritance in multithreaded systems
WO2016011894A1 (zh) 报文处理方法和装置
JP6076686B2 (ja) デジタル信号処理のデータ転送
US20090100200A1 (en) Channel-less multithreaded DMA controller
US9009368B2 (en) Interrupt latency performance counters
US20130104137A1 (en) Multiprocessor system
US20140082307A1 (en) System and method to arbitrate access to memory
US9606879B2 (en) Multi-partition networking device and method therefor
US9304772B2 (en) Ordering thread wavefronts instruction operations based on wavefront priority, operation counter, and ordering scheme
US20140071140A1 (en) Display pipe request aggregation
KR101420290B1 (ko) 트랜잭션들을 그룹화하는 버스 중재기, 이를 포함하는 버스장치 및 시스템
WO2016065544A1 (zh) 访存的方法、内存控制器和处理器核
US20150006775A1 (en) Bridge circuit to arbitrate bus commands
JP2011022814A (ja) 半導体集積回路、情報処理装置およびプロセッサ性能保証方法