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

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

Info

Publication number
KR19990030283A
KR19990030283A KR1019980040766A KR19980040766A KR19990030283A KR 19990030283 A KR19990030283 A KR 19990030283A KR 1019980040766 A KR1019980040766 A KR 1019980040766A KR 19980040766 A KR19980040766 A KR 19980040766A KR 19990030283 A KR19990030283 A KR 19990030283A
Authority
KR
South Korea
Prior art keywords
area management
management information
flag
data
area
Prior art date
Application number
KR1019980040766A
Other languages
English (en)
Other versions
KR100527610B1 (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 KR19990030283A publication Critical patent/KR19990030283A/ko
Application granted granted Critical
Publication of KR100527610B1 publication Critical patent/KR100527610B1/ko

Links

Classifications

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

Abstract

영역 관리 정보가 전송 효율에 영향을 주지 않으면서 분산되어 기억될 수 있고 셀 구조의 변경에도 불구하고 기존의 기억 장치와의 호환성이 유지될 수 있는 기억 장치, 데이터 처리 시스템 및 데이터 기록 및 판독 방법. 플래시메모리(21), 변환 유닛(25) 및 제어기(26)가 제공된다. 변환 유닛(25)은 입력된 영역 관리 정보를 상기 영역 관리 정보에 대응하며 여분의 데이터가 부가된 영역 관리 플래그로 변환한다. 제어기(26)는 영역 관리 플래그가 플래시메모리(21)에 기억되도록 한다. 상기 변환 유닛(25)은 플래시메모리(21)로부터 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변환한다. 제어기(26)는 이 영역 관리 정보를 출력한다.

Description

기억 장치, 데이터 처리 시스템 및 데이터 기록 및 판독 방법
발명의 분야
본 발명은 임의 데이터와, 이 임의 데이터(optional data)를 제어하기 위한 데이터 관리 정보, 및 상기 데이터를 저장하는 영역의 상태를 관리하기 위한 영역 관리 정보를 기억하기 위한 기억 장치와, 이러한 기억 장치를 사용하는 데이터 처리 시스템에 관한 것이다. 본 발명은 또한 임의 데이터와, 이 임의 데이터를 제어하기 위한 데이터 관리 정보 및 상기 데이터를 기억하는 영역의 상태를 관리하기 위한 영역 관리 정보를 기억 장치에 기억시키거나 또는 기억 장치로부터 판독하기 위한 데이터 기록 및 판독 방법에 관한 것이다.
관련 기술의 설명
지금까지, 기록 매체로서 플래시메모리(전기적으로 소거가능하고 프로그램 가능한 읽기 전용 메모리(ROM))를 사용하는 카드형 외부 기억 장치(이하, 메모리 카드로 언급)가 전자 장치에 사용되는 외부 기억 장치로서 제안되어 왔다.
이러한 메모리 카드에 있어서, 임의 데이터 및 보조 데이터로서의 관리 정보가 기록 매체인 메모리에 저장된다. 이들 데이터 및 관리 정보가 메모리 카드에서 예를들면 호스트 측 컴퓨터로 전송되는 경우, 데이터 및 관리 정보는, 데이터 또는 관리 정보를 출력하기 전에 셀 고장에 의해 생성되는 에러 데이터를 정정하기 위해서, 에러 정정 코드를 사용하여 정정된다.
상기 관리 정보로서, 메모리 상에서 데이터를 유지하고 있는 영역이 사용가능한지를 나타내는 정보와 같은, 데이터 기억용 영역의 상태를 관리하기 위한 정보(영역 관리 정보)는, 기억되어 있는 데이터의 시퀀스를 나타내는 논리적인 어드레스와 같은, 데이터(데이터 관리 정보)를 관리하기 위한 데이터 종속 정보(data-dependent information)에 부가해서 기억되는 경우가 있다.
이러한 영역관리 정보는 메모리 내의 영역에 관련하는 정보, 즉 데이터와 무관한 정보이기 때문에, 데이터가 기억된 후에 정보를 재기록할 필요가 발생할 것이고, 그러므로 영역 관리 정보는 통상적으로 데이터를 재기록하지 않으면서 독립적으로 재기록되어야 할 것이다.
또한, 만약 에러가 발생하게 되면, 통상의 에러 정정 부호를 사용하여 에러 정정을 수행하고, 에러 정정 부호는 정보가 재기록될 때마다 재기록되어야 한다. 따라서, 영역 관리 정보에 대해서, 에러 정정 코드를 사용하지 않으면서 에러를 정정하기 위해서는 동일한 정보가 복수의 비트로 분산된 상태에서 기억되는 것이 바람직하다.
그러나, 만약 영역 관리 정보가 복수의 비트에 분산된 상태에서 기억되는 경우, 메모리 카드로부터 데이터를 판독할 때 전송 데이터는 그 길이가 증가되고, 따라서 전송 효율을 저하시킨다. 최근에, 단일의 셀에 복수의 비트의 정보를 기억하는 기술이 제안되었다. 만약 하나의 셀에 기억되는 비트의 수가 증가되면, 에러를 정정하기 위한 분산 비트의 수가 증가되어야 하고, 따라서 전송 효율은 더 저하된다.
또한, 만약 메모리 카드의 셀 구조가 변경되어 정보 분산 방식이 변경되면, 호스트 측에서 메모리 카드로 전송되는 데이터의 상태, 호스트 측이 메모리 카드의 메모리를 관리하기 위한 드라이버의 구성, 또는 인터페이스 명세사항(specifications)을 변경해야 하기 때문에 현존하는 메모리 카드와의 호환성을 유지하기가 어렵게 된다. 특히, 디지털 카메라와 같은 내장형 드라이버를 구비하는 전자기기의 경우에 있어서, 소프트웨어 버전 업그레이드 방법이 사용될 수 없기 때문에 새로운 메모리 카드는 사용될 수 없게된다.
발명의 요약
따라서 본 발명의 목적은 전송 효율을 저하시키지 않으면서 영역 관리 정보가 분산 기억될 수 있고 셀 구조가 변경되더라도 기존의 기억 장치와의 호환성이 유지될 수 있는 기억 장치, 데이터 처리 시스템 및 데이터 기록 및 판독 방법을 제공하는 것이다.
본 발명의 일 양상에 있어서, 본 발명은 데이터와 상기 데이터가 기억되는 영역의 상태를 관리하기 위한 영역 관리 정보를 기억하는 기억 수단과, 입력된 영역 관리 정보를 상기 영역 관리 정보에 대응하며 여분 데이터(redundant data)가 부가되어 있는 영역 관리 플래그로 변환하거나 또는 상기 기억 수단으로부터 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변환하는 변환 수단과, 상기 변환 수단에 의해 변환된 영역 관리 플래그를 기억 수단에 기록하거나 또는 기억 수단으로부터 영역 관리 플래그를 판독하여 변환 수단으로 공급하고 상기 변환 수단에 의해 변환된 원래의 영역 관리 정보를 출력하기 위한 제어 수단을 구비한다.
이러한 기억 장치에 있어서, 입력된 영역 관리 정보는 변환 수단에 의해 영역 관리 정보보다 많은 수의 비트를 갖는 영역 관리 정보로 변환된다. 변환 수단에 의해 변환된 영역 관리 플래그는 제어 수단에 의해 기억 수단에 기록된다.
이러한 기억 장치에 있어서, 제어 수단에 의해 기억 수단으로부터 판독된 영역 관리 플래그는 변환 수단에 의해 원래의 영역 관리 정보로 변환된다. 변환 수단에 의해 이렇게 변환된 영역 관리 정보는 제어 수단의 제어 하에서 출력된다.
이 기억 장치에 있어서, 변환 수단은 영역 관리 정보와 영역 관리 플래그가 서로 연관되어 기록되어 있는 변환 테이블을 포함하는 것이 바람직하다. 변환 수단은 변환 테이블을 참조함으로써 입력된 영역 관리 정보를 영역 관리 플래그로 변환한다.
이러한 기억 장치에 있어서, 변환 수단은 기억 수단의 관리 정보 기억 영역에서 판독된 영역 관리 플래그의 패턴으로부터 원래의 영역 관리 정보를 판별하는 플래그 판별 회로를 포함하는 것이 바람직하다. 이 경우, 변환 수단은 기억 수단에서 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변환한다.
다른 양상에 있어서, 본 발명은, 데이터와 상기 데이터를 기억하는 영역의 상태를 관리하기 위한 영역 관리 정보를 기억하기 위한 기억 장치와, 상기 데이터 및 영역 관리 정보를 기억 장치로 전송하거나 또는 기억 장치로부터 공급된 데이터 및 영역 관리 정보를 처리하기 위한 데이터 처리 장치를 포함하는 데이터 처리 시스템을 제공한다. 기억 장치는 데이터 처리 장치로부터 공급된 영역 관리 정보를 이 영역 관리 정보에 대응하며 여분 데이터가 부가되어 있는 영역 관리 플래그로 변환한다. 기억 장치는 또한 기억된 영역 관리 플래그를 원래의 영역 관리 정보로 변환하여 데이터 처리 장치로 원래의 영역 관리 정보를 제공한다.
바람직하게는, 기억 장치는 영역 관리 정보와 영역 관리 플래그가 서로 연관되어 기록되어 있는 변환 테이블을 구비하며 입력된 영역 관리 정보는 변환 테이블을 참조함으로써 영역 관리 플래그로 변환된다.
바람직하게는, 기억 장치는 기억된 영역 관리 플래그의 패턴으로부터 원래의 영역 관리 정보를 판별하기 위한 플래그 판별 회로를 구비하며 기억된 영역 관리 플래그는 이 플래그 판별 회로를 사용하여 영역 관리 정보로 변환된다.
바람직하게는, 기억 장치는 플래시메모리를 구비하고 영역 관리 정보를 정보의 비트당 적어도 3 비트의 영역 관리 플래그로 변환하고, 플래시메모리의 적어도 3 셀에 상기 플래그를 분산하여 기억한다.
여전히 다른 양상에 있어서, 본 발명은 데이터와 상기 데이터를 기억하는 영역의 상태를 관리하기 위한 영역 관리 정보가 기억 장치에 기억되어 있는 또는 기억 장치에 기록된 데이터와 영역 관리 정보가 기억 장치로부터 판독되는 데이터 기록 및 판독 방법을 제공한다. 상기 방법은 데이터 기록동안 기억 장치에 기록되는 영역 관리 정보를 이 영역 관리 정보에 대응하며 여분의 데이터가 부가된 영역 관리 플래그로 변환하는 단계와, 상기 변환된 플래그를 기억 장치에 기록하는 단계와, 데이터 판독동안 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변환하는 단계 및 이렇게 변환된 원래의 영역 관리 정보를 상기 기억 장치로부터 출력하는 단계를 포함한다.
바람직하게는, 기억 장치는 영역 관리 정보와 영역 관리 플래그가 서로 연관되어 기록되어 있는 변환 테이블을 구비하며, 입력된 영역 관리 정보는 데이터 기록동안 변환 테이블을 참조함으로써 영역 관리 플래그로 변환된다.
바람직하게는, 기억 장치는 판독된 영역 관리 플래그의 패턴으로부터 원래의 영역 관리 정보를 판별하기 위한 플래그 판별 회로를 구비하고, 판독된 영역 관리 플래그는 데이터 판독동안 이 판별 회로를 사용하여 원래의 영역 관리 정보로 변환된다.
바람직하게는, 기억 장치는 플래시메모리를 구비하고, 영역 관리 정보는 정보의 비트당 적어도 3 비트의 영역 관리 플래그로 변환되며 플래시메모리의 적어도 3 셀에 분산되어 기록된다.
도 1은 데이터 처리 장치의 구조를 도시하는 블록도.
도 2는 메모리 카드의 구조를 도시하는 블록도.
도 3은 플래시메모리의 기억 영역의 구조를 도시하는 개략도.
도 4는 분산 관리 정보를 나타내는 개략도.
도 5는 영역 관리 플래그의 일 예를 도시하는 개략도.
도 6은 추가 관리 정보를 나타내는 개략도.
도 7은 집합 관리 정보의 구조를 나타내는 개략도.
도 8은 영역 관리 플래그의 다른 실시예를 나타내는 개략도.
도 9는 영역 관리 플래그의 또 다른 실시예를 나타내는 개략도.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 데이터 처리 장치 11 : 데이터 처리 유닛
12 : 직렬 인터페이스 회로 13 : 레지스터
14, 26 : 제어기 20 : 메모리 카드
21 : 플래시메모리 22 : 직렬/병렬-병렬/직렬 인터페이스 회로
25 : 변환 유닛 27 : 변환 테이블
28 : 플래그 판별 회로 29 : 변환 제어기
이하, 도면을 참조하여 본 발명의 양호한 실시예가 상세히 설명될 것이다.
도 1에 도시된 실시예에 있어서, 본 발명은 호스트 측 장치인 데이터 처리 장치(10)와 직렬 인터페이스를 통해 상기 데이터 처리 장치(10)에 연결된 외부 기억 장치인 메모리 카드(20)로 구성된 시스템(1)에 적용된다.
본원에서 도시된 상기 시스템은 직렬 인터페이스를 통해 데이터 처리 장치(10)와 메모리 카드(20) 사이에서 데이터를 교환하도록 적응되지만, 본 발명은 병렬 인터페이스를 통해 데이터가 교환되는 시스템에도 적용될 수 있다.
이 시스템(1)에서 사용된 데이터 처리 장치(10)는 소정의 프로그램을 실행하기 위한 데이터 처리 유닛(11)과, 외부 장치인 메모리 카드(20)와 데이터를 교환하기 위한 직렬 인터페이스 회로(12)와, 상기 데이터 처리 유닛(11)과 직렬 인터페이스 회로(12) 사이에 제공되어 상기 데이터 처리 유닛(11)으로부터 전송된 데이터를 일시적으로 기억하기 위한 레지스터(13), 및 상기 데이터 처리 유닛(11), 직렬 인터페이스 회로(12) 및 레지스터(13)에 연결되어 이러한 소자에 의한 처리를 제어하기 위한 제어기(14)를 포함한다.
만약, 데이터 처리 유닛(11)이 소정의 프로그램을 수행할 때, 데이터가 외부 기억 장치인 메모리 카드(20)에 기억되어야 한다고 데이터 처리 장치(10)가 판정하는 경우, 데이터 처리 유닛(11)은 제어기(14)의 제어에 기초해서 기억용 데이터나, 상기 데이터를 관리하는데 필요한 관리 정보, 또는 제어 데이터인 기록 명령을 레지스터(13)에 기록한다.
직렬 인터페이스 회로(12)는 제이기(14)의 제어 하에서, 레지스터(13)로부터 기억용 데이터, 관리 정보 또는 기록 명령을 판독하고, 이들을 직렬 데이터로 변환하여 클록 신호 및 상태 신호와 함께 전송한다. 관리 정보는 데이터를 관리하기 위한 정보인 데이터 관리 정보와 데이터를 기록하는 영역의 상태를 관리하기 위한 영역 관리 정보로 구성된다.
또한, 만약 데이터 처리 장치(10)의 데이터 처리 유닛(11)이, 소정의 프로그램을 수행하기 위해, 외부 기억 장치인 메모리 카드(20)로부터 데이터가 판독되어야 한다고 판정하는 경우, 데이터 처리 유닛(11)은 제어기(14)의 제어 하에서 제어 데이터인 판독된 명령을 레지스터에 기록한다. 직렬 인터페이스 회로(12)는, 제어기(14)의 제어 하에서, 레지스터(13)로부터 판독된 명령을 판독하고, 클록 신호 및 상태 신호와 함께 직렬 데이터로 전송한다.
판독된 명령에 따라 메모리 카드(20)로부터 전송된 데이터 또는 관리 정보는 직렬 인터페이스 회로(12)에 의해 병렬 데이터로 변환되어, 레지스터(13)에 기록된다. 데이터 처리 유닛(11)은, 제어기(14)의 제어 하에서 처리를 수행하기 위해 이들 소정의 데이터 또는 관리 정보를 레지스터(13)로부터 판독한다.
본 발명의 시스템에 사용되는 데이터 처리 장치가 메모리 카드(20)와 같은 외부 기억 장치와 데이터 교환을 할 수 있다는 점에서 본 발명의 시스템에 사용되는 데이터 처리 장치에 대한 특별한 제한점은 존재하지 않는다. 그러므로, 개인용 컴퓨터나, 디지털 스틸 카메라 또는 디지털 비디오 카메라와 같은 다양한 데이터 처리 장치가 사용될 수 있을 것이다.
이 시스템(1)에 있어서, 데이터 처리 장치와 메모리 카드(20)는 직렬 인터페이스, 특히 적어도 세 개의 데이터 라인(SCLK, STATE 및 DIO)을 통해서 서로 연결된다. 즉, 데이터 처리 장치(10)와 메모리 카드(20)는, 적어도, 데이터 전송동안 클록 신호를 전송하기 위한 제 1의 데이터 라인(SCLK)과, 데이터 전송에 요구되어 지는 상태 신호를 전송하기 위한 제 2의 데이터 라인(STATE), 및 메모리 카드(20)에 기록되어 있는 데이터 또는 메모리 카드(20)로부터 판독된 데이터를 직렬로(serially) 전송하기 위한 제 3의 데이터 라인(DIO)에 의해 서로 연결되고, 이들 데이터 라인을 통해 데이터를 교환한다.
도 2를 참조하면, 메모리 카드(20)는 메모리 상에 소정의 데이터 또는 관리 정보를 유지하기 위한 플래시메모리(21)와, 데이터 처리 장치(10)와 데이터를 교환하기 위한 직렬/병렬-병렬/직렬 인터페이스 회로(SP-PS interfacing circuit; 22)를 포함한다. 메모리 카드(20)는 또한 플래시메모리(21)와 S/P-P/S 인터페이스 회로(22) 사이에 제공되어 S/P-P/S 인터페이스 회로(22)로부터 제공되는 데이터 또는 관리 정보의 일시적인 기억을 위한 레지스터(23)와 상기 레지스터(23)에 연결되어 레지스터(23)에 기록된 데이터 또는 데이터 관리 정보를 에러 정정 코드에 기초하여 에러를 정정하는 에러 정정 회로(24)를 포함한다. 메모리 카드(20)는 또한 레지스터(23)로부터 판독된 영역 관리 정보를 이러한 영역 관리 정보와 여기에 부가된 여분 데이터(redundant data)로 구성된 정보(이하 영역 관리 플래그)로 변환하거나 또는 플래시메모리(21)로부터 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변화하기 위한 변환 유닛(25)을 포함한다. 메모리 카드(20)는 또한 플래시메모리(21), S/P-P/S 인터페이스 회로(22), 레지스터(23) 및 변환 유닛(25)에 연결되고 이들의 처리 동작을 제어하기 위한 제어기(26)를 더 포함한다.
S/P-P/S 인터페이스 회로(22)는 적어도 상기 언급된 세 개의 데이터 라인(SCLK, STATE 및 DIO)을 통해 데이터 처리 장치(10)의 직렬 인터페이스 회로(12)에 연결되어, 이들 데이터 라인(SCLK, STATE 및 DIO)을 통해 데이터 처리 장치와 데이터의 교환을 수행한다. 즉, S/P-P/S 인터페이스 회로(22)는 데이터 처리 장치(10)의 직렬 인터페이스 회로(12)로부터 전송된 직렬 데이터를 레지스터(23)에 기록되는 병렬 데이터로 변환한다. 또한, S/P-P/S 인터페이스 회로(22)는 레지스터(23)로부터 판독된 병렬 데이터를 직렬 데이터로 변환하여, 데이터 처리 장치(10)의 직렬 인터페이스 회로(12)로 변환된 직렬 데이터를 송출한다.
직렬 데이터는 S/P-P/S 인터페이스 회로(22)와 데이터 처리 장치(10) 사이에서의 제 1의 데이터 라인(SCLK)을 통해 전송되고 이때 처리 장치(10)로부터 전송되는 클록 신호에 의해 동기가 수행된다. 이때, 제 3의 데이터 라인(DIO)을 통해 교환되는 직렬 데이터의 데이터 형태는 제 2의 데이터 라인(STATE)을 통해 교환되는 상태 신호에 의해 판별된다. 데이터 형태는, 예를들면, 플래시메모리(21)에 저장될 데이터와, 플래시메모리(21)로부터 판독된 데이터 및 메모리 카드(20)의 동작을 제어하기 위한 제어 데이터로 열거될 수 있을 것이다.
만약 데이터 처리 장치(10)로부터 전송된 데이터가 기록 명령이나 또는 판독된 명령과 같은 제어 데이터인 경우, S/P-P/S 인터페이스 회로(22)는 제어 데이터를 제어기(26)로 공급한다.
제어기(26)는 S/P-P/S 인터페이스 회로(22)로부터 공급된 제어 데이터에 기초해서 메모리 카드(20)의 동작을 제어한다.
레지스터(23)는 플래시메모리(21)와 S/P-P/S 인터페이스 회로(22) 사이에서 교환되는 데이터를 일시적으로 저장한다.
에러 정정 회로(24)는 레지스터(23)에 기록된 데이터에 S/P-P/S 인터페이스 회로(22)에 의해 에러 정정 코드를 부가한다. 에러 정정 회로(24)는 또한 플래시메모리(21)로부터 판독되고 레지스터(23)에 기록된 데이터에 에러 정정 처리를 수행한다.
변환 유닛(25)은 레지스터(23)로부터 판독된 관리 정보의 영역 관리 정보를 영역 관리 플래그로 변환하고, 플래시메모리(21)로부터 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변환한다.
만약 기록될 데이터, 관리 정보 및 기록 명령이 데이터 처리 장치(10)로부터 메모리 카드(20)로 직렬 데이터로서 전송되는 경우, S/P-P/S 인터페이스 회로(22)는 이들 데이터를 병렬 데이터로 변환하여 기록 명령을 제어기(26)로 전송하는 것과 동시에, 소정의 데이터와 관리 정보를 제어기(26)의 제어 하에서 레지스터(23)에 기록한다.
이렇게 레지스터(23)에 기록된 소정의 데이터나 관리 정보에 대해서, 영역 관리 정보와는 다른 에러 정정 코드가 에러 정정 회로(24)에 의해 부가된다.
제어기(26)는 레지스터(23)로부터 소정의 데이터와 관리 정보를 판독하고 판독된 데이터나 정보를 S/P-P/S 인터페이스 회로(22)로부터 전송된 기록 명령에 기초해서 플래시메모리(21)에 기록한다. 이때, 제어기(26)는 먼저 레지스터(23)로부터 판독된 관리 정보의 영역 관리 정보를 변환 유닛(25)으로 전송한다. 변환 유닛(25)에 전송된 영역 관리 정보는 이 변환 유닛(25)에 의해 영역 관리 플래그로 변환된다. 제어기(26)는 변환 유닛(25)에 의해 변환된 영역 관리 플래그가 플래시메모리(21)에 기록되도록 한다.
판독된 명령이 데이터 처리 장치(10)에서 메모리 카드(20)로 전송될 때, S/P-P/S 인터페이스 회로(22)는 이 판독된 명령을 제어기(26)로 전송한다.
제어기(26)는 S/P-P/S 인터페이스 회로(22)로부터 전송된 판독 명령에 기초해서 플래시메모리(21)로부터 소정의 데이터와 관리 정보를 판독하고 판독된 데이터 또는 정보를 레지스터(23)에 기록하도록 동작한다. 제어기(26)는 플래시메모리(21)로부터 전송된 영역 관리 플래그가 변환 유닛(25)으로 전송되도록 한다. 변환 유닛(25)으로 전송된 영역 관리 플래그는 이 변환 유닛(25)에 의해 원래의 영역 관리 정보로 다시 변환된다. 제어기(26)는 변환 유닛(25)에 의해 변환된 원래의 영역 관리 정보가 레지스터(23)에 기록되도록 한다.
만약 레지스터(23)에 기록되는 데이터 또는 관리 정보의 데이터 관리 정보에 임의의 에러가 존재하는 경우, 에러 정정 코드에 기초하여 에러 정정 회로(24z0에 의해 정정된다.
S/P-P/S 인터페이스 회로(22)는 제어기(26)의 제어 하에서 레지스터(23)로부터 소정의 데이터와 관리 정보를 판독하고 판독된 데이터 또는 정보를 데이터 처리 장치(10)로 전송되는 직렬 데이터로 변환하도록 동작한다.
상기 상술된 내용은 에러 정정 회로(24)가 메모리 카드(20)에 제공되고 에러 정정이 메모리 카드(20) 내에서 수행되는 시스템에 관한 것이다. 그러나, 본 발명은 데이터 처리 장치가 에러 정정 회로를 구비하고 에러 정정이 데이터 처리 장치에 의해 수행되는 시스템에 적용될 수 있다. 이러한 경우, 데이터 처리 장치(10)와 메모리 카드(20) 사이에서 교환되는 것은 에러 정정 코드가 부가된 데이터이다.
메모리 카드(20)에 탑재된 플래시메모리(21)의 기억 영역의 구조가 하기에 설명될 것이다.
플래시메모리(21)의 기억 영역은 기억 단위인 다수의 셀로 구성되고 도 3의 (a)에 도시된 바와 같이 데이터 소거 단위인 복수의 블록으로 나누어진다. 이들 블록에 대해서 각각의 고유의 물리적 어드레스가 할당된다.
각 블록은 데이터 소거 단위인 동시에 파일 관리용 최소 단위이다. 즉, 파일은 하나 또는 복수의 블록에 기억되고 동일 블록이 복수의 파일에 의해 활용되지 않도록 디자인된다.
각 블록은 복수의 셀로 구성되고 그 각각에는 1과 0의 두 상태를 취할 수 있는 정보가 기억된다.
초기에, 각 블록의 모든 비트는 1로 설정되어 비트에 기초한 변경은 1에서 0으로만 가능하도록 되어 있다. 따라서, 만약 1과 0으로 구성된 데이터가 플래시메모리(21)에 기록될 때, 1에 대한 비트는 유지되고, 동시에 0에 대한 비트는 데이터 기록 이전에 1에서 0으로 변경된다.
만약 일단 기록된 데이터가 플래시메모리(21)에서 소거될 때, 데이터는 블록의 모든 비트를 1로 설정하기 위해 블록 단위로 한꺼번에 초기화된다. 이것은 블록이 다시 데이터 기록을 허용하는 상태가 되도록 한꺼번에 블록에 기록되어 있는 데이터를 소거한다.
플래시메모리(21)의 각 블록은, 도 3의 (b)에 도시된 바와 같이, 데이터 기록 또는 판독 단위인 다수의 페이지로 구성된다. 각 페이지는 예를들면 512바이트의 기록 용량을 갖는 기억 단위를 나타낸다. 플래시메모리(21)에 데이터를 기록할 때, 레지스터(23)로부터 페이지 단위로 판독된 데이터는 페이지 단위로 플래시메모리(21)에 기록된다. 플래시메모리(21)로부터 데이터를 판독할 때, 데이터는 제어기(25)에 의해 페이지 단위로 판독되고 그 다음 레지스터(23)로 전송된다.
데이터 기록 또는 판독 단위를 나타내는 각 페이지는 데이터 기억 영역과 관리 정보 기억 영역을 구비한다. 데이터 기억 영역은 임의 데이터를 기록하는 영역을 의미하고, 관리 정보 기억 영역은 데이터 기억 영역에 기록되어 있는 데이터의 관리에 필요한 정보(관리 정보)를 저장하는 영역을 나타낸다.
관리 정보 기억 영역은 16바이트의 영역을 구비하는데, 여기서 처음 3바이트는 블록에 기초한 일괄적인 초기화 없이 정보가 재기록될 수 있는 오버라이트 영역(overwrite area)으로 설정된다. 나머지 13바이트는 정보 재기록시 블록에 기초한 일괄적인 초기화를 위한 일반 영역으로 설정된다.
관리 정보는 블록을 구성하는 각 페이지의 관리 정보 기억 영역에 기억된다. 특히, 블록을 관리하는데 필요한 정보로서, 소위 분산 관리 정보(distributed management information)가 도 3의 (c)에 도시된 바와 같이, 각 블록의 선두 페이지의 관리 정보 기억 영역에 기억된다. 또한, 각 블록의 페이지 2로부터의 각 페이지의 관리 정보 기억 영역에는 예비 분산 관리 정보로서 선두 페이지의 관리 정보 기억 영역에 기억되어 있는 분산 관리 정보와 동일한 관리 정보가 기억되어 있다. 그러나, 각 블록의 최종 페이지의 관리 정보 기억 영역에는, 분산 관리 정보만으로는 불충분한 정보를 보충하는 소위 추가 관리 정보가 기억되어 있다.
따라서, 각각의 블록을 관리하기 위한 분산 관리 정보는 메모리 카드(20)에 탑재된 플래시메모리(21)의 각 블록의 관리 정보 기억 영역에 기억된다. 해당 블록이 파일의 선두 블록(leading end block)인지 아닌지에 관한 정보나, 파일이 복수의 파일로 구성된 경우에는, 블록 연계를 나타내는 정보가 이 분산 관리 정보에 의해 획득될 수 있다.
각 블록의 분산 관리 정보를 수집함으로써, 메모리 카드(20)는 플래시메모리(21) 전체를 관리하기 위한 정보로서 소위 집합 관리 정보(collective management information)를 형성하여 플래시메모리(21)에 파일로서 집합 관리 정보를 기억한다.
만약 데이터가 데이터 처리 장치(10)와 메모리 카드(20) 사이에서 교환되는 경우, 데이터 처리 장치(10)는 통상적으로 플래시메모리(21)로부터 집합 관리 정보를 판독하여 각 블록을 액세스하는데 필요한 정보를 획득한다. 이것은 각 블록에 기억되어 있는 분산 관리 정보에 대한 액세스의 필요성을 제거하여 보다 고속의 데이터 액세스를 가능하게 한다.
분산 관리 정보, 추가 관리 정보 및 집합 관리 정보는 하기에 더욱 상세히 논의될 것이다.
분산 관리 정보는 각 페이지에 제공된 16바이트의 관리 정보 기억 영역에 기억되어 있는 블록 관리용 관리 정보이다. 이 분산 관리 정보는, 도 4에 도시된 바와 같이, 1 바이트의 가능/불가능(possible/not possible) 플래그와, 1 바이트의 블록 플래그와, 4비트의 최종 플래그와, 4 비트의 참조 플래그와, 1 바이트의 관리 플래그와, 2 바이트의 논리적 어드레스와, 2 바이트의 연결 플래그와, 2 바이트의 분산 관리 정보용 에러 정정 코드 및 3 바이트의 에러 정정 플래그로 구성된다. 이들 플래그 중, 가능/불가능 플래그와, 블록 플래그와, 최종 플래그 및 참조 플래그는 관리 정보 기억 영역의 처음 3 바이트의 오버라이트 영역에 기억된다.
관리 정보 기억 영역 중 13 바이트의 일반 영역에는 관리 플래그, 논리적 어드레스, 예비 영역, 분산 관리 정보용 에러 정정 코드 및 데이터용 에러 정정 코드가 기억된다. 나머지 3 바이트의 일반 영역은 예비 영역으로 설정된다.
가능/불가능 플래그는 블록이 사용 가능한 상태에 있는지 또는 사용 불가능한 상태에 있는지를 나타낸다. 즉, 만약 복원될 수 없는 에러가 블록에서 생성되면, 가능/불가능 플래그는 해당 블록이 사용 불가능한 상태에 있는 것으로 특정한다.
블록 플래그는 블록의 사용 상태를 나타낸다. 특히, 블록 플래그는 미사용, 선두 사용, 사용 및 미소거의 4 상태를 나타낸다. 이들 중, 미사용은 블록이 아직 사용되지 않거나 또는 이미 소거되어 전체가 1의 비트를 갖는 초기 상태를 나타내는 것으로, 데이터가 즉시 기록될 수 있음을 나타낸다. 선두 사용은 해당 블록이 파일의 선두에서 사용되고 있는 상태를 나타낸다. 사용은 해당 블록이 파일의 선두 이외에서 사용되고 있는 상태를 나타낸다. 즉, 만약 블록 플래그가 사용이라면, 이것은 해당 블록이 다른 블록에 연결되어 있음을 나타낸다. 미소거는 블록에 기록되어 있는 데이터가 불필요한 상태를 나타낸다. 이 메모리 카드(20)에 있어서, 만약 블록에 기억되어 있는 불필요한 데이터가 소거되면, 블록 플래그는 먼저 미소거 상태로 설정되고, 처리 시간에 여유가 있을 때, 자신의 블록 플래그가 미소거인 블록은 소거된다. 이것은 메모리 카드(20)가 데이터 소거 처리를 보다 효율적으로 하도록 한다.
최종 플래그는 파일이 해당 블록에서 종료하는지를 나타내는 플래그로서 특히 블록 계속 및 최종 블록의 두 상태를 나타내는 플래그이다. 블록 계속 상태는 해당 블록에 기억되어 있는 파일이 종료되지 않고 다른 블록으로 계속됨을 의미한다. 최종 블록 상태는 해당 블록에 기억되어 있는 파일이 이 블록에서 종료함을 의미한다.
참조 플래그는 추가 관리 정보에 대한 참조를 나타내는 것으로, 특히 참조 정보가 존재하지 않음 및 참조 정보 존재의 두 상태로 나타난다. 참조 정보가 존재하지 않음의 상태는 블록의 최종 페이지의 관리 정보 기억 영역에 유효한 추가 관리 정보가 존재하지 않음을 나타낸다. 참조 정보 존재의 상태는 블록의 최종 페이지의 관리 정보 기억 영역에 유효한 관리 정보가 존재함을 나타낸다.
관리 플래그는 블록 속성, 예를들면, 읽기 전용 블록 또는 기록 가능 블록과 같은 속성을 나타낸다.
논리적 어드레스는 해당 블록의 논리적 어드레스를 나타낸다. 논리적 어드레스의 값은, 예를들면 데이터 재기록을 수행할 때에 필요에 따라 갱신된다. 하지만, 논리적 어드레스의 값은 동일한 논리적 어드레스의 값이 복수의 블록에 의해 동시에 소유되지 않도록 설정된다.
연결 어드레스는 해당 연결 블록에 연결된 다른 블록의 논리적 어드레스를 나타낸다. 즉, 만약 해당 블록에 연결된 파일이 다른 블록에 연결되면, 연결 어드레스는 파일의 나머지 부분이 기억되어 있는 논리적 어드레스의 값을 나타낸다.
분산 관리 정보용 에러 정정 코드는 관리 플래그, 논리적 어드레스, 연결 어드레스 및 예비 영역에 기록되어 있는 분산 관리 정보의 데이터용 에러 정정 코드이다.
데이터용 에러 정정 코드는 이 데이터용 에러 정정 코드가 기록되어 있는 페이지의 데이터 기억 영역에 기억되어 있는 데이터를 대상으로 하는 에러 정정 코드이다.
상기 언급된 분산 관리 정보의 가능/불가능 플래그, 블록 플래그, 최종 플래그 및 참조 플래그는 데이터 기억 영역의 상태를 관리하기 위한 정보, 즉 영역 관리 정보를 나타낸다. 데이터와 무관하게 참조 플래그를 재기록할 필요가 발생하기 때문에, 상기 언급된 분산 관리 정보용 에러 정정 코드의 대상에서 벗어나고 정보 항목(information item)을 나타내는 코드와 동일한 코드의 소정량의 여분의 데이터가 부가되어 있는 플래그(영역 관리 플래그)로서 관리 정보 기억 영역에 기록된다.
특히 영역 관리 정보의 이들 항목은, 도 5에 도시된 바와 같이, 관리 정보 기억 영역의 오버라이트 영역에 여분 데이터가 부가된 영역 관리 플래그로서 기억된다.
즉, 가능/불가능 플래그는 상기 블록이 사용 가능한 상태에 있는지 또는 사용 불가능한 상태에 있는지에 따라 각각 1 비트의 정보 1과 1 비트의 정보 0에 의해 나타난다. 관리 정보 기억 영역에서의 기억을 위해, 가능/불가능 플래그는 여분 데이터의 부가에 의해 예를들면 11111111 또는 0의 1 바이트의 정보로 기억 이전에 변환된다.
블록 플래그는 블록이 미사용, 선두 사용, 사용 및 미소거인지에 따라 각각 11, 10, 1 및 0의 2 비트 정보에 의해 나타내어진다. 관리 정보 기억 영역에서의 기억을 위해, 여분 데이터의 부가에 의해 예를들면 1111 1111, 1111 0000, 0000 1111, 0000 0000의 1 바이트 정보로 변환된다.
최종 플래그는 블록 계속 또는 최종 블록 각각에 대해 1 또는 0의 1 비트 정보로 표현된다. 관리 정보 기억 영역에서의 기억을 위해, 최종 플래그는 여분 데이터의 부가에 의해 예를들면 1111 또는 0의 4 비트 정보로 기억 이전에 변환된다.
참조 플래그는 참조 정보가 존재하지 않음 또는 참조 정보 존재에 대해 각각 1 또는 0의 1 비트 정보로 표현된다. 관리 정보 기억 영역에서의 기억을 위해, 참조 플래그는 기억 이전에 1111 또는 0의 4 비트 정보로 변환된다.
영역 관리 정보에 여분 데이터가 부가된 영역 관리 플래그인 영역 관리 정보가 관리 정보 기억 영역에 기억되기 때문에, 해당 플래그를 유지하는 셀의 고장에 의해 에러가 발생하는 경우라도 영역 관리 플래그의 1과 0의 수를 비교함으로써 원래의 영역 관리 정보는 인식될 수 있다.
추가 관리 정보는 블록의 최종 페이지의 16 바이트 관리 정보 기억 영역에 기억되는 정보이고, 다른 불충분한 정보를 보충하기 위한 추가 정보를 포함한다.
이 추가 관리 정보는, 예를들면 1 바이트의 가능/불가능 플래그, 1 바이트의 블록 플래그, 4 비트의 최종 플래그, 4 비트의 참조 플래그, 1 바이트의 식별 번호, 2 바이트의 유효 데이터 크기, 추가 관리 정보용의 2 바이트의 에러 정정 코드 및 데이터용의 3 바이트의 에러 정정 코드로 구성된다.
가능/불가능 플래그, 블록 플래그, 최종 플래그, 참조 플래그 및 데이터용 에러 정정 코드는 분산 관리 정보에 대한 것들과 유사하다. 추가 정보용 에러 정정 코드는 분산 관리 정보용 에러 정정 코드와 동일하고 추가 관리 정보의 영역 관리 플래그를 제외한 식별 번호, 유효 데이터 크기 및 예비 영역에 기록되어 있는 데이터에 대해 사용된다.
식별 번호와 유효 데이터 크기는 다른 불충분한 분산 관리 정보를 보충하는 추가 정보로서 추가 관리 정보에 포함된다.
분산 관리 정보와 유사하게, 추가 관리 정보는, 추가된 여분 데이터를 구비하는 영역 관리 플래그로서, 가능/불가능 플래그, 블록 플래그, 최종 플래그 및 참조 플래그이고, 관리 정보 기억 영역의 최초 3 바이트의 오버라이트 영역에 기억된다.
관리 정보 기억 영역의 13 바이트의 일반 영역에는 식별 번호, 유효 데이터 크기, 추가 관리 정보용 에러 정정 코드 및 데이터용 에러 정정 코드가 기록되어 있다. 일반 영역의 나머지 5 바이트는 예비 영역으로서 설정된다.
식별 번호는 에러 처리용 정보이다. 식별 번호의 값은 블록 데이터가 재기록될 때마다 증가된다. 만약 몇 몇 종류의 에러가 생성되어 동일한 논리적 어드레스를 갖는 복수의 블록이 존재하는 경우, 식별 번호는 이들 블록에 기록된 데이터가 새로운 것인지 아니면 옛날 것인지를 판별하기 위해 사용된다. 한편, 1 바이트의 영역은 0 내지 255의 값을 갖는 식별 번호를 위해 사용되는데, 새로운 논리적 어드레스를 사용하는 경우 그 값은 초기값으로 0이 설정된다. 만약 식별 번호가 255를 초과하는 경우, 그 값은 0으로 재설정된다. 만약 동일한 논리적 번호를 갖는 복수의 블록이 존재하는 경우, 식별 번호의 더 작은 값을 갖는 블록이 유효하게 된다.
유효 데이터 크기는 블록에서 유효한 데이터의 크기를 나타낸다. 즉, 만약 블록에 데이터 기억 영역 내에 빈자리가 존재하는 경우, 유효 데이터 크기는 해당 데이터 기억 영역 내에 기록되어 있는 데이터 크기 값을 나타낸다. 이때, 참조 플래그는 참조 정보 존재로 설정된다. 만약 블록의 데이터 기억 영역 내에 빈자리가 존재하지 않는 경우, 유효 데이터 크기는 블록의 데이터 기억 영역 내에 빈자리가 존재하지 않는 다는 것을 나타내는 정보로서 Oxffff로 설정된다.
한편, 상기 상술된 분산 관리 정보와 추가 관리 정보는 블록 내의 정보가 갱신될 때마다 최근의 정보를 나타내기 위해서 갱신된다.
집합 관리 정보는 각 블록의 분산 관리 정보를 수집함으로써 형성되는 정보이고 파일로서 플래시메모리(21)에 기억된다. 즉, 도 7에 도시된 바와 같이, 모든 파일의 관리를 위한 정보이며 함께 수집된 집합 관리 정보의 파일은 블록에 기초한 분산 관리 정보로부터 형성되고, 소정 블록의 데이터 기억 영역에 기억된다. 집합 관리 정보는 단일의 블록에 또는 복수의 블록에 걸쳐 기억될 것이다. 데이터 처리 장치(10)는 통상적으로 이 집합 관리 정보에 의해 각 블록을 액세스하기 위한 정보를 획득한다.
데이터 관리를 위해 필요한 정보인 관리 정보 중에서, 영역 관리 정보는 변환 유닛(25)에 의해 여분의 데이터를 갖는 영역 관리 플래그로 변환되어, 메모리 카드(20)의 플래시메모리(21)의 관리 정보 기억 영역에 기억되고, 특히 관리 정보 기억 영역의 오버라이트 영역에 기억된다. 플래시메모리(21)로부터 판독되는 관리 정보 플래그는 변환 유닛(25)에 의해 원래의 영역 관리 정보로 변환되고 이것은 레지스터(23)와 S/P-P/S 인터페이스 회로(22)를 통해 데이터 처리 장치(10)로 전송된다.
레지스터(23)로부터 판독된 영역 관리 정보를 영역 관리 플래그로 변환하기 위한 또는 플래시메모리(21)로부터 판독된 영역 관리 플래그를 원래의 영역 관리 플래그로 변환하기 위한 변환 유닛(25)이 상세히 설명될 것이다.
변환 유닛(25)은, 도 1에 도시된 바와 같이, 변환 테이블(27), 플래그 판별 회로(28) 및 변환 제어기(29)를 포함한다.
변환 테이블(27)에는, 영역 관리 정보와 영역 관리 플래그가 서로 연관되어 기록된다. 이러한 변환 테이블(27)에서, 가능/불가능 플래그와 관련해서, 영역 관리 정보의 1과 이것에 대응하는 영역 관리 플래그의 1111 1111이 기록되고, 영역 관리 정보의 0과 이것에 대응하는 영역 관리 플래그의 0000 0000이 기록되어 있다.
또한, 변환 테이블(27)에는, 블록 플래그와 관련해서, 영역 관리 정보의 11과 관련된 영역 관리 플래그의 1111 1111이 기록되고, 영역 관리 정보의 10과 관련된 영역 관리 플래그의 1111 0000이 기록되고, 영역 관리 정보의 1과 관련된 영역 관리 플래그의 0000 1111이 기록되고, 영역 관리 정보의 0과 관련된 영역 관리 플래그의 0000 0000이 기록되어 있다.
또한, 변환 테이블(27)에는, 최종 플래그와 관련하여, 영역 관리 정보의 1과 관련된 영역 관리 플래그의 0000 1111이 기록되고, 영역 관리 정보의 0과 관련된 영역 관리 플래그의 0000 1111이 기록되어 있다.
또한 변환 테이블(27)에는, 참조 플래그와 관련하여, 영역 관리 정보의 1과 관련된 영역 관리 플래그의 1111이 기록되고, 영역 관리 정보의 0과 관련된 영역 관리 플래그의 0이 기록되어 있다.
영역 관리 정보가 변환 유닛(25)으로 전송될 때, 변환 제어기(29)는 변환 테이블(27)을 참조하여 공급된 영역 관리 정보를 이 영역 관리 정보와 관련된 영역 관리 플래그로 변환한다.
플래그 판별 회로(28)는 플래시메모리(21)로부터 판독된 영역 관리 플래그의 패턴으로부터 원래의 영역 관리 정보를 판별한다. 즉, 플래그 판별 회로(28)는, 플래시메모리(21)에 기록된 영역 관리 플래그에, 셀의 고장 등에 기인하는 에러가 발생하는 경우에도, 이 에러를 갖는 영역 관리 플래그의 패턴으로부터 원래의 영역 관리 정보를 판별하도록 구성된다.
특히, 만약, 최종 플래그와 관련하여, 영역 관리 정보의 1이 영역 관리 플래그(1111)로서 메모리(21)에 기억되어 있고, 셀의 고장에 기인하여 영역 관리 플래그에서 에러가 생성되어, 1111이 1110, 1101, 1011 또는 111로 변환된다고 가정하자. 이 경우, 플래그 판별 회로(28)는 영역 관리 플래그의 0과 1의 개수를 비교하여 많은 수, 즉 1을 갖는 정보가 원래의 영역 관리 정보라고 판별한다.
변환 제어기(29)는 원래의 영역 관리 정보인, 플래그 판별 회로(28)에 의해 판별된 정보를 레지스터(23)에 기록한다.
상기의 설명은 1 바이트의 영역 관리 플래그로서 가능/불가능 플래그에 대한 1 비트의 영역 관리 정보를 플래시메모리(21)에 기억시키고, 1 바이트의 영역 관리 플래그로서 블록 플래그에 대한 2 비트의 영역 관리 정보를 기억시키고, 동시에 4 비트의 영역 관리 플래그로서 최종 플래그에 대한 1 비트의 영역 관리 정보를 플래시메모리(21)에 기억시키고, 4 비트의 영역 관리 플래그로서 참조 플래그에 대한 1 비트의 영역 관리 정보를 플래시메모리(21)에 기억시키는 경우에 관한 것이다. 여분 데이터를 추가하는 방법은 이러한 구성에 제한되지 않는데, 그 이유는 플래시메모리(21)의 셀의 고장율에 기초하여, 셀에 고장이 발생하는 경우에도, 원래의 영역 관리 정보가 판별될 수 있는 범위 내에서, 여분 데이터의 추가가 임의로 선택될 수 있기 때문이다.
만약 셀 고장율이 낮다면, 여분 데이터의 두 비트가 1 비트의 영역 관리 정보에 부가되어 3 비트의 영역 관리 플래그로 변환되어 3 개의 셀에 분산되어 기억될 수 있다. 이러한 경우에 있어서, 만약 고장이 상기 3 개의 셀 중 하나에서 발생하면, 원래의 영역 관리 정보는 플래그 판별 회로(28)에 의한 0과 1의 개수를 비교함으로써 판별될 수 있다. 그러나, 만약 영역 관리 정보에 추가되는 여분 데이터의 비트 수가 증가된다면, 데이터 신뢰성은 그에 따라 증가할 것이다.
본 발명의 메모리 카드(20)는, 상기 설명한 바와 같은 변환 유닛(25)을 구비하고, 입력된 영역 관리 정보를 이 관리 정보에 여분 데이터를 부가한 영역 관리 플래그로 변환하여 플래시메모리(21)에 기억함으로써, 플래시메모리(21)의 셀의 고장 등에 기인하여 기억된 영역 관리 플래그에 에러가 발생하는 경우에 있어서도, 에러 정정 코드를 사용하지 않으면서 상기 플래그의 에러를 정정하여 원래의 영역 관리 정보를 출력하는 것이 가능하다.
또한, 메모리 카드(20)와 데이터 처리 장치(10)간의 데이터 교환을 위해, 추가된 여분 데이터를 갖지 않는 영역 관리 정보, 즉 원래의 영역 관리 정보가 전송되어, 여분 데이터를 부가하는 경우의 문제점인 전송 효율의 악화를 초래하지 않는다. 또한, 만약 여분 데이터를 부가하는 방법이 변경되더라도, 이러한 변경에 대처하여 메모리 카드간의 상호 교환성을 보장하기 위해서 데이터 처리 장치(10)의 구조를 변경할 필요가 없다.
이상은, 하나의 셀에 1 비트의 정보가 기억되는, 즉 2치형 플래시메모리(bi-level flash memory)에 관해 설명되었지만, 본 발명은 하나의 셀에 2 비트 이상의 정보가 기억되는, 즉 다치형 플래시메모리(multi-valued flash memory)를 탑재한 메모리 카드에도 적용 가능하다.
단일의 셀에 2 비트의 정보를 저장하기 위한 플래시메모리에 있어서, 단일 셀의 고장의 경우 2 비트의 에러가 생성된다. 따라서, 이러한 플래시메모리(21)에 예를들면 1 비트의 영역 관리 정보를 저장하기 위해서, 영역 관리 정보는 되도록 적어도 5 비트의 영역 관리 플래그로 변환되어 세 개의 셀에 저장되어야 한다. 만약, 단일의 셀에 2 비트의 정보를 저장하기 위한 플래시메모리에 있어서, 1 비트의 영역 관리 정보가 세 개의 셀에 기억되는 적어도 5 비트의 영역 관리 플래그로 변환된다면, 영역 관리 플래그를 유지하고 있는 상기 셀 중 한 셀이 잘못되어 두 비트의 에러를 생성하는 경우라도 영역 관리 플래그의 1과 0의 수를 비교하는 변환 유닛(25)의 플래그 판별 회로(28)에 의해 원래의 영역 관리 정보는 식별될 수 있다.
특히, 하나의 셀에 두 비트의 정보를 저장하기 위한 플래시메모리의 관리 정보 기억 영역에 영역 관리 정보를 저장할 때, 여분 데이터가 영역 관리 정보에 부가되고 그로 인해 발생하는 데이터는, 도 8에 도시된 바와 같이, 영역 관리 플래그로서 기억된다. 한편, 변환 유닛(25)의 플래그 판별 회로(28)가 원래의 영역 관리 정보를 식별하기 위해서는, 1 비트의 영역 관리 정보를 5 비트의 영역 관리 플래그로 변환하면 충분하다. 그러나, 데이터가 짝수 비트로 변환될 때 더 쉽게 처리될 수 있기 때문에, 도 8에 도시된 실시예는 1 비트의 영역 관리 정보가 6 비트 또는 1 바이트의 영역 관리 플래그로 변환되어 기억되고, 동시에 두 비트의 영역 관리 정보는 12 비트의 영역 관리 플래그로 변환되어 기억된다.
즉, 블록이 사용 가능한 상태에 있음을 나타내는 가능/불가능 플래그의 1 비트의 영역 관리 정보 1은 1 바이트의 영역 관리 플래그 1111 1111로 변환되어 4 개의 셀에 기억되고, 블록이 사용 불가능한 상태를 나타내는 가능/불가능 플래그의 1 비트의 영역 관리 정보 0은 1 바이트의 영역 관리 플래그 0000 0000으로 변환되어 4 개의 셀에 기억된다.
한편, 블록이 미사용 중임을 나타내는 블록 플래그의 2 비트의 영역 관리 정보 11은 12 비트의 영역 관리 플래그 111111 111111로 변환되어 6 개의 셀에 기억되고, 블록이 선두 사용 중임을 나타내는 블록 플래그의 2 비트의 영역 관리 정보 10은 12 비트의 영역 관리 플래그 111111 000000으로 변환되어 6 개의 셀에 기억된다. 유사하게, 블록이 사용 중임을 나타내는 블록 플래그의 2 비트의 영역 관리 정보는 12 비트의 영역 관리 플래그 000000 111111로 변환되어 6 개의 셀에 기억되고, 블록이 미소거임을 나타내는 블록 플래그의 2 비트의 영역 관리 플래그 0은 12 비트의 영역 관리 플래그 000000 000000으로 변환되어 6 개의 셀에 기억된다.
블록이 블록 계속에 있음을 나타내는 최종 플래그의 1 비트 영역 관리 정보 1은 6 비트의 영역 관리 플래그 111111로 변환되어 세 개의 셀에 기억되고, 블록이 블록 최종에 있음을 나타내는 최종 플래그의 1 비트 영역 관리 정보 0은 6 비트의 영역 관리 플래그 0으로 변환되어 세 개의 셀에 기억된다.
참조 정보가 존재하지 않음을 나타내는 기준 플래그의 1 비트 영역 관리 정보 1은 6 비트의 영역 관리 플래그 111111로 변환되어 세 개의 셀에 기억되고, 참조 정보 존재를 나타내는 기준 플래그의 1 비트 영역 관리 정보 0은 6 비트의 영역 관리 플래그 0으로 변환되어 세 개의 셀에 기억된다.
영역 관리 정보에 여분 데이터를 부가하고 그 결과 신호를 영역 관리 플래그로서 기억함으로써, 셀의 고장에 기인하는 에러가 발생하여 111111이 111100, 110011 또는 1111로 바뀔지라도, 원래의 영역 관리 정보 1은 최종 플래그의 0과 1의 개수를 비교함으로써 플래그 판별 회로(28)에 의해 식별될 수 있을 것이다.
이러한 경우, 영역 관리 정보와 상기 언급된 영역 관리 플래그는 서로 연관되어 변환 테이블(27)에 기록된다.
또한, 만약 영역 관리 정보를 영역 관리 플래그로 변환하여 관리 정보 기록 영역에 기록하는 경우에는, 영역 관리 플래그 전체로 4 바이트가 사용된다. 따라서, 16 바이트의 관리 정보 기록 영역의 처음 4 바이트는 오버라이트 영역으로 설정된다.
블록이 미사용중임을 나타내는 블록 플래그의 영역 관리 정보 11은 6 비트의 영역 관리 플래그 111111로 변환되어 세 개의 셀에 분산 기억되고, 블록이 선두 사용중임을 나타내는 블록 플래그의 영역 관리 정보 10은 6 비트의 영역 관리 플래그 101010으로 변환되어 세 개의 셀에 분산 기억된다. 한편, 블록이 사용중임을 나타내는 블록 플래그의 영역 관리 정보 1은 6 비트의 영역 관리 플래그 10101로 변환되어 세 개의 셀에 기억되고, 블록이 미소거임을 나타내는 블록 플래그의 영역 관리 정보 0은 6 비트의 영역 관리 플래그 0으로 변환되어 세 개의 셀에 분산 기억된다.
이 경우, 플래그 판별 회로(28)는 2 비트 단위로 코드 패턴을 인식하고 다수의 패턴을 원래의 영역 관리 정보로서 판별한다.
특히, 만약 블록이 선두 사용임을 나타내는 영역 관리 정보 10이 6 비트의 영역 관리 플래그 101010으로 변화되어 세 개의 셀에 분산 기억되고, 하나의 셀이 고장난 경우에는, 영역 관리 플래그 101010은 1010, 11010, 111010, 100010, 100110, 101110, 101000, 101001 또는 101011로 변하게 된다. 이 경우, 플래그 판별 회로(28)는 2 비트 단위로 영역 관리 플래그의 코드 패턴을 인식하고, 다수의 10 패턴을 원래의 영역 관리 정보인 것으로 판별한다.
2 비트의 영역 관리 정보인 블록 플래그가 영역 관리 플래그로서 기억되는 경우, 사용되는 비트의 수가 감소될 수 있다.
이상의 설명에 있어서, 본 발명은 외부 장치인 메모리 카드(20)와 이 메모리 카드(20)와 데이터 처리 장치(10)를 구비하는 시스템(1)에 적용되었다. 그러나, 본 발명은 내부 메모리를 구비하는 데이터 처리 장치에 적용될 수 있다. 이 경우, 내부 메모리에 영역 관리 정보를 기억시키기 위해서, 영역 관리 정보를 이 영역 관리 정보에 여분의 데이터를 부가한 영역 관리 플래그로 변화하여 기억시키고, 또한 내부 메모리로부터 영역 관리 플래그를 판독할 때에 이 영역 관리 플래그를 원래의 영역 관리 정보로 변환하여 판독하면 충분하다.

Claims (12)

  1. 데이터와 상기 데이터를 기억하기 위한 영역의 상태를 관리하기 위한 영역 관리 정보를 기억하기 위한 기억 수단과;
    입력된 영역 관리 정보를 상기 영역 관리 정보와 이에 부가된 여분 데이터에 대응하는 영역 관리 플래그로 변환하거나, 또는 상기 기억 수단으로부터 판독된 상기 영역 관리 플래그를 원래의 영역 관리 정보로 변환하기 위한 변환 수단; 및
    상기 변환 수단에 의해 변환된 상기 영역 관리 플래그를 상기 기억 수단에 기록하거나, 또는 상기 기억 수단으로부터 상기 영역 관리 플래그를 판독하고 상기 판독된 플래그를 상기 변환 수단으로 공급하여 상기 변환 수단에 의해 변환된 상기 원래의 영역 관리 정보를 출력하기 위한 제어 수단을 포함하는 기억 장치.
  2. 제 1항에 있어서,
    상기 변환 수단은 상기 영역 관리 정보와 상기 영역 관리 플래그가 서로 연관되어 기록되어 있는 변환 테이블을 포함하고, 상기 영역 관리 정보는 이 변환 테이블을 사용하여 영역 관리 플래그로 변환되는 기억 장치.
  3. 제 1항에 있어서,
    상기 변환 수단은 상기 기억 장치로부터 판독된 영역 관리 플래그의 패턴으로부터 원래의 영역 관리 정보를 판별하기 위한 플래그 판별 회로를 포함하고, 상기 변환 수단은 이 플래그 판별 회로를 사용하여 기억 수단으로부터 판독된 영역 관리 플래그를 영역 관리 정보로 변환하는 기억 장치.
  4. 제 1항에 있어서,
    상기 기억 수단은 플래시메모리이고, 상기 변환 수단은 상기 영역 관리 정보를 정보의 한 비트당 적어도 3 비트를 갖는 영역 관리 플래그로 변환하며, 상기 제어 수단은 상기 영역 관리 플래그가 상기 플래시메모리의 적어도 3 비트에 분산되어 저장되도록 하는 기억 장치.
  5. 데이터와 상기 데이터를 기억하기 위한 영역의 상태를 관리하기 위한 영역 관리 정보를 기억하기 위한 기억 장치; 및
    상기 데이터와 영역 관리 정보를 상기 기억 장치로 전송하거나 또는 상기 기억 장치와 상기 영역 관리 정보로부터 공급된 데이터를 처리하기 위한 데이터 처리 장치를 포함하고,
    상기 기억 장치는 상기 데이터 처리 장치로부터 공급된 영역 관리 정보를 부가된 여분의 데이터를 가진 이 영역 관리 정보에 대응하는 영역 관리 플래그로 변환하고, 상기 기억 장치는 또한 기억된 영역 관리 플래그를 원래의 영역 관리 정보로 변환하여 상기 데이터 처리 장치에 상기 원래의 영역 관리 정보를 제공하는 데이터 처리 시스템.
  6. 제 5항에 있어서,
    상기 기억 장치는 상기 영역 관리 정보와 상기 영역 관리 플래그가 서로 연관되어 기록되어 있는 변환 테이블을 구비하고, 상기 입력되는 영역 관리 정보는 상기 변환 테이블을 참조함으로써 상기 영역 관리 플래그로 변환되는 데이터 처리 시스템.
  7. 제 5항에 있어서,
    상기 기억 장치는 상기 기억된 영역 관리 플래그의 패턴으로부터 상기 원래의 영역 관리 정보를 판별하기 위한 플래그 판별 회로를 구비하고, 상기 기억된 영역 관리 플래그는 이 플래그 판별 회로를 사용하여 상기 영역 관리 정보로 변환되는 데이터 처리 시스템.
  8. 제 5항에 있어서,
    상기 기억 장치는 플래시메모리를 구비하고, 상기 기억 장치는 상기 영역 관리 정보를 정보의 한 비트당 적어도 3비트의 영역 관리 플래그로 변환하고, 상기 플래그를 상기 플래시메모리의 적어도 3 비트에 분산하며 이렇게 분산된 상태에서 상기 플래그를 상기 셀에 기억하는 데이터 처리 시스템.
  9. 데이터와 상기 데이터를 기억하기 위한 영역의 상태를 관리하기 위한 영역 관리 정보를 기억 장치에 기록시키거나, 또는 상기 기억 장치에 기록된 상기 데이터와 영역 관리 정보를 상기 기억 장치로부터 판독하는 데이터 기록 및 판독 방법에 있어서,
    데이터 기록동안 상기 기억 장치에 입력되는 상기 영역 관리 정보를 상기 영역 관리 정보와 이에 부가된 여분의 데이터에 대응하는 영역 관리 플래그로 변환하여, 변환된 플래그를 상기 기억 장치에 기록하는 단계; 및
    데이터 판독동안 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변환하여 상기 기억 장치로부터 출력하는 단계를 포함하는 데이터 기록 및 판독 방법.
  10. 제 9항에 있어서,
    상기 기억 장치는 상기 영역 관리 정보와 상기 영역 관리 플래그가 서로 연관되어 기록되어 있는 변환 테이블을 구비하고,
    데이터 기록동안, 입력되는 영역 관리 정보는 이 변환 테이블을 참조함으로써 영역 관리 플래그로 변환되는 데이터 기록 및 판독 방법.
  11. 제 9항에 있어서,
    상기 기억 장치는 상기 판독된 영역 관리 플래그의 패턴으로부터 상기 원래의 영역 관리 정보를 판별하기 위한 플래그 판별 회로를 구비하며,
    데이터 판독동안, 상기 판독된 영역 관리 플래그는 이 판별 회로를 사용하여 상기 원래의 영역 관리 정보로 변환되는 데이터 기록 및 판독 방법.
  12. 제 9항에 있어서,
    상기 기억 장치는 플래시메모리를 구비하며, 상기 영역 관리 정보는 정보의 한 비트당 적어도 3 비트의 영역 관리 플래그로 변환되어 상기 플래시메모리의 적어도 3 셀에 분산되어 상기 플래시메모리의 적어도 3 셀에 기록되는 데이터 기록 및 판독 방법.
KR1019980040766A 1997-09-30 1998-09-30 저장장치,데이터처리시스템및데이터기록및판독방법 KR100527610B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP26717397A JP3119214B2 (ja) 1997-09-30 1997-09-30 記憶装置、データ処理システム並びにデータの書き込み及び読み出し方法
JP97-267173 1997-09-30

Publications (2)

Publication Number Publication Date
KR19990030283A true KR19990030283A (ko) 1999-04-26
KR100527610B1 KR100527610B1 (ko) 2006-03-28

Family

ID=17441126

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US6219768B1 (ko)
JP (1) JP3119214B2 (ko)
KR (1) KR100527610B1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122195A (en) * 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
JP3788205B2 (ja) * 1997-09-30 2006-06-21 ソニー株式会社 記憶装置、データ処理システム、データの書き込み及び読み出し方法並びにデータ処理装置
JP3233079B2 (ja) * 1997-09-30 2001-11-26 ソニー株式会社 データ処理システム及びデータ処理方法
JP3454700B2 (ja) * 1998-01-20 2003-10-06 富士通株式会社 情報記憶装置及びその制御方法
US6601140B1 (en) * 1999-04-07 2003-07-29 Sony Corporation Memory unit, data processing unit, and data processing method using memory unit type
US7380272B2 (en) * 2000-05-17 2008-05-27 Deep Nines Incorporated System and method for detecting and eliminating IP spoofing in a data transmission network
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP2002342164A (ja) * 2001-05-22 2002-11-29 Hitachi Ltd 記憶装置及びデータ処理装置並びに記憶部制御方法
KR100921851B1 (ko) * 2001-06-28 2009-10-13 소니 가부시끼 가이샤 전자 장치, 정보 처리 장치, 어댑터 장치 및 정보 교환시스템
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
JP2003196142A (ja) * 2001-12-25 2003-07-11 Sony Corp ライトワンス型メモリ装置及びファイル管理方法
JP3935139B2 (ja) 2002-11-29 2007-06-20 株式会社東芝 半導体記憶装置
US7904635B2 (en) * 2003-03-04 2011-03-08 Netac Technology Co., Ltd. Power cut data recovery and data management method for flash media
US20050138090A1 (en) * 2003-12-17 2005-06-23 Oliver Augenstein Method and apparatus for performing a backup of data stored in multiple source medium
JP2005190288A (ja) * 2003-12-26 2005-07-14 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
JP2005222201A (ja) * 2004-02-04 2005-08-18 Matsushita Electric Ind Co Ltd メモリアクセス装置、及び半導体メモリカード
US7434092B2 (en) * 2005-02-22 2008-10-07 Silicon Storage Techonology, Inc. Semiconductor memory and method of storing configuration data
US7734668B2 (en) * 2005-07-26 2010-06-08 Brother Kogyo Kabushiki Kaisha Information management system, information processing device, and program
JP4241703B2 (ja) * 2005-09-30 2009-03-18 ブラザー工業株式会社 情報管理システム、情報処理装置及び情報管理プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5690349A (en) * 1979-12-25 1981-07-22 Fujitsu Ltd Error correction code circuit
JPS62206658A (ja) * 1986-03-07 1987-09-11 Hitachi Ltd 記憶管理装置
JP2753254B2 (ja) * 1988-04-06 1998-05-18 株式会社日立製作所 パケツト交換システム
JPH02193236A (ja) * 1989-01-21 1990-07-30 Fuji Photo Film Co Ltd メモリカードの記憶管理方式
EP0443029B1 (en) * 1989-04-28 1995-09-20 Anritsu Corporation Signal generator and signal receiver based on synchronous multiplex transmission system
JP3391479B2 (ja) * 1992-09-14 2003-03-31 富士写真フイルム株式会社 メモリカード管理方法および方式
JP2647312B2 (ja) * 1992-09-11 1997-08-27 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性半導体記憶装置
JP2974526B2 (ja) * 1992-12-18 1999-11-10 富士通株式会社 データ転送処理方法及びデータ転送処理装置
US5784377A (en) * 1993-03-09 1998-07-21 Hubbell Incorporated Integrated digital loop carrier system with virtual tributary mapper circuit
US5737550A (en) * 1995-03-28 1998-04-07 Advanced Micro Devices, Inc. Cache memory to processor bus interface and method thereof

Also Published As

Publication number Publication date
JP3119214B2 (ja) 2000-12-18
KR100527610B1 (ko) 2006-03-28
JPH11110305A (ja) 1999-04-23
US6219768B1 (en) 2001-04-17

Similar Documents

Publication Publication Date Title
KR100527610B1 (ko) 저장장치,데이터처리시스템및데이터기록및판독방법
KR100527609B1 (ko) 기억장치,데이터처리시스템및데이터기록및판독방법
US6330634B1 (en) External storage apparatus having redundant boot blocks, and data processing method therefor
US8310896B2 (en) Memory system and method of writing into nonvolatile semiconductor memory
US6144607A (en) Memory management apparatus and memory management method
US7890732B2 (en) Memory card and semiconductor device
CN102163133B (zh) 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置
KR100742849B1 (ko) 데이타 기억 장치, 데이타 처리 시스템, 데이타 처리 방법 및 데이타 처리 장치
US20060026340A1 (en) Memory card, card controller mounted on the memory card, and device for processing the memory card
US6345333B1 (en) Method and apparatus for reverse rewriting
JP3620478B2 (ja) 記憶装置、この記憶装置を用いたデータ処理システム及びデータ読み出し方法
EP2041703A1 (en) Portable electronic device and control method thereof
JP3788205B2 (ja) 記憶装置、データ処理システム、データの書き込み及び読み出し方法並びにデータ処理装置
JP2910745B2 (ja) 記憶装置及びデータ処理方法
JP4127307B2 (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