用標準處理單元的圖形處理單元和圖形處理單元構(gòu)建方法
【專利摘要】公開了采用通用處理單元作為圖形管線的可編程功能單元以及制造圖形處理單元的方法。在一個實施例中,圖形管線包括:(1)加速器,(2)耦連到加速器中的每一個的輸入輸出接口和(3)耦連到輸入輸出接口并配置為圖形管線的可編程功能單元的通用處理單元,通用處理單元配置為經(jīng)由輸入輸出接口發(fā)出矢量指令到用于可編程功能單元的矢量數(shù)據(jù)路徑。
【專利說明】用標準處理單元的圖形處理單元和圖形處理單元構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001]本申請總地針對圖形處理單元(GPU),并且更具體地,針對GPU的部件。
【背景技術(shù)】
[0002]在傳統(tǒng)的GPU中,固定功能單元靜態(tài)地連接在一起以形成固定功能圖形管線。每個固定功能單元或固定功能級的輸出數(shù)據(jù)包設(shè)計為與下游的固定功能單元的輸入數(shù)據(jù)包相匹配。更靈活的方法是在軟件中定義圖形管線為運行在可編程處理器上的程序。在這類管線中,利用經(jīng)由規(guī)則的通用存儲器系統(tǒng)所移動的數(shù)據(jù)而在軟件中實現(xiàn)功能級。
【發(fā)明內(nèi)容】
[0003]一方面,公開了一種圖形管線。在一個實施例中,圖形管線包括:(I)加速器,(2)耦連到加速器中的每一個的輸入輸出接口以及(3)耦連到輸入輸出接口并配置為圖形管線的可編程功能單元的通用處理單元,該通用處理單元配置為經(jīng)由輸入輸出接口發(fā)出矢量指令到用于可編程功能單元的矢量數(shù)據(jù)路徑。
[0004]另一方面,公開了一種裝置。在一個實施例中,該裝置包括:(1)標量處理核心,其編程為仿真圖形管線的功能單元以及(2)存儲器,其直接耦連到標量處理核心并且包括配置為存儲用于圖形管線的加速器的輸入和輸出操作數(shù)的圖形寄存器。
[0005]在又一方面,公開了一種制造圖形處理單元的方法。在一個實施例中,該方法包括:(I)將固定功能單元耦連到輸入輸出接口,(2)將通用處理單元耦連到輸入輸出接口,
(3)對通用處理單元進行編程以仿真圖形管線的功能單元以及(4)將矢量數(shù)據(jù)路徑耦連到輸入輸出接口,其中矢量數(shù)據(jù)路徑與通用處理單元功能單元相關(guān)聯(lián)。
【專利附圖】
【附圖說明】
[0006]現(xiàn)在結(jié)合附圖參考以下描述,其中:
[0007]圖1是在其中可以實現(xiàn)本公開的一個或多個方面的計算系統(tǒng)的實施例的框圖;
[0008]圖2示出了根據(jù)本公開的原理所構(gòu)建的圖形管線的實施例的框圖;以及
[0009]圖3示出了根據(jù)本公開的原理所實行的制造圖形管線的方法的流程圖。
【具體實施方式】
[0010]在具有軟件定義的功能單元的管線中,定制處理器通常用來實現(xiàn)可編程功能級以及經(jīng)建立以處理并行代碼。因此,定制處理器要求必要的修改和關(guān)聯(lián)的代價以實現(xiàn)具體配置為處理并行代碼的處理器。雖然專用處理器非常適合于高度并行的代碼,但是其不適合于標量代碼。
[0011]因此,本文所公開的是采用通用處理單元來實現(xiàn)管線的功能級的可編程圖形管線??删幊虉D形管線有利地將功能級的矢量數(shù)據(jù)路徑作為加速器并且將矢量數(shù)據(jù)路徑附加到在圖形管線的級間提供可編程的、非靜態(tài)的連接的輸入輸出接口。通用處理單元是具有適合于處理標量代碼的標量核心的標準處理單元。例如,通用處理單元可以是標準CPU,諸如ARM A9/A15。如本文所公開的,通用處理單元還包括處理器存儲器。
[0012]加速器是用來對圖形管線中的處理進行加速的硬件實現(xiàn)單元。加速器的示例是固定功能光柵器或紋理單元。因此,本公開提供具有通用處理單元的圖形管線架構(gòu),該通用處理單元將矢量指令作為規(guī)則圖形請求發(fā)出到輸入輸出接口中。請求是將由加速器之一所實施的工作請求。因此,可以經(jīng)由將通用處理單元連接到輸入輸出接口的控制總線來發(fā)出矢量指令。在一個實施例中,輸入輸出接口是如由Albert Meixner所發(fā)明的、申請?zhí)枮?13/722,901、題目為 “AN INPUT OUTPUT CONNECTOR FOR ACCESSING GRAPHICS FIXEDFUNCTION UNITS IN A SOFTWARE-DEFINED PIPELINE AND A METHOD OF OPERATING APIPELINE”的專利申請中所公開的輸入輸出連接器,其與本公開同日提交并作為參考并入本文。
[0013]通用處理單元包括并入本文的、具有圖形寄存器的處理器存儲器,該圖形寄存器配置為包括用于矢量數(shù)據(jù)路徑的輸入和輸出操作數(shù)以及圖形管線的其他加速器。在一個實施例中,處理器存儲器是L2高速緩存。L2或2級高速緩存是通用處理單元的多級存儲架構(gòu)的一部分。在一些實施例中將處理器存儲器建立在通用處理單元的主板中。處理器存儲器可以是隨機存取存儲器(RAM)或另一類型的非易失性存儲器。處理器存儲器用來最小化通用處理單元上的延遲損失用于在仍然在處理單元的處理核心和矢量路徑之間提供大量帶寬的同時,共享將通用處理單元連接到輸入輸出接口的數(shù)據(jù)路徑。
[0014]處理器L2高速緩存的大小允許其中所包括的圖形寄存器具有大數(shù)目的活動矢量寄存器。在一些實施例中,L2高速緩存的大小在大約256KB到大約2MB。在這些實施例中,大約一半的高速緩存用于寄存器,這樣64K到512K的寄存器。在一個實施例中,在矢量數(shù)據(jù)路徑237和239中每快速存儲器訪問(FMA)單元至少32個寄存器的最小值。因此,所公開的可編程圖形管線使得大數(shù)目的圖形線程能夠容忍延遲。
[0015]通用處理單元不需要是大規(guī)模地多線程的。在一個實施例中,通用處理單元設(shè)計為支持每協(xié)作線程陣列(CTA)—個硬件線程上下文(總共4-8個)以運行每CTA管線仿真代碼而不需要軟件上下文切換。
[0016]在一個實施例中,由輸入輸出接口按塊訪問存儲在處理器存儲器上的數(shù)據(jù),例如輸入和輸出操作數(shù),來以低成本最大化帶寬。在一個實施例中,塊大小在64字節(jié)到256字節(jié)的范圍內(nèi)。
[0017]在本文所公開的一個實施例中,用于可編程圖形管線的處理單元的暫存(scratch) RAM還實現(xiàn)為加速器。因此,多庫存儲器作為附加加速器提供以支持用于處理單元的暫存RAM,該處理單元要求高度發(fā)散的訪問。在一些實施例中,圖形管線的紋理級可以通過使用用于其數(shù)據(jù)庫的暫存RAM加速器來最小化成本,該數(shù)據(jù)庫也要求高度發(fā)散的訪問。
[0018]本文所提供的圖形管線架構(gòu)有益地允許建立GPU的較低進入障礙。因為采用通用處理單元,所以避免了建立定制處理器所涉及的細節(jié)。此外,所創(chuàng)建的加速器大多數(shù)是無狀態(tài)的并且比全定制處理器更容易設(shè)計和檢驗。
[0019]考慮可編程方面,管線仿真代碼的大部分將運行在標準標量核心上,該標準標量核心降低所需的諸如編譯器、調(diào)試器和分析器的基礎(chǔ)設(shè)施的量并且使得比在定制標量核心上更容易達到可接受的性能。
[0020]此外,所公開的架構(gòu)移除或至少減少在通用處理單元和GPU之間的障礙。因為通用處理單元具有對存儲在處理器存儲器中的所有矢量寄存器的直接訪問權(quán),所以可以在幾個周期中進行在標量和數(shù)據(jù)并行部分之間的切換。作為附加的優(yōu)勢,通用處理單元將具有對耦連到輸入輸出接口的所有加速器的訪問權(quán)并且可以將它們直接用在其他的標量代碼中。
[0021]在描述新穎的可編程功能單元的各實施例和與其相關(guān)聯(lián)的方法之前,將描述在其內(nèi)可以將通用處理單元用在GPU中的計算系統(tǒng)。
[0022]圖1是在其中可以實現(xiàn)本發(fā)明的一個或多個方面的計算系統(tǒng)100的一個實施例的框圖。計算系統(tǒng)100包括系統(tǒng)數(shù)據(jù)總線132、中央CPU102、輸入設(shè)備108、系統(tǒng)存儲器104、圖形處理子系統(tǒng)106和顯示設(shè)備110。在替代實施例中,CPU102、圖形處理子系統(tǒng)106的一部分、系統(tǒng)數(shù)據(jù)總線132或其任意組合可以集成到單個處理單元中。進一步地,圖形處理子系統(tǒng)106的功能可以包括在芯片集中或在一些其他類型的專用處理單元或協(xié)處理器中。
[0023]如所示的,系統(tǒng)數(shù)據(jù)總線132連接CPU102、輸入設(shè)備108、系統(tǒng)存儲器104和圖形處理子系統(tǒng)106。在替代實施例中,系統(tǒng)存儲器100可以直接連接到CPU102。CPU102接收來自輸入設(shè)備108的用戶輸入、執(zhí)行存儲在系統(tǒng)存儲器104中的編程指令、對存儲在系統(tǒng)存儲器104中的數(shù)據(jù)進行操作以及將指令和/或數(shù)據(jù)(即,待完成的工作或任務(wù))發(fā)送到圖形處理單元116以完成。系統(tǒng)存儲器104通常包括用來存儲用于由CPU102和圖形處理子系統(tǒng)106處理的編程指令和數(shù)據(jù)的動態(tài)隨機存取存儲器(DRAM)。圖形處理子系統(tǒng)106從CPU102接收所傳送的工作并采用其圖形處理單元(GPU) 116處理工作。在該實施例中,GPUl 16完成工作以渲染并在顯示設(shè)備110上顯示圖形圖像。在其他實施例中,GPUl 16或圖形處理子系統(tǒng)106作為整體可以用于非圖形處理。
[0024]還如所示的,系統(tǒng)存儲器104包括應(yīng)用程序112、應(yīng)用編程接口(API) 114和圖形處理單元(GPU)驅(qū)動程序115。應(yīng)用程序112生成對API114的調(diào)用以通常以圖形圖像序列的形式產(chǎn)生期望的結(jié)果集。
[0025]圖形處理子系統(tǒng)106包括GPU116、片上GPU存儲器122、片上GPU數(shù)據(jù)總線136、GPU本地存儲器120和GPU數(shù)據(jù)總線134。GPUl 16配置為經(jīng)由片上GPU數(shù)據(jù)總線136與片上GPU存儲器122通信以及經(jīng)由GPU數(shù)據(jù)總線134與GPU本地存儲器120通信。GPU116可以接收由CPU102所傳送的指令、處理指令以渲染圖形數(shù)據(jù)和圖像、以及將這些圖像存儲在GPU本地存儲器120中。隨后,GPUl 16可以在顯示設(shè)備110上顯示存儲在GPU本地存儲器120中的某些圖形圖像。
[0026]GPU116包括加速器117、IO接口 118和通用處理單元119。加速器117是加速通用處理單元119的處理的、硬件實現(xiàn)的處理塊或單元。加速器117包括具有配置為實施專用功能的電路的、常規(guī)的固定功能單元。加速器117還包括與通用處理單元119相關(guān)聯(lián)的矢量數(shù)據(jù)路徑和多庫存儲器。
[0027]IO接口 118配置為將通用處理單元119耦連到加速器117中的每一個并提供在軟件和硬件格式之間的必要轉(zhuǎn)換以允許在通用處理單元119和加速器117之間的請求和響應(yīng)的通信。IO接口 118提供具有動態(tài)定義的級間連接而非靜態(tài)連接的可編程管線。IO接口118可以在通用處理單元119和加速器117之間傳達各狀態(tài)。輸入和輸出也在通用處理單元119的軟件友好格式和加速器的硬件友好格式之間轉(zhuǎn)譯。此外,IO接口 118在軟件友好格式和硬件友好格式之間轉(zhuǎn)譯狀態(tài)。在一個實施例中,IO接口有利地在跨所有加速器117和通用處理單元119而共享的單個處理塊中提供所有上述功能。因此,IO接口有利地提供包括將通用處理單元119動態(tài)連接到加速器117所必要的邏輯的單個接口以形成圖形管線并管理其間的指令級通信。IO連接器包括提供雙向連接的多個部件,雙向連接包括到通用處理單元119的標量處理器核心的雙向控制連接和到通用處理單元119的處理器存儲器的雙向數(shù)據(jù)連接。
[0028]通用處理單元119是具有適合于處理標量代碼的標量核心的標準處理器。通用處理單元119還包括直接連接到標量處理器核心的處理器存儲器。通過直接連接,處理器存儲器實現(xiàn)為通用處理單元119的一部分使得標量處理器核心可以在不采用IO接口 118的情況下與其通信。因此,暫時轉(zhuǎn)向圖2,處理器存儲器214和CPU210 二者均是通用處理單元119的一部分并且CPU210不通過IO接口 118訪問處理器存儲器214。在一個實施例中,CPU102可以實現(xiàn)為用于GPU116的通用處理單元并且經(jīng)由系統(tǒng)數(shù)據(jù)總線132和IO接口118與加速器通信。因此,CPU102可以與通用處理單元119 一起使用或者代替通用處理單元119使用。
[0029]在一些實施例中通用處理單元119完全取代CPU102而不是如所示出的共存。在該配置中,在GPU本地存儲器120和系統(tǒng)存儲器104之間沒有區(qū)別。其用一個共享存儲器所取代。例如,可以移除CPU102和系統(tǒng)存儲器104并且應(yīng)用程序112、API114和GPU驅(qū)動程序115駐留在GPU本地存儲器120中并且由通用處理單元119執(zhí)行。以下關(guān)于圖2來論述根據(jù)本公開的原理的圖形管線的實施例的更多細節(jié)。
[0030]GPUl 16可以配備任意量的片上GPU存儲器122和GPU本地存儲器120,包括一個也沒有,并且可以以任意組合使用片上GPU存儲器122、GPU本地存儲器120和系統(tǒng)存儲器104來進行存儲器操作。
[0031]片上GPU存儲器122配置為包括GPU編程代碼128和片上緩沖區(qū)130??梢越?jīng)由系統(tǒng)數(shù)據(jù)總線132將GPU編程128從GPU驅(qū)動程序115傳送到片上GPU存儲器122。
[0032]GPU本地存儲器120通常包括比較便宜的片外動態(tài)隨機存取存儲器(DRAM)并且還用來存儲由GPU116所使用的數(shù)據(jù)和編程。如所示的,GPU本地存儲器120包括幀緩沖區(qū)126。幀緩沖區(qū)126存儲用于可以用來驅(qū)動顯示設(shè)備110的至少一個二維表面的數(shù)據(jù)。此夕卜,幀緩沖區(qū)126可以包括多于一個的二維表面以使得GPU116可以渲染到一個二維表面,同時第二二維表面用來驅(qū)動顯示設(shè)備110。
[0033]顯示設(shè)備110是能夠播送與輸入數(shù)據(jù)信號相對應(yīng)的可視圖像的一個或多個輸出設(shè)備。例如,可以使用陰極射線管(CRT)監(jiān)視器、液晶顯示器或任意其他合適的顯示系統(tǒng)來建立顯示設(shè)備。通常通過掃描出存儲在幀緩沖區(qū)126中的圖像數(shù)據(jù)的一幀或多幀的內(nèi)容來生成到顯示設(shè)備110的輸入數(shù)據(jù)信號。
[0034]已經(jīng)描述了在其內(nèi)可以體現(xiàn)或?qū)嵭兴_的可編程圖形管線和方法的計算系統(tǒng),將在GPU200的環(huán)境下描述可編程圖形管線的特定實施例。
[0035]圖2示出了根據(jù)本公開的原理所構(gòu)建的可編程圖形管線200的實施例的框圖??删幊虉D形管線200包括通用處理單元210、IO接口 220和加速器230。
[0036]通用處理單元210是具有處理核心212和處理器存儲器214的標準處理單元。處理器核心212是配置為處理標量代碼的標量核心。處理器存儲器214并入為通用處理單元210的一部分。處理器存儲器214配置為存儲將由處理核心212所處理的數(shù)據(jù)或?qū)l(fā)送到加速器230用于處理的數(shù)據(jù)。在一個實施例中,處理器存儲器214是L2高速緩存。在不同實施例中,處理器存儲器214是隨機存取存儲器(RAM)或暫存器。
[0037]處理器存儲器214包括圖形寄存器堆215。圖形寄存器堆215配置為包括加速器數(shù)據(jù),該加速器數(shù)據(jù)包括用于加速器230的輸入和輸出操作數(shù)。圖形寄存器堆215配置為包括加速器230的活動矢量堆。活動矢量是目前正在圖形管線200中加以處理的矢量或矢量數(shù)據(jù)。
[0038]通用處理單元210經(jīng)由兩個雙向連接而連接到IO接口 220。如圖2所示,處理核心212經(jīng)由雙向控制連接213連接到IO接口 220并且處理器存儲器214經(jīng)由雙向數(shù)據(jù)連接217連接到IO接口 220。在一個實施例中,雙向控制連接213和雙向數(shù)據(jù)連接217是大小確定的、位置確定的并且端接的以至少提供本文所描述的與其相關(guān)聯(lián)的通信的常規(guī)連接器。
[0039]IO接口 220是將通用處理單元210連接到加速器230以形成圖形管線的單個接口。IO接口 220包括配置為在通用處理單元210和加速器230之間提供非永久性的連接并且提供適當轉(zhuǎn)換以允許對其間的請求和響應(yīng)進行通信和處理的多個部件。在一個實施例中,IO接口 220提供在通用處理單元210和加速器230之間的動態(tài)連接用于由通用處理單元210所生成的每個請求。請求是對數(shù)據(jù)實施動作或工作的指令或命令。由處理核心212生成請求用于加速器230之一實施。作為請求的結(jié)果由特定加速器230之一生成或提供響應(yīng)。與每個請求相關(guān)聯(lián)的是加速器230用來處理請求的參數(shù)和狀態(tài)信息。在一些實施例中,IO接口 220是圖1的IO接口 118。
[0040]加速器230是配置為加速圖形管線200的處理的硬件實現(xiàn)的單元。加速器230包括三個固定功能單元231、232和233。固定功能單元231、232、233是通常在GPU中所找到的固定功能單元。固定功能單元231、232、233中的每一個配置有專用于實施圖形管線的特定功能的必要電路。在一個實施例中,固定功能單元231、232和233分別是幾何協(xié)助級、表面協(xié)助級和紋理級。本領(lǐng)域技術(shù)人員將理解可以采用其他類型的固定功能單元作為加速器。
[0041]加速器230還包括多庫存儲器235、表示為237的矢量數(shù)據(jù)路徑A和表示為239的矢量數(shù)據(jù)路徑B。與實現(xiàn)在配置為操作高度并行代碼的專用處理器上的可編程功能單元相反,通用處理單元210不包括矢量數(shù)據(jù)路徑或暫存RAM。相反,這些部件的功能已經(jīng)放置在可編程處理器之外并且作為加速器以固定格式進行放置。因此,處理核心212將矢量指令作為規(guī)則圖形請求發(fā)出到特定矢量數(shù)據(jù)路徑,即矢量數(shù)據(jù)路徑A237或矢量數(shù)據(jù)路徑B239。經(jīng)由雙向控制連接213將矢量指令傳達到IO接口 220。IO接口 220將軟件格式矢量指令轉(zhuǎn)譯為用于適當矢量數(shù)據(jù)路徑的硬件格式并且經(jīng)由具體專用于單獨一個加速器230的加速器連接來向其傳達矢量指令。專用加速器連接在圖2中一般表示為元件240并且具體表示為元件 241、242、243、244、245 和 246。
[0042]在圖2中,加速器中的兩個,即固定功能單元233和多庫存儲器235經(jīng)由單元連接器248和單元連接器249直接耦連在一起。單元連接器248、249提供在兩個不同加速器230之間的訪問。對于可編程圖形管線200,單元連接器248、249提供通信路徑以用多庫存儲器235傳送和接收數(shù)據(jù)。因此,單元連接器248、249可以用來通過允許由固定功能單元233共享多庫存儲器235來減少或最小化圖形管線的成本。例如,如上所述,固定功能單元233可以是通常要求存儲器允許高度發(fā)散的訪問的紋理級。利用單元連接器248、249,紋理級可以將多庫存儲器235用于其紋理高速緩存數(shù)據(jù)庫。在一個實施例中,多庫存儲器235可以是配置為用于高度發(fā)散的訪問的暫存RAM。在一個實施例中,單元連接器248、249和專用加速器連接240是大小確定的、位置確定的并且端接的以至少提供本文所描述的與其相關(guān)聯(lián)的通信的常規(guī)連接器。
[0043]圖3示出了根據(jù)本公開的原理所實行的制造圖形管線的方法300的流程圖。產(chǎn)生的圖形管線可以是例如圖2的可編程圖形管線200或GPU116的圖形管線。方法300始于步驟305。
[0044]在步驟310,固定功能單元耦連到輸入輸出接口。輸入輸出接口可以是IO接口 118或IO接口 220。在一個實施例中,多個固定功能單元耦連到輸入輸出接口。固定功能單元中的每一個可以是常規(guī)的固定功能單元。
[0045]在步驟320中,通用處理單元耦連到輸入輸出接口。在步驟330中,對通用處理單元進行編程以仿真圖形管線的功能單元。通用處理單元包括處理核心和處理器存儲器。在一個實施例中,處理核心是標量核心并且處理器存儲器是L2高速緩存。雙向控制和數(shù)據(jù)連接可以用來將輸入輸出接口耦連到通用處理單元。
[0046]在步驟340中,處理器存儲器配置為用于圖形管線的圖形寄存器。在一個實施例中,僅處理器存儲器的一部分配置為圖形寄存器。
[0047]在步驟350中,矢量數(shù)據(jù)路徑耦連到輸入輸出接口。矢量數(shù)據(jù)路徑是與通用處理單元功能單元相關(guān)聯(lián)的硬件實現(xiàn)的加速器。從可編程處理單元的處理器核心移出矢量處理允許現(xiàn)成的CPU用于可編程功能單元。因此,可以用CPU取代流多處理器。之后方法300在步驟330結(jié)束。
[0048]所公開的架構(gòu)提供許多優(yōu)勢,包括建立GPU的較低進入障礙。因為架構(gòu)可以采用現(xiàn)有的CPU,所以可以避免建立定制處理器所涉及的許多并發(fā)情況和細節(jié)。加速器大多是無狀態(tài)的并且比全處理器更容易設(shè)計和檢驗。在軟件方面,管線仿真代碼的大部分可以運行在標準標量核心上,該標準標量核心降低所需的基礎(chǔ)設(shè)施(編譯器/調(diào)試器/分析器)的量并使得比定制標量核心更容易達到可接受的性能。
[0049]在更加技術(shù)的方面,所建議的架構(gòu)可以移除或至少減少在CPU和GPU之間的障礙。因為CPU具有對所有矢量寄存器的直接訪問權(quán),所以將在幾個周期中進行在標量和數(shù)據(jù)并行部分之間的切換。作為附帶優(yōu)勢,CPU將具有對所有加速器的訪問權(quán)并且可以將它們直接用在其他的標量代碼中。
[0050]由于在所公開的架構(gòu)中部件的松散耦連,所以設(shè)計是高度模塊化的。對除相同的圖形部件之外的CPU部分的一些修改(增加控制總線)和對除相同的圖形部件之外的存儲器系統(tǒng)的一些修改(增加數(shù)據(jù)總線到L2),可以連接到不同的CPU實現(xiàn)方案以命中不同的性能比。所公開的架構(gòu)提供具有松散耦連的矢量和固定功能加速器的未經(jīng)修改的或大部分未經(jīng)修改的核心。在一些實施例中,修改包括增加控制總線以發(fā)送命令到加速器并接收響應(yīng)。可以使用現(xiàn)有存儲器實現(xiàn)該功能。然而專用控制總線可提高性能。修改還可以包括將高速緩存的寄存器釘住在合適的位置并阻止其被驅(qū)逐。[0051]雖然已經(jīng)對本文所公開的方法進行描述并且參考按特定順序所實施的特定步驟加以示出,但是應(yīng)該理解這些步驟可以合并、細分或重新排序以形成等價的方法,而不脫離本公開的教導。因此,除非本文特別指示,步驟的順序或分組不是本公開的限制。
[0052]上述裝置、系統(tǒng)或方法的一部分可以由諸如常規(guī)的各種數(shù)字數(shù)據(jù)處理器或計算機所體現(xiàn)或?qū)嵤渲杏嬎銠C可以經(jīng)編程或存儲軟件指令序列的可執(zhí)行程序以實施方法步驟中的一個或多個。這類程序的軟件指令可以代表算法并且以機器可執(zhí)行的形式在非暫時性數(shù)字數(shù)據(jù)存儲介質(zhì)上被編碼,非暫時性數(shù)字數(shù)據(jù)存儲介質(zhì)例如磁盤或光盤、隨機存取存儲器(RAM)、磁性硬盤、閃存、和/或只讀存儲器(R0M),以使得各種類型的數(shù)字數(shù)據(jù)處理器或計算機能夠?qū)嵤┥鲜龇椒ǖ囊粋€或多個中的一個、多個或所有步驟或者能夠?qū)嵤┍疚乃龅难b置的功能。如關(guān)于所公開的實施例所論述的,采用具有適合于處理標量代碼的標量核心的通用處理單元。
[0053]所公開的實施例的一部分可以與具有非暫時性計算機可讀介質(zhì)的計算機存儲產(chǎn)品相關(guān),非暫時性計算機可讀介質(zhì)其上具有程序代碼用于實施體現(xiàn)裝置、系統(tǒng)的一部分或?qū)嵭斜疚乃U述的方法步驟的各種計算機實現(xiàn)的操作。本文所使用的非暫時性是指除暫時的、傳播的信號之外的所有計算機可讀介質(zhì)。非暫時性計算機可讀介質(zhì)的示例包括但不限于:諸如硬盤、軟盤和磁帶的磁性介質(zhì);諸如CD-ROM盤的光學介質(zhì);諸如軟光盤的磁光介質(zhì);以及特別配置為存儲并執(zhí)行程序代碼的硬件設(shè)備,諸如ROM和RAM設(shè)備。程序代碼的示例既包括機器代碼又包括文件,該機器代碼諸如由編譯器所產(chǎn)生,該文件包含可以由計算機使用解譯器所執(zhí)行的較高級代碼。
[0054]與本申請相關(guān)的本領(lǐng)域技術(shù)人員應(yīng)該理解可以對所描述的實施例做出其他和進一步的增加、刪除、替代和修改。
【權(quán)利要求】
1.一種圖形管線,包含: 加速器; 輸入輸出接口,其耦連到所述加速器中的每一個;以及 通用處理單元,其耦連到所述輸入輸出接口并且配置為所述圖形管線的可編程功能單元,所述通用處理單元配置為經(jīng)由所述輸入輸出接口發(fā)出矢量指令到用于所述可編程功能單元的矢量數(shù)據(jù)路徑。
2.根據(jù)權(quán)利要求1所述的圖形管線,其中所述通用處理單元包括具有配置為存儲用于所述矢量數(shù)據(jù)路徑的輸入和輸出操作數(shù)的圖形寄存器的存儲器。
3.根據(jù)權(quán)利要求2所述的圖形管線,其中所述存儲器是二級高速緩存。
4.根據(jù)權(quán)利要求2所述的圖形管線,其中所述通用處理單元具有對所述圖形寄存器的直接訪問權(quán)。
5.根據(jù)權(quán)利要求1所述的圖形管線,其中所述通用處理單元發(fā)出所述矢量指令作為請求。
6.根據(jù)權(quán)利要求1所述的圖形管線,其中所述加速器包括所述矢量數(shù)據(jù)路徑并且所述通用處理單元具有標準標量核心。
7.一種裝置,包含: 標量處理核心,其編程為仿真圖形管線的功能單元;以及 存儲器,其直接耦連到所述標量處理核心并且包括配置為存儲用于所述圖形管線的加速器的輸入和輸出操作數(shù)的圖形寄存器。
8.根據(jù)權(quán)利要求7所述的裝置,其中所述標量處理核心不包括與所述功能單元相關(guān)聯(lián)的矢量數(shù)據(jù)路徑。
9.根據(jù)權(quán)利要求7所述的裝置,其中所述標量處理核心支持每協(xié)作線程陣列一個硬件線程上下文。
10.一種采用通用處理單元制造圖形處理單元的方法,包含: 將固定功能單元耦連到輸入輸出接口; 將通用處理單元耦連到所述輸入輸出接口; 對所述通用處理單元進行編程以仿真圖形管線的功能單元;以及將矢量數(shù)據(jù)路徑耦連到所述輸入輸出接口,其中所述矢量數(shù)據(jù)路徑與所述通用處理單元功能單元相關(guān)聯(lián)。
【文檔編號】G06T1/20GK103886546SQ201310138563
【公開日】2014年6月25日 申請日期:2013年4月19日 優(yōu)先權(quán)日:2012年12月21日
【發(fā)明者】阿爾貝特·邁克斯納 申請人:輝達公司