CN105612500A - 提供硬件中的数据帧段的选择性合并的高性能系统 - Google Patents

提供硬件中的数据帧段的选择性合并的高性能系统 Download PDF

Info

Publication number
CN105612500A
CN105612500A CN201480055094.0A CN201480055094A CN105612500A CN 105612500 A CN105612500 A CN 105612500A CN 201480055094 A CN201480055094 A CN 201480055094A CN 105612500 A CN105612500 A CN 105612500A
Authority
CN
China
Prior art keywords
logical
lpage
page
logical block
logical page
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
CN201480055094.0A
Other languages
English (en)
Other versions
CN105612500B (zh
Inventor
J·W·弗林斯鲍
J·琼斯
R·N·马伦多尔
A·J·汤姆林
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Skyera 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 Western Digital Technologies Inc, Skyera LLC filed Critical Western Digital Technologies Inc
Publication of CN105612500A publication Critical patent/CN105612500A/zh
Application granted granted Critical
Publication of CN105612500B publication Critical patent/CN105612500B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • 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
    • 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]

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

一种用于将数据写入储存介质中的一系列逻辑块的方法包括:接收包括起始逻辑块地址、指示将要写的逻辑块地址的范围的值、以及数据的逻辑块的命令;将逻辑块储存在第一暂时性储存装置中;通过将逻辑块数据复制与逻辑页面中的逻辑块的数量相对应的多次来生成逻辑页面,以及将所生成的逻辑页面传输到第二暂时性储存装置并将所生成的逻辑页面储存在第二暂时性储存装置中;从起始逻辑块地址开始,将所生成的逻辑页面从第二暂时性储存装置写入储存介质中;以及如果第一写操作并不在逻辑页面边界开始或者最后的写操作并不在逻辑页面边界结束,则执行读-改-写操作。

Description

提供硬件中的数据帧段的选择性合并的高性能系统
技术领域
本公开内容涉及用于计算机系统的数据储存系统。更具体来说,本公开内容涉及向储存介质写入经选择的数据。
背景技术
数据储存系统为主机系统的数据提供储存。将数据分组以用于储存在被称为逻辑块的预定大小的单元(其被写入到储存介质)中。当向储存介质写入数据的逻辑块时(例如,在固态驱动器(SSD)或混合驱动器中),数据可以被写入由多个逻辑块构成的较大的单元(例如逻辑页面(L页面))中。有时,在跨越储存介质中的若干逻辑页面的大量逻辑块中写入相同的新数据、或者仅向包括在储存介质中的逻辑页面中的逻辑块的其中某些逻辑块写入新的不同的数据变得有利。
附图说明
通过参照附图描述示例实施例,本发明构思的方面和特征将变得更加清晰,在附图中:
图1是根据本发明构思的示例实施例,例示了用于在大量逻辑块中写入相同的新数据的数据储存装置的框图;
图2是根据本发明构思的示例实施例,例示了用于实现写相同操作(write-sameoperation)的方法的流程图;
图3是根据本发明构思的示例实施例,例示了用于实现跳写操作(skip-writeoperation)的数据储存装置的框图;
图4是根据本发明构思的示例实施例,例示了实现跳写操作的方法的流程图;
图5A是根据本发明构思的示例实施例,例示了写掩码的图示;
图5B是根据本发明构思的示例实施例,例示了划分成与包含在逻辑页面中的逻辑块的数量相对应的部分的写掩码的图示;以及
图6是根据本发明构思的示例实施例,例示了使用写掩码的对应部分来合并第一逻辑页面和第二逻辑页面的方法的图示。
具体实施方式
尽管描述了某些实施例,但这些实施例仅通过示例的方式来呈现,而并不旨在限制保护范围。本文中所描述的方法和装置可以以多种其它形式体现。此外,可以在不脱离保护范围的情况下,以本文中所描述的示例方法和装置的形式进行各种省略、替代、以及变化。
概述
固态驱动器(SSD)被用作用于计算机系统的数据储存系统。为了修改储存在这种数据储存系统的存储位置中的数据,数据可以被写入由多个逻辑块构成的较大单元(例如逻辑页面)中。例如,4千字节(kB)的逻辑页面可以由8个512字节的逻辑块组成。有时,将相同的数据写入一系列连续的逻辑块中或对一系列连续的逻辑块内的非连续的逻辑块中的数据进行修改变得有利。
系统概述
本发明构思的一个方面涉及将相同的数据写入连续的多个逻辑块中的写相同装置和方法。在写相同装置的一个示例实施例中,装置接收包括起始逻辑块地址(LBA)、LBA的范围(即,指示数据将被写入其中的逻辑块的数量的值)、以及将写入到逻辑块中的数据块的命令。
写相同装置操作为将接收到的数据块写入从起始LBA开始的LBA的指定范围内的每个逻辑块中。如果第一写操作并不在逻辑页面边界开始或者最后的写操作并不在逻辑页面边界结束,则写相同装置执行读-改-写操作(RMW),即时(on-the-fly)合并逻辑页面块并执行适当的位修改。
本发明构思的另一个方面涉及跳写装置和方法。在跳写装置的一个示例实施例中,该装置接收包括起始逻辑块地址、指示逻辑块地址的范围的值、以及写掩码的命令。通过基于写掩码的对应部分将逻辑块合并成逻辑页面来生成输出逻辑页面。
跳写装置对如由写掩码确定的逻辑页面进行操作,将硬件优化应用于以前是软件过程的部分。跳写装置即时合并逻辑页面块并基于写掩码来执行适当的位修改。
写相同
图1是根据本发明构思的示例实施例,例示了用于将相同的新数据写入大量逻辑块中的数据储存装置的框图。参考图1,在本发明构思的一个示例实施例中,数据储存装置100可以包括命令输入设备110、第一暂时性储存装置120、处理器130、第二暂时性储存装置140、循环冗余校验(CRC)生成电路150、比较电路160、写电路170、计数器180、以及储存介质190。储存介质可以包括诸如固态半导体存储器(例如,NAND)之类的非易失性存储器。
数据储存装置100的元件可以集成在一个半导体芯片上或可以是集成到一个半导体封装体中的分开的管芯。本领域普通技术人员将理解,其它配置是可能的并包括在本发明构思的范围内。例如,由所描述的元件执行的功能可以由其它元件来执行,并且这些元件可以被组合成较少的元件和/或被细分成较大数量的元件。
在一个实施例中,命令输入设备110接收包括起始逻辑块地址(LBA)、指示LBA的范围的值、以及将被写入到LBA的范围内的逻辑块中的数据的逻辑块的命令。例如,可以从连接到数据储存装置100的主机接收命令。接收到的数据的逻辑块被传送到第一暂时性储存装置120。第一暂时性储存装置120对于处理器130可以是内部的或外部的。处理器130对接收到的数据的逻辑块进行复制来生成逻辑页面,其中,每个逻辑块都具有与接收到的数据的逻辑块相同的数据。例如,对于包含八个逻辑块的逻辑页面,处理器130将接收到的逻辑块复制七次来生成包含八个逻辑块(每个都包含相同数据)的逻辑页面。
每个逻辑块例如可以包括但不限于,大约512字节的数据、大约1024字节的数据、大约2048字节的数据、或者大约4096字节的数据。在某些情形下,例如当储存介质被擦除或者被重新格式化时,接收到的数据的逻辑块可以包含全一或全零,并且指示逻辑块地址的范围的值可以指示储存介质的逻辑块地址中的所有地址。
处理器130使得所生成的逻辑页面被传送到第二暂时性储存装置140。第二暂时性储存装置140可以是包括在(RMW)模块195中的队列。处理器130可以使得第二暂时性储存装置140在传送所生成的逻辑页面之前就被预留(reserve)。如示出的,RMW模块195可以另外包括CRC电路150和写电路170。
在一个实施例中,CRC电路150基于每个逻辑块中的至少数据和LBA来生成CRC值,并将准备写的逻辑块数据的CRC与如接收到的逻辑块数据的CRC进行比较。如果CRC并不匹配,则将要写的逻辑块数据被标记为无效。尽管在本公开内容中的示例实施例提及了CRC,但在某些实施例中使用其它错误检测机制(例如但不限于,校验和以及散列函数、等等)是可能的。
在一个实施例中,写电路170向储存介质190输出有效数据。计数器180对写入储存介质190的逻辑块的数量进行计数并生成计数值。比较电路170将计数值与指示将要写的LBA的范围的值进行比较。如果值是匹配的,则比较电路160生成指示写相同操作完成的信号。在某些实施例中,写相同操作从属于其它(RMW)操作,因此写电路将逻辑页面从第二暂时性储存装置写入储存介质中,作为对于涉及合并的其它写操作的后台任务。
在某些情形下,第一写操作并不在逻辑页面边界开始和/或最后的写操作并不在逻辑页面边界结束。在这些情形下,(RMW)模块195执行RMW操作来仅对于对应的逻辑页面修改针对写掩码所指定的逻辑块。
在RMW操作中,所生成的逻辑页面可以储存在第二暂时性储存装置140中。由RMW模块195从储存介质190获取包括多个块的第二逻辑页面。经由多个数据路径和复用器来合并所生成的逻辑页面和第二逻辑页面的区段,以生成合并的输出逻辑页面。此外,通过在逐块的基础上对被合并以生成合并的输出逻辑页面的所生成的逻辑页面和第二逻辑页面块的CRC数据进行计算和累加,来生成对于合并的输出逻辑页面的CRC。
在正在生成合并的输出逻辑页面时,将所生成的逻辑页面和第二逻辑页面中的至少一个的块重新构建成校验数据逻辑页面。或者,在正在生成合并的输出逻辑页面时,将所生成的逻辑页面和第二逻辑页面两者都重新构建成校验数据逻辑页面。
在逐块的基础上针对校验数据逻辑页面来计算和累加CRC,并且在包括与所生成的逻辑页面和第二逻辑页面的块相对应的块的至少一个校验数据逻辑页面上执行错误校验,来验证合并的输出逻辑页面的对应的块。由于在传输合并的输出逻辑页面的块的多个数据路径的子集上传输校验数据逻辑页面中的至少某些块,因此至少一个校验数据逻辑页面的错误校验验证了来自合并的输出逻辑页面中的至少一个校验数据逻辑页面的块。在一个示例实施例中,校验数据逻辑页面两者的错误校验都验证了合并的输出逻辑页面中的第一和第二校验数据逻辑页面的块。
在一个实施例中,RMW模块还被配置为针对每个块计算数据完整性字段,并将经计算的数据完整性字段插入块之间。由ANSIT10数据完整性特征(T10DIF)标准来定义用于在数据传送期间防止数据完整性错误的保护方案。T10DIF提供了对从主机总线适配器读取并写入磁盘以及向后通过储存区域网络(SAN)结构的数据的完整性进行校验的方式。这种校验通过在T10标准中定义的数据完整性字段(DIF)来实现。
图2是根据本发明构思的示例实施例,例示了用于实现写相同操作的方法的流程图。参考图2,接收到包括起始逻辑块地址、指示将要写的逻辑块地址的范围的值、以及数据的逻辑块的命令(210)。数据的逻辑块被传送到第一暂时性储存装置并进行储存(215)。第一暂时性储存装置可以是处理器内部的存储器或者可以是集成在半导体芯片上的其它存储器。通过将储存在第一暂时性储存装置中的数据的逻辑块复制与包含在逻辑页面中的逻辑块的数量(例如八个逻辑块)相对应的若干次,来生成逻辑页面(220)。由此所生成的逻辑页面被传输到第二暂时性储存装置,例如,队列(225)。
进行对经复制的逻辑页面的第一逻辑块地址是否从当前逻辑页面的逻辑页面边界开始或者经复制的逻辑页面的最后的逻辑块地址是否在当前逻辑页面的逻辑页面边界结束的判断(230)。如果是(230-Y),则如上面所描述的在写入存储介质的逻辑页面中计算CRC(235)。如果经复制的逻辑页面的第一逻辑块地址并不从当前逻辑页面的逻辑页面边界开始,或者经复制的逻辑页面的最后的逻辑块地址并不与当前逻辑页面的最后的逻辑块地址相对应(230-N),则执行RMW操作来将经复制的逻辑页面的对应的逻辑块合并到当前逻辑页面中(255)。
在将逻辑页面写入储存介质之后,利用所写入的逻辑块地址的范围内的块的数量来更新计数器(240)。如果计数器中的值并不等于将要写的逻辑块地址的范围内的逻辑块数量(245-N),则为LBA增加写入当前逻辑页面中的、逻辑块地址的范围内的逻辑块的数量(260),并且过程从操作230重复。如果已经写入了将要写的逻辑块地址的范围内的所有块(245-Y),则在过程结束生成(250)写完整信号。
跳写
图3是根据本发明构思的示例实施例,例示了用于执行跳写操作的数据储存装置的框图。参考图3,在本发明构思的一个示例实施例中,数据储存装置300可以包括命令输入设备310、储存装置320、输入逻辑设备330、复用器340、第一逻辑设备350、第二逻辑设备360、以及计数器370。
数据储存装置300的元件可以集成在一个半导体芯片上或者可以是集成到一个半导体封装体中的分开的管芯。本领域普通技术人员将理解,其它配置是可能的并被包括在本发明构思的范围内。例如,由所描述的元件执行的功能可以由其它元件来执行,并且这些元件可以被组合成较少的元件和/或被细分成更大数量的元件。
命令输入设备310接收包括起始逻辑块地址(LBA)、指示LBA的范围的值、以及写掩码的命令。写掩码指定了包含不同数据的逻辑块将被合并到其中的逻辑块的LBA。接收与命令相关联的新的逻辑块并将其储存在暂时性储存装置320中。每个逻辑块可以包括(例如但不限于)大约512字节的数据、大约1024字节的数据、大约2048字节的数据、或者大约4096字节的数据。
在一个实施例中,输入逻辑设备330将写掩码划分成与形成逻辑页面的逻辑块的数量相对应的部分,并基于写掩码的对应部分来构建第一逻辑页面。例如,对于包含八个逻辑块的逻辑页面,写掩码被划分成每个都包含作为与LBA相关联的合并指示符的八位的部分。
图5A是根据本发明构思的示例实施例,例示了写掩码的图示。参考图5A,写掩码包含2048位,每一位都对应于从通过命令接收的起始LBA开始的LBA。作为示例,图5A例示了“8”的起始LBA以及“2055”的结束LBA。写掩码的第零位、第二位、以及第三位被设置为“1”,指示将在对应的LBA处插入新的逻辑块。将要合并的逻辑块的LBA可以是连续的或不连续的。
图5B是根据本发明构思的示例实施例,例示了被划分成与包含在逻辑页面中的逻辑块的数量相对应的部分的写掩码的图示。如图5B中例示出的,对于包含八个LBA的逻辑页面,写掩码被划分成256个部分,每个部分都包含与逻辑页面中的LBA相对应的八位。在与第一逻辑页面相对应的部分中,将通过将与接收到的命令相关联的逻辑块在这些LBA处插入到逻辑页面中来代替对应于LBA8、10、以及11的逻辑块。本领域普通技术人员将意识到,该示例仅仅是为了加强理解,并适用于逻辑页面、逻辑块、以及LBA的其它配置。
在一个实施例中,输入逻辑设备330构建第一逻辑页面并从储存介质(例如图1中例示出的储存介质190)获取第二逻辑页面,并对包含在每个逻辑页面的头部中的CRC进行验证。必须注意,尽管在本公开内容的示例实施例中提及了CRC,但在某些实施例中使用其它错误检测机制(例如但不限于,校验和以及散列函数、等等)是可能的。此外,在某些实施例中,可以在装置中的其它地方执行CRC验证。与系统时钟同步地将第一和第二逻辑页面逐块从输入逻辑设备330传送到数据路径电路340,在数据路径电路340中,第一和第二逻辑页面的区段基于写掩码的对应部分而以与系统时钟速度大致相同的速度进行合并。
在一个示例实施例中,储存第一逻辑页面,直到获取第二逻辑页面。以大约系统时钟速度来使第二逻辑页面逐块通过跳写装置300,并且第二逻辑页面与所储存的第一逻辑页面进行合并。由第一逻辑设备350来处理第一和第二逻辑页面,以确定所合并的输出逻辑页面是否有效。
图6是根据本发明构思的示例实施例,例示了使用写掩码的对应部分来合并第一逻辑页面和第二逻辑页面的图示。在图6中的示例的例示中,相对于第二逻辑页面,写掩码用“1”来指示合并到输出逻辑页面中的逻辑块并用“0”来指示丢弃的逻辑块,并且相对于第一逻辑页面,写掩码用“0”来指示合并到输出逻辑页面中的逻辑块并用“1”来指示丢弃的逻辑块。本领域普通技术人员将理解,标识“1”和“0”仅仅是示例性的,并且在不脱离本发明构思的范围的情况下,其它标识是可能的。
参考图6,写掩码670的对应部分指定了将与第一逻辑页面610的逻辑块合并、代替第一逻辑页面610的逻辑块(其将被丢弃(示出为丢弃的LB620))的第二逻辑页面640的逻辑块。并未被指定为通过写掩码670的对应部分合并到输出逻辑页面中的第二逻辑页面640的逻辑块被丢弃(示出为丢弃的LB650),而被指定为通过写掩码670的对应部分合并到输出逻辑页面中的第二逻辑页面640的逻辑块(示出为保持的LB660)与第一逻辑页面610合并,以生成合并的输出逻辑页面680。
相反,并未被指定为通过写掩码670的对应部分合并到输出逻辑页面中的第一逻辑页面610的逻辑块被丢弃(被示出为丢弃的LB620),而被指定为通过写掩码670的对应部分合并到输出逻辑页面中的第一逻辑页面610的逻辑块(示出为合并的LB630)与第二逻辑页面640的要合并的逻辑块660进行合并,以生成合并的输出逻辑页面680。换句话说,由写掩码的对应部分指定的第一逻辑页面的逻辑块由第二逻辑页面的对应逻辑块来代替,以便生成合并的输出逻辑页面,并且第一和第二逻辑页面的未使用的区段被丢弃。
尽管在可以与第一逻辑页面的逻辑块进行合并的第二逻辑页面的指定的逻辑块的方面描述了以上合并操作,但本领域普通技术人员将意识到,本发明构思的范围还包括将第一逻辑页面的指定的逻辑块与第二逻辑页面的逻辑块进行合并。此外,尽管如图6中那样进行了例示,但第一逻辑页面和第二逻辑页面的多个逻辑块中的逻辑块的数量可以不是相同的。
再次参考图3,在一个示例实施例中,第二逻辑设备360针对合并的输出逻辑页面来计算并累加CRC。合并的输出逻辑页面的每个逻辑块都在逐块的基础上从跳写装置300输出。以与系统时钟速度大致相同的速度来执行合并的输出逻辑页面的生成。
在一个示例实施例中,第一逻辑设备350重新构建了第一和第二逻辑页面分别作为第一和第二校验数据页面,并且由第一逻辑设备350在逐块的基础上计算和累加校验数据页面的CRC。第一校验数据页面可以包括在与合并成输出逻辑页面的第一逻辑页面的逻辑块在其上传输的数据路径的子集不同的数据路径的第一子集上传输的逻辑块,并且第二校验数据页面可以包括在与合并到输出逻辑页面中的第二逻辑页面的逻辑块在其上传输的数据路径的子集不同的数据路径的第二子集上传输的逻辑块。
在处理第一和第二逻辑页面的最后的逻辑块之后,第一逻辑页面的CRC被传输到第一逻辑设备350。同时,第二逻辑页面的CRC被传输到第一逻辑设备350。
在一个示例实施例中,第一逻辑设备350通过将所传输的第一逻辑页面的CRC与针对第一校验数据页面所计算的CRC进行比较来执行错误校验,并将所传输的第二逻辑页面的CRC与针对第二校验数据页面所计算的CRC进行比较。如果接收到的逻辑页面CRC与校验数据页面的CRC相匹配,则合并的输出逻辑页面将是有效的,这是因为合并的输出逻辑页面的逻辑块通过与校验数据页面的逻辑块相同的逻辑,并且没有引入错误。如果CRC不匹配,则生成指示合并的输出逻辑页面无效的消息。可以以这种方式来验证有效性,因为校验数据页面中的逻辑块中的至少某些逻辑块在多个数据路径的子集上传输,该多个数据路径的子集还传输合并的输出逻辑页面的逻辑块,从而至少一个校验数据页面的误差校验验证了合并的输出逻辑页面。使用来自实际合并的逻辑页面的输出数据作为校验数据页面CRC的计算中的部分确保检测到沿着逻辑页面合并机制的路径所引入的任何错误。
与生成合并的输出逻辑页面同时发生,第二逻辑设备360在逐块的基础上针对合并的输出逻辑页面生成CRC。在输出合并的输出逻辑页面的最终逻辑块之后,输出由第二逻辑设备360针对合并的输出逻辑页面所生成的CRC。
在写掩码的逻辑页面部分的值全部是一的情况下,第二逻辑页面被输出为输出逻辑页面,而无需被合并。相反,在写掩码值的逻辑页面部分全部是零的情况下,未输出逻辑页面并且未改变储存在储存介质中的对应的逻辑页面数据。
再次参考图3,计数器370基于写入储存介质的逻辑块的数量而增加。将计数器370上的值与在命令中接收到的LBA范围的值进行比较,并且如果计数器的值与LBA范围相匹配,则计数器370生成指示跳写过程完成的信号。
图4是根据本发明构思的示例实施例,例示了实现跳写操作的方法的流程图。参考图4,接收包括起始逻辑块地址(LBA)、指示LBA的范围的值、以及写掩码的命令(410)。接收与命令相关联的新的逻辑块,并且将其储存在暂时性储存装置中(415)。写掩码被划分成与形成逻辑页面的逻辑块的数量相对应的部分(425),并且获得与当前逻辑页面相对应的写掩码的部分(430)。
如果写掩码的对应部分中的值都相同(435-Y),则要么新的数据将被写入与写掩码的该部分相对应的逻辑页面中的所有LBA中,例如,写掩码的对应部分中的所有位都被设置为“1”,要么没有新数据需要被写入逻辑页面中,例如,写掩码的对应部分中的所有位都被设置为“0”。在新数据将被写入逻辑页面中的所有LBA中的情况下(440-Y),使用与命令相关联的接收到的逻辑块来构建第一逻辑页面(450)。针对由此所构建的逻辑页面来计算CRC,并且该逻辑页面被写入储存介质(470)。计数器基于所处理的LBA的数量而增加(475)。将计数器上的值与在命令中接收到的LBA范围的值进行比较(480),并且如果计数器的值与LBA范围相匹配(480-Y),则计数器生成指示跳写过程完成的信号(485)。否则,过程回到操作430。
在没有新数据需要被写入逻辑页面中的情况下(440-N),未发生向储存介质的写操作(445)。计数器基于所处理的LBA的数量而增加(475)。将计数器上的值与在命令中接收到的LBA范围的值进行比较(480),并且如果计数器的值与LBA范围相匹配(480-Y),则计数器生成指示跳写过程完成的信号(485)。否则,过程回到操作430。
在所有写掩码值并不相同的情况下(435-N),获取第二逻辑页面(455),并基于写掩码的对应部分来使用与命令相关联的接收到的逻辑块来构建第一逻辑页面(460)。如上面所描述的,第一和第二逻辑页面与RMW操作合并(465)。针对由此所构建的逻辑页面计算CRC,并且逻辑页面被写入储存介质(470)。计数器基于所处理的LBA的数量而增加(475)。将计数器上的值与在命令中接收到的LBA范围的值进行比较(480),并且如果计数器的值与LBA范围相匹配(480-Y),则计数器生成指示跳写过程完成的信号(485)。否则,过程回到操作430。
可以以所描述的顺序、以不同的顺序来执行本发明构思的操作,或者可以对操作进行组合。本领域普通技术人员将意识到,前述过程是示例性的,并且在不脱离本发明构思的情况下,其它变型是可能的。
尽管已经描述了某些实施例,但这些实施例仅仅是通过示例的方式来呈现,而并非旨在限制保护范围。本文中所描述的方法和装置可以以多种其它形式来体现。在不脱离保护精神的情况下,可以做出以本文中所描述的示例方法和装置的形式的各种省略、替代、和/或改变。
所附权利要求书及其等同形式旨在覆盖如将落入保护范围和精神内的这些形式或修改。例如,本文中所公开的示例的装置和方法可以应用于固态驱动器、硬盘驱动器、混合硬盘驱动器、等等。此外,可以另外或替代地使用其他形式的储存装置,例如但不限于,DRAM或SRAM、电池备份的易失性DRAM或SRAM设备、EPROM、EEPROM存储器、等等。作为另一个示例,附图中例示出的各个部件可以被实现为处理器、ASIC/FPGA、或专用硬件上的软件和/或固件。此外,上面所公开的具体的示例实施例的特征和属性可以以不同方式进行组合以形成另外的实施例,它们中的全部都落入本公开内容的范围内。
尽管本公开内容提供了某些示例实施例和应用,但对本领域普通技术人员来说显而易见的其它实施例(包括并未提供本文中所阐述的特征和优点中的所有特征和优点)也位于本公开内容的范围内。因此,本公开内容的范围旨在仅参照所附权利要求来进行限定。

Claims (38)

1.一种用于将数据写入储存介质中的一系列逻辑块的方法,所述方法包括:
接收命令,所述命令包括起始逻辑块地址、指示将要写的逻辑块地址的范围的值、以及数据的逻辑块;
将所述数据的逻辑块储存在第一暂时性储存装置中;
通过将所述数据的逻辑块复制与形成逻辑页面的逻辑块的数量相对应的多次,来生成逻辑页面,以及将所生成的逻辑页面传输到第二暂时性储存装置并将所生成的逻辑页面储存在所述第二暂时性储存装置中;
从所述起始逻辑块地址开始,将所生成的逻辑页面从所述第二暂时性储存装置写入所述储存介质中;以及
如果第一写操作并不在逻辑页面边界开始或者最后的写操作并不在逻辑页面边界结束,则执行读-改-写操作。
2.根据权利要求1所述的方法,其中,所述第二暂时性储存装置是读-改-写模块中的队列。
3.根据权利要求2所述的方法,还包括:在将所生成的逻辑页面传输并储存在所述队列中之前,在读-改-写模块中预留所述队列。
4.根据权利要求1所述的方法,还包括:
基于所述逻辑块地址的范围内的在当前逻辑页面中被写入所述储存介质的逻辑块的数量更新计数,并将所述计数与指示所述逻辑块地址的范围的所述值进行比较;以及
如果所述计数与指示所述逻辑块地址的范围的所述值相匹配,则生成指示所述写完成的信号。
5.根据权利要求1所述的方法,其中,每个逻辑页面都包括预先确定的数量的逻辑块。
6.根据权利要求5所述的方法,其中,每个逻辑块包括以下中的一个:大约512字节的数据、大约1024字节的数据、大约2048字节的数据、以及大约4096字节的数据。
7.根据权利要求6所述的方法,其中,数据字节包括全一或全零。
8.根据权利要求6所述的方法,其中,数据字节包括预先确定的数据。
9.根据权利要求6所述的方法,其中,每个逻辑块还包括附加字节的元数据。
10.根据权利要求9所述的方法,其中,每个逻辑块的所述元数据是利用要写入该逻辑块的逻辑块地址来更新的。
11.根据权利要求1所述的方法,其中,指示所述逻辑块地址的范围的所述值是指示所述储存介质的所有逻辑块地址的值。
12.根据权利要求1所述的方法,其中,所述生成逻辑页面由处理器来执行。
13.根据权利要求1所述的方法,其中,所述写入所生成的逻辑页面是作为对于涉及合并的其它写操作的后台任务来执行的。
14.一种用于将数据写入一系列逻辑块的装置,所述装置包括:
第一设备,所述第一设备被配置为接收命令,所述命令包括起始逻辑块地址、指示逻辑块地址的范围的值、以及数据的逻辑块;
第一暂时性储存装置,所述第一暂时性储存装置被配置为储存所述数据的逻辑块;
处理器,所述处理器被配置为通过将所述数据的逻辑块复制与形成逻辑页面的逻辑块的数量相对应的多次,来生成逻辑页面,并将所生成的逻辑页面传输到第二暂时性储存装置;
储存介质,所述储存介质被配置为储存逻辑页面;
写电路,所述写电路被配置为从所述起始逻辑块地址开始,将所生成的逻辑页面从所述第二暂时性存储装置写入所述储存介质中;以及
读-改-写模块,所述读-改-写模块被配置为:如果第一写操作并不在逻辑页面边界开始或者最后的写操作并不在逻辑页面边界结束,则执行读-改-写操作。
15.根据权利要求14所述的装置,其中,所述第二暂时性储存装置是所述读-改-写模块中的队列。
16.根据权利要求15所述的装置,还包括:在将所生成的逻辑页面传输并储存在所述队列中之前,在所述读-改-写模块中预留所述队列。
17.根据权利要求14所述的装置,还包括计数器,所述计数器被配置为对所述逻辑块地址的范围内的在当前逻辑页面中被写入所述储存介质的逻辑块的数量进行计数,并将所述计数与指示所述逻辑块地址的范围的所述值进行比较。
18.根据权利要求17所述的装置,还包括被配置为当所述比较指示达到指示所述逻辑块地址的范围的所述值时,生成指示信号的电路。
19.根据权利要求14所述的装置,其中,所述写电路将所述逻辑页面从所述第二暂时性储存装置写入所述储存介质中,作为对于涉及合并的其它写操作的后台任务。
20.根据权利要求14所述的装置,还包括:读-改-写模块,包括被配置为通过在逐块的基础上对写入到所述输出逻辑页面中的逻辑块的循环冗余码(CRC)数据进行累加来针对所生成的逻辑页面生成CRC的电路。
21.根据权利要求20所述的装置,其中,所述读-改-写模块还被配置为针对每个块计算数据完整性字段,并将经计算的数据完整性字段插入所述块之间。
22.一种用于合并数据的逻辑页面的方法,所述方法包括:
接收命令,所述命令包括起始逻辑块地址、指示逻辑块地址的范围的值、以及写掩码;
接收与所述命令相关联的第一多个逻辑块;
将所述写掩码划分成与形成逻辑页面的逻辑块的数量相对应的部分;
获得所述掩码的与当前逻辑页面相对应的一部分;
使用所述第一多个逻辑块、基于所述写掩码的对应部分来构建第一逻辑页面;以及
从储存介质获取包括第二多个逻辑块的第二逻辑页面;
通过从所述起始逻辑块地址开始基于所述写掩码的对应的逻辑页面部分而将所述第二逻辑页面的逻辑块与所述第一逻辑页面的逻辑块进行合并,来生成合并的输出逻辑页面。
23.根据权利要求22所述的方法,其中,如果所述写掩码的逻辑页面部分的值为全一,则所述第二逻辑页面被输出以作为所述输出逻辑页面,而无需被合并。
24.根据权利要求22所述的方法,其中,如果所述写掩码的逻辑页面部分的值为全零,则不输出逻辑页面。
25.根据权利要求22所述的方法,其中,通过包括多个复用器的多个数据路径来执行所述合并。
26.根据权利要求22所述的方法,其中,所述写掩码针对在所述初始逻辑块地址处开始并从所述初始逻辑块地址索引的所述逻辑块地址的范围,指示所述第一逻辑页面和所述第二逻辑页面中的哪些逻辑块将要被合并到所述输出逻辑页面中。
27.根据权利要求26所述的方法,其中,每个逻辑页面包括预先确定的数量的逻辑块;以及
基于所述写掩码的对应的逻辑页面部分来构建附加的第一逻辑页面,并且从所述储存介质获取附加的第二逻辑页面,并且通过基于所述逻辑块地址的范围和形成逻辑页面的所述预先确定的数量的逻辑块而合并对应的第一逻辑页面和第二逻辑页面,来生成多个合并的输出逻辑页面。
28.根据权利要求26所述的方法,其中,将要被合并的逻辑块的地址是不连续的。
29.根据权利要求22所述的方法,还包括:通过在逐块的基础上对被合并到所述输出逻辑页面中的逻辑块的循环冗余码(CRC)数据进行累加,来针对所述合并的输出逻辑页面生成CRC。
30.一种用于合并数据的逻辑页面的装置,所述装置包括:
命令输入设备,所述命令输入设备被配置为接收命令,所述命令包括起始逻辑块地址、指示逻辑块地址的范围的值、以及写掩码;
暂时性储存装置,所述暂时性储存装置被配置为接收并储存与所述命令相关联的第一多个逻辑块;
输入逻辑设备,所述输入逻辑设备被配置为从所述暂时性储存装置接收与所述命令相关联的所述第一多个逻辑块,并从储存介质获取包括第二落个逻辑块的第二逻辑页面,将所述写掩码划分成与形成逻辑页面的逻辑块的数量相对应的部分,并使用所述第一多个逻辑块、基于所述写掩码的对应部分来构建第一逻辑页面;以及
数据路径电路,所述数据路径电路包括多个数据路径,所述多个数据路径包括多个复用器,所述电路被配置为:通过基于所述写掩码的对应的逻辑页面部分、从所述起始逻辑块地址开始将所述第二逻辑页面的逻辑块与所述第一逻辑页面的逻辑块进行合并,来使用所述多个数据路径生成合并的输出逻辑页面。
31.根据权利要求30所述的装置,其中,如果所述写掩码的逻辑页面部分的值为全一,则所述第二逻辑页面被输出以作为所述输出逻辑页面,而无需被合并。
32.根据权利要求30所述的装置,其中,如果所述写掩码的逻辑页面部分的值为全零,则不输出逻辑页面。
33.根据权利要求30所述的装置,还包括逻辑块计数器,所述逻辑块计数器被配置为:从所述起始逻辑块地址开始一直到指示所述范围的所述值,对所处理的逻辑块的数量进行计数,
其中,当所述计数值与在所述命令中接收到的所述逻辑块地址范围的值相匹配时,所述逻辑块计数器生成指示信号。
34.根据权利要求30所述的装置,其中,所述写掩码针对在所述初始逻辑块地址处开始并从所述起始逻辑块地址索引的所述逻辑块地址的范围,指示所述第一逻辑页面和所述第二逻辑页面中的哪些逻辑块将被合并到所述输出逻辑页面中。
35.根据权利要求34所述的装置,其中,每个逻辑页面包括预先确定的数量的逻辑块;以及
基于所述写掩码的对应的逻辑页面部分来构建附加的第一逻辑页面,并且从所述储存介质获取附加的第二逻辑页面,并且通过基于所述逻辑块地址的范围和形成逻辑页面的预先确定的数量的逻辑块而合并对应的第一逻辑页面和第二逻辑页面,来生成多个合并的输出逻辑页面。
36.根据权利要求34所述的装置,其中,将要被合并的逻辑块的地址是不连续的。
37.根据权利要求34所述的装置,其中,将要被合并的逻辑块的地址是连续的。
38.根据权利要求30所述的装置,还包括:第二逻辑设备,被配置为通过在逐块的基础上对被合并到所述输出逻辑页面中的逻辑块的循环冗余码(CRC)数据进行累加,来针对所述输出逻辑页面生成CRC。
CN201480055094.0A 2013-09-06 2014-09-05 提供硬件中的数据帧段的选择性合并的高性能系统 Expired - Fee Related CN105612500B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/020,653 US9304709B2 (en) 2013-09-06 2013-09-06 High performance system providing selective merging of dataframe segments in hardware
US14/020,653 2013-09-06
PCT/US2014/054426 WO2015047697A1 (en) 2013-09-06 2014-09-05 High performance system providing selective merging of dataframe segments in hardware

Publications (2)

Publication Number Publication Date
CN105612500A true CN105612500A (zh) 2016-05-25
CN105612500B CN105612500B (zh) 2019-04-12

Family

ID=52626709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480055094.0A Expired - Fee Related CN105612500B (zh) 2013-09-06 2014-09-05 提供硬件中的数据帧段的选择性合并的高性能系统

Country Status (8)

Country Link
US (2) US9304709B2 (zh)
EP (1) EP3042290A4 (zh)
JP (1) JP2016530648A (zh)
KR (1) KR101905280B1 (zh)
CN (1) CN105612500B (zh)
AU (1) AU2014328501B2 (zh)
CA (1) CA2923444C (zh)
WO (1) WO2015047697A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144768A (zh) * 2017-06-16 2019-01-04 西部数据技术公司 在纠删码编码期间的cpu错误修复
CN115794700A (zh) * 2022-11-28 2023-03-14 无锡众星微系统技术有限公司 一种聚合管理访盘方法和装置

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304709B2 (en) 2013-09-06 2016-04-05 Western Digital Technologies, Inc. High performance system providing selective merging of dataframe segments in hardware
KR102249810B1 (ko) * 2014-07-23 2021-05-11 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10209897B2 (en) 2016-12-01 2019-02-19 Toshiba Memory Corporation Storage device and control method of the same
US11947489B2 (en) 2017-09-05 2024-04-02 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US10452267B2 (en) 2017-09-13 2019-10-22 Robin Systems, Inc. Storage scheme for a distributed storage system
US10579276B2 (en) 2017-09-13 2020-03-03 Robin Systems, Inc. Storage scheme for a distributed storage system
US10430105B2 (en) 2017-09-13 2019-10-01 Robin Systems, Inc. Storage scheme for a distributed storage system
US10423344B2 (en) 2017-09-19 2019-09-24 Robin Systems, Inc. Storage scheme for a distributed storage system
US10534549B2 (en) * 2017-09-19 2020-01-14 Robin Systems, Inc. Maintaining consistency among copies of a logical storage volume in a distributed storage system
US10782887B2 (en) 2017-11-08 2020-09-22 Robin Systems, Inc. Window-based prority tagging of IOPs in a distributed storage system
US10846001B2 (en) 2017-11-08 2020-11-24 Robin Systems, Inc. Allocating storage requirements in a distributed storage system
US10430110B2 (en) 2017-12-19 2019-10-01 Robin Systems, Inc. Implementing a hybrid storage node in a distributed storage system
US10452308B2 (en) 2017-12-19 2019-10-22 Robin Systems, Inc. Encoding tags for metadata entries in a storage system
US10430292B2 (en) 2017-12-19 2019-10-01 Robin Systems, Inc. Snapshot deletion in a distributed storage system
US11099937B2 (en) 2018-01-11 2021-08-24 Robin Systems, Inc. Implementing clone snapshots in a distributed storage system
US11748203B2 (en) 2018-01-11 2023-09-05 Robin Systems, Inc. Multi-role application orchestration in a distributed storage system
US10628235B2 (en) 2018-01-11 2020-04-21 Robin Systems, Inc. Accessing log files of a distributed computing system using a simulated file system
US11392363B2 (en) 2018-01-11 2022-07-19 Robin Systems, Inc. Implementing application entrypoints with containers of a bundled application
US10642697B2 (en) 2018-01-11 2020-05-05 Robin Systems, Inc. Implementing containers for a stateful application in a distributed computing system
US11582168B2 (en) 2018-01-11 2023-02-14 Robin Systems, Inc. Fenced clone applications
US10896102B2 (en) 2018-01-11 2021-01-19 Robin Systems, Inc. Implementing secure communication in a distributed computing system
US10579364B2 (en) 2018-01-12 2020-03-03 Robin Systems, Inc. Upgrading bundled applications in a distributed computing system
US10845997B2 (en) 2018-01-12 2020-11-24 Robin Systems, Inc. Job manager for deploying a bundled application
US10846137B2 (en) 2018-01-12 2020-11-24 Robin Systems, Inc. Dynamic adjustment of application resources in a distributed computing system
US10642694B2 (en) 2018-01-12 2020-05-05 Robin Systems, Inc. Monitoring containers in a distributed computing system
US11023328B2 (en) 2018-07-30 2021-06-01 Robin Systems, Inc. Redo log for append only storage scheme
US10976938B2 (en) 2018-07-30 2021-04-13 Robin Systems, Inc. Block map cache
US10817380B2 (en) 2018-07-31 2020-10-27 Robin Systems, Inc. Implementing affinity and anti-affinity constraints in a bundled application
US10599622B2 (en) 2018-07-31 2020-03-24 Robin Systems, Inc. Implementing storage volumes over multiple tiers
US11036439B2 (en) 2018-10-22 2021-06-15 Robin Systems, Inc. Automated management of bundled applications
US10908848B2 (en) 2018-10-22 2021-02-02 Robin Systems, Inc. Automated management of bundled applications
US10620871B1 (en) 2018-11-15 2020-04-14 Robin Systems, Inc. Storage scheme for a distributed storage system
US11086725B2 (en) 2019-03-25 2021-08-10 Robin Systems, Inc. Orchestration of heterogeneous multi-role applications
US11256434B2 (en) 2019-04-17 2022-02-22 Robin Systems, Inc. Data de-duplication
US10831387B1 (en) 2019-05-02 2020-11-10 Robin Systems, Inc. Snapshot reservations in a distributed storage system
US10877684B2 (en) 2019-05-15 2020-12-29 Robin Systems, Inc. Changing a distributed storage volume from non-replicated to replicated
US11226847B2 (en) 2019-08-29 2022-01-18 Robin Systems, Inc. Implementing an application manifest in a node-specific manner using an intent-based orchestrator
US11249851B2 (en) 2019-09-05 2022-02-15 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US11520650B2 (en) 2019-09-05 2022-12-06 Robin Systems, Inc. Performing root cause analysis in a multi-role application
US11347684B2 (en) 2019-10-04 2022-05-31 Robin Systems, Inc. Rolling back KUBERNETES applications including custom resources
US11113158B2 (en) 2019-10-04 2021-09-07 Robin Systems, Inc. Rolling back kubernetes applications
US11403188B2 (en) 2019-12-04 2022-08-02 Robin Systems, Inc. Operation-level consistency points and rollback
US11294824B2 (en) 2020-01-03 2022-04-05 Western Digital Technologies, Inc. System and method for reduced latency of read-modify-write operations
KR20210121660A (ko) * 2020-03-31 2021-10-08 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11108638B1 (en) 2020-06-08 2021-08-31 Robin Systems, Inc. Health monitoring of automatically deployed and managed network pipelines
US11528186B2 (en) 2020-06-16 2022-12-13 Robin Systems, Inc. Automated initialization of bare metal servers
US11740980B2 (en) 2020-09-22 2023-08-29 Robin Systems, Inc. Managing snapshot metadata following backup
US11743188B2 (en) 2020-10-01 2023-08-29 Robin Systems, Inc. Check-in monitoring for workflows
US11271895B1 (en) 2020-10-07 2022-03-08 Robin Systems, Inc. Implementing advanced networking capabilities using helm charts
US11456914B2 (en) 2020-10-07 2022-09-27 Robin Systems, Inc. Implementing affinity and anti-affinity with KUBERNETES
US11750451B2 (en) 2020-11-04 2023-09-05 Robin Systems, Inc. Batch manager for complex workflows
US11556361B2 (en) 2020-12-09 2023-01-17 Robin Systems, Inc. Monitoring and managing of complex multi-role applications
CN116248573B (zh) * 2022-12-01 2024-06-18 中国联合网络通信集团有限公司 一种链路拼接方法、装置及存储介质
CN117369729B (zh) * 2023-12-04 2024-02-06 武汉麓谷科技有限公司 一种zns ssd的附加写入实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090138672A1 (en) * 2007-11-22 2009-05-28 Hitachi, Ltd. Storage controller and storage controller control method
CN102023815A (zh) * 2009-09-15 2011-04-20 格雷戈里·伯德 在固态存储器中实现raid
US20120239869A1 (en) * 2010-01-19 2012-09-20 Chiueh Tzi-Cker Random write optimization techniques for flash disks

Family Cites Families (182)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5008886A (en) 1989-01-27 1991-04-16 Digital Equipment Corporation Read-modify-write operation
US5477541A (en) 1989-09-29 1995-12-19 White; Richard E. Addressing technique for storing and referencing packet data
EP0609595B1 (en) 1993-02-05 1998-08-12 Hewlett-Packard Company Method and apparatus for verifying CRC codes by combination of partial CRC codes
US7313639B2 (en) 2003-01-13 2007-12-25 Rambus Inc. Memory system and device with serialized data transfer
KR100739681B1 (ko) 2003-03-24 2007-07-13 삼성전자주식회사 한번 기록 정보 저장 매체에 있어서 오버라이트 방법
US6856556B1 (en) 2003-04-03 2005-02-15 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
US7240180B2 (en) * 2003-06-12 2007-07-03 International Business Machines Corporation Method and system for simultaneously supporting different block sizes on a single hard drive
US7010469B2 (en) 2003-09-30 2006-03-07 International Business Machines Corporation Method of computing partial CRCs
US7171604B2 (en) 2003-12-30 2007-01-30 Intel Corporation Method and apparatus for calculating cyclic redundancy check (CRC) on data using a programmable CRC engine
US7203890B1 (en) 2004-06-16 2007-04-10 Azul Systems, Inc. Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits
US7328317B2 (en) 2004-10-21 2008-02-05 International Business Machines Corporation Memory controller and method for optimized read/modify/write performance
US7502256B2 (en) 2004-11-30 2009-03-10 Siliconsystems, Inc. Systems and methods for reducing unauthorized data recovery from solid-state storage devices
JP2008523468A (ja) * 2004-12-06 2008-07-03 テイアック エアロスペース テクノロジーズ インコーポレイテッド 不揮発記録媒体消去システム及び方法
KR100667784B1 (ko) 2004-12-15 2007-01-11 삼성전자주식회사 Low에 의한 rmw를 수행하는 기록/재생 장치, 그기록/재생 방법 및 그 정보 저장 매체
US8140813B2 (en) 2005-09-15 2012-03-20 Eye-Fi, Inc. Endless memory
US8683144B2 (en) 2005-09-16 2014-03-25 Inmage Systems, Inc. Causation of a data read against a first storage system to optionally store a data write to preserve the version to allow viewing and recovery
JP2007122410A (ja) * 2005-10-28 2007-05-17 Nec Electronics Corp バス調停回路及びバス調停方法
JP2007184046A (ja) * 2006-01-10 2007-07-19 Hitachi Global Storage Technologies Netherlands Bv 回転円板形記憶装置および記録方法
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7765373B1 (en) 2006-06-27 2010-07-27 Siliconsystems, Inc. System for controlling use of a solid-state storage subsystem
US8108692B1 (en) 2006-06-27 2012-01-31 Siliconsystems, Inc. Solid-state storage subsystem security solution
US7509441B1 (en) 2006-06-30 2009-03-24 Siliconsystems, Inc. Systems and methods for segmenting and protecting a storage subsystem
US7447807B1 (en) 2006-06-30 2008-11-04 Siliconsystems, Inc. Systems and methods for storing data in segments of a storage subsystem
JP4612604B2 (ja) 2006-09-28 2011-01-12 Necパーソナルプロダクツ株式会社 コンテンツ書込装置
US8161227B1 (en) 2006-10-30 2012-04-17 Siliconsystems, Inc. Storage subsystem capable of programming field-programmable devices of a target computer system
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
JP4189436B2 (ja) 2006-11-07 2008-12-03 日立ソフトウエアエンジニアリング株式会社 データ処理制御方法
US8549236B2 (en) 2006-12-15 2013-10-01 Siliconsystems, Inc. Storage subsystem with multiple non-volatile memory arrays to protect against data losses
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US8086793B2 (en) 2007-02-16 2011-12-27 Mediatek Inc. Optical disc recorder and buffer management method thereof
JP4900807B2 (ja) 2007-03-06 2012-03-21 株式会社日立製作所 ストレージシステム及びデータ管理方法
JP4992515B2 (ja) * 2007-03-30 2012-08-08 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP4457240B2 (ja) 2007-05-09 2010-04-28 フェリカネットワークス株式会社 データ管理システム、管理サーバ、データ管理方法、およびプログラム
US7685337B2 (en) 2007-05-24 2010-03-23 Siliconsystems, Inc. Solid state storage subsystem for embedded applications
US7685338B2 (en) 2007-05-24 2010-03-23 Siliconsystems, Inc. Solid state storage subsystem for embedded applications
US7870350B1 (en) * 2007-06-07 2011-01-11 Nvidia Corporation Write buffer for read-write interlocks
US7836372B2 (en) 2007-06-08 2010-11-16 Apple Inc. Memory controller with loopback test interface
US20080320253A1 (en) 2007-06-19 2008-12-25 Andrew Tomlin Memory device with circuitry for writing data of an atomic transaction
US7685186B2 (en) 2007-06-25 2010-03-23 Microsoft Corporation Optimized and robust in-place data transformation
US7685374B2 (en) 2007-07-26 2010-03-23 Siliconsystems, Inc. Multi-interface and multi-bus structured solid-state storage subsystem
JP5059524B2 (ja) 2007-09-05 2012-10-24 ルネサスエレクトロニクス株式会社 メモリ制御回路、半導体集積回路、不揮発性メモリのベリファイ方法
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
US8868873B2 (en) 2007-09-27 2014-10-21 Rambus Inc. Reconfigurable memory system data strobes
US7934072B2 (en) 2007-09-28 2011-04-26 Lenovo (Singapore) Pte. Ltd. Solid state storage reclamation apparatus and method
JP2009098887A (ja) 2007-10-16 2009-05-07 Hitachi Ltd 記憶システム及びデータ消去方法
US8327090B2 (en) 2007-10-22 2012-12-04 Advantest Corporation Histogram generation with mixed binning memory
US7870351B2 (en) 2007-11-15 2011-01-11 Micron Technology, Inc. System, apparatus, and method for modifying the order of memory accesses
US20090132772A1 (en) 2007-11-21 2009-05-21 Inventec Corporation System and method for performing data reading and writing on physical storage device
US8751755B2 (en) * 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US8200914B2 (en) 2008-01-03 2012-06-12 International Business Machines Corporation Apparatus, system, and method for a read-before-write storage controller instruction
US8078918B2 (en) 2008-02-07 2011-12-13 Siliconsystems, Inc. Solid state storage subsystem that maintains and provides access to data reflective of a failure risk
US7962792B2 (en) 2008-02-11 2011-06-14 Siliconsystems, Inc. Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem
US8250336B2 (en) 2008-02-25 2012-08-21 International Business Machines Corporation Method, system and computer program product for storing external device result data
JP5315739B2 (ja) 2008-03-21 2013-10-16 富士通株式会社 メモリ装置、メモリ制御方法
JP2009230293A (ja) 2008-03-21 2009-10-08 Fujitsu Ltd 情報処理装置,記憶制御装置及び制御方法
JP5141606B2 (ja) 2008-03-26 2013-02-13 セイコーエプソン株式会社 印刷装置
KR20090109345A (ko) 2008-04-15 2009-10-20 삼성전자주식회사 저항체를 이용한 비휘발성 메모리 장치, 이를 포함하는메모리 시스템
US20090276587A1 (en) 2008-04-30 2009-11-05 Moyer William C Selectively performing a single cycle write operation with ecc in a data processing system
US8112595B1 (en) 2008-05-01 2012-02-07 Marvell Semiconductor Israel Ltd. Command cancellation channel for read—modify—write operation in a memory
US8275970B2 (en) 2008-05-15 2012-09-25 Microsoft Corp. Optimizing write traffic to a disk
EP2294526B1 (en) 2008-05-15 2015-05-27 Nxp B.V. A method for secure data reading and a data handling system
US7733712B1 (en) 2008-05-20 2010-06-08 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
JP2009289170A (ja) 2008-05-30 2009-12-10 Nec Electronics Corp データ処理装置、メモリコントローラ及びそのアクセス制御方法
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
KR101315462B1 (ko) 2008-07-04 2013-10-04 삼성전자주식회사 메모리 컨트롤러, pcb, 컴퓨터 시스템 및 메모리 조정방법
JP4970378B2 (ja) 2008-07-31 2012-07-04 株式会社東芝 メモリコントローラおよび画像処理装置
US8583835B1 (en) 2008-08-06 2013-11-12 Siliconsystems, Inc. Command portal for executing non-standard storage subsystem commands
US8375151B1 (en) 2009-02-12 2013-02-12 Siliconsystems, Inc. Command portal for securely communicating and executing non-standard storage subsystem commands
JP4924574B2 (ja) 2008-08-29 2012-04-25 富士通株式会社 ストレージ装置の制御部及び制御方法
KR101339869B1 (ko) 2008-09-22 2013-12-10 삼성전자주식회사 화상형성장치 및 화상형성장치의 저장부에 대한 오버라이트방법
JP2010080021A (ja) * 2008-09-29 2010-04-08 Toshiba Storage Device Corp 記録制御方法及び記録制御部、並びに記憶装置
JP4582232B2 (ja) 2008-09-30 2010-11-17 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8122181B2 (en) 2008-11-13 2012-02-21 Spansion Llc Systems and methods for enhancing a data store for handling semantic information
JP4693893B2 (ja) * 2008-11-25 2011-06-01 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
US9176859B2 (en) 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
JP2010160653A (ja) 2009-01-07 2010-07-22 Renesas Electronics Corp リングバッファ回路及びその制御回路
US8024530B2 (en) 2009-01-14 2011-09-20 Cms Products, Inc. Security erase of a delete file and of sectors not currently assigned to a file
KR20110132553A (ko) 2009-02-23 2011-12-08 소니 주식회사 메모리 장치
US8090899B1 (en) 2009-03-04 2012-01-03 Western Digital Technologies, Inc. Solid state drive power safe wear-leveling
US8250328B2 (en) 2009-03-24 2012-08-21 Micron Technology, Inc. Apparatus and method for buffered write commands in a memory
US10079048B2 (en) 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US20100250850A1 (en) * 2009-03-25 2010-09-30 Faraday Technology Corp. Processor and method for executing load operation and store operation thereof
US20100250875A1 (en) 2009-03-25 2010-09-30 Silicon Laboratories Inc. Eeprom emulation using flash memory
US8055816B2 (en) 2009-04-09 2011-11-08 Micron Technology, Inc. Memory controllers, memory systems, solid state drives and methods for processing a number of commands
EP2239712A1 (fr) 2009-04-09 2010-10-13 Gemalto SA Procédé pour personnaliser un dispositif électronique, procédé de traitement de données et dispositif associés
US8127074B2 (en) 2009-06-09 2012-02-28 Red Hat, Inc. Mechanism for a reader page for a ring buffer
TW201044371A (en) 2009-06-15 2010-12-16 Novatek Microelectronics Corp Memory architecture of display device and reading method thereof
JP2011028559A (ja) 2009-07-27 2011-02-10 Denso Corp 中継プログラムおよび電子制御装置
EP2476079A4 (en) 2009-09-09 2013-07-03 Fusion Io Inc APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION
US8230276B2 (en) 2009-09-28 2012-07-24 International Business Machines Corporation Writing to memory using adaptive write techniques
TW201111986A (en) 2009-09-29 2011-04-01 Silicon Motion Inc Memory apparatus and data access method for memories
US8243525B1 (en) 2009-09-30 2012-08-14 Western Digital Technologies, Inc. Refreshing non-volatile semiconductor memory by reading without rewriting
US8254172B1 (en) 2009-09-30 2012-08-28 Western Digital Technologies, Inc. Wear leveling non-volatile semiconductor memory based on erase times and program times
US9753847B2 (en) 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8261012B2 (en) 2009-10-30 2012-09-04 Western Digital Technologies, Inc. Non-volatile semiconductor memory comprising power fail circuitry for flushing write data in response to a power fail signal
US8135903B1 (en) 2009-10-30 2012-03-13 Western Digital Technologies, Inc. Non-volatile semiconductor memory compressing data to improve performance
US8397107B1 (en) 2009-12-11 2013-03-12 Western Digital Technologies, Inc. Data storage device employing data path protection using both LBA and PBA
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US8473695B2 (en) 2011-03-31 2013-06-25 Mosys, Inc. Memory system including variable write command scheduling
JP5402693B2 (ja) 2010-02-05 2014-01-29 富士通株式会社 ディスクアレイ装置の制御方法及びディスクアレイ装置
US8316176B1 (en) 2010-02-17 2012-11-20 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
US8407449B1 (en) 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
CN102193882B (zh) 2010-03-15 2014-09-10 京瓷办公信息系统株式会社 数据处理装置以及数据处理方法
JP2011192239A (ja) 2010-03-17 2011-09-29 Sony Corp 記憶装置および記憶システム
TW201133240A (en) 2010-03-22 2011-10-01 Phison Electronics Corp System recovery method, and storage medium controller and storage system using the same
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8713066B1 (en) 2010-03-29 2014-04-29 Western Digital Technologies, Inc. Managing wear leveling and garbage collection operations in a solid-state memory using linked lists
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
TWI446351B (zh) 2010-05-27 2014-07-21 Wistron Corp 資料寫入方法與電腦系統
US8725915B2 (en) 2010-06-01 2014-05-13 Qualcomm Incorporated Virtual buffer interface methods and apparatuses for use in wireless devices
DE102010017215A1 (de) 2010-06-02 2011-12-08 Aicas Gmbh Verfahren zur Durchführung eines Speichermanagements
US8341339B1 (en) 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US8612669B1 (en) 2010-06-28 2013-12-17 Western Digital Technologies, Inc. System and method for performing data retention in solid-state memory using copy commands and validity and usage data
US8447920B1 (en) 2010-06-29 2013-05-21 Western Digital Technologies, Inc. System and method for managing data access in non-volatile memory
US8521972B1 (en) 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
US8639872B1 (en) 2010-08-13 2014-01-28 Western Digital Technologies, Inc. Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk
US8775720B1 (en) 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8638602B1 (en) 2010-09-10 2014-01-28 Western Digital Technologies, Inc. Background selection of voltage reference values for performing memory read operations
US8769190B1 (en) 2010-09-15 2014-07-01 Western Digital Technologies, Inc. System and method for reducing contentions in solid-state memory access
US8788779B1 (en) 2010-09-17 2014-07-22 Western Digital Technologies, Inc. Non-volatile storage subsystem with energy-based performance throttling
US8612804B1 (en) 2010-09-30 2013-12-17 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US8850137B2 (en) 2010-10-11 2014-09-30 Cisco Technology, Inc. Memory subsystem for counter-based and other applications
KR101688051B1 (ko) 2010-11-08 2016-12-20 삼성전자 주식회사 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치
JP2012119038A (ja) 2010-12-02 2012-06-21 Toshiba Corp 不揮発性半導体メモリ及び記憶装置
US8601313B1 (en) 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US9081514B2 (en) 2010-12-14 2015-07-14 Stmicroelectronics S.R.L. Method for controlling operation of a memory using a single write location and an associated memory
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8458435B1 (en) 2010-12-20 2013-06-04 Western Digital Technologies, Inc. Sequential write thread detection
US8392635B2 (en) 2010-12-22 2013-03-05 Western Digital Technologies, Inc. Selectively enabling a host transfer interrupt
WO2012098655A1 (ja) 2011-01-19 2012-07-26 富士通株式会社 データ書き込み制御装置、データ書き込み制御方法及び情報処理装置
US8683113B2 (en) 2011-02-04 2014-03-25 Western Digital Technologies, Inc. Concurrently searching multiple devices of a non-volatile semiconductor memory
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
EP2678769B1 (en) 2011-02-23 2017-01-04 ST-Ericsson SA A device controller for a memory device
US20120221809A1 (en) 2011-02-28 2012-08-30 Hitachi, Ltd. Storage apparatus and data processing method of the same
US8700951B1 (en) 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
JP5712713B2 (ja) * 2011-03-18 2015-05-07 富士通株式会社 制御装置、制御方法およびストレージ装置
US8769232B2 (en) 2011-04-06 2014-07-01 Western Digital Technologies, Inc. Non-volatile semiconductor memory module enabling out of order host command chunk media access
JP2012221333A (ja) 2011-04-12 2012-11-12 Sony Corp メモリ管理装置、メモリ管理方法、および、制御プログラム
US8909888B2 (en) 2011-04-29 2014-12-09 Seagate Technology Llc Secure erasure of data from a non-volatile memory
US8751728B1 (en) 2011-04-29 2014-06-10 Western Digital Technologies, Inc. Storage system bus transfer optimization
US8862804B2 (en) 2011-04-29 2014-10-14 Western Digital Technologies, Inc. System and method for improved parity determination within a data redundancy scheme in a solid state memory
US9021178B2 (en) 2011-05-02 2015-04-28 Western Digital Technologies, Inc. High performance path for command processing
US8503237B1 (en) 2011-05-18 2013-08-06 Western Digital Technologies, Inc. System and method for data recovery in a solid state storage device
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8719531B2 (en) 2011-06-14 2014-05-06 Western Digital Technologies, Inc. System and method for performing data retention that incorporates environmental conditions
US8627034B2 (en) 2011-06-15 2014-01-07 Hitachi, Ltd. Storage control apparatus and storage control method
CN102881324B (zh) 2011-07-11 2015-07-08 澜起科技(上海)有限公司 写入电路、读取电路、内存缓冲器及内存条
US8423722B1 (en) 2011-08-26 2013-04-16 Western Digital Technologies, Inc. System and method for high performance command processing in solid state drives
US8700879B2 (en) 2011-08-31 2014-04-15 Micron Technology, Inc. Concurrent memory operations
KR20130025223A (ko) 2011-09-01 2013-03-11 삼성전자주식회사 메모리를 관리하는 방법 및 이를 수행하는 화상형성장치
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US8510523B2 (en) 2011-09-12 2013-08-13 Microsoft Corporation Memory dump with expanded data and user privacy protection
US8635407B2 (en) 2011-09-30 2014-01-21 International Business Machines Corporation Direct memory address for solid-state drives
US8977803B2 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
JP2013131192A (ja) 2011-12-22 2013-07-04 Fujitsu Ltd ストレージ装置及びストレージ装置の制御方法
JP5687639B2 (ja) 2012-02-08 2015-03-18 株式会社東芝 コントローラ、データ記憶装置及びプログラム
US8724422B1 (en) 2012-02-29 2014-05-13 Western Digital Technologies, Inc. System and method for charging back-up charge storage element for data storage device using spindle phase switching elements
JP5853899B2 (ja) 2012-03-23 2016-02-09 ソニー株式会社 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP5938997B2 (ja) 2012-03-30 2016-06-22 富士通株式会社 情報記憶装置、情報記憶装置制御プログラム、情報記憶装置制御方法
JP5867264B2 (ja) 2012-04-24 2016-02-24 ソニー株式会社 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
US9003224B2 (en) 2012-04-25 2015-04-07 Western Digital Technologies, Inc. Managing unreliable memory in data storage systems
CN103455280B (zh) 2012-05-31 2016-12-14 国际商业机器公司 用于执行存储器复制的方法和系统
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
JP5929790B2 (ja) 2012-06-19 2016-06-08 ソニー株式会社 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US9304953B2 (en) 2012-06-29 2016-04-05 Cypress Semiconductor Corporation Memory controller devices, systems and methods for translating memory requests between first and second formats for high reliability memory devices
US9703482B2 (en) 2012-06-29 2017-07-11 Vmware, Inc. Filter appliance for object-based storage system
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
US8788880B1 (en) 2012-08-22 2014-07-22 Western Digital Technologies, Inc. Efficient retry mechanism for solid-state memory failures
KR20140028618A (ko) 2012-08-29 2014-03-10 삼성전자주식회사 쓰기 페일을 줄이는 메모리 장치, 이를 포함하는 메모리 시스템 및 그 쓰기 방법
KR101975534B1 (ko) 2012-09-11 2019-05-07 삼성전자주식회사 연산기능을 갖는 반도체 메모리 장치
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US8972826B2 (en) 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US9740485B2 (en) 2012-10-26 2017-08-22 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9177638B2 (en) 2012-11-13 2015-11-03 Western Digital Technologies, Inc. Methods and devices for avoiding lower page corruption in data storage devices
US8954694B2 (en) 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9064606B2 (en) * 2012-12-20 2015-06-23 Advanced Micro Devices, Inc. Memory interface supporting both ECC and per-byte data masking
US9304709B2 (en) 2013-09-06 2016-04-05 Western Digital Technologies, Inc. High performance system providing selective merging of dataframe segments in hardware

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090138672A1 (en) * 2007-11-22 2009-05-28 Hitachi, Ltd. Storage controller and storage controller control method
CN102023815A (zh) * 2009-09-15 2011-04-20 格雷戈里·伯德 在固态存储器中实现raid
US20120239869A1 (en) * 2010-01-19 2012-09-20 Chiueh Tzi-Cker Random write optimization techniques for flash disks

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144768A (zh) * 2017-06-16 2019-01-04 西部数据技术公司 在纠删码编码期间的cpu错误修复
CN109144768B (zh) * 2017-06-16 2021-12-17 西部数据技术公司 用于数据编码的系统及其计算机实现方法
CN115794700A (zh) * 2022-11-28 2023-03-14 无锡众星微系统技术有限公司 一种聚合管理访盘方法和装置

Also Published As

Publication number Publication date
CA2923444C (en) 2019-11-19
CA2923444A1 (en) 2015-04-02
KR20160052690A (ko) 2016-05-12
EP3042290A1 (en) 2016-07-13
US20160132248A1 (en) 2016-05-12
US9760304B2 (en) 2017-09-12
AU2014328501B2 (en) 2018-11-08
JP2016530648A (ja) 2016-09-29
WO2015047697A9 (en) 2015-07-02
US20150074358A1 (en) 2015-03-12
CN105612500B (zh) 2019-04-12
EP3042290A4 (en) 2017-08-30
KR101905280B1 (ko) 2018-10-05
WO2015047697A1 (en) 2015-04-02
US9304709B2 (en) 2016-04-05

Similar Documents

Publication Publication Date Title
CN105612500A (zh) 提供硬件中的数据帧段的选择性合并的高性能系统
AU2014328501A1 (en) High performance system providing selective merging of dataframe segments in hardware
TWI514139B (zh) 實體頁、邏輯頁及碼字對應
CN104765693B (zh) 一种用于存储数据的方法、装置和系统
US8397023B2 (en) System and method for handling IO to drives in a memory constrained environment
US7797612B2 (en) Storage accelerator
CN112513804B (zh) 一种数据处理方法及装置
US9838045B1 (en) Apparatus and method for accessing compressed data
CN111813609B (zh) 一种存储介质中数据恢复方法、数据恢复系统及相关设备
US9235471B2 (en) Background initialization for protection information enabled storage volumes
CN105247488A (zh) 在硬件中提供对数据帧区段的线速率合并的高性能读取-修改-写入系统
CN108108262A (zh) 具有检查所选择的存储器访问的硬件检查单元的集成电路
US7921265B2 (en) Data access method, channel adapter, and data access control device
CN104252600B (zh) 数据保护方法、存储器控制器与存储器储存装置
US9552252B2 (en) Methods and apparatuses utilizing check bit data generation
CN113424262B (zh) 一种存储校验方法及装置
AU2018247214B2 (en) High performance system providing selective merging of dataframe segments in hardware
JP5146357B2 (ja) データ診断装置、データ診断システム、データ診断方法及びデータ診断プログラム
WO2023035136A1 (zh) 用于存储器的数据保护方法及其存储装置
CN110659152B (zh) 一种数据处理方法及设备
CN114080596A (zh) 用于存储器的数据保护方法及其存储装置
CN116301640A (zh) 数据的处理方法、装置、电子设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180607

Address after: American California

Applicant after: Western Digital Technologies, Inc.

Address before: American California

Applicant before: Western Digital Technologies, Inc.

Applicant before: SKYERA INC

GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190412

Termination date: 20200905