CN102999438B - 用于平衡对具有不同存储器类型的存储器的访问的方法 - Google Patents
用于平衡对具有不同存储器类型的存储器的访问的方法 Download PDFInfo
- Publication number
- CN102999438B CN102999438B CN201210262912.7A CN201210262912A CN102999438B CN 102999438 B CN102999438 B CN 102999438B CN 201210262912 A CN201210262912 A CN 201210262912A CN 102999438 B CN102999438 B CN 102999438B
- Authority
- CN
- China
- Prior art keywords
- memory
- storer
- access
- memory devices
- dissimilar
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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的多个存储器接口(FBMI)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的1GHzSDDR3存储器,并且第三帧缓冲器存储器接口耦合至1GB的4GHzGDDR5。处理负载的一个或多个参数可包括处理类型、存储器带宽、存储器延迟、所需的存储器数量等等。例如,处理类型可以是MPEG渲染、三维渲染等等。存储器带宽可以是对存储器使用的预测,诸如空闲、低或高。
再参考图4,在430,根据包括数据速率的一个或多个所确定的参数,配置存储器映射算法250、350以平衡至两个或更多个不同的存储器类型230-235、335-345的流量。在一个实施方式中,存储器映射算法250、350配置为生成存储器映射255、355,其在具有不同数据速率230-235、335-345的两个或更多个分区之间平衡流量。可根据不同的数据速率,通过条带化(striping)跨两个或更多个分区230-235、335-345的存储器访问来平衡流量。例如,如图2所示,如果1GHzSDDR3的第一分区和2GHzGDDR5的第二分区被耦合至处理器,映射算法可配置为分别在第一和第二分区中以1KB:2KB数据块的比率存储数据。如果图3所示,两个1GHzSDDR3存储器设备的第一分区和一个4GHzGDDR5存储器设备的第二分区耦合至存储器,映射算法可配置为存储数据的每6KB在两个1GHzSDDR3存储器设备的每个中的1KB数据块中以及在一个4GHzGDDR5中的4KB数据块中。可跨不同存储器设备条带化数据。如果在存储器设备的一个中有附加的存储器,可将剩余的存储器分开地、非条带化地映射,从而所有存储器都是可访问的。在一个实施方式中,可在一个或多个其他位置分别访问作为连续的存储器的剩余的存储器的一个或多个分区。
再参考图4,在可选过程440,进一步根据一个或多个所确定的参数,可动态地配置存储器映射算法250、350以平衡至两个或更多个不同的存储器类型的流量。例如,如果存储器访问流量负载参数在预定范围内,诸如MPEG解码、空闲或低处理负载,那么存储器映射算法250、350可动态地配置为对第一分区直接存储器访问。而对于第二种类型的处理或第二存储器带宽需求,诸如三维渲染或高处理负载,根据每个分区的数据速率,配置映射算法以对第一和第二分区直接存储器访问。可替代地或此外,如果功耗参数在预定的范围内,诸如当以电池操作而非插入电源插座时,存储器映射算法250、350可动态地配置为对第一分区直接存储器访问。
现在参考图5,示出根据本技术的一个实施例的、对不同分区中具有不同存储器类型的存储器进行访问的方法。可以硬件、固件、软件或其任意组合来实现该方法。在510,接收对给定物理地址和给定长度的存储器访问请求。存储器访问请求可以是读存储器访问、写存储器访问、擦除存储器访问等等。在一个实施方式中,通过存储器控制器215、315接收存储器访问请求。
在520,从映射255、355针对给定物理地址和给定长度,确定多个存储器设备230-235、335-345中的位置,所述映射根据不同存储器类型的包括数据速率的一个或多个参数在不同存储器类型的两个或更多个存储器之间平衡流量。例如,如图2所示,至始于给定物理地址的6KB的存储器写访问可被映射以条带化第一1KB数据块至耦合至第一帧缓冲器存储器接口的1GHzSDDR3存储器设备,第二和第三1KB数据块至耦合至第二帧缓冲器存储器接口的2GHzGDDR5存储器设备,第四1KB数据块至1GHzSDDR3存储器设备,和第五和第六1KB数据块至2GHzGDDR5存储器设备。此后,映射255、355可用于从SDDR3和/或GDDR5存储器读取数据或其中的部分。在另一个示例中,如图3中所示,至始于给定物理地址的6KB的存储器写访问可被映射以条带化第一1KB数据块至第一1GHzSDDR3存储器设备,第二1KB数据块至第二1GHzSDDR3存储器设备,和第三、第四、第五和第六1KB数据块至第一4GHzGDDR5存储器设备。在一个实施方式中,可将映射存储在由存储器控制器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数据速率操作的两个2GBSDDR3存储器IC。具有一个以1GHz操作的4GBSDDR3存储器IC和以2GHz操作的2GBGDDR5的处理器可提供附加的处理速度,同时节约电能并保持与使用两个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,一个耦合至1GHzSDDR3存储器630,第二个耦合至2.5GHzGDDR5存储器635。处理负载的一个或多个参数可包括处理类型、存储器带宽、存储器延迟、所需存储器的数量等等。例如,处理类型可以是MPEG渲染、三维渲染等等。存储器带宽可以是存储器使用的预测,诸如空闲、低或高。
在730,根据不同类型的存储器设备中的每个的包括数据速率的一个或多个所确定的参数,将每个存储器设备组织为一个或多个分区。例如,对于1KB页面大小,存储器的5KB在2.5GHzGDDR5存储器635中与1GHzSDDR3存储器630的2KB时间量相同。因此,在用于访问2.5GHzGDDR存储器635的整个1GB的相同时间量内,仅能够访问1GHzSDDR3中1GB的0.4GB。因此,1GB的1GHzSDDR3存储器630可被组织为0.4GB分区(P0)和0.6GB分区(P2),并且1GB的2.5GHzGDDR5存储器635可被组织为1GB分区(P1)。
在740,根据包括数据速率的一个或多个所确定的参数,配置存储器映射算法640以平衡至两个或更多个不同存储器类型630、635的存储器设备中的分区的流量。在一个实施方式中,存储器映射算法640配置为生成在具有不同数据速率的多个分区之间平衡流量的存储器映射645。可根据存储器设备的不同数据速率条带化跨多个分区的存储器访问来平衡流量。例如,如果1GB的1GHzSDDR3630和1GB的2GHzGDDR5635耦合至处理器610,映射算法可配置为按2:5的比率在1GHzSDDR3存储器630的0.4GB的第一分区和2.5GHzGDDR6存储器635的1GB的第二分区中存储数据并在1GHzSDDR3存储器630的0.6GB的第三分区中存储数据。可将数据跨第一分区P0和第二分区P1条带化。第三分区P2剩余的存储器可被分开地、非条带化地映射,使得所有存储器都是可访问的。
在750,进一步根据一个或多个其他所确定参数,存储器映射算法640可动态地配置为平衡至两个或更多个不同存储器类型的存储器设备中的分区的流量。例如,如果存储器访问流量负载参数在预定的范围内,诸如MPEG解码、空闲或低处理负载,存储器映射算法640可动态地配置为对第三分区直接存储器访问。而对于第二类型的处理或第二存储器带宽需求,诸如三维渲染或高处理负载,根据每个分区的数据速率,配置映射算法以对第一和第二分区直接存储器访问。可替代地或此外,如果功耗参数在预定的范围内,诸如当以电池操作而非插入电源插座时,存储器映射算法640可动态地配置为对第一和第三分区直接存储器访问。
现在参考图8,示出根据本技术一个实施例的、对在不同的分区中具有不同存储器类型的存储器进行访问的方法。可以硬件、固件、软件或其任意组合来实现该方法。在810,接收对给定物理地址和给定长度的存储器访问请求。存储器访问请求可以是读存储器访问、写存储器访问、擦除存储器访问等等。在一个实施方式中,通过存储器控制器615接收存储器访问请求。
在820,从映射645针对给定物理地址和给定长度,确定多个存储器设备630、635中的位置,所述映射645根据不同存储器类型的包括数据速率的一个或多个参数在两个或更多个不同存储器类型的存储器设备中的分区之间平衡流量。例如,如图9中所示,至始于给定物理地址910的7KB的存储器写访问可被映射以条带化第一1KB页面915至1GHzSDDR3存储器设备630的第一0.4GB分区P0920,第二和第三1KB页面925至2.5GHzGDDR5存储器设备635的第二1GB分区P1930,第四1KB页面935至1GHzSDDR3存储器设备630的0.4GB分区P0920,以及第五、第六和第七1KB页面940至2GHzGDDR5存储器设备635的1GB分区P1930。2.5GHzGDDR5存储器635的1GB将被消耗,而将仅使用1GHzSDDR3存储器630的0.4GB。因此,在第三分区P2中的1GHzSDDR3存储器的附加的0.6GB950被映射955至始于预定偏置960的线性地址。在一个实施方式中,1GHzSDDR3存储设备630的存储空间被映射两次。将1GHzSDDR3存储器的0.4GB的第一分区P0与在第二分区P1930中的2.5GHzGDDR5存储器的1GB交叉映射。然后,将1GHzSDDR3存储器的1GB在例如8GB的给定的偏置映射第二次。然后例如使用软件防止由于高存储空间中的第一0.4GB使用了较低存储器版本别名而被访问。此后,映射645可用于从SDDR3和/或GDDR5存储器630、635读取数据或数据的部分。
在830,使用一个或多个存储器接口620、625对不同存储器类型的相应存储器设备630、635中的位置进行访问。在一个实施方式中,存储器控制器615调度存储器访问请求至给定存储器接口620、625,根据不同存储器类型的包括数据速率的一个或多个参数从存储器映射表645确定该给定存储器接口。
本技术的实施例可容易地扩展至具有包括超过两个不同类型的存储器的存储器系统的电子设备。例如,可将存储器访问跨三个存储器条带化,直到一个或多个存储器耗尽。然后将存储器访问在其他两个存储器上条带化,直到第二存储器耗尽。此后,存储器访问以非条带化的方式至第三存储器设备。此外,本技术的实施例可容易地扩展至具有包括不同类型的存储器的存储器系统的电子设备,该不同类型的存储器在各自的数据速率之间具有非整数比率。
呈现上述对本技术的具体实施例的描述用于示例和描述的目的。它们不意在穷尽或限制本发明至所公开的具体形式,并且明显地,根据上述教导,很多修改和变化都是可能的。为了最佳地解释本技术的原理和其实际应用,选择和描述实施例,从而使本领域的其他技术人员最好地利用具有适应预期的特定使用的各种修改的本技术和各种实施例。意在由所附权利要求和它们的等同物限定本发明的范围。
Claims (18)
1.一种用于均衡存储器访问的方法,包括:
确定耦合至计算设备的多个不同类型的存储器设备的一个或多个参数,包括数据访问速率;以及
根据不同类型的两个或更多个存储器设备的包括所述数据速率的一个或多个所确定的参数,配置存储器映射算法以针对给定存储器访问共同平衡至不同类型的所述两个或更多个存储器设备的流量,并且按照不同类型的所述两个或更多个存储器设备的数据访问速率的比率,针对地址空间中的第一位置条带化跨不同类型的所述两个或更多个存储器设备的存储器访问。
2.根据权利要求1所述的方法,进一步包括根据一个或多个其他所确定的参数,配置所述存储器映射算法以动态地访问一个或多个类型的存储器。
3.根据权利要求1所述的方法,进一步包括:
确定所述计算设备或所述计算设备上负载的一个或多个参数;以及
根据所述计算设备或所述计算设备上负载的一个或多个所确定的参数,配置所述存储器映射算法以动态地访问一个或多个类型的存储器。
4.根据权利要求1所述的方法,进一步包括:
根据所述存储器设备的包括所述数据速率的所述一个或多个所确定的参数,组织每个存储器设备为一个或多个分区;以及
根据所述存储器设备的包括所述数据速率的所述一个或多个所确定的参数,配置所述存储器映射算法以针对所述给定存储器访问共同平衡至不同类型的两个或更多个存储器设备中的分区的流量。
5.根据权利要求1所述的方法,其中所述存储器映射配置为在条带化后访问所述两个或更多个存储器设备的第一或第二存储器设备的剩余部分,其中所述两个或更多个存储器设备的所述第一或第二存储器设备的所述剩余部分作为连续的存储器而非经条带化的存储器在所述地址空间中的第二位置处被访问。
6.一种用于均衡存储器访问的方法,包括
接收对给定物理地址和给定长度的存储器访问请求;
从映射针对所述给定物理地址和所述给定长度确定多个存储器设备中的位置,所述映射根据不同类型的存储器的包括数据速率的一个或多个参数针对所述存储器访问请求在所述不同类型的两个或更多个存储器之间共同平衡流量,并且按照不同类型的所述两个或更多个存储器设备的数据访问速率的比率,针对地址空间中的第一位置条带化跨不同类型的所述两个或更多个存储器设备的存储器访问;以及
访问相应存储器设备中的所述位置。
7.根据权利要求6所述的方法,其中所述映射根据所述不同类型的存储器的包括数据速率的一个或多个参数针对所述存储器访问请求进一步在不同类型的所述两个或更多个存储器中的分区之间共同平衡流量。
8.根据权利要求6所述的方法,其中所述多个存储器设备包括以第一数据速率操作的第一组存储器设备和以第二数据速率操作的第二组存储器设备。
9.根据权利要求8所述的方法,其中针对另一存储器访问请求根据一个或多个其他参数将用于写存储器访问的位置动态地映射至一个或多个类型的存储器,而不是根据所述不同存储器类型的所述数据速率平衡所述用于写存储器访问的位置。
10.根据权利要求9所述的方法,其中一个或多个其他参数包括存储器访问流量负载参数。
11.根据权利要求9所述的方法,其中一个或多个其他参数包括存储器功耗参数。
12.一种用于均衡存储器访问的方法,包括:
初始化阶段,包括:
确定耦合至计算设备的多个不同类型的存储器设备的一个或多个参数,包括数据速率;以及
根据所述存储器设备的包括所述数据速率的一个或多个所确定的参数,配置存储器映射算法以针对给定存储器访问在两个或更多个不同类型的存储器之间共同平衡流量,并且按照不同类型的所述两个或更多个存储器设备的数据访问速率的比率,针对地址空间中的第一位置条带化跨不同类型的所述两个或更多个存储器设备的存储器访问;以及
操作阶段,包括:
接收对给定物理地址和给定长度的存储器访问请求;
基于所述存储器映射算法针对所述给定物理地址和所述给定长度确定多个存储器设备中的位置;以及
访问相应存储器设备中的所述位置。
13.根据权利要求12所述的方法,其中第一类型的存储器的特征为第一数据速率,而第二类型的存储器的特征为比所述第一数据速率快的第二数据速率。
14.根据权利要求13所述的方法,其中所述第一类型的存储器的特征为第一存储容量,而所述第二类型的存储器的特征为比所述第一存储容量小的第二存储容量。
15.根据权利要求14所述的方法,其中所述第一类型的存储器的特征为第一功率比,而所述第二类型的存储器的特征为比所述第一功率比大的第二功率比。
16.根据权利要求15所述的方法,其中所述第一类型的存储器的特征为第一成本,而所述第二类型的存储器的特征为比所述第一成本大的第二成本。
17.根据权利要求12所述的方法,其中如果存储器访问流量负载参数在预定的范围内,经配置的存储器映射算法动态地访问第一类型的存储器,而不是在第一类型和第二类型的存储器之间平衡流量。
18.根据权利要求12所述的方法,其中如果功耗参数在预定的范围内,经配置的存储器映射算法动态地访问第一类型的存储器,而不是在第一类型和第二类型的存储器之间平衡流量。
Applications Claiming Priority (2)
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 |
US13/191,438 | 2011-07-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102999438A CN102999438A (zh) | 2013-03-27 |
CN102999438B true 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) |
Families Citing this family (19)
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 |
PL3938894T3 (pl) | 2019-03-15 | 2024-02-19 | Intel Corporation | Zarządzanie pamięcią wielokafelkową dla wykrywania dostępu krzyżowego między kafelkami, zapewnianie skalowanie wnioskowania dla wielu kafelków i zapewnianie optymalnej migracji stron |
EP3938888A1 (en) | 2019-03-15 | 2022-01-19 | INTEL Corporation | Systolic disaggregation within a matrix accelerator architecture |
US11182309B2 (en) | 2019-11-04 | 2021-11-23 | Nvidia Corporation | Techniques for an efficient fabric attached memory |
US11861761B2 (en) | 2019-11-15 | 2024-01-02 | Intel Corporation | Graphics processing unit processing and caching improvements |
US11663746B2 (en) | 2019-11-15 | 2023-05-30 | Intel Corporation | Systolic arithmetic on sparse data |
TWI736155B (zh) * | 2020-02-27 | 2021-08-11 | 瑞昱半導體股份有限公司 | 用於多個記憶裝置的控制方法及相關的記憶體系統 |
CN113312281A (zh) * | 2020-02-27 | 2021-08-27 | 瑞昱半导体股份有限公司 | 用于多个存储设备的控制方法及相关的内存系统 |
EP4352619A2 (en) * | 2021-06-09 | 2024-04-17 | Enfabrica Corporation | Transparent remote memory access over network protocol |
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 (4)
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 |
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 (99)
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 |
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 |
DE112006002300B4 (de) | 2005-09-02 | 2013-12-19 | Google, Inc. | Vorrichtung zum Stapeln von 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 |
US8347064B1 (en) | 2006-09-19 | 2013-01-01 | Nvidia Corporation | Memory access techniques in an aperture mapped memory space |
US8543792B1 (en) | 2006-09-19 | 2013-09-24 | Nvidia Corporation | Memory access techniques including coalesing page table entries |
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 | 삼성디스플레이 주식회사 | 데이터 처리장치 및 이를 갖는 표시장치 |
JP5129269B2 (ja) * | 2007-01-19 | 2013-01-30 | ジーブイビービー ホールディングス エス.エイ.アール.エル. | インテリジェントディジタルディスクレコーダにおけるシンメトリックストレージアクセス |
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 |
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 | 한국전자통신연구원 | 멀티 프로세싱 유닛에 대한 메모리 매핑방법, 및 장치 |
CN102257469B (zh) * | 2008-10-10 | 2014-12-10 | 株式会社日立制作所 | 存储系统及用于控制存储系统的方法 |
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 |
-
2011
- 2011-07-26 US US13/191,438 patent/US9529712B2/en active Active
-
2012
- 2012-07-25 TW TW101126755A patent/TWI526926B/zh active
- 2012-07-26 CN CN201210262912.7A patent/CN102999438B/zh active Active
Patent Citations (4)
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 |
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 |
Also Published As
Publication number | Publication date |
---|---|
CN102999438A (zh) | 2013-03-27 |
US9529712B2 (en) | 2016-12-27 |
US20130031328A1 (en) | 2013-01-31 |
TWI526926B (zh) | 2016-03-21 |
TW201324336A (zh) | 2013-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102999438B (zh) | 用于平衡对具有不同存储器类型的存储器的访问的方法 | |
US11042297B2 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
TWI567551B (zh) | 分配與配置持續記憶體之技術 | |
US9588577B2 (en) | Electronic systems including heterogeneous multi-core processors and methods of operating same | |
US20140173311A1 (en) | Methods and Systems for Operating Multi-Core Processors | |
CN105830059A (zh) | 文件访问方法、装置及存储设备 | |
CN104541256A (zh) | 智能远存储器带宽缩放 | |
CN102866896B (zh) | 基于单存储器的嵌入式设备的启动系统 | |
US20110296098A1 (en) | System and Method for Reducing Power Consumption of Memory | |
TWI224728B (en) | Method and related apparatus for maintaining stored data of a dynamic random access memory | |
WO2010000101A1 (zh) | 用于嵌入式系统扩展存储空间的装置和方法 | |
CN102279818A (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
CN100377086C (zh) | 嵌入式系统中直接从文件系统运行程序的实现方法 | |
CN109219797A (zh) | 用于格式化持久性存储器文件的技术 | |
US20150006831A1 (en) | Constructing persistent file system from scattered persistent regions | |
CN105453066A (zh) | 处理器和存储器控制方法 | |
CN102117245B (zh) | 嵌入式设备及其系统可执行文件分割加载和启动方法 | |
CN1936817A (zh) | 一种基于闪存记忆体的大容量存储装置 | |
CN104391564A (zh) | 功耗控制方法和装置 | |
Long et al. | Balloonfish: Utilizing morphable resistive memory in mobile virtualization | |
US20210200584A1 (en) | Multi-processor system, multi-core processing device, and method of operating the same | |
CN104199619A (zh) | 一种在nand中处理数据的方法及装置 | |
CN111435337B (zh) | 存储器系统和数据处理系统 | |
CN103163949A (zh) | 计算机系统及其内存指定方法 | |
KR20130095378A (ko) | 레벨 1 캐시를 공유하는 멀티-코어 프로세서 및 이를 포함하는 장치들 |
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 |