KR20150135311A - 에러 정정 로직을 갖는 메모리 디바이스 - Google Patents

에러 정정 로직을 갖는 메모리 디바이스 Download PDF

Info

Publication number
KR20150135311A
KR20150135311A KR1020157026567A KR20157026567A KR20150135311A KR 20150135311 A KR20150135311 A KR 20150135311A KR 1020157026567 A KR1020157026567 A KR 1020157026567A KR 20157026567 A KR20157026567 A KR 20157026567A KR 20150135311 A KR20150135311 A KR 20150135311A
Authority
KR
South Korea
Prior art keywords
memory device
read data
data
error
link
Prior art date
Application number
KR1020157026567A
Other languages
English (en)
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 KR20150135311A publication Critical patent/KR20150135311A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

데이터는 메모리 디바이스 내의 메모리 셀로부터 판독된다. 판독 데이터는 메모리 디바이스의 외부에 있는 메모리 제어기로 링크를 통해 전달된다. 판독 데이터의 전달이 진행되는 동안 판독 데이터의 에러 검출이 에러 정정 코드를 이용하여 메모리 디바이스 내부에서 수행된다.

Description

에러 정정 로직을 갖는 메모리 디바이스{MEMORY DEVICE HAVING ERROR CORRECTION LOGIC}
메모리 디바이스는 데이터를 저장하기 위해 컴퓨팅 시스템 내에서 이용될 수 있다. 일부 경우에, 메모리 디바이스는 프로세서 및 지속 저장 서브시스템 사이에서 제공될 수 있고, 이것은 종종 디스크-기반 저장 디바이스(들)와 같은 저속 저장 디바이스(들)로 구현될 수 있다. 프로세서는 지속 저장 서브시스템에서보다 메모리 디바이스에서 더 빨리 데이터 액세스를 수행할 수 있다.
메모리 디바이스에서 발생할 수 있는 데이터 에러를 다루기 위해, 에러 검출 및 정정 기술이 메모리 디바이스 내에 저장된 데이터를 보호하도록 채용될 수 있다. 에러 정정 코드는 메모리 디바이스 내에 데이터와 함께 저장될 수 있고, 에러 정정 코드는 메모리 디바이스로부터 판독된 데이터 내의 에러를 검출하고 정정하는 데 이용될 수 있다. 에러 검출 및 정정은 메모리 액세스 대기시간에서의 증가를 야기할 수 있고, 이것은 메모리 디바이스의 데이터가 액세스될 수 있는 속도를 감소시킬 수 있다.
일부 실시예가 다음의 도면을 참조하여 설명된다.
도 1은 일부 구현에 따른 메모리 제어기 및 메모리 디바이스를 포함하는 예시적 시스템의 블록도이다.
도 2는 일부 구현에 따른 인라인 에러 검출 및 정정 프로세스의 흐름도이다.
도 3은 추가 구현에 따른 예시적 시스템의 블록도이다.
메모리 디바이스의 크기가 지속적으로 감소됨에 따라, 메모리 디바이스는 점점 더 데이터 에러에 영향을 받는 경향이 있을 수 있고, 이 결과로 메모리 디바이스에서의 데이터 에러 레이트가 증가된다. 컴퓨팅 시스템(예컨대, 개인용 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 스마트폰, 서버 컴퓨터, 저장 시스템, 통신 노드 등)에서 이용될 수 있는 다양한 다른 타입의 메모리 디바이스가 존재한다.
메모리 디바이스의 예들은 동적 랜덤 액세스 메모리(DRAM) 디바이스, 플래쉬 메모리 디바이스, 위상 변화 메모리 디바이스, 멤리스터 메모리 디바이스(memristor memory device) 등을 포함한다. 멤리스터 메모리 디바이스는 각 셀의 저항 레벨에 기초하여 데이터를 저장하는 멤리스터를 이용하여 데이터를 저장할 수 있다. 멤리스터를 통해 제 1 방향으로 충분히 큰 전기 전류가 흐를 때 멤리스터의 전기 저항은 증가한다. 충분히 큰 전기 전류가 멤리스터를 통해 반대 방향으로 흐를 때, 멤리스터의 저항은 감소한다. 전류가 멈추면, 멤리스터는 그것이 가졌던 마지막 저항을 유지하고, 이것은 멤리스터에 의해 저장된 데이터 비트의 표시를 제공한다.
위상 변화 메모리 디바이스의 메모리 셀은 또한 효과적인 가변 저항이 된다. 일부 경우에서, 다양한 저항은 칼코겐화물 글라스(chalcogenide glass)로 형성될 수 있다. 위상 변화 메모리 셀에 기록하기 위해 셀은 가열되고 이것은 재료를 녹이며 이것은 이어서 냉각된다. 냉각의 레이트는 결과적인 고체 재료의 크리스탈 크기를 제어하고, 이것은 메모리 셀의 저항을 제어한다. 상이한 저항 레벨들은 상이한 데이터 상태들을 나타낼 수 있다.
일부 경우에서, 데이터 에러 레이트는 메모리 디바이스에 데이터를 기록하기 위한 기록이 어떻게 수행되는지에 의해 영향을 받을 수 있다. 예를 들어, 멤리스터 메모리 디바이스를 이용하여, 전기 전류 흐름이 데이터 상태를 특정 멤리스터에 기록하는데 이용될 수 있다. 상대적으로 낮은 전기 전류 레벨이 멤리스터에 기록하는데 이용될 수 있어서 멤리스터의 수명이 연장될 수 있다. 그러나, 기록을 위한 상대적으로 낮은 전기 전류 레벨은 높은 레이트의 데이터 비트 에러를 초래할 수 있다.
다른 타입의 메모리 디바이스 또한 증가된 데이터 에러 레이트를 야기할 수 있는 각 팩터와 연관될 수 있다.
일부 시스템에서, 에러 검출 및 정정은 메모리 디바이스(또는 다수의 메모리 디바이스들)의 액세스를 관리하는 데 이용되는 메모리 제어기에서 수행될 수 있다. 그러나, 메모리 제어기에서 에러 검출 및 정정을 수행하는 것은 메모리 액세스 대기 시간을 증가시킬 수 있다. 에러 검출 및 정정이 메모리 제어기에 적용될 때, 메모리 제어기는 우선 메모리 디바이스로부터 판독 데이터를 수신해야 한다. 모든 판독 데이터가 (대응하는 에러 정정 코드에 따라) 수신된 이후에 메모리 제어기는 이어서 메모리 정정 검출 및 정정을 적용할 수 있고, 이것은 메모리 디바이스로부터의 데이터를 데이터의 요청자에게 제공하는 것과 관련된 전체 시간에 추가될 수 있는 계산을 포함한다. 요청자는 프로세서 또는 컴퓨팅 시스템 내의 다른 디바이스가 될 수 있다.
일부 구현에 따라, 메모리 디바이스로부터 판독된 데이터가 메모리 디바이스 및 메모리 제어기 사이의 데이터 링크를 통해 배달될 때, 인라인(inline) 에러 검출 및 정정 기술 또는 메커니즘이 메모리 디바이스 내의 데이터의 인라인 에러 검출 및 정정을 수행하도록 제공된다. 메모리 디바이스 내부의 데이터 경로는 병렬 경로일 수 있고, 여기서, 데이터 비트의 집합(예컨대, 행(row))은 (에러 정정 코드에 대응하는 비트와 함께) 병렬로 판독될 수 있다. 일단 병렬로 판독되면, 판독 데이터의 일부가 메모리 디바이스 및 메모리 제어기 사이의 링크를 따라 통신되는 동안 메모리 디바이스는 에러 검출 및 정정을 판독 데이터에 적용하는 것을 진행할 수 있다. 에러 검출 및 정정 계산이 메모리 디바이스에서 완료되기 전에 판독 데이터의 일부가 메모리 디바이스로부터 메모리 제어기로 제공될 수 있다. 결과적으로, 에러 검출 및 정정은 에러가 검출되지 않는 정상적인 경우에 데이터 액세스 대기 시간을 추가하지 않는다.
도 1은 메모리 디바이스(102) 및 메모리 제어기(104)를 포함하는 예시적 구성을 도시한다. 메모리 디바이스(102) 및 메모리 제어기(104)는 데이터 링크(106)를 통해 연결된다. 일부 예에서, 데이터 링크(106)는 시리얼라이저/디시리얼라이저(SerDes) 링크와 같은 직렬 링크이다. 다른 예에서, 데이터 링크(106)는 상이한 타입의 데이터 링크가 될 수 있다.
메모리 디바이스(102)는 통신 인터페이스(108)를 포함할 수 있고, 이것은 메모리 디바이스(102)로 하여금 직렬 링크(106)를 통해 통신할 수 있게 한다. 일부 구현에서, 통신 인터페이스(108)는 병렬-직렬 컨버터 및 직렬-병렬 컨버터를 포함하여 (직렬 링크(106)에 이용되는) 직렬 포맷과 (메모리 디바이스(102) 내부의 병렬 링크(110)에 이용되는) 병렬 포맷 사이를 변환할 수 있다. 병렬 링크(110)는 데이터 비트가 병렬로 통신될 수 있는 다수의 데이터 경로를 갖는다. 반대로, 직렬 링크(106)는 데이터 비트가 직렬로 통신될 수 있는 하나의 데이터 경로를 갖는다.
병렬 링크(110)는 스토리지 어레이(112) 및 통신 인터페이스(108) 사이에 제공될 수 있다. 스토리지 어레이(112)는 메모리 셀의 어레이를 포함하고, 이것은 메모리 디바이스(102)의 타입에 의존하는 DRAM 셀, 플래쉬 메모리 셀, 멤리스터 셀, 위상 변화 메모리 셀 등이 될 수 있다. 보다 일반적으로, 메모리 셀은 데이터 비트(또는 데이터 비트들)를 저장하는데 이용되는 회로를 나타낸다.
병렬 링크(110)는 데이터 비트의 집합(예컨대, 데이터 비트의 행 또는 데이터 비트의 일부 다른 세그먼트)이 스토리지 어레이(112)로부터 동일한 시각에 검색되도록 허용한다. 예를 들어, 데이터 비트의 집합은 에러 정정 코드(ECC) 비트뿐만 아니라 판독 데이터를 포함할 수 있다. 일단 스토리지 어레이(112)로부터 판독되면, 판독 데이터 및 ECC는 에러 검출 및 정정 로직(114)(여기서 "ECC 로직(114)"로 표시됨)까지 병렬 링크(110) 상에서 이용가능하다.
또한, 병렬 링크(110) 상의 판독 데이터는 통신 인터페이스(108)에 제공될 수 있고, 여기서 판독 데이터는 링크(106)를 통한 통신에 적합한 포맷으로 변환된다. 예를 들어, 위에 언급한 바대로, 통신 인터페이스(108)는 병렬-직렬 변환을 적용할 수 있다.
일부 구현에 따라, 판독 데이터가 통신 인터페이스(108)를 통해 병렬 링크(110)로부터 직렬 링크(106)로 제공되고, ECC 로직(114)은 판독 데이터 상의 에러 검출 및 정정에 관한 계산을 수행할 수 있다. 적용될 수 있는 에러 검출 및 정정 기술의 예들은 리드-솔로몬 ECC 기술(Reed-Solomon ECC technique)과 같은 심볼-기반 ECC 기술 또는 BCH 기술과 같은 비트-기반 ECC 기술을 포함한다. 비록 참조는 예시적 ECC 기술로 형성되었지만 다른 구현에서 ECC 로직(114)이 다른 타입의 에러 검출 및 정정 기술을 적용할 수 있음이 인식되어야 한다.
ECC 로직(114)에 의해 수행된 에러 검출 및 정정 기술은 인라인 에러 검출 및 정정 기술로 고려되고, 에러 검출 및 정정은 스토리지 어레이(112)로부터 판독된 데이터의 일부를 통신 인터페이스(108)가 직렬 링크(106)를 통해 메모리 제어기(104)로 전달하는 동안 수행될 수 있다. 다시 말해서, 통신 인터페이스(108)는 메모리 디바이스(102) 내부의 ECC 로직(114)이 판독 데이터의 에러 검출 및 정정을 완료하기 전에 직렬 링크(106)를 통해 메모리 디바이스(102)의 스토리지 어레이(112)로부터 메모리 제어기(104)로 판독 데이터를 전달할 수 있다.
ECC 로직(114)을 이용하여 인라인 에러 검출 및 정정을 수행함으로써, 스토리지 어레이(112)로부터 판독된 데이터는 메모리 액세스 시간으로의 추가 없이 에러로부터 보호된다. 예를 들어, 메모리 디바이스(102)로부터의 판독 데이터를 메모리 제어기(104)로 전달하기 전에 에러 검출 및 정정이 ECC 로직(114)에 의해 완료될 때까지 메모리 디바이스(102)가 대기해야 한다면, 메모리 액세스 대기 시간이 증가할 것이다.
메모리 디바이스(102)는 또한 데이터 액세스 로직(116)을 포함하는데, 이것은 통신 인터페이스(108)를 통해 메모리 제어기(104)로부터 수신된 명령에 응답하여 스토리지 어레이(112)에 각 명령을 발행한다. 메모리 제어기(104)로부터 수신된 요청은 판독 요청 또는 기록 요청이 될 수 있다.
만약 ECC 로직(114)이 메모리 디바이스(102)로부터 메모리 제어기(104)로 전달된 판독 데이터에 에러가 없다고 판정하면, 메모리 제어기(104)로 전달된 판독 데이터가 에러를 가지고 있지 않기 때문에 ECC 로직(114)은 추가의 다른 동작을 취하지 않는다.
그러나, 만약 ECC 로직(114)이 메모리 제어기(104)로 전달되거나 전달되었던 판독 데이터 내에 에러가 존재한다고 판정하면, ECC 로직(114)은 전달된 데이터 내의 에러의 존재에 관한 표시를 메모리 제어기(104)에 제공할 수 있다. 이 표시는 판독 트랜잭션이 실패했다는 표시가 될 수 있다. 트랜잭션이 실패했다는 표시는 명시적인 실패 표시(특정 상태로 어써팅된(asserted) 신호)가 될 수 있다. 반대로, 이 표시는 직렬 링크(106)를 통한 통신을 보호하는데 이용된 체크 코드를 "오염(poisoning)"시키는 것에 의해 메모리 제어기(104)로 암시적으로 송신할 수 있다. 체크 코드의 일 예는 순환 중복 검사(CRC) 코드이다. 직렬 링크(106)를 통해 전달된 데이터를 보호하기 위해 통신 인터페이스(108)는 CRC 코드를 생성할 수 있는데, 이것은 직렬 링크(106)를 통해 전달될 데이터의 콘텐츠에 기초하여 계산된다. CRC 코드는 이어서 직렬 링크(106)를 통해 실제 데이터와 함께 제공될 수 있다. 메모리 제어기(104)에서, 메모리 제어기는 수신된 데이터에 기초하여 CRC 코드를 재-생성하고, 재-생성된 CRC 코드를 수신된 CRC 코드와 비교한다. 만약 CRC 코드들이 매칭되면, 그러면 직렬 링크(106)를 통한 데이터 전달이 성공했음을 의미한다. 그러나, 만약 CRC 코드들이 매칭되지 않으면, 그러면 이것은 직렬 링크(106)에 걸쳐 통신 에러가 발생했다는 표시가 된다. CRC 코드를 오염시키는 것은 CRC 코드를 고의로 잘못되거나 무효한 것으로 만드는 것을 나타내며, 결국 수신된 데이터에 응답하여 메모리 제어기(104)에서 수행되는 CRC 코드 비교가 데이터 통신 에러의 판정을 할 수 있게 한다.
일단 ECC 로직(114)이 데이터 내의 에러를 검출하면, 일부 구현에서 ECC 로직(114)은 에러를 정정할 수 있는데, 여기서 데이터 에러는 연관된 에러 정정 코드를 이용하여 정정가능한 타입의 것임이 가정된다. 예를 들어, 데이터 비트의 특정 집합과 연관된 에러 정정 코드는 에러의 n 비트들까지 정정할 수 있다(여기서, n≥1).
메모리 제어기(104)가 실패 트랜잭션의 표시(위에 언급한 바와 같은 명시적인 표시 또는 암시적인 표시 둘 중 하나)를 수신할 때, 일부 구현에서 메모리 제어기(104)는 에러 데이터의 판독을 재시도할 수 있다. 재시도된 판독에 응답하여, 통신 인터페이스(108)는 정정된 데이터(ECC 로직(114)에 의해 정정됨)를 메모리 제어기(104)에 제공할 수 있다.
대안적인 구현에서, 만약 ECC 로직(114)이 정정될 수 있는 데이터 내의 에러를 검출하면, 실패 판독 트랜잭션 표시에 응답하여 판독 재시도를 수행하는 메모리 제어기(104) 대신에 메모리 디바이스(102)가 ECC를 메모리 제어기(104)로 전송할 수 있다. 이와 같은 구현에서, ECC 로직(114)은 에러 정정을 수행하지 않으며, 그 대신 에러 정정은 메모리 제어기(104)에 의해 수행된다.
메모리 제어기(104)는 메모리 제어기(104)가 데이터의 에러 정정을 완료할 때까지 요청자(예컨대, 프로세서 또는 다른 요청자)로의 데이터 반환을 지연시킬 수 있다. 또한, 이와 같은 구현에서, 메모리 제어기(104)는 정정된 데이터를 메모리 디바이스(102)에 다시 기록함으로써 메모리 디바이스(102) 내에 저장된 데이터를 정정하는 것을 진행할 수 있다.
도 2는 일부 구현에 따른, 인라인 에러 검출 및 정정 프로세스의 흐름도이다. 도 2의 프로세스는 예를 들어 메모리 디바이스(102)에 의해 수행될 수 있다. 프로세스는 메모리 디바이스(102) 내의 스토리지 어레이(112)의 메모리 셀로부터의 데이터를 메모리 디바이스(102)에서 판독한다(단계 202). 판독 데이터는 직렬 링크(106)를 통해 메모리 제어기(104)로 전달된다(단계 204). 판독 데이터의 전달이 진행되는 동안, 메모리 셀로부터 판독된 데이터의 에러 검출이 디바이스(102) 내부의 ECC 로직(114)에 의해 수행된다(단계 206). 다시 말해, 판독 데이터의 에러 검출이 직렬 링크(106)를 통한 판독 데이터의 전달과 동시에 수행된다.
도 3은 대안적인 구현에 따른 예시적 시스템(300)의 블록도이다. 메모리 디바이스(102) 및 메모리 제어기(104)에 추가하여, 요청자(301)가 시스템(300) 내부에 또한 제공된다. 요청자(301)는 메모리 디바이스(102) 내의 데이터에 액세스하기 위해 데이터 요청(판독 요청 또는 기록 요청)을 발행할 수 있다. 요청자(301)로부터의 데이터 요청에 응답하여, 메모리 제어기(104)는 메모리 디바이스(102)에 각각의 데이터 요청을 발행한다.
도 3에서 추가로 도시된 바와 같이, 메모리 디바이스(102) 내의 통신 인터페이스(108)는 버퍼(302) 및 병렬-직렬 컨버터(304)를 포함한다. 버퍼(302)는 직렬 링크(106)를 통해 메모리 제어기(104)로 배달될 스토리지 어레이(112)로부터 판독된 데이터를 일시적으로 저장하는데 이용된다. 병렬-직렬 컨버터(304)는 데이터를 병렬 링크(110) 상의 병렬 포맷 및 직렬 링크(106) 상의 직렬 포맷 사이에서 변환한다.
메모리 제어기(104)는 에러 처리 로직(306)을 포함하고, 이것은 메모리 디바이스로부터의 실패 판독 트랜잭션 표시(308)에 응답하여 에러 처리 절차를 수행한다. 에러 처리 절차는 데이터 판독의 재시도를 수행하기 위해 판독 재시도(310)를 메모리 디바이스(102)로 전송하는 것을 포함한다. 에러 처리 절차는 또한 수신된 데이터를 정정하는데 이용될 메모리 디바이스(102)로부터 수신될 에러 정정 코드를 대안적으로 기다릴 수 있다. 또한, 에러 처리 절차는 메모리 디바이스(102)로의 정정된 데이터의 재기록을 수행하는 것을 포함할 수 있다.
일부 구현에 따른 기술 또는 메커니즘을 이용함으로써, 데이터 정정은, 데이터 에러를 정정하기 위한 데이터 처리 절차를 수행하기 위해 추가 시간이 추가될 수 있는 경우의 에러가 발생되는 상황을 제외하고, 액세스 대기 시간의 추가 없이 확인될 수 있다. 일부 구현에서, 데이터 에러가 없을 때 에러 정정 코드는 메모리 디바이스(102)로부터 메모리 제어기(104)로 제공되지 않아도 된다. 에러 정정 코드가 논-에러 상황에 제공될 필요가 없기 때문에, 이것은 직렬 링크(106)를 통한 데이터 대역폭 소모를 감소시킬 수 있다.
앞선 설명에서, 많은 세부사항이 명세서에 개시된 본원의 이해를 제공하도록 개진되었다. 그러나, 구현들은 이러한 세부사항의 일부 또는 모두 없이도 실현될 수 있다. 다른 구현은 위에 언급된 세부사항으로부터의 수정 및 변형을 포함할 수 있다. 첨부된 청구항이 이와 같은 수정 및 변형을 커버하도록 의도된다.

Claims (15)

  1. 메모리 디바이스로서,
    상기 메모리 디바이스의 외부에 있는 메모리 제어기와 링크를 통해 통신하는 통신 인터페이스와,
    메모리 셀로부터 데이터를 판독하는 데이터 액세스 로직 - 상기 통신 인터페이스는 판독된 데이터를 상기 통신 인터페이스를 거쳐 상기 링크를 통해 출력함 - 과,
    상기 판독된 데이터와 연관된 에러 정정 코드를 이용하여 상기 판독된 데이터의 에러 검출을 수행하는 에러 정정 로직 - 상기 에러 정정 로직은 상기 링크를 통해 상기 판독된 데이터의 일부가 통신되는 것과 동시에 상기 에러 검출을 수행함 - 을 포함하는
    메모리 디바이스.
  2. 제 1 항에 있어서,
    상기 링크는 직렬 링크이고, 상기 통신 인터페이스는 상기 메모리 디바이스 내에서 내부적으로 이용되는 병렬 포맷의 데이터와 상기 직렬 링크에서 이용되는 직렬 포맷의 데이터 사이를 변환하는 병렬-직렬 컨버터를 포함하는
    메모리 디바이스.
  3. 제 2 항에 있어서,
    상기 메모리 디바이스 내의 병렬 링크를 더 포함하고,
    상기 에러 정정 로직은 상기 병렬 링크를 통해 상기 메모리 셀로부터 상기 판독된 데이터를 수신하는
    메모리 디바이스.
  4. 제 1 항에 있어서,
    상기 에러 정정 로직은 상기 에러 정정 로직이 상기 판독된 데이터 내의 에러를 검출하는 것에 응답하여 상기 메모리 제어기로 실패 표시를 출력하는
    메모리 디바이스.
  5. 제 4 항에 있어서,
    상기 실패 표시는 특정 상태로 어써팅된(asserted) 신호를 포함하는
    메모리 디바이스.
  6. 제 4 항에 있어서,
    상기 실패 표시는 상기 링크를 통해 상기 판독된 데이터의 전달과 연관된 체크 코드를 오염(poisoning)시키는 것에 의해 제공되는
    메모리 디바이스.
  7. 제 4 항에 있어서,
    상기 메모리 디바이스는 상기 메모리 제어기로부터 판독 재시도(a read retry)를 수신하고, 상기 판독 재시도는 상기 실패 표시에 응답하는
    메모리 디바이스.
  8. 제 4 항에 있어서,
    상기 에러 정정 로직은 상기 에러를 검출하는 것에 응답하여 상기 메모리 제어기로 상기 에러 정정 코드를 출력하고, 상기 판독된 데이터 내에서 어떤 에러도 검출되지 않는다면 상기 에러 정정 코드를 출력하는 것을 거절하는
    메모리 디바이스.
  9. 제 8 항에 있어서,
    상기 메모리 제어기로의 상기 에러 정정 코드의 제공은 상기 메모리 제어기가 상기 에러 정정 코드를 이용하여 상기 판독된 데이터를 정정하는 것을 허용하는
    메모리 디바이스.
  10. 메모리 디바이스에서, 상기 메모리 디바이스 내의 메모리 셀로부터 데이터를 판독하는 단계와,
    판독된 데이터를 링크를 통해 상기 메모리 디바이스의 외부에 있는 메모리 제어기로 전달하는 단계와,
    상기 판독된 데이터의 전달이 진행되는 동안, 상기 메모리 디바이스 내부에서 에러 정정 코드를 이용하여 상기 판독된 데이터의 에러 검출을 수행하는 단계를 포함하는
    방법.
  11. 제 10 항에 있어서,
    상기 판독된 데이터를 상기 링크를 통해 상기 메모리 제어기로 전달하는 단계는 상기 메모리 디바이스 내부의 상기 판독된 데이터의 에러 검출의 완료 이전에 발생하는
    방법.
  12. 제 10 항에 있어서,
    상기 메모리 디바이스에 의해, 상기 판독된 데이터 내에 에러가 존재하는지 여부를 판정하는 단계와,
    상기 판독된 데이터 내에 어떤 에러도 존재하지 않다고 판정하는 것에 응답하여 상기 메모리 제어기로 상기 에러 정정 코드를 전송하는 것을 거절하는 단계를 더 포함하는
    방법.
  13. 제 12 항에 있어서,
    상기 판독된 데이터 내에 에러가 존재한다고 판정하는 것에 응답하여 상기 메모리 제어기로 실패 표시를 전송하는 단계를 더 포함하는
    방법.
  14. 제 13 항에 있어서,
    상기 실패 표시는 명시적인 실패 표시 또는 암시적인 실패 표시인
    방법.
  15. 메모리 제어기와,
    메모리 디바이스와,
    상기 메모리 제어기 및 상기 메모리 디바이스를 상호접속하는 링크를 포함하되,
    상기 메모리 디바이스는,
    상기 메모리 디바이스의 외부에 있는 메모리 제어기와 링크를 통해 통신하는 통신 인터페이스와,
    메모리 셀로부터 데이터를 판독하는 데이터 액세스 로직과,
    판독된 데이터와 연관된 에러 정정 코드를 이용하여 상기 판독된 데이터의 에러 검출을 수행하는 에러 정정 로직 - 상기 통신 인터페이스는 상기 판독된 데이터의 에러 검출의 완료 전에, 상기 판독된 데이터의 일부를 상기 통신 인터페이스를 거쳐 상기 링크를 통해 출력함 - 을 포함하는
    시스템.
KR1020157026567A 2013-03-25 2013-03-25 에러 정정 로직을 갖는 메모리 디바이스 KR20150135311A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/033679 WO2014158130A1 (en) 2013-03-25 2013-03-25 Memory device having error correction logic

Publications (1)

Publication Number Publication Date
KR20150135311A true KR20150135311A (ko) 2015-12-02

Family

ID=51624920

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157026567A KR20150135311A (ko) 2013-03-25 2013-03-25 에러 정정 로직을 갖는 메모리 디바이스

Country Status (6)

Country Link
US (1) US10417091B2 (ko)
EP (1) EP2979271B1 (ko)
KR (1) KR20150135311A (ko)
CN (1) CN105190766A (ko)
TW (1) TWI546814B (ko)
WO (1) WO2014158130A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170102730A (ko) * 2016-03-02 2017-09-12 한국전자통신연구원 메모리 인터페이스 장치
KR20220072143A (ko) 2020-11-25 2022-06-02 박경국 후원 중개 장치

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101773660B1 (ko) * 2015-02-13 2017-09-12 포항공과대학교 산학협력단 메모리 내부의 자체 에러 검출을 통한 선택적 리프레시를 이용한 메모리 제어 방법, 장치 및 시스템
WO2017027028A1 (en) * 2015-08-12 2017-02-16 Hewlett Packard Enterprise Development Lp Serdes link management
US10572344B2 (en) * 2017-04-27 2020-02-25 Texas Instruments Incorporated Accessing error statistics from DRAM memories having integrated error correction
KR20180123207A (ko) * 2017-05-07 2018-11-15 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190005116A (ko) * 2017-07-05 2019-01-15 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US10530396B2 (en) 2017-11-20 2020-01-07 International Business Machines Corporation Dynamically adjustable cyclic redundancy code types
US10530523B2 (en) 2017-11-20 2020-01-07 International Business Machines Corporation Dynamically adjustable cyclic redundancy code rates
US10541782B2 (en) 2017-11-20 2020-01-21 International Business Machines Corporation Use of a cyclic redundancy code multiple-input shift register to provide early warning and fail detection
EP3796615B1 (en) 2018-06-28 2023-06-07 Huawei Technologies Co., Ltd. Fault tolerance processing method, device, and server
US11953988B2 (en) * 2019-05-23 2024-04-09 Micron Technology, Inc. Error correction memory device with fast data access
US11194643B1 (en) * 2020-06-03 2021-12-07 Micron Technology, Inc. Access operation status signaling for memory systems

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6031758A (en) 1996-02-29 2000-02-29 Hitachi, Ltd. Semiconductor memory device having faulty cells
JPH10107649A (ja) 1996-09-30 1998-04-24 Sanyo Electric Co Ltd 符号誤り訂正/検出デコーダ
JP4105819B2 (ja) * 1999-04-26 2008-06-25 株式会社ルネサステクノロジ 記憶装置およびメモリカード
EP1211812B1 (en) 2000-10-31 2006-11-15 STMicroelectronics S.r.l. A/D conversion method in high density multilevel non-volatile memory devices and corresponding converter device
EP1538525A1 (en) * 2003-12-04 2005-06-08 Texas Instruments Incorporated ECC computation simultaneously performed while reading or programming a flash memory
US7475174B2 (en) * 2004-03-17 2009-01-06 Super Talent Electronics, Inc. Flash / phase-change memory in multi-ring topology using serial-link packet interface
KR100746225B1 (ko) * 2006-02-13 2007-08-03 삼성전자주식회사 반도체 메모리 장치 및 이를 구비한 메모리 시스템
US7913147B2 (en) * 2006-05-08 2011-03-22 Intel Corporation Method and apparatus for scrubbing memory
US7627804B2 (en) * 2006-06-30 2009-12-01 Intel Corporation Memory device with speculative commands to memory core
JP2008090433A (ja) * 2006-09-29 2008-04-17 Toshiba Corp メモリコントローラ、メモリシステム及びデータ転送方法
KR100856129B1 (ko) 2006-12-29 2008-09-03 삼성전자주식회사 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치
US7644344B2 (en) * 2007-05-15 2010-01-05 Intel Corporation Latency by offsetting cyclic redundancy code lanes from data lanes
US8195978B2 (en) 2008-05-16 2012-06-05 Fusion-IO. Inc. Apparatus, system, and method for detecting and replacing failed data storage
US8122308B2 (en) * 2008-06-25 2012-02-21 Intel Corporation Securely clearing an error indicator
US8245105B2 (en) * 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
US8201058B2 (en) 2008-07-09 2012-06-12 Cadence Design Systems, Inc. Method and apparatus for parallel ECC error location
US8250417B2 (en) * 2009-01-14 2012-08-21 Micron Technology, Inc. Method for detecting flash program failures
US8438453B2 (en) 2009-05-06 2013-05-07 Apple Inc. Low latency read operation for managed non-volatile memory
US8413015B2 (en) 2009-09-21 2013-04-02 Sandisk Technologies Inc. Nonvolatile memory controller with scalable pipelined error correction
JP4940322B2 (ja) * 2010-03-16 2012-05-30 株式会社東芝 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法
US8635390B2 (en) 2010-09-07 2014-01-21 International Business Machines Corporation System and method for a hierarchical buffer system for a shared data bus
TWI420308B (zh) * 2010-10-13 2013-12-21 Phison Electronics Corp 區塊管理方法、記憶體控制器與記憶體儲存裝置
TWI421683B (zh) * 2010-11-01 2014-01-01 Phison Electronics Corp 資料管理方法、記憶體控制器與記憶體儲存裝置
US8694857B2 (en) * 2011-04-13 2014-04-08 Inphi Corporation Systems and methods for error detection and correction in a memory module which includes a memory buffer
US20130007563A1 (en) * 2011-07-01 2013-01-03 Samsung Electronics Co., Ltd. Semiconductor memory device having error correction function and memory system including the same
TWI443512B (zh) * 2011-07-13 2014-07-01 Phison Electronics Corp 區塊管理方法、記憶體控制器與記憶體儲存裝置
TWI443513B (zh) * 2011-08-05 2014-07-01 Phison Electronics Corp 記憶體儲存裝置、記憶體控制器與資料寫入方法
TWI457755B (zh) * 2011-08-22 2014-10-21 Phison Electronics Corp 資料寫入方法、記憶體控制器與儲存裝置
CN103197985B (zh) * 2011-11-08 2018-07-13 索尼公司 存储控制装置
TWI483111B (zh) * 2012-09-20 2015-05-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170102730A (ko) * 2016-03-02 2017-09-12 한국전자통신연구원 메모리 인터페이스 장치
KR20220072143A (ko) 2020-11-25 2022-06-02 박경국 후원 중개 장치

Also Published As

Publication number Publication date
EP2979271A1 (en) 2016-02-03
EP2979271A4 (en) 2016-11-30
EP2979271B1 (en) 2019-06-19
TWI546814B (zh) 2016-08-21
WO2014158130A1 (en) 2014-10-02
CN105190766A (zh) 2015-12-23
TW201447902A (zh) 2014-12-16
US10417091B2 (en) 2019-09-17
US20150378823A1 (en) 2015-12-31

Similar Documents

Publication Publication Date Title
EP2979271B1 (en) Memory device having error correction logic
US20180024878A1 (en) Extracting selective information from on-die dynamic random access memory (dram) error correction code (ecc)
KR102378466B1 (ko) 메모리 장치 및 모듈
KR20140108398A (ko) 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
KR20190012566A (ko) 에러 정정 기능을 갖는 메모리 시스템, 메모리 모듈 및 메모리 컨트롤러의 동작 방법
US20120239996A1 (en) Memory controller, information processing apparatus and method of controlling memory controller
KR20160110148A (ko) 메모리 장치 및 모듈
KR20220044015A (ko) 메모리 장치의 에러 정정 불가를 예방하는 제어기, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
US20240192862A1 (en) Automated Error Correction with Memory Refresh
US11726665B1 (en) Memory extension with error correction
KR102414202B1 (ko) 계층적 디코더를 이용한 오류 정정
EP3499376B1 (en) Memory system varying operation of memory controller according to internal status of memory device
US20130246847A1 (en) Method of detecting error in write data and data processing system to perform the method
CN115732016A (zh) 存储器装置、存储器控制器和纠正数据错误的方法
US20190042364A1 (en) Technologies for maintaining data integrity during data transmissions
US12013756B2 (en) Method and memory system for writing data to dram submodules based on the data traffic demand
US12019516B2 (en) Instant write scheme with delayed parity/raid
US11256565B2 (en) Transaction metadata
US20230236934A1 (en) Instant write scheme with dram submodules
CN117352037A (zh) 三维存储器及用于三维存储器的ecc方法
US20200210274A1 (en) Data processing device
CN117472644A (zh) 错误确定方法及系统、处理器、内存

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination