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

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

Info

Publication number
KR102468721B1
KR102468721B1 KR1020170176215A KR20170176215A KR102468721B1 KR 102468721 B1 KR102468721 B1 KR 102468721B1 KR 1020170176215 A KR1020170176215 A KR 1020170176215A KR 20170176215 A KR20170176215 A KR 20170176215A KR 102468721 B1 KR102468721 B1 KR 102468721B1
Authority
KR
South Korea
Prior art keywords
error
data
bits
pattern
compressed data
Prior art date
Application number
KR1020170176215A
Other languages
English (en)
Other versions
KR20190074678A (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 에스케이하이닉스 주식회사
Priority to KR1020170176215A priority Critical patent/KR102468721B1/ko
Priority to US16/038,792 priority patent/US11003531B2/en
Priority to CN201811169537.5A priority patent/CN109949854B/zh
Publication of KR20190074678A publication Critical patent/KR20190074678A/ko
Application granted granted Critical
Publication of KR102468721B1 publication Critical patent/KR102468721B1/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/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
    • 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/1072Adding 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 multilevel 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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
    • G06F11/1056Updating check bits on partial write, i.e. read/modify/write
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • 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/0409Online test
    • 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)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 메모리 시스템 및 그의 동작 방법에 관한 것으로, 본 발명의 메모리 시스템은 복수의 메모리 셀들을 포함하며, 페이지 단위로 데이터 및 패리티 비트를 리드 및 라이트하는 메모리 장치; 및 상기 데이터 및 상기 패리티 비트를 토대로 검출된 에러 비트의 수가 제 1 임계값 보다 작거나 같지만 제 2 임계값 보다 큰 경우, 압축 데이터에 따라 에러 마스크 패턴을 획득하고, 상기 압축 데이터, 상기 에러 마스크 패턴이 반영된 상기 압축 데이터에 따라 업데이트된 패리티 비트, 상기 압축 데이터에 대한 압축 정보 및 상기 에러 마스크 패턴에 대한 패턴 정보를 상기 페이지에 라이트하도록 제어하는 메모리 컨트롤러를 포함할 수 있다.

Description

메모리 시스템 및 그의 동작 방법 {MEMORY SYSTEM AND MRTHOD OF OPERATING THE SAME}
본 특허 문헌은 에러 정정 동작을 수행하는 메모리 시스템에 관한 것이다.
반도체 메모리 장치 산업의 초창기에는 반도체 제조 프로세스를 통과한 메모리 칩에서 불량 메모리 셀이 하나도 존재하지 않는 오리지날 굿 다이(original good die)가 웨이퍼(wafer) 상에 다수 분포하였다. 그러나 메모리 장치의 용량이 점차로 증가하면서 불량 메모리 셀이 하나도 존재하지 않는 메모리 장치를 만드는 것이 어려워졌으며, 현재에는 이러한 메모리 장치가 제조될 확률은 없다고 봐도 무방하다. 이러한 상황을 타개하기 위한 하나의 방편으로 메모리 장치의 불량 메모리 셀들을 리던던시 메모리 셀들로 리페어하는 방법이 사용되고 있다.
그리고 또 하나의 방편으로 메모리 시스템에서 에러를 정정하는 에러 정정 회로(ECC 회로)를 사용해 메모리 셀에서 발생하는 에러 및 메모리 시스템의 리드 및 라이트 과정에서 데이터가 전송되면서 발생하는 에러를 정정하고 있다.
본 발명의 실시예들은, 다수의 에러 비트가 발생한 페이지의 데이터를 압축하고 남은 공간의 에러 비트들에 대한 에러 마스크 패턴을 획득하여 에러 비트를 마스킹할 수 있는 메모리 시스템을 제공하는 데 목적이 있다.
본 발명의 일 실시 예에 따르면, 메모리 시스템은 복수의 메모리 셀들을 포함하며, 페이지 단위로 데이터 및 패리티 비트를 리드 및 라이트하는 메모리 장치; 및 상기 데이터 및 상기 패리티 비트를 토대로 검출된 에러 비트의 수가 제 1 임계값 보다 작거나 같지만 제 2 임계값 보다 큰 경우, 압축 데이터에 따라 에러 마스크 패턴을 획득하고, 상기 압축 데이터, 상기 에러 마스크 패턴이 반영된 상기 압축 데이터에 따라 업데이트된 패리티 비트, 상기 압축 데이터에 대한 압축 정보 및 상기 에러 마스크 패턴에 대한 패턴 정보를 상기 페이지에 라이트하도록 제어하는 메모리 컨트롤러를 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 메모리 시스템의 동작 방법은 특정 페이지로부터 독출된 데이터 및 패리티 비트를 토대로 에러 비트의 수를 검출 및 정정하는 단계; 상기 에러 비트의 수가 제 1 임계값 보다 작거나 같지만 제 2 임계값 보다 큰 경우, 에러 정정된 데이터를 압축하여 압축 데이터를 생성하는 단계; 상기 압축 데이터에 따라 에러 마스크 패턴을 획득하는 단계; 상기 에러 마스크 패턴이 반영된 상기 압축 데이터에 대응되는 상기 패리티 비트를 업데이트하는 단계; 및 상기 압축 데이터, 상기 업데이트된 패리티 비트, 상기 압축 데이터에 대한 압축 정보 및 상기 에러 마스크 패턴에 대한 패턴 정보를 상기 페이지에 라이트하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 메모리 시스템의 동작 방법은 라이트 가능한 페이지의 수를 확인하는 단계; 상기 라이트 가능한 페이지의 수가 특정 기준 이내인 경우, 상기 라이트 데이터를 압축하여 압축 데이터를 생성하는 단계; 상기 압축 데이터에 따라 에러 마스크 패턴을 획득하는 단계; 상기 에러 마스크 패턴이 반영된 상기 압축 데이터에 대응되는 패리티 비트를 생성하는 단계; 및 상기 압축 데이터, 상기 패리티 비트, 상기 압축 데이터에 대한 압축 정보 및 상기 에러 마스크 패턴에 대한 패턴 정보를 특정 페이지에 라이트하는 단계를 포함할 수 있다.
본 발명의 실시예들에 따르면, 다수의 에러 비트가 발생한 페이지를 압축하고 남은 공간에 에러 비트가 집중되도록 하고, 에러 비트들을 에러 마스크 패턴을 이용하여 마스킹함으로써 메모리 시스템의 에러 정정 성능을 향상시킬 수 있다는 효과를 가진다.
도 1 은 본 발명의 실시예에 따른 메모리 시스템을 포함하는 데이터 저장 시스템의 블록도 이다.
도 2a 및 도 2b 는 본 발명의 실시예에 따른 페이지 구성을 설명하기 위한 도면이다.
도 3 은 도 1 의 메모리 시스템의 동작을 설명하기 위한 플로우 차트 이다.
도 4 는 본 발명의 실시예에 따른 메모리 시스템의 구성을 설명하기 위한 블록도 이다.
도 5a 및 도 5b 는 도 4 에서 생성된 페이지 구성을 설명하기 위한 도면 이다.
도 6 은 도 4 의 패턴 획득부의 동작을 설명하기 위한 도면 이다.
도 7 은 도 4 의 메모리 시스템의 리드 동작을 설명하기 위한 플로우 차트 이다.
도 8 은 도 4 의 메모리 시스템의 라이트 동작을 설명하기 위한 플로우 차트 이다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 본 발명을 설명함에 있어서, 본 발명의 요지와 무관한 공지의 구성은 생략될 수 있다. 각 도면의 구성요소들에 참조 번호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면 상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다.
도 1 은 본 발명의 실시예에 따른 메모리 시스템(10)이 적용된 데이터 처리 시스템을 설명하기 위한 블록도 이다.
도 1 을 참조하면, 데이터 처리 시스템은 메모리 시스템(10)과 호스트(20)를 포함할 수 있다.
호스트(20)는, 코어(core)로서 지칭될 수 있는 독립적이고 실질적인 프로세서를 의미하며, 프로세서 1개로 구현될 수도 있으며, 또는 2개 이상 포함하는 멀티-코어 프로세서(multi-core processor)로 구현될 수도 있다.
메모리 시스템(10)은 호스트(20)의 요청(REQ)에 응답하여 동작하며, 특히 호스트(20)에 의해서 액세스되는 데이터를 저장한다. 다시 말해, 메모리 시스템(10)은, 호스트(20)의 주 기억 장치 또는 보조 기억 장치로 사용될 수 있다. 메모리 시스템(10)은 호스트(20)에 의해서 액세스되는 데이터를 저장하는 메모리 장치(200) 및 메모리 장치(200)로의 데이터 저장을 제어하는 메모리 컨트롤러(100)를 포함한다.
메모리 장치(200)는 전원이 공급되지 않아도 저장된 데이터를 유지할 수 있으며, 라이트 동작 시 호스트(20)로부터 제공된 데이터를 저장하고, 리드 동작 시 저장된 데이터를 호스트(20)로 제공한다. 메모리 장치(200)는, 복수의 메모리 블록들(BLK1~BLKN)을 포함하며, 각각의 메모리 블록들(BLK1~BLKN)은, 다수의 워드 라인(WL) 및 다수의 비트 라인(BL)의 교차점에 연결된 다수의 메모리 셀들(MC)을 포함한다.
메모리 컨트롤러(100)는 호스트(20)로부터 입력되는 요청(REQ)에 응답하여 커맨드(CMD), 데이터(DATA), 어드레스(ADDR)를 메모리 장치(200)로 전달하여 메모리 장치(200)의 동작을 제어할 수 있다. 커맨드(CMD)는 라이트 동작을 지시하는 라이트 커맨드(WT) 및 리드 동작을 지시하는 리드 커맨드(RD)를 포함할 수 있다. 데이터(DATA)는, 라이트 동작 시에 메모리 장치(200)로 제공되는 라이트 데이터(WDATA) 및 리드 동작 시 메모리 장치로부터 독출되는 리드 데이터(RDATA)를 포함할 수 있다.
예를 들어, 호스트로부터 입력되는 요청(REQ)이 라이트 요청일 경우, 메모리 컨트롤러(100)는 라이트 커맨드(WT), 라이트 데이터(WDATA), 메모리 장치(200)의 타겟 메모리 셀들에 대응되는 어드레스(ADDR)를 메모리 장치(200)로 전달하여, 타겟 메모리 셀들에 라이트 데이터(WDATA)가 프로그램되도록 라이트 동작을 제어할 수 있다. 반면, 호스트로부터 입력되는 요청(REQ)이 리드 요청일 경우, 메모리 컨트롤러(100)는 리드 커맨드(RD) 및 메모리 장치(200)의 타겟 메모리 셀들에 대응되는 어드레스(ADDR)를 메모리 장치(200)에 전달하고, 타겟 메모리 셀들로부터 리드 데이터(RDATA)가 독출되도록 리드 동작을 제어할 수 있다.
에러 정정 동작을 수행하는 메모리 시스템(10)의 경우, 메모리 컨트롤러(100)는, 라이트 데이터(WDATA) 및 리드 데이터(RDATA) 외에도 이들의 에러 비트를 정정하기 위한 에러 정정 코드(예를 들어, 패리티 비트(PTY))를 메모리 장치(200)와 송수신할 수 있다. 라이트 동작 시, 메모리 컨트롤러(100)는 라이트 데이터(WDATA)에 대응되는 패리티 비트(PTY)를 생성하고, 라이트 데이터(WDATA)와 함께 패리티 비트(PTY)를 메모리 장치(200)로 전달하여, 타겟 메모리 셀들에 라이트 데이터(WDATA)와 패리티 비트(PTY)가 함께 프로그램되도록 제어할 수 있다. 리드 동작 시, 메모리 장치(200)는 패리티 비트(PTY) 및 리드 데이터(RDATA)를 메모리 컨트롤러(100)로 전달하고, 메모리 컨트롤러(100)는 패리티 비트(PTY)를 이용하여 리드 데이터(RDATA)의 에러 비트를 정정할 수 있다.
한편, 메모리 장치(200)는, 페이지 단위로 데이터(DATA) 및 패리티 비트(PTY)를 타겟 메모리 셀들에 리드 또는 라이트 할 수 있다. 즉, 하나의 라이트 커맨드(WT)에 응답하여 타겟 메모리 셀들에 라이트되는 라이트 데이터(WDATA)와 패리티 비트(PTY)는 하나의 페이지(혹은 코드 워드)를 구성할 수 있다. 마찬가지로, 하나의 리드 커맨드(RD)에 응답하여 타겟 메모리 셀들로부터 독출되는 리드 데이터(RDATA)와 패리티 비트(PTY)는 하나의 페이지(혹은 코드 워드)를 구성할 수 있다.
도 2a 및 도 2b 는 본 발명의 실시예에 따른 페이지 구성을 설명하기 위한 도면이다.
도 2a 를 참조하면, 페이지는 라이트 데이터(WDATA) 혹은 리드 데이터(RDATA)가 라이트되는 데이터 영역(310) 및 해당 데이터의 에러 비트를 검출 및 정정하기 위한 패리티 비트(PTY)가 라이트되는 ECC 영역(321)으로 구성될 수 있다. ECC 영역(321)은 페이지의 스페어 영역(320)에 배치될 수 있다. 일반적으로, 도 2a 에 도시된 바와 같이, 스페어 영역(320)에서, ECC 영역(321)을 제외한 나머지 영역은 미사용 영역(322)으로 할당하고, 메모리 장치(200)의 동작이 비정상적으로 종료된 경우 데이터 영역(310)에 기입된 데이터를 복구하기 위해 사용될 수 있는 메타 데이터를 추가로 저장하거나 사용하지 않았다.
하지만, 본 발명에서는, 리드 동작 시 독출된 리드 데이터(RDATA) 및 패리티 비트(PTY)를 토대로 검출된 에러 비트의 수가 정정 가능한 에러 비트 수 이하지만 근접한 경우, 즉 이번 에러 정정은 성공하였지만 다음 에러 정정은 실패할 확률이 높은 경우, 메모리 컨트롤러(100)는 리드 데이터(RDATA)를 압축하여 압축 데이터(COM_DATA)를 생성할 수 있다. 또한, 메모리 컨트롤러(100)는, 압축 데이터(COM_DATA)에 따라 에러 마스크 패턴을 획득하고, 압축 데이터(COM_DATA), 에러 마스크 패턴이 적용된 압축 데이터에 따라 재생성(즉, 업데이트)된 패리티 비트(PTY), 압축 데이터(COM_DATA)에 대한 압축 정보(COM_INF) 및 에러 마스크 패턴에 대한 패턴 정보(MSK_INF)를 해당 페이지에 리라이트하도록 메모리 장치(200)를 제어할 수 있다. 이 때, 도 2b 에 도시된 바와 같이, 압축 데이터(COM_DATA), 패리티 비트(PTY), 압축 정보(COM_INF) 및 패턴 정보(MSK_INF)는 하나의 페이지를 구성할 수 있다. 특히, 압축 데이터(COM_DATA)는 페이지의 데이터 영역(310)에 저장되고, 패리티 비트(PTY), 압축 정보(COM_INF) 및 패턴 정보(MSK_INF)는 페이지의 스페어 영역(320)에 저장될 수 있다.
다시 도 1 을 참조하면, 메모리 컨트롤러(100)는, 제어 로직(110), 에러 정정 코드(ECC) 회로(120), 압축부(130), 패턴 테이블(150), 마스크 패턴 핸들링부(160) 및 호스트 인터페이스(I/F)(170), 메모리 인터페이스(I/F)(180) 및 그들 사이를 연결하는 버스(190)를 포함할 수 있다.
버스(190)는 메모리 컨트롤러(100)의 내부 구성들 간의 데이터를 전송하는 전송로를 의미한다.
호스트 인터페이스(170)는 호스트(20)와 메모리 컨트롤러(100) 사이에 위치하여, 호스트(20)로부터 입력되는 요청들(REQ)을 버퍼링하여 내부 구성들로 전달하고, 요청들(REQ)의 처리 결과들을 호스트(20)로 전송할 수 있다.
제어 로직(110)은 메모리 시스템(10)의 전체적인 동작을 제어하며, 호스트(20)로부터의 요청(REQ)에 응답하여, 메모리 장치(200)에 대한 라이트 동작 또는 리드 동작을 제어하기 위한 커맨드(CMD), 데이터(DATA), 어드레스(ADDR)를 생성할 수 있다. 또한, 제어 로직(110)은 ECC 회로(120)로부터 제공되는 리드 데이터(RDATA)의 에러 정보를 토대로 에러 비트가 발생한 메모리 블록은 되도록 사용되지 않도록 스케쥴링하여 메모리 시스템(10)의 성능을 개선시킬 수 있다.
ECC 회로(120)는, 라이트 동작 시 호스트(20)로부터 제공되는 라이트 데이터(WDATA)에 대응되는 패리티 비트(PTY)를 생성하고, 라이트 데이터(WDATA)와 함께 생성된 패리티 비트(PTY)를 메모리 장치(200)로 제공하는 패리티 생성부(122)를 포함할 수 있다. 또한, ECC 회로(120)는, 리드 동작 시 메모리 장치(200)로부터 독출된 패리티 비트(PTY)를 이용하여 리드 데이터(RDATA)에 포함된 에러 비트를 검출 및 정정하는 에러 정정부(124)를 포함할 수 있다. 에러 정정부(124)는, LDPC(low density parity check) code, BCH(Bose, Chaudhri, Hocquenghem) code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러 정정을 수행할 수 있으며 이에 한정되는 것은 아니다.
ECC 회로(120)는, 에러 정정이 성공한 경우(즉, 검출된 에러 비트의 수가 정정 가능한 에러 비트 수(이하, “제 1 임계값(TH1)”이라 한다)) 보다 작거나 같은 경우)에는, 에러 정정된 리드 데이터를 호스트 인터페이스(170)를 통해 호스트(20)로 제공한다. 또한, ECC 회로(120)는 에러 정정이 실패한 리드 데이터(RDATA)에 포함된 에러 비트를 이용하여 패턴을 생성하고, 생성된 패턴을 패턴 테이블(150)에 저장할 수 있다.
ECC 회로(120)는, 에러 정정이 실패한 경우(즉, 검출된 에러 비트의 수가 제 1 임계값(TH1) 보다 큰 경우)에는, 에러 페일 신호를 호스트 인터페이스(170)를 통해 호스트(20)에 알리고, 에러 정보를 제어 로직(110)으로 제공하여 상응하는 동작을 수행할 수 있다. 특히, 본 발명에서, 패리티 생성부(122)는, 이번 에러 정정은 성공하였지만 다음 에러 정정은 실패할 확률이 높은 경우(즉, 검출된 에러 비트 수가 제 1 임계값(TH1) 보다 작거나 같지만 제 2 임계값(TH2) 보다 큰 경우) 압축 데이터(COM_DATA)에 대응되는 패리티 비트(PTY)를 재생성(즉, 업데이트)할 수 있다. 이 때, 제 2 임계값(TH2)은 제 1 임계값(TH1) 보다 작다.
압축부(130)는, 검출된 에러 비트 수가 제 1 임계값(TH1) 보다 작거나 같지만 제 2 임계값(TH2) 보다 큰 경우, 에러 정정된 리드 데이터를 압축하여 압축 데이터(COM_DATA)를 생성하고, 압축 데이터(COM_DATA)에 대한 압축 정보(COM_INF)를 생성할 수 있다.
패턴 테이블(150)은, 미리 정의된 다수 개의 마스크 패턴을 저장할 수 있다. 패턴 테이블(150)은, 에러 정정이 실패한 경우 ECC 회로(120)에 의해 생성된 패턴을 패턴 테이블(150)에 저장할 수 있다.
마스크 패턴 핸들링부(160)는, 압축 데이터(COM_DATA)에 따라 에러 마스크 패턴을 획득하고, 에러 마스크 패턴에 대한 패턴 정보(MSK_INF)를 생성할 수 있다. 마스크 패턴 핸들링부(160)는, 압축 데이터(COM_DATA)를 제외한 데이터 영역(도 2 의 빗금친 부분)의 에러 비트의 위치를 확인하고, 패턴 테이블(150)에 저장된 다수 개의 패턴들 중 에러 비트를 최대한 커버할 수 있는 패턴을 에러 마스크 패턴으로 선택하고, 에러 마스크 패턴에 대한 패턴 정보(MSK_INF)를 생성할 수 있다.
메모리 인터페이스(180)는 메모리 컨트롤러(100)와 메모리 장치(200) 사이에 위치하여, 메모리 컨트롤러(100)로부터 메모리 장치(200)로 커맨드(CMD)와 어드레스(ADD)를 전달하고, 메모리 장치(200)와 메모리 컨트롤러(100) 간에 데이터(DATA)를 송/수신할 수 있다. 특히, 메모리 인터페이스(180)는 압축 데이터, 업데이트된 패리티 비트, 압축 정보 및 패턴 정보를 도 2 에서 설명된 페이지 단위로 메모리 장치(200)에 전달할 수 있다.
한편, 상기에서 설명된 메모리 컨트롤러(100)의 구성은 발명과 직접적으로 관련된 구성만을 도시하고 있을 뿐이며, 메모리 컨트롤러(100)는 상기의 구성 외에도 다른 구성들을 더 포함할 수 있다. 예를 들어, 메모리 컨트롤러(100)의 동작 메모리로서, 메모리 컨트롤러(100)의 구동을 위한 데이터를 저장하기 위한 메모리(미도시)가 추가적으로 구비될 수 있다. 메모리는, 메모리 컨트롤러(100)가 호스트(20)로부터의 요청(REQ)에 응답하여, 메모리 장치(200)로부터 리드 데이터(RDATA)를 호스트(20)로 제공하고 라이트 데이터(WDATA)를 메모리 장치(200)에 제공할 때, 메모리 컨트롤(100)와 메모리 장치(200)의 동작에 필요한 데이터를 임시 저장할 수 있다. 실시예에 따라, 패턴 테이블(150)은 메모리 내에 구비될 수 있다.
도 3 은 도 1 의 메모리 시스템(10)의 동작을 설명하기 위한 플로우 차트 이다.
도 3 을 참조하면, 메모리 컨트롤러(100)의 메모리 인터페이스(180)는 메모리 장치(200)의 특정 페이지로부터 리드 데이터(RDATA) 및 패리티 비트(PTY)를 수신한다(S310). ECC 회로(120)는 메모리 장치(200)로부터 독출된 패리티 비트(PTY)를 이용하여 리드 데이터(RDATA)에 포함된 에러 비트를 검출한다(S320).
검출된 에러 비트의 수가 제 1 임계값(TH1) 보다 큰 경우(S330의 CON1), ECC 회로(120)는 에러 페일 신호를 호스트 인터페이스(170)를 통해 호스트(20)에 제공한다(S342). 또한, ECC 회로(120)는 에러 정정이 실패한 리드 데이터(RDATA)에 포함된 에러 비트를 이용하여 패턴을 생성하고, 생성된 패턴을 패턴 테이블(150)에 저장할 수 있다(S344).
검출된 에러 비트의 수가 제 2 임계값(TH2) 보다 작거나 같은 경우(S330의 CON2), ECC 회로(120)는 에러 정정된 리드 데이터를 호스트 인터페이스(170)를 통해 호스트(20)로 제공한다(S352).
이 때, 검출된 에러 비트 수가 정정 가능한 에러 비트 수 이하지만 근접한 경우, 즉, 제 1 임계값(TH1) 보다 작거나 같지만 제 2 임계값(TH2) 보다 큰 경우(S330의 CON3), ECC 회로(120)는 에러 정정된 리드 데이터를 호스트 인터페이스(170)를 통해 호스트(20)로 제공한다(S362). 압축부(130)는 에러 정정된 리드 데이터를 압축하여 압축 데이터(COM_DATA)를 생성하고(S364), 압축 데이터(COM_DATA)에 대한 압축 정보(COM_INF)를 생성한다. 마스크 패턴 핸들링부(160)는, 압축 데이터(COM_DATA)를 제외한 데이터 영역의 에러 비트의 위치를 확인하여, 패턴 테이블(150)에 저장된 다수 개의 패턴들 중 에러 비트를 최대한 커버할 수 있는 패턴을 에러 마스크 패턴으로 획득하고(S366), 에러 마스크 패턴에 대한 패턴 정보(MSK_INF)를 생성한다. 이 후, ECC 회로(120)는 에러 마스크 패턴이 반영된 압축 데이터(COM_DATA)를 이용하여 패리티 비트(PTY)를 업데이트하고(S368), 메모리 인터페이스(180)는 압축 데이터(COM_DATA), 업데이트된 패리티 비트(PTY), 압축 정보(COM_INF) 및 패턴 정보(MSK_INF)를 도 2 에서 설명된 페이지 단위로 메모리 장치(200)에 전달하여 라이트되도록 할 수 있다(S370).
상기와 같이, 제안 발명에 따른 메모리 시스템은, 에러 비트의 수가 정정 가능한 에러 비트 수 이하지만 근접한 경우, 해당 페이지의 데이터를 압축하고 남은 공간에 에러 비트가 집중되도록 재배치하고 에러 마스크 패턴을 이용하여 해당 공간을 마스킹 처리한다. 또한, 에러 마스크 패턴이 반영된 압축 데이터를 이용하여 패리티 비트를 업데이트하고, 압축 데이터, 업데이트된 패리티 비트, 압축 정보 및 패턴 정보를 메모리 장치에 리라이트한다. 일반적으로, 에러 비트가 발생한 위치가 특정 비트(예를 들어, 하이 비트(“1”))로 고정(stuck)되는 경우, 에러 비트가 발생한 위치를 로우 비트로 제로 패딩하더라도 해당 위치에서 또 다시 에러가 발생할 확률이 높다. 제안 발명에서는, 압축하고 남은 공간을 로우 비트나 하이 비트로 패딩하지 않고, 에러 마스크 패턴을 반영함으로써 에러 비트를 원천적으로 봉쇄함으로써 메모리 시스템의 에러 정정 성능을 향상시킬 수 있다.
이하, 도면을 참조하며 본 발명의 구체적인 구성 및 동작을 설명하기로 한다.
도 4 은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 블록도 이다. 도 4 에서는 메모리 시스템에서 데이터의 전송과 직접적으로 관련된 부분만을 도시하고 커맨드(CMD) 및 어드레스(ADDR)와 관련된 구성을 생략하고, 이들을 인터페이싱하는 구성도 생략하였다.
도 4 를 참조하면, 메모리 컨트롤러(400)는 제어 로직(410), 에러 정정 코드(ECC) 회로(420), 압축부(430), 압축 해제부(440), 패턴 테이블(450) 및 마스크 패턴 핸들링부(460)를 포함할 수 있다. ECC 회로(420)는 패리티 생성부(422) 및 에러 정정부(424)를 포함할 수 있다. 마스크 패턴 핸들링부(460)는 패턴 반영부(462) 및 패턴 획득부(464)를 포함할 수 있다. 한편, 도 4 의 선택부(412), 페이지 확인부(414) 및 압축 확인부(416)는 제어 로직(410)의 일부 구성으로 구현될 수 있다.
메모리 장치(500)는 라이트 데이터(WDATA) 혹은 리드 데이터(RDATA) 및 패리티 비트(PTY)를 페이지 단위로 메모리 컨트롤러(400)와 주고 받으며, 페이지는 라이트 데이터(WDATA) 혹은 리드 데이터(RDATA)가 라이트되는 데이터 영역(도 2a 및 도 2b)의 310) 및 패리티 비트(PTY), 압축 정보(COM_INF) 및 패턴 정보(MSK_INF)는 페이지의 스페어 영역(도 2a 및 도 2b)의 310)으로 구분될 수 있다. 이하에서는, 하나의 페이지를 구성하는 데이터를 페이지 데이터(page data)라고 정의한다.
압축 확인부(416)는, 리드 동작 시 메모리 장치(500)로부터 제공되는 특정 페이지 데이터의 압축 정보(COM_INF)를 토대로 리드 데이터(RDATA)가 압축된 데이터인지 아닌지를 확인할 수 있다. 압축 확인부(416)는, 해당 리드 데이터(RDATA)가 압축된 데이터인 경우 페이지 데이터를 패턴 반영부(462)로 전달하고, 해당 리드 데이터(RDATA)가 압축되지 않은 데이터인 경우 페이지 데이터를 에러 정정부(424)로 전달할 수 있다.
패턴 반영부(462)는, 패턴 테이블(350)에 저장된 패턴들 중, 페이지 데이터의 패턴 정보(MSK_INF)에 대응되는 에러 마스크 패턴(MSK_PAT)을 검색하고, 검색된 에러 마스크 패턴(MSK_PAT)을 리드 데이터(RDATA)에 반영하여 마스크드 리드 데이터(RDATA_MSK)를 생성할 수 있다. 패턴 반영부(462)는, 마스크드 리드 데이터(RDATA_MSK)를 포함하는 페이지 데이터를 에러 정정부(424)에 전달할 수 있다.
에러 정정부(424)는, 페이지 데이터의 패리티 비트(PTY)를 이용하여 마스크드 리드 데이터(RDATA_MSK)의 에러 비트를 검출 및 정정하고, 에러 정정된 마스크드 리드 데이터(RDATA_MSK')를 생성할 수 있다. 에러 정정부(424)는, 에러 정정된 마스크드 리드 데이터(RDATA_MSK')를 포함하는 페이지 데이터를 압축 해제부(440)로 전달할 수 있다. 압축 해제부(440)는, 페이지 데이터의 압축 정보(COM_INF)를 토대로 에러 정정된 마스크드 리드 데이터(RDATA_MSK')의 압축을 해제하고, 에러 정정된 리드 데이터(RDATA')로 호스트(미도시)에 제공할 수 있다.
또한, 에러 정정부(424)는, 페이지 데이터의 패리티 비트(PTY)를 이용하여, 압축 확인부(416)로부터 전달되는 압축되지 않은 리드 데이터(RDATA)의 에러 비트를 검출 및 정정할 수 있다. 이 때, 에러 정정부(424)는 검출된 에러 비트의 수가 제 1 임계값(TH1) 보다 큰 제 1 조건(CON1), 검출된 에러 비트의 수가 제 2 임계값(TH2) 보다 작거나 같은 제 2 조건(CON2) 및 검출된 에러 비트 수가 제 1 임계값(TH1) 보다 작거나 같지만 제 2 임계값(TH2) 보다 큰 제 3 조건(CON3)로 구분하여 다음과 같이 동작할 수 있다.
제 1 조건(CON1)에서, 에러 정정부(424)는 에러 페일 신호(ERR_FAIL)를 호스트에 알린다. 또한, 에러 정정부(424)는 에러 정정이 실패한 리드 데이터(RDATA)에 포함된 에러 비트를 이용하여 패턴(PAT_CON1)을 생성하고, 생성된 패턴(PAT_CON1)을 패턴 테이블(450)에 저장할 수 있다. 따라서, 패턴 테이블(450)은, 미리 정의된 다수 개의 마스크 패턴을 저장할 수 있다. 제 2 조건(CON2)에서, 에러 정정부(424)는 에러 정정된 리드 데이터(RDATA')를 호스트로 제공할 수 있다. 제 3 조건(CON3)에서, 에러 정정부(424)는 에러 정정된 리드 데이터(RDATA')를 호스트로 제공하고, 선택 신호(SEL_CON3)를 활성화시켜 출력할 수 있다.
선택부(412)는, 선택 신호(SEL_CON3)에 따라, 라이트 동작 시 호스트로부터 제공되는 라이트 데이터(WDATA') 혹은 리드 동작 시 에러 정정부(424)로부터 제공되는 에러 정정된 리드 데이터(RDATA')를 선택하여 출력할 수 있다. 선택부(412)는, 제 3 조건(CON3)에서 선택 신호(SEL_CON3)가 활성화되면 에러 정정된 리드 데이터(RDATA')를 선택하여 출력할 수 있다.
페이지 확인부(414)는, 메모리 장치(500)의 저장 공간을 토대로 라이트 가능한 페이지의 수를 확인할 수 있다. 라이트 가능한 페이지의 수가 특정 기준(S_TH)을 초과하는 경우, 페이지 확인부(414)는, 선택부(412)로부터 입력되는 라이트 데이터(WDATA')를 패리티 생성부(422)로 제공할 수 있다. 이 때, 특정 기준(S_TH)은 전체 페이지 수의 약 10 %로 설정될 수 있다. 라이트 가능한 페이지의 수가 특정 기준(S_TH) 이내인 경우, 즉, 라이트 가능한 페이지가 전체 페이지 수의 10% 이내 인 경우, 페이지 확인부(414)는, 라이트 데이터(WDATA')를 압축부(430)로 제공할 수 있다. 실시예에 따라, 페이지 확인부(414)는 라이트 가능한 페이지가 특정 기준(S_TH) 이내임을 알리는 신호를 호스트로 전송할 수 있다.
한편, 페이지 확인부(414)는, 라이트 가능한 페이지의 수와 상관없이 선택부(412)로부터 입력되는 에러 정정된 리드 데이터(RDATA')는 압축부(430)로 제공할 수 있다. 도면에 도시되지 않았지만, 페이지 확인부(414)는, 입력 데이터가 라이트 데이터(WDATA')인지 에러 정정된 리드 데이터(RDATA')인지를 확인하기 위해 선택 신호(SEL_CON3)를 입력받을 수 있다.
압축부(430)는 라이트 데이터(WDATA') 혹은 에러 정정된 리드 데이터(RDATA')를 압축하여 압축 데이터(COM_DATA)를 생성하고, 압축 데이터(COM_DATA)에 대한 압축 정보(COM_INF)를 생성할 수 있다.
패턴 획득부(464)는, 압축 데이터(COM_DATA)에 따라 에러 마스크 패턴(MSK_PAT)을 획득하고, 에러 마스크 패턴(MSK_PAT)에 대한 패턴 정보(MSK_INF)를 생성할 수 있다. 보다 상세하게, 패턴 획득부(464)는, 압축 데이터(COM_DATA)를 제외한 데이터 영역의 에러 비트의 위치를 확인하고, 패턴 테이블(450)에 저장된 다수 개의 패턴들 중 에러 비트를 최대한 커버할 수 있는 패턴을 에러 마스크 패턴(MSK_PAT)으로 선택하고, 에러 마스크 패턴(MSK_PAT)에 대한 패턴 정보(MSK_INF)를 생성할 수 있다. 패턴 획득부(464)는, 에러 마스크 패턴(MSK_PAT)이 반영된 압축 데이터(COM_DATA)를 패리티 생성부(422)로 제공할 수 있다. 실시예에 따라, 패턴 획득부(464)는, 라이트 동작 시 에러 비트를 커버할 수 있는 에러 마스크 패턴(MSK_PAT)이 패턴 테이블(450)에서 검색되지 않는 경우, 압축 데이터(COM_DATA)가 아닌 라이트 데이터(WDATA')를 패리티 생성부(422)로 전달하도록 페이지 확인부(414)에 요청할 수 있다.
패리티 생성부(422)는, 페이지 확인부(414)로부터 입력되는 라이트 데이터(WDATA')를 토대로 패리티 비트(PTY)를 생성할 수 있다. 라이트 데이터(WDATA) 및 패리티 비트(PTY)는 하나의 페이지 단위로 메모리 장치(500)에 전달될 수 있다.
또한, 패리티 생성부(422)는, 패턴 획득부(464)로부터 입력되는 에러 마스크 패턴(MSK_PAT)이 반영된 압축 데이터(COM_DATA)를 이용하여 패리티 비트(PTY)를 생성할 수 있다. 압축 데이터(COM_DATA), 패리티 비트(PTY), 압축 정보(COM_INF) 및 패턴 정보(MSK_INF)는 하나의 페이지 단위로 메모리 장치(500)에 전달될 수 있다.
한편, 도 4 에서는, 패리티 생성부(422)가 라이트 데이터(WDATA)를 메모리 장치(500)로 제공하는 것으로 도시하였지만, 제안 발명은 이에 한정되지는 않는다. 실시예에 따라, 도 1 에 도시된 제어 로직(110) 혹은 메모리 인터페이스부(180)가 라이트 데이터(WDATA') 혹은 압축 데이터(COM_DATA)를 처리하여 라이트 데이터(WDATA)로 메모리 장치(500)에 제공할 수 있다.
도 5a 및 도 5b 는 도 4 에서 생성된 페이지 구성을 설명하기 위한 도면 이다.
도 5a 및 도 5b 를 참조하면, 데이터 영역의 라이트 데이터(WDATA') 혹은 리드 데이터(RDATA')에 7 개의 에러 비트가 각각 존재하는 경우가 도시되어 있다. 도 5a 및 도 5b 에서 “X”는 에러 비트의 위치를 의미한다.
압축부(430)는 라이트 데이터(WDATA') 혹은 에러 정정된 리드 데이터(RDATA')를 압축하여 압축 데이터(COM_DATA)를 생성하고, 압축 데이터(COM_DATA)에 대한 압축 정보(COM_INF)를 생성할 수 있다. 패턴 획득부(464)는, 압축 데이터(COM_DATA)에 따라 에러 마스크 패턴(MSK_PAT)을 획득하고, 에러 마스크 패턴(MSK_PAT)에 대한 패턴 정보(MSK_INF)를 생성할 수 있다.
도 5a 에 도시된 바와 같이, 5 개의 에러 비트가 데이터 영역의 뒤쪽(즉, 하부 영역)에 집중되어 있는 경우, 패턴 획득부(464)는, 압축 데이터(COM_DATA)를 데이터 영역의 앞쪽(즉, 상부 영역)에 배치하고, 압축 데이터(COM_DATA)를 제외한 데이터 영역의 에러 비트의 위치를 확인하고, 패턴 테이블(450)에 저장된 다수 개의 패턴들 중 에러 비트를 최대한 커버할 수 있는 패턴을 에러 마스크 패턴(MSK_PAT)으로 선택할 수 있다.
도 5b 에 도시된 바와 같이, 에러 비트가 3 개씩 산발적으로 흩어져 있는 경우, 패턴 획득부(464)는, 압축 데이터(COM_DATA)를 두 개로 쪼개어 데이터 영역의 에러 비트가 위치하지 않은 쪽에 가능한 배치하고, 압축 데이터(COM_DATA)를 제외한 데이터 영역의 에러 비트의 위치를 확인하고, 패턴 테이블(450)에 저장된 다수 개의 패턴들 중 에러 비트를 최대한 커버할 수 있는 패턴을 에러 마스크 패턴(MSK_PAT)으로 선택할 수 있다.
도 6 은 도 4 의 패턴 획득부(464)의 에러 마스크 패턴(MSK_PAT) 선택 동작을 설명하기 위한 도면 이다. 참고로, 도 6 에는 데이터 영역만이 도시되어 있다.
도 6 을 참조하면, 원래 데이터 “10110001”가 8 비트로 구성되어 있고, 원래 데이터에 포함된 에러 비트가 4 비트로 제 1 임계값(TH1)(예를 들어, 4) 보다 작거나 같지만 제 2 임계값(TH2)(예를 들어, 2) 보다 큰 제 3 조건(CON3)에 해당되는 경우가 도시되어 있다. 이 때, 에러 비트는 두번째, 다섯번째, 여섯번째 및 여덟번째 비트에 각각 위치 하며, 원래 데이터로부터 압축 데이터(COM_DATA)가 50% 비율로 압축된다고 가정한다. 도 6 에서 “ABCD”는 압축 데이터(COM_DATA)를 구분하기 위해 부여된 도면 부호이다.
패턴 테이블(450)은, 미리 정의된 제 1 내지 제 5 마스크 패턴(MSK_PAT1 ~ MSK_PAT5)을 저장하고 있다. 마스크 패턴의 비트가 로우 비트(“0”)일 경우, 마스킹 대상 비트가 마스킹된다고 가정한다.
모든 패턴 비트가 하이 비트로 구성된 제 1 마스크 패턴(MSK_PAT1)의 경우, 패턴 획득부(464)는, 압축 데이터(COM_DATA)를 데이터 영역에 임의로 배치할 수 있다. 압축 데이터(COM_DATA)가 어디에 위치하든 에러 비트는 마스킹되지 않기 때문에 제 1 마스크 패턴(MSK_PAT1)이 반영된 압축 데이터(COM_DATA)에서 검출될 수 있는 에러 비트는 4 개가 된다.
상부 4 비트가 하이 비트로 구성된 제 2 마스크 패턴(MSK_PAT2)의 경우, 패턴 획득부(464)는, 압축 데이터(COM_DATA)를 데이터 영역의 앞쪽(즉, 상부 영역)에 배치할 수 있다. 압축 데이터(COM_DATA)를 제외한 데이터 영역의 에러 비트가 마스킹되기 때문에 제 2 마스크 패턴(MSK_PAT2)이 반영된 압축 데이터(COM_DATA)에서 검출될 수 있는 에러 비트는 1 개가 된다.
하부 4 비트가 하이 비트로 구성된 제 3 마스크 패턴(MSK_PAT3)의 경우, 패턴 획득부(464)는, 압축 데이터(COM_DATA)를 데이터 영역의 뒤쪽(즉, 하부 영역)에 배치할 수 있다. 압축 데이터(COM_DATA)를 제외한 데이터 영역의 에러 비트가 마스킹되기 때문에 제 3 마스크 패턴(MSK_PAT3)이 반영된 압축 데이터(COM_DATA)에서 검출될 수 있는 에러 비트는 3 개가 된다.
“11001100”으로 구성된 제 4 마스크 패턴(MSK_PAT4)의 경우, 패턴 획득부(464)는, 압축 데이터(COM_DATA)를 데이터 영역의 앞쪽과 뒤쪽에 각각 나누어 배치할 수 있다. 압축 데이터(COM_DATA)를 제외한 데이터 영역의 에러 비트가 마스킹되기 때문에 제 4 마스크 패턴(MSK_PAT4)이 반영된 압축 데이터(COM_DATA)에서 검출될 수 있는 에러 비트는 3 개가 된다.
“10101010”으로 구성된 제 5 마스크 패턴(MSK_PAT5)의 경우, 패턴 획득부(464)는, 압축 데이터(COM_DATA)를 데이터 영역의 홀수번째 비트 위치에 배치할 수 있다. 압축 데이터(COM_DATA)를 제외한 데이터 영역의 에러 비트가 마스킹되기 때문에 제 5 마스크 패턴(MSK_PAT5)이 반영된 압축 데이터(COM_DATA)에서 검출될 수 있는 에러 비트는 1 개가 된다.
상기의 경우에서, 패턴 획득부(464)는, 검출되는 에러 비트가 가장 적은 제 2 마스크 패턴(MSK_PAT2) 혹은 제 5 마스크 패턴(MSK_PAT5)를 마스크 패턴(MSK_PAT)으로 선택할 수 있다.
이하, 도 4 내지 도 8 을 참조하여, 도 4 의 메모리 시스템의 동작을 설명하기로 한다.
도 7 은 도 4 의 메모리 시스템의 리드 동작을 설명하기 위한 플로우 차트 이다.
도 7 을 참조하면, 호스트로부터 리드 요청이 입력되면(S710), 메모리 컨트롤러(400)는 메모리 장치(500)의 특정 페이지로부터 페이지 데이터를 수신한다(S720). 페이지 데이터는 리드 데이터(RDATA) 및 패리티 비트(PTY)를 포함할 수 있다. 또한, 리드 데이터(RDATA) 가 압축된 경우, 페이지 데이터는 압축 데이터(COM_DATA), 패리티 비트(PTY), 압축 정보(COM_INF) 및 패턴 정보(MSK_INF)를 포함할 수 있다.
압축 확인부(416)는, 페이지 데이터의 압축 정보(COM_INF)를 토대로 리드 데이터(RDATA)가 압축된 데이터인지 아닌지를 확인한다(S730).
리드 데이터(RDATA)가 압축된 데이터인 경우(S730의 YES), 패턴 반영부(462)는, 패턴 테이블(350)에 저장된 패턴들 중, 페이지 데이터의 패턴 정보(MSK_INF)에 대응되는 에러 마스크 패턴(MSK_PAT)을 검색하고, 검색된 에러 마스크 패턴(MSK_PAT)을 리드 데이터(RDATA)에 반영하여 마스크드 리드 데이터(RDATA_MSK)를 생성한다(S742). 에러 정정부(424)는, 페이지 데이터의 패리티 비트(PTY)를 이용하여 마스크드 리드 데이터(RDATA_MSK)의 에러 비트를 검출 및 정정하고, 에러 정정된 마스크드 리드 데이터(RDATA_MSK')를 생성한다(S744). 압축 해제부(440)는, 페이지 데이터의 압축 정보(COM_INF)를 토대로 에러 정정된 마스크드 리드 데이터(RDATA_MSK')의 압축을 해제하고(S746), 에러 정정된 리드 데이터(RDATA')로 호스트에 제공한다(S748). 따라서, 해당 리드 동작이 종료된다.
반면, 리드 데이터(RDATA)가 압축되지 않은 데이터인 경우(S730의 NO), 에러 정정부(424)는, 페이지 데이터의 패리티 비트(PTY)를 이용하여, 압축 확인부(416)로부터 전달되는 압축되지 않은 리드 데이터(RDATA)의 에러 비트를 검출한다(S750).
이 때, 에러 정정부(424)는 검출된 에러 비트의 수를 확인하여(S760), 검출된 에러 비트의 수가 제 1 임계값(TH1) 보다 큰 제 1 조건(CON1), 검출된 에러 비트의 수가 제 2 임계값(TH2) 보다 작거나 같은 제 2 조건(CON2) 및 검출된 에러 비트 수가 제 1 임계값(TH1) 보다 작거나 같지만 제 2 임계값(TH2) 보다 큰 제 3 조건(CON3)로 구분할 수 있다.
제 1 조건(CON1)에서, 에러 정정부(424)는 에러 페일 신호(ERR_FAIL)를 호스트로 제공한다(S772). 또한, 에러 정정부(424)는 에러 정정이 실패한 리드 데이터(RDATA)에 포함된 에러 비트를 이용하여 패턴(PAT_CON1)을 생성하고, 생성된 패턴(PAT_CON1)을 패턴 테이블(450)에 저장할 수 있다(S774). 따라서, 해당 리드 동작이 종료된다.
제 2 조건(CON2)에서, 에러 정정부(424)는 에러 정정된 리드 데이터(RDATA')를 호스트로 제공한다(S782). 따라서, 해당 리드 동작이 종료된다.
제 3 조건(CON3)에서, 에러 정정부(424)는 에러 정정된 리드 데이터(RDATA')를 호스트로 제공한다(S792). 또한, 에러 정정부(424)는 선택 신호(SEL_CON3)를 활성화시켜 출력하고, 선택부(412)는 선택 신호(SEL_CON3)에 따라, 에러 정정된 리드 데이터(RDATA')를 선택하여 출력한다. 페이지 확인부(414)는, 라이트 가능한 페이지의 수와 상관없이 선택부(412)로부터 입력되는 에러 정정된 리드 데이터(RDATA')는 압축부(430)로 제공한다.
압축부(430)는 에러 정정된 리드 데이터(RDATA')를 압축하여 압축 데이터(COM_DATA)를 생성하고(S794), 압축 데이터(COM_DATA)에 대한 압축 정보(COM_INF)를 생성한다. 패턴 획득부(464)는, 압축 데이터(COM_DATA)에 따라 에러 마스크 패턴(MSK_PAT)을 획득하고(S796), 에러 마스크 패턴(MSK_PAT)에 대한 패턴 정보(MSK_INF)를 생성한다. 패턴 획득부(464)는, 에러 마스크 패턴(MSK_PAT)이 반영된 압축 데이터(COM_DATA)를 패리티 생성부(422)로 제공한다.
패리티 생성부(422)는, 패턴 획득부(464)로부터 입력되는 에러 마스크 패턴(MSK_PAT)이 반영된 압축 데이터(COM_DATA)를 이용하여 패리티 비트(PTY)를 생성한다(S798). 압축 데이터(COM_DATA), 패리티 비트(PTY), 압축 정보(COM_INF) 및 패턴 정보(MSK_INF)는 하나의 페이지 단위로 메모리 장치(500)에 전달되어 라이트될 수 있다(S799). 따라서, 해당 리드 동작이 종료된다.
도 8 은 도 4 의 메모리 시스템의 라이트 동작을 설명하기 위한 플로우 차트 이다.
도 8 을 참조하면, 호스트로부터 라이트 요청이 입력되면(S810), 선택부(412)는, 호스트로부터 제공되는 라이트 데이터(WDATA')를 선택하여 출력한다.
페이지 확인부(414)는, 메모리 장치(500)의 저장 공간을 토대로 라이트 가능한 페이지의 수를 확인한다(S820).
라이트 가능한 페이지의 수가 특정 기준(S_TH)을 초과하는 경우(S820의 YES), 페이지 확인부(414)는, 선택부(412)로부터 입력되는 라이트 데이터(WDATA')를 패리티 생성부(422)로 제공한다. 패리티 생성부(422)는, 페이지 확인부(414)로부터 입력되는 라이트 데이터(WDATA')를 토대로 패리티 비트(PTY)를 생성한다(S832). 라이트 데이터(WDATA) 패리티 비트(PTY)는 하나의 페이지 단위로 메모리 장치(500)에 전달될 수 있다(S834). 따라서, 라이트 동작이 종료된다.
반면, 라이트 가능한 페이지의 수가 특정 기준(S_TH) 이내인 경우(S820의 NO), 페이지 확인부(414)는 라이트 데이터(WDATA')를 압축부(430)로 제공한다. 도면에 도시되지 않았지만, 페이지 확인부(414)는 라이트 가능한 페이지가 특정 기준(S_TH) 이내임을 알리는 신호를 호스트로 전송할 수 있다. 압축부(430)는 라이트 데이터(WDATA')를 압축하여 압축 데이터(COM_DATA)를 생성하고(S840), 압축 데이터(COM_DATA)에 대한 압축 정보(COM_INF)를 생성한다.
패턴 획득부(464)는, 압축 데이터(COM_DATA)를 제외한 데이터 영역의 에러 비트의 위치를 확인하고, 패턴 테이블(450)에 저장된 다수 개의 패턴들 중 에러 비트를 최대한 커버할 수 있는 패턴을 검색한다(S850).
에러 비트를 커버할 수 있는 에러 마스크 패턴(MSK_PAT)이 패턴 테이블(450)에 존재하지 않는 경우(S850의 NO), 패턴 획득부(464)는, 압축 데이터(COM_DATA)가 아닌 라이트 데이터(WDATA')를 패리티 생성부(422)로 전달하도록 페이지 확인부(414)에 요청한다. 이에 따라, 페이지 확인부(414)는 라이트 데이터(WDATA')를 패리티 생성부(422)로 제공하고, 패리티 생성부(422)는, 라이트 데이터(WDATA')를 토대로 패리티 비트(PTY)를 생성한다(S832). 라이트 데이터(WDATA) 및 패리티 비트(PTY)는 하나의 페이지 단위로 메모리 장치(500)에 전달될 수 있다(S834). 따라서, 라이트 동작이 종료된다.
에러 비트를 커버할 수 있는 에러 마스크 패턴(MSK_PAT)이 패턴 테이블(450)에 존재하는 경우(S850의 YES), 패턴 획득부(464)는 에러 마스크 패턴(MSK_PAT)에 대한 패턴 정보(MSK_INF)를 생성하고, 에러 마스크 패턴(MSK_PAT)을 압축 데이터(COM_DATA)에 반영한다(S860). 패턴 획득부(464)는, 에러 마스크 패턴(MSK_PAT)이 반영된 압축 데이터(COM_DATA)를 패리티 생성부(422)로 제공한다. 패리티 생성부(422)는 에러 마스크 패턴(MSK_PAT)이 반영된 압축 데이터(COM_DATA)를 이용하여 패리티 비트(PTY)를 생성한다(S870). 압축 데이터(COM_DATA), 패리티 비트(PTY), 압축 정보(COM_INF) 및 패턴 정보(MSK_INF)는 하나의 페이지 단위로 메모리 장치(500)에 전달될 수 있다(S880). 따라서, 라이트 동작이 종료된다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기록되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
10: 메모리 시스템 20: 호스트
100: 메모리 컨트롤러 110: 제어 로직
120: ECC 회로 130: 압축부
150: 패턴 테이블 160: 마스크 패턴 핸들링부
170: 호스트 인터페이스 180: 메모리 인터페이스
190: 버스 200: 메모리 장치

Claims (18)

  1. 복수의 메모리 셀들을 포함하며, 페이지 단위로 데이터 및 패리티 비트를 리드 및 라이트하는 메모리 장치; 및
    상기 패리티 비트를 토대로 상기 데이터의 에러 비트들을 검출 및 정정하여 에러 정정된 데이터를 생성하고, 상기 에러 비트들의 수가 제 1 임계값 보다 작거나 같지만 제 2 임계값 보다 큰 경우, 상기 에러 정정된 데이터를 압축하여 압축 데이터를 생성하고 상기 압축 데이터에 따라 에러 마스크 패턴을 획득하고, 상기 압축 데이터, 상기 에러 마스크 패턴이 반영된 상기 압축 데이터에 따라 업데이트된 패리티 비트, 상기 압축 데이터에 대한 압축 정보 및 상기 에러 마스크 패턴에 대한 패턴 정보를 상기 페이지에 라이트하도록 제어하는 메모리 컨트롤러
    를 포함하는 메모리 시스템.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1 항에 있어서,
    상기 페이지는,
    데이터 영역 및 스페어 영역을 포함하고,
    상기 압축 데이터는 상기 데이터 영역에 저장되고, 상기 업데이트된 패리티 비트, 상기 압축 정보 및 상기 패턴 정보는 상기 스페어 영역에 저장되는 메모리 시스템.
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    제 2 항에 있어서,
    상기 메모리 컨트롤러는,
    상기 패리티 비트를 토대로 상기 데이터의 상기 에러 비트들을 검출 및 정정하여 상기 에러 정정된 데이터를 생성하는 에러 정정부;
    상기 에러 비트들의 수가 제 1 임계값 보다 작거나 같지만 제 2 임계값 보다 큰 경우, 상기 에러 정정된 데이터를 압축하여 상기 압축 데이터를 생성하고, 상기 압축 데이터에 대한 상기 압축 정보를 생성하는 압축부;
    상기 압축 데이터를 이용하여 상기 에러 마스크 패턴을 획득하고, 상기 에러 마스크 패턴에 대한 상기 패턴 정보를 생성하는 마스크 패턴 핸들링부; 및
    상기 압축 데이터를 토대로 상기 패리티 비트를 업데이트하는 패리티 생성부
    를 포함하는 메모리 시스템.
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제 3 항에 있어서,
    상기 메모리 컨트롤러는,
    미리 정의된 다수 개의 패턴들을 저장하는 패턴 테이블
    을 더 포함하는 메모리 시스템.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제 4 항에 있어서,
    상기 마스크 패턴 핸들링부는,
    상기 압축 데이터를 제외한 데이터 영역의 에러 비트들의 위치를 확인하고, 상기 다수 개의 패턴들 중 상기 에러 비트들을 최대한 커버할 수 있는 패턴을 상기 상기 에러 마스크 패턴으로 선택하고, 상기 에러 마스크 패턴에 대한 상기 패턴 정보를 생성하는 메모리 시스템.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제 3 항에 있어서,
    상기 에러 정정부는,
    상기 에러 비트들의 수가 제 1 임계값 보다 작거나 같은 경우, 상기 에러 정정된 데이터를 호스트로 제공하고,
    상기 에러 비트들의 수가 상기 제 1 임계값 보다 큰 경우, 에러 페일 신호를 호스트에 제공하는 메모리 시스템.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1 항에 있어서,
    상기 제 1 임계값은,
    정정 가능한 에러 비트 수인 메모리 시스템.
  8. 특정 페이지로부터 데이터 및 패리티 비트를 독출하고, 상기 패리티 비트를 토대로 상기 데이터의 에러 비트들을 검출 및 정정하여 에러 정정된 데이터를 생성하는 단계;
    상기 에러 비트들의 수가 제 1 임계값 보다 작거나 같지만 제 2 임계값 보다 큰 경우, 상기 에러 정정된 데이터를 압축하여 압축 데이터를 생성하는 단계;
    상기 압축 데이터에 따라 에러 마스크 패턴을 획득하는 단계;
    상기 에러 마스크 패턴이 반영된 상기 압축 데이터를 토대로 상기 패리티 비트를 업데이트하는 단계; 및
    상기 압축 데이터, 상기 업데이트된 패리티 비트, 상기 압축 데이터에 대한 압축 정보 및 상기 에러 마스크 패턴에 대한 패턴 정보를 상기 특정 페이지에 라이트하는 단계
    를 포함하는 메모리 시스템의 동작 방법.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제 8 항에 있어서,
    상기 특정 페이지는, 데이터 영역 및 스페어 영역을 포함하고,
    상기 압축 데이터는 상기 데이터 영역에 저장되고, 상기 업데이트된 패리티 비트, 상기 압축 정보 및 상기 패턴 정보는 상기 스페어 영역에 저장되는 메모리 시스템의 동작 방법.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제 9 항에 있어서,
    상기 에러 마스크 패턴을 획득하는 단계는,
    상기 압축 데이터를 제외한 데이터 영역의 에러 비트들의 위치를 확인하는 단계;
    패턴 테이블에 미리 정의된 다수 개의 패턴들 중 상기 에러 비트들을 최대한 커버할 수 있는 패턴을 선택하는 단계; 및
    상기 에러 마스크 패턴에 대한 상기 패턴 정보를 생성하는 단계
    를 포함하는 메모리 시스템의 동작 방법.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제 8 항에 있어서,
    상기 제 1 임계값은,
    정정 가능한 에러 비트 수인 메모리 시스템의 동작 방법.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제 8 항에 있어서,
    상기 에러 비트들의 수가 제 1 임계값 보다 작거나 같지만 제 2 임계값 보다 큰 경우, 상기 에러 정정된 데이터를 호스트로 제공하는 단계
    를 더 포함하는 메모리 시스템의 동작 방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제 8 항에 있어서,
    상기 에러 비트들의 수가 상기 제 1 임계값 보다 큰 경우, 에러 페일 신호를 호스트에 제공하는 단계; 및
    상기 에러 비트들의 수가 상기 제 2 임계값 보다 작거나 같은 경우, 상기 에러 정정된 데이터를 호스트로 제공하는 단계
    를 더 포함하는 메모리 시스템의 동작 방법.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제 8 항에 있어서,
    상기 패리티 비트를 토대로 상기 데이터의 에러 비트들을 검출 및 정정하는 단계에서,
    상기 특정 페이지로부터 독출된 데이터가 압축된 데이터인 경우, 패턴 테이블에 미리 정의된 다수 개의 패턴들 중 상기 패턴 정보에 대응되는 에러 마스크 패턴을 검색하는 단계;
    검색된 에러 마스크 패턴을 상기 데이터에 반영하여 마스크드 데이터를 생성하는 단계;
    상기 패리티 비트를 이용하여 상기 마스크드 데이터의 에러 비트들을 정정하여 에러 정정된 마스크드 데이터를 생성하는 단계; 및
    상기 압축 정보를 토대로 상기 에러 정정된 마스크드 데이터의 압축을 해제하여 호스트에 제공하는 단계
    를 더 포함하는 메모리 시스템의 동작 방법.
  15. 라이트 가능한 페이지의 수를 확인하는 단계;
    상기 라이트 가능한 페이지의 수가 특정 기준 이내인 경우, 라이트 데이터를 압축하여 압축 데이터를 생성하는 단계;
    상기 압축 데이터에 따라 에러 마스크 패턴을 획득하는 단계;
    상기 에러 마스크 패턴이 반영된 상기 압축 데이터를 토대로 패리티 비트를 생성하는 단계; 및
    상기 압축 데이터, 상기 패리티 비트, 상기 압축 데이터에 대한 압축 정보 및 상기 에러 마스크 패턴에 대한 패턴 정보를 특정 페이지에 라이트하는 단계
    를 포함하는 메모리 시스템의 동작 방법.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제 15 항에 있어서,
    상기 특정 페이지는, 데이터 영역 및 스페어 영역을 포함하고,
    상기 압축 데이터는 상기 데이터 영역에 저장되고, 상기 생성된 패리티 비트, 상기 압축 정보 및 상기 패턴 정보는 상기 스페어 영역에 저장되는 메모리 시스템의 동작 방법.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제 16 항에 있어서,
    상기 에러 마스크 패턴을 획득하는 단계는,
    상기 압축 데이터를 제외한 데이터 영역의 에러 비트들을 검출하고, 상기 에러 비트들의 위치를 확인하는 단계;
    패턴 테이블에 미리 정의된 다수 개의 패턴들 중 상기 에러 비트들을 최대한 커버할 수 있는 패턴을 선택하는 단계; 및
    상기 에러 마스크 패턴에 대한 상기 패턴 정보를 생성하는 단계
    를 포함하는 메모리 시스템의 동작 방법.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제 15 항에 있어서,
    상기 라이트 가능한 페이지의 수가 특정 기준을 초과하는 경우, 상기 라이트 데이터를 토대로 상기 패리티 비트를 생성하는 단계; 및
    상기 라이트 데이터 및 상기 패리티 비트를 상기 특정 페이지에 라이트하는 단계
    를 더 포함하는 메모리 시스템의 동작 방법.
KR1020170176215A 2017-12-20 2017-12-20 메모리 시스템 및 그의 동작 방법 KR102468721B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170176215A KR102468721B1 (ko) 2017-12-20 2017-12-20 메모리 시스템 및 그의 동작 방법
US16/038,792 US11003531B2 (en) 2017-12-20 2018-07-18 Memory system and operating method thereof
CN201811169537.5A CN109949854B (zh) 2017-12-20 2018-10-08 存储***及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170176215A KR102468721B1 (ko) 2017-12-20 2017-12-20 메모리 시스템 및 그의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190074678A KR20190074678A (ko) 2019-06-28
KR102468721B1 true KR102468721B1 (ko) 2022-11-21

Family

ID=66815106

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170176215A KR102468721B1 (ko) 2017-12-20 2017-12-20 메모리 시스템 및 그의 동작 방법

Country Status (3)

Country Link
US (1) US11003531B2 (ko)
KR (1) KR102468721B1 (ko)
CN (1) CN109949854B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11694761B2 (en) * 2021-09-17 2023-07-04 Nxp B.V. Method to increase the usable word width of a memory providing an error correction scheme
CN116612806A (zh) * 2022-02-08 2023-08-18 长鑫存储技术有限公司 数据校验方法、装置、电子设备及存储介质
CN114999559B (zh) * 2022-08-03 2022-11-29 合肥康芯威存储技术有限公司 一种存储芯片的测试方法、***及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120173955A1 (en) 2010-12-30 2012-07-05 Phison Electronics Corp. Data writing and reading method, and memory controller and memory storage apparatus using the same

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02166700A (ja) * 1988-12-15 1990-06-27 Samsung Electron Co Ltd エラー検査及び訂正装置を内蔵した不揮発性半導体メモリ装置
KR20110025524A (ko) * 2009-09-04 2011-03-10 삼성전자주식회사 반도체 메모리 장치 및 그것의 데이터 처리 방법
KR101616100B1 (ko) * 2009-09-25 2016-04-28 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
US8533564B2 (en) * 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
KR20130027138A (ko) * 2011-09-07 2013-03-15 삼성전자주식회사 에러 정정 방법 및 이를 이용하는 메모리 장치
KR101730497B1 (ko) * 2011-11-04 2017-04-27 삼성전자 주식회사 에러 정정 성능 신장 방법 및 이를 이용한 저장 장치
CN102394113B (zh) * 2011-11-14 2014-06-18 清华大学 一种应用于快闪存储器中的动态ldpc纠错码方法
KR102081980B1 (ko) * 2012-10-08 2020-02-27 삼성전자 주식회사 메모리 시스템에서의 라이트 동작 또는 리드 동작 수행 방법
JP5855150B2 (ja) * 2014-03-06 2016-02-09 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US10067828B2 (en) * 2014-10-03 2018-09-04 Hitachi, Ltd. Memory controller and data control method
KR20170004693A (ko) * 2015-07-03 2017-01-11 에스케이하이닉스 주식회사 메모리 장치의 컨트롤러 및 그 동작 방법
KR20170121798A (ko) * 2016-04-26 2017-11-03 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
DE102018123103A1 (de) * 2017-10-13 2019-04-18 Samsung Electronics Co., Ltd. Halbleitervorrichtung, die Sicherheitsschlüssel erzeugt, Verfahren zum Erzeugen eines Sicherheitsschlüssels und Verfahren zum Registrieren des Sicherheitsschlüssels

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120173955A1 (en) 2010-12-30 2012-07-05 Phison Electronics Corp. Data writing and reading method, and memory controller and memory storage apparatus using the same

Also Published As

Publication number Publication date
CN109949854A (zh) 2019-06-28
CN109949854B (zh) 2023-01-24
US11003531B2 (en) 2021-05-11
US20190188077A1 (en) 2019-06-20
KR20190074678A (ko) 2019-06-28

Similar Documents

Publication Publication Date Title
US10152249B2 (en) Data memory device and controller with interface error detection and handling logic
US20200081780A1 (en) Data storage device and parity code processing method thereof
US7899980B2 (en) Flash memory system and data writing method thereof
KR102468721B1 (ko) 메모리 시스템 및 그의 동작 방법
TW201346550A (zh) 實體頁、邏輯頁及碼字對應
US20120317340A1 (en) Memory controller and non-volatile storage device
US20080082872A1 (en) Memory controller, memory system, and data transfer method
US9003153B2 (en) Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system
CN111475327B (zh) 存储***及其操作方法
US20100106897A1 (en) Storage device, disk device, write determining method, and control device
KR102254100B1 (ko) 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
US12007840B2 (en) Storage controller, operation method thereof
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
KR20200052842A (ko) 메모리 시스템, 메모리 모듈 및 메모리 시스템의 동작 방법
US10735030B2 (en) Re-encoding data associated with failed memory devices
KR20210014473A (ko) 메모리 시스템 및 메모리 시스템의 라이트 방법
KR102023121B1 (ko) 에러를 보정하는 메모리 장치 및 그의 에러 보정 방법
US20220300373A1 (en) Memory system
US20080155193A1 (en) Staging method for disk array apparatus
US10922025B2 (en) Nonvolatile memory bad row management
US11609813B2 (en) Memory system for selecting counter-error operation through error analysis and data process system including the same
CN114116530B (zh) 存储控制方法及装置、数据处理方法及装置以及存储介质
US11817169B2 (en) Memory, memory system and operation method of memory system
US20230385147A1 (en) Memory control circuit, memory, and memory module
WO2023050147A1 (zh) 用于存储器的数据保护方法及其存储装置

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