KR101030146B1 - 페이지 버퍼를 쓰기 캐시로 이용하는 플래시 기반 저장 장치 및 이용 방법 - Google Patents
페이지 버퍼를 쓰기 캐시로 이용하는 플래시 기반 저장 장치 및 이용 방법 Download PDFInfo
- Publication number
- KR101030146B1 KR101030146B1 KR1020080085146A KR20080085146A KR101030146B1 KR 101030146 B1 KR101030146 B1 KR 101030146B1 KR 1020080085146 A KR1020080085146 A KR 1020080085146A KR 20080085146 A KR20080085146 A KR 20080085146A KR 101030146 B1 KR101030146 B1 KR 101030146B1
- Authority
- KR
- South Korea
- Prior art keywords
- page buffer
- address
- data
- write
- write command
- 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/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
플래시 메모리 기반 저장 장치의 페이지 버퍼를 쓰기 캐시로 이용하는 방법을 제시한다. 플래시 메모리 장치는 읽기, 쓰기 요청 시 임시로 데이터를 저장하기 위한 페이지 버퍼를 포함한다. 제1 쓰기 명령에 대응하는 프로그래밍 동작은 페이지 버퍼에 저장된 데이터를 메모리 셀 어레이로 프로그램한다. 이 때 프로그래밍 동작이 실패할 경우, 플래시 메모리 장치는 제2 쓰기 명령을 수신하고, 제2 쓰기 명령에 대응하는 프로그래밍 동작은 페이지 버퍼에 저장된 데이터를 메모리 셀 어레이로 프로그램한다. 제2 쓰기 명령은 제1 쓰기 명령과 동일한 데이터에 대한 쓰기 명령이므로, 플래시 메모리 장치는 페이지 버퍼에 이미 저장된 데이터를 이용하면 별도의 데이터를 수신하지 않아도 충분하다.
NAND 플래시 메모리, 페이지 버퍼, 쓰기 캐시
Description
본 발명의 실시예들은 플래시 메모리 장치(flash memory device)에 데이터를 저장하는 방법에 관한 것이다. 본 연구는 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행하였다. [2006-S-040-03, Flash Memory 기반 임베디드 멀티미디어 소프트웨어 기술 개발]
플래시 메모리는 전원이 공급되지 않아도 저장된 데이터가 유지되는 비휘발성 메모리(non-volatile memory)로서, 칩 전체 혹은 일부를 전기적으로(electrically) 소거하고 (erase) 다시 쓸 수 있는 기능을 제공한다.
플래시 메모리는 메모리 셀(cell) 어레이(array)의 구조에 따라 NAND, NOR 등의 여러 가지 타입으로 분류될 수 있다. 여기서 메모리 셀은 1비트의 데이터를 저장할 수 있는 최소 단위이다.
NAND 플래시 메모리는 고집적화 및 대용량화가 가능하므로 기존의 하드 디스크를 대체할 소자로서 메모리 시장에서 급격히 주목을 받고 있다. 현재 NAND 플래 시 메모리는 휴대폰, 디지털 카메라, MP3 플레이어, 캠코더, PDA 등 휴대형 모바일 기기의 저장매체로 널리 이용되고 있다.
그러나, 플래시 메모리는 SRAM(Static Random Access Memory)이나 DRAM(Dynamic Random Access Memory)에 비해 데이터를 읽고 쓰는 시간이 길다. 플래시 메모리에 저장된 데이터를 소거하는 시간 및 플래시 메모리에 데이터를 저장하는 시간은 플래시 메모리에 저장된 데이터를 읽는 시간보다 길다. 이러한 비대칭성으로 인해 플래시 메모리 장치는 페이지(page)라고 불리는 단위 (주로 512B, 2KB, 4KB)로 데이터를 읽고 쓸 수 있다. 플래시 메모리 장치는 하나의 페이지에 대응하는 데이터를 동시에 저장할 수 있다. 이 때 플래시 메모리 장치는 페이지 버퍼(page buffer)를 포함하고, 페이지 버퍼에 데이터 페이지를 저장한 후, 데이터 페이지를 한꺼번에 메모리 셀들에 저장할 수 있다.
본 발명의 일 실시예에 따르면 플래시 메모리 장치와 외부의 호스트 간의 데이터 전송 횟수를 줄이기 위하여 페이지 버퍼를 쓰기 캐시로 이용할 수 있다.
본 발명의 일 실시예에 따르면 플래시 메모리 장치는 페이지 버퍼에 저장된 데이터를 복수의 프로그래밍 동작에 이용할 수 있다.
본 발명의 일 실시예에 따르면 플래시 메모리 장치의 프로그래밍의 실패에 따른 페널티를 줄이기 위하여 페이지 버퍼에 저장된 데이터를 이용할 수 있다.
본 발명의 일 실시예에 따른 플래시 메모리 장치는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이, 외부 호스트로부터 수신된 데이터를 데이터 페이지로서 저장하는 페이지 버퍼, 상기 저장된 데이터 페이지를 상기 메모리 셀 어레이 내의 제1 주소에 프로그램하도록 상기 페이지 버퍼를 제어하는 제어부를 포함할 수 있다. 이 때 제어부는 소정의 조건에 기초하여 상기 저장된 데이터 페이지를 상기 메모리 셀 어레이 내의 제2 주소에 프로그램하도록 상기 페이지 버퍼를 제어할 수 있다.
본 발명의 일 실시예에 따른 플래시 메모리 이용 방법은 외부 호스트로부터 데이터를 수신하여 페이지 버퍼에 저장하는 단계, 상기 외부 호스트로부터 수신된 프로그램 명령에 대응하여 상기 페이지 버퍼에 저장된 데이터를 메모리 셀 어레이 내의 제1 주소에 프로그램하는 단계, 상기 제1 주소에 대응하는 프로그래밍이 성공 했는지 여부를 판정하는 단계, 및 상기 제1 주소에 대응하는 프로그래밍이 실패했으면, 상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 제2 주소에 프로그램하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 플래시 메모리 이용 방법은 외부 호스트로부터 데이터를 수신하여 페이지 버퍼에 저장하는 단계, 상기 외부 호스트로부터 수신된 제1 프로그램 명령에 대응하여 상기 페이지 버퍼에 저장된 데이터를 메모리 셀 어레이 내의 제1 주소 - 상기 제1 주소는 상기 제1 프로그램 명령에 대응함 - 에 프로그램하는 단계, 및 상기 외부 호스트로부터 수신된 제2 프로그램 명령에 대응하여 상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 제2 주소 - 상기 제2 주소는 상기 제2 프로그램 명령에 대응함 - 에 프로그램하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 플래시 메모리 이용 방법은 페이지 버퍼에 데이터를 저장하는 단계, 제1 프로그램 명령에 응답하여, 상기 페이지 버퍼에 저장된 데이터를 메모리 셀 어레이 내의 제1 주소 - 상기 제1 주소는 상기 제1 프로그램 명령에 대응함 - 에 프로그램하는 단계, 제2 프로그램 명령이 상기 페이지 버퍼에 저장된 데이터를 이용하는 명령인지 여부를 판정하는 단계, 및 상기 제2 프로그램 명령이 상기 페이지 버퍼에 저장된 데이터를 이용하는 경우, 상기 제2 프로그램 명령에 응답하여, 상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 제2 주소 - 상기 제2 주소는 상기 제2 프로그램 명령에 대응함 - 에 프로그램하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면 플래시 메모리 장치의 페이지 버퍼를 쓰기 캐시로 이용함으로써 플래시 메모리 장치와 외부의 호스트 간의 데이터 전송 횟수를 줄일 수 있다.
본 발명의 일 실시예에 따르면 플래시 메모리 장치는 페이지 버퍼에 저장된 데이터를 복수의 프로그래밍 동작에 이용할 수 있다.
본 발명의 일 실시예에 따르면 플래시 메모리 장치는 페이지 버퍼를 쓰기 캐시로 이용함으로써 프로그래밍의 실패에 따른 페널티를 줄일 수 있다.
이하에서, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 플래시 메모리 장치(100)를 도시하는 도면이다.
플래시 메모리 장치(100)는 메모리 셀 어레이(110), 페이지 버퍼(120) 및 제어부(130)를 포함한다.
메모리 셀 어레이(110)는 복수의 메모리 셀들을 포함할 수 있다.
복수의 메모리 셀들은 셀 당 하나의 비트가 저장되는 싱글 비트 셀 (Single Bit Cell, SBC) 또는 셀 당 둘 이상의 비트가 저장되는 멀티 비트 셀 (Multi- Bit Cell, MBC)일 수 있다. SBC는 싱글 레벨 셀 (Single Level Cell, SLC) 이라고도 불리고, MBC는 멀티 레벨 셀 (Multi-Level Cell, MLC)라고도 불리기도 한다.
제어부(130)는 외부의 호스트(140)로부터 쓰기 요청(write request)를 수신하고, 페이지 버퍼 (page buffer) (120)가 호스트(140)로부터 쓰기 데이터 (write data)를 수신하도록 페이지 버퍼(120)를 제어할 수 있다.
페이지 버퍼 (page buffer) (120)는 호스트(140)로부터 쓰기 데이터 (write data)를 수신하고, 수신된 쓰기 데이터를 저장할 수 있다.
페이지 버퍼(120)는 호스트(140)로부터 바이트 (byte) 또는 워드 (word) 단위로 쓰기 데이터를 수신할 수 있다.
복수의 메모리 셀들에 데이터가 프로그램되는 과정에는 복수의 메모리 셀들로부터 데이터를 읽는 과정보다 긴 시간이 걸리므로 플래시 메모리 장치(100)는 페이지 단위로 데이터를 프로그램할 수 있다. 페이지(page)는 동시에 프로그램되는 복수의 메모리 셀들의 집합(set)일 수 있다. 하나의 페이지에 프로그램되는 데이터를 데이터 페이지라 할 수 있다. 데이터 페이지는, 예를 들어 256 bytes 일 수도 있고, 4 kilobytes 일 수도 있다.
페이지 버퍼(120)는 하나 이상의 데이터 페이지를 저장할 수 있다. 페이지 버퍼(120)는 호스트(140)로부터 수신된 쓰기 데이터를 쓰기 데이터의 페이지 내에서의 주소에 대응하는 위치에 저장할 수 있다.
페이지 버퍼(120)의 존재는, 호스트(140) 및 플래시 메모리 장치(100) 간에 랜덤 억세스 (random access)를 가능하게 할 수 있다. 페이지 버퍼(120)는 호스트(140)로부터 전송되는 데이터를 저장해 두었다가 프로그램 명령 (program command)에 응답하여 데이터를 한꺼번에 메모리 셀 어레이(110)에 프로그램할 수 있다.
플래시 메모리 장치(100)는 프로그래밍의 목표가 되었던 메모리 셀 또는 메모리 셀들의 문턱 전압 (threshold voltage)이 목표 범위에 도달했는지 여부를 판정함으로써 프로그래밍의 성공 여부를 판정할 수 있다. 예를 들어 데이터 "1"에 대응하는 셀의 문턱 전압의 목표 범위는 1V ~ 2V 이고, 데이터 "0"에 대응하는 셀의 문턱 전압의 목표 범위는 3V ~ 4V 일 수 있다. 플래시 메모리 장치(100)는 프로그래밍에 대응하는 데이터 및 메모리 셀의 문턱 전압에 기초하여 프로그래밍의 성공 여부를 판정할 수 있다.
페이지 버퍼(120)로부터 메모리 셀 어레이(110)에 대한 프로그래밍이 실패한 경우, 프로그래밍의 목표가 되었던 메모리 셀 또는 메모리 셀들은 더 이상 free한 상태가 아니며, valid 한 상태도 아니다.
플래시 메모리 장치(100)는 새로운 메모리 셀 또는 메모리 셀들을 선택하고, 상기 선택된 메모리 셀 또는 메모리 셀들에 대하여 실패한 프로그래밍에 대응하는 데이터를 프로그램할 수 있다.
이 때 다시 시도되는 프로그래밍의 데이터는 이미 실패한 프로그래밍의 데이터와 동일하다. 플래시 메모리 장치(100)는 데이터를 재전송하지 않고 주소만을 재설정하는 쓰기 명령을 제공할 수 있다. 호스트(140)는 플래시 메모리 장치(100)로 데이터를 재전송하지 않고 새롭게 설정된 주소만을 쓰기 명령과 함께 플래시 메모리 장치(100)로 전송할 수 있다.
이 때 플래시 메모리 장치 (100) 및 호스트 (140) 간의 불필요한 데이터 전송이 제거되므로, 호스트 (140)는 플래시 메모리 장치 (100) 와의 데이터 경로 (data path)를 보다 효율적으로 이용할 수 있다.
다른 실시예에 따르면, 플래시 메모리 장치(100)는 새로운 주소를 내부적으로 생성할 수 있다. 이 때 호스트(140)는 데이터 및 새로운 주소를 전송할 필요 없이 다시 쓰기 명령 (re-write command)을 플래시 메모리 장치(100)로 전송할 수 있다. 다시 쓰기 명령은 재시도 명령 (re-try command)으로 불리어질 수도 있다.
플래시 메모리 장치(100)가 새로운 주소를 내부적으로 생성하는 경우, 새롭게 생성된 주소는 물리 주소 (physical address)이고, 호스트(140)로부터 플래시 메모리 장치(100)로 전송된 주소 (실패한 프로그래밍에 대응하는 주소)는 논리 주소 (logical address)일 수도 있다. 제어부(130)는 이 때 논리 주소 및 물리 주소 간의 매핑 정보를 저장할 수 있다.
다른 실시예에 따르면, 플래시 메모리 장치(100)는 동일한 데이터를 복수의 주소들에 프로그램하는 프로그램 동작(operation)을 제공할 수 있다.
상기 제공되는 프로그램 동작은 테스트 동작일 수도 있고, RAID (redundant arrays of independent disks)의 다양한 타입에 대응하는 프로그램 동작일 수도 있다.
예를 들어, RAID 1 타입은 동일한 데이터를 복수의 블록들에 중복하여 저장할 수 있다. RAID 1 타입은 저장된 데이터의 읽기 속도를 향상시킬 수 있으며, 고장이 발생한 경우에도 안정성을 유지할 수 있다. 이러한 중복 저장 기법을 미러링 (mirroring)이라 하기도 한다.
테스트 동작은 메모리 셀 어레이(110)의 메모리 셀의 유효성 여부, 쓰기 / 읽기 동작의 안정성 등을 테스트하려는 목적에서 수행될 수 있다. 이 때 동일한 데이터를 반복적으로 서로 다른 주소들에 프로그램하는 방법을 통하여 전체 테스트 과정에 걸리는 시간을 줄일 수 있다. 이 때 호스트 (140)로부터 플래시 메모리 장치(100) 간의 데이터 전송은 한 번으로 충분하므로 전체 테스트 과정에 걸리는 시간을 크게 줄일 수 있다.
다른 실시예에 따르면, 페이지 버퍼(120)는 하나 이상의 데이터 페이지들을 저장할 수 있고, 제어부(130)는 호스트(140)로부터 수신된 프로그램 명령이 페이지 버퍼(120)에 저장된 하나 이상의 데이터 페이지들 중 어느 하나에 대응하는 것인지 여부를 판정할 수 있다. 수신된 프로그램 명령이 페이지 버퍼(120)에 저장된 하나 이상의 데이터 페이지들 중 어느 하나에 대응하면 제어부(130)는 프로그램 명령에 대응하는 데이터 페이지를 메모리 셀 어레이(110)의 새로운 주소에 프로그램하도록 페이지 버퍼(120)를 제어할 수 있다. 이 때 페이지 버퍼(120)는 호스트(140)로부터 프로그램 명령에 대응하는 데이터를 추가적으로 수신하지 않을 수 있다. 제어부(130)는 상기 새로운 주소를 내부적으로 생성할 수도 있고, 호스트(140)로부터 프로그램 명령과 동시에 또는 프로그램 명령을 수신한 후에 수신할 수도 있다. 이 때 페이지 버퍼(120)는 프로그래밍이 종료된 후에도 저장된 데이터 페이지를 삭제(delete)하지 않고 그대로 유지할 수 있다.
도 1에서는 페이지 버퍼(120)를 제어하는 기능을 플래시 메모리 장치 (100) 의 내부에 위치한 제어부(130)가 수행하는 실시예가 도시되었다. 플래시 메모리 장치(100)는 하나 또는 둘 이상의 칩 (chip)으로 구현될 수 있다. 제어부(130)는 플래시 메모리 장치(100)가 구현된 칩 내부에 포함될 수도 있고, 칩의 외부에 위치할 수도 있다. 제어부(130)는 소프트웨어 적인 방법으로 구현될 수도 있고, 칩 내부의 페리페럴 (peripheral) 회로를 이용하여 구현될 수도 있다.
도 2에서는 칩(220) 외부의 컨트롤러 (210)에 의하여 제어부(130)의 기능이 구현되는 실시예가 도시된다.
도 2를 참조하면 컨트롤러 (210)는 외부의 호스트로부터 추상화된 명령을 수신하고, 추상화된 명령을 제어 신호로 변환할 수 있다. 컨트롤러 (210)는 변환된 제어 신호를 NAND 플래시 칩 (220)으로 전송하여, NAND 플래시 칩 (220)의 동작을 제어할 수 있다.
도 2의 실시예에서는, NAND 플래시 칩 (220)은 메모리 셀 어레이, 페이지 버퍼를 포함할 수 있고, 페이지 버퍼의 동작을 컨트롤러 (210)가 제어할 수 있다.
도 3은 본 발명의 일 실시예에 따른 플래시 메모리 이용 방법을 도시하는 도면이다.
도 3을 참조하면, 플래시 메모리 장치 (100)는 호스트 (140)로부터 쓰기 명령의 주소를 수신한다 (S310).
플래시 메모리 장치 (100)는 호스트 (140)로부터 페이지 버퍼(120)로 쓰기 명령의 데이터를 로드 (load) 한다 (S320).
플래시 메모리 장치 (100)는 로드된 데이터를 페이지 버퍼 (120)로부터 메모 리 셀 어레이 (110) 내의 수신된 주소에 프로그램한다 (S330).
플래시 메모리 장치 (100)는 쓰기 명령이 성공했는지 여부를 판정한다 (S340).
플래시 메모리 장치 (100)는 쓰기 명령이 실패했으면 새로운 주소를 수신한다 (S350). 이 때 실시예에 따라서는 플래시 메모리 장치 (100)는 새로운 주소를 내부적으로 생성할 수도 있다.
플래시 메모리 장치 (100)는 새로운 주소를 이용하여 로드된 데이터를 페이지 버퍼 (120)로부터 메모리 셀 어레이(110)로 프로그램한다 (S330).
플래시 메모리 장치 (100)는 쓰기 명령이 성공했으면 해당 프로세스를 종료한다.
도 4는 본 발명의 일 실시예에 따른 플래시 메모리 장치 (400)를 도시하는 도면이다.
도 4를 참조하면 플래시 메모리 장치 (400)는 페이지 버퍼 (420), 메모리 셀 어레이 (410)를 포함한다.
메모리 셀 어레이 (410)는 주소에 따라 제1 페이지 (411), 제2 페이지 (412), 제3 페이지 (413)를 포함할 수 있다.
메모리 셀 어레이 (410) 내의 메모리 셀들은 페이지 단위로 접근될 수 있다. 동시에 소거되는 메모리 셀들의 집합(set)을 블록(block) 또는 소거 블록 (erase block)이라 하고, 동시에 프로그래밍 동작의 목표가 되는 메모리 셀들의 집합을 페이지라 한다.
블록은 복수의 페이지들을 포함할 수 있다. 메모리 셀 어레이 (410) 내의 페이지들을 가리키는 주소는 블록 주소 필드 및 페이지 오프셋 필드를 포함할 수 있다. 예를 들어, 제1 페이지(411)가 block 0에 포함되는 경우, 제1 페이지 (411)의 블록 주소 필드는 "0"일 수 있다. 제1 페이지 (411)의 block 0 내에서의 위치가 페이지 오프셋 필드에 의하여 나타내어진다.
도 4에서는 페이지 버퍼 (420)에 저장된 데이터를 3개의 서로 다른 페이지들 (411, 412, 413)에 프로그램하는 실시예가 도시된다. 이러한 동작은 테스트 동작일 수도 있고, 데이터 미러링에 관련된 동작일 수도 있다.
도 4에서는 3개의 페이지들 (411, 412, 413)에 동일한 데이터가 프로그램되는 실시예가 도시되었으나 본 발명의 사상은 본 실시예에 국한되지 않고, 동일한 데이터가 프로그램되는 페이지들의 개수에 한정되지 않는다.
본 발명의 일 실시예에 따른 플래시 메모리 이용 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 상기 하드웨어 장치는 플래시 메모리 장치에 내장된 페리페럴 (peripheral) 회로를 통해서도 구현될 수 있고, 또는 플래시 메모리 장치 외부의 콘트롤러에 의하여 구현될 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일 실시예에 따른 플래시 메모리 장치(100)를 도시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 컨트롤러 (210) 및 NAND 플래시 Chip (220)를 도시하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 플래시 메모리 이용 방법을 도시하는 동작 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 플래시 메모리 장치(400)를 도시하는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
100: 플래시 메모리 장치
110: 메모리 셀 어레이
120: 페이지 버퍼
130: 제어부
140: 호스트
Claims (19)
- 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;외부 호스트로부터 수신된 데이터를 데이터 페이지로서 저장하는 페이지 버퍼; 및상기 페이지 버퍼에 저장된 데이터 페이지를 상기 메모리 셀 어레이 내의 제1 주소에 쓰도록 상기 페이지 버퍼를 제어하는 제어부를 포함하고,상기 제어부는 소정의 조건에 따라 상기 페이지 버퍼를 쓰기 캐시로서 이용하여 상기 외부 호스트로부터 수신된 데이터를 중복적으로 수신함이 없이 상기 페이지 버퍼에 저장된 데이터 페이지를 상기 메모리 셀 어레이 내의 제2 주소에 쓰도록 상기 페이지 버퍼를 제어하는 플래시 메모리 장치.
- 제1항에 있어서,상기 소정의 조건은 상기 제1 주소에 대응하는 쓰기가 실패하는 조건인 플래시 메모리 장치.
- 제1항에 있어서,상기 페이지 버퍼는상기 제1 주소 또는 상기 제2 주소에 대응하는 쓰기가 종료된 후에도 상기 페이지 버퍼에 저장된 데이터 페이지를 삭제하지 않는 플래시 메모리 장치.
- 제1항에 있어서,상기 소정의 조건은 쓰기 연산이 동일한 데이터 페이지를 복수의 주소들에 쓰는 조건인 플래시 메모리 장치.
- 제4항에 있어서,상기 소정의 조건은 상기 쓰기 연산이 상기 동일한 데이터 페이지를 상기 복수의 주소들에 쓰는 테스트 연산일 조건인 플래시 메모리 장치.
- 제4항에 있어서,상기 소정의 조건은 상기 쓰기 연산이 상기 동일한 데이터 페이지를 상기 복수의 주소들에 미러링하는 레이드(RAID) 연산일 조건인 플래시 메모리 장치.
- 삭제
- 제1항에 있어서,상기 제어부는상기 제2 주소를 상기 외부 호스트로부터 수신하거나 내부적으로 생성하는 플래시 메모리 장치.
- 외부 호스트로부터 데이터를 수신하여 페이지 버퍼에 저장하는 단계;상기 외부 호스트로부터 수신된 쓰기 명령에 대응하여 상기 페이지 버퍼에 저장된 데이터를 메모리 셀 어레이 내의 제1 주소에 쓰는 단계;상기 제1 주소에 대응하는 쓰기가 성공했는지 여부를 판정하는 단계; 및상기 제1 주소에 대응하는 쓰기가 실패했으면, 상기 페이지 버퍼를 쓰기 캐시로서 이용하여 상기 외부 호스트로부터 수신된 데이터를 중복적으로 수신함이 없이 상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 제2 주소에 쓰는 단계를 포함하는 플래시 메모리 이용 방법.
- 삭제
- 제9항에 있어서,상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 상기 제2 주소에 쓰는 단계는상기 제2 주소를 내부적으로 생성하거나 상기 외부 호스트로부터 상기 제2 주소를 수신하는 플래시 메모리 이용 방법.
- 외부 호스트로부터 데이터를 수신하여 페이지 버퍼에 저장하는 단계;상기 외부 호스트로부터 수신된 제1 쓰기 명령에 대응하여 상기 페이지 버퍼에 저장된 데이터를 메모리 셀 어레이 내의 제1 주소 - 상기 제1 주소는 상기 제1 쓰기 명령에 대응함 - 에 쓰는 단계; 및상기 외부 호스트로부터 수신된 제2 쓰기 명령에 대응하여 상기 페이지 버퍼를 쓰기 캐시로서 이용하여 상기 외부 호스트로부터 수신된 데이터를 중복적으로 수신함이 없이 상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 제2 주소 - 상기 제2 주소는 상기 제2 쓰기 명령에 대응함 - 에 쓰는 단계를 포함하는 플래시 메모리 이용 방법.
- 제12항에 있어서,상기 제1 쓰기 명령 및 상기 제2 쓰기 명령은 서로 동일한 데이터를 쓰는 명령인 플래시 메모리 이용 방법.
- 제13항에 있어서,상기 제1 쓰기 명령 및 상기 제2 쓰기 명령은 서로 동일한 데이터를 상기 제1 주소 및 제2 주소 각각에 미러링하는 명령인 플래시 메모리 이용 방법.
- 제13항에 있어서,상기 제1 쓰기 명령 및 상기 제2 쓰기 명령은 서로 동일한 데이터를 쓰는 테스트 명령인 플래시 메모리 이용 방법.
- 페이지 버퍼에 데이터를 저장하는 단계;제1 쓰기 명령에 응답하여, 상기 페이지 버퍼에 저장된 데이터를 메모리 셀 어레이 내의 제1 주소 - 상기 제1 주소는 상기 제1 쓰기 명령에 대응함 - 에 쓰는 단계;제2 쓰기 명령이 상기 페이지 버퍼에 저장된 데이터를 이용하는 명령인지 여부를 판정하는 단계; 및상기 제2 쓰기 명령이 상기 페이지 버퍼를 쓰기 캐시로서 이용하여 상기 페이지 버퍼에 저장된 데이터를 이용하는 경우, 상기 제2 쓰기 명령에 응답하여, 상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 제2 주소 - 상기 제2 주소는 상기 제2 쓰기 명령에 대응함 - 에 쓰는 단계를 포함하는 플래시 메모리 이용 방법.
- 제16항에 있어서,상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 상기 제2 주소에 쓰는 단계는상기 제2 쓰기 명령에 대응하는 데이터를 추가로 수신하지 않는 플래시 메모리 이용 방법.
- 제16항에 있어서,상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 상기 제1 주소에 쓰는 단계 또는 상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 상기 제2 주소에 쓰는 단계는쓰기가 종료된 후에도 상기 페이지 버퍼에 저장된 데이터를 삭제하지 않는 플래시 메모리 이용 방법.
- 제9항 또는 제11항 내지 제18항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080085146A KR101030146B1 (ko) | 2008-08-29 | 2008-08-29 | 페이지 버퍼를 쓰기 캐시로 이용하는 플래시 기반 저장 장치 및 이용 방법 |
PCT/KR2008/007648 WO2010024506A1 (en) | 2008-08-29 | 2008-12-24 | Flash based storage device using page buffer as write cache and method of using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080085146A KR101030146B1 (ko) | 2008-08-29 | 2008-08-29 | 페이지 버퍼를 쓰기 캐시로 이용하는 플래시 기반 저장 장치 및 이용 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100026227A KR20100026227A (ko) | 2010-03-10 |
KR101030146B1 true KR101030146B1 (ko) | 2011-04-18 |
Family
ID=41721653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080085146A KR101030146B1 (ko) | 2008-08-29 | 2008-08-29 | 페이지 버퍼를 쓰기 캐시로 이용하는 플래시 기반 저장 장치 및 이용 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101030146B1 (ko) |
WO (1) | WO2010024506A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9582439B2 (en) | 2013-11-14 | 2017-02-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory system and operating method thereof |
US11848069B2 (en) | 2021-10-22 | 2023-12-19 | Samsung Electronics Co., Ltd. | Page buffer including latches and memory device including the page buffer |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8880778B2 (en) * | 2010-05-13 | 2014-11-04 | Micron Technology, Inc. | Memory buffer having accessible information after a program-fail |
US20130031299A1 (en) * | 2011-07-29 | 2013-01-31 | Byungcheol Cho | Disk input/output (i/o) layer architecture having block level device driver |
KR102308777B1 (ko) | 2014-06-02 | 2021-10-05 | 삼성전자주식회사 | 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법 |
KR102438552B1 (ko) | 2015-02-04 | 2022-09-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작방법 |
KR20200048318A (ko) * | 2018-10-29 | 2020-05-08 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6097452A (ja) | 1983-11-02 | 1985-05-31 | Oki Electric Ind Co Ltd | メモリ制御方式 |
KR20040086923A (ko) * | 2003-04-03 | 2004-10-13 | 삼성전자주식회사 | 에러정정기능을 가진 플래쉬메모리장치 |
KR20070048384A (ko) * | 2005-11-04 | 2007-05-09 | (주)아트칩스 | 메모리 맵에서 배드 블록 처리방법 |
US7290082B2 (en) * | 2003-07-23 | 2007-10-30 | Samsung Electronics Co., Ltd. | Flash memory system and data writing method thereof |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7042770B2 (en) * | 2001-07-23 | 2006-05-09 | Samsung Electronics Co., Ltd. | Memory devices with page buffer having dual registers and method of using the same |
US20050132128A1 (en) * | 2003-12-15 | 2005-06-16 | Jin-Yub Lee | Flash memory device and flash memory system including buffer memory |
-
2008
- 2008-08-29 KR KR1020080085146A patent/KR101030146B1/ko active IP Right Grant
- 2008-12-24 WO PCT/KR2008/007648 patent/WO2010024506A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6097452A (ja) | 1983-11-02 | 1985-05-31 | Oki Electric Ind Co Ltd | メモリ制御方式 |
KR20040086923A (ko) * | 2003-04-03 | 2004-10-13 | 삼성전자주식회사 | 에러정정기능을 가진 플래쉬메모리장치 |
US7290082B2 (en) * | 2003-07-23 | 2007-10-30 | Samsung Electronics Co., Ltd. | Flash memory system and data writing method thereof |
KR20070048384A (ko) * | 2005-11-04 | 2007-05-09 | (주)아트칩스 | 메모리 맵에서 배드 블록 처리방법 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9582439B2 (en) | 2013-11-14 | 2017-02-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory system and operating method thereof |
US11848069B2 (en) | 2021-10-22 | 2023-12-19 | Samsung Electronics Co., Ltd. | Page buffer including latches and memory device including the page buffer |
Also Published As
Publication number | Publication date |
---|---|
KR20100026227A (ko) | 2010-03-10 |
WO2010024506A1 (en) | 2010-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100878479B1 (ko) | 데이터 정보에 따라 프로그램 방식을 결정하는 메모리시스템 | |
KR100875539B1 (ko) | 프로그램 방식을 선택할 수 있는 메모리 시스템 | |
KR100894809B1 (ko) | 메모리 시스템 및 그것의 프로그램 방법 | |
US8503257B2 (en) | Read disturb scorecard | |
US7974139B2 (en) | Non-volatile memory generating different read voltages | |
US8607120B2 (en) | Semiconductor memory device for performing additional ECC correction according to cell pattern and electronic system including the same | |
US10762967B2 (en) | Recovering from failure in programming a nonvolatile memory | |
KR100823170B1 (ko) | 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드 | |
KR101030146B1 (ko) | 페이지 버퍼를 쓰기 캐시로 이용하는 플래시 기반 저장 장치 및 이용 방법 | |
KR20200076886A (ko) | 저장 장치 및 그 동작 방법 | |
US11908535B2 (en) | Memory device and memory controller and storage device including the memory device and memory controller | |
KR20220013661A (ko) | 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 | |
US8924774B2 (en) | Semiconductor memory device and method for operating the same | |
CN112035060A (zh) | 一种存储介质的错误检测方法、系统及存储系统 | |
US11315650B2 (en) | Memory system, memory controller, and method of operating memory system | |
US11216208B1 (en) | Memory system, memory controller, and operation method of memory system | |
US12072809B2 (en) | Memory system, memory controller, and operation method of memory system for loading and updating mapping information to host memory area | |
KR20210012123A (ko) | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 | |
KR20230049858A (ko) | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 | |
KR20210028335A (ko) | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 | |
KR20210071314A (ko) | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 | |
KR20200118989A (ko) | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 | |
US12118217B2 (en) | Memory system, memory controller and method for operating memory system, capable of determining target meta memory block on the basis of detected target state | |
US11507509B2 (en) | Memory system, memory controller and method for operating memory system for determining whether to perform direct write based on reference write size | |
US20240203505A1 (en) | Memory device and method of managing temperature of the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150226 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160128 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20170403 Year of fee payment: 7 |