專利名稱:頂點資料隊列控制器的制作方法
技術領域:
本發明涉及電腦繪圖技術領域;尤其有關于一種頂點資料隊列控制器,本發明依據頂點(Vertex)索引(Index)由系統存儲器抓取頂點資料且利用頂點資料隊列來實現頂點資料快取存儲器功能。
背景技術:
在電腦繪圖的范疇中,電腦繪圖加速(Accelerating)系統接收多個頂點資料來產生景象(Scene)的二維影像,或是由物件的敘述或模型來產生物件。其中,這些頂點資料置放于系統存儲器之中。一種由系統存儲器傳送頂點資料到繪圖加速系統的方法,是先將頂點索引傳送至繪圖加速系統,接著,繪圖加速系統依據此頂點索引傳送存取要求(Request),最后,當相應頂點資料準備好之后便將其回傳給繪圖加速系統。其中,上述方法稱為“索引模式(IndexMode)”。
圖1顯示繪圖加速系統10經過界面控制器20存取儲存于系統存儲器30中的頂點資料31的方塊圖。界面控制器20包括一要求隊列(Queue)21與一頂點資料隊列22。要求隊列21儲存繪圖加速系統10生成的存儲器要求。頂點資料隊列22儲存由系統存儲器30傳送的頂點資料31,且之后頂點資料隊列22中的頂點資料將被繪圖加速系統10抓取。
傳送程序可以是一分開匯流排處理規則(Split Bus TransactionProtocol),如下列步驟步驟1,接收一頂點索引。
步驟2,傳送一要求且將其儲存至一要求隊列21中。
步驟3,如果匯流排可以使用時,允許一要求來存取頂點資料且將此要求由要求隊列21中移除。
步驟4,當頂點資料31準備好之后,如果匯流排可以使用時,其被回傳且儲存至頂點資料隊列22。
步驟5,當繪圖加速系統10需要頂點資料來做進一步處理時,一存取動作發生,頂點資料由頂點資料隊列22中被抓取(Fetch)。
要注意的是,頂點資料是會被重復使用的,因此,頂點資料的快取存儲器(Cache)是有必要使用來改善繪圖加速系統的效能。然而,頂點資料包括視窗座標、深度(Depth)資訊、包含紅、綠與藍的顏色資訊、透明(Transparent)系數(Factor)、包含反射(Specular)紅、反射綠與反射藍的反射顏色資訊、模糊(Fog)系數以及多組的材質(Texture)座標等等。因此,儲存多個頂點資料將會花費大量的容量與面積。
然而,在繪圖加速系統或是界面控制器的設計中,整體快取存儲器的空間始終是有限的,隨著更細致的影像效果,大量頂點資料的需求也相對形成快取存儲器的負荷,因此,如何有效管理快取存儲器及繪圖加速系統將是一重要課題。
發明內容
有鑒于此,本發明的主要目的為提供一種頂點資料隊列控制器,來利用頂點資料隊列而實現頂點資料快取存儲器的功能,從而減少儲存上空間的成本。
為了達成上述目的,可由本發明所提供之一種頂點資料隊列控制器來達成。其中頂點數據隊列控制器包括一限制計數器、可用計數器、索引比較單元、要求控制器與存取控制器。
限制計數器具有一可要求數目值,表示接口控制器中尚可接受的要求數目。可用計數器具有一尚未讀取數目值,表示接口控制器的頂點資料隊列中尚未讀取的頂點數據數目。索引比較單元判斷輸入的頂點索引是否存在于一頂點索引暫存器中,且輸出相應的判斷結果給要求控制器。要求控制器依據判斷結果與可要求數目值決定是否輸出相應的頂點數據要求給接口控制器,且將該判斷結果存放于一參考暫存器中。
當接收頂點數據需求信號時,存取控制器由參考暫存器讀取判斷結果,并依據判斷結果與尚未讀取數目值,由頂點資料隊列中抓取頂點數據。
圖1顯示現有的繪圖加速系統經過界面控制器存取一儲存于系統存儲器中的頂點資料的方塊示意圖;圖2顯示依據本發明實施例的頂點資料存取裝置存取儲存于系統存儲器中的頂點資料的方塊示意圖;圖3為一方塊圖顯示依據本發明實施例的頂點資料隊列控制器1100的內部組成;圖4為一方塊圖顯示依據本發明實施例的索引比較單元的內部組成;圖5為一流程圖顯示限制計數器的操作流程;圖6為一流程圖顯示可用計數器的操作流程;圖7為一流程圖顯示要求控制器的操作流程;圖8為一流程圖顯示存取控制器的操作流程;圖9顯示依據本發明實施例的頂點資料存取方法的操作流程;圖10-圖13顯示頂點資料隊列的狀態與參考點、限制計數器與可用計數器的值。
具體實施例方式
接下來,本發明實施例將參考圖示進行詳細說明于下圖2顯示依據本發明實施例的頂點資料存取裝置存取儲存于系統存儲器中的頂點資料的方塊示意圖,參考圖2,依據本發明實施例的頂點資料存取裝置包括一界面控制器2000、與一頂點資料隊列控制器1100。其中,界面控制器2000類似于圖1中所述的界面控制器20,包括一要求隊列2100與一頂點資料隊列2200。頂點資料隊列控制器1100可以結合于繪圖加速系統1000之中,用以與界面控制器2000來進行通訊以控制頂點資料的存取,從而達到頂點資料快取存儲器的功能。繪圖加速系統1000可以籍由頂點資料隊列控制器1100的管理,經過界面控制器2000存取儲存于系統存儲器3000中的頂點資料3100。
頂點資料隊列控制器1100負責來決定是否要傳送一頂點資料要求來通知界面控制器2000由系統存儲器3000中抓取對應的頂點資料。此外,頂點資料隊列控制器1100也監控界面控制器2000中頂點資料隊列2200的狀態。而當繪圖加速系統1000需要頂點資料時,頂點資料隊列控制器1100則可依據頂點資料隊列2200的狀態直接抓取在頂點資料隊列2200中的頂點資料3100。
因為頂點資料3100由系統存儲器3000存取至繪圖加速系統1000需要一長的等待時間(Latency),因此,一預先抓取機制可以通過分開匯流排處理規則,使用來改善整體效能。由于繪圖加速系統1000依據接收頂點的索引順序來依序處理頂點資料,頂點資料可以由系統存儲器3000抓取且在被繪圖加速系統使用之前儲存于頂點資料隊列2200中。因此,在數個頂點資料要求允許之后,對應的頂點資料將接續地送入頂點資料隊列2200。
如前所述,繪圖加速系統1000藉由頂點資料隊列控制器1100存取頂點資料。頂點資料隊列控制器1100不僅用以控制要求與頂點資料隊列2200,也檢查在頂點資料隊列2200中的頂點資料是否被重復使用。即頂點資料隊列控制器1100執行頂點資料快取存儲器功能。
圖3顯示依據本發明實施例的頂點資料隊列控制器1100的方塊圖。頂點資料隊列控制器1100包括一索引比較單元1110、要求控制器1120、存取控制器1130、參考暫存器1140、限制計數器1150與可用計數器1160。限制計數器1150具有一可要求數目值,表示界面控制器2000尚可接受(允許)的要求數目。可用計數器1160具有一尚未讀取數目值,表示頂點資料隊列2200中尚未讀取的頂點資料數目。
索引比較單元1110負責判斷輸入的頂點索引是否與內部的一頂點索引暫存器中儲存的任何一個索引相同。索引比較單元1110報告(輸出)包含一比對信息資料與一位移資料的一判斷結果給要求控制器1120。要求控制器1120則依據接收的判斷結果與限制計數器1150的可要求數目值,來決定是否傳送相應頂點索引的一頂點資料要求給界面控制器2000。當參考暫存器1140并未滿時,要求控制器1120則將判斷結果存放于參考暫存器1140之中。注意的是,頂點索引暫存器1111與參考暫存器1140可以是先進先出暫存器(FIFO)。
當繪圖加速系統1000要一頂點資料時,存取控制器1130會被通知,且存取控制器1130便依據儲存于參考暫存器1140中的判斷結果與可用計數器1160的尚未讀取數目值存取頂點資料。
索引比較單元1110包括頂點索引暫存器1111、多個比較器1112與編碼器1113,如圖4所示。在圖的例子中,頂點索引暫存器1111包含四個儲存欄位(Entries),且索引比較單元1110包括四個比較器1112。輸入的頂點索引被與所有儲存在頂點索引暫存器1111的頂點索引進行比較。比較器1112的輸出為多個雙值(Binary Value)信號,且這些輸出信號被編碼器1113進行編碼,從而產生比對信息資料(HIT)與位移資料(OFFSET)。如果輸入的頂點索引與任一在頂點索引暫存器1111的頂點索引相同時,則HIT為作用(Active)且OFFSET為頂點索引暫存器1111中與輸入的頂點索引相同的頂點索引的位置。反之,當輸入的頂點索引與頂點索引暫存器1111所有頂點索引都不相同時,則HIT為無效(Inactive)且OFFSET強制為零。
限制計數器1150為一上/下(Up/Down)計數器,包括可要求數目值,此值每次增加或是減少一。圖5顯示限制計數器1150的操作流程。首先,限制計數器1150的可要求數目值(LC)初始設定為整個繪圖系統中最多可接受(允許)的要求數目(步驟S51)。在信號REQUEST作用之后(步驟S52的是),若信號ACCESS不作用(步驟S53的否),則限制計數器1150的值被減一(步驟S55)。若信號REQNEST不作用(步驟S52的否),而信號ACCESS作用(步驟S54的是),限制計數器1150的值被加一(步驟SS6)。而若信號REQNEST與ACCESS皆為作用時,則限制計數器1150的值保持一樣,且若信號REQUEST與ACCESS皆為不作用時,則限制計數器1150的值也不會改變。
可用計數器1160為一上/下(Up/Down)計數器,包括尚未讀取數目值,表示頂點資料隊列2200中尚未讀取的頂點資料數目,此值每次增加或是減少一。圖6顯示可用計數器1160的操作流程。首先,可用計數器1160的尚未讀取數目值(AC)初始設定為零(步驟S61)(即頂點資料隊列2200中沒有任何頂點資料)。在信號ACK作用之后(表示有一頂點資料從系統存儲器3000送達頂點資料隊列2200中)(步驟S62的是),若信號ACCESS不作用(步驟S63的否),則可用計數器1160的值被加一(步驟S65)。
若信號ACK不作用(步驟S62的否),而信號ACCESS作用(步驟S64的是),可用計數器1160的值被減一(步驟S66)。而若信號ACK與ACCESS皆為作用時,則可用計數器1160的值保持一樣,且若信號ACK與ACCESS皆為不作用時,則可用計數器1160的值也不會改變。
圖7顯示要求控制器1120的操作流程。首先,信號REQUEST設為不作用(步驟S71),當參考暫存器1140沒有滿時(步驟S72的否),由索引比較器1110接收相應一頂點索引的判斷結果(包括信號HIT與OFFSET)(步驟S73)。接著,當判斷結果是比對成功時(HIT為真(True))(步驟S74的是),則直接將判斷結果儲存至參考暫存器1140中(步驟S75)。
另一方面,當判斷結果是比對失敗(HIT為假(False))(步驟S74的否)且限制計數器1150的值(LC)大于零時(步驟S76的是),則信號REQUEST為作用且傳送相應此頂點索引的頂點資料要求給界面控制器2000(步驟S77)。之后,再將判斷結果儲存至參考暫存器1140中(步驟S75)。
存取控制器1130包括一循環計數器(Ring Counter),包含表示頂點資料隊列2200中的參考邏輯位置的一參考指標值(RP)。圖8顯示存取控制器1130的操作流程。在初始階段時,信號ACCESS與READ為不作用,且參考指標值設為零(步驟S81)。當繪圖加速系統要求一頂點資料(步驟S82的是)且參考暫存器1140不是空的時(步驟S83的否),存取控制器1130由參考暫存器1140抓取一組判斷結果(步驟S84),其中此判斷結果包括信號HIT與OFFSET。
接下來,依據判斷結果的比對成功與否(HIT為真與否)有兩種操作程序,分別進行說明。首先,當比對成功時(步驟S85的是),則目標頂點資料的邏輯位置(POSIT10N)可依據RP與OFFSET進行計算(步驟S86)如下POSITION=(RP-OFFSET)mod N,其中N為頂點資料隊列2200的尺寸。
接著,存取控制器1130將POSITION經由信號ADD傳送給界面控制器2000,界面控制器2000則會依據POSITION輸出在頂點資料隊列2200中的頂點資料給存取控制器1130,存取控制器1130并將信號READ設為作用(步驟S87與S88)。
最后再將信號ACCESS與READ設為不作用(步驟S89)。
另一方面,當比對失敗時(步驟S85的否)且可用計數器1160的尚未讀取數目值(AC)大于零時(步驟S90的是)時,此時,POSIT10N即為RP,存取控制器1130將POSIT10N經由信號ADD傳送給界面控制器2000,界面控制器2000則會依據POSIT10N輸出在頂點資料隊列2200中的頂點資料給存取控制器1130(步驟S91)。之后,重新設定RP(步驟S92)RP=(RP+1)mod N(步驟S92)。
接著,存取控制器1130將信號ACCESS與READ設為作用(步驟S93與S88)。最后再將信號ACCESS與READ設為不作用(步驟S89)。
圖9顯示依據本發明實施例的頂點資料存取方法的操作流程。參考圖9,本發明實施例的操作流程將說明于下。
首先,如步驟S95,頂點資料隊列控制器1100接收一頂點索引。然后,如步驟S96,索引比較單元1110依據接收的頂點索引決定是否輸出相應此頂點索引的一頂點資料要求,用以通知界面控制器2000依據此頂點資料要求由系統存儲器3000抓取相應的頂點資料,并將由系統存儲器3000抓取的頂點資料存放于頂點資料隊列2200中。
其中,依據接收的頂點索引決定是否輸出相應此頂點索引的頂點資料要求,先判斷此頂點索引是否存在于頂點索引暫存器1111中,并輸出相應的判斷結果。之后,再依據判斷結果與限制計數器1150的可要求數目值決定是否輸出頂點資料要求,并將判斷結果存放于參考暫存器1140中。
接著,如步驟S97,頂點資料隊列控制器1100監控界面控制器2000中頂點資料隊列2200的狀態。注意的是,在步驟S97中,監控動作可通過限制計數器1150、可用計數器1160與參考指標RP的紀錄資料來完成。換言之,即通過限制計數器1150、可用計數器1160與參考指標RP可以清楚知道頂點資料隊列2200中紀錄資料的情況。
之后,如步驟S98,頂點資料隊列控制器1100接收由繪圖加速系統傳送的一頂點資料需求信號。接著,如步驟S99,依據頂點資料隊列2200的狀態由頂點資料隊列2200中抓取相應的頂點資料。在步驟S99中,由參考暫存器1140讀取一判斷結果,并依據判斷結果與可用計數器1160的尚未讀取數目值,由頂點資料隊列2200中抓取相應的頂點資料。
注意的是,當要求控制器1120輸出頂點資料要求給界面控制器2000時,則將可要求數目值減一,當存取控制器1130由頂點資料隊列2200中抓取頂點資料時,則將可要求數目值加一且將尚未讀取數目值減一,而當界面控制器2000將頂點資料存放于頂點資料隊列2200時,則將尚未讀取數目值加一。
接下來,舉一實際例子進行說明。圖10-圖13顯示在不同操作之后頂點資料隊列2200的狀態與參考指標RP、限制計數器LC與可用計數器AC的值。假設頂點資料隊列2200最多可以具有八組頂點資料。界面控制器2000中具有一更新指標UP,用以表示下一個接收的頂點資料要存至頂點資料隊列2200中的邏輯位置。在頂點資料隊列控制器1100中的參考指標RP用以表示在頂點資料隊列2200中用作為參考位置的邏輯位置。在頂點資料隊列2200中的參考區域由參考指標RP的值所泱定。假設參考區域的尺寸為3,其表示頂點資料快取存儲器具有3個參考頂點。
圖10顯示頂點資料隊列2200的一片段情況。現在頂點資料隊列2200已經接收五組頂點資料,分別表示為VK-2,VK-1,VK,VK+1,VK+2。三組頂點資料VK-2,VK-1,VK在參考區域之中,且VK+1,VK+2還沒被繪圖加速系統使用過。
此時,更新指標UP的值為3,表示下一個接收的頂點資料將儲存至“3”的邏輯位置。參考指標RP的值為1,表示參考區域為“0”、“7”與“6”。限制計數器LC的值為3,因為頂點資料隊列2200僅剩三個位置來儲存頂點資料。可用計數器AC的值為2,表示已經有兩組頂點資料已經更新至頂點資料隊列2200中,且尚未被存取。
在兩個要求被允許之后,只有限制計數器LC的值被改變,如圖11中所示。因為在頂點資料隊列2200中的邏輯位置‘3”與“4”被保留來儲存相應此兩要求的頂點資料,因此,頂點資料隊列2200中只剩一邏輯位置可以記錄資料,且限制計數器LC的值應該變成1。
當相應兩要求的兩組頂點資料由系統存儲器3000回傳至界面控制器2000時,頂點資料隊列2200將具有七組頂點資料,如圖12中所示。可用計數器AC的值變為4,且更新指標UP的值變為5,指向邏輯位置“5”。
如果頂點資料隊列控制器1100存取在參考區域中的頂點資料(VK-2,VK-1,或VK)時,則參考指標RP、限制計數器LC與可用計數器AC不會有所改變。反之,如果頂點資料隊列控制器1100存取VK+1時,參考指標RP的值變成2,且參考區域變成“1”、“0”與“7”,如圖13中所示。注意的是,同時,限制計數器LC與可用計數器AC的值分別增加與減少。
因此,藉由本發明所提出的頂點資料存取裝置及方法可以依據頂點索引由系統存儲器抓取頂點資料,同時利用頂點資料隊列的適當控制而實現頂點資料快取存儲器的功能,從而減少儲存上空間的成本。
以上所述實施例僅系為說明本發明的技術思想及特點,其目的在使熟習此項技藝的人士能夠了解本發明的內容并據以實施,當不能以其限定本發明的專利范圍,即大凡依本發明所揭示的精神所作的均等變化或修飾,仍應涵蓋在本發明的權利要求范圍內。
權利要求
1.一種頂點資料隊列控制器,其特征是包括一限制計數器,具有一可要求數目值,表示該界面控制器尚可接受的要求數目;一可用計數器,具有一尚未讀取數目值,表示該頂點資料隊列中尚未讀取的頂點資料數目;一索引比較單元,用以接收一頂點索引,判斷該頂點索引是否存在于一頂點索引暫存器中,且輸出相應的一判斷結果;一要求控制器,接收該判斷結果,依據該判斷結果與該可要求數目值法定是否輸出相應該頂點索引的該頂點資料要求給一界面控制器,用以通知該界面控制器依據該頂點資料要求由一系統存儲器抓取一頂點資料,并將該頂點資料存放于一頂點資料隊列中,且將該判斷結果存放于一參考暫存器中;以及一存取控制器,當該頂點資料隊列控制器接收一頂點資料需求信號時,由該參考暫存器讀取該判斷結果,并依據該判斷結果與該尚未讀取數目值,由該頂點資料隊列中抓取該頂點資料。
2.如權利要求1所述的頂點資料隊列控制器,其特征是當該要求控制器輸出該頂點資料要求給該界面控制器時,將該可要求數目值減一。
3.如權利要求1所述的頂點資料隊列控制器,其特征是當該存取控制器由該頂點資料隊列中抓取該頂點資料時,將該可要求數目值加一,且將該尚未讀取數目值減一。
4.如權利要求1所述的頂點資料隊列控制器,其特征是當界面控制器將該頂點資料存放于該頂點資料隊列時,將該尚未讀取數目值加一。
5.如權利要求1所述的頂點資料隊列控制器,其特征是若該頂點索引不存在于該頂點索引暫存器,則將該頂點索引存放于該頂點索引暫存器中。
6.如權利要求1所述的頂點資料隊列控制器,其特征是該判斷結果包括一比對信息資料與一位移資料。
7.如權利要求1所述的頂點資料隊列控制器,其特征是該頂點索引暫存器與該參考暫存器為先進先出暫存器。
全文摘要
本發明為一種頂點資料隊列控制器,包括一限制計數器、可用計數器、索引比較單元、要求控制器與存取控制器。限制計數器具有一可要求數目值,表示接口控制器中尚可接受的要求數目。可用計數器具有一尚未讀取數目值,表示接口控制器的頂點資料隊列中尚未讀取的頂點數據數目。索引比較單元判斷輸入的頂點索引是否存在于一頂點索引暫存器中,且輸出相應的判斷結果給要求控制器。要求控制器依據判斷結果與可要求數目值決定是否輸出相應的頂點數據要求給接口控制器,且將該判斷結果存放于一參考暫存器中。當接收頂點數據需求信號時,存取控制器由參考暫存器讀取判斷結果,并依據判斷結果與尚未讀取數目值,由頂點資料隊列中抓取頂點數據。
文檔編號G06T1/00GK1652154SQ200510053768
公開日2005年8月10日 申請日期2001年12月28日 優先權日2001年12月28日
發明者呂忠晏 申請人:矽統科技股份有限公司