KR20170066226A - 에러 정정 전에 비휘발성 고체 상태 디바이스로부터 데이터를 송신하는 시스템 및 방법 - Google Patents

에러 정정 전에 비휘발성 고체 상태 디바이스로부터 데이터를 송신하는 시스템 및 방법 Download PDF

Info

Publication number
KR20170066226A
KR20170066226A KR1020160152613A KR20160152613A KR20170066226A KR 20170066226 A KR20170066226 A KR 20170066226A KR 1020160152613 A KR1020160152613 A KR 1020160152613A KR 20160152613 A KR20160152613 A KR 20160152613A KR 20170066226 A KR20170066226 A KR 20170066226A
Authority
KR
South Korea
Prior art keywords
retrieved
memory
host
data packet
data packets
Prior art date
Application number
KR1020160152613A
Other languages
English (en)
Other versions
KR101967955B1 (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 KR20170066226A publication Critical patent/KR20170066226A/ko
Application granted granted Critical
Publication of KR101967955B1 publication Critical patent/KR101967955B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Communication Control (AREA)

Abstract

통신 프로토콜에서의 동작을 수행하기 위한 방법 및 시스템이 제공된다. 메모리 제어기는 메모리로부터 데이터 패킷을 검색하고, 각 데이터 패킷이 검색될 때, 각 검색된 데이터 패킷을 호스트로 전송할 수 있다. 메모리 제어기는 검색된 데이터 패킷에 대응하는 오류 정정 코드(error correcting code; ECC)를 검색하고, 검색된 복수의 데이터 패킷에서의 잠재적인 오류를 식별 및 정정하기 위한 ECC 알고리즘을 실행할 수 있다. 메모리 제어기는, 검색된 데이터 패킷 중 어떤 것이 오류를 가지면 임의의 정정된 데이터 패킷을 호스트에 전송하고, 완료 패킷을 호스트에 전송할 수 있다.

Description

오류 정정 이전에 비휘발성 솔리드 상태 디바이스로부터 데이터를 전송하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR SENDING DATA FROM NON-VOLATILE SOLID STATE DEVICES BEFORE ERROR CORRECTION}
본 개시는 비휘발성 고체 상태 디바이스에 저장된 데이터를 송신하고 특히 에러 정정의 완료 전에 데이터를 송신하는 시스템 및 방법에 관한 것이다.
비휘발성 고체 상태 디바이스(SSD)는 컴퓨터 시스템 내의 일차 및 이차 스토리지에 광범위하게 사용된다. 일부 비휘발성 메모리, 예컨대 상 변화 메모리(PCM), 저항성 RAM(ReRAM), 및 자기 RAM(MRAM)은, 동적 판독 액세스 메모리(DRAM) 내의 비트 에러 레이트보다 더 높을 수 있지만 NAND 플래시 메모리 내의 비트 에러 레이트보다 훨씬 더 낮을 수 있는 비트 에러 레이트를 갖는다. 그러므로, 이러한 중간 비트 에러 레이트는 DRAM에 사용되는 짧은 해밍 코드보다 더 좋은 에러 정정을 필요로 한다. 이것은 에러 정정 알고리즘을 실행할 때 긴 레이턴시를 야기할 수 있다. 예를 들어, 에러 정정 코드(ECC), 예컨대 전체 BCH 코드(코드 발명자, 즉 Raj Bose, D. K. Ray-Chaudhuri, 및 Alexis Hocquenghem의 두문자어로부터)를 예를 들어 512B 블록 상에 구현하는 것은 저장 매체로부터 비트를 판독하는 것만큼 많은 시간의 대략 절반이 걸릴 수 있다.
더욱이, 임의의 블록, 예를 들어 4 kB 내의 에러의 확률은 대부분의 블록이 에러를 갖지 않도록 충분히 낮을 수 있다. 따라서, 대부분의 판독 시에 에러 정정 알고리즘으로 인한 레이턴시가 폐기된다. 게다가, 종래의 시스템은 비-파이프라인 흐름을 구현하며, 그것은 통상 저장 매체로부터 단일 512 B 블록을 재구성하는 모든 비트를 판독하며, 그 다음에 그것은 ECC 알고리즘을 실행하고, ECC 알고리즘이 완료된 후에 데이터를 호스트에 송신하기 시작할 수 있다. 그러므로, 블록을 송신하는 것은 ECC 알고리즘이 완료될 때까지 지연된다.
본 개시는 통신 프로토콜에 따라 동작을 수행하는 방법 및 시스템에 관한 것이다.
일 구현예는 통신 프로토콜로 동작을 수행하는 방법을 포함할 수 있다. 방법은 호스트 및 메모리와 통신하는 타겟을 제공하는 단계, 및 타겟에 의해, 메모리로부터 복수의 데이터 패킷에 대한 요청을 포함하는 제1 커맨드를 호스트로부터 수신하는 단계를 포함할 수 있다. 방법은 또한 타겟에 의해, 메모리로부터 복수의 데이터 패킷을 검색하는 단계, 및 각각의 데이터 패킷이 검색됨에 따라, 타켓에 의해, 각각 검색된 데이터 패킷을 호스트에 송신하는 단계를 포함할 수 있다. 방법은 타겟에 의해, 검색된 복수의 데이터 패킷에 대응하는 에러 정정 코드(ECC) 패킷을 검색하는 단계, 및 검색된 복수의 데이터 패킷에서 잠재적 에러를 식별하고 정정하기 위해 타겟에 의해, ECC 알고리즘을 실행하는 단계를 더 포함할 수 있다. 방법은 또한 검색된 데이터 패킷 중 어느 것이 에러를 가졌다면 타겟에 의해, 정정된 데이터 패킷을 호스트에 송신하는 단계, 및 타겟에 의해, 완료 패킷을 호스트에 송신하는 단계를 포함할 수 있다.
하나의 대안 구현예는 통신 프로토콜로 동작을 수행하는 방법을 포함할 수 있다. 방법은 호스트 및 메모리와 통신하는 타겟을 제공하는 단계, 및 타겟에 의해, 메모리로부터 복수의 데이터 패킷에 대한 요청을 포함하는 제1 커맨드를 호스트로부터 수신하는 단계를 포함할 수 있다. 방법은 또한 타겟에 의해, 메모리로부터 복수의 데이터 패킷을 검색하는 단계, 및 마지막 검색된 데이터 패킷을 제외하고, 각각의 데이터 패킷이 검색됨에 따라, 타겟에 의해, 각각 검색된 데이터 패킷을 호스트에 송신하는 단계를 포함할 수 있다. 방법은 또한 타겟에 의해, 검색된 복수의 데이터 패킷에 대응하는 에러 정정 코드(ECC) 패킷을 검색하는 단계, 및 검색된 복수의 데이터 패킷에서 잠재적 에러를 식별하고 정정하기 위해 타겟에 의해, ECC 알고리즘을 실행하는 단계를 포함할 수 있다. 방법은 검색된 데이터 패킷 중 어느 것이 에러를 가졌다면 타겟에 의해, 정정된 데이터 패킷을 호스트에 송신하는 단계, 및 타겟에 의해, 마지막 검색된 데이터 패킷을 송신하는 단계를 더 포함할 수 있다.
하나의 대안 구현예는 통신 프로토콜로 동작을 수행하는 메모리 컨트롤러를 포함할 수 있다. 메모리 컨트롤러는, 호스트 및 메모리와 통신하고 메모리로부터 복수의 데이터 패킷에 대한 요청을 포함하는 제1 커맨드를 호스트로부터 수신하도록 구성되는 인터페이스 컨트롤러, 및 저장 컨트롤러를 포함할 수 있다. 저장 컨트롤러는 메모리로부터 복수의 데이터 패킷을 검색하고 마지막 검색된 데이터 패킷을 제외하고, 각각의 데이터 패킷이 검색됨에 따라, 인터페이스 컨트롤러에 각각 검색된 데이터 패킷을 호스트에 송신하라고 명령하도록 구성될 수 있다. 저장 컨트롤러는 또한, 검색된 복수의 데이터 패킷에 대응하는 에러 정정 코드(ECC) 패킷을 검색하고 검색된 복수의 데이터 패킷에서 잠재적 에러를 식별하고 정정하기 위해 ECC 알고리즘을 실행하도록 구성될 수 있다. 저장 컨트롤러는 또한, 검색된 데이터 패킷이 에러를 가졌다면 인터페이스 컨트롤러에 정정된 데이터 패킷을 호스트에 송신하라고 명령하고 인터페이스 컨트롤러에 마지막 검색된 데이터 패킷을 송신하라고 명령하도록 더 구성될 수 있다.
하나의 대안 구현예는 통신 프로토콜로 동작을 수행하는 메모리 컨트롤러를 포함할 수 있다. 메모리 컨트롤러는, 호스트 및 메모리와 통신하고 메모리로부터 복수의 데이터 패킷에 대한 요청을 포함하는 제1 커맨드를 호스트로부터 수신하도록 구성되는 인터페이스 컨트롤러, 및 저장 컨트롤러를 포함할 수 있다. 저장 컨트롤러는 메모리로부터 복수의 데이터 패킷을 검색하고 검색된 데이터 패킷이 에러를 포함하는지를 식별하기 위해 각각 검색된 데이터 패킷 상에서 에러 검출 알고리즘을 수행하도록 구성될 수 있다. 저장 컨트롤러는 또한 마지막 검색된 데이터 패킷을 제외하고, 각각의 데이터 패킷이 검색됨에 따라 인터페이스 컨트롤러에 각각 검색된 데이터 패킷을 호스트에 송신하라고 명령하고 검색된 복수의 데이터 패킷에 대응하는 에러 정정 코드 패킷을 검색하고 검색된 복수의 데이터 패킷에서 잠재적 에러를 식별하고 정정하기 위해 ECC 알고리즘을 실행하도록 구성될 수 있다. 저장 컨트롤러는 또한 검색된 데이터 패킷이 에러를 가졌다면 인터페이스 컨트롤러에 정정된 데이터 패킷을 호스트에 송신하라고 명령하고 인터페이스 컨트롤러에 마지막 검색된 데이터 패킷을 송신하라고 명령하도록 구성될 수 있다.
본 개시의 다양한 목적, 특징, 및 장점은 동일한 참조 번호가 동일한 요소를 나타내는 이하의 도면과 관련하여 고려될 때 이하의 상세한 설명을 참조하여 더 완전히 이해될 수 있다. 이하의 도면은 예시의 목적만을 위한 것이고 본 발명을 제한하도록 의도되지 않으며, 그 범위는 이어지는 청구항에 제시된다.
도 1은 본 개시의 구현예에 따라 통신 프로토콜을 구현하는 예시적 시스템을 예시한다.
도 2a는 저장 매체로부터 데이터를 송신하는 종래의 예시적 구현예를 예시한다.
도 2b 및 도 2c는 본 개시의 양태에 따른 저장 매체로부터 데이터를 송신하는 예시적 구현예를 예시한다.
도 3a는 저장 매체로부터 데이터를 송신하는 종래의 예시적 구현예를 예시한다.
도 3b 및 도 3c는 본 개시의 양태에 따른 저장 매체로부터 데이터를 송신하는 예시적 구현예를 예시한다.
도 4는 본 개시의 양태에 따른 저장 매체로부터 데이터를 송신하는 예시적 방법을 예시한다.
도 5는 본 개시의 양태에 따른 저장 매체로부터 데이터를 송신하는 예시적 방법을 예시한다.
비휘발성 메모리에 저장된 데이터를 송신하는 시스템 및 방법이 제공된다. 데이터 패킷은 에러 정정을 수행하기 전에 비휘발성 메모리로부터 검색되면 호스트에 송신될 수 있다. 블록의 모든 데이터 패킷이 비휘발성 메모리로부터 검색되었다면, 에러 정정이 수행될 수 있다. 임의의 데이터 패킷이 에러와 함께 검색되었으면, 그것은 정정되고 호스트에 재송신될 수 있다.
도 1은 본 개시의 구현예에 따라 통신 프로토콜을 구현하는 예시적 시스템(100)을 예시한다. 시스템(100)은 타겟 디바이스(104) 및 스토리지(122)와 통신하는 호스트(102)를 포함한다. 호스트(102)는 사용자 애플리케이션(106), 운영 체제(108), 드라이버(110), 호스트 메모리(112), 큐(118a), 및 통신 프로토콜(114a)을 포함한다. 타겟 디바이스(104)는 스토리지(122)와 통신하는 인터페이스 컨트롤러(117), 통신 프로토콜(114b), 큐(118b), 및 저장 컨트롤러(120)를 포함한다.
호스트(102)는 운영 체제(108) 상에서 사용자 레벨 애플리케이션(106)을 실행할 수 있다. 운영 체제(108)는 호스트 메모리(112)와 인터페이스되는 드라이버(110)를 실행할 수 있다. 일부 구현예에서, 메모리(112)는 DRAM일 수 있다. 호스트 메모리(112)는 타겟(104)을 처리하기 위해 호스트(102)로부터의 커맨드를 저장하도록 큐(118a)를 사용할 수 있다. 저장되거나 인큐잉 된 커맨드의 예는 호스트(102)로부터의 판독 또는 기록 동작을 포함할 수 있다. 통신 프로토콜(114a)은 호스트(102)가 인터페이스 컨트롤러(117)를 사용하여 타겟 디바이스(104)와 통신하는 것을 허용할 수 있다.
타겟 디바이스(104)는 인터페이스 컨트롤러(117) 및 통신 프로토콜(114b)을 사용하여 호스트(102)와 통신할 수 있다. 통신 프로토콜(114b)은 저장 컨트롤러(120)를 통해 스토리지(122)에 액세스하기 위해 큐(118)를 제공할 수 있다. 예를 들어, 사용자 레벨 애플리케이션(106)은 데이터에 대한 저장 메모리(122) 액세스 요청을 발생시킬 수 있다. 타겟 디바이스(104)는 메모리 블록이 스토리지(122)로부터 검색될 때 에러를 정정하기 위해 에러 정정 코드를 구현할 수 있다.
상기 논의된 바와 같이, 에러 정정 코드, 예컨대 전체 BCH 코드를, 예를 들어 512B 블록 상에 실행하는 것은 스토리지(122)로부터 데이터를 판독하는 것만큼 많은 시간의 대략 절반을 소비할 수 있다. 종래의 시스템, 예를 들어 비-파이프라인 흐름을 구현하는 시스템은 저장 매체로부터 하나의 블록을 재구성하는 모든 비트를 통상 판독하고, 그 다음에 그것은 ECC 알고리즘을 실행할 수 있고, ECC 알고리즘이 완료된 후에 정정된 데이터를 호스트에 송신하기 시작할 수 있다. 이것은 도 2a에, 전체가 200으로 예시되며, 도 2a는 패킷, 예를 들어 4개의 패킷(202)을 저장 매체로부터 호스트로 송신하는 예시적 방식을 예시한다. 특정 예에서, 시스템은 우선 패킷(202) 및 ECC 패킷(204)을 판독하고, 그 다음에 에러 정정 알고리즘(206)을 수행하여 임의의 패킷이 에러를 갖는지를 판단하고 임의의 검출된 에러를 정정한다. 그 다음, 시스템은 전송이 완료된 것을 시그널링하기 위해 4개의 블록을 호스트 및 완료 패킷(208)에 송신할 수 있다. 당업자는 그러한 비트가 정정 방식의 설계에 의해 매체상에 어떻게 배열되는지에 따라 ECC 비트가 다수의 패킷일 수 있다는 것을 이해할 것이다.
본 개시의 양태에 따르면, 저장 매체로부터의 데이터 패킷은 에러 정정 알고리즘이 구현되기 전에 호스트에 송신된다. 이것은 도 2b에 전체가 210으로 예시된다. 개시된 시스템 및 방법은 우선 패킷(202)을 검색했다. 각각의 패킷이 저장 매체로부터 검색됨에 따라, 그것은 호스트에 송신된다. 예를 들어, 제1 패킷이 검색될 때, 그것은 호스트(212)에 송신된다. 제2 패킷이 검색될 때, 그것은 또한 호스트(214)에 송신된다. 이것은 모든 패킷(202)이 저장 매체로부터 검색될 때까지 계속된다. 모든 패킷이 검색된 후에, ECC 패킷(204)은 에러 정정 알고리즘(206)을 구현하기 위해 판독된다. 알고리즘이 임의의 에러를 검출하지 않으면, 최종 패킷(208)은 호스트에 전송이 완료된 것을 시그널링하기 위해 송신된다. 도 2b에 도시된 바와 같이, 개시된 방법은 저장 디바이스로부터 검색되는 데이터 패킷에 에러가 없을 때 대부분의 일반적인 경우에 상당한 레이턴시 세이빙(216)을 야기할 수 있다. 예를 들어, 레이턴시 세이빙은 대략 모든 데이터 패킷을 호스트에 송신하도록 요구되는 시간일 수 있다.
개시된 시스템 및 방법은 저장 매체로부터의 검색된 데이터가 에러를 포함하는 경우에도, 레이턴시 세이빙을 야기할 수 있다. 도 2c는 전체적으로 220에서 검색된 데이터 패킷 내의 에러의 경우에 데이터 패킷을 호스트에 송신할 때의 레이턴시 세이빙을 예시한다. 구체적으로, 예시된 예에서, 제2 데이터 패킷(218)은 에러를 포함한다. 개시된 방법은 패킷이 호스트에 송신되기 전에 에러 검출 및 정정 알고리즘이 완료되는 것을 대기하지 않기 때문에, 패킷(218)은 에러를 갖는 호스트에서 수신될 것이다. 에러가 검출될 때(206), 에러 데이터 패킷(218)이 정정되고, 정정된 데이터 패킷(220)이 호스트에 재송신된다. 하나보다 많은 패킷이 에러를 갖는 저장 매체로부터 검색되었다면, 이때 모든 에러 패킷이 정정되고 호스트에 재송신된다. 그 다음, 최종 패킷(208)은 호스트에 전송이 완료된 것을 시그널링하기 위해 송신된다. 또한, 도 2c에 도시된 바와 같이, 개시된 방법은 저장 디바이스로부터 검색되는 데이터 패킷에 에러가 있을 때에도, 예를 들어 검색된 데이터(224)에 하나의 에러가 있을 때 상당한 레이턴시 세이빙을 야기할 수 있다.
도 3a는 종래의 시스템의 비-파이프라인 흐름의 대안 구현예를 예시한다. 구체적으로, 도 3a는 전체적으로 300에서, 개별 완료 패킷을 송신하는 것 없이 패킷, 예를 들어 4개의 패킷(302)을 저장 매체로부터 호스트로 송신하는 다른 예시적 방식을 예시한다. 특정 예에서, 시스템은 우선 패킷(302) 및 ECC 패킷(304)을 검색하고, 그 다음 에러 정정 알고리즘(306)을 수행하여, 임의의 패킷이 에러를 갖는지를 판단하고 임의의 검출된 에러를 정정한다. 그 다음, 시스템은 4개의 블록을 호스트에 송신할 수 있다. 마지막 패킷(308)은 또한 호스트에 전송이 완료된 것을 시그널링할 수 있는 완료 패킷의 역할을 할 수 있다. 예를 들어 다른 완료 검출 절차를 위해 완료 신호를 제거할 수 있는 예시적 프로토콜은 발명의 명칭이 "Ack-less protocol for noticing completion of read requests"이고, 2014년 8월 22일에 출원된 미국 특허 출원 제14/466,538호 및 발명의 명칭이 "Acknowledgement-less protocol for solid state drive interface"이고, 2014년 9월 18일에 출원된 미국 특허 출원 제14/489,881호에 설명되며, 둘 다의 내용은 본원에 전체적으로 통합된다.
본 개시의 대안 양태에 따르면, 저장 매체로부터의 데이터 패킷(302)은 완료 패킷의 송신 없이, 에러 정정 알고리즘이 구현되기 전에 호스트에 송신될 수 있다. 이것은 도 3b에, 전체가 310으로 예시된다. 개시된 시스템 및 방법은 우선 패킷(302)을 검색한다. 각각의 패킷이 저장 매체로부터 검색됨에 따라, 그것은 호스트에 송신된다. 예를 들어, 제1 패킷이 검색될 때(312), 그것은 호스트에 송신된다. 제2 패킷이 검색될 때(314), 그것은 또한 호스트에 송신된다. 본 개시의 양태에 따르면, 마지막 패킷(308)은 에러 검출 및 정정 알고리즘이 구현될 때까지, 호스트에 송신되지 않는다. 구체적으로, ECC 패킷(304)이 저장 매체로부터 검색된 후에, ECC 알고리즘이 구현된다(306). 검출되는 에러가 없으면, 마지막 패킷(308)은 호스트에 송신된다. 마지막 패킷(308)이 호스트에서 수신될 때, 그것은 호스트에 전송이 완료된 것을 시그널링할 수 있다. 도 3b에 도시된 바와 같이, 개시된 방법은 저장 디바이스로부터 검색되는 데이터 패킷에 에러가 없을 때 대부분의 일반적인 경우에 상당한 레이턴시 세이빙(316)을 야기할 수 있다.
도 3c는 전체적으로 220에서 데이터 패킷 내의 에러의 경우에 데이터 패킷을 호스트에 송신할 때 및 완료 패킷이 없을 때의 레이턴시 세이빙을 예시한다. 구체적으로, 예시된 예에서, 제2 데이터 패킷(314)은 에러를 포함한다. 개시된 방법은 패킷이 호스트에 송신되기 전에 에러 검출 및 정정 알고리즘이 완료되는 것을 대기하지 않기 때문에, 제2 패킷(314)은 에러를 갖는 호스트에서 수신될 것이다. 본 개시의 양태에 따르면, 마지막 패킷(308)은 에러 검출 및 정정 알고리즘이 구현될 때까지 송신되지 않는다. 제2 패킷(314) 내의 에러가 검출될 때(306), 에러 데이터 패킷(314)이 정정되고, 정정된 데이터 패킷(316)이 호스트에 재송신된다. 정정된 패킷(316)이 송신된 후에, 방법은 마지막 데이터 패킷(308)을 송신할 수 있다. 마지막 패킷(308)이 호스트에서 수신될 때, 그것은 호스트에 전송이 완료된 것을 시그널링할 수 있다. 당업자는 마지막 데이터 패킷이 에러와 함께 검색되면, 정정된 데이터 패킷이 호스트에 송신되는 것을 이해할 것이다. 도 3c에 도시된 바와 같이, 개시된 방법은 저장 디바이스로부터 검색되는 데이터 패킷에 에러가 있을 때에도, 예를 들어 검색된 데이터(324)에 하나의 에러가 있을 때 상당한 레이턴시 세이빙을 야기할 수 있다.
본 개시의 대안 양태에 따르면, 에러가 검출된 후에, 에러 검색된 패킷의 서브세트만, 예를 들어 에러를 포함한 서브세트만이 호스트에 재송신된다. 서브세트가 호스트에서 수신될 때, 그것은 패킷의 적절한 부분을 중복 기록할 수 있다.
본 개시의 대안 양태에 따르면, 데이터 패킷이 저장 매체로부터 검색될 때, 임의의 에러가 검색된 데이터 패킷에 있는지를 식별하기 위해, 에러 검출 알고리즘, 예를 들어 신드롬 체크(얼마나 많은 비트가 에러에 있는지를 표시하는 값을 복귀시키는 다항식의 산출)가 수행된다. 검색된 패킷 중 어느 것도 에러를 갖지 않으면, 이때 추가 ECC 알고리즘이 구현되지 않는다.
도 4는 본 개시의 양태에 따른 데이터 패킷을 호스트에 송신하는 예시적 방법의 흐름도(400)를 예시한다. 메모리 컨트롤러는 메모리로부터 복수의 데이터 패킷을 검색할 수 있다(402). 메모리 컨트롤러가 데이터 패킷을 검색할 때, 메모리 컨트롤러는 그것을 호스트에 송신한다(404). 메모리 컨트롤러는 또한 검색된 데이터 패킷에 대응하는 ECC 패킷을 검색할 수 있다(406). ECC 패킷이 검색되면, 메모리 컨트롤러는 검색된 데이터 패킷에서 잠재적 에러를 식별하고 정정하기 위해 ECC 알고리즘을 실행할 수 있다(408). 그 다음, 방법은 검색된 데이터 패킷에 에러가 있는지를 체크할 수 있다(410). 검출된 에러가 없으면, 메모리 컨트롤러는 완료 패킷을 호스트에 송신할 수 있다(412). 검색된 데이터에 에러가 있으면, 메모리 컨트롤러는 정정된 데이터 패킷을 송신하고(414), 그 다음에 완료 패킷을 호스트에 송신할 수 있다(412).
도 5는 본 개시의 대안 양태에 따른 데이터 패킷을 호스트에 송신하는 예시적 방법의 흐름도(500)를 예시한다. 메모리 컨트롤러는 메모리로부터 복수의 데이터 패킷을 검색할 수 있다(502). 메모리 컨트롤러가 데이터 패킷을 검색할 때, 그것은 마지막 검색된 데이터 패킷을 제외하고, 각각의 패킷을 호스트에 송신할 수 있다(504). 메모리 컨트롤러는 또한 검색된 데이터 패킷에 대응하는 ECC 패킷을 검색할 수 있다(506). ECC 패킷이 검색되면, 메모리 컨트롤러는 검색된 데이터 패킷에서 잠재적 에러를 식별하고 정정하기 위해 ECC 알고리즘을 실행할 수 있다(508). 그 다음, 방법은 검색된 데이터 패킷에 에러가 있는지를 체크할 수 있다(510). 검출된 에러가 없으면, 메모리 컨트롤러는 마지막 검색된 패킷을 호스트에 송신할 수 있다(512). 검색된 데이터에 에러가 있으면, 메모리 컨트롤러는 정정된 데이터 패킷을 송신하고(514), 그 다음 마지막 검색된 패킷을 호스트에 송신할 수 있다(512).
당업자는 본원에 설명되는 명세서 및 도면 내의 다양한 예시가 전자 하드웨어, 컴퓨터 소프트웨어, 또는 둘 다의 조합으로 구현될 수 있는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 호환성을 예시하기 위해, 다양한 예시적 블록, 모듈, 요소, 구성요소, 방법, 및 알고리즘은 일반적으로 그것의 기능에 관하여 상기 설명되었다. 그러한 기능성이 하드웨어, 소프트웨어, 또는 조합으로 구현되는지는 전체 시스템상에 부과되는 특정 애플리케이션 및 설계 제약에 의존한다. 숙련공은 각각의 특정 애플리케이션에 대한 여러 가지 방식으로 설명된 기능성을 구현할 수 있다. 다양한 구성요소 및 블록은 모두 대상 기술의 범위로부터 벗어나는 것 없이 상이하게 배열(예를 들어, 상이한 순서로 배열, 또는 상이한 방식으로 분할)될 수 있다.
더욱이, 통신 프로토콜의 일 구현예는 하나의 컴퓨터 시스템에서 집중적 방식으로, 또는 상이한 요소가 여러 개의 상호연결된 컴퓨터 시스템에 걸쳐 확산되는 분산 방식으로 실현될 수 있다. 본원에 설명되는 방법을 수행하도록 구성된 임의의 종류의 컴퓨터 시스템, 또는 다른 장치는 본원에 설명되는 기능을 수행하는 데 적합하다.
하드웨어 및 소프트웨어의 전형적인 조합은 로딩되고 실행될 때, 컴퓨터 시스템이 본원에 설명되는 방법을 수행하도록 컴퓨터 시스템을 제어하는 컴퓨터 프로그램을 갖는 범용 컴퓨터 시스템일 수 있다. 통신 프로토콜에 대한 방법은 또한 컴퓨터 프로그램 제품에 내장될 수 있으며, 컴퓨터 프로그램 제품은 본원에 설명되는 방법의 구현을 가능하게 하는 모든 특징을 포함하고, 컴퓨터 시스템에 로딩될 때 이러한 방법을 수행할 수 있다.
본 맥락에서의 컴퓨터 프로그램 또는 애플리케이션은 정보 처리 능력을 갖는 시스템이 특정 기능을 직접 또는 a) 다른 언어, 코드 또는 표기로의 변환; b) 상이한 재료 형태로의 복사 중 어느 하나 또는 둘 다 후에 수행하게 하도록 의도되는 한 세트의 명령어의 임의의 언어, 코드 또는 표기로 임의의 표현을 의미한다. 중요하게, 이러한 통신 프로토콜은 그것의 사상 또는 본질적 속성으로부터 벗어나는 것 없이 다른 특정 형태로 구체화될 수 있고, 따라서, 본 발명의 범위를 표시하는 데에 있어서, 상술한 명세서보다는 오히려, 이하의 청구항이 참조되어야 한다.
통신 프로토콜은 이러한 예시된 구현예를 특히 참조하여 상세히 설명되었다. 그러나 상술한 명세서에 설명되는 바와 같이 본 개시의 사상 및 범위 내에 다양한 수정 및 변경이 이루어질 수 있고, 그러한 수정 및 변경은 본 개시의 균등물 및 일부로 간주되어야 하는 것이 분명할 것이다.

Claims (20)

  1. 통신 프로토콜로 동작을 수행하는 방법으로서,
    호스트 및 메모리와 통신하는 타겟을 제공하는 단계;
    상기 타겟에 의해, 상기 메모리로부터의 복수의 데이터 패킷에 대한 요청을 포함하는 제1 커맨드를 상기 호스트로부터 수신하는 단계;
    상기 타겟에 의해, 상기 메모리로부터 상기 복수의 데이터 패킷을 검색하는 단계;
    각각의 데이터 패킷이 검색됨에 따라, 상기 타겟에 의해, 각각 검색된 데이터 패킷을 상기 호스트에 송신하는 단계;
    상기 타겟에 의해, 상기 검색된 복수의 데이터 패킷에 대응하는 에러 정정 코드(ECC) 패킷을 검색하는 단계;
    상기 검색된 복수의 데이터 패킷에서 잠재적 에러를 식별하고 정정하기 위해 상기 타겟에 의해, ECC 알고리즘을 실행하는 단계;
    상기 검색된 데이터 패킷 중 어느 것이 에러를 가졌다면 상기 타겟에 의해, 정정된 데이터 패킷을 상기 호스트에 송신하는 단계; 및
    상기 타겟에 의해, 완료 패킷을 상기 호스트에 송신하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 메모리는 비휘발성 메모리인 방법.
  3. 제2항에 있어서, 상기 비휘발성 메모리는 상 변화 메모리(PCM)인 방법.
  4. 제1항에 있어서, 상기 ECC 알고리즘은 BCH 코드를 구현하는 방법.
  5. 통신 프로토콜로 동작을 수행하는 방법으로서,
    호스트 및 메모리와 통신하는 타겟을 제공하는 단계;
    상기 타겟에 의해, 상기 메모리로부터의 복수의 데이터 패킷에 대한 요청을 포함하는 제1 커맨드를 상기 호스트로부터 수신하는 단계;
    상기 타겟에 의해, 상기 메모리로부터 상기 복수의 데이터 패킷을 검색하는 단계;
    마지막 검색된 데이터 패킷을 제외하고, 각각의 데이터 패킷이 검색됨에 따라, 상기 타겟에 의해, 각각 검색된 데이터 패킷을 상기 호스트에 송신하는 단계;
    상기 타겟에 의해, 상기 검색된 복수의 데이터 패킷에 대응하는 에러 정정 코드(ECC) 패킷을 검색하는 단계;
    상기 검색된 복수의 데이터 패킷에서 잠재적 에러를 식별하고 정정하기 위해 상기 타겟에 의해, ECC 알고리즘을 실행하는 단계;
    상기 검색된 데이터 패킷 중 어느 것이 에러를 가졌다면 상기 타겟에 의해, 정정된 데이터 패킷을 상기 호스트에 송신하는 단계; 및
    상기 타겟에 의해, 상기 마지막 검색된 데이터 패킷을 송신하는 단계를 포함하는 방법.
  6. 제5항에 있어서, 상기 메모리는 비휘발성 메모리인 방법.
  7. 제6항에 있어서, 상기 비휘발성 메모리는 상 변화 메모리(PCM)인 방법.
  8. 제5항에 있어서, 상기 ECC 알고리즘은 BCH 코드를 구현하는 방법.
  9. 통신 프로토콜로 동작을 수행하는 방법으로서,
    호스트 및 메모리와 통신하는 타겟을 제공하는 단계;
    상기 타겟에 의해, 상기 메모리로부터의 복수의 데이터 패킷에 대한 요청을 포함하는 제1 커맨드를 상기 호스트로부터 수신하는 단계;
    상기 타겟에 의해, 상기 메모리로부터의 상기 복수의 데이터 패킷을 검색하는 단계;
    상기 검색된 데이터 패킷이 에러를 포함하는지를 식별하기 위해 각각 검색된 데이터 패킷 상에서 에러 검출 알고리즘을 수행하는 단계;
    각각의 데이터 패킷이 검색됨에 따라, 상기 타겟에 의해, 각각 검색된 데이터 패킷을 상기 호스트에 송신하는 단계;
    상기 타겟에 의해, 상기 검색된 복수의 데이터 패킷에 대응하는 에러 정정 코드(ECC) 패킷을 검색하는 단계;
    상기 검색된 데이터 패킷이 에러를 가졌다면, 상기 검색된 복수의 데이터 패킷에서 잠재적 에러를 정정하기 위해 상기 타겟에 의해, ECC 알고리즘을 실행하는 단계;
    상기 검색된 데이터 패킷 중 어느 것이 에러를 가졌다면 상기 타겟에 의해, 정정된 데이터 패킷을 상기 호스트에 송신하는 단계; 및
    상기 타겟에 의해, 완료 패킷을 상기 호스트에 송신하는 단계를 포함하는 방법.
  10. 제9항에 있어서, 상기 메모리는 비휘발성 메모리인 방법.
  11. 호스트 및 메모리와 통신하고 상기 메모리로부터의 복수의 데이터 패킷에 대한 요청을 포함하는 제1 커맨드를 상기 호스트로부터 수신하도록 구성되는 인터페이스 컨트롤러; 및
    저장 컨트롤러를 포함하며, 상기 저장 컨트롤러는,
    상기 메모리로부터 상기 복수의 데이터 패킷을 검색하고;
    각각의 데이터 패킷이 검색됨에 따라, 상기 인터페이스 컨트롤러에 각각 검색된 데이터 패킷을 상기 호스트에 송신하라고 명령하고;
    상기 검색된 복수의 데이터 패킷에 대응하는 에러 정정 코드(ECC) 패킷을 검색하고;
    상기 검색된 복수의 데이터 패킷에서 잠재적 에러를 식별하고 정정하기 위해 ECC 알고리즘을 실행하고;
    상기 검색된 데이터 패킷 중 어느 것이 에러를 가졌다면 상기 인터페이스 컨트롤러에 정정된 데이터 패킷을 상기 호스트에 송신하라고 명령하고;
    상기 인터페이스 컨트롤러에 완료 패킷을 상기 호스트에 송신하라고 명령하도록 구성되는 메모리 컨트롤러.
  12. 제11항에 있어서, 상기 메모리는 비휘발성 메모리인 메모리 컨트롤러.
  13. 제12항에 있어서, 상기 비휘발성 메모리는 상 변화 메모리(PCM)인 메모리 컨트롤러.
  14. 제11항에 있어서, 상기 ECC 알고리즘은 BCH 코드를 구현하는 메모리 컨트롤러.
  15. 호스트 및 메모리와 통신하고 상기 메모리로부터의 복수의 데이터 패킷에 대한 요청을 포함하는 제1 커맨드를 상기 호스트로부터 수신하도록 구성되는 인터페이스 컨트롤러; 및
    저장 컨트롤러를 포함하며, 상기 저장 컨트롤러는,
    상기 메모리로부터 상기 복수의 데이터 패킷을 검색하고;
    마지막 검색된 데이터 패킷을 제외하고, 각각의 데이터 패킷이 검색됨에 따라, 상기 인터페이스 컨트롤러에 각각 검색된 데이터 패킷을 상기 호스트에 송신하라고 명령하고;
    상기 검색된 복수의 데이터 패킷에 대응하는 에러 정정 코드(ECC) 패킷을 검색하고;
    상기 검색된 복수의 데이터 패킷에서 잠재적 에러를 식별하고 정정하기 위해 ECC 알고리즘을 실행하고;
    상기 검색된 데이터 패킷 중 어느 것이 에러를 가졌다면 상기 인터페이스 컨트롤러에 정정된 데이터 패킷을 상기 호스트에 송신하라고 명령하고;
    상기 인터페이스 컨트롤러에 상기 마지막 검색된 데이터 패킷을 송신하라고 명령하도록 구성되는 메모리 컨트롤러.
  16. 제15항에 있어서, 상기 메모리는 비휘발성 메모리인 메모리 컨트롤러.
  17. 제16항에 있어서, 상기 비휘발성 메모리는 상 변화 메모리(PCM)인 메모리 컨트롤러.
  18. 제15항에 있어서, 상기 ECC 알고리즘은 BCH 코드를 구현하는 메모리 컨트롤러.
  19. 호스트 및 메모리와 통신하고 상기 메모리로부터의 복수의 데이터 패킷에 대한 요청을 포함하는 제1 커맨드를 상기 호스트로부터 수신하도록 구성되는 인터페이스 컨트롤러; 및
    저장 컨트롤러를 포함하며, 상기 저장 컨트롤러는,
    상기 메모리로부터 상기 복수의 데이터 패킷을 검색하고;
    상기 검색된 데이터 패킷이 에러를 포함하는지를 식별하기 위해 각각 검색된 데이터 패킷 상에서 에러 검출 알고리즘을 수행하고;
    마지막 검색된 데이터 패킷을 제외하고, 각각의 데이터 패킷이 검색됨에 따라, 상기 인터페이스 컨트롤러에 각각 검색된 데이터 패킷을 상기 호스트에 송신하라고 명령하고;
    상기 검색된 복수의 데이터 패킷에 대응하는 에러 정정 코드(ECC) 패킷을 검색하고;
    상기 검색된 복수의 데이터 패킷에서 잠재적 에러를 식별하고 정정하기 위해 ECC 알고리즘을 실행하고;
    상기 검색된 데이터 패킷 중 어느 것이 에러를 가졌다면 상기 인터페이스 컨트롤러에 정정된 데이터 패킷을 상기 호스트에 송신하라고 명령하고;
    상기 인터페이스 컨트롤러에 상기 마지막 검색된 데이터 패킷을 송신하라고 명령하도록 구성되는 메모리 컨트롤러.
  20. 제19항에 있어서, 상기 메모리는 비휘발성 메모리인 메모리 컨트롤러.
KR1020160152613A 2015-11-16 2016-11-16 에러 정정 전에 비휘발성 고체 상태 디바이스로부터 데이터를 송신하는 시스템 및 방법 KR101967955B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/942,516 2015-11-16
US14/942,516 US20170141878A1 (en) 2015-11-16 2015-11-16 Systems and methods for sending data from non-volatile solid state devices before error correction

Publications (2)

Publication Number Publication Date
KR20170066226A true KR20170066226A (ko) 2017-06-14
KR101967955B1 KR101967955B1 (ko) 2019-04-10

Family

ID=58640078

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160152613A KR101967955B1 (ko) 2015-11-16 2016-11-16 에러 정정 전에 비휘발성 고체 상태 디바이스로부터 데이터를 송신하는 시스템 및 방법

Country Status (5)

Country Link
US (1) US20170141878A1 (ko)
JP (1) JP6389499B2 (ko)
KR (1) KR101967955B1 (ko)
CN (1) CN107066344A (ko)
DE (1) DE102016013622A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305861A (ja) * 1999-04-26 2000-11-02 Hitachi Ltd 記憶装置およびメモリカード
JP2010537326A (ja) * 2007-08-29 2010-12-02 モサイド・テクノロジーズ・インコーポレーテッド デイジーチェーンメモリの構成および使用
JP2011090349A (ja) * 2009-09-24 2011-05-06 Toshiba Corp 半導体装置及びホスト機器
KR20140025595A (ko) * 2011-09-02 2014-03-04 애플 인크. 레이턴시를 감소시키고 호스트에 대한 스루풋을 개선하기 위한 동시적인 데이터 전송 및 에러 제어
US20150149857A1 (en) * 2013-11-27 2015-05-28 Intel Corporation Error correction in memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7130958B2 (en) * 2003-12-02 2006-10-31 Super Talent Electronics, Inc. Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes
FI110563B (fi) * 2000-06-20 2003-02-14 Nokia Corp Resurssien varaus pakettimuotoisessa tiedonsiirrossa
US8402180B2 (en) * 2010-03-26 2013-03-19 Atmel Corporation Autonomous multi-packet transfer for universal serial bus
US9116824B2 (en) * 2013-03-15 2015-08-25 Sandisk Technologies Inc. System and method to reduce read latency of a data storage device
US9535870B2 (en) * 2013-09-18 2017-01-03 HGST Netherlands B.V. Acknowledgement-less protocol for solid state drive interface
US9513869B2 (en) * 2013-09-18 2016-12-06 HGST Netherlands B.V. Doorbell-less endpoint-initiated protocol for storage devices
US9760295B2 (en) * 2014-09-05 2017-09-12 Toshiba Memory Corporation Atomic rights in a distributed memory system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305861A (ja) * 1999-04-26 2000-11-02 Hitachi Ltd 記憶装置およびメモリカード
JP2010537326A (ja) * 2007-08-29 2010-12-02 モサイド・テクノロジーズ・インコーポレーテッド デイジーチェーンメモリの構成および使用
JP2011090349A (ja) * 2009-09-24 2011-05-06 Toshiba Corp 半導体装置及びホスト機器
KR20140025595A (ko) * 2011-09-02 2014-03-04 애플 인크. 레이턴시를 감소시키고 호스트에 대한 스루풋을 개선하기 위한 동시적인 데이터 전송 및 에러 제어
JP2014529132A (ja) * 2011-09-02 2014-10-30 アップル インコーポレイテッド 待ち時間を短縮しホストへのスループットを改善する同時データ転送及びエラー制御
US20150149857A1 (en) * 2013-11-27 2015-05-28 Intel Corporation Error correction in memory

Also Published As

Publication number Publication date
KR101967955B1 (ko) 2019-04-10
CN107066344A (zh) 2017-08-18
JP6389499B2 (ja) 2018-09-12
DE102016013622A1 (de) 2017-05-18
US20170141878A1 (en) 2017-05-18
JP2017151955A (ja) 2017-08-31

Similar Documents

Publication Publication Date Title
US9009566B2 (en) Outputting information of ECC corrected bits
TWI546814B (zh) 具有錯誤校正邏輯之記憶體裝置
EP2183745B1 (en) Ecc functional block placement in a multi-channel mass storage device
US9513992B2 (en) Method and apparatus to perform concurrent read and write memory operations
EP2963554A1 (en) Two-level system main memory
US10628260B2 (en) Methods and systems for implementing redundancy in memory controllers
US9384091B2 (en) Error code management in systems permitting partial writes
WO2016175842A1 (en) Retrieve data block from determined devices
TW200935233A (en) System and method for data read of a synchronous serial interface NAND
EP2787440A1 (en) Information processing device, program, and method
US20140026011A1 (en) Memory with Dynamic Error Detection and Correction
US12013756B2 (en) Method and memory system for writing data to dram submodules based on the data traffic demand
KR20210121654A (ko) 메모리 시스템의 데이터 에러를 복구하는 장치 및 방법
TWI759370B (zh) 記憶體裝置、記憶體系統及其操作方法
US20140157082A1 (en) Data storage device and method for processing error correction code thereof
US8489978B2 (en) Error detection
US20070250283A1 (en) Maintenance and Calibration Operations for Memories
US9304854B2 (en) Semiconductor device and operating method thereof
KR101967955B1 (ko) 에러 정정 전에 비휘발성 고체 상태 디바이스로부터 데이터를 송신하는 시스템 및 방법
KR102449346B1 (ko) 메모리 장치의 내부 상태에 따라 메모리 컨트롤러의 동작을 가변하는 메모리 시스템
US10740179B2 (en) Memory and method for operating the memory
US9703625B1 (en) Method and apparatus for detecting or correcting multi-bit errors in computer memory systems
TW202407547A (zh) 儲存裝置以及處理自主機計算裝置至儲存裝置的命令的方法
JP2016024571A (ja) 誤り訂正システム、誤り訂正方法、および誤り訂正プログラム
KR20140042404A (ko) 반도체 장치 및 그 동작 방법

Legal Events

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