KR101905280B1 - 하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템 - Google Patents

하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템 Download PDF

Info

Publication number
KR101905280B1
KR101905280B1 KR1020167009003A KR20167009003A KR101905280B1 KR 101905280 B1 KR101905280 B1 KR 101905280B1 KR 1020167009003 A KR1020167009003 A KR 1020167009003A KR 20167009003 A KR20167009003 A KR 20167009003A KR 101905280 B1 KR101905280 B1 KR 101905280B1
Authority
KR
South Korea
Prior art keywords
logical
data
logical page
logical block
page
Prior art date
Application number
KR1020167009003A
Other languages
English (en)
Other versions
KR20160052690A (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 KR20160052690A publication Critical patent/KR20160052690A/ko
Application granted granted Critical
Publication of KR101905280B1 publication Critical patent/KR101905280B1/ko

Links

Images

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

저장 매체에서 논리 블록들의 범위에 데이터를 기록하는 방법은: 시작 논리 블록 어드레스, 기록될 논리 블록 어드레스들의 범위를 표시하는 값, 및 데이터의 논리 블록을 포함하는 커맨드를 수신하는 단계; 데이터의 논리 블록을 제 1 임시 스토리지에 저장하는 단계; 데이터의 논리 블록을 논리 페이지를 포함하는 논리 블록들의 개수에 대응하는 복수의 횟수로 복제함으로써 논리 페이지를 생성하고, 생성된 논리 페이지를 제 2 임시 스토리지로 전송하고 생성된 논리 페이지를 제 2 임시 스토리지에 저장하는 단계; 제 2 임시 스토리지로부터 생성된 논리 페이지를 시작 논리 블록 어드레스에서 시작하여 저장 매체 내에 기록하는 단계; 제 1 기록 동작이 논리 페이지 경계에서 시작하지 않거나 최종 기록 동작이 논리 페이지 경계에서 종료하지 않는다면, 판독-수정-기록 동작을 수행하는 단계를 포함한다.

Description

하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템{HIGH PERFORMANCE SYSTEM PROVIDING SELECTIVE MERGING OF DATAFRAME SEGMENTS IN HARDWARE}
본 개시물은 컴퓨터 시스템들을 위한 데이터 저장 시스템들에 관한 것이다. 특히, 본 개시물은 선택된 데이터를 저장 매체에 기록하는 것과 관련된다.
데이터 저장 시스템들은 호스트 시스템의 데이터에 대한 저장을 제공한다. 데이터는 저장 매체에 기록된 논리 블록들로 지칭되는 미리 결정된 사이즈 유닛들로의 저장을 위해 그룹화된다. 예컨대 솔리드 스테이트 드라이브 (SSD) 또는 하이브리드 드라이브에서, 데이터의 논리 블록들을 저장 매체로 기록할 때, 데이터는 더 큰 유닛들, 예컨대 복수의 논리 블록들로 구성된 논리 페이지들 (L-페이지들) 로 기록될 수도 있다. 이때, 저장 매체에서 몇몇 논리 페이지들에 걸친 다수의 논리 블록들에 동일한 새로운 데이터를 저장하는 것 또는 저장 매체에서 논리 페이지에 포함된 논리 블록들 중 오직 일부에 새로운 상이한 데이터를 기록하는 것이 유리하게 된다.
본 발명의 개념의 양태들 및 특징들은 첨부된 도면들을 참조하여 예시적인 실시형태들을 설명함으로써 더 명백해질 것이다.
도 1 은 본 발명의 개념의 예시적인 실시형태에 따른 다수의 논리 블록들에 동일한 새로운 데이터를 기록하기 위한 데이터 저장 장치를 도시하는 블록 다이어그램이다.
도 2 는 본 발명의 개념의 예시적인 실시형태에 따른 동일-기록 동작을 구현하는 방법을 도시하는 흐름도이다.
도 3 은 본 발명의 개념의 예시적인 실시형태에 따른 기록-스킵 동작을 수행하는 데이터 저장 장치를 도시하기 위한 블록 다이어그램이다.
도 4 는 본 발명의 개념의 예시적인 실시형태에 따른 기록-스킵 동작을 구현하는 방법을 도시하는 흐름도이다.
도 5a 는 본 발명의 개념의 예시적인 실시형태에 따른 기록 마스크를 도시하는 다이어그램이다.
도 5b 는 본 발명의 개념의 예시적인 실시형태에 따라, 논리 페이지에 포함된 논리 블록들의 개수에 대응하는 부분들로 분할된 기록 마스크를 도시하는 다이어그램이다.
도 6 은 본 발명의 개념의 예시적인 실시형태에 따른 기록 마스크의 대응하는 부분을 사용하여 제 1 논리 페이지와 제 2 논리 페이지를 병합하는 방법을 도시하는 다이어그램이다.
특정 실시형태들이 설명되지만, 이들 실시형태들은 오직 예로서만 제시되며, 보호 범위를 제한하도록 의도되지는 않는다. 본원에 기술된 방법들 및 장치들은 다양한 다른 형태들로 구현될 수도 있다. 추가로, 본원에 설명된 방법들 및 장치들의 형태에 있어서 다양한 생략들, 대체들, 및 변경들은 보호 범위를 벗어나지 않고 실행될 수도 있다.
개관
솔리드 스테이트 드라이브들 (SSD들) 은 컴퓨터 시스템들을 위한 데이터 저장 시스템들로서 채용된다. 그러한 데이터 저장 시스템의 메모리 위치에 저장된 데이터를 수정하기 위해, 데이터는 더 큰 유닛들, 예컨대 복수의 논리 블록들로 구성된 논리 페이지들로 기록될 수도 있다. 예컨대, 4 킬로바이트 (kB) 의 논리 페이지는 8 개의 512 바이트 논리 블록들로 이루어질 수도 있다. 이때, 동일한 데이터를 연속하는 논리 블록들의 범위 내에 기록하는 것 또는 연속하는 논리 블록들의 범위 내의 불연속 논리 블록들에서 데이터를 수정하는 것이 유리하게 된다.
시스템 개관
본 발명의 개념의 일 양태는 동일한 데이터를 순차적인 복수의 논리 블록들에 기록하는 동일 기록 (Write Same) 장치 및 방법에 관한 것이다. 동일 기록 장치의 일 예시적인 실시형태에서, 그 장치는 시작 논리 블록 어드레스 (LBA), LBA들의 범위 (즉, 데이터가 기록될 논리 블록들의 개수를 표시하는 값), 및 논리 블록들에 기록될 데이터의 블록을 포함하는 커맨드를 수신한다.
동일 기록 장치는 수신된 데이터 블록을 시작 LBA 에서 시작하는 LBA들의 특정 범위에 있는 각각의 논리 블록에 기록하도록 동작한다. 동일 기록 장치는, 제 1 기록 동작이 논리 페이지 경계에서 시작하지 않거나 또는 최종 기록 동작이 논리 페이지 경계에서 종료하지 않는다면, 판독-수정-기록 동작 (RMW) 을 수행하여, 논리 페이지 블록들을 온 더 플라이 (on-the-fly) 로 병합하고 적절한 비트-수정들을 수행한다.
본 발명의 개념의 다른 양태는 기록 스킵 (Skip Write) 장치 및 방법에 관한 것이다. 기록 스킵 장치의 일 예시적인 실시형태에서, 그 장치는 시작 논리 블록 어드레스, 논리 블록 어드레스들의 범위를 표시하는 값, 및 기록 마스크를 포함하는 커맨드를 수신한다. 출력 논리 페이지들은 기록 마스크의 대응하는 부분들에 기초하여 논리 블록들을 논리 페이지들로 병합함으로써 생성된다.
기록 스킵 장치는 기록 마스크에 의해 결정된 것과 같이 논리 페이지들 상에 동작하여, 이전에 소프트웨어 프로세스들이었던 것들에 하드웨어 최적화를 적용한다. 기록 스킵 장치는 기록 마스크에 기초하여 논리 페이지 블록들을 온 더 플라이로 병합하고 적절한 비트-수정들을 수행한다.
동일 기록
도 1 은 본 발명의 개념의 예시적인 실시형태에 따른 다수의 논리 블록들에 동일한 새로운 데이터를 기록하기 위한 데이터 저장 장치를 도시하는 블록 다이어그램이다. 도 1 을 참조하면, 본 발명의 개념의 일 예시적인 실시형태에서, 데이터 저장 장치 (100) 는 커맨드 입력 디바이스 (110), 제 1 임시 스토리지 (120), 프로세서 (130), 제 2 임시 스토리지 (140), 순환 중복 체크 (CRC) 생성 회로 (150), 비교 회로 (160), 기록 회로 (170), 카운터 (180), 및 저장 매체 (190) 를 포함할 수도 있다. 저장 매체는 솔리드-스테이트 반도체 메모리 (예컨대, NAND) 와 같은 비-휘발성 메모리를 포함할 수도 있다.
데이터 저장 장치 (100) 의 엘리먼트들은 하나의 반도체 칩 상에 통합될 수도 있거나, 또는 하나의 반도체 패키지 내에 통합된 별개의 다이들일 수도 있다. 다른 구성들이 가능하며, 본 발명의 개념의 범위 내에 포함되는 것을 당업자는 이해할 것이다. 예를 들어, 기술된 엘리먼트들에 의해 수행되는 기능성들은 다른 엘리먼트들에 의해 수행될 수도 있고, 그 엘리먼트들은 더 적은 수의 엘리먼트들로 결합되고 및/또는 더 많은 수의 엘리먼트들로 세분화될 수도 있다.
일 실시형태에서, 커맨드 입력 디바이스 (110) 는 시작 논리 블록 어드레스 (LBA), LBA들의 범위를 표시하는 값, 및 LBA들의 범위 내의 논리 블록들로 기록될 데이터의 논리 블록을 포함하는 커맨드를 수신한다. 예를 들어, 커맨드는 데이터 저장 장치 (100) 에 접속되는 호스트로부터 수신될 수도 있다. 수신된 데이터의 논리 블록은 제 1 임시 스토리지 (120) 로 전송된다. 제 1 임시 스토리지 (120) 는 프로세서 (130) 의 내부 또는 외부에 있을 수도 있다. 프로세서 (130) 는 수신된 데이터의 논리 블록과 동일한 데이터를 가지는 각각의 논리 블록을 갖는 논리 페이지를 생성하기 위해, 수신된 데이터의 논리 블록을 복제한다. 예를 들어, 8 개의 논리 블록들을 포함하는 논리 페이지에 대하여, 프로세서 (130) 는 동일한 데이터를 각각 포함하는 8 개의 논리 블록들을 포함하는 논리 페이지를 생성하기 위해, 수신된 논리 블록을 7 회 복제한다.
각각의 논리 블록은 예컨대, 약 512 바이트의 데이터, 약 1024 바이트의 데이터, 약 2048 바이트의 데이터, 또는 약 4096 바이트의 데이터를 포함하지만, 이에 제한되지 않을 수도 있다. 일부 경우들에서, 예컨대 저장 매체가 소거되거나 재포맷화될 경우, 수신된 데이터의 논리 블록은 모두 1 또는 모두 0 을 포함할 수도 있고, 논리 블록 어드레스들의 범위를 표시하는 값은 저장 매체의 논리 블록 어드레스들 모두를 표시할 수도 있다.
프로세서 (130) 는 생성된 논리 페이지가 제 2 임시 스토리지 (140) 로 전송되게 한다. 제 2 임시 스토리지 (140) 는 (RMW) 모듈 (195) 에 포함된 큐(queue)일 수도 있다. 프로세서 (130) 는 생성된 논리 페이지를 전송하기 전에, 제 2 임시 스토리지 (140) 가 예비(reserve)되게 할 수도 있다. 도시된 것과 같이, RMW 모듈 (195) 은 CRC 회로 (150) 및 기록 회로 (170) 를 추가로 포함할 수도 있다.
일 실시형태에서, CRC 회로 (150) 는 적어도 각각의 논리 블록의 LBA 및 데이터에 기초하여 CRC 값을 생성하고, 기록될 준비가 된 논리 블록 데이터의 CRC 를 수신된 것과 같은 논리 블록 데이터의 CRC 와 비교한다. CRC들이 매칭하지 않는다면, 기록될 논리 블록 데이터는 무효한 것으로 마킹된다. CRC들이 본 개시물에서의 예시적인 실시형태들에서 언급되지만, 예컨대 검사합들 및 해시 함수들, 등등이지만 이에 제한되지 않는 다른 에러 검출 메커니즘들의 사용이 일부 실시형태들에서 가능하다.
일 실시형태에서, 기록 회로 (170) 는 유효 데이터를 저장 매체 (190) 에 출력한다. 카운터 (180) 는 저장 매체 (190) 에 기록된 논리 블록들의 개수를 카운트하여 카운트 값을 생성한다. 비교 회로 (170) 는 카운트 값을 기록될 LBA 들의 범위를 표시하는 값과 비교한다. 값들이 매칭한다면, 비교 회로 (160) 는 동일 기록 동작이 완료된 것을 표시하는 신호를 생성한다. 일부 실시형태들에서, 동일 기록 동작은 다른 (RMW) 동작들에 종속되며, 따라서 기록 회로는 병합을 수반하는 다른 기록 동작들에 대한 배경 작업으로서, 제 2 임시 스토리지로부터의 논리 페이지를 저장 매체로 기록한다.
일부 경우들에서, 제 1 기록 동작이 논리 페이지 경계에서 시작하지 않고 및/또는 최종 기록 동작이 논리 페이지 경계에서 종료하지 않는다. 그러한 경우들에서, (RMW) 모듈 (195) 은 오직 대응하는 논리 페이지에 대한 기록 마스크에 대하여 특정된 논리 블록들만을 수정하기 위해 RMW 동작을 수행한다.
RMW 동작에서, 생성된 논리 페이지는 제 2 임시 스토리지 (140) 에 저장될 수도 있다. 복수의 블록들을 포함하는 제 2 논리 페이지는 RMW 모듈 (195) 에 의해 저장 매체 (190) 로부터 취출된다. 생성된 논리 페이지 및 제 2 논리 페이지의 섹터들은 병합된 출력 논리 페이지를 생성하기 위해, 복수의 데이터 경로들 및 멀티플렉서들을 통해 병합된다. 추가로, 병합된 출력 논리 페이지에 대한 CRC 는, 병합된 출력 논리 페이지를 생성하도록, 병합된 생성된 논리 페이지와 제 2 논리 페이지 블록들의 CRC 데이터를 블록 단위로 계산 및 누산함으로써 생성된다.
생성된 논리 페이지와 제 2 논리 페이지 중 적어도 하나의 블록들은, 병합된 출력 논리 페이지가 생성되고 있을 때, 체크-데이터 논리 페이지로 재구성된다. 대안적으로, 생성된 논리 페이지와 제 2 논리 페이지 양자는, 병합된 출력 논리 페이지가 생성되고 있을 때, 체크-데이터 논리 페이지들로 재구성될 수도 있다.
CRC 는 체크-데이터 논리 페이지에 대하여 블록 단위로 계산 및 누산되고, 에러 체크는 병합된 출력 논리 페이지의 대응하는 블록들을 검증하기 위해, 생성된 논리 페이지 및 제 2 논리 페이지의 블록들에 대응하는 블록들을 포함하는 적어도 하나의 체크-데이터 논리 페이지 상에 수행된다. 체크-데이터 논리 페이지에서 블록들의 적어도 일부가 병합된 출력 논리 페이지의 블록들을 송신하는 복수의 데이터 경로들의 서브세트에서 송신되기 때문에, 적어도 하나의 체크-데이터 논리 페이지의 에러 체크는 병합된 출력 논리 페이지에서의 적어도 하나의 체크-데이터 논리 페이지로부터의 블록들을 검증한다. 하나의 예시적인 실시형태에서, 양자의 체크-데이터 논리 페이지들의 에러 체크는 병합된 출력 논리 페이지에서 제 1 및 제 2 체크-데이터 논리 페이지들의 블록들을 검증한다.
일 실시형태에서, RMW 모듈은 추가로, 각각의 블록에 대하여 데이터 무결성 필드를 계산하고, 계산된 데이터 무결성 필드를 블록들 사이에 삽입하도록 구성된다. 데이터 전송 동안 데이터 무결성 에러들을 방지하기 위한 보호 방식들은 ANSI T10 데이터 무결성 특징 (T10 DIF) 표준에 의해 정의된다. T10 DIF 는, 스토리지 영역 네트워크 (SAN) 구조를 통해, 호스트 버스 어댑터로부터 디스크로 및 그 반대로 판독되고 기록된 데이터의 무결성을 체크하는 방식을 제공한다. 이러한 체크는 T10 표준에서 정의된 데이터 무결성 필드 (DIF) 를 통해 구현된다.
도 2 는 본 발명의 개념의 예시적인 실시형태에 따른 동일-기록 동작을 구현하는 방법을 도시하는 흐름도이다. 도 2 를 참조하여, 시작 논리 블록 어드레스, 기록될 논리 블록 어드레스들의 범위를 표시하는 값, 및 데이터의 논리 블록을 포함하는 커맨드가 수신된다 (210). 데이터의 논리 블록은 제 1 임시 스토리지로 전송되고 저장된다 (215). 제 1 임시 스토리지는 프로세서 내부의 메모리일 수도 있거나, 반도체 칩 상에 통합된 다른 메모리일 수도 있다. 논리 페이지는 제 1 임시 스토리지에 저장된 데이터의 논리 블록을, 논리 페이지에 포함된 논리 블록들, 예컨대 8 개의 논리 블록들의 개수에 대응하는 횟수로 복제함으로써 생성된다 (220). 따라서, 생성된 논리 페이지는 제 2 임시 스토리지, 예컨대 큐로 전송된다 (225).
복제된 논리 페이지의 제 1 논리 블록 어드레스가 현재 논리 페이지의 논리 페이지 경계에서 시작하는지, 또는 복제된 논리 페이지의 최종 논리 블록 어드레스가 현재 논리 페이지의 논리 페이지 경계에서 종료하는지의 여부에 대한 결정이 수행된다 (230). 만약 그렇다면 (230 - 예), 저장 매체에 기록된 논리 페이지들에서 전술된 것과 같이 CRC 가 계산된다 (235). 복제된 논리 페이지의 제 1 논리 블록 어드레스가 현재 논리 페이지의 논리 페이지 경계에서 시작하지 않거나, 또는 복제된 논리 페이지의 최종 논리 블록 어드레스가 현재 논리 페이지의 최종 논리 블록 어드레스에 대응하지 않는다면 (230 - 아니오), 복제된 논리 페이지의 대응하는 논리 블록들을 현재 논리 페이지로 병합하기 위해, RMW 동작이 수행된다 (255).
논리 페이지가 저장 매체에 기록된 후에, 카운터는 기록된 논리 블록 어드레스들의 범위에서의 블록들의 개수로 업데이트된다 (240). 카운터에서의 값이 기록될 논리 블록 어드레스들의 범위에서의 논리 블록들의 개수와 동일하지 않다면 (245 - 아니오), LBA 는 현재 논리 페이지에 기록된 논리 블록 어드레스들의 범위에서의 논리 블록들의 개수만큼 증분되며 (260), 프로세스는 동작 (230) 으로부터 반복된다. 기록될 논리 블록 어드레스들의 범위에서 모든 블록들이 기록되었다면 (245 - 예), 기록 완료 신호가 생성되고 (250), 프로세스가 종료한다.
기록 스킵
도 3 은 본 발명의 개념의 예시적인 실시형태에 따른 기록 스킵 동작을 수행하는 데이터 저장 장치를 도시하기 위한 블록 다이어그램이다. 도 3 을 참조하면, 본 발명의 개념의 일 예시적인 실시형태에서, 데이터 저장 장치 (300) 는 커맨드 입력 디바이스 (310), 스토리지 (320), 입력 로직 디바이스 (330), 멀티플렉서들 (340), 제 1 로직 디바이스 (350), 제 2 로직 디바이스 (360), 및 카운터 (370) 를 포함할 수도 있다.
데이터 저장 장치 (300) 의 엘리먼트들은 하나의 반도체 칩 상에 통합될 수도 있거나, 또는 하나의 반도체 패키지 내에 통합된 별개의 다이들일 수도 있다. 다른 구성들이 가능하며, 본 발명의 개념의 범위 내에 포함되는 것을 당업자는 이해할 것이다. 예를 들어, 기술된 엘리먼트들에 의해 수행되는 기능성들은 다른 엘리먼트들에 의해 수행될 수도 있고, 그 엘리먼트들은 더 적은 수의 엘리먼트들로 결합되고 및/또는 더 많은 수의 엘리먼트들로 세분화될 수도 있다.
커맨드 입력 디바이스 (310) 는 시작 논리 블록 어드레스 (LBA), LBA들의 범위를 표시하는 값, 및 기록 마스크를 포함하는 커맨드를 수신한다. 기록 마스크는 상이한 데이터를 포함하는 논리 블록들이 병합될 논리 블록들의 LBA들을 명시한다. 커맨드와 연관된 새로운 논리 블록들은 임시 스토리지 (320) 에서 수신되고 저장된다. 각각의 논리 블록은 예컨대, 약 512 바이트의 데이터, 약 1024 바이트의 데이터, 약 2048 바이트의 데이터, 또는 약 4096 바이트의 데이터를 포함하지만, 이에 제한되지 않을 수도 있다.
일 실시형태에서, 입력 로직 디바이스 (330) 는 기록 마스크를 논리 페이지를 포함하는 논리 블록들의 개수에 대응하는 부분들로 분할하고, 기록 마스크의 대응하는 부분에 기초하여 제 1 논리 페이지를 구성한다. 예를 들어, 8 개의 논리 블록들을 포함하는 논리 페이지들에 대하여, 기록 마스크는 LBA들과 연관된 병합 표시자들로서 8 개 비트들을 각각 포함하는 부분들로 분할된다.
도 5a 는 본 발명의 개념의 예시적인 실시형태에 따른 기록 마스크를 도시하는 다이어그램이다. 도 5a 를 참조하면, 기록 마스크는 2048 비트들을 포함하고, 각각의 비트는 커맨드와 함께 수신된 시작 LBA 에서 시작하는 LBA 대응한다. 일 예로서, 도 5a 는 '8' 의 시작 LBA 및 '2055' 의 종료 LBA 를 도시한다. 기록 마스크의 비트들 0, 2 및 3 은, 새로운 논리 블록들이 대응하는 LBA들에서 삽입될 것임을 표시하는 '1' 로 세팅된다. 병합될 논리 블록들의 LBA들은 연속적이거나 불연속적일 수도 있다.
도 5b 는 본 발명의 개념의 예시적인 실시형태에 따라, 논리 페이지에 포함된 논리 블록들의 개수에 대응하는 부분들로 분할된 기록 마스크를 도시하는 다이어그램이다. 도 5b 에 도시된 것과 같이, 8 개의 LBA들을 포함하는 논리 페이지들에 대하여, 기록 마스크는 논리 페이지에서 LBA들에 대응하는 8 개 비트들을 각각 포함하는 256 개 부분들로 분할된다. 제 1 논리 페이지에 대응하는 부분에서, LBA들 8, 10 및 11 에 대응하는 논리 블록들은 수신된 커맨드와 연관된 논리 블록들을, 그들의 LBA들에서의 논리 페이지 내로 삽입함으로써 대체될 것이다. 상기 예는 단지 이해를 향상시키기 위한 것이며, 논리 페이지들, 논리 블록들, 및 LBA들의 다른 구성들에 적용가능하다는 것을 당업자는 인식할 것이다.
일 실시형태에서, 입력 로직 디바이스 (330) 는 제 1 논리 페이지를 구성하고, 저장 매체, 예컨대 도 1 에 도시된 저장 매체 (190) 로부터 제 2 논리 페이지를 취출하며, 각각의 논리 페이지의 헤더들에 포함된 CRC들을 검증한다. CRC들이 본 개시물에서의 예시적인 실시형태들에서 언급되지만, 예컨대 검사합들 및 해시 함수들, 등등과 같지만 이에 제한되지 않는 다른 에러 검출 메커니즘들의 사용이 일부 실시형태들에서 가능한 것이 유의되어야 한다. 또한, 일부 실시형태들에서, CRC 검증은 장치의 어느 곳에서도 수행될 수도 있다. 제 1 및 제 2 논리 페이지들은 시스템 클록과 동기화된 입력 로직 디바이스 (330) 로부터 데이터 경로 회로 (340) 로 블록 단위로 전송되며, 데이터 경로 회로 (340) 에서 제 1 및 제 2 논리 페이지들의 섹터들은 기록 마스크의 대응하는 부분에 기초하여 시스템 클록 속도와 대략 동일한 속도로 병합된다.
일 예시적인 실시형태에서, 제 1 논리 페이지는 제 2 논리 페이지가 취출될 때까지 저장된다. 제 2 논리 페이지는 대략 시스템 클록 속도로 기록 스킵 장치 (300) 를 블록 단위로 통과되고, 저장된 제 1 논리 페이지와 함께 병합된다. 제 1 및 제 2 논리 페이지들은 병합된 출력 논리 페이지가 유효한지 여부를 결정하기 위해, 제 1 로직 디바이스 (350) 에 의해 프로세싱된다.
도 6 은 본 발명의 개념의 예시적인 실시형태에 따른 기록 마스크에 대응하는 부분을 사용하여 제 1 논리 페이지와 제 2 논리 페이지의 병합을 도시하는 다이어그램이다. 도 6 의 예시적인 도면에서, 기록 마스크는 제 2 논리 페이지에 대하여 출력 논리 페이지 내로 병합할 논리 블록을 "1" 로 표시하고 폐기할 논리 블록을 "0" 으로 표시하며, 제 2 논리 페이지에 대하여 출력 논리 페이지 내로 병합할 논리 블록을 "0" 로 표시하고 폐기할 논리 블록을 "1" 로 표시한다. 지정자들 "1" 및 "0" 은 단지 예시적이고, 다른 지정자들이 본 발명의 개념의 범위로부터 벗어나지 않고 가능한 것을 당업자는 이해할 것이다.
도 6 을 참조하여, 기록 마스크 (670) 의 대응하는 부분은 (폐기할 LB들 (620) 로서 도시된) 폐기될 제 1 논리 페이지 (610) 의 논리 블록들을 대신하여, 제 1 논리 페이지 (610) 의 논리 블록들과 함께 병합될 제 2 논리 페이지 (640) 의 논리 블록들을 명시한다. 기록 마스크 (670) 의 대응하는 부분에 의해 출력 논리 페이지 내로 병합하도록 명시되지 않는 제 2 논리 페이지 (640) 의 논리 블록들이 폐기되는 반면 (폐기할 LB들 (650) 로서 도시됨), 기록 마스크 (670) 의 대응하는 부분에 의해 출력 논리 페이지 내로 병합하도록 명시된 제 2 논리 페이지 (640) 의 논리 블록들 (유지할 LB들 (660) 로서 도시됨) 은 병합된 출력 논리 페이지 (680) 를 생성하기 위해 제 1 논리 페이지 (610) 와 함께 병합된다.
대조적으로, 기록 마스크 (670) 의 대응하는 부분에 의해 출력 논리 페이지 내로 병합하도록 명시되지 않는 제 1 논리 페이지 (610) 의 논리 블록들이 폐기되는 반면 (폐기할 LB들 (620) 로서 도시됨), 기록 마스크 (670) 의 대응하는 부분에 의해 출력 논리 페이지 내로 병합하도록 명시된 제 1 논리 페이지 (610) 의 논리 블록들 (병합할 LB들 (630) 로서 도시됨) 은 병합된 출력 논리 페이지 (680) 를 생성하기 위해 제 2 논리 페이지 (640) 의 병합할 논리 블록들 (660) 과 함께 병합된다. 즉, 기록 마스크의 대응하는 부분에 의해 명시된 제 1 논리 페이지의 논리 블록들은, 병합된 출력 논리 페이지를 생성하기 위해 제 2 논리 페이지의 대응하는 논리 블록들로 대체되고, 제 1 및 제 2 논리 페이지들의 미사용된 섹터들은 폐기된다.
앞의 병합 동작은 제 1 논리 페이지의 논리 블록들과 병합될 수도 있는 제 2 논리 페이지의 명시된 논리 블록들과 관련하여 설명되지만, 본 발명의 개념의 범위는 또한 제 1 논리 페이지의 명시된 논리 블록들을 제 2 논리 페이지의 논리 블록들과 병합하는 것을 포함한다. 또한, 도 6 에와 같이 도시되었지만, 제 1 논리 페이지와 제 2 논리 페이지의 복수의 논리 블록들에서 논리 블록들의 개수는 동일하지 않을 수도 있다.
도 3 을 다시 참조하여, 일 예시적인 실시형태에서 제 2 로직 디바이스 (360) 는 병합된 출력 논리 페이지에 대하여 CRC 를 계산 및 누산한다. 병합된 출력 논리 페이지의 각각의 논리 블록은 기록 스킵 장치 (300) 로부터 블록 단위로 출력된다. 병합된 출력 논리 페이지의 생성은 시스템 클록 속도와 대략 동일한 속도로 수행된다.
일 예시적인 실시형태에서, 제 1 로직 디바이스 (350) 는 제 1 및 제 2 논리 페이지들을 각각 제 1 및 제 2 체크-데이터 페이지들로 재구성하고, 체크-데이터 페이지들의 CRC들은 제 1 로직 디바이스 (350) 에 의해 블록 단위로 계산 및 누산된다. 제 1 체크-데이터 페이지는 출력 논리 페이지 내로 병합된 제 1 논리 페이지의 논리 블록들이 송신되는 데이터 경로들의 서브세트와 상이한 데이터 경로들의 제 1 서브세트에서 송신되는 논리 블록들을 포함할 수도 있고, 제 2 체크-데이터 페이지는 출력 논리 페이지 내로 병합된 제 2 논리 페이지의 논리 블록들이 송신되는 데이터 경로들의 서브세트와 상이한 데이터 경로들의 제 2 서브세트에서 송신되는 논리 블록들을 포함할 수도 있다.
제 1 및 제 2 논리 페이지들의 최종 논리 블록을 프로세싱한 후에, 제 1 논리 페이지의 CRC 는 제 1 로직 디바이스 (350) 로 송신된다. 동시에, 제 2 논리 페이지의 CRC 는 제 1 로직 디바이스 (350) 로 송신된다.
일 예시적인 실시형태에서, 제 1 로직 디바이스 (350) 는 제 1 논리 페이지의 송신된 CRC 를 제 1 체크-데이터 페이지에 대하여 계산된 CRC 와 비교함으로써 에러 체크를 수행하고, 제 2 논리 페이지의 송신된 CRC 를 제 2 체크-데이터 페이지에 대하여 계산된 CRC 와 비교한다. 수신된 논리 페이지 CRC들이 체크-데이터 페이지들의 CRC들과 매칭하면, 병합된 출력 논리 페이지는 병합된 출력 논리 페이지의 논리 블록들이 체크-데이터 페이지들의 논리 블록들과 동일한 로직을 통과하였고 어떤 에러들도 도입되지 않았기 때문에, 유효할 것이다. CRC들이 매칭하지 않는다면, 병합된 출력 논리 페이지가 무효한 것을 표시하는 메세지가 생성된다. 유효성은 상기 방식으로 검증될 수 있으며, 이는 체크-데이터 페이지에서의 논리 블록들 중 적어도 일부가 병합된 출력 논리 페이지의 논리 블록들을 또한 송신하는 복수의 데이터 경로들의 서브세트에서 송신되기 때문이며, 따라서 적어도 하나의 체크-데이터 페이지의 에러 체크는 병합된 출력 논리 페이지를 검증할 수 있다. 체크-데이터 페이지 CRC 의 계산의 부분으로서 실제 병합된 논리 페이지로부터의 출력 데이터의 사용은, 논리 페이지 병합 메커니즘의 경로를 따라 도입된 임의의 에러가 검출되는 것을 보장한다.
병합된 출력 논리 페이지의 생성과 동시에, 제 2 로직 디바이스 (360) 는 병합된 출력 논리 페이지에 대한 CRC 를 블록 단위로 생성한다. 병합된 출력 논리 페이지의 최종 논리 블록이 출력된 후에, 병합된 출력 논리 페이지에 대하여 제 2 로직 디바이스 (360) 에 의해 생성된 CRC 가 출력된다.
기록 마스크의 논리 페이지 부분의 값들이 모두 1 인 경우에, 제 2 논리 페이지는 병합되지 않고 출력 논리 페이지로서 출력된다. 대조적으로, 기록 마스크 값들의 논리 페이지 부분이 모두 0 인 경우에, 어떤 논리 페이지도 출력되지 않고, 저장 매체에 저장된 대응하는 논리 페이지는 변화되지 않는다.
도 3 을 다시 참조하여, 카운터 (370) 는 저장 매체에 기록된 논리 블록들의 개수에 기초하여 증분된다. 카운터 (370) 상의 값은 커맨드에서 수신된 LBA 범위의 값에 비교되고, 카운터 값이 LBA 범위와 매칭한다면, 카운터 (370) 는 기록 스킵 프로세스가 완료된 것을 표시하는 신호를 생성한다.
도 4 는 본 발명의 개념의 예시적인 실시형태에 따른 기록-스킵 동작을 구현하는 방법을 도시하는 흐름도이다. 도 4 를 참조하여, 시작 논리 블록 어드레스 (LBA), LBA들의 범위를 표시하는 값, 및 기록 마스크를 포함하는 커맨드가 수신된다 (410). 커맨드와 연관된 새로운 논리 블록들은 임시 스토리지에서 수신되고 저장된다 (415). 기록 마스크는 논리 페이지를 포함하는 논리 블록들의 개수에 대응하는 부분들로 분할되고 (425), 현재 논리 페이지에 대응하는 기록 마스크의 부분이 획득된다 (430).
기록 마스크의 대응하는 부분에서의 값들이 모두 동일하다면 (435 - 예), 새로운 데이터가 기록 마스크의 상기 부분에 대응하는 논리 페이지에서의 LBA들 모두에 기록될 것이며, 예컨대 기록 마스크의 대응하는 부분에서 모든 비트들이 '1' 로 세팅되거나, 또는 어떤 새로운 데이터도 논리 페이지에 기록될 필요가 없으며, 예컨대 기록 마스크의 대응하는 부분에서 모든 비트들은 '0' 으로 세팅된다. 새로운 데이터가 논리 페이지에서의 LBA들 모두에 기록될 경우에 (440 - 예), 제 1 논리 페이지는 커맨드와 연관된 수신된 논리 블록들을 사용하여 구성된다 (450). CRC 는 따라서 구성된 논리 페이지에 대하여 계산되고, 논리 페이지는 저장 매체에 기록된다 (470). 카운터는 프로세싱된 LBA들의 개수에 기초하여 증분된다 (475). 카운터 상의 값은 커맨드에서 수신된 LBA 범위의 값에 비교되고 (480), 카운터 값이 LBA 범위와 매칭한다면 (480 - 예), 카운터는 기록 스킵 프로세스가 완료된 것을 표시하는 신호를 생성한다 (485). 그렇지 않으면, 프로세스는 동작 (430) 으로 리턴한다.
어떤 새로운 데이터도 논리 페이지에 기록될 필요가 없는 경우에 (440 - 아니오), 저장 매체로의 어떤 기록 동작도 발생하지 않는다 (445). 카운터는 프로세싱된 LBA들의 개수에 기초하여 증분된다 (475). 카운터 상의 값은 커맨드에서 수신된 LBA 범위의 값에 비교되고 (480), 카운터 값이 LBA 범위와 매칭한다면 (480 - 예), 카운터는 기록 스킵 프로세스가 완료된 것을 표시하는 신호를 생성한다 (485). 그렇지 않으면, 프로세스는 동작 (430) 으로 리턴한다.
모든 기록 마스크 값들이 동일하지 않을 경우에 (435 - 아니오), 제 2 논리 페이지가 취출되고 (455), 제 1 논리 페이지는 기록 마스크의 대응하는 부분에 기초하여, 커맨드와 연관된 수신된 논리 블록들을 사용하여 구성된다 (460). 제 1 및 제 2 논리 페이지들은 전술된 것과 같은 RMW 동작과 병합된다 (465). CRC 는 따라서 구성된 논리 페이지에 대하여 계산되고, 논리 페이지는 저장 매체에 기록된다 (470). 카운터는 프로세싱된 LBA들의 개수에 기초하여 증분된다 (475). 카운터 상의 값은 커맨드에서 수신된 LBA 범위의 값에 비교되고 (480), 카운터 값이 LBA 범위와 매칭한다면 (480 - 예), 카운터는 기록 스킵 프로세스가 완료된 것을 표시하는 신호를 생성한다 (485). 그렇지 않으면, 프로세스는 동작 (430) 으로 리턴한다.
본 발명의 개념의 동작들은 기술된 순서로, 상이한 순서로 수행될 수도 있거나, 또는 그 동작들은 결합될 수도 있다. 전술한 프로세스들은 예시적이고, 다른 변형들이 본 발명의 개념으로부터 벗어나지 않고 가능한 것을 당업자는 이해할 것이다.
특정 실시형태들이 설명되었지만, 이들 실시형태들은 오직 예로서만 제시되며, 보호 범위를 제한하도록 의도되지는 않는다. 본원에 기술된 방법들 및 장치들은 다양한 다른 형태들로 구현될 수도 있다. 본원에 설명된 예시적인 방법들 및 장치들의 형태에 있어서 다양한 생략들, 대체들, 및/또는 변경들은 보호 범위를 벗어나지 않고 실행될 수도 있다.
첨부된 청구항들 및 그 등가물들은 그러한 형태들 또는 변형들을 보호 범위 및 사상 내에 있도록 커버하도록 의도된다. 예를 들어, 본원에 개시된 예시적인 장치들 및 방법들은 솔리드-스테이트 드라이브들, 하드 디스크 드라이브들, 하이브리드 하드 드라이브들, 등등에 적용될 수 있다. 추가로, 예컨대 DRAM 또는 SRAM, 배터리 백업된 휘발성 DRAM 또는 SRAM 디바이스들, EPROM, EEPROM 메모리, 등과 같지만 이에 제한되지 않는 다른 형태의 스토리지가 부가적으로 또는 대안적으로 사용될 수도 있다. 다른 예로서, 도면들에 예시된 다양한 컴포넌트들은 프로세서, ASIC/FPGA, 또는 전용 하드웨어 상의 소프트웨어 및/또는 펌웨어로서 구현될 수도 있다. 또한, 앞서 개시된 특정 예시적인 실시형태들의 특징들 및 특성들은 그들 모두가 본 개시물의 범위 내에 있는 추가의 실시형태들을 형성하도록, 상이한 방식들로 결합될 수도 있다.
본 개시물이 특정 예시적인 실시형태들 및 애플리케이션들을 제공하지만, 본원에서 설명된 특징들 및 장점들 모두를 제공하지 않는 실시형태들을 포함하여, 당업자에게 명백한 다른 실시형태들이 또한 본 개시물의 범위 내에 있다. 따라서, 본 개시물의 범위는 오직 첨부된 청구항들을 참조하여 정의되도록 의도된다.

Claims (38)

  1. 저장 매체에서 논리 블록들의 범위에 데이터를 기록하는 방법으로서,
    시작 논리 블록 어드레스, 기록될 논리 블록 어드레스들의 범위를 표시하는 값, 및 데이터의 논리 블록을 포함하는 커맨드를 수신하는 단계;
    상기 데이터의 논리 블록을 제 1 임시 스토리지에 저장하는 단계;
    상기 데이터의 논리 블록을 논리 페이지를 포함하는 논리 블록들의 개수에 대응하는 복수의 횟수로 복제함으로써 논리 페이지를 생성하고, 생성된 상기 논리 페이지를 제 2 임시 스토리지로 전송하고 생성된 상기 논리 페이지를 상기 제 2 임시 스토리지에 저장하는 단계;
    상기 제 2 임시 스토리지로부터의 상기 생성된 논리 페이지를 상기 시작 논리 블록 어드레스에서 시작하여 상기 저장 매체 내에 기록하는 단계 - 상기 생성된 논리 페이지를 기록하는 단계는, 병합하는 것을 수반하는 다른 기록 동작들에 대한 배경 작업으로서 수행됨 -; 및
    제 1 기록 동작이 논리 페이지 경계에서 시작하지 않거나 최종 기록 동작이 논리 페이지 경계에서 종료하지 않는다면, 판독-수정-기록 동작을 수행하는 단계를 포함하는, 데이터를 기록하는 방법.
  2. 제 1 항에 있어서,
    상기 제 2 임시 스토리지는 판독-수정-기록 모듈에서의 큐(queue)인 것인, 데이터를 기록하는 방법.
  3. 제 2 항에 있어서,
    상기 생성된 논리 페이지를 상기 큐에 전송하고 저장하기 전에, 상기 판독-수정-기록 모듈에서 상기 큐를 예비(reserve)하는 단계를 더 포함하는, 데이터를 기록하는 방법.
  4. 제 1 항에 있어서,
    현재 논리 페이지에서 상기 저장 매체에 기록된 논리 블록 어드레스들의 범위에서 논리 블록들의 개수에 기초하여 카운트를 업데이트하고, 상기 카운트를 상기 논리 블록 어드레스들의 범위를 표시하는 값과 비교하는 단계;
    상기 카운트가 상기 논리 블록 어드레스들의 범위를 표시하는 값과 매칭한다면, 상기 기록하는 단계가 완료된 것을 표시하는 신호를 생성하는 단계를 더 포함하는, 데이터를 기록하는 방법.
  5. 제 1 항에 있어서,
    각각의 상기 논리 페이지는 미리 결정된 개수의 논리 블록들을 포함하는 것인, 데이터를 기록하는 방법.
  6. 제 5 항에 있어서,
    각각의 상기 논리 블록은 512 바이트의 데이터, 1024 바이트의 데이터, 2048 바이트의 데이터, 및 4096 바이트의 데이터 중 하나를 포함하는 것인, 데이터를 기록하는 방법.
  7. 제 6 항에 있어서,
    상기 데이터의 바이트들은 모두 1(all ones) 또는 모두 0(all zeros) 을 포함하는 것인, 데이터를 기록하는 방법.
  8. 제 6 항에 있어서,
    상기 데이터의 바이트들은 미리 결정된 데이터를 포함하는 것인, 데이터를 기록하는 방법.
  9. 제 6 항에 있어서,
    각각의 상기 논리 블록은 추가 바이트의 메타데이터를 더 포함하는, 데이터를 기록하는 방법.
  10. 제 9 항에 있어서,
    각 논리 블록에 대한 상기 메타데이터는 상기 논리 블록이 기록될 논리 블록 어드레스로 업데이트되는 것인, 데이터를 기록하는 방법.
  11. 제 1 항에 있어서,
    상기 논리 블록 어드레스들의 범위를 표시하는 값은, 상기 저장 매체의 상기 논리 블록 어드레스 모두를 표시하는 값인 것인, 데이터를 기록하는 방법.
  12. 제 1 항에 있어서,
    상기 논리 페이지를 생성하는 것은 프로세서에 의해 수행되는 것인, 데이터를 기록하는 방법.
  13. 논리 블록들의 범위에 데이터를 기록하는 장치로서,
    시작 논리 블록 어드레스, 논리 블록 어드레스들의 범위를 표시하는 값, 및 데이터의 논리 블록을 포함하는 커맨드를 수신하도록 구성된 제 1 디바이스;
    상기 데이터의 논리 블록을 저장하도록 구성된 제 1 임시 스토리지;
    상기 데이터의 논리 블록을 논리 페이지를 포함하는 논리 블록들의 개수에 대응하는 복수의 횟수로 복제함으로써 논리 페이지를 생성하고, 생성된 상기 논리 페이지를 제 2 임시 스토리지로 전송하도록 구성된 프로세서;
    논리 페이지들을 저장하도록 구성된 저장 매체;
    상기 제 2 임시 스토리지로부터의 상기 생성된 논리 페이지를 상기 시작 논리 블록 어드레스에서 시작하여 상기 저장 매체 내에 기록하도록 구성된 기록 회로 - 상기 기록 회로는 병합하는 것을 수반하는 다른 기록 동작들에 대한 배경 작업으로서, 상기 제 2 임시 스토리지로부터의 상기 논리 페이지를 상기 저장 매체에 기록함 -; 및
    제 1 기록 동작이 논리 페이지 경계에서 시작하지 않거나 최종 기록 동작이 논리 페이지 경계에서 종료하지 않는다면, 판독-수정-기록 동작을 수행하도록 구성된 판독-수정-기록 모듈을 포함하는, 데이터를 기록하는 장치.
  14. 제 13 항에 있어서,
    상기 제 2 임시 스토리지는 상기 판독-수정-기록 모듈에서의 큐인 것인, 데이터를 기록하는 장치.
  15. 제 14 항에 있어서,
    상기 생성된 논리 페이지를 상기 큐에 전송하고 저장하기 전에, 상기 판독-수정-기록 모듈에서 상기 큐를 예비하는 것을 더 포함하는, 데이터를 기록하는 장치.
  16. 제 13 항에 있어서,
    현재 논리 페이지에서 상기 저장 매체에 기록된 논리 블록 어드레스들의 범위에서 논리 블록들의 개수를 카운트하고, 상기 카운트를 상기 논리 블록 어드레스들의 범위를 표시하는 값과 비교하도록 구성된 카운터를 더 포함하는, 데이터를 기록하는 장치.
  17. 제 16 항에 있어서,
    상기 비교가 상기 논리 블록 어드레스들의 범위를 표시하는 값이 도달된 것을 표시할 경우, 표시 신호를 생성하도록 구성된 회로를 더 포함하는, 데이터를 기록하는 장치.
  18. 제 13 항에 있어서,
    출력 논리 페이지 내에 기록된 논리 블록들의 순환 중복 코드 (cyclic redundancy code; CRC) 데이터를 블록 단위로 누산함으로써, 상기 생성된 논리 페이지에 대하여 CRC 코드를 생성하도록 구성된 회로를 포함하는 판독-수정-기록 모듈을 더 포함하는, 데이터를 기록하는 장치.
  19. 제 18 항에 있어서,
    상기 판독-수정-기록 모듈은 또한, 각 블록에 대한 데이터 무결성 필드를 계산하고, 계산된 상기 데이터 무결성 필드를 상기 블록들 사이에 삽입하도록 구성되는 것인, 데이터를 기록하는 장치.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
KR1020167009003A 2013-09-06 2014-09-05 하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템 KR101905280B1 (ko)

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
KR20160052690A KR20160052690A (ko) 2016-05-12
KR101905280B1 true KR101905280B1 (ko) 2018-10-05

Family

ID=52626709

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167009003A KR101905280B1 (ko) 2013-09-06 2014-09-05 하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템

Country Status (8)

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

Families Citing this family (56)

* 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
US10243583B2 (en) * 2017-06-16 2019-03-26 Western Digital Technologies, Inc. CPU error remediation during erasure code encoding
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
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
US10423344B2 (en) 2017-09-19 2019-09-24 Robin Systems, Inc. Storage scheme for 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
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
US10430110B2 (en) 2017-12-19 2019-10-01 Robin Systems, Inc. Implementing a hybrid storage node in a distributed storage 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
US11392363B2 (en) 2018-01-11 2022-07-19 Robin Systems, Inc. Implementing application entrypoints with containers of a bundled application
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
US10642697B2 (en) 2018-01-11 2020-05-05 Robin Systems, Inc. Implementing containers for a stateful application in a distributed computing system
US10642694B2 (en) 2018-01-12 2020-05-05 Robin Systems, Inc. Monitoring containers in a distributed computing system
US10846137B2 (en) 2018-01-12 2020-11-24 Robin Systems, Inc. Dynamic adjustment of application resources 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
US10976938B2 (en) 2018-07-30 2021-04-13 Robin Systems, Inc. Block map cache
US11023328B2 (en) 2018-07-30 2021-06-01 Robin Systems, Inc. Redo log for append only storage scheme
US10599622B2 (en) 2018-07-31 2020-03-24 Robin Systems, Inc. Implementing storage volumes over multiple tiers
US10817380B2 (en) 2018-07-31 2020-10-27 Robin Systems, Inc. Implementing affinity and anti-affinity constraints in a bundled application
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
US11520650B2 (en) 2019-09-05 2022-12-06 Robin Systems, Inc. Performing root cause analysis in a multi-role application
US11249851B2 (en) 2019-09-05 2022-02-15 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US11113158B2 (en) 2019-10-04 2021-09-07 Robin Systems, Inc. Rolling back kubernetes applications
US11347684B2 (en) 2019-10-04 2022-05-31 Robin Systems, Inc. Rolling back KUBERNETES applications including custom resources
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
US11456914B2 (en) 2020-10-07 2022-09-27 Robin Systems, Inc. Implementing affinity and anti-affinity with KUBERNETES
US11271895B1 (en) 2020-10-07 2022-03-08 Robin Systems, Inc. Implementing advanced networking capabilities using helm charts
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
CN115794700A (zh) * 2022-11-28 2023-03-14 无锡众星微系统技术有限公司 一种聚合管理访盘方法和装置
CN116248573A (zh) * 2022-12-01 2023-06-09 中国联合网络通信集团有限公司 一种链路拼接方法、装置及存储介质
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
WO2006062511A1 (en) 2004-12-06 2006-06-15 Teac Aerospace Technologies, Inc. System and method of erasing non-volatile recording media
US20090138672A1 (en) 2007-11-22 2009-05-28 Hitachi, Ltd. Storage controller and storage controller control method
JP2012198639A (ja) 2011-03-18 2012-10-18 Fujitsu Ltd 制御装置、制御方法およびストレージ装置

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
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
US6826663B2 (en) 2003-01-13 2004-11-30 Rambus Inc. Coded write masking
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
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
WO2008056410A1 (fr) 2006-11-07 2008-05-15 Hitachi Software Engineering Co., Ltd. Procédé de commande de traitement de données, processeur d'informations et système de commande de traitement de données
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
WO2009042329A2 (en) 2007-09-27 2009-04-02 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
US8245101B2 (en) * 2007-12-27 2012-08-14 Sandisk Enterprise Ip Llc Patrol function used in flash storage controller to detect data errors
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
US8583880B2 (en) 2008-05-15 2013-11-12 Nxp B.V. Method for secure data reading and data handling system
US8275970B2 (en) 2008-05-15 2012-09-25 Microsoft Corp. Optimizing write traffic to a disk
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 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
JP2010160653A (ja) 2009-01-07 2010-07-22 Renesas Electronics Corp リングバッファ回路及びその制御回路
US9176859B2 (en) 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
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
BRPI1008874A2 (pt) 2009-02-23 2016-03-15 Sony Corp dispositivo de memória
US8090899B1 (en) 2009-03-04 2012-01-03 Western Digital Technologies, Inc. Solid state drive power safe wear-leveling
US10079048B2 (en) 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US8250328B2 (en) 2009-03-24 2012-08-21 Micron Technology, Inc. Apparatus and method for buffered write commands in a memory
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
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
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
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 中継プログラムおよび電子制御装置
WO2011031903A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US8402217B2 (en) * 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
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
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
US8243525B1 (en) 2009-09-30 2012-08-14 Western Digital Technologies, Inc. Refreshing non-volatile semiconductor memory by reading without rewriting
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
US8880784B2 (en) 2010-01-19 2014-11-04 Rether Networks Inc. Random write optimization techniques for flash disks
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
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
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
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
EP2667308A1 (en) 2011-01-19 2013-11-27 Fujitsu Limited Data writing control device, data writing control method, and information processing device
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
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 メモリ管理装置、メモリ管理方法、および、制御プログラム
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
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
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
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
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
WO2006062511A1 (en) 2004-12-06 2006-06-15 Teac Aerospace Technologies, Inc. System and method of erasing non-volatile recording media
US20090138672A1 (en) 2007-11-22 2009-05-28 Hitachi, Ltd. Storage controller and storage controller control method
JP2012198639A (ja) 2011-03-18 2012-10-18 Fujitsu Ltd 制御装置、制御方法およびストレージ装置

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101905280B1 (ko) 하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템
AU2014328501A1 (en) High performance system providing selective merging of dataframe segments in hardware
US9015553B2 (en) Data integrity in memory controllers and methods
TWI514139B (zh) 實體頁、邏輯頁及碼字對應
US20140068208A1 (en) Separately stored redundancy
WO2016107272A1 (zh) 固态硬盘存储设备和固态硬盘存储设备的数据存取方法
US20070268905A1 (en) Non-volatile memory error correction system and method
US10261705B2 (en) Efficient data consistency verification for flash storage
US9838045B1 (en) Apparatus and method for accessing compressed data
US7418645B2 (en) Error correction/detection code adjustment for known data pattern substitution
KR101915351B1 (ko) 하드웨어에서 데이터프레임 세그먼트들의 라인-레이트 병합을 제공하는 고성능 판독-수정-기록 시스템
TWI528372B (zh) 資料儲存裝置以及揮發式記憶體的資料校驗方法
EP3336702A1 (en) Metadata recovery method and device
TWI467590B (zh) 資料處理方法、記憶體控制器及記憶體儲存裝置
WO2013124753A1 (en) Writing new data of first block size to second block size using write-write mode
US20160055053A1 (en) Methods and apparatuses utilizing check bit data generation
AU2018247214B2 (en) High performance system providing selective merging of dataframe segments in hardware
US6915475B1 (en) Data integrity management for data storage systems
JP2020027473A (ja) データ処理装置及びデータ処理プログラム

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right