TW201432611A - 快取具有表面壓縮的統一l2快取內之自調適大小快取拼貼 - Google Patents

快取具有表面壓縮的統一l2快取內之自調適大小快取拼貼 Download PDF

Info

Publication number
TW201432611A
TW201432611A TW102138728A TW102138728A TW201432611A TW 201432611 A TW201432611 A TW 201432611A TW 102138728 A TW102138728 A TW 102138728A TW 102138728 A TW102138728 A TW 102138728A TW 201432611 A TW201432611 A TW 201432611A
Authority
TW
Taiwan
Prior art keywords
cache
size
tile
memory
render target
Prior art date
Application number
TW102138728A
Other languages
English (en)
Other versions
TWI533255B (zh
Inventor
Ziyad S Hakura
Rouslan Dimitrov
Emmett M Kilgariff
Andrei Khodakovsky
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of TW201432611A publication Critical patent/TW201432611A/zh
Application granted granted Critical
Publication of TWI533255B publication Critical patent/TWI533255B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

本發明的一個具體實施例包含一種用於自調適大小調整(adatively size)一圖形系統內快取拼貼之技術。與一圖形系統相關聯的一裝置驅動程式將與一快取拼貼相關聯的一快取拼貼大小設定成一第一大小。偵測將包含一第一組渲染目標的一第一渲染目標組態改變成包含一第二組渲染目標的一第二渲染目標組態之變更。該裝置驅動程式根據該第二渲染目標組態,將該快取拼貼大小設定成一第二大小。所揭示方法的一項優點為該快取拼貼大小經過自調適大小調整,造成較少的快取拼貼用於較不複雜的渲染目標組態。自調整大小調整快取拼貼造成更有效率的處理器利用率,以及較低的功率需求。此外,統一的L2快取拼貼允許快取拼貼資料與其他資料之間快取記憶體的動態分割。

Description

快取具有表面壓縮的統一L2快取內之自調適大小快取拼貼
本發明的具體實施例係關於圖形處理,尤其係關於快取具有表面壓縮的統一L2快取內之自調適大小快取拼貼。
用於渲染圖形影像的某些圖形子系統當實施一拼貼架構時,其針對其中一或多個渲染目標,例如訊框緩衝區,都分成稱為拼貼的螢幕空間分割。在這種拼貼架構中,該圖形子系統重新安排工作,如此與任何特定拼貼相關聯的工作留在晶片上快取內的時間要比未用此方式重新安排工作之架構還要長。相較於非拼貼架構,此重新安排幫助改善記憶體頻寬。
一般而言,渲染目標的集合隨著影像渲染進展,隨時間而變。例如:第一次通過可使用渲染目標的第一組態,以便部分渲染該影像。第二次通過可使用渲染目標的第二組態,進一步渲染該影像。第三次通過可使用渲染目標的第三集合,以完成該影像的最後渲染。在該渲染過程期間,該電腦圖形子系統可用於高達五十或更多不同渲染目標組態,以渲染該最後影像。每一不同渲染目標組態都消耗不同量的記憶體。為了提高工作留在該晶片上快取內的可能性,通常調整拼貼大小,以容納影像渲染期間所使用最複雜的渲染目標組態。結果,該等拼貼的大小經過調整,以容納該最終影像渲染期間所使用的所有該許多渲染目標組態,也就是從最複雜到最簡單的渲染目標組態。
上述方式的一項缺點為拼貼大小調整對於較不複雜渲染目標組態來說較無效率。此外,較不複雜渲染目標組態並不需要較複雜渲染目標組態所需的較小拼貼大小,以便讓該工作可在該渲染過程期間留在該 快取內。使用越小的拼貼大小,就需要更多拼貼來覆蓋整個螢幕空間,相較於使用較大拼貼大小,則需要較少拼貼就可覆蓋相同螢幕空間。因為計算需求隨拼貼數量增加而提高,所以較少的拼貼大小將導致計算負擔的增加。結果,對於較不複雜的渲染目標組態而言就會浪費計算能力。
如先前所例示,業界需要一種在一圖形子系統內具體實施一拼貼架構以便更有效運用快取記憶體之技術。
本發明的一個具體實施例揭示一種用於自調適大小調整一圖形系統內快取拼貼之方法。該方法包含將與一第一快取拼貼相關聯的一快取拼貼大小設定成一第一大小。該方法另包含將包含一第一組渲染目標的一第一渲染目標組態改變成包含一第二組渲染目標的一第二渲染目標組態。該方法另包含根據該第二渲染目標組態,將該快取拼貼大小設定成一第二大小。
其他具體實施例包含但不受限於:一電腦可讀取媒體,其包含可讓一處理單元實施所揭示方法中一或多個態樣的指令。本發明的其他具體實施例包含但不受限於一子系統,其包含一處理單元,設置成實施該等揭示方法的一或更多態樣,以及包含一系統,設置成實施該等揭示方法的一或更多態樣。
所揭示方法的一項優點為根據渲染目標組態以及快取組態,自動調整該快取拼貼的大小。較小的快取拼貼大小被選取用於更複雜的渲染目標組態,而較大的快取拼貼大小則被選取用於較不複雜的渲染目標組態。利用根據該渲染目標組態來自動調整該快取拼貼的大小,只需要較少的計算能力就可處理該等快取拼貼,造成更有效率的處理器利用率並且降低電源需求。
100‧‧‧電腦系統
102‧‧‧中央處理單元
103‧‧‧裝置驅動程式
104‧‧‧系統記憶體
105‧‧‧記憶體橋接器
106‧‧‧通訊路徑
107‧‧‧輸入/輸出橋接器
108‧‧‧使用者輸入裝置
110‧‧‧顯示裝置
112‧‧‧並行處理子系統
113‧‧‧第二通訊路徑
114‧‧‧系統磁碟
116‧‧‧開關
118‧‧‧網路配接器
120-121‧‧‧外接卡
202‧‧‧並行處理單元
204‧‧‧並行處理記憶體
205‧‧‧輸入/輸出橋接器
206‧‧‧主介面
207‧‧‧任務/工作單元
208‧‧‧一般處理叢集
210‧‧‧記憶體交叉開關單元
212‧‧‧前端
214‧‧‧記憶體介面
215‧‧‧分割單元
230‧‧‧處理叢集陣列
220‧‧‧動態隨機存取記憶體
310‧‧‧串流多重處理器
305‧‧‧管線管理員
330‧‧‧工作分配交叉開關
335‧‧‧第一點五層快取
320‧‧‧記憶體管理單元
315‧‧‧紋理單元
325‧‧‧預先光柵運算單元
350‧‧‧圖形處理管線
355‧‧‧圖元分配器
360‧‧‧頂點屬性擷取單元
365‧‧‧頂點、曲面細分、幾何處理單元
370‧‧‧視埠比例、消隱、裁切單元
375‧‧‧拼貼單元
380‧‧‧設定單元
385‧‧‧光柵器
390‧‧‧像素著色單元
395‧‧‧光柵運算單元
352‧‧‧世界空間管線
354‧‧‧螢幕空間管線
415‧‧‧頂點處理單元
455‧‧‧幾何處理單元
460‧‧‧片段處理單元
410‧‧‧快取拼貼
420‧‧‧光柵拼貼
400‧‧‧螢幕空間
500‧‧‧渲染目標
510‧‧‧渲染目標
515‧‧‧紅色值
520‧‧‧綠色值
525‧‧‧藍色值
530‧‧‧阿爾發透明值
535‧‧‧紅色值
540‧‧‧綠色值
545‧‧‧藍色值
550‧‧‧阿爾發透明值
555‧‧‧z值
560‧‧‧模板遮罩
565‧‧‧z值
570‧‧‧模板遮罩
575‧‧‧x軸法線向量
580‧‧‧y軸法線向量
585‧‧‧z軸法線向量
590‧‧‧未使用欄位
600‧‧‧渲染目標組態
610‧‧‧渲染目標組態
700‧‧‧方法
如此上面簡單彙總可詳細了解本發明上述特色的方式,本發明的更特定說明則參照具體實施例,某些具體實施例說明於附圖內。不過吾人應該注意,附圖只說明本發明的典型具體實施例,因此並不對發明領 域產生限制,本發明的範圍可包含其他等效具體實施例。
第一圖為例示設置來實施本發明一或多個態樣的電腦系統方塊圖;第二圖為根據本發明的一個具體實施例,包含在第一圖中該並行處理子系統內的一並行處理單元之方塊圖;第三A圖為根據本發明的一個具體實施例,包含在第二圖中該並行處理單元內的一般處理叢集之方塊圖;第三B圖為根據本發明的一個具體實施例,可在第二圖中該並行處理單元內實施的一圖形處理管線之概念圖;第四圖為根據本發明的一個具體實施例,可設置第三B圖中該圖形處理管線產生與處理一快取拼貼之概念圖;第五圖例示根據本發明的一個具體實施例,儲存在第二圖中一或多個動態隨機存取記憶體內的一組渲染目標;第六圖例示根據本發明的一個具體實施例,與渲染一電腦圖形影像相關聯的一系列渲染目標組態;以及第七圖揭示根據本發明的一個具體實施例,用於自調適大小調整快取拼貼的方法步驟流程圖。
在以下描述中,揭示許多特定細節以對本發明有更徹底之理解。但是,精通技術人士應該了解,在無一或多個該等特定細節之下還是可實施本發明。
系統概觀
第一圖為實施本發明一或多個態樣的電腦系統100之方塊圖的一實施例。如所示,電腦系統100包含(但不限於)一中央處理單元(CPU,central processing unit)102,以及透過一記憶體橋接器105以及一通訊路徑113耦合至一並行處理子系統112的一系統記憶體104。記憶體橋接器105另透過一通訊路徑106耦合至一I/O(輸入/輸出)橋接器107,並且輸入/輸出橋接器107接著耦合至一開關116。
在操作上,輸入/輸出橋接器107設置成接收來自輸入裝置 108,例如鍵盤、滑鼠的使用者輸入資訊,並透過通訊路徑106和記憶體橋接器105將該輸入資訊轉送至中央處理單元102進行處理。開關116設置成提供輸入/輸出橋接器107與電腦系統100的其他組件,像是網路配接器118以及許多外接卡120和121之間的連接。
另如所示,輸入/輸出橋接器107耦合至系統磁碟114,該磁碟可設置成儲存內容與應用程式以及資料,供中央處理單元102以及並行處理子系統112使用。一般來說,系統磁碟114提供非揮發性儲存裝置給應用程式與資料,並且可包含固定式或可移除式硬碟機、快閃記憶體裝置以及CD-ROM(小型光碟唯讀記憶體)、DVD-ROM(數位多用途光碟-ROM)、藍光、HD-DVD(高傳真DVD)或其他磁性、光學或固態儲存裝置。雖然未明確顯示,不過其他組件,例如萬用序列匯流排(USB,universal serial bus)或其他連接埠連接、小型光碟機、數位多用途光碟機、檔案記錄裝置等等,可連接至輸入/輸出橋接器107。
在許多具體實施例內,記憶體橋接器105可為北橋晶片,並且輸入/輸出橋接器107可為南橋晶片。此外,通訊路徑106和113以及電腦系統100內其他通訊路徑都可用任何技術合適的協定來實施,包含但不受限於AGP(加速圖形連接埠)、HyperTransport或業界內已知的任何其他匯流或點對點通訊協定。
在某些具體實施例內,並行處理子系統112包含一圖形子系統,其將像素遞送至顯示裝置110,該裝置可為任何傳統陰極射線管、液晶顯示器、發光二極體顯示器等等。在這種具體實施例內,並行處理子系統112併入將圖形與視訊處理最佳化的電路,包含例如視訊輸出電路。如底下第二圖內更詳細的說明,這種電路可併入並行處理子系統112內含的一或多個並行處理單元(PPU,parallel processing unit)。在其他具體實施例內,並行處理子系統112併入針對一般用途及/或計算處理最佳化之電路。這種電路可併入一或多個並行處理單元,該等單元包含在設置成執行這種一般用途及/或計算操作的並行處理子系統112內。在其他具體實施例內,並行處理子系統112內含的該等一或多個並行處理單元可設置成執行圖形處理、一般用途處理以及計算處理操作。系統記憶體104包含至少一個裝置驅動 程式103,該驅動程式設置成管理並行處理子系統112內該等一或多個並行處理單元的該等處理操作。
在許多具體實施例內,並行處理子系統112可與第一圖中一或多個其他元件整合,以形成單一系統。例如:並行處理子系統112可與中央處理單元102和單一晶片上其他連接電路整合,以形成晶片上系統(SoC,system on chip)。
吾人將了解,本文中顯示的該系統為例示,所以可進行改變與修改。包含橋接器的數量與配置、中央處理單元102的數量以及並行處理子系統112的數量這類連接拓撲可依照需求修改。例如在某些具體實施例內,系統記憶體104直接連接至中央處理單元102,而不是透過記憶體橋接器105,並且其他裝置透過記憶體橋接器105以及中央處理單元102與系統記憶體104通訊。在其他替代拓撲中,並行處理子系統112連接至輸入/輸出橋接器107或直接連接至中央處理單元102,而不是連接至記憶體橋接器105。在其他具體實施例內,輸入/輸出橋接器107和記憶體橋接器105可整合成為單一晶片,替代現有的一或多個分散裝置。最後在特定具體實施例內,第一圖內顯示的一或多個組件並不存在。例如:省略開關116,並且網路配接器118和外接卡120、121都直接連接至輸入/輸出橋接器107。
第二圖為根據本發明的一個具體實施例,包含在第一圖中該並行處理子系統112內的一並行處理單元(PPU,parallel processing unit)202之方塊圖。雖然第二圖描述一個並行處理單元202,如上面所示,並行處理子系統112可包含任何數量的並行處理單元202。如所示,並行處理單元202耦合至本機並行處理(PP,parallel processing)記憶體204。並行處理單元202以及並行處理記憶體204可使用一或多個積體電路裝置來實施,例如可程式處理器、特殊應用積體電路(ASIC,application specific integrated circuit)或記憶體裝置,或以任何其他技術可行方式。
在某些具體實施例內,並行處理單元202包含圖形處理單元(GPU,graphics processing unit),其可設置成實施一圖形渲染管線,根據中央處理單元102及/或系統記憶體104所供應的圖形資料,執行與產生像素資料相關的許多操作。處理圖形資料時,並行處理記憶體204可用來當成 圖形記憶體,儲存一或多個傳統訊框緩衝區以及若需要,儲存一或多個其他渲染目標。此外,並行處理記憶體204可用來儲存與更新像素資料,並且將最終像素資料或顯示訊框遞送至顯示裝置110用於顯示。在某些具體實施例內,並行處理單元202也可用於一般用途處理和計算操作。
在操作上,中央處理單元102為電腦系統100的主要處理器,控制與協調其他系統組件的操作。尤其是,中央處理單元102發出指令控制並行處理單元202的操作。在某些具體實施例內,中央處理單元102將並行處理單元202的指令串流寫入至一資料結構(第一圖或第二圖內未明確顯示),其可位於系統記憶體104內、並行處理記憶體204內或中央處理單元102和並行處理單元202可存取的其他儲存位置內。該資料結構已經寫入一推送緩衝區的指標,開始在該資料結構內處理該指令串流。並行處理單元202讀取來自推送緩衝區的該指令串流,然後關於中央處理單元102的操作非同步執行指令。在其中已經產生多個推送緩衝區的具體實施例內,可由應用程式透過裝置驅動程式103來控制不同推送緩衝區的排程,指定每一推送緩衝區的執行優先順序。
另如所示,並行處理單元202包含透過通訊路徑113和記憶體橋接器105與電腦系統100剩餘部分連通的一輸入/輸出單元205。輸入/輸出單元205產生在通訊路徑113上傳輸的封包(或其他信號),也從通訊路徑113上接收所有傳入封包(或其他信號),將該等傳入封包導引至並行處理單元202的適當組件。例如:有關處理任務的指令可導引至主介面206,而有關記憶體操作的指令(例如讀取或寫入並行處理記憶體204)可導引至一交叉開關單元210。主介面206讀取每一推送緩衝區,並將該推送緩衝區內儲存的該指令串流傳送至一前端212。
結合第一圖所提及,並行處理單元202與電腦系統100剩餘組件的連接也可改變。在某些具體實施例內,包含至少一個並行處理單元202的並行處理子系統112實施成為可插入電腦系統100內擴充槽的外接卡。在其他具體實施例內,並行處理單元202可與例如記憶體橋接器105或輸入/輸出橋接器107這類匯流排橋接器整合在單一晶片上。在其他具體實施例內,並行處理單元202的某些或全部元件可與中央處理單元102一 起包含在單一積體電路或晶片系統(SoC,system of chip)上。
在操作上,前端212將接收自主介面206的處理任務傳輸至任務/工作單元207內一工作分配單元(未顯示),該工作分配單元接收指標來處理任務,其編碼為任務中繼資料(TMD,task metadata)並儲存在記憶體內。至任務中繼資料的該指標包含在指令串流內,其儲存當成一推送緩衝區並由前端單元212從主介面206接收。可編碼為任務中繼資料的處理任務包含與要處理資料相關聯之索引,以及定義如何處理該資料的狀態參數與指令。例如:該等狀態參數與指令可定義要在該資料上執行的該程式。任務/工作單元207從前端212接收任務,並且確定在每一任務中繼資料指定的處理任務開始之前已經將一般處理叢集208設置成有效狀態。一優先順序可指定給每一任務中繼資料,用來排定該處理任務的執行時間。處理任務也可從處理叢集陣列230接收。該任務中繼資料可包含一參數,其控制該任務中繼資料加入處理任務清單(或處理任務指標清單)的頭部或尾部,藉此提供執行優先順序先後的控制。
並行處理單元202根據一處理叢集陣列230,其包含一組C個一般處理叢集(general processing cluster,GPC)208,其中C1,實施一高度並行處理架構。每一一般處理叢集208都可同時執行大量的(例如數百或數千)執行緒,其中每一執行緒都是一程式的實例。在許多應用當中,不同的一般處理叢集208可分配用於處理不同種類的程式,或用於執行不同種類的計算。一般處理叢集208的分配絕大部分取決於針對每一種程式或計算所賦予的工作負擔。
記憶體介面214包含一組D個分割單元215,其中D1。每一分割單元215都耦合至位於並行處理記憶體204內的一或多個動態隨機存取記憶體(DRAM,dynamic random access memory)220。在一個具體實施例內,分割單元215的數量等於動態隨機存取記憶體220的數量,並且每一分割單元215都耦合至不同的動態隨機存取記憶體220。在其他具體實施例內,分割單元215的數量可不等於動態隨機存取記憶體220的數量。精通技術人士將了解,動態隨機存取記憶體220可用任何其他技術合適的儲存裝置取代。在操作上,例如訊框緩衝區或紋理地圖這類渲染目標可透過 動態隨機存取記憶體220儲存,允許分割單元215並行寫入每一渲染目標的部分,以有效使用並行處理記憶體204的可用頻寬。
已知的一般處理叢集208都可處理要寫入並行處理記憶體204內任一動態隨機存取記憶體220的資料。交叉開關單元210設置成將每一一般處理叢集208的輸出繞送至任意分割單元215的輸入或至用於進一步處理的任何其他一般處理叢集208。一般處理叢集208透過交叉開關單元210與記憶體介面214通訊,來讀取或寫入至許多隨機動態存取記憶體220。在一個具體實施例內,交叉開關單元210具有一連接至輸入/輸出單元205,加上透過記憶體介面214連接至並行處理記憶體204,藉此讓不同一般處理叢集208內的處理核心與系統記憶體104或不在並行處理單元204本機上的其他記憶體通訊。在第二圖的具體實施例中,交叉開關單元210直接連接至輸入/輸出單元205。在許多具體實施例內,交叉開關單元210可使用虛擬通道,以分隔一般處理叢集208與分割單元215之間的流量串流。
一般處理叢集208同樣可程式編輯來執行有關廣泛應用的處理任務,包含但不受限於線性與非線性資料傳輸、視訊及/或音訊資料篩選、模型化運算(例如套用實體規則來決定位置、速度以及其他物體屬性)、影像渲染運算(例如曲線細分著色、影點著色、幾何著色及/或畫素著色程式)、一般計算運算等等。在操作上,並行處理單元202設置成將來自系統記憶體104及/或並行處理記憶體204的資料傳輸至一或多個晶片上記憶體單元、處理該資料並且將結果資料寫回系統記憶體104及/或並行處理記憶體204。然後該結果資料可由其他系統組件包含中央處理單元102、並行處理子系統112內的另一個並行處理單元202或電腦系統100之內的另一個並行處理子系統112所存取。
如上述,任何數量的並行處理單元202都可包含在一並行處理子系統112內。例如:單一外接卡上可提供多個並行處理單元202,或多張外接卡可連接至通訊路徑113,或一或多個並行處理單元202可整合到一橋接器晶片上。多並行處理單元系統內的並行處理單元202可彼此一致或不同。例如:不同的並行處理單元202可具有不同數量的處理核心及/或不 同數量的並行處理記憶體204。當存在多個並行處理單元202時,這些並行處理單元可並行操作,以比單一並行處理單元202還要高產量的方式來處理資料。合併一或多個並行處理單元202的系統可用許多不同方式實施,包含但不受限於桌上型、膝上型、手持式個人電腦或其他手持裝置、伺服器、工作站、遊戲機、嵌入式系統等等。
第三A圖為根據本發明的一個具體實施例說明第二圖中並行處理單元202內一般處理叢集208的方塊圖。在操作上,一般處理叢集208可設置成並行執行大量執行緒,以執行圖形、一般處理及/或計算操作。依照本說明書內所使用,「執行緒」代表在輸入資料特定集合上執行的一特定程式之實例。在某些具體實施例內,單一指令、多重資料(SIMD,single-instruction,multiple-data)指令發行技術用於支援大量執行緒的並行執行,而不用提供多個獨立指令單元。在其他具體實施例內,單一指令、多重執行緒(SIMT,single-instruction,multiple-thread)技術用於支援大量一般同步執行緒的並行執行,使用共用指令單元,其設置成發出指令至一般處理叢集208內的一組處理引擎集。不同於一單一指令、多重資料執行引擎,其中所有處理區域一般都執行一致的指令,單一指令、多重執行緒執行允許不同執行緒透過一已知程式更迅速遵循分散的執行路徑。業界內精通技術人士將了解,單一指令、多重資料處理區域代表一單一指令、多重執行緒處理區域的功能子集。
透過將接收自任務/工作單元處理207之內一工作分配單元(未顯示)的處理任務分配至一或多個串流多重處理器(SM,streaming multiprocessor)310之管線管理員305可控制一般處理叢集208的操作。管線管理員305也可設置成利用指定串流多重處理器310所輸出已處理資料的目的地,控制一工作分配交叉開關330。
在一個具體實施例內,一般處理叢集208包含一組M個串流多重處理器310,其中M1。另外,每一串流多重處理器310都包含一組功能執行單元(未顯示),例如執行單元以及載入儲存單元。指定用於任何該功能執行單元的處理操作可為管線化,這可在先前指令完成執行之前就發出執行新指令。本發明可提供已知串流多重處理器310內任何功能執行 單元組合。在許多具體實施例內,該等功能執行單元可設置成支援許多不同操作,包含整數與浮點演算(例如加法與乘法)、比較運算、布林運算(AND、OR、XOR)、位元位移和許多代數函數的計算(例如平面插值與三角函數、指數函數以及對數函數等等)。相同功能執行單元可設置成執行不同操作。
在操作上,每一串流多重處理器310都設置成處理一或多個執行緒群組。如本文所使用,「執行緒群組」或「經線」代表在不同輸入資料上同時執行相同程式的執行緒群組,其中該群組的一個執行緒指派給串流多重處理器310內不同的執行單元。一執行緒群組可包含數量比串流多重處理器310內執行單元數量還要少的執行緒,在此實施例中,某些執行單元會在循環期間處理該執行緒群組時閒置。執行緒群組也可包含數量比串流多重處理器310內執行單元數量還要多的執行緒,在實施例中,將在連續時脈循環上進行處理。因為每一串流多重處理器310都可同時支援最多G個執行緒群組,所以在任何已知時間上一般處理叢集208內都可執行最多G*M個執行緒群組。
此外,在串流多重處理器310內可同時啟用複數個相關執行緒群組(在不同執行階段內)。此執行緒群組的集合稱為「合作執行緒陣列」(CTA,cooperative thread array)或「執行緒陣列」。特定合作執行緒陣列的大小等於m*k,其中k為執行緒群組內同時執行的執行緒數量,通常為串流多重處理器310內執行單元數量的整數倍數,並且m為串流多重處理器310內同時啟用的執行緒群組數量。
雖然第三A圖內並未顯示,不過每一串流多重處理器310都包含第一層(L1)快取,或使用串流多重處理器310之外對應L1快取內的空間,以支援由該等執行單元執行的載入與儲存操作。每一串流多重處理器310也存取並行處理單元202內所有一般處理叢集208之間共享的第二層(L2)快取(未顯示),該等L2快取可用於在執行緒之間傳輸資料。串流多重處理器310也可存取晶片外「全域」記憶體,其可包含並行處理記憶體204及/或系統記憶體104。吾人了解,並行處理單元202之外的任何記憶體都可用來當成全域記憶體。此外,如第三A圖內所示,一點五層(L1.5)快取 335可包含在一般處理叢集208內,設置成接收並固定由串流多重處理器310要求透過記憶體介面214從記憶體擷取的資料,這種資料包含但不受限於指令、統一資料以及常數資料。在具有一般處理叢集208內多個串流多重處理器310的具體實施例內,串流多重處理器310得共享共用指令和在L1.5快取335內快取的資料。
每一一般處理叢集208都具有一相關記憶體管理單元(MMU,memory management unit)320,其設置成將虛擬位址映射至實體位址。在許多具體實施例內,記憶體管理單元320可位於一般處理叢集208或記憶體介面214之內。記憶體管理單元320包含一組頁面表記錄(PTE,page table entry),用於將虛擬位址映射至一拼貼或記憶體分頁以及選擇性一快取線索引的實體位址。記憶體管理單元320可包含能夠位於串流多重處理器310或一或多個L1快取或一般處理叢集208內的分頁對照表(TLB,translation lookaside buffer)或快取。
在圖形與計算應用當中,一般處理叢集208可經過設置,如此每一串流多重處理器310都連結至一紋理單元315,用於執行紋理映射操作,例如決定紋理樣本位置、讀取紋理資料以及篩選該紋理資料。
在操作上,每一串流多重處理器310都輸出處理過的任務至工作分配交叉開關330,以便將該處理過的任務提供至另一一般處理叢集208供進一步處理,或透過交叉開關單元210將該處理過的任務儲存在L2快取(未顯示)、並行處理記憶體204或系統記憶體104內。此外,預先光柵運算(preROP,pre-raster operation)單元325設置成從串流多重處理器310接收資料、將資料引導至分割單元215內的一或多個光柵運算(ROP,raster operation)單元,並且執行顏色混合、組織像素顏色資料以及執行位址轉譯的最佳化。
吾人將了解,本文中顯示的該核心架構為例示,所以可進行改變與修改。此外,任何數量的處理單元,例如串流多重處理器310、紋理單元315、預先光柵運算單元325都可包含在一般處理叢集208內。進一步言,如上面結合第二圖所述,並行處理單元202可包含任意數量的一般處理叢集208,其設置成功能彼此類似,如此執行行為並不取決於接收特定處 理任務的一般處理叢集208。再進一步說,每一一般處理叢集208操作都與並行處理單元202內其他一般處理叢集208無關,來執行一或多個應用程式的任務。在上面的說明中,精通技術人士將了解,第一圖至第三A圖內描述的架構並不限制本發明的範疇。
圖形管線架構
第三B圖為根據本發明的一個具體實施例,可在第二圖中並行處理單元202內實施的一圖形處理管線350之概念圖。如所示,圖形處理管線350包含但不受限於一圖元分配器(PD,primitive distributor)355、一頂點屬性擷取單元(VAF,vertex attribute fetch unit)360、一頂點、曲面細分、幾何處理單元(VTG,vertex,tessellation,geometry processing unit)365、一視埠比例、消隱及裁切單元(VPC,viewport scale,cull,and clip unit)370、一拼貼單元375、一設定單元(setup)380、一光柵器(raster)385、一片段處理單元,也稱為一像素著色單元(PS,pixel shading unit)390以及一光柵運算單元(ROP,raster operation unit)395。
圖元分配器355收集來自前端212與高階表面、圖形圖元等等相關聯的頂點資料,並將該頂點資料傳輸至頂點屬性擷取單元360。
頂點屬性擷取單元360從共享記憶體當中擷取與每一該傳入頂點相關聯的頂點屬性,並且將該頂點資料搭配相關聯的頂點屬性,儲存至共享記憶體。
頂點、曲面細分、幾何處理單元365為一可程式執行單元,其設置成執行頂點著色程式、曲面細分程式以及幾何程式。這些程式處理接收自頂點屬性擷取單元360的該頂點資料以及頂點屬性,並且產生圖形圖元以及每一頂點上的顏色值、表面法線向量以及透明度值給該等圖形圖元,供在圖形處理管線350之內進一步處理。雖然未明確顯示,頂點、曲面細分、幾何處理單元365在某些具體實施例內可包含一或多個頂點處理單元、一曲面細分起始處理單元、一任務產生單元、一任務分配器、一拓撲產生單元、一曲面細分處理單元以及一幾何處理單元。
該頂點處理單元為一可程式執行單元,其設置成執行頂點著色程式,依照該頂點著色程式所規定照明與轉換頂點資料。例如:該頂點 處理單元可程式編輯成將該頂點資料從一物件型座標代表(物件空間)轉換成一替代型座標系統,例如世界空間或標準化裝置座標(NDC,normalized device coordinates)空間。該頂點處理單元可讀取由該VAF 360儲存在共享記憶體內的頂點資料以及頂點屬性,並且可處理該頂點資料與頂點屬性。頂點處理單元415將處理過的頂點儲存在共享記憶體內。
該曲面細分起始處理單元為一可程式執行單元,其設置成執行曲面細分起始著色程式。該曲面細分起始處理單元處理該頂點處理單元所產生的頂點,並產生圖形圖元,就是補丁。該曲面細分起始處理單元也產生許多補丁屬性,然後該曲面細分起始處理單元將該補丁資料以及補丁屬性儲存在共享記憶體內。在某些具體實施例內,該曲面細分著色程式可稱為外表著色或曲面細分控制著色。
該任務產生單元從共享記憶體當中取得頂點的資料與屬性以及補丁。該任務產生單元產生用於處理該等頂點與補丁的任務,以供圖形處理管線350在稍後階段進行處理。
該任務分配器重新分配該任務產生單元所產生的任務。該頂點著色程式以及該曲面細分起始程式的許多實例所產生之任務可在一個圖形處理管線350與另一個之間顯著改變。該任務分配器重新分配這些任務,如此每一圖形處理管線350在稍後管線階段期間具有大約相同的工作負擔。
該拓撲產生單元獲得該任務分配器分配的任務。該拓撲產生單元將該等頂點加上索引,包含與補丁相關聯的頂點,並且計算(U,V)曲面細分頂點的座標,以及連接該等曲面細分頂點形成圖形圖元的索引。然後該拓撲產生單元將具有索引的頂點儲存在共享記憶體內。
該曲面細分處理單元為一可程式執行單元,其設置成執行曲面細分著色程式。該曲面細分處理單元讀取來自共享記憶體的輸入資料,並且將輸出資料寫入至共享記憶體。在共享記憶體內的此輸出資料會傳遞至下一個著色階段,當成幾何處理單元455的輸入資料。在某些具體實施例內,該曲面細分著色程式可稱為領域著色或曲面細分評估著色。
該幾何處理單元為一可程式執行單元,其設置成執行幾何著色程式,藉此轉換圖形圖元。頂點經過分組,建構用於處理的圖形圖元, 其中圖形圖元包含三角形、線段、點等等。例如:該幾何處理單元可程式編輯成將該等圖形圖元分成一或多個新圖形圖元,並且計算參數,例如平面等式係數,用來將該等新圖形圖元光柵化。
該幾何處理單元將指定新圖形圖元的該等參數與頂點傳輸至視埠比例、消隱及裁切單元370。該幾何處理單元可讀取儲存在共享記憶體內的資料,以便用於處理該幾何資料。視埠比例、消隱及裁切單元370執行裁切、消隱、透視修正以及視埠變形,以決定在該最終渲染影像內可能看見哪個圖形圖元,可能看不見哪個圖形圖元。然後視埠比例、消隱及裁切單元370將處理過的圖形圖元傳輸至拼貼單元375。
拼貼單元375為圖形圖元排序引擎,位於一世界空間管線352與一螢幕空間管線354之間,如本說明書內進一步描述。圖形圖元在世界空間管線352內處理,然後傳輸至拼貼單元375。該螢幕空間分成快取拼貼,其中每一快取拼貼都關聯於該螢幕空間的一部分。針對每一圖形圖元,拼貼單元375識別與該圖形圖元交叉的快取拼貼集合,在此稱為「拼貼」的處理。在拼貼特定數量的圖形圖元之後,拼貼單元375依照快取拼貼處理該等圖形圖元,其中與一特定快取拼貼相關聯的圖形圖元已經傳輸至設定單元380。拼貼單元375在一個快取拼貼期間將圖形圖元傳輸至設定單元380。與多個快取拼貼交叉的圖形圖元一般在世界空間管線352內處理一次,但是多次傳輸至螢幕空間管線354。
這種技術改善在螢幕空間管線354內處理期間快取記憶體的位置關係,其中與第一快取拼貼相關聯的多個記憶體操作存取該等L2快取的一區域,或任何其他技術可行的快取記憶體,其可在該第一快取拼貼的螢幕空間處理期間保留。一旦螢幕空間管線354已經處理與該第一快取拼貼相關聯的該等圖形圖元,可清除與該第一快取拼貼相關聯的該部分L2快取,並且該拼貼單元可傳輸與一第二快取拼貼相關聯的圖形圖元。然後與一第二快取拼貼相關聯的多個記憶體操作存取該等L2快取的區域,該區域可在該第二快取拼貼的螢幕空間處理期間保留。因此,可降低至該等L2快取以及至該等渲染目標的整體記憶體流量。在某些具體實施例內,針對一已知圖形圖元執行該世界空間計算一次,而無須理會螢幕空間內與該圖 形圖元交叉的快取拼貼數量。
設定單元380透過拼貼單元375接收來自視埠比例、消隱及裁切單元370的頂點資料,並且計算與該等圖形圖元相關聯的參數,包含但不受限於邊緣等式、部分平面等式以及深度平面等式。然後設定單元380將處理過的圖形圖元傳輸至光柵器385。
光柵器385掃描轉換新圖形圖元,並且將片段與覆蓋資料輸出至像素著色單元390。此外,光柵器385可設置成執行z消隱以及其他z型最佳化。
像素著色單元390為一可程式執行單元,其設置成執行片段著色程式,依照該片段著色程式所規定轉換接收自光柵器385的片段。片段著色程式可用像素等級粒度將片段著色,其中這種著色程式可稱為像素著色程式。另外,片段著色程式可用樣本等級粒度將片段著色,其中每一像素都包含多個樣本,並且每一樣本都代表像素一部分。另外,根據程式編輯的取樣率,片段著色程式可用任何其他技術可行之粒度來將片段著色。
在許多具體實施例內,片段處理單元460可程式編輯成執行操作,例如透視修正、紋理映射、著色、混色等等,以產生傳輸至光柵運算單元395的已著色片段。像素著色單元390可讀取儲存在共享記憶體內的資料。
光柵運算單元395為一種處理單元,其執行光柵操作,例如模板、z測試、混色等等,並且將像素資料當成處理過的圖形資料來傳輸,透過記憶體介面214儲存在圖形記憶體內,其中圖形記憶體通常建構成為一或多個著色目標。該處理過的圖形資料可儲存在圖形記憶體內,例如並行處理記憶體204或系統記憶體104,用於顯示在顯示裝置110上或用於由中央處理單元102或並行處理子系統112進一步處理。在本發明的某些具體實施例內,光柵運算單元395設置成將寫入記憶體的z或顏色資料壓縮,並且將從記憶體讀取的z或顏色資料解壓縮。在許多具體實施例內,光柵運算單元395可位於記憶體介面214內、一般處理叢集208內、該一般處理叢集之外的處理叢集陣列230內或並行處理單元202之內的一個別單元(未顯示)內。
該圖形處理管線可由並行處理單元202之內任一或多個處理元件來實施,例如:第三A圖的一個串流多重處理器310可設置成執行頂點、曲面細分、幾何處理單元365以及像素著色單元390之一者或多者的功能。圖元分配器355、頂點屬性擷取單元360、視埠比例、消隱及裁切單元450、拼貼單元375、設定單元380、光柵器385以及光柵運算單元395的功能也由特定一般處理叢集208之內的處理元件結合一對應分割單元215來執行。另外,可使用上列一或多個功能的專屬固定功能處理元件,來實施圖形處理管線350。在許多具體實施例內,並行處理單元202可設置成實施一或多個圖形處理管線350。
在某些具體實施例內,圖形處理管線350可分成一世界空間管線352以及一螢幕空間管線354。世界空間管線352在3D空間內處理圖形物件,其中相對於其他圖形物件以及相對於一3D座標系統已知每一圖形物件的位置。螢幕空間管線354處理已經從該3D座標系統投射至一2D平面(呈現出顯示裝置110的表面)之圖形物件。例如:世界空間管線352可包含圖形處理管線350內從PD 355到視埠比例、消隱及裁切單元370的管線階段。螢幕空間管線354可包含圖形處理管線350內從設定單元380到光柵運算單元395的管線階段。拼貼單元375應該在世界空間管線352的最後階段,換言之就是視埠比例、消隱及裁切單元370之後。拼貼單元375應該位於世界空間管線354的第一階段,換言之就是設定單元380之前。
在某些具體實施例內,世界空間管線352可進一步分成一阿爾發相位管線以及一貝他相位管線。例如:該阿爾發相位管線可包含圖形處理管線350內從PD 355到該任務產生單元的管線階段。該貝他相位管線可包含圖形處理管線350內從該拓撲產生單元到視埠比例、消隱及裁切單元370的管線階段。圖形處理管線350在該阿爾發相位管線內處理期間執行第一組操作,並且在該貝他相位管線內處理期間執行一第二組操作。如本說明書內所用,一組操作定義為由單一執行緒、一執行緒群組或由多個執行緒群組聯合執行的一或多個指令。
在具有多個圖形處理管線350的系統中,與一組圖形物件相關聯的該頂點資料以及頂點屬性可細分,如此每一圖形處理管線350透過 該阿爾發相位管線都具有大約相同的工作負擔。阿爾發相位處理可顯著擴充該頂點資料以及頂點屬性的總量,如此該任務產生單元生產的頂點資料與頂點屬性總量顯著大於PD 355和頂點屬性擷取單元360所處理的頂點資料與頂點屬性總量。進一步,即使在兩個圖形處理管線350在該阿爾發相位管線開始時處理相同屬性量,與一個圖形處理管線350相關聯的該任務產生單元比起與另一個圖形處理管線350相關聯的該任務產生單元,可產生顯著較多的頂點資料與頂點屬性數量。在這種情況下,該任務分配器重新分配該阿爾發相位管線產生的該等屬性,如此每一圖形處理管線350在該貝他相位管線開始時都具有大約相同的工作負擔。
請注意,如本說明書內所述,參照至共享記憶體可包含任一或多個技術可行的記憶體,包含但不受限於一或多個串流多重處理器310所共享的本機記憶體,或可透過記憶體介面214存取的記憶體,例如一快取記憶體、並行處理記憶體204或系統記憶體104。另請注意,如本說明書內所述,參照至快取記憶體可包含任一或多個技術可行的記憶體,包含但不受限於一L1快取、一L1.5快取以及該等L2快取。
拼貼快取
第四圖為根據本發明的一個具體實施例,可設置第三B圖中該圖形處理管線350產生與處理一快取拼貼410(0)之概念圖。如所示,快取拼貼410(0)代表螢幕空間400的一部分,並且分成多個光柵拼貼420。
螢幕空間400呈現一或多個記憶體緩衝區,其設置成儲存圖形處理管線350之內功能單元所傳輸的渲染影像資料以及其他資料。在某些具體實施例內,該等一或多個記憶體緩衝區可設置成為一或多個渲染目標。該螢幕空間呈現一記憶體緩衝區,設置成儲存該圖形處理管線所渲染的該影像。螢幕空間400可關聯於任意數量的渲染目標,其中每一渲染目標可設置成獨立於其他渲染目標以包含任何數量的欄位。一渲染目標內的每一欄位都可設置成獨立於其他欄位,以包含任何數量的位元。每一渲染目標都可包含多個相片元素(像素),接著每一像素都可包含多個樣本。在某些具體實施例內,每一快取拼貼的大小係根據與該螢幕空間相關聯的該渲染目標之大小與組態。在操作上,一旦渲染完成,則該等一或多個渲染目 標內的該等像素傳輸至一顯示裝置,以便顯示該渲染的影像。
在一實施例中,螢幕空間400的一組渲染目標可包含八個渲染目標。該第一渲染目標可包含四個欄位代表顏色,包含紅色、綠色和藍色成分顏色,以及與對應片段相關聯的透明度資訊。該第二渲染目標可包含兩個欄位,代表與該對應片段相關聯的深度以及模板資訊。該第三渲染目標可包含三個欄位,代表與該對應片段相關聯的表面法線向量資訊,包含x軸法線向量、y軸法線向量以及z軸法線向量。剩餘的五個渲染目標可設置成儲存與該對應片段相關聯的額外資訊。這種組態應包含許多資訊的儲存,包含但不受限於3D位置資料、擴散照明資訊以及視鏡照明資訊。
每一快取拼貼410代表一部分螢幕空間400。為了清晰起見,第四圖內只顯示五個快取拼貼410(0)-410(4)。在某些具體實施例內,快取拼貼可在X和Y螢幕空間內具有任意大小。例如:若一快取拼貼位於也用於儲存其他資料的一快取記憶體內,則該快取拼貼應調整大小,以便只消耗該快取記憶體的特定部分。一快取拼貼的大小係根據一些因素,包含與螢幕空間400相關聯的該等渲染目標之數量與組態、每像素的樣本數量以及該快取拼貼內儲存的該資料是否經過壓縮。一般而言,一快取拼貼經過大小調整,以提高該快取拼貼資料能夠繼續留在該快取記憶體內,直到與該快去拼貼相關聯的所有圖形圖元已經完全處理完畢之可能性。
快取拼貼420代表一部分快取拼貼410(0)。如所示,快取拼貼410(0)包含以陣列排列的十六個光柵拼貼420(0)-420(15),也就是四個光柵拼貼420寬乘上四個光柵拼貼420高。在包含多個一般處理叢集208的系統內,與一已知快取拼貼410(0)相關聯的處理可在可用的一般處理叢集208之間區分。在所示的範例中,若快取拼貼410(0)的十六個光柵拼貼已經過四個不同一般處理叢集208處理,則每一一般處理叢集208應指派成處理快取拼貼410(0)內十六個光柵拼貼420當中的四個。尤其是,第一一般處理叢集208可被指派成用來處理光柵拼貼420(0)、420(7)、420(10)和420(13),第二一般處理叢集208可被指派成用來處理光柵拼貼420(1)、420(4)、420(11)和420(14),第三一般處理叢集208可被指派成用來處理光柵拼貼420(2)、420(5)、420(8)和420(15),然後第四一般處理叢集208可被 指派成用來處理光柵拼貼420(3)、420(6)、420(9)和420(12)。在其他具體實施例內,一已知快取拼貼之內該等不同光柵拼貼的處理可在一般處理叢集208之間分配,或以任何技術可行方式在電腦系統100內含的任何其他處理實體之間分配。
自調適大小調整快取拼貼
第四圖的快取拼貼經過大小調整,以容納一特定渲染目標組態。一渲染目標組態包含一或多個渲染目標,每一目標都包含一或多個欄位。此時根據一已知渲染目標組態的該等渲染目標之內該等許多欄位大小,計算出該快取拼貼大小。
第五圖例示根據本發明的一個具體實施例說明儲存在第二圖中一或多個動態隨機存取記憶體220內的一組渲染目標599。如所示,該組渲染目標500包含五個別渲染目標510(0)-510(4)。
第一渲染目標510(0)包含四個欄位,代表與對應樣本或片段相關聯的第一組顏色與透明度資訊。如所示,該等四個欄位包含紅色值515、綠色值520、藍色值525以及阿爾發透明值530。每一紅色值515、綠色值520、藍色值525以及阿爾發透明值530都包含一個位元組的資料。此第一渲染目標520(0)可指定為C0,指出第一渲染目標510(0)包含第一組顏色與阿爾發資訊。
第二渲染目標510(1)包含四個欄位,代表與對應樣本或片段相關聯的第二組顏色與透明度資訊。如所示,該等四個欄位包含紅色值535、綠色值540、藍色值545以及阿爾發透明值550。每一紅色值535、綠色值540、藍色值545以及阿爾發透明值550都包含一個位元組的資料。此第二渲染目標520(1)可指定為C1,指出第二渲染目標510(1)包含第二組顏色與阿爾發資訊。
第三渲染目標510(2)包含二個欄位,代表與對應樣本或片段相關聯的第一組深度與模板資訊。如所示,該等兩個欄位包含一z或深度值555以及一模板遮罩560。如所示,z值555包含三個位元組的資料,而該模板遮罩560包含一個位元組的資料。此第三渲染目標520(2)可指定為Z0,指出第三渲染目標510(2)包含第一組z與模板資訊。
第四渲染目標510(3)包含二個欄位,代表與對應樣本或片段相關聯的第二組深度與模板資訊。如所示,該等兩個欄位包含一z或深度值565以及一模板遮罩570。如所示,z值565包含三個位元組的資料,而該模板遮罩570包含一個位元組的資料。此第四渲染目標520(3)可指定為Z1,指出第四渲染目標510(3)包含第二組z與模板資訊。
第五渲染目標510(4)包含四個欄位,代表與對應樣本或片段相關聯的表面法線向量資訊。如所示,該等四個欄位包含x軸法線向量575、y軸法線向量580以及z軸法線向量585。在此第五渲染目標510(4)的特定組態內,第四欄位為未使用的欄位590。每一x軸法線向量575、y軸法線向量580和z軸法線向量585以及未使用的欄位590都包含一個位元組的資料。此第五渲染目標520(4)可指定為N0,指出第五渲染目標510(4)包含第一組表面法線資訊。
該渲染目標組態隨影像渲染進度而變,每一渲染目標組態都包含用於一特定影像相位渲染的該組渲染目標。該快取拼貼可在目前渲染目標組態與新渲染目標組態之間的邊框上清除與重新調整大小。在某些具體實施例內,當在該新渲染目標組態為該目前渲染目標組態的子集之情況下,該快取拼貼無法清除與重新調整大小。
第六圖例示根據本發明的一個具體實施例,與渲染一電腦圖形影像相關聯的一系列渲染目標組態600。如所示,該系列渲染目標組態600包含八個已知順序的渲染目標組態610(0)-610(7)。
隨著該電腦圖形影像渲染開始,第一渲染目標組態610(0)指定在此渲染相位期間使用該第一顏色/阿爾發渲染目標C0、該第一Z/模板渲染目標Z0以及該法線向量渲染目標N0。因此,此第一渲染目標組態610(0)指定為C0Z0N0。
一快取拼貼大小係根據第一渲染目標組態610(0)所計算,首先,該快取拼貼所消耗的快取記憶體總量除以第一選染目標組態610(0)內每一位置所需的記憶體空間,產生該快取拼貼內像素的數量。該記憶體空間應該以位元組數量來測量,或以任何其他合適措施來測量。然後用此像素數量來決定該快取拼貼大小。在一個範例中,該快取記憶體的大小為 153,600位元組,並且該快取拼貼佔用該快取記憶體一半。該快取拼貼所佔用的記憶體總量應該為153,600/2或76,800位元組。在渲染目標組態610(0)內每一位置所佔用的位元組數應為三個渲染目標乘上每一渲染目標四個位元組(12個位元組)。然後該快取拼貼內的像素數量應為76,800/12或6400像素。針對方形快取拼貼,該快取拼貼應為6400½或80像素寬乘上80像素高。另外,該快取拼貼大小應為技術上可行的非方形格式,例如64像素寬乘上100像素高。
隨著該電腦圖形影像渲染繼續,第二渲染目標組態610(1)指定在此渲染相位期間使用該第二顏色/阿爾發渲染目標C1以及該第二Z/模板渲染目標Z1。因此,此第二渲染目標組態610(1)指定為C1Z1。因為該渲染目標組態已經變更,所以清除該快取拼貼,並且計算出新的快取拼貼大小。
該新的快取拼貼大小係根據第二渲染目標組態610(1)所計算,在一個範例中,該快取記憶體的大小為153,600位元組,並且該快取拼貼佔用該快取記憶體一半,76,800位元組。在渲染目標組態610(1)內每一位置所佔用的位元組數應為二個渲染目標乘上每一渲染目標四個位元組(也就是8個位元組)。然後該快取拼貼內的像素數量應為76,800/8或9600像素。針對方形快取拼貼,該快取拼貼應為9600½,四捨五入成為98像素寬乘上98像素高。另外,該快取拼貼大小應為技術上可行的非方形格式,例如75像素寬乘上128像素高。
隨著該電腦圖形影像渲染繼續,第三渲染目標組態610(2)指定在此渲染相位期間使用該第一顏色/阿爾發渲染目標C0以及該第一Z/模板渲染目標Z0。因此,此第三渲染目標組態610(2)指定為C0Z0。因為該渲染目標組態已經變更,所以清除該快取拼貼,並且計算出新的快取拼貼大小。在此情況下,對應至第三渲染目標組態610(2)的位元組數量與對應至第二渲染目標組態610(1)的相同。因此,該快取拼貼大小不會從第二渲染目標組態610(1)改變為第三渲染目標組態610(2)。
隨著該電腦圖形影像渲染繼續,第四渲染目標組態610(3)指定在此渲染相位期間使用該第一顏色/阿爾發渲染目標C0、該第二顏色/ 阿爾發渲染目標C1以及該第一Z/模板渲染目標Z0。因此,此第四渲染目標組態610(3)指定為C0C1Z0。因為該渲染目標組態已經變更,所以清除該快取拼貼,並且計算出新的快取拼貼大小。在此情況下,對應至第四渲染目標組態610(3)的位元組數量與對應至第一渲染目標組態610(0)的相同。因此,如上述結合第一渲染目標組態610(0)來計算該快取拼貼大小。
隨著該電腦圖形影像渲染繼續,該第五至第八渲染目標組態610(4)-610(7)分別指定C0Z0、C0C1Z0、C0C1和C0C1Z0的渲染目標組態。在一個具體實施例中,可如上述隨著渲染進度通過選染目標組態610內每一變更,可清除該快取拼貼並且可計算出新的快取拼貼。不過,該快取拼貼的清除與重新調整大小非常耗費計算資源,並且可在清除該目前快取拼貼時延遲渲染新渲染目標組態610。此外,清除會降低在該快取拼貼內拼貼在一起的圖形圖元數量,多多少少將減少拼貼動作所帶來的好處。
因此在另一個具體實施例內,若一新渲染目標組態610為目前渲染目標組態610的子集,則該快取拼貼不會清除或重新調整大小。此方式包含一種情況,其中新渲染目標組態610與目前的渲染目標組態610相同。這種方式會導致該快取記憶體的使用較無效率。在另一方面,由於快取拼貼清除與重新調整大小的機會降低了,造成較高效率以及效能改善,超過對於快取記憶體使用效率降低的補償。在另一個具體實施例內,由改變該快取拼貼大小所造成快取記憶體效率改善會與該快取拼貼不清除與重新調整大小的效能改善做比較,然後根據此比較,做出是保留該目前快取拼貼組態或該快取拼貼清除與重新調整大小之決定。
是以,每一第五至第八渲染目標組態610(4)-610(7)都為第四渲染目標組態610(3)的子集。如此,在渲染進度從第五至第八渲染目標組態610(4)-610(7)時,該快取拼貼大小可維持第四渲染目標組態610(3)的設置。另外,該快取拼貼可經過清除與重新調整大小,並且為渲染進度從第五至第八渲染目標組態610(4)-610(7)內任意或全部變更。
在一個具體實施例內,根據目前選取的消鋸齒模式,修改該快取拼貼大小。在消鋸齒模式內,可針對每一像素位置儲存多個樣本並且稍後混合,造成該最終渲染影像當中改善影像品質。該消鋸齒模式可用數 值指定,使用例如AA-1、AA-2、AA-4或AA-8這類指定,指出每一像素分別包含1、2、4或8個樣本。因此,相較於不使用消鋸齒的一快取拼貼像素,每一快取拼貼可分別消耗位元組數量的1、2、4或8倍。計算該快取拼貼大小時,該快取拼貼大小計算可將該消鋸齒模式列入考量,例如:在每像素佔用12個位元組的一渲染目標組態內,一快取拼貼應包含76,800位元組。在無消鋸齒模式之下,這種快取拼貼應包含6400像素,如上述。使用消鋸齒模式,該快取拼貼應分別包含6400、3200、1600或800位元組用於AA-1、AA-2、AA-4或AA-8模式。若該等快取拼貼為方形,則每一快取拼貼應分別由80 X 80、57 X 57、40 X 40或29 X 29像素形成。
在某些具體實施例內,該等快取拼貼可更大幅採用每一像素的該樣本資料在較高消鋸齒模式上可壓縮之優點。例如因此,相較於不使用消鋸齒的一快取拼貼像素,消鋸齒模式AA-1、AA-2、AA-4或AA-8應消耗1、2、3或5倍的位元組數量。計算該快取拼貼大小時,該快取拼貼大小計算可將該消鋸齒模式列入考量,在每像素佔用12個位元組的一渲染目標組態內,一快取拼貼應包含76,800位元組。在無消鋸齒模式之下,這種快取拼貼應包含6400像素,如上述。使用消鋸齒模式,該快取拼貼應分別包含6400、3200、2134或1280位元組用於AA-1、AA-2、AA-4或AA-8模式。若該等快取拼貼為方形,則每一快取拼貼應分別由80 X 80、57 X 57、47 X 47或36 X 36像素形成。
在另一個具體實施例內,表面壓縮可用來進一步增加該快取拼貼大小。來自光柵運算單元395的表面資料,例如ZROP和CROP資料,可用壓縮方式儲存在渲染目標510內。這種壓縮過的表面資料可傳輸至與來自該L2快取,而不用解壓縮以及重新壓縮該資料,減少該等渲染目標與該L2快取之間的流量。該壓縮過的表面資料可用一壓縮格式儲存在該L2快取內,降低該L2快取內的記憶體消耗。運用與表面壓縮相關聯的該評估或實際壓縮比例,該快取拼貼大小計算可用類似於上述結合消鋸齒模式的方式來修改。
在另一個具體實施例內,其中該快取拼貼位於統一的快取記憶體內,例如本說明書中描述的該L2快取,一快取控制器可進一步利用其 他快取流量至與來自渲染目標510的優點,以便進一步減少晶片外記憶體頻寬並且提高效率。快取拼貼可在EVICT_NORMAL驅逐政策之下儲存在該L2快取記憶體內,其中快取拼貼經歷標準驅逐規則,這可套用至儲存在該L2快取內具有相同驅逐政策的其他資料,例如與光柵運算單元395、頂點屬性擷取單元360以及紋理單元(未顯示)相關的資料。當已經處理用於一特定快取拼貼的幾何圖元,該串流多重處理器310(透過全域載入與全域儲存操作)、光柵運算單元395以及紋理單元可執行記憶體操作,這關聯於該螢幕上影響該快取拼貼的特定區域。所有這種記憶體操作都可透過相同的L2快取來執行。
如上述,快取資料透過統一L2快取,允許該快取控制器在許多用途之間動態分配該快取,包含但不受限於快取拼貼資料、頂點屬性資料以及紋理資料。例如:該快取控制器應分配較高百分比的該快取記憶體給快取拼貼資料以外的資料,例如紋理資料,藉此改善此其他資料的快取效能。如此,該快取控制器並不受限於一靜態L2快取分割,或不受限於一架構,其包含一個別專屬快取用於快取拼貼資料,以及一第二專屬快取,用於其他資料,例如頂點屬性資料以及紋理資料。而是根據目前對於快取記憶體資源的需求,該快取控制器動態選擇快取拼貼與其他資料之間該單一、統一L2快取的分割。
因為快取拼貼資料存取受制於與其他L2資料流量串流相同的EVICT_NORMAL驅逐政策,則該L2快取在這些不同流量串流之間並不含靜態分割。因此,該快取控制器可結合該L2快取與渲染目標記憶體一部分之間的流量,以便進一步降低該L2快取與渲染目標510之間的流量,有效利用快取資料的暫時(temporal)與空間位置之優點。
在一個範例中,該快取控制器可將來自任何該ZROP單元、CROP單元,指向相同渲染目標位置,或來自串流多重處理器310的全域記憶體存取之寫入操作(transaction)結合。該快取控制器可透過寫回政策,結合該L2快取內的這些寫入操作,而該快取拼貼位於該L2快取內。然後該快取控制器可在單一操作中,將來自該L2快取的資料寫至渲染目標510。此方式利用該空間位置的優點,完成與渲染目標資料相關聯的寫入操作。
在另一個範例中,因為該等快取拼貼的方形或矩形形狀代表渲染目標510內相鄰像素的區域,則該快取控制器有可能從該等渲染目標讀取相鄰的記憶體位址。這種資料可從渲染目標510擷取,並且儲存在該L2快取內。然後可在該資料位於該L2快取內之時,多次存取該讀取資料。此方式利用該空間位置的優點,完成與渲染目標資料相關聯的讀取操作。
在另一個範例中,在影像渲染期間內,指向渲染目標510內相同位置的記憶體讀取操作彼此會在相當短的時間間隔內發生。重疊圖元可存取相同紋理,其中該紋理座標對準該快取拼貼座標。在這種情況下,會多次存取渲染目標510內的該紋理記憶體,其中該等存取在時間上彼此靠近。該快取控制器可將這些存取結合成指向渲染目標510內該紋理記憶體的單一讀取操作。此方式利用該渲染目標資料的暫時位置之優點。除了紋理存取以外,可達成類似的暫時位置關係好處用於光柵運算單元395進行的讀取與寫入存取,以及由串流多重處理器310進行的一般全域載入與全域儲存存取。在某些具體實施例內,相同方式可用於存取與並非渲染目標的一表面相關聯之紋理記憶體。
吾人將了解,本文中顯示的該架構僅為例示,所以可進行改變與修改。在一個範例中,本說明書內用已知組態內渲染目標500的特定集合之範疇來描述該等技術。不過,所描述的技術可運用在任何數量的渲染目標500。每一渲染目標510都可設置成獨立於其他渲染目標,以包含任何數量的欄位。這種欄位應包含但不受限於3D位置資料、擴散照明資訊以及視鏡照明資訊。一渲染目標510內的每一欄位都應設置成獨立於其他欄位,以包含任何數量的位元。在另一個範例中,雖然在該系列渲染目標組態600內顯示特定渲染目標,不過任何技術可行的渲染目標組態610都可指定。在另一個範例中,在特定影像渲染期間,可運用任何系列的渲染目標組態600,其中可指定任何數量的渲染目標組態610,並且任何渲染目標組態610都可位於任何其他渲染目標組態610之前或之後。
第七圖揭示根據本發明的一個具體實施例,用於自調適大小調整快取拼貼的方法步驟流程圖。雖然已經結合第一圖至第六圖的系統來描述該等方法步驟,精通技術人士將了解,設置來執行該等方法步驟(以任 何順序)的任何系統都在本發明範疇內。
如所示,方法700從步驟702開始,在此裝置驅動程式103偵測到與目前渲染目標組態不同的新渲染目標組態。渲染目標組態內的變更可能是因為在影像渲染處理期間,開始新影像渲染處理,或從目前渲染目標組態改變成新渲染目標組態。在步驟704上,裝置驅動程式103決定該新渲染目標組態是否為目前渲染目標組態的子集。若該新渲染目標組態為該目前渲染目標組態的子集,則終止方法700。
不過若該新渲染目標組態並非該目前渲染目標組態的子集,則方法700前往步驟706,在此裝置驅動程式103計算該快取拼貼佔用的該快取記憶體空間。例如:該快取拼貼可佔用整個可用快取記憶體的一半或三分之一。在步驟708上,裝置驅動程式103計算每一像素佔用的記憶體空間總量。例如:裝置驅動程式103可加總該新渲染目標組態內每一渲染目標的每一欄位所佔用之位元組數量。
在步驟710上,裝置驅動程式103將一消鋸齒模式係數套用至步驟708的該記憶體空間計算當中。在一個範例中,裝置驅動程式103分別針對AA-1、AA-2、AA-4或AA-8模式,將每像素的記憶體空間乘上1、2、4或8倍。在另一個範例中,裝置驅動程式103分別針對AA-1、AA-2、AA-4或AA-8模式,將每像素的記憶體空間乘上1、2、3或5倍,這取決於較高消鋸齒模式上壓縮像素的能力。在步驟712上,裝置驅動程式103將一表面壓縮係數套用至步驟708的該記憶體空間計算當中。例如:裝置驅動程式103,可將每像素的該記憶體空間乘上根據ZROP資料或CROP資料的評估或實際壓縮係數。
在步驟714上,裝置驅動程式103根據一或多個以下係數來計算該快取拼貼內的像素數量:該快取記憶體組態、該新渲染目標組態、該消鋸齒係數以及該表面壓縮係數。在步驟716上,裝置驅動程式103計算該快取拼貼大小。在步驟718上,裝置驅動程式103將該快取拼貼大小設定給從步驟716計算得到的快取拼貼大小。然後方法700終止。
總結來說,偵測到渲染目標組態變更時,則調整快取拼貼大小。該等快取拼貼的大小係根據該渲染目標組態以及該快取組態。並且計 算出用於每一渲染目標內單一位置所需的位元組總數。快取記憶體內可用於快取拼貼的位元組數量除以此總數,以決定該快取拼貼內的像素數量。若該快取拼貼為方形,則計算像素數量的平方根並四捨五入到最接近的整數,產生該快取拼貼的寬度與高度。若該快取拼貼並非方形,則選取寬度與高度,其中該寬度與高度的乘積等於至少像素數量。
該快取拼貼大小可經過選擇,以便在該快取記憶體內容納多個快取拼貼,如此可在處理另一個快取拼貼時接收用於一或多個快取拼貼的工作。在該快取拼貼位於一般用途快取的情況下,該快取拼貼大小可設定成只消耗部分快取,例如該快取記憶體的一半或三分之一,留下尚餘的快取記憶體供其他快取用戶端使用。快取拼貼資料可經過壓縮,以便進一步降低該快取拼貼的大小,以便獲得較高消鋸齒模式與表面壓縮,例如ZROP和CROP壓縮的資料效率。
所揭示方法的一項優點為根據渲染目標組態以及快取組態,自調適調整該快取拼貼的大小。較小的快取拼貼大小選取用於更複雜的渲染目標組態,而較大的快取拼貼大小則選取用於較不複雜的渲染目標組態。利用根據該渲染目標組態自調適調整該快取拼貼之大小,只需要較少的計算能力就可處理該等快取拼貼,造成更有效率的處理器利用率並且降低電源需求。所揭示方法的另一項優點為當已壓縮快取拼貼資料儲存在該快取內時,該快取拼貼大小可進一步減少,藉此更進一步增加可用的快取記憶體。另外,該快取拼貼大小可維持相同大小,並且每一快取拼貼可覆蓋螢幕表面的較大部分。結果,快取拼貼的總數可減少,造成關於拼貼較小的處理負擔。此外,統一的L2快取拼貼允許快取拼貼資料與其他資料之間快取記憶體的動態分割,其中分配給許多資料型別的該L2快取部分可根據當前需求而變。最後,該快取控制器利用擷取渲染目標資料一次,然後多次重複使用該資料以佔用空間與時間位置的優點,利用將多個用戶端發出的讀取與寫入操作結合為相同渲染目標,減少渲染目標存取的數量。
本發明的一個具體實施例可實施當成搭配電腦系統使用的程式產品。該程式產品的程式定義該等具體實施例(包含本文所述的方法)的功能,並且可包含在電腦可讀取儲存媒體上。例示的電腦可讀取儲存媒 體包含但不受限於:(i)其上資訊永久儲存的不可抹寫儲存媒體(例如電腦內的唯讀記憶體裝置,例如小型碟片唯讀記憶體(CD-ROM)光碟機可讀取的CD-ROM光碟、快閃記憶體、ROM晶片或任何一種固態非揮發性半導體記憶體);以及(ii)上其儲存可變資訊的可抹寫儲存媒體(例如磁碟機或硬碟內的磁碟或任何一種固態隨機存取半導體記憶體)。
在此已經參考特定具體實施例說明本發明。不過精通此技術的人士將會了解,在不背離申請專利範圍內公佈之本發明廣泛精神以及領域下,可進行許多修改與變更。因此前述說明與圖式僅供參考而不做限制。
因此,本發明具體實施例的範疇公布於以下的申請專利範圍之內。

Claims (10)

  1. 一種用於自調適大小調整一圖形系統內快取拼貼之方法,該方法包含:將與一第一快取拼貼相關聯的一快取拼貼大小設定成一第一大小;偵測到將包含一第一組複數個渲染目標的一第一渲染目標組態改變成包含一第二組複數個渲染目標的一第二渲染目標組態之一變更;以及根據該第二渲染目標組態,將該快取拼貼大小設定成一第二大小。
  2. 如申請專利範圍第1項之方法,另包含決定該等第二複數個渲染目標並不包含該等第一複數個渲染目標的一子集。
  3. 如申請專利範圍第1項之方法,其中至少該第一大小與該第二大小之一者對應至不具有方形尺寸的一快取拼貼。
  4. 如申請專利範圍第1項之方法,其中該第二大小另根據其中具有該第一快取拼貼的一快取記憶體之組態。
  5. 如申請專利範圍第4項之方法,其中至少該第一大小與該第二大小之一者設定成使得該第一快取拼貼佔用不超過該快取記憶體的一第一部分。
  6. 如申請專利範圍第1項之方法,另包含根據與一消鋸齒模式相關聯的一壓縮係數,修改該快取拼貼大小。
  7. 一種圖形系統,包含:一快取記憶體,包含:一第一部分,其包含一快取拼貼,以及一第二部分;以及一快取控制器,其關連於該快取記憶體,其設置成:決定位於該第一快取拼貼內的一第一資料項目以及位於該快取記憶體的第二部分內的一第二資料項目指向一第一渲染目標內該相同位置;以及在一單一操作(transaction)內將該第一資料項目與該第二資料項目寫入該第一渲染目標。
  8. 如申請專利範圍第7項之圖形系統,其中該快取控制器另設置成: 決定位於一第一渲染目標內的一第一資料項目以及位於一第一渲染目標內的一第二資料項目已經排程載入該第一快取拼貼,其中該第一資料項目以及該第二資料項目都儲存在該第一渲染目標內相鄰的位置內;以及在一單一操作內從該第一渲染目標讀取該第一資料項目與該第二資料項目。
  9. 如申請專利範圍第7項之圖形系統,其中該快取控制器另設置成:決定一第一圖形圖元取決於位在一第一渲染目標內的一第一資料項目;決定一第二圖形圖元取決於該第一資料項目;以及在一單一操作內從該第一渲染目標讀取該第一資料項目。
  10. 如申請專利範圍第7項之圖形系統,另包含:一處理單元;以及一第一記憶體,其耦合至該處理單元並且儲存一裝置驅動程式,該程式設置成自調適大小調整該圖形系統內快取拼貼,方法為:將與一第一快取拼貼相關聯的一快取拼貼大小設定成一第一大小;偵測到將包含一第一組渲染目標的一第一渲染目標組態改變成包含一第二組渲染目標的一第二渲染目標組態之一變更;以及根據該第二渲染目標組態,將該快取拼貼大小設定成一第二大小。
TW102138728A 2012-10-26 2013-10-25 快取具有表面壓縮的統一l2快取內之自調適大小快取拼貼 TWI533255B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261719271P 2012-10-26 2012-10-26
US14/012,308 US9734548B2 (en) 2012-10-26 2013-08-28 Caching of adaptively sized cache tiles in a unified L2 cache with surface compression

Publications (2)

Publication Number Publication Date
TW201432611A true TW201432611A (zh) 2014-08-16
TWI533255B TWI533255B (zh) 2016-05-11

Family

ID=50479794

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102138728A TWI533255B (zh) 2012-10-26 2013-10-25 快取具有表面壓縮的統一l2快取內之自調適大小快取拼貼

Country Status (4)

Country Link
US (1) US9734548B2 (zh)
CN (1) CN103810669B (zh)
DE (1) DE102013017639B4 (zh)
TW (1) TWI533255B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8941676B2 (en) * 2012-10-26 2015-01-27 Nvidia Corporation On-chip anti-alias resolve in a cache tiling architecture
US9626735B2 (en) * 2013-06-24 2017-04-18 Intel Corporation Page management approach to fully utilize hardware caches for tiled rendering
US9842428B2 (en) * 2014-06-27 2017-12-12 Samsung Electronics Co., Ltd. Dynamically optimized deferred rendering pipeline
US10089238B2 (en) * 2014-07-17 2018-10-02 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
US10025796B2 (en) 2015-04-29 2018-07-17 Box, Inc. Operation mapping in a virtual file system for cloud-based shared content
US10535114B2 (en) * 2015-08-18 2020-01-14 Nvidia Corporation Controlling multi-pass rendering sequences in a cache tiling architecture
US20170206172A1 (en) * 2016-01-19 2017-07-20 SK Hynix Inc. Tehcniques with os- and application- transparent memory compression
US10120187B2 (en) 2016-02-18 2018-11-06 Nvidia Corporation Sub-frame scanout for latency reduction in virtual reality applications
CN105744275B (zh) * 2016-02-22 2019-04-05 青岛海信电器股份有限公司 一种视频数据输入、输出方法和装置
US10453169B2 (en) * 2016-03-28 2019-10-22 Intel Corporation Method and apparatus for multi format lossless compression
US10176090B2 (en) * 2016-09-15 2019-01-08 Qualcomm Incorporated Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems
US10607390B2 (en) * 2016-12-14 2020-03-31 Nvidia Corporation Techniques for tiling compute work with graphics work
US10929210B2 (en) 2017-07-07 2021-02-23 Box, Inc. Collaboration system protocol processing
US11470131B2 (en) 2017-07-07 2022-10-11 Box, Inc. User device processing of information from a network-accessible collaboration system
CN109189533A (zh) * 2018-08-29 2019-01-11 万帮充电设备有限公司 一种屏幕尺寸适配方法和系统
US11069023B2 (en) * 2019-05-24 2021-07-20 Nvidia Corporation Techniques for efficiently accessing memory and avoiding unnecessary computations
US11062507B2 (en) * 2019-11-04 2021-07-13 Apple Inc. Compression techniques for pixel write data

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697063B1 (en) 1997-01-03 2004-02-24 Nvidia U.S. Investment Company Rendering pipeline
US7102646B1 (en) 1997-11-25 2006-09-05 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US6856320B1 (en) 1997-11-25 2005-02-15 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US6323860B1 (en) 1999-03-17 2001-11-27 Nvidia Corporation Circuit and method for deferring the binding of render states to primitives in a graphics system
US6535209B1 (en) 1999-03-17 2003-03-18 Nvidia Us Investments Co. Data stream splitting and storage in graphics data processing
US6674443B1 (en) * 1999-12-30 2004-01-06 Stmicroelectronics, Inc. Memory system for accelerating graphics operations within an electronic device
US6885378B1 (en) * 2000-09-28 2005-04-26 Intel Corporation Method and apparatus for the implementation of full-scene anti-aliasing supersampling
US7317718B1 (en) 2002-12-06 2008-01-08 Juniper Networks, Inc. Flexible counter update and retrieval
US7634621B1 (en) * 2004-07-13 2009-12-15 Nvidia Corporation Register file allocation
US8214601B2 (en) * 2004-07-30 2012-07-03 Hewlett-Packard Development Company, L.P. Purging without write-back of cache lines containing spent data
US7649537B2 (en) * 2005-05-27 2010-01-19 Ati Technologies, Inc. Dynamic load balancing in multiple video processing unit (VPU) systems
US8766995B2 (en) * 2006-04-26 2014-07-01 Qualcomm Incorporated Graphics system with configurable caches
US7808507B1 (en) * 2006-09-18 2010-10-05 Nvidia Corporation Compression tag state interlock
GB2452300B (en) 2007-08-30 2009-11-04 Imagination Tech Ltd Predicated geometry processing in a tile based rendering system
US8933943B2 (en) * 2008-04-30 2015-01-13 Intel Corporation Technique for performing load balancing for parallel rendering
KR101511273B1 (ko) * 2008-12-29 2015-04-10 삼성전자주식회사 멀티 코어 프로세서를 이용한 3차원 그래픽 렌더링 방법 및시스템
US8605102B1 (en) 2009-10-08 2013-12-10 Nvidia Corporation Rasterization tile coalescer and reorder buffer
US8412971B2 (en) * 2010-05-11 2013-04-02 Advanced Micro Devices, Inc. Method and apparatus for cache control

Also Published As

Publication number Publication date
CN103810669B (zh) 2017-12-22
DE102013017639A1 (de) 2014-04-30
US9734548B2 (en) 2017-08-15
DE102013017639B4 (de) 2023-01-12
US20140118379A1 (en) 2014-05-01
TWI533255B (zh) 2016-05-11
CN103810669A (zh) 2014-05-21

Similar Documents

Publication Publication Date Title
TWI533255B (zh) 快取具有表面壓縮的統一l2快取內之自調適大小快取拼貼
TWI515716B (zh) 具備緩衝區限制處理的世界空間與螢幕空間管線間之圖元重新排序
US8760460B1 (en) Hardware-managed virtual buffers using a shared memory for load distribution
US8941653B2 (en) Order-preserving distributed rasterizer
TW201432609A (zh) 已分配的拼貼快取
TWI559729B (zh) 用於低功率圖形著色的像素著色器省略
TWI645371B (zh) 在上游著色器內設定下游著色狀態
US9779533B2 (en) Hierarchical tiled caching
US9659399B2 (en) System, method, and computer program product for passing attribute structures between shader stages in a graphics pipeline
CN107392836B (zh) 使用图形处理管线实现的立体多投影
TWI633516B (zh) 曲面細分及幾何著色器的功率效率屬性處理

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees