TWI398771B - 擷取資料的圖形處理器與方法 - Google Patents
擷取資料的圖形處理器與方法 Download PDFInfo
- Publication number
- TWI398771B TWI398771B TW096126217A TW96126217A TWI398771B TW I398771 B TWI398771 B TW I398771B TW 096126217 A TW096126217 A TW 096126217A TW 96126217 A TW96126217 A TW 96126217A TW I398771 B TWI398771 B TW I398771B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- address
- graphics processor
- page table
- graphics
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/026—Arrangements or methods related to booting a display
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/125—Frame memory handling using unified memory architecture [UMA]
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明係關於消除或減少用於擷取系統記憶體顯示資料存取所需之位址轉譯資訊之系統記憶體存取。
圖形處理單元(GPU)被包含作為電腦、視訊遊戲、汽車導航及其它電子系統之一部分,以便在監視器或其它顯示裝置上產生圖形影像。待開發之最初之GPU將像素值(即,實際顯示之顏色)儲存在稱為圖框緩衝器之本端記憶體中。
自那時起,GPU(尤其為由加州聖克拉拉之NVIDIA公司設計及開發之GPU)之複雜性已顯著增加。儲存在圖框緩衝器中之資料之大小及複雜性同樣增加。此種圖形資料現不僅包含像素值,而且包含紋理、紋理描述符、遮影器程式指令及其它資料及命令。此等圖框緩衝器現因認可其擴展之作用而常被稱為圖形記憶體。
直至最近,GPU已經由高級圖形埠或AGP匯流排與中央處理單元及電腦系統中之其它裝置通信。雖然開發出此種匯流排之較快版本,但其不能夠將足夠之圖形資料傳送至GPU。因此,圖形資料儲存在GPU可用之本端記憶體中,而不必經過AGP埠。幸而已開發出一種新匯流排,其為外圍組件互連(PCI)標準之增強版本,或稱PCIE(PCI express)。NVIDIA公司已對此種匯流排協定及所引起之實施方案進行很大程度之改進及改良。此進而已允許為利於經由PCIE匯流排存取之系統記憶體而消除本端記憶體。
由於圖形記憶體位置之變化而產生各種複雜情況。一種複雜情況為,GPU使用虛擬位址追蹤資料儲存位置,而系統記憶體使用實體位址。為自系統記憶體讀取資料,GPU將其虛擬位址轉譯為實體位址。若此轉譯花費過多時間,則系統記憶體可能不會以足夠快之速度將資料提供至GPU。對於必須持續且快速地提供至GPU之像素或顯示資料而言尤其如此。
若將虛擬位址轉譯為實體位址所需之資訊未儲存在GPU上,則此種位址轉譯可能花費過多時間。明確而言,若此轉譯資訊在GPU上不可用,則需要第一記憶體存取來自系統記憶體中擷取該轉譯資訊。僅如此,才可在第二記憶體存取中自系統記憶體讀取顯示資料或其它所需資料。因此,第一記憶體存取串聯於第二記憶體存取之前,因為在無第一記憶體存取所提供之位址之情況下無法進行第二記憶體存取。額外之第一記憶體存取可能長達1 usec,從而大大減緩讀取顯示資料或其它所需資料之速率。
因此,需要消除或減少用於自系統記憶體擷取位址轉譯資訊之此等額外記憶體存取之電路、方法及設備。
因此,本發明實施例提供消除或減少用於擷取系統記憶體顯示資料存取所需之位址轉譯資訊之系統記憶體存取的電路、方法及設備。明確而言,位址轉譯資訊儲存在圖形處理器中。此減少或消除對於用於擷取轉譯資訊之單獨系統記憶體存取之需要。由於不需要額外之記憶體存取,所以處理器可更快地轉譯位址並自系統記憶體讀取所需之顯示資料或其它資料。
本發明之例示性實施例藉由用項目預填充稱為圖形轉譯後備緩衝器(圖形TLB)之快取記憶體來消除或減少開機之後對於位址轉譯資訊之系統記憶體存取,該等項目可用於將由GPU使用之虛擬位址轉譯成由系統記憶體使用之實體位址。在本發明之特定實施例中,用顯示資料所需之位址資訊來預填充圖形TLB,但在本發明之其它實施例中,用於其它類型之資料之位址亦可預填充圖形TLB。此防止原本需要用來擷取必要之位址轉譯資訊之額外系統記憶體存取。
開機之後,為確保所需之轉譯資訊維持在圖形處理器上,鎖定或以另外方式限制圖形TLB中之顯示存取所需之項目。此可藉由將存取限制在圖形TLB中之某些位置,藉由將旗標或其它識別資訊儲存在圖形TLB中,或藉由其它適當方法來完成。此防止覆寫原本需要自系統記憶體再次讀取之資料。
本發明之另一例示性實施例藉由儲存系統BIOS所提供之系統記憶體之較大連續區塊之基底位址及位址範圍來消除或減少對於位址轉譯資訊之記憶體存取。開機或發生其它適當事件時,系統BIOS向GPU配置較大記憶體區塊,其可稱為"劃出區(carveout)"。GPU可將此較大記憶體區塊用於顯示資料或其它資料。GPU將基底位址及範圍儲存在晶片上,例如儲存在硬體暫存器中。
當由GPU使用之虛擬位址將被轉譯成實體位址時,進行範圍檢查以查明虛擬位址是否在劃出區之範圍內。在本發明之特定實施例中,藉由使劃出區之基底位址對應於虛擬位址零來對此進行簡化。劃出區中之最高虛擬位址則對應於實體位址之範圍。若待轉譯之位址在劃出區之虛擬位址之範圍內,則可藉由將基底位址添加至虛擬位址而將虛擬位址轉譯成實體位址。若待轉譯之位址不在此範圍內,則可使用圖形TLB或分頁表來轉譯該位址。
本發明之各項實施例可包含本文描述之此等或其它特徵中之一或多個特徵。可參看以下具體實施方式及附圖來獲得對本發明之性質及優點之更好理解。
圖1為藉由包含本發明實施例而改良之計算系統之方塊圖。此方塊圖包含中央處理單元(CPU)或主機處理器100、系統平臺處理器(SPP)110、系統記憶體120、圖形處理單元(GPU)130、媒體通信處理器(MCP)150、網路160,及內部及外圍裝置270。亦包含圖框緩衝器、本端或圖形記憶體140,但用虛線展示。虛線指示雖然常規電腦系統包含此記憶體,但本發明實施例允許將其移除。該圖與所包含之其它圖一樣,為僅出於說明性目的而展示,且不限制本發明之可能實施例或申請專利範圍。
CPU 100經由主機匯流排105連接至SPP 110。SPP 110經由PCIE匯流排135與圖形處理單元130通信。SPP 110經由記憶體匯流排125自系統記憶體120讀取資料及將資料寫入至系統記憶體120。MCP 150經由例如HyperTransport匯流排155之高速連接與SPP 110通信,並將網路160及內部及外圍裝置170連接至電腦系統之剩餘部分。圖形處理單元130經由PCIE匯流排135接收資料,並產生用於藉由監視器或其它顯示裝置(未圖示)進行顯示之圖形及視訊影像。在本發明其它實施例中,圖形處理單元包含在整合式圖形處理器(IGP)中,使用該整合式圖形處理器代替SPP 110。在另外其它實施例中,可使用通用GPU作為GPU 130。
CPU 100可為處理器,例如熟習此項技術者眾所周知之由Intel公司或其它供應商製造之彼等處理器。SPP 110及MCP 150統稱為晶片組。系統記憶體120通常為排列成許多雙線內記憶體模組(DIMM)之許多動態隨機存取記憶體裝置。圖形處理單元130、SPP 110、MCP 150及IGP(若使用)較佳地由NVIDIA公司製造。
圖形處理單元130可能位於圖形卡上,而CPU 100、系統平臺處理器110、系統記憶體120及媒體通信處理器150可位於電腦系統母板上。包含圖形處理單元130之圖形卡通常為附接有圖形處理單元之資料印刷電路板。該等印刷電路板通常包含連接器(例如,PCIE連接器),其同樣附接至印刷電路板並配合至母板上包含之PCIE槽中。在本發明其它實施例中,圖形處理器包含在母板上,或歸入IGP中。
電腦系統(例如,所說明之電腦系統)可包含一個以上GPU 130。另外,此等圖形處理單元之每一者可位於單獨之圖形卡上。此等圖形卡中之兩者或兩者以上可藉由跨接器或其它連接而接合在一起。NVIDIA公司已開發出一種此類技術--開拓性SLITM
。在本發明其它實施例中,一或多個GPU可位於一或多個圖形卡上,而一或多個其它GPU位於母板上。
在先前開發之電腦系統中,GPU 130經由AGP匯流排與系統平臺處理器110或其它裝置(在例如北橋處)通信。然而,AGP匯流排不能以所需速率將所需資料供應至GPU 130。因此,圖框緩衝器140供GPU使用。此記憶體允許在資料不必橫穿AGP瓶頸之情況下存取該資料。
現已可用較快之資料傳遞協定,例如PCIE及HyperTransport。值得注意,NVIDIA公司已開發出改良之PCIE介面。因此,自GPU 130至系統記憶體120之頻寬已大大增加。因此,本發明實施例提供並允許移除圖框緩衝器140。可用於移除圖框緩衝器之另外方法及電路之實例可查閱共同待決且共同擁有之2005年10月18日申請之題為"Zero Frame Buffer"之第11/253438號美國專利申請案,該專利申請案以引用方式併入本文中。
本發明實施例所允許之對圖框緩衝器之移除提供節省,其不僅包含此等DRAM之去除而且亦包含額外節省。舉例而言,通常使用電壓調節器來控制記憶體之電源,且使用電容器來提供電源過濾。移除DRAM、調節器及電容器提供成本節省,其減少圖形卡之材料清單(BOM)。此外,簡化了板布局,減小了板空間,並簡化了圖形卡測試。此等因素縮減了研究及設計以及其它工程及測試成本,藉此增加包含本發明實施例之圖形卡之毛利。
雖然本發明實施例較好地適於改良零圖框緩衝器圖形處理器之效能,但亦可藉由包含本發明實施例來改良其它圖形處理器(包含具有有限或晶片上記憶體或有限之本端記憶體之彼等圖形處理器)。並且,雖然此實施例提供可藉由包含本發明實施例而改良之特定類型之電腦系統,但亦可改良其它類型之電子或電腦系統。舉例而言,可藉由包含本發明實施例來改良視訊及其它遊戲系統、導航、機頂盒、彈球機以及其它類型之系統。
並且,雖然本文描述之此等類型之電腦系統及其它電子系統目前較為常見,但當前正開發其它類型之電腦及其它電子系統,且將來將開發出其它系統。預期此等系統中之許多系統亦可藉由包含本發明實施例而得以改良。因此,所列舉之特定實例本質上為闡釋性的,且不限制本發明之可能實施例或申請專利範圍。
圖2為藉由包含本發明實施例而改良之另一計算系統之方塊圖。此方塊圖包含中央處理單元或主機處理器200、SPP 210、系統記憶體220、圖形處理單元230、MCP 250、網路260,及內部及外圍裝置270。再者,包含圖框緩衝器、本端或圖形記憶體240,但用虛線表示以突出其移除。
CPU 200經由主機匯流排205與SPP 210通信,並經由記憶體匯流排225存取系統記憶體220。GPU 230經由PCIE匯流排235與SPP 210通信,並經由記憶體匯流排245與本端記憶體通信。MCP 250經由例如HyperTransport匯流排255之高速連接與SPP 210通信,並將網路260及內部及外圍裝置270連接至電腦系統之剩餘部分。
與之前一樣,中央處理單元或主機處理器200可為由Intel公司或其它供應商製造之中央處理單元之一,且為熟習此項技術者眾所周知。圖形處理器230、整合式圖形處理器210及媒體及通信處理器240較佳地由NVIDIA公司提供。
圖1及2中移除圖框緩衝器140及240,以及本發明其它實施例中移除其它圖框緩衝器,並非不產生後果。舉例而言,產生關於用於自系統記憶體儲存及讀取資料之位址之困難。
當GPU使用本端記憶體來儲存資料時,本端記憶體嚴格地處於GPU之控制下。通常,其它電路均不能存取本端記憶體。此允許GPU以其認為合適之任何方式追蹤並配置位址。然而,由多個電路使用系統記憶體,且由作業系統配置空間給彼等電路。作業系統配置至GPU之空間可形成一連續記憶體區段。更有可能,配置至GPU之空間細分為許多區塊或區段,其中一些可能具有不同大小。此等區塊或區段可藉由初始、起始或基底位址及記憶體大小或位址範圍來描述。
圖形處理單元使用實際之系統記憶體位址較因難且不便利,因為提供給GPU之位址被配置於多個獨立區塊中。並且,每當開啟電源或另外重新配置記憶體位址時,提供給GPU之位址可能變化。執行於GPU上之軟體使用獨立於系統記憶體中之實際實體位址之虛擬位址會容易得多。明確而言,GPU將記憶體空間視為一較大連續區塊,而以若干較小之完全不同之區塊將記憶體配置至GPU。因此,當將資料寫入至系統記憶體或自系統記憶體讀取資料時,執行由GPU使用之虛擬位址與由系統記憶體使用之實體位址之間的轉譯。可使用表來執行此種轉譯,該表之項目包含虛擬位址及其相應之實體位址對應項。此等表稱為分頁表,而該等項目稱為分頁表項目(PTE)。
分頁表太大以致於不能置於GPU上;由於成本約束之緣故,此做法不合需要。因此,將分頁表儲存在系統記憶體中。然而,此意謂著每當需要來自系統記憶體之資料時,需要進行第一或額外記憶體存取來擷取所需之分頁表項目,且需要第二記憶體存取來擷取所需之資料。因此,在本發明實施例中,分頁表中之一些資料被快取儲存於GPU上之圖形TLB中。
當需要分頁表項目,且分頁表項目係在GPU上之圖形TLB中可用時,認為已發生命中(hit),且可進行位址轉譯。若分頁表項目未儲存在GPU上之圖形TLB中,則認為已發生未命中(miss)。此時,自系統記憶體中之分頁表中擷取所需之分頁表項目。
已擷取到所需之分頁表項目之後,將再次需要此同一分頁表項目之可能性很大。因此,為減少記憶體存取之次數,需要將此分頁表項目儲存在圖形TLB中。若快取記憶體中無空位置,則最近未使用之分頁表項目可能為利於此新分頁表項目而被覆寫或驅逐。在本發明各項實施例中,在驅逐之前,進行檢查以確定當前被快取之項目在其自系統記憶體被讀取之後是否被圖形處理單元修改。若當前被快取之項目被修改,則在圖形TLB中新分頁表項目覆寫當前被快取之項目之前進行回寫操作,在該回寫操作中將經更新之分頁表項目回寫至系統記憶體。在本發明其它實施例中,不執行此回寫程序。
在本發明特定實施例中,基於系統可能配置之最小粒度將分頁表編入索引,例如,PTE可表示最少4個4 KB區塊或頁。因此,藉由將虛擬位址除以16 KB並隨後乘以項目之大小,在分頁表中產生相關之索引。圖形TLB未命中之後,GPU使用上述索引來找到分頁表項目。在此特定實施例中,分頁表項目可映射大於4 KB之一或多個區塊。舉例而言,分頁表項目可映射最少四個4 KB區塊,且可映射大於4 KB一直達到最大總計為256 KB之4、8或16個區塊。一旦將此種分頁表項目載入快取記憶體中,圖形TLB便可藉由參考單個圖形TLB項目(其為單個PTE)而在該256 KB內找到虛擬位址。在此情況下,分頁表本身排列成16字節項目,該等項目之每一者映射至少16 KB。因此,256 KB分頁表項目複製在位於虛擬位址空間之該256 KB內之每個分頁表位置處。因此,在此實例中,存在具有精確相同之資訊之16筆分頁表項目。256 KB內之未命中讀取彼等相同項目中之一者。
如上文所提及,若所需之分頁表項目在圖形TLB中不可用,則需要進行額外記憶體存取來擷取該等項目。對於需要對資料之穩定、持續存取之特定圖形功能而言,此等額外記憶體存取非常不合需要。舉例而言,圖形處理單元需要可靠地存取來顯示資料,使得其可以所需速率將影像資料提供至監視器。若需要過多之記憶體存取,則所產生之等待時間可能中斷像素資料向監視器之流動,藉此破壞圖形影像。
明確而言,若需要自系統記憶體讀取用於顯示資料存取之位址轉譯資訊,則該存取與後續資料存取串聯,即必須自記憶體讀取位址轉譯資訊,因此GPU可瞭解所需之顯示資料儲存在何處。由此額外記憶體存取引起之額外等待時間減小了可將顯示資料提供至監視器之速率,從而再次破壞圖形影像。此等額外記憶體存取亦增加PCIE匯流排上之通信量並浪費系統記憶體頻寬。
當開機或發生圖形TLB為空或被清除之其它事件時,尤其可能進行用於擷取位址轉譯資訊之額外記憶體讀取。明確而言,在電腦系統開機時,基本輸入/輸出系統(BIOS)預期GPU可自由處置本端圖框緩衝記憶體。因此,在習知系統中,系統BIOS不配置系統記憶體中之空間以供圖形處理器使用。事實上,GPU自作業系統處請求一定量之系統記憶體空間。作業系統配置記憶體空間之後,GPU可將分頁表中之分頁表項目儲存在系統記憶體中,但圖形TLB為空。當需要顯示資料時,針對PTE之每一請求導致未命中,該未命中進一步導致額外記憶體存取。
因此,本發明實施例用分頁表項目預填充圖形TLB。意即,在需要分頁表項目之請求導致快取未命中之前用分頁表項目填充圖形TLB。此種預填充通常至少包含擷取顯示資料所需之分頁表項目,但其它分頁表項目亦可預填充圖形TLB。此外,為防止分頁表項目被驅逐,可鎖定或以另外方式限制一些項目。在本發明特定實施例中,鎖定或限制顯示資料所需之分頁表項目,但在其它實施例中,可鎖定或限制其它類型之資料。以下圖式中展示說明一個此類例示性實施例之流程圖。
圖3為說明根據本發明實施例之存取儲存在系統記憶體中之顯示資料之方法的流程圖。該圖與所包含之其它圖一樣,為僅出於說明性目的而展示,且不限制本發明之可能實施例或申請專利範圍。並且,儘管此處展示之此一實例及其它實例尤其較好地適於存取顯示資料,但可藉由包含本發明實施例來改良其它類型之資料存取。
在本方法中,GPU,或更明確而言執行於GPU上之驅動程式或資源管理員,確保可使用儲存在GPU本身上之轉譯資訊將虛擬位址轉譯成實體位址,而不需要自系統記憶體擷取此資訊。此藉由最初將轉譯項目預填充或預載入圖形TLB中來實現。隨後鎖定與顯示資料相關聯之位址,或以另外方式防止其被覆寫或驅逐。
明確而言,在動作310中,電腦或其它電子系統被開機,或經歷重新啟動、功率重置或類似事件。在動作320中,作為執行於GPU上之驅動程式之一部分之資源管理員自作業系統處請求系統記憶體空間。在動作330中,作業系統為CPU配置系統記憶體中之空間。
雖然在此實例中,執行於CPU上之作業系統負責配置系統記憶體中之圖框緩衝器或圖形記憶體空間,但在本發明之各項實施例中,執行於CPU或系統中其它裝置上之驅動程式或其它軟體可負責此項任務。在其它實施例中,此項任務由作業系統及該驅動程式或其它軟體中之一者或一者以上共用。在動作340中,資源管理員自作業系統接收系統記憶體中之空間之實體位址資訊。此資訊通常將至少包含系統記憶體中一或多個區之基底位址及大小或範圍。
資源管理員隨後可壓縮或以另外方式配置此資訊,以便限制將由GPU使用之虛擬位址轉譯成由系統記憶體使用之實體位址所需之分頁表項目之數目。舉例而言,可組合由作業系統向GPU配置之系統記憶體空間之單獨但連續之區塊,其中將單個基底位址用作起始位址,且將虛擬位址用作索引信號。展示此一情況之實例可查閱共同待決且共同擁有之2005年3月10日申請之題為"Memory Management for Virtual Address Space with Translation Units of Variable Range Size"之第11/077662號美國專利申請案,該專利申請案以引用方式併入本文中。並且,雖然在此實例中,此項任務為作為執行於GPU上之驅動程式之一部分的資源管理員之責任;但在其它實施例中,此實例及所包含之其它實例中展示之此任務以及其它任務可由其它軟體、韌體或硬體完成或共用。
在動作350中,資源管理員將分頁表之轉譯項目寫入至系統記憶體中。資源管理員亦用此等轉譯項目中之至少一些轉譯項目對圖形TLB進行預載入或預填充。在動作360中,可鎖定一些或所有圖形TLB項目,或以另外方式防止其被驅逐。在本發明之特定實施例中,防止所顯示之資料之位址被覆寫或驅逐,以確保可在不需要針對位址轉譯資訊進行額外系統記憶體存取之情況下提供顯示資訊之位址。
可使用符合本發明實施例之各種方法來實現該鎖定。舉例而言,在許多用戶端可自圖形TLB讀取資料之情況下,可限制此等用戶端中之一者或一者以上,使其無法將資料寫入至被限制之快取記憶體位置,而必須寫入至許多共有(pooled)或未被限制之快取記憶體線中之一者。更多細節可參閱共同待決且共同擁有之2005年12月8日申請之題為"Shared Cache with Client-Specific Replacement Policy"之第11/298256號美國專利申請案,該專利申請案以引用方式併入本文中。在其它實施例中,可對可向圖形TLB進行寫入之電路施加其它限制,或可將例如旗標之資料與項目一起儲存在圖形TLB中。舉例而言,可對可向圖形TLB進行寫入之電路隱藏一些快取記憶體線之存在。或者,若設定了旗標,則無法覆寫或驅逐相關聯之快取記憶體線中之資料。
在動作370中,當需要來自系統記憶體之顯示資料或其它資料時,使用圖形TLB中之分頁表項目將由GPU使用之虛擬位址轉譯成實體位址。明確而言,將虛擬位址提供至圖形TLB,且讀取相應之實體位址。再者,若此資訊未儲存在圖形TLB中,則需要在可發生位址轉譯之前自系統記憶體處請求該資訊。
在本發明各項實施例中,可包含其它技術來限制圖形TLB未命中之影響。明確而言,可採取額外步驟以減少記憶體存取等待時間,藉此減小快取未命中對顯示資料之供應之影響。一種解決方案為使用作為PCIE規格之一部分之虛擬通道VC1。若圖形TLB未命中使用虛擬通道VC1,則其可回避其它請求,從而允許更快地擷取所需項目。然而,習知晶片組不允許存取虛擬通道VC1。此外,雖然NVIDIA公司可以符合本發明之方式在產品中實施此解決方案,但與其它裝置之互操作性使得當前如此做法並不合乎需要,但將來此情況可能改變。另一解決方案涉及將由圖形TLB未命中產生之請求列入優先或進行標記。舉例而言,可用高優先權標誌對請求進行標記。此解決方案具有與上一解決方案類似之互操作性考慮。
圖4A至4C說明根據本發明實施例在存取顯示資料之方法期間電腦系統中命令及資料之傳遞。在此特定實例中,展示圖1之電腦系統,但其它系統(例如,圖2所示之系統)中之命令及資料傳遞為類似的。
圖4A中,當系統開機、重置、重新啟動或發生其它事件時,GPU將對於系統記憶體空間之請求發送至作業系統。再者,此請求可來自在GPU上運作之驅動程式,明確而言,驅動程式之資源管理員部分可作出此請求,但其它硬體、韌體或軟體亦可作出此請求。此請求可經由系統平臺處理器410自GPU 430傳遞至中央處理單元400。
圖4B中,作業系統為GPU配置系統記憶體中之空間以供用作圖框緩衝器或圖形記憶體422。儲存在圖框緩衝器或圖形記憶體422中之資料可包含顯示資料,即用於顯示之像素值、紋理、紋理描述符、遮影器程式指令,及其它資料及命令。
在此實例中,所配置之空間,即系統記憶體420中之圖框緩衝器422,展示為連續的。在其它實施例或實例中,所配置之空間可能不連續,即,其可能完全不同,細分為多個區段。
將通常包含系統記憶體之區段之一或多個基底位址及範圍之資訊傳遞至GPU。再者,在本發明特定實施例中,將此資訊傳遞至在GPU 430上運作之驅動程式之資源管理員部分,但可使用其它軟體、韌體或硬體。此資訊可經由系統平臺處理器410自CPU 400傳遞至GPU 430。
圖4C中,GPU將分頁表中之轉譯項目寫入在系統記憶體中。GPU亦用此等轉譯項目中之至少一些轉譯項目對圖形TLB進行預載入。再者,此等項目將由GPU使用之虛擬位址轉譯成由系統記憶體420中之圖框緩衝器422使用之實體位址。
與之前一樣,可鎖定或以另外方式限制圖形TLB中之一些項目,使其無法被驅逐或覆寫。再者,在本發明特定實施例中,鎖定或以另外方式限制對識別圖框緩衝器422中儲存有像素或顯示資料之位置之位址進行轉譯之項目。
當需要自圖框緩衝器422存取資料時,使用圖形TLB 432將由GPU 430使用之虛擬位址轉譯成實體位址。隨後將此等請求傳遞至系統平臺處理器410,系統平臺處理器410讀取所需之資料並將其傳回GPU 430。
在以上實例中,開機或其它功率重置或類似狀況之後,GPU將對於系統記憶體中之空間之請求發送至作業系統。在本發明其它實施例中,GPU將需要系統記憶體中之空間之事實為已知的,且不需要作出請求。在此情況下,在開機、重置、重新啟動或其它適當事件之後,系統BIOS、作業系統或其它軟體、韌體或硬體可配置系統記憶體中之空間。此在受控環境中尤其可行,例如在GPU不如其通常在桌上型應用中那樣容易被交換或替代之移動應用中。
GPU可能已瞭解在系統記憶體中其將使用之位址,或位址資訊可由系統BIOS或作業系統傳遞至GPU。在任一情況下,記憶體空間可為記憶體之連續部分,在此情況下,僅單個位址--基底位址需要為已知或被提供至GPU。或者,記憶體空間可為完全不同或非連續的,且可能需要多個位址為已知或被提供至GPU。通常,例如記憶體區塊大小或範圍資訊之其它資訊亦傳遞至GPU或為GPU所知。
並且,在本發明各項實施例中,可由系統之作業系統在開機時配置系統記憶體中之空間,且GPU可在稍後之時間作出對於更多記憶體之請求。在此實例中,系統BIOS及作業系統均可配置系統記憶體中之空間以供GPU使用。以下圖式展示本發明實施例之實例,其中系統BIOS經程式設計以在開機時為GPU配置系統記憶體空間。
圖5為說明根據本發明實施例之存取系統記憶體中之顯示資料之另一方法的流程圖。再者,雖然本發明實施例較好地適於提供對顯示資料之存取,但各項實施例可提供對此類型或其它類型之資料之存取。在此實例中,系統BIOS在開機時瞭解需要配置系統記憶體中之空間以供GPU使用。此空間可為連續或非連續的。並且,在此實例中,系統BIOS將記憶體及位址資訊傳遞至GPU上之驅動程式之資源管理員或其它部分,但在本發明之其它實施例中,GPU上之驅動程式之資源管理員或其它部分可能提早意識到該位址資訊。
明確而言,在動作510中,電腦或其它電子系統開機。在動作520中,系統BIOS或其它適當之軟體、韌體或硬體(例如,作業系統)配置系統記憶體中之空間以供GPU使用。若記憶體空間為連續的,則系統BIOS將基底位址提供至在GPU上執行之資源管理員或驅動程式。若記憶體空間為非連續的,則系統BIOS將提供許多基底位址。每一基底位址通常伴隨有記憶體區塊大小資訊,例如大小或位址範圍資訊。通常,記憶體空間為劃出之連續記憶體空間。此資訊通常伴隨有位址範圍資訊。
在動作540中,儲存基底位址及範圍以供在GPU上使用。在動作550中,可藉由使用虛擬位址作為索引而將後續虛擬位址轉換為實體位址。舉例而言,在本發明特定實施例中,可藉由將虛擬位址添加至基底位址而將虛擬位址轉換為實體位址。
明確而言,當要將虛擬位址轉譯為實體位址時,執行範圍檢查。當所儲存之實體基底位址對應於虛擬位址零時,若虛擬位址在該範圍內,則可藉由將虛擬位址與實體基底位址相加來轉譯虛擬位址。類似地,當所儲存之實體基底位址對應於虛擬位址"X"時,若虛擬位址在該範圍內,則可藉由將虛擬位址與實體基底位址相加並減去"X"來轉譯虛擬位址。若虛擬位址不在該範圍內,則可如上所述使用圖形TLB或分頁表項目來轉譯位址。
圖6說明根據本發明實施例在存取顯示資料之方法期間電腦系統中命令及資料之傳遞。開機之後,系統BIOS配置系統記憶體624中之空間-"劃出區"622,以供GPU 630使用。
GPU接收並儲存系統記憶體620中所配置之空間或劃出區622之基底位址(或多個基底位址)。此資料可儲存在圖形TLB 632中,或其可儲存在GPU 630上之其它地方,例如儲存在硬體暫存器中。此位址連同劃出區622之範圍一起儲存在(例如)硬體暫存器中。
當將自系統記憶體620中之圖框緩衝器622讀取資料時,可藉由將虛擬位址視為索引而將由GPU 630使用之虛擬位址轉換成由系統記憶體使用之實體位址。再者,在本發明特定實施例中,藉由將虛擬位址加至基底位址而將劃出位址範圍中之虛擬位址轉譯為實體位址。意即,若基底位址對應於虛擬位址零,則可藉由如上所述將虛擬位址加至基底位址而將虛擬位址轉換為實體位址。再者,可如上所述使用圖形TLB及分頁表來轉譯範圍外之虛擬位址。
圖7為符合本發明實施例之圖形處理單元之方塊圖。此方塊圖之圖形處理單元700包含PCIE介面710、圖形管線720、圖形TLB 730,及邏輯電路740。PCIE介面710經由PCIE匯流排750傳輸及接收資料。再者,在本發明其它實施例中,可使用當前已開發或正開發之其它類型之匯流排,以及將來將開發之彼等匯流排。圖形處理單元通常形成於積體電路上,但在一些實施例中,一個以上積體電路可包括GPU 700。
圖形管線720自PCIE介面接收資料,並呈現資料以便在監視器或其它裝置上顯示。圖形TLB 730儲存分頁表項目,該分頁表項目係用於將由圖形管線720使用之虛擬記憶體位址轉譯成由系統記憶體使用之實體記憶體位址。邏輯電路740控制圖形TLB 730,檢查對儲存在圖形TLB 730處之資料之鎖定或其它限制,並自快取記憶體讀取資料及將資料寫入至快取記憶體。
圖8為說明根據本發明實施例之圖形卡之圖。圖形卡800包含圖形處理單元810、匯流排連接器820,及接至第二圖形卡之連接器830。匯流排連接器828可為經設計以適配於PCIE槽之PCIE連接器,例如電腦系統之母板上之槽上PCIE。接至第二卡之連接器830可經組態以適配於接至一或多個其它圖形卡之跨接器或其它連接。可包含例如電源調節器及電容器之其它裝置。應注意,此圖形卡上不包含記憶體裝置。
已出於說明及描述之目的呈現對本發明例示性實施例之以上描述。不希望其為詳盡的或將本發明限於所描述之精確形式,且鑒於以上教示,可能作出許多修改及變化。選擇並描述該等實施例以便最佳地闡釋本發明之原理及其實踐應用,藉此使熟習此項技術者能夠最佳地將本發明用於各種實施例中,並作出適於所預期之特定用途之各種修改。
100、200、400、600...中央處理單元
105、205、405、605...主機匯流排
110、210、410、610...系統平臺處理器
120、220、420、620...系統記憶體
125、225、425、625...記憶體匯流排
130、230、430、630、700、810...圖形處理單元
135、235、435、635、750...PCIE匯流排
140、240...圖框緩衝器
145、245...記憶體匯流排
150、250、450、650...媒體通信處理器
155、255...HyperTransport匯流排
160、260、460、660...網路
170、270、470、670...裝置
422...圖框緩衝器
432...圖形TLB
622...劃出區
632...圖形TLB
710...PCIE介面
720...圖形管線
730...圖形TLB
740...邏輯電路
800...圖形卡
820...匯流排連接器
830...接至第二圖形卡之連接器
圖1為藉由包含本發明實施例而改良之計算系統之方塊圖;圖2為藉由包含本發明實施例而改良之另一計算系統之方塊圖;圖3為說明根據本發明實施例之存取儲存在系統記憶體中之顯示資料之方法的流程圖;圖4A至4C說明根據本發明實施例在存取顯示資料之方法期間電腦系統中命令及資料之傳遞;圖5為說明根據本發明實施例之存取系統記憶體中之顯示資料之另一方法的流程圖;圖6說明根據本發明實施例在存取顯示資料之方法期間電腦系統中命令及資料之傳遞;圖7為符合本發明實施例之圖形處理單元之方塊圖;及圖8為根據本發明實施例之圖形卡之圖。
100...中央處理單元
105...主機匯流排
110...系統平臺處理器
120...系統記憶體
125...記憶體匯流排
130...圖形處理單元
135...PCIE匯流排
140...圖框緩衝器
145...記憶體匯流排
150...媒體通信處理器
155...HyperTransport匯流排
160...網路
170...裝置
Claims (19)
- 一種使用一圖形處理器來擷取資料之方法,其包括:請求存取一系統記憶體中之記憶體位置;接收該系統記憶體中記憶體位置之至少一區塊之位址資訊,該位址資訊包含識別至少一實體記憶體位址之資訊;以及將對應於該至少一實體記憶體位址之一分頁表項目儲存在該圖形處理器之一快取記憶體中;其中接收該位址資訊,且在不等待一快取未命中之情況下將該分頁表項目儲存在該快取記憶體中。
- 如請求項1之方法,其進一步包括:將該分頁表項目儲存在該系統記憶體中。
- 如請求項2之方法,其進一步包括:鎖定該快取記憶體中儲存有該分頁表項目之位置。
- 如請求項3之方法,其中該圖形處理器為一圖形處理單元。
- 如請求項3之方法,其中該圖形處理器包含在一整合式圖形處理器上。
- 如請求項3之方法,其中該請求存取一系統記憶體中之記憶體位置係向一作業系統提出。
- 如請求項3之方法,其中識別至少一實體記憶體位址之該資訊包括一基底位址及一記憶體區塊大小。
- 一種圖形處理器,其包括:一資料介面,其用於提供一存取一系統記憶體中之記 憶體位置之請求並用於接收關於該系統記憶體中之記憶體位置之位址資訊,該位址資訊包含識別至少一實體記憶體位址之資訊;一快取記憶體控制器,其用於寫入相對應於該至少一實體記憶體位址之一分頁表項目;以及一快取記憶體,其用於儲存該分頁表項目,其中接收該位址資訊,且在不等待發生一快取未命中之情況下將該分頁表項目儲存在該快取記憶體中。
- 如請求項8之圖形處理器,其中該資料介面亦提供一將該分頁表項目儲存在該系統記憶體中之請求。
- 如請求項8之圖形處理器,其中該資料介面提供一在一系統開機之後存取一系統記憶體中之記憶體位置之請求。
- 如請求項8之圖形處理器,其中該快取記憶體控制器鎖定儲存有該分頁表項目之位置。
- 如請求項8之圖形處理器,其中該快取記憶體控制器限制存取儲存有該虛擬位址及該實體位址之位置。
- 如請求項8之圖形處理器,其中該資料介面電路為一PCIE介面電路。
- 如請求項8之圖形處理器,其中該圖形處理器為一圖形處理單元。
- 如請求項8之圖形處理器,其中該圖形處理器包含在一整合式圖形處理器上。
- 一種使用一圖形處理器來擷取資料之方法,其包括,藉 由該圖形處理器:接收一系統記憶體中之一記憶體區塊之一基底位址及範圍;儲存該基底位址及範圍於該圖形處理器;接收一第一位址;確定該第一位址是否在該範圍內,且若在,則藉由將該基底位址加至該第一位址而將該第一位址轉譯成一第二位址,否則在不等待發生一快取未命中之情況下將一分頁表項目儲存在一快取記憶體中;自該圖形處理器中該快取記憶體讀取該分頁表項目;以及使用該分頁表項目將該第一位址轉譯成一第二位址。
- 如請求項16之方法,其進一步包括:在自該快取記憶體讀取一分頁表項目之前,確定該分頁表是否儲存在該快取記憶體中,且若為否,則自該系統記憶體讀取該分頁表項目。
- 如請求項16之方法,其中該圖形處理器為一圖形處理單元。
- 如請求項16之方法,其中該圖形處理器包含在一整合式圖形處理器上。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US82095206P | 2006-07-31 | 2006-07-31 | |
| US82112706P | 2006-08-01 | 2006-08-01 | |
| US11/689,485 US20080028181A1 (en) | 2006-07-31 | 2007-03-21 | Dedicated mechanism for page mapping in a gpu |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200817899A TW200817899A (en) | 2008-04-16 |
| TWI398771B true TWI398771B (zh) | 2013-06-11 |
Family
ID=38461494
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW096126217A TWI398771B (zh) | 2006-07-31 | 2007-07-18 | 擷取資料的圖形處理器與方法 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US20080028181A1 (zh) |
| JP (1) | JP4941148B2 (zh) |
| KR (1) | KR101001100B1 (zh) |
| DE (1) | DE102007032307A1 (zh) |
| GB (1) | GB2440617B (zh) |
| SG (1) | SG139654A1 (zh) |
| TW (1) | TWI398771B (zh) |
Families Citing this family (33)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5115548B2 (ja) * | 2007-03-15 | 2013-01-09 | 日本電気株式会社 | 半導体集積回路装置 |
| US8024547B2 (en) * | 2007-05-01 | 2011-09-20 | Vivante Corporation | Virtual memory translation with pre-fetch prediction |
| US20080276067A1 (en) * | 2007-05-01 | 2008-11-06 | Via Technologies, Inc. | Method and Apparatus for Page Table Pre-Fetching in Zero Frame Display Channel |
| US7827333B1 (en) * | 2008-02-04 | 2010-11-02 | Nvidia Corporation | System and method for determining a bus address on an add-in card |
| US8219778B2 (en) * | 2008-02-27 | 2012-07-10 | Microchip Technology Incorporated | Virtual memory interface |
| US8392667B2 (en) * | 2008-12-12 | 2013-03-05 | Nvidia Corporation | Deadlock avoidance by marking CPU traffic as special |
| TWI514324B (zh) * | 2010-11-30 | 2015-12-21 | Ind Tech Res Inst | 影像目標區域追蹤系統與方法及電腦程式產品 |
| US9338215B2 (en) | 2011-03-14 | 2016-05-10 | Slangwho, Inc. | Search engine |
| US9053037B2 (en) * | 2011-04-04 | 2015-06-09 | International Business Machines Corporation | Allocating cache for use as a dedicated local storage |
| US9164923B2 (en) | 2011-07-01 | 2015-10-20 | Intel Corporation | Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform |
| WO2014031495A2 (en) | 2012-08-18 | 2014-02-27 | Arteris SAS | System translation look-aside buffer with request-based allocation and prefetching |
| US20140101405A1 (en) * | 2012-10-05 | 2014-04-10 | Advanced Micro Devices, Inc. | Reducing cold tlb misses in a heterogeneous computing system |
| US9697006B2 (en) | 2012-12-19 | 2017-07-04 | Nvidia Corporation | Technique for performing memory access operations via texture hardware |
| US9348762B2 (en) | 2012-12-19 | 2016-05-24 | Nvidia Corporation | Technique for accessing content-addressable memory |
| US9720858B2 (en) | 2012-12-19 | 2017-08-01 | Nvidia Corporation | Technique for performing memory access operations via texture hardware |
| US9292453B2 (en) * | 2013-02-01 | 2016-03-22 | International Business Machines Corporation | Storing a system-absolute address (SAA) in a first level translation look-aside buffer (TLB) |
| US9619364B2 (en) | 2013-03-14 | 2017-04-11 | Nvidia Corporation | Grouping and analysis of data access hazard reports |
| US9886736B2 (en) | 2014-01-20 | 2018-02-06 | Nvidia Corporation | Selectively killing trapped multi-process service clients sharing the same hardware context |
| US10152312B2 (en) | 2014-01-21 | 2018-12-11 | Nvidia Corporation | Dynamic compiler parallelism techniques |
| US9563571B2 (en) | 2014-04-25 | 2017-02-07 | Apple Inc. | Intelligent GPU memory pre-fetching and GPU translation lookaside buffer management |
| US9507726B2 (en) | 2014-04-25 | 2016-11-29 | Apple Inc. | GPU shared virtual memory working set management |
| US9594697B2 (en) * | 2014-12-24 | 2017-03-14 | Intel Corporation | Apparatus and method for asynchronous tile-based rendering control |
| CN106560798B (zh) * | 2015-09-30 | 2020-04-03 | 杭州华为数字技术有限公司 | 一种内存访问方法、装置及计算机系统 |
| DE102016219202A1 (de) * | 2016-10-04 | 2018-04-05 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Schützen eines Arbeitsspeichers |
| US10417140B2 (en) * | 2017-02-24 | 2019-09-17 | Advanced Micro Devices, Inc. | Streaming translation lookaside buffer |
| CN112262374B (zh) * | 2018-06-12 | 2025-02-21 | 华为技术有限公司 | 一种内存管理方法、装置及系统 |
| US11436292B2 (en) | 2018-08-23 | 2022-09-06 | Newsplug, Inc. | Geographic location based feed |
| WO2020081431A1 (en) | 2018-10-15 | 2020-04-23 | The Board Of Trustees Of The University Of Illinois | In-memory near-data approximate acceleration |
| CN113227997B (zh) * | 2018-10-23 | 2024-10-15 | 辉达公司 | 使用多个gpu对散列表有效且可扩展地构建和探测 |
| CN111274166B (zh) * | 2018-12-04 | 2022-09-20 | 展讯通信(上海)有限公司 | Tlb的预填及锁定方法和装置 |
| US11550728B2 (en) * | 2019-09-27 | 2023-01-10 | Advanced Micro Devices, Inc. | System and method for page table caching memory |
| CN111338988B (zh) * | 2020-02-20 | 2022-06-14 | 西安芯瞳半导体技术有限公司 | 内存访问方法、装置、计算机设备和存储介质 |
| US12326816B2 (en) * | 2020-12-21 | 2025-06-10 | Intel Corporation | Technologies for offload device fetching of address translations |
Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0902356A2 (en) * | 1997-09-09 | 1999-03-17 | Compaq Computer Corporation | Use of a link bit to fetch entries of a graphics address remapping table |
| US5949436A (en) * | 1997-09-30 | 1999-09-07 | Compaq Computer Corporation | Accelerated graphics port multiple entry gart cache allocation system and method |
| US5999743A (en) * | 1997-09-09 | 1999-12-07 | Compaq Computer Corporation | System and method for dynamically allocating accelerated graphics port memory space |
| US6104417A (en) * | 1996-09-13 | 2000-08-15 | Silicon Graphics, Inc. | Unified memory computer architecture with dynamic graphics memory allocation |
| US6418523B2 (en) * | 1997-06-25 | 2002-07-09 | Micron Electronics, Inc. | Apparatus comprising a translation lookaside buffer for graphics address remapping of virtual addresses |
| US20020144077A1 (en) * | 2001-03-30 | 2002-10-03 | Andersson Peter Kock | Mechanism to extend computer memory protection schemes |
| US6628294B1 (en) * | 1999-12-31 | 2003-09-30 | Intel Corporation | Prefetching of virtual-to-physical address translation for display data |
| US20040268071A1 (en) * | 2003-06-24 | 2004-12-30 | Intel Corporation | Dynamic TLB locking |
| US6857058B1 (en) * | 1999-10-04 | 2005-02-15 | Intel Corporation | Apparatus to map pages of disparate sizes and associated methods |
| US20060036811A1 (en) * | 2004-08-11 | 2006-02-16 | International Business Machines Corporation | Method for software controllable dynamically lockable cache line replacement system |
Family Cites Families (38)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4677546A (en) * | 1984-08-17 | 1987-06-30 | Signetics | Guarded regions for controlling memory access |
| JPS62237547A (ja) * | 1986-04-09 | 1987-10-17 | Hitachi Ltd | アドレス変換方式 |
| JP2635058B2 (ja) * | 1987-11-11 | 1997-07-30 | 株式会社日立製作所 | アドレス変換方式 |
| JP2689336B2 (ja) * | 1988-07-29 | 1997-12-10 | 富士通株式会社 | コンピュータシステムに於けるアダプタ用アドレス変換装置 |
| US5058003A (en) * | 1988-12-15 | 1991-10-15 | International Business Machines Corporation | Virtual storage dynamic address translation mechanism for multiple-sized pages |
| US5394537A (en) * | 1989-12-13 | 1995-02-28 | Texas Instruments Incorporated | Adaptive page placement memory management system |
| JPH0418650A (ja) * | 1990-05-14 | 1992-01-22 | Toshiba Corp | メモリ管理装置 |
| EP0508577A1 (en) * | 1991-03-13 | 1992-10-14 | International Business Machines Corporation | Address translation mechanism |
| US5617554A (en) * | 1992-02-10 | 1997-04-01 | Intel Corporation | Physical address size selection and page size selection in an address translator |
| US5465337A (en) * | 1992-08-13 | 1995-11-07 | Sun Microsystems, Inc. | Method and apparatus for a memory management unit supporting multiple page sizes |
| US5555387A (en) * | 1995-06-06 | 1996-09-10 | International Business Machines Corporation | Method and apparatus for implementing virtual memory having multiple selected page sizes |
| US5479627A (en) * | 1993-09-08 | 1995-12-26 | Sun Microsystems, Inc. | Virtual address to physical address translation cache that supports multiple page sizes |
| US5446854A (en) * | 1993-10-20 | 1995-08-29 | Sun Microsystems, Inc. | Virtual memory computer apparatus and address translation mechanism employing hashing scheme and page frame descriptor that support multiple page sizes |
| EP0663636B1 (en) * | 1994-01-12 | 2001-10-31 | Sun Microsystems, Inc. | Logically addressable physical memory for a virtual memory computer system that supports multiple page sizes |
| US5822749A (en) * | 1994-07-12 | 1998-10-13 | Sybase, Inc. | Database system with methods for improving query performance with cache optimization strategies |
| JP3740195B2 (ja) * | 1994-09-09 | 2006-02-01 | 株式会社ルネサステクノロジ | データ処理装置 |
| US5963984A (en) * | 1994-11-08 | 1999-10-05 | National Semiconductor Corporation | Address translation unit employing programmable page size |
| US5958756A (en) * | 1996-01-26 | 1999-09-28 | Reynell; Christopher Paul | Method and apparatus for treating waste |
| US5963964A (en) * | 1996-04-05 | 1999-10-05 | Sun Microsystems, Inc. | Method, apparatus and program product for updating visual bookmarks |
| US5928352A (en) * | 1996-09-16 | 1999-07-27 | Intel Corporation | Method and apparatus for implementing a fully-associative translation look-aside buffer having a variable numbers of bits representing a virtual address entry |
| US5987582A (en) * | 1996-09-30 | 1999-11-16 | Cirrus Logic, Inc. | Method of obtaining a buffer contiguous memory and building a page table that is accessible by a peripheral graphics device |
| US6308248B1 (en) * | 1996-12-31 | 2001-10-23 | Compaq Computer Corporation | Method and system for allocating memory space using mapping controller, page table and frame numbers |
| US6349355B1 (en) * | 1997-02-06 | 2002-02-19 | Microsoft Corporation | Sharing executable modules between user and kernel threads |
| JP3296240B2 (ja) * | 1997-03-28 | 2002-06-24 | 日本電気株式会社 | バス接続装置 |
| KR100263672B1 (ko) * | 1997-05-08 | 2000-09-01 | 김영환 | 가변적인 페이지 크기를 지원하는 어드레스 변환장치 |
| US6112285A (en) * | 1997-09-23 | 2000-08-29 | Silicon Graphics, Inc. | Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support |
| US6356991B1 (en) * | 1997-12-31 | 2002-03-12 | Unisys Corporation | Programmable address translation system |
| US6205531B1 (en) * | 1998-07-02 | 2001-03-20 | Silicon Graphics Incorporated | Method and apparatus for virtual address translation |
| US6374341B1 (en) * | 1998-09-02 | 2002-04-16 | Ati International Srl | Apparatus and a method for variable size pages using fixed size translation lookaside buffer entries |
| JP2001022640A (ja) * | 1999-07-02 | 2001-01-26 | Victor Co Of Japan Ltd | メモリ管理方法 |
| US6457068B1 (en) * | 1999-08-30 | 2002-09-24 | Intel Corporation | Graphics address relocation table (GART) stored entirely in a local memory of an expansion bridge for address translation |
| US6477612B1 (en) * | 2000-02-08 | 2002-11-05 | Microsoft Corporation | Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process |
| JP4263919B2 (ja) * | 2002-02-25 | 2009-05-13 | 株式会社リコー | 画像形成装置及びメモリ管理方法 |
| US20040117594A1 (en) * | 2002-12-13 | 2004-06-17 | Vanderspek Julius | Memory management method |
| US7194582B1 (en) * | 2003-05-30 | 2007-03-20 | Mips Technologies, Inc. | Microprocessor with improved data stream prefetching |
| US20050160229A1 (en) * | 2004-01-16 | 2005-07-21 | International Business Machines Corporation | Method and apparatus for preloading translation buffers |
| JP2006195871A (ja) * | 2005-01-17 | 2006-07-27 | Ricoh Co Ltd | 通信装置、電子機器、及び画像形成装置 |
| US7519781B1 (en) * | 2005-12-19 | 2009-04-14 | Nvidia Corporation | Physically-based page characterization data |
-
2007
- 2007-03-21 US US11/689,485 patent/US20080028181A1/en not_active Abandoned
- 2007-07-10 SG SG200705128-7A patent/SG139654A1/en unknown
- 2007-07-11 DE DE102007032307A patent/DE102007032307A1/de not_active Ceased
- 2007-07-13 GB GB0713574A patent/GB2440617B/en active Active
- 2007-07-18 TW TW096126217A patent/TWI398771B/zh active
- 2007-07-20 JP JP2007189725A patent/JP4941148B2/ja active Active
- 2007-07-30 KR KR1020070076557A patent/KR101001100B1/ko active Active
Patent Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6104417A (en) * | 1996-09-13 | 2000-08-15 | Silicon Graphics, Inc. | Unified memory computer architecture with dynamic graphics memory allocation |
| US6418523B2 (en) * | 1997-06-25 | 2002-07-09 | Micron Electronics, Inc. | Apparatus comprising a translation lookaside buffer for graphics address remapping of virtual addresses |
| EP0902356A2 (en) * | 1997-09-09 | 1999-03-17 | Compaq Computer Corporation | Use of a link bit to fetch entries of a graphics address remapping table |
| US5999743A (en) * | 1997-09-09 | 1999-12-07 | Compaq Computer Corporation | System and method for dynamically allocating accelerated graphics port memory space |
| US5949436A (en) * | 1997-09-30 | 1999-09-07 | Compaq Computer Corporation | Accelerated graphics port multiple entry gart cache allocation system and method |
| US6857058B1 (en) * | 1999-10-04 | 2005-02-15 | Intel Corporation | Apparatus to map pages of disparate sizes and associated methods |
| US6628294B1 (en) * | 1999-12-31 | 2003-09-30 | Intel Corporation | Prefetching of virtual-to-physical address translation for display data |
| US20020144077A1 (en) * | 2001-03-30 | 2002-10-03 | Andersson Peter Kock | Mechanism to extend computer memory protection schemes |
| US20040268071A1 (en) * | 2003-06-24 | 2004-12-30 | Intel Corporation | Dynamic TLB locking |
| US20060036811A1 (en) * | 2004-08-11 | 2006-02-16 | International Business Machines Corporation | Method for software controllable dynamically lockable cache line replacement system |
Also Published As
| Publication number | Publication date |
|---|---|
| GB0713574D0 (en) | 2007-08-22 |
| JP4941148B2 (ja) | 2012-05-30 |
| JP2008033928A (ja) | 2008-02-14 |
| KR20080011630A (ko) | 2008-02-05 |
| TW200817899A (en) | 2008-04-16 |
| GB2440617A (en) | 2008-02-06 |
| GB2440617B (en) | 2009-03-25 |
| US20080028181A1 (en) | 2008-01-31 |
| KR101001100B1 (ko) | 2010-12-14 |
| DE102007032307A1 (de) | 2008-02-14 |
| SG139654A1 (en) | 2008-02-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI398771B (zh) | 擷取資料的圖形處理器與方法 | |
| US8451281B2 (en) | Shared virtual memory between a host and discrete graphics device in a computing system | |
| US10078590B2 (en) | Technique to share information among different cache coherency domains | |
| CN105630703B (zh) | 利用可编程哈希地址的控制缓存访问的方法及相关缓存控制器 | |
| US6801207B1 (en) | Multimedia processor employing a shared CPU-graphics cache | |
| US6483516B1 (en) | Hierarchical texture cache | |
| US6591347B2 (en) | Dynamic replacement technique in a shared cache | |
| US20140089602A1 (en) | System cache with partial write valid states | |
| US10241925B2 (en) | Selecting a default page size in a variable page size TLB | |
| US9678872B2 (en) | Memory paging for processors using physical addresses | |
| US10467138B2 (en) | Caching policies for processing units on multiple sockets | |
| CN107025085A (zh) | 数据处理系统 | |
| CN101310259B (zh) | 用于共享l2映射高速缓存的对称分配的方法和系统 | |
| CN100543770C (zh) | 用于gpu中的页映射的专门机制 | |
| US9153211B1 (en) | Method and system for tracking accesses to virtual addresses in graphics contexts | |
| US7483032B1 (en) | Zero frame buffer | |
| US7840757B2 (en) | Method and apparatus for providing high speed memory for a processing unit | |
| CN107533523A (zh) | 使用存储器控制器基于存储器初始化状态指示符管理存储器的存取 |