KR100955157B1 - 메모리 장치 및 메모리 장치의 관리 방법 - Google Patents

메모리 장치 및 메모리 장치의 관리 방법 Download PDF

Info

Publication number
KR100955157B1
KR100955157B1 KR1020080133643A KR20080133643A KR100955157B1 KR 100955157 B1 KR100955157 B1 KR 100955157B1 KR 1020080133643 A KR1020080133643 A KR 1020080133643A KR 20080133643 A KR20080133643 A KR 20080133643A KR 100955157 B1 KR100955157 B1 KR 100955157B1
Authority
KR
South Korea
Prior art keywords
ecc
memory
module
read
code
Prior art date
Application number
KR1020080133643A
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 KR1020080133643A priority Critical patent/KR100955157B1/ko
Application granted granted Critical
Publication of KR100955157B1 publication Critical patent/KR100955157B1/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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

제1 에러 정정 코드(Error Correction Code: ECC) 생성 알고리즘에 기초하여 메모리에 기록되는 데이터에 대한 제1 ECC 정보를 생성하고, 제2 ECC 생성 알고리즘에 기초하여 상기 데이터에 대한 제2 ECC 정보를 생성하며, 상기 제1 ECC 정보 및 상기 제2 ECC 정보를 상기 메모리에 기록(write)하는 메모리 장치가 개시된다.
메모리, ECC, 데이터, 에러, 정정

Description

메모리 장치 및 메모리 장치의 관리 방법{MEMORY DEVICE AND MANAGEMENT METHOD OF MEMORY DEVICE}
메모리 장치 및 메모리 장치의 관리 방법이 개시된다. 특히, 메모리에 기록될 데이터에 대한 신뢰성 확보를 위해 에러 정정 코드(Error Correction Code: ECC) 기법을 사용하는 메모리 장치 및 메모리 장치의 관리 방법이 개시된다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발 사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-040-03, 과제명: Flash memory 기반 임베디드 멀티미디어 소프트웨어 기술 개발].
데이터를 저장하는 스토리지 장치로는 자기 디스크(magnetic disk), 반도체 메모리 등이 있을 수 있다. 스토리지 장치는 종류 별로 서로 다른 물리적 특성을 가지기 때문에 물리적 특성에 상응하는 관리 방법이 필요하다.
종래의 스토리지 장치로는 자기 디스크가 널리 사용되어 왔다. 자기 디스크는 평균적으로 킬로바이트(kilobyte) 당 수 밀리초(millisecond)의 읽기 및 쓰기 시간을 특성으로 가진다. 또한, 자기 디스크는 데이터가 저장된 물리적 위치에 따라 암(arm)이 도달하는 시간이 다르기 때문에 읽기 및 쓰기 시간이 달라지는 특성 을 가진다.
최근에는 자기 디스크에 비하여 읽기 및 쓰기 시간이 짧고 작은 전력을 소모하며 작은 부피를 차지하는 비휘발성(non-volatile) 메모리가 급속하게 자기 디스크를 대체하고 있다. 이는 비휘발성 메모리의 대용량화가 이루어졌기 때문에 가능한 결과이다.
비휘발성 메모리는 전기적으로 읽기(read) 및 쓰기(write)가 가능하며, 공급 전원이 없는 상태에서도 저장된 데이터를 유지할 수 있는 반도체 메모리 장치이다. 비휘발성 메모리 장치에 대한 데이터의 저장 과정은 쓰기 외에도 프로그래밍(programming)이라고 불리기도 한다.
비휘발성 메모리의 대표적인 것으로 플래시(Flash) 메모리를 들 수 있으며, 플래시 메모리는 종래의 하드 디스크 드라이브(Hard Disk Drive, HDD)에 비하면 크기가 작고, 전력 소모량이 작으며, 읽기 속도를 높일 수 있는 이점이 있다. 최근에는 대용량의 플래시 메모리를 이용하여 HDD를 대체하기 위한 SSD(Solid State Disk)가 제안되기도 하였다.
플래시 메모리의 종류로서 대표적인 것들로는 NAND 방식의 플래시 메모리와 NOR 플래시 메모리 등을 들 수 있다. NAND 방식과 NOR 방식은 셀 어레이의 구성 및 동작 방식에 의해 구별될 수 있다.
플래시 메모리는 다수의 메모리 셀들의 배열로 이루어지며, 하나의 메모리 셀은 하나 이상의 데이터 비트를 저장할 수 있다. 하나의 메모리 셀은 컨트롤 게이트(control gate) 및 플로팅 게이트(floating gate)를 포함하며, 컨트롤 게이트 및 플로팅 게이트 사이에는 절연체(insulator)가 삽입되고, 플로팅 게이트 및 서브스트레이트(substrate) 간에도 절연체가 삽입된다.
이러한 비휘발성 메모리는 소정의 컨트롤러에 의해 관리가 이루어진다. 그리고, 이러한 컨트롤러의 성능에 따라 비휘발성 메모리 전체의 성능이 결정될 수도 있다.
따라서, 메모리를 효율적으로 관리 및 제어할 수 있는 방안에 대한 연구가 필요하다.
메모리 장치 내에 포함되어 있는 ECC 모듈과는 별도로 제2 ECC 모듈을 더 포하는 메모리 장치 및 상기 메모리 장치의 관리 방법을 개시함으로써, 메모리 장치 내에 포함되어 있는 ECC 모듈이 메모리로부터 독출(read)되는 데이터에 대한 에러를 정정하지 못하는 경우, 상기 제2 ECC 모듈이 상기 에러를 정정하도록 하여 데이터에 대한 신뢰성이 보장될 수 있도록 한다.
또한, 본 발명의 일실시예에 따른 메모리 장치 및 메모리 장치의 관리 방법은 상기 제2 ECC 모듈을 소프트웨어 모듈로 구현함으로써, 사용자가 상황에 따라 적절한 ECC 생성 알고리즘으로 손쉽게 변경할 수 있도록 하고, ECC 모듈의 교체가 필요한 경우, 사용자가 용이하게 ECC 모듈을 교체할 수 있도록 한다.
본 발명의 일실시예에 따른 메모리 장치는 제1 에러 정정 코드(Error Correction Code: ECC) 생성 알고리즘에 기초하여 메모리에 기록되는 데이터에 대한 제1 ECC 정보를 생성하는 제1 ECC 모듈, 제2 ECC 생성 알고리즘에 기초하여 상기 데이터에 대한 제2 ECC 정보를 생성하는 제2 ECC 모듈 및 상기 제1 ECC 정보 및 상기 제2 ECC 정보를 상기 메모리에 기록(write)하는 기록 모듈을 포함한다.
또한, 본 발명의 일실시예에 따른 메모리 장치의 관리 방법은 제1 에러 정정 코드(Error Correction Code: ECC) 생성 알고리즘에 기초하여 메모리에 기록되는 데이터에 대한 제1 ECC 정보를 생성하는 단계, 제2 ECC 생성 알고리즘에 기초하 여 상기 데이터에 대한 제2 ECC 정보를 생성하는 단계 및 상기 제1 ECC 정보 및 상기 제2 ECC 정보를 상기 메모리에 기록(write)하는 단계을 포함한다.
메모리 장치 내에 포함되어 있는 ECC 모듈과는 별도로 제2 ECC 모듈을 더 포하는 메모리 장치 및 상기 메모리 장치의 관리 방법을 개시함으로써, 메모리 장치 내에 포함되어 있는 ECC 모듈이 메모리로부터 독출되는 데이터에 대한 에러를 정정하지 못하는 경우, 상기 제2 ECC 모듈이 상기 에러를 정정하도록 하여 데이터에 대한 신뢰성을 보장할 수 있는 메모리 장치 및 메모리 장치의 관리 방법을 제공할 수 있다.
또한, 상기 제2 ECC 모듈을 소프트웨어 모듈로 구현함으로써, 사용자가 상황에 따라 적절한 ECC 생성 알고리즘으로 손쉽게 변경할 수 있도록 하고, ECC 모듈의 교체가 필요한 경우, 사용자가 용이하게 ECC 모듈을 교체할 수 있도록 하는 메모리 장치 및 메모리 장치의 관리 방법을 제공할 수 있다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
일반적으로 비휘발성 메모리에 대한 프로그래밍(programming)은 페이지(page) 단위로 수행될 수 있고 소거(erase)는 블록(block) 단위로 수행될 수 있다. 이때, 블록은 복수의 페이지들을 포함할 수 있다.
또한, 비휘발성 메모리를 관리하는 메모리 컨트롤러는 외부의 호스 트(host) 또는 프로세서(processor)에 논리 주소(logical address)를 제공하고, 비휘발성 메모리에 대해 물리 주소(physical address)를 제공할 수 있다.
이때, 메모리 컨트롤러는 물리 주소를 이용하여 비휘발성 메모리를 관리하고, 물리 주소를 논리 주소로 변환할 수 있다.
여기서, 물리 주소 및 논리 주소의 변환이 수행되는 계층을 플래시 변환 계층(Flash Translation Layer: FTL)이라 하기도 한다.
메모리 컨트롤러는 메모리에 기록되어 있는 데이터의 신뢰성을 보장하기 위해 오류 정정 코드(Error Correction Code: ECC)를 사용할 수 있다.
일반적으로 ECC 정보는 메모리에 기록되어 있는 데이터를 독출(read)할 때, 상기 데이터가 메모리에 기록될 당시의 데이터와 다르게 독출되는 등의 에러가 있는지 여부를 감지하고, 잘못된 데이터를 올바른 데이터로 정정하기 위해 사용될 수 있다.
상기 ECC 정보는 메모리의 특정 영역에 기록될 수 있는데, 보통, 메모리의 잉여(Spare) 영역 등에 기록될 수 있다.
ECC 정보를 이용하여 데이터 신뢰성을 확보하기 위해서는 ECC 알고리즘, ECC의 적용 대상, ECC 코드의 크기 또는 ECC의 기록 위치 등과 같은 다양한 요소가 고려되어야 한다.
종래에는 ECC 정보를 이용하여 데이터의 신뢰성을 확보하기 위해, 메모리 컨트롤러 내에 소정의 ECC 모듈을 포함시켜, 메모리에 기록될 데이터의 신뢰성을 보장하고자 하였다.
하지만, 메모리에서 데이터가 독출될 때, 상기 ECC 모듈이 상기 데이터에 대한 에러를 정정하지 못하는 경우, 상기 데이터는 에러가 정정되지 않는 상태로 호스트에 전달될 수 있어, 상기 데이터에 대한 신뢰성이 매우 떨어질 수 있다.
또한, 종래에는 상기 ECC 모듈이 메모리 컨트롤러 내에 하드웨어 구성으로 포함되기 때문에, 상황에 따라 적절한 ECC 생성 알고리즘으로 변경하기 어려운 점이 있었다.
따라서, 본 발명의 일실시예에 따른 메모리 장치는 메모리 장치 내에 포함되어 있는 ECC 모듈과는 별도로 제2 ECC 모듈을 더 포함함으로써, 메모리 장치 내에 포함되어 있는 ECC 모듈이 메모리로부터 독출되는 데이터에 대한 에러를 정정하지 못하는 경우, 상기 제2 ECC 모듈이 상기 에러를 정정하도록 하여 데이터에 대한 신뢰성이 보장될 수 있도록 한다.
또한, 본 발명의 일실시예에 따른 메모리 장치는 상기 제2 ECC 모듈을 소프트웨어 모듈로 구현함으로써, 사용자가 상황에 따라 적절한 ECC 생성 알고리즘으로 손쉽게 변경할 수 있도록 하고, ECC 모듈의 교체가 필요한 경우, 사용자가 용이하게 ECC 모듈을 교체할 수 있도록 한다.
따라서, 이하에서는 도 1 내지 도 5를 참조하여 본 발명의 일실시예에 따른 메모리 장치 및 메모리 장치의 관리 방법에 대해 상세히 설명하기로 한다.
도 1은 본 발명의 일실시예에 따른 메모리 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 메모리 장치(110)가 도시되어 있다.
메모리 장치(110)는 제1 ECC 모듈(111), 제2 ECC 모듈(112), 기록 모 듈(113) 및 메모리(114)를 포함할 수 있다.
본 발명의 일실시예에 따르면, 메모리(114)는 비휘발성 메모리가 될 수 있다.
먼저, 메모리 장치(110)가 파일 시스템으로부터 데이터의 쓰기(write) 요청을 수신한 경우, 제1 ECC 모듈(111)은 제1 ECC 생성 알고리즘에 기초하여 메모리(114)에 기록(write)되는 데이터에 대한 제1 ECC 정보를 생성한다.
그리고, 제2 ECC 모듈(112)는 제2 ECC 생성 알고리즘에 기초하여 상기 데이터에 대한 제2 ECC 정보를 생성한다.
본 발명의 일실시예에 따르면, 상기 제1 ECC 생성 알고리즘 및 상기 제2 ECC 생성 알고리즘은 서로 다른 ECC 생성 알고리즘일 수 있다.
또한, 본 발명의 일실시예에 따르면, 제2 ECC 모듈(112)은 소정의 소프트웨어 모듈로 구현될 수 있다.
이에 따라, 사용자는 제2 ECC 모듈(112)의 교체를 손쉽게 할 수 있고, 상기 제2 ECC 생성 알고리즘의 변경도 용이하게 할 수 있다.
기록 모듈(113)은 상기 제1 ECC 정보 및 상기 제2 ECC 정보를 메모리(114)에 기록한다.
이때, 본 발명의 일실시예에 따르면, 기록 모듈(113)은 상기 제1 ECC 정보 및 상기 제2 ECC 정보를 메모리(114)의 잉여(spare) 영역에 기록할 수 있다.
지금까지, 메모리(114)에 데이터가 기록되는 경우, 메모리 장치(110)의 동작에 대해 설명하였다. 이하에서는 메모리(114)로부터 데이터가 독출되는 경우, 메모리 장치(110)의 동작에 대해 설명하기로 한다.
메모리 장치(110)가 파일 시스템으로부터 데이터 읽기(read) 요청을 수신하여 상기 데이터가 메모리(114)로부터 독출되는 경우, 제1 ECC 모듈(111)은 메모리(114)로부터 상기 제1 ECC 정보를 독출할 수 있다.
그리고 나서, 제1 ECC 모듈(111)은 상기 독출된 제1 ECC 정보에 기초하여 상기 독출된 데이터에 대한 에러 발생 여부를 감지하여 상기 에러가 감지되면, 상기 데이터에 대해 에러 정정을 수행한다.
이때, 본 발명의 일실시예에 따르면, 제1 ECC 모듈(111)이 상기 독출된 데이터에 대한 에러 정정을 실패하는 경우, 제2 ECC 모듈(112)은 메모리(114)로부터 상기 제2 ECC 정보를 독출할 수 있다.
그리고 나서, 제2 ECC 모듈(112)은 상기 독출된 제2 ECC 정보에 기초하여 상기 독출된 데이터에 대해 에러 정정을 수행할 수 있다.
결국, 본 발명의 일실시예에 따른 메모리 장치(110)는 제1 ECC 모듈(111)이 메모리(114)로부터 독출된 데이터에 대한 에러를 정정하지 못한 경우, 제2 ECC 모듈(112)이 상기 에러를 정정하도록 함으로써, 메모리(114)로부터 독출된 데이터에 대한 신뢰성이 보장되도록 할 수 있다.
본 발명의 일실시예에 따르면, 제1 ECC 모듈(111)은 제1 연산 모듈, 제1 독출 모듈, 제3 연산 모듈 및 제1 에러 정정 모듈을 포함할 수 있고, 제2 ECC 모듈(112) 제2 연산 모듈, 제2 독출 모듈, 제4 연산 모듈 및 제2 에러 정정 모듈을 포함할 수 있다.
따라서, 이하에서는 도 2를 참조하여 본 발명의 또 다른 일실시예에 다른 메모리 장치에 대해 상세히 설명하기로 한다.
도 2는 본 발명의 또 다른 일실시예에 따른 메모리 장치의 구조를 도시한 도면이다.
도 2를 참조하면, 메모리 장치(210)가 도시되어 있다.
메모리 장치(210)는 제1 ECC 모듈(220), 제2 ECC 모듈(230), 기록 모듈(240) 및 메모리(250)를 포함할 수 있다.
본 발명의 일실시예에 따르면, 제1 ECC 모듈(220)은 제1 연산 모듈(221), 제1 독출 모듈(222), 제3 연산 모듈(223) 및 제1 에러 정정 모듈(224)을 포함할 수 있다.
또한, 본 발명의 일실시예에 따르면, 제2 ECC 모듈(230)은 제2 연산 모듈(231), 제2 독출 모듈(232), 제4 연산 모듈(233) 및 제2 에러 정정 모듈(234)을 포함할 수 있다.
먼저, 메모리 장치(210)가 파일 시스템으로부터 데이터 쓰기 요청을 수신하는경우, 제1 연산 모듈(221)은 제1 ECC 생성 알고리즘에 기초하여 메모리(250)에 기록되는 상기 데이터에 대한 제1 ECC 코드를 연산한다.
제2 연산 모듈(231)은 제2 ECC 생성 알고리즘에 기초하여 상기 데이터에 대한 제2 ECC 코드를 연산한다.
기록 모듈(240)은 상기 제1 ECC 코드 및 상기 제2 ECC 코드를 메모리(250)에 기록한다.
본 발명의 일실시예에 따르면, 기록 모듈(240)은 상기 제1 ECC 코드 및 상기 제2 ECC 코드를 메모리(250)의 잉여 영역에 기록할 수 있다.
만약, 메모리 장치(210)가 상기 파일 시스템으로부터 데이터 읽기 요청을 수신하여 데이터가 메모리(250)로부터 독출되는 경우, 제1 독출 모듈(222)은 메모리(250)로부터 상기 제1 ECC 코드를 독출한다.
그리고, 제3 연산 모듈(223)은 상기 제1 ECC 생성 알고리즘에 기초하여 상기 독출된 데이터에 대한 제3 ECC 코드를 연산한다.
그리고 나서, 제1 에러 정정 모듈(224)은 상기 독출된 제1 ECC 코드와 상기 제3 ECC 코드를 비교하여 상기 독출된 데이터에 대한 에러 발생 여부를 감지하고, 상기 에러가 감지되는 경우, 상기 독출된 데이터에 대해 에러 정정을 수행한다.
이때, 제1 에러 정정 모듈(224)이 상기 독출된 데이터에 대한 에러 정정을 실패하는 경우, 제2 독출 모듈(232)은 메모리(250)로부터 상기 제2 ECC 코드를 독출한다.
그리고, 제4 연산 모듈(233)은 상기 제2 ECC 생성 알고리즘에 기초하여 상기 독출된 데이터에 대한 제4 ECC 코드를 연산한다.
그리고 나서, 제2 에러 정정 모듈(234)은 상기 독출된 제2 ECC 코드와 상기 제4 ECC 코드를 비교하여 상기 독출된 데이터에 대해 에러 정정을 수행한다.
결국, 본 발명의 일실시예에 따른 메모리 장치(210)은 제1 ECC 모듈(220)이외에 제2 ECC 모듈(230)을 더 포함함으로써 제1 ECC 모듈(220)이 데이터에 대한 에러를 정정하지 못하는 경우, 제2 ECC 모듈(230)이 상기 에러를 정정할 수 있도록 하여 메모리(250)로부터 독출되는 데이터에 대한 신뢰성을 보장할 수 있다.
이때, 본 발명의 일실시예에 따르면, 제2 ECC 모듈(230)은 소정의 소프트웨어 모듈로 구현될 수 있다.
이때, 제2 연산 모듈(231), 제2 독출 모듈(232), 제4 연산 모듈(233) 및 제2 에러 정정 모듈(234)은 제2 ECC 모듈(230)을 구성하는 소정의 소프트웨어 모듈이 될 수 있다.
이에 따라, 사용자는 제2 ECC 모듈(230)의 교체를 손쉽게 할 수 있고, 상기 제2 ECC 생성 알고리즘의 변경도 용이하게 할 수 있다.
도 3은 본 발명의 일실시예에 따른 메모리 장치의 관리 방법을 도시한 순서도이다.
단계(S310)에서는 메모리 장치가 파일 시스템으로부터 데이터 쓰기 요청을 수신한 경우, 제1 ECC 생성 알고리즘에 기초하여 메모리에 기록되는 데이터에 대한 제1 ECC 정보를 생성한다.
단계(S320)에서는 제2 ECC 생성 알고리즘에 기초하여 상기 데이터에 대한 제2 ECC 정보를 생성한다.
본 발명의 일실시예에 따르면, 단계(S320)은 소정의 소프트웨어 모듈에 의해 수행될 수 있다.
단계(S330)에서는 상기 제1 ECC 정보 및 상기 제2 ECC 정보를 상기 메모리에 기록한다.
본 발명의 일실시예에 따르면, 단계(S330)에서는 상기 제1 ECC 정보 및 상 기 제2 ECC 정보를 상기 메모리의 잉여 영역에 기록할 수 있다.
이상, 도 3을 참조하여 상기 메모리에 데이터가 기록되는 경우, 본 발명의 일실시예에 따른 메모리 장치의 관리 방법에 대해 설명하였다. 이하에서는 도 4를 참조하여 상기 메모리로부터 데이터가 독출되는 경우, 본 발명의 일실시예에 따른 메모리 장치의 관리 방법에 대해 상세히 설명하기로 한다.
도 4는 본 발명의 일실시예에 따른 메모리 장치의 관리 방법을 도시한 순서도이다.
메모리 장치가 파일 시스템으로부터 데이터 읽기 요청을 수신하여 데이터가 메모리로부터 독출되는 경우, 단계(S410)에서는 상기 메모리로부터 상기 제1 ECC 정보를 독출한다.
단계(S420)에서는 상기 독출된 제1 ECC 정보에 기초하여 상기 독출된 데이터에 대한 에러 발생 여부를 감지한다.
단계(S430)에서는 상기 독출된 데이터에 대해 상기 에러가 감지되었는지 여부를 판단한다.
만약, 단계(S430)에서 상기 에러가 감지되지 않은 것으로 판단한 경우, 본 에러 정정 과정은 종료된다.
하지만, 단계(S430)에서 상기 에러가 감지된 것으로 판단한 경우, 단계(S440)에서는 상기 독출된 데이터에 대해 에러 정정을 수행한다.
단계(S450)에서는 단계(S440)에서 상기 에러 정정이 성공적으로 수행되었는지 여부를 판단한다.
만약, 단계(S450)에서 상기 에러 정정이 성공적으로 수행된 것으로 판단한 경우, 본 에러 정정 과정은 종료된다.
하지만, 단계(S450)에서 상기 에러 정정이 성공적으로 수행되지 않은 것으로 판단한 경우, 단계(S460)에서는 상기 메모리로부터 상기 제2 ECC 정보를 독출한다.
단계(S470)에서는 상기 독출된 제2 ECC 정보에 기초하여 상기 독출된 데이터에 대해 에러 정정을 수행한다.
본 발명의 일실시예에 따르면, 단계(S460) 및 단계(S470)은 소정의 소프트웨어 모듈에 의해 수행될 수 있다.
이상, 도 4를 참조하여 메모리로부터 데이터가 독출되는 경우, 본 발명의 일실시예에 따른 메모리 장치의 관리 방법에 대해 설명하였다.
이하에서는 도 3을 참조하여 메모리에 데이터가 기록되는 경우, 본 발명의 또 다른 일실시예에 따른 메모리 장치의 관리 방법에 대해 설명하기로 한다.
본 발명의 일실시예에 따르면, 단계(S310)에서는 제1 ECC 생성 알고리즘에 기초하여 상기 메모리에 기록되는 데이터에 대한 제1 ECC 코드를 연산할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S320)에서는 제2 ECC 생성 알고리즘에 기초하여 상기 데이터에 대한 제2 ECC 코드를 연산할 수 있다.
이때, 본 발명의 일실시예에 따르면, 단계(S320)은 소정의 소프트웨어 모듈에 의해 수행될 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S330)에서는 상기 제1 ECC 코드 및 상기 제2 ECC 코드를 상기 메모리에 기록할 수 있다.
이때, 본 발명의 일실시예에 따르면, 단계(S330)에서는 상기 제1 ECC 코드 및 상기 제2 ECC 코드를 상기 메모리의 잉여 영역에 기록할 수 있다.
이상, 도 3을 참조하여 메모리 장치에 데이터가 기록되는 경우, 본 발명의 또 다른 일실시예에 따른 메모리 장치의 관리 방법에 대해 설명하였다. 이하에서는 도 5를 참조하여 메모리 장치로부터 데이터가 독출되는 경우, 본 발명의 또 다른 일실시예에 따른 메모리 장치의 관리 방법에 대해 설명하기로 한다.
도 5는 본 발명의 또 다른 일실시예에 따른 메모리 장치의 관리 방법을 도시한 순서도이다.
메모리로부터 데이터가 독출되는 경우, 단계(S510)에서는 상기 메모리로부터 상기 제1 ECC 코드를 독출한다.
단계(S520)에서는 상기 제1 ECC 생성 알고리즘에 기초하여 상기 독출된 데이터에 대한 제3 ECC 코드를 연산한다.
단계(S530)에서는 상기 독출된 제1 ECC 코드와 상기 제3 ECC 코드를 비교하여 상기 독출된 데이터에 대한 에러 발생 여부를 감지한다.
단계(S540)에서는 상기 독출된 데이터에 대한 상기 에러가 감지되었는지 여부를 판단한다.
만약, 단계(S540)에서 상기 에러가 감지되지 않은 것으로 판단한 경우, 본 에러 정정 과정은 종료된다.
하지만, 단계(S540)에서 상기 에러가 감지된 것으로 판단한 경우, 단 계(S550)에서는 상기 독출된 데이터에 대해 에러 정정을 수행한다.
단계(S560)에서는 단계(S550)에서 상기 에러 정정이 성공적으로 수행되었는지 여부를 판단한다.
만약, 단계(S560)에서 상기 에러 정정이 성공적으로 수행된 것으로 판단한 경우, 본 에러 정정 과정은 종료된다.
하지만, 단계(S560)에서 상기 에러 정정이 성공적으로 수행되지 않은 것으로 판단한 경우, 단계(S570)에서는 상기 메모리로부터 상기 제2 ECC 코드를 독출한다.
단계(S580)에서는 상기 제2 ECC 생성 알고리즘에 기초하여 상기 독출된 데이터에 대한 제4 ECC 코드를 연산한다.
단계(S590)에서는 상기 독출된 제2 ECC 코드와 상기 제4 ECC 코드를 비교하여 상기 독출된 데이터에 대해 에러 정정을 수행한다.
본 발명의 일실시예에 따르면, 단계(S570) 내지 단계(S590)은 소정의 소프트웨어 모듈에 의해 수행될 수 있다.
본 발명에 따른 메모리 장치의 관리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일실시예에 따른 메모리 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 또 다른 일실시예에 따른 메모리 장치의 구조를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 메모리 장치의 관리 방법을 도시한 순서도이다.
도 4는 본 발명의 일실시예에 따른 메모리 장치의 관리 방법을 도시한 순서도이다.
도 5는 본 발명의 또 다른 일실시예에 따른 메모리 장치의 관리 방법을 도시한 순서도이다.

Claims (17)

  1. 제1 에러 정정 코드(Error Correction Code: ECC) 생성 알고리즘에 기초하여 메모리에 기록되는 데이터에 대한 제1 ECC 정보를 생성하는 제1 ECC 모듈;
    제2 ECC 생성 알고리즘에 기초하여 상기 데이터에 대한 제2 ECC 정보를 생성하는 제2 ECC 모듈; 및
    상기 제1 ECC 정보 및 상기 제2 ECC 정보를 상기 메모리에 기록(write)하는 기록 모듈
    을 포함하고,
    상기 제1 ECC 모듈은,
    상기 제1 ECC 생성 알고리즘에 기초하여 상기 데이터에 대한 제1 ECC 코드를 연산하는 제1 연산 모듈;
    상기 메모리로부터 상기 데이터가 독출(read)되는 경우, 상기 메모리로부터 상기 제1 ECC 코드를 독출하는 제1 독출 모듈;
    상기 제1 ECC 생성 알고리즘에 기초하여 상기 독출된 데이터에 대한 제3 ECC 코드를 연산하는 제3 연산 모듈; 및
    상기 독출된 제1 ECC 코드와 상기 제3 ECC 코드를 비교하여 상기 독출된 데이터에 대한 에러 발생 여부를 감지하고, 상기 에러가 감지되는 경우, 상기 독출된 데이터에 대해 에러 정정을 수행하는 제1 에러 정정 모듈
    을 포함하고,
    상기 제2 ECC 모듈은,
    상기 제2 ECC 생성 알고리즘에 기초하여 상기 데이터에 대한 제2 ECC 코드를 연산하는 제2 연산 모듈
    을 포함하고,
    상기 기록 모듈은,
    상기 제1 ECC 코드 및 상기 제2 ECC 코드를 상기 메모리에 기록하는 메모리 장치.
  2. 제1항에 있어서,
    상기 제2 ECC 모듈은
    소정의 소프트웨어 모듈로 구현되는 것을 특징으로 하는 메모리 장치.
  3. 제1항에 있어서,
    상기 제1 ECC 모듈은
    상기 메모리로부터 상기 데이터가 독출(read)되는 경우, 상기 메모리로부터 상기 제1 ECC 정보를 독출하고, 상기 독출된 제1 ECC 정보에 기초하여 상기 독출된 데이터에 대한 에러 발생 여부를 감지하여 상기 에러가 감지되면, 상기 독출된 데이터에 대해 에러 정정을 수행하는 것을 특징으로 하는 메모리 장치.
  4. 제3항에 있어서,
    상기 제2 ECC 모듈은
    상기 제1 ECC 모듈이 상기 에러 정정을 실패한 경우, 상기 메모리로부터 상기 제2 ECC 정보를 독출하고, 상기 독출된 제2 ECC 정보에 기초하여 상기 독출된 데이터에 대해 에러 정정을 수행하는 것을 특징으로 하는 메모리 장치.
  5. 제1항에 있어서,
    상기 기록 모듈은
    상기 제1 ECC 정보 및 상기 제2 ECC 정보를 상기 메모리의 잉여(spare) 영역에 기록하는 것을 특징으로 하는 메모리 장치.
  6. 삭제
  7. 삭제
  8. 제1항에 있어서,
    상기 제2 ECC 모듈은
    상기 제1 에러 정정 모듈이 상기 에러 정정을 실패한 경우, 상기 메모리로부터 상기 제2 ECC 코드를 독출하는 제2 독출 모듈;
    상기 제2 ECC 생성 알고리즘에 기초하여 상기 독출된 데이터에 대한 제4 ECC 코드를 연산하는 제4 연산 모듈; 및
    상기 독출된 제2 ECC 코드와 상기 제4 ECC 코드를 비교하여 상기 독출된 데이터에 대해 에러 정정을 수행하는 제2 에러 정정 모듈
    을 더 포함하는 것을 특징으로 하는 메모리 장치.
  9. 제1 에러 정정 코드(Error Correction Code: ECC) 생성 알고리즘에 기초하여 메모리에 기록되는 데이터에 대한 제1 ECC 정보를 생성하는 단계;
    제2 ECC 생성 알고리즘에 기초하여 상기 데이터에 대한 제2 ECC 정보를 생성하는 단계; 및
    상기 제1 ECC 정보 및 상기 제2 ECC 정보를 상기 메모리에 기록(write)하는 단계
    을 포함하고,
    상기 제1 ECC 정보를 생성하는 단계는,
    상기 제1 ECC 생성 알고리즘에 기초하여 상기 데이터에 대한 제1 ECC 코드를 연산하는 단계;
    상기 메모리로부터 상기 데이터가 독출(read)되는 경우, 상기 메모리로부터 상기 제1 ECC 코드를 독출하는 단계;
    상기 제1 ECC 생성 알고리즘에 기초하여 상기 독출된 데이터에 대한 제3 ECC 코드를 연산하는 단계;
    상기 독출된 제1 ECC 코드와 상기 제3 ECC 코드를 비교하여 상기 독출된 데이터에 대한 에러 발생 여부를 감지하는 단계; 및
    상기 에러가 감지되는 경우, 상기 독출된 데이터에 대해 에러 정정을 수행하는 단계
    를 포함하고,
    상기 제2 ECC 정보를 생성하는 단계는,
    상기 제2 ECC 생성 알고리즘에 기초하여 상기 데이터에 대한 제2 ECC 코드를 연산하며,
    상기 메모리에 기록하는 단계는,
    상기 제1 ECC 코드 및 상기 제2 ECC 코드를 상기 메모리에 기록하는 메모리 장치의 관리 방법
  10. 제9항에 있어서,
    상기 제2 ECC 정보를 생성하는 단계는
    소정의 소프트웨어 모듈에 의해 수행되는 것을 특징으로 하는 메모리 장치의 관리 방법.
  11. 제9항에 있어서,
    상기 메모리로부터 상기 데이터가 독출(read)되는 경우, 상기 메모리로부터 상기 제1 ECC 정보를 독출하는 단계;
    상기 독출된 제1 ECC 정보에 기초하여 상기 독출된 데이터에 대한 에러 발 생 여부를 감지하는 단계; 및
    상기 에러가 감지되면, 상기 독출된 데이터에 대해 에러 정정을 수행하는 단계
    를 더 포함하는 것을 특징으로 하는 메모리 장치의 관리 방법.
  12. 제11항에 있어서,
    상기 독출된 데이터에 대한 에러 정정이 실패한 경우, 상기 메모리로부터 상기 제2 ECC 정보를 독출하는 단계; 및
    상기 독출된 제2 ECC 정보에 기초하여 상기 독출된 데이터에 대해 에러 정정을 수행하는 단계
    를 더 포함하는 것을 특징으로 하는 메모리 장치의 관리 방법.
  13. 제9항에 있어서,
    상기 메모리에 기록하는 단계는
    상기 제1 ECC 정보 및 상기 제2 ECC 정보를 상기 메모리의 잉여(spare) 영역에 기록하는 것을 특징으로 하는 메모리 장치의 관리 방법.
  14. 삭제
  15. 삭제
  16. 제9항에 있어서,
    상기 독출된 데이터에 대한 상기 에러 정정이 실패한 경우, 상기 메모리로부터 상기 제2 ECC 코드를 독출하는 단계;
    상기 제2 ECC 생성 알고리즘에 기초하여 상기 독출된 데이터에 대한 제4 ECC 코드를 연산하는 단계;
    상기 독출된 제2 ECC 코드와 상기 제4 ECC 코드를 비교하여 상기 독출된 데이터에 대해 에러 정정을 수행하는 단계
    를 더 포함하는 것을 특징으로 하는 메모리 장치의 관리 방법.
  17. 제9항 내지 제 13항 또는 제16항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020080133643A 2008-12-24 2008-12-24 메모리 장치 및 메모리 장치의 관리 방법 KR100955157B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080133643A KR100955157B1 (ko) 2008-12-24 2008-12-24 메모리 장치 및 메모리 장치의 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080133643A KR100955157B1 (ko) 2008-12-24 2008-12-24 메모리 장치 및 메모리 장치의 관리 방법

Publications (1)

Publication Number Publication Date
KR100955157B1 true KR100955157B1 (ko) 2010-04-28

Family

ID=42220435

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080133643A KR100955157B1 (ko) 2008-12-24 2008-12-24 메모리 장치 및 메모리 장치의 관리 방법

Country Status (1)

Country Link
KR (1) KR100955157B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160022249A (ko) * 2014-08-19 2016-02-29 삼성전자주식회사 메모리 장치 및 모듈
US10824499B2 (en) 2014-08-19 2020-11-03 Samsung Electronics Co., Ltd. Memory system architectures using a separate system control path or channel for processing error information
KR102505857B1 (ko) * 2021-11-15 2023-03-06 삼성전자 주식회사 스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법
US11886293B2 (en) 2021-11-15 2024-01-30 Samsung Electronics Co., Ltd. Memory controller managing strong error information and operating method thereof
KR102692669B1 (ko) 2016-02-16 2024-08-07 삼성전자주식회사 메모리의 특성을 이용한 키 생성 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
KR20080064029A (ko) * 2007-01-03 2008-07-08 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080064029A (ko) * 2007-01-03 2008-07-08 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160022249A (ko) * 2014-08-19 2016-02-29 삼성전자주식회사 메모리 장치 및 모듈
US10824499B2 (en) 2014-08-19 2020-11-03 Samsung Electronics Co., Ltd. Memory system architectures using a separate system control path or channel for processing error information
KR102184581B1 (ko) 2014-08-19 2020-11-30 삼성전자주식회사 메모리 장치 및 모듈
KR102692669B1 (ko) 2016-02-16 2024-08-07 삼성전자주식회사 메모리의 특성을 이용한 키 생성 방법 및 장치
KR102505857B1 (ko) * 2021-11-15 2023-03-06 삼성전자 주식회사 스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법
US11886293B2 (en) 2021-11-15 2024-01-30 Samsung Electronics Co., Ltd. Memory controller managing strong error information and operating method thereof

Similar Documents

Publication Publication Date Title
KR101042197B1 (ko) 메모리 컨트롤러 및 메모리 관리 방법
KR101014040B1 (ko) 디램 버퍼 관리 장치 및 방법
KR101801147B1 (ko) 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치
KR101970450B1 (ko) 솔리드 스테이트 드라이브에서 하위 페이지 데이터 복구를 위한 시스템 및 방법
US20120254519A1 (en) Data storage system with non-volatile memory and method of operation thereof
US11749373B2 (en) Bad block management for memory sub-systems
US11194655B2 (en) Storage controller and storage device including the same
US10762967B2 (en) Recovering from failure in programming a nonvolatile memory
JP2013522776A (ja) マルチレベルセルのセルフraidフラッシュデータ保護
US9239757B2 (en) Method and apparatus for relocating data in non-volatile memory
KR100955157B1 (ko) 메모리 장치 및 메모리 장치의 관리 방법
CN114756179B (zh) 基于模拟eeprom的数据写入、读取及管理方法
US10545810B2 (en) Method and apparatus for monitoring non-volatile memory read errors using background media scan
US20120030435A1 (en) Memory device, memory management device, and memory management method
CN102981969A (zh) 重复数据删除的方法及其固态硬盘
CN111798910A (zh) 存储装置及其操作方法
KR101030146B1 (ko) 페이지 버퍼를 쓰기 캐시로 이용하는 플래시 기반 저장 장치 및 이용 방법
US8924774B2 (en) Semiconductor memory device and method for operating the same
US11281392B2 (en) Garbage collection in a memory component using an adjusted parameter
US20230400991A1 (en) Data Storage Device and Method for Prediction-Based Improved Power-Loss Handling
KR20140104829A (ko) 멀티 레벨 셀 비휘발성 메모리 시스템
CN111290878A (zh) 对固件的基于年龄的刷新
JP6267497B2 (ja) 半導体メモリの制御装置及び不安定メモリ領域の検出方法
JP2018163450A (ja) データ記憶制御装置、データ記憶システム、データ記憶方法およびプログラム
Director Esther Spanjer

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
FPAY Annual fee payment

Payment date: 20130422

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140407

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170403

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190902

Year of fee payment: 10