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

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

Info

Publication number
KR100527610B1
KR100527610B1 KR1019980040766A KR19980040766A KR100527610B1 KR 100527610 B1 KR100527610 B1 KR 100527610B1 KR 1019980040766 A KR1019980040766 A KR 1019980040766A KR 19980040766 A KR19980040766 A KR 19980040766A KR 100527610 B1 KR100527610 B1 KR 100527610B1
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
KR19990030283A (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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Abstract

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

Description

저장 장치, 데이터 처리 시스템 및 데이터 기록 및 판독 방법
발명의 분야
본 발명은 임의 데이터(optional data)와, 이 임의 데이터를 제어하기 위한 데이터 관리 정보, 및 데이터를 저장하는 영역의 상태를 관리하기 위한 영역 관리 정보를 저장하기 위한 저장 장치와, 이러한 저장 장치를 사용하는 데이터 처리 시스템에 관한 것이다. 본 발명은 또한 임의 데이터와 이 임의 데이터를 제어하기 위한 데이터 관리 정보 및 데이터를 저장하는 영역의 상태를 관리하기 위한 영역 관리 정보를 기억 장치에 저장시키거나 저장 장치로부터 판독하기 위한 데이터 기록 및 판독 방법에 관한 것이다.
관련 기술의 설명
지금까지, 기록 매체로서 플래시 메모리(전기적으로 소거가능하고 프로그램 가능한 읽기 전용 메모리(ROM))를 사용하는 카드형 외부 저장 장치(이하, 메모리 카드라고 함)가 전자 장치에 사용되는 외부 저장 장치로서 제안되어 왔다.
이러한 메모리 카드에 있어서, 임의 데이터 및 보조 데이터로서의 관리 정보가 기록 매체인 메모리에 저장된다. 이들 데이터 및 관리 정보가 메모리 카드로부터, 예를들면, 호스트 측 컴퓨터로 전송되는 경우, 데이터 또는 관리 정보는 데이터 또는 관리 정보를 출력하기 전에 셀 고장에 의해 생성되는 에러 데이터를 정정하기 위해 에러 정정 코드들을 사용하여 에러 정정된다.
상기 관리 정보로서, 메모리 상에서 데이터를 유지하고 있는 영역이 사용가능한지를 나타내는 정보와 같은, 데이터 저장용 영역의 상태를 관리하기 위한 정보(영역 관리 정보)는, 저장되어 있는 데이터의 시퀀스를 나타내는 논리적인 어드레스들과 같은, 데이터(데이터 관리 정보)를 관리하기 위한 데이터 종속 정보(data-dependent information)에 부가해서 저장되는 경우가 있다.
이 영역 관리 정보는 메모리 내의 영역에 관련하는 정보, 즉, 데이터와 무관한 정보이기 때문에, 데이터가 저장된 후에 정보를 재기록할 필요가 발생할 것이고, 그러므로 영역 관리 정보는 통상적으로 데이터를 재기록하지 않으면서 독립적으로 재기록되어야 할 것이다.
또한, 영역 관리 정보에 에러가 발생하고 에러가 발생한 정보를 정정하기 위해 통상의 에러 정정 코드가 사용되면, 에러 정정 코드들은 정보가 재기록될 때마다 재기록되어야 한다. 따라서, 영역 관리 정보에 대해서, 에러 정정 코드를 사용하지 않으면서 에러들을 정정하기 위해서는 동일한 정보가 복수의 비트들에 분산되고 이 상태에서 저장되는 것이 바람직하다.
그러나, 영역 관리 정보가 복수의 비트에 분산되어 이 상태로 저장되는 경우, 메모리 카드로부터 데이터를 판독할 때 전송 데이터는 그 길이가 증가되고, 따라서 전송 효율을 저하시킨다. 최근에, 단일의 셀에 복수의 비트들의 정보를 저장하는 기술이 제안되었다. 하나의 셀에 저장된 비트들의 수가 증가되면, 에러들을 정정하기 위한 분산 비트들의 수가 증가되어야 하고, 따라서 전송 효율은 더 저하된다.
또한, 메모리 카드의 셀 구조가 변경되어 정보 분산 방식이 변경되면, 호스트 측으로부터 메모리 카드로 전송되는 데이터의 구성, 메모리 카드의 메모리를 관리하기 위한 호스트 측의 드라이버의 구조, 또는 기존 메모리 카드와의 호환성을 유지하기 어렵게 하는 변경될 필요가 있는 인터페이스 명세를 변경할 필요가 있다. 특히, 디지털 카메라와 같은 내장형 드라이버를 구비하는 전자기기의 경우에 있어서, 소프트웨어 버전 업그레이드 방법이 사용될 수 없기 때문에 새로운 메모리 카드들은 사용될 수 없게 된다.
발명의 요약
따라서, 본 발명의 목적은 전송 효율을 저하시키지 않으면서 영역 관리 정보가 분산 저장될 수 있고 셀 구조가 변경되더라도 기존의 저장 장치들과의 호환성이 유지될 수 있는 기억 장치, 데이터 처리 시스템, 및 데이터 기록 및 판독 방법을 제공하는 것이다.
본 발명의 일 양상에 있어서, 본 발명은 데이터와 이 데이터를 저장하기 위한 영역의 상태를 관리하기 위한 영역 관리 정보를 저장하는 저장 수단과, 입력된 영역 관리 정보를 영역 관리 정보에 대응하며 용장 데이터(redundant data)가 부가되어 있는 영역 관리 플래그로 변환하거나 또는 저장 수단으로부터 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변환하는 변환 수단과, 변환 수단에 의해 변환된 영역 관리 플래그를 저장 수단에 기록하거나 또는 저장 수단으로부터 영역 관리 플래그를 판독하여 판독된 플래그를 변환 수단에 공급하고 변환 수단에 의해 변환된 원래의 영역 관리 정보를 출력하기 위한 제어 수단을 구비한다.
이러한 저장 장치에 있어서, 입력된 영역 관리 정보는 변환 수단에 의해 영역 관리 정보보다 많은 수의 비트들을 갖는 영역 관리 플래그로 변환된다. 변환 수단에 의해 변환된 영역 관리 플래그는 제어 수단에 의해 저장 수단에 기록된다.
이러한 저장 장치에 있어서, 제어 수단에 의해 저장 수단으로부터 판독된 영역 관리 플래그는 변환 수단에 의해 원래의 영역 관리 정보로 변환된다. 변환 수단에 의해 이렇게 변환된 영역 관리 정보는 제어 수단의 제어 하에서 출력된다.
이러한 저장 장치에 있어서, 변환 수단은 바람직하게 영역 관리 정보와 영역 관리 플래그가 서로 연관되어 기록되어 있는 변환 테이블을 포함한다. 변환 수단은 변환 테이블을 참조하여, 입력된 영역 관리 정보를 영역 관리 플래그로 변환한다.
이러한 저장 장치에 있어서, 변환 수단은 바람직하게 저장 수단의 관리 정보 저장 영역으로부터 판독된 영역 관리 플래그의 패턴으로부터 원래의 영역 관리 정보를 판별하기 위한 플래그 판별 회로를 포함한다. 이 경우, 변환 수단은 저장 수단으로부터 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변환한다.
다른 양상에 있어서, 본 발명은, 데이터 및 이 데이터를 저장하기 위한 영역의 상태를 관리하기 위한 영역 관리 정보를 저장하기 위한 저장 장치와, 데이터 및 영역 관리 정보를 저장 장치로 전송하거나 또는 저장 장치로부터 공급된 데이터 및 영역 관리 정보를 처리하기 위한 데이터 처리 장치를 포함하는 데이터 처리 시스템을 제공한다. 저장 장치는 데이터 처리 장치로부터 공급된 영역 관리 정보를 이 영역 관리 정보에 대응하며 용장 데이터가 부가되어 있는 영역 관리 플래그로 변환한다. 저장 장치는 또한 저장된 영역 관리 플래그를 원래의 영역 관리 정보로 변환하여 원래의 영역 관리 정보를 데이터 처리 장치에 제공한다.
바람직하게, 기억 장치는 영역 관리 정보와 영역 관리 플래그가 서로 연관되어 기록되어 있는 변환 테이블을 구비하며 입력된 영역 관리 정보는 변환 테이블을 참조하여 영역 관리 플래그로 변환된다.
바람직하게, 저장 장치는 저장된 영역 관리 플래그의 패턴으로부터 원래의 영역 관리 정보를 판별하기 위한 플래그 판별 회로를 구비하며 저장된 영역 관리 플래그는 이 플래그 판별 회로를 사용하여 영역 관리 정보로 변환된다.
바람직하게, 저장 장치는 플래시 메모리를 구비하고, 영역 관리 정보를 정보의 비트당 적어도 3 비트의 영역 관리 플래그로 변환하고, 플래시 메모리의 적어도 3개의 셀들에 플래그를 분산하고, 이 분산된 상태로 셀들에 저장한다.
다른 양상에 있어서, 본 발명은 데이터 및 데이터를 저장하기 위한 영역의 상태를 관리하기 위한 영역 관리 정보가 저장 장치에 저장되어 있는 또는 저장 장치에 기록된 데이터와 영역 관리 정보가 저장 장치로부터 판독되는 데이터 기록 및 판독 방법을 제공한다. 이 방법은 데이터 기록동안 저장 장치에 기록되는 영역 관리 정보를 이 영역 관리 정보에 대응하며 용장 데이터가 부가된 영역 관리 플래그로 변환하는 단계와, 변환된 플래그를 기억 장치에 기록하는 단계와, 데이터 판독동안 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변환하는 단계 및 이렇게 변환된 원래의 영역 관리 정보를 저장 장치로부터 출력하는 단계를 포함한다.
바람직하게, 저장 장치는 영역 관리 정보와 영역 관리 플래그가 서로 연관되어 기록되어 있는 변환 테이블을 구비하며, 입력된 영역 관리 정보는 데이터 기록동안 변환 테이블을 참조하여 영역 관리 플래그로 변환된다.
바람직하게, 저장 장치는 판독된 영역 관리 플래그의 패턴으로부터 원래의 영역 관리 정보를 판별하기 위한 플래그 판별 회로를 구비하고, 판독된 영역 관리 플래그는 데이터 판독동안 이 플래그 판별 회로를 사용하여 원래의 영역 관리 정보로 변환된다.
바람직하게, 저장 장치는 플래시 메모리를 구비하고, 영역 관리 정보는 정보의 비트당 적어도 3 비트의 영역 관리 플래그로 변환되며 플래시 메모리의 적어도 3개의 셀들에 분산되어 기록된다.
이하, 도면을 참조하여 본 발명의 바람직한 실시예가 상세히 설명될 것이다.
도 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)의 제어 하에서 제어 데이터인 판독 명령을 레지스터(13)에 기록한다. 직렬 인터페이스 회로(12)는, 제어기 (14)의 제어 하에서, 클록 신호들 및 상태 신호들과 함께 직렬 데이터를 전송하기 위해 레지스터(13)로부터 판독 명령을 판독한다.
판독 명령에 따라 메모리 카드(20)로부터 전송된 데이터 또는 관리 정보는 직렬 인터페이스 회로(12)에 의해 병렬 데이터로 변환되어, 레지스터(13)에 기록된다. 데이터 처리 유닛(11)은 제어기(14)의 제어 하에서 처리를 수행하기 위해 이들 소정의 데이터 또는 관리 정보를 레지스터(13)로부터 판독한다.
본 발명의 시스템에 사용되는 데이터 처리 장치가 메모리 카드(20)와 같은 외부 저장 장치와 데이터 교환을 할 수 있다는 점에서 이 데이터 처리 장치에 대한 특별한 제한점은 존재하지 않는다. 따라서, 개인용 컴퓨터나, 디지털 스틸 카메라 또는 디지털 비디오 카메라와 같은 다양한 데이터 처리 장치들이 사용될 수도 있을 것이다.
이 시스템(1)에 있어서, 데이터 처리 장치(10)와 메모리 카드(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)로부터 판독된 영역 관리 정보를 이 영역 관리 정보와 여기에 부가된 용장 데이터로 구성된 정보(이하, 영역 관리 플래그)로 변환하거나, 또는 플래시 메모리(21)로부터 판독된 영역 관리 플래그를 원래의 영역 관리 정보로 변환하기 위한 변환 유닛(25)을 포함한다. 메모리 카드(20)는 플래시 메모리(21), S/P-P/S 인터페이스 회로(22), 레지스터(23) 및 변환 유닛(25)에 접속되고 이들의 처리 동작을 제어하도록 적응된 제어기(26)를 더 포함한다.
S/P-P/S 인터페이스 회로(22)는 상기 언급된 3개의 데이터 라인들(SCLK, STATE 및 DIO)을 통해 데이터 처리 장치(10)와 데이터를 교환하기 위해 적어도 이데이터 라인들(SCLK, STATE 및 DIO)을 통해 데이터 처리 장치(10)의 직렬 인터페이스 회로(12)에 접속된다. 즉, 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)에 기록된 데이터 또는 관리 정보의 데이터 관리 정보에 임의의 에러가 존재하는 경우, 에러 정정 코드에 기초하여 에러 정정 회로(24)에 의해 정정된다.
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바이트의 영역을 구비하는데, 여기서 처음 2바이트는 블록에 기초한 일괄적인 초기화 없이 정보가 재기록될 수 있는 오버라이트 영역 (overwrite area)으로 설정된다. 나머지 13바이트는 정보 재기록시 블록에 기초한 일괄적인 초기화를 위한 일반 영역으로 설정된다.
관리 정보는 블록을 구성하는 각 페이지의 관리 정보 저장 영역에 저장된다. 특히, 블록을 관리하는데 필요한 정보로서, 소위 분산 관리 정보(distributed management information)가 도 3의 (c)에 도시된 바와 같이, 각 블록의 선두 페이지의 관리 정보 저장 영역에 저장된다. 또한, 각 블록의 페이지 2로부터의 각 페이지의 관리 정보 저장 영역에는 예비 분산 관리 정보로서, 선두 페이지의 관리 정보 저장 영역에 저장되어 있는 분산 관리 정보와 동일한 관리 정보가 저장되어 있다. 각 블록의 최종 페이지의 관리 정보 저장 영역에는, 부족한 정보를 보충하기 위한 분산 관리 정보 이외의 소위 부가 관리 정보가 저장되어 있음을 유념해야 한다.
따라서, 각 블록들을 관리하기 위한 분산 관리 정보는 메모리 카드(20)에 탑재된 플래시 메모리(21)의 각 블록의 관리 정보 저장 영역에 저장된다. 해당 블록이 파일의 선두 블록(leading end block)인지 아닌지에 관한 정보, 및 파일이 복수의 파일들로 구성된 경우에는 블록 연계(linkage)를 나타내는 정보가 이 분산 관리 정보에 의해 얻어질 수 있다.
각 블록의 분산 관리 정보를 수집함으로써, 메모리 카드(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 바이트의 일반 영역은 예비 영역으로 설정된다.
가능/불가능 플래그는 블록이 사용 가능한 상태에 있는지 또는 사용 불가능한 상태에 있는지를 나타낸다. 즉, 복원될 수 없는 에러가 블록에 생성되면, 가능/불가능 플래그는 해당 블록이 사용 불가능한 상태에 있는 것으로 지정한다.
블록 플래그는 블록의 사용 가능 상태를 명시한다. 구체적으로, 블록 플래그는 "미사용(not used as yet)", "선두 사용(used at the leading end)", "사용 (used)" 및 "미소거(not erased as yet)"의 4개의 상태들을 나타낸다. 이들 중, 블록 플래그 "미사용"은 블록이 아직 사용되지 않거나 또는 이미 소거되어 전체 비트들이 "1"을 갖는 초기 상태를 나타내는 것으로, 데이터가 즉시 기록될 수 있음을 나타낸다. 블록 플래그 "선두에서 사용"은 해당 블록이 파일의 선두에서 사용되고 있는 것을 나타낸다. 블록 플래그 "사용"은 해당 블록이 파일의 선두 이외에서 사용되고 있는 것을 나타낸다. 즉, 블록 플래그가 "사용"이라면, 이것은 해당 블록이 다른 블록으로부터 연결되어 있음을 나타낸다. 블록 플래그 "미소거"는 블록에 기록되어 있는 데이터가 불필요한 것을 나타낸다. 이 메모리 카드(20)에 있어서, 블록에 저장되어 있는 불필요한 데이터가 소거되면, 블록 플래그는 먼저 "미소거" 상태로 설정되고, 처리 시간에 여유가 있을 때, 블록 플래그가 "미소거"인 블록은 소거된다. 이것은 메모리 카드(20)로 하여금 데이터 소거 처리를 보다 효율적으로 하도록 한다.
최종 플래그는 파일이 해당 블록에서 종료하는지를 나타내는 플래그로서, 구체적으로 "블록 계속(blocks continuing)" 및 "최종 블록(last block)"의 두 상태를 나타내는 플래그이다. "블록 계속" 상태는 해당 블록에 저장되어 있는 파일들이 종료되지 않고 다른 블록(들)으로 계속됨을 나타낸다. "최종 블록" 상태는 해당 블록에 저장되어 있는 파일이 이 블록에서 종료함을 나타낸다.
"참조" 플래그는 부가 관리 정보에 대한 참조를 나타내는 플래그로서, 구체적으로는 "참조 정보가 존재하지 않음(no reference information exists)" 및 "참조 정보 존재(reference information exists)"의 두 상태로 나타난다. "참조 정보가 존재하지 않음"의 상태는 블록의 최종 페이지의 관리 정보 저장 영역에 유효한 부가 관리 정보가 존재하지 않음을 나타낸다. "참조 정보 존재"의 상태는 블록의 최종 페이지의 관리 정보 저장 영역에 유효한 부가 관리 정보가 존재함을 나타낸다.
관리 플래그는 블록 속성들, 예를 들면, 읽기 전용 블록 또는 기록 가능 블록과 같은 속성을 나타낸다.
논리 어드레스는 해당 블록의 논리 어드레스를 나타낸다. 논리적 어드레스의 값은, 예를 들면, 데이터 재기록시 필요에 따라 갱신된다. 한편, 논리 어드레스들의 값들은 동일한 논리 어드레스의 값이 복수의 블록들에 의해 동시에 소유되지 않도록 설정된다.
연결 어드레스는 해당 연결 블록에 연결된 다른 블록들의 논리 어드레스를 나타낸다. 즉, 해당 블록에 연결된 파일이 다른 블록(들)에 연결되면, 연결 어드레스는 파일의 나머지 부분이 저장되는 논리 어드레스의 값을 나타낸다.
분산 관리 정보용 에러 정정 코드는 관리 플래그, 논리 어드레스, 연결 어드레스 및 예비 영역에 기록되어 있는 분산 관리 정보의 데이터용 에러 정정 코드이다.
데이터용 에러 정정 코드는 이 데이터용 에러 정정 코드가 기록되어 있는 페이지의 데이터 저장 영역에 저장된 데이터에 대한 에러 정정 코드이다.
상술된 분산 관리 정보의 가능/불가능 플래그, 블록 플래그, 최종 플래그 및 참조 플래그는 데이터 저장 영역의 상태를 관리하기 위한 정보, 즉, 영역 관리 정보를 나타낸다. 데이터와 무관하게 참조 플래그를 재기록할 필요가 발생하기 때문에, 상술된 분산 관리 정보용 에러 정정 코드에 의해 에러 정정이 행해지고, 에러를 정정하기 위해 정보 항목(information item)을 나타내는 코드와 동일한 코드의 소정량의 용장 데이터를 갖는 플래그(영역 관리 플래그)로서 관리 정보 저장 영역에 저장된다.
구체적으로, 영역 관리 정보의 이들 항목들은, 도 5에 도시된 바와 같이, 관리 정보 저장 영역의 오버라이트 영역에 용장 데이터를 갖는 영역 관리 플래그로서 저장된다.
즉, 가능/불가능 플래그는 블록이 사용 가능한 상태에 있는지 또는 사용 불가능한 상태에 있는지에 따라 각각 1 비트의 정보 "1"과 1 비트의 정보 "0"으로 표기된다. 관리 정보 저장 영역에서의 저장을 위해, 가능/불가능 플래그는 저장 전에 용장 비트들을 부가함으로써, 예를 들면 "11111111" 또는 "00000000"의 1 바이트의 정보로 변환된다.
블록 플래그는 블록이 "미사용", "선두에서 사용". "사용" 및 "미소거"인지에 따라 각각 "11", "10", "01" 및 "00"의 2 비트 정보로 나타내어진다. 관리 정보 저장 영역에서의 저장을 위해, 저장을 위해 용장 비트들을 부가함으로써, 예를 들면, "1111 1111", "1111 0000", "0000 1111", "0000 0000"의 1 바이트 정보로 변환된다.
최종 플래그는 "블록 계속" 또는 "최종 블록" 각각에 대해 "1" 또는 "0"의 1 비트 정보로 표현된다. 관리 정보 저장 영역에서의 저장을 위해, 최종 플래그는 저장 전에 용장 데이터를 부가함으로써, 예를 들면 "1111" 또는 "0000"의 4 비트 정보로 변환된다.
참조 플래그는 "참조 정보가 존재하지 않음" 또는 "참조 정보 존재"에 대해 각각 "1" 및 "0"의 1 비트 정보로 표현된다. 관리 정보 저장 영역에서의 저장을 위해, 참조 플래그는 저장 이전에, 예를 들어, "1111" 또는 "0000"의 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"이 기록되고, 영역 관리 정보의 "01" 및 관련된 영역 관리 플래그의 "0000 1111"이 기록되고, 영역 관리 정보의 "00" 및 관련된 영역 관리 플래그의 "0000 0000"이 기록되어 있다.
또한, 변환 테이블(27)에는, 최종 플래그와 관련하여, 영역 관리 정보의 "1" 및 관련된 영역 관리 플래그의 "0000 1111"이 기록되고, 영역 관리 정보의 "0" 및 관련된 영역 관리 플래그의 "0000 1111"이 기록되어 있다.
또한 변환 테이블(27)에는, 참조 플래그와 관련하여, 영역 관리 정보의 "1"과 관련된 영역 관리 플래그의 "1111"이 기록되고, 영역 관리 정보의 "0"과 관련된 영역 관리 플래그의 "0000"이 기록되어 있다.
영역 관리 정보가 변환 유닛(25)으로 전송될 때, 변환 제어기(29)는 공급된 영역관리 정보를 이 영역 관리 정보와 관련된 영역 관리 플래그로 변환하기 위해 변환 테이블(27)을 참조한다.
플래그 판별 회로(28)는 플래시 메모리(21)로부터 판독된 영역 관리 플래그의 패턴으로부터 원래의 영역 관리 정보를 판별한다. 즉, 플래그 판별 회로(28)는, 플래시 메모리(21)에 저장된 영역 관리 플래그에, 셀의 고장 등에 기인하는 에러가 발생하는 경우에도, 이 에러를 갖는 영역 관리 플래그의 패턴으로부터 원래의 영역 관리 정보를 판별하도록 구성된다.
구체적으로, 최종 플래그와 관련하여, 영역 관리 정보의 "1"이 영역 관리 플래그 "1111"로서 메모리(21)에 저장되어 있고, 셀의 고장에 기인하여 영역 관리 플래그에서 에러가 생성되어, "1111"이 "1110", "1101", "1011" 또는 "0111"로 변환된다고 가정하자. 이 경우, 플래그 판별 회로(28)는 영역 관리 플래그의 "0"과 "1"의 개수를 비교하여 큰 수, 즉 "1"을 갖는 정보가 원래의 영역 관리 정보라고 판별한다.
변환 제어기(29)는 원래의 영역 관리 정보인, 플래그 판별 회로(28)에 의해 판별된 정보를 레지스터(23)에 기록한다.
상기의 설명은 1 바이트의 영역 관리 플래그인 가능/불가능 플래그에 대한 1 비트의 영역 관리 정보를 플래시 메모리(21)에 저장하고, 1 바이트의 영역 관리 플래그인 블록 플래그에 대한 2 비트의 영역 관리 정보를 저장하고, 4 비트의 영역 관리 플래그인 최종 플래그에 대한 1 비트의 영역 관리 정보를 플래시 메모리(21)에 저장하고, 4 비트의 영역 관리 플래그인 참조 플래그에 대한 1 비트의 영역 관리 정보를 플래시 메모리(21)에 저장하는 경우에 관한 것이다. 용장 데이터를 부가하는 방법은 이러한 구성으로 제한되지 않는데, 그 이유는 원래의 영역 관리 정보의 가능한 판별 범위 내에서의 플래시 메모리(21) 내 전체 셀들에 대한 고장 셀들에 대한 수의 비율에 기초하여, 셀에 고장이 발생하는 경우에도, 임의로 선택될 수 있기 때문이다.
만약 셀 고장율이 낮다면, 3개의 셀들에 개별적으로 저장하기 위한 3 비트의 영역 관리 플래그로 변환하기 위해 용장 데이터의 두 비트가 1 비트의 영역 관리 정보에 부가될 수 있다. 이 경우에 있어서, 3개의 셀들 중 하나에서 고장이 발생하면, 원래의 영역 관리 정보는 플래그 판별 회로(28)에 의한 "0"과 "1"의 개수를 비교함으로써 판별될 수 있다. 그러나 영역 관리 정보에 부가되는 용장 데이터의 비트들의 수가 증가되면, 데이터 신뢰성은 그에 따라 증가된다.
본 발명의 메모리 카드(20)는 입력된 영역 관리 정보를 데이터가 부가된 관리 정보를 포함하는 영역 관리 플래그로 변환하여 그 결과 플래그로서 플래시 메모리(21)에 저장하기 위한 상술된 바와 같은 변환 유닛(25)을 구비하여, 플래시 메모리(21)의 셀의 고장 등에 기인하여 저장된 영역 관리 플래그에 에러가 발생한 경우, 에러 정정 코드들을 사용하지 않으면서 원래의 영역 관리 정보를 출력하기 위해 플래그의 에러가 정정될 수 있도록 한다.
또한, 메모리 카드(20)와 데이터 처리 장치(10)간의 데이터 교환을 위해, 부가된 용장 데이터를 갖지 않는 영역 관리 정보, 즉 원래의 영역 관리 정보가 전송되어, 용장 데이터를 부가로 인해 전송 효율이 낮아지지 않도록 한다. 또한, 용장 데이터를 부가하는 방법이 변경되면, 이러한 변경에 대처하여 메모리 카드들간의 상호 교환성을 보장하기 위해서 데이터 처리 장치(10)의 구조를 변경할 필요가 없다.
상술된 설명은 하나의 셀에 1 비트를 저장하기 위한 2-레벨(bi-level) 플래시 메모리에 관해 설명되었지만, 본 발명은 각 셀이 2 비트 이상을 저장하는 소위 다중-값(multi-valued) 플래시 메모리를 탑재한 메모리 카드에도 적용할 수 있다.
단일 셀에 2 비트의 정보를 저장하도록 적응된 플래시 메모리에 있어서, 단일 셀의 고장의 경우 2 비트의 에러가 생성된다. 따라서, 이러한 플래시 메모리 (21)에, 예를 들면, 1 비트의 영역 관리 정보를 저장하기 위해서, 영역 관리 정보는 3개의 셀들에 저장하기 위해 적어도 5 비트의 영역 관리 플래그로 변환되는 것이 바람직하다. 단일 셀에 2 비트의 정보를 저장하도록 적응된 플래시 메모리에 있어서, 1 비트의 영역 관리 정보가 3개의 셀들에 저장되는 적어도 5 비트의 영역 관리 플래그로 변환되면, 영역 관리 플래그를 유지하고 있는 셀들 중 하나가 잘못되어 2 비트의 에러를 생성하는 경우라도 영역 관리 플래그의 "1"과 "0"의 수를 비교하여 변환 유닛(25)의 플래그 판별 회로(28)에 의해 원래의 영역 관리 정보는 식별될 수 있다.
구체적으로, 셀에 2 비트의 정보를 저장하도록 적응된 플래시 메모리의 관리 정보 기억 영역에 영역 관리 정보를 저장할 때, 용장 데이터가 영역 관리 정보에 부가되고, 그로 인해 발생하는 데이터는, 도 8에 도시된 바와 같이, 영역 관리 플래그로서 저장된다. 한편, 변환 유닛(25)의 플래그 판별 회로(28)가 원래의 영역 관리 정보를 식별하기 위해서는, 1 비트의 영역 관리 정보가 5 비트의 영역 관리 플래그로 변환되면 충분하다. 그러나, 데이터는 짝수 비트로 변환될 때 더 쉽게 처리될 수 있기 때문에, 도 8에 도시된 실시예는 1 비트의 영역 관리 정보가 6 비트 또는 1 바이트의 영역 관리 플래그로 변환되어 저장되고, 2 비트의 영역 관리 정보는 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 비트의 영역 관리 정보 "01"은 12 비트의 영역 관리 플래그 "000000 111111"로 변환되어 6개의 셀들에 저장되고, 블록이 "미소거"임을 나타내는 블록 플래그의 2 비트의 영역 관리 플래그 "00"은 12 비트의 영역 관리 플래그 "000000 000000"으로 변환되어 6개의 셀들에 저장된다.
블록이 "블록 계속"임을 나타내는 최종 플래그의 1 비트 영역 관리 정보 "1"은 6 비트의 영역 관리 플래그 "111111"로 변환되어 3개의 셀들에 저장되고, 블록이 "최종 블록"임을 나타내는 최종 플래그의 1 비트 영역 관리 정보 "0"은 6 비트의 영역 관리 플래그 "000000"으로 변환되어 3개의 셀들에 저장된다.
"참조 정보가 존재하지 않음"을 나타내는 참조 플래그의 1 비트의 영역 관리 정보 "1"은 6 비트의 영역 관리 플래그 "111111"로 변환되어 3개의 셀들에 저장되고, "참조 정보 존재"를 나타내는 참조 플래그의 1 비트 영역 관리 정보 "0"은 6 비트의 영역 관리 플래그 "000000"으로 변환되어 3개의 셀들에 저장된다.
영역 관리 정보에 용장 데이터를 부가하고 그 결과 신호를 영역 관리 플래그로서 저장함으로써, 셀의 고장으로 인해 에러가 발생하여 "111111"이 "111100", "110011" 또는 "001111"로 바뀌더라도, 원래의 영역 관리 정보 "1"은 플래그 판별 회로(28)에 의해 최종 플래그의 "0"과 "1"의 개수를 비교함으로써 식별될 수 있을 것이다.
이러한 경우, 영역 관리 정보와 상술된 영역 관리 플래그는 서로 연관되어 변환 테이블(27)에 기록된다.
또한, 영역 관리 정보가 관리 정보 기록 영역에 기록하기 위해 영역 관리 플래그 변환되면, 영역 관리 플래그 전체에 대해 4 바이트가 사용된다. 따라서, 16 바이트의 관리 정보 기록 영역의 처음 4 바이트는 오버라이트 영역으로 설정된다.
블록이 "미사용"임을 나타내는 블록 플래그의 영역 관리 정보 "11"은 6 비트의 영역 관리 플래그 "111111"로 변환되어 3개의 셀들에 분산되어 저장되고, 블록이 "선두에서 사용"임을 나타내는 블록 플래그의 영역 관리 정보 "10"은 6 비트의 영역 관리 플래그 "101010"으로 변환되어 3개의 셀들에 분산되어 저장된다. 한편, 블록이 "사용"임을 나타내는 블록 플래그의 영역 관리 정보 "01"은 6 비트의 영역 관리 플래그 "010101"로 변환되어 3개의 셀들에 분산되어 저장되고, 블록이 "미소거"임을 나타내는 블록 플래그의 영역 관리 정보 "00"은 6 비트의 영역 관리 플래그 "000000"으로 변환되어 3개의 셀들에 분산되어 저장된다.
이 경우, 플래그 판별 회로(28)는 2 비트 단위로 코드 패턴을 인식하여 패턴을 원래의 영역 관리 정보로서 판별한다.
구체적으로, 블록이 "선두에서 사용"임을 나타내는 영역 관리 정보 "10"이 6 비트의 영역 관리 플래그 "101010"으로 변화되어 3개의 셀들에 분산되어 저장되고, 셀에 장애가 발생한 경우에는, 영역 관리 플래그 "101010"은 "001010", "011010", "111010", "100010", "100110", "101110", "101000", "101001" 또는 "101011"로 바뀌게 된다. 이 경우, 플래그 판별 회로(28)는 2 비트 단위로 영역 관리 플래그의 코드 패턴을 인식하고, "10" 패턴을 원래의 영역 관리 정보인 것으로 판별한다.
2 비트의 영역 관리 정보인 블록 플래그가 영역 관리 플래그로서 저장되면, 사용되는 비트들의 수가 감소될 수 있다.
이상의 설명에 있어서, 본 발명은 외부 장치인 메모리 카드(20) 및 이 메모리 카드(20)와 데이터 처리 장치(10)를 구비하는 시스템(1)에 적용되었다. 그러나, 본 발명은 내부 메모리를 구비하는 데이터 처리 장치에 적용될 수 있다. 이 경우, 내부 메모리에 영역 관리 정보를 저장하기 위해서, 영역 관리 정보를 영역 관리 정보와 이 영역 관리 정보에 부가된 용장 데이터를 포함하는 영역 관리 플래그로 변환되어 저장되고, 또한 내부 메모리로부터 영역 관리 플래그를 판독할 때 영역 관리 플래그를 원래의 영역 관리 정보로 변환하면 충분하다.
본 발명의 저장 장치, 데이터 처리 시스템 및 데이터 기록 및 판독 방법에 의해, 플래시영역 관리 정보가 전송 효율에 영향을 주지 않으면서 분산되어 저장될 수 있고 셀 구조의 변경에도 불구하고 기존의 저장 장치와의 호환성이 유지될 수 있다.
도 1은 데이터 처리 장치의 구조를 도시하는 블록도.
도 2는 메모리 카드의 구조를 도시하는 블록도.
도 3은 플래시 메모리의 저장 영역의 구조를 도시하는 구성도.
도 4는 분산 관리 정보를 나타내는 구성도.
도 5는 영역 관리 플래그의 일 예를 도시하는 구성도.
도 6은 부가 관리 정보를 도시하는 구성도.
도 7은 집합 관리 정보의 구조를 도시하는 구성도.
도 8은 영역 관리 플래그의 다른 실시예를 도시하는 구성도.
도 9는 영역 관리 플래그의 또 다른 실시예를 도시하는 구성도.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 데이터 처리 장치 11 : 데이터 처리 유닛
12 : 직렬 인터페이스 회로 13 : 레지스터
14, 26 : 제어기 20 : 메모리 카드
21 : 플래시메모리 22 : 직렬/병렬-병렬/직렬 인터페이스 회로
25 : 변환 유닛 27 : 변환 테이블
28 : 플래그 판별 회로 29 : 변환 제어기

Claims (12)

  1. 저장 장치에 있어서:
    데이터 및 상기 데이터를 저장하기 위한 영역의 상태를 관리하기 위한 영역관리 정보를 저장하기 위한 저장 수단;
    입력된 영역 관리 정보를 상기 영역 관리 정보와 이에 부가된 용장 데이터 (redundant data)에 대응하는 영역 관리 플래그로 변환하거나, 또는 상기 저장 수단으로부터 판독된 상기 영역 관리 플래그를 원래의 영역 관리 정보로 변환하기 위한 변환 수단; 및
    상기 변환 수단에 의해 변환된 상기 영역 관리 플래그를 상기 저장 수단에 기록하거나, 또는 상기 저장 수단으로부터 상기 영역 관리 플래그를 판독하고 상기 판독된 플래그를 상기 변환 수단에 공급하여 상기 변환 수단에 의해 변환된 상기 원래의 영역 관리 정보를 출력하기 위한 제어 수단을 포함하는, 저장 장치.
  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개의 셀들에 분산되어 기록되는, 데이터 기록 및 판독 방법.
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 KR19990030283A (ko) 1999-04-26
KR100527610B1 true 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
JP3233079B2 (ja) 1997-09-30 2001-11-26 ソニー株式会社 データ処理システム及びデータ処理方法
JP3788205B2 (ja) * 1997-09-30 2006-06-21 ソニー株式会社 記憶装置、データ処理システム、データの書き込み及び読み出し方法並びにデータ処理装置
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 ブラザー工業株式会社 情報管理システム、情報処理装置及び情報管理プログラム

Citations (4)

* 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
US4939636A (en) * 1986-03-07 1990-07-03 Hitachi, Ltd. Memory management unit
JPH02193236A (ja) * 1989-01-21 1990-07-30 Fuji Photo Film Co Ltd メモリカードの記憶管理方式
JPH0695979A (ja) * 1992-09-14 1994-04-08 Fuji Photo Film Co Ltd メモリカード管理方式

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2753254B2 (ja) * 1988-04-06 1998-05-18 株式会社日立製作所 パケツト交換システム
EP0443029B1 (en) * 1989-04-28 1995-09-20 Anritsu Corporation Signal generator and signal receiver based on synchronous multiplex transmission system
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

Patent Citations (4)

* 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
US4939636A (en) * 1986-03-07 1990-07-03 Hitachi, Ltd. Memory management unit
JPH02193236A (ja) * 1989-01-21 1990-07-30 Fuji Photo Film Co Ltd メモリカードの記憶管理方式
JPH0695979A (ja) * 1992-09-14 1994-04-08 Fuji Photo Film Co Ltd メモリカード管理方式

Also Published As

Publication number Publication date
JPH11110305A (ja) 1999-04-23
KR19990030283A (ko) 1999-04-26
US6219768B1 (en) 2001-04-17
JP3119214B2 (ja) 2000-12-18

Similar Documents

Publication Publication Date Title
KR100527610B1 (ko) 저장장치,데이터처리시스템및데이터기록및판독방법
KR100527609B1 (ko) 기억장치,데이터처리시스템및데이터기록및판독방법
KR100642529B1 (ko) 외부기억장치및데이터처리방법
US7890732B2 (en) Memory card and semiconductor device
US6144607A (en) Memory management apparatus and memory management method
CN102163133B (zh) 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置
EP0887732B1 (en) Defective management data handling method and recording medium
US8310896B2 (en) Memory system and method of writing into nonvolatile semiconductor memory
US20080028132A1 (en) Non-volatile storage device, data storage system, and data storage method
KR100742849B1 (ko) 데이타 기억 장치, 데이타 처리 시스템, 데이타 처리 방법 및 데이타 처리 장치
JP3620478B2 (ja) 記憶装置、この記憶装置を用いたデータ処理システム及びデータ読み出し方法
JP3788205B2 (ja) 記憶装置、データ処理システム、データの書き込み及び読み出し方法並びにデータ処理装置
JP4127307B2 (ja) データ記憶装置、データ処理システム、データ処理方法及びデータ処理装置
JPH11110142A (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