CN102999438A - 用于平衡对具有不同存储器类型的存储器的访问的技术 - Google Patents

用于平衡对具有不同存储器类型的存储器的访问的技术 Download PDF

Info

Publication number
CN102999438A
CN102999438A CN2012102629127A CN201210262912A CN102999438A CN 102999438 A CN102999438 A CN 102999438A CN 2012102629127 A CN2012102629127 A CN 2012102629127A CN 201210262912 A CN201210262912 A CN 201210262912A CN 102999438 A CN102999438 A CN 102999438A
Authority
CN
China
Prior art keywords
memory
storer
data rate
memory devices
access
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN2012102629127A
Other languages
English (en)
Other versions
CN102999438B (zh
Inventor
布莱恩·凯莱赫
埃米特·M·克里加里夫
韦恩·山野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
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 CN102999438A publication Critical patent/CN102999438A/zh
Application granted granted Critical
Publication of CN102999438B publication Critical patent/CN102999438B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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)等等。计算设备以下简称为处理器,其执行计算设备可读的指令(例如,计算机程序)并对存储在一个或多个计算设备可读的介质上的数据进行操作,该介质以下简称为存储器。为了访问存储在存储器中的指令和数据,处理器可包括一个或多个存储器控制器和一个或多个存储器接口。例如,如图1中所示,处理器110可包括存储器控制器(MC)115和用于访问帧缓冲器存储器(MEM)140-155的多个存储器接口(FB MI)120-135。应理解存储器接口可以与存储器控制器分开或集成。然而,为易于理解,常规技术和本技术的实施例将关于分开的存储器控制器和存储器接口进行描述。通常,存储器控制器将一个存储空间中的地址转换为另一存储空间中的地址。例如,存储器控制器可将逻辑地址转换为物理地址。通常,存储器接口将给定存储空间中的地址转换为电信号以驱动地址、数据和控制线,并接收地址、数据和控制线上的电信号,用于将数据和/或计算机可读指令写至存储器或从存储器读数据和/或计算机可读指令。
存储器还包括很多未示出的其他功能块。例如,处理器可包括多个处理器核、一个或多个通信接口等等。处理器为本技术领域众所周知,因此,处理器的与理解本技术无密切关系的那些方面将不进一步讨论。
电子设备和/或电子设备的处理器的性能由很多因素确定,包括存储器的数量、可访问存储器的速度、功耗等等。通常,存储容量越大,存储器成本也越高。类似地,存储器设备越快,存储器成本越高并且存储器设备耗能越大。通常,大多数时间,处理器和存储器都没有在峰值性能使用。相反,大多数时间,处理器和存储器是空闲的(例如,待机或休眠模式)或为低工作负载。此外,制造商可基于常见设备架构供应多个电子设备模型。例如,具有常见设备架构的图形处理器的族可包括第一模型,该模型包括以1GHz操作的4GB的SDDR3(双倍数据速率同步动态随机存取存储器)存储器,另一个模型可包括以2GHz操作的2GB的GDDR5存储器。通常,常规处理器和存储器***限制了提供具有常见设备架构的多个模型的能力,所述多个模型基于存储器存储容量、存储器访问速度、功耗、成本和其组合供应不同的性能水平。因此,存在对计算设备中的改进的存储器子***的持续需要,该计算设备诸如中央处理单元、图形处理单元、数字信号处理单元、微控制器等等。
发明内容
参考以下描述和附图可最好地理解本技术,所述附图用于示出涉及用于平衡对具有不同的存储器类型的存储器的存储器访问的技术的本技术的实施例。
在一个实施例中,确定耦合至计算设备的多个不同类型的存储器设备的一个或多个参数,包括数据速率。然后,根据存储器设备的包括数据速率的一个或多个所确定的参数,配置存储器映射算法以平衡至包括多个不同存储器类型的存储器设备的流量。
在另一个实施例中,针对每个接收的存储器访问请求,确定多个存储器设备中的位置。从映射确定该位置,该映射根据不同存储器类型的包括数据速率的一个或多个参数在不同存储器类型的两个或更多个存储器之间平衡流量。然后,对相应存储器设备中的位置进行访问。
附图说明
本技术的实施例通过示例方式而非限制性的方式在附图的图中示出,其中相似的参考数字指的是类似的元素并且其中:
图1示出根据常规技术的一个实施例的、包括处理器和存储器的电子设备的框图。
图2示出根据本技术的一个实施例的、包括处理器和存储器的电子设备的框图。
图3示出根据本技术的另一个实施例的、包括处理器和存储器的电子设备的框图。
图4示出根据本技术的一个实施例的、设立处理器和存储器以支持不同存储器类型的方法的流程图。
图5示出根据本技术的一个实施例的、对具有不同存储器类型的存储器进行访问的方法的流程图。
图6示出根据本技术的另一个实施例的、包括处理器和存储器的电子设备的框图。
图7示出根据本技术的另一个实施例的、设立处理器和存储器以支持不同存储器类型的方法的流程图。
图8示出根据本技术的另一个实施例的、对具有不同存储器类型的存储器进行访问的方法的流程图。
图9示出根据本技术的一个实施例的、支持不同存储器类型的处理器的存储空间的框图。
具体实施方式
详细地参考本技术的实施例,其示例示意在附图中。虽然本技术结合这些实施例进行描述,应该理解为不意在将本发明限于这些实施例。相反,本发明意在覆盖由所附权利要求所限定的范围内所包括的替代、修改和等价物。此外,在本技术的以下详细描述中,为提供对本技术的彻底理解将阐述大量的具体细节。然而,可以理解,在没有这些具体细节的情况下,也可实践本技术。在其他实例中,并未详细描述众所周知的方法、过程、部件和电路以避免对本技术的多个方面造成不必要的混淆。
以下本技术的一些实施例以例程、模块、逻辑块和对一个或多个电子设备中的数据的操作的其他符号表示的形式出现。描述和表示是本领域技术人员用来将其工作的本质最有效地传达给其他本领域技术人员的方式。此处是例程、模块、逻辑块等等,其通常构想为产生期望结果的进程或指令的自洽序列。进程是包括物理量的物理操纵的进程。虽然不是必须,但这些物理操纵经常采用能够在电子设备中存储、传输、比较和其他操纵的一个或多个电的或磁的信号的形式。为了方便并且参考常见的使用,参考本技术的实施例,将这些信号称为数据、位、值、元素、符号、特征、项、数字、字符串等等。
然而,应该牢记,所有这些术语将被解释为参考物理操纵和物理量并且仅是方便的标记,并且考虑在本领域中常见使用的术语而进一步解释。如以下讨论中所明确的,除非特别指出,可以理解本技术的完整讨论和/或使用诸如“接收”的术语的讨论等等指电子设备的动作和处理,该电子设备诸如操纵和变换数据的电子计算设备。将数据表示为电子设备的逻辑电路、寄存器、存储器等等中的物理(例如,电子信号)量,并将其变换为电子设备中类似地表示为物理量的其他数据。
在这一申请中,反意连接词的使用意在包括连接词。定冠词或不定冠词的使用并不意在指出基数。具体地,引用“所述”对象或“一个”对象意在表示多个可能的这样对象中的一个。
现在参考图2和3,示出根据本技术一个实施例的包括处理器和存储器的电子设备。处理器包括一个或多个存储器控制器和多个存储器接口。每个存储器接口可耦合至多个分区中的单独的存储器设备。第一分区可包括以第一数据速率操作的一个或多个存储器设备。第二分区可包括以第二数据速率操作的一个或多个存储器设备。例如,GPU可包括两个帧缓冲器接口。可将第一帧缓冲器接口耦合至以1GHz数据速率操作的4GB的SDDR3存储器。如图2所示,可将第二帧缓冲器接口耦合至以2GHz数据速率操作的2GB的GDDR5存储器。在另一个示例中,可将第一和第二帧缓冲器接口的每一个耦合至以250MHz数据速率操作的单独的2GB的SDDR3存储器。如图3所示,可将第三帧缓冲器接口耦合至以1GHz操作的1GB的GDDR5存储器。根据本技术的实施例的电子设备的配置和操作将参考图4和5进一步解释。
现在参考4,示出根据本技术的一个实施例的、初始化处理器和存储器以支持不同存储器类型的方法。可以由硬件、固件、软件或其组合来实现该方法。在410,处理器的初始化可包括,确定耦合至处理器的多个不同类型存储器230-235、335-345中的每一个的一个或多个参数。一个或多个参数包括多个分区中每一个的数据速率。参数还可包括每个分区的存储容量、每个分区的存储器宽度、每个分区的功耗等等。在一个实施方式中,基于处理器中的可编程设置确定多个分区的数据速率。处理器的可编程设置例如可配置为设置用于存储器设备的操作的时钟(例如,CK和WCK)。每个分区的数据速率与处理器经配置以操作每个单独的分区的时钟频率有关。例如,可确定,对于1GHz的数据速率,处理器配置为以250MHz的时钟操作SDDR3存储器的第一分区,以及对于2GHz的数据速率,以500MHz的时钟操作GDDR5存储器的第二分区。也可确定,可将4GB的SDDR3存储器耦合至第一64比特宽的存储器接口,以及将2GB的GDDR5存储器耦合至第二64比特宽的存储器接口,如图2中所示示例。在另一个示例中,可确定处理器配置为对以1GHz数据速率操作的两个2GB的SDDR3存储器设备的第一分区以及以4GHz速率操作的一个1GBGGDR5存储器设备的第二分区进行操作,如图3中所示。
再参考图4,在可选过程420,还可确定处理器210、310或在处理器上的负载(例如,应用程序)的一个或多个参数。处理器的一个或多个参数可包括每个分区中将存储器耦合至处理器的存储器接口的数目等等。例如,如图2所示,可以确定处理器包括两个帧缓冲器存储器接口,一个耦合至1GHz的SDDR3存储器的第一分区,并且第二个耦合至2GHz的GDDR5存储器。在另一个示例中,如图3所示,可以确定处理器包括三个帧缓冲器存储器接口,其中第一和第二帧缓冲器存储器接口的每一个耦合至2GB的1GHz SDDR3存储器,并且第三帧缓冲器存储器接口耦合至1GB的4GHz GDDR5。处理负载的一个或多个参数可包括处理类型、存储器带宽、存储器延迟、所需的存储器数量等等。例如,处理类型可以是MPEG渲染、三维渲染等等。存储器带宽可以是对存储器使用的预测,诸如空闲、低或高。
再参考图4,在430,根据包括数据速率的一个或多个所确定的参数,配置存储器映射算法250、350以平衡至两个或更多个不同的存储器类型230-235、335-345的流量。在一个实施方式中,存储器映射算法250、350配置为生成存储器映射255、355,其在具有不同数据速率230-235、335-345的两个或更多个分区之间平衡流量。可根据不同的数据速率,通过条带化(striping)跨两个或更多个分区230-235、335-345的存储器访问来平衡流量。例如,如图2所示,如果1GHz SDDR3的第一分区和2GHz GDDR5的第二分区被耦合至处理器,映射算法可配置为分别在第一和第二分区中以1KB:2KB数据块的比率存储数据。如果图3所示,两个1GHz SDDR3存储器设备的第一分区和一个4GHz GDDR5存储器设备的第二分区耦合至存储器,映射算法可配置为存储数据的每6KB在两个1GHz SDDR3存储器设备的每个中的1KB数据块中以及在一个4GHz GDDR5中的4KB数据块中。可跨不同存储器设备条带化数据。如果在存储器设备的一个中有附加的存储器,可将剩余的存储器分开地、非条带化地映射,从而所有存储器都是可访问的。在一个实施方式中,可在一个或多个其他位置分别访问作为连续的存储器的剩余的存储器的一个或多个分区。
再参考图4,在可选过程440,进一步根据一个或多个所确定的参数,可动态地配置存储器映射算法250、350以平衡至两个或更多个不同的存储器类型的流量。例如,如果存储器访问流量负载参数在预定范围内,诸如MPEG解码、空闲或低处理负载,那么存储器映射算法250、350可动态地配置为对第一分区直接存储器访问。而对于第二种类型的处理或第二存储器带宽需求,诸如三维渲染或高处理负载,根据每个分区的数据速率,配置映射算法以对第一和第二分区直接存储器访问。可替代地或此外,如果功耗参数在预定的范围内,诸如当以电池操作而非***电源插座时,存储器映射算法250、350可动态地配置为对第一分区直接存储器访问。
现在参考图5,示出根据本技术的一个实施例的、对不同分区中具有不同存储器类型的存储器进行访问的方法。可以硬件、固件、软件或其任意组合来实现该方法。在510,接收对给定物理地址和给定长度的存储器访问请求。存储器访问请求可以是读存储器访问、写存储器访问、擦除存储器访问等等。在一个实施方式中,通过存储器控制器215、315接收存储器访问请求。
在520,从映射255、355针对给定物理地址和给定长度,确定多个存储器设备230-235、335-345中的位置,所述映射根据不同存储器类型的包括数据速率的一个或多个参数在不同存储器类型的两个或更多个存储器之间平衡流量。例如,如图2所示,至始于给定物理地址的6KB的存储器写访问可被映射以条带化第一1KB数据块至耦合至第一帧缓冲器存储器接口的1GHz SDDR3存储器设备,第二和第三1KB数据块至耦合至第二帧缓冲器存储器接口的2GHz GDDR5存储器设备,第四1KB数据块至1GHz SDDR3存储器设备,和第五和第六1KB数据块至2GHz GDDR5存储器设备。此后,映射255、355可用于从SDDR3和/或GDDR5存储器读取数据或其中的部分。在另一个示例中,如图3中所示,至始于给定物理地址的6KB的存储器写访问可被映射以条带化第一1KB数据块至第一1GHz SDDR3存储器设备,第二1KB数据块至第二1GHz SDDR3存储器设备,和第三、第四、第五和第六1KB数据块至第一4GHz GDDR5存储器设备。在一个实施方式中,可将映射存储在由存储器控制器215、315使用的存储器映射表255、355中。
再参考图5,在530,使用一个或多个存储器接口220-225、320-330访问在不同存储器类型的相应存储器设备230-135、335-345中的位置。在一个实施方式中,根据不同存储器类型的包括数据速率的一个或多个参数,存储器控制器215、315调度存储器访问请求至从存储器映射表255、355确定的给定存储器接口230-235、335-345。
在一个实施方式中,初始化处理器和存储器以支持不同的存储器类型的方法可在计算设备的制造期间执行。例如,制造商可设计具有常用模块架构的处理器的族,常用模块架构可配置为实现多个不同处理器或电子电路,诸如基本的GPU和更优的GPU。处理器的性能由很多因素确定,包括存储器的数量、可访问存储器的速度和存储器的功耗。预测竞争者的处理器产品的性能是困难的。但是,有利的是供应超出竞争产品给定量(例如,20-50%)的基本GPU。此外,有利的是,更优的GPU提供基本GPU之上给定量的附加性能(例如,20-50%的更优性能)。本技术的实施例使得制造商能够之后在制造周期中(例如,在电路板装配期间)选择耦合至处理器的存储器的混合,以获得给定的性能参数集。例如,基本GPU的执行速度和功耗可击败竞争对手的产品,该产品在128比特宽存储器配置中具有耦合至两个帧缓冲器存储器接口的以1GHz数据速率操作的两个2GB SDDR3存储器IC。具有一个以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)。每个存储器设备的数据速率与处理器经配置以操作每个单独的设备的时钟频率有关。例如,可确定,对于1GHz的数据速率,处理器配置为以250MHz的时钟操作SDDR3存储器630,并且对于2.5GHz的数据速率,以625MHz的时钟操作GDDR5存储器635。
在可选过程720,还可确定处理器610或处理器上负载(例如,应用)的一个或多个参数。处理器的一个或多个参数可包括每个分区中将存储器耦合至处理器的存储器接口的数目等等。例如,可确定处理器包括两个帧缓冲器存储器接口620、625,一个耦合至1GHz SDDR3存储器630,第二个耦合至2.5GHz GDDR5存储器635。处理负载的一个或多个参数可包括处理类型、存储器带宽、存储器延迟、所需存储器的数量等等。例如,处理类型可以是MPEG渲染、三维渲染等等。存储器带宽可以是存储器使用的预测,诸如空闲、低或高。
在730,根据不同类型的存储器设备中的每个的包括数据速率的一个或多个所确定的参数,将每个存储器设备组织为一个或多个分区。例如,对于1KB页面大小,存储器的5KB在2.5GHz GDDR5存储器635中与1GHz SDDR3存储器630的2KB时间量相同。因此,在用于访问2.5GHzGDDR存储器635的整个1GB的相同时间量内,仅能够访问1GHz SDDR3中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 SDDR3630和1GB的2GHz GDDR5635耦合至处理器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分区P0920,第二和第三1KB页面925至2.5GHz GDDR5存储器设备635的第二1GB分区P1930,第四1KB页面935至1GHz SDDR3存储器设备630的0.4GB分区P0920,以及第五、第六和第七1KB页面940至2GHz GDDR5存储器设备635的1GB分区P1930。2.5GHz GDDR5存储器635的1GB将被消耗,而将仅使用1GHzSDDR3存储器630的0.4GB。因此,在第三分区P2中的1GHz SDDR3存储器的附加的0.6GB 950被映射955至始于预定偏置960的线性地址。在一个实施方式中,1GHz SDDR3存储设备630的存储空间被映射两次。将1GHz SDDR3存储器的0.4GB的第一分区P0与在第二分区P1930中的2.5GHz GDDR5存储器的1GB交叉映射。然后,将1GHz SDDR3存储器的1GB在例如8GB的给定的偏置映射第二次。然后例如使用软件防止由于高存储空间中的第一0.4GB使用了较低存储器版本别名而被访问。此后,映射645可用于从SDDR3和/或GDDR5存储器630、635读取数据或数据的部分。
在830,使用一个或多个存储器接口620、625对不同存储器类型的相应存储器设备630、635中的位置进行访问。在一个实施方式中,存储器控制器615调度存储器访问请求至给定存储器接口620、625,根据不同存储器类型的包括数据速率的一个或多个参数从存储器映射表645确定该给定存储器接口。
本技术的实施例可容易地扩展至具有包括超过两个不同类型的存储器的存储器***的电子设备。例如,可将存储器访问跨三个存储器条带化,直到一个或多个存储器耗尽。然后将存储器访问在其他两个存储器上条带化,直到第二存储器耗尽。此后,存储器访问以非条带化的方式至第三存储器设备。此外,本技术的实施例可容易地扩展至具有包括不同类型的存储器的存储器***的电子设备,该不同类型的存储器在各自的数据速率之间具有非整数比率。
呈现上述对本技术的具体实施例的描述用于示例和描述的目的。它们不意在穷尽或限制本发明至所公开的具体形式,并且明显地,根据上述教导,很多修改和变化都是可能的。为了最佳地解释本技术的原理和其实际应用,选择和描述实施例,从而使本领域的其他技术人员最好地利用具有适应预期的特定使用的各种修改的本技术和各种实施例。意在由所附权利要求和它们的等同物限定本发明的范围。

Claims (20)

1.一种方法,包括:
确定耦合至计算设备的多个不同类型的存储器设备的一个或多个参数,包括数据速率;以及
根据所述存储器设备的包括所述数据速率的一个或多个所确定的参数,配置存储器映射算法以平衡至两个或更多个不同的存储器类型的流量。
2.根据权利要求1所述的方法,进一步包括根据一个或多个其他所确定的参数,配置所述存储器映射算法以动态地访问一个或多个类型的存储器。
3.根据权利要求1所述的方法,进一步包括:
确定所述计算设备或所述计算设备上负载的一个或多个参数;以及
根据所述计算设备或所述计算设备上负载的一个或多个所确定的参数,配置所述存储器映射算法以动态地访问一个或多个类型的存储器。
4.根据权利要求1所述的方法,进一步包括:
根据所述存储器设备的包括所述数据速率的所述一个或多个所确定的参数,组织每个存储器设备为一个或多个分区;以及
根据所述存储器设备的包括所述数据速率的所述一个或多个所确定的参数,配置所述存储器映射算法以平衡至两个或更多个不同类型的存储器设备中的分区的流量。
5.根据权利要求1所述的方法,其中经配置的存储器映射算法按照所述存储器的数据访问速率的比率,条带化跨两个或更多个不同类型的存储器的存储器访问。
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所述的方法,其中如果功耗参数在预定的范围内,所述经配置的存储器映射算法动态地访问所述第一类型的存储器,而不是在所述第一类型和所述第二类型的存储器之间平衡流量。
CN201210262912.7A 2011-07-26 2012-07-26 用于平衡对具有不同存储器类型的存储器的访问的方法 Active CN102999438B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/191,438 2011-07-26
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
CN102999438A true CN102999438A (zh) 2013-03-27
CN102999438B CN102999438B (zh) 2016-03-16

Family

ID=47598247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210262912.7A Active CN102999438B (zh) 2011-07-26 2012-07-26 用于平衡对具有不同存储器类型的存储器的访问的方法

Country Status (3)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320543A (zh) * 2015-11-12 2016-02-10 华为技术有限公司 加载软件模块的方法和装置
CN105612501A (zh) * 2013-10-03 2016-05-25 高通股份有限公司 用于跨越具有非对称存储容量的多通道存储器架构对数据均匀交织的***和方法
CN113312281A (zh) * 2020-02-27 2021-08-27 瑞昱半导体股份有限公司 用于多个存储设备的控制方法及相关的内存***

Families Citing this family (16)

* 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
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
EP3938894B1 (en) 2019-03-15 2023-08-30 INTEL Corporation Multi-tile memory management for detecting cross tile access, providing multi-tile inference scaling, and providing optimal page migration
KR20210136994A (ko) 2019-03-15 2021-11-17 인텔 코포레이션 매트릭스 가속기 아키텍처 내에서의 시스톨릭 분리
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
TWI736155B (zh) * 2020-02-27 2021-08-11 瑞昱半導體股份有限公司 用於多個記憶裝置的控制方法及相關的記憶體系統
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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20060259802A1 (en) * 2004-06-10 2006-11-16 Sehat Sutardja Adaptive storage system
CN101174245A (zh) * 2006-11-02 2008-05-07 国际商业机器公司 混合数据存储的方法和装置
CN101241476A (zh) * 2008-01-30 2008-08-13 中国科学院计算技术研究所 一种虚拟存储***和方法
WO2011053318A1 (en) * 2009-10-30 2011-05-05 Hewlett-Packard Development Company, L.P. Hard disk drives having different rotational speeds

Family Cites Families (98)

* 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
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
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
JP5242397B2 (ja) 2005-09-02 2013-07-24 メタラム インコーポレイテッド Dramをスタックする方法及び装置
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
KR101428714B1 (ko) * 2006-11-23 2014-08-11 삼성디스플레이 주식회사 데이터 처리장치 및 이를 갖는 표시장치
EP2126706A4 (en) * 2007-01-19 2011-10-05 Gvbb Holdings Sarl ACCESS TO SYMMETRIC STORAGE ON INTELLIGENT DIGITAL DISC RECORDERS
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
WO2009100149A1 (en) 2008-02-10 2009-08-13 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 한국전자통신연구원 멀티 프로세싱 유닛에 대한 메모리 매핑방법, 및 장치
EP2350805A1 (en) * 2008-10-10 2011-08-03 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
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20060259802A1 (en) * 2004-06-10 2006-11-16 Sehat Sutardja Adaptive storage system
CN101174245A (zh) * 2006-11-02 2008-05-07 国际商业机器公司 混合数据存储的方法和装置
CN101241476A (zh) * 2008-01-30 2008-08-13 中国科学院计算技术研究所 一种虚拟存储***和方法
WO2011053318A1 (en) * 2009-10-30 2011-05-05 Hewlett-Packard Development Company, L.P. Hard disk drives having different rotational speeds

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105612501A (zh) * 2013-10-03 2016-05-25 高通股份有限公司 用于跨越具有非对称存储容量的多通道存储器架构对数据均匀交织的***和方法
CN105612501B (zh) * 2013-10-03 2018-11-13 高通股份有限公司 用于跨越具有非对称存储容量的多通道存储器架构对数据均匀交织的***和方法
CN105320543A (zh) * 2015-11-12 2016-02-10 华为技术有限公司 加载软件模块的方法和装置
CN105320543B (zh) * 2015-11-12 2019-06-28 华为技术有限公司 加载软件模块的方法和装置
CN113312281A (zh) * 2020-02-27 2021-08-27 瑞昱半导体股份有限公司 用于多个存储设备的控制方法及相关的内存***

Also Published As

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

Similar Documents

Publication Publication Date Title
CN102999438B (zh) 用于平衡对具有不同存储器类型的存储器的访问的方法
US9678666B2 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
CN104541256A (zh) 智能远存储器带宽缩放
CN102866896B (zh) 基于单存储器的嵌入式设备的启动***
CN109690504A (zh) 混合式存储器驱动器、计算机***及用于操作多重模式混合式驱动器的相关方法
CN102279818A (zh) 支持有限共享的向量数据访存控制方法及向量存储器
CN100377086C (zh) 嵌入式***中直接从文件***运行程序的实现方法
CN104425014B (zh) 序列式nand型闪存、闪存装置及其操作方法
US9323539B2 (en) Constructing persistent file system from scattered persistent regions
CN103999044A (zh) 用于多遍渲染的技术
CN104461977B (zh) 记忆卡存取装置、其控制方法与记忆卡存取***
CN100573435C (zh) 一种基于闪存记忆体的大容量存储装置
US10956210B2 (en) Multi-processor system, multi-core processing device, and method of operating the same
CN203490476U (zh) PowerPC的PC104-plus控制器***
CN104391564A (zh) 功耗控制方法和装置
CN103163949A (zh) 计算机***及其内存指定方法
CN102346508A (zh) 一种提升异构***主机板扩展能力的设计方法
CN111435337B (zh) 存储器***和数据处理***
CN203276273U (zh) 一种多gpu运算卡
CN201788391U (zh) 一种智能可编程控制器
CN219162633U (zh) 计算机设备及计算机***
KR102115934B1 (ko) 프로세서 모듈, 마이크로 서버 및 프로세서 모듈 이용 방법
CN201435077Y (zh) 支持多sd卡从设备接入的电路结构
CN102043740B (zh) 一种用fpga实现兼容多容量内存的控制器实现方法
CN202167057U (zh) 一种高级图形存储器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant