KR20070027161A - 비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치 - Google Patents

비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20070027161A
KR20070027161A KR1020050082496A KR20050082496A KR20070027161A KR 20070027161 A KR20070027161 A KR 20070027161A KR 1020050082496 A KR1020050082496 A KR 1020050082496A KR 20050082496 A KR20050082496 A KR 20050082496A KR 20070027161 A KR20070027161 A KR 20070027161A
Authority
KR
South Korea
Prior art keywords
data
page
plane
updated
external buffer
Prior art date
Application number
KR1020050082496A
Other languages
English (en)
Other versions
KR100714873B1 (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 KR1020050082496A priority Critical patent/KR100714873B1/ko
Priority to TW095132832A priority patent/TW200717238A/zh
Priority to US11/516,672 priority patent/US20070081386A1/en
Publication of KR20070027161A publication Critical patent/KR20070027161A/ko
Application granted granted Critical
Publication of KR100714873B1 publication Critical patent/KR100714873B1/ko

Links

Images

Classifications

    • 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
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/08Address circuits; Decoders; Word-line control circuits

Abstract

본 발명은 외부 버퍼를 이용하여 다중 플레인 구조의 비휘발성 메모리에 페이지 단위로 저장된 데이터를 갱신하는 방법에 관한 것이다. 비휘발성 메모리의 각 플레인별로 갱신 대상 페이지에서 갱신하지않을 데이터는 외부 버퍼로 이동된다. 외부 버퍼에 저장된 데이터는 각 플레인에서 비어있는 페이지에 로딩하여 더미 프로그램된다. 호스트로부터 입력된 갱신할 데이터는 각 플레인의 데이터가 로딩된 페이지에 랜덤입력되어 프로그램된다.

Description

비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치{Method of and apparatus for updating data in non-volatile memory}
도 1(a)는 본 발명이 적용되는 낸드 플래시 메모리 어레이를 도시한 것이다.
도 1(b)는 도 1(a)에서 한 페이지를 분리하여 도시한 것이다.
도 2(a)는 두 개의 플레인을 갖는 낸드 플래시 메모리의 구조를 도시한 것이다.
도 2(b)는 도 2(a)의 두 플레인에 대한 페이지 프로그램 과정을 도시한 것이다.
도 3은 단일 채널을 통해 데이터를 갱신하는 경우 낸드 플래시 메모리에 저장된 데이터의 변화를 도시한 것이다.
도 4는 본 발명에 따른 데이터 갱신 장치에 대한 블록도이다.
도 5는 본 발명에 따른 단일 채널의 낸드 플래시 메모리에 대한 데이터 갱신 방법에 대한 흐름도를 도시한 것이다.
도 6은 두 채널을 통해 데이터를 갱신하는 경우 각 낸드 플래시 메모리의 내부 구조를 도시한 것이다.
도 7은 본 발명에 따른 복수 채널의 낸드 플래시 메모리들에 대한 데이터 갱신 방법에 대한 흐름도를 도시한 것이다.
본 발명은 비휘발성 메모리(Non Volatile Memory, NVM)에서 데이터 갱신 방법 및 이를 위한 장치에 관한 것으로, 특히 페이지 카피 백(page copy back) 기능이 없는 NVM에서 데이터를 갱신하는 방법 및 이를 위한 장치에 관한 것이다.
NVM, 예를 들어 낸드 플래시 메모리(NAND flash memory)는 1비트의 정보를 저장하는 단일 레벨 셀(single level cell)로 구성된 경우 페이지 카피 백 기능을 지원한다. 여기서, 페이지 카피 백 기능은 낸드 플래시 메모리 내에 버퍼를 두어서 갱신 대상의 소스 데이터(source data)를 일시 저장하는 기능을 말한다. 낸드 플래시 메모리는 덮어쓰기(overwrite) 기능이 없으므로 기존에 저장된 데이터를 갱신할 경우 먼저 갱신 대상 데이터를 버퍼에 저장한다. 다음으로, 해당 영역을 이레이즈(erase)한 다음 버퍼에 저장된 데이터를 로딩하고, 갱신할 데이터를 해당 위치에 랜덤 입력한 다음 프로그램한다.
이와 같은 페이지 카피 백 기능은 2비트의 정보를 저장하는 다중 레벨 셀(multi-level cell)의 낸드 플래시 메모리인 경우에는 지원되지않는다.
또한, 단일 레벨 셀의 낸드 플래시 메모리의 경우에도 데이터를 버퍼로 옮기는 과정에서 에러가 발생하는 경우가 많기 때문에 향후 페이지 카피 백 기능은 규격에서 제외될 수도 있다.
페이지 카피 백 기능을 지원하지않으며 다중 플레인(multi-plane) 구조를 갖 는 낸드 플래시 메모리에서 동일 플레인내의 동일 블록이나 동일 플레인내 다른 블록으로 데이터를 이동하고자하는 경우, 페이지 단위로 저장된 소스 데이터는 반드시 외부 버퍼로 이동된 후 목적지 페이지로 옮겨진다. 이 경우 플레인 수가 증가할수록 또는 복수의 낸드 플래시 메모리에 동시에 리드(read)/라이트(write)할 수 있는 인터페이스 채널 수가 증가할수록, 데이터 이동을 위한 외부 버퍼의 크기가 증가한다.
예를 들어, 2 채널의 2개 플레인을 갖고 페이지 크기가 2KB이며, 페이지 카피 백 기능이 없는 낸드 플래시 메모리내에서 데이터를 갱신하려면 8KB의 외부 버퍼가 필요하다. 그 이유는 다중 플레인에 페이지 프로그램하기 위해서는 동일선상의 블록내의 동일 페이지 어드레스에서만 프로그램이 가능하기 때문이다. 따라서, 외부 버퍼에 플레인별, 채널별로 소스 데이터를 저장한 후, 새로운 페이지에 호스트로부터 입력되는 갱신 데이터와 외부 버퍼로부터 리드한 소스 데이터를 순서에 맞게 플레인별, 채널별로 로딩하여 프로그램해야 하기 때문에 채널 수에 따라 외부 버퍼의 크기가 커지고 데이터 갱신과정이 복잡해진다.
본 발명이 이루고자하는 기술적 과제는 다중 플레인 구조의 다중 채널 NVM들에 저장된 데이터를 갱신할 때, 소스 데이터를 외부 버퍼에 저장한 다음, 저장된 데이터를 각 채널별로 프로그램하고자하는 플레인의 새로운 페이지에 로딩하고 호스트로부터 갱신할 데이터를 랜덤 입력받아서 모든 채널을 통해 실질적으로 동시에 라이트하는, NVM에서 데이터 갱신 방법 및 이를 위한 장치를 제공하는데 있다.
상기 기술적 과제를 이루기위한, 본 발명은 외부 버퍼를 이용하여 다중 플레인 구조의 비휘발성 메모리에 페이지 단위로 저장된 데이터를 갱신하는 방법에 관한 것이다. 먼저, 비휘발성 메모리의 각 플레인별로 갱신 대상 페이지에서 갱신하지않을 데이터는 상기 외부 버퍼로 이동된다. 상기 외부 버퍼에 저장된 데이터는 각 플레인에서 비어있는 페이지에 로딩되어 더미 프로그램된다. 호스트로부터 입력된 갱신할 데이터는 상기 플레인들의 상기 데이터가 로딩된 페이지에 랜덤입력되어 프로그램된다.
상기 기술적 과제를 이루기위한, 본 발명은 외부 버퍼를 이용하여 다중 플레인 구조의 복수의 비휘발성 메모리들에 각각 페이지 단위로 저장된 데이터를 갱신하는 방법에 관한 것이다. 제1비휘발성 메모리의 각 플레인별로 갱신 대상 페이지에서 갱신하지않을 데이터는 상기 외부 버퍼로 이동된다. 상기 외부 버퍼에 저장된 데이터는 상기 제1휘발성 메모리의 각 플레인에서 비어있는 페이지에 로딩되어 더미 프로그램되고, 상술한 과정들이 나머지 비휘발성 메모리들에 대해서 수행된다. 호스트로부터 입력된 갱신할 데이터는 각 비휘발성 메모리에서 각 플레인들의 상기 데이터가 로딩된 페이지에 실질적으로 동시에 랜덤입력되어 프로그램된다.
상기 기술적 과제를 이루기위한, 본 발명은 호스트로부터 갱신할 데이터를 입력받아서 데이터를 갱신하는 장치에 관한 것으로, 비휘발성 메모리의 데이터 갱신 장치는 복수의 비휘발성 메모리들, 외부 버퍼 및 제어부를 포함한다. 상기 비휘발성 메모리들은 복수의 플레인을 포함하고 상기 플레인들에 페이지 단위로 데이터 를 저장한다. 상기 외부 버퍼는 상기 비휘발성 메모리들의 외부에 위치한다. 상기 제어부는 상기 비휘발성 메모리들에 대해 각 플레인별로 갱신대상 페이지에서 갱신하지 않을 데이터를 상기 외부 버퍼로 이동하고 상기 외부 버퍼에 저장된 데이터를 각 플레인별로 비어있는 페이지에 로딩하여 더미 프로그램하는 과정을 순차적으로 수행하며, 상기 호스트로부터 입력된 갱신할 데이터를 상기 비휘발성 메모리들에서 각 플레인들의 상기 데이터가 로딩된 페이지에 실질적으로 동시에 랜덤입력하여 프로그램한다.
이하에서 첨부된 도면을 참조하여 본 발명을 설명하기로한다.
도 1(a)는 본 발명이 적용되는 낸드 플래시 메모리 어레이를 도시한 것이다. 도 1(b)는 도 1(a)에서 한 페이지를 분리하여 도시한 것이다.
도시된 낸드 플래시 메모리 어레이는 하나의 디바이스(device)를 나타낸다. 하나의 디바이스는 2K블록으로 구성되며, 한 블록은 128페이지로 구성된다. 한 페이지는 (2K+64)바이트로 구성된다. 블록내의 페이지 액세스(page access)는 로우 어드레스로 지정하며 페이지내 위치는 칼럼 어드레스로 지정한다. 또한 하나의 디바이스는 다중 플레인 구조로 되어 있으며, 카피 백 기능은 지원하지 않는다.
도 2(a)는 두 개의 플레인을 갖는 낸드 플래시 메모리의 구조를 도시한 것이다. 도시된 바에 따르면, 하나의 플레인은 1K블록으로 이루어지고, 플레인 0는 홀수번째 어드레스를 갖는 블록들, 플레인 1은 짝수번째 어드레스를 갖는 블록들로 이루어짐을 알 수 있다.
도 2(b)는 도 2(a)의 두 플레인을 페이지 단위로 프로그램하는 페이지 프로 그램 과정을 도시한 것이다.
도시된 두 플레인을 페이지 프로그램할 때에는 동일 선상의 블록내에 동일 선상의 페이지만 지원할 수 있으며, 두 플레인에 대한 블록 이레이즈에서도 동일 선상의 블록들만이 이레이즈되는 제약조건이 있다. 즉, 도시된 두 플레인에서 빗금 친 블록인 블록 2와 블록 3은 각각 플레인 0 및 1의 두번째 블록에 해당하며, 동일선상에 위치한 블록들이라고 할 수 있다. 두 플레인에 대한 페이지 프로그램은 동일 선상의 블록내에서 동일 페이지 어드레스에서만 프로그램할 수 있다.
본 실시예에서 플레인 0에 대한 페이지 프로그램 명령어는 플레인 0의 해당 페이지로 소스 데이터를 로딩(loading)하는 데이터 입력 명령 80h와 데이터 로딩을 완료하는 더미 프로그램 명령(dummy program command) 11h가 있다.
플레인 1에 대한 페이지 프로그램 명령어는 플레인 1에 대한 데이터 입력 명령 81h와 로딩된 데이터를 페이지에 라이트하기 위한 실제 프로그램 명령(actual program command)인 10h가 있다.
또한, 일부분에 데이터가 저장된 페이지의 나머지 부분에 데이터를 더 저장하기 위해 해당 데이터를 입력받는 랜덤 데이터 입력 명령 85h가 사용된다.
상술한 명령어들을 사용하여 데이터를 프로그램하기위해서, 종래에는 플래시 전송 계층(Flash Translation Layer, FTL) 프로토콜에 따라 80h-11h 다음에는 반드시 81h-10h의 명령을 수행함으로써 플레인 0에 데이터를 로딩하여 더미 프로그램한 후 반드시 플레인 1에 데이터를 로딩하여 실제 프로그램해야한다.
도 3은 단일 채널을 통해 데이터를 갱신하는 경우 낸드 플래시 메모리에 저 장된 데이터의 변화를 도시한 것이다. 도시된 바에 따르면, 낸드 플래시 메모리(3)에 저장된 데이터중 블록 n의 페이지 P1에 위치한 플레인 0의 섹터(sector) S3와 플레인 1의 섹터 S0의 데이터가 갱신된다. 이를 위해, 먼저, 블록 n의 페이지 P1의 데이터중 갱신하지않을 데이터, 즉 섹터 S0, S1 및 S2의 데이터는 외부 버퍼(미도시)에 저장되고, 외부 버퍼에 저장된 데이터는 임의의 비어있는 블록 2의 임의의 페이지 P1에 로딩된다. 갱신할 데이터는 호스트(미도시)로부터 P1의 섹터 S3의 위치에 랜덤 입력되어 더미 프로그램된다. 다음으로, 플레인 1의 블록 2의 페이지 P1에는 갱신할 데이터가 호스트로부터 입력되고, 외부 버퍼로부터 S1,S2,S3의 데이터가 랜덤 입력된 후 실제 프로그램된다.
이러한 과정에 대한 명령어 입력은 다음과 같이 이루어진다. 블록 n의 페이지 P1에 위치한 데이터는 외부 버퍼(미도시)로 이동된 후, 80h-어드레스 (플레인 0, 블록 2, 페이지 P1)-데이터 (S0,S1,S3)-85h-어드레스(플레인 0, 블록 2, 페이지 P1, 섹터 S3)-새로운 데이터 (S3)-11h, 81h-어드레스(플레인 1, 블록 2, 페이지 P1)-새로운 데이터 (S0)-85h-어드레스(플레인 1, 블록 , 페이지 P1, 섹터 S1)-데이터(S1,S2,S3)-10h의 과정으로 이루어진다. 여기서, 어드레스(x)는 x에 해당하는 위치의 어드레스를 지정하는 명령을 나타내고, 데이터(y)는 y의 데이터를 외부 버퍼로부터 로딩하는 명령을 나타낸다. 또한 새로운 데이터(y)는 y의 데이터를 호스트로부터 입력받는 명령을 나타낸다.
상술한 과정을 복수의 채널에 대해 적용한다면, FTL에 따라 복수 채널을 통해 복수의 낸드 플래시 메모리가 동시에 프로그램되기 때문에 외부 버퍼는 복수 배 로 증가하여야한다. 즉, 외부 버퍼의 크기는 한 채널에 대해 (페이지 크기x플레인 수)로 결정되고, 복수 채널인 경우 채널 수만큼이 더 곱해진 크기를 갖는다.
따라서 본 발명에서는 각 낸드 플래시 메모리별로 데이터를 순차적으로 더미 프로그램한 다음, 호스트로부터 갱신할 데이터를 입력받아 실질적으로 동시에 프로그램함으로써 외부 버퍼의 크기를 채널 수와 관계없이 일정하게 유지하도록 한다.
도 4는 본 발명에 따른 데이터 갱신 장치에 대한 블록도이다. 도시된 장치는 호스트(40), 제어부(41), 제1 및 제2NVM(42, 43) 및 외부 버퍼(44)를 포함한다.
도시된 제1 및 제2NVM(42, 43)은 설명의 편의를 위해 두 개의 메모리만을 예시하였으나, 이에 한정되지않고 복수의 메모리가 채택될 수 있다.
먼저, 채널이 하나인 경우, 즉, 제1 및 제2휘발성 메모리(42, 43)중 어느 하나만이 제어부(41)에 연결되는 경우에 대해 도 4의 데이터 갱신 장치에 대한 동작을 도 5의 흐름도를 참조하여 설명하기로 한다. 도 5는 본 발명에 따른 단일 채널의 NVM에 대한 데이터 갱신 방법에 대한 흐름도를 도시한 것이다.
먼저, 호스트(40)로부터의 데이터 갱신 요구에 따라, 제어부(41)는 플레인별 해당 페이지에서 갱신하지않을 데이터를 외부 버퍼(44)로 이동한다(51단계). 제어부(41)는 각 플레인에서 비어있는 블록의 임의의 페이지에 외부 버퍼(11)로부터 데이터를 로딩하고(52단계), 더미 프로그램한다(53단계). 이때, 외부 버퍼(44)의 크기는 (플레인 수x 갱신 대상 페이지에서 갱신하지않을 데이터의 크기)인 것이 적절하다.
다음으로, 제어부(41)는 호스트(40)로부터 수신된 갱신할 데이터를 각 플레 인의 해당 페이지에 랜덤입력하여 프로그램한다. 보다 상세하게 설명하면, 제어부(41)는 호스트(40)로부터 수신된 갱신할 데이터를 플레인 0의 해당 페이지에 랜덤 입력하여 더미 프로그램하고(54단계), 플레인 1에 대해 호스트(40)로부터 수신된 갱신할 데이터를 플레인 1의 해당 페이지에 랜덤 입력하여 실제 프로그램한다(55단계).
상술한 과정에 대한 명령어의 입력은, 외부 버퍼(44)에 데이터가 저장된 후 80h-어드레스(플레인 0)-데이터(S0,S1,S2)-11h, 80h(또는 81h)-어드레스(플레인 1)-데이터(S1,S2,S3)-11h, 85h-어드레스(플레인 0)-새로운 데이터(S3)-11h, 85h-어드레스(플레인 1)-새로운 데이터(S0)-10h로 이루어진다.
도 6은 두 채널을 통해 데이터를 갱신하는 경우 각 NVM의 내부 구조를 도시한 것이다. 도시된 바에 따르면, NVM들(42, 43)에 각각 저장된 데이터중 블록 n의 페이지 P1에 위치한 플레인 0의 섹터 S3와 플레인 1의 섹터 S0의 데이터가 갱신된다.
도시된 두 채널 NVM들에 대한 데이터 갱신 방법을 도 7의 흐름도를 참조하여 설명하기로 한다.
호스트(40)로부터의 제1 및 제2NVM(42, 43)에 저장된 데이터에 대해 갱신요구에 따라, 제어부(41)는 임의의 순서로 제1NVM(42)의 각 플레인의 해당 페이지별로 갱신하지 않을 데이터를 외부 버퍼(44)로 이동한다(71단계). 제어부(41)는 외부 버퍼(44)에 저장된 데이터를 제1NVM(42)에서 비어있는 블록의 임의의 페이지에 각 플레인별로 로딩하여 더미 프로그램한다(72단계). 다음으로, 제어부(41)는 제 2NVM(43)의 각 플레인의 해당 페이지에서 갱신하지 않을 데이터를 외부 버퍼(44)로 이동한다(73단계). 제어부(41)는 외부 버퍼(44)에 저장된 데이터를 제2NVM(43)에서 비어있는 블록의 임의의 페이지에 각 플레인별로 로딩하여 더미 프로그램한다(74단계).
데이터 로딩이 완료되면, 제어부(41)는 호스트(40)로부터 수신한 갱신할 데이터를 각 NVM(42,43)에서 각 플레인의 해당 페이지에 실질적으로 동시에 랜덤입력하여 프로그램한다. 보다 상세하게 설명하면, 제어부(41)는 호스트(40)로부터 수신한 갱신할 데이터를 플레인 0의 해당 페이지에 실질적으로 동시에 랜덤입력하여 더미 프로그램한다(75단계). 만일 플레인의 개수가 두 개 이상의 복수 개라면 마지막 플레인을 제외한 모든 플레인들에 대해 갱신할 데이터를 플레인들의 해당 페이지에 실질적으로 동시에 랜덤입력하여 더미 프로그램한다.
다음으로, 제어부(41)는 호스트(40)로부터 수신한 갱신할 데이터를 각 NVM(42,43)의 플레인 1 또는 마지막 플레인의 해당 페이지에 실질적으로 동시에 랜덤입력하여 실제 프로그램 명령을 수행한다(76단계).
상술한 과정에 대한 명령어 입력은 다음과 같이 이루어진다. 채널 0에 대해 갱신하지 않을 데이터를 외부 버퍼(44)에 저장한 후, 80h-어드레스(플레인 0)-데이터(S0,S1,S2)-11h, 80h-어드레스(플레인 1)-데이터(S1,S2,S3)-11h 를 수행하여 비어있는 블록의 임의의 페이지에 외부 버퍼(44)로부터 데이터를 로딩하여 더미 프로그램한다. 다음으로, 채널 1에 대해 갱신하지 않을 데이터가 외부 버퍼(44)에 저장된 후, 80h-어드레스(플레인 0)-데이터(S0,S1,S2)-11h, 80h-어드레스(플레인 1)-데 이터(S1,S2,S3)-11h 를 수행하여 비어있는 블록의 임의의 페이지에 외부 버퍼(44)로부터 데이터를 로딩하여 더미 프로그램한다.
외부 버퍼(44)로부터 데이터 로딩이 완료되면, 채널 0과 채널 1에 대해 실질적으로 동시에 85h-어드레스(플레인 0)-새로운 데이터(S3)-11h, 85h-어드레스(플레인 1)-새로운 데이터(S0)-10h를 수행하여 제1 및 제2NVM(42,43)의 해당 페이지를 프로그램한다.
즉, 본 실시예에서는 갱신하지않을 데이터에 대해서는 NVM별로 플레인의 개수만큼 데이터 로딩을 반복하고, 갱신할 데이터에 대해서는 모든 NVM에 대해서 실질적으로 동시에 마지막 플레인을 제외한 나머지 플레인들에 대해 랜덤입력과 더미 프로그램 명령을 반복수행하며 마지막 플레인에는 랜덤 입력과 실제 프로그램 명령을 수행한다.
본 발명에 따르면, 페이지 카피 백 기능이 없는 복수 채널의 NVM들에 저장된 데이터를 갱신할 때, 갱신하지않을 데이터에 대해서는 채널별로 데이터 로딩 및 더미 프로그램을 반복 수행하고 갱신할 데이터에 대해서는 모든 NVM들에 실질적으로 동시에 랜덤 입력 및 실제 프로그램을 수행한다. 이로써 단일 채널을 통한 데이터 갱신에 필요한 크기의 외부 버퍼만으로 다채널 NVM들에 대한 데이터를 모두 갱신할 수 있다. 따라서 외부 버퍼의 크기가 채널 수에 따라 증가할 필요가 없다.

Claims (8)

  1. 외부 버퍼를 이용하여 다중 플레인 구조의 비휘발성 메모리에 페이지 단위로 저장된 데이터를 갱신하는 방법에 있어서,
    각 플레인별로 갱신 대상 페이지에서 갱신하지않을 데이터를 상기 외부 버퍼로 이동하는 단계;
    상기 외부 버퍼에 저장된 데이터를 각 플레인에서 비어있는 페이지에 로딩하여 더미 프로그램하는 단계; 및
    호스트로부터 입력된 갱신할 데이터를 상기 플레인들의 상기 데이터가 로딩된 페이지에 랜덤입력하여 프로그램하는 단계를 포함함을 특징으로하는 비휘발성 메모리에서 데이터 갱신 방법.
  2. 제1항에 있어서, 상기 프로그램하는 단계는
    상기 갱신할 데이터중 제1데이터를 상기 플레인들중에서 마지막 플레인을 제외한 나머지 플레인들의 상기 데이터가 로딩된 페이지에 랜덤입력하여 더미 프로그램하는 단계; 및
    상기 갱신할 데이터중 제2데이터를 상기 마지막 플레인에 랜덤입력하여 실제 프로그램하는 단계를 포함함을 특징으로하는 비휘발성 메모리에서 데이터 갱신 방법.
  3. 외부 버퍼를 이용하여 다중 플레인 구조의 복수의 비휘발성 메모리들에 각각 페이지 단위로 저장된 데이터를 갱신하는 방법에 있어서,
    제1비휘발성 메모리의 각 플레인별로 갱신 대상 페이지에서 갱신하지않을 데이터를 상기 외부 버퍼로 이동하는 단계;
    상기 외부 버퍼에 저장된 데이터를 상기 제1휘발성 메모리의 각 플레인에서 비어있는 페이지에 로딩하여 더미 프로그램하는 단계;
    상기 두 단계를 나머지 비휘발성 메모리들에 대해 수행하는 단계; 및
    호스트로부터 입력된 갱신할 데이터를 각 비휘발성 메모리에서 각 플레인들의 상기 데이터가 로딩된 페이지에 실질적으로 동시에 랜덤입력하여 프로그램하는 단계를 포함함을 특징으로하는 비휘발성 메모리에서 데이터 갱신 방법.
  4. 제3항에 있어서, 상기 프로그램하는 단계는
    상기 갱신할 데이터중 제1데이터를 각 비휘발성 메모리에서 마지막 플레인을 제외한 나머지 플레인들의 상기 데이터가 로딩된 페이지에 실질적으로 동시에 랜덤입력하여 더미 프로그램하는 단계; 및
    상기 갱신할 데이터중 제2데이터를 각 비휘발성 메모리에서 마지막 플레인의 상기 데이터가 로딩된 페이지에 실질적으로 동시에 랜덤입력하여 실제 프로그램하는 단계를 포함함을 특징으로하는 비휘발성 메모리에서 데이터 갱신 방법.
  5. 제3항 또는 제4항에 있어서, 상기 외부 버퍼의 크기는
    상기 갱신 대상 페이지에서 갱신하지않을 데이터의 크기x 상기 플레인 수로 결정되며, 채널 수와 무관한 것을 특징으로하는 비휘발성 메모리에서 데이터 갱신 방법.
  6. 호스트로부터 갱신할 데이터를 입력받아서 데이터를 갱신하는 장치에 있어서,
    복수의 플레인을 포함하고 상기 플레인들에 페이지 단위로 데이터를 저장하는 복수의 비휘발성 메모리들;
    상기 비휘발성 메모리들의 외부에 위치하는 외부 버퍼; 및
    상기 비휘발성 메모리들에 대해 각 플레인별로 갱신대상 페이지에서 갱신하지 않을 데이터를 상기 외부 버퍼로 이동하고 상기 외부 버퍼에 저장된 데이터를 각 플레인별로 비어있는 페이지에 로딩하여 더미 프로그램하는 과정을 순차적으로 수행하며, 상기 호스트로부터 입력된 갱신할 데이터를 상기 비휘발성 메모리들에서 각 플레인들의 상기 데이터가 로딩된 페이지에 실질적으로 동시에 랜덤입력하여 프로그램하는 제어부를 포함함을 특징으로하는 비휘발성 메모리의 데이터 갱신 장치.
  7. 제6항에 있어서, 상기 제어부는
    상기 갱신할 데이터중 제1데이터를 상기 비휘발성 메모리들에서 마지막 플레인을 제외한 나머지 플레인들의 상기 데이터가 로딩된 페이지에 실질적으로 동시에 랜덤입력하여 더미 프로그램하고, 상기 갱신할 데이터중 제2데이터를 상기 마지막 플레인의 상기 데이터가 로딩된 페이지에 실질적으로 동시에 랜덤입력하여 실제 프로그램하는 제어부를 포함함을 특징으로하는 비휘발성 메모리의 데이터 갱신 장치.
  8. 제6항 또는 제7항에 있어서, 상기 외부 버퍼는
    상기 갱신대상 페이지에서 갱신하지않을 데이터의 크기x 상기 플레인 수의 크기를 갖는 것을 특징으로하는 비휘발성 메모리의 데이터 갱신 장치.
KR1020050082496A 2005-09-06 2005-09-06 비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치 KR100714873B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020050082496A KR100714873B1 (ko) 2005-09-06 2005-09-06 비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치
TW095132832A TW200717238A (en) 2005-09-06 2006-09-06 Methods, circuits and computer program products for updating data in non-volatile memories
US11/516,672 US20070081386A1 (en) 2005-09-06 2006-09-06 Methods, circuits and computer program products for updating data in non-volatile memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050082496A KR100714873B1 (ko) 2005-09-06 2005-09-06 비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20070027161A true KR20070027161A (ko) 2007-03-09
KR100714873B1 KR100714873B1 (ko) 2007-05-07

Family

ID=37910955

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050082496A KR100714873B1 (ko) 2005-09-06 2005-09-06 비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치

Country Status (3)

Country Link
US (1) US20070081386A1 (ko)
KR (1) KR100714873B1 (ko)
TW (1) TW200717238A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100953062B1 (ko) * 2008-05-20 2010-04-13 주식회사 하이닉스반도체 불휘발성 메모리 소자의 어드레스 입력 방법 및 동작 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9348730B2 (en) * 2007-01-31 2016-05-24 Standard Microsystems Corporation Firmware ROM patch method
US8566504B2 (en) * 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
KR102102224B1 (ko) * 2013-10-01 2020-04-20 삼성전자주식회사 저장 장치 및 그것의 프로그램 방법
KR102195298B1 (ko) 2014-02-13 2020-12-24 삼성전자주식회사 비휘발성 메모리 장치의 부분 페이지 프로그램 방법
KR102211868B1 (ko) 2014-12-15 2021-02-04 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0562485A (ja) * 1991-09-05 1993-03-12 Hitachi Building Syst Eng & Service Co Ltd 制御装置の消去可能な読出し専用メモリの書換装置
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
JP3895816B2 (ja) 1996-12-25 2007-03-22 株式会社東芝 不揮発性半導体記憶装置とその制御方法、メモリカード、及び記憶システム
JP3916862B2 (ja) * 2000-10-03 2007-05-23 株式会社東芝 不揮発性半導体メモリ装置
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6871257B2 (en) * 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
JP2004030784A (ja) * 2002-06-26 2004-01-29 Fujitsu Ltd 半導体記憶装置
KR100914646B1 (ko) * 2002-08-31 2009-08-28 지인정보기술 주식회사 멀티-플레인 구조의 플래시 메모리 관리 방법
JP4563715B2 (ja) * 2003-04-29 2010-10-13 三星電子株式会社 パーシャルコピーバック動作モードを有するフラッシュメモリ装置
KR100654343B1 (ko) * 2003-07-15 2006-12-05 주식회사 레인콤 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
JP4237648B2 (ja) * 2004-01-30 2009-03-11 株式会社東芝 不揮発性半導体記憶装置
US7409473B2 (en) * 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
US7212440B2 (en) * 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
US7752382B2 (en) * 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
KR100685638B1 (ko) * 2006-03-31 2007-02-22 주식회사 하이닉스반도체 랜덤 프로그램 기능을 가지는 듀얼 플레인 타입 플래시메모리 장치 및 그 프로그램 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100953062B1 (ko) * 2008-05-20 2010-04-13 주식회사 하이닉스반도체 불휘발성 메모리 소자의 어드레스 입력 방법 및 동작 방법
US8085593B2 (en) 2008-05-20 2011-12-27 Hynix Semiconductor Inc. Method of inputting address in nonvolatile memory device and method of operating the nonvolatile memory device

Also Published As

Publication number Publication date
TW200717238A (en) 2007-05-01
KR100714873B1 (ko) 2007-05-07
US20070081386A1 (en) 2007-04-12

Similar Documents

Publication Publication Date Title
KR101005120B1 (ko) 불휘발성 메모리 소자의 프로그램 방법
US7349256B2 (en) Flash memory devices and methods of programming the same by overlapping programming operations for multiple mats
US7203791B2 (en) Flash memory device with partial copy-back mode
KR100714873B1 (ko) 비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치
JP2007179687A (ja) 不揮発性半導体記憶装置及びその駆動方法
KR20130050591A (ko) 불휘발성 메모리를 포함하는 메모리 장치 및 불휘발성 메모리의 제어 방법
JP2006107719A (ja) 不揮発性メモリ装置及びそれのプログラム方法
CN110780802A (zh) 存储器控制器及其操作方法
KR20110065759A (ko) 불휘발성 메모리 소자의 동작 방법
JP2011044200A (ja) 不揮発性半導体記憶装置
KR100967026B1 (ko) 불휘발성 메모리 장치 및 그 캐쉬리드 방법
KR100953044B1 (ko) 불휘발성 메모리 장치의 프로그램 방법
US8842474B2 (en) Nonvolatile memory device and nonvolatile memory system including the same
KR20120069954A (ko) 블럭 보호 기능을 갖는 비휘발성 메모리 시스템 및 블럭 상태 제어 방법
JP2021152858A5 (ko)
KR100953062B1 (ko) 불휘발성 메모리 소자의 어드레스 입력 방법 및 동작 방법
KR20110001098A (ko) 불휘발성 메모리 소자의 프로그램 방법
KR20100007714A (ko) 불휘발성 메모리 장치의 멀티 레벨 셀 프로그램 방법
JP6727365B1 (ja) 半導体記憶装置
US7944758B2 (en) Non-volatile memory device and method for copy-back thereof
KR20110001058A (ko) 불휘발성 메모리 소자의 동작 방법
US11443814B1 (en) Memory structure with marker bit and operation method thereof
KR100960478B1 (ko) 불휘발성 메모리 장치의 듀얼 플레인 카피백 방법
KR20120077277A (ko) 반도체 메모리 장치 및 그 동작 방법
EP3783614A1 (en) Nonvolatile memory device including a fast read page and a storage device including the same

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
LAPS Lapse due to unpaid annual fee