KR20080027419A - 메모리 시스템 및 그것의 프로그램 방법 - Google Patents
메모리 시스템 및 그것의 프로그램 방법 Download PDFInfo
- Publication number
- KR20080027419A KR20080027419A KR1020060092472A KR20060092472A KR20080027419A KR 20080027419 A KR20080027419 A KR 20080027419A KR 1020060092472 A KR1020060092472 A KR 1020060092472A KR 20060092472 A KR20060092472 A KR 20060092472A KR 20080027419 A KR20080027419 A KR 20080027419A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- bit data
- backup
- programming
- data
- 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
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
-
- 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/5642—Multilevel memory with buffers, latches, registers at input or output
-
- 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/5643—Multilevel memory comprising cache storage devices
Landscapes
- Engineering & Computer Science (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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명은 메모리 시스템에 관한 것이다. 본 발명에 따른 메모리 시스템은 하나의 메모리 셀에 하위 비트 데이터 및 상위 비트 데이터를 저장하는 플래시 메모리; 및 상기 하위 비트 데이터를 백업하기 위한 백업 메모리를 갖는 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는 상기 상위 비트 데이터를 프로그램하기 전에, 상기 하위 비트 데이터를 상기 백업 메모리에 저장한다. 본 발명에 따른 메모리 시스템은 상위 비트 데이터를 프로그램하기 전에 하위 비트 데이터를 메모리 컨트롤러 내의 버퍼 메모리에 백업한다. 본 발명에 의하면, 프로그램 폐일(fail)로 인해 하위 비트 데이터가 손실되는 것을 방지할 수 있다.
Description
도 1은 종래의 메모리 시스템을 보여주는 블록도이다.
도 2 및 도 3은 하나의 메모리 셀에 멀티 비트 데이터가 프로그램되는 과정을 보여주는 다이어그램이다.
도 4는 본 발명에 따른 메모리 시스템의 제 1 실시 예를 보여주는 블록도이다.
도 5는 도 4에 도시된 메모리 시스템의 동작을 설명하기 위한 순서도이다.
도 6은 본 발명에 따른 메모리 시스템의 제 2 실시 예를 보여주는 블록도이다.
도 7은 본 발명에 따른 메모리 시스템의 제 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는 하나의 메모리 셀에 하위 비트(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) 된다.
다시 도 1을 참조하면, 메모리 시스템(100)은 위와 같은 방법을 사용하여, 멀티 비트 데이터를 플래시 메모리(130)의 셀 어레이(131)에 프로그램한다. 즉, 하위 비트(LSB)를 먼저 프로그램하고, 하위 비트(LSB)가 프로그램되어 있는 메모리 셀에 상위 비트(MSB)를 프로그램한다.
그러나 하위 비트(LSB)가 프로그램되어 있는 메모리 셀에 상위 비트(MSB)를 프로그램하는 과정에서, 프로그램 폐일(program fail)이 발생할 가능성이 있다. 상위 비트(MSB)를 프로그램하다가 에러가 발생하는 경우에, 이미 프로그램되어 있는 하위 비트(LSB)에도 영향을 미칠 수 있다.
상위 비트(MSB) 데이터는 프로그램 검증 동작이 완료될 때까지 메모리 컨트 롤러(120) 내의 버퍼 메모리(121)에 저장되어 있기 때문에, 데이터가 손상되어도 복구할 수 있다. 그러나 하위 비트(LSB)는 버퍼 메모리(121)에 남아 있지 않기 때문에 복구할 수 있는 방법이 없다. 따라서 종래의 메모리 시스템은 멀티 비트 데이터를 프로그램하는 경우에, 원치 않게 하위 비트(LSB) 데이터를 잃어 버릴 수 있다.
본 발명은 상술한 기술적 과제를 해결하기 위해 제안된 것으로, 본 발명의 목적은 멀티 비트 데이터를 프로그램하는 과정에서, 하위 비트(LSB) 데이터의 손실을 방지할 수 있는 메모리 시스템 및 그것의 프로그램 방법을 제공하는 데 있다.
본 발명에 따른 메모리 시스템은 하나의 메모리 셀에 하위 비트 데이터 및 상위 비트 데이터를 저장하는 플래시 메모리; 및 상기 하위 비트 데이터를 백업하기 위한 백업 메모리를 갖는 메모리 컨트롤러를 포함하되, 상기 메모리 컨트롤러는 상기 상위 비트 데이터를 프로그램하기 전에, 상기 하위 비트 데이터를 상기 백업 메모리에 저장한다.
실시 예로서, 상기 메모리 컨트롤러는 상기 상위 비트 데이터를 프로그램하는 과정에서 에러가 발생한 경우에, 상기 백업 메모리에 저장된 하위 비트 데이터를 사용하여 다시 프로그램 동작을 수행한다. 상기 메모리 컨트롤러는 상기 플래시 메모리에 저장될 상기 하위 비트 데이터 및 상기 상위 비트 데이터를 임시로 저장하기 위한 버퍼 메모리를 더 포함한다. 상기 메모리 컨트롤러는 상기 상위 비트 데 이터를 프로그램하는 과정에서 에러가 발생한 경우에, 상기 버퍼 메모리에 저장된 상위 비트 데이터를 사용하여 다시 프로그램 동작을 수행한다.
다른 실시 예로서, 상기 백업 메모리는 상기 하위 비트 데이터를 백업하기 위한 백업 영역; 및 상기 플래시 메모리에 프로그램될 데이터를 임시로 저장하기 위한 버퍼 영역을 포함한다. 상기 메모리 컨트롤러는 상기 상위 비트 데이터를 프로그램하는 과정에서 에러가 발생한 경우에, 상기 백업 영역에 저장된 하위 비트 데이터 및 상기 버퍼 영역에 저장된 상위 비트 데이터를 사용하여 다시 프로그램 동작을 수행한다.
본 발명의 다른 일면은 메모리 시스템의 프로그램 방법에 관한 것이다. 상기 메모리 시스템은 하나의 메모리 셀에 하위 비트 데이터 및 상위 비트 데이터를 저장하는 플래시 메모리; 및 상기 하위 비트 데이터를 백업하기 위한 백업 메모리를 갖는 메모리 컨트롤러를 포함한다. 상기 메모리 시스템의 프로그램 방법은, 상기 하위 비트 데이터를 상기 플래시 메모리에 프로그램하는 단계; 및 상기 상위 비트 데이터를 프로그램하기 전에, 상기 하위 비트 데이터를 상기 백업 메모리에 저장하는 단계; 및 상기 상위 비트 데이터를 상기 플래시 메모리에 프로그램하는 단계를 포함한다.
실시 예로서, 상기 메모리 컨트롤러는 버퍼 메모리를 더 포함하며, 상기 하위 비트 데이터를 프로그램하는 단계에서, 상기 하위 비트 데이터는 상기 버퍼 메모리에 임시로 저장된 다음에, 상기 플래시 메모리에 프로그램된다. 상기 상위 비트 데이터를 프로그램하는 단계에서, 상기 상위 비트 데이터는 상기 버퍼 메모리에 임시로 저장된 다음에, 상기 플래시 메모리에 프로그램된다.
상기 상위 비트 데이터를 프로그램하는 단계에서, 에러가 발생한 경우에 상기 백업 메모리에 저장된 하위 비트 데이터 및 상기 버퍼 메모리에 저장된 상위 비트 데이터를 사용하여 다시 프로그램 동작을 수행한다. 에러가 발생한 메모리 블록은 배드 블록으로 처리되고, 상기 백업 메모리에 저장된 하위 비트 데이터 및 상기 버퍼 메모리에 저장된 상위 비트 데이터는 다른 메모리 블록에 다시 프로그램된다.
다른 실시 예로서, 상기 백업 메모리는 상기 하위 비트 데이터를 백업하기 위한 백업 영역; 및 상기 플래시 메모리에 저장될 데이터를 임시로 저장하기 위한 버퍼 영역을 포함한다. 상기 하위 비트 데이터를 프로그램하는 단계에서, 상기 하위 비트 데이터는 상기 버퍼 영역에 임시로 저장된 다음에, 상기 플래시 메모리에 프로그램된다. 상기 상위 비트 데이터를 프로그램하는 단계에서, 상기 상위 비트 데이터는 상기 버퍼 영역에 임시로 저장된 다음에, 상기 플래시 메모리에 프로그램된다.
상기 상위 비트 데이터를 프로그램하는 단계에서, 에러가 발생한 경우에 상기 백업 영역에 저장된 하위 비트 데이터 및 상기 버퍼 영역에 저장된 상위 비트 데이터를 사용하여 다시 프로그램 동작을 수행한다. 에러가 발생한 메모리 블록은 배드 블록으로 처리되고, 상기 백업 영역에 저장된 하위 비트 데이터 및 상기 버퍼 영역에 저장된 상위 비트 데이터는 다른 메모리 블록에 다시 프로그램된다.
본 발명과 본 발명의 동작 상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이행하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도 면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. 이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 4는 본 발명에 따른 메모리 시스템의 제 1 실시 예를 보여주는 블록도이다. 도 4를 참조하면, 본 발명에 따른 메모리 시스템(200)은 호스트(210), 메모리 컨트롤러(220), 그리고 플래시 메모리(230)를 포함한다. 여기에서, 플래시 메모리(230)는 하나의 메모리 셀에 멀티 비트 데이터를 저장할 수 있다. 본 발명에 따른 메모리 시스템(200)은 하위 비트(LSB)가 멀티 레벨 셀(MLC)에 먼저 기록되고, 상위 비트(MSB)가 나중에 기록되는 것으로 가정한다.
도 4에서, 메모리 컨트롤러(220) 및 플래시 메모리(230)는 하나의 메모리 카드 내에 포함될 수 있다. 이러한 메모리 카드에는 MMC(Multi_Media Card), SD 카드, XD 카드, CF 카드, SIM 카드 등이 포함된다. 또한, 이러한 메모리 카드는 디지털 카메라, 휴대폰, MP3 플레이어, PMP 등과 같은 호스트(210)에 접속되어 사용된다.
메모리 컨트롤러(220)는 호스트(210)로부터 커맨드(Command)를 입력받고, 입력된 커맨드에 따라 플래시 메모리(230)의 제반 동작(예를 들면, 쓰기 또는 읽기 동작)을 제어한다. 도 4를 참조하면, 메모리 컨트롤러(220)는 버퍼 메모리(221)와 LSB 백업 메모리(222)를 포함한다.
버퍼 메모리(221)는 플래시 메모리(230)에 쓰여질 데이터 또는 플래시 메모리(230)로부터 읽은 데이터를 임시로 저장하는 데 사용된다. 버퍼 메모리(221)에 저장된 데이터는 메모리 컨트롤러(220)의 제어에 의해 플래시 메모리(230) 또는 호 스트(210) 전송된다. 버퍼 메모리(221)는 랜덤 액세스 메모리(RAM), 예를 들면, SRAM이나 DRAM 등으로 구현될 수 있다.
본 발명에 따른 메모리 시스템(200)은 메모리 컨트롤러(220) 내에 LSB 백업 메모리(222)를 포함한다. LSB 백업 메모리(222)는 플래시 메모리(230)에 멀티 비트 데이터(multi bit data)를 프로그램하는 경우에 사용된다.
일반적으로, 플래시 메모리(230)에는 하위 비트(LSB)가 쓰여진 다음에, 상위 비트(MSB)가 쓰여진다. 그러나 하위 비트(LSB)가 이미 쓰여진 플래시 메모리(230)에 상위 비트(MSB)를 쓰고자 할 때, 하위 비트 데이터(LSB)가 손상될 수 있다. 즉, 상위 비트(MSB)를 프로그램하는 과정에서, 프로그램 폐일(fail)이 발생하면, 이미 쓰여진 하위 비트(LSB)도 함께 잃게 된다. LSB 백업 메모리(222)는 이러한 경우에 대비하여, 상위 비트(MSB)를 쓰기 전에, 플래시 메모리(230)에 쓰여진 하위 비트(LSB)를 백업(backup)하는 데 사용된다.
LSB 백업 메모리(222)는 버퍼 메모리(221)와 마찬가지로 랜덤 액세스 메모리(RAM)으로 구현될 수 있다. 도 4에서, 버퍼 메모리(221)와 LSB 백업 메모리(222)는 별도의 메모리로 구분되어 있지만, 하나의 메모리로 합하여질 수 있다. 즉, 하나의 랜덤 액세스 메모리(RAM) 내에 데이터를 임시 저장하기 위한 버퍼 영역과 하위 비트(LSB)를 백업하기 위한 백업 영역을 갖도록 구현될 수도 있다.
계속해서 도 4를 참조하면, 플래시 메모리(230)는 셀 어레이(231), 디코더(232), 페이지 버퍼(233), 비트 라인 선택 회로(234), 데이터 버퍼(235), 그리고 제어 유닛(236)을 구비한다. 도 4에서는 예로서 낸드 플래시 메모리가 도시되어 있 다.
셀 어레이(231)는 복수의 메모리 블록(도시되지 않음)으로 구성된다. 각각의 메모리 블록은 복수의 페이지(예를 들면, 32 pages, 64 pages)로 구성되며, 각각의 페이지는 하나의 워드 라인(WL)을 공유하는 복수의 메모리 셀(예를 들면, 512Byte, 2K Byte)로 구성된다. 낸드 플래시 메모리의 경우에, 소거 동작은 메모리 블록 단위로 수행되며, 읽기 및 쓰기 동작은 페이지 단위로 수행된다.
한편, 각각의 메모리 셀은 멀티 비트 데이터(예를 들면, 2비트)를 저장할 수 있다. 즉, 도 2 및 도 3에서 설명한 바와 같이, 각각의 메모리 셀은 문턱 전압 분포에 따라 4개의 상태(state) 또는 레벨(level)을 갖는다. 도 2 및 도 3에 도시된 바와 같이, 멀티 비트 데이터는 하위 비트(LSB)를 저장한 다음에, 상위 비트(MSB)를 저장한다.
도 2를 참조하면, 각각의 메모리 셀은 프로그램 동작 후에, (11, 01, 10, 00) 상태 중 어느 하나를 갖는다. 여기에서, 하위 비트(LSB)는 (1, 1, 0, 0)이고, 상위 비트(MSB)는 (1, 0, 1, 0)이다. 도 3을 참조하면, 각각의 메모리 셀은 프로그램 동작 후에, (11, 10, 00, 01) 상태 중 어느 하나를 갖는다. 여기에서, 하위 비트(LSB)는 (1, 0, 0,1)이고, 상위 비트(MSB)는 (1, 1, 0, 0)이다.
디코더(232)는 워드 라인(WL0~WLn)을 통해 셀 어레이(231)와 연결되며, 제어 유닛(236)에 의해 제어된다. 디코더(232)는 메모리 컨트롤러(220)로부터 어드레스(ADDR)를 입력받고, 하나의 워드 라인(예를 들면, WL0)을 선택하거나, 비트 라인(BL)을 선택하도록 선택 신호(Yi)를 발생한다. 페이지 버퍼(233)는 비트 라 인(BL0~BLm)을 통해 셀 어레이(231)와 연결된다.
페이지 버퍼(233)는 버퍼 메모리(221)로부터 로드(load)된 데이터를 저장한다. 페이지 버퍼(233)에는 한 페이지 분량의 데이터가 로드되며, 로드된 데이터는 프로그램 동작 시에 선택된 페이지(예를 들면, page0)에 동시에 프로그램된다. 반대로, 페이지 버퍼(233)는 읽기 동작 시에 페이지(page0)로부터 데이터를 읽고, 읽은 데이터를 임시로 저장한다. 페이지 버퍼(233)에 저장된 데이터는 읽기 인에이블 신호(nRE, 도시되지 않음)에 응답하여 버퍼 메모리(221) 또는 LSB 백업 메모리(222)로 전송된다.
비트 라인 선택회로(234)는 선택 신호(Yi)에 응답하여 비트 라인을 선택하기 위한 회로이다. 데이터 버퍼(235)는 메모리 컨트롤러(235)와 플래시 메모리(230) 사이의 데이터 전송에 사용되는 입출력용 버퍼이다. 제어 유닛(236)은 메모리 컨트롤러(220)로부터 제어 신호를 입력받고, 플래시 메모리(230)의 내부 동작을 제어하기 위한 회로이다.
본 발명의 제 1 실시 예에 따른 메모리 시스템(200)은 메모리 컨트롤러(220) 내에 LSB 백업 메모리(222)를 구비한다. 본 발명은 상위 비트(MSB)를 프로그램하기 전에, 하위 비트(LSB)를 LSB 백업 메모리(222)에 저장한다. 그 다음에, 상위 비트(MSB)를 프로그램한다. 만약, 상위 비트(MSB)가 셀 어레이(231)에 정상적으로 프로그램되었으면, LSB 백업 메모리(222)에 저장되어 있는 하위 비트(LSB)를 소거한다.
그러나 상위 비트(MSB)가 정상적으로 프로그램되지 않고 셀 어레이(231)에 저장된 하위 비트(LSB)가 손상되었다면, 프로그램 폐일(fail)된 메모리 셀을 포함하는 메모리 블록(block)을 배드 블록(bad block)으로 처리한다. 그 다음에, LSB 백업 메모리(222)에 저장되어 있는 하위 비트(LSB)를 다른 메모리 블록에 프로그램한다. 그리고 버퍼 메모리(221)에 저장되어 있는 상위 비트(MSB)를 프로그램한다.
본 발명에 의하면, 멀티 비트 데이터를 프로그램하는 경우에, 하위 비트(LSB)의 손실을 방지함은 물론, 하위 비트(LSB)를 안전하게 관리할 수 있다.
도 5는 도 4에 도시된 메모리 시스템의 멀티 비트 데이터 프로그램 동작을 설명하기 위한 순서도이다. 이하에서는 도 4 및 도 5를 참조하여, 2비트 데이터가 플래시 메모리(230)의 선택된 페이지(page0)에 프로그램되는 과정이 설명된다. 2비트 데이터 중에서, 먼저 프로그램되는 데이터는 하위 비트(LSB)이고, 나중에 프로그램되는 데이터는 상위 비트(MSB)이다.
S110 단계에서, 하위 비트(LSB)는 플래시 메모리(230)의 어느 메모리 블록(이하, 제 1 메모리 블록이라 함)에 프로그램된다. 여기에서, 하위 비트(LSB)는 메모리 컨트롤러(220) 내의 버퍼 메모리(221)에 저장된 다음에, 제 1 메모리 블록의 선택된 페이지(page0)에 프로그램된다.
S120 단계는 상위 비트(MSB)를 프로그램하기 전에, 하위 비트(LSB)를 메모리 컨트롤러(220) 내의 LSB 백업 메모리(222)에 백업한다. 즉, 플래시 메모리(230)는 제 1 메모리 블록의 선택된 페이지(page0)에 저장된 하위 비트(LSB)를 읽고, 페이지 버퍼(233)에 저장한다. 페이지 버퍼(233)에 저장된 하위 비트(LSB)는 읽기 인에이블 신호(nRE)에 응답하여 LSB 백업 메모리(222)에 저장된다.
S130 단계에서, 상위 비트(MSB)는 플래시 메모리(230)의 제 1 메모리 블록의 선택된 페이지(page0)에 프로그램된다. 상위 비트(MSB)는 메모리 컨트롤러(220) 내의 버퍼 메모리(221)에 저장된 다음에, 선택된 페이지(page0)에 프로그램된다.
S140 단계에서, 상위 비트(MSB)를 프로그램 한 다음에 프로그램 검증(program verify) 동작이 수행된다. 즉, 프로그램 폐일(fail) 여부가 판별된다. 만약, 프로그램 폐일이 아니면(No), 즉 멀티 비트 데이터가 정상적으로 프로그램되었으면, 해당 페이지(page0)에 대한 프로그램 동작은 종료된다. 이때 LSB 백업 메모리(222)에 저장되어 있는 하위 비트(LSB)는 소거된다. 만약, 프로그램 폐일이면(Yes), S150 및 S160 단계가 수행된다.
S150 단계에서, LSB 백업 메모리(222)에 저장된 하위 비트(LSB)는 플래시 메모리(230)의 다른 메모리 블록(이하, 제 2 메모리 블록이라 함)에 프로그램된다. 구체적으로, 제 2 메모리 블록의 다른 선택된 페이지(이하, page1이라 함)에 프로그램된다. 그리고 프로그램 폐일(fail)이 발생한 제 1 메모리 블록은 배드 블록(bad block)으로 처리된다.
S160 단계에서, 상위 비트(MSB)는 제 2 메모리 블록의 선택된 페이지(page1)에 프로그램된다. 여기에서, 플래시 메모리(230)는 메모리 컨트롤러(220) 내의 버퍼 메모리(221)로부터 상위 비트(MSB)를 입력받는다.
본 발명에 따른 메모리 시스템의 프로그램 방법에 의하면, 멀티 비트 데이터 프로그램 동작 시에 하위 비트(LSB)의 손실을 방지할 수 있다.
도 6은 본 발명에 따른 메모리 시스템의 제 2 실시 예를 보여주는 블록도이 다. 도 6을 참조하면, 본 발명에 따른 메모리 시스템(300)은 호스트(310), 메모리 컨트롤러(320), 제 1 플래시 메모리(330), 그리고 제 2 플래시 메모리(340)를 구비한다.
제 1 및 제 2 플래시 메모리(330, 340)는 도 4에서 설명한 플래시 메모리(230)와 마찬가지로, 하나의 메모리 셀에 멀티 비트 데이터(multi bit data)를 저장할 수 있다. 또한, 메모리 컨트롤러(320), 제 1 및 제 2 플래시 메모리(330, 340)은 하나의 메모리 카드로 집적될 수 있다.
메모리 컨트롤러(320)는 호스트(310)로부터 커맨드(command)를 입력받고, 제 1 및 제 2 플래시 메모리(330, 340)의 제반 동작을 제어한다. 메모리 컨트롤러(320)는 제 1 및 제 2 칩 선택 신호(CS1, CS2)를 발생한다. 제 1 칩 선택 신호(CS1)는 제 1 플래시 메모리(330)를 선택하기 위한 신호이고, 제 2 칩 선택 신호(CS2)는 제 2 플래시 메모리(340)를 선택하기 위한 신호이다.
도 6을 참조하면, 메모리 컨트롤러(320)는 제 1 및 제 2 버퍼 메모리(321, 323), 제 1 및 제 2 LSB 백업 메모리(322, 324)를 포함한다. 제 1 버퍼 메모리(321)와 제 1 LSB 백업 메모리(321, 322)는 제 1 플래시 메모리(330)의 쓰기 또는 읽기 동작에 사용하는 메모리이다. 그리고 제 2 버퍼 메모리(323)와 제 2 LSB 백업 메모리(323, 324)는 제 2 플래시 메모리(340)의 쓰기 또는 읽기 동작에 사용하는 메모리이다.
제 1 및 제 2 플래시 메모리(330, 340)는 각각 칩 선택 신호(CS1, CS2)에 의해 선택된다. 도 6에서, 제 1 및 제 2 플래시 메모리(330, 340)는 간단하게 셀 어 레이(331, 341) 및 페이지 버퍼(332, 342)를 포함한다. 제 1 및 제 2 플래시 메모리(330, 340)의 내부 구성 및 동작 원리는 도 4에 도시된 바와 같다.
이하에서는 도 6을 참조하여, 제 1 및 제 2 플래시 메모리(330)의 셀 어레이(331, 341)에 멀티 비트 데이터(multi bit data)가 쓰여 지는 동작을 살펴본다. 제 1 플래시 메모리(330)의 프로그램 동작이 먼저 수행된 다음에, 제 2 플래시 메모리(340)의 프로그램 동작이 수행된다고 가정한다.
먼저, 제 1 칩 선택 신호(CS1)에 의해, 제 1 플래시 메모리(330)가 활성화 된다. 제 1 플래시 메모리(330)의 선택된 페이지(이하, page2라 함)에 하위 비트(LSB)가 쓰여진다. 메모리 컨트롤러(320)는 제 1 플래시 메모리(330)에 상위 비트(MSB)를 쓰기 전에, 페이지(page2)에 있는 하위 비트(LSB)를 읽고, 제 1 LSB 백업 메모리(322)에 백업한다. 그 다음에, 메모리 컨트롤러(320)는 제 1 버퍼 메모리(321)에 저장된 상위 비트(MSB)를 페이지 버퍼(332)를 통해 페이지(page2)에 프로그램한다.
상위 비트(MSB)를 프로그램한 후, 페이지(page2)에 프로그램이 제대로 되었는지를 검증한다. 프로그램 검증 결과, 프로그램 폐일(fail)이면, 즉 정상적으로 프로그램되지 않은 데이터가 존재하면, 프로그램 전압을 증가해가면서 수차례 프로그램 동작 및 프로그램 검증 동작을 반복한다. 수차례의 프로그램 동작으로, 페이지(page2)의 모든 데이터가 정상적으로 프로그램되면, 메모리 컨트롤러(320)는 제 1 LSB 백업 메모리(322)에 저장되어 있는 하위 비트(LSB)를 소거한다.
그러나 수차례의 프로그램 동작을 하여도, 정상적으로 프로그램되지 않은 데 이터가 존재하면, 메모리 컨트롤러(320)는 프로그램 폐일이 발생한 메모리 셀을 포함하는 메모리 블록을 배드 블록(bad block)으로 처리한다. 그 다음에, 메모리 컨트롤러(320)는 제 1 LSB 백업 메모리(322)에 저장된 하위 비트(LSB)를 다른 메모리 블록의 선택된 페이지(이하, page3라 함)에 프로그램한다. LSB 데이터를 프로그램 한 다음에, 제 1 버퍼 메모리(321)에 저장된 상위 비트(MSB)를 페이지(page3)에 프로그램한다.
제 2 칩 선택 신호(CS2)가 발생한 경우에는 제 2 플래시 메모리(340)가 활성화된다. 이때 제 2 플래시 메모리(340)에 멀티 비트 데이터가 프로그램된다. 제 2 플래시 메모리(340)의 프로그램 동작은 제 1 플래시 메모리(330)의 프로그램 동작과 동일하다.
다만, 제 2 플래시 메모리(340)에 멀티 비트 데이터를 프로그램하고자 하는 경우에는, 메모리 컨트롤로(320) 내의 제 2 버퍼 메모리(323) 및 제 2 LSB 백업 메모리(324)를 이용한다. 여기에서, 제 2 버퍼 메모리(323)는 제 1 버퍼 메모리(321)와 동일한 기능을 수행하며, 제 2 LSB 백업 메모리(324)는 제 1 LSB 백업 메모리(322)와 동일한 기능을 수행한다.
도 6에 도시된 메모리 시스템(300)은, 도 4에 도시된 메모리 시스템(200)에 비해, 플래시 메모리 수의 증가에 따라 메모리 컨트롤러(320) 내의 버퍼 메모리의 용량을 2배 이상 사용한다. 한편, 도 6에서 제 1 및 제 2 버퍼 메모리(321, 323), 제 1 및 제 2 LSB 백업 메모리(322, 324)는 하나의 메모리로 구현될 수 있다. 즉, 하나의 랜덤 액세스 메모리가 4개의 영역으로 구분되어 사용될 수 있다.
도 7은 본 발명에 따른 메모리 시스템의 제 3 실시 예를 보여주는 블록도이다.
도 7을 참조하면, 본 발명에 따른 메모리 시스템(400)은 호스트(410), 메모리 컨트롤러(420), 그리고 복수의 플래시 메모리(431~43n)를 구비한다.
메모리 컨트롤러(420)는 제 1 내지 제 n 플래시 메모리(431~43n)에 각각 사용되는 제 1 내지 제 n 버퍼 메모리(421~42n) 및 제 1 내지 제 n LSB 백업 메모리(421'~42n')를 구비한다. 각각의 플래시 메모리에 대한 멀티 비트 데이터의 프로그램 동작은 제 1 및 제 2 실시 예에서 설명한 바와 동일하다. 메모리 컨트롤러(420)는 멀티 비트 데이터를 프로그램할 때, 하위 비트(LSB)를 정확하게 기록하기 위해 플래시 메모리 1개당 2개, 즉 플래시 메모리가 1개 추가될 때마다 2배의 버퍼 메모리 용량을 필요로 한다.
이상에서 설명한 바와 같이, 본 발명에 따른 메모리 시스템은 하위 비트(LSB)의 손실을 방지하기 위해, 상위 비트(MSB)를 프로그램하기 전에, 하위 비트(LSB)를 백업한다. 이를 위해 본 발명은 메모리 컨트롤러 내에 LSB 백업을 위한 메모리를 포함한다. 본 발명에 의하면, 프로그램 폐일로 인해 LSB 데이터가 손실되는 것을 방지하고, 데이터를 안전하게 관리할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사항에 의해 정해져야 할 것 이다.
본 발명에 따른 메모리 시스템은 상위 비트 데이터를 프로그램하기 전에 하위 비트 데이터를 메모리 컨트롤러 내의 버퍼 메모리에 백업한다. 본 발명에 의하면, 프로그램 폐일(fail)로 인해 하위 비트 데이터가 손실되는 것을 방지할 수 있다.
Claims (21)
- 하나의 메모리 셀에 하위 비트 데이터 및 상위 비트 데이터를 저장하는 플래시 메모리; 및상기 하위 비트 데이터를 백업하기 위한 백업 메모리를 갖는 메모리 컨트롤러를 포함하되,상기 메모리 컨트롤러는 상기 상위 비트 데이터를 프로그램하기 전에, 상기 하위 비트 데이터를 상기 백업 메모리에 저장하는 메모리 시스템.
- 제 1 항에 있어서,상기 메모리 컨트롤러는 상기 상위 비트 데이터를 프로그램하는 과정에서 에러가 발생한 경우에, 상기 백업 메모리에 저장된 하위 비트 데이터를 사용하여 다시 프로그램 동작을 수행하는 메모리 시스템.
- 제 2 항에 있어서,상기 백업 메모리는 랜덤 액세스 메모리인 것을 특징으로 하는 메모리 시스템.
- 제 2 항에 있어서,상기 메모리 컨트롤러는 상기 플래시 메모리에 저장될 상기 하위 비트 데이 터 및 상기 상위 비트 데이터를 임시로 저장하기 위한 버퍼 메모리를 더 포함하는 메모리 시스템.
- 제 4 항에 있어서,상기 메모리 컨트롤러는 상기 상위 비트 데이터를 프로그램하는 과정에서 에러가 발생한 경우에, 상기 버퍼 메모리에 저장된 상위 비트 데이터를 사용하여 다시 프로그램 동작을 수행하는 메모리 시스템.
- 제 4 항에 있어서,상기 버퍼 메모리는 랜덤 액세스 메모리인 것을 특징으로 하는 메모리 시스템.
- 제 1 항에 있어서,상기 백업 메모리는상기 하위 비트 데이터를 백업하기 위한 백업 영역; 및상기 플래시 메모리에 프로그램될 데이터를 임시로 저장하기 위한 버퍼 영역을 포함하는 메모리 시스템.
- 제 7 항에 있어서,상기 메모리 컨트롤러는 상기 상위 비트 데이터를 프로그램하는 과정에서 에 러가 발생한 경우에, 상기 백업 영역에 저장된 하위 비트 데이터 및 상기 버퍼 영역에 저장된 상위 비트 데이터를 사용하여 다시 프로그램 동작을 수행하는 메모리 시스템.
- 제 1 항에 있어서,상기 플래시 메모리 및 상기 메모리 컨트롤러는 하나의 메모리 카드 내에 집적되는 메모리 시스템.
- 제 1 항에 있어서,상기 플래시 메모리는 낸드 플래시 메모리인 것을 특징으로 하는 메모리 시스템.
- 메모리 시스템의 프로그램 방법에 있어서:상기 메모리 시스템은하나의 메모리 셀에 하위 비트 데이터 및 상위 비트 데이터를 저장하는 플래시 메모리; 및상기 하위 비트 데이터를 백업하기 위한 백업 메모리를 갖는 메모리 컨트롤러를 포함하고,상기 메모리 시스템의 프로그램 방법은상기 하위 비트 데이터를 상기 플래시 메모리에 프로그램하는 단계; 및상기 상위 비트 데이터를 프로그램하기 전에, 상기 하위 비트 데이터를 상기 백업 메모리에 저장하는 단계; 및상기 상위 비트 데이터를 상기 플래시 메모리에 프로그램하는 단계를 포함하는 프로그램 방법.
- 제 11 항에 있어서,상기 메모리 컨트롤러는 버퍼 메모리를 더 포함하며,상기 하위 비트 데이터를 프로그램하는 단계에서, 상기 하위 비트 데이터는 상기 버퍼 메모리에 임시로 저장된 다음에, 상기 플래시 메모리에 프로그램되는 프로그램 방법.
- 제 12 항에 있어서,상기 상위 비트 데이터를 프로그램하는 단계에서, 상기 상위 비트 데이터는 상기 버퍼 메모리에 임시로 저장된 다음에, 상기 플래시 메모리에 프로그램되는 프로그램 방법.
- 제 13 항에 있어서,상기 상위 비트 데이터를 프로그램하는 단계에서, 에러가 발생한 경우에 상기 백업 메모리에 저장된 하위 비트 데이터를 사용하여 다시 프로그램 동작을 수행하는 프로그램 방법.
- 제 14 항에 있어서,상기 상위 비트 데이터를 프로그램하는 단계에서, 에러가 발생한 경우에 상기 버퍼 메모리에 저장된 상위 비트 데이터를 사용하여 다시 프로그램 동작을 수행하는 프로그램 방법.
- 제 15 항에 있어서,에러가 발생한 메모리 블록은 배드 블록으로 처리되고, 상기 백업 메모리에 저장된 하위 비트 데이터 및 상기 버퍼 메모리에 저장된 상위 비트 데이터는 다른 메모리 블록에 다시 프로그램되는 프로그램 방법.
- 제 11 항에 있어서,상기 백업 메모리는상기 하위 비트 데이터를 백업하기 위한 백업 영역; 및상기 플래시 메모리에 저장될 데이터를 임시로 저장하기 위한 버퍼 영역을 포함하고,상기 하위 비트 데이터를 프로그램하는 단계에서, 상기 하위 비트 데이터는 상기 버퍼 영역에 임시로 저장된 다음에, 상기 플래시 메모리에 프로그램되는 프로그램 방법.
- 제 17 항에 있어서,상기 상위 비트 데이터를 프로그램하는 단계에서, 상기 상위 비트 데이터는 상기 버퍼 영역에 임시로 저장된 다음에, 상기 플래시 메모리에 프로그램되는 프로그램 방법.
- 제 18 항에 있어서,상기 상위 비트 데이터를 프로그램하는 단계에서, 에러가 발생한 경우에 상기 백업 영역에 저장된 하위 비트 데이터를 사용하여 다시 프로그램 동작을 수행하는 프로그램 방법.
- 제 19 항에 있어서,상기 상위 비트 데이터를 프로그램하는 단계에서, 에러가 발생한 경우에 상기 버퍼 영역에 저장된 상위 비트 데이터를 사용하여 다시 프로그램 동작을 수행하는 프로그램 방법.
- 제 20 항에 있어서,에러가 발생한 메모리 블록은 배드 블록으로 처리되고, 상기 백업 영역에 저장된 하위 비트 데이터 및 상기 버퍼 영역에 저장된 상위 비트 데이터는 다른 메모리 블록에 다시 프로그램되는 프로그램 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060092472A KR100894809B1 (ko) | 2006-09-22 | 2006-09-22 | 메모리 시스템 및 그것의 프로그램 방법 |
US11/730,265 US7554859B2 (en) | 2006-09-22 | 2007-03-30 | Nonvolatile memory system and associated programming methods |
DE102007046401.2A DE102007046401B4 (de) | 2006-09-22 | 2007-09-21 | Nichtflüchtiges Halbleiterspeichersystem und zugehöriges Verfahren zum Durchführen einer Programmieroperation |
CN2007103081833A CN101202106B (zh) | 2006-09-22 | 2007-09-24 | 非易失性存储系统及其相应的编程方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060092472A KR100894809B1 (ko) | 2006-09-22 | 2006-09-22 | 메모리 시스템 및 그것의 프로그램 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080027419A true KR20080027419A (ko) | 2008-03-27 |
KR100894809B1 KR100894809B1 (ko) | 2009-04-24 |
Family
ID=39224763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060092472A KR100894809B1 (ko) | 2006-09-22 | 2006-09-22 | 메모리 시스템 및 그것의 프로그램 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7554859B2 (ko) |
KR (1) | KR100894809B1 (ko) |
CN (1) | CN101202106B (ko) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100889781B1 (ko) * | 2007-04-30 | 2009-03-20 | 삼성전자주식회사 | 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템 |
US7706181B2 (en) | 2007-05-02 | 2010-04-27 | Samsung Electronics Co., Ltd. | Multi-bit programming device and method using single-bit memory cells |
KR20110094640A (ko) * | 2010-02-17 | 2011-08-24 | 삼성전자주식회사 | 페이지 버퍼 관리 방법과 상기 방법을 수행할 수 있는 장치들 |
US8310869B2 (en) | 2009-03-02 | 2012-11-13 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, system, and programming method |
US9223692B2 (en) | 2012-08-08 | 2015-12-29 | Samsung Electronics Co., Ltd. | Nonvolatile memory device with multi-level memory cells and programming method |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101194841B1 (ko) * | 2006-12-28 | 2012-10-25 | 삼성전자주식회사 | 메모리 셀 프로그래밍 방법 |
KR101300821B1 (ko) * | 2007-07-04 | 2013-08-26 | 삼성전자주식회사 | 비휘발성 메모리의 데이터 손실을 방지하기 위한 장치 및방법 |
US20090089514A1 (en) * | 2007-09-28 | 2009-04-02 | Durgesh Srivastava | Implementing Asynchronous Request for Forcing Dynamic Memory into Self Refresh |
KR101005120B1 (ko) * | 2009-02-04 | 2011-01-04 | 주식회사 하이닉스반도체 | 불휘발성 메모리 소자의 프로그램 방법 |
JP2011048725A (ja) * | 2009-08-28 | 2011-03-10 | Panasonic Corp | 不揮発性記憶装置および不揮発性メモリコントローラ |
TWI408688B (zh) * | 2009-10-12 | 2013-09-11 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
US8756387B2 (en) * | 2010-03-05 | 2014-06-17 | International Business Machines Corporation | Method and apparatus for optimizing the performance of a storage system |
KR102020818B1 (ko) * | 2012-07-02 | 2019-09-16 | 삼성전자주식회사 | 3차원 불휘발성 메모리 및 3차원 불휘발성 메모리를 포함하는 메모리 시스템 및의 프로그램 방법 |
US9606730B2 (en) | 2012-05-04 | 2017-03-28 | Samsung Electronics Co., Ltd. | System and method including three dimensional nonvolatile memory device and random access memory |
US20140219021A1 (en) * | 2013-02-07 | 2014-08-07 | Seagate Technology Llc | Data protection for unexpected power loss |
US9400744B2 (en) * | 2012-10-30 | 2016-07-26 | Mangstor, Inc. | Magnetic random access memory journal for multi-level cell flash memory |
KR102002826B1 (ko) * | 2012-12-04 | 2019-07-23 | 삼성전자 주식회사 | 저장 장치, 플래시 메모리 및 저장 장치의 동작 방법 |
US9117530B2 (en) | 2013-03-14 | 2015-08-25 | Sandisk Technologies Inc. | Preserving data from adjacent word lines while programming binary non-volatile storage elements |
US9009568B2 (en) | 2013-08-09 | 2015-04-14 | Sandisk Technologies Inc. | Sensing parameter management in non-volatile memory storage system to compensate for broken word lines |
CN105684086A (zh) * | 2013-09-27 | 2016-06-15 | 慧与发展有限责任合伙企业 | 存储器模块上的存储器备用 |
US9773547B2 (en) | 2014-01-31 | 2017-09-26 | Hewlett Packard Enterprise Development Lp | Non-volatile memory with multiple latency tiers |
US20170270044A1 (en) * | 2014-10-03 | 2017-09-21 | Agency For Science, Technology And Research | Active Storage Unit and Array |
KR102387461B1 (ko) * | 2017-07-24 | 2022-04-15 | 삼성전자주식회사 | 스토리지 장치, 스토리지 시스템 및 이의 동작 방법 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5107457A (en) * | 1989-04-03 | 1992-04-21 | The Johns Hopkins University | Stack data cache having a stack management hardware with internal and external stack pointers and buffers for handling underflow and overflow stack |
JP2000173289A (ja) | 1998-12-10 | 2000-06-23 | Toshiba Corp | エラー訂正可能なフラッシュメモリシステム |
JP2000222232A (ja) | 1999-01-28 | 2000-08-11 | Toshiba Corp | 電子計算機及び電子計算機のメモリ障害回避方法 |
JP3983969B2 (ja) * | 2000-03-08 | 2007-09-26 | 株式会社東芝 | 不揮発性半導体記憶装置 |
KR100386296B1 (ko) | 2000-12-30 | 2003-06-02 | 주식회사 하이닉스반도체 | 멀티레벨을 가지는 플래쉬 메모리를 프로그램/리드하기위한 회로 및 그 방법 |
JP2002334586A (ja) | 2001-05-07 | 2002-11-22 | Yamaha Corp | フラッシュメモリを用いた情報記憶方法および情報記憶プログラム |
US6671204B2 (en) * | 2001-07-23 | 2003-12-30 | Samsung Electronics Co., Ltd. | Nonvolatile memory device with page buffer having dual registers and methods of using the same |
JP4034949B2 (ja) | 2001-09-06 | 2008-01-16 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
KR100463197B1 (ko) * | 2001-12-24 | 2004-12-23 | 삼성전자주식회사 | 멀티-페이지 프로그램 동작, 멀티-페이지 읽기 동작,그리고 멀티-블록 소거 동작을 갖는 낸드 플래시 메모리장치 |
US6836432B1 (en) * | 2002-02-11 | 2004-12-28 | Advanced Micro Devices, Inc. | Partial page programming of multi level flash |
US6871257B2 (en) | 2002-02-22 | 2005-03-22 | Sandisk Corporation | Pipelined parallel programming operation in a non-volatile memory system |
JP4158526B2 (ja) | 2003-01-09 | 2008-10-01 | 松下電器産業株式会社 | メモリカード及びメモリへのデータ書き込み方法 |
KR100512181B1 (ko) | 2003-07-11 | 2005-09-05 | 삼성전자주식회사 | 멀티 레벨 셀을 갖는 플래시 메모리 장치와 그것의 독출방법 및 프로그램 방법 |
KR100630535B1 (ko) * | 2004-03-23 | 2006-09-29 | 에스티마이크로일렉트로닉스 엔.브이. | 멀티 레벨 낸드 플래시 메모리 셀의 독출 방법 및 회로 |
US7420847B2 (en) | 2004-12-14 | 2008-09-02 | Sandisk Corporation | Multi-state memory having data recovery after program fail |
KR100723772B1 (ko) * | 2005-03-28 | 2007-05-30 | 주식회사 하이닉스반도체 | 개선된 프로그램 동작 성능을 가지는 플래쉬 메모리 소자의페이지 버퍼 및 그것의 프로그램 동작 제어 방법 |
KR101080912B1 (ko) | 2005-04-11 | 2011-11-09 | 주식회사 하이닉스반도체 | 멀티 레벨 셀을 갖는 비휘발성 메모리 장치의 프로그램방법 |
EP1750278B1 (en) * | 2005-07-28 | 2009-11-11 | STMicroelectronics S.r.l. | Method of programming a four-level flash memory device and a related page buffer |
-
2006
- 2006-09-22 KR KR1020060092472A patent/KR100894809B1/ko active IP Right Grant
-
2007
- 2007-03-30 US US11/730,265 patent/US7554859B2/en active Active
- 2007-09-24 CN CN2007103081833A patent/CN101202106B/zh active Active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100889781B1 (ko) * | 2007-04-30 | 2009-03-20 | 삼성전자주식회사 | 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템 |
US8031522B2 (en) | 2007-04-30 | 2011-10-04 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
US8223544B2 (en) | 2007-04-30 | 2012-07-17 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
US8614914B2 (en) | 2007-04-30 | 2013-12-24 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
US9030876B2 (en) | 2007-04-30 | 2015-05-12 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
US9275742B2 (en) | 2007-04-30 | 2016-03-01 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
US9460796B2 (en) | 2007-04-30 | 2016-10-04 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
US7706181B2 (en) | 2007-05-02 | 2010-04-27 | Samsung Electronics Co., Ltd. | Multi-bit programming device and method using single-bit memory cells |
US8310869B2 (en) | 2009-03-02 | 2012-11-13 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, system, and programming method |
KR20110094640A (ko) * | 2010-02-17 | 2011-08-24 | 삼성전자주식회사 | 페이지 버퍼 관리 방법과 상기 방법을 수행할 수 있는 장치들 |
US9223692B2 (en) | 2012-08-08 | 2015-12-29 | Samsung Electronics Co., Ltd. | Nonvolatile memory device with multi-level memory cells and programming method |
Also Published As
Publication number | Publication date |
---|---|
US20080074928A1 (en) | 2008-03-27 |
CN101202106B (zh) | 2012-12-19 |
US7554859B2 (en) | 2009-06-30 |
KR100894809B1 (ko) | 2009-04-24 |
CN101202106A (zh) | 2008-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100894809B1 (ko) | 메모리 시스템 및 그것의 프로그램 방법 | |
KR100878479B1 (ko) | 데이터 정보에 따라 프로그램 방식을 결정하는 메모리시스템 | |
KR100799688B1 (ko) | 백업 회로를 갖는 메모리 시스템 및 그것의 프로그램 방법 | |
KR100875539B1 (ko) | 프로그램 방식을 선택할 수 있는 메모리 시스템 | |
KR100845526B1 (ko) | 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법 | |
KR100823170B1 (ko) | 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드 | |
US7596021B2 (en) | Memory system including MLC flash memory | |
US9665425B2 (en) | Nonvolatile memory system and related method of operation | |
KR100850515B1 (ko) | 멀티레벨 셀 플래시 메모리를 갖는 메모리 시스템 및그것의 프로그램 방법 | |
US8270227B2 (en) | Nonvolatile memory device and method of reading same | |
US8284599B2 (en) | Nonvolatile memory device and related programming method | |
US8379456B2 (en) | Nonvolatile memory devices having dummy cell and bias methods thereof | |
US8082382B2 (en) | Memory device with user configurable density/performance | |
US8966163B2 (en) | Non-volatile memory device and method for programming the same | |
US7336531B2 (en) | Multiple level cell memory device with single bit per cell, re-mappable memory block | |
KR101616097B1 (ko) | 불휘발성 메모리 장치의 프로그램 방법 | |
KR101772578B1 (ko) | 불휘발성 메모리 장치의 프로그램 방법 | |
US8611150B2 (en) | Flash memory device including flag cells and method of programming the same | |
US7706181B2 (en) | Multi-bit programming device and method using single-bit memory cells | |
US20100241929A1 (en) | Semiconductor Memory Device for Performing Additional ECC Correction According to Cell Pattern and Electronic System Including the Same | |
US20140254263A1 (en) | Write Sequence Providing Write Abort Protection | |
KR101030146B1 (ko) | 페이지 버퍼를 쓰기 캐시로 이용하는 플래시 기반 저장 장치 및 이용 방법 | |
US9053011B2 (en) | Selective protection of lower page data during upper page write | |
KR20110001098A (ko) | 불휘발성 메모리 소자의 프로그램 방법 | |
KR20220157806A (ko) | 메모리 장치 및 그 동작 방법 |
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 | ||
FPAY | Annual fee payment | ||
FPAY | Annual fee payment |
Payment date: 20190329 Year of fee payment: 11 |