專利名稱:紋理處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在計(jì)算機(jī)圖形圖像領(lǐng)域和其它領(lǐng)域中使用的用來(lái)進(jìn)行雙線性過(guò)濾的紋理處理器。
背景技術(shù):
在最近幾年,許多游戲機(jī)和汽車導(dǎo)航系統(tǒng)使用紋理繪圖,借助于該紋理繪圖對(duì)物體繪制圖案,以得到真實(shí)圖像。在紋理繪圖中,計(jì)算與構(gòu)成物體的每個(gè)象素的(X,Y)坐標(biāo)相對(duì)應(yīng)的紋理坐標(biāo)(U,V),從而根據(jù)紋理坐標(biāo)(U,V)由在兩維柵格上的紋理取出和再現(xiàn)紋理數(shù)據(jù)。
紋理坐標(biāo)(U,V)具有小數(shù),并因而該坐標(biāo)不會(huì)總是與在紋理的兩維柵格上的坐標(biāo)重合。用來(lái)獲得紋理數(shù)據(jù)的方法的例子包括點(diǎn)抽樣,其中紋理坐標(biāo)(U,V)被四舍五入成整數(shù),并且取出在兩維柵格上的紋理數(shù)據(jù);及雙線性過(guò)濾,其中使用紋理坐標(biāo)(U,V)的小數(shù)計(jì)算在四個(gè)相鄰點(diǎn)處的紋理數(shù)據(jù)的平均值。即使紋理坐標(biāo)(U,V)不能被四舍五入成整數(shù),雙線性過(guò)濾也允許紋理數(shù)據(jù)的內(nèi)插。因而,即使在改變物體形狀或旋轉(zhuǎn)物體的情況下,雙線性過(guò)濾通常也比點(diǎn)抽樣提供更高的圖像質(zhì)量。
圖19表示雙線性過(guò)濾的概念。在圖19中,T是由紋理坐標(biāo)(U,V)指示的位置,p是U的小數(shù),q是V的小數(shù),0≤p<1及0≤q<1。T0,T1,T2和T3是在兩維柵格上與T最近的各自四個(gè)點(diǎn)處的紋理數(shù)據(jù)。假定T的整數(shù)部分是(u,v),T0的坐標(biāo)是(u,v),T1的坐標(biāo)是(u+1,v),T2的坐標(biāo)是(u,v+1),及T3的坐標(biāo)是(u+1,v+1)。
雙線性過(guò)濾使用如下公式T=(1-p)×(1-q)×T0+p×(1-q)×T1+(1-p)×q×T2+p×q×T3使用該公式計(jì)算T0、T1、T2及T3的RGB值。
如上所述,雙線性過(guò)濾需要四個(gè)點(diǎn)處的紋理數(shù)據(jù),以便創(chuàng)建一個(gè)紋理。為了用LSI進(jìn)行紋理繪圖,紋理一次被存儲(chǔ)在一個(gè)內(nèi)部存儲(chǔ)器中,并且然后被參考。在雙線性過(guò)濾的情況下,為了創(chuàng)建一個(gè)紋理必須參考內(nèi)部存儲(chǔ)器四次。因此,處理速度很慢。
為了以高速進(jìn)行雙線性過(guò)濾,提出了一種技術(shù),其中一個(gè)紋理被劃分成在兩維柵格上分別具有坐標(biāo)(2m,2n)、(2m+1,2n)、(2m,2n+1)及(2m+1,2n+1)的數(shù)據(jù)組(其中m和n是整數(shù)),并且所劃分的紋理數(shù)據(jù)組被存儲(chǔ)在各自四個(gè)存儲(chǔ)器中,從而在雙線性過(guò)濾期間同時(shí)從四個(gè)存儲(chǔ)器讀出這些紋理數(shù)據(jù)組(例如日本未審查專利出版物(Kokai)No.11-154237)。
發(fā)明內(nèi)容
在上述常規(guī)技術(shù)中,必須把紋理數(shù)據(jù)劃分成四個(gè)數(shù)據(jù)組,從而這些所劃分的數(shù)據(jù)組被分別存儲(chǔ)在相關(guān)存儲(chǔ)器中。因此,在其中紋理數(shù)據(jù)的多個(gè)象素能同時(shí)經(jīng)一條數(shù)據(jù)總線被傳輸?shù)酱鎯?chǔ)器的情況下,例如出現(xiàn)不能以最大速度進(jìn)行傳輸?shù)膯?wèn)題。
例如,如果一個(gè)紋理繪圖裝置處理16位(/象素)紋理數(shù)據(jù)和32位(/象素)紋理數(shù)據(jù),則在內(nèi)部存儲(chǔ)器中的每個(gè)地址中存儲(chǔ)的構(gòu)成數(shù)據(jù)的位數(shù)通常是32。如果用來(lái)把紋理數(shù)據(jù)傳輸?shù)絻?nèi)部存儲(chǔ)器的數(shù)據(jù)總線是用于32位,則一次傳輸16位紋理數(shù)據(jù)的兩個(gè)象素。然而,在常規(guī)技術(shù)中,紋理數(shù)據(jù)的這兩個(gè)象素需要存儲(chǔ)在不同的存儲(chǔ)器中。因此,讀/修改/寫(xiě)處理也被包括在存儲(chǔ)器中。結(jié)果,紋理數(shù)據(jù)不能以最大速度傳輸,并且數(shù)據(jù)總線的傳輸速度很低。
另外,由于在常規(guī)技術(shù)中在雙線性過(guò)濾期間總是從四個(gè)存儲(chǔ)器讀出紋理數(shù)據(jù),所以在存儲(chǔ)器部分中出現(xiàn)高功率消耗的另一個(gè)問(wèn)題。
因此本發(fā)明的一個(gè)目的在于,能夠?qū)崿F(xiàn)紋理數(shù)據(jù)到紋理存儲(chǔ)器的高速傳輸,從而在用來(lái)進(jìn)行雙線性過(guò)濾的紋理處理器中以高速進(jìn)行雙線性過(guò)濾。
為了解決上述問(wèn)題,根據(jù)本發(fā)明,一種紋理處理器包括第一、第二、第三及第四紋理存儲(chǔ)器,用來(lái)存儲(chǔ)紋理數(shù)據(jù);一個(gè)存儲(chǔ)器寫(xiě)部分,用來(lái)控制在第一至第四紋理存儲(chǔ)器中的供給紋理數(shù)據(jù)的寫(xiě);一個(gè)存儲(chǔ)器讀部分,用來(lái)控制從第一至第四紋理存儲(chǔ)器靠近紋理坐標(biāo)的四個(gè)點(diǎn)處的紋理數(shù)據(jù)的讀;及一個(gè)雙線性過(guò)濾計(jì)算部分,用來(lái)使用由存儲(chǔ)器讀部分從第一至第四紋理存儲(chǔ)器讀出的四個(gè)點(diǎn)處的紋理數(shù)據(jù),進(jìn)行雙線性過(guò)濾計(jì)算。在本紋理處理器中,在單次寫(xiě)操作中,存儲(chǔ)器寫(xiě)部分按能夠一次傳輸且能寫(xiě)在一個(gè)地址中的數(shù)量,把紋理數(shù)據(jù)共同寫(xiě)在第一至第四紋理存儲(chǔ)器之一中,并且如果要寫(xiě)的紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù),則紋理數(shù)據(jù)順序?qū)懺诘谝?、第二、第三及第四紋理存儲(chǔ)器中,而如果V坐標(biāo)是奇數(shù),則紋理數(shù)據(jù)順序?qū)懺诘谌?、第四、第一及第二紋理存儲(chǔ)器中。
在本處理器中,能夠一次傳輸且能寫(xiě)在一個(gè)地址中的數(shù)量的紋理數(shù)據(jù)被寫(xiě)在第一至第四紋理存儲(chǔ)器之一中。因而,消除了在紋理數(shù)據(jù)傳輸期間的不必要處理,并且以通過(guò)利用數(shù)據(jù)總線的傳輸能力實(shí)現(xiàn)的速度寫(xiě)數(shù)據(jù)。另外,如果紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù),則紋理數(shù)據(jù)順序?qū)懺诘谝?、第二、第三及第四紋理存儲(chǔ)器中,而如果V坐標(biāo)是奇數(shù),則紋理數(shù)據(jù)順序?qū)懺诘谌?、第四、第一及第二紋理存儲(chǔ)器中。因而,其U坐標(biāo)相同而其V坐標(biāo)彼此相差“1”的紋理數(shù)據(jù)組總是被存儲(chǔ)在不同的紋理存儲(chǔ)器中。這允許在雙線性過(guò)濾期間一次讀出在四個(gè)點(diǎn)處的必要紋理數(shù)據(jù)。
在紋理處理器中,在讀數(shù)據(jù)時(shí),存儲(chǔ)器讀部分能夠關(guān)于對(duì)其訪問(wèn)是不必要的第一至第四紋理存儲(chǔ)器的至少一個(gè),可以使芯片賦能無(wú)效。可選擇地,對(duì)于對(duì)其訪問(wèn)是不必要的第一至第四紋理存儲(chǔ)器的至少一個(gè),存儲(chǔ)器讀部分可以停止時(shí)鐘的輸入。于是,降低紋理處理器的功率消耗。
在紋理處理器中,存儲(chǔ)器寫(xiě)部分最好接收指示供給的紋理數(shù)據(jù)的首部V坐標(biāo)是偶數(shù)還是奇數(shù)的V線模式,并且按照V線模式確定紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù)還是奇數(shù)。
在紋理處理器中,存儲(chǔ)器寫(xiě)部分可以被配置成這樣,從而用于數(shù)據(jù)寫(xiě)的開(kāi)始地址是可設(shè)置的??蛇x擇地,存儲(chǔ)器寫(xiě)部分可以把供給的紋理數(shù)據(jù)移動(dòng)一個(gè)規(guī)定的移動(dòng)值,并且把移動(dòng)的紋理數(shù)據(jù)寫(xiě)在第一至第四紋理存儲(chǔ)器中。
根據(jù)本發(fā)明的紋理處理器最好還包括一個(gè)存儲(chǔ)器數(shù)據(jù)移動(dòng)控制部分,用來(lái)把第一紋理數(shù)據(jù)組的、具有最大V坐標(biāo)的紋理數(shù)據(jù)移動(dòng)到一個(gè)位置,在該位置第二紋理數(shù)據(jù)組的、具有最小V坐標(biāo)的紋理數(shù)據(jù)被存儲(chǔ)在第一至第四紋理存儲(chǔ)器中,當(dāng)?shù)诙y理數(shù)據(jù)組寫(xiě)在其中存儲(chǔ)第一紋理數(shù)據(jù)組的第一至第四紋理存儲(chǔ)器中時(shí),緊跟在第一紋理數(shù)據(jù)組之后將使用第二紋理數(shù)據(jù)組。
在紋理處理器中,存儲(chǔ)器寫(xiě)部分最好把除第二紋理數(shù)據(jù)組的、具有最小V坐標(biāo)的紋理數(shù)據(jù)之外的紋理數(shù)據(jù)寫(xiě)在第一紋理數(shù)據(jù)組的、具有最大V坐標(biāo)的紋理數(shù)據(jù)的隨后位置,當(dāng)?shù)诙y理數(shù)據(jù)組寫(xiě)在其中存儲(chǔ)第一紋理數(shù)據(jù)組的第一至第四紋理存儲(chǔ)器中時(shí),緊跟在第一紋理數(shù)據(jù)組之后將使用第二紋理數(shù)據(jù)組,并且存儲(chǔ)器讀部分參照其中存儲(chǔ)第一紋理數(shù)據(jù)組的、具有最大V坐標(biāo)的紋理數(shù)據(jù)的位置,讀第二紋理數(shù)據(jù)組的紋理數(shù)據(jù)。
在紋理處理器中,如果紋理數(shù)據(jù)由每象素16位組成,則最好傳輸兩個(gè)紋理數(shù)據(jù),而如果紋理數(shù)據(jù)由每象素32位組成,則最好傳輸一個(gè)紋理數(shù)據(jù)。
根據(jù)本發(fā)明,在其中紋理數(shù)據(jù)的多個(gè)象素經(jīng)一根數(shù)據(jù)總線一次傳輸?shù)那闆r下,以利用數(shù)據(jù)總線的傳輸能力得到的速度把紋理數(shù)據(jù)寫(xiě)在紋理存儲(chǔ)器中。在雙線性過(guò)濾期間,從紋理存儲(chǔ)器一次讀出四個(gè)必需的紋理數(shù)據(jù)。結(jié)果,以高速傳輸紋理數(shù)據(jù)并且也以高速進(jìn)行雙線性過(guò)濾。
圖1是方塊圖,表示根據(jù)本發(fā)明第一和第二實(shí)施例的紋理處理器的配置。
圖2是表示在圖1中表示的存儲(chǔ)器寫(xiě)部分的內(nèi)部配置的圖。
圖3是用來(lái)解釋在圖2中表示的存儲(chǔ)器寫(xiě)部分的操作的表格,并且表示用來(lái)確定要寫(xiě)在存儲(chǔ)器中的紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù)還是奇數(shù)的要求。
圖4是用來(lái)解釋在圖2中表示的存儲(chǔ)器寫(xiě)部分的操作的表格,并且表示用來(lái)確定寫(xiě)使能的要求。
圖5是表示存儲(chǔ)器寫(xiě)操作的定時(shí)圖。
圖6是表示在圖1中表示的存儲(chǔ)器讀部分的內(nèi)部配置的圖。
圖7是用來(lái)解釋在圖1中表示的存儲(chǔ)器讀部分的操作的表格,并且表示由一個(gè)T0地址發(fā)生器產(chǎn)生的存儲(chǔ)器地址。
圖8是用來(lái)解釋在圖1中表示的存儲(chǔ)器讀部分的操作的表格,并且表示選擇信號(hào)。
圖9是用來(lái)解釋在圖1中表示的存儲(chǔ)器讀部分的操作的表格,并且表示芯片賦能。
圖10是用來(lái)解釋紋理選擇器的操作的表格,并且表示紋理數(shù)據(jù)T0至T3。
圖11A和11B是表示在第一實(shí)施例中紋理數(shù)據(jù)的寫(xiě)和讀操作的概念的表格。
圖12是方塊圖,表示根據(jù)本發(fā)明第二實(shí)施例的存儲(chǔ)器寫(xiě)部分的配置。
圖13是用來(lái)解釋圖12中表示的存儲(chǔ)器寫(xiě)部分的操作的表格,并且表示用來(lái)確定在紋理數(shù)據(jù)組的V坐標(biāo)以奇數(shù)開(kāi)始的情況下要寫(xiě)在存儲(chǔ)器中的紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù)還是奇數(shù)的要求。
圖14是方塊圖,表示根據(jù)本發(fā)明第三實(shí)施例的紋理處理器的配置。
圖15表示在劃分和傳輸紋理數(shù)據(jù)時(shí)數(shù)據(jù)劃分例子的概念。
圖16是定時(shí)圖,表示在紋理存儲(chǔ)器中數(shù)據(jù)移動(dòng)的例子。
圖17是方塊圖,表示根據(jù)本發(fā)明第四實(shí)施例的紋理處理器的配置。
圖18A至18C表示其中所劃分的紋理數(shù)據(jù)組按順序存儲(chǔ)在紋理存儲(chǔ)器中的狀態(tài)。
圖19表示雙線性過(guò)濾的概念。
具體實(shí)施例方式
以下,將參照附圖描述本發(fā)明的實(shí)施例。
實(shí)施例1圖1是方塊圖,表示根據(jù)本發(fā)明第一實(shí)施例的紋理處理器的配置。在圖1中,第一、第二、第三及第四紋理存儲(chǔ)器1a、1b、1c及1d是用來(lái)存儲(chǔ)紋理數(shù)據(jù)的存儲(chǔ)器。在該實(shí)施例中,存儲(chǔ)器的每一個(gè)由32位×256字構(gòu)成。紋理處理器被配置成允許一次傳輸32位數(shù)據(jù)。紋理存儲(chǔ)器1a至1d在時(shí)鐘的上升沿接收寫(xiě)使能、地址或數(shù)據(jù)。
存儲(chǔ)器寫(xiě)部分2控制從外部存儲(chǔ)裝置等裝載在紋理存儲(chǔ)器1a至1d中的紋理數(shù)據(jù)的寫(xiě),并且輸出寫(xiě)數(shù)據(jù)DI、寫(xiě)地址WADa、WADb、WADc及WADd和寫(xiě)使能NWEa、NWEb、NWEc及NWEd。在這個(gè)實(shí)施例中,供給的紋理數(shù)據(jù)和寫(xiě)數(shù)據(jù)DI的每一個(gè)由32位組成,并且寫(xiě)地址WADa至WADd的每一個(gè)由8位組成。對(duì)于寫(xiě)使能NWEa至NWEd,“0”指示寫(xiě)狀態(tài),而“1”指示讀狀態(tài)。
一個(gè)存儲(chǔ)器讀部分3根據(jù)供給的紋理坐標(biāo)(已經(jīng)四舍五入成整數(shù))控制從紋理存儲(chǔ)器1a至1d讀雙線性過(guò)濾所必需的紋理數(shù)據(jù),并且輸出讀地址RADa、RADb、RADc及RADd和芯片賦能NCEa、NCEb、NCEc、及NCEd。在這個(gè)實(shí)施例中,讀地址RADa至RADd的每一個(gè)由8位組成。對(duì)于芯片賦能NCEa至NCEd,“0”指示使存儲(chǔ)器1a至1d進(jìn)入操作,而“1”指示暫停存儲(chǔ)器1a至1d。當(dāng)存儲(chǔ)器1a至1d被暫停時(shí),功率消耗降低。
提供與各自紋理存儲(chǔ)器1a至1d相關(guān)的選擇器4a、4b、4c及4d。在紋理數(shù)據(jù)寫(xiě)在紋理存儲(chǔ)器1a至1d中的時(shí)段內(nèi),選擇器4a至4d選擇從存儲(chǔ)器寫(xiě)部分2輸出的寫(xiě)地址WADa至WADd。在一個(gè)雙線性過(guò)濾計(jì)算時(shí)段內(nèi),選擇器4a至4d選擇從存儲(chǔ)器讀部分3輸出的讀地址RADa至RADd,并且分別輸出所選擇的地址RADa至RADd作為存儲(chǔ)器地址ADa、ADb、ADc及ADd。
一個(gè)紋理選擇器5從自紋理存儲(chǔ)器1a至1d讀出的數(shù)據(jù)DOa、DOb、DOc及DOd中,選擇和輸出在圖19中表示的雙線性過(guò)濾計(jì)算所必需的四個(gè)點(diǎn)處的紋理數(shù)據(jù)T0至T3。一個(gè)雙線性過(guò)濾計(jì)算部分6使用從紋理選擇器5輸出的在四個(gè)點(diǎn)處的選擇紋理數(shù)據(jù)T0至T3,進(jìn)行雙線性過(guò)濾計(jì)算,并且輸出雙線性過(guò)濾數(shù)據(jù)。這種雙線性過(guò)濾數(shù)據(jù)被寫(xiě)在未示出的幀存儲(chǔ)器的與描繪坐標(biāo)(X,Y)相對(duì)應(yīng)的一個(gè)區(qū)域中。在幀存儲(chǔ)器中的目標(biāo)數(shù)據(jù)用諸如顯示監(jiān)視器之類的顯示裝置顯示。
以下,將具體描述存儲(chǔ)器寫(xiě)部分2的配置和操作。
圖2是表示在圖1中表示的存儲(chǔ)器寫(xiě)部分2的內(nèi)部配置的圖。在圖2中,一個(gè)控制計(jì)數(shù)器7產(chǎn)生一個(gè)寫(xiě)計(jì)數(shù)值wcnt,并且由一個(gè)加法器8、一個(gè)選擇器9及一個(gè)寄存器10構(gòu)成。加法器8把“1”加到寄存器10的值上。選擇器9在開(kāi)始信號(hào)是“0”時(shí)選擇加法器8的結(jié)果,而當(dāng)開(kāi)始信號(hào)是“1”時(shí)選擇“0”。寄存器10是一個(gè)用來(lái)存儲(chǔ)來(lái)自選擇器9的輸出的10位觸發(fā)器。寄存器10的值用作寫(xiě)計(jì)數(shù)值wcnt。
在這個(gè)實(shí)施例中,在數(shù)據(jù)的名稱之后的“[]”,例如“wcnt[9:0]”,指示數(shù)據(jù)的位置。具體地說(shuō),[i:j]代表從第i位到第j位的連續(xù)(i-j+1)位。例如,wcnt[9:0]代表從數(shù)據(jù)wcnt的第9位到第0位的連續(xù)10位。同樣,[i]代表數(shù)據(jù)的第i位的一位。例如,wcnt
代表數(shù)據(jù)wcnt的第0位,而wcnt[1]代表數(shù)據(jù)wcnt的第一位。
一個(gè)邏輯電路19a得到wcnt
和wcnt[1]的邏輯和,并且輸出得到的邏輯和作為數(shù)據(jù)nwcnt00。僅當(dāng)wcnt[1:0]=00(二進(jìn)制數(shù))時(shí),數(shù)據(jù)nwcnt00是“0”。同樣,一個(gè)邏輯電路19b得到wcnt
的邏輯非與wcnt[1]的邏輯和,并且輸出得到的邏輯和作為數(shù)據(jù)nwcnt01。僅當(dāng)wcnt[1:0]=01(二進(jìn)制數(shù))時(shí),數(shù)據(jù)nwcnt01是“0”。一個(gè)邏輯電路19c得到wcnt
與wcnt[1]的邏輯非的邏輯和,并且輸出得到的邏輯和作為數(shù)據(jù)nwcnt10。僅當(dāng)wcnt[1:0]=10(二進(jìn)制數(shù))時(shí),數(shù)據(jù)nwcnt10是“0”。一個(gè)邏輯電路19d得到wcnt
和wcnt[1]的邏輯與的邏輯非,并且輸出得到的邏輯非作為數(shù)據(jù)nwcnt11。僅當(dāng)wcnt[1:0]=11(二進(jìn)制數(shù))時(shí),數(shù)據(jù)nwcnt11是“0”。
一個(gè)寫(xiě)使能發(fā)生器11根據(jù)紋理數(shù)據(jù)的位數(shù)(每象素)和寬度及寫(xiě)計(jì)數(shù)值wcnt[9:0],把數(shù)據(jù)nwcnt00、nwcnt01、nwcnt10及nwcnt11的一個(gè)分別選作寫(xiě)使能NWEa、NWEb、NWEc或NWEd。圖3和4表示用來(lái)選擇寫(xiě)使能NWEa至NWEd的要求的例子。從寫(xiě)使能發(fā)生器11輸出的寫(xiě)使能NWEa至NWEd存儲(chǔ)在各自寄存器12至15中,并且被確定。
寫(xiě)使能NWEa至NWEd這樣產(chǎn)生,從而當(dāng)要寫(xiě)的紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù)時(shí),按紋理存儲(chǔ)器1a→1b→1c→1d→1a...的順序進(jìn)行寫(xiě),而當(dāng)V坐標(biāo)是奇數(shù)時(shí),按1c→1d→1a→1b→1c...的順序進(jìn)行寫(xiě)。
就是說(shuō),根據(jù)圖3中表示的要求確定要寫(xiě)的紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù)還是奇數(shù)。例如,如果紋理的位數(shù)是16(位/象素)并且寬度是8(象素),則能傳輸32位數(shù)據(jù)。因而,通過(guò)進(jìn)行存儲(chǔ)器寫(xiě)操作一次而寫(xiě)紋理數(shù)據(jù)的兩個(gè)象素。為了把紋理數(shù)據(jù)的八個(gè)象素存儲(chǔ)在一個(gè)存儲(chǔ)器中,寫(xiě)操作需要進(jìn)行四次。具體地說(shuō),每當(dāng)進(jìn)行總共進(jìn)行四次的寫(xiě)操作時(shí),在偶數(shù)與奇數(shù)之間切換V坐標(biāo),從而當(dāng)wcnt[2]=0時(shí),V坐標(biāo)是偶數(shù),而當(dāng)wcnt[2]=1時(shí),V坐標(biāo)是奇數(shù)。
然后,如圖4中所示,依據(jù)V坐標(biāo)是偶數(shù)還是奇數(shù),切換寫(xiě)使能NWEa至NWEd。
寄存器16是一個(gè)8位觸發(fā)器,并且存儲(chǔ)wcnt[9:2],即寫(xiě)計(jì)數(shù)值的八個(gè)最高有效位。寄存器16的值用作由寫(xiě)地址WADa至WADd共享的數(shù)據(jù)。寫(xiě)地址WADa至WADd使用wcnt[9:2]的值,并因而每當(dāng)進(jìn)行總共進(jìn)行四次的存儲(chǔ)器寫(xiě)操作時(shí)增加“1”。寄存器17是一個(gè)32位觸發(fā)器,并且存儲(chǔ)供給的紋理數(shù)據(jù)。寄存器17的值被作為寫(xiě)數(shù)據(jù)DI輸出。一個(gè)寫(xiě)終止確定部分18監(jiān)視寫(xiě)計(jì)數(shù)值wcnt[9:0],并且當(dāng)存儲(chǔ)器寫(xiě)操作的數(shù)量達(dá)到處理所必需的給定數(shù)量時(shí),存儲(chǔ)器寫(xiě)操作終止。
圖5是表示存儲(chǔ)器寫(xiě)操作的定時(shí)圖。在圖5中表示的例子中,紋理數(shù)據(jù)的位數(shù)是16(位/象素),并且寬度是8(象素)。如圖5中所示,在其期間寫(xiě)地址WADa至WADd是“0”的時(shí)段中,要寫(xiě)的紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù),并且按NWEa→NWEb→NWEc→NWEd的順序維持寫(xiě)使能NWEa至NWEd。因而,按第一紋理存儲(chǔ)器1a→第二紋理存儲(chǔ)器1b→第三紋理存儲(chǔ)器1c→第四紋理存儲(chǔ)器1d的順序進(jìn)行在第一至第四紋理存儲(chǔ)器1a至1d中的寫(xiě)操作。另一方面,在其期間寫(xiě)地址WADa至WADd是“1”的時(shí)段中,要寫(xiě)的紋理數(shù)據(jù)的V坐標(biāo)是奇數(shù),并且按NWEc→NWEd→NWEa→NWEb的順序維持寫(xiě)使能NWEa至NWEd。因而,按第三紋理存儲(chǔ)器1c→第四紋理存儲(chǔ)器1d→第一紋理存儲(chǔ)器1a→第二紋理存儲(chǔ)器1b的順序進(jìn)行在第一至第四紋理存儲(chǔ)器1a至1d中的寫(xiě)操作。
以這種方式,通過(guò)單次寫(xiě)操作把一次能傳輸?shù)囊粋€(gè)或多個(gè)紋理數(shù)據(jù)寫(xiě)在第一至第四紋理存儲(chǔ)器1a至1d之一中,從而紋理數(shù)據(jù)能在連續(xù)周期中以高速寫(xiě)在存儲(chǔ)器中。
現(xiàn)在將具體描述存儲(chǔ)器讀部分3的配置和操作。
圖6是表示在圖1中表示的存儲(chǔ)器讀部分3的內(nèi)部配置的圖。在圖6中,加法器19和20分別把“1”加到供給的U和V坐標(biāo)上。一個(gè)T0地址發(fā)生器21產(chǎn)生并輸出與坐標(biāo)(U,V)相對(duì)應(yīng)的紋理數(shù)據(jù)的存儲(chǔ)器地址radr0。同樣,一個(gè)T1地址發(fā)生器22產(chǎn)生并輸出與坐標(biāo)(U+1,V)相對(duì)應(yīng)的紋理數(shù)據(jù)的存儲(chǔ)器地址radr1。一個(gè)T2地址發(fā)生器23產(chǎn)生并輸出與坐標(biāo)(U,V+1)相對(duì)應(yīng)的紋理數(shù)據(jù)的存儲(chǔ)器地址radr2。一個(gè)T3地址發(fā)生器24產(chǎn)生并輸出與坐標(biāo)(U+1,V+1)相對(duì)應(yīng)的紋理數(shù)據(jù)的存儲(chǔ)器地址radr3。存儲(chǔ)器地址radr0至r adr3的每一個(gè)由八位組成。
圖7表示由T0地址發(fā)生器21產(chǎn)生的存儲(chǔ)器地址。在圖7中,例如{V[5:0],U[4:3]}代表通過(guò)把坐標(biāo)值V的從第五位到第0位連續(xù)六位和坐標(biāo)值U的從第四位到第三位連續(xù)兩位連接起來(lái)得到的八位的值。T1地址發(fā)生器22、T2地址發(fā)生器23及T3地址發(fā)生器24也以相同方式產(chǎn)生存儲(chǔ)器地址。
一個(gè)選擇器25按照一個(gè)2位選擇信號(hào)SELa選擇存儲(chǔ)器地址radr0至radr3之一。同樣,選擇器26、27和28的每一個(gè)分別按照一個(gè)2位選擇信號(hào)SELb、SELc或SELd選擇存儲(chǔ)器地址radr0至radr3之一。選擇器25至28在選擇信號(hào)SELa至SELd是“00”(二進(jìn)制數(shù))時(shí),選擇radr0,在信號(hào)是“01”(二進(jìn)制數(shù))時(shí),選擇radr1,在信號(hào)是“10”(二進(jìn)制數(shù))時(shí),選擇radr2,及在信號(hào)是“11”(二進(jìn)制數(shù))時(shí),選擇radr3。寄存器29至32分別存儲(chǔ)由選擇器25至28選擇的地址,并且分別輸出存儲(chǔ)的地址作為讀出地址RADa至RADd。
一個(gè)存儲(chǔ)器讀控制部分33根據(jù)坐標(biāo)(U,V)產(chǎn)生選擇信號(hào)SELa至SELd,并且也產(chǎn)生到紋理存儲(chǔ)器1a至1d的芯片賦能NCEa至NCEd。圖8表示由存儲(chǔ)器讀控制部分33產(chǎn)生的選擇信號(hào)SELa至SELd。在圖8中,V
、U[2:0]、SELa至SELd由二進(jìn)制數(shù)表示。在圖8中,陰影部分與在讀數(shù)據(jù)時(shí)不需訪問(wèn)的存儲(chǔ)器相對(duì)應(yīng)。這些部分在圖8中表示為“00”(二進(jìn)制數(shù)),但可以由任何值表示。
在讀數(shù)據(jù)時(shí),最好對(duì)于不需訪問(wèn)的紋理存儲(chǔ)器使芯片賦能無(wú)效。圖9表示由存儲(chǔ)器讀控制部分33產(chǎn)生的芯片賦能NCEa至NCEd。在圖9中,陰影部分是在與圖8中那些相同的條件下。在這種情況下,這些部分指示不必訪問(wèn)存儲(chǔ)器,并因而到該存儲(chǔ)器的芯片賦能被設(shè)置為“1”以便被無(wú)效。這停止存儲(chǔ)器操作,并且降低功率消耗。代替使芯片賦能無(wú)效或除此之外,可以停止對(duì)不必訪問(wèn)的紋理存儲(chǔ)器的時(shí)鐘輸入。
紋理選擇器5按照在圖10中表示的關(guān)系,從自紋理存儲(chǔ)器1a至1d讀出的數(shù)據(jù)DOa至DOd中,選擇在雙線性過(guò)濾計(jì)算所必需的四個(gè)點(diǎn)處的紋理數(shù)據(jù)T0至T3。在其中紋理數(shù)據(jù)的位數(shù)是16(位/象素)的情況下,選擇32位數(shù)據(jù)DOa至DOd中的16位,但以這樣一種方式輸出紋理數(shù)據(jù)T0至T3,從而增加用于R、G及B的每個(gè)值的位數(shù),以便允許由雙線性過(guò)濾計(jì)算部分6進(jìn)行雙線性過(guò)濾計(jì)算。
圖11A和11B表示在本實(shí)施例中紋理數(shù)據(jù)的寫(xiě)和讀操作的概念。圖11A是對(duì)于其中位數(shù)是16的情形。圖11b是對(duì)于其中位數(shù)是32的情形。在圖11A和11B中,符號(hào)a至d分別指示在第一至第四紋理存儲(chǔ)器1a至1d中寫(xiě)入紋理數(shù)據(jù)。如圖11A中所示,在其中紋理數(shù)據(jù)由16位組成的情形下,紋理數(shù)據(jù)按一次能傳輸?shù)膬蓚€(gè)單元寫(xiě)在紋理存儲(chǔ)器1a至1d的每一個(gè)中。也就是說(shuō),紋理數(shù)據(jù)以高速傳輸。如由虛線矩形A、B及C指示的那樣,四個(gè)必需的紋理數(shù)據(jù)在相同周期內(nèi)從多個(gè)紋理存儲(chǔ)器讀出。例如,在矩形A的情形下,數(shù)據(jù)只需從第一和第三紋理存儲(chǔ)器1a和1c讀出,而對(duì)第二和第四紋理存儲(chǔ)器1b和1d的訪問(wèn)是不必要的。因而,如上所述,使芯片賦能NCEb和NCEd無(wú)效。
如上所述,在本實(shí)施例中,為了把紋理數(shù)據(jù)傳輸?shù)郊y理存儲(chǔ)器,總是在連續(xù)周期中進(jìn)行寫(xiě),從而以高速傳輸紋理數(shù)據(jù)。另外,在雙線性過(guò)濾所必需的四個(gè)點(diǎn)處的紋理數(shù)據(jù)在相同周期內(nèi)讀出,從而以高速進(jìn)行過(guò)濾。在讀數(shù)據(jù)中,通過(guò)使芯片賦能無(wú)效并停止對(duì)于不需訪問(wèn)的紋理存儲(chǔ)器的時(shí)鐘輸入,降低處理器的功率消耗。
在本實(shí)施例中,32位數(shù)據(jù)能寫(xiě)入紋理存儲(chǔ)器的每一個(gè)地址中,32位數(shù)據(jù)能一次傳輸,并且使用兩種類型的紋理數(shù)據(jù),即16位紋理數(shù)據(jù)和32位紋理數(shù)據(jù)。然而,本發(fā)明不限于本實(shí)施例,并且不脫離本發(fā)明的精神和范圍可以進(jìn)行各種變更。例如,在配置成能一次傳輸64位數(shù)據(jù)的處理器中,如果紋理數(shù)據(jù)由16位組成,則每次可以傳輸四個(gè)紋理數(shù)據(jù)并且該數(shù)據(jù)的兩個(gè)可以同時(shí)被寫(xiě)入例如第一和第二紋理存儲(chǔ)器中;而如果紋理數(shù)據(jù)由32位組成,則同時(shí)兩個(gè)紋理數(shù)據(jù)可以分別傳輸并寫(xiě)在第一和第二紋理存儲(chǔ)器中。也就是說(shuō),能夠一次傳輸和寫(xiě)在一個(gè)地址中的數(shù)量的紋理數(shù)據(jù)共同寫(xiě)在一個(gè)紋理存儲(chǔ)器中,導(dǎo)致以利用數(shù)據(jù)總線的傳輸能力得到的速度寫(xiě)數(shù)據(jù)。
實(shí)施例2根據(jù)本發(fā)明第二實(shí)施例的紋理處理器的配置基本與在圖1中表示的相同,但與第一實(shí)施例的不同之處在于一個(gè)存儲(chǔ)器寫(xiě)部分2A的配置。圖12是方塊圖,表示第二實(shí)施例的存儲(chǔ)器寫(xiě)部分2A的配置。在圖12中,參照?qǐng)D2在第一實(shí)施例中已經(jīng)描述的元件由相同的標(biāo)號(hào)指示,并且這里將省略其詳細(xì)描述。
一個(gè)寫(xiě)使能發(fā)生器34除接收寫(xiě)計(jì)數(shù)值wcnt和數(shù)據(jù)nwcnt00、nwcnt01、nwcnt10及nwcnt11之外,還接收一個(gè)V線模式VM。寫(xiě)使能發(fā)生器34根據(jù)紋理數(shù)據(jù)的位數(shù)和寬度、寫(xiě)計(jì)數(shù)值wcnt[9:0]及V線模式VM,把數(shù)據(jù)nwcnt00、nwcnt01、nwcnt10及nwcnt11的一個(gè)分別選作寫(xiě)使能NWEa、NWEb、NWEc或NWEd。
V線模式VM是一個(gè)指示供給紋理數(shù)據(jù)的首部V坐標(biāo)是偶數(shù)還是奇數(shù)的信號(hào)。如果V線模式VM是“0”,則首部V坐標(biāo)是偶數(shù),而如果V線模式VM是“1”,則首部V坐標(biāo)是奇數(shù)。
如果V線模式VM是“0”,即要寫(xiě)的紋理數(shù)據(jù)的V坐標(biāo)從偶數(shù)開(kāi)始,則與對(duì)于第一實(shí)施例在圖3中表示的那些相同的要求用來(lái)確定紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù)還是奇數(shù)。另一方面,如果V線模式VM是“1”,即要寫(xiě)的紋理數(shù)據(jù)的V坐標(biāo)從奇數(shù)開(kāi)始,則用來(lái)確定紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù)還是奇數(shù)的要求表示在圖13中。然后,如圖4中所示,以與第一實(shí)施例中相同的方式,依據(jù)V坐標(biāo)是偶數(shù)還是奇數(shù)切換寫(xiě)使能NWEa至NWEd。
一個(gè)寄存器39是一個(gè)用來(lái)對(duì)開(kāi)始信號(hào)施加一周期延遲的觸發(fā)器。一個(gè)寫(xiě)地址發(fā)生器40產(chǎn)生寫(xiě)地址WADa至WADd,并且由一個(gè)加法器41、選擇器42和43及一個(gè)寄存器44構(gòu)成。加法器41把“1”加到寄存器44的值上。選擇器42在開(kāi)始信號(hào)和寄存器39的值的邏輯和的信號(hào)是“0”時(shí)選擇加法器41的結(jié)果,而在該信號(hào)是“1”時(shí)選擇開(kāi)始地址。這個(gè)開(kāi)始地址可從紋理處理器的外部設(shè)置。選擇器43在數(shù)據(jù)nwcnt00是“0”時(shí)選擇選擇器42的輸出,而當(dāng)該數(shù)據(jù)是“1”時(shí)選擇寄存器44的值。寄存器44是一個(gè)用來(lái)存儲(chǔ)選擇器43的輸出的8-位觸發(fā)器。
寄存器44的值,即wadr[7:0],對(duì)于寫(xiě)地址WADa至WADd是共用的。數(shù)據(jù)nwcnt00在四個(gè)周期中是“0”一次,從而寄存器44的值在四個(gè)周期中被更新一次。就是說(shuō),每在存儲(chǔ)器寫(xiě)的第四次時(shí),寫(xiě)地址WADa至WADd的每一個(gè)增加“1”。
一個(gè)寄存器45是一個(gè)32位觸發(fā)器,并且把紋理數(shù)據(jù)負(fù)載[31:0]保持為數(shù)據(jù)負(fù)載1[31:0]。一個(gè)左移位器46按照規(guī)定的移動(dòng)值,把通過(guò)使在寄存器45中保持的數(shù)據(jù)負(fù)載1[31:0]和供給的紋理數(shù)據(jù)負(fù)載[31:0]連接起來(lái)得到的64位數(shù)據(jù)向左移位。該移動(dòng)值能從紋理處理器的外部供給。一個(gè)寄存器47是一個(gè)32位觸發(fā)器,并且存儲(chǔ)左移位器46的輸出的32個(gè)最高有效位。寄存器47的值用作寫(xiě)數(shù)據(jù)DI。
在這個(gè)實(shí)施例中,按照V線模式VM確定紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù)還是奇數(shù)。因而,不管供給的紋理數(shù)據(jù)的首部V坐標(biāo)是偶數(shù)還是奇數(shù),都如在第一實(shí)施例中那樣進(jìn)行數(shù)據(jù)寫(xiě)。另外,數(shù)據(jù)寫(xiě)的開(kāi)始地址是可設(shè)置的,從而供給的紋理數(shù)據(jù)寫(xiě)在紋理存儲(chǔ)器的任意地址中。例如,要傳輸?shù)募y理數(shù)據(jù)的橫向線每次能寫(xiě)在紋理存儲(chǔ)器的任意地址中。因而,這個(gè)實(shí)施例能夠?qū)崿F(xiàn)例如其中切出與在外部存儲(chǔ)裝置中的大紋理數(shù)據(jù)中的矩形區(qū)域相對(duì)應(yīng)的區(qū)域并且傳輸?shù)郊y理存儲(chǔ)器的操作,而第一實(shí)施例具有要傳輸?shù)募y理數(shù)據(jù)總是存儲(chǔ)在外部存儲(chǔ)裝置中的連續(xù)地址中的限制。
另外,有可能移動(dòng)正在傳輸?shù)募y理數(shù)據(jù)。因而,紋理數(shù)據(jù)的開(kāi)始位置不必位于字接口上,從而紋理數(shù)據(jù)被更靈活地傳輸。
實(shí)施例3圖14是方塊圖,表示根據(jù)本發(fā)明第三實(shí)施例的紋理處理器的配置。在圖14中,已經(jīng)表示在圖1中的元件由相同標(biāo)號(hào)指示,并且這里將省略其詳細(xì)描述。紋理存儲(chǔ)器1a至1d、存儲(chǔ)器讀部分3、紋理選擇器5及雙線性過(guò)濾計(jì)算部分6與在第一實(shí)施例中描述的那些相同,并且存儲(chǔ)器寫(xiě)部分2A與在第二實(shí)施例中描述的相同。
一個(gè)存儲(chǔ)器數(shù)據(jù)移動(dòng)控制部分48,具有將以前雙線性過(guò)濾期間在第一至第四紋理存儲(chǔ)器1a至1d中存儲(chǔ)的紋理數(shù)據(jù)組中的具有最大V坐標(biāo)的紋理數(shù)據(jù)移動(dòng)到一個(gè)區(qū)域的功能,在該區(qū)域中,用在下次雙線性過(guò)濾中的紋理數(shù)據(jù)組中的具有最小V坐標(biāo)(在這種情況下為零)的紋理數(shù)據(jù)存儲(chǔ)在第一至第四紋理存儲(chǔ)器1a至1d中。
圖15表示在通過(guò)劃分在外部存儲(chǔ)裝置中的紋理數(shù)據(jù)和把劃分的紋理數(shù)據(jù)組傳輸?shù)絻?nèi)部紋理存儲(chǔ)器而進(jìn)行雙線性過(guò)濾的情況下數(shù)據(jù)劃分的一個(gè)例子的一種概念。圖15表示作為例子其中紋理劃分成每個(gè)8象素×5象素組成的區(qū)域的情形。在圖15中,第一紋理數(shù)據(jù)組和第二紋理數(shù)據(jù)組在區(qū)域AR中彼此重疊。具體地說(shuō),用于雙線性過(guò)濾的紋理數(shù)據(jù)的劃分這樣進(jìn)行,從而紋理數(shù)據(jù)組在其邊界處的一行中彼此重疊。這是因?yàn)樵诩y理數(shù)據(jù)組之間的邊界上進(jìn)行的雙線性過(guò)濾需要相應(yīng)紋理數(shù)據(jù)組的相鄰紋理數(shù)據(jù)部分。
鑒于這點(diǎn),在其中第一紋理存儲(chǔ)器組存儲(chǔ)在紋理存儲(chǔ)器1a至1d中并且經(jīng)受雙線性過(guò)濾而然后第二紋理存儲(chǔ)器組存儲(chǔ)在紋理存儲(chǔ)器1a至1d中的情況下,在重疊區(qū)域AR中的紋理數(shù)據(jù)一般寫(xiě)入在紋理存儲(chǔ)器1a至1d中兩次。
另一方面,在這個(gè)實(shí)施例中,提供存儲(chǔ)器數(shù)據(jù)移動(dòng)控制部分48,以防止在重疊區(qū)域AR中的寫(xiě)進(jìn)行兩次,并因而減少?gòu)耐獠看鎯?chǔ)裝置傳輸?shù)募y理數(shù)據(jù)的量。具體地說(shuō),在對(duì)第一紋理存儲(chǔ)器組進(jìn)行雙線性過(guò)濾終止之后,存儲(chǔ)器數(shù)據(jù)移動(dòng)控制部分48在一個(gè)存儲(chǔ)器數(shù)據(jù)移動(dòng)時(shí)段內(nèi)移動(dòng)在紋理存儲(chǔ)器1a至1d每一個(gè)內(nèi)在重疊區(qū)域AR中的紋理數(shù)據(jù)。
存儲(chǔ)器數(shù)據(jù)移動(dòng)控制部分48輸出一個(gè)存儲(chǔ)器地址MAD和一個(gè)用于數(shù)據(jù)移動(dòng)的寫(xiě)使能NMWE,并且控制一個(gè)選擇器49、選擇器50a至50d及選擇器52a至52d。
選擇器49在數(shù)據(jù)移動(dòng)時(shí)段期間選擇寫(xiě)使能NMWE,而否則選擇寫(xiě)使能NWEa至NWEd。選擇器49輸出這些被選擇的寫(xiě)使能作為寫(xiě)使能NWEa’至NWEd’。
選擇器50a至50d在其中紋理數(shù)據(jù)寫(xiě)在紋理存儲(chǔ)器1a至1d中的時(shí)段期間分別選擇寫(xiě)地址WADa至WADd,在雙線性過(guò)濾計(jì)算時(shí)段期間分別選擇讀地址RADa至RADd,及在數(shù)據(jù)移動(dòng)時(shí)段期間選擇地址MAD。選擇器50a至50d分別輸出選擇的地址,作為存儲(chǔ)器地址ADa至ADd。
寄存器51a至51d是32位觸發(fā)器,并且分別存儲(chǔ)已經(jīng)從紋理存儲(chǔ)器1a至1d讀出的數(shù)據(jù)DOa至DOd。選擇器52a至52d在數(shù)據(jù)移動(dòng)時(shí)段期間選擇來(lái)自相應(yīng)寄存器51a至51d的輸出,而否則選擇寫(xiě)數(shù)據(jù)DI。選擇器52a至52d分別輸出選擇的數(shù)據(jù),作為寫(xiě)數(shù)據(jù)DIa至DId。
圖16是定時(shí)圖,表示在紋理存儲(chǔ)器1a至1d中數(shù)據(jù)移動(dòng)的例子。同時(shí)對(duì)四個(gè)紋理存儲(chǔ)器1a至1d進(jìn)行數(shù)據(jù)移動(dòng)。圖16表示作為一個(gè)例子其中具有最大V坐標(biāo)的紋理數(shù)據(jù),即在重疊區(qū)域中的紋理數(shù)據(jù),呈現(xiàn)在兩個(gè)地址a和b中的情形。
如圖16中所示,存儲(chǔ)器數(shù)據(jù)移動(dòng)控制部分48在兩個(gè)周期中輸出“地址a”作為地址MAD。同時(shí),存儲(chǔ)數(shù)據(jù)移動(dòng)控制部分48也在存儲(chǔ)器讀狀態(tài)(NMWE=“1”)下在兩個(gè)周期中輸出寫(xiě)使能NMWE,從而在地址a中的數(shù)據(jù)被從紋理存儲(chǔ)器1a至1d中讀出,并且被存儲(chǔ)在相應(yīng)寄存器51a至51d中。
在下個(gè)周期中,存儲(chǔ)器數(shù)據(jù)移動(dòng)控制部分48在一個(gè)周期中輸出“0”作為地址MAD。同時(shí),存儲(chǔ)器數(shù)據(jù)移動(dòng)控制部分48也在存儲(chǔ)器寫(xiě)狀態(tài)(NMWE=“0”)下在一個(gè)周期中輸出寫(xiě)使能NMWE,從而將在寄存器51a至51d每一個(gè)中存儲(chǔ)的數(shù)據(jù)寫(xiě)在紋理存儲(chǔ)器1a至1d每一個(gè)中與地址0相對(duì)應(yīng)的區(qū)域中。此后,在“地址b”中的數(shù)據(jù)以相同方式讀出,并且被存儲(chǔ)在紋理存儲(chǔ)器1a至1d每一個(gè)中與地址1相對(duì)應(yīng)的區(qū)域中。
借助于以上操作,在每個(gè)紋理存儲(chǔ)器中,在紋理數(shù)據(jù)組的重疊區(qū)域中的紋理數(shù)據(jù)從其中V坐標(biāo)處于最大的區(qū)域移動(dòng)到其中V坐標(biāo)是零的區(qū)域。在圖16中,其中具有最大V坐標(biāo)的紋理數(shù)據(jù)呈現(xiàn)在兩個(gè)地址中的情形作為例子表示??蛇x擇地,具有最大V坐標(biāo)的紋理數(shù)據(jù)可以呈現(xiàn)在一個(gè)地址、或者三個(gè)或更多個(gè)地址中。
在重疊區(qū)域中的紋理數(shù)據(jù)已經(jīng)在紋理存儲(chǔ)器1a至1d每一個(gè)中移動(dòng)之后,下個(gè)紋理數(shù)據(jù)組寫(xiě)在紋理存儲(chǔ)器1a至1d中。在這時(shí),足以把其在重疊區(qū)域中的部分已經(jīng)被除去的紋理數(shù)據(jù)從在該移動(dòng)的紋理數(shù)據(jù)隨后的地址起寫(xiě)在紋理存儲(chǔ)器1a至1d中。
如上所述,在本實(shí)施例中,在通過(guò)劃分在外部存儲(chǔ)裝置中的紋理數(shù)據(jù)并且把劃分的紋理數(shù)據(jù)組傳輸?shù)絻?nèi)部紋理存儲(chǔ)器而進(jìn)行雙線性過(guò)濾時(shí),在重疊區(qū)域中的紋理數(shù)據(jù)預(yù)先在紋理存儲(chǔ)器的每一個(gè)中被移動(dòng)。因而,減小了要傳輸?shù)南聜€(gè)紋理數(shù)據(jù)組的量,導(dǎo)致紋理數(shù)據(jù)的高速傳輸。
實(shí)施例4圖17是方塊圖,表示根據(jù)本發(fā)明第四實(shí)施例的紋理處理器的配置。在圖17中,已經(jīng)表示在圖1中的元件由相同標(biāo)號(hào)指示,并且這里將省略其詳細(xì)描述。紋理存儲(chǔ)器1a至1d、存儲(chǔ)器讀部分3、選擇器4a至4d、紋理選擇器5及雙線性過(guò)濾計(jì)算部分6與在第一實(shí)施例中描述的那些相同,并且存儲(chǔ)器寫(xiě)部分2A與在第二實(shí)施例中描述的相同。
在本實(shí)施例中,為了通過(guò)劃分在外部存儲(chǔ)裝置中的紋理數(shù)據(jù)和把劃分的紋理數(shù)據(jù)組傳輸?shù)郊y理存儲(chǔ)器1a至1d而進(jìn)行雙線性過(guò)濾,存儲(chǔ)器寫(xiě)部分2 A設(shè)置用來(lái)存儲(chǔ)在紋理存儲(chǔ)器1a至1d中存儲(chǔ)的紋理數(shù)據(jù)中的具有最大V坐標(biāo)的紋理數(shù)據(jù)的地址之后的寫(xiě)開(kāi)始地址,并且然后將通過(guò)從下個(gè)紋理數(shù)據(jù)組除去在重疊區(qū)域中的紋理數(shù)據(jù)而得到的紋理數(shù)據(jù)寫(xiě)在紋理存儲(chǔ)器1a至1d中。
在從開(kāi)始地址起按順序把紋理數(shù)據(jù)寫(xiě)在紋理存儲(chǔ)器中時(shí),如果寫(xiě)地址超過(guò)紋理存儲(chǔ)器的最大地址,則寫(xiě)地址被復(fù)位到零,并且然后按順序?qū)懸院蟮募y理數(shù)據(jù)。在這種情況下,在寫(xiě)地址發(fā)生器40中的寄存器44是一個(gè)8位觸發(fā)器,并且具有允許存儲(chǔ)器地址產(chǎn)生的最少功能。因此,當(dāng)寫(xiě)地址超過(guò)最大地址時(shí),寫(xiě)地址自動(dòng)復(fù)位到零。
在這種情況下,一個(gè)如CPU的、未表示的外部控制部分以如下方式操作。外部控制部分保持寫(xiě)地址,并且把該寫(xiě)地址隨后的地址設(shè)置為寫(xiě)開(kāi)始地址。這允許識(shí)別具有最大V坐標(biāo)的紋理數(shù)據(jù)的地址。另外,外部控制部分從重疊區(qū)域隨后的地址傳輸下個(gè)紋理數(shù)據(jù)組。因而從下個(gè)紋理數(shù)據(jù)組除去在重疊區(qū)域中的紋理數(shù)據(jù)。
圖18A至18C顯示所劃分的紋理數(shù)據(jù)組如何按順序存儲(chǔ)在紋理存儲(chǔ)器中。在圖18A至18C中,作為例子顯示一種情況,其中32位紋理數(shù)據(jù)被分成每個(gè)由128象素寬×8象素高組成的紋理數(shù)據(jù)組,并且以統(tǒng)一的方式表示了在四個(gè)紋理存儲(chǔ)器1a至1d中的存儲(chǔ)區(qū)域。
圖18A表示其中第一紋理數(shù)據(jù)組存儲(chǔ)在紋理存儲(chǔ)器中并且Va是第一紋理數(shù)據(jù)組的V坐標(biāo)的狀態(tài)。圖18B表示其中第二紋理數(shù)據(jù)組存儲(chǔ)在紋理存儲(chǔ)器中并且Vb是第二紋理數(shù)據(jù)組的V坐標(biāo)的狀態(tài)。一個(gè)其中Va=7、作為其中第二紋理數(shù)據(jù)組重疊第一紋理數(shù)據(jù)組的重疊區(qū)域的區(qū)域,用作其中Vb=0而沒(méi)有變化的區(qū)域。具有Vb=1至7的紋理數(shù)據(jù)存儲(chǔ)在其中Vb=0的區(qū)域隨后的相應(yīng)區(qū)域中。由于其中Vb=0的區(qū)域是在最大存儲(chǔ)器地址處,所以具有Vb=1的紋理數(shù)據(jù)存儲(chǔ)在地址0處的區(qū)域中,并且隨后的紋理數(shù)據(jù)按順序存儲(chǔ)在隨后地址處的相應(yīng)區(qū)域中。
圖18C表示其中存儲(chǔ)第三紋理數(shù)據(jù)組并且Vc是第三紋理數(shù)據(jù)組的V坐標(biāo)的狀態(tài)。一個(gè)其中Vb=7、作為其中第三紋理數(shù)據(jù)組重疊第二紋理數(shù)據(jù)組的重疊區(qū)域的區(qū)域,用作其中Vc=0而沒(méi)有變化的區(qū)域。具有Vc=1至7的紋理數(shù)據(jù)存儲(chǔ)在其中Vc=0的區(qū)域隨后的相應(yīng)區(qū)域中。由于其中Vc=1的區(qū)域是在最大存儲(chǔ)器地址處,所以具有Vc=2的紋理數(shù)據(jù)存儲(chǔ)在地址0處的區(qū)域中,并且隨后的紋理數(shù)據(jù)按順序存儲(chǔ)在隨后地址處的相應(yīng)區(qū)域中。
一個(gè)紋理坐標(biāo)轉(zhuǎn)換部分53把紋理坐標(biāo)(U,V)轉(zhuǎn)換成(U’,V’),并且輸出轉(zhuǎn)換的坐標(biāo),從而存儲(chǔ)器讀部分3正確地讀以在圖18A至18C中表示的方式存儲(chǔ)的紋理數(shù)據(jù)。具體地說(shuō),紋理坐標(biāo)轉(zhuǎn)換部分53輸出坐標(biāo)值U作為坐標(biāo)值U’而沒(méi)有變化。按照其中在紋理存儲(chǔ)器1a至1d中存儲(chǔ)的紋理數(shù)據(jù)的V坐標(biāo)是零的區(qū)域的位置,將坐標(biāo)值V轉(zhuǎn)換成坐標(biāo)值V’。這是因?yàn)楦鶕?jù)其中V坐標(biāo)是零的區(qū)域呈現(xiàn)在存儲(chǔ)器地址0處的假定,存儲(chǔ)器讀部分3讀紋理數(shù)據(jù)。其中V坐標(biāo)是零的位置存儲(chǔ)在以上描述的諸如CPU的外部控制部分中。其中V坐標(biāo)是零的區(qū)域的位置從外部設(shè)置在紋理坐標(biāo)轉(zhuǎn)換部分53中。
坐標(biāo)值V按如下方式轉(zhuǎn)換成V’如果V<VM,則V’=V+VS如果V≥VM,則V’=V-VM其中VS是其中在紋理存儲(chǔ)器1a至1d中存儲(chǔ)的紋理數(shù)據(jù)的V坐標(biāo)是零的區(qū)域的位置,TH是在紋理數(shù)據(jù)組的高度方向上的象素長(zhǎng)度,及TM是TH-VS。在圖18C中表示的情況下,VS=6,TH=8及VM=TH-VS=8-6=2。如果V=1,V<VM,并因而V’=V+VS=1+6=7。如果V=4,V≥VM,并因而V’=V-VM=4-2=2。以這種方式轉(zhuǎn)換紋理坐標(biāo),從而正確地讀出紋理數(shù)據(jù)。
如上所述,在本實(shí)施例中,在通過(guò)劃分紋理數(shù)據(jù)并把所劃分的紋理數(shù)據(jù)組傳輸?shù)郊y理存儲(chǔ)器而進(jìn)行雙線性過(guò)濾時(shí),不必如在第三實(shí)施例中那樣在紋理存儲(chǔ)器中預(yù)先移動(dòng)在重疊區(qū)域中的紋理數(shù)據(jù)。因而,減少在移動(dòng)數(shù)據(jù)時(shí)使用的電路,并且省略在紋理存儲(chǔ)器內(nèi)移動(dòng)數(shù)據(jù)的過(guò)程。結(jié)果,以更高的速度傳輸紋理數(shù)據(jù)。
根據(jù)本發(fā)明,紋理數(shù)據(jù)以高速傳輸?shù)郊y理存儲(chǔ)器并以高速進(jìn)行雙線性過(guò)濾。結(jié)果,例如在游戲機(jī)或汽車導(dǎo)航系統(tǒng)中以更高速度進(jìn)行紋理繪圖。
權(quán)利要求
1.一種紋理處理器,包括第一、第二、第三及第四紋理存儲(chǔ)器,用來(lái)存儲(chǔ)紋理數(shù)據(jù);存儲(chǔ)器寫(xiě)部分,用來(lái)控制供給的紋理數(shù)據(jù)寫(xiě)入所述第一至第四紋理存儲(chǔ)器中;存儲(chǔ)器讀部分,用來(lái)控制從所述第一至第四紋理存儲(chǔ)器讀出在靠近紋理坐標(biāo)的四個(gè)點(diǎn)處的紋理數(shù)據(jù);及雙線性過(guò)濾計(jì)算部分,用來(lái)使用由所述存儲(chǔ)器讀部分從所述第一至第四紋理存儲(chǔ)器讀出的四個(gè)點(diǎn)處的所述紋理數(shù)據(jù),進(jìn)行雙線性過(guò)濾計(jì)算,其中在單次寫(xiě)操作中,所述存儲(chǔ)器寫(xiě)部分將能夠一次傳輸且能寫(xiě)在一個(gè)地址中的數(shù)量的紋理數(shù)據(jù),共同寫(xiě)在所述第一至第四紋理存儲(chǔ)器之一中,并且如果要寫(xiě)的紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù),則所述紋理數(shù)據(jù)順序?qū)懺谒龅谝弧⒌诙?、第三及第四紋理存儲(chǔ)器中,而如果所述V坐標(biāo)是奇數(shù),則所述紋理數(shù)據(jù)順序?qū)懺谒龅谌?、第四、第一及第二紋理存儲(chǔ)器中。
2.根據(jù)權(quán)利要求1所述的紋理處理器,其中,在讀數(shù)據(jù)中,所述存儲(chǔ)器讀部分對(duì)于對(duì)其訪問(wèn)是不必要的所述第一至第四紋理存儲(chǔ)器的至少一個(gè),使芯片賦能無(wú)效。
3.根據(jù)權(quán)利要求1所述的紋理處理器,其中,在讀數(shù)據(jù)中,所述存儲(chǔ)器讀部分停止對(duì)于對(duì)其訪問(wèn)是不必要的所述第一至第四紋理存儲(chǔ)器的至少一個(gè)的時(shí)鐘輸入。
4.根據(jù)權(quán)利要求1所述的紋理處理器,其中,所述存儲(chǔ)器寫(xiě)部分接收指示供給的紋理數(shù)據(jù)的首部V坐標(biāo)是偶數(shù)還是奇數(shù)的V線模式,并且按照所述V線模式確定所述紋理數(shù)據(jù)的所述V坐標(biāo)是偶數(shù)還是奇數(shù)。
5.根據(jù)權(quán)利要求4所述的紋理處理器,其中,所述存儲(chǔ)器寫(xiě)部分被配置成這樣,從而用于數(shù)據(jù)寫(xiě)的開(kāi)始地址是可設(shè)置的。
6.根據(jù)權(quán)利要求4所述的紋理處理器,其中,所述存儲(chǔ)器寫(xiě)部分把供給的紋理數(shù)據(jù)移動(dòng)規(guī)定的移動(dòng)值,并且把所述移動(dòng)的紋理數(shù)據(jù)寫(xiě)在所述第一至第四紋理存儲(chǔ)器中。
7.根據(jù)權(quán)利要求1所述的紋理處理器,還包括存儲(chǔ)器數(shù)據(jù)移動(dòng)控制部分,用來(lái)在所述第一至第四紋理存儲(chǔ)器中把第一紋理數(shù)據(jù)組的、具有最大V坐標(biāo)的紋理數(shù)據(jù)移動(dòng)到其中存儲(chǔ)第二紋理數(shù)據(jù)組的、具有最小V坐標(biāo)的紋理數(shù)據(jù)的位置,當(dāng)所述第二紋理數(shù)據(jù)組寫(xiě)入其中存儲(chǔ)所述第一紋理數(shù)據(jù)組的所述第一至第四紋理存儲(chǔ)器中時(shí),所述第二紋理數(shù)據(jù)組緊鄰所述第一紋理數(shù)據(jù)組使用。
8.根據(jù)權(quán)利要求1所述的紋理處理器,其中,所述存儲(chǔ)器寫(xiě)部分把除第二紋理數(shù)據(jù)組的、具有最小V坐標(biāo)的紋理數(shù)據(jù)之外的紋理數(shù)據(jù)寫(xiě)在第一紋理數(shù)據(jù)組的、具有最大V坐標(biāo)的紋理數(shù)據(jù)的隨后位置處,當(dāng)所述第二紋理數(shù)據(jù)組寫(xiě)入其中存儲(chǔ)所述第一紋理數(shù)據(jù)組的所述第一至第四紋理存儲(chǔ)器中時(shí),所述第二紋理數(shù)據(jù)組緊鄰所述第一紋理數(shù)據(jù)組使用,并且所述存儲(chǔ)器讀部分參照其中存儲(chǔ)所述第一紋理數(shù)據(jù)組的、具有所述最大V坐標(biāo)的所述紋理數(shù)據(jù)的位置,讀所述第二紋理數(shù)據(jù)組的所述紋理數(shù)據(jù)。
9.根據(jù)權(quán)利要求1所述的紋理處理器,其中,如果紋理數(shù)據(jù)由每象素16位組成,則傳輸兩個(gè)紋理數(shù)據(jù),而如果紋理數(shù)據(jù)由每象素32位組成,則傳輸一個(gè)紋理數(shù)據(jù)。
全文摘要
一個(gè)存儲(chǔ)器寫(xiě)部分2通過(guò)單次寫(xiě)操作將能夠一次傳輸并寫(xiě)在一個(gè)地址中的數(shù)量的紋理數(shù)據(jù),共同寫(xiě)在第一至第四紋理存儲(chǔ)器1a至1d之一中。如果要寫(xiě)的紋理數(shù)據(jù)的V坐標(biāo)是偶數(shù),則紋理數(shù)據(jù)順序?qū)懺诘谝?、第二、第三及第四紋理存儲(chǔ)器1a、1b、1c及1d中。如果V坐標(biāo)是奇數(shù),則數(shù)據(jù)順序?qū)懺诘谌?、第四、第一及第二紋理存儲(chǔ)器1c、1d、1a及1b中。
文檔編號(hào)G06T15/04GK1619590SQ20041009108
公開(kāi)日2005年5月25日 申請(qǐng)日期2004年11月16日 優(yōu)先權(quán)日2003年11月17日
發(fā)明者重永哲資 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社