KR100661681B1 - 메모리 상태를 처리하는 장치 및 방법 - Google Patents

메모리 상태를 처리하는 장치 및 방법 Download PDF

Info

Publication number
KR100661681B1
KR100661681B1 KR1020057022062A KR20057022062A KR100661681B1 KR 100661681 B1 KR100661681 B1 KR 100661681B1 KR 1020057022062 A KR1020057022062 A KR 1020057022062A KR 20057022062 A KR20057022062 A KR 20057022062A KR 100661681 B1 KR100661681 B1 KR 100661681B1
Authority
KR
South Korea
Prior art keywords
page
generation information
pages
determined
data
Prior art date
Application number
KR1020057022062A
Other languages
English (en)
Other versions
KR20060023128A (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 KR20060023128A publication Critical patent/KR20060023128A/ko
Application granted granted Critical
Publication of KR100661681B1 publication Critical patent/KR100661681B1/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
    • 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
    • G11C16/3436Arrangements for verifying correct programming or erasure

Landscapes

  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

불완전한 데이터 기록 또는 삭제로 인해 발생하는 메모리의 상태를 처리하는 장치를 제공하되, 메모리는 다수의 페이지(10a, ..., 10e)에 구성된 메모리 셀을 포함하고 각 페이지(10a, ..., 10e)는 페이지의 프로그래밍 시간을 나타내는 생성 정보들을 포함한다. 본 장치는 다수의 페이지(10a, ..., 10e)의 생성 정보들로부터 생성 정보를 판단하여 판단된 생성 정보를 확보하되, 판단된 생성 정보는 가장 오래된 프로그래밍 시간이 아닌 다수의 페이지(10a, ..., 10e)의 프로그래밍 시간을 나타낸다. 또한 본 장치는 다수의 페이지로부터 불일치를 포함하는 페이지(10a, ..., 10e)를 판단하여 판단된 페이지(10a, ..., 10e)를 확보하는 페이지 판단 수단(24)을 포함한다. 본 장치는 다수의 페이지(10a, ..., 10e)로부터 후속 페이지(10a, ..., 10e)를 선택하는 선택 수단(26), 후속 페이지(10a, ..., 10e)를 표시하는 표시 수단(30)을 더 포함하여 표시된 페이지(10a, ..., 10e)를 확보하고, 판단된 생성 정보에 기초하여 새로운 생성 정보를 제공하는 제공 수단(22)을 또한 포함한다. 본 장치는 표시된 페이지(10a, ..., 10e)로부터 데이터를 판독하는 판독 수단(28) 및 표시된 페이지(10a, ..., 10e)로부터 판독된 데이터와 새로운 생성 정보를 판단된 페이지(10a, ..., 10e)에 기록하는 기록 수단(30)을 더 포함한다.

Description

메모리 상태를 처리하는 장치 및 방법{DEVICE AND METHOD FOR TREATING A STATE OF A MEMORY}
본 발명은 다수 페이지에 구성된 메모리 셀을 포함하는 메모리의 불완전한 데이터 기록 또는 삭제로 인한 상태를 처리하는 장치 및 방법에 관한 것으로 메모리는 특히 UCP EEPROM(uniform channel programming electrically erasable programmable read only memory)이다.
EEPROMs(electrically erasable programmable read only memories)는 비활성(non-volatile) 방식으로 또는 전원을 끈 후에도 데이터를 저장하기 위해 여러 어플리케이션에서 사용되고 있다. EEPROMs의 세부 항목에는 UCP EEPROM이 있다. 칩 면적을 절약하고 그로 인해 제조 원가를 절감하기 위하여, UCP EEPROM에서는 무엇보다 비트/바이트(bit/byte) 스위치를 생략한다. 메모리는 페이지로 구성된다. 한 페이지는 다수의 바이트 또는 워드(words)로 이루어지며, 1워드는 예컨대, 32비트를 포함한다. 한 페이지는 예컨대, 64 바이트로 이루어진다. UCP의 개념은 그 정의대로 각각의 비트나 바이트가 페이지에서 개별적으로 삭제 즉, 예컨대 0으로 설정될 수 없다는 것이다. 각각의 비트나 바이트를 프로그래밍하는 것도 제한된다. 그 대신 프로그래밍과 삭제는 페이지 단위로 수행된다. 즉, 페이지의 모든 비트는 병렬로 또한 동시에 기록되거나 삭제된다. 이하에서 필요하다면 삭제할 때는 비트가 0으로, 프로그래밍할 때는 비트가 1로 설정된다고 가정한다.
단일 비트만을 변경할 때에도 페이지 전체를 삭제한 후 다시 프로그래밍 해야 한다는 단점이 칩 면적을 절약한다는 중요한 장점을 가로막고 있다. 페이지를 변경하기 위해서는 늦어도 삭제를 시작하기 전부터 최소한 기록을 완료한 후까지 버퍼링을 해야 한다. 이 버퍼링은 (활성) RAM(random access memory) 셀 영역에서 또는 (비활성) EEPROM 셀 영역에서도 발생한다. EEPROM 셀 영역의 버퍼링은 삭제나 기록 도중 정전되는 경우에도 버퍼링된 데이터를 잃어버리지 않는다는 장점이 있다.
다수의(예컨대 32) 페이지가 섹터로 결합되는 아키텍처가 일반적으로 사용되고 있다. 이 예에서, 섹터(S)는 페이지(P1, ..., P32)를 포함한다. 페이지를 삭제하기 전 버퍼링(비활성 버퍼링의 경우, EEPROM 프로그래밍 프로세스에 해당함)을 해야 하는 의무를 면하기 위해 후속의 페이지는 섹터에 추가되며, 이하 P0로 지칭한다. 추가한 페이지(P0)는 초기에는 삭제된 상태이다. 페이지(P1, ..., P32) 중의 하나를 변경하기 위해 변경사항을 포함한 데이터의 내용은 페이지(P0)로 프로그래밍된다. 이후, 이전(old) 페이지는 삭제되고 갱신된 데이터를 현재 포함하고 있는 페이지(P0)가 메모리로 매핑된다(mapped). 이후 삭제된 페이지는 페이지(P0)가 처음 차지한 역할을 맡게 된다. 각각의 삭제된 추가 페이지는 예비(spare) 페이지 로 지칭한다.
페이지를 변경하기 위한 상술된 프로그래밍 과정에 있어서, 섹터의 페이지는 혼합되어있다. 즉, 논리적 페이지와 물리적 페이지의 관계는 임의적(arbitrary)이며 프로그래밍 과정마다 변경된다. 물리적 페이지를 식별하고/하거나 논리적 페이지와 물리적 페이지의 관계를 보증하고/하거나 섹터의 메모리 주소 공간 내에 주소를 기억하기 위해, 각 페이지는 소위 맵 또한/또는 연관 블록을 형성하는 추가의 일부 비트를 포함한다. 이 연관 블록은 각 페이지에 맵 또한/또는 연관 주소를 포함한다. 이는 물리적 페이지가 어느 메모리 주소에 대응하는지를 나타낸다. 상기 수치적인 예를 고수한다면, 1 ~ 32의 정수 아니면 더 실행 가능하게는 0 ~ 31의 정수가 각 페이지의 연관 블록에 존재하고, 섹터의 메모리 공간 또한/또는 주소 공간에서 페이지의 위치를 나타낸다. 따라서, 하나의 삭제된 페이지 또한/또는 예비 페이지 및 32개의 데이터 페이지 또한/또는 섹터 내부에 데이터 내용을 포함하는 페이지가 존재한다.
32개의 데이터 페이지의 32개의 연관 블록을 살펴보면, 1~32 사이(보다 좋게는 0~31 사이)의 모든 정수를 정확히 한번씩 확인할 것이고 각 물리적 페이지가 어느 메모리 주소에 대응하는지가 분명해진다. 리셋(reset) 과정이나 전류 손실 또한/또는 정전 시에도 물리적 페이지와 메모리 주소와의 연관성을 잃어버리지 않기 위해 연관 블록은 비활성 메모리 셀을 포함한다. 연관 블록은 예컨대, 페이지의 다수의 EEPROM 셀에 집적된다.
또한, 상술한 UCP 개념에 있어 페이지의 각 프로그래밍 과정은 프로그래밍 과정의 대상이 아닌 페이지를 다소간 방해(disturb)한다. 따라서, 프로그래밍 과정은 또한 방해로 지칭된다. 각각의 방해는 메모리 셀의 아날로그 상태에 변경을 가져온다. 다수의 방해 이후 메모리 셀은 변경된 디지털 상태를 포함한다. 이는 저장된 정보의 손실 또한/또는 손상에 해당한다. 엄청난 수의 방해로 인한 결과를 방지하기 위해, 각 페이지에는 페이지 기록 시 타임스탬프(time stamp)가 제공된다. 타임스탬프는 페이지를 기록할 때 카운터(counter)의 현재 값이고, 카운터는 방해 카운터로도 지칭한다. 타임스탬프는 예컨대, 연관 블록 지점에 또는 내부에 놓인다. 페이지가 노화될 때 즉, 페이지가 더 많은 방해를 겪게 되면, 타임스탬프는 카운터의 현재 값에서 점점 더 멀어지게 될 것이다. 다시 말해, 현재 값은 현재 32개의 모든 타임스탬프 중 최대값과 같아진다. 페이지의 타임스탬프와 카운터의 현재 값 간의 차이가 미리 설정된 임계치를 초과할 때, 페이지는 과도한 노화과정(ageing)을 피하기 위해 다시 프로그래밍된다.
EEPROM에 저장된 정보 또는 데이터의 손실은 여러 가지 이유로 불리하다. 한편, 데이터 손실이 예상할 수 없고 자주 심각한 결과를 초래할 수 있기 때문에 대부분 그 자체로는 바람직하지 않다.
또한, 칩 카드 상의 EEPROM의 경우 데이터를 손실하면 예컨대, 기능이나 성능 특성의 원치 않는 작동이 일어날 수 있다. 또한, 데이터 손실은 예컨대 칩 카드의 암호화된 특성을 해독하기 위한 공격용으로 사용될 수 있다. 따라서, 어떤 집단은 칩 카드 상의 EEPROM의 데이터를 손실시키는데 관심이 있다.
프로그래밍 과정 도중 또한/또는 새로운 페이지를 기록하고 이어서 이전 페 이지를 삭제하는 도중 전류 공급 또한/또는 전원 공급을 반복해서 중단하는 것은 데이터 손실을 일으킬 수 있다. 이러한 개입을 접속 끊김(tearing)이라고도 한다. 접속 끊김은 두 가지 문제를 일으킬 수 있다.
A. 새로운 페이지를 기록하는 도중 또는 이전 페이지를 삭제하는 도중에 정전이 된다. 이로 인해 일부의 비트는 이미 적절한 방향으로 토글링되고/되거나(toggled) 이미 프로그래밍되고 있지만 다른 비트는 초기의 내용을 여전히 포함하고 있기 때문에 무효(invalid) 데이터를 포함하는 페이지가 나타나게 된다. 이는 예컨대, 오류 정정 코드(error correcting code)에 의해 탐지될 수 있다. 따라서, 무효 페이지는 삭제된다.
B. 새로운 페이지가 기록되고 난 후와 이전 페이지가 삭제되기 전 또한/또는 1로 프로그래밍될 새로운 페이지의 모든 비트가 0에서 1로 토글링되고 난 후와 1의 값으로 프로그래밍된 이전 페이지의 처음 비트가 1에서 0으로 토글되기 전에, 접속 끊김 현상은 발생한다. 그 결과, 페이지는 두 번 존재하고/하거나 두 개의 물리적 페이지가 그 연관 블록 내에 동일한 연관 주소를 포함한다. 이 경우, 두 페이지 중 하나가 바람직하게는, 타임스탬프에 의해 더 이전의 페이지로 식별된 페이지가 삭제된다.
새로운 페이지를 기록하는 도중 접속 끊김이나 정전이 발생하는 경우, 기록 동작은 나머지 페이지를 교란하는 방해를 생성한다. A에 기술한 바와 같이 불완전하게 기록됨에 따른 무효 페이지가 현재 삭제되는 경우, 변경되지 않은 데이터를 포함하는 이전 페이지는 보존되지만, 섹터는 기록 동작에 따라 증분된 (incremented) 타임스탬프가 있는 페이지를 포함하지는 않는다. 따라서 방해 정보는 칩의 남은 부분에 메모리 셀이라는 작고 축적 가능한 방해의 형태로 존재한다. 그러나, 증분된 방해의 수를 세는 불완전하게 기록된 새로운 페이지의 타임스탬프는 잃게 된다. 방해의 수에 관한 정보를 섹터에 도입하기 위하여, 섹터의 페이지의 타임스탬프 중 최대값에 관해 증분되는 타임스탬프는 후에 섹터의 어느 페이지든지 도입되어야 한다. 그러나, 공격자(attacker)가 그 순간 다시 전원 공급을 차단할 수 있다. 이 경우, 방해에 관한 정보는 치유가 불가능할 정도로 손실될 것이다. 이와 같이, 공격자는 시스템이 감지할 수 없이 다수의(어떤 수의) 방해를 섹터에 도입할 수 있다. 그 결과, 암호화된 기능을 해독하기 위한 공격에 사용될 수 있는 데이터가 손실된다.
본 발명의 목적은 데이터의 불완전한 기록이나 삭제로 인한 메모리의 상태를 처리하는 방법 및 장치를 제공하는데 있다.
본 목적은 청구항 1에 따른 장치 또는 청구항 3, 14 또는 15에 따른 방법에 의해 달성된다.
본 발명은 어떤 순간에도 방해에 관한 정보를 잃지 않기 위해 데이터의 불완전한 기록이나 삭제로 인한 메모리의 상태를 처리하고/하거나 메모리의 섹터를 회복한다는 생각에 기초를 둔다. 이를 위해, 접속 끊김(tearing) 서비스라 지칭되는 방법의 시작과 기타 지점(stations)은 기존의 페이지를 사후 프로그래밍함으로써 표시된다. 이렇게 함으로써 어느 순간에도 또한 다른 접속 끊김 서비스 이후에도 및 접속 끊김 서비스가 침입 받는 장소에서도 검출이 가능하다.
본 발명의 접속 끊김 서비스의 시점은 불일치(inconsistency)를 포함하는 페이지를 판단하는 것이다. 상술된 A의 경우는 무효 페이지 또한/또는 데이터의 내용과 오류 정정 코드 간의 불일치함을 포함하는 페이지이다. 상술한 B의 경우에 있어서, 불일치하는 페이지는 그 연관 블록 내 다른 페이지로 동일한 논리적 주소를 포함하지만, 동일한 타임스탬프에 비해 더 이전의 타임스탬프를 포함하는 페이지이다. 불일치를 포함하는 페이지는 이하에서 Pb로 나타낸다. A의 경우, 예컨대 가장 오래된 타임스탬프를 포함하는 기타 페이지가 선택되고 Pg로 나타낸다. B의 경우에, 동일한 연관 주소를 포함하는 두 페이지 중 더 최근의 페이지를 Pg로 나타낸다.
다음으로, 페이지(Pb)는 삭제된다. 그러나, 페이지(Pb)를 삭제하기 전 페이지(Pg)가 표시된다. 바람직하게는, 페이지(Pb)를 삭제한 후 페이지(Pg)는 한번 더 표시된다. 이후, 추가적인 방해 정보가 페이지(Pg)로 도입된다. 페이지(Pb)를 삭제한 후 대응하는 새로운 타임스탬프를 가지는 삭제된 페이지(Pb)로 방해에 관한 정보를 복사함으로써 페이지(Pg)에 도입한다. 이러한 복사 과정 후, 이전의 이중으로 표시된 페이지(Pg)가 삭제된다.
본 발명의 장점은 어느 순간에도 발생된 방해에 관한 정보를 잃어버릴 수가 없고 특히, 뜻하지 않는 또는 고의적으로 발생하는 정전에 의해서도 방해에 관한 정보를 잃어버릴 수가 없는 방식으로 섹터를 회복하는 것이다. 이는 다수의 접속 끊김이 발생하는 경우에도 또한 접속 끊김 서비스 도중 나타나는 다수의 접속 끊김에 대해서도 적용한다.
본 발명의 다른 이점은 상술된 UCP 개념과 양립할 수 있다는 것이다. 또한, 본 발명은 메모리의 셀 영역 또한/또는 섹터 및 그 페이지의 아키텍처를 변화시킬 필요가 없다.
본 발명은 장치 및 방법 또는 컴퓨터 프로그램으로 구현될 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 메모리의 개략적인 표현을 나타내고,
도 2a, 2b는 본 발명의 바람직한 실시예에 따른 방법의 개략적인 흐름도를 나타낸다.
이하에서, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 더 상세하게 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 메모리를 개략적으로 표현한 것이다. 메모리는 다수의 페이지(10a, 10b, 10c, 10d, 10e)로 이루어지고, 각각은 데이터를 저장하기 위해 동일한 수의 메모리 셀을 포함한다. 즉, 메모리는 다수의 페이지(10a, ..., 10e)에 구성된 다수의 메모리 셀을 포함한다. 각 페이지(10a, ..., 10e)는 데이터 및/또는 정보를 저장하기 위해 데이터부(12)를 포함한다. 데이터부(12)는 메모리 외부에 배열되지만 가능한 한 동일 칩 상의 회로, 예컨대 프로세서에 의해 기록되고 판독될 수 있다. 또한, 메모리의 메모리 주소와 물리적 페이지(10a, ..., 10e)의 연관성을 규정하는 연관 주소를 저장하기 위해 각 페이지(10a, ..., 10e)는 연관 블록(14)을 포함한다. 또한, 각 페이지(10a, ..., 10e)는 표시(marking) 비트를 저장하기 위해 적어도 하나의, 바람직하게는 두개의 메모리 셀을 가지는 표시부(16)를 포함한다. 각 페이지(10a, ..., 10e)는 타임스탬프를 저장하기 위해 타임스탬프 메모리부(18)를 더 포함한다.
제 1 예로, 도시된 바와 같이 메모리가 다섯 페이지(10a, ..., 10e)를 포함한다고 가정한다. 각 페이지(10a, ..., 10e)의 데이터부(12)가 8개의 열(row)을 포함하게 하되, 각각은 8비트 또는 1바이트를 포함한다. 연관 블록(14), 표시부(16) 및 타임스탬프 메모리부(18)는 9번째 열에 위치한다. 일반적인 동작 모드에서, 데이터는 페이지(10a, ..., 10e) 중 네 페이지의 데이터부(12)에 저장된다. 이들 네 페이지의 데이터부(12)는 섹터의 주소부의 주소와 연관된다. 페이지(10a, ..., 10e) 중 후속의 페이지는 비어있다. 그 데이터부(12)는 섹터 주소부의 주소 중 어느 것에도 연관되지 않는다. 데이터를 저장하는 페이지는 또한 데이터 페이지로 지칭하고, 비어있는 페이지는 예비(spare) 페이지로 지칭한다. 이하에 설명한 바와 같이, 다섯 개의 물리적 페이지 중 상이한 페이지는 메모리 동작 도중 상이한 때 이루어진 예비 페이지일 것이다. 즉, 그 때까지 데이터 페이지였던 페이지는 어떤 사건이 일어난 경우 삭제됨에 따라 예비 페이지가 된다. 반면 이전의 예비 페이지는 기록됨으로써 데이터 페이지가 된다.
각 페이지는 데이터 이외에 연관 주소, 타임스탬프 및 표시 비트를 포함한다. 연관 주소는 데이터부(12)와 그 메모리 셀을 주소부의 주소 또한/또는 섹터의 주소공간과 독특하게 연관시키기 위한 기능을 한다.
타임스탬프는 기록할 때 또한/또는 페이지에 기록할 때 방해 카운터 또한/또는 카운터의 준위(level)를 나타내는 숫자이다. 카운터는 섹터의 모든 기록 동작에 대해 증가한다. 카운터의 현재값과 페이지의 타임스탬프 간의 차이는 페이지가 마지막으로 기록된 이후 기록 동작을 몇 번 경험했는지를 나타낸다. 또한, 상술한 바와 같이 섹터의 각 기록 동작은 기록 동작과 직접적인 관련이 없는 섹터의 페이지를 방해하기 때문에, 마지막으로 페이지가 기록된 이후의 기록 동작 수가 기설정된 임계치를 초과할 때, 페이지는 다시 기록되어야 한다.
전력이 메모리에 공급되는 동안, 카운터의 값은 바람직하게는 휘발성 메모리에 저장되고 각 기록 동작에 대해 섹터에 증분된다. 정전 후, 휘발성 방식으로 저장된 카운터의 값은 잃게 된다. 따라서 전원을 켠 후 처음으로 할 일은 섹터의 페이지 중 가장 높은 값의 타임스탬프를 판단하는 것이다. 이 가장 높은 타임스탬프는 이후 카운터에 시작값(starting value)으로 로딩된다.
데이터 페이지가 0과는 상이한 최소한 한 개의 타임스탬프를 포함하기 때문에, 0이외의 값을 포함한 메모리 셀로 이루어지지 않은 페이지는 예비 페이지로 명백하게 식별될 수 있다. 따라서 예비 페이지는 기타 방식으로 표시되거나 식별될 필요가 없다.
연관 주소는 네 개의 데이터 페이지의 독특한 주소지정을 위해 2비트를 포함해야 한다.
또한, 표시부(16)가 두개의 표시 비트를 전부 저장하기 위해 두개의 메모리 셀을 포함하도록 한다. 따라서 연관 블록(14) 및 표시부(16)는 5비트를 포함하므로 하나의 열에 수용 가능하다. 타임스탬프를 저장하기 위한 메모리부는 메모리의 수명 내에서 모든 카운터 값을 위한 메모리이면 충분하도록 바람직하게는 큰 것으로 선택한다. 예컨대, EEPROM은 페이지 당 적어도 104~106의 저장 연산에서 대체로 오류 없이 동작한다. 섹터의 저장 연산 중 많아야 절반 정도가 특정 페이지로 방향 설정될 수 있기 때문에, 섹터는 안전상의 이유로 오동작(malfunction)을 방지하기 위해 각각 2 · 104 또는 2 · 106의 카운터 준위에서 비활성화(deactivated)되어야 한다. 그러므로 15 또는 21 비트가 각각 방해 카운터 값 또는 타임스탬프를 저장하기 위해 필요하다.
따라서, 각 페이지(10a, ..., 10e)는 모두 8비트의 11개 열을 포함하고, 8개의 열은 상술한 바와 같이 데이터부(12)와 연관되고 연관 블록(14)과 표시부(16)는 9번째 열에 위치한다. 페이지 당 104번 저장 연산을 하는 평균 예상 수명의 경우, 10번째와 11번째 열에 타임스탬프를 포함한다. 페이지 당 106번 저장 연산을 하는 평균 예상 수명의 경우, 연관 블록(14)과 표시부(16)가 차지하지 않는 9번째 열의 비트는 이후 3비트의 타임스탬프를 포함한다.
다섯 페이지(10a, ..., 10e) 중 5번째 페이지는 일반적인 동작 모드 시에 비어있고 예비 페이지로서의 기능을 한다. 네 개의 데이터 페이지 중 한 페이지 안의 데이터가 갱신되고/되거나 변경될 경우, 변경될 페이지의 연관 주소 및 새로운 타임스탬프는 예비 페이지에 기록된다. 다음으로 이전 데이터의 내용을 포함하는 페이지는 삭제되므로 새로운 예비 페이지가 된다.
다음의 수치 예에서, 섹터는 33개의 페이지(10a, ..., 10e)를 포함하며, 32개의 페이지는 연관 블록(14)에 저장된 연관 주소에 의해 섹터의 주소부와 각기 연관된다. 33번째 페이지는 일반적인 동작 모드에서 즉, 데이터 페이지 중 한 페이지의 데이터 내용이 그 순간 변경되고 있지 않는 한 빈 페이지이거나 예비 페이지이다. 이 수치 예에서, 각 페이지(10a, ..., 10e)의 데이터부(12)가 16개의 열에 64바이트를 포함하게 하고, 각 열은 4바이트를 포함하게 한다. 연관 블록(14)은 0~31 사이의 주소를 저장하기 위해 5비트를 포함함으로써 33개 페이지(10a, ..., 10e) 중 32개의 데이터 페이지 각각은 독특하게 주소지정할 수 있다. 표시부(16)는 두개의 표시 비트를 저장하기 위해 2비트를 다시 포함한다. 이 모든 8비트는 바람직하게는 각 페이지(10a, ..., 10e)의 17번째 열 내부에 위치한다. 타임스탬프는 17번째 열의 후속 비트에 저장된다.
섹터는 페이지(10a, ..., 10e) 이외에도 페이지(10a, ..., 10e)의 생성 정보들로부터 생성 정보를 판단하는 수단(20)을 포함한다. 이러한 생성 정보는 바람직하게는 기언급된 타임스탬프를 포함한다. 페이지는 페이지의 각 기록에 대해 숫자의 형태로 페이지에 표현되는 타임스탬프를 포함한다. 타임스탬프는 페이지를 기 록하는 순간의 카운터의 현재값이며, 페이지를 기록할 때마다 증분된다. 리셋 또는 전원을 켠 후, 생성 정보를 판단하는 수단(20)은 페이지(10a, ..., 10e)의 타임스탬프 중 가장 높은 값의 타임스탬프 및/또는 가장 큰 값을 가지는 타임스탬프를 판단한다. 이를 위해, 수단(20)은 모든 페이지(10a, ..., 10e)의 타임스탬프 또는 택일적으로 모든 데이터 페이지(10a, ..., 10e)의 타임스탬프를 판독하고 그 최대값을 형성한다.
페이지(10a, ..., 10e)의 판단된 생성 정보 및/또는 판단된 최대값의 타임스탬프는 판단된 생성정보에 기초하여 새로운 생성 정보를 제공하기 위해 제공 수단(22)으로 전달된다. 제공 수단(22)은 수단(20)으로부터 판단된 타임스탬프를 수신하고 증분시킨다. 이후 증분된 타임스탬프는 차후의 페이지 기록을 위한 새로운 생성 정보로 유용하다.
페이지를 판단하는 수단(24)은 페이지(10a, ..., 10e) 중 불일치를 포함한 페이지를 판단하기 위해 설계된다. 불일치는 페이지의 데이터 내용과 오류 정정 코드 사이의 모순(contradiction)일 수 있다. 이러한 모순은, 페이지의 일부 비트가 이미 프로그램되었고/되었거나 삭제되었지만 다른 비트는 초기 상태에 관해 여전히 변경되지 않은 페이지의 이전의 불완전한 기록이나 삭제로 인해 발생한다.
UCP EEPROM에 있어서, 페이지 기록 시 논리값 1(logical 1)을 가질 비트는 모두 병렬로 또한 동시에 설정된다. 또한 삭제 시 페이지의 모든 비트는 삭제되고/되거나 병렬로 또는 동시에 논리값 0으로 설정된다. 실제로, 메모리 셀의 기록이나 삭제는 지속적인 과정으로 예컨대, 부유 게이트(floating gate)의 전위 (potential)는 제 1 이진 문자(binary character)를 나타내는 제 1 상태로부터 제 2 이진 문자를 나타내는 제 2 상태로 계속해서 전달된다. 장치의 산란현상(scattering), 통계적 변동특성(statistical fluctuations) 등으로 인해, 제 1 이진 문자를 여전히 나타내는 상태와 제 2 이진 문자를 이미 나타내는 상태 사이의 전이는 정확한 예측이 불가능한 시점에 발생한다. 따라서 실제, 다수의 메모리 셀이 병렬로 또한 동시에 프로그래밍되거나 삭제되는 경우, 모든 메모리 셀에 있어 두 상태 간의 전이는 완전 동시에 발생하지는 않는다. 전원 공급을 중단함으로써, 저장이나 삭제 과정은 언제라도 중단될 수 있다. 이는 일부의 메모리 셀 및/또는 일부의 비트가 여전히 이전 값을 포함하는 반면, 다른 부분의 비트는 이미 새로운 값을 포함하고 있다는 상술된 상태를 일으킨다.
페이지 판단 수단(24)에 의해 인지되고/되거나 탐지된 페이지의 다른 불일치함은 두 페이지의 연관 주소의 일치이다. 동일한 연관 주소와 더 이전의 또한/또는 더 작은 타임스탬프를 포함하는 두 페이지 중 한 페이지는 불일치한 것으로 판단된다. 이러한 동일 연관 주소를 포함한 두 페이지가 있는 섹터의 상태는 예컨대, 갱신된 데이터 내용을 포함한 페이지를 늦게 기록하는 순간 또는 이전 데이터 내용을 포함한 페이지를 빨리 삭제하는 순간 정전되거나 전원이 차단될 때, 발생할 수 있다. 이 경우, 두 페이지는 동일한 연관 주소를 포함할 수도 있지만, 두 페이지 중 한 페이지의 내용이 페이지의 오류 정정 코드와 모순될 수도 있다. 이때, 페이지 판단 수단은, 페이지가 보다 최근 혹은 보다 오래된 타임 스탬프를 갖는지에 무관하게 내용이 오류 정정 코드와 불일치하는 페이지가 되는 것인지를 판정하 도록 설계된다.
선택 수단(26)은 페이지들(10a, ...10e) 중의 또 다른 한 페이지를 선택하도록 설계된다. 동일한 연관 어드레스를 갖는 두 페이지의 경우, 두 페이지 중 불일치하지 않는 페이지가 선택된다. 기타의 경우에는 다른 페이지가 선택된다. 이러한 경우 바람직하게는, 선택 수단(26)은 가장 오래된 페이지(10a, ..., 10e) 또한/또는 가장 오래된 타임스탬프를 포함하는 페이지(10a, ..., 10e)를 선택한다.
또한 더 바람직하게는 선택 수단(26)은 제 1 표시 비트를 설정함으로써 선택된 페이지를 표시하도록 고안된다.
판독 수단(28)은 페이지(10a, ..., 10e)의 내용을 판독한 후 휘발성 메모리에 보관(deposit)하도록 고안된다. 페이지(10a, ..., 10e)의 모든 비트에 대해 판독과 보관은 대응하는 수의 병렬의 비트 라인을 통해 병렬로 또한 동시에 수행된다. 바람직하게는 데이터부(12)의 내용과 연관 블록(14)의 내용은 페이지(10a, ..., 10e)로부터 중간(intermediate) 메모리로 복사된다.
기록 수단(30)은 중간 메모리로부터 페이지(10a, ..., 10e) 중 한 페이지로 데이터를 기록하고/하거나 복사하도록 고안된다. 따라서 기록 수단(30) 및 판독 수단(28)은 동일한 중간 메모리를 이용한다. 바람직하게는, 페이지(10a, ..., 10e)의 모든 비트, 즉 데이터부(12)의 데이터와 연관 블록(14)의 연관 주소, 표시부(16)의 표시비트 및 타임스탬프는 동시에 기록된다.
수단(20), 제공 수단(22), 페이지 판단 수단(24), 선택 수단(26), 판독 수단(28) 및 기록 수단(30)은 섹터와 확고하게 연관되므로 섹터의 수에 따라 기억 장치 내부에 다수 존재하게 된다.
수단들은 택일적으로 기억 장치의 여러 섹터 중 하나 또는 모든 섹터 중 하나와 가변적으로 연관될 수 있다.
다음으로, 도 1에 관해 상술된 본 발명의 메모리의 동작을 도 2a에 관련하여 더 상세히 설명한다. 관계가 있는 두 페이지에 대해 기술되는 단계의 결과를 도 2b에 나타낸다.
전원이 켜질 때마다, 수단(20)은 모든 페이지(10a, ..., 10e)의 타임스탬프를 판독하고 가장 최근의 타임스탬프 또한/또는 가장 높은 수치를 갖는 타임스탬프를 판단한다. 택일적으로 판단되는 것이 가장 최근의 타임스탬프가 아니라도 두 번째로 최근인 또는 그 외의 타임스탬프이다. 그러나 바람직하게는 판단되는 것이 페이지(10a, ..., 10e)의 가장 오래된 프로그래밍 시간을 나타내는 생성 정보 또한/또는 타임스탬프는 아니다.
또한 매번 전원을 킨 후, 페이지 판단 수단(24)은 가장 최근의 타임스탬프를 판단하기 전이나 후 페이지(10a, ..., 10e) 중 하나가 불일치를 포함하고/하거나 필요한 경우 불일치하는 페이지를 판단하는지의 여부를 판단한다. 상술한 바와 같이 불일치하는 페이지는 내용과 오류 정정 코드 간의 모순을 포함하는 페이지이거나 동일한 표시 주소를 포함하는 두 페이지 중 더 오래된 페이지이다.
다음 페이지는 페이지(10a, ..., 10e)로부터 즉, 동일 표시 주소를 지닌 두 페이지가 존재하는 경우 불일치하지 않는 페이지로부터 선택되며 다르게는 불일치하는 페이지가 아닌 또한 바람직하게는 가장 오래된 페이지(10a, ..., 10e)가 아닌 어떤 페이지(10a, ..., 10e)로부터 선택된다.
불일치함을 포함하는 판단된 페이지는 이하에서 Pb로 나타내고, 다음의 또한/또는 선택되는 페이지는 Pg로 나타낸다.
단계(110)에서, 후속 페이지(Pg)는 표시 비트를 설정함으로써 표시된다. 표시 비트로 사용하기에 바람직한 비트는 표시부의 비트이거나 다르게는 연관 블록(14)에서 미사용된 비트 또는 페이지(Pg)의 이전에 미사용된 다른 비트이며, 일반적인 동작에서는 늘 삭제된 상태이고/이거나 0의 값을 가지며 본 명세서에 기술된 접속 끊김 서비스에만 사용된다. 표시 비트는 사후 프로그래밍되므로 1의 값에 관련 있고/있거나 1의 값으로 설정된다. 페이지의 기타 모든 비트는 동일한 값을 유지한다. 또한 설정된 표시 비트는 접속 끊김 플래그(tearing flag; TF1)로 지칭된다. 접속 끊김 플래크(TF1)에 의해 표시되는 페이지는 Pg *로 지칭한다.
이러한 실행이 UCP 개념에서는 가능하다. 특히, 각 비트는 UCP EEPROM에서도 1의 값으로 설정될 수 있다. 이를 위해, 설정될 비트의 위치에는 1을 또한 기타 위치에는 0을 포함한 마스크가 사용된다. 택일적으로, 후속 페이지의 맵(map)이 마스크로 사용되지만 여기에는 표시 비트가 설정된다. 이후 마스크는 표시될 다음 페이지로 복사된다. 마스크의 0은, 페이지의 해당 비트가 이전에 0이나 1을 포함했는지의 여부에 관계없이 페이지의 해당 비트의 변화를 가져오지 않는다. 마스크의 1은 페이지의 해당 비트 설정을 야기한다.
다음으로, 판단되고/되거나 불일치하는 페이지(Pb)는 단계(120)에서 삭제된다.
불일치하는 페이지(Pb) 삭제 후의 통상적인 접속 끊김과 상이한 전원 장애가 불완전한 기록 동작 정보로 나타날 수 있지만, 이로 인해 상술된 접속 끊김 서비스는 수행되어야 하고, 서비스를 놓치면 이후 섹터는 접속 끊김 서비스 중에 설정된 표시 비트 또한/또는 중단 플래그(TF1) 신호가 존재한다. 전원이 다시 켜진 후 접속 끊김 서비스가 계속되는 본 발명의 단계를 이하 더 상세히 설명한다.
불일치하는 페이지(Pb)를 삭제 후, 표시된 페이지(Pg *)는 단계(130)에서 다음의 표시 비트를 설정함으로써 다시 한번 표시된다. 접속 끊김 플래그(TF1)와 유사한 후속의 미사용된 비트는 후속의 표시 비트로 사용된다. 또한 이 후속의 표시 비트는 후속의 접속 끊김 플래그(TF2)로 지칭한다. 또한 후속의 표시 비트는 일반 동작에서는 삭제되고 불일치하는 페이지(Pb) 삭제(120) 후의 접속 끊김 서비스 도중에만 설정된다. 표시 비트 또한/또는 접속 끊김 플래그(TF1) 및 후속의 표시 비트 또한/또는 접속 끊김 플래그(TF2)로 표시되는 페이지는 Pg **로 지칭한다.
다음 방법의 단계(140)에서는, 이중으로 표시된 페이지(Pg **)가 삭제된 페이지로 즉, 이전의 페이지(Pb)로 복사된다. 여기에서, 데이터부(12) 및 연관 블록(14)의 내용은 복사되지만, 표시부(16)의 표시 비트는 복사되지 않는다. 또한, 제 공 수단(22)에 의해 제공되는 증분된 타임스탬프는 단계(140)에서 동시에 이전 페이지에 기록된다. 증분된 타임스탬프를 포함하는 이중 표시 페이지(Pg **)는 분해방정식(resolvent) resolv(Pg **)로 지칭한다.
복사 단계(140)는 이중 표시된 페이지(Pg **)의 내용을 판독하고 (휘발성) 중간 메모리에 보관한 후 이 내용을 중간 메모리로부터 이전 페이지(Pb)로 기록함으로써 바람직하게 수행된다. 표시 비트를 삭제하고 새로운 타임스탬프를 도입하는 것은 판독 후와 기록 전에 중간 메모리를 조작함으로써(manipulating) 용이하게 수행된다.
기록으로 인한 방해 현상에 대한 정보는 이후 증분된 타임스탬프에 의해 섹터에 도입된다.
단계(150)에서는 이중 표시된 페이지(Pg **)가 이하 삭제된다. 따라서, 새로운 예비 페이지가 생성되고 섹터의 상태는 다시 유효하게 된다.
또한 비트를 리셋하고/하거나 메모리 셀의 값을 1에서 0으로 하는 과정을 허용하는 다른 형태의 메모리 경우, 프로그래밍 시 불일치하는 페이지(Pb)를 삭제하는 단계(120), 이후 표시하는 단계(130) 및 이중 표시된 페이지(Pg **)를 삭제하는 단계(150)는 바람직하게는 생략되고/되거나 건너뛴다.
불일치하는 페이지(Pb)를 삭제하는 단계(120) 도중 정전이 되면, 이는 섹터가 표시된 페이지(Pg *)를 포함한다는 사실에 의해, 전원이 다시 켜지고 난 후 감지될 수 있다. 이 경우, 본 발명의 메모리는 접속 끊김 서비스를 그대로 지속한다. 먼저, 가장 최근의 시간, 그 다음 최근의 시간 또는 다른 프로그래밍 시간 역시 나타내는 페이지(10a, ..., 10e)의 생성 정보들의 생성 정보는 다시 판단된다. 또한, 불일치를 포함하는 페이지(Pb)가 판단된다. 다음으로, 접속 끊김 서비스는 상술된 바와 같이 불일치하는 페이지(Pb)를 삭제하는 단계(120)부터 계속된다.
도 2a에 나타낸 흐름도는, 상술된 방법의 단계 이외에도 접속 끊김 서비스가 복사 단계(140) 도중 또는 삭제 단계(150) 시작 시 다시 중단될 때(접속 끊김 서비스 도중에 접속 끊김) 수행되는 후속 방법의 단계를 포함한다. 삭제 단계(150)가 더 나중에 중단될 때, 메모리 셀의 일부가 또한/또는 이중 표시된 페이지(Pg **)의 비트가 이미 지워져 페이지의 내용과 그 오류 정정 코드 간에 모순이 생길 때, 본 방법은 두개의 표시 비트가 여전히 설정되어 있는 경우 전원이 다시 켜지고 난 후 이중 표시된 페이지(Pg **) 삭제를 그대로 계속함으로써 완료된다. 다르게는, 불완전하게 삭제되고 이전에 이중으로 표시된 페이지가, 상술된 방법 중 하나에 따라 완전한 접속 끊김 서비스를 새롭게 수행하기 시작할 것이다.
전원이 다시 켜진 후 이중 표시된 페이지(Pg **)가 판단되면, 본 방법은 다음과 같이 계속된다. 이중 표시된 페이지를 판단하기 전이나 후에, 바람직하게 페이지(10a, ..., 10e)의 가장 최근의 프로그래밍 시간을 나타내는 페이지(10a, ..., 10e)의 생성 정보들의 생성 정보는 상술한 방법에서와 같이 판단된다. 먼저, 분해 방정식(resolv(Pg **))의 프로그래밍이 완료된다. 즉, 이중 표시된 페이지(Pg **)가 페이지(Pg)로 다시 복사되는데, 상술한 바와 같이 우선 이중 표시된 페이지(Pg **)의 내용이 중간 메모리에서 판독된 후 페이지(Pb)로 기록된다. 바람직하게는 중간 메모리의 내용을 조작함으로써, 후속의 표시 비트 또한/또는 접속 끊김 플래그(TF2)는 삭제되고 새로운 타임스탬프가 삽입된다. 새 타임스탬프는 전원을 켠 후 판단되는 페이지(10a, ..., 10e)의 가장 최근 타임스탬프에 기초하고/하거나 이를 증분함으로써 확보된다.
다음으로, 이중 표시된 페이지(Pg **)가 단계(150)에서 삭제된다. 이후, 페이지(Pb)는 설정된 표시 비트(TF1)를 포함하는지의 여부(Pb = Pg * ?)를 점검한다. 상술된 일반적이고 방해받지 않는 접속 끊김 서비스가 끝난 후에는 해당되지 않는다. 따라서 접속 끊김 서비스는 상술한 바와 같이 완료된다.
그러나, 접속 끊김 서비스가 분해 방정식의 프로그래밍(160)을 완료함과 함 께 재개되는 경우, 페이지(Pb)는 일률적으로 표시된다(Pb = Pg *). 따라서, 표시 단계(130), 복사 단계(140) 또한 삭제 단계(150)를 교환되는 페이지(Pb, Pg)에 대해 반복한다. 이처럼 새롭게 반복하는 도중, 타임스탬프는 메모리 페이지의 방해 정보를 섹터에 도입하기 위해 다시 증분된다. 최악의 경우, 공격자는 이런 식으로 무한 루프 상태에 빠뜨릴 수 있다. 그러나 모든 방해의 수를 세기 때문에, 이는 문제되지 않는다.
상술한 실시예는 여러 관점에서 다양하게 변경될 수 있다. 예를 들어, 각각의 기록 동작으로 증분되거나 각각의 기록 동작으로 감쇠되는 타임스탬프 및/또는 방해 카운터가 사용될 수 있다. 또한 상술한 실시예는 해당 경우에 비트 및/또는 메모리 셀을 삭제할 때 1에서 0으로, 저장할 때 0에서 1로 설정된다고 가정하였다. 삭제된 메모리 셀이 1의 값을 포함하고 프로그래밍할 때 메모리 셀이 0의 값으로 설정되는 역방향의(reverse) 연관은 본 발명에 관해 같은 의미에 해당한다.
연관 블록(14), 표시부(16) 및 타임스탬프 기억부(18)는 바람직하게는 상술된 바와 같이 각 페이지 및 그 아키텍처(architecture)에 집적된다. 연관 블록(14) 또는 표시부(16) 또는 타임스탬프 기억부(18)는 택일적으로 페이지에 연관되지만, 각 메모리 셀로부터 공간적으로 분리되어 위치하거나 모든 페이지에 대해 섹터를 중심으로 일체화되어 있다.
본 발명은 UCP EEPROMs뿐 아니라 그 외 EEPROMs 또는 다른 유형의 메모리에도 적용 가능하다는 이점이 있다.
본 발명은 방법의 형태로 또한 장치나 컴퓨터 프로그램 형태로 구현된다. 본 발명의 방법을 실행하기 위해 프로그램 코드를 포함하는 컴퓨터 프로그램이 컴퓨터에서 작동될 때, 본 발명의 방법은 도 1에 관해 상술된 장치에 의하거나 장치를 사용하여 또한 다른 장치나 컴퓨터를 사용하여 수행될 수 있다.

Claims (18)

  1. 다수의 페이지(10a, ..., 10e)에 구성된 메모리 셀을 포함하는 메모리의, 불완전한 데이터 기록 또는 삭제로 인한 상태를 처리하되, 각 페이지는 상기 페이지의 프로그래밍 시간을 나타내는 생성 정보들과 각기 연관되며,
    상기 다수의 페이지(10a, ..., 10e)의 상기 생성 정보들로부터 생성 정보를 판단하여 판단된 생성 정보를 획득하되, 상기 판단된 생성 정보는 상기 다수의 페이지(10a, ..., 10e)의 가장 오래된 프로그래밍 시간이 아닌 프로그래밍 시간을 나타내는 수단(20);
    상기 다수의 페이지(10a, ..., 10e)로부터 불일치를 포함하는 페이지(Pb)를 판단하여 판단된 페이지(Pb)를 확보하는 페이지 판단 수단(24);
    상기 다수의 페이지(10a, ..., 10e)로부터 후속의 페이지(Pg)를 선택하여 선택된 페이지(Pg)를 확보하는 선택 수단(26);
    상기 선택된 페이지(Pg)를 표시하여 표시된 페이지(Pg *)를 확보하는 표시 수단(30);
    상기 판단된 생성 정보에 기초하여 새로운 생성 정보를 제공하는 제공 수단(22);
    상기 표시된 페이지(Pg *)로부터 데이터를 판독하는 판독 수단(28) 및
    상기 표시된 페이지(10a, ...,10e)로부터 판독된 상기 데이터와 상기 새로운 생성 정보를 상기 판단된 페이지(Pb)에 기록하는 기록 수단(30)을 포함하는
    장치.
  2. 데이터 및 페이지와 연관된 생성 정보를 저장하는 메모리 셀을 포함하는 다수의 페이지(10a, ..., 10e)와,
    제 1항에 따른 장치를 포함하는
    메모리.
  3. 다수의 페이지(10a, ..., 10e)에 구성된 메모리 셀을 포함하는 메모리의, 불완전한 데이터 기록 또는 삭제로부터 발생하는 상태를 처리하는 방법 - 각 페이지(10a, ..., 10e)는 상기 페이지(10a, ..., 10e)의 프로그래밍 시간을 나타내는 생성 정보들을 구비함 - 에 있어서,
    상기 다수의 페이지(10a, ..., 10e)의 상기 생성 정보들로부터 생성 정보를 판단하여 판단된 생성 정보를 확보하되, 상기 판단된 생성 정보는 상기 다수 페이지(10a, ..., 10e)의 가장 오래된 프로그래밍 시간이 아닌 프로그래밍 시간을 나타 내는 단계;
    상기 다수의 페이지(10a, ..., 10e)로부터 불일치를 포함하는 페이지(Pb)를 판단하여 판단된 페이지(Pb)를 확보하되, 상기 불일치는 데이터의 불완전 기록 또는 삭제로 인한 단계;
    상기 다수의 페이지(10a, ..., 10e)로부터 후속의 페이지(Pg)를 선택하여 선택된 페이지(Pg)를 확보하는 단계;
    상기 후속의 페이지(Pg)를 표시하여 표시된 페이지(Pg *)를 확보하는 단계(110);
    상기 판단된 생성 정보에 기초하여 새로운 생성 정보를 제공하는 단계;
    상기 표시된 페이지(Pg *)로부터 데이터를 판독하는 단계(140) 및
    상기 표시된 페이지(Pg *)로부터 판독된 데이터와 상기 새로운 생성 정보를 상기 판단된 페이지(Pb)에 기록하는 단계(140)를 포함하는
    방법.
  4. 제 3 항에 있어서,
    상기 판단된 생성정보는 상기 다수 페이지(10a, ..., 10e)의 가장 최근의 프로그래밍 시간을 나타내는
    방법.
  5. 제 3 항 또는 제 4 항에 있어서,
    상기 다수 페이지(10a, ..., 10e) 각각은 다수의 주소로부터 상기 페이지(10a, ..., 10e)와 연관된 주소를 저장하기 위한 주소 메모리 공간(14)을 포함하되,
    불완전한 기록이나 삭제에 의하지 않은 상기 메모리의 상태에서 상기 다수의 주소 각각은 상기 다수 페이지(10a, ..., 10e) 중 하나에만 연관되고,
    불일치를 포함하는 페이지(Pb)를 판단하는 상기 단계는, 데이터 내용이 그 오류 정정 코드와 일치하지 않는 페이지(Pb)나, 연관 주소가 더 최근의 프로그래밍 시간을 나타내는 생성정보를 포함하는 페이지(10a, ..., 10e)와 더 관련된 페이지(Pb)를 판단하는 단계를 포함하는
    방법.
  6. 제 3 항 내지 제 5 항 중 어느 한 항에 있어서,
    각 페이지(10a, ..., 10e)의 상기 생성 정보는 타임스탬프를 포함하되,
    상기 타임스탬프는 각 페이지(10a, ..., 10e)를 이전에 마지막으로 기록한 때의 기록 동작 수를 세기 위한 기록 동작 카운터의 준위를 나타내는
    방법.
  7. 제 3 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 선택된 페이지(Pg)를 표시하는 단계(110)가 상기 후속의 페이지(10a, ..., 10e)와 연관된 표시 비트를 설정하는 것을 포함하는
    방법.
  8. 제 3 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 표시된 페이지(Pg *)로부터 판독된 상기 데이터와 상기 새로운 생성 정보를 상기 판단된 페이지(Pb)에 기록하기에 앞서 상기 판단된 페이지(Pb)를 삭제하는 단계(120)를 더 포함하는
    방법.
  9. 제 8 항에 있어서,
    상기 판단된 페이지(Pb)를 삭제한 후(120)와 기록하기 전(140)에 상기 표시된 페이지(Pg *)를 표시(130)하여 이중으로 표시된 페이지(Pg **)를 확보하는 단계를 더 포함하는
    방법.
  10. 제 3 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 판독 단계는 상기 표시된 페이지(Pg *)에서 중간 메모리로 상기 데이터를 복사하는 단계를 포함하고,
    상기 새로운 생성 정보를 제공하는 단계는 상기 새로운 생성 정보를 상기 중간 메모리에 기록하는 단계를 포함하며,
    상기 표시된 페이지(Pg *)로부터 판독된 상기 데이터와 상기 새로운 생성 정보를 기록하는 단계는 상기 중간 메모리에서 상기 판단된 페이지(Pb)로 상기 판독된 데이터와 상기 새로운 생성 정보를 복사하는 단계를 포함하는
    방법.
  11. 제 10 항에 있어서,
    상기 데이터와 상기 새로운 생성 정보를 복사하는 단계(140)는 다수의 병렬 라인을 통해 상기 데이터와 상기 생성 정보를 병렬 전송하는 것을 포함하고, 상기 다수의 병렬 라인 중 하나는 상기 데이터와 상기 생성 정보의 각 비트와 연관되는
    방법.
  12. 제 3 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 표시된 페이지(Pg *; Pg **)로부터 상기 데이터를 판독한 후에 상기 표시된 페이지(Pg *; Pg **)를 삭제하는 단계(150)를 더 포함하는
    방법.
  13. 제 3 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 후속 페이지(Pg *)를 선택하는 단계는
    생성 정보가 상기 다수의 페이지(10a, ..., 10e) 중 가장 오래된 프로그래밍 시간을 나타내는 페이지(10a, ..., 10e)를 상기 선택된 페이지(Pg *)로 선택하는 단계를 포함하는
    방법.
  14. 다수의 페이지(10a, ..., 10e)에 구성된 메모리 셀을 포함하는 메모리의, 메모리의 페이지(Pb)를 불완전하게 삭제함으로 인해 발생하는 상태를 처리하는 방법 - 각 페이지(10a, ..., 10e)는 상기 페이지(10a, ..., 10e)의 프로그래밍 시간을 나타내는 생성 정보와 연관되며 표시비트를 포함함 - 에 있어서,
    표시 비트가 설정되는 페이지(Pg *)를 판단하는 단계;
    상기 다수의 페이지(10a, ..., 10e)의 상기 생성 정보들로부터 생성 정보를 판단하여 판단된 생성 정보를 확보하되, 상기 판단된 생성 정보는 상기 다수 페이지(10a, ..., 10e)의 가장 오래된 프로그래밍 시간이 아닌 프로그래밍 시간을 나타내는 단계;
    불일치를 포함하는 페이지(Pb)를 판단하여 판단된 페이지(Pb)를 확보하되, 상기 불일치는 상기 데이터의 불완전 삭제로 인한 단계;
    상기 판단된 생성 정보에 기초하여 새로운 생성 정보를 제공하는 단계;
    상기 불일치를 포함한 페이지(Pb)를 삭제하는 단계;
    상기 표시된 페이지(Pg *)로부터 데이터를 판독하는 단계 및
    상기 표시된 페이지(Pg *)로부터 판독된 데이터와 상기 새로운 생성 정보를 상기 불일치를 포함한 상기 판단된 페이지(Pg)에 기록하는 단계를 포함하는
    방법.
  15. 다수의 페이지(10a, ..., 10e)에 구성된 메모리 셀을 포함하는 메모리의, 불완전한 데이터 기록 또는 삭제로 인해 발생하는 상태를 처리하는 방법 - 각 페이지는 상기 페이지의 프로그래밍 시간을 나타내는 생성 정보들을 구비하고 각 페이지(10a, ..., 10e)는 상기 불완전한 기록이나 삭제를 나타내는 제 1 표시 비트와 제 2 표시 비트를 포함함 - 에 있어서,
    제 2 표시 비트가 설정되는 표시된 페이지(Pg **)를 판단하는 단계;
    상기 다수의 페이지(10a, ..., 10e)의 상기 생성 정보들로부터 생성 정보를 판단하여 판단된 생성 정보를 확보하되, 상기 판단된 생성 정보는 상기 다수 페이지(10a, ..., 10e)의 가장 오래된 프로그래밍 시간이 아닌 프로그래밍 시간을 나타내는 단계;
    불일치를 포함하는 페이지(Pb)를 판단하여 판단된 페이지(Pb)를 확보하되, 상기 불일치는 상기 데이터의 불완전 기록 또는 삭제로 인한 단계;
    상기 판단된 생성 정보에 기초하여 새로운 생성 정보를 제공하는 단계;
    제 2 표시 비트가 설정되는 상기 표시된 페이지(Pg **)로부터 데이터를 판독하는 단계(140);
    상기 표시된 페이지(Pg **)로부터 판독된 상기 데이터와 상기 새로운 생성 정보를 상기 판단된 페이지(Pb)에 기록하는 단계(140);
    상기 판단된 페이지(Pb)의 상기 제 1 표시 비트를 설정하는 단계(140);
    상기 새로운 생성 정보에 기초하여 후속의 새로운 생성 정보를 제공하는 단계;
    제 2 표시 비트가 상기 판단된 페이지(Pb)에 설정되는 상기 표시된 페이지(Pg **)로부터 판독된 상기 데이터를 기록한 후 또한 상기 제 1 표시 비트를 설정한 후 상기 판단된 페이지(Pb)로부터 데이터를 판독하는 단계(140);
    상기 판단된 페이지(Pb)로부터 판독된 상기 데이터 및 상기 새로운 후속의 생성 정보를 제 2 표시 비트가 설정된 상기 표시된 페이지(Pg **)로 기록하는 단계를 포함하는
    방법.
  16. 제 15 항에 있어서,
    제 2 표시 비트가 설정된 상기 표시된 페이지(Pg **)로부터 판독된 상기 데이터를 상기 판단된 페이지(Pb)로 기록한 후, 제 2 표시 비트가 설정된 상기 표시된 페이지(Pg **)를 삭제하는 단계(150)를 더 포함하는
    방법.
  17. 제 15 항 또는 제 16 항에 있어서,
    상기 판단된 페이지(Pb)로부터 판독된 상기 데이터를 제 2 표시 비트가 설정된 상기 표시된 페이지(Pg **)에 기록한 후 상기 판단된 페이지(Pb)를 삭제하는 단계를 더 포함하는
    방법.
  18. 컴퓨터에서 작동하는 경우에 제 3 항 내지 제 17 항 중 어느 한 항에 따른 방법을 수행하기 위한 프로그램 코드를 포함하는
    컴퓨터 프로그램.
KR1020057022062A 2003-05-20 2004-04-19 메모리 상태를 처리하는 장치 및 방법 KR100661681B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10322723A DE10322723B3 (de) 2003-05-20 2003-05-20 Vorrichtung und Verfahren zum Behandeln eines Zustands eines Speichers
DE10322723.7 2003-05-20

Publications (2)

Publication Number Publication Date
KR20060023128A KR20060023128A (ko) 2006-03-13
KR100661681B1 true KR100661681B1 (ko) 2006-12-26

Family

ID=32981334

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057022062A KR100661681B1 (ko) 2003-05-20 2004-04-19 메모리 상태를 처리하는 장치 및 방법

Country Status (5)

Country Link
US (1) US7328302B2 (ko)
EP (1) EP1625592B1 (ko)
KR (1) KR100661681B1 (ko)
DE (1) DE10322723B3 (ko)
WO (1) WO2004105042A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006009214B4 (de) 2006-02-28 2008-05-08 Infineon Technologies Ag Verfahren und Vorrichtung zum Schreiben in eine Zielspeicherseite eines Speichers
EP2003569B1 (en) * 2006-03-13 2010-06-02 Panasonic Corporation Flash memory controller
KR20100093885A (ko) 2009-02-17 2010-08-26 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
EP2495690B1 (en) * 2011-03-01 2015-05-13 Nxp B.V. Transponder and method for monitoring access to application data in the transponder
CN102609334B (zh) * 2012-01-09 2016-05-04 晨星软件研发(深圳)有限公司 非易失闪存擦除异常存储块修复方法和装置
US11556441B2 (en) * 2021-04-16 2023-01-17 EMC IP Holding Company LLC Data storage cluster with quorum service protection

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9307623D0 (en) * 1993-04-13 1993-06-02 Jonhig Ltd Data writing to eeprom
US5826001A (en) * 1995-10-13 1998-10-20 Digital Equipment Corporation Reconstructing data blocks in a raid array data storage system having storage device metadata and raid set metadata
US5715193A (en) * 1996-05-23 1998-02-03 Micron Quantum Devices, Inc. Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks
US6005810A (en) * 1998-08-10 1999-12-21 Integrated Silicon Solution, Inc. Byte-programmable flash memory having counters and secondary storage for disturb control during program and erase operations
US6304486B1 (en) * 1999-12-20 2001-10-16 Fujitsu Limited Sensing time control device and method
JP4037605B2 (ja) * 2000-12-04 2008-01-23 株式会社東芝 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法

Also Published As

Publication number Publication date
EP1625592B1 (de) 2008-06-11
DE10322723B3 (de) 2004-10-14
EP1625592A1 (de) 2006-02-15
WO2004105042A1 (de) 2004-12-02
KR20060023128A (ko) 2006-03-13
US20060218339A1 (en) 2006-09-28
US7328302B2 (en) 2008-02-05

Similar Documents

Publication Publication Date Title
KR100719380B1 (ko) 향상된 신뢰성 특성을 갖는 다치 플래시 메모리 장치 및그것을 포함한 메모리 시스템
JP4486938B2 (ja) メモリのページサイズおよび/またはブロックサイズとは異なるサイズを有するデータセクタを備えた不揮発性メモリシステムの処理技法
US5963970A (en) Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields
US6871259B2 (en) File system including non-volatile semiconductor memory device having a plurality of banks
US8046530B2 (en) Process and method for erase strategy in solid state disks
US8914702B2 (en) Bit error repair method and information processing apparatus
US20100077135A1 (en) Memory wear leveling method, system and device
US20010054129A1 (en) Method, system and computer program
US20110145483A1 (en) Semiconductor memory device and method of processing data for erase operation of semiconductor memory device
JPH02292798A (ja) フラッシュEEpromシステム
KR20040090418A (ko) 메모리장치
KR20000062616A (ko) 비휘발성 메모리에 데이터를 저장하는 방법
US9569354B2 (en) System and method to emulate an electrically erasable programmable read-only memory
JP2009211215A (ja) メモリシステム
US7328302B2 (en) Device and method for treating a state of a memory
JP5183662B2 (ja) メモリ制御装置及びメモリ制御方法
JP2008276832A (ja) 半導体記憶装置およびその駆動方法
EP1139210B1 (en) Method of logic partitioning of a nonvolatile memory array
US5473569A (en) Method for operating a flash memory
US7657795B2 (en) Method and apparatus for writing to a target memory page of a memory
JP2006221743A (ja) 記憶システムと半導体記憶装置の書き込み方法
CN101694636B (zh) 非易失性数据存储器数据更新备份系统及方法
US6950349B2 (en) Nonvolatile semiconductor memory having partial data rewriting function
CN103389943A (zh) 控制装置、存储装置及存储控制方法
JP2008251063A (ja) 記憶装置

Legal Events

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

Payment date: 20121207

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131206

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141212

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151211

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161209

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171208

Year of fee payment: 12