CN105612501A - 用于跨越具有非对称存储容量的多通道存储器架构对数据均匀交织的系统和方法 - Google Patents
用于跨越具有非对称存储容量的多通道存储器架构对数据均匀交织的系统和方法 Download PDFInfo
- Publication number
- CN105612501A CN105612501A CN201480054542.5A CN201480054542A CN105612501A CN 105612501 A CN105612501 A CN 105612501A CN 201480054542 A CN201480054542 A CN 201480054542A CN 105612501 A CN105612501 A CN 105612501A
- Authority
- CN
- China
- Prior art keywords
- memory
- storage space
- memory module
- physical channel
- 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
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/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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1647—Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Memory System (AREA)
- Storage Device Security (AREA)
Abstract
公开了用于跨越具有跨越物理通道的非均匀存储容量的存储器空间的物理通道,对存储器存取进行均匀交织的系统和方法。交织器被布置为与一个或多个处理器以及系统存储器相通信。交织器识别由存储器通道支持的存储器空间中的位置,并且对定义具有期望的存储容量的虚拟扇区的逻辑单元进行响应。响应于对存取存储器空间的请求,交织器跨越虚拟扇区均匀地存取非对称存储容量。
Description
背景技术
计算设备是随处可见的。这些设备可以包括便携式计算机、台式计算机和服务器计算机,以及各种大小的其它设备。除了这些设备的主要功能之外,很多设备包括外围功能。例如,蜂窝电话可以包括启用并支持蜂窝电话呼叫的主要功能,以及静态照相机、视频照相机、全球定位系统(GPS)导航、网络浏览、发送和接收电子邮件、发送和接收文本消息、按键通话(push-to-talk)能力等外围功能。随着此类设备的功能增加,所要求的计算或处理能力以及用于支持这种功能的数据存储容量也增加。
一些常规的计算设备设计方案包括多个处理器和/或具有多个内核的处理器,以支持针对特定计算设备所期望的各个主要功能和外围功能。利用增加的计算容量和处理器速度,已开发了多种技术来使处理器和/或处理器内核与系统存储器之间会出现的瓶颈(bottleneck)最小化。一种方法包括集成电路架构,其在每个时钟周期中与随机存取存储器(RAM)单元交换两次数据。例如,双倍数据速率(DDR)随机存取存储器(RAM)模块支持这些数据交换。即使利用该方法,具有多个处理器和/或多个内核的当今系统也以超过常规存储器模块的数据传输速率的时钟速率来操作。其它方法包括添加额外的存储器通道。包括两个存储器通道的系统可以通过使可用的存储器带宽加倍来帮助缓解所述问题。存储器控制器同时使用两个通道来缓解在向RAM模块写入数据以及从RAM模块读取数据时会出现的数据传输瓶颈。
当每个存储器通道与具有相等存储容量的、类似构造的(即,匹配的)存储器模块进行通信时,不仅控制器可以以存储器总线所支持的最大数据速率来传输去往和来自存储器空间的数据,而且整个存储器空间可用于存储器控制器,以将应用程序或者数据文件放置在存储器空间中的任何未使用的和期望的位置。因此,期望跨越可用的地址空间对数据进行均匀交织或分布。
对于常规的数据交织方案,存储器模块的存储容量必须相同,以便交织器以最大支持的数据传输速率来存取存储器模块。这通常没有问题,因为存储器模块制造商提供具有固定存储容量的集成电路。只要计算设备的制造商成对地部署存储器模块,其中每一对具有相同的存储容量,每个存储器通道可存取的存储容量就相同。
但是,计算设备制造商传达了如下期望:提供一种系统存储器容量,该容量不是商业可用的存储器模块的最小存储容量的倍数。这使得不可能使用商业可用的存储器模块并且不可能跨越两个或更多个存储器通道以对称的容量来布置商业可用的存储器模块。例如,如果制造商期望768M字节的系统存储器容量而可用的最小存储器模块容量是256M字节,则制造商可以通过部署三个存储器模块来达到期望的总存储器容量。但是,仅三个模块中的两个模块可以跨越单独的存储器通道对称地布置。
非对称存储容量给出一种布置,在该布置中,与可以使用常规的交织函数来存取的、总存储器容量的第二部分相比,仅可以以减小的数据速率以未交织的方式来存取总存储器容量的第一部分。这种布置给操作系统和/或应用供应方识别哪些功能和应用可以由未交织的(即,较慢的)数据存取来充分支持引入了复杂性。
因此,存在针对用于对支持非对称存储器容量的存储器通道之间的数据传输速率进行优化的改进机制的需求。
发明内容
公开了当由多通道存储器架构支持的存储器空间填充有跨越多个通道的非均匀数据存储容量时进行识别的系统和方法。作为响应,识别具有相等存储容量的虚拟扇区的数量。此后,使用交织函数来跨越虚拟扇区分布对存储器空间的数据存取。
一种示例性实施例包括一种具有交织器的计算设备,所述交织器被设置为与处理器和系统存储器相通信。所述交织器识别所述系统存储器中的存储器空间中的位置。所述存储器空间是由至少两个物理通道来支持的,并且包括至少一个存储器模块,所述存储器模块耦合到所述物理通道中的每个物理通道。所述存储器空间具有跨越所述物理通道分布的非均匀存储容量。所述交织器对识别具有期望的存储容量的虚拟扇区的逻辑单元进行响应。在操作中,响应于对存取所述存储器空间的请求,所述交织器跨越所述虚拟扇区均匀地存取所述非对称存储容量。
一个示例性实施例是一种计算设备,所述计算设备包括以下机制:当存储器空间被布置有跨越多通道存储器存取架构的非均匀存储容量时进行识别,还识别所述存储器空间中具有期望存储容量的虚拟扇区的数量,以及响应于对存取所述存储器空间的请求,应用均匀地存取所述虚拟扇区的交织函数。
另一个示例性实施例是一种用于跨越具有非均匀存储容量的存储器空间的物理通道对存储器存取进行均匀交织的方法。所述方法包括以下步骤:当多通道存储器架构被提供有跨越所述多个通道的非对称存储容量时进行识别;识别具有相等容量的虚拟扇区的数量;以及响应于对存取所述存储器空间的请求,经由交织器来应用交织函数,所述交织函数跨越所述虚拟扇区均匀地存取所述非对称存储容量。
另一个示例性实施例是一种其中存储有处理器指令和数据的非暂时性处理器可读介质,其中所述处理器指令和数据指导所述处理器进行以下操作:接收关于多通道存储器架构当前填充有提供跨越所述多个通道的非对称存储容量的存储器模块的指示;响应于所述指示,识别具有相等容量的虚拟扇区的数量;以及响应于对存取所述存储器空间的请求,应用跨越所述虚拟扇区均匀地存取所述非对称存储容量的交织函数。
附图说明
在附图中,除非另有指示,否则类似的附图标记贯穿各视图指代类似部件。对于具有诸如“102A”或“102B”等字母符号标示的附图标记,字母符号标示可以对出现在相同附图中的两个类似部件或要素进行区分。当旨在用附图标记来包含所有附图中具有相同附图标记的所有部件时,可以省略附图标记的字母符号标示。
图1是示出了计算设备的示例性实施例的示意图。
图2是示出了具有对称的存储器容量的、图1的计算设备的示例性实施例的示意图。
图3是示出了具有非对称系统存储器容量的、图2的计算设备的示意图。
图4是图1的计算设备的示例性实施例的示意图,其中该示例性实施例具有跨越两个物理通道以1:2比率分布的虚拟扇区组。
图5是图1的计算设备的示例性实施例的示意图,其中该示例性实施例具有跨越以不同数据传输速率来操作的两个物理通道以1:2比率分布的虚拟扇区组。
图6是图5的计算设备的示例性实施例的示意图,其中该示例性实施例具有跨越以不同数据传输速率来操作的两个物理通道以2:3比率分布的相对较大的虚拟扇区组。
图7是计算设备的示例性实施例的示意图,其中该示例性实施例具有跨越以两个不同数据传输速率来操作的4个物理通道以1:2:2:2比率分布的替代的虚拟扇区组,以达到对称填充的存储器空间的等效数据带宽。
图8是示出了用于跨越具有非均匀存储容量的存储器空间的物理通道,对存储器存取进行均匀交织的方法的示例性实施例的流程图。
具体实施方式
本文使用词语“示例性的”来表示“用作示例、实例或说明”。本文中被描述为“示例性的”任何方面不必解释为比其它方面优选或有利。
在本描述中,术语“应用”还可以包括具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件和补丁。此外,本文提到的“应用”还可以包括本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。
术语“内容”还可以包括具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件和补丁。此外,本文提到的“内容”还可以包括本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件或数据值。
如本描述中所使用的,术语“组件”、“数据库”、“模块”、“系统”等旨在指代计算机相关的实体,硬件、固件、硬件和软件的组合、软件或者执行中的软件。例如,组件可以是但不限于:在处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。通过说明的方式,在计算设备上运行的应用和计算设备两者都可以是组件。一个或多个组件可以驻留在执行的进程和/或线程内,并且组件可以集中在一个计算机上和/或分布在两个或更多个计算机之间。此外,可以通过其上存储有各种数据结构的各种计算机可读介质来执行这些组件。组件可以通过本地的和/或远程的过程的方式,例如根据具有一个或多个数据分组的信号(例如,来自与本地系统、分布式系统中的另一个组件通过信号的方式进行交互的一个组件的数据,和/或跨越诸如互联网之类的网络与其它系统通过信号的方式进行交互的一个组件的数据)来进行通信。
在本描述中,使用术语“便携式计算设备”(“PCD”)来描述以有限容量的可再充电电源(例如,电池和/或电容器)来操作的任何设备。虽然具有可再充电电源的PCD已使用了数十年,但是可再充电电池的技术进步与第三代(“3G”)和第四代(“4G”)无线技术的出现相结合,实现了具有多种能力的众多PCD。因此,PCD可以是蜂窝电话、卫星电话、寻呼机、PDA、智能电话、导航设备、智能本或阅读器、媒体播放器、上面提到的设备的组合、具有无线连接的台式或平板计算机等等。
交织函数可以适于支持对跨越多个物理通道部署的存储器模块的各种配置。相比于当每个物理通道耦合到相同存储容量时可能的数据传输速率,均匀交织的存储器空间将支持以减小的数据传输速率来支持存储器存取。
在某些条件下,减小的数据传输速率或存储器存取带宽可能足以满足或超过期望的系统性能。否则,当期望达到在跨越多个物理通道的均匀存储容量的情况下可能的存储器存取带宽时,结合交织函数来实现算法方法,以达到对称布置的存储器空间的等效存储器存取带宽。
当存储器空间填充有具有相同数据存储容量的N(整数)个存储器模块时,扩展函数指导交织器跨越虚拟扇区来分布数据。可以在交织器中部署诸如MOD函数之类的示例性交织函数。例如,为了在3个通道上扩展地址A[7:0]以映射总共192个存储器字,其中每个通道具有6位地址范围[5:0](每个地址范围映射64个存储器字),可以使用A[7:0]MOD3的结果来选择通道。因此,每个通道将以交织的方式接收A[7:0]的192个可能的有效地址模式(addresspattern)的恰好三分之一。(要注意,地址193至255是无效地址模式,因为该存储器未填充。)然后,可以定义一组5位通道内寻址函数A0、A1、A2来选择每个通道内的存储器位置。由于已知每个通道内可能的A[7:0]的64个存储器位置的子集,因此使用标准逻辑设计方案和最小化技术的本领域普通技术人员可以设计类似的通道内寻址函数,该寻址函数将这些64个地址映射到每个通道内的64个唯一的存储器位置。
在另一个例子中,可以应用用于经过概念上的多轮次跨越虚拟扇区来分布数据的交织函数,尽管可以使用标准逻辑设计方案和最小化技术将实际的交织函数被设计为单级(single-stage)。在示例性布置中(其中从4通道存储器架构的单个通道中移除两个存储器模块),经过多代以循环(round-robin)方式在3个填充的通道上存储期望数量的比特/字节。比特/字节的第一部分被指引到与第一通道耦合的存储器模块中的特定存储位置。要存储的比特/字节的第二部分被指引到与第二通道耦合的存储器模块中的特定存储位置。要存储的比特/字节的第三部分被指引到与第三通道耦合的存储器模块中的特定存储位置。剩余的比特/字节(其原本会被指引到与第四通道(当第四通道与存储器模块耦合时)耦合的存储单元)可以被指引到与第一通道耦合的存储器模块中的特定存储位置,以此类推。因此,所存储的数据跨越由耦合到3个通道的存储器模块所提供的可用数据存储容量均匀地扩展。所示出的实施例包括对具有跨越多个通道的非均匀数据存储容量的存储器空间的其它示例性布置。
虽然在具体参考PCD内的操作的情况下进行描述,但是所描述的存储器管理系统和方法适用于具有多通道存储器架构(其填充有跨越相应通道的非均匀数据存储容量)的任何计算系统。换种说法,存储器管理系统和方法适用于台式计算机、服务器计算机或者具有耦合到多个物理通道的非均匀分布的数据存储容量的任意电子设备。
现在参考所示出的例子。首先参考图1,示出了便携式计算设备(PCD)的示例性的、非限制性方面,并且通常标示为100。如所示出的,PCD100包括片上系统120,其中片上系统120包括多核CPU210。多核CPU210包括第零内核215、第1或第一内核216、以及第N内核217。
如图1中所示出的,显示控制器128和触摸屏控制器130耦合到多核CPU210。继而,在片上系统120外部的显示器/触摸屏132耦合到显示控制器128和触摸屏控制器130。
图1还指示视频编码器134(例如,逐行倒相(PAL)编码器、顺序传送彩色与存储(SECAM)编码器、或者国家电视系统委员会(NTSC)编码器)耦合到多核CPU210。此外,视频放大器136耦合到视频编码器134和显示器/触摸屏132。此外,视频端口138耦合到视频放大器136。如图1中所描绘的,通用串行总线(USB)控制器140耦合到多核CPU210。此外,USB端口142耦合到USB控制器140。系统存储器230和用户身份模块(SIM)卡146也可以耦合到多核CPU210,其中多核CPU210和系统存储器230之间的连接219由两个或更多个物理通道或路径组成,以用于在片上系统120的这些单元之间传输数据。此外,如图1中所示出的,数字照相机148可以耦合到多核CPU210。在示例性的方面中,数字照相机148是电荷耦合器件(CCD)照相机或者互补式金属氧化物半导体(CMOS)照相机。
如图1中还示出的,立体声音频CODEC150可以耦合到多核CPU210。此外,音频放大器152可以耦合到立体声音频CODEC150。在示例性的方面中,第一立体声扬声器154和第二立体声扬声器156耦合到音频放大器152。图1示出了话筒放大器158也可以耦合到立体声音频CODEC150。另外,话筒116可以耦合到话筒放大器158。在特定的方面中,频率调制(FM)无线调谐器162可以耦合到立体声音频CODEC150。此外,FM天线164耦合到FM无线调谐器162。此外,立体声端口166可以耦合到立体声音频CODEC150。
图1还指示射频(RF)收发机168耦合到多核CPU210。RF切换器170可以耦合到RF收发机168和RF天线172。如图1中所示出的,键盘174耦合到多核CPU210。此外,具有话筒的单声道头戴耳机176可以耦合到多核CPU210。此外,振荡器设备178可以耦合到多核CPU210。图1还示出了电源180可以经由USB控制器140来耦合到片上系统120。在特定的方面中,电源180是直流(DC)电源,其向PCD100的需要功率的各个组件提供功率。此外,在特定的方面中,电源是可再充电DC电池或者是从连接到交流(AC)电源的AC至DC变压器获得的DC电源。
图1还指示PCD100还可以包括网卡188,网卡188可以用于接入数据网络,例如局域网、个域网或者任何其它网络。网卡188可以是蓝牙网卡、WiFi网卡、个域网(PAN)卡、或者本领域公知的任何其它网卡。此外,网卡188可以并入到集成电路中。即,网卡188可以是芯片中的完全解决方案,并且可能不是单独的网卡188。
如图1中所描绘的,显示器/触摸屏132、视频端口138、USB端口142、照相机148、第一立体声扬声器154、第二立体声扬声器156、话筒116、FM天线164、立体声端口166、RF切换器170、RF天线172、键盘174、单声道头戴耳机176、振荡器178以及电源180在片上系统120的外部。
RF收发机168(其可以包括一个或多个调制解调器)可以支持以下各项中的一项或多项:全球移动通信系统(“GSM”)、码分多址(“CDMA”)、宽带码分多址(“W-CDMA”)、时分同步码分多址(“TDSCDMA”)、长期演进(“LTE”)、以及LTE的变型(例如但不限于FDB/LTE和PDD/LTE无线协议)。
在所示出的实施例中,描绘了多核CPU210的单个实例。但是,应当要理解,可以包括任意数量的类似配置的多核CPU,以支持与PCD100相关联的各个外围设备和功能。替代地,在PCD或其它计算设备中可以部署单个处理器或者均具有单个算数逻辑单元或内核的多个处理器,以便可以根据需要来支持与PCD100相关联的各个外围设备和功能。
所示出的实施例示出了在完全集成的片上系统120内布置的系统存储器230。但是,应当要理解,可以在片上系统120的外部布置两个或更多个厂商提供的、具有M字节的对应数据存储容量的存储器模块。当被布置在片上系统120的外部时,支持系统存储器230的各个存储器模块通过经修改的多通道存储器总线(未示出)的方式耦合到CPU210,其中多通道存储器总线包括适当的电连接以用于向存储器模块传送数据和功率。
在特定的方面中,可以经由系统存储器230中所存储的数据和处理器指令的组合来实现本文所描述的方法步骤中的一个或多个方法步骤。可以由多核CPU210来执行这些指令,以便执行本文所描述的方法。此外,多核CPU210、存储器230、EEPROM(未示出)或者其组合可以充当用于存储以下各项的单元:存储器管理逻辑(包括交织器逻辑)的非暂时性表示、以及用于执行本文所描述的方法步骤中的一个或多个方法步骤的配置参数。如所指示的,存储器控制器或者其它存储器管理逻辑单元在以相对于在CPU210和系统存储器230之间传送数据的多个存储器存取通道的、非对称的方式来填充系统存储器230时进行识别。如还指示的,交织器逻辑单元根据支持系统存储器230的物理架构、通过定义具有相等存储容量的虚拟扇区来进行响应,并且响应于对存取存储器空间的请求,应用算法解决方案来跨越虚拟扇区均匀地分布数据。
图2是示出了CPU210、系统存储器230和连接219的细节的示意图,其中当存储器空间290是利用跨越两个物理通道的对称存储器容量来支持的时,连接219使得能够在CPU210和存储器空间290之间进行数据传输。如图2中所指示的,由经由通道220(通道0)耦合到CPU210的第一组两个存储器模块以及经由通道222(通道1)耦合到CPU210的第二组两个存储器模块来支持存储器空间290。第一组存储器模块包括存储器模块291和存储器模块292。存储器模块291和存储器模块292(可以利用动态随机存取存储器(DRAM)集成电路来实现这些存储器模块)均提供M字节的数据存储容量。第二组存储器模块包括存储器模块293和存储器模块294。存储器模块293和存储器模块293(可以利用DRAM集成电路来实现这些模块)也提供M字节的数据存储容量。在存储器模块291-294中的每个存储器模块包括相同的电路架构并且具有M字节的相同容量的情况下,O/S逻辑单元213可以使用存储器控制器211来将要存储的数据放置到跨越存储器空间290的任何期望位置。不仅可以由存储器控制器211根据需要来放置存储在其中的数据,而且数据可以以最大带宽并且以均匀的延迟来传输到4M字节的存储器空间290。
如图2中所指示的,CPU210包括存储器控制器211、交织器逻辑单元212、操作系统(O/S)逻辑单元213、高速缓存214以及内核215。这些单元沿着CPU210内的一个或多个内部连接或数据总线(未示出)彼此耦合。存储器控制器211是对去往和来自系统存储器230的数据流进行管理的数字电路。由交织器逻辑单元212来辅助或增强存储器控制器211。交织器逻辑单元212提供地址、标签或者对可用通道中的哪个通道要用于CPU210和系统存储器230之间的特定I/O操作进行标识的其它信息。交织器逻辑单元通常还以与交织函数兼容的方式来重新布置或重新计算发送给每个通道的子通道地址。(例如,用于具有32位地址A[31:0]的系统的简单双通道交织器可以使用地址位A[10]来选择通道,并且然后生成分别用于通道0和通道1的通道内地址A0[A[31:11]、A[9:0]]和A1[A[31:11]、A[9:0]])。O/S逻辑单元213包括指令集,当该指令集由内核215执行时,管理各个外围资源并且为存储器空间290中所存储的计算机程序提供公共服务。O/S逻辑单元213可以存储在系统存储器230中并且根据需要被读入CPU210中。替代地,O/S逻辑单元213可以存储在耦合到或集成在CPU210中的只读存储器模块中。高速缓存214是较小、较快的存储器,其由CPU210用来存储来自频繁使用的系统存储器位置的数据的副本。高速缓存214减小了用于存取存储器的平均时间。如果一些存储器存取是来自经高速缓存的存储器位置的,则相比于接近与系统存储器230的延时,存储器存取的平均延时会更接近高速缓存延时。内核215包括读取、缓冲并执行程序指令的电路集。
在所示出的布置中,存储器控制器211被集成在与CPU210相同的管芯上。在替代的布置中,可以在与CPU210相通信的单独的集成电路上实现存储器控制器211。存储器控制器211被布置有前端部分和后端部分。前端部分对请求和响应进行缓冲,并且提供至CPU210和计算设备200的其它部分的接口(未示出)。该前端部分通常独立于存储器模块类型。相对比地,后端部分提供至存储器模块的接口,并且依赖于存储器模块中的存储器电路的类型。
在所示出的布置中,交织器逻辑单元212被集成在相同的管芯上,并且被描绘为与内核215和存储器控制器211分离的电路或电路集。在替代的实施例中,交织器逻辑单元212可以是实现存储器控制器211或者O/S逻辑单元213的其中之一的电路的子部件。无论怎样具体实现,当交织器逻辑单元212被给予可寻址存储器模块的完整补充(fullcomplement)或者至少均衡补充(balancedcomplement)时,交织器逻辑单元212使用通道220和通道222来均匀地将要存储的数据分布到存储器空间290中。
图3是示出了具有非对称系统存储器容量的、图2的计算设备的示意图。当制造商选择提供少于存储器模块的完整补充时或者当存储器模块出现故障时,出现非对称的系统存储器容量。如图3中所示出的示例性实施例中所指示的,存储器空间390是由经由通道220(通道0)耦合到CPU210的第一存储器模块391和经由通道222(通道1)耦合到CPU210的两个存储器模块来支持的。可以利用其每个均具有M字节的数据存储容量的DRAM集成电路来实现存储器模块391、存储器模块393和存储器模块394。在存储器模块291、293、294中的每个存储器模块包括相同的电路架构并且具有M字节的相同容量的情况下,通道220(通道0)耦合到M字节,而通道222(通道1)耦合到2M字节。如图3中所指示的,在跨越存储器模块391和存储器模块393的物理通道220、222之间存在1:1的数据存取比率。缺少耦合到通道220的第二存储器模块引起物理通道220、222之间0:1的数据存取比率。由存储器模块394支持的存储器空间390的该部分不能够接收交织的数据,并且因此,与可以经由相应的通道同时存取两个存储器模块的存储器空间的那部分相比,每单位时间处理较少的数据。耦合到通道220的第二存储器模块的缺少可由存储器控制器211检测到,其中存储器控制器211可以向交织器逻辑单元212或者CPU210可存取的其它逻辑单元传送对缺少耦合到通道220的第二存储器模块进行指示的信号。作为响应,交织器逻辑单元212或者其它逻辑单元可以基于一个或多个系统参数、以预编程的方式来进行响应。替代地,计算设备300可以以固定方式来进行响应。
可以由部分交织函数或非均匀交织函数来操作被布置有跨越物理通道220、222的非对称存储容量的多通道存储器存取架构302。即,可以以存储器模块391和存储器模块393所支持的最大数据速率来对存储器空间390的第一部分(所示出的实施例中的最下方部分)进行交织,而存储器空间390的第二部分仅可以处理未交织的存储器存取请求。因此,交织器逻辑单元212用于在总的3M存储容量中的2M字节上传输去往和来自存储器空间的数据。
虽然可支持,但是在未交织的数据传输速率不能充分支持所有的存储器存取的情况下,这种布置给O/S逻辑单元213和/或使用O/S逻辑单元213所提供的服务的应用程序(未示出)引入了很大的负担。当出现这种情况时,O/S逻辑单元213和/或应用程序必须识别哪些存储器存取可以寻址到存储器空间390的未交织部分。替代地,计算设备300可以以未交织的或者较低的数据传输速率来发送所有的存储器I/O。
图4是图1的计算设备的示例性实施例的示意图,其中该示例性实施例具有跨越两个物理通道以1:2比率分布的虚拟扇区组。如图4中所示出的示例性实施例中所指示的,存储器空间440是由经由通道220(通道0)耦合到CPU210的第一存储器模块441和经由通道222(通道1)耦合到CPU210的两个存储器模块来支持的。可以利用其每个均具有M字节的数据存储容量的DRAM集成电路来实现存储器模块441、存储器模块443和存储器模块444。在存储器模块441、443、444中的每个存储器模块包括相同的电路架构并且具有M字节的相同容量的情况下,通道220(通道0)耦合到M字节,而通道222(通道1)耦合到2M字节。但是,取代于使用部分交织函数来跨越三个可用存储器模块中的两个可用存储器模块对数据进行交织,将存储器空间440划分为具有相等容量的虚拟扇区。如图4中所示出的,虚拟扇区与存储器模块441、存储器模块443和存储器模块444中的每个存储器模块一致。如图4中所指示的,在物理通道220之间存在1:2的数据存取比率。
如图4中所给出的,具有非对称存储容量的多通道存储器存取架构使用由经修改的交织器逻辑单元418实现的虚拟交织函数。当虚拟扇区的数量是奇数时,经修改的交织器逻辑单元418使用奇数路的扩展函数来跨越虚拟扇区分布数据。
电可擦除可编程只读模块(EEPROM)411与处理器CPU210集成,以提供针对可编程参数以及期望的扩展函数的存储,以便在跨越虚拟通道分布数据时指导或调整经修改的交织器逻辑单元418。例如,3路扩展函数跨越存储器空间440在通道220和通道222之间以1:2的比率动态地分布存储器存取。因此,可以对存储器空间440的可用容量进行均匀交织。在这种布置中,在存储器空间440上CPU210和存储器空间440之间的数据传输速率将从跨越两个通道匹配的存储器模块所支持的最大数据传输速率降低,但是与图3中所示出的部分交织方法所支持的较低的未交织数据传输相比更快并更容易管理。由于以相同的数据传输速率来执行所有的存储器存取,因此O/S逻辑单元216和或在内核215中执行的应用程序可以将数据放置在存储器空间440中的任何地方。
在替代的实施例中,虚拟扇区交织函数可以被编程或调整为使用更多或更少的虚拟扇区。在一些布置中,经修改的交织器逻辑单元418所使用的虚拟扇区的数量可以小于支持存储器空间440的存储器模块的数量。在一些其它布置中,经修改的交织器逻辑单元418所使用的虚拟扇区的数量可以大于支持存储器空间440的存储器模块的数量。存储器模块的数量和虚拟扇区的数量之间的这种不匹配,可以缓解当使用具有不同容量的存储器模块来支持存储器空间时将可用存储容量均匀地划分为虚拟扇区的复杂性。跨越多个通道来分布数据的可编程虚拟扇区扩展函数允许同一个CPU210来支持完全填充的存储器通道和部分填充的存储器通道二者。
示例性的扩展函数可以包括用于定义存储器存取通道的代码。对于具有三个可用通道的系统,可以部署诸如MOD函数之类的示例性扩展函数。例如,为了在3个通道上扩展地址A[7:0]以映射总共192个存储器字,其中每个通道具有6位地址范围[5:0](每个地址范围映射64个存储器字),可以使用A[7:0]MOD3的结果来选择通道。因此,每个通道将以交织的方式接收A[7:0]的192个可能的有效地址模式的恰好三分之一。(要注意,地址193至255是无效的地址模式,因为该存储器未填充。)然后,可以定义一组5位的通道内寻址函数A0、A1、A2,以选择每个通道内的存储器位置。由于每个通道内可能的A[7:0]的64个存储器位置的子集是已知的,因此使用标准逻辑设计方案和最小化技术的本领域普通技术人员可以设计他偏好的通道内寻址函数,该通道内寻址函数将这些64个地址映射到每个通道内的64个唯一的存储器位置。
图5是图1的计算设备的示例性实施例的示意图,其中该示例性实施例具有跨越以不同数据传输速率来操作的两个物理通道以1:2比率分布的虚拟扇区组。如图5中所示出的示例性实施例中所指示的,存储器空间540是由经由通道220(通道0)耦合到CPU210的第一存储器模块541和经由通道222(通道1)耦合到CPU210的两个存储器模块来支持的。可以利用均具有M字节的数据存储容量的DRAM集成电路来实现存储器模块541、存储器模块543和存储器模块544。在存储器模块541、543、544中的每个存储器模块包括相同的电路架构并且具有M字节的相同容量的情况下,通道220(通道0)耦合到M字节,而通道222(通道1)耦合到2M字节。但是,取代于单独地使用虚拟交织函数来跨越三个虚拟扇区对数据进行交织,如图4中所示出的,将存储器空间540划分为具有相等容量的虚拟扇区,并且经修改的交织器逻辑单元518在通道220上进行传送时使用第一数据传输速率并在通道222上进行传送时使用第二数据传输速率。在示例性实施例中,存储器模块541是低功率双倍数据速率2(LPDDR2)存储器单元,其具有256M字节的数据容量并且能够以266MHz的时钟频率来操作。在该同一个例子中,存储器模块543和存储器模块544是具有相同数据容量的LPDDR2存储器单元,但是能够以533MHz的时钟频率来操作。因此,示例性实施例实现了跨越存储器空间540的均匀带宽,同时允许与跨越物理通道的非对称数据存储容量相关联的潜在的成本节约。虽然示例性实施例包括跨越通道的1:2容量比率、围绕通道分布的虚拟扇区的1:2比率以及时钟频率的1:2比率,但是时钟频率独立于虚拟扇区比率和耦合到每个通道的虚拟扇区的数量。
如图5中所示出的,虚拟扇区与存储器模块541、存储器模块543和存储器模块544中的每个存储器模块一致。还如图5中所指示的,在物理通道220、222之间存在1:2的数据存取比率。另外,与通道222相通信的存储器模块543、544定义了存储器空间540的区域,在该区域中,经修改的交织器逻辑单元518可以以存储器模块和该通道所支持的最高速率(或者最大数据传输速率)或者低于最大数据传输速率的期望的数据传输速率来对数据进行均匀交织。在所示出的实施例中,通道222以是通道220所支持的数据传输速率的两倍的数据传输速率来与CPU210传送数据。
EEPROM511与处理器CPU210集成,以提供针对可编程参数以及期望的扩展函数的存储,以便在跨越虚拟通道分布数据时指导或调整经修改的交织器逻辑单元518。在一些布置中,EEPROM511将包括一个或多个参数,这些参数标识虚拟扇区的数量、物理传送通道的数量、以及当跨越存储器空间540来扩展数据时要使用的数据传输速率。在一些布置中,可以将用于跨越CPU210和存储器空间540之间的通道来传送数据的数据传输速率标识为其它一个或多个通道的函数。
图6是图5的计算设备的示例性实施例的示意图,其中该示例性实施例具有跨越以不同数据传输速率来操作的两个物理通道以2:3比率分布的相对较大的虚拟扇区组。如图6中所示出的示例性实施例中所指示的,存储器空间640是由经由通道220(通道0)耦合到CPU210的存储器模块641和存储器模块642、以及经由通道222(通道1)耦合到CPU210的存储器模块644、存储器模块645和存储器模块646来支持的。可以利用其每个均具有M字节的数据存储容量的DRAM集成电路来实现存储器模块641、642、644、645、646。在存储器模块641、642、644、645、646中的每个存储器模块包括相同的电路架构并且具有M字节的相同容量的情况下,通道220(通道0)耦合到2M字节的存储容量,而通道222(通道1)耦合到3M字节的存储容量。这里,存储器空间640划分为相等容量的五个虚拟扇区,并且经修改的交织器逻辑单元618在通道220上进行传送时使用第一数据传输速率,并在通道222上进行传送时使用第二数据传输速率。
如图6中所指示的,可以将第一和第二数据传输速率(f(0),f(1))确定为以下各项的函数:完全交织的系统中所部署的数据传输速率ft、通道中虚拟扇区的数量(N0,N1)、以及物理通道的数量与存储器空间640中虚拟扇区的总数量的比率(P/Vtot)。具体而言,允许存储器空间640达到由匹配容量的完全交织的存储系统所提供的带宽的第一和第二数据传输速率可以通过以下各项的乘积来确定:完全交织的系统的数据传输频率、通道中虚拟扇区的数量、以及物理通道的数量与系统600所部署的虚拟扇区的总数量的比率。
在示例性实施例中,存储器模块641和存储器模块642是DRAM单元,其均具有256M字节的数据容量并且能够以320MHz的时钟频率来操作。在该同一个例子中,存储器模块644、存储器模块645和存储器模块646是具有256M字节的相同数据容量的DRAM单元,但是能够以480MHz的时钟频率来操作。因此,示例性实施例实现了跨越存储器空间640的均匀带宽,同时允许与跨越物理通道的非对称数据存储容量相关联的潜在的成本节约。虽然示例性实施例包括跨越通道的2:3容量比率、围绕通道分布的虚拟扇区的2:3比率、以及时钟频率的2:3比率,但是时钟频率独立于虚拟扇区比率和耦合到每个通道的虚拟扇区的数量。
如图6中所示出的,虚拟扇区与存储器模块641、642、644、645、646中的每个存储器模块一致。另外,与通道222相通信的存储器模块644-646定义了存储器空间640的区域,在该区域中,经修改的交织器逻辑单元618可以以存储器模块和通道所支持的最高速率或低于最大数据传输速率的期望的数据传输速率来对数据进行均匀交织。在所示出的实施例中,通道222以是通道220所支持的数据传输速率的1.5倍的数据传输速率来与CPU210传送数据。
EEPROM611与处理器CPU210集成,以提供针对可编程参数以及期望的扩展函数的存储,以便在跨越虚拟通道来分布数据时指导或调整经修改的交织器逻辑单元618。在一些布置中,EEPROM611将包括一个或多个参数,这些参数标识虚拟扇区的数量、物理传送通道的数量、以及当跨越存储器空间640来扩展数据时要使用的数据传输速率。在一些布置中,可以将用于跨越在CPU210和存储器空间640之间的通道来传送数据的数据传输速率标识为其它一个或多个通道的函数。
图7是计算设备的示例性实施例的示意图,其中该示例性实施例具有跨越以两个不同数据传输速率来操作的4个物理通道以1:2:2:2比率分布的替代的虚拟扇区组,以实现对称填充的存储器空间的等效数据带宽。如图7中所示出的示例性实施例中所指示的,存储器空间740是由经由通道220(通道0)耦合到CPU210的存储器模块741、经由通道222(通道1)耦合到CPU210的存储器模块743和存储器模块744、经由通道224(通道2)耦合到CPU210的存储器模块745和存储器模块746、经由通道226(通道3)耦合到CPU210的存储器模块747和存储器模块748来支持的。可以利用其每个均具有M字节的数据存储容量的DRAM集成电路来实现存储器模块741、743、744、745、746、747、748。在存储器模块741、743-748中的每个存储器模块包括相同的电路架构并且具有M字节的相同容量的情况下,通道220(通道0)耦合到M字节的存储容量,而通道222、224、226(通道1-3)耦合到2M字节的存储容量。此处,将存储器空间740划分为具有相等容量的七个虚拟扇区,并且经修改的交织器逻辑单元718在通道220上进行传送时使用第一数据传输速率,并在通道222、224、226上进行传送时使用第二数据传输速率。
如图7中所指示的,可以将第一和第二数据传输速率(f(0),f(1,2,3))确定为以下各项的函数:完全交织的系统中所部署的数据传输速率ft、通道中虚拟扇区的数量(N0,N1,2,3)、以及物理通道的数量与存储器空间740中虚拟扇区的总数量的比率(P/Vtot)。具体而言,允许存储器空间740达到由匹配容量的完全交织的存储系统所提供的带宽的第一和第二数据传输速率可以通过以下各项的乘积来确定:完全交织的系统的数据传输频率、通道中虚拟扇区的数量、以及物理通道的数量与系统700所部署的虚拟扇区的总数量的比率。
在示例性实施例中,存储器模块741是DRAM单元,其具有256M字节的数据容量并且能够以大约229MHz的时钟频率来操作。在该同一个例子中,存储器模块743-748是具有256M字节的相同数据容量的DRAM单元,但是能够以大约457MHz的时钟频率来操作。因此,示例性实施例实现了跨越存储器空间740的均匀带宽,同时允许与跨越四个物理通道的非对称数据存储容量相关联的潜在的成本节约。虽然示例性实施例包括跨越四个通道的1:2:2:2容量比率、围绕通道分布的虚拟扇区的1:2:2:2比率、以及时钟频率的大约1:2比率,但是时钟频率可以是独立于虚拟扇区比率和耦合到每个通道的虚拟扇区的数量来应用的。
如图7中所示出的,虚拟扇区与存储器模块741、743-748中的每个存储器模块一致。另外,与通道222、224、226相通信的存储器模块743-748定义了存储器空间740的区域,在该区域中,经修改的交织器逻辑单元718可以以存储器模块和通道所支持的最高速率或低于最大数据传输速率的期望的数据传输速率来对数据进行均匀交织。在所示出的实施例中,通道222、224、226中的每个通道以是通道220所支持的数据传输速率的大约两倍的数据传输速率来与CPU210传送数据。
EEPROM711与处理器CPU210集成,以提供针对可编程参数以及期望的扩展函数的存储,以便在跨越虚拟通道来分布数据时指导或调整经修改的交织器逻辑单元718。在一些布置中,EEPROM711将包括一个或多个参数,这些参数标识虚拟扇区的数量(例如,七)、物理传送通道的数量(例如,4)、以及当跨越存储器空间740来扩展数据时要使用的数据传输速率(229MHz、457MHz)。
虽然所示出的实施例包括偶数数量的通道以及分布在奇数数量的存储器模块上的奇数数量的虚拟扇区,但是会导致跨越多个通道的非对称存储器容量的许多其它布置是可能的。例如,可以跨越奇数数量的通道来部署偶数数量的存储器模块。在一个这种布置中,可以跨越三个通道来分布总共4个存储器模块(1:1:2、1:2:1、或者2:1:1)。当存储器模块共享相同的存储容量时,虚拟扇区的数量可以等于或小于存储器模块的存储容量。举另一个例子,跨越通道的存储容量的非对称可以是跨越偶数数量的通道部署了具有不同存储容量的存储器模块的结果。在一个此类布置中,具有1GB的存储容量的第一存储器模块耦合到第一通道,并且具有2GB的存储容量的第二存储器模块耦合到第二通道。在该布置中,交织器函数可以通过跨越均为1GB的三个虚拟扇区相等地分布数据来进行响应。通过所描述的交织函数和利用使用虚拟扇区来存取计算设备中的可用存储的其它函数,可以改善具有跨越多个通道分布的非对称存储容量的这些和其它布置。
图8是示出了用于跨越具有非均匀存储容量的存储器空间的物理通道来对存储器存取进行均匀交织的方法800的示例性实施例的流程图。在框802中,与计算系统相关联的存储器控制器或其它传感器在存储器空间包括跨越CPU210和系统存储器之间的多个物理通道的非均匀数据存储容量时进行识别。在框804中,可编程交织器或交织器逻辑单元识别存储器空间中具有期望的存储容量的虚拟扇区组。在框806中,交织器或交织器逻辑单元对跨越存储器空间中的虚拟扇区或者虚拟扇区的一部分以均匀方式存取存储器空间的请求进行响应。在判定框808中,使用交织器或交织器逻辑单元对继续处理对存取存储器空间的请求做出判定。当响应是肯定时(如由标记为“是”的流程控制箭头所指示的),重复框806和808中的函数。否则,如由离开判定框808的、标记为“否”的流程控制箭头所指示的,方法800终止。
本说明书中所描述的过程或过程流程中的某些步骤自然地先于其它步骤,以便本发明如所描述的来运行。但是,如果这种顺序或序列不改变本发明的功能,则本发明不限于所描述的步骤的顺序。即,要认识到,在不偏离本发明的范围的情况下,可以在其它步骤之前、之后或者与其它步骤并行(实质上同时)执行一些步骤。在一些实例中,在不偏离本发明的情况下,可以省略或不执行某些步骤。此外,诸如“此后”、“然后”、“接下来”、“随后”之类的词语并非旨在对步骤的顺序进行限制。这些词语仅用于贯穿对示例性方法的描述来引导读者。
另外,编程领域的普通技术人员能够基于例如本说明书中的流程图和相关联的描述,毫无困难地编写计算机代码或者标识适当的硬件和/或电路来实现所公开的发明。因此,对特定的程序代码指令集或详细的硬件设备的公开并不视为对充分理解如何实施和使用本发明来说是必需的。在上面描述中并且结合可以说明各种过程流程的图来更详细地解释了所要求保护的、处理器实现的过程的创造性的功能。
在如上面所指示的一个或多个示例性方面中,可以在硬件、软件、固件或其任意组合中实现所描述的功能。如果在软件中实现,则所述功能可以作为一条或多条指令或代码存储在计算机可读介质(例如,非暂时性处理器可读介质)上。计算机可读介质包括数据存储介质。
存储介质可以是可由计算机或处理器存取的任何可用介质。通过举例而非限制性的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备,或者可用于携带或存储具有指令或数据结构形式的期望的程序代码并且可以由计算机存取的任何其它介质。如本文所使用的,磁盘和光盘包括压缩光盘(“CD”)、激光光盘、光盘、数字多功能光盘(“DVD”)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。上述各项的组合也应当包括在非暂时性计算机可读介质的保护范围内。
虽然已经详细地说明和描述了所选择的方面,但是要理解,在不偏离如接下来的权利要求书所定义的本发明的系统和方法的情况下,可以在其中做出各种替换和变更。
Claims (47)
1.一种用于对具有跨越物理通道的非均匀存储容量的存储器空间的存储器存取进行均匀交织的方法,所述方法包括:
在多通道存储器架构被提供有跨越所述物理通道的非对称存储容量时进行识别;
使用对所述识别进行响应的逻辑单元来定义具有相等容量的多个虚拟扇区;以及
响应于对存取所述存储器空间的请求,经由交织器来应用交织函数,所述交织函数跨越所述虚拟扇区均匀地存取所述非对称存储容量。
2.根据权利要求1所述的方法,其中,所述物理通道的数量是偶数,并且具有相等容量的虚拟扇区的数量是奇数。
3.根据权利要求1所述的方法,其中,所述物理通道的数量是奇数,并且具有相等容量的虚拟扇区的数量是偶数。
4.根据权利要求1所述的方法,其中,所述应用交织函数包括应用扩展函数。
5.根据权利要求4所述的方法,其中,所述扩展函数在所述存储器空间上的物理通道之间以定义的比率来动态地分布存储器存取。
6.根据权利要求1所述的方法,其中,具有相等容量的虚拟扇区的数量是可编程的。
7.根据权利要求1所述的方法,其中,具有相等容量的虚拟扇区的数量在数量上少于支持所述存储器空间的存储器模块的数量。
8.根据权利要求1所述的方法,其中,具有相等容量的虚拟扇区的数量大于支持所述存储器空间的存储器模块的数量。
9.根据权利要求1所述的方法,其中,所述存储器空间是由奇数数量的具有相同存储容量的存储器模块来支持的。
10.根据权利要求1所述的方法,其中,所述存储器空间是由偶数数量的存储器模块来支持的,其中至少一个存储器模块具有与剩余存储器模块的存储容量不同的存储容量。
11.根据权利要求1所述的方法,其中,存取所述存储器空间的操作是以针对所述物理通道中的每个物理通道的、超过未交织的数据传输速率的数据传输速率来支持的。
12.根据权利要求1所述的方法,其中,经由第一物理通道存取所述存储器空间的操作是以第一数据传输速率来支持的,并且经由第二物理通道存取所述存储器空间的操作是以与所述第一数据传输速率不同的第二数据传输速率来支持的。
13.根据权利要求12所述的方法,其中,所述第一数据传输速率是所述第二数据传输速率的函数。
14.根据权利要求13所述的方法,其中,所述第一数据传输速率和所述第二数据传输速率是基于由物理通道支持的虚拟扇区的数量来确定的。
15.一种计算设备,包括:
交织器,所述交织器被布置在与处理器和系统存储器相通信的总线上,所述交织器被配置为识别由至少两个物理通道支持的存储器空间中的位置,所述交织器对识别具有期望的存储容量的虚拟扇区的逻辑单元进行响应;以及
至少一个存储器模块,所述至少一个存储器模块分别耦合到所述至少两个物理通道,所述存储器空间具有所述物理通道之间的非均匀存储容量,其中,响应于对存取所述存储器空间的请求,所述交织器跨越所述虚拟扇区均匀地存取所述非均匀存储容量。
16.根据权利要求15所述的计算设备,还包括:
存储器控制器,当所述至少两个物理通道被提供有所述至少两个物理通道之间的不同存储容量时,所述存储器控制器用信号形式通知所述交织器。
17.根据权利要求15所述的计算设备,其中,所述交织器应用N路扩展函数,其中,N是整数,所述N路扩展函数在所述存储器空间上的物理通道之间以定义的比率来动态地分布存储器存取。
18.根据权利要求15所述的计算设备,其中,具有相等容量的虚拟扇区的数量响应于所述处理器中接收到的参数。
19.根据权利要求15所述的计算设备,其中,具有相等容量的虚拟扇区的数量在数量上少于支持所述存储器空间的存储器模块的数量。
20.根据权利要求15所述的计算设备,其中,所述存储器空间是由奇数数量的具有相同存储容量的存储器模块来支持的。
21.根据权利要求15所述的计算设备,其中,存取所述存储器空间的操作是以针对所述物理通道中的每个物理通道的、超过未交织的数据传输速率的数据传输速率来支持的。
22.根据权利要求15所述的计算设备,其中,经由第一物理通道存取所述存储器空间的操作是以第一数据传输速率来支持的,并且经由第二物理通道存取所述存储器空间的操作是以与所述第一数据传输速率不同的第二数据传输速率来支持的。
23.根据权利要求15所述的计算设备,其中,第一数据传输速率是跨越第一组物理通道来应用的,并且第二数据传输速率是跨越第二组物理通道来应用的。
24.根据权利要求23所述的计算设备,其中,所述第一数据传输速率和所述第二数据传输速率被确定为由物理存储器通道支持的虚拟扇区的数量的函数。
25.一种计算设备,包括:
用于识别被布置有跨越多通道存储器存取架构的非均匀存储容量的存储器空间的单元;
用于识别所述存储器空间中具有相等存储容量的虚拟扇区的数量的单元;
用于响应于对存取所述存储器空间的请求,应用均匀地存取所述虚拟扇区的交织函数的单元。
26.根据权利要求25所述的计算设备,其中,所述存储器空间是由整数数量的存储器模块来支持的。
27.根据权利要求26所述的计算设备,其中,至少一个存储器模块具有与剩余存储器模块的存储容量不同的存储容量。
28.根据权利要求25所述的计算设备,其中,所述用于应用交织函数的单元应用N路扩展函数,其中,N是整数。
29.根据权利要求28所述的计算设备,其中,所述N路扩展函数在所述存储器空间上的物理通道之间以定义的比率来动态地分布存储器存取。
30.根据权利要求25所述的计算设备,其中,具有相等容量的虚拟扇区的数量响应于处理器中接收到的参数。
31.根据权利要求25所述的计算设备,其中,具有相等容量的虚拟扇区的数量在数量上少于支持所述存储器空间的存储器模块的数量。
32.根据权利要求25所述的计算设备,其中,所述存储器空间是由奇数数量的相同存储容量的存储器模块来支持的。
33.根据权利要求25所述的计算设备,其中,存取所述存储器空间的操作是以针对所述物理通道中的每个物理通道的、超过未交织的数据传输速率的数据传输速率来支持的。
34.根据权利要求25所述的计算设备,其中,经由第一物理通道存取所述存储器空间的操作是以第一数据传输速率来支持的,并且经由第二物理通道存取所述存储器空间的操作是以与所述第一数据传输速率不同的第二数据传输速率来支持的。
35.根据权利要求34所述的计算设备,其中,所述第一数据传输速率是所述第二数据传输速率的函数。
36.根据权利要求25所述的计算设备,其中,第一数据传输速率是跨越第一组物理通道来应用的,并且第二数据传输速率是跨越第二组物理通道来应用的。
37.根据权利要求36所述的计算设备,其中,所述第一数据传输速率和所述第二数据传输速率被确定为由物理通道支持的虚拟扇区的数量的函数。
38.一种其上存储有处理器指令的非暂时性处理器可读介质,当所述处理器指令被执行时,指导所述处理器执行功能,所述功能包括:
接收关于多通道存储器架构当前填充有提供跨越多个通道的非对称存储容量的存储器模块的指示;
响应于所述指示,识别具有相等容量的虚拟扇区的数量;以及
响应于对存取所述存储器空间的请求,应用跨越所述虚拟扇区均匀地存取所述非对称存储容量的交织函数。
39.根据权利要求38所述的非暂时性处理器可读介质,其中,至少一个存储器模块具有与剩余存储器模块的存储容量不同的存储容量。
40.根据权利要求38所述的非暂时性处理器可读介质,其中,所述应用交织函数包括应用N路扩展函数。
41.根据权利要求40所述的非暂时性处理器可读介质,其中,所述N路扩展函数在所述存储器空间上的物理通道之间以定义的比率动态地分布存储器存取。
42.根据权利要求38所述的非暂时性处理器可读介质,其中,具有相等容量的虚拟扇区的数量是可编程的。
43.根据权利要求42所述的非暂时性处理器可读介质,其中,所述具有相等容量的虚拟扇区的数量在数量上少于支持所述存储器空间的存储器模块的数量。
44.根据权利要求38所述的非暂时性处理器可读介质,其中,所述存储器空间是由奇数数量的具有相同存储容量的存储器模块来支持的。
45.根据权利要求38所述的非暂时性处理器可读介质,其中,存取所述存储器空间的操作是以针对所述物理通道中的每个物理通道的、超过未交织的数据传输速率的数据传输速率来支持的。
46.根据权利要求38所述的非暂时性处理器可读介质,其中,经由第一物理通道存取所述存储器空间的操作是以第一数据传输速率来支持的,并且经由第二物理通道存取所述存储器空间的操作是以与所述第一数据传输速率不同的第二数据传输速率来支持的。
47.根据权利要求46所述的非暂时性处理器可读介质,其中,所述第一数据传输速率是跨越第一组物理通道来应用的,并且所述第二数据传输速率是跨越第二组物理通道来应用的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/045,784 | 2013-10-03 | ||
US14/045,784 US9465735B2 (en) | 2013-10-03 | 2013-10-03 | System and method for uniform interleaving of data across a multiple-channel memory architecture with asymmetric storage capacity |
PCT/US2014/058946 WO2015051201A1 (en) | 2013-10-03 | 2014-10-03 | System and method for uniform interleaving of data across a multiple-channel memory architecture with asymmetric storage capacity |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105612501A true CN105612501A (zh) | 2016-05-25 |
CN105612501B CN105612501B (zh) | 2018-11-13 |
Family
ID=51842833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480054542.5A Active CN105612501B (zh) | 2013-10-03 | 2014-10-03 | 用于跨越具有非对称存储容量的多通道存储器架构对数据均匀交织的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9465735B2 (zh) |
EP (1) | EP3053044B1 (zh) |
JP (1) | JP6378325B2 (zh) |
KR (1) | KR20160064223A (zh) |
CN (1) | CN105612501B (zh) |
BR (1) | BR112016007344A2 (zh) |
CA (1) | CA2925131A1 (zh) |
WO (1) | WO2015051201A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109313609A (zh) * | 2016-06-27 | 2019-02-05 | 高通股份有限公司 | 用于奇数模存储器通道交织的系统和方法 |
CN112513824A (zh) * | 2018-07-31 | 2021-03-16 | 华为技术有限公司 | 一种内存交织方法及装置 |
CN114661711A (zh) * | 2022-03-11 | 2022-06-24 | 上海原能细胞生物低温设备有限公司 | 样本存储位置分配方法、装置、电子设备及存储介质 |
WO2022160321A1 (zh) * | 2021-01-30 | 2022-08-04 | 华为技术有限公司 | 一种访问内存的方法和装置 |
WO2022160214A1 (zh) * | 2021-01-28 | 2022-08-04 | 华为技术有限公司 | 一种访问内存的方法和装置 |
Families Citing this family (150)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US20150169445A1 (en) | 2013-12-12 | 2015-06-18 | International Business Machines Corporation | Virtual grouping of memory |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
KR102355573B1 (ko) * | 2014-10-29 | 2022-01-27 | 삼성전자주식회사 | 선형 리맵퍼 및 액세스 윈도우를 포함하는 메모리 시스템 및 시스템 온 칩 |
US9720825B2 (en) * | 2014-12-19 | 2017-08-01 | Dell Products, Lp | System and method for performance optimal partial rank/bank interleaving for non-symmetrically populated DIMMs across DDR channels |
US9948615B1 (en) | 2015-03-16 | 2018-04-17 | Pure Storage, Inc. | Increased storage unit encryption based on loss of trust |
US11294893B2 (en) | 2015-03-20 | 2022-04-05 | Pure Storage, Inc. | Aggregation of queries |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US11232079B2 (en) | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US9697884B2 (en) * | 2015-10-08 | 2017-07-04 | Rambus Inc. | Variable width memory module supporting enhanced error detection and correction |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US9760479B2 (en) * | 2015-12-02 | 2017-09-12 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US11762764B1 (en) | 2015-12-02 | 2023-09-19 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10162554B2 (en) * | 2016-08-03 | 2018-12-25 | Samsung Electronics Co., Ltd. | System and method for controlling a programmable deduplication ratio for a memory system |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US10979223B2 (en) | 2017-01-31 | 2021-04-13 | Pure Storage, Inc. | Separate encryption for a solid-state drive |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10990566B1 (en) | 2017-11-20 | 2021-04-27 | Pure Storage, Inc. | Persistent file locks in a storage system |
US10719265B1 (en) | 2017-12-08 | 2020-07-21 | Pure Storage, Inc. | Centralized, quorum-aware handling of device reservation requests in a storage system |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
US10642733B1 (en) * | 2018-07-12 | 2020-05-05 | Lightbits Labs Ltd. | System and method for memory interface load balancing |
US11438279B2 (en) | 2018-07-23 | 2022-09-06 | Pure Storage, Inc. | Non-disruptive conversion of a clustered service from single-chassis to multi-chassis |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US10783025B2 (en) | 2018-10-15 | 2020-09-22 | Dell Products, L.P. | Method and apparatus for predictive failure handling of interleaved dual in-line memory modules |
US10454498B1 (en) | 2018-10-18 | 2019-10-22 | Pure Storage, Inc. | Fully pipelined hardware engine design for fast and efficient inline lossless data compression |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
US10990517B1 (en) * | 2019-01-28 | 2021-04-27 | Xilinx, Inc. | Configurable overlay on wide memory channels for efficient memory access |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
TWI692774B (zh) * | 2019-05-15 | 2020-05-01 | 瑞昱半導體股份有限公司 | 記憶體系統及記憶體系統的操作方法 |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
CN112395216A (zh) | 2019-07-31 | 2021-02-23 | 北京百度网讯科技有限公司 | 用于存储管理的方法、装置、设备和计算机可读存储介质 |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11137936B2 (en) * | 2020-01-21 | 2021-10-05 | Google Llc | Data processing on memory controller |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
US11222258B2 (en) | 2020-03-27 | 2022-01-11 | Google Llc | Load balancing for memory channel controllers |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11256587B2 (en) | 2020-04-17 | 2022-02-22 | Pure Storage, Inc. | Intelligent access to a storage device |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
WO2022031697A1 (en) * | 2020-08-03 | 2022-02-10 | Arris Enterprises Llc | Gateway device with clock speed that reduces electro-magnetic noise |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US20230195620A1 (en) * | 2021-12-21 | 2023-06-22 | SambaNova Systems, Inc. | Non-uniform memory interleave method |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080250212A1 (en) * | 2007-04-09 | 2008-10-09 | Ati Technologies Ulc | Method and apparatus for accessing memory using programmable memory accessing interleaving ratio information |
US20090150710A1 (en) * | 2007-12-10 | 2009-06-11 | Christoph Bilger | Memory System With Extended Memory Density Capability |
US20110047346A1 (en) * | 2009-08-19 | 2011-02-24 | Sun Microsystems, Inc. | Efficient interleaving between a non-power-of-two number of entities |
CN102999438A (zh) * | 2011-07-26 | 2013-03-27 | 辉达公司 | 用于平衡对具有不同存储器类型的存储器的访问的技术 |
CN103069402A (zh) * | 2010-08-31 | 2013-04-24 | 高通股份有限公司 | 多通道dram系统中的负载平衡方案 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341486A (en) * | 1988-10-27 | 1994-08-23 | Unisys Corporation | Automatically variable memory interleaving system |
JPH11338768A (ja) * | 1998-05-22 | 1999-12-10 | Nec Kofu Ltd | メモリ制御方法、メモリ制御装置及びその記録媒体 |
US7114040B2 (en) | 2004-03-02 | 2006-09-26 | Hewlett-Packard Development Company, L.P. | Default locality selection for memory objects based on determining the type of a particular memory object |
US8806103B2 (en) | 2004-04-28 | 2014-08-12 | Hewlett-Packard Development Company, L.P. | System and method for interleaving memory |
TWI299497B (en) * | 2004-06-24 | 2008-08-01 | Via Tech Inc | Method and related apparatus for accessing memory apparatus |
JP2006018489A (ja) * | 2004-06-30 | 2006-01-19 | Hitachi Ltd | 複数ノード間のメモリインターリーブシステム |
US8443162B2 (en) * | 2005-01-21 | 2013-05-14 | Qualcomm Incorporated | Methods and apparatus for dynamically managing banked memory |
US20070022261A1 (en) | 2005-07-19 | 2007-01-25 | Gateway Inc. | Method of interleaving asymmetric memory arrays |
US7552280B1 (en) * | 2006-06-28 | 2009-06-23 | Emc Corporation | Asymmetrically interleaving access to redundant storage devices |
US8095735B2 (en) | 2008-08-05 | 2012-01-10 | Convey Computer | Memory interleave for heterogeneous computing |
US20100115233A1 (en) * | 2008-10-31 | 2010-05-06 | Convey Computer | Dynamically-selectable vector register partitioning |
US8266408B2 (en) | 2009-03-17 | 2012-09-11 | Memoir Systems, Inc. | System and method for storing data in a virtualized high speed memory system |
-
2013
- 2013-10-03 US US14/045,784 patent/US9465735B2/en active Active
-
2014
- 2014-10-03 BR BR112016007344A patent/BR112016007344A2/pt not_active Application Discontinuation
- 2014-10-03 JP JP2016518727A patent/JP6378325B2/ja not_active Expired - Fee Related
- 2014-10-03 KR KR1020167011540A patent/KR20160064223A/ko not_active Application Discontinuation
- 2014-10-03 EP EP14790887.5A patent/EP3053044B1/en active Active
- 2014-10-03 CA CA2925131A patent/CA2925131A1/en not_active Abandoned
- 2014-10-03 CN CN201480054542.5A patent/CN105612501B/zh active Active
- 2014-10-03 WO PCT/US2014/058946 patent/WO2015051201A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080250212A1 (en) * | 2007-04-09 | 2008-10-09 | Ati Technologies Ulc | Method and apparatus for accessing memory using programmable memory accessing interleaving ratio information |
US20090150710A1 (en) * | 2007-12-10 | 2009-06-11 | Christoph Bilger | Memory System With Extended Memory Density Capability |
US20110047346A1 (en) * | 2009-08-19 | 2011-02-24 | Sun Microsystems, Inc. | Efficient interleaving between a non-power-of-two number of entities |
CN103069402A (zh) * | 2010-08-31 | 2013-04-24 | 高通股份有限公司 | 多通道dram系统中的负载平衡方案 |
CN102999438A (zh) * | 2011-07-26 | 2013-03-27 | 辉达公司 | 用于平衡对具有不同存储器类型的存储器的访问的技术 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109313609A (zh) * | 2016-06-27 | 2019-02-05 | 高通股份有限公司 | 用于奇数模存储器通道交织的系统和方法 |
CN109313609B (zh) * | 2016-06-27 | 2023-06-30 | 高通股份有限公司 | 用于奇数模存储器通道交织的系统和方法 |
CN112513824A (zh) * | 2018-07-31 | 2021-03-16 | 华为技术有限公司 | 一种内存交织方法及装置 |
CN112513824B (zh) * | 2018-07-31 | 2024-04-09 | 华为技术有限公司 | 一种内存交织方法及装置 |
WO2022160214A1 (zh) * | 2021-01-28 | 2022-08-04 | 华为技术有限公司 | 一种访问内存的方法和装置 |
WO2022160321A1 (zh) * | 2021-01-30 | 2022-08-04 | 华为技术有限公司 | 一种访问内存的方法和装置 |
CN114661711A (zh) * | 2022-03-11 | 2022-06-24 | 上海原能细胞生物低温设备有限公司 | 样本存储位置分配方法、装置、电子设备及存储介质 |
CN114661711B (zh) * | 2022-03-11 | 2023-08-29 | 上海原能细胞生物低温设备有限公司 | 样本存储位置分配方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CA2925131A1 (en) | 2015-04-09 |
US20150100746A1 (en) | 2015-04-09 |
EP3053044B1 (en) | 2019-11-20 |
WO2015051201A1 (en) | 2015-04-09 |
KR20160064223A (ko) | 2016-06-07 |
EP3053044A1 (en) | 2016-08-10 |
JP6378325B2 (ja) | 2018-08-22 |
CN105612501B (zh) | 2018-11-13 |
JP2016532926A (ja) | 2016-10-20 |
US9465735B2 (en) | 2016-10-11 |
BR112016007344A2 (pt) | 2017-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105612501A (zh) | 用于跨越具有非对称存储容量的多通道存储器架构对数据均匀交织的系统和方法 | |
CN103946811B (zh) | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 | |
CN105452986B (zh) | 用于具有选择性功率或性能优化的内存通道交织的系统和方法 | |
CN109690500A (zh) | 使用在以处理器为基础的系统中的空间服务质量(QoS)标记提供异质存储器系统的弹性管理 | |
US20180004659A1 (en) | Cribbing cache implementing highly compressible data indication | |
US8321636B2 (en) | Memory reallocation and sharing in electronic systems | |
CN106663458A (zh) | 在多列系统中对管芯上终结的选择性控制 | |
CN103946826A (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
US9798642B2 (en) | Method for allocating a server amongst a network of hybrid storage devices | |
CN104854572B (zh) | 用于对具有不对称存储组件的存储子系统中的存储进行动态地分配的系统和方法 | |
US9092327B2 (en) | System and method for allocating memory to dissimilar memory devices using quality of service | |
CN108701108A (zh) | 具有窄带宽中继器通道的存储器子系统 | |
KR102256441B1 (ko) | 저전력 메모리 디바이스들에 대한 공통 다이 구현 | |
CN110083555A (zh) | 具有独立接口路径的存储器设备的通用管芯实现 | |
CN103927270B (zh) | 一种面向多个粗粒度动态可重构阵列的共享数据缓存装置及控制方法 | |
US10586608B2 (en) | DRAM refresh method, apparatus, and system | |
CN101971150A (zh) | 用于存储器扩展的系统和方法 | |
CN104919439A (zh) | 用于支持基于处理器的系统中的异构存储器存取请求的异构存储器系统以及相关方法和计算机可读媒体 | |
CN108604456A (zh) | 在存储器插槽中支持多个存储器类型 | |
CN109313609A (zh) | 用于奇数模存储器通道交织的系统和方法 | |
CN104115230B (zh) | 基于高效pcms刷新机制的计算装置、方法和系统 | |
CN108780428A (zh) | 不对称存储器管理 | |
CN103942161B (zh) | 只读缓存的去冗余系统及方法以及缓存的去冗余方法 | |
CN102279818A (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
US9026714B2 (en) | Memory expansion using rank aggregation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |