KR100642529B1 - 외부기억장치및데이터처리방법 - Google Patents

외부기억장치및데이터처리방법

Info

Publication number
KR100642529B1
KR100642529B1 KR1019980041922A KR19980041922A KR100642529B1 KR 100642529 B1 KR100642529 B1 KR 100642529B1 KR 1019980041922 A KR1019980041922 A KR 1019980041922A KR 19980041922 A KR19980041922 A KR 19980041922A KR 100642529 B1 KR100642529 B1 KR 100642529B1
Authority
KR
South Korea
Prior art keywords
data
boot
block
stored
blocks
Prior art date
Application number
KR1019980041922A
Other languages
English (en)
Other versions
KR19990030334A (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 KR19990030334A publication Critical patent/KR19990030334A/ko
Application granted granted Critical
Publication of KR100642529B1 publication Critical patent/KR100642529B1/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Abstract

본 발명에 따른 외부 기억 장치는, 미리 결정된 블록 단위들로 데이터를 소거하도록 배열된 플래시 메모리를 사용하고, 부트 데이터가 판독될 때 존재하는 에러가 방지되도록 하는 방식으로 구성된다. 부트 데이터는 복수의 다른 블록들에 기억된다. 더욱이, 부트 데이터가 기억된 블록들 각각에 기억된 부트 데이트가 새로운 것인지 오래된 것인지를 나타내는 식별 번호가 블록들 각각에 기억된다. 외부 기억 장치가 부트-업될 때, 식별 번호를 따라, 복수의 다른 블록들에 기억된 부트 데이터들 중에서 최신의 부트가 판독된다. 최신의 부트 데이터는 외부 기억 장치를 부트-업하기 위해 사용된다. 외부 기억 장치가 부트-업될 때, 식별 번호에 따라, 복수의 다른 블록들에 기억된 부트 데이터가 새로운 것인지 오래된 것인지가 판정 된다. 만일, 오래된 부트 데이터가 존재한다면, 오래된 부트 데이터는 최신의 부트 데이터로 재기록된다.

Description

외부 기억 장치 및 데이터 처리 방법{External storage apparatus and data processing method}
발명의 분야
본 발명은 미리 결정된 블록들의 단위들로 데이터를 소거하도록 배열된 기억 수단을 사용하는 외부 기억 장치와, 이러한 형태의 외부 기억 장치에 기억된 데이트를 처리하는 방법에 관한 것이다.
관련된 배경 기술
개인용 컴퓨터 또는 디지털 스틸 카메라 등의 데이터 처리 장치에 사용하는 형태의 외부 기억 장치로서, 이른바 플래시 메모리을 사용하는 형태의 외부 기억 장치는 공지되어 있다.
플래시 메모리를 사용하는 외부 기억 장치는 데이터 영역을 블록 단위들로 관리하기 위해 복수의 블록들로 플래시 메모리의 기억 영역이 분할되는 구조를 갖는다. 즉, 데이터의 소거는 블록 단위들로 실행된다. 만일, 복구 불가능한 에러가 기억 영역에 있으면, 에러가 있는 영역을 포함하는 블록의 사용은 금지된다. 상술한 형태의 블록은 이후에 사용금지 불록(use-inhibited block)으로 불린다.
상술한 형태의 외부 기억 장치는 외부 기억 장치에 대한 액세스가 요구되는 정보를 포함하는 부트 데이터가 미리 결정된 블록에 미리 기억되는 구조를 갖는다. 외부 기억 장치가 부트-업될 때, 부트 데이터는 초기에 판독된다. 그후, 액세스는 얻어진 부트 데이터에 따라 외부 기억 장치에 대해 이루어지고, 데이터가 기록/판독된다.
상술한 형태의 외부 기억 장치에서, 부트 데이터는 일반적으로 외부 기억 장치에 대한 액세스에 요구된 정보를 포함한다. 만일, 부트 데이터가 판독될 수 없다면, 외부 기억 장치에 대한 액세스는 이루어지지 않는다. 따라서, 부트 데이터는 만족스런 신뢰도를 가져야 한다.
종래, 부트 데이터가 기억된 블록(이후 "부트 블록")은 미리 결정된 위치에 서 형성된 블록이다. 일반적으로 사용되는 부트 블록이 사용 금지 블록으로 될 지라도, 부트 데이터의 카피는 부트 데이터가 판독되도록 다른 불록에 저장된다. 종래의 외부 기억 장치에서, 신뢰도는 부트 데이터의 복수의 카피들을 준비함으로써 또한 개선된다. 더욱이, 카피들은 다른 블록들에 기억된다. 그러나, 부트 데이터의 다수의 카피들이 준비되는 방법은 기억 용량을 효율적으로 사용하는 면에서 바람직하지 않은 방법이다.
종래, 부트 데이터가 갱신될 때, 부트 데이터의 모든 카피들이 최신의 부트 데이터로 갱신될지의 여부는 판정되지 않았다. 따라서, 만일, 부트 데이터의 카피가 어떤 동작에서 최신의 부트 데이터로 정확하게 갱신되지 않는다면, 즉, 최신의 정확한 부트 데이터는 판독될 수 없다. 상술한 경우에는, 외부 기억 장치에 대한 정확한 액세스가 이루어질 수 없다.
종래, 부트 데이터의 카피가 준비될지라도, 그 카피는 원래의 부트 데이터의 판독이 실패될 때만 사용된다. 따라서, 원래의 부트 데이터가 저장된 부트 블록의 일부의 비트들이 바람직하지 않게 반전되므로, 원래의 부트 데이터의 내용이 부정확하게 이루어진다면, 상기 부트 데이터가 판독될 수 있는 경우에도 상술한 부트 데이터가 사용되는 문제가 발생한다.
발명의 개요
상술한 내용을 통해, 본 발명의 목적은 기억 영역을 효율적으로 사용할 수 있고, 부트 데이터가 판독될 때 에러가 쉽게 생기지 않으며, 만족스런 신뢰도를 갖는 외부 기억 장치를 제공하는 것이다.
본 발명의 다른 목적은 상술한 외부 기억 장치가 실현될 수 있는 데이터 처리 방법을 제공하는 것이다.
본 발명에 따른 한 양상에 따라, 데이터가 미리 결정된 블록 단위로 소거되도록 배열되고, 외부 기억 장치가 부트-업될 때 최초로 판독되는 부트 데이터를 기억하는 블록을 갖는 외부 기억 장치가 제공된다. 부트 데이터는 부트 데이터가 기억된 블록들 각각에 기억된다. 더욱이, 부트 데이터가 기억된 각각의 블록에 기억된 부트 데이터가 새로운 것인지 오래된 것인지를 나타내는 식별 번호가 블록들 각각에 기억된다.
프로그램에 따른 외부 기억 장치는, 식별 번호에 따라, 복수의 다른 블록에 기억된 부트 데이터 중에서 최신의 부트 데이터가 판독된다. 그후, 최신의 부트 데이터는 외부 기억 장치가 부트-업되도록 사용된다.
본 발명에 따른 외부 기억 장치는, 외부 기억 장치가 부트-업될 때, 식별 번호에 따라, 복수의 다른 블록들에 기억된 각각의 부트 데이터가 새로운 것인지 오래된 것인지가 판정되도록 배열된다. 오래된 부트 데이터가 존재하는 경우, 오래된 부트 데이터는 최신 부트 데이터로 재기록된다.
본 발명의 다른 양상에 따라, 미리 결정된 블록들의 단위들로 데이터를 소거하도록 배열된 외부 기억 장치가 부트-업될 때, 최초로 판독되는 부트 데이터가 외부 기억 장치에 기억되는 데이터 처리 방법이 제공되고, 이 데이터 처리 방법은 복수의 다른 블록들 각각에 부트 데이터를 기억하는 단계와, 부트 데이터가 기억된 블록들 각각에서 블록들에 기억된 부트 데이터가 새로운 것인지 오래된 것인지를 나타내는 식별 번호를 기억하는 단계를 포함한다.
본 발명에 따른 데이터 처리 방법에 있어서, 상기 외부 기억 장치가 부트-업될 때, 식별 번호에 따라, 복수의 다른 블록들에 기억된 부트 데이터들 중에서 최신의 부트 데이터가 판독되고, 외부 기억 장치는 최신의 부트 데이터를 사용하여 부트-업된다.
본 발명에 따른 데이터 처리 방법에 있어서, 외부 기억 장치가 부트-업될 때, 식별 번호에 따라, 복수의 다른 블록들에 기억된 부트 데이터가 새로운 것인지 오래된 것인지를 판정하며, 오래된 부트 데이터가 존재할 때 오래된 부트 데이터가 최신의 부트 데이터로 재기록된다.
본 발명의 다른 목적, 특징, 장점은 도면을 참조하여 양호한 실시예의 상세한 설명으로부터 명백해질 것이다.
양호한 실시예의 설명
본 발명의 실시예는 도면을 참조하여 설명될 것이다.
도 1은 본 발명이 적용된 시스템의 일 예의 전체 구성을 도시한 도면이다. 상기 실시예에 따른 시스템은 호스트 시스템인 데이터 처리 장치(1)와, 직렬 인터페이스를 통한 데이터 처리 장치(1)에 접속된 외부 기억 장치인 메모리 카드(2)를 포함한다.
본 시스템이 데이터 처리 장치(1)와 메모리 카드(2)간에 직렬 인터페이스를 통해 데이터가 통신되는 구조를 갖는 것으로 설명될지라도, 본 발명은 데이터 통신이 별렬 인터페이스를 통해 실행되는 우형의 시스템에 적용될 수도 있다.
데이터 처리 장치(1)는 중앙 처리 장치(CPU)(3), 내부 메모리(4), 보조 기억 장치(5), 및 직렬 인터페이스 회로(6)를 포함한다. 상술한 소자들은 버스(7)를 통해 상호 접속된다. 데이터 처리 장치(1)는 예를 들어, 내부 메모리(4)를 작업 영역으로서 사용함으로써 CPU(3)가 프로그램을 실행하도록, 보조 기억 장치(5)내에 기억된 프로그램을 판독한다. 이때, 데이터는, 필요에 따라, 직렬 인터페이스 회로(6)를 통해 메모리 카드(2)에 통신된다.
본 발명에 따른 시스템에 사용하는 데이터 처리 장치는, 데이터 처리 장치가 외부 기억 장치에 데이터를 통신할 수 있는 경우에만 특히 한정되지 않는다. 본 발명은, 개인용 컴퓨터, 디지털 스틸 카메라, 및 디지털 비디오 카메라 등의 여러 데이터 처리 장치 중 한 장치에 적용될 수 도 있다.
데이터 처리 장치(1) 및 메모리 카드(2)는 직렬 인터페이스를 통해 상호 접속된다. 구체적으로, 이러한 접속은 3개의 데이터 라인들(SLCK, State, DIO)을 통해 설정된다. 즉, 데이터 처리 장치(1) 및 메모리 카드(2)는 적어도, 데이터가 전송될 때 클록 신호를 전송하는 제 1 데이터 라인(SLCK), 데이터 전송이 실행될 때 요구된 상태 신호를 전송하는 데이터 라인(State), 및 메모리 카드(2)에 기록 및 판독되어야 하는 데이터를 직렬 전송하는 제 3 데이터 라인(DIO)을 통해 상호 접속된다. 따라서, 데이터는 데이터 처리 장치(1)와 메모리 카드(2)간에서 상술한 데이터라인을 통해 통신하게 된다.
데이터는 일반적으로 데이터 처리 장치(1)와 메모리 카드(2)간에서, 헤더 및 실제 데이터로 각각 구성된 파일 단위들로 통신하게 된다. 예를 들어, 파일을 액세스하게 하는 정보, 데이터 처리 장치(1)에 으한 실행된 프로그램에 의해 요구된 정보 등은 파일의 헤더에 기억된다.
도 2에 도시된 것처럼, 메모리 카드(2)는 소위, 제어 IC로 구성되는 제어기(11)와, 이 제어기에 의해 제어되는 플래시 메모리(12)를 포함한다.
제어기(11)는 직렬/병렬 변환 및 병렬/직렬 변환을 실행하는 직렬/병렬 및 병렬/직렬 인터페이스 시퀀서(13)(이후, S/P & P/S 인터페이스 시퀀서(13))와, 플래시 메모리(12)에 대한 액세스가 이루어질 수 있는 인터페이스로서 기능을 하는 플래시 메모리 인터페이스 시퀀서(14)와, S/P & P/S 인터페이스 시퀀서(13)와 플래시 메모리 인터페이스 시퀀서(14)간에 통신되는 데이트를 일시적으로 기억하는 페이지 버퍼(15)와, 에러 정정 처리를 실행하는 에러 정정 회로(16)와, 플래시 메모리(12)에 대한 액세스를 제어하는 제어 명령의 발생을 실행하는 명령 발생기(17)와, 메모리 카드(2)의 버전 정보, 여러 속성 정보 항목 등이 기억된 ROM(18)과, 상술한 회로들 각각의 동작에 요구된 클록 신호를 공급하는 발진기(19)를 포함한다.
S/P & P/S 인터페이스 시퀀서(13)는 상기 3개의 데이터 라인들(SCLK, State 및 DIO)을 통해 데이터 처리 장치(1)의 직렬 인터페이스 회로(6)에 접속된다. 따라서, S/P & P/S 인터페이스 시퀀서(13)는 상기 데이터 라인들(SCLK, State, DIO)을 통해 데이터를 데이터 처리 장치(1)에 통신한다. 즉, S/P & P/S 인터페이스 시퀀서(13)는 페이지 버퍼(15)로부터 전송된 병렬 데이터를 직렬 데이터로 변환하여 데이터 처리 장치(1)의 직렬 인터페이스 회로(6)에 직렬 데이터를 전송한다. S/P & P/S 인터페이스 시퀀서(13)는 데이터 처리 장치(1)의 직렬 인터페이스 회로(6)로부터 전송된 직렬 데이터를 병렬 데이터로 변환하여 병렬 데이터를 페이지 버퍼(15)에 전송한다.
S/P & P/S 인터페이스 시퀀서(13)와 데이터 처리 장치(1)간의 데이터 직렬 통신은, 제 1 데이터 라인(SCLK)을 통해 데이터 처리 장치(1)로부터 공급된 클록 신호에 응답하여 동기화가 유지되는 동안, 제 3 데이터 라인 (DI0)을 통해 실행된다. 제 3 데이터 라인(DI0)을 통해 통신된 직렬 데이터의 유형은 제 2 데이터 라인 (State)을 통해 전송되는 상태 신호에 따라 결정된다. 직렬 데이터는 예를 들어, 플래시 메모리(12)에 기록되는 데이터와, 플래시 메모리(12)로부터 판독되는 데이터와, 메모리 카드(2)등의 동작을 제어하는 제어 데이터로 분류된다. 상태 신호는 메모리 카드(2)의 상태를 나타내는데 또한 사용된다. 상태 신호에 응답하여 나타낼 수 있는 메모리 카드(2)의 상태들은, 데이터 처리 장치(1)로부터 메모리 카드(2)에 입력된 데이터가 어떤 처리동안 허용되지 않는 상태와, 메모리 카드(2)내의 처리가 완료된 후에 데이터 처리 장치(1)로부터 입력된 데이터가 대기되는 상태를 포함한다.
데이터 처리 장치(1)로부터 전송된 데이터가 메모리 카드(2)의 동작을 제어하는 제어 데이터일 때, S/P & P/S 인터페이스 시퀀서(13)는 제어 데이터를 명령 발생기(17)에 공급한다.
S/P & P/S 인터페이스 시퀀서(13)를 통해 데이터 처리 장치(1)로부터 공급된 제어 데이터에 따라, 명령 발생기(17)는, 제어 명령을 플래시 메모리 인터페이스 시퀀서(14)에 전송하도록, 플래시 메모리(12)에 대한 액세스를 제어하는 제어 명령을 발생한다. 후술된 바와 같이, 플래시 메모리 인터페이스 시퀀서(14)는 제어 명령에 따라 플래시 메모리(12)에 데이터를 기록하고, 플래시 메모리(12)로부터 데이터를 판독한다.
에러 소거 방지 스위치(20)는 명령 발생기(17)에 접속된다. 에러 소거 방지 스위치(20)가 스위치 온될 때, 명령 발생기(17)는, 플래시 메모리(12)에 기록된 데이터의 소거를 명령하는 제어 데이터가 데이터 처리 장치(1)로부터 전송될지라도, 플래시 메모리(12)에 기록된 데이터를 소거하는 제어 명령을 발생하지 않는다. 즉, 메모리 카드(2)는, 플래시 메모리(12)에 기억된 데이터가 에러 소거 방지 스위치(20)에 의해 소거될 수 없는 상태 또는 플래시 메모리(12)내에 기억된 데이터가 소거될 수 있는 상태 중의 어느 한 상태로 될 수 있다.
S/P & P/S 인터페이스 시퀀서(13)와 플래시 메모리 인터페이스 시퀀서(14)간에 위치된 페이지 버퍼(15)는, S/P & P/S 인터페이스 시퀀서(13)와 플래시 메모리 인터페이스 시퀀서(14)간에 통신된 데이터를 일시적으로 기억하기 위해 버퍼 메모리이다.
S/P & P/S 인터페이스 시퀀서(13)로부터 플래시 메모리 인터페이스 시퀀서(14)에 전송된 데이터는 S/P & P/S 인터페이스 시퀀서(13)로부터 페이지 버퍼(15)에 초기 전송되어, 페이지 버퍼(15)내에 일시적으로 기억된다. 페이지 버퍼(15)내에 기억된 데이터에는 에러 정정 회로(16)에 의해 에러 정정 코드가 제공된다. 에러 정정 코드가 제공된 데이터는, 미리 결정된 페이지 단위(예를 들어, 1 페이지 = 512-바이트)로, 페이지 버퍼(15)로부터 플래시 메모리 인터페이스 시퀀서(14)에 전송된다.
이에 대한 대안으로서, 플래시 메모리 인터페이스 시퀀서(14)로부터 S/P & P/S 인터페이스 시퀀서(13)에 전송된 데이터는 플래시 메모리 인터페이스 시퀀서(14)로부터 페이지 버퍼(15)에 초기 전송되어, 페이지 버퍼(15)에 일시적으로 기억된다. 이때, 페이지 버퍼(15)에 기억된 데이터는 에러 정정 회로(16)에서 에러 정정 처리된다. 에러 정정 처리된 데이터는, 미리 결정된 페이지 단위로, 페이지 버퍼(15)로부터 S/P & P/S 인터페이스 시퀀서(13)에 전송된다.
명령 발생기(17)로부터 공급된 제어 명령에 따라, 플래시 메모리 인터페이스 시퀀서(14)는 플래시 메모리(12)에 데이터 기록, 플래시 메모리(12)로부터의 데이터 판독 등을 실행한다. 즉, 플래시 메모리 인터페이스 시퀀서(14)는 명령 발생기(17)로부터 공급된 제어 명령에 따라 플래시 메모리(12)로부터 데이터를 판독하여, 상기 설명한 것 처럼, 페이지 버퍼(15)를 통해 상기 데이터를 S/P & P/S 인터페이스 시퀀서(13)에 전송한다. 이에 대한 대안으로서, 명령 발생기(17)는 명령 발생기(17)로부터 공급된 제어 명령에 따라 페이지 버퍼(15)를 통해 S/P & P/S 인터페이스 시퀀서(13)로부터 공급된 데이터를 수신하여, 플래시 메모리(12)에 상기 데이터를 기록한다.
메모리 카드(2)의 버전 정보(version information), 여러 속성 정보 아이템들 등이 ROM(18)에 기억된다. ROM(18)에 기억된 정보는, 필요하다면, 이용되기 위해 S/P & P/S 인터페이스 시퀀서(13)를 통해 명령 발생기(17)에 의해 판독된다. 즉, 명령 발생기(17)는, 필요에 따라, ROM(18)에 기억된 정보를 판독한다. 정보에 따라, 명령 발생기(17)는 메모리 카드(2)에 관련하여 여러 설정들을 수행한다.
플래시 메모리(12)에 기록되어야 하는 직렬 데이터 형태로 데이터가, 데이터 처리 장치(1)로부터 3개의 데이터 라인들 (SCLK, State, DI0)을 통해 메모리 카드(2)에 공급될 때, S/P & P/S 인터페이스 시퀀서(13)는 초기에 직렬 데이터를 병렬 데이터로 변환하여, 이 병렬 데이터를 페이지 버퍼(15)에 전송한다. 페이지 버퍼(15)는 S/P & P/S 인터페이스 시퀀서(13)로부터 전송된 데이터를 일시적으로 기억한다. 이때, 페이지 버퍼(15)에 기억된 데이터는 에러 정정 회로(16)에 의해 에러 정정 코드가 제공된다. 에러 정정 코드가 제공된 데이터는, 미리 결정된 페이지 단위로, 플래시 메모리 인터페이스 시퀀서(14)에 전송된다. 명령 발생기(17)로부터 공급된 제어 명령에 따라, 플래시 메모리 인터페이스 시퀀서(14)는 페이지 버퍼(15)로부터 공급된 데이터를 플래시 메모리(12)에 기록한다. 상기 언급된 처리의 결과, 데이터 처리 장치(1)로부터 전송된 데이터는 플래시 메모리(12)에 기록된다.
메모리 카드(2)로부터 데이터가 판독될 때, 데이터는 명령 발생기(17)로부터 공급된 제어 명령에 따라 플래시 메모리 인터페이스 시퀀서(14)에 의해 플래시 메모리(12)로부터 초기에 판독된다. 플래시 메모리 인터페이스 시퀀서(14)는 플래시 메모리(12)로부터 판독되는 데이터를 페이지 버퍼(15)에 전송한다. 페이지 버퍼(15)는 플래시 메모리 인터페이스 시퀀서(14)로부터 공급된 데이터를 일시적으로 기억한다. 이때, 페이지 버퍼(15)에 기억된 데이터는 에러 정정 회로(16)에서 에러 정정 처리된다. 에러 정정 처리된 데이터는, 미리 결정된 페이지 단위로, S/P & P/S 인터페이스 시퀀서(13)에 전송된다. S/P & P/S 인터페이스 시퀀서(13)는 페이지 버퍼(15)로부터 공급된 데이터를 직렬 데이터로 변환하고, 그후, 직렬 데이터를 3개의 데이터 라인 (SCLK, State, DI0)을 통해 데이터 처리 장치(1)에 전송한다. 상기 언급된 처리의 결과로서, 플래시 메모리(12)로부터 판독된 데이터는 데이터 처리 장치(1)에 전송된다.
데이터가 기록 또는 판독될 때, 데이터의 통신을 제어하는 제어 데이터는 데이터 처리 장치(1)로부터 메모리 카드(2)의 S/P & P/S 인터페이스 시퀀서(13)에 전송되며, 또한, 플래시 메모리(12)에 기록되어야 하는 데이터 또는 플래시 메모리(12)로부터 판독되어야 하는 데이터는 통신된다. 상기 제어 데이터는 S/P & P/S 인터페이스 시퀀서(13)로부터 명령 발생기(17)에 전송된다. S/P & P/S 인터페이스 시퀀서(13)로부터 전송된 제어 데이터에 따라, 명령 발생기(17)는 플래시 메모리(12)에 대한 액세스를 제어하는 제어 명령을 발생한다. 제어 명령은 플래시 메모리 인터페이스 시퀀서(14)에 공급된다. 제어 명령에 따라, 플래시 메모리 인터페이스 시퀀서(14)는 데이터를 기록 또는 판독하기 위해 플래시 메모리(12)에 대해 액세스한다.
3개의 데이터 라인들 (SCLK, State, DI0)에 부가하여, 메모리 카드(2)에는, 전원 라인 및 통상의 상태에서 사용되지 않는 리저브 라인(reserve line)이 제공될 수 있다. 예를 들어, 도 2 및 도 3은, 상술된 3개의 데이터 라인들 (SCLK, State, DI0)에 부가하여, 4개의 전원 라인들(VSS1, VSS2, VCC 및 INT), 및 3개의 리저브 라인들 (RSV1, RSV2, 및 RSV3)이 메모리 카드(2)에 제공되는 구조를 도시한다.
메모리 카드(2)의 개략적인 형태는 도 3을 참조하여 설명될 것이다.
메모리 카드(2)는, 합성 수지 등으로 제조되고, 평면 형태의 장방형 및 작은 두께를 갖는 카드형 케이스(21); 케이스(21)내에 내장된 제어기(11) 및 플래시 메모리(12)로 구성된다. 메모리 카드(2)는 메모리 카드(2)를 장착하는 장착 메커니즘을 갖는 데이터 처리 장치(1)내에 장착되어 사용된다.
경사진 절단부(diagonal cut portion)(22)는 메모리 카드(2)의 케이스(21)의 선단부(front end)에 형성된다. 더욱이, 10개의 리세스들(23)은 절단부(22)내에 형성된다. 리세스들(23)은, 메모리 카드(2)가 데이터 처리 장치(1)의 장착 장치내에 장착될 때, 데이터 처리 장치의 접속 단자들에 접속되도록 배열된 외부 접속 단자들을 갖는다. 즉, 메모리 카드(2)는 외부 접속 단자들로서 기능을 하는 10개의 단자들(24a, 24b, 24c, 24d, 24e, 24f, 24g, 24h, 24i 및 24j)을 갖는다. 상기 외부 접속 단자들은 3개의 데이터 라인 단자들(24b, 24d, 24h), 전원용 4개의 전원 단자들(24a, 24f, 24i 및 24j), 및 3개의 리저브 단자들(24c, 24e 및 24g)로 구성된다.
에러 소거 방지 부재(25)는 메모리 카드(2)의 케이스(21)의 상부 표면에 인접된다. 에러 소거 방지 부재(25)는 케이스(21)내에 장착된 에러 소거 방지 스위치(20)에 연동(engage)된다. 에러 서거 방지 부재(25)가 미끄러질 때, 에러 소거 방지 스위치(20)는 스위칭 온/오프될 수 있다.
메모리 카드(2)에는 원호형의 제 1 고정용 절단부(26)가 제공되고 에러 소거 방지 스위치(20)의 어느 한 면상에 제공되어, 메모리 카드(2)가 데이터 처리 장치(1)의 장착 장치에 장착된 후, 데이터 처리 장치(1)로부터 메모리 카드(2)의 분리를 방지한다. 더욱이, 장방형의 제 2 고정용 절단부(27)에는 에러 소거 방지 스위치(20)의 다른 면내에 형성된다. 메모리 카드(2)가 데이터 처리 장치(1)의 장착 장치에 장착될 때, 고정용 절단부(26 및 27)는 메모리 카드(2)의 분리를 방지하기 위해 데이터 처리 장치(1)의 장착 장치에 사용된다.
도 3에 도시된 메모리 카드(2)는 본 발명에 적용된 외부 기억 장치의 예이다. 즉, 본 발명은 외부 기억 장치의 형태에 으존하지 않는다. 본 발명은 외부 기억 장치의 형태에 상관없이 외부 기억 장치들 중 임의의 한 장치에 적용될 수도 있다.
메모리 카드(2)에 장착된 플래시 메모리(12)의 기억 영역의 구조를 이제 설명한다. 이제 설명될 기억 영역의 구조는 본 발명이 적용된 외부 기억 장치의 기억 영역의 구조의 예이다.
본 발명은,기억 영역이 데이터 소거를 위한 단위들인 복수의 블록들로 분할되고, 부트 데이터가 기억된 부트 블록이 제공되는 구조를 갖는 여러 외부 기억 장치에 광범위하게 적용될 수 있다. 이러한 기억 영역의 구조는 다음의 구조에 한정되는 것은 아니다.
도 4의 (a)에 있어서, 플래시 메모리(12)의 기억 영역은 데이터를 소거하기 위한 단위들인 복수의 블록으로 분할된다. 메모리 카드(2)가 부트-업될 때 데이터 처리 장치(1)에 의해 초기에 판독되도록 배열된 데이터인 부트 데이터를 기억하기 위한 부트 블록; 및 임의의 데이터가 기록된 데이터 블록으로 구성된다. 각각의 블록은 특정의 물리적 어드레스를 갖는다. 블록들은 파일을 관리하기 위한 최소 단위 및 데이터 소거를 위한 단위들이다. 즉, 파일은 하나 이상의 블록들에 기억된다. 따라서, 하나의 블록은 복수의 파일에 의해 사용될 수 없다.
각각의 부트 블록은 상태 "1" 및 상태 "0"인 두 상태 중 어느 한 상태가 될 수 있는 복수의 비트들로 구성된다. 초기 상태에서는, 모든 비트들이 "1"의 상태로 되어 있다. 따라서, 한비트 단위의 변경은 단지 "1"로부터 "0"으로 허용된다. 즉, "1" 및 "0"으로 구성된 데이터가 기록될 때, "1"에 대응하는 비트들이 유지되고, "0"에 대응하는 비트들은 "1"로부터 "0"으로 변경된다.
기록된 데이터가 소거될 때, 각각의 블록 단위는 일괄적으로 초기화 처리를 행하여, 상술한 블록의 모든 비트들을 "1"로 된다. 결과적으로, 블록들에 기록된 데이터는 일괄적으로 소거된다. 따라서, 데이터는 상술한 블록에 다시 기록될 수 있다.
본 발명은, 각각의 비트가 단지 2개 상태들로 될 수 있는 플래시 메모리들(소위, 2진-형태의 플래시 메모리들)뿐만 아니라, 각각의 비트가 3개 이상의 상태들 중 임의의 한 상태로 한 상태로 될 수 있는 형태의 플래시 메모리들(소위, 다중-값 플래시 메모리들)에 적용될 수음을 주목한다.
플래시 메모리(12)의 각각의 블록은, 도 4의 (b)에 도시된 바와 같이, 데이터를 기록 또는 판독하는 단위들인 복수의 페이지들로 구성된다. 즉, 데이터가 플래시 메모리(12)에 기록될 때, 페이지 버퍼(15)로부터 페이지 단위로 전송되는 데이터는, 플래시 메모리 인터페이스 시퀀서(14)에 의해 플래시 메모리(12)에 페이지 단위로 기록된다. 데이터가 플래시 메모리(12)로부터 판독될 때, 플래시 메모리 인터페이스 시퀀서(14)는 페이지 버퍼(15)에 데이터를 전송하도록 페이지 단위들로 데이터를 판독한다.
각각의 페이지는 데이터 영역 및 용장 영역(redundant area을) 갖는다. 데이터 영역은 임의의 데이터가 기록된 영역이다. 용장 데이터는 데이터 영역에 기록된 데이터를 관리하는데 필요한 정보가 기억된 영역이다.
구체적으로, 소위 분산 관리 정보(distributed administration information)는, 도 4의 (c)에 도시된 것처럼, 블록을 관리하는데 필요한 정보로서 블록의 선두 페이지상의 용장 영역에 기억된다. 또한, 분산 관리 정보는, 선두 페이지(leading end page)의 용장 영역에 기억된 것이, 여분의 분산 관리 정보와 같은, 블록의 제 2페이지로부터 페이지들의 용장 영역에 기억된 것과 동일하다. 소위 부가적인 분산 관리 정보는, 분산 관리 정보를 대신하여, 단지 분산 관리 정보에 의해 관리될 수 없는 부가적인 정보로서 최종 페이지의 용장 영역에 기억된다.
상술한 것처럼, 분산 관리 정보는 상술한 플래시 메모리(12)내의 각각의 블록의 용장 영역내에 기억된다. 분산 관리 정보는 분산 관리 정보가 기억된 블록을 관리하는 정보이다. 분산 관리 정보에 따라, 예를 들어, 상술한 블록이 파일의 선두인 블록인지를 나타내는 정보와, 파일이 복수의 블록들로 구성될 때 블록들의 연결을 나타내는 정보가 얻어질 수 있다. 분산 관리 정보는 후술될 것이다.
메모리 카드(2)내의 블록의 분산 관리 정보는, 플래시 메모리의 전체 구조를 관리하는 정보로서 기능을 하는 집합 관리 정보를 발생하도록 수집된다. 그후, 집합 관리 정보는 파일로서 플래시 메모리(12)내에 기억된다.
보통, 집합 관리 정보는 각각의 블록에 대해 액세스하는데 요구된 정보를 얻는데 사용된다. 즉, 데이터가 데이터 처리 장치(1)와 메모리 카드(2)간에서 통신할 때, 데이터 처리 장치(1)는 내부 메모리(4)내에서 동일하게 발생하도록 메모리 카드(2)로부터 집합 관리 정보를 판독한다. 집합 관리 정보에 따라, 데이터 처리 장치(1)는 메모리 카드(2)에 대해 액세스한다. 결과적으로, 각각의 블록내에 기억된 분산 관리 정보에 대해 액세스하는 필요성이 생략될 수 있다. 따라서, 보다 고속의 데이터 액세스가 허가된다.
분산 관리 정보, 부가적인 분산 관리 정보, 및 집합 관리 정보가 후술될 것이다.
분산 관리 정보는 분산 관리 정보가 기억된 블록을 관리하는 정보이며, 분산 관리 정보는 16-바이트 용장 영역에 기록된다. 구체적으로, 분산 관리 정보는, 도 5에 도시된 것처럼, 1-바이트의 허가/금지 플래그, 1-바이트 블록 플래그. 4-비트 최종 플래그, 4-비트 참조 플래그, 1-바이트 관리 플래그, 2-바이트 논리 어드레스, 2-바이트 연결 플래그, 3-바이트 리저브 영역, 2-바이트 분산 관리 정보 에러 정정 코드, 및 3-바이트 데이터 에러 정정 코드로 구성된다.
허가/금지 플래그는 블록이 사용 허가 상태 또는 사용 금지 상태인지를 나타내는 플래그이다. 구체적으로, 허가/금지 플래그는 "사용 허가" 및 "사용 금지"인 두 상태중의 한 상태를 나타낼 수 있다. "사용 허가"는 블록이 사용될 수 있는 상태를 나타내고, 반면에, "사용 금지"는 블록이 사용될 수 없는 상태를 나타낸다. 복구될 수 없는 에러가 블록내에서 발생된다면, 허가/금지 플래그는 블록의 사용이 금지되도록 "사용 금지"되도록 설정된다.
블록 플래그는 블록의 상태를 나타내는 플래그이다. 구체적으로, 블록 플래그는 "미사용", "선두 사용(use at leading end)", "사용", "미소거(non-erase)"의 4개의 상태중의 임의의 한 상태를 나타낸다. "미사용"은 블록이 미사용 상태이거나 데이터가 블록으로부터 소거된 상태를 나타낸다. 이와 같이, "미사용"의 상태에서의 블록은 데이터가 즉시 기록될 수 있는 초기 상태(모든 비트들은 "1")이다. "선두 사용"은 블록이 파일의 선두에서 사용되는 상태를 나타낸다. 내부에 기억된 부트 데이터를 갖는 부트 블록에서, 블록 플래그는 "선두 사용"상태이다. "사용"은 선두를 제외한 부분에서 블록이 사용되는 상태를 나타낸다. 블록 플래그가 "사용" 상태일 때, 블록은 다른 블록에 연결된다. "미소거"는 블록에 기록된 데이터가 불필요하게 되는 상태를 나타낸다. 예를 들어, 데이터가 소거될 때, 블록 플래그는 초기에 "미소거" 상태가 된다. 만일, 긴 처리 시간이 허용된다면, "미소거" 상태에 있는 블록 플래그를 갖는 블록들이 소거된다. 결과적으로, 소거 처리는 효율적으로 실행된다.
최종 플래그는 파일이 종료되었는지를 나타내는 플래그이다. 구체적으로, 최종 플래그는 "블록 연속(block continued)" 또는 "블록 최종(block ended)"을 나타낸다. "블록 연속"은 블록이 다음 블록에 연속인 상태를 나타낸다. 즉, "블록 연속"은 블록에 기억된 파일이 다음의 부분을 갖고 이로써 파일이 다른 블록에 이어지는 것을 나타낸다. "블록 종료"는 블록이 최종 블록임을 나타낸다. 즉, "블록 종료"는 블록내에 기억된 파일이 그 블록에서 종료됨을 나타낸다.
참조 플래그는 부가적인 관리 정보의 참조를 지정하기 위한 플래그이다. 구체적으로, 참조 플래그는 "참조 정보 없음" 및 "참조 정보 있음"의 두 상태들 중 한 상태를 나타낸다. "참조 정보 없음"은 블록의 최종 페이지상의 용장 영역내에 유효 정보가 존재하지 않음을 나타낸다. "참조 정보 있음"은 블록의 최종 페이지의 용장 영역에, 유효한 부가적인 관리 정보가 존재함을 나타낸다.
관리 플래그는 블록의 속성을 나타내는 플래그이다. 예를 들어, 관리 플래그는 블록이 판독 전용 블록 또는 기록을 허가하는 블록인지를 나타낸다. 관리 플래그는 또한 부트 블록인지 데이터 블록인지를 나타낸다.
논리 어드레스는 문자적 의미로 블록의 논리 어드레스를 나타낸다. 논리 어드레스의 값은 데이터가 재기록될 때 필수적으로 갱신된다. 논리 어드레스의 값은 복수의 블록들이 논리 어드레스의 값을 동시에 갖지 않도록 하는 방식으로 설정된다.
연결 어드레스는 블록에 연결된 블록의 논리 어드레스이다. 즉, 블록에 기억된 파일은 다음의 부분을 갖는다. 만일, 파일이 다른 블록에 연결된다면, 파일의 다음 부분이 기억된 다음의 블록의 논리 어드레스의 값은 연결 어드레스에 설정된다.
분산 관리 정보 에러 정정 코드는 분산 관리 정보 중에, 관리 플래그, 논리 어드레스, 연결 어드레스, 및 리저브 영역에 기록된 데이터를 정정하는 에러 정정 코드이다. 각각의 허가/금지 플래그, 블록 플래그, 최종 플래그, 참조 플래그는 분산 관리 정보 에러 정정 코드에 의해 정정되지 않음을 주목한다. 따라서, 허가/금지 플래그, 블록 플래그, 최종 플래그, 및 참조 플래그는 분산 관리 정보 에러 정정 코드의 필요성 없이 재기록될 수 있다.
데이터 에러 정정 코드는 데이터 에러 정정 코드가 기억된 페이지의 데이터 영역에 기록된 데이터를 정정하는 에러 정정 코드이다.
분산 관리 정보 에러 정정 코드 및 데이터 에러 정정 코드는 메모리 카드(2)내에 포함된 에러 정정 회로(16)에 의해 사용된다. 따라서, 예러 정정 코드를 사용한 에러 정정은 데이터 처리 장치(1)에 의존하지 않고, 메모리 카드(2)에 의존하는 임의의 방법이 사용될 수도 있다.
부가적인 관리 정보는 블록의 최종 플래그에 16-바이트 용장 영역내에 기억된 정보이고, 분산 관리 정보에 의해서만 관리될 수 없는 부가적인 정보를 포함한다.
구체적으로, 부가적인 관리 정보는, 도 6에 도시된 것처럼, 1-바이트 허가/금지 플래그, 1-바이트 블록 플래그, 4-비트 최종 플래그. 4-비트 참조 플래그, 1-바이트 식별 번호, 2-바이트 유효 데이터 크기, 5-바이트 리저브 영역, 2-바이트 부가적인 관리 정보 에러 정정 코드, 및 3-바이트 데이터 에러 정정 코드로 구성된다.
허가/금지 플래그, 블록 플래그, 최종 플래그, 참조 플래그, 리저브 영역, 및 데이터 에러 정정 부호는 분산 관리 정보의 경우와 유사하게 배열된다. 부가적인 관리 정보 에러 정정 코드는 분산 관리 정보의 분산 관리 정보 에러 정정 코드에 대응한다. 부가적인 관리 정보 에러 정정 코드는 추가의 관리 정보 중에, 식별 번호, 유효 크기, 및 리저브 영역을 정정하는 에러 정정 코드이다.
식별 번호 및 유효 데이터 크기는 분산된 관리 정보에 의해서만 관리될 수 없는 부가적인 정보로서 부가적인 관리 정보에 포함된다.
식별 번호는 에러 해결 처리를 실행하는 정보이며, 식별 번호의 값은 블록내의 데이터가 재기록될 때마다 증가된다. 만일, 에러가 생기고, 이에 의해, 동일한 논리 어드레스를 갖는 복수의 블록들이 존재한다면, 식별 번호는 블록들에 기록된 테이터가 새로운 것인지 오래된 것인지를 결정하는데 사용된다. 1-바이트 영역은 식별 번호에 의해 사용되는데, 식별 번호의 값은 "0" 내지 "255"이다. 식별 번호의 초기 값은 "0"이다. 만일, 식별 번호가 "255"보다 크게 되면, 초기 값은 "0"으로 복귀한다. 만일, 동일한 논리 어드레스를 갖는 복수의 데이터 블록들이 존재한다면,식별 번호를 갖는 데이터 블록(그 값은 더욱 작음)은 유효하게 된다. 만일, 동일한 논리 어드레스를 갖는 복수의 부트 블록들이 후술된 것처럼 존재한다면, 식별 번호를 갖는 부트 블록(그 번호가 더욱 큼)은 유효하게 된다.
유효 데이터 크기는 블록내의 유효 데이터의 크기이다. 즉, 만일, 블록의 데이터 영역이 블랭크 부분을 갖는다면, 데이터 영역에 기록된 데이터의 크기를 나타내는 값은 유효 데이터 크기로서 설정된다. 이때, 분산 관리 정보에서의 참조 플래그는 "관리 정보 있음"으로 설정된다. 만일, 블록의 데이터 영역이 블랭크 부분을 갖지 않는다면, "0xffff"는 데이터 영역이 블랭크 부분을 갖지 않음을 나타내는 값으로서 유효 데이터 크기에 설정된다.
분산 관리 정보 및 상기 부가적인 관리 정보는 블록내의 데이터가 갱신될 때마다 최신의 정보가 되도록 갱신된다.
집합 관리 정보는 블록들 각각의 분산 관리 정보를 수집하여 발생된 정보이며, 집합 관리 정보는 플래시 메모리(12)내에 파일로서 기억된다. 즉, 도 7에 도시된 대로, 모든 블록을 일괄적으로 관리하기 위한 정보인 집합 관리 정보의 파일은 각각의 블록의 분산 관리 정보로부터 발생된다. 집합 관리 정보는 미리 결정된 블록의 데이터 영역에 기억된다. 집합 관리 정보가 하나 또는 복수의 블록들에 기억될 수도 있다. 데이터 처리 장치(1)는 집합 관리 정보에 따라 각각의 블록에 대해 액세스하도록 요구된 정보를 얻는다.
메모리 카드(2)가 부트-업될 때, 부트 데이터는 데이터 처리 장치(1)에 의해 부트 블록으로부터 초기에 판독된다. 부트 데이터는 명령된 블록(집합 관리 정보가 기억됨)의 물리적 어드레스를 포함한다. 따라서, 데이터 처리 장치(1)는 내부 메모리(4)내의 집합 관리 정보를 발생하도록 물리적 어드레스에 대응하는 블록내에 기억된 집합 관리 정보를 판독한다. 집합 관리 정보에 따라, 데이터 처리 장치(1)는 메모리 카드(2)에 대해 액세스한다. 만일, 집합 관리 정보가 플래시 메모리(12)로부터 판독될 수 없아면, 데이터 처리 장치(1)는 모든 블록의 분산 관리 정보를 판독하여, 집합 관리 정보를 사용하기 위해 집합 관리 정보를 재구성한다.
데이터가 재기록될 때마다, 데이터 처리 장치(1)는, 요구의 상승에 따라, 집합 관리 정보가 플래시 메모리(12)의 실제 상태와 일치하도록 내부 메모리(4)에서 발생된 집합 관리 정보를 갱신한다(즉, 집합 관리 정보는 분산 관리 정보의 내용에 일치함). 한편, 플래시 메모리(12)내에 파일로서 기억된 집합 관리 정보는, 데이터 등의 기록이 실행될 때마다 갱신되지 않는다. 집합 관리 정보의 내용은 적정 시간에서 일괄적으로 갱신된다. 예를 들어, 적정 시간은 전원이 인터럽트되기 이전의 순간, 메모리 카드(2)에 대한 액세스가 미리 결정된 시간보다 긴 시간 주기동안 이루어지는 순간, 또는 데이터의 기록이 소정 횟수보다 적지 않게 실행되는 순간이다.
일반적으로, 플래시 메모리(12)에 대해 데이터를 재기록하도록 허가된 횟수는 상한 제한을 갖는다. 플래시 메모리(12)내에 파일로서 기록된 집합 관리 정보의 재기록이 다소 집합적으로 실행될 때, 집합 관리 정보가 기억된 블록의 재기록 횟수는 감소될 수 있다. 따라서, 메모리 카드(2)의 수명은 연장될 수 있다.
본 발명의 필수 부분인 부트 블록의 처리가 후술될 것이다.
메모리 카드(2)가 부트-업될 때, 부트 데이터는 데이터 처리 장치(1)에 의해 먼저 판독된 데이터이다. 부트 데이터는 메모리 카드(2)에 대한 액세스에 요구된 정보를 포함한다. 따라서, 부트 데이터가 기억된 부트 데이터내에 에어가 있고, 이에 의해, 부트 데이터가 판독될 수 없다면, 메모리 카드(2)에 대한 액세스가 이루어질 수 없다. 따라서, 부트 블록은 충분한 신뢰도를 가져야 한다.
따라서, 본 발명에 따른 메모리 카드(2)는 플래시 메모리(12)의 선두에서의 2개의 유효 블록내에 항상 기억되는 구조를 갖는다. "유효 블록"은 사용 허가된 불록들임을 주목한다. 즉, "유효 블록"은 "사용 허가"에 설정된 허가/금지 플래그를 갖는 블록들이다. 즉, 부트 데이터가 블록내에 기억될 때, 유효하지 않은 블록들(즉, 블록은 각각 "사용 금지"로 설정된 허가/금지 플래그를 가짐)은 사용되지 않고 건너뛴다. 따라서, 부트 데이터는 부트 블록들이 발생되도록 유효 블록들내에 기억된다.
상기 설명한 것처럼, 본 발명에 따른 메모리 카드(2)는 고정된 특정 블록이 부트 블록으로 되지 않는 구조를 갖는다. 만일, 유효하지 않는 블록이 된다면, 부트 데이터를 기억하는 블록이 변경된다. 따라서, 부트 데이터는 2개의 유효 블록들내에 항상 기억된다. 즉, 에러가 선두 블록에 존재할 때도, 부트 데이터는 2개의 유효 블록들내에 이중으로 항상 기억된다. 따라서, 본 발명에 따른 메모리 카드(2)의 신뢰도는 상당히 개선될 수 있다.
더욱이, 본 발명에 따른 메모리 카드(2)는 부가적인 관리 정보내에 포함된 식별 번호가 데이터 블록의 경우와 부트 블록의 경우사이에서 다르게 사용되는 구조를 갖는다.
데이터 블록의 경우, 만일, 동일한 논리 어드레스를 갖는 복수의 블록들이 존재한다면, 블록들에 기억된 새롭거나 오래된 데이터는 식별 번호를 사용하여 식별된다. 그 이유는, 동일한 논리 어드레스를 갖는 복수의 데이터 블록들이 주로 존재하는 것은, 대부분, 데이터 블록이 갱신될 때 에러가 존재하는 상태로 있기 때문이다. 이때, 식별 번호를 갖는 데이터 블록내에 기억된 데이터(그 번호는 더욱 작음)는, 갱신 이전의 데이터이다. 따라서, 만일, 동일한 논리 어드레스를 갖는 복수의 데이터 블록들이 존재한다면, 식별 번호를 갖는 데이터 블록(그 번호는 더욱 작음)은, 데이터가 갱신되기 이전의 상태가 기억되도록 선택된다. 따라서, 상기 데이터 블록내에 기억된 데이터는 유효 데이터로서 사용된다.
데이터 블록의 식별 번호는 논리 어드레스가 데이터 블록에 새롭게 지정될 때 "0"으로 초기화된다. 식별 번호는 데이터 블록이 갱신될 때, 1 증가된다. 상술된 대로, 만일, 식별 번호가 "255"를 초과한다면, 식별 번호는 "0"으로 된다.
부트 블록의 경우, 상기 설명된 대로, 식별 번호는, 플래시 메모리(12)의 선두에 2개의 유효 블록내에 기억된 새로운 또는 오래된 부트 데이터를 식별하는데 사용된다. 부트 데이터는 메모리 카드(2)에 대해 액세스하는데 요구된 정보이다. 따라서, 최신의 정보가 사용되어야만 한다. 만일, 2개의 부트 블록들의 식별 번호들이 서로 다르다면, 부트 블록이 갱신될 때 에러가 통상 발생한다. 식별 번호를 갖는 부트 불록내에 기억된 부트 데이터(그 값이 큼)는, 새로운 정보를 포함하는 부트 데이터이다. 만일, 두 개의 부트 블록들이 다른 식별 번호들을 갖는다면, 식별 번호를 갖는 부트 블록(그 값이 더 큼)은, 상기 부트 블록내에 기억된 데이터가 부트 데이터로서 사용되도록 선택된다.
메모리 카드(2)는 처음 사용될 때 포맷된다. 포맷 작업이 실행될 때, 부트 블록의 식별 번호는 "0"으로 초기화된다. 식별 번호는 부트 블록내에 기억된 부트 데이터가 갱신될 때 1씩 증가된다. 부트 블록의 경우, 식별 번호가 "255"를 초과한다면, 데이터 블록과 유사하게 "0"으로 복귀된다.
플래시 메모리(12)의 선두에서 2개의 유효 블록이 부트 블록이 되고, 식별 번호를 사용하여 새로운 또는 오래된 부트 블록을 관리하는 과정이 설명된다.
(1) 포맷 처리 과정
상술된 대로, 본 발명에 따른 메모리 카드(2)는 처음 사용될 때 포맷된다. 포맷 처리가 실행될 때, 부트 블록이 발생된다. 따라서, 포맷 처리가 실행될 때 부트 블록을 발생하는 과정이 설명될 것이다.
포맷 처리가 실행될 때, 데이터 처리 장치(1)는 메모리 카드(2)의 구성 R OM(18)내에 기억된 정보를 우선 판독한다. 판독되는 정보 등에 따라, 데이터 처리 장치(1)는 부트 블록내에 기억된 데이터(즉, 부트 데이터)를 발생한다. 부트 데이터로서 인식될 데이터를 판독하게 하기 위해, 판독 데이터가 부트 데이터임을 나타내는 정보(이후, "부트 식별자")는 부트 블록내에 기억되어야 하는 데이터내에 포함된다.
그후, 발생된 부트 데이터는, 부트 블록 및 여분의 부트 블록이 발생되도록, 플래시 메모리(12)의 2개의 선두 블록(최소의 물리적 어드레스 값을 갖는 블록 및 제 2 물리적 어드레스 값을 갖는 블록)에 기록된다. 이때, 상기 부트 데이터가 기록된 블록의 부가적인 관리 정보의 식별 번호는 "0"으로 설정된다. 만일, 처리가 어떤한 에러도 없이 완료된다면, 부트 블록을 발생하는 과정이 완료된다.
구체적으로, 부트 데이터를 기록하는 처리는 해당 블록이 초기에 소거 처리되도록 실행된다. 그후, 부트 데이터는 이전의 블록에 기록된다. 해당 블록이 정상적으로 소거 처리될 수 없거나, 또는 부트 데이터가 정상적으로 소거 처리된 블록에 기록될 수 없다면, 상술한 블록의 허가/금지 플래그는 "사용 금지"로 설정된다. 따라서, 상술한 블록의 사용이 금지된다. 만일, 허가/금지 플래그가 "사용 금지"로 설정될 수 없다면, 허가/금지 플래그를 "사용 금지"로 설정하는 처리는 여러 회 시도된다. 만일, 복수의 시도가 처리된 후에도 설정이 실행될 수 없다면, 데이터 처리 장치(1)는 매체가 비정상임을 판정한다. 따라서, 데이터 처리 장치(1)는 메모리 카드(2)를 수용하지 않는다.
만일, 에러가 부트 블록이 되도록 의도된 블록내에 생긴다면, 본 발명에 따른 메모리 카드(2)는 사용될 수 있는 블록의 부트 데이터를 유사하게 기록하도록 시도된다. 메모리 카드(2)는 동일한 내용을 갖는 두 개의 정상 부트 블록이 발생될 때까지 상술한 처리를 계속한다. 결과로서, 동일한 내용들을 갖는 부트 데이터는 플래시 메모리(12)의 2개의 선두 블록내에 각각 기억된다. 따라서, 선두의 2개의 유효 블록들은 부트 블록 및 여분의 부트 블록이 된다.
부트 데이터를 기록하는 처리는, 블록의 물리적 어드레스가 미리 결정된 값 M에 도달한다면, 동일한 내용을 갖는 2개의 부트 블록이 발생되지 않는 경우에조차도 인터럽트된다. 미리 결정된 값 M은 플래시 메모리(12)의 특성에 적합하게 이루어진다. 블록의 물리적 어드레스가 미리 결정된 값 M에 도달할 때, 부트 블록을 발생하는 처리는, 한 개의 부트 블록이 발생할 때조차도 인터럽트된다. 블록의 물리적 어드레스가 미리 결정된 값 M에 도달하고 부트 블록이 발생되지 않을 때조차도, 매체가 비정상임을 판정한다. 따라서, 데이터 처리 장치(1)는 메모리 카드(2)를 수용하지 않는다.
일반적으로, 플래시 메모리(12)는 재기록 처리가 여러번 이루어진 블록에서 에러가 있을 가능성이 높다. 일단 에러가 있다면, 에러가 그 후에도 존재할 가능성이 있다. 따라서, 블록이 부트 블록으로서 사용되고 그 사용은 에러 때문에 금지되며, 블록은, 에러가 일시적인 에러일지라도 다시 사용되지 않는다. 상기 규칙이 적용되므로, 매우 중요한 정보인 부트 데이터는 더욱 충분한 신뢰도를 갖는 블록내에 기억된다. 따라서, 부트 블록의 신뢰도가 개선될 수 있다. 상기 규칙이 선두 블록으로부터 제 2 부트 블록의 영역에만 적용되거나, 제 2 부트 블록이 존재하지 않는다면 상기 미리 결정된 값 M에 도달한 물리적 어드레스를 갖는 블록까지의 영역에만 적용된다. 즉, 상기 언급된 규칙이 충분한 신회도를 갖는 부트 블록에 적용되고 동일한 적용은 다음의 블록(즉, 데이터 블록)에 금지된다. 결과로서, 기억 영역은 더욱 효율적으로 사용될 수 있다.
(2) 부트 블록을 갱신하는 과정
부트 데이터는 항상 동일 데이터인 것은 아니다. 메모리 카드(2)가 사용될 때, 부트 데이터의 내용은 변경되어야 한다. 따라서, 부트 블록은 때때로 부트 데이터를 재기록하도록 갱신된다. 부트 데이트를 재기록하는 처리는 다음의 규칙에 따라 실행된다.
부트 데이터가 재기록될 때, 집합 관리 정보의 내용은 변경되어야만 한다. 따라서, 플래시 메모리(12)내에 파일로서 기억된 집합 관리 정보는 부트 데이터가 재기록되기 이전에 유효하지 않은 것으로 된다. 집합 관리 정보가 다음에 사용될 때, 분산 관리 정보로부터의 재구성이 실행된다.
부트 데이터의 내용이 재기록될 때, 부트 데이터가 기억되는 부트 블록은, 새로운 부트 데이터가 이전의 블록에 기록됨으로써 소거 처리된다. 즉, 부트 데이터가 재기록될 때, 동일한 블록의 내용은 다른 블록을 사용하지 않은 채 갱신된다. 만일, 부트 블록을 갱신하는 처리가 실행되고 상기 블록의 사용이 금지될 때 에러가 있으면, 상기 처리는 실행되지 않는다.
새로운 부트 데이터에 대해 재기록하는 처리가 실행될 때, 작은 물리적 어드레스를 갖는 두 개의 발생된 블록들 중의 한 블록이 처리된다. 이때, 갱신된 내용을 갖는 부트 블록의 식별 번호는 1 증가된다. 만일, 재기록 작업전의 식별 번호의 값이 "255"가 되기 이전에, 그 값은 "0"가 된다.
여분의 부트 블록(즉, 큰 물리적 어드레스를 갖는 부트 데이터)이 갱신되고 이로써 또다른 부트 블록의 것과 동일한 내용을 갖도록 부트 데이터를 새로운 부트 데이터로 재기록하는 처리가 실행될 때, 여분의 부트 블록의 식별 번호는 다른 부트 블록의 식별 번호의 것과 동일한 값을 갖게 된다.
상기 규칙에 따라 부트 블록을 갱신하는 처리는 도 8를 참조하여 후술될 것이다.
도 8에 도시된 실시예에서, 물리적 어드레스 "1"을 갖는 블록은 일반적으로 사용된 부트 블록(이후, "제 1 부트 블록"이라 함)이며, 물리적 어드레스 "2"를 갖는 블록은 여분의 부트 블록(이후, "제 2 부트 블록"이라 함)이다. 도 8에 도시된 실시예에서, 부트 데이터가 기록된 상태 및 판독될 수 있는 부트 데이터는 "OK"로서 나타낸다.
도 8의 (a)는 부트 블록을 재기록하는 처리가 실행되기 이전의 일반 상태를 도시한 것이다. 이때, 제 1 부트 블록의 식별 번호 및 제 2 부트 블록의 식별 번호는 동일 값을 갖는다. 구체적으로, 도 8의 (a)에서 도시된 실시예에서, 제 1 부트 블록의 식별 번호는 "10"이고, 제 2 부트 블록의 식별 번호는 "10"이다.
부트 데이터가 갱신될 때, 작은 물리적 어드레스를 갖는 부트 블록, 즉, 제 1 부트 블록은 도 8의 (b)에 도시된 대로, 부트 데이터를 재기록하도록 처리된다. 제 1 부트 블록이 부트 데이터를 재기록하는 처리이므로, 제 1 부트 블록은 제 1 부트 블록이 부트 블록으로서 사용될 수 없는 "NG" 상태가 된다.
메모리 카드(2)가 데이터 처리 장치(1)로부터 제거되거나 그 처리가 상기 언급된 상태에서 인터럽트된다면, 제 1 부트 블록은 재시작이 실행될 때 부트 블록으로서 사용된다. 상기 경우, 여분의 부트 블록인 제 2 부트 블록내에 기억된 부트 데이터는 메모리 카드(2)가 부트-업되도록 판독된다. 상기 경우, 제 1 부트 블록은 제 2 부트 블록으로부터 판독되는 부트 데이터에 따라 재구성된다.
제 1 부트 블록이 갱신될 때, 제 1 부트 블록의 식별 번호는 도 8의 (c)에 도시된 것처럼, 1 증가된다. 상기 실시예에서, 식별 번호의 값은 "11"이 된다. 상기 상태에서, 새로운 부트 데이터는 제 1 부트 블록에 기억되고 오래된 부트 데이터는 제 2 부트 블록내에 기억된다.
데이터 처리 장치(1)로부터 메모리 카드(2)의 제거 가능하므로, 처리가 상기 경우에 인트럽트될 때, 제 1 부트 블록내에 기억된 새로운 부트 데이터(즉, 큰 식별 번호를 갖는 부트 블록내에 기억된 부트 데이터)는 재시작이 실행될 때 판독된다. 이와 같이, 메모리 카드(2)는 부트-업된다. 이때, 식별 번호를 갖는 부트 블록내에 기억된 부트 데이터(그 값은 더욱 작음(즉, 제 2 부트 블록))는, 식별 번호를 갖는 부트 블록(즉, 제 1 부트 블록)(그 값이 큼)내에 기억된 부트 데이터에 따라 갱신된다.
제 1 부트 블록을 갱신하는 처리가 완료될 때, 큰 물리적 어드레스를 갖는 부트 블록, 즉, 제 2 부트 블록은 도 8의 (d)에 도시된 것처럼 갱신된다. 이 때, 제 2 부트 블록은 부트 데이터가 재기록되기 때문에 부트 블록으로서 사용될 수 없는 "NG" 상태가 된다.
데이터 처리 장치(1)로부터 메모리 카드(2)의 제거 가능하므로, 처리가 인터럽트된다면, 제 1 부트 블록내의 부트 데이터는 재시작이 메모리 카드(2)를 부트-업을 실행하도록 사용된다. 그러나, 여분의 부트 블록이 존재하는 상태가 실현된다. 따라서, 여분의 부트 블록인 제 2 부트 블록은, 제 1 부트 블록으로부터 판독되는 부트 데이터에 따라 재구성된다.
제 2 부트 블록이 갱신될 때, 제 2 부트 블록의 식별 번호는 도 8의 (e)에 도시된 대로, 1 증가된다. 상기 실시예에서, 식별 번호의 값은 "11"이 된다. 결과로서, 제 1 부트 블록의 식별 번호와 제 2 부트 블록의 식별 번호는 동일 값을 갖는다. 상기 언급된 처리의 결과로서, 제 1 및 제 2 부트 블록은 새로운 부트 블록이 기억되는 상태가 된다.
(3)메모리 카드가 부트-업될 때 부트 블록을 판독하는 과정
부트 블록내에 기억된 부트 데이터는, 메모리 카드(2)가 데이터 처리 장치(1)에 연결되어 부트-업될 때, 데이터 처리 장치(1)에 의해 먼저 판독된다. 메모리 카드가 부트-업될 때 데이터 처리 장치(1)에 의해 부트 블록을 판독하는 과정이 설명될 것이다.
일반 상태에서, 동일 식별 번호 및 동일 내용을 갖는 2개의 부트 블록이 존재한다. 따라서, 상기 언급된 사실을 확인하는 처리는 메모리 카드가 부트-업될 때 항상 실행된다. 구체적으로, 부트 블록을 조사하기 위해 선두 블록에서 시작하는 순서로 다음의 처리가 실행된다.
·선두 페이지의 분산 관리 정보가 정상적으로 판독될 수 있는지를 확인한다.
·허가/금지 플래그가 "사용 허가" 상태인지를 확인한다.
·블록 플래그가 "선두 사용"인지를 확인한다.
·그 기억된 데이터가 부트 데이터인지를 확인하기 위해 부트 식별자가 검출된다.
·최종 페이지에 기억된 부가적인 관리 정보가 정상적으로 판독될 수 있는지를 확인한다.
·식별 번호가 판독된다. 제 1 부트 블록의 경우, 제 1 부트 블록의 식별 번호의 값이 기억된다. 제 2 부트 블록의 경우, 제 2 부트 블록의 식별 번호는 제 1 부트 블록의 것과 일치하는지를 확인한다.
·부트 블록내의 데이터가 판독된다. 제 1 부트 블록의 경우, 판독되는 데이터는 기억된다. 제 2 부트 블록의 경우, 제 1 부트 블록의 판독되는 데이터 및 기억된 데이터가 상호 일치하는지가 확인된다.
상기 언급된 처리는 선두 블록에서 시작하도록 실행된다. 동일 식별 번호 및 동일 내용을 갖는 두 개의 부트 블록이 확인될 때, 부트 블록을 판독하는 동작이 완료된다. 상기 설명된 대로, 두 개의 부트 블록은 메모리 카드(2)의 신뢰도가 상당히 개선되도록 메모리 카드(2)가 부트-업될 때 확인된다.
물리적 어드레스가 미리 결정된 값 M에 도달할 때까지 조사가 계속된 이후에, 단지 한 개의 부트 블록이 존재한다면, 부트 블록내에 기억된 부트 데이터는 메모리 카드(2)를 부트-업하는데 사용된다. 만일, 선두 블록 내지 M번째 블록사이에 가용 블록이 존재한다면, 부트 데이터는 가용 블록에 기록된다. 이와 같이, 새로운 여분의 부트 블록이 발생된다. 만일, 선두 블록으로부터 M번째 블록까지 가용 블록이 존재하지 않는다면, 메모리 카드(2)는 단지 한 개의 부트 블록이 존재하는 상태에서 동작된다. 만일, 부트 블록이 M번째 블록까지 조사가 계속된 이후에도 존재하지 않는다면, 데이터 처리 장치(1)는 매체가 비정상임을 판정한다. 따라서, 데이터 처리 장치(1)는 메모리 카드(2)를 수용하지 않는다.
만일, 부트 데이터가 정상적으로 두 블록에 기록된 상태에서도 식별 번호가 상호 다르다면, 큰 식별 번호를 갖는 블록은 유효 부트 블록으로서 선택된다. 메모리 카드(2)가 부트-업될 때, 큰 식별 번호를 갖는 블록내에 기억된 부트 데이터가 사용된다. 만일, 두 블록중의 한 블록의 식별 번호가 "255"이고, 그 다른 블록의 식별 번호가 "0"이라면, 식별 번호 "0"를 갖는 블록은 유효 부트 블록으로서 선택된다. 이와 같이, 유효 부트 블록내의 부트 데이터가 사용된다. 부트 데이터가 정상적으로 단지 한 개의 블록에 기록된다면, 상기 블록은 부트 블록으로서 사용된다.
메모리 카드(2)가 부트-업될 때 부트 블록을 판독하는 더욱 상세한 과정은, 도 9 내지 도 12에 도시된 흐름도를 참조하여 설명될 것이다. 상기 실시예에서, 변수 I, WB, IDA, IDB가 사용된다. 변수 I, WB는 물리적 어드레스가 입력되는 것인 반면에, 변수 IDA, IDB는 식별 번호의 값이 입력된 것이다.
메모리 카드가 부트-업될 때, "0"는 변수 단계 S1에서 변수 I에 입력된다. 더욱이, "0"는 각각의 변수 IDA, IDB에 입력된다. 그후, 동작은 단계 S2에 진행된다.
단계 S2에서, 처리되어야 하는 블록은 변수 I로 나타낸 물리적 어드레스를 갖는 블록이 된다. 그후, 동작은 단계 S3에 진행한다.
단계 S3에서, 처리되어야 하는 블록으로부터, 분산 관리 정보를 판독될 수 있는지 여부를 판정한다. 분산 관리 정보가 판독될 수 있으면, 단계 S4로 진행한다. 분산 관리 정보가 판독될 수 없으면, 단계 S27로 진행한다.
단계 S4에서, 처리되어야 하는 블록의 허가/금지 플래그가 "사용 허가" 상태가 되었는지를 판정한다. 만일, 상태가 "사용 허가" 상태이면, 동작은 단계 S5로 진행한다. 만일, 상태가 "사용 허가" 상태가 아니면, 동작은 단계 S22로 진행한다.
단계 S5에서, 처리되어야 하는 블록의 블록 플래그가 "선두 사용"인지가 판정된다. 만일, 상태가 "선두 사용"이면, 동작은 단계 S6으로 진행한다. 만일, 상태가 "선두 사용"이 아니면, 동작은 단계 S24로 진행한다.
단계 S6에서, 처리되어야 하는 블록내에 기억된 데이터에 부트 식별자가 제공되었는지가 판정된다. 즉, 상기 데이터가 부트 데이터인지가 판정된다. 상기 데이터가 부트 데이트가 아니라면, 동작은 단계 S7로 진행한다. 만일, 상기 데이터가 부트 데이트이면, 동작은 단계 S28로 진행한다.
단계 S7에서, 처리되어야 하는 블록으로부터 부가적인 관리 정보가 판독될 수 있는지의 여부를 판정한다. 부가적인 관리 정보가 판독될 수 있다면, 동작은 단계 S8로 진행한다. 부가적인 관리 정보가 판독될 수 없다면, 동작은 단계 S27로 진행한다.
단계 S8에서, 처리되어야 하는 블록의 식별 번호의 값이 변수 IDA로 대체된다. 그후, 동작은 단계 S9로 진행한다.
단계 S9에서, 처리되어야 하는 블록으로부터 부트 데이터가 판독될 수 있는지의 여부를 판정한다. 만일, 부트 데이터가 판독될 수 있다면, 동작은 단계 S10으로 진행한다. 만일, 부트 데이터가 판독될 수 없다면, 동작은 단계 S27로 진행한다.
단계 S10에서, 부트 데이터는 판독되는 부트 데이터를 기억하기 위해 처리되어야 할 블록으로부터 판독된다. 그후, 동작은 단계 S11로 진행한다.
단계 S11에서, 변수 I의 값은 변수 WB에 대체되고, 변수 I의 값은 1 증가된다. 그후, 동작은 단계 S12에 진행한다.
단계 S12에서, 처리되어야 하는 블록은 변수 I로 나타낸 물리적 어드레스를 갖는 블록이 되어야 한다. 그후, 동작은 단계 S13으로 진행한다.
단계 S13에서, 처리되어야 하는 블록으로부터 분산 관리 정보가 판독될 수 있는지의 여부를 판정한다. 분산 관리 정보가 판독될 수 있다면, 동작은 단계 S14로 진행한다. 만일, 분산 관리 정보가 판독될 수 없다면, 동작은 단계 S34에 진행한다.
단계 S14에서, 처리되어야 하는 블록의 허가/금지 플래그가 "사용 허가" 상태에 있는지가 판정된다. 만일, 상태가 "사용 허가" 상태이면, 동작은 단계 S15로 진행한다. 만일, 상태가 "사용 허가" 상태가 아니면, 동작은 단계 S29로 진행한다.
단계 S15에서, 처리되어야 하는 블록의 블록 플래그가 "선두 사용"인지가 판정된다. 만일, 상태가 "선두 사용" 상태이면, 동작은 단계 S16으로 진행한다. 만일, 상태가 "선두 사용"이 아니면, 동작은 단계 S31로 진행한다.
단계 S16에서, 처리되어야 하는 블록내에 기억된 데이터에 부트 식별자가 제공되었는지가 판정된다. 즉, 상기 데이터가 부트 데이터인지가 판정된다. 상기 데이터가 부트 데이트가 아니라면, 동작은 단계 S17로 진행한다. 만일, 상기 데이터가 부트 데이트이면, 동작은 단계 S35로 진행한다.
단계 S17에서, 처리되어야 하는 블록으로부터 부가적인 관리 정보가 판독될 수 있는지의 여부를 판정한다. 부가적인 관리 정보가 판독될 수 있다면, 동작은 단계 S18로 진행한다. 부가적인 관리 정보가 판독될 수 없다면, 동작은 단계 S34로 진행한다.
단계 S18에서, 처리되어야 하는 블록의 식별 번호의 값이 변수 IDB로 대체된다. 그후, 동작은 단계 S19로 진행한다.
단계 S19에서, 변수 IDA, IDB의 값이 상호 비교된다. 만일, 변수들 IDA, IDB의 값이 동일하다면, 동작은 단계 S20으로 진행한다. 만일, 변수 IDA, IDB의 값이 동일하지 않다면, 동작은 단계 S32로 진행한다.
단계 S20에서, 처리되어야 하는 블록으로부터 부트 데이터가 판독될 수 있는지가 판정된다. 만일, 부트 데이터가 판독될 수 있다면, 동작은 단계 S21로 진행한다. 만일 부트 데이터가 판독될 수 없다면, 동작은 단계 S34로 진행한다.
단계 S21에서, 부트 데이터는 처리되어야 하는 블록으로부터 판독된다. 그후, 판독된 부트 데이터와 판독 및 기억된 부트 데이터가 상호 일치하는지가 판정된다. 부트 데이터 항목은 두 부트 블록으로부터 부트 데이터의 판독이 정상적으로 실행될 때, 상호 일치한다. 따라서, 처리가 완료된다. 만일, 부트 데이터 항목이 상호 일치하지 않는다면, 동작은 단계 S32에 진행한다.
허가/금지 플래그가 S4에서 "사용 허가" 상태가 아니라면, 동작은 상술된 대로 단계 S22로 진행한다.
단계 S22에서, 변수 I 및 변수 M의 값은 상호 비교된다. 만일, 변수 I의 값이 미리 결정된 값 M보다 작다면, 동작은 단계S23으로 진행한다. 변수 I의 값이 단계 S22에서의 미리 결정된 값 M보다 작지 않다면, M번째의 블록까지 조사가 실행된이후에 부트 데이터가 얻어질 수 없는 경우가 있다. 이 경우, 에러가 있는 것으로 판정되어 처리를 종료한다.
단계 S23에서, 변수 I의 값은 1 증가된다. 그후, 동작은 단계 S2로 복귀하며 처리가 반복된다.
블록 플래그가 단계 S5에서 "선두 사용"이 되지 않는다면, 동작은 단계 S24로 진행한다. 단계 S24에서, 상기 블록 플래그가 "미사용" 상태인지가 판정된다. 만일, 상태가 "미사용" 상태이면, 동작은 도 11에 도시된 대로 단계 S36에 진행한다. 만일, 상태가 "미사용"이 아니면, 동작은 단계 S25로 진행한다.
단계 S25에서, 처리되어야 하는 블록은 소거 처리된다. 그후, 동작은 단계 S26로 진행한다.
단계 S26에서, 단계 S25에서의 소거 처리가 정상적으로 완료되었는지가 판정된다. 소거 처리가 정상적으로 완료된다면, 동작은 도 11에 도시된 단계 S36으로 진행한다. 소거 처리가 정상적으로 완료된다면, 동작은 단계 S27로 진행한다.
단계 S27에서, 처리되어야 하는 블록의 허가/금지 플래그는 "사용 금지" 상태로 설정된다. 그후, 동작은 단계 S22로 진행하여 상기 처리가 실행된다.
데이터가 단계 S6에서의 부트 데이터가 아니라면, 동작은 상술된 대로 단계 S28로 진행한다.
단계 S28에서, 처리되어야 하는 블록은 다른 블록으로 시프트된다. 그후, 동작은 상기 처리가 실행되도록 단계S25로 진행한다.
분산 관리 정보가 단계 S3에서 판독될 수 없다면, 부가적인 관리 정보가 단계 S7에서 판독될 수 없거나 부트 데이터가 단계 S9에서 판독될 수 없다면, 동작은 단계 S25로 진행하여 상기 처리가 실행된다.
허가/금지 플래그가 단계 S14에서의 "사용 허가" 상태로 되지 않는다면, 동작은 단계 S29로 진행한다. 단계 S29에서, 변수I의 값 및 미리 결정된 값M은 상호 비교된다. 만일, 변수I의 값이 미리 결정된 값M보다 작다면, 동작은 단계 S30으로 진행한다. 제 2 부트가 M번째 블록에 대한 조사가 실행된 이후에 제 2 부트 데이터가 얻어질 수 없을 때, 변수I의 값은 단계 S29에서의 미리 결정된 값 M보다 작지 않다. 이 경우, 부트 데이터를 판독하는 처리는 인터럽트된다. 판독 및 기억된 부트 데이터는 메모리 카드(2)가 부트-업되는데 사용된다.
단계 S30에서, 변수 I의 값은 1 증가된다. 그후, 동작은 단계 S12로 복귀되어 처리가 반복된다.
만일, 블록 플래그가 단계 S15에서 "선두 사용" 상태가 아니라면, 동작은 상기 설명된 대로 단계 S31로 진행한다. 단계 S31에서, 상기 블록 플래그가 "미사용" 상태인지가 판정된다. 만일, 상태가 "미사용" 상태이면, 동작은 도 12에 도시된 단계 S47로 진행한다. 만일, 상태가 "미사용" 상태가 아니면, 동작은 단계 S32로 진행한다.
단계 S32에서, 처리되어야 하는 블록이 소거 처리된다. 그후, 동작은 단계 S33으로 진행한다.
단계 S33에서, 소거 처리가 단계 S32에서 정상적으로 완료되었는지가 판정된다. 만일, 소거 처리가 정상적으로 완료된다면, 동작은 도 12에서 도시된 단계 S47로 진행한다. 만일, 소거 처리가 전상적으로 완료되지 않는다면, 동작은 단계 S34로 진행한다.
단계 S34에서, 처리되어야 하는 블록의 허가/금지 플래그는 "사용 금지" 상태로 설정된다. 그후, 동작은 단계 S29로 진행하여 상기 처리가 실행된다.
만일, 데이터가 단계 S16에서의 부트 데이터가 아니라면, 동작은 단계 S35로 진행한다. 단계 S35에서, 처리되어야 하는 블록은 다른 블록으로 시프트된다. 그후, 동작은 단계 S32로 진행하여 상기 처리가 실행된다.
만일, 분산 관리 정보가 단계 S13에서 판독될 수 없다면, 부가적인 관리 정보가 단계 S17에서 판독될 수 없다면, 만일, 변수 IDA의 값 및 변수 IDB의 값이 단계 S19에서 상호 일치하지 않는다면, 부트 데이터가 단계 S20에서 판독될 수 없다면 또는 부트 데이터 항목이 단계 S21에서 상호 일치하지 않는다면, 동작은 단계 S32로 진행하여 상기 처리가 실행된다.
도 11에서, 변수 I의 값은 단계 S36에서 변수 WB로 대체된다. 더욱이, 변수 I의 값은 증가된다. 그후, 동작은 단계 S37로 진행한다.
단계 S38에서, 분산 관리 정보가 처리되어야 하는 블록으로부터 판독될 수 있는지가 판정된다. 만일, 분산 관리 정보가 판독될 수 있다면, 동작은 단계 S39로 진행한다. 만일, 분산 관리 정보가 판독될 수 없다면, 동작은 단계 S45로 진행한다.
단계 S39에서, 처리되어야 하는 블록의 허가/금지 플래그가 "사용 허가"인지가 판정된다. 만일, 상태가 "사용 허가" 상태이면, 동작은 단계 S52로 진행한다. 만일, 상태가 "사용 허가" 상태가 아니라면, 동작은 단계 S45로 진행한다.
단계 S52에서, 처리되어야 하는 블록의 허가/금지 블래그가 "선두 사용(use at leading end)"로 되어 있는가를 판별한다. 만일, 선두 사용으로 되어 있으면 단계 S40으로 진행하고, 선두 사용으로 되어 있지 않으면 동작은 단계 S54로 진행하여 처리를 종료한다.
단계 S40에서, 처리되어야 하는 부트 블록에 기억된 데이터에 블록 식별자가 제공되었는지의 여부가 판정된다. 즉, 상기 데이터가 부트 데이터인지가 판정된다. 만일, 상기 데이터가 부트 데이터이면, 동작은 단계 S41로 진행한다.
단계 S41에서, 추가의 관리 정보가 처리되어야 하는 블록으로부터 판독될 수 있는지의 여부가 판정된다. 만일, 추가의 관리 정보가 판독될 수 있다면, 동작은 단계 S42로 진행한다. 만일, 추가의 관리 정보가 판독될 수 없다면, 단계 S53으로 진행한다.
단계 S42에서, 처리되어야 하는 블록으로부터 부트 데이터가 판독될 수 있는지의 여부가 판정된다. 만일, 부트 데이터가 판독될 수 있다면, 동작은 단계 S43으로 진행한다.
만일, 허가/금지 플래그가 단계 S39에서 "사용 허가" 상태에 있으면, 동작은 상술한 것처럼 단계 S45로 진행한다. 단계 S45에서, 변수 I의 값과 미리 결정된 값 M이 서로 비교된다. 만일, 변수 I의 값이 미리 결정된 값 M보다 작으면, 동작은 단계 S46으로 진행한다. 단계 S45에서, M 번째의 블록까지 검사가 실행된 이후에 부트 데이터를 얻을 수 없을 때 변수 I의 값은 미리 결정된 값 M 보다 작지 않게 된다. 이 경우, 단계 S54로 진행하여 에러로서 판정되고 처리가 종료된다.
단계 S53에서, 처리되어야 하는 블록의 사용 허가/사용 금지 플래그는 "사용 금지" 상태로 설정된다. 이후, 단계 S45로 진행하여 상술한 처리를 실행한다.
단계 S46에서, 변수 I의 값은 1 증가된다. 그후, 동작은 단계 S37로 복귀하고 처리는 반복된다.
만일, 데이터가 단계 S40에서의 부트 데이터가 아니라면, 만일, 추가의 관리 정보가 단계 S41에서 판독될 수 없다면, 또는 부트 데이터가 단계 S42에서 판독될 수 없다면, 에러로서 판정이 실행되고 처리가 종료된다. 상기 경우는 부트 데이터가 두 부트 블록중의 한 블록으로부터 판독될 수 없을 때 발생한다.
도 12에 도시 것처럼, 변수 IDB의 값이 "0xffff"인지가 단계 S47에서 판정된다. 만일, 변수 IDB의 값이 "0xffff"이 아니라면, 동작은 단계 S48로 진행한다. 변수 IDB의 값이 "0xffff"이면, 동작은 단계 S49로 진행한다.
단계 S48에서, 변수 IDA의 값과 변수 IDB의 값에 "1"증가함으로써 얻어진 값은 상호 비교된다. 만일, 두 값이 동일하다면, 동작은 단계 S49로 진행한다. 만일, 두 값이 동일하지 않다면, 동작은 단계 S51로 진행한다.
단계 S49에서, 변수 I의 값은 변수 WB에 대체된다. 그후, 동작은 단계 S50으로 진행한다.
단계 S50에서, 판독 및 기억된 부트 데이터는 변수 WB로 나타낸 물리적 어드레스를 갖는 블록에 기록된다. 이때, 부트 데이터에 대한 처리는 완료되고 판독 및 기억된 부트 데이터는 메모리 카드(2)를 부트 업하는데 사용된다.
단계 S51에서, 변수 IDB의 값과 변수 IDA의 값에 "1"가산함으로써 얻어진 값은 상호 비교된다. 만일, 두 변수가 동일하다면, 동작은 단계 S50으로 진행하여 상기 처리가 실행된다.
변수 IDB의 값과 변수 IDA의 값에 "1" 가산함으로써 얻어진 값은, 두 부트 블록의 식별 번호가 동일하지 않을 때와 식별 번호가 순차 번호가 아닐 때, 단계 S51에서 동일하지 않다. 부트 데이터의 판독이 실행될 수 있으므로, 수동 복구 모드는 데이터 처리 장치(1)가 적절한 처리를 실행하도록 사용된다.
따라서, 부트 블록을 판독하는 처리는 메모리 카드가 부트 업될 때 실행된다. 상기 언급된 처리가 실행됨으로써, 두 부트 블록은 메모리 카드(2)가 부트 업될 때 인식된다. 따라서, 메모리 카드(2)의 신뢰도는 상당히 개선될 수 있다.
상술한 것처럼, 본 발명에 따라, 부트 데이터는 각각의 복수의 다른 블록들에 기억된다. 따라서, 부트 데이터가 기억된 블록이 사용될 수 없을지라도, 다른 블록에 기억된 부트 데이터는 외부 기억 장치를 부트-업하는데 사용될 수 없다.
새로운 또는 오래된 부트 데이터를 나타내는 식별 번호가 블록에 기억되므로, 최신의 부트 데이터는 항상 사용될 수 있다. 즉, 본 발명에 따라, 혼합된 방식으로 존재하는 새로운 부트 데이터 및 오랜 부트 데이터에서의 상태가 실현될지라도, 최신의 부트 데이터는 항상 사용될 수 있다. 따라서, 데이터의 일관성이 유지될 수 있다.
따라서, 본 발명에 따라, 에러의 발생은 부트 데이터가 판독될 때 만족스럽게 방지될 수 있다. 이와 같이, 신뢰할 만한 외부 기억 장치가 제공될 수 있다.
미리 결정된 정밀도로 본 발명의 양호한 형태로 개시될 지라도, 양호한 형태의 개시는 본 발명의 정신 및 범위를 벗어나지 않은 채 상세한 구성 및 조합으로 변경될 수 있다.
도 1은 본 발명이 적용된 시스템의 전체 구조를 도시하는 도면.
도 2는 본 발명이 적용된 메모리 카드의 구조를 도시하는 블록도.
도 3은 본 발명이 적용된 메모리 카드의 형태를 도시하는 사시도.
도 4는 본 발명이 적용된 메모리 카드의 기억 영역의 구조를 도시하는 도면.
도 5는 분산 관리 정보(distributed administration information)dml 구조를 도시하는 도면.
도 6은 부가적인 관리 정보의 구조를 도시하는 도면.
도 7은 각각의 블록의 분산 관리 정보로부터 구성된 집합 관리 정보에서의 상태를 도시한 도면.
도 8은 부트 블록을 갱신하는 과정을 도시하는 도면.
도 9는 메모리 카드가 부트-업될 때 부트 블록을 판독하는 과정을 도시하는 흐름도.
도 10은 메모리 카드가 부트-업될 때 부트 블록을 판독하는 과정을 도시하는 흐름도.
도 11은 메모리 카드가 부트-업될 때 부트 블록을 판독하는 과정을 도시하는 흐름도.
도 12는 메모리 카드가 부트-업될 때 부트 블록을 판독하는 과정을 도시하는 흐름도.
*도면의 주요 부분에 대한 상세한 설명*
1 : 데이터 처리 장치 2 : 메모리 카드
4 : 내부 메모리 5 : 보조 기억 장치

Claims (6)

  1. 외부 기억 장치로서, 복수의 소거 가능한 블록들, 상기 외부 기억 장치가 부트-업될 때 최초로 판독되는 부트 데이터를 기억하는 제 1 및 제 2 부트 블록, 및 상기 부트 데이터가 새로운 것인지 오래된 것인지를 나타내는 식별 번호를 구비하는 메모리 어레이를 포함하는, 상기 외부 기억 장치에 있어서,
    상기 식별 번호는 상기 제 1 및 제 2 부트 블록들 각각에 기억되고,
    상기 식별 번호는, 상기 각각의 부트 블록내의 상기 부트 데이터가 새로운 부트 데이터인 경우에 제 1 값을 갖고, 상기 각각의 부트 블록내의 상기 부트 데이터가 오래된 부트 데이터인 경우에 제 2 값을 가지며,
    상기 제 1 및 제 2 부트 블록들내의 상기 식별 번호는 상기 제 1 및 제 2 부트 블록들의 각각의 블록내의 상기 부트 데이터가 완전 갱신된 이후에 동일한 값을 갖는 것을 특징으로 하는, 외부 기억 장치.
  2. 제 1 항에 있어서, 상기 외부 기억 장치가 부트-업될 때 상기 식별 번호에 따라, 상기 제 1 및 제 2 부트 블록들에 기억된 부트 데이터들 중에 최신의 부트 데이터가 판독되어, 상기 외부 기억 장치는 상기 최신의 부트 데이터를 사용하여 부트-업되는, 외부 기억 장치.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 외부 기억 장치가 부트-업될 때 상기 식별 번호에 따라, 상기 복수의 다른 블록들에 기억된 각각의 부트 데이터가 새로운 것인지 오래된 것인지가 판정되고, 오래된 부트 데이터가 존재하는 경우에는 부트 데이터가 최신의 부트 데이터로 재기록되는, 외부 기억 장치.
  4. 소거 가능한 블록들에 데이터를 기억하는 외부 기억 장치에 사용되는 데이터 처리 방법으로서, 상기 외부 기억 장치가 부트-업될 때 상기 기억 장치의 부트 블록으로부터 부트 데이터가 최초로 판독되고, 제 1 부트 블록에 부트 데이터를 기억하는 단계, 제 2 부트 블록에 부트 데이터를 기억하는 단계, 및 상기 부트 데이터가 새로운 것인지 오래된 것인지를 나타내는 식별 번호를 기억하는 단계를 포함하는 상기 데이터 처리 방법에 있어서,
    상기 식별 번호는 상기 제 1 및 제 2 부트 블록들 각각에 기억되고,
    상기 식별 번호는, 상기 각각의 부트 블록내의 상기 부트 데이터가 새로운 부트 데이터인 경우에 제 1 값을 갖고, 상기 각각의 부트 블록내의 상기 부트 데이터가 오랜 부트 데이터인 경우에 제 2 값을 가지며,
    상기 제 1 및 제 2 부트 블록들내의 상기 식별 번호는 상기 제 1 및 제 2 부트 블록들의 각각의 블럭내의 상기 부트 데이터가 완전 갱신된 이후에 동일한 값을 갖는 것을 특징으로 하는, 데이터 처리 방법.
  5. 제 4항에 있어서, 상기 외부 기억 장치가 부트-업될 때, 상기 식별 번호에 따라, 상기 제 1 및 제 2 부트 블록들에 기억된 부트 데이터들 중에 최신의 부트 데이터가 판독되어, 상기 외부 기억 장치는 상기 최신의 부트 데이터를 사용하여 부트-업되는, 데이터 처리 방법.
  6. 제 4 항 또는 제 5 항에 있어서, 상기 외부 기억 장치가 부트-업될 때 상기 식별 번호에 따라, 상기 복수의 다른 블록들에 기억된 각각의 부트 데이터가 새로운 것인지 오래된 것인지가 판정되고, 오래된 부트 데이터가 존재하는 경우에는 부트 데이터가 최신의 부트 데이터로 재기록되는, 데이터 처리 방법.
KR1019980041922A 1997-09-30 1998-09-30 외부기억장치및데이터처리방법 KR100642529B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP26717797A JP2914360B2 (ja) 1997-09-30 1997-09-30 外部記憶装置及びデータ処理方法
JP97-267177 1997-09-30

Publications (2)

Publication Number Publication Date
KR19990030334A KR19990030334A (ko) 1999-04-26
KR100642529B1 true KR100642529B1 (ko) 2008-01-30

Family

ID=17441184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980041922A KR100642529B1 (ko) 1997-09-30 1998-09-30 외부기억장치및데이터처리방법

Country Status (9)

Country Link
US (2) US6330634B1 (ko)
EP (1) EP0910020B1 (ko)
JP (1) JP2914360B2 (ko)
KR (1) KR100642529B1 (ko)
CN (1) CN1229724C (ko)
AU (1) AU753121B2 (ko)
DE (1) DE69809527T2 (ko)
MY (1) MY121756A (ko)
SG (1) SG71848A1 (ko)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6786417B1 (en) * 1997-06-04 2004-09-07 Sony Corporation Memory card with write protection switch
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
US6601140B1 (en) * 1999-04-07 2003-07-29 Sony Corporation Memory unit, data processing unit, and data processing method using memory unit type
US6704865B1 (en) * 1999-12-23 2004-03-09 Delphi Technologies, Inc. Microprocessor conditional deterministic reset vector method
JP3838840B2 (ja) * 2000-01-06 2006-10-25 Necエレクトロニクス株式会社 コンピュータ
JP2001209543A (ja) * 2000-01-28 2001-08-03 Nec Ic Microcomput Syst Ltd フラッシュ・マイコンにおけるプログラム書き換え方法
JP2001306543A (ja) * 2000-04-19 2001-11-02 Nec Corp マイクロコンピュータ及びフラッシュメモリのデータ書換え方法
JP3627915B2 (ja) * 2000-05-30 2005-03-09 シャープ株式会社 ブートブロックフラッシュメモリ制御回路、およびそれを備えたicメモリカードと半導体記憶装置、並びにブートブロックフラッシュメモリの消去方法
JP2002091494A (ja) * 2000-09-13 2002-03-27 Tdk Corp ディジタル式記録再生装置
US6859876B2 (en) * 2000-12-29 2005-02-22 Hewlett-Packard Development Company, L.P. System and method for detecting and using a replacement boot block during initialization by an original boot block
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP4731020B2 (ja) * 2001-01-24 2011-07-20 富士通セミコンダクター株式会社 半導体記憶装置、セクタアドレス変換回路、アドレス変換方法及び半導体記憶装置の使用方法
US6768645B2 (en) * 2001-01-26 2004-07-27 Sony Corporation IC card and IC-card adaptor
KR100921851B1 (ko) * 2001-06-28 2009-10-13 소니 가부시끼 가이샤 전자 장치, 정보 처리 장치, 어댑터 장치 및 정보 교환시스템
CN1122281C (zh) * 2001-06-30 2003-09-24 深圳市朗科科技有限公司 一种多功能半导体存储装置
TW539946B (en) * 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
TW516000B (en) * 2001-09-12 2003-01-01 Winbond Electronics Corp Method for security protection of digital processing device and apparatus thereof
US20030109252A1 (en) * 2001-12-10 2003-06-12 Koninklijke Philips Electronics N.V. System and method of codec employment in a cellular telephone
US7562208B1 (en) * 2002-02-07 2009-07-14 Network Appliance, Inc. Method and system to quarantine system software and configuration
EP1372068A3 (en) * 2002-06-11 2006-02-08 Seiko Epson Corporation System, method and program for rewriting a flash memory
CN1300707C (zh) * 2002-07-23 2007-02-14 华为技术有限公司 外部sdram读写处理方法
DE10319778A1 (de) * 2002-12-30 2004-07-15 Databay Ag Tragbare Speicherkarte mit einer Schnittstelle, System aus Datenverarbeitungsgerät und entsprechender Speicherkarte sowie Verfahren zum Betrieb eines derartigen Systems
TW200428284A (en) * 2003-06-03 2004-12-16 Hon Hai Prec Ind Co Ltd System and method for bootstrap with backup boot-code in single flash ROM
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
US7594135B2 (en) * 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation
US7197634B2 (en) * 2004-01-16 2007-03-27 Dell Products L.P. System and method for updating device firmware
JP4534498B2 (ja) * 2004-01-28 2010-09-01 ソニー株式会社 半導体装置およびその起動処理方法
JP2005275907A (ja) 2004-03-25 2005-10-06 Toshiba Corp 電子機器および同機器の記憶媒体ユニット制御方法
EP1607865B1 (en) 2004-06-14 2013-08-14 Micron Technology, Inc. Data control unit capable of correcting boot errors, and corresponding method
KR100684876B1 (ko) * 2005-01-03 2007-02-20 삼성전자주식회사 독출 시간을 단축시킬 수 있는 플래시 메모리 장치 및 방법
KR100698655B1 (ko) 2005-01-04 2007-03-23 주식회사 팬택앤큐리텔 이동통신 단말기의 파일 업데이트 시스템과, efs 영역헤더 손실로 인한 치명적인 에러를 방지하는 이동통신단말기의 부팅 관리 시스템과, 이동통신 단말기의 파일업데이트 방법 및 efs 영역 헤더 손실로 인한 치명적인에러를 방지하는 이동통신 단말기의 부팅 방법
JP4245585B2 (ja) 2005-06-13 2009-03-25 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
TWI267861B (en) * 2005-09-06 2006-12-01 Alcor Micro Corp Method and device for loading configuration values of nonvolatile memory
CN1937083B (zh) * 2005-09-23 2010-05-05 安国国际科技股份有限公司 非挥发性存储器设定值加载方法与其存储器装置
JP4999325B2 (ja) * 2005-12-21 2012-08-15 ルネサスエレクトロニクス株式会社 フラッシュメモリ
US7831854B2 (en) * 2006-03-21 2010-11-09 Mediatek, Inc. Embedded system for compensating setup time violation and method thereof
US20080040544A1 (en) * 2006-08-08 2008-02-14 Jason Caulkins Computer System For Reading And Writing Data
US8086791B2 (en) * 2006-08-08 2011-12-27 Dataram, Inc. Solid state memory device with PCI controller
JP4791286B2 (ja) * 2006-08-09 2011-10-12 富士通株式会社 ディスク装置および電子装置
JP4883570B2 (ja) * 2006-09-27 2012-02-22 ルネサスエレクトロニクス株式会社 半導体記憶装置、不揮発性半導体記憶装置、及びそれらの動作方法
KR100881669B1 (ko) * 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
US8351290B1 (en) 2008-09-12 2013-01-08 Marvell International Ltd. Erased page detection
US8151101B2 (en) * 2008-11-06 2012-04-03 Lenovo (Singapore) Pte. Ltd. Method, apparatus, and system for quiescing a boot environment
CN101710253B (zh) * 2009-11-25 2012-06-13 安凯(广州)微电子技术有限公司 嵌入式系统的深度休眠方法
JP5707695B2 (ja) * 2009-12-08 2015-04-30 沖電気工業株式会社 フラッシュディスク装置
JP5728982B2 (ja) * 2010-02-26 2015-06-03 株式会社Jvcケンウッド 処理装置および書込方法
TWI449414B (zh) 2010-12-29 2014-08-11 Altek Corp 影像擷取裝置及其開機方法
EP3338180B1 (en) * 2015-08-20 2024-05-08 Micron Technology, Inc. Solid state storage device with quick boot from nand media
US11288181B2 (en) * 2019-03-07 2022-03-29 Silicon Motion, Inc. Flash memory initialization scheme for writing boot up information into selected pages averagely and randomly distributed over more pages and correspondingly method for reading boot up information from selected pages

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764795A (ja) * 1993-08-30 1995-03-10 Toshiba Corp コンピュータシステム
EP0723226A1 (en) * 1995-01-18 1996-07-24 Hewlett-Packard Company Powerfail durable flash EEPROM upgrade
JPH08328845A (ja) * 1995-06-02 1996-12-13 Hioki Ee Corp Romの制御プログラム書替え方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2776929B2 (ja) 1989-03-29 1998-07-16 株式会社日立製作所 カードデータ処理システム及びカードデータの処理方法
IT1254937B (it) * 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
US5410703A (en) 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
EP0596198B1 (en) 1992-07-10 2000-03-29 Sony Corporation Flash eprom with erase verification and address scrambling architecture
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US5522076A (en) * 1993-05-13 1996-05-28 Kabushiki Kaisha Toshiba Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function
JP3011035B2 (ja) * 1994-12-08 2000-02-21 株式会社日立製作所 計算機システム
GB2295908A (en) 1994-12-09 1996-06-12 Plessey Telecomm Updating EPROMs
DE19501707C1 (de) * 1995-01-20 1996-06-05 Texas Instruments Deutschland Elektrisches Bauelement und Verfahren zum Abgleichen der inneren Laufzeit eines solchen elektrischen Bauelements
JP3583829B2 (ja) 1995-04-13 2004-11-04 株式会社日立製作所 外部記憶サブシステムの制御方法および制御装置
KR100281869B1 (ko) * 1995-07-28 2001-02-15 윤종용 보안 기능을 갖는 개인용 컴퓨터, 그의 보안 방법 및 그 보안 장치의 설치 및 제거방법
US5701492A (en) * 1996-03-29 1997-12-23 Canon Kabushiki Kaisha Fail-safe flashing of EPROM
US5822582A (en) * 1996-07-19 1998-10-13 Compaq Computer Corporation Boot drive selection and hibernation file detection
US6282675B1 (en) * 1997-08-06 2001-08-28 Macronix International Co., Ltd. Fault-tolerant architecture for in-circuit programming
US6560701B1 (en) * 1997-02-10 2003-05-06 International Business Machines Corporation Alternate boot record
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
JP3884839B2 (ja) * 1997-10-17 2007-02-21 株式会社ルネサステクノロジ 半導体記憶装置
US6275931B1 (en) * 1998-06-22 2001-08-14 Elsag International N.V. Method and apparatus for upgrading firmware boot and main codes in a programmable memory
US6205548B1 (en) * 1998-07-31 2001-03-20 Intel Corporation Methods and apparatus for updating a nonvolatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764795A (ja) * 1993-08-30 1995-03-10 Toshiba Corp コンピュータシステム
EP0723226A1 (en) * 1995-01-18 1996-07-24 Hewlett-Packard Company Powerfail durable flash EEPROM upgrade
JPH08255084A (ja) * 1995-01-18 1996-10-01 Hewlett Packard Co <Hp> Eepromのアップグレード方法
JPH08328845A (ja) * 1995-06-02 1996-12-13 Hioki Ee Corp Romの制御プログラム書替え方法

Also Published As

Publication number Publication date
DE69809527D1 (de) 2003-01-02
SG71848A1 (en) 2000-04-18
AU8713898A (en) 1999-04-22
CN1229724C (zh) 2005-11-30
JPH11110141A (ja) 1999-04-23
CN1220424A (zh) 1999-06-23
MY121756A (en) 2006-02-28
US6330634B1 (en) 2001-12-11
AU753121B2 (en) 2002-10-10
EP0910020B1 (en) 2002-11-20
DE69809527T2 (de) 2003-10-02
JP2914360B2 (ja) 1999-06-28
KR19990030334A (ko) 1999-04-26
US6981136B2 (en) 2005-12-27
EP0910020A1 (en) 1999-04-21
US20040093487A1 (en) 2004-05-13

Similar Documents

Publication Publication Date Title
KR100642529B1 (ko) 외부기억장치및데이터처리방법
JP3233079B2 (ja) データ処理システム及びデータ処理方法
JP3912355B2 (ja) データ管理装置、データ管理方法、不揮発性メモリ、不揮発性メモリを有する記憶装置及びデータ処理システム
US6098077A (en) Data management apparatus, data management method, and recording medium
KR100527610B1 (ko) 저장장치,데이터처리시스템및데이터기록및판독방법
JP3364356B2 (ja) メモリ書替え装置
US6883060B1 (en) Microcomputer provided with flash memory and method of storing program into flash memory
US20110029726A1 (en) Data updating method, memory system and memory device
KR20000006562A (ko) 데이타기억장치및데이타처리시스템및방법
JP3070539B2 (ja) 外部記憶装置、データ処理装置及びデータ処理方法
JP2910745B2 (ja) 記憶装置及びデータ処理方法
JP3640154B2 (ja) 不揮発性メモリ、不揮発性メモリの管理方法、不揮発性メモリを有する記憶装置、不揮発性メモリを管理するデータ管理装置及びデータ処理システム
JP3620478B2 (ja) 記憶装置、この記憶装置を用いたデータ処理システム及びデータ読み出し方法
JP3319361B2 (ja) 記憶装置、データ処理装置及びデータ処理方法
JP2001043143A (ja) 記憶装置、データ処理システム並びにデータの書き込み及び読み出し方法
JPH07168769A (ja) 不揮発性メモリに対するデータ更新方法

Legal Events

Date Code Title Description
AMND Amendment
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121022

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131018

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee