CN1690982A - 用于交错存储器的系统和方法 - Google Patents
用于交错存储器的系统和方法 Download PDFInfo
- Publication number
- CN1690982A CN1690982A CNA2005100685917A CN200510068591A CN1690982A CN 1690982 A CN1690982 A CN 1690982A CN A2005100685917 A CNA2005100685917 A CN A2005100685917A CN 200510068591 A CN200510068591 A CN 200510068591A CN 1690982 A CN1690982 A CN 1690982A
- Authority
- CN
- China
- Prior art keywords
- memory
- unit
- staggered
- storer
- subclauses
- 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
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种系统可包括交错系统(18,62),它确定分布式存储器系统(12,52)的至少所选部分的期望交错。迁移系统(18,70)与交错系统关联,从而迁移数据块以实现期望交错。
Description
技术领域
本发明涉及交错存储器的系统和方法。
背景技术
在多处理器系统中,可配置存储器以提高性能。一种方法是在不同存储控制器上分布存储器,这种方法称作交错。符合需要的交错实质上在可用存储控制器上均匀地分布存储器。随着存储器更均匀地分布,大的毗连数据阵列与存储控制器的每个接触实质上相同的量。因此,通过交错存储器,存储器更均匀地分布,以便减少热点。例如,如果给定存储控制器因毗连数据的不均匀大分布在局部与给定存储控制器关联而过载,则热点可能会出现。
发明内容
本发明的一个实施例可包括一种系统,其中包括确定分布式存储器系统的至少所选部分的期望交错的交错系统。迁移系统与交错系统关联,以便移动数据块,从而实现期望交错。
本发明的另一个实施例可包括一种系统,其中包括响应激励而动态重新交错分布式存储器系统的至少所选部分以便实现期望的存储器交错的交错系统。映射系统响应与数据关联的输入而提供存储位置信息,存储位置信息根据分布式存储器系统的至少所选部分的动态重新交错来更新。
本发明的另一个实施例可包括分布式存储器多处理器系统。分布式存储器多处理器系统包括在通信上相互耦合的多个单元,多个单元的每个包括单元控制器和单元存储器,多个单元的单元存储器共同定义存储器系统。多个单元中至少一个单元的单元控制器还包括交错系统,该系统配置成通过修改存储器系统的第一存储器分布来动态交错多个单元中至少一部分的主存储器的所选存储区,以便为存储器系统提供期望的存储器交错。
本发明的另一个实施例可包括一种方法,它包括以下步骤:确定分布式存储器系统的至少所选部分的期望存储器交错,以及根据期望存储器交错将数据块从与数据块关联的第一相应存储位置移动到第二相应存储位置。
本发明的另一个实施例可包括一种分布式存储器多处理器系统,它配置成动态交错及重新交错位于分布式存储器多处理器系统的不同单元中的多个存储器模块上的存储器,其中不同的单元在通信上相互耦合。
附图说明
图1描绘用于交错存储器的系统的一个实施例。
图2描绘用于交错存储器的系统的另一个实施例。
图3描绘可实现存储器交错的计算机系统的一个示例实施例。
图4描绘交错的双单元存储器系统的单元映射的示例表示。
图5描绘在已经添加另一个单元之后图4的单元映射的表示。
图6描绘在附加存储器单元已经交错到存储器系统中之后、图5的单元映射的表示。
图7描绘在附加存储器单元已经交错到存储器系统中之后、图5的单元映射的另一个表示。
图8描绘在存储器已经从存储器系统移去之后、图6的单元映射的一个实例。
图9描绘在其余存储器单元已经重新交错之后、图8的单元映射的一个实例。
图10描绘说明一种方法的流程图。
图11描绘说明交错存储器的另一种方法的流程图。
具体实施方式
图1描绘用于交错存储器的系统10的一个示范实例。系统10可用来动态交错存储器系统12的各个部分。系统可用于分布式存储器多处理器系统的上下文中,其中,存储器系统包括在多处理器系统中分布的多个物理存储装置。
例如,一种多处理器系统是高速缓存相干性不均匀存储器存取(ccNUMA)体系结构,但其它分布式存储器多处理器体系结构也可实现本文所述的系统10。典型的ccNUMA多处理器系统包括可定义存储器系统12的多个存储器结构。存储器结构可包括在多处理器系统中的多个单元上分布的多个存储器模块(例如双列直插式存储器模块(DIMM)或单列直插式存储器模块(SIMM))。例如,一个单元可对应于例如在包含一个或多个存储器模块的单元板上实现的存储器的聚集。另外,存储器系统12可包括在多处理器系统中(例如通过操作系统)实现的虚拟存储器。
系统10包括在操作上与存储器系统12关联的控制器14。例如,控制器14可在通信上与存储器系统12中的存储器的第一子集(例如经由局部总线或互连)本地耦合,以及在通信上(例如经由背板或互连)远程耦合到存储器系统12中的存储器的一个或多个其它子集。存储器系统12的其它子集的每个可包括一个或多个存储器模块或存储器子系统。因此,多处理器系统的各相应单元可包括共同组成存储器系统12的一个或多个存储器子系统。
在包括多个单元的多处理器系统中,与控制器14类似的控制器(例如单元控制器)可用于控制多个单元中的每个。单元控制器可在通信上相互连接,以便提供对存储器系统12的分布式存储器的共享访问。例如,单元控制器可在通信上通过一个或多个一般互连或底板(例如实现为交叉开关)来连接。
控制器14与映射系统或组件16关联,例如可作为单元映射来实现。映射组件16响应与数据关联的输入而提供存储位置信息。所提供的存储位置对应于存储器系统12中的存储器的分布。也就是说,映射组件包括在逻辑上映射到存储器系统12中的物理存储位置(或存储块)的多个条目。映射组件16中的条目可用来定义存储器系统12(或存储器系统的至少一部分)上的存储段的分布。映射组件16可作为硬件、软件或硬件和软件的组合来实现。虽然映射组件16表示为与控制器14分离,但映射组件可作为控制器(例如单元板中的存储控制器)的组成部分来实现。
映射组件16可实现为具有多行和多列的表,其中,各行对应于交错条目,以及行中的各列对应于标识多处理器系统中单元之一的条目项。例如,单元映射中的每个条目可对应于相应单元中的存储器的毗连块,它可能是可配置的存储器块。不同的条目可分配给存储器系统的不同物理区域。映射组件16响应输入、例如存取数据的请求而提供数据的存储位置信息。映射组件16还可标识与输入关联的已标识单元的特定区域。输入可以是标识数据块、例如包含存储器地址或高速缓存行地址的任何输入。映射组件16中的存储段的分布可对应于至少一部分存储器系统12的存储器交错。
系统10还包括在通信上与控制器14耦合的交错块18。交错块18可用于交错存储器系统12中的存储器块。也就是说,交错块18例如通过在位于多个不同单元的存储器子系统上散布或分布存储器,动态重新交错存储器系统12的至少所选部分,以便实现期望存储器交错。交错块18可响应预定激励而实现交错(或重新交错)过程。激励可由控制器14、操作系统或者在分布式存储器系统中工作的硬件或软件组件来提供。
预定激励可以是运行时激励,例如可在分布式存储器系统的正常操作期间提供。例如,交错块18可响应向存储器系统添加存储器而重新交错存储器系统12中的存储器。作为替代或者补充,如果一个或多个存储段从存储器系统12的已交错存储器中删除,则交错块18可重新交错数据。例如,如果单元从多处理器系统中去除,或者如果一个或多个存储器模块从系统操作中去除,则存储器可被删除。对存储器系统12添加或删除存储器可伴随包括相应存储器的单元的添加或删除出现。发起存储器的重新交错的另一种可能激励对应于在存储器系统12的一个或多个现有分区之间重新分配存储器。例如,存储器系统12的给定分区最初可能包含本地存储器的某个百分比以及交错存储器的另一个百分比。交错块18可被指示或者以其它方式确定,需要本地和交错存储器的不同混合。作为补充或替代,不同分区之间存储器的分配可由交错块18来修改。
虽然交错块18表示为与控制器14分离,但交错块也可作为控制器的组成部分来实现。本领域的技术人员理解并知道,交错块18可用于响应其它各种激励,例如响应来自操作系统的适当系统命令(例如交错存储器与现有交错或未交错存储器的请求),来交错数据。由于交错不需要系统重新启动或停止系统操作,因此交错操作可在需要时实现,例如以便优化性能(例如通过提供预定激励来发起交错)。
举例来说,交错块18通过首先确定存储器系统12的期望交错来实现重新交错。这个实例假定存储器系统12组成在多个单元上分布的存储器域,它可对应于多处理器系统中存在的存储器的一部分。交错块18可包括确定期望交错的软件和/或硬件。例如,交错块18检查各单元中的可用存储器,因为可用存储器可提供在重新交错过程中移动的存储器的至少一部分的可能目的地。交错块18则标识将结合交错被移动的存储位置。例如,交错块18对迁移系统(未示出)提供所标识存储位置的指示,以便根据交错块18所确定的期望交错来移动数据。
作为另一个实例,迁移可由控制器14或取得数据块所有权的其它硬件来实现。例如,交错块18可配置成实现控制器的所选功能,在这种情况下,交错块可直接与存储器系统通信,如虚线所示。数据块则从与存储器系统12中的存储位置的第一集合关联的所选位置(例如对应于未交错或者最初交错的配置)移动到存储器系统的存储位置的第二集合中的所选目的地。数据的所得存储位置提供期望交错。
为了便于在重新交错过程中移动数据,控制器14可在其传送期间暂时阻止系统10中的其它装置对所选存储位置的存取。例如,控制器14或者实现迁移的其它系统可设置每个存储块的关联状态位,使得存储块在迁移过程中被设为“中断”。在“中断”时,存储块在迁移期间无法响应对这种存储位置上的数据的请求。本领域的技术人员会知道可用于在迁移期间阻止对存储块的存取以及接纳在交错的迁移阶段中因而可能失败的请求的各种方法。
在数据块已经从第一存储位置移动到所选目标存储位置之后,对数据的存取可重新允许。例如,控制器14可重置存储块的关联状态位。交错块18还根据迁移来更新映射组件16,使得映射组件正确地标识存储器系统12的域中的各个存储段的位置。因此,映射组件16比如响应对数据的请求(例如由处理器向控制器14发出的)来提供数据的正确位置信息(例如哪个单元以及单元的存储区)。这样,映射组件16提供信息,用于将对数据的请求路由到相对控制器14可能是本地或远程的正确单元,从而允许对这种数据的有效存取。
例如,假定微处理器(例如与控制器14关联的本地处理器或者与不同的单元控制器关联的远程处理器)发出对导致高速缓存丢失的数据的请求。这样,请求被提供给控制器14,用于存取主存储器12。控制器14可根据映射组件16中的条目将请求从处理器转发给拥有所请求数据的适当单元。与接收请求的单元关联的控制器又可通过存取驻留在这种单元中的数据来实现请求。相反,如果输入请求是对于其中微处理器共存的同一单元中的数据,则控制器14可从存储器系统12中的对应本地存储器存取数据。
通过以上所述,本领域的技术人员会理解和知道,重新交错可动态实现,而不要求重新启动或停止系统。因此,可在任何时间实现重新交错以提高性能,包括在存储器添加或删除之前或之后。另外,系统10允许在具有交错存储器的多处理器系统中的存储器的删除。
图2描绘可用于交错相关存储器系统52的一些位置的系统50的一个实例。存储器系统52可包括存储器子系统54。存储器系统52包括表示为MEM 1至MEM Q的多个存储器子系统54,其中Q是大于或等于一的正整数,表示存储器子系统的数量。存储器系统52可包括用于各相应单元的一个或多个存储器子系统54。每个存储器子系统54可包括相同或不同量的存储器,它是可配置的。
单元映射56包括表示为“条目1”至“条目M”的多个条目58,其中M是大于或等于一的整数,表示单元映射条目的数量。例如,每个条目58对应于包括一个或多个子条目60的存储区或分区。举例来说,给定条目60可对应于在关联多处理器系统中运行的操作示例(例如服务器)。不同的条目58还可用来标识本地存储位置(例如在同一个单元中)和远程存储位置(例如位于不同单元中)。各条目可包括可配置量的存储器,例如对于操作示例所要求的。
在“条目1”中,子条目60表示为S1-SN,以及对于“条目M”,相应的子条目表示为S1-SP,其中N和P为大于或等于一的整数,表示子条目的数量。N和P通常是不同的值,但它们可以相同。相应单元映射条目58中的每个子条目60对应于存储器系统52中的相应条目的存储段(存储器块)。存储器块可以是可配置的存储段。例如,各子条目60可对应于固定数量的字节、如0.5千兆字节。或者,单元映射56中的不同子条目60可对应于不同大小的存储位置。因此,单元映射56中的子条目60和条目58标识存储器的相应逻辑单元以及与存储器子系统54关联的交错。
单元映射56可实现为内容可寻址存储器(CAM)或者可用来确定数据的位置的其它结构。在多处理器系统的上下文中,单元映射56可提供作为给定数据行的标记地址的函数的位置信息,该标记地址用作由单元映射所提供的camming函数使用的搜索字段。标记地址可由在多处理器系统中实现的高速缓存相干性协议来定义。这样,单元映射56提供给定单元的指示(例如单元号)和/或与被请求的给定数据行关联的其它位置信息(例如给定单元的区域)。标记地址可作为对数据的请求(例如来自处理器或来自输入/输出装置的读或写请求)的组成部分提供给单元映射56。
系统50还包括交错系统62,它用于交错存储器系统52的一些存储位置。存储器系统52的至少一部分中的存储器的交错在相应单元映射56的各种子条目60中反映。例如,在具有四十九个条目58的单元映射56中,一个条目(例如条目M)可包括64个子条目,以及其余48个条目每个可包括16个子条目。毗连数据阵列可分布在具有各条目的不同单元的子条目之中。要理解,单元映射56可为组成存储器系统52的一个或多个存储器域提供交错信息。
交错系统62包括交错引擎64,它被编程和/或配置成控制存储器交错。响应实现存储器交错的激励,交错引擎62确定可用于交错的给定存储器域中的存储器量。可用存储器域对应于存储器系统52的至少一部分。可通过交错引擎62向存储器系统52提供系统请求以确定可用作交错过程的组成部分的各存储器子系统54中的可用(例如未使用)存储器,来执行可用存储器的确定。如本文所述,交错系统62可用于当添加或删除存储器时、例如伴随添加或删除多处理器系统的相应单元出现时,执行重新交错。另外,交错系统60可在任何时候执行交错以提高性能,例如在存储器系统52中的两个或两个以上分区之间重新分配存储器。
在确定用于交错的可用存储器的量之后,交错引擎64可聚集可用存储器的所选部分并将其分配给单元映射条目58。例如,交错引擎64可确定可用存储器的最大的二的幂,并将这种存储器分配给在条目中具有多个(例如64)子条目60的一个或多个条目58。其余可用存储器则可分配给后续其它的单元映射条目58,其中的每个可具有较小数量的子条目60(例如每个单元映射条目有16个子条目)。这样,单元映射56在存储器系统52中提供数据的地址映射,它可包含一个大单元映射条目58以及相对大条目具有更少子条目的多个较小条目58。
交错引擎64还采用重新交错算法来检查存储器系统52以及确定存储器的期望交错。交错引擎64采用交错算法根据可用于交错的存储器以及这种数据的期望交错来产生交错数据66。交错数据66指定存储器应当如何在存储器系统52中移动,以便提供交错引擎64所确定的期望交错。交错数据66可根据引起交错或重新交错出现的激励来标识存储器的分布(例如毗连存储器如何在存储器子系统54中分布)。存储器系统52的交错将根据例如一个或多个存储器子系统54是否添加到存储器系统52以及存储器子系统54是否被删除来改变。本领域的技术人员会了解可用来实现期望交错以提高性能的各种算法、例如通过减少热点。
迁移系统70用于根据交错数据66传送数据,作为交错过程的一部分。迁移系统70可作为迁移硬件组件来实现,但迁移系统也可作为软件或者软件和硬件的组合来实现。迁移系统70在操作上与多处理器系统的操作系统72关联。操作系统72可控制迁移系统70与存储器系统52之间的部分或全部交互以及系统50的其它方面与存储器系统52之间的交互。交错系统62调用迁移系统70(例如经由预定迁移指令或请求),以便使迁移与根据交错数据66实现交错共同进行。如本文所述,这可随添加或移去存储器以及例如与执行存储器优化关联的其它激励而发生。
作为一个实例,假定新的存储器(例如一个或多个子系统54)已经添加到存储器系统52,例如可响应新单元被添加到多处理器系统而发生。新单元在通信上经由互连或底板系统耦合到现有单元。交错系统62使迁移系统70能够取得添加到存储器系统52的新存储器的初始所有权。迁移系统70可用于阻止对存储器系统52的新存储器中的相应存储块的存取,直到已经完成迁移和交错。可例如通过在块的迁移过程中停止各存储块(例如高速缓存行)暂时阻止存取。因此,迁移系统70对新存储器的所有权可用来减轻竞态条件,并阻止对新存储器或者其所选部分的使用,直到已经适当地交错到存储器系统52中为止。
本领域的技术人员会理解和知道可由迁移系统70用来阻止对被交错的存储块的存取的各种机制,其中包括通常驻留在操作系统72中的机制。另外,在系统中实现的高速缓存相干性协议可将新存储器设置为忙(或者不可存取)状态,使得对数据的请求在迁移和交错完成之前被阻塞。可用来阻塞对正被交错的存储器的存取的另一种技术是把对已阻塞存储器的请求加载到队列结构中,例如可独立于主存储器系统52或者作为其组成部分来实现。在存储块被迁移系统70释放、即表明已经完成块的迁移之后,则可处理关联的被排队的请求。
迁移系统70也可执行最初交错的存储器的所选存储块的迁移。作为延续的实例,迁移系统70可向存储器系统52中的旧的或现有存储位置发出对于要与交错新存储器结合移动的这种存储器的每个块的请求。要移动的各存储块可对应于高速缓存行、多行或者对于系统50可能是适当的任何大小的块。作为迁移过程的一部分,迁移系统70存取旧的(例如先前交错的)存储器,以便得到来自被移动的存储器的所选部分的数据的当前版本。
另外,采取步骤来阻止对于从现有存储位置移动的数据的存取。例如,如果存储块已经由迁移系统70存取,则对那个存储块中的数据的所有后续请求被暂时阻止。本领域的技术人员会理解和知道,实质上用于阻塞对新存储器的存取(如上所述)的相同机制可用于阻塞对于被移动的现有存储器中的数据的存取。因此,迁移系统70得到来自现有存储块的数据的当前版本的所有权。迁移系统70又将数据传送到如交错数据66所定义的新存储器中的相应位置。
可响应接收来自现有存储器的数据而发出迁移确认,以便表明数据迁移已经成功进行。与旧存储位置关联的存储控制器可响应迁移确认而适当地将数据标记为“离去”。“离去”标记可由操作系统或高速缓存相干性协议的其它方面用来标识特定数据行不再处于旧存储位置。另外,“离去”标记还可用于对于数据已经作为存储器交错的一部分移动到的新存储位置提供指针或者对其进行标识。迁移系统70还可通知交错系统60对于给定存储块已经完成迁移,以便于对经过重新交错的数据的后续存取。
单元映射56中的条目58和子条目60还经过修改以反映所移动的数据块。例如,交错系统62或迁移系统70可向单元映射56提供更新信息。包括迁移在内的交错过程可逐个存储块地完成,直到新添加的存储器已经按照交错数据66所规定那样进行了交错。通过实现逐块迁移,本领域的技术人员会理解和知道,可移动足够小的块,以便减少对整个系统操作的影响。由于移动足够小的存储块,因此交错和迁移可在正常工作期间动态实现,而不需要系统重启或明显地影响运行时操作。
作为替代或补充,本领域的技术人员会理解,迁移系统70可采用操作系统72的适当系统支持来实现。例如,通过将所选存储块临时移动到硬盘驱动器或其它类型的存储媒体,迁移系统可经由操作系统72使用存储器系统52中的虚拟存储器。在此例中,迁移系统70可从虚拟存储器中检索数据,以便传送到根据交错数据66被移动到的期望的新存储位置。
图3描绘一个框图,说明分布式存储器多处理器系统100的一个实例。系统100包括分别表示为“单元1”、“单元2”至“单元M”的多个单元102,其中M是大于或等于一的整数,表示单元的数量。可作为单元板实现的各单元102在通信上经由互连104、例如底板或交叉开关结构耦合到其它单元。
I/O(输入/输出)子系统104与各单元102关联。I/O子系统104可为例如通过相应适配器(未示出)访问关联总线结构(例如PCI总线结构)或其它装置提供接口或路径。本领域的技术人员会理解和知道可被访问或可经由I/O子系统104访问存储器的各种I/O装置。I/O子系统104可实现为包括专用集成电路(ASIC),它提供各相应单元102与具有耦合到相应总线结构的一个或多个输入/输出装置的相应总线结构之间的接口。
另外,另一个互连108可耦合到互连104,用于访问包括一个或多个其它单元(未示出)的另一个基于单元的体系结构。其它基于单元的体系结构可类似地配置成如图3所示及所述的那样。互连108及关联单元(未示出)可用于实现更大容量的系统。但是,本领域的技术人员会理解和知道,系统100可采用任何数量的单元来实现,其中交错被实现为单元与各相应单元中的存储器的数量的函数。
为了简洁起见,只对“单元1”表示了内部内容,但本领域的技术人员会理解和知道,其它相应单元102的每个可用类似方式来实现。或者,也可相对不同单元102实现不同的配置。
来看“单元1”的内容,“单元1”包括通过关联缓冲器网络114耦合到单元存储器子系统112的单元控制器110。缓冲器网络114可包括队列(例如输入队列和输出队列),以便提供对存储器子系统112与控制器110之间的请求和响应的智能缓冲。一个或多个中央处理器(CPU)116也连接到控制器110,用于存取存储器子系统112。各CPU116可包括关联高速缓存(未示出),用于存储由CPU本地存取的数据,而不需要对存储器子系统112的存取。CPU116可实现基于目录或基于非目录的高速缓存相干性协议。在图3所示的配置中,CPU116和I/O子系统106均可以是可用于经由控制器110存取存储器子系统112中的数据的所考虑的存储器存取装置。控制器110可包括固件、配置和状态寄存器(CSR)以及用于存取存储器子系统112中的数据的排序存取队列。
存储器子系统112可包括任何数量的一个或多个存储器模块,其中包括一个或多个DIMM或SIMM存储器件。存储器模块可安装到存储器系统112中或者从其中移去。这类存储器模块的添加或移去可对应于影响系统100中的存储器域的特性的激励。如本文所述,控制器110可根据需要响应这种激励重新交错系统100中的聚集存储器。存储器域可包括存储器子系统112中的存储器以及通过互连104连接到“单元1”的其它单元102(例如“单元2”至“单元M”)中的相应存储器子系统,以及具有可经由互连108耦合的存储器的其它远程单元(未示出)。
系统100中的存储器的交错或重新交错可与结合图2所述类似地实现。简言之,响应预定激励,单元控制器110确定可用于交错的给定存储器域中的存储器的量。在确定用于交错的可用存储器的量之后,控制器110可聚集可用存储器的所选部分并将其分配给单元映射条目。单元映射提供包括存储器子系统112的域中的数据的地址映射。例如,域可包括多个单元映射条目,其中的每个具有多个子条目。如本文所述,给定单元映射条目的子条目可分布在与不同单元关联的多个存储器子系统之间,分布由期望交错来定义。
控制器110还检查存储器,并确定用于聚集存储器域的期望交错。期望交错定义被交错或重新交错的存储器域中的存储器的期望分布(例如,毗连存储器应当如何在存储器子系统之间分布)。控制器110或者与控制器关联的另一个硬件和/或软件结构用于根据所确定的期望交错来移动数据,作为交错过程的一部分。执行迁移的方式可例如根据存储器是否添加到域中、从域中删除或者交错是否因另一个原因而发起而有所不同。
包括数据迁移在内的交错过程可逐个存储块地实现,直到存储器已经按照期望交错所规定那样进行了交错。通过独立实现对每个所选存储块的迁移,本领域的技术人员会理解和知道,可选择足够小的存储块,以便减少对系统操作的影响。因此,交错和迁移可在正常操作过程中动态实现,而不需要系统重启。
为了进一步便于交错过程中的数据迁移,对各存储块的存取可被阻塞,直到迁移和交错已经完成之后。本领域的技术人员会理解和知道可用来阻止对正被交错的存储块中的数据的存取的各种机制,例如包括本文所述的那些存取阻止机制。另外,在迁移已经完成之后,指针或其它标识符可用来标识数据的新交错存储位置。迁移系统70还可通知交错系统60对于给定存储块已经完成迁移,以便于对经过重新交错的数据的后续存取。单元映射56中的条目和子条目还可经过更新以对应于所执行的存储器交错。
考虑到以上结构和功能特征,结合图4-9中所示的单元映射的表示,将会更好地理解重新交错的实例。具体来说,图4-6和图7说明重新交错与添加具有存储器的单元关联的存储器的实例,以及图6、8和9说明与存储器删除关联的重新交错的实例。
参照图4,对两个单元“单元0”和“单元1”来说明单元映射150。在本例中,各单元包括四个存储区,表示为REG 1、REG 2、REG 3和REG 4。本领域的技术人员会理解和知道,给定单元可包括任何数量的存储区,每个区域是可配置大小的存储器块。例如,每个给定的存储区可包括0.5千兆字节存储器块,但是其它大小的存储区也可使用。
在图4的实例中,“单元0”和“单元1”中的存储区被交错。具体来说,单元映射150中的最初存储器交错为各单元的每个块分配一个编号,表示为0-7,例如可对应于作为块的聚集的数据阵列(例如,对于0.5千兆字节块大小为四千兆字节数据阵列)。例如,各存储区可对应于高速缓存行的一部分、完整的高速缓存行或者一个以上高速缓存行。假定每个存储器块对应于一个高速缓存行,则每个高速缓存行可分配给单元映射150中的交错单元,以便提供期望的初始交错。例如,块0被分配给“单元0”的REG 1,块1被分配给“单元1”的REG 1,然后数据阵列重访单元0,其中,块2被分配给“单元0”的REG 2,块3被分配给“单元1”的REG 2,依此类推,如图4所示。本领域的技术人员会理解和知道,其它交错配置也可被使用。
通过另一个实例,以下等式可由单元映射用来标识用于期望存储器交错的给定高速缓存行的位置。等式中的操作数是自描述的。例如,高速缓存_行_地址可表示如下:
高速缓存_行_地址=(全局地址)右移(log2(高速缓存行大小))等式1
同样,块编号可表示如下:
块编号=高速缓存_行_地址MOD(交错方式),等式2
其中术语“交错方式”对应于标识交错方式的数量的值(例如在图4的实例中,交错方式=8)。各存储器块还可包括可在等式3中表示如下的子_块地址:
子_块_地址=高速缓存_行_地址右移(log2(交错方式))。
图5描绘单元映射152的一个实例,其中,新单元(表示为“单元2”)已经添加到图4的单元映射150所表示的系统中。“单元2”包括分配给“单元2”的相应区域REG 1-REG 4的存储器块0、1、2和3。点描法用于图5中以区分与“单元2”关联的存储器块和最初交错单元的存储器块。
在图5中,“单元2”的块没有与系统中其它单元交错。图5所示的交错配置对应于次优交错,其中,毗连存储区(例如“单元2”的2千兆字节)与系统中的其它单元实质上是未交错的。“单元2”的交错可认为是次优的。例如,可能产生与“单元2”的存储区关联的热点,因为“单元2”的单元控制器可能在存取毗连存储区(“单元2”的块0、1、2和3)中的数据时被连续激活。
图6说明可通过将“单元2”的新添加存储器与最初交错的单元、即与“单元0”和“单元1”交错来提供用于期望交错的单元映射154的一个实例。为了将“单元2”与其它单元交错,相应的交错系统检查与被交错单元关联的存储器,以便确定多少存储器量可用于重新交错。交错分布可作为交错数据存储在存储器中,并用于控制数据存储器的迁移,以便实现存储器交错。例如,为了重新交错,存储区可被交换,或者旧的存储器可在使用与“单元2”关联的新存储器之前被迁移。
图6所示的所得交错可分若干级来实现。例如,迁移首先可通过从最初交错单元“单元0”和“单元1”中的一个或两个移动存储器块来实现。重新交错还可包括在“单元0”与“单元1”之间移动数据。在图6的实例中,每个其它存储器块被分配给不同的单元,从而在相应单元、即“单元0”、“单元1”和“单元2”之间分布毗连地址空间。例如,在REG 3中,块6被分配给“单元0”,块7被分配给“单元1”,以及最初在“单元2”的REG 1(图5)中的新添加“单元2”的块0已经分配给“单元2”的REG 3。最初在“单元2”的REG 2(图5)中的下一个块1重访“单元0”,使得新添加单元2的块1被分配给“单元0”的REG 4。因此,被实现以便提供图6中的单元映射154的交错已经将作为连续存储器块的毗连存储器阵列分配给相应单元的交错单元。相应块的实际迁移可对被移动的各相应存储区的相应可配置部分或存储块(例如子块)执行,如本文所述。
图7描绘图6所示的一个备选期望交错的单元映射156的一个实例。在单元映射156中表示的交错可通过将“单元2”(如图5所示)的新添加存储器与先前交错的单元、即与“单元0”和“单元1”(如图4所示)交错来提供。图7所示的交错可实现与图6的交错配置相似的性能,但可通过比图6的实例少的迁移步骤来实现。为了实现图7的交错,交错系统确定单元(例如“单元0”、“单元1”和“单元2”)中的存储器块的期望交错分布。单元映射156中的存储器块的分布实质上与图6的单元映射154相同。为了实现重新交错以便修改图5所示的交错配置,从而提供图7的交错配置,最初在“单元0”和“单元1”的REG 4中的块6和块7与新添加的“单元2”的块0和块1交换。因此,最初分别在“单元2”的REG 1和REG 2(图5)中的块0和块1分别被移动到“单元0”的REG 4和“单元1”的REG4。通过在单元映射的单元“单元0”、“单元1”和“单元2”之间提供相似的存储器分布,这种方法能够实现与图6的交错相似的性能,但通过较少迁移步骤来实现。本领域的技术人员会知道可用于在添加存储器时提供期望交错的其它各种方法。
图6、8和9描绘可响应删除与给定单元、即“单元0”关联的地址空间而实现的重新交错的一个实例。此例以图6的单元映射154中所示的最初交错开始,并假定“单元0”将被删除。由于“单元0”对应于预定大小的地址空间(例如二千兆字节),因此交错系统指示操作系统定位在删除之后将保留的单元中实质相等大小的相应存储区。这可包括腾出将被要求实现重新交错的存储器的部分或全部。由于在本例中,各存储区被假定为相同大小,因此交错系统可指示操作系统移去与图6的阴影区域对应的交错存储器的部分,它对应于图5中添加的最初“单元2”的存储区。图8描绘重新交错的中间阶段,在其中,图6的阴影区域在准备从“单元0”迁移数据时已经从相应单元腾空。
本领域的技术人员会理解和知道,交错存储器中的任何可用(例如未使用)的存储器可腾空,以便为从被删除的单元(或多个单元)腾出的数据提供空间。在相应的存储区已经由操作系统腾出之后,“单元0”的相应存储器块这时可移入“单元1”和“单元2”的腾空区域,例如通过依次移动各存储器块的期望大小存储块(例如高速缓存行)。
如图9所示,原本在最初交错存储器的“单元0”中的存储器块0、3和6已经移动到“单元1”和“单元2”。具体来说,块0已经移动到“单元2”的REG 3,块3已经移动到“单元1”的REG 4,以及块6已经移动到“单元2”的REG 4。迁移完成了存储器重新交错,使得“单元1”和“单元2”的其余存储器实质上均匀分布。
本领域的技术人员会理解和知道,以上所述的交错系统在存储器添加或删除之前和之后实现系统的重新交错,从而提高性能。另外,交错系统对已经交错的系统允许存储器的删除。重新交错可在不需要系统重启或停机情况下实现,因为迁移在可配置的存储块中发生。
考虑到以上所述结构和功能特征,参照图10和图11,将会更好地理解某些方法。大家理解和知道,在其它实施例中,所述动作可能以不同顺序和/或与其它动作同时发生。此外,可能并非全部所述特征被要求用来实现某种方法。还要理解,以下方法可通过硬件(例如一个或多个集成电路或者包含多个微处理器的电路板)、软件(例如在一个或多个处理器或控制器中运行的可执行指令)或者它们的任何组合来实现。
图10说明一种方法200,它包括确定分布式存储器系统的至少所选部分的期望存储器交错,如210所示。方法200还包括根据期望存储器交错将数据块从与数据块关联的第一相应存储位置移动到第二相应存储位置,如220所示。
图11说明一种方法250,它可用来交错例如在分布式存储器多处理器系统中的存储器。该方法以260开始,在其中,为系统中的可用存储器提供单元映射。可作为硬件、软件或硬件和软件的组合(例如CAM存储器)实现的单元映射能够响应地址标记而标识单元和/或其它存储位置信息。例如,地址标记可在对数据的请求中提供。单元映射可包括最初交错,它可能已经通过方法250或者通过另一种方法实现,例如可在系统引导时发生。
在270,确定是否已经接收到要求实现交错的激励。例如,激励可对应于系统的存储器结构的变化,例如响应于添加或去除存储器(例如可包含在单元板中)。作为替代或补充,激励可对应于对所选存储器发起交错或重新交错的指令或命令。当没有接收到这种激励时(“否”),方法250可保持在270。当接收到这种激励时(“是”),方法进入280。
在280,确定期望交错。期望交错可包括:确定可用存储器,以及采用算法来确定存储器块的分布以提高性能并减少热点,如本文所述。自280,方法进入290。在290,存储块(“块i”)被迁移。“块i”可以是任何可配置大小(例如64字节、64千字节等)。“块i”的迁移还可涉及暂时阻塞对正被迁移的数据的存取,例如,可按照本文所述来实现。
在300,确定迁移是否完成。这种确定可根据是否要求任何附加存储块被移动以实现期望交错来进行,如280中的确定。如果迁移没有完成(“否”),则方法进入310,在其中,对于迁移存取下一个存储块。自310,方法返回到290,用于迁移下一个存储块“块i”(例如i=i+1)。由于足够小的存储块可单独移动以实现期望交错,因此对正常系统操作的影响可减小。因此,方法250可用于交错或重新交错系统中的存储器,而不需要系统重启或停止系统操作。
在300已经确定迁移已经完成之后(“是”),方法进入320,在其中,单元映射被更新。因此,有权存取单元映射的单元控制器可正确地标识数据的位置,从而有助于对这种数据的存取。例如,单元映射可标识与单元控制器驻留的相同单元中的数据的位置,或者,位置可以是要求通过一个或多个互连存取的远程位置。
以上描述的是本发明的实例。毫无疑问,为了描述本发明,不可能描述组件或方法的每种可想到的组合,但本领域的技术人员会认识到,本发明的其它许多组合和改变是可行的。因此,本发明意在包含落入所附权利要求的精神及范围内的所有这些改变、修改及变更。
Claims (10)
1.一种系统,包括:
交错系统(18,62),它确定分布式存储器系统(12,52)的至少所选部分的期望交错;以及
与所述交错系统(18,62)关联的迁移系统(18,70),它迁移数据块以实现所述期望交错。
2.如权利要求1所述的系统,其特征在于还包括映射系统(16,56),它响应与数据关联的输入而提供存储位置信息,所述存储位置信息被更新以便标识与所述期望交错对应的所述存储器系统(12,52)中的存储器分布。
3.如权利要求2所述的系统,其特征在于,所述映射系统(16,56)还包括:第一映射条目(58),其中包括与所述存储器系统(12,52)中一组单元上交错的存储段关联的多个子条目(60);以及至少第二单元映射条目(58),其中包括与所述存储器系统(12,52)中所述这组单元上交错的存储段关联的多个子条目(60)。
4.如权利要求3所述的系统,其特征在于,所述映射系统(16,56)中的每个子条目(60)对应于所述存储器系统(12,52)的相应单元中的毗连存储器地址区域。
5.如权利要求2所述的系统,其特征在于,所述映射系统(16,56)还包括多个子条目(60),各子条目对应于所述存储器系统(12,52)的多个单元之一中的相应物理位置上的可配置毗连存储区。
6.如权利要求2所述的系统,其特征在于还包括与所述存储器系统(12,52,112)关联的至少一个存储控制器(14,110),所述存储控制器根据所述映射系统(16,56)所提供的所述存储位置信息从至少一个存储位置存取数据。
7.如权利要求1所述的系统,其特征在于,所述交错系统响应预定激励而调用所述迁移系统(18,70),使得所述迁移系统根据所述交错系统(18,62)确定的期望交错,将数据块从所述存储器系统(12,52)的最初分配的相应存储位置传送到所述存储器系统的第二相应存储位置。
8.如权利要求7所述的系统,其特征在于,所述预定激励还包括由所述交错系统(18,62)在系统引导过程之后接收的运行时激励,其中,所述预定激励还包括将存储器添加到所述存储器系统(12,52)、从所述存储器系统中删除存储器以及在所述存储器系统中的分区之间重新分配存储器其中的至少一项。
9.如权利要求1所述的系统,其特征在于,对所述数据块的存取在每个相应数据块的迁移过程中被暂时阻止。
10.一种包括权利要求1的系统的分布式存储器多处理器系统(100),所述分布式存储器多处理器系统包括:
在通信上相互耦合的多个单元(102),所述多个单元中的每个包括至少一个处理器(116)、主存储器系统(112)以及单元控制器(110),相应单元(102)中的至少一个单元控制器(110)包括所述交错系统(18,62)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/833582 | 2004-04-28 | ||
US10/833,582 US8806103B2 (en) | 2004-04-28 | 2004-04-28 | System and method for interleaving memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1690982A true CN1690982A (zh) | 2005-11-02 |
CN100422959C CN100422959C (zh) | 2008-10-01 |
Family
ID=35188423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100685917A Active CN100422959C (zh) | 2004-04-28 | 2005-04-27 | 用于交错存储器的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8806103B2 (zh) |
CN (1) | CN100422959C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101918925A (zh) * | 2007-09-04 | 2010-12-15 | 先进微装置公司 | 用于处理器的高关联性高速缓存的第二次机会取代机制 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7596139B2 (en) | 2000-11-17 | 2009-09-29 | Foundry Networks, Inc. | Backplane interface adapter with error control and redundant fabric |
US7236490B2 (en) | 2000-11-17 | 2007-06-26 | Foundry Networks, Inc. | Backplane interface adapter |
US7187687B1 (en) | 2002-05-06 | 2007-03-06 | Foundry Networks, Inc. | Pipeline method and system for switching packets |
US20120155466A1 (en) | 2002-05-06 | 2012-06-21 | Ian Edward Davis | Method and apparatus for efficiently processing data packets in a computer network |
US7266117B1 (en) | 2002-05-06 | 2007-09-04 | Foundry Networks, Inc. | System architecture for very fast ethernet blade |
US7468975B1 (en) | 2002-05-06 | 2008-12-23 | Foundry Networks, Inc. | Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability |
US6901072B1 (en) | 2003-05-15 | 2005-05-31 | Foundry Networks, Inc. | System and method for high speed packet transmission implementing dual transmit and receive pipelines |
US7817659B2 (en) | 2004-03-26 | 2010-10-19 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
US8730961B1 (en) | 2004-04-26 | 2014-05-20 | Foundry Networks, Llc | System and method for optimizing router lookup |
US7657703B1 (en) | 2004-10-29 | 2010-02-02 | Foundry Networks, Inc. | Double density content addressable memory (CAM) lookup scheme |
US7480781B2 (en) * | 2004-12-30 | 2009-01-20 | Intel Corporation | Apparatus and method to merge and align data from distributed memory controllers |
US8448162B2 (en) | 2005-12-28 | 2013-05-21 | Foundry Networks, Llc | Hitless software upgrades |
US7903654B2 (en) | 2006-08-22 | 2011-03-08 | Foundry Networks, Llc | System and method for ECMP load sharing |
US8238255B2 (en) | 2006-11-22 | 2012-08-07 | Foundry Networks, Llc | Recovering from failures without impact on data traffic in a shared bus architecture |
US20080127182A1 (en) * | 2006-11-29 | 2008-05-29 | Newport William T | Managing Memory Pages During Virtual Machine Migration |
US20090279441A1 (en) | 2007-01-11 | 2009-11-12 | Foundry Networks, Inc. | Techniques for transmitting failure detection protocol packets |
US7818508B2 (en) * | 2007-04-27 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | System and method for achieving enhanced memory access capabilities |
US20080270708A1 (en) * | 2007-04-30 | 2008-10-30 | Craig Warner | System and Method for Achieving Cache Coherency Within Multiprocessor Computer System |
US7904676B2 (en) * | 2007-04-30 | 2011-03-08 | Hewlett-Packard Development Company, L.P. | Method and system for achieving varying manners of memory access |
US8271859B2 (en) | 2007-07-18 | 2012-09-18 | Foundry Networks Llc | Segmented CRC design in high speed networks |
US8037399B2 (en) | 2007-07-18 | 2011-10-11 | Foundry Networks, Llc | Techniques for segmented CRC design in high speed networks |
US8612973B2 (en) * | 2007-09-26 | 2013-12-17 | Hewlett-Packard Development Company, L.P. | Method and system for handling interrupts within computer system during hardware resource migration |
US8782779B2 (en) * | 2007-09-26 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | System and method for achieving protected region within computer system |
US8509236B2 (en) | 2007-09-26 | 2013-08-13 | Foundry Networks, Llc | Techniques for selecting paths and/or trunk ports for forwarding traffic flows |
US9207990B2 (en) * | 2007-09-28 | 2015-12-08 | Hewlett-Packard Development Company, L.P. | Method and system for migrating critical resources within computer systems |
US7979648B2 (en) * | 2008-05-30 | 2011-07-12 | Oracle America, Inc. | Dynamic interleaving |
US8090901B2 (en) | 2009-05-14 | 2012-01-03 | Brocade Communications Systems, Inc. | TCAM management approach that minimize movements |
US8599850B2 (en) | 2009-09-21 | 2013-12-03 | Brocade Communications Systems, Inc. | Provisioning single or multistage networks using ethernet service instances (ESIs) |
JP5360301B2 (ja) * | 2010-08-13 | 2013-12-04 | 富士通株式会社 | メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法 |
WO2012035616A1 (ja) * | 2010-09-14 | 2012-03-22 | 富士通株式会社 | メモリアクセス制御装置及びコンピュータシステム |
JP5712451B2 (ja) | 2011-07-28 | 2015-05-07 | ▲ホア▼▲ウェイ▼技術有限公司 | メモリ移行を実施するための方法およびデバイス |
CN103067433B (zh) * | 2011-10-24 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 一种分布式存储系统的数据迁移方法、设备和系统 |
US9104532B2 (en) * | 2012-12-14 | 2015-08-11 | International Business Machines Corporation | Sequential location accesses in an active memory device |
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 |
US9875195B2 (en) | 2014-08-14 | 2018-01-23 | Advanced Micro Devices, Inc. | Data distribution among multiple managed memories |
US10002072B2 (en) * | 2015-05-18 | 2018-06-19 | Mediatek Inc. | Method and apparatus for controlling data migration in multi-channel memory device |
US20180210836A1 (en) * | 2017-01-24 | 2018-07-26 | Microsoft Technology Licensing, Llc | Thermal and reliability based cache slice migration |
US10241561B2 (en) | 2017-06-13 | 2019-03-26 | Microsoft Technology Licensing, Llc | Adaptive power down of intra-chip interconnect |
US10684968B2 (en) | 2017-06-15 | 2020-06-16 | International Business Machines Corporation | Conditional memory spreading for heterogeneous memory sizes |
JP2021026375A (ja) * | 2019-08-01 | 2021-02-22 | 株式会社日立製作所 | ストレージシステム |
US12001332B2 (en) * | 2022-07-27 | 2024-06-04 | Dell Products L.P. | Runtime de-interleave and re-interleave of system memory |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US19751A (en) * | 1858-03-30 | Outside blinds | ||
US167383A (en) * | 1875-09-07 | Improvement in compositions for glazing roasted coffee | ||
JPH04293135A (ja) * | 1991-03-20 | 1992-10-16 | Yokogawa Hewlett Packard Ltd | メモリアクセス方式 |
US5428758A (en) * | 1991-05-10 | 1995-06-27 | Unisys Corporation | Method and system for remapping memory from one physical configuration to another physical configuration |
US5574851A (en) * | 1993-04-19 | 1996-11-12 | At&T Global Information Solutions Company | Method for performing on-line reconfiguration of a disk array concurrent with execution of disk I/O operations |
US5530837A (en) * | 1994-03-28 | 1996-06-25 | Hewlett-Packard Co. | Methods and apparatus for interleaving memory transactions into an arbitrary number of banks |
US5765182A (en) * | 1995-04-13 | 1998-06-09 | Lsi Logic Corporation | Interleaving memory on separate boards |
US5579277A (en) * | 1995-05-01 | 1996-11-26 | Apple Computer, Inc. | System and method for interleaving memory banks |
US5924111A (en) * | 1995-10-17 | 1999-07-13 | Huang; Chu-Kai | Method and system for interleaving data in multiple memory bank partitions |
US5748914A (en) * | 1995-10-19 | 1998-05-05 | Rambus, Inc. | Protocol for communication with dynamic memory |
US5940863A (en) * | 1996-07-26 | 1999-08-17 | Zenith Electronics Corporation | Apparatus for de-rotating and de-interleaving data including plural memory devices and plural modulo memory address generators |
JPH10301842A (ja) * | 1997-04-25 | 1998-11-13 | Nec Corp | メモリ制御装置 |
US6032217A (en) * | 1997-11-04 | 2000-02-29 | Adaptec, Inc. | Method for reconfiguring containers without shutting down the system and with minimal interruption to on-line processing |
US6356991B1 (en) * | 1997-12-31 | 2002-03-12 | Unisys Corporation | Programmable address translation system |
GB2388944B (en) * | 1999-02-05 | 2004-03-17 | Advanced Risc Mach Ltd | Bitmap font data storage within data processing systems |
US6393533B1 (en) * | 1999-03-17 | 2002-05-21 | Silicon Graphics, Inc. | Method and device for controlling access to memory |
CA2266283C (en) * | 1999-03-19 | 2006-07-11 | Wen Tong | Data interleaver and method of interleaving data |
US6629219B1 (en) * | 2000-03-31 | 2003-09-30 | Intel Corporation | Method and apparatus for providing highly programmable memory mapping and improved interleaving |
US6480943B1 (en) * | 2000-04-29 | 2002-11-12 | Hewlett-Packard Company | Memory address interleaving and offset bits for cell interleaving of memory |
US7167965B2 (en) * | 2001-04-30 | 2007-01-23 | Hewlett-Packard Development Company, L.P. | Method and system for online data migration on storage systems with performance guarantees |
US6874070B2 (en) | 2002-02-22 | 2005-03-29 | Hewlett-Packard Development Company, L.P. | System and method for memory interleaving using cell map with entry grouping for higher-way interleaving |
US7103728B2 (en) * | 2002-07-23 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | System and method for memory migration in distributed-memory multi-processor systems |
US7127566B2 (en) * | 2003-12-18 | 2006-10-24 | Intel Corporation | Synchronizing memory copy operations with memory accesses |
-
2004
- 2004-04-28 US US10/833,582 patent/US8806103B2/en active Active
-
2005
- 2005-04-27 CN CNB2005100685917A patent/CN100422959C/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101918925A (zh) * | 2007-09-04 | 2010-12-15 | 先进微装置公司 | 用于处理器的高关联性高速缓存的第二次机会取代机制 |
CN101918925B (zh) * | 2007-09-04 | 2017-05-03 | 先进微装置公司 | 用于处理器的高关联性高速缓存的第二次机会取代机制 |
Also Published As
Publication number | Publication date |
---|---|
CN100422959C (zh) | 2008-10-01 |
US20050246508A1 (en) | 2005-11-03 |
US8806103B2 (en) | 2014-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1690982A (zh) | 用于交错存储器的系统和方法 | |
CN111801659B (zh) | 存储器系统中的数据存取及通信的优化 | |
US11543997B2 (en) | Memory system and method for controlling nonvolatile memory | |
US9652379B1 (en) | System and method for reducing contentions in solid-state memory access | |
JP7159069B2 (ja) | メモリシステムおよび制御方法 | |
US11144451B2 (en) | Memory system and method for controlling nonvolatile memory | |
US9009397B1 (en) | Storage processor managing solid state disk array | |
US8131969B2 (en) | Updating system configuration information | |
CN1159651C (zh) | 对数据存储库中的具有冗余拷贝的数据卷的平衡存取 | |
CN114402282B (zh) | 存取存储的元数据以识别存储数据的存储器装置 | |
US12093172B2 (en) | Memory system and method of controlling nonvolatile memory | |
CN102150147A (zh) | 存储器服务器 | |
KR20100116396A (ko) | 컨트롤러, 이를 포함하는 데이터 저장 장치 및 데이터 저장 시스템, 및 그 방법 | |
CN101042679A (zh) | 维护存储器一致性的方法和系统 | |
CN1841330A (zh) | 用于管理多节点smp系统的方法和系统 | |
US20170286313A1 (en) | Method and apparatus for enabling larger memory capacity than physical memory size | |
JP2019133391A (ja) | メモリシステムおよび制御方法 | |
CN1260656C (zh) | 能够使用虚拟存储器处理模式的数据处理系统 | |
JP2021033845A (ja) | メモリシステムおよび制御方法 | |
JP2003099384A (ja) | 負荷分散システム、負荷分散システムのホストコンピュータ、及び負荷分散プログラム | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
CN1957334A (zh) | 用于总线设备的隔离存储器机制 | |
CN114356800A (zh) | 平衡存储器部分访问 | |
CN1282087C (zh) | 远程数据存取方法及使用该方法的计算机 | |
JP7281585B2 (ja) | メモリシステム |
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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170120 Address after: American Texas Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Patentee before: Hewlett Packard Development Co. |