專利名稱:具有算術(shù)及初等函數(shù)單元的圖形處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體來說涉及電路,且更具體來說涉及圖形處理器。 #絲《
圖形處理器廣泛用于再現(xiàn)2維(2-D)及3維(3-D)圖像以用于各種應(yīng)用,例 如視頻游戲、制圖、計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、仿真及顯像工具、成像等。3-D圖像 可建模有表面,且每一表面可用多邊形(通常為三角形)近似。用于表示3-D圖像的 三角形的數(shù)量取決于表面的復(fù)雜性以及圖像的所需分辨率且可以相當(dāng)大,例如數(shù)百萬 個(gè)。每一三角形由三個(gè)頂點(diǎn)界定,且每一頂點(diǎn)與例如空間坐標(biāo)、色彩值及紋理坐標(biāo)等 各種屬性相關(guān)聯(lián)。每一屬性可具有多達(dá)四個(gè)分量。
圖形處理器可執(zhí)行各種圖形操作以再現(xiàn)圖像。所述圖形操作可包括光柵化、模版 及深度測試、紋理映射、著色等。所述圖像由許多三角形組成,且每一三角形由圖片 元素(像素)組成。所述圖形處理器通過確定每一三角形內(nèi)的每一像素的分量值來再 現(xiàn)所述三角形。
圖形處理器可采用著色器核心來執(zhí)行某些圖形操作,例如著色。著色是高度復(fù)雜 的圖形操作,其涉及照明、遮蔽等。所述著色器核心可需要計(jì)算超越初等函數(shù),例如 正弦、余弦、倒數(shù)、對數(shù)、指數(shù)、平方根及倒數(shù)平方根。這些初等函數(shù)可用多項(xiàng)式表 達(dá)式近似,可通過由算術(shù)邏輯單元(ALU)執(zhí)行的相對簡單的指令來評價(jià)所述多項(xiàng)式表 達(dá)式。然而,著色器性能可因使用ALU以此方式計(jì)算初等函數(shù)而受到損失。
發(fā)明內(nèi)容
本文中說明能夠高效地執(zhí)行算術(shù)運(yùn)算并計(jì)算初等函數(shù)的圖形處理器。術(shù)語"操作" 與"函數(shù)"有時(shí)可互換使用。圖形處理器包含著色器核心及可能的其它單元。所述著 色器核心具有可執(zhí)行算術(shù)運(yùn)算的至少一個(gè)ALU及可計(jì)算初等函數(shù)的至少一個(gè)初等函 數(shù)單元。在某些實(shí)施例中,所述ALU及初等函數(shù)單元經(jīng)布置及互連使得其可并行對 相同或不同線程的指令進(jìn)行操作以改善吞吐量。舉例來說,所述ALU可執(zhí)行一個(gè)線 程的一個(gè)指令,且所述初等函數(shù)單元可同時(shí)執(zhí)行另一線程的另一指令。這些線程可用 于相同或不同的圖形應(yīng)用程序。
在其它實(shí)施例中,所述著色器核心具有比ALU少的初等函數(shù)單元,例如四個(gè)ALU 及單個(gè)初等函數(shù)單元。所述四個(gè)ALU可對(1)一個(gè)像素的屬性的四個(gè)分量或(2)多達(dá)四個(gè)像素的屬性的一個(gè)分量執(zhí)行算術(shù)運(yùn)算。所述單個(gè)初等函數(shù)單元每次可處理一個(gè)像素 的一個(gè)分量。使用單個(gè)初等函數(shù)單元可降低成本(因?yàn)?,初等函?shù)單元比ALU復(fù)雜
且成本比ALU高),同時(shí)仍提供良好的性能(因?yàn)槌醯群瘮?shù)具有比算術(shù)運(yùn)算低的平 均使用)。
下文進(jìn)一步詳細(xì)說明本發(fā)明的各個(gè)方面及實(shí)施例。
結(jié)合圖式閱讀下文所述的詳細(xì)說明,人們將明了本發(fā)明的特征及性質(zhì),在所有圖 式中相同的參考字符對應(yīng)地進(jìn)行標(biāo)識。
圖1顯示支持圖形應(yīng)用程序的圖裙處理器。
圖2圖解說明像素的屬性及分量。
圖3A顯示使用四個(gè)標(biāo)量ALU的像素并行處理。
圖3B顯示使用一個(gè)四元組ALU的分量并行處理。
圖4顯示具有4單元ALU核心及4單元初等函數(shù)(EF)核心的著色器核心。
圖5顯示具有并行ALU核心及EF核心的著色器核心。
圖6顯示具有4單元ALU核心及1單元EF核心的著色器核心。
圖7顯示具有圖形處理器的無線裝置的框圖。
具體實(shí)施例方式
本文所用"實(shí)例性"一詞意指"用作實(shí)例、示例或例示"。在本文中任何稱為"實(shí) 例性"的實(shí)施例或設(shè)計(jì)未必應(yīng)視為較其它實(shí)施例或設(shè)計(jì)為優(yōu)選或有利。
圖1顯示圖形系統(tǒng)100的框圖,圖形系統(tǒng)100支持N個(gè)圖形應(yīng)用程序/程序110a
到110n,其中大體來說N〉1。圖形系統(tǒng)IOO可以是獨(dú)立的系統(tǒng)或較大系統(tǒng)(計(jì)算系
統(tǒng)、無線通信裝置等)的部分。圖形應(yīng)用程序110a到110n可用于視頻游戲、圖形等,
且可同時(shí)運(yùn)行。每一圖形應(yīng)用程序110可產(chǎn)生線程以實(shí)現(xiàn)所需的結(jié)果。線程(或執(zhí)行
線程)指示可通過一個(gè)或一個(gè)以上指令序列執(zhí)行的具體任務(wù)。線程允許圖形應(yīng)用具有 由不同單元同時(shí)執(zhí)行的多個(gè)任務(wù)且進(jìn)一步允許不同的圖形應(yīng)用共用資源。
圖形處理器120從圖形應(yīng)用程序110a到110n接收線程并執(zhí)行這些線程所指示的 任務(wù)。在圖l所示的實(shí)施例中,圖形處理器120包括著色器核心/處理器130、紋理引 擎140及高速緩沖存儲(chǔ)器系統(tǒng)150。核心通常是指集成電路內(nèi)的處理單元。術(shù)語"核 心"、"引擎"、"處理器"及"處理單元"經(jīng)??苫Q使用。著色器核心130可執(zhí) 行某些圖形操作(例如,著色)且可計(jì)算超越初等函數(shù)。紋理引擎140可執(zhí)行其它圖 形操作,例如紋理映射。高速緩沖存儲(chǔ)器系統(tǒng)150可包括一個(gè)或一個(gè)以上高速緩存器, 其為可存儲(chǔ)用于著色器核心130及紋理引擎140的數(shù)據(jù)及指令的高速存儲(chǔ)器。
圖形處理器120可包括其它處理及控制單元、引擎及存儲(chǔ)器。舉例來說,圖形處理器120可包括執(zhí)行三角形設(shè)置、光柵化、模版印刷及深度測試、屬性設(shè)置、像素內(nèi) 插等的一個(gè)或一個(gè)以上額外引擎。本文中所說明的各種圖形操作在所屬技術(shù)領(lǐng)域中已 知。所述額外引擎可耦合在圖形應(yīng)用程序IIO與著色器核心130之間或可耦合到著色
器核心130。圖形處理器120可實(shí)施軟件接口 ,例如開放性圖形庫(OpenGL)、 Direct3D 等。開放性圖形庫說明于口期為2004年IO月22日的標(biāo)題為"OpenGL⑧圖形系統(tǒng) 說明書"的文件的2.0版本中,所述文件公開可得。
主存儲(chǔ)器160是離圖形處理器120更遠(yuǎn)定位(例如,芯片外)的大型較慢的存儲(chǔ) 器。主存儲(chǔ)器160存儲(chǔ)可加載到高速緩沖存儲(chǔ)器系統(tǒng)150內(nèi)的高速緩存器中的數(shù)據(jù)及 指令。
圖2圖解說明像素的屬性及分量。如上所述,2-D或3-D圖像可由許多三角形組 成,且每一三角形可由像素組成。每一像素可具有各種屬性,例如空間坐標(biāo)、色彩值、 紋理坐標(biāo)等。每一屬性可具有多達(dá)四個(gè)分量。舉例來說,可通過針對水平及垂直坐標(biāo) (x及y)及深度(z)的三個(gè)分量或通過四個(gè)分量x、 y、 z及w給出空間坐標(biāo),其中w是 齊次坐標(biāo)的第四項(xiàng)。齊次坐標(biāo)用于某些圖形操作,例如轉(zhuǎn)換、縮放、旋轉(zhuǎn)等。色彩值 通常由紅色(r)、綠色(g)及藍(lán)色(b)給出。紋理坐標(biāo)通常由水平及垂直坐標(biāo)(u及v)給 出。像素也可與其它屬性相關(guān)聯(lián)。
在許多情況下,需要處理將要再現(xiàn)的圖像中的像素群組。可基于各種因素(例如, 硬件需要、性能等)來選擇群組大小。2x2的群組大小可提供各種因素之間的良好折 衷。可以若干種方式執(zhí)行對2x2格中的四個(gè)像素的處理。
圖3A顯示分別使用四個(gè)相同的標(biāo)量ALU (ALU1到ALU4)對四個(gè)像素1到4 的像素并行處理。在此實(shí)例中,正被處理的屬性的四個(gè)分量標(biāo)示為ApJ、 AP,2、 AR3 及Ap,4,其中p為像素索引且對于像素1到4來說peU,2,3,4"這些分量可用于空 間坐標(biāo)、色彩值、紋理坐標(biāo)等。將要應(yīng)用到所述四個(gè)分量的四個(gè)操作數(shù)標(biāo)示為Bp.,、 Bp,2、 Bp,3及Bp,4 (其中p"l,2,3, 4})且可以是常數(shù)。在此實(shí)例中,所述ALU執(zhí)行 相乘與累加(MAC)操作。因此,每一像素的四個(gè)分量與所述四個(gè)操作數(shù)相乘,且累加 所述四個(gè)中間結(jié)果以產(chǎn)生所述像素的最終結(jié)果。
對于圖3A中的像素并行處理,每一標(biāo)量ALU處理一個(gè)像素的四個(gè)分量,且所 述四個(gè)ALU同時(shí)處理所述四個(gè)像素。ALU1在第一時(shí)鐘周期T,中將分量Au與B,」 相乘,然后在第二時(shí)鐘周期丁2中將分量八1.2與81,2相乘且將此結(jié)果與現(xiàn)有結(jié)果累加, 然后在第三時(shí)鐘周期T3中將分量與B,.3相乘且將此結(jié)果與現(xiàn)有結(jié)果累加,然后在 第四時(shí)鐘周期T4中將分量A,.4與B,,4相乘且將此結(jié)果與現(xiàn)有結(jié)果累加。ALU2到ALU4 以類似方式分別對像素2到4的分量進(jìn)行處理。
圖3B顯示使用一個(gè)四元組ALU對四個(gè)像素的分量并行處理,所述ALU還可稱 為基于向量的ALU。對于分量并行處理,所述四元組ALU每次處理一個(gè)像素的所有 四個(gè)分量。因此,所述四元組ALU將分量Au、 Au、 A,.3及A,,4分別與操作數(shù)B,j、 B,,2、 B,,3及B!,4相乘,且在第一時(shí)鐘周期^中將所述四個(gè)中間結(jié)果累加以獲得所述第一像素的最終結(jié)果。所述四元組ALU分別在時(shí)鐘周期T2、 T3及T4中以類似方式處 理第二、第三及第四像素的分量。
圖3A及3B顯示用于對多達(dá)四個(gè)像素的屬性的多達(dá)四個(gè)分量執(zhí)行四元組處理的 兩個(gè)方案??赏ㄟ^單個(gè)四元組ALU或四個(gè)標(biāo)量ALU執(zhí)行算術(shù)運(yùn)算的四元組處理。在 以下說明中,假設(shè)ALU為標(biāo)量ALU,除非另外陳述。四元組處理可顯著改善性能。 因此,著色器核心130可設(shè)計(jì)有用以執(zhí)行四元組處理的功能。
圖4顯示具有4單元ALU核心440及4單元初等函數(shù)核心450的著色器核心/ 處理器130a的實(shí)施例的框圖。著色器核心130a可用于圖1中的著色器核心130。
在著色器核心130a內(nèi),多路復(fù)用器(Mux)410從圖形應(yīng)用程序110a到110n接收 線程并將這些線程提供到線程調(diào)度器及現(xiàn)場寄存器420。線程調(diào)度器420執(zhí)行各種功 能以調(diào)度并管理線程的執(zhí)行。線程調(diào)度器420確定是否接受新的線程、是否針對每一 接受的線程創(chuàng)建寄存器映射表及是否向所述線程分配資源。所述寄存器映射表指示邏 輯寄存器地址到物理寄存器堆地址之間的映射。對于每一線程,線程調(diào)度器420確定 所述線程所需要的資源是否就緒,如果所述線程的任何資源(例如,指令、寄存器堆 或紋理讀取)未就緒那么將所述線程推入睡眠隊(duì)列中,且當(dāng)所有所述資源就緒時(shí)將所 述線程從所述睡眠隊(duì)列移動(dòng)到活躍隊(duì)列。線程調(diào)度器420與加載控制單元460面接, 以使所述線程的資源同步。
線程調(diào)度器420還管理線程的執(zhí)行。線程調(diào)度器420從指令高速緩存器422提取 每一線程的指令,如果需要將每一指令解碼,且執(zhí)行所述線程的流控制。線程調(diào)度器 420選擇要執(zhí)行的活躍線程,檢査所述所選擇線程之間是否存在讀取/寫入端口沖突, 如果不存在沖突,那么將一個(gè)線程的指令發(fā)送到處理核心430中且將另一線程的指令 發(fā)送到加載控制單元460。線程調(diào)度器420維持每一線程的程序/指令計(jì)數(shù)器且在指令 被執(zhí)行或程序流被更改時(shí)更新此計(jì)數(shù)器。線程調(diào)度器420還發(fā)出提取未命中指令的請 求并移除完成的線程。
指令高速緩存器422存儲(chǔ)所述線程的指令。這些指令指示針對每一線程將要執(zhí)行 的具體操作。每一操作可以是算術(shù)運(yùn)算、初等函數(shù)、存儲(chǔ)器存取操作等。指令高速緩 存器422可在需要時(shí)通過加載控制單元460加載來自高速緩沖存儲(chǔ)器系統(tǒng)150及域 主存儲(chǔ)器160的指令。
在圖4所示的實(shí)施例中,處理核心430包括ALU核心440及初等函數(shù)核心450。 ALU核心440執(zhí)行算術(shù)運(yùn)算,例如加法、減法、乘法、相乘與累加、絕對、否定、 比較、飽和等。ALU核心440還可執(zhí)行邏輯操作,例如AND、 OR、 XOR等。ALU 核心440還可執(zhí)行格式轉(zhuǎn)換,例如從整數(shù)到浮點(diǎn)數(shù),且反之亦然。在圖4所示的實(shí)施 例中,ALU核心440可以是單個(gè)四元組ALU或四個(gè)標(biāo)量ALU。 ALU核心440可對 多達(dá)四個(gè)像素的屬性的一個(gè)分量執(zhí)行像素并行處理,如圖3A中所示。另一選擇為, ALU核心440可對單個(gè)像素的屬性的多達(dá)四個(gè)分量執(zhí)行分量并行處理,如圖3B中所 示。在圖4所示的實(shí)施例中,初等函數(shù)核心450由四個(gè)初等函數(shù)單元組成,所述初等
函數(shù)單元可計(jì)算多達(dá)四個(gè)像素的屬性的一個(gè)分量的初等函數(shù)(像素并行)或一個(gè)像素
的屬性的多達(dá)四個(gè)分量的初等函數(shù)(分量并行)。初等函數(shù)核心450可計(jì)算超越初等 函數(shù),例如正弦、余弦、倒數(shù)、對數(shù)、指數(shù)、平方根、倒數(shù)平方根等,其廣泛用于著 色器指令中。初等函數(shù)核心450可通過在比使用簡單的指令執(zhí)行初等函數(shù)的多項(xiàng)式近 似所需要的時(shí)間短得多的時(shí)間內(nèi)計(jì)算所述初等函數(shù)來改善著色器性能。
加載控制單元460控制著色器核心130a內(nèi)各種單元的數(shù)據(jù)及指令流。加載控制 單元460與高速緩沖存儲(chǔ)器系統(tǒng)150面接且用來自高速緩沖存儲(chǔ)器系統(tǒng)150的數(shù)據(jù)及 指令加載指令高速緩存器422、常量緩沖器432及寄存器堆組/輸出緩沖器470。加載 控制單元460還將輸出緩沖器470中的數(shù)據(jù)保存到高速緩沖存儲(chǔ)器系統(tǒng)150。加載控 制單元460還向紋理引擎140提供指令。
常量緩沖器432存儲(chǔ)ALU核心440使用的常數(shù)值。輸出緩沖器470存儲(chǔ)臨時(shí)結(jié) 果以及所述線程的來自ALU核心440及初等函數(shù)核心450的最終結(jié)果。多路分用器 (Demux) 480從輸出緩沖器470接收所述己執(zhí)行線程的最終結(jié)果并將這些結(jié)果提供到 圖形應(yīng)用程序。
在圖4所示的實(shí)施例中,處理核心430包括ALU核心440及初等函數(shù)核心450 兩者。此實(shí)施例允許ALU核心440及初等函數(shù)核心450共享將核心440及450耦合 到著色器核心130a內(nèi)的其它單元(例如,線程調(diào)度器420及輸出緩沖器470)的總線。
初等函數(shù)單元通常比ALU復(fù)雜。即使對于成本有效的實(shí)施方案,初等函數(shù)單元 通常占據(jù)比ALU大得多的電路面積且因此比ALU昂貴。為針對所有著色器指令實(shí)現(xiàn) 高著色器吞吐量,初等函數(shù)單元的數(shù)量可經(jīng)選擇以與ALU的數(shù)量匹配,ALU的數(shù)量 在圖4所示的實(shí)施例中為四個(gè)。然而,研究已表明即使廣泛使用初等函數(shù),初等函數(shù) 的平均使用也大大低于ALU操作的平均使用。所述較低的平均使用是因?yàn)槌醯群瘮?shù) 比算術(shù)運(yùn)算更少地被調(diào)用以及由初等函數(shù)處理的分量比算術(shù)運(yùn)算少。舉例來說,初等
函數(shù)通常比算術(shù)運(yùn)算更少地被調(diào)用且因此可由較少的初等函數(shù)單元充分支持。此外, 雖然可能常見對屬性的所有四個(gè)分量執(zhí)行加法或乘法(那么此將受益于具有四個(gè) ALU),但較不常見對所有四個(gè)分量執(zhí)行初等函數(shù)。因此,較少的初等函數(shù)單元便可 能夠在許多情況(其中僅對一子組分量(例如, 一個(gè)或兩個(gè)分量)執(zhí)行初等函數(shù))下 提供良好的性能。實(shí)施較少的初等函數(shù)單元可降低成本,同時(shí)仍提供良好的性能。
圖5顯示具有4單元ALU核心540及L單元初等函數(shù)核心550的著色器核心130b 的實(shí)施例的框圖,其中1SL〈4。著色器核心130b也可用于圖1中的著色器核心130。 著色器核心130b包括多路復(fù)用器510、線程調(diào)度器及現(xiàn)場寄存器520、指令高速緩存 器522、常量緩沖器532、 ALU核心540、初等函數(shù)核心550、加載控制單元560、寄 存器堆組/輸出緩沖器570及多路分用器580,其分別以類似于圖4中的單元410、420、 422、 432、 440、 450、 460、 470及480的方式操作。
ALU核心540可以是單個(gè)四元組ALU或四個(gè)標(biāo)量ALU。 ALU核心540經(jīng)由一
9組總線耦合到線程調(diào)度器520、常量緩沖器532及輸出緩沖器570。初等函數(shù)核心550 可由一個(gè)、兩個(gè)或三個(gè)(L)初等函數(shù)單元組成,所述初等函數(shù)單元可計(jì)算一個(gè)像素的L 個(gè)分量或L個(gè)像素的一個(gè)分量的初等函數(shù)。初等函數(shù)核心550經(jīng)由另一組總線耦合到 線程調(diào)度器520、常量緩沖器532及輸出緩沖器570。在圖5所示的實(shí)施例中,ALU 核心540及初等函數(shù)核心550彼此單獨(dú)實(shí)施且經(jīng)由單獨(dú)總線耦合到著色器核心130b 內(nèi)的其它單元。那么,ALU核心540與初等函數(shù)核心550可并行對不同的指令進(jìn)行 操作。這些指令可用于相同或不同的圖形應(yīng)用程序。
在圖5所示的實(shí)施例中,初等函數(shù)單元的數(shù)量比ALU的數(shù)量少且可基于成本與 性能之間的折衷選擇。在許多情況下,由于初等函數(shù)的較低平均使用,初等函數(shù)核心 550將能夠跟上ALU核心540。線程調(diào)度器520在知道L個(gè)(而不是四個(gè))初等函數(shù) 單元可供使用的情況下適當(dāng)調(diào)度初等函數(shù)操作。
圖6顯示具有4單元ALU核心640及1單元初等函數(shù)核心650的著色器核心/ 處理器130c的實(shí)施例的框圖。著色器核心130c也可用于圖1中的著色器核心130。 著色器核心130c包括多路復(fù)用器、線程調(diào)度器及現(xiàn)場寄存器620、指令高速緩存器 622、常量緩沖器632、 ALU核心640、初等函數(shù)核心650、加載控制單元660、寄存 器堆組/輸出緩沖器670及多路分用器680,其以類似于圖4中的單元410、 420、 422、 432、 440、 450、 460、 470及480的方式操作。
ALU核心640可以是單個(gè)四元組ALU或四個(gè)標(biāo)量ALU。 ALU核心640經(jīng)由一 組總線耦合到線程調(diào)度器620、常量緩沖器632及輸出緩沖器670。初等函數(shù)核心650 可由單個(gè)初等函數(shù)單元組成,所述初等函數(shù)單元每次可計(jì)算一個(gè)像素的一個(gè)分量的初 等函數(shù)。在圖6所示的實(shí)施例中,初等函數(shù)核心650耦合到加載控制單元660及輸出 緩沖器670。此實(shí)施例減少支持單獨(dú)的ALU核心640及初等函數(shù)核心650的總線數(shù) 量。此實(shí)施例還可提供其它益處,例如更高效的資源(例如,寄存器堆讀取/寫入端 口、指令解碼等)共享。
在所述設(shè)計(jì)以及初等函數(shù)核心650置于著色器核心130c內(nèi)的情況下,可以適當(dāng) 方式產(chǎn)生初等函數(shù)的指令(或EF指令)。如果EF單元的數(shù)量等于ALU單元的數(shù)量 (例如,如圖4中所示)且如果所述EF單元具有與所述ALU單元相同的管線等待時(shí) 間,那么可將所述EF指令作為具有可預(yù)測管線延遲的ALU指令來對待。然而,ALU 核心640與初等函數(shù)核心650的不均勻?qū)嵤┛蓪?dǎo)致不均勻的吞吐量。因此,在一個(gè)實(shí) 施例中,著色器核心130c將初等函數(shù)核心650作為加載資源來對待且以與(例如) 紋理加載或存儲(chǔ)器加載類似的方式及相同的同步來處理EF指令。舉例來說,著色器 編譯器可將EF指令作為與紋理加載相關(guān)的指令而不是作為ALU指令編譯,此可能是 圖4及5中所示實(shí)施例中的情況。
所述著色器編譯器可在指令中適當(dāng)包括同步(sync)位。同步位可指示包含所述同 步位的當(dāng)前指令具有與一個(gè)或一個(gè)以上先前指令的數(shù)據(jù)相依性,其可具有不可預(yù)測的 延遲或等待時(shí)間。所述不可預(yù)測的等待時(shí)間可因若千原因而產(chǎn)生。首先,紋理加載或存儲(chǔ)器加載的不可預(yù)測等待時(shí)間可因不可預(yù)測的執(zhí)行狀況而產(chǎn)生,例如高速緩存器命 中/未命中、存儲(chǔ)器存取能力。存儲(chǔ)器存取序列等。第二,不可預(yù)測的等待時(shí)間可由 ALU核心與初等函數(shù)核心的不均勻?qū)嵤?dǎo)致。所述著色器編譯器可將同步位插入到
與先前EF指令具有數(shù)據(jù)相依性的指令中,其可具有不可預(yù)測的延遲。這些同步位確 保所述指令跟隨其相依的EF指令且因此處理適當(dāng)?shù)臄?shù)據(jù)。
在圖6所示的實(shí)施例中,線程調(diào)度器620可產(chǎn)生可與數(shù)據(jù)加載請求共享總線的初 等函數(shù)請求。此共享的總線可包含從線程調(diào)度器620到加載控制單元660的總線。然 而,初等函數(shù)核心650可與加載控制單元660中的加載指令并行執(zhí)行。在另一實(shí)施例 中,初等函數(shù)核心650經(jīng)由專用總線直接耦合到線程調(diào)度器620,例如,如圖5中所 示。在此實(shí)施例中,初等函數(shù)請求與數(shù)據(jù)加載請求可使用單獨(dú)的總線。在兩個(gè)實(shí)施例 中,線程調(diào)度器620、 ALU核心640、初等函數(shù)核心650及加載控制單元660可并 行對不同的線程進(jìn)行操作以改善性能。
圖4到6顯示著色器核心130a、 130b及130c的具體實(shí)施例。著色器核心130a、 130b及130c也可具有其它變化形式。舉例來說,圖4中的初等函數(shù)核心450可包括 少于四個(gè)初等函數(shù)單元。作為另一實(shí)例,圖6中的初等函數(shù)核心650可包括一個(gè)以上 初等函數(shù)單元,例如兩個(gè)初等函數(shù)單元。
一般來說,著色器核心可包括任何數(shù)量的處理、控制及存儲(chǔ)器單元,且可以任何 方式布置所述處理、控制及存儲(chǔ)器單元。還可將這些單元稱作其它名稱。舉例來說, 加載控制單元還可稱為輸入/輸岀(I/0)接口單元。在某些實(shí)施例中,著色器核心可包 括比ALU少的初等函數(shù)單元以在性能很少降級的情況下降低成本。在其它實(shí)施例中, 著色器核心可包括單獨(dú)的ALU核心與初等函數(shù)核心,所述ALU核心與初等函數(shù)核心 可并行對相同或不同圖形應(yīng)用程序的不同指令進(jìn)行操作。可用所屬技術(shù)領(lǐng)域中已知的 各種設(shè)計(jì)來實(shí)施所述ALU及初等函數(shù)單元。著色器核心還可經(jīng)由同步及/或異步接口 與外部單元面接。
本文中所說明的圖形處理器及著色器核心可用于無線通信、計(jì)算、聯(lián)網(wǎng)、個(gè)人電 子裝置等。下文說明用于無線通信的圖形處理器的實(shí)例性使用。
圖7顯示無線通信系統(tǒng)中無線裝置700的實(shí)施例的框圖。無線裝置700可以是蜂 窩式電話、終端、手機(jī)、個(gè)人數(shù)字助理(PDA)或某種其它裝置。所述無線通信系統(tǒng) 可以是碼分多址(CDMA)系統(tǒng)、全球移動(dòng)通信(GSM)系統(tǒng)或某種其它系統(tǒng)。
無線裝置700能夠經(jīng)由接收路徑及傳輸路徑提供雙向通信。在所述接收路徑上, 通過天線712接收由基站傳輸?shù)男盘柌⑵涮峁┑浇邮掌?RCVR)714。接收器714調(diào) 節(jié)并數(shù)字化所接收的信號,并將樣本提供到數(shù)字區(qū)段720以進(jìn)行進(jìn)一步處理。在所述 傳輸路徑上,傳輸器(TMTR)716接收將從數(shù)字區(qū)段720傳輸?shù)臄?shù)據(jù)、處理并調(diào)節(jié)所述 數(shù)據(jù),并產(chǎn)生經(jīng)調(diào)制信號,所述信號經(jīng)由天線712傳輸?shù)交尽?br>
數(shù)字區(qū)段720包括各種處理及接口單元,例如調(diào)制解調(diào)器處理器722、視頻處理 器724、應(yīng)用處理器726、顯示器處理器728、控制器/處理器730、圖形處理器740及外部總線接口 (EBI) 760。調(diào)制解調(diào)器處理器722執(zhí)行用于數(shù)據(jù)傳輸及接收的處理 (例如,編碼、調(diào)制、解調(diào)及解碼)。視頻處理器724對視頻內(nèi)容(例如,靜止圖像、 移動(dòng)視頻及移動(dòng)文本)執(zhí)行處理以用于例如攝錄機(jī)、視頻回放及視頻會(huì)議等視頻應(yīng)用。 應(yīng)用處理器726執(zhí)行例如多路呼叫、網(wǎng)頁瀏覽、媒體播放器及用戶接口等各種應(yīng)用的 處理。顯示器處理器728執(zhí)行處理以促進(jìn)視頻、圖形及文本在顯示器單元780上的顯 示??刂破?處理器730可引導(dǎo)數(shù)字區(qū)段720內(nèi)各種處理及接口單元的操作。
圖形處理器740執(zhí)行對圖形應(yīng)用程序的處理且可如上文所說明來實(shí)施。舉例來 說,圖形處理器740可包括圖1中的著色器核心/處理器130及紋理引擎140。高速緩 沖存儲(chǔ)器系統(tǒng)750存儲(chǔ)用于圖形處理器740的數(shù)據(jù)及/或指令。高速緩沖存儲(chǔ)器系統(tǒng) 750可用(l)可被指派給圖形處理器740內(nèi)的不同引擎的可配置高速緩存器及/或(2)被 指派給具體引擎的專用高速緩存器實(shí)施。EBI 760促進(jìn)數(shù)字區(qū)段720 (例如,高速緩 存器)與主存儲(chǔ)器770之間的數(shù)據(jù)轉(zhuǎn)移。
數(shù)字區(qū)段720可用一個(gè)或一個(gè)以上數(shù)字信號處理器(DSP)、微處理器、精簡指 令集計(jì)算機(jī)(RISC)等來實(shí)施。數(shù)字區(qū)段720還可制作在一個(gè)或一個(gè)以上專用集成電 路(ASIC)或某種其它類型的集成電路(IC)上。
本文中所說明的圖形處理器及著色器核心/處理器可實(shí)施于各種硬件單元中。舉 例來說,所述圖形系統(tǒng)及著色器核心/處理器可實(shí)施于ASIC、數(shù)字信號處理器(DSP)、 數(shù)字信號處理裝置(DSPD)、可編程邏輯裝置(PLD)、現(xiàn)場可編程門陣列(FPGA)、 處理器、控制器、微控制器、微處理器及其它電子單元中。
圖形處理器的某些部分可實(shí)施于固件及/或軟件中。舉例來說,線程調(diào)度器及/或 加載控制單元可用執(zhí)行本文中所說明的功能的固件及/或軟件模塊(例如,程序、功 能等)來實(shí)施。固件及/或軟件代碼可存儲(chǔ)在存儲(chǔ)器(例如,圖7中的存儲(chǔ)器750或 770)中并由處理器(例如,處理器730)執(zhí)行。所述存儲(chǔ)器既可實(shí)施于處理器內(nèi)部 也可實(shí)施于處理器外部。
提供前文對所揭示實(shí)施例的說明旨在使所屬技術(shù)領(lǐng)域中的技術(shù)人員能夠制作或 使用本發(fā)明。所屬技術(shù)領(lǐng)域中的技術(shù)人員將容易地明了這些實(shí)施例的各種修改,且本 文所定義的一般原理也可在不背離本發(fā)明的精神或范圍的情況下應(yīng)用于其它實(shí)施例。 因此,并非打算將本發(fā)明限定為本文所示實(shí)施例,而是要賦予其與本文所揭示原理及 新穎特征相一致的最寬廣范圍。
1權(quán)利要求
1、一種設(shè)備,其包含至少一個(gè)算術(shù)邏輯單元(ALU),其操作以執(zhí)行算術(shù)運(yùn)算;及至少一個(gè)初等函數(shù)單元,其操作以計(jì)算初等函數(shù),其中所述至少一個(gè)初等函數(shù)單元與所述至少一個(gè)ALU可并行對多個(gè)線程進(jìn)行操作。
2、 如權(quán)利要求l所述的設(shè)備,其包含四個(gè)ALU。
3、 如權(quán)利要求2所述的設(shè)備,其中所述四個(gè)ALU可操作以對像素的屬性的多 達(dá)四個(gè)分量執(zhí)行算術(shù)運(yùn)算。
4、 如權(quán)利要求2所述的設(shè)備,其中所述四個(gè)ALU可操作以對多達(dá)四個(gè)像素的 屬性的分量執(zhí)行算術(shù)運(yùn)算。
5、 如權(quán)利要求l所述的設(shè)備,其包含比ALU少的初等函數(shù)單元。
6、 如權(quán)利要求l所述的設(shè)備,其包含單個(gè)初等函數(shù)單元。
7、 如權(quán)利要求l所述的設(shè)備,其中用于所述至少一個(gè)初等函數(shù)單元的指令與加 載指令同步編譯。
8、 如權(quán)利要求1所述的設(shè)備,其中控制位用于所述至少一個(gè)初等函數(shù)單元的指 令與相依于所述至少一個(gè)初等函數(shù)單元的所述指令的其它指令的同步。
9、 如權(quán)利要求1所述的設(shè)備,其中所述至少一個(gè)ALU可操作以執(zhí)行第一線程 的第一指令且所述至少一個(gè)初等函數(shù)單元可操作以與所述至少一個(gè)ALU并行執(zhí)行第 二線程的第二指令。
10、 如權(quán)利要求l所述的設(shè)備,其中所述至少一個(gè)ALU與所述至少一個(gè)初等函 數(shù)單元具有不同的等待時(shí)間。
11、 如權(quán)利要求l所述的設(shè)備,其進(jìn)一步包含加載控制單元,其操作以促進(jìn)所述至少一個(gè)ALU與存儲(chǔ)器系統(tǒng)之間及所述至少 一個(gè)初等函數(shù)單元與所述存儲(chǔ)器系統(tǒng)之間的數(shù)據(jù)交換。
12、 如權(quán)利要求11所述的設(shè)備,其中所述至少一個(gè)初等函數(shù)單元耦合到所述加 載控制單元。
13、 如權(quán)利要求12所述的設(shè)備,其中所述至少一個(gè)初等函數(shù)單元可與所述加載控制單元并行操作。
14、 如權(quán)利要求12所述的設(shè)備,其中對所述至少一個(gè)初等函數(shù)單元的請求及對 所述加載控制單元的加載請求共享總線,且其中所述至少一個(gè)初等函數(shù)單元及所述加 載控制單元可操作以并行執(zhí)行不同的線程。
15、 如權(quán)利要求l所述的設(shè)備,其進(jìn)一步包含調(diào)度器,其操作以從至少一個(gè)圖形應(yīng)用程序接收線程并調(diào)度所述至少一個(gè)ALU 及所述至少一個(gè)初等函數(shù)單元對所述線程的執(zhí)行。
16、 如權(quán)利要求15所述的設(shè)備,其中所述至少一個(gè)初等函數(shù)單元耦合到所述調(diào) 度器。
17、 如權(quán)利要求1所述的設(shè)備,其進(jìn)一步包含輸出緩沖器,其耦合到所述至少一個(gè)ALU及所述至少一個(gè)初等函數(shù)單元且操作 以存儲(chǔ)來自所述至少一個(gè)ALU及所述至少一個(gè)初等函數(shù)單元的結(jié)果。
18、 一種集成電路,其包含至少一個(gè)算術(shù)邏輯單元(ALU),其操作以執(zhí)行算術(shù)運(yùn)算;及 至少一個(gè)初等函數(shù)單元,其操作以計(jì)算初等函數(shù),其中所述至少一個(gè)初等函數(shù)單 元與所述至少一個(gè)ALU可并行對多個(gè)線程進(jìn)行操作。
19、 如權(quán)利要求18所述的集成電路,其包含四個(gè)ALU及少于四個(gè)的初等函數(shù) 單元。
20、 一種無線裝置,其包含圖形處理器,其包含操作以執(zhí)行算術(shù)運(yùn)算的至少一個(gè)算術(shù)邏輯單元(ALU)及操作 以計(jì)算初等函數(shù)的至少一個(gè)初等函數(shù)單元,其中所述至少一個(gè)初等函數(shù)單元與所述至 少一個(gè)ALU可并行對多個(gè)線程進(jìn)行操作;及存儲(chǔ)器系統(tǒng),其操作以存儲(chǔ)用于所述圖形處理器的數(shù)據(jù)。
21、 如權(quán)利要求20所述的無線裝置,其中所述圖形處理器包含四個(gè)ALU及少于四個(gè)的初等函數(shù)單元。
22、 一種設(shè)備,其包含至少一個(gè)算術(shù)邏輯單元(ALU),其操作以執(zhí)行算術(shù)運(yùn)算;及至少一個(gè)初等函數(shù)單元,其操作以計(jì)算初等函數(shù),其中所述至少一個(gè)初等函數(shù)單 元的數(shù)量少于所述至少一個(gè)ALU的數(shù)量。
23、 如權(quán)利要求22所述的設(shè)備,其中所述至少一個(gè)ALU可與所述至少一個(gè)初 等函數(shù)單元并行操作。
24、 如權(quán)利要求22所述的設(shè)備,其進(jìn)一步包含加載控制單元,其操作以促進(jìn)所述至少一個(gè)ALU與存儲(chǔ)器系統(tǒng)之間及所述至少 一個(gè)初等函數(shù)單元與所述存儲(chǔ)器系統(tǒng)之間的數(shù)據(jù)交換。
25、 如權(quán)利要求24所述的設(shè)備,其中所述至少一個(gè)初等函數(shù)單元耦合到所述加 載控制單元。
全文摘要
本發(fā)明說明一種能夠有效地執(zhí)行算術(shù)運(yùn)算并計(jì)算初等函數(shù)的圖形處理器。所述圖形處理器具有可執(zhí)行算術(shù)運(yùn)算的至少一個(gè)算術(shù)邏輯單元(ALU)及可計(jì)算初等函數(shù)的至少一個(gè)初等函數(shù)單元。所述ALU及初等函數(shù)單元可經(jīng)布置使得其可并行操作以改善吞吐量。所述圖形處理器還可包括比ALU少的初等函數(shù)單元,例如,四個(gè)ALU及單個(gè)初等函數(shù)單元。所述四個(gè)ALU可對(1)一個(gè)像素的屬性的四個(gè)分量或(2)四個(gè)像素的屬性的一個(gè)分量執(zhí)行算術(shù)運(yùn)算。所述單個(gè)初等函數(shù)單元每次可對一個(gè)像素的一個(gè)分量進(jìn)行操作。單個(gè)初等函數(shù)單元的使用可降低成本,同時(shí)仍提供良好的性能。
文檔編號G06F9/38GK101449239SQ200780018730
公開日2009年6月3日 申請日期2007年5月25日 優(yōu)先權(quán)日2006年5月25日
發(fā)明者春 于, 云 杜, 焦國方, 阿列克謝·V·布爾多 申請人:高通股份有限公司