管理存储装置的方法及其存储系统与流程

文档序号:11807563阅读:291来源:国知局
管理存储装置的方法及其存储系统与流程

本发明要求如下优先权:编号为62/162,944,申请日为2015年5月18日的美国临时专利申请。上述美国临时专利申请在此一并作为参考。

技术领域

本发明涉及一种管理存储装置的方法及其存储系统。特别地,本发明涉及一种多通道存储装置中控制数据迁移的方法及其存储系统,以取得节省功耗的效果。



背景技术:

随着计算机系统中处理系统以及存储系统的性能大幅提高,计算机技术继续大幅度地发展。例如,为了响应更快、更有效计算机系统的需求,可将处理系统设计为具有更高计算功率并且对于处理更多任务运行更快。如果存储系统的操作性能不能达到带宽需求,则存储系统将变成性能瓶颈。因此,需要提高存储系统的吞吐量。

为了达到带宽需求,现已发展出了多通道存储装置。以双通道存储装置为例,其具有两条平行的存储通道,并且两条存储通道可通知操作以提供更大的数据吞吐量。当多通道存储装置中使用的存储通道数量越大时,其意味着功率消耗也会越大。此外,计算机系统并不总是需要较大的存储带宽。在计算机系统仅需要较小存储带宽情况下,如果多通道存储装置的所有存储通道皆处于激活状态,则功率使用情况并不能达到最优化状态。如果上述计算机系统是电池供电的可携式 装置(例如,智能手机),则由于提高了存储系统的功率消耗,电池使用时间会缩短。因此,亟需一种新颖设计以有效降低多通道存储装置的功率消耗。



技术实现要素:

有鉴于此,本发明揭露一种管理存储装置的方法及其存储系统。

根据本发明一实施例,提供一种存储系统,包含:存储装置,包含分别通过多个存储通道存取的多个存储空间;以及数据迁移控制电路,配置该数据迁移控制电路控制将该多个存储空间的第二存储空间中的第一存储数据迁移至该多个存储空间的第一存储空间,其中,当执行该第一存储数据的第一数据块的数据迁移期间请求该第一数据块时,进一步配置该数据迁移控制电路阻止该第一数据块的数据存取,直到完全将该第一数据块存入该第一存储空间为止,其中,该第一数据块的尺寸小于该第一存储数据的尺寸。

根据本发明另一实施例,提供一种管理存储装置的方法,其中该存储装置包含分别通过多个存储通道存取的多个存储空间,该管理存储装置的方法包含:控制将该多个存储空间的第二存储空间中的第一存储数据迁移至该多个存储空间的第一存储空间;以及当执行该第一存储数据的第一数据块的数据迁移期间请求该第一数据块时,阻止该第一数据块的数据存取,直到完全将该第一数据块存入该第一存储空间为止,其中,该第一数据块的尺寸小于该第一存储数据的尺寸。

根据本发明另一实施例,提供一种存储系统,包含:存储装置,包含分别通过多个存储通道存取的多个存储空间;以及数据迁移控制电路,配置该数据迁移控制电路检测该存储装置是否从第一带宽场景切换至第二带宽场景,并且当检测到该存储装置从该第一带宽场景切换至该第二带宽场景时,进一步配置该数据迁移控制电路控制将该多个存储空间的第二存储空间中的第一存储数据迁移至该多个存储空间的第一存储空间,其中,该第一带宽场景与该第二带宽场景具有不同 的存储带宽需求。

根据本发明另一实施例,提供一种管理存储装置的方法,其中该存储装置包含分别通过多个存储通道存取的多个存储空间,该管理存储装置的方法包含:检测该存储装置是否从第一带宽场景切换至第二带宽场景,其中,该第一带宽场景与该第二带宽场景具有不同的存储带宽需求;以及当检测到该存储装置从该第一带宽场景切换至该第二带宽场景时,控制将该多个存储空间的第二存储空间中的第一存储数据迁移至该多个存储空间的第一存储空间。

本发明提供的管理存储装置的方法及其存储系统可降低系统功耗。

附图说明

图1是根据本发明实施例描述的存储系统示意图;

图2是根据本发明第一实施例描述的存储装置中数据迁移的示意图;

图3是根据本发明实施例描述的数据迁移控制电路执行复制/移动操作的示意图;

图4是根据本发明第二实施例描述的存储装置中数据迁移的示意图;

图5是根据本发明实施例描述的图1所示数据迁移控制电路执行的交换操作示意图;

图6是根据本发明第三实施例描述的存储装置中数据迁移示意图。假设存储装置为双通道存储器;

图7是根据本发明第四实施例描述的存储装置中数据迁移示意图。假设存储装置为四通道存储器;

图8是根据本发明第五实施例描述的存储装置中数据迁移示意图。假设存储装置为四通道存储器;

图9是根据本发明实施例描述的数据迁移控制电路另一设计示意图;

图10是根据本发明实施例描述的基于一个迁移指针的数据存取控制方案示意图;

图11是根据本发明实施例描述的基于迁移指针的另一数据存取控制方案示意图;

图12是根据本发明实施例描述的基于迁移指针的另一数据存取控制方案示意图。

具体实施方式

在说明书及权利要求书当中使用了某些词汇来指称特定的元件。所属技术领域的技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个元件。本说明书及权利要求书并不以名称的差异作为区分元件的方式,而是以元件在功能上的差异作为区分的准则。在通篇说明书及权利要求项中所提及的“包含”为一开放式的用语,故应解释成“包含但不限定于”。此外,“耦接”一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或透过其它装置或连接手段间接地电气连接至第二装置。

接下来的描述是实现本发明的最佳实施例,其是为了描述本发明原理的目的,并非对本发明的限制。可以理解地是,本发明实施例可由软件、硬件、固件或其任意组合来实现。

本发明提出的存储系统设计,其可在不降低使用计算机系统用户体验的情况下,动态改变多通道存储装置中所用的激活存储通道的数量。例如,可执行动态通道切换操作,并且上述操作并不会让用户感到数据迁移延迟。在实施例中,可非动态地改变激活存储通道的数量。可执行数据迁移以将存储数据从第二存储通道的第二存储空间迁移至第一存储通道的第一存储空间。如果在上述数据迁移完成后,第二存储空间不存在有效数据,则可将第二存储通道及/或相关存储控制器断电或休眠用于节省功耗。进一步地,在完成数据迁移后,可降低同时 处于激活状态的存储通道的数量。因此,存储控制器不需要同时控制通过所有存储通道的数据存取。功率消耗也会相应降低。此外,可将存储数据分为多个数据块(data piece),并且可将数据块一个接一个地从第二存储空间迁移至第一存储空间。当硬件模块请求当前正迁移的数据块时,在数据块已存储入第一存储空间后,数据块变为可存取的。因此,由等待一个数据块(其为待迁移存储数据的一部分)迁移完成造成的存取延迟比由等待所有存储数据迁移完成造成的存取延迟要大大缩短。这样,计算机系统的用户不易察觉由一个请求数据块的存取延迟引起的系统响应延迟。接下来将详细描述本发明提出的存储系统设计。

图1是根据本发明实施例描述的存储系统示意图。存储系统100可为计算机系统的一部分。例如,存储系统100可位于可携式装置中,例如,平板电脑、智能手机或可穿戴装置。存储系统100可包含存储装置(例如,动态随机存取存储器)102、多个存储控制器104_1-104_N、数据迁移控制电路106,其中,N为不小于2的任意正整数。在本实施例中,存储装置102可为具有多个存储空间108_1-108_N的多通道存储器,其中上述多通道存储器可分别通过多个存储通道109_1-109_N进行存取。可配置存储控制器104_1-104_N分别控制存储空间108_1-108_N的数据存取(即,读写操作)。因此,存储控制器104_1-104_N的数量等于存储空间108_1-108_N的数量,也等于存储通道109_1-109_N的数量。值得注意的是,可根据实际设计需要调整N的数值。例如,当N等于2时,可使用双通道存储器装配存储装置102。在另一示例中,当N等于4时,可使用四通道存储器装配存储装置102。每个存储空间108_1-108_N具有相同芯片选择信号控制的一个或多个存储列(memory rank)110,并且每个存储列110包含一个或多个存储芯片。

例如,当计算机系统进入挂起模式/待机模式或将存储装置102从高带宽场景(例如,视频播放、运行游戏等)切换至低带宽场景(例 如,编辑文档、上网等)时,可启动上述数据迁移方案以允许存储装置102具有较低功率消耗。然而,当计算机系统离开挂起模式/待机模式或将存储装置102从低带宽场景切换至高带宽场景时,可启动上述数据迁移方案的逆向操作以允许存储装置102满足较高带宽需求。

在实施例中,数据迁移控制电路106可检测是否将存储装置102从第一带宽场景切换至第二带宽场景,并且当检测到存储装置102从第一带宽场景切换至第二带宽场景时,可控制存储空间108_1-108_N的第二存储空间中的第一存储数据迁移至存储空间108_1-108_N的第一存储空间,其中第一带宽场景与第二带宽场景具有不同的存储带宽需求。

数据迁移控制电路106可管理存储装置102的不同存储通道的数据迁移。在本实施例中,数据迁移控制电路106可包含直接存储器存取(Direct Memory Access,DMA)控制器112与转换表114。DMA控制器112可依DMA方式控制存储数据的数据迁移。上述数据迁移可复制/移动第二存储通道的第二存储空间的存储数据至第一存储通道的第一存储空间,及/或交换第二存储通道的第二存储空间的存储数据与第一存储通道的第一存储空间的存储数据。即,上述数据迁移可为单向数据传送、双向数据传送或两者结合。当执行数据迁移以取得数据交换时,使用DMA控制器112中的缓冲器116在DMA控制器112将第二存储空间的存储数据写入第一存储空间之前,暂时保存第一存储空间的存储数据。因此,在第二存储空间的至少部分存储数据重写第一存储空间的至少部分存储数据(即,部分或全部存储数据)之后,DMA控制器112开始取回缓冲器116中的至少部分存储数据(即,部分或全部存储数据)并且将上述取回的数据写入第二存储空间以重写第二存储空间的至少部分存储数据,其中上述第二存储空间的至少部分存储数据已经存储入第一存储空间。可使用较小尺寸的存储模组实施缓冲器116。例如,缓冲器116的尺寸可等于数据块的尺寸。

可配置转换表114记录原始存储地址与新存储地址之间的映射关 系。因此,虽然将存储数据迁移至不同存储位置,其中外部硬件模块(例如,存储管理单元)并未获知上述不同存储位置,但通过转换表114,上述存储数据可正确进行存取。例如,转换表114可将MMU生成的一个物理地址转换至请求数据实际所在的另一物理地址。在一个示例中,在将存储数据从原始存储地址传送入新存储地址后,可配置DMA控制器112通知转换表114记录上述映射关系。为了更好理解本发明的技术细节,下面将详细描述几个数据迁移示例。

图2是根据本发明第一实施例描述的存储装置中数据迁移的示意图。假设存储装置102为双通道存储器。因此,存在MS_1与MS_2标注的两个存储空间108_1-108_N(N等于2)、CH_1与CH_2标注的两个存储通道109_1-109_N(N等于2)以及DRAMC_1与DRAMC_2标注的两个存储控制器104_1-104-N(N等于2)。在本示例中,存储空间MS_1具有上部存储列Rank_1B以及下部存储列Rank_1A,以及存储空间MS_2具有上部存储列Rank_2B以及下部存储列Rank_2A。进一步地,分配给存储空间中上部存储列的地址高于分配给相同存储空间中下部存储列的地址。

如图2的子表(A)所示,可将存储装置102分割为高性能使用的交错区域(interleaving region)以及低功率使用的级联区域(cascade region)。当在低功耗与低带宽场景使用存储装置102时,将级联区域安排至下部存储列Rank_1A的下部区域以及下部存储列Rank_2A的下部区域,其中下部存储列Rank_2A的下部区域可级联下部存储列Rank_1A的下部区域以定义具有连续存储地址的区域。可将级联区域的较低存储地址安排至下部存储列Rank_1A的下面,并且将较高存储地址安排至下部存储列Rank_2A的下面。在本示例中,下部存储列Rank_1A的下部区域尺寸可为256MB(兆字节),并且下部存储列Rank_2A的下部区域尺寸可为256MB。因此,级联区域的尺寸可为512MB(即,256MB与256MB之和)。值得注意的是,存储装置102中级联区域的安排仅是为了说明的目的,并不是对本发明的限制。例 如,可根据实际设计调整级联区域的尺寸。

在低功率与低带宽场景中,存储控制器DRAMC_1与DRAMC_2可在级联存储器存取模式(cascade memory access mode)下控制级联区域(即,下部存储列Rank_1A的下部以及下部存储列Rank_2A的下部)的数据存取。即,对于读请求或写请求的每个存储地址,在读取级联区域的数据或将数据写入级联区域时,仅有一个存储通道(存储通道CH_1与存储通道CH_2中的一个)处于激活状态。因此,在级联存储器存取模式下,无需同时激活所有存储通道(存储通道CH_1与CH_2)。

将交错区域安排在下部存储列Rank_1A的上部区域、下部存储列Rank_2A的上部区域以及上部存储列Rank_1B与Rank_2B。在高性能与高带宽场景中,存储控制器DRAMC_1与DRAMC_2可在交错存储器存取模式(interleaving memory access mode)下控制交错区域(即,下部存储列Rank_1A的上部区域、下部存储列Rank_2A的上部区域以及上部存储列Rank_1B与Rank_2B)的数据存取。即,对于存储地址上的数据读写,存储通道CH_1与CH_2同时皆处于激活状态。因此,存储控制器DRAMC_1与DRAMC_2可并行存取下部存储列Rank_1A的上部区域与下部存储列Rank_2A的上部区域,并且存储控制器DRAMC_1与DRAMC_2可并行存取上部存储列Rank_1B与上部存储列Rank_2B。值得注意的是,存储装置102中交错区域的安排仅是为了说明的目的,并不是对本发明的限制。例如,可根据实际设计调整交错区域的尺寸。

在上部存储列Rank_1B与上部存储列Rank_2B不存储有效数据情况下,如图2的子表(A)所示,上部存储列Rank_1B与上部存储列Rank_2B每一个可禁用其自刷新操作并且进入最低可能功率状态,例如深度休眠(Deep Power Down,DPD)状态。例如,可将上部存储列Rank_1B中的所有有效数据转移至下部存储列Rank_1A,并且可将上部存储列Rank_2B中的所有有效数据转移至下部存储列Rank_2A。接 着,上部存储列Rank_1B与上部存储列Rank_2B每一个进入DPD状态用于节省功率。

如图2的子表(A)所示,可将下部存储列Rank_1A的上部区域分配为部分交替区域,并且可将下部存储列Rank_2A的下部区域分配为部分级联区域。考虑到下部存储列Rank_1A的上部区域具有足够空闲空间用于安排下部存储列Rank_2A的下部区域的所有有效数据,并且同时存储装置102操作在低带宽场景或计算机系统进入挂起模式/待机模式,可启动上述数据迁移方案以复制/移动下部存储列Rank_2A的下部区域中的所有有效数据至下部存储列Rank_1A的上部区域。

图3是根据本发明实施例描述的数据迁移控制电路106执行复制/移动操作的示意图。DMA控制器112可将下部存储列Rank_2A的下部区域中存储的有效数据分割为多个数据块,并且将数据块依次转移至下部存储列Rank_1A的上部区域中的空闲空间。每个数据块的尺寸小于迁移存储数据的尺寸。例如,数据块尺寸是1KB(千字节)、4KB、1MB、4MB或其他预设值。

在本示例中,可将下部存储列Rank_2A的下部区域中存储的有效数据分割为数据块P1-PM,其中数据块P1-PM分别具有块地址ADDR_21-ADDR_2M。既然下部存储列Rank_1A的上部区域中具有足够空闲空间用于安排下部存储列Rank_2A的下部区域中的所有有效数据,DMA控制器112可将每个数据块P1-PM转移至下部存储列Rank_1A的上部区域中的任意空闲空间。举例但不局限于此,下部存储列Rank_1A的上部区域中不具有有效数据。因此,DMA控制器112可将数据块P1-PM转移至下部存储列Rank_1A的上部区域中的连续空闲空间。如图3所示,DMA控制器112可将下部存储列Rank_2A的下部区域中的块地址ADDR_21处的数据块P1转移至下部存储列Rank_1A的上部区域中的块地址ADDR_11。可配置转换表114记录/更新数据块P1的原始块地址ADDR_21与数据块P1的新块地址ADDR_11之间的映射关系。在一个示例中,当完成数据块P1的数据迁移时, DMA控制器112指示转换表114记录/更新上述映射关系。

接着,DMA控制器112将下部存储列Rank_2A的下部区域中的块地址ADDR_22处的数据块P2转移至下部存储列Rank_1A的上部区域中的块地址ADDR_12。相似地,可配置转换表114记录/更新数据块P2的原始块地址ADDR_22与数据块P2的新块地址ADDR_12之间的映射关系。在一个示例中,当完成数据块P2的数据迁移时,DMA控制器112指示转换表114记录/更新上述映射关系。DMA控制器112可保持转移下部存储列Rank_2A的下部区域中的剩余数据块至下部存储列Rank_1A的上部区域中,直到完成最后数据块PM的数据迁移为止。在完成最后数据块PM的数据迁移后,转换表114具有多个列表项目,其记录下部存储列Rank_2A的下部区域中的数据块P1-PM的块地址ADDR_21-ADDR_2M与下部存储列Rank_1A的上部区域中的数据块P1-PM的块地址ADDR_11-ADDR_1M之间的映射关系。

值得注意的是,当DMA控制器112正转移下部存储列Rank_2A的下部区域中的特定数据块至下部存储列Rank_1A的上部区域时,临时阻止对特定数据块的任意存取请求以确保数据完整性。例如,外部硬件模块(例如,MMU)可发出对存储装置102中物理地址的存取请求用于存储目标数据。假设在数据块P2的数据迁移期间请求数据块P2,则数据迁移控制电路106阻止数据块P2的数据存取,直到将数据块P2完全存入下部存储列Rank_1A的上部区域中的块地址ADDR_12的空闲空间为止。

在本实施例中,转换表114接收外部硬件模块(例如,MMU)生成的输入物理地址ADDR_IN,并且使用输出物理地址ADDR_IN’进行响应,然后将输出物理地址ADDR_IN’发送至至少一个存储控制器104_1-104_N。在数据块P2的数据迁移期间,如果转换表114接收物理地址ADDR_22用以存取下部存储列Rank_2A的下部区域中的数据块(即,ADDR_IN等于ADDR_22),那么转换表114不响应下部存储列Rank_1A的上部区域中的数据块P2的物理地址ADDR_12,直到DMA 控制器112将数据块P2完全存入下部存储列Rank_1A的上部区域为止。也就是说,转换表114延迟ADDR_22至ADDR_12的物理地址转换以等待所请求数据块P2的数据迁移的完成。当存储控制器104_1接收到输出物理地址ADDR_IN’等于转换表114生成的ADDR_12时,存储控制器104_1存取下部存储列Rank_1A的上部区域中所请求的数据块P2以响应外部硬件模块发出的数据存取请求。

如果已经完成数据块P1的数据迁移后,转换表114接收到物理地址ADDR_21用以存取下部存储列Rank_2A的下部区域中的数据块P1(即,ADDR_IN等于ADDR_21),则转换表114无需延迟ADDR_21至ADDR_11的物理地址转换,并可使用下部存储列Rank_1A的上部区域中的数据块P1的物理地址ADDR_11进行回复(即,ADDR_IN’等于ADDR_11)。当存储控制器104_1接收到转换表114生成的输出物理地址ADDR_IN’时,存储控制器104_1存取下部存储列Rank_1A的上部区域中的所请求的数据块P1以响应外部硬件模块发出的数据存取请求。

如果数据块PM的数据迁移开始之前,转换表114接收到物理地址ADDR_2M用以存取下部存储列Rank_2A的下部区域中的数据块PM(即,ADDR_IN等于ADDR_2M),则转换表114无需进行任何物理地址转换,并可使用未处理的物理地址ADDR_2M进行回复(即,ADDR_IN’等于ADDR_2M)。当存储控制器104_N(N等于2)接收到转换表114生成的输出物理地址ADDR_IN’时,存储控制器104_1存取下部存储列Rank_2A的下部区域中所请求的数据块PM以响应外部硬件模块发出的数据存取请求。

假设下部存储列Rank_2A的上部未存储任何有效数据。如图2的子表(B)所示,在将下部存储列Rank_2A的下部区域中的存储数据存入下部存储列Rank_1A的上部区域后,下部存储列Rank_2A可禁用其自刷新操作并且进入DPD状态用于节省功率。既然相同存储通道CH_2中的所有存储列Rank_2A与Rank_2B皆处于DPD状态,则可将 存储控制器DRAMC_2的供电关闭以节省更多功率。上述数据迁移方案可取得存储装置102中的动态通道切换,从而使得存储装置102得到强制更多存储列进入DPD状态的机会。在许多实施例中,可非动态完成上述通道切换操作。

值得注意的是,由数据存取阻挡造成的延迟大小取决于数据块的尺寸。当数据块尺寸为较小值时,本发明用于节省功耗的数据迁移方案造成的数据存取延迟并不大。当合理设定上述数据块尺寸时,在对使用计算机系统的用户体验无较大影响情况下,可取得降低存储装置功率消耗的目的。因此,在用户意识不到迁移延迟情况下,可取得动态通道切换。

图3所示的数据迁移示例仅为说明的目的,并不是对本发明的限制。在另一设计中,下部存储列Rank_2A的下部区域中安排的数据块P1-PM的顺序可不同于下部存储列Rank_1A的上部区域中安排的数据块P1-PM的顺序。另外,可根据实际设计调整数据块P1-PM的尺寸及/或数量。

在上述示例中,因为下部存储列Rank_1A的上部区域具有足够的空闲空间用于安排下部存储列Rank_2A的下部区域中的所有有效数据(或下部存储列Rank_1A的上部区域并不存在任何有效数据),数据迁移控制电路106的DMA控制器122可执行数据迁移以将存储在存储空间MS_2中的数据复制/移动至另一存储空间MS_1。在另一种情况下,如果存储装置102运行在低带宽场景下并且下部存储列Rank_1A的上部区域不具有足够的空闲空间用于安排下部存储列Rank_2A的下部区域中的所有有效数据(或下部存储列Rank_1A的上部区域被有效数据占据),则可执行上述数据迁移方案以将下部存储列Rank_2A的下部区域中存储的有效数据与下部存储列Rank_1A的上部区域中存储的有效数据进行交换。

请结合图5参考图4。图4是根据本发明第二实施例描述的存储装置中数据迁移的示意图。图5是根据本发明实施例描述的图1所示数 据迁移控制电路106执行的交换操作示意图。DMA控制器112将下部存储列Rank_2A的下部区域存储的有效数据分割为多个数据块,将下部存储列Rank_1A的上部区域中存储的有效数据也分割为多个数据块,并且将下部存储列Rank_2A的下部区域与下部存储列Rank_1A的上部区域中存储的有效数据通过数据块交换操作进行交换。假设下部存储列Rank_1A的上部区域中存储的有效数据的尺寸等于下部存储列Rank_2A的下部区域中存储的有效数据的尺寸,并且使用上述相同数据块尺寸用于分割待迁移的存储数据。如图5所示,可将下部存储列Rank_2A的下部区域存储的有效数据分割为数据块P1-PM,其中数据块P1-PM分别具有块地址ADDR_21-ADDR_2M;以及可将下部存储列Rank_1A的上部区域存储的有效数据分割为数据块P1’-PM’,其中数据块P1’-PM’分别具有块地址ADDR_11-ADDR_1M。例如,数据块尺寸可是1KB、4KB、1MB、4MB或其他预设值。

既然数据块P1’-PM’占据下部存储列Rank_1A的上部区域,则DMA控制器112需要执行交换操作以避免在执行下部存储列Rank_2A的下部区域存储的数据迁移后丢失下部存储列Rank_1A的上部区域存储的数据。因此,交换操作将数据块P1-PM迁移至下部存储列Rank_1A的上部区域并且将数据块P1’-PM’迁移至下部存储列Rank_2A的下部区域。举例但不限定,DMA控制器112可将数据块P1-PM迁移至下部存储列Rank_1A的上部区域的连续块地址,以及可将数据块P1’-PM’迁移至下部存储列Rank_2A的下部区域的连续块地址。

如图5所示,DMA控制器112将块地址ADDR_11处的数据块P1’转移至缓冲器116,将块地址ADDR_21处的数据块P1转移至块地址ADDR_11处,并且将存储在缓冲器116中的数据块P1’转移至块地址ADDR_21处。可替换地,DMA控制器112将块地址ADDR_21处的数据块P1转移至缓冲器116,将块地址ADDR_11处的数据块P1’转移至块地址ADDR_21处,并且将存储在缓冲器116中的数据块P1转移至块地址ADDR_11处。这样可取得交换数据块P1与P1’的相同目的。可 配置转换表114记录/更新数据块P1的原始块地址ADDR_21与数据块P1的新块地址ADDR_11之间的映射关系。在一个示例中,当完成数据块P1的数据迁移时,DMA控制器112可指示转换表114记录/更新上述映射关系。相似地,可配置转换表114记录/更新数据块P1’的原始块地址ADDR_11与数据块P1’的新块地址ADDR_21之间的映射关系。在一个示例中,当完成数据块P1’的数据迁移时,DMA控制器112指示转换表114记录/更新上述映射关系。

接着,DMA控制器112将块地址ADDR_12处的数据块P2’转移至缓冲器116,将块地址ADDR_22处的数据块P2转移至块地址ADDR_12处,并且将存储在缓冲器116中的数据块P2’转移至块地址ADDR_22处。可替换地,DMA控制器112将块地址ADDR_22处的数据块P2转移至缓冲器116,将块地址ADDR_12处的数据块P2’转移至块地址ADDR_22处,并且将存储在缓冲器116中的数据块P2转移至块地址ADDR_12处。这样可取得交换数据块P2与P2’的相同目的。可配置转换表114记录/更新数据块P2的原始块地址ADDR_22与数据块P2的新块地址ADDR_12之间的映射关系。在一个示例中,当完成数据块P2的数据迁移时,DMA控制器112可指示转换表114记录/更新上述映射关系。相似地,可配置转换表114记录/更新数据块P2’的原始块地址ADDR_12与数据块P2’的新块地址ADDR_22之间的映射关系。在一个示例中,当完成数据块P2’的数据迁移时,DMA控制器112指示转换表114记录/更新上述映射关系。

DMA控制器112可保持将下部存储列Rank_2A的下部区域中的下列数据块转移至下部存储列Rank_1A的上部区域,直到完成最后数据块PM的数据迁移为止。此外,DMA控制器112可保持将下部存储列Rank_1A的上部区域中的下列数据块转移至下部存储列Rank_2A的下部区域,直到完成最后数据块PM’的数据迁移为止。

在完成最后数据块PM与PM’的数据迁移后,转换表114具有多个列表项目,其记录下部存储列Rank_2A的下部区域中的数据块P1-PM 的块地址ADDR_21-ADDR_2M与下部存储列Rank_1A的上部区域中的数据块P1-PM的块地址ADDR_11-ADDR_1M之间的映射关系,并且可进一步具有多个列表项目,其记录下部存储列Rank_1A的上部区域中的数据块P1’-PM’的块地址ADDR_11-ADDR_1M与下部存储列Rank_2A的下部区域中的数据块P1’-PM’的块地址ADDR_21-ADDR_2M之间的映射关系。

值得注意的是,当DMA控制器112正转移一个存储列中的特定数据块至另一存储列时,临时阻挡对特定数据块的任意存取请求以确保数据完整性。例如,外部硬件模块(例如,MMU)可发出对存储装置102中物理地址的存取请求用于存储目标数据。假设在数据块P2(或P2’)的数据迁移期间请求数据块P2(或P2’),则阻止数据块P2(或P2’)的数据存取,直到将数据块P2(或P2’)完全存至块地址ADDR_12(或块地址ADDR_22)为止。

在本实施例中,转换表114接收外部硬件模块生成的输入物理地址ADDR_IN,并且使用输出物理地址ADDR_IN’进行响应,然后将输出物理地址ADDR_IN’发送至至少一个存储控制器104_1-104_N。在数据块P2的数据迁移期间,如果转换表114接收物理地址ADDR_22用以存取下部存储列Rank_2A的下部区域中的数据块P2(即,ADDR_IN等于ADDR_22),那么转换表114不响应下部存储列Rank_1A的上部区域中的数据块P2的物理地址ADDR_12,直到数据块P2完全存入下部存储列Rank_1A的上部区域为止。当存储控制器104_1接收到输出物理地址ADDR_IN’等于ADDR_12后,存储控制器104_1存取下部存储列Rank_1A的上部区域中的数据块P2以响应外部硬件模块发出的数据存取请求。相似地,在数据块P2’的数据迁移期间,如果转换表114接收物理地址ADDR_12用以存取下部存储列Rank_1A的上部区域中的数据块P2’(即,ADDR_IN等于ADDR_12),那么转换表114不响应下部存储列Rank_2A的下部区域中的数据块P2’的物理地址ADDR_22,直到数据块P2’完全存入下部存储列Rank_2A的下部区域 为止。当存储控制器104_N(N等于2)接收到输出物理地址ADDR_IN’等于ADDR_22后,存储控制器104_N存取下部存储列Rank_2A的下部区域中的数据块P2’以响应外部硬件模块发出的数据存取请求。

如果已经完成数据块P1的数据迁移后,转换表114接收到物理地址ADDR_21用以存取下部存储列Rank_2A的下部区域中的数据块P1(即,ADDR_IN等于ADDR_21),则转换表114无需延迟ADDR_21至ADDR_11的物理地址转换,并可使用下部存储列Rank_1A的上部区域中的数据块P1的物理地址ADDR_11进行回复(即,ADDR_IN’等于ADDR_11)。当存储控制器104_1接收到输出物理地址ADDR_IN’后,存储控制器104_1存取下部存储列Rank_1A的上部区域中的数据块P1以响应外部硬件模块发出的数据存取请求。相似地,如果已经完成数据块P1’的数据迁移后,转换表114接收到物理地址ADDR_11用以存取下部存储列Rank_1A的上部区域中的数据块P1’(即,ADDR_IN等于ADDR_11),则转换表114无需延迟ADDR_11至ADDR_21的物理地址转换,并可使用下部存储列Rank_2A的下部区域中的数据块P1’的物理地址ADDR_21进行回复(即,ADDR_IN’等于ADDR_21)。当存储控制器104_N(N等于2)接收到输出物理地址ADDR_IN’后,存储控制器104_N存取下部存储列Rank_2A的下部区域中的数据块P1’以响应外部硬件模块发出的数据存取请求。

在另一示例中,如果数据块PM的数据迁移开始之前,转换表114接收到物理地址ADDR_2M用以存取下部存储列Rank_2A的下部区域中的数据块PM(即,ADDR_IN等于ADDR_2M),则转换表114无需进行任何物理地址转换,并可使用未处理的物理地址ADDR_2M进行回复(即,ADDR_IN’等于ADDR_2M)。当存储控制器104_N(N等于2)接收到输出物理地址ADDR_IN’后,存储控制器104_N存取下部存储列Rank_2A的下部区域中的数据块PM以响应外部硬件模块发出的数据存取请求。相似地,如果数据块PM’的数据迁移开始之前,转换 表114接收到物理地址ADDR_1M用以存取下部存储列Rank_1A的上部区域中的数据块PM’(即,ADDR_IN等于ADDR_1M),则转换表114无需进行任何物理地址转换,并可使用未处理的物理地址ADDR_1M进行回复(即,ADDR_IN’等于ADDR_1M)。当存储控制器104_1接收到输出物理地址ADDR_IN’后,存储控制器104_1存取下部存储列Rank_1A的上部区域中的数据块PM’以响应外部硬件模块发出的数据存取请求。

在将存储在下部存储列Rank_2A的下部区域以及下部存储列Rank_1A的上部区域的数据交换后,如图4所示的子图(B)所示,可控制存储装置102按照单通道存储器进行操作。存储控制器DRAMC_1与DRAMC_2皆可保持激活状态。然而,用于数据存取而同时激活的通道数量可减少。这样,可相应降低功率消耗。如上所示,由数据存取阻挡造成的延迟大小取决于数据块的尺寸。当数据块尺寸为较小值时,本发明用于节省功耗的数据迁移方案造成的数据存取延迟并不大。当合理设定上述数据块尺寸时,在对使用计算机系统的用户体验无较大影响情况下,可取得降低存储装置功率消耗的目的。

图5所示的数据迁移示例仅是为了说明的目的。在一替换设计中,下部存储列Rank_2A的下部区域中安排的数据块P1-PM的顺序可不同于下部存储列Rank_1A的上部区域中安排的数据块P1-PM的顺序,及/或下部存储列Rank_1A的上部区域中安排的数据块P1’-PM’的顺序可不同于下部存储列Rank_2A的下部区域中安排的数据块P1’-PM’的顺序。

在上述示例中,数据迁移可发生在级联区域与交错区域之间。然而,这仅是为了说明的目的,并不是对本发明的限制。在一替换设计中,数据迁移可发生在交错区域中不同部分之间。此外,在完成存储数据的数据迁移后,可将存储装置从真全交错模式切换至伪全交错模式。下面将详细描述技术细节。

图6是根据本发明第三实施例描述的存储装置中数据迁移示意图。假设存储装置102为双通道存储器。因此,存在MS_1与MS_2标注的 两个存储空间108_1-108_N(N等于2)、CH_1与CH_2标注的两个存储通道109_1-109_N(N等于2)。在本示例中,存储空间MS_1具有上部存储列Rank_1B以及下部存储列Rank_1A,以及存储空间MS_2具有上部存储列Rank_2B以及下部存储列Rank_2A。值得注意的是,分配给存储空间中上部存储列的地址高于分配给相同存储空间中下部存储列的地址。

如图6的子图(A)所示,可将整个存储装置102配置为交错区域。当在高功率以及高带宽场景下使用存储装置102时,存储装置102可使用交错存储访问模式(例如,真全交错模式)。因此,可将一个数据组块(data chunk)分为高数据分区(DH)以及低数据分区(DL),其中可将高数据分区DH与低数据分区DL分别提交至不同的存储通道CH_1与CH_2以得到最大带宽。在本实施例中,可将高数据分区DH存储在存储通道CH_2的下部存储列Rank_2A,并且将低数据分区DL存储在存储通道CH_1的下部存储列Rank_1A。

当计算机系统进入挂起模式/待机模式或将存储装置102从高功率以及高带宽场景切换至低功率以及低带宽场景时,可启动上述数据迁移方案以将存储数据从一个存储空间转移至另一存储空间用以减少同时激活的存储通道数量。例如,如图6的子图(B)所示,DMA控制器112可将包含高数据分区DH的存储数据从下部存储列Rank_2A转移至上部存储列Rank_1B。

因此,在数据迁移控制电路106控制执行下部存储列Rank_2A中存储数据的数据迁移后,可将相同数据组块的高数据分区DH与低数据分区DL存储在相同存储通道CH_1的不同存储列Rank_1A与Rank_1B中。在本示例中,既然在某一时刻仅有一个存储通道处于激活状态,可控制存储装置102像单通道存储器一样进行操作。进一步地,存储装置102可使用另一交错存储访问模式(例如,伪全交错模式)以模拟原始全交错数据处理。

在数据迁移为上述复制/移动操作情况下,并且当上述数据迁移完 成后存储空间不具有有效数据时,存储列Rank_2A与Rank_2B皆进入DPD状态,并且可关闭存储空间MS_2的存储控制器104_N(N等于2)的供电。在数据迁移是上述交换操作情况下,由于存储装置102类似于单通道存储器,则同时激活用于数据存取的通道数量相应减少。在这种情况下可降低功率消耗。此外,本发明的基于数据块的数据迁移方案可缓解或避免用户感知迁移延迟。

图7是根据本发明第四实施例描述的存储装置中数据迁移示意图。假设存储装置102为四通道存储器。因此,存在MS_1、MS_2、MS_3与MS_4标注的四个存储空间108_1-108_N(N等于4)、CH_1、CH_2、CH_3与CH_4标注的四个存储通道109_1-109_N(N等于4)。在本示例中,存储空间MS_1具有上部存储列Rank_1B以及下部存储列Rank_1A,存储空间MS_2具有上部存储列Rank_2B以及下部存储列Rank_2A,存储空间MS_3具有上部存储列Rank_3B以及下部存储列Rank_3A以及存储空间MS_4具有上部存储列Rank_4B以及下部存储列Rank_4A。值得注意的是,分配给存储空间中上部存储列的地址高于分配给相同存储空间中下部存储列的地址。

如图7的子图(A)所示,可将整个存储装置102配置为交错区域。当在高功率以及高带宽场景下使用存储装置102时,存储装置102可使用交错存储访问模式(例如,真全交错模式)。因此,可将一个数据组块分为高数据分区DH、中高数据分区DMH、中低数据分区DML以及低数据分区DL,其中可将高数据分区DH、中高数据分区DMH、中低数据分区DML以及低数据分区DL分别提交至不同的存储通道CH_1-CH_4以得到最大带宽。在本实施例中,可将高数据分区DH存储在存储通道CH_4的下部存储列Rank_4A,可将中高数据分区DMH存储在存储通道CH_3的下部存储列Rank_3A,可将中低数据分区DML存储在存储通道CH_2的下部存储列Rank_2A,并且将低数据分区DL存储在存储通道CH_1的下部存储列Rank_1A。

当计算机系统进入挂起模式/待机模式或将存储装置102从高功率 以及高带宽场景切换至低功率以及低带宽场景时,可启动上述数据迁移方案以将存储数据从一个存储空间转移至另一存储空间用以减少同时激活的存储通道数量。例如,如图7的子图(B)所示,DMA控制器112可将包含高数据分区DH的存储数据从下部存储列Rank_4A转移至上部存储列Rank_2B,以及将包含中高数据分区DMH的存储数据从下部存储列Rank_3A转移至上部存储列Rank_1B。因此,可将相同数据组块的高数据分区DH与中低数据分区DML存储在相同存储通道CH_2的不同存储列Rank_2B与Rank_2A中,以及可将相同数据组块的中高数据分区DMH与低数据分区DL存储在相同存储通道CH_1的不同存储列Rank_1B与Rank_1A中。在本示例中,既然在某一时刻仅有两个存储通道处于激活状态,可控制存储装置102像双通道存储器一样进行操作。进一步地,存储装置102可使用另一交错存储访问模式(例如,伪全交错模式)以模拟原始全交错数据处理。

在数据迁移为上述复制/移动操作情况下,并且当上述数据迁移完成后存储空间MS_3与MS_4不具有有效数据时,存储列Rank_3A、Rank_3B、Rank_4A与Rank_4B皆进入DPD状态,并且可关闭存储空间MS_3与MS_4的相关存储控制器104_N-1与104_N(N等于4)的供电。在数据迁移是上述交换操作情况下,由于存储装置102类似于双通道存储器,则同时激活用于数据存取的通道数量相应减少。在这种情况下可降低功率消耗。此外,本发明的基于数据块的数据迁移方案可缓解或避免用户感知迁移延迟。

图8是根据本发明第五实施例描述的存储装置中数据迁移示意图。假设存储装置102为四通道存储器。因此,存在MS_1、MS_2、MS_3与MS_4标注的四个存储空间108_1-108_N(N等于4)、CH_1、CH_2、CH_3与CH_4标注的四个存储通道109_1-109_N(N等于4)。图7与图8所示的数据迁移操作的最大不同在于在完成图8所示的数据迁移操作后可控制存储装置102类似单通道存储器进行操作。

当在高功率以及高带宽场景下使用存储装置102时,存储装置102 可使用交错存储访问模式(例如,真全交错模式)。如图8的子图(A)所示,可将高数据分区DH、中高数据分区DMH、中低数据分区DML以及低数据分区DL分别提交至不同的存储通道CH_1-CH_4以得到最大带宽。

当计算机系统进入挂起模式/待机模式或将存储装置102从高功率以及高带宽场景切换至低功率以及低带宽场景时,可启动上述数据迁移方案以将存储数据从一个存储空间转移至另一存储空间。例如,DMA控制器112可将包含高数据分区DH的存储数据从下部存储列Rank_4A转移至上部存储列Rank_1B的上部区域,以及将包含中高数据分区DMH的存储数据从下部存储列Rank_3A转移至上部存储列Rank_1B的下部区域,以及将包含中低数据分区DML的存储数据从下部存储列Rank_2A转移至下部存储列Rank_1A的上部区域。如图8的子图(B)所示,可将相同数据组块的高数据分区DH与中高数据分区DMH存储在存储通道CH_1的一个存储列Rank_1B,并且将相同数据组块的中低数据分区DML与低数据分区DL存储在相同存储通道CH_1的另一个存储列Rank_1A中。在本示例中,既然在某一时刻仅有一个存储通道处于激活状态,可控制存储装置102像单通道存储器一样进行操作。进一步地,存储装置102可使用另一交错存储访问模式(例如,伪全交错模式)以模拟原始全交错数据处理。

在数据迁移为上述复制/移动操作情况下,并且当上述数据迁移完成后存储空间MS_2、MS_3与MS_4不具有有效数据时,存储列Rank_2A、Rank_2B、Rank_3A、Rank_3B、Rank_4A与Rank_4B皆进入DPD状态,并且可关闭存储空间MS_2、MS_3与MS_4的相关存储控制器104_2、104_N-1与104_N(N等于4)的供电。在数据迁移是上述交换操作情况下,由于存储装置102类似于单通道存储器,则同时激活用于数据存取的通道数量相应减少。在这种情况下可降低功率消耗。此外,本发明的基于数据块的数据迁移方案可缓解或避免用户感知迁移延迟。

如上所示,当转换表114接收的物理地址用于请求的数据块是当前正从一个存储空间转移至另一存储空间时,转换表114可延迟外部硬件模块发出的接收物理地址的地址转换。可替换地,在存储数据从一个存储空间至另一存储空间的数据转移期间,可使用存储指针控制所请求数据块的数据存取。接下来将对此进行详细描述。

图9是根据本发明实施例描述的数据迁移控制电路另一设计示意图。可使用图9所示的数据迁移控制电路900替换图1所示的数据迁移控制电路106。在本实施例中,数据迁移控制电路900包含数据块存取控制器902以及DMA控制器112。如上所述,DMA控制器112将存储数据划分为多个数据块,并且通过DMA模式将数据块从一个存储空间转移至另一存储空间。对于数据块存取控制器902,其存储一个迁移指针PTR1或多个迁移指针PTR1-PTRn,其中DMA控制器112可维护每个迁移指针用于指示目前正在迁移的数据块所要迁移至的存储空间中迁移区域的位置(或目前正在迁移的数据块来自于的存储空间中迁移区域的位置)。换句话说,当DMA控制器112完成当前数据块的数据迁移时并且开始另一数据块的数据迁移之前,DMA控制器112指示数据块存取控制器902更新迁移指针。值得注意的是,迁移指针PTR1-PTRn的数量取决于DMA控制器112使用的数据迁移方案以及存储通道数量。

举例但不限制,迁移指针可指示当前DMA位置,其中上述当前DMA位置是DMA控制器112当前正操作的位置,并且与当前DMA位置关联的迁移区域的尺寸等于DMA单元尺寸(例如,一个数据块尺寸)。因此,可配置数据块存取控制器902检查迁移指针(例如,PTR1)以确定所请求数据块是否为当前正在迁移的数据块,其中上述当前正在迁移的数据块是迁移至迁移指针所指的迁移区域或者是来自于迁移指针所指的迁移区域。当确定所请求数据块是迁移至迁移区域或来自于迁移区域的当前正在迁移的数据块时,数据块存取控制器902阻止所请求数据块的数据存取,直到完全将所请求数据块存入迁移区域或 完全从迁移区域复制或移动出所请求数据块为止。

图10是根据本发明实施例描述的基于一个迁移指针的数据存取控制方案示意图,其用于将存储数据从一个存储空间转移至另一存储空间期间。对于图6所示的示例数据迁移操作,DMA控制器112维护数据块存取控制器902中的一个迁移指针PTR1以指示哪个数据块已经迁移以及哪个数据块还未迁移。在本实施例中,可将下部存储列Rank_2A中存储数据的数据块连续迁移至上部存储列Rank_1B并且连续保存入上部存储列Rank_1B。即,对于下部存储列Rank_2A中的任意两个连续数据块,在下部存储列Rank_2A中具有第二块地址的第二数据块之前,迁移下部存储列Rank_2A中具有第一块地址的第一数据块,其中第一块地址与第二块地址是下部存储列Rank_2A中紧邻的块地址。例如,第一块地址低于第二块地址。进一步地,可将第一数据块迁移至上部存储列Rank_1B中的第三块地址处,并且将第二数据块迁移至上部存储列Rank_1B中的第四块地址处,其中第三块地址与第四块地址是上部存储列Rank_1B中紧邻的块地址。例如,第三块地址低于第四块地址。为了避免DMA控制器112与外部硬件模块的竞争情形,迁移指针PTR1指向的迁移区域MZ1可定义为DMA控制器112正操作的小区域。

如图10所示,当DMA控制器112正转移数据块(例如,图6所示的高数据分区DH)时,DMA控制器112更新迁移指针PTR1以合理定义迁移区域MZ1。因此,数据块存取控制器902可参考迁移指针PTR1以获知迁移区域MZ1的地址范围。既然将下部存储列Rank_2A中存储数据的数据块连续迁移至上部存储列Rank_1B并且连续保存入上部存储列Rank_1B,所以迁移区域MZ1上方的存储区域不具有所迁移数据块,以及迁移区域MZ1下方的存储区域已经存储有已迁移的数据块。

当外部硬件模块请求已迁移至迁移区域MZ1下方的存储区域的数据时,数据块存取控制器902不阻止所请求数据的数据存取,从而使 得在迁移区域MZ1下方的存储区域立即存取所请求的数据。当外部硬件模块请求未迁移至迁移区域MZ1上方的存储区域的数据时,数据块存取控制器902不阻止所请求数据的数据存取,从而使得立即存取在下部存储列Rank_2A中所请求的数据。当外部硬件模块请求当前正在迁移至迁移区域MZ1的数据时,数据块存取控制器902阻止所请求数据的数据存取,直到将当前数据块(例如,高数据分区DH)完全存入迁移区域MZ1为止。

在本实施例中,可将上述迁移区域MZ1定义为迁移目的地。例如,当将下部存储列Rank_2A中所存数据的数据块连续迁移至上部存储列Rank_1B并且连续存入上部存储列Rank_1B时,图10中迁移指针PTR1指向的迁移区域MZ1可定义为迁移目的地(即,上部存储列Rank_1B)。

在一替换实施例中,可将上述迁移区域MZ1定义为迁移源。例如,当将上部存储列Rank_1B中所存数据的数据块连续迁移至下部存储列Rank_1A并且连续存入下部存储列Rank_1A时,图10中迁移指针PTR1指向的迁移区域MZ1可定义为迁移源(即,上部存储列Rank_1B)。上述方法可使用迁移区域MZ1达到避免DMA控制器112与外部硬件模块的竞争的相同目的。

请结合图7参考图11。图11是根据本发明实施例描述的基于迁移指针的另一数据存取控制方案示意图,其用于将存储数据从一个存储空间转移至另一存储空间期间。对于图7所示的示例数据迁移操作,DMA控制器112维护数据块存取控制器902中的一个迁移指针PTR1以指示哪个数据块已经迁移以及哪个数据块还未迁移。在本实施例中,可将下部存储列Rank_3A中存储数据的数据块连续迁移至上部存储列Rank_1B并且连续保存入上部存储列Rank_1B;以及将下部存储列Rank_4A中存储数据的数据块连续迁移至上部存储列Rank_2B并且连续保存入上部存储列Rank_2B。相似地,为了避免DMA控制器112与外部硬件模块(例如,MMU)的竞争,迁移指针PTR1指向的迁移区 域MZ1可定义为DMA控制器112正操作的上部存储列Rank_1B中的小区域;以及迁移指针PTR1也指向的迁移区域MZ2可定义为DMA控制器112正操作的上部存储列Rank_2B中的小区域。

如图11所示,当DMA控制器112正转移数据块(例如,中高数据分区DMH以及高数据分区DH)时,DMA控制器112更新迁移指针PTR1以合理定义存储列Rank_1B与Rank_2B中的迁移区域MZ1以及MZ2。因此,数据块存取控制器902可参考迁移指针PTR1以获知每个迁移区域MZ1以及MZ2的地址范围。既然将下部存储列Rank_3A中存储数据的数据块连续迁移至上部存储列Rank_1B并且连续保存入上部存储列Rank_1B,以及将下部存储列Rank_4A中存储数据的数据块连续迁移至上部存储列Rank_2B并且连续保存入上部存储列Rank_2B,所以迁移区域MZ1上方的存储区域与迁移区域MZ2上方的存储区域不具有所迁移数据块,以及迁移区域MZ1下方的存储区域与迁移区域MZ2下方的存储区域已经存储有已迁移的数据块。

当外部硬件模块请求已迁移至迁移区域MZ1/MZ2下方的存储区域的数据时,数据块存取控制器902不阻止所请求数据的数据存取,从而使得在迁移区域MZ1/MZ2下方的存储区域立即存取所请求的数据。当外部硬件模块请求未迁移至迁移区域MZ1/MZ2上方的存储区域的数据时,数据块存取控制器902不阻止所请求数据的数据存取,从而使得立即存取在下部存储列Rank_3A/Rank_4A中所请求的数据。当外部硬件模块请求当前正在迁移至迁移区域MZ1/MZ2的数据时,数据块存取控制器902阻止所请求数据的数据存取,直到将当前数据块DMH/DH(例如,高数据分区DH)完全存入迁移区域MZ1/MZ2为止。

在本实施例中,可将上述迁移区域MZ1以及MZ2定义为迁移目的地。例如,当将下部存储列Rank_3A中所存数据的数据块连续迁移至上部存储列Rank_1B并且连续存入上部存储列Rank_1B,以及将下部存储列Rank_4A中所存数据的数据块连续迁移至上部存储列Rank_2B并且连续存入上部存储列Rank_2B时,图11中迁移指针PTR1指向的 迁移区域MZ1以及MZ2可定义为迁移目的地(即,上部存储列Rank_1B与Rank_2B)。

在一替换实施例中,可将上述迁移区域MZ1以及MZ2定义为迁移源。例如,当将上部存储列Rank_1B中所存数据的数据块连续迁移至下部存储列Rank_3A并且连续存入下部存储列Rank_3A,以及将上部存储列Rank_2B中所存数据的数据块连续迁移至下部存储列Rank_4A并且连续存入下部存储列Rank_4A时,图11中迁移指针PTR1指向的迁移区域MZ1以及MZ2可定义为迁移源(即,上部存储列Rank_1B与Rank_2B)。上述方法可使用迁移区域MZ1以及MZ2达到避免DMA控制器112与外部硬件模块的竞争的相同目的。

请结合图8参考图12。图12是根据本发明实施例描述的基于迁移指针的另一数据存取控制方案示意图,其用于将存储数据从一个存储空间转移至另一存储空间期间。对于图8所示的示例数据迁移操作,DMA控制器112维护数据块存取控制器902中的多个迁移指针PTR1、PTR2、PTR3以指示哪个数据块已经迁移以及哪个数据块还未迁移。在本实施例中,可将下部存储列Rank_2A的下部区域中存储数据的数据块连续迁移至下部存储列Rank_1A的上部区域并且连续保存入下部存储列Rank_1A的上部区域;以及将下部存储列Rank_3A的下部区域中存储数据的数据块连续迁移至上部存储列Rank_1B的下部区域并且连续保存入上部存储列Rank_1B的下部区域;以及将下部存储列Rank_4A的下部区域中存储数据的数据块连续迁移至上部存储列Rank_1B的上部区域并且连续保存入上部存储列Rank_1B的上部区域。相似地,为了避免DMA控制器112与外部硬件模块的竞争,迁移指针PTR1指向的迁移区域MZ1可定义为DMA控制器112正操作的下部存储列Rank_1A的上部区域中的小区域;迁移指针PTR2指向的迁移区域MZ2可定义为DMA控制器112正操作的上部存储列Rank_1B的下部区域中的小区域;以及迁移指针PTR3指向的迁移区域MZ3可定义为DMA控制器112正操作的上部存储列Rank_1B的上部区域中的小区域。

如图12所示,当DMA控制器112正转移数据块(例如,中低数据分区DML、中高数据分区DMH以及高数据分区DH)时,DMA控制器112更新迁移指针PTR1-PTR3以合理定义存储列Rank_1B与Rank_1A中的迁移区域MZ1-MZ3。因此,数据块存取控制器902可参考迁移指针PTR1-PTR3以获知每个迁移区域MZ1-MZ3的地址范围,并且控制所请求数据的数据存取。

在本实施例中,可将上述迁移区域MZ1-MZ3定义为迁移目的地。例如,当将下部存储列Rank_2A的下部区域中所存数据的数据块连续迁移至下部存储列Rank_1A的上部区域并且连续存入下部存储列Rank_1A的上部区域,将下部存储列Rank_3A的下部区域中所存数据的数据块连续迁移至上部存储列Rank_1B的下部区域并且连续存入上部存储列Rank_1B的下部区域,以及将下部存储列Rank_4A的下部区域中所存数据的数据块连续迁移至上部存储列Rank_1B的上部区域并且连续存入上部存储列Rank_1B的上部区域时,图12中迁移指针PTR1-PTR3指向的迁移区域MZ1-MZ3可定义为迁移目的地(即,上部存储列Rank_1B与下部存储列Rank_1A)。

在一替换实施例中,可将上述迁移区域MZ1-MZ3定义为迁移源。例如,当将下部存储列Rank_1A的上部区域中所存数据的数据块连续迁移至下部存储列Rank_2A的下部区域并且连续存入下部存储列Rank_2A的下部区域,将上部存储列Rank_1B的下部区域中所存数据的数据块连续迁移至下部存储列Rank_3A的下部区域并且连续存入下部存储列Rank_3A的下部区域,以及将上部存储列Rank_1B的上部区域中所存数据的数据块连续迁移至下部存储列Rank_4A的下部区域并且连续存入下部存储列Rank_4A的下部区域时,图12中迁移指针PTR1-PTR3指向的迁移区域MZ1-MZ3可定义为迁移源(即,上部存储列Rank_1B与下部存储列Rank_1A)。上述方法可使用迁移区域MZ1-MZ3达到避免DMA控制器112与外部硬件模块的竞争的相同目的。

呈现上述描述以允许本领域技术人员根据特定应用以及其需要的 内容实施本发明。所述实施例的各种修改对于本领域技术人员来说是显而易见的,并且可将上述定义的基本原则应用于其他实施例。因此,本发明不局限于所述的特定实施例,而是符合与揭露的原则及新颖特征相一致的最宽范围。在上述细节描述中,为了提供对本发明的彻底理解,描述了各种特定细节。然而,本领域技术人员可以理解本发明是可实施的。

在不脱离本发明精神或本质特征的情况下,可以其他特定形式实施本发明。描述示例被认为说明的所有方面并且无限制。因此,本发明的范围由权利要求书指示,而非前面描述。所有在权利要求等同的方法与范围中的变化皆属于本发明的涵盖范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1