互連,其促進(jìn)在各種處理器組件和高性能嵌入式存儲(chǔ)器模塊218 (諸如eDRAM模塊)之間的通信。在一些實(shí)施例中,核202-N和圖形處理器208中的每一個(gè)使用嵌入式存儲(chǔ)器模塊218作為共享的末級(jí)高速緩存。
[0022]在一些實(shí)施例中,核202A-N是執(zhí)行相同的指令集架構(gòu)的同構(gòu)核。在另一實(shí)施例中,核202A-N在指令集架構(gòu)(ISA)方面是異構(gòu)的,其中核202A-N中的一個(gè)或多個(gè)執(zhí)行第一指令集,而其它核中的至少一個(gè)執(zhí)行第一指令集的子集或者不同的指令集。
[0023]在一些實(shí)施例中,處理器200是一個(gè)或多個(gè)襯底的一部分,或者被實(shí)現(xiàn)在一個(gè)或多個(gè)襯底上,通過使用多種過程技術(shù)中的任一個(gè),例如,互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)、雙極接合/互補(bǔ)金屬氧化物半導(dǎo)體(BiCMOS)或N型金屬氧化物半導(dǎo)體邏輯(NM0S)。另外,處理器200可以實(shí)現(xiàn)在一個(gè)或多個(gè)芯片上或者被實(shí)現(xiàn)為SoC集成電路,所述SoC集成電路除了其它組件之外還具有所圖示的組件。
[0024]圖3是圖形處理器300的框圖,所述圖形處理器300可以是離散的圖形處理單元,或者可以是與多個(gè)處理核集成的圖形處理器。在一些實(shí)施例中,圖形處理器經(jīng)由到圖形處理器上的寄存器的存儲(chǔ)器映射的I/O接口并且與置于處理器存儲(chǔ)器中的命令進(jìn)行通信。在一些實(shí)施例中,圖形處理器300包括用來訪問存儲(chǔ)器的存儲(chǔ)器接口 314。存儲(chǔ)器接口 314可以是到本地存儲(chǔ)器、一個(gè)或多個(gè)內(nèi)部高速緩存、一個(gè)或多個(gè)共享的外部高速緩存和/或到系統(tǒng)存儲(chǔ)器的接口。
[0025]在一些實(shí)施例中,圖形處理器300還包括用來將顯示輸出數(shù)據(jù)驅(qū)動(dòng)到顯示設(shè)備320的顯示控制器302。顯示控制器302包括硬件以用于:用于顯示的一個(gè)或多個(gè)疊覆平面以及多層視頻或用戶接口元素的復(fù)合。在一些實(shí)施例中,圖形處理器300包括視頻編解碼器引擎306以向一個(gè)或多個(gè)媒體編碼格式、自一個(gè)或多個(gè)媒體編碼格式或在一個(gè)或多個(gè)媒體編碼格式之間對(duì)媒體進(jìn)行編碼、解碼或轉(zhuǎn)碼,所述媒體編碼格式包括但不限于移動(dòng)圖像專家組(MPEG)格式(諸如MPEG-2)、高級(jí)視頻編碼(AVC)格式(諸如H.264/MPEG-4 AVC)、以及電影和電視工程師協(xié)會(huì)(SMPTE)421M/VC-1,以及聯(lián)合圖像專家組(JPEG)格式(諸如JPEG和運(yùn)動(dòng)JPEG (MJPEG)格式)。
[0026]在一些實(shí)施例中,圖形處理器300包括塊圖像傳輸(BLIT)引擎304以執(zhí)行二維(2D)光柵化器(rasterizer)操作,包括例如位邊界塊傳輸。然而,在一個(gè)實(shí)施例中,通過使用圖形處理引擎(GPE) 310的一個(gè)或多個(gè)組件來執(zhí)行2D圖形操作。在一些實(shí)施例中,圖形處理引擎310是用于執(zhí)行圖形操作(包括三維(3D)圖形操作和媒體操作)的計(jì)算引擎。
[0027]在一些實(shí)施例中,GPE 310包括用于執(zhí)行3D操作的3D流水線312,所述3D操作諸如通過使用作用于3D基元(primitive)形狀(例如矩形、三角形等等)的處理功能來清染三維圖像和場(chǎng)景。3D流水線312包括執(zhí)行元件內(nèi)的各種任務(wù)和/或產(chǎn)生(spawn)去往3D/媒體子系統(tǒng)315的執(zhí)行線程的可編程和固定功能元件。雖然3D流水線312可以用于執(zhí)行媒體操作,但是GPE 310的實(shí)施例還包括特別地用于執(zhí)行諸如視頻后處理和圖像增強(qiáng)之類的媒體操作的媒體流水線316。
[0028]在一些實(shí)施例中,媒體流水線316包括執(zhí)行一個(gè)或多個(gè)專門的媒體操作的固定功能或可編程邏輯單元,諸如視頻解碼加速、視頻去交錯(cuò)(de-1nterlace)和視頻編碼加速,其代替或代表視頻編解碼引擎306。在一些實(shí)施例中,媒體流水線316附加地包括用來產(chǎn)生線程以供在3D/媒體子系統(tǒng)315上執(zhí)行的線程產(chǎn)生單元。所產(chǎn)生的線程在被包括在3D/媒體子系統(tǒng)315中的一個(gè)或多個(gè)圖形執(zhí)行單元上執(zhí)行用于媒體操作的計(jì)算。
[0029]在一些實(shí)施例中,3D/媒體子系統(tǒng)315包括用于執(zhí)行由3D流水線312和媒體流水線316產(chǎn)生的線程的邏輯。在一個(gè)實(shí)施例中,流水線向3D/媒體子系統(tǒng)315發(fā)送線程執(zhí)行請(qǐng)求,所述3D/媒體子系統(tǒng)包括線程分派邏輯以用于向可用的線程執(zhí)行資源仲裁和分派各種請(qǐng)求。執(zhí)行資源包括圖形執(zhí)行單元的陣列以處理3D和媒體線程。在一些實(shí)施例中,3D/媒體子系統(tǒng)315包括用于線程指令和數(shù)據(jù)的一個(gè)或多個(gè)內(nèi)部高速緩存。在一些實(shí)施例中,子系統(tǒng)還包括共享的存儲(chǔ)器,包括寄存器和可尋址存儲(chǔ)器,以在線程之間共享數(shù)據(jù)以及存儲(chǔ)輸出數(shù)據(jù)。
[0030]3D媒體處理
圖4是根據(jù)一些實(shí)施例的圖形處理器的圖形處理引擎410的框圖。在一個(gè)實(shí)施例中,GPE 410是圖3中所示的GPE 310的一個(gè)版本。圖4的具有與本文中的任何其它圖的元件相同的附圖標(biāo)記(或名稱)的元件可以以類似于本文中別處所述的方式的任何方式而操作或運(yùn)轉(zhuǎn),但是不限于這樣。
[0031]在一些實(shí)施例中,GPE 410與命令流化器(streamer)403耦合,所述命令流化器向GPE 3D和媒體流水線412、416提供命令流。在一些實(shí)施例中,命令流化器403耦合到存儲(chǔ)器,所述存儲(chǔ)器可以是系統(tǒng)存儲(chǔ)器,或者內(nèi)部高速緩存存儲(chǔ)器和共享高速緩存存儲(chǔ)器中的一個(gè)或多個(gè)。在一些實(shí)施例中,命令流化器403從存儲(chǔ)器接收命令并且向3D流水線412和/或媒體流水線416發(fā)送命令。3D和媒體流水線通過經(jīng)由相應(yīng)流水線內(nèi)的邏輯而執(zhí)行操作或通過向執(zhí)行單元陣列414分派一個(gè)或多個(gè)執(zhí)行線程來處理命令。在一些實(shí)施例中,執(zhí)行單元陣列414是可縮放的,以使得陣列包括基于GPE 410的目標(biāo)功率和性能水平的可變數(shù)目的執(zhí)行單元。
[0032]在一些實(shí)施例中,采樣引擎430與存儲(chǔ)器(例如高速緩存存儲(chǔ)器或系統(tǒng)存儲(chǔ)器)以及執(zhí)行單元陣列414耦合。在一些實(shí)施例中,采樣引擎430提供用于執(zhí)行單元陣列414的存儲(chǔ)器訪問機(jī)制,其允許執(zhí)行陣列414從存儲(chǔ)器讀取圖形和媒體數(shù)據(jù)。在一些實(shí)施例中,采樣引擎430包括用來執(zhí)行用于媒體的專門的圖像采樣操作的邏輯。
[0033]在一些實(shí)施例中,采樣引擎430中的專門的媒體采樣邏輯包括去噪聲/去交錯(cuò)模塊432、運(yùn)動(dòng)估計(jì)模塊434以及圖像縮放和濾波模塊436。在一些實(shí)施例中,去噪聲/去交錯(cuò)模塊432包括用來在經(jīng)解碼的視頻數(shù)據(jù)上執(zhí)行去噪聲或去交錯(cuò)算法中的一個(gè)或多個(gè)的邏輯。去交錯(cuò)邏輯將經(jīng)交錯(cuò)的視頻內(nèi)容的交替場(chǎng)(field)組合成視頻的單個(gè)幀。去噪聲邏輯從視頻和圖像數(shù)據(jù)中減少或移除數(shù)據(jù)噪聲。在一些實(shí)施例中,去噪聲邏輯和去交錯(cuò)邏輯是運(yùn)動(dòng)自適應(yīng)的并且基于在視頻數(shù)據(jù)中檢測(cè)到的運(yùn)動(dòng)的量而使用空間或時(shí)間濾波。在一些實(shí)施例中,去噪聲/去交錯(cuò)模塊432包括專用的運(yùn)動(dòng)檢測(cè)邏輯(例如,在運(yùn)動(dòng)估計(jì)引擎434內(nèi))。
[0034]在一些實(shí)施例中,運(yùn)動(dòng)估計(jì)引擎434通過在視頻數(shù)據(jù)上執(zhí)行視頻加速功能(諸如運(yùn)動(dòng)矢量估計(jì)和預(yù)測(cè))而提供用于視頻操作的硬件加速。運(yùn)動(dòng)估計(jì)引擎確定描述在相繼視頻幀之間的圖像數(shù)據(jù)的變換的運(yùn)動(dòng)矢量。在一些實(shí)施例中,圖形處理器媒體編解碼器使用視頻運(yùn)動(dòng)估計(jì)引擎434來以宏塊水平在視頻上執(zhí)行操作,所述宏塊水平以其他方式可能太計(jì)算密集而不能用通用處理器來執(zhí)行。在一些實(shí)施例中,運(yùn)動(dòng)估計(jì)引擎434通??捎糜趫D形處理器組件以幫助對(duì)于視頻數(shù)據(jù)內(nèi)的運(yùn)動(dòng)的方向或幅度敏感或自適應(yīng)的視頻解碼和處理功能。
[0035]在一些實(shí)施例中,圖像縮放和濾波模塊436執(zhí)行圖像處理操作以增強(qiáng)所生成的圖像和視頻的視覺質(zhì)量。在一些實(shí)施例中,縮放和濾波模塊436在向執(zhí)行單元陣列414提供數(shù)據(jù)之前在采樣操作期間處理圖像和視頻數(shù)據(jù)。
[0036]在一些實(shí)施例中,GPE 410包括提供附加機(jī)制以用于圖形子系統(tǒng)來訪問存儲(chǔ)器的數(shù)據(jù)端口 444。在一些實(shí)施例中,數(shù)據(jù)端口 444促進(jìn)用于包括渲染目標(biāo)寫入、常量緩沖器讀取、暫用(scratch)存儲(chǔ)器空間讀取/寫入和媒體表面訪問在內(nèi)的操作的存儲(chǔ)器訪問。在一些實(shí)施例中,數(shù)據(jù)端口 444包括用于對(duì)存儲(chǔ)器的高速緩存訪問的高速緩存存儲(chǔ)器空間。高速緩存存儲(chǔ)器可以是單個(gè)數(shù)據(jù)高速緩存或者被分離成用于經(jīng)由數(shù)據(jù)端口而訪問存儲(chǔ)器的多個(gè)子系統(tǒng)的多個(gè)高速緩存(例如渲染緩沖器高速緩存、常量緩沖器高速緩存等等)。在一些實(shí)施例中,在執(zhí)行單元陣列414中的執(zhí)行單元上執(zhí)行的線程通過經(jīng)由親合GPE 410的子系統(tǒng)中的每一個(gè)的數(shù)據(jù)分布互連而交換消息來與數(shù)據(jù)端口通信。
[0037]執(zhí)行單元
圖5是圖形處理器500的另一實(shí)施例的框圖。圖5的具有與本文中任何其它圖的元件相同的附圖標(biāo)記(或名稱)的元件可以以類似于本文中別處所述的方式的任何方式而操作或運(yùn)轉(zhuǎn),但是不限于這樣。
[0038]在一些實(shí)施例中,圖形處理器500包括環(huán)式互連502、流水線前端504、媒體引擎537和圖形核580A-N。在一些實(shí)施例中,環(huán)式互連502將圖形處理器耦合到其它處理單元,包括其它圖形處理器或者一個(gè)或多個(gè)通用處理器核。在一些實(shí)施例中,圖形處理器是多核處理系統(tǒng)內(nèi)集成的許多處理器中的一個(gè)。
[0039]在一些實(shí)施例中,圖形處理器500經(jīng)由環(huán)式互連502而接收批量命令。傳入的命令由流水線前端504中的命令流化器503解釋。在一些實(shí)施例中,圖形處理器500包括可縮放的執(zhí)行邏輯以經(jīng)由(一個(gè)或多個(gè))圖形核508A-N而執(zhí)行3D幾何處理和媒體處理。對(duì)于3D幾何處理命令,命令流化器503將命令供應(yīng)到幾何流水線536。對(duì)于至少一些媒體處理命令,命令流化器503將命令供應(yīng)到與媒體引擎537耦合的視頻前端534。在一些實(shí)施例中,媒體引擎537包括用于視頻和圖像后處理的視頻質(zhì)量引擎(VQE)530和用以提供硬件加速的媒體數(shù)據(jù)編碼和解碼的多格式編碼/解碼(MFX)533引擎。在一些實(shí)施例中,幾何流水線536和媒體引擎537均生成用于由至少一個(gè)圖形核580A所提供的線程執(zhí)行資源的執(zhí)行線程。
[0040]在一些實(shí)施例中,圖形處理器500包括以可縮放的線程執(zhí)行資源為特征的模塊化的核580A-N (有時(shí)稱為核切片(slice)),其均具有多個(gè)子核550A_N、560A_N (有時(shí)稱為核的子切片)。在一些實(shí)施例中,圖形處理器500可以具有任何數(shù)目的圖形核580A到580N。在一些實(shí)施例中,圖形處理器500包括圖形核580A,所述圖形核580A具有至少第一子核550A和第二核的子核560A。在其它實(shí)施例中,圖形處理器是具有單個(gè)子核(例如550A)的低功率處理器。在一些實(shí)施例中,圖形處理器500包括多個(gè)圖形核580A-N,所述圖形核580A-N均包括第一子核550A-N的集合和第二子核560A-N的集合。第一子核550A-N的集合中的每個(gè)子核至少包括媒體/紋理(texture)采樣器554A-N和執(zhí)行單元552A-N的第一集合。第二子核560A-N的集合中的每個(gè)子核至少包括采樣器564A-N和執(zhí)行單元562A-N的第二集合。在一些實(shí)施例中,每個(gè)子核550A-N、560A-N共享著共享資源570A-N的集合。在一些實(shí)施例中,共享的資源包括共享的高速緩存存儲(chǔ)器和像素操作邏輯。在圖形處理器的各種實(shí)施例中還可以包括其它共享的資源。
[0041]圖6圖示了線程執(zhí)行邏輯600,所述線程執(zhí)行邏輯600包括在GPE的一些實(shí)施例中被采用的處理元件的陣列。圖6的具有與本文中任何其它圖的元件相同的附圖標(biāo)記(或名稱)的元件可以以類似于本文中別處所述的方式的任何方式而操作或運(yùn)轉(zhuǎn),但是不限于這樣。
[0042]在一些實(shí)施例中,線程執(zhí)行邏輯600包括像素著色器(shader) 602、線程分派器604、指令高速緩存606、包括多個(gè)執(zhí)行單元608A-N的可縮放執(zhí)行單元陣列、采樣器610