国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      存儲(chǔ)器管理系統(tǒng)和方法與流程

      文檔序號(hào):11515716閱讀:245來源:國(guó)知局
      存儲(chǔ)器管理系統(tǒng)和方法與流程
      本申請(qǐng)是申請(qǐng)日為2011年3月18日,申請(qǐng)?zhí)枮?01180014822.x,名稱為“存儲(chǔ)器管理系統(tǒng)和方法”的中國(guó)發(fā)明專利申請(qǐng)的分案申請(qǐng)。本發(fā)明涉及存儲(chǔ)器管理系統(tǒng)并且尤其涉及用于3d圖形系統(tǒng)中的管理存儲(chǔ)器中的系統(tǒng)。
      背景技術(shù)
      :在申請(qǐng)人的英國(guó)專利no.2281682中,描述了多邊形的3d渲染系統(tǒng),其中所看到的每個(gè)對(duì)象可看作是定義在一組無限的表面中。將顯示圖像的屏幕的每個(gè)像點(diǎn)區(qū)域(即像素)具有射線,該射線通過基本區(qū)域從視點(diǎn)投射到3d場(chǎng)景中。然后確定投射的射線與每個(gè)表面的交叉位置。根據(jù)這些交叉點(diǎn),然后可以確定是否任何交叉的表面在那個(gè)像點(diǎn)區(qū)域都是可見的。然后像點(diǎn)區(qū)域依據(jù)確定的結(jié)果被掩蓋以用于顯示。該系統(tǒng)可以在包括多個(gè)單元的管線類型處理器中實(shí)施,多個(gè)單元中的每個(gè)單元可以執(zhí)行與表面的交叉點(diǎn)計(jì)算。因此,大量的表面交叉點(diǎn)可以被同時(shí)計(jì)算。每個(gè)單元被裝載了一組定義用于執(zhí)行交叉測(cè)試的表面的系數(shù)。在申請(qǐng)人的英國(guó)專利no.2298111中描述了另一種配置,其中圖像被分為分子區(qū)域或圖塊(tile)并且圖塊被輪流處理。各種圖塊大小被使用并且邊界框在全部對(duì)象的周圍被投射使得只有落入邊界框內(nèi)的那些圖塊需要處理。為了選擇適當(dāng)?shù)膱D塊大小,這通過確定對(duì)象在可視化屏幕上的分布來完成。然后定義各種對(duì)象的表面被存儲(chǔ)在顯示列表中,從而避免了需要存儲(chǔ)用于每個(gè)圖塊的相同表面,因?yàn)槎鄠€(gè)表面組成的一個(gè)對(duì)象可以顯示在多個(gè)圖塊中。還存儲(chǔ)識(shí)別顯示列表中的對(duì)象指針。每個(gè)圖塊具有一個(gè)對(duì)象指針。然后圖塊可以使用上述射線投射技術(shù)輪流被渲染直到每個(gè)圖塊中的所有對(duì)象被處理。這是一個(gè)有用的方法,因?yàn)殇秩疽阎谔囟▓D塊中不可見的對(duì)象無需作出努力。在申請(qǐng)人的英國(guó)專利no.2343603中提出了另一種配置,其中不需要顯示特定對(duì)象的邊界框內(nèi)的任何圖塊在渲染之前被丟棄。在上述的現(xiàn)有系統(tǒng)中,處理器通常包括三個(gè)組件。圖塊加速器單元(ta)執(zhí)行圖塊化操作,即選擇適當(dāng)?shù)膱D塊大小并將可視化屏幕劃分成多個(gè)圖塊,并提供圖塊信息(即用于每個(gè)圖塊的3d對(duì)象數(shù)據(jù))到顯示列表存儲(chǔ)器。圖像合成處理器(isp)使用顯示列表存儲(chǔ)器中的3d對(duì)象數(shù)據(jù)來執(zhí)行上述的射線/表面交叉測(cè)試。這產(chǎn)生了用于可視化屏幕的每個(gè)像點(diǎn)區(qū)域的深度數(shù)據(jù)。在此之后,從isp得出的圖像數(shù)據(jù)被提供至結(jié)構(gòu)化和陰影化處理器(tsp),tsp將結(jié)構(gòu)化和陰影化數(shù)據(jù)應(yīng)用到已經(jīng)被確定為可見的表面并將圖像和陰影化數(shù)據(jù)輸出到幀緩沖存儲(chǔ)器。因此,顯示器的每個(gè)像點(diǎn)區(qū)域的外觀被確定以便呈現(xiàn)3d圖像。在申請(qǐng)人的歐洲專利no.1287494中描述了另外一種有利的配置,特別用于復(fù)雜場(chǎng)景,在該場(chǎng)景中用于每個(gè)圖塊的更多的3d對(duì)象數(shù)據(jù)需要被存儲(chǔ)在顯示列表存儲(chǔ)器中,這導(dǎo)致了增加的存儲(chǔ)請(qǐng)求。這提出了局部渲染的想法。在ep1287494中,描述了存儲(chǔ)器管理系統(tǒng),其中在基于圖塊的渲染系統(tǒng)中,存儲(chǔ)器塊(頁面)被分配給各個(gè)圖塊以用于與每個(gè)圖塊相關(guān)聯(lián)的對(duì)象列表的存儲(chǔ)。當(dāng)3d系統(tǒng)確定對(duì)象在圖塊中可能是可見的時(shí),關(guān)于該對(duì)象的數(shù)據(jù)被寫入各自的對(duì)象列表。對(duì)于復(fù)雜的圖像,需要用于對(duì)象列表的數(shù)據(jù)的數(shù)量將大于分配給該對(duì)象列表的存儲(chǔ)器塊的大小。所以,當(dāng)在對(duì)象列表中存儲(chǔ)的數(shù)據(jù)的數(shù)量超出預(yù)定的閾值時(shí),已經(jīng)寫入對(duì)象列表的對(duì)象針對(duì)該圖塊被渲染。然后其他對(duì)象被寫入對(duì)象列表直到所有對(duì)象都已經(jīng)被確定在圖塊中是可見的或者是不可見的,并且剩余數(shù)據(jù)可能準(zhǔn)備被渲染(結(jié)構(gòu)化和陰影化)以用于顯示。一些對(duì)象與不止一個(gè)圖塊交叉。為此,通常使用用于所有圖塊的全局對(duì)象列表。這包含關(guān)于覆蓋多個(gè)圖塊的那些對(duì)象的數(shù)據(jù)和來自用于每個(gè)圖塊的基于圖塊的對(duì)象列表的渲染數(shù)據(jù),渲染來自全局圖塊列表的數(shù)據(jù)以確定任何對(duì)象在圖塊內(nèi)的任何特定像素處是否是可見的是必要的。但是,在一些情況中,用于圖像的全局對(duì)象列表的使用可能不是特別有效的。這是因?yàn)榧词箤?duì)于與例如僅僅兩個(gè)圖塊相交的對(duì)象,數(shù)據(jù)也必須被寫入全局對(duì)象列表并且針對(duì)屏幕中的每個(gè)圖塊進(jìn)行處理以確定對(duì)象在屏幕中的每個(gè)圖塊中是否是可見的。優(yōu)選地,全局列表的大小通過將多個(gè)全局列表與宏圖塊而不是整個(gè)屏幕(每個(gè)宏圖塊包括屏幕上的多個(gè)平鋪區(qū)域)相關(guān)聯(lián)而減少。照慣例,存儲(chǔ)器頁面的每個(gè)存儲(chǔ)器頁面與屏幕上宏圖塊相關(guān)聯(lián)以確定多少存儲(chǔ)器用于宏圖塊。因此,對(duì)于宏圖塊中的單獨(dú)圖塊,存儲(chǔ)器頁面按以下方式被管理:在圖塊被渲染時(shí),然后存儲(chǔ)器的至少一個(gè)頁面被釋放以進(jìn)行重新使用。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的發(fā)明人已經(jīng)領(lǐng)會(huì)存儲(chǔ)器可以被更加有效地被分配,以及通過采取宏圖塊與存儲(chǔ)器中的頁面相關(guān)聯(lián)而不是存儲(chǔ)器中的頁面與宏圖塊相關(guān)聯(lián)的方案,全局列表可能變得多余。因此,代替接入可能兩個(gè)或更多宏圖塊的頁面,宏圖塊與多個(gè)存儲(chǔ)器的頁面相關(guān)聯(lián),所有多個(gè)存儲(chǔ)器的頁面被該宏圖塊接入。這通過存儲(chǔ)用于每個(gè)頁面的位掩碼而實(shí)施,該位與由頁面中的項(xiàng)目引用的宏圖塊相對(duì)應(yīng)。根據(jù)本發(fā)明的第一個(gè)方面,提供了用于管理3d圖像系統(tǒng)中存儲(chǔ)器分配的方法,該方法包括以下步驟:把將要準(zhǔn)備渲染的圖像細(xì)分為多個(gè)矩形區(qū)域;為每個(gè)矩形區(qū)域分配對(duì)象列表,該對(duì)象列表包括定義在矩形區(qū)域中可見的對(duì)象的數(shù)據(jù);在對(duì)象列表被編譯時(shí),將存儲(chǔ)器頁碼動(dòng)態(tài)地分配給每個(gè)對(duì)象列表;存儲(chǔ)用于存儲(chǔ)器的每個(gè)頁碼的位掩碼,位掩碼包括指示哪些矩形區(qū)域包括具有存儲(chǔ)在存儲(chǔ)器頁面中的數(shù)據(jù)的對(duì)象的數(shù)據(jù);確定何時(shí)存儲(chǔ)器的空閑頁的數(shù)量降到預(yù)定限值以下;確定哪些矩形區(qū)域需要被渲染以釋放至少一些存儲(chǔ)器頁面;渲染所確定的至少一個(gè)矩形區(qū)域;以及將通過渲染步驟釋放的存儲(chǔ)器的任何頁面添加至空閑存儲(chǔ)器列表。根據(jù)本發(fā)明的第一方面,還提供了用于管理產(chǎn)生3d計(jì)算機(jī)圖像的系統(tǒng)中的存儲(chǔ)器的方法,該方法包括以下步驟:將圖像細(xì)分為多個(gè)矩形區(qū)域;提供存儲(chǔ)器并分配存儲(chǔ)器頁面來存儲(chǔ)用于圖像中對(duì)象的對(duì)象數(shù)據(jù);將用于圖像中對(duì)象的對(duì)象數(shù)據(jù)寫入所分配的存儲(chǔ)器頁面;以及編譯用于所分配的存儲(chǔ)器頁面的位掩碼,該位掩碼指示具有對(duì)象數(shù)據(jù)的矩形區(qū)域,該對(duì)象數(shù)據(jù)存儲(chǔ)在所分配的存儲(chǔ)器頁面中。也就是說,不是如現(xiàn)有技術(shù)中配置的將存儲(chǔ)器頁面與矩形區(qū)域相關(guān)聯(lián)(也就是說,將存儲(chǔ)器分配至圖像的空間區(qū)域),矩形區(qū)域與多個(gè)存儲(chǔ)器頁面相關(guān)聯(lián)。這完全重新定義了存儲(chǔ)器的處理并避免了對(duì)全局列表的需求。分配存儲(chǔ)器頁面的步驟可以包括根據(jù)存儲(chǔ)器的空閑頁面的列表的分配頁面。一旦所分配的頁面為滿,則該頁面被添加至所分配的存儲(chǔ)器頁面的列表。優(yōu)選地,當(dāng)對(duì)象數(shù)據(jù)正在寫入存儲(chǔ)器頁面時(shí),該頁面既不出現(xiàn)在存儲(chǔ)器的空閑頁面的列表中也不出現(xiàn)在存儲(chǔ)器的所分配頁面的列表中。因?yàn)樵擁撁娌辉诳臻e頁面的列表中,所以不可能不經(jīng)意地被分配。優(yōu)選地,用于每個(gè)所分配的存儲(chǔ)器頁面的位掩碼與所分配的存儲(chǔ)器頁面的地址一起被存儲(chǔ)。指示哪些矩形區(qū)域具有存儲(chǔ)在該頁面的對(duì)象數(shù)據(jù)的頁面的位掩碼可以被用于確定哪些頁面將通過任何特定渲染被釋放。將用于特定矩形區(qū)域中對(duì)象的對(duì)象數(shù)據(jù)寫入存儲(chǔ)器的步驟優(yōu)選地包括編譯用于該特定矩形區(qū)域的對(duì)象列表。因此,一旦特定矩形區(qū)域中的所有對(duì)象的對(duì)象數(shù)據(jù)被寫入存儲(chǔ)器,則用于該矩形區(qū)域的對(duì)象列表就完成了。該方法進(jìn)一步包括以下步驟:對(duì)于矩形區(qū)域中的對(duì)象,通過從存儲(chǔ)在所述存儲(chǔ)器中的對(duì)象數(shù)據(jù)得出的用于顯示的數(shù)據(jù)來渲染所述圖像的矩形區(qū)域;以及對(duì)于在渲染步驟之前存儲(chǔ)用于該矩形區(qū)域的對(duì)象數(shù)據(jù)的用于每個(gè)存儲(chǔ)器頁面的位掩碼,更新該位掩碼以不再指示該矩形區(qū)域。也就是說,當(dāng)矩形區(qū)域被渲染時(shí),用于該矩形區(qū)域的對(duì)象數(shù)據(jù)從存儲(chǔ)器移除(因?yàn)槠浔晦D(zhuǎn)換為用于顯示的數(shù)據(jù))。因此,用于存儲(chǔ)矩形區(qū)域的對(duì)象數(shù)據(jù)的那些所分配的頁面在矩形區(qū)域被渲染之前不再存儲(chǔ)該對(duì)象數(shù)據(jù)。因此,那些所分配的頁面的位掩碼必須被更新。優(yōu)選地,一旦具有存儲(chǔ)在分配的存儲(chǔ)器頁面中的對(duì)象數(shù)據(jù)的所有矩形區(qū)域都已經(jīng)被渲染,則該頁面被添加至存儲(chǔ)器的空閑頁面的列表。優(yōu)選地,一旦存儲(chǔ)器的空閑頁面的數(shù)量降到預(yù)定閾值以下,則執(zhí)行渲染圖像的矩形區(qū)域的步驟。將被渲染的諸如將釋放需要的存儲(chǔ)器頁面的矩形區(qū)域的特定矩形區(qū)域可以根據(jù)每個(gè)存儲(chǔ)器頁面的位掩碼來確定。優(yōu)選地,該方法進(jìn)一步包括以下步驟:基于每個(gè)所分配的存儲(chǔ)器頁面的位掩碼來存儲(chǔ)信息,該位掩碼與當(dāng)每個(gè)矩形區(qū)域都被渲染時(shí)哪個(gè)或哪些分配的存儲(chǔ)器頁面將被釋放相關(guān)。根據(jù)本發(fā)明的第二個(gè)方面,提供了用于與用于產(chǎn)生3d計(jì)算機(jī)圖像的系統(tǒng)一起使用的存儲(chǔ)器管理系統(tǒng),該系統(tǒng)包括:用于將圖像細(xì)分成多個(gè)矩形區(qū)域的裝置;具有多個(gè)頁面并具有每次被分配用于存儲(chǔ)圖像中對(duì)象的對(duì)象數(shù)據(jù)的頁面的存儲(chǔ)器;用于將用于圖像中對(duì)象的對(duì)象數(shù)據(jù)寫入所分配的存儲(chǔ)器頁面的裝置;以及用于編譯所分配的存儲(chǔ)器頁面的位掩碼的裝置,該位掩碼指示具有對(duì)象數(shù)據(jù)的矩形區(qū)域,該對(duì)象數(shù)據(jù)存儲(chǔ)在所分配的存儲(chǔ)器頁面中。用于將圖像細(xì)分成多個(gè)矩形區(qū)域的裝置可以包括圖塊化引擎(tilingengine)。用于將圖形中對(duì)象的對(duì)象數(shù)據(jù)寫入所分配的存儲(chǔ)器頁面的裝置可以包括用于構(gòu)造用于圖像中對(duì)象的對(duì)象數(shù)據(jù)的壓縮器,或圖塊化引擎。優(yōu)選地,每個(gè)存儲(chǔ)器頁面根據(jù)存儲(chǔ)器的空閑頁面的列表被分配。優(yōu)選地,一旦頁面為滿,則該頁面被添加至所分配的存儲(chǔ)器頁面的列表。優(yōu)選的,當(dāng)對(duì)象數(shù)據(jù)正在寫入存儲(chǔ)器頁面時(shí),該頁面既不出現(xiàn)存儲(chǔ)器的空閑頁面的列表中也不出現(xiàn)在所分配的存儲(chǔ)器頁面的列表中。優(yōu)選地,存儲(chǔ)器被配置成存儲(chǔ)每個(gè)所分配的頁面的位掩碼。優(yōu)選地,每個(gè)所分配的頁面的位掩碼與所分配的頁面的地址一起被存儲(chǔ)。然后頁面的位掩碼可以用于確定那些頁面將通過任何特定渲染而釋放。存儲(chǔ)器管理系統(tǒng)可以進(jìn)一步包括:針對(duì)每個(gè)矩形區(qū)域中的對(duì)象,用于通過從存儲(chǔ)在存儲(chǔ)器中的對(duì)象數(shù)據(jù)得出的用于顯示的數(shù)據(jù)來渲染圖像的矩形區(qū)域的裝置;其中,一旦特定矩形區(qū)域被渲染,則在渲染之前存儲(chǔ)用于矩形區(qū)域的對(duì)象數(shù)據(jù)的每個(gè)存儲(chǔ)器頁面的位掩碼被更新以不再指示該矩形區(qū)域。根據(jù)本發(fā)明的第三方面,提供了與使用本發(fā)明的第一個(gè)方面的方法或本發(fā)明的第二個(gè)方面的系統(tǒng)一起使用的存儲(chǔ)器,該存儲(chǔ)器包括:多個(gè)頁面;每次被分配用于存儲(chǔ)圖像中的對(duì)象的對(duì)象數(shù)據(jù)的頁面,以及用于存儲(chǔ)每個(gè)被分配的存儲(chǔ)器頁面的位掩碼的部分。關(guān)于本發(fā)明的一個(gè)方面描述的特征也可以應(yīng)用于本發(fā)明的另一方面。附圖說明現(xiàn)在將以參照參考附圖的示例的方式對(duì)本發(fā)明的優(yōu)選實(shí)施方式進(jìn)行詳細(xì)地描述,其中:圖1顯示了體現(xiàn)用于管理存儲(chǔ)器訪問的本發(fā)明的3d圖形處理單元的部分的系統(tǒng)圖;以及圖2顯示了說明由用于不同的邊界框大小的宏圖塊引用的頁面百分比的示圖。具體實(shí)施方式圖1的系統(tǒng)包括向結(jié)構(gòu)化和陰影化處理器(tsp)參數(shù)獲取單元4提供數(shù)據(jù)的圖形合成處理器(isp)2。該二者都被耦合到參數(shù)管理單元6。tsp參數(shù)獲取單元4和參數(shù)管理單元6被耦合到存儲(chǔ)器8。頂點(diǎn)塊發(fā)生器(vertexblockgenerator)10是圖形數(shù)據(jù)的來源,該圖形數(shù)據(jù)可以用于產(chǎn)生諸如三角形的圖元。這些三角形通過壓縮器12產(chǎn)生,然后被存儲(chǔ)至存儲(chǔ)器8中。他們還被提供至圖塊化引擎14,該圖塊化引擎14用于把將被進(jìn)行結(jié)構(gòu)化和陰影化的場(chǎng)景細(xì)分成多個(gè)矩形區(qū)域或圖塊,以及將三角形分配至圖塊并確保它們被存儲(chǔ)到存儲(chǔ)器中各自圖塊的對(duì)象列表中。通常,頂點(diǎn)塊發(fā)生器10產(chǎn)生多達(dá)64個(gè)頂點(diǎn)的頂點(diǎn)塊,這表示總數(shù)多達(dá)80個(gè)的三角形準(zhǔn)備被寫入存儲(chǔ)器。當(dāng)頂點(diǎn)塊完成時(shí),壓縮器12讀取所述塊,將他們壓縮成三角形并將作為結(jié)果的三角形數(shù)據(jù)寫入存儲(chǔ)器8。為了寫入存儲(chǔ)器,壓縮器需要具有一個(gè)或多個(gè)被分配的存儲(chǔ)器頁面,其中該存儲(chǔ)器可以存儲(chǔ)由三角形定義的對(duì)象數(shù)據(jù)?,F(xiàn)在將更加詳細(xì)地討論存儲(chǔ)器的分配和存儲(chǔ)器的使用。存儲(chǔ)器頁面通過向耦合到壓縮器12和參數(shù)管理單元6的圖塊化引擎14發(fā)出存儲(chǔ)器請(qǐng)求而被分配以用于存儲(chǔ)。圖塊化引擎被用于產(chǎn)生用于圖塊的對(duì)象列表,該對(duì)象列表與在每個(gè)各自圖塊中的像素處可見的對(duì)象相對(duì)應(yīng)。圖塊化引擎14傳遞用于存儲(chǔ)器頁面的請(qǐng)求至確認(rèn)該請(qǐng)求的參數(shù)管理單元6。參數(shù)管理單元6經(jīng)由圖1中的虛線向壓縮器12發(fā)送確認(rèn)和存儲(chǔ)器頁面被分配的細(xì)節(jié)。參數(shù)管理單元6只發(fā)送返回到圖塊化引擎14的確認(rèn)。這指示頁面已經(jīng)被分配。每當(dāng)存儲(chǔ)器頁面被來自壓縮器12的三角形數(shù)據(jù)填滿時(shí),對(duì)另外新的頁面的請(qǐng)求經(jīng)由圖塊化引擎14發(fā)送到參數(shù)管理單元6并且新的頁面以同樣的方式被分配。因?yàn)榇鎯?chǔ)器分配通過圖塊化引擎14,所以沒有對(duì)于壓縮器12的存儲(chǔ)器分配的拒絕。如果存儲(chǔ)器請(qǐng)求失敗,則信息只被信號(hào)發(fā)送至圖塊化引擎14,而不發(fā)送至壓縮器12。壓縮器不接收新的分配。一旦壓縮器12具有分配給他的一個(gè)或多個(gè)存儲(chǔ)器頁面,壓縮器就可以將三角形數(shù)據(jù)寫入存儲(chǔ)器8的那些分配的存儲(chǔ)器頁面中。對(duì)象不按特定順序被提供至圖塊化引擎14并且因此對(duì)象可以落入任何圖塊中。因此將被填滿的存儲(chǔ)器頁面可以包含用于多個(gè)圖塊的對(duì)象數(shù)據(jù)。圖塊化引擎14還能夠代表其本身發(fā)出存儲(chǔ)器分配請(qǐng)求并接收來自參數(shù)管理單元6的同意或拒絕響應(yīng)。一旦頁面已經(jīng)被分配至壓縮器12或當(dāng)前正在進(jìn)行處理的用于圖塊的圖塊化引擎14,掩碼就被創(chuàng)建以指示哪些宏圖塊(圖塊群)被已經(jīng)被分配的每個(gè)存儲(chǔ)器頁面中的數(shù)據(jù)引用。(在可替代的實(shí)施方式中可以產(chǎn)生位掩碼以用于與每個(gè)頁面而不是宏圖塊引用的圖塊相關(guān)聯(lián)的每個(gè)頁面。因此,掩碼引用包括至少一個(gè)圖塊(且更為通常地包括多個(gè)圖塊)的三角形區(qū)域。)隨著頁面填充,宏圖塊掩碼填充并且當(dāng)滿的時(shí)候,宏圖塊掩碼與存儲(chǔ)在存儲(chǔ)器8中的他的虛擬頁面地址一起被傳遞至參數(shù)管理單元6。然后參數(shù)管理單元6接入用于頁面的宏圖塊掩碼并且可以利用其確定哪些頁面將通過任何特定渲染而被釋放。應(yīng)當(dāng)理解的是上述過程具有兩個(gè)明顯的階段。第一個(gè)階段是存儲(chǔ)器頁面從空閑頁面的列表的移除。第二個(gè)階段是頁面向分配頁面的列表的添加。空閑頁面的列表和分配頁面的列表由參數(shù)管理單元6管理。當(dāng)頁面正被填充時(shí),不出現(xiàn)在任何列表中,但是不在空閑列表中會(huì)阻止其無意地被重新分配?,F(xiàn)在將更加詳細(xì)地描述宏圖塊掩碼的創(chuàng)建。如已經(jīng)提到的,圖塊化引擎14分配三角形至圖塊并確保他們被存儲(chǔ)在用于存儲(chǔ)器中各自圖塊的對(duì)象列表中。更具體地,圖塊化引擎14處理三角形并將他們添加至頂點(diǎn)塊中。一旦頂點(diǎn)塊被創(chuàng)建,就被寫入在一個(gè)頁面或多個(gè)頁面中由參數(shù)管理單元6分配給其的存儲(chǔ)器。頂點(diǎn)塊內(nèi)的頂點(diǎn)的邊界框提供頂點(diǎn)塊引用的宏圖塊。該信息提供宏圖塊在存儲(chǔ)器的特定頁面中所引用的掩碼。隨著頁面填充,宏圖塊掩碼也在填充。當(dāng)頂點(diǎn)塊完成頁面時(shí),掩碼完成,并且掩碼與其虛擬頁面地址一起通過圖塊化引擎14(即圖塊列表產(chǎn)生的地方)傳遞到參數(shù)管理單元6。在頂點(diǎn)塊已經(jīng)被正確地關(guān)聯(lián)到圖塊控制流中之后,以這種方式執(zhí)行以便頁面僅僅被傳回參數(shù)管理單元6。一旦頂點(diǎn)塊做好準(zhǔn)備,圖塊化引擎14掃描頂點(diǎn)塊覆蓋的圖塊。對(duì)于每個(gè)圖塊,圖塊化引擎14計(jì)算出哪些三角形是可見的,并且該信息與指向頂點(diǎn)塊的指針一起被寫入用于該圖塊的控制流中。針對(duì)每個(gè)圖塊建立圖塊列表,并且多個(gè)圖塊列表可以引用相同的頂點(diǎn)塊。頂點(diǎn)塊在任何時(shí)候都僅僅被寫入一次,即使其跨越屏幕的多個(gè)圖塊、或宏圖塊、或部分、或區(qū)域。在請(qǐng)求時(shí),用于圖塊列表的存儲(chǔ)器以64字節(jié)塊被分配。為了建立列表并知道什么時(shí)候新的塊需要分配,關(guān)于每個(gè)圖塊列表的狀態(tài)及其64字節(jié)塊的信息被存儲(chǔ)。分配是用于位于特定宏圖塊中的特定圖塊。當(dāng)執(zhí)行分配時(shí),該過程進(jìn)行以離開已經(jīng)由參數(shù)管理單元6分配至圖塊化引擎控制流產(chǎn)生器的當(dāng)前頁面。因?yàn)閴K被分配至圖塊,所述用于該頁的宏圖塊掩碼被更新。當(dāng)頁面中最后的塊被分配并且圖塊列表已經(jīng)被寫入存儲(chǔ)器時(shí),虛擬頁面地址及其的宏圖塊掩碼被傳回參數(shù)管理單元6。頁面因此可以包含用于任何圖塊的部分圖塊列表。圖塊位于特定的宏圖塊中。渲染系統(tǒng)將請(qǐng)求將被提供給管理渲染過程的z緩沖器。z緩沖器可以是外部z緩沖器或者內(nèi)部z緩沖器。在是外部z緩沖器的情況中,當(dāng)頁面被用于各種圖塊渲染時(shí),少量的存儲(chǔ)器頁面應(yīng)該是足夠的以保持設(shè)備功能。準(zhǔn)確的數(shù)量將是根據(jù)將被處理的圖像的復(fù)雜性和可用的頁面大小的設(shè)計(jì)選擇的關(guān)鍵。如果內(nèi)部z緩沖器被使用,那么z緩沖器從參數(shù)緩沖器分配。如果圖像具有16個(gè)宏圖塊,那么最小的參數(shù)緩沖器大小變得依賴于用于渲染的z緩沖器請(qǐng)求。下面的表1顯示了用于各種不同的屏幕大小的最小推薦的參數(shù)緩沖器大小(字節(jié)),其中x和y列顯示了在各自x和y方向中的像素的數(shù)量。針對(duì)無抗鋸齒(noanti-aliasing(noaa))、2x多重采樣抗鋸齒(2xmsaa)、4x多重采樣抗鋸齒(4xmsaa)和8x多重采樣抗鋸齒(8xmsaa)顯示了存儲(chǔ)器請(qǐng)求。當(dāng)使能抗鋸齒時(shí),每個(gè)像素深度采樣的數(shù)量增加了抗鋸齒因素。表1xynoaa2xmsaa4xmsaa8xmsaa6404801795840342784066918401321984010247684341760851968016875520335872001280102471270401409024028016640558694401920108011179840221958404422784088291840204820482244608044728320892928001784217608192819235667968071319552014262272002852290560當(dāng)在參數(shù)緩沖器中使用參數(shù)管理單元6管理存儲(chǔ)器時(shí),對(duì)于外部或者內(nèi)部z緩沖器,控制器需要確保系統(tǒng)中足夠的頁面是可用的。這意味著,如果在開始處理圖像之前或在處理圖像的半途中(partwaythrough)空閑頁面的列表太小,那么必須開始渲染。因此,當(dāng)空閑頁面的數(shù)量降到預(yù)定閾值以下時(shí),可以開始渲染。為了減少自己存儲(chǔ)器占用的空間,空閑列表項(xiàng)目的表格在存儲(chǔ)器中被打包??偟目臻g的24個(gè)位被分配,但是僅僅20個(gè)位通常被用于簡(jiǎn)化打包:位0-19被用于存儲(chǔ)及位20-23被作為4個(gè)空閑位。實(shí)際上,存儲(chǔ)器空間以在系統(tǒng)啟動(dòng)時(shí)被初始化的先進(jìn)先出(fifo)方式進(jìn)行管理。該初始化包括設(shè)置項(xiàng)目的讀取偏移、寫入偏移、大小和基址。在初始化后fifo的充滿與可用的存儲(chǔ)器頁面的總數(shù)相關(guān)(通常用于4kb的大小)。當(dāng)分配存儲(chǔ)器頁面時(shí),其地址從fifo讀取而當(dāng)釋放存儲(chǔ)器頁面時(shí),其地址被寫回到fifo。表2顯示了本發(fā)明的實(shí)施方式的存儲(chǔ)器中典型的空閑列表項(xiàng)目以其被寫入fifo的順序的打包。表2當(dāng)分配已經(jīng)完成時(shí),用于所分配的存儲(chǔ)器頁面的分配列表被添加。當(dāng)至每個(gè)頁面的數(shù)據(jù)分配完成時(shí),頁面被添加至參數(shù)管理單元6中的分配列表。當(dāng)頁面已經(jīng)被分配時(shí),isp2(參見圖1)記錄頁面id(虛擬地址)。當(dāng)頁面已經(jīng)被充滿時(shí),isp2通知參數(shù)管理單元6頁面已經(jīng)滿了并且還提供定義頁面中引用的宏圖塊的掩碼。壓縮器12和圖塊化引擎14也需要以相似方式操作的存儲(chǔ)器頁面。因此系統(tǒng)中頁面被消耗的方式如下:1.響應(yīng)于頁面請(qǐng)求從參數(shù)管理單元6接收將被分配的頁面。2.頁面被請(qǐng)求他的模塊(isp2、壓縮器12、圖塊化引擎14)填充。當(dāng)被消耗時(shí),在頁面中模塊記錄可以分別存儲(chǔ)掩碼的頁面內(nèi)的數(shù)據(jù)引用的宏圖塊掩碼。3.一旦頁面被充滿,掩碼與頁面的id(虛擬地址)一起被返回至參數(shù)管理單元6。一旦掩碼被返回至參數(shù)管理單元6,參數(shù)管理單元6就執(zhí)行以下動(dòng)作:4.id與頁面的掩碼一起被存儲(chǔ)在由參數(shù)管理單元6接入的頁面分配列表中。5.參數(shù)管理單元6中的內(nèi)部計(jì)數(shù)器利用與頁面相關(guān)的信息進(jìn)行更新,其中當(dāng)宏圖塊被渲染時(shí)該頁面將被釋放并返回至空閑列表。表3顯示了本發(fā)明的實(shí)施方式中的頁面分配列表的存儲(chǔ)器打包。分配列表的結(jié)構(gòu)包括虛擬頁面地址和頁面掩碼。這包括用于掩碼的16個(gè)位,用于指示哪些宏圖塊被引用的每個(gè)宏圖塊的1個(gè)位,用于數(shù)據(jù)的17個(gè)位,以及6個(gè)未使用的位,即至少39個(gè)位。該存儲(chǔ)器空間也按fifo方式進(jìn)行存儲(chǔ)并且當(dāng)系統(tǒng)接通時(shí)通過設(shè)置讀取偏移、寫人偏移、基址和大小也被初始化。表3中顯示了一種結(jié)構(gòu)。表3在開始時(shí),在分配列表fifo中應(yīng)該沒有數(shù)據(jù)。當(dāng)每個(gè)分配完成時(shí),然后有關(guān)的數(shù)據(jù)通過參數(shù)管理單元6被寫入fifo。該系統(tǒng)中的存儲(chǔ)器再分配在宏圖塊基礎(chǔ)上發(fā)生。當(dāng)宏圖塊被渲染時(shí),在該宏圖塊中用于對(duì)象的對(duì)象數(shù)據(jù)將不再被存儲(chǔ)在存儲(chǔ)器中,所以存儲(chǔ)器的那些部分可以被釋放(再分配)。但是,因?yàn)闆]有全局列表和已經(jīng)被改變的數(shù)據(jù)結(jié)構(gòu),所以頁面可以與多個(gè)宏圖塊相關(guān)聯(lián),并因此不止一個(gè)的宏圖塊可能需要被渲染以便釋放存儲(chǔ)器的頁面。因此,解析所分配的頁面的全局列表以確定哪些頁面可以通過特定渲染被釋放是必要的。當(dāng)宏圖塊已經(jīng)被渲染時(shí),參數(shù)管理單元6接收指示宏圖塊id的信號(hào)。這使參數(shù)管理單元6能夠解析所分配的頁面列表并且在每個(gè)存儲(chǔ)器頁面中清除用于該宏圖塊的掩碼位。對(duì)于掩碼位變空的每個(gè)頁面,該頁面可以被釋放并被添加至空閑列表。在渲染每個(gè)宏圖塊后,通過分配列表的解析被執(zhí)行。對(duì)于x個(gè)宏圖塊,每次渲染將請(qǐng)求宏圖塊的x次解析。例如,對(duì)于具有16個(gè)宏圖塊的系統(tǒng),每次渲染將引起宏圖塊的16次解析。解析的請(qǐng)求可以排成隊(duì)列并一起被處理,以便如果兩個(gè)或更多的宏圖塊緊接著完成渲染,則與這些都相關(guān)的位可以同時(shí)被清除。當(dāng)整個(gè)屏幕的渲染完成時(shí)(并且系統(tǒng)通常被布置以便這甚至在局部渲染上發(fā)生)所有分配的存儲(chǔ)器都被釋放。因此,參數(shù)管理單元可以在渲染到0之后設(shè)置所分配的fifo中的項(xiàng)目的數(shù)量。當(dāng)存儲(chǔ)器被分配時(shí),被分配給分配的列表。當(dāng)被再次分配時(shí),該列表被引用并被用于釋放該存儲(chǔ)器。從同一個(gè)分配列表釋放并分配存儲(chǔ)器是不可能的。分配列表因此存在兩次:一次用于3d渲染階段(再分配),以及一次用于頁面分配階段(分配)。同一個(gè)列表因此被用于不同的環(huán)境(或功能)。但是其不能被同時(shí)用于分配和再分配功能。因此多個(gè)列表被維護(hù)。在分配期間建立一個(gè)列表。當(dāng)計(jì)劃渲染時(shí),該列表被移到再分配階段。以便可以執(zhí)行進(jìn)一步的分配,新的分配列表被分配以及新的分配被添加到該列表。如上所述,用于z信息的深度的存儲(chǔ)的存儲(chǔ)器(z緩沖器)還可以從相同的存儲(chǔ)器被分配以作為用于其他參數(shù)。這必須在沒有用盡參數(shù)緩沖存儲(chǔ)器及試圖分配存儲(chǔ)器到z緩沖器的情況下完成。這通過跟蹤空閑列表中空閑存儲(chǔ)器的數(shù)量而達(dá)到。當(dāng)渲染圖形時(shí)頁面使用的跟蹤和這些頁面的釋放可以通過利用在每個(gè)宏圖塊中發(fā)生的對(duì)象的某些認(rèn)知被改進(jìn)。優(yōu)選地,對(duì)象具有定義在其周圍的邊界框,該邊界框?qū)儆诙鄠€(gè)圖塊。保持每個(gè)宏圖塊內(nèi)邊界框的數(shù)量的跟蹤使系統(tǒng)能夠保持對(duì)多少存儲(chǔ)器頁面將通過渲染被釋放的跟蹤,如1個(gè)或n個(gè)宏圖塊。用于實(shí)施這個(gè)過程的代碼的示例如下示出:如果考慮到宏圖塊的每個(gè)可能的順序,將維護(hù)極其大量的頁面數(shù)。但是,使用以上示例,通過確定宏圖塊使用的空間位置,發(fā)生在某些場(chǎng)景中的宏圖塊的實(shí)際分布可以被維護(hù)。圖2顯示了說明由用于不同的邊界框大小的宏圖塊引用的頁面的百分比的圖示。在圖2中,在x軸上顯示了邊界框大小(x乘y)及頁面的百分比在y軸上顯示。多個(gè)不同的邊界框可以被定義用于宏圖塊并且這些在下面的表4中顯示。在表4的左邊欄中顯示了邊界框n。如可見的,包括覆蓋整個(gè)圖像的從16個(gè)1×1宏圖塊到單個(gè)4×4邊界框宏圖塊的范圍。這些邊界框使用的邊界或計(jì)數(shù)器b的數(shù)量在表4的右邊欄中顯示。每個(gè)計(jì)數(shù)器需要支持所有存儲(chǔ)器頁面的能力。因此,對(duì)4g字節(jié)(gbyte)范圍的16k字節(jié)(kbyte)頁面,每個(gè)計(jì)數(shù)器將需要18個(gè)位。表4邊界框(n宏圖塊)邊界或計(jì)數(shù)器的數(shù)量(b)1x1161x2161x482x292x463x344x41總計(jì)60在以上描述的系統(tǒng)中,所有存儲(chǔ)器分配最初來自圖塊化引擎14。因此存儲(chǔ)器不足事件由圖塊化引擎14處理。壓縮器12和isp2不具有存儲(chǔ)器不足事件的認(rèn)知。如果發(fā)生存儲(chǔ)器不足事件,則參數(shù)管理單元6響應(yīng)于來自圖塊化引擎14的請(qǐng)求將立即阻止存儲(chǔ)器分配。這將結(jié)束數(shù)據(jù)的繼續(xù)圖塊化。然后參數(shù)管理單元6將在存儲(chǔ)器中產(chǎn)生宏圖塊數(shù)組用于與每個(gè)宏圖塊的起始地址一起定義請(qǐng)求渲染以釋放一些存儲(chǔ)器的宏圖塊。這些宏圖塊然后被渲染并且釋放存儲(chǔ)器。渲染的宏圖塊的數(shù)量將依賴于已經(jīng)圖塊化的圖像數(shù)據(jù)。此時(shí),可能有三個(gè)選擇。第一,全部場(chǎng)景的局部渲染可以使用所有的宏圖塊執(zhí)行。這將使存儲(chǔ)器空閑??商娲兀梢詧?zhí)行環(huán)境切換以允許即將進(jìn)行釋放資源或者解決渲染依賴性的其他渲染,例如同步。其他選擇將通過在別處分配存儲(chǔ)器以增強(qiáng)參數(shù)緩沖器。這將允許繼續(xù)進(jìn)行分配,但是在許多情況中這將是不可能的。將理解根據(jù)以上本發(fā)明的系統(tǒng)和方法在系統(tǒng)中使存儲(chǔ)器能夠被有效地分配和釋放,不需要用于覆蓋不止一個(gè)的圖塊或宏圖塊的對(duì)象的全局列表。這通過使用每個(gè)存儲(chǔ)器頁面引用的宏圖塊的掩碼來完成。因此,參數(shù)管理單元可以確定哪些渲染將釋放存儲(chǔ)器的特定頁面并可以有效地管理渲染過程以確保一直有充足的用于寫入對(duì)象數(shù)據(jù)的存儲(chǔ)器空間。當(dāng)前第1頁12
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1