KR101915351B1 - 하드웨어에서 데이터프레임 세그먼트들의 라인-레이트 병합을 제공하는 고성능 판독-수정-기록 시스템 - Google Patents

하드웨어에서 데이터프레임 세그먼트들의 라인-레이트 병합을 제공하는 고성능 판독-수정-기록 시스템 Download PDF

Info

Publication number
KR101915351B1
KR101915351B1 KR1020157035512A KR20157035512A KR101915351B1 KR 101915351 B1 KR101915351 B1 KR 101915351B1 KR 1020157035512 A KR1020157035512 A KR 1020157035512A KR 20157035512 A KR20157035512 A KR 20157035512A KR 101915351 B1 KR101915351 B1 KR 101915351B1
Authority
KR
South Korea
Prior art keywords
data frame
sectors
check
data
merged
Prior art date
Application number
KR1020157035512A
Other languages
English (en)
Other versions
KR20160008631A (ko
Inventor
잭 더블유 플린스바우
로드니 엠 뮬렌도어
Original Assignee
웨스턴 디지털 테크놀로지스, 인코포레이티드
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 웨스턴 디지털 테크놀로지스, 인코포레이티드 filed Critical 웨스턴 디지털 테크놀로지스, 인코포레이티드
Publication of KR20160008631A publication Critical patent/KR20160008631A/ko
Application granted granted Critical
Publication of KR101915351B1 publication Critical patent/KR101915351B1/ko

Links

Images

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
    • 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
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Error Detection And Correction (AREA)

Abstract

데이터 프레임들을 병합하는 방법은, 복수의 섹터들을 갖는 제 1 데이터 프레임을 수신하는 단계; 복수의 섹터들을 갖는 제 2 데이터 프레임을 수신하는 단계; 복수의 다중화기들을 포함하는 복수의 데이터 경로들을 이용하여, 제 2 데이터 프레임의 섹터들을 제 1 데이터 프레임의 섹터들과 병합함으로써 병합된 출력 데이터 프레임을 생성하는 단계; 및 제 1 데이터 프레임 또는 제 2 데이터 프레임에서의 섹터들에 대응하는 섹터들을 갖는 적어도 하나의 검사-데이터 프레임에 대해 에러 검사를 수행하는 단계를 포함하며, 여기서 검사-데이터 프레임에서의 섹터들 중 적어도 일부 섹터는 병합된 출력 데이터 프레임의 섹터들을 송신하는 복수의 데이터 경로들의 서브세트에서 송신되고, 여기서 에러 검사는 병합된 출력 데이터 프레임을 확인한다.

Description

하드웨어에서 데이터프레임 세그먼트들의 라인-레이트 병합을 제공하는 고성능 판독-수정-기록 시스템{HIGH PERFORMANCE READ-MODIFY-WRITE SYSTEM PROVIDING LINE-RATE MERGING OF DATAFRAME SEGMENTS IN HARDWARE}
본 개시물은 컴퓨터 시스템들을 위한 데이터 스토리지 시스템들에 관한 것이다. 좀더 구체적으로, 본 개시물은 데이터 수정 프로세스 중에 검출불가능한 데이터 에러들이 도입되지 않는 것을 보장하는 것에 관한 것이다.
데이터 스토리지 시스템들은 호스트 시스템의 데이터에 대한 스토리지를 제공한다. 솔리드-스테이트 스토리지 용량은 증가하며, 반도체 디바이스 피쳐들은 줄어들고 있다. 보다 작은 디바이스들은, 예를 들어, 알파-입자들에 의해 야기되는 "소프트" 에러들에 보다 민감하다. 이러한 소프트 에러들이 영구적인 디바이스 손상을 야기하지는 않으나, 그것들은 레지스터들 및 메모리들과 같은 디바이스들에 저장된 데이터에 오류를 일으킨다. CRC (cyclic redundancy codes) 와 같은 에러 검사 코드들이 CRC 가 계산된 데이터에 대해 데이터 에러가 일어났는지 여부를 결정하는데 이용된다.
본 발명의 개념의 양상들 및 피쳐들은 첨부 도면들을 참조하여 예시적인 실시형태들을 설명함으로써 보다 자명할 것이며, 여기서:
도 1a 및 도 1b 는 본 발명의 개념의 예시적인 실시형태들에 따른 판독-수정-기록 시스템을 도시하는 블록도들이다;
도 2 는 본 발명의 개념의 일 예시적인 실시형태들에 따른 판독-수정-기록 시스템의 세부사항들을 도시하는 개략적 도면이다;
도 3 은 본 발명의 개념의 일 예시적인 실시형태에 따른 병합 마스크를 이용한 제 1 데이터 프레임과 제 2 데이터 프레임의 병합의 방법을 도시하는 도면이다;
도 4 는 본 발명의 개념의 일 실시형태에 따른 병합된 출력 데이터 프레임을 생성하는 방법을 도시하는 플로차트이다;
도 5 는 본 발명의 개념의 일 예시적인 실시형태에 따른 병합 마스크에 기초하여 병합된 출력 데이터를 생성하는 방법을 도시하는 플로차트이다;
도 6 은 본 발명의 개념의 일 예시적인 실시형태에 따른 판독-수정-기록 동작들을 도시하는 플로 차트이다; 그리고
도 7 은 본 발명의 개념의 일 예시적인 실시형태에 따른 병합 동작들을 도시하는 플로차트이다.
소정의 실시형태들이 설명되었으나, 이러한 실시형태들은 단지 예로서 제시된 것이고 보호의 범위를 제한하려는 것은 아니다. 본원에 설명된 방법들 및 시스템들은 다양한 다른 형태들로 구체화될 수도 있다. 또한, 본원에 설명된 예시적인 방법들 및 시스템들의 형태에서 다양한 생략들, 대체들, 및 변화들이 보호의 범위를 벗어나지 않으면서 이루어질 수도 있다.
개관
솔리드 스테이드 드라이브 (solid state drive; SSD) 들이 컴퓨터 시스템들에 대한 데이터 스토리지 시스템들로서 사용된다. 데이터 스토리지 시스템의 일 메모리 위치에 저장된 데이터를 수정하기 위해, 메모리 위치를 판독하고 거기에 새로운 값을 기록하기 위해 판독-수정-기록 동작이 사용될 수도 있다. SSD 들의 스토리지 용량은 증가하나, SSD 들을 형성하는 반도체 디바이스들의 피쳐들 사이즈들은 감소한다. 보다 작은 디바이스 피쳐 사이즈들의 결과로, SSD 들은 판독-수정-기록 동작들 중에 데이터에 오류를 일으킬 수도 있는 소프트 에러들에 점점 더 민감하다.
시스템 개요
본 발명의 개념의 일부 실시형태들은 데이터 수정 프로세스 중에 검출가능하지 않은 데이터 에러들이 도입되지 않는 것을 보장하는 판독 수정 기록 시스템 및 방법들에 대한 것이다.
일 예시적인 실시형태에서, 판독-수정-기록 (Read-Modify-Write; RMW) 시스템은 2 개의 채널들을 통해 L-페이지 프레임들 (즉, 복수의 섹터들을 갖는 논리적 페이지 데이터 프레임들) 을 수신한다. RMW 시스템은 병합 마스크에 의해 결정된 바와 같은 유형들에 기초하여 수신된 프레임들에 대해 동작하여, 그전에 소프트웨어 프로세스들이었던 것에 대해 하드웨어 최적화를 적용한다. RMW 시스템은 프레임들에 걸쳐 온-더-플라이 (on-the-fly) 로 데이터 프레임 섹터들을 병합하고 병합 마스크에 기초하여 적절한 비트-수정들을 수행할 수 있다. RMW 시스템은 판독-수정-기록 동작들을 수행하는데 요구되는 펌웨어 사이클들을 최소화할 수도 있다.
도 1a 는 본 발명의 개념의 일 예시적인 실시형태에 따른 RMW 시스템을 도시하는 블록도이다. 도 1a 에 도시된 바와 같이, 판독-수정-기록 시스템 (100) 은 스토리지 (110), 입력 로직 (120), 복수의 다중화기들 (130), 제 1 로직 디바이스 (140), 및 제 2 로직 디바이스 (150) 를 포함하는 회로부를 포함한다. RMW 시스템 (100) 은 시스템 클록 (160) 에 동기화되고 시스템 클록 속도에 스케일러블할 수도 있다. 일 실시형태에서, 도 1a 는 판독-수정-기록 동작들을 처리할 시에 상당한 속도 향상을 제공하는 하드웨어-기반 접근법을 제공하며, 이는 오늘날 많은 데이터 스토리지 디바이스들에서의 높은 처리량 요구사항들을 충족시키는데 도움이 된다. 도 1b 에 도시된 바와 같이, 일 예시적인 실시형태에 따른 판독-수정-기록 시스템은 RMW 시스템의 적어도 일부 동작들을 제어하는 프로세서 (170) 를 더 포함할 수도 있다. 일 예시적인 실시형태에서, 프로세서 (170) 상에서 실행되는 펌웨어는 본원에서 설명된 로직 검사의 적어도 일부분을 제어할 것이다.
판독-수정-기록
동작 시에, 일 예시적인 실시형태에서, 스토리지 (110) 는 복수의 섹터들을 갖는 제 2 데이터 프레임이 데이터 포트 (122) 에서 수신될 때까지 복수의 섹터들을 갖는 제 1 데이터를 수신하여 스토리지 (110) 에 제 1 데이터 프레임을 저장한다. 제 2 데이터 프레임은 거의 시스템 클록 속도로 섹터에 의해 RMW 시스템 (100) 섹터를 통해 전달되어 스토리지 (110) 로부터 판독된 제 1 데이터 프레임과 병합된다. 제 1 및 제 2 데이터 프레임들은 제 1 로직 디바이스 (140) 에 의해 프로세싱되어 병합된 출력 데이터가 유효한지 여부를 결정한다.
도 2 는 본 발명의 개념의 일 예시적인 실시형태들에 따른 판독-수정-기록 시스템의 세부사항들을 도시하는 개략적 도면이다. 도 2 를 참조하면, 입력 로직 (120) 은 제 1 및 제 2 데이터 프레임들을 수신하고 각각의 데이터 프레임의 헤더들에 포함된 CRC 들을 확인한다. CRC 들이 본 개시물에서의 예시적인 실시형태들에서 언급되었으나, 다른 에러 검출 메커니즘들, 예를 들어, 이로 제한되지는 않으나, 검사합계들 및 해시 함수들 등의 이용이 일부 실시형태들에서는 가능하다는 것이 유의되어야 한다. 제 1 및 제 2 데이터 프레임들은 시스템 클록 (160) 과 동기화되어 입력 로직 (120) 으로부터 다중화기 (130) 로 섹터 단위로 (sector by sector) 전송되며, 여기서 제 1 및 제 2 데이터 프레임들의 섹터들은 병합 마스크에 기초하여 시스템 클록 속도와 거의 동일한 속도로 병합된다.
도 3 은 본 발명의 개념의 일 예시적인 실시형태에 따른 병합 마스크를 이용한 제 1 데이터 프레임과 제 2 데이터 프레임의 병합을 도시하는 도면이다. 도 3 의 예시적인 도면에서, 병합 마스크는 제 2 데이터 프레임에 대하여 "1" 을 갖는 출력 데이터 프레임에 병합될 섹터 및 "0" 을 갖는 폐기될 섹터를 나타내고, 제 1 데이터 프레임에 대하여 "0" 을 갖는 출력 데이터 프레임에 병합될 섹터 및 "1" 을 갖는 폐기될 섹터를 나타낸다. 지정들 "1" 및 "0" 은 단지 예일 뿐이고 본 발명의 개념의 범위로부터 벗어나지 않으면서 다른 지정들이 가능하다는 것을 당업자는 이해할 것이다.
도 3 을 참조하면, 병합 마스크 (370) 는 (폐기될 섹터들 (320) 로 도시된) 폐기될 제 1 데이터 프레임 (310) 의 섹터들 대신에 제 1 데이터 프레임 (310) 의 섹터들과 병합될 제 2 데이터 프레임 (340) 의 섹터들을 명시한다. 병합 마스크 (370) 에 의해 출력 데이터 프레임에 병합될 것으로 명시되지 않은 제 2 데이터 프레임 (340) 의 섹터들은 폐기되는데 반해 (폐기될 섹터들 (350) 로 도시됨), 병합 마스크 (370) 에 의해 출력 데이터 프레임에 병합될 것으로 명시된 제 2 데이터 프레임 (340) 의 섹터들 (병합될 섹터들 (360) 로 도시됨) 은 제 1 데이터 프레임 (310) 과 병합되어 병합된 출력 데이터 프레임 (380) 을 생성한다. 반대로, 병합 마스크 (370) 에 의해 출력 데이터 프레임에 병합될 것으로 명시되지 않은 제 1 데이터 프레임 (310) 의 섹터들은 폐기되는데 반해 (폐기될 섹터들 (320) 로 도시됨), 병합 마스크 (370) 에 의해 출력 데이터 프레임에 병합될 것으로 명시된 제 1 데이터 프레임 (310) 의 섹터들 (병합될 섹터들 (330) 로 도시됨) 은 제 2 데이터 프레임 (340) 의 섹터들 (360) 과 병합되어 병합된 출력 데이터 프레임 (380) 을 생성한다. 다시 말해, 병합 마스크에 의해 명시된 제 1 데이터 프레임의 섹터들은 병합된 출력 데이터 프레임을 생성하기 위해 제 2 데이터 프레임의 대응하는 섹터들에 의해 대체되고, 제 1 및 제 2 데이터 프레임들의 이용되지 않은 섹터들은 폐기된다.
위의 병합 동작이 제 1 데이터 프레임의 섹터들과 병합될 수도 있는 명시된 제 2 데이터 프레임의 섹터들의 면에서 설명되나, 본 발명의 개념들의 범위는 명시된 제 1 데이터 프레임의 섹터들을 제 2 데이터 프레임의 섹터들과 병합하는 것을 또한 포함한다는 것을 당업자는 이해할 것이다. 또한, 도 3 에서와 같이 도시되긴 하였으나, 제 1 데이터 프레임 및 제 2 데이터 프레임의 복수의 섹터들에서의 섹터들의 개수는 동일하지 않을 수도 있다.
도 2 를 다시 참조하면, 일 예시적인 실시형태에서, 제 2 데이터 프레임의 각각의 섹터는 시스템 클록과 동기화하여 섹터 단위로 제 1 다중화기 (5) 에 전송된다. 일 예시적인 실시형태에서, 제 1 다중화기 (5) 는 제 2 데이터 프레임의 각각의 섹터를 제 2 다중화기 (6) 및 병합 다중화기 (8) 로 송신한다. 동시에, 제 1 데이터 프레임은 제 3 다중화기 (4) 로 송신된다. 일 예시적인 실시형태에서, 제 3 다중화기 (4) 는 제 1 데이터 프레임의 각각의 섹터를 제 4 다중화기 (15) 및 병합 다중화기 (8) 로 송신한다. 병합 다중화기 (8) 는 출력 데이터 프레임에 병합될 제 1 또는 제 2 데이터 프레임으로부터 섹터를 선택하도록 병합 마스크에 의해 제어된다.
일 예시적인 실시형태에서, 병합 마스크에 의해 선택된 제 1 또는 제 2 데이터 프레임으로부터의 섹터는 병합된 출력 데이터 프레임의 섹터로서 병합 다중화기 (8) 에 의해 출력되고, 또한 병합 다중화기 (8) 의 출력으로부터 제 2 로직 디바이스 (150) 로 송신된다. 제 2 로직 디바이스 (150) 는 병합된 출력 데이터 프레임에 대한 CRC 를 계산하고 누산한다. 병합된 출력 데이터 프레임의 각각의 섹터는 섹터 단위 기준 (sector by sector basis) 으로 출력 다중화기 (17) 에 의해 RMW 시스템 (100) 으로부터 출력된다. 병합된 출력 데이터 프레임의 생성은 시스템 클록 속도와 거의 동일한 속도로 수행된다.
일 예시적인 실시형태에서, 제 2 다중화기 (6) 및 제 4 다중화기 (15) 는 출력 데이터 프레임에 병합될 섹터 또는 폐기되는 섹터를 선택하고, 제 1 로직 디바이스 (140) 로 선텍되거나 폐기된 섹터를 송신한다. 예를 들어, 병합 마스크가 병합 다중화기 (8) 로 하여금 제 1 데이터 프레임으로부터의 섹터를 선택하게 하는 경우, 제 2 데이터 프레임으로부터의 대응하는 섹터는 폐기된다. 병합 다중화기 (8) 는 제 1 데이터 프레임으로부터 선택된 섹터를 출력 다중화기 (17) 로 송신하고, 출력 다중화기 (17) 는 제 1 데이터 프레임으로부터 선택된 섹터를 병합된 출력 데이터 프레임의 섹터로서 출력하고, 또한 제 1 데이터 프레임으로부터 선택된 섹터를 제 4 다중화기 (15) 로 송신한다. 제 4 다중화기 (15) 는 제 1 데이터 프레임으로부터 선택된 섹터를 선택하고 그것을 제 1 로직 디바이스 (140) 로 송신한다. 동시에, 제 2 데이터 프레임의 폐기된 섹터는 제 2 다중화기 (6) 로부터 제 1 로직 디바이스 (140) 로 송신된다.
일 예시적인 실시형태에서, 제 1 로직 디바이스 (140) 는 제 1 및 제 2 데이터 프레임들을 각각 제 1 및 제 2 검사-데이터 프레임들로 재구성하고, 검사-데이터 프레임들의 CRC 들은 섹터 단위 기준으로 제 1 로직 디바이스 (140) 에 의해 계산되고 누산된다. 제 1 검사-데이터 프레임은 출력 데이터 프레임에 병합되는 제 1 데이터 프레임의 섹터들이 송신되는 데이터 경로들의 서브세트와 상이한 데이터 경로들의 제 1 서브세트에서 송신되는 섹터들을 포함할 수도 있고, 제 2 검사-데이터 프레임은 출력 데이터 프레임에 병합되는 제 2 데이터 프레임의 섹터들이 송신되는 데이터 경로들의 서브세트와 상이한 데이터 경로들의 제 2 서브세트에서 송신되는 섹터들을 포함할 수도 있다.
제 1 및 제 2 데이터 프레임들의 마지막 섹터를 프로세싱한 후에, 제 1 데이터 프레임의 CRC 는 제 3 다중화기 (4) 및 제 4 다중화기 (15) 를 통해 제 1 로직 디바이스 (140) 로 송신된다. 동시에, 제 2 데이터 프레임의 CRC 는 제 1 다중화기 (5) 및 제 2 다중화기 (6) 를 통해 제 1 로직 디바이스 (140) 로 송신된다.
일 예시적인 실시형태에서, 제 1 로직 디바이스 (140) 는 제 1 데이터 프레임의 송신된 CRC 를 제 1 검사-데이터 프레임에 대해 계산된 CRC 와 비교함으로써 에러 검사를 수행하고, 제 2 데이터 프레임의 송신된 CRC 를 제 2 검사-데이터 프레임에 대해 계산된 CRC 와 비교한다. 수신된 데이터 프레임 CRC 들이 검사-데이터 프레임들의 CRC 들과 매칭하는 경우, 병합된 출력 데이터 프레임의 섹터들이 검사-데이터 프레임들의 섹터들과 동일한 로직을 통과했고 에러들이 도입되지 않았기 때문에 병합된 출력 데이터 프레임은 유효할 것이다. CRC 들이 매칭하지 않는 경우, 병합된 출력 데이터 프레임이 유효하지 않다는 것을 나타내는 메시지가 생성된다. 유효성은, 검사-데이터 프레임에서의 섹터들 중 적어도 일부 섹터가 병합된 출력 데이터 프레임의 섹터들을 또한 송신하는 복수의 데이터 경로들의 서브세트에서 송신되기 때문에, 적어도 하나의 검사-데이터 프레임의 에러 검사가 병합된 출력 데이터 프레임을 확인하는 방식으로 확인된다. 검사-데이터 프레임 CRC 의 계산의 일부로서 실제 병합된 데이터 프레임으로부터의 출력 데이터의 이용은 프레임 병합 메커니즘의 경로를 따라 도입되는 임의의 에러가 검출되는 것을 보장한다.
병합된 출력 데이터 프레임의 생성과 동시에, 제 2 로직 디바이스 (150) 는 섹터 단위 기준으로 병합된 출력 데이터 프레임에 대한 CRC 를 생성한다. 병합된 출력 데이터 프레임의 마지막 섹터가 출력된 후에, 제 2 로직 디바이스 (150) 에 의해 생성된 병합된 출력 데이터 프레임에 대한 CRC 는 출력 다중화기 (17) 에 의해 선택되고 출력된다.
도 4 는 본 발명의 개념의 일 예시적인 실시형태에 따른 병합된 출력 데이터 프레임을 생성하는 방법을 도시하는 플로차트이다. 도 4 를 참조하면, 복수의 섹터들을 포함하는 제 1 데이터 프레임이 RMW 시스템에 의해 수신된다 (410). 제 1 데이터 프레임은 휘발성 또는 비휘발성 메모리와 같은 데이터 스토리지에 저장될 수도 있다. 복수의 섹터들을 포함하는 제 2 데이터 프레임이 RMW 시스템에 의해 수신된다 (420). 제 2 데이터 프레임은, 예를 들어, 데이터 스토리지에 기록될 호스트 시스템으로부터의 새로운 데이터를 포함할 수도 있다. 제 1 및 제 2 데이터 프레임들의 섹터들은 복수의 데이터 경로들 및 다중화기들을 통해 병합되어 병합된 출력 데이터 프레임을 생성한다 (430). 또한, 병합된 출력 데이터 프레임에 대한 CRC 는 병합된 출력 데이터 프레임을 생성하기 위해 병합된 제 1 및 제 2 데이터 프레임 섹터들의 CRC 데이터를 섹터 단위 기준으로 계산하고 누산함으로써 생성된다 (440).
제 1 및 제 2 데이터 프레임들 중 적어도 하나의 데이터 프레임의 섹터들은 병합된 출력 데이터가 생성됨에 따라 검사-데이터 프레임으로 재구성된다 (450). 대안으로, 제 1 및 제 2 데이터 프레임들 양자 모두가 병합된 출력 데이터가 생성됨에 따라 검사-데이터 프레임들로 재구성된다. CRC 는 검사-데이터 프레임에 대해 섹터 단위 기준으로 계산되고 누산되고, 제 1 데이터 프레임 또는 제 2 데이터 프레임의 섹터들에 대응하는 섹터들을 포함하는 적어도 하나의 검사-데이터 프레임에 대해 에러 검사가 수행되어 병합된 출력 데이터 프레임의 대응하는 섹터들을 확인한다 (460). 검사-데이터 프레임에서의 섹터들 중 적어도 일부 섹터가 병합된 출력 데이터 프레임의 섹터들을 송신하는 복수의 데이터 경로들의 서브세트에서 송신되기 때문에, 적어도 하나의 검사-데이터 프레임의 에러 검사는 병합된 출력 데이터 프레임에서의 적어도 하나의 검사-데이터 프레임으로부터의 섹터들을 확인한다. 일 예시적인 실시형태에서, 검사-데이터 프레임들 양자 모두의 에러 검사는 병합된 출력 데이터 프레임에서의 제 1 및 제 2 검사-데이터 프레임들의 섹터들을 확인한다.
도 5 는 본 발명의 개념의 일 예시적인 실시형태에 따른 병합 마스크에 기초하여 병합된 출력 데이터 프레임을 생성하는 방법을 도시하는 플로차트이다. 도 5 를 참조하면, 복수의 섹터들을 포함하는 제 1 데이터 프레임이 RMW 시스템에 의해 수신된다 (510). 제 1 데이터 프레임은 휘발성 또는 비휘발성 메모리와 같은 데이터 스토리지에 저장될 수도 있다. 복수의 섹터들을 포함하는 제 2 데이터 프레임이 RMW 시스템에 의해 수신된다 (520).
병합될 제 1 및 제 2 데이터 프레임들의 섹터들을 명시하는 병합 마스크가 수신된다 (530). 병합 마스크는 제 1 및 제 2 데이터 프레임들의 어느 섹터들이 출력 데이터 프레임의 각각의 섹터를 점유하는지를 명시한다. 병합 마스크는 제 1 수신된 데이터 프레임의 일부로서 또는 제 2 수신된 데이터 프레임의 일부로서 수신될 수도 있다. 대안으로, 병합 마스크는 수신된 데이터 프레임들과 관계 없이 수신될 수도 있다. 병합된 출력 데이터 프레임은 병합 마스크에 기초하여 제 1 및 제 2 데이터 프레임들로부터 선택된 섹터들을 병합함으로써 생성된다 (540).
도 6 은 본 발명의 개념의 일 예시적인 실시형태에 따른 판독-수정-기록 동작들을 도시하는 플로 차트이다. 도 6 을 참조하면, 판독-데이터 프레임을 수신하기 위한 섹터들을 포함하는 기록-데이터 프레임이 수신될 때까지 (610), 수정될 판독-데이터 프레임이 RMW 시스템의 외부에 있는 메모리로부터 입력되고 내부 스토리지에 저장된다 (605). 판독-데이터 프레임 및 기록-데이터 프레임의 각각은 복수의 섹터들을 갖는다. 판독-데이터 프레임 및 기록-데이터 프레임의 복수의 섹터들에서 섹터들의 개수는 동일하지 않을 수도 있다.
병합 마스크가 수신되고 (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 가 원래 수신된 데이터 프레임들의 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 을 참조하여 설명된 예들이 판독-데이터 프레임 및 기록-데이터 프레임의 면에서 설명되었으나, 본 발명의 개념은 판독-데이터 프레임 및 기록-데이터 프레임의 어느 하나에 대응할 수도 있는, 제 1 데이터 프레임 및 제 2 데이터 프레임으로 일반화될 수도 있다는 것을 당업자는 이해할 것이다.
또한, 본 발명의 개념의 동작들은 설명된 순서대로, 상이한 순서로 수행될 수도 있거나, 동작들은 결합될 수도 있다. 앞서의 프로세스는 예시이고 본 발명의 개념으로부터 벗어나지 않으면서 다양한 변형들이 가능하다는 것을 당업자는 이해할 것이다.
소정의 실시형태들이 설명되었으나, 이러한 실시형태들은 단지 예로서 제시된 것이고 보호의 범위를 제한하려는 것은 아니다. 본원에 설명된 방법들 및 시스템들은 다양한 다른 형태들로 구체화될 수도 있다. 본원에 설명된 예시적인 방법들 및 시스템들의 형태에서 다양한 생략들, 대체들, 및 변화들이 보호의 범위를 벗어나지 않으면서 이루어질 수도 있다.
첨부되는 청구항들 및 그의 등가물들은 보호의 범이 및 사상 내에 속할 그러한 형태들 및 수정들을 커버하고자 한다. 예를 들어, 본원에 개시된 예시적인 시스템들 및 방법들은 솔리드-스테이트 드라이브들, 하드 디스크 드라이브들, 하이브리드 하드 드라이브 등에 적용될 수 있다. 또한, 다른 형태의 스토리지, 예를 들어, 이로 제한되지는 않으나, DRAM 혹은 SRAM, 배터리 백-업 휘발성 DRAM 또는 SRAM 디바이스들, EPROM, EEPROM 메모리 등이 추가적으로 또는 대안적으로 이용될 수도 있다. 다른 예로서, 도면들에 도시된 다양한 컴포넌트들은 프로세서, ASIC/FPGA, 또는 전용 하드웨어 상에 소프트웨어 및/또는 하드웨어로 구현될 수도 있다. 또한, 위에서 개시된 특정 예시적인 실시형태들의 피쳐들 및 속성들은 상이한 방식들로 결합되어 추가적인 실시형태들을 형성할 수도 있으며, 그 모두는 본 개시물의 범위 내에 속한다.
본 개시물이 소정의 예시적인 실시형태들 및 응용들을 제공하기는 하나, 본원에서 제시된 피쳐들 및 이점들의 모두를 제공하지는 않는 실시형태들을 포함하여, 당업자들에게 자명한 다른 실시형태들이 또한 본 개시물의 범위 내에 있다. 이에 따라, 본 개시물의 범위는 오직 첨부된 청구항들만을 참조하여 정의되고자 한다.

Claims (35)

  1. 데이터 프레임들을 병합하는 방법으로서,
    복수의 섹터들을 포함하는 제 1 데이터 프레임을 수신하는 단계;
    복수의 섹터들을 포함하는 제 2 데이터 프레임을 수신하는 단계;
    복수의 다중화기들을 포함하는 복수의 데이터 경로들을 이용하여, 상기 제 2 데이터 프레임의 섹터들을 상기 제 1 데이터 프레임의 섹터들과 병합함으로써 병합된 출력 데이터 프레임을 생성하는 단계; 및
    상기 제 1 데이터 프레임 또는 상기 제 2 데이터 프레임에서의 섹터들에 대응하는 섹터들을 포함하는 적어도 하나의 검사-데이터 프레임에 대해 에러 검사를 수행하는 단계를 포함하고,
    상기 검사-데이터 프레임에서의 섹터들 중 적어도 일부 섹터는 상기 병합된 출력 데이터 프레임의 섹터들을 송신하는 상기 복수의 데이터 경로들의 서브세트에서 송신되며,
    상기 에러 검사는 상기 병합된 출력 데이터 프레임을 확인(verify)하는 것인, 데이터 프레임들을 병합하는 방법.
  2. 제 1 항에 있어서,
    상기 에러 검사를 수행하는 단계는,
    2 개의 검사-데이터 프레임들에 대해 에러 검사를 수행하는 단계를 더 포함하고,
    상기 2 개의 검사-데이터 프레임들은,
    상기 제 1 데이터 프레임에서의 섹터들에 대응하는 섹터들을 포함하는 제 1 검사-데이터 프레임; 및
    상기 제 2 데이터 프레임에서의 섹터들에 대응하는 섹터들을 포함하는 제 2 검사-데이터 프레임을 포함하는 것인, 데이터 프레임들을 병합하는 방법.
  3. 제 2 항에 있어서,
    상기 제 1 검사-데이터 프레임 및 상기 제 2 검사-데이터 프레임은, 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임의 어느 섹터들이 상기 출력 데이터 프레임에 병합될지를 나타내는 병합 마스크에 기초하여, 상기 복수의 다중화기들 중 선택된 다중화기들을 통해 섹터들이 송신된 후에, 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임에 대응하는 상기 제 1 검사-데이터 프레임 및 상기 제 2 검사-데이터 프레임의 각각의 섹터들로 재구성되는 것인, 데이터 프레임들을 병합하는 방법.
  4. 제 2 항에 있어서,
    상기 에러 검사를 수행하는 단계는,
    상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임의 CRC (cyclic redundancy code) 들을 각각 상기 제 1 검사-데이터 프레임 및 상기 제 2 검사-데이터 프레임에 대해 생성된 CRC 들과 비교하는 단계; 및
    CRC 비교 중 어느 것이 매칭하지 않는 경우, 상기 병합된 출력 데이터 프레임이 유효하지 않음을 나타내는 메시지를 생성하는 단계를 더 포함하는 것인, 데이터 프레임들을 병합하는 방법.
  5. 제 4 항에 있어서,
    상기 제 1 검사-데이터 프레임의 CRC 는 섹터 단위 기준으로 상기 제 1 검사-데이터 프레임의 CRC 데이터를 누산함으로써 생성되고, 상기 제 2 검사-데이터 프레임의 CRC 는 섹터 단위 기준으로 상기 제 2 검사-데이터 프레임의 CRC 데이터를 누산함으로써 생성되는 것인, 데이터 프레임들을 병합하는 방법.
  6. 제 2 항에 있어서,
    상기 병합된 출력 데이터 프레임에서의 각각의 섹터는 상기 제 1 검사-데이터 프레임 또는 상기 제 2 검사-데이터 프레임 중 어느 일방에 있는 것인, 데이터 프레임들을 병합하는 방법.
  7. 제 2 항에 있어서,
    상기 제 1 검사-데이터 프레임은, 상기 출력 데이터 프레임에 병합된 상기 제 1 데이터 프레임의 섹터들이 송신되는 데이터 경로들의 서브세트와 상이한 데이터 경로들의 제 1 서브세트에서 송신되는 섹터들을 더 포함하고,
    상기 제 2 검사-데이터 프레임은, 상기 출력 데이터 프레임에 병합된 상기 제 2 데이터 프레임의 섹터들이 송신되는 데이터 경로들의 서브세트와 상이한 데이터 경로들의 제 2 서브세트에서 송신되는 섹터들을 더 포함하는 것인, 데이터 프레임들을 병합하는 방법.
  8. 제 1 항에 있어서,
    상기 적어도 하나의 검사-데이터 프레임은, 상기 병합된 출력 데이터 프레임의 섹터들이 송신되는 데이터 경로들의 서브세트와 상이한 데이터 경로들의 서브세트에서 송신되는 섹터들을 더 포함하는 것인, 데이터 프레임들을 병합하는 방법.
  9. 제 1 항에 있어서,
    상기 출력 데이터 프레임에 병합될 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임 중 적어도 하나의 데이터 프레임의 섹터들은 병합 마스크에 의해 명시되는 것인, 데이터 프레임들을 병합하는 방법.
  10. 제 9 항에 있어서,
    상기 병합 마스크는 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임의 어느 섹터들이 상기 출력 데이터 프레임의 각각의 섹터를 점유하는지를 명시하는 것인, 데이터 프레임들을 병합하는 방법.
  11. 제 1 항에 있어서,
    상기 병합된 출력 데이터 프레임이 생성됨에 따라 상기 적어도 하나의 검사-데이터 프레임을 재구성하는 단계를 더 포함하는, 데이터 프레임들을 병합하는 방법.
  12. 제 1 항에 있어서,
    섹터 단위 기준으로 상기 출력 데이터 프레임에 병합된 섹터들의 CRC (cyclic redundancy code) 데이터를 누산함으로써 상기 병합된 출력 데이터 프레임에 대한 CRC 를 생성하는 단계를 더 포함하는, 데이터 프레임들을 병합하는 방법.
  13. 데이터 프레임들을 병합하기 위한 장치로서,
    복수의 섹터들을 포함하는 제 1 데이터 프레임 및 복수의 섹터들을 포함하는 제 2 데이터 프레임을 수신하도록 구성된 하나 이상의 디바이스; 및
    복수의 다중화기들을 포함하는 복수의 데이터 경로들을 포함하는 회로를 포함하고,
    상기 회로는,
    상기 복수의 데이터 경로들을 이용하여, 상기 제 2 데이터 프레임의 섹터들을 상기 제 1 데이터 프레임의 섹터들과 병합함으로써 병합된 출력 데이터 프레임을 생성하고,
    상기 제 1 데이터 프레임 또는 상기 제 2 데이터 프레임에서의 섹터들에 대응하는 섹터들을 포함하는 적어도 하나의 검사-데이터 프레임에 대해 에러 검사를 수행하도록 구성되며,
    상기 검사-데이터 프레임에서의 섹터들 중 적어도 일부 섹터는 상기 병합된 출력 데이터 프레임의 섹터들을 송신하는 상기 복수의 데이터 경로들의 서브세트에서 송신되고,
    상기 에러 검사는 상기 병합된 출력 데이터 프레임을 확인하는 것인, 데이터 프레임들을 병합하기 위한 장치.
  14. 제 13 항에 있어서,
    상기 하나 이상의 디바이스는,
    상기 제 1 데이터 프레임을 저장하도록 구성된 스토리지; 및
    상기 제 2 데이터 프레임을 수신하도록 구성된 데이터 포트를 더 포함하는, 데이터 프레임들을 병합하기 위한 장치.
  15. 제 13 항에 있어서,
    상기 회로는 또한,
    2 개의 검사-데이터 프레임들에 대해 에러 검사를 적어도 수행함으로써 상기 에러 검사를 수행하도록 구성되고,
    상기 2 개의 검사-데이터 프레임들은,
    상기 제 1 데이터 프레임에서의 섹터들에 대응하는 섹터들을 포함하는 제 1 검사-데이터 프레임; 및
    상기 제 2 데이터 프레임에서의 섹터들에 대응하는 섹터들을 포함하는 제 2 검사-데이터 프레임을 포함하는 것인, 데이터 프레임들을 병합하기 위한 장치.
  16. 제 15 항에 있어서,
    상기 제 1 검사-데이터 프레임 및 상기 제 2 검사-데이터 프레임은, 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임의 어느 섹터들이 상기 출력 데이터 프레임에 병합될지를 나타내는 병합 마스크에 기초하여, 상기 복수의 다중화기들 중 선택된 다중화기들을 통해 섹터들이 송신된 후에, 적어도 하나의 제 1 로직 디바이스에 의해 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임에 대응하는 상기 제 1 검사-데이터 프레임 및 상기 제 2 검사-데이터 프레임의 각각의 섹터들로 재구성되는 것인, 데이터 프레임들을 병합하기 위한 장치.
  17. 제 16 항에 있어서,
    상기 적어도 하나의 제 1 로직 디바이스는,
    상기 제 1 데이터 프레임의 CRC (cyclic redundancy code) 를 상기 제 1 검사-데이터 프레임에 대해 생성된 CRC 와 비교하고;
    상기 제 2 데이터 프레임의 CRC 를 상기 제 2 검사-데이터 프레임에 대해 생성된 CRC 와 비교하며;
    CRC 비교 중 어느 것이 매칭하지 않는 경우, 상기 병합된 출력 데이터 프레임이 유효하지 않음을 나타내는 메시지를 생성하도록 구성되는 것인, 데이터 프레임들을 병합하기 위한 장치.
  18. 제 17 항에 있어서,
    상기 적어도 하나의 제 1 로직 디바이스는 또한,
    섹터 단위 기준으로 상기 제 1 검사-데이터 프레임의 CRC 데이터를 누산함으로써 상기 제 1 검사-데이터 프레임의 CRC 를 생성하고;
    섹터 단위 기준으로 상기 제 2 검사-데이터 프레임의 CRC 데이터를 누산함으로써 상기 제 2 검사-데이터 프레임의 CRC 를 생성하도록 구성되는 것인, 데이터 프레임들을 병합하기 위한 장치.
  19. 제 15 항에 있어서,
    상기 병합된 출력 데이터 프레임에서의 각각의 섹터는 상기 제 1 검사-데이터 프레임 또는 상기 제 2 검사-데이터 프레임 중 어느 일방에 있는 것인, 데이터 프레임들을 병합하기 위한 장치.
  20. 제 15 항에 있어서,
    상기 제 1 검사-데이터 프레임은, 상기 출력 데이터 프레임에 병합된 상기 제 1 데이터 프레임의 섹터들이 송신되는 데이터 경로들의 서브세트와 상이한 데이터 경로들의 제 1 서브세트에서 송신되는 섹터들을 더 포함하고,
    상기 제 2 검사-데이터 프레임은, 상기 출력 데이터 프레임에 병합된 상기 제 2 데이터 프레임의 섹터들이 송신되는 데이터 경로들의 서브세트와 상이한 데이터 경로들의 제 2 서브세트에서 송신되는 섹터들을 더 포함하는 것인, 데이터 프레임들을 병합하기 위한 장치.
  21. 제 13 항에 있어서,
    상기 적어도 하나의 검사-데이터 프레임은, 상기 병합된 출력 데이터 프레임의 섹터들이 송신되는 데이터 경로들의 서브세트와 상이한 데이터 경로들의 서브세트에서 송신되는 섹터들을 더 포함하는 것인, 데이터 프레임들을 병합하기 위한 장치.
  22. 제 13 항에 있어서,
    상기 출력 데이터 프레임에 병합될 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임 중 적어도 하나의 데이터 프레임의 섹터들은 병합 마스크에 의해 명시되는 것인, 데이터 프레임들을 병합하기 위한 장치.
  23. 제 22 항에 있어서,
    상기 병합 마스크는 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임의 어느 섹터들이 상기 출력 데이터 프레임의 각각의 섹터를 점유하는지를 명시하는 것인, 데이터 프레임들을 병합하기 위한 장치.
  24. 제 22 항에 있어서,
    상기 병합 마스크는 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임 중 하나의 데이터 프레임에 포함되는 것인, 데이터 프레임들을 병합하기 위한 장치.
  25. 제 22 항에 있어서,
    상기 병합 마스크는 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임과 별도로 수신되는 것인, 데이터 프레임들을 병합하기 위한 장치.
  26. 제 13 항에 있어서,
    상기 병합된 출력 데이터 프레임이 생성됨에 따라 상기 적어도 하나의 검사-데이터 프레임을 재구성하도록 구성된 적어도 하나의 제 1 로직 디바이스를 더 포함하는, 데이터 프레임들을 병합하기 위한 장치.
  27. 제 13 항에 있어서,
    섹터 단위 기준으로 상기 출력 데이터 프레임에 병합된 섹터들의 CRC (cyclic redundancy code) 데이터를 누산함으로써 상기 병합된 출력 데이터 프레임에 대한 CRC 를 생성하도록 구성된 제 2 로직 디바이스를 더 포함하는, 데이터 프레임들을 병합하기 위한 장치.
  28. 제 13 항에 있어서,
    상기 회로는 프로세서를 더 포함하고, 상기 병합된 출력 데이터 프레임을 생성하는 것 및 상기 에러 검사를 수행하는 것은 상기 프로세서의 제어 하에 수행되는 것인, 데이터 프레임들을 병합하기 위한 장치.
  29. 데이터 프레임들을 병합하는 방법으로서,
    복수의 섹터들을 포함하는 제 1 데이터 프레임을 수신하는 단계;
    복수의 섹터들을 포함하는 제 2 데이터 프레임을 수신하는 단계;
    상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임에 기초하여 병합된 출력 데이터 프레임을 생성하는 단계로서, 상기 생성하는 단계는, 상기 병합된 출력 데이터 프레임에서의 각각의 주소 슬롯에 대해, 병합 마스크에 기초하여 상기 제 1 데이터 프레임 또는 상기 제 2 데이터 프레임 중 어느 일방으로부터 섹터를 선택하는 단계를 포함하는 것인, 상기 병합된 출력 데이터 프레임을 생성하는 단계; 및
    상기 제 1 데이터 프레임 또는 상기 제 2 데이터 프레임에서의 섹터들에 대응하는 섹터들을 포함하는 적어도 하나의 검사-데이터 프레임에 대해 에러 검사를 수행하는 단계를 포함하는, 데이터 프레임들을 병합하는 방법.
  30. 제 29 항에 있어서,
    상기 병합 마스크는 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임 중 하나의 데이터 프레임에 포함되는 것인, 데이터 프레임들을 병합하는 방법.
  31. 제 29 항에 있어서,
    상기 병합 마스크는 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임과 별도로 수신되는 것인, 데이터 프레임들을 병합하는 방법.
  32. 데이터 프레임들을 병합하기 위한 장치로서,
    복수의 섹터들을 포함하는 제 1 데이터 프레임을 수신하도록 구성된 제 1 회로;
    복수의 섹터들을 포함하는 제 2 데이터 프레임을 수신하도록 구성된 제 2 회로;
    상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임에 기초하여 병합된 출력 데이터 프레임을 생성하도록 구성된 복수의 데이터 경로들로서, 상기 생성하는 것은, 상기 병합된 출력 데이터 프레임에서의 각각의 주소 슬롯에 대해, 병합 마스크에 기초하여 상기 제 1 데이터 프레임 또는 상기 제 2 데이터 프레임 중 어느 일방으로부터 섹터를 선택하는 것을 포함하는 것인, 상기 복수의 데이터 경로들; 및
    상기 제 1 데이터 프레임 또는 상기 제 2 데이터 프레임에서의 섹터들에 대응하는 섹터들을 포함하는 적어도 하나의 검사-데이터 프레임에 대해 에러 검사를 수행하도록 구성된 제 3 회로를 포함하는, 데이터 프레임들을 병합하기 위한 장치.
  33. 제 32 항에 있어서,
    상기 제 1 회로는 상기 제 1 데이터 프레임을 저장하도록 구성된 스토리지를 포함하고,
    상기 제 2 회로는 상기 제 2 데이터 프레임을 수신하도록 구성된 데이터 포트를 포함하는 것인, 데이터 프레임들을 병합하기 위한 장치.
  34. 제 32 항에 있어서,
    상기 병합 마스크는 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임 중 하나의 데이터 프레임에 포함되는 것인, 데이터 프레임들을 병합하기 위한 장치.
  35. 제 32 항에 있어서,
    상기 병합 마스크는 상기 제 1 데이터 프레임 및 상기 제 2 데이터 프레임과 별도로 수신되는 것인, 데이터 프레임들을 병합하기 위한 장치.
KR1020157035512A 2013-05-16 2014-05-16 하드웨어에서 데이터프레임 세그먼트들의 라인-레이트 병합을 제공하는 고성능 판독-수정-기록 시스템 KR101915351B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/895,928 2013-05-16
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
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
KR20160008631A KR20160008631A (ko) 2016-01-22
KR101915351B1 true KR101915351B1 (ko) 2018-11-05

Family

ID=51896818

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157035512A KR101915351B1 (ko) 2013-05-16 2014-05-16 하드웨어에서 데이터프레임 세그먼트들의 라인-레이트 병합을 제공하는 고성능 판독-수정-기록 시스템

Country Status (8)

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

Families Citing this family (5)

* 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 青岛海尔空调电子有限公司 室外机运行参数自动匹配新装室内机的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090319877A1 (en) 2008-06-18 2009-12-24 Intel Corporation Systems, methods, and apparatuses to transfer data and data mask bits in a common frame with a shared error bit code
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 (105)

* 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
US5477541A (en) 1989-09-29 1995-12-19 White; Richard E. Addressing technique for storing and referencing packet data
DE69320321T2 (de) 1993-02-05 1998-12-24 Hewlett Packard Co Verfahren und Gerät zum Nachprüfen von CRC-Koden, wobei CRC Teilkode kombiniert werden
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
US7363442B2 (en) * 2004-11-12 2008-04-22 International Business Machines Corporation Separate handling of read and write of read-modify-write
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
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
US7447807B1 (en) 2006-06-30 2008-11-04 Siliconsystems, Inc. Systems and methods for storing data in segments of a storage subsystem
US7509441B1 (en) 2006-06-30 2009-03-24 Siliconsystems, Inc. Systems and methods for segmenting and protecting 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
US7685338B2 (en) 2007-05-24 2010-03-23 Siliconsystems, Inc. Solid state storage subsystem for embedded applications
US7685337B2 (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
CN101335764B (zh) * 2008-07-15 2011-12-21 上海华为技术有限公司 合成复帧、解析复帧的方法、装置及复帧处理系统
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
US8135903B1 (en) 2009-10-30 2012-03-13 Western Digital Technologies, Inc. Non-volatile semiconductor memory compressing data to improve performance
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
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
CN102143185B (zh) * 2011-03-31 2015-11-25 北京经纬恒润科技有限公司 数据传输方法和数据传输装置
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
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
US8423722B1 (en) 2011-08-26 2013-04-16 Western Digital Technologies, Inc. System and method for high performance command processing in solid state drives
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
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting 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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090319877A1 (en) 2008-06-18 2009-12-24 Intel Corporation Systems, methods, and apparatuses to transfer data and data mask bits in a common frame with a shared error bit code
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
WO2014186779A1 (en) 2014-11-20
US9081700B2 (en) 2015-07-14
AU2014265183B2 (en) 2019-01-03
CN105247488A (zh) 2016-01-13
AU2014265183A1 (en) 2015-12-17
DE112014002403T5 (de) 2016-05-19
HK1219153A1 (zh) 2017-03-24
US20140344653A1 (en) 2014-11-20
GB2528614B (en) 2020-10-28
GB201519928D0 (en) 2015-12-23
GB2528614A (en) 2016-01-27
US9948322B1 (en) 2018-04-17
CN105247488B (zh) 2018-11-16
AU2018274835A1 (en) 2018-12-20
DE112014002403B4 (de) 2020-07-09
KR20160008631A (ko) 2016-01-22

Similar Documents

Publication Publication Date Title
CA2923444C (en) High performance system providing selective merging of dataframe segments in hardware
EP3566138B1 (en) Transaction identification synchronization
US9448877B2 (en) Methods and apparatus for error detection and correction in data storage systems using hash value comparisons
AU2018274835A1 (en) High performance read-modify-write system providing line-rate merging of dataframe segments in hardware
US10346268B2 (en) Efficient data recovery for write path errors
AU2014328501A1 (en) High performance system providing selective merging of dataframe segments in hardware
JP2014515536A (ja) データ完全性を与えるための装置および方法
US9189330B2 (en) Stale data detection in marked channel for scrub
CN110795269B (zh) 一种数据恢复验证方法、装置及设备
US9189327B2 (en) Error-correcting code distribution for memory systems
KR20170064978A (ko) Raid 메모리의 여러 ecc 블록들 내의 데이터를 정정하기 위한 장치 및 방법
CN114442953B (zh) 一种数据校验的方法、系统、芯片和电子设备
CN108572882B (zh) 一种数据存储的方法及存储设备
US20080148132A1 (en) Error detection and correction scheme for multi-level cell NAND flash
CN113168882B (zh) 一种编码方法、译码方法以及存储控制器
TWI509622B (zh) 具分散錯誤功能的記憶體及其分散錯誤位元的方法
AU2018247214B2 (en) High performance system providing selective merging of dataframe segments in hardware
JP2019028952A (ja) 記憶装置
WO2016038673A1 (ja) 誤り訂正装置、誤り訂正方法、及び誤り訂正システム

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant