欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

對(duì)圖形處理系統(tǒng)中的處理引擎的區(qū)片分配的制作方法

文檔序號(hào):12733283閱讀:206來(lái)源:國(guó)知局
對(duì)圖形處理系統(tǒng)中的處理引擎的區(qū)片分配的制作方法與工藝

圖形處理系統(tǒng)通常被配置為(例如從在計(jì)算機(jī)系統(tǒng)上運(yùn)行的應(yīng)用)接收?qǐng)D形數(shù)據(jù),并且渲染圖形數(shù)據(jù)以提供渲染輸出。例如,向圖形處理系統(tǒng)提供的圖形數(shù)據(jù)可以描述待渲染的三維(3D)場(chǎng)景內(nèi)的幾何形狀,并且渲染輸出可以是場(chǎng)景的經(jīng)渲染的圖像。一些圖形處理系統(tǒng)(其可以被稱為“基于區(qū)片的(tile-based)”圖形處理系統(tǒng))使用被再分成多個(gè)區(qū)片的渲染空間?!皡^(qū)片”是渲染空間的區(qū)域,并且可以具有任何適合的形狀,但是通常是矩形(其中術(shù)語(yǔ)“矩形”包括正方形)。為了給出一些示例,區(qū)片可以覆蓋待渲染的圖像的16×16像素塊或32×32像素塊。如本領(lǐng)域中已知的,存在將渲染空間再分成區(qū)片的許多益處。例如,將渲染空間再分成區(qū)片允許圖像以逐區(qū)片方式渲染,其中針對(duì)區(qū)片的圖形數(shù)據(jù)可以在區(qū)片的渲染期間被臨時(shí)存儲(chǔ)“在芯片上”,由此降低在系統(tǒng)存儲(chǔ)器與實(shí)現(xiàn)圖形處理系統(tǒng)的圖形處理單元(GPU)所在的芯片之間傳送的數(shù)據(jù)量。

基于區(qū)片的圖形處理系統(tǒng)通常在兩個(gè)階段中操作:幾何處理階段和柵格化階段。在幾何處理階段中,針對(duì)渲染的圖形數(shù)據(jù)被分析,以針對(duì)區(qū)片中的每個(gè)區(qū)片確定哪些圖形數(shù)據(jù)項(xiàng)存在于該區(qū)片中。然后,在柵格化階段中,可以通過(guò)處理被確定為存在于該區(qū)片內(nèi)的那些圖形數(shù)據(jù)項(xiàng)來(lái)渲染區(qū)片(而不需要處理在幾何處理階段中被確定為不存在于特定區(qū)片內(nèi)的圖形數(shù)據(jù)項(xiàng))。圖形數(shù)據(jù)項(xiàng)可以表示幾何形狀,其描述場(chǎng)景中的結(jié)構(gòu)的表面并且其被稱為“基元(primitive)”。常見(jiàn)基元形狀是三角形,但是基元可以是其他2D形狀或也可以是線或點(diǎn)。對(duì)象可以由一個(gè)或多個(gè)(例如,數(shù)百、數(shù)千或數(shù)百萬(wàn)個(gè))這樣的基元組成。

圖1示出了可以被用于渲染3D場(chǎng)景的圖像的圖形處理系統(tǒng)100的一些元件。該圖形處理系統(tǒng)100包括圖形處理單元(GPU)102和存儲(chǔ)器1041和存儲(chǔ)器1042的兩個(gè)部分。存儲(chǔ)器1041和存儲(chǔ)器1042的兩個(gè)部分可以是或可以不是相同物理存儲(chǔ)器的部分。

GPU 102包括預(yù)處理模塊106、區(qū)片化單元108和柵格化模塊110,其中柵格化模塊110包括隱藏表面移除(HSR)單元112和紋理化/陰影化單元114。紋理化/陰影化單元114包括一個(gè)或多個(gè)處理引擎,其可以被稱為“統(tǒng)一陰影化聚類”(USC)。對(duì)圖形處理系統(tǒng)100進(jìn)行布置,使得在預(yù)處理模塊106處接收由應(yīng)用提供的基元的序列。

在幾何處理階段中,預(yù)處理模塊106執(zhí)行諸如包括修剪和裁剪的幾何處理的功能以移除未落到可見(jiàn)視圖中的基元。該預(yù)處理模塊106還可以將基元投影到屏幕空間中。從預(yù)處理模塊106輸出的基元被傳遞到區(qū)片化單元108,其確定哪些基元存在于圖形處理系統(tǒng)100的渲染空間的區(qū)片中的每個(gè)區(qū)片中。區(qū)片化單元108通過(guò)創(chuàng)建針對(duì)區(qū)片的顯示列表來(lái)將基元分配給渲染空間的區(qū)片,其中針對(duì)區(qū)片的顯示列表包括存在于區(qū)片內(nèi)的基元的指示。該顯示列表和基元從區(qū)片化單元108輸出并且被存儲(chǔ)在存儲(chǔ)器1041中。

在柵格化階段中,柵格化塊110從存儲(chǔ)器1041獲取針對(duì)區(qū)片的顯示列表和與該區(qū)片有關(guān)的基元。HSR單元112執(zhí)行隱藏表面移除,由此移除隱藏在場(chǎng)景中的基元的片段(fragment)。執(zhí)行隱藏表面移除的方法在本領(lǐng)域中是已知的。術(shù)語(yǔ)“片段”指代采樣點(diǎn)處的基元的樣本,其將被處理為渲染圖像的像素。在一些示例中,可以存在片段到像素的一一映射。在其他示例中,可以存在比像素更多的片段,并且該過(guò)采樣可以考慮到像素值的較高的質(zhì)量渲染,例如,通過(guò)促進(jìn)可以應(yīng)用到用于渲染像素值中的每個(gè)像素值的多個(gè)片段的反混疊和其他濾波。剩余的片段從HSR單元112被傳遞到紋理化/陰影化單元114,其對(duì)片段執(zhí)行紋理化和/或陰影化以確定可以傳遞到存儲(chǔ)器1042以用于存儲(chǔ)在幀緩沖器中的渲染圖像的像素顏色值。紋理化/陰影化單元114可以從存儲(chǔ)器1041接收紋理數(shù)據(jù)以便將紋理化應(yīng)用到基元片段,如本領(lǐng)域中已知的(例如,通過(guò)運(yùn)行陰影器程序)。紋理化/陰影化單元114可以將進(jìn)一步的處理應(yīng)用到基元片段(例如,alpha混合和其他過(guò)程),如本領(lǐng)域中已知,以便確定圖像的經(jīng)渲染的像素值。柵格化塊110處理區(qū)片中的每個(gè)區(qū)片中的基元并且當(dāng)全部圖像已經(jīng)被渲染并且被存儲(chǔ)在存儲(chǔ)器1042中時(shí),經(jīng)渲染的圖像可以從圖形處理系統(tǒng)100輸出并且以任何適合的方式使用(例如,被顯示在顯示器上,或被存儲(chǔ)在存儲(chǔ)器中,或被發(fā)送到另一設(shè)備等)。

紋理化/陰影化單元114可以包括可以并行處理不同的數(shù)據(jù)的多于一個(gè)處理引擎,由此改進(jìn)由紋理化/陰影化單元114所執(zhí)行的紋理化和/或陰影化的效率。柵格化塊110可以被配置為一次渲染針對(duì)單個(gè)區(qū)片的基元。



技術(shù)實(shí)現(xiàn)要素:

提供該概述以引入以在詳細(xì)描述中下文進(jìn)一步描述的簡(jiǎn)化形式的概念的選擇。該概述不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或基本特征,其也不旨在被用于限制所要求保護(hù)的主題的范圍。

提供了一種圖形處理系統(tǒng),其被配置為使用被再分成多個(gè)區(qū)片的渲染空間來(lái)處理基元片段,該系統(tǒng)包括:多個(gè)處理引擎,其被配置為將紋理化和陰影化中的一者或二者應(yīng)用到基元片段;高速緩存系統(tǒng),其被配置為存儲(chǔ)圖形數(shù)據(jù)以用于在處理基元片段中使用,該高速緩存系統(tǒng)包括多個(gè)高速緩存子系統(tǒng),其中多個(gè)高速緩存子系統(tǒng)中的每個(gè)高速緩存子系統(tǒng)被耦合到處理引擎中的一個(gè)或多個(gè)處理引擎的相應(yīng)集合;以及區(qū)片分配單元,其被配置為在一個(gè)或多個(gè)分配模式中操作以將區(qū)片分配給處理引擎,其中一個(gè)或多個(gè)分配模式包括空間分配模式,在空間分配模式中,空間相鄰區(qū)片組根據(jù)空間分配方案而被分配給處理引擎,空間分配方案確保空間相鄰區(qū)片組中的每組被分配給耦合到相同高速緩存子系統(tǒng)的處理引擎的集合。

提供了一種使用被再分成多個(gè)區(qū)片的渲染空間來(lái)在圖形處理系統(tǒng)中處理基元片段的方法,該方法包括:在多個(gè)處理引擎處將紋理化和陰影化中的一者或二者應(yīng)用到基元片段;在高速緩存系統(tǒng)中存儲(chǔ)圖形數(shù)據(jù)所以用于在處理基元片段中使用,高速緩存系統(tǒng)包括多個(gè)高速緩存子系統(tǒng),其中多個(gè)高速緩存子系統(tǒng)中的每個(gè)高速緩存子系統(tǒng)被耦合到處理引擎中的一個(gè)或多個(gè)處理引擎的相應(yīng)集合;并且在一個(gè)或多個(gè)分配模式中將區(qū)片分配給處理引擎,其中一個(gè)或多個(gè)分配模式包括空間分配模式,在空間分配模式中,空間相鄰區(qū)片組根據(jù)空間分配方案而被分配給處理引擎,空間分配方案確??臻g相鄰區(qū)片組中的每組被分配給耦合到相同高速緩存子系統(tǒng)的處理引擎的集合。

可以提供計(jì)算機(jī)可讀代碼,其適于當(dāng)代碼被運(yùn)行在計(jì)算機(jī)上時(shí)執(zhí)行本文所描述的方法中的任一種方法的步驟。該計(jì)算機(jī)可讀代碼可以被編碼在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上。

還可以提供一種在集成電路制造系統(tǒng)處制造根據(jù)本文所描述的示例中的任一個(gè)示例的圖形處理系統(tǒng)的方法。還可以提供一種集成電路定義數(shù)據(jù)集,其當(dāng)在集成電路制造系統(tǒng)中處理時(shí)將系統(tǒng)配置為制造如本文中的示例中的任一個(gè)示例中所描述的圖形處理系統(tǒng)。該集成電路定義數(shù)據(jù)集可以被存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上。

如對(duì)于技術(shù)人員而言將是明顯的,以上特征可以在適當(dāng)時(shí)被組合并且可以與本文所描述的示例的各方面中的任一個(gè)方面一起組合。

附圖說(shuō)明

現(xiàn)在將參考附圖詳細(xì)描述示例,在附圖中:

圖1示出了現(xiàn)有技術(shù)圖形處理系統(tǒng)的示例;

圖2示出了根據(jù)本文所描述的實(shí)施例的圖形處理系統(tǒng);

圖3表示區(qū)片塊內(nèi)的基元;

圖4是示出在圖形處理系統(tǒng)中處理基元片段的方法的流程圖;

圖5示出了待分配給處理引擎的區(qū)片塊;

圖6指示將區(qū)片從塊分配給處理引擎;

圖7圖示了被分配給處理引擎的區(qū)片的序列的第一狀態(tài);

圖8是示出將區(qū)片分配給處理引擎的方法的流程圖;

圖9圖示了被分配給處理引擎的區(qū)片的隊(duì)列的第二狀態(tài);

圖10圖示了被分配給處理引擎的區(qū)片的隊(duì)列的第三狀態(tài);

圖11a示出了可以處理區(qū)片塊的第一順序;

圖11b圖示了可以處理區(qū)片塊的第二順序;

圖12示出了根據(jù)另一示例的圖形處理系統(tǒng);

圖13是示出在另一示例的圖形處理系統(tǒng)中處理基元片段的方法的流程圖;

圖14示出了在其中實(shí)現(xiàn)圖形處理系統(tǒng)的計(jì)算機(jī)系統(tǒng);以及

圖15示出了用于生成實(shí)現(xiàn)圖形處理系統(tǒng)的集成電路的集成電路制造系統(tǒng)。

附圖圖示了各種示例。本領(lǐng)域技術(shù)人員將理解到,附圖中的所圖示的元素邊界(例如,塊、塊組或其他形狀)表示邊界的一個(gè)示例??梢允窃谝恍┦纠?,一個(gè)元素可以被設(shè)計(jì)為多個(gè)元素或多個(gè)元素可以被設(shè)計(jì)為一個(gè)元素。在適當(dāng)?shù)那闆r下,共同附圖標(biāo)記貫穿附圖被用于指示類似特征。

具體實(shí)施方式

現(xiàn)在將僅通過(guò)示例描述實(shí)施例。

圖2示出了可以被用于渲染3D場(chǎng)景的圖像的圖形處理系統(tǒng)200的一些元件。該圖形處理系統(tǒng)200包括圖形處理單元(GPU)202和存儲(chǔ)器2041和存儲(chǔ)器2042的兩個(gè)部分。應(yīng)注意到,存儲(chǔ)器2041和存儲(chǔ)器2042的兩個(gè)部分可以是或可以不是相同物理存儲(chǔ)器的部分,并且存儲(chǔ)器2041和存儲(chǔ)器2042二者可以位于“芯片外”(即,不在與GPU 202相同的芯片上)。存儲(chǔ)器(2041和2042)與GPU 202之間的通信可以在系統(tǒng)200中的通信總線上發(fā)生??梢砸杂布?例如,在集成電路上)、軟件或兩者的組合實(shí)現(xiàn)圖形處理系統(tǒng)。

該GPU 202包括預(yù)處理模塊206、區(qū)片化單元208和柵格化模塊210,其中柵格化模塊210包括隱藏表面移除(HSR)單元212、紋理化/陰影化單元214和后處理模塊230。紋理化/陰影化單元214包括多個(gè)處理引擎216,其可以被稱為“統(tǒng)一陰影化聚類”(USC)。圖2示出了八個(gè)處理引擎2160至2167,其中為了清晰,在圖2中僅其中的兩個(gè)利用附圖標(biāo)記進(jìn)行引用。處理引擎216中的每個(gè)處理引擎216被配置為將紋理化和陰影化中的一者或二者應(yīng)用到基元片段。該紋理化/陰影化單元214還包括高速緩存系統(tǒng)218,其被配置為存儲(chǔ)與基元片段有關(guān)的圖形數(shù)據(jù)。該高速緩存系統(tǒng)218是多級(jí)高速緩存。該高速緩存系統(tǒng)218包括多個(gè)第1級(jí)高速緩存子系統(tǒng)220和第2級(jí)高速緩存222。在圖2中所示的示例中,存在四個(gè)第1級(jí)高速緩存子系統(tǒng)2200至2203,其中為了清晰,在圖2中僅其中的兩個(gè)利用附圖標(biāo)記進(jìn)行引用。該紋理化/陰影化單元214還包括:區(qū)片分配單元224,其包括分配邏輯226;和隊(duì)列228的集合,隊(duì)列228的集合用于存儲(chǔ)被分配給處理引擎的區(qū)片的指示。下面詳細(xì)描述了區(qū)片分配單元224的操作。

由圖形處理系統(tǒng)200所實(shí)現(xiàn)的幾何處理階段可以與由上文所描述的圖形處理系統(tǒng)100所實(shí)現(xiàn)的幾何處理階段相同。因此,預(yù)處理模塊206執(zhí)行諸如修剪/裁剪的功能并且將基元投影到屏幕空間中。該區(qū)片化單元208確定哪些基元存在于圖形處理系統(tǒng)200的渲染空間的區(qū)片中的每個(gè)區(qū)片內(nèi),并且通過(guò)創(chuàng)建針對(duì)區(qū)片的顯示列表將基元分配給渲染空間的區(qū)片,其中針對(duì)區(qū)片的顯示列表包括存在于區(qū)片內(nèi)的基元的指示。該顯示列表和基元從區(qū)片化單元208輸出并且被存儲(chǔ)在存儲(chǔ)器2041中。該顯示列表將數(shù)據(jù)提供給柵格化模塊210以用于渲染柵格化階段中的相應(yīng)區(qū)片內(nèi)的基元片段。作為示例,顯示列表可以包括區(qū)域表頭、控制流和頂點(diǎn)塊。該區(qū)域表頭是指向每區(qū)片控制流的頭部的指針的陣列??刂屏魇侵赶蝽旤c(diǎn)塊的指針的每區(qū)片列表和存在于相應(yīng)區(qū)片內(nèi)的頂點(diǎn)塊內(nèi)的基元的列表。頂點(diǎn)塊包括基元的指數(shù),其中指數(shù)指向包含在相同頂點(diǎn)塊內(nèi)的頂點(diǎn)數(shù)據(jù)(即,頂點(diǎn)塊的上下文內(nèi)的局部指數(shù))。

與參考圖1上文所描述的圖形處理系統(tǒng)100相反,圖形處理系統(tǒng)200可以具有柵格化模塊210中的“飛行中的多個(gè)區(qū)片”(即,在給定時(shí)間處部分處理基元所針對(duì)的多個(gè)區(qū)片)。例如,HSR單元212可以包括多個(gè)深度緩沖器,其被配置為存儲(chǔ)針對(duì)相應(yīng)多個(gè)區(qū)片的深度數(shù)據(jù),使得其能夠在完成區(qū)片內(nèi)的所有基元的處理之前在來(lái)自不同的區(qū)片之間的處理基元之間進(jìn)行切換。這允許基元由柵格化模塊214被處理的順序的較大的靈活性,其可以導(dǎo)致與由在其中在下一區(qū)片的基元中的任一個(gè)由柵格化單元110處理之前一個(gè)區(qū)片的所有基元由柵格化單元110處理的圖形處理系統(tǒng)100所執(zhí)行的處理相比較,由圖形處理系統(tǒng)200對(duì)基元的更高效的處理。例如,如果出于特定于正被處理的區(qū)片的某種原因區(qū)片的處理停止,那么圖形處理系統(tǒng)200的柵格化單元210可以繼續(xù)處理來(lái)自其他區(qū)片的基元,然而圖形處理系統(tǒng)100的柵格化單元110可能停止直到可以針對(duì)停止的區(qū)片恢復(fù)處理。如下面參考圖12和圖12更詳細(xì)描述的,HSR單元可以包括可以并行對(duì)不同的區(qū)片執(zhí)行HSR的超過(guò)一個(gè)HSR模塊。

在其中存在飛行中的多個(gè)區(qū)片的圖形處理系統(tǒng)200中,使用用于將紋理化/陰影化應(yīng)用到特定區(qū)片內(nèi)的所有可見(jiàn)基元的相同處理引擎216可以是高效的。也即,區(qū)片可以被分配用于由處理引擎216之一處理,而不是使用處理引擎216中的超過(guò)一個(gè)處理引擎處理針對(duì)特定區(qū)片的圖形數(shù)據(jù)。這可以是有益的,這是因?yàn)閰^(qū)片中的每個(gè)基元可以使得針對(duì)該基元的紋理數(shù)據(jù)被加載到處理引擎216的本地高速緩存子系統(tǒng)220中。通過(guò)處理來(lái)自單個(gè)處理引擎216中的區(qū)片的基元片段,針對(duì)該區(qū)片中的基元的紋理化/陰影化數(shù)據(jù)需要被加載到該處理引擎216的高速緩存子系統(tǒng)中。相反,如果來(lái)自區(qū)片的基元片段被分布到數(shù)個(gè)處理引擎,則相同紋理化/陰影化數(shù)據(jù)將更可能被復(fù)制在高速緩存子系統(tǒng)220中的數(shù)個(gè)高速緩存子系統(tǒng)220中。而且,如果來(lái)自區(qū)片的基元片段被分布到數(shù)個(gè)處理引擎,則可以存在數(shù)據(jù)的一致性問(wèn)題,例如,假設(shè)不同的處理引擎處理相同采樣位置處的基元。

在一些系統(tǒng)中,區(qū)片被分配給處理引擎以用于根據(jù)負(fù)載平衡分配方案在其上進(jìn)行處理。通過(guò)這種方式,區(qū)片可以被分配給具有防止處理引擎中的任一個(gè)變得空閑的視圖的處理引擎,其可以幫助維持紋理化/陰影化單元214處理區(qū)片的速率。然而,根據(jù)這些負(fù)載平衡方案,在不考慮區(qū)片的空間位置的情況下,可以將區(qū)片分配給處理引擎,并且如下文所描述的,這可能導(dǎo)致高速緩存使用中的低效率。

個(gè)體基元可以存在于超過(guò)一個(gè)區(qū)片內(nèi)。例如,圖3示出了渲染空間內(nèi)的2×4區(qū)片塊300,其中基元304存在于兩個(gè)區(qū)片:區(qū)片3020和區(qū)片3021內(nèi)。因此,針對(duì)基元304的圖形數(shù)據(jù)將被寫(xiě)入到由處理區(qū)片3020和區(qū)片3021的處理引擎使用的高速緩存子系統(tǒng)中。如將明顯的,基元可以覆蓋渲染空間內(nèi)的許多超過(guò)兩個(gè)區(qū)片。

在本文所描述的示例中,處理引擎中的每個(gè)處理引擎與其他處理引擎中的一個(gè)或多個(gè)處理引擎(但非全部)共享L1高速緩存子系統(tǒng)。即,L1高速緩存子系統(tǒng)中的每個(gè)L1高速緩存子系統(tǒng)被耦合到處理引擎中的一個(gè)或多個(gè)處理引擎的相應(yīng)集合。例如,在圖2中所示的紋理化/陰影化單元214中,高速緩存子系統(tǒng)2200至2203中的每一個(gè)被耦合到處理引擎2160至2167中的兩個(gè)的相應(yīng)集合。特別地,高速緩存子系統(tǒng)2200被耦合到處理引擎2160和2161;高速緩存子系統(tǒng)2201被耦合到處理引擎2162和2163;高速緩存子系統(tǒng)2202被耦合到處理引擎2164和2165;并且高速緩存子系統(tǒng)2203被耦合到處理引擎其2166和2167。該高速緩存子系統(tǒng)220被配置為存儲(chǔ)與由高速緩存子系統(tǒng)220耦合到的處理引擎的相應(yīng)集合所處理的基元片段有關(guān)的圖形數(shù)據(jù)。例如,圖形數(shù)據(jù)可以是待應(yīng)用到基元片段的紋理數(shù)據(jù)。

高速緩存子系統(tǒng)220中的每個(gè)高速緩存子系統(tǒng)220被配置為存儲(chǔ)與被分配給該高速緩存子系統(tǒng)220耦合到的處理引擎216的區(qū)片的基元片段有關(guān)的圖形數(shù)據(jù)。該圖形數(shù)據(jù)可以被稱為“基元數(shù)據(jù)”。該圖形數(shù)據(jù)是由處理引擎216用于將紋理化和陰影化中的一者或二者應(yīng)用到基元片段的數(shù)據(jù)。一般而言,該圖形數(shù)據(jù)可以包括用于在處理基元片段中使用的任何數(shù)據(jù)。該圖形數(shù)據(jù)可以被稱為“變化的數(shù)據(jù)”,并且可以包括與頂點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)值,其可以或可以不跨越基元的表面被內(nèi)插或迭代以計(jì)算每片段值。該圖形數(shù)據(jù)可以出于任何適合的目的被使用在運(yùn)行在處理引擎上的片段陰影器中。例如,圖形數(shù)據(jù)可以是顏色數(shù)據(jù)、用于訪問(wèn)紋理的坐標(biāo)、距離數(shù)據(jù)(其可以被用于照明或陰影或凹凸映射或其他一些東西)、不透明的數(shù)據(jù)(其可以被稱為“alpha”數(shù)據(jù))或簡(jiǎn)單地待使用在某種任意計(jì)算中的數(shù)據(jù)值(例如,用于使用在用于產(chǎn)生特定效果的算法中)。該圖形數(shù)據(jù)還可以包括待被用于處理基元片段的其他數(shù)據(jù)(諸如待應(yīng)用到基元片段的紋理的紋理數(shù)據(jù))。

可以利用示例圖示關(guān)于負(fù)載平衡分配方案的問(wèn)題。根據(jù)負(fù)載平衡方案,圖3中所示的區(qū)片3020和區(qū)片3021可以相應(yīng)地被分配例如到處理引擎2160和2165。由于處理引擎2160被耦合到高速緩存子系統(tǒng)2200并且處理引擎2165被耦合到高速緩存子系統(tǒng)2202,因此針對(duì)基元304的圖形數(shù)據(jù)(其存在于區(qū)片3020和3021內(nèi))可以被存儲(chǔ)在高速緩存子系統(tǒng)2200和2202。因此,針對(duì)基元304的圖形數(shù)據(jù)可以被復(fù)制用于兩個(gè)L1高速緩存子系統(tǒng)中的存儲(chǔ)。該復(fù)制表示高速緩存系統(tǒng)218的低效使用。隨著更多數(shù)據(jù)在L1高速緩存子系統(tǒng)中得到復(fù)制,從L1高速緩存子系統(tǒng)中推送出其他數(shù)據(jù)。這使以下內(nèi)容更可能:數(shù)據(jù)被獲取返回到L1,優(yōu)選地從L2高速緩存222,而且可能來(lái)自更高級(jí)存儲(chǔ)器(例如,主存儲(chǔ)器2041或L3高速緩存或L2高速緩存被連接到的任何部件)。

與僅實(shí)現(xiàn)用于將區(qū)片分配給處理引擎的負(fù)載平衡方案的系統(tǒng)相比較,本文所描述的示例可以提高高速緩存效率。特別地,本文所描述的示例利用空間分配方案,其基于區(qū)片的空間位置將區(qū)片分配給處理引擎并且將高速緩存子系統(tǒng)耦合到處理引擎。也即,對(duì)處理引擎216的區(qū)片分配與高速緩存系統(tǒng)218的結(jié)構(gòu)匹配。如下面更詳細(xì)描述的,區(qū)片分配單元224可以在空間分配模式中操作,在空間分配模式中,空間相鄰區(qū)片組根據(jù)空間分配方案被分配給處理引擎216,以確??臻g相鄰區(qū)片組中的每組被分配給耦合到相同高速緩存子系統(tǒng)220的處理引擎216的集合。

參考圖4中所示的流程圖,描述了處理圖形處理系統(tǒng)200中的基元的方法。在步驟S402中,實(shí)現(xiàn)幾何處理階段,如上文所描述的,使得區(qū)片化單元208生成針對(duì)渲染空間的區(qū)片的顯示列表(或控制流)。如上文所描述的,針對(duì)區(qū)片的顯示列表包括存在于區(qū)片內(nèi)的基元的指示。該顯示列表和基元從區(qū)片化單元208輸出并且被存儲(chǔ)在存儲(chǔ)器2041中。

在柵格化階段中,將針對(duì)基元的顯示列表和圖形數(shù)據(jù)提供給柵格化模塊210。圖2中所示的圖形處理系統(tǒng)200是推遲的渲染系統(tǒng),因此在紋理化和/或陰影化被應(yīng)用到基元片段之前應(yīng)用隱藏表面移除。其他圖形處理系統(tǒng)可以是非推遲的渲染系統(tǒng)(即,立即模式渲染系統(tǒng)),并且在那些系統(tǒng)中,在隱藏表面移除被應(yīng)用到基元片段之前應(yīng)用紋理化和/或陰影化。

在步驟S404中,HSR單元212對(duì)針對(duì)渲染空間的區(qū)片的基元片段執(zhí)行隱藏表面移除。為了處理特定區(qū)片,HSR單元212可以接收由針對(duì)如存在于該區(qū)片內(nèi)的特定區(qū)片的顯示列表所指示的基元的位置數(shù)據(jù)。該HSR單元212使用針對(duì)基元的位置數(shù)據(jù)確定區(qū)片內(nèi)的樣本位置處的基元片段是否由其他基元隱藏查看。執(zhí)行隱藏表面移除的方法在本領(lǐng)域中是已知的,并且如此在本文中不更詳細(xì)地描述。然而,作為簡(jiǎn)要并且簡(jiǎn)化的解釋,隱藏表面移除可以涉及對(duì)基元片段、針對(duì)深度緩沖器執(zhí)行深度測(cè)試,并且如果基元片段穿過(guò)深度測(cè)試,其被維持,然而如果基元片段未能進(jìn)行深度測(cè)試,其被移除??梢跃S持深度緩沖器以在每個(gè)樣本位置處存儲(chǔ)已經(jīng)通過(guò)該樣本位置處的深度測(cè)試的最新基元片段的深度值。隱藏表面移除可以是比這更復(fù)雜的(例如,如果基元不是完全不透明的,但是這樣的復(fù)雜的隱藏表面移除技術(shù)的細(xì)節(jié)超過(guò)本公開(kāi)的范圍)。將通過(guò)HSR的基元片段提供給紋理化/陰影化單元214。

在步驟S406中,紋理化/陰影化單元214接收針對(duì)通過(guò)由HSR單元212所執(zhí)行的HSR的基元片段的圖形數(shù)據(jù)(例如,紋理數(shù)據(jù))。例如,HSR單元212可以向紋理化/陰影化單元214提供哪些基元已經(jīng)通過(guò)區(qū)片內(nèi)的每個(gè)樣本位置處的HSR(并且因此可以是可見(jiàn)的)的指示(或“標(biāo)簽”)。該紋理化/陰影化單元214可以從存儲(chǔ)器2041取回針對(duì)所指示的基元的圖形數(shù)據(jù)。所取回的圖形數(shù)據(jù)可以包括針對(duì)基元的位置數(shù)據(jù)以及待應(yīng)用到基元的屬性數(shù)據(jù)(例如,待應(yīng)用到基元的紋理)。

如上文所提到的,區(qū)片可以被分配給處理引擎216,而不是使用處理引擎216中的超過(guò)一個(gè)處理區(qū)片。在步驟S408中,分配單元224將區(qū)片分配給處理引擎216。該區(qū)片分配單元224被配置為在一個(gè)或多個(gè)分配模式(包括空間分配模式,其中空間相鄰區(qū)片組根據(jù)空間分配方案被分配給處理引擎)中操作。如上文所提到的,空間分配方案確保多個(gè)空間相鄰區(qū)片組中的每組被分配給耦合到相同高速緩存子系統(tǒng)220的處理引擎216的集合。例如,參考圖3,區(qū)片3020和3021是空間相鄰區(qū)片并且可以在相同的空間相鄰區(qū)片組中,使得這些區(qū)片將被分配給耦合到相同高速緩存子系統(tǒng)(例如,高速緩存子系統(tǒng)2200)的處理引擎的集合(例如,處理引擎2160和2161)。在這種情況下,針對(duì)基元304的圖形數(shù)據(jù)可以被存儲(chǔ)在耦合到集合中的處理引擎的高速緩存子系統(tǒng)2200中。針對(duì)基元304的圖形數(shù)據(jù)不需要被存儲(chǔ)在其他高速緩存子系統(tǒng)(例如,高速緩存子系統(tǒng)2201、2202或2203)中的任一個(gè)高速緩存子系統(tǒng)中。因此,不存在跨越不同的高速緩存子系統(tǒng)220的用于基元304的圖形數(shù)據(jù)的復(fù)制,并且其他圖形數(shù)據(jù)將需要從L2高速緩存222重新獲取是不太可能的。通過(guò)區(qū)片分配單元224的分配邏輯226執(zhí)行將區(qū)片分配給處理引擎中所涉及的處理。而且,應(yīng)注意到,紋理可以跨越多個(gè)基元被映射。如果紋理數(shù)據(jù)被存儲(chǔ)在高速緩存子系統(tǒng)220中以用于在渲染超過(guò)一個(gè)基元中使用,則高速緩存系統(tǒng)218維持用于在渲染不同的基元中使用的紋理數(shù)據(jù)的高速緩存一致性。如果正使用紋理數(shù)據(jù)處理基元的處理引擎共享共同高速緩存子系統(tǒng)220,則這樣的高速緩存一致性更易于維持。這更可能是當(dāng)相鄰區(qū)片被分配給共享高速緩存子系統(tǒng)220的處理引擎216時(shí)的情況。

在其中基元存在于超過(guò)一個(gè)區(qū)片的情況中,與根據(jù)負(fù)載平衡方案將區(qū)片分配給處理引擎相比較,對(duì)耦合到相同高速緩存子系統(tǒng)的處理引擎的空間相鄰區(qū)片的集合的空間分配降低圖形數(shù)據(jù)由未耦合到相同高速緩存子系統(tǒng)220的處理引擎216需要的可能性。下面描述了將區(qū)片分配給處理引擎的進(jìn)一步的示例。

在步驟S410中,存在于區(qū)片中的基元的圖形數(shù)據(jù)被存儲(chǔ)在高速緩存系統(tǒng)218中。特別地,存在于區(qū)片中的基元的圖形數(shù)據(jù)被存儲(chǔ)在耦合到區(qū)片已經(jīng)分配到的(一個(gè)或多個(gè))搜索引擎216的高速緩存子系統(tǒng)220中。

在步驟S412中,處理引擎216通過(guò)將紋理化和陰影化中的一者或二者應(yīng)用到基元片段來(lái)處理基元片段。該處理引擎216使用存儲(chǔ)在高速緩存系統(tǒng)218中的圖形數(shù)據(jù)(例如,紋理數(shù)據(jù))處理基元片段。如上文所描述的,區(qū)片被分配給處理引擎216,使得處理引擎216中的每個(gè)處理引擎216處理被分配給該處理引擎216的區(qū)片的基元片段。

該圖形處理系統(tǒng)200可以用于在渲染圖像中使用,并且處理引擎216可以輸出用于在生成表示經(jīng)渲染的圖像的像素?cái)?shù)據(jù)中使用的經(jīng)處理的基元片段。例如,在步驟S414中,后處理模塊230可以將諸如濾波的后處理步驟應(yīng)用到從紋理化/陰影化單元214輸出的經(jīng)處理的基元片段,以生成表示經(jīng)渲染的圖像的像素?cái)?shù)據(jù)。該后處理模塊230還可以在其被存儲(chǔ)之前對(duì)經(jīng)渲染的圖像的像素?cái)?shù)據(jù)進(jìn)行壓縮。如將明顯的,由后處理模塊230應(yīng)用的后處理可以包括任何其他適合的過(guò)程(諸如格式轉(zhuǎn)換、伽瑪壓縮、顏色空間轉(zhuǎn)換或格式打包)。

在步驟S416中,像素?cái)?shù)據(jù)(其可以是壓縮的)從后處理模塊230輸出并且被存儲(chǔ)在例如存儲(chǔ)器2042中的像素緩沖器中。

下面更詳細(xì)地描述了將區(qū)片分配給處理引擎216。在空間分配模式中,區(qū)片分配單元224在一個(gè)分配過(guò)程中將區(qū)片塊分配給處理引擎(2160到2167)。通過(guò)這種方式,來(lái)自區(qū)片塊的相應(yīng)的一個(gè)或多個(gè)區(qū)片被分配給處理引擎216中的每個(gè)處理引擎216。例如,在一個(gè)分配過(guò)程中,來(lái)自塊的相等數(shù)目的區(qū)片可以被分配給處理引擎216中的每個(gè)處理引擎216。該區(qū)片塊包括待分配給耦合到相應(yīng)的高速緩存子系統(tǒng)220的處理引擎的不同的集合的多組空間相鄰區(qū)片。例如,圖5示出了區(qū)片塊500。該區(qū)片塊500是4×4區(qū)片塊。在圖5中,區(qū)片塊500中的每個(gè)區(qū)片標(biāo)記有十六進(jìn)制數(shù)字(0到F),使得可以容易地引用塊500中的不同的區(qū)片。在該示例中,區(qū)片塊包括四個(gè)2×2空間相鄰區(qū)片組(在圖5中表示G1、G2、G3和G4)。通過(guò)在一個(gè)分配過(guò)程中分配全部區(qū)片塊,可以確保對(duì)處理引擎的區(qū)片的空間分配與高速緩存系統(tǒng)218的結(jié)構(gòu)匹配。通過(guò)這種方式,基本上同時(shí)執(zhí)行關(guān)于將塊中的區(qū)片中的每個(gè)區(qū)片分配到哪個(gè)處理引擎的決策。如從以下描述將是明顯的,在一個(gè)分配過(guò)程中(即,基本上同時(shí)地)將區(qū)片塊500分配給處理引擎216不必意味著區(qū)片塊500將由處理引擎216同時(shí)處理。

圖6圖示了區(qū)片分配單元224根據(jù)空間分配方案如何將區(qū)片塊500分配給處理引擎216。第一區(qū)片組(G1)被分配給耦合到高速緩存子系統(tǒng)2200的處理引擎2160和2161,使得區(qū)片0和1被分配給處理引擎2160并且區(qū)片2和3被分配給處理引擎2161。第二區(qū)片組(G2)被分配給耦合到高速緩存子系統(tǒng)2201的處理引擎2162和2163,使得區(qū)片4和5被分配給處理引擎2162并且區(qū)片6和7被分配給處理引擎2163。第三區(qū)片組(G3)被分配給耦合到高速緩存子系統(tǒng)2202的處理引擎2164和2165,使得區(qū)片8和9被分配給處理引擎2164并且區(qū)片A和B被分配給處理引擎2165。第四區(qū)片組(G4)被分配給耦合到高速緩存子系統(tǒng)2203的處理引擎2166和2167,使得區(qū)片C和D被分配給處理引擎2166并且區(qū)片E和F被分配給處理引擎2167??梢岳斫?,每個(gè)2×2區(qū)片組(G1到G4)被分配給耦合到相同高速緩存子系統(tǒng)220的處理引擎216對(duì)。因此,在該示例中,一對(duì)中的每個(gè)處理引擎216被分配來(lái)自被分配給該對(duì)處理引擎216的區(qū)片組的兩個(gè)區(qū)片。在其他示例中,不同的數(shù)目的區(qū)片(例如,1或3或更多個(gè)區(qū)片)可以在每個(gè)分配過(guò)程中被分配給每個(gè)處理引擎。

在該示例中,在一個(gè)分配過(guò)程中,每個(gè)處理引擎被分配來(lái)自塊500的兩個(gè)區(qū)片。處理引擎216可以一次處理來(lái)自一個(gè)區(qū)片的數(shù)據(jù),因此處理引擎2160開(kāi)始處理區(qū)片0并且將嘗試在開(kāi)始處理區(qū)片1之前完成區(qū)片0的處理。然而,如果出于某種原因,區(qū)片0的處理在其被完成之前停止,則處理引擎2160可以在區(qū)片0的處理已經(jīng)完成之前執(zhí)行區(qū)片1的一些處理。其他處理引擎216以類似的方式操作。因此,作為示例,區(qū)片0和2將傾向于由相應(yīng)的處理引擎2160和2161并發(fā)地處理,并且區(qū)片1和3將傾向于由相應(yīng)的處理引擎2160和2161并發(fā)地處理。處理引擎2160和2161二者被耦合到高速緩存子系統(tǒng)2200,因此如果例如基元(諸如基元304)存在于區(qū)片0和2二者中,那么處理引擎2160和2161二者可以訪問(wèn)來(lái)自高速緩存子系統(tǒng)2200的基元的圖形數(shù)據(jù)。

將來(lái)自塊的區(qū)片分配給如圖5和圖6中所示的處理引擎,這提供了對(duì)處理引擎216的區(qū)片的好的分布。在備選示例中,區(qū)片0和2可以被分配給處理引擎2160;區(qū)片1和3可以被分配給處理引擎2161;區(qū)片4和6可以被分配給處理引擎2162;區(qū)片5和7可以被分配給處理引擎2163;區(qū)片8和A可以被分配給處理引擎2164;區(qū)片9和B可以被分配給處理引擎2165;區(qū)片C和E可以被分配給處理引擎2166;并且區(qū)片D和F可以被分配給處理引擎2167。區(qū)片的該分配還將根據(jù)空間分配方案,這是因?yàn)槊總€(gè)區(qū)片組(G1到G4)被分配給耦合到相同高速緩存子系統(tǒng)220的處理引擎216的相應(yīng)集合。然而,這將傾向于導(dǎo)致不同的區(qū)片并發(fā)地處理。例如,區(qū)片0和1將然后傾向于由相應(yīng)的處理引擎2160和2161并發(fā)地處理并且區(qū)片2和3將傾向于由相應(yīng)的處理引擎2160和2161并發(fā)地處理。在用戶界面使用案例(諸如視頻合成)中,圖形數(shù)據(jù)的重要比例可以是基于步幅的紋理數(shù)據(jù),并且可以因此存在用于分配如圖6中所示的區(qū)片的輕微偏好,這是因?yàn)槿绻麉^(qū)片的水平對(duì)傾向于并發(fā)地處理,則用于從高速緩存系統(tǒng)218讀取紋理數(shù)據(jù)的高速緩存命中率可以平均比在區(qū)片的垂直對(duì)傾向于并發(fā)地處理的情況下稍微更高。

可以理解,與負(fù)載平衡分配方案相比較,用于根據(jù)高速緩存系統(tǒng)218的結(jié)構(gòu)將區(qū)片分配給處理引擎的空間分配方案可以改進(jìn)高速緩存命中率。在降低在GPU 202與存儲(chǔ)器2041(其可以是芯片外存儲(chǔ)器)之間傳送的數(shù)據(jù)量并且降低在高速緩存層次結(jié)構(gòu)的不同級(jí)之間傳送的數(shù)據(jù)量方面,這可以是有益的。在紋理化/陰影化單元214的處理速度和功耗方面,其還可以是有益的。

因此,在高速緩存系統(tǒng)218的效率與跨越不同的處理引擎的負(fù)載的平衡之間存在權(quán)衡。特別地,如果當(dāng)存在準(zhǔn)備執(zhí)行的處理時(shí)處理引擎216中的任一個(gè)處理引擎變得空閑,則其可以降低紋理化/陰影化單元214的效率。因此,在一些場(chǎng)景中,返回到負(fù)載平衡分配模式以避免處理引擎中的任一個(gè)處理引擎變得空閑可以是有益的。

因此,區(qū)片分配單元224可以在負(fù)載平衡分配模式中操作,其中區(qū)片基于處理引擎216的計(jì)算負(fù)載而被分配給處理引擎216。特別地,如果處理引擎216中的任一個(gè)處理引擎上的負(fù)載下降到小于閾值水平,那么一個(gè)或多個(gè)區(qū)片可以被分配給該處理引擎216從而增加該處理引擎216上的負(fù)載。這可以利用近似地維持處理引擎216中的每個(gè)處理引擎216上的相同計(jì)算負(fù)載的視圖而完成。

該區(qū)片分配單元224包括隊(duì)列的集合228。該區(qū)片分配單元224(特別地區(qū)片分配單元224的分配邏輯226)針對(duì)處理引擎216中的每個(gè)處理引擎216維持被分配用于由該處理引擎216處理的已分配的區(qū)片的隊(duì)列。圖7圖示了被分配給八個(gè)處理引擎2160到2167的區(qū)片的隊(duì)列228的狀態(tài)。應(yīng)注意到,隊(duì)列228包含被分配給相應(yīng)的處理引擎216的區(qū)片的指示(例如,區(qū)片ID),而不是存儲(chǔ)用于渲染區(qū)片的實(shí)際的區(qū)片數(shù)據(jù)。圖7中所示的圖形圖示了針對(duì)處理引擎216中的每個(gè)處理引擎216的隊(duì)列中的區(qū)片的數(shù)目。當(dāng)區(qū)片已經(jīng)由處理引擎216處理時(shí),從針對(duì)該處理引擎216的隊(duì)列移除區(qū)片;并且當(dāng)區(qū)片被分配給處理引擎216時(shí),區(qū)片被添加到針對(duì)該處理引擎216的隊(duì)列。因此,隊(duì)列示出已經(jīng)被分配給處理引擎216但是尚未完全由處理引擎216處理的區(qū)片。在一些其他示例中,當(dāng)處理開(kāi)始處理該區(qū)片時(shí),可以從針對(duì)處理引擎的隊(duì)列移除區(qū)片。當(dāng)處理引擎216準(zhǔn)備開(kāi)始處理新的區(qū)片時(shí),區(qū)片分配單元224通過(guò)查詢適當(dāng)?shù)年?duì)列228確定處理引擎216接下來(lái)將處理哪個(gè)區(qū)片。隊(duì)列可以以先進(jìn)先出(FIFO)或根據(jù)任何其他適合的排隊(duì)方案操作。

如在圖7中所示,存在在任何給定時(shí)間可以被分配給處理引擎的區(qū)片的數(shù)目的最大值。利用圖7中的虛線(“最大”)示出該最大值。作為示例,最大數(shù)可以是六。在其他示例中,最大值可以被設(shè)定到不同的數(shù)目。將最大值設(shè)置到可以分配給處理引擎的區(qū)片的數(shù)目防止不同的處理引擎上的區(qū)片的處理與彼此同步偏離太遠(yuǎn)。這幫助確保近似地同時(shí)處理由不同的處理引擎處理的空間相鄰區(qū)片。作為示例,在共享高速緩存子系統(tǒng)220的兩個(gè)不同的處理引擎216上保持兩個(gè)空間相鄰區(qū)片的處理時(shí)間地接近在一起,這增加了以下內(nèi)容的可能性:對(duì)于這兩個(gè)區(qū)片有用的高速緩存子系統(tǒng)220中的圖形數(shù)據(jù)在其從高速緩存子系統(tǒng)220驅(qū)逐之前可以由不同的處理引擎使用。高速緩存子系統(tǒng)可以例如根據(jù)最近最少使用(LRU)高速緩存驅(qū)逐策略進(jìn)行操作。可以使用其他高速緩存驅(qū)逐策略。

圖7還示出了“分配閾值”和“加載閾值”。這些是隊(duì)列中的區(qū)片的數(shù)目的閾值并且被用于控制在其中操作分配單元224的分配模式,如下文所描述的。分配閾值比加載閾值更高。例如,分配閾值可以是四,并且加載閾值可以是二,但是在其他示例中,閾值可以采取不同值。最大值、分配閾值和加載閾值可以是固定或變化的。如從以下描述將變得明顯的,如果隊(duì)列處于圖7中所示的狀態(tài)(具有大于分配閾值的至少一個(gè)隊(duì)列并且沒(méi)有小于加載閾值的隊(duì)列),那么在該時(shí)間處沒(méi)有區(qū)片將被分配給處理引擎,并且處理引擎將繼續(xù)處理針對(duì)處理引擎排隊(duì)的區(qū)片。

參考圖8中所示的流程圖描述了區(qū)片分配單元224的操作。該區(qū)片分配單元224監(jiān)視隊(duì)列的狀態(tài)以確定在其中區(qū)片將被分配給處理引擎216的分配模式。初始地,當(dāng)隊(duì)列228是空的時(shí),區(qū)片分配單元224在空間分配模式中操作。在步驟S802中,區(qū)片塊被分配給處理引擎216,如上文所描述的,使得空間相鄰區(qū)片組被分配給耦合到相同高速緩存子系統(tǒng)220的處理引擎216的相應(yīng)集合。例如,區(qū)片塊(例如,塊500)的分配可以導(dǎo)致將兩個(gè)區(qū)片分配給處理引擎216中的每個(gè)處理引擎216。

在步驟S804中,區(qū)片分配單元224(例如,分配邏輯226)確定所有隊(duì)列是否小于或等于分配閾值。換句話說(shuō),在步驟S804中,區(qū)片分配單元224(例如,分配邏輯226)確定隊(duì)列中的每個(gè)隊(duì)列中的已分配的區(qū)片的數(shù)目是否不大于分配閾值。如果在步驟S804中檢測(cè)到隊(duì)列228中的每個(gè)隊(duì)列228中的已分配的區(qū)片的數(shù)目不大于分配閾值,那么方法轉(zhuǎn)到步驟S802,并且如上文所描述的,在空間分配模式中實(shí)現(xiàn)分配過(guò)程從而將區(qū)片塊分配給處理引擎216。通過(guò)這種方式,區(qū)片被分配給處理引擎以將區(qū)片的空間位置與高速緩存系統(tǒng)218的結(jié)構(gòu)匹配。圖9示出了在其中沒(méi)有隊(duì)列大于分配閾值的示例,使得方法從步驟S804轉(zhuǎn)到步驟S802,使得區(qū)片塊在空間分配模式中被分配給處理引擎216。

在一些示例中,可以被包括在隊(duì)列中的區(qū)片的最大數(shù)與分配閾值之間的差等于當(dāng)區(qū)片塊被分配給處理引擎時(shí)被分配給每個(gè)處理引擎的區(qū)片的數(shù)目。

如果隊(duì)列228中的至少一個(gè)隊(duì)列大于分配閾值,那么在那時(shí)區(qū)片塊未被分配給處理引擎。在這種情況下,方法從步驟S804轉(zhuǎn)到步驟S806。在步驟S806中,區(qū)片分配單元224(例如,分配邏輯226)確定隊(duì)列中的任一個(gè)隊(duì)列是否小于加載閾值。換句話說(shuō),在步驟S806中,區(qū)片分配單元224(例如,分配邏輯226)確定隊(duì)列中的任一個(gè)隊(duì)列中的已分配的區(qū)片的數(shù)目是否小于加載閾值。如果在步驟S806中檢測(cè)到隊(duì)列228中的任一個(gè)隊(duì)列中的已分配的區(qū)片的數(shù)目小于加載閾值,那么方法轉(zhuǎn)到步驟S808。在步驟S808中,分配單元224在負(fù)載平衡分配模式中將區(qū)片分配給處理引擎。如上文所描述的,在負(fù)載平衡分配模式中,可以利用平衡跨越不同的處理引擎的負(fù)載的視圖將區(qū)片分配給處理引擎。特別地,在負(fù)載平衡分配模式中,可以將不同的數(shù)目的區(qū)片分配給不同的處理引擎。圖10示出了在其中隊(duì)列(隊(duì)列3和5)中的至少一個(gè)隊(duì)列小于加載閾值的示例,使得方法從步驟S806轉(zhuǎn)到步驟S808使得在負(fù)載平衡分配模式中區(qū)片被分配給處理引擎216。

在處理中所涉及的工作量對(duì)于不同的區(qū)片而言可以是不同的,并且高度依賴于正運(yùn)行的應(yīng)用。例如,與圖像的其他區(qū)域(例如,邊緣)相比較,游戲應(yīng)用可以常常使用其中在圖像的一些區(qū)域(例如,中心)中找到更高級(jí)的細(xì)節(jié),使得中心區(qū)片的處理涉及比渲染空間的邊緣區(qū)片的處理更多工作的圖像。對(duì)于其他應(yīng)用而言(例如,為了渲染用戶界面(UI)),細(xì)節(jié)水平可以跨越全部圖像是近似恒定的,使得所有區(qū)片的處理近似地涉及相同工作量。在不同的區(qū)片上所執(zhí)行的處理的數(shù)量中的差異可能導(dǎo)致一些處理引擎在其已經(jīng)處理的區(qū)片的數(shù)目方面落后在其他處理引擎后面。隨著時(shí)間逝去,這些差異可以導(dǎo)致針對(duì)不同的處理引擎216排隊(duì)的區(qū)片的數(shù)目中的顯著差異。這可以導(dǎo)致在其中隊(duì)列中的一個(gè)或多個(gè)下降到小于加載閾值,同時(shí)隊(duì)列中的不同的一個(gè)或多個(gè)大于分配閾值的情況。在這種情況下,調(diào)用負(fù)載平衡分配模式以解決對(duì)于不同的處理引擎216當(dāng)前排隊(duì)的計(jì)算負(fù)載中的不平衡。

在步驟S808中分配的區(qū)片的數(shù)目在不同的示例中可以是不同的。例如,響應(yīng)于檢測(cè)到在步驟S806中隊(duì)列中的任一個(gè)隊(duì)列中的已分配的區(qū)片的數(shù)目小于加載閾值,在步驟S808中,在負(fù)載平衡分配模式中區(qū)片分配單元224可以將足夠的區(qū)片分配給處理引擎216以填充隊(duì)列中的每個(gè)隊(duì)列(即,使所有隊(duì)列直到最大線)。這是確保針對(duì)處理引擎中的每個(gè)處理引擎中的的隊(duì)列中的當(dāng)前的區(qū)片數(shù)目相同的簡(jiǎn)單的方式。

在另一示例中,在步驟S808中,區(qū)片分配單元224可以標(biāo)識(shí)當(dāng)前在隊(duì)列中的任一個(gè)隊(duì)列中的區(qū)片的最大數(shù)并且可以將區(qū)片分配給處理引擎216,使得所有隊(duì)列具有所標(biāo)識(shí)的數(shù)目的區(qū)片。這是確保分配給處理引擎中的每個(gè)處理引擎的區(qū)片的數(shù)目相同的另一方式。這可以涉及與使所有隊(duì)列直到最大隊(duì)列占用相比較在負(fù)載平衡模式中分配更少的區(qū)片。在負(fù)載平衡模式中分配更少的區(qū)片可以意味著可以在空間分配模式中分配更多區(qū)片,其可以改進(jìn)高速緩存效率,如上文所描述的。

在另一示例中,在步驟S808中,區(qū)片分配單元224可以將區(qū)片分配給處理引擎216,使得所有隊(duì)列具有至少等于分配閾值的區(qū)片數(shù)目。在又一示例中,在步驟S808中,區(qū)片分配單元224可以將區(qū)片分配給處理引擎216,使得所有隊(duì)列具有至少等于加載閾值的區(qū)片數(shù)目。這些示例可以導(dǎo)致在負(fù)載平衡模式中分配甚至更少的區(qū)片,但是其可以導(dǎo)致在步驟S808中比在其他先前所描述的示例中被執(zhí)行更頻繁。

在一些示例中,步驟S808可以涉及以負(fù)載平衡方式將區(qū)片塊分配給處理引擎(例如,將來(lái)自塊的不同的數(shù)目的區(qū)片分配給不同的處理引擎)。這意味著當(dāng)分配模式切換回到空間分配模式時(shí),已經(jīng)分配全部數(shù)目的區(qū)片塊,其可以簡(jiǎn)化切換回到空間分配模式的過(guò)程。

如果在步驟S806中確定沒(méi)有隊(duì)列小于加載閾值(例如,如果隊(duì)列處于圖7中所示的狀態(tài)),那么方法轉(zhuǎn)到步驟S804。而且,跟隨步驟S808,方法轉(zhuǎn)到步驟S804。當(dāng)不再存在分配給處理引擎216的區(qū)片時(shí),方法結(jié)束。

在上文所描述的示例中,除非在處理引擎中的不同的一個(gè)或多個(gè)處理引擎準(zhǔn)備好在空間分配模式中待分配的新的區(qū)片塊之前處理引擎風(fēng)險(xiǎn)中的一個(gè)或多個(gè)變得空閑的意義上區(qū)片的處理是不平衡的,否則空間分配模式被用于改進(jìn)高速緩存效率。在該情況下,負(fù)載平衡分配模式被用于防止處理引擎變得空閑。因此,在(通過(guò)使用空間分配模式所實(shí)現(xiàn)的)高速緩存效率與(通過(guò)使用負(fù)載平衡分配模式所實(shí)現(xiàn)的)負(fù)載平衡之間的權(quán)衡中,除非通過(guò)超過(guò)(由加載閾值設(shè)定的)閾值,在該點(diǎn)處負(fù)載平面取得超過(guò)高速緩存效率的優(yōu)先級(jí),否則區(qū)片分配單元224旨在用于高速緩存效率。因此,這時(shí)區(qū)片分配單元224切換到在負(fù)載平衡模式中進(jìn)行操作。然而,一旦負(fù)載已經(jīng)重新平衡,則區(qū)片分配單元224可以然后切換回到空間分配模式以維持高速緩存效率。因此,如果在處理每個(gè)區(qū)片中所涉及的工作是近似相同的,那么區(qū)片分配單元224可能能夠主要地(可能地專有地)在空間分配模式中操作;然而,如果在處理每個(gè)區(qū)片中所涉及的工作對(duì)于不同的區(qū)片而言是顯著地不同的,那么區(qū)片分配單元224可以更頻繁地切換到負(fù)載平衡分配模式來(lái)確保負(fù)載跨越不同的處理引擎被平衡并且防止處理引擎中的任一個(gè)處理引擎變得空閑。

圖5示出了在一個(gè)分配過(guò)程中待分配給處理引擎216的一個(gè)區(qū)片塊500。渲染空間可以包括許多區(qū)片塊。例如,圖11a示出了渲染空間1100,其包括以8×8布置的64個(gè)區(qū)片塊。利用附圖標(biāo)記1102、1104和1106表示區(qū)片塊中的三個(gè)。區(qū)片塊中的每個(gè)區(qū)片塊可以是4×4區(qū)片塊(諸如圖5中所示的塊500)。區(qū)片分配單元224可以按順序處理區(qū)片塊。圖11a示出了其中首先處理塊1102然后按順序處理來(lái)自第一列塊(以塊1104結(jié)束)的下三個(gè)塊。然后處理塊1106,并且隨后處理來(lái)自第二列的下三個(gè)塊。處理序列可以跟隨圖11a中所示的圖案(例如,根據(jù)空間填充曲線,諸如根據(jù)莫頓序或希爾伯特曲線)直到來(lái)自各列的前四個(gè)塊已經(jīng)處理。然后,序列重復(fù)來(lái)自每列的后四個(gè)塊直到渲染空間1100中的所有區(qū)片塊已經(jīng)處理。在該示例中,利用維持連續(xù)地處理的區(qū)片塊之間的空間位置的程度的視圖,僅四個(gè)塊在移動(dòng)到下一列之前從每列被處理(即,兩個(gè)連續(xù)地處理塊之間的空間位置中的差異保持相對(duì)小(與在移動(dòng)到下一列之前處理全部列相比較)),從而增加在處理一個(gè)塊之后高速緩存的內(nèi)容對(duì)于處理下一塊可以有用的可能性。

盡管連續(xù)地處理的區(qū)片塊之間的空間位置中的跳躍在圖11a中所示的示例中可以是相對(duì)小的,但是存在來(lái)自塊的每列的第一塊、第四塊、第五塊和第八塊處按順序待處理的連續(xù)的區(qū)片塊之間的空間位置中的不連續(xù)性。諸如這些的不連續(xù)性意味著被存儲(chǔ)在針對(duì)一個(gè)塊的高速緩存218中的數(shù)據(jù)可能不太可能對(duì)于按順序的下一塊的處理是有用的,使得當(dāng)在處理的塊的序列中存在不連續(xù)性時(shí),高速緩存命中率可能減小。

為了解決該問(wèn)題,區(qū)片分配單元224處理區(qū)片塊的順序可以是以光柵掃描順序。例如,圖11b示出了渲染空間1110,渲染空間1110包括以8×8布置的64個(gè)區(qū)片塊。利用附圖標(biāo)記1112、1114和1116表示區(qū)片塊中的三個(gè)塊。區(qū)片塊中的每個(gè)塊可以是4×4區(qū)片塊(諸如圖5中所示的塊500)。該區(qū)片分配單元224可以以光柵掃描順序處理區(qū)片塊,使得首先處理塊1112,然后處理第一行的塊的剩余部分,以塊1114結(jié)束。然后,處理下一行塊的塊,以塊1116開(kāi)始。進(jìn)而處理每行塊直到渲染空間1110中的所有區(qū)片塊已經(jīng)被處理。

利用圖11b中所示的順序,在來(lái)自每行塊的第一塊和第八塊處按順序待處理的連續(xù)區(qū)片塊之間的空間位置中存在不連續(xù)性。這意味著與利用圖11a中所示的順序相比較存在關(guān)于圖11b中所示的順序的更少的不連續(xù)性。更少的不連續(xù)性意味著高速緩存命中率可能增加。用于處理區(qū)片塊的最好順序可以依賴于正被處理的數(shù)據(jù)的內(nèi)容。

在另一示例中,塊的行可以按順序處理(與如在圖11b中所示類似),但是備選行可以以相反順序處理(即,從右到左)(即,塊可以以右行左行交互書(shū)寫(xiě)順序處理)。這將進(jìn)一步降低處理塊的順序中的不連續(xù)性的數(shù)目。

一般而言,區(qū)片分配單元224處理區(qū)片塊的順序可以以任何適合的順序(例如,在系統(tǒng)內(nèi)定義的約束順序)。

圖12示出了可以通過(guò)硬件(例如,在集成電路上)、軟件或二者的組合實(shí)現(xiàn)的圖形處理系統(tǒng)1200的另一示例。該圖形處理系統(tǒng)1200與上文所描述的圖形處理系統(tǒng)200類似。然而,在圖形處理系統(tǒng)1200中,在HSR單元內(nèi)存在多個(gè)HSR模塊。對(duì)處理引擎的區(qū)片的分配分成兩級(jí):在第一級(jí)中區(qū)片被分配給HSR模塊,并且在第二級(jí)中來(lái)自HSR模塊的區(qū)片被分配給處理引擎。通過(guò)這種方式,在HSR已經(jīng)執(zhí)行之后,在每HSR模塊基礎(chǔ)上,區(qū)片被分配給處理引擎。

特別地,圖形處理系統(tǒng)1200包括圖形處理單元(GPU)1202和存儲(chǔ)器2041和存儲(chǔ)器2042的兩個(gè)部分。共同附圖標(biāo)記在圖2和圖12中被用于相同的部件。該GPU 1202包括預(yù)處理模塊206、區(qū)片化單元208和柵格化模塊1210,其中柵格化模塊1210包括隱藏表面移除(HSR)單元1212、紋理化/陰影化單元1214和后處理模塊1230。該HSR單元1212包括HSR區(qū)片分配單元1211和多個(gè)HSR模塊12130和12131。在圖12中所示的示例中,存在兩個(gè)HSR模塊1213,但是在其他示例中,在HSR單元1212中可以存在超過(guò)兩個(gè)HSR模塊1213。該HSR模塊可以對(duì)不同的區(qū)片并行執(zhí)行HSR。該紋理化/陰影化單元1214包括多個(gè)處理引擎1216,其中的每一個(gè)被配置為將紋理和陰影中的一者或二者應(yīng)用到基元片段。該紋理化/陰影化單元1214還包括高速緩存系統(tǒng)1218,其被配置為存儲(chǔ)與基元片段有關(guān)的圖形數(shù)據(jù)。該高速緩存系統(tǒng)1218是多級(jí)高速緩存并且對(duì)應(yīng)于上文所描述的高速緩存系統(tǒng)218。該高速緩存系統(tǒng)1218包括多個(gè)第1級(jí)高速緩存子系統(tǒng)1220和第2級(jí)高速緩存1222。高速緩存子系統(tǒng)1220中的每個(gè)高速緩存子系統(tǒng)1220被耦合到處理引擎1216的集合。在圖12中所示的示例中,存在四個(gè)第1級(jí)高速緩存子系統(tǒng)12200到12203。該紋理化/陰影化單元1214還包括:區(qū)片分配單元1224,其包括分配邏輯1226;和隊(duì)列的集合1228,其用于存儲(chǔ)被分配給處理引擎的區(qū)片的指示。該HSR分配單元1211和區(qū)片分配單元1224提供系統(tǒng)1200中的區(qū)片分配的兩級(jí)。在參考圖13中所示的流程圖描述的圖形處理系統(tǒng)1200的操作的上下文中,描述了HSR區(qū)片分配單元1211和區(qū)片分配單元1224的操作。

在步驟S1302中,以與上文所描述的方式相同的方式實(shí)現(xiàn)幾何處理階段,使得區(qū)片化單元208生成針對(duì)渲染空間的區(qū)片的顯示列表(或控制流)。該顯示列表和基元從區(qū)片化單元208輸出并且被存儲(chǔ)在存儲(chǔ)器2041中。

在柵格化階段中,將針對(duì)基元的顯示列表和圖形數(shù)據(jù)提供給柵格化模塊1210。在步驟S1304中,HSR區(qū)片分配單元1211將區(qū)片分配給HSR模塊12130和12131。在步驟S1306中,HSR單元1212的HSR模塊12310和12131對(duì)針對(duì)渲染空間的區(qū)片的基元片段執(zhí)行隱藏表面移除。

在步驟S1308中,紋理化/陰影化單元214接收針對(duì)通過(guò)由HSR單元1212的HSR模塊1213執(zhí)行的HSR的基元片段的圖形數(shù)據(jù)。

在步驟S1310中,在每HSR模塊基礎(chǔ)上,區(qū)片分配單元1224在一個(gè)或多個(gè)分配模式中將區(qū)片分配給處理引擎。該分配模式可以例如包括上文所描述的空間分配模式和負(fù)載平衡分配模式。

步驟S1312和S1318對(duì)應(yīng)于上文所描述的步驟S410到S416。因此,在步驟S1312中,存在于區(qū)片中的基元的圖形數(shù)據(jù)被存儲(chǔ)在高速緩存系統(tǒng)1218中。特別地,存在于區(qū)片中的基元的圖形數(shù)據(jù)被存儲(chǔ)在耦合到區(qū)片已經(jīng)分配到的(多個(gè))搜索引擎1216的高速緩存子系統(tǒng)1220中。在步驟S1314中,處理引擎1216通過(guò)將紋理化和陰影化之一或之二應(yīng)用到基元片段來(lái)處理基元片段。該處理引擎1216使用存儲(chǔ)在高速緩存系統(tǒng)1218中的圖形數(shù)據(jù)來(lái)處理基元片段。在步驟S1316中,后處理模塊1230可以將后處理步驟(諸如濾波、壓縮、格式轉(zhuǎn)換、伽瑪壓縮、顏色空間轉(zhuǎn)換或格式打包)應(yīng)用到從紋理化/陰影化單元1214輸出的經(jīng)處理的基元片段,以生成表示經(jīng)渲染的圖像的像素?cái)?shù)據(jù)。在步驟S1318中,像素?cái)?shù)據(jù)(其可以是壓縮的)從后處理模塊1230輸出并且被存儲(chǔ)在例如存儲(chǔ)器2042中的像素緩沖器中。

在上文所描述的示例中,高速緩存系統(tǒng)218(或高速緩存系統(tǒng)1218)包括第2級(jí)高速緩存222和四個(gè)第1級(jí)高速緩存子系統(tǒng)2200到2203。在其他實(shí)施例中,高速緩存系統(tǒng)可能不包括第2層高速緩存或可能包括高速緩存層次結(jié)構(gòu)內(nèi)的超過(guò)兩級(jí)。此外,其他示例可以包括不同的數(shù)目的L1高速緩存子系統(tǒng)和/或處理引擎。例如,高速緩存子系統(tǒng)可以耦合到超過(guò)兩個(gè)處理引擎。而且,并非高速緩存系統(tǒng)內(nèi)的所有高速緩存子系統(tǒng)必然地耦合到超過(guò)一個(gè)處理引擎。此外,每個(gè)處理引擎可以耦合到高速緩存子系統(tǒng)中的超過(guò)一個(gè)高速緩存子系統(tǒng)。在上文所描述的示例中,區(qū)片塊是4×4區(qū)片塊(例如,塊500),但是更一般地,區(qū)片塊可以是任何適合的大小和/或形狀。例如,區(qū)片塊可以是6×2區(qū)片塊。在該情況下,可以存在十二個(gè)處理引擎,使得當(dāng)區(qū)片塊被分配時(shí),來(lái)自塊的一個(gè)區(qū)片可以被分配給處理引擎中的每個(gè)處理引擎。

圖14示出了在其中可以實(shí)現(xiàn)圖形處理系統(tǒng)200或1200的計(jì)算機(jī)系統(tǒng)。該計(jì)算機(jī)系統(tǒng)包括CPU 1402、GPU 202、存儲(chǔ)器1404(其可以包括存儲(chǔ)器2041和2042)和其他設(shè)備1406(諸如顯示器1408、揚(yáng)聲器1410和照相機(jī)1412)。計(jì)算機(jī)系統(tǒng)的部件可以經(jīng)由通信總線1414彼此通信。作為示例,應(yīng)用可以在CPU 1402上執(zhí)行并且可以將數(shù)據(jù)發(fā)送到GPU 202以用于渲染可以被存儲(chǔ)在存儲(chǔ)器1404中和/或被顯示在顯示器1408上的圖像。

一般地,可以在使用軟件、固件、硬件(例如,固定邏輯電路)或這些實(shí)施方式的任何組合的模塊中實(shí)現(xiàn)上文所描述的功能、方法、技術(shù)或部件(例如,圖形處理系統(tǒng)202的部件)中的任一個(gè)。術(shù)語(yǔ)“模塊”、“功能”、“部件”、“塊”、“單元”和“邏輯”在本文中被用于一般地表示軟件、固件、硬件或其任何組合。

在軟件實(shí)施方式的情況下,模塊、功能、部件或邏輯表示當(dāng)執(zhí)行在處理器(例如,一個(gè)或多個(gè)CPU)上時(shí)執(zhí)行指定任務(wù)的程序代碼。在一個(gè)示例中,可以通過(guò)被配置有以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的機(jī)器可讀形式的軟件的計(jì)算機(jī)執(zhí)行所描述的方法。計(jì)算機(jī)可讀介質(zhì)的一個(gè)這樣的配置是信號(hào)承載介質(zhì)并且因此被配置為將指令(例如,作為載波)(諸如經(jīng)由網(wǎng)絡(luò))發(fā)送到計(jì)算設(shè)備。該計(jì)算機(jī)可讀介質(zhì)還可以被配置為非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)并且因此不是信號(hào)承載介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例包括隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、光盤、閃速存儲(chǔ)器、硬盤存儲(chǔ)器以及可以使用磁性、光學(xué)和其他技術(shù)存儲(chǔ)能夠由機(jī)器訪問(wèn)的指令或其他數(shù)據(jù)的其他存儲(chǔ)器設(shè)備。

該軟件可以以包括用于將計(jì)算機(jī)配置為執(zhí)行所描述的方法的組成部分的計(jì)算機(jī)程序代碼的計(jì)算機(jī)程序的形式,或者包括適于當(dāng)程序運(yùn)行在計(jì)算機(jī)上時(shí)并且在計(jì)算機(jī)程序可以實(shí)現(xiàn)在計(jì)算機(jī)可讀介質(zhì)上的情況下執(zhí)行本文所描述的方法中的任一個(gè)方法的所有步驟的計(jì)算機(jī)程序代碼裝置的計(jì)算機(jī)程序的形式。該程序代碼可以被存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中。本文所描述的技術(shù)的特征是平臺(tái)獨(dú)立的,這意味著可以在具有各種處理器的各種計(jì)算平臺(tái)上實(shí)現(xiàn)本文所描述的技術(shù)。

本領(lǐng)域的技術(shù)人員還將認(rèn)識(shí)到,可以通過(guò)專用電路、專用集成電路、可編程邏輯陣列、現(xiàn)場(chǎng)可編程門陣列等執(zhí)行本文所描述的功能、技術(shù)或方法的全部或一部分。例如,模塊、功能、部件、單元或邏輯(例如,圖形處理系統(tǒng)202的部件)可以包括以電路的形式的硬件。這樣的電路可以包括在制造過(guò)程中可用的晶體管和/或其他硬件元件。這樣的晶體管和/或其他元件可以被用于形成實(shí)現(xiàn)和/或包含存儲(chǔ)器的電路或結(jié)構(gòu)(諸如,舉例來(lái)說(shuō),寄存器、觸發(fā)器或鎖存器、邏輯運(yùn)算符(諸如布爾運(yùn)算)、數(shù)學(xué)運(yùn)算符(諸如加法器、乘法器、移位器)以及互連)。這樣的元件可以被提供為定制電路或標(biāo)準(zhǔn)單元庫(kù)、宏或在其他抽象度處。這樣的元件可以以特定布置相互連接。模塊、功能、部件、單元或邏輯(例如,圖形處理系統(tǒng)202的部件)可以包括作為固定功能的電路和可以被編程為執(zhí)行(一個(gè)或多個(gè))功能的電路;可以根據(jù)固件或軟件更新或控制機(jī)制提供這樣的編程。在示例中,硬件邏輯具有實(shí)現(xiàn)固定功能操作、狀態(tài)機(jī)或過(guò)程的電路。

還預(yù)期涵蓋“描述”或定義實(shí)現(xiàn)上文所描述的模塊、功能、部件、單元或邏輯(例如,圖形處理系統(tǒng)202的部件)的硬件的配置的軟件(諸如HDL(硬件描述語(yǔ)言)軟件),如被用于設(shè)計(jì)集成電路或用于將可編程芯片配置為執(zhí)行期望的功能。也即,可以提供已經(jīng)在其上編碼以集成電路定義數(shù)據(jù)集的形式的計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其當(dāng)在集成電路制造系統(tǒng)中處理時(shí),將系統(tǒng)配置為制造被配置為執(zhí)行本文所描述的方法中的任一個(gè)方法的圖形處理系統(tǒng)或制造包括本文所描述的任何裝置的圖形處理系統(tǒng)。IC定義數(shù)據(jù)集可以例如以適合的HDL(諸如寄存器傳送級(jí)(RTL)代碼)書(shū)寫(xiě)的計(jì)算機(jī)代碼的形式。圖15示出了集成電路(IC)制造系統(tǒng)1502的示例,其包括布局處理系統(tǒng)1504和集成電路生成系統(tǒng)1506。IC制造系統(tǒng)1502被配置為接收IC定義數(shù)據(jù)集(例如,定義如在本文中的示例中的任一個(gè)示例中所描述的圖形處理系統(tǒng))、處理IC定義數(shù)據(jù)集,并且根據(jù)IC定義數(shù)據(jù)集(例如其實(shí)現(xiàn)如在本文中的示例中的任一個(gè)示例中所描述的圖形處理系統(tǒng))來(lái)生成IC。IC定義數(shù)據(jù)集的處理將IC制造系統(tǒng)1502配置為制造實(shí)現(xiàn)如在本文中的示例中的任一個(gè)中所描述的圖形處理系統(tǒng)的集成電路。更特別地,布局處理系統(tǒng)1504被配置為接收和處理IC定義數(shù)據(jù)集以確定電路布局。根據(jù)IC定義數(shù)據(jù)集確定電路布局的方法在本領(lǐng)域中是已知的,并且例如可以涉及合成RTL代碼來(lái)確定要被生成的電路的門級(jí)表示(例如,在邏輯部件(例如,NAND、NOR、AND、OR、MUX以及FLIP-FLOP部件)方面)??梢酝ㄟ^(guò)確定針對(duì)邏輯部件的位置信息根據(jù)電路的門級(jí)表示確定電路布局。這可以自動(dòng)地或在用戶介入的情況下完成以便優(yōu)化電路部件。當(dāng)布局處理系統(tǒng)1504已經(jīng)確定電路布局時(shí),其可以將電路部件定義輸出到IC生成系統(tǒng)1506。IC生成系統(tǒng)1506根據(jù)電路布局定義生成IC,如本領(lǐng)域中已知的。例如,IC生成系統(tǒng)1506可以實(shí)現(xiàn)半導(dǎo)體器件制造過(guò)程以生成IC,其可以涉及在其期間在由半導(dǎo)體材料制成的晶圓上逐漸地創(chuàng)建電子電路的光刻和化學(xué)處理步驟的多步順序。電路布局定義可以以掩模的形式,其可以使用在用于根據(jù)電路定義生成IC的光刻工藝中。備選地,提供給IC生成系統(tǒng)1506的電路布局定義可以以計(jì)算機(jī)可讀代碼的形式,IC生成系統(tǒng)1506可以使用其來(lái)形成用于使用在生成IC中的適合的掩模。由IC制造系統(tǒng)1502所執(zhí)行的不同的過(guò)程可以全部實(shí)現(xiàn)在一個(gè)位置中(例如,通過(guò)一方)。備選地,IC制造系統(tǒng)1502可以是分布式系統(tǒng),使得過(guò)程中的一些過(guò)程可以在不同的位置處執(zhí)行并且可以由不同方執(zhí)行。例如,多個(gè)級(jí)中的一些級(jí):(i)合成表示IC定義數(shù)據(jù)集的RTL代碼以形成待生成的電路的門級(jí)表示;(ii)基于門級(jí)表示生成電路布局;(iii)根據(jù)電路布局形成掩模;和(iv)可以在不同的位置和/或通過(guò)不同方執(zhí)行使用掩模制造集成電路。

術(shù)語(yǔ)“處理器”和“計(jì)算機(jī)”在本文中被用于指代具有處理能力使得其可以執(zhí)行能夠執(zhí)行功能或方法或其任何組合的全部或一部分的指令或?qū)S秒娐返娜魏卧O(shè)備或設(shè)備的一部分。

當(dāng)與已知實(shí)施方式相比較時(shí),在設(shè)備、裝置、模塊和/或系統(tǒng)中(以及在本文所實(shí)現(xiàn)的方法中)的本申請(qǐng)中闡述的概念的實(shí)施方式可以引起性能改進(jìn)。性能改進(jìn)可以包括以下各項(xiàng)中的一項(xiàng)或多項(xiàng):增加的計(jì)算性能、降低的延時(shí)、增加的吞吐量和/或降低的功耗。在這樣的設(shè)備、裝置、模塊和系統(tǒng)(例如,在集成電路中)的制造期間,性能改進(jìn)可以對(duì)物理實(shí)施方式權(quán)衡,從而改進(jìn)制造的方法。例如,性能改進(jìn)可以對(duì)布局面積權(quán)衡,從而匹配實(shí)施方式的性能但是使用較少的硅。這可以例如通過(guò)以序列化方式重新使用功能塊或共享設(shè)備、裝置、模塊和/或系統(tǒng)的元件之間的功能塊完成。相反,引起設(shè)備、裝置、模塊和系統(tǒng)(諸如降低的硅面積)的物理實(shí)施方式中的改進(jìn)的本申請(qǐng)中闡述的概念可以交換用于經(jīng)改進(jìn)的性能。這可以例如通過(guò)制造預(yù)定義面積預(yù)算內(nèi)的模塊的多個(gè)實(shí)例來(lái)完成。

雖然已經(jīng)以特定于結(jié)構(gòu)特征和/或方法動(dòng)作的語(yǔ)言描述了主題,但是應(yīng)理解到,所附的權(quán)利要求中定義的主題不必限于上文所描述的特定特征或動(dòng)作。相反,上文所描述的特定特征和動(dòng)作被公開(kāi)為實(shí)現(xiàn)權(quán)利要求的示例形式。將理解到,上文所描述的益處和優(yōu)點(diǎn)可以涉及一個(gè)示例或可以涉及多個(gè)示例。

在不損失所追求的效果的情況下,可以延伸或更改本文給定的任何范圍或值,如對(duì)于技術(shù)人員而言將明顯的??梢砸匀魏芜m合的順序或在適當(dāng)?shù)那闆r下同時(shí)地執(zhí)行本文所描述的方法的步驟。上文所描述的示例中的任一個(gè)示例的各方面可以與所描述的其他示例中的任一個(gè)示例的各方面進(jìn)行組合,以在不損失所追求的效果的情況下形成進(jìn)一步的示例。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
祁门县| 青岛市| 伊川县| 买车| 天气| 鲁山县| 包头市| 重庆市| 如皋市| 通山县| 多伦县| 莱阳市| 个旧市| 永城市| 密山市| 祁门县| 鄂温| 琼结县| 福鼎市| 长阳| 张家港市| 井陉县| 福贡县| 东港市| 恩平市| 三河市| 田林县| 汉沽区| 山西省| 视频| 施甸县| 宝鸡市| 崇左市| 南皮县| 措美县| 濉溪县| 台中市| 峡江县| 台中市| 偃师市| 南投县|