KR20120038076A - 낸드 플래시 메모리의 데이터 입출력 방법과 그 방법을 이용한 임베디드 시스템 - Google Patents

낸드 플래시 메모리의 데이터 입출력 방법과 그 방법을 이용한 임베디드 시스템 Download PDF

Info

Publication number
KR20120038076A
KR20120038076A KR1020100099612A KR20100099612A KR20120038076A KR 20120038076 A KR20120038076 A KR 20120038076A KR 1020100099612 A KR1020100099612 A KR 1020100099612A KR 20100099612 A KR20100099612 A KR 20100099612A KR 20120038076 A KR20120038076 A KR 20120038076A
Authority
KR
South Korea
Prior art keywords
data
error correction
nand flash
flash memory
correction code
Prior art date
Application number
KR1020100099612A
Other languages
English (en)
Other versions
KR101401379B1 (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 KR1020100099612A priority Critical patent/KR101401379B1/ko
Priority to US12/984,984 priority patent/US8850291B2/en
Publication of KR20120038076A publication Critical patent/KR20120038076A/ko
Application granted granted Critical
Publication of KR101401379B1 publication Critical patent/KR101401379B1/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/1068Adding 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 sector programmable memories, e.g. flash disk
    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • 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/65Purpose and implementation aspects
    • H03M13/6569Implementation on processors, e.g. DSPs, or software implementations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 데이터의 읽기 및 쓰기 속도를 향상시킬 수 있는 낸드 플래시 메모리의 데이터 입출력 방법과 그 방법을 이용한 임베디드 시스템에 관한 것이다.
본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 입력 방법은 낸드 플래시 메모리의 데이터 영역에 데이터를 쓰고자 할 경우 데이터의 크기가 기준 값 미만인인 경우 소프트웨어 ECC를 이용하여 데이터에 대한 에러정정코드를 계산하고, 데이터를 데이터 영역에 기록함과 더불어 에러정정코드를 낸드 플래시 메모리에 기록한다.

Description

낸드 플래시 메모리의 데이터 입출력 방법과 그 방법을 이용한 임베디드 시스템{NAND FLASH MEMORY IO METHOD AND EMBEDDED SYSTEM USING THE SAME}
본 발명은 낸드 플래시 메모리에 관한 것으로, 더욱 상세하게는 낸드 플래시 메모리의 데이어 영역에 비해 그 크기가 작고, 고정적인 데이터에 대해 데이터 영역 전체를 읽지 않고도 에러 정정이 가능하도록 하는 낸드 플래시 메모리의 데이터 입출력 방법과 그 방법을 이용한 임베디드 시스템에 관한 것이다.
낸드 플래시 메모리는 블록이라고 명명하는 단위로 구성되며, 이러한 블록은 페이지라고 명명하는 단위로 구성되어 있다. 한 페이지는 데이터 영역과 스페어 영역으로 구분되어 있다.
낸드 플래시는 페이지 단위로 읽기 동작이 수행되며, 블록 단위로 쓰기 동작이 수행된다. 왜냐하면, 낸드 플래시 메모리에서 데이터를 저장하기 위해서는 먼저 데이터 저장 위치의 데이터를 지우는 작업이 우선되어야 하는데, 지우는 작업의 단위가 블록 별로 이루어지기 때문에, 결국 쓰기 동작은 블록 단위로 이루어지게 된다.
종래의 낸드 플래시 메모리는 입출력되는 데이터의 에러 정정을 위해 하드웨어 기반의 에러정정코드 계산 방식을 사용한다. 이는 일반적으로 소프트웨어 기반의 방식보다 빠른 처리 속도를 보이지만 데이터 영역의 모든 데이터를 읽어야만 에러정정코드가 계산된다.
이와 같이 종래의 하드웨어 기반의 에러정정코드 계산 방식은 소량의 데이터를 저장하거나 읽어드리는 경우에도 전체 데이터를 읽어야 하는 단점이 있다.
상기와 같은 문제점을 해결하기 위해 안출된 것으로서, 본 발명의 목적은 소량의 데이터를 읽거나 쓰는 경우 소프트웨어 ECC 방법으로 에러정정을 수행하고, 그렇지 않을 경우 하드웨어 소프트웨어 ECC 방법으로 에러정정을 수행함으로서, 데이터의 읽기 및 쓰기 속도를 향상시킬 수 있는 낸드 플래시 메모리의 데이터 입출력 방법과 그 방법을 이용한 임베디드 시스템을 제공하는데 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 입력 방법은 낸드 플래시 메모리의 데이터 영역에 데이터를 쓰고자 할 경우 상기 데이터의 크기가 기준 값 미만인지를 판단하는 단계와, 상기 데이터의 크기가 기준 값 미만인 경우 소프트웨어 ECC를 이용하여 상기 데이터에 대한 에러정정코드를 계산하는 단계와, 상기 데이터를 상기 데이터 영역에 기록함과 더불어 상기 에러정정코드를 상기 낸드 플래시 메모리에 기록하는 단계를 포함한다.
본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 입력 방법은 상기 데이터의 크기가 기준 값 이상인 경우 하드웨어 ECC를 이용하여 상기 데이터에 대한 에러정정코드를 계산하는 단계를 수행한 후 상기 기록하는 단계로 진행하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 입력 방법에서 상기 기준 값은, 상기 낸드 플래시 메모리의 데이터 영역 크기 또는 상기 데이터 영역 크기보다 작은 값인 것을 특징으로 한다.
본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 입력 방법이 적용된 임베디드 시스템은 데이터가 저장되는 낸드 플래시 메모리와, 상기 낸드 플래시 메모리의 데이터 입력을 제어 및 중계하는 인터페이스와, 상기 인터페이스와 동기화되어 데이터 입력 시 소프트웨어 ECC 방법으로 에러정정코드를 발생시키는 소프트웨어 ECC 발생부와, 상기 입력 데이터에 대한 쓰 과정에서 하드웨어 ECC 방법으로 에러정정코드를 발생시키는 하드웨어 ECC 발생부와, 상기 인터페이스를 통해 입력되는 데이터의 크기와 기 설정된 기준 값간의 비교를 통해 상기 소프트웨어 ECC 발생부 또는 상기 하드웨어 ECC 발생부를 선택적으로 구동시켜 에러정정코드를 발생시키고, 상기 발생된 에러정정코드와 상기 입력되는 데이터가 상기 낸드 플래시 메모리에 기록되도록 상기 인터페이스를 제어하는 기록 제어부를 포함한다.
본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 입력 방법이 적용된 임베디드 시스템에서 상기 기록 제어부는, 상기 입력된 데이터의 크기가 기 설정된 기준 값 미만 인 경우 상기 소프트웨어 ECC 발생부를 구동시키고, 상기 입력된 데이터의 크기가 상기 기준 값 이상인 경우 상기 하드웨어 ECC 발생부를 구동시켜 상기 에러정정코드를 발생시키는 것을 특징으로 한다.
본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 입력 방법을 이용한 임베디드 시스템에서 상기 기준 값은 상기 낸드 플래시 메모리의 데이터 영역 크기 또는 상기 데이터 영역 크기보다 작은 값인 것을 특징으로 한다.
본 발명의 다른 측면에 따르면, 본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 출력 방법은 낸드 플래시 메모리에 기록된 데이터를 읽고자 하는 경우 상기 데이터의 크기가 기준 값 미만인지를 판단하는 단계와, 상기 데이터와 기록된 에러정정코드를 읽어드리는 단계와, 상기 읽어드린 데이터의 크기가 기준 값 미만인 경우 상기 읽어드린 데이터에 대한 에러정정코드를 소프트웨어 ECC 방법으로 계산하는 단계와, 상기 계산된 에러정정코드와 상기 읽어드린 에러정정코드간의 비교를통해 에러 검출 및 정정을 수행하는 단계를 포함한다.
본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 출력 방법은 상기 데이터의 크기가 기준 값 이상인 경우 상기 읽어드린 데이터의 에러정정코드를 하드웨어 ECC 방법을 이용하여 계산하는 단계를 포함한다.
본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 출력 방법에서 상기 낸드 플래시 메모리의 데이터 영역 크기 또는 상기 데이터 영역 크기보다 작은 값인 것을 특징으로 한다.
본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 출력 방법이 적용된 임베디드 시스템은 다수의 데이터와 상기 데이터 각각에 대한 에러정정코드를 저장하고 있는 낸드 플래시 메모리와, 상기 낸드 플래시 메모리의 데이터 출력을 제어 및 중계하는 인터페이스와, 상기 인터페이스와 동기화되어 데이터 출력 시 소프트웨어 ECC 방법으로 에러정정코드를 발생시키는 소프트웨어 ECC 발생부와, 상기 인터페이스와 동기화되어 데이터 출력 시 하드웨어 ECC 방법으로 에러정정코드를 발생시키는 하드웨어 ECC 발생부와, 상기 읽어드린 데이터의 크기에 의거하여 상기 소프트웨어 ECC 발생부 또는 상기 하드웨어 ECC 발생부를 선택적으로 구동시켜 상기 읽어드린 데이터에 대한 에러정정코드를 발생시키는 코드 제어부와, 상기 코드 제어부에서 발생된 에러정정코드와 상기 낸드 플래시 메모리에 저장된 에러정정코드간의 비교를 통해 에러 검출 및 정정을 수행하는 에러 검출 및 정정부를 포함한다.
본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 출력 방법이 적용된 임베디드 시스템에서 상기 코드 제어부는, 상기 읽어드린 데이터의 크기가 기 설정된 기준 값 미만인 경우 상기 소프트웨어 ECC 발생부를 구동시켜 상기 읽어드린 데이터의 에러정정코드를 계산하며, 상기 기준 값 이상인 경우 상기 하드웨어 ECC 발생부를 구동시켜 상기 읽어드린 데이터의 에러정정코드를 계산하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 낸드 플래시 메모리의 데이터 출력 방법이 적용된 임베디드 시스템에서 상기 기준 값은 상기 낸드 플래시 메모리의 데이터 영역 크기 또는 상기 데이터 영역 크기보다 작은 값인 것을 특징으로 한다.
본 발명은 낸드 플래시 메모리의 데이터 영역에 비해 크기가 작고, 고정된 크기의 데이터인 경우 소프트웨어 ECC 방법으로 에러정정코드를 계산함으로써, 데이터 영역 전체를 읽지 않고 에러 정정이 가능한 장점이 있다.
또한, 본 발명은 크기가 고정된 데이터이면서 그 크기가 기 설정된 기준 값 미만인 경우 소프트웨어 ECC 방법으로 에러정정를 수행하여 데이터를 출력함으로써, 페이지 크기보다 작은 데이터에 대한 에러 정정 성능을 향상시킬 수 있는 효과가 있다.
도 1은 본 발명의 실시 예에 따른 낸드 플래시 메모리를 구비한 임베디드 시스템의 데이터 입출력 장치를 도시한 블록도,
도 2는 본 발명의 실시 예에 따른 낸드 플래시 메모리에 데이터를 기록하는 과정을 도시한 흐름도,
도 3은 본 발명의 실시 예에 따른 낸드 플래시 메모리에서 데이터를 출력하는 과정을 도시한 흐름도,
도 4a 내지 도 4b는 본 발명의 실시 예에 따른 낸드 플래시 메모리의 성능을 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 낸드 플래시 메모리를 구비한 임베디드 시스템의 데이터 입출력 장치를 도시한 블록도로서, 낸드 플래시 메모리(100), 인터페이스(105), 기록 제어부(120), 코드 제어부(130) 및 에러 검출 및 정정부(140) 등을 포함할 수 있다.
낸드 플래시 메모리(100)는 데이터가 기록되는 페이지의 데이터 영역과 에러정정코드가 기록되는 스페어 영역으로 나눠질 수 있으며, 낸드 플래시 메모리(100)의 쓰기는 페이지 단위가 아닌 블록 단위로 이루어지며, 읽기 동작의 경우 페이지 단위로 동작이 이루어진다.
인터페이스(105)는 낸드 플래시 메모리(100)에 연결되어 데이터의 입출력을 제어 및 중계한다. 다시 말해서, 인터페이스(105)는 기록 제어부(120)의 제어에 의거하여 낸드 플래시 메모리(100)에서 데이터를 기록하거나 에러 검출 및 정정부(140)의 에러 검출 결과에 의거하여 데이터를 출력하게 된다.
기록 제어부(120)는 인터페이스(105)와 동기화되어 데이터 입력 시에 에러정정코드(parity)를 발생시키는데, 소프트웨어 ECC 방법으로 에러정정코드를 발생시키는 소프트웨어 ECC 발생부(112) 및 하드웨어 ECC 방법으로 에러정정코드를 발생시키는 하드웨어 ECC 발생부(114) 등을 포함할 수 있다.
본 발명의 실시 예에서는 입력되는 데이터가 기 설정된 크기 미만일 경우 소프트웨어 ECC 발생부(112)가 구동되어 에러정정코드를 발생시켜, 입력되는 데이터가 기 설정된 크기 이상인 경우 하드웨어 ECC 발생부(114)가 구동되어 에러정정코드를 발생시킨다.
본 발명의 실시 예에서는 기록 제어부(120)와 인터페이스(105)가 별개로 분리되어 있지만, 기록 제어부(120)의 소프트웨어 ECC 발생부(112) 및 하드웨어 ECC 발생부(114)가 인터페이스(105) 내에 위치할 수도 있음은 물론이다.
기록 제어부(120)는 인터페이스(105)를 통해 입력되는 데이터, 즉 쓰기 요청한 데이터의 크기에 따라 에러 코드 발생부(110)를 제어하는데, 즉 입출력되는 데이터의 크기가 기 설정된 기준값 미안인 경우 소프트웨어 ECC 발생부(112)를 구동시켜 에러정정코드를 발생시키며, 입력되는 데이터의 크기가 기 설정된 기준값 이상인 경우 하드웨어 ECC 발생부(114)를 구동시켜 에러정정코드를 발생시킨다.
코드 제어부(130)는 데이터 출력 시 에러 코드 발생부(110)를 제어하는 것으로, 즉 인터페이스(105)를 통해 읽기 요청한 데이터를 낸드 플래시 메모리(100)에서 읽어드린 후 읽어드린 데이터의 크기가 기 설정된 기준값 미만인 경우 소프트웨어 ECC 발생부(112)를 제어하여 에러정정코드를 발생시키며, 기 설정된 기준값 이상인 경우 하드웨어 ECC 발생부(114)를 제어하여 에러정정코드를 발생시킨다. 낸드 플래시 메모리(100)에 저장된 데이터를 읽는 경우 코드 제어부(130)는 코드 발생부(110)를 제어하여 읽어드린 데이터에 대한 에러정정코드를 소프트웨어 ECC 방법 또는 하드웨어 ECC 방법에 의거하여 계산한 후 이를 에러 검출 및 정정부(140)에 제공한다.
에러 검출 및 정정부(140)는 읽기 요청한 데이터에 대한 에러정정코드, 즉 스페어 영역에 기록되어 있는 에러정정코드를 낸드 플래시 메모리(100)로부터 제공받고, 제공받은 에러정정코드와 코드 발생부(110)에서 발생된 에러정정코드, 즉 읽어드린 데이터에 대한 에러정정코드간의 비교를 통해 에러를 검출 및 정정한다.
본 발명의 실시 예에 따른 데이터 입출력 장치에 따르면, 낸드 플래시 메모리(100)의 데이터 영역에 비해 크기가 작고, 고정된 크기의 데이터인 경우 소프트웨어 ECC 방법으로 에러정정코드를 계산함으로써, 데이터 영역 전체를 읽지 않고 에러 정정이 가능하다.
상기와 같은 구성을 갖는 데이터 입출력 장치가 동작하는 과정에 대해 도 2 내지 도 3을 참조하여 설명한다.
도 2는 본 발명의 실시 예에 따른 낸드 플래시 메모리에 데이터를 기록하는 과정을 도시한 흐름도이다.
도 2에 도시된 바와 같이, 인터페이스(105)를 통해 데이터 쓰기 요청이 있는 경우(S200) 기록 제어부(120)는 기록 제어부(120)를 제어하는데, 즉 기록 제어부(120)는 쓰기 요청한 데이터의 크기가 기 설정된 기준 값 미만인지를 판단한다(S202). 여기에서, 데이터는 고정된 크기를 갖을 수 있다.
S202의 판단 결과, 데이터의 크기가 기 설정된 기준 값 미만인 경우 기록 제어부(120)는 기록 제어부(120)의 소프트웨어 ECC 발생부(112)를 구동시켜 에러정정코드를 발생시킨다. 다시말해서, 기록 제어부(120)는 소프트웨어 ECC 발생부(112)를 구동시켜 쓰기 요청한 데이터에 대한 에러정정코드를 계산(S204)한 후 이를 낸드 플래시 메모리(100)에 제공한다. 여기에서, 기준 값은 데이터가 기록되는 데이터 영역 크기보다 작은 값일 수 있다.
이와 같이 에러정정코드를 계산할 때 기록 제어부(120)는 낸드 플래시 메모리(100)의 데이터 영역에 쓰기 요청한 데이터를 기록함과 더불어 스페어 영역에 에러정정코드를 기록한다(S206).
한편, S202의 판단 결과, 데이터의 크기가 기 설정된 기준 값 이상인 경우 기록 제어부(120)는 기록 제어부(120)의 하드웨어 ECC 발생부(114)를 구동시켜 에러정정코드를 계산(S208)한 후 S206으로 진행하여 계산된 에러정정코드와 쓰기 요청한 데이터를 기록한다.
본 발명의 실시 예에 따르면, 크기가 고정된 데이터이면서 그 크기가 기 설정된 기준 값 미만인 경우 소프트웨어 ECC 방법으로 에러정정코드를 생성함으로써, 페이지 크기보다 작은 데이터에 대한 기록 성능을 향상시킬 수 있다.
도 3은 본 발명의 실시 예에 따라 낸드 플래시 메모리에서 데이터를 읽는 과정을 도시한 흐름도이다.
도 3에 도시된 바와 같이, 인터페이스(105)를 통해 데이터의 읽기 요청이 있는 경우(S300), 코드 제어부(130)는 읽기 요청한 데이터를 인터페이스(105)를 통해 낸드 플래시 메모리(100)에서 읽어(S302)드린 후 읽어드린 데이터의 크기가 기 설정된 기준 값 미만인지를 판단한다(S304). 여기에서, 읽기 요청한 데이터는 고정된 크기를 갖을 수 있으며, 기준 값은 데이터가 기록되는 데이터 영역보다 작거나 같은 값일 수 있다.
S304의 판단 결과, 읽어드린 데이터의 크기가 기 설정된 기준 값 미만인 경우 코드 제어부(130)는 코드 발생부(110)의 소프트웨어 ECC 발생부(112)를 구동시켜 읽어드린 데이터에 대한 에러정정코드를 계산(S306)한다. 즉, 소프트웨어 ECC 발생부(112)는 코드 제어부(130)의 제어에 따라 구동되어 읽어드린 데이터에 대한 에러정정코드를 소프트웨어 ECC 방법으로 계산한다.
에러 검출 및 정정부(140)는 읽기 요청한 데이터에 대한 에러정정코드를 낸드 플래시 메모리(100)에서 읽어드린 후 읽어드린 에러정정코드와 계산된 에러정정코드를 비교하여 일치하는지를 판단한다(S308).
S308의 판단 결과, 일치하는 경우 인터페이스(105)는 읽기 요청한 데이터를 낸드 플래시 메모리(100)에서 읽어드린 후 출력(S310)하며, 일치하지 않을 경우 에러 검출 및 정정부(140)에 의해 에러정정을 수행(S312)한 후 S310으로 진행한다.
한편, S304의 판단 결과, 데이터의 크기가 기 설정된 기준 값 이상인 경우 코드 제어부(130)는 코드 발생부(110)의 하드웨어 ECC 발생부(114)를 구동시켜 읽어드린 데이터에 대한 에러정정코드를 계산한다. 즉, 하드웨어 ECC 발생부(114)는 코드 제어부(130)의 제어에 따라 구동되어 읽어드린 데이터에 대한 에러정정코드를 하드웨어 ECC 방법으로 계산(S314)한다. 코드 제어부(130)에 의해 읽어드린 에러정정코드와 계산된 에러정정코드는 에러 검출 및 정정부(140)에 제공되며, S308로 진행하여 이후 단계를 수행한다.
본 발명의 실시 예에 따르면, 크기가 고정된 데이터이면서 그 크기가 기 설정된 기준 값 미만인 경우 소프트웨어 ECC 방법으로 에러정정을 수행하여 데이터를 출력함으로써, 데이터 영역의 크기보다 작은 데이터에 대한 에러 정정 성능을 향상시킬 수 있다.
상기와 같은 본 발명의 실시 예가 적용된 예에 대해 도 4a 및 도 4b를 참조하여 설명하면, UBI/UBIFS 낸드 플래시 파일 시스템의 경우 마운트 과정에서 각 블록의 VID 헤더와 EC 헤더를 읽어야 한다. 이 VID 헤더와 EC 헤더는 크기가 64바이트로 구성되어 있는데, 수백 혹은 수천 바이트 크기를 갖는 페이지에 비해 매우 작은 크기이다. 이러한 경우 본 발명의 실시 예를 적용하는 경우 도 4a 및 도 4b에 도시된 바와 같이 읽어야 하는 데이터의 양이 현저히 줄어들고 결과적으로 마운트 속도를 단축시킬 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 예를 들어 당업자는 각 구성요소의 재질, 크기 등을 적용 분야에 따라 변경하거나, 개시된 실시형태들을 조합 또는 치환하여 본 발명의 실시예에 명확하게 개시되지 않은 형태로 실시할 수 있으나, 이 역시 본 발명의 범위를 벗어나지 않는 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것으로 한정적인 것으로 이해해서는 안 되며, 이러한 변형된 실시예들은 본 발명의 특허청구범위에 기재된 기술사상에 포함된다고 하여야 할 것이다.
100 : 낸드 플래시 메모리
105 : 인터페이스
110 : 코드 발생부
120 : 기록 제어부
130 : 코드 제어부
140 : 에러 검출 및 정정부

Claims (12)

  1. 낸드 플래시 메모리의 데이터 영역에 데이터를 쓰고자 할 경우 상기 데이터의 크기가 기준 값 미만인지를 판단하는 단계와,
    상기 데이터의 크기가 기준 값 미만인 경우 소프트웨어 ECC를 이용하여 상기 데이터에 대한 에러정정코드를 계산하는 단계와,
    상기 데이터를 상기 데이터 영역에 기록함과 더불어 상기 에러정정코드를 상기 낸드 플래시 플래시에 기록하는 단계를 포함하는
    낸드 플래시 메모리의 데이터 입력 방법.
  2. 제 1 항에 있어서,
    상기 데이터의 크기가 기준 값 이상인 경우 하드웨어 ECC를 이용하여 상기 데이터에 대한 에러정정코드를 계산하는 단계를 수행한 후 상기 기록하는 단계로 진행하는 것을 특징으로 하는
    낸드 플래시 메모리의 데이터 입력 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 기준 값은, 상기 낸드 플래시 메모리의 데이터 영역 크기 또는 상기 데이터 영역 크기보다 작은 값인 것을 특징으로 하는
    낸드 플래시 메모리의 데이터 입력 방법.
  4. 데이터가 저장되는 낸드 플래시 메모리와,
    상기 낸드 플래시 메모리의 데이터 입력을 제어 및 중계하는 인터페이스와,
    상기 인터페이스와 동기화되어 데이터 입력 시 소프트웨어 ECC 방법으로 에러정정코드를 발생시키는 소프트웨어 ECC 발생부와,
    상기 입력 데이터에 대한 쓰 과정에서 하드웨어 ECC 방법으로 에러정정코드를 발생시키는 하드웨어 ECC 발생부와,
    상기 인터페이스를 통해 입력되는 데이터의 크기와 기 설정된 기준 값간의 비교를 통해 상기 소프트웨어 ECC 발생부 또는 상기 하드웨어 ECC 발생부를 선택적으로 구동시켜 에러정정코드를 발생시키고, 상기 발생된 에러정정코드와 상기 입력되는 데이터가 상기 낸드 플래시 메모리에 기록되도록 상기 인터페이스를 제어하는 기록 제어부를 포함하는
    임베디드 시스템.
  5. 제 4 항에 있어서,
    상기 기록 제어부는,
    상기 입력된 데이터의 크기가 기 설정된 기준 값 미만 인 경우 상기 소프트웨어 ECC 발생부를 구동시키고, 상기 입력된 데이터의 크기가 상기 기준 값 이상인 경우 상기 하드웨어 ECC 발생부를 구동시켜 상기 에러정정코드를 발생시키는 것을 특징으로 하는
    임베디드 시스템.
  6. 제 4 항 또는 제 5 항에 있어서,
    상기 기준 값은 상기 낸드 플래시 메모리의 데이터 영역 크기 또는 상기 데이터 영역의 크기보다 작은 값인 것을 특징으로 하는
    임베디드 시스템.
  7. 낸드 플래시 메모리에 기록된 데이터를 읽고자 하는 경우 상기 데이터의 크기가 기준 값 미만인지를 판단하는 단계와,
    상기 데이터와 기록된 에러정정코드를 읽어드리는 단계와,
    상기 읽어드린 데이터의 크기가 기준 값 미만인 경우 상기 읽어드린 데이터에 대한 에러정정코드를 소프트웨어 ECC 방법으로 계산하는 단계와,
    상기 계산된 에러정정코드와 상기 읽어드린 에러정정코드간의 비교를 통해 에러 검출 및 정정을 수행하는 단계를 포함하는
    낸드 플래시 메모리의 데이터 출력 방법.
  8. 제 7 항에 있어서,
    상기 데이터의 크기가 기준 값 이상인 경우 상기 읽어드린 데이터의 에러정정코드를 하드웨어 ECC 방법을 이용하여 계산하는 단계를 포함하는
    낸드 플래시 메모리의 데이터 출력 방법.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 기준 값은, 상기 낸드 플래시 메모리의 데이터 영역 크기 또는 상기 데이터 영역 크기보다 작은 값인 것을 특징으로 하는
    낸드 플래시 메모리의 데이터 출력 방법.
  10. 다수의 데이터와 상기 데이터 각각에 대한 에러정정코드를 저장하고 있는 낸드 플래시 메모리와,
    상기 낸드 플래시 메모리의 데이터 출력을 제어 및 중계하는 인터페이스와,
    상기 인터페이스와 동기화되어 데이터 출력 시 소프트웨어 ECC 방법으로 에러정정코드를 발생시키는 소프트웨어 ECC 발생부와,
    상기 인터페이스와 동기화되어 데이터 출력 시 하드웨어 ECC 방법으로 에러정정코드를 발생시키는 하드웨어 ECC 발생부와,
    상기 읽어드린 데이터의 크기에 의거하여 상기 소프트웨어 ECC 발생부 또는 상기 하드웨어 ECC 발생부를 선택적으로 구동시켜 상기 읽어드린 데이터에 대한 에러정정코드를 발생시키는 코드 제어부와,
    상기 코드 제어부에서 발생된 에러정정코드와 상기 낸드 플래시 메모리에 저장된 에러정정코드간의 비교를 통해 에러 검출 및 정정을 수행하는 에러 검출 및 정정부를 포함하는
    임베디드 시스템.
  11. 제 10 항에 있어서,
    상기 코드 제어부는, 상기 읽어드린 데이터의 크기가 기 설정된 기준 값 미만인 경우 상기 소프트웨어 ECC 발생부를 구동시켜 상기 읽어드린 데이터의 에러정정코드를 계산하며, 상기 기준 값 이상인 경우 상기 하드웨어 ECC 발생부를 구동시켜 상기 읽어드린 데이터의 에러정정코드를 계산하는
    임베디드 시스템.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 기준 값은 상기 낸드 플래시 메모리의 데이터 영역 크기 또는 상기 데이터 영역 크기보다 작은 값인 것을 특징으로 하는
    임베디드 시스템.


KR1020100099612A 2010-10-13 2010-10-13 낸드 플래시 메모리의 데이터 입출력 방법과 그 방법을 이용한 임베디드 시스템 KR101401379B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100099612A KR101401379B1 (ko) 2010-10-13 2010-10-13 낸드 플래시 메모리의 데이터 입출력 방법과 그 방법을 이용한 임베디드 시스템
US12/984,984 US8850291B2 (en) 2010-10-13 2011-01-05 Data input and output method of NAND flash memory and embedded system using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100099612A KR101401379B1 (ko) 2010-10-13 2010-10-13 낸드 플래시 메모리의 데이터 입출력 방법과 그 방법을 이용한 임베디드 시스템

Publications (2)

Publication Number Publication Date
KR20120038076A true KR20120038076A (ko) 2012-04-23
KR101401379B1 KR101401379B1 (ko) 2014-05-30

Family

ID=45935177

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100099612A KR101401379B1 (ko) 2010-10-13 2010-10-13 낸드 플래시 메모리의 데이터 입출력 방법과 그 방법을 이용한 임베디드 시스템

Country Status (2)

Country Link
US (1) US8850291B2 (ko)
KR (1) KR101401379B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101979734B1 (ko) 2012-08-07 2019-05-17 삼성전자 주식회사 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법
US9417945B2 (en) 2014-03-05 2016-08-16 International Business Machines Corporation Error checking and correction for NAND flash devices
KR20180031412A (ko) 2016-09-20 2018-03-28 삼성전자주식회사 메모리 컨트롤러의 동작 방법과, 이를 포함하는 장치들의 동작 방법들
US10606690B2 (en) * 2017-09-29 2020-03-31 Intel Corporation Memory controller error checking process using internal memory device codes
CN112540723B (zh) * 2020-11-06 2023-02-03 深圳市民德电子科技股份有限公司 一种NOR Flash坏点补偿的方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4047151A (en) * 1974-12-24 1977-09-06 Rydbeck Nils R C Adaptive error correcting transmission system
US5828677A (en) * 1996-03-20 1998-10-27 Lucent Technologies Inc. Adaptive hybrid ARQ coding schemes for slow fading channels in mobile radio systems
KR100246184B1 (ko) 1997-07-02 2000-03-15 김영환 리드-솔로몬 에러 정정 코드를 이용한 프레쉬 메모리 시스템의 운영 방법
JP3998307B2 (ja) * 1997-12-25 2007-10-24 富士通株式会社 磁気ディスク装置及び磁気ディスク装置のエラー訂正方法
US6904492B2 (en) * 2001-12-19 2005-06-07 Hewlett-Packard Development Company, L.P. Write-once memory device including non-volatile memory for temporary storage
US20060143368A1 (en) * 2004-12-23 2006-06-29 M-Systems Flash Disk Pioneers Ltd. Method for using a multi-bit cell flash device in a system not designed for the device
US7631245B2 (en) * 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
JP4901334B2 (ja) * 2006-06-30 2012-03-21 株式会社東芝 メモリコントローラ
US9356730B2 (en) * 2007-01-30 2016-05-31 Telefonaktiebolaget Lm Ericsson (Publ) Method for adding error protection bits to match codeword length
KR20090014828A (ko) 2007-08-07 2009-02-11 삼성전자주식회사 에러 정정 코드를 암호화하는 플래시 메모리 시스템 및플래시 메모리 시스템의 암호화 방법
KR100949471B1 (ko) * 2008-04-03 2010-03-29 주식회사 코아로직 소프트웨어(s/w) 에러정정코드(ecc)를 이용한낸드 플래시에서의 데이터 입출력 방법 및 그 방법을이용한 임베디드 시스템

Also Published As

Publication number Publication date
US20120096333A1 (en) 2012-04-19
KR101401379B1 (ko) 2014-05-30
US8850291B2 (en) 2014-09-30

Similar Documents

Publication Publication Date Title
KR101401379B1 (ko) 낸드 플래시 메모리의 데이터 입출력 방법과 그 방법을 이용한 임베디드 시스템
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
US11573734B2 (en) Method for improving read-retry of flash memory and related controller and storage device
KR20100073662A (ko) 프로그래머 장치
JP2009301194A (ja) 半導体記憶装置の制御システム
US9983560B2 (en) Positioning device and PLC system
KR20130069364A (ko) 비휘발성 반도체 기억 장치 및 그 관리 방법
JP5330428B2 (ja) データ記憶装置及び誤り検出訂正方法
JP2008070561A5 (ko)
JP5915490B2 (ja) 電子制御装置
US20100138672A1 (en) Raid controller, storage control device, and storage control method
JP6941971B2 (ja) 半導体記憶装置、メモリコントローラ及びメモリの監視方法
CN103440181A (zh) 一种文件修改的方法及系统
JPWO2014010077A1 (ja) ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム
JP2008310896A (ja) 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法
JP2012252557A (ja) メモリコントローラ
JP6054753B2 (ja) 半導体装置及びデータアクセス方法
CN111736763B (zh) 一种存储数据读取控制方法和装置
JP4742553B2 (ja) 記憶装置
JP2012113476A (ja) データ記憶装置、メモリ制御装置及びメモリ制御方法
JP2009223435A (ja) データ記憶方法及び装置、並びにプログラム
US10019186B2 (en) Data maintenance method for error control and data storage device using the same
KR20100138145A (ko) 플래시 메모리 프리프로세싱 시스템 및 그 방법
KR100736093B1 (ko) Nand 플래시 제어 장치 및 방법
JP4687117B2 (ja) Icテスタ

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: 20170427

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee