KR100926267B1 - 플래시 메모리에서의 복사 동작을 관리하는 방법 - Google Patents

플래시 메모리에서의 복사 동작을 관리하는 방법 Download PDF

Info

Publication number
KR100926267B1
KR100926267B1 KR1020077017702A KR20077017702A KR100926267B1 KR 100926267 B1 KR100926267 B1 KR 100926267B1 KR 1020077017702 A KR1020077017702 A KR 1020077017702A KR 20077017702 A KR20077017702 A KR 20077017702A KR 100926267 B1 KR100926267 B1 KR 100926267B1
Authority
KR
South Korea
Prior art keywords
data
signature
memory
data chunk
memory device
Prior art date
Application number
KR1020077017702A
Other languages
English (en)
Other versions
KR20070107689A (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 샌디스크 아이엘 엘티디
Publication of KR20070107689A publication Critical patent/KR20070107689A/ko
Application granted granted Critical
Publication of KR100926267B1 publication Critical patent/KR100926267B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention

Abstract

각각의 논리 주소에 연관된 하나 이상의 데이터 청크가 메모리 디바이스에서 수신될 때, 각각의 데이터 청크에 서명이 할당되고, 제 1 위치에 저장되고, 제 2 위치로 복사된다. 상기 복사본에는 그의 부모 데이터 청크의 서명과 일치하는 서명이 할당된다. 하나 이상의 데이터 청크를 포함하는 메모리 블록을 삭제하기 전에, 먼저 그의 데이터 청크가 복사되었는지, 즉, 일치하는 서명을 가진 블록의 모든 데이터 청크의 복사본이 메모리 디바이스에 존재하는지가 검증된다.
Figure R1020077017702
메모리 디바이스, 주메모리, 호스트, 제 1 데이터 청크, 서명, 제 1 위치, 제 2 위치, 복사본, 데이터 섹터, 논리 주소

Description

플래시 메모리에서의 복사 동작을 관리하는 방법{METHOD OF MANAGING COPY OPERATIONS IN FLASH MEMORIES}
본 발명은 플래시 메모리 디바이스로 인입하는 데이터 스트림을 효율적으로 저장하는 방법 및 시스템에 관한 것으로, 특히 이러한 저장의 목적에 필요한 복사 동작을 관리하는 방법 및 시스템에 관한 것이다.
본 문에 참고로서 그 모두가 통합되어 있는, Lasser 등의, 2004년 12월 17일 출원된, "플래시 메모리에서의 동작을 프로그래밍하는 오더에 대한 제한을 핸들링하는 방법"이라는 제하의, 미국 특허 출원 번호 제 60/636,510은, 디지털 오디오 스트림 또는 디지털 비디오 스트림과 같은 인입 데이터의 스트림을 저장하는 방법 및 시스템을 개시하며, 그로써 인입 데이터를 메모리 디바이스의 자신들의 타겟 위치에 동시에 기록하는 것은 실용성도 없고, 바람직하지도 못하다는 것을 개시하고 있다. 대신에, Lasser 등의 방법 및 시스템은 먼저 인입 데이터를 제 1 위치에 저장하고, 추후에 상기 제 1 위치로부터 데이터를 검색하여 그것들은 2번째에는 자신들이 원하는 타겟위치에 기록하는 것이다.
Lasser 등의 시스템은 비휘발성 메모리로 인입 섹터를 2번 기록한다. 따라서, 상기 시스템은 각 섹터를 자신의 제 1 위치에서 제 2 위치로 이동시켜야한다. 이러한 이동이 수행되는 시간은 유동적인데-상기 이동은 제 1 기록 시간에 근접하여 수행되거나, 또는 메모리 디바이스의 컨트롤러가 상기의 이동을 수행하기 전에 상대적으로 오랜 시간 동안 대기할 수 있다. 여전히 데이터의 각 섹터를 자신의 제 1 위치에서 제 2위치로 이동시키는 것이 항상 요구된다. 상기 이동에 이어서, 제 1 기록에 사용된 저장 영역이 더이상 필요가 없어지며, 새로운 데이터에 사용되기 위해 다시 요구될 수 있다.
"제 1위치"와 "제 2위치"라는 용어는 필수적으로 저장 디바이스의 물리적으로 독립된 영역을 가리키는 것은 아님에 유의해야한다. 제 1 기록에만 사용되는 영역과 제 2 기록에만 사용되는 영역 사이에 명확한 경계없이, 상이한 섹터의 제 1 및 제 2 "위치"가 혼재될 수 있다. 또한, 저장 유닛이 일정 시간에 한 포인트에서의 일부 섹터의 제 1 위치로서 기능을 하고, 일정 시간의 제 2 포인트에서는 다른 섹터를 위한 제 2 위치로서 기능을 할 수도 있다. 그러나 일반적으로, "제 1 위치"와 "제 2위치"를 함께 그룹으로 묶는 것이 그의 관리를 간단히 하기 때문에 편리하다. 간략화를 위해, 하기의 설명은 이러한 그룹화가 사용되는 것으로 가정하지만, 이것이 어떠한 형태로건 간에 본 발명의 범위를 한정하지 못한다.
Lasser 등의 것과 같은 메모리 디바이스의 구현이 마주치는 한가지 문제는 먼저 섹터가 기록된 물리적 위치가 새로 사용되기 위해 재요구될 수 있도록 제 1 기록동작에서 기록된 특정한 섹터가 이미 자신의 제 2 위치로 이동된 것을 어떻게 알릴 것인가 하는 것이다. 자신의 제 1 위치에서 제 2 위치로 데이터가 이동하는 동안 복사된 데이터의 물리적 유닛이 삭제 블록(단일 삭제 동작에서 삭제될 수 있 는 최소한의 저장 청크, 일반적으로 16킬로 바이트에서 256킬로 바이트이다.)이 되었다면, 이 그때 해결안은 간단해지는데, 동시에 자신의 마지막 위치로의 데이터 유닛의 복사에 후속하여, 메모리 디바이스의 컨트롤러가 제 1 복사본을 포함하고 있는 유닛을 삭제할 수 있다. 불행히도, 이것은 다른 케이스이다. 자신의 제 1 및 제 2의 물리적 위치 사이에서 데이터가 이동하는 동안 복사되는 데이터의 일반적인 유닛은 섹터(호스트와 저장 디바이스 사이에 교환되는 데이터의 최소 청크, 일반적으로 512바이트), 또는 페이지(저장 디바이스로 단일 기록 동작으로 기록될 수 있는 물리적 저장장치의 최소의 청크, 일반적으로 512 바이트 내지 2 킬로바이트), 또는 소수의 섹터 또는 페이지이다. 데이터 청크가 자신의 새로운 위치로 복사될 때, 이 경우 일반적으로 동일한 삭제 블록에서의 데이터의 다른 청크들은 여전히 복사되지 않고, 계속 유지되는 것이 요구된다. 복사된 데이터를 포함하고 있는 블록을 삭제하는 것은 이러한 데이터의 복사되지 않은 청크들을 파괴하는 것이고, 따라서 수행되어서는 안 된다.
하기의 설명에서, (간략화를 위해) 데이터가 섹터와 동일한 청크에서의 물리적 저장 위치 사이에서 호스트와 교환되고, 복사되는 것으로 가정한다. 이것은 어떠한 방식으로건 본 발명의 범위를 한정하는 것이 아니며, 이는 연속한 동작이 상이한 데이터 청크 크기를 이용하는 다양한 크기의 경우를 포함하는 모든 크기의 데이터 청크에 적용가능하다.
종래기술의 플래시 관리 시스템은 대개 더이상 유효하지 않거나 및/또는 더이상 유지할 필요가 없는 데이터 청크를 표시하기 위해 "삭제 마크"라고 하는 기술 을 채용하였다. 이러한 마크는 섹터 데이터와 연관된 오버헤드 영역에 위치된 일반적으로 단일 비트 또는 수 비트의 논리 플래그이다. 예를 들면, 플래시 메모리 디바이스에 저장된 섹터가 호스트로부터 수신된 새로운 데이터에 의해 덮어쓰기 되었을 때, 상기 플래시 관리 시스템은, 새로운 데이터를 새롭게 할당된 위치에 저장하는 것에 추가하여, 또한 섹터의 구복사에 연관된 오버헤드 영역으로 삭제 마크를 기록한다. 이러한 삭제 마크는 그 섹터에 저장된 데이터가 더이상 유효하지 않고, 필요하다면 삭제될 수 있다는 것을 지시한다. 일반적으로, 플래시 관리 시스템은 삭제 블록의 모든 섹터들이 삭제되는 것으로 표시되는지 여부를 체크한다(주기적으로 또는 빈공간이 더 필요한 때). 상기의 경우라면, 블록은 유용한 데이터를 포함하고 있지 않으며, 삭제되고 새로운 데이터를 위해 재사용된다. 덮어쓰기 된 섹터를 표시하는 이러한 방법을 사용한 플래시 관리 시스템의 일예가 Ban의 미국 특허 제 5,404,485에 교시되어 있다. 제어 및 관리 필드를 저장하기 위한 NAND 플래시 저장 디바이스에서의 각 페이지에 제공되는 오버헤드 영역("여분의 영역" 또는 "예비 영역"이라고 하는)을 이용하는 플래시 관리 시스템의 일 예가 미국 특허 제 6,678,785에서 Lasser에 의해 제시된다. 이들 특허 모두는 참고의 목적으로 본문에 그 전부가 통합되어 있다.
이러한 "삭제 마크"의 방법이 제 1 물리적 위치에 기록된 데이터가 이미 제 2 물리적 위치로 복사되었는지 여부를 알려주는 상기 제시된 문제에 대한 해법을 제공하는 데까지 확장될 수 있다는 것을 예측할 수 있을 것이다. 데이터의 섹터를 복사하면, 플래시 관리 시스템은 "복사됨 마크"를 그 섹터와 연관된 오버헤드 영역 에 기록할 것이고, 블록의 모든 섹터가 이러한 마크를 가지게 되면, 상기 블록은 삭제되고 재사용될 수 있다. 이러한 "복사됨 마크"의 방법은 본문에서 "마크 방법" 또는 "마킹 방법"이라고 한다.
불행히도, 이러한 마킹 방법을 이용하는 데에는 2가지 주된 단점이 있다. 제 1 단점은 기록 동작을 필요로 한다는 점이다. 데이터 저장을 위한 가장 일반적인 플래시 형태인 NAND 플래시 디바이스에서, 데이터는 페이지로만 기록될 수 있다. 단일 바이트의 데이터를 기록하기를 원한다 하더라도, 디바이스가 단일 바이트를 기록하는 것은 전체 페이지를 기록할 때 만큼과 정확하게 동일한 시간이 든다. 전체 페이지를 기록할 때 예를 들면 512 바이트를 전송하는 것에 비교하여, 버스를 통해 디바이스로 1 바이트만을 전송하는 것이 필요하기 때문에 단일 바이트를 기록하는 경우에는 일부의 시간 절약이 있는 것이 사실이다. 그러나 플래시 디바이스에서 내부 기록 동작은 일반적으로 버스를 통해 디바이스로 데이터를 전송하는 것보다는 많이 느리고, 그결과 마크를 기록하는 시간은 데이터의 전체 섹터를 기록하는 데에 걸리는 시간에 근접한다. 따라서, 데이터의 각 섹터마다 마크를 기록하는 동작을 추가함으로써, 각 저장되는 섹터마다 확연히 보다 많은 시간을 소비하게 된다.
하기의 수치의 예를 고려해보라. 512 바이트의 페이지를 가진 NAND 플래시 디바이스를 사용한다고 가정해보자. 플래시 페이지의 기록 시간은 200 마이크로초, 페이지의 판독시간은 15 마이크로초, 버스를 통해 디바이스로 또는 디바이스로부터의 전체 페이지의 전송은 30 마이크로초가 걸린다고 가정해보자. 마크를 사용하지 않으면, 데이터의 각 섹터는 먼저 버스를 통해 플래시 디바이스로 이동되고, 그런다음 제 1 위치로 기록되고, 차례로 버스를 통해 다시 판독되고, 그런다음 다시 버스를 통해 디바이스로 이동되고, 마지막으로 제 2 위치로 기록된다. 모든 단계에서, 이것은 각 저장된 섹터당 2번의 기록동작, 한번의 판독동작, 그리고 3번의 버스 전송에 대하여= 2 X 200 + 1 X 15 + 3 X 30=505 마이크로초의 합을 내고 있다. 그러나 섹터가 이미 복사된 것을 지시하기 위해 상기의 시퀀스후에 제 1 위치로 마크가 기록될 때, 추가적으로 200 마이크로초를 소비하여, 총 705 마이크로초에 다다른다(그리고, 이것은 버스를 통해 마크를 이동하는데 걸리는 작은 시간은 무시한 것이다). 따라서, 마크가 사용될 때 저장된 섹터당 소비되는 시간에 있어서 커다란 증가가 있다는 것을 볼 수 있다. 본 실시예에서, 마크를 사용할 때 섹터를 저장하기 위해 대략 40% 더 느려진다. 1 밀리초에 근사하게 느린 기록시간을 가지는 다중 레벨 셀(MLC) NAND 플래시를 취한다면(그리고 모든 다른 파라미터는 동일하다고 가정), 마크를 추가하는 효과는 약 2100 마이크로초에서 약 3100 마이크로 초까지 저장된 섹터당 시간을 증가시켜, 거의 50% 더 느리게 된다. 이것은 마크 방식의 중대한 단점이다.
마크 방법의 제 2 주된 단점은 파셜 페이지 프로그래밍(Partial Page Programming)(PPP)을 처리해야한다는 것이다. PPP는 페이지를 포함하고 있는 블록이 삭제되어야하기 전에 페이지로 얼마나 많은 기록 동작이 허용될지를 판정하는 플래시 디바이스의 특성이다. 상용 NAND 플래시 디바이스에서의 일반적인 값은 3 내지 8이다. 그러나, MLC NAND 디바이스는 오직 하나의 PPP값만을 가지고, 이것은 그것을 포함하고 있는 유닛을 삭제해야만 하기 전에 페이지로 한 번만 기록할 수 있다는 것을 의미한다. 플래시 관리 시스템은 페이지에 연관된 제어 필드를 기록하는 몇몇 기록 동작을 이용하고 그 필드가 관리 알고리즘을 지원하는 데에 필요한 플래시 디바이스의 블록을 삭제하는 것을 필요로하고, 그 결과 플래시 관리 시스템이 가용한 PPP 동작 중 일부를 소비한다.
"복사 마크"를 이용하는 것은 인입 섹터의 제 1 스토리지에 사용되는 각 페이지에 대해 하나의 기록동작을 소비한다. 이것은 플래시 관리 알고리듬에 가용한 기록 동작이 하나 이하라는 것을 의미하고, 이것은 사용될 수 있는 알고리듬의 유형에 대해 제한을 가한다. 그러나, MLC NAND와 같은 것들 중에 하나의 PPP를 가지는 플래시 디바이스가 더욱 안좋다. 상술한 바와 같이, 이러한 디바이스들은 페이지에 한번의 기록 동작만을 허용한다. 그 결과, 이러한 경우에는 마크 방법을 사용하는 것이 불가능하여, 단일한 허용된 기록 동작은 저장된 데이터를 기록하는 데에 사용되어야하며, 복사될 때 페이지에 마크하기 위해 시간이 더 늦어질 때(데이터가 복사된 후), 마크를 기록하기 위해 기록동작을 실행하는 것은 허용되지 않는다.
따라서, 이미 자신의 제 1 물리적 위치에서 제 2 물리적 위치로 복사되는 것으로 페이지를 식별하는 마크 방법은 중대한 단점을 가지며, 일부의 경우(즉, MLC NAND)에는 사용조차 불가능하다는 결론이 내려진다.
따라서, 메모리 디바이스의 기록 성능을 열화시키거나 추가적인 기록동작을 소모하는 일 없이 비휘발성 저장 디바이스의 복사된 섹터를 식별할 수 있는 방법에 대한 폭넓게 인식된 필요성이 있고, 그러한 방법을 가진다면 많은 장점을 가지게 될 것이다.
본 발명의 기본 아이디어는 특정한 논리 주소와 연관된 데이터와 함께 데이터의 버전을 식별하는 "서명"을 함께 기록하는 것이다. 메모리 디바이스에 내부의 동일한 데이터를 복사하는 것은, 최초에 제 1 물리적 위치에 기록된 데이터가 제 2 물리적 위치로 복사되었는지 여부를 판단하고, 그에 의해 제 1 물리적 위치를 비우도록 삭제시킬 수 있게 하기위해, "일치하는" 서명을 공유한다. 상기 서명은 데이터와 함께 기록되기 때문에, 본 발명은 PPP=1 메모리 디바이스에 적용가능하다.
따라서, 본 발명에 따라, 메모리 디바이스를 관리하는 방법으로서,
a) 메모리 디바이스에 주메모리를 포함하는 단계; b) 메모리 디바이스의 호스트에 의해 제 1 데이터 청크(chunk)를 메모리 디바이스로 전송하는 단계; c) 상기 제 1 데이터 청크에 대해 서명을 할당하는 단계; d) 주 메모리에서의 제 1 위치에 제 1 데이터 청크를 저장하는 단계; e) 상기 제 1 데이터 청크를 주메모리의 제 2 위치로 복사하여, 그에 의해 제 1 데이터 청크의 복사본을 생성하는 단계; 및 f) 상기 제 1 데이터 청크의 서명과 일치하는 서명을 상기 복사본에 할당하는 단계를 포함하는 메모리 디바이스를 관리하는 방법이 제공된다.
또한, 본 발명에 따라, 호스트에 의해 메모리 디바이스로 전송된 데이터 청크를 저장하기 위한 메모리 디바이스로서,
a) 메모리; 및 b) ⅰ) 데이터 청크에 서명을 할당하고, ⅱ) 메모리의 제 1 위치에 데이터 청크를 저장하고, ⅲ) 메모리의 제 2 위치로 데이터 청크를 복사하여, 그에 의해 데이터 청크의 복사본을 생성하고, 및 ⅳ) 상기 데이터 청크의 서명과 일치하는 서명을 상기 복사본에 할당하도록 동작하는 컨트롤러;를 포함하는 메모리 디바이스가 제공된다.
메모리 디바이스를 관리하기 위한 본 발명의 기본 방법은, 메모리 디바이스에 주메모리를 포함하는 것으로 시작한다. 메모리 디바이스의 호스트는 제 1 데이터 청크를 메모리 디바이스로 전송한다. 서명이 제 1 데이터 청크에 할당된다. 제 1 데이터 청크는 주메모리의 제 1 위치에 저장된다. 제 1 데이터 청크는 또한 주메모리의 제 2 위치로 복사되어, 그에 의해 제 1 데이터 청크의 복사본을 생성한다. 제 1 데이터 청크의 서명과 일치하는 서명이 상기 복사본에 할당된다.
바람직하게는, 제 1 데이터 청크는 데이터 섹터이다.
바람직하게는, 상기 방법은 복수의 제 1 데이터 청크에 대해 실시된다. 제 1 데이터 청크는 호스트에 의해 메모리 디바이스로 전송되고, 각각의 서명이 할당되고, 주메모리의 각각의 제 1 위치에 저장되고, 자신의 복사본이 그 복사본이 되는 제 1 데이터 청크에 할당된 서명과 일치하는 각각의 서명이 할당되는 각각의 복사본과 함께 주메모리의 각각의 제 2 위치로 복사된다. 또는, 모든 복사본은 모든 제 1 데이터 청크의 모든 서명과 일치하는 공통 서명이 할당된다. 이러한 대안에서, 바람직하게는, 모든 제 2 위치는 주메모리의 공통 블록에 있고, 공통 서명은 그 블록에 연관된다.
상기 방법이 복수의 제 1 데이터 청크에 대해 실시될 때, 바람직하게는 각 제 1 데이터 청크는 각각의 논리 주소에 연관된다. 하나 이상의 제 1 데이터 청크를 포함하는 주메모리의 블록을 제거하기 위해, 상기 블록에 포함된 각각의 제 1 데이터 청크에 대해 상기 제 1 데이터 청크의 논리 주소에 연관된 모든 복사본이 검색된다. 상기 블록은, 상기 블록에 포함된 각 제 1 데이터 청크에 대해, 상기 제 1 데이터 청크의 논리 주소에 연관된 복사본 중 하나가 상기 제 1 데이터 청크의 서명과 일치하는 서명을 가지는 경우에만 삭제된다.
바람직하게는, 제 1 데이터 청크는 논리 주소에 연관된다. 호스트는 메모리 디바이스로 상기 논리 주소에 연관된 제 2 데이터 청크를 전송하고, 제 1 데이터 청크의 서명과 제 2 데이터 청크의 서명이 함께 상기 제 2 데이터 청크가 상기 제 1 데이터 청크를 대체하는 것을 지시하도록 상기 제 2 데이터 청크에 서명을 할당한다. 보다 바람직하게는, 상기 제 2 데이터 청크는 주메모리의 제 3 위치에 저장되고, 또한 메모리에서 제 4 위치로 복사되고, 그에 의해 제 2 데이터 청크의 복사본을 생성한다. 제 2 데이터 청크의 복사본은 상기 제 2 데이터 청크의 서명과 일치하는 서명이 할당된다. 가장 바람직하게는, 데이터 청크중 하나를 포함하는 주 메모리의 블록을 삭제하기 위해, 상기 논리 주소에 연관된 모든 복사본이 추적된다. 블록이 삭제되도록 하기 위한 필수적인 조건은 복사본 중 하나의 서명이 상기 하나의 데이터 청크의 서명과 일치하는 것이다. 또한 가장 바람직하게는, 상기 제 2 데이터 청크의 서명은 제 1 데이터 청크의 서명의 주기상의 바로 뒤에오는 것이거나, 또는 바로 이전의 것이다.
바람직하게는, 주메모리는 플래시 메모리이다.
바람직하게는, 제 1 데이터 청크의 서명은 제 1 데이터 청크와 함께 주메모리에 저장된다.
선택적으로, 주메모리와 별개인 보조 메모리는 메모리 디바이스에 포함되고, 제 1 데이터 청크의 서명 또는 제 1 데이터 청크의 복사본의 서명 중 어느 하나는 보조 메모리에 저장된다. 가장 바람직하게는, 보조 메모리는 RAM이다.
바람직하게는, 제 1 데이터 청크의 복사본에 할당되는 서명은 제 1 데이터 청크의 서명과 일치한다.
본 발명의 주된 사용처는 PPP=1인 메모리 디바이스에 대해 동일하게 작용하는 "복사 마크" 등가물을 제공하는 것이지만, 당업자에게는 본 발명이 PPP=1인 메모리 디바이스에 대해 "삭제 마크"의 등가물도 제공한다는 것이 명백할 것이다.
따라서, 본 발명에 따라, 메모리를 포함하는 메모리 디바이스를 관리하는 방법으로서, a) 메모리 디바이스의 호스트에 의해 메모리 디바이스로 제 1 데이터 청크와 제 2 데이터 청크를 연속하여 전송하는 단계로서, 상기 두 데이터 청크는 모두 공통 논리 주소에 연관되는 전송단계; b) 각각의 데이터 청크에 각각의 서명을 할당하는 단계로서, 상기 제 1 데이터 청크의 서명과 상기 제 2 데이터 청크의 서명이 함께 상기 제 2 데이터 청크가 상기 제 1 데이터 청크를 대체하는 것을 지시하는 단계; c) 메모리의 각각의 위치에 상기 데이터 청크들을 저장하는 단계; 및 d) 상기 호스트로부터 상기 논리 주소에 연관된 데이터를 판독하도록 하는 요청을 수신할 때, 상기 호스트로 그의 서명이 상기 2개의 데이터 청크중 상기 메모리 디바이스에 의해 2번째로 수신되는 데이터 청크를 지시하는 데이터 청크를 전송하는 단계를 포함하는 메모리 디바이스를 관리하는 방법이 제공된다.
또한, 본 발명에 따라, 호스트에 의해 연속적으로 메모리 디바이스로 전송된 제 1 데이터 청크와 제 2 데이터 청크를 저장하고, 상기 2 개 데이터 청크 모두는 공통의 논리 주소에 연관되는 메모리 디바이스로서, a) 메모리; 및 b) ⅰ) 각각의 데이터 청크에 각각의 서명을 할당하고, 상기 제 1 데이터 청크의 서명과 상기 제 2 데이터 청크의 서명이 함께 상기 제 2 데이터 청크가 상기 제 1 데이터 청크를 대체하는 것을 지시하고, ⅱ) 메모리의 각각의 위치에 데이터 청크들을 저장하고, ⅲ) 호스트로부터 상기 논리 주소에 연관된 데이터를 판독하라는 요청을 수신할 때, 상기 호스트로 그의 서명이 상기 2 개의 데이터 청크중 상기 메모리 디바이스에 의해 2 번째로 수신된 데이터 청크인 것을 지시하는 데이터 청크를 전송하도록 동작하는 컨트롤러;를 포함하는 메모리 디바이스가 제공된다.
본 발명이 Lasser 등에 따라 US 60/636,510에서 사용될 때, 데이터는 "복사됨 마크" 방법이 사용된다면 필요할지도 모르는 2 개의 기록 동작을 사용하는 것이 아니라, 단일 기록 동작을 이용하여 메모리 디바이스의 제 1 위치에 저장된다. 유사하게, 제 2 위치로의 데이터의 내부 복사는 한 번의 기록 동작만을 필요로한다. 그럼에도 불구하고, 데이터의 2 가지 버전은 일치하는 서명을 가지기 때문에, 복사가 데이터의 2 개 버전의 비트-대-비트의 비교를 하지 않고서도 수행될 수 있는지 여부를 검증할 수 있다. 따라서, 본 발명은 하기와 같이 일반화된다:
본 발명에 따라, 메모리를 포함하는 메모리 디바이스를 관리하는 방법으로서, a) 메모리 디바이스로 데이터 섹터를 전송하는 단계; b) 단일 기록 동작을 이용하여 메모리의 제 1 위치에 상기 데이터 섹터를 저장하는 단계; 및 c) 단일 기록 동작을 이용하여 메모리의 제 2 위치에 상기 데이터 섹터를 복사하는 단계;를 포함하고, 상기 저장단계와 복사 단계는 어느 위치로부터도 데이터 모두를 판독하지 않고서도 상기 복사가 유효하게 되었는지를 검증하는 것을 허용하는 방식으로 작용하는 메모리 디바이스를 관리하는 방법이 제공된다.
또한, 본 발명에 따라, 메모리를 포함하는 메모리 디바이스를 관리하는 방법으로서, a) 메모리 디바이스로 복수의 데이터 섹터를 전송하는 단계; b) 단일 기록 동작을 이용하여 메모리의 제 1 페이지에 상기 복수의 데이터 섹터를 저장하는 단계; 및 c) 단일 기록 동작을 이용하여 메모리의 제 2 페이지에 상기 복수의 데이터 섹터를 복사하는 단계;를 포함하고, 상기 저장단계와 복사 단계는 어느 페이지로부터도 데이터 모두를 판독하지 않고서도 복사가 유효하게 되었는지를 검증하는 것을 허용하는 방식으로 작용하는 메모리 디바이스를 관리하는 방법이 제공된다.
또한, 본 발명에 따라, a) 메모리; 및 b) ⅰ) 단일 기록 동작을 이용하여 메모리의 제 1 위치에 데이터 섹터를 저장하고, ⅱ) 단일 기록 동작을 이용하여 메모리의 제 2 위치에 데이터 섹터를 복사하고, 상기 저장단계와 복사 단계는 어느 위치로부터도 데이터 모두를 판독하지 않고서도 복사가 유효하게 되었는지를 검증하는 것을 허용하는 방식으로 작용하도록 동작하는 컨트롤러;를 포함하는 메모리 디바이스가 제공된다.
또한, 본 발명에 따라, a) 메모리; 및 b) ⅰ) 단일 기록 동작을 이용하여 메모리의 제 1 위치에 복수의 데이터 섹터를 저장하고, ⅱ) 단일 기록 동작을 이용하여 메모리의 제 2 위치에 복수의 데이터 섹터를 복사하고, 상기 저장단계와 복사 단계는 어느 페이지로부터도 데이터 모두를 판독하지 않고서도 복사가 유효하게 되었는지를 검증하는 것을 허용하는 방식으로 작용하도록 동작하는 컨트롤러;를 포함하는 메모리 디바이스가 제공된다.
본 발명은 예시의 방식으로써만 첨부한 도면을 참조하여 본 문에 기술된다.
도 1은 섹터 저장의 플로우 차트,
도 2는 섹터 복사의 플로우 차트,
도 3은 도 2의 복사를 확인하는 플로우 차트, 및
도 4는 본 발명의 시스템의 고-레벨의 개략적인 블록도이다.
본 발명은 플래시 메모리와 같은 비휘발성 메모리에 데이터를 저장하는 방법 및 시스템에 관한 것이다. 특히, 본 발명은 메모리의 하나의 물리적 위치에서 또다른 물리적 위치로 복사될 필요가 있는 데이터가 복사가 유효하게되기 전에 삭제되지 않도록 보장하는 데에 사용될 수 있다.
본 발명에 따른 비휘발성 메모리 관리의 원리 및 동작은 도면과 첨부한 설명을 참조하면 보다 잘 이해될 것이다.
본 발명은 서명으로서 역할을 하는 제어 필드를 섹터의 각 복사본에 연관시키는 것에 기반을 둔다. 이러한 서명은 섹터 데이터의 연속한 업데이트시 상이하게 되는 섹터 데이터의 버전을 고유하게 식별한다. 섹터가 플래시 메모리 디바이 스로 기록되고, 그의 제 1 위치에 저장될 때마다, 플래시 관리 시스템이 서명값을 그 데이터에 할당한다. "서명"하는 것은, 메모리 디바이스 내에 현재 존재하는 동일한 논리 섹터의 이전 버전에 연관된 해당하는 필드와 상이하게 되는 것이 보장되는 수치값을 의미한다. "논리 섹터"는, 실제로는 섹터 데이터의 모든 업데이트가 상이한 물리적 위치의 저장 시스템 내에 저장되면서, 섹터 주소가 항상 동일한 섹터를 나타내는 것처럼 호스트가 주어진 섹터 주소를 반복하여 업데이트하거나 겹쳐쓸 수 있도록 상기 메모리 디바이스의 호스트에 의해 나타내어지고 어드레스되는 섹터를 의미한다. 논리 섹터(또는 "가상 섹터")의 이미지를 제공하는 플래시 관리 시스템은 Ban(이미 앞서 언급한 미국 특허 5,404,485), Lasser(이미 앞서 언급한 미국 특허 6,678,785), Ban의 미국 특허 5,937,425, 및 Lasser의 미국 특허 6,591,330에서 교시된다.
주어진 시간에 메모리 디바이스 내에 최대 2 개의 버전의 논리 섹터만 존재하는 경우가 일반적이다. 하나의 버전은 현재 기록 요청에 의해 겹쳐쓰기되는 것이고, 제 2 버전은 현재 동작에 의해 제공되는 새로운 데이터이다. 일부 플래시 관리 시스템에서, 2 개의 버전 이상의 섹터가 함께 유지되는 경우가 있지만, 이경우에도, 유지되는 버전의 수는 작다. 따라서, 우리는 일반적으로 서명을 생성하기 위한 간단한 방법을 사용한다. 예를 들면, 서명 필드는 단지 수 비트의 길이가 될 수 있고(예를 들면 3 비트), 연속하는 값들은 각 새로운 버전에 대한 서명의 값을 주기적으로 증가시킴으로써 생성된다. 즉, 가용한 서명의 값은 {0, 1, 2, 3, 4, 5, 6, 7}이다. 새로운 버전의 섹터가 수신될 때, 우리는 현재 저장된 이전 버전에 서의 서명값을 찾아보고, 그것을 1 씩 증가시키고, 새로운 서명으로서 그 결과를 이용한다. 이전 서명이 7이라면, 주기적 그룹으로서의 시퀀스값을 살펴볼 때, 새로운 것은 0이 된다. 데이터의 "생성"을 나타내는 것처럼 보다 새로운 버전의 데이터에 연관된 보다 높은 생성값으로(물론, 7에서 0으로 이동할 때는 유사성이 파괴된다) 보여질 수 있기 때문에, 우리는 이러한 유형의 서명을 "서명 생성" 또는 단순히 "생성"이라고 한다.
섹터가 자신의 제 1 물리적 위치에서 자신의 제 2 물리적 위치로 보다 최근에 복사될 때, 상기 섹터는 자신의 서명 필드를 유지한다. 즉, 제 2 위치에서의 섹터의 복사본은 자신의 제 1 위치에서 상기 섹터가 가지고 있는 것과 동일한 서명값을 가진다. 본 발명의 이점은 상기 서명 필드가 마크 방법의 단점을 가지지 않으면서 "복사 마크"의 기능을 제공한다는 것이다.
먼저, 서명을 이용함으로써 어떻게 마크 기능이 제공되는지 살펴보자. 플래시 관리 시스템이, 자신의 수용 블록이 삭제 및 재사용되도록 제 1 저장 위치에서의 주어진 섹터가 이미 복사되었는지 여부를 찾아내야할 때마다, 상기 플래시 관리 시스템은 자신의 제 1 위치의 섹터에 연관된 서명 필드와, 자신의 제 2 위치의 동일한 논리 섹터에 연관된 서명 필드를 찾는다. 두개의 값이 일치하면, 그때 상기 섹터는 이미 복사된 것이고, 삭제될 수 있다. 상기 값이 일치하지 않으면, 상기 섹터는 아직 복사되지 않은 것이고, 자신의 제 1 위치에 상기 섹터를 유지하도록 여전히 요구된다. 효과적인 섹터 비교 동작으로서 이러한 방법을 검토해보라. 논리 섹터의 2 가지 버전의 전체 데이터를 판독하고, 그들의 각각과 모든 바이트를 비교함으로써 상기 문제를 거의 해결할 수 있다. 이것은 우리에게 상기 두 개의 복사본이 동일한지(제 1 위치가 삭제될수 있는 경우), 또는 동일하지 않은지(이 경우 상기 제 1 위치는 아직 삭제되면 안됨) 여부를 알려준다. 그러나, 이러한 전체 데이터의 비교는 매우 비효율적이며, 실용적인 해결안이 아니다. 본 발명은 훨씬 더 저렴한 비용으로 동일한 결과를 제공하는데, 이는 단일 필드만을 비교하고 전체 섹터를 비교하지 않고, 버스를 통해 단일 필드만을 판독하면서 전체 섹터를 판독할 필요가 없게 하는 것이다.
도면을 참조하면, 도 1은 섹터가 메모리 디바이스에 저장되도록 호스트 컴퓨터에 의해 전송될 때, 본 발명의 방법을 이용하여 메모리 디바이스에서 무엇이 수행되는지를 도시한다. 단계(110)에서 메모리 디바이스는 호스트로부터 섹터 데이터를 수신하고, 데이터의 논리 섹터 어드레스가 수반된다. 단계(120)에서, 상기 논리 섹터의 현재 버전에 연관된 서명이 검색된다. 상기 값은 저장 시스템의 컨트롤러의 램에 있는 테이블로부터 검색되거나, 또는 상기 값은 플래시 메모리로부터 판독된다. 단계(130)에서, 새로운 값의 서명이 상기 논리 섹터의 새로운 버전에 연관되도록 연산된다. 생성-유형의 서명이 사용되면, 연산은 이전 서명의 주기적 증가분이 된다. 단계(140)에서 새로운 버전의 섹터는 제 1 위치에 저장되고, 새롭게 연산된 서명이 수반된다.
도 2는 자신의 제 1 위치에 있던 섹터가 자신의 제 2 위치로 복사될 때 본 발명의 방법을 이용하여 메모리 디바이스에서 무엇이 수행되는지를 도시한다. 단계(210)에서 복사될 섹터는 자신의 제 1 위치로부터 자신의 서명 필드와 함께 판독 된다. 단계(220)에서 제 2 위치에 대한 서명값은 제 1 위치에서 서명과 일치하도록 설정된다. 단계(230)에서 섹터는 자신의 제 2 위치로 기록되고, 새로운 서명값이 수반된다.
도 3은 제 1 위치의 섹터가 이미 제 2 위치로 복사되었는지 여부에 대한 판정이 이루어져야할 때, 본 발명의 방법을 이용하여 메모리 디바이스에서 무엇이 수행되는지를 도시한다. 단계(310)에서 제 1 위치의 섹터의 서명값이 검색된다. 단계(320)에서 제 2 위치의 섹터의 서명값이 검색된다. 상기 검색들 모두가 램의 테이블 또는 플래시 메모리로부터 이루어진 것들이다. 단계(330)에서 상기 2 개의 검색된 값들은 그것들이 일치하는지 여부를 보기 위해 체크된다. 그것들이 일치하면, 단계(340)에서, 상기 섹터는 이미 복사되었고, 더이상 제 1 위치에 있을 필요가 없다고 결론을 내린다. 그것들이 일치하지 않으면, 단계(350)에서, 상기 섹터는 아직 복사된 것이 아니고, 여전히 제 1 위치에 유지되어야 한다고 결론 내리게 된다.
상기 알고리듬은 마크 방법의 단점을 가지지 않으면서 복사 식별 문제를 해결한다:
A. 본 발명의 방법에 의해서는 추가적인 기록 동작이 추가되지 않으며, 그결과 성능 저하를 초래하지도 않는다. 서명 필드가 데이터의 각각의 버전에 대해 기록되더라도, 상기 필드는 항상 동일한 기록 동작 동안 데이터로서 기록되고, 그 결과 어떠한 추가 시간도 늘어나지 않는다. 이것은 NAND 플래시에서 기록을 위한 기본 청크가 페이지이기 때문이고, 기록동작시 페이지에서 업데이트되는 바이트의 수 에 관계없이 상기 동작은 동일한 시간이 걸린다. 이것이 마크가 데이터와 함께 제 1 저장 위치로 기록될 수 없고, 개별 동작으로 기록되어야만 하는 마크 방법과 다른 점이다.
B. 본 발명의 방법에 의해서는 추가적인 기록 동작이 부가되지 않으며, 그결과 PPP 특성이 소모되지 않는다. 본 발명의 방법은 PPP=1을 가지는 MLC NAND 디바이스를 가지고도 이용될 수 있다. 다시 이것은 제 1 저장 위치로의 마크의 기록이 개별 기록 동작으로 수행되어야만 하는 마크 방법과 대비되는 점이다.
하기는 본 발명의 범위 내에 있는 상기 방법에 관한 몇가지 변형에 관한 몇가지 유의사항이다:
1. 동일한 값의 서명이 섹터의 제 1 위치와 제 2 위치에서 사용된다는 것이 상기의 설명에서 드러나있다. 그러나 이것은 엄격하게 필수적인 것은 아니다. 플래시 관리 시스템으로 하여금 제 1 위치에서의 제 1 서명값과 제 2 위치에서의 제 2 서명값이 일치하는지 여부를 찾아내도록 하는 2 개의 필드사이에 충분한 대응이 있는한 2 개의 위치에서의 서명값은 상이할 수도 있다. 예를 들면, 제 2 위치에서의 서명값은 제 1 위치에서의 서명값의 논리적 비트-대-비트의 보수가 되도록 설정된다. 본문에서 "일치하는 서명"이라는 용어는, 단지 값의 동일성 뿐 만 아니라 제 1 위치에서의 제 1 서명값이 제 2 위치에서의 제 2 서명값과 일치하는지 여부를 판단하도록 하는 이러한 대응을 포함하도록 번역되어야 한다.
2. 상기 설명은 제 2 위치에서의 각 섹터가 그것과 함께 저장된 서명 필드를 가지는 것을 가정한다. 그러나 이것은 엄격하게 필수적인 것은 아니다. 결합된 서명 필드를 이용하기위해 자신들의 제 2 물리적 위치에서의 여러 섹터들을 그룹화하는 것이 보다 효율적이다. 예를 들면, 삭제 블록과 같은 유닛에 연관된 제 2 위치 서명 필드를 가지는 것이 효율적이며, 이 경우 상기 삭제 블록 내의 각 섹터는 섹터 자체내에 서명 필드가 없음에도 불구하고 삭제 블록에 연관된 서명값과 동일한 서명값을 가지는 것으로 이해된다. 이러한 설계는 제 1 위치로부터 제 2 위치로의 복사 프로세스가 청크단위로 각 섹터에 대해 독립적이지 않게 수행될 때 유용하다. 이러한 애플리케이션에서 서명 필드가 제 2 위치의 섹터에 연관되고 그에 기록되는 것 마다, 각 섹터가 직접 연관된 서명필드를 가지는 경우 뿐만 아니라 예를 들면 그 삭제 블록의 섹터가 아닌 삭제 블록에 직접 연관된 서명 필드에 의해 적어도 일부의 섹터들에 대해 서명 필드가 간접적으로만 연관되도록 여러개의 섹터가 서명 필드를 공유하는 경우를 포함하는 것으로 번역되어야만 한다.
3. 상기 설명은 오직 2 개 버전의 섹터만 저장 시스템 내에 계속 존재한다고 가정한다. 이것은 간접적으로, 섹터에 대한 다음번 업데이트가 수신되는 시간까지, 시스템이 자신의 제 1 위치에서 자신의 제 2 위치로 최신 버전을 복사하고, 가장 최신의 버전에 바로 이전의 버전은 이미 삭제한 것을 의미한다. 그러나 이것은 엄격하게 필수적인 것은 아니다. 본 발명의 방법은 논리 섹터가 저장 시스템내에서 2 개의 이전의 버전들을 여전히 가지고 있는 동안 논리 섹터로의 새로운 업데이트가 수신되는 경우에 적용하는 것으로 쉽게 확장될 수 있다. 이러한 경우, 하기의 것들 중 하나를 수행할 수 있다:
ⅰ. 더이상 필요하지 않기 때문에 이전 버전의 복사를 중지한다. 제 1 위치에 가장 최신의 버전을 저장하고, 그런 다음 그것이 본 발명의 방법에 따라 복사되는 것을 보장한다. 예를 들면 제 1 저장 위치의 버전의 순서를 관찰하고 가장 최근의 것이 아닌 것을 스킵함으로써 스킵된 버전(절대 복사되지 않는)이 정확하게 식별되는 것을 확실히 하는 주의가 취해져야한다.
ⅱ. 새로운 버전에 보다 더 높은 서명값을 할당하고, 본 발명의 방법에 따라 이전 버전의 복사를 스킵하지 않는다. 나중의 여전히 보다 새로운 버전이 새로운 버전으로 식별되고(그의 상이한 서명값때문에), 본 발명의 방법에 따라 자신의 제 2 위치로 복사될 것이다. 이러한 접근방식이 불필요한 복사 동작을 낭비하지만,(우리가 이미 새로운 데이터에 의해 대체된 것으로 알고 있는 데이터를 복사하기 때문에) 보다 간단하게 구현될 수 있을 것이다.
4. 상기 설명은 각각의 섹터가 개별 페이지로 기록되는 경우에만 적용되는 실수가 있어서는 안된다. 상기의 것은 그렇지 않다. 본 발명은 소수의 논리 섹터가 동일한 물리적 페이지 내에 저장되는 메모리 디바이스에 완전히 적용될 수 있다. 이것은 호스트가 저장 시스템과 512 바이트의 섹터를 교환하는 반면, 플래시 디바이스는 2킬로 바이트의 페이지를 가지는 경우로, 이경우 4 개의 섹터가 한 페이지에 함께 저장된다. 이러한 저장 시스템에서 본 발명의 방법은 섹터를 페이지로 그룹화하는 것에 관계없이, 자신의 서명 필드를 가진 각 섹터로 개별적으로 적용되어야한다. 이러한 경우에 존재하는 상이함 중 한가지 포인트는 1 섹터 이상을 포함하고 있는 페이지는 각 섹터가 개별 동작으로 기록되는 것이 아니라 단일한 동작으로 기록될 수 있다는 것이다.
도 4는 본 발명의 방법을 이용하는 시스템(400)의 고레벨 개략적인 블록도이다. 시스템(400)은 데이터 소스로서 작용을 하는 호스트 컴퓨터(410)와 호스트 컴퓨터(410)로부터 메모리 디바이스(420)로 호스트 인터페이스(480)를 통해 전송되는 데이터를 저장하는 플래시 메모리 디바이스(420)를 포함한다. 메모리 디바이스(420)는 데이터가 저장되는 플래시 메모리(430)와 플래시 메모리(430)에서 데이터의 적절한 저장을 담당하는 컨트롤러(440)를 포함한다. 차례로 컨트롤러(440)는 CPU(450), ROM(460)(CPU에 의해 실행되는 코드가 저장됨), 및 CPU의 코드 실행을 지원하기 위해 CPU(450)에 의해 사용되는 RAM(470)을 포함한다. 상기 블록도는 SecureDigital™ 플래시 메모리 카드 또는 포터블 USB 플래시 드라이브와 같은 일반적인 비휘발성 저장 모듈을 나타낸다. 시스템(400)에서, 제 1 물리적 위치로 데이터를 기록하는 단계, 동일한 데이터를 제 2 물리적 위치로 복사하는 단계, 및 서명 필드를 생성하고 저장하는 단계를 포함하는 본 발명의 방법은 모두, 컨트롤러(440), 또는 보다 정확하게는 ROM(460)으로부터의 코드를 실행하는 CPU(450)에 의해 실시된다. 그러나 이것은 본 발명을 이용하기 위한 시스템 아키텍처만이 가능한 것은 아니다. 예를 들면, 본 발명의 방법은, 저장 모듈이 온보드 NAND 플래시 디바이스이고 스탠드어론 컨트롤러가 아닌 경우와 마찬가지로 호스트 컴퓨터(410)에서 실행되는 코드에 의해 구현되는 것이 가능하다. 본 발명의 방법은 호스트 컴퓨터(410)에 의해 부분적으로 구현되고 컨트롤러(440)에 의해 부분적으로 구현될 수도 있다. 이 모든 아키텍처와 다수의 다른 것들은 본 발명의 범위 내에 있다.
본 발명의 방법론과 달리, 예를 들면 미국 특허 5,404,485, 5,937,425, 6,591,330 및 6,678,785와 같이 상술한 종래 기술에서 교시된 바와 거의 같이 컨트롤러(440)는 플래시 메모리(430)를 관리한다.
본 발명이 제한된 수의 실시예에 대해 기술되었지만, 본 발명의 다수의 변형, 변경, 및 기타 적용이 가능하다.

Claims (24)

  1. 메모리 디바이스를 관리하는 방법에 있어서,
    (a) 메모리 디바이스에 주메모리를 포함하는 단계;
    (b) 메모리 디바이스의 호스트에 의해 상기 메모리 디바이스로 제 1 데이터 청크를 전송하는 단계;
    (c) 상기 제 1 데이터 청크에 서명을 할당하는 단계;
    (d) 상기 주메모리의 제 1 위치에 상기 제 1 데이터 청크를 저장하는 단계;
    (e) 상기 주메모리의 제 2 위치에 상기 제 1 데이터 청크를 복사하고, 그에 의해 상기 제 1 데이터 청크의 복사본을 생성하는 단계; 및
    (f) 상기 제 1 데이터 청크의 상기 서명과 일치하는 서명을 상기 복사본에 할당하는 단계를 포함하는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 데이터 청크는 데이터 섹터인 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  3. 제 1 항에 있어서,
    복수의 제 1 데이터 청크가 메모리 디바이스로 전송되고, 각각의 서명이 할당되고, 상기 각각의 제 1 위치에 저장되고, 각각의 제 2 위치로 복사되고, 상기 각각의 복사본에는 각각의 서명이 할당되는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  4. 제 3 항에 있어서,
    상기 제 1 데이터 청크 각각은 각각의 논리 주소에 연관되고, 상기 방법은,
    (g) 상기 제 1 데이터 청크 중 적어도 하나를 포함하는 상기 주메모리의 블록을 삭제하기 위해,
    (ⅰ) 상기 주메모리의 상기 블록에 포함된 상기 제 1 데이터 청크 각각에 대해, 상기 각각의 제 1 데이터 청크의 논리 주소에 연관된 모든 복사본을 찾는 단계; 및
    (ⅱ) 상기 주메모리의 상기 블록에 포함된 상기 각각의 제 1 데이터 청크에 대해, 상기 각각의 데이터 청크의 상기 논리 주소와 연관된 상기 복사본 중 하나의 상기의 서명이 상기 각각의 데이터 청크의 상기 서명과 일치하는 경우에만 상기 주메모리의 상기 블록을 삭제하는 단계;를 더 포함하는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  5. 제 1 항에 있어서,
    복수의 제 1 데이터 청크는 메모리 디바이스로 전송되고, 각각의 서명이 할당되고, 상기 각각의 제 1 위치에 저장되고 각각의 제 2 위치에 복사되며, 모든 복사본에는 상기 제 1 데이터 청크의 각각의 모든 서명과 일치하는 공통된 서명이 할당되는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  6. 제 5 항에 있어서,
    상기 제 1 데이터 청크 각각은 각각의 논리 주소에 연관되고, 상기 방법은,
    (g) 상기 제 1 데이터 청크 중 적어도 하나를 포함하는 상기 주메모리의 블록을 삭제하기 위해,
    (ⅰ) 상기 주메모리의 상기 블록에 포함된 상기 제 1 데이터 청크 각각에 대해, 상기 각각의 제 1 데이터 청크의 논리 주소에 연관된 모든 복사본을 찾는 단계; 및
    (ⅱ) 상기 주메모리의 상기 블록에 포함된 상기 각각의 제 1 데이터 청크에 대해, 상기 각각의 데이터 청크의 상기 논리 주소와 연관된 상기 복사본 중 하나의 상기의 서명이 상기 각각의 데이터 청크의 상기 서명과 일치하는 경우에만 상기 주메모리의 상기 블록을 삭제하는 단계;를 더 포함하는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  7. 제 5 항에 있어서,
    상기 모든 제 2 위치는 상기 주메모리의 공통 블록에 있고, 상기 공통의 서명이 상기 공통 블록에 연관되는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  8. 제 1 항에 있어서, 상기 제 1 데이터 청크는 논리 주소에 연관되고, 상기 방법은,
    (g) 상기 호스트에 의해 메모리 디바이스로 상기 논리 주소에 연관된 제 2 데이터 청크를 전송하는 단계; 및
    (h) 상기 제 2 데이터 청크로 서명을 할당하고, 상기 제 1 데이터 청크의 상기 서명과 상기 제 2 데이터 청크의 상기 서명이 함께 상기 제 2 데이터 청크가 상기 제 1 데이터 청크를 대체하는 것을 지시하는 단계를 더 포함하는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  9. 제 8 항에 있어서,
    (i) 상기 주메모리의 제 3 위치에 상기 제 2 데이터 청크를 저장하는 단계;
    (j) 상기 주메모리의 제 4 위치로 상기 제 2 데이터 청크를 복사하고, 그에 의해 상기 제 2 데이터 청크의 복사본을 생성하는 단계; 및
    (k) 상기 제 2 데이터 청크의 상기 복사본에 상기 제 2 데이터 청크의 상기 서명과 일치하는 서명을 할당하는 단계를 더 포함하는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  10. 제 9 항에 있어서,
    (l) 상기 데이터 청크 중 하나를 포함하는 상기 주메모리의 블록을 삭제하기 위해,
    (ⅰ) 상기 논리 주소에 연관된 모든 복사본을 검색하는 단계; 및
    (ⅱ) 상기 복사본 중 하나의 상기 서명이 상기 하나의 데이터 청크의 상기 서명과 일치하는 경우에만 상기 주메모리의 상기 블록을 삭제하는 단계를 더 포함하는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  11. 제 8 항에 있어서,
    상기 제 2 데이터 청크의 상기 서명은 상기 제 1 데이터 청크의 상기 서명의 주기상 바로 후속하는 것인 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  12. 제 8 항에 있어서,
    상기 제 2 데이터 청크의 상기 서명은 상기 제 1 데이터 청크의 상기 서명의 주기상 바로 이전의 것인 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  13. 제 1 항에 있어서,
    상기 주메모리는 플래시 메모리인 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  14. 제 1 항에 있어서,
    (g) 상기 제 1 데이터 청크와 함께 상기 주메모리에 상기 제 1 데이터 청크의 상기 서명을 저장하는 단계를 더 포함하는 것을 특징으로 하는 메모리 디바이스 를 관리하는 방법.
  15. 제 1 항에 있어서,
    (g) 상기 메모리 디바이스에 상기 주메모리와 별개인 보조 메모리를 포함하는 단계; 및
    (h) 상기 보조 메모리에, 상기 제 1 데이터 청크의 상기 서명과 상기 복사본의 상기 일치하는 서명으로 구성되는 그룹으로부터 선택된 서명을 저장하는 단계;를 더 포함하는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  16. 제 15 항에 있어서,
    상기 메모리는 RAM인 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  17. 제 1 항에 있어서,
    상기 복사본에 할당되는 상기 서명은 상기 제 1 데이터 청크의 상기 서명과 일치하는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  18. 호스트에 의해 메모리 디바이스로 전송되는 데이터 청크를 저장하는 메모리 디바이스에 있어서,
    (a) 메모리; 및
    (b) (ⅰ) 데이터 청크에 서명을 할당하고,
    (ⅱ) 메모리의 제 1 위치에 데이터 청크를 저장하고,
    (ⅲ) 메모리의 제 2 위치로 데이터 청크를 복사하여, 그에 의해 데이터 청크의 복사본을 생성하고, 및
    (ⅳ) 상기 데이터 청크의 서명과 일치하는 서명을 상기 복사본에 할당하도록 동작하는 컨트롤러;를 포함하는 것을 특징으로 하는 메모리 디바이스.
  19. 메모리를 포함하는 메모리 디바이스를 관리하는 방법에 있어서,
    (a) 메모리 디바이스의 호스트에 의해 상기 메모리 디바이스로 제 1 데이터 청크 및 제 2 데이터 청크를 연속적으로 전송하는 단계로서, 상기 2개의 데이터 청크 모두는 공통의 논리 주소에 연관되는 단계;
    (b) 상기 각각의 데이터 청크에 각각의 서명을 할당하는 단계로서, 상기 제 1 데이터 청크의 서명과 상기 제 2 데이터 청크의 서명은 함께 상기 제 2 데이터 청크가 상기 제 1 데이터 청크를 대체하는 것을 지시하는 단계;
    (c) 상기 메모리의 각각의 위치에 상기 데이터 청크들을 저장하는 단계; 및
    (d) 상기 호스트로부터 상기 논리 주소에 연관된 데이터를 판독하도록 하는 요청을 수신할 때, 그의 서명이 상기 2개의 데이터 청크중 상기 메모리 디바이스에 의해 2번째로 수신된 데이터 청크를 지시하는 데이터 청크를 상기 호스트로 전송하는 단계를 포함하는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  20. 호스트에 의해 연속적으로 메모리 디바이스로 전송되는 제 1 데이터 청크와 제 2 데이터 청크를 저장하고, 상기 2 개 데이터 청크 모두는 공통의 논리 주소에 연관되는 메모리 디바이스로서,
    a) 메모리; 및
    b) (ⅰ) 각각의 데이터 청크에 각각의 서명을 할당하고, 상기 제 1 데이터 청크의 서명과 상기 제 2 데이터 청크의 서명이 함께 상기 제 2 데이터 청크가 상기 제 1 데이터 청크를 대체하는 것을 지시하고,
    (ⅱ) 상기 메모리의 각각의 위치에 데이터 청크들을 저장하고,
    (ⅲ) 호스트로부터 상기 논리 주소에 연관된 데이터를 판독하라는 요청을 수신할 때, 그의 서명이 상기 2 개의 데이터 청크중 상기 메모리 디바이스에 의해 2 번째로 수신된 데이터 청크인 것을 지시하는 데이터 청크를 상기 호스트로 전송하도록 동작하는 컨트롤러;를 포함하는 것을 특징으로 하는 메모리 디바이스.
  21. 메모리를 포함하는 메모리 디바이스를 관리하는 방법으로서,
    a) 메모리 디바이스로 데이터 섹터를 전송하는 단계;
    b) 단일 기록 동작을 이용하여 메모리의 제 1 위치에 상기 데이터 섹터를 저장하는 단계; 및
    c) 단일 기록 동작을 이용하여 메모리의 제 2 위치에 상기 데이터 섹터를 복사하는 단계;를 포함하고,
    상기 저장하는 단계와 복사하는 단계는 어느 위치로부터도 상기 데이터 모두를 판독하지 않고서도 복사가 유효하게 되었는지를 검증하는 것을 허용하는 방식으로 작용하는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법
  22. 메모리를 포함하는 메모리 디바이스를 관리하는 방법으로서,
    a) 메모리 디바이스로 복수의 데이터 섹터를 전송하는 단계;
    b) 단일 기록 동작을 이용하여 메모리의 제 1 페이지에 상기 복수의 데이터 섹터를 저장하는 단계; 및
    c) 단일 기록 동작을 이용하여 메모리의 제 2 페이지에 상기 복수의 데이터 섹터를 복사하는 단계;를 포함하고,
    상기 저장하는 단계와 복사하는 단계는 어느 페이지로부터도 상기 데이터 모두를 판독하지 않고서도 복사가 유효하게 되었는지를 검증하는 것을 허용하는 방식으로 작용하는 것을 특징으로 하는 메모리 디바이스를 관리하는 방법.
  23. 메모리 디바이스에 있어서,
    a) 메모리; 및
    b) (ⅰ) 단일 기록 동작을 이용하여 상기 메모리의 제 1 위치에 데이터 섹터를 저장하고,
    (ⅱ) 단일 기록 동작을 이용하여 상기 메모리의 제 2 위치에 데이터 섹터를 복사하도록 동작하는 컨트롤러;를 포함하고,
    상기 저장하는 단계와 복사하는 단계는 어느 위치로부터도 상기 데이터 모두를 판독하지 않고서도 복사가 유효하게 되었는지를 검증하는 것을 허용하는 방식으로 작용하는 것을 특징으로 하는 메모리 디바이스.
  24. 메모리 디바이스에 있어서,
    a) 메모리; 및
    b) (ⅰ) 단일 기록 동작을 이용하여 상기 메모리의 제 1 페이지에 복수의 데이터 섹터를 저장하고,
    (ⅱ) 단일 기록 동작을 이용하여 상기 메모리의 제 2 페이지에 복수의 데이터 섹터를 복사하도록 동작하는 컨트롤러;를 포함하고,
    상기 저장하는 단계와 복사하는 단계는 어느 페이지로부터도 상기 데이터 모두를 판독하지 않고서도 복사가 유효하게 되었는지를 검증하는 것을 허용하는 방식으로 작용하는 것을 특징으로 하는 메모리 디바이스.
KR1020077017702A 2005-01-31 2006-01-26 플래시 메모리에서의 복사 동작을 관리하는 방법 KR100926267B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US64794505P 2005-01-31 2005-01-31
US60/647,945 2005-01-31
US11/219,826 US8341371B2 (en) 2005-01-31 2005-09-07 Method of managing copy operations in flash memories
US11/219,826 2005-09-07

Publications (2)

Publication Number Publication Date
KR20070107689A KR20070107689A (ko) 2007-11-07
KR100926267B1 true KR100926267B1 (ko) 2009-11-12

Family

ID=36740896

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077017702A KR100926267B1 (ko) 2005-01-31 2006-01-26 플래시 메모리에서의 복사 동작을 관리하는 방법

Country Status (4)

Country Link
US (1) US8341371B2 (ko)
JP (1) JP4926982B2 (ko)
KR (1) KR100926267B1 (ko)
WO (1) WO2006080014A2 (ko)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190742B2 (en) * 2006-04-25 2012-05-29 Hewlett-Packard Development Company, L.P. Distributed differential store with non-distributed objects and compression-enhancing data-object routing
KR100780963B1 (ko) * 2006-11-03 2007-12-03 삼성전자주식회사 메모리 카드 및 메모리 카드의 구동 방법
US20080228998A1 (en) * 2007-03-16 2008-09-18 Spansion Llc Memory storage via an internal compression algorithm
TWI372396B (en) * 2007-09-28 2012-09-11 Phison Electronics Corp Method of protecting data for power failure and controller using the same
WO2009054828A1 (en) * 2007-10-25 2009-04-30 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8099573B2 (en) * 2007-10-25 2012-01-17 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8140637B2 (en) 2007-10-25 2012-03-20 Hewlett-Packard Development Company, L.P. Communicating chunks between devices
US8332404B2 (en) * 2007-10-25 2012-12-11 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8150851B2 (en) * 2007-10-25 2012-04-03 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
DE112007003693B4 (de) * 2007-10-25 2014-05-15 Hewlett-Packard Development Co., L.P. Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
WO2009054834A1 (en) * 2007-10-25 2009-04-30 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8301912B2 (en) 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
GB2472520B (en) * 2008-04-25 2012-11-21 Hewlett Packard Development Co Data processing apparatus and method of deduplicating data for data backup
US8059455B2 (en) * 2008-05-09 2011-11-15 Sandisk Il Ltd. Partial scrambling to reduce correlation
US8117343B2 (en) * 2008-10-28 2012-02-14 Hewlett-Packard Development Company, L.P. Landmark chunking of landmarkless regions
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8375182B2 (en) * 2009-02-10 2013-02-12 Hewlett-Packard Development Company, L.P. System and method for segmenting a data stream
US8001273B2 (en) * 2009-03-16 2011-08-16 Hewlett-Packard Development Company, L.P. Parallel processing of input data to locate landmarks for chunks
US7979491B2 (en) * 2009-03-27 2011-07-12 Hewlett-Packard Development Company, L.P. Producing chunks from input data using a plurality of processing elements
US9141621B2 (en) * 2009-04-30 2015-09-22 Hewlett-Packard Development Company, L.P. Copying a differential data store into temporary storage media in response to a request
US20100281077A1 (en) * 2009-04-30 2010-11-04 Mark David Lillibridge Batching requests for accessing differential data stores
US8027195B2 (en) 2009-06-05 2011-09-27 SanDisk Technologies, Inc. Folding data stored in binary format into multi-state format within non-volatile memory devices
US8102705B2 (en) 2009-06-05 2012-01-24 Sandisk Technologies Inc. Structure and method for shuffling data within non-volatile memory devices
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US20110153912A1 (en) 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8468294B2 (en) 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
WO2011077519A1 (ja) 2009-12-22 2011-06-30 トヨタ自動車株式会社 情報管理装置、及び情報管理方法
US8660994B2 (en) * 2010-01-28 2014-02-25 Hewlett-Packard Development Company, L.P. Selective data deduplication
US8417876B2 (en) 2010-06-23 2013-04-09 Sandisk Technologies Inc. Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems
JP2012014416A (ja) * 2010-06-30 2012-01-19 Toshiba Corp 記録装置、書き込み装置、読み出し装置、及び記録装置の制御方法
WO2012009318A1 (en) 2010-07-13 2012-01-19 Sandisk Technologies Inc. Dynamic optimization of back-end memory system interface
US9069688B2 (en) 2011-04-15 2015-06-30 Sandisk Technologies Inc. Dynamic optimization of back-end memory system interface
US8464135B2 (en) 2010-07-13 2013-06-11 Sandisk Technologies Inc. Adaptive flash interface
KR101374655B1 (ko) 2010-09-29 2014-03-24 네이버비즈니스플랫폼 주식회사 파일 볼륨을 청크 단위로 분산 처리하는 시스템 및 방법
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US8842473B2 (en) 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US9384128B2 (en) 2014-04-18 2016-07-05 SanDisk Technologies, Inc. Multi-level redundancy code for non-volatile memory controller
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US9268648B1 (en) * 2015-07-28 2016-02-23 Zerto Ltd. System and method for consistency verification of replicated data in a recovery system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5941215B2 (ja) * 1979-10-09 1984-10-05 富士通株式会社 主記憶装置書込み制御方式
JPH0619785A (ja) * 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
US5740395A (en) * 1992-10-30 1998-04-14 Intel Corporation Method and apparatus for cleaning up a solid state memory disk storing floating sector data
US5617537A (en) * 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
US5539895A (en) * 1994-05-12 1996-07-23 International Business Machines Corporation Hierarchical computer cache system
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
JP3706167B2 (ja) * 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
JP3775697B2 (ja) * 1995-12-22 2006-05-17 大日本印刷株式会社 携帯可能情報記憶媒体
JP3791956B2 (ja) * 1996-04-25 2006-06-28 シャープ株式会社 不揮発性半導体記憶装置の検査方法
JP3755626B2 (ja) * 1997-07-23 2006-03-15 富士電機ホールディングス株式会社 不揮発性記憶媒体のデータ書込方法
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6223290B1 (en) * 1998-05-07 2001-04-24 Intel Corporation Method and apparatus for preventing the fraudulent use of a cellular telephone
US6282700B1 (en) * 1998-05-21 2001-08-28 Hewlett Packard Company Mechanism for maintaining revisions of objects in flash memory
US6104638A (en) * 1999-02-26 2000-08-15 Hewlett-Packard Company Use of erasable non-volatile memory for storage of changing information
US6931381B1 (en) * 1999-03-11 2005-08-16 American Express Travel Related Services Company, Inc. Methods and apparatus for authenticating the download of information onto a smart card
US7203732B2 (en) 1999-11-11 2007-04-10 Miralink Corporation Flexible remote data mirroring
JP3793868B2 (ja) * 1999-11-25 2006-07-05 カシオ計算機株式会社 フラッシュメモリ管理装置及び記録媒体
FR2803080A1 (fr) * 1999-12-22 2001-06-29 St Microelectronics Sa Memoire flash programmable page par page
JP3627915B2 (ja) * 2000-05-30 2005-03-09 シャープ株式会社 ブートブロックフラッシュメモリ制御回路、およびそれを備えたicメモリカードと半導体記憶装置、並びにブートブロックフラッシュメモリの消去方法
US6694451B2 (en) * 2000-12-07 2004-02-17 Hewlett-Packard Development Company, L.P. Method for redundant suspend to RAM
US6564286B2 (en) * 2001-03-07 2003-05-13 Sony Corporation Non-volatile memory system for instant-on
US6591330B2 (en) 2001-06-18 2003-07-08 M-Systems Flash Disk Pioneers Ltd. System and method for flexible flash file
US6925008B2 (en) * 2001-09-29 2005-08-02 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device with a memory unit including not more than two memory cell transistors
US7716485B2 (en) * 2002-02-01 2010-05-11 Sca Ipla Holdings Inc. Systems and methods for media authentication
US7103718B2 (en) * 2002-09-03 2006-09-05 Hewlett-Packard Development Company, L.P. Non-volatile memory module for use in a computer system
US20040083334A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for managing the integrity of data in non-volatile memory system
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US7526599B2 (en) * 2002-10-28 2009-04-28 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
US8412879B2 (en) * 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
US20040117414A1 (en) * 2002-12-17 2004-06-17 Capital One Financial Corporation Method and system for automatically updating operating systems
US7085909B2 (en) * 2003-04-29 2006-08-01 International Business Machines Corporation Method, system and computer program product for implementing copy-on-write of a file
US7269732B2 (en) * 2003-06-05 2007-09-11 Sap Aktiengesellschaft Securing access to an application service based on a proximity token
US20050010764A1 (en) * 2003-06-26 2005-01-13 International Business Machines Corporation System and method for securely transmitting, and improving the transmission of, tag based protocol files containing proprietary information
DE10340236B4 (de) * 2003-08-29 2006-06-01 Infineon Technologies Ag Anordnung mit einer Datenverarbeitungseinrichtung und einem Speicher
JP4242245B2 (ja) * 2003-10-06 2009-03-25 株式会社ワークビット フラッシュrom制御装置
JP2005258851A (ja) * 2004-03-12 2005-09-22 Renesas Technology Corp メモリカード
US7149111B2 (en) 2004-12-17 2006-12-12 Msystems Ltd. Method of handling limitations on the order of writing to a non-volatile memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write

Also Published As

Publication number Publication date
WO2006080014A3 (en) 2009-09-03
US8341371B2 (en) 2012-12-25
KR20070107689A (ko) 2007-11-07
WO2006080014A2 (en) 2006-08-03
US20070220197A1 (en) 2007-09-20
JP2008537192A (ja) 2008-09-11
JP4926982B2 (ja) 2012-05-09

Similar Documents

Publication Publication Date Title
KR100926267B1 (ko) 플래시 메모리에서의 복사 동작을 관리하는 방법
US6571326B2 (en) Space allocation for data in a nonvolatile memory
US7734862B2 (en) Block management for mass storage
US9032134B2 (en) Methods of operating a memory system that include outputting a data pattern from a sector allocation table to a host if a logical sector is indicated as being erased
US6865658B2 (en) Nonvolatile data management system using data segments and link information
US6567307B1 (en) Block management for mass storage
KR100324028B1 (ko) 비휘발성 메모리에서 파일의 연속 중복기재를 수행하는 방법
KR100526188B1 (ko) 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
US7934072B2 (en) Solid state storage reclamation apparatus and method
US8949515B2 (en) Storage device and memory controller
US20130138873A1 (en) Memory systems
JP2002508862A (ja) フラッシュメモリ内のブロックにおける移動セクタ
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
KR20080066592A (ko) 호스트 디바이스 및 메모리 시스템
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
US8819332B2 (en) Nonvolatile storage device performing periodic error correction during successive page copy operations
US20100180072A1 (en) Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program
JP2006244017A (ja) データコピー方法
US20220164135A1 (en) Apparatus, method and computer program for managing memory page updates within non-volatile memory

Legal Events

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

Payment date: 20121019

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131017

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141021

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151012

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee