CN108351816B - 用于在数据存储设备上执行数据拷贝操作的方法 - Google Patents
用于在数据存储设备上执行数据拷贝操作的方法 Download PDFInfo
- Publication number
- CN108351816B CN108351816B CN201680067593.0A CN201680067593A CN108351816B CN 108351816 B CN108351816 B CN 108351816B CN 201680067593 A CN201680067593 A CN 201680067593A CN 108351816 B CN108351816 B CN 108351816B
- Authority
- CN
- China
- Prior art keywords
- data
- data storage
- copy operation
- storage device
- address
- 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.)
- Active
Links
Images
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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
- 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/065—Replication mechanisms
-
- 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
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2015—Redundant power supplies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
用于在数据存储设备上执行数据拷贝操作的技术包括将标识数据拷贝操作的源地址和目的地地址的拷贝令牌存储在电力故障安全数据结构中,更新地址表以指示源和目的地地址参与到数据拷贝操作中,以及在执行数据拷贝操作之前向请求该数据拷贝操作的主机通知数据拷贝操作已完成。该主机随后可以在数据存储设备完成数据拷贝操作的同时执行其他任务。在数据拷贝操作期间,基于地址表来阻止对源或目的地地址的数据访问请求。另外,如果电力故障事件发生,则将电力故障安全数据结构保存到非易失性数据存储装置以便可以在数据存储设备的下一通电事件时完成拷贝操作。
Description
申请的交叉引用
本申请要求2015年12月18日提交的题为“TECHNOLOGIES FOR PERFORMING A DATACOPY OPERATION ON A DATA STORAGE DEVICE(用于在数据存储设备上执行数据拷贝操作的技术)”的美国发明专利申请序列号No. 14/975,150的优先权。
背景技术
在存储设备(诸如固态驱动器、硬盘驱动器和存储器设备)上的数据拷贝操作在典型计算机系统中很常见。数据拷贝操作可以是用户发起的或系统发起的并且被用来将数据从(一个或多个)源位置拷贝至(一个或多个)目的地位置。一些系统操作(诸如碎片整理)广泛地使用数据拷贝操作。然而,数据拷贝操作的过度使用可能在计算机系统上产生瓶颈,因为系统的主机必须在执行后续任务之前等待目前的数据拷贝操作完成。另外,倘若在数据拷贝操作期间失去电力,则数据在最初存储于非易失性存储器中的情况下可能丢失或以其他方式被损坏。
附图说明
通过示例的方式而不是通过在附图中的限制来图示本文中描述的概念。为了简单且清楚的图解起见,在图中图示的元件不一定按照比例来绘制。在适当考虑的情况下,在各图之间重复了参考标记以指示对应或相似的元件。
图1是用于执行数据拷贝操作的数据存储设备的至少一个实施例的简化框图;
图2是可以由图1的数据存储设备建立的环境的至少一个实施例的简化框图;
图3是可由图1和图2的数据存储设备执行的用于执行数据拷贝操作的方法的至少一个实施例的简化框图;
图4是在图3的方法的执行期间图1和图2的数据存储设备的逻辑至物理地址表和电力故障安全数据结构的说明性示例的简化框图;
图5是可由图1和图2的数据存储设备执行的用于对电力故障事件进行响应的方法的至少一个实施例的简化流程图;
图6是用于在电力故障之后恢复数据拷贝操作的方法的至少一个实施例的简化流程图;
图7是包括图1和图2的数据存储设备的计算设备的至少一个实施例的简化框图。
具体实施方式
尽管本公开内容的概念易受各种修改和替换形式的影响,但已在图中通过示例的方式示出了其具体实施例,并将在本文详细地描述其具体实施例。然而,应该理解,不意图将本公开内容的概念限制为所公开的特定形式,而是相反,意图是要覆盖与本公开内容以及所附权利要求一致的所有修改、等同物和替换。
在说明书中对“一个实施例”、“实施例”、“说明性实施例”等等的参考指示描述的实施例可以包括特定特征、结构或特性,但是每个实施例可能包括或者可能不一定包括该特定特征、结构或特性。此外,此类短语不一定指代同一个实施例。进一步地,当结合实施例来描述特定特征、结构或特性时,认为与其他无论是否被明确描述的实施例相结合地实现此类特征、结构或特性是在本领域技术人员的知识范围内的。另外,应该认识到,以“至少一个A、B和C”的形式包括在列表中的条目可以意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。类似地,以“A、B或C中的至少一个”的形式列出的条目可以意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
在一些情况下,可以以硬件、固件、软件或其任何组合来实施公开的实施例。该公开的实施例还可以被实施为由瞬时或非瞬时机器可读(例如计算机可读)存储介质载送的或存储在瞬时或非瞬时机器可读(例如计算机可读)存储介质上的指令,该瞬时或非瞬时机器可读存储介质可以由一个或多个处理器来读取和执行。机器可读存储介质可以被具体化为用于以可由机器读取的形式来存储或传送信息的任何存储设备、机构或其他物理结构(例如易失性或非易失性存储器、介质盘或其他介质设备)。
在附图中,可以以具体布置和/或顺序来示出一些结构或方法特征。然而,应该认识到,此类具体布置和/或顺序可能是不需要的。更确切地说,在一些实施例中,可以以不同于在说明性图中示出的方式和/或顺序来布置此类特征。另外,在特定图中包括结构或方法特征并不意欲暗示在所有实施例中都需要此类特征,并且在一些实施例中可能不包括此类特征或者此类特征可以与其他特征组合。
如在图1中示出的,用于执行数据拷贝操作的说明性数据存储设备100包括数据存储控制器102和数据存储装置110,所述数据存储装置110包括非易失性数据存储装置130和易失性数据存储装置140。如在下面更详细讨论的,在使用中该数据存储控制器102被配置成执行由通信耦合至后台中的数据存储控制器的主机(参见图2)所请求的数据拷贝操作,从而允许主机执行其他任务。为了这样做,该数据存储控制器102在实际完成数据拷贝操作之前准时地向主机通知所请求的数据拷贝操作已经完成。然而,为了确保数据拷贝操作被适当完成,该数据存储控制器102生成标识源位置和目的地位置的拷贝令牌,并且将该拷贝令牌存储在电力故障安全数据结构中,如果数据存储设备100在数据拷贝操作的执行期间失去电力,则将该电力故障安全数据结构自动保存到非易失性数据存储装置130。另外,该数据存储控制器102在适当的表(诸如逻辑至物理地址表)中标记非易失性数据存储装置130的源位置和目的地位置(例如(一个或多个)源地址和目的地地址),以指示这些位置被包括在数据拷贝操作中或者以其他方式受到数据拷贝操作的影响。如果使拷贝操作中断的电力故障或其他有害事件发生,则该数据存储控制器102可以在成功加电时重新发起数据拷贝操作或以其他方式完成数据拷贝操作。以这种方式,从请求主机的角度来看该数据存储控制器102能够立即“完成”所请求的拷贝操作,同时提供实际上将在稍后的时间完成拷贝操作的一定保证(例如,甚至在电力故障的情况下)。
该数据存储设备100可以被具体化为能够存储数据并执行本文中描述的功能的任何类型的设备。在该说明性实施例中,该数据存储设备100被具体化固态驱动器;然而,在其他实施例中,该数据存储设备100可以被具体化为硬盘驱动器、存储器模块设备、高速缓存存储器设备、和/或其他数据存储设备。
该数据存储设备100的数据存储控制器102可以被具体化为能够在非易失性存储器存储装置130上执行数据拷贝操作的任何类型的控制设备、电路系统或硬件设备集合。在该说明性实施例中,该数据存储控制器102包括处理器或处理电路系统104、本地存储器106和主机接口108。当然,在其他实施例中该数据存储控制器102可以包括通常在固态驱动器的驱动控制器中找到的附加设备、电路和/或部件。
该处理器104可以被具体化为能够执行本文中描述的功能的任何类型的处理器。例如,该处理器104可以被具体化为(一个或多个)单核或多核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。类似地,该本地存储器106可以被具体化为能够执行本文中描述的功能的任何类型的易失性和/或非易失性存储器或数据存储装置。在该说明性实施例中,该本地存储器106存储固件和/或可由处理器104执行以便执行数据存储控制器102的所述功能的其他指令。在一些实施例中,处理器104和本地存储器106可以形成片上系统(SoC)的一部分并且连同数据存储控制器102的其他部件一起合并到单个集成电路芯片上。
该主机接口108还可以被具体化为能够促进数据存储设备100与主机设备或服务(例如主机应用)的通信的任何类型的硬件处理器、处理电路系统、输入/输出电路系统、和/或部件集合。也就是说,该主机接口108具体化或建立用于访问存储在数据存储设备100上(例如存储在数据存储装置110中)的数据的接口。为了这样做,该主机接口108可以被配置成依据数据存储设备的类型而利用任何适当的通信协议和/或技术来促进与数据存储设备100的通信。例如,在一些实施例中,该主机接口108可以被配置成使用串行高级技术附件(SATA)、周边部件互连高速(PCIe)、串行附接SCSI(SAS)、通用串行总线(USB)、和/或其他通信协议和/或技术与主机设备或服务通信。
该非易失性数据存储装置130可以被具体化为能够以持久方式存储数据的任何类型的数据存储装置。例如,在该说明性实施例中,该非易失性数据存储装置130被具体化为非易失性存储器并且在以下被称为非易失性存储器130,其中可以理解,在其他实施例中非易失性数据存储装置130可以被具体化为其他类型的持久数据存储装置(诸如硬盘盘片)。该非易失性存储器130可以被具体化为NAND闪存存储器、NOR闪存存储器、相变存储器(PCM)、电可擦除可编程只读存储器(EEPROM)、电阻型存储器、纳米线存储器、三维交叉点存储器阵列铁电晶体管随机访问存储器(FeTRAM)、磁阻型随机访问存储器(MRAM)、自旋转移力矩MRAM、和/或其他非易失性存储器。
该易失性数据存储装置140可以被具体化为能够在数据存储设备100处于操作中时存储数据的任何类型的数据存储装置。例如,在该说明性实施例中,该易失性数据存储装置140被具体化为易失性存储器并且在以下被称为易失性存储器140,其中可以理解,在其他实施例中非易失性数据存储装置130可以被具体化为其他类型的非持久数据存储装置。该易失性存储器140可以被具体化为动态随机访问存储器(DRAM)或其他类型的易失性存储器。
在一些实施例中,该数据存储设备100还可以包括电力故障响应电路150,该电力故障响应电路150被配置成在至数据存储设备100的电力意外失去或中断的情况下向数据存储设备100的某些部件提供备用电力达一段时间。为了这样做,该电力故障响应电路150包括能量存储装置152,该能量存储装置可以被具体化为任何类型的能量存储设备或能够向数据存储设备100的部件提供电力达一段时间的设备。在该说明性实施例中,该能量存储装置152被具体化为一组电容器,在操作期间对该组电容器充电并且在电力中断的情况下可以从该组电容器提取能量。在其他实施例中,该能量存储装置152可以被具体化为其他类型的能量存储设备(诸如备用电池)或者以其他方式包括其他类型的能量存储设备(诸如备用电池)。
现在参考图2,在使用中,该数据存储设备100可以建立环境200。该说明性环境200包括数据访问管理模块202和恢复模块204。这些模块以及环境200的其他部件中的每一个都可以被具体化为固件、软件、硬件或其组合。例如,环境200的各个模块、逻辑和其他部件可以形成数据存储控制器102或数据存储设备100的其他硬件部件的一部分或者以其他方式由数据存储控制器102或数据存储设备100的其他硬件部件来建立。同样地,在一些实施例中,环境200的模块中的任一个或多个模块可以被具体化为电路或电气设备集合(例如数据访问管理电路202、恢复电路204等等)。
该数据访问管理模块202被配置成处理从主机250接收的数据访问请求,该主机250可以被具体化为应用、服务和/或其他设备。为了这样做,该数据访问管理模块202包括主机更新模块210,该主机更新模块被配置成在由数据存储设备100完成数据拷贝操作之前向主机250通知所请求的数据拷贝操作已经完成。例如,在一些实施例中,该主机更新模块210可以在从主机250接收到请求时立即或以其他方式准时地向主机250通知所请求的数据拷贝操作的完成。同样地,该主机250可以在数据存储设备100实际上完成所请求的数据拷贝的同时继续执行其他任务。以这种方式,可以改进主机250的性能。
该数据访问管理模块202还包括被配置成执行所请求的数据拷贝操作的数据拷贝管理模块212。为了这样做,该数据拷贝管理模块212生成拷贝令牌232并且将该拷贝令牌232存储在电力故障安全数据结构230中,可以在数据存储设备100的操作期间将该电力故障安全数据结构230存储在易失性存储器132中。如上面讨论的,该拷贝令牌232标识要从其拷贝数据的源位置和数据要被拷贝至的目的地位置。例如,该拷贝令牌232可以标识非易失性存储器130的源地址或地址范围以及非易失性存储器130的目的地地址或地址范围。
如上面所讨论的,在电力故障事件的情况下,该数据存储设备100将电力故障安全数据结构230从非易失性存储器132移动至非易失性存储器130。为了这样做,该电力故障响应电路150被配置成向数据存储设备100的适当部件提供足够电力以实行电力故障安全数据结构230至非易失性存储器132的传递。
除了生成并存储拷贝令牌232之外,该数据拷贝管理模块212还被配置成在适当的地址表220中标记或标志源位置和目的地位置。说明性地,该地址表220被具体化为将非易失性存储器130的逻辑地址映射至非易失性存储器130的物理地址的逻辑至物理地址表220。同样地,在该说明性实施例中,该数据拷贝管理模块212通过设置表220的与源地址和目的地地址相关联的对应拷贝中标志或位222来在逻辑至物理地址表220中标记源地址或地址范围以及目的地地址或地址范围。当然,在其他实施例中,该地址表220可以被具体化为用来标识受到拷贝操作影响的源位置和目的地位置的任何适当的数据结构,并且在此类实施例中,该数据拷贝管理模块212可以利用用于在此类表中标记或标识源位置/地址和目的地位置/地址的任何适当方法。
在数据拷贝管理模块212生成拷贝令牌232并且设置(一个或多个)拷贝中标志222之后,该数据拷贝管理模块212通过将数据从源位置拷贝至目的地位置来完成数据拷贝操作。一旦成功地完成该拷贝操作,该数据拷贝管理模块212就删除相关联的拷贝令牌232并且移除或复原(一个或多个)相关联的拷贝中标志222。
在一些实施例中,该数据访问管理模块202还可以包括数据访问控制模块214。在此类实施例中,该数据访问控制模块214被配置成控制对非易失性存储器130的各个区域的访问。例如,该数据访问控制模块212被配置成阻止对如由地址表220的拷贝中标志222标识的、与数据拷贝操作相关联的源和目的地地址或地址范围的访问请求(例如读取或写入请求)。也就是说,该数据访问控制模块214被配置成监视地址表220并且阻止对由拷贝中标志222标识的那些地址的访问。
该恢复模块204被配置成修复或以其他方式完成由于电力故障事件或使数据拷贝操作停下来的其他事件而被中断的数据拷贝操作。为了这样做,在加电或从该事件恢复时,该恢复模块204确定拷贝中标志232是否存在于电力故障安全数据结构230中,可以响应于电力故障事件将该电力故障安全数据结构230存储在非易失性存储器130中。如果存在拷贝令牌232,则如上面讨论的恢复模块204向数据拷贝管理模块212通知完成数据拷贝操作。
现在参考图3,在使用中,该数据存储设备100的数据存储控制器102可以执行用于执行数据拷贝操作的方法300。该方法300以块302开始,在该块302中该数据存储控制器102确定是否已经从主机250接收到数据拷贝请求,如果是的话,该方法300前进至块304,在该块304中该数据存储控制器102生成拷贝令牌232并且将该拷贝令牌232保存在电力故障安全数据结构230中。如在上面讨论的,该拷贝令牌232标识在非易失性存储器130中要被拷贝的数据的源位置和目的地位置。例如,在该说明性实施例中,该拷贝令牌232包括要从其拷贝数据的源地址或地址范围以及要将数据拷贝至的目的地地址或地址范围。同样地,该数据存储控制器102经由拷贝令牌232的存储在块306中存储对应的源地址和目的地地址。
在块308中,该数据存储控制器102更新地址表220以提供对应源地址和对应目的地地址参与所请求的数据拷贝操作或受到所请求的数据拷贝操作影响的指示。例如,在块310中,该数据存储控制器102可以设置地址表220(例如逻辑至物理地址表)的与源地址或地址范围以及目的地地址或地址范围中的每一个相关联的拷贝中标志222,以指示此类地址与所请求的数据拷贝操作相关联。
在块312中,该数据存储控制器102向主机250通知所请求的数据拷贝操作已经完成。也就是说,如上面讨论的,该数据存储控制器102在数据存储控制器102实际完成数据拷贝操作之前向主机250通知所请求的数据拷贝操作已完成。应该认识到,可以以任何顺序或彼此同时地执行块304、308、312。例如,在一些实施例中,该数据存储控制器102可以被配置成在存储拷贝令牌232和/或设置拷贝中标志222之前向主机250通知所请求的数据拷贝操作已完成。
在已经向主机250通知所请求的数据拷贝操作完成之后,该方法300前进至块314和320。在块314中,该数据存储控制器102执行所请求的数据拷贝操作。为了这样做,在块316中,该数据存储控制器102将数据从非易失性存储器130的源地址或地址范围拷贝至非易失性存储器130的目的地地址或地址范围。另外,如果所请求的数据拷贝命令被具体化为数据移动命令,则该数据存储控制器102在块318中从源地址或地址范围删除数据。为了这样做,该数据存储控制器102可以在数据存储控制器102的控制寄存器中设置标志或位以指示“删除的”源地址或地址范围可用于写入操作。替换地,在一些实施例中,该数据存储控制器102可以实际上清除数据或将默认数据(例如全0)写入至源地址或地址范围以从该源地址或地址范围删除或移除数据。
在一些实施例中,该数据存储控制器102可以被配置成按完成对应读取操作的顺序完成总体数据拷贝操作的各个写入操作。也就是说,不同于在其中在将数据块回写至数据存储装置之前读取该数据块的每个地址的典型数据存储设备,该数据存储控制器102可以基于从数据存储装置110读取各个地址或地址子块的顺序来将那些各个地址或地址子块写到数据存储装置110。例如,由于读取操作中变化的延迟,一些地址可能会相对于其他地址被无序读取。在此类实施例中,该数据存储控制器102可以在那些“无序”地址的对应读取操作被完成时完成那些“无序”地址的对应写入操作,而不是等待整个地址范围被读取。应该认识到,按数据被读取的顺序将数据回写至数据存储装置110可以改进由数据存储设备执行的数据拷贝操作的性能。
在一些实施例中,在块320中,该数据存储控制器102被配置成在执行块314中的操作同时阻止对与数据拷贝操作相关联的源地址或地址范围和目的地地址或地址范围的存储器访问。也就是说,该数据存储控制器102可以阻止对源地址和目的地地址的写入和/或读取访问,而同时在地址表220中设置与此类地址相关联的拷贝中标志222。
在块322中,该数据存储控制器102确定所请求的数据拷贝操作是否已完成。如果没有的话,该方法300循环回到块314和320,在块314和320中该数据存储控制器102继续执行所请求的数据拷贝操作并且可选地阻止对相关联存储器地址的访问。然而,如果所请求的数据拷贝操作已经由数据存储设备100完成,则该方法300前进至块324,在块324中该数据存储控制器102从地址表220清除拷贝中标志222或其他指示。另外,在块324中,如果在块320中阻止了对非易失性存储器130的相关联存储器地址的访问,则响应于相关联的拷贝中标志222或其他指示的移除在块326中解除对此类访问的阻止。随后,在块328中,该数据存储控制器102从电力故障安全数据结构230移除拷贝令牌,并且该方法300循环回到块302,在块302中该数据存储控制器102继续监视来自主机250的拷贝请求。
在图4中示出在方法300的执行期间非易失性存储器132、逻辑至物理地址表220和电力故障安全数据结构230的说明性实施例。在该说明性实施例中,该数据存储设备100已从主机250接收到要将数据从非易失性存储器132的逻辑块地址L03拷贝至逻辑块地址L06的数据拷贝请求。同样地,该数据存储控制器102已设置与逻辑至物理地址表220中的逻辑地址L03和L06中的每一个相关联的拷贝中标志222,以指示那些地址与所请求的数据拷贝操作相关联或者以其他方式受到所请求的数据拷贝操作影响。另外,该数据存储控制器102已生成拷贝令牌232并且已将拷贝令牌232存储在电力故障安全数据结构230中。如上面讨论的,该拷贝令牌232标识源地址范围L03和目的地地址范围L06。
现在参考图5,在使用中,该数据存储控制器102还可以执行用于对电力故障事件作出响应的方法500。该方法500以块502开始,在块502中该数据存储控制器102确定是否已发生电力故障事件。为了这样做,在一些实施例中,电力故障响应电路150可以被配置成检测电力故障事件的开始。例如,该电力故障响应电路150可以监视至数据存储设备100的供应电压并且基于波动或下降违反来确定电力故障事件正发生或将要发生。当然,该电力故障响应电路150可以利用其他方法和技术来检测或确定电力故障事件已发生或将要发生。
如果该数据存储控制器102确定电力故障事件已发生或将发生,则该方法500前进至块504。在块504中,该数据存储控制器102在来自电力故障响应电路150的电力下将电力故障安全数据结构从易失性存储器132移动至非易失性存储器130。在这样做的过程中,在块506中将拷贝令牌232移动至非易失性存储器130。以这种方式,该拷贝令牌可以在电力故障事件的跨度上得到保存,以便如下面讨论的促进在稍后加电时修复或完成数据拷贝操作。
现在参考图6,在使用中,该数据存储控制器102还可以执行用于在电力故障之后恢复数据拷贝操作的方法。该方法以块602开始,在该块602中数据存储控制器102确定在电力故障事件之后数据存储设备100是否已经通电。如果是的话,方法600前进至块604,在该块604中该数据存储控制器102检查拷贝令牌232在电力故障安全数据结构230中的存在,如上面关于图5讨论的由于电力故障事件该电力故障安全数据结构230目前可以被存储在非易失性存储器130中。如果该数据存储控制器102确定拷贝令牌存在于电力故障安全数据结构230中,则方法600前进至块608中,在该块608中数据存储控制器102完成数据拷贝操作。例如,在块610中,该数据存储控制器102完成数据从非易失性存储器130的源地址或地址范围至非易失性存储器130的目的地地址或地址范围的拷贝(或移动)。另外,如上面讨论的,该数据存储控制器102可以阻止在数据拷贝操作期间对源地址和目的地地址的存储器访问。
在数据存储控制器102已完成数据拷贝操作之后,该方法600前进至块614,在该块614中该数据存储控制器102从地址表220清除拷贝中标志222或其他指示。另外,在块616中,如果已经阻止了对非易失性存储器130的相关联存储器地址的访问,则响应于相关联拷贝中标志222或其他指示的移除在块616中解除对此类访问的阻止。随后,在块618中,该数据存储控制器102从电力故障安全数据结构230移除拷贝令牌。以这种方式,该数据存储控制器102被配置成恢复并完成先前由电力故障事件中断的数据拷贝操作。
现在参考图7,在一些实施例中,该数据存储设备100可以被合并在计算设备700中或者形成计算设备700的一部分。该计算设备700可以被具体化为可以在其中使用数据存储设备100的任何类型的计算设备。例如,该计算设备700可以被具体化为智能手机、平板计算机、笔记本、膝上型计算机、上网本、超级本TM、可穿戴计算设备、一对智能眼镜、头盔式计算设备、蜂窝电话、桌上型计算机、智能设备、个人数字助理、移动互联网设备、服务器、数据存储设备和/或任何其他计算/通信设备。如在图7中示出的,该说明性计算设备700包括处理器710、输入/输出(“I/O”)子系统712和主存储器714。当然,在其他实施例中,该计算设备700可以包括其他或附加部件,诸如在典型计算设备中通常找到的部件(例如各种输入/输出设备和/或其他部件)。另外,在一些实施例中,说明性部件中的一个或多个可以合并在另一部件中或者以其他方式形成另一部件的一部分。例如,在一些实施例中可以将存储器714或其部分合并在处理器710中。
该处理器710可以被具体化为能够执行本文中描述的功能的任何类型的处理器。例如,该处理器710可以被具体化为(一个或多个)单核或多核处理器、数字信号处理器、微控制器或者其他处理器或处理/控制电路。类似地,该存储器714可以被具体化为能够执行本文中描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,该存储器714可以存储在计算设备700的操作期间使用的各种数据和软件(诸如操作系统、应用、程序、库和驱动器)。该存储器714经由I/O子系统712通信耦合至处理器710,该I/O子系统712可以被具体化为用来促进与计算设备700的处理器710、存储器714和其他部件的输入/输出操作的电路系统和/或部件。例如,该I/O子系统712可以被具体化为或者以其他方式包括存储器控制器集线器、输入/输出控制集线器、固件设备、通信链路(即点对点链路、总线链路、导线、电缆、光导、印刷电路板迹线等等)和/或用来促进输入/输出操作的其他部件和子系统。
如在图7中示出的,该数据存储设备100可以被合并在计算设备700的一个或多个其他部件中或者形成该一个或多个其他部件的一部分。例如,该数据存储设备100可以被具体化为主存储器714或者以其他方式被包括在主存储器714中。另外或替换地,该数据存储设备100可以被具体化为计算设备700的固态驱动器720或者以其他方式包括在计算设备700的固态驱动器720中。进一步地,在一些实施例中,该数据存储设备100可以被具体化为计算设备700的硬盘驱动器730或者以其他方式包括在计算设备700的硬盘驱动器730中。当然,在其他实施例中,该数据存储设备100可以被包括在计算设备700的其他部件的一部分中或者形成计算设备700的其他部件的一部分。
对存储器设备的参考可以应用于不同的存储器类型,并且特别是具有库组架构的任何存储器。存储器设备通常指代易失性存储器技术。易失性存储器是如果至设备的电力被中断则其状态(以及因此存储在其上的数据)不确定的存储器。非易失性存储器指代即使至设备的电力被中断其状态也是确定的存储器。动态易失性存储器需要刷新存储在设备中的数据以保持状态。动态易失性存储器的一个示例包括DRAM(动态随机访问存储器),或者一些变体(诸如同步DRAM(SDRAM))。如在本文中描述的存储器子系统可以与许多存储器技术兼容,诸如DDR4(DDR版本4,由JEDEC在2012年9月公布的初始规范)、DDR4E(处于由JEDEC的开发中)、LPDDR4(低功率双数据率(LPDDR)版本4,JESD209-4,由JEDEC在2014年8月最初公开)、WIO2(宽I/O 2(WideIO2),JESD229-2,由JEDEC在2014年8月最初公开)、HBM(高带宽存储器DRAM,JESD235,由JEDEC在2013年10月最初公开)、DDR5(DDR版本5,当前处于由JEDEC的讨论中)、LPDDR5(当前处于由JEDEC的讨论中)、HBM2(HBM版本2,当前处于由JEDEC的讨论中)、和/或其他,并且所述存储器子系统可以与基于此类规范的派生物或扩展的技术兼容。
附加于易失性存储器或者作为对易失性存储器的替换,在一个实施例中,对存储器设备的参考可以指代即使至设备的电力被中断其状态也是确定的非易失性存储器设备,因为此类设备具有库组架构。在一个实施例中,该非易失性存储器设备是可块寻址的存储器设备,诸如NAND或NOR技术。因此,存储器设备还可以包括将来的一代非易失性设备,诸如三维交叉点存储器设备或其他可字节寻址的非易失性存储器设备。在一个实施例中,该存储器设备可以是或包括多阈值级NAND闪存存储器、NOR闪存存储器、单级或多级相变存储器(PCM)、电阻型存储器、纳米线存储器、铁电晶体管随机访问存储器(FeTRAM)、合并忆阻器技术的磁阻型随机访问存储器(MRAM)存储器、或自旋转移力矩(STT)-MRAM、或上面的任一个的组合、或其他存储器。
示例
下面提供本文中公开的技术的说明性示例。这些技术的实施例可以包括下面描述的示例的任一个或多个以及任何组合。
示例1包括一种用于执行数据拷贝操作的数据存储设备,该数据存储设备包括:其上存储有数据的非易失性数据存储装置;易失性数据存储装置;和用来将地址表和电力故障安全数据结构保持在易失性数据存储装置中的数据存储控制器,其中该地址表包括非易失性数据存储装置的地址,并且其中该数据存储控制器将从主机接收要在非易失性数据存储装置上执行数据拷贝操作的请求,其中该请求标识要从其拷贝数据的非易失性数据存储装置的源地址和要将数据拷贝至的非易失性数据存储装置的目的地地址;将把拷贝令牌存储在电力故障安全数据结构中,其中该拷贝令牌标识源地址和目的地地址;将利用源地址和目的地地址中的每一个都与数据拷贝操作相关联的指示来更新地址表;将向主机通知数据拷贝操作已完成;以及将在通知主机之后执行数据拷贝操作以便将数据从源地址拷贝至目的地地址。
示例2包括示例1的主题,并且其中该请求标识要从其拷贝数据的非易失性数据存储装置的源地址范围和要将数据拷贝至的非易失性数据存储装置的对应目的地地址范围。
示例3包括示例1和2中的任一个的主题,并且其中将执行数据拷贝操作包括将从源地址范围读取数据,以及将基于完成对应源地址的每个读取的顺序将读取数据写入至目的地地址范围。
示例4包括示例1-3中的任一个的主题,并且其中该地址表包括逻辑至物理间接表。
示例5包括示例1-4中的任一个的主题,并且其中将更新地址表包括将在地址表中设置标志以指示正在源地址和目的地地址上执行拷贝操作。
示例6包括示例1-5中的任一个的主题,并且其中该数据存储控制器进一步将在设置地址表中的标志的同时阻止对源地址或目的地地址的数据访问请求。
示例7包括示例1-6中的任一个的主题,并且其中将向主机通知数据拷贝操作已完成包括将在数据拷贝操作的完成之前向主机通知数据拷贝操作已完成。
示例8包括示例1-7中的任一个的主题,并且其中将执行数据拷贝操作包括将在主机执行另一任务的同时执行数据拷贝操作。
示例9包括示例1-8中的任一个的主题,并且其中将执行数据拷贝操作包括将把数据从非易失性数据存储装置的源地址拷贝至非易失性数据存储装置的目的地地址。
示例10包括示例1-9中的任一个的主题,并且其中将执行数据拷贝操作包括将执行数据移动操作以便把数据从非易失性数据存储装置的源移动至非易失性数据存储装置的目的地地址。
示例11包括示例1-10中的任一个的主题,并且其中该数据存储控制器进一步将响应于数据拷贝操作的完成而更新地址表,以移除源地址和目的地地址中的每一个都与数据拷贝操作相关联的指示;以及将响应于数据拷贝操作的完成而从电力故障安全数据结构移除拷贝令牌。
示例12包括示例1-11中的任一个的主题,并且其中将更新地址表包括将响应于已经更新了地址表以移除源地址和目的地地址中的每一个都与数据拷贝操作相关联的指示而解除对源地址和目的地地址的数据访问请求的阻止。
示例13包括示例1-12中的任一个的主题,并且其中该数据存储控制器进一步将检测数据存储设备的电力故障事件;以及将响应于检测到电力故障事件把电力故障安全数据结构从易失性数据存储装置移动至非易失性数据存储装置。
示例14包括示例1-13中的任一个的主题,并且其中该数据存储控制器进一步将响应于数据存储设备的通电事件来确定另一拷贝令牌是否存储在电力故障安全数据结构中,其中该另一拷贝令牌标识另一源地址和另一目的地地址;以及将执行另一数据拷贝操作以便把数据从所述另一源地址拷贝至所述另一目的地地址。
示例15包括示例1-14中的任一个的主题,并且其中该数据存储控制器进一步将响应于另一数据拷贝操作的完成来更新地址表以移除另一源地址和另一目的地地址中的每一个都与另一数据拷贝操作相关联的指示;以及将响应于另一数据拷贝操作的完成而从电力故障安全数据结构移除另一拷贝令牌。
示例16包括示例1-15中的任一个的主题,并且其中该数据存储设备包括固态驱动器,非易失性数据存储装置包括非易失性存储器,并且易失性数据存储装置包括易失性存储器。
示例17包括一种用于在数据存储设备上执行数据拷贝操作的方法,该方法包括:由数据存储设备的数据存储控制器并且从主机接收要在数据存储设备的非易失性数据存储装置上执行数据拷贝操作的请求,其中该请求标识要从其拷贝数据的非易失性数据存储装置的源地址和要将数据拷贝至的非易失性数据存储装置的目的地地址;由数据存储控制器将拷贝令牌存储在电力故障安全数据结构中,其中该拷贝令牌标识源地址和目的地地址;由数据存储控制器利用源地址和目的地地址中的每一个都与数据拷贝操作相关联的指示来更新地址表;由数据存储控制器向主机通知数据拷贝操作已完成;以及由数据存储控制器并且在通知主机之后执行数据拷贝操作以便将数据从源地址拷贝至目的地地址。
示例18包括示例17的主题,并且其中该请求标识要从其拷贝数据的非易失性数据存储装置的源地址范围和要将数据拷贝至的非易失性数据存储装置的对应目的地地址范围。
示例19包括示例17和18中的任一个的主题,并且其中执行数据拷贝操作包括从源地址范围读取数据,以及基于完成对应源地址的每个读取的顺序将读取数据写入至目的地地址范围。
示例20包括示例17-19中的任一个的主题,并且其中更新地址表包括利用源地址和目的地地址中的每一个都与数据拷贝操作相关联的指示来更新逻辑至物理间接表。
示例21包括示例17-20中的任一个的主题,并且其中更新地址表包括在地址表中设置标志以指示正在源地址和目的地地址上执行拷贝操作。
示例22包括示例17-21中的任一个的主题,并且进一步包括在设置地址表中的标志的同时阻止对源地址或目的地地址的数据访问请求。
示例23包括示例17-22中的任一个的主题,并且其中向主机通知数据拷贝操作已完成包括在完成数据拷贝操作之前向主机通知数据拷贝操作已完成。
示例24包括示例17-23中的任一个的主题,并且其中执行数据拷贝操作包括在主机执行另一任务的同时执行数据拷贝操作。
示例25包括示例17-24中的任一个的主题,并且其中执行数据拷贝操作包括将数据从非易失性数据存储装置的源地址拷贝至非易失性数据存储装置的目的地地址。
示例26包括示例17-25中的任一个的主题,并且其中执行数据拷贝操作包括执行数据移动操作以便将数据从非易失性数据存储装置的源移动至非易失性数据存储装置的目的地地址。
示例27包括示例17-26中的任一个的主题,并且进一步包括由数据存储控制器并且响应于完成数据拷贝操作来更新地址表以移除源地址和目的地地址中的每一个都与数据拷贝操作相关联的指示;以及由数据存储控制器并且响应于完成数据拷贝操作从电力故障安全数据结构移除拷贝令牌。
示例28包括示例17-27中的任一个的主题,并且其中更新地址表包括响应于更新地址表以移除源地址和目的地地址中的每一个都与数据拷贝操作相关联的指示来解除对源地址和目的地地址的数据访问请求的阻止。
示例29包括示例17-28中的任一个的主题,并且进一步包括由数据存储控制器来检测数据存储设备的电力故障事件;以及响应于检测到电力故障事件将电力故障安全数据结构存储至数据存储设备的非易失性数据存储装置。
示例30包括示例17-29中的任一个的主题,并且进一步包括响应于数据存储设备的通电事件并且由数据存储控制器来确定另一拷贝令牌是否存储在电力故障安全数据结构中,其中该另一拷贝令牌标识另一源地址和另一目的地地址;以及由数据存储控制器执行另一数据拷贝操作以便将数据从另一源地址拷贝至另一目的地地址。
示例31包括示例17-30中的任一个的主题,并且进一步包括由数据存储控制器并且响应于完成另一数据拷贝操作来更新地址表以移除另一源地址和另一目的地地址中的每一个都与另一数据拷贝操作相关联的指示;以及由数据存储控制器并且响应于完成另一数据拷贝操作从电力故障安全数据结构移除另一拷贝令牌。
示例32包括示例17-31中的任一个的主题,并且其中该数据存储设备包括固态驱动器并且非易失性数据存储装置包括非易失性存储器。
示例33包括一种或多种机器可读存储介质,其包括存储在其上的多个指令,当该多个指令被执行时促使数据存储设备执行示例17-32中的任一个的方法。
示例34包括一种用于执行数据拷贝操作的数据存储设备,该数据存储设备包括:用于从主机接收要在数据存储设备的非易失性数据存储装置上执行数据拷贝操作的请求的装置,其中该请求标识要从其拷贝数据的非易失性数据存储装置的源地址和要将数据拷贝至的非易失性数据存储装置的目的地地址;用于将拷贝令牌存储在电力故障安全数据结构中的装置,其中该拷贝令牌标识源地址和目的地地址;用于利用源地址和目的地地址中的每一个都与数据拷贝操作相关联的指示来更新地址表的装置;用于向主机通知数据拷贝操作已完成的装置;以及用于在通知主机之后执行数据拷贝操作以便将数据从源地址拷贝至目的地地址的装置。
示例35包括示例34的主题,并且其中该请求标识要从其拷贝数据的非易失性数据存储装置的源地址范围和要将数据拷贝至的非易失性数据存储装置的对应目的地地址范围。
示例36包括示例34和35中的任一个的主题,并且其中用于执行数据拷贝操作的装置包括用于从源地址范围读取数据的装置,以及用于基于完成对应源地址的每个读取的顺序将读取数据写入至目的地地址范围的装置。
示例37包括示例34-36中的任一个的主题,并且其中用于更新地址表的装置包括用于利用源地址和目的地地址中的每一个都与数据拷贝操作相关联的指示来更新逻辑至物理间接表的装置。
示例38包括示例34-37中的任一个的主题,并且其中用于更新地址表的装置包括在地址表中设置标志以指示正在源地址和目的地地址上执行拷贝操作的装置。
示例39包括示例34-38中的任一个的主题,并且进一步包括用于在设置地址表中的标志的同时阻止对源地址或目的地地址的数据访问请求的装置。
示例40包括示例34-39中的任一个的主题,并且其中用于向主机通知数据拷贝操作已完成的装置包括用于在完成数据拷贝操作之前向主机通知数据拷贝操作已完成的装置。
示例41包括示例34-40中的任一个的主题,并且其中用于执行数据拷贝操作的装置包括用于在主机执行另一任务的同时执行数据拷贝操作的装置。
示例42包括示例34-41中的任一个的主题,并且其中用于执行数据拷贝操作的装置包括用于将数据从非易失性数据存储装置的源地址拷贝至非易失性数据存储装置的目的地地址的装置。
示例43包括示例34-42中的任一个的主题,并且其中用于执行数据拷贝操作的装置包括用于执行数据移动操作以便将数据从非易失性数据存储装置的源移动至非易失性数据存储装置的目的地地址的装置。
示例44包括示例34-43中的任一个的主题,并且进一步包括用于响应于完成数据拷贝操作来更新地址表以移除源地址和目的地地址中的每一个都与数据拷贝操作相关联的指示的装置;以及用于响应于完成数据拷贝操作而从电力故障安全数据结构移除拷贝令牌的装置。
示例45包括示例34-44中的任一个的主题,并且其中用于更新地址表的装置包括用于响应于更新地址表以移除源地址和目的地地址中的每一个都与数据拷贝操作相关联的指示来解除对源地址和目的地地址的数据访问请求的阻止的装置。
示例46包括示例34-45中的任一个的主题,并且进一步包括用于检测数据存储设备的电力故障事件的装置;以及用于响应于检测到电力故障事件将电力故障安全数据结构存储至数据存储设备的非易失性数据存储装置的装置。
示例47包括示例34-46中的任一个的主题,并且进一步包括用于响应于数据存储设备的通电事件来确定另一拷贝令牌是否存储在电力故障安全数据结构中的装置,其中该另一拷贝令牌标识另一源地址和另一目的地地址;以及用于执行另一数据拷贝操作以便将数据从另一源地址拷贝至另一目的地地址的装置。
示例48包括示例34-47中的任一个的主题,并且进一步包括用于响应于完成另一数据拷贝操作来更新地址表以移除另一源地址和另一目的地地址中的每一个都与另一数据拷贝操作相关联的指示的装置;以及用于响应于完成另一数据拷贝操作而从电力故障安全数据结构移除另一拷贝令牌的装置。
示例49包括示例34-48中的任一个的主题,并且其中该数据存储设备包括固态驱动器并且非易失性数据存储装置包括非易失性存储器。
Claims (26)
1.一种用于执行数据拷贝操作的数据存储设备,该数据存储设备包括:
非易失性数据存储装置,具有存储于其上的数据;
易失性数据存储装置;以及
数据存储控制器,其要将地址表和电力故障安全数据结构保持在易失性数据存储装置中,其中该地址表包括所述非易失性数据存储装置的地址,并且其中所述数据存储控制器将:
从主机接收要在所述非易失性数据存储装置上执行数据拷贝操作的请求,其中该请求标识要从其拷贝数据的所述非易失性数据存储装置的源地址和要将数据拷贝至的所述非易失性数据存储装置的目的地地址;
把拷贝令牌存储在所述电力故障安全数据结构中,其中该拷贝令牌标识所述源地址和所述目的地地址;
利用所述源地址和所述目的地地址中的每一个都与所述数据拷贝操作相关联的指示来更新所述地址表;
向所述主机通知所述数据拷贝操作已完成;以及
在通知所述主机之后执行所述数据拷贝操作以便将数据从所述源地址拷贝至所述目的地地址。
2.根据权利要求1所述的数据存储设备,其中所述请求标识要从其拷贝数据的所述非易失性数据存储装置的源地址范围和要将数据拷贝至的所述非易失性数据存储装置的对应目的地地址范围。
3.根据权利要求2所述的数据存储设备,其中将执行所述数据拷贝操作包括将:
从所述源地址范围读取数据,以及
基于完成对应源地址的每个读取的顺序将读取数据写入至所述目的地地址范围。
4.根据权利要求1所述的数据存储设备,其中将更新所述地址表包括将在所述地址表中设置标志以指示正在所述源地址和所述目的地地址上执行拷贝操作。
5.根据权利要求1所述的数据存储设备,其中将向所述主机通知所述数据拷贝操作已完成包括将在所述数据拷贝操作完成之前向所述主机通知所述数据拷贝操作已完成。
6.根据权利要求1所述的数据存储设备,其中将执行所述数据拷贝操作包括将在所述主机执行另一任务的同时执行所述数据拷贝操作。
7.根据权利要求1所述的数据存储设备,其中所述数据存储控制器进一步将:
响应于所述数据拷贝操作的完成更新所述地址表以移除所述源地址和所述目的地地址中的每一个都与所述数据拷贝操作相关联的指示;以及
响应于所述数据拷贝操作的完成从所述电力故障安全数据结构移除所述拷贝令牌。
8.根据权利要求1所述的数据存储设备,其中所述数据存储控制器进一步将:
检测所述数据存储设备的电力故障事件;以及
响应于检测到所述电力故障事件将所述电力故障安全数据结构从所述易失性数据存储装置移动至所述非易失性数据存储装置。
9.根据权利要求1所述的数据存储设备,其中所述数据存储设备包括固态驱动器,所述非易失性数据存储装置包括非易失性存储器,并且所述易失性数据存储装置包括易失性存储器。
10.一种用于在数据存储设备上执行数据拷贝操作的方法,该方法包括:
由所述数据存储设备的数据存储控制器从主机接收要在所述数据存储设备的非易失性数据存储装置上执行数据拷贝操作的请求,其中所述请求标识要从其拷贝数据的所述非易失性数据存储装置的源地址和要将数据拷贝至的所述非易失性数据存储装置的目的地地址;
由所述数据存储控制器将拷贝令牌存储在电力故障安全数据结构中,其中所述拷贝令牌标识所述源地址和所述目的地地址;
由所述数据存储控制器利用所述源地址和所述目的地地址中的每一个都与所述数据拷贝操作相关联的指示来更新地址表;
由所述数据存储控制器向所述主机通知所述数据拷贝操作已完成;以及
在通知所述主机之后,由所述数据存储控制器执行所述数据拷贝操作以便将数据从所述源地址拷贝至所述目的地地址。
11.根据权利要求10所述的方法,其中所述请求标识要从其拷贝数据的所述非易失性数据存储装置的源地址范围和要将数据拷贝至的所述非易失性数据存储装置的对应目的地地址范围。
12.根据权利要求11所述的方法,其中执行所述数据拷贝操作包括:
从所述源地址范围读取数据,以及
基于完成对应源地址的每个读取的顺序将读取数据写入至所述目的地地址范围。
13.根据权利要求10所述的方法,其中更新所述地址表包括在所述地址表中设置标志以指示正在所述源地址和所述目的地地址上执行拷贝操作。
14.根据权利要求10所述的方法,其中向所述主机通知所述数据拷贝操作已完成包括在完成所述数据拷贝操作之前向所述主机通知所述数据拷贝操作已完成。
15.根据权利要求10所述的方法,其中执行所述数据拷贝操作包括在所述主机执行另一任务的同时执行所述数据拷贝操作。
16.根据权利要求10所述的方法,进一步包括:
响应于完成所述数据拷贝操作,由所述数据存储控制器更新所述地址表以移除所述源地址和所述目的地地址中的每一个都与所述数据拷贝操作相关联的指示;以及
响应于完成所述数据拷贝操作,由所述数据存储控制器从所述电力故障安全数据结构移除所述拷贝令牌。
17.根据权利要求10所述的方法,进一步包括:
由所述数据存储控制器来检测所述数据存储设备的电力故障事件;以及
响应于检测到所述电力故障事件将所述电力故障安全数据结构存储至所述数据存储设备的所述非易失性数据存储装置。
18.一种用于执行数据拷贝操作的数据存储设备,该数据存储设备包括:
用于从主机接收要在所述数据存储设备的非易失性数据存储装置上执行数据拷贝操作的请求的部件,其中所述请求标识要从其拷贝数据的所述非易失性数据存储装置的源地址和要将数据拷贝至的所述非易失性数据存储装置的目的地地址;
用于将拷贝令牌存储在电力故障安全数据结构中的部件,其中所述拷贝令牌标识所述源地址和所述目的地地址;
用于利用所述源地址和所述目的地地址中的每一个都与所述数据拷贝操作相关联的指示来更新地址表的部件;
用于向所述主机通知所述数据拷贝操作已完成的部件;以及
用于在通知所述主机之后执行所述数据拷贝操作以便将数据从所述源地址拷贝至所述目的地地址的部件。
19.根据权利要求18所述的数据存储设备,其中所述请求标识要从其拷贝数据的所述非易失性数据存储装置的源地址范围和要将数据拷贝至的所述非易失性数据存储装置的对应目的地地址范围。
20.根据权利要求19所述的数据存储设备,其中执行所述数据拷贝操作的部件包括:
用于从所述源地址范围读取数据的部件,以及
用于基于完成对应源地址的每个读取的顺序将读取数据写入至所述目的地地址范围的部件。
21.根据权利要求18所述的数据存储设备,其中用于更新所述地址表的部件包括用于在所述地址表中设置标志以指示正在所述源地址和所述目的地地址上执行拷贝操作的部件。
22.根据权利要求18所述的数据存储设备,其中用于向所述主机通知所述数据拷贝操作已完成的部件包括用于在完成所述数据拷贝操作之前向所述主机通知所述数据拷贝操作已完成的部件。
23.根据权利要求18所述的数据存储设备,其中用于执行所述数据拷贝操作的部件包括用于在所述主机执行另一任务的同时执行所述数据拷贝操作的部件。
24.根据权利要求18所述的数据存储设备,进一步包括:
用于响应于完成所述数据拷贝操作来更新所述地址表以移除所述源地址和所述目的地地址中的每一个都与所述数据拷贝操作相关联的指示的部件;以及
用于响应于完成所述数据拷贝操作从所述电力故障安全数据结构移除所述拷贝令牌的部件。
25.根据权利要求18所述的数据存储设备,进一步包括:
用于检测所述数据存储设备的电力故障事件的部件;以及
用于响应于检测到所述电力故障事件将所述电力故障安全数据结构存储至所述数据存储设备的所述非易失性数据存储装置的部件。
26.一种机器可读存储介质,包括存储在其上的多个指令,当所述多个指令被执行时促使数据存储设备执行根据权利要求10-17中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/975150 | 2015-12-18 | ||
US14/975,150 US10203888B2 (en) | 2015-12-18 | 2015-12-18 | Technologies for performing a data copy operation on a data storage device with a power-fail-safe data structure |
PCT/US2016/062796 WO2017105770A1 (en) | 2015-12-18 | 2016-11-18 | Technologies for performing a data copy operation on a data storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108351816A CN108351816A (zh) | 2018-07-31 |
CN108351816B true CN108351816B (zh) | 2021-11-30 |
Family
ID=59057326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680067593.0A Active CN108351816B (zh) | 2015-12-18 | 2016-11-18 | 用于在数据存储设备上执行数据拷贝操作的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10203888B2 (zh) |
CN (1) | CN108351816B (zh) |
WO (1) | WO2017105770A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016068978A1 (en) * | 2014-10-31 | 2016-05-06 | Hewlett-Packard Development Company, L.P. | Power-loss protection |
KR20170083868A (ko) * | 2016-01-11 | 2017-07-19 | 삼성전자주식회사 | 데이터 이동 장치 및 데이터 이동 방법 |
US10169155B2 (en) * | 2016-03-30 | 2019-01-01 | EMC IP Holding Company LLC | System and method for synchronization in a cluster environment |
US10496335B2 (en) | 2017-06-30 | 2019-12-03 | Intel Corporation | Method and apparatus for performing multi-object transformations on a storage device |
US10620870B2 (en) | 2017-12-08 | 2020-04-14 | Intel Corporation | Data storage device with bytewise copy |
US11074172B2 (en) | 2019-01-10 | 2021-07-27 | Intel Corporation | On-device-copy for hybrid SSD with second persistent storage media update of logical block address for first persistent storage media data |
US11228424B2 (en) * | 2019-06-07 | 2022-01-18 | International Business Machines Corporation | Blu-ray copy service |
US11163486B2 (en) * | 2019-11-25 | 2021-11-02 | Micron Technology, Inc. | Memory sub-system-bounded memory function |
US20210223979A1 (en) * | 2021-03-16 | 2021-07-22 | Intel Corporation | On-ssd-copy techniques using copy-on-write |
US20220342655A1 (en) * | 2021-04-22 | 2022-10-27 | STMicroelectronics (Grand Ouest) SAS | Microcontroller, computer program product, and method for adding an additional function to a computer program |
US20230393760A1 (en) * | 2022-06-02 | 2023-12-07 | Micron Technology, Inc. | Safe area for critical control data |
CN115079960B (zh) * | 2022-08-18 | 2022-12-06 | 赛芯半导体技术(北京)有限公司 | 数据的处理方法、加速卡及数据处理系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101010668A (zh) * | 2004-09-02 | 2007-08-01 | 英特尔公司 | 基于易失性存储的掉电恢复机制 |
CN103026330A (zh) * | 2010-06-08 | 2013-04-03 | 桑迪士克以色列有限公司 | 具有预加载的内容的数据存储设备 |
CN103699344A (zh) * | 2013-11-05 | 2014-04-02 | 威盛电子股份有限公司 | 非易失性存储器装置及其操作方法 |
CN104081366A (zh) * | 2012-01-26 | 2014-10-01 | 内存技术有限责任公司 | 借助非易失性大容量存储器系统提供高速缓冲存储器移动的设备和方法 |
CN104969168A (zh) * | 2012-12-26 | 2015-10-07 | 桑迪士克企业知识产权有限责任公司 | 具有用于分级写入的nvram的持久性存储装置 |
US9170938B1 (en) * | 2013-05-17 | 2015-10-27 | Western Digital Technologies, Inc. | Method and system for atomically writing scattered information in a solid state storage device |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5195100A (en) * | 1990-03-02 | 1993-03-16 | Micro Technology, Inc. | Non-volatile memory storage of write operation identifier in data sotrage device |
US6182188B1 (en) * | 1997-04-06 | 2001-01-30 | Intel Corporation | Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture |
US5889968A (en) * | 1997-09-30 | 1999-03-30 | Intel Corporation | Method and apparatus for interlocking a broadcast message on a bus |
EP1396792B1 (en) | 2002-09-06 | 2005-06-15 | Sun Microsystems, Inc. | Memory copy command specifying source and destination of data executed in the memory controller |
US20080082736A1 (en) * | 2004-03-11 | 2008-04-03 | Chow David Q | Managing bad blocks in various flash memory cells for electronic data flash card |
US7421537B2 (en) * | 2004-03-22 | 2008-09-02 | Intel Corporation | Migrating data between storage volumes |
US20070083697A1 (en) * | 2005-10-07 | 2007-04-12 | Microsoft Corporation | Flash memory management |
US8127104B1 (en) | 2007-08-06 | 2012-02-28 | Marvell International Ltd. | Alignment matrix memory copy |
US7761740B2 (en) * | 2007-12-13 | 2010-07-20 | Spansion Llc | Power safe translation table operation in flash memory |
US7941692B2 (en) * | 2007-12-31 | 2011-05-10 | Intel Corporation | NAND power fail recovery |
US8555086B2 (en) * | 2008-06-30 | 2013-10-08 | Intel Corporation | Encrypting data on a non-volatile memory |
US20100161932A1 (en) | 2008-12-18 | 2010-06-24 | Ori Moshe Stern | Methods for writing data from a source location to a destination location in a memory device |
US8316201B2 (en) * | 2008-12-18 | 2012-11-20 | Sandisk Il Ltd. | Methods for executing a command to write data from a source location to a destination location in a memory device |
TWI433157B (zh) * | 2009-09-04 | 2014-04-01 | Silicon Motion Inc | 存取快閃記憶體的方法以及相關之記憶裝置 |
US8495299B2 (en) | 2009-11-16 | 2013-07-23 | Microsoft Corporation | Non-blocking data transfer via memory cache manipulation |
US20120005557A1 (en) | 2010-06-30 | 2012-01-05 | Eitan Mardiks | Virtual copy and virtual write of data in a storage device |
KR20120102923A (ko) | 2011-03-09 | 2012-09-19 | (주)인디링스 | 복사 명령 및 이동 명령을 지원하는 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법 |
US8819367B1 (en) * | 2011-12-19 | 2014-08-26 | Western Digital Technologies, Inc. | Accelerated translation power recovery |
CN104205078B (zh) * | 2012-04-10 | 2018-01-19 | 英特尔公司 | 具有降低的延迟的远程直接存储器访问 |
US9047172B2 (en) * | 2012-11-29 | 2015-06-02 | Intel Corporation | Adaptive power control of memory map storage devices |
JP2014157391A (ja) * | 2013-02-14 | 2014-08-28 | Sony Corp | 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法 |
US9836108B2 (en) * | 2014-09-10 | 2017-12-05 | Toshiba Memory Corporation | Memory system and controller |
-
2015
- 2015-12-18 US US14/975,150 patent/US10203888B2/en active Active
-
2016
- 2016-11-18 WO PCT/US2016/062796 patent/WO2017105770A1/en active Application Filing
- 2016-11-18 CN CN201680067593.0A patent/CN108351816B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101010668A (zh) * | 2004-09-02 | 2007-08-01 | 英特尔公司 | 基于易失性存储的掉电恢复机制 |
CN103026330A (zh) * | 2010-06-08 | 2013-04-03 | 桑迪士克以色列有限公司 | 具有预加载的内容的数据存储设备 |
CN104081366A (zh) * | 2012-01-26 | 2014-10-01 | 内存技术有限责任公司 | 借助非易失性大容量存储器系统提供高速缓冲存储器移动的设备和方法 |
CN104969168A (zh) * | 2012-12-26 | 2015-10-07 | 桑迪士克企业知识产权有限责任公司 | 具有用于分级写入的nvram的持久性存储装置 |
US9170938B1 (en) * | 2013-05-17 | 2015-10-27 | Western Digital Technologies, Inc. | Method and system for atomically writing scattered information in a solid state storage device |
CN103699344A (zh) * | 2013-11-05 | 2014-04-02 | 威盛电子股份有限公司 | 非易失性存储器装置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108351816A (zh) | 2018-07-31 |
US10203888B2 (en) | 2019-02-12 |
US20170177243A1 (en) | 2017-06-22 |
WO2017105770A1 (en) | 2017-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108351816B (zh) | 用于在数据存储设备上执行数据拷贝操作的方法 | |
US20190042460A1 (en) | Method and apparatus to accelerate shutdown and startup of a solid-state drive | |
US20190324859A1 (en) | Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive | |
US10437512B2 (en) | Techniques for non-volatile memory page retirement | |
CN104461964A (zh) | 一种存储装置 | |
US20170060436A1 (en) | Technologies for managing a reserved high-performance memory region of a solid state drive | |
US20220138096A1 (en) | Memory system | |
US11204797B2 (en) | Computing systems and methods of operating computing systems | |
CN108351850B (zh) | 对存储器设备中的非易失性存储器和易失性存储器进行同时存取的技术 | |
EP3496356A1 (en) | Atomic cross-media writes on storage devices | |
TWI693520B (zh) | 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置 | |
US20170371785A1 (en) | Techniques for Write Commands to a Storage Device | |
CN114077393A (zh) | 将存储器系统数据传送到主机系统 | |
EP4320508A1 (en) | Method and apparatus to reduce nand die collisions in a solid state drive | |
CN112835514A (zh) | 存储器系统 | |
US20170364275A1 (en) | Technologies for managing end of life behavior for storage devices | |
US11620057B2 (en) | Storage device and operating method thereof | |
US11720276B2 (en) | Memory system and controller for managing write status | |
CN115373909A (zh) | 存储器系统中的故障管理技术 | |
CN113643745A (zh) | 存储器子系统中的存储器裸片的峰值电流的管理 | |
KR20170048114A (ko) | 저장 장치 및 저장 장치에 의해 기록 명령이 수행되는 방법 | |
EP4155894A1 (en) | Technologies for memory mirroring across an interconnect | |
EP4180997A1 (en) | Storage device and operation method thereof | |
US20240176498A1 (en) | Host device controlled low temperature thermal throttling | |
US11954347B2 (en) | Memory system and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |