KR101905280B1 - 하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템 - Google Patents
하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 41
- 125000004122 cyclic group Chemical group 0.000 claims description 2
- 230000003362 replicative effect Effects 0.000 claims 1
- 238000012005 ligant binding assay Methods 0.000 description 21
- 238000013500 data storage Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 206010009944 Colon cancer Diseases 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-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
본 개시물은 컴퓨터 시스템들을 위한 데이터 저장 시스템들에 관한 것이다. 특히, 본 개시물은 선택된 데이터를 저장 매체에 기록하는 것과 관련된다.
데이터 저장 시스템들은 호스트 시스템의 데이터에 대한 저장을 제공한다. 데이터는 저장 매체에 기록된 논리 블록들로 지칭되는 미리 결정된 사이즈 유닛들로의 저장을 위해 그룹화된다. 예컨대 솔리드 스테이트 드라이브 (SSD) 또는 하이브리드 드라이브에서, 데이터의 논리 블록들을 저장 매체로 기록할 때, 데이터는 더 큰 유닛들, 예컨대 복수의 논리 블록들로 구성된 논리 페이지들 (L-페이지들) 로 기록될 수도 있다. 이때, 저장 매체에서 몇몇 논리 페이지들에 걸친 다수의 논리 블록들에 동일한 새로운 데이터를 저장하는 것 또는 저장 매체에서 논리 페이지에 포함된 논리 블록들 중 오직 일부에 새로운 상이한 데이터를 기록하는 것이 유리하게 된다.
본 발명의 개념의 양태들 및 특징들은 첨부된 도면들을 참조하여 예시적인 실시형태들을 설명함으로써 더 명백해질 것이다.
도 1 은 본 발명의 개념의 예시적인 실시형태에 따른 다수의 논리 블록들에 동일한 새로운 데이터를 기록하기 위한 데이터 저장 장치를 도시하는 블록 다이어그램이다.
도 2 는 본 발명의 개념의 예시적인 실시형태에 따른 동일-기록 동작을 구현하는 방법을 도시하는 흐름도이다.
도 3 은 본 발명의 개념의 예시적인 실시형태에 따른 기록-스킵 동작을 수행하는 데이터 저장 장치를 도시하기 위한 블록 다이어그램이다.
도 4 는 본 발명의 개념의 예시적인 실시형태에 따른 기록-스킵 동작을 구현하는 방법을 도시하는 흐름도이다.
도 5a 는 본 발명의 개념의 예시적인 실시형태에 따른 기록 마스크를 도시하는 다이어그램이다.
도 5b 는 본 발명의 개념의 예시적인 실시형태에 따라, 논리 페이지에 포함된 논리 블록들의 개수에 대응하는 부분들로 분할된 기록 마스크를 도시하는 다이어그램이다.
도 6 은 본 발명의 개념의 예시적인 실시형태에 따른 기록 마스크의 대응하는 부분을 사용하여 제 1 논리 페이지와 제 2 논리 페이지를 병합하는 방법을 도시하는 다이어그램이다.
도 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 임시 스토리지에 저장하는 단계;
상기 데이터의 논리 블록을 논리 페이지를 포함하는 논리 블록들의 개수에 대응하는 복수의 횟수로 복제함으로써 논리 페이지를 생성하고, 생성된 상기 논리 페이지를 제 2 임시 스토리지로 전송하고 생성된 상기 논리 페이지를 상기 제 2 임시 스토리지에 저장하는 단계;
상기 제 2 임시 스토리지로부터의 상기 생성된 논리 페이지를 상기 시작 논리 블록 어드레스에서 시작하여 상기 저장 매체 내에 기록하는 단계 - 상기 생성된 논리 페이지를 기록하는 단계는, 병합하는 것을 수반하는 다른 기록 동작들에 대한 배경 작업으로서 수행됨 -; 및
제 1 기록 동작이 논리 페이지 경계에서 시작하지 않거나 최종 기록 동작이 논리 페이지 경계에서 종료하지 않는다면, 판독-수정-기록 동작을 수행하는 단계를 포함하는, 데이터를 기록하는 방법. - 제 1 항에 있어서,
상기 제 2 임시 스토리지는 판독-수정-기록 모듈에서의 큐(queue)인 것인, 데이터를 기록하는 방법. - 제 2 항에 있어서,
상기 생성된 논리 페이지를 상기 큐에 전송하고 저장하기 전에, 상기 판독-수정-기록 모듈에서 상기 큐를 예비(reserve)하는 단계를 더 포함하는, 데이터를 기록하는 방법. - 제 1 항에 있어서,
현재 논리 페이지에서 상기 저장 매체에 기록된 논리 블록 어드레스들의 범위에서 논리 블록들의 개수에 기초하여 카운트를 업데이트하고, 상기 카운트를 상기 논리 블록 어드레스들의 범위를 표시하는 값과 비교하는 단계;
상기 카운트가 상기 논리 블록 어드레스들의 범위를 표시하는 값과 매칭한다면, 상기 기록하는 단계가 완료된 것을 표시하는 신호를 생성하는 단계를 더 포함하는, 데이터를 기록하는 방법. - 제 1 항에 있어서,
각각의 상기 논리 페이지는 미리 결정된 개수의 논리 블록들을 포함하는 것인, 데이터를 기록하는 방법. - 제 5 항에 있어서,
각각의 상기 논리 블록은 512 바이트의 데이터, 1024 바이트의 데이터, 2048 바이트의 데이터, 및 4096 바이트의 데이터 중 하나를 포함하는 것인, 데이터를 기록하는 방법. - 제 6 항에 있어서,
상기 데이터의 바이트들은 모두 1(all ones) 또는 모두 0(all zeros) 을 포함하는 것인, 데이터를 기록하는 방법. - 제 6 항에 있어서,
상기 데이터의 바이트들은 미리 결정된 데이터를 포함하는 것인, 데이터를 기록하는 방법. - 제 6 항에 있어서,
각각의 상기 논리 블록은 추가 바이트의 메타데이터를 더 포함하는, 데이터를 기록하는 방법. - 제 9 항에 있어서,
각 논리 블록에 대한 상기 메타데이터는 상기 논리 블록이 기록될 논리 블록 어드레스로 업데이트되는 것인, 데이터를 기록하는 방법. - 제 1 항에 있어서,
상기 논리 블록 어드레스들의 범위를 표시하는 값은, 상기 저장 매체의 상기 논리 블록 어드레스 모두를 표시하는 값인 것인, 데이터를 기록하는 방법. - 제 1 항에 있어서,
상기 논리 페이지를 생성하는 것은 프로세서에 의해 수행되는 것인, 데이터를 기록하는 방법. - 논리 블록들의 범위에 데이터를 기록하는 장치로서,
시작 논리 블록 어드레스, 논리 블록 어드레스들의 범위를 표시하는 값, 및 데이터의 논리 블록을 포함하는 커맨드를 수신하도록 구성된 제 1 디바이스;
상기 데이터의 논리 블록을 저장하도록 구성된 제 1 임시 스토리지;
상기 데이터의 논리 블록을 논리 페이지를 포함하는 논리 블록들의 개수에 대응하는 복수의 횟수로 복제함으로써 논리 페이지를 생성하고, 생성된 상기 논리 페이지를 제 2 임시 스토리지로 전송하도록 구성된 프로세서;
논리 페이지들을 저장하도록 구성된 저장 매체;
상기 제 2 임시 스토리지로부터의 상기 생성된 논리 페이지를 상기 시작 논리 블록 어드레스에서 시작하여 상기 저장 매체 내에 기록하도록 구성된 기록 회로 - 상기 기록 회로는 병합하는 것을 수반하는 다른 기록 동작들에 대한 배경 작업으로서, 상기 제 2 임시 스토리지로부터의 상기 논리 페이지를 상기 저장 매체에 기록함 -; 및
제 1 기록 동작이 논리 페이지 경계에서 시작하지 않거나 최종 기록 동작이 논리 페이지 경계에서 종료하지 않는다면, 판독-수정-기록 동작을 수행하도록 구성된 판독-수정-기록 모듈을 포함하는, 데이터를 기록하는 장치. - 제 13 항에 있어서,
상기 제 2 임시 스토리지는 상기 판독-수정-기록 모듈에서의 큐인 것인, 데이터를 기록하는 장치. - 제 14 항에 있어서,
상기 생성된 논리 페이지를 상기 큐에 전송하고 저장하기 전에, 상기 판독-수정-기록 모듈에서 상기 큐를 예비하는 것을 더 포함하는, 데이터를 기록하는 장치. - 제 13 항에 있어서,
현재 논리 페이지에서 상기 저장 매체에 기록된 논리 블록 어드레스들의 범위에서 논리 블록들의 개수를 카운트하고, 상기 카운트를 상기 논리 블록 어드레스들의 범위를 표시하는 값과 비교하도록 구성된 카운터를 더 포함하는, 데이터를 기록하는 장치. - 제 16 항에 있어서,
상기 비교가 상기 논리 블록 어드레스들의 범위를 표시하는 값이 도달된 것을 표시할 경우, 표시 신호를 생성하도록 구성된 회로를 더 포함하는, 데이터를 기록하는 장치. - 제 13 항에 있어서,
출력 논리 페이지 내에 기록된 논리 블록들의 순환 중복 코드 (cyclic redundancy code; CRC) 데이터를 블록 단위로 누산함으로써, 상기 생성된 논리 페이지에 대하여 CRC 코드를 생성하도록 구성된 회로를 포함하는 판독-수정-기록 모듈을 더 포함하는, 데이터를 기록하는 장치. - 제 18 항에 있어서,
상기 판독-수정-기록 모듈은 또한, 각 블록에 대한 데이터 무결성 필드를 계산하고, 계산된 상기 데이터 무결성 필드를 상기 블록들 사이에 삽입하도록 구성되는 것인, 데이터를 기록하는 장치. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
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)
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)
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)
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 |
-
2013
- 2013-09-06 US US14/020,653 patent/US9304709B2/en active Active
-
2014
- 2014-09-05 WO PCT/US2014/054426 patent/WO2015047697A1/en active Application Filing
- 2014-09-05 AU AU2014328501A patent/AU2014328501B2/en not_active Ceased
- 2014-09-05 KR KR1020167009003A patent/KR101905280B1/ko active IP Right Grant
- 2014-09-05 CN CN201480055094.0A patent/CN105612500B/zh not_active Expired - Fee Related
- 2014-09-05 JP JP2016540450A patent/JP2016530648A/ja not_active Ceased
- 2014-09-05 EP EP14849803.3A patent/EP3042290A4/en not_active Withdrawn
- 2014-09-05 CA CA2923444A patent/CA2923444C/en not_active Expired - Fee Related
-
2016
- 2016-01-05 US US14/988,440 patent/US9760304B2/en not_active Expired - Fee Related
Patent Citations (3)
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 |