KR20100026227A - Flash based storage device using page buffer as write cache and method of using the same - Google Patents
Flash based storage device using page buffer as write cache and method of using the same Download PDFInfo
- Publication number
- KR20100026227A KR20100026227A KR1020080085146A KR20080085146A KR20100026227A KR 20100026227 A KR20100026227 A KR 20100026227A KR 1020080085146 A KR1020080085146 A KR 1020080085146A KR 20080085146 A KR20080085146 A KR 20080085146A KR 20100026227 A KR20100026227 A KR 20100026227A
- Authority
- KR
- South Korea
- Prior art keywords
- address
- data
- page buffer
- programming
- page
- 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
Description
본 발명의 실시예들은 플래시 메모리 장치(flash memory device)에 데이터를 저장하는 방법에 관한 것이다. 본 연구는 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행하였다. [2006-S-040-03, Flash Memory 기반 임베디드 멀티미디어 소프트웨어 기술 개발]Embodiments of the invention relate to a method of storing data in a flash memory device. This study was conducted as part of the IT growth engine technology development project of the Ministry of Knowledge Economy and ICT R & D. [2006-S-040-03, Development of Embedded Memory Software Technology based on Flash Memory]
플래시 메모리는 전원이 공급되지 않아도 저장된 데이터가 유지되는 비휘발성 메모리(non-volatile memory)로서, 칩 전체 혹은 일부를 전기적으로(electrically) 소거하고 (erase) 다시 쓸 수 있는 기능을 제공한다.Flash memory is a non-volatile memory that retains stored data even when power is not supplied. It provides the ability to electrically erase and rewrite all or part of a chip.
플래시 메모리는 메모리 셀(cell) 어레이(array)의 구조에 따라 NAND, NOR 등의 여러 가지 타입으로 분류될 수 있다. 여기서 메모리 셀은 1비트의 데이터를 저장할 수 있는 최소 단위이다.Flash memories may be classified into various types such as NAND and NOR according to the structure of an array of memory cells. The memory cell is the smallest unit that can store one bit of data.
NAND 플래시 메모리는 고집적화 및 대용량화가 가능하므로 기존의 하드 디스크를 대체할 소자로서 메모리 시장에서 급격히 주목을 받고 있다. 현재 NAND 플래 시 메모리는 휴대폰, 디지털 카메라, MP3 플레이어, 캠코더, PDA 등 휴대형 모바일 기기의 저장매체로 널리 이용되고 있다.NAND flash memory is rapidly attracting attention in the memory market as a device to replace the existing hard disk because of the high integration and large capacity. NAND flash memory is widely used as a storage medium for portable mobile devices such as mobile phones, digital cameras, MP3 players, camcorders, and PDAs.
그러나, 플래시 메모리는 SRAM(Static Random Access Memory)이나 DRAM(Dynamic Random Access Memory)에 비해 데이터를 읽고 쓰는 시간이 길다. 플래시 메모리에 저장된 데이터를 소거하는 시간 및 플래시 메모리에 데이터를 저장하는 시간은 플래시 메모리에 저장된 데이터를 읽는 시간보다 길다. 이러한 비대칭성으로 인해 플래시 메모리 장치는 페이지(page)라고 불리는 단위 (주로 512B, 2KB, 4KB)로 데이터를 읽고 쓸 수 있다. 플래시 메모리 장치는 하나의 페이지에 대응하는 데이터를 동시에 저장할 수 있다. 이 때 플래시 메모리 장치는 페이지 버퍼(page buffer)를 포함하고, 페이지 버퍼에 데이터 페이지를 저장한 후, 데이터 페이지를 한꺼번에 메모리 셀들에 저장할 수 있다.However, flash memory has a longer time to read and write data than static random access memory (SRAM) or dynamic random access memory (DRAM). The time for erasing data stored in the flash memory and the time for storing data in the flash memory are longer than the time for reading the data stored in the flash memory. This asymmetry allows flash memory devices to read and write data in units called pages (usually 512B, 2KB, and 4KB). The flash memory device may simultaneously store data corresponding to one page. In this case, the flash memory device may include a page buffer, store the data page in the page buffer, and then store the data page in the memory cells at once.
본 발명의 일 실시예에 따르면 플래시 메모리 장치와 외부의 호스트 간의 데이터 전송 횟수를 줄이기 위하여 페이지 버퍼를 쓰기 캐시로 이용할 수 있다.According to an embodiment of the present invention, the page buffer may be used as a write cache to reduce the number of data transfers between the flash memory device and an external host.
본 발명의 일 실시예에 따르면 플래시 메모리 장치는 페이지 버퍼에 저장된 데이터를 복수의 프로그래밍 동작에 이용할 수 있다.According to an embodiment of the present invention, the flash memory device may use data stored in the page buffer for a plurality of programming operations.
본 발명의 일 실시예에 따르면 플래시 메모리 장치의 프로그래밍의 실패에 따른 페널티를 줄이기 위하여 페이지 버퍼에 저장된 데이터를 이용할 수 있다.According to an embodiment of the present invention, the data stored in the page buffer may be used to reduce the penalty of failure of programming the flash memory device.
본 발명의 일 실시예에 따른 플래시 메모리 장치는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이, 외부 호스트로부터 수신된 데이터를 데이터 페이지로서 저장하는 페이지 버퍼, 상기 저장된 데이터 페이지를 상기 메모리 셀 어레이 내의 제1 주소에 프로그램하도록 상기 페이지 버퍼를 제어하는 제어부를 포함할 수 있다. 이 때 제어부는 소정의 조건에 기초하여 상기 저장된 데이터 페이지를 상기 메모리 셀 어레이 내의 제2 주소에 프로그램하도록 상기 페이지 버퍼를 제어할 수 있다.A flash memory device according to an embodiment of the present invention includes a memory cell array including a plurality of memory cells, a page buffer for storing data received from an external host as a data page, and a first data stored in the memory cell array. And a controller for controlling the page buffer to program to an address. In this case, the controller may control the page buffer to program the stored data page to a second address in the memory cell array based on a predetermined condition.
본 발명의 일 실시예에 따른 플래시 메모리 이용 방법은 외부 호스트로부터 데이터를 수신하여 페이지 버퍼에 저장하는 단계, 상기 외부 호스트로부터 수신된 프로그램 명령에 대응하여 상기 페이지 버퍼에 저장된 데이터를 메모리 셀 어레이 내의 제1 주소에 프로그램하는 단계, 상기 제1 주소에 대응하는 프로그래밍이 성공 했는지 여부를 판정하는 단계, 및 상기 제1 주소에 대응하는 프로그래밍이 실패했으면, 상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 제2 주소에 프로그램하는 단계를 포함할 수 있다.According to an embodiment of the present invention, a method of using a flash memory may include receiving data from an external host and storing the data in a page buffer, and storing data stored in the page buffer in response to a program command received from the external host. Programming to a first address, determining whether programming corresponding to the first address is successful, and if programming corresponding to the first address has failed, storing data stored in the page buffer in the memory cell array. Programming to two addresses.
본 발명의 일 실시예에 따른 플래시 메모리 이용 방법은 외부 호스트로부터 데이터를 수신하여 페이지 버퍼에 저장하는 단계, 상기 외부 호스트로부터 수신된 제1 프로그램 명령에 대응하여 상기 페이지 버퍼에 저장된 데이터를 메모리 셀 어레이 내의 제1 주소 - 상기 제1 주소는 상기 제1 프로그램 명령에 대응함 - 에 프로그램하는 단계, 및 상기 외부 호스트로부터 수신된 제2 프로그램 명령에 대응하여 상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 제2 주소 - 상기 제2 주소는 상기 제2 프로그램 명령에 대응함 - 에 프로그램하는 단계를 포함할 수 있다.According to an embodiment of the present invention, a method of using a flash memory includes receiving data from an external host and storing the data in a page buffer, and storing data stored in the page buffer in response to a first program command received from the external host. Programming a first address in the memory cell array, the first address in the first address corresponding to the first program command, and storing data stored in the page buffer in response to a second program command received from the external host. Programming to a second address, wherein the second address corresponds to the second program command.
본 발명의 일 실시예에 따른 플래시 메모리 이용 방법은 페이지 버퍼에 데이터를 저장하는 단계, 제1 프로그램 명령에 응답하여, 상기 페이지 버퍼에 저장된 데이터를 메모리 셀 어레이 내의 제1 주소 - 상기 제1 주소는 상기 제1 프로그램 명령에 대응함 - 에 프로그램하는 단계, 제2 프로그램 명령이 상기 페이지 버퍼에 저장된 데이터를 이용하는 명령인지 여부를 판정하는 단계, 및 상기 제2 프로그램 명령이 상기 페이지 버퍼에 저장된 데이터를 이용하는 경우, 상기 제2 프로그램 명령에 응답하여, 상기 페이지 버퍼에 저장된 데이터를 상기 메모리 셀 어레이 내의 제2 주소 - 상기 제2 주소는 상기 제2 프로그램 명령에 대응함 - 에 프로그램하는 단계를 포함할 수 있다.According to an embodiment of the present invention, a method of using a flash memory may include storing data in a page buffer, and in response to a first program command, the data stored in the page buffer may include a first address in a memory cell array, wherein the first address is Corresponding to the first program command, determining whether the second program command is a command using data stored in the page buffer, and wherein the second program command uses data stored in the page buffer. And in response to the second program command, programming the data stored in the page buffer to a second address in the memory cell array, the second address corresponding to the second program command.
본 발명의 일 실시예에 따르면 플래시 메모리 장치의 페이지 버퍼를 쓰기 캐시로 이용함으로써 플래시 메모리 장치와 외부의 호스트 간의 데이터 전송 횟수를 줄일 수 있다.According to an embodiment of the present invention, the number of data transfers between the flash memory device and an external host may be reduced by using the page buffer of the flash memory device as a write cache.
본 발명의 일 실시예에 따르면 플래시 메모리 장치는 페이지 버퍼에 저장된 데이터를 복수의 프로그래밍 동작에 이용할 수 있다.According to an embodiment of the present invention, the flash memory device may use data stored in the page buffer for a plurality of programming operations.
본 발명의 일 실시예에 따르면 플래시 메모리 장치는 페이지 버퍼를 쓰기 캐시로 이용함으로써 프로그래밍의 실패에 따른 페널티를 줄일 수 있다.According to an embodiment of the present invention, the flash memory device may reduce the penalty for failure of programming by using the page buffer as a write cache.
이하에서, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.
도 1은 본 발명의 일 실시예에 따른 플래시 메모리 장치(100)를 도시하는 도면이다.1 is a diagram illustrating a
플래시 메모리 장치(100)는 메모리 셀 어레이(110), 페이지 버퍼(120) 및 제어부(130)를 포함한다.The
메모리 셀 어레이(110)는 복수의 메모리 셀들을 포함할 수 있다.The
복수의 메모리 셀들은 셀 당 하나의 비트가 저장되는 싱글 비트 셀 (Single Bit Cell, SBC) 또는 셀 당 둘 이상의 비트가 저장되는 멀티 비트 셀 (Multi- Bit Cell, MBC)일 수 있다. SBC는 싱글 레벨 셀 (Single Level Cell, SLC) 이라고도 불리고, MBC는 멀티 레벨 셀 (Multi-Level Cell, MLC)라고도 불리기도 한다.The plurality of memory cells may be a single bit cell (SBC) in which one bit is stored per cell, or a multi-bit cell (MBC) in which two or more bits are stored per cell. SBC is also called a single level cell (SLC), MBC is also called a multi-level cell (MLC).
제어부(130)는 외부의 호스트(140)로부터 쓰기 요청(write request)를 수신하고, 페이지 버퍼 (page buffer) (120)가 호스트(140)로부터 쓰기 데이터 (write data)를 수신하도록 페이지 버퍼(120)를 제어할 수 있다.The
페이지 버퍼 (page buffer) (120)는 호스트(140)로부터 쓰기 데이터 (write data)를 수신하고, 수신된 쓰기 데이터를 저장할 수 있다.The
페이지 버퍼(120)는 호스트(140)로부터 바이트 (byte) 또는 워드 (word) 단위로 쓰기 데이터를 수신할 수 있다.The
복수의 메모리 셀들에 데이터가 프로그램되는 과정에는 복수의 메모리 셀들로부터 데이터를 읽는 과정보다 긴 시간이 걸리므로 플래시 메모리 장치(100)는 페이지 단위로 데이터를 프로그램할 수 있다. 페이지(page)는 동시에 프로그램되는 복수의 메모리 셀들의 집합(set)일 수 있다. 하나의 페이지에 프로그램되는 데이터를 데이터 페이지라 할 수 있다. 데이터 페이지는, 예를 들어 256 bytes 일 수도 있고, 4 kilobytes 일 수도 있다.Since the process of data is programmed in the plurality of memory cells takes longer than the process of reading data from the plurality of memory cells, the
페이지 버퍼(120)는 하나 이상의 데이터 페이지를 저장할 수 있다. 페이지 버퍼(120)는 호스트(140)로부터 수신된 쓰기 데이터를 쓰기 데이터의 페이지 내에서의 주소에 대응하는 위치에 저장할 수 있다.The
페이지 버퍼(120)의 존재는, 호스트(140) 및 플래시 메모리 장치(100) 간에 랜덤 억세스 (random access)를 가능하게 할 수 있다. 페이지 버퍼(120)는 호스트(140)로부터 전송되는 데이터를 저장해 두었다가 프로그램 명령 (program command)에 응답하여 데이터를 한꺼번에 메모리 셀 어레이(110)에 프로그램할 수 있다.The presence of the
플래시 메모리 장치(100)는 프로그래밍의 목표가 되었던 메모리 셀 또는 메모리 셀들의 문턱 전압 (threshold voltage)이 목표 범위에 도달했는지 여부를 판정함으로써 프로그래밍의 성공 여부를 판정할 수 있다. 예를 들어 데이터 "1"에 대응하는 셀의 문턱 전압의 목표 범위는 1V ~ 2V 이고, 데이터 "0"에 대응하는 셀의 문턱 전압의 목표 범위는 3V ~ 4V 일 수 있다. 플래시 메모리 장치(100)는 프로그래밍에 대응하는 데이터 및 메모리 셀의 문턱 전압에 기초하여 프로그래밍의 성공 여부를 판정할 수 있다.The
페이지 버퍼(120)로부터 메모리 셀 어레이(110)에 대한 프로그래밍이 실패한 경우, 프로그래밍의 목표가 되었던 메모리 셀 또는 메모리 셀들은 더 이상 free한 상태가 아니며, valid 한 상태도 아니다.When programming from the
플래시 메모리 장치(100)는 새로운 메모리 셀 또는 메모리 셀들을 선택하고, 상기 선택된 메모리 셀 또는 메모리 셀들에 대하여 실패한 프로그래밍에 대응하는 데이터를 프로그램할 수 있다.The
이 때 다시 시도되는 프로그래밍의 데이터는 이미 실패한 프로그래밍의 데이터와 동일하다. 플래시 메모리 장치(100)는 데이터를 재전송하지 않고 주소만을 재설정하는 쓰기 명령을 제공할 수 있다. 호스트(140)는 플래시 메모리 장치(100)로 데이터를 재전송하지 않고 새롭게 설정된 주소만을 쓰기 명령과 함께 플래시 메모리 장치(100)로 전송할 수 있다.The data of programming that is retried at this time is the same as that of programming that has already failed. The
이 때 플래시 메모리 장치 (100) 및 호스트 (140) 간의 불필요한 데이터 전송이 제거되므로, 호스트 (140)는 플래시 메모리 장치 (100) 와의 데이터 경로 (data path)를 보다 효율적으로 이용할 수 있다.In this case, since unnecessary data transfer between the
다른 실시예에 따르면, 플래시 메모리 장치(100)는 새로운 주소를 내부적으로 생성할 수 있다. 이 때 호스트(140)는 데이터 및 새로운 주소를 전송할 필요 없이 다시 쓰기 명령 (re-write command)을 플래시 메모리 장치(100)로 전송할 수 있다. 다시 쓰기 명령은 재시도 명령 (re-try command)으로 불리어질 수도 있다.According to another embodiment, the
플래시 메모리 장치(100)가 새로운 주소를 내부적으로 생성하는 경우, 새롭게 생성된 주소는 물리 주소 (physical address)이고, 호스트(140)로부터 플래시 메모리 장치(100)로 전송된 주소 (실패한 프로그래밍에 대응하는 주소)는 논리 주소 (logical address)일 수도 있다. 제어부(130)는 이 때 논리 주소 및 물리 주소 간의 매핑 정보를 저장할 수 있다.When the
다른 실시예에 따르면, 플래시 메모리 장치(100)는 동일한 데이터를 복수의 주소들에 프로그램하는 프로그램 동작(operation)을 제공할 수 있다.According to another embodiment, the
상기 제공되는 프로그램 동작은 테스트 동작일 수도 있고, RAID (redundant arrays of independent disks)의 다양한 타입에 대응하는 프로그램 동작일 수도 있다.The provided program operation may be a test operation or may be a program operation corresponding to various types of redundant arrays of independent disks (RAID).
예를 들어, RAID 1 타입은 동일한 데이터를 복수의 블록들에 중복하여 저장할 수 있다. RAID 1 타입은 저장된 데이터의 읽기 속도를 향상시킬 수 있으며, 고장이 발생한 경우에도 안정성을 유지할 수 있다. 이러한 중복 저장 기법을 미러링 (mirroring)이라 하기도 한다.For example, the RAID 1 type may store the same data in a plurality of blocks redundantly. The RAID 1 type can improve the read speed of stored data and maintain stability even in the event of a failure. This redundant storage technique is also called mirroring.
테스트 동작은 메모리 셀 어레이(110)의 메모리 셀의 유효성 여부, 쓰기 / 읽기 동작의 안정성 등을 테스트하려는 목적에서 수행될 수 있다. 이 때 동일한 데이터를 반복적으로 서로 다른 주소들에 프로그램하는 방법을 통하여 전체 테스트 과정에 걸리는 시간을 줄일 수 있다. 이 때 호스트 (140)로부터 플래시 메모리 장치(100) 간의 데이터 전송은 한 번으로 충분하므로 전체 테스트 과정에 걸리는 시간을 크게 줄일 수 있다.The test operation may be performed to test the validity of the memory cells of the
다른 실시예에 따르면, 페이지 버퍼(120)는 하나 이상의 데이터 페이지들을 저장할 수 있고, 제어부(130)는 호스트(140)로부터 수신된 프로그램 명령이 페이지 버퍼(120)에 저장된 하나 이상의 데이터 페이지들 중 어느 하나에 대응하는 것인지 여부를 판정할 수 있다. 수신된 프로그램 명령이 페이지 버퍼(120)에 저장된 하나 이상의 데이터 페이지들 중 어느 하나에 대응하면 제어부(130)는 프로그램 명령에 대응하는 데이터 페이지를 메모리 셀 어레이(110)의 새로운 주소에 프로그램하도록 페이지 버퍼(120)를 제어할 수 있다. 이 때 페이지 버퍼(120)는 호스트(140)로부터 프로그램 명령에 대응하는 데이터를 추가적으로 수신하지 않을 수 있다. 제어부(130)는 상기 새로운 주소를 내부적으로 생성할 수도 있고, 호스트(140)로부터 프로그램 명령과 동시에 또는 프로그램 명령을 수신한 후에 수신할 수도 있다. 이 때 페이지 버퍼(120)는 프로그래밍이 종료된 후에도 저장된 데이터 페이지를 삭제(delete)하지 않고 그대로 유지할 수 있다.According to another embodiment, the
도 1에서는 페이지 버퍼(120)를 제어하는 기능을 플래시 메모리 장치 (100) 의 내부에 위치한 제어부(130)가 수행하는 실시예가 도시되었다. 플래시 메모리 장치(100)는 하나 또는 둘 이상의 칩 (chip)으로 구현될 수 있다. 제어부(130)는 플래시 메모리 장치(100)가 구현된 칩 내부에 포함될 수도 있고, 칩의 외부에 위치할 수도 있다. 제어부(130)는 소프트웨어 적인 방법으로 구현될 수도 있고, 칩 내부의 페리페럴 (peripheral) 회로를 이용하여 구현될 수도 있다.In FIG. 1, an embodiment in which the
도 2에서는 칩(220) 외부의 컨트롤러 (210)에 의하여 제어부(130)의 기능이 구현되는 실시예가 도시된다.2 illustrates an embodiment in which the function of the
도 2를 참조하면 컨트롤러 (210)는 외부의 호스트로부터 추상화된 명령을 수신하고, 추상화된 명령을 제어 신호로 변환할 수 있다. 컨트롤러 (210)는 변환된 제어 신호를 NAND 플래시 칩 (220)으로 전송하여, NAND 플래시 칩 (220)의 동작을 제어할 수 있다.2, the
도 2의 실시예에서는, NAND 플래시 칩 (220)은 메모리 셀 어레이, 페이지 버퍼를 포함할 수 있고, 페이지 버퍼의 동작을 컨트롤러 (210)가 제어할 수 있다.In the embodiment of FIG. 2, the
도 3은 본 발명의 일 실시예에 따른 플래시 메모리 이용 방법을 도시하는 도면이다.3 is a diagram illustrating a method of using a flash memory according to an embodiment of the present invention.
도 3을 참조하면, 플래시 메모리 장치 (100)는 호스트 (140)로부터 쓰기 명령의 주소를 수신한다 (S310).Referring to FIG. 3, the
플래시 메모리 장치 (100)는 호스트 (140)로부터 페이지 버퍼(120)로 쓰기 명령의 데이터를 로드 (load) 한다 (S320).The
플래시 메모리 장치 (100)는 로드된 데이터를 페이지 버퍼 (120)로부터 메모 리 셀 어레이 (110) 내의 수신된 주소에 프로그램한다 (S330).The
플래시 메모리 장치 (100)는 쓰기 명령이 성공했는지 여부를 판정한다 (S340).The
플래시 메모리 장치 (100)는 쓰기 명령이 실패했으면 새로운 주소를 수신한다 (S350). 이 때 실시예에 따라서는 플래시 메모리 장치 (100)는 새로운 주소를 내부적으로 생성할 수도 있다.If the write command fails, the
플래시 메모리 장치 (100)는 새로운 주소를 이용하여 로드된 데이터를 페이지 버퍼 (120)로부터 메모리 셀 어레이(110)로 프로그램한다 (S330).The
플래시 메모리 장치 (100)는 쓰기 명령이 성공했으면 해당 프로세스를 종료한다.The
도 4는 본 발명의 일 실시예에 따른 플래시 메모리 장치 (400)를 도시하는 도면이다.4 is a diagram illustrating a
도 4를 참조하면 플래시 메모리 장치 (400)는 페이지 버퍼 (420), 메모리 셀 어레이 (410)를 포함한다.Referring to FIG. 4, the
메모리 셀 어레이 (410)는 주소에 따라 제1 페이지 (411), 제2 페이지 (412), 제3 페이지 (413)를 포함할 수 있다.The
메모리 셀 어레이 (410) 내의 메모리 셀들은 페이지 단위로 접근될 수 있다. 동시에 소거되는 메모리 셀들의 집합(set)을 블록(block) 또는 소거 블록 (erase block)이라 하고, 동시에 프로그래밍 동작의 목표가 되는 메모리 셀들의 집합을 페이지라 한다.Memory cells in the
블록은 복수의 페이지들을 포함할 수 있다. 메모리 셀 어레이 (410) 내의 페이지들을 가리키는 주소는 블록 주소 필드 및 페이지 오프셋 필드를 포함할 수 있다. 예를 들어, 제1 페이지(411)가 block 0에 포함되는 경우, 제1 페이지 (411)의 블록 주소 필드는 "0"일 수 있다. 제1 페이지 (411)의 block 0 내에서의 위치가 페이지 오프셋 필드에 의하여 나타내어진다.The block may include a plurality of pages. Addresses pointing to pages in the
도 4에서는 페이지 버퍼 (420)에 저장된 데이터를 3개의 서로 다른 페이지들 (411, 412, 413)에 프로그램하는 실시예가 도시된다. 이러한 동작은 테스트 동작일 수도 있고, 데이터 미러링에 관련된 동작일 수도 있다.In FIG. 4, an embodiment of programming data stored in the
도 4에서는 3개의 페이지들 (411, 412, 413)에 동일한 데이터가 프로그램되는 실시예가 도시되었으나 본 발명의 사상은 본 실시예에 국한되지 않고, 동일한 데이터가 프로그램되는 페이지들의 개수에 한정되지 않는다.In FIG. 4, an embodiment in which the same data is programmed in three
본 발명의 일 실시예에 따른 플래시 메모리 이용 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 상기 하드웨어 장치는 플래시 메모리 장치에 내장된 페리페럴 (peripheral) 회로를 통해서도 구현될 수 있고, 또는 플래시 메모리 장치 외부의 콘트롤러에 의하여 구현될 수도 있다.The flash memory using method according to an embodiment of the present invention may be implemented in the form of program instructions that may be executed by various computer means and may be recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa. The hardware device may also be implemented through a peripheral circuit embedded in the flash memory device, or may be implemented by a controller external to the flash memory device.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.
도 1은 본 발명의 일 실시예에 따른 플래시 메모리 장치(100)를 도시하는 도면이다.1 is a diagram illustrating a
도 2는 본 발명의 일 실시예에 따른 컨트롤러 (210) 및 NAND 플래시 Chip (220)를 도시하는 도면이다.2 is a diagram illustrating a
도 3은 본 발명의 일 실시예에 따른 플래시 메모리 이용 방법을 도시하는 동작 흐름도이다.3 is a flowchart illustrating a method of using a flash memory according to an embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 플래시 메모리 장치(400)를 도시하는 도면이다.4 is a diagram illustrating a
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
100: 플래시 메모리 장치100: flash memory device
110: 메모리 셀 어레이110: memory cell array
120: 페이지 버퍼120: page buffer
130: 제어부130: control unit
140: 호스트140: host
Claims (19)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080085146A KR101030146B1 (en) | 2008-08-29 | 2008-08-29 | Flash based storage device using page buffer as write cache and method of using the same |
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 (en) | 2008-08-29 | 2008-08-29 | Flash based storage device using page buffer as write cache and method of using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100026227A true KR20100026227A (en) | 2010-03-10 |
KR101030146B1 KR101030146B1 (en) | 2011-04-18 |
Family
ID=41721653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080085146A KR101030146B1 (en) | 2008-08-29 | 2008-08-29 | Flash based storage device using page buffer as write cache and method of using the same |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101030146B1 (en) |
WO (1) | WO2010024506A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013019043A2 (en) * | 2011-07-29 | 2013-02-07 | Taejin Info Tech Co., Ltd. | Disk input/output (i/o) layer architecture having block level device driver |
US10474585B2 (en) | 2014-06-02 | 2019-11-12 | Samsung Electronics Co., Ltd. | Nonvolatile memory system and a method of operating the nonvolatile memory system |
US11068335B2 (en) | 2015-02-04 | 2021-07-20 | SK Hynix Inc. | Memory system and operation method thereof |
Families Citing this family (4)
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 |
KR102147993B1 (en) | 2013-11-14 | 2020-08-25 | 삼성전자주식회사 | Nonvolatile memory system and operating method thereof |
KR20200048318A (en) * | 2018-10-29 | 2020-05-08 | 에스케이하이닉스 주식회사 | Storage device and operating method thereof |
KR20230057763A (en) | 2021-10-22 | 2023-05-02 | 삼성전자주식회사 | Page buffer including a plurality of latches and Memory device having the same |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6097452A (en) | 1983-11-02 | 1985-05-31 | Oki Electric Ind Co Ltd | Memory control system |
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 |
KR100543447B1 (en) * | 2003-04-03 | 2006-01-23 | 삼성전자주식회사 | Flash memory with error correction for page copy |
KR100546348B1 (en) * | 2003-07-23 | 2006-01-26 | 삼성전자주식회사 | Flash memory system and data writing method there-of |
US20050132128A1 (en) * | 2003-12-15 | 2005-06-16 | Jin-Yub Lee | Flash memory device and flash memory system including buffer memory |
KR20070048384A (en) * | 2005-11-04 | 2007-05-09 | (주)아트칩스 | Method of processing bad block in memory map |
-
2008
- 2008-08-29 KR KR1020080085146A patent/KR101030146B1/en active IP Right Grant
- 2008-12-24 WO PCT/KR2008/007648 patent/WO2010024506A1/en active Application Filing
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013019043A2 (en) * | 2011-07-29 | 2013-02-07 | Taejin Info Tech Co., Ltd. | Disk input/output (i/o) layer architecture having block level device driver |
WO2013019043A3 (en) * | 2011-07-29 | 2013-04-04 | Taejin Info Tech Co., Ltd. | Disk input/output (i/o) layer architecture having block level device driver |
KR101316917B1 (en) * | 2011-07-29 | 2013-10-11 | 주식회사 태진인포텍 | Disk input/output(i/o) layer architecture having block level device driver |
US10474585B2 (en) | 2014-06-02 | 2019-11-12 | Samsung Electronics Co., Ltd. | Nonvolatile memory system and a method of operating the nonvolatile memory system |
US11068335B2 (en) | 2015-02-04 | 2021-07-20 | SK Hynix Inc. | Memory system and operation method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR101030146B1 (en) | 2011-04-18 |
WO2010024506A1 (en) | 2010-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100878479B1 (en) | Memory system determining program method according to data information | |
KR100875539B1 (en) | Programmable memory system | |
KR100894809B1 (en) | Memory system and program method thereof | |
US8503257B2 (en) | Read disturb scorecard | |
US8607120B2 (en) | Semiconductor memory device for performing additional ECC correction according to cell pattern and electronic system including the same | |
US7974139B2 (en) | Non-volatile memory generating different read voltages | |
KR100823170B1 (en) | Memory system and memory card using bad block as slc mode | |
KR101030146B1 (en) | Flash based storage device using page buffer as write cache and method of using the same | |
KR20200076886A (en) | Storage device and operating method thereof | |
KR20130008300A (en) | Flash memory device conducting erase operation by using over program and operating method thereof | |
US11908535B2 (en) | Memory device and memory controller and storage device including the memory device and memory controller | |
KR20210026431A (en) | Memory system, memory controller, and operating method | |
US8924774B2 (en) | Semiconductor memory device and method for operating the same | |
KR20210101785A (en) | Memory system, memory controller, and operating method of memory system | |
KR20210079549A (en) | Memory system, memory controller, and operating method thereof | |
KR20100022282A (en) | Flash memory and method of reading data | |
US11315650B2 (en) | Memory system, memory controller, and method of operating memory system | |
KR20210143387A (en) | Memory system, memory controller, and operating method of memory system | |
KR20210012123A (en) | Memory system, memory controller, and operating method | |
KR20220070989A (en) | Memory system and operating method of memory system | |
KR20210028335A (en) | Memory system, memory controller, and operating method | |
KR20210071314A (en) | Memory system, memory controller, and operating method thereof | |
US11507509B2 (en) | Memory system, memory controller and method for operating memory system for determining whether to perform direct write based on reference write size | |
US20240036741A1 (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 | |
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 |