TWI520071B - 在中央處理單元與圖形處理單元間分享資源之技術 - Google Patents

在中央處理單元與圖形處理單元間分享資源之技術 Download PDF

Info

Publication number
TWI520071B
TWI520071B TW099144933A TW99144933A TWI520071B TW I520071 B TWI520071 B TW I520071B TW 099144933 A TW099144933 A TW 099144933A TW 99144933 A TW99144933 A TW 99144933A TW I520071 B TWI520071 B TW I520071B
Authority
TW
Taiwan
Prior art keywords
cpu
gpu
processor
instructions
logic
Prior art date
Application number
TW099144933A
Other languages
English (en)
Other versions
TW201145172A (en
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 TW201145172A publication Critical patent/TW201145172A/zh
Application granted granted Critical
Publication of TWI520071B publication Critical patent/TWI520071B/zh

Links

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

在中央處理單元與圖形處理單元間分享資源之技術 發明的技術領域
本發明的實施例係大致有關資訊處理的技術領域,且更確切來說,本發明的實施例係有關在例如一中央處理單元(CPU)、一圖形處理單元(GPU)、或該二者之一處理器中分享運算資源的技術領域。
發明的技術背景
隨著越來越多的應用程式持續地利用多處理系統與微處理器的並行處理能力,便越來越需要根據所進行之工作的類型來分享運算資源。例如,並行程式可能利用專業特化的處理硬體,例如一GPU,而較依序執行的程式則可能使用一般用途CPU。因為並行與依序操作在現代程式較常混合進行,同時地或依序地利用CPU與GPU二種資源將可有助令用於受處理之操作或程式類型的運算資源最佳化。
發明的概要說明
依據本發明的一實施例,係特地提出一種裝置,其包含:一中央處理單元(CPU);耦合至該CPU的一圖形處理單元(GPU);以及用以在該等CPU與GPU之間分享執行資源的邏輯組件。
圖式簡介
係以舉例方式以及不具限制性的方式來展示出本發明實施例;在圖式中,相同/相似的元件編號表示相似的元件。在圖式中:
第1圖以方塊圖展示出一種多處理器系統,其中可使用本發明的至少一實施例;
第2圖展示出根據本發明一實施例之分享資源的一CPU與一GPU。
第3圖展示出根據本發明一實施例的一種3D圖形呈現管線。
第4圖展示出根據本發明一實施例之由多個處理器核心分享的一浮點邏輯組件。
第5圖以流程圖展示出根據本發明至少一實施例使用的多項操作。
第6圖展示出一種分享互連體系統,其中可使用本發明的至少一實施例。
第7圖展示出一種點對點互連體電腦系統,其中可使用本發明的至少一實施例。
較佳實施例的詳細說明
本發明的實施例係有關處理裝置與系統,包括可處理並行或〝傳輸量〞應用程式以及較依序執行之程式的處理裝置與系統。某些實施例包括至少二個處理單元,例如用以執行較依序程式碼的一CPU以及用以執行較並行程式碼的一GPU,例如使用並行處理技術的3D圖形、學術或金融程式,例如利用單指令多資料(SIMD)或〝包裝(packed)〞或〝向量〞指令。在一實施例中,係在不管基本處理資源(CPU或GPU)為何的狀況下撰寫一程式,且判定要使用哪些處理資源以最佳地進行該等指令或一程式執行緒的動作係由硬體本身、一中介軟體式軟體(例如一驅動程式或類驅動程式之程式)、或一虛擬機器管理器或〝超級監督程式(hypervisor)〞來進行。再者,在某些實施例中,在該CPU或GPU上執行的一執行緒或指令組可針對由該執行緒或指令進行之該等操作的多個部分而利用其他處理資源的可得處理性能,例如一CPU或GPU,進而透過一共享記憶體空間來分享資訊或者直接地透過一直接鏈結互連體來分享資訊。
各種不同類型的操作與程式可利用實施例來進行,其中係在一GPU以及一CPU之間分享多項任務,包括根據一GPU操作性〝管線〞進行操作的3D圖形呈現程式。例如,平截頭體裁剪(frustum clipping)為在許多3D圖形應用程式中用來判定哪些多邊形會在任何給定時間出現在一平截頭體中的一種操作。這可以是一項相當運算密集的操作,且未必是需要一GPU之並行資源的一項操作。因此,在一實施例中,平截頭體裁剪之該等操作中的某些或全部可被〝卸載〞到具有可得處理性能的一CPU,而該GPU同時間進行其他操作。可直接地透過一直接鏈結把該CPU進行平截頭體裁剪所需的資料從該GPU傳送到該CPU,或者可透過一共享記憶體空間,例如PCI記憶體或共享快取記憶體等。隨後可透過該共享儲存體或直接鏈結從該CPU把平截頭體裁剪的結果送回到該GPU,且該GPU可隨後繼續呈現具有來自該CPU之該等平截頭體裁剪結果的情景。在一實施例中,控制此種資源分享的動作係由該CPU及/或GPU中的邏輯組件(或位於該等二者外部的邏輯組件)來進行,而在其他實施例中,分享該等資源的動作可受到一中介軟體式軟體的控制,例如一驅動程式、超級監督程式等,以使得使用者軟體並不知悉該資源分享狀況。
本發明的實施例令軟體應用程式能在對應於多個處理器的多個儲存體結構中存取並儲存資訊。在某些事例中,當處理使用單指令多資料(SIMD)或多指令多資料(MIMD)操作的並行指令或應用程式時,此狀況具有優點,因為各個SIMD或MIMD操作可存取來自共享記憶體結構的運算元資料元件,而不必在乎它們所處的特定記憶體結構為何。這對例如3D圖形或金融應用程式的應用程式特別有幫助,因為它們同時地對大量的資訊進行操作。然而,它亦可協助某些傳統、較依序進行的CPU應用程式,以及使用儲存在多個不同位置中之資訊的應用程式。
在某些實施例中,一程式或執行緒可在含有適於在一GPU上處理之部分的該CPU上執行。於此,可在該GPU上執行的指令或執行緒可利用一種如上所述的相似方式在該GPU上執行,且可隨後把其結果送回到該CPU以供後續處理。例如,因為GPU典型地包括相當並行的浮點資源,可透過共享記憶體或直接鏈結把排程到該CPU上的浮點指令傳輸到該GPU且受到執行,而同時間該CPU正在執行其他指令。該等浮點操作可隨後透過該共享記憶體或直接鏈結把其結果送回到該CPU,且該CPU可隨後把該等結果合併到正在該程式中執行之多項操作的剩餘部分。在一實施例中,該CPU並不包含浮點資源或者包含很少的浮點資源,且實質上仰賴該GPU的浮點資源,以使得該GPU與CPU能分享該等浮點資源。
在某些實施例中,其中係根據多個片段(例如〝頁面〞)來組織或存取記憶體,存取該等頁面的該等處理器(或記憶體介面邏輯組件)可維持多個結構(例如〝分頁表〞),以使一特定記憶體結構的頁面大小或組織能對映到該處理器或記憶體控制器的分頁大小或方案。例如,在一實施例中,其中一處理器或記憶體控制器可使一特定記憶體的實體頁面對映到一組固定數量的虛擬頁面,而該處理器或記憶體控制器可響應於存取該等頁面的一程式而開啟或關閉該等虛擬頁面。
因為在某些實施例中,各個處理器或記憶體介面可存取其他記憶體結構,其可受到另一個處理器記憶體介面控制或者對應於另一個處理器記憶體介面,該等處理器/記憶體控制器之間的某些通訊可為所欲的,以便維持各個處理器或記憶體控制器之頁狀態(開放/關閉)之間的同調性。在一實施例中,一個寬度n互連體(其中`n'可表示通道/接腳/線道/線跡的一可變數量,從1到更大)可用來在該等各種不同處理器或記憶體控制器之間傳遞頁狀態,以使得一處理器不會關閉另一個處理器可能需要存取的一記憶體頁面。藉著在存取一或多個記憶體的該等各種不同處理器(例如一GPU以及一CPU)或記憶體控制器之間傳遞頁狀態,可以避免不必要的頁面開啟或關閉操作,進而提升該等各種不同處理器或記憶體控制器之間的存取效能。再者,在某些實施例中,該寬度n互連體可具有一相對低頻寬,因此不需要過多的接腳、電力、或其他資源。
較佳地,本發明的實施例可允許一應用程式能在多個處理器上執行,而不管當中儲存有或將儲存有資料的記憶體裝置。這對圖形應用程式尤其有用,其中一圖形處理器正呈現半個螢幕的像素,而另一個圖形處理器則正呈現另半個螢幕的像素。在此情況中,落在邊界上的三角型會造成潛伏期間(當受過濾時),因為一處理器將需要從一記憶體存取鄰近紋素(texil)資訊(對應於位於該螢幕之該對應處理器之半邊上的紋素),而另一個處理器將需要從另一個記憶體存取鄰近紋素資訊(對應於位於該螢幕之該對應處理器之半邊上的紋素)。在此情況中,需要來自一非對應記憶體之資訊的一處理器可能需要透過該對應處理器來請求它,其將必須把它送回到提出請求的該處理器,這會耗用頻寬,因而需要該等處理器之間的一相對高頻寬匯流排。否則,軟體研發者必須對儲存資料之處設下限制,這是相當困難的,尤其是在呈現跨邊界三角形的狀況中。
在一實施例中,一分頁表使軟體提供的一位址對映到對應於用以執行傳輸量應用程式之二個處理器之二個記憶體中的位置。尤其,該分頁表使用一位址的位元來存取該分頁表的多個分錄,其包含儲存在該等二個記憶體之交替位置中之資訊的多個位址。因此,當軟體儲存或存取該資訊時,該分頁表自動地使該存取路由到適當記憶體,而提出請求的軟體(OS或應用程式)不需要瞭解或考量該資訊實際上所儲存的位置。於此,可利用一種交替方式以突發速度從任一記憶體存取資訊,進而最大化各個處理器之記憶體介面的頻寬並且避免一相對高頻寬匯流排支援跨記憶體/處理器存取。
在某些實施例中,多個處理器(例如CPU與GPU)可藉著以一種有效率方式來管理請求來對一請求應用程式提供資料,例如藉著使用一同調過濾器。在一實施例中,一同調過濾器可包括一或多個同調表,或對應於且可由一或多個處理器存取的其他結構,以使得在一處理器上執行之一應用程式所提出之針對資料的一請求可使該處理器存取一圖表,該表指出目前可由另一個處理器(例如,面對面地在該處理器之快取記憶體、緩衝器或其他結構中,目前在該處理器之對應記憶體中開啟的一頁面等)存取的資料位址。如果該受請求資料的最近版本駐存在另一個處理器的快取記憶體中,接收到該請求的該處理器可對另一個處理器發出信號,以把該受請求資料送回到該提出請求的應用程式,或者接收到該請求的該處理器可透過該寬度n處理器間互連體而從該處理器取回該資料。在某些實施例中,各個處理器可包括多個處理器,在此狀況中,各個處理器可對應於一處理器插座。
在某些實施例中,上述技術可應用到具有二個、四個、八個、或更多個處理器或核心的處理器或系統,該等處理器或核心可為相同類型(CPU)或為不同類型(CPU與GPU),或者上述技術可應用到其他加速器。再者,本發明的實施例可應用到數個種不同系統或處理組態或應用程式,包括一般用途電腦、圖形遊戲控制台、繪圖卡應用程式等。在一實施例中,本文所述的技術包含用以執行3D圖形或其他應用程式的一或多個處理器,例如金融應用程式、醫療應用程式、成像應用程式等。在其他實施例中,本文所述的技術可結合用以執行依序或較傳統工作負荷的一般用途CPU來使用。在其他實施例中,本文所述的技術可結合混合處理器來使用,其係設計為可執行傳統CPU工作負荷與傳輸量應用程式二種,例如包括傳統CPU與圖形特定邏輯組件(〝CPU+GPU〞)的處理器。在一實施例中,本文所述的技術可結合具有數個CPU處理器核心的一或多個處理器來使用、能夠進行SIMD指令、與並行應用程式特定邏輯組件一起耦合至一互連體,例如圖形紋理取樣邏輯組件。
第1圖以方塊圖展示出一種微處理器,其中可使用本發明的至少一實施例。第1圖展示出一種處理器,其可用於傳統CPU應用程式、傳輸量應用程式(例如3D圖形應用程式)、或傳統CPU與傳輸量應用程式的一組合。處理器100包括數個處理核心100-1至100-N、專屬傳輸量應用程式硬體110(例如圖形紋理取樣硬體)、記憶體介面邏輯組件120,其沿著環狀互連體130組構。在某些實施例中,處理器100可包括一或多個最後階層快取記憶體135,其包括來自各個核心100-1至100-N中之快取記憶體101-1至101-N的資訊。在一實施例中,一或多個處理核心100-1至100-N能夠進行SIMD操作。
在一實施例中,該等CPU可藉著透過共享記憶體或直接鏈結(或環狀鏈結,在展示於第1圖的實施例中)來傳輸該等操作而各在該GPU硬體上進行某些已排程操作。相反地,可利用相似的機構把排程到該圖形硬體上的多項操作傳輸到一可得CPU。
在某些實施例中,可從對應於另一個處理器(未展示)的其他記憶體存取例如圖形紋理的資訊或需要相對大量記憶體頻寬的其他資訊,而應用程式軟體不需要知悉或考量當中儲存有該資料的該記憶體。在某些實施例中,處理器100所包括的記憶體控制器可多於或少於展示於第1圖中的記憶體控制器。再者,第1圖的記憶體控制器可位於處理器100內部或者位於處理器100外部。
第2圖展示出根據本發明一實施例之分享資源的一CPU與一GPU。在一實施例中,CPU 201主要地用來執行較依序程式,而GPU 205則用來執行較並行的程式。在一實施例中,可利用共享儲存體210在該等CPU與GPU之間傳輸或〝移轉〞排程到該CPU或該GPU上的指令。在一實施例中,共享儲存體為列舉為PCI共享記憶體的一記憶體區域,其中該CPU或GPU可寫入並讀取與該等經移轉指令相關的資訊。例如,在當中圖形操作係由該GPU執行的一實施例中,如果該CPU為可得的,可藉著把欲由該CPU執行的該等指令與資料寫入到該共享記憶體、透過一中斷或介於該等CPU與GPU之間的其他直接鏈結來表示該CPU應該從該共享記憶體資源讀取資訊並且進行其中指出的該等操作,把該圖形操作的一部分傳輸到該CPU以供處理。在一實施例中,該GPU可隨後繼續處理其他操作,而該CPU同時正在處理該等經傳輸任務。當該CPU完成該等任務時,它可把其結果寫入到該共享記憶體,並且對該GPU指出可透過一中斷或直接通訊鏈結而取得該等結果,以使得該GPU可讀取該等結果,並且把它們合併到該圖形呈現管線中。在一實施例中,可以進行該共享記憶體資源的反向使用方式,其中該CPU正在進行操作,而可由該GPU來進行該等操作中的某些。
在一實施例中,直接鏈結215係用以分享欲在該等CPU與GPU之間傳輸的該資訊(例如並不使用共享記憶體),及/或對彼此發訊,表示該共享記憶體中有可得資訊。在一實施例中,該直接鏈結係用以分享頁面資訊,以使一處理器不會關閉另一個處理器可能需要的一頁面。在一實施例中,在一CPU以及一GPU之間分享資源的狀況係由該CPU中的邏輯組件、該GPU中的邏輯組件、或該等二者中的邏輯組件、或位於系統中他處的邏輯組件來控制。在某些實施例中,分享資源的狀況係由中介軟體、一驅動程式或類驅動程式軟體、或虛擬機器管理器或超級監督程式來控制。較佳地,可使用多個實施例,而該應用程式軟體或OS不必知悉分享資源的方式。在一實施例中,一圖形API的部分可控制CPU與GPU資源的分享方式。尤其,知悉基本資源的一API可根據在其圖形呈現管線中執行的該等操作來利用該等資源。
第3圖展示出根據本發明一實施例的一種圖形呈現管線。在一實施例中,第3圖的該圖形呈現管線包括輸入裝配器階段301、頂點著色器階段305、幾何著色器階段310、串流輸出階段315、光柵化器階段320、像素著色器階段325、以及輸出合併器階段330。同樣地,圖形呈現管線可利用一共享記憶體資源,例如位於共享記憶體資源335中的緩衝器。
在一實施例中,可依據欲執行的該等操作以及硬體資源的可得性,把第3圖展示的一或多個圖形呈現管線階段或一或多個圖形呈現管線階段的一部分傳輸到一CPU資源或另一個GPU資源。例如,在一實施例中,該頂點著色器階段係由具有可得硬體資源的一CPU來執行,藉著由該API對該CPU傳輸或排程指令,例如利用該共享記憶體資源。一旦該CPU已經完成該等操作,它可隨後利用該共享記憶體資源把其結果傳輸到該GPU。在一實施例中,該API或其他軟體可把指令排程欲在該CPU上執行以及某些指令欲在該GPU上執行,其中該等CPU與GPU各具有其本身的排程邏輯組件或一共享排程邏輯組件與一共享資源,例如浮點邏輯組件。在一實施例中,可把整數運算排程到該整數邏輯組件(其可位於一CPU中)上,並且可把浮點運算排程到該浮點邏輯組件(其可位於該GPU中)上。
第4圖展示出本發明的一實施例,其中一CPU與一GPU分享浮點與整術資源。尤其,第4圖展示出處理器400,其具有用以擷取指令的擷取邏輯組件401、用以解碼指令的解碼邏輯組件405、用以儲存該等指令使用之資料的L1資料快取記憶體410a至b、欲由多個代理器使用的共享L2快取記憶體415、以及共享L3快取記憶體420。此外,第4圖展示出用以進行整數指令的整數執行資源425a至h,以及用以進行浮點指令的浮點執行資源430a至b。再者,在一實施例中,該等浮點執行資源以及該等整數執行資源具有其本身專屬的排程邏輯組件435a至b以及440。在一實施例中,該等浮點資源包括128位元的浮點乘累加(FMAC)邏輯組件。在某些實施例中,該等排程資源係至少部分地為共享的。
在一實施例中,需要該等浮點資源的指令可利用一浮點排程器予以排程到浮點執行單元上,而需要該等整數執行資源的指令可利用一整數排程器予以排程到整數執行單元上。在一實施例中,一超級監督程式、一中介軟體、驅動程式或一API可用浮點排程器邏輯組件把需要浮點資源之一程式的多個部分排程到浮點執行單元上,同時地或依序地由整數排程器把整數指令排程到該整數執行資源上。在一實施例中,第4圖展示出一CPU;在其他實施例中,它展示出一GPU;且在其他實施例中,第4圖為一CPU以及一GPU。
第5圖以流程圖展示出根據本發明至少一實施例使用的多項操作。在操作501中,係把指令排程到一GPU或一CPU上。在操作505中,排程到一GPU或一CPU上的指令係利用一共享記憶體或直接鏈結而藉著把資訊寫入到該共享記憶體或直接鏈結來分享資訊。在操作510中,該共享資訊的一使用者讀取來自該共享記憶體或直接鏈結的該資訊。在其他實施例中,可執行其他操作。
例如,第6圖展示出一種共享匯流排電腦系統(例如前端匯流排(FSB)電腦系統),其中可使用本發明的一實施例。處理器601、605、610、或615中的任一個可包括非對稱核心(在效能、功率、操作電壓、時脈速度或ISA方面有差異),其可從位於該等處理器核心623、627、633、637、643、647、653、657中之一或與該等處理器核心中之一相關聯的任何本地第一階層(L1)快取記憶體620、625、630、235、640、645、650、655存取資訊。再者,任何處理器601、605、610、或615可經由晶片組665從該等共享第二階層(L2)快取記憶體603、607、613、617中之任一個或從系統記憶體660存取資訊。
本發明的實施例可存在於第6圖所展示出之該等處理器或代理器的任一個中。例如,可使邏輯組件619合併到處理器623、627、633、637、643、647、653、657中之任何一個或全部中,以進行至少一實施例的面向。尤其,邏輯組件619可用來檢測、發送、或解譯來自該系統中之其他代理器的信號,以判定是否要開啟或關閉一記憶體頁面,依據一頁面目前是否正由另一個代理器存取而定。在其他實施例中,係使邏輯組件619分佈在多個代理器之間。在其他實施例中,邏輯組件660可包括軟體、硬體、或該等的某些組合。
除了展示於第6圖的該FSB電腦系統,可結合本發明的各種不同實施例來使用其他系統組態,包括點對點(P2P)互連體系統以及環狀互連體系統。例如,第7圖的該P2P系統可包括數個處理器,其中僅以舉例方式展示出二個處理器770與處理器780。處理器770與處理器780可各包括本地記憶體控制器中樞(MCH)772與782,其用以和記憶體72與記憶體74連接。處理器770與處理器780可經由點對點(PtP)介面750而使用PtP介面電路778與788來交換資料。處理器770與處理器780可各經由個別PtP介面752與754而使用點對點介面電路776、794、786、798與晶片組790交換資料。晶片組790亦可經由高效能圖形介面739與高效能圖形電路738交換資料。
本發明的實施例可包括在第7圖所展示出的任何處理器或代理器中。例如,可使邏輯組件799在處理器770與處理器780中的任一個或二個中合併,以進行至少一實施例的面向。尤其,邏輯組件799可用來檢測、發送、或解譯來自該系統中之其他代理器的信號,以判定是否要開啟或關閉一記憶體頁面,依據一頁面目前是否正由另一個代理器存取而定。在其他實施例中,係使邏輯組件799分佈在多個代理器之間。在其他實施例中,邏輯組件799可包括軟體、硬體、或該等的某些組合。
許多不同類型的處理裝置可受惠於使用該種程序重新配置技術。例如,處理單元600-1至600-N可為一般用途處理器(例如微處理器),或者可為用於一多核心(位於一單一晶粒上)微處理器的微處理器核心。替代地,數位信號處理器、圖形處理器、網路處理器、或可用於具有多個並行單元或核心之一系統中的任何類型特殊用途處理器可受惠於多個處理單元之間的感熱式(或電力)激發程序轉移。該處理單元或處理器可為相同的,或者可具有至少部分重疊功能。換言之,各個處理單元具有某些共同的指令或命令組,以使得可以在不只一個處理單元或處理器上執行至少某些(若非全部)程序。在其他實施例中,該處理單元可為非對稱的,因此它們可具有不同效能性能、電晶體數量、功率耗用或感熱特色、時脈頻率、或ISA中的任一種或該等的一組合。
為了能促進處理並且送回受請求資料,至少一實施例可包括用以判定取回一應用程式所請求之資料之最佳(例如最快)方式的一同調過濾器。例如,在一實施例中,一同調過濾器可包括一同調表,該同調表的分錄包括有關目前可由該系統中任何一或多個處理器存取之資料的資訊。在一實施例中,用於一處理器的該同調表包括一位址清單,其指出在一快取記憶體、緩衝器、或該系統中另一個處理器之其他儲存體結構中可能可得的資料,以使得當一應用程式請求資料時,該處理器可首先檢查其同調表,以確認另一個處理器是否目前擁有該資料。若否,可由服務該請求的該處理器藉著跨越該寬度n處理器間互連體來取回該資料的方式來取回該資料。在一實施例中,因為該同調表僅會指出處理器之快取記憶體/緩衝器任一個中之可得資料的某些(的確,該同調表可能在所包含的資料量部分不同),可以縮減該寬度n處理器間互連體上的訊務,或者可根據該(等)同調表的資訊或大小而至少部分地控制該訊務。
第12圖展示出一種當中可使用本發明一實施例的系統,包括一同調過濾器。在第12圖中,在處理器1205上執行的應用程式或執行緒1240可藉著對處理器1205提供一位址來請求資料。處理器1205可隨後存取儲存在該處理器中或可由該處理器存取之某些記憶體中的同調表1245,以判定該受請求資料是否目前位於一快取記憶體中或位於處理器1200的一緩衝器中。例如,如果該同調表指出該受請求資料目前在處理器1200中可得,處理器1205可透過互連體1208從處理器1200取回該資料,進而以最方便方式對該程式提供該資料。在一實施例中,該同調表係參照應用程式或執行緒1240對處理器1205提供該位址的一部分。再者,在至少一實施例中,一不同表(或相同表)對應於該系統中的各個處理器,且係藉由針對在另一個處理器中發現的各個受請求位址在該表中產生一分錄來維持。再者,各個分錄可包括指出並未在另一個處理器中發現該資料之狀況的資訊,或者可全然地移除該分錄。各種不同同調表維持方案與演算法可用來追蹤欲透過互連體1208在該等處理器之間分享的資訊。
可藉由儲存在一機器可讀媒體(代表該處理器中的各種不同邏輯組件)上的表述資料來實行至少一實施例的一或多個面向,其受一機器讀取時將使該機器製成只能用以執行本文所述之該等技術的邏輯組件。該種表述方式,稱為〝IP核心〞,可儲存在一有形、機器可讀媒體(〝磁帶〞)上,並且可對各種不同顧客或製造設備提供該媒體,以載入到實際上製造該邏輯組件或處理器的製程機器中。
因此,已經解說了一種用以引導微架構式記憶體區域存取的方法與裝置。要瞭解的是,上述的說明僅用於展示目的而不具有限制性。在閱讀並了解的上述說明之後,熟知技藝者將可了解多種其他實施例。本發明的範圍應該因此參照以下的申請專利範圍以及該等申請專利範圍之等效物的完整範圍來判定。
100、400、601、605、615、610、670、680...處理器
100-1~N...核心
101-1~N...快取記憶體
110...專屬傳輸量應用程式硬體
120...記憶體介面邏輯組件
130...環狀互連體
135...最後階層快取記憶體
201...CPU
205...GPU
210...共享儲存體
215...直接鏈結
301...輸入裝配器階段
305...頂點著色器階段
310...幾何著色器階段
315...串流輸出階段
320...光柵化器階段
325...像素著色器階段
330...輸出合併器階段
335...共享記憶體資源
401...擷取邏輯組件
405...解碼邏輯組件
410a-b...L1資料快取記憶體
415...共享L2快取記憶體
420...共享L3快取記憶體
425a-h...整數執行資源
430a-b...浮點執行資源
435a-b、440...排程邏輯組件
501~510...操作
62、64...記憶體
600-1~600-N...處理單元
603、607、613、617...共享第二階層(L2)快取記憶體
614...I/O裝置
618...匯流排橋接器
619...邏輯組件
620、625、635、640、645、650、655...本地第一階層(L1)快取記憶體
622...鍵盤/滑鼠
623、627、643、647、653、657、674、684...處理器核心
624...音訊I/O
626...通訊裝置
628...資料儲存體
630...程式碼
638...高效能圖形電路
639...高效能圖形介面
652、654...PtP介面
660...系統記憶體
672、682...記憶體控制器中樞(MCH)
676、678、686、688、694、698...點對點介面電路
690...晶片組
692、696...介面
第1圖以方塊圖展示出一種多處理器系統,其中可使用本發明的至少一實施例;
第2圖展示出根據本發明一實施例之分享資源的一CPU與一GPU。
第3圖展示出根據本發明一實施例的一種3D圖形呈現管線。
第4圖展示出根據本發明一實施例之由多個處理器核心分享的一浮點邏輯組件。
第5圖以流程圖展示出根據本發明至少一實施例使用的多項操作。
第6圖展示出一種分享互連體系統,其中可使用本發明的至少一實施例。
第7圖展示出一種點對點互連體電腦系統,其中可使用本發明的至少一實施例。
201...CPU
205...GPU
210...共享儲存體
215...直接鏈結

Claims (30)

  1. 一種裝置,其包含:中央處理單元(CPU);耦合至該CPU的圖形處理單元(GPU);以及用以在該CPU與該GPU之間分享執行資源的邏輯,該邏輯用以將一或多個指令在該CPU與該GPU中的一個上排程,但卻為該CPU與該GPU的另一個之執行資源所執行。
  2. 如申請專利範圍第1項之裝置,其另包含用以在該CPU與該GPU之間傳遞頁面資訊的邏輯。
  3. 如申請專利範圍第1項之裝置,其中該邏輯包括用以儲存由該CPU與該GPU分享之資訊的共享記憶體資源。
  4. 如申請專利範圍第1項之裝置,其中該邏輯包括介於該CPU與該GPU之間而用以促進資訊之分享的直接鏈結。
  5. 如申請專利範圍第2項之裝置,其中該GPU包括欲由該CPU使用的浮點執行資源。
  6. 如申請專利範圍第2項之裝置,其中該CPU包括欲由該GPU使用的整數執行資源。
  7. 如申請專利範圍第1項之裝置,其中在該GPU上排程的指令將被移轉到該CPU,且該等經移轉指令的結果將被傳輸到該GPU。
  8. 如申請專利範圍第1項之裝置,其中在該CPU上 排程的指令將被移轉到該GPU,且該等經移轉指令的結果將被傳輸到該CPU。
  9. 一種系統,其包含:中央處理單元(CPU);耦合至該CPU的圖形處理單元(GPU);用以在該CPU與該GPU之間分享執行資源的邏輯,該邏輯用以將一或多個指令在該CPU與該GPU中的一個上排程,但卻為該CPU與該GPU的另一個之執行資源所執行;以及欲由該CPU或該GPU使用的系統記憶體。
  10. 如申請專利範圍第9項之系統,其另包含用以在該CPU與該GPU之間傳遞頁面資訊的邏輯。
  11. 如申請專利範圍第9項之系統,其中該邏輯包括用以儲存由該CPU與該GPU分享之資訊的共享記憶體資源。
  12. 如申請專利範圍第9項之系統,其中該邏輯包括介於該CPU與該GPU之間而用以促進資訊之分享的直接鏈結。
  13. 如申請專利範圍第10項之系統,其中該GPU包括欲由該CPU使用的浮點執行資源。
  14. 如申請專利範圍第10項之系統,其中該CPU包括欲由該GPU使用的整數執行資源。
  15. 如申請專利範圍第9項之系統,其中在該GPU上排程的指令將被移轉到該CPU,且該等經移轉指令的結 果將被傳輸到該GPU。
  16. 如申請專利範圍第9項之系統,其中在該CPU上排程的指令將被移轉到該GPU,且該等經移轉指令的結果將被傳輸到該CPU。
  17. 一種處理器,其包含:中央處理單元(CPU);耦合至該CPU的圖形處理單元(GPU);用以在該CPU與該GPU之間分享執行資源的邏輯,該邏輯用以將一或多個指令在該CPU與該GPU中的一個上排程,但卻為該CPU與該GPU的另一個之執行資源所執行;耦合至該CPU與該GPU而用以解碼該一或多個指令的解碼邏輯;用以儲存該一或多個指令的指令快取記憶體;以及用以排程該一或多個指令的排程邏輯。
  18. 如申請專利範圍第17項之處理器,其另包含用以在該CPU與該GPU之間傳遞頁面資訊的邏輯。
  19. 如申請專利範圍第17項之處理器,其中該邏輯包括用以儲存由該CPU與該GPU分享之資訊的共享記憶體資源。
  20. 如申請專利範圍第17項之處理器,其中該邏輯包括介於該CPU與該GPU之間而用以促進資訊之分享的直接鏈結。
  21. 如申請專利範圍第19項之處理器,其中該GPU 包括欲由該CPU使用的浮點執行資源。
  22. 如申請專利範圍第19項之處理器,其中該CPU包括欲由該GPU使用的整數執行資源。
  23. 如申請專利範圍第17項之處理器,其中在該GPU上排程的指令將被移轉到該CPU,且該等經移轉指令的結果將被傳輸到該GPU。
  24. 如申請專利範圍第17項之處理器,其中在該CPU上排程的指令將被移轉到該GPU,且該等經移轉指令的結果將被傳輸到該CPU。
  25. 如申請專利範圍第17項之處理器,其中該排程器邏輯包括用以排程整數指令的第一排程器邏輯、以及用以排程浮點指令的第二排程器邏輯。
  26. 如申請專利範圍第25項之處理器,其中該CPU與該GPU分享該第二排程器邏輯。
  27. 一種方法,其包含下列步驟:將指令在具有第一組執行資源的第一處理器上排程;把該指令從該第一處理器移轉到具有與該第一處理器非對稱之第二組執行資源的第二處理器;把因在該第二處理器上執行該指令而得的資訊傳輸到該第一處理器。
  28. 如申請專利範圍第27項之方法,其中該第一處理器為中央處理單元(CPU),且該第二處理器為圖形處理單元(GPU)。
  29. 如申請專利範圍第27項之方法,其中該第一處 理器為GPU,且該第二處理器為CPU。
  30. 如申請專利範圍第27項之方法,其另包含在該等第一與第二處理器之間傳遞分頁資訊。
TW099144933A 2009-12-31 2010-12-21 在中央處理單元與圖形處理單元間分享資源之技術 TWI520071B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/655,577 US8669990B2 (en) 2009-12-31 2009-12-31 Sharing resources between a CPU and GPU

Publications (2)

Publication Number Publication Date
TW201145172A TW201145172A (en) 2011-12-16
TWI520071B true TWI520071B (zh) 2016-02-01

Family

ID=44186959

Family Applications (2)

Application Number Title Priority Date Filing Date
TW099144933A TWI520071B (zh) 2009-12-31 2010-12-21 在中央處理單元與圖形處理單元間分享資源之技術
TW104137555A TWI620128B (zh) 2009-12-31 2010-12-21 在中央處理單元與圖形處理單元間分享資源之裝置與系統

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW104137555A TWI620128B (zh) 2009-12-31 2010-12-21 在中央處理單元與圖形處理單元間分享資源之裝置與系統

Country Status (5)

Country Link
US (2) US8669990B2 (zh)
JP (2) JP5484305B2 (zh)
CN (1) CN102117260B (zh)
DE (1) DE102010055267A1 (zh)
TW (2) TWI520071B (zh)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8669990B2 (en) * 2009-12-31 2014-03-11 Intel Corporation Sharing resources between a CPU and GPU
US8723877B2 (en) 2010-05-20 2014-05-13 Apple Inc. Subbuffer objects
US9519943B2 (en) * 2010-12-07 2016-12-13 Advanced Micro Devices, Inc. Priority-based command execution
US8830245B2 (en) * 2010-12-14 2014-09-09 Amazon Technologies, Inc. Load balancing between general purpose processors and graphics processors
GB201103699D0 (en) 2011-03-03 2011-04-20 Advanced Risc Mach Ltd Graphic processing
GB201103698D0 (en) * 2011-03-03 2011-04-20 Advanced Risc Mach Ltd Graphics processing
CN102323917B (zh) * 2011-09-06 2013-05-15 中国人民解放军国防科学技术大学 一种基于共享内存实现多进程共享gpu的方法
US20130159630A1 (en) * 2011-12-20 2013-06-20 Ati Technologies Ulc Selective cache for inter-operations in a processor-based environment
US9990287B2 (en) 2011-12-21 2018-06-05 Intel Corporation Apparatus and method for memory-hierarchy aware producer-consumer instruction
US9058201B2 (en) * 2011-12-28 2015-06-16 Intel Corporation Managing and tracking thread access to operating system extended features using map-tables containing location references and thread identifiers
US20140052965A1 (en) * 2012-02-08 2014-02-20 Uzi Sarel Dynamic cpu gpu load balancing using power
US9430807B2 (en) * 2012-02-27 2016-08-30 Qualcomm Incorporated Execution model for heterogeneous computing
US10255104B2 (en) * 2012-03-29 2019-04-09 Advanced Micro Devices, Inc. System call queue between visible and invisible computing devices
CN108681519B (zh) * 2012-03-30 2022-04-08 英特尔公司 用于从多线程发送请求至加速器的机制
US9864638B2 (en) * 2012-06-22 2018-01-09 Intel Corporation Techniques for accessing a graphical processing unit memory by an application
CN102890643B (zh) * 2012-07-26 2015-01-21 上海交通大学 基于应用效果即时反馈的显卡虚拟化下的资源调度系统
US9009419B2 (en) * 2012-07-31 2015-04-14 Advanced Micro Devices, Inc. Shared memory space in a unified memory model
US8938602B2 (en) * 2012-08-02 2015-01-20 Qualcomm Incorporated Multiple sets of attribute fields within a single page table entry
US9319254B2 (en) * 2012-08-03 2016-04-19 Ati Technologies Ulc Methods and systems for processing network messages in an accelerated processing device
US9218289B2 (en) * 2012-08-06 2015-12-22 Qualcomm Incorporated Multi-core compute cache coherency with a release consistency memory ordering model
US9373182B2 (en) * 2012-08-17 2016-06-21 Intel Corporation Memory sharing via a unified memory architecture
US9378572B2 (en) * 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
US8959298B2 (en) 2012-12-10 2015-02-17 Qualcomm Incorporated System and method for managing performance of a computing device having dissimilar memory types
US9092327B2 (en) 2012-12-10 2015-07-28 Qualcomm Incorporated System and method for allocating memory to dissimilar memory devices using quality of service
US9110795B2 (en) 2012-12-10 2015-08-18 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
US20150324287A1 (en) * 2013-01-09 2015-11-12 Freescale Semiconductor, Inc. A method and apparatus for using a cpu cache memory for non-cpu related tasks
CN103164839B (zh) * 2013-03-07 2019-06-21 华为技术有限公司 一种绘图方法、装置及终端
KR101442643B1 (ko) * 2013-04-30 2014-09-19 전자부품연구원 Cpu와 gpu 간의 협업 시스템 및 그 방법
CN105892931A (zh) * 2014-05-16 2016-08-24 上海京知信息科技有限公司 一种支持基于智能闪存缓存的异构cpu-gpu系统架构的操作系统原型
US10996959B2 (en) * 2015-01-08 2021-05-04 Technion Research And Development Foundation Ltd. Hybrid processor
JP2016162303A (ja) * 2015-03-03 2016-09-05 株式会社東芝 無線通信装置
US9704217B2 (en) 2015-04-20 2017-07-11 Intel Corporation Apparatus and method for non-uniform frame buffer rasterization
JP6345627B2 (ja) * 2015-05-20 2018-06-20 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および情報処理方法
US10956154B2 (en) 2015-07-07 2021-03-23 Samsung Electronics Co., Ltd. Signal processing device and method
CN107124286B (zh) * 2016-02-24 2020-05-26 深圳市知穹科技有限公司 一种海量数据高速处理、交互的系统及方法
KR102205087B1 (ko) * 2016-06-17 2021-01-20 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 공유형 머신 러닝 데이터 구조
US10310908B2 (en) 2016-08-19 2019-06-04 International Business Machines Corporation Dynamic usage balance of central processing units and accelerators
US10580189B2 (en) * 2016-09-16 2020-03-03 Intel Corporation Apparatus and method for optimized ray tracing
US10203988B2 (en) 2016-10-13 2019-02-12 International Business Machines Corporation Adaptive parallelism of task execution on machines with accelerators
KR102657587B1 (ko) * 2016-11-21 2024-04-15 삼성전자주식회사 커브 렌더링을 수행하는 방법 및 장치.
US10776144B2 (en) 2017-01-08 2020-09-15 International Business Machines Corporation Address space management with respect to a coherent accelerator processor interface architecture
US10459817B2 (en) * 2017-01-18 2019-10-29 International Business Machines Corporation Evaluating performance improvement of executing instructions in a first processor over execution on a second processor
US10409614B2 (en) * 2017-04-24 2019-09-10 Intel Corporation Instructions having support for floating point and integer data types in the same register
US10474458B2 (en) 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
US11237872B2 (en) * 2017-05-23 2022-02-01 Kla-Tencor Corporation Semiconductor inspection and metrology systems for distributing job among the CPUs or GPUs based on logical image processing boundaries
US10685473B2 (en) * 2017-05-31 2020-06-16 Vmware, Inc. Emulation of geometry shaders and stream output using compute shaders
US10585703B2 (en) 2017-06-03 2020-03-10 Apple Inc. Dynamic operation allocation for neural networks
US10552161B2 (en) 2017-06-21 2020-02-04 International Business Machines Corporation Cluster graphical processing unit (GPU) resource sharing efficiency by directed acyclic graph (DAG) generation
KR102403379B1 (ko) * 2017-09-12 2022-06-02 주식회사 코코링크 다중 gpu간 데이터 공유 방법
US10732694B2 (en) 2017-09-22 2020-08-04 Qualcomm Incorporated Power state control of a mobile device
CN109726005B (zh) * 2017-10-27 2023-02-28 伊姆西Ip控股有限责任公司 用于管理资源的方法、服务器系统和计算机可读介质
WO2020045269A1 (ja) * 2018-08-28 2020-03-05 tonoi株式会社 システム、情報処理方法、及びプログラム
US11900157B2 (en) * 2018-09-19 2024-02-13 Intel Corporation Hybrid virtual GPU co-scheduling
CN112673347A (zh) * 2018-10-19 2021-04-16 日本电信电话株式会社 数据处理系统、中央运算处理装置和数据处理方法
CN111127293B (zh) * 2018-10-31 2024-04-26 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和计算机程序产品
BR112021016106A2 (pt) 2019-03-15 2021-11-09 Intel Corp Processador gráfico de propósito geral, método e sistema de processamento de dados
US20220180467A1 (en) 2019-03-15 2022-06-09 Intel Corporation Systems and methods for updating memory side caches in a multi-gpu configuration
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
CN111030747B (zh) * 2019-11-22 2021-08-31 中国科学院国家空间科学中心 一种基于FPGA的SpaceFibre节点IP核
US11579942B2 (en) * 2020-06-02 2023-02-14 Vmware, Inc. VGPU scheduling policy-aware migration
CN112199149A (zh) * 2020-10-16 2021-01-08 维沃移动通信有限公司 界面渲染方法、装置及电子设备
US11947941B2 (en) 2021-08-24 2024-04-02 Red Hat, Inc. Dynamic computation offloading to graphics processing unit

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63271537A (ja) * 1987-04-28 1988-11-09 Seiko Epson Corp 割り込み制御装置
JP2845857B2 (ja) * 1997-04-01 1999-01-13 コナミ株式会社 画像の半透明表示装置,半透明表示方法,及びコンピュータプログラムを記録した機械読取り可能な記録媒体
JP2001067237A (ja) * 1999-08-25 2001-03-16 Nec Corp 計算機システム及びその処理方法
US6868481B1 (en) * 2000-10-31 2005-03-15 Hewlett-Packard Development Company, L.P. Cache coherence protocol for a multiple bus multiprocessor system
US6891543B2 (en) 2002-05-08 2005-05-10 Intel Corporation Method and system for optimally sharing memory between a host processor and graphics processor
JP2004171234A (ja) * 2002-11-19 2004-06-17 Toshiba Corp マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
US6947051B2 (en) * 2003-02-18 2005-09-20 Microsoft Corporation Video memory management
US20080094402A1 (en) * 2003-11-19 2008-04-24 Reuven Bakalash Computing system having a parallel graphics rendering system employing multiple graphics processing pipelines (GPPLS) dynamically controlled according to time, image and object division modes of parallel operation during the run-time of graphics-based applications running on the computing system
US20050237329A1 (en) 2004-04-27 2005-10-27 Nvidia Corporation GPU rendering to system memory
US7490215B2 (en) * 2004-12-22 2009-02-10 Intel Corporation Media memory system and method for providing concurrent memory access to a plurality of processors through separate translation table information
US7839854B2 (en) * 2005-03-08 2010-11-23 Thomas Alexander System and method for a fast, programmable packet processing system
US7743233B2 (en) * 2005-04-05 2010-06-22 Intel Corporation Sequencer address management
US8341624B1 (en) * 2006-09-28 2012-12-25 Teradici Corporation Scheduling a virtual machine resource based on quality prediction of encoded transmission of images generated by the virtual machine
US7769983B2 (en) 2005-05-18 2010-08-03 Qualcomm Incorporated Caching instructions for a multiple-state processor
US7818806B1 (en) * 2005-11-08 2010-10-19 Nvidia Corporation Apparatus, system, and method for offloading pattern matching scanning
JP2008097358A (ja) * 2006-10-12 2008-04-24 Toyota Infotechnology Center Co Ltd 分散処理システム
JP2008234191A (ja) * 2007-03-19 2008-10-02 Toshiba Corp ハードウエアモニタ管理装置及びハードウエアモニタ機能の実行方法
KR100864834B1 (ko) * 2007-04-30 2008-10-23 한국전자통신연구원 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송장치 및 방법
US8861591B2 (en) * 2007-05-11 2014-10-14 Advanced Micro Devices, Inc. Software video encoder with GPU acceleration
US8230425B2 (en) 2007-07-30 2012-07-24 International Business Machines Corporation Assigning tasks to processors in heterogeneous multiprocessors
US20090160863A1 (en) * 2007-12-21 2009-06-25 Michael Frank Unified Processor Architecture For Processing General and Graphics Workload
KR101520067B1 (ko) * 2008-10-02 2015-05-13 삼성전자 주식회사 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치
CN101526934A (zh) * 2009-04-21 2009-09-09 浪潮电子信息产业股份有限公司 一种gpu与cpu复合处理器的组建方法
JP5035299B2 (ja) * 2009-06-15 2012-09-26 株式会社日立製作所 マルチコアプロセッサ制御方法、その計算機システム、及び管理計算機のプログラム
US8669990B2 (en) * 2009-12-31 2014-03-11 Intel Corporation Sharing resources between a CPU and GPU
US8723877B2 (en) 2010-05-20 2014-05-13 Apple Inc. Subbuffer objects
CN102323917B (zh) 2011-09-06 2013-05-15 中国人民解放军国防科学技术大学 一种基于共享内存实现多进程共享gpu的方法
US20140052965A1 (en) 2012-02-08 2014-02-20 Uzi Sarel Dynamic cpu gpu load balancing using power

Also Published As

Publication number Publication date
TWI620128B (zh) 2018-04-01
US20140078159A1 (en) 2014-03-20
JP5918739B2 (ja) 2016-05-18
JP2011175624A (ja) 2011-09-08
CN102117260B (zh) 2017-06-27
US10181171B2 (en) 2019-01-15
CN102117260A (zh) 2011-07-06
US20110157195A1 (en) 2011-06-30
JP2014053033A (ja) 2014-03-20
TW201614493A (en) 2016-04-16
JP5484305B2 (ja) 2014-05-07
US8669990B2 (en) 2014-03-11
DE102010055267A1 (de) 2011-07-28
TW201145172A (en) 2011-12-16

Similar Documents

Publication Publication Date Title
TWI520071B (zh) 在中央處理單元與圖形處理單元間分享資源之技術
US10552201B2 (en) Software-assisted instruction level execution preemption
TWI498819B (zh) 執行成型記憶體存取作業的系統和方法
US10217183B2 (en) System, method, and computer program product for simultaneous execution of compute and graphics workloads
US9606808B2 (en) Method and system for resolving thread divergences
US20130198760A1 (en) Automatic dependent task launch
US9710306B2 (en) Methods and apparatus for auto-throttling encapsulated compute tasks
US9921873B2 (en) Controlling work distribution for processing tasks
US20110072177A1 (en) Virtual channels for effective packet transfer
TW201333829A (zh) 分配運算工作的參考運數器
US9626191B2 (en) Shaped register file reads
US8195858B1 (en) Managing conflicts on shared L2 bus
CN101561754B (zh) 免划分的多插槽存储器系统架构
US20130132711A1 (en) Compute thread array granularity execution preemption
US8321618B1 (en) Managing conflicts on shared L2 bus
US9262348B2 (en) Memory bandwidth reallocation for isochronous traffic
US8570916B1 (en) Just in time distributed transaction crediting
US20140136793A1 (en) System and method for reduced cache mode
US20140095759A1 (en) Replicated stateless copy engine
US9665920B1 (en) Simultaneous execution of compute and graphics applications

Legal Events

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