亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

可縮放GPU中的數(shù)據(jù)分布組構(gòu)的制作方法

文檔序號(hào):12288286閱讀:290來(lái)源:國(guó)知局
可縮放GPU中的數(shù)據(jù)分布組構(gòu)的制作方法與工藝
實(shí)施例一般涉及信息處理,并且更具體地說(shuō),涉及用在可縮放圖形處理器中的數(shù)據(jù)分布組構(gòu)(fabric)。
背景技術(shù)
:多核圖形處理單元在從片上系統(tǒng)(SOC)集成電路到高端(high-end)離散圖形處理器的范圍的計(jì)算系統(tǒng)之間已經(jīng)變得規(guī)范化。在高端圖形的真實(shí)情況下,多核解決方案是增大圖形處理性能的主要方法。對(duì)于SOC解決方案,多核圖形處理器的使用允許降低系統(tǒng)功率,同時(shí)允許在高圖形處理器工作載荷周期(period)期間的高性能。然而,當(dāng)開發(fā)跨越多個(gè)功率和性能段的圖形處理解決方案時(shí),在組分(component)內(nèi)的圖形核的數(shù)量上的增大造成了可縮放性問(wèn)題。在高端圖形產(chǎn)品中使用的多核通信解決方案不適合由于成本和功耗的問(wèn)題引起的低功率產(chǎn)品。在低功率圖形中使用的通信解決方案一般未提供高端圖形解決方案的充足性能。例如,一個(gè)圖形核通信解決方案要經(jīng)由唯一數(shù)據(jù)分布通道耦合各種圖形處理器。然而,使用唯一通信通道呈現(xiàn)出用于設(shè)計(jì)意圖跨越多個(gè)功率和性能段的圖形處理器的困難。附圖說(shuō)明如下描述包含具有作為實(shí)現(xiàn)各種實(shí)施例的示例給出的說(shuō)明的附圖的論述。附圖應(yīng)該作為示例而非作為限制進(jìn)行理解,附圖中:圖1是帶有具有一個(gè)或多個(gè)處理器核和圖形處理器的處理器的計(jì)算機(jī)系統(tǒng)的實(shí)施例的框圖;圖2是具有一個(gè)或多個(gè)處理器核、集成存儲(chǔ)器控制器和集成圖形處理器的處理器一個(gè)實(shí)施例的框圖;圖3是可以是分立圖形處理單元或者可以是與多個(gè)處理核集成的圖形處理器的圖形處理器的一個(gè)實(shí)施例的框圖;圖4是圖形處理器的圖形處理引擎的實(shí)施例的框圖;圖5是圖形處理器的另一實(shí)施例的框圖;圖6是包含處理元素陣列的線程執(zhí)行邏輯的框圖;圖7圖示了根據(jù)實(shí)施例的圖形處理器執(zhí)行單元指令格式;圖8是包含圖形流水線、媒體流水線、顯示器引擎、線程執(zhí)行邏輯和渲染輸出流水線的圖形處理器的另一實(shí)施例的框圖;圖9A是圖示根據(jù)實(shí)施例的圖形處理器命令格式的框圖;圖9B是圖示根據(jù)實(shí)施例的圖形處理器命令序列的框圖;圖10圖示了根據(jù)實(shí)施例的數(shù)據(jù)處理系統(tǒng)的示范圖形軟件架構(gòu);圖11是圖形核組構(gòu)裝配(assembly)的實(shí)施例的框圖;圖12A-B圖示了多個(gè)示范圖形核拓?fù)洌粓D13是包含數(shù)據(jù)分布組構(gòu)的堆疊式(stacked)集成電路的實(shí)施例的框圖;圖14是根據(jù)實(shí)施例在虛擬通道上攜帶的多個(gè)業(yè)務(wù)類別的說(shuō)明;以及圖15是根據(jù)實(shí)施例的數(shù)據(jù)傳送序列的流程圖。具體實(shí)施方式如下描述描述了用在包含在處理器、計(jì)算機(jī)系統(tǒng)或其它處理設(shè)備內(nèi)或與之關(guān)聯(lián)的可縮放圖形處理單元中的數(shù)據(jù)分布組構(gòu)的處理邏輯。為了解釋的目的,闡述了大量特定細(xì)節(jié)以提供下面描述的各種實(shí)施例的透徹理解。然而,對(duì)本領(lǐng)域技術(shù)實(shí)踐人員將是顯而易見的是,實(shí)施例可在沒有這些特定細(xì)節(jié)的情況下實(shí)踐。在其它實(shí)例中,眾所周知的結(jié)構(gòu)和裝置以框圖形式示出以避免模糊了基礎(chǔ)原則,并且提供了實(shí)施例的更透徹理解。盡管其中一些如下實(shí)施例參考處理器進(jìn)行描述,但對(duì)其它類型的電路或半導(dǎo)體裝置可施加類似的技術(shù)和教導(dǎo),因?yàn)檫@些教導(dǎo)適用于執(zhí)行數(shù)據(jù)操縱的任何處理器或機(jī)器。概覽——圖1-3圖1是根據(jù)實(shí)施例的數(shù)據(jù)處理系統(tǒng)100的框圖。數(shù)據(jù)處理系統(tǒng)100包含一個(gè)或多個(gè)處理器102和一個(gè)或多個(gè)圖形處理器108,并且可以是單個(gè)處理器臺(tái)式系統(tǒng)、多處理器工作站系統(tǒng)或具有大量處理器102或處理器核107的服務(wù)器系統(tǒng)。在一個(gè)實(shí)施例中,數(shù)據(jù)處理系統(tǒng)100是用在移動(dòng)、手持或嵌入式裝置中的片上系統(tǒng)集成電路(SOC)。數(shù)據(jù)處理系統(tǒng)100的實(shí)施例可包含基于服務(wù)器的游戲平臺(tái)或游戲控制臺(tái)(包含游戲和媒體控制臺(tái)、移動(dòng)游戲控制臺(tái)、手持游戲控制臺(tái)或在線游戲控制臺(tái))或結(jié)合在其內(nèi)。在一個(gè)實(shí)施例中,數(shù)據(jù)處理系統(tǒng)100是移動(dòng)電話、智能電話、平板計(jì)算裝置或移動(dòng)因特網(wǎng)裝置。數(shù)據(jù)處理系統(tǒng)100還可包含可穿戴裝置(諸如智能手表可穿戴裝置、智能眼鏡裝置、增強(qiáng)現(xiàn)實(shí)裝置或虛擬現(xiàn)實(shí)裝置)、與其耦合或集成在其內(nèi)。在一個(gè)實(shí)施例中,數(shù)據(jù)處理系統(tǒng)100是具有一個(gè)或多個(gè)處理器102以及由一個(gè)或多個(gè)圖形處理器108生成的圖形界面的電視或機(jī)頂盒裝置。一個(gè)或多個(gè)處理器102各包含用于處理指令的一個(gè)或多個(gè)處理器核107,所述指令當(dāng)執(zhí)行時(shí)執(zhí)行用于系統(tǒng)和用戶軟件的操作。在一個(gè)實(shí)施例中,一個(gè)或多個(gè)處理器核107中的每個(gè)都配置成處理特定指令集109。指令集109可促進(jìn)復(fù)雜指令集計(jì)算(CISC)、縮減指令集計(jì)算(RISC)或經(jīng)由超長(zhǎng)指令字(VLIW)的計(jì)算。多個(gè)處理器核107各可處理不同指令集109,其可包含用于促進(jìn)其它指令集仿真的指令。處理器核107還可包含其它處理裝置,諸如數(shù)字信號(hào)處理器(DSP)。在一個(gè)實(shí)施例中,一個(gè)或多個(gè)處理器102中的每個(gè)都包含高速緩沖存儲(chǔ)器104。取決于架構(gòu),處理器102可具有單個(gè)內(nèi)部高速緩存或多級(jí)內(nèi)部高速緩存。在一個(gè)實(shí)施例中,高速緩沖存儲(chǔ)器在處理器102的各種組分之間共享。在一個(gè)實(shí)施例中,處理器102還使用外部高速緩存(例如3級(jí)(L3)高速緩存或末級(jí)高速緩存(LLC))(未示出),其可使用已知高速緩存一致性技術(shù)在處理器核107之間共享。寄存器文件106此外被包含在處理器102中,其可包含用于存儲(chǔ)不同類型數(shù)據(jù)的不同類型寄存器(例如整數(shù)寄存器、浮點(diǎn)寄存器、狀況(status)寄存器和指令指針寄存器)。一些寄存器可以是通用寄存器,而其它寄存器可以是對(duì)處理器102的設(shè)計(jì)特定的。處理器102耦合到處理器總線110,以在處理器102與系統(tǒng)100中的其它組分之間傳送數(shù)據(jù)信號(hào)。系統(tǒng)100使用示范“集線器”系統(tǒng)架構(gòu),包含存儲(chǔ)器控制器集線器116和輸入輸出(I/O)控制器集線器130。存儲(chǔ)器控制器集線器116促進(jìn)存儲(chǔ)器裝置與系統(tǒng)100的其它組分之間的通信,同時(shí)I/O控制器集線器(ICH)130提供了經(jīng)由本地I/O總線到I/O裝置的連接。存儲(chǔ)器裝置120可以是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)裝置、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)裝置、閃存裝置或具有充當(dāng)過(guò)程存儲(chǔ)器的適合性能的某一其它存儲(chǔ)器裝置。存儲(chǔ)器120可存儲(chǔ)當(dāng)處理器102執(zhí)行過(guò)程時(shí)供使用的數(shù)據(jù)122和指令121。存儲(chǔ)器控制器集線器116還與可選的外部圖形處理器112耦合,其可與處理器102中的一個(gè)或多個(gè)圖形處理器108通信以執(zhí)行圖形和媒體操作。ICH130使外圍設(shè)備能夠經(jīng)由高速I/O總線連接到存儲(chǔ)器120和處理器102。I/O外圍設(shè)備包含音頻控制器146、固件接口128、無(wú)線收發(fā)器126(例如Wi-Fi、藍(lán)牙)、數(shù)據(jù)存儲(chǔ)裝置124(例如硬盤驅(qū)動(dòng)器、閃存等)以及用于將傳統(tǒng)(例如個(gè)人系統(tǒng)2(PS/2))裝置耦合到系統(tǒng)的傳統(tǒng)I/O控制器。一個(gè)或多個(gè)通用串行總線(USB)控制器142連接輸入裝置,諸如鍵盤和鼠標(biāo)144組合。網(wǎng)絡(luò)控制器134還可耦合到ICH130。在一個(gè)實(shí)施例中,高性能網(wǎng)絡(luò)控制器(未示出)耦合到處理器總線110。圖2是具有一個(gè)或多個(gè)處理器核202A-N、集成存儲(chǔ)器控制器214和集成圖形處理器208的處理器200的實(shí)施例的框圖。處理器200可包含附加核(多達(dá)且包含由虛線框表示的附加核202N)。核202A-N中的每個(gè)核都包含一個(gè)或多個(gè)內(nèi)部高速緩存單元204A-N。在一個(gè)實(shí)施例中,每個(gè)核還可以使用一個(gè)或多個(gè)共享高速緩存單元206。內(nèi)部高速緩存單元204A-N和共享高速緩存單元206表示處理器200內(nèi)的高速緩沖存儲(chǔ)器層級(jí)。高速緩沖存儲(chǔ)器層級(jí)可包含每個(gè)核內(nèi)的至少一級(jí)指令和數(shù)據(jù)高速緩存和一級(jí)或多級(jí)共享中級(jí)高速緩存,諸如2級(jí)(L2)、3級(jí)(L3)、4級(jí)(L4)或其它級(jí)高速緩存,其中在外部存儲(chǔ)器前面的最高級(jí)高速緩存被分類為末級(jí)高速緩存(LLC)。在一個(gè)實(shí)施例中,高速緩存一致性邏輯保持各種高速緩存單元206與204A-N之間的一致性。處理器200還可包含一組一個(gè)或多個(gè)總線控制器單元216和系統(tǒng)代理210。一個(gè)或多個(gè)總線控制器單元管理一組外圍設(shè)備總線,諸如一個(gè)或多個(gè)外圍組件互連總線(例如PCI、PCIExpress)。系統(tǒng)代理210提供各種處理器組分的管理功能性。在一個(gè)實(shí)施例中,系統(tǒng)代理210包含一個(gè)或多個(gè)集成存儲(chǔ)器控制器214以管理對(duì)各種外部存儲(chǔ)器裝置(未示出)的存取。在一個(gè)實(shí)施例中,核202A-N中的一個(gè)或多個(gè)包含對(duì)于同時(shí)多線程的支持。在此類實(shí)施例中,系統(tǒng)代理210包含用于在多線程處理期間協(xié)調(diào)和操作核202A-N的組分。系統(tǒng)代理210此外可包含功率控制單元(PCU),其包含用于調(diào)節(jié)核202A-N和圖形處理器208的功率狀態(tài)的邏輯和組分。處理器200此外包含用于執(zhí)行圖形處理操作的圖形處理器208。在一個(gè)實(shí)施例中,圖形處理器208與該組共享高速緩存單元206以及包含一個(gè)或多個(gè)集成存儲(chǔ)器控制器214的系統(tǒng)代理單元210耦合。在一個(gè)實(shí)施例中,顯示器控制器211與圖形處理器208耦合以驅(qū)動(dòng)到一個(gè)或多個(gè)耦合顯示器的圖形處理器輸出。顯示器控制器211可以是經(jīng)由至少一個(gè)互連與圖形處理器耦合的單獨(dú)模塊,或者可集成在圖形處理器208或系統(tǒng)代理210內(nèi)。在一個(gè)實(shí)施例中,使用基于環(huán)的互連單元212耦合處理器200的內(nèi)部組分,然而可使用備選互連單元,諸如點(diǎn)對(duì)點(diǎn)互連、切換的(switched)互連或其它技術(shù),包含本領(lǐng)域眾所周知的技術(shù)。在一個(gè)實(shí)施例中,圖形處理器208經(jīng)由I/O鏈路213與環(huán)(ring)互連212耦合。示范I/O鏈路213表示I/O互連的多個(gè)種類中的至少一個(gè),包含促進(jìn)各種處理器組分與高性能嵌入式存儲(chǔ)器模塊218(諸如eDRAM模塊)之間通信的封裝I/O互連。在一個(gè)實(shí)施例中,核202-N和圖形處理器208中的每個(gè)都使用嵌入式存儲(chǔ)器模塊218作為共享末級(jí)高速緩存。在一個(gè)實(shí)施例中,核202A-N是執(zhí)行相同指令集架構(gòu)的同質(zhì)核。在另一實(shí)施例中,核202A-N就指令集架構(gòu)(ISA)而言是異質(zhì)的,其中核202A-N中的一個(gè)或多個(gè)執(zhí)行第一指令集,而至少一個(gè)其它核執(zhí)行第一指令集的子集或不同指令集。處理器200可以是一個(gè)或多個(gè)襯底的一部分,或使用若干處理技術(shù)(例如互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)、雙極結(jié)型/互補(bǔ)金屬氧化物半導(dǎo)體(BiCMOS)或N型金屬氧化物半導(dǎo)體邏輯(NMOS))中的任何技術(shù)實(shí)現(xiàn)在其上。此外,處理器200可實(shí)現(xiàn)在一個(gè)或多個(gè)芯片上或作為片上系統(tǒng)(SOC)集成電路(除其它組分之外還具有所圖示的組分)。圖3是可以是分立圖形處理單元或者可以是與多個(gè)處理核集成的圖形處理器的圖形處理器300的一個(gè)實(shí)施例的框圖。在一個(gè)實(shí)施例中,圖形處理器通過(guò)經(jīng)由到圖形處理器上寄存器的存儲(chǔ)器映射的I/O接口并經(jīng)由置入處理器存儲(chǔ)器中的命令進(jìn)行通信。圖形處理器300包含存儲(chǔ)器接口314以存取存儲(chǔ)器。存儲(chǔ)器接口314可以是到本地存儲(chǔ)器、一個(gè)或多個(gè)內(nèi)部高速緩存、一個(gè)或多個(gè)共享外部高速緩存和/或系統(tǒng)存儲(chǔ)器的接口。圖形處理器300還包含顯示器控制器302以將顯示器輸出數(shù)據(jù)驅(qū)動(dòng)到顯示器裝置320。顯示器控制器302包含用于用戶界面元素或視頻的多層的合成和顯示器的一個(gè)或多個(gè)覆蓋平面的硬件。在一個(gè)實(shí)施例中,圖形處理器300包含視頻編解碼器引擎306以對(duì)媒體進(jìn)行編碼、解碼或代碼轉(zhuǎn)換到一個(gè)或多個(gè)媒體編碼格式、從一個(gè)或多個(gè)媒體編碼格式進(jìn)行編碼、解碼或代碼轉(zhuǎn)換或在一個(gè)或多個(gè)媒體編碼格式之間進(jìn)行編碼、解碼或代碼轉(zhuǎn)換,所述編碼格式包含但不限于運(yùn)動(dòng)畫面專家組(MPEG)格式(諸如MPEG-2)、高級(jí)視頻譯碼(AVC)格式(諸如H.264/MPEG-4AVC)以及電影與電視工程師協(xié)會(huì)(SMPTE)421M/VC-1和聯(lián)合影像專家組(JPEG)格式(諸如JPEG)以及運(yùn)動(dòng)JPEG(MJPEG)格式。在一個(gè)實(shí)施例中,圖形處理器300包含塊圖像傳輸(BLIT)引擎304以執(zhí)行二維(2D)光柵化器(rasterizer)操作,例如包含位邊界塊傳輸。然而,在一個(gè)實(shí)施例中,使用圖形處理引擎(GPE)310的一個(gè)或多個(gè)組分執(zhí)行2D圖形操作。圖形處理引擎310是用于執(zhí)行圖形操作的計(jì)算引擎,包含三維(3D)圖形操作和媒體操作。GPE310包含用于執(zhí)行3D操作的3D流水線312,諸如使用作用在3D原語(yǔ)形狀(例如長(zhǎng)方形、三角形等)的處理功能渲染三維圖像和場(chǎng)景。3D流水線312包含可編程和固定功能元素,它們?cè)谠貎?nèi)執(zhí)行各種任務(wù)和/或產(chǎn)生到3D/媒體子系統(tǒng)315的執(zhí)行線程。雖然3D流水線312可用于執(zhí)行媒體操作,但GPE310的實(shí)施例還包含具體地說(shuō)用于執(zhí)行諸如視頻后處理和圖像增強(qiáng)的媒體操作的媒體流水線316。在一個(gè)實(shí)施例中,媒體流水線316包含固定功能或可編程邏輯單元以代替或代表視頻編解碼器引擎306執(zhí)行一個(gè)或多個(gè)專用媒體操作,諸如視頻解碼加速、視頻去交織(deinterlace)和視頻編碼加速。在一個(gè)實(shí)施例中,媒體流水線316此外包含線程產(chǎn)生單元以產(chǎn)生線程以便在3D/媒體子系統(tǒng)315上執(zhí)行。產(chǎn)生的線程在包含在3D/媒體子系統(tǒng)中的一個(gè)或多個(gè)圖形執(zhí)行單元上執(zhí)行媒體操作的計(jì)算。3D/媒體子系統(tǒng)315包含用于執(zhí)行由3D流水線312和媒體流水線316產(chǎn)生的線程的邏輯。在一個(gè)實(shí)施例中,流水線將線程執(zhí)行請(qǐng)求發(fā)送到3D/媒體子系統(tǒng)315,其包含線程分派邏輯以便仲裁(arbitrate)和分派各種請(qǐng)求給可用的線程執(zhí)行資源。執(zhí)行資源包含用于處理3D和媒體線程的圖形執(zhí)行單元的陣列。在一個(gè)實(shí)施例中,3D/媒體子系統(tǒng)315包含用于線程指令和數(shù)據(jù)的一個(gè)或多個(gè)內(nèi)部高速緩存。在一個(gè)實(shí)施例中,子系統(tǒng)還包含共享存儲(chǔ)器,包含寄存器和可尋址存儲(chǔ)器,以在線程之間共享數(shù)據(jù)并存儲(chǔ)輸出數(shù)據(jù)。3D/媒體處理-圖4圖4是圖形處理器的圖形處理引擎410的實(shí)施例的框圖。在一個(gè)實(shí)施例中,圖形處理引擎(GPE)410是在圖3中示出的GPE310的版本。GPE410包含3D流水線412和媒體流水線416,它們中的每個(gè)都可不同于或類似于圖3的3D流水線312和媒體流水線316的實(shí)現(xiàn)。在一個(gè)實(shí)施例中,GPE410與命令流播器403耦合,命令流播器403向GPE3D和媒體流水線412、416提供命令流播。命令流播器403耦合到存儲(chǔ)器,其可以是系統(tǒng)存儲(chǔ)器或內(nèi)部高速緩沖存儲(chǔ)器和共享高速緩沖存儲(chǔ)器中的一個(gè)或多個(gè)。命令流播器403從存儲(chǔ)器接收命令,并向3D流水線412和/或媒體流水線416發(fā)送命令。3D和媒體流水線通過(guò)經(jīng)由相應(yīng)流水線內(nèi)的邏輯執(zhí)行操作或通過(guò)向執(zhí)行單元陣列414分派一個(gè)或多個(gè)執(zhí)行線程來(lái)處理命令。在一個(gè)實(shí)施例中,執(zhí)行單元陣列414是可縮放的,使得陣列基于GPE410的目標(biāo)功率和性能等級(jí)包含可變數(shù)量的執(zhí)行單元。采樣引擎430與存儲(chǔ)器(例如高速緩沖存儲(chǔ)器或系統(tǒng)存儲(chǔ)器)和執(zhí)行單元陣列414耦合。在一個(gè)實(shí)施例中,采樣引擎430提供了允許執(zhí)行陣列414從存儲(chǔ)器讀取圖形和媒體數(shù)據(jù)的可縮放執(zhí)行單元陣列414的存儲(chǔ)器存取機(jī)制。在一個(gè)實(shí)施例中,采樣引擎430包含用于執(zhí)行媒體的專用圖像采樣操作的邏輯。采樣引擎430中的專用媒體采樣邏輯包含去噪聲/去交織模塊432、運(yùn)動(dòng)估計(jì)模塊434和圖像縮放和濾波模塊436。去噪聲/去交織模塊432包含用于對(duì)解碼的視頻數(shù)據(jù)執(zhí)行去噪聲或去交織算法中的一個(gè)或多個(gè)的邏輯。去交織邏輯將交織的視頻內(nèi)容的交替(alternating)字段組合成單個(gè)幀視頻。去交織邏輯降低或移除來(lái)自視頻和圖像數(shù)據(jù)中的數(shù)據(jù)噪聲。在一個(gè)實(shí)施例中,去噪聲邏輯和去交織邏輯是運(yùn)動(dòng)自適應(yīng)的,并基于在視頻數(shù)據(jù)中檢測(cè)的運(yùn)動(dòng)的量使用空間或時(shí)間濾波。在一個(gè)實(shí)施例中,去噪聲/去交織模塊432包含專用運(yùn)動(dòng)檢測(cè)邏輯(例如在運(yùn)動(dòng)估計(jì)引擎434內(nèi))。運(yùn)動(dòng)估計(jì)引擎434通過(guò)對(duì)視頻數(shù)據(jù)執(zhí)行視頻加速功能(諸如運(yùn)動(dòng)向量估計(jì)和預(yù)測(cè))來(lái)提供視頻操作的硬件加速。運(yùn)動(dòng)估計(jì)引擎確定描述圖像數(shù)據(jù)在接連視頻幀之間的變換的運(yùn)動(dòng)向量。在一個(gè)實(shí)施例中,圖形處理器媒體編解碼器使用視頻運(yùn)動(dòng)估計(jì)引擎434在宏塊級(jí)對(duì)視頻執(zhí)行操作,其否則可能使用通用處理器對(duì)執(zhí)行在計(jì)算上加強(qiáng)。在一個(gè)實(shí)施例中,運(yùn)動(dòng)估計(jì)引擎434一般可用于圖形處理器組分以輔助視頻解碼和處理功能,這些功能對(duì)視頻數(shù)據(jù)內(nèi)的運(yùn)動(dòng)的方向或幅度是敏感的或自適應(yīng)的。圖像縮放和濾波模塊436執(zhí)行圖像處理操作以增強(qiáng)所生成的圖像和視頻的視覺質(zhì)量。在一個(gè)實(shí)施例中,縮放和濾波模塊436在向執(zhí)行單元陣列414提供數(shù)據(jù)之前的采樣操作期間處理圖像和視頻數(shù)據(jù)。在一個(gè)實(shí)施例中,圖形處理引擎410包含數(shù)據(jù)端口444,其提供圖形子系統(tǒng)存取存儲(chǔ)器的附加機(jī)制。數(shù)據(jù)端口444促進(jìn)對(duì)于包含渲染目標(biāo)寫、常量緩沖器讀、臨時(shí)(scratch)存儲(chǔ)器空間讀/寫和媒體表面存取的操作的存儲(chǔ)器存取。在一個(gè)實(shí)施例中,數(shù)據(jù)端口444包含高速緩沖存儲(chǔ)器空間以對(duì)存儲(chǔ)器高速緩存存取。高速緩沖存儲(chǔ)器可以是單個(gè)數(shù)據(jù)高速緩存,或者對(duì)于經(jīng)由數(shù)據(jù)端口存取存儲(chǔ)器的多個(gè)子系統(tǒng)分成多個(gè)高速緩存(例如渲染緩沖器高速緩存、常量緩沖器高速緩存等)。在一個(gè)實(shí)施例中,在執(zhí)行單元陣列414中的執(zhí)行單元上執(zhí)行的線程通過(guò)經(jīng)由耦合圖形處理引擎410的每一個(gè)子系統(tǒng)的數(shù)據(jù)分布互連來(lái)交換消息與數(shù)據(jù)端口通信。執(zhí)行單元——圖5-7圖5是具有可縮放數(shù)量的圖形核的圖形處理器的另一實(shí)施例的框圖。在一個(gè)實(shí)施例中,圖形處理器包含環(huán)互連502、流水線前端504、媒體引擎537和圖形核580A-N。環(huán)互連502將圖形處理器耦合到其它處理單元,包含其它圖形處理器或一個(gè)或多個(gè)通用處理器核。在一個(gè)實(shí)施例中,圖形處理器是集成在多核處理系統(tǒng)內(nèi)的許多處理器中的一個(gè)。圖形處理器經(jīng)由環(huán)互連502接收批量命令。傳入命令由流水線前端504中的命令流播器503解釋。圖形處理器包含縮放執(zhí)行邏輯以經(jīng)由一個(gè)或多個(gè)圖形核580A-N執(zhí)行3D幾何處理和媒體處理。對(duì)于3D幾何處理命令,命令流播器503向幾何流水線536供應(yīng)命令。對(duì)于至少一些媒體處理命令,命令流播器503將命令供應(yīng)給視頻前端534,其與媒體引擎537耦合。媒體引擎537包含用于視頻和圖像后處理的視頻質(zhì)量引擎(VQE)530以及用于提供硬件加速的媒體數(shù)據(jù)編碼和解碼的多格式編碼/解碼(MFX)533引擎。幾何流水線536和媒體引擎537各生成用于由至少一個(gè)圖形核580A提供的線程執(zhí)行資源的執(zhí)行線程。圖形處理器包含以模塊的核580A-N(有時(shí)稱為核切片)為特征的可縮放線程執(zhí)行資源,各具有多個(gè)子核550A-N、560A-N(有時(shí)稱為核子切片)。圖形處理器可具有任何數(shù)量的圖形核580A至580N。在一個(gè)實(shí)施例中,圖形處理器包含至少具有第一子核550A和第二核子核560A的圖形核580A。在另一實(shí)施例中,圖形處理器是具有單個(gè)子核(例如550A)的低功率處理器。在一個(gè)實(shí)施例中,圖形處理器包含多個(gè)圖形核580A-N,各包含一組第一子核550A-N和一組第二子核560A-N。該組第一子核550A-N中的每個(gè)子核都至少包含第一組執(zhí)行單元552A-N和媒體/紋理采樣器554A-N。該組第二子核560A-N中的每個(gè)子核都至少包含第二組執(zhí)行單元562A-N和采樣器564A-N。在一個(gè)實(shí)施例中,每個(gè)子核550A-N、560A-N共享一組共享資源570A-N。在一個(gè)實(shí)施例中,共享資源包含共享高速緩沖存儲(chǔ)器和像素操作邏輯。其它共享資源也可被包含在圖形處理器的各種實(shí)施例中。圖6圖示了包含處理元素陣列的線程執(zhí)行邏輯600的實(shí)施例。在一個(gè)實(shí)施例中,線程執(zhí)行邏輯600包含像素著色器602、線程分派器604、指令高速緩存606、包含多個(gè)執(zhí)行單元608A-N的可縮放執(zhí)行單元陣列、采樣器610、數(shù)據(jù)高速緩存612和數(shù)據(jù)端口614。在一個(gè)實(shí)施例中,所包含的組分經(jīng)由鏈接到每一個(gè)組分的互連組構(gòu)互連。線程執(zhí)行邏輯600包含通過(guò)指令高速緩存606、數(shù)據(jù)端口614、采樣器610和執(zhí)行單元陣列608A-N中的一個(gè)或多個(gè)到存儲(chǔ)器(諸如系統(tǒng)存儲(chǔ)器或高速緩沖存儲(chǔ)器)的一個(gè)或多個(gè)連接。在一個(gè)實(shí)施例中,每個(gè)執(zhí)行單元(例如608A)是能夠執(zhí)行多個(gè)同時(shí)線程并且對(duì)于每個(gè)線程并行處理多個(gè)數(shù)據(jù)元素的單獨(dú)向量處理器。執(zhí)行單元陣列608A-N包含任何數(shù)量的單獨(dú)執(zhí)行單元。在一個(gè)實(shí)施例中,執(zhí)行單元陣列608A-N主要用于執(zhí)行“著色器”程序。在一個(gè)實(shí)施例中,陣列608A-N中的執(zhí)行單元執(zhí)行包含對(duì)于許多標(biāo)準(zhǔn)3D圖形著色器指令的原生支持的指令集,使得用最小的轉(zhuǎn)變執(zhí)行來(lái)自圖形庫(kù)(例如Direct3D和OpenGL)的著色器程序。執(zhí)行單元支持頂點(diǎn)和幾何處理(例如頂點(diǎn)程序、幾何程序、頂點(diǎn)著色器)、像素處理(例如像素著色器、片段著色器)和通用處理(例如計(jì)算和媒體著色器)。執(zhí)行單元陣列608A-N中的每個(gè)執(zhí)行單元都操作在數(shù)據(jù)元素陣列上。數(shù)據(jù)元素?cái)?shù)量是“執(zhí)行尺寸”,或者指令的通道數(shù)量。執(zhí)行通道是用于數(shù)據(jù)元素存取、掩蔽和指令內(nèi)流控制的執(zhí)行的邏輯單元。通道數(shù)量可獨(dú)立于具體圖形處理器的物理ALU或FPU的數(shù)量。執(zhí)行單元608A-N支持整數(shù)和浮點(diǎn)數(shù)據(jù)類型。執(zhí)行單元指令集包含單指令多數(shù)據(jù)(SEVID)指令。各種數(shù)據(jù)元素可作為壓縮數(shù)據(jù)類型存儲(chǔ)在寄存器中,并且執(zhí)行單元將基于元素的數(shù)據(jù)尺寸處理各種元素。例如,當(dāng)操作在256位寬向量上時(shí),向量的256位被存儲(chǔ)在寄存器中,并且執(zhí)行單元操作在向量上作為4個(gè)單獨(dú)的64位壓縮數(shù)據(jù)元素(四字(QW)尺寸數(shù)據(jù)元素)、8個(gè)單獨(dú)的32位壓縮數(shù)據(jù)元素(雙字(DW)尺寸數(shù)據(jù)元素)、16個(gè)單獨(dú)的16位壓縮數(shù)據(jù)元素(字(W)尺寸數(shù)據(jù)元素)或32個(gè)單獨(dú)的8位數(shù)據(jù)元素(字節(jié)(B)尺寸數(shù)據(jù)元素)。然而,不同的向量寬度和寄存器尺寸是可能的。一個(gè)或多個(gè)內(nèi)部指令高速緩存(例如606)被包含在線程執(zhí)行邏輯600中以高速緩存執(zhí)行單元的線程指令。在一個(gè)實(shí)施例中,包含一個(gè)或多個(gè)數(shù)據(jù)高速緩存(例如612)以在線程執(zhí)行期間對(duì)線程數(shù)據(jù)高速緩存。包含采樣器610以提供用于3D操作的紋理采樣和用于媒體操作的媒體采樣。在一個(gè)實(shí)施例中,采樣器610包含專用紋理或媒體采樣功能性,以在向執(zhí)行單元提供采樣數(shù)據(jù)之前的采樣過(guò)程期間處理紋理或媒體數(shù)據(jù)。在執(zhí)行期間,圖形和媒體流水線經(jīng)由線程產(chǎn)生和分派邏輯向線程執(zhí)行邏輯600發(fā)送線程發(fā)起請(qǐng)求。線程執(zhí)行邏輯600包含本地線程分派器604,其仲裁來(lái)自圖形和媒體流水線的線程發(fā)起請(qǐng)求,并在一個(gè)或多個(gè)執(zhí)行單元608A-N上例示請(qǐng)求的線程。例如,幾何流水線(例如圖5的536)向線程執(zhí)行邏輯600分派頂點(diǎn)處理、曲面細(xì)分或幾何處理線程。線程分派器604還可處理來(lái)自正在執(zhí)行的著色器程序的運(yùn)行時(shí)間線程產(chǎn)生請(qǐng)求。一旦一組幾何對(duì)象已經(jīng)被處理并且光柵化成像素?cái)?shù)據(jù),則調(diào)用像素著色器602以進(jìn)一步計(jì)算輸出信息,并使結(jié)果被寫到輸出表面(例如顏色緩沖器、深度緩沖器、模板緩沖器等)。在一個(gè)實(shí)施例中,像素著色器602計(jì)算要跨光柵化對(duì)象內(nèi)插的各種頂點(diǎn)屬性的值。像素著色器602然后執(zhí)行API供應(yīng)的像素著色器程序。為了執(zhí)行像素著色器程序,像素著色器602經(jīng)由線程分派器604向執(zhí)行單元(例如608A)分派線程。像素著色器602使用采樣器610中的紋理采樣邏輯以存取存儲(chǔ)在存儲(chǔ)器中的紋理映射中的紋理數(shù)據(jù)。紋理數(shù)據(jù)和輸入幾何數(shù)據(jù)上的算術(shù)運(yùn)算計(jì)算每個(gè)幾何片段的像素顏色數(shù)據(jù),或者從進(jìn)一步處理中丟棄一個(gè)或多個(gè)像素。在一個(gè)實(shí)施例中,數(shù)據(jù)端口614提供用于線程執(zhí)行邏輯600將處理的數(shù)據(jù)輸出到存儲(chǔ)器以便在圖形處理器輸出流水線上進(jìn)行處理的存儲(chǔ)器存取機(jī)制。在一個(gè)實(shí)施例中,數(shù)據(jù)端口614包含或耦合到一個(gè)或多個(gè)高速緩沖存儲(chǔ)器(例如數(shù)據(jù)高速緩存612)以高速緩存數(shù)據(jù)以便經(jīng)由數(shù)據(jù)端口的存儲(chǔ)器存取。圖7是圖示根據(jù)實(shí)施例的圖形處理器執(zhí)行單元指令格式的框圖。在一個(gè)實(shí)施例中,圖形處理器執(zhí)行單元支持具有以多種格式的指令的指令集。實(shí)線框圖示了一般被包含在執(zhí)行單元指令中的組分,而虛線包含可選的或者僅包含在指令子集中的組分。所圖示和所描述的指令格式是宏指令,因?yàn)橐坏┲噶畋惶幚?,它們則是供應(yīng)給執(zhí)行單元的指令,與從指令解碼得到的微操作相對(duì)。在一個(gè)實(shí)施例中,圖形處理器執(zhí)行單元原生(natively)支持128位格式710的指令。64位緊致(compact)指令格式730基于選擇的指令、指令選項(xiàng)和若干操作數(shù)對(duì)于一些指令可用。原生128位格式710提供對(duì)所有指令選項(xiàng)的存取,而一些選項(xiàng)和操作被約束在64位格式730。在64位格式730中可用的原生指令按實(shí)施例變化。在一個(gè)實(shí)施例中,部分使用索引字段713中的一組索引值使指令緊致。執(zhí)行單元硬件參考基于索引值的一組緊致表,并使用緊致表輸出重構(gòu)以128位格式710的原生指令。對(duì)于每個(gè)格式,指令操作碼712定義執(zhí)行單元要執(zhí)行的操作。執(zhí)行單元跨每個(gè)操作數(shù)的多個(gè)數(shù)據(jù)元素并行執(zhí)行每個(gè)指令。例如,響應(yīng)于加指令,執(zhí)行單元跨表示紋理元素或畫面元素的每個(gè)顏色通道執(zhí)行同時(shí)加操作。作為默認(rèn),執(zhí)行單元跨操作數(shù)的所有數(shù)據(jù)通道執(zhí)行每個(gè)指令。指令控制字段712實(shí)現(xiàn)了對(duì)某些執(zhí)行選項(xiàng)(諸如通道選擇(例如預(yù)測(cè))和數(shù)據(jù)通道次序(例如拌和(swizzle)))的控制。對(duì)于128位指令710,執(zhí)行尺寸字段716限制將并行執(zhí)行的數(shù)據(jù)通道的數(shù)量。執(zhí)行尺寸字段716對(duì)于在64位緊致指令格式730中的使用不可用。一些執(zhí)行單元指令具有多達(dá)3個(gè)操作數(shù),包含2個(gè)源操作數(shù)、src0722、src1722和一個(gè)目的地718。在一個(gè)實(shí)施例中,執(zhí)行單元支持雙目的地指令,其中暗示了其中一個(gè)目的地。數(shù)據(jù)操縱指令可具有第三源操作數(shù)(例如SRC2724),其中指令操作碼JJ12確定源操作數(shù)的數(shù)量。指令的最后源操作數(shù)可以是用指令傳遞的立即(例如硬編碼)值。在一個(gè)實(shí)施例中,指令可基于操作碼位字段進(jìn)行編組以簡(jiǎn)化操作碼解碼740。對(duì)于8位操作碼,位4、5和6允許執(zhí)行單元確定操作碼的類型。所示出的精確的操作碼編組是示范性的。在一個(gè)實(shí)施例中,移動(dòng)和邏輯操作碼組742包含數(shù)據(jù)移動(dòng)和邏輯指令(例如mov、cmp)。移動(dòng)和邏輯組742共享5個(gè)最高有效位(MSB),其中移動(dòng)指令以0000xxxxb(例如OxOx)形式,并且邏輯指令以0001xxxxb(例如0x01)形式。流控制指令組744(例如調(diào)用jmp)包含以0010xxxxb(例如0x20)形式的指令?;祀s指令組746包含指令的混合,包含以0011xxxxb(例如0x30)形式的同步指令(例如等待、發(fā)送)。并行數(shù)學(xué)指令組748包含以0100xxxxb(例如0x40)形式的逐個(gè)分量的算術(shù)指令(例如加、乘)。并行數(shù)學(xué)組748跨數(shù)據(jù)通道并行執(zhí)行算術(shù)運(yùn)算。向量數(shù)學(xué)組750包含以0101xxxxb(例如0x50)形式的算術(shù)指令(例如dp4)。向量數(shù)學(xué)組執(zhí)行算術(shù),諸如在向量操作數(shù)上的點(diǎn)積計(jì)算。圖形流水線——圖8圖8是包含圖形流水線820、媒體流水線830、顯示器引擎840、線程執(zhí)行邏輯850和渲染輸出流水線870的圖形處理器的另一實(shí)施例的框圖。在一個(gè)實(shí)施例中,圖形處理器是包含一個(gè)或多個(gè)通用處理核的多核處理系統(tǒng)內(nèi)的圖形處理器。圖形處理器通過(guò)寄存器寫到一個(gè)或多個(gè)控制寄存器(未示出)或借助于經(jīng)由環(huán)互連802向圖形處理器發(fā)出的命令而控制。環(huán)互連802將圖形處理器耦合到其它處理組分,諸如其它圖形處理器或通用處理器。來(lái)自環(huán)互連的命令由命令流播器803解釋,命令流播器803將指令供應(yīng)給媒體流水線830或圖形流水線820的各個(gè)組分。命令流播器803指導(dǎo)頂點(diǎn)提取器(fetcher)805組分的操作,其從存儲(chǔ)器讀頂點(diǎn)數(shù)據(jù),并執(zhí)行由命令流播器803提供的頂點(diǎn)處理命令。頂點(diǎn)提取器805將頂點(diǎn)數(shù)據(jù)提供給頂點(diǎn)著色器807,其執(zhí)行到每個(gè)頂點(diǎn)的協(xié)調(diào)空間變換和照亮(lighting)操作。頂點(diǎn)提取器805和頂點(diǎn)著色器807通過(guò)經(jīng)由線程分派器831向執(zhí)行單元852A、852B分派執(zhí)行線程來(lái)執(zhí)行頂點(diǎn)處理指令。在一個(gè)實(shí)施例中,執(zhí)行單元852A、852B是具有用于執(zhí)行圖形和媒體操作的指令集的向量處理器的陣列。執(zhí)行單元825A、852B具有附連的L1高速緩存851,其對(duì)于每個(gè)陣列都是特定的,并且在陣列之間共享。高速緩存可配置為數(shù)據(jù)高速緩存、指令高速緩存或被分區(qū)成在不同分區(qū)中含有數(shù)據(jù)和指令的單個(gè)高速緩存。在一個(gè)實(shí)施例中,圖形流水線820包含曲面細(xì)分組分以執(zhí)行3D對(duì)象的硬件加速曲面細(xì)分??删幊掏鈿ぶ?11配置曲面細(xì)分操作??删幊逃蛑?17提供曲面細(xì)分輸出的后端評(píng)估。曲面細(xì)分器813在外殼著色器811的方向操作,并且含有專用邏輯以基于作為圖形流水線820的輸入提供的粗略幾何模型生成一組詳細(xì)的幾何對(duì)象。如果未使用曲面細(xì)分,則可旁路曲面細(xì)分組分811、813、817。完整幾何對(duì)象可由幾何著色器819經(jīng)由分派給執(zhí)行單元852A、852B的一個(gè)或多個(gè)線程處理,或者可直接前往修剪器(clipper)829。幾何著色器操作在整個(gè)幾何對(duì)象上,而不是與圖形流水線的先前階段一樣操作在頂點(diǎn)或頂點(diǎn)的補(bǔ)丁上。如果曲面細(xì)分被禁用,則幾何著色器819從頂點(diǎn)著色器807接收輸入。如果曲面細(xì)分單元被禁用,則幾何著色器819由幾何著色器程序可編程來(lái)執(zhí)行幾何曲面細(xì)分。在光柵化之前,頂點(diǎn)數(shù)據(jù)由修剪器829處理,其或者是固定功能修剪器,或者是具有修剪和幾何著色器功能的可編程修剪器。在一個(gè)實(shí)施例中,渲染輸出流水線870中的光柵化器873分派像素著色器以將幾何對(duì)象轉(zhuǎn)換成它們的每像素表示。在一個(gè)實(shí)施例中,像素著色器邏輯被包含在線程執(zhí)行邏輯850中。圖形引擎具有互連總線、互連組構(gòu)或允許數(shù)據(jù)和消息在圖形引擎的主要組分之間傳遞的某一其它互連機(jī)制。在一個(gè)實(shí)施例中,執(zhí)行單元852A、852B和關(guān)聯(lián)的高速緩存(一個(gè)或多個(gè))851、紋理和媒體采樣器854以及紋理/采樣器高速緩存858經(jīng)由數(shù)據(jù)端口856互連以執(zhí)行存儲(chǔ)器存取,并與圖形引擎的渲染輸出流水線組分通信。在一個(gè)實(shí)施例中,采樣器854、高速緩存851、858和執(zhí)行單元852A、852B各具有單獨(dú)的存儲(chǔ)器存取路徑。在一個(gè)實(shí)施例中,渲染輸出流水線870含有光柵化器和深度測(cè)試組分873,其將基于頂點(diǎn)的對(duì)象轉(zhuǎn)換成它們關(guān)聯(lián)的基于像素的表示。在一個(gè)實(shí)施例中,光柵化器邏輯包含視窗/掩蔽器單元以執(zhí)行固定功能三角形或線光柵化。在一個(gè)實(shí)施例中,關(guān)聯(lián)的渲染和深度緩沖器高速緩存878、879也是可用的。像素操作組分877在數(shù)據(jù)上執(zhí)行基于像素的操作,盡管在一些實(shí)例中,與2D操作關(guān)聯(lián)的像素操作(例如具有混合的位塊圖像傳輸)由2D引擎841執(zhí)行,或者在顯示時(shí)間由顯示器控制器843使用覆蓋顯示器平面替代。在一個(gè)實(shí)施例中,共享L3高速緩存875對(duì)所有圖形組分都可用,允許在不使用主要系統(tǒng)存儲(chǔ)器的情況下共享數(shù)據(jù)。圖形處理器媒體流水線830包含媒體引擎337和視頻前端834。在一個(gè)實(shí)施例中,視頻前端834從命理流播器803接收流水線命令。然而,在一個(gè)實(shí)施例中,媒體流水線830包含單獨(dú)的命令流播器。視頻前端834在將命令發(fā)送到媒體引擎837之前處理媒體命令。在一個(gè)實(shí)施例中,媒體引擎包含線程產(chǎn)生功能性以產(chǎn)生經(jīng)由線程分派器831分派到線程執(zhí)行邏輯850的線程。在一個(gè)實(shí)施例中,圖形引擎包含顯示器引擎840。在一個(gè)實(shí)施例中,顯示器引擎840在圖形處理器的外部,并經(jīng)由環(huán)互連802或某一其它互連總線或組構(gòu)與圖形處理器耦合。顯示器引擎840包含2D引擎841和顯示器控制器843。顯示器引擎840含有能夠獨(dú)立于3D流水線操作的專用邏輯。顯示器控制器843與顯示器裝置(未示出)耦合,顯示器裝置可與膝上型計(jì)算中一樣是系統(tǒng)集成的顯示器裝置,或者是經(jīng)由顯示器裝置連接器附連的外部顯示器裝置。圖形流水線820和媒體流水線830可配置成基于多個(gè)圖形和媒體編程接口執(zhí)行操作,并且對(duì)任一個(gè)應(yīng)用編程接口(API)都不是特定的。在一個(gè)實(shí)施例中,用于圖形處理器的驅(qū)動(dòng)軟件將對(duì)具體圖形或媒體庫(kù)特定的API調(diào)用翻譯成可由圖形處理器處理的命令。在各種實(shí)施例中,對(duì)于由Khronos組織支持的開放圖形庫(kù)(OpenGL)和開放計(jì)算語(yǔ)言(OpenCL)、來(lái)自微軟公司的Direct3D庫(kù)或者在一個(gè)實(shí)施例中OpenGL和D3D兩者提供支持,也可對(duì)于開放源計(jì)算機(jī)視覺庫(kù)(OpenCV)提供支持。如果可進(jìn)行從將來(lái)API的流水線映射到圖形處理器的流水線,則也會(huì)支持具有可兼容3D流水線的將來(lái)API。圖形流水線編程——圖9A-8圖9A是圖示根據(jù)實(shí)施例的圖形處理器命令格式的框圖,并且圖9B是圖示根據(jù)實(shí)施例的圖形處理器命令序列的框圖。圖9A中的實(shí)線框圖示了一般被包含在圖形命令中的組分,而虛線包含可選的或者僅包含在圖形命令的子集中的組分。圖9A的示范性圖形處理器命令格式900包含數(shù)據(jù)字段以標(biāo)識(shí)命令的目標(biāo)客戶端902、命令操作代碼(操作碼)904以及針對(duì)命令的相關(guān)數(shù)據(jù)906。在一些命令中還包含子操作碼905和命令尺寸908??蛻舳?02規(guī)定處理命令數(shù)據(jù)的圖形裝置的客戶端單元。在一個(gè)實(shí)施例中,圖形處理器命令解析器檢查每個(gè)命令的客戶端字段,以調(diào)節(jié)命令的進(jìn)一步處理,并將命令數(shù)據(jù)路由到適當(dāng)客戶端單元。在一個(gè)實(shí)施例中,圖形處理器客戶端單元包含存儲(chǔ)器接口單元、渲染單元、2D單元、3D單元和媒體單元。每個(gè)客戶端單元具有處理命令的對(duì)應(yīng)處理流水線。一旦客戶端單元接收到命令,客戶端單元?jiǎng)t讀操作碼904,如果存在的話,還有子操作碼905,以確定要執(zhí)行的操作??蛻舳藛卧褂妹畹臄?shù)據(jù)906字段中的信息執(zhí)行命令。對(duì)于一些命令,期望明確命令尺寸908以規(guī)定命令的尺寸。在一個(gè)實(shí)施例中,命令解析器基于命令操作碼自動(dòng)確定至少一些命令的尺寸。在一個(gè)實(shí)施例中,命令經(jīng)由雙字的倍數(shù)對(duì)準(zhǔn)。圖9B中的流程圖示出了樣本命令序列910。在一個(gè)實(shí)施例中,以圖形處理器的實(shí)施例為特征的數(shù)據(jù)處理系統(tǒng)的軟件或固件使用所示出的命令序列的版本設(shè)立、執(zhí)行和終止一組圖形操作。為了示范目的示出并描述了樣本命令序列,然而,實(shí)施例不限于這些命令或者這個(gè)命令序列。而且,命令可作為命令序列中的成批命令發(fā)出,使得圖形處理器將以至少部分同時(shí)發(fā)生的方式處理命令序列。樣本命令序列910可開始于流水線刷新命令912,以使任何活動(dòng)圖形流水線都完成流水線的當(dāng)前未決的命令。在一個(gè)實(shí)施例中,3D流水線922和媒體流水線924不同時(shí)操作。執(zhí)行流水線刷新以使活動(dòng)圖形流水線完成任何未決的命令。響應(yīng)于流水線刷新,圖形處理器的命令解析器將暫停命令處理,直到活動(dòng)繪圖引擎完成未決的操作,并且相關(guān)讀高速緩存無(wú)效??蛇x地,可對(duì)存儲(chǔ)器刷新被標(biāo)記為“臟(dirty)”的渲染高速緩存中的任何數(shù)據(jù)。流水線刷新命令912可用于流水線同步或在使圖形處理器置于低功率狀態(tài)之前使用。流水線選擇命令913被用在命令序列要求圖形處理器在流水線之間明確地切換時(shí)。流水線選擇命令913在執(zhí)行上下文內(nèi)在發(fā)出流水線命令之前僅要求一次,除非上下文是發(fā)出用于兩個(gè)流水線的命令。在一個(gè)實(shí)施例中,就在經(jīng)由流水線選擇命令913的流水線切換之前要求流水線刷新命令912。流水線控制命令914配置圖形流水線以便操作,并且用于對(duì)3D流水線922和媒體流水線924編程。流水線控制命令914配置活動(dòng)流水線的流水線狀態(tài)。在一個(gè)實(shí)施例中,流水線控制命令914用于流水線同步,并在活動(dòng)流水線內(nèi)在處理一批命令之前從一個(gè)或多個(gè)高速緩沖存儲(chǔ)器中清除數(shù)據(jù)。返回緩沖器狀態(tài)命令916用于將相應(yīng)流水線的一組返回緩沖器配置成寫數(shù)據(jù)。一些流水線操作要求分配、選擇或配置操作在處理期間將中間數(shù)據(jù)寫入的一個(gè)或多個(gè)返回緩沖器。圖形處理器還使用一個(gè)或多個(gè)返回緩沖器來(lái)存儲(chǔ)輸出數(shù)據(jù),并執(zhí)行交叉線程通信。返回緩沖器狀態(tài)916包含選擇要用于一組流水線操作的返回緩沖器的尺寸和數(shù)量。命令序列中的剩余命令基于用于操作的活動(dòng)流水線而不同?;诹魉€確定920,命令序列被調(diào)整成開始于3D流水線狀態(tài)930的3D流水線922,或者開始于媒體流水線狀態(tài)940的媒體流水線924。用于3D流水線狀態(tài)930的命令包含用于頂點(diǎn)緩沖器狀態(tài)、頂點(diǎn)元素狀態(tài)、恒定顏色狀態(tài)、深度緩沖器狀態(tài)以及在處理3D原語(yǔ)命令之前配置的其它狀態(tài)變量的3D狀態(tài)設(shè)置命令。這些命令的值至少部分基于使用中的具體3DAPI而確定。3D流水線狀態(tài)930命令也能夠有選擇地禁用或旁路某些流水線元素,如果那些元素將不使用的話。3D原語(yǔ)932命令用于提交3D原語(yǔ)以由3D流水線處理。經(jīng)由3D原語(yǔ)932命令傳遞到圖形處理器的命令以及關(guān)聯(lián)參數(shù)被轉(zhuǎn)發(fā)到圖形流水線中的頂點(diǎn)提取功能。頂點(diǎn)提取功能使用3D原語(yǔ)932命令數(shù)據(jù)生成頂點(diǎn)數(shù)據(jù)結(jié)構(gòu)。頂點(diǎn)數(shù)據(jù)結(jié)構(gòu)被存儲(chǔ)在一個(gè)或多個(gè)返回緩沖器中。3D原語(yǔ)932命令用于經(jīng)由頂點(diǎn)著色器對(duì)3D原語(yǔ)執(zhí)行頂點(diǎn)操作。為了處理頂點(diǎn)著色器,3D流水線922將著色器執(zhí)行線程分派給圖形處理器執(zhí)行單元。3D流水線922經(jīng)由執(zhí)行934命令或事件觸發(fā)。在一個(gè)實(shí)施例中,寄存器寫觸發(fā)命令執(zhí)行。在一個(gè)實(shí)施例中,經(jīng)由命令序列中的“go”或“kick”命令觸發(fā)執(zhí)行。在一個(gè)實(shí)施例中,使用流水線同步命令通過(guò)圖形流水線刷新命令序列來(lái)觸發(fā)命令執(zhí)行。3D流水線將執(zhí)行3D原語(yǔ)的幾何處理。一旦操作完成,得到的幾何對(duì)象被光柵化,并且像素引擎給得到的像素上色。對(duì)于那些操作還可包含控制像素著色和像素后端操作的附加命令。當(dāng)執(zhí)行媒體操作時(shí),樣本命令序列910遵循媒體流水線924路徑。一般而言,媒體流水線924的編程的特定使用和方式取決于要執(zhí)行的媒體或計(jì)算操作。特定媒體解碼操作可在媒體解碼期間被卸載到媒體流水線。媒體流水線也可被旁路,并且媒體解碼可使用由一個(gè)或多個(gè)通用處理核提供的資源全部或部分執(zhí)行。在一個(gè)實(shí)施例中,媒體流水線還包含用于通用圖形處理器單元(GPGPU)操作的元素,其中圖形處理器用于使用與圖形原語(yǔ)的渲染不明確相關(guān)的計(jì)算著色器程序執(zhí)行SIMD向量操作。媒體流水線924以與3D流水線922類似的方式配置。一組媒體流水線狀態(tài)命令940被分派或置入命令隊(duì)列中(在媒體對(duì)象命令942之前)。媒體流水線狀態(tài)命令940包含用于配置將用于處理媒體對(duì)象的媒體流水線元素的數(shù)據(jù)。這包含用于配置媒體流水線內(nèi)視頻解碼和視頻編碼邏輯(諸如編碼和解碼格式)的數(shù)據(jù)。媒體流水線狀態(tài)命令940還支持將一個(gè)或多個(gè)指針用于“間接”狀態(tài)元素,它們含有一批狀態(tài)設(shè)置。媒體對(duì)象命令942將指針供應(yīng)給媒體對(duì)象以便由媒體流水線進(jìn)行處理。媒體對(duì)象包含含有要處理的視頻數(shù)據(jù)的存儲(chǔ)器緩沖器。在一個(gè)實(shí)施例中,在發(fā)出媒體對(duì)象命令942之前,所有媒體流水線狀態(tài)都必須是有效的。一旦配置了流水線狀態(tài)并對(duì)媒體對(duì)象命令942排隊(duì)了,就經(jīng)由執(zhí)行934命令或等效執(zhí)行事件(例如寄存器寫)觸發(fā)媒體流水線924。來(lái)自媒體流水線924的輸出然后就可通過(guò)由3D流水線922或媒體流水線924提供的操作進(jìn)行后處理。在一個(gè)實(shí)施例中,GPGPU操作以與媒體操作類似的方式配置和執(zhí)行。圖形軟件架構(gòu)——圖10圖10圖示了根據(jù)實(shí)施例的數(shù)據(jù)處理系統(tǒng)的示范圖形軟件架構(gòu)。軟件架構(gòu)包含3D圖形應(yīng)用1010、操作系統(tǒng)1020和至少一個(gè)處理器1030。處理器1030包含圖形處理器1032和一個(gè)或多個(gè)通用處理器核1034。圖形應(yīng)用1010和操作系統(tǒng)1020各在數(shù)據(jù)處理系統(tǒng)的系統(tǒng)存儲(chǔ)器1050中執(zhí)行。在一個(gè)實(shí)施例中,3D圖形應(yīng)用1010含有包含著色器指令1012的一個(gè)或多個(gè)著色器程序。著色器語(yǔ)言指令可以采用高級(jí)著色器語(yǔ)言,諸如高級(jí)著色器語(yǔ)言(HLSL)或OpenGL著色器語(yǔ)言(GLSL)。應(yīng)用還包含用適合于由通用處理器核1034執(zhí)行的機(jī)器語(yǔ)言的可執(zhí)行指令1014。應(yīng)用還包含由頂點(diǎn)數(shù)據(jù)定義的圖形對(duì)象1016。操作系統(tǒng)1020可以是從華盛頓雷蒙德的微軟公司可得到的WINDOWS?操作系統(tǒng)、專有UNIX操作系統(tǒng)或使用Linux內(nèi)核的變形的開源UNIX樣的操作系統(tǒng)。當(dāng)Direct3DAPI在使用時(shí),操作系統(tǒng)1020使用前端著色器編譯器1024將HLSL中的任何著色器指令1012編譯成較低級(jí)著色器語(yǔ)言。編譯可以是及時(shí)編譯,或者應(yīng)用可執(zhí)行共享預(yù)先編譯。在一個(gè)實(shí)施例中,高級(jí)著色器在編譯3D圖形應(yīng)用1010期間被編譯成低級(jí)著色器。用戶模式圖形驅(qū)動(dòng)1026可含有后端著色器編譯器1027以將著色器指令1012轉(zhuǎn)換成硬件特定表示。當(dāng)OpenGLAPI在使用時(shí),用GLSL高級(jí)語(yǔ)言中的著色器指令1012被傳遞到用戶模式圖形驅(qū)動(dòng)1026進(jìn)行編譯。用戶模式圖形驅(qū)動(dòng)使用操作系統(tǒng)內(nèi)核模式功能1028與內(nèi)核模式圖形驅(qū)動(dòng)1029通信。內(nèi)核模式圖形驅(qū)動(dòng)1029與圖形處理器1032通信以分派命令和指令。某種程度上,本文描述了各種操作或功能,它們可描述或者定義為硬件電路、軟件代碼、指令、配置和/或數(shù)據(jù)。在用于特定處理器或圖形核的指令集中,內(nèi)容可用硬件邏輯實(shí)施,或者實(shí)施為直接可執(zhí)行軟件(“對(duì)象”或“可執(zhí)行”形式)、源代碼、對(duì)于在圖形引擎上的執(zhí)行設(shè)計(jì)的高級(jí)著色器代碼或者低級(jí)匯編語(yǔ)言代碼。本文描述的實(shí)施例的軟件內(nèi)容可經(jīng)由制品(將要內(nèi)容存儲(chǔ)在其上)或經(jīng)由操作通信接口以經(jīng)由通信接口發(fā)送數(shù)據(jù)的方法提供。非暫時(shí)性機(jī)器可讀存儲(chǔ)介質(zhì)可使機(jī)器執(zhí)行所描述的功能或操作,并且包含存儲(chǔ)以機(jī)器(例如計(jì)算裝置、電子系統(tǒng)等)可存取形式的信息的任何機(jī)制,諸如可記錄/不可記錄媒體(例如只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、磁盤存儲(chǔ)媒體、光存儲(chǔ)媒體、閃存裝置等)。通信接口包含與任何硬連線、無(wú)線、光等介質(zhì)對(duì)接以與另一裝置(諸如存儲(chǔ)器總線接口、處理器總線接口、因特網(wǎng)連接、盤控制器等)通信的任何機(jī)制。通信接口通過(guò)提供配置參數(shù)或發(fā)送信號(hào)以準(zhǔn)備通信接口提供描述軟件內(nèi)容的數(shù)據(jù)信號(hào)來(lái)配置。通信接口可經(jīng)由發(fā)送到通信接口的一個(gè)或多個(gè)命令或信號(hào)存取。數(shù)據(jù)分布組構(gòu)——圖11-14混合數(shù)據(jù)分布組構(gòu)可被用作以可縮放GPU為特征的圖形處理器的實(shí)施例的互連邏輯。在一個(gè)實(shí)施例中,混合組構(gòu)包含操作在共享總線上的一個(gè)或多個(gè)物理數(shù)據(jù)通道,在每個(gè)物理通道上都具有一個(gè)或多個(gè)可編程虛擬通道。虛擬通道可被獨(dú)立仲裁,其中通道存取按虛擬通道單獨(dú)協(xié)商。虛擬通道上的業(yè)務(wù)可被分類成一個(gè)或多個(gè)業(yè)務(wù)類別。在一個(gè)實(shí)施例中,優(yōu)先化系統(tǒng)允許虛擬通道和業(yè)務(wù)類別被指配了相對(duì)優(yōu)先級(jí)用于仲裁。在一個(gè)實(shí)施例中,業(yè)務(wù)均衡算法操作以對(duì)耦合到組構(gòu)的每個(gè)節(jié)點(diǎn)保持基本上相等的帶寬和吞吐量。在一個(gè)實(shí)施例中,相比節(jié)點(diǎn)耦合到組構(gòu),混合組構(gòu)數(shù)據(jù)分布邏輯操作在更高的時(shí)鐘速率,允許降低總線寬度同時(shí)保持總線吞吐量。在一個(gè)實(shí)施例中,在空閑時(shí)每個(gè)共享總線被單獨(dú)時(shí)鐘門控(gated),并發(fā)送即將到來(lái)的活動(dòng)的早期指示以觸發(fā)總線喚醒事件。圖11是包含圖形核1102、圖形核高速緩存1104和混合組構(gòu)連接器1106的圖形核組構(gòu)裝配1100的實(shí)施例的框圖?;旌辖M構(gòu)連接器1106將圖形核組構(gòu)裝配1100耦合到組構(gòu)總線1108?;旌蠑?shù)據(jù)分布組構(gòu)裝配1100的實(shí)施例可用于圖形處理器內(nèi)的多級(jí)抽象。圖形核1102包含本文描述的任何圖形執(zhí)行邏輯,諸如圖4的可縮放執(zhí)行單元陣列414、圖5的圖形核580A或圖6的執(zhí)行單元608A。圖形核高速緩存1104包含本地圖形核高速緩沖存儲(chǔ)器,其存儲(chǔ)來(lái)自組構(gòu)連接器1106的傳入數(shù)據(jù)。圖形核高速緩存1104還可在由數(shù)據(jù)分布組構(gòu)連接器1106傳送之前存儲(chǔ)傳出數(shù)據(jù)。組構(gòu)連接器1106是可沿混合組構(gòu)1108接收、緩沖、傳送和重傳數(shù)據(jù)分組的組構(gòu)節(jié)點(diǎn)。混合組構(gòu)連接器1106在一個(gè)實(shí)施例中在混合組構(gòu)的一個(gè)通道上接收分組,并通過(guò)在不同通道上重傳分組來(lái)切換分組?;旌辖M構(gòu)連接器1106的實(shí)施例與圖形核高速緩存1104耦合。連接器1106將去往圖形核1102的數(shù)據(jù)寫到圖形核高速緩存1104中,并從圖形核高速緩存1104讀數(shù)據(jù)以便傳送到共享存儲(chǔ)器或不同的圖形核。每個(gè)圖形核具有核標(biāo)識(shí)符和散列標(biāo)識(shí)符,它們用于在混合組構(gòu)上尋址數(shù)據(jù)分組,并跨組構(gòu)節(jié)點(diǎn)執(zhí)行業(yè)務(wù)載荷均衡。混合組構(gòu)總線1108可包含單個(gè)總線線路或多個(gè)總線線路。在一個(gè)實(shí)施例中,混合組構(gòu)總線1108包含多個(gè)可編程數(shù)據(jù)通道,在其上對(duì)于每個(gè)圖形核1102傳送基于分組的數(shù)據(jù)消息?;旌辖M構(gòu)總線1108的多個(gè)通道在多個(gè)圖形核之間共享,并且支持?jǐn)?shù)據(jù)的多個(gè)業(yè)務(wù)類別。通道數(shù)量基于圖形核的數(shù)量、圖形核工作載荷以及圖形處理系統(tǒng)(例如本地/共享高速緩存、系統(tǒng)存儲(chǔ)器等)中存儲(chǔ)器的利用和容量可配置。圖12A-B圖示了多個(gè)示范圖形核拓?fù)?。圖12A示出了經(jīng)由混合組構(gòu)的實(shí)施例耦合9個(gè)圖形核的樹拓?fù)?。圖12B示出了經(jīng)由混合組構(gòu)的實(shí)施例耦合16個(gè)圖形核的網(wǎng)格拓?fù)??;旌辖M構(gòu)可配置用于每個(gè)可能的圖形核拓?fù)洹D形核可布置在堆疊的3D集成電路中,其在多個(gè)垂直層中包含多個(gè)圖形核。堆疊的集成電路可包含管芯上管芯(die-on-die)集成電路、晶片上晶片(wafer-on-wafer)集成電路和/或管芯上晶片或晶片上管芯電路的一個(gè)或多個(gè)組合。然而,也可使用其它3D電路制造方法。圖12A示出了以樹拓?fù)漶詈系?個(gè)圖形核。第一層1200包含3個(gè)圖形核,其中第一圖形核1202經(jīng)由第三圖形核1206與第二圖形核1204耦合。第三圖形核1206經(jīng)由一個(gè)或多個(gè)硅通孔(TSV)與第二層1210中的第六個(gè)圖形核1216耦合。此外,第六圖形核1216將第四圖形核1212與第五圖形核1214耦合。第六圖形核1216此外與第三層1220中的第九圖形核1226耦合,第三層包含第七圖形核1222和第八圖形核1224。圖形核經(jīng)由混合組構(gòu)與共享資源耦合和并與之通信,其包含共享存儲(chǔ)器以及由圖形核共享的其它公共資源,諸如共享像素后端硬件。混合組構(gòu)可配置成向高業(yè)務(wù)混合組構(gòu)連接器提供附加帶寬或吞吐量,或者提供其它載荷均衡或業(yè)務(wù)管理技術(shù)以對(duì)于向每個(gè)圖形核流動(dòng)的數(shù)據(jù)、從每個(gè)圖形核流動(dòng)的數(shù)據(jù)和通過(guò)每個(gè)圖形核流動(dòng)的數(shù)據(jù)保持基本上相等的帶寬。在圖12B的示范框圖中,16個(gè)圖形核被裝配在網(wǎng)格拓?fù)渲?。在一個(gè)可能配置中,堆疊4個(gè)層,每層具有4個(gè)圖形核。第一層1240包含4個(gè)圖形核,其中每個(gè)圖形核與第二層1250中的副本圖形核耦合。接下來(lái),第二層1250中的每個(gè)圖形核與第三層1260中的副本圖形核耦合。接下來(lái),第三層1260中的每個(gè)圖形核與第四層1270中的副本圖形核耦合。最后,第四層1270中的每個(gè)圖形核與共享資源1280耦合,其包含共享存儲(chǔ)器。層的數(shù)量以及每層的核的數(shù)量是示范性的,并且實(shí)施例不如此限制,并且支持多個(gè)拓?fù)?。混合組構(gòu)可配置成基于管芯尺寸、帶寬和吞吐量要求實(shí)現(xiàn)布置在不同拓?fù)渲械亩鄠€(gè)圖形核之間的通信。圖13是包含5個(gè)垂直堆疊的圖形核的堆疊3D集成電路的實(shí)施例的框圖。所圖示的組構(gòu)通道可以是單獨(dú)總線,或者在共享總線上布線的。每個(gè)圖形核可在任何通道上發(fā)送或接收數(shù)據(jù)。在混合組構(gòu)上行進(jìn)的數(shù)據(jù)分組在到達(dá)目標(biāo)之前可通過(guò)多個(gè)核的組構(gòu)連接器。雖然核可在單個(gè)通道上傳導(dǎo)交叉核通信,但當(dāng)經(jīng)過(guò)核或者耦合到核的組構(gòu)連接器時(shí),分組可從通道切換到通道??刹捎猛ǖ乐俨盟惴▉?lái)均衡每個(gè)通道上的業(yè)務(wù)以對(duì)于每個(gè)核保持相等通信帶寬。雖然圖示了圖形核,但耦合到圖形核的組構(gòu)連接器可執(zhí)行至少一些所描述的功能性。示例仲裁算法是用于存儲(chǔ)器限定業(yè)務(wù)的“棧優(yōu)化”算法。在圖13中示出的圖形處理器核1302-1310各與相應(yīng)混合組構(gòu)連接器(例如圖11的混合組構(gòu)連接器1106)耦合?;旌辖M構(gòu)連接器將互連的核與共享存儲(chǔ)器1330的區(qū)域耦合。下面的表1圖示了用于均衡5個(gè)圖形核與共享存儲(chǔ)器之間的存儲(chǔ)器限定業(yè)務(wù)的示范通道仲裁算法的結(jié)果。表1——棧優(yōu)化算法如在表1的通道0列中所示出的,每個(gè)核配置成在通道0上始發(fā)存儲(chǔ)器限定數(shù)據(jù),同時(shí)將通過(guò)業(yè)務(wù)從其它核切換到其它通道。例如,在通道0上從圖形核01302傳送存儲(chǔ)器限定數(shù)據(jù)分組1312。核11304將分組1314切換到通道4,因?yàn)闂?yōu)化算法規(guī)定,來(lái)自核01302的存儲(chǔ)器限定業(yè)務(wù)在通道4上通過(guò)。從而,核21306將分組1316切換到通道3。核31308將分組1318切換到通道2。核41310將分組1320切換到通道1。雖然圖13和表1圖示了用于混合組構(gòu)上的示范類型業(yè)務(wù)的示范算法,但對(duì)于其它類型業(yè)務(wù)可使用其它算法。在一個(gè)實(shí)施例中,不同類型的業(yè)務(wù)可被編組成不同的業(yè)務(wù)類別以更好地促進(jìn)業(yè)務(wù)管理。圖14是根據(jù)實(shí)施例的在虛擬通道上攜帶的多個(gè)業(yè)務(wù)類別的圖示。第一組構(gòu)連接器1402和第二組構(gòu)連接器1404促進(jìn)在具有多達(dá)“M”個(gè)虛擬通道1406A-M的組構(gòu)通道1406上的通信。虛擬通道實(shí)現(xiàn)在一組固定物理通道上傳輸可變長(zhǎng)度信息。虛擬通道可以是永久虛擬通道,或者虛擬通道可基于系統(tǒng)配置動(dòng)態(tài)啟用或禁用。使用永久虛擬通道允許固定通道ID,其最小化了虛擬通道管理的開銷。動(dòng)態(tài)配置通道以附加通道管理開銷為代價(jià)增大了設(shè)計(jì)靈活性。每個(gè)虛擬通道可被指配多個(gè)業(yè)務(wù)類別。業(yè)務(wù)類別是對(duì)于仲裁相關(guān)的業(yè)務(wù)的劃分。每個(gè)虛擬通道可攜帶多達(dá)“N”個(gè)業(yè)務(wù)類別。每個(gè)業(yè)務(wù)類別通過(guò)編程(熔絲、配置寄存器等)指配給特定虛擬通道。多達(dá)“L”個(gè)業(yè)務(wù)類型類別可被指配到給定虛擬通道。#業(yè)務(wù)類別虛擬通道1類別112類別203類別3M4類別415類別50...N類別N2表2——業(yè)務(wù)類別指配上面的表2示出了如圖14中所圖示的虛擬通道指配的示范業(yè)務(wù)類別?;旌辖M構(gòu)對(duì)傳入業(yè)務(wù)的每個(gè)單元分類,并且可包含確保傳入單元在其指配的虛擬通道內(nèi)行進(jìn)的邏輯。在一個(gè)實(shí)施例中,通道上的數(shù)據(jù)傳送按先入先出(FIFO)次序發(fā)生,并且通道仲裁基于虛擬通道發(fā)生。虛擬通道內(nèi)的業(yè)務(wù)可阻止在同一虛擬通道上傳送附加業(yè)務(wù)。然而,給定虛擬通道不會(huì)阻止不同虛擬通道。因而,不同虛擬通道上的業(yè)務(wù)被獨(dú)立仲裁。在一個(gè)實(shí)施例中,在操作在圖形核高速緩存和圖形核的混合組構(gòu)連接器節(jié)點(diǎn)處的圖形核上的各個(gè)線程的數(shù)據(jù)傳送期間保持一致性?;旌辖M構(gòu)節(jié)點(diǎn)路由始發(fā)自同一業(yè)務(wù)類別內(nèi)的單個(gè)線程的業(yè)務(wù),并且業(yè)務(wù)類別被指配給特定虛擬通道。單個(gè)虛擬通道上的單個(gè)業(yè)務(wù)類別內(nèi)的數(shù)據(jù)按FIFO次序傳送。從而,來(lái)自單個(gè)線程的數(shù)據(jù)當(dāng)經(jīng)由混合組構(gòu)傳送時(shí)被嚴(yán)格排序,并保持每線程的一致性以避免寫后讀或讀后寫的數(shù)據(jù)沖突。在一個(gè)實(shí)施例中,經(jīng)由與共享存儲(chǔ)器的全局同步機(jī)制保持線程組一致性。#業(yè)務(wù)類別優(yōu)先級(jí)1類別122類別213類別344類別425類別51...N類別N3表3——業(yè)務(wù)類別優(yōu)先化上面的表3示出了示范業(yè)務(wù)類別優(yōu)先化。優(yōu)先級(jí)算法可被編程為確定指配給每一個(gè)業(yè)務(wù)類別的優(yōu)先級(jí)??删幊虡I(yè)務(wù)類別優(yōu)先級(jí)允許業(yè)務(wù)類別被用作仲裁業(yè)務(wù)編組機(jī)制,其中業(yè)務(wù)可僅編組在一類別以內(nèi)以保持一致性,或者特定業(yè)務(wù)可被指配高優(yōu)先級(jí),并且專用于高優(yōu)先級(jí)數(shù)據(jù)。例如,各指配給虛擬通道11406B的類別1和類別4可被指配優(yōu)先級(jí)2。各指配給虛擬通道01406A的類別2和類別5可被指配優(yōu)先級(jí)1。業(yè)務(wù)類別“N”可被指配給具有優(yōu)先級(jí)3的虛擬通道21406C。類別2中的業(yè)務(wù)可以是應(yīng)該盡可能快地傳送或者不應(yīng)該被其它業(yè)務(wù)類別阻止的延時(shí)敏感的數(shù)據(jù),而類別1中的業(yè)務(wù)可能是來(lái)自被編組成保持一致性的單個(gè)線程的中等延時(shí)敏感的業(yè)務(wù)。業(yè)務(wù)類別可相對(duì)于所有業(yè)務(wù)類別或相對(duì)于同一虛擬通道上的業(yè)務(wù)類別的優(yōu)先級(jí)指配優(yōu)先級(jí)。在一個(gè)實(shí)施例中,通過(guò)向業(yè)務(wù)類別指配權(quán)重來(lái)設(shè)計(jì)優(yōu)先級(jí)方案,其中權(quán)重越高指示優(yōu)先級(jí)越高??刹捎霉絻?yōu)先級(jí)算法,其中每個(gè)參與方都被保證最小量的帶寬以防止匱乏。在一個(gè)實(shí)施例中,在某些情形下使用絕對(duì)優(yōu)先級(jí)算法,其中較高優(yōu)先級(jí)業(yè)務(wù)總是阻止較低優(yōu)先級(jí)。其中絕對(duì)優(yōu)先級(jí)在使用,附加算法適當(dāng)?shù)胤乐雇ㄐ潘梨i。使用虛擬通道和業(yè)務(wù)類別組合降低了死鎖的可能性,因?yàn)樵诮o定虛擬通道上具有絕對(duì)優(yōu)先級(jí)的單個(gè)業(yè)務(wù)類別不阻止不同虛擬通道上的業(yè)務(wù)。在一個(gè)實(shí)施例中,如果在一個(gè)虛擬通道上檢測(cè)到匱乏條件或潛在死鎖,則被阻止的業(yè)務(wù)類別可被重新指配給不同虛擬通道。#業(yè)務(wù)類別優(yōu)先級(jí)1類別122類別213類別33...MM4表4——虛擬通道優(yōu)先化下面的表4示出了示范虛擬通道優(yōu)先化。與業(yè)務(wù)類別一樣,每個(gè)虛擬通道還可接收優(yōu)先級(jí),并且通道仲裁可將虛擬通道的相對(duì)優(yōu)先級(jí)作為因素。例如,虛擬通道2上的數(shù)據(jù)業(yè)務(wù)可比其它虛擬通道上的數(shù)據(jù)具有更高的相對(duì)優(yōu)先級(jí)。對(duì)虛擬通道優(yōu)先化可采用加權(quán)的優(yōu)先級(jí)系統(tǒng),其中權(quán)重越高指示優(yōu)先級(jí)越高??墒褂霉絻?yōu)先級(jí)系統(tǒng)或絕對(duì)優(yōu)先級(jí)系統(tǒng)。圖15是根據(jù)實(shí)施例的數(shù)據(jù)傳送序列的流程圖。諸如耦合到圖形處理器的混合組構(gòu)連接器的源節(jié)點(diǎn)在通過(guò)通道在混合組構(gòu)上傳送消息分組之前確定通道的通道存取狀況,如在框1502所示出的。消息可被分類成多個(gè)可能業(yè)務(wù)分類中的一個(gè)分類,每個(gè)分類在通道上都具有相對(duì)優(yōu)先級(jí)。通道存取可經(jīng)由任何適合的通道存取協(xié)議(諸如時(shí)分多址協(xié)議或載波偵聽多路訪問(wèn)協(xié)議)確定。已經(jīng)確定了第一通道可用,源節(jié)點(diǎn)可從源節(jié)點(diǎn)朝目標(biāo)節(jié)點(diǎn)傳送消息,如在框1504所示出的。消息可由第一節(jié)點(diǎn)在混合組構(gòu)的共享總線上接收,如在框1506所示出的。第一節(jié)點(diǎn)可耦合到由混合組構(gòu)耦合的多個(gè)圖形處理器之一?;趲讉€(gè)因素,諸如源節(jié)點(diǎn)、目標(biāo)節(jié)點(diǎn)、業(yè)務(wù)類別和接收消息的通道,第一節(jié)點(diǎn)可在共享總線上將消息從第一節(jié)點(diǎn)切換到第二節(jié)點(diǎn),如在框1508所示出的。第一節(jié)點(diǎn)可作為業(yè)務(wù)均衡協(xié)議的一部分(諸如表1的棧優(yōu)化算法)或者作為有向路由選擇協(xié)議的一部分切換消息,其取決于由混合組構(gòu)服務(wù)的圖形核拓?fù)?。在一個(gè)實(shí)施例中,基于跨共享總線攜帶的多個(gè)虛擬通道確定通道存取,其中每個(gè)虛擬通道的通道存取與其它虛擬通道分開仲裁。在一個(gè)實(shí)施例中,相比于由互連邏輯連接的節(jié)點(diǎn),混合組構(gòu)互連邏輯操作在更高的時(shí)鐘頻率?;诮M構(gòu)互連與節(jié)點(diǎn)之間的頻率比,節(jié)點(diǎn)之間的單個(gè)消息可被劃分成若干單獨(dú)消息。組構(gòu)節(jié)點(diǎn)可在每一個(gè)節(jié)點(diǎn)的時(shí)鐘循環(huán)期間傳送消息,并且消息被劃分成多個(gè)消息以在時(shí)鐘循環(huán)之間發(fā)送。消息的劃分對(duì)組構(gòu)節(jié)點(diǎn)是透明的,允許互連邏輯的物理層的寬度的減小,同時(shí)保持性能。在一個(gè)實(shí)施例中,混合組構(gòu)的互連邏輯是功率管理的并且時(shí)鐘門控的。對(duì)于時(shí)鐘門控可使用分布式方法,其中每個(gè)總線線路都使用本地門控時(shí)鐘,其當(dāng)總線空閑時(shí)被禁用。每個(gè)總線都發(fā)出傳入活動(dòng)的早期指示,其當(dāng)要沿總線或者與總線關(guān)聯(lián)的虛擬通道接收消息時(shí)啟用。因而,僅在活動(dòng)總線上耗散功率。當(dāng)空閑時(shí),總線僅消耗靜態(tài)功率,并且否則處于低功率狀態(tài)。說(shuō)明書和權(quán)利要求書中的術(shù)語(yǔ)“第一”、“第二”、“第三”、“第四”等如果有的話則用于區(qū)分類似元素,并不一定用于描述具體順序或先后次序。要理解到,如此使用的術(shù)語(yǔ)在適當(dāng)情境下可互換,使得本文描述的實(shí)施例例如能夠按不同于本文圖示或以其它方式描述的順序操作。如本文所使用的,對(duì)一個(gè)或多個(gè)“實(shí)施例”的提及要理解為描述包含在至少一個(gè)實(shí)現(xiàn)中的具體特征、結(jié)構(gòu)或特性。從而,在本文中出現(xiàn)的諸如“在一個(gè)實(shí)施例中”或“在替換實(shí)施例中”的短語(yǔ)各描述了各種實(shí)施例和實(shí)現(xiàn),并且不一定全都指的是同一實(shí)施例。然而,它們也不一定是相互排他的。在一個(gè)實(shí)施例中,處理器包括一個(gè)或多個(gè)圖形核以及具有至少一個(gè)數(shù)據(jù)通道的互連邏輯以互連一個(gè)或多個(gè)圖形處理器核。在共享總線上可攜帶至少一個(gè)數(shù)據(jù)通道?;ミB邏輯將互連核與共享資源耦合?;ミB邏輯實(shí)現(xiàn)了通過(guò)在至少一個(gè)數(shù)據(jù)通道上攜帶的一個(gè)或多個(gè)虛擬通道在互連核與共享資源之間的數(shù)據(jù)分布。虛擬通道可包含具有多個(gè)業(yè)務(wù)分類的可編程業(yè)務(wù)分類系統(tǒng)。多個(gè)業(yè)務(wù)分類可具有指配給每個(gè)分類的優(yōu)先級(jí)。優(yōu)先級(jí)可相對(duì)于同一虛擬通道上的其它業(yè)務(wù)分類進(jìn)行仲裁。在一個(gè)實(shí)施例中,一個(gè)或多個(gè)圖形處理器核包括3D集成電路堆疊,其包含多個(gè)圖形處理器核。在一個(gè)實(shí)施例中,多個(gè)圖形處理器核經(jīng)由多個(gè)共享總線耦合,其中每個(gè)總線在空閑周期期間單獨(dú)時(shí)鐘門控。在一個(gè)實(shí)施例中,系統(tǒng)包括包含多個(gè)核的處理器,其中至少一個(gè)核包含用于處理圖形指令的指令集。至少一個(gè)圖形處理核經(jīng)由具有至少一個(gè)時(shí)鐘門控物理數(shù)據(jù)通道和一個(gè)或多個(gè)虛擬通道的互連邏輯與處理器上的共享資源耦合,每個(gè)虛擬通道都攜帶具有多個(gè)業(yè)務(wù)分類的數(shù)據(jù)。多個(gè)業(yè)務(wù)分類可以是可編程的,并且多個(gè)業(yè)務(wù)分類中的每個(gè)都可被指配給虛擬通道。系統(tǒng)還可包含耦合到處理器的存儲(chǔ)器。表示用于執(zhí)行本文描述的實(shí)施例的設(shè)計(jì)的數(shù)據(jù)可用若干方式表示該設(shè)計(jì)。首先,如在仿真上是有用的,硬件可使用硬件描述語(yǔ)言或另一功能描述語(yǔ)言表示。此外,在設(shè)計(jì)過(guò)程的某些階段,可產(chǎn)生具有邏輯和/或晶體管門的電路級(jí)模型。更進(jìn)一步說(shuō),大多數(shù)設(shè)計(jì)在某一階段達(dá)到用硬件模型表示各種器件物理布局的數(shù)據(jù)級(jí)。在使用常規(guī)半導(dǎo)體制造技術(shù)的情況下,表示硬件模型的數(shù)據(jù)可以是規(guī)定在用于產(chǎn)生集成電路的掩模(mask)的不同掩模層上各種特征的存在或缺乏的數(shù)據(jù)。在設(shè)計(jì)的任何表示中,設(shè)計(jì)數(shù)據(jù)都可以以機(jī)器可讀介質(zhì)的形式存儲(chǔ)。在一個(gè)實(shí)施例中,機(jī)器可讀介質(zhì)存儲(chǔ)數(shù)據(jù),該數(shù)據(jù)如果由至少一個(gè)機(jī)器執(zhí)行則使至少一個(gè)機(jī)器制造至少一個(gè)集成電路以執(zhí)行一種方法,所述方法包括:確定消息從源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的多個(gè)節(jié)點(diǎn)共享總線上的通道存取狀況,其中多個(gè)節(jié)點(diǎn)中的至少一個(gè)與圖形處理器核耦合并且至少一個(gè)節(jié)點(diǎn)與共享資源耦合,在第一數(shù)據(jù)通道上將消息從消息源傳送到消息目標(biāo),其中消息包含具有第一優(yōu)先級(jí)的第一業(yè)務(wù)分類,在與圖形處理器核耦合的第一數(shù)據(jù)總線連接器接收消息,以及至少基于源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn),將消息從第一數(shù)據(jù)通道切換到第二數(shù)據(jù)通道。所制造的至少一個(gè)集成電路可以是包含多個(gè)圖形處理器核的3D集成電路堆疊。在一個(gè)實(shí)施例中,確定通道存取包括使用通道存取協(xié)議確定是否可在第三數(shù)據(jù)通道上傳送消息,并且在確定在第三數(shù)據(jù)通道上的傳送被阻止之后,在第一數(shù)據(jù)通道上傳送消息。通道存取可由時(shí)分多址協(xié)議或載波偵聽多路訪問(wèn)協(xié)議確定。所描述的各種組分可以是用于執(zhí)行所描述的操作或功能的部件。本文描述的每個(gè)部件都包含軟件、硬件或這些的組合。組分可實(shí)現(xiàn)為軟件模塊、硬件模塊、專用硬件(例如應(yīng)用特定硬件、專用集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)等)、嵌入式控制器、硬連線電路等。除了本文所描述內(nèi)容外,可對(duì)所公開的實(shí)施例和實(shí)現(xiàn)進(jìn)行各種修改,而不脫離它們的范圍。因此,本文的圖示和示例應(yīng)該以說(shuō)明性的,而非約束性意義被解釋。本發(fā)明的范圍和精神應(yīng)該僅參考隨后的權(quán)利要求書來(lái)度量。當(dāng)前第1頁(yè)1 2 3 
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1