KR20090046568A - 플래시 메모리 시스템 및 그것의 쓰기 방법 - Google Patents
플래시 메모리 시스템 및 그것의 쓰기 방법 Download PDFInfo
- Publication number
- KR20090046568A KR20090046568A KR1020070112792A KR20070112792A KR20090046568A KR 20090046568 A KR20090046568 A KR 20090046568A KR 1020070112792 A KR1020070112792 A KR 1020070112792A KR 20070112792 A KR20070112792 A KR 20070112792A KR 20090046568 A KR20090046568 A KR 20090046568A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- flash memory
- page
- page buffer
- write
- 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/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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
본 발명에 따른 플래시 메모리 시스템의 쓰기 방법은: 쓰기 요청시 버퍼링 수단에 페이지 단위로 데이터를 버퍼링하는 단계; 및 플래시 메모리에 상기 페이지 단위로 버퍼링된 데이터를 쓰는 단계를 포함한다.
버퍼링, 페이지, 쓰기
Description
본 발명은 플래시 메모리 시스템 및 그것의 쓰기 방법에 관한 것이다.
플래시 메모리(Flash Memory)는 고집적이 가능한 불휘발성 메모리 장치(non-volatile memory)이다. 플래시 메모리는 데이타 보존성이 우수하기 때문에 플래시 메모리 시스템 내에서 메인 메모리로서 사용된다. 플래시 메모리는 기존의 하드 디스크 및 플로피 디스크를 대체할 만한 고집적 대용량 소자로서 주목을 받고 있다. 현재 플래시 메모리는 휴대폰, 디지털 카메라, MP3 플레이어, 캠코더, PDA 등 휴대형 디지탈 전자기기의 저장매체로 널리 이용되고 있다.
그러나 플래시 메모리는 램(RAM)에 비해 데이타 입출력 속도가 느리다는 단점이 있다. 플래시 메모리의 읽기 및 쓰기 동작에 있어서, 지연시간의 대부분은 페이지 버퍼에 임시로 저장된 데이타를 셀 어레이에 쓰거나 셀 어레이에 저장된 데이타를 페이지 버퍼로 읽어내는데 소모된다.
또한 플래시 메모리는 랜덤 액세스가 불가능하다는 단점이 있다. 랜덤 액세스가 불가능한 플래시 메모리의 단점을 극복하기 위하여 플래시 메모리 시스템 내 에 버퍼 메모리를 두어 랜덤 액세스를 지원하는 새로운 방법들이 개발되고 있다.
플래시 메모리 시스템이 랜덤 액세스를 지원하기 위해서는 플래시 메모리에 데이타를 쓰기 전에 또는 호스트에 데이터를 전송하기 전에 데이타를 임시적으로 저장하기 위한 버퍼 메모리가 필요하다. 버퍼 메모리는 랜덤 액세스가 가능한 메모리(예를 들면, DRAM이나 SRAM)이다.
한편, 플래시 메모리는 복수개의 블록들(예를 들면, 1024 Blocks, 2048 Blocks)로 이루어진다. 플래시 메모리에 있어서, 블록은 데이타 소거 동작의 기본 단위이다. 하나의 블록은 복수개의 페이지들(예를 들면, 16 Pages, 32 Pages, 또는 64 Pages)로 이루어진다. 여기서 페이지는 데이타 쓰기 및 읽기 동작의 기본 단위이다. 한 페이지의 사이즈는 보통 512Byte 또는 2048Byte 이다.
플래시 메모리는 페이지 사이즈에 따라 소블록 플래시 메모리와 대블록 플래시 메모리로 나눌 수 있다. 소블록 플래시 메모리는 512 Byte의 페이지 사이즈를 가진다. 대블록 플래시 메모리는 2048 Byte 혹은 그 이상의 페이지 사이즈를 가진다.
대블록 플래시 메모리를 사용하면, 소블록 플래시 메모리를 사용할 때보다 데이타 입출력 속도를 증가시킬 수 있다. 같은 용량의 데이타를 쓰거나 읽는데 있어서, 대블록 플래시 메모리를 이용하면 다량의 데이타를 한꺼번에 셀 어레이에 쓰거나 셀 어레이로부터 읽어낼 수 있기 때문이다.
또한 대블록 플래시 메모리를 사용하면 칩 사이즈를 줄일 수 있다. 같은 용량의 플래시 메모리를 구현하는데 있어서, 소블록 플래시 메모리를 여러개 사용하 는 것보다 대블록 플래시 메모리를 하나 사용하는 것이 전체 칩 사이즈를 줄이는데 유리하다. 이런 이유로 최근에는 데이타 입출력 동작 속도를 빠르게 하고 칩 사이즈를 줄이기 위해 대블록 플래시 메모리를 주로 사용하고 있다.
그러나 종래의 플래시 메모리 시스템에서는 이러한 플래시 메모리를 고려하지 않고 쓰기 요청(write request)이 이루어진다. 따라서, 플래시 메모리에서 프로그램 동작이 효율적으로 관리되지 않는다.
본 발명의 목적은 플래시 메모리의 프로그램 동작이 효율적으로 관리되도록 하는 플래시 메모리 시스템을 제공하는데 있다.
본 발명의 플래시 메모리 시스템에서는, 연속하여 쓰기 요청된 데이터를 페이지 사이즈에 맞게 정렬한뒤 프로그램 동작이 수행된다.
본 발명에 따른 플래시 메모리 시스템에서는, 페이지 사이즈에 맞게 정렬한 뒤 프로그램을 수행하기 때문에, 프로그램 동작을 줄일 수 있고, 페이지를 관리하는 데도 효율적이다.
본 발명에 따른 플래시 메모리 시스템의 쓰기 방법은: 쓰기 요청시 버퍼링 수단에 페이지 단위로 데이터를 버퍼링하는 단계; 및 플래시 메모리에 상기 페이지 단위로 버퍼링된 데이터를 쓰는 단계를 포함한다.
실시예에 있어서, 상기 데이터가 페이지 단위로 버퍼링되지 않았을 때, 다음 쓰기 요청을 기다리는 단계를 더 포함한다.
실시예에 있어서, 상기 버퍼링 수단은 디램인 것을 특징으로 한다.
실시예에 있어서, 상기 플래시 메모리 시스템은 원낸드이고, 상기 버퍼링 수단은 데이터 디램(Data DRAM)인 것을 특징으로 한다.
실시예에 있어서, 상기 버퍼링 수단은 상기 플래시 메모리의 페이지 버퍼인 것을 특징으로 한다.
실시예에 있어서, 상기 페이지 버퍼에 이전 쓰기 요청에 대응하는 아직 쓰여지지 않은 데이터가 남아있는 지 판별하는 단계를 더 포함한다.
실시예에 있어서, 상기 판별결과로써, 상기 페이지 버퍼에 아직 쓰여지지 않은 데이터가 남아 있다면, 상기 쓰기 요청에 대응하는 논리 페이지 어드레스와 상기 페이지 버퍼에 남아 있는 데이터에 해당하는 이전 논리 페이지 어드레스가 같은 지 판별하는 단계를 포함한다.
실시예에 있어서, 상기 쓰기 요청에 대응하는 상기 논리 페이지 어드레스와 상기 페이지 버퍼에 남아 있는 데이터에 해당하는 상기 이전 논리 페이지 어드레스가 다르면, 상기 페이지 버퍼에 남아있는 데이터를 상기 이전 논리 페이지 어드레스에 대응되는 페이지에 쓰는 단계를 더 포함한다.
실시예에 있어서, 상기 쓰기 요청에 대응하는 상기 논리 페이지 어드레스와 상기 페이지 버퍼에 남았는 데이터에 해당하는 상기 이전 논리 페이지 어드레스가 같으면, 상기 쓰기 요청에 대응하는 데이터를 상기 페이지 버퍼에 전송하는 단계를 더 포함한다.
실시예에 있어서, 상기 쓰기 요청에 대응하는 데이터를 상기 페이지 버퍼에 전송한 결과로써 상기 페이지 버퍼가 상기 페이지 단위의 데이터로 버퍼링될 때, 상기 플래시 메모리에 쓰기 동작을 수행하는 것을 특징으로 한다.
실시예에 있어서, 상기 쓰기 요청에 대응하는 데이터를 상기 페이지 버퍼에 전송할 결과로써 상기 페이지 버퍼가 상기 페이지 단위로 데이터로 버퍼링되지 않았을 때, 상기 플래시 메모리 시스템은 다음 쓰기 요청을 기다리는 것을 특징으로 한다.
본 발명에 따른 플래시 메모리 시스템은: 호스트; 플래시 메모리; 및 쓰기 동작시 상기 호스트로부터 쓰기 요청 및 데이터를 전달받아, 상기 데이터를 페이지 단위로 버퍼링하여 상기 플래시 메모리에 쓰여지도록 제어하는 메모리 제어기를 포함한다.
실시예에 있어서, 상기 메모리 제어기는 상기 쓰기 요청시 상기 플래시 메모리의 페이지 버퍼에 데이터가 남아 있는 지 판별하는 것을 특징으로 한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예를 첨부된 도면을 참조하여 설명한다.
본 발명에 따른 플래시 메모리 시스템에서는 쓰기 요청시 페이지 사이즈에 적합하게 데이터가 버퍼링된 후, 플래시 메모리에서 쓰기 동작이 수행된다. 여기서 버퍼링 수단으로는 디램(DRAM), 플래시 메모리의 페이지 버퍼(Page Buffer) 혹은 원낸드(0neNAND)의 데이터 디램(Data DRAM)이 적용가능하다. 본 발명에 따른 플래시 메모리 시스템은 쓰기 요청시 페이지 사이즈에 적합하게 데이터를 버퍼링한 후, 플래시 메모리에 쓰기 동작을 수행하기 때문에, 쓰기 성능이 개선된다.
도 1은 본 발명에 개념을 보여주는 도면이다. 도 1을 참조하면, 플래시 메모리 시스템(1)은 버퍼링 수단(10), 플래시 메모리(20) 및 맵핑 테이블(30)을 포함한 다. 본 발명의 플래시 메모리 시스템(1)은 버퍼링 수단(10)에 페이지 사이즈의 데이터가 가득찬 뒤 플래시 메모리(20)에 쓰기 동작이 수행된다. 본 발명의 버퍼링 수단(10)은 디램, 페이지 버퍼 혹은 데이터 디램이 될 수 있다. 아래에서는 설명의 편의를 위하여 페이지가 4개의 섹터들(sectors)로 구분된다고 가정하겠다.
버퍼링 수단(10)은 플래시 메모리(20)의 입출력 데이터를 임시로 저장하는 공간이다. 버퍼링 수단(10)은 4개의 섹터들의 크기로 구현될 것이다. 본 발명의 플래시 메모리 시스템(1)에서는 쓰기 요청시 버퍼링 수단(10)의 4개의 섹터들에 데이터가 가득 찼는 지를 판별하기 위한 수단(도시되지 않음)이 구비될 것이다. 이러한 수단은 도 2에서 자세히 하도록 하겠다.
플래시 메모리(20)는 데이터를 저장하기 위한 수단이다. 플래시 메모리(20)는 페이지 단위로 쓰기 동작이 수행된다. 플래시 메모리 시스템(1)은 플래시 메모리(20)에 저장된 데이터를 페이지 단위로 관리한다.
맵핑 테이블(30)는 페이지 단위로 플래시 메모리(20)를 관리하기 위한 정보이다. 맵핑 테이블(30)에는 논리 페이지 어드레스(Logical Page Address)에 대응되는 물리 페이지 어드레스(Physical Page Address)에 관련된 맵핑 정보가 포함된다.
도 1을 다시 참조하면, 본 발명의 플래시 메모리 시스템(1)에서 쓰기 동작은 아래와 같이 수행된다. 호스트(도시되지 않음)에서 다음과 같은 연속된 쓰기 요청이 이루워진다. 쓰기 요청은 Write(LBA:0, NUM_SECTORS:5) 및 Write(LBA:5, NUM_SECTORS:4) 형태로 호스트로부터 전달된다. 여기서 LBA:0 및 LBA:5는 각각의 쓰기 요청에 따라 쓰기 동작시 수행될 첫번째 섹터의 논리 블럭 어드레스(Logical Block Address)를 말하고, Num_SECTORS:5 및 Num_SECTORS:4는 각각의 쓰기 요청에 따라 쓰기 동작이 수행될 섹터의 개수를 말한다. 즉, Write(LBA:0, NUM_SECTORS:5)은 논리 블럭 어드레스(LBA0)부터 5개의 섹터들에 대하여 쓰기 동작을 수행하라는 의미이다. 또한, Write(LBA:5, NUM_SECTORS:4)은 논리 블럭 어드레스(LAB5)부터 5개의 섹터들에 대하여 쓰기 동작을 수행하라는 의미이다.
우선, Write(LBA:0, NUM_SECTORS:5)의 쓰기 요청에 의하여, 본 발명의 플래시 메모리 시스템(1)에서는 4개의 섹터 데이터(SDATA0~SDATA4)가 버퍼링 수단(10)에 전달된다. 버퍼링 수단(10)에 데이터가 가득찼다고 판별되면(즉, 4개 섹터 크기의 데이터가 전달되면), 논리 블럭 어드레스(LBA:0)에 대응되는 물리 블럭 어드레스(LBA0)가 포함된 페이지(page0)에 쓰기 동작이 수행된다. 즉, 버퍼링 수단(10)에는 쓰여질 4개 섹터 크기의 데이터(SDATA1~SDATA4)가 전달되면, 곧 페이지 단위의 쓰기 동작이 수행된다. 쓰기 동작이 수행되면, 맵핑 테이블(30)에는 논리 페이지 어드레스(Loigical Page Address:LPA0)에 대응하는 물리 페이지 어드레스(Physical Page Address: PPA0)가 대응되도록 맵핑 정보가 저장된다.
이후, 섹터 데이터(SDATA4)는 버퍼링 수단(10)에 전달되지만, 플래시 메모리(20)에 곧바로 쓰기 동작이 수행되지 않는다. 이때, 새로운 Write(LBA:5, NUM_SECTOR:4)의 쓰기 요청에 의하여, 버퍼링 수단(10)에 섹터 데이터(SDATA5~SDATA7)가 전달된다. 버퍼링 수단(10)에 데이터가 가득찼다고 판별되면(즉, 4개 섹터 크기의 데이터가 전달되면), 페이지(page1)에 쓰기 동작이 수행된다. 쓰기 동작이 완료되면, 맵핑 테이블(30)에는 논리 페이지 어드레스(Loigical Page Address:LPA1)에 대응하는 물리 페이지 어드레스(Physical Page Address: PPA1)가 대응되도록 맵핑 정보가 저장된다. 이후, 섹터 데이터(SDATA8)는 버퍼링 수단(10)에 전달되지만, 플래시 메모리(20)에 대한 쓰기 동작이 곧바로 수행되지는 않는다. 플래시 메모리 시스템(1)은 새로운 쓰기 요청을 기다리게 된다.
본 발명의 플래시 메모리 시스템(1)의 쓰기 동작에서는 버퍼링 수단(10)에 데이터가 가득 찰 때 플래시 메모리의 쓰기 동작이 수행된다. 따라서, 쓰여질 데이터가 페이지 단위로 정렬된다.
종래의 플래시 메모리 시스템에서는 동일한 쓰기 요청들[Write(LBA:0, NUM_SECTORS:5) 및 Write(LBA:5, NUM_SECTORS:4)]에 대하여, 섹터 데이터들(SD0~SD3)을 페이지(Page1)에 쓰고, 일단 섹터 데이터(SD4)를 페이지(Page2)에 쓴다. 그 뒤, 카피백 동작을 통하여 섹터 데이터(SD4-SD7)에 대하여 페이지(Page3)에 쓴다. 섹터 데이터(SD8)는 페이지(Page4)에 쓴다. 또한, 종래의 플래시 메모리 시스템에서는 섹터 데이터(SD4)를 쓰는데 사용된 페이지(Page)가 카피백 동작을 통하여 무효(invalid) 페이지가 된다.
그런데 본 발명의 플래시 메모리 시스템(1)에서는 쓰기 요청시 쓰여질 데이터를 버퍼링을 한 뒤 쓰기 동작을 수행하기 때문에, 종래 플래시 메모리 시스템에서 요구되는 카피백 동작이 필요없으며, 그로 인한 무효 페이지도 발생하지 않는다.
도 2는 본 발명에 따른 플래시 메모리 시스템(100)에 대한 실시예를 보여주는 도면이다. 도 2에서는 도 1의 버퍼링 수단(10)으로 페이지 버퍼(134)가 이용된 다. 도 2을 참조하면, 플래시 메모리 시스템(100)은 호스트(110), 메모리 제어기(120) 및 플래시 메모리(130)을 포함하고 있다. 본 발명의 플래시 메모리 시스템(100)은 쓰기 동작시 쓰여질 데이터가 페이지 버퍼(134)에 가득찰 때 쓰기 동작이 수행되도록 구현될 것이다.
호스트(100)은 플래시 메모리(130)에 데이터를 쓰기 위한 쓰기 요청(Write Request) 및 쓰여질 데이터(DATA)를 메모리 제어기(120)에 전달한다. 메모리 제어기(120)는 쓰기 요청 및 데이터를 입력받아 쓰기 동작이 수행되도록 제어 신호들(CTRL) 및 데이터(CMD/ADDR/DATA)를 플래시 메모리(130)에 전달한다. 플래시 메모리(130)이 낸드 플래시 메모리라면, 제어 신호들(CTRL)로는 ALE, CLE, nWE, nRE 등이 될 것이다. 플래시 메모리(130)에서는 전달된 제어 신호들(CTRL)에 응답하여 전달된 데이터가 명령어(CMD)인 지, 어드레스(ADDR)인 지, 혹은 쓰여질 데이터(DATA)인 지 판별한다.
본 발명의 페이지 버퍼(134)는 4개의 섹터그룹들(SG0~SG4)로 구분된다. 각 섹터 그룹들(SG0~SG4)은 섹터 크기의 데이터를 임시로 저장할 수 있다. 본 발명에서는 페이지 버퍼(134)가 4개의 섹터그룹들로 구분되었지만, 반드시 여기에 국한될 필요는 없다. 본 발명이 페이지 버퍼(134)는 하나의 페이지를 구성하는 복수의 섹터그룹들을 포함할 것이다.
본 발명의 메모리 제어기(120)가 쓰기 동작시 페이지 버퍼(134)가 가득 찼는 지 판별하고, 판별 결과에 따라 쓰기 동작을 수행할 지 결정하도록 구현된다. 이를 위하여, 메모리 제어기(1200는 쓰기 동작시 쓰여질 최종 데이터가 어느 섹터 그룹 에 속하는 지 알려주는 비트 맵(122) 포함한다. 쓰여질 최종 데이터가 페이지 버퍼(134)의 어느 섹터 그룹에 속하는 지를 판별하고, 판별결과로써 대응되는 섹터 그룹이 4비트 값으로 비트 맵(122)에 저장된다. 일례로, 최종 데이터가 대응되는 논리 블럭 어드레스를 4로 나눈 나머지 값으로 비트 값이 결정될 수 있을 것이다. 비트 값과 대응되는 섹터 그룹과의 관계를 다음 표와 같다.
비트 값 | 섹터 그룹 |
0000 | SG0 |
1001 | SG1 |
1100 | SG2 |
1111 | SG3 |
본 발명에서는 쓰기 동작시 비트 맵에 저장된 값을 읽어와 페이지 버퍼(134)가 가득 찼는 지를 판별하게 된다. 예를 들어, 비트 맵(122)에 저장된 값이 '1111'이라면, 쓰기 동작시 페이지 버퍼(134)가 쓰여질 데이터로 가득채워졌다는 의미이다. 반면에, 비트 맵(122)에 저장된 값이 '1001'이라면, 쓰기 동작시 페이지 버퍼(134)는 제 2 섹터 그룹(SG1)까지 쓰여질 데이터가 채워졌다는 의미이다.
본 발명의 플래시 메모리 시스템(100)에서는 비트 맵(122)에 저장된 비트 값을 보고, 플래시 메모리(130)의 쓰기 동작을 수행할 지를 판단하게 된다. 특히, 비트 맵(122)에 저장된 비트 값이 '1111'일 때, 플래시 메모리(130)의 쓰기 동작이 수행된다. 즉, 페이지 버퍼(134)가 쓰여질 데이터로 가득찼을 때 쓰기 동작이 수행된다.
한편, 본 발명의 플래시 메모리 시스템(100)에서는 페이지 버퍼(134)에 데이터가 전달된 뒤 전원이 오프됨으로 인하여 데이터가 상실되지 않도록 하기 위하여, 호스트 플러시 명령(Host flush command)이 이용되거나 혹은 주기적으로 페이지 버 퍼(134)의 데이터가 메모리 셀 어레이(132)에 쓰여지도록 구현될 것이다.
본 발명에 따른 플래시 메모리 시스템(100)에서는 페이지 버퍼(134)가 가득찼을 때 쓰기 동작이 수행됨으로 호스트(110)가 플래시 메모리(130)의 특성에 맞게페이지 단위로 쓰기 요청을 하는 것과 유사한 효과를 얻게 된다.
도 3은 도 2에 도시된 플래시 메모리 시스템(100)의 쓰기 방법을 보여주는 흐름도이다. 도 2 및 도 3을 참조하면, 플래시 메모리 시스템(100)의 쓰기 방법은 다음과 같다.
호스트(110)는 쓰기 요청 및 쓰여질 데이터를 메모리 제어기(120)에 전달한다(S110). 이는 메모리 제어기(120) 입장에서 보면, 메모리 제어기(120)는 호스트(110)으로부터 쓰기 요청을 기다린다고 볼 수 있다. 이후, 메모리 제어기(120)는 비트 맵(122)에 저장된 비트 값을 보고, 페이지 버퍼(134)에 데이터가 남아 있는 지를 판별한다(S120). 여기서 페이지 버퍼(134)에 남아있는 데이터는, 이전 쓰기 요청에서 페이지 버퍼(134)에 데이터가 가득차지 않기 때문에 쓰기 동작이 수행되지 않은 데이터이다.
만약, S120 단계의 판별 결과로써 페이지 버퍼(134)에 데이터가 남아 있지 않다면, 메모리 제어기(120)는 쓰기 명령과 함께 쓰여질 데이터를 플래시 메모리(130)으로 전달한다. 한편, 메모리 제어기(120)는 새롭게 전달된 데이터에 의해 페이지 버퍼(134)가 가득찼는 지 판별한다(S140). 이때, S140 단계에서 페이지 버퍼(134)가 가득차지 않았다면, 메모리 제어기(120)는 플래시 메모리(130)의 쓰기 동작을 수행하지 않고 또 다른 쓰기 요청을 기다린다(S145). 반면에 S140 단계에서 페이지 버퍼(134)가 가득차면, 메모리 제어기(120)는 현재 페이지 버퍼(134)에 가득찬 데이터를 메모리 셀 어레이(132)에 쓰도록 제어한다(S150). 이후, 메모리 제어기(120)는 쓰기 확인 명령(Write 10h)을 전달한 뒤 쓰기 동작을 완료한다(S160).
만약, S120 단계의 판별결과로써 페이지 버퍼에 데이터가 남아 있다면, 메모리 제어기(120)는 현재 전달된 논리 페이지 어드레스(LPA)와 현재 페이지 버퍼(134)에 남아있는 데이터에 해당하는 논리 페이지 어드레스(LPA)가 같은 지 판별한다(S130).
S130 단계의 판별결과로써, 현재 전달된 논리 페이지 어드레스와 현재 페이지 버퍼(134)에 남아있는 데이터에 해당하는 논리 페이지 어드레스가 같으면, 메모리 제어기(120)는 S140 단계를 진행한다. 반면에 S130 단계의 판별결과로써, 현재 전달된 논리 페이지 어드레스와 현재 페이지 버퍼(134)에 남아 있는 데이터에 해당하는 논리 페이지 어드레스가 같지 않다면, 메모리 제어기(120)는 현재 페이지 버퍼(134)에 남아있는 데이터를 해당 페이지에 쓰여지도록 제어한 뒤, 쓰기 확인 명령(Write 10h)을 전달한다(S135). 이후, 현재 메모리 제어기(120)에 전달된 데이터를 플래시 메모리(130)에 쓸 지를 결정하기 위하여, 메모리 제어기(120)는 S140 단계를 진행한다. 이때, 메모리 제어기(120)는 비트 맵에 저장된 비트 값을 보고 현재 전달된 데이터에 의하여 페이지 버퍼(134)가 가득 찼는지 판별한다(S140).
만약, S140 단계의 판별 결과로써 페이지 버퍼(134)가 가득 찼다면, 메모리 제어기(120)는 플래시 메모리(130)로 쓰기 명령 및 데이터를 전송하여 쓰기 동작을 수행하도록 제어한다(S150). 그 뒤, 플래시 메모리(130)의 쓰기 동작이 완료되면, 메모리 제어기(120)는 쓰기 확인 명령(Write 10h)을 플래시 메모리(130)에 전달한다(S160). 반면에, S 140 단계의 판별 결과로써 페이지 버퍼(134)가 현재 전달된 데이터로 가득 차지 않으면, 메모리 제어기(120)는 새로운 쓰기 요청을 기다린다(S145).
본 발명에 따른 플래시 메모리 시스템의 쓰기 방법은 쓰기 요청시 페이지 버퍼에 페이지 사이즈 만큼 데이터를 모은 다음에 쓰기 동작을 수행한다.
본 발명의 플래시 메모리(130)는 일반적인 플래시 메모리로 구현가능하다. 본 발명의 플래시 메모리 시스템(100)에서는 플래시 메모리(130)의 변경없이 메모리 제어기(120)의 소프트웨어(예를 들어, Flash Translation Layer)에서 플래시 메모리(134)를 이용하여 버퍼링을 수행할 수 있다. 또한, NOP(Number Of Partial program)가 1인 MLC(Multi Level Cell) 플래시 메모리에 있어서, 버퍼링을 이용함으로써 NOP가 2이상의 복수가 되는 효과가 유발된다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명에 개념을 보여주는 도면이다.
도 2는 본 발명에 따른 플래시 메모리 시스템에 대한 실시예를 보여주는 도면이다.
도 3은 도 2에 도시된 플래시 메모리 시스템의 쓰기 방법을 보여주는 흐름도이다.
*도면의 주요부분에 대한 부호의 설명*
1,100: 플래시 메모리 시스템 110: 호스트
120: 메모리 제어기 130: 플래시 메모리
122: 비트 맵 132: 메모리 셀 어레이
10: 버퍼링 수단 20: 플래시 메모리
30: 맵핑 테이블
Claims (13)
- 플래시 메모리 시스템의 쓰기 방법에 있어서:쓰기 요청시 버퍼링 수단에 페이지 단위로 데이터를 버퍼링하는 단계; 및플래시 메모리에 상기 페이지 단위로 버퍼링된 데이터를 쓰는 단계를 포함하는 쓰기 방법.
- 제 1 항에 있어서,상기 데이터가 페이지 단위로 버퍼링되지 않았을 때, 다음 쓰기 요청을 기다리는 단계를 더 포함하는 쓰기 방법.
- 제 2 항에 있어서,상기 버퍼링 수단은 디램인 것을 특징으로 하는 쓰기 방법.
- 제 2 항에 있어서,상기 버퍼링 수단은 데이터 디램(Data DRAM)인 것을 특징으로 하는 쓰기 방법.
- 제 2 항에 있어서,상기 버퍼링 수단은 상기 플래시 메모리의 페이지 버퍼인 것을 특징으로 하 는 쓰기 방법.
- 제 5 항에 있어서,상기 페이지 버퍼에 이전 쓰기 요청에 대응하는 아직 쓰여지지 않은 데이터가 남아있는 지 판별하는 단계를 더 포함하는 쓰기 방법.
- 제 6 항에 있어서,상기 판별결과로써, 상기 페이지 버퍼에 아직 쓰여지지 않은 데이터가 남아 있다면, 상기 쓰기 요청에 대응하는 논리 페이지 어드레스와 상기 페이지 버퍼에 남아 있는 데이터에 해당하는 이전 논리 페이지 어드레스가 같은 지 판별하는 단계를 포함하는 쓰기 방법.
- 제 7 항에 있어서,상기 쓰기 요청에 대응하는 상기 논리 페이지 어드레스와 상기 페이지 버퍼에 남아 있는 데이터에 해당하는 상기 이전 논리 페이지 어드레스가 다르면, 상기 페이지 버퍼에 남아있는 데이터를 상기 이전 논리 페이지 어드레스에 대응되는 페이지에 쓰는 단계를 더 포함하는 쓰기 방법.
- 제 7 항에 있어서,상기 쓰기 요청에 대응하는 상기 논리 페이지 어드레스와 상기 페이지 버퍼 에 남았는 데이터에 해당하는 상기 이전 논리 페이지 어드레스가 같으면, 상기 쓰기 요청에 대응하는 데이터를 상기 페이지 버퍼에 전송하는 단계를 더 포함하는 쓰기 방법.
- 제 9 항에 있어서,상기 쓰기 요청에 대응하는 데이터를 상기 페이지 버퍼에 전송한 결과로써 상기 페이지 버퍼가 상기 페이지 단위의 데이터로 버퍼링될 때, 상기 플래시 메모리에 쓰기 동작을 수행하는 것을 특징으로 하는 쓰기 방법.
- 제 9 항에 있어서,상기 쓰기 요청에 대응하는 데이터를 상기 페이지 버퍼에 전송할 결과로써 상기 페이지 버퍼가 상기 페이지 단위로 데이터로 버퍼링되지 않았을 때, 상기 플래시 메모리 시스템은 다음 쓰기 요청을 기다리는 것을 특징으로 하는 쓰기 방법.
- 호스트;플래시 메모리;쓰기 동작시 상기 호스트로부터 쓰기 요청 및 데이터를 전달받아, 상기 데이터를 페이지 단위로 버퍼링하여 상기 플래시 메모리에 쓰여지도록 제어하는 메모리 제어기를 포함하는 플래시 메모리 시스템.
- 제 12 항에 있어서,상기 메모리 제어기는 상기 쓰기 요청시 상기 플래시 메모리의 페이지 버퍼에 데이터가 남아 있는 지 판별하는 것을 특징으로 하는 플래시 메모리 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070112792A KR20090046568A (ko) | 2007-11-06 | 2007-11-06 | 플래시 메모리 시스템 및 그것의 쓰기 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070112792A KR20090046568A (ko) | 2007-11-06 | 2007-11-06 | 플래시 메모리 시스템 및 그것의 쓰기 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20090046568A true KR20090046568A (ko) | 2009-05-11 |
Family
ID=40856420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070112792A KR20090046568A (ko) | 2007-11-06 | 2007-11-06 | 플래시 메모리 시스템 및 그것의 쓰기 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20090046568A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8582360B2 (en) | 2010-03-29 | 2013-11-12 | Samsung Electronics Co., Ltd. | Read method for nonvolatile memory device, and data storage system using the same |
US9514826B2 (en) | 2014-10-30 | 2016-12-06 | Winbond Electronics Corp. | Programming method for NAND-type flash memory |
CN112394998A (zh) * | 2019-08-13 | 2021-02-23 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
-
2007
- 2007-11-06 KR KR1020070112792A patent/KR20090046568A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8582360B2 (en) | 2010-03-29 | 2013-11-12 | Samsung Electronics Co., Ltd. | Read method for nonvolatile memory device, and data storage system using the same |
US9159440B2 (en) | 2010-03-29 | 2015-10-13 | Samsung Electronics Co., Ltd. | Read method for nonvolatile memory device, and data storage system using the same |
US9514826B2 (en) | 2014-10-30 | 2016-12-06 | Winbond Electronics Corp. | Programming method for NAND-type flash memory |
CN112394998A (zh) * | 2019-08-13 | 2021-02-23 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11232041B2 (en) | Memory addressing | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
KR101300657B1 (ko) | 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법 | |
CN110955384B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US9697116B2 (en) | Storage system and writing method thereof | |
KR101861170B1 (ko) | 마이그레이션 관리자를 포함하는 메모리 시스템 | |
JP5002201B2 (ja) | メモリシステム | |
US20100042774A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
US8738842B2 (en) | Solid state disk controller and data processing method thereof | |
US20100057979A1 (en) | Data transmission method for flash memory and flash memory storage system and controller using the same | |
US9122586B2 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
JP2008152464A (ja) | 記憶装置 | |
TW200527433A (en) | Memory card and semiconductor device | |
KR20130096881A (ko) | 플래시 메모리 장치 | |
KR20080007470A (ko) | Mram을 이용하는 비휘발성 메모리 시스템 | |
US10168951B2 (en) | Methods for accessing data in a circular block mode and apparatuses using the same | |
JP5329689B2 (ja) | メモリコントローラ、不揮発性記憶装置 | |
KR101081948B1 (ko) | 불휘발성 메모리 장치 및 그것의 데이터 저장 방법 | |
CN113590505B (zh) | 地址映射方法、固态硬盘控制器及固态硬盘 | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
US11029854B2 (en) | Memory controller for concurrently writing host data and garbage collected data and operating method thereof | |
KR20090046568A (ko) | 플래시 메모리 시스템 및 그것의 쓰기 방법 | |
CN111611178A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US12118241B2 (en) | Memory controller, memory system, and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |