CN105940386A - 在存储器之间移动数据 - Google Patents
在存储器之间移动数据 Download PDFInfo
- Publication number
- CN105940386A CN105940386A CN201480074651.3A CN201480074651A CN105940386A CN 105940386 A CN105940386 A CN 105940386A CN 201480074651 A CN201480074651 A CN 201480074651A CN 105940386 A CN105940386 A CN 105940386A
- Authority
- CN
- China
- Prior art keywords
- memorizer
- memory
- data
- processor
- moved
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种系统包括多个存储器。多个存储器中的至少一个存储器的存取使用包括存储器控制器及分开的介质控制器的接口子系统,该存储器控制器用于发布事务级存取请求。该介质控制器与至少一个存储器相关联,并且响应于该事务级存取请求产生根据至少一个存储器的规范的至少一个命令。数据从多个存储器中的第一存储器移动至多个存储器中的第二存储器,而在移动期间该数据不穿过该处理器中的高速缓存。
Description
背景技术
系统可包括可储存数据的存储器。系统中的处理器可使得数据读取自或写至存储器。系统可包括多个存储器。在一些示例中,多个存储器可为不同类型的存储器。在进一步示例中,多个存储器可位于不同存储器层。
附图说明
一些实施方式关于下图来描述。
图1为依据一些实施方式的示例系统的框图。
图2至图4为包括不同存储器拓扑结构的不同示例系统的框图。
图5为依据一些实施方式的存储器处理的流程图。
图6至图7为图示依据一些实施方式的存储器移动的示意图。
具体实施方式
在包括多个存储器的系统(计算机系统、通信系统、储存系统等)中,多个存储器可具有不同特性,诸如不同延迟、不同带宽、不同耐用性等。延迟可指完成有关存储器的存储器操作时由处理器经历的时间量。带宽可指在处理器与存储器间传送数据的数据速率。不同延迟和/或不同带宽可因存储器的不同存取速度和/或存储器的不同输入/输出(I/O)宽度所引起。举例言之,静态随机存取存储器(SRAM)具有比动态随机存取存储器(DRAM)更快的存取速度。存储器的输入/输出(I/O)宽度可指存储器的I/O数据接脚的数目。举例言之,假设第一及第二存储器具有相等存取速度,则与具有较少数目的I/O数据接脚的第二存储器相比,具有较大数目的I/O数据接脚的第一存储器通常可提供减少的延迟和/或增加的带宽。
不同类型(或技术)的存储器也可具有不同的耐用性。耐用性可表示为在存储器变成不可信赖之前该存储器所能接受的写入周期数目。举例言之,闪存具有比DRAM或SRAM更低的耐用性。
除了前文之外,不同存储器也可具有可能不同的其它特性,诸如可靠性(较可靠的存储器可具有较低的错误率)、成本、储存容量等。
可有可包括在系统中的多种不同类型的存储器,诸如依据下列技术的任何存储器或其一些组合:SRAM、DRAM、闪存、相变存储器、自旋矩阵存储器、忆阻器存储器、基于磁盘的存储器、基于光盘的存储器等。
除了包括不同类型的存储器外,存储器布置也可具有相对于处理器以不同拓扑结构布置的存储器。举例言之,一些存储器可比其它存储器更远离处理器。可替代地,第一组存储器和处理器间的路径(或多路径)可具有与第二组存储器和处理器间的路径(或多路径)不同数目的交换(例如,切换)。在一些示例中,存储器布置也可包括多个存储器层。第一存储器层可最靠近处理器,而第二存储器层可较远离处理器。一般而言,远离(或有较多交换数目远离)处理器的存储器具有比接近(或有较少交换数目远离)处理器的存储器增加的延迟(耗用较长时间以从此种存储器存取数据)。又,在一些情况下,在不同存储器层处的存储器可为不同类型的存储器。举例言之,较接近处理器的存储器层可包括具有较高存取速度及较大耐用性的存储器,而较远离处理器的另一存储器层可包括具有较慢存取速度及较低耐用性的存储器。包括具有各种不同特性的存储器的存储器布置可提供相当大的储存容量,但因该存储器布置中的不同存储器特性不一致故可能有问题。各种问题的示例如上被讨论。
举例言之,若在具有较大延迟及较小带宽的第一存储器中的数据比在具有较小延迟及较大带宽的第二存储器中的数据更频繁地存取,则系统性能可能受影响。作为另一示例,频繁写入发生在具有减低耐用性的存储器可能造成此种存储器较快损耗。
为了解决前述问题中的一些,可在包括多个存储器的存储器布置中进行数据移动。举例言之,频繁更新的数据可从具有较低耐用性的第一存储器迁移至具有较高耐用性的第二存储器。作为另一示例,频繁存取的数据可从较慢存储器迁移至较快存储器。
也可进行存储器间的数据移动用于其它目的。举例言之,为了服务或置换特定存储器,储存在该特定存储器中的数据可首先迁移至另一存储器。作为另一示例,第一类型的存储器可具有允许该第一类型的存储器针对给定工作负载提供比另一类型的存储器更好性能的特性;在此种情况下,迁移数据至第一类型的存储器可提升系统性能。
依据一些实施方式,为了提供提升的性能,可完成存储器间的数据移动,而被移动的数据不穿过处理器的高速缓存。若被移动的数据必须穿过处理器的高速缓存,则可能导致数项问题。举例言之,使被移动的数据通过处理器的高速缓存可能导致该处理器的功耗增加。此外,数据可能必须从高速缓存中迁离以便高速缓存有空间可给被移动的数据。迁离数据耗时,原因在于此等数据须被写至较慢的存储器。再者,迁离的数据不再为高速缓存所用以满足随后的存取请求,在该种情况下,此等随后的存取请求将须从较慢的存储器予以满足。
此外,数据移动的执行也可没有被移动的数据穿过任何输入/输出(I/O)子系统(例如包括直接存储器存取(DMA)控制器的I/O子系统),及没有被移动的数据穿过任何包括二次储存介质(与存储器布置分开)的储存子系统,其中该二次储存介质例如可包括基于盘的储存介质。
图1为示例系统100的框图,系统100包括处理器102及各种存储器模块104。各个存储器模块104包括一个或多个存储器108。“存储器”可指用以储存数据的储存单元的物理或逻辑布置。虽然图1中描绘出两个存储器模块104,但须注意,在其它示例中,只有一个存储器模块或多于两个存储器模块可存在于系统100中。又,系统100可包括多于一个处理器102。
处理器102包括可储存从存储器装置104读取的数据的高速缓存106。储存于高速缓存106的数据可比来自存储器模块104的相对应数据更快速地被存取。若处理器102能够响应于从高速缓存106取回数据的请求,则处理器102将无需从较慢的存储器模块104取回数据。
处理器102进一步与存储器控制器112相关联,存储器控制器112与分开的介质控制器110交互,介质控制器110与存储器模块104中的每个相关联。存储器控制器112可为处理器102的部件或可与处理器102分开。类似地,每个介质控制器110可为各个存储器模块104的部件或可与各个存储器模块104分开。
存储器控制器112与介质控制器110一起形成接口子系统114。通过使用接口子系统114,与处理器102相关联的存储器控制器112无需考虑根据各个存储器108的规范发布命令。举例言之,存储器108可与一规范相关联,该规范管控特定命令(其可呈信号形式)及此等用以执行存储器108中的数据的存取(读取存取或写入存取)的命令的时序。存储器控制器112可发布与管控特定存储器108的存取无关的事务级请求。事务级请求为在事务级处读取数据、写入数据、或执行其它存储器操作的请求。事务可指能够响应于请求所执行的操作的单元。事务级请求并不包括根据欲被存取的存储器的规范的命令。
来自存储器控制器112的事务级请求由相应的介质控制器110接收,介质控制器110能够通过产生根据管控目标存储器108的存取的规范的命令而响应于该事务级请求。举例言之,该命令可为读取命令、写入命令、或具有根据该规范的格式及时序的其它类型命令。除了产生响应于来自存储器控制器112的事务级请求的命令之外,介质控制器110也能够执行有关存储器108的其它任务。举例言之,若存储器108以DRAM来实现,则介质控制器110能够执行有关该DRAM的再新操作。DRAM中的储存单元随着时间的推移而逐渐地丧失其电荷。为了解决储存单元内的电荷逐渐丧失,DRAM可定期再新,以恢复储存单元的电荷至其相应的水平。
在其他示例中,若存储器108以闪存来实现,则介质控制器110能够包括用于在存储器108的储存单元间均摊损耗的损耗均匀逻辑。此外,介质控制器110能够执行有关存储器108的其它特定介质操作,诸如数据完整性操作(例如错误检测及校正)、数据可用性操作(例如在存储器错误的情况下的故障切换)等。介质控制器110也能执行电力管理(例如当不使用时减低存储器108的功率设定)、统计资料收集(以收集该存储器在操作期间的统计数据)等。
接口子系统114将存储器控制分开(物理上或逻辑上)成两部分:存储器控制器112及介质控制器110。注意,存储器控制器112和介质控制器110可为物理上分开的装置或可为同一个装置的部件。通过将存储器控制分成两部分,可在包括不同类型存储器的系统100中实现更好的灵活性。存储器控制器112无需考虑所使用的存储器的特定类型,原因在于由存储器控制器112所发布的事务级请求将相同,而与所指向的存储器类型无关。通过将存储器控制器112从介质控制器110分离,可简化存储器控制器112的开发。
系统100也包括用于控制数据在存储器108间的移动的移动控制实体116。举例言之,移动控制实体116可呈在处理器102上执行的机器可执行指令的形式。作为另一个示例,移动控制实体116可为可与处理器102分开的存储器管理实体(图1中未示出但容后详述)的部分。移动控制实体116可启动数据移动。可替代地,移动控制实体116可从处理器102或另一实体接收请求以启动数据移动。
移动控制实体116能够执行数据从第一存储器至第二存储器的移动,其中第一及第二存储器可为不同存储器模块104的部分或为相同存储器模块104的部分。数据从第一存储器至第二存储器的移动可由移动控制实体116执行,而被移动的数据不穿过处理器102的高速缓存106。
虽然在图1中未示出,但一个或多个I/O子系统也可包括在系统100中,其中一个或多个I/O子系统可以能够存取存储器108,诸如通过使用DMA控制器。此外,包括二次储存介质(与存储器模块104分开)的一个或多个储存子系统可存在于系统100中。数据可在存储器108与储存子系统间转移。但如前记,可完成如通过移动控制实体116在存储器间执行的数据移动,而被移动的数据不穿过I/O子系统及储存子系统中的任一者。
图2为根据第一拓扑结构的示例系统200的框图。示例系统200包括处理器202,处理器202各自包括相应的高速缓存203。应用程序204包括在处理器202上可执行的机器可读取指令。又,可提供虚拟到物理映射206,其中此映射206可为系统200的操作系统(OS)的部分。虚拟到物理映射将虚拟地址(由应用程序204使用)转译成与存储器地址相对应的物理地址。
每个处理器202与相应的存储器控制器208(类似于图1的存储器控制器112)相关联。存储器控制器208包括存储器接口210,存储器接口210可包括管控物理信号在存储器控制器208与相应的存储器模块(例如存储器模块212中之一)间的链路上的通信的物理层。存储器接口210也能包括控制信息在存储器控制器208与相应的存储器模块212间的链路上的通信的一个或多个其它层。
类似地,每个存储器模块212包括存储器接口214,存储器接口214与存储器控制器208的存储器接口210交互。存储器接口214包括在相应的介质控制器216中。存储器接口214也可包括物理层以及一或多个其它层。
在图2的示例中,存储器模块212为一个存储器层的部分。在一些实施方式中,系统200可只包括存储器模块的单个存储器层。在其它实施方式中,系统200可包括至少一个额外的存储器层220,其可包括附加的存储器模块。
在一些示例中,在存储器控制器208的存储器接口210与介质控制器216的存储器接口214间的链路可为串联链路。在其它示例中,该链路可为不同类型的链路。又,虽然未示出,但链路可包括一个或多个交换器以路由在存储器控制器208与介质控制器216间的事务。
在图2的示例中,两个存储器模块212联接至每个相应的处理器202。在其它示例中,可提供存储器模块212与处理器202间的其它连接布置。
移动控制实体116可执行在同一存储器层的存储器间或在不同存储器层的存储器间数据的移动。
图3为另一个示例系统300的框图,如同关联图2描述的,系统300同样包括应用程序204、虚拟到物理映射206、及处理器202和存储器控制器208。
但在系统300中,存储器管理实体302被设置在存储器控制器208与存储器模块308的布置间,从处理器202的观点来看,存储器模块308形成可经由存储器管理实体302存取的存储器的集合。存储器模块304可包括在一个存储器层中或多个存储器层中。
存储器管理实体302包括介质控制器304,介质控制器304具有用以与存储器控制器208通信的相应存储器接口306。响应于来自存储器控制器的事务级请求,存储器管理实体302中的介质控制器304可存取一个或多个存储器模块308。
存储器管理实体302也包括移动控制实体116,移动控制实体116可执行数据在存储器模块304间的移动。
图4为另一个示例系统400的框图,系统400与系统300的差异在于虚拟到物理映射306已经从图3中的OS移动至图4中的存储器管理实体402。存储器管理实体402包括与存储器管理实体302相似的功能,除了存储器管理实体402进一步包括虚拟到物理映射206。
图5为依据一些实施方式的可由系统(例如系统100至400中的任一者)执行的过程的流程图。处理器(例如图1中的102或图2至图4中的202)存取(在502处)多个存储器中的至少一个存储器的数据,其中该存取使用包括存储器控制器112及分开的介质控制器110的接口子系统(例如图1中的114)。
启动从存储器中的第一存储器至存储器中的第二存储器的数据移动(在504处)。该启动可通过在处理器上执行的机器可执行指令或通过移动控制实体116来执行。响应于该启动,数据从第一存储器移动(在506处)至第二存储器,而在移动期间,数据不穿过在处理器102内的高速缓存(例如图1中的106或图2至图4中的203)。
在前文讨论的示例系统中的任一者内可执行若干类型的数据移动。第一类型的数据移动为处理器可见的数据移动。处理器可见的数据移动是指在处理器(例如102或202)上执行的机器可执行指令的控制下的移动。第二类型的数据移动为处理器透明的数据移动,其中移动在与处理器分开的实体(例如分别为图3或图4中的存储器管理实体302或402)的控制下。处理器透明的数据移动对于处理器是透明的;换言之,该系统中的处理器并不知晓数据移动。
图6为依据一些实施方式的包括处理器可见的存储器数据移动的示例存储器操作的示意图。例如,处理器可见的存储器数据移动可使用图2的系统200来执行。在图6中,假设应用程序C在处理器上执行且正存取来源存储器中的页面的数据。页面可指在存储器中具有特定大小的段。在图6的示例中,被存取的在来源存储器中的页面具有物理地址13。在来源存储器中的页面可称作为来源页面13。
初始地,应用程序C被指示为具有正常操作状态(椭圆形602)。当应用程序C在正常操作状态时,应用程序C可正常地存取页面13(换言之,可满足应用程序C的存取请求而不遭致因数据移动所导致的延迟)。如在椭圆形604中指示的,来源存储器中的来源页面初始被标记为具有正常操作状态(意味着此页面目前未被移动)。
后来,应用程序C(或其它实体)可决定将来源页面13从来源存储器移动至目的地存储器。响应于启动来源页面13的移动,来源页面13被标记为具有活动的移动状态(椭圆形606),以指示来源页面13正在被移动或即将被移动。又,执行处理器高速缓存刷新(椭圆形608),以将高速缓存(106或203)中来源页面13的任何修改后的数据刷新至来源存储器,从而确保被移动的来源页面13的版本为最新版本。应用程序C对来源页面13写入的任何随后尝试将导致一陷阱(609),该陷阱造成在执行页面写入请求时的延迟。响应于该陷阱(609),应用程序C的状态改变成陷阱状态(椭圆形610)。在该陷阱状态下,应用程序C可进入休眠以等待来源页面13的移动完成。
在替代示例中,替代响应于该陷阱(609)应用程序C过渡至休眠状态,可产生因随后页面写入所致的已更新页面的复本,而此已更新页面的复本可用于在移动完成之后更新在目的地存储器中的被移动页面。
注意,在进一步示例中,若来源页面13可被分割成多个块使得移动逐块被执行,则允许应用程序C正常地存取不正在积极被移动的来源页面13的那些块。唯有通过应用程序C存取正在积极被移动的块才会导致陷阱(609)。
一旦处理器高速缓存106刷新(椭圆形608)的刷新已经完成,可启动页面复制操作(611)以将来源页面13复制至目的地存储器。注意,以一页为基础,该页面复制操作(611)可为整个来源页面13,或以逐块为基础,为来源页面13的块。在图6的示例中,在目的地存储器中的被移动页面具有物理地址113(称作目的地页面113)。在页面可被分割成多个块的实施方式中,移动可以逐块执行,使得将页面从来源存储器复制至目的地存储器是迭代复制操作,其中块顺序地从来源存储器复制至目的地存储器。在移动期间,不正在积极被移动的块可被更新,其后被移动页面可复制至目的地存储器。
当页面复制操作(611)正在进行时,目的地页面113具有活动的移动状态。一旦移动完成,目的地页面113改成正常操作状态(椭圆形614),在此点,应用程序C也可改成正常操作状态(椭圆形616)。在此状态下,应用程序C可在目的地存储器中执行目的地页面113的正常存取。
一旦页面已经成功地移动,虚拟到物理映射206(图2)可被更新,以反映与被移动页面相对应的虚拟地址现在被映射成目的地存储器中的物理地址113(而非来源存储器中的物理地址13)。又,来源存储器中的来源页面13被释放,且来源页面13的状态改成自由态(椭圆形618)以指示来源页面13可用于被映射成另一虚拟地址。
在可替代实施方式中,可进行处理器透明的存储器数据移动,其使用图3或图4的拓扑结构可能达成,其中移动控制实体116在存储器管理实体302或402中。代替机器可执行指令驱动存储器数据移动,由存储器管理实体302或402驱动存储器数据移动。
在存储器数据移动由存储器管理实体302或402控制的实施方式中,在移动进行之前,无需出现处理器102的高速缓存106的刷新。此外,移动也可以以更精细的粒度(比页面层级更细)进行。
例如,存储器管理实体302或402中的移动控制实体116可以逐块进行存储器数据移动。
当存储器管理实体302或402中的移动控制实体116决定或被指示移动存储器数据的页面时,存储器管理实体302或402可决定该页面欲移动至的目的地存储器。根据一或多个标准,目的地存储器可选自多个候选存储器。该标准可根据存储器的存取速度、存储器的耐用性、存储器的层级、或存储器的其它特性。
图7示出依据一些实施方式的包括数据的处理器透明移动的示例存储器操作。图7的存储器操作假设依据图3或图4的系统拓扑结构,其中存储器管理实体302或402设置在与处理器相关联的存储器控制器与存储器模块之间。
初始地,应用程序C具有允许应用程序C以正常方式存取来源存储器中的页面的正常操作状态(椭圆形702)。在存储器管理实体(302或402)处,由应用程序C所存取的来源页面具有地址15(称作来源页面15)。但该来源页面在来源存储器的实际物理地址为115(称作来源页面115)。在移动之前,来源页面15(在存储器管理实体处)及来源页面115(在来源存储器处)两者具有正常操作状态(分别为椭圆形704及706)。
为了将来源页面从来源存储器移动至目的地存储器,来源页面13及来源页面113两者可被标记为具有活动的移动状态(分别为椭圆形708及710)。但因移动为由存储器管理实体所控制的处理器透明移动,所以在来源页面的移动期间针对接收自应用程序C的任何请求无需发生陷阱。结果,在来源页面的移动期间,应用程序C可维持在正常操作状态(椭圆形712)。在来源页面的移动期间,应用程序C可继续执行来源页面的正常存取。
也须注意,在图7中的移动之前,与被移动数据相对应的处理器高速缓存内容无需被刷新。存储器管理实体知晓在处理器高速缓存中的被移动页面的修改后数据,故在移动之前无需先刷新。
来源页面115从来源存储器移动至目的地存储器可以通过块复制操作(714)逐块地完成。被移动的来源页面具有在目的地存储器中的物理地址1115(称作目的地页面1115)。在移动期间,目的地页面1115具有活动的移动状态(椭圆形716)。
在移动期间,若写入请求指向来源页面的不正在积极地从来源存储器复制至目的地存储器的块,则可正常处理该写入请求。但若该写入请求指向来源页面的正在积极被复制的块,则该写入请求可被延迟直到该块复制完成为止,或该请求可被记录,以供一旦该块复制完成,随后由存储器管理实体回放(椭圆形718)。在指向正在积极被复制的块的写入请求被延迟的示例中,应用程序C可经历在完成写入请求时的略为延迟。
当来源页面的每个块被移动时,存储器管理实体可更新其记录以反映该块的新物理位置。
一旦页面移动完成,则应用程序C可执行目的地存储器中的目的地页面1115的正常存取。在移动之后,应用程序C仍然存取在存储器管理实体处的来源页面15。但被存取的实际页面是在目的地存储器中的目的地页面1115。如图7中描绘的,来源页面15及目的地页面1115中每个的状态已经改成正常操作状态(分别为椭圆形720及722)。
一旦页面已经完成移动,则存储器管理实体可释放来源页面115在来源存储器(其状态已经改成自由态,如椭圆形724中描绘的)中。
存储器间的数据移动可使用不同类型的操作来实现。此等操作可包括读取请求及写入请求以将数据从来源存储器转移至目的地存储器。可替代地,该等操作可包括缓冲器复制请求以将数据从一个缓冲器复制至另一个缓冲器。
前文讨论的移动控制实体116可在硬件中实现,或被实现为硬件与机器可执行指令的组合。可加载指令以在处理器上执行。处理器可包括微处理器、微控制器、处理器模块或子系统、可编程集成电路、可编程门阵列、或者其它控制或计算装置。
指令可储存在一个或多个计算机可读的或机器可读的储存介质内。该储存介质包括不同形式的存储器,包括:半导体存储器装置,诸如动态或静态随机存取存储器(DRAM或SRAM)、可擦除可编程只读存储器(EPROM)、可电气擦除可编程只读存储器(EEPROM)及闪存;磁盘,诸如固定盘、软盘及可移动盘;其它磁性介质,包括磁带;光学介质,诸如光盘(CD)或数字视频盘(DVD);或其它类型的储存装置。注意,前文讨论的指令可提供在一个计算机可读的或机器可读的储存介质上,或可替代地,可提供在分布于具有可能的多个节点的大型系统中的多个计算机可读的或机器可读的储存介质上。此(等)计算机可读的或机器可读的储存介质被视为物品(或制造品)的部分。物品或制造品可指任何制造的单个组件或多个组件。该(等)储存介质可位于运行机器可读指令的机器内,或可位于远程站点处,从该远程站点可通过网络下载机器可读命令用于执行。
在前文描述中,陈述了无数细节以提供对此处公开的主题的理解。但可无此等细节中的一些来实践实施方式。其它实施方式可包括与前文讨论的细节的修改及变化。意图所附权利要求涵盖此等修改及变化。
Claims (15)
1.一种方法,包括:
由系统中的处理器存取多个存储器中的至少一个存储器的数据,所述存取使用包括存储器控制器和分开的介质控制器的接口子系统,所述存储器控制器与所述处理器相关联,且用于发布事务级存取请求,并且所述介质控制器与所述至少一个存储器相关联,且用于响应于所述事务级存取请求产生根据所述至少一个存储器的规范的至少一个命令;及
在所述系统中将数据从所述多个存储器中的第一存储器移动至所述多个存储器中的第二存储器,而在所述移动期间所述数据不穿过所述处理器中的高速缓存。
2.如权利要求1所述的方法,其中将所述数据从所述第一存储器移动至所述第二存储器包括:将所述数据从根据第一技术的所述第一存储器移动至根据第二不同技术的所述第二存储器。
3.如权利要求1所述的方法,其中将所述数据从所述第一存储器移动至所述第二存储器包括:将所述数据从在第一存储器层处的所述第一存储器移动至在第二不同存储器层处的所述第二存储器。
4.如权利要求1所述的方法,其中所述移动通过由所述处理器可执行的机器可读指令来控制。
5.如权利要求1所述的方法,其中所述移动由与所述处理器分离的存储器管理实体来控制,并且所述移动对于所述处理器是透明的。
6.如权利要求1所述的方法,进一步包括:
启动所述数据的移动,其中所述移动响应于所述启动;并且
响应于所述启动,将所述高速缓存中的内容的一部分刷新至所述第一存储器,所述刷新在所述移动之前执行。
7.如权利要求1所述的方法,进一步包括:
将所述数据标记为处于活动的移动下;并且
响应于从应用程序接收对所述数据的写入,使所述应用程序处于陷阱状态。
8.如权利要求1所述的方法,其中移动所述数据包括逐块移动所述数据的块,所述方法进一步包括:
响应于接收指向所述块中的积极被移动的块的第一请求,延迟所述第一请求的处理直到所述积极被移动的块的移动完成;并且
响应于接收指向来自所述块中的未被积极移动的块的第二请求,处理所述第二请求而不延迟所述第二请求。
9.如权利要求8所述的方法,其中延迟所述第一请求的处理包括记录所述第一请求以用于随后回放。
10.一种系统,包括:
包括高速缓存的处理器;
多个存储器;
接口子系统,包括与所述处理器相关联的存储器控制器、及与所述多个存储器中的至少一个存储器相关联的介质控制器,所述存储器控制器用于发布与管控所述至少一个存储器的存取的规范无关的事务级存取请求,并且所述介质控制器用于响应于所述事务级存取请求产生根据所述规范的至少一个命令;以及
移动控制实体,用于将数据的页面从所述多个存储器中的第一存储器移动至所述多个存储器中的第二存储器,而所述数据的页面不穿过所述处理器的所述高速缓存。
11.如权利要求10所述的系统,其中所述移动控制实体包括在所述处理器上可执行的机器可读指令。
12.如权利要求10所述的系统,其中所述移动控制实体为与所述处理器分离的存储器管理实体的部分。
13.如权利要求10所述的系统,其中所述数据的页面从根据第一技术的所述第一存储器移动至根据第二不同技术的所述第二存储器。
14.如权利要求10所述的系统,其中所述数据的页面从在第一存储器层处的所述第一存储器移动至在第二不同存储器层处的所述第二存储器。
15.一种包括至少一个机器可读储存介质的物品,所述介质储存指令,所述指令在执行时使得系统:
启动在包括多个存储器的系统中的数据移动,其中在所述多个存储器中的至少一个存储器中的数据存取使用包括存储器控制器及分开的介质控制器的接口子系统,所述存储器控制器与处理器相关联,且用于发布事务级存取请求,并且所述介质控制器与所述至少一个存储器相关联,且用于响应于所述事务级存取请求产生根据所述至少一个存储器的规范的至少一个命令;并且
将数据从所述多个存储器中的第一存储器移动至所述多个存储器中的第二存储器,而在所述移动期间所述数据不穿过所述处理器中的高速缓存,并且所述数据不穿过所述系统中的任何输入/输出子系统及所述系统中的包括二次储存介质的任何储存子系统。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/013738 WO2015116080A1 (en) | 2014-01-30 | 2014-01-30 | Migrating data between memories |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105940386A true CN105940386A (zh) | 2016-09-14 |
CN105940386B CN105940386B (zh) | 2019-12-17 |
Family
ID=53757490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480074651.3A Active CN105940386B (zh) | 2014-01-30 | 2014-01-30 | 用于在存储器之间移动数据的方法、系统和介质 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10061532B2 (zh) |
CN (1) | CN105940386B (zh) |
TW (1) | TWI541822B (zh) |
WO (1) | WO2015116080A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019162779A1 (en) * | 2018-02-21 | 2019-08-29 | International Business Machines Corporation | Data storage system performing data relocation based on temporal proximity of accesses |
CN110809874A (zh) * | 2018-08-24 | 2020-02-18 | 深圳市大疆创新科技有限公司 | 数据的同步方法及系统、可移动平台和可读存储介质 |
CN110941390A (zh) * | 2018-09-21 | 2020-03-31 | 三星电子株式会社 | 存储设备 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10248331B2 (en) | 2014-07-23 | 2019-04-02 | Hewlett Packard Enterprise Development Lp | Delayed read indication |
WO2017111887A1 (en) | 2015-12-21 | 2017-06-29 | Hewlett Packard Enterprise Development Lp | Memory throttling |
US10642727B1 (en) * | 2017-09-27 | 2020-05-05 | Amazon Technologies, Inc. | Managing migration events performed by a memory controller |
US10860244B2 (en) * | 2017-12-26 | 2020-12-08 | Intel Corporation | Method and apparatus for multi-level memory early page demotion |
US11620233B1 (en) * | 2019-09-30 | 2023-04-04 | Amazon Technologies, Inc. | Memory data migration hardware |
CN114860163B (zh) * | 2020-04-28 | 2023-08-22 | 华为技术有限公司 | 一种存储系统、内存管理方法和管理节点 |
US11656979B2 (en) * | 2020-12-22 | 2023-05-23 | SK Hynix Inc. | Data tiering in heterogeneous memory system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040133756A1 (en) * | 2003-01-03 | 2004-07-08 | Shaw Mark E. | System and method for migrating data between memories |
CN101218557A (zh) * | 2005-07-05 | 2008-07-09 | 国际商业机器公司 | 用于存储器迁移的系统和方法 |
CN101324867A (zh) * | 2007-06-16 | 2008-12-17 | 深圳市硅格半导体有限公司 | 基于半导体存储介质的数据管理装置及管理方法 |
CN101369451A (zh) * | 2007-08-14 | 2009-02-18 | 三星电子株式会社 | 固态存储器、包含其的计算机系统和操作其的方法 |
CN102498466A (zh) * | 2009-09-14 | 2012-06-13 | 国际商业机器公司 | 数据存储实体之间的数据迁移 |
US20130268739A1 (en) * | 2011-12-01 | 2013-10-10 | Saurabh Gupta | Hardware based memory migration and resilvering |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6874065B1 (en) | 1999-02-26 | 2005-03-29 | Hewlett-Packard Development Company, L.P. | Cache-flushing engine for distributed shared memory multi-processor computer systems |
US6745294B1 (en) | 2001-06-08 | 2004-06-01 | Hewlett-Packard Development Company, L.P. | Multi-processor computer system with lock driven cache-flushing system |
JP4520755B2 (ja) | 2004-02-26 | 2010-08-11 | 株式会社日立製作所 | データ移行方法およびデータ移行装置 |
US7472234B2 (en) | 2006-02-28 | 2008-12-30 | Red Hat, Inc. | Method and system for reducing latency |
JP2009187272A (ja) | 2008-02-06 | 2009-08-20 | Nec Corp | 分散メモリマルチプロセッサシステムにおけるメモリ移行のための装置及び方法 |
KR101612922B1 (ko) * | 2009-06-09 | 2016-04-15 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템 관리 방법 |
US9195581B2 (en) * | 2011-07-01 | 2015-11-24 | Apple Inc. | Techniques for moving data between memory types |
KR101861170B1 (ko) | 2011-08-17 | 2018-05-25 | 삼성전자주식회사 | 마이그레이션 관리자를 포함하는 메모리 시스템 |
US8966204B2 (en) * | 2012-02-29 | 2015-02-24 | Hewlett-Packard Development Company, L.P. | Data migration between memory locations |
WO2016018421A1 (en) * | 2014-07-31 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | Cache management for nonvolatile main memory |
-
2014
- 2014-01-30 US US15/114,969 patent/US10061532B2/en active Active
- 2014-01-30 CN CN201480074651.3A patent/CN105940386B/zh active Active
- 2014-01-30 WO PCT/US2014/013738 patent/WO2015116080A1/en active Application Filing
- 2014-12-16 TW TW103143827A patent/TWI541822B/zh not_active IP Right Cessation
-
2018
- 2018-08-03 US US16/054,926 patent/US20180341425A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040133756A1 (en) * | 2003-01-03 | 2004-07-08 | Shaw Mark E. | System and method for migrating data between memories |
CN101218557A (zh) * | 2005-07-05 | 2008-07-09 | 国际商业机器公司 | 用于存储器迁移的系统和方法 |
CN101324867A (zh) * | 2007-06-16 | 2008-12-17 | 深圳市硅格半导体有限公司 | 基于半导体存储介质的数据管理装置及管理方法 |
CN101369451A (zh) * | 2007-08-14 | 2009-02-18 | 三星电子株式会社 | 固态存储器、包含其的计算机系统和操作其的方法 |
CN102498466A (zh) * | 2009-09-14 | 2012-06-13 | 国际商业机器公司 | 数据存储实体之间的数据迁移 |
US20130268739A1 (en) * | 2011-12-01 | 2013-10-10 | Saurabh Gupta | Hardware based memory migration and resilvering |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019162779A1 (en) * | 2018-02-21 | 2019-08-29 | International Business Machines Corporation | Data storage system performing data relocation based on temporal proximity of accesses |
US10481823B2 (en) | 2018-02-21 | 2019-11-19 | International Business Machines Corporation | Data storage system performing data relocation based on temporal proximity of accesses |
GB2585285A (en) * | 2018-02-21 | 2021-01-06 | Ibm | Data storage system performing data relocation based on temporal proximity of accesses |
GB2585285B (en) * | 2018-02-21 | 2021-08-04 | Ibm | Data storage system performing data relocation based on temporal proximity of accesses |
CN110809874A (zh) * | 2018-08-24 | 2020-02-18 | 深圳市大疆创新科技有限公司 | 数据的同步方法及系统、可移动平台和可读存储介质 |
CN110941390A (zh) * | 2018-09-21 | 2020-03-31 | 三星电子株式会社 | 存储设备 |
Also Published As
Publication number | Publication date |
---|---|
US10061532B2 (en) | 2018-08-28 |
WO2015116080A1 (en) | 2015-08-06 |
US20160342363A1 (en) | 2016-11-24 |
TWI541822B (zh) | 2016-07-11 |
TW201532068A (zh) | 2015-08-16 |
US20180341425A1 (en) | 2018-11-29 |
CN105940386B (zh) | 2019-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105940386A (zh) | 在存储器之间移动数据 | |
EP3195104B1 (en) | Efficient data movement within file system volumes | |
KR102228748B1 (ko) | 하이브리드 스토리지 시스템에서의 데이터 저장 제어 기법 | |
US20180067660A1 (en) | Storage apparatus and storage control apparatus | |
CN107784121B (zh) | 一种基于非易失内存的日志文件系统的小写优化方法 | |
US9857997B2 (en) | Replicating tracks from a first storage site to a second and third storage sites | |
CN106687911A (zh) | 不损害数据完整性的在线数据移动 | |
US20160132433A1 (en) | Computer system and control method | |
CN102012853B (zh) | 一种零拷贝快照方法 | |
TWI531901B (zh) | 群組表資料沖除技術 | |
US9792941B2 (en) | Method and system for data replication | |
CN103455577A (zh) | 云主机镜像文件的多备份就近存储和读取方法及系统 | |
CN110502188A (zh) | 一种基于数据库读写性能的数据存储方法与装置 | |
CN109739696B (zh) | 一种双控存储阵列固态硬盘缓存加速方法 | |
CN107025070A (zh) | 版本化存储设备和方法 | |
US20200117381A1 (en) | Storage system and storage control method | |
CN106897311B (zh) | 数据库批次更新方法、数据还原日志产生方法与存储装置 | |
US20210064272A1 (en) | Multi-tier storage | |
CN103838647B (zh) | 一种基于快照重映射的数据状态转换的方法及系统 | |
KR101533042B1 (ko) | 데이터 일관성을 보장하기 위한 컴퓨팅 장치 및 방법 | |
US10747432B2 (en) | Storage device, storage system, and storage control method | |
CN111949217A (zh) | 超融合一体机及其软件定义存储sds处理方法和系统 | |
US20130036250A1 (en) | Method and apparatus to move page between tiers | |
US20240143171A1 (en) | Systems, methods, and devices for using a reclaim unit based on a reference update in a storage device | |
CN110162376A (zh) | 一种数据读写方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |