Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR BACKING UP DATA DURING MEMORY SYSTEM POWER-DOWN, AND MEMORY SYSTEM CONTROLLER
Document Type and Number:
WIPO Patent Application WO/2015/039422
Kind Code:
A1
Abstract:
Disclosed are a method for backing up data during memory system power-down, and a memory system controller, the method comprising: when detecting power-down, acquiring the current refresh progress of a cache in a memory system, the address of data in the cache requiring to be backed up into a non-volatile memory in the memory system, and a first time required for data backup; according to the current refresh progress of the cache and the address of the data in the cache, calculating a second time during which data can at least remain and not be lost since the last refresh; and if the second time is greater than the first time, then stopping the refreshing of the cache, and backing up the data onto the non-volatile memory. When a memory system powers down and the data in the cache needs to be backed up onto a non-volatile memory, the present invention can complete data backup before refreshing the data to be backed up, and then stops the refresh operation, thus avoiding unnecessary power consumption caused by the refresh operation, and extending the power supply time of the backup power.

Inventors:
LI YANSONG (CN)
Application Number:
PCT/CN2014/074430
Publication Date:
March 26, 2015
Filing Date:
March 31, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
G06F11/16
Foreign References:
CN103500131A2014-01-08
CN101446926A2009-06-03
CN101286086A2008-10-15
US8271737B22012-09-18
Other References:
See also references of EP 2889773A4
None
Attorney, Agent or Firm:
GUANGZHOU SCIHEAD PATENT AGENT CO.. LTD (CN)
广州三环专利代理有限公司 (CN)
Download PDF:
Claims:
权 利 要 求

1、 一种存储系统掉电数据备份方法, 其特征在于, 包括:

当检测到掉电时, 获取对存储系统中的緩存的当前刷新进度、所述緩存中 需要备份到所述存储系统中的非易失性存储器中的数据在所述緩存中的地址、 以及备份所述数据所需的第一时间;

根据所述緩存的当前刷新进度和所述数据在所述緩存中的地址,计算所述 数据自上次刷新至少还能继续保持数据不丟失的第二时间;

若所述第二时间大于所述第一时间时,停止对所述緩存的刷新,将所述数 据备份到所述非易失性存储器中。

2、 如权利要求 1所述的方法, 其特征在于, 所述获取对存储系统中的緩 存的当前刷新进度, 具体为:

从计数器获取对所述存储系统的緩存的当前刷新进度,所述当前刷新进度 为所述计数器的当前计数值;

其中,所述计数器的计数值随每次向所述緩存发送一次刷新命令按设定值 递增。 3、 如权利要求 1或 2所述的方法, 其特征在于, 所述根据所述緩存的当 前刷新进度和所述数据在所述緩存中的地址,计算所述数据自上次刷新至少还 能继续保持数据不丟失的第二时间, 包括:

当所述数据在所述緩存中的最小行号 pi大于或等于所述当前刷新进度对 应的緩存的行号 p时,计算所述数据自上次刷新至少还能继续保持数据不丟失 的第二时间 tl=Tl-[T2-(pl-p)*A], 其中, T1 为任一行数据在刷新一次后能保 持的最长时间, Τ2 为对所述緩存进行刷新的周期, 相邻两行的刷新间隔

Δ=Τ2/Μ, Μ为所述緩存的总行数。

4、 如权利要求 3所述的方法, 其特征在于, 所述根据所述緩存的当前刷 新进度和所述数据在所述緩存中的地址,计算所述数据自上次刷新至少还能继 续保持数据不丟失的第二时间, 包括:

当所述数据在所述緩存中的最大行号 p2小于或等于所述当前刷新进度对 应的緩存的行号 p时,计算所述数据自上次刷新至少还能继续保持数据不丟失 的第二时间 tl=Tl-(p-pl)*A。

5、 如权利要求 3或 4所述的方法, 其特征在于, 所述根据所述緩存的当 前刷新进度和所述数据在所述緩存中的地址,计算所述数据自上次刷新至少还 能继续保持数据不丟失的第二时间, 包括:

当所述当前刷新进度对应的緩存的行号 ρ 大于所述数据在所述緩存中的 最小行号 pl, 且所述当前刷新进度对应的緩存的行号 ρ小于所述数据在所述 緩存中的最大行号 ρ2时, 计算所述数据自上次刷新至少还能继续保持数据不 丟失的第二时间 tl包括 t2和 t3,其中, t2为从行号 p至行号 p2之间的数据自 上次刷新至少还能继续保持的时间, t2=Tl-T2, t3为从行号 pi至行号 p之间 的数据自上次刷新至少还能继续保持的时间, t3=Tl-(p-pl)*A-t4, t4为将从行 号 p至行号 p2之间的数据备份到所述非易失性存储器所需的时间。

6、 如权利要求 5所述的方法, 其特征在于, 所述若所述第二时间大于所 述第一时间时, 停止对所述緩存的刷新, 具体为:

若 t2大于 t4且 t3大于将从行号 pi至行号 p之间的数据备份到所述非易 失性存储器所需的时间 t5, 则停止对所述緩存的刷新。

7、 一种存储系统控制器, 其特征在于, 包括:

获取单元, 用于当检测到掉电时, 获取对存储系统中的緩存的当前刷新进 度、所述緩存中需要备份到所述存储系统中的非易失性存储器中的数据在所述 緩存中的地址、 以及备份所述数据所需的第一时间;

计算单元,用于根据所述緩存的当前刷新进度和所述数据在所述緩存中的 地址, 计算所述数据自上次刷新至少还能继续保持数据不丟失的第二时间; 刷新单元, 用于若所述第二时间大于所述第一时间时,停止对所述緩存的 刷新;

备份单元, 用于将所述数据备份到所述非易失性存储器中。

8、 如权利要求 7所述的存储系统控制器, 其特征在于, 所述获取单元具 体用于从计数器获取对所述存储系统的緩存的当前刷新进度,所述当前刷新进 度为所述计数器的当前计数值;

其中,所述计数器的计数值随每次向所述緩存发送一次刷新命令按设定值 递增。 9、 如权利要求 7或 8所述的存储系统控制器, 其特征在于, 所述计算单 元具体用于:

当所述数据在所述緩存中的最小行号 pi大于或等于所述当前刷新进度对 应的緩存的行号 p时,计算所述数据自上次刷新至少还能继续保持数据不丟失 的第二时间 tl=Tl-[T2-(pl-p)*A], 其中, T1 为任一行数据在刷新一次后能保 持的最长时间, Τ2 为对所述緩存进行刷新的周期, 相邻两行的刷新间隔 Δ=Τ2/Μ, Μ为所述緩存的总行数。

10、 如权利要求 9所述的存储系统控制器, 其特征在于, 所述计算单元具 体还用于:

当所述数据在所述緩存中的最大行号 ρ2小于或等于所述当前刷新进度对 应的緩存的行号 ρ时,计算所述数据自上次刷新至少还能继续保持数据不丟失 的第二时间 =Τ1-(ρ-ρ1)*Δ。

11、 如权利要求 9或 10所述的存储系统控制器, 其特征在于, 所述计算 单元具体还用于:

当所述当前刷新进度对应的緩存的行号 ρ 大于所述数据在所述緩存中的 最小行号 pl, 且所述当前刷新进度对应的緩存的行号 ρ小于所述数据在所述 緩存中的最大行号 ρ2时, 计算所述数据自上次刷新至少还能继续保持数据不 丟失的第二时间 tl包括 t2和 t3,其中, t2为从行号 p至行号 p2之间的数据自 上次刷新还能继续保持的时间, t2=Tl-T2, t3为从行号 pi至行号 p之间的数 据自上次刷新至少还能继续保持的时间, t3=Tl-(p-pl)*A-t4, t4为将从行号 p 至行号 p2之间的数据备份到所述非易失性存储器所需的时间。

12、 如权利要求 11所述的存储系统控制器, 其特征在于, 所述刷新单元 具体用于:

若 t2大于 t4且 t3大于将从行号 pi至行号 p之间的数据备份到所述非易 失性存储器所需的时间 t5, 则停止对所述緩存的刷新。

Description:
一 一 一种存储系统掉电数据^ 方法及存储系统控制器

本申请要求于 2013年 9月 18日提交中国专利局、 申请号为 CN 201310428560.2、发明名称为 "一种存储系统掉电数据备份方法及存储系 统控制器" 的中国专利申请的优先权, 其全部内容通过引用结合在本申 请中。 技术领域

本发明涉及存储技术领域,具体涉及一种存储 系统掉电数据备份方法及存 储系统控制器。 背景技术

为了解决存储系统掉电丟失数据的问题,现有 技术中常釆用备用电源进行 掉电时的供电, 以便存储系统将緩存中的数据进行备份。 然而备用电源供电时 间一般较短, 依靠备用电源在掉电时供电进行数据备份存在 一定的风险。

综上所述,如何在掉电发生时延长备用电源的 供电时间成为业界迫切需要 解决的问题。 发明内容

有鉴于此,本发明提供了一种存储系统掉电数 据备份方法及存储系统控制 器, 以期在掉电发生时延长备用电源的供电时间。

第一方面, 提供了一种存储系统掉电数据备份方法, 包括:

当检测到掉电时, 获取对存储系统中的緩存的当前刷新进度、所 述緩存中 需要备份到所述存储系统中的非易失性存储器 中的数据在所述緩存中的地址、 以及备份所述数据所需的第一时间;

根据所述緩存的当前刷新进度和所述数据在所 述緩存中的地址,计算所述 数据自上次刷新至少还能继续保持数据不丟失 的第二时间;

若所述第二时间大于所述第一时间时,停止对 所述緩存的刷新,将所述数 据备份到所述非易失性存储器中。 - - 在第一种可能的实现方式中,所述获取对所述 存储系统的緩存的当前刷新 进度, 具体为:

从计数器获取对所述存储系统的緩存的当前刷 新进度,所述当前刷新进度 为所述计数器的当前计数值;

其中,所述计数器的计数值随每次向所述緩存 发送一次刷新命令按设定值 递增。

结合第一方面或第一方面的第一种可能的实现 方式,在第二种可能的实现 方式中, 所述根据所述緩存的当前刷新进度和所述数据 在所述緩存中的地址, 计算所述数据自上次刷新至少还能继续保持数 据不丟失的第二时间, 包括: 当所述数据在所述緩存中的最小行号 pi大于或等于所述当前刷新进度对 应的緩存的行号 p时,计算所述数据自上次刷新至少还能继续 持数据不丟失 的第二时间 tl=Tl-[T2-(pl-p)*A], 其中, T1 为任一行数据在刷新一次后能保 持的最长时间, Τ2 为对所述緩存进行刷新的周期, 相邻两行的刷新间隔 Δ=Τ2/Μ, Μ为所述緩存的总行数。

结合第一方面的第二种可能的实现方式,在第 三种可能的实现方式中, 所 述根据所述緩存的当前刷新进度和所述数据在 所述緩存中的地址,计算所述数 据自上次刷新至少还能继续保持数据不丟失的 第二时间, 包括:

当所述数据在所述緩存中的最大行号 ρ2小于或等于所述当前刷新进度对 应的緩存的行号 ρ时,计算所述数据自上次刷新至少还能继续 持数据不丟失 的第二时间 =Τ1-(ρ-ρ1)*Δ。

结合第一方面的第二种可能的实现方式或第一 方面的第三种可能的实现 方式,在第四种可能的实现方式中, 所述根据所述緩存的当前刷新进度和所述 数据在所述緩存中的地址,计算所述数据自上 次刷新至少还能继续保持数据不 丟失的第二时间, 包括:

当所述当前刷新进度对应的緩存的行号 ρ 大于所述数据在所述緩存中的 最小行号 pl, 且所述当前刷新进度对应的緩存的行号 ρ小于所述数据在所述 緩存中的最大行号 ρ2时, 计算所述数据自上次刷新至少还能继续保持数 据不 丟失的第二时间 tl包括 t2和 t3,其中, t2为从行号 p至行号 p2之间的数据自 上次刷新至少还能继续保持的时间, t2=Tl-T2, t3为从行号 pi至行号 p之间 的数据自上次刷新至少还能继续保持的时间, t3=Tl-(p-pl)*A-t4, t4为将从行 - - 号 p至行号 p2之间的数据备份到所述非易失性存储器所需 时间。

结合第一方面的第四种可能的实现方式,在第 五种可能的实现方式中, 所 述若所述第二时间大于所述第一时间时, 停止对所述緩存的刷新, 具体为: 若 t2大于 t4且 t3大于将从行号 pi至行号 p之间的数据备份到所述非易 失性存储器所需的时间 t5, 则停止对所述緩存的刷新。

第二方面, 提供了一种存储系统控制器, 包括:

获取单元,用于当检测到掉电时,获取对存储 系统的緩存的当前刷新进度、 所述緩存中需要备份到所述存储系统中的非易 失性存储器中的数据在所述緩 存中的地址、 以及备份所述数据所需的第一时间;

计算单元,用于根据所述緩存的当前刷新进度 和所述数据在所述緩存中的 地址, 计算所述数据自上次刷新至少还能继续保持数 据不丟失的第二时间; 刷新单元, 用于若所述第二时间大于所述第一时间时,停 止对所述緩存的 刷新;

备份单元, 用于将所述数据备份到所述非易失性存储器中 。

在第一种可能的实现方式中,所述获取单元具 体用于从计数器获取对所述 存储系统的緩存的当前刷新进度,所述当前刷 新进度为所述计数器的当前计数 值;

其中,所述计数器的计数值随每次向所述緩存 发送一次刷新命令按设定值 递增。

结合第二方面或第二方面的第一种可能的实现 方式,在第二种可能的实现 方式中, 所述计算单元具体用于:

当所述数据在所述緩存中的最小行号 pi大于或等于所述当前刷新进度对 应的緩存的行号 p时,计算所述数据自上次刷新至少还能继续 持数据不丟失 的第二时间 tl=Tl-[T2-(pl-p)*A], 其中, T1 为任一行数据在刷新一次后能保 持的最长时间, Τ2 为对所述緩存进行刷新的周期, 相邻两行的刷新间隔 Δ=Τ2/Μ, Μ为所述緩存的总行数。

结合第二方面的第二种可能的实现方式,在第 三种可能的实现方式中, 所 述计算单元具体还用于:

当所述数据在所述緩存中的最大行号 ρ2小于或等于所述当前刷新进度对 应的緩存的行号 ρ时,计算所述数据自上次刷新至少还能继续 持数据不丟失 - - 的第二时间 tl=Tl-(p-pl)*A。

结合第二方面的第二种可能的实现方式或第二 方面的第三种可能的实现 方式, 在第四种可能的实现方式中, 所述计算单元具体还用于:

当所述当前刷新进度对应的緩存的行号 ρ 大于所述数据在所述緩存中的 最小行号 pl, 且所述当前刷新进度对应的緩存的行号 ρ小于所述数据在所述 緩存中的最大行号 ρ2时, 计算所述数据自上次刷新至少还能继续保持数 据不 丟失的第二时间 tl包括 t2和 t3,其中, t2为从行号 p至行号 p2之间的数据自 上次刷新还能继续保持的时间, t2=Tl-T2, t3为从行号 pi至行号 p之间的数 据自上次刷新还能继续保持的时间, t3=Tl-(p-pl)*A-t4, t4为将从行号 p至行 号 p2之间的数据备份到所述非易失性存储器所需 时间。

结合第二方面的第四种可能的实现方式,在第 五种可能的实现方式中, 所 述刷新单元具体用于:

若 t2大于 t4且 t3大于将从行号 pi至行号 p之间的数据备份到所述非易 失性存储器所需的时间 t5, 则停止对所述緩存的刷新。

本发明在存储系统发生掉电、需要将緩存中的 数据备份到非易失性存储器 中时,在对要备份的数据进行再次刷新之前能 将该数据备份完的情况下,停止 刷新操作, 可以节省不必要的刷新操作带来的电能消耗, 延长备用电源的供电 时间。 附图说明

为了更清楚地说明本发明实施例或现有技术中 的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单 地介绍,显而易见地, 下面描述 中的附图仅仅是本发明的一些实施例,对于本 领域普通技术人员来讲,在不付 出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。

图 1为 PCIe插卡形态的存储系统的结构示意图;

图 2为分离形态的存储系统的结构示意图;

图 3为固态硬盘 SSD所在系统的结构示意图;

图 4为本发明一种存储系统掉电数据备份方法的 个实施例的流程图; 图 5为本发明一种存储系统掉电数据备份方法的 一个实施例的流程图; - - 图 6a为緩存当前的刷新进度与待备份的数据所在 置关系的一种情况示 意图;

图 6b为緩存当前的刷新进度与待备份的数据所在 置关系的另一种情况 示意图;

图 6c为緩存当前的刷新进度与待备份的数据所在 置关系的又一种情况 示意图;

图 7为本发明一种存储系统控制器的一个实施例 结构示意图。 具体实施方式

下面将结合本发明实施例中的附图,对本发明 实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。

本发明的存储系统可以是如图 1 所示的外设互联快速通道 (Peripheral Component Interconnect, PCIe)插卡形态的固态硬盘 (Solid State Drive, SSD), 也可以是如图 2所示的分离形态的 SSD或机械硬盘 (Hard Disk Drive, HDD)。 如图 1所示的 PCIe插卡形态的 SSD, 控制器与闪存介质是一体的, 该存储系 统即 SSD, 只有一个控制器, 闪存介质是非易失性存储器, 与緩存相连还有一 外接的非易失性存储器。 如图 2所示的分离形态的 SSD或 HDD, 在一个存储 系统中可以有多个 SSD或 HDD连接一个控制器, SSD或 HDD中本身也有一 个控制器连接其存储介质, 其存储介质是非易失性存储器, 与緩存相连还有一 外接的非易失性存储器, 该存储系统可以是独立磁盘冗余阵列 (Redundant Array of Independent Disks, RAID ) 。

以图 1所示的 PCIe插卡形态的 SSD为例, SSD是一种用闪存作为存储介 质的存储设备, 由于不存在机械硬盘那样的旋转部件, 因此读写性能更高, 环 境适应性更好, 功耗更低, 被称为固态硬盘。 SSD的数据接口一般釆用 PCIe, 由一个控制器、 緩存和闪存介质三个部分组成。 闪存介质用于长期保存数据, 掉电后数据不会丟失。

控制器用于从 PCIe接口接收主机发来的读写命令, 对命令进行解析后将 - - 数据写入闪存介质(写操作)或者从闪存介质 中读取数据并返回给主机 (读操 作)。主机一般特指 SSD所在系统的处理器小系统, 包括处理器、 内存和桥片, 它负责运行操作系统并执行应用程序, 对 SSD发起读写访问。 SSD所在系统 可以是服务器或个人电脑, 系统框图如图 3所示。

存储系统中一般设置有緩存,緩存与存储系统 的控制器相连。緩存一般是 由动态随机存储器 (Dynamic Random Access Memory, DRAM)组成的, 用于暂 时保存待写入闪存介质中的数据, 或者从闪存介质中读出的数据, 以及地址映 射表等工作参数。 由于 DRAM的速度比闪存介质更快, 因此使用緩存可以提 高 SSD的读写速度, 同时由于闪存介质的擦写次数是有限的, 通过緩存可以 减少闪存介质的擦写频度, 从而延长了 SSD的使用寿命。

然而, SSD在工作过程中可能存在掉电的风险,例如它 所在的服务器或个 人电脑因为电源故障而掉电, SSD也会同时下电, 而緩存所用的 DRAM在掉 电后信息会丟失,其中会包含一些尚未写入闪 存介质的数据,丟失后会造成闪 存介质中的数据出错。本发明釆用备用电池或 超级电容等备用电源进行掉电时 的供电。

釆用备用电池进行掉电时的供电,发生掉电后 存储系统可以切换到备用电 池供电, 不同容量的电池可以支持不同的时间, 一般可以达到几天, 足以将緩 存中的数据进行备份, 但备用电池的体积较大, 会占用较多的存储系统空间, 影响存储系统的可用的非易失性存储器的数量 , 进而影响存储系统的存储容 量, 且备用电池存在环境污染且寿命短的问题。

另一种方法是将备用电池改为超级电容, 在掉电之前超级电容就已充好 电, 掉电之后开始放电, 为緩存中的数据写入非易失性存储器提供电能 。 超级 电容是一种容量达到法拉级的新型电容器,具 有体积小、充电快、循环次数高、 温度特性好、 无污染等优点。 根据存储系统的功耗不同, 超级电容能够支持的 供电时间可能从几十毫秒到几秒钟。但由于供 电时间较短, 而且超级电容的容 量会由于老化逐渐降低, 环境温度的升高也会增加存储系统的功耗。

先介绍一下 DRAM的刷新原理:

作为緩存的 DRAM是一种易失性的存储器, 它是通过存储单元的寄生电 容来保存数据的, 由于寄生电容存在漏电现象, 因此正常工作时需要周期性的 刷新才能保证其中的数据不会丟失。 具体来说, 控制器会周期性的向 DRAM 发送刷新命令, 而 DRAM内部有一个刷新计数器, 每当收到一个有效的刷新 命令就会将计数器加 1, 这个计数值对应于 DRAM内部的一行存储单元, 然 后对该行进行刷新。 例如 DRAM内部有 8192行存储单元, 刷新计数器有 13 位,它的初始值为 0,控制器发送的每个刷新命令将计数器加 1,累加到 OxlFFF 后回到 0重新计数。

DRAM的刷新命令由几个信号的特定组合来定义 当同步时钟信号 CLK 在某时刻釆样到的片选信号 /CS为 0、行选通信号/ RAS为 0、 列选通信号 /CAS 为 0、 写信号 /WE为 1则认为收到一个有效的刷新命令。

DRAM是以行为单位按顺序、 周期性刷新的, 每次刷新一行, 过了一个 刷新间隔后再刷新下一行, 直到所有行全部刷新一遍, 按照 DRAM规范同一 行的刷新周期不超过 64毫秒(当 DRAM的壳温在 85度以下时, 高于 85度需 要刷新的更快), 或者说将全部 8192行刷新一遍最多不超过 64毫秒, 否则存 在丟失数据的风险, 由此可以算出相邻两行的刷新间隔时间为 64000/8192=7.8125微秒,这个参数在规范中记为 tREFI。为了保证一定的裕量, 实际的刷新周期一般短于 64毫秒。

在 DRAM执行刷新操作的过程中以及刷新完成之后 一段时间内, 不能 执行任何其他操作, 这段时间在规范中记为 tRFC, 一般在一百纳秒以上, DRAM的容量越大这个参数也越大,因此刷新操 会影响 DRAM的读写性能。

DRAM刷新时的电流较大, 一般在数十毫安以上, 因此会增加电能的损 耗。

再讨论如何保证存储系统掉电时备份数据的可 靠性。

当存储系统发生掉电时需要尽快将緩存中的数 据备份到非易失性存储器 中, 否则由于超级电容的电量不足造成电压跌落, 将无法继续保存数据, 造成 数据丟失。 根据上面的描述可知, DRAM在刷新时会消耗较多的电流, 而且 在刷新过程中不能执行任何操作, 必须暂停数据备份,这些都会增加数据丟失 的风险。

考虑到在实际应用中, 并不需要将整个緩存的内容都备份出去,一方 面是 因为緩存的容量较大, 例如 1GB, 全部备份需要很长的时间, 超级电容的电 - - 量无法满足; 另一方面是因为实际需要备份的内容较少, 例如 20MB, 这些才 是暂时还未写入闪存介质的用户数据,而緩存 中的其他数据都是控制器运行所 需的参数,例如地址映射表,它是可以在每次 重启时重新生成的,不需要备份。 在这种情况下,如果待备份的数据自从上次刷 新之后还能保持足够的时间, 即 使在将它们全部备份到闪存介质的过程中也不 会丟失,我们就可以将刷新操作 停止, 避免增加不必要的电能损耗。

不失一般性, 假设緩存总容量是 128MB, 由 4个 DRAM芯片组成, 每个 芯片的数据线有 8位, 行地址 13位对应于 8K行, 列地址 10位对应于 1K列, bank 地址 2 位对应于 4 个 bank , 这样每个 DRAM 芯片的容量是 8K*1K*4=32MB。 每当控制器发出一个刷新命令时, 4个 DRAM芯片同时收 到该命令并进行刷新,而每个 DRAM芯片内部的 4个 bank也是同时进行刷新 的, 由同一个刷新计数器提供当前的刷新行地址, 因此可以只考察某一个 DRAM芯片的刷新情况。

因此, 本发明提供一种存储系统掉电数据备份方法及 存储系统控制器,在 存储系统发生掉电、需要将緩存中的数据备份 到非易失性存储器中时,在对要 备份的数据进行刷新之前能将该数据备份完的 情况下,停止刷新操作, 可以节 省不必要的刷新操作带来的电能消耗, 延长备用电源的供电时间。

图 4为本发明一种存储系统掉电数据备份方法的 个实施例的流程图。如 图 4所示, 该方法包括:

步骤 S101, 当检测到掉电时, 获取对存储系统中的緩存的当前刷新进度、 所述緩存中需要备份到所述存储系统中的非易 失性存储器中的数据在所述緩 存中的地址、 以及备份所述数据所需的第一时间。

存储系统的控制器可以连接一个电压检测电路 ,当它检测到系统提供的电 源电压跌落到额定值以下就认为掉电了, 然后产生一个指示信号给 SSD的控 制器, 控制器检测到掉电, 就可以启动掉电后的数据备份操作。

控制器控制对緩存的刷新, 当控制器检测到掉电时, 可以获取控制器对緩 存的当前刷新进度,控制器根据地址依序地对 緩存的数据进行刷新, 该当前刷 新进度即当前刷新到的緩存的地址。

控制器控制对緩存的读写操作, 因此, 可以获取緩存中需要备份到存储系 - - 统的非易失性存储器中的数据在緩存中的地址 ,并且能容易地计算出备份该数 据到非易失性存储器的时间 1。

值得说明的是, 如果存储系统是如图 1所示的 PCIe插卡形态的 SSD, 则 本发明的非易失性存储器可以是 SSD中的闪存介质, 也可以是与该 SSD中的 緩存连接的非易失存储器, 緩存中数据的备份由 SSD的控制器进行控制; 如 果存储系统是如图 2所示的分离形态的 SSD或 HDD, 该存储系统的控制器连 接多个 SSD或 HDD, 则本发明的非易失性存储器可以是 SSD或 HDD中的存 储介质,也可以是与该存储系统的緩存连接的 非易失存储器,緩存中数据的备 份由存储系统中的控制器进行控制。

当前刷新到的緩存的地址可能小于或等于或大 于待备份的数据在緩存中 的起始地址, 也即控制器本次刷新还未刷新到该数据、 或刚刚刷新过该数据; 也可能当前刷新到的緩存的地址与数据在緩存 中的地址部分重合,即控制器正 在刷新该数据。

步骤 S102, 根据所述緩存的当前刷新进度和所述数据在所 述緩存中的地 址, 计算所述数据自上次刷新至少还能继续保持数 据不丟失的第二时间。

緩存中的数据进行一次刷新能保持一定的时间 以不丟失数据。根据本次刷 新在緩存中的当前地址和待备份的数据在緩存 中的地址,可以计算出该数据自 上次刷新还能继续保持数据不丟失的时间 2。

步骤 S103, 若所述第二时间大于所述第一时间时, 停止对所述緩存的刷 新, 将所述数据备份到所述非易失性存储器中。

如果该数据自上次刷新还能继续保持数据不丟 失的时间 2 大于备份该数 据到存储系统的非易失性存储器的时间 1, 即在时间 1内不进行刷新也能保持 数据不丟失, 则可以停止对緩存的刷新, 将数据备份到存储介质中。 由于停止 了对緩存的刷新,可以节省不必要的刷新操作 带来的电能消耗,延长备用电源 的供电时间。 如果时间 2不大于时间 1, 则仍然保持刷新和备份数据。

根据本发明实施例提供的一种存储系统掉电数 据备份方法,在存储系统发 生掉电、需要将緩存中的数据备份到非易失性 存储器中时,在对要备份的数据 进行刷新之前能将该数据备份完的情况下,停 止刷新操作, 可以节省不必要的 刷新操作带来的电能消耗, 延长备用电源的供电时间。 - - 图 5为本发明一种存储系统掉电数据备份方法的 一个实施例的流程图。 如图 5所示, 该方法包括:

步骤 S201, 检测掉电是否发生, 如果是, 则转至步骤 S202; 否则, 转至 步骤 S201, 继续检测。

控制器不停地检测是否收到存储系统上的电压 检测电路发送的掉电指示 信号,当电压检测电路检测到系统提供的电源 电压跌落到额定值以下就认为掉 电了, 然后产生一个指示信号给 SSD的控制器, 于是控制器可以启动掉电后 的数据备份操作。

步骤 S202, 确定 Tl、 Τ2、 △、 t、 pi和 p2。

在本发明中, 緩存一般为 DRAM, DRAM中的数据是按行列存储、 按行 刷新的, 控制器获取数据存储的行号。 在这里, T1 为任一行数据在刷新一次 后能保持的最长时间, T2为对所述緩存进行刷新的周期, T2<T1。相邻两行的 刷新间隔 Δ=Τ2/Μ, Μ为所述緩存的总行数。 t为备份緩存中的数据到存储介 质中所需的时间。 pi和 p2分别为该待备份的数据在緩存中的最小行号 最大 行号。

需要说明的是, 緩存备份数据的时候都是按地址从低到高的顺 序进行的, 也就是与刷新的顺序一致。

按照当前的刷新进度与待备份的数据所在位置 的关系, 可以分为三种情 况: 如图 5a所示, 第一种情况是待备份的数据的位置在当前刷新 位置以上; 如图 5b所示, 第二种情况是待备份的数据的位置在当前刷新 位置以下; 如图 5c 所示, 第三种情况是当前刷新位置在待备份的数据中 间。 下面针对每种情 况分别进行描述:

步骤 S203, 确定当前刷新行号 p与 pl、 p2的大小关系, 若 p pl, 则转 至步骤 S204; 若 p > p2, 则转至步骤 S205; 若 pl<p<p2, 则转至步骤 S206。

当前刷新位置即当前刷新行号 p, 若 p pl, 即第一种情况; 若 p > p2, 即第二种情况; 若 pl<p<p2, 即第三种情况。

在本发明实施例中,可以在控制器内部集成一 个计数器,也可以控制器连 接一个独立的计数器, 该计数器类似于 DRAM内部的刷新计数器, 上电复位 后的初始值为 0, 每当控制器发出刷新命令时, 计数器增值, 用于记录当前的 - - 刷新进度, 并与 DRAM中的刷新计数器保持同步。

步骤 S204, 判断是否满足 Τ1-[Τ2-(ρ1-ρ)* Δ ], 若是, 则转至步骤 S208; 否则, 转至步骤 S209。

如图 6a所示, p pl, 待备份的数据的位置在当前刷新位置以上, 由于 pi 行以上各行的数据在上次刷新时比它刷新的更 晚一些, 可以保持相对更长 的时间, 因此更不会丟失了, 因此, 只需考虑最小行号 pi还能继续保持的时 间与备份 pi至 p2行的数据到存储介质中所需的时间的关系。 对行 pi来说, 自上次刷新完成一个刷新周期还需要的时间为 (ρ1-ρ)* Δ,因此自从上次刷新以 来已经过去的时间是 T2-(pl-p)*△,而行 pi保证不丟失数据的最长时间是 T1, 一般为 64ms, 所以 Τ1-[Τ2-(ρ1-ρ)* Δ ]是表示行 pi还能继续保持数据不丟失的 时间。

如果 t<Tl-[T2-(pl-p)* Δ ], 则可以停止刷新, 将 pi行至 p2行的数据全部 备份到非易失性存储器中; 否则, 继续保持刷新。

步骤 S205,判断是否满足 Τ1-(ρ-ρ1)* Δ,若是,则转至步骤 S208; 否贝 'J, 转至步骤 S209。

如图 6b所示, p > p2, 待备份的数据的位置在当前刷新位置以下, 当前位 置 p在 pi之上, 相当于行 pi刚被刷新过 (因为刷新方向是从下到上), 所以可 以直接得出刷新之后已经过去的时间是 (ρ-ρ1)* Δ,于是 Τ1-(ρ-ρ1)* Δ就是行 pi 还能继续保持数据不丟失的时间。

如果 t<Tl-(p-pl)* A, 则可以停止刷新, 将 pi行至 p2行的数据全部备份 到非易失性存储器中; 否则, 继续保持刷新。

步骤 S206, 确定 t4和 t5。

步骤 S207, 判断是否满足 t4<Tl-T2和 t5<Tl-(p-pl)* A -t4, 若是, 则转至 步骤 S208; 否则, 转至步骤 S209。

如图 6c所示, pl<p<p2, 当前刷新位置在待备份的数据中间, 备份 p行至 p2行的数据到非易失性存储器所需的时间为 t4, t4=t*(p2-p)/(p2-pl), t为将从 行号 pi至行号 p2之间的数据备份到所述非易失性存储器总共 需的时间。对 于 p行至 p2行的数据, 当前控制器正好刷新至 p行, 因此, 从行号 p至行号 p2之间的数据自上次刷新至少还能继续保持的 间 t2=Tl-T2, t4应该满足 - - t4<Tl-T2。

备份 pi 行至 p 行的数据到非易失性存储器所需的时间为 t5, t5=t*(p-pl)/(p2-pl)。 对于 pi行至 p行的数据, 其情况与第二种情况类似, 因 此, 从行号 pi 至行号 p 之间的数据自上次刷新至少还能继续保持的时 间 t3=Tl-(p-pl)*A-t4, t5应该满足 t5< Tl-(p-pl)*A-t4。

当 t4<Tl-T2且 t5< Tl-(p-pl)*A-t4则可以停止刷新, 将 pi行至 p2行的数 据备份到非易失性存储器, 否则, 转至步骤 S209和 S210, 保持刷新和备份数 据。

步骤 S208, 停止刷新。

步骤 S209, 保持刷新。

步骤 S210, 备份数据。

对于第一种和第二种情况,将 pi行至 p2行的数据顺序备份到非易失性存 储器中; 对于第三种情况, 则首先将 p行至 p2行的数据备份到非易失性存储 器, 然后将 pi行至 p行的数据备份到非易失性存储器。 对于上述三种情况中 如果数据自上次刷新至少还能继续保持数据不 丟失的时间不大于备份所述数 据所需的时间的情况, 则需要保持刷新并备份数据。根据本发明实施 例提供的 一种存储系统掉电数据备份方法, 在存储系统发生掉电、需要将緩存中的数据 备份到非易失性存储器中时,在对要备份的数 据进行刷新之前能将该数据备份 完的情况下, 停止刷新操作, 可以节省不必要的刷新操作带来的电能消耗, 延 长备用电源的供电时间, 缩短数据备份的时间。

图 7 为本发明一种存储系统控制器的一个实施例的 结构示意图。 如图 7 所示, 该存储系统控制器 1000包括:

获取单元 11, 用于当检测到掉电时, 获取对存储系统中的緩存的当前刷 新进度、所述緩存中需要备份到所述存储系统 中的非易失性存储器中的数据在 所述緩存中的地址、 以及备份所述数据所需的第一时间。

计算单元 12, 用于根据所述緩存的当前刷新进度和所述数据 在所述緩存 中的地址, 计算所述数据自上次刷新至少还能继续保持数 据不丟失的第二时 间。

刷新单元 13, 用于若所述第二时间大于所述第一时间时, 停止对所述緩 - - 存的刷新。

备份单元 14, 用于将所述数据备份到所述非易失性存储器中 。

根据本发明实施例提供的一种存储系统控制器 ,在存储系统发生掉电、需 要将緩存中的数据备份到非易失性存储器中时 ,在对要备份的数据进行刷新之 前能将该数据备份完的情况下,停止刷新操作 , 可以节省不必要的刷新操作带 来的电能消耗, 延长备用电源的供电时间。

在一些实施例中,获取单元具体用于从计数器 获取对所述存储系统的緩存 的当前刷新进度, 所述当前刷新进度为所述计数器的当前计数值 ; 其中, 所述 计数器的计数值随每次向所述緩存发送一次刷 新命令按设定值递增。

在本发明实施例中,可以在控制器内部集成一 个计数器,也可以控制器连 接一个独立的计数器, 该计数器类似于 DRAM内部的刷新计数器, 上电复位 后的初始值为 0, 每当控制器发出刷新命令时, 计数器增值, 用于记录当前的 刷新进度, 并与 DRAM中的刷新计数器保持同步。

计算单元具体用于:

当所述数据在所述緩存中的最小行号 pi大于或等于所述当前刷新进度对 应的緩存的行号 p时,计算所述数据自上次刷新至少还能继续 持数据不丟失 的第二时间 tl=Tl-[T2-(pl-p)*A], 其中, T1 为任一行数据在刷新一次后能保 持的最长时间, Τ2 为对所述緩存进行刷新的周期, 相邻两行的刷新间隔 Δ=Τ2/Μ, Μ为所述緩存的总行数。

计算单元具体还用于:

当所述数据在所述緩存中的最大行号 ρ2小于或等于所述当前刷新进度对 应的緩存的行号 ρ时,计算所述数据自上次刷新至少还能继续 持数据不丟失 的第二时间 =Τ1-(ρ-ρ1)*Δ。

计算单元具体还用于:

当所述当前刷新进度对应的緩存的行号 ρ 大于所述数据在所述緩存中的 最小行号 pl, 且所述当前刷新进度对应的緩存的行号 ρ小于所述数据在所述 緩存中的最大行号 ρ2时, 计算所述数据自上次刷新至少还能继续保持数 据不 丟失的第二时间 tl包括 t2和 t3,其中, t2为从行号 p至行号 p2之间的数据自 上次刷新还能继续保持的时间, t2=Tl-T2, t3为从行号 pi至行号 p之间的数 - - 据进行上次刷新以来还能继续保持的时间, t3=Tl-(p-pl)*A-t4, t4为将从行号 p至行号 p2之间的数据备份到所述非易失性存储器所需 时间。

刷新单元具体用于:

若 t2大于 t4且 t3大于将从行号 pi至行号 p之间的数据备份到所述非易 失性存储器所需的时间 t5, 则停止对所述緩存的刷新。

对于数据在緩存中的最小行号 pi大于或等于当前刷新进度对应的緩存的 行号 p的情况, 以及数据在緩存中的最大行号 p2小于或等于当前刷新进度对 应的緩存的行号 p的情况,将 pi行至 p2行的数据顺序备份到非易失性存储器 中; 对于当前刷新进度对应的緩存的行号 p大于数据在緩存中的最小行号 pl, 且当前刷新进度对应的緩存的行号 p小于数据在緩存中的最大行号 p2的情况, 则首先将 p行至 p2行的数据备份到非易失性存储器,然后将 pi行至 p行的数 据备份到非易失性存储器。对于上述三种情况 中如果数据自上次刷新至少还能 继续保持数据不丟失的时间不大于备份所述数 据所需的时间的情况,则需要保 持刷新并备份数据。

根据本发明实施例提供的一种存储系统控制器 ,在存储系统发生掉电、需 要将緩存中的数据备份到非易失性存储器中时 ,在对要备份的数据进行刷新之 前能将该数据备份完的情况下,停止刷新操作 , 可以节省不必要的刷新操作带 来的电能消耗, 延长备用电池的供电时间, 缩短数据备份的时间。

所属领域的技术人员可以清楚地了解到, 为描述的方便和简洁, 上述描述 的设备和模块的具体工作过程, 可以参考前述方法实施例中的对应过程描述, 在此不再赘述。

在本申请所提供的几个实施例中, 应该理解到, 所揭露的设备和方法, 可 以通过其它的方式实现。 例如, 以上所描述的装置实施例仅仅是示意性的, 例 如, 所述模块的划分, 仅仅为一种逻辑功能划分, 实际实现时可以有另外的划 分方式, 例如多个模块或组件可以结合或者可以集成到 另一个设备中, 或一些 特征可以忽略, 或不执行。 另一点, 所显示或讨论的相互之间的耦合或直接辆 合或通信连接可以是通过一些通信接口, 装置或模块的间接耦合或通信连接, 可以是电性, 机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可 以不是物理上分开的,作为 - - 模块显示的部件可以是或者也可以不是物理单 元, 即可以位于一个地方, 或者 也可以分布到多个网络单元上。 可以根据实际的需要选择其中的部分或者全 部, 模块来实现本实施例方案的目的。

另外, 在本发明各个实施例中的各功能模块可以集成 在一个处理模块中, 也可以是各个模块单独物理存在,也可以两个 或两个以上模块集成在一个模块 中。

通过以上的实施方式的描述,本领域的技术人 员可以清楚地了解到各实施 方式可借助软件加必需的通用硬件平台的方式 来实现, 当然也可以通过硬件。 基于这样的理解,上述技术方案本质上或者说 对现有技术做出贡献的部分可以 以软件设备的形式体现出来,该计算机软件设 备可以存储在计算机可读存储介 质中, 如 ROM/RAM、 磁碟、 光盘等, 包括若干指令用以使得一台计算机设备 (可以是个人计算机, 服务器, 或者网络设备等)执行各个实施例或者实施例 的某些部分所述的方法。

以上所述的实施方式, 并不构成对该技术方案保护范围的限定。任何 在上 述实施方式的精神和原则之内所作的修改、等 同替换和改进等, 均应包含在该 技术方案的保护范围之内。