KR20110088566A - 메모리 장치 및 그 제어 방법 - Google Patents

메모리 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20110088566A
KR20110088566A KR1020117013369A KR20117013369A KR20110088566A KR 20110088566 A KR20110088566 A KR 20110088566A KR 1020117013369 A KR1020117013369 A KR 1020117013369A KR 20117013369 A KR20117013369 A KR 20117013369A KR 20110088566 A KR20110088566 A KR 20110088566A
Authority
KR
South Korea
Prior art keywords
data
memory
write
memory card
writing
Prior art date
Application number
KR1020117013369A
Other languages
English (en)
Other versions
KR101409095B1 (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 KR20110088566A publication Critical patent/KR20110088566A/ko
Application granted granted Critical
Publication of KR101409095B1 publication Critical patent/KR101409095B1/ko

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

메모리 장치는 메모리 영역들을 갖는 메모리 및 제1 모드 및 제2 모드를 갖는 컨트롤러를 포함한다. 기입 데이터의 수신 시, 컨트롤러는 기입 데이터의 논리 어드레스들과 해당 기입 데이터를 기억하는 메모리 영역들 간의 대응을 관리하면서 데이터를 상기 메모리 영역들에 기입한다. 복수의 메모리 영역은 하나의 관리 단위를 구성한다. 상기 제1 모드에서의 컨트롤러는, 데이터 조각들(pieces of data)을 각각의 메모리 영역들에 기입할 수 있고, 갱신될 데이터를 포함하는 하나의 관리 단위의 하나 이상의 메모리 영역들 내의 데이터를 유지하도록 구성된다. 상기 제2 모드에서의 컨트롤러는, 상기 데이터 조각들을 각각의 메모리 영역들에 데이터 조각들의 논리 어드레스들의 오름차순으로 기입하도록 구성되고, 갱신된 데이터를 포함하는 하나의 관리 단위의 하나 이상의 메모리 영역들 내의 데이터를 무효로 한다.

Description

메모리 장치 및 그 제어 방법{MEMORY DEVICE AND CONTROLLING METHOD OF THE SAME}
본 발명은 메모리 장치 및 메모리 제어 방법, 특히 비휘발성 반도체 메모리를 이용하는 메모리 장치에 관한 것이다.
음악 데이터 또는 동영상 데이터를 기억하기 위한 매체(media)로서 메모리 카드와 같은 메모리 장치가 이용된다. 이들 장치는 플래시 메모리와 같은 비휘발성 반도체 메모리를 사용한다. 메모리 장치는 통상적으로 메모리를 제어하기 위한 컨트롤러를 포함한다. 이러한 메모리 장치가 삽입되는 호스트(host)의 파일 시스템은 논리 어드레스를 데이터에 할당하고, 메모리 장치에 이 데이터를 기입(write)할 것을 요청한다. 컨트롤러는 플래시 메모리에게 미기입의 메모리 영역에 이 기입 데이터를 기억하도록 지시한다. 또한, 컨트롤러는, 파일 시스템에 의해 데이터에 할당된 논리 어드레스와 대응하는 데이터를 기억하고 있는 플래시 메모리의 메모리 영역 간의 관계를 관리한다.
메모리 장치에 사용되는 플래시 메모리의 대표적인 예로는 NAND형 플래시 메모리를 들 수 있다. NAND형 플래시 메모리에서는, 2 이상의 비트로 이루어지는 페이지라고 불리는 단위로 데이터가 기입된다. NAND형 플래시 메모리는 2 이상의 페이지로 이루어지는 블록이라고 불리는 단위로만 데이터를 소거할 수 있다.
사용자는 호스트 장치를 통해 메모리 장치의 성능을 알고자 할 수 있다. 이러한 성능으로는, 기록 속도, 기록에 필요한 시간, 기록 가능 시간 등이 있다. 이러한 성능을 예측하는 기술이 일본 공개특허공보 2006-178923호에 기재되어 있다. 이 기술은 이하의 원리를 이용한다.
상술한 바와 같이, NAND형 플래시 메모리는 블록 단위로만 데이터를 소거할 수 있다. 즉, NAND형 플래시 메모리는 데이터를 덮어쓸(overwrite) 수 없다. 메모리 내의 데이터를 갱신하기 위해서는, 새로운 블록이 준비되어야 하고, 갱신되지 않을 데이터는 새 블록에 복사되어야 하고, 갱신될 데이터는 새로운 블록에 기입되어야 한다. 이 때문에, 플래시 메모리의 데이터는 연속하는 미기입의 페이지에서는 빠르게 기입되고, 데이터를 기억하고 있는 페이지와 데이터가 없는 페이지들을 포함하는 블록에서는 느리게 기입된다. 즉, 데이터 기입 속도는, 블록 내의 기입된 페이지들의 분포(단편화(fragmentation))에 따라 달라진다. 이것을 이용하여, 각 블록의 기입 속도가 산출되고, 메모리 장치에 데이터를 기억시킬 호스트의 애플리케이션에 의해 요구되는 기입 속도를 충족시키는 블록의 수로부터 메모리 장치의 기록 가능 시간이 산출된다. 그러나, 단편화를 이용하는 이러한 기법은 성능의 산출이 복잡하여 실행에 장시간을 필요로 한다. 이 때문에, 보다 간편하게 성능 예측을 가능하게 하는 메모리 장치가 요구되고 있다.
또한, 메모리의 용량 증대, 메모리 장치의 성능 향상 및 사용자에 의해 기록 요청되는 콘텐츠의 다양화에 의해, 메모리 장치의 이용 형태가 다양화되고 있다. 예를 들면, 2개의 텔레비전 프로그램과 같은 2개의 동영상을 녹화하거나, 또는 동영상을 녹화하면서 정지 화상을 촬영하는 요구가 발생하고 있다. 그러나, 다수의 파일의 데이터를 메모리 장치에 동시에(in parallel) 기입하고자 하는 요구를 충족시키는 것은 불가능한데, 그 이유는, 데이터를 덮어쓰기를 할 수 없기 때문에 상술한 데이터 복사가 필요하며, 이것은 시간이 많이 걸려 데이터 복사를 수반하는 기입의 속도를 느리게 하기 때문이다.
본 발명의 일 양태에 따르면, 메모리 영역들을 갖는 메모리; 및 기입 데이터의 수신 시, 기입 데이터의 논리 어드레스들과 해당 기입 데이터를 기억하는 메모리 영역들 간의 대응을 관리하면서 데이터를 상기 메모리 영역들에 기입하도록 구성되고, 제1 모드 및 제2 모드를 갖는 컨트롤러를 포함하는 메모리 장치가 제공되고, 복수의 상기 메모리 영역은 하나의 관리 단위를 구성하고, 상기 제1 모드에서의 컨트롤러는, 데이터 조각들(pieces of data)을 각각의 메모리 영역들에 기입할 수 있고, 갱신될 데이터를 포함하는 하나의 관리 단위의 하나 이상의 메모리 영역들 내의 데이터를 유지하도록 구성되고, 상기 제2 모드에서의 컨트롤러는, 각각의 메모리 영역들에 데이터 조각들의 논리 어드레스들의 오름차순으로 상기 데이터 조각들을 기입하도록 구성되고, 갱신된 데이터를 포함하는 하나의 관리 단위의 하나 이상의 메모리 영역들 내의 데이터를 무효로 하도록 구성되어 있다.
본 발명의 또 다른 양태에 따르면, 메모리 영역들을 갖는 메모리; 및 기입 데이터의 수신 시, 상기 기입 데이터의 논리 어드레스들과 해당 기입 데이터를 기억하는 메모리 영역들 간의 대응을 관리하면서 데이터를 상기 메모리 영역들에 기입하도록 구성되고, 연속하는 논리 어드레스들로 이루어지는 논리 어드레스 그룹을 인식하도록 구성되고, 제1 커맨드의 수신 시, 실시간 기입 가능 모드로 이행하도록 구성된 컨트롤러를 포함하는 메모리 장치가 제공되고, 상기 실시간 기입 가능 모드의 컨트롤러는, 데이터 기입 지시의 수신 시, 상기 기입 데이터의 논리 어드레스를 포함하는 논리 어드레스 그룹을 위해 일시적으로 준비된 작업 영역에, 상기 기입 데이터 조각들의 논리 어드레스들의 오름차순으로 데이터를 기입하고, 상기 작업 영역의 마지막 메모리 영역으로의 데이터 기입을 완료한 후 상기 작업 영역에 논리 어드레스를 할당한다.
본 발명의 또 다른 양태에 따르면, 메모리 영역들을 포함하는 메모리 장치를 제어하는 방법이 제공되며, 이 방법은, 기입 데이터의 수신 시, 상기 기입 데이터의 논리 어드레스들과 해당 기입 데이터를 기억하는 메모리 영역들 간의 대응을 관리하면서 상기 메모리 영역들에 데이터를 기입하는 단계; 제1 모드에서, 데이터 조각들(pieces of data)을 각각의 메모리 영역들에 기입하고, 갱신될 데이터를 포함하는 하나의 관리 단위의 하나 이상의 메모리 영역들 내의 데이터를 유지하는 단계 -복수의 상기 메모리 영역은 하나의 관리 단위를 구성함-; 및 제2 모드에서, 각각의 메모리 영역들에 데이터 조각들의 논리 어드레스들의 오름차순으로 상기 데이터 조각들을 기입하고, 갱신된 데이터를 포함하는 하나의 관리 단위의 하나 이상의 메모리 영역들 내의 데이터를 무효로 하는 단계를 포함한다.
본 발명에 따르면, 기입 시간을 쉽게 산출할 수 있는 메모리 장치를 제공할 수 있다.
도 1은 제1 실시 형태에 따른 메모리 카드의 주요 기능 블록을, 호스트 장치의 기능 블록과 함께 도시한 도면.
도 2는 레지스터를 상세하게 도시한 도면.
도 3은 메모리 공간의 구성을 도시한 도면.
도 4는 호스트가 인식하고 있는 기억 영역과 메모리 카드의 기억 영역을 도시한 도면.
도 5는 제1 실시 형태의 메모리 카드가 취할 수 있는 모드의 천이를 도시한 도면.
도 6은 제1 실시 형태의 제1 예의 기입 동안의 메모리 카드의 상태를 도시한 도면.
도 7은 도 6에 이어지는 상태를 도시하는 도면.
도 8은 도 7에 이어지는 상태를 도시하는 도면.
도 9는 도 8에 이어지는 상태를 도시하는 도면.
도 10은 제1 실시 형태의 메모리 카드가 수신하는 커맨드 및 데이터의 제1 예를 도시한 도면.
도 11은 제1 실시 형태의 제1 예의 기입 동안의 메모리 카드의 상태를 도시한 도면.
도 12는 도 11에 이어지는 상태를 도시하는 도면.
도 13은 도 12에 이어지는 상태를 도시하는 도면.
도 14는 도 13에 이어지는 상태를 도시하는 도면.
도 15는 도 14에 이어지는 상태를 도시하는 도면.
도 16은 제1 실시 형태의 메모리 카드가 수신하는 커맨드 및 데이터의 제2 예를 도시한 도면.
도 17은 제1 실시 형태의 제2 예의 기입 동안의 메모리 카드의 상태를 도시한 도면.
도 18은 도 17에 이어지는 상태를 도시하는 도면.
도 19는 도 18에 이어지는 상태를 도시하는 도면.
도 20은 도 19에 이어지는 상태를 도시하는 도면.
도 21은 도 20에 이어지는 상태를 도시하는 도면.
도 22는 제1 실시 형태의 메모리 카드가 수신하는 커맨드 및 데이터의 제3 예를 도시한 도면.
도 23은 제1 실시 형태의 제3 예의 기입 동안의 메모리 카드의 상태를 도시한 도면.
도 24는 도 23에 이어지는 상태를 도시하는 도면.
도 25는 도 24에 이어지는 상태를 도시하는 도면.
도 26은 도 25에 이어지는 상태를 도시하는 도면.
도 27은 도 26에 이어지는 상태를 도시하는 도면.
도 28은 제2 실시 형태의 메모리 카드가 수신하는 커맨드 및 데이터의 제1 예를 도시한 도면.
도 29는 제2 실시 형태의 제1 예의 기입 동안의 메모리 카드의 상태를 도시한 도면.
도 30은 도 29에 이어지는 상태를 도시하는 도면.
도 31은 도 30에 이어지는 상태를 도시하는 도면.
도 32는 도 31에 이어지는 상태를 도시하는 도면.
도 33은 도 32에 이어지는 상태를 도시하는 도면.
도 34는 제2 실시 형태의 메모리 카드가 수신하는 커맨드 및 데이터의 제2 예를 도시한 도면.
도 35는 제2 실시 형태의 제2 예의 기입 동안의 메모리 카드의 상태를 도시한 도면.
도 36은 도 35에 이어지는 상태를 도시하는 도면.
도 37은 도 36에 이어지는 상태를 도시하는 도면.
도 38는 도 37에 이어지는 상태를 도시하는 도면.
도 39는 도 38에 이어지는 상태를 도시하는 도면.
도 40은 제2 실시 형태의 메모리 카드가 수신하는 커맨드 및 데이터의 제3 예를 도시한 도면.
도 41은 제2 실시 형태의 제3 예의 기입 동안의 메모리 카드의 상태를 도시한 도면.
도 42는 도 41에 이어지는 상태를 도시하는 도면.
도 43은 도 42에 이어지는 상태를 도시하는 도면.
도 44는 도 43에 이어지는 상태를 도시하는 도면.
도 45는 도 44에 이어지는 상태를 도시하는 도면.
도 46은 도 45에 이어지는 상태를 도시하는 도면.
도 47은 도 46에 이어지는 상태를 도시하는 도면.
이하에 본 발명의 실시형태에 대해서 도면을 참조해서 설명한다. 이하의 설명에 있어서, 동일한 구성요소는 전 도면에 걸쳐 동일한 참조 부호로 표시되고, 중복 설명은 필요할 경우에만 행한다. 도면은 단지 예시적임을 유의한다.
이하에서는, 본 발명의 실시 형태에 따른 메모리 장치에 대해, 메모리 카드, 특히 SD 카드를 일례로 하여 설명한다. 그러나, 본 명세서에서 설명되는 메모리 및 이 메모리를 제어하는 컨트롤러를 갖는 모든 메모리 장치가 본 발명의 범위 내에 포함된다.
(제1 실시 형태)
[1] 구성
본 발명의 제1 실시 형태에 따른 메모리 카드의 구성에 관하여 도 1 내지 도 4를 참조하여 설명한다. 도 1은, 제1 실시 형태에 따른 메모리 카드의 주요 기능 블록을 도시하고 있다. 도 1은 또한 이 메모리 카드에 접속된 호스트 장치의 기능 블록도 도시하고 있다. 각 기능 블록은, 하드웨어, 컴퓨터 소프트웨어 또는 이 둘의 조합으로 구현될 수 있다. 하드웨어와 소프트웨어의 교체가능성(interchangeability)을 명확하게 예시하기 위해, 일반적으로 그 기능성의 관점에서 설명한다. 이러한 기능성이 하드웨어로서 구현될지 또는 소프트웨어로서 구현될지는 구체적인 적용 및 시스템 전체에 부과되는 설계 제약에 의존한다. 당업자는 구체적인 적용마다 각종 방법으로 기술된 기능성을 구현할 수 있지만, 모든 변형이 본 발명의 범위 내에 포함되어야 한다.
호스트 장치(이하, 호스트라 칭함)(1)는 애플리케이션 및/또는 운영 체제와 같은 소프트웨어(11)를 갖는다. 소프트웨어(11)는 사용자로부터 메모리 카드(2)에 데이터를 기입하고 메모리 카드(2)로부터 데이터를 판독하라는 지시를 받는다. 소프트웨어(11)는 데이터 기입/판독을 파일 시스템(12)에 지시한다. 파일 시스템(12)은, 기억 매체에 기억되어 있는 파일 데이터를 관리하기 위한 메커니즘이며, 기억 매체의 메모리 영역 내에 관리 정보(management information)를 기록하고, 이 관리 정보를 이용하여 파일 데이터를 관리한다.
호스트(1)는 SD 인터페이스(13)를 갖는다. SD 인터페이스(13)는 호스트(1)가 메모리 카드(2)와 인터페이스할 수 있게 하는 하드웨어 및 소프트웨어로 구성된다. 호스트(1)는 SD 인터페이스(13)를 통해 메모리 카드(2)와 통신한다. SD 인터페이스(13)는 호스트(1)와 메모리 카드(2) 간의 통신을 위한 각종 협약을 규정한다. SD 인터페이스(13)와 메모리 카드(2)(후술됨)의 SD 인터페이스(31)는 이 두 인터페이스에 의해 인식가능한 각종 커맨드를 제공한다. SD 인터페이스(13)는 또한 SD 인터페이스(31)에 접속될 수 있는 하드웨어 구성(예를 들면, 핀의 배치, 핀의 개수 등)을 포함한다.
메모리 카드(2)는 NAND형 플래시 메모리(21)와 이 메모리(21)를 제어하기 위한 컨트롤러(22)를 갖는다. 메모리 카드(2)는 호스트(1)에 접속되었을 때에 또는 메모리 카드(2)가 삽입된 채 호스트(1)가 온(on) 되었을 때에 전원 공급을 받기 시작하고, 초기화를 행한 후, 호스트(1)로부터의 액세스에 따른 처리를 행한다.
메모리(21)는 데이터를 비휘발성으로 기억하고, 다수의 메모리 셀로 이루어지는 페이지라는 단위로 데이터를 기입하고 판독한다. 페이지는 각 페이지에 고유한 물리 어드레스를 갖는다. 메모리(21)는 다수의 페이지로 이루어지는 물리 블록(소거 블록)이라고 불리는 단위로 데이터를 소거한다. 물리 어드레스는 물리 블록에 할당될 수 있다.
컨트롤러(22)는 메모리(21)에서의 데이터 기억 상태를 관리한다. 기억 상태의 관리는 페이지의 물리 어드레스(또는 물리 블록)와 그 페이지에 기억되어 있는 데이터의 논리 어드레스 간의 관리, 및 어느 페이지(또는 물리 블록)에 데이터가 없는지 또는 어느 페이지(또는 물리 블록)가 무효 데이터(invalid data)를 포함하고 있는지에 대한 관리를 포함한다.
컨트롤러(22)는 SD 인터페이스(31), MPU(micro processing unit)(32), ROM(read only memory)(33), RAM(random access memory)(34), 및 NAND 인터페이스(35)를 포함한다. SD 인터페이스(31)는 호스트(1)와 컨트롤러(22)가 인터페이스할 수 있게 하는 하드웨어 및 소프트웨어로 구성되어 있다.
SD 인터페이스(31)는 SD 인터페이스(13)와 마찬가지로, SD 인터페이스(13)와의 통신을 가능하게 하는 협약을 규정하고, 각종 커맨드를 포함하고, 하드웨어 구성(예를 들면, 핀의 배치, 핀의 개수 등)을 포함한다. 메모리 카드(2)(컨트롤러(22))는 SD 인터페이스(31)를 통해 호스트(1)와 통신한다. SD 인터페이스(31)는 레지스터(36)를 포함한다.
MPU(32)는 메모리 카드(2) 전체의 동작을 관리한다. MPU(32)는, 예를 들면 메모리 카드(2)가 전원 공급을 받기 시작했을 때에, ROM(33)에 기억되어 있는 펌웨어(제어 프로그램)을 RAM(34) 상으로 판독하여 소정의 처리를 행한다. MPU(32)는 제어 프로그램에 따라 각종 테이블(후술됨)을 RAM(34) 상에 작성하고, 호스트(1)로부터 받은 커맨드에 따라 메모리(21)에 대한 소정의 처리를 행한다.
ROM(33)은 MPU(32)의 제어 프로그램 등을 기억하고 있다. RAM(34)은 MPU(32)의 작업 영역으로서 사용되며, 제어 프로그램 및 각종 테이블을 일시적으로 기억한다. 이러한 테이블로는, 파일 시스템(12)에 의해 논리 어드레스가 할당된 데이터를 기억하는 페이지의 물리 어드레스의 변환 테이블(논리/물리 테이블)이 있다. NAND 인터페이스(35)는 컨트롤러(22)와 메모리(21)가 인터페이스할 수 있게 한다.
메모리(21) 내의 메모리 영역은, 예를 들어, 기억되는 데이터의 유형에 따라 정의된, 시스템 데이터 영역, 기밀 데이터(security data) 영역, 보호 데이터 영역, 사용자 데이터 영역 등을 포함하고 있다. 시스템 데이터 영역은 컨트롤러(22)가 그 동작에 필요한 데이터를 기억하기 위해 확보된다. 기밀 데이터 영역은 암호화를 위한 키 정보 및 인증을 위한 기밀 데이터를 기억하고 있으며, 호스트(1)로부터 액세스할 수 없다. 보호 데이터 영역은, 중요한 데이터 및 안전한 데이터(secure data)를 기억하고 있다. 사용자 데이터 영역은 호스트(1)에 의해 액세스될 수 있고 사용될 수 있으며, 예를 들면, AV 콘텐츠 파일 및 화상 데이터 등의 사용자 데이터를 기억하고 있다. 메모리(21)의 메모리 공간을 지칭하도록 "메모리(21)"라는 기술(description)이 이용되는 경우, 이것은 사용자 데이터 영역을 지칭한다. 컨트롤러(22)는 사용자 데이터 영역의 일부를 확보하고, 자신의 동작에 필요한 제어 데이터(예를 들어, 논리/물리 테이블)을 기억시킨다.
레지스터(36)는 도 2에 예시하는 바와 같이, 카드 상태 레지스터, CID, RCA, DSR, CSD, SCR 및 OCR과 같은 각종 레지스터를 갖는다. 이 레지스터들은, 오류 정보, 메모리 카드(2)의 개체 번호(individual number), 상대 카드 어드레스(relative card address), 메모리 카드(2)의 버스 구동력, 메모리 카드(2)의 특성 파라미터 값, 데이터 배치 및 메모리 카드(2)의 동작 전압 범위에 의해 규정되는 동작 전압 등을 기억한다.
레지스터(36)(예를 들면, CSD)는 메모리 카드(2)의 클래스, 데이터의 복사에 필요한 하는 시간 및 AU 크기 등을 기억한다. 클래스는, 그 클래스에 속하는 메모리 카드에 의해 보증되는 최저 기입 속도에 의해 규정된다. 최고 기입 속도는 클래스에 의해 결정된다. 그러므로, 호스트(1)는 AU 크기를 나타내는 데이터를 레지스터(36)로부터 판독하여 이 정보를 메모리 카드(2)의 관리에 이용할 수 있고, 또한 클래스를 나타내는 데이터를 레지스터(36)로부터 판독하여 메모리 카드(2)의 최대 기입 성능을 알 수 있다. 또한, CSD는 일본 공개특허공보 2006-178923호에 기재된 성능 정보와 같은 성능 정보를 또한 기억할 수 있다.
도 3은 메모리(21)의 메모리 공간의 구성을 나타내고 있다. 도 3에 나타낸 바와 같이, 메모리(21)는 일반적인 메모리 영역(41)과 페이지 버퍼(42)를 갖는다. 메모리 영역(41)은 다수의 물리 블록 BLK를 포함한다. 각 물리 블록 BLK는 다수의 페이지 PG로 이루어져 있다. 각 페이지 PG는 직렬 접속된 메모리 셀 트랜지스터를 포함하고 있다.
각 메모리 셀은 소위 적층 게이트 구조의 MOSFET(metal oxide semiconductor field effect transistor)로 이루어진다. 각 메모리 셀 트랜지스터는 부유 게이트 전극에 캡쳐(capture)되어 있는 전자의 수에 따라 변화하는 임계 전압에 따라 정보를 기억한다. 메모리(21)는, 메모리 셀 트랜지스터가 3개 이상의 상이한 임계 전압을 취할 수 있도록, 즉, 메모리 셀이 다치(다비트)를 기억할 수 있도록 구성될 수 있다.
동일한 행에 속하는 메모리 셀 트랜지스터의 제어 게이트 전극은 동일한 위드선에 접속된다. 동일한 열에 속하고 직렬 접속된 메모리 셀 트랜지스터의 체인의 양단에는 선택 게이트 트랜지스터가 제공된다. 선택 게이트 트랜지스터의 일단은 비트선에 접속된다. 데이터의 기입 및 판독은 직렬 접속된 메모리 셀 트랜지스터의 집합 단위로 행해진다. 이 메모리 셀 트랜지스터의 집합으로 이루어지는 메모리 영역이 1개의 페이지에 대응한다.
도 3의 예에서, 각 페이지 PG는 2112B를 가지며, 예를 들어, 각 블록(52)은 128 페이지로 이루어진다. 데이터는 블록 BLK 단위로 소거된다. 페이지 버퍼(34)는 메모리(21)에/메모리(21)로부터의 데이터 입/출력을 행하고, 데이터를 일시적으로 보유한다. 페이지 버퍼(42)가 보유할 수 있는 데이터 크기는, 예를 들면, 페이지 PG와 동일한 크기, 즉, 2112B(2048B+64B)이다.
도 4에 나타내고 상술한 바와 같이, 메모리(21)는 페이지 PG 단위로 데이터를 기입하거나 또는 데이터를 판독하고, 블록 BLK 단위로 데이터를 소거한다. 한편, 파일 시스템(12)은 RU(recording unit) 단위로 데이터를 관리한다. 즉, 파일 시스템(12)은, 소프트웨어(11)에 의해 기입 요청된 데이터를 RU의 크기에 따른 적합한 크기의 세그먼트들로 분할하고, 각 세그먼트에 논리 어드레스를 할당한다. RU는 1회의 멀티(multi) 블록 기입 커맨드로 기입되는 데이터에 상당한다. 파일 시스템(12)은, 고유의 논리 어드레스가 할당된 데이터를 기입 데이터로서, 기입 커맨드 후에 메모리 카드(2)에 공급한다. 컨트롤러(22)는 이 기입 데이터를 적합한 페이지에 기입한다. RU의 크기는 페이지의 용량의 크기의 정배수(integral multiple)이다. 따라서, 메모리 카드(2)는 RU 크기의 기입 데이터를 물리 어드레스가 연속하는 페이지들에 기입한다. 또한, RU는 파일 시스템에 의해 관리되는 고유의 논리 어드레스에 대응하므로, RU에 데이터를 할당한다고 하는 것은 데이터에 논리 어드레스를 할당하는 것을 의미함을 유의한다. 파일 시스템(12)은 테이블을 사용하여 데이터의 세그먼트들 간의 접속 관계를 관리하고, 이 접속 관계를 사용하여 세그먼트들을 접속시킴으로써 원래의 데이터를 복원한다. 또한 컨트롤러(22)는 변환 테이블(논리/물리 테이블)을 사용하여, 논리 어드레스와 이 논리 어드레스의 데이터를 기억하고 있는 페이지의 어드레스(물리 어드레스) 간의 대응을 관리한다.
파일 시스템(12)은 또한 소정의 범위에 속하는 소정의 수의 연속하는 RU로 이루어지는 AU(allocation unit)라고 하는 개념을 이용한다. 컨트롤러(22)는 데이터의 논리 어드레스의 상위 비트를 보고 AU의 경계를 인식할 수 있다. AU 크기는 블록(물리 블록) 용량의 정배수이다. 이렇게, RU 크기는 몇 개의 페이지의 크기에 일치하고, AU는 몇 개의 블록의 크기에 일치한다. 이 때문에, 이하의 설명에서는 메모리 카드(2)에서의 데이터의 판독/기입의 단위로서 각각 사용되는 RU 및 AU를 사용하여 설명할 것이다. 즉, 메모리 카드(2)에서 사용되는 "RU"는 RU와 동일한 크기의 연속하는 몇 개의 페이지를 의미하고, 메모리 카드(2)에서 사용되는 "AU"는 AU와 동일한 크기의 연속하는 몇 개의 블록을 의미한다. 구체적으로는, 파일 시스템(12)이 RU에 할당한 데이터는 메모리 카드(2)의 RU에 기억되고, 메모리 카드(2)는 파일 시스템(12)에 의해 데이터에 할당된 RU(논리 어드레스) 및 이 기입 데이터를 기억하고 있는 메모리(21) 내의 RU를 테이블로 관리하고 있다.
[2] 동작
[2-1] 제1 예
이제, 우선 도 5 내지 도 14를 참조하여, 메모리 카드(2)의 동작의 일부에 대해 설명한다. 도 5는 제1 실시 형태에 따른 메모리 카드가 취할 수 있는 모드의 천이를 나타내는 도면이다. 도 5에 나타낸 바와 같이, 메모리 카드(2)는 랜덤 기입 모드와 순차 기입 모드를 갖는다. 컨트롤러(22)는 이 2개의 모드 중 현재의 모드에 따라 동작한다. 메모리 카드(2)는 호스트(1)로부터 전원 공급이 시작되었을 때에는 랜덤 기입 모드에 있다. 랜덤 기입 모드의 메모리 카드(2)는, 순차 기입 개시 커맨드를 받거나 또는 기입 데이터의 비연속 논리 어드레스를 검출함으로써 순차 기입 지시를 검출하면, 순차 기입 모드로 이행한다. 한편, 순차 기입 모드의 메모리 카드(2)는 순차 기입 종료 커맨드를 받으면 랜덤 기입 모드로 이행한다. SD 인터페이스(31)는 순차 기입 개시 커맨드 및 순차 기입 종료 커맨드를 인식하도록 구성되어 있다.
이제 도 6 내지 도 9를 참조하여 랜덤 기입 모드에 관하여 설명한다. 도 6 내지 도 9는 랜덤 기입 모드에서의 기입 동안의 일 상태를 순차적으로 예시하고 있다. 도 6 내지 도 9 내의 작업(work) AU를 제외한 AU는 파일 시스템(12)이 인식하는 AU를 표현하고 있고, 또한 파일 시스템(12)이 인식하는 AU 내의 데이터를 기억하고 있는 메모리 카드(2)의 AU도 표현하고 있다.
우선, 메모리 카드(2) 내의 AU1에 속하는 제1 내지 제N RU는 데이터 1 내지 N을 기억하고 있다. 이 상태에서, 호스트(1)는 AU1의 제4 내지 제6 RU에 데이터 20 내지 데이터 22를 기입하기를 희망하고 있다. 그러나, 플래시 메모리(21)는 데이터를 덮어써서 직접적으로 이 갱신 지시를 수행할 수 없기 때문에 이하의 동작을 행한다. 우선, 도 7에 나타낸 바와 같이, 메모리 카드(2)(컨트롤러(22))는 임시 작업용의 AU(작업 AU)를 준비한다. 그리고 나서, 메모리 카드(2)는, 데이터가 갱신되지 않을 AU1 내의 제1 내지 제3의 RU와 동일한, 작업 AU 내의 RU들에 데이터 1 내지 데이터 3을 각각 복사한다.
도 8에 나타낸 바와 같이, 메모리 카드(2)는 데이터가 갱신될 AU1 내의 갱신된 제4 내지 제6 RU와 동일한, 작업 AU 내의 RU들에 데이터 20 내지 데이터 22를 기입한다.
도 9에 도시된 바와 같이, 메모리 카드(2)는, AU1의 데이터 7 내지 데이터 N을, 작업 AU내의 갱신되지 않은 제7 내지 제N RU와 동일한, 작업 AU내의 RU들에 각각 복사한다. 그 다음에, 메모리 카드(2)는 작업 AU1에 대해 클로즈 처리를 행한다. 클로즈 처리는 작업 AU를 AU1로서 설정하는 것을 지칭하는데, 즉, 작업 AU를, 파일 시스템(12)이 인식하고 있는 AU1 내의 데이터를 기억하고 있는 AU로서 설정하거나, 또는 논리/물리 테이블을 덮어쓰기 하는 것을 지칭한다. 동시에, 구 AU1은 파기된다. 바꾸어 말하면, 구 AU1은 무효 데이터를 갖는 AU로서 다루어지게 된다. 구 AU 내의 데이터는 소정의 타이밍에 소거되어 새로운 미기입 AU가 된다.
이제, 도 10 내지 도 14를 참조하여 순차 기입 모드에 대해 설명한다. 도 10은 순차 기입 모드 및 그 전후에서의, 호스트(1)와 메모리 카드(2) 간에 전송되는 커맨드 및 데이터의 제1 예를 도시하고 있다. 도 11 내지 도 14 각각은 순차 기입 모드에서의 제1 예의 기입 동안의 일 상태를 순차적으로 도시하고 있다. 도 11 내지 도 14 내의 작업 AU를 제외한 AU는 파일 시스템(12)이 인식하고 있는 AU를 표현하고 있고, 또한 파일 시스템(12)이 인식하는 AU 내의 데이터를 기억하고 있는 는 메모리 카드(2)의 AU도 표현하고 있다.
우선, 메모리 카드(2)는 랜덤 기입 모드에 있으며, 도 11에 나타낸 바와 같이 AU1의 제1 내지 제8 RU는 각각 데이터 1 내지 데이터 8을 기억하고 있고, AU2의 제1 내지 제8 RU는 각각 데이터 9 내지 데이터 16을 기억하고 있다. 이 상태에서, 도 10에 나타낸 바와 같이, 호스트(1)가 메모리 카드(2)에 순차 기입 개시 커맨드를 공급한다. 이 커맨드를 받으면, 메모리 카드(2)는 순차 기입 모드로 이행한다.
도 11에 나타낸 바와 같이, 호스트(1)는 AU1의 제4 내지 제6 RU에 데이터 20 내지 데이터 22를 기입하기를 희망하고 있다. 즉, 호스트(1)는 제4 내지 제6 RU를 데이터 20 내지 데이터 22로 갱신하기를 희망하고 있다. 이 기입을 행하기 위해서, 도 10에 나타낸 바와 같이, 호스트(1)는 기입 커맨드 및 AU1의 제4 내지 제6 RU와 관련된 데이터 20 내지 22를 메모리 카드(2)에 공급한다. 이 기입 요구를 받으면, 도 11에 나타낸 바와 같이, 메모리 카드(2)는 AU1을 위한 작업 AU를 준비한다. 작업 AU는 미기입 RU로만 구성되어 있고, 이것은 메모리 카드(2)에 의해 내부용으로 일시적으로 사용된다. 순차 기입 모드에서는, 메모리 카드(2)는 기입 요구에 응하여 항상 미기입의 작업 AU를 준비하고 그 미기입의 작업 AU에 데이터를 기입한다. 이 단계에서는, 작업 AU에 대한 원래의 AU1이 여전히 유효하므로, 어떤 이유로 기입 오류가 발생하더라도, 기입 전의 상태를 복원할 수 있다.
순차 기입 모드에서는, 갱신되지 않을 RU의 데이터는 작업 AU의 RU에 복사되지 않는다. 따라서, 도 12에 나타낸 바와 같이, 메모리 카드(2)는, 데이터 20 내지 데이터 22를 기억하도록 지시된 AU1 내의 제4 내지 제6 RU와 동일한, 작업 AU 내의 RU들에, 데이터 20 내지 데이터 22를 각각 기입한다.
도 12에 나타낸 바와 같이, 호스트(1)는 AU1의 제7 및 제8 RU의 데이터 7 및 데이터 8을 데이터 23 및 데이터 24로 갱신하고, AU2의 제1 내지 제3 RU의 데이터 9 내지 데이터 11을 데이터 25 내지 데이터 27로 갱신하기를 희망하고 있다. 이 갱신을 행하기 위해서, 도 10에 나타낸 바와 같이, 호스트(1)는 기입 커맨드, AU1의 제7 및 제8 RU와 관련된 데이터 23 및 데이터 24 및 AU2의 제1 내지 제3 RU와 관련된 데이터 25 내지 데이터 27을 메모리 카드(2)에 공급한다. 이 기입 요구를 받으면, 도 13에 나타낸 바와 같이, 메모리 카드(2)는 데이터 23 및 데이터 24를 기억하도록 지시된 AU1의 제7 및 제8 RU와 동일한, 작업 AU 내의 RU들에 데이터 23 및 데이터 24를 각각 기입한다. 이 시점에서, 작업 AU1의 마지막 RU에 데이터가 기입되어 있으므로, 도 14에 도시된 바와 같이, 메모리 카드(2)는 작업 AU에 대하여 클로즈 처리를 행한다. 그리고 나서, 메모리 카드(2)는 AU2을 위한 새로운 작업 AU를 준비한다.
도 15에 나타낸 바와 같이, 메모리 카드(2)는, 데이터 25 내지 데이터 27을 기억하도록 지시된 AU2 내의 제1 내지 제3 RU와 동일한, 작업 AU 내의 RU들에 데이터 25 내지 데이터 27을 각각 기입한다.
기입 요구가 완료되었으므로, 도 10에 나타낸 바와 같이, 호스트(1)는 순차 기입 종료 커맨드를 메모리 카드(2)에 공급한다. 이 커맨드를 받으면, 도 15에 나타낸 바와 같이, 메모리 카드(2)는 AU2의 제4 내지 제8 RU에 기억되어 있던 데이터 12 내지 데이터 16은 작업 AU에 복사하지 않고 작업 AU에 대하여 클로즈 처리를 행하고, 이어서, 랜덤 기입 모드로 이행한다. 순차 기입 종료 커맨드는 필요하지 않으며, 비순차 논리 어드레스를 갖는 기입 데이터가 순차 기입 모드가 종료될 수 있다.
[2-2] 제2 예
이제, 제1 예를 이용하여, 도 16 내지 도 21을 참조하여 다수 파일의 데이터를 동시에(in parallel) 기록하는 것에 대하여 설명한다. 도 16은 제1 실시 형태에 따른 메모리 카드가 수신하는 커맨드 및 데이터의 제2 예를 도시하고 있다. 도 17 내지 도 21은 메모리 카드(2)에서의 제2 예의 기입 동안의 일 상태를 순차적으로 도시하고 있다. 도 17 내지 도 21의 작업 AU를 제외한 AU는 파일 시스템(12)이 인식하고 있는 AU를 표현하고 있고, 또한 파일 시스템(12)이 인식하는 AU 내의 데이터를 기억하고 있는 메모리 카드(2)의 AU도 표현하고 있다. 제2 예는, 순차 기입 모드에서의 동작에만 관한 것으로서, 나머지 동작은 제1 예와 동일하다.
우선, 메모리 카드(2)는 랜덤 기입 모드에 있다. 도 16에 나타낸 바와 같이, 메모리 카드(2)는 호스트(1)로부터 순차 기입 개시 커맨드를 받으면 순차 기입 모드로 이행할 것이다.
도 17에 나타낸 바와 같이, 호스트(1)는 AU1의 제1 내지 제5 RU에 데이터 A1 내지 데이터 A5를 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는 도 16에 나타낸 바와 같이, 기입 커맨드, 계속해서 AU1의 제1 내지 제5 RU와 관련된 데이터 A1 내지 A5를 메모리 카드(2)에 공급한다.
상술한 바와 같이, 순차 기입 모드에서의 메모리 카드(2)는 기입 요구에 응하여 미기입의 작업 AU를 항상 준비하고, 상술한 바와 같이, 작업 AU에 데이터를 기입한다. 그러므로, 도 18에 나타낸 바와 같이, 메모리 카드(2)는, 데이터 A1 내지 A5를 기억하도록 지시된 AU1 내의 제1 내지 제5 RU와 동일한, 작업 AU1 내의 RU들에 데이터 A1 내지 A5를 각각 기입한다.
도 18에 나타낸 바와 같이, 호스트(1)는 AU2의 제1 내지 제3 RU에 데이터 B1 내지 B3을 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 16에 나타낸 바와 같이, 기입 커맨드, 그리고 AU2의 제1 내지 제3 RU와 관련된 데이터 B1 내지 B3을 메모리 카드(2)에 공급한다. 데이터 B1 내지 B3은 데이터 A1 내지 A3과 상이한 AU에 속하므로, 데이터 B1 내지 B3은 데이터 A1 내지 A3에 의해 구성되는 파일과 상이한 파일을 구성한다. 예로서, 데이터 B1 내지 B3은 동영상 데이터의 일부이며, 데이터 A1 내지 A5는 다른 동영상 데이터의 일부이다. 메모리 카드(2)(컨트롤러(22))는, 데이터 B1 내지 B3이 데이터 A1 내지 A5와 상이한 파일을 구성한다는 것을, AU들, 즉, 논리 어드레스의 상위 비트를 관찰함으로써 판단할 수 있다.
데이터 B1 내지 B3의 기입 요구를 받으면, 메모리 카드(2)는, 이전에 기입이 요구된 데이터 A1 내지 A5와는 상이한 파일을 구성할지를, 상술한 바와 같이 AU로부터 판단한다. 이 판단의 결과, 도 19에 나타낸 바와 같이, 메모리 카드(2)는 AU2을 위한 새로운 작업 AU2를 준비하고, 데이터 B1 내지 B3을 기억하도록 지시된 AU2 내의 제1 내지 제3 RU들과 동일한, 작업 AU2내의 RU들에 데이터 B1 내지 B3을 각각 기입한다.
또한, 도 19에 나타낸 바와 같이, 호스트(1)는 AU1의 제6 및 제7 RU에 데이터 A6 및 A7을 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 16에 나타낸 바와 같이, 기입 커맨드, 계속해서 AU1의 제6 및 제7 RU와 관련된 데이터 A6 및 A7을 메모리 카드(2)에 공급한다. 데이터 A6 및 A7은, 기입하도록 이전에 요청된 데이터 A1 내지 A5를 포함하는 AU1에 속해 있다. 이 때문에, 이 기입 요구를 받으면, 도 20에 나타낸 바와 같이, 메모리 카드(2)는, 데이터 A6 및 A7을 기억하도록 지시된 AU1의 제6 및 제7 RU들과 동일한, 작업 AU1 내의 RU들에 데이터 A6 및 A7을 각각 기입한다.
도 20에 나타낸 바와 같이, 호스트(1)는 AU2의 제4 내지 제6 RU에 데이터 B4내지 B6을 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 16에 나타낸 바와 같이, 기입 커맨드, 계속해서 AU2의 제4 내지 제6 RU와 관련된 데이터 B4 내지 B6을 메모리 카드(2)에 공급한다. 데이터 B4 내지 B6은 데이터 B1 내지 B3을 포함하는 AU2에 속해 있다. 그러므로, 도 20에 나타낸 바와 같이, 메모리 카드(2)는, 데이터 B4 내지 B6을 기억하도록 지시된 AU2 내의 제4 내지 제6 RU와 동일한, 작업 AU2 내의 RU들에 데이터 B4 내지 B6을 각각 기입한다.
기입 요구가 완료되었으므로, 도 16에 나타낸 바와 같이, 호스트(1)는 순차 기입 종료 커맨드를 메모리 카드(2)에 공급한다. 이 커맨드를 받으면, 도 21에 나타낸 바와 같이, 메모리 카드(2)는 모든 작업 AU에 대하여 클로즈 처리를 행하고, 이어서, 랜덤 기입 모드로 이행한다.
제2 예는 2개의 파일 데이터 그룹, 즉, 데이터 A1 내지 A7에 의한 파일과, 데이터 B1 내지 B6에 의한 또 다른 파일을 포함하는 2개의 스트림에 관해 도시하였음을 유의한다. 그러나, 본 명세서에서 설명한 원리에 따라 3개 이상의 스트림에 본 실시 형태를 적용할 수 있다. 얼마나 많은 데이터 스트림이 메모리 카드(2)에 의해 동시에 기입될 수 있는지는 메모리 카드(2)가 얼마나 많은 작업 AU를 준비할 수 있는지에 좌우된다. 동시에 준비되는 작업 AU의 개수는, 메모리 카드(2)의 기입 속도 및/또는 기억 용량 또는 사양에 따라 결정될 수 있다.
[2-3] 제3 예
요청 시 작업 AU를 클로즈하기 위한 기법에 대해서 도 22 내지 도 27을 참조하여 설명한다. 도 22는 제1 실시 형태의 메모리 카드가 수신하는 커맨드 및 데이터의 제3 예를 도시하고 있다. 도 23 내지 도 27은 메모리 카드(2)에서의 제3 예의 기입 동안의 일 상태를 순차적으로 도시하고 있다. 도 23 내지 도 27의 작업 AU를 제외한 AU는 파일 시스템(12)이 인식하고 있는 AU를 표현하고 있고, 또한 파일 시스템(12)이 인식하는 AU 내의 데이터를 기억하고 있는 메모리 카드(2)의 AU도 표현하고 있다. 제3 예는, 순차 기입 모드에서의 동작에만 관한 것으로서, 그 외의 동작은 제1 예와 동일하다.
우선, 메모리 카드(2)는 랜덤 기입 모드에 있다. 이 상태에서, 도 22에 나타낸 바와 같이, 메모리 카드(2)는 호스트(1)로부터 순차 기입 개시 커맨드를 받으면 순차 기입 모드로 이행한다.
도 23에 나타낸 바와 같이, 호스트(1)는 AU1의 제1 내지 제5 RU에 데이터 A1 내지 A5를 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 22에 나타낸 바와 같이, 기입 커맨드, 계속해서 AU1의 제1 내지 제5 RU와 관련된 데이터 A1 내지 A5를 메모리 카드(2)에 공급한다.
이 기입 요구를 받으면, 도 24에 나타낸 바와 같이, 메모리 카드(2)는 AU1을 위한 새로운 작업 AU1을 준비하고, 데이터 A1 내지 A5를 기억하도록 지시된 AU1 내의 제1 내지 제5 RU와 동일한, 작업 AU1 내의 RU들에 데이터 A1 내지 데이터 A5를 각각 기입한다.
도 24에 나타낸 바와 같이, 호스트(1)는 AU2의 제1 내지 제3 RU에 데이터 B1 내지 B3을 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 22에 나타낸 바와 같이, 기입 커맨드, 계속해서 AU2의 제1 내지 제3 RU와 관련된 데이터 B1 내지 B3을 메모리 카드(2)에 공급한다. 도 25에 나타낸 바와 같이, 데이터 B1 내지 B3은 데이터 A1 내지 A5가 구성하는 것과는 상이한 파일을 구성하므로, 메모리 카드(2)는 AU2을 위한 새로운 작업 AU2를 준비한다. 메모리 카드(2)는, 데이터 B1 내지 B3을 기억하도록 지시된 AU2 내의 제1 내지 제3 RU와 동일한, 작업 AU2 내의 RU들에 데이터 B1 내지 B3을 각각 기입한다.
그리고 나서, 데이터 A1 내지 A5에 의해 일부 구성되는 파일의 기입을 계속하면서 데이터 B1 내지 B3에 의해 구성되는 파일의 기입을 완료하기 위해, 호스트(1)는 메모리(2)에 작업 AU 클로즈 커맨드를 공급한다. 이 커맨드를 받으면, 메모리 카드(2)는 이 커맨드의 바로 직전에 데이터가 기입되었던 작업 AU에 대한 클로즈 처리를 행한다. 이 결과, 작업 AU2 대신 추가의 작업 AU를 제공할 수 있다. 예를 들면, 메모리 카드(2)가 동시에 2개의 파일에 기입할 수 있다면, 메모리 카드(2)는 작업 AU2에 대한 클로즈 처리 이후에 파일 데이터의 기입이 가능하게 될 것이다. 클로즈 커맨드는 또한, 순차 기입 종료 커맨드에서 클로즈 처리를 필요로 하는 인수를 지정으로써 실현될 수 있다.
클로즈 커맨드는, 클로즈 처리 대상의 작업 AU를 지정하는 인수를 갖고 있다. 이 인수는 상술한 바와 같이 데이터가 기입되어진 가장 최근의 작업 AU를 지정할 수 있고, 다수의 작업 AU들 중에서 임의의 작업 AU 또는 모든 작업 AU를 지정할 수 있다.
도 26에 나타낸 바와 같이, 호스트(1)는 AU1의 제6 및 제7 RU에 데이터 A6 및 A7을 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 22에 나타낸 바와 같이, 기입 커맨드, 계속해서 AU1의 제6 및 제7 RU와 관련된 데이터 A6 및 A7을 메모리 카드(2)에 공급한다. 이 기입 요구를 받으면, 도 27에 나타낸 바와 같이, 메모리 카드(2)는 데이터 A6 및 A7을 기억하도록 지시된 AU1 내의 제6 및 제7 RU와 동일한, 작업 AU1 내의 RU들에 데이터 A6 및 A7을 각각 기입한다.
기입 요구가 완료되었으므로, 도 22에 나타낸 바와 같이, 호스트(1)는 순차 기입 종료 커맨드를 메모리 카드(2)에 공급한다. 이 커맨드를 받으면, 도 21에 나타낸 바와 같이, 메모리 카드(2)는 모든 작업 AU(본 예에서는 작업 AU1만임)에 대하여 클로즈 처리를 행하고, 이어서, 랜덤 기입 모드로 이행한다.
상술한 바와 같이, 제1 실시 형태에 따른 메모리 카드는 랜덤 기입 모드와 순차 기입 모드를 갖는다. 순차 기입 모드에서는, 데이터의 갱신 요구에 응하여, 갱신되지 않을 RU를 포함하는 AU에 속하는 RU의 데이터는 새로운 AU에 복사되지 않는다. 따라서, 순차 기입 모드에서는, 데이터는 연속하는 미기입 RU에 항상 기입된다. 이러한 기입의 속도는 플래시 메모리(21)에 의해 실현가능한 최대의 기입 속도이다. 최대 성능으로 데이터를 기입할 수 있게 되는 것은 호스트(1)에 매우 이롭다. 최대 기입 속도는 플래시 메모리(21)의 고유한 성능에 의존하고, 거의 일정하다. 이 때문에, 최대 기입 속도 및 호스트(1)가 기입할 때 필요한 데이터의 크기로부터 도출되는 AU(RU)의 수로부터, 지시되는 기입을 완료하는 데 필요한 시간을 쉽게 산출할 수 있다. 이러한 산출은 용이하기 때문에 짧은 시간을 필요로 한다.
또한, 메모리 카드(2)에 있어서, 데이터는, 연속하는 RU 페이지에, 기입 데이터의 논리 어드레스의 순서대로 기입된다. 이러한 데이터의 기입은 메모리(21)의 최대 기입 속도를 이끌어 낼 수 있다. 또한, 메모리 카드는 순차 기입 모드에서는 데이터를 복사하지 않으므로, 기입 요구에 응하여 계속 기입할 수 있다. 상술한 바와 같이, 이러한 기입 속도는 메모리(21)의 최대 기입 속도이므로, 메모리 카드(2)는 순차 기입 모드에서는 최대 기입 속도로 계속 기입할 수 있다.
메모리 카드(2)는 순차 기입 모드에서 최대 기입 속도를 유지할 수 있기 때문에, 제2 예와 관련하여 설명한 바와 같이, 2개 이상의 개별 파일들 각각의 데이터에 대하여 전용(exclusive) 작업 AU를 제공하면, 2개 이상의 파일의 데이터를 동시에 저장하는 것이 가능하게 된다.
또한, 제1 실시 형태에 따른 메모리 카드에 따르면, 작업 AU 클로즈 커맨드가 제공된다. 이 커맨드에 의해, 다수 파일의 데이터를 동시에 기입하고 있는 메모리 카드(2)는, 순차 기입 종료 커맨드의 공급을 기다리지 않고, 선택된 작업 AU에 대하여 클로즈 처리를 행할 수 있다. 그 결과, 기입이 완료된 파일 데이터용의 작업 AU를 해제(release)하여 다른 파일 데이터용의 새로운 작업 AU를 제공할 수 있다. 이것은, 동시에 기입될 수 있는 스트림의 수에 한계가 있기 때문에 이 기능이 하드웨어로 실현될 경우 유용하다.
(제2 실시 형태)
제2 실시 형태에서는, 특정의 기입 가능 상태(writing read state)로의 이행을 위한 전용 커맨드(exclusive command)가 제공된다. 제2 실시 형태에 따른 메모리 카드는 제1 실시 형태(도 1 내지 도 5)와 동일한 구조를 가지지만 제1 실시 형태와 상이하게 동작한다.
[1] 제1 예
도 28 내지 도 34를 참조하여 제2 실시 형태의 제1 예의 동작에 대해 설명한다. 도 28은 제2 실시 형태에 따른 메모리 카드가 수신하는 커맨드 및 데이터의 제1 예를 도시하고 있다. 도 29 내지 도 33은 메모리 카드(2)에서의 제1 예의 기입 동안의 일 상태를 순차적으로 나타내고 있다. 도 29 내지 도 33의 작업 AU를 제외한 AU는 파일 시스템(12)에 의해 인식되는 AU를 표현하고 있고, 또한 파일 시스템(12)에 의해 인식되는 AU 내에 데이터를 기억하고 있는 메모리 카드(2)의 AU도 표현하고 있다.
우선, 도 29에 나타낸 바와 같이, AU1의 제1 내지 제8 RU에는 데이터 1 내지 8이 기억되어 있고, AU2의 제1 내지 제8 RU에는 데이터 9 내지 16이 기억되어 있다. 그리고 나서, 도 28에 도시된 바와 같이, 호스트(1)은 기입 준비 커맨드를 메모리 카드(2)에 공급한다. 메모리 카드(2)는, 기입 준비 커맨드를 수신하면, 즉시 기입을 시작할 수 있는 상태로 이행하기 위한 준비를 수행한다. 메모리 카드(2)는 실시간(real-time) 기입 가능(write ready)(즉시 기입) 상태 모드(실시간 기입 가능 모드)로의 이행 처리를 행하는 한편, 예를 들면 비지(busy) 상태를 나타내는 신호를 송신함으로써 호스트(1)에 자신이 준비중이라는 것을 알린다. 비지 상태가 완료된 후, 호스트(1)는 기입을 시작한다.
도 29에 나타낸 바와 같이, 호스트(1)는 AU1의 제4 내지 제6 RU에 데이터 20 내지 22를 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는 도 28에 나타낸 바와 같이, 기입 커맨드 및 계속해서 AU1의 제4 내지 제6 RU와 관련된 데이터 20 내지 22를 메모리 카드(2)에 공급한다.
기입 요구를 받으면, 실시간 기입 가능 상태의 메모리 카드(2)는, 도 29에 나타낸 바와 같이, 계속 커맨드(continuous command)(후술됨)를 이전에 수신하지 않았다면, 기입 대상의 AU(AU1)를 위한 작업 AU를 준비한다.
이 기입 요구는 AU에 있어서 선두가 아닌 RU로부터의 기입을 요구하고 있다. 즉시 기입 상태의 메모리 카드(2)는, 기입 데이터가 속하는 AU(AU1)의 기입 데이터 RU(본 예에서는 제4 내지 제6 RU)보다 하위의 RU(제1 내지 제3 RU)의 데이터는 작업 AU에 복사하지 않는다. 따라서, 도 30에 나타낸 바와 같이, 메모리 카드(2)는, 데이터 20 내지 22를 기억하도록 지시된 AU1 내의 제4 내지 제6 RU와 동일한, 작업 AU 내의 RU들에 데이터 20 내지 22를 각각 기입한다.
호스트(1)는 AU1의 제7 및 제8 RU의 데이터 7 및 8을 데이터 23 및 24로 갱신하고, 또한 AU2의 제1 내지 제3 RU의 데이터 9 내지 11을 데이터 25 내지 27로 갱신하는 것을 희망하고 있다. 이 갱신을 행하기 위해서, 호스트(1)는, 도 28에 나타낸 바와 같이, 기입 커맨드, AU1의 제7 및 제8 RU와 관련된 데이터 23 및 24, 그리고 AU2의 제1 내지 제3 RU와 관련된 데이터 25 내지 27을 메모리 카드(2)에 공급한다. 이 기입 요구를 받으면, 도 32에 나타낸 바와 같이, 메모리 카드(2)는, 데이터 23 및 24를 기억하도록 지시된 AU1의 제7 및 제8 RU와 동일한, 작업 AU 내의 RU들에 데이터 23 및 24를 각각 기입한다. 이 시점에서, 작업 AU의 마지막 RU에 데이터가 기입되었으므로, 메모리 카드(2)는 작업 AU에 대하여 클로즈 처리를 행한다. 이후, 메모리 카드(2)는 AU2를 위한 새로운 작업 AU를 준비한다.
도 33에 나타낸 바와 같이, 메모리 카드(2)는, 데이터 25 내지 27을 기억하도록 지시된 AU2 내의 제1 내지 제3 RU와 동일한, 작업 AU 내의 RU들에 데이터 25 내지 27을 각각 기입한다.
기입 요구가 완료되었으므로, 도 28에 나타낸 바와 같이, 호스트(1)는 클로즈 커맨드를 메모리 카드(2)에 공급한다. 클로즈 커맨드는 제1 실시 형태에서와 같이, 클로즈 처리 대상이 되는 작업 AU를 지정하는 인수와, 복사를 할지 또는 복사를 하지 않는지를 지정하는 인수를 갖는다. 도 28에 제공된 클로즈 커맨드에서는, 복사하지 않음이 지정되어 있다. 이 커맨드를 수신하면, 도 33에 나타낸 바와 같이, 메모리 카드(2)는 가장 최근의 기입 커맨드에 의한 기입 대상이 되어 있는 AU(AU2) 내의 갱신되지 않은 RU들(제3 내지 제8 RU)의 데이터 12 내지 16을 작업 AU에 복사하지 않고, 작업 AU에 대하여 클로즈 처리를 행한다.
제2 실시 형태에서는, 실시간 기입 가능 상태의 동작 이외의 동작은 제1 실시 형태의 랜덤 기입 모드의 동작과 동일하다.
[2] 제2 예
이제, 제1 예를 이용하여 복수의 파일의 데이터를 동시에 기록하는 것에 대해 도 34 내지 도 39를 참조하여 설명한다. 도 34는 제2 실시 형태에 따른 메모리 카드가 수신하는 커맨드 및 데이터의 제2 예를 도시하고 있다. 도 35 내지 도 39는 메모리 카드(2)에서의 제2 예의 기입 동안의 일 상태를 순차적으로 나타내고 있다. 도 35 내지 도 39의 작업 AU를 제외한 AU는 파일 시스템(12)에 의해 인식되는 AU를 표현하고 있고, 또한 파일 시스템(12)에 의해 인식되는 AU 내의 데이터를 기억하고 있는 메모리 카드(2)의 AU도 표현하고 있다.
도 34에 나타낸 바와 같이, 메모리 카드(2)는 호스트(1)로부터 받은 기입 준비 커맨드에 의해 실시간 기입 가능 상태로 이행한다.
도 35에 나타낸 바와 같이, 호스트(1)는 AU1의 제1 내지 제5 RU에 데이터 A1 내지 A5를 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 34에 나타낸 바와 같이, 기입 커맨드 및 계속해서 AU1의 제1 내지 제5 RU와 관련된 데이터 A1 내지 A5를 메모리 카드(2)에 공급한다. AU1의 제1 내지 제8 RU에는 데이터 X1 내지 X8이 기억되어 있다.
상술한 바와 같이, 실시간 기입 가능 상태의 메모리 카드(2)는, 이전에 계속 커맨드(후술함)를 수신하지 않았다면, 새로운 작업 AU를 준비한다. 이 때문에, 도 36에 나타낸 바와 같이, 메모리 카드(2)는 AU1을 위한 작업 AU1을 준비한다. 계속해서, 메모리 카드(2)는 데이터 A1 내지 A5를 기억하도록 지시된 AU1 내의 제1 내지 제5 RU와 동일한, 작업 AU1의 RU들에 데이터 A1 내지 A5을 각각 기입한다.
호스트(1)는 데이터 A1 내지 A5에 의해 일부 구성되는 파일과 상이한 파일의 데이터를 동시에 기입하기를 희망하고 있다. 이 때문에, 작업 AU1에 계속해서 데이터가 기입될 것이다. 이 때문에, 도 34에 나타낸 바와 같이, 호스트(1)는 계속 커맨드를 메모리 카드(2)에 공급한다. 계속 커맨드는, 클로즈 커맨드에 있어서, 클로즈 처리 명령인지 또는 작업 AU의 유지에 대한 명령인지를 지정하는 인수를 제공함으로써 실현될 수 있다. 혹은, 클로즈 커맨드 외의 커맨드가 제공될 수 있다. 도 36에 나타낸 바와 같이, 메모리 카드(2)는, 계속 커맨드를 수신하면, 작업 AU1에 대하여 클로즈 처리를 행하지 않고, 이 계속 커맨드 바로 직전의 기입 요청에 의한 기입 대상인 AU1을 위한 작업 AU1을 계속 유지한다.
도 36에 나타낸 바와 같이, 호스트(1)는 AU2의 제1 내지 제3 RU에 데이터 B1 내지 B3을 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 34에 나타낸 바와 같이, 기입 커맨드 및 계속해서 AU2의 제1 내지 제3 RU와 관련된 데이터 B1 내지 B3을 메모리 카드(2)에 공급한다.
상술한 바와 같이, 실시간 기입 가능 상태의 메모리 카드(2)는, 기입 커맨드를 받으면, 계속 커맨드에 의해 기존의 작업 AU의 계속 이용이 요구되지 않는다면, 새로운 작업 AU를 작성한다. 데이터 B1 내지 B3이 데이터 A1 내지 A3이 속하는 AU(AU1)와는 상이한 AU(AU2)에 속하므로, 도 37에 나타낸 바와 같이, 메모리 카드(2)는 기입 데이터 B1 내지 B3을 받으면 작업 AU2를 준비한다. 메모리 카드(2)는 데이터 B1 내지 B3을 기억하도록 지시된 AU2 내의 제1 내지 제3 RU와 동일한, 작업 AU2 내의 RU들에 데이터 B1 내지 B3을 각각 기입한다.
계속해서, 데이터 A5에 이어서 데이터를 기입하기 위해, 도 34에 나타낸 바와 같이, 호스트(1)는 계속 커맨드를 메모리 카드(2)에 공급한다. 도 37에 나타낸 바와 같이, 메모리 카드(2)는, 계속 커맨드를 받으면, 이 커맨드의 바로 직전의 기입 요구의 대상이었던 AU를 위한 작업 AU2을 계속 유지할 것이다.
도 37에 나타낸 바와 같이, 호스트(1)는 AU1의 제6 및 제7 RU에 데이터 A6 및 A7을 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 34에 나타낸 바와 같이, 기입 커맨드 및 계속해서 AU1의 제6 및 제7 RU와 관련된 데이터 A6 및 A7을 메모리 카드(2)에 공급한다.
도 38에 나타낸 바와 같이, 메모리 카드(2)는 AU1을 위한 작업 AU1을 유지하고 있으므로, 메모리 카드(2)는 기입 커맨드에 응하여 새로운 작업 AU를 작성하지 않는다. 대신, 메모리 카드(2)는 데이터 A6 및 A7을 기억하도록 지시된 AU1 내의 제6 및 제7 RU와 동일한, 작업 AU1 내의 RU들에 데이터 A6 및 A7을 각각 기입한다.
계속해서, 데이터 B3에 이어서 데이터를 기입하기 위해, 도 34에 나타낸 바와 같이, 호스트(1)는 계속 커맨드를 메모리 카드(2)에 공급한다. 도 38에 나타낸 바와 같이, 메모리 카드(2)는 계속 커맨드를 받으면, 이 커맨드의 바로 직전의 기입 요구의 대상이었던 AU를 위한 작업 AU1을 계속 유지한다.
도 38에 나타낸 바와 같이, 호스트(1)는 AU2의 제4 및 제5 RU에 데이터 B4 및 B5를 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 34에 나타낸 바와 같이, 기입 커맨드 및 계속해서 AU2의 제4 및 제5 RU와 관련된 데이터 B4 및 B5를 메모리 카드(2)에 공급한다.
도 39에 나타낸 바와 같이, 메모리 카드(2)는 AU2를 위한 작업 AU2를 유지하고 있으므로, 메모리 카드(2)는, 데이터 B4 및 B5를 기억하도록 지시된 AU2 내의 제4 및 제5 RU와 동일한, 작업 AU2 내의 RU들에 데이터 B4 및 B5를 각각 기입한다.
도 38에 나타낸 바와 같이, 호스트(1)는 AU2의 제6 RU에 데이터 B6을 기입하기를 희망하고 있다. 호스트(1)가, 바로 직전에 데이터가 기입된 RU를 포함하는 AU의 RU들에 기입을 희망하는 경우, 호스트(1)는 계속 커맨드를 공급하지 않고 단지 기입 커맨드를 공급함으로써 이것을 행할 수 있다. 이 기입을 행하기 위해, 도 34에 나타낸 바와 같이, 호스트(1)는 기입 커맨드 및 계속해서 AU2의 제6 RU와 관련된 데이터 B6을 메모리 카드(2)에 공급한다. 메모리 카드(2)는, 이 기입 요구를 받으면, 데이터 B6을 기억하도록 지시된 작업 AU2 내의 제6 RU와 동일한, 작업 AU2 내의 RU에 데이터 B6을 기입한다.
기입 요구가 완료되었으므로, 도 34에 나타낸 바와 같이, 호스트(1)는 클로즈 커맨드를 메모리 카드(2)에 공급한다. 도 34의 예에서는, 클로즈 커맨드에서 클로즈 대상 AU를 지정하는 인수가 모든 작업 AU를 지정하고 있고, 또 다른 인수에는 복사하지 않음이 지정되어 있다. 이 커맨드를 받으면, 도 39에 나타낸 바와 같이, 메모리 카드(2)는, AU1 내의 갱신되지 않은 RU(제8 RU)의 데이터 X8을 작업 AU1에 복사하지 않고, 작업 AU1 및 작업 AU2에 대하여 클로즈 처리를 행한다.
[3] 제3 예
이제, 제1 예를 이용하여 다수의 파일의 데이터를 동시에 기록하는 또 다른 예를 도 40 내지 도 47을 참조하여 설명한다. 도 40은 제2 실시 형태에 따른 메모리 카드가 수신하는 커맨드 및 데이터의 제3 예를 도시하고 있다. 도 41 내지 도 47은 메모리 카드(2)에서의 제3 예의 기입 동안의 일 상태를 순차적으로 나타내고 있다. 이들 도면에서 데이터 A1 내지 A7은 통상 동영상 데이터이며, 데이터 B1 내지 B3 및 데이터 C1 내지 C3은 정지 화상 데이터이다. 도 41 내지 도 48에서 작업AU를 제외한 AU는 파일 시스템(12)이 인식하고 있는 AU를 표현하고 있고, 또한 파일 시스템(12)이 인식하는 AU 내의 데이터를 기억하고 있는 메모리 카드(2)의 AU도 표현하고 있다.
도 40에 나타낸 바와 같이, 메모리 카드(2)는 호스트(1)로부터 받은 기입 준비 커맨드에 의해 실시간 기입 가능 상태로 이행한다.
도 41에 나타낸 바와 같이, 호스트(1)는 AU1의 제1 내지 제5 RU에 데이터 A1 내지 A5를 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 40에 나타낸 바와 같이, 기입 커맨드 및 계속해서 AU1의 제1 내지 제5 RU와 관련된 데이터 A1 내지 A5를 메모리 카드(2)에 공급한다. AU1의 제1 내지 제8 RU에는 데이터 X1 내지 X8이 기억되어 있다.
상술한 바와 같이, 실시간 기입 가능 상태의 메모리 카드(2)는 계속 커맨드를 이전에 수신하지 않았다면 새로운 작업을 준비하므로, 도 42에 나타낸 바와 같이, 메모리 카드(2)는 AU1을 위한 작업 AU1을 준비한다. 메모리 카드(2)는, 데이터 A1 내지 A5를 기억하도록 지시된 AU1 내의 제1 내지 제5 RU와 동일한, 작업 RU1 내의 RU들에 데이터 A1 내지 A5를 각각 기입한다.
호스트(1)는 데이터 A1 내지 A5에 의해 일부 구성되는 파일과 상이한 파일의 데이터를 동시에 기입하기를 희망하고 있다. 이 때문에, 도 40에 나타낸 바와 같이, 호스트(1)는 계속 커맨드를 메모리 카드(2)에 공급한다. 도 42에 나타낸 바와 같이, 메모리 카드(2)는 계속 커맨드를 받으면, 작업 AU1을 계속 유지한다.
도 42에 나타낸 바와 같이, 호스트(1)는 데이터 B1 내지 B3을 AU2의 제1 내지 제3 RU에 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 40에 나타낸 바와 같이, 기입 커맨드 및 계속해서 AU2의 제1 내지 제3 RU와 관련된 데이터 B1 내지 B3을 메모리 카드(2)에 공급한다. AU2의 제1 내지 제8 RU에는 데이터 Y1 내지 Y8이 기억되어 있다.
데이터 B1 내지 B3이 이전에 데이터가 기입된 AU1과는 상이한 AU에 속하므로, 도 43에 나타낸 바와 같이, 메모리 카드(2)는 기입 데이터 B1 내지 B3을 수신하면 작업 AU2을 준비한다. 메모리 카드(2)는 데이터 B1 내지 B3을 기억하도록 지시된 AU2 내의 제1 내지 제3 RU와 동일한, 작업 AU2 내의 RU들에 데이터 B1 내지 B3을 각각 기입한다.
데이터 B1 내지 B3으로 구성되는 파일의 기입이 완료되었기 때문에, 도 40에 나타낸 바와 같이, 호스트(1)는 클로즈 커맨드를 메모리 카드(2)에 공급한다. 이 클로즈 커맨드는, 복사하지 않음을 지정하는 인수를 갖는다. 이 커맨드를 수신하면, 도 44에 나타낸 바와 같이, 메모리 카드(2)는 가장 최근의 기입 커맨드에 의해 기입 대상이 되어 있는 AU2 내의 갱신되지 않은 RU(제4 내지 제8 RU)의 데이터 Y4 내지 Y8을 작업 AU2에 복사하지 않고, 작업 AU2에 대하여 클로즈 처리를 행한다.
도 44에 나타낸 바와 같이, 호스트(1)는 AU1의 제6 및 제7 RU에 데이터 A6 및 A7을 기입하기를 희망하고 있다. 이 기입을 행하기 위해서, 호스트(1)는, 도 40에 나타낸 바와 같이, 기입 커맨드 및 계속해서 AU1의 제6 및 제7 RU와 관련된 데이터 A6 및 A7을 메모리 카드(2)에 공급한다.
도 44에 나타낸 바와 같이, 메모리 카드(2)가 AU1을 위한 작업 AU1을 유지하고 있으므로, 메모리 카드(2)는 기입 커맨드에 응하여 새로운 작업 AU를 작성하지 않는다. 대신, 메모리 카드(2)는 데이터 A6 및 A7을 기억하도록 지시된 AU1 내의 제6 및 제7 RU와 동일한, 작업 AU1 내의 RU들에 데이터 A6 및 A7을 각각 기입한다.
데이터 A1 내지 A7로 구성되는 파일의 기입이 완료되면, 도 45에 나타낸 바와 같이, 호스트(1)는 AU3의 제1 내지 제3 RU에 데이터 C1 내지 C3을 기입하기를 희망한다. 이 기입을 행하기 위해서, 호스트(1)는, 도 40에 나타낸 바와 같이, 기입 커맨드 및 계속해서 AU3의 제1 내지 제3 RU와 관련된 데이터 C1 내지 C3을 메모리 카드(2)에 공급한다. AU3의 제1 내지 제8 RU에는 데이터 Z1 내지 Z8이 기억되어 있다.
데이터 C1 내지 C3은 이전에 기입이 행해진 AU1과는 상이한 AU에 속한다. 또한, AU1에는 갱신되지 않은 데이터 X8이 여전히 포함되어 있다. 계속 커맨드를 수신하지 않은 상태에서 기입 커맨드를 수신한 메모리 카드(2)는, 가장 최근에 기입이 행해진 AU1 내의 갱신되지 않은 데이터를 작업 AU에 복사한다. 즉, 도 46에 나타낸 바와 같이, 메모리 카드(2)는, 데이터 X8이 할당되어 있는 AU1 내의 제8 RU와 동일한, 작업 AU 내의 제8 RU에 데이터 X8을 복사한다. 그리고 나서, 메모리 카드(2)는 작업 AU1에 대하여 클로즈 처리하는 지시하는 클로즈 커맨드를 수신하지 않았기 때문에, 메모리 카드(2)는 작업 AU1에 대하여 클로즈 처리를 행하지 않는다. 이 복사는 실시간 기입의 종료 후이므로, 기입 또는 기입 시간의 산출에 영향을 주지 않음을 유의한다. AU1 내의 데이터 X8을 작업 AU1에 복사하는 것은 클로즈 커맨드에 의해 지정될 수 있다. 즉, 데이터 C1 내지 C3을 기입하기 위한 기입 커맨드의 공급 이전에, 호스트(1)는 인수가 복사함으로 지정된 클로즈 커맨드를 메모리 카드(2)에 공급한다. 메모리 카드(2)는 이러한 클로즈 커맨드를 수신하면, 대상 AU(AU1) 내의 가장 최근에 기입된 RU(제7 RU) 보다 상위인 RU(제8 RU)의 데이터를 작업 AU1의 동일한 제8 RU에 복사한다.
계속해서, 메모리 카드(2)는 AU3을 위한 작업 AU3을 준비한다. 데이터 C1 내지 C3을 기입하는 것은 AU3의 선두 RU로부터의 기입에 대응하므로, 복사는 필요 없다. 이 때문에, 도 47에 나타낸 바와 같이, 메모리 카드(2)는 데이터 C1 내지 C3을 기억하도록 지시된 AU3 내의 제1 내지 제3 RU와 동일한, 작업 AU3 내의 RU들에 데이터 C1 내지 C3을 각각 기입한다.
데이터 A1 내지 A7로 구성되는 파일의 데이터를 기입하는 것 및 데이터 C1 내지 C3으로 구성되는 파일의 데이터를 기입하는 것이 완료되었으므로, 도 40에 나타낸 바와 같이, 호스트(1)는 클로즈 커맨드를 메모리 카드(2)에 공급한다. 이 클로즈 커맨드는, 복사하지 않음을 지시하는 인수와 모든 작업 AU(본 예에서는 작업 AU1 및 AU3)에 대하여 클로즈 처리를 지정하는 인수를 갖는다. 그러므로, 이 커맨드를 수신하면, 도 47에 나타낸 바와 같이, 메모리 카드(2)는 작업 AU1에 대하여 클로즈 처리를 행하고, AU3 내의 갱신되지 않은 RU(제4 내지 제8 RU)의 데이터 Z4 내지 Z8을 작업 AU3에 복사하지 않고 작업 AU3에 대하여 클로즈 처리를 행한다.
상술한 바와 같이, 제2 실시 형태에 따른 메모리 카드에 따르면, 실시간 기입 상태가 정의되어 있다. 실시간 기입 상태의 메모리 카드는, 기입 커맨드를 받으면, 미기입 RU(free RU)만으로 이루어지는 작업 AU를 준비하고, 기입 데이터의 논리 어드레스의 순으로 작업 AU내의 RU에 데이터를 기입한다. 이러한 연속하는 미기입 RU에의 기입 속도는 플래시 메모리(21)에 의해 실현되는 최대 기입 속도이다. 최대 기입 속도는 플래시 메모리(21)의 고유의 성능에 의존하고, 거의 일정하다. 이 때문에, 지시된 기입을 완료하는 데 필요한 시간은, 최대 기입 속도 및 호스트(1)에 의해 기입될 때 필요한 데이터의 크기로부터 도출된 AU(RU)의 개수로부터 용이하게 산출될 수 있다. 이러한 산출은 용이하기 때문에, 짧은 시간을 요한다.
또한, 제2 실시 형태에 따른 메모리 카드에서는 계속 커맨드가 제공된다. 계속 커맨드에 의해, 작업 AU에 대하여 클로즈 처리를 행할 필요가 없으며 또 다른 작업 AU를 준비할 수 있다. 이 때문에, 2개 이상의 개별 파일들 각각의 데이터에 대하여 전용(exclusive) 작업 AU를 제공하면, 2개 이상의 파일의 데이터를 동시에 기록하는 것이 가능하게 된다.
모든 계속 커맨드 지시가 생성된 작업 AU로의 기입을 보류(suspend)한다는 것을 유의한다. 이 때문에, 메모리 카드가 제2 예에서처럼 계속 커맨드를 수신한다 하더라도, 메모리 카드는 제1 예에서처럼 기입을 보류하지 않고 미기입 RU에만 데이터를 기입한다.
추가의 이점 및 변형이 당업자들에게 쉽게 일어날 수 있다. 그러므로, 더 광범위한 양태에서의 본 발명은 본 명세서에 도시되고 설명된 특정 상세 사항과 대표적인 실시 형태에 제한되지 않는다. 따라서, 첨부되는 특허청구범위 또는 그 동등물의 범위에 의해 규정되는 한 일반적인 발명의 개념의 사상 및 범위에 벗어나지 않고 각종 변형이 있을 수 있다.
1 : 호스트 장치
2 : 메모리 카드
21 : 메모리
22 : 컨트롤러

Claims (19)

  1. 메모리 장치로서,
    메모리 영역들을 갖는 메모리; 및
    기입 데이터의 수신 시, 기입 데이터의 논리 어드레스들과 해당 기입 데이터를 기억하는 메모리 영역들 간의 대응을 관리하면서 데이터를 상기 메모리 영역들에 기입하도록 구성되고, 제1 모드 및 제2 모드를 갖는 컨트롤러
    를 포함하고,
    복수의 상기 메모리 영역은 하나의 관리 단위를 구성하고,
    상기 제1 모드에서의 컨트롤러는, 데이터 조각들(pieces of data)을 각각의 메모리 영역들에 기입할 수 있고, 갱신될 데이터를 포함하는 하나의 관리 단위의 하나 이상의 메모리 영역들 내의 데이터를 유지하도록 구성되고,
    상기 제2 모드에서의 컨트롤러는, 각각의 메모리 영역들에 데이터 조각들의 논리 어드레스들의 오름차순으로 상기 데이터 조각들을 기입하도록 구성되고, 갱신된 데이터를 포함하는 하나의 관리 단위의 하나 이상의 메모리 영역들 내의 데이터를 무효로 하도록 구성된, 메모리 장치.
  2. 제1항에 있어서, 상기 제2 모드에서의 컨트롤러는, 갱신된 데이터를 포함하는 상기 관리 단위의 갱신되지 않을 데이터는 복사(copy)하지 않는, 메모리 장치.
  3. 제1항에 있어서, 상기 컨트롤러는 상기 메모리 영역들로의 데이터 기입의 속도에 관한 정보를 보유하는 레지스터를 포함하는, 메모리 장치.
  4. 제1항에 있어서, 순차 기입 개시 커맨드의 수신 시, 상기 컨트롤러는 상기 제2 모드로 이행하는, 메모리 장치.
  5. 제4항에 있어서, 상기 컨트롤러는, 순차 기입 종료 커맨드를 수신하거나 또는 기입 데이터의 비연속 논리 어드레스들을 검출할 때, 상기 제1 모드로 이행하는, 메모리 장치.
  6. 제1항에 있어서,
    데이터 기입 지시의 수신 시, 상기 컨트롤러는 상기 기입 데이터의 논리 어드레스를 포함하는 논리 어드레스 그룹을 위해 일시적으로 확보된 작업 영역을 항상 준비하고,
    상기 기입 데이터는 상기 작업 영역에 기입되고,
    상기 작업 영역은 유효 데이터를 포함하지 않는 메모리 영역들로만 이루어지는, 메모리 장치.
  7. 제1항에 있어서, 상기 컨트롤러는,
    서로 소정의 관련이 있고 제1 논리 어드레스 그룹에 속하는 논리 어드레스들을 갖는 제1 데이터 조각들을 하나의 작업 영역에 기입하고,
    서로 소정의 관련이 있고 제2 논리 어드레스 그룹에 속하는 논리 어드레스들을 갖는 제2 데이터 조각들을 다른 하나의 작업 영역에 기입하는, 메모리 장치.
  8. 제1항에 있어서, 상기 메모리는 하나의 메모리 영역의 단위로 데이터를 기입할 수 있고, 연속하는 메모리 영역들로 이루어지는 소거 단위로 데이터를 소거할 수 있는, 메모리 장치.
  9. 메모리 장치로서,
    메모리 영역들을 갖는 메모리; 및
    기입 데이터의 수신 시, 상기 기입 데이터의 논리 어드레스들과 해당 기입 데이터를 기억하는 메모리 영역들 간의 대응을 관리하면서 데이터를 상기 메모리 영역들에 기입하도록 구성되고, 연속하는 논리 어드레스들로 이루어지는 논리 어드레스 그룹을 인식하도록 구성되고, 제1 커맨드의 수신 시, 실시간 기입 가능 모드로 이행하도록 구성된 컨트롤러
    를 포함하고,
    상기 실시간 기입 가능 모드의 컨트롤러는, 데이터 기입 지시의 수신 시, 상기 기입 데이터의 논리 어드레스를 포함하는 논리 어드레스 그룹을 위해 일시적으로 준비된 작업 영역에, 상기 기입 데이터 조각들의 논리 어드레스들의 오름차순으로 데이터를 기입하고,
    상기 작업 영역의 마지막 메모리 영역으로의 데이터 기입을 완료한 후 상기 작업 영역에 논리 어드레스를 할당하는, 메모리 장치.
  10. 제9항에 있어서,
    상기 메모리 장치는 다수 스트림의 기입을 실현하기 위해, 제1 모드에서 둘 이상의 작업 영역들을 동시에 유지하고, 제2 모드에서 둘 이상의 작업 영역들을 동시에 유지하도록 구성된, 메모리 장치.
  11. 제9항에 있어서, 상기 메모리는 하나의 메모리 영역의 단위로 데이터를 기입할 수 있고, 연속하는 메모리 영역들로 이루어지는 소거 단위로 데이터를 소거할 수 있는, 메모리 장치.
  12. 메모리 영역들을 포함하는 메모리 장치를 제어하는 방법으로서,
    기입 데이터의 수신 시, 상기 기입 데이터의 논리 어드레스들과 해당 기입 데이터를 기억하는 메모리 영역들 간의 대응을 관리하면서 상기 메모리 영역들에 데이터를 기입하는 단계;
    제1 모드에서, 데이터 조각들(pieces of data)을 각각의 메모리 영역들에 기입하고, 갱신될 데이터를 포함하는 하나의 관리 단위의 하나 이상의 메모리 영역들 내의 데이터를 유지하는 단계 -복수의 상기 메모리 영역은 하나의 관리 단위를 구성함-;
    제2 모드에서, 각각의 메모리 영역들에 데이터 조각들의 논리 어드레스들의 오름차순으로 상기 데이터 조각들을 기입하고, 갱신된 데이터를 포함하는 하나의 관리 단위의 하나 이상의 메모리 영역들 내의 데이터를 무효로 하는 단계
    를 포함하는, 메모리 장치의 제어 방법.
  13. 제12항에 있어서, 상기 제2 모드에서의 컨트롤러는, 갱신된 데이터를 포함하는 상기 관리 단위의 갱신되지 않을 데이터는 복사하지 않는, 메모리 장치의 제어 방법.
  14. 제12항에 있어서, 컨트롤러는 상기 메모리 영역들로의 데이터 기입의 속도에 관한 정보를 보유하는 레지스터를 포함하는, 메모리 장치의 제어 방법.
  15. 제12항에 있어서, 순차 기입 개시 커맨드의 수신 시, 컨트롤러는 상기 제2 모드로 이행하는, 메모리 장치의 제어 방법.
  16. 제15항에 있어서, 상기 컨트롤러는, 순차 기입 종료 커맨드를 수신하거나 또는 기입 데이터의 비연속 논리 어드레스들을 검출할 때, 상기 제1 모드로 이행하는, 메모리 장치의 제어 방법.
  17. 제12항에 있어서,
    데이터 기입 지시의 수신 시, 컨트롤러는 상기 기입 데이터의 논리 어드레스를 포함하는 논리 어드레스 그룹을 위해 일시적으로 확보된 작업 영역을 항상 준비하고,
    상기 기입 데이터는 상기 작업 영역에 기입되고,
    상기 작업 영역은 유효 데이터를 포함하지 않는 메모리 영역들로만 이루어지는, 메모리 장치의 제어 방법.
  18. 제12항에 있어서, 컨트롤러는,
    서로 소정의 관련이 있고 제1 논리 어드레스 그룹에 속하는 논리 어드레스들을 갖는 제1 데이터 조각들을 하나의 작업 영역에 기입하고,
    서로 소정의 관련이 있고 제2 논리 어드레스 그룹에 속하는 논리 어드레스들을 갖는 제2 데이터 조각들을 다른 하나의 작업 영역에 기입하는, 메모리 장치의 제어 방법.
  19. 제12항에 있어서, 메모리는 하나의 메모리 영역의 단위로 데이터를 기입할 수 있고, 연속하는 메모리 영역들로 이루어지는 소거 단위로 데이터를 소거할 수 있는, 메모리 장치의 제어 방법.
KR1020117013369A 2008-12-11 2009-12-11 메모리 장치 및 그 제어 방법 KR101409095B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008316066A JP5175703B2 (ja) 2008-12-11 2008-12-11 メモリデバイス
JPJP-P-2008-316066 2008-12-11
PCT/JP2009/071069 WO2010067899A1 (en) 2008-12-11 2009-12-11 Memory device and controlling method of the same

Publications (2)

Publication Number Publication Date
KR20110088566A true KR20110088566A (ko) 2011-08-03
KR101409095B1 KR101409095B1 (ko) 2014-06-17

Family

ID=42242880

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117013369A KR101409095B1 (ko) 2008-12-11 2009-12-11 메모리 장치 및 그 제어 방법

Country Status (7)

Country Link
US (3) US9110781B2 (ko)
EP (1) EP2356571B1 (ko)
JP (1) JP5175703B2 (ko)
KR (1) KR101409095B1 (ko)
CN (1) CN102246151B (ko)
TW (2) TWI430089B (ko)
WO (1) WO2010067899A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5175703B2 (ja) * 2008-12-11 2013-04-03 株式会社東芝 メモリデバイス
JP4758518B2 (ja) * 2009-06-18 2011-08-31 パナソニック株式会社 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ
JP5362010B2 (ja) * 2009-07-29 2013-12-11 パナソニック株式会社 メモリ装置、ホスト装置およびメモリシステム
JP2011175615A (ja) * 2010-01-27 2011-09-08 Toshiba Corp ホスト装置およびメモリデバイス
US8938606B2 (en) * 2010-12-22 2015-01-20 Intel Corporation System, apparatus, and method for segment register read and write regardless of privilege level
CN102096722B (zh) * 2011-03-21 2013-03-27 华为数字技术(成都)有限公司 文件存储方法和装置
JP2012248258A (ja) * 2011-05-31 2012-12-13 Funai Electric Co Ltd 光ディスク装置
TWI605458B (zh) * 2012-04-25 2017-11-11 Sony Corp Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods
JP5976608B2 (ja) 2012-10-30 2016-08-23 株式会社東芝 メモリデバイス
KR102549540B1 (ko) * 2017-09-22 2023-06-29 삼성전자주식회사 스토리지 장치 및 그 동작 방법
CN108683811A (zh) * 2018-05-14 2018-10-19 Oppo广东移动通信有限公司 移动终端及其生物信息识别方法、解锁方法以及存储介质
JP7252821B2 (ja) * 2019-04-17 2023-04-05 キヤノン株式会社 記録装置、記録方法、プログラム、及びメモリカード

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745418A (en) * 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
US6230245B1 (en) * 1997-02-11 2001-05-08 Micron Technology, Inc. Method and apparatus for generating a variable sequence of memory device command signals
JP3524337B2 (ja) * 1997-07-25 2004-05-10 キヤノン株式会社 バス管理装置及びそれを有する複合機器の制御装置
FR2772384B1 (fr) 1997-12-16 2000-02-04 Bp Chemicals Snc Procede de demarrage d'une polymerisation d'olefine en phase gazeuse
JP3585091B2 (ja) * 1998-06-15 2004-11-04 富士通株式会社 記憶装置
JP2000215149A (ja) * 1999-01-25 2000-08-04 Canon Inc 複合機器の制御装置
US6850995B1 (en) * 1999-01-25 2005-02-01 Canon Kabushiki Kaisha Control unit selectively connected with a first bus and a second bus for controlling a displaying process in parallel with a scanning process
JP2000211216A (ja) * 1999-01-25 2000-08-02 Canon Inc 複合機器の情報処理方法及びシステム
JP2000216935A (ja) * 1999-01-25 2000-08-04 Canon Inc 複合機器の情報処理システム
US7457897B1 (en) * 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
US6633500B1 (en) 2002-04-26 2003-10-14 Macronix International Co., Ltd. Systems and methods for refreshing a non-volatile memory using a token
JP2005301497A (ja) * 2004-04-08 2005-10-27 Hitachi Ltd ストレージ管理装置、リストア方法及びそのプログラム
CN100437517C (zh) * 2004-04-28 2008-11-26 松下电器产业株式会社 非易失性存储装置和数据写入方法
KR20070005730A (ko) * 2004-04-28 2007-01-10 마츠시타 덴끼 산교 가부시키가이샤 불휘발성 기억장치 및 데이터 기록방법
US7797483B1 (en) * 2004-06-23 2010-09-14 Emc Corporation Write interceptor for tracking changes to disk image
JP4874588B2 (ja) 2004-07-12 2012-02-15 株式会社東芝 記憶デバイスおよびホスト機器
CA2682814C (en) 2004-07-12 2011-11-08 Kabushiki Kaisha Toshiba Storage device and host apparatus
US20060059384A1 (en) * 2004-08-16 2006-03-16 Fabrice Helliker Full backup from incremental /differential backups
JP4622422B2 (ja) * 2004-09-28 2011-02-02 パナソニック株式会社 記憶装置
JP4682261B2 (ja) * 2006-09-15 2011-05-11 サンディスク コーポレイション 不揮発性メモリおよびクラスベースの更新ブロック置換規則のための方法
US7779056B2 (en) * 2006-09-15 2010-08-17 Sandisk Corporation Managing a pool of update memory blocks based on each block's activity and data order
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US8572307B2 (en) * 2007-07-20 2013-10-29 Panasonic Corporation Memory controller, memory card, and nonvolatile memory system
US8090917B2 (en) * 2008-05-09 2012-01-03 International Business Machines Corporation Managing storage and migration of backup data
JP5175703B2 (ja) * 2008-12-11 2013-04-03 株式会社東芝 メモリデバイス
JP2011175615A (ja) * 2010-01-27 2011-09-08 Toshiba Corp ホスト装置およびメモリデバイス

Also Published As

Publication number Publication date
EP2356571B1 (en) 2020-01-22
TWI534616B (zh) 2016-05-21
CN102246151A (zh) 2011-11-16
US20110238933A1 (en) 2011-09-29
TW201027336A (en) 2010-07-16
JP5175703B2 (ja) 2013-04-03
TWI430089B (zh) 2014-03-11
EP2356571A1 (en) 2011-08-17
KR101409095B1 (ko) 2014-06-17
TW201441814A (zh) 2014-11-01
EP2356571A4 (en) 2012-07-04
US9110781B2 (en) 2015-08-18
USRE49921E1 (en) 2024-04-16
JP2010140268A (ja) 2010-06-24
WO2010067899A1 (en) 2010-06-17
USRE48983E1 (en) 2022-03-22
CN102246151B (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
USRE49921E1 (en) Memory device and controlling method of the same
US7227788B2 (en) Memory management device and memory device
JP3898305B2 (ja) 半導体記憶装置、半導体記憶装置の制御装置及び制御方法
KR20120098850A (ko) 메모리 디바이스 및 호스트 장치
US8208322B2 (en) Non-volatile memory control
US20120173795A1 (en) Solid state drive with low write amplification
US20030065899A1 (en) Memory system sectors
JP4977703B2 (ja) 予定再生操作を伴う不揮発性メモリ
JPWO2005103903A1 (ja) 不揮発性記憶システム
US8819332B2 (en) Nonvolatile storage device performing periodic error correction during successive page copy operations
JP2003280979A (ja) 情報記憶装置
JP6719508B2 (ja) メモリ制御装置
US20060059296A1 (en) Emulating small block size of flash memory
US20050204115A1 (en) Semiconductor memory device, memory controller and data recording method
JP4985108B2 (ja) データ記憶装置およびその制御方法
JP2003263894A (ja) 不揮発性半導体メモリ装置の制御方法
JP2003242788A (ja) 不揮発性半導体メモリ装置及びその制御方法
JP2011199377A (ja) 記録装置
JP2008299513A (ja) データ記憶装置およびその制御方法
JP2006252579A (ja) 不揮発性半導体メモリ装置及びその制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 6