TW201324336A - 平衡對具有不同記憶體種類的記憶體進行存取的技術 - Google Patents

平衡對具有不同記憶體種類的記憶體進行存取的技術 Download PDF

Info

Publication number
TW201324336A
TW201324336A TW101126755A TW101126755A TW201324336A TW 201324336 A TW201324336 A TW 201324336A TW 101126755 A TW101126755 A TW 101126755A TW 101126755 A TW101126755 A TW 101126755A TW 201324336 A TW201324336 A TW 201324336A
Authority
TW
Taiwan
Prior art keywords
memory
data rate
parameters
types
different
Prior art date
Application number
TW101126755A
Other languages
English (en)
Other versions
TWI526926B (zh
Inventor
Brian Kelleher
Emmett Kilgariff
Wayne Yamamoto
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 TW201324336A publication Critical patent/TW201324336A/zh
Application granted granted Critical
Publication of TWI526926B publication Critical patent/TWI526926B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)

Abstract

本發明技術之具體實施例係關於用以平衡對不同記憶體種類進行記憶體存取的技術。

Description

平衡對具有不同記憶體種類的記憶體進行存取的技術
本發明技術係關於用以平衡對具有不同記憶體種類之記憶體進行記憶體存取的技術。
許多電子裝置包括一或多個計算裝置,像是一或多個中央處理單元(CPU)、一或多個圖形處理單元(GPU)、一或多個數位信號處理器(DSP)及/或類似者。計算裝置(之後簡稱為處理器)執行計算裝置可讀指令(例如電腦程式)並對儲存於一或多個計算裝置可讀媒體(之後簡稱為記憶體)中的資料進行操作。為存取儲存於記憶體中的指令及資料,處理器可包括一或多個記憶體控制器及一或多個記憶體介面。舉例來說,處理器110可包括記憶體控制器115及複數個記憶體介面120至135供存取框緩衝器記憶體140至155,如圖1所示。應理解到,記憶體介面可獨立於記憶體控制器或整合至記憶體控制器。
然而,為易於理解,將針對獨立的記憶體控制器及記憶體介面描述習知技術及本發明技術的具體實施例。記憶體控制器一般將在一記憶體空間中的位址轉換為在另一記憶體空間中的位址。舉例來說,記憶體控制器可將邏輯位址轉換為實體位址。記憶體介面一般將在一給定記憶體空間中的位址轉換為電信號以驅動位址、資料及控制線,並接收在位址、資料及控制線上的電信號,以向記憶體或從記憶體讀取及寫入資料及/或電腦可讀指令。
處理器也可包括許多其他未顯示的功能塊。舉例來說,處理器可包括複數個處理器核心、一或多個通訊介面及類似者。處理器為此技藝中所習知,因此將不再討論與本發明技術的理解無密切關係的處理器其他面向。
電子裝置及/或電子裝置的處理器之效能係由許多因素所決定,包括記憶體的數量、記憶體可被存取的速率、功率消耗、及/或類似者。一般而言,儲存容量越大,記憶體成本越高。類似地,記憶體裝置越快,記憶體成本越高且記憶體裝置消耗的功率越多。一般來說,處理器及記憶體時常都沒有使用在鋒值效能。反而,多數時間處理器及記憶體是閒置的(例如待機或休眠模式)或具有低工作負載。此外,製造者可基於一般的裝置架構而提供複數個電子裝置的模式。舉例來說,具有一般裝置架構的圖形處理器家族可包括第一模式,其包括在1GHz操作之4GB的SDDR3(雙資料率同步動態隨機存取記憶體)記憶體,而另一模式可包括在2GHz操作之2GB的GDDR5記憶體。一般來說,習知的處理器及記憶體系統限制了提供具有一般裝置架構之多重模式的能力,其係基於記憶體儲存容量、記憶體存取速率、功率消耗、成本、及其組合而提供不同等級的效能。因此,持續需要改良之計算裝置中的記憶體次系統,像是中央處理單元、圖形處理單元、數位信號處理單元、微控制器及類似者。
本發明技術可藉由參照用以描述本發明技術之具體實施例之以下描述及附隨圖式而有較佳的理解,其係關於用以平衡對 具有不同記憶體種類之記憶體進行記憶體存取的技術。
在一具體實施例中,決定耦合至一計算裝置之複數個不同種類之記憶體裝置的一或多個參數,其包含一資料速率。接著,組態一記憶體映射演算法來平衡至二或多個不同記憶體種類的流量,以作為包括該資料速率之該記憶體裝置之該一或多個參數的一函數。
在另一具體實施例中,針對每一所接收之記憶體存取請求,決定在複數個記憶體裝置中的位置。位置係從一映射而決定,該映射係平衡不同記憶體種類之二或更多記憶體之間的流量,以作為包括一資料速率之不同記憶體種類之一或多個參數的一函數。接著,可存取在對應記憶體裝置中之位置。
現在將詳細參考本發明技術的具體實施例,附圖內將說明其範例。雖然本發明技術將結合這些具體實施例來說明,將瞭解到這並意欲限制本發明於這些具體實施例。相反地,本發明係意圖涵蓋可由後附申請專利範圍所定義之本發明範疇內所包含之變化、修改與均等。此外,在下列本發明技術的詳細說明中,將提出許多特定細節以提供對本發明技術的通盤瞭解。不過,將瞭解到本發明技術可無這些特定細節而實施。在其他實例中,已知的方法、程序、構件和電路並未詳述,以避免不必要地模糊本發明技術的態樣。
以下之本發明技術的某些具體實施例以在一或多個電子裝 置內之資料上操作的常式、模組、邏輯塊、及其他符號表示來呈現。這些說明及表示為熟此技藝者通常用於此領域的手段,以有效地將工作內容傳達給其他熟此技藝者。於本文中,常式、模組、邏輯塊及/或類似者通常視為導致所需結果之自相一致順序的程序或指令。這些處理為包括物理量的物理操控者。通常但非必要,這些物理操控採一或多種電或磁信號的形式,其能被儲存、轉移、比較、或操控於電子裝置中。為方便起見且參照一般使用,這些信號針對本發明技術之具體實施例係表示為資料、位元、數值、元件、符號、字母、術語、數字、字串、及/或類似者。
然而,應注意,所有這用語係解釋為參照物理操控及量且僅為便利符號,且係進一步考慮此技術領域中常用的用語而解釋。於下討論中除非有特別指明,應理解本發明技術的討論中使用例如「接收」及/或類似者之用語之討論係表示電子裝置(例如操控及轉換資料之電子計算裝置)的動作及處理。資料係表示為在電子裝置之邏輯電路、暫存器、記憶體及/或類似者內之物理(例如電子信號)量,及係轉換成類似表示為電子裝置內之物理量的其他資料。
在此申請案中,使用反意連接詞(disjunctive)意欲包含連接詞。使用定冠詞或不定冠詞並不意欲指示基數(cardinality)。特別地,提及「該」物體或「一」物體亦意欲表示可能的複數個此等物體之一者。
現在參考圖2及3,其根據本發明技術之一具體實施例顯示 了包括處理器及記憶體的一電子裝置。處理器包括一或多個記憶體控制器及複數個記憶體介面。每一記憶體介面可耦合至在複數個分區中的個別記憶體裝置。第一分區(partition)可包括以第一資料速率操作的一或多個記憶體裝置。第二分區可包括以第二資料速率操作的一或多個記憶體裝置。舉例來說,GPU可包括兩個框緩衝器(frame buffer)介面。第一框緩衝器介面可耦合至以1GHz資料速率操作之4GB的SDDR3記憶體。第二框緩衝器介面可耦合至以2GHz資料速率操作之2GB的GDDR5記憶體,如圖2所示。在另一範例中,第一及第二框緩衝器介面每一可耦合至以250MHz資料速率操作之個別的2GB的SDDR3記憶體。第三框緩衝器介面可耦合至以1GHz操作之1GB的GDDR5記憶體,如圖3所示。根據本發明技術之具體實施例之電子裝置的組態及操作將參考圖4及5做進一步的解釋。
現在參考圖4,其顯示根據本發明技術之一具體實施例之用以初始化處理器及記憶體以支援不同記憶體種類之方法。方法可以硬體、韌體、軟體或其任何組合而實施。在步驟410,處理器的初始化可包括決定針對耦合至處理器之複數個不同種類之記憶體230-235、335-345之每一者的一或多個參數。一或多個參數包括複數個分區之每一者的資料速率。參數也可包括每一分區的儲存容量、每一分區的記憶體寬度、每一分區的功率消耗、及/或類似者。在一實施中,複數個分區的資料速率係基於處理器中之可程式化設定而決定。處理器的可程式化設定可例如組態以設定記憶體裝置之操作的時脈(例如CK及WCK)。每一分區的資料速率係關聯於處理器組態以與每一個別分區操作之時脈速率。舉例來說,可決定處理器係組態以250 MHz之時 脈與資料速率1GHz之SDDR3記憶體的第一分區操作以及以500 MHz之時脈與資料速率2GHz之GDDR5記憶體的第二分區操作。針對圖2所描述的範例,亦可決定4GB的SDDR3記憶體係耦合至64位元寬的記憶體介面,而2GB的GDDR5記憶體係耦合至64位元寬的記憶體介面。在另一範例中,可決定處理器係組態以與操作於1GHz之資料速率的兩個2GB SDDR3記憶體裝置的第一分區、及操作於4GHz之速率的一1GB GDDR5記憶體裝置的第二分區操作,如圖3所示。
再次參考圖4,在選擇性步驟420,也可決定處理器210、310或在處理器上之負載(如應用程式)的一或多個參數。處理器的一或多個參數可包括在每一分區中耦合記憶體至處理器之記憶體介面的數量、或類似者。舉例來說,可決定處理器包括兩個框緩衝器記憶體介面,一個耦合至1GHz SDDR3記憶體的第一分區且第二個耦合至2GHz GDDR5記憶體,如圖2所示。在另一範例中,可決定處理器包括三個框緩衝器記憶體介面,其中第一及第二框緩衝器記憶體介面每一係耦合至2GB之1GHz SDDR3記憶體,且第三框緩衝器記憶體介面係耦合至1GB之4GHz GDDR5,如圖3所示。處理負載的一或多個參數可包括處理的種類、記憶體頻寬、記憶體潛時、所需記憶體的數量、或類似者。舉例來說,處理種類可為MPEG顯像、三維顯像或類似者。記憶體頻寬可為記憶體利用度(例如閒置、低或高)的預測。
再次參考圖4,在步驟430,記憶體映射演算法250、350係組態來平衡至二或多個不同記憶體種類230-235、335-345的 流量,以作為包括資料速率之一或多個所決定參數的一函數。在一實施中,記憶體映射演算法250、350係組態以產生記憶體映射255、355,其平衡具有不同資料速率之二或多個分區230-235、335-345的流量。流量可藉由分拆(striping)對二或更多分區230-235、335-345的記憶體存取為不同資料速率的函數而平衡。舉例來說,若1GHz SDDR3的第一分區以及2GHz GDDR5的第二分區係耦合至處理器(如圖2所示),映射演算法可組態以1KB對2KB塊的比率分別儲存資料於第一及第二分區。若兩個1GHz SDDR3記憶體裝置的第一分區以及一4GHz GDDR5記憶體裝置的第二分區係耦合至處理器(如圖3所示),映射演算法可組態以將每6KB的資料儲存於在兩個1GHz SDDR3記憶體裝置之每一者中的1KB塊以及在一4GHz GDDR5中的4KB塊。資料可分拆於不同的記憶體裝置。若在其中一記憶體裝置中有一額外的記憶體,則剩餘記憶體可個別地映射而非分拆(non-striped),使得所有記憶體為可存取。在一實施中,剩餘記憶體的一或多個分區可分別在一或多個其他位置存取作為連續記憶體。
再次參考圖4,在選擇性步驟440,記憶體映射演算法250、350可進一步動態地組態以平衡至二或更多不同記憶體種類的流量,以作為一或多個所決定參數的函數。舉例來說,若記憶體存取流量負載參數在一預定範圍(例如MPEG解碼、閒置或低處理負載),記憶體映射演算法250、350可動態地組態以將記憶體存取導向至第一分區。針對第二種類的處理或第二記憶體頻寬需求,例如三維顯像或高處理負載,映射演算法係組態以將記憶體存取導向至第一及第二分區,以作為每一分區之資料 速率的一函數。替代地或是額外地,若功率消耗參數在一預定範圍(例如使用一電池而不是插入電源插座操作時),記憶體映射演算法250、350可動態地組態以將記憶體存取導向至第一分區。
現在參考圖5,其顯示根據本發明技術之一具體實施例之用以存取在不同分區具有不同記憶體種類之記憶體的方法。方法可以硬體、韌體、軟體或其任何組合實施。在510,接收在一給定實體位址及一給定長度的記憶體存取請求。記憶體存取請求可為讀取記憶體存取、寫入記憶體存取、抹除記憶體存取及/或類似者。在一實施中,記憶體存取請求係由記憶體控制器215、315所接收。
在步驟520,從映射255、355決定給定實體位址及給定長度之在複數個記憶體裝置230-235、335-345中的位置,映射255、355係平衡不同記憶體種類之二或更多記憶體之間的流量,以作為不同記憶體種類之一或多個參數(包括資料速率)的一函數。舉例來說,對開始於一給定實體位址之6KB的記憶體寫入存取可映射以分拆為第一1KB塊(chunk)至耦合第一框緩衝器記憶體介面之1GHz SDDR3記憶體裝置、第二及第三1KB塊至耦合第二框緩衝器記憶體介面之2GHz GDDR5記憶體裝置、第四1KB塊至1GHz SDDR3記憶體裝置、以及第五及第六1KB塊至2GHz GDDR5記憶體裝置,如圖2所示。之後,映射255、355可用以從SDDR3及/或GDDR5記憶體讀取資料或其部分。在另一範例中,對開始於一給定實體位址之6KB的記憶體寫入存取可映射以分拆為第一1KB塊至第一1GHz SDDR3記憶體裝置、第二1KB塊至第二1GHz SDDR3記憶體裝置、以及第三、 第四、第五及第六1KB塊至第一4GHz GDDR5記憶體裝置,如圖3所示。在一實施中,映射可儲存於由記憶體控制器215、315所使用之記憶體映射表255、355中。
再次參考圖5,在步驟530,一或多個記憶體介面220-225、320-330係用以存取在不同記憶體種類之對應記憶體裝置230-235、335-345中的位置。在一實施中,記憶體控制器215、315將記憶體存取請求派送至由記憶體映射表255、355所決定之給定的記憶體介面230-235、335-345,以作為不同記憶體種類之一或多個參數(包括資料速率)的一函數。
在一實施中,初始化處理器及記憶體以支援不同記憶體種類的方法可在計算裝置的製造過程中執行。舉例來說,製造者可設計具有一般模組架構之處理器家族,其可組態以實施複數個不同處理器或電子電路,例如一基本GPU及一更佳GPU。處理器的效能係由許多因素所決定,包括記憶體的數量、記憶體可被存取的速率、及記憶體所消耗的功率。要預測競爭對手的處理器產品的效能是困難的。然而,提供表現超過競爭產品一給定量(例如20%至50%)的基本GPU是有利的。此外,更佳GPU提供高於基本GPU一給定量的額外效能(例如20%至50%)是有利的。本發明技術的具體實施例致能製造者在製程循環後端(例如在電路板組裝過程中)選擇耦合至處理器的記憶體組合,以達成給定的效能參數組。舉例來說,以在128位元寬記憶體組態中之耦合至兩個框緩衝記憶體介面之操作於1GHz資料速率的兩個2GB SDDR3記憶體IC,基本GPU的執行速率及功率消耗可擊敗競爭對手的產品。具有操作於1GHz之一4GB SDDR3記 憶體IC以及操作於2GHz之2GB GDDR5的處理器可提供額外的處理速率,同時節省功率且使成本低於使用兩個GDDR5記憶體晶片的情況。因此,根據本發明技術的具體實施例,製造者可有利地利用用以初始化的技術以及支援不同記憶體種類之處理器及記憶體的操作而符合產品家族的混合性能指標。
現在參考圖6,其顯示根據本發明技術之另一具體實施例之包括處理器及記憶體之一電子裝置。處理器包括一或多個記憶體控制器及複數個記憶體介面。每一記憶體介面可耦合至一個別記憶體裝置。一或多個記憶體裝置可組織為一或多分區。第一組分區可包括以第一資料速率操作的一或多個記憶體裝置以及以第二資料速率操作的一或多個記憶體裝置。第二組分區可包括以第一資料速率操作的一或多個記憶體裝置。舉例來說,GPU可包括兩個框緩衝器介面。第一框緩衝器介面可耦合至操作於1GHz之資料速率的1GB SDDR3記憶體。第二框緩衝器介面可耦合至操作於2.5GHz之資料速率的1GB GDDR5記憶體。第一組分區可包括操作於1GHz之資料速率的1GB SDDR3記憶體的第一分區(P0)以及操作於2.5GHz之資料速率的1GB GDDR5記憶體的第二分區(P1)。第二組分區可包括操作於1GHz之資料速率的1GB SDDR3記憶體的第三分區(P2)。
現在參考圖7,其顯示根據本發明技術之一具體實施例之用以初始化處理器及記憶體以支援不同記憶體種類之方法。方法可以硬體、韌體、軟體或其任何組合而實施。在步驟710,處理器的初始化可包括決定針對耦合至處理器之複數個不同種類之記憶體630、635之每一者的一或多個參數。一或多個參數可包 括複數個記憶體裝置之每一者的資料速率。參數也可包括每一裝置的儲存容量、每一裝置的記憶體寬度、每一裝置的功率消耗、及/或類似者。在一實施中,複數個記憶體裝置的資料速率係基於處理器中之可程式化設定而決定。處理器的可程式化設定可例如組態以設定記憶體裝置之操作的時脈(例如CK及WCK)。每一記憶體裝置的資料速率係關聯於處理器組態以與每一個別裝置操作之時脈速率。舉例來說,可決定處理器係組態以250 MHz之時脈與資料速率1GHz之SDDR3記憶體630操作、以及以625 MHz之時脈與資料速率2.5GHz之GDDR5記憶體635操作。
在選擇性步驟720,也可決定處理器610或在處理器上之負載(如應用程式)的一或多個參數。處理器的一或多個參數可包括在每一分區中耦合記憶體至處理器之記憶體介面的數量、或類似者。舉例來說,可決定處理器包括兩個框緩衝器記憶體介面620、625,其中一個耦合至1GHz SDDR3記憶體630且第二個耦合至2.5GHz GDDR5記憶體635。處理負載的一或多個參數可包括處理的種類、記憶體頻寬、記憶體潛時、所需記憶體的數量、或類似者。舉例來說,處理種類可為MPEG顯像、三維顯像或類似者。記憶體頻寬可為記憶體利用度(例如閒置、低或高)的預測。
在步驟730,每一記憶體裝置係組織為一或多個分區,以作為不同種類之記憶體裝置之每一者的一或多所決定之參數(其包括資料速率)的函數。舉例來說,針對1KB頁尺寸,在與1GHz SDDR3記憶體630之2KB相同的時間量中,5KB記憶體可於 2.5GHz GDDR5記憶體635中。因此,在存取2.5GHz GDDR5記憶體635之全部1GB所需的相同時間量,1GHz SDDR3記憶體630之1GB中只有0.4GB可被存取。因此,1GB的1GHz SDDR3記憶體630可組織為0.4GB分區(P0)以及0.6GB分區(P2),且1GB的2.5GHz GDDR5記憶體635可組織為1GB分區(P1)。
在步驟740,記憶體映射演算法640係組態以平衡至二或多個不同記憶體種類之記憶體裝置630、635中之分區的流量,以作為包括資料速率之一或多個所決定參數的一函數。在一實施中,記憶體映射演算法640係組態以產生記憶體映射645,其平衡具有不同資料速率之複數個分區之間的流量。流量可藉由分拆對複數個分區的記憶體存取為而平衡,以作為該些記憶體裝置之不同資料速率的函數。舉例來說,若1GB之1GHz SDDR3 630以及1GB之2.5GHz GDDR5 635係耦合至處理器610,映射演算法可組態以2:5的比率儲存資料於1GHz SDDR3記憶體630之0.4GB的第一分區以及2.5GHz GDDR6記憶體635之1GB的第二分區、以及1GHz SDDR3記憶體630之0.6GB的第三分區。資料可分拆於第一分區P0及第二分區P1。第三分區P2的剩餘記憶體可個別地映射而非分拆,使得所有記憶體為可存取。
在步驟750,記憶體映射演算法640可進一步動態地組態來平衡至二或更多不同記憶體種類之記憶體裝置中分區的流量,以作為一或多個其他所決定參數的函數。舉例來說,若記憶體存取流量負載參數在一預定範圍(例如MPEG解碼、閒置或低處理負載),記憶體映射演算法640可動態地組態以將記憶體存取 導向至第三分區。針對第二種類的處理或第二記憶體頻寬需求,例如三維顯像或高處理負載,映射演算法係組態以將記憶體存取導向至第一及第二分區,以作為每一分區之資料速率的一函數。替代地或是額外地,若功率消耗參數在一預定範圍(例如使用一電池而不是插入電源插座操作時),記憶體映射演算法640可動態地組態以將記憶體存取導向至第一及第三分區。
現在參考圖8,其顯示根據本發明技術之一具體實施例之用以存取在不同分區具有不同記憶體種類之記憶體的方法。方法可以硬體、韌體、軟體或其任何組合實施。在步驟810,接收在一給定實體位址及一給定長度的記憶體存取請求。記憶體存取請求可為讀取記憶體存取、寫入記憶體存取、抹除記憶體存取及/或類似者。在一實施中,記憶體存取請求係由記憶體控制器615所接收。
在步驟820,從映射645決定給定實體位址及給定長度之在複數個記憶體裝置630、635中的位置,映射645係平衡二或更多不同記憶體種類之記憶體裝置中之分區之間的流量,以作為不同記憶體種類之一或多個參數(包括資料速率)的一函數。舉例來說,如圖9所描述,對開始於一給定實體位址910之7KB的記憶體寫入存取可映射以分拆為第一1KB頁915至1GHz SDDR3記憶體裝置630的第一0.4GB分區P0 920、第二及第三1KB頁925至2.5GHz GDDR5記憶體裝置635的第二1GB分區P1 930、第四1KB頁935至之1GHz SDDR3記憶體裝置630之0.4GB分區P0 920、以及第五、第六及第七1KB頁940至2GHz GDDR5記憶體裝置635之1GB分區P1 930。2.5GHz GDDR5 記憶體裝置635的1GB將被消耗,而1GHz SDDR3記憶體裝置630只有0.4GB將被利用。因此,在第三分區P2中之1GHz SDDR3記憶體的額外0.6GB 950係映射(955)至開始於預定偏位的線性位址960。在一實施中,1GHz SDDR3記憶體裝置630的記憶體空間係映射兩次。1GHz SDDR3記憶體之0.4GB P0的第一分區係與在第二分區P1 930中之2.5GHz GDDR5記憶體的1GB交錯(interleaved)映射。舉例來說,1GHz SDDR3記憶體的1GB接著在8GB之給定偏位(offset)進行第二次映射。舉例來說,接著使用軟體以避免在高記憶體空間中的前0.4GB被存取,因為其係與較低的記憶體形式混淆。之後,映射645可用以從SDDR3及/或GDDR5記憶體630、635讀取資料或其部分。
在步驟830,一或多個記憶體介面620、625係用以存取在不同記憶體種類之對應記憶體裝置630、635中的位置。在一實施中,記憶體控制器615將記憶體存取請求派送至由記憶體映射表645所決定之給定的記憶體介面620、625,以作為不同記憶體種類之一或多個參數(包括資料速率)的一函數。
本發明技術之具體實施例可容易地延伸至具有包括多於兩種不同種類記憶體之記憶體系統的電子裝置。舉例來說,記憶體存取可分拆至三個記憶體,直到其中一記憶體用盡。記憶體存取可接著分拆於其他兩個記憶體,直到第二個記憶體用盡。之後,記憶體存取可對第三記憶體裝置採非分拆方式。此外,本發明技術之具體實施例可容易地延伸至具有包括在個別資料速率之間具有非整數(non-integer)比率的不同種類記憶體之記憶體系統的電子裝置。
已為了解說及說明而提出本發明技術之特定具體實施例的以上描述。以上描述並不意圖詳盡窮舉或限制本發明於所揭示的精確形式,且顯然可按照以上教示進行許多修改及變化。具體實施例的選擇與說明係為了對本發明技術的原理及實際應用提出最好的解說,藉此讓熟習本技術者以適於所想特定用途的各種修改,充分利用本發明及各種具體實施例。預期本發明範疇係由本文後隨之申請專利範圍及其均等所定義。
110‧‧‧處理器
115‧‧‧記憶體控制器
120‧‧‧記憶體介面
125‧‧‧記憶體介面
135‧‧‧記憶體介面
140‧‧‧框緩衝器記憶體
145‧‧‧框緩衝器記憶體
155‧‧‧框緩衝器記憶體
210‧‧‧處理器
215‧‧‧記憶體控制器
220‧‧‧記憶體介面
225‧‧‧記憶體介面
230‧‧‧記憶體
235‧‧‧記憶體
250‧‧‧記憶體映射演算法
255‧‧‧記憶體映射
310‧‧‧處理器
315‧‧‧記憶體控制器
320‧‧‧記憶體介面
325‧‧‧記憶體介面
330‧‧‧記憶體介面
335‧‧‧記憶體
340‧‧‧記憶體
345‧‧‧記憶體
350‧‧‧記憶體映射演算法
355‧‧‧記憶體映射
610‧‧‧處理器
615‧‧‧記憶體控制器
620‧‧‧框緩衝器記憶體介面
625‧‧‧框緩衝器記憶體介面
630‧‧‧記憶體
635‧‧‧記憶體
650‧‧‧記憶體映射演算法
655‧‧‧記憶體映射
910‧‧‧給定實體位址
915‧‧‧1KB頁
920‧‧‧分區
925‧‧‧1KB頁
930‧‧‧分區
935‧‧‧1KB頁
945‧‧‧1KB頁
950‧‧‧分區
955‧‧‧映射
960‧‧‧線性位址
本發明技術之具體實施例係以範例形式說明而非作為限制,於所附隨的圖式中類似的參考符號表示類似的元件,其中:圖1顯示根據習知技術的具體實施例之包括處理器及記憶體之一電子裝置的方塊圖;圖2顯示根據本發明技術之一具體實施例之包括處理器及記憶體之一電子裝置的方塊圖;圖3顯示根據本發明技術之另一具體實施例之包括處理器及記憶體之一電子裝置的方塊圖;圖4顯示根據本發明技術之一具體實施例之用以建立處理器及記憶體以支援不同記憶體種類之方法的流程圖;圖5顯示根據本發明技術之一具體實施例之用以存取具有不同記憶體種類之記憶體之方法的流程圖;圖6顯示根據本發明技術之另一具體實施例之包括處理器及記憶體之一電子裝置的方塊圖;圖7顯示根據本發明技術之另一具體實施例之用以建立處理器及記憶體以支援不同記憶體種類之方法的流程圖; 圖8顯示根據本發明技術之另一具體實施例之用以存取具有不同記憶體種類之記憶體之方法的流程圖;以及圖9顯示根據本發明技術之具體實施例之一方塊圖,其描述支援不同記憶體種類之處理器的記憶體空間。

Claims (20)

  1. 一種方法,包含:決定耦合至一計算裝置之複數個不同種類之記憶體裝置的一或多個參數,其包含一資料速率;以及組態一記憶體映射演算法來平衡至二或多個不同記憶體種類的流量,以作為包括該資料速率之該記憶體裝置之該一或多個參數的一函數。
  2. 如請求項1所述之方法,更包含組態該記憶體映射演算法以動態地存取一或多個種類的記憶體,以作為所決定之一或多個其他參數的一函數。
  3. 如請求項1所述之方法,更包含:決定該計算裝置或在該計算裝置上之負載的一或多個參數;以及組態該記憶體映射演算法以動態地存取一或多個種類的記憶體,以作為所決定之該計算裝置或在該計算裝置上之負載的一或多個參數的一函數。
  4. 如請求項1所述之方法,更包含:以所決定之包括該資料速率之該記憶體裝置之該一或多個參數的一函數將每一記憶體裝置組織為一或多個分區(partition);以及組態該記憶體映射演算法以平衡至二或多個不同種類之記憶體裝置中之分區的流量,以作為所決定之包括該資料速率之該記憶體裝置之該一或多個參數的一函數。
  5. 如請求項1所述之方法,其中該組態的記憶體映射演算法係以該記憶體之該資料存取速率之一比率將記憶體存取分拆(stripe)於該二或更多不同種類之記憶體。
  6. 如請求項5所述之方法,其中該記憶體映射係組態以在分拆後於另一位置存取該第一或第二組記憶體裝置之一剩餘部分,以作為連續記憶體。
  7. 一種方法,包含:接收在一給定實體位址及一給定長度之一記憶體存取請求;從一映射決定針對該給定實體位址及該給定長度之在複數個記憶體裝置中的位置,該映射係平衡不同記憶體種類之二或更多記憶體之間的流量,以作為包括一資料速率之不同記憶體種類之一或多個參數的一函數;以及存取在該對應記憶體裝置中之該位置。
  8. 如請求項7所述之方法,其中該映射更平衡在不同種類之該二或更多記憶體中之分區的流量,以作為包括一資料速率之不同記憶體種類之一或多個參數的一函數。
  9. 如請求項7所述之方法,其中該複數個記憶體裝置包含操作於一第一資料速率的一第一組記憶體裝置以及操作於一第二資料速率的一第二組記憶體裝置。
  10. 如請求項9所述之方法,其中寫入記憶體存取的位置係動態地映射至一或多個種類之記憶體,以作為一或多個其他參數之一函數,而非以該不同記憶體種類之該資料速率的一函數而進行平衡。
  11. 如請求項10所述之方法,其中該一或多個其他參數包含一記憶體存取流量負載參數。
  12. 如請求項10所述之方法,其中該一或多個其他參數包含一記憶體功率消耗參數。
  13. 一種方法,包含:一初始化階段,包含:決定耦合至一計算裝置之複數個不同種類之記憶體裝置的一或多個參數,其包含一資料速率;以及組態一記憶體映射演算法來平衡至二或多個不同記憶體種類的流量,以作為包括該資料速率之該記憶體裝置之該一或多個參數的一函數;以及一操作階段,包含:接收在一給定實體位址及一給定長度之一記憶體存取請求;基於該記憶體映射演算法決定針對該給定實體位址及該給定長度之在複數個記憶體裝置中的位置;以及存取在該對應記憶體裝置中之該位置。
  14. 如請求項13所述之方法,其中一第一種類之記憶體係由一第一資料速率特徵化,且一第二種類之記憶體係由比該第一資料速率快之一第二資料速率特徵化。
  15. 如請求項14所述之方法,其中該第一種類之記憶體係由一第一儲存容量特徵化,且該第二種類之記憶體係由比該第一儲存容量少之一第二儲存容量特徵化。
  16. 如請求項15所述之方法,其中該第一種類之記憶體係由一第一功率比特徵化,且該第二種類之記憶體係由比該第一功率比大之一第二功率比特徵化。
  17. 如請求項16所述之方法,其中該第一種類之記憶體係由一第一成本特徵化,且該第二種類之記憶體係由比該第一成本大之一第二成本特徵化。
  18. 如請求項17所述之方法,其中該組態的記憶體映射演算法係以該第一及第二種類之該資料速率之一比率將記憶體存取分拆於該些記憶體。
  19. 如請求項18所述之方法,其中若一記憶體存取流量負載參數在一預定範圍中,該組態的記憶體映射演算法係動態地存取該第一種類之記憶體,而非平衡在該第一及第二種類記憶體之間的流量。
  20. 如請求項18所述之方法,其中若一功率消耗參數在 一預定範圍中,該組態的記憶體映射演算法係動態地存取該第一種類之記憶體,而非平衡在該第一及第二種類記憶體之間的流量。
TW101126755A 2011-07-26 2012-07-25 平衡對具有不同記憶體種類的記憶體進行存取的技術 TWI526926B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/191,438 US9529712B2 (en) 2011-07-26 2011-07-26 Techniques for balancing accesses to memory having different memory types

Publications (2)

Publication Number Publication Date
TW201324336A true TW201324336A (zh) 2013-06-16
TWI526926B TWI526926B (zh) 2016-03-21

Family

ID=47598247

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101126755A TWI526926B (zh) 2011-07-26 2012-07-25 平衡對具有不同記憶體種類的記憶體進行存取的技術

Country Status (3)

Country Link
US (1) US9529712B2 (zh)
CN (1) CN102999438B (zh)
TW (1) TWI526926B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI736155B (zh) * 2020-02-27 2021-08-11 瑞昱半導體股份有限公司 用於多個記憶裝置的控制方法及相關的記憶體系統

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9477597B2 (en) 2011-03-25 2016-10-25 Nvidia Corporation Techniques for different memory depths on different partitions
US8701057B2 (en) 2011-04-11 2014-04-15 Nvidia Corporation Design, layout, and manufacturing techniques for multivariant integrated circuits
US9529712B2 (en) 2011-07-26 2016-12-27 Nvidia Corporation Techniques for balancing accesses to memory having different memory types
CN102331943B (zh) * 2011-09-08 2014-09-17 威盛电子股份有限公司 在线更新存储器系统与方法
US9081666B2 (en) * 2013-02-15 2015-07-14 Seagate Technology Llc Non-volatile memory channel control using a general purpose programmable processor in combination with a low level programmable sequencer
US9465735B2 (en) * 2013-10-03 2016-10-11 Qualcomm Incorporated System and method for uniform interleaving of data across a multiple-channel memory architecture with asymmetric storage capacity
CN110413339A (zh) * 2015-11-12 2019-11-05 华为技术有限公司 加载软件模块的方法和装置
US10489877B2 (en) * 2017-04-24 2019-11-26 Intel Corporation Compute optimization mechanism
US10726514B2 (en) * 2017-04-28 2020-07-28 Intel Corporation Compute optimizations for low precision machine learning operations
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
CN112534405A (zh) 2019-03-15 2021-03-19 英特尔公司 用于脉动阵列上的块稀疏操作的架构
CN113366454A (zh) 2019-03-15 2021-09-07 英特尔公司 用于图形操作的多片架构
US11182309B2 (en) * 2019-11-04 2021-11-23 Nvidia Corporation Techniques for an efficient fabric attached memory
US11663746B2 (en) 2019-11-15 2023-05-30 Intel Corporation Systolic arithmetic on sparse data
US11861761B2 (en) 2019-11-15 2024-01-02 Intel Corporation Graphics processing unit processing and caching improvements
CN113312281A (zh) * 2020-02-27 2021-08-27 瑞昱半导体股份有限公司 用于多个存储设备的控制方法及相关的内存系统
CN118103824A (zh) * 2021-06-09 2024-05-28 安法布里卡公司 通过网络协议的透明远程存储器访问
US11556472B1 (en) 2021-08-04 2023-01-17 International Business Machines Corporation Data processing system having masters that adapt to agents with differing retry behaviors

Family Cites Families (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684939A (en) 1993-07-09 1997-11-04 Silicon Graphics, Inc. Antialiased imaging with improved pixel supersampling
US5664162A (en) 1994-05-23 1997-09-02 Cirrus Logic, Inc. Graphics accelerator with dual memory controllers
US5655113A (en) 1994-07-05 1997-08-05 Monolithic System Technology, Inc. Resynchronization circuit for a memory system and method of operating same
US5553023A (en) 1994-12-23 1996-09-03 Lsi Logic Corporation Memory partitioning
US5594854A (en) 1995-03-24 1997-01-14 3Dlabs Inc. Ltd. Graphics subsystem with coarse subpixel correction
US5623692A (en) 1995-05-15 1997-04-22 Nvidia Corporation Architecture for providing input/output operations in a computer system
US5854637A (en) 1995-08-17 1998-12-29 Intel Corporation Method and apparatus for managing access to a computer system memory shared by a graphics controller and a memory controller
US5701438A (en) * 1995-09-29 1997-12-23 Intel Corporation Logical relocation of memory based on memory device type
US5854631A (en) 1995-11-22 1998-12-29 Silicon Graphics, Inc. System and method for merging pixel fragments based on depth range values
US5991850A (en) 1996-08-15 1999-11-23 Micron Technology, Inc. Synchronous DRAM modules including multiple clock out signals for increasing processing speed
US6104417A (en) 1996-09-13 2000-08-15 Silicon Graphics, Inc. Unified memory computer architecture with dynamic graphics memory allocation
US6115049A (en) 1996-09-30 2000-09-05 Apple Computer, Inc. Method and apparatus for high performance antialiasing which minimizes per pixel storage and object data bandwidth
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
US6551857B2 (en) 1997-04-04 2003-04-22 Elm Technology Corporation Three dimensional structure integrated circuits
US6249853B1 (en) 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6199150B1 (en) * 1997-07-15 2001-03-06 Matsushita Electric Industrial Co., Ltd. Data memory apparatus forming memory map having areas with different access speeds
US6879266B1 (en) 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US6442650B1 (en) * 1997-10-06 2002-08-27 Emc Corporation Maximizing sequential output in a disk array storage device
US6204859B1 (en) 1997-10-15 2001-03-20 Digital Equipment Corporation Method and apparatus for compositing colors of images with memory constraints for storing pixel data
US6128000A (en) 1997-10-15 2000-10-03 Compaq Computer Corporation Full-scene antialiasing using improved supersampling techniques
US5953215A (en) 1997-12-01 1999-09-14 Karabatsos; Chris Apparatus and method for improving computer memory speed and capacity
US6717578B1 (en) 1998-02-17 2004-04-06 Sun Microsystems, Inc. Graphics system with a variable-resolution sample buffer
US6137918A (en) 1998-03-23 2000-10-24 Xerox Corporation Memory efficient method and apparatus to enable tagging of thin antialiased lines
US6496916B1 (en) 1998-04-17 2002-12-17 Agere Systems Inc. System for flexible memory paging in partitioning memory
US6188394B1 (en) 1998-08-28 2001-02-13 Ati Technologies, Inc. Method and apparatus for video graphics antialiasing
US6366289B1 (en) 1998-07-17 2002-04-02 Microsoft Corporation Method and system for managing a display image in compressed and uncompressed blocks
US6480205B1 (en) 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
US6771264B1 (en) 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6362819B1 (en) 1998-10-16 2002-03-26 Microsoft Corporation Texture tessellation for three-dimensional models
KR100287190B1 (ko) 1999-04-07 2001-04-16 윤종용 선택되는 메모리 모듈만을 데이터 라인에 연결하는 메모리 모듈 시스템 및 이를 이용한 데이터 입출력 방법
US6330635B1 (en) 1999-04-16 2001-12-11 Intel Corporation Multiple user interfaces for an integrated flash device
US7064771B1 (en) 1999-04-28 2006-06-20 Compaq Information Technologies Group, L.P. Method and apparatus for compositing colors of images using pixel fragments with Z and Z gradient parameters
US6446158B1 (en) 1999-05-17 2002-09-03 Chris Karabatsos Memory system using FET switches to select memory banks
EP1056047A1 (en) 1999-05-20 2000-11-29 Mannesmann VDO Aktiengesellschaft Method and apparatus for antialiased imaging of graphical objects
US6429877B1 (en) 1999-07-30 2002-08-06 Hewlett-Packard Company System and method for reducing the effects of aliasing in a computer graphics system
US6681310B1 (en) * 1999-11-29 2004-01-20 Microsoft Corporation Storage management system having common volume manager
US6452595B1 (en) 1999-12-06 2002-09-17 Nvidia Corporation Integrated graphics processing unit with antialiasing
US6469707B1 (en) 2000-01-19 2002-10-22 Nvidia Corporation Method for efficiently rendering color information for a pixel in a computer system
US6438062B1 (en) 2000-07-28 2002-08-20 International Business Machines Corporation Multiple memory bank command for synchronous DRAMs
TW498212B (en) 2000-08-12 2002-08-11 Acer Labs Inc Computer system to support DRAM of different types
US6633297B2 (en) 2000-08-18 2003-10-14 Hewlett-Packard Development Company, L.P. System and method for producing an antialiased image using a merge buffer
US6785767B2 (en) * 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
TW493782U (en) 2001-04-03 2002-07-01 Giantplus Technology Co Ltd Pixel driving module of liquid crystal display
US6587917B2 (en) 2001-05-29 2003-07-01 Agilent Technologies, Inc. Memory architecture for supporting concurrent access of different types
US7127647B1 (en) 2001-06-29 2006-10-24 Virage Logic Corporation Apparatus, method, and system to allocate redundant components
US6915443B2 (en) 2001-07-13 2005-07-05 Hewlett-Packard Development Company, L.P. System and method for adaptively adjusting clock skew in a variably loaded memory bus
JP5031954B2 (ja) 2001-07-25 2012-09-26 パナソニック株式会社 表示装置、表示方法及び表示制御プログラムを記録した記録媒体
US7073099B1 (en) 2002-05-30 2006-07-04 Marvell International Ltd. Method and apparatus for improving memory operation and yield
US7508398B1 (en) 2002-08-27 2009-03-24 Nvidia Corporation Transparent antialiased memory access
KR20040023843A (ko) 2002-09-12 2004-03-20 삼성전기주식회사 메모리의 결함 처리 장치 및 그 방법
US6781898B2 (en) 2002-10-30 2004-08-24 Broadcom Corporation Self-repairing built-in self test for linked list memories
US7197662B2 (en) 2002-10-31 2007-03-27 Ring Technology Enterprises, Llc Methods and systems for a storage system
US6912616B2 (en) 2002-11-12 2005-06-28 Hewlett-Packard Development Company, L.P. Mapping addresses to memory banks based on at least one mathematical relationship
US20040252547A1 (en) 2003-06-06 2004-12-16 Chengpu Wang Concurrent Processing Memory
US7657706B2 (en) * 2003-12-18 2010-02-02 Cisco Technology, Inc. High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory
US7136973B2 (en) * 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
US7634615B2 (en) * 2004-06-10 2009-12-15 Marvell World Trade Ltd. Adaptive storage system
US7702848B2 (en) * 2004-06-10 2010-04-20 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US7698607B2 (en) 2004-06-15 2010-04-13 Intel Corporation Repairing microdisplay frame buffers
US7571296B2 (en) 2004-11-11 2009-08-04 Nvidia Corporation Memory controller-adaptive 1T/2T timing control
US8619452B2 (en) 2005-09-02 2013-12-31 Google Inc. Methods and apparatus of stacking DRAMs
US7779311B2 (en) 2005-10-24 2010-08-17 Rambus Inc. Testing and recovery in a multilayer device
US7932912B1 (en) 2006-10-04 2011-04-26 Nvidia Corporation Frame buffer tag addressing for partitioned graphics memory supporting non-power of two number of memory elements
US8572330B2 (en) * 2005-12-19 2013-10-29 Commvault Systems, Inc. Systems and methods for granular resource management in a storage network
US7620793B1 (en) 2006-08-28 2009-11-17 Nvidia Corporation Mapping memory partitions to virtual memory pages
US8543792B1 (en) 2006-09-19 2013-09-24 Nvidia Corporation Memory access techniques including coalesing page table entries
US8347064B1 (en) 2006-09-19 2013-01-01 Nvidia Corporation Memory access techniques in an aperture mapped memory space
US8352709B1 (en) 2006-09-19 2013-01-08 Nvidia Corporation Direct memory access techniques that include caching segmentation data
US7884829B1 (en) 2006-10-04 2011-02-08 Nvidia Corporation Partitioned graphics memory supporting non-power of two number of memory elements
US20080091901A1 (en) 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
US7679974B2 (en) 2006-10-19 2010-03-16 Freescale Semiconductor, Inc. Memory device having selectively decoupleable memory portions and method thereof
US8700883B1 (en) 2006-10-24 2014-04-15 Nvidia Corporation Memory access techniques providing for override of a page table
US8347065B1 (en) 2006-11-01 2013-01-01 Glasco David B System and method for concurrently managing memory access requests
US8706975B1 (en) 2006-11-01 2014-04-22 Nvidia Corporation Memory access management block bind system and method
US7584335B2 (en) * 2006-11-02 2009-09-01 International Business Machines Corporation Methods and arrangements for hybrid data storage
KR101428714B1 (ko) * 2006-11-23 2014-08-11 삼성디스플레이 주식회사 데이터 처리장치 및 이를 갖는 표시장치
CN101601018B (zh) * 2007-01-19 2011-11-09 汤姆森许可贸易公司 智能数字磁盘记录器上的对称存储访问
US8095762B1 (en) 2007-02-27 2012-01-10 Nvidia Corporation Low latency synchronous memory performance switching with drift refresh
JP5111965B2 (ja) 2007-07-24 2013-01-09 株式会社日立製作所 記憶制御装置及びその制御方法
US7945815B2 (en) 2007-08-14 2011-05-17 Dell Products L.P. System and method for managing memory errors in an information handling system
US7796451B2 (en) 2007-12-10 2010-09-14 Unity Semiconductor Corporation Integrated circuits and methods to compensate for defective memory in multiple layers of memory
US7917671B2 (en) * 2007-12-18 2011-03-29 Nvidia Corporation Scalable port controller architecture supporting data streams of different speeds
CN101241476B (zh) 2008-01-30 2010-12-08 中国科学院计算技术研究所 一种虚拟存储系统和方法
EP2243085A1 (en) 2008-02-10 2010-10-27 Rambus Inc. Segmentation of flash memory for partial volatile storage
US8745311B2 (en) * 2008-03-31 2014-06-03 Spansion Llc Flash memory usability enhancements in main memory application
KR101003102B1 (ko) * 2008-09-24 2010-12-21 한국전자통신연구원 멀티 프로세싱 유닛에 대한 메모리 매핑방법, 및 장치
WO2010041481A1 (en) * 2008-10-10 2010-04-15 Hitachi, Ltd. Storage system and method for controlling the same
US8645641B2 (en) * 2008-12-17 2014-02-04 Seagate Technology Llc Intelligent storage device controller
US8166338B2 (en) 2009-06-04 2012-04-24 International Business Machines Corporation Reliable exception handling in a computer system
US8914598B2 (en) * 2009-09-24 2014-12-16 Vmware, Inc. Distributed storage resource scheduler and load balancer
US8817031B2 (en) * 2009-10-02 2014-08-26 Nvidia Corporation Distributed stream output in a parallel processing unit
US8627041B2 (en) 2009-10-09 2014-01-07 Nvidia Corporation Efficient line and page organization for compression status bit caching
US8713280B2 (en) * 2009-10-30 2014-04-29 Hewlett-Packard Development Company, L.P. Hard disk drives having different rotational speeds
US9176909B2 (en) * 2009-12-11 2015-11-03 Nvidia Corporation Aggregating unoccupied PCI-e links to provide greater bandwidth
US20110167229A1 (en) * 2009-12-16 2011-07-07 The Johns Hopkins University Balanced data-intensive computing
US8621176B2 (en) * 2010-01-20 2013-12-31 Netapp, Inc. Method and system for allocating data objects for efficient reads in a mass storage subsystem
US8751738B2 (en) * 2010-02-08 2014-06-10 Microsoft Corporation Background migration of virtual storage
US8423727B2 (en) * 2010-03-16 2013-04-16 Hitachi, Ltd. I/O conversion method and apparatus for storage system
US8751771B2 (en) 2010-09-29 2014-06-10 Nvidia Corporation Efficient implementation of arrays of structures on SIMT and SIMD architectures
US9348515B2 (en) * 2011-01-17 2016-05-24 Hitachi, Ltd. Computer system, management computer and storage management method for managing data configuration based on statistical information
KR101544485B1 (ko) * 2011-04-25 2015-08-17 주식회사 케이티 클라우드 스토리지 시스템에서 복수개의 복제본을 분산 저장하는 방법 및 장치
US9529712B2 (en) 2011-07-26 2016-12-27 Nvidia Corporation Techniques for balancing accesses to memory having different memory types
US8793463B2 (en) * 2011-09-12 2014-07-29 Microsoft Corporation Allocation strategies for storage device sets

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI736155B (zh) * 2020-02-27 2021-08-11 瑞昱半導體股份有限公司 用於多個記憶裝置的控制方法及相關的記憶體系統
US11403242B2 (en) 2020-02-27 2022-08-02 Realtek Semiconductor Corp. Control method of multiple memory devices and associated memory system

Also Published As

Publication number Publication date
US20130031328A1 (en) 2013-01-31
CN102999438A (zh) 2013-03-27
US9529712B2 (en) 2016-12-27
TWI526926B (zh) 2016-03-21
CN102999438B (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
TWI526926B (zh) 平衡對具有不同記憶體種類的記憶體進行存取的技術
US10296217B2 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
EP2549382B1 (en) Virtual GPU
CN109154918B (zh) 自刷新状态机mop阵列
CN109690508B (zh) 带虚拟控制器模式的存储器控制器
TWI498819B (zh) 執行成型記憶體存取作業的系統和方法
US10943183B2 (en) Electronics device performing software training on memory channel and memory channel training method thereof
KR20170131376A (ko) 다중 레벨 셀 모드 비휘발성 메모리를 위한 비용 최적화된 단일 레벨 셀 모드 비휘발성 메모리
US20160283111A1 (en) Read operations in memory devices
BRPI0807951B1 (pt) Processador de multimídia multi-encadeado sob demanda
US20090319718A1 (en) Memory controller address mapping scheme
EP2945126B1 (en) Graphics processing method and graphics processing apparatus
WO2007138735A1 (ja) マルチプロセッサシステム、ライブラリモジュール、および描画処理方法
US20180018095A1 (en) Method of operating storage device and method of operating data processing system including the device
TWI514146B (zh) 用以降低dram存取的存取粒度之位址位元重新映射方法
KR20230041593A (ko) 프로그래밍가능한 인터리브 입도를 갖는 cxl 타입-2 디바이스들을 위한 확장가능한 주소 디코딩 체계
US9477597B2 (en) Techniques for different memory depths on different partitions
CN107526528B (zh) 一种片上低延迟存储器的实现机制
US8230196B1 (en) Configurable partitions for non-volatile memory
US10649925B2 (en) Indirect data return from memory controller logic
US20090228612A1 (en) Flexible Bus Interface and Method for Operating the Same
US9274794B2 (en) Processor and instruction processing method in processor
CN113609034A (zh) 处理器系统
CN113284532A (zh) 处理器系统