KR20200092036A - 메모리 시스템 및 메모리 시스템의 동작 방법 - Google Patents

메모리 시스템 및 메모리 시스템의 동작 방법 Download PDF

Info

Publication number
KR20200092036A
KR20200092036A KR1020190009054A KR20190009054A KR20200092036A KR 20200092036 A KR20200092036 A KR 20200092036A KR 1020190009054 A KR1020190009054 A KR 1020190009054A KR 20190009054 A KR20190009054 A KR 20190009054A KR 20200092036 A KR20200092036 A KR 20200092036A
Authority
KR
South Korea
Prior art keywords
error detection
memory
data
host
detection code
Prior art date
Application number
KR1020190009054A
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 에스케이하이닉스 주식회사
Priority to KR1020190009054A priority Critical patent/KR20200092036A/ko
Priority to TW108137556A priority patent/TW202029209A/zh
Priority to US16/683,989 priority patent/US11216335B2/en
Priority to CN201911242329.8A priority patent/CN111475327B/zh
Publication of KR20200092036A publication Critical patent/KR20200092036A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/102Error in check bits
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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/1515Reed-Solomon codes

Abstract

메모리 시스템은, 호스트로부터 전달된 호스트 데이터와 호스트 어드레스를 이용해 제1에러 감지 코드를 생성하는 제1에러 감지 회로; 하나 이상의 호스트 데이터를 포함하는 시스템 데이터, 하나 이상의 호스트 어드레스에 대응하는 논리 어드레스, 상기 논리 어드레스에 대응하는 물리 어드레스 및 하나 이상의 제1에러 감지 코드를 이용해 제2에러 감지 코드를 생성하는 제2에러 감지 회로; 상기 시스템 데이터, 상기 하나 이상의 제1에러 감지 코드 및 상기 제2에러 감지 코드를 이용해 제3에러 감지 코드를 생성하는 제3에러 감지 회로; 및 상기 시스템 데이터, 상기 하나 이상의 제1에러 감지 코드, 상기 제2에러 정정 코드 및 상기 제3에러 감지 코드를 저장하는 제1메모리를 포함할 수 있다.

Description

메모리 시스템 및 메모리 시스템의 동작 방법 {MEMORY SYSTEM AND OPERATION METHOD OF MEMORY SYSTEM}
본 특허 문헌은 메모리 시스템에 관한 것이다.
반도체 메모리 장치 산업의 초창기에는 반도체 제조 프로세스를 통과한 메모리 칩에서 불량 메모리 셀이 하나도 존재하지 않는 오리지날 굿 다이(original good die)가 웨이퍼(wafer) 상에 다수 분포하였다. 그러나 메모리 장치의 용량이 점차로 증가하면서 불량 메모리 셀이 하나도 존재하지 않는 메모리 장치를 만드는 것이 어려워졌으며, 현재에는 이러한 메모리 장치가 제조될 확률은 없다고 봐도 무방하다. 이러한 상황을 타개하기 위한 하나의 방편으로 메모리 장치의 불량 메모리 셀들을 리던던시 메모리 셀들로 리페어하는 방법이 사용되고 있다.
그리고 또 하나의 방편으로 메모리 시스템에서 에러를 감지 및 정정하는 에러 정정 회로(ECC 회로)를 사용해 메모리 셀에서 발생하는 에러 및 메모리 시스템의 리드 및 라이트 과정에서 데이터가 전송되면서 발생하는 에러를 감지 및 정정하고 있다.
한편, 최근에는 메모리 시스템이 복잡해지면서, 메모리 콘트롤러에서도 데이터 및 어드레스에 다양한 방식의 처리를 하고 있는데, 이에 따라 메모리 시스템 내의 메모리뿐만이 아니라 메모리 콘트롤러에서 발생하는 에러를 감지하고 이를 정정하는 기술이 필요하다.
본 발명의 실시예들은, 메모리 시스템의 에러 감지 및 에러 정정의 효율성을 높일 수 있다.
본 발명의 일실시예에 따른 메모리 시스템은, 호스트로부터 전달된 호스트 데이터와 호스트 어드레스를 이용해 제1에러 감지 코드를 생성하는 제1에러 감지 회로; 하나 이상의 호스트 데이터를 포함하는 시스템 데이터, 하나 이상의 호스트 어드레스에 대응하는 논리 어드레스, 상기 논리 어드레스에 대응하는 물리 어드레스 및 하나 이상의 제1에러 감지 코드를 이용해 제2에러 감지 코드를 생성하는 제2에러 감지 회로; 상기 시스템 데이터, 상기 하나 이상의 제1에러 감지 코드 및 상기 제2에러 감지 코드를 이용해 제3에러 감지 코드를 생성하는 제3에러 감지 회로; 및 상기 시스템 데이터, 상기 하나 이상의 제1에러 감지 코드, 상기 제2에러 정정 코드 및 상기 제3에러 감지 코드를 저장하는 제1메모리를 포함할 수 있다.
또한, 본 발명의 다른 실시예에 따른 메모리 시스템은, 라이트 동작시에 데이터와 어드레스를 이용해 에러 감지 코드를 생성하는 에러 감지 회로; 및 상기 라이트 동작시에 상기 데이터와 상기 에러 감지 코드를 저장하는 메모리를 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 메모리 시스템의 동작 방법은, 라이트 데이터와 라이트 어드레스를 수신하는 단계; 상기 라이트 데이터와 상기 라이트 어드레스를 이용해 에러 감지 코드를 생성하는 단계; 및 상기 라이트 데이터와 상기 에러 감지 코드를 메모리에서 상기 라이트 어드레스에 의해 선택되는 영역에 라이트하는 단계를 포함할 수 있다.
본 발명의 실시예들에 따르면, 메모리 시스템의 에러 감지 및 에러 정정의 효율성을 높일 수 있다.
도 1은 본 발명의 일실시예에 따른 메모리 시스템(100)의 구성도.
도 2는 도 1의 메모리 시스템(100)의 동작을 설명하기 위한 도면.
도 3은 본 발명에 따른 메모리 시스템(300)의 다른 실시예 구성도.
도 4는 메모리 시스템(300)의 라이트 동작을 설명하기 위한 도면.
도 5는 메모리 시스템(300)의 리드 동작을 설명하기 위한 도면.
도 6은 코드들(CRC-3, CRC-10, RS)에 의해 보호(protection)되는 정보들을 표시한 도면.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 본 발명을 설명함에 있어서, 본 발명의 요지와 무관한 공지의 구성은 생략될 수 있다. 각 도면의 구성요소들에 참조 번호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면 상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다.
도 1은 본 발명의 일실시예에 따른 메모리 시스템(100)의 구성도이다.
도 1을 참조하면, 메모리 시스템(100)은 에러 감지 회로(110)와 메모리(120)를 포함할 수 있다. 도 1에서는 메모리 시스템(100)에서 에러의 감지와 직접적으로 관련된 부분만을 도시했다.
라이트 동작시에 호스트(host)로부터 메모리 시스템(100)으로는 라이트 요청(REQ)과 함께 어드레스(ADD) 및 데이터(DATA)가 전달될 수 있다.
라이트 동작시에 에러 감지 회로(110)는 호스트로부터 전달된 데이터(DATA)와 어드레스(ADD)를 이용해, 에러 감지 코드(CRC)를 생성할 수 있다. 여기서 에러 감지 코드(CRC)를 CRC (Cyclic Redundancy Check) 코드로 예시했지만, CRC 이외에 다른 알고리즘을 사용하는 코드가 사용될 수도 있다. 도 2의 201은 데이터(DATA)와 어드레스(ADD) 및 이들을 이용해 생성되는 에러 감지 코드(CRC)를 나타낼 수 있다. 도 2의 201에서 에러 감지 코드(CRC)라고 표기된 박스 내에 데이터(DATA)와 어드레스(ADD)가 포함된 것은 데이터(DATA)와 어드레스(ADD)가 에러 감지 코드(CRC)에 의해 커버되는 것을 나타낼 수 있다.
라이트 동작시에 메모리(120)에서 어드레스(ADD)에 의해 선택된 영역에 데이터(DATA)와 에러 감지 코드(CRC)가 라이트될 수 있다. 도 2의 203은 메모리(120)에 저장되는 데이터(DATA)와 에러 감지 코드(CRC)를 나타낼 수 있다. 도 2의 203을 참조하면, 201에서 어드레스(ADD)가 제외되었음을 확인할 수 있다.
리드 동작시에 호스트로부터 메모리 시스템(100)으로는 리드 요청(REQ)과 함께 어드레스(ADD)가 전달될 수 있다.
리드 동작시에 메모리(120)에서 어드레스(ADD)에 의해 선택된 영역으로부터 데이터(DATA)와 에러 감지 코드(CRC)가 리드될 수 있다. 도 2의 205는 메모리(120)로부터 리드된 데이터(DATA)와 에러 감지 코드(CRC)에 호스트로부터 전달된 어드레스(ADD)가 다시 추가되는 것을 나타낼 수 있다.
리드 동작시에 에러 감지 회로(110)는 메모리(120)로부터 리드된 데이터(DATA)와 에러 감지 코드(CRC)에 호스트로부터 전달된 어드레스(ADD)를 합치고, 에러 감지 코드(CRC)를 이용해 리드된 데이터(DATA)와 호스트로부터 전달된 어드레스(ADD)의 에러를 감지할 수 있다. 에러 감지 코드(CRC)에 에러의 감지를 위한 정보뿐만이 아니라 감지된 에러를 정정하기에 충분한 정보가 포함된 경우 에러 감지 회로(110)는 감지된 에러를 정정하는 동작도 수행할 수 있다.
메모리 시스템(100)에 포함된 메모리(120)로부터 리드된 데이터(DATA)는 호스트로 전달될 수 있다. 또한, 에러 감지 회로(110)에 의해 에러가 감지된 경우에는 에러가 감지되었음이(ERR) 호스트로 통보될 수 있다.
도 1의 메모리 시스템(100)에서는 데이터(DATA)뿐만이 아니라 어드레스(ADD)도 에러 감지 코드(CRC)에 의해서 커버되므로, 데이터(DATA)뿐만이 아니라 어드레스(ADD)의 에러도 감지될 수 있다. 또한, 어드레스(ADD)를 에러 감지 코드(CRC)에 의해 커버하면서도 어드레스(ADD)를 메모리(120)에 저장하지는 않으므로, 메모리(120)의 용량 낭비를 방지할 수 있다.
도 1의 메모리 시스템(100)은 하나 또는 다수개의 집적회로 칩으로 구현될 수 있다. 예를 들어, 에러 감지 회로(110)와 메모리(120)는 하나의 칩에 포함될 수도 있으며, 에러 감지 회로(110)는 메모리 콘트롤러 칩에 포함되고, 메모리(120)는 메모리 칩에 포함되는 등 둘 이상의 칩으로 구현될 수도 있다.
도 3은 본 발명에 따른 메모리 시스템(300)의 다른 실시예 구성도이다.
도 3을 참조하면, 메모리 시스템(300)은 메모리 콘트롤러(310), 제1메모리(350) 및 제2메모리(360)를 포함할 수 있다.
메모리 콘트롤러(310)는 호스트(HOST)의 요청에 따라 제1메모리(350)의 리드(read) 및 라이트(write) 등의 동작을 제어할 수 있다.
메모리 콘트롤러(310)는 호스트 인터페이스(311), 스케쥴러(313), 맵핑 회로(315), 제1메모리 인터페이스(317), 제2메모리 인터페이스(319), 제1에러 감지 회로(321), 제2에러 감지 회로(323) 및 제3에러 감지 회로(325)를 포함할 수 있다.
호스트 인터페이스(311)는 메모리 콘트롤러(310)와 호스트(HOST) 간의 인터페이스를 위한 것일 수 있다. 호스트 인터페이스(311)를 통해 호스트(HOST)의 요청들, 요청들에 대응하는 어드레스 및 데이터가 수신될 수 있으며, 요청들의 처리 결과들이 호스트(HOST)로 전송될 수 있다. 호스트 인터페이스는 PCIe(PCI-EXPRESS), CCIX(Cache Coherent Interconnect for Accelerators), DIMM (Dual In-Line Memory Module) 인터페이스 등 다양한 타입의 인터페이스 중 하나일 수 있다.
스케쥴러(313)는 호스트(HOST)로부터의 요청들 중 제1메모리(350)에 지시할 요청의 순서를 정하는 등 메모리 시스템(300)의 퍼포먼스를 높이기 위한 스케쥴링을 할 수 있다. 스케쥴러(313)는 메모리 시스템(300)의 퍼포먼스 향상을 위해 필요한 경우에 호스트(HOST)로부터 요청들이 수신된 순서와 제1메모리(350)에 지시하는 동작의 순서를 다르게 할 수 있다. 예를 들어, 호스트(HOST)가 리드 동작을 먼저 요청하고 라이트 동작을 이후에 요청했어도, 스케쥴러(313)는 라이트 동작이 리드 동작보다 먼저 수행되도록 순서를 조절할 수 있다.
맵핑 회로(315)는 호스트(HOST)의 데이터와 제1메모리(350)에 저장될 데이터 사이의 맵핑 동작을 수행할 수 있다. 호스트(HOST)의 데이터 청크(chunk) 또는 페이지(page) 사이즈와 제1메모리(350)의 데이터 청크 또는 페이지 사이즈는 서로 다를 수 있다. 예를 들어, 호스트(HOST)는 한번의 리드 및 라이트 동작시마다 512비트의 데이터를 송수신하는데, 제1메모리(350)는 한번의 리드 및 라이트 동작시마다 1024비트의 데이터를 송수신하는 것처럼 데이터 청크 사이즈가 상이할 수 있다. 맵핑 회로(315)는 호스트(HOST) 사이드의 2개의 데이터 청크와 제1메모리 사이드의 1개의 데이터 청크 간의 맵핑 동작을 수행할 수 있다. 또한, 맵핑 회로(315)는 웨어 레벨링(wear-leveling) 등을 위해 논리(logic) 어드레스와 물리(physical) 어드레스 간의 맵핑 동작을 수행할 수 있다.
제1메모리 인터페이스(317)는 메모리 콘트롤러(310)와 제1메모리(350) 간의 통신을 위한 인터페이스이고, 제2메모리 인터페이스(319)는 메모리 콘트롤러(310)와 제2메모리(360) 간의 통신을 위한 인터페이스일 수 있다.
제1 내지 제3에러 감지 회로들(321, 323, 325) 각각은 라이트 동작시에 에러 감지 코드들을 생성하고, 리드 동작시에 에러 감지 코드들을 이용해 에러를 감지할 수 있다. 제1 내지 제3에러 감지 회로들(321, 323, 325) 각각이 커버하는 범위는 서로 다를 수 있는데, 제1 내지 제3에러 감지 회로들(321, 323, 325)에 대해서는 후술하는 도 4 및 도 5와 함께 자세히 알아보기로 한다.
제1메모리(350)는 호스트(HOST)가 라이트 동작시에 요청한 라이트 데이터를 저장하고, 리드 동작시에 저장된 데이터를 리드 데이터로 제공하는 메모리일 수 있다. 제1메모리(350)는 다양한 종류의 PCRAM, NAND Flash, STT-MRAM, DRAM 등 다양한 종류의 메모리 중 하나일 수 있다.
제2메모리(360)는 논리 어드레스와 물리 어드레스 간의 맵핑 테이블을 저장하기 위한 메모리일 수 있다. 제2메모리(360)는 맵핑 테이블을 저장하는 메모리이므로 제1메모리(350)보다 작은 용량을 가질 수 있다. 예를 들어, 제1메모리(350)가 대용량의 PCRAM 메모리라면, 제2메모리(360)는 제1메모리보다 적은 용량을 가지는 DRAM일 수 있다.
도 4는 메모리 시스템(300)의 라이트 동작을 설명하기 위한 도면이다.
도 4의 401은 제1에러 감지 회로(321)가 호스트(HOST)로부터 전달된 호스트 데이터(DATA), 포이즌 비트(P), 호스트 어드레스(ADD)를 이용해 제1에러 감지 코드(CRC-3)를 생성하는 것을 나타낸 것이다. 즉, 제1에러 감지 코드(CRC-3)는 호스트 데이터(DATA), 포이즌 비트(P), 호스트 어드레스(ADD)를 메세지(message)로 이용해 생성된 코드일 수 있다. 여기서 호스트 데이터(DATA)는 512비트일 수 있다. 포이즌(poison) 비트(P)는 호스트가 데이터(DATA)의 신뢰성을 표시하기 위해 사용하는 비트일 수 있다. 예를 들어, 데이터(DATA)가 에러를 포함하고 있을 가능성이 높은 경우에 호스트(HOST)는 포이즌 비트(P)를 이용해 이를 표시할 수 있다. 호스트 어드레스(ADD)는 40비트일 수 있다. 제1에러 감지 코드(CRC-3)는 제1에러 감지 회로(321)가 호스트 데이터(DATA), 포이즌 비트(P) 및 호스트 어드레스(ADD)를 이용해 생성하는 에러 감지 코드일 수 있다. 여기서는 제1에러 감지 코드(CRC-3)가 CRC-3 코드인 것을 예시했으며, 이 경우 제1에러 감지 코드(CRC-3)는 3비트일 수 있다. 401에서 제1에러 감지 코드(CRC-3)라고 표기된 박스 내에 데이터(DATA), 포이즌 비트(P) 및 어드레스(ADD)가 포함된 것은 이들(DATA, P, ADD)이 제1에러 감지 코드(CRC-3)에 의해 커버되는 것을 나타낼 수 있다.
도 4의 403은 제2에러 감지 회로(323)가 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1), 제1에러 감지 코드들(CRC-3_0, CRC-3_1), 논리 어드레스(LADD), 물리 어드레스(PADD) 및 메타 데이터(META)를 이용해 제2에러 감지 코드(CRC-10)를 생성하는 것을 나타낸 것이다. 시스템 데이터(DATA0, DATA1)는 2개의 호스트 데이터를 포함하는 데이터를 의미할 수 있다. 여기서는 호스트(HOST)의 청크 사이즈보다 제1메모리(350)의 청크 사이즈가 2배 큰 것을 예시했으므로, 시스템 데이터(DATA0, DATA1)에 2개의 호스트 데이터가 포함되는 것을 예시했지만, 시스템 데이터(DATA0, DATA1)에 포함되는 호스트 데이터의 개수는 호스트(HOST)와 제1메모리(350)의 청크 사이즈에 따라 달라질 수 있다. 여기서는 시스템 데이터(DATA0, DATA1)가 2개의 호스트 데이터를 포함하는 것으로 예시했으므로, 시스템 데이터는 1024비트일 수 있다. 시스템 데이터(DATA0, DATA1)와 호스트 데이터들 간의 매칭은 맵핑 회로(315)에 의해 수행될 수 있다.
포이즌 비트들(P0, P1)은 시스템 데이터(DATA0, DATA1)에 포함된 2개의 호스트 데이터 각각에 대응하는 포이즌 비트들일 수 있다. 제1에러 감지 코드들(CRC-3_0, CRC-3_1)은 시스템 데이터(DATA0, DATA1)에 포함된 2개의 호스트 데이터 각각에 대응하는 제1에러 감지 코드들일 수 있다. 논리 어드레스(LADD)는 시스템 데이터(DATA0, DATA1)에 대응하는 논리 어드레스일 수 있다. 논리 어드레스(LADD)는 맵핑 회로(315)가 호스트 어드레스(ADD)를 이용해 생성할 수 있다. 논리 어드레스(LADD)는 호스트 어드레스(ADD)보다 2배 많은 데이터에 대응하므로, 논리 어드레스(LADD)의 비트수는 호스트 어드레스(ADD)보다 1비트 적은 39비트일 수 있다. 물리 어드레스(PADD)는 논리 어드레스에 대응하는 물리 어드레스일 수 있다. 웨어 레벨링 등의 동작을 위해 논리 어드레스(LADD)와 물리 어드레스(PADD) 간의 어드레스 맵핑 동작이 수행될 수 있다. 물리 어드레스(PADD)의 비트수는 논리 어드레스(LADD)의 비트수보다 많을 수 있다. 예를 들어, 물리 어드레스(PADD)는 40비트일 수 있다. 이는 웨어 레벨링 동작 및 배드 블록 관리(bad block management) 등을 위해 논리 어드레스(LADD)에 대응되는 영역들의 개수보다 물리 어드레스(PADD)에 대응되는 영역들의 개수를 더 많이 확보해야 하기 때문이다. 메타 데이터(META)는 제1메모리(350)의 관리를 위해 운영되는 데이터일 수 있다. 메타 데이터(META)는 웨어 레벨링 및 라이트 디스터번스(write disturbance) 등의 관리를 위한 라이트 카운터(write counter) 정보, 웨어 레벨링 펜딩 비트(wear leveling pending bit) 정보, 라이트 디스터번스 펜딩 비트(write disturbance pending bit) 정보 등을 포함할 수 있다. 메타 데이터(META)는 예를 들어 27비트일 수 있다.
제2에러 감지 코드(CRC-10)는 제2에러 감지 회로(323)가 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1), 제1에러 감지 코드들(CRC-3_0, CRC-3_1), 논리 어드레스(LADD), 물리 어드레스(PADD) 및 메타 데이터(META)를 이용해 생성한 에러 감지 코드일 수 있다. 즉, 제2에러 감지 코드(CRC-10)는 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1), 제1에러 감지 코드들(CRC-3_0, CRC-3_1), 논리 어드레스(LADD), 물리 어드레스(PADD) 및 메타 데이터(META)를 메세지로 이용해 생성된 코드일 수 있다. 여기서는, 제2에러 감지 코드(CRC-10)가 CRC-10 코드인 것을 예시했으며, 이 경우 제2에러 감지 코드(CRC-10)가 10비트일 수 있다. 403에서 제2에러 감지 코드(CRC-10)라고 표기된 박스 내에 도시된 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1), 제1에러 감지 코드들(CRC-3_0, CRC-3_1), 논리 어드레스(LADD), 물리 어드레스(PADD) 및 메타 데이터(META)는 제2에러 감지 코드(CRC-10)에 의해 커버될 수 있다. 403을 확인하면 401에 있던 호스트 어드레스(ADD)는 제2에러 감지 코드(CRC-10)에 의해 커버되는 대상, 즉 메세지, 에서 제외된 것을 확인할 수 있다.
도 4의 405는 제2메모리(360)에 저장되는 정보를 나타낸다. 제2메모리(360)에는 논리 어드레스(LADD)와 물리 어드레스(PADD) 간의 맵핑을 나타내는 맵핑 테이블이 저장될 수 있다.
도 4의 407은 제3에러 감지 회로(325)가 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1), 제1에러 감지 코드들(CRC-3_0, CRC-3_1), 메타 데이터(META) 및 제2에러 감지 코드(CRC-10)를 이용해 제3에러 감지 코드(RS)를 생성하는 것을 나타낸 도면이다. 즉, 제3에러 감지 코드(RS)는 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1), 제1에러 감지 코드들(CRC-3_0, CRC-3_1), 메타 데이터(META) 및 제2에러 감지 코드(CRC-10)를 메세지로 이용해 생성된 코드일 수 있다. 제3에러 감지 코드(RS)의 메세지에서 논리 어드레스(LADD)와 물리 어드레스(PADD)는 제거된 것을 확인할 수 있다. 여기서는, 제3에러 감지 코드(RS)가 RS (Reed-Solomon) 코드인 것을 예시했으며, 이 경우 제3에러 감지 코드(RS)는 320비트일 수 있다. 제3에러 감지 코드(RS)라고 표기된 박스 내에 도시된 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1), 제1에러 감지 코드들(CRC-3_0, CRC-3_1), 메타 데이터(META) 및 제2에러 감지 코드(CRC-10)는 제3에러 감지 코드(RS)에 의해 커버될 수 있다.
도 4의 409는 제1메모리(350)에 저장되는 정보를 나타낸다. 도 4의 409는 407과 동일한 것을 확인할 수 있다. 즉, 제1메모리(350)에는 제3에러 감지 코드(RS)와 제3에러 감지 코드(RS)의 메세지가 모두 저장될 수 있다.
도 5는 메모리 시스템(300)의 리드 동작을 설명하기 위한 도면이다.
도 5의 409는 제1메모리(350)에 저장되어 있는 정보를 나타낼 수 있다. 제1메모리(350)에 저장된 정보(409)는 리드되어 제3에러 감지 회로(325)로 전달될 수 있다.
제1메모리(350)의 억세스에는 물리 어드레스(PADD)가 사용되는데, 물리 어드레스는 리드 요청과 함께 호스트(HOST)로부터 전달된 어드레스(ADD)를 이용해 맵핑 회로(315)가 논리 어드레스(LADD)를 생성하고, 제2메모리(360)에 저장된 맵핑 테이블을 이용해 논리 어드레스(LADD)를 물리 어드레스(PADD)로 맵핑하는 것에 의해 생성될 수 있다.
도 5의 501은 제3에러 감지 회로(325)가 제1메모리(350)로부터 전달받은 정보를 나타낼 수 있다. 제3에러 감지 회로(325)는 501에 포함된 제3에러 감지 코드(RS)를 이용해, 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1), 제1에러 감지 코드들(CRC-3_0, CRC-3_1), 메타 데이터(META) 및 제2에러 감지 코드(CRC-10)의 에러를 감지하고, 감지된 에러를 정정할 수 있다. 제3에러 감지 회로는 에러가 정정된 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1), 제1에러 감지 코드들(CRC-3_0, CRC-3_1), 메타 데이터(META) 및 제2에러 감지 코드(CRC-10)를 제2에러 감지 회로(323)로 전달할 수 있다.
도 5의 503은 제2에러 감지 회로(323)가 제3에러 감지 회로(325) 및 맵핑 회로(315)로부터 전달받은 정보를 나타낼 수 있다. 제2에러 감지 회로(323)는 제3에러 감지 회로(325)로부터 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1), 제1에러 감지 코드들(CRC-3_0, CRC-3_1), 메타 데이터(META) 및 제2에러 감지 코드(CRC-10)를 전달받고, 맵핑 회로(315)로부터 논리 어드레스(LADD)와 물리 어드레스(PADD)를 전달받을 수 있다. 제2에러 감지 회로(323)는 제2에러 감지 코드(CRC-10)를 이용해 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1), 제1에러 감지 코드들(CRC-3_0, CRC-3_1), 메타 데이터(META), 논리 어드레스(LADD) 및 물리 어드레스(PADD)의 에러를 감지할 수 있다. 에러가 감지된 경우에, 제2에러 감지 회로(323)는 호스트 인터페이스(311)를 이용해 호스트(HOST)에 에러가 감지되었음을 통보할 수 있다. 여기서는 제2에러 감지 코드(CRC-10)에 에러를 감지하기 위한 정보가 포함되었음을 예시했지만, 제2에러 감지 코드(CRC-10)에 에러를 감지하기 위한 정보뿐만이 아니라 감지된 에러를 정정하기 위한 정보까지 포함된 경우에는 제2에러 감지 회로(323)가 감지된 에러를 정정할 수도 있다. 제2에러 감지 회로(323)는 시스템 데이터(DATA0, DATA1)의 일부, 포이즌 비트들(P0, P1)의 일부 및 제1에러 감지 코드들(CRC-3_0, CRC-3_1)의 일부를 제1에러 감지 회로(321)로 전달할 수 있다. 여기서 시스템 데이터(DATA0, DATA1) 및 포이즌 비트들(P0, P1) 중 일부란 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1) 및 제1에러 감지 코드들(CRC-3_0, CRC-3_1) 중 호스트 어드레스(ADD)에 대응하는 부분을 의미할 수 있다.
도 5의 505는 제1에러 감지 회로(323)가 제2에러 감지 회로(323)로부터 전달받은 정보(DATA, P, CRC-3) 및 호스트(HOST)로부터 전달받은 호스트 어드레스(ADD)를 나타낼 수 있다. 제1에러 감지 회로(323)는 제1에러 감지 코드(CRC-3)를 이용해 데이터(DATA), 포이즌 비트(P) 및 어드레스(ADD)의 에러를 감지할 수 있다. 에러가 감지된 경우에, 제1에러 감지 회로(321)는 호스트 인터페이스(311)를 이용해 호스트(HOST)에 에러가 감지되었음을 통보할 수 있다. 여기서는 제1에러 감지 코드(CRC-3)에 에러를 감지하기 위한 정보가 포함되었음을 예시했지만, 제1에러 감지 코드(CRC-3)에 에러를 감지하기 위한 정보뿐만이 아니라 감지된 에러를 정정하기 위한 정보까지 포함된 경우에는 제1에러 감지 회로(321)가 감지된 에러를 정정할 수도 있다. 제1에러 감지 회로(321)에 의해 에러가 감지된 이후에, 데이터(DATA)와 포이즌 비트(P)는 호스트 인터페이스(311)를 통해 호스트(HOST)로 전달될 수 있다.
도 3 내지 도 5를 참조하면, 제1에러 감지 회로(321)는 호스트(HOST)로부터 메모리 콘트롤러로 데이터(DATA), 포이즌 비트(P) 및 어드레스(ADD)가 전달되는 길목에서 제1에러 감지 코드(CRC-3)의 인코딩(encoding) 및 디코딩(decoding)을 진행할 수 있다. 따라서 메모리 시스템 전반에서 발생하는 데이터(DATA), 포이즌 비트(P) 및 어드레스(ADD)의 에러를 감지할 수 있다.
제2에러 감지 회로(323)는 시스템 데이터(DATA0, DATA1), 포이즌 비트(P0, P1), 제1에러 감지 코드(CRC-3_0, CRC-3_1), 메타 데이터(META), 논리 어드레스(LADD)와 물리 어드레스(PADD)의 에러를 감지하기 위한 제2에러 감지 코드(CRC-10)의 인코딩 및 디코딩을 진행할 수 있다. 따라서 제1메모리(350)에서 발생하는 에러는 물론이고 제2메모리(360)에서 발생하는 에러를 감지할 수 있다.
제3에러 감지 회로(325)는 제1메모리(350)에 저장되는 정보(DATA0, DATA1, P0, P1, CRC-3_0, CRC-3_1, META, CRC-10)의 에러를 감지하고 정정하는 동작을 수행할 수 있다. 따라서 제1메모리(350)에서 발생하는 에러가 강력하게 감지 및 정정될 수 있다.
또한, 제1에러 감지 회로(321)와 제2에러 감지 회로(323)는 어드레스들(ADD< LADD, PADD)을 에러 감지 대상에 포함시키지만, 이러한 어드레스들이 제1메모리(350)에 저장되지는 않으므로, 제1메모리(350)의 용량이 낭비되는 것을 방지할 수 있다.
도 6은 코드들(CRC-3, CRC-10, RS)에 의해 보호(protection)되는 정보들을 표시한 도면이다.
도 6을 참조하면, 제1에러 감지 코드(CRC-3_0, CRC-3_1)에 의해 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1) 및 어드레스(ADD0, ADD1)가 보호되는 것을 확인할 수 있다. 따라서 호스트로부터 메모리 콘트롤러(310)로 전달되는 시스템 데이터(DATA0, DATA1), 포이즌 비트들(P0, P1) 및 어드레스(ADD0, ADD1)가 보호될 수 있으며, 메모리 콘트롤러(310)로부터 호스트로 전달되는 시스템 데이터(DATA0, DATA1) 및 포이즌 비트들(P0, P1)의 에러가 감지 및 정정될 수 있다.
제2에러 감지 코드(CRC-10)에 의해서는 제1에러 감지 코드(CRC-3_0, CRC-3_1)에 의해 보호되던 정보들이 중복적으로 보호될 수 있으며, 여기에 메타 데이터(META), 논리 어드레스(LADD) 및 물리 어드레스(PADD)와 같은 메모리 콘트롤러(310)가 메모리 시스템(300)의 데이터 처리 및 어드레스 처리를 위해 추가적으로 사용하는 정보들이 더 보호될 수 있다.
한편, 제3에러 감지 코드(RS)에 의해서는 제1에러 감지 코드(CRC-3_0, CRC-3_1)와 제2에러 감지 코드(CRC-10)에 의해서 보호되던 정보들이 다시 중복적으로 보호되며, 제1메모리(350)에 이 정보들이 입출력되는 과정 및 제1메모리(350)에 이 정보들이 저장되는 과정에서 발생하는 에러가 감지 및 정정될 수 있다.
메모리 시스템(300)의 메모리 콘트롤러(310), 제1메모리(350) 및 제2메모리(360)에서 처리되는 정보들이 3가지의 코드들(CRC-3_0, CRC-3_1, CRC-10, RS)에 의해서 중복적으로 보호되므로, 하나의 코드에 의해 감지되거나 정정되지 못한 에러가 다른 코드에 의해 감지 및 정정될 수 있다. 예를 들어, 제3에러 감지 코드(RS)에 의해 정정되지 못한 제1메모리(350)에서 발생한 에러가 제2에러 감지 코드(CRC-10)에 의해서 정정될 수 있다. 한편, 3가지의 코드들(CRC-3_0, CRC-3_1, CRC-10, RS)이 중복되면서도 서로 다른 범위의 에러를 커버하므로, 메모리 시스템(300) 내의 그 어느 위치에서 발생하는 에러라도 감지 및 정정하는 것이 가능할 수 있다.
본 발명의 기술사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야의 전문가라면 본 발명의 기술사상의 범위 내에서 다양한 실시예가 가능함을 알 수 있을 것이다.
100: 메모리 시스템
110: 에러 감지 회로
120: 메모리

Claims (16)

  1. 호스트로부터 전달된 호스트 데이터와 호스트 어드레스를 이용해 제1에러 감지 코드를 생성하는 제1에러 감지 회로;
    하나 이상의 호스트 데이터를 포함하는 시스템 데이터, 하나 이상의 호스트 어드레스에 대응하는 논리 어드레스, 상기 논리 어드레스에 대응하는 물리 어드레스 및 하나 이상의 제1에러 감지 코드를 이용해 제2에러 감지 코드를 생성하는 제2에러 감지 회로;
    상기 시스템 데이터, 상기 하나 이상의 제1에러 감지 코드 및 상기 제2에러 감지 코드를 이용해 제3에러 감지 코드를 생성하는 제3에러 감지 회로; 및
    상기 시스템 데이터, 상기 하나 이상의 제1에러 감지 코드, 상기 제2에러 정정 코드 및 상기 제3에러 감지 코드를 저장하는 제1메모리
    를 포함하는 메모리 시스템.
  2. 제 1항에 있어서,
    상기 논리 어드레스와 상기 물리 어드레스 간의 맵 테이블을 저장하기 위한 제2메모리
    를 더 포함하는 메모리 시스템.
  3. 제 1항에 있어서,
    상기 제1에러 감지 회로는 포이즌 비트를 더 이용해 상기 제1에러 감지 코드를 생성하고,
    상기 제2에러 감지 회로는 하나 이상의 포이즌 비트를 더 이용해 상기 제2에러 감지 코드를 생성하고,
    상기 제3에러 감지 회로는 상기 하나 이상의 포이즌 비트를 더 이용해 상기 제3에러 감지 코드를 생성하고,
    상기 제1메모리는 상기 하나 이상의 포이즌 비트를 더 저장하는
    메모리 시스템.
  4. 제 3항에 있어서,
    상기 제2에러 감지 회로는 메타 데이터를 더 이용해 상기 제2에러 감지 코드를 생성하고,
    상기 제3에러 감지 회로는 상기 메타 데이터를 더 이용해 상기 제3에러 감지 코드를 생성하고,
    상기 제1메모리는 상기 메타 데이터를 더 저장하는
    메모리 시스템.
  5. 제 1항에 있어서,
    상기 제3에러 감지 코드는
    상기 시스템 데이터, 상기 하나 이상의 제1에러 감지 코드 및 상기 제2에러 감지 코드의 에러를 감지하고 감지된 에러를 정정하기 위한 정보를 포함하는
    메모리 시스템.
  6. 제 1항에 있어서,
    상기 제1에러 감지 코드는 CRC (Cyclic Redundancy Check) 코드이고,
    상기 제2에러 감지 코드는 CRC 코드이고,
    상기 제3에러 감지 코드는 RS (Reed-Solomin) 코드인
    메모리 시스템.
  7. 제 1항에 있어서,
    상기 제3에러 감지 회로는 상기 제1메모리로부터 리드된 제3에러 감지 코드를 이용해 상기 제1메모리로부터 리드된 시스템 데이터, 하나 이상의 제1에러 감지 코드 및 제2에러 감지 코드의 에러를 감지하는
    메모리 시스템.
  8. 제 1항에 있어서,
    상기 제2에러 감지 회로는 상기 제1메모리로부터 리드된 제2에러 감지 코드를 이용해, 상기 제1메모리로부터 리드된 시스템 데이터와 하나 이상의 제1에러 감지 코드 및 상기 호스트로부터 전달된 하나 이상의 호스트 어드레스를 이용해 생성된 논리 어드레스와 물리 어드레스의 에러를 감지하는
    메모리 시스템.
  9. 제 1항에 있어서,
    상기 제1에러 감지 회로는 상기 제1메모리로부터 리드된 하나 이상의 제1에러 감지 코드를 이용해 상기 제1메모리로부터 리드된 시스템 데이터에 포함된 하나 이상의 호스트 데이터와 상기 호스트로부터 전달된 하나 이상의 호스트 어드레스의 에러를 감지하는
    메모리 시스템.
  10. 라이트 동작시에 데이터와 어드레스를 이용해 에러 감지 코드를 생성하는 에러 감지 회로; 및
    상기 라이트 동작시에 상기 데이터와 상기 에러 감지 코드를 저장하는 메모리
    를 포함하는 메모리 시스템.
  11. 제 10항에 있어서,
    리드 동작시에 상기 메모리로부터는 상기 데이터와 상기 에러 감지 코드가 리드되고,
    상기 리드 동작시에 상기 에러 감지 회로는 상기 메모리로부터 리드된 에러 감지 코드를 이용해 상기 메모리로부터 리드된 데이터와 상기 리드 동작의 지시에 사용된 어드레스의 에러를 감지하는
    메모리 시스템.
  12. 제 11항에 있어서,
    상기 에러 감지 코드는 상기 데이터와 어드레스의 에러를 감지하고 감지된 에러를 정정하기 위한 정보를 포함하는
    메모리 시스템.
  13. 제 12항에 있어서,
    상기 에러 감지 회로는 상기 리드 동작시에 에러가 감지되는 경우에 감지된 에러를 정정하는
    메모리 시스템.
  14. 라이트 데이터와 라이트 어드레스를 수신하는 단계;
    상기 라이트 데이터와 상기 라이트 어드레스를 이용해 에러 감지 코드를 생성하는 단계; 및
    상기 라이트 데이터와 상기 에러 감지 코드를 메모리에서 상기 라이트 어드레스에 의해 선택되는 영역에 라이트하는 단계
    를 포함하는 메모리 시스템의 동작 방법.
  15. 제 14항에 있어서,
    리드 어드레스를 수신하는 단계;
    상기 메모리에서 상기 리드 어드레스에 의해 선택되는 영역으로부터 데이터와 에러 감지 코드를 리드하는 단계; 및
    상기 리드된 에러 감지 코드를 이용해 상기 리드된 데이터와 상기 리드 어드레스의 에러를 감지하는 단계
    를 더 포함하는 메모리 시스템의 동작 방법.
  16. 제 15항에 있어서,
    상기 리드된 데이터와 상기 리드 어드레스의 에러를 감지한 이후에, 감지된 에러를 정정하는 단계
    를 더 포함하는 메모리 시스템의 동작 방법.
KR1020190009054A 2019-01-24 2019-01-24 메모리 시스템 및 메모리 시스템의 동작 방법 KR20200092036A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190009054A KR20200092036A (ko) 2019-01-24 2019-01-24 메모리 시스템 및 메모리 시스템의 동작 방법
TW108137556A TW202029209A (zh) 2019-01-24 2019-10-17 記憶體系統及其操作方法
US16/683,989 US11216335B2 (en) 2019-01-24 2019-11-14 Memory system and operation method thereof
CN201911242329.8A CN111475327B (zh) 2019-01-24 2019-12-06 存储系统及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190009054A KR20200092036A (ko) 2019-01-24 2019-01-24 메모리 시스템 및 메모리 시스템의 동작 방법

Publications (1)

Publication Number Publication Date
KR20200092036A true KR20200092036A (ko) 2020-08-03

Family

ID=71733704

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190009054A KR20200092036A (ko) 2019-01-24 2019-01-24 메모리 시스템 및 메모리 시스템의 동작 방법

Country Status (4)

Country Link
US (1) US11216335B2 (ko)
KR (1) KR20200092036A (ko)
CN (1) CN111475327B (ko)
TW (1) TW202029209A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3840725A4 (en) 2018-08-26 2022-06-08 Hair Plus Health LLC METHODS AND COMPOSITIONS FOR ENHANCING HAIR GROWTH AND/OR PREVENTING HAIR LOSS
US11775382B2 (en) 2020-12-09 2023-10-03 Micron Technology, Inc. Modified parity data using a poison data unit
US11416331B2 (en) * 2020-12-09 2022-08-16 Micron Technology, Inc. Modified checksum using a poison data pattern
TWI771079B (zh) * 2021-06-24 2022-07-11 群聯電子股份有限公司 記憶體存取方法、記憶體儲存裝置及記憶體控制電路單元

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2002361C (en) * 1989-03-10 1993-12-21 Robert M. Blake Fault tolerant computer memory systems and components employing dual level error correction and detection with disablement feature
US5864440A (en) * 1994-12-27 1999-01-26 International Business Machines Corporation Data processing method and data storage system
US5761221A (en) * 1995-12-11 1998-06-02 International Business Machines Corporation Memory implemented error detection and correction code using memory modules
JPH10198608A (ja) * 1997-01-08 1998-07-31 Mitsubishi Electric Corp メモリカード
JP3230485B2 (ja) * 1998-04-09 2001-11-19 日本電気株式会社 1チップマイクロコンピュータ
US6457067B1 (en) * 1998-12-18 2002-09-24 Unisys Corporation System and method for detecting faults in storage device addressing logic
US6941505B2 (en) * 2000-09-12 2005-09-06 Hitachi, Ltd. Data processing system and data processing method
US20070079212A1 (en) * 2005-04-01 2007-04-05 Silverback Systems, Inc. Techniques for efficient error correction code implementation in a system
JP4734033B2 (ja) * 2005-05-30 2011-07-27 株式会社東芝 記憶装置
US8468416B2 (en) * 2007-06-26 2013-06-18 International Business Machines Corporation Combined group ECC protection and subgroup parity protection
US8136010B2 (en) * 2007-12-21 2012-03-13 International Business Machines Corporation Apparatus for pipelined cyclic redundancy check circuit with multiple intermediate outputs
CN101882119B (zh) * 2009-05-08 2014-05-14 上海炬力集成电路设计有限公司 与非型闪存控制器及其数据传输方法
JP5574230B2 (ja) * 2010-04-28 2014-08-20 株式会社日立製作所 障害処理方法および計算機
US8308223B2 (en) * 2010-08-03 2012-11-13 Honda Motor Company, Ltd. Net structure for a vehicle
US8990660B2 (en) * 2010-09-13 2015-03-24 Freescale Semiconductor, Inc. Data processing system having end-to-end error correction and method therefor
US8566672B2 (en) * 2011-03-22 2013-10-22 Freescale Semiconductor, Inc. Selective checkbit modification for error correction
US8607121B2 (en) * 2011-04-29 2013-12-10 Freescale Semiconductor, Inc. Selective error detection and error correction for a memory interface
US8990657B2 (en) * 2011-06-14 2015-03-24 Freescale Semiconductor, Inc. Selective masking for error correction
US8949694B2 (en) * 2011-09-23 2015-02-03 International Business Machines Corporation Address error detection
US9189329B1 (en) * 2011-10-13 2015-11-17 Marvell International Ltd. Generating error correcting code (ECC) data using an ECC corresponding to an identified ECC protection level
JP2013137708A (ja) * 2011-12-28 2013-07-11 Toshiba Corp メモリコントローラ、データ記憶装置およびメモリ制御方法
KR102204391B1 (ko) 2014-08-18 2021-01-18 삼성전자주식회사 공유 가능한 ecc 셀 어레이를 갖는 메모리 장치
KR20160021558A (ko) 2014-08-18 2016-02-26 삼성전자주식회사 초음파 변환기의 구동방법 및 초음파 진단 방치
TWI566096B (zh) * 2015-09-11 2017-01-11 慧榮科技股份有限公司 資料儲存系統與其相關方法
US10055282B1 (en) * 2015-10-19 2018-08-21 Marvell International Ltd. Method and apparatus of feeding a seed value to a processing unit to initialize cyclic redundancy checking
KR102473209B1 (ko) * 2015-12-14 2022-12-02 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102407437B1 (ko) * 2015-12-30 2022-06-10 삼성전자주식회사 불휘발성 메모리 모듈을 포함하는 메모리 시스템 및 전자 장치
KR20170098538A (ko) * 2016-02-22 2017-08-30 에스케이하이닉스 주식회사 반도체 장치 및 그 구동 방법
KR20180033676A (ko) * 2016-09-26 2018-04-04 에스케이하이닉스 주식회사 메모리 모듈 및 이를 포함하는 메모리 시스템
US9934841B1 (en) * 2016-10-21 2018-04-03 Altera Corporation Systems and methods for refreshing data in memory circuits
KR20180089104A (ko) * 2017-01-31 2018-08-08 에스케이하이닉스 주식회사 메모리 모듈, 이를 포함하는 메모리 시스템 및 이의 에러 정정 방법
KR102483476B1 (ko) * 2018-04-03 2023-01-03 에스케이하이닉스 주식회사 데이터 입/출력 핀 단위로의 리페어를 지원하는 반도체 메모리 장치 및 그 반도체 메모리 장치의 리페어 방법
KR102553780B1 (ko) * 2018-05-10 2023-07-10 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190132237A (ko) * 2018-05-18 2019-11-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102538222B1 (ko) * 2018-06-26 2023-06-01 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템, 그리고 스토리지 장치를 액세스하는 방법
US10725861B2 (en) * 2018-06-28 2020-07-28 Intel Corporation Error correction code memory security
KR102557993B1 (ko) * 2018-10-02 2023-07-20 삼성전자주식회사 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법

Also Published As

Publication number Publication date
US11216335B2 (en) 2022-01-04
TW202029209A (zh) 2020-08-01
CN111475327B (zh) 2023-10-03
CN111475327A (zh) 2020-07-31
US20200241958A1 (en) 2020-07-30

Similar Documents

Publication Publication Date Title
US10152249B2 (en) Data memory device and controller with interface error detection and handling logic
US10635599B2 (en) Memory controller assisted address mapping
CN111475327B (zh) 存储系统及其操作方法
US10169126B2 (en) Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
US9348695B2 (en) System and method of storing redundancy data
US20160011790A1 (en) Systems and methods to enable access to a host memory associated with a unified memory architecture (uma)
US9817752B2 (en) Data integrity enhancement to protect against returning old versions of data
US20140215291A1 (en) Systems and methods for error detection and correction in a memory module which includes a memory buffer
US20190034270A1 (en) Memory system having an error correction function and operating method of memory module and memory controller
CN111475438B (zh) 提供服务质量的io请求处理方法及其装置
US9824007B2 (en) Data integrity enhancement to protect against returning old versions of data
US20170160932A1 (en) Reading Logical Groups of Data from Physical Locations in Memory Using Headers
US10824335B2 (en) Device and method to store predicted data at a host memory
US10248497B2 (en) Error detection and correction utilizing locally stored parity information
US10725672B2 (en) Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
US20190179694A1 (en) Data storage device, operating method thereof and storage system including the same
KR20130086366A (ko) 리던던트 방식으로 복수의 메모리 장치들 내에 데이터 블록들을 저장하는 방법, 메모리 컨트롤러, 및 메모리 시스템
US11030040B2 (en) Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system
US11249844B2 (en) Memory system and memory module
US20210055985A1 (en) Memory controller with high data reliability, a memory system having the same, and an operation method of the memory controller
US11003531B2 (en) Memory system and operating method thereof
WO2022125372A1 (en) Modified checksum using a poison data pattern
US10735030B2 (en) Re-encoding data associated with failed memory devices
CN112927748A (zh) 存储系统、集成电路系统以及存储系统的操作方法
TWI698750B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置

Legal Events

Date Code Title Description
A201 Request for examination