CN107665096A - 加权数据分条 - Google Patents

加权数据分条 Download PDF

Info

Publication number
CN107665096A
CN107665096A CN201710628506.0A CN201710628506A CN107665096A CN 107665096 A CN107665096 A CN 107665096A CN 201710628506 A CN201710628506 A CN 201710628506A CN 107665096 A CN107665096 A CN 107665096A
Authority
CN
China
Prior art keywords
data
volatile
data object
point
storage device
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
Application number
CN201710628506.0A
Other languages
English (en)
Other versions
CN107665096B (zh
Inventor
A·M·科莱斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of CN107665096A publication Critical patent/CN107665096A/zh
Application granted granted Critical
Publication of CN107665096B publication Critical patent/CN107665096B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/442Shutdown
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping

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)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本主题申请涉及加权数据分条。本文所公开的技术提供了对存储设备中的数据对象诸如元数据进行不均匀分条的技术,从而减少将此类对象从易失性存储器复制到非易失性存储器的保存时间。根据一种实施方式,基于到多个全异的非易失性接收设备的数据传输速率将数据对象分割成大小可变的多个大小不同的数据段。响应于掉电序列的启动,所述数据对象的所述多个数据段中的每一个数据段被同时从易失性存储器复制到非易失性存储器。

Description

加权数据分条
技术领域
本申请涉及数据存储。更具体地,本发明的实施方案涉及加权数据分条。
背景技术
发明内容
在一种实施方式中,本公开的技术提供一种用于需要基于到多个非易失性接收设备的数据传输速率来将数据对象分割成大小可变的多个数据段的方法。该方法还需要同时将数据对象的多个数据段中的每一个数据段从易失性存储器导出到多个非易失性接收设备中的不同的一个非易失性接收设备。
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下文的具体实施方式中得到进一步描述。本发明内容并不意图确定要求保护的主题的关键特征或基本特征,也不意图用于限制要求保护的主题的范围。要求保护的主题的其他特征、细节、应用和优点将从以下如在附图中进一步示出并在所附权利要求中定义的各种实施方式的更具体的书面具体实施方式中变得显而易见。
附图说明
通过结合附图阅读以下描述各种实施方式的具体实施方式,可最好地理解所描述的技术。
图1示出了具有存储设备的示例性数据存储系统,该存储设备包括被配置用于在易失性存储器和至少两个不同的非易失性存储介质之间进行并行数据传输的控制器。
图2示出了另一种示例性存储系统,该存储系统提供用于基于到非易失性存储介质的数据传输速率来对数据对象进行加权分条。
图3示出了又一种示例性存储系统,该存储系统提供用于基于到非易失性存储介质的数据传输速率来对数据对象进行加权分条。
图4示出了一种示例性数据对象,该数据对象可通过加权分条技术被分割并复制到非易失性存储器中。
图5示出了示例性操作,该操作提供用于基于到非易失性存储介质的数据传输速率对数据来对象进行加权分条。
具体实施方式
随着对数据存储、检索和分析的要求增加,对更便宜且更快速的数据存储设备的需求也在增加。硬盘驱动器(HDD)被广泛用作数据存储设备计算系统。此类数据存储设备包括在磁性介质上存储数据的磁盘驱动器。相比之下,固态设备(SSD)使用集成电路组件作为非易失性存储器来存储数据。SSD在数据存取速度和系统性能方面具有优势,而HDD则具有成本优势。混合驱动器,也称SSHD,结合了HDD技术和NAND闪存固态(SSD)技术,以利用其成本和速度优势。
一些存储设备在标称设备使用期间管理易失性存储器(例如,SRAM、DRAM)中某些类型的数据。例如,经常访问的数据可存储在易失性存储器高速缓存中以加快某些数据访问请求。同样地,设备控制器的映射表和其他数据对象也可在易失性存储器中进行存储和管理。值得注意的是,易失性存储器在掉电时不保留数据。因此,一些存储设备可被配置为:当执行“断电”序列时,将一些类型的数据从易失性存储器传输到非易失性存储器中;同样地,当执行“上电”序列时,实施逆过程(例如,将数据从非易失性存储器传输到易失性存储器)。
在数据存储中,分条技术需要将文件、对象或其他逻辑连续数据的单元进行分割,从而将连续的数据段存储在不同的物理存储设备上。例如,可通过同时将包括不同逻辑连续数据段的并行数据流写入不同存储设备来实现分条。通过利用组合的数据速率,可以使用分条技术来帮助减少从易失性存储器导出(卸载)数据的总时间和/或加快从非易失性存储介质恢复易失性存储器状态的读取时间。RAID0是使用最多、最为人熟知的分条方法,该方法在2个或更多个磁盘上均匀分配数据。
全异类型的非易失性存储介质在从易失性存储器接收数据或将数据传输到易失性存储器方面具有不同优势。例如,在一些情况下,当向磁盘写入数据时,其执行速率可比向闪存设备写入相同数据的执行速率更快,尽管从闪存设备读取相同数据的速率可比从磁盘中读取更快。本文所公开的存储和数据管理技术旨在力图利用全异存储资源的存储特性和相关联数据速率来减少从易失性存储器向非易失性存储器传输特定数据对象的总写入时间,诸如,在存储设备的掉电序列期间。根据一种实施方式,所公开的技术提供用于基于多个接收设备的数据速率来对各个数据对象进行加权、不均匀分条。
图1示出了具有存储设备104的示例性数据存储系统100,该存储设备包括控制器126,该控制器被配置用于在易失性存储器130和至少两个不同的非易失性存储介质之间进行并行数据传输。如本文所用,“并行数据传输”是指沿着不同的数据传输线同时传输数据(例如,读取或写入数据)。作为示例而非限制,所示存储设备104为固态混合驱动器(SSHD),其被配置用于在易失性存储器130与磁盘驱动器102和固态驱动器110中的每一者之间进行并行数据传输。在其他实施方式中,存储设备104可采用各种其他形式。
如图所示,在一些实现方式中,存储系统100的不同非易失性存储介质(例如,磁盘驱动器102和固态驱动器110)位于包括易失性存储器130的相同主外壳内。在其他实施方式中,不同的非易失性存储介质位于不同的外壳内。例如,存储设备104可包括内部易失性存储器并被耦合到包括非易失性存储介质的一个或多个外部设备。在一些情况下,可从易失性存储器130同时向非易失性存储介质执行并行数据传输,二者可同时位于存储设备104的内部、外部或一个位于内部另一个位于外部。
为简单起见,本文所公开的数据分条技术在本文中通常结合示例性SSHD描述,所述示例性SSHD包括至少一个磁盘(例如,磁盘驱动器102)和至少一个固态驱动器110。然而,应当理解,所公开的技术可扩展到不同系统配置中的各种类型存储介质。
在图1中,磁盘驱动器102包括头部120,该头部位于定位在磁盘108上的致动器臂109的远端上。使用绕致动器旋转轴114旋转的旋转音圈电机将头部120定位在同心数据道上,同时使用绕圆盘旋转轴112旋转的主轴电机旋转磁盘108。柔性电缆134为滑块120提供必要的电连接路径,同时允许致动器臂109在运行期间进行枢转运动,从而使头部120在靠近磁盘108的内径118和外径106的径向位置之间移动。磁盘驱动器102可包括单个磁盘(例如,如图所示的磁盘108),或者在其他实施方式中,可包括专门适合于写入每个磁盘和/或每个磁盘的每个表面的多个磁盘和头部。
和磁盘驱动器102相比,固态驱动器110不包括任何活动部件。相反,固态设备110包括存储器单元阵列(未示出),该存储器单元阵列包括多个模拟存储器单元,每个模拟存储器单元可编程以保持连续的模拟值,诸如电气易失或电荷。存储器单元阵列可包括任何类型的存储器单元(例如,NAND、NOR),并且还可包括单层单元(SLC)或多层单元(MLC)。在一种实施方式中,固态驱动器110是具有低数据传输速率的廉价SSD。例如,固态驱动器110可以是通过8位总线(未示出)接收数据的单个闪存平面。在其他实施方式中,固态驱动器110是具有并行总线的多平面闪存并且/或者通过更快的总线(例如,64位、128位等)接收数据。
除了上述非易失性存储介质(例如,固态驱动器110和磁盘驱动器102)外,存储设备104还包括易失性存储器130,诸如一个或多个DRAM、SRAM、MRAM、铁电RAM、磁性RAM、自旋力矩传输RAM、电阻式RAM等。
当存储设备104通电时,易失性存储器130可用于各种用途,诸如存储各种表、元数据、用户数据、高速缓存数据等。在图1中,易失性存储器130存储多个数据对象122。在一种实施方式中,数据对象122中的一个或多个数据对象是用于管理存储在非易失性存储器位置中的数据的元数据对象,诸如存储在其中非易失性介质中的一个上的读缓存和/或写缓存中的数据(例如,SSD 110和/或磁盘驱动器102)。例如,读缓存可存储在磁盘的外径区域(例如,区域124)中,在该区域中,由于相对于头部120的线速度增加,数据访问速率最快。在另一些实施方式中,读缓存存储在SSD 110中。在这些具有读缓存的实施方式中的任一个中,数据对象122可包括元数据对象,所述元数据对象提供与数据在读缓存中的结构和位置相关的信息。例如,数据对象116可包括表格,该表格将盘区(例如,主机逻辑块地址(LBA)的范围)映射到存储对应数据的高速缓冲存储空间的其他物理地址。
在存储设备104的标称使用期间,数据对象122中的一个或多个数据对象更新并保持在易失性存储器130内。然而,当存储设备104掉电时,数据对象122中的一些或全部数据对象可被传输到非易失性存储器位置。在一些实施方式中,数据对象122在存储设备104的关断程序期间被复制到永久存储位置,诸如磁盘108外径区域附近的位置。在其他实施方式中,数据对象122的永久存储位置位于一个或两个非易失性介质上的其他位置。
通常,如果数据对象116通过并行数据传输(例如,“分条”)分段并保存在多个不同存储介质上,则可更快地将单个数据对象116从易失性存储器130复制到非易失性存储器。例如,数据对象116可被分割成多个部分,这些部分被同时导出到不同非易失性接收设备中,如图1中的路径“A”和“B”所示。将数据对象116划分成不同段会创建两段或更多段逻辑连续数据,这些数据随后可被回读到易失性存储器130并进行组合以重新创建数据对象116。
在一种实施方式中,数据对象116是元数据对象,诸如高速缓存元数据表。当存储设备104检测到功率损失并且/或者故意启动关断序列时,元数据对象被划分为传输到磁盘的区域124(如数据路径A所示)的第一段以及传输到固态驱动器110的区域116的第二段(如数据路径B所示)。在具有超过两个非易失性存储介质的实施方式中,元数据对象可被划分成不止两段以用于并行卸载到不同介质中的每一个介质上。
在意外断电的情况下,备用电源132可支持从易失性高速缓存(例如,沿图1中的路径A和B)进行并行数据传输。在其他(例如,标称)关断情况下,主电源,诸如主机128的主电源,可支持并行数据传输。
在各种实施方式中,控制器126实施不同方法将数据对象116分割成不同的段以用于卸载。通常,控制器126基于理论数据分布,选择数据对象116中的一个或多个“分割点”,其中理论数据分布将数据分配给不同非易失性存储介质。理论数据分布是一种选择用于帮助降低数据对象116总卸载时间的分布,同时在重建数据对象116时,该理论数据分布还有助于以能够确保数据对象一致性和完整性的方式划分数据对象116。
在一种实施方式中,控制器126基于接收非易失性介质(例如,固态驱动器110和磁盘驱动器102)的数据传输速率选择数据对象116的分割点。例如,考虑到沿每条路径的特定数据传输速率(例如,图1所示路径A和B),控制器126可计算数据对象116的理论分割点,该理论分割点在数学上有利于使数据对象116各段的并行传输的总卸载时间最短。
在一些情况下,控制器126可使用额外标准来计算数据对象116的分割点。例如,控制器126可基于数据对象的一个或多个结构属性来标识实际分割点,这些结构属性使得在特定位置中进行分割可比在其他地方分割更加容易。与沿单数据通道卸载相同数据对象116的时间相比,将数据对象116分割成段并通过并行数据传输方式将不同段卸载到不同、全异的存储介质中,可显著减少数据对象116的卸载时间。
在各种实施方式中,存储设备104可包括在并行数据传输中可写入的超过两个存储介质。例如,存储设备104可包括任意数量的并行数据通道,这些并行数据通道允许在易失性存储器130和非易失性存储介质之间进行数据传输。尽管图1所示非易失性介质(例如,固态驱动器110和磁盘驱动器102)位于存储设备104的内部,但其他实施方式可包括位于存储设备104外部的一个或多个非易失性介质。例如,存储设备104可通信地耦合到一个或多个外部非易失性存储资源,诸如耦合到包括一个或多个硬盘驱动器组件、固态驱动器等的阵列。例如,控制器126基于位于存储设备104内部和/或外部的多个接收存储设备中每一个接收存储设备的数据传输速率将数据对象116分割成段。
控制器126包括软件和/或硬件,并且可在任何有形的计算机可读存储介质中实施,所述该计算机可读存储介质在数据存储设备100内或通信地耦合到该数据存储设备。如本文所用,术语“有形计算机可读存储介质”包括但不限于RAM、ReRAM、MRAM、闪存或其他存储器技术,以及其他固态存储类存储器或其他光盘存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备,或可用于存储所需信息以及可通过移动设备或计算机访问的任何其他有形介质。和有形计算机可读存储介质相比,无形计算机可读通信信号可包含计算机可读指令、数据结构、程序模块或常驻在调制数据信号诸如载波或其他信号传输机制中的其他数据。
图2示出了另一种示例性存储系统200,该存储系统提供用于基于到非易失性介质的数据传输速率来对数据对象进行加权分条。存储系统200包括至少一个易失性存储器202(例如,DRAM)和两个非易失性存储器设备206和210。在一种实施方式中,易失性存储器202和非易失性存储器设备206和210是相同存储设备的一部分。例如,存储系统200可以是包括磁盘和闪存设备的SSHD。在其他实施方式中,存储系统200可包括被配置为从易失性存储器202接收数据的任意数量的全异或相同的非易失性存储器设备。
在存储系统200的标称使用期间,在易失性存储器202中存储和管理元数据对象204。元数据对象204可采用多种形式并用于各种目的。在一种实施方式中,元数据对象204包括范围表,该范围表管理主机逻辑块地址(LBA)到存储在非易失性存储器设备206和210中一者上的读或写缓存的对应物理地址的映射。例如,非易失性存储器设备206可以是在外径区域中存储读缓存的磁盘。在该示例中,元数据对象204是高速缓存元数据表,该高速缓存元数据表将盘区(主机LBA的范围)映射到磁盘上读缓存中物理数据块的范围。
响应于掉电序列的启动和检测,设备控制器(未示出)启动数据卸载序列(在本文中也称为“分条序列”),由此元数据对象204被划分为逻辑连续的段,每个段从易失性存储器202复制到非易失性存储器设备206或210中的一者中。例如,控制器可检测突发功率损失,切换到备用电源并启动数据卸载序列。或者,控制器可从主机设备接收标称“关断”命令,并响应于接收到命令,启动掉电序列。
在数据卸载序列期间,控制器标识元数据对象204中的一个或多个理论“分割点”,从而将元数据对象204划分成不同的数据段。被标识的分割点的数量基于元数据对象204将划分以进行卸载的总段数。在一些实施方式中,所选择的分割点数量基于可用于在易失性存储器202与非易失性存储器设备206和210之间进行并行数据传输的路径的数量。通常,所选择的分割点的数量可等于(N-1),其中N是可用于从易失性存储器到各种非易失性存储设备进行并行数据传输的数据通道的总数。
例如,存储设备200具有可用于从易失性存储器202进行并行数据传输的两个通道216和218。选择单个分割点以生成用于沿两个通道216和218中的每一个进行传输的数据段。在另一实施方式中,非易失性存储器设备206和210中的至少一者是被配置为同时沿多个数据通道从易失性存储器接收数据的多平面闪存。例如,可存在用于将数据写入到各个闪存平面中的每一个闪存平面的单独数据通道。
在一种实施方式中,对用于划分元数据对象的一个或多个分割点的选择基于将元数据对象204的总卸载时间最小化的理论数据分布。理论数据分布是基于沿数据通道216和218的每一个的数据传输速率来确定的。在所述示例中,数据可以230MB/s的速率沿通道216传输,并且数据可以每秒50MB的速率沿通道218传输。如果元数据对象204被划分成两个相等的段,则沿通道216进行的数据传输操作可比沿通道218的数据传输操作更快。因此,最佳理论数据分布可基于对应的写传输速率将元数据对象204的数据不均匀地分配给不同的非易失性存储器设备206和210。
根据一种实施方式,通过以下方法计算示例性理论分割点214。首先,非易失性存储器设备206和210根据性能特性来表征。将一段数据X卸载到非易失性存储设备之一的总时间可视为三个变量的总和:(1)被占时间;(2)准备时间;和(3)卸载的活跃时间。如本文所用,“被占时间”是指例如开始卸载之前等待非易失性存储器设备完成其他当前未决命令所花费的时间。在一个示例中,HDD的被占时间为约5毫秒,而NAND设备的被占时间为约50毫秒。和“被占时间”相比,“准备时间”(有时也称为平均访问时间)是指非易失性存储器设备物理地将其自身设置用于写操作所需的时间。在HDD设备中,这包括旋转致动器臂并为传感器头寻找理想的径向位置。在一种示例性实施方式中,HDD设备的准备时间为17.5毫秒。在基于闪存的设备(例如,NAND)中,准备时间相当微不足道(例如,对于一些NAND设备,为约500微秒)。“活跃时间”是指存储设备物理地接收和/或写入数据的时间。
换句话说,卸载到设备A(例如,HDD)的总时间为:其中,X1是卸载到设备A的数据量,数据速率A是设备A的写入数据速率。卸载到设备B的总时间可使用设备B的准备时间、被占时间和数据速率以类似方式表示。在一种理论卸载情况中,卸载到设备A的总时间初始设置为等于卸载到设备B的时间。例如:
其中,X1和X2分别代表要卸载到设备A和B中每一者的元数据对象的部分。当元数据对象204的大小已知时,可提供X1和X2之间进一步的关系:
X1=对象大小-X2 (2)
因此,X1和X2的理论分布值可通过用等式(2)的右边替代等式1中的X1、对等式1中X2求解,然后在等式(2)中使用解出的X2值来解X1。
在一个示例中,设备A是(例如,在磁盘外径处)具有250MB/s写入数据速率的HDD,设备B是具有50MB/s写入数据速率的NAND闪存设备。如果准备时间和被占时间值等于上文提供的值(对于HDD分别为17.5和50毫秒,对于NAND为500微秒和5毫秒),并且元数据对象204具有100MB大小,则可以通过上述方法解出X1和X2的值,得出X1为88.45MB,X2为11.55MB。换句话说,理论分割点214提供用于将100MB元数据对象分别分割成88.45MB和11.55MB的段。88.45MB以250MB/s的写入速率卸载到HDD,而11.55MB以50MB/s的写入速率卸载到NAND闪存设备。
理论分割点214的位置取决于向非易失性存储器设备的写入传输速率以及用于卸载的元数据对象204的大小。在一种实施方式中,对于一种或多种大小的元数据对象,理论分割点214是预先确定的,并且在数据卸载序列期间检索以供设备控制器使用。在另一种实施方式中,在数据卸载序列的时间处动态计算理论分割点214。
在一些实施方式中,在计算出的理论分割点诸如理论分割点214处,对数据对象进行分段存在实际挑战。例如,元数据对象204的某些结构属性可使分段复杂化。在这些情况下,设备控制器可利用各种其他标准来确定如何分割元数据对象204以进行数据卸载。以下参考图3讨论几个示例。
图3示出了又一种示例性存储系统300,该存储系统提供用于基于易失性和非易失性介质之间的数据传输速率对数据对象进行加权分条。存储系统300包括至少一个易失性存储器302(例如,DRAM)和至少两个非易失性存储器设备306和310。
在存储系统300的标称使用期间,在易失性存储器302中存储和管理元数据对象304。元数据对象304可采用多种形式并用于各种目的,包括上文参考图2的元数据对象204所述的那些。响应于掉电序列的启动和检测,设备控制器(未示出)启动数据卸载序列,由此元数据对象304被划分为不同段,每个段从易失性存储器302复制到非易失性存储器设备306和310中一者上的存储空间中。
在数据卸载序列期间,控制器标识元数据对象304中的一个或多个理论“分割点”(例如,理论分割点314),从而将元数据对象304划分成逻辑连续的段。在一种实施方式中,对用于划分元数据对象304的一个或多个分割点的选择基于理论数据分布,该理论数据分布使元数据对象304的总卸载时间最小化,诸如解释沿并行数据通道316和318中的每一者到非易失性存储器设备306和310的可变数据传输速率的分布。理论分割点314的计算和标识可以上文参考图2大致所述的方式执行。
在图3的示例中,元数据对象304具有一个或多个结构属性,这些结构属性使得沿理论分割点314对元数据对象304进行分段复杂化。例如,理论分割点314可位于主机大小数据块、数据扇区、用于加密的代码字、二叉树等的中间。为了大致说明这一概念,图3的元数据对象304被示出为包括示例性子组件A-E。子组件A-E的数量、大小和目的可根据实施方式的不同而有显著区别。
在一种实施方式中,子组件A-E是元数据对象304内的各个子对象。例如,子组件A-E可以是包括在包装器中的不同表,所述包装器具有单个逻辑时钟以确保每个子对象之间的时间一致性。在相同或另一实施方式中,子组件A-E中的一个或多个子组件包括具有相互关联的逻辑节点的二叉树。由于各种原因,分割二叉树会产生复杂性。例如,对二叉树的一个角所做的更改可能会导致整个树的变化波动,其宽度难以检测,并且在某些情况下无法检测。因此,当修改B+树或类似数据结构时,最好保持其完整性。因此,如果理论分割点314将二叉树分叉成两部分,则在理论分割点314处对元数据对象304进行分段可能是不切实际的。
在其他实施方式中,子组件A-E是主机数据块(例如,每个对应于单个逻辑块地址的512KB块)。在另一种实施方式中,子组件A-E表示HDD的各个数据扇区。出于实际原因,将单独的主机数据块、闪存页或HDD数据扇区划分成两个段可能具有挑战性。例如,主机数据块可包括主机数据以及用于评估数据可靠性的奇偶校验位。在一些情况下,单独奇偶校验码可应用于扇区的不同部分(例如,一半扇区)。因此,存储设备(例如,非易失性存储器设备)在未接收整个数据块的完整奇偶校验位集合的情况下可能无法评估部分主机数据块的数据可靠性。此外,对于一些纠错码(ECC),除非整个数据对象是完整的,否则不可能发生错误再生。在又一种实施方式中,子组件A-E中的一个或多个包括加密信息,诸如代码字,在不牺牲存储设备对存储在不同物理位置的分段数据部分上执行数据完整性检查的能力情况下,无法轻易地对所述加密信息进行分段。
因此,存在与元数据对象304的形式、结构和/或内容相关的各种数据属性,这些数据属性禁止在理论分割点314处分割元数据对象304或者使这种分割复杂化。因此,存储系统300还可考虑实际或“自然”分割点,以及实际分割点和理论分割点之间的接近度。
大致如上所述,理论分割点代表卸载速度最快的分段点,前提是元数据对象304可在任何位置处进行分割而无需执行特殊处理来管理由分段带来的数据一致性和完整性风险。相比之下,由于元数据对象的结构属性,实际分割点对分段是有利的。换句话说,实际分割点是能够分割元数据对象304而不产生额外负担的点,特别是因管理由分割带来的数据一致性或完整性风险而造成的负担。
一些元数据对象可在任何位置同样容易地进行分割。在这些元数据对象中,每个点都是实际分割点。其他元数据对象包括不是实际分割点的点集。存储设备300避免在不是实际分割点的任何位置处进行分割。在子组件A-E代表主机逻辑块的一种实施方式中,在每对相邻主机大小块之间的边界处存在实际分割点。同样地,实际分割点可发生在:二叉树的开始节点和结束节点,数据扇区、代码字段等的开始和结束位置。
因此,标识分割点可能需要标识一个或多个实际分割点,并且确定理论分割点314是否对应实际分割点(例如,重合)。在理论分割点314不对应实际分割点的情况下,离理论分割点314最近的实际分割点320被标识并用作真正的分割点,而不使用理论分割点314。
例如,存储系统300沿实际分割点320划分80MB元数据对象304,形成63MB和17MB的段,而不沿着理论分割点314划分80MB元数据对象304,形成64MB和16MB的段。以230MB/s的示例性速率将63MB段复制到非易失性存储器设备306,同时以50MB/s的示例性速率将17MB段复制到非易失性存储器设备310。
在一个或多个真正的分割点是基于上述逻辑和理论分割点的一种实施方式中,对于各种元数据对象,真正的分割点是预先确定的并保存在表中,诸如元数据对象304内的表中。在其他实施方式中,存储系统300包括动态评估逻辑和/或理论分割点以选择真正的分割点的逻辑。
图4示出了另一种示例性数据对象400,该数据对象可通过加权分条技术分割并从易失性介质卸载到不同的非易失性介质中。数据对象400分别包括多个示例性子对象X、Y和Z。
子对象X、Y和Z中的每一者共享一个逻辑时钟字段408。此外,数据对象400包括宏ID 402(例如,证明对象不是随机数据的加密安全标识符)和宏校验(macrochecksum)406。宏校验和406提供整个数据对象400的编码,用于检测完全恢复或不完全恢复的较小对象的集合。此外,宏校验和410,412和416提供每个单独子对象X、Y和Z的编码。
在标称使用期间,在易失性存储器(未示出)中存储和管理数据对象400。响应于掉电序列的启动和检测,设备控制器(未示出)启动数据卸载序列,由此数据对象400被划分为不同段,每个段从易失性存储器复制到两个或更多个非易失性存储器设备(未示出)上的存储空间。
在数据卸载序列期间,控制器标识数据对象400中的一个或多个理论“分割点”(例如,理论分割点414),从而将数据对象400划分成逻辑连续的段。在一种实施方式中,对用于划分数据对象400的一个或多个分割点的选择基于理论数据分布,该理论数据分布使数据对象400的总卸载时间最小化,诸如解释沿两个或更多个并行数据通道中的每一个并行数据通道到非易失性存储器设备的可变数据传输速率。理论分割点414的计算和标识可以上文参考图2和图3大致所述的方式执行。
在图4的示例中,理论分割点414将子对象Y分成两个组件。这是有问题的,因为当从非易失性存储设备回读数据时,分割子对象Y可导致宏校验和406失效以及微校验和412失效。认识到这一点,存储设备的控制器可标识最近的实际分割点418(例如,子对象Y和Z之间的边界),并在实际分割点418处分割数据对象400。在分割数据对象400期间,存储设备控制器可为两个组件中的每一个组件生成新的纠错码(ECC)并将该纠错码存储在实际分割点418的任一侧上,使得新的ECC存储在适用于整个对象的ECC以外。逻辑时钟408和宏ID 402与子对象Z存储在一起,并且随后当对象随后从非易失性介质中恢复时使用。
图5示出了示例性操作,该操作提供用于基于数据从易失性存储位置到非易失性存储位置的传输速率对数据对象进行加权分条。启动操作502启动存储设备的掉电序列。在一种实施方式中,响应于导致存储设备切换到备用电源的突发功率损失而执行启动操作502。在另一种实施方式中,响应于从主机设备发出的标称“关断”命令而执行启动操作502。
响应于掉电序列的启动,标识操作504标识驻留在存储器中的数据对象(例如,元数据对象),并且还标识在数据卸载中可用于接收部分数据对象的各种非易失性存储器设备(以下称为“接收设备”)。计算操作506计算理论数据分布,用于在并行数据传输中在接收设备间分配数据对象的数据。在一种实施方式中,理论数据分布基于每个通道到接收设备之一的数据传输速率和数据对象的总大小。
标识操作508标识一个或多个理论分割点,用于基于理论数据分布将数据对象分割成逻辑连续的段。确定操作510确定被标识的一个或多个理论分割点是否对应于数据对象的逻辑(“自然”)分割点,或者相反地,在难以进行分割的情况下是否存在所述一个或多个理论分割点中的一者或多者,诸如在二叉树、主机大小数据块等内。
如果被标识的一个或多个理论分割点各自与对应的实际分割点重合,则分段操作512将在一个或多个理论分割点处对数据对象进行分段。另一方面,如果理论分割点中的一个或多个未与对应的实际分割点重合,则分段操作516基于实际分割点对数据对象进行分段。也就是说,数据对象在最接近每个对应理论分割点的实际分割点处进行分段,从而提供与理论数据分布最相似的数据对象分割。
在任一种情况下,卸载操作514将数据对象的每个段卸载到其中接收设备中对应的一个上,从而使数据对象的不同的连续段存储在接收设备中的每一个上。当存储设备的功率恢复时,可从非易失性存储位置将段读入到易失性存储器中以重新构建数据对象。
本文描述的实施方式可被实施为一个或多个计算机系统中的逻辑步骤。本文描述的各种实施方式的逻辑操作被实施为(1)在一个或多个计算机系统中执行的处理器执行步骤的序列,以及(2)一个或多个计算机系统内的互连机器或电路模块。实施方式是一个选择的问题,取决于计算机系统的性能要求。因此,构成本文所述实施方式的实施方式的逻辑操作被不同地称为操作、步骤、对象或模块。此外,应当理解,除非另有明确声明或权利要求语言原本要求了特定顺序,否则逻辑操作可以任意顺序执行。
为清楚起见,并非本文所述实施方式的所有常规功能都得到了示出和描述。应当理解,在开发任何此类实际实施方式的过程中,将做出许多实施方式特定的决策以实现开发者的特定目标,诸如符合应用和商业相关的约束,并且在不同的实施方式和不同的开发者之间,这些特定目标将有所不同。
上面的说明书、示例和数据提供了示例性实施方式的结构和使用的完整描述。由于在不脱离本发明的实质和范围的前提下可给出多种另选实施方式,所以本发明归属于以下所附权利要求。此外,在不脱离所述权利要求的情况下,不同实施方式的结构特征可在又一种实施方式中结合。

Claims (20)

1.一种方法,所述方法包括:
响应于用于存储设备的掉电序列的启动,基于到多个非易失性接收设备的数据传输速率来将数据对象分割成大小可变的多个数据段;以及
同时将所述数据对象的所述多个数据段中的每一个数据段从易失性存储器导出到所述多个非易失性接收设备中的不同的一个非易失性接收设备。
2.根据权利要求1所述的方法,其中所述多个非易失性接收设备包括至少两个全异的存储资源。
3.根据权利要求1所述的方法,其中所述存储设备是固态混合驱动器,并且所述多个非易失性接收设备包括至少一个闪存设备和至少一个磁盘。
4.根据权利要求1所述的方法,还包括:
基于所述数据传输速率来标识理论数据分布,所述理论数据分布描述要导出到所述多个非易失性接收设备中每一个非易失性接收设备的数据量;
基于所述数据对象的至少一个结构属性来标识所述数据对象中的多个实际分割点;以及
在所述实际分割点中的选择的一个实际分割点处分割所述数据对象,所述选择的一个实际分割点提供所述数据对象的与所述理论数据分布最相似的分割。
5.根据权利要求4所述的方法,其中所述数据对象的所述至少一个结构属性是相邻数据扇区之间的边界。
6.根据权利要求4所述的方法,其中所述至少一个结构属性是二叉树,并且所述实际分割点中的所述选择的一个实际分割点是二叉树的结束节点。
7.根据权利要求1所述的方法,其中所述数据对象的不同连续段存储在所述多个非易失性接收设备中的不同设备上。
8.根据权利要求1所述的方法,其中所述数据对象是缓存映射表。
9.一种存储设备,所述存储设备包括:
被配置为以并行数据流接收数据的至少两个全异的非易失性存储资源;
存储设备控制器,所述存储设备控制器被配置为:
启动用于存储设备的掉电序列;
响应于所述掉电序列的启动,基于到多个全异的非易失性接收设备的数据传输速率来将数据对象分割成大小可变的多个数据段;以及
将所述数据对象的所述多个数据段中的每一个数据段从易失性存储器导出到所述多个全异的非易失性存储资源中的不同的一个非易失性存储资源。
10.根据权利要求9所述的存储设备,其中所述存储设备是固态混合驱动器,并且所述多个全异的非易失性存储资源包括至少一个闪存设备和至少一个磁盘。
11.根据权利要求9所述的存储设备,其中所述数据对象是缓存映射表。
12.根据权利要求9所述的存储设备,其中所述存储设备控制器被进一步配置为:
基于所述数据传输速率来标识理论数据分布,所述理论数据分布描述要导出到所述多个非易失性接收设备中的每一个非易失性接收设备的数据量;
基于所述数据对象的至少一个结构属性来标识所述数据对象中的多个实际分割点;以及
在所述实际分割点中的选择的一个实际分割点处分割所述数据对象,所述选择的一个实际分割点提供所述数据对象的与所述理论数据分布最相似的分割。
13.根据权利要求9所述的存储设备,其中所述数据对象的所述至少一个结构属性是主机数据块之间的边界。
14.根据权利要求9所述的存储设备,其中所述至少一个结构属性是二叉树,并且所述实际分割点中的所述选择的一个实际分割点是二叉树的结束节点。
15.一个或多个有形计算机可读存储介质,所述一个或多个有形计算机可读存储介质编码计算机可执行指令以在计算机系统上执行计算机过程,所述计算机过程包括:
响应于用于存储设备的掉电序列的启动,基于到多个全异的非易失性接收设备的数据传输速率来将数据对象分割成大小可变的多个数据段;以及
同时将所述数据对象的所述多个数据段中的每一个数据段从易失性存储器导出到所述多个非易失性接收设备中的不同的一个非易失性接收设备。
16.根据权利要求15所述的一个或多个有形计算机可读存储介质,其中所述多个非易失性接收设备包括至少两个全异的存储资源。
17.根据权利要求15所述的一个或多个有形计算机可读存储介质,其中所述存储设备是固态混合驱动器,并且所述多个非易失性接收设备包括至少一个闪存设备和至少一个磁盘。
18.根据权利要求15所述的一个或多个有形计算机可读存储介质,其中同时导出所述多个数据段中的每一个数据段进一步包括:
将所述多个数据段中的最大的一个数据段以最高数据速率导出到所述多个非易失性接收设备中的选择的一个非易失性接收设备。
19.根据权利要求15所述的一个或多个有形计算机可读存储介质,还包括:
基于所述数据传输速率来标识要导出到所述多个非易失性接收设备中的每一个非易失性接收设备的数据的理论数据分布;
基于所述数据对象的至少一个结构属性来标识所述数据对象中的多个实际分割点;以及
在所述实际分割点中的所述选择的一个实际分割点处分割所述数据对象,所述选择的一个实际分割点提供所述数据对象的与所述理论数据分布最相似的分割。
20.根据权利要求15所述的一个或多个有形计算机可读存储介质,其中所述数据对象是缓存映射表。
CN201710628506.0A 2016-07-29 2017-07-28 加权数据分条 Active CN107665096B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/223,303 US10445235B2 (en) 2016-07-29 2016-07-29 Weighted data striping
US15/223,303 2016-07-29

Publications (2)

Publication Number Publication Date
CN107665096A true CN107665096A (zh) 2018-02-06
CN107665096B CN107665096B (zh) 2022-04-19

Family

ID=61010006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710628506.0A Active CN107665096B (zh) 2016-07-29 2017-07-28 加权数据分条

Country Status (3)

Country Link
US (1) US10445235B2 (zh)
KR (1) KR102353253B1 (zh)
CN (1) CN107665096B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096456A (zh) * 2019-05-13 2019-08-06 成都定为电子技术有限公司 一种高速率大容量缓存方法与装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6253752B1 (ja) * 2016-11-29 2017-12-27 株式会社東芝 階層化ストレージシステム
US10929319B2 (en) * 2018-05-11 2021-02-23 Seagate Technology Llc Data storage device with front end bus
US10956071B2 (en) * 2018-10-01 2021-03-23 Western Digital Technologies, Inc. Container key value store for data storage devices
US11397532B2 (en) * 2018-10-15 2022-07-26 Quantum Corporation Data storage across simplified storage volumes
US10740231B2 (en) 2018-11-20 2020-08-11 Western Digital Technologies, Inc. Data access in data storage device including storage class memory
US11016905B1 (en) 2019-11-13 2021-05-25 Western Digital Technologies, Inc. Storage class memory access
US11249921B2 (en) 2020-05-06 2022-02-15 Western Digital Technologies, Inc. Page modification encoding and caching

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200275A1 (en) * 2002-04-23 2003-10-23 Motoaki Hirabayashi File transfer method and system
JP2004112188A (ja) * 2002-09-17 2004-04-08 Canon Inc データ編集方法
CN101375284A (zh) * 2004-10-25 2009-02-25 里克·L·奥尔西尼 安全数据分析方法和系统
CN101685467A (zh) * 2008-09-25 2010-03-31 美国日本电气实验室公司 用于内容定义节点分裂的方法和装置
US20120275046A1 (en) * 2011-04-27 2012-11-01 Toshiba America Information Systems, Inc. Splitting a data stream between two storage media in a hybrid disk drive
US20130145110A1 (en) * 2006-01-13 2013-06-06 Katsuo Mogi Storage controller and data management method
CN103617124A (zh) * 2013-11-26 2014-03-05 北京创毅视讯科技有限公司 一种闪存管理方法和装置
CN103733595A (zh) * 2011-04-07 2014-04-16 交互数字专利控股公司 用于本地数据缓冲的方法和设备
CN104317671A (zh) * 2014-10-24 2015-01-28 杭州帅锐电子科技有限公司 一种提升非易失存储使用寿命的掉电数据保存恢复算法
US20150193473A1 (en) * 2012-11-01 2015-07-09 Guangyi Tao Database Storage System based on Optical Disk and Method Using the System

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272591B2 (en) 1998-10-19 2001-08-07 Intel Corporation Raid striping using multiple virtual channels
US20040062516A1 (en) * 2002-09-17 2004-04-01 Canon Kabushiki Kaisha Moving picture experts group phase 2 transport stream data editing method
KR100502106B1 (ko) 2002-10-17 2005-07-20 한국전자통신연구원 스트라이핑 기법을 이용한 레이드 시스템에서의 데이터재구성 방법
WO2016090568A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
KR102367982B1 (ko) * 2015-06-22 2022-02-25 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10146286B2 (en) * 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200275A1 (en) * 2002-04-23 2003-10-23 Motoaki Hirabayashi File transfer method and system
JP2004112188A (ja) * 2002-09-17 2004-04-08 Canon Inc データ編集方法
CN101375284A (zh) * 2004-10-25 2009-02-25 里克·L·奥尔西尼 安全数据分析方法和系统
US20130145110A1 (en) * 2006-01-13 2013-06-06 Katsuo Mogi Storage controller and data management method
CN101685467A (zh) * 2008-09-25 2010-03-31 美国日本电气实验室公司 用于内容定义节点分裂的方法和装置
CN103733595A (zh) * 2011-04-07 2014-04-16 交互数字专利控股公司 用于本地数据缓冲的方法和设备
US20120275046A1 (en) * 2011-04-27 2012-11-01 Toshiba America Information Systems, Inc. Splitting a data stream between two storage media in a hybrid disk drive
US20150193473A1 (en) * 2012-11-01 2015-07-09 Guangyi Tao Database Storage System based on Optical Disk and Method Using the System
CN103617124A (zh) * 2013-11-26 2014-03-05 北京创毅视讯科技有限公司 一种闪存管理方法和装置
CN104317671A (zh) * 2014-10-24 2015-01-28 杭州帅锐电子科技有限公司 一种提升非易失存储使用寿命的掉电数据保存恢复算法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王谦: "高速大容量存储器设计", 《优秀硕士论文电子期刊信息科技特辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096456A (zh) * 2019-05-13 2019-08-06 成都定为电子技术有限公司 一种高速率大容量缓存方法与装置

Also Published As

Publication number Publication date
US10445235B2 (en) 2019-10-15
KR102353253B1 (ko) 2022-01-18
CN107665096B (zh) 2022-04-19
US20180032432A1 (en) 2018-02-01
KR20180013771A (ko) 2018-02-07

Similar Documents

Publication Publication Date Title
CN107665096A (zh) 加权数据分条
US11967369B2 (en) Lifetime mixed level non-volatile memory system
KR101910840B1 (ko) 동적 그래뉼기반 매개 스토리지
US10037149B2 (en) Read cache management
KR101678868B1 (ko) 플래시 주소 변환 장치 및 그 방법
CN107391027A (zh) 廉价磁盘冗余阵列存储设备及其管理方法
CN104778018A (zh) 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法
CN103699457A (zh) 基于条带化的磁盘阵列修复方法及装置
US10467074B2 (en) Conditional journal for storage class memory devices
US11256447B1 (en) Multi-BCRC raid protection for CKD
US10409682B1 (en) Distributed RAID system
JP2014182835A (ja) データ記憶システム、データ記憶方法、およびプロセッサ読み取り可能記憶媒体
CN101620518A (zh) 一种磁盘冗余阵列raid的创建方法及装置
US12045470B2 (en) Method of writing data in nonvolatile memory device and nonvolatile memory device performing the same
US11704196B2 (en) Reduced parity data management
CN107728943B (zh) 一种延迟产生校验光盘的方法及其对应的数据恢复方法
US20230049877A1 (en) Diagonal page mapping in memory systems
KR102482116B1 (ko) 연산 스토리지 장치의 메모리 할당 및 보호 방법 및 이를 수행하는 연산 스토리지 장치
JP7023103B2 (ja) メモリシステム及び制御方法
CN114730291A (zh) 具有分区的ssd的数据停放
US20150199236A1 (en) Multi-level disk failure protection
KR102477051B1 (ko) 네트워크를 이용한 스토리지 장치의 데이터 복구 방법 및 이를 수행하는 스토리지 장치
US9443553B2 (en) Storage system with multiple media scratch pads
US11221790B2 (en) Storage system
CN117193630A (zh) 使用写节流在存储装置中写数据的方法及存储装置

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