KR20080100079A - 낸드 플래시 메모리에 프로그램 코드 및 매스 데이터를기록하여 시스템을 운영하는 방법 및 상기 방법을 수행하는시스템 - Google Patents

낸드 플래시 메모리에 프로그램 코드 및 매스 데이터를기록하여 시스템을 운영하는 방법 및 상기 방법을 수행하는시스템 Download PDF

Info

Publication number
KR20080100079A
KR20080100079A KR1020070046192A KR20070046192A KR20080100079A KR 20080100079 A KR20080100079 A KR 20080100079A KR 1020070046192 A KR1020070046192 A KR 1020070046192A KR 20070046192 A KR20070046192 A KR 20070046192A KR 20080100079 A KR20080100079 A KR 20080100079A
Authority
KR
South Korea
Prior art keywords
stored
data
buffer
code
flash memory
Prior art date
Application number
KR1020070046192A
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 KR1020070046192A priority Critical patent/KR20080100079A/ko
Publication of KR20080100079A publication Critical patent/KR20080100079A/ko

Links

Images

Classifications

    • 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

낸드 플래시 메모리(NAND Flash Memory)에 프로그램 코드(Program Code) 및 매스 데이터(Mass Data)를 기록하여 시스템을 운영하는 방법 및 상기 방법을 수행하는 시스템이 개시된다. 적어도 하나의 어플리케이션 프로그램을 수행하는 시스템의 운영방법에 따르면, 멀티레벨 셀(Multi-Level Cell, MLC)을 포함하는 낸드 플래시 메모리가 장착되며, 상기 멀티레벨 셀은, 각각의 셀에 하나의 비트의 데이터만을 저장하는 제1 영역 및 각각의 셀에 복수의 비트의 데이터를 저장하는 제2 영역을 포함하며, 상기 제1 영역에는 상기 시스템의 운영 및/또는 프로그램 수행을 위한 코드가 저장되는 것을 특징으로 한다.

Description

낸드 플래시 메모리에 프로그램 코드 및 매스 데이터를 기록하여 시스템을 운영하는 방법 및 상기 방법을 수행하는 시스템{Method for Operating System with Writing Program Code and Mass Data on NAND Flash Memory and System for Executing the Method}
도 1은 어플리케이션 프로그램을 수행하기 위한 종래의 시스템을 나타내는 블록도이다.
도 2는 싱글레벨 및 멀티레벨로 프로그램되는 플래시 메모리 셀의 문턱전압 산포를 나타내는 그래프이다.
도 3은 본 발명의 일실시예에 따른 시스템을 나타내는 블록도이다.
도 4는 싱글레벨 셀 및 멀티레벨 셀을 프로그램하는 경우의 특성을 나타내는 표이다.
도 5는 최하위 비트(Least Significant Bit) 프로그램 수행에 따른 문턱전압의 산포를 나타내는 그래프이다.
도 6은 낸드 플래시 메모리에 코드를 기록하는 일예를 나타내는 블록도이다.
도 7은 본 발명의 일실시예에 따른 시스템의 운영방법을 나타내는 플로우 차트이다.
* 도면의 주요부분에 대한 부호의 설명 *
100: 시스템
110: 중앙 처리장치(Central Processing Unit, CPU)
120: 낸드 플래시 메모리
121: 멀티레벨 셀(Multi-Level Cell, MLC)
121a: 제1 영역 121b: 제2 영역
130: DRAM 131: 버퍼
본 발명은 멀티레벨 셀을 포함하는 낸드 플래시 메모리가 장착된 시스템에 있어서, 상기 낸드 플래시 메모리에 시스템의 운영체제(OS) 및 프로그램 코드를 기록하여 시스템을 운영하는 방법 및 상기 방법을 수행하는 시스템 관한 것이다.
일반적으로 중앙 처리장치(Central Processing Unit, CPU)와 플래시 메모리 장치를 구비하며 소정의 어플리케이션 프로그램(Application Program)을 수행하는 시스템은, 상기 시스템을 구동하기 위한 운영체제(Operating System, 이하 OS) 코드와 소정의 어플리케이션 프로그램을 수행하기 위한 프로그램 코드가 시스템 내부에 저장되어진다. 또한, OS 코드나 프로그램 코드는 메모리 장치에 안정적으로 기록되어야 하며, 상기 저장된 코드들을 독출함에 있어서 그 출력의 안정성이 충분히 확보되어야 한다. 특히, 프로그램 코드를 수행하는 경우에는 기록/독출이 빈번하게 이루어지므로, 프로그램 코드는 매스 데이터(Mass Data)를 저장하기 위한 메모리와 는 서로 다른 별도의 메모리에 저장되는 것이 일반적이다.
도 1은 어플리케이션 프로그램을 수행하기 위한 종래의 시스템을 나타내는 블록도이다. 도시된 바와 같이 종래의 시스템(10)은, 중앙 처리장치(11)와, 코드 메모리(12)와, 데이터 메모리(13) 및 DRAM(14) 등을 구비할 수 있다.
도시된 코드 메모리(12)에는 시스템의 부팅을 위한 부트 코드(Boot Code)를 포함하는 OS 코드 및 소정의 어플리케이션 프로그램을 수행하기 위한 프로그램 코드가 저장된다. 시스템을 안정적으로 구동하기 위하여 상기 코드 메모리(12)는 기록/독출 동작 속도가 빠르며 동작의 안정성 및 내구성이 우수한 메모리 장치가 사용되는데, 일예로서 상기 특성을 대체적으로 만족시키는 NOR 플래시 메모리 장치가 사용된다.
한편 상기 데이터 메모리(13)에는 각종 멀티미디어 데이터를 포함하여 대용량의 데이터가 저장된다. 데이터 메모리(13)에 저장된 데이터의 기록/독출 동작의 성능(Performance)이나 장치의 내구성(Endurance)은 코드 메모리(12)에 비해 다소 낮더라도 시스템 구동에는 큰 영향을 미치지 않으므로, 데이터 메모리(13)로서 일반적으로 대용량에 유리한 NAND 플래시 메모리 장치가 사용될 수 있다.
도 2는 싱글레벨 및 멀티레벨로 프로그램되는 플래시 메모리 셀의 문턱전압 산포를 나타내는 그래프이다. 대용량의 데이터를 저장하기 위한 NAND 플래시 메모리 장치에서는 그 저장용량을 증가시키기 위하여 멀티레벨 셀(Multi Level Cell, MLC) 기술이 널리 사용된다. MLC 기술은 하나의 셀을 여러 단위의 문턱전압으로 프로그램하여, 하나의 메모리 셀에 2 이상의 멀티비트를 저장하는 것으로서, 하나의 메모리 셀에 하나의 비트만을 저장하는 싱글레벨 셀(Single Level Cell, SLC) 기술과 구분된다.
도 2의 (a)는 싱글레벨 셀의 문턱전압(threshold voltage) 분포도를 나타내며, (b)는 멀티레벨 셀의 문턱전압(threshold voltage) 분포도를 나타낸다.
(a)에 도시된 바와 같이 SLC 방식의 플래시 메모리에서는 메모리 셀을 [0]과 [1]의 두 가지 상태의 문턱전압으로 프로그램하여 데이터를 저장하므로, 각각의 문턱전압 상태의 마진을 충분히 확보할 수 있다. 또한 프로그램된 데이터의 문턱전압 산포가 넓어도 무방하므로 ISPP(Incremental Step Pulse Program) 전압의 간격을 MLC 방식에 비해 크게할 수 있다.
반면, (b)에 도시된 바와 같이 MLC 방식의 플래시 메모리에서는 메모리 셀을 [00],[01],[10],[11]의 네 가지 상태의 문턱전압으로 프로그램하여 데이터를 저장한다. 이에 따라 MLC 방식은 SLC 방식에 비하여 문턱전압 상태의 마진이 작아지므로 데이터 독출시 그 신뢰성이 저하될 수 있다. 또한 각 데이터 상태의 문턱전압 산포가 좁아지도록 프로그램해야 하므로, ISPP(Incremental Step Pulse Program) 전압의 간격을 작게 설정해야 하며, 이에 따라 프로그램 동작의 속도가 저하될 수 있다.
상술한 바와 같이, NAND 플래시 메모리는 집적도가 높아 대용량의 데이터를 저장하기에 유리하나, 내구성이나 기록/독출 동작의 성능 면에서 OS 코드 및 프로그램 코드를 저장하기에는 불리하다. 특히 MLC 방식의 NAND 플래시 메모리에 상기 OS 코드 및 프로그램 코드를 저장하게 되면, 시스템 구동시 그 성능이 저하되거나 에러가 발생할 수 있다. 이에 따라 종래의 경우에는 OS 코드 및 프로그램 코드 등을 저장하기 위하여 시스템 내에 NOR 메모리 등의 별도의 메모리 장치를 구비하였으므로, 상기 시스템을 구현하기 위한 단가가 상승하는 문제가 발생하거나 시스템 전체의 사이즈를 증가시키는 문제가 발생하였다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 멀티레벨 셀을 포함하는 NAND 플래시 메모리를 사용하여 OS 코드 및/또는 프로그램 코드를 저장하여 시스템을 운영하는 방법 및 상기 방법을 수행하는 시스템을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 적어도 하나의 어플리케이션 프로그램을 수행하기 위한 본 발명의 일실시예에 따른 시스템의 운영방법에 따르면, 상기 시스템은 멀티레벨 셀(Multi-Level Cell, MLC)을 포함하는 낸드 플래시 메모리가 장착되고, 상기 멀티레벨 셀은, 각각의 셀에 하나의 비트의 데이터만을 저장하는 제1 영역 및 각각의 셀에 복수의 비트의 데이터를 저장하는 제2 영역을 포함하며, 상기 제1 영역에는 상기 시스템의 운영 및/또는 프로그램 수행을 위한 코드가 저장되는 것을 특징으로 한다.
바람직하게는, 상기 제1 영역의 멀티레벨 셀을 프로그램함에 있어서, 최하위 비트(Least Significant Bit)만을 프로그램하는 것을 특징으로 한다.
또한 바람직하게는, 상기 멀티레벨 셀에 포함되는 제1 영역은, 상기 시스템 에 구비되는 중앙 처리장치(Central Processing Unit)에 의해 그 크기가 가변되는 것을 특징으로 한다.
한편, 상기 시스템은 데이터를 일시 저장하기 위한 버퍼를 구비할 수 있으며, 상기 시스템의 운영 및/또는 프로그램 수행시 발생하는 메타 데이터(Mete Data)를 상기 버퍼에 일시 저장하고, 상기 버퍼에 저장된 메타 데이터를 상기 낸드 플래시 메모리에 기록하는 것을 특징으로 한다.
바람직하게는, 상기 메타 데이터가 일정한 크기로 상기 버퍼에 저장된 후, 상기 메타 데이터가 상기 낸드 플래시 메모리에 기록되는 것을 특징으로 한다.
한편, 상기 제1 영역에 저장되는 코드들 중 적어도 하나의 코드는, 상기 제1 영역 내에 복수 개로 복사되어 저장되는 것을 특징으로 한다.
바람직하게는 상기 복수 개로 복사되어 저장되는 코드는, 상기 제1 영역내에서 각각 서로 다른 셀 블록에 저장되는 것을 특징으로 한다.
또한 바람직하게는, 상기 복수 개로 복사되어 저장되는 코드는, 부트코드(Boot Code) 및/또는 기본 OS 이미지 코드(Image Code)를 포함하는 것을 특징으로 한다.
한편, 본 발명의 다른 실시예에 따른 시스템의 운영방법에 따르면, 적어도 하나의 어플리케이션 프로그램을 수행하기 위한 시스템은 프로그램 코드 및 데이터 등을 저장하기 위한 메모리부와 데이터를 일시 저장하기 위한 버퍼를 구비하며, 상기 시스템의 운영 및/또는 프로그램 수행시 발생하는 메타 데이터(Mete Data)를 상기 버퍼에 일시 저장하고, 상기 버퍼에 일시 저장된 메타 데이터가 일정한 크기에 도달하면, 상기 버퍼에 저장된 메타 데이터를 상기 메모리부에 기록하는 것을 특징으로 한다.
한편, 적어도 하나의 어플리케이션 프로그램을 수행하는 본 발명의 일실시예에 따른 시스템은, 중앙 처리장치(Central Processing Unit) 및 멀티레벨 셀(Multi-Level Cell, MLC)을 포함하며, 상기 멀티레벨 셀은 각각의 셀에 하나의 비트의 데이터만을 저장하는 제1 영역 및 각각의 셀에 복수의 비트의 데이터를 저장하는 제2 영역을 포함하는 낸드 플래시 메모리를 구비하고, 상기 시스템의 운영 및/또는 프로그램 수행을 위한 코드는 상기 낸드 플래시 메모리의 제1 영역에 저장되는 것을 특징으로 한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 3은 본 발명의 일실시예에 따른 시스템을 나타내는 블록도이다. 도시된 바와 같이 적어도 하나의 어플리케이션 프로그램을 수행하기 위한 상기 시스템(100)은, 중앙 처리장치(CPU, 110)와, 멀티레벨 셀(MLC)을 포함하는 낸드(NAND) 플래시 메모리(120) 및 DRAM(130) 등을 구비할 수 있다.
도시된 낸드(NAND) 플래시 메모리(120)는 메모리 셀 어레이(121)을 포함하 며, 특히 대용량의 데이터를 저장하기에 유리한 멀티레벨 셀을 포함한다. 또한 상기 메모리 셀 어레이(121)는 제1 영역(121a) 및 제2 영역(121b)을 포함하며, 상기 제1 영역(121a)에 구비되는 메모리 셀 각각에는 하나의 비트이 데이터만이 저장되며, 제2 영역(121b)에 구비되는 메모리 셀 각각에는 복수의 비트의 데이터가 저장된다.
메모리 셀 어레이(121)의 제1 영역(121a)은 멀티레벨 셀을 포함하지만, 상기 제1 영역(121a)의 메모리 셀 각각에는 하나의 비트의 데이터만이 저장되며, 일예로서 제1 영역(121a)의 멀티레벨 셀을 프로그램함에 있어서, 최하위 비트(Least Significant Bit)만을 프로그램할 수 있다. 이에 따라 제1 영역(121a)의 멀티레벨 셀을 SLC 방식과 같이 2 가지의 문턱전압 상태로(일예로서 [11],[10]) 프로그램하며, 제1 영역(121a)에 저장된 데이터를 독출하는 경우에도 SLC 방식과 유사하게 하나의 리드전압만을 사용하여 데이터를 독출한다.
특히 시스템의 부팅을 위한 부트 코드(Boot Code)를 포함하는 시스템의 구동을 위한 운영체제(OS) 코드나 소정의 어플리케이션 프로그램(Program)을 수행하기 위한 프로그램 코드는 메모리 셀 어레이(121)의 제1 영역(121a)에 저장된다. 상기 OS 코드 및 프로그램 코드는 시스템 구동시 빈번하게 기록/독출 동작이 이루어지므로, 상기 코드들을 저장하기 위해서는 메모리 장치의 기록/독출 동작 성능이 우수하여야 한다. 본 발명의 일실시예에 따르면, 상기 코드들을 멀티레벨 셀의 제1 영역(121a)에 저장함에 있어서 SLC 방식에 따라 프로그램을 수행하거나 기록동작을 수행하므로, MLC 방식에 의해 기록/독출 동작을 수행하는 경우에 비해 그 성능을 향상시킬 수 있다. 즉, 제1 영역(121a)의 각각의 메모리 셀은 하나의 비트만을(일예로서, LSB) 저장하기 때문에 기록/독출 동작 성능이 MLC 방식에 비해 향상되므로, MLC 방식의 낸드 플래시 메모리에 상기 코드들을 저장하여도 시스템 성능 저하를 최소화할 수 있다.
한편, 메모리 셀 어레이(121)의 제2 영역(121b)은 멀티레벨 셀을 포함하며, 제2 영역(121b)의 각각의 셀은 복수의 비트의 데이터를 저장한다. 이에 따라 SLC 방식에 비해 대용량이 데이터 저장이 가능하므로며, 상기 제2 영역(121b)에는 각종 멀티미디어 데이터를 포함하여 대용량의 데이터가 저장된다.
DRAM(130)은 데이터 처리를 위한 메모리 장치로서 시스템(100) 내에 구비될 수 있다. 또한 DRAM(130)의 일부 영역은 버퍼(131)로 사용되며, 특히 상기 버퍼(131)는 시스템(100)의 운영 및/또는 프로그램 수행시 발생하는 메타 데이터(Mete Data)를 일시 저장한다. 즉, 시스템(100)의 운영 및/또는 프로그램 수행시 레지스트리(Registry), 플래그 정보(Flag Information) 및 문서정보 등의 메타 데이터가 메모리 장치에 빈번하게 백업(Back-up)되어야 하는데, 상기 버퍼(131)는 메타 데이터가 실제 메모리 장치에 백업되기 전에 이를 일시 저장한다.
상기와 같은 메타 데이터가 도 3에 도시된 낸드 플래시 메모리(120)에 저장되는 경우, 상기 메타 데이터는 버퍼(131)에 일시 저장되고, 버퍼(131)에 저장된 메타 데이터가 낸드 플래시 메모리(120)로 기록된다. 특히 바람직하게는, 상기 메타 데이터는 버퍼(131)에 소정의 크기로 일시 저장되며, 상기 소정의 크기로 저장된 메타 데이터를 낸드 플래시 메모리(120)에 기록한다. 시스템 구동시 메타 데이 터는 빈번하게 발생하며 이를 백업하여야 하는데, 상기와 같은 방식에 따르면 낸드 플래시 메모리(120)에 기록되는 메타 데이터의 업데이트 주기를 크게 할 수 있다. 이와 같이 낸드 플래시 메모리(120)에 수행되는 프로그램 횟수를 줄임으로써, 유효 프로그램 횟수 초과에 따른 플래시 메모리 장치의 신뢰성 저하의 문제를 방지할 수 있다.
한편, 메모리 셀 어레이(121) 내에서 제1 영역(121a) 및 제2 영역(121b)은 그 크기가 가변될 수 있다. 자세하게는, 제1 영역(121a)에 저장되는 OS 코드 및 프로그램 코드 등은 이후의 업데이트 과정을 통하여 그 용량이 증가할 수 있는데, 상기 코드들을 저장하기 위한 제1 영역(121a)의 용량이 부족한 경우에는 제2 영역(121b)의 일부를 제1 영역(121a)으로 설정한다. 즉, 제2 영역(121b)의 일부의 메모리 셀이 SLC 방식에 따라 데이터를 기록/독출하도록 한다. 이를 위하여 중앙 처리장치(CPU, 110)는 낸드 플래시 메모리(120)로부터 메모리 셀 어레이(121)의 사용정보, 특히 제1 영역(121a) 및 제2 영역(121b)의 크기라던가, 상기 각 영역에 저장된 데이터의 크기 등의 정보를 입력받을 수 있다. 이에 따라 OS 코드 및 프로그램 코드 등을 저장하기 위한 제1 영역(121a)의 크기가 부족한 경우에는 상기 제1 영역(121a)의 크기를 가변시켜 사용한다.
도 4는 싱글레벨 셀 및 멀티레벨 셀을 프로그램하는 경우의 특성을 나타내는 표이다. 특히 멀티레벨 셀을 프로그램함에 있어서 최하위 비트(Least Significant Bit)를 프로그램하는 경우와 최상위 비트(Most Significant Bit)를 프로그램하는 경우가 도시된다.
도시된 바와 같이 8G/16G 비트의 싱글레벨 셀을 프로그램하는 경우 ISPP(Incremental Step Pulse Program) 전압의 간격은 0.9V로 설정되며, 프로그램 수행시 소요되는 시간(Tprog)는 220 us 특성을 갖는다. 또한 32G 비트의 싱글레벨 셀에서는 ISPP 전압의 간격이 0.9V로 설정되며, 소요시간(Tprog)은 200 us 특성을 갖는다.
한편, 8G/16G 비트의 멀티레벨 셀에 대해 LSB 데이터를 프로그램하는 경우, ISPP 전압의 간격이 0.9V로 설정되며 소요시간(Tprog)은 400 us 특성을 갖는다. 또한 32G 비트의 멀티레벨 셀에 LSB 데이터를 프로그램하는 경우, ISPP 전압의 간격이 0.3V로 설정되며, 소요시간(Tprog)은 800 us 특성을 갖는다.
또한 8G/16G 비트의 멀티레벨 셀에 대해 MSB 데이터를 프로그램하는 경우, ISPP 전압의 간격이 0.3V로 설정되며 소요시간(Tprog)은 800 us 특성을 갖는다. 또한 32G 비트의 멀티레벨 셀에 MSB 데이터를 프로그램하는 경우, ISPP 전압의 간격이 0.3V로 설정되며, 소요시간(Tprog)은 1 ms 특성을 갖는다.
도시된 바와 같이 멀티레벨 셀을 포함하는 낸드 플래시 메모리는, 각각의 메모리 셀에 복수 비트의 데이터(일예로서 2비트의 데이터)를 저장하는 경우에 그 프로그램 소요시간이 증가하게 된다. 특히 MSB 데이터를 프로그램하는 경우에는 ISPP 전압의 간격을 작게 설정해야 하며 그 프로그램 소요시간은 LSB 데이터를 프로그램하는 경우에 비해 커지게 된다. 이에 따라 본 발명의 일실시예에서는, 멀티레벨 셀을 포함하는 제1 영역(121a)에 대해 SLC 방식과 같이 기록/독출 동작을 수행하도록 한다. 특히 제1 영역(121a)의 각각의 메모리 셀에 하나의 비트(특히 LSB 데이터)만 을 기록함으로써, 멀티비트의 데이터를 프로그램하는 경우에 비해 기록/독출 동작의 성능이 향상되도록 한다. 또한 OS 코드 및 프로그램 코드 등을 제1 영역(121a)에 저장함으로써, 시스템 성능의 저하를 최소화하면서 상기 코드들을 MSB 방식의 낸드 플래시 메모리에 저장할 수 있다. 이로써 상기 시스템(100)이 상기 코드들을 저장하기 위한 별도의 메모리 장치를 구비할 필요가 없게 된다.
도 5는 최하위 비트(Least Significant Bit) 프로그램 수행에 따른 문턱전압의 산포를 나타내는 그래프이다. 도시된 바와 같이 제1 영역(121a)에 LSB 데이터만이 저장되는 경우, 데이터 상태는 각각 [11] 및 [10]만이 존재하게 된다. 이에 따라 데이터 상태 각각의 문턱전압 사이의 마진확보를 넓게할 수 있으며 독출동작시 그 신뢰성이 향상된다. 반면에 제2 영역(121b)에는 복수의 비트의 데이터(일예로서, LSB 및 MSB 데이터)가 저장되므로, 점선으로 표시된 데이터 상태 [01] 및 [00]을 포함하여 전체 데이터 상태는 4 개가 존재한다. 각각의 메모리 셀에 복수의 비트의 데이터를 저장하므로 대용량의 데이터를 저장하기에 유리하나, 상기 메모리 셀에 데이터를 기록하거나 독출하는 동작의 성능은 저하된다. 상기 특성에 근거하여, 기록/독출 동작의 높은 성능이 요구되는 OS 코드 및 프로그램 코드 등은 제1 영역(121a)에 저장하며, 큰 저장공간을 필요로 하는 멀티미디어 데이터 등의 매스 데이터는 제2 영역(121b)에 저장한다.
도 6은 낸드 플래시 메모리에 코드를 기록하는 일예를 나타내는 블록도이다. 시스템 내의 메모리 장치에 저장되는 부트코드(Boot Code)나 기본 OS 이미지 코드 등에 에러가 발생하게 되면, 시스템을 구동하는 경우에 있어서 치명적인 오류를 발 생하게 된다.
상기와 같은 치명적인 오류 발생을 방지하기 위하여, 시스템(100)의 부팅을 위한 부트코드(Boot Code) 및/또는 기본 OS 이미지 코드 등은 상기 낸드 플래시 메모리(120)에 복수 개로 복사되어 저장된다. 일예로서 도 3에 도시된 바와 같은 메모리 셀 어레이(121)는 소정의 크기를 갖는 제1 영역(121a) 및 제2 영역(121b)을 포함하며, 상술하였던 바와 같이 제1 영역(121a)은 멀티레벨 셀을 포함하나 각각의 메모리 셀에 대해 LSB 데이터 만을 프로그램하므로 SLC 방식과 같이 기록/독출 동작이 수행된다.
상기 부트코드(Boot Code) 및/또는 기본 OS 이미지 코드 등은 바람직하게는 제1 영역(121a)에 저장된다. 또한 바람직하게는 상기 제1 영역(121a)은 복수의 블록(BLK0, BLK1,..)을 구비할 수 있으며, 상기 복수 개로 복사된 코드는 제1 영역(121a)내의 복수의 블록(BLK0, BLK1,..)에 대하여 각각 서로 다른 블록에 저장되도록 한다. 이에 따라 제1 영역(121a) 중 부트코드(Boot Code)가 기록된 블록에 배드블록(Bad Block)이 발생하여도, 다른 블록에 저장된 부트코드(Boot Code)를 이용할 수 있으므로 시스템의 치명적인 오류를 방지할 수 있다. 한편, 도 6에서는 복사, 저장되는 코드로서 부트코드(Boot Code) 만을 도시하고 있으나, 에러발생시 시스템에 치명적인 영향을 미치는 기타 다른 코드들이 제1 영역(121a)의 복수의 블록에 각각 복사되어 저장될 수 있다.
도 7은 본 발명의 일실시예에 따른 시스템의 운영방법을 나타내는 플로우 차트이다. 도시된 바와 같이 시스템에 초기 파워가 인가되면, 중앙 처리장치(CPU)는 시스템 내에 구비되는 낸드 플래시 메모리에 기록된 부트코드를 읽어들이고 이를 실행한다(S11). 상술하였던 바와 같이 낸드 플래시 메모리는 멀티레벨 셀을 포함하는 메모리 셀 어레이를 구비하며, 상기 메모리 셀 어레이는 각각의 메모리 셀에 하나의 비트의 데이터만을 저장하는 제1 영역과, 각각의 메모리 셀에 복수의 비트의 데이터를 저장하는 제2 영역을 포함한다. 부트 코드를 포함하는 OS 코드 및 소정의 어플리케이션 프로그램을 수행하기 위한 프로그램 코드는 상기 제1 영역에 저장된다.
부트 코드 수행에 따라 시스템의 부팅이 완료되면, 상기 제1 영역에 저장된 OS 코드 및 프로그램 코드 등을 수행한다(S12). 또한 소정의 어플리케이션 프로그램을 수행하기 위하여 제2 영역에 저장되는 매스 데이터가 억세스된다(S13).
시스템이 OS 코드 및 프로그램 코드 등을 수행하게 되면 메타 데이터(Mete Data)가 빈번하게 발생하게 되며, 상기 발생된 메타 데이터는 시스템 내의 소정의 버퍼에 일시 저장된다(S14). 바람직하게는 시스템 내에 구비되는 DRAM의 일부 영역을 상기 버퍼로서 이용할 수 있다.
버퍼에 메타 데이터가 저장되고 나면, 상기 저장된 메타 데이터의 크기가 시스템 내에 기 설정된 값에 해당하는지 판단하는 단계가 수행된다(S15). 상기 판단결과 버퍼에 저장된 메타 데이터의 크기가 아직 일정한 값에 도달하지 못한 경우, 이후 발생하는 메타 데이터는 계속 상기 버퍼에 저장된다. 이후 버퍼에 저장된 메타 데이터의 크기가 일정값에 도달하게 되면, 상기 버퍼에 저장된 메타 데이터를 낸드 플래시 메모리의 메모리 셀 어레이에 저장한다(S16). 상기 메타 데이터의 특 성에 따라서, 상기 메타 데이터는 메모리 셀 어레이의 제1 영역 또는 제2 영역에 기록될 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
상기한 바와 같은 시스템을 운영하는 방법 및 상기 방법을 수행하는 시스템에 따르면, 시스템 성능의 저하를 최소화하면서 NAND 플래시 메모리의 멀티레벨 셀에 OS 코드 및/또는 프로그램 코드를 저장할 수 있으며, 시스템 내에 상기 코드들을 저장하기 위한 별도의 메모리 장치를 필요로 하지 않는 효과가 있다.

Claims (13)

  1. 적어도 하나의 어플리케이션 프로그램을 수행하며, 멀티레벨 셀(Multi-Level Cell, MLC)을 포함하는 낸드 플래시 메모리가 장착된 시스템을 운영하는 방법에 있어서,
    상기 멀티레벨 셀은, 각각의 셀에 하나의 비트의 데이터만을 저장하는 제1 영역 및 각각의 셀에 복수의 비트의 데이터를 저장하는 제2 영역을 포함하며,
    상기 제1 영역에는 상기 시스템의 운영 및/또는 프로그램 수행을 위한 코드가 저장되는 것을 특징으로 하는 시스템 운영방법.
  2. 제1항에 있어서,
    상기 제1 영역의 멀티레벨 셀을 프로그램함에 있어서, 최하위 비트(Least Significant Bit)만을 프로그램하는 것을 특징으로 하는 시스템 운영방법.
  3. 제1항에 있어서,
    상기 멀티레벨 셀에 포함되는 제1 영역은, 상기 시스템에 구비되는 중앙 처리장치(Central Processing Unit)에 의해 그 크기가 가변되는 것을 특징으로 하는 시스템 운영방법.
  4. 제1항에 있어서,
    상기 시스템은 데이터를 일시 저장하기 위한 버퍼를 구비하고,
    상기 시스템의 운영 및/또는 프로그램 수행시 발생하는 메타 데이터(Mete Data)를 상기 버퍼에 일시 저장하며, 상기 버퍼에 저장된 메타 데이터를 상기 낸드 플래시 메모리에 기록하는 것을 특징으로 하는 시스템 운영방법.
  5. 제4항에 있어서,
    상기 메타 데이터가 일정한 크기로 상기 버퍼에 저장된 후, 상기 메타 데이터가 상기 낸드 플래시 메모리에 기록되는 것을 특징으로 하는 시스템 운영방법.
  6. 제1항에 있어서,
    상기 제1 영역에 저장되는 코드들 중 적어도 하나의 코드는, 상기 제1 영역 내에 복수 개로 복사되어 저장되는 것을 특징으로 하는 시스템 운영방법.
  7. 제6항에 있어서,
    상기 복수 개로 복사되어 저장되는 코드는, 상기 제1 영역내에서 각각 서로 다른 셀 블록에 저장되는 것을 특징으로 하는 시스템 운영방법.
  8. 제6항에 있어서,
    상기 복수 개로 복사되어 저장되는 코드는, 부트코드(Boot Code) 및/또는 기본 OS 이미지 코드(Image Code)를 포함하는 것을 특징으로 하는 시스템 운영방법.
  9. 적어도 하나의 어플리케이션 프로그램을 수행하며, 프로그램 코드 및 데이터 등을 저장하기 위한 메모리부와 데이터를 일시 저장하기 위한 버퍼를 구비하는 시스템을 운영하는 방법에 있어서,
    상기 시스템의 운영 및/또는 프로그램 수행시 발생하는 메타 데이터(Mete Data)를 상기 버퍼에 일시 저장하며, 상기 버퍼에 일시 저장된 메타 데이터가 일정한 크기에 도달하면, 상기 버퍼에 저장된 메타 데이터를 상기 메모리부에 기록하는 것을 특징으로 하는 시스템 운영방법.
  10. 적어도 하나의 어플리케이션 프로그램을 수행하는 시스템에 있어서,
    중앙 처리장치(Central Processing Unit); 및
    멀티레벨 셀(Multi-Level Cell, MLC)을 포함하며, 상기 멀티레벨 셀은 각각의 셀에 하나의 비트의 데이터만을 저장하는 제1 영역 및 각각의 셀에 복수의 비트의 데이터를 저장하는 제2 영역을 포함하는 낸드 플래시 메모리를 구비하고,
    상기 시스템의 운영 및/또는 프로그램 수행을 위한 코드는 상기 낸드 플래시 메모리의 제1 영역에 저장되는 것을 특징으로 하는 시스템.
  11. 제10항에 있어서,
    상기 제1 영역에 저장되는 코드들 중 적어도 하나의 코드는, 상기 제1 영역 내에 복수 개로 복사되어 저장되는 것을 특징으로 하는 시스템.
  12. 제10항에 있어서,
    상기 시스템은 데이터를 일시 저장하기 위한 버퍼를 더 구비하며,
    상기 시스템의 운영 및/또는 프로그램 수행시 발생하는 메타 데이터(Mete Data)는 상기 버퍼에 일시 저장되며, 상기 버퍼에 저장된 메타 데이터를 상기 낸드 플래시 메모리에 기록하는 것을 특징으로 하는 시스템.
  13. 제12항에 있어서,
    상기 버퍼에 일시 저장된 메타 데이터가 일정한 크기에 도달하면, 상기 버퍼에 저장된 메타 데이터를 상기 낸드 플래시 메모리에 기록하는 것을 특징으로 하는 시스템.
KR1020070046192A 2007-05-11 2007-05-11 낸드 플래시 메모리에 프로그램 코드 및 매스 데이터를기록하여 시스템을 운영하는 방법 및 상기 방법을 수행하는시스템 KR20080100079A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070046192A KR20080100079A (ko) 2007-05-11 2007-05-11 낸드 플래시 메모리에 프로그램 코드 및 매스 데이터를기록하여 시스템을 운영하는 방법 및 상기 방법을 수행하는시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070046192A KR20080100079A (ko) 2007-05-11 2007-05-11 낸드 플래시 메모리에 프로그램 코드 및 매스 데이터를기록하여 시스템을 운영하는 방법 및 상기 방법을 수행하는시스템

Publications (1)

Publication Number Publication Date
KR20080100079A true KR20080100079A (ko) 2008-11-14

Family

ID=40286884

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070046192A KR20080100079A (ko) 2007-05-11 2007-05-11 낸드 플래시 메모리에 프로그램 코드 및 매스 데이터를기록하여 시스템을 운영하는 방법 및 상기 방법을 수행하는시스템

Country Status (1)

Country Link
KR (1) KR20080100079A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101114125B1 (ko) * 2009-04-17 2012-02-20 고려대학교 산학협력단 낸드 플래시 파일 시스템 및 그의 초기화 및 크래시 복구 방법
US9886219B2 (en) 2014-11-26 2018-02-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and method of programming the same
US11182088B2 (en) 2019-05-15 2021-11-23 SK Hynix Inc. Operation method of a controller

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101114125B1 (ko) * 2009-04-17 2012-02-20 고려대학교 산학협력단 낸드 플래시 파일 시스템 및 그의 초기화 및 크래시 복구 방법
US9886219B2 (en) 2014-11-26 2018-02-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and method of programming the same
US11182088B2 (en) 2019-05-15 2021-11-23 SK Hynix Inc. Operation method of a controller

Similar Documents

Publication Publication Date Title
US8024509B2 (en) Method of managing a multi-bit-cell flash memory
US8423706B2 (en) Apparatus and method to prevent data loss in nonvolatile memory
US8019928B2 (en) Method of managing a multi-bit-cell flash memory
KR101464338B1 (ko) 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템
CN110874187B (zh) 数据储存装置与数据处理方法
US7755950B2 (en) Programming methods of memory systems having a multilevel cell flash memory
KR100975164B1 (ko) 비휘발성 메모리 시스템에 대한 내부 보수 스케줄 요청
US8090918B2 (en) Electronic storage device with improved storage method
KR100823170B1 (ko) 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드
US20080172521A1 (en) Memory System Determining Storage Mode According to Host Provided Data Information
US20110138254A1 (en) Method for reducing uncorrectable errors of a memory device regarding error correction code, and associated memory device and controller thereof
US20090091974A1 (en) Methods of programming non-volatile memory cells
US7945723B2 (en) Apparatus and method of managing mapping table of non-volatile memory
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US20060143368A1 (en) Method for using a multi-bit cell flash device in a system not designed for the device
US7970984B2 (en) Method for using a multi-bit cell flash device in a system not designed for the device
US7813173B2 (en) Multi-level cell memory devices and methods using sequential writing of pages to cells sharing bit buffers
CN110069362B (zh) 数据储存装置与数据处理方法
JP4634404B2 (ja) 不揮発性メモリ、そのためのデータ有効性を判断する装置及び方法
US11360885B2 (en) Wear leveling based on sub-group write counts in a memory sub-system
US8046529B2 (en) Updating control information in non-volatile memory to control selection of content
KR20080100079A (ko) 낸드 플래시 메모리에 프로그램 코드 및 매스 데이터를기록하여 시스템을 운영하는 방법 및 상기 방법을 수행하는시스템
US11487655B2 (en) Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations
US7978529B1 (en) Rewritable single-bit-per-cell flash memory
US8885406B2 (en) Memory device, memory control device, and memory control method

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination