KR19990030281A - 기억 장치, 데이터 처리 시스템 및 데이터 기록 및 판독 방법 - Google Patents

기억 장치, 데이터 처리 시스템 및 데이터 기록 및 판독 방법 Download PDF

Info

Publication number
KR19990030281A
KR19990030281A KR1019980040764A KR19980040764A KR19990030281A KR 19990030281 A KR19990030281 A KR 19990030281A KR 1019980040764 A KR1019980040764 A KR 1019980040764A KR 19980040764 A KR19980040764 A KR 19980040764A KR 19990030281 A KR19990030281 A KR 19990030281A
Authority
KR
South Korea
Prior art keywords
management information
data
area management
error correction
error
Prior art date
Application number
KR1019980040764A
Other languages
English (en)
Other versions
KR100527609B1 (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 KR19990030281A publication Critical patent/KR19990030281A/ko
Application granted granted Critical
Publication of KR100527609B1 publication Critical patent/KR100527609B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)

Abstract

에러 정정이 이루어졌는가 여부가 식별될 수 있는 방식으로 데이터를 출력하는 기억 장치와, 영역 관리 정보가 에러 정정되었나 여부가 식별될 수 있는 방식으로 기억 장치가 데이터 처리 장치에 데이터를 공급하고, 데이터 처리 장치는 소정의 데이터 처리를 실행하기 위해 영역 관리 정보가 에러 정정되었나 여부를 식별하는 데이터 처리 시스템이 제공된다. 또한, 기억 장치 및 데이터 처리 시스템에 대한 데이터 처리 방법이 제공된다. 플래시 메모리(21)로부터 판독된 영역 관리 정보내에 에러 정정부(26)에 의해 정정 가능한 에러가 있으면, 제어기(27)는 영역 관리 정보를 에러 정정부(26)에 공급하고, 에러 정정 사실을 나타내는 플래그를 에러 정정된 영역 관리 정보에 부가하여 결과의 데이터를 출력한다.

Description

기억 장치, 데이터 처리 시스템 및 데이터 기록 및 판독 방법
본 발명은 데이터를 기억하는 영역의 상태를 관리하기 위한 영역 관리 정보 및 선택적인 데이터의 기억을 위한 기억 장치와, 이 기억 장치를 사용하는 데이터 처리 시스템 및 데이터 처리 방법에 관한 것이다.
지금까지는 기록 매체로 플래시 메모리(전기적으로 삭제가능하고 프로그램 가능한 판독 전용 메모리(ROM))를 사용하는, 이후 메모리 카드(memory card)라 칭하여지는, 카드형의 외부 기억 장치가 전자 장치에서 사용되는 외부 데이터 기억 장치로서 제안되었다.
이 메모리 카드에는 보조 데이터로서 관리 정보와 선택적인 데이터가 기억 매체인 메모리에 기억된다. 이러한 데이터와 관리 정보가 메모리 카드로부터 예를 들면, 호스트(host)측 컴퓨터로 전달될 때, 데이터 또는 관리 정보는 데이터 또는 정보를 출력하기 이전에 셀(cell) 오동작에 의해 만들어진 에러에 대해 데이터를 정정하도록 에러 정정 코드를 사용해 에러 정정된다.
상기의 관리 정보로는 기억된 데이터의 순차를 나타내는 논리 어드레스와 같이, 데이터를 관리하는 데이터 의존 정보(데이터 관리 정보)에 부가하여, 메모리에서 데이터를 유지하는 영역이 사용가능한가 여부를 지정하는 정보와 같이, 데이터 기억 영역의 상태를 관리하기 위한 정보(영역 관리 정보)가 때때로 기억된다.
영역 관리 정보는 메모리 영역에 관한 정보, 즉 데이터에 대해 독립적인 정보이므로, 데이터의 기억 이후에는 데이터를 다시 기억할 필요가 생겨서, 영역 관리 정보는 통상 데이터를 다시 쓰기(rewriting)하지 않고 스스로 다시 쓰기 되도록 적용된다.
또한, 영역 관리 정보에 에러가 생기고, 통상적인 에러 정정 코드가 정보를 에러 정정하는데 사용되면, 에러 정정 코드는 정보가 다시 쓰기 될 때마다 다시 쓰기 될 필요가 있다. 그래서, 영역 관리 정보에 대해서는 에러 정정을 위한 에러 정정 코드를 사용하지 않고 에러를 제거하기 위해, 같은 정보가 바람직하게 다수의 비트에 분산되고 이 상태로 기억된다.
한편, 에러를 제거하기 위해 같은 정보가 다수의 비트에 분산되고 이 상태로 기억되면, 영역 관리 정보는 때때로 같은 정보가 기억된 다수의 셀에서 오동작이 발생될 때 에러 정정될 수 없다. 그러므로, 일단 에러 정정된 영역 관리 정보는 에러 정정된 정보인 것으로 식별될 수 있어서, 다음 번 메모리 카드에 기억되는 경우, 데이터는 오동작이 행해진 영역 이외의 영역에 기억되는 것이 바람직하다.
그러므로, 본 발명의 목적은 영역 관리 정보가 에러 정정되었나 여부가 식별될 수 있는 방식으로 데이터를 출력하는 기억 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 영역 관리 정보가 에러 정정되었나 여부가 식별될 수 있는 방식으로 기억 장치가 데이터를 데이터 처리 장치에 전달하고, 정의된 데이터 처리를 실행하기 위해 영역 관리 정보가 에러 정정되었나 여부를 데이터 처리 장치가 식별하는 데이터 처리 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 기억 장치 및 데이터 처리 시스템에서 사용되는 데이터 처리 방법을 제공하는 것이다.
한 특성으로, 본 발명은 데이터가 기억된 영역의 상태를 관리하는 영역 관리 정보 및 데이터를 기억하는 기억 수단, 기억 수단으로부터 판독된 영역 관리 정보에 소정의 에러가 주어지면 영역 관리 정보를 그 에러에 대해 정정하는 에러 정정 처리 수단, 및 기억 수단으로부터 영역 관리 정보를 판독하고, 영역 관리 정보에 에러 정정 처리 수단에 의해 정정될 수 있는 에러가 주어지면 영역 관리 정보를 에러 정정 처리 수단에 공급하는 데이터 처리 수단을 포함한 기억 장치를 제공한다. 데이터 처리 수단은 에러 정정된 영역 관리 정보에 에러 정정 사실을 지정하는 플래그를 부가하고, 그 결과의 정보를 출력한다.
주어진 기억 장치에서, 기억 수단으로부터 판독된 영역 관리 정보가 에러 정정 수단에 의해 정정 가능한 에러를 가지면, 데이터 처리 장치는 영역 관리 정보를 에러 정정 수단에 전달하고, 정정된 에러 관리 정보를 출력하도록 에러 정정된 영역 관리 정보에 에러 정정 사실을 나타내는 플래그를 부가한다.
또 다른 특성으로, 본 발명은 데이터가 기억된 영역의 상태를 관리하는 영역 관리 정보 및 데이터를 기억하는 기억 수단과, 데이터 및 영역 관리 정보를 기억 장치에 공급하거나 기억 장치에 의해 출력된 데이터 및 영역 관리 정보를 수신하여 처리하는 데이터 처리 장치를 포함하는 데이터 처리 시스템을 제공한다.
기억 장치에 기억된 영역 관리 정보가 정정 가능한 에러를 가지면, 데이터 처리 시스템은 영역 관리 정보를 에러 정정하고, 에러 정정된 영역 관리 정보에 에러 정정 사실을 지정하는 플래그를 부가하여 부가된 플래그와 함께 정정된 영역 관리 정보를 데이터 처리 장치에 전한다.
데이터 처리 장치에 의한 에러 정정 사실을 나타내는 플래그가 기억 장치로부터 들어온 영역 관리 정보에 부가되면, 데이터 처리 시스템은 정의된 처리를 실행하기 위하여 플래그에 의해 입력 영역 관리 정보가 에러 정정된 정보임을 인식한다.
또 다른 특성으로, 본 발명은 기억 수단에 기억된 데이터 및 데이터가 기억된 영역의 상태를 관리하기 위한 영역 관리 정보를 판독하는 단계와, 영역 관리 정보가 정정 가능한 에러를 가지면 기억 수단으로부터 판독된 영역 관리 정보를 에러 정정하고, 에러 정정 사실을 나타내는 플래그가 부가되는 정정된 정보를 출력하는 단계를 포함하는 데이터 처리 방법을 제공한다.
데이터 처리 장치에 의한 에러 정정 사실을 나타내는 플래그가 기억 장치로부터 들어온 영역 관리 정보에 부가되면, 데이터 처리 방법은 정의된 처리를 실행하기 위하여 플래그에 의해 입력 영역 관리 정보가 에러 정정된 정보임을 인식한다.
도 1은 데이터 처리 장치의 구조를 나타내는 블록도.
도 2는 메모리 카드의 구조를 도시하는 블록도.
도 3은 플래시 메모리에서 기억 영역의 구조를 도시하는 도면.
도 4는 분산 관리 정보를 설명하는 도면.
도 5는 영역 관리 플래그의 예를 도시하는 도면.
도 6은 부가 관리 정보를 설명하는 도면.
도 7은 집합 관리 정보의 구조를 설명하는 도면.
도 8은 메모리 카드에서 영역 관리 정보에 대한 판독 처리의 예를 설명하는 흐름도.
도 9는 데이터 처리 장치에서 데이터 처리의 예를 설명하는 흐름도.
* 도면의 주요부분에 대한 부호의 설명 *
11 : 데이터 프로세서 12 : 직렬 인터페이싱 회로
13 : 레지스터 14 : 제어기
도면을 참고로, 본 발명의 양호한 실시예가 상세히 설명된다.
도 1에 도시된 실시예에서, 본 발명은 호스트측 장치인 데이터 처리 장치(10)와, 이 데이터 처리 장치(10)에 직렬 인터페이스를 통해 연결된 외부 기억 장치인 메모리 카드(20)로 구성되는 시스템(1)에 적용된다.
비록 여기서 도시된 시스템은 직렬 인터페이스를 통해 데이터 처리 장치(10)와 메모리 카드(20) 사이에서 데이터를 교환하도록 적용되지만, 본 발명은 또한 데이터 교환이 병렬 인터페이스를 통하는 시스템에도 적용될 수 있다.
본 시스템(1)에서 사용되는 데이터 처리 장치(10)는 정의된 프로그램을 실행하는 데이터 프로세서(11), 외부 장치인 메모리 카드(20)와 데이터를 교환하는 직렬 인터페이싱(serial interfacing) 회로(12), 데이터 프로세서(11)로부터 전달된 데이터를 일시적으로 기억하도록 데이터 프로세서(11)와 직렬 인터페이싱 회로(12) 사이에 제공된 레지스터(13), 및 이러한 구성성분에 의한 처리를 제어하도록 데이터 프로세서(11), 직렬 인터페이싱 회로(12), 또한 레지스터(13)에 연결된 제어기(14)를 포함한다.
데이터 프로세서(11)가 정의된 프로그램을 실행할 때, 데이터가 외부 기억 장치인 메모리 카드(20)에 기억될 필요가 있는 것으로 데이터 처리 장치(10)가 발견하면, 데이터 프로세서(11)는 제어기(14)에 의한 제어하에서 기억을 위한 데이터,데이터를 관리하는데 요구되는 관리 정보, 또는 기록 명령과 같은 제어 데이터를 레지스터에 기록한다.
직렬 인터페이싱 회로(12)는 제어기(14)에 의한 제어하에서 레지스터(13)로부터 기억을 위한 데이터, 관리 정보, 또는 기록 명령을 판독하고, 이들을 클럭 신호 및 스테이터스 신호와 함께 전달되는 직렬 데이터로 변환한다. 관리 정보는 데이터를 관리하기 위한 정보인 데이터 관리 정보와, 데이터를 기억하는 영역의 상태를 관리하기 위한 영역 관리 정보로 구성된다.
또한, 정의된 프로그램을 실행하기 위해, 데이터가 외부 기억 장치인 메모리 카드(20)로부터 판독될 필요가 있는 것으로 데이터 처리 장치(10)의 데이터 프로세서(11)가 발견하면, 데이터 프로세서(11)는 제어기(14)에 의한 제어하에서 제어 데이터인 판독된 명령을 레지스터(13)에 기록한다. 직렬 인터페이싱 회로(12)는 클럭 신호 및 스테이터스 신호와 함께 직렬 데이터를 전달하도록 제어기(14)에 의한 제어하에서 레지스터(13)로부터 판독된 명령을 판독한다.
판독된 명령에 따라 메모리 카드(20)로부터 전달된 데이터 또는 관리 정보는 직렬 인터페이싱 회로(12)에 의해 병렬 데이터로 변환되어 레지스터(13)에 기록된다. 데이터 프로세서(11)는 처리 과정을 달성하기 위해, 제어기(14)에 의한 제어하에서 레지스터(13)로부터 정의된 이들 데이터 또는 관리 정보를 판독한다. 이때, 제어기(14)는 정의된 데이터 처리 과정을 달성하기 위해, 이후 설명될 정보에 부가된 플래그로부터 메모리 카드(20)에서 전달된 영역 관리 정보의 상태를 식별한다.
메모리 카드(20)와 같이 외부 기억 장치와 데이터 교환이 가능하면, 본 발명의 시스템에서 사용되는 데이터 처리 장치에는 특별한 제한이 없다. 그래서, 개인용 컴퓨터, 디지탈 정지 카메라, 또는 디지탈 비디오 카메라와 같은 다양한 데이터 처리 장치가 사용될 수 있다.
본 시스템(1)에서, 데이터 처리 장치(10)와 메모리 카드(20)는 직렬 인터페이스를 통해, 특별히 적어도 3개의 데이터 선 (SCLK), (State), 및 (DIO)을 통해 상호 연결된다. 즉, 데이터 처리 장치(10)와 메모리 카드(20)는 데이터 선을 통하여 데이터를 교환하기 위해, 적어도 데이터 전송 동안에 클럭 신호를 전송하는 제 1 데이터선(SLCK), 데이터 전송에 요구되는 스테이터스 신호를 전송하는 제 2 데이터 선(State), 및 메모리 카드(20)에 기록되는 데이터나 메모리 카드(20)로부터 판독되는 데이터를 일렬로 전송하는 제 3 데이터선(DIO)에 의해 상호 연결된다.
데이터는 한 단위로서 통상 헤더(header)와 실제 데이터(real data)로 구성되는 파일(file)에 의하여 데이터 처리 장치(10)와 메모리 카드(20) 사이에서 교환됨을 주목한다. 파일 헤더에는 파일에 억세스하기 위한 정보와 데이터 처리 장치(10)가 실행하는 프로그램에 의해 요구되는 정보가 기억된다.
도 2를 참고로, 메모리 카드(20)는 정의된 데이터 또는 관리 정보를 메모리상에 유지하는 플래시 메모리(21), 및 데이터 처리 장치(10)와 데이터를 교환하기 위한 직렬/병렬-병렬/직렬 인터페이싱 회로(S/P-P/S 인터페이싱 회로)(22)를 포함한다. 메모리 카드(20)는 또한 S/P-P/S 인터페이싱 회로(22)로부터 공급된 데이터 또는 관리 정보의 일시적인 기억을 위해 플래시 메모리(21)와 S/P-P/S 인터페이싱 회로(22) 사이에 제공되는 레지스터(23), 및 에러 정정 코드를 근거로 레지스터(23)에 기록된 데이터 또는 데이터 관리 정보를 에러 정정하도록 레지스터(23)에 연결된 에러 정정 회로(24)를 포함한다. 메모리 카드(20)는 또한 레지스터(23)로부터 판독된 영역 관리 정보를 이 영역 관리 정보 및 그에 부가된 결과의 데이터(여기서는 영역 관리 플래그라 칭하여지는)로 구성된 정보로 변환하거나 플래시 메모리(21)로부터 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변환하는 변환부(25)를 포함한다. 메모리 카드(20)는 또한 플래시 메모리(21)로부터 판독된 영역 관리 플래그를 에러 정정하도록 이 변환부(25)에 연결된 에러 정정부(26)와, 플래시 메모리(21), S/P-P/S 인터페이싱 회로(22), 레지스터(23), 및 변환부(25)의 처리 동작을 제어하도록 적용되어 연결된 제어기(27)를 포함한다.
S/P-P/S 인터페이싱 회로(22)는 데이터선(SCLK), (State), 및 (DIO)를 통해 데이터 처리 장치(10)와 데이터를 교환하기 위해, 상술된 적어도 3개의 데이터선(SCLK), (State), 및 (DIO)를 통해 데이터 처리 장치(10)의 직렬 인터페이싱 회로(12)에 연결된다. 즉, S/P-P/S 인터페이싱 회로(22)는 데이터 처리 장치(10)의 직렬 인터페이싱 회로(12)로부터 전달되는 직렬 데이터를 레지스터(23)에 기록되는 병렬 데이터로 변환한다. S/P-P/S 인터페이싱 회로(22)는 또한 변환된 직렬 데이터를 데이터 처리 장치(10)의 직렬 인터페이싱 회로(12)에 전하도록 레지스터(23)로부터 판독된 병렬 데이터를 변환시킨다. 직렬 데이터는 데이터 처리 장치(10)로부터 전달된 클럭 신호에 의해 동기화가 이루어질 때 제 1 데이터선(SCLK)을 통해 S/P-P/S 인터페이싱 회로(22)와 데이터 처리 장치(10) 사이에서 전송된다. 이때, 제 3 데이터선(DIO)을 통해 교환되는 직렬 데이터의 데이터 종류는 제 2 데이터선(State)을 통해 교환되는 스테이터스 신호에 의해 구별된다. 데이터 종류는 예를 들면 플래시 메모리(21)에 기억되는 데이터, 플래시 메모리(21)로부터 판독되는 데이터, 및 메모리 카드(20)의 동작을 제어하는 제어 데이터로 열거될 수 있다.
데이터 처리 장치(10)로부터 전달된 데이터가 기록 명령이나 판독 명령과 같은 제어 데이터이면, S/P-P/S 인터페이싱 회로(22)는 제어 데이터를 제어기(27)에 전한다.
레지스터(23)는 플래시 메모리(21)와 S/P-P/S 인터페이싱 회로(22) 사이에 교환되는 데이터를 일시적으로 기억한다.
에러 정정 회로(24)는 S/P-P/S 인터페이싱 회로(22)에 의해 레지스터(23)에 기록된 데이터에 에러 정정 코드를 부가한다. 에러 정정 회로(24)는 또한 플래시 메모리(21)로부터 판독되는 데이터와 레지스터(23)에 기록되는 데이터를 에러 정정한다.
변환 회로(25)는 레지스터(23)로부터 판독된 관리 정보 중 영역 관리 정보를 영역 관리 플래그로 변환하면서, 플래시 메모리(21)로부터 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변환한다.
예를 들어, 플래시 메모리(21)로부터 판독되어 변환부(25)에 전해진 영역 관리 플래그에 1-비트 에러가 생기면, 에러 정정부(26)는 영역 관리 플래그를 에러 정정한다. 즉, 에러 정정부(26)의 가능한 에러 정정 범위는 에러 정정부(26)가 1-비트 에러에 대한 정정을 실행하도록 미리 설정된다. 즉, 에러를 나타내는 영역 관리 플래그는 에러 정정부(26)에 의해 정정 가능한 에러를 나타내는 플래그와, 에러 정정부(26)에 의해 정정 가능하지 않은 에러를 나타내는 플래그로 분류된다. 그래서, 영역 관리 플래그로부터 변환부(25)에 의해 변환된 영역 관리 정보는 에러에 의해 변조되지 않는 영역 관리 정보, 에러 정정되는 영역 관리 정보, 및 에러에 의해 변조되고 에러 정정될 수 없는 영역 관리 정보로 분류된다.
제어기(27)는 S/P-P/S 인터페이싱 회로(22)로부터 전달된 제어 데이터를 근거로 메모리 카드(20)의 동작을 제어한다. 즉, 제어기(27)는 S/P-P/S 인터페이싱 회로(22)로부터 전해진 기록 명령에 따라 레지스터(23)에 임시 기록된 데이터 또는 관리 정보를 레지스터(23)로부터 판독하고, 판독된 데이터나 정보를 플래시 메모리(21)에 기억한다. 관리 정보 중에서, 영역 관리 정보는 먼저 변환부(25)에 전해지고, 여기서 플래시 메모리(21)에 기억되는 영역 관리 플래그로 변환된다.
또한, 제어기(27)는 S/P-P/S 인터페이싱 회로(22)로부터의 판독 명령에 따라 플래시 메모리(21)로부터 데이터 또는 관리 정보를 판독하고, 판독된 데이터나 정보를 레지스터(23)에 기록한다. 이때, 제어기(27)는 먼저 플래시 메모리(21)로부터 판독된 관리 정보 중 관리 정보 플래그를 변환부(25)에 전달하고, 여기서 이를 레지스터(23)에 기록되는 영역 관리 정보로 변환한다. 변환부(25)에 의해 변환된 영역 관리 정보를 레지스터(23)에 기록할 때, 제어기(27)는 이 영역 관리 정보에 영역 관리 정보가 상술된 바와 같이 에러에 의해 변조되지 않는가, 에러 정정되는 영역 관리 정보인가, 또는 에러로 변조되고 에러 정정될 수 없는 영역 관리 정보인가 여부를 식별하기 위한 플래그를 부가한다.
제어기(27)에는 실수 삭제 방지 스위치(28)가 연결된다. 이 실수 삭제 방지 스위치(28)가 on 상태이면, 제어기(27)는 플래시 메모리(21)에 기억된 데이터의 삭제를 명령하는 제어 데이터가 데이터 처리 장치(10)로부터 전해지더라도 플래시 메모리(21)에 기억된 데이터를 삭제하는 제어를 실행하지 않는다. 그래서, 메모리 카드(20)에서 플래시 메모리(21)에 기억된 데이터가 삭제될 수 있는 상태와 플래시 메모리(21)에 기억된 데이터가 삭제될 수 없는 상태 사이에서 실수 삭제 방지 스위치(28)에 의해 교환되는 것이 가능하다.
기억되는 데이터, 영역 관리 정보, 또는 기록 명령이 데이터 처리 장치(10)에서 메모리 카드(20)로 전달되면, S/P-P/S 인터페이싱 회로(22)는 이들 데이터를 제어기(27)로 전달되는 병렬 데이터로 변환한다. 한편, 소정의 데이터 또는 관리 정보는 제어기(27)의 제어하에서 레지스터(23)에 기록된다.
레지스터(23)에 기록되는 데이터 또는 영역 관리 정보에는 에러 정정 회로(24)에 의해 영역 관리 정보 이외의 것에 대해 에러 정정 코드가 부가된다.
S/P-P/S 인터페이싱 회로(22)로부터 전달된 기록 명령을 근거로, 제어기(27)는 레지스터(23)로부터 정의된 데이터 및 관리 정보를 판독하고, 판독된 데이터나 정보를 플래시 메모리(21)에 기록한다. 레지스터(23)로부터 판독된 관리 정보 중에서는 영역 관리 정보가 제어기(27)의 제어하에서 변환부(25)로 먼저 전해진다. 변환부(25)로 전달된 영역 관리 정보는 이 변환부(25)에 의해 영역 관리 플래그로 변환된다. 제어기(27)는 변환부(25)에 의해 변환된 영역 관리 플래그를 플래시 메모리(21)에 기록한다.
데이터 처리 장치(10)에서 메모리 카드(20)로 판독된 명령이 공급될 때, S/P-P/S 인터페이싱 회로(22)는 판독된 명령을 제어기(27)에 전한다.
제어기(27)는 플래시 메모리(21)로부터 데이터 또는 관리 정보를 판독하고, S/P-P/S 인터페이싱 회로(22)로부터 전달된 판독 명령을 근거로 레지스터(23)에 데이터나 정보를 기록한다. 이때, 제어기(27)는 먼저 플래시 메모리(21)로부터 판독된 영역 관리 플래그를 먼저 변환부(25)에 전한다. 변환부(25)에 전달된 영역 관리 플래그는 이 변환부(25)에 의해 영역 관리 정보로 변환된다. 영역 관리 플래그에 에러 정정부(26)로 정정 가능한 에러가 있으면, 제어기(27)는 이 영역 관리 플래그를 에러 정정부(26)에 전달한다. 제어기(27)는 에러 정정부(26)에 의해 정보가 에러 정정되었다는 사실을 지정하는 플래그를 에러 정정된 영역 관리 정보에 부가하고, 그 결과의 데이터를 레지스터(23)에 기록한다.
레지스터(23)에 기록된 관리 정보 또는 데이터의 데이터 관리 정보가 에러로 변조되면, 이 레지스터(23)에 연결된 에러 정정 회로(24)는 에러 정정 코드를 근거로 이들 에러를 정정한다.
S/P-P/S 인터페이싱 회로(22)는 제어기(27)에 의한 제어하에서 레지스터(23)로부터 데이터 또는 영역 관리 정보를 판독하고, 그 데이터나 정보를 데이터 처리 장치(10)에 전달되는 직렬 데이터로 변환한다.
비록 상기의 설명은 에러 정정된 영역 관리 정보에 에러 정정 사실을 나타내는 플래그를 부가하도록 구성되지만, 유사하게 에러 정정된 데이터 관리 정보나 데이터에 에러 정정 사실을 지정하는 플래그를 부가하는 것도 가능하다.
부가하여, 비록 상기의 설명은 에러 정정 회로(24)가 메모리 카드(20)에 제공된 시스템으로 구성되고 데이터 또는 데이터 관리 정보가 메모리 카드(20)에서 에러 정정되지만, 본 발명은 또한 데이터 처리 장치가 에러 정정 회로를 갖고 데이터 관리 정보의 데이터가 데이터 처리 장치 측에서 에러 정정되는 시스템에도 적용될 수 있다. 이 경우에, 데이터 처리 장치(10)와 메모리 카드(20) 사이에서 교환되는 것은 부가된 에러 정정 코드를 갖는 데이터이다.
이후에는 메모리 카드(20)상에 장착된 플래시 메모리(21)의 기억 영역 구조가 설명된다.
플래시 메모리(21)의 기억 영역은 도 3의 (a)에 도시된 바와 같이, 기억 단위인 다수의 셀(cell)로 구성되고, 데이터 삭제 단위인 다수의 블록(block)으로 나뉜다. 이들 블록은 기억된 부트(boot) 데이터인 부트 블록, 즉 메모리 카드(20)의 시작부에서 데이터 처리 장치(10)에 의해 초기에 판독되는 데이터와, 선택적인 기록 데이터인 데이터 블록으로 분류된다. 이들 블록에는 각 블록에 적합한 물리 어드레스가 할당된다.
각 블록은 데이터 삭제 단위인 동시에 파일 관리를 위한 최소 단위이다. 즉, 파일은 하나 또는 다수의 블록으로 기억되고 같은 블록이 다수의 파일에 의해 사용될 수 없도록 설계된다.
각 블록은 1 및 0 인 2개의 상태를 가질 수 있는 정보가 각각 기억되는 다수의 셀로 구성된다.
초기 상태에서, 각 블록의 모든 비트는 비트 기본의 변환이 단지 1에서 0으로만 가능하도록 1로 설정된다. 그러므로, 1과 0으로 구성된 데이터가 플래시 메모리(21)에 기록되는 경우, 1의 비트는 유지되는 반면, 0은 데이터 기록 이전에 1에서 0으로 변한다.
일단 기록된 데이터가 플래시 메모리(21)로부터 삭제되면, 데이터는 블록의 모든 비트를 1로 설정하도록 블록 기본으로 한꺼번에 초기화된다. 이는 블록이 다시 데이터 기록을 허용하는 상태가 되도록 블록내에 기록된 데이터를 한꺼번에 삭제한다.
플래시 메모리(21)의 각 블록은 도 3의 (b)에 도시된 바와 같이 데이터 기록 또는 판독 단위인 다수의 페이지(page)로 구성된다. 각 페이지는 예를 들면, 512 바이트의 기록 용량을 갖는 기억 단위를 나타낸다. 데이터를 플래시 메모리(21)에 기록할 때, 페이지 단위로 레지스터(23)로부터 판독된 데이터는 페이지를 기본으로 플래시 메모리(21)에 기록된다. 데이터를 플래시 메모리(21)로부터 판독할 때, 데이터는 페이지를 근거로 제어기(25)에 의해 판독되어, 레지스터(23)에 전달된다.
판독 유닛 또는 데이터 기록을 나타내는 각 페이지는 데이터 기억 영역과 관리 정보 기억 영역을 갖는다. 데이터 기억 영역은 선택적인 데이터를 기록하는 영역을 의미하고, 관리 정보 기억 영역은 데이터 기억 유닛에 기록된 데이터의 관리를 위해 요구되는 정보(관리 정보)를 기억하는 영역을 의미한다.
관리 정보 기억 영역은 16 바이트의 영역을 갖고, 그 중에서 처음 3개 바이트는 정보가 블록 기본으로 한꺼번에 초기화되지 않고 기록될 수 있는 오버라이트(overwrite) 영역으로 설정된다. 관리 정보 기억 영역의 나머지 13 바이트는 정보를 다시 쓰기 할 때 블록 기본으로 한꺼번에 초기화하기 위한 통상 영역으로 설정된다.
관리 정보는 블록을 구성하는 각 페이지의 관리 정보 기억 영역에 기억된다. 특히, 문제가 되는 블록의 관리에 필요한 정보인 소위 분산 관리 정보는 도 3의 (c)에 도시된 바와 같이 각 블록의 시작 페이지에서 관리 정보 기억 영역에 기억된다. 또한, 각 블록의 페이지 2에서와 같이 각 페이지의 관리 정보 기억 영역에는 시작 페이지의 관리 정보 기억 영역에 기억된 분산 관리 정보와 똑같은 관리 정보가 여분 분산 관리 정보로서 기억된다. 다른 경우의 부족한 정보를 이어가기 위한 소위 부가 관리 정보는 각 블록의 마지막 페이지 중 관리 정보 기억 영역에 기억됨을 주목한다.
이와 같이, 각 블록을 관리하기 위한 분산 관리 정보는 메모리 카드(20)상에 장착된 플래시 메모리(21)에서 각 블록내의 관리 정보 기억 영역에 기억된다. 문제의 블록이 파일의 선두 끝부분 블록인가 여부에 관한 정보와, 파일이 다수의 파일로 구성되는 경우, 블록 연결을 지정하는 정보는 이 분산 관리 정보에 의해 얻어질 수 있다.
각 블록의 분산 관리 정보를 수집함으로서, 메모리 카드(20)는 집합 관리 정보를 파일로 플래시 메모리(21)에 기억하기 위해 전체적으로 플래시 메모리(21)를 관리하기 위한 정보인 집합 관리 정보를 공식화한다.
데이터가 데이터 처리 장치(10)와 메모리 카드(20) 사이에서 교환되어야 하면, 데이터 처리 장치(10)는 통상 플래시 메모리(21)로부터 집합 관리 정보를 판독하여 각 블록을 억세스하는데 요구되는 정보를 구한다. 이는 각 블록에 기억된 분산 관리 정보에 억세스할 필요성을 제거하여, 각 데이터 억세스에서 보다 신속한 데이터 억세스를 가능하게 한다.
특별히 분산 관리 정보, 부가 관리 정보, 및 집합 관리 정보가 더 설명된다.
분산 관리 정보는 각 페이지에 제공된 16-바이트 관리 정보 기억 영역에 기억되는 블록 관리를 위한 관리 정보이다. 이 분산 관리 정보는 도 4에 도시된 바와 같이 1-바이트 가능/불가능 플래그, 1-바이트 블록 플래그, 4-비트 최종 플래그, 4-비트 참조 플래그, 1-바이트 관리 플래그, 2-바이트 논리 어드레스, 2-바이트 연결 플래그, 2-바이트 분산 관리 정보 에러 정정 코드, 및 3-바이트 데이터 에러 정정 플래그로 구성된다. 이들 플래그 중에서, 가능/불가능 플래그, 블록 플래그, 최종 플래그, 및 참조 플래그는 관리 정보 기억 영역의 초기 3-바이트 오버라이트 영역에 기억된다.
관리 정보 기억 영역의 통상 13 바이트 영역에는 관리 플래그, 논리 어드레스, 연결 어드레스, 리저브 영역, 분산 관리 정보용 에러 정정 코드, 및 데이터용 에러 정정 코드가 기억된다.
가능/불가능 플래그는 블록이 사용 가능한 상태 또는 사용 불가능 상태에 있는가 여부를 나타낸다. 즉, 회복될 수 없는 에러가 블록에 생기면, 가능/불가능 플래그는 문제의 블록이 사용 불가능 상태임을 지정한다.
블록 플래그는 블록의 사용 가능한 상태를 지정한다. 특히, 블록 플래그는 아직까지 사용 안됨, 선두에서 사용, 사용, 또한 아직까지 미삭제의 4가지 상태를 나타낸다. 이들 중에서, 블록 플래그 아직까지 사용 안됨은 블록이 아직까지 사용되지 않았거나 이미 삭제되어 데이터가 즉시 기록될 수 있도록 모든 비트가 1인 초기 상태에 있음을 지정한다. 블록 플래그 선두에서 사용은 문제의 블록이 파일의 선두에서 사용됨을 지정한다. 블록 플래그 사용은 문제의 블록이 파일의 선두 이외에서 사용되고 있음을 지정한다. 즉, 블록 플래그가 사용이면, 이는 문제의 블록이 다른 블록과 연결됨을 나타낸다. 플래그 아직까지 미삭제는 그 블록에 기록된 데이터가 필요하지 않음을 지정한다. 부트 플래그를 유지하는 블랏(blot) 블록에서는 부트 플래그가 선두에서 사용된다.
주어진 메모리 카드(20)에서, 블록에 기억된 불필요한 데이터가 삭제되면, 블록 플래그는 먼저 미삭제 상태로 설정되고, 처리 시간에 허가가 있으면, 블록 플래그가 아직까지 미삭제 상태인 블록이 삭제된다. 이는 메모리 카드(20)가 데이터 삭제 처리를 보다 효과적으로 실행하는 것을 허용한다.
최종 플래그는 파일이 문제의 블록으로 종료되는가 여부를 나타내는 플래그로, 특히 2가지 상태, 즉 블록 연속 및 최종 블록임을 지정하는 플래그이다. 블록 연속 상태는 문제의 블록에 기억된 파일이 소모되지 않고 다른 블록으로 이어짐을 지정한다. 최종 블록 상태는 문제의 블록에 기억된 파일이 이 블록으로 종료됨을 지정한다.
플래그 참조은 부가 관리 정보에 대한 참조를 지정하는 플래그로, 특히 참조 정보가 존재하지 않음 및 참조 정보가 존재함의 2가지 상태를 나타낸다. 참조 정보가 존재하지 않음 상태는 블록의 최종 페이지에서 관리 정보 기억 영역에 유효한 부가 관리 정보가 없음을 지정한다. 참조 정보가 존재함 상태는 블록의 최종 페이지에서 관리 정보 기억 영역에 유효한 부가 관리 정보가 존재함을 지정한다.
관리 플래그는 블록의 특성을 지정하는 것으로, 예를 들면 블록이 판독 전용 블록이라는 것과 같은 특성이나 블록이 또한 기록가능다는 것과 같은 특성을 지정한다. 이 관리 플래그는 문제의 블록이 부트 블록 또는 데이터 블록인가 여부를 나타낸다.
논리 어드레스는 문제의 블록의 논리 어드레스를 지정한다. 논리 어드레스의 값은 예를 들면, 데이터 다시 쓰기에 대한 요구가 발생될 때 갱신된다. 한편, 논리 어드레스의 값은 똑같은 값의 논리 어드레스가 다수의 블록에 의해 동시에 소유되지 않도록 설정된다.
연결 어드레스는 연결 블록에 연결된 다른 블록의 논리 어드레스를 지정한다. 즉, 문제의 블록에 연결된 파일이 다른 블록에 연결되면, 연결 어드레스는 파일의 나머지 부분이 기억된 논리 어드레스의 값을 나타낸다.
분산 관리 정보용 에러 정정 코드는 관리 플래그, 논리 어드레스, 연결 어드레스, 및 반대 영역에 기록된 분산 관리 정보의 데이터용 에러 정정 코드이다.
데이터용 에러 정정 코드는 데이터용 에러 정정 코드가 기록되었던 페이지의 데이터 기억 영역에 기억된 데이터용 에러 정정 코드이다.
상술된 분산 관리 정보의 가능/불가능 플래그, 블록 플래그, 최종 플래그, 및 참조 플래그는 데이터 기억 영역의 상태를 관리하기 위한 정보, 즉 영역 관리 정보를 나타낸다. 데이터에 관계없이 참조 플래그를 다시 쓰기 할 필요가 생기므로, 상술된 분산 관리 정보용 에러 정정 코드에 의해 에러 정정이 행해지지 않고, 에러를 제거하기 위해 정보 항목을 지정한 코드와 같은 정의된 양의 코드의 여유 데이터를 갖는 플래그(영역 관리 플래그)로서 관리 정보 기억 영역에 기억된다.
특별히, 이들 항목의 영역 관리 정보는 부가된 여유 데이터를 갖는 영역 관리 플래그로 변환부(25)에 의해 변환되고, 도 5에 도시된 바와 같이, 관리 정보 기억 영역의 오버라이트 영역에 원래 1-비트 정보에 대해서는 4-비트 정보로, 또한 원래 2-비트 정보에 대해서는 8-비트 정보로 기억된다.
즉, 가능/불가능 플래그는 블록이 사용가능한 상태이거나 사용 불가능 상태인 경우에 각각 1-비트 정보 1과 1-비트 정보 0으로 나타내진다. 관리 정보 기억 영역에 기억하기 위해, 가능/불가능 플래그는 예를 들면, 기억에 앞서 여유 비트를 부가함으로서 1-바이트 정보 11111111 또는 0로 변환된다.
블록 플래그는 블록이 아직까지 사용되지 않음, 선두 끝부분에서 사용됨, 사용됨, 또한 아직까지 삭제되지 않음인 경우에 각각 2-비트 정보 11, 10, 1, 및 0으로 나타내진다. 관리 정보 기억 영역에 기억하기 위해, 블록 플래그는 예를 들면, 기억되는 여유 비트를 부가함으로서 1-바이트 정보 1111 1111, 1111 0000, 0000 1111, 0000 0000으로 변환된다.
최종 플래그는 연속 블록 및 최종 블록에 대해 각각 1-비트 정보 1 및 1-비트 정보 0으로 나타내진다. 관리 정보 기억 영역에 기억하기 위해, 최종 플래그는 여유 데이터를 부가함으로서 예를 들면, 기억에 앞서 4-비트 정보 1111 또는 0으로 변환된다.
참조 플래그는 참조 정보가 없음 및 참조 정보가 존재함인 경우에 대해 각각 1-비트 정보 1 및 1-비트 정보 0으로 나타내진다. 관리 정보 기억 영역에 기억하기 위해, 참조 플래그는 예를 들면, 기억에 앞서 4-비트 정보 1111 또는 0으로 변환된다.
영역 관리 정보는 그에 부가된 여유 데이터를 갖는 영역 관리 플래그로 관리 정보 기억 영역에 기억되므로, 원래 영역 관리 정보는 문제의 플래그를 유지하는 셀의 오동작 결과로 에러가 생기더라도 영역 관리 플래그의 1 및 0의 수를 비교함으로서 인식될 수 있다.
부가 관리 정보는 블록의 최종 페이지 중 16-바이트 관리 정보 기억 영역에 기억되는 정보로, 다른 경우에 불충분한 정보를 연명하기 위한 부가 정보를 포함한다.
이 부가 관리 정보는 예를 들면, 1-바이트 가능/불가능 플래그, 1-바이트 블록 플래그, 4-비트 최종 플래그, 4-비트 참조 플래그, 1-바이트 식별 번호, 2-바이트 유효 데이터 크기, 부가 관리 정보용 2-바이트 에러 정정 코드, 및 데이터용 3-바이트 에러 정정 코드로 구성된다.
가능/불가능 플래그, 블록 플래그, 참조 플래그, 및 데이터용 에러 정정 코드는 분산 관리 정보에서와 유사하다. 부가 정보용 에러 정정 코드는 분산 관리 정보용 에러 정정 코드와 똑같고, 부가 관리 정보, 유효 데이터 크기, 및 리저브 영역에 기록된 데이터의 영역 관리 플래그를 제외한 식별 번호로 사용된다.
식별 번호와 유효 데이터 크기는 다른 경우에 부족한 분산 관리 정보를 연명하는 부가 정보로서 부가 관리 정보에 포함된다.
분산 관리 정보와 유사하게, 부가 관리 정보는 부가된 여유 데이터를 갖는 영역 관리 플래그인 가능/불가능 플래그, 블록 플래그, 최종 플래그, 및 참조 플래그와 같은 영역 관리 정보이고, 관리 정보 기억 영역에서 처음 3 바이트의 오버라이트 영역에 기억된다.
관리 정보 기억 영역에서 13-바이트의 통상 영역에는 식별 번호, 유효 데이터 크기, 부가 관리 정보용 에러 정정 코드, 및 데이터용 에러 정정 코드가 기억된다. 통상 영역의 나머지 5 바이트는 리저브 영역으로 설정된다.
식별 번호는 에러 처리를 위한 정보이다. 식별 번호의 값은 블록 데이터가 다시 쓰기 될 때마다 증가된다. 같은 논리 어드레스를 갖는 다수의 블록이 존재하도록 일부 종류의 에러가 생기면, 식별 번호는 이들 블록에 기록된 데이터가 새로운 것인가 또는 오래된 것인가 여부를 구별하는데 사용된다. 한편, 1-바이트 영역은 그 값이 0에서 255의 범위를 갖는 식별 번호로 사용되고, 그의 초기값 즉, 새로운 논리 어드레스를 사용할 때 초기에 설정된 식별 번호의 값은 0이다. 식별 번호가 255를 넘으면, 0으로 재설정된다. 같은 논리 번호를 갖는 다수의 블록이 존재하면, 더 작은 값의 식별 번호를 갖는 블록이 유효하다. 부트 블록에 대해서는 백업(backup)과 같은 식별 번호를 갖는 블록이 일반적인 값이다. 두 값이 다르면, 더 큰 값이 사용된다.
유효 데이터 크기는 블록내에서 유효한 데이터의 크기를 나타낸다. 즉, 블록내의 데이터 기억 영역에 빈 곳이 있으면, 유효 데이터 크기는 문제의 데이터 기억 영역에 기록된 데이터의 크기 값을 지정한다. 이때, 참조 플래그는 참조 정보가 존재함 상태로 설정된다. 블록내의 데이터 기억 영역에 빈 곳이 없으면, 유효 데이터 크기는 블록내의 데이터 기억 영역에 빈 곳이 없음을 지정하는 정보인 0xffff로 설정된다.
한편, 상술된 분산 관리 정보와 부가 관리 정보는 블록내 데이터가 최근의 정보를 나타내도록 갱신될 때마다 갱신된다.
집합 관리 정보는 각 블록의 분산 관리 정보를 수집하여 공식화한 정보로, 플래시 메모리(21)에 파일로 기억된다. 즉, 함께 수집된, 모든 파일의 관리를 위한 정보인 집합 관리 정보의 파일은 도 7에 도시된 바와 같이, 모든 블록의 분산 관리 정보로부터 공식화되어 정의된 블록의 데이터 기억 영역에 기억된다. 집합 관리 정보는 하나의 블록이나 다수의 블록에 기억될 수 있다. 데이터 처리 장치(10)는 통상 이 집합 관리 정보로 각 블록에 억세스하기 위한 정보를 얻는다.
즉, 메모리 카드에 효과적인 집합 관리 정보가 파일로 기억되면, 데이터 처리 장치(10)는 메모리 카드(20)를 관리하기 위한 관리 테이블을 공식화하도록 집합 관리 정보의 파일을 판독한다. 한편, 집합 관리 정보의 파일 중 선두 끝부분에 기억된 블록의 물리 어드레스는 부트 어드레스(boot address)에 포함된다. 데이터 처리 장치(10)는 이 물리 어드레스를 근거로 집합 관리 정보의 파일에 억세스한다.
도 8을 참고로, 이제는 메모리 카드(20)의 플래시 메모리(21)에서 판독된 관리 정보를 데이터 처리 장치(10)에 전달하는 처리 과정이 설명된다. 도 8에 도시된 데이터 처리는 영역 관리 정보가 플래시 메모리(21)에 기억된 4-비트 기본의 영역 관리 플래그로 변환된 예를 나타내는 것이고, 본 발명에 따른 메모리 카드에서의 데이터 처리는 이 경우에 제한되지 않음을 주목한다. 도 8에 도시된 데이터 처리는 영역 관리 정보가 에러 정정되면, 그 사실을 지정하는 플래그가 영역 관리 정보에 부가되고 결과의 데이터가 전송되는 예를 도시한다. 본 발명에 따른 메모리 카드의 데이터 처리에서는 또한 데이터 관리 정보가 에러 정정된 경우, 데이터 관리 정보의 에러 정정 사실을 나타내는 플래그를 부가하고 결과의 데이터를 전송하는 것도 가능하다.
메모리 카드(20)의 플래시 메모리(21)로부터 관리 정보를 판독하기 위해, 단계(S11)에서는 영역 관리 플래그가 플래시 메모리(21)로부터 제어기(27)에 의해 판독된다.
이어서, 단계(S12)에서, 모든 영역 관리 플래그는 영역 관리 플래그가 1111 또는 0인가 여부에 대해 4-비트 단위로 제어기(27)에 의해 체크된다.
영역 관리 플래그가 1111 또는 0이면, 프로그램은 프로그램이 단계(S16)로 옮겨지기 이전에 영역 관리 플래그가 변환부(25)에 의해 영역 관리 정보로 변환되는 단계(S13)로 옮겨진다.
영역 관리 플래그가 1111 또는 0이 아니면, 프로그램은 단계(S14)로 옮겨진다. 단계(S14)에서는 제어기(27)에 의해 영역 관리 플래그가 1110, 1101, 1011, 또는 111인가 여부나 1, 10, 100, 또는 1000인가 여부가 체크된다.
영역 관리 플래그가 1110, 1101, 1011, 111 또는 1, 10, 100, 1000 중 하나가 아닌 것으로 발견되면, 에러 처리가 실행된다.
영역 관리 플래그가 1110, 1101, 1011, 111 중 하나 또는 1, 10, 100, 1000 중 하나인 것으로 발견되면, 프로그램은 에러 정정부(26)에 의해 에러 정정이 실행되는 단계(S15)로 옮겨진다. 에러 정정부(26)는 영역 관리 플래그의 0 및 1의 수를 비교함으로서 에러 정정을 실행한다. 영역 관리 플래그가 1110, 1101, 1011, 111 중 하나이면, 에러 정정부(26)는 플래그를 1111로 정정하고 정정된 플래그를 변환부(25)로 출력한다. 영역 관리 플래그가 1, 10, 100, 1000 중 하나이면, 에러 정정부(26)는 플래그를 0으로 정정하고 정정된 플래그를 변환부(25)로 출력한다. 영역 관리 플래그는 이 방식으로 변환부(25)에 의해 영역 관리 정보로 변환된다. 이 영역 관리 정보에는 프로그램이 단계(S16)로 옮겨지기 이전에 영역 관리 정보에 대한 에러 정정 사실을 지정하는 플래그가 부가된다.
단계(S16)에서는 데이터 관리 정보가 에러 존재 가능성에 대해 체크된다.
데이터 관리 정보에 에러가 존재하지 않는 것으로 발견되면, 프로그램은 단계(S18)로 옮겨진다.
데이터 관리 정보가 에러로 변조된 것으로 발견되면, 에러가 정정될 수 있는가 여부를 체크한다. 에러가 정정될 수 없는 것으로 발견되면, 프로그램은 단계(S18)로 옮겨지기 이전에 에러 정정 회로(24)에 의해 에러 정정되도록 단계(S17)로 옮겨진다.
단계(S18)에서는 영역 관리 정보 및 데이터 관리 정보가 S/P-P/S 인터페이싱 회로(22)에 의해 데이터 처리 장치(10)로 스테이터스 신호와 함께 전송된다.
도 9를 참고로, 데이터 처리 장치(10)가 정의된 처리 과정을 실행하도록 메모리 카드(20)로부터 전송된 관리 정보 및 데이터를 판독하는 동작예가 설명된다. 도 9에 도시된 데이터 처리 장치에 의한 데이터 처리는 에러 정정 사실을 나타내도록 메모리 카드(20)로부터 전송된 영역 관리 정보에 부가된 플래그를 근거로 실행됨을 주목한다. 그러나, 본 발명에 따른 데이터 처리 장치에 의한 데이터 처리는 또한 데이터 관리 정보에 때로 부가되는 플래그를 근거로 실행될 수 있다.
도 9에 도시된 데이터 처리 장치에 의한 데이터 처리는 에러 정정 사실을 지정하는 플래그가 판독된 블록의 영역 관리 정보에 부가되면, 이 블록이 또 다른 블록에 다시 쓰기 되는 처리이다. 본 발명에 따른 데이터 처리 장치에 의한 데이터 처리는 정의된 처리가 에러 정정된 영역 관리 정보에 때로 부가되는 플래그를 근거로 실행될 수 있으므로 이 처리예에 제한되지 않는다.
데이터 처리 장치(10)가 메모리 카드(20)로부터 전송된 관리 정보 및 데이터에 정의된 데이터 처리를 실행할 때, 단계(S21)에서는 직렬 인터페이싱 회로(12)에 의해 지정된 블록이 판독된다. 이어서, 지정된 블록이 정확하게 판독될 수 있는가 여부를 체크한다. 지정된 블록이 정확하게 판독될 수 있으면, 프로그램은 제어기(14)에 의해 블록 판독 에러를 처리하는 단계(S22)로 옮겨진다.
지정된 블록이 정확하게 판독되었으면, 에러 정정 사실을 지정하는 플래그가 판독된 블록의 영역 관리 정보에 부가되는가 여부를 체크한다. 이러한 플래그가 영역 관리 정보에 부가되지 않은 것으로 발견되면, 프로그램은 정상적인 블록 판독 처리를 실행하는 단계(S28)로 옮겨진다.
이러한 플래그가 영역 관리 정보에 부가된 것으로 발견되면, 프로그램은 제어기(14)가 블록 다시 쓰기의 상태와 조건을 체크하는 단계(S23)로 옮겨진다. 블록 다시 쓰기가 이루어지지 않은 것으로 발견되면, 프로그램은 정상적인 블록 판독 처리를 실행하기 위해 단계(S28)로 옮겨진다. 블록 다시 쓰기가 이루어지지 않은 것으로 발견되면, 프로그램은 제어기(14)가 판독된 블록을 또 다른 블록에 다시 쓰기 하는 단계(S24)로 옮겨진다. 이어서, 프로그램은 단계(S25)로 옮겨진다.
단계(S25)에서, 제어기(14)는 원래 블록의 재사용 가능성을 체크한다. 원래 블록이 재사용될 수 없는 것으로 발견되면, 프로그램은 제어기(14)가 원래 블록에 대한 사용 부가를 설정하는 단계(S26)로 옮겨진다. 이어서, 프로그램은 단계(S27)로 옮겨진다.
원래 블록이 재사용될 수 있는 것으로 발견되면, 프로그램은 제어기(14)가 집합 관리 정보를 갱신하는 단계(S27)로 옮겨진다.
집합 관리 정보가 갱신되면, 제어기(14)는 단계(S28)에서 데이터 판독 처리를 종료하도록 정상적인 블록 판독 처리를 실행한다.
이와 같이, 메모리 카드(20)에 기억된 영역 관리 정보가 에러 정정되었으면, 본 발명의 시스템(1)은 영역 관리 정보에 에러 정정 사실을 지정하는 플래그를 부가하여 결과의 데이터를 데이터 처리 장치(10)로 출력한다. 한편, 데이터 처리 장치(10)에 의해 에러 정정 사실을 지정하는 플래그가 메모리 카드(20)로부터 전송된 영역 관리 정보에 부가되면, 본 발명의 시스템(1)은 이 플래그를 근거로 정의된 데이터 처리를 실행한다. 예를 들면, 에러 정정된 영역 관리 정보를 갖는 블록은 데이터 확실성을 개선하도록 또 다른 블록에 다시 쓰기 될 수 있다.

Claims (13)

  1. 데이터와, 이 데이터가 기억된 영역의 상태를 관리하기 위한 영역 관리 정보를 기억하는 기억 수단과,
    상기 기억 수단으로부터 판독된 상기 영역 관리 정보에 소정의 에러가 주어지면, 영역 관리 정보를 에러 정정하는 에러 정정 처리 수단과,
    상기 기억 수단으로부터 영역 관리 정보를 판독하고, 상기 에러 정정 처리 수단에 의해 정정될 수 있는 에러가 상기 영역 관리 정보에 주어지면 상기 에러 정정 처리 수단에 상기 영역 관리 정보를 공급하고, 에러 정정된 영역 관리 정보에 에러 정정 사실을 지정하는 플래그를 부가하고, 그 결과의 정보를 출력하는 데이터 처리 수단을 포함하는 기억 장치.
  2. 데이터와, 이 데이터가 기억된 영역의 상태를 관리하기 위한 영역 관리 정보를 기억하고, 상기 기억된 영역 관리 정보가 정정 가능한 에러를 가지면 상기 영역 관리 정보를 에러 정정하고, 에러 정정된 영역 관리 정보에 에러 정정 사실을 나타내는 플래그를 부가하는 기억 장치와,
    상기 기억 장치에 의해 출력된 영역 관리 정보 및 데이터가 공급되고, 에러 정정된 영역 관리 정보에 대한 에러 정정 사실을 나타내는 플래그가 입력된 영역 관리 정보에 부가되면, 소정의 데이터 처리를 실행하기 위해, 상기 입력된 영역 관리 정보가 에러 정정된 정보임을 인식하는 데이터 처리 장치를 포함하는 데이터 처리 시스템.
  3. 기억 수단에 기억된 데이터와, 이 데이터가 기억된 영역의 상태를 관리하기 위한 영역 관리 정보를 판독하는 단계와,
    상기 영역 관리 정보가 정정 가능한 에러를 가지면 기억 수단으로부터 판독된 영역 관리 정보를 에러 정정하고, 에러 정정 사실을 나타내는 부가된 플래그와 함께 상기 정정된 정보를 출력하는 단계를 포함하는 데이터 처리 방법.
  4. 기억 수단에 기억된 데이터와, 이 데이터가 기억된 영역의 상태를 관리하기 위해 사용되는 영역 관리 정보를 판독하고, 데이터 처리 장치에 의해 상기 데이터 및 상기 영역 관리 정보를 처리하는 데이터 처리 방법으로서,
    상기 기억 장치는 상기 영역 관리 정보가 정정 가능한 에러를 가지면 상기 기억 수단으로부터 판독된 영역 관리 정보를 에러 정정하고, 에러 정정 사실을 나타내는 부가된 플래그를 갖는 정정된 정보를 상기 데이터 처리 장치에 출력하고,
    상기 데이터 처리 장치는 에러 정정된 영역 관리 정보에 대한 에러 정정 사실을 나타내는 플래그가 기억 장치로부터 전달된 영역 관리 정보에 부가되면, 소정의 데이터 처리를 실행하기 위해, 입력된 영역 관리 정보가 에러 정정된 정보임을 인식하는 데이터 처리 방법.
  5. 제 1 항에 있어서,
    상기 영역 관리 정보는 2n 비트(n≥2)로 구성되고, 적어도 (n+1)개의 똑같은 비트가 주어지면, 상기 에러 정정 처리 수단은 에러 정정을 실행하는 기억 장치.
  6. 제 1 항에 있어서,
    상기 영역 관리 정보는 2n+1 비트(n≥0)로 구성되고, 적어도 (n+1)개의 똑같은 비트가 주어지면, 상기 에러 정정 처리 수단은 에러 정정을 실행하는 기억 장치.
  7. 제 1 항에 있어서,
    상기 기억 수단이 플래시 메모리인 기억 장치.
  8. 제 2 항에 있어서,
    상기 영역 관리 정보는 2n 비트(n≥2)로 구성되고, 적어도 (n+1)개의 똑같은 비트가 주어지면, 상기 기억 장치는 에러 정정을 실행하는 데이터 처리 시스템.
  9. 제 2 항에 있어서,
    상기 영역 관리 정보는 2n+1 비트(n≥0)로 구성되고, 적어도 (n+1)개의 똑같은 비트가 주어지면, 상기 기억 장치는 에러 정정을 실행하는 데이터 처리 시스템.
  10. 제 3 항에 있어서,
    상기 영역 관리 정보는 2n 비트(n≥2)로 구성되고, 적어도 (n+1)개의 똑같은 비트가 주어지면, 에러 정정이 실행되는 데이터 처리 방법.
  11. 제 3 항에 있어서,
    상기 영역 관리 정보는 2n+1 비트(n≥0)로 구성되고, 적어도 (n+1)개의 똑같은 비트가 주어지면, 에러 정정이 실행되는 데이터 처리 방법.
  12. 제 4 항에 있어서,
    상기 영역 관리 정보는 2n 비트(n≥2)로 구성되고, 적어도 (n+1)개의 똑같은 비트가 주어지면, 상기 기억 장치는 에러 정정을 실행하는 데이터 처리 방법.
  13. 제 4 항에 있어서,
    상기 영역 관리 정보는 2n+1 비트(n≥0)로 구성되고, 적어도 (n+1)개의 똑같은 비트가 주어지면, 상기 기억 장치는 에러 정정을 실행하는 데이터 처리 방법.
KR1019980040764A 1997-09-30 1998-09-30 기억장치,데이터처리시스템및데이터기록및판독방법 KR100527609B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP26717297A JP3233079B2 (ja) 1997-09-30 1997-09-30 データ処理システム及びデータ処理方法
JP97-267172 1997-09-30

Publications (2)

Publication Number Publication Date
KR19990030281A true KR19990030281A (ko) 1999-04-26
KR100527609B1 KR100527609B1 (ko) 2006-06-21

Family

ID=17441111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980040764A KR100527609B1 (ko) 1997-09-30 1998-09-30 기억장치,데이터처리시스템및데이터기록및판독방법

Country Status (8)

Country Link
US (3) US6460145B1 (ko)
EP (1) EP0907128B1 (ko)
JP (1) JP3233079B2 (ko)
KR (1) KR100527609B1 (ko)
DE (1) DE69821426T2 (ko)
ID (1) ID20972A (ko)
SG (1) SG88742A1 (ko)
TW (1) TW389890B (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4505870B2 (ja) 1999-03-31 2010-07-21 ソニー株式会社 記録再生装置
JP2001025053A (ja) 1999-07-09 2001-01-26 Mitsubishi Electric Corp 携帯電話のメモリシステム
US6701451B1 (en) * 2000-08-11 2004-03-02 Emc Corporation Selective correction of data errors
JP4323707B2 (ja) * 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 フラッシュメモリの欠陥管理方法
JP4059472B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
US20030056141A1 (en) * 2001-09-18 2003-03-20 Lai Chen Nan Control method used in and-gate type system to increase efficiency and lengthen lifetime of use
JP3802411B2 (ja) * 2001-12-20 2006-07-26 株式会社東芝 不揮発性半導体記憶装置のデータコピー方法
JP2003196142A (ja) * 2001-12-25 2003-07-11 Sony Corp ライトワンス型メモリ装置及びファイル管理方法
US7600165B2 (en) * 2002-02-13 2009-10-06 Taiwan Semiconductor Manufacturing Co., Ltd. Error control coding method and system for non-volatile memory
JP3935139B2 (ja) 2002-11-29 2007-06-20 株式会社東芝 半導体記憶装置
JP2004227685A (ja) * 2003-01-23 2004-08-12 Matsushita Electric Ind Co Ltd 記録媒体の管理情報訂正装置
US7234097B1 (en) 2003-01-27 2007-06-19 Marvell International Ltd. Methods of supporting host CRC in data storage systems without RLL coding
JP2005190288A (ja) * 2003-12-26 2005-07-14 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US7337371B2 (en) * 2003-12-30 2008-02-26 Intel Corporation Method and apparatus to handle parity errors in flow control channels
US7427027B2 (en) * 2004-07-28 2008-09-23 Sandisk Corporation Optimized non-volatile storage systems
JP4794269B2 (ja) * 2004-11-08 2011-10-19 パナソニック株式会社 セキュアデバイスおよび中継端末
FR2880444B1 (fr) * 2005-01-06 2007-03-09 Gemplus Sa Dispositif de stockage de donnees
JP4734033B2 (ja) * 2005-05-30 2011-07-27 株式会社東芝 記憶装置
JP4984438B2 (ja) * 2005-06-02 2012-07-25 富士通株式会社 メモリ試験装置及びメモリ試験方法
JP4688584B2 (ja) * 2005-06-21 2011-05-25 株式会社日立製作所 ストレージ装置
US7861139B2 (en) * 2007-01-26 2010-12-28 Micron Technology, Inc. Programming management data for NAND memories
KR100982580B1 (ko) * 2008-01-30 2010-09-15 (주) 라모스테크놀러지 플래시 메모리의 데이터 에러 정정장치 및 방법
US20130151755A1 (en) 2011-12-12 2013-06-13 Reuven Elhamias Non-Volatile Storage Systems with Go To Sleep Adaption
US9037931B2 (en) * 2011-12-21 2015-05-19 Advanced Micro Devices, Inc. Methods and systems for logic device defect tolerant redundancy
JP2012094246A (ja) * 2012-02-15 2012-05-17 Fujitsu Ltd メモリ試験装置及びメモリ試験方法
US9411721B2 (en) 2013-11-15 2016-08-09 Sandisk Technologies Llc Detecting access sequences for data compression on non-volatile memory devices
JP6901831B2 (ja) 2015-05-26 2021-07-14 株式会社半導体エネルギー研究所 メモリシステム、及び情報処理システム
JP6164712B1 (ja) * 2016-08-18 2017-07-19 ウィンボンド エレクトロニクス コーポレーション フラッシュメモリ
KR20180073119A (ko) * 2016-12-22 2018-07-02 삼성전자주식회사 전자 장치 및 그의 에러 검출 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3541115A1 (de) 1985-11-21 1987-05-27 Deutsche Fernsprecher Gmbh Anordnung zur reduktion von speicherfehlern eines byteorganisierten festkoerperspeichers
EP0618535B1 (en) * 1989-04-13 1999-08-25 SanDisk Corporation EEPROM card with defective cell substitution and cache memory
JPH05233426A (ja) 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
US5448577A (en) 1992-10-30 1995-09-05 Intel Corporation Method for reliably storing non-data fields in a flash EEPROM memory array
US5359570A (en) 1992-11-13 1994-10-25 Silicon Storage Technology, Inc. Solid state peripheral storage device
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5439595A (en) 1993-08-25 1995-08-08 Downey, Jr.; Wayne F. Water decontamination method using peroxide photolysis ionizer
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
DE69535301T2 (de) * 1994-02-23 2007-05-31 Canon K.K. Datenverarbeitungsgerät mit Speichermedium, das ein Löschverfahren benötigt, bevor Daten darauf gespeichert werden können
FR2730833B1 (fr) 1995-02-16 1997-03-28 Gemplus Card Int Procede de mise a jour securisee de memoire eeprom
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US5857069A (en) * 1996-12-30 1999-01-05 Lucent Technologies Inc. Technique for recovering defective memory
JP3565687B2 (ja) * 1997-08-06 2004-09-15 沖電気工業株式会社 半導体記憶装置およびその制御方法
JPH1153235A (ja) * 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
JP3119214B2 (ja) * 1997-09-30 2000-12-18 ソニー株式会社 記憶装置、データ処理システム並びにデータの書き込み及び読み出し方法
US6530036B1 (en) * 1999-08-17 2003-03-04 Tricord Systems, Inc. Self-healing computer system storage
JP4034947B2 (ja) * 2001-05-31 2008-01-16 株式会社ルネサステクノロジ 不揮発性記憶システム

Also Published As

Publication number Publication date
DE69821426D1 (de) 2004-03-11
US20020194552A1 (en) 2002-12-19
EP0907128B1 (en) 2004-02-04
JPH11110306A (ja) 1999-04-23
US20050055610A1 (en) 2005-03-10
DE69821426T2 (de) 2004-12-16
ID20972A (id) 1999-04-01
US6810490B2 (en) 2004-10-26
EP0907128A1 (en) 1999-04-07
TW389890B (en) 2000-05-11
SG88742A1 (en) 2002-05-21
US7353424B2 (en) 2008-04-01
US6460145B1 (en) 2002-10-01
KR100527609B1 (ko) 2006-06-21
JP3233079B2 (ja) 2001-11-26

Similar Documents

Publication Publication Date Title
KR100527609B1 (ko) 기억장치,데이터처리시스템및데이터기록및판독방법
US6330634B1 (en) External storage apparatus having redundant boot blocks, and data processing method therefor
KR100527610B1 (ko) 저장장치,데이터처리시스템및데이터기록및판독방법
US7890732B2 (en) Memory card and semiconductor device
EP0887732B1 (en) Defective management data handling method and recording medium
US8310896B2 (en) Memory system and method of writing into nonvolatile semiconductor memory
EP0907142B1 (en) Memory card apparatus
KR100742849B1 (ko) 데이타 기억 장치, 데이타 처리 시스템, 데이타 처리 방법 및 데이타 처리 장치
US20070245069A1 (en) Storage Device, Memory Management Method and Program
US20050144366A1 (en) Data management apparatus and method, non-volatile memory, storage device having the non-volatile memory and data processing system
JP2007293917A (ja) メモリシステムの制御方法
US7257030B2 (en) Operating a storage component
JP3620478B2 (ja) 記憶装置、この記憶装置を用いたデータ処理システム及びデータ読み出し方法
JP3788205B2 (ja) 記憶装置、データ処理システム、データの書き込み及び読み出し方法並びにデータ処理装置
JP4127307B2 (ja) データ記憶装置、データ処理システム、データ処理方法及びデータ処理装置
JP2910745B2 (ja) 記憶装置及びデータ処理方法
JP5050508B2 (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: 20121029

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131025

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141024

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee