亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于多線程圖形流水線的自由排序線程模型的制作方法

文檔序號(hào):11236537閱讀:535來(lái)源:國(guó)知局
用于多線程圖形流水線的自由排序線程模型的制造方法與工藝

本公開(kāi)總體上涉及電子裝置領(lǐng)域。更具體地,實(shí)施例涉及用于多線程圖形流水線的自由排序(sort-free)線程模型。

技術(shù)背景

目前的軟件光柵化程序或者是單線程的或者僅是圖形流水線的線程部分,從而降低了渲染大頂點(diǎn)數(shù)工作負(fù)荷的有效性,像可以渲染幾百萬(wàn)三角形的hpc(高性能計(jì)算)工作負(fù)荷。

附圖說(shuō)明

參照附圖提供了詳細(xì)說(shuō)明。在附圖中,參考號(hào)最左邊的(多個(gè))數(shù)字標(biāo)識(shí)該參考號(hào)首次出現(xiàn)的附圖。在不同的附圖中使用相同的參考號(hào)指示相似或完全相同的項(xiàng)。

圖1和圖5至圖7展示了計(jì)算系統(tǒng)的實(shí)施例的框圖,其可以用來(lái)實(shí)現(xiàn)在此討論的各個(gè)實(shí)施例。

圖2展示了根據(jù)一些實(shí)施例的樣本排序操作的比較圖。

圖3至圖4展示了根據(jù)一些實(shí)施例的圖形流水線的框圖。

具體實(shí)施方式

在以下描述中,闡述了許多具體的細(xì)節(jié)以便提供對(duì)各實(shí)施例的徹底理解。然而,可以在沒(méi)有特定細(xì)節(jié)的情況下實(shí)踐各實(shí)施例。在其他實(shí)例中,未詳細(xì)地描述熟知的方法、程序、部件以及電路,以便不使具體實(shí)施例模糊。進(jìn)一步,可以使用各種裝置執(zhí)行實(shí)施例的各方面,比如集成半導(dǎo)體電路(“硬件”)、被組織到一個(gè)或多個(gè)程序(“軟件”)中的計(jì)算機(jī)可讀指令或硬件與軟件的某種組合。就本公開(kāi)的目的而言,對(duì)“邏輯”的引用將指或者硬件、軟件、固件或其某種組合。

一些實(shí)施例提供了一種用于多線程(例如,軟件)圖形流水線的自由排序線程模型。實(shí)施例提供了用于圖形流水線的高性能多線程(例如,基于圖塊的)軟件渲染(或處理)。而且,提供了一種允許跨整個(gè)圖形流水線完全多線程支持的架構(gòu),例如提供針對(duì)某些工作負(fù)荷與分立的gpu(圖形處理單元)的性能競(jìng)爭(zhēng)的軟件光柵化解決方案。進(jìn)一步,用于線程的自由排序算法可以允許頂點(diǎn)流水線是完全多線程的,例如避免頂點(diǎn)與像素流水線之間高代價(jià)同步和/或三角形重排,如其他解決方案中可見(jiàn)的。

雖然總體上參照?qǐng)D形邏輯(比如圖形流水線)討論了一些實(shí)施例,但實(shí)施例并不僅限于圖形相關(guān)邏輯并且還可以應(yīng)用于能夠執(zhí)行在此所討論的操作的其他類(lèi)型的非圖形(例如,一般用途的)邏輯。進(jìn)一步,一些實(shí)施例可以應(yīng)用于包括一個(gè)或多個(gè)處理器(例如,具有一個(gè)或多個(gè)處理器核)的計(jì)算系統(tǒng),比如參照?qǐng)D1至圖7所討論的那些,包括例如移動(dòng)計(jì)算設(shè)備,例如智能手機(jī)、平板計(jì)算機(jī)、umpc(超級(jí)移動(dòng)個(gè)人計(jì)算機(jī))、膝上計(jì)算機(jī)、超級(jí)本tm計(jì)算設(shè)備、智能手表、智能眼鏡等。更具體地,圖1展示了根據(jù)實(shí)施例的計(jì)算系統(tǒng)100的框圖。系統(tǒng)100可以包括一個(gè)或多個(gè)處理器102-1至102-n(在此一般地稱(chēng)為“多個(gè)處理器102”或“處理器102”)。在各實(shí)施例中,這些處理器102可以是一般用途的cpu和/或gpu。處理器102可以經(jīng)由互連或總線104通信。每個(gè)處理器可以包括各種部件,為了清楚起見(jiàn),僅參照處理器102-1討論了其中的一部分。相應(yīng)地,剩余處理器102-2至102-n中的每一個(gè)可以包括參照處理器102-1所討論的相同或相似部件。

在實(shí)施例中,處理器102-1可以包括一個(gè)或多個(gè)處理器核106-1至106-m(在此稱(chēng)為“多個(gè)核106”或“核106”)、高速緩存108、和/或路由器110。這些處理器核106可以在單個(gè)集成電路(ic)芯片上實(shí)現(xiàn)。而且,所述芯片可以包括一個(gè)或多個(gè)共享和/或私有高速緩存(比如高速緩存108)、總線或互連(比如總線或互連112)、圖形和/或存儲(chǔ)器控制器(比如參照?qǐng)D5至圖7所討論的那些)或其他部件。

在一個(gè)實(shí)施例中,路由器110可以用于在處理器120-1和/或系統(tǒng)100的各部件之間通信。而且,處理器102-1可以包括不止一個(gè)路由器110。此外,所述多個(gè)路由器110可以通信以使得數(shù)據(jù)能夠在處理器102-1內(nèi)部或外部的各部件之間路由。

高速緩存108可以存儲(chǔ)由處理器102-1的一個(gè)或多個(gè)部件(比如,核106)利用的數(shù)據(jù)(例如,包括指令)。例如,高速緩存108可以本地高速緩存存儲(chǔ)在存儲(chǔ)器114中的數(shù)據(jù)以用于由處理器102的部件進(jìn)行更快速的訪問(wèn)(例如,由核106進(jìn)行更快速的訪問(wèn))。如圖1中所示,存儲(chǔ)器114可以經(jīng)由互連104與處理器102通信。在實(shí)施例中,(可被共享的)高速緩存108可以是中層高速緩存(mlc)、最后一層高速緩存(llc)等。同樣,核106中的每一個(gè)可以包括第一層(l1)高速緩存(116-1)(在此總體地稱(chēng)為“l(fā)1高速緩存116”)或其他層高速緩存比如第二層(l2)高速緩存。而且,處理器102-1的各部件可以通過(guò)總線(例如,總線112)和/或存儲(chǔ)器控制器或集線器與高速緩存108直接通信。

如圖1中所示,處理器102可以進(jìn)一步包括圖形邏輯140(例如,其可以包括圖形流水線,比如參照?qǐng)D2至圖7所討論的那些)用于執(zhí)行各種圖形和/或(多種)一般用途計(jì)算相關(guān)的操作,比如在此所討論的。邏輯140可以訪問(wèn)在此所討論的一個(gè)或多個(gè)存儲(chǔ)設(shè)備(比如高速緩存108、l1高速緩存116、存儲(chǔ)器114、(多個(gè))寄存器或系統(tǒng)100中的另一存儲(chǔ)器)用于存儲(chǔ)于邏輯140的操作相關(guān)的信息,比如與系統(tǒng)100的各部件通信的信息,如在此所討論的。同樣,雖然邏輯140被示為在處理器102的內(nèi)部,但在各實(shí)施例中,它可以位于系統(tǒng)100中其他地方。例如,邏輯140可以代替核106之一,可以直接耦合至互連112和/或互連104等。

如上所提及的,一些實(shí)施例提供了一種允許跨整個(gè)圖形流水線的完全多線程支持的架構(gòu),例如提供針對(duì)某些工作負(fù)荷與分立的gpu(圖形處理單元)的性能競(jìng)爭(zhēng)的軟件光柵化解決方案。進(jìn)一步,自由排序算法可以用于線程,允許頂點(diǎn)流水線是完全多線程的,并且避免頂點(diǎn)與像素流水線之間高代價(jià)同步和三角形重排,如其他解決方案中可見(jiàn)的。相比之下,目前的軟件光柵化程序不能夠解決三角形排序的問(wèn)題,并且因此它們被迫按順序處理三角形,通常來(lái)自單個(gè)線程,嚴(yán)重地降低某些工作負(fù)荷的性能(例如,主要是如hpc虛擬化中發(fā)現(xiàn)的頂點(diǎn)綁定的工作負(fù)荷)。

此外,圖2展示了根據(jù)一些實(shí)施例的圖形流水線中自由排序、中部排序、和前部排序樣本操作的對(duì)比圖。一般地,為了從軟件渲染實(shí)現(xiàn)更好的性能,使用了多線程,其中,每個(gè)線程執(zhí)行與圖像的一個(gè)或多個(gè)部分相關(guān)聯(lián)的操作。這些圖像部分在此一般指幾何圖元(或更一般地,圖元),這些幾何圖元是被處理、存儲(chǔ)等的幾何對(duì)象。這種勞動(dòng)分工允許并行處理??梢詫D形流水線(例如,在圖2中針對(duì)每種類(lèi)型的自由排序、中部排序、和前部排序操作豎直地示出的)概念化為具有兩個(gè)主要部分,前端(例如,執(zhí)行幾何處理)和后端(例如,執(zhí)行光柵化處理)。

圖形流水線的基本屬性之一是圖元被按照用戶(hù)所限定的順序進(jìn)行渲染。由于這一點(diǎn),目前工藝水平所采取的線程模型總體上落在兩個(gè)范疇內(nèi),前部排序(c)和中部排序(b)。在前部排序模型(c)中,圖元在圖形流水線的早期被排序或分配。在中部排序模型(b)中,圖元在圖形流水線的中期被存儲(chǔ)/分配。這些方法中的每一種引入了限制性能可能性的高代價(jià)瓶頸。為此,實(shí)施例(可以稱(chēng)為“自由排序”)通過(guò)去除排序瓶頸解決了這些限制。這允許線程自由地運(yùn)行前端和后端工作兩者,同時(shí)仍維持用戶(hù)所指定的圖元順序。

圖3至圖4展示了根據(jù)一些實(shí)施例的圖形流水線的框圖。更具體地,圖3展示了前端怎樣被線程化。當(dāng)從用戶(hù)接收到繪制請(qǐng)求(例如,經(jīng)由軟件應(yīng)用或接口,比如應(yīng)用程序接口(api)302)時(shí),它們被放置在循環(huán)隊(duì)列304(被稱(chēng)為繪制_上下文(draw_context)隊(duì)列)內(nèi)。隊(duì)列中每個(gè)條目存在一次繪制,并且它們完全按照它們被從用戶(hù)接收的順序(例如,0、1、2等)被排序。一旦條目被放入繪制_上下文隊(duì)列304中,線程(例如,(多個(gè))fe(前端)線程306)就可以自由索取有效繪制_上下文條目(例如,如圖3中的繪制0、1和2所展示的)。通過(guò)鎖定,我們可以強(qiáng)制單個(gè)線程針對(duì)任何繪制_上下文執(zhí)行前端工作(圖3中展示為1:1)。隊(duì)列304可以被設(shè)置大小為使足夠的繪制在進(jìn)行中,從而確保線程有足夠的工作要執(zhí)行(即,通過(guò)確保在一段時(shí)間內(nèi)保持線程忙于處理繪制請(qǐng)求,提供對(duì)線程更高效/持續(xù)的使用)。相應(yīng)的隊(duì)列條目保持鎖定,直到前端和后端都充分地完成與隊(duì)列條目中所存儲(chǔ)的繪制請(qǐng)求相關(guān)聯(lián)的工作。

更確切地,每個(gè)前端線程306對(duì)圖元進(jìn)行渲染并將每個(gè)圖元裝入/放入與其交叉的相應(yīng)圖塊(圖3中標(biāo)記為圖塊a-d)中。一旦前端線程已經(jīng)完成了將所有的圖元裝入,繪制_上下文條目就被標(biāo)記為‘前端完成’,這表明線程現(xiàn)在可以拾取這個(gè)繪制_上下文以執(zhí)行后端渲染,如圖4中所展示的。后端(be)線程402可以自由地從任何有效繪制_上下文條目拾取任何圖塊,只要同一圖塊的所有之前的繪制_上下文都已經(jīng)被渲染。單個(gè)繪制_上下文內(nèi)的圖塊可以由多個(gè)be線程402同時(shí)地渲染。如在此所討論的,“圖塊”一般指圖像的一部分。例如,每個(gè)圖像可以被劃分成被安排成陣列或矩陣格式的多個(gè)圖塊。

相應(yīng)地,對(duì)一般用途的(或圖形)邏輯(比如邏輯140)的高性能軟件光柵化可以提供高代價(jià)的分立式gpu的替代方案。另外,由于gpu/處理器功能變得更多重疊,在此所討論的一些實(shí)施例可以用來(lái)影響或輔助gpu硬件。

圖5展示了根據(jù)實(shí)施例的計(jì)算系統(tǒng)500的框圖。計(jì)算系統(tǒng)500可以包括經(jīng)由互連網(wǎng)絡(luò)(或總線)504通信的一個(gè)或多個(gè)中央處理單元(cpu)502或處理器。處理器502可以包括通用處理器、網(wǎng)絡(luò)處理器(所述網(wǎng)絡(luò)處理器對(duì)通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)503傳達(dá)的數(shù)據(jù)進(jìn)行處理)或其他類(lèi)型的處理器(包括精簡(jiǎn)指令集計(jì)算機(jī)(risc)處理器或復(fù)雜指令集計(jì)算機(jī)(cisc))。

而且,處理器502可以具有單核或多核設(shè)計(jì)。具有多核設(shè)計(jì)的處理器502可以將不同類(lèi)型的處理器核集成在同一集成電路(ic)管芯上。同樣,具有多核設(shè)計(jì)的處理器502可以被實(shí)現(xiàn)為對(duì)稱(chēng)或非對(duì)稱(chēng)多重處理器。在實(shí)施例中,處理器502中的一個(gè)或多個(gè)可以與圖1中的處理器102相同或相似。例如,系統(tǒng)500的一個(gè)或多個(gè)部件可以包括邏輯140,參照?qǐng)D1至圖4所討論的。同樣,參照?qǐng)D1至圖4所討論的操作可以由系統(tǒng)500的一個(gè)或多個(gè)部件執(zhí)行。

芯片組506還可以與互連網(wǎng)絡(luò)504通信。芯片組506可以包括圖形存儲(chǔ)器控制集線器(gmch)508,所述圖形存儲(chǔ)器控制集線器可以位于系統(tǒng)500的各部件中(比如圖5中所示的那些)。gmch508可以包括存儲(chǔ)器控制器510,所述存儲(chǔ)器控制器可以與存儲(chǔ)器512(其可以與圖1的存儲(chǔ)器114相同或類(lèi)似)通信。存儲(chǔ)器512可以存儲(chǔ)數(shù)據(jù),包括指令序列,所述指令序列可以被cpu502或計(jì)算系統(tǒng)500中所包括的任何其他設(shè)備執(zhí)行。在一個(gè)實(shí)施例中,存儲(chǔ)器512可以包括一個(gè)或多個(gè)易失性存儲(chǔ)(或存儲(chǔ)器)設(shè)備,比如隨機(jī)存取存儲(chǔ)器(ram)、動(dòng)態(tài)ram(dram)、同步dram(sdram)、靜態(tài)ram(sram)或其他類(lèi)型的存儲(chǔ)設(shè)備。還可以利用非易失性存儲(chǔ)器,比如硬盤(pán)。附加設(shè)備可以經(jīng)由互連網(wǎng)絡(luò)504(比如多個(gè)cpu和/或多個(gè)系統(tǒng)存儲(chǔ)器)通信。

gmch508還可以包括與顯示器設(shè)備516通信的圖形接口514。在一個(gè)實(shí)施例中,圖形接口514可以經(jīng)由加速圖形端口(agp)或外圍部件互連(pci)(或pciexpress(pcie)接口)與顯示器設(shè)備516通信。在實(shí)施例中,顯示器516(比如扁平面板顯示器)可以通過(guò)例如信號(hào)轉(zhuǎn)換器與圖形接口514通信,所述信號(hào)轉(zhuǎn)換器將存儲(chǔ)設(shè)備(比如視頻存儲(chǔ)器或系統(tǒng)存儲(chǔ)器)中所存儲(chǔ)的圖像的數(shù)字表示轉(zhuǎn)換成由顯示器516解釋并顯示的顯示信號(hào)。顯示器設(shè)備所產(chǎn)生的顯示信號(hào)可以在被顯示器516解釋并隨后顯示在其上之前傳遞通過(guò)各控制設(shè)備。

集線器接口518可以允許gmch508和輸入/輸出控制集線器(ich)520通信。ich520可以提供至與計(jì)算系統(tǒng)500通信的(多個(gè))i/o設(shè)備的接口。ich520可以通過(guò)外圍橋接器(或控制器)524比如外圍部件互連(pci)橋接器、通用串行總線(usb)控制器或其他類(lèi)型的外圍橋接器或控制器與總線522通信。橋接器524可以在cpu502與外圍設(shè)備之間提供數(shù)據(jù)路徑??梢岳闷渌?lèi)型的拓?fù)浣Y(jié)構(gòu)。同樣,多個(gè)總線可以例如通過(guò)多個(gè)橋接器或控制器與ich520通信。而且,在各實(shí)施例中,與ich520通信的其他外圍設(shè)備可以包括集成驅(qū)動(dòng)電子設(shè)備(ide)或(多個(gè))小型計(jì)算機(jī)系統(tǒng)接口(scsi)硬盤(pán)驅(qū)動(dòng)、(多個(gè))usb端口、鍵盤(pán)、鼠標(biāo)、(多個(gè))并行端口、(多個(gè))串行端口、(多個(gè))軟盤(pán)驅(qū)動(dòng)、數(shù)字輸出支持(例如,數(shù)字視頻接口(dvi)或其他設(shè)備。

總線522可以與音頻設(shè)備526、一個(gè)或多個(gè)磁盤(pán)驅(qū)動(dòng)528、和(與計(jì)算機(jī)網(wǎng)絡(luò)503通信的)網(wǎng)絡(luò)接口設(shè)備530通信。其他設(shè)備可以經(jīng)由總線522通信。同樣,在一些實(shí)施例中,各部件(比如網(wǎng)絡(luò)接口設(shè)備530)可以與gmch508通信。另外,處理器502和gmch508可以組合以形成單個(gè)芯片。此外,在其他實(shí)施例中,gmch508中可以包括圖形加速器。

此外,計(jì)算系統(tǒng)500可以包括易失性和/或非易失性存儲(chǔ)器(或存儲(chǔ)設(shè)備)。例如,非易失性存儲(chǔ)器可以包括一下各項(xiàng)中的一項(xiàng)或多項(xiàng):只讀存儲(chǔ)器(rom)、可編程rom(prom)、可擦除prom(eprom)、電eprom(eeprom)、磁盤(pán)驅(qū)動(dòng)(例如528)、軟盤(pán)、緊湊盤(pán)rom(cd-rom)、數(shù)字多功能盤(pán)(dvd)、閃存存儲(chǔ)器、磁光盤(pán)或能夠存儲(chǔ)電子數(shù)據(jù)(例如,包括指令)的其他類(lèi)型的非易失性機(jī)器可讀介質(zhì)。

圖6展示了根據(jù)實(shí)施例的被安排為點(diǎn)到點(diǎn)(ptp)配置的計(jì)算系統(tǒng)600。具體地,圖6示出了一種系統(tǒng),在所述系統(tǒng)中,處理器、存儲(chǔ)器以及輸入/輸出設(shè)備通過(guò)許多點(diǎn)對(duì)點(diǎn)接口互連。參照?qǐng)D1至圖5所討論的操作可以由系統(tǒng)600的一個(gè)或多個(gè)部件執(zhí)行。

如圖6所展示的,系統(tǒng)600可以包括若干處理器,為清楚起見(jiàn),僅示出了其中兩個(gè),即處理器602和604。處理器602和604可以各自包括本地存儲(chǔ)器控制器集線器(mch)606和608用于使能與存儲(chǔ)器610和612的通信。存儲(chǔ)器610和/或612可以存儲(chǔ)各種數(shù)據(jù),比如參照?qǐng)D5的存儲(chǔ)器512所討論的那些。

在實(shí)施例中,處理器602和604可以是參照?qǐng)D5所討論的處理器502之一。處理器602和604可以分別使用點(diǎn)到點(diǎn)(ptp)接口電路616和618經(jīng)由ptp接口614交換數(shù)據(jù)。同樣,處理器602和604中可以各自使用點(diǎn)到點(diǎn)接口電路626、628、630和632經(jīng)由單獨(dú)的ptp接口622和624來(lái)與芯片組620交換數(shù)據(jù)。芯片組620可以進(jìn)一步經(jīng)由圖形接口636(例如使用ptp接口電路637)與圖形電路634交換數(shù)據(jù)。

處理器602和604內(nèi)可以提供至少一個(gè)實(shí)施例。例如,系統(tǒng)600的一個(gè)或多個(gè)部件可以包括圖1至圖5的邏輯140,包括位于處理器602和604內(nèi)部。然而,圖6的系統(tǒng)600內(nèi)的其他電路、邏輯單元或設(shè)備中可以存在其他實(shí)施例。此外,其他實(shí)施例可以貫穿圖6中所展示的若干電路、邏輯單元或設(shè)備分布。

芯片組620可以使用ptp接口電路641與總線640通信??偩€640可以與一個(gè)或多個(gè)設(shè)備通信,如總線橋接器642和i/o設(shè)備643。通過(guò)總線644,總線橋接器642可以與其他設(shè)備通信,如鍵盤(pán)/鼠標(biāo)645、通信設(shè)備646(如調(diào)制解調(diào)器、網(wǎng)絡(luò)接口設(shè)備或可以與計(jì)算機(jī)網(wǎng)絡(luò)503通信的其他通信設(shè)備)、音頻i/o設(shè)備647、和/或數(shù)據(jù)存儲(chǔ)設(shè)備648。數(shù)據(jù)存儲(chǔ)設(shè)備648可以存儲(chǔ)代碼649,所述代碼可以由處理器602和/或604執(zhí)行。

而且,在此所討論的場(chǎng)景、圖像或幀(例如,在各實(shí)施例中,其可以由圖形邏輯進(jìn)行處理)可以被圖像捕獲設(shè)備(比如數(shù)碼相機(jī)(其可以具體化在另一設(shè)備中,比如智能電話(huà)、平板計(jì)算機(jī)、膝上計(jì)算機(jī)、獨(dú)立式相機(jī)等)或模擬設(shè)備捕獲,所述模擬設(shè)備的捕獲到的圖像隨后被轉(zhuǎn)換成數(shù)字形式)。同樣,在此所討論的場(chǎng)景、圖像或幀可以通過(guò)藝術(shù)設(shè)計(jì)、游戲設(shè)計(jì)或任何類(lèi)型的3d/2d(二維/三維)工業(yè)設(shè)計(jì)生成。例如,場(chǎng)景可以指一組幾何結(jié)構(gòu)和相關(guān)的紋理圖、光照效果等。而且,在實(shí)施例中,圖像捕獲設(shè)備可能能夠捕獲多個(gè)幀。進(jìn)一步,在一些實(shí)施例中,場(chǎng)景中的一個(gè)或多個(gè)幀在計(jì)算機(jī)上設(shè)計(jì)/生成。同樣,場(chǎng)景的一個(gè)或多個(gè)幀可以經(jīng)由顯示器(比如參照?qǐng)D5和/或圖6所討論的顯示器,包括例如扁平面板顯示器設(shè)備等)呈現(xiàn)。

在一些實(shí)施例中,在此所討論的部件中的一個(gè)或多個(gè)可以被具體化為片上系統(tǒng)(soc)設(shè)備。圖7展示了根據(jù)實(shí)施例的soc封裝體的框圖。如圖7中所展示的,soc702包括一個(gè)或多個(gè)中央處理單元(cpu)核720、一個(gè)或多個(gè)圖形處理器單元(gpu)核730、輸入/輸出(i/o)接口740、和存儲(chǔ)器控制器742。soc封裝體702的各部件可以耦合至互連或總線,比如在此參照其他附圖所討論的。同樣,soc封裝體702可以包括更多或更少的部件,比如,如在此參照其他附圖所討論的那些。進(jìn)一步,soc封裝體720的每個(gè)部件可以包括一個(gè)或多個(gè)其他部件,例如,如在此參照其他附圖所討論的那些。在一個(gè)實(shí)施例中,soc封裝體702(及其部件)設(shè)置在一個(gè)或多個(gè)集成電路(ic)管芯上,例如,所述管芯被封裝至單個(gè)半導(dǎo)體設(shè)備中。

如圖7中所展示的,soc封裝體702經(jīng)由存儲(chǔ)器控制器742耦合至存儲(chǔ)器760(其可以與在此參照其他附圖所討論的存儲(chǔ)器類(lèi)似或相同)。在實(shí)施例中,存儲(chǔ)器760(或其一部分)可以被整合在soc封裝體702上。

i/o接口740可以耦合至一個(gè)或多個(gè)i/o設(shè)備770,例如經(jīng)由互連和/或總線,比如在此參照其他附圖所討論的。(多個(gè))i/o設(shè)備770可以包括以下各項(xiàng)中的一項(xiàng)或多項(xiàng):鍵盤(pán)、鼠標(biāo)、觸摸板、顯示器、圖像/視頻捕獲設(shè)備(比如照相機(jī)或攝錄像機(jī)/錄像機(jī))、觸摸屏、揚(yáng)聲器等。此外,在實(shí)施例中,soc封裝體702可以包括/整合邏輯140。可替代地,邏輯140可以設(shè)置在soc封裝體702外部(即,作為分立的邏輯)。

以下示例涉及進(jìn)一步的實(shí)施例。示例1包括一種裝置,包括:邏輯,所述邏輯至少部分地包括硬件邏輯,用于使得將與圖像中的一個(gè)或多個(gè)圖元相對(duì)應(yīng)的繪制請(qǐng)求存儲(chǔ)在隊(duì)列的條目中,其中,所述條目要在所述邏輯的前端和后端兩者都完成了與所述繪制請(qǐng)求相關(guān)聯(lián)的一個(gè)或多個(gè)操作之后被解鎖。示例2包括如示例1所述裝置,其中,在處理器上執(zhí)行的一個(gè)或多個(gè)線程用于執(zhí)行與所述繪制請(qǐng)求相對(duì)應(yīng)的所述一個(gè)或多個(gè)操作。示例3包括如示例1所述裝置,其中,前端線程用于:處理所述一個(gè)或多個(gè)圖元;以及將經(jīng)處理的圖元中的每一個(gè)裝入與那個(gè)經(jīng)處理的圖元相交的相應(yīng)圖塊中。示例4包括如示例1所述裝置,其中,一旦前端線程完成了將所有圖元裝入所述圖像的圖塊中,所述隊(duì)列的相應(yīng)條目就將被標(biāo)記為前端完成。示例5包括如示例4所述裝置,其中,多個(gè)后端線程中的任何一個(gè)能夠被選擇以對(duì)所述圖塊執(zhí)行后端處理。示例6包括如示例1所述裝置,其中,單個(gè)繪制上下文中的多個(gè)圖塊用于由多個(gè)后端線程同時(shí)處理。示例7包括如示例1所述裝置,其中,所述圖像用于被劃分成以陣列或矩陣格式安排的多個(gè)圖塊。示例8包括如示例1所述裝置,其中,所述隊(duì)列用于被設(shè)置大小以存儲(chǔ)足夠量的繪制請(qǐng)求從而保持多個(gè)線程在一段時(shí)間期間忙于處理所述繪制請(qǐng)求。示例9包括如示例1所述裝置,其中,所述隊(duì)列的每個(gè)條目用于存儲(chǔ)單個(gè)繪制請(qǐng)求。示例10包括如示例1所述裝置,其中,所述隊(duì)列是循環(huán)隊(duì)列。示例11包括如示例1所述裝置,其中,所述邏輯用于使得將多個(gè)接收到的繪制請(qǐng)求按照接收的順序存儲(chǔ)在循環(huán)隊(duì)列中。示例12包括如示例1所述裝置,其中,所述邏輯包括圖形流水線。示例13包括如示例1所述裝置,其中,處理器包括所述邏輯。示例14包括如示例1所述裝置,其中,具有一個(gè)或多個(gè)處理器核的處理器、所述邏輯或所述隊(duì)列中的一者或多者位于單個(gè)集成電路管芯上。

示例15包括一種包括一條或多條指令的計(jì)算機(jī)可讀介質(zhì),所述一條或多條指令當(dāng)在處理器上被執(zhí)行時(shí)將所述處理器配置成用于執(zhí)行以下一個(gè)或多個(gè)操作:使得將與圖像中的一個(gè)或多個(gè)圖元相對(duì)應(yīng)的繪制請(qǐng)求存儲(chǔ)在隊(duì)列的條目中,其中,所述條目用于在所述圖形流水線的前端和后端兩者都完成了與所述繪制請(qǐng)求相關(guān)聯(lián)的一個(gè)或多個(gè)操作之后被解鎖。示例16包括如示例15所述的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包括一條或多條指令,所述一條或多條指令當(dāng)在所述處理器上被執(zhí)行時(shí)將所述處理器配置成用于執(zhí)行以下一個(gè)或多個(gè)操作:使得前端線程處理所述一個(gè)或多個(gè)圖元并將經(jīng)處理的圖元中的每一個(gè)裝入與那個(gè)經(jīng)處理的圖元相交的相應(yīng)圖塊中。示例17包括如示例15所述的計(jì)算機(jī)可讀介質(zhì),其中,一旦在所述處理器上執(zhí)行的前端線程完成了將所有圖元裝入所述圖像的圖塊中,所述隊(duì)列的相應(yīng)條目就要被標(biāo)記為前端完成。示例18包括如示例17所述的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包括一條或多條指令,所述一條或多條指令當(dāng)在所述處理器上被執(zhí)行時(shí)將所述處理器配置成用于執(zhí)行以下一個(gè)或多個(gè)操作:使得多個(gè)后端線程中的任何一個(gè)被選擇以對(duì)所述圖塊執(zhí)行后端處理。

示例19包括一種方法,包括:使得將與圖像中的一個(gè)或多個(gè)圖元相對(duì)應(yīng)的繪制請(qǐng)求存儲(chǔ)在隊(duì)列的條目中,其中,所述條目在圖形流水線的前端和后端兩者都完成了與所述繪制請(qǐng)求相關(guān)聯(lián)的一個(gè)或多個(gè)操作之后被解鎖。示例20包括如示例19所述方法,進(jìn)一步包括:在處理器上執(zhí)行的一個(gè)或多個(gè)線程執(zhí)行與所述繪制請(qǐng)求相對(duì)應(yīng)的所述一個(gè)或多個(gè)操作。示例21包括如示例19所述方法,進(jìn)一步包括:使得前端線程處理所述一個(gè)或多個(gè)圖元,并將經(jīng)處理的圖元中的每一個(gè)裝入與那個(gè)經(jīng)處理的圖元相交的相應(yīng)圖塊中。示例22包括如示例19所述方法,進(jìn)一步包括:一旦前端線程完成了將所有圖元裝入所述圖像的圖塊中,就將所述隊(duì)列的相應(yīng)條目標(biāo)記為前端完成。示例23包括如示例22所述方法,進(jìn)一步包括:使得多個(gè)后端線程中的任何一個(gè)被選擇以對(duì)所述圖塊執(zhí)行后端處理。示例24包括如示例19所述方法,進(jìn)一步包括:?jiǎn)蝹€(gè)繪制上下文中的多個(gè)圖塊被多個(gè)后端線程同時(shí)處理。示例25包括如示例19所述方法,進(jìn)一步包括:將所述圖像劃分成以陣列或矩陣格式安排的多個(gè)圖塊。示例26包括如示例19所述方法,進(jìn)一步包括:設(shè)置所述隊(duì)列的大小以便存儲(chǔ)足夠量的繪制請(qǐng)求從而保持多個(gè)線程在一段時(shí)間期間忙于處理所述繪制請(qǐng)求。示例27包括如示例19所述方法,進(jìn)一步包括:所述隊(duì)列的每個(gè)條目存儲(chǔ)單個(gè)繪制請(qǐng)求。示例28包括如示例19所述的方法,其中,所述隊(duì)列是循環(huán)隊(duì)列。示例29包括如示例19所述方法,進(jìn)一步包括:使得將多個(gè)接收到的繪制請(qǐng)求按照接收的順序存儲(chǔ)在循環(huán)隊(duì)列中。

示例30包括一種系統(tǒng),所述系統(tǒng)包括:處理器,所述處理器具有一個(gè)或多個(gè)處理器核;存儲(chǔ)器,所述存儲(chǔ)器用于存儲(chǔ)有待由所述一個(gè)或多個(gè)處理器核中的至少一個(gè)處理器核訪問(wèn)的、與場(chǎng)景的至少一個(gè)幀相對(duì)應(yīng)的數(shù)據(jù);顯示器設(shè)備,所述顯示器設(shè)備用于呈現(xiàn)所述場(chǎng)景的所述至少一個(gè)幀;以及邏輯,所述邏輯至少部分地包括硬件邏輯,用于使得將與圖像中的一個(gè)或多個(gè)圖元相對(duì)應(yīng)的繪制請(qǐng)求存儲(chǔ)在隊(duì)列的條目中,其中,所述條目要在所述邏輯的前端和后端兩者都完成了與所述繪制請(qǐng)求相關(guān)聯(lián)的一個(gè)或多個(gè)操作之后被解鎖。示例31包括如示例30所述系統(tǒng),其中,前端線程用于處理所述一個(gè)或多個(gè)圖元,并將經(jīng)處理的圖元中的每一個(gè)裝入與這個(gè)經(jīng)處理的圖元相交的相應(yīng)圖塊中。示例32包括如示例30所述系統(tǒng),其中,一旦前端線程完成了將所有圖元裝入所述圖像的圖塊中,所述隊(duì)列的相應(yīng)條目就將被標(biāo)記為前端完成,其中,多個(gè)后端線程中的任何一個(gè)能夠被選定用于對(duì)所述圖塊執(zhí)行后端處理。

示例33包括一種裝置,所述裝置包括用于執(zhí)行如任一前述示例中所提出的方法的裝置。

示例34包括一種包括機(jī)器可讀指令的機(jī)器可讀存儲(chǔ)器,所述機(jī)器可讀指令當(dāng)被執(zhí)行時(shí)用于實(shí)施如任一前述示例所提出的方法或?qū)崿F(xiàn)如任一前述示例所提出的裝置。

在各實(shí)施例中,在此(例如,參照?qǐng)D1至圖7)所討論的操作可以被實(shí)現(xiàn)為硬件(例如,邏輯電路)、軟件、固件或其組合,其可以被設(shè)置為計(jì)算機(jī)程序產(chǎn)品,例如包括具有存儲(chǔ)在其上用于對(duì)計(jì)算機(jī)編程以執(zhí)行在此所討論的過(guò)程的指令(或軟件程序)的有形(例如,非瞬態(tài))機(jī)器可讀或計(jì)算機(jī)可讀介質(zhì)。所述機(jī)器可讀介質(zhì)可以包括存儲(chǔ)設(shè)備,比如參照?qǐng)D1至圖7所討論的那些。

另外,這種計(jì)算機(jī)可讀介質(zhì)可以作為計(jì)算機(jī)程序產(chǎn)品被下載,其中,所述程序可以經(jīng)由通信鏈路(例如,總線、調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)以載波或其他傳播介質(zhì)中所提供的數(shù)據(jù)信號(hào)的方式被從遠(yuǎn)程計(jì)算機(jī)(例如,服務(wù)器)傳送至進(jìn)行請(qǐng)求的計(jì)算機(jī)(例如,客戶(hù)端)。

本說(shuō)明書(shū)中對(duì)“一個(gè)實(shí)施例”或“實(shí)施例”的引用意味著結(jié)合所述實(shí)施例所描述的具體特征、結(jié)構(gòu)、和/或特性可以包括在至少一種實(shí)現(xiàn)方式中。短語(yǔ)“在一個(gè)實(shí)施例中”在本說(shuō)明書(shū)中各地方的出現(xiàn)可以或可以不全都引用相同的實(shí)施例。

同樣,在說(shuō)明書(shū)和權(quán)利要求書(shū)中,可以使用術(shù)語(yǔ)“耦合”和“連接”及其衍生詞。在一些實(shí)施例中,“連接”可以用于指示兩個(gè)或更多元件彼此進(jìn)行直接物理或電氣接觸?!榜詈稀笨梢砸庵竷蓚€(gè)或更多個(gè)元件進(jìn)行直接物理或電氣接觸。然而,“耦合”還可以意指兩個(gè)或更多個(gè)元件可以并非彼此直接接觸,但仍可以彼此合作或交互。

因而,雖然已經(jīng)使用特定于結(jié)構(gòu)特征和/或方法行為的語(yǔ)言描述了實(shí)施例,將理解的是,所要求保護(hù)的主題可以不限于所述的特定特征或行為。相反,所述特定特征和行為被作為實(shí)現(xiàn)所要求保護(hù)的主題的示例形式而公開(kāi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1