[go: up one dir, main page]

TW200817899A - Dedicated mechanism for page-mapping in a GPU - Google Patents

Dedicated mechanism for page-mapping in a GPU Download PDF

Info

Publication number
TW200817899A
TW200817899A TW096126217A TW96126217A TW200817899A TW 200817899 A TW200817899 A TW 200817899A TW 096126217 A TW096126217 A TW 096126217A TW 96126217 A TW96126217 A TW 96126217A TW 200817899 A TW200817899 A TW 200817899A
Authority
TW
Taiwan
Prior art keywords
memory
address
graphics
graphics processor
gpu
Prior art date
Application number
TW096126217A
Other languages
English (en)
Other versions
TWI398771B (zh
Inventor
Peter C Tong
Sonny S Yeoh
Kevin J Kranzusch
Gary D Lorensen
Kaymann L Woo
Ashish K Kaul
Colyn S Case
Stefan A Gottschalk
Dennis K Ma
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 TW200817899A publication Critical patent/TW200817899A/zh
Application granted granted Critical
Publication of TWI398771B publication Critical patent/TWI398771B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/654Look-ahead translation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/026Arrangements or methods related to booting a display
    • 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
    • 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/125Frame memory handling using unified memory architecture [UMA]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/363Graphics 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

200817899 九、發明說明: 【發明所屬之技術領域】 本發明係關於消除或減少用於梅取系統記憶體顯示資料 存取所需之位址轉譯資訊之系統記憶體存取。 【先前技術】 圖形處理單s(GPU)被包含作為電腦、視訊遊戲、汽車 導航及其它電子系統之一部分,以便在監視器或其它顯示 裝置上產生圖形影像。待開發之最初之gpu將像素值 (即’實際顯示之顏色)儲存在稱為圖框緩衝器之本端記憶 體中。 自那時起,GPU(尤其為由加州聖克拉拉之NvimA公司 設計及開發之GPU)之複雜性已顯著增加。儲存在圖框緩 衝器中之資料之大小及複雜性同樣増加。此種圖形資料現 不僅包含像素值,而且包含紋理、紋理描述符 '遮影器程 式指令及其它資料及命令。此等圖框緩衝器現因認可其擴 展之作用而常被稱為圖形記憶體。 直至最近,GPU已經由高級圖形埠或AGp匯流排與中央 處理單7L及電腦系統中之其它裝置通信。雖然開發出此種 匯流排之較快版本,但其不能夠將足夠之圖形資料傳送至 GPU。因此,圖形資料儲存在<31>1;可用之本端記憶體中, 而不必經過AGP埠。幸而已開發出一種新匯流排,其為外 圍組件互連(pci)標準之增強版本,或稱pciE(pci express)。NVIDIA公司已對此種匯流排協定及所引起之實 施方案進行很大程度之改進及改良。此進而已允許為利於 122527.doc 200817899 經由PCIE匯流排存取之系統記憶體而消除本端記憶體。 由於圖形記憶體位置之變化而產生各種複雜情況。一種 複雜情況為,GPU使用虛擬位址追蹤資料儲存位置,而系 統圮憶體使用實體位址。為自系統記憶體讀取資料, 將其虛擬位址轉譯為實體位址。若此轉譯花費過多時間, 則系統記憶體可能不會以足夠快之速度將資料提供至 GPU。對於必須持續且快速地提供至Gpu之像素或顯示資 料而言尤其如此。
Ο 若將虛擬位址轉言睪為實體位址所需之資訊未儲存在GPU 上,則此種位址轉譯可能花費過多時間。明確而古,若此 轉譯資訊在GPU上不可用,則需要第一記憶體存取來自系 統記憶體中擷取該轉譯資訊。僅如此,才可在第二記情體 存取中自系統記憶體讀取顯示資料或其它所需資料。因 此記憶體存取串聯於第二記憶體存取之前,因為在 無第-記憶體存取所提供之位址之情況下無法進行第二記 憶體存取。額外之第-記憶體存取可能長達^咐,從而 大大減緩讀取顯示資料或其它所ft料之速率。 :此,需要消除或減少用於自系統記憶體 ^之此等額外記憶體存取之電路、方法及設備。 【發明内容】
因此,本發提供消除或減少用㈣ 體顯不資料存取所需之位 L 電路、方法及設備。明確^澤=之糸統記憶體存取的 處理器中。此減少或消除對::=資訊儲存在圖形 、用於擷取轉譯資訊之單獨系 122527.doc 200817899 統§己丨思體存取之堂L 士人 I而要。由於不需要額外之記憶體存取,所 以處理杰可更快地轉譯位址並自系統記憶體讀取所需之顯 示資料或其它資料。 本1明之例不性實施例藉由用項目預填充稱為圖形轉譯 後備緩衝器(圖形丁LB)之快取記憶體來消除或減少開機之 後對於位址轉譯資訊之系統記憶體存取,該等項目可用於 將由GPU使用之虛擬位址轉譯成由系統記憶體使用之實體 位址在本發明之特定實施例中,用顯示資料所需之位址 資訊來預填充圖形TLB,但在本發明之其它實施例中,用 於其它類型之資料之位址亦可預填充圖形TLB。此防止原 本需要用來榻取必要之位址轉譯資訊之額外系統記憶體存 取。 開機之後,為確保所需之轉譯資訊維持在圖形處理器 上’鎖定或以另外方式限制圖形TLB中之顯示存取所需之 項目。此可藉由將存取限制在圖形TLb中之某些位置,藉 由將旗標或其它識別資訊儲存在圖形TLB中,或藉由其它 適當方法來完成。此防止覆寫原本需要自系統記憶體再次 讀取之資料。 本發明之另一例示性實施例藉由儲存系統BI〇s所提供 之系統記憶體之較大連續區塊之基底位址及位址範圍來消 除或減少對於位址轉譯資訊之記憶體存取。開機或發生其 匕適當事件時,系統BIOS向GPU配置較大記憶體區塊,其 可稱為,,劃出區(carveout)”。GPU可將此較大記憶體區塊用 於顯示資料或其它資料。GPU將基底位址及範圍儲存在晶 122527.doc 200817899 片上,例如儲存在硬體暫存器中。 當由GPU使用之虛擬位址將被轉譯成實體位址時,進行 範圍檢查以查明虛擬位址是否在劃出區之範圍内。在本發 明之特定實施例中,藉由使劃出區之基底位址對應於虛擬 位址零來對此進行簡化。劃出區中之最高虛擬位址則對應 於實體位址之範圍。若待轉譯之位址在劃出區之虛擬位址 之範圍内,則可藉由將基底位址添加至虛擬位址而將虛擬 位址轉譯成實體位址。若待轉譯之位址不在此範圍内,則 可使用圖形TLB或分頁表來轉譯該位址。 本發明之各項實施例可包含本文描述之此等或其它特徵 中之一或多個特徵。可參看以下具體實施方式及附圖來獲 得對本發明之性質及優點之更好理解。 【實施方式】 圖1為藉由包含本發明實施例而改良之計算系統之方塊 圖。此方塊圖包含中央處理單元(CPU)或主機處理器10()、 系統平臺處理器(spp)110、系統記憶體120、圖形處理單 元(GPU)130、媒體通信處理器(Mcp)15〇、網路16〇,及内 部及外圍裝置270。亦包含圖框緩衝器、本端或圖形記憶 體140,但用虛線展示。虛線指示雖然常規電腦系統包含 此圮憶體,但本發明實施例允許將其移除。該圖與所包含 之其它圖一樣,為僅出於說明性目的而展示,且不限制本 發明之可能實施例或申請專利範圍。 CPU 100經由主機匯流排1G5連接至spp n spp 11〇經 由PCIE匯流排135與圖形處理單元130通信。SPP 11〇經由 122527.doc 200817899 記憶體匯流排125自系統記憶體120讀取資料及將資料寫入 至系統記憶體120。MCP 150經由例如HyperTransport匯流 排155之高速連接與SPP 110通信,並將網路160及内部及 外圍裝置170連接至電腦系統之剩餘部分。圖形處理單元 130經由PCIE匯流排135接收資料,並產生用於藉由監視器 或其它顯示裝置(未圖示)進行顯示之圖形及視訊影像。在 本發明其它實施例中,圖形處理單元包含在整合式圖形處 理器(IGP)中,使用該整合式圖形處理器代替spp u 〇。在 另外其它實施例中,可使用通用GPU作為GPU 130。 CPU 100可為處理器,例如熟習此項技術者眾所周知之 由Intel公司或其它供應商製造之彼等處理器。spp ^及 MCP 150統稱為晶片組。系統記憶體12〇通常為排列成許 多雙線内記憶體模組(DIMM)之許多動態隨機存取記憶體 I置。圖形處理單元130、SPP 110、MCP 150及IGP(若使 用)較佳地由NVIDIA公司製造。 圖形處理單元130可能位於圖形卡上,而cpu 1〇〇、系統 平臺處理器110、系義 位於電腦系統母板上 系統記憶體120及媒體通信處理器15〇可
GPU 130。另外 處理器包含在母板上,或歸入IGp中。 ,所說明之電腦系統)可包含一個以上 此等圖形處理單元之每一者可位於單獨 122527.doc 200817899 2圖形卡上。此等圖形卡中之兩者或兩者以上可藉由跨接 器或其它連接而接合在一起。NVIDIA公司已開發出一種 此類技術一一開拓性^在本發明其它實施例中,一 或多個GPU可位於一或多個圖形卡Λ,而一或多個其它 GPU位於母板上。 在先丽開發之電腦系統中,Gpu 13〇經由AGp匯流排與 系統平臺處理器110或其它裝置(在例如北橋處)通信。然 而,AGP匯流排不能以所需速率將所需資料供應至 130。因此,圖框緩衝器14〇供Gpu使用。此記憶體允許在 資料不必橫穿AGP瓶頸之情況下存取該資料。 現已可用較快之資料傳遞協定,例如及 HyperTransport。值得注意,NVImA公司已開發出改良之 PCIE介面。因此,自GPU 13〇至系統記憶體12〇之頻寬已 大大增加。因此,本發明實施例提供並允許移除圖框緩衝 态140。可用於移除圖框緩衝器之另外方法及電路之實例 可查閱共同待決且共同擁有之2〇〇5年1〇月18日申請之題為 ’’Zero Frame Buffer”之第1 1/253438號美國專利申請案,該 專利申請案以引用方式併入本文中。 本發明實施例所允許之對圖框緩衝器之移除提供節省, 其不僅包含此等DRAM之去除而且亦包含額外節省。舉例 而a,通&使用電壓調節器來控制記憶體之電源,且使用 電容器來提供電源過濾。移除DRAM、調節器及電容器提 供成本節省,其減少圖形卡之材料清單(B〇M)。此外,簡 化了板布局,減小了板空間,並簡化了圖形卡測試。此等 122527.doc -11 - 200817899 因素縮減了研究及設計以及其它玉程及測試成本,藉此增 加包含本發明實施例之圖形卡之毛利。 雖然本發明實施職好地料改良零圖框緩衝器圖形處 理器之效能’但亦可藉由包含本發明實施例來改良其它圖 形處理器(包含具有#限或晶片i記憶體或冑p艮之本端記 憶體之彼等圖形處理器)。並且,雖然此實施例提供可藉 由包含本發明實施例而改良之特定類型之電腦系統,心 可改良其它類型之電子或電腦系、統。舉例而言,可藉由包 含本發明實施例來改良視訊及其它遊戲系統、導航、曰機頂 盒、彈球機以及其它類型之系統。 並且,雖然本文描述之此等類型之電腦系統及其它電子 系統目前較為常見,但當前正開發其它類型之電腦及其它 電子系統,且將來將開發出其它系統。預期此等系統^之 許多系統亦可藉由包含本發明實施例而得以改良。因此, 所列舉之特定實例本質上為闡釋性的,且不限制本發明之 可能實施例或申請專利範圍。 圖2為藉由包含本發明實施例而改良之另一計算系統之 方塊圖。此方塊圖包含中央處理單元或主機處理器2〇〇、 SPP 210、系統記憶體220、圖形處理單元23()、Mcp 25〇、 網路260,及内部及外圍裝置27〇 ^再者,包含圖框緩衝 器、本端或圖形記憶體240,但用虛線表示以突出其移 除。 CPU 200經由主機匯流排205與SPP 210通信,並經由記 憶體匯流排225存取系統記憶體220。GPU 230經由!^巧匯 122527.doc 12 200817899 流排235與SPP 210通信,並經由記憶體匯流排245與本端 5己|思體通“。]\/1€? 250經由例如11}^^1'1^118卩〇1'1:匯流排25 5 之尚速連接與SPP 210通信,並將網路260及内部及外圍裝 置2 7 0連接至電腦系統之剩餘部分。 與之前一樣’中央處理單元或主機處理器200可為由 Intel公司或其它供應商製造之中央處理單元之一,且為熟 • 習此項技術者眾所周知。圖形處理器230、整合式圖形處 理器2 10及媒體及通信處理器240較佳地由NVIDIA公司提 Γ、 供。 圖1及2中移除圖框緩衝器14〇及24〇,以及本發明其它實 施例中移除其它圖框緩衝器,並非不產生後果。舉例而 a,產生關於用於自糸統記憶體儲存及讀取資料之位址之 困難。 當GPU使用本端記憶體來儲存資料時,本端記憶體嚴格 地處於GPU之控制下。通常,其它電路均不能存取本端記 〇 憶體。此允許GPU以其認為合適之任何方式追蹤並配置位 ^ 址。然而,由多個電路使用系統記憶體,且由作業系統配 置空間給彼等電路。作業系統配置至GpUi空間可形成一 • $續記憶體區段。更有可能,配置至GPU之空間細分為許 • 乡區塊或區段,其中—些可能具有不同大小。此等區塊或 區段可藉由初始、起始或基底位址及記憶體大小或位址範 圍來描述。 圖形處理單元使用實際之系統記憶體位址較困難且不便 利,因為提供給GPU之位址被配置於多個獨立區塊中。並 122527.doc 200817899 且,每當開啟電源或另外重新配置記憶體位址時,提供給 GPU之位址可能變化。執行於GPU上之軟體使用獨立於系 統記憶體中之實際實體位址之虛擬位址會容易得多。明確 而吕,GPU將§己憶體空間視為一較大連續區塊,而以若干 較小之完全不同之區塊將記憶體配置至GPU。因此,當將 貧料寫入至系統記憶體或自系統記憶體讀取資料時,執行 由GPU使用之虛擬位址與由系統記憶體使用之實體位址之 間的轉譯。可使用表來執行此種轉譯,該表之項目包含虛 擬位址及其相應之實體位址對應項。此等表稱為分頁表, 而該等項目稱為分頁表項目(pTE)。 分頁表太大以致於不能置於GPU上;由於成本約束之緣 故此做法不合需要。因此,將分頁表儲存在系統記憶體 中。然而,此意謂著每當需要來自系統記憶體之資料時, 需要進行第一或額外記憶體存取來擷取所需之分頁表項 目,且需要第二記憶體存取來擷取所需之資料。因此,在 本發明實施例中"分頁表中之一些資料被快取儲存於㈣ 上之圖形TLB中。 當需要分頁表項目,且分頁表項目係在GPu上之圖形 rjn τ ^ jg ^ 卜 » 口用時’認為已發生命中(hit),且可進行位址轉 異右刀頁表項目未儲存在GPU上之圖形TLB中,則認為 已么生未命中(miss)。此時,自系統記憶體中之分頁表中 操取所需之分頁表項目。 已擷取到所需之分頁表項目之後,將再次需要此同一分 頁表項目夕 可能性很大。因此,為減少記憶體存取之次 122527.doc -14- 200817899 數而要將此分頁表項目儲存在圖形TLB中。若快取障 ::無空位置,則最近未使用之分頁表項目可能為= 新刀頁表項目而被覆寫或驅逐。在本發明各項實施例中, 在驅逐之前,進行檢查以確定當前被快取之項目在其自系 統記憶體被讀取之後是否被圖形處理單元修改。若當前被 $取之項目被修改,則在圖形TLB中新分頁表項目覆寫當 月"皮快取之項目之前進行回寫操作,在該回寫操作中將經 更新之分頁表項目回寫至系統記憶體。在本發明其它實施 例中,不執行此回寫程序。 在本發明特定實施例中,基於系統可能配置之最小粒度 將分頁表編入索引,例如,ρτΕ可表示最少伟4 κβ區塊 或頁因此,藉由將虛擬位址除以16 ΚΒ並隨後乘以項目 大J在分頁表中產生相關之索引。圖形TLB未命中之 隻GPU使用上述索引來找到分頁表項目。在此特定實施 财,㈣表項目可映射大於4以之—或多個區塊。舉例 而口,分頁表項目可映射最少四個4 Κβ區塊,且可映射大 於4 KB一直達到最大總計為256 KB之4、8或16個區塊。一 旦將此種分頁表項目載入快取記憶體中,圖形TLB便可藉 由參考單個圖形TLB項目(其為單個ρτΕ)而在該256 Μ内 找到虛擬位址。在此情況下,分頁表本身排列成“字節項 目,该等項目之每一者映射至少16 KB。因此,2S6 KB* 頁表員目複裝在位於虛擬位址空間之該256 κΒ内之每個分 頁表位置處。因此,在此實例中,存在具有精確相同之資 訊之16筆分頁表項目。256 KB内之未命中讀取彼等相同項 122527.doc -15- 200817899 目中之一者。 如上文所提及,w w Λ 右所萬之分頁表項目在圖形TLB中不可 用,則需要進行額外記憶體存取來擷取該等項目。對於· 要對資料之藉中 ]了 %而 、 心、持續存取之特定圖形功能而言,此等額 外記:體存取非常不合需要。舉例而言,圖形處理單元; ^罪地存取來顯示資料,使得其可以所需速率將影像資 ,提供至監視器1需要過多之記憶體存取,則所產生之
等待日1·間可能中斷像素資料向監視器之流動,藉此破壞圖 形影像。 明確而a ’若需要自系統記憶體讀取用於顯示資料存取 之位址轉譯資訊’則該存取與後續資料存取串冑,即必須 •自記憶體讀取位址轉譯資訊,因此GPU可瞭解所需之顯示 資料儲存在何處。由此額外記憶财取引S之額外等待時 間減小了可將顯示資料提供至監視器之速率,&而再次破 壞圖形影像。此等額外記憶體存取亦增加PCIE匯流排上之 通信量並浪費系統記憶體頻寬。 當開機或發生圖形TLB為空或被清除之其它事件時,尤 其可能進行用於擷取位址轉譯資訊之額外記憶體讀取。明 確而言,在電腦系統開機時,基本輸入/輸出系統(Bl〇s) 預期GPU可自由處置本端圖框緩衝記憶體。因此,在習知 系統中,系統BIOS不配置系統記憶體中之空間以供圖形處 理器使用。事實上,GPU自作業系統處請求一定量之系統 記憶體空間。作業系統配置記憶體空間之後,GPU可將分 頁表中之分頁表項目儲存在糸統記憶體中,但圖形Tlb為 122527.doc -16- Ο
200817899 二虽需要顯不資料時,針對PTE之每一請求導致未命 中,該未命中進一步導致額外記憶體存取。 因此,本發明實施例用分頁表項目預填充圖形TLB。意 即,在需要分頁表項目之請求導致快取未命中之前用分頁 =項目填充圖形TLB。此種預填充通常至少包含擷取顯示 育料所需之分頁表項目’但其它分頁表項目亦可預填充圖 形TLB。此外’為防止分頁表項目被驅逐,可鎖定或以另 卜方式限制-些項目。在本發明特定實施例中,鎖定或限 制顯示資料所需之分頁表項目,但在其它實施例中,可鎖 定或限制其它類型之資料。以下圖式中展示說明一個此類 例示性實施例之流程圖。 圖3為說明根據本發明實施例之存取健存在系統記憶體 中之’、、、員不貝料之方法的流程圖。t亥圖與所包含之其它圖一 =為僅出於說明性目的而展示,且不限制本發明之可能 或中請專利範圍。並且’儘管此處展示之此一實例 及,、匕κ例尤其較好地適於存取顯示資料,但可藉由包含 本發明實施例來改良其它類型之資料存取。 口在本=法中’ Gro ’或更明確而言執行於GPU上之驅動 ^式或㈣管理員,確保可使用儲存在GPU本身上之轉譯 資訊將虛擬位址棘考成告骑 #成κ體位址,而不需要自系統記憶體 彌取此資訊。此藉由噩 丁… 猎由取初將轉澤項目預填充或預載入圖形 中來實現。隨後鎖定盘顯示眘4_α „ — 心说明疋/、顯不貝枓相關聯之位址,或以 另外方式防止其被覆寫或驅逐。 明確而言,在動作310中 電腦或其它電子系統被開 122527.doc 17 200817899 機,或經歷重新啟動、功率重置或類似事件。在動作32〇 中,作為執行於GPU上之驅動程式之一部分之資源管理員 自作業系統處請求系統記憶體空間。在動作33〇中,作業 系統為CPU配置系統記憶體中之空間。 雖然在此實例中,執行於CPU上之作業系統負責配置系 、、先尤U體中之圖框緩衝器或圖形記憶體空間,但在本發明 之各項實施例巾,執行於咖或系統巾其它裝置上之驅動 私式或其它軟體可負責此項任務。在其它實施例中,此項 任務由作業系統及該驅動程式或其它軟體中之一者或一者 以上共用。在動作340中,資源管理員自作業系統接收系 統記憶體中之空間之實體位址資訊。此資訊通常將至少包 含系統記憶體中一或多個區之基底位址及大小或範圍。 資源管理員隨後可壓縮或以另外方式配置此資訊,以便 限制將由GPU使用之虛擬位址轉譯成由系統記憶體使用之 實體位址所需之分頁表項目之數目。舉例而言,可組合由 作業系統向GPU配置之系統記憶體空間之單獨但連續之區 塊,其中將單個基底位址用作起始位址,且將虛擬位址用 作索引信號。展示此一情況之實例可查閱共同待決且共同 擁有之2005年3月10曰申請之題為丨丨Mem〇ry for Virtual Address Space with Translation Units of Variable Range Size”之第;11/077662號美國專利申請案,該 專利申請案以引用方式併入本文中。並且,雖然在此實例 中’此項任務為作為執行於GPU上之驅動程式之一部分的 資源管理員之責任’·但在其它實施例中,此實例及所包含 I22527.doc -18- 200817899 之其它實例中展示之此任務以及其它任務可由其它軟體、 韌體或硬體完成或共用。 Ο 在動作35G中,資源管理員將分頁表之轉釋項目寫入至 系統記憶體中。資源管理員亦用此等轉譯項目中之至,丨、一 些轉譯項目對_TLB進行預載人或輯充。在動作则 中,可鎖定-些或所有圖形TLB項目,或以另外方式防止 其被驅逐。在本發明之特定實施例中’防止所顯示之資料 之位址被覆寫或驅逐,以確保可在不需要針對位址轉譯資 訊進行額外系統記憶體存取之情況下提供顯示資訊之位 址〇 可,用符合本發明實施例之各種方法來實現該鎖定。舉 例而吕’在許多用戶端可自圖形TLB讀取資料之情況下, ^限制此等用戶端中之_者或一者以上,使其無法將資料 寫入至被限制之快取記情辦 己U體位置,而必須寫入至許多共有 (Pooled)或未被限制之体 、 利〈决取吕己憶體線中之一者。更多細節 可參閱共同待決且共间插亡—^ ,, 、擁有之2005年U月8日申請之題為
Shared Cache with ρι;. n . •Specific Replacement Policy”之 第11/298256號美國專利申过 兮•立丨+ 甲明案’该專利申請案以引用方 式併入本文中。在其它實 m々也1歹j千,可對可向圖形tlb進行 寫入之電路施加其它隅也丨. ’或可將例如旗標之資料與項目 一起儲存在圖形TLB中。與也丨二^ 举例而吕,可對可向圖形TLB進 行寫入之電路隱藏一此w ^ — 二、取5己憶體線之存在。或者,若設 疋了旗標,則無法霜宜+ s . 寫或驅逐相關聯之快取記憶體線中之 貧料。 122527.doc -19- 200817899 在動作370中,當需要來自系統記憶體之顯示資料或其 匕貝料時,使用圖形TLB中之分頁表項目將由GPU使用之 虛擬位址轉譯成實體位址。明確而言,將虛擬位址提供至 圖形TLB,且讀取相應之實體位址。再者,若此資訊未儲 存在圖形TLB中,則需要在可發生位址轉譯之前自系統記 I思體處清求該資訊。 在本發明各項實施例中,可包含其它技術來限制圖形 TLB未命中之影響。明確而言,可採取額外步驟以減少記 憶體存取等待時間,藉此減小快取未命中對顯示資料之供 應之影響。一種解決方案為使用作為卩^比規格之一部分之 虛擬通道VC1。若圖形TLB未命中使用虛擬通道VC1,則 其可回避其它请求,從而允許更快地擷取所需項目。然 而,習知晶片組不允許存取虛擬通道VCi。此外,雖然 NVIDIA公司可以符合本發明之方式在產品中實施此解決 方案,但與其它裝置之互操作性使得當前如此做法並不合 乎需要’但將來此情況可能改變。另一解決方案涉及將由 圖形TLB未命中產生之請求列入優先或進行標記。舉例而 言’可用高優先權標誌對請求進行標記。此解決方案具有 與上一解決方案類似之互操作性考慮。 圖4A至4C說明根據本發明實施例在存取顯示資料之方 法期間電腦系統中命令及資料之傳遞。在此特定實例中, 展示圖1之電腦系統,但其它系統(例如,圖2所示之系統) 中之命令及資料傳遞為類似的。 圖4A中,當系統開機、重置、重新啟動或發生其它事件 122527.doc -20- 200817899 時’ GPU將對於系統記憶體空間之請 再者,此請求可來一上運作之驅動程式::而 「驅動程式之資源管理員部分可作出此請求, 體、_軟體亦可作出此請求。此請求可 统 處理器41〇自GPU43〇傳遞至中央處理單元4〇〇。 ,、、、·十室
圖4B中,作業系統為GPU配置系統記憶體中之空間以供 用作圖框緩衝器或圖形記憶體422。儲存在圖框緩衝 圖形記憶體422中之資料可包含顯示資料,㈣於顯:之 像素值、紋理、紋理描述符、遮影器程式指令,及其它資 料及命令。 、 在此實例中,所配置之空間,即系統記憶體420中之圖 框緩衝态422 ’展不為連續的。在其它實施例或實例中, 所配置之空間可能不連續其可能完全不同,細分為 多個區段。 ϋ 將通常包含系統記憶體之區段之一或多個基底位址及範 圍:資訊傳遞至GPU。再者,在本發明特定實施例中,將 此貝桌傳遞至在GPU 430上運作之驅動程式之資源管理員 口P刀,但可使用其它軟體、韌體或硬體。此資訊可經由系 、、先平$處理器410自CPU 400傳遞至GPU 43〇。 圖4C中’ GPU將分頁表中之轉譯項目寫入在系統記憶體 中。GPU亦用此等轉譯項目中之至少一些轉譯項目對圖形 TLB進行預載入。再者,此等項目將由Gpu使用之虚擬位 址轉潭成由系統記憶體42〇中之圖框緩衝器使用之實體 位址。 122527.doc 200817899 鈾樣可鎖疋或以另外方式限制圖形TLB中之一 些項目,使其無法被1區逐或覆寫。再者,在本發明特定實 施例中,鎖定或以另外方式限制對識別圖框緩衝器似中 儲存有像素或顯示資料之位置之位址進行轉譯之項目。 當需要自圖框緩衝器422存取資料時,使用圖形則々Μ 將由GPU 430使用之虛擬位址轉譯成實體位址。隨後將此 等請求傳遞至系統平臺處理器41Q 取所需之資料並將其傳回GPU 430。 在以上實例t,開機或其它功率重置或類似狀況之後, GPU將對於系統記憶體中之空間之請求發送至作業系統。 在本發明其它實施例中,Gpu將需要系統記憶體中之空間 之事實為已知的,且不需要作出請求。在此情況下,在開 機、重置、重新啟動或其它適當事件之後,系統bi〇s、作 業系統或其它軟體、韌體或硬體可配置系統記憶體中之空 間。此在受控環境中尤其可行,例如在GPU不如其通常在 桌上型應用中那樣容易被交換或替代之移動應用中。 GPU可能已瞭解在系統記憶體中其將使用之位址,或位 址資訊可由系統BIOS或作業系統傳遞至GPU。在任一情況 下,纪憶體空間可為記憶體之連續部分,在此情況下,僅 單個位址一 一基底位址需要為已知或被提供至GPU。或 者,記憶體空間可為完全不同或非連續的,且可能需要多 個位址為已知或被提供至GPU。通常,例如記憶體區塊大 小或範圍資訊之其它資訊亦傳遞至Gpu或為GPU所知。 並且,在本發明各項實施例中,可由系統之作業系統在 122527.doc -22· 200817899 開機時配置系統記憶體中之空間,且GPU可在稍後之時間 作出對於更多記憶體之請求。在此實例中,系統BI〇s及作 業系統均可配置系統記憶體中之空間以供GPU使用。以下 圖式展示本發明實施例之實例,其中系統BIOS經程式設計 以在開機時為GPU配置系統記憶體空間。 圖5為說明根據本發明實施例之存取系統記憶體中之顯 不資料之另一方法的流程圖。再者,雖然本發明實施例較
好地適於提供對顯示資料之存取,但各項實施例可提供對 此類型或其它類型之資料之存取。在此實例中,系統BI〇s 在開機時瞭解需要配置系統記憶體中之空間以供Gpu使 用。此空間可為連續或非連續的。並且,在此實例中,系 統BIOS將記憶體及位址資訊傳遞至Gpu上之驅動程式之資 源管理員或其它部分,但在本發明之其它實施例中, 上之驅動程式之資源管理員或其它部分可能提早意識到該 位址資訊。 明確而言’在動作510中’電腦或其它電子系統開機。 在動作520中,系統BI0S或其它適當之軟體、勃體或硬體 (例如,作業系統)配置系統記憶體中之空間以供使 用。若記憶體空間為連續的,系統则3將基底位址提供 至在GPU上執行之資源管理員或驅動㈣。若記憶體空間 為非連續的,則系統31〇8將提供許多基底位址。每—基底 位址通常伴隨有記憶體區塊大小資訊,例如大小或位二範 圍資訊,’記憶體空間為劃出之連續記憶體空間。此 資訊通常伴隨有位址範圍資訊。 122527.doc -23- 200817899 在動作540中’儲存基底位址及範圍以供在Gpu上使 用。在動作550中,可藉由使用虛擬位址作為索引而將後 續虛擬位址轉換為實體位址。舉例而言,在本發明特定實 施例中,可藉由將虛擬位址添加至基底位址而將虛擬位址 轉換為實體位址。 明確而δ ’當要將虛擬位址轉譯為實體位址時,執行範 圍k查。當所儲存之實體基底位址對應於虛擬位址零時, 若虛擬位址在該範圍内,則可藉由將虛擬位址與實體基底 位址相加來轉譯虛擬位址。類似地,當所儲存之實體基底 位址對應於虛擬位址”χ”時,若虛擬位址在該範圍内,則 可藉由將虛擬位址與實體基底位址相加並減去,,χη來轉譯 虛擬位址。若虛擬位址不在該範圍内,則可如上所述使用 圖形TLB或分頁表項目來轉譯位址。 圖6況明根據本發明實施例在存取顯示資料之方法期間 電腦系統中命令及資料之傳遞。開機之後,系統BI〇S配置 糸統ό己t思體624中之空間劃出區”622,以供GPU 630使 用。 GPU接收並儲存系統記憶體620中所配置之空間或劃出 區622之基底位址(或多個基底位址)。此資料可儲存在圖形 TLB 632中,或其可儲存在GPU 63〇上之其它地方,例如 儲存在硬體暫存器中。此位址連同劃出區622之範圍一起 儲存在(例如)硬體暫存器中。 當將自系統記憶體620中之圖框緩衝器622讀取資料時, 可藉由將虛擬位址視為索引而將由Gpu 630使用之虛擬位 122527.doc -24- 200817899 址轉換成由糸統記憶體使用之實體位址。再者,在本發明 特疋實施例中’藉由將虛擬位址加至基底位址而將劃出位 址範圍中之虛擬位址轉譯為實體位址。意即,若基底位址 對應於虛擬位址零,則可藉由如上所述將虛擬位址加至基 底位址而將虛擬位址轉換為實體位址。再者,可如上所述 使用圖形TLB及分頁表來轉譯範圍外之虛擬位址。 • 圖7為符合本發明實施例之圖形處理單元之方塊圖。此 、方塊圖之圖形處理單元700包含pciE介面71〇、圖形管線 ' 720、圖形丁1^ 730,及邏輯電路740。PCIE介面710經由 PCIE匯流排750傳輸及接收資料。再者,在本發明其它實 施例中,可使用當前已開發或正開發之其它類型之匯流 排,以及將來將開發之彼等匯流排。圖形處理單元通常形 成於積體電路上,但在一些實施例中,一個以上積體電路 可包括GPU 700。 圖形管線720自PCIE介面接收資料,並呈現資料以便在 , 監視器或其它裝置上顯示。圖形TLB 73G儲存分頁表項 ? 目,該分頁表項目係用於將由圖形管線720使用之虛擬記 憶體位址轉譯成由系統記憶體使用之實體記憶體位址。邏 . 輯電路740控制圖形TLB 730,檢查對儲存在圖形TLB 73〇
處之貢料之鎖定或:i:它限余丨I # A • 飞/、匕ir制並自快取記憶體讀取資料及 將資料寫入至快取記憶體。 圖8為說明根據本發明實施 y W <圖形卡之圖。圖形卡800 包含圖形處理單元8丨〇、匯六 匯机排連接器82〇,及接至第二圖 形卡之連接器83〇。匯流排車 辨遷接裔828可為經設計以適配於 122527.doc -25- 200817899 PCIE槽之PCIE連接器,例如電腦系統之母板上之槽上 PCIE。接至第二卡之連接器83〇可經組態以適配於接至— 或多個其它圖形卡之跨接器或其它連接。可包含例如電源 調節器及電容器之其它裝置。應注意,此圖形卡上不包含 記憶體裝置。 (
L 已出於說明及描述之目的呈現對本發明例示性實施例之 以上描述。不希望其為詳盡的或將本發明限於所描述之精 確形式,且赛於以上教示,可能作出許多修改及變化 擇並描述該等實施例以便最佳地闡釋本發明之原理及其實 踐應用,藉此使熟習此項技術者能夠最佳地將本發明用於 各種實施例中,並作出適於所預期之特定用途之各種修 改0 【圖式簡單說明】 圖圖丨為藉由包含本發明實施例而改良之計算系統之方塊 圖2為藉由包含本發明實施例 方塊圖; 文良之另-計算系統之 圖3為說明根據本發明實施例 中之顧_ 仔取儲存在系統記憶體 甲之顯不貧料之方法的流程圖; 、圖4Α至4C說明根據本發明實施例在存取顯 法期間電腦系統令命令及資料之傳遞; 、"、 圖5為說明根據本發明實施例 示資料之另一方…“之存取糸統記憶體中之顯 只了卞I乃一方法的流程圖; 圖6說明根據本發明實施例在存 仔取顯T資料之方法期間 122527.doc -26- 200817899 電腦系統中命令及資料之傳遞; 圖7為符合本發明實施例之圖形處理單元之方塊图 圖8為根據本發明實施例之圖形卡之圖。 【主要元件符號說明】
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 140 > 240 145 、 245 150 、 250 、 450 、 650 155 、 255 160 ' 260 、 460 、 660 170 、 270 、 470 、 670 422 432 622 632 710 中央處理單元 主機匯流排 系統平臺處理器 糸統記憶體 記憶體匯流排 圖形處理單元 PCIE匯流排 圖框緩衝器 記憶體匯流排 媒體通信處理器 HyperTransport匯流排 網路 裝置 圖框緩衝器 圖形TLB 劃出區 圖形TLB PCIE介面 122527.doc -27- 200817899 720 圖形管線 730 圖形TLB 740 邏輯電路 800 圖形卡 820 匯流排連接器 830 接至第二圖形卡之連接器 122527.doc -28-

Claims (1)

  1. 200817899 十、申請專利範圍: 1· 一種使用一圖形處理器來擷取資料之方法,其包括: 請求存取一系統記憶體中之記憶體位置; 接收該系統記憶體中記憶體位置之至少一區塊之位址 貝几’该位址貧訊包含識別至少一實體記憶體位址之資 訊;以及 將對應於該實體記憶體位址之一分頁表項目儲存在一 快取記憶體中; 其中接收該位址資訊,且在不等待一快取未命十之情 ,字d亥刀頁表項目儲存在該快取記憶體中。 2·如請求項1之方法,其進一步包括:心 :/刀頁表項目儲存在該系統記憶體中。 3.如請求項2之方法,其進一步包括: 4 士^4快取記憶體中儲存有該分頁表項目之位置。 .二未们之方法,其中該圖形處理器為—圖形處理單 ί; 5. 士。月求項3之方法,其中該圖形 圖形處理器上。 -包含在一整合式 6. 如請求項3之方法,其中該 記情髁A 取糸統記憶體中之 。己^體位置係向一作業系統提出。 月求項3之方法,其中識別至少一 該資tfl包枯一貧 、_ δ己憶體位址之 一 一基底位址及一記憶體區塊大小。 回开;處理器,其包括: 一資料介面,其用於提供-存取—系統記憶體中之記 122527.doc 200817899 憶體位置之請求並用於接收關於該系統 體中之記憶 體位置之位址資訊,該位址資訊包含識別至參 憶體位址之資訊; n 一快取記憶體控制器,其用於寫入相 對應於該實體記 憶體位址之一分頁表項目;以及 一快取記憶體,其用於儲存該分頁表項目, 其中接收該位址資訊,且在不等待發生一快取未命中 之情況下將該分頁表項目儲存在該快取記憔體中P 9·如請求項8之圖形處理器’其中該資料介:亦提供一將 該分頁表項目儲存在該系統記憶體中之請求。 10.如請求項8之圖形處理器,其中該資料介面提供— =統開機之後存取一系統記憶體中之記憶體位置之: ".如請求項8之圖形處理器’其中該快取記憶 定儲存有該分頁表項目之位置。 K。鎖 u 12. 士明求項8之圖形處理器,其中該快取記憶體 制存取傲六士 “才工制器限 省存有该虛擬位址及該實體位址之位置。 1 3 ·如Μ求項8之圖形處理器,其中該資料仑而 Ρ⑽介面電路。 Hi面電路為一 其中該圖形處理器為〜圖形 其中該圖形處理器包含在一 14.如請求項8之圖形處理器 處理單元。 15·如請求項8之圖形處理器 整合式圖形處理器上。 16·種使用—圖形處理器來類取資料之方法,其包括· 122527.doc 200817899 接收一系統記憶體中之一記憶體區塊之一基底位址及 範圍; 儲存該基底位址及範圍; 接收一第一位址; 確定該第一位址是否在該範圍内,且若在, 則藉由將該基底位址加至該第_位址而將該第一位址 轉譯成一第二位址,否則 Ο 自一快取記憶體讀取一分頁表項目;以及 使用該分頁表項目將該第一位址轉譯成一第二位址。 17. 如研求項16之方法,其進一步包括:在自該快取記憶體 讀取—分頁表項目之前,在不等待一快取未命中之情況 下將σ亥为頁表項目儲存在該快取記憶體中。 18. 求項16之方法,其進_步包括:在自該快取記憶體 靖取-分頁表項目之前,確定該分頁表是否儲存在該快 取。己體中’且若為否,則自該系統記憶體讀取該分頁 ί 19·如請求項16之方法 元。 其中該圖形處理器為一圖形處理單 其中該圖形處理器包含在一整合式 20·如請求項16之方法 圖形處理器上。 122527.doc
TW096126217A 2006-07-31 2007-07-18 擷取資料的圖形處理器與方法 TWI398771B (zh)

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 true TW200817899A (en) 2008-04-16
TWI398771B 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9348762B2 (en) 2012-12-19 2016-05-24 Nvidia Corporation Technique for accessing content-addressable memory
US9697006B2 (en) 2012-12-19 2017-07-04 Nvidia Corporation Technique for performing memory access operations via texture hardware
US9720858B2 (en) 2012-12-19 2017-08-01 Nvidia Corporation Technique for performing memory access operations via texture hardware
CN111274166A (zh) * 2018-12-04 2020-06-12 展讯通信(上海)有限公司 Tlb的预填及锁定方法和装置

Families Citing this family (29)

* Cited by examiner, † Cited by third party
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
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对散列表有效且可扩展地构建和探测
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

Family Cites Families (48)

* Cited by examiner, † Cited by third party
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
US6104417A (en) * 1996-09-13 2000-08-15 Silicon Graphics, Inc. Unified memory computer architecture with dynamic graphics memory allocation
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 김영환 가변적인 페이지 크기를 지원하는 어드레스 변환장치
US6249853B1 (en) * 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US5933158A (en) * 1997-09-09 1999-08-03 Compaq Computer Corporation Use of a link bit to fetch entries of a graphic 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
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
US5949436A (en) * 1997-09-30 1999-09-07 Compaq Computer Corporation Accelerated graphics port multiple entry gart cache allocation system and method
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
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
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
US6643759B2 (en) * 2001-03-30 2003-11-04 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
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
US7082508B2 (en) * 2003-06-24 2006-07-25 Intel Corporation Dynamic TLB locking based on page usage metric
US20050160229A1 (en) * 2004-01-16 2005-07-21 International Business Machines Corporation Method and apparatus for preloading translation buffers
US7321954B2 (en) * 2004-08-11 2008-01-22 International Business Machines Corporation Method for software controllable dynamically lockable cache line replacement system
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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9348762B2 (en) 2012-12-19 2016-05-24 Nvidia Corporation Technique for accessing content-addressable memory
US9697006B2 (en) 2012-12-19 2017-07-04 Nvidia Corporation Technique for performing memory access operations via texture hardware
US9720858B2 (en) 2012-12-19 2017-08-01 Nvidia Corporation Technique for performing memory access operations via texture hardware
CN111274166A (zh) * 2018-12-04 2020-06-12 展讯通信(上海)有限公司 Tlb的预填及锁定方法和装置

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
TWI398771B (zh) 2013-06-11
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
TW200817899A (en) Dedicated mechanism for page-mapping in a GPU
US8451281B2 (en) Shared virtual memory between a host and discrete graphics device in a computing system
KR101702049B1 (ko) 복제된 기입 요청으로 일관된 메모리 카피를 행하는 방법 및 장치
CN103279426B (zh) 在不同高速缓存一致性域之间共享信息的技术
CN103714015A (zh) 减少来自侦听过滤器的后无效事务
EP3049938B1 (en) Data management on memory modules
US20170091099A1 (en) Memory controller for multi-level system memory having sectored cache
CN107408079A (zh) 带有一致单元的多级别系统存储器的存储器控制器
CN108664415B (zh) 共享替换策略计算机高速缓存系统和方法
US10467138B2 (en) Caching policies for processing units on multiple sockets
US9727521B2 (en) Efficient CPU mailbox read access to GPU memory
CN106354664A (zh) 一种固态硬盘数据传输方法及装置
US9785552B2 (en) Computer system including virtual memory or cache
JPWO2010032433A1 (ja) バッファメモリ装置、メモリシステム及びデータ読出方法
US9904622B2 (en) Control method for non-volatile memory and associated computer system
US20130275686A1 (en) Multiprocessor system and method for managing cache memory thereof
US10591978B2 (en) Cache memory with reduced power consumption mode
US12086447B2 (en) Systems and methods for reducing instruction code memory footprint for multiple processes executed at a coprocessor
US7055005B2 (en) Methods and apparatus used to retrieve data from memory into a RAM controller before such data is requested
US20180300253A1 (en) Translate further mechanism
US7840757B2 (en) Method and apparatus for providing high speed memory for a processing unit
US20040199726A1 (en) Methods and apparatus used to retrieve data from memory before such data is requested
CN107305533A (zh) 资料传输方法及服务器