CN105247488B - 在硬件中提供对数据帧区段的线速率合并的高性能读取-修改-写入系统 - Google Patents

在硬件中提供对数据帧区段的线速率合并的高性能读取-修改-写入系统 Download PDF

Info

Publication number
CN105247488B
CN105247488B CN201480028255.7A CN201480028255A CN105247488B CN 105247488 B CN105247488 B CN 105247488B CN 201480028255 A CN201480028255 A CN 201480028255A CN 105247488 B CN105247488 B CN 105247488B
Authority
CN
China
Prior art keywords
data frame
sector
data
inspection
frame
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
Application number
CN201480028255.7A
Other languages
English (en)
Other versions
CN105247488A (zh
Inventor
J·W·弗林斯鲍
R·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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 filed Critical Western Digital Technologies Inc
Publication of CN105247488A publication Critical patent/CN105247488A/zh
Application granted granted Critical
Publication of CN105247488B publication Critical patent/CN105247488B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1085RMW, i.e. Read-Modify-Write method for RAID systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/555Error detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种合并数据帧的方法,所述方法包括:接收具有多个扇区的第一数据帧;接收具有多个扇区的第二数据帧;使用包括多个多路复用器的多个数据路径,通过将所述第二数据帧的扇区与所述第一数据帧的扇区合并在一起,来生成合并的输出数据帧;以及对具有与所述第一数据帧或者所述第二数据帧中的扇区相对应的扇区的至少一个检查‑数据帧执行错误检查,其中,所述检查‑数据帧中的扇区中的至少一些扇区在对所述合并的输出数据帧的扇区进行发送的所述多个数据路径的子集上发送,并且其中,所述错误检查对所述合并的输出数据帧进行验证。

Description

在硬件中提供对数据帧区段的线速率合并的高性能读取-修 改-写入系统
技术领域
本公开内容涉及用于计算机系统的数据存储器系统。更具体的,本公开内容涉及确保在数据修改过程期间不会引入未检测到的数据错误。
背景技术
数据存储系统为主机系统的数据提供存储。随着固态存储容量增大,半导体器件特征缩小。较小的设备更容易受到由例如alpha粒子引起的“软”错误。虽然这些软错误不会造成永久性的设备损坏,但它们会破坏存储在诸如寄存器和存储器等设备中的数据。使用诸如循环冗余码(CRC)等错误检查码来确定针对其计算了CRC的数据上是否发生了数据错误。
附图说明
通过参照所附附图来描述示例性实施例,本发明构思的方面和特征将更加显而易见,在所附附图中:
图1A和图1B是根据本发明构思的示例性实施例,示出了读取-修改-写入系统的框图;
图2是根据本发明构思的示例性实施例,示出了读取-修改-写入系统的细节的图示;
图3是根据本发明构思的示例性实施例,示出了使用合并掩码将第一数据帧与第二数据帧进行合并的方法的示图;
图4是根据本发明构思的示例性实施例,示出了生成合并的输出数据帧的方法的流程图;
图5是根据本发明构思的示例性实施例,示出了基于合并掩码来生成合并的输出数据帧的方法的流程图;
图6是根据本发明构思的示例性实施例,示出了读取-修改-写入操作的流程图;以及
图7是根据本发明构思的示例性实施例,示出了合并操作的流程图。
具体实施方式
虽然描述了某些实施例,但这些实施例仅是通过示例的方式呈现的,并且不旨在限制保护范围。本文所描述的方法和系统可以体现为各种其它形式。此外,可以在不脱离保护范围的情况下,以本文中描述的示例性方法和系统的形式进行各种省略、替换和变化。
综述
固态驱动器(SSD)被用作计算机系统的数据存储系统。为了修改存储在数据存储系统的内存位置中的数据,可以利用读取-修改-写入操作来读取内存位置以及向其中写入新值。随着SSD的存储容量增大,用于形成所述SSD的半导体器件的特征尺寸降低。作为较小的设备特征尺寸的结果,SSD越来越易受到软错误(其可以在读取-修改-写入操作期间破坏数据)的影响。
系统概述
本发明构思的一些实施例针对一种读取修改写入系统和方法,其确保在数据修改过程期间不会引入未检测到的数据错误。
在一个示例性实施例中,读取-修改-写入系统(RMW)经由两个通道接收L-页帧(即,具有多个扇区(sector)的逻辑页数据帧)。通过对先前的软件进程施加硬件优化,RMW系统基于如由合并掩码确定的所接收到的帧的类型来对所接收到的帧进行操作。RMW系统可以跨越帧来对传输过程中(on-the-fly)的数据帧进行合并,并基于该合并掩码来执行适当的位-修改。RMW系统可以最小化执行读取-修改-写入操作所需的固件周期。
图1A是根据本发明构思的示例性实施例,示出了RMW系统的框图。如图1A所示,读取-修改-写入系统100包括电路,所述电路包括存储器110、输入逻辑120、多个多路复用器130、第一逻辑设备140、和第二逻辑设备150。RMW系统100被同步到系统时钟160并且可以随系统时钟速度可扩展。在一个实施例中,图1A提供了一种基于硬件的方法,该方法提供了在处理读取-修改-写入操作中的显著速度提升,这有助于满足当今许多数据存储设备中的高吞吐量要求。如图1B所示,根据示例性实施例的读取-修改-写入系统还可以包括处理器170,其控制RMW系统的至少一些操作。在一个示例性实施例中,处理器170上执行的固件将控制本文中描述的逻辑检查的至少一部分。
在操作中,在一个示例性实施例中,存储器110接收具有多个扇区的第一数据帧,并将该第一数据帧存储在存储器110中,直到在数据端口122处接收到具有多个扇区的第二数据帧。第二数据帧以大约系统时钟速度逐扇区地通过RMW系统100,并且与从存储器110读取的第一数据帧合并。第一数据帧和第二数据帧由第一逻辑设备140处理,以确定合并的输出数据帧是否是有效的。
图2是根据本发明构思的示例性实施例,示出了读取-修改-写入系统的细节的图示。参考图2,输入逻辑120接收第一数据帧和第二数据帧,并对每个数据帧的报头中包含的CRC进行验证。必须指出的是,虽然在本公开内容的示例性实施例中提及的是CRC,但是在一些实施例中,对例如但不限于校验(checksum)和散列函数等其他错误检测机制的使用是可能的。将第一数据帧和第二数据帧逐扇区地与系统时钟160同步地从输入逻辑120传送到多路复用器130,在多路复用器130处,基于合并掩码,将第一数据帧和第二数据帧的扇区以大约与系统时钟相同的速度合并。
图3是根据本发明构思的示例性实施例,示出了使用合并掩码将第一数据帧与第二数据帧进行合并的示图。在图3的示例性图示中,关于第二数据帧,合并掩码利用“1”来指示要合并到输出数据帧中的扇区,而利用“0”来指示要丢弃的扇区,以及关于第一数据帧,利用“0”来指示要合并到输出数据帧中的扇区,而利用“1”来指示要丢弃的扇区。本领域的普通技术人员将会理解,对“1”和“0”的指定仅是示例性的,并且在不脱离本发明构思的范围的情况下,其它指定是可能的。
参考图3,合并掩码370规定:第二数据帧340中将与第一数据帧310的扇区合并的扇区来代替第一数据帧310中将丢弃的扇区(示出为要丢弃的扇区320)。第二数据帧340的未由合并掩码370规定为要合并到输出数据帧中的扇区被丢弃(示出为要丢弃的扇区350),而第二数据帧340的由合并掩码370规定为要合并到输出数据帧中的扇区(示出为要合并的扇区360)与第一数据帧310进行合并,以生成合并的输出数据帧380。相反地,第一数据帧310的未由合并掩码370规定为要合并到输出数据帧中的扇区被丢弃(示出为要丢弃的扇区320),而第一数据帧310的由合并掩码370规定为要合并到输出数据帧中的扇区(示出为要合并的扇区330)与第二数据帧340的要合并的扇区360进行合并,以生成合并的输出数据帧380。换句话说,第一数据帧的由合并掩码所规定的扇区由第二数据帧的相应扇区替换以便生成合并的输出数据帧,并且丢弃第一数据帧和第二数据帧的未使用扇区。
虽然上述的合并操作是关于可以与第一数据帧的扇区合并的、第二数据帧的规定扇区来描述的,但是本领域普通技术人员将理解的是,本发明构思的范围还包括将第一数据帧的规定扇区与第二数据帧的扇区合并。另外,虽然在图3中示出为如此,但是第一数据帧和第二数据帧的多个扇区中的扇区数目可能不相同。
再次参考图2,在一个示例性实施例中,逐扇区地与系统时钟同步地将第二数据帧的每个扇区发送至第一多路复用器5。在一个示例性实施例中,第一多路复用器5将第二数据帧的每个扇区发送至第二多路复用器6和合并多路复用器8。同时,将第一数据帧发送至第三多路复用器4。在一个示例性实施例中,第三多路复用器4将第一数据帧的每个扇区发送至第四多路复用器15和合并多路复用器8。合并多路复用器8由合并掩码控制,以从第一或第二数据帧中选择要合并到输出数据帧中的扇区。
在一个示例性实施例中,由合并掩码从第一或第二数据帧中选择的用于合并的扇区被合并多路复用器8输出为合并的输出数据帧的扇区,并且还从合并多路复用器8的输出发送到第二逻辑设备150。第二逻辑设备150计算并累加针对合并的输出数据帧的CRC。合并的输出数据帧的每个扇区由输出多路复用器17逐扇区地从RMW系统100输出。合并的输出数据帧的生成是以大约与系统时钟速度相同的速度来执行的。
在一个示例性实施例中,第二多路复用器6和第四多路复用器15选择要合并到输出数据帧中的扇区或者被丢弃的扇区,并且将所选择的或被丢弃的扇区发送到第一逻辑设备140。例如,如果合并掩掩码使得合并多路复用器8从所述第一数据帧选择扇区,则来自第二数据帧的相应扇区被丢弃。合并多路复用器8将来自第一数据帧的所选择的扇区发送到输出多路复用器17,而输出多路复用器17则将来自所述第一数据帧的所选择的扇区输出为合并的输出数据帧的扇区,并且还将来自所述第一数据帧的所选择的扇区发送到第四多路复用器15。第四多路复用器15从第一数据帧选择所选择的扇区并将其发送到第一逻辑设备140。同时,将第二数据帧的丢弃的扇区从第二多路复用器6发送到第一逻辑设备140。
在一个示例性实施例中,第一逻辑设备140将第一数据帧和第二数据帧分别重构为第一检查-数据帧和第二检查-数据帧,并且由第一逻辑设备140逐扇区地计算和累加该检查-数据帧的CRC。所述第一检查-数据帧可以包括在数据路径的与合并成所述输出数据帧的所述第一数据帧的扇区在其上进行发送的数据路径的所述子集不同的第一子集上发送的扇区,并且所述第二检查-数据帧可以包括在数据路径的与合并成所述输出数据帧的所述第二数据帧的扇区在其上进行发送的数据路径的所述子集不同的第二子集上发送的扇区。
在处理了第一数据帧和第二数据帧的最后的扇区之后,将第一数据帧的CRC通过第三多路复用器4和第四多路复用器15发送到第一逻辑设备140。同时,将第二数据帧的CRC通过第一多路复用器5和第二多路复用器6发送到第一逻辑设备140。
在一个示例性实施例中,第一逻辑设备140通过将第一数据帧的发送的CRC与针对第一检查-数据帧计算的CRC进行比较,并且将第二数据帧的发送的CRC与针对第二检查-数据帧计算的CRC进行比较来执行错误检查。如果接收的数据帧CRC与检查-数据帧的CRC相匹配,则合并的输出数据帧将是有效的,这是因为合并的输出数据帧的扇区通过与检查-数据帧的扇区相同的逻辑器件,并且没有引入错误。如果CRC不匹配,则生成用于指示所合并的输出数据帧是无效的消息。有效性可以以这种方式来验证,这是因为检查-数据帧中的扇区中的至少一些扇区在还对合并的输出数据帧进行发送的、多个数据路径的子集上发送,从而对所述至少一个检查-数据帧的错误检查对所述合并的输出数据帧进行验证。将来自实际的合并的数据帧的输出数据用作对检查-数据帧CRC计算的一部分确保检测到沿着帧合并机制的路径引入的任何错误。
与生成合并的输出数据帧同时,第二逻辑设备150逐个帧地生成针对合并的输出数据帧的CRC。在输出了合并的输出数据帧的最后的扇区之后,输出多路复用器17选择并输出由第二逻辑设备150生成的针对合并的输出数据帧的CRC。
图4是根据本发明构思的示例性实施例,示出了生成合并的输出数据帧的方法的流程图。参考图4,RMW系统接收包括多个扇区的第一数据帧(410)。第一数据帧可以存储在诸如易失性或非易失性存储器的数据存储器中。RMW系统接收包括多个扇区的第二数据帧(420)。第二数据帧可以包括例如要从主机系统写入到数据存储器的新数据。第一数据帧和第二数据帧的扇区经由多个数据路径和多路复用器合并以生成合并的输出数据帧(430)。另外,通过逐个帧地计算和累加被合并以生成该合并的输出数据帧的第一数据帧和第二数据帧的CRC数据,来生成针对合并的输出数据帧的CRC(440)。
随着生成合并的输出帧,将第一数据帧和第二数据帧中的至少一个的扇区重构为检查-数据帧(450)。可替代地,随着生成合并的输出帧,可以将第一数据帧和第二数据帧二者重构为检查-数据帧。逐个帧地计算和累加针对检查-数据帧的CRC,并且对包括与第一数据帧或第二数据帧的扇区相对应的扇区的所述至少一个检查-数据帧执行错误检查,以对所述合并的输出数据帧的相应扇区进行验证(460)。由于检查-数据帧中的扇区中的至少一些扇区是在对合并的输出数据帧的扇区进行发送的多个数据路径的子集上发送的,因此对该至少一个检查-数据帧的错误检查对该合并的输出数据帧中的来自该至少一个检查-数据帧的扇区进行验证。在一个示例性实施例中,对两个检查-数据帧的错误检查对该合并的输出数据帧中的、所述第一检查-数据帧和第二检查-数据帧的扇区进行验证。
图5是根据本发明构思的示例性实施例,示出了基于合并掩码来生成合并的输出数据帧的方法的流程图。参考图5,RMW系统(510)接收包括多个扇区的第一数据帧。第一数据帧可以存储在诸如易失性或非易失性存储器的数据存储器中。RMW系统(520)接收包括多个扇区的第二数据帧。
接收合并掩码(530),该合并掩码规定了要合并的、第一数据帧和第二数据帧的扇区。该合并掩码规定了所述第一数据帧和第二数据帧的哪些扇区占据所述输出数据帧中的每个扇区。合并掩码可以被接收为第一接收的数据帧的一部分或者接收为第二接收的数据帧的一部分。可替代地,合并掩码可以独立于所接收的数据帧而被接收。合并的输出数据帧是通过基于所述合并掩码,合并从所述第一数据帧和第二数据帧选择的扇区而生成的(540)。
图6是根据本发明构思的示例性实施例,示出了读取-修改-写入操作的流程图。参考图6,要修改的读取-数据帧是从RMW系统外部的存储器输入的并且存储在内部存储器中(605),直到接收到包含用于修改所述读取-数据帧的写入-数据帧(610)。读取-数据帧和写入-数据帧中的每一个具有多个扇区。所述读取-数据帧和写入-数据帧的所述多个扇区中扇区的数量可能不相同。
接收到合并掩码(615),并且基于该合并掩码来确定要合并在输出数据帧中的、读取-数据帧和写入-数据帧的扇区(620)。如果选择了写入-数据帧的扇区(625-Y),则所选择的写入-数据帧扇区合并到输出数据帧中(630)。可替代地,如果没有选择写入-数据帧扇区(625-N),则相应的读取-数据帧扇区合并到输出数据帧中(635)。计算并累加针对所选择的扇区的CRC数据(640),并且同时,从RMW系统输出合并到输出数据帧中的所选择的扇区(645)。丢弃未被选择的数据帧扇区。
与合并过程同时的,读取-数据帧和写入-数据帧被重构具有其相应扇区(650),并且计算以及累加针对所重构的读取-数据帧和写入-数据帧的每个扇区的CRC数据(655)。如果重构的扇区不是要处理的最后一个扇区(660-N),则进程在操作625至655处重复。如果重构的扇区是要处理的最后的扇区(660-Y),则将重构的读取-数据帧和写入-数据帧的CRC与原始接收的读取-数据帧和写入-数据帧的CRC进行比较,以验证在读取-修改-写入进程中没有引入错误(665)。
如果针对重构数据帧的CRC都与原始接收的数据帧的CRC不匹配(670-N),则生成用于指示所述合并的输出数据帧是无效的消息(675)。由于所述重构数据帧中的扇区中的至少一些扇区是在对所合并的输出数据帧的扇区进行发送的多个数据路径的子集上)发送的,因此对重构帧的错误检查该合并的输出数据帧进行验证。否则,如果针对重构的数据帧的CRC与原始接收的数据帧的CRC相匹配(670-Y),则合并的数据帧被验证为是正确的。
最后,图7是根据本发明构思的示例性实施例,示出了合并操作的流程图。参照图3和7,在初始化扇区计数器(710)之后,对读取-数据帧的扇区和写入-数据帧的相应扇区进行读取(720)。将写入-数据扇区地址与合并掩码进行比较(730),并且如果写入-数据扇区对应于合并掩码(740-Y),则将写入-数据扇区合并到输出-数据帧的地址时隙中(750)。可替代地,如果写入-数据扇区不对应于合并掩码(740-N),则将读取-数据扇区合并到输出-数据帧的地址时隙中(760)。将读取-数据帧和写入-数据帧的扇区发送到相应的CRC测试模块,以重构原始读取-数据帧和原始写入-数据帧(770)。如果重构的扇区不是要处理的最后一个扇区(780-N),则进程在操作720至770处重复。
虽然参照图6和图7解释的实施例是关于读取-数据帧和写入-数据帧来描述的,但是本领域普通技术人员将意识到,本发明构思可以推广到第一数据帧和第二数据帧,其中的任何一个可以对应于读取-数据帧和写入-数据帧。
此外,本发明构思的操作可以以所描述的顺序执行、以不同的顺序执行,或者可以将操作进行组合。本领域普通技术人员将理解,上述过程是示例性的,并且在不脱离本发明构思的情况下,其他变型是可能的。
虽然描述了某些实施例,但这些实施例仅是通过示例的方式呈现的,并且不旨在限制保护范围。本文所描述的方法和系统可以体现为各种其它形式。可以在不脱离保护的精神的情况下,以本文中描述的示例性方法和系统的形式进行各种省略、替换和变化。
所附权利要求及其等同物旨在覆盖将落入保护的范围和精神之内这种形式或修改。例如,本文所公开的实施性系统和方法可以应用于固态驱动器、硬盘驱动器、混合硬盘等等。另外,可以额外地或替代地使用其他形式的存储器,其例如但不限于DRAM或SRAM、电池备份的易失性DRAM或SRAM器件、EPROM、EEPROM存储器等。作为另一个例子,在图中所示的各种组件可以实现为处理器上的软件和/或固件、ASIC/FPGA或专用硬件。另外,以上所公开的具体示例性实施例的特征和属性可以以不同的方式进行组合,以形成额外的实施例,所有这些都落入本公开内容的范围内。
虽然本公开内容提供了某些示例性实施例和应用,但是对本领域普通技术人员来说显而易见的其他实施例也在本公开内容的范围内,所述其他实施例包括不提供本文所阐述的所有特征和优点的实施例。因此,本公开内容的范围旨在仅通过参考所附权利要求来限定。

Claims (35)

1.一种合并数据帧的方法,所述方法包括:
接收包括多个扇区的第一数据帧;
接收包括多个扇区的第二数据帧;
使用包括多个多路复用器的多个数据路径,通过将所述第二数据帧的扇区与所述第一数据帧的扇区合并在一起,来生成合并的输出数据帧;以及
对包括与所述第一数据帧或者所述第二数据帧中的扇区相对应的扇区的至少一个检查-数据帧执行错误检查,
其中,所述检查-数据帧中的所述扇区中的至少一些扇区是在对所述合并的输出数据帧的扇区进行发送的所述多个数据路径的子集上发送的,并且
其中,所述错误检查对所述合并的输出数据帧进行验证。
2.根据权利要求1所述的方法,其中,执行所述错误检查还包括:
对两个检查-数据帧执行错误检查,所述两个检查-数据帧包括:
第一检查-数据帧,其包括与所述第一数据帧中的扇区相对应的扇区;以及
第二检查-数据帧,其包括与所述第二数据帧中的扇区相对应的扇区。
3.根据权利要求2所述的方法,其中,在基于合并掩码,通过所述多个多路复用器中的选择的多路复用器来发送与所述第一数据帧和所述第二数据帧相对应的扇区之后,利用与所述第一数据帧和所述第二数据帧相对应的其相应的扇区来重构所述第一检查-数据帧和所述第二检查-数据帧,所述合并掩码指示要将所述第一数据帧和所述第二数据帧中的哪些扇区合并成所述输出数据帧。
4.根据权利要求2所述的方法,其中,执行所述错误检查还包括:
将所述第一数据帧和所述第二数据帧的循环冗余码即CRC分别与针对所述第一检查-数据帧和所述第二检查-数据帧生成的CRC进行比较,并且
如果两个CRC比较之中的任一个CRC比较都不匹配,则生成指示所述合并的输出数据帧是无效的消息。
5.根据权利要求4所述的方法,其中,所述第一检查-数据帧的所述CRC是通过逐扇区地累加所述第一检查-数据帧的CRC数据来生成的,并且所述第二检查-数据帧的所述CRC是通过逐扇区地累加所述第二检查-数据帧的CRC数据来生成的。
6.根据权利要求2所述的方法,其中,所述合并的输出数据帧中的每个扇区在所述第一检查-数据帧中或者在所述第二检查-数据帧中。
7.根据权利要求2所述的方法,其中:
所述第一检查-数据帧还包括在数据路径的第一子集上发送的扇区,所述数据路径的第一子集与合并成所述输出数据帧的所述第一数据帧的扇区在其上进行发送的数据路径的所述子集不同,以及
所述第二检查-数据帧还包括在数据路径的第二子集上发送的扇区,所述数据路径的第二子集与合并成所述输出数据帧的所述第二数据帧的扇区在其上进行发送的数据路径的所述子集不同。
8.根据权利要求1所述的方法,其中,所述至少一个检查-数据帧还包括在数据路径的与所述合并的输出数据帧的扇区在其上进行发送的数据路径的所述子集不同的子集上发送的扇区。
9.根据权利要求1所述的方法,其中,要合并成所述输出数据帧的、所述第一数据帧和所述第二数据帧中的至少一个的所述扇区是由合并掩码所规定的。
10.根据权利要求9所述的方法,其中,所述合并掩码规定了所述第一数据帧和所述第二数据帧中的哪些扇区占据所述输出数据帧中的每个扇区。
11.根据权利要求1所述的方法,还包括:随着生成了所述合并的输出数据帧,重构所述至少一个检查-数据帧。
12.根据权利要求1所述的方法,还包括:通过逐扇区地累加合并成所述输出数据帧的所述扇区的循环冗余码数据即CRC数据,来生成针对所述合并的输出数据帧的CRC。
13.一种用于合并数据帧的装置,所述装置包括:
被配置为接收包括多个扇区的第一数据帧以及包括多个扇区的第二数据帧的一个或多个设备;以及
包括多个数据路径的电路,所述多个数据路径包括多个多路复用器,所述电路被配置为:
使用所述多个数据路径,通过将所述第二数据帧的扇区与所述第一数据帧的扇区合并在一起,来生成合并的输出数据帧;以及
对包括与所述第一数据帧或者所述第二数据帧中的扇区相对应的扇区的至少一个检查-数据帧执行错误检查,
其中,所述检查-数据帧中的所述扇区中的至少一些扇区是在对所述合并的输出数据帧的扇区进行发送的所述多个数据路径的子集上发送的,
其中,所述错误检查对所述合并的输出数据帧进行验证。
14.根据权利要求13所述的装置,其中,所述一个或多个设备还包括:
被配置为存储所述第一数据帧的存储器;以及
被配置为接收所述第二数据帧的数据端口。
15.根据权利要求13所述的装置,其中,所述电路还被配置为通过至少以下操作来执行所述错误检查:
对两个检查-数据帧执行错误检查,所述两个检查-数据帧包括:
第一检查-数据帧,其包括与所述第一数据帧中的扇区相对应的扇区;以及
第二检查-数据帧,其包括与所述第二数据帧中的扇区相对应的扇区。
16.根据权利要求15所述的装置,其中,在基于合并掩码,通过所述多个多路复用器中的选择的多路复用器来发送与所述第一数据帧和所述第二数据帧相对应的扇区之后,由至少一个第一逻辑设备利用与所述第一数据帧和所述第二数据帧相对应的其相应的扇区来重构所述第一检查-数据帧和所述第二检查-数据帧,所述合并掩码指示要将所述第一数据帧和所述第二数据帧中的哪些扇区合并成所述输出数据帧。
17.根据权利要求16所述的装置,其中,所述至少一个第一逻辑设备被配置为:
将所述第一数据帧的循环冗余码即CRC与针对所述第一检查-数据帧生成的CRC进行比较;
将所述第二数据帧的CRC与针对所述第二检查-数据帧生成的CRC进行比较;以及
如果两个CRC比较之中的任一个CRC比较都不匹配,则生成指示所述合并的输出数据帧是无效的消息。
18.根据权利要求17所述的装置,其中,所述至少一个第一逻辑设备还被配置为:
通过逐扇区地累加所述第一检查-数据帧的CRC数据来生成所述第一检查-数据帧的所述CRC;以及
通过逐扇区地累加所述第二检查-数据帧的CRC数据来生成所述第二检查-数据帧的所述CRC。
19.根据权利要求15所述的装置,其中,所述合并的输出数据帧中的每个扇区在所述第一检查-数据帧中或者在所述第二检查-数据帧中。
20.根据权利要求15所述的装置,其中:
所述第一检查-数据帧还包括在数据路径的第一子集上发送的扇区,所述数据路径的第一子集与合并成所述输出数据帧的所述第一数据帧的扇区在其上进行发送的数据路径的所述子集不同,以及
所述第二检查-数据帧还包括在数据路径的第二子集上发送的扇区,所述数据路径的第二子集与合并成所述输出数据帧的所述第二数据帧的扇区在其上进行发送的数据路径的所述子集不同。
21.根据权利要求13所述的装置,其中,所述至少一个检查-数据帧还包括在数据路径的与所述合并的输出数据帧的扇区在其上进行发送的数据路径的所述子集不同的子集上发送的扇区。
22.根据权利要求13所述的装置,其中,要合并成所述输出数据帧的、所述第一数据帧和所述第二数据帧中的所述至少一个的所述扇区是由合并掩码所规定的。
23.根据权利要求22所述的装置,其中,所述合并掩码规定了所述第一数据帧和所述第二数据帧中的哪些扇区占据所述输出数据帧中的每个扇区。
24.根据权利要求22所述的装置,其中,所述合并掩码被并入所述第一数据帧和所述第二数据帧中的一个。
25.根据权利要求22所述的装置,其中,所述合并掩码是与所述第一数据帧和所述第二数据帧分开接收的。
26.根据权利要求13所述的装置,还包括至少一个第一逻辑设备,其被配置为随着生成了所述合并的输出数据帧,重构所述至少一个检查-数据帧。
27.根据权利要求13所述的装置,还包括第二逻辑设备,其被配置为通过逐扇区地累加合并成所述输出数据帧的所述扇区的循环冗余码数据即CRC数据,来生成针对所述合并的输出数据帧的CRC。
28.根据权利要求13所述的装置,其中,所述电路还包括处理器,并且其中,生成所述合并的输出数据帧以及执行所述错误检查是在所述处理器的控制之下执行的。
29.一种合并数据帧的方法,所述方法包括:
接收包括多个扇区的第一数据帧;
接收包括多个扇区的第二数据帧;
基于所述第一数据帧和所述第二数据帧来生成合并的输出数据帧,所述生成包括:针对所述合并的输出数据帧中的每个地址时隙,基于合并掩码从所述第一数据帧或者所述第二数据帧中选择扇区;
对至少一个检查-数据帧执行错误检查以验证所述合并的输出数据帧,所述至少一个检查-数据帧包括与所述第一数据帧或者所述第二数据帧中的扇区相对应的扇区。
30.根据权利要求29所述的方法,其中,所述合并掩码被并入所述第一数据帧和所述第二数据帧中的一个。
31.根据权利要求29所述的方法,其中,所述合并掩码是与所述第一数据帧和所述第二数据帧分开接收的。
32.一种用于合并数据帧的装置,所述装置包括:
第一电路,其被配置为接收包括多个扇区的第一数据帧;
第二电路,其被配置为接收包括多个扇区的第二数据帧;以及
多个数据路径,其被配置为基于所述第一数据帧和所述第二数据帧来生成合并的输出数据帧,其中,所述生成包括:针对所述合并的输出数据帧中的每个地址时隙,基于合并掩码从所述第一数据帧或者所述第二数据帧中选择扇区;以及
被配置为对至少一个检查-数据帧执行错误检查的电路,所述至少一个检查-数据帧包括与所述第一数据帧或者所述第二数据帧中的扇区相对应的扇区,其中所述错误检查验证所述合并的输出数据帧。
33.根据权利要求32所述的装置,其中,所述第一电路包括被配置为存储所述第一数据帧的存储器;以及
所述第二电路包括被配置为接收所述第二数据帧的数据端口。
34.根据权利要求32所述的装置,其中,所述合并掩码被并入所述第一数据帧和所述第二数据帧中的一个。
35.根据权利要求32所述的装置,其中,所述合并掩码是与所述第一数据帧和所述第二数据帧分开接收的。
CN201480028255.7A 2013-05-16 2014-05-16 在硬件中提供对数据帧区段的线速率合并的高性能读取-修改-写入系统 Active CN105247488B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/895,928 US9081700B2 (en) 2013-05-16 2013-05-16 High performance read-modify-write system providing line-rate merging of dataframe segments in hardware
US13/895,928 2013-05-16
PCT/US2014/038510 WO2014186779A1 (en) 2013-05-16 2014-05-16 High performance read-modify-write system providing line-rate merging of dataframe segments in hardware

Publications (2)

Publication Number Publication Date
CN105247488A CN105247488A (zh) 2016-01-13
CN105247488B true CN105247488B (zh) 2018-11-16

Family

ID=51896818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480028255.7A Active CN105247488B (zh) 2013-05-16 2014-05-16 在硬件中提供对数据帧区段的线速率合并的高性能读取-修改-写入系统

Country Status (8)

Country Link
US (2) US9081700B2 (zh)
KR (1) KR101915351B1 (zh)
CN (1) CN105247488B (zh)
AU (2) AU2014265183B2 (zh)
DE (1) DE112014002403B4 (zh)
GB (1) GB2528614B (zh)
HK (1) HK1219153A1 (zh)
WO (1) WO2014186779A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081700B2 (en) 2013-05-16 2015-07-14 Western Digital Technologies, Inc. High performance read-modify-write system providing line-rate merging of dataframe segments in hardware
WO2015048037A1 (en) 2013-09-24 2015-04-02 Rambus Inc. Memory component having internal read-modify-write operation
US10572260B2 (en) * 2017-12-29 2020-02-25 Intel Corporation Spatial and temporal merging of remote atomic operations
CN108279910B (zh) * 2018-01-17 2021-04-13 珠海市杰理科技股份有限公司 程序代码烧写方法、装置、计算机设备和存储介质
CN112944566B (zh) * 2021-02-24 2023-03-31 青岛海尔空调电子有限公司 室外机运行参数自动匹配新装室内机的方法
CN115440269B (zh) * 2021-06-01 2024-05-14 长鑫存储技术有限公司 数据传输电路、数据处理电路和存储器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4884271A (en) * 1987-12-28 1989-11-28 International Business Machines Corporation Error checking and correcting for read-modified-write operations
CN1773471A (zh) * 2004-11-12 2006-05-17 国际商业机器公司 用于处理读-修改-写命令的读操作和写操作的方法和系统
CN101335764A (zh) * 2008-07-15 2008-12-31 上海华为技术有限公司 合成复帧、解析复帧的方法、装置及复帧处理系统
CN102143185A (zh) * 2011-03-31 2011-08-03 北京经纬恒润科技有限公司 数据传输方法和数据传输装置
WO2012134560A1 (en) * 2011-04-01 2012-10-04 Intel Corporation Systems, apparatuses, and methods for blending two source operands into a single destination using a writemask

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5629949A (en) * 1993-09-21 1997-05-13 Cirrus Logic, Inc. Error correction verification method and apparatus using CRC check remainders
US5638370A (en) * 1994-12-28 1997-06-10 Intel Corporation Status bit controlled HDLC accelerator
US6108812A (en) * 1996-06-20 2000-08-22 Lsi Logic Corporation Target device XOR engine
US5923650A (en) * 1997-04-08 1999-07-13 Qualcomm Incorporated Method and apparatus for reverse link rate scheduling
US6467060B1 (en) * 1998-06-26 2002-10-15 Seagate Technology Llc Mass storage error correction and detection system, method and article of manufacture
US6262596B1 (en) * 1999-04-05 2001-07-17 Xilinx, Inc. Configuration bus interface circuit for FPGAS
US6944168B2 (en) * 2001-05-04 2005-09-13 Slt Logic Llc System and method for providing transformation of multi-protocol packets in a data stream
US7082500B2 (en) * 2003-02-18 2006-07-25 Cray, Inc. Optimized high bandwidth cache coherence mechanism
US6856556B1 (en) 2003-04-03 2005-02-15 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
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
US7502256B2 (en) 2004-11-30 2009-03-10 Siliconsystems, Inc. Systems and methods for reducing unauthorized data recovery from solid-state storage devices
US7277986B2 (en) * 2005-03-30 2007-10-02 Emc Corporation Sector-edge cache
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
JP4764973B2 (ja) 2005-12-09 2011-09-07 独立行政法人産業技術総合研究所 Crc値の算出装置
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US8108692B1 (en) 2006-06-27 2012-01-31 Siliconsystems, Inc. Solid-state storage subsystem security solution
US7765373B1 (en) 2006-06-27 2010-07-27 Siliconsystems, Inc. System for controlling use of a solid-state storage subsystem
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
US8161227B1 (en) 2006-10-30 2012-04-17 Siliconsystems, Inc. Storage subsystem capable of programming field-programmable devices of a target computer system
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
US7958427B1 (en) 2007-03-30 2011-06-07 Link—A—Media Devices Corporation ECC with out of order completion
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
US7685374B2 (en) 2007-07-26 2010-03-23 Siliconsystems, Inc. Multi-interface and multi-bus structured solid-state storage subsystem
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
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
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US7733712B1 (en) 2008-05-20 2010-06-08 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
US8196009B2 (en) * 2008-06-18 2012-06-05 Intel Corporation Systems, methods, and apparatuses to transfer data and data mask bits in a common frame with a shared error bit code
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
US9176859B2 (en) 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US8090899B1 (en) 2009-03-04 2012-01-03 Western Digital Technologies, Inc. Solid state drive power safe wear-leveling
US8209584B2 (en) * 2009-03-18 2012-06-26 Lg Electronics Inc. Transmitting/receiving system and method of processing broadcasting signal in transmitting/receiving system
US8661314B2 (en) 2009-03-23 2014-02-25 Broadcom Corporation Method and apparatus for calculating frame check sequence
US10079048B2 (en) 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
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
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
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
BR112012028417B1 (pt) * 2010-05-17 2021-06-29 Samsung Electronics Co., Ltd Método para processar um fluxo de um transmissor de radiodifusão digital, transmissor de radiodifusão digital, método para processar um fluxo de receptor de radiodifusão digital, e receptor de radiodifusão digital
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
KR101688051B1 (ko) 2010-11-08 2016-12-20 삼성전자 주식회사 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치
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
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
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
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
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
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
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
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
US8751728B1 (en) 2011-04-29 2014-06-10 Western Digital Technologies, Inc. Storage system bus transfer optimization
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
US8423722B1 (en) 2011-08-26 2013-04-16 Western Digital Technologies, Inc. System and method for high performance command processing in solid state drives
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting 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
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US8977803B2 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
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
US9003224B2 (en) 2012-04-25 2015-04-07 Western Digital Technologies, Inc. Managing unreliable memory in data storage systems
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
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
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
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
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US20140223255A1 (en) 2012-12-18 2014-08-07 Western Digital Technologies, Inc. Decoder having early decoding termination detection
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems
US9081700B2 (en) 2013-05-16 2015-07-14 Western Digital Technologies, Inc. High performance read-modify-write system providing line-rate merging of dataframe segments in hardware

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4884271A (en) * 1987-12-28 1989-11-28 International Business Machines Corporation Error checking and correcting for read-modified-write operations
CN1773471A (zh) * 2004-11-12 2006-05-17 国际商业机器公司 用于处理读-修改-写命令的读操作和写操作的方法和系统
CN101335764A (zh) * 2008-07-15 2008-12-31 上海华为技术有限公司 合成复帧、解析复帧的方法、装置及复帧处理系统
CN102143185A (zh) * 2011-03-31 2011-08-03 北京经纬恒润科技有限公司 数据传输方法和数据传输装置
WO2012134560A1 (en) * 2011-04-01 2012-10-04 Intel Corporation Systems, apparatuses, and methods for blending two source operands into a single destination using a writemask

Also Published As

Publication number Publication date
DE112014002403B4 (de) 2020-07-09
DE112014002403T5 (de) 2016-05-19
AU2018274835A1 (en) 2018-12-20
US9948322B1 (en) 2018-04-17
US20140344653A1 (en) 2014-11-20
GB2528614B (en) 2020-10-28
CN105247488A (zh) 2016-01-13
KR101915351B1 (ko) 2018-11-05
US9081700B2 (en) 2015-07-14
GB2528614A (en) 2016-01-27
GB201519928D0 (en) 2015-12-23
AU2014265183B2 (en) 2019-01-03
HK1219153A1 (zh) 2017-03-24
KR20160008631A (ko) 2016-01-22
AU2014265183A1 (en) 2015-12-17
WO2014186779A1 (en) 2014-11-20

Similar Documents

Publication Publication Date Title
CN105247488B (zh) 在硬件中提供对数据帧区段的线速率合并的高性能读取-修改-写入系统
KR101905280B1 (ko) 하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템
KR101750662B1 (ko) 데이터 에러 교정용 회로, 장치, 및 방법
KR101298827B1 (ko) 반도체 디스크 및 시스템
TWI466126B (zh) 多通道儲存裝置及在其中儲存資料之方法
US10346268B2 (en) Efficient data recovery for write path errors
CN104035843B (zh) 用于提高锁步核可用性的系统和方法
CN107436821B (zh) 为包括多个数据位和地址位的块生成错误码的装置和方法
KR102385138B1 (ko) 정정 불가능한 ecc 오류를 갖는 데이터를 복구하도록 구성되는 raid 컨트롤러 장치 및 스토리지 장치
CN102708021B (zh) 镜像数据存储系统中的增强错误检测
US20140089760A1 (en) Storage of codeword portions
US9513993B2 (en) Stale data detection in marked channel for scrub
US20140344643A1 (en) Hybrid memory protection method and apparatus
CN104658609B (zh) 用于存储器系统的纠错码分布的方法和系统
KR20160013808A (ko) 스크램블러에 의한 인코더 바이패스
JPWO2015111176A1 (ja) プログラマブルデバイス、エラー保持システム、及び電子システム装置
CN106126366A (zh) 从存储器设备读出错误向量
JP6408482B2 (ja) プログラマブルデバイス及びこれを用いた電子システム装置
CN105575439B (zh) 一种存储单元失效纠错的方法及存储器
CN106067326A (zh) 错误校正电路及包括其的半导体存储器件
Pereira-Santos et al. Exploring redundancy granularities to repair real-time FPGA-based systems
CN113424262B (zh) 一种存储校验方法及装置
US9519539B2 (en) Monitoring data error status in a memory
WO2016038673A1 (ja) 誤り訂正装置、誤り訂正方法、及び誤り訂正システム
JP2019028952A (ja) 記憶装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1219153

Country of ref document: HK

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180608

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1219153

Country of ref document: HK