KR100823170B1 - 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드 - Google Patents
배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드 Download PDFInfo
- Publication number
- KR100823170B1 KR100823170B1 KR1020070010155A KR20070010155A KR100823170B1 KR 100823170 B1 KR100823170 B1 KR 100823170B1 KR 1020070010155 A KR1020070010155 A KR 1020070010155A KR 20070010155 A KR20070010155 A KR 20070010155A KR 100823170 B1 KR100823170 B1 KR 100823170B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- cell
- flash memory
- bit
- fail
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명은 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템에 관한 것이다. 본 발명에 따른 메모리 시스템은 호스트; 하나의 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리; 및 상기 호스트로부터 제공된 멀티 비트 데이터가 상기 플래시 메모리에 프로그램되도록 제어하는 메모리 컨트롤러를 포함한다. 상기 플래시 메모리는 n(n은 자연수) 번째 비트가 정상적으로 프로그램되고, n+1 번째 비트를 프로그램하는 과정에서 페일이 발생한 경우에, 페일 셀을 포함한 메모리 블록은 상기 n 번째 비트 이하에서 동작한다. 본 발명에 따른 메모리 시스템은 하위 비트가 정상이고 상위 비트가 페일인 경우에, 페일 셀을 포함한 메모리 블록을 배드 블록(bad block)으로 처리하지 않고, 싱글 레벨 셀 모드에서 동작하도록 한다. 본 발명에 의하면, 배드 블록이 싱글 레벨 셀 모드로 사용되기 때문에 플래시 메모리의 효율을 높일 수 있다.
Description
도 1은 종래의 메모리 시스템을 보여주는 블록도이다.
도 2 및 도 3은 하나의 메모리 셀에 멀티 비트 데이터가 프로그램되는 과정을 보여주는 다이어그램이다.
도 4는 본 발명에 따른 메모리 시스템의 제 1 실시 예를 보여주는 블록도이다.
도 5는 본 발명에 따른 메모리 시스템의 제 2 실시 예를 보여주는 블록도이다.
도 6은 본 발명에 따른 메모리 시스템의 제 3 실시 예를 보여주는 블록도이다.
*도면의 주요 부분에 대한 부호 설명*
100, 200, 300, 400; 메모리 시스템
110, 210, 310, 410; 호스트
120, 220, 320, 420; 메모리 컨트롤러
130, 230, 330, 430; 플래시 메모리
본 발명은 메모리 시스템에 관한 것으로, 더욱 상세하게는 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템 및 메모리 카드에 관한 것이다.
최근 들어 비휘발성 메모리를 사용하는 장치들이 증가하고 있다. 예를 들면, MP3 플레이어, 디지털 카메라(Digital Camera), 휴대전화(Mobile Phone), 캠코더, 플래시 카드(flash card), 및 SSD(Solid State Disk) 등은 저장장치로 비휘발성 메모리를 사용하고 있다.
저장장치로 비휘발성 메모리를 사용하는 장치들이 증가하면서, 비휘발성 메모리의 용량도 급속히 증가하고 있다. 메모리 용량을 증가시키는 방법들 중 하나는 하나의 메모리 셀(cell)에 다수의 비트들을 저장하는 방식인 이른바 멀티 레벨 셀(MLC: Multi Level Cell) 방식이다.
도 1은 종래의 메모리 시스템을 보여주는 도면이다. 도 1을 참조하면, 종래의 메모리 시스템(100)은 호스트(110), 메모리 컨트롤러(120), 그리고 플래시 메모리(130)를 구비한다.
메모리 컨트롤러(120)는 버퍼 메모리(121)를 포함한다. 플래시 메모리(130)는 셀 어레이(131) 및 페이지 버퍼(132)를 포함한다. 도 1에 도시되어 있지 않지만, 플래시 메모리(130)에는 디코더(decoder), 데이터 버퍼(data buffer), 그리고 제어 유닛(control unit)이 포함되어 있다.
메모리 컨트롤러(120)는 호스트(110)로부터 입력되는 데이터(Data)와 쓰기 커맨드(Write Command)를 입력받고, 데이터(Data)가 셀 어레이(131)에 쓰이도록 플래시 메모리(130)를 제어한다. 또한, 메모리 컨트롤러(120)는 호스트(110)로부터 입력되는 읽기 커맨드(Read Command)에 따라, 셀 어레이(131)에 저장되어 있는 데이터가 읽혀지도록 플래시 메모리(130)를 제어한다.
버퍼 메모리(121)는 플래시 메모리(130)에 쓰일 데이터 또는 플래시 메모리(130)로부터 읽은 데이터를 임시로 저장한다. 버퍼 메모리(121)는 메모리 컨트롤러(120)의 제어에 의해 임시적 저장된 데이터를 호스트(110) 또는 플래시 메모리(130)로 전송한다.
플래시 메모리(130)의 셀 어레이(131)는 복수의 메모리 셀(Cell)로 구성된다. 메모리 셀은 비 휘발성(Nonvolatile)으로서, 데이터를 저장한 후 전원이 꺼져도 데이터가 지워지지 않는다. 페이지 버퍼(132)는 셀 어레이(131)의 선택된 페이지(page)에 쓰일 데이터 또는 선택된 페이지로부터 읽은 데이터를 저장하는 버퍼이다.
한편, 플래시 메모리(130)의 메모리 셀은 저장할 수 있는 데이터 비트 수에 따라 싱글 레벨 셀(SLC; Single Level Cell) 및 멀티 레벨 셀(MLC; Multi Level Cell)로 구분된다. 싱글 레벨 셀(SLC)은 한 비트 데이터(single bit data)를 저장하고, 멀티 레벨 셀(MLC)은 멀티 비트 데이터(multi bit data)를 저장할 수 있다.
먼저, 하나의 메모리 셀에 하나의 비트가 저장되는 싱글 레벨 셀(SLC: Single Level Cell)을 살펴본다. 싱글 레벨 셀(SLC)은 문턱 전압의 분포에 따라 2개의 상태(state)를 갖는다. 메모리 셀은 프로그램 후에, 데이터 '1'을 저장하거나 데이터 '0'을 저장한다. 여기에서, 데이터 '1'을 저장하는 메모리 셀은 소거 상태(erase state)에 있다고 하며, 데이터 '0'을 저장하는 메모리 셀은 프로그램 상태(program state)에 있다고 한다. 소거 상태의 셀은 온 셀(on cell), 프로그램 상태의 셀은 오프 셀(off cell)이라고도 한다.
플래시 메모리(130)는 페이지 단위로 프로그램 동작을 수행한다. 메모리 컨트롤러(120)는 프로그램 동작 시, 내부의 버퍼 메모리(121)를 사용하여 페이지 단위로 데이터를 플래시 메모리(130)로 전송한다.
페이지 버퍼(132)는 버퍼 메모리(121)로부터 로드(load)된 데이터를 임시로 저장하며, 로드된 데이터를 선택된 페이지에 동시에 프로그램한다. 프로그램을 마친 다음에는, 데이터가 정확하게 프로그램되었는지를 검증하기 위한 프로그램 검증 동작이 수행된다.
프로그램 검증 결과, 프로그램 폐일(fail)이 발생하면 프로그램 전압을 증가해 가면서 다시 프로그램 동작 및 프로그램 검증 동작을 수행한다. 이런 방식으로 한 페이지 분량의 데이터에 대한 프로그램을 완료한 다음에, 다음 데이터(next data)를 수신하여 프로그램 동작을 수행한다.
다음으로, 하나의 메모리 셀에 멀티 비트 데이터(multi bit data)가 저장되는 멀티 레벨 셀(MLC; Multi Level Cell)을 살펴본다. 도 2 및 도 3은 하나의 메모리 셀에 하위 비트(LSB: Least Significant Bit)와 상위 비트(MSB: Most Significant Bit), 즉 2 비트 데이터가 프로그램되는 과정을 보여준다.
도 2를 참조하면, 메모리 셀은 문턱 전압 분포에 따라 4개의 상태(11, 01, 10, 00) 중 어느 하나를 갖도록 프로그램된다. 먼저, 하위 비트(LSB)가 프로그램되는 과정은 위에서 설명한 싱글 레벨 셀(SLC)과 동일하다. 11 상태를 갖는 메모리 셀은 하위 비트(LSB) 데이터에 따라 점선으로 도시된 상태(A)를 갖도록 프로그램된다.
다음으로, 메모리 컨트롤러(120)는 상위 비트(MSB)를 프로그램하기 위해 버퍼 메모리(121) 내에 있는 한 페이지 분량의 데이터를 플래시 메모리(130)로 전송한다. 도 2를 참조하면, 점선 상태(A)를 갖는 메모리 셀은 상위 비트(MSB)에 따라 00 상태를 갖도록 프로그램(program1) 되거나, 10 상태를 갖도록 프로그램(program2) 된다. 한편, 11 상태를 갖는 메모리 셀은 상위 비트(MSB)에 따라 11 상태를 유지하거나, 01 상태를 갖도록 프로그램(program3) 된다.
도 3을 참조하면, 메모리 셀은 문턱 전압 분포에 따라 4개의 상태(11, 10, 00, 01) 중 어느 하나를 갖도록 프로그램된다. 먼저, 11 상태를 갖는 메모리 셀은 하위 비트(LSB)에 따라 11 상태를 유지하거나 10 상태로 프로그램된다(program1). 다음으로, 상위 비트(MSB)가 프로그램된다. 10 상태를 갖는 메모리 셀은 상위 비트(MSB)에 따라 10 상태를 유지하거나 00 상태로 프로그램된다(program2). 그리고 11 상태를 갖는 메모리 셀은 상위 비트(MSB)에 따라 11 상태를 유지하거나 01 상태로 프로그램된다(program3).
다시 도 1을 참조하면, 메모리 시스템(100)은 위와 같은 방법을 사용하여, 멀티 비트 데이터를 플래시 메모리(130)의 셀 어레이(131)에 프로그램한다. 즉, 하위 비트(LSB)를 먼저 프로그램하고, 하위 비트(LSB)가 프로그램되어 있는 메모리 셀에 상위 비트(MSB)를 프로그램한다.
하위 비트(LSB)가 프로그램된 다음에, 상위 비트(MSB)가 프로그램되는 도중에 프로그램 페일(program fail)이 발생할 수 있다. 일반적으로 싱글 레벨 셀(SLC)의 경우에는 페일이 발생할 확률이 낮지만, 멀티 레벨 셀(MLC)의 경우에는 셀의 문턱 전압 마진이 적어서 페일이 발생할 확률이 높다. 하나의 멀티 레벨 셀(MLC)에 프로그램되는 비트 수가 증가할수록 페일이 발생할 확률은 점점 높아진다.
종래의 MLC 기술에서는 하위 비트(LSB)를 정상적으로 프로그램한 다음에, 상위 비트(MSB)를 프로그램하는 도중에 페일이 발생하면, 페일 셀을 포함한 메모리 블록을 배드 블록(bad block)으로 처리하고 있다. 여기에서, 페일 셀은 에러 정정 회로(ECC) 등에 의해서도 복구할 수 없는 셀을 의미한다. 종래의 MLC 기술에서는, 페일 셀을 포함한 메모리 블록을 배드 블록으로 처리함으로, 하위 비트(LSB)를 정상적으로 프로그램할 수 있는 셀까지 모두 사용할 수 없는 문제점이 있다.
본 발명은 상술한 기술적 과제를 해결하기 위해 제안된 것으로, 본 발명의 목적은 하위 비트(LSB)가 정상적으로 프로그램되고, 상위 비트(MSB)가 프로그램 페일된 경우에, 해당 메모리 블록을 배드 블록으로 처리하지 않고 재활용할 수 있는 메모리 시스템 및 메모리 카드를 제공하는 데 있다.
본 발명에 따른 메모리 시스템은 호스트; 하나의 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리; 및 상기 호스트로부터 제공된 멀티 비트 데이터가 상기 플래시 메모리에 프로그램되도록 제어하는 메모리 컨트롤러를 포함한다. 상기 플래시 메모리는 n(n은 자연수) 번째 비트가 정상적으로 프로그램되고, n+1 번째 비트를 프로그램하는 과정에서 페일이 발생한 경우에, 페일 셀을 포함한 메모리 블록은 상기 n 번째 비트 이하에서 동작한다.
실시 예로서, 상기 페일 셀을 포함한 메모리 블록의 동작 방식은 상기 플래시 메모리 내의 셀 어레이 내에 저장된다. 상기 플래시 메모리의 셀 어레이는 데이터 필드와 스페어 필드로 구분되며, 상기 페일 셀을 포함한 메모리 블록의 동작 방식은 스페어 필드에 저장된다. 또한, 상기 플래시 메모리의 셀 어레이는 복수의 메모리 블록을 포함하며, 상기 페일 셀을 포함한 메모리 블록의 동작 방식은 상기 복수의 메모리 블록 중 어느 하나에 저장된다. 상기 어느 하나의 메모리 블록은 메타 블록인 것을 특징으로 한다.
다른 실시 예로서, 상기 메모리 컨트롤러는 상기 페일 셀을 포함한 메모리 블록의 동작 방식을 저장하기 위한 모드 스토리지를 포함한다. 상기 모드 스토리지는 EEPROM인 것을 특징으로 한다.
또 다른 실시 예로서, 상기 플래시 메모리 및 상기 메모리 컨트롤러는 하나의 메모리 카드 내에 집적된다. 상기 플래시 메모리는 낸드 플래시 메모리인 것을 특징으로 한다.
본 발명에 따른 메모리 카드는 하나의 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리; 및 멀티 비트 데이터가 상기 플래시 메모리에 프로그램되도록 제어하는 메모리 컨트롤러를 포함하되, 상기 플래시 메모리는 n(n은 자연수) 번째 비트가 정상적으로 프로그램되고, n+1 번째 비트를 프로그램하는 과정에서 페일이 발생한 경우에, 페일 셀을 포함한 페이지는 상기 n 번째 비트 이하에서 동작한다.
실시 예로서, 상기 페일 셀을 포함한 페이지의 동작 방식은 상기 플래시 메모리 내의 셀 어레이 내에 저장된다. 상기 플래시 메모리의 셀 어레이는 데이터 필드와 스페어 필드로 구분되며, 상기 페일 셀을 포함한 페이지의 동작 방식은 스페어 필드에 저장된다. 또한, 상기 플래시 메모리의 셀 어레이는 복수의 메모리 블록을 포함하며, 상기 페일 셀을 포함한 페이지의 동작 방식은 상기 복수의 메모리 블록 중 어느 하나에 저장된다. 상기 어느 하나의 메모리 블록은 메타 블록인 것을 특징으로 한다.
다른 실시 예로서, 상기 메모리 컨트롤러는 상기 페일 셀을 포함한 페이지의 동작 방식을 저장하기 위한 모드 스토리지를 포함한다. 상기 모드 스토리지는 EEPROM인 것을 특징으로 한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이행하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. 이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
본 발명은 하위 비트가 메모리 셀에 정상적으로 프로그램되고 상위 비트가 페일된 경우에, 그 메모리 셀을 포함한 메모리 블록이 SLC 모드에서 동작하도록 한다. 본 발명은 페일 셀을 포함한 메모리 블록을 배드 블록으로 처리하지 않고, SLC 모드로 재활용함으로 플래시 메모리를 효율적으로 사용한다.
도 4는 본 발명에 따른 메모리 시스템의 제 1 실시 예를 보여주는 블록도이다. 도 4를 참조하면, 본 발명에 따른 메모리 시스템(200)은 호스트(210), 메모리 컨트롤러(220), 그리고 플래시 메모리(230)를 포함한다. 여기에서, 플래시 메모리(230)는 하나의 메모리 셀에 멀티 비트 데이터를 저장할 수 있다.
도 4에서, 메모리 컨트롤러(220) 및 플래시 메모리(230)는 하나의 메모리 카드 내에 포함될 수 있다. 이러한 메모리 카드에는 MMC(Multi_Media Card), SD 카드, XD 카드, CF 카드, SIM 카드 등이 포함된다. 또한, 이러한 메모리 카드는 컴퓨터, 노트북, 디지털 카메라, 휴대폰, MP3 플레이어, PMP 등과 같은 호스트(210)에 접속되어 사용된다.
메모리 컨트롤러(220)는 플래시 메모리(230)의 제반 동작(예를 들면, 쓰기 또는 읽기 동작)을 제어한다. 도 4를 참조하면, 메모리 컨트롤러(220)는 제어 유닛(221) 및 버퍼 메모리(222)를 포함한다.
제어 유닛(221)은 호스트(210)로부터 커맨드(Command) 및 제어 신호를 입력받는다. 제어 유닛(221)은 입력된 커맨드에 따라 버퍼 메모리(222) 및 플래시 메모리(230)를 제어함으로, 플래시 메모리(230)가 커맨드에 맞게 동작하도록 한다.
버퍼 메모리(222)는 플래시 메모리(230)에 쓰일 데이터 또는 플래시 메모리(230)로부터 읽은 데이터를 임시로 저장하는 데 사용된다. 버퍼 메모리(222)에 저장된 데이터는 제어 유닛(221)의 제어에 의해 플래시 메모리(230) 또는 호스트(210) 전송된다. 버퍼 메모리(222)는 랜덤 액세스 메모리(RAM), 예를 들면, SRAM이나 DRAM 등으로 구현될 수 있다.
계속해서 도 4를 참조하면, 플래시 메모리(230)는 셀 어레이(231), 디코더(232), 페이지 버퍼(233), 비트 라인 선택 회로(234), 데이터 버퍼(235), 그리고 제어 유닛(236)을 구비한다. 도 4에서는 예로서 낸드 플래시 메모리가 도시되어 있다.
셀 어레이(231)는 복수의 메모리 블록(도시되지 않음)으로 구성된다. 각각의 메모리 블록은 복수의 페이지(예를 들면, 32 pages, 64 pages)로 구성되며, 각각의 페이지는 하나의 워드 라인(WL)을 공유하는 복수의 메모리 셀(예를 들면, 512B, 2KB)로 구성된다. 낸드 플래시 메모리의 경우에, 소거 동작은 메모리 블록 단위로 수행되며, 읽기 및 쓰기 동작은 페이지 단위로 수행된다.
도 2 및 도 3을 참조하면, 하나의 메모리 셀에 2비트 데이터를 저장하는 경우에, 각각의 메모리 셀은 문턱 전압 분포에 따라 4개의 상태(state) 또는 레벨(level)을 갖는다. 이하에서는 하나의 멀티 레벨 셀에 2비트 데이터가 저장되는 경우에 대해 설명한다. 그러나 본 발명은 하나의 멀티 레벨 셀에 2비트 이상의 데이터(예를 들면, 3비트 또는 4비트)가 저장되는 경우에 대해서도 동일하게 적용될 수 있다.
한편, 하나의 메모리 셀에 2비트 데이터가 저장되는 멀티 레벨 셀이라 하더라도, 그 메모리 셀에 1비트 데이터만을 저장할 수도 있다. 즉, 플래시 메모리(230)는 특정 페이지 또는 특정 메모리 블록을 SLC 모드 또는 MLC 모드로 동작하게 할 수 있다. 특정 페이지 또는 메모리 블록이 SLC 모드 또는 MLC 모드로 동작하는지 여부는 메모리 컨트롤러(220)나 플래시 메모리(230) 내에 저장되어 있어야 한 다.
도 4를 참조하면, 본 발명의 제 1 실시 예에 따른 메모리 시스템은 플래시 메모리(230)의 모드 셀(mode cell)에 SLC 모드 또는 MLC 모드에 대한 정보를 저장한다. 플래시 메모리(230)는 모드 셀(mode cell)에 따라 SLC 방식 또는 MLC 방식으로 동작한다. 도 4에서, 선택 페이지(page0)에는 하나의 모드 셀(흑색으로 표시됨)이 포함되어 있다. 모드 셀은 선택 페이지(page0)의 동작 방식, 즉 SLC 방식 또는 MLC 방식에 대한 정보를 저장한다.
일반적으로 셀 어레이(231)는 데이터 필드(data field)와 스페어 필드(spare field)로 구분된다. 하나의 페이지 사이즈가 528B라고 할 때, 512B는 데이터 필드에 해당하고, 16B는 스페어 필드에 해당한다. 모드 셀은 스페어 필드에 포함된다. 플래시 메모리(230)는 하위 비트(LSB)가 정상적으로 프로그램되고 상위 비트(MSB)가 페일인 경우에, 스페어 필드 내의 모드 셀에 SLC 모드 정보(mode information)을 저장한다. 모드 셀에 SLC 모드 정보가 기록되면, 이후에 페일 셀을 포함한 페이지는 SLC 방식으로 동작한다. 또한, 본 발명은 페일 셀을 포함한 메모리 블록이 SLC 방식으로 동작하도록 할 수 있다.
디코더(232)는 워드 라인(WL0~WLn)을 통해 셀 어레이(231)와 연결되며, 제어 유닛(236)에 의해 제어된다. 디코더(232)는 메모리 컨트롤러(220)로부터 어드레스(ADDR)를 입력받고, 하나의 워드 라인(예를 들면, WL0)을 선택하거나, 비트 라인(BL)을 선택하도록 선택 신호(Yi)를 발생한다. 페이지 버퍼(233)는 비트 라인(BL0~BLm)을 통해 셀 어레이(231)와 연결된다.
페이지 버퍼(233)는 버퍼 메모리(222)로부터 로드(load)된 데이터를 저장한다. 페이지 버퍼(233)에는 한 페이지 분량의 데이터가 로드되며, 로드된 데이터는 프로그램 동작 시에 선택 페이지(예를 들면, page0)에 동시에 프로그램된다. 반대로, 페이지 버퍼(233)는 읽기 동작 시에 선택 페이지(page0)로부터 데이터를 읽고, 읽은 데이터를 임시로 저장한다. 페이지 버퍼(233)에 저장된 데이터는 읽기 인에이블 신호(nRE, 도시되지 않음)에 응답하여 버퍼 메모리(222)로 전송된다.
비트 라인 선택회로(234)는 선택 신호(Yi)에 응답하여 비트 라인을 선택하기 위한 회로이다. 데이터 버퍼(235)는 메모리 컨트롤러(220)와 플래시 메모리(230) 사이의 데이터 전송에 사용되는 입출력용 버퍼이다. 제어 유닛(236)은 메모리 컨트롤러(220)로부터 제어 신호를 입력받고, 플래시 메모리(230)의 내부 동작을 제어하기 위한 회로이다.
본 발명의 제 1 실시 예에 따른 메모리 시스템(200)은 플래시 메모리(230) 내에 모드 셀(mode cell)을 포함한다. 본 발명은 하위 비트(LSB)가 정상적으로 프로그램되고 상위 비트(MSB)가 페일된 경우에, 모드 셀(mode cell)에 SLC 모드 정보를 기록한다. 본 발명은 모드 셀에 SLC 모드 정보가 기록된 경우에, 페일 셀을 포함한 페이지 또는 메모리 블록이 SLC 방식으로 동작하도록 한다.
도 4에 도시된 메모리 시스템(200)은 하위 비트(LSB) 및 상위 비트(MSB) 프로그램 동작 시에, 페일이 발생하지 않은 경우에는 종래와 동일하게 동작한다. 그러나 본 발명은 하위 비트(LSB)는 정상이나 상위 비트(MSB)가 페일인 경우에, 페일 셀을 포함한 페이지나 메모리 블록이 SLC 방식으로 동작하도록 한다. 종래의 메모 리 시스템은 페일 셀을 포함한 메모리 블록을 배드 블록(bad block)으로 처리하지만, 본 발명은 SLC 방식으로 동작하도록 함으로, 플래시 메모리(230)를 종전에 비해 효율적으로 사용할 수 있다.
도 4에서는 하나의 메모리 셀이 모드 셀로 표시되어 있지만, 멀티 비트(예를 들면, 3비트 또는 4비트)에 따라 다수의 모드 셀에 모드 정보를 기록할 수 있다. 메모리 컨트롤러(220)는 파워 업 시에 플래시 메모리(230)에 기록된 모드 정보를 읽는다. 메모리 컨트롤러(220)는 모드 정보에 따라 플래시 메모리(230)의 선택 페이지 또는 메모리 블록이 SLC 방식 또는 MLC 방식으로 동작하도록 제어한다.
도 5는 본 발명에 따른 메모리 시스템의 제 2 실시 예를 보여주는 블록도이다. 도 5를 참조하면, 본 발명에 따른 메모리 시스템(300)은 호스트(310), 메모리 컨트롤러(320), 그리고 플래시 메모리(330)를 포함한다. 메모리 컨트롤러(320)는 제어 유닛(321) 및 버퍼 메모리(322)를 포함한다. 이들 구성 요소들에 동작 설명은 도 4에서 설명한 바와 같다.
도 5를 참조하면, 셀 어레이(231)는 복수의 메모리 블록(BLK0~BLKn, BLKn')으로 구성된다. 각각의 메모리 블록은 복수의 페이지(도시되지 않음)로 구성된다. 각각의 페이지는 복수의 메모리 셀(도시되지 않음)로 구성된다. 메모리 셀은 싱글 비트 데이터를 저장하거나, 멀티 비트 데이터(예를 들면, 2비트)를 저장할 수 있다.
복수의 메모리 블록 중 하나(BLKn')는 모드 셀을 포함한다. 하위 비트(LSB)가 정상적으로 프로그램되고 상위 비트(MSB)가 페일된 경우에, 페일 셀을 포함한 페이지나 메모리 블록에 대한 모드 정보는 메모리 블록(BLKn') 내의 모드 셀에 저장된다. 즉, 본 발명의 제 2 실시 예에 따른 메모리 시스템(300)은 페일 셀을 포함한 페이지나 메모리 블록에 대한 정보를 각 페이지의 스페어 필드에 저장하지 않고, 특정 메모리 블록(BLKn')에 저장한다.
여기에서, 특정 메모리 블록(BLKn')은 어드레스 맵핑 정보를 저장하는 메타 블록(meta block)일 수 있다. 메모리 컨트롤러(320)는 어드레스 맵핑 동작 시에 플래시 메모리(330)의 메타 블록에 기록된 모드 정보를 읽는다. 메모리 컨트롤러(220)는 모드 정보에 따라 플래시 메모리(330)의 선택 페이지 또는 메모리 블록이 SLC 방식 또는 MLC 방식으로 동작하도록 제어한다.
도 6은 본 발명에 따른 메모리 시스템의 제 3 실시 예를 보여주는 블록도이다. 도 6을 참조하면, 본 발명에 따른 메모리 시스템(400)은 호스트(410), 메모리 컨트롤러(420), 그리고 플래시 메모리(430)를 포함한다. 메모리 컨트롤러(420)는 제어 유닛(421) 및 버퍼 메모리(422)를 포함한다.
도 6을 참조하면, 제어 유닛(421)은 모드 스토리지(425)를 포함한다. 모드 스토리지(425)는 플래시 메모리(430)의 프로그램 방식(SLC 방식 또는 MLC 방식)을 저장한다. 하위 비트(LSB)가 정상적으로 프로그램되고 상위 비트(MSB)가 페일된 경우에, 페일 셀을 포함한 페이지나 메모리 블록에 대한 모드 정보는 메모리 컨트롤러(420) 내의 모드 스토리지(425)에 저장된다. 즉, 본 발명의 제 3 실시 예에 따른 메모리 시스템(400)은 페일 셀을 포함한 페이지나 메모리 블록에 대한 정보를 플래시 메모리(430)에 저장하지 않고, 플래시 컨트롤러(420)에 저장한다. 모드 스토리 지(425)는 레지스터, EEPROM 등으로 구현될 수 있다.
이상에서 살펴 본 바와 같이, 본 발명에 따른 메모리 시스템은 하위 비트가 정상이고 상위 비트가 페일인 경우에, 페일 셀을 포함한 메모리 블록을 배드 블록(bad block)으로 처리하지 않고, SLC 모드에서 동작하도록 한다.
플래시 메모리는 하나의 메모리 셀에 저장될 비트 수가 증가할수록 상위 비트를 프로그램하는 과정에서 페일이 발생할 가능성이 점점 높아진다. 본 발명은 페일 셀의 비트 수에 맞게 재활용될 수 있다. 예를 들어, 하나의 메모리 셀에 4비트 데이터를 저장하는 경우를 가정하자. 본 발명은 3비트 프로그램 과정에서 페일이 발생하면, 페일 셀을 포함한 페이지나 메모리 블록은 2비트 모드로 동작하도록 할 수 있다. 만약 4비트 프로그램 과정에서 페일이 발생하면, 페일 셀을 포함한 페이지나 메모리 블록이 3비트 모드로 동작하도록 할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사항에 의해 정해져야 할 것이다.
본 발명에 따른 메모리 시스템 및 메모리 카드는 하위 비트가 정상이고 상위 비트가 페일인 경우에, 페일 셀을 포함한 메모리 블록을 배드 블록(bad block)으로 처리하지 않고, 싱글 레벨 셀 모드에서 동작하도록 한다. 본 발명에 의하면, 배드 블록이 싱글 레벨 셀 모드로 사용되기 때문에 플래시 메모리의 효율을 높일 수 있다.
Claims (16)
- 호스트;하나의 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리; 및상기 호스트로부터 제공된 멀티 비트 데이터가 상기 플래시 메모리에 프로그램되도록 제어하는 메모리 컨트롤러를 포함하되,상기 플래시 메모리는 n(n은 자연수) 번째 비트가 정상적으로 프로그램되고, n+1 번째 비트를 프로그램하는 과정에서 페일이 발생한 경우에, 페일 셀을 포함한 메모리 블록은 상기 n 번째 비트 이하에서 동작하는 메모리 시스템.
- 제 1 항에 있어서,상기 페일 셀을 포함한 메모리 블록의 동작 방식은 상기 플래시 메모리 내의 셀 어레이 내에 저장되는 메모리 시스템.
- 제 2 항에 있어서,상기 플래시 메모리의 셀 어레이는 데이터 필드와 스페어 필드로 구분되며,상기 페일 셀을 포함한 메모리 블록의 동작 방식은 스페어 필드에 저장되는 메모리 시스템.
- 제 2 항에 있어서,상기 플래시 메모리의 셀 어레이는 복수의 메모리 블록을 포함하며,상기 페일 셀을 포함한 메모리 블록의 동작 방식은 상기 복수의 메모리 블록 중 어느 하나에 저장되는 메모리 시스템.
- 제 4 항에 있어서,상기 어느 하나의 메모리 블록은 메타 블록인 것을 특징으로 하는 메모리 시스템.
- 제 1 항에 있어서,상기 메모리 컨트롤러는 상기 페일 셀을 포함한 메모리 블록의 동작 방식을 저장하기 위한 모드 스토리지를 포함하는 메모리 시스템.
- 제 6 항에 있어서,상기 모드 스토리지는 EEPROM인 것을 특징으로 하는 메모리 시스템.
- 제 1 항에 있어서,상기 플래시 메모리 및 상기 메모리 컨트롤러는 하나의 메모리 카드 내에 집적되는 메모리 시스템.
- 제 1 항에 있어서,상기 플래시 메모리는 낸드 플래시 메모리인 것을 특징으로 하는 메모리 시스템.
- 하나의 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리; 및멀티 비트 데이터가 상기 플래시 메모리에 프로그램되도록 제어하는 메모리 컨트롤러를 포함하되,상기 플래시 메모리는 n(n은 자연수) 번째 비트가 정상적으로 프로그램되고, n+1 번째 비트를 프로그램하는 과정에서 페일이 발생한 경우에, 페일 셀을 포함한 페이지는 상기 n 번째 비트 이하에서 동작하는 메모리 카드.
- 제 10 항에 있어서,상기 페일 셀을 포함한 페이지의 동작 방식은 상기 플래시 메모리 내의 셀 어레이 내에 저장되는 메모리 카드.
- 제 11 항에 있어서,상기 플래시 메모리의 셀 어레이는 데이터 필드와 스페어 필드로 구분되며,상기 페일 셀을 포함한 페이지의 동작 방식은 스페어 필드에 저장되는 메모리 카드.
- 제 11 항에 있어서,상기 플래시 메모리의 셀 어레이는 복수의 메모리 블록을 포함하며,상기 페일 셀을 포함한 페이지의 동작 방식은 상기 복수의 메모리 블록 중 어느 하나에 저장되는 메모리 카드.
- 제 13 항에 있어서,상기 어느 하나의 메모리 블록은 메타 블록인 것을 특징으로 하는 메모리 카드.
- 제 10 항에 있어서,상기 메모리 컨트롤러는 상기 페일 셀을 포함한 페이지의 동작 방식을 저장하기 위한 모드 스토리지를 포함하는 메모리 카드.
- 제 15 항에 있어서,상기 모드 스토리지는 EEPROM인 것을 특징으로 하는 메모리 카드.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070010155A KR100823170B1 (ko) | 2007-01-31 | 2007-01-31 | 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드 |
US11/769,156 US7505338B2 (en) | 2007-01-31 | 2007-06-27 | Memory systems and memory cards that use a bad block due to a programming failure therein in single level cell mode and methods of operating the same |
IT000017A ITMI20080017A1 (it) | 2007-01-31 | 2008-01-08 | Sistemi di memoria e schede di memoria che utilizzano un blocco cattivo a causa di un guasto di programmazione al suo interno in modalita' di cella a singolo livello e metodi di azionamento dei medesimi. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070010155A KR100823170B1 (ko) | 2007-01-31 | 2007-01-31 | 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100823170B1 true KR100823170B1 (ko) | 2008-04-21 |
Family
ID=39571847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070010155A KR100823170B1 (ko) | 2007-01-31 | 2007-01-31 | 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7505338B2 (ko) |
KR (1) | KR100823170B1 (ko) |
IT (1) | ITMI20080017A1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140000751A (ko) * | 2012-06-25 | 2014-01-06 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
KR101515098B1 (ko) | 2008-11-20 | 2015-04-24 | 삼성전자주식회사 | 플래시 메모리 장치 및 이의 독출 방법 |
KR102316532B1 (ko) * | 2021-05-24 | 2021-10-22 | 한양대학교 산학협력단 | 플래시 메모리에서의 런타임 배드 블록 관리 방법 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US8891298B2 (en) * | 2011-07-19 | 2014-11-18 | Greenthread, Llc | Lifetime mixed level non-volatile memory system |
KR101005120B1 (ko) * | 2009-02-04 | 2011-01-04 | 주식회사 하이닉스반도체 | 불휘발성 메모리 소자의 프로그램 방법 |
JP5204069B2 (ja) * | 2009-09-18 | 2013-06-05 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US8797813B2 (en) | 2011-05-17 | 2014-08-05 | Maxlinear, Inc. | Method and apparatus for memory power and/or area reduction |
US9165677B2 (en) * | 2011-05-17 | 2015-10-20 | Maxlinear, Inc. | Method and apparatus for memory fault tolerance |
CN104081373B (zh) * | 2012-01-31 | 2016-09-21 | 惠普发展公司,有限责任合伙企业 | 单芯片和双芯片备援 |
US10379971B2 (en) | 2012-01-31 | 2019-08-13 | Hewlett Packard Enterprise Development Lp | Single and double chip space |
KR20180062513A (ko) * | 2016-11-30 | 2018-06-11 | 에스케이하이닉스 주식회사 | 반도체 장치, 그를 포함하는 반도체 시스템 및 그 반도체 시스템의 구동 방법 |
KR20180087494A (ko) * | 2017-01-23 | 2018-08-02 | 에스케이하이닉스 주식회사 | 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000064279A (ko) * | 1996-08-16 | 2000-11-06 | 히가시 데쓰로 | 반도체메모리장치및반도체메모리장치에있어서의데이타기입및판독방법 |
US6574746B1 (en) | 1999-07-02 | 2003-06-03 | Sun Microsystems, Inc. | System and method for improving multi-bit error protection in computer memory systems |
KR20050105311A (ko) * | 2004-04-28 | 2005-11-04 | 삼성전자주식회사 | Nand 플래시 메모리 블록의 오류 복구 방법 |
KR20060006554A (ko) * | 2004-07-16 | 2006-01-19 | 삼성전자주식회사 | 배드 블록 관리부를 포함하는 플래시 메모리 시스템 |
KR20070014470A (ko) * | 2005-07-28 | 2007-02-01 | 삼성전자주식회사 | 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100391154B1 (ko) | 2001-05-14 | 2003-07-12 | 삼성전자주식회사 | 불휘발성 반도체 메모리 장치의 프로그램 방법 및 장치 |
JP4260434B2 (ja) | 2002-07-16 | 2009-04-30 | 富士通マイクロエレクトロニクス株式会社 | 不揮発性半導体メモリ及びその動作方法 |
US7313649B2 (en) * | 2004-04-28 | 2007-12-25 | Matsushita Electric Industrial Co., Ltd. | Flash memory and program verify method for flash memory |
KR100680479B1 (ko) | 2005-04-11 | 2007-02-08 | 주식회사 하이닉스반도체 | 비휘발성 메모리 장치의 프로그램 검증 방법 |
KR101080912B1 (ko) | 2005-04-11 | 2011-11-09 | 주식회사 하이닉스반도체 | 멀티 레벨 셀을 갖는 비휘발성 메모리 장치의 프로그램방법 |
-
2007
- 2007-01-31 KR KR1020070010155A patent/KR100823170B1/ko active IP Right Grant
- 2007-06-27 US US11/769,156 patent/US7505338B2/en active Active
-
2008
- 2008-01-08 IT IT000017A patent/ITMI20080017A1/it unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000064279A (ko) * | 1996-08-16 | 2000-11-06 | 히가시 데쓰로 | 반도체메모리장치및반도체메모리장치에있어서의데이타기입및판독방법 |
US6574746B1 (en) | 1999-07-02 | 2003-06-03 | Sun Microsystems, Inc. | System and method for improving multi-bit error protection in computer memory systems |
KR20050105311A (ko) * | 2004-04-28 | 2005-11-04 | 삼성전자주식회사 | Nand 플래시 메모리 블록의 오류 복구 방법 |
KR20060006554A (ko) * | 2004-07-16 | 2006-01-19 | 삼성전자주식회사 | 배드 블록 관리부를 포함하는 플래시 메모리 시스템 |
KR20070014470A (ko) * | 2005-07-28 | 2007-02-01 | 삼성전자주식회사 | 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101515098B1 (ko) | 2008-11-20 | 2015-04-24 | 삼성전자주식회사 | 플래시 메모리 장치 및 이의 독출 방법 |
KR20140000751A (ko) * | 2012-06-25 | 2014-01-06 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
KR101989018B1 (ko) | 2012-06-25 | 2019-06-13 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
KR102316532B1 (ko) * | 2021-05-24 | 2021-10-22 | 한양대학교 산학협력단 | 플래시 메모리에서의 런타임 배드 블록 관리 방법 |
Also Published As
Publication number | Publication date |
---|---|
ITMI20080017A1 (it) | 2008-08-01 |
US7505338B2 (en) | 2009-03-17 |
US20080181015A1 (en) | 2008-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100823170B1 (ko) | 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드 | |
KR100878479B1 (ko) | 데이터 정보에 따라 프로그램 방식을 결정하는 메모리시스템 | |
KR100875539B1 (ko) | 프로그램 방식을 선택할 수 있는 메모리 시스템 | |
KR100894809B1 (ko) | 메모리 시스템 및 그것의 프로그램 방법 | |
KR100799688B1 (ko) | 백업 회로를 갖는 메모리 시스템 및 그것의 프로그램 방법 | |
KR100902008B1 (ko) | 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를 포함한 메모리 시스템 | |
US8284599B2 (en) | Nonvolatile memory device and related programming method | |
US7755950B2 (en) | Programming methods of memory systems having a multilevel cell flash memory | |
KR100845526B1 (ko) | 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법 | |
US8270227B2 (en) | Nonvolatile memory device and method of reading same | |
US8607120B2 (en) | Semiconductor memory device for performing additional ECC correction according to cell pattern and electronic system including the same | |
US8549214B2 (en) | Protection against data corruption for multi-level memory cell (MLC) flash memory | |
US10755785B2 (en) | Memory system and method of operating the same | |
CN111258793A (zh) | 存储器控制器及其操作方法 | |
KR20120046846A (ko) | 플래그 셀들을 갖는 플래시 메모리 장치 및 그것의 프로그램 동작 방법 | |
US20220066870A1 (en) | Memory system and method of operating the same | |
US11487655B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations | |
US8885406B2 (en) | Memory device, memory control device, and memory control method | |
CN115376573A (zh) | 存储器设备及其操作方法 | |
US20160322087A1 (en) | Data storage device and operating method thereof | |
US20200326887A1 (en) | Memory system, memory controller and operating method thereof | |
US20230360705A1 (en) | Memory programming using consecutive coarse-fine programming operations of threshold voltage distributions | |
US11527291B2 (en) | Performing a program operation based on a high voltage pulse to securely erase data | |
TWI769100B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
KR20100076692A (ko) | 낸드 플래시 메모리소자 및 쓰기 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment | ||
FPAY | Annual fee payment | ||
FPAY | Annual fee payment |
Payment date: 20190329 Year of fee payment: 12 |