TW201537459A - 基於優先順序之程序先佔技術 - Google Patents

基於優先順序之程序先佔技術 Download PDF

Info

Publication number
TW201537459A
TW201537459A TW104104264A TW104104264A TW201537459A TW 201537459 A TW201537459 A TW 201537459A TW 104104264 A TW104104264 A TW 104104264A TW 104104264 A TW104104264 A TW 104104264A TW 201537459 A TW201537459 A TW 201537459A
Authority
TW
Taiwan
Prior art keywords
program
pipeline
priority
memory
programs
Prior art date
Application number
TW104104264A
Other languages
English (en)
Other versions
TWI546737B (zh
Inventor
Hema Chand Nalluri
Aditya Navale
Peter L Doyle
Murali Ramadoss
Balaji Vembu
Jeffery S Boles
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201537459A publication Critical patent/TW201537459A/zh
Application granted granted Critical
Publication of TWI546737B publication Critical patent/TWI546737B/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/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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

方法及設備可排定經由單獨的高優先順序及低優先順序程序提交埠提交至一處理單元的高優先順序及低優先順序程序之處理的優先順序。根據一個實施例,一程序至該低優先順序埠之提交使進行中之程序被先占,而一程序至該高優先順序埠之提交使進行中之程序被暫停。

Description

基於優先順序之程序先佔技術
本發明係有關於基於優先順序之程序先佔技術。
發明背景
電腦硬體架構一般以某一預定序列處理工作負載。然而,彼序列可被先占。此類先占可招致大量潛時,從而使系統減速。此潛時影響在諸如圖形處理(且更具體言之,三維(3D)演現)之處理器密集型活動中可尤為顯著。
依據本發明之一實施例,係特地提出一種系統,其包含:一處理器;一管線;一第一埠,其用以接收具有一第一優先順序之一程序;一第二埠,其用以接收具有高於該第一優先順序之一第二優先順序的一程序;一第二優先順序程序偵測模組,其用以偵測具有該第二優先順序之該程序在該第二埠處的接收;以及一暫停模組,其用以在該第二優先順序程序偵測模組已偵測到具有該第二優先順序之該程序在該第二埠處的接收之後暫停該管線中之一程序。
101‧‧‧圖形處理單元(GPU)
111‧‧‧命令串流器
113‧‧‧媒體管線
115‧‧‧3D固定功能管線
115a‧‧‧圖形硬體前端(HWFE)
115b‧‧‧輸入組譯器
115c‧‧‧預光柵化著色器
115d‧‧‧光柵處理器
115e‧‧‧像素著色器
115f‧‧‧輸出合併器
116‧‧‧專用晶片上儲存記憶體
117‧‧‧頂點緩衝器
119‧‧‧記憶體物件
121‧‧‧圖形子系統
123‧‧‧統一傳回緩衝器(URB)
125‧‧‧圖形處理核心陣列
127‧‧‧目標表面
129‧‧‧取樣器功能
131‧‧‧數學功能
133‧‧‧執行緒間通訊
135‧‧‧色彩計算器(CC)
137‧‧‧演現快取記憶體
139‧‧‧源表面
302‧‧‧地圖應用程式
304‧‧‧瀏覽器
306‧‧‧作業系統(OS)
308‧‧‧圖形使用者介面(GUI)
310‧‧‧核心模式驅動程式(KMD)
311‧‧‧低優先順序佇列
312‧‧‧高優先順序佇列
314‧‧‧觸控裝置
316‧‧‧圖形微控制器
318‧‧‧軟體排程器
320‧‧‧低優先順序程序提交埠
322‧‧‧高優先順序程序提交埠
328‧‧‧硬體排程器
330‧‧‧作用中程序
332‧‧‧管線
334‧‧‧低優先順序(LP)暫停程序
336‧‧‧專用晶粒上儲存記憶體
400‧‧‧提供較低優先順序程序之高優先順序程序先占的方法
402、403、404、406、408、410、412、414、415、420、422、424、426、430、432、434、436、438、440、442、444、446、450、451、452、454、456、460、462、464、466、468、504、506、508、510、512、514、516、517、518、520、532、534、536、538、540、542、544、546‧‧‧區塊
500‧‧‧流程圖
600‧‧‧邏輯架構
602‧‧‧圖形管線
604‧‧‧低優先順序程序埠
606‧‧‧高優先順序程序埠
614‧‧‧高優先順序程序偵測模組
616‧‧‧低優先順序程序暫停模組
618‧‧‧暫停程序保存模組
620‧‧‧晶粒上儲存器
622‧‧‧暫停程序恢復模組
626‧‧‧低優先順序程序偵測模組
628‧‧‧低優先順序程序先占模組
630‧‧‧先占程序保存模組
632‧‧‧記憶體
700‧‧‧系統
702‧‧‧平台
705‧‧‧晶片組
710‧‧‧處理器
712‧‧‧記憶體
714‧‧‧儲存器
715‧‧‧圖形子系統
716‧‧‧應用程式
718‧‧‧無線電
720‧‧‧顯示器
722‧‧‧使用者介面
730‧‧‧內容服務裝置
740‧‧‧內容遞送裝置
750‧‧‧導覽控制器
760‧‧‧網路
800‧‧‧小外觀尺寸裝置
802‧‧‧外殼
804‧‧‧顯示器
806‧‧‧輸入/輸出(I/O)裝置
808‧‧‧天線
812‧‧‧導覽特徵
藉由研讀以下說明書及隨附申請專利範圍且藉由參看以下圖式,實施例之各種優點對於熟習此項技術者將變得顯而易見,其中:圖1為根據一實施例之圖形處理架構之實例的方塊圖;圖2為根據一實施例之管線之實例的方塊圖;圖3為根據一實施例的排定優先順序之程序流程之實例的方塊圖;圖4為根據一實施例之處置高優先順序及低優先順序程序提交的方法之實例的流程圖;圖5為根據一實施例之處置高優先順序及低優先順序程序提交的方法之額外實例的流程圖;圖6為根據一實施例之邏輯架構之實例的方塊圖;圖7為根據一實施例之系統的方塊圖;以及圖8為根據一實施例之具有小外觀尺寸的系統之實例的方塊圖。
較佳實施例之詳細說明
在電腦系統之適當高層級處,應用程式可將工作負載提交至驅動程式,該驅動程式又可將對應程序(亦稱為「任務」)提交至硬體。在給定電腦系統上,可存在使用電腦硬體之在進行中的多個程序(工作負載)。作業系統可管理此等多個程序,從而使用電腦及其作業系統之時間共用能力將硬體時間窗提供給每一程序。處置此等程序所藉以之速度至少部分地界定電腦系統之效率。
增強效率之一種方法已准許一些程序先占較低優先順序程序。此先占可在低優先順序程序工作負載執行期間(例如,當作業系統(OS)偵測滑鼠或其他指標裝置之移動時)出現,從而產生圖形使用者介面(GUI)程序,其在微處理器層級處的處理中一般被給予比其他程序高的優先順序。GUI工作負載可因為其直接且即刻地影響終端使用者體驗而被給予高優先順序。
在呼叫電腦處置許多不同種類之程序時,其中計算上要求最高之程序為關於3D圖形演現之彼等程序。現代賽事播放及其他視訊密集型程式可重視圖形,且終端使用者自身可容易地判斷此等圖形之品質。與緩慢且低效之系統相比,可能更需要在演現影像時有效且快速之系統。
此處,實施例包括可實施為硬體前端命令串流器上之硬體的高優先順序埠。此等實施例准許高優先順序程序暫停(而非先占)較低優先順序程序,如下文將進一步顯現。實施例可包括建置至3D管線圖形晶片中的用以保存及恢復經暫停之低優先順序程序之狀態及工作負載的專用晶片上儲存器。實施例亦可包括用於處置仍可優先於某一進行中的工作流程之低優先順序程序的低優先順序埠。
本文中呈現的實施例可處理三個層級之工作流程程序,該等程序在此處就其優先順序而言自低至高排列:a.基線工作流程(在本文中亦被稱作低優先順序程序工作負載,或LPCW);b.優先於基線工作流程之低優先順序程序;及 c.優先於a及b之高優先順序程序。
圖1展示可用於實施例之實例中的圖形處理單元(GPU)101之實例的方塊圖。所說明之GPU 101包括命令串流器111(「CS」,在文獻中亦稱為硬體前端)。來自命令串流器111之資料可應用於媒體管線113。命令串流器111亦可耦接至3D固定功能管線115。所說明之命令串流器111藉由在管線之間切換及將命令串流轉遞至在作用中之管線而管理對3D管線115及媒體管線113之使用。3D管線115可提供特殊的原始處理功能,而媒體管線113可提供較一般功能性。對於3D演現,3D管線115藉由頂點緩衝器117饋入,而媒體管線113可藉由記憶體物件119之單獨群組饋入。來自3D管線115及媒體管線113之中間結果以及來自命令串流器111之命令經饋入至圖形子系統121,其直接耦接至管線及命令串流器111。
所說明之圖形子系統121含有耦接至圖形處理核心陣列125之統一傳回緩衝器(URB)123。統一傳回緩衝器123可含有在各種功能之間共用以允許執行緒傳回稍後將由其他功能或執行緒消耗之資料的記憶體。核心陣列125處理來自3D管線115及媒體管線113之值以最終產生目標表面127。核心陣列可能夠存取取樣器功能129、數學功能131、執行緒間通訊133、色彩計算器(CC)135及演現快取記憶體137以快取最後演現之表面。一組源表面139可應用於圖形子系統121且在所有此等功能129、131、135、137、139藉由核心陣列應用之後,可產生一組目標表面127。出於一般 用途計算之目的,所說明之命令串流器111用於經由核心陣列125執行操作,此取決於特定實施。
3D演現處理常常尤其密集地使用循環時間且因而,此對設計者提出尋求最佳化速度及通量效率兩者的挑戰。雖然本文中之實施例係依據在3D程序中產生的需求來說明,但該等實施例對於待最佳化速度及通量之其他工作負載情形具有廣泛適用性。
圖2呈現3D管線115之更詳細視圖。此處,可見管線115包括用於處置基本的原始影像處理功能以處理3D影像的數個階段。所說明之管線115包括圖形硬體前端(HWFE)115a、輸入組譯器115b、預光柵化著色器115c、光柵處理器115d、像素著色器115e及輸出合併器115f。不同硬體實施可具有額外或較少階段。此等階段中之每一者可連結至用於儲存經暫停之低優先順序程序狀態及工作項目的專用晶片上儲存記憶體116。對儲存器中之此等物件的此就緒存取可減少如下文進一步論述之潛時。
圖3中之方塊圖說明根據一個實施例的程序流程之實例。在此實例中,作業系統(OS)306正執行如圖中所描繪之若干應用程式:地圖應用程式302、瀏覽器304及圖形使用者介面(GUI)308。OS 306可包括核心模式驅動程式310(KMD),其支援(連同其他者)低優先順序佇列311及高優先順序佇列312。高優先順序佇列312可借助於圖形微控制器316自觸控裝置314(例如,滑鼠或軌跡墊)接收程序。亦可執行其他硬體及軟體;此處展示之彼等硬體及軟體為通常產生 具有不同優先順序之數個程序的常用硬體及軟體之實例。
在圖3中,低優先順序佇列311含有雖然指定為具有「低優先順序」但仍可優先於構成一般低優先順序程序工作負載之大部分的時間敏感度較低之其他程序的彼等程序。換言之,雖然佇列311在本申請案中說明為「低優先順序」,但其程序仍可具有比其可先占之其他程序大的優先順序。與低優先順序佇列311中之彼等程序相比仍具有較大優先順序的程序可係關於高優先順序佇列312。高優先順序佇列312可自各種源接收程序,但在此圖中,此等源經展示為經由圖形微控制器316在觸控裝置314發起的觸控命令。低優先順序佇列311及高優先順序佇列312兩者可經由軟體抑或硬體實施。
所說明之佇列311及312中的程序藉由軟體排程器318指派給兩個埠中之一者,軟體排程器在給定時間可處置數百或數千個以上程序。此等埠中之第一者為低優先順序程序提交埠320,其自低優先順序佇列311接收低優先順序程序。高優先順序程序提交埠322自高優先順序佇列312接收高優先順序程序。在一個實施例中,此等兩個埠320、322皆以硬體實施。至此等埠之提交可接著被傳遞至硬體排程器328。
所說明之硬體排程器328在提交至低優先順序程序提交埠320之低優先順序程序、提交至高優先順序程序提交埠322之高優先順序程序之間仲裁,且此等低優先順序程序可被暫停,如下文進一步解釋。硬體排程器328可判定此 等程序中之哪一者將為作用中程序330且經轉遞以用於在管線332上執行。在進行彼判定時,其選擇優先順序為首先選擇高優先順序程序,接著選擇已暫停之任何低優先順序程序,且接著選擇其他低優先順序程序。所說明之硬體排程器328將用於在程序工作負載繼續時處理在管線中執行之作用中程序330的狀態及工作負載細節(諸如,記憶體表面、記憶體物件119及頂點緩衝器117(圖1))轉遞至管線332以用於處理。管線332可包括3D及/或媒體管線(諸如,3D管線115及媒體管線113(圖1)),如已關於本發明之一個實施例所論述。硬體排程器328亦可在較高優先順序程序等待處理時負責暫停作用中程序330,其又暫停管線332。此暫停可出現在高優先順序程序已發送至高優先順序程序提交埠322時。此情形使任何進行中的低優先順序程序在合適之邏輯邊界處停止且使其狀態及待決工作負載以及工作項目複製至記憶體中。
當相對較低優先順序程序經暫停時,其狀態被保存。在此實例中,「狀態」可指包括處理特定工作負載/程序所需的管線之每一階段之硬體組配的硬體組配且可進一步包括輔助軟體指令。(舉例而言,程序係由三角形抑或矩形組成,及需要對其執行之原始硬體操作。)亦可儲存任何部分處理之程序,亦即,待決的未完成工作。在當前實例中,用於經暫停之低優先順序程序的狀態及部分處理之工作的儲存器經提供為專用晶粒上儲存記憶體333。當與使用主記憶體相比時,在與GPU或CPU相同之晶粒上局部提供 此機制可提供快得多的存取時間(快若干數量級),從而導致已暫停之低優先順序程序的較快後續處理。
回應於歸因於高優先順序程序之到達而暫停低優先順序程序,所說明之管線332用信號通知硬體排程器328管線已暫停低優先順序程序且處於其可接受高優先順序程序之狀態中。所說明之硬體排程器328將經暫停之低優先順序程序自作用中程序330狀態移至低優先順序(LP)暫停程序334狀態,且高優先順序程序之處理可開始。硬體亦可記住,低優先順序程序已暫停且其可稍後在隨後發生之高優先順序程序執行完成之後及在可開始任何其他低優先順序程序之前經重新提交以用於執行。
在不涉及高優先順序程序的由低優先順序程序進行先占的狀況下,一旦低優先順序程序由另一低優先順序程序先占,軟體排程器318便被更新且知曉低優先順序程序已被先占且自管線中清出。又,關於經先占之低優先順序程序狀態的一些資訊(諸如,在經先占之低優先順序程序在管線中重新繼續處理時使用的軟體指令)可保存至記憶體。彼記憶體可為(諸如)可經分配以用於儲存圖形程序之主記憶體、大容量記憶體或DDR(雙資料速率)記憶體。軟體排程器318可留存經先占之低優先順序程序之識別碼,使得其可在稍後時間點經重新提交或捨棄。
現轉向圖4,展示提供較低優先順序程序之高優先順序程序先占的方法400的一個實例之流程圖。方法400可以可執行軟體實施為儲存於諸如以下各者之記憶體的機 器可讀或電腦可讀儲存媒體中的邏輯指令集:隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可規劃ROM(PROM)、韌體、快閃記憶體等;以諸如以下各者之可組配邏輯實施:可規劃邏輯陣列(PLA)、場可規劃閘陣列(FPGA)、複雜可規劃邏輯裝置(CPLD);可以使用諸如以下各者之電路技術的固定功能性邏輯硬體實施:特殊應用積體電路(ASIC)、互補金屬氧化物半導體(CMOS)或電晶體-電晶體邏輯(TTL)技術;或其任何組合。
首先轉向流程圖之左半部分,首先考慮不存在待處理之高優先順序程序的狀況。在最簡單的狀況下,電腦可正處於處理用於3D演現之工作流程中間。舉例而言,此情形可意謂待自正遍歷具有圖2中所展示之各種階段的3D影像管線從而以彼程序填充管線的數千三角形元素產生影像。此程序可為一般的低優先順序程序工作負載。其在所說明之區塊404處開始執行,此係因為在此簡單狀況下,可不存在待在區塊403處自記憶體恢復的低優先順序程序狀態,且當不存在待在區塊406處考慮的先占或暫停時,執行可在區塊408處完成。出於良好內務處理及設計,可在區塊410處將現在執行的最終程序保存至記憶體以供在別處進一步使用。此記憶體可為主儲存記憶體或GPU上之DDR記憶體或便於儲存完成的程序之任何其他記憶體。亦在410處,可通知軟體排程器程序已完成,且處理程序在412處結束。
常常可為以下狀況:在包含一般工作流程的程序 之串流當中,存在必須給予第一度量之優先順序的一些程序。此等程序之實例係變化的。舉例而言,在媒體程序中,實施例可涉及在一般用途圖形處理單元(GPGPU)工作負載可正在背景中工作(執行數學密集型計算,類似於N身體重力模擬)時展示電影或剪輯。在此實例中,媒體將被給予優於GPGPU工作負載之優先順序。在其他實施例中,可能係相反狀況。
雖然給定程序在本文中相對於高優先順序程序可被稱為「低優先順序」,但其仍可具有比工作流程中之其他程序高的優先順序。此相對優先權無需歸因於一種使用(例如,滑鼠移動)優於另一使用(例如,數學計算)之自動優先順序而始終為如此。舉例而言,在另一實施例中,可存在一種在作業系統中實施且經由軟體排程器318(圖3)執行之演算法,該軟體排程器旨在得到對所有程序之硬體存取之平衡共用,從而導致不必遵循向GPU程序提供優於其他程序之優先順序之範例的先占。
接下來考慮待處理具有優於一般工作流程之優先順序的低優先順序程序的狀況。可在開始區塊434處藉由區塊432在低優先順序程序提交埠處提交低優先順序程序。如上文所提到,如此指定之程序具有優於基線工作流程之優先順序,且其可具有優於在進行中之其他先前提交之低優先順序程序的優先順序。因此,在區塊436處,該方法可指示管線中並非高優先順序程序之任何程序(包括在進行中之先前提交之低優先順序程序)將被先占。此處,先 占意謂流至3D管線之工作負載被停止且已在管線中之程序被清出(亦即,經允許以在諸如圖2中所展示之站處完成執行)。清空管線之此處理可能並非瞬時的,其可花費數千個時脈循環,此取決於管線之深度及儲存於其站之內部快取記憶體中的工作之數量。舉例而言,在圖形處理中,在三角形用作用於3D物件演現之圖元的情況下,管線中之每一站可具有含有數千個三角形之快取記憶體。清空管線之處理可需要在管線中完成對此等三角形之工作,因此招致在等待在所說明之區塊438處的管線清除時的大量潛時。
一旦管線已清除,軟體排程器便可在區塊440處自硬體排程器接收指示已接受到新的低優先順序程序的狀態更新。在區塊442處,低優先順序程序開始在區塊402處在管線中執行的處理程序,其在區塊444處標記提交階段結束。執行首先以在區塊403處自記憶體中提取先前儲存於記憶體中之任何可用狀態資料開始,且在所說明之區塊404處,硬體可開始執行工作負載。在工作負載處於執行中時,在區塊406處,管線監視系統以監測歸因於低優先順序程序或高優先順序程序提交之任何新的先占或暫停。在區塊406處執行期間,可為如下狀況:另一低優先順序程序經由區塊451到達以先占程序,或高優先順序程序已觸發程序之暫停。若不存在其他先占或暫停,則在區塊408處,程序完成且可如前所述在區塊410處保存至記憶體以用於任何未來再使用,之後在區塊412處結束。
另一方面,可在區塊406處偵測傳入的低優先順 序程序或高優先順序程序,在此狀況下,低優先順序程序在區塊408處未完成但被暫停抑或先占。在區塊414處,若不存在所指示之暫停,則在區塊415處先占低優先順序程序。在區塊420處進行是否存在暫停之另一測試且若不存在,則繼續先占且在區塊422處,將低優先順序程序狀態保存至記憶體且硬體排程器可通知軟體排程器低優先順序程序已被先占。
提供在區塊446處之高優先順序程序埠以用於提交指定高優先順序程序。在此實例中,高優先順序程序可藉由滑鼠、軌跡墊觸控及其他GUI命令產生,對於滑鼠、軌跡墊觸控及其他GUI命令,及時執行尤為重要。在其他實施例中,其他操作可產生可指定為具有高優先順序之其他程序。在此實施例中,在區塊446處之高優先順序程序提交埠係以硬體實施,但在其他實施例中,其可以軟體實施。
高優先順序程序係藉由軟體排程器或作業系統之其他部分偵測。若偵測到高優先順序程序而非先占管線中之任何低優先順序程序(其將需要相對較高潛時損失以用於清空管線),則在所說明之區塊450處,起始管線中之任何程序之暫停且可經由區塊451將相同指示發送至區塊406。替代清空管線,准許管線中之任何程序在可達到之最近邏輯點處(諸如,在其可處於之站處完成進行中之飛行操作或異動之後)停止。舉例而言,在程序由在管線中之每一站處的數千三角形之圖形處理組成的狀況下,可允許在站處在進行中之任何個別三角形的處理完成,但接著針對彼 程序暫停管線且將管線中的程序之狀態及待決/中間資料複製至記憶體/晶片上儲存器中。就流程圖400而言,可在若干位置(包括區塊410、區塊422、區塊426及區塊450)處將程序保存至記憶體。管線暫停中所招致之潛時可實質上少於清空管線中所招致之時間。
一旦在區塊452處暫停完成或先前程序已結束執行,便可在區塊454處通知軟體排程器已接受到高優先順序程序。在區塊456處,高優先順序程序執行可接著開始。在區塊460處,可讀取可視情況已置放於記憶體中的關於高優先順序程序之任何先前儲存之狀態資訊以恢復彼高優先順序程序狀態,且高優先順序程序之執行開始。在區塊462處,執行完成。在區塊464處,可將完成的高優先順序程序之狀態保存至記憶體以供稍後進一步使用,且可通知軟體排程器高優先順序程序已完成。在區塊466處,可重新繼續經暫停之任何待決低優先順序程序,或在468處,整個處理程序可結束。
再次轉向方法400之左側,考慮處理高優先順序程序之其他態樣。在區塊406處,暫停之指示(高優先順序程序之標記)到達,且在區塊414處,其被應答。接著,在區塊424處,任何作用中低優先順序程序(此處其可意謂並非高優先順序之任何程序)暫停。在區塊426處,將經暫停之低優先順序程序的狀態任何已產生的其中間資料保存至記憶體(諸如,晶片上儲存器)。又,通知軟體排程器低優先順序程序已暫停。區塊426可自區塊466接收可重新繼續對 經暫停之低優先順序程序之工作的指示,在此狀況下在區塊430處,通知軟體排程器可重新繼續對經暫停之程序之工作,其在402處區塊確實開始。
現轉向圖5,經由流程圖500展示提供較低優先順序程序之高優先順序程序先占的方法之另一實例。首先考慮在區塊504處將高優先順序程序提交至高優先順序埠的狀況。若在區塊506處不存在待考慮的進行中之較低優先順序程序,則在區塊512處,將高優先順序程序發送至管線且將其執行。另一方面,若管線中已存在較低優先順序程序,則在區塊508處暫停彼較低優先順序程序且在區塊510處將其狀態及未完成工作保存至儲存記憶體(其可為專用晶粒上儲存器)。另外,任何完成的程序處理可儲存於主記憶體或DDR圖形記憶體中。
在區塊512處高優先順序程序完成之後,在514處輪詢系統以詢問任何經暫停之低優先順序程序。若不存在,則在區塊518處進一步輪詢系統以判定是否存在待處理之任何其他低優先順序程序。若不存在,則工作流程結束。若存在待處理之其他低優先順序程序,則此低優先順序程序在區塊520處執行,且接著當完成時,此工作流程結束。
若在區塊514處判定剩有待處理的經暫停之低優先順序程序,則其狀態及任何部分完成工作在區塊516處自記憶體恢復且在區塊517處在管線中處理,其後控制傳遞至區塊518且如上繼續。
在區塊532處可將低優先順序程序提交至低優先 順序埠。在流程圖500中,在彼狀況之後,在條件性區塊534處判定是否已將高優先順序程序提交至高優先順序埠。若已提交,則流程控制傳遞至區塊506以用於如前所述進行處理。若未提交,則在區塊536處進一步判定在管線中是否存在任何較舊的低優先順序程序。若不存在,則在538處將低優先順序程序提交至管線且將其執行以完成,且在540處工作負載結束。另一方面,若另一低優先順序程序已在管線中,則其在區塊542處被先占且在區塊544處執行較新的低優先順序程序。在其完成之後,在區塊546處重新載入及執行較舊的經先占之低優先順序程序。
在圖6中呈現根據一實施例之邏輯架構600之實例。邏輯架構600包括圖形管線602、低優先順序程序埠604及高優先順序程序埠606。高優先順序程序偵測模組614可偵測高優先順序程序至高優先順序埠606之提交。若在低優先順序程序為管線602中之作用中程序時偵測到此程序,則低優先順序程序暫停模組616可暫停低優先順序程序且其狀態及任何部分完成工作可藉由暫停程序保存模組618保存至晶粒上儲存器620。在高優先順序程序已處理之後,經暫停之程序的狀態及任何部分完成工作藉由暫停程序恢復模組622自晶粒上儲存器620恢復至管線,且對經暫停之低優先順序程序之工作重新繼續。
可能不存在待處理之高優先順序程序。在彼狀況下,低優先順序程序偵測模組626偵測低優先順序程序至低優先順序埠604之提交。若在另一低優先順序程序為管線 602中之作用中程序時偵測到此程序,則低優先順序程序先占模組628先占低優先順序程序且其狀態之某些態樣以及任何完成工作可藉由先占程序保存模組630保存至記憶體632,該記憶體可為主記憶體或DDR記憶體。在低優先順序程序已處理之後,如可能已保存之此狀態資訊及經先占之低優先順序程序藉由先占程序恢復模組622恢復至管線,且對經先占之低優先順序程序的工作重新繼續。
圖7說明系統700之實施例。在諸實施例中,系統700可為媒體系統,但系統700並不限於此程序。舉例而言,系統700可併入至以下各者中:個人電腦(PC)、膝上型電腦、超膝上型電腦、平板電腦、觸控板、攜帶型電腦、手持型電腦、掌上型電腦、個人數位助理(PDA)、蜂巢式電話、組合蜂巢式電話/PDA、電視、智慧型裝置(例如,智慧型手機、智慧型平板電腦或智慧型電視)、行動網際網路裝置(MID)、訊息傳遞裝置、資料通訊裝置等。因此,如本文中所描述,系統700可用於演現影像。
在諸實施例中,系統700包含耦接至顯示器720之平台702。平台702可自諸如內容服務裝置730或內容遞送裝置740或其他類似內容源之內容裝置接收視訊位元串流內容。導覽控制器750包含可用於與(例如)平台702及/或顯示器720互動之一或多個導覽特徵。下文較詳細地描述此等組件中之每一者。
在諸實施例中,平台702可包含晶片組705、處理器710、記憶體712、儲存器714、圖形子系統715、應用程 式716及/或無線電718之任何組合。晶片組705可提供處理器710、記憶體712、儲存器714、圖形子系統715、應用程式716及/或無線電718間的內部通訊。舉例而言,晶片組705可包括能夠提供與儲存器714之內部通訊的儲存器配接器(未描繪)。
處理器710可實施為複雜指令集電腦(CISC)或精簡指令集電腦(RISC)處理器、x86指令集相容處理器、多核心或任何其他微處理器或中央處理單元(CPU)。在諸實施例中,處理器710可包含雙核心處理器、雙核心行動處理器等。
記憶體712可實施為依電性記憶體裝置,諸如(但不限於)隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)或靜態RAM(SRAM)。
儲存器714可實施為非依電性儲存裝置,諸如(但不限於)磁碟機、光碟機、磁帶機、內部儲存裝置、附接儲存裝置、快閃記憶體、電池備用式SDRAM(同步DRAM)及/或網路可存取儲存裝置。在諸實施例中,儲存器714可包含用以在(例如)包括多個硬碟機時增加對有價值數位媒體之儲存效能增強保護的技術。
圖形子系統715可對用於顯示之影像(諸如,靜態或視訊)執行處理。舉例而言,圖形子系統715可為圖形處理單元(GPU)或視覺處理單元(VPU)。圖形子系統715因此可包括已論述之GPU 101(圖1)。另外,處理器710可經組配以經由自記憶體712、儲存器714或其他合適源獲得之指令而操作為CPU。類比或數位介面可用於以通訊方式耦接圖 形子系統715及顯示器720。舉例而言,介面可為高清晰度多媒體介面、顯示埠、無線HDMI及/或無線HD相符技術中之任一者。圖形子系統715可整合至處理器710或晶片組705中。圖形子系統715可為以通訊方式耦接至晶片組705之獨立卡。
本文中所描述之圖形及/或視訊處理技術可實施於各種硬體架構中。舉例而言,圖形及/或視訊功能性可整合於晶片組內。替代地,可使用離散之圖形及/或視訊處理器。作為又一實施例,圖形及/或視訊功能可由一般用途處理器(包括多核心處理器)實施。在另一實施例中,該等功能可實施於消費型電子裝置中。
無線電718可包括能夠使用各種合適的無線通訊技術傳輸及接收信號的一或多個無線電。此等技術可涉及跨越一或多個無線網路進行通訊。例示性無線網路包括(但不限於)無線區域網路(WLAN)、無線個人區域網路(WPAN)、無線都會區域網路(WMAN)、蜂巢式網路及衛星網路。在跨越此等網路進行通訊時,無線電718可根據任何版本之一或多個適用標準進行操作。
在諸實施例中,顯示器720可包含任何電視型監視器或顯示器。顯示器720可包含(例如)電腦顯示螢幕、觸控螢幕顯示器、視訊監視器、類似電視之裝置,及/或電視。顯示器720可係數位及/或類比的。在諸實施例中,顯示器720可為全像顯示器。又,顯示器720可為可接收視覺投影之透明表面。此等投影可傳送各種形式之資訊、影像及/或 物件。舉例而言,此等投影可為用於行動擴增實境(MAR)應用之視覺覆疊。在一或多個軟體應用程式716之控制下,平台702可在顯示器720上顯示使用者介面722。
在諸實施例中,內容服務裝置730可藉由任何國家、國際及/或獨立之服務代管,且因此可由平台702經由(例如)網際網路存取。內容服務裝置730可耦接至平台702及/或顯示器720。平台702及/或內容服務裝置730可耦接至網路760,以將媒體資訊傳達至網路760及自網路760傳達媒體資訊(例如,將媒體資訊發送至網路760及/或自網路760接收媒體資訊)。內容遞送裝置740亦可耦接至平台702及/或顯示器720。
在諸實施例中,內容服務裝置730可包含有線電視盒、個人電腦、網路、電話、具備網際網路功能之裝置或能夠遞送數位資訊及/或內容之器具,及能夠在內容提供者與平台702及/顯示器720之間經由網路760或直接地單向或雙向傳達內容的任何其他類似裝置。將瞭解,可經由網路760將內容單向及/或雙向地傳達至系統700中之組件以及內容提供者中的任一者,及自系統700中之組件以及內容提供者中的任一者單向及/或雙向地傳達內容。內容之實例可包括任何媒體資訊,包括(例如)視訊、音樂、醫療及遊戲資訊等。
內容服務裝置730接收諸如有線電視程式設計之內容,包括媒體資訊、數位資訊及/或其他內容。內容提供者之實例可包括任何有線或衛星電視或無線電或網際網路 內容提供者。所提供之實例並不意謂限制諸實施例。
在諸實施例中,平台702可自具有一或多個導覽特徵之導覽控制器750接收控制信號。舉例而言,控制器750之導覽特徵可用於與使用者介面722互動。在諸實施例中,導覽控制器750可為指標裝置,其可為允許使用者將空間(例如,連續及多維)資料輸入至電腦中之電腦硬體組件(具體而言,人性化介面裝置)。諸如圖形使用者介面(GUI)以及電視及監視器之許多系統允許使用者使用身體示意動作對電腦或電視進行控制,且將資料提供至電腦或電視。
藉由移動指標、游標、聚焦環或顯示於顯示器上之其他視覺指示器,可在顯示器(例如,顯示器720)上回應控制器750之導覽特徵的移動。舉例而言,在軟體應用程式716之控制下,位於導覽控制器750上之導覽特徵可映射至顯示於(例如)使用者介面722上之虛擬導覽特徵。在諸實施例中,控制器750可能並非單獨組件,而是整合至平台702及/或顯示器720中。然而,諸實施例並不限於本文中所展示或描述之元件或不限於本文中所展示或描述之上下文中。
在諸實施例中,驅動程式(圖中未示)可包含用以(例如)在經啟用時使得使用者能夠在初始開機之後藉由觸摸按鈕而即刻接通及斷開類似於電視之平台702的技術。當「斷開」平台時,程式邏輯可允許平台702將內容串流傳輸至媒體配接器或其他內容服務裝置730或內容遞送裝置740。另外,晶片組705可包含支援(例如)5.1環繞聲音訊及/ 或高清晰度7.1環繞聲音訊之硬體及/或軟體。驅動程式可包括用於整合圖形平台之圖形驅動程式。在諸實施例中,圖形驅動程式可包含快速周邊組件互連(PCI)圖形卡。
在各種實施例中,可整合系統700中所展示之組件中的任何一或多者。舉例而言,可整合平台702與內容服務裝置730,或可整合平台702與內容遞送裝置740,或(例如)可整合平台702、內容服務裝置730與內容遞送裝置740。在各種實施例中,平台702及顯示器720可為一體式單元。舉例而言,可整合顯示器720與內容服務裝置730,或可整合顯示器720與內容遞送裝置740。此等實例並不意謂限制諸實施例。
在各種實施例中,系統700可實施為無線系統、有線系統或兩者之組合。當實施為無線系統時,系統700可包括適合於在無線共用媒體上進行通訊之組件及介面,諸如一或多個天線、傳輸器、接收器、收發器、放大器、濾波器、控制邏輯等。無線共用媒體之實例可包括無線頻譜之部分,諸如RF頻譜等。當實施為有線系統時,系統700可包括適合於在有線通訊媒體上進行通訊之組件及介面,諸如輸入/輸出(I/O)配接器、用以將I/O配接器與對應有線通訊媒體連接之實體連接器、網路介面卡(NIC)、磁碟控制器、視訊控制器、音訊控制器等。有線通訊媒體之實例可包括電線、纜線、金屬導線、印刷電路板(PCB)、背板、交換網狀架構、半導體材料、雙絞線、同軸纜線、光纖等。
平台702可建立一或多個邏輯或實體頻道以傳達 資訊。資訊可包括媒體資訊及控制資訊。媒體資訊可係指表示用於使用者之內容的任何資料。內容之實例可包括(例如)來自語音會話、視訊會議、串流視訊、電子郵件(「email」)訊息、語音郵件訊息、文數字符號、圖形、影像、視訊、文字等的資料。來自語音會話之資料可為(例如)話語資訊、靜寂週期、背景雜訊、舒適雜訊、音調等。控制資訊可指表示用於自動化系統之命令、指令或控制字的任何資料。舉例而言,控制資訊可用於經由系統而投送媒體資訊,或指示節點以預定方式處理媒體資訊。然而,實施例並不限於圖7中所展示或所描述之元件或不限於圖7中所展示或所描述之上下文中。
如上文所描述,系統700可以變化之實體樣式或外觀尺寸體現。圖8說明可體現系統700的小外觀尺寸裝置800之實施例。在諸實施例中,例如,裝置800可實施為具有無線能力之行動計算裝置。行動計算裝置可指具有處理系統及行動電源或電源供應器(諸如,一或多個電池)之任何裝置。
如上文所描述,行動計算裝置之實例可包括個人電腦(PC)、膝上型電腦、超膝上型電腦、平板電腦、觸控板、攜帶型電腦、手持型電腦、掌上型電腦、個人數位助理(PDA)、蜂巢式電話、組合蜂巢式電話/PDA、電視、智慧型裝置(例如,智慧型手機、智慧型平板電腦或智慧型電視)、行動網際網路裝置(MID)、訊息傳遞裝置、資料通訊裝置等。
行動計算裝置之實例亦可包括經配置以由個人佩戴之電腦,諸如腕式電腦、手指式電腦、環式電腦、鏡片式電腦、帶夾式電腦、臂帶式電腦、鞋式電腦、服裝式電腦及其他可佩帶式電腦。在諸實施例中,例如,行動計算裝置可實施為能夠執行電腦應用程式以及語音通訊及/或資料通訊之智慧型手機。儘管作為實例,可在實施為智慧型手機之行動計算裝置的情況下來描述一些實施例,但可瞭解,亦可使用其他無線行動計算裝置來實施其他實施例。實施例並不限於此上下文中。
如圖8中所展示,裝置800可包含外殼802、顯示器804、輸入/輸出(I/O)裝置806及天線808。裝置800亦可包含導覽特徵812。顯示器804可包含用於顯示適用於行動計算裝置之資訊的任何合適顯示單元。I/O裝置806可包含用於將資訊鍵入至行動計算裝置中之任何合適I/O裝置。I/O裝置806之實例可包括文數字鍵盤、數字小鍵盤、觸控板、輸入鍵、按鈕、開關、搖臂開關、麥克風、揚聲器、語音辨識裝置及軟體等。資訊亦可藉由麥克風鍵入至裝置800中。此資訊可由語音辨識裝置數位化。實施例並不限於此上下文下中。
額外註釋及實例:實例1可包括一種系統,其具有:處理器;一管線;一第一埠,其用以接收具有一第一優先順序之程序;一第二埠,其用以接收具有高於該第一優先順序之一第二優先順序的一程序;一第二優先順序程序偵測模組,其用 以偵測具有該第二優先順序之該程序在該第二埠處的接收;以及一暫停模組,其用以在該第二優先順序程序偵測模組已偵測到具有該第二優先順序之該程序在該第二埠處的該接收之後暫停管線中之一程序。
實例2可包括實例1之系統,其進一步包括晶粒上儲存器,該晶粒上儲存器用以儲存該等程序中之至少一者的一狀態,其中該晶粒上儲存器及該處理器係在一共同晶粒上。
實例3可包括實例2之系統,其進一步包括一恢復模組,該恢復模組用以在具有一第二優先順序之該程序已完成之後恢復一經暫停之程序。
實例4可包括實例3之系統,其中該等模組中之至少一者係以軟體實施。
實例5可包括實例1之系統,其中該暫停模組係以硬體實施。
實例6可包括實例1或2之系統,其進一步包含一先占模組,該先占模組用以在一程序已提交至該第一埠之後先占該管線中之一程序。
實例7可包括前述實例中之任一者之系統,其進一步包含一先占恢復模組,該先占恢復模組可恢復已被先占之一程序。
實例8可包括實例1、2、4或5中之任一者之系統,其進一步包含一暫停恢復模組,該暫停恢復模組可恢復已暫停之一程序。
實例9可包括前述實例中之任一者之系統,其進一步包含一三維(3D)圖形處理器。
實例10可包括一種方法,其包含:將一第一程序提交至專用於具有一第一優先順序之程序的一第一埠;將該第一程序提交至一管線;將一第二程序提交至專用於具有一第二優先順序之程序的一第二埠;以及在該第一程序於該管線中完成之前暫停該第一程序。
實例11可包括實例10之方法,其進一步包括偵測該程序至該第二埠之該提交。
實例12可包括實例10之方法,其進一步包括將該第一程序之一狀態及未完成工作複製至晶粒上儲存器且接著將該第二程序提交至該管線。
實例13可包括實例12之方法,其進一步包括在該第二程序已完成之後重新繼續該第一程序。
實例14可包括實例10至實例13中之任一者之方法,其進一步包括在一程序已提交至該第一埠之後先占該管線中之一程序。
實例15可包括至少一種電腦可讀儲存媒體,其包含若藉由一計算裝置執行時會致使該計算裝置進行以下操作之一指令集:將一第一程序提交至專用於具有一第一優先順序之程序的一第一埠;將該第一程序提交至一管線;將一第二程序提交至專用於具有一第二優先順序之程序的一第二埠;以及在該第一程序於該管線中完成之前暫停該第一程序。
實例16可包括實例15之至少一電腦可讀儲存媒體,其中該等指令若被執行時會致使該計算裝置偵測一程序至該第二埠之該提交。
實例17可包括實例15之至少一電腦可讀儲存媒體,其中該等指令若被執行時會致使一計算裝置將該第一程序之狀態及未完成工作複製至晶粒上儲存器且接著將該第二程序提交至該管線。
實例18可包括實例15至17中之任一者之至少一電腦可讀儲存媒體,其中該等指令若被執行時會致使一計算裝置在該第二程序已完成之後重新繼續該第一程序。
實例19可包括實例15至17中之任一者之至少一電腦可讀儲存媒體,其中該等指令若被執行時會致使一計算裝置在一程序已提交至該第一埠之後先占該管線中之一程序。
實例20可包括一種設備,其包含:一第一埠,其用以接收具有一第一優先順序之程序;一第二埠,其用以接收具有一第二優先順序之程序;一管線,其用以處理程序;一程序偵測模組,其用以偵測程序至該等埠之提交;一排程器模組,其用以將程序發送至該管線;以及一暫停模組,其用以暫停在該第一埠處接收之程序的該管線處理以有利於在該第二埠處接收之程序。
實例21可包括實例20之設備,其進一步包含晶粒上記憶體,該晶粒上記憶體用以儲存該等程序中之至少一者的狀態。
實例22可包括實例20之設備,其進一步包含一恢復模組,該恢復模組用以將一程序恢復至該管線。
實例23可包括實例20或實例21中之任一者的設備,其進一步包含用以儲存關於程序之狀態資訊的記憶體。
實例24可包括實例20之設備,其進一步包含一圖形處理單元。
實例25可包括實例20至實例22中之任一者之設備,其進一步包含一暫停程序恢復模組,該暫停程序恢復模組用以在提交至該第二埠之一程序完成之後重新繼續一經暫停之程序。
實例26可包括一種設備,其包含:一管線;一第一埠,其用於提交具有一第一優先順序之程序;一第二埠,其用於提交具有一第二優先順序之程序;用於偵測一程序至該第二埠之該提交的構件;以及用於在已偵測到一程序至該第二埠之該提交之後暫停該管線中之一程序的構件。
實例27可包括實例26之設備,其中該用於暫停該程序之構件係以軟體實施。
實例28可包括實例26之設備,其中該用於暫停該程序之構件係以硬體實施。
實例29可包括實例26之設備,其進一步包含晶粒上記憶體,該晶粒上記憶體中儲存具有一第一優先順序之一程序的狀態。
實例30可包括實例26或實例29之設備,其進一步包含待儲存具有一第二優先順序之一程序之狀態的記憶 體。
實例31可包括實例26之設備,其進一步包含用於儲存提交至該等埠中之一者的一程序之狀態的記憶體,及用於重新繼續一經暫停之程序的一模組。
實例32可包括實例26至實例29中之任一者之設備,其進一步包含用以在一程序已提交至該第一埠之後先占該管線中之一程序的構件。
實例33可包括實例32之設備,其進一步包含用以恢復已被先占之一程序的構件。
實例34可包括實例26之設備,其進一步包含用以恢復已暫停之一程序的構件。
實例35可包括實例26之設備,其進一步包含多個管線。
實例36可包括一種排定待由一處理器處理之任務之優先順序的方法,其包含:提供分別對應於具有較低及較高處理優先順序等級之任務的第一埠及第二埠;將提交至該第一埠之較低優先順序任務轉遞至一管線;藉由在一任務提交至該第一埠時清空如可在該管線中的任何較低優先順序任務之該管線且在其位置中提交已提交至該第一埠之一任務而先占當前正在該管線中執行的任何此等較低優先順序任務;以及在一任務提交至該第二埠時暫停如可在該管線中之任何較低優先順序任務且在其位置中提交已提交至該第二埠之一任務。
實例37可包括實例36之方法,其中提交至該第二 埠之該任務包含圖形。
可使用硬體元件、軟體元件或兩者之組合實施各種實施例。硬體元件之實例可包括處理器、微處理器、電路、電路元件(例如,電晶體、電阻器、電容器、電感器等)、積體電路、特殊應用積體電路(ASIC)、可規劃邏輯裝置(PLD)、數位信號處理器(DSP)、場可規劃閘陣列(FPGA)、邏輯閘、暫存器、半導體裝置、晶片、微晶片、晶片組等。軟體之實例可包括軟體組件、程式、應用程式、電腦程式、應用程式、系統程式、機器程式、作業系統軟體、中間軟體、韌體、軟體模組、常式、次常式、函式、方法、程序、軟體介面、應用程式介面(API)、指令集、計算程式碼、電腦程式碼、碼段、電腦碼段、字、值、符號,或其任何組合。判定是否使用硬體元件及/或軟體元件來實施一實施例可根據諸如以下各者之任何數目個因素而變化:所要的計算速率、功率位準、耐熱性、處理循環預算、輸入資料速率、輸出資料速率、記憶體資源、資料匯流排速度及其他設計或效能約束。
可藉由儲存於機器可讀媒體上的表示處理器內之各種邏輯的代表性指令實施至少一實施例之一或多個態樣,該等代表性指令在由機器讀取時使該機器製造用以執行本文中所描述之技術的邏輯。可將被稱為「IP核心」之此等表示儲存於有形機器可讀媒體上,且將其供應至各種消費者或製造設施,以將其載入至實際上製造邏輯或處理器之製造機器中。
實施例適合供所有類型之半導體積體電路(「IC」)晶片使用。此等IC晶片之實例包括(但不限於)處理器、控制器、晶片組組件、可規劃邏輯陣列(PLA)、記憶體晶片、網路晶片及其類似者。另外,在該等圖式中之一些中,用線表示信號導體線。一些線可不同以指示較多構成信號路徑,可具有數字標籤以指示數個構成信號路徑,及/或可在一或多個末端處具有箭頭以指示主要資訊流動方向。然而,不應以限制性方式解釋此情況。確切而言,可結合一或多個例示性實施例使用此添加細節,以促進對電路之較容易理解。無論是否具有額外資訊,任何所表示信號線可實際上包含可在多個方向上行進且可藉由任何合適類型之信號方案(例如,藉由差分對實施之數位線或類比線、光纖線及/或單端線)實施的一或多個信號。
實例大小/模型/值/範圍可已給出,但實施例不限於相同情形。隨著製造技術(例如,光微影)隨時間推移變得成熟,吾人預期可製造較小大小之裝置。另外,為簡單地說明及論述起見且為了不混淆實施例之某些態樣,諸圖內可已展示或未展示至IC晶片及其他組件的熟知電源/接地連接。另外,配置可以方塊圖形式展示以便避免混淆實施例,且又鑒於關於此等方塊圖配置之實施的確切細則高度取決於實施例待實施所在的平台的事實,亦即,此等確切細則應良好地在熟習此項技術者之見識內。在特定細節(例如,電路)經闡述以便描述實例實施例之情況下,熟習此項技術者應顯而易見,實施例可在無此等特定細節之情況下 或在此等特定細節之變化情況下實踐。因此,應將描述視為例示性而非限制性的。
可(例如)使用可儲存指令或指令集之機器或有形電腦可讀媒體或物品而實施一些實施例,該等指令或指令集在由機器執行之情況下可使機器執行根據實施例之方法及/或操作。此機器可包括(例如)任何合適之處理平台、計算平台、計算裝置、處理裝置、計算系統、處理系統、電腦、處理器,或其類似者,且可使用硬體及/或軟體之任何合適組合實施。機器可讀媒體或物品可包括(例如)任何合適類型之記憶體單元、記憶體裝置、記憶體物品、記憶體媒體、儲存裝置、儲存物品、儲存媒體及/或儲存單元,例如,記憶體、可抽取或不可抽取式媒體、可抹除或不可抹除式媒體、可寫入或可重寫式媒體、數位或類比媒體、硬碟、軟性磁碟、緊密光碟唯讀記憶體(CD-ROM)、可記錄緊密光碟(CD-R)、可重寫緊密光碟(CD-RW)、光碟、磁性媒體、磁光媒體、可抽取式記憶卡或磁碟、各種類型之數位多功能光碟(DVD)、磁帶、卡匣或其類似者。指令可包括使用任何合適之高階、低階、物件導向式、視覺、經編譯及/或經解譯程式設計語言而實施的任何合適類型之程式碼,諸如原始程式碼、經編譯程式碼、經解譯程式碼、可執行程式碼、靜態程式碼、動態程式碼、經加密程式碼及其類似者。
除非以其他方式特定陳述,否則可瞭解,諸如「處理」、「計算」、「演算」、「判定」或其類似者之術語係指電 腦或計算系統或類似電子計算裝置的動作及/或處理程序,其將表示為計算系統之暫存器及/或記憶體內之物理量(例如,電子)操縱及/或變換成類似地表示為計算系統之記憶體、暫存器或其他此等資訊儲存、傳輸或顯示裝置內之物理量的其他資料。實施例並不限於此上下文中。
術語「耦接」可在本文中用於指所討論組件之間的任何類型之直接或間接關係,且可適用於電、機械、流體、光學、電磁、機電或其他連接。另外,除非另外指示,否則術語「第一」、「第二」等可在本文中僅用於促進論述,且並不攜有特定時間或時序意義。
熟習此項技術者自前述描述將瞭解,實施例之廣泛技術可以多種形式來實施。因此,雖然已結合實施例之特定實例描述了實施例,但實施例之真實範疇不應因此受限,此係因為其他修改對於熟習此項技術者在研究圖式、說明書以及以下申請專利範圍之後將變得顯而易見。
600‧‧‧邏輯架構
602‧‧‧圖形管線
604‧‧‧低優先順序程序埠
606‧‧‧高優先順序程序埠
614‧‧‧高優先順序程序偵測模組
616‧‧‧低優先順序程序暫停模組
618‧‧‧暫停程序保存模組
620‧‧‧晶粒上儲存器
622‧‧‧暫停程序恢復模組
626‧‧‧低優先順序程序偵測模組
628‧‧‧低優先順序程序先占模組
630‧‧‧先占程序保存模組
632‧‧‧記憶體

Claims (25)

  1. 一種系統,其包含:一處理器;一管線;一第一埠,其用以接收具有一第一優先順序之一程序(context);一第二埠,其用以接收具有高於該第一優先順序之一第二優先順序的一程序;一第二優先順序程序偵測模組,其用以偵測具有該第二優先順序之該程序在該第二埠處的接收;以及一暫停模組,其用以在該第二優先順序程序偵測模組已偵測到具有該第二優先順序之該程序在該第二埠處的接收之後暫停該管線中之一程序。
  2. 如請求項1之系統,其進一步包括晶粒上儲存器,該晶粒上儲存器用以儲存該等程序中之至少一者的一狀態,其中該晶粒上儲存器及該處理器係在一共同晶粒上。
  3. 如請求項2之系統,其進一步包含一恢復模組,該恢復模組用以在具有該第二優先順序之該程序已完成之後恢復一經暫停之程序。
  4. 如請求項3之系統,其中該等模組中之至少一者係以軟體實施。
  5. 如請求項1之系統,其中該暫停模組係以硬體實施。
  6. 如請求項1之系統,其進一步包含一先占模組,該先占模組用以在具有該第一優先順序之該程序已提交至該第一埠之後先占該管線中之一程序。
  7. 如請求項6之系統,其進一步包含一先占恢復模組,該先占恢復模組用以恢復已被先占之一程序。
  8. 如請求項1之系統,其進一步包含一暫停恢復模組,該暫停恢復模組用以恢復已暫停之一程序。
  9. 如請求項1之系統,其包含一三維(3D)圖形處理器。
  10. 一種方法,其包含:將一第一程序提交至專用於具有一第一優先順序之程序的一第一埠;將該第一程序提交至一管線;將一第二程序提交至專用於具有一第二優先順序之程序的一第二埠;以及在該第一程序於該管線中完成之前暫停該第一程序。
  11. 如請求項10之方法,其進一步包括偵測該第二程序至該第二埠之該提交。
  12. 如請求項10之方法,其進一步包括將該第一程序之一狀態及未完成工作複製至晶粒上儲存器且接著將該第二程序提交至該管線。
  13. 如請求項12之方法,其進一步包括在該第二程序已完成之後重新繼續該第一程序。
  14. 如請求項10之方法,其進一步包括在一程序已提交至該 第一埠之後先占該管線中之一程序。
  15. 一種至少一電腦可讀儲存媒體,其包含若藉由一計算裝置執行時會致使該計算裝置進行以下操作之一指令集:將一第一程序提交至專用於具有一第一優先順序之程序的一第一埠;將該第一程序提交至一管線;將一第二程序提交至專用於具有一第二優先順序之程序的一第二埠;以及在該第一程序於該管線中完成之前暫停該第一程序。
  16. 如請求項15之至少一電腦可讀儲存媒體,其中該等指令若被執行時會致使一計算裝置偵測該第二程序至該第二埠之該提交。
  17. 如請求項15之至少一電腦可讀儲存媒體,其中該等指令若被執行時會致使一計算裝置將該第一程序之一狀態及未完成工作複製至晶粒上儲存器且接著將該第二程序提交至該管線。
  18. 如請求項17之至少一電腦可讀儲存媒體,其中該等指令若被執行時會致使一計算裝置在該第二程序已完成之後重新繼續該第一程序。
  19. 如請求項15之至少一電腦可讀儲存媒體,其中該等指令若被執行時會致使一計算裝置在一程序已提交至該第一埠之後先占該管線中之一程序。
  20. 一種設備,其包含: 一第一埠,其用以接收具有一第一優先順序之程序;一第二埠,其用以接收具有一第二優先順序之程序;一管線,其用以處理程序;一程序偵測模組,其用以偵測程序至該等埠之提交;一排程器模組,其用以將程序發送至該管線;以及一暫停模組,其用以暫停在該第一埠處接收之程序之該管線處理以有利於在該第二埠處接收之程序。
  21. 如請求項20之設備,其進一步包含晶粒上記憶體,該晶粒上記憶體用以儲存該等程序中之至少一者的一狀態。
  22. 如請求項20之設備,其進一步包含一恢復模組,該恢復模組用以將一程序恢復至該管線。
  23. 如請求項20之設備,其進一步包含用以儲存關於程序之狀態資訊的記憶體。
  24. 如請求項20之設備,其進一步包含一圖形處理單元。
  25. 如請求項20之設備,其進一步包含一暫停程序恢復模組,該暫停程序恢復模組用以在提交至該第二埠之一程序完成之後重新繼續一經暫停之程序。
TW104104264A 2014-03-27 2015-02-09 用於程序先佔之系統、方法、設備以及電腦可讀儲存媒體 TWI546737B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/227,692 US9396032B2 (en) 2014-03-27 2014-03-27 Priority based context preemption

Publications (2)

Publication Number Publication Date
TW201537459A true TW201537459A (zh) 2015-10-01
TWI546737B TWI546737B (zh) 2016-08-21

Family

ID=54166027

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104104264A TWI546737B (zh) 2014-03-27 2015-02-09 用於程序先佔之系統、方法、設備以及電腦可讀儲存媒體

Country Status (5)

Country Link
US (1) US9396032B2 (zh)
KR (1) KR101666416B1 (zh)
CN (1) CN104951358B (zh)
DE (1) DE102015002365A1 (zh)
TW (1) TWI546737B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9927784B2 (en) 2014-12-04 2018-03-27 At&T Intellectual Property I, L.P. Ubiquitous computing methods and apparatus
US9842376B2 (en) * 2015-09-29 2017-12-12 Qualcomm Incorporated Graphics processing unit preemption with pixel tile level granularity
US10134103B2 (en) * 2015-10-23 2018-11-20 Qualcomm Incorporated GPU operation algorithm selection based on command stream marker
US10176548B2 (en) * 2015-12-18 2019-01-08 Ati Technologies Ulc Graphics context scheduling based on flip queue management
US10210593B2 (en) * 2016-01-28 2019-02-19 Qualcomm Incorporated Adaptive context switching
US10163184B2 (en) * 2016-08-17 2018-12-25 Adobe Systems Incorporated Graphics performance for complex user interfaces
US10929944B2 (en) 2016-11-23 2021-02-23 Advanced Micro Devices, Inc. Low power and low latency GPU coprocessor for persistent computing
US10026145B2 (en) 2016-12-13 2018-07-17 Qualcomm Incorporated Resource sharing on shader processor of GPU
US10373287B2 (en) 2017-08-18 2019-08-06 Apple Inc. Fast GPU context switch
US11609791B2 (en) * 2017-11-30 2023-03-21 Advanced Micro Devices, Inc. Precise suspend and resume of workloads in a processing unit
CN109936604B (zh) * 2017-12-18 2022-07-26 北京图森智途科技有限公司 一种资源调度方法、装置和系统
US12026799B2 (en) 2021-03-19 2024-07-02 Samsung Electronics Co., Ltd. Method and apparatus for software based preemption using two-level binning to improve forward progress of preempted workloads

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592678A (en) * 1991-07-23 1997-01-07 International Business Machines Corporation Display adapter supporting priority based functions
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
KR100214644B1 (ko) * 1996-12-31 1999-08-02 구자홍 프로세서의 메모리 다중 액세스 회로
US6671795B1 (en) * 2000-01-21 2003-12-30 Intel Corporation Method and apparatus for pausing execution in a processor or the like
US6738675B2 (en) * 2000-12-30 2004-05-18 Intel Corporation Method, apparatus, and system to reduce microprocessor power dissipation
US6915414B2 (en) * 2001-07-20 2005-07-05 Zilog, Inc. Context switching pipelined microprocessor
US7434223B2 (en) * 2003-05-22 2008-10-07 Agere Systems Inc. System and method for allowing a current context to change an event sensitivity of a future context
US8547339B2 (en) 2008-01-04 2013-10-01 Tactus Technology, Inc. System and methods for raised touch screens
JP2012511204A (ja) * 2008-12-08 2012-05-17 ケーピーアイティ クミンズ インフォシステムズ リミテッド リソースを最適化するためのタスク再編成方法
US8949838B2 (en) * 2009-04-27 2015-02-03 Lsi Corporation Multi-threaded processing with hardware accelerators
US9063561B2 (en) * 2009-05-06 2015-06-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Direct memory access for loopback transfers in a media controller architecture
US8578138B2 (en) * 2009-08-31 2013-11-05 Intel Corporation Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode
US20130019052A1 (en) * 2011-07-14 2013-01-17 Vinay Ashok Somanache Effective utilization of flash interface
US20130070513A1 (en) * 2011-09-16 2013-03-21 Advanced Micro Devices, Inc. Method and apparatus for direct backup of memory circuits
US8719507B2 (en) * 2012-01-04 2014-05-06 International Business Machines Corporation Near neighbor data cache sharing
US9524263B2 (en) * 2012-06-29 2016-12-20 Intel Corporation Method and apparatus for bus lock assistance
US9104421B2 (en) * 2012-07-30 2015-08-11 Nvidia Corporation Training, power-gating, and dynamic frequency changing of a memory controller
US9710874B2 (en) * 2012-12-27 2017-07-18 Nvidia Corporation Mid-primitive graphics execution preemption
US9703708B2 (en) * 2013-09-27 2017-07-11 Intel Corporation System and method for thread scheduling on reconfigurable processor cores
US10026714B2 (en) * 2014-02-14 2018-07-17 Nxp Usa, Inc. Integrated circuit device

Also Published As

Publication number Publication date
US9396032B2 (en) 2016-07-19
CN104951358B (zh) 2019-01-22
KR20150112771A (ko) 2015-10-07
US20150277981A1 (en) 2015-10-01
TWI546737B (zh) 2016-08-21
CN104951358A (zh) 2015-09-30
KR101666416B1 (ko) 2016-10-14
DE102015002365A1 (de) 2015-10-15

Similar Documents

Publication Publication Date Title
TWI546737B (zh) 用於程序先佔之系統、方法、設備以及電腦可讀儲存媒體
TWI550548B (zh) 於中段排序架構中利用訊框對訊框之同調性的技術
JP6374038B2 (ja) ドローコールにわたる共有リソースデータコヒーレンシを確実にするための効率的なハードウェアメカニズム
KR101552079B1 (ko) 그래픽스 프로세싱 유닛 상의 그래픽스 및 비그래픽스 어플리케이션들의 실행
US9832247B2 (en) Processing video data in a cloud
TWI502540B (zh) 動態再平衡圖型處理器資源的方法、裝置與系統
US9892482B2 (en) Processing video content
TW201411550A (zh) 執行對於圖像硬體之排程操作技術
JP5908957B2 (ja) ショートループアトミックアクセス
CN104937551B (zh) 用于管理设备中的功率的计算机实现的方法和用于管理设备中的功率的系统
JP6419856B2 (ja) 非特権アプリケーションによるグラフィクスワークロード・サブミッション
US9823927B2 (en) Range selection for data parallel programming environments
JP2015508528A (ja) パイプライン化された画像処理シーケンサ
TW201602961A (zh) 用以延遲著色之串流壓縮去鋸齒方法
TW202240539A (zh) 注視點渲染中的內容移動
TWI514858B (zh) 固定功能媒體裝置之先佔
US9892480B2 (en) Aborting graphics processor workload execution
JP2015076094A (ja) グラフィック処理アーキテクチャにおけるポストシンクロナイゼーションオペレーションとしてのアトミックオペレーションのサポート
US20130326351A1 (en) Video Post-Processing on Platforms without an Interface to Handle the Video Post-Processing Request from a Video Player
WO2013180728A1 (en) Video post- processing on platforms without an interface to handle the video post-processing request from a video player

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees