KR100870392B1 - 시스템 및 데이터 저장 방법 - Google Patents

시스템 및 데이터 저장 방법 Download PDF

Info

Publication number
KR100870392B1
KR100870392B1 KR1020027017586A KR20027017586A KR100870392B1 KR 100870392 B1 KR100870392 B1 KR 100870392B1 KR 1020027017586 A KR1020027017586 A KR 1020027017586A KR 20027017586 A KR20027017586 A KR 20027017586A KR 100870392 B1 KR100870392 B1 KR 100870392B1
Authority
KR
South Korea
Prior art keywords
data
word
flash memory
error correction
bit
Prior art date
Application number
KR1020027017586A
Other languages
English (en)
Other versions
KR20030011924A (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 KR20030011924A publication Critical patent/KR20030011924A/ko
Application granted granted Critical
Publication of KR100870392B1 publication Critical patent/KR100870392B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 마이크로프로세서(74), 데이터를 플래시 메모리 디바이스(71) 내부에 기록하기 위한 데이터 버스(75), 데이터를 상기 플래시 메모리 디바이스(71)로부터 판독하기 위한 데이터 버스(75)를 포함하는 시스템(70)에 관한 것이다. 상기 플래시 메모리 디바이스(71)는 오차 보정 인코더(72)와, 플래시 메모리(71)와, 오차 보정 디코더(73)와, 상기 오차 보정 인코더(72)와, 상기 플래시 메모리(71)와, 상기 오차 보정 디코더(73)를 상호접속하는 플래시 데이터 버스(75)를 포함한다. 데이터는, 상기 오차 보정 인코더(72)에 의해 처리될 시에, 상태 워드(51), 데이터 워드(52), 용장 워드(53)를 포함하는 워드로 변환된다.

Description

시스템 및 데이터 저장 방법{IMPROVED ERROR CORRECTION SCHEME FOR USE IN FLASH MEMORY ALLOWING BIT ALTERABILITY}
본 발명은 플래시 메모리 디바이스 분야에 관한 것이다. 특히, 본 발명은 플래시 메모리의 비트 변경(bit alterability)을 가능하게 하는 오차 보정 방식(error correction scheme)에 관한 것이다.
오늘날의 소비자 내장형 시스템 제품들은 통상적으로 그 제품의 필요한 특성을 지원하는 데 이용되는 세 개의 상이한 타입의 메모리 부분을 포함한다. 가령, 통상적인 셀룰러 전화에서는, 플래시 메모리 부분이 코드 저장을 위해 사용되고, SRAM은 스택 및 휘발성 데이터 저장부를 제공하며, 제 3 부분, 즉 EEPROM 디바이스는 자주 갱신되거나 변경되는 데이터를 위해 비휘발성 저장부를 제공한다. 이 세 가지 데이터 콘텐츠 그룹은 제품의 타입에 따라 다른 레이트 및 다른 빈도로 변경된다. 분명하게, 이 모든 데이터들은 이들이 가장 잘 검색되고 변경될 수 있는 위치에 저장될 필요가 있다.
플래시 메모리는 수년 동안 비휘발성 데이터 저장을 필요로 하는 소비자 애플리케이션 및 산업용 애플리케이션에서 데이터 저장 및 검색을 위해 사용되었다. 가령, 플래시 메모리는 회전 디스크를 대신하여 디스크 에뮬레이션(disk emulation)을 제공하는 데 사용될 수 있다. 달리 말하면, 플래시 메모리는 회전 디스크를 대신하여 판독/기록 매체로 사용될 수 있다.
플래시 메모리 디바이스에서 데이터 신뢰성을 증가시키는 방법은 미국 특허 제6,041,001호에 개시되어 있다. 이 방법에서는, 해밍 코드(a Hamming code)로 알려진 오차 보정 코드가 채용되며, 플래시 메모리 셀들은 블록으로 분할된다. 상기 각 블록은 섹터로 더 분할된다. 상기 미국 특허는 플래시 메모리에서의 데이터의 편성(organization)에 초점을 맞추고 있다. 고전력 오차 보정이 오차 검출 및 오차 보정을 수행하는 데 사용된다.
플래시 메모리는 그의 메모리 콘텐츠을 유지하기 위해 전력 소스를 필요로 하지 않는 전기적으로 재기록가능한 비휘발성 디지털 메모리 디바이스이다. 통상적인 플래시 메모리는 바이너리 상태 시스템에서 제 1 로직 상태를 나타내기 위해 플로팅 게이트 상에 전하를 저장하며, 한편 이 저장된 전하의 결핍은 바이너리 상태 시스템에서 제 2 로직 상태를 나타낸다. 또한, 통상적인 플래시 메모리는 기록 동작, 판독 동작, 소거 동작을 수행할 수 있다.
큰 부피의 소비자 애플리케이션에서, 플래시 메모리는 기본적으로 코드 저장을 위해 사용되었지만, 플래시 메모리의 회로 내 기록 능력(in-circuit write capability)으로 인해 데이터 저장에도 사용될 수 있다. 최근까지, 내부적으로 저장된 코드가 실행되는 동안에는 플래시 메모리가 기록되거나 소거될 수 없다는 특성은 특정 제품에서 이 플래시 메모리가 EEPROM 부분을 대신하지 못하게 했다. 그러나, 새로운 시리즈의 플래시 부분은 단일 플래시 메모리 내에서 판독 및 기록을 동시에 수행할 수 있는 기능성(simultaneous read-while-write:RWW functionality)을 제공한다. 이러한 특성은 동일한 플래시 디바이스로 비휘발성 데이터 및 실행가능한 코드의 저장을 가능하게 한다. 실행가능한 코드를 제공하고 자주 갱신되는 데이터를 저장할 수 있는 이러한 플래시 메모리 부분의 기능으로 인해 많은 제품에서 EEPROM을 제거할 수 있게 되었다. 도 1a에 도시된 바처럼, 지금까지의 제품들은 전형적으로 플래시 메모리(10), EEPROM(11), SRAM(12)을 포함하였다. 차세대 제품들에 있어서 EEPROM 디바이스는 제품으로부터 완전하게 제거되어, 각 제품의 칩 면적 및 비용에 있어서 실질적인 절감을 성취할 수 있다. 이러한 차세대 제품들의 한 실례는 도 1b에 도시된다. 그것은 플래시 메모리(13) 및 SRAM(14)을 포함한다.
새로운 제품 개발은 보다 높은 저장 용량을 갖는 플래시 메모리를 필요로 한다. 오늘날, 플래시 메모리 용량은 매년 두 배씩 증가하고 있다. 대형 플래시 메모리는 허용가능한 제품 신뢰성을 성취하기 위해 오차 보정의 사용을 필요로 한다. 오차 보정은 메모리 내에서 데이터 비트와 함께 저장되는 용장 비트(redundant bits) 즉, 패리티 비트(parity bits)를 생성하는 것을 기반으로 한다. 이들 용장 비트는, 메모리 판독 시에, 비트 오차를 검출 및 보정하는 데 사용된다. 플래시 메모리에 오차 보정을 사용할 때에는 한 가지 큰 단점, 즉 일단 데이터 워드가 플래시 메모리로 프로그램되면, 이 데이터 워드는 용장 비트의 올바른 생성을 방해하지 않는 한, 더 이상 변경될 수 없다는 단점을 갖는다. 달리 말하면, 통상적인 오차 보정 방식을 사용할 경우에는, 데이터 워드의 단일 비트 변경가능성이 없어진다는 것이다.
통상적으로, 플래시 메모리는 임의의 오차 보정 방식 없이 채용된다. 이러한 통상적인 플래시 메모리에서는 한 플래시 데이터 워드를 변경하고자 할 때에는 전체 플래시 메모리(적어도 거의 모든 플래시 메모리 부분)를 소거해야 한다.
오차 보정은 비트 오차를 극복하기 위해 디지털 메모리 설계에 채용된다. 통상적으로, 오차 보정 코드(ECC)를 구현한 적당한 로직 회로가 채용된다. ECC에 의해 판독 중이거나 전송 중인 데이터는 오차에 대해 검사되며, 필요한 경우, 즉시 오차가 보정된다.
채용된 플래시 메모리의 증가된 크기로 인해, 어떤 타입의 오차 보정을 제공하는 지가 점점 중요해지고 있다. 대부분의 현재 플래시 메모리 시스템들 중 몇몇에는 플래시 메모리 내부에 데이터를 기록하는 인코더 및 플래시 메모리로부터 데이터를 판독하는 디코더를 사용하는 오차 보정 방식이 구비되어 있다.
그러나, 플래시 메모리 상에서 EEPROM 기능을 에뮬레이션할 경우, 비트 변경 가능성은 매우 중요한 특성으로서, 가령 그 기술은 인텔, AMD, Atmel 등과 같은 주요한 플래시 메모리 제조 회사에 의해 사용된다.
본 발명의 목적은 플래시 메모리가 오늘날의 애플리케이션 뿐만 아니라 차세대 애플리케이션에서 사용되는 것을 가능하게 하는 방식을 제공하는 것이다.
이로써, 본 발명의 목적은 플래시 메모리 상에서 EEPROM 기능을 에뮬레이션할 때에 비트 변경을 가능하게 하는 방식을 제공하는 것이다.
발명의 개요
이들 목적 및 다른 목적은 플래시 메모리의 아키텍쳐에서의 개선 및 상기 플래시 메모리가 사용되는 방식에서의 개선에 의해 성취된다.
본 발명은 오차 보정 블록이 플래시 메모리 상에서 비트 변경을 가능하게 하는 코딩 방식을 적용하는 방식에 관한 것이다.
본 발명에 따르면, 마이크로프로세서, 플래시 메모리 디바이스 내에 데이터를 기록하기 위한 데이터 버스, 플래시 메모리 디바이스로부터 데이터를 판독하기 위한 데이터 버스를 포함하는 시스템이 제공된다. 플래시 메모리 디바이스는 오차 보정 인코더, 플래시 메모리, 오차 보정 디코더, 및 오차 보정 인코더와 플래시 메모리와 오차 보정 디코더를 상호접속하기 위한 플래시 데이터 버스를 포함한다. 데이터는, 상기 오차 보정 인코더에 의해 처리될 시에, 상태 워드, 데이터 워드, 용장 워드를 포함하는 워드로 변환된다.
바람직한 시스템 구현은 청구항 2 내지 15 항에서 제공된다.
또한, 플래시 메모리 디바이스 내에 데이터를 저장하는 방법이 제공되며, 데이터는 용장 워드를 생성하고 이 용장 워드를 그의 출력에서 제공하는 패리티 생성기로 제공된다. 또한, 상태 워드가 생성되며, 데이터, 용장 워드, 상태 워드는 한 워드로 결합된다. 다음에, 이 워드는 플래시 메모리 디바이스 내에 기록되어 저장된다.
바람직한 방법은 청구항 17 내지 22 항에서 청구된다.
제안된 발명은 가령 오차 보정을 사용하여 대형 플래시 메모리 상에서 EEPROM 에뮬레이션을 가능하게 하는 기술이다.
본 발명의 장점은 제조자들이 실행가능한 코드 및 비휘발성 데이터를 저장하기 위해 EEPROM보다는 플래시 메모리 부분을 사용할 수 있다는 것이다.
본 발명의 다른 장점은 EEPROM 기능이 플래시 메모리 어레이로 선택적으로 부가될 수 있다는 것이다.
본 발명의 보다 완벽한 설명을 위해 그리고 본 발명의 다른 장점 및 목적을 위해서, 첨부 도면을 참조한 이하의 보다 상세한 설명이 참조된다.
도 1a는 플래시 메모리, EEPROM, SRAM을 구비한 통상적인 컴퓨팅 디바이스의 도면,
도 1b는 플래시 메모리 및 SRAM을 구비한 통상적인 컴퓨팅 디바이스의 도면,
도 2는 오차 보정을 사용하지 않고 플래시 데이터 워드를 프로그래밍하는 방법의 도면,
도 3은 오차 보정 디바이스를 구비한 알려진 플래시 메모리를 도시한 블록도,
도 4는 오차 보정을 사용하여 플래시 데이터 워드를 프로그래밍하는 방법의 도면,
도 5는 본 발명에 따른 데이터 워드의 편성을 나타내는 도면,
도 6은 본 발명에 따른 오차 보정을 사용하여 플래시 데이터 워드를 프로그래밍하는 방법의 도면,
도 7은 플래시 메모리 상에서 EEPROM 에뮬레이션을 위한 데이터 편성을 나타내는 도면,
도 8은 본 발명의 제 1 실시예를 도시하는 블록도,
도 9는 본 발명의 제 2 실시예를 도시하는 블록도,
도 10a은 본 발명의 일 실시 예에 따른 오차 보정 인코더를 도시한 블록도,
도 10b는 본 발명의 일 실시 예에 따른 오차 보정 디코더를 도시한 블록도.
SRAM과 같은 다른 메모리 타입과는 반대되는 타입의 플래시 메모리는 비트 변경이 오직 한 방향으로만 이루어진다. 플래시 메모리 셀 내에 저장된 로직 '1'는 프로그래밍 동작에 의해 로직 '0'으로 변경될 수 있다. 그러나, 프로그래밍 동작에 의해 로직 '0'을 로직 '1'로 변경하는 것은 불가능하다. 프로그램된 셀(로직 콘텐츠 '0')을 로직 상태 '1'로 변경하는 것은 오직 소거 동작으로만 가능할 것이다. 소거 동작은 단일 비트 상에 대해서 수행될 수는 없지만, 대량의 데이터에 대해서는 수행될 수 있으며(블록 소거로 지칭됨), 심지어 전체 메모리에 대해서도 수행될 수 있다(플래시 소거로 지칭됨).
도 2는 플래시 데이터 워드(20)에 대한 가능한 데이터 조작을 도시한다. 본 실시예에서, 플래시 데이터 워드(20)는 4 비트를 갖는다. 시작(초기 상태 a)에서, 4 개의 비트 모두는 소거되며, 그러므로 로직 콘텐츠 '1'을 갖는다. 이어서, 데이터 워드 '1010'이 프로그램된다(상태 b). 후속 단계(상태(c))에서, 최상위 비트(MSB)(21)가 '1'에서 '0'으로 변경된다. 마지막으로, 데이터 워드(20)는 (도 2에 도시되지 않은 많은 다른 데이터 워드와 함께) 초기 상태 '1111'로 소거된다(상태 (d)). 이러한 단일 비트 변경은, 로직 '1'에서 로직 '0'으로 변경(1 →0)되는 한 가능하다.
도 3은 플래시 메모리(31)와 함께 오차 보정 블록(30)의 애플리케이션을 도시한다. 플래시 메모리(31)로 프로그램되어야 하는 데이터는 입력 라인(32)(본 명세서에서는 데이터 입력부 또는 Din으로 지칭됨)을 통해 오차 보정 블록(30)으로 제공된다. 이 오차 보정 블록(30)은 용장 비트를 생성한다. 데이터 및 용장 비트는 함께 플래시 메모리(31)로 프로그래밍된다. 데이터는 라인(33)을 통해 플래시 메모리(31) 내에 기록되며 용장 비트는 라인(34)을 통해 플래시 메모리(31) 내에 기록된다. 판독 동작 동안, 데이터 및 용장 비트는 각기 라인(35,36)을 통해 플래시 메모리(31)로부터 판독된다. 용장 비트 내에 저장된 정보는 데이터 워드에서의 가능한 오차를 검출 및 보정하는 데 사용된다. 마지막으로, 보정된 데이터는 출력 라인(37)(본 명세서에서는 데이터 출력부 또는 Qout로 지칭됨)에서 출력된다.
도 4에 도시된 바와 같은 통상적인 오차 보정 방식(가령, 해밍 코드 기반 방식)이 사용되는 경우, 단일 비트들은 도 4에 도시된 바처럼 자유롭게 변경될 수 없다. 메모리의 콘텐츠를 소거한 후(상태 a), 플래시 데이터 워드(40) 및 용장 비트(41)는 초기 상태로 존재한다. 말하자면, 모든 비트(데이터 및 용장 비트)는 로직 '1'이다. 데이터 워드(40)가 프로그램될 때(상태 b), 용장 비트(41)도 역시 적당한 오차 보정 방식에 따라 프로그램된다. 가령 해밍 코드와 같은 오차 보정 코드가 매우 적합하다. 해밍 코드는 단일 비트 오차 및 이중 비트 오차를 검출 및 보정하는 데 사용될 수 있는데, 여기서 이중 비트 오차는 두 개의 구별된 데이터 비트가 오차를 포함하는 것을 말한다.
데이터 워드(40)의 최상위 비트(42)가 로직 '1'에서 로직 '0'으로 변경될 수있다(상태 c). 그러나, 용장 비트(41)는 그에 따라 변경될 수는 없는데, 그 이유는 이러한 변경은 로직 '0'에서 로직 '1'로의 두 개의 변경을 필요로 하기 때문이다. 용장 비트(41)의 최상위 비트(43) 및 최하위 비트(44)는 로직 '0'에서 로직 '1'로 변경되어야 하는데, 이는 불가능하다. 그 결과는 플래시 메모리 내에서의 올바르지 않은 워드일 것이다. 이러한 실례는 플래시 메모리가 해밍 코드와 같은 통상적인 코딩 알고리즘과 함께 사용될 경우에는 단일 비트 변경가능성이 상실된다는 것을 나타낸다. 통상적인 오차 보정 방식이 사용될 경우, 단일 비트들은 도 4에서 도시된 바처럼 자유롭게 변경될 수 없다.
본 발명에 따르면, 플래시 데이터 워드에 대해 개선된 비트 변경가능성을 가능하게 하는 새로운 오차 보정 방식이 제안된다. 도 5는 본 발명에 따르는 코딩 방식으로 플래시 데이터 워드(50)를 편성하는 것을 도시한다. 도 5에 도시된 바처럼, 플래시 데이터 워드(50)는 두 섹션(51,52)으로 분할된다. 주어진 실시예에서, 데이터 워드(50)의 4개의 상위 비트(51)는 비트 변경을 위해 예약된다. 데이터 워드(50)의 네 개의 잔여 비트(52)는 랜덤 데이터(random data)를 위해 사용된다. 용장 비트(53)의 사용은 통상적인 코딩 방식에서와 동일하다. 그러나, 보다 긴 용장 비트(53)가 필요한데 그 이유는 워드(51)의 도입으로 인해 전체 플래시 데이터 워드(50)가 보다 길어졌기 때문이다. 플래시 데이터 워드(50)의 섹션(52)은 통상적으로 섹션(51)보다 길 것이다.
도 6은 새로운 코딩 방식의 원리를 상세하게 설명한다. 소거 동작 후(상태 a), 플래시 데이터 워드(50) 및 용장 워드(53)의 모든 비트는 로직 '1'이다. 이어서, 데이터는 플래시 데이터 워드(50)의 데이터 부분(52)으로 프로그램된다(상태 b). 도시된 실시예에서, 데이터 '1010'가 프로그램된다. 단일 비트 변경을 위해 예약된 부분(51)은 당분간 그대로 유지된다. 용장 비트(53)는 '1001'로 프로그램된다. 이어서, 단일 비트 변경을 위해 예약된 데이터 필드(51)를 '0001'로 프로그램함으로써 플래시 데이터 워드(50) 상에서 수정이 행해진다(상태 c). 새로운 플래시 데이터 워드(50)는 이전의 플래시 데이터 워드 '1111 1010'와 동일한 용장 워드(53)를 갖는 '0001 1010'이다. 이로써, 플래시 데이터 워드(50)의 수정은 올바르게 이루어지며, 합법 코드 워드가 플래시 메모리의 판독 시에 획득된다.
비트 변경가능성이 제한된다는 것이 주목되어야 한다. 비트는 오직 플래시 데이터 워드의 예약된 섹션 내에서만 변경될 수 있다. 또한, 모든 비트 변경이 가능한 것은 아니다. 소정 실시예에서, 4개의 비트(섹션 51)가 변경을 위해 예약된다. 이론적으로, 16 비트 수정이 가능하지만, (가령, '0001' 및 '0100'와 같이) 16 비트 중 오직 두 개 비트의 수정만이 허용된다. 가능한 비트 변경은 본 명세서에서 "매직 워드(magic words)"로 지칭된다. 주기적 코딩 방식(주기적 코드)은 용장 워드(53)의 규정을 위해 사용되기 때문에, 동일한 용장 워드(53)를 갖는 특정 플래시 데이터 워드(50)(매직 워드)가 존재한다.
상기 방식의 세부적인 사항이 이제 애플리케이션 실례와 관계되어 언급된다.
본 발명은 가령 차세대 이동 전화 시스템에서 적용될 수 있다. 대형 플래시 메모리 크기(64Mb 내지 128Mb)에 대한 수요가 계속적으로 증가함에 따라, 오차 보정이 필요하게 된다. 그러므로, 오차 보정 방식이 없는 플래시 메모리를 채용하는 것은 실행가능한 선택 사항이 아니다. 셀룰러 전화에서, 자주 변경되는 소량의 데이터(파라미터)(가령, 전화 번호, 텍스 카운트(tax counts) 등)는 통상적으로 바이트 레벨로 소거가 가능한 전용 EEPROM 칩 상에 저장된다. 이동 전화에 있어서 비용 및 구성 요소 수를 줄이기 위해, EEPROM 칩을 생략하고 플래시 메모리 상에서 EEPROM 기능을 에뮬레이션하는 것이 새로운 경향이다. 이러한 기술은 모든 주요한 마켓터(marketer)들에 의해 광범위하게 전파되고 있다. EEPROM과는 달리, 플래시 메모리는 발명의 상세한 설명의 도입부에서 언급된 바와 같이 바이트 레벨로 소거될 수는 없다. 플래시 메모리에서의 소정 바이트는 오버라이팅될 수 없기 때문에, 플래시 데이터 워드가 변경될 때 플래시 데이터 워드의 이전 발생이 "무효한(invalid)"으로 표시된다. 갱신된 플래시 데이터 워드는 다음의 가용 플래시 메모리 저장 위치에 기록된다. 통상적으로, 플래시 데이터의 유효한 발생을 추적하는 플래시 관리 소프트웨어가 사용된다. 도 7은 EEPROM 기능이 플래시 메모리 상에서 에뮬레이션될 때 플래시 데이터 워드(60)가 편성되는 방법을 도시한다. 플래시 데이터 워드(60)는 두 개의 필드(61,62)로 분할된다. 플래시 데이터 필드(62) 내에, 실제 정보(랜덤 데이터)가 저장될 수 있다. 상태 필드(61)에 있어서, 상기 플래시 데이터 필드(62) 내에 포함된 데이터가 유효한지 무효한지의 여부를 표시하기 위해 태그가 프로그램된다. 이러한 애플리케이션은 본 명세서에서 기술된 본 발명에 직접적으로 대응한다. 플래시 데이터 필드(62)가 이미 프로그램된 후에는 상태 필드(61)가 단일 비트 변경을 요구한다. 오차 보정이 사용될 때, 이미 프로그램된 데이터에 대한 단일 비트 변경은 불가능하다. 새로운 방식에 따른 오차 보정에 의해 EEPROM 에뮬레이션을 위해 필요한 비트 수정이 가능하게 된다.
본 발명에 따른 시스템(70)의 블록도가 도 8에 도시된다. 시스템(70)은 비휘발성 플래시 메모리(71)를 갖는 집적 회로 시스템이다. 오차 보정 인코더(72)는 플래시 메모리(71)의 입력측에 위치한다. 상기 인코더는 데이터를 플래시 메모리(71)에 기록하기 위해 오차 보정 알고리즘을 사용한다. 플래시 메모리(71)의 출력측에서는 오차 보정 디코더(73)가 위치하여 플래시 메모리(71)로부터 저장된 비트를 판독한다. 또한, 시스템(70)은 마이크로프로세서(74)를 포함한다. 플래시 데이터 버스(75)는 오차 보정 인코더(72)를 플래시 메모리(71)에 접속시키며 플래시 메모리(71)를 오차 보정 디코더(73)에 접속시킨다. 플래시 데이터 버스(75)는 용장 비트를 운반하는 비트 라인(76)과 플래시 데이터 비트를 운반하는 비트 라인(77)으로 분할된다. 데이터 비트 라인(77)은 상태 비트를 운반하는 비트 라인(78)과 데이터 비트를 운반하는 비트 라인(79)으로 분할된다. 본 발명에 따라, 상태 비트가 특정 사전결정된 값("매직 워드")으로 변경되면, 오차 보정 인코더(72)는 용장 비트의 어셈블리를 변경하지 않는다.
오차 보정 인코더(72)의 엔트리 데이터 입력부(Din)에서 플래시 메모리로 프로그램될 데이터 워드가 128 비트이면, 플래시 데이터 버스(75)는 바람직하게는 136 비트 폭이 되는데, 이로써 8 비트의 용장 워드, 112 비트의 플래시 데이터 워드, 16 비트의 상태 비트 워드가 플래시 메모리(71)로 전송된다. 이와 반대로, 소정 워드가 플래시 메모리(71)로부터 판독될 때, 용장 워드는 8 비트를 가지며, 플래시 데이터 워드는 112 비트를 가지며, 상태 비트 워드는 16 비트를 갖는다. 출력 라인(66)에서의 데이터 워드는 128 비트 폭을 갖는다. 128 비트 데이터 워드, 16 비트 상태 워드, 8 비트 용장 워드의 경우에, 여러 개의 가용 매직 워드가 존재한다. 상태 워드가 매직 워드들 중 어느 하나를 취하는 것이 허용된다. 매직 워드 이외의 다른 워드는 허용되지 않는다. 세 개의 상이한 16 비트 매직 워드가 존재할 경우, 상태 필드는 3 매직 워드들 중 하나를 저장할 수 있다. 본 발명에 따른 패리티 비트는, 데이터 필드 내의 데이터 워드가 변경될 때 변경된다. 그러나, 상태 정보가 하나의 매직 워드에서 다른 매직 워드로 변경되면 패리티 비트는 변경되지 않는다. 마이크로프로세서를 제어하기 위해 채용되는 소프트웨어(마이크로코드)는 매직 워드를 '안다(know)'. 매직 워드는 가령 플래시 메모리 내에 저장될 수 있다.
본 발명의 다른 실시예에 따른 집적 회로 시스템에서, 상태 비트(61)는 콘텐츠 섹션(62) 내의 데이터가 유효한지의 여부를 결정하기 위해 채용될 수 있다.
본 발명의 다른 실시예에서, 플래시 메모리(71)는 EEPROM을 에뮬레이션하는 방식으로 채용된다.
본 발명의 또 다른 실시예에서, 주기적 용장 코드, 바람직하게는 대칭성 해밍 코드가 집적 회로 시스템(70)에서 오차 보정 알고리즘으로 채용된다.
본 발명의 다른 실시예가 도 9에서 도시된다. 시스템(80)은 마이크로프로세서(84), 마이크로프로세서 버스(91), RAM(83), I/O 디바이스(92) 및 플래시 메모리 유닛(90)을 포함한다. 본 발명의 방식은 플래시 메모리 유닛(90) 내부에서 실현된다. 플래시 메모리 유닛(90)은 플래시 데이터 버스를 통해 플래시 메모리(81)에 접속된 결합된 오차 보정 인코더/디코더(82)(및 가능하게는 다른 제어 회로)를 포함한다. 플래시 데이터 버스는 비트 라인(86,87)을 포함한다. 마이크로프로세서(84)는 버스(91)를 통해 데이터를 플래시 메모리(81)에 기록할 수 있다. 이들 데이터는 (플래시 메모리(81) 내부로 프로그램되기 이전에) 인코더/디코더(82)에 의해 인코딩된다. 용장 비트는 비트 라인(86)을 통해 플래시 메모리(81) 내부로 프로그램되며, 플래시 데이터 워드는 데이터 라인(87)을 통해 플래시 메모리(81) 내부로 프로그램된다. 인코더/디코더(82)는 두 개의 섹션을 갖는 플래시 데이터 워드를 생성한다. 제 1 섹션은 비트 변경을 나타내며 제 2 섹션은 실제 데이터를 나타낸다. 이를 위해, 데이터 라인(87)은 플래시 데이터 워드의 제 1 섹션을 운반하는 데이터 라인(88)과 실제 데이터 워드를 운반하는 데이터 라인(89)으로 분할된다.
인코더/디코더(82)는 (AND 게이트, OR 게이트, X-OR 게이트와 같은) 다수의 게이트를 포함한다.
플래시 메모리(81)로부터 데이터를 판독할 경우, 각각의 데이터는 데이터 라인(86,87)을 통해 페치된다. 이어서, 이 데이터가 유효한지 무효한지의 여부를 검사하기 위한 알고리즘이 적용된다. 데이터가 유효하다고 간주되면, 이들 데이터는 버스(91)를 통해 마이크로프로세(84)에서 이용가능하게 된다. 데이터가 만일 무효하다고 간주되면, 이들 데이터는 보정되고 이어서 버스(91)를 통해 마이크로프로세서(84)에서 이용가능하게 된다.
오차 보정 인코더(72)의 세부 사항은 도 10a에서 도시된다. 본 실시예에서, 데이터를 플래시 메모리(71) 내부에 기록하기 위한 입력 버스 Din은 128 비트 폭을 갖는다. 128 비트 데이터 워드는 버스 라인(103)을 통해 어댑터(100)로 제공된다. 어댑터는 데이터 워드가 출력 버스(104) 상에서 136 비트를 가지도록 데이터 워드를 확장시킨다. 이것은 로직 '0'들을 데이터 워드의 끝에 더함으로써 행해질 수 있다. 136 비트 데이터 워드는 버스(104)를 통해 패리티 생성기(101)에 제공된다. 이 패리티 생성기(101)는 (가령 해밍 코드를 기반으로 하는) 코딩 방식을 적용하여 입력 Din에서의 데이터 워드에 대응하는 용장 비트를 생성한다. 본 실시예에서, 패리티 생성기(101)의 출력 버스(105) 상에 8 비트 용장 비트가 제공된다. 입력 Din에서의 8 비트 용장 워드와 128 비트 데이터 워드가 조합되어 출력 버스(75) Dout 상에 136 비트 워드를 형성한다. 이 136 비트 워드는 이후의 검색을 위해 플래시 메모리(71) 내에 저장된다.
오차 보정 디코더(73)의 세부 사항이 도 10b에 도시된다. 136 비트 워드가 플래시 메모리(71)로부터 페치될 때, 이 비트 워드는 버스(108)를 통해 다른 패리티 생성기(106) 내부에 제공된다. 이 패리티 생성기(106)는 패리티 생성기(101)와 동일할 수 있다. 패리티 생성기(106)는 (가령, 해밍 코드를 기반으로 하는) 코딩 방식을 적용하여 136 비트 워드 중 임의의 비트가 보정되어야 하는지의 여부를 결정하고 어느 비트가 보정되어야 하는지를 식별한다. 본 실시예에서, 패리티 생성기(106)는 136 비트 워드 중 임의의 비트가 보정되어야 하는지의 여부 및 어느 비트가 보정되어야 하는지를 표시하는 8 비트 워드를 출력 버스(109) 상에서 제공한다. 보정 유닛(107)은 자신의 입력 버스(111) 상에 제공되는 136 비트 워드의 필요한 보정을 수행하는 데 사용된다. 보정된 데이터 워드(Qout)는 출력 버스(110) 상에 제공된다.
오차 보정 인코더(72) 및 오차 보정 디코더(73)는 모두가 다 표준 디지털 로직을 사용하여 구현될 수 있다. 바람직하게는, 두 기능 블록(72,73)은 플래시 메모리(71)와 동일한 다이 상에 집적될 수 있다.
본 발명에 따른 플래시 메모리는 데이터가 도 5에서 도시된 바와 같은 방식으로 논리적으로 편성된다는 특징을 갖는다. 각 플래시 데이터 워드는 단일 비트 변경을 위해 예약된 정보가 저장되는 제 1 섹션을 포함한다. 플래시 데이터 워드의 제 2 섹션은 실제 데이터를 포함한다. 용장 비트를 저장하기 위해 사용되는 제 3 섹션이 제공된다. 이 용장 비트는 제 1 및 제 2 섹션 내의 정보를 기초로 하여 계산된다. (가령 해밍 코드와 같은) 적당한 코드가 이러한 용장 비트 계산을 위해 채용된다.
본 발명의 일 실시예에 따르면, 오차 보정 코드의 특정 코드 요구 조건이 규정될 수 있다. 제 1 조건은 코드가 대칭적이어야 한다는 것, 즉 모든 비트가 '0'이거나 모든 비트가 '1'이 되는 코드 워드가 합법적 워드가 될 수 있다는 것이다.
다음 등식이 패리티 생성기(106)의 출력 버스(109) 상에 워드 ParGenQ을 생성하기 위해 사용될 수 있다.
Figure 112002042551610-pct00001
ParGenQ는 버스(109) 상에서의 8 비트 결과 벡터이다. 이 벡터는 패리티 행렬 H 와 입력 버스(108) 상의 136 비트 워드의 승산에 의해 생성된다. 패리티 생성기(106)는 행렬 H를 구현한다.
플래시 메모리(71)의 입력측 상에서, 동일한 행렬 H가 출력 버스(105) 상에 용장 워드를 생성하는 데 사용될 수 있다.
본 발명과 관련되어 사용되는 패리티 행렬 H에 특징이 있는 규칙을 규정할 수 있다. 이 규칙은 애플리케이션에 따라 변할 수 있다.
본 발명은 임의의 오차 보정 없이 사용되는 플래시 메모리의 경우에서와 같이 제한되지 않는 비트 변경가능성을 허용하지 않는다.
플래시 메모리에서 전기적으로 소거가능하고 프로그램가능한 ROM(EEPROM)을 에뮬레이션하는 비용 효율적인 방법이 제공된다. 본 명세서에서 안출된 방법은 대부분의 애플리케이션에 대해서 충분한, 플래시 데이터 워드 상에서의 개선된 비트 변경가능성을 갖는 표준 플래시 메모리 구성 요소를 사용한다.
다른 실시예에 따르면, 가령, 플래시 데이터 워드는 128 비트의 크기를 가지며 용장 워드는 8 비트 크기를 갖는다.
본 발명은 개인용 디지털 보조 장치(PDA), 셀룰러 전화, 디지털 포토 카메라, 팜 탑(palm tops) 및 수 많은 다른 디바이스에서 사용되기에 적합하다. 본 발명에 따른 플래시 메모리를 포함하는 시스템은 웹 어드레스, 메모, 새로운 어드레스 정보(가령, 새로운 전화 번호), 카운터(가령, 요금 카운터)를 저장하는데 적합하다.
본 발명이 사용될 수 있는 실례는 음성 활성(음성 코딩) 셀룰러 전화이다. 각각의 음성 샘플들은 가령 플래시 메모리 내에 저장된다.
본 발명은 또한 전화 번호가 SIM 카드보다는 플래시 메모리 내에 저장되는 셀룰러 전화에서 사용되기에 적합하다. 전화 번호가 변경되면, 이전 전화 번호는 날짜가 지나 버린 것으로 표시되어야 한다. 이를 위해, 플래시 메모리 내의 각각의 데이터 워드는 무효하다고 표시되어야 한다. 이를 위해, 단일 비트가 변경되어야 한다. 오차 보정을 갖는 통상적인 플래시 메모리에서는 상기 변경은 불가능하다. 그러나, 본 발명을 사용하면, (단일 비트가 변경되지 위치에 있는) 새로운 데이터 워드 및 최초의 데이터 워드가 동일한 용장 워드를 가진다면, 상기 단일 비트 변경은 가능하다.
본 발명의 장점은 추가적인 회로로 인한 비용 및 오버헤드를 부가하지 않고도 임의의 컴퓨팅 디바이스의 신뢰성을 개선할 수 있다는 것이다.
명료성을 위해서, 개별 실시예들의 맥락으로 기술된 본 발명의 다양한 특징들은 단일 실시예에서 조합되어서 제공될 수 있다. 반대로, 명료성을 위해서 단일 실시예의 맥락으로 기술된 본 발명의 다양한 특징들은 개별적으로 또는 임의의 적합한 하위 조합으로 제공될 수 있다.
도면 및 명세서에서, 본 발명의 바람직한 실시예들이 제한되었으며, 특정 용어들이 사용되었지만, 이 전문 용어들은 일반적이며 서술적인 차원에서 해석되어야지 한정적인 차원에서 해석되지 말아야 한다.

Claims (22)

  1. 마이크로프로세서(74;84), 데이터를 플래시 메모리 디바이스(71,72,73;90) 내부에 기록하기 위한 데이터 버스(75;91), 상기 플래시 메모리 디바이스(71,72,73;90)로부터 데이터를 판독하기 위한 데이터 버스(75;91)를 포함하는 시스템으로서,
    상기 플래시 메모리 디바이스(71,72,73;90)는,
    오차 보정 인코더(72;82)와,
    플래시 메모리(71;81)와,
    오차 보정 디코더(73;82)와,
    상기 오차 보정 인코더(72;82), 상기 플래시 메모리(71;81) 및 상기 오차 보정 디코더(73;82)를 상호접속시키는 플래시 데이터 버스(75;86,87)를 포함하며,
    상기 데이터는, 상기 오차 보정 인코더(72;82)에 의해 처리될 때에, 상태 워드(51) 및 데이터 워드(52)를 포함하는 워드로 변환되며,
    상기 상태 워드(51)는 비트 변경을 위해 예약되는
    시스템.
  2. 제 1 항에 있어서,
    상기 오차 보정 인코더(72;82)는 오차 보정 코드를 나타내는 로직 회로를 포함하는
    시스템.
  3. 제 2 항에 있어서,
    상기 오차 보정 코드는 대칭형 해밍 코드(symmetric Hamming code)인
    시스템.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 플래시 데이터 버스(75)는 용장 워드(redundancy word)(53)를 상기 플래시 메모리(71;81) 내부에 기록하기 위한 비트 라인(76;86) 및/또는 상기 용장 워드(53)를 상기 플래시 메모리(71;81)로부터 판독하기 위한 비트 라인(76;86)을 포함하는
    시스템.
  5. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 플래시 데이터 버스(75)는 상기 데이터 워드(52)를 상기 플래시 메모리(71;81) 내부에 기록하기 위한 비트 라인(79;89) 및/또는 상기 데이터 워드(52)를 상기 플래시 메모리(71;81)로부터 판독하기 위한 비트 라인(79;89)을 포함하는
    시스템.
  6. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 플래시 데이터 버스(75)는 상기 상태 워드(51)를 상기 플래시 메모리(71;81) 내부에 기록하기 위한 비트 라인(78;88) 및/또는 상기 상태 워드(51)를 상기 플래시 메모리(71;81)로부터 판독하기 위한 비트 라인(78;88)을 포함하는
    시스템.
  7. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    용장 워드(53) 내에 저장되는 정보는 상기 데이터 워드(52) 내의 가능한 오차를 검출 및 보정하기 위해 상기 오차 보정 디코더(73;82)에 의해 사용가능한
    시스템.
  8. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 시스템은 상기 플래시 메모리 디바이스(71,72,73;90) 내에 저장된 데이터 워드 상에서의 비트 변경가능성을 제공하는
    시스템.
  9. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 플래시 메모리 디바이스 내로 프로그램될 데이터는 128 비트를 가지며, 용장 워드는 8 비트를 가지며, 상기 데이터 워드는 112 비트를 가지며, 상기 상태 워드는 16 비트를 갖는
    시스템.
  10. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 상태 워드(51)는 상기 데이터 워드(52) 내의 상기 데이터 워드(52)가 유효한지의 여부를 결정하는
    시스템.
  11. 제 2 항에 있어서,
    상기 오차 보정 코드는 주기적 용장 코드인
    시스템.
  12. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 데이터는 상기 플래시 메모리(71;81) 내에서 제 1 섹션(51)은 상태 워드를 포함하고, 제 2 섹션(52)은 데이터 워드를 포함하며, 제 3 섹션(53)은 용장 워드를 포함하는 세 개의 섹션으로 편성되는
    시스템.
  13. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 오차 보정 인코더(72;82)는,
    상기 데이터의 폭을 확장시키는 어댑터(100)와,
    용장 워드(53)를 생성하는 패리티 생성기(101)를 포함하는
    시스템.
  14. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 오차 보정 디코더(73;82)는 워드(ParGenQ)를 생성하여 보정 유닛(107)으로 제공하는 패리티 생성기(106)를 포함하는
    시스템.
  15. 제 14 항에 있어서,
    상기 보정 유닛(107)은 상기 워드(ParGenQ)를 사용하여 상기 플래시 메모리(71;81)로부터 판독된 데이터 워드를 보정하는
    시스템.
  16. 플래시 메모리 디바이스(71;81) 내에 데이터를 저장하는 방법으로서,
    상기 데이터를 패리티 생성기(101)로 제공하는 단계와,
    상기 패리티 생성기(101)의 출력단(105)에서 용장 워드(53)를 생성하는 단계와,
    에러 보정을 유지함으로써 비트 변경가능성을 제공하는 비트 변경을 위해 예약되는 상태 워드(51)를 생성하는 단계와,
    상기 데이터(52)와 상기 용장 워드(53) 및 상기 상태 워드(51)를 하나의 워드로 결합하는 단계와,
    상기 하나의 워드를 상기 플래시 메모리 디바이스(71;81) 내에 기록하는 단계를 포함하는
    데이터 저장 방법.
  17. 제 16 항에 있어서,
    상기 플래시 메모리 디바이스(71;81) 내의 특정 워드의 상기 상태 워드는, 상기 특정 워드 중 상기 용장 워드를 변경할 필요없이, 다수의 사전규정된 값들 중의 하나를 취할 수 있는
    데이터 저장 방법.
  18. 제 17 항에 있어서,
    상기 다수의 사전규정된 값은 매직 워드(magic word)인
    데이터 저장 방법.
  19. 제 16 항 내지 제 18 항 중 어느 한 항에 있어서,
    특정 워드가 상기 플래시 메모리 디바이스(71;81)로부터 판독되고 패리티 생성기(106)에 의해 처리되어 비트 오차를 검출하는
    데이터 저장 방법.
  20. 제 19 항에 있어서,
    상기 패리티 생성기(106)는 비트 오차가 발생하였는지의 여부 및 워드 내의 어느 비트가 보정되어야 하는지를 표시하는 출력 워드를 생성하는
    데이터 저장 방법.
  21. 제 19 항에 있어서,
    상기 패리티 생성기(106)의 출력 워드 내에 포함된 정보를 기초로 하여 보정이 수행되는
    데이터 저장 방법.
  22. 제 16 항 내지 제 18 항 중 어느 한 항에 있어서,
    상기 상태 워드(51)는 대응하는 데이터 필드(52) 내의 데이터가 유효한 데이터인지 무효한 데이터인지를 표시하는 데 사용되는
    데이터 저장 방법.
KR1020027017586A 2001-04-24 2002-04-12 시스템 및 데이터 저장 방법 KR100870392B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP01109905 2001-04-24
EP01109905.8 2001-04-24
PCT/IB2002/001332 WO2002086719A2 (en) 2001-04-24 2002-04-12 Improved error correction scheme for use in flash memory allowing bit alterability

Publications (2)

Publication Number Publication Date
KR20030011924A KR20030011924A (ko) 2003-02-11
KR100870392B1 true KR100870392B1 (ko) 2008-11-25

Family

ID=8177215

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027017586A KR100870392B1 (ko) 2001-04-24 2002-04-12 시스템 및 데이터 저장 방법

Country Status (6)

Country Link
US (1) US20030046631A1 (ko)
EP (1) EP1399819A2 (ko)
JP (1) JP4417629B2 (ko)
KR (1) KR100870392B1 (ko)
CN (1) CN1311354C (ko)
WO (1) WO2002086719A2 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004046927A1 (en) * 2002-11-21 2004-06-03 Philips Intellectual Property & Standards Gmbh Electronic memory component or memory module, and mehtod of operating same
JP4550439B2 (ja) * 2003-02-28 2010-09-22 東芝メモリシステムズ株式会社 Ecc制御装置
PL363945A1 (en) * 2003-12-08 2005-06-13 Advanced Digital Broadcast Polska Spółka z o.o. Software method for eeprom memory emulation
US7334179B2 (en) * 2004-06-04 2008-02-19 Broadcom Corporation Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems
US7263383B2 (en) * 2004-09-15 2007-08-28 Inventec Appliances Corp. Apparatus and a method for extending phone book records of a subscriber identification module (SIM) card
ES2299101T3 (es) * 2004-10-22 2008-05-16 Dow Global Technologies Inc. Espuma de polipropileno de celdas intrinsecamente abiertas con tamaño de celda grande.
WO2007062307A2 (en) * 2005-11-22 2007-05-31 Sandisk Corporation Method and memory system for legacy hosts
US8055979B2 (en) 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US7844879B2 (en) 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
US8219886B1 (en) 2006-01-20 2012-07-10 Marvell International Ltd. High density multi-level memory
US7545681B2 (en) * 2006-11-27 2009-06-09 Sandisk Corporation Segmented bitscan for verification of programming
US7440319B2 (en) * 2006-11-27 2008-10-21 Sandisk Corporation Apparatus with segmented bitscan for verification of programming
US8370561B2 (en) * 2006-12-24 2013-02-05 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
US8127200B2 (en) * 2006-12-24 2012-02-28 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
US8583981B2 (en) 2006-12-29 2013-11-12 Marvell World Trade Ltd. Concatenated codes for holographic storage
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US7945840B2 (en) * 2007-02-12 2011-05-17 Micron Technology, Inc. Memory array error correction apparatus, systems, and methods
JP4160625B1 (ja) 2007-04-04 2008-10-01 シャープ株式会社 誤り検出制御システム
US7937647B2 (en) * 2007-07-27 2011-05-03 Actel Corporation Error-detecting and correcting FPGA architecture
KR101466694B1 (ko) 2007-08-28 2014-11-28 삼성전자주식회사 Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법
DE102008059352A1 (de) * 2008-11-27 2010-06-02 Giesecke & Devrient Gmbh Speicherzugriff auf einen portablen Datenträger
EP2323135A1 (en) * 2009-11-12 2011-05-18 SiTel Semiconductor B.V. Method and apparatus for emulating byte wise programmable functionality into sector wise erasable memory
US20110225327A1 (en) * 2010-03-12 2011-09-15 Spansion Llc Systems and methods for controlling an electronic device
US8291165B2 (en) * 2010-03-12 2012-10-16 Spansion Llc Electronic devices using removable and programmable active processing modules
US20110224810A1 (en) * 2010-03-12 2011-09-15 Spansion Llc Home and building automation
EP2559036A1 (en) 2010-04-15 2013-02-20 Ramot at Tel-Aviv University Ltd. Multiple programming of flash memory without erase
US9405618B2 (en) 2014-05-28 2016-08-02 Infineon Technologies Ag Marker programming in non-volatile memories
US10379926B2 (en) * 2014-08-05 2019-08-13 Macronix International Co., Ltd. Method and device for monitoring data error status in a memory
US9519539B2 (en) * 2014-10-24 2016-12-13 Macronix International Co., Ltd. Monitoring data error status in a memory
KR102315314B1 (ko) * 2019-12-16 2021-10-19 주식회사 현대케피코 Eeprom 제어 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010105558A (ko) * 2000-05-16 2001-11-29 구자홍 공기조화기의 실외기의 소음 저감구조

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0618535B1 (en) * 1989-04-13 1999-08-25 SanDisk Corporation EEPROM card with defective cell substitution and cache memory
US5448577A (en) 1992-10-30 1995-09-05 Intel Corporation Method for reliably storing non-data fields in a flash EEPROM memory array
US6122195A (en) * 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US6360346B1 (en) * 1997-08-27 2002-03-19 Sony Corporation Storage unit, method of checking storage unit, reading and writing method
WO1999038170A1 (fr) * 1998-01-21 1999-07-29 Sony Corporation Procede de codage et dispositif de memoire
US6374337B1 (en) * 1998-11-17 2002-04-16 Lexar Media, Inc. Data pipelining method and apparatus for memory control circuit
US6041001A (en) 1999-02-25 2000-03-21 Lexar Media, Inc. Method of increasing data reliability of a flash memory device without compromising compatibility
JP4105819B2 (ja) * 1999-04-26 2008-06-25 株式会社ルネサステクノロジ 記憶装置およびメモリカード

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010105558A (ko) * 2000-05-16 2001-11-29 구자홍 공기조화기의 실외기의 소음 저감구조

Also Published As

Publication number Publication date
JP2004524636A (ja) 2004-08-12
CN1311354C (zh) 2007-04-18
CN1529852A (zh) 2004-09-15
US20030046631A1 (en) 2003-03-06
WO2002086719A3 (en) 2004-01-15
JP4417629B2 (ja) 2010-02-17
EP1399819A2 (en) 2004-03-24
KR20030011924A (ko) 2003-02-11
WO2002086719A2 (en) 2002-10-31

Similar Documents

Publication Publication Date Title
KR100870392B1 (ko) 시스템 및 데이터 저장 방법
CN108399936B (zh) 具有延长产品寿命的存储系统及其操作方法
US10691588B2 (en) Memory systems for data collection and compression in a storage device
EP2199911B1 (en) Flash memory controller, error correction code controller therein, and the methods and systems thereof
KR100546348B1 (ko) 플래시 메모리 시스템 및 그 데이터 저장 방법
US8732553B2 (en) Memory system and control method thereof
US8719662B2 (en) Memory device with error detection
US8555143B2 (en) Flash memory controller and the method thereof
JP5303325B2 (ja) データ処理装置
US20050246574A1 (en) Non-volatile semiconductor memory device
KR20040038709A (ko) 비-휘발성 메모리 시스템에서 데이터의 완전성을 관리하기위한 방법 및 장치
US8201053B2 (en) Dynamic electronic correction code feedback to extend memory device lifetime
US20070266297A1 (en) Controller and storage device having the same
EP2179362B1 (en) Memory system
KR100377490B1 (ko) 비휘발성 반도체 기억 장치
JP2006195736A (ja) 半導体記憶装置及びその制御方法
CN113434086A (zh) 数据存储方法、装置、非易失性存储器件和存储器
CN111258498A (zh) 一种flash存储器管理方法
CN111383697A (zh) 用于部分页编程的位扫描方法,部分页编程方法及非易失性存储器
JP2007179480A (ja) メモリコントローラおよびフラッシュメモリシステム
KR20040073170A (ko) 에러 정정을 위한 데이터 기입 방법

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 20111101

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20121101

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee