KR100490603B1 - 플래시 메모리 동작 제어 방법 및 장치 - Google Patents

플래시 메모리 동작 제어 방법 및 장치 Download PDF

Info

Publication number
KR100490603B1
KR100490603B1 KR10-2002-0077392A KR20020077392A KR100490603B1 KR 100490603 B1 KR100490603 B1 KR 100490603B1 KR 20020077392 A KR20020077392 A KR 20020077392A KR 100490603 B1 KR100490603 B1 KR 100490603B1
Authority
KR
South Korea
Prior art keywords
data
block
storage location
flash memory
linked
Prior art date
Application number
KR10-2002-0077392A
Other languages
English (en)
Other versions
KR20030009250A (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 KR10-2002-0077392A priority Critical patent/KR100490603B1/ko
Publication of KR20030009250A publication Critical patent/KR20030009250A/ko
Priority to US10/727,311 priority patent/US7136986B2/en
Application granted granted Critical
Publication of KR100490603B1 publication Critical patent/KR100490603B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Abstract

본 발명에 따른 플래시 메모리 제어 방법은 호스트 시스템으로부터 논리 어드레스를 수신하는 단계와, 수신한 논리 어드레스를 물리 어드레스로 변환하는 단계와, 호스트 시스템으로부터 수신한 데이터를 상기 물리 어드레스에 의해 지정된 플래시 메모리의 저장 위치(예컨대, 기본 블록)에 기록하는 단계를 포함한다. 상기 기록 단계에서, 지정된 플래시 메모리의 저장 위치(기본 블록)가 링크되어 있고, 링크된 저장 위치(1차 링크 블록)가 이미 유효 데이터로 기록되어 있으며, 상기 링크된 저장 위치의 사용도가 기준값보다 큰 경우에는, 상기 지정된 저장 위치의 유효 데이터를 상기 링크된 저장 위치로 이동하고, 상기 링크된 저장 위치의 사용도가 기준값보다 작은 경우에는, 상기 링크된 저장 위치의 유효 데이터를 또 다른 링크된 저장 위치로 이동하는 단계를 포함한다. 여기서, 기준값은 서로 다른 메모리 블록에서 데이터를 이동하는 데에 걸리는 시간이 최소로 되는 값으로 결정된다. 기본 블록에서 1차 링크 블록으로 데이터를 이동하는 동작은 플래시 메모리를 데이터 저장 장치로 사용하는 호스트 시스템이 휴지 상태일 때 이루어진다. 또한, 플래시 메모리의 저장 위치 중 무효 데이터가 기록되어 있는 메모리 블록에 대한 소거 동작도 호스트 시스템이 휴지 상태일 때 이루어지도록 할 수 있다.

Description

플래시 메모리 동작 제어 방법 및 장치 {Control method and apparatus for operations of flash memory system}
본 발명은 메모리 반도체 기술에 관한 것이며, 좀 더 구체적으로는 플래시 메모리의 동작 속도를 개선할 수 있는 플래시 메모리 동작 제어 방법과 제어 장치에 관한 것이다.
플래시 메모리(Flash memory)의 장점으로는 전원이 나간 후에도 데이터가 유지되고, 하드 디스크에 비해 데이터를 읽는 속도가 빠르며 진동에 강하고, SRAM에 비해 가격이 싸다는 것 등이 있다. 한편, 플래시 메모리의 특징은 메모리 셀 블록에 데이터를 기록(write 또는 program)하는 경우 그것이 블록의 일부 페이지 또는 섹터인 경우에도, 해당 블록을 모두 소거(erase)한 다음 기록을 해야 한다는 것과, 소거하는 단위의 크기와 프로그램(또는 기록)하는 단위의 크기가 서로 다르다는 점이다. 따라서 플래시 메모리에 데이터를 기록하는 데에는 많은 시간이 걸리고, 기록을 하기 전에 소거 동작이 선행되어야 하기 때문에 기록 동작의 횟수가 많아질수록 플래시 메모리의 수명이 짧아진다는 문제가 있다. 플래시 메모리의 종래 소거 동작은 여러 가지 방법으로 이루어져 왔는데, 플래시 메모리를 블록이나 섹터(이것들은 개별적으로 소거가 가능하지만 한번에 하나만 소거가 가능함)로 구분한 다음, 원하는 블록을 선정하고 이 블록의 데이터를 RAM과 같은 임시 저장 장치에 옮긴 후, 상기 선정된 블록에서 일정 부분의 블록에 데이터를 기록하고 나머지 블록에 대해서는 임시 저장 장치에 보관했던 데이터를 원래 블록으로 복원하는 것이 일반적이다. 이 보다 조금 더 개량된 종래 기술에서는, 플래시 메모리를 섹터로 구분하고 각각의 섹터에 있는 모든 셀들이 한꺼번에 소거되도록 하면서도 소거 동작을 위한 각각의 섹터 선택과 번지지정(addressing)이 별도로 이루어지도록 하는 것이다. 이렇게 하면, 소거를 동시에 할 섹터들의 조합을 임의로 선정할 수 있으므로 소거 동작에 필요한 시간을 줄일 수 있다.
그러나 이러한 종래 소거 방법에 따르면, 불필요한 부가 동작이 여전히 존재하기 때문에 메모리 시스템의 전체 성능 저하와 동작 시간 지연의 문제가 남아 있다. 예컨대, 도 1과 같은 종래 플래시 메모리 시스템에서 기록 동작은 다음과 같이 이루어진다.
(1) 호스트(10)로부터 데이터를 기록할 장소를 지정하는 논리 어드레스(LA; Logical Address)를 플래시 메모리 제어기(20)가 전달받는다.
(2) 메모리 제어기(20)는 논리 어드레스를 물리 어드레스(PA; Physical Address)로 변환한다.
(3) 변환된 물리 어드레스가 포함되는 메모리 블록에서 기록을 할 부분의 데이터를 제외한 나머지 부분을 버퍼로 백업한다. 예컨대, 도 1의 메모리 어레이(30)에서 복수의 메모리 유닛 또는 뱅크(30A, 30B, …, 30N) 각각은 복수의 메모리 블록(30A1, 30A2, …, 30AM; 301B, 30B2, …, 30BM; …; 30N1, 30N2, 30NM)으로 각각 구성되어 있고, 각각의 메모리 블록은 복수의 페이지 또는 섹터(32)로 구성된다. 만약, 데이터를 기록할 물리 어드레스가 제1 메모리(30A)의 제1 메모리 블록(30A1)에 포함된 페이지(36A)를 포함함과 동시에, 제2 메모리(30B)의 제2 메모리 블록(30B2)에 포함된 페이지(36B)를 포함한다고 가정하면, 이 페이지(36A, 36B)에 데이터를 기록하기 전에 데이터가 기록되지 않을 페이지 즉, 34A, 34B에 있는 데이터를 메모리 제어기(20) 내에 있는 데이터 버퍼로 옮겨서 데이터를 백업한다.
(4) 논리 어드레스에 의해 지정된 페이지가 포함된 블록(위 예에서는 블록 30A1와 30B2)을 소거한다.
(5) 메모리 제어기(20)는 호스트(10)로부터 기록할 데이터를 전달받는다.
(6) 메모리 제어기(20)는 호스트(10)로부터 전달받은 데이터를 논리 어드레스로 지정된 위치(위 예에서는 페이지 36A, 36B)에 프로그램한다.
(7) 앞의 단계 (3)에서 백업한 데이터를 메모리 제어기(20)의 데이터 버퍼에서 가져와서 원래의 위치(예컨대, 페이지 34A, 34B)로 복원한다.
이러한 종래 시스템에서는 해당 블록 전체를 소거하고, 지정된 위치에 데이터를 프로그램하는 동작은 필수적인 것이지만, 데이터를 백업하고 이를 복원하는 동작은 플래시 메모리의 특성에 따른 일종의 불필요한 부가 동작이다. 따라서, 예컨대 프로그램을 위한 단위의 크기와 소거를 위한 단위(즉, 메모리 블록)의 크기가 서로 다른 경우에는 이러한 부가 동작을 위해 필요한 백업이나 기록 동작에 많은 시간이 필요하다. 또한, 데이터를 백업하기 위해서는 데이터 판독(또는 읽기) 동작이 수반되기 때문에, 부가 동작을 위한 시간은 더 늘어나게 된다.
본 발명은 이러한 종래 플래시 메모리 시스템의 단점을 극복하기 위한 것으로서, 플래시 메모리의 동작 속도를 개선하고 플래시 메모리의 수명을 연장하는 것이다.
본 발명에 따른 플래시 메모리 제어 방법은 호스트 시스템으로부터 논리 어드레스를 수신하는 단계와, 수신한 논리 어드레스를 물리 어드레스로 변환하는 단계와, 호스트 시스템으로부터 수신한 데이터를 상기 물리 어드레스에 의해 지정된 플래시 메모리의 저장 위치(예컨대, 기본 블록)에 기록하는 단계를 포함한다. 상기 기록 단계에서, 지정된 플래시 메모리의 저장 위치(기본 블록)가 링크되어 있고, 링크된 저장 위치(1차 링크 블록)가 이미 유효 데이터로 기록되어 있으며, 상기 링크된 저장 위치의 사용도가 기준값보다 큰 경우에는, 상기 지정된 저장 위치의 유효 데이터를 상기 링크된 저장 위치로 이동하고, 상기 링크된 저장 위치의 사용도가 기준값보다 작은 경우에는, 상기 링크된 저장 위치의 유효 데이터를 또 다른 링크된 저장 위치로 이동하는 단계를 포함한다. 여기서, 기준값은 서로 다른 메모리 블록에서 데이터를 이동하는 데에 걸리는 시간이 최소로 되는 값으로 결정된다. 기본 블록에서 1차 링크 블록으로 데이터를 이동하는 동작은 플래시 메모리를 데이터 저장 장치로 사용하는 호스트 시스템이 휴지 상태일 때 이루어진다. 또한, 플래시 메모리의 저장 위치 중 무효 데이터가 기록되어 있는 메모리 블록에 대한 소거 동작도 호스트 시스템이 휴지 상태일 때 이루어지도록 할 수 있다.
본 발명에 따른 플래시 메모리 동작 제어 장치는 호스트 시스템과 플래시 메모리 사이에서 데이터를 전달하고 플래시 메모리의 동작을 제어한다. 여기서, 플래시 메모리는 복수의 메모리 블록으로 구성되고, 복수의 메모리 블록 각각은 복수의 페이지/섹터로 구성되며, 상기 복수의 메모리 블록은 호스트 시스템에서 전달되는 논리 어드레스에 대응되는 물리 어드레스에 의해 지정되는 기본 블록과, 이 기본 블록이 링크되는 1차 링크 블록과, 이 1차 링크 블록이 링크되는 2차 링크 블록을 포함한다. 플래시 메모리 동작 제어 장치는, 호스트 시스템으로부터 수신한 데이터를 상기 플래시 메모리에 기록하며, 상기 1차 링크 블록의 사용도가 기준값보다 큰 경우에는 상기 기본 블록의 유효 데이터를 1차 링크 블록으로 이동하고 1차 링크 블록의 사용도가 기준값보다 작은 경우에는 상기 1차 링크 블록의 유효 데이터를 2차 링크 블록으로 이동하는 수단을 포함한다. 데이터를 이동한 다음에는 해당 블록에 대한 BiT/링크 테이블과 ST 테이블을 변경하는데, BiT/링크 테이블은 기본 블록 어드레스, 기본 블록에 대한 칩 어드레스, 링크 블록 어드레스, 링크 블록에 대한 칩 어드레스 및 링크 상태를 나타내는 데이터를 포함하고, ST 테이블은 유효 데이터 기록 정보와 무효 데이터 기록 정보를 나타내는 데이터를 포함한다.
본 발명의 설명 사용되는 용어는 다음과 같은 의미로 사용한다.
플래시 메모리 데이터 저장 구조: 메모리 어레이 → 메모리 뱅크 → 메모리 유닛 → 블록 → 페이지/섹터(페이지와 섹터는 메모리 용량에 따라 같을 수도 있고, 페이지가 섹터보다 더 클 수도(예컨대, 1G 이상일 때) 있음).
BiT/링크 테이블: 플래시 메모리 내의 각 블록의 위치 및 해당 블록이 링크되었는가, 현재 프로그램 동작을 수행할 수 있는가 등의 정보를 나타내는 테이블로서, 예컨대 물리 어드레스, 링크 어드레스, 링크 상태 데이터로 구성된다.
ST (Status Table) 테이블: 플래시 메모리 각 블록의 상태를 나타내는 테이블로서, 해당 블록이 사용가능한가(예컨대, 프리 블록; Free Block) 아니면 이미 사용된 것인가를 나타낸다. 이미 사용된 블록은 유효 데이터가 기록되어 있음(Used Block)과 무효 데이터가 기록되어 있음(Dirty Block) 2 가지로 나눌 수 있는데, 무효 데이터 기록 블록은 해당 블록의 데이터가 더 이상 필요 없으므로 소거 동작이 필요함을 나타낸다.
플래시 메모리 동작 제어 단위: 링크는 블록 단위로 이루어지며, 프로그램 또는 쓰기는 페이지 단위, 소거는 블록 단위, 호스트에서 데이터를 가져오는 단위는 섹터(또는 페이지) 단위로 이루어진다.
구현예
이하 도면을 참조로 본 발명의 구현예에 대해 설명한다.
도 2와 도 3은 본 발명에 따른 플래시 메모리 동작 제어 방법의 전체 흐름을 나타낸다. 도 2 및 도 3의 흐름도는 플래시 메모리에 대한 쓰기 동작의 흐름도인데, 먼저 데이터를 기록하려고 하는 어드레스를 호스트 시스템으로부터 수신한다(단계 100). 여기서 호스트 시스템은 PC 및 디지털 카메라, MP3 플레이어와 같은 휴대용 전자기기를 포함하며, 데이터는 예컨대, 섹터 또는 페이지 단위로 전달된다. 호스트 시스템으로부터 수신한 어드레스는 논리 어드레스이다. BiT (Block information Table)/링크 버퍼에 있는 논리 어드레스를 조사한다(단계 101). BiT/링크 버퍼는 플래시 메모리의 동작을 제어하는 제어기 내의 메모리(예컨대, SRAM)에서 플래시 메모리 블록의 어드레스와, 소거 블록의 이동 및 링크 데이터를 유지하는 버퍼를 말한다. BiT/링크 버퍼에 해당하는 논리 어드레스에 대한 정보가 있으면 이 데이터를 기초로 곧바로 논리 어드레스 찾기 단계(105)로 진행하고, BiT/링크 버퍼에서 논리 어드레스에 대한 정보를 찾을 수 없으면, 플래시 메모리 내의 BiT/링크 데이블에서 관련 데이터를 읽어온 다음(단계 103) 이 데이터를 기초로 물리 어드레스를 찾는다(단계 105).
단계 105에서 논리 어드레스를 물리 어드레스로 변환한 다음에는 기록할 데이터를 호스트로부터 수신하고(단계 107), 물리 어드레스에 대응되는 메모리 블록의 상태를 조사한다(단계 109). 블록의 상태에 따라 3가지의 경로로 분기되는데, 해당 블록이 링크되지 않은 경우(경로 A), 해당 블록이 링크는 되어 있으나 링크된 블록이 프리 블록(free block, 즉, 해당 블록에 소거 동작을 선행하지 않고 곧바로 데이터를 기록할 수 있는 영역)인 경우(경로 B), 해당 블록이 링크되어 있으며 링크된 블록에는 이미 다른 데이터가 기록되어 있어서 링크 블록에 곧바로 데이터를 쓸 수 없는 경우(경로 C)가 그것이다.
물리 어드레스에 의해 지정된 플래시 메모리 블록이 링크가 되어 있지 않은 경로 A의 경우에는, 프리 블록 어드레스를 찾고(단계 110), 이 프리 블록에 호스트 데이터를 프로그램한다(단계 112). 프리 블록에 데이터가 기록되었으므로, 해당 블록의 상태 테이블(ST; Status Table)을 '프리'에서 '유효 데이터 기록(used)'로 변경한다(단계 114). ST 테이블에서 유효 데이터 기록을 나타내는 비트와 무효 데이터 기록을 나타내는 비트가 모두 예컨대, '0'이면 해당 블록이 '프리 블록'임을 나타낸다. 따라서, ST 테이블 변경 단계(114)에서는 유효 데이터 기록 블록을 나타내는 비트를 '0'에서 '1'로 변경한다. ST 테이블을 변경한 다음에는 물리 어드레스에 대응되는 BiT/링크 테이블에서 링크 어드레스와 링크 상태를 기록함으로써 BiT/링크 테이블을 변경한다(단계 116). 즉, BiT/링크 테이블에서 링크 블록의 위치를 표시하는 링크 어드레스를 기록하고, 데이터를 기록한 페이지에 해당하는 링크 정보의 비트를 예컨대, '1'로 변경한다.
한편, 링크는 되어 있으나 링크된 블록이 프리 블록인 경로 B의 경우에는, 링크 어드레스에 의해 지정된 프리 블록에 호스트 데이터를 기록하고(단계 120), 이 블록의 BiT/링크 정보를 변경한다(단계 122). 이 경우, BiT/링크 테이블에서 링크 어드레스는 변하지 않으며 링크된 페이지의 정보를 변경한다.
한편, 링크가 되어 있으며 링크된 블록이 프리 블록이 아닌 경로 C의 경우에는, 도 3에 나타낸 것처럼, 링크된 블록(즉, 1차 링크 블록)에 이미 다른 유효 데이터가 기록되어 있으므로, 데이터를 기록할 수 있는 다른 프리 블록 어드레스를 찾고(단계 130), 찾은 프리 블록(즉, 2차 링크 블록)에 호스트 데이터를 기록한다(단계 132). 데이터를 기록한 다음에는 상기 1차 링크 블록의 사용도(즉, 하나의 블록 전체에서 유효 데이터가 기록되어 있는 영역이 차지하는 비율)가 일정한 기준값을 넘는지 판단한다(단계 134). 여기서, 기준값은 서로 다른 블록 사이에서 데이터를 이동하는 데에 걸리는 시간이 최소로 되는 값으로 결정되는데, 예컨대 기준값은 1/2이 될 수 있으나, 반드시 1/2로 한정되는 것은 아니다.
상기 판단 단계(134)에서 1차 링크 블록의 사용도가 기준값보다 작은 경우에는, 1차 링크 블록 데이터를 2차 링크 블록으로 이동한다(단계 136). 데이터 이동 단계가 끝나면, 1차 링크 블록과 2차 링크 블록의 ST 테이블을 변경하고(단계 142), 기본 블록의 BiT/링크 정보를 변경한다(단계 148).
한편, 판단 단계(134)에서 블록의 사용도가 기준값과 같거나 더 큰 경우에는, 단계 105에서 변환한 물리 어드레스에 대응되는 블록(기본 블록)에 있던 유효 데이터를 1차링크 블록으로 이동하고(단계 150), 기본 블록 및 1차 링크 블록에 대한 ST 테이블 변경 단계(152)와, BiT/링크 테이블 변경 단계(154)를 진행한다. 예컨대, 기본 블록의 ST 테이블은 '유효 데이터 기록(Used)'에서 '무효 데이터 기록(Dirty)'으로 변경되고, BiT/링크 테이블에서 링크 어드레스는 1차 링크 블록에서 2차 링크 블록으로 변경된다.
도 3의 플래시 메모리의 동작 및 그 제어 방법을 통해 알 수 있는 것처럼, 본 발명에서는 종래 플래시 메모리 시스템에서 모든 기록 또는 프로그램 동작에서 발생하는 백업과 재저장 동작을 사용하지 않기 때문에, 플래시 메모리의 기록 동작 속도를 크게 개선할 수 있다. 또한, 플래시 메모리의 블록 사용도에 따라 데이터 이동을 선택적으로 제어함으로써, 데이터 백업이나 재저장 동작의 효율성을 극대화하는 것이 가능하다.
도 4는 BiT/링크 테이블의 갱신 동작의 흐름을 나타낸다.
앞에서 도 3을 참조로 설명한 플래시 메모리의 쓰기 동작에서 BiT/링크 데이터를 변경하는 것은 BiT/링크 테이블에 데이터를 기록하는 것인데(단계 170), 데이터를 기록한 다음에는 BiT/링크 테이블에 해당하는 블록이 데이터로 다 찬 것인지(즉, 풀(full)인지) 판단한다(단계 172). BiT/링크 블록이 풀이 아닌 경우에는 플래시 메모리 동작 제어기의 SRAM 상의 BiT/링크 데이터를 수정하고(단계 180), 플래시 메모리의 BiT/링크 데이터를 변경 기록한 다음(단계 182), BiT/링크 어드레스 레지스터의 값을 변경한다(단계 184). 한편, 단계(172)에서 블록이 풀인 것으로 판단한 경우에는 해당 블록을 소거하고(단계 174), BiT/링크 테이블을 이동한 후(단계 176) BiT/링크 데이터 수정 단계(180)로 진행한다.
도 5는 BiT/링크 정보의 구조를 나타내는데, 정보 구조는 기본 블록에 대한 정보 구조(210)와 링크 블록에 대한 정보 구조(220) 및 링크 상태 데이터 정보 구조(230)를 포함한다. 기본 블록 정보 구조(210)는 비트 '0'에서 '11'까지의 12-비트 데이터로 구성되는 기본 블록 어드레스와, 비트 '11'과 '12'로 표현되는 기본 블록에 대한 칩 어드레스, 비트 '14'와 '15'의 더미 비트로 구성된다. 링크 블록 정보 구조(220)도 12-비트의 링크 블록 어드레스와, 링크 블록에 대한 칩 어드레스, 더미 비트로 구성된다. 링크 블록 정보 구조 다음에는 예컨대, 64-비트의 링크 상태 데이터 구조(230)가 구성된다. 링크 상태 데이터 구조(230)는 프로그램 블록의 어느 페이지가 링크되었는지 또는 이동되었는지를 나타낸다. 이 예는 정보 구조를 롱 워드(long word)로 표현하기 위한 것인데, 이와 다른 비트 구조를 사용하는 것도 가능하다. 하나의 워드가 하나의 블록 정보를 나타낸다면, 1G 플래시에 대해서는 8개의 페이지가 필요하고, 2G 플래시에 대해서는 16개의 페이지가 BiT/링크 정보를 위한 필요하다. 본 발명에서는 사용자 데이터를 위한 블록과 동일한 블록을 BiT/링크 정보 저장을 위해 사용하며, 데이터의 소거를 감안하여 예컨대 2개의 블록을 BiT/링크 테이블을 위해 할당할 수 있다. 이 구현예에서는 3개의 롱워드가 필요한데, 플래시 메모리 동작 제어 프로그램의 편의상 4개의 롱워드를 사용할 수도 있다.
도 6은 ST 테이블의 정보 구조를 나타내는데, 2K 비트 중 상위 1k 비트 즉, 0~1023은 유효 데이터 기록 정보(Used)로 사용하고 하위 1k 비트 즉, 1024~2048은 무효 데이터 기록 정보(Dirty)로 사용한다. 여기서, 비트의 개수는 메모리의 용량에 따라 변하며, 하나의 비트는 하나의 블록의 상태를 나타내고, 예컨대 유효 데이터 기록 비트의 값이 '1'인 경우 해당 블록은 다른 데이터가 기록되어 있는 사용 블록임을 나타낸다. 유효 데이터 기록 비트와 무효 데이터 기록 비트가 예컨대, 모두 '0'인 경우에는 해당 블록이 프리 블록임을 나타낸다. 따라서, 프리 블록을 나타내기 위한 별도의 비트를 사용하지 않아도 된다.
한편, 도 5와 도 6에는 명시적으로 나타내지 않았지만, BiT/링크 테이블과 ST 테이블의 정보 페이지는 유효 정보 위치를 가지고 있고, 각 페이지의 끝에는 키(key) 값이 포함되도록 하는 것이 바람직하다. BiT/링크 테이블과 ST 테이블은 소거를 최소화하도록 설계하는 것이 필요하며, 소거 동작이 없이 BiT/링크 테이블 및 ST 테이블의 사용 횟수가 증가하면 유효한 데이터가 어떤 페이지에 기록되는지 알 수 없게 되므로 BiT/링크 테이블과 ST 테이블의 정보에는 블록 내의 페이지 중 현재 플래시 메모리 내의 블록의 정보가 정확하게 기술된 페이지의 정보를 모두 포함하도록 설계하는 것이 바람직하다. 앞에서, 유효 정보 위치라고 한 것은 이것을 의미하며, 각 페이지의 끝에 예컨대, 32-비트의 키 값을 사용하는 것은 최초의 사용에서 BiT/링크 테이블이나 ST 테이블의 정보가 비어 있는 상태이어서 그 값이 '0'이 될 것인데, 이 경우 올바른 정보를 찾지 못하는 오류가 생기는 것을 방지하기 위해 사용될 수 있다.
도 7 및 도 8은 본 발명이 적용될 수 있는 플래시 메모리 동작 제어 장치의 전체 구조와, 플래시 메모리의 데이터 저장 구조 및 플래시 메모리의 동작을 나타낸다.
플래시 메모리 동작 제어 장치(310)는 호스트 시스템(300)과 호스트 버스(305)를 통해 연결되고, 플래시 메모리 어레이(320)와는 플래시 버스(315)를 통해 연결되어 데이터를 주고받는다. 제어 장치(310)는 제어기(312), 플래시 제어 블록(314), ECC 블록(316)을 포함하고, 제어 장치(310) 내의 제어기(312)는 SRAM (Static Random Access Memory), 데이터 버퍼, BiT/링크 버퍼, MMU (Memory Management Unit) 등을 포함한다. 메모리 어레이(320)는 복수의 메모리 유닛(322A, 322B, …, 322N)를 포함한다. 플래시 제어 블록(314)은 플래시 메모리 어레이(320)에 칩 선택 신호(CE)와 제어 신호 및 I/O 신호를 공급하고, 플래시 메모리로부터 상태 신호(R/B; Ready/Busy)를 받는다. I/O 신호로는 데이터, 어드레스, 명령 신호가 시차를 두고 플래시 메모리에 공급된다.
플래시 메모리(322, 324)는 도 8에 나타낸 바와 같은 데이터 저장 구조를 가질 수 있다. 즉, 하나의 플래시 메모리 유닛은 복수의 블록 예컨대, 1,024개 또는 2,048개의 메모리 블록으로 된 데이터 블록(330)을 포함하고, 하나의 메모리 블록은 복수의 페이지(340) 예컨대, 64개의 페이지를 포함한다. 하나의 데이터 블록(330)은 예컨대, 512-바이트의 사용자 데이터 영역과 16-바이트의 ECC 데이터 영역으로 구성될 수 있다. 플래시 제어 블록(314)으로부터 ECC(316)를 통해 공급되는 데이터는 플래시 메모리의 I/O 버퍼(325)에 예컨대, 512+16-바이트가 직렬 데이터 입력된다. I/O 버퍼(325)에서 메모리 블록의 페이지(340)로 데이터를 가져오는 것이 쓰기 또는 프로그램 동작이고, 이와 반대로 페이지에 있는 데이터를 I/O 버퍼로 옮기는 것이 읽기 동작이다. 어느 블록에 있는 데이터를 지우는 것이 소거(erase) 동작인데, 도 8에 나타낸 것처럼, 프로그램은 페이지 단위로 이루어지는 반면, 소거 동작은 블록 단위로 이루어진다.
한편, 본 발명의 데이터 저장 구조는 도 8에서 보는 것처럼, BiT/링크 테이블용 블록(350)과 ST 테이블용 블록(360)을 포함한다. 이 블록(350, 360)은 앞에서 설명한 것처럼 예컨대, 2개의 블록으로 이루어질 수 있다.
도 9는 본 발명이 적용될 수 있는 메모리 블록의 정보 구조를 나타내는 블록도이다. 이 예는 1G 이상의 플래시 메모리에 대한 것이다.
이 구현예에서, '블록 0'에는 예컨대, 호스트 시스템의 구동을 위한 정보가 저장되고, '블록 1 ~ 블록 Z-5'은 사용자 데이터 또는 다른 데이터를 위한 예비 영역이다. 블록 번호 'Z'는 하나의 플래시 유닛에서 마지막에 위치한 블록을 나타낸다. '블록 Z-4, 블록 Z-3'은 BiT/링크 테이블을 위한 정보 구조이고, '블록 Z-2, 블록 Z-1'은 ST 테이블을 위한 것이며, 최종 블록 '블록 Z'는 칩 정보를 기록하기 위한 정보 구조이다.
도 10은 플래시 메모리의 읽기 동작 흐름을 나타낸다. 호스트 시스템으로부터 논리 어드레스를 수신하고(단계 410), 플래시 메모리 동작을 통제하는 제어기 내의 BiT/링크 버퍼에서 논리 어드레스를 조사한다(단계 412). BiT/링크 버퍼에 해당 논리 어드레스에 대한 정보가 있으면 이를 기초로 물리 어드레스를 찾는 단계(416)로 곧바로 진행한다. 한편, BiT/링크 버퍼에 논리 어드레스에 대한 정보가 없으면, 플래시 메모리 내의 BiT/링크 테이블로부터 해당 데이터를 읽고(단계 414) 이를 기초로 물리 어드레스를 찾는다(단계 416). 해당 물리 어드레스에 대응되는 메모리 블록에서 데이터를 읽어서 I/O 버퍼로 옮긴다(단계 418).
도 11은 무효 데이터 기록 블록(Dirty Block)을 소거하는 동작의 흐름을 나타낸다. 무효 데이터 기록 블록의 소거 동작은 호스트 시스템(예컨대, 카드 시스템)이 휴지 상태(idel state)일 때 진행되는데, 도 11을 참조하면, 먼저 무효 데이터 기록 블록을 검색하고(단계 430), 검색된 블록을 소거하는데(단계 432) 이 소거 동작은 제어기의 메모리에 있는 BT 버퍼에 저장되어 있는 모든 무효 데이터 기록 블록이 소거될 때까지 진행하는 것이 바람직하다. 예컨대, 제어기의 메모리 내에 있는 BT 버퍼가 플래시 메모리의 BT 테이블에서 데이터를 읽어오는 양은 하나의 페이지인데, 이 페이지는 예컨대, 플래시 메모리 유닛 4개의 블록 정보를 포함할 수 있다. 따라서, 단계(432)에서 행해지는 블록 소거는 이 ST 버퍼에 저장된 4개의 플래시 유닛에 포함되어 있는 무효 데이터 기록 블록이 모두 소거될 때까지 진행된다. 소거된 블록의 ST 데이터를 변경('무효 데이터 기록 블록'에서 '프리 블록'으로 변경)하고(단계 434), 메모리 내의 ST 버퍼 정보를 변경한다(단계 436). 여기서, ST 정보를 변경하기 전에 블록을 먼저 소거하는 것이 바람직한데, 그 이유는 ST 정보를 변경만 하고 변경된 정보에 맞게 해당 블록을 소거하기 전에 플래시 메모리의 전원 공급이 차단된 경우에는 나중에 잘못된 ST 정보를 이용할 수 있기 때문이다. 본 발명과 같이 블록을 먼저 소거하면 블록 소거 동작 중 또는 소거 직후에 전원이 차단되어 ST 정보를 변경하지 못한 경우에도 잘못된 ST 정보를 나중에 이용하게 될 위험성은 없다.
메모리 내의 ST 정보를 변경한 다음에는 호스트 액세스가 있는지 판단하고(단계 438) 액세스가 있으면 무효 데이터 기록 블록 소거 동작을 종료하고(단계452) 호스트 액세스에 따라 동작하며, 호스트 액세스가 없으면 남은 블록이 존재하는지 판단한다(단계 438). 더 소거할 블록이 남은 경우에는 단계 430으로 되돌아가고 남은 블록이 없으면 소거 동작을 종료한다(단계 452).
도 12는 기본 블록 데이터와 링크 블록 데이터를 합치는 동작의 흐름을 나타내는데, 이 동작은 예컨대, 도 3을 참조로 설명한 경로 C에서 포함되는 기본 블록 데이터를 링크 블록으로 이동하는 과정에 해당하며, 무효 데이터 기록 블록을 소거하는 동작과 마찬가지로 호스트 시스템이 휴지 상태일 때 진행하는 것이 바람직하다.
데이터를 합치는 또는 이동하는 동작은, 도 12에 나타낸 것처럼, 사용된 블록(예컨대, 1차 링크 블록)의 사용도가 3/4를 넘는 블록이 있는지 조사하는 단계(510)로부터 시작된다. 여기서, 사용도 조사의 기준값을 3/4로 설정한 것은 하나의 예에 지나지 않으며 이 값을 다른 값으로 변경하는 것은 본 발명의 사상과 범위 내에서 충분히 가능하다.
검색된 블록에 대하여 원 블록 데이터(즉, 기본 블록 데이터)를 링크 블록으로 이동한다(단계 512). 기본 블록과 링크 블록의 BiT/링크 테이블을 변경하고(단계 515), 메모리 내의 ST를 변경하고(단계 518), 호스트 액세스가 있는지 판단한다(단계 520). 호스트 액세스가 있으면 데이터 이동 동작을 종료하고(단계 530), 호스트 액세스가 없으면 남은 블록이 존재하는지 판단한다(단계 522). 남은 블록이 없으면 동작을 종료하고(단계 530), 남은 블록이 있으면 데이터 사용도 조사 단계(510)로 되돌아가 앞의 과정을 반복하여 데이터를 이동한다.
이상 도면을 참조로 본 발명의 구체적인 구현예에 대하여 기술하였지만, 이것은 발명의 설명을 위한 것이고 발명의 보호 범위를 제한하기 위한 것은 아니다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면, 도면을 참조로 설명한 구현예들은 본 발명의 사상이나 범위를 벗어나지 않는 범위에서 여러 가지 다양한 수정과 변형이 가능하다는 것을 쉽게 이해할 수 있을 것이다. 이하의 특허청구범위에 기재된 사항에 의해 정해지는 발명의 보호범위는 이러한 수정과 변형을 모두 포함한다.
본 발명에 따르면, 플래시 메모리의 동작 속도를 크게 개선할 수 있고, 데이터를 기록하고자 하는 블록의 사용양에 따라 다른 블록과 기록 블록 사이의 데이터 이동을 가장 효율적으로 제어할 수 있다.
또한, 본 발명에 따르면, 플래시 메모리를 제어하는 프로그램을 효율적으로 작성할 수 있고, 이 프로그램에 따라 플래시 메모리의 동작 속도를 높이고 사용 수명을 연장할 수 있다. 본 발명에서는, 무효 데이터 기록 블록의 소거 동작이나 블록간 데이터 이동을 호스트 시스템이 휴지 상태일 때 진행함으로써, 실제 플래시 메모리가 동작할 때에는 가장 효율적인 상태에서 동작이 진행되도록 하는 것이 가능하다.
도 1은 종래 기술에 따른 플래시 메모리 시스템의 기록 동작을 나타내는 블록 회로도.
도 2는 본 발명에 따른 데이터 기록 동작을 나타내는 흐름도.
도 3은 본 발명에 따른 데이터 기록 동작에서 링크된 블록이 프리 블록이 아닌 경우의 동작을 나타내는 상세 흐름도.
도 4는 본 발명에 따른 BiT/링크 테이블 갱신 동작을 나타내는 흐름도.
도 5는 BiT 정보와 링크 정보의 구조를 나타내는 데이터 구조도.
도 6은 ST 테이블의 구조를 나타내는 데이터 구조도.
도 7은 본 발명이 적용될 수 있는 플래시 메모리 제어 시스템의 전체 구조를 나타내는 블록 회로도.
도 8은 플래시 메모리의 저장 구조와 플래시 메모리의 동작 과정을 설명하기 위한 블록 회로도.
도 9는 본 발명이 적용될 수 있는 메모리 블록의 정보 구조를 나타내는 블록도.
도 10은 플래시 메모리의 데이터 읽기 동작을 나타내는 흐름도.
도 11은 본 발명에 따른 무효 데이터가 기록된 블록(Dirty Block)의 소거 동작을 나타내는 흐름도.
도 12는 본 발명에 따라 서로 다른 블록 사이에서 데이터를 이동하는 과정을 나타내는 흐름도.
<도면의 주요 부호에 대한 설명>
10, 300: 호스트 시스템 20, 310: 플래시 메모리 제어기
30, 320: 플래시 메모리 어레이 312: 제어 칩
314: 플래시 제어 블록 316: ECC
322, 324: 메모리 뱅크 210: BiT 정보 구조
220: 링크 정보 구조 230: ST 정보 구조
350: 블록 정보 구조

Claims (20)

  1. 플래시 메모리를 제어하는 방법으로서,
    호스트 시스템으로부터 논리 어드레스를 수신하는 단계와,
    수신한 논리 어드레스를 물리 어드레스로 변환하는 단계와,
    호스트 시스템으로부터 수신한 데이터를 상기 물리 어드레스에 의해 지정된 플래시 메모리의 저장 위치에 기록하는 단계를 포함하며,
    상기 기록 단계에서, 지정된 플래시 메모리의 저장 위치가 링크되어 있고, 링크된 저장 위치가 이미 유효 데이터로 기록되어 있으며, 상기 링크된 저장 위치의 사용도가 기준값보다 큰 경우에는, 상기 지정된 저장 위치의 유효 데이터를 상기 링크된 저장 위치로 이동하고, 상기 링크된 저장 위치의 사용도가 기준값보다 작은 경우에는, 상기 링크된 저장 위치의 유효 데이터를 또 다른 링크된 저장 위치로 이동하는 단계를 포함하는 플래시 메모리 동작 제어 방법.
  2. 제1항에서, 상기 링크된 저장 위치의 사용도가 기준값보다 큰 경우에 유효 데이터를 이동한 다음에는, 상기 지정된 저장 위치 및 상기 링크된 저장 위치에 대한 BiT/링크 테이블과 ST 테이블을 변경하는 단계가 진행되는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.
  3. 제2항에서, 상기 BiT/링크 테이블과 ST 테이블은 각각 2개의 메모리 블록으로 구성되는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.
  4. 제1항에서, 상기 링크된 저장 위치의 사용도가 기준값보다 작은 경우에 유효 데이터를 이동한 다음에는, 상기 지정된 저장 위치와 상기 링크된 저장 위치 및 상기 또 다른 링크된 저장 위치의 BiT/링크 테이블과 ST 테이블을 변경하는 단계가 진행되는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.
  5. 제1항에서, 상기 어드레스 변환 단계는 BiT/링크 버퍼 내의 논리 어드레스를 조사하는 단계와, BiT/링크 버퍼에 논리 어드레스가 존재하는 경우에는 이것을 기초로 물리 어드레스를 찾는 단계와, BiT/링크 버퍼에 논리 어드레스가 존재하지 않는 경우에는 BiT/링크 테이블에서 데이터를 읽어오는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.
  6. 제1항에서, 상기 지정된 플래시 메모리의 저장 위치가 링크되어 있지 않은 경우에는, 데이터를 기록할 수 있는 저장 위치를 찾고, 여기서 찾은 저장 위치에 데이터를 기록하며, 기록한 저장 위치의 ST 테이블과 BiT/링크 테이블을 변경하는 단계가 포함되는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.
  7. 제1항에서, 상기 지정된 플래시 메모리의 저장 위치가 링크되어 있고, 링크된 저장 위치가 데이터를 기록할 수 있는 저장 위치인 경우에는, 상기 링크된 저장 위치에 데이터를 쓰고, 링크된 저장 위치의 BiT/링크 테이블을 변경하는 단계가 포함되는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.
  8. 제1항에서, 상기 기준값은 저장 위치 사이에 데이터를 이동하는 데에 걸리는 시간이 최소로 되도록 설정되는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.
  9. 제1항에서, 상기 BiT/링크 테이블은 플래시 메모리의 각 저장 위치 및 이 저장 위치가 링크되었는가, 현재 프로그램 동작을 수행할 수 있는가의 정보를 나타내는 데이터를 포함하는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.
  10. 제1항에서, 상기 ST 테이블은 플래시 메모리 각 저장 위치가 사용가능한가, 아니면 이미 사용된 것인가를 나타내는 데이터를 포함하는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.
  11. 제10항에서, 상기 ST 테이블에서 이미 사용된 것임을 나타내는 저장 위치 중 무효 데이터가 기록되어 있는 저장 위치를 검색하는 단계와, 검색된 무효 데이터 기록 저장 위치를 소거하는 단계와, 소거된 저장 위치에 대한 ST 테이블을 변경하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.
  12. 제1항에서, 상기 지정된 저장 위치의 유효 데이터를 상기 링크된 저장 위치로 이동하는 단계는, 상기 링크된 저장 위치의 데이터 사용도를 조사하여 일정한 기준을 초과하는지 판단하는 단계를 거친 후 데이터 사용도가 일정한 기준을 넘는 경우에 데이터를 이동하는 단계인 것을 특징으로 하는 플래시 메모리 동작 제어 방법.
  13. 호스트 시스템과 플래시 메모리 사이에서 데이터를 전달하고 플래시 메모리의 동작을 제어하는 방법으로서,
    상기 플래시 메모리는 복수의 메모리 블록으로 구성되고, 복수의 메모리 블록 각각은 복수의 페이지/섹터로 구성되며, 상기 호스트 시스템에서 플래시 메모리에 데이터를 기록하는 동작은 상기 섹터 단위로 이루어지고 플래시 메모리의 소거 동작은 상기 블록 단위로 이루어지며, 상기 복수의 메모리 블록은 호스트 시스템에서 전달되는 논리 어드레스에 대응되는 물리 어드레스에 의해 지정되는 기본 블록과, 이 기본 블록이 링크되는 1차 링크 블록과, 이 1차 링크 블록이 링크되는 2차 링크 블록을 포함하고,
    상기 방법은,
    호스트 시스템으로부터 수신한 데이터를 상기 플래시 메모리에 기록하는 단계와,
    상기 1차 링크 블록의 사용도가 기준값보다 큰 경우에는 상기 기본 블록의 유효 데이터를 1차 링크 블록으로 이동하고 1차 링크 블록의 사용도가 기준값보다 작은 경우에는 상기 1차 링크 블록의 유효 데이터를 2차 링크 블록으로 이동하는 단계를 포함하는 플래시 메모리 동작 제어 방법.
  14. 제13항에서, 상기 1차 링크 블록의 사용도가 기준값보다 작은 경우에 유효 데이터를 이동한 다음에는, 상기 기본 블록, 1차 링크 블록 및 2차 링크 블록의 BiT/링크 테이블과 ST 테이블을 변경하는 단계가 진행되고, 상기 1차 링크 블록의 사용도가 기준값보다 큰 경우에 유효 데이터를 이동한 다음에는, 상기 기본 블록과 1차 링크 블록의 BiT/링크 테이블과 ST 테이블을 변경하는 단계가 진행되는것을 특징으로 하는 플래시 메모리 동작 제어 방법.
  15. 호스트 시스템과 플래시 메모리 사이에서 데이터를 전달하고 플래시 메모리의 동작을 제어하는 플래시 메모리 동작 제어 장치로서,
    상기 플래시 메모리는 복수의 메모리 블록으로 구성되고, 복수의 메모리 블록 각각은 복수의 페이지/섹터로 구성되며, 상기 호스트 시스템에서 플래시 메모리에 데이터를 기록하는 동작은 상기 섹터 단위로 이루어지고 플래시 메모리의 소거 동작은 상기 블록 단위로 이루어지며, 상기 복수의 메모리 블록은 호스트 시스템에서 전달되는 논리 어드레스에 대응되는 물리 어드레스에 의해 지정되는 기본 블록과, 이 기본 블록이 링크되는 1차 링크 블록과, 이 1차 링크 블록이 링크되는 2차 링크 블록을 포함하고, 상기 장치는,
    호스트 시스템으로부터 수신한 데이터를 상기 플래시 메모리에 기록하는 수단과,
    상기 1차 링크 블록의 사용도가 기준값보다 큰 경우에는 상기 기본 블록의 유효 데이터를 1차 링크 블록으로 이동하고 1차 링크 블록의 사용도가 기준값보다 작은 경우에는 상기 1차 링크 블록의 유효 데이터를 2차 링크 블록으로 이동하는 수단을 포함하는 플래시 메모리 동작 제어 장치.
  16. 제15항에서, 상기 1차 링크 블록의 사용도가 기준값보다 작은 경우에 유효 데이터를 이동한 다음에는, 상기 기본 블록, 1차 링크 블록 및 2차 링크 블록의 BiT/링크 테이블과 ST 테이블을 변경하고, 상기 1차 링크 블록의 사용도가 기준값보다 큰 경우에 유효 데이터를 이동한 다음에는, 상기 기본 블록과 1차 링크 블록의 BiT/링크 테이블과 ST 테이블을 변경하는 것을 특징으로 하는 플래시 메모리 동작 제어 장치.
  17. 제16항에서, 상기 BiT/링크 테이블은 기본 블록 어드레스, 기본 블록에 대한 칩 어드레스, 링크 블록 어드레스, 링크 블록에 대한 칩 어드레스 및 링크 상태를 나타내는 데이터를 포함하는 것을 특징으로 하는 플래시 메모리 동작 제어 장치.
  18. 제16항에서, 상기 ST 테이블은 유효 데이터 기록 정보와 무효 데이터 기록 정보를 나타내는 데이터를 포함하는 것을 특징으로 하는 플래시 메모리 동작 제어 장치.
  19. 제17항 또는 제18항에서, 상기 BiT/링크 테이블과 ST 테이블은 각각 2개의 메모리 블록으로 구성되는 것을 특징으로 하는 플래시 메모리 동작 제어 장치.
  20. 제15항에서, 상기 데이터 이동 수단은 호스트 시스템이 휴지 상태일 때 동작하는 것을 특징으로 하는 플래시 메모리 동작 제어 장치.
KR10-2002-0077392A 2002-11-29 2002-12-06 플래시 메모리 동작 제어 방법 및 장치 KR100490603B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0077392A KR100490603B1 (ko) 2002-12-06 2002-12-06 플래시 메모리 동작 제어 방법 및 장치
US10/727,311 US7136986B2 (en) 2002-11-29 2003-12-01 Apparatus and method for controlling flash memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0077392A KR100490603B1 (ko) 2002-12-06 2002-12-06 플래시 메모리 동작 제어 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20030009250A KR20030009250A (ko) 2003-01-29
KR100490603B1 true KR100490603B1 (ko) 2005-05-27

Family

ID=27729714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0077392A KR100490603B1 (ko) 2002-11-29 2002-12-06 플래시 메모리 동작 제어 방법 및 장치

Country Status (1)

Country Link
KR (1) KR100490603B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100816820B1 (ko) * 2006-12-14 2008-03-27 한양대학교 산학협력단 플래시 메모리와 연동되는 버퍼 관리장치 및 방법
CN112306376A (zh) * 2019-08-01 2021-02-02 北京兆易创新科技股份有限公司 用户数据搬移的恢复方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930020469A (ko) * 1992-03-31 1993-10-19 사또 후미오 불휘발성 반도체 메모리 장치
US6069827A (en) * 1995-09-27 2000-05-30 Memory Corporation Plc Memory system
KR20000062616A (ko) * 1999-02-26 2000-10-25 디. 크레이그 노룬드 비휘발성 메모리에 데이터를 저장하는 방법
JP2002278850A (ja) * 2001-03-14 2002-09-27 Nec Corp 半導体装置
JP2002304320A (ja) * 2001-04-03 2002-10-18 Mitsubishi Electric Corp データ格納方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930020469A (ko) * 1992-03-31 1993-10-19 사또 후미오 불휘발성 반도체 메모리 장치
US6069827A (en) * 1995-09-27 2000-05-30 Memory Corporation Plc Memory system
KR20000062616A (ko) * 1999-02-26 2000-10-25 디. 크레이그 노룬드 비휘발성 메모리에 데이터를 저장하는 방법
JP2002278850A (ja) * 2001-03-14 2002-09-27 Nec Corp 半導体装置
JP2002304320A (ja) * 2001-04-03 2002-10-18 Mitsubishi Electric Corp データ格納方法

Also Published As

Publication number Publication date
KR20030009250A (ko) 2003-01-29

Similar Documents

Publication Publication Date Title
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US8745310B2 (en) Storage apparatus, computer system, and method for managing storage apparatus
US6327639B1 (en) Method and apparatus for storing location identification information within non-volatile memory devices
KR100909902B1 (ko) 플래쉬 메모리 장치 및 플래쉬 메모리 시스템
KR100193779B1 (ko) 반도체 디스크 장치
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
KR100618298B1 (ko) 기록 시스템, 데이터 기록 장치, 메모리 장치 및 데이터기록 방법
KR100453463B1 (ko) 메모리장치및메모리제어방법
US8327068B2 (en) Memory module, memory controller, nonvolatile storage, nonvolatile storage system, and memory read/write method
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
US7529879B2 (en) Incremental merge methods and memory systems using the same
US7404031B2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
US20080250188A1 (en) Memory Controller, Nonvolatile Storage, Nonvolatile Storage System, and Memory Control Method
US20080028132A1 (en) Non-volatile storage device, data storage system, and data storage method
KR100684061B1 (ko) 기록 시스템, 데이터 기록 장치, 메모리 장치 및 데이터기록 방법
JP2006216036A (ja) フラッシュメモリを含んだデータ貯蔵装置及びそれのマージ方法
JP2005517260A (ja) セクタポインタを用いるメモリ・マッピング・デバイス
KR20110107857A (ko) 솔리드 스테이트 메모리 포멧팅
WO1995018407A1 (en) Solid state memory system
US7136986B2 (en) Apparatus and method for controlling flash memories
CN103270500A (zh) 事务日志恢复
WO1999030239A1 (fr) Memoire et procede d&#39;acces
JP3421581B2 (ja) 不揮発性半導体メモリを用いた記憶装置
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP4308780B2 (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080516

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee