KR100826065B1 - 메모리카드 및 메모리카드 시스템 - Google Patents

메모리카드 및 메모리카드 시스템 Download PDF

Info

Publication number
KR100826065B1
KR100826065B1 KR1020067016424A KR20067016424A KR100826065B1 KR 100826065 B1 KR100826065 B1 KR 100826065B1 KR 1020067016424 A KR1020067016424 A KR 1020067016424A KR 20067016424 A KR20067016424 A KR 20067016424A KR 100826065 B1 KR100826065 B1 KR 100826065B1
Authority
KR
South Korea
Prior art keywords
write
data
block size
memory card
host device
Prior art date
Application number
KR1020067016424A
Other languages
English (en)
Other versions
KR20060126775A (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 KR20060126775A publication Critical patent/KR20060126775A/ko
Application granted granted Critical
Publication of KR100826065B1 publication Critical patent/KR100826065B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • 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/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • G06K19/0772Physical layout of the record carrier
    • G06K19/07732Physical layout of the record carrier the record carrier having a housing or construction similar to well-known portable memory devices, such as SD cards, USB or memory sticks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)
  • Storage Device Security (AREA)

Abstract

메모리카드는 호스트 기기에 장착되어서 데이터의 기록에 이용되며, 플래시메모리를 내장하고, 내부 ROM에 미리 플래시메모리 고유의 소거블록 사이즈의 정수 배의 소정 값인 라이트 가능 블록 사이즈를 기록하고 있으며, 호스트 기기에서 발행된 라이트 커맨드의 라이트 블록 사이즈, 즉 기록데이터의 사이즈를 검출하여, ROM 내의 라이트 가능 블록 사이즈와 대조함으로써, 라이트 블록 사이즈가 라이트 가능 블록 사이즈의 정수 배인가 여부에 의해 기록의 허가 여부를 판정하며, 기록 허가로 판정한 경우에만 호스트 기기로부터의 데이터를 플래시메모리에 기록하고, 기록 불허가로 판정한 경우에는 호스트 기기에 에러 응답을 송신한다.
라이트 블록 사이즈, 라이트 가능 블록 사이즈, 대조, 정수 배, 플래시메모리

Description

메모리카드 및 메모리카드 시스템{MEMORY CARD AND MEMORY CARD SYSTEM}
본 발명은 플래시메모리를 포함하는 메모리카드 및 메모리카드에 데이터를 기록하기 위한 메모리카드 시스템에 관한 것이다.
플래시메모리가 내장된 카드형 기록매체인 SD(Secure Digital) 카드 등의 메모리카드는, 초소형 초박형이며, 그 취급의 용이성에서 디지털 카메라 등의 디지털 기기에서 데이터를 기록하기 위해 널리 이용되고 있다. 예를 들어, 메모리카드는 MPEG4(Moving Picture Expert Group 4)와 같은 비교적 낮은 전송률의 동화상을 기록하기 위한 기록매체로 이용되고 있다.
이 메모리카드에 내장되어 있는 플래시메모리는 기록된 데이터를 소거하기 위한 최저 단위가 되는 일정한 사이즈의 블록(이하 「소거블록」이라 한다)이 복수 모여서 구성되어 있다. 데이터를 소거하는 경우에는 소거블록 단위로 소거동작이 이루어진다. 이 소거블록은 통상은 일정한 사이즈의 복수의 페이지(이하 「라이트 페이지(write page)」라 한다)에 의해 구성되어 있으며, 데이터의 기록은 반드시 라이트 페이지 단위로, 소거가 완료된 라이트 페이지에 대해서 이루어진다.
도 1은 메모리카드에 데이터를 기록하는 모습을 나타내는 도면이다.
동 도면은, 상태 901a 내지 901d에 의해, 512 바이트의 라이트 페이지 2개로 하나의 소거블록을 구성하고 있는 플래시메모리에서의 2개의 소거블록을 재기록(rewrite) 대상으로 하여, 소거블록을 구성하고 있는 2개의 라이트 페이지에 한꺼번에 기록된 데이터 중 일방의 라이트 페이지의 데이터만을 재기록하는 경우의 상태변화의 예를 나타내고 있다.
상태 901a는, 2개의 소거블록 중, 일 측(도 1에서 상단)의 소거블록에는 데이터 A와 데이터 B가 기록되어 있고, 타 측(도 1에서 하단)의 소거블록은 소거가 완료된 상태이다.
상태 901a인 플래시메모리에서의 데이터 B를 재기록할 필요가 있는 경우에는, 먼저, 하단의 소거가 끝난 하나의 라이트 페이지에 새로이 변화시킨 데이터 B(NEW)를 기록한다. 이 결과, 플래시메모리는 상태 901b로 변화한다.
다음에, 상단에 기록된 데이터 A를 하단의 소거블록 내로 복사하고, 상태 901c로 하며, 그 후, 상단의 소거블록을 소거한다. 이 결과, 플래시메모리는 상태 901d로 변화한다.
소거블록의 일부의 라이트 페이지를 재기록할 필요가 있을 때의 상술한 일련의 동작을 여기에서는 「드래그인 세이브(drag-in save)」라고 한다.
이 드래그인 세이브가 발생함으로써, 예를 들어 호스트 기기(host apparatus)가 1 라이트 페이지 분의 기록을 지시하는 라이트 커맨드(write command)를 발행한 때에, 그 지시한 라이트 페이지 수보다도 실제로 플래시메모리에 기록되는 대상이 되는 라이트 페이지 수가 많아지며, 그 결과로, 호스트 기기가 파악할 수 있는 이상으로 기록속도가 저하하게 된다.
이와 같은 메모리카드에 대해서 고속 기록을 실현하기 위해, 본 출원의 발명자들은 메모리카드를 구성하는 플래시메모리의 소거블록의 정수 배의 블록 단위로 메모리카드에 라이트 커맨드를 발행하여 데이터를 기록하는 방식을 창안하여, 이미 일본국에 특허출원(일본국 특원 2003-121178호)을 하였다.
또, 고속 기록을 실현하기 위한 방식으로, 복수의 플래시메모리로 구성되어 있는 메모리카드에서의 소거블록 중, 구성요소인 모든 라이트 페이지가 기록 가능한 상태인 소거블록을 검색하여, 복수의 소거블록에 대해서 병렬로 기록하는 방식이 일본국 공개특허공보에 제시되어 있다(특허문헌 1 참조).
그러나 디지털 영상기기로부터의 DV(Digital Video) 포맷에 의한 출력과 같이, 4MB/sec라는 높은 전송률로 출력되는 동화상을 장시간 기록하기 위한 기록매체로 메모리카드를 사용하기 위해서는 메모리카드에 대한 기록 레이트가 일정 레이트 이상일 것이 보증되어 있을 필요가 있다.
그러나 종래의 메모리카드의 고속 기록을 위한 방식은 메모리카드의 기록속도 성능으로 기록 레이트의 하한치(이하 「최저 기록 레이트」라 한다)를 보증하는 것은 아니다. 이 최저 기록 레이트의 보증은 호스트 기기가 그 최저 기록 레이트로 계속해서 메모리카드에 데이터를 기록할 수 있다는 보증을 의미한다.
또한, 메모리카드에서는, 최대 기록 레이트로, 예를 들어 약 10MB/sec를 공표하고 있는 상품도 종래에는 시판되고 있었으나, 내장하는 플래시메모리의 편차(variation)를 상정한 사양(spec)은 아니며, 최저 기록 레이트를 보증하고 있는 것은 아니다.
이하, 종래의 고속 기록을 위한 방식에 의해서도 최저 기록 레이트를 보증하기가 어려운 이유를 설명한다.
일반적으로, 퍼스널 컴퓨터(PC)에서는 파일 시스템으로 파일 할당 테이블(File Allocation Table, FAT) 시스템이 채용되고 있고, FAT 시스템에서는 기본적으로는 액세스 단위가 되는 섹터를 512 바이트로 정의하고 있으므로, 통상은 PC로부터의 라이트 커맨드는 512 바이트를 라이트 블록 사이즈로 하여, 즉 512 바이트 단위로 발행된다. 이것을 전제로 하여, 512 바이트의 라이트 페이지를 8개 포함하여 구성된 소거블록을 복수 포함하는 메모리카드에 대해서 PC가 데이터를 기록하는 경우를 상정하여 설명한다.
소거블록이 8개의 라이트 페이지로 구성되어 있는 메모리카드에서는 이하와 같은 알고리즘이 채용되는 경우가 많다.
메모리카드는, 일반적으로, 보증하는 기록용량을 실현하기 위해 필요로 하는 소거블록 수와는 별도로, 작업용의 소정 수(예를 들어 40개)의 소거블록을 여분으로 갖는다. 이 여분으로 가지고 있는 소거블록을 작업용 블록(이하 「워크 블록(work block)」이라 한다)으로 취급한다.
PC가 동일한 섹터를 반복해서 재기록할 필요가 있을 때에, 이를 플래시메모리의 동일한 라이트 페이지를 재기록하도록 실현하면, 그 라이트페이지의 기록 회수가 집중적으로 증대하여 플래시메모리의 수명이 단축되므로, 이를 회피하기 위해 워크 블록을 이용한 제어가 이루어진다.
예를 들어, 전체 기록용량에 상당하는 소거블록에 대한 기록이 완료된 메모 리카드에 반복해서 데이터의 덮어쓰기(overwrite)를 하는 경우, 그 40개의 워크 블록에 순차 기록을 해 가서 모든 워크 블록이 기록 완료로 천이한 후에, 그 워크 블록, 즉 소거블록을 소거하고 나서 다시 기록을 하는 순서로 이 덮어쓰기 동작이 이루어진다.
도 2는 512 바이트의 8개의 라이트 페이지를 포함하는 소거블록을 갖는 메모리카드의 상태변화를 나타내는 도면이다.
상태 902a는 섹터 1을 1회 재기록한 상태, 상세하게는 원래의 라이트 페이지와는 별도의 워크 블록 내의 라이트 페이지를 재기록함으로써 섹터 1을 재기록한 상태이다. 상태 902b는 섹터 1을 8회까지 재기록한 상태, 상태 902c는 섹터 3, 섹터 5, 섹터 7을 더 재기록한 상태를 나타내고 있다.
또한, 동 도면 중의 기호 x는 라이트 페이지의 내용이 무효화 된 것을 나타내고 있고, 예를 들어 1x는 섹터 1의 내용을 갖는 라이트 페이지가 무효화 된 상태를 나타낸다. 또한, 메모리카드에서 각 라이트 페이지에 대해서 유효인가 무효인가가 테이블을 이용하여 관리되고 있다.
이하, 기록이 완료된 라이트 페이지로서 무효화가 된 라이트 페이지를 「무효 페이지」, 기록이 완료된 라이트 페이지로서 무효화 되어 있지 않은 라이트 페이지를 「유효 페이지」라고 한다. 또, 동 도면 중 New라는 기호는 섹터 내용이 갱신된 것을 나타내고 있으며, 예를 들어 1(New)은 내용이 갱신된 섹터 1을 나타내고 있다.
종래의 고속 기록을 위한 방식에서는, 상태 902a에서, 도 1의 상태 901c로 표시한 것과 같은 드래그인 세이브는 실시하지 않는다. 드래그인 세이브 동작을 시행하면, 512 바이트의 하나의 라이트 페이지에 기록을 하기 위해 반드시 512 바이트×8, 즉 4 킬로바이트의 라이트가 발생해서 기록 속도가 대폭 낮아지므로, 이를 피하기 위해서이다.
워크 블록의 수에 대해서 고찰하면, 당초에 40개이던 워크 블록은, 상태 902c에서는 36개가 되고, 마찬가지로 섹터 2, 섹터 4, 섹터 6도 8회 재기록을 하면 워크 블록의 수는 33개가 된다.
8개의 라이트 페이지로 1 소거블록을 구성하고 있는 경우, 당초에 1개의 소거블록에 대응하는 것이었던 각 섹터(예를 들어 섹터 1 내지 섹터 8)는 최대 8개의 소거블록으로 분산되어 버린다. 이 현상을 「논리분산」이라고 한다.
이 논리분산이 발생하면, 워크 블록의 수가 급격하게 감소하여, 워크 블록의 최저 수(예를 들어 1이라고 하는 설정치)에 도달할 가능성이 있다. 워크 블록이 최저 수에 도달하면, 워크 블록을 새로 작성하기 위해 빈 블록(empty block) 검색의 태스크를 실행한다.
여기서, 빈 블록 검색의 태스크란, 기록이 완료된 소거블록을 워크 블록으로 취급하도록 하기 위해, 즉 유효한 데이터가 기록되어 있지 않은 상태로 하기 위해서, 모든 소거블록에서 도 2의 x로 표시된 무효 페이지를 검색하는 태스크이다. 그리고 무효 페이지를 갖는 소거블록에서의 유효 페이지를 워크 블록에 보관(save)하고 상기 소거블록을 소거함으로써 새로운 워크 블록을 작성한다.
이상의 동작을 도 3에 도시하였다. 즉, 도 3은 무효 페이지를 갖는 소거블록 에서 유효 페이지를 워크 블록에 보관하기 전후의 상태를 나타내는 도면이다.
동 도면 중, 상단은 빈 블록 검색의 태스크에 의해 검출된, 새로운 워크 블록으로 변환을 할 수 있는 기록이 완료된 소거블록을 나타내고, 하단은 워크 블록을 나타내고 있다. 상태 903b는 상태 903a에서 유효 페이지를 워크 블록에 보관한 상태를 나타내고 있다.
상태 903b에서는 상단의 3개의 소거블록은 모두 무효 페이지로 구성되어 있으므로, 이들을 소거함으로써 새로 3개의 워크 블록을 작성할 수 있게 된다.
이와 같은 빈 블록 검색의 발생은 메모리카드의 기록속도를 감소시킨다.
그리고 메모리카드는 복수의 호스트 기기에 수시로 장착되어 이용될 수 있으므로, 설령 메모리카드에 소거블록 단위로 기록동작을 행하는 호스트 기기라도, 이전에 메모리카드에 기록을 한 호스트 기기를 특정할 수 없는 이상, 빈 블록 검색의 태스크를 실행할 필요가 발생할 가능성이 있다. 예를 들어 PC에 의해 섹터 단위로 기록된 메모리카드에 대해서 전용의 호스트 기기에서 소거블록 단위로 기록을 한 경우 등에서는 빈 블록 검색이 발생하여 메모리카드의 기록속도가 저하할 가능성이 있다. 이것이 메모리카드의 최저 기록 레이트의 보증을 곤란하게 하고 있다.
특허문헌 1 : 일본국 특개 2000-122923호 공보
그래서, 본 발명은 상술한 문제를 감안하여 이루어진 것이며, 어느 일정한 최저 기록 레이트를 보증할 수 있는 메모리카드와 이 메모리카드를 사용하여 데이터를 기록하는 메모리카드 시스템을 제공함을 목적으로 한다.
상기 목적을 달성하기 위한 본 발명은, 플래시메모리와, 호스트 기기와의 사이에서 데이터의 송수신을 행하는 인터페이스 수단과, 소정의 라이트 가능 블록 사이즈를 기억하고 있는 기억수단과, 호스트 기기로부터 라이트 블록 사이즈의 지정을 수반한 상기 플래시메모리에 데이터의 기록을 지시하는 커맨드를 상기 외부 인터페이스 수단을 통해서 수신한 경우에, 당해 라이트 블록 사이즈가 상기 라이트 가능 블록 사이즈와 소정의 관계를 가지는가 여부를 판정하고, 판정 결과에 따라서 상기 플래시메모리에 대한 데이터의 기록의 허가 여부에 관한 제어를 행하는 제어수단을 구비하는 것을 특징으로 한다.
여기서, 라이트 커맨드는 플래시메모리에 데이터를 기록하는 취지의 지시로서, 기록할 블록의 데이터 사이즈, 즉 한 덩어리의 데이터의 데이터 사이즈인 라이트 블록 사이즈의 지정을 수반하며, 호스트 기기로부터 메모리카드에 전달되는 것이다. 또, 라이트 가능 블록 사이즈는 라이트 커맨드에 대한 허가 여부 판정용 데이터이며, 소정의 데이터 사이즈를 나타낸다. 또한, 데이터의 기록의 허가 여부에 관한 제어는 기록을 실행하는가 여부에 대한 제어이며, 기록을 실행하지 않는 경우로는, 예를 들어, 라이트 커맨드에 대한 거절의 취지를 나타내는 에러 응답을 반송하는 것 등을 상정하고 있다.
상기 구성을 구비하는 본 발명의 메모리카드는, 호스트 기기가 라이트 커맨드에 의해 기록하는 데이터의 사이즈인 라이트 블록 사이즈가 어느 최저 기록 레이트를 보증하기 위해 필요로 하는 소정의 조건을 만족하는가 여부를 판정해서, 데이터의 기록을 실행하는가 여부에 관한 제어를 행할 수 있다. 그리고 그 조건을 만족하지 않는 경우에는, 라이트 커맨드에 대해서 에러 응답을 반송하는 등에 의해 데이터의 기록을 실행하지 않으므로, 이 메모리카드가 순차 복수의 호스트 기기에서 기록에 이용되게 되어도, 그 최저 기록 레이트의 보증이 가능해진다.
또한, 그 조건판정의 재료로 본 발명의 메모리카드는 내장하는 플래시메모리의 소거블록 사이즈를 감안하여 미리 설정된 라이트 가능 블록 사이즈를 불휘발성 메모리 등에 기억하는 구성으로 되어 있다. 플래시메모리에 대한 기록속도 성능을 어느 일정 레벨 이상으로 유지하도록 보증하기 위해서는, 라이트 블록 사이즈가, 플래시 메모리의 소거블록의 사이즈와의 사이에서 일정한 관계를 만족하여야 한다는 관점에서, 메모리카드 내에 기억되어 있는 라이트 가능 블록 사이즈의 데이터 값이 소거블록의 사이즈를 고려하여 정해지면, 어느 최저 기록 레이트에서의 기록이 보증될 수 있게 된다.
또, 상기 소정의 라이트 가능 블록 사이즈는 상기 플래시메모리에 대한 소거블록의 사이즈의 정수 배의 사이즈이고, 상기 제어수단의 판정기준이 되는 상기 소정의 관계는 상기 라이트 블록 사이즈가 상기 라이트 가능 블록 사이즈의 정수 배가 되어 있는 관계이며, 상기 제어수단은 상기 소정의 관계를 갖는 경우에만 플래시메모리에 데이터를 기록하도록 제어하는 것으로 해도 좋다.
이에 의해, 라이트 블록 사이즈가 소거블록의 정수 배인 소정 값의 라이트 가능 블록을 최소 단위로 하여, 그 라이트 가능 블록의 정수 배인 경우에만 플래시메모리에 그 라이트 블록 사이즈만큼의 데이터가 기록되게 되므로, 이 메모리카드가 복수의 호스트 기기에 순차 장착되어 기록된 경우에도, 플래시메모리에 대한 데이터의 기록에서는 드래그인 세이브가 일어나지 않으며, 어떤 호스트 기기라도 어느 최저 기록 레이트에서의 기록을 계속 행할 수 있게 된다. 따라서 이 메모리카드는 최저 기록 레이트의 보증이 가능해지게 되므로 동화상 등의 리얼 타임 기록에 적합하게 된다.
또, 상기 메모리카드는 상기 기억수단에서 상기 라이트 가능 블록 사이즈를 판독하여 상기 외부 인터페이스 수단을 통해서 호스트 기기에 전달하는 전달수단을 더 구비하는 것으로 해도 좋다.
이에 의해, 호스트 기기는 메모리카드로부터 라이트 가능 블록 사이즈를 취득할 수 있고, 이에 의해 라이트 커맨드에 수반되는 라이트 블록 사이즈, 즉 한번에 기록할 데이터 사이즈를 적절하게 정할 수 있게 된다.
또, 상기 기억수단은 상기 라이트 가능 블록 사이즈와 동일한 사이즈 단위로 상기 플래시메모리에 데이터의 기록을 행하는 한에 있어서 보증되는 최저 기록 레이트를 나타내는 것으로 미리 정해져 있는 보증 라이트 레이트를 더 기억하고 있고, 상기 전달수단은 상기 기억수단에서 보증 라이트 레이트를 판독하여 상기 외부 인터페이스 수단을 통해서 호스트 기기에 더 전달하는 것으로 해도 좋다.
이에 의해, 호스트 기기는, 메모리카드로부터 라이트 가능 블록 사이즈를 취득해서 그것을 최소 단위로 하여 데이터를 기록하는 한은, 보증되는 최저 기록 레이트인 보증 라이트 레이트도 메모리로부터 취득할 수 있게 된다. 즉, 호스트 기기가 미리 기억되어 있는 라이트 가능 블록 사이즈가 다른 복수의 메모리카드를 순차 교체하여 이용하고 있는 경우에도, 이용 중인 메모리카드로부터 적절하게 라이트 가능 블록 사이즈를 취득할 수 있고, 그 사이즈에 맞춰서 호스트 기기는 적절한 라이트 블록 사이즈에서의 데이터의 기록을 행할 수 있게 된다. 예를 들어, 영상신호를 압축하여 메모리카드에 기록하는 처리를 할 수 있게 된다. 예를 들어, 영상신호를 압축하여 메모리카드에 기록하는 처리를 하는 호스트 기기에서는, 메모리카드별로 취득한 라이트 가능 블록 사이즈에 따라서 압축률을 변경해서 적절하게 라이트 블록 사이즈를 조정하기만 하면, 최저 기록 레이트를 가지고 리얼 타임으로 데이터를 기록할 수 있게 된다.
또, 상기기억수단은 상기 라이트 가능 블록 사이즈의 특정 정수 배인 사이즈를 단위로하여 상기 플래시메모리에 데이터의 기록을 행하는 한에 있어서 보증되는 최저 기록 레이트를 나타내는 것으로 미리 정해져 있는 조건부 보증 라이트 레이트를 더 기억하고 있고, 상기 전달수단은 상기 기억수단에서 조건부 보증 라이트 레이트를 판독하여 상기 외부 인터페이스 수단을 통해서 호스트 기기에 더 전달하는 것으로 해도 된다.
이에 의해, 메모리카드의 라이트 가능 블록 사이즈가 예를 들어 128 킬로바이트(KB)인 경우에, 그 128KB 단위로 데이터를 기록한 경우에 보증되게 되는 최저 기록 레이트를 나타내는 보증 라이트 레이트 외에, 예를 들어 그 2배인 256KB 단위로 데이터를 기록한 경우에 보증되게 되는 최저 기록 레이트를 나타내는 조건부 보증 라이트 레이트를 호스트 기기가 취득할 수 있고, 호스트 기기는 필요로 하는 최저 기록 레이트에 따라서 기록하는 데이터의 사이즈인 라이트 블록 사이즈를 적절하게 정할 수 있게 된다.
또, 상기기억수단은, 상기 보증 라이트 레이트에 의해 나타내는 최저 기록 레이트를 보증하기 위해, 상기 외부 인터페이스 수단에 데이터를 전달하기 위한 호스트 기기 측의 버퍼메모리에 필요로 하게 되는 용량을 나타내는 것으로 미리 정해져 있는 버퍼메모리 용량 데이터를 더 기억하고 있고, 상기 전달수단은 상기 기억수단에서 버퍼메모리 용량 데이터를 판독하여 상기 외부 인터페이스 수단을 통해서 호스트 기기에 더 전달하는 것으로 해도 좋다.
이에 의해, 호스트 기기는 메모리카드로부터 버퍼메모리 용량 데이터를 취득할 수 있고, 이에 의거하여, 최저 기록 레이트로 계속해서 데이터를 기록할 필요가 있는 경우에 버퍼메모리의 용량을 조정할 수 있게 된다. 또한, 버퍼메모리는 메모리카드의 기록 레이트의 유동성 및 에러 재기록 등을 고려하면 일정한 기록 레이트를 보증하기 위해 유효하게 작용한다.
또, 상기 메모리카드는, 상기 외부 인터페이스 수단을 통한 호스트 기기로부터의 요구에 따라서, 상기 기억수단에 기억되어 있는 상기 라이트 가능 블록 사이즈를 원래보다도 작은 사이즈로 재기록(rewrite)하고, 이에 대응하여 상기 보증 라이트 레이트를 재기록하는 갱신수단을 더 구비하는 것으로 해도 좋다.
이에 의해, 메모리카드에서 당초 정해져 있는 최저 기록 레이트의 보증이 불필요한 용도에 메모리카드를 계속해서 이용하는 경우 등에 있어서는, 호스트 기기는 라이트 가능 블록 사이즈를 작은 것으로 변경하여, 작은 라이트 블록 사이즈로 데이터를 기록할 수 있게 된다. 다만, 이 변경까지는 당초의 최저 기록 레이트는 보증되나, 변경 후에는 당초의 최저 기록 레이트는 보증되지 않게 된다.
또, 상기 메모리카드는, 상기 외부 인터페이스 수단을 통한 호스트 기기로부터의 요구에 따라서, 상기 기억수단에 기억되어 있는 상기 라이트 가능 블록 사이즈를 원래보다도 작은 사이즈로 재기록하는 라이트 가능 블록 사이즈 갱신수단을 더 구비하는 것으로 해도 좋다.
이에 의해, 예를 들어 소거블록 사이즈가 128KB이고, 메모리카드의 당초의 라이트 가능 블록 사이즈가 256KB이었던 경우에, 호스트 기기로부터의 요구에 따라서 미리 메모리카드 내부에 보유하고 있던, 128KB에 대응하는 최저 기록 레이트를 새로운 보증 라이트 레이트로 하여 메모리카드를 장착한 호스트 기기에 전달할 수 있도록 할 수 있다. 또, 호스트 기기로부터의 요구에 따라서 라이트 가능 블록 사이즈를 변경한 때에는 당초의 보증 라이트 레이트에 의한 최저 기록 레이트의 보증의 불가능하게 되었다는 사실을 나타내기 위해, 미리 규정해 둔 보증 불가능을 나타내는 값(예를 들어 0)이 되도록 보증 라이트 레이트를 변경하고, 그 이후에 메모리카드를 장착한 각 호스트 기기에 그 취지를 전달할 수 있게 된다.
또, 본 발명의 메모리카드 시스템은, 청구항 1에 기재된 메모리카드와, 당해 메모리카드와의 사이에서 데이터의 송수신을 행하는 호스트 기기를 구비하는 메모리카드 시스템으로, 상기 호스트 기기는, 상기 메모리카드에 기록을 필요로 하는 제 1 데이터의 사이즈가 상기 라이트 가능 블록 사이즈 미만인 경우에는, 상기 외부 인터페이스 수단을 통해서 상기 메모리카드의 플래시메모리에서 제 2 데이터를 판독하여, 제 1 데이터와 제 2 데이터를 합침으로써 당해 라이트 블록 사이즈와 동일한 사이즈의 제 3 데이터를 구축하고, 제 3 데이터를 상기 플래시메모리에 기록하도록 상기 메모리카드에 라이트 커맨드를 전달하는 리드 모디파이 라이트 수단(read-modify-write unit)을 구비하는 것을 특징으로 한다.
이에 의해, 호스트 기기가 메모리카드에 기록할 데이터가 라이트 가능 블록 사이즈를 만족하지 않는 경우에는, 메모리카드로부터 미리 데이터를 판독하여, 이를 합침으로써 라이트 가능 블록 사이즈가 되도록 기록할 데이터를 재구축하며, 그 재구축한 데이터를 기록하기 위해 메모리카드에 라이트 커맨드를 발행하므로, 최저 기록 레이트를 보증하여 메모리카드에 데이터의 기록을 행할 수 있게 된다. 따라서 이 메모리카드 시스템은, 예를 들어 수신한 디지털 방송 프로그램이나 DV에서 촬영한 동화상 등을 리얼 타임으로 메모리카드에 녹화하기 위한 기록시스템으로 활용할 수 있다.
도 1은 메모리카드에 데이터를 기록하는 모습을 나타내는 도면이다.
도 2는 라이트 페이지를 포함하는 소거블록을 갖는 메모리카드의 상태변화를 나타내는 도면이다.
도 3은 무효 페이지를 갖는 소거블록에서 유효 페이지를 워크 블록에 보관하기 전후의 상태를 나타내는 도면이다.
도 4는 실시 예 1의 메모리카드의 구성도이다.
도 5는 호스트 기기와 메모리카드 사이에서 전송되는 라이트 커맨드에 관한 신호 및 데이터의 전송 타이밍을 나타내는 도면이다.
도 6A는 섹터와 플래시메모리의 소거블록과의 관계를 나타내는 도면이다.
도 6B는 섹터와 복수의 플래시메모리의 소거블록과의 관계를 나타내는 도면이다.
도 7은 메모리카드를 구성하는 소거블록에 대한 상태 천이 도면이다.
도 8은 필요한 버퍼메모리의 용량을 구하는 대기행렬 계산의 시스템 도면이다.
도 9는 실시 예 2의 메모리카드 시스템의 구성도이다.
도 10은 리드 모디파이 라이트의 동작 이미지를 나타내는 도면이다.
도 11은 실시 예 3의 메모리카드의 구성도이다.
도 12는 라이트 가능 블록 사이즈 갱신요구 커맨드 대응처리를 나타내는 플로차트이다.
(부호의 설명)
1, 41 외부 인터페이스 2, 42 커맨드 해석부
3 제어부
4 라이트 블록 사이즈 판정부
5 데이터 라이트부 6 플래시메모리
7, 47 라이트 가능 블록 사이즈 저장영역
8 보증 라이트 레이트 저장영역
9 버퍼메모리 용량 저장영역
10 화상데이터 입력부 11 압축부
12 버퍼메모리 13 리드 모디파이 라이트부
14 제어부 19, 49 ROM
20, 30 메모리카드 21 호스트 기기
<실시 예 1>
이하, 본 발명의 실시 예 1의 메모리카드에 대해서 설명한다.
도 4는 실시 예 1의 메모리카드의 구성도이다.
또한, 동 도면 중 굵은 실선은 메모리카드(20)에 대해서 호스트 기기로부터 전송되는 기록대상이 되는 데이터의 흐름을 나타내고, 가는 실선은 제어신호 또는 제어데이터의 흐름을 나타내고 있다.
동 도면에 도시한 바와 같이, 실시 예 1의 메모리카드(20)는, 외부 인터페이스(1), 커맨드 해석부(2), 제어부(3), 플래시메모리(6)와, 라이트 가능 블록 사이즈(writable block size) 저장영역(7), 보증 라이트 레이트 저장영역(8) 및 버퍼메모리용량 저장영역(9)을 갖는 ROM(read Only Memory, 19)을 구비한다.
여기서, 외부 인터페이스(1)는 호스트 기기로부터의 커맨드의 수신, 호스트 기기 커맨드에 대한 호스트 기기로의 응답의 반송 및 데이터의 전송을 하는 기능을 갖는다.
커맨드 해석부(2)는 외부 인터페이스(1)에 의해서 수신된 커맨드를 해석하는 기능을 갖는다. 커맨드에는, 메모리카드에 내장되어 있는 플래시메모리에 데이터를 기록하기 위한 지시인 라이트 커맨드, 플래시메모리에서 데이터를 판독하기 위한 지시인 리드 커맨드, 라이트 가능 블록 사이즈 저장영역(7), 보증 라이트 레이트 저장영역(8) 또는 버퍼메모리용량 저장영역(9)이라고 하는 ROM(19)의 각 내용을 판독하기 위한 커맨드 등이 있다. 또한, 호스트 기기가 수신하는 라이트 커맨드는 기록데이터의 양인 라이트 블록 사이즈와 데이터를 기록하는 선두 섹터를 지정하는 라이트 커맨드의 지정을 수반한다.
리드 커맨드에 관한 제어기구 및 제어동작에 대해서는 종래의 메모리카드와 동일하므로 여기에서는 설명을 생략한다. 또한, 커맨드 해석부(2)는, 커맨드를 해석한 결과, 커맨드가 ROM(19)의 각 내용을 판독하기 위한 커맨드인 경우에는, 그 각 내용을 판독하여, 커맨드에 대한 응답으로서 외부 인터페이스(1)를 통해서 호스트 기기에 전송한다.
또, 라이트 가능 블록 사이즈 저장영역(7)은 호스트 기기에 기록을 허용하는 장소의 블록 사이즈를 나타내는 라이트 가능 블록 사이즈가 미리 기록되어 있는 영역이고, 보증 라이트 레이트 저장영역(8)은 보증하는 최저 기록 레이트를 나타내는 보증 라이트 레이트가 미리 기록되어 있는 영역이며, 버퍼메모리용량 저장영역(9)은 그 보증 라이트 레이트를 만족하기 위해 호스트 기기에 요구하는 버퍼메모리의 용량이 미리 기록되어 있는 영역이다.
제어부(3)는 커맨드 해석부에 의한 해석결과에 따라서 플래시메모리(6)에 대한 액세스, 즉 데이터의 판독 및 기록을 행하는 것이며, 라이트 블록 사이즈 판정부(4) 및 데이터 라이트부(5)를 갖는다.
라이트 블록 사이즈 판정부(4)는, 라이트 가능 블록 사이즈 저장영역(7)에 기록되어 있는 라이트 가능 블록 사이즈를 참조하여, 커맨드 해석수단(2)에서 해석 된 라이트 커맨드에서 지정되는 라이트 블록 사이즈 등이 적절한가 여부를 판정하고, 적절하면 라이트 커맨드에 따른 데이터의 기록을 데이터 라이트부(5)가 실행하도록 하고, 부적절하면 외부 인터페이스(1) 등을 통해서 에러 응답을 호스트 기기에 반송하는 기능을 가진다. 또한, 호스트 기기 측에서는, 라이트 커맨드에 대한 에러 응답을 수신한 경우에는, 데이터의 기록을 중지하고, 에러 응답을 수신하지 않은 경우에 있어서 라이트 블록 사이즈에 해당하는 만큼의 데이터를 메모리카드에 연속적으로 전달한다.
이하, 상기 구성을 구비한 메모리카드의 데이터의 기록동작에 대하여 설명한다.
먼저, 호스트 기기는 외부 인터페이스(1)를 통해서 제어 커맨드인 라이트 커맨드를 메모리카드에 발행한다. 여기에서는, 0번 섹터에서부터 연속하여 8 섹터에 데이터를 기록하는 라이트 커맨드가 발행된 경우를 상정하여 설명한다.
도 5는 호스트 기기와 메모리카드 사이에서 전송되는 라이트 커맨드에 관한 신호 및 데이터의 전송 타이밍을 나타내는 도면이다.
도 5 중, 커맨드/응답(111) 단은 호스트 기기로부터 메모리카드(20)로의 커맨드와 메모리카드(20)로부터의 커맨드에 대한 응답과의 천이를 나타낸다. 호스트 기기로부터의 라이트 커맨드의 발행 후에 기록용 데이터의 전송이 개시되며, 정상으로 전송이 이루어지는 경우에 있어서는, 전송 종료 후에 전송 완료의 상태를 나타내는 상태 값(status value)이 메모리카드(20)로부터 호스트 기기에 통지된다.
도 5 중, 전송데이터(112) 단은 기록용 데이터로 512 바이트 단위의 8 섹터 분의 데이터가 호스트 기기에서 메모리카드(20)에 전송되는 모습을 나타낸다.
도 5 중, 인터럽트신호(113) 단은 메모리카드가 호스트 기기에 반송하는 인터럽트신호의 모습을 나타내고 있으며, 호스트 기기로부터 512 바이트의 데이터를 수신할 수 있게 될 때마다 인터럽트신호를 어서트(assert) 하고 있다. 또, 8 섹터의 전송이 종료하여 상태(status)의 준비가 완료한 때에도 호스트 기기에 상태 값을 판독하는 타이밍을 알리도록 인터럽트신호를 어서트 하고 있다. 호스트 기기 측에서는 이 인터럽트신호에 따른 타이밍에 기록해야 할 데이터의 전송 및 상태의 판독을 행할 필요가 있다.
호스트 기기가 라이트 커맨드를 발행하면, 메모리카드(20)는 외부 인터페이스(1)를 거쳐서 이 라이트 커맨드를 수신하여 커맨드 해석부(2)에 전달하고, 커맨드 해석부(2)에서는 「0번째 섹터에서부터 8 연속 섹터의 기록동작」으로 해석하여, 그 해석결과인 데이터는 라이트 블록 사이즈 판정부(4)에 입력된다.
라이트 블록 사이즈 판정부(4)에서는, 라이트 가능 블록 사이즈 저장영역(7)에 기록되어 있는 라이트 가능 블록 사이즈와 커맨드 해석부(2)에 의한 해석결과인 데이터를 참조하여, 라이트 커맨드의 지정이 라이트 가능 블록 사이즈에 의해 정해진 조건을 만족하고 있는가 여부를 판정한다.
여기에서는, 라이트 블록 사이즈가 섹터 수로 표시되고, 라이트 가능 블록 사이즈로 섹터 수(1 섹터 = 512 바이트)를 기록하는 형식인 것으로 하여 설명하면, 라이트 가능 블록 사이즈가 8이면 조건은 다음과 같이 된다.
조건 : {(선두 섹터 번호)%8 = 0}이고, 또한 {(라이트 블록 사이즈인 섹터 수)%8 = 0}
즉, 라이트 커맨드에 의해 지정되는 데이터를 기록하는 선두 섹터가 라이트 가능 블록 사이즈에 의해 표시되는 단위별로 구분된 섹터 군의 경계위치상에 있고, 또한, 라이트 커맨드에 의해 지정되는 라이트 블록 사이즈가 라이트 가능 블록 사이즈에 의해 표시되는 단위 양의 정수 배이면 조건을 만족하게 된다.
따라서 라이트 블록 사이즈 판정부(4)는, 라이트 커맨드에 수반되는 선두 섹터 번호를 8로 나눈 경우의 나머지가 0이고, 또한, 라이트 커맨드에 수반되는 라이트 블록 사이즈인 섹터 수를 8로 나눈 경우의 나머지가 0이라는 조건을 만족하는 경우에만 발행된 라이트 커맨드를 실행하고, 그 이외의 라이트 커맨드를 에러로 호스트에 통지한다. 또, 라이트 블록 사이즈 판정부(4)에서 라이트 커맨드가 실행 가능하다고 판정된 경우에, 그에 후속하여 호스트 기기에서 전송되는 기록데이터는 데이터 라이트부(5)를 통해서 플래시메모리(6)에 기록된다.
그러나 상술한 라이트 가능 블록 사이즈 저장영역(7)에는 플래시메모리(6)의 소거블록에 상당하는 섹터 수가 라이트 가능 블록 사이즈로 기록되어 있다. 이하, 이 라이트 가능 블록 사이즈에 대해서 상세히 설명한다.
여기에서는, 메모리카드에 1개의 플래시메모리가 내장되어 있는 경우를 상정하고 있고, 1 소거 클록이 8 섹터로 구성되어 있어서 플래시메모리의 라이트 페이지가 섹터와 동일한 사이즈인 상태이며, 라이트 가능 블록 사이즈로 8이 기록되어 있는 경우를 상정하고 있다. 만일, 메모리카드에 플래시메모리가 복수 개 내장되어 있어서, 호스트 기기가 발행하는 라이트 커맨드에서의 연속 섹터 번호가 복수의 플 래시메모리에 걸쳐서 인터리브(interleave) 되어 있는 경우에는, (플래시메모리의 소거블록에 상당하는 섹터 수)×(플래시메모리 수)가 라이트 가능 블록 사이즈로 기록되도록 하면 된다.
도 6A 및 도 6B는 섹터와 플래시메모리의 소거블록의 관계를 나타내는 도면이다.
도 6A는 메모리카드가 1개의 플래시메모리로 구성되어 있는 경우를 나타내고, 도 6B는 플래시메모리 121 및 플래시메모리 122로 이루어지는 2개의 플래시메모리로 구성되어 있는 경우를 나타낸다. 도 6A 및 도 6B의 각 수치는 섹터 번호이며, 점선으로 둘러싸인 각각의 사각형은 섹터를, 실선으로 둘러싸인 각각의 사각형은 소거블록을 각각 나타낸다. 도 6B에서는 섹터 번호가 2개의 플래시 메모리에 인터리브 되어 있으므로, 메모리카드의 소거블록을 구성하고 있는 섹터 수는 16개가 된다.
본 실시 예에서는, 이 라이트 가능 블록 사이즈에 의거한 조건판단의 결과로 소거블록의 정수 배인 블록 단위로만 기록이 이루어지도록 하고 있다.
이하, 소거블록의 정수 배의 블록 단위 이외로 기록을 하도록 하는 경우의 문제점에 대해서 도 7을 이용하여 상세하게 설명한다.
도 7은 메모리카드를 구성하는 소거블록의 상태천이를 나타내는 도면이다. 동 도면에 도시한 바와 같이, 각 소거블록의 상태는 이하의 6 상태로 분류된다.
「상태 A」 : 소거블록을 구성하는 모든 라이트 페이지에 기록이 가능하다. 이 상태의 소거블록은 워크 블록으로 취급할 수 있는 것이다.
「상태 B」 : 소거블록을 구성하는 일부의 라이트 페이지에 기록이 가능하며, 기록이 완료된 라이트 페이지에는 유효 페이지가 존재한다.
「상태 C」 : 소거블록을 구성하는 일부의 라이트 페이지에 기록이 가능하며, 기록이 완료된 라이트 페이지는 모두 무효 페이지이다.
「상태 D」 : 소거블록을 구성하는 모든 라이트 페이지는 기록이 불가능(모든 라이트 페이지가 무효 페이지)하다.
「상태 E」 : 소거블록을 구성하는 모든 라이트 페이지는 기록이 불가능(일부의 라이트 페이지가 유효 페이지)하다.
「상태 F」 : 소거블록을 구성하는 모든 라이트 페이지는 기록이 불가능(모든 라이트 페이지가 유효 페이지)하다.
또한, 도 7에서, 실선 화살표는 천이가 가능하다는 것을 나타내고 있고, 점선 화살표는 천이에 드래그인 세이브 동작이 발생하는 경우를 나타내고 있으며, 굵은 선 화살표는 소거블록 단위로만 데이터를 기록한 경우의 천이를 나타내고 있다.
도 7에 도시한 바와 같이, 상태 A의 소거블록은 그 소거블록을 구성하는 모든 라이트 페이지에 기록이 가능하며, 상태 B 및 상태 F로 천이할 수 있다.
상태 B의 소거블록은 그 소거블록을 구성하는 일부의 라이트 페이지에 기록할 수 있으나, 이미 기록되어 있는 라이트 페이지 중에 유효 페이지가 포함되어 있으므로 소거는 할 수 없다. 따라서 상태 C 및 상태 E, 상태 F로 천이할 수 있다.
또, 상태 C의 소거블록은 그 소거블록을 구성하는 일부의 라이트 페이지에 기록이 가능하고, 또한, 기록이 완료된 라이트 페이지는 모두 무효이므로 소거가 가능하며, 상태 A 및 상태 E로 천이할 수 있다.
또, 상태 D의 소거블록은 그 소거블록을 구성하는 모든 라이트 페이지가 기록 불가이나, 모든 라이트 페이지가 무효 페이지이므로, 즉 소거될 소거블록이므로, 그 소거블록을 소거하면 상태 A로 천이한다.
또, 상태 E의 소거블록은 그 소거블록을 구성하는 모든 라이트 페이지가 기록 불가이며, 일부의 라이트 페이지가 유효 페이지이므로 소거도 불가능하다. 다만, 본 상태 E의 유효 페이지인 라이트 페이지를 상태 A 또는 상태 B 또는 상태 C의 소거블록을 구성하는 소거가 끝난 라이트 페이지에 보관하면 상태 D로 천이한다.
또한, 상태 F의 소거블록은 그 소거블록을 구성하는 모든 라이트 페이지가 기록 불가이며, 모든 라이트 페이지가 유효 페이지이므로, 그 소거블록을 구성하는 일부의 라이트 페이지를 다른 소거블록에 보관하면 상태 E로 천이하고, 전체 라이트 페이지를 다른 소거블록에 보관하면 상태 D로 천이한다.
여기서, 빈 블록 검색이 발생하는 상태를 도 7에 도시한 상태천이 도면과 관련시켜서 설명한다. 먼저, 3개의 상태 S1, S2, S3를 정의한다.
메모리카드에 소거블록 단위로 풀(full)로 기록한 상태(S1)는 상태 A와 상태 D 및 상태 F로 구성된다.
소 블록 단위로 데이터를 기록해 가는 상태(S2)는, S1 상태에서 상태 A인 블록이 상태 B, 상태 E로 천이한 상태이며, 상태 B인 블록이 상태 E로 천이한다.
빈 블록 검색이 발생하는 상태(S3)는 상태 A가 아닌 상태이다.
소 블록 단위로 기록해 가면, 메모리카드의 상태가 S1→S2→S3와 같이 천이해 가서 빈 블록 검색이 발생하는 상태가 된다.
S3 상태에서, 모든 소거블록에서 무효 페이지를 검색하는 태스크가 발생하므로, 고속 기록이 곤란해진다.
무효 페이지를 검색하는 경우, 검색한 소거블록에 무효 페이지가 포함되어 있다는 것을 즉시 검출할 수 있으면 비교적 시간이 걸리지 않으나, 최악으로 모든 소거블록을 검색한 후에 검출되는 경우도 있으므로, 빈 블록의 검출에 요하는 시간은 변동이 크다.
상술한 이유에서, 메모리카드에서 고속 기록을 실현하기 위해, 빈 블록 검색의 동작이 발생하지 않도록, 상태 A→상태 F→상태 D→상태 A와 같은 천이를 반복하는 것이 바람직하다.
본 실시 예에서는, 라이트 블록 사이즈 판정부(4)에 의해 라이트 가능 블록 사이즈 저장영역(7)에 의거한 조건을 만족하지 않는 라이트 커맨드를 에러로서 호스트 기기에 통지하고 있다. 따라서 소거블록 단위 이외의 기록을 배제할 수 있으므로, 메모리카드의 기록상태를 일정하게 유지할 수 있고, 메모리카드의 과거의 기록상태에 의해서 그 이후의 기록에서의 기록 레이트가 저하하는 것을 방지할 수 있다. 따라서 이전에 메모리카드에 기록을 한 호스트 기기를 특정하지 않아도 메모리카드의 기록 레이트를 보증할 수 있게 된다.
이하, 메모리카드(20)의 보증 라이트 레이트 저장영역(8)에 기록되어 있는 보증 라이트 레이트에 대하여 설명한다.
보증 라이트 레이트는, 상세하게는, 메모리카드(20)에 대한 데이터의 기록에 있어서 보증되는 최저 기록 레이트와 그 보증의 전제가 되는 라이트 블록 사이즈를 가리키며, 호스트 기기는 라이트 가능 블록 사이즈 및 이 보증 라이트 레이트를 메모리카드에서 판독할 수 있으므로, 예를 들어, 카메라 리코더에서 영상신호를 압축하여 메모리카드에 기록하는 경우에, 보증 라이트 레이트를 만족하도록 압축률을 변경하면 훨씬 유연한 시스템을 구축할 수 있다.
이하, 메모리카드(20)의 버퍼메모리용량 저장영역(9)에 기록되어 있는 버퍼메모리 용량 데이터에 대해서 설명한다.
이 버퍼메모리 용량 데이터는 호스트 기기 측에 구비되어야 할 버퍼메모리의 용량을 가리키는 것이며, 이 버퍼메모리는 이하의 목적으로 사용된다.
제 1 목적은, 플래시 메모리가 기록 시에 에러를 발생한 경우에 호스트 기기가 처리하게 되는 에러 처리와 기록의 재시도 처리의 시간을 흡수하기 위한 것이고, 제 2 목적은, 메모리카드에 대한 기록 알고리즘에서 기록처리시간의 다소의 변동을 평활화하기 위한 것이다.
버퍼메모리의 제 1 목적에서 상정하는 에러가 발생하는 경우는 주로 플래시메모리에 불량 섹터가 발생한 경우이며, 불량 섹터는 100,000회의 기록에서 1회의 확률로 발생한다.
메모리카드(20)에서는 불량 섹터가 발생한 경우의 에러의 등록처리와 기록의 재시도 처리에 요하는 시간으로 100㎳를 요한다. 예를 들어, 메모리카드에 데이터를 기록할 때에 3회 발생하는 것으로 상정하면, 300㎳만큼에 상당하는 버퍼메모리 가 필요하다. 또, 이 경우의 보증 라이트 레이트는 에러를 고려하지 않은 경우의 라이트 레이트보다 약간 낮게 설정할 필요가 있다. 메모리카드에 앤드 리스 기록(endless record)을 하는 경우를 상정하면 상기 버퍼메모리가 오버 플로(overflow) 하는 경우가 있기 때문이다. 상기 버퍼메모리 용량 데이터와 보증 라이트 레이트와의 관계는, 도 8에 도시한 시스템에서, 대기행렬 계산을 사용하여 구할 수 있다.
즉, 에러가 발생하는 확률(ρ)과 메모리카드가 에러 처리에 요하는 시간(Tb), 에러가 없는 경우의 메모리카드의 라이트 처리시간(Ta), 소정 블록의 데이터가 버퍼메모리에 입력되는 시간(Tc)으로부터 소정의 버퍼메모리 용량 데이터에 대한 입력 레이트의 최대 레이트를 구하고, 상기 버퍼메모리 용량데이터 및 최대 레이트를 보증 라이트 레이트로 메모리카드에 미리 등록해 두면 된다.
버퍼메모리의 제 2 목적에 대해서 설명하면, 메모리카드에 대한 기록 알고리즘으로는 다양한 알고리즘을 상정할 수 있으나, 예를 들어, 소정 수의 블록의 기록을 한 후에 논리 어드레스와 물리 어드레스의 변환 테이블을 플래시메모리에 기록하는 알고리즘에서는 그 변환 테이블의 기록시간이 주기적으로 가산되게 된다.
예를 들어, 1,000개의 소거블록을 라이트 할 때마다 변환 테이블을 등록하는 경우에는 보증 라이트 레이트를 평균치로 등록하고, 버퍼메모리 용량 데이터에 변환 테이블의 등록에 요하는 시간에 상당하는 용량을 등록하면 된다.
이상 설명한 것과 같이, 메모리카드의 에러 특성 및 제어 알고리즘에 대응하여 필요한 버퍼메모리 용량 및 보증 라이트 레이트를 메모리카드 자체에 등록함으 로써 리얼 타임 기록을 행하는 메모리카드 시스템에서 메모리카드의 성능을 최대한 발휘할 수 있는 시스템을 구축할 수 있다. 또, 특성이 다른 메모리카드를 장착한 경우라도, 호스트 기기 측이 버퍼메모리 용량 데이터 및 보증 라이트 레이트라는 필요한 정보를 메모리카드의 ROM(19) 등에서 판독하여 참고로 함으로써, 메모리의 할당의 변경이나 영상신호의 압축률을 변경하는 등의 유연한 대응이 가능해진다.
<실시 예 2>
이하, 본 발명의 실시 예 2의 메모리카드 시스템에 대해서 설명한다.
도 9는 실시 예 2에 관한 메모리카드 시스템의 구성도이다.
동 도면에 도시한 바와 같이, 이 메모리카드 시스템은, 실시 예 1에서 설명한 메모리카드(20)와, 이 메모리카드에 데이터를 기록하는 호스트 기기(21)로 구성된다. 여기에서는, 호스트 기기(21)가 카메라 리코더인 것으로 하여 설명한다.
호스트 기기(21)는, 화상데이터 입력부(10), 압축부(11), 버퍼메모리(12), 리드 모디파이 라이트부(read-modify-write unit, 13) 및 제어부(14)를 구비한다.
화상데이터 입력부(10)는 디지털 화상데이터가 입력되는 입력부이다.
압축부(11)는 화상데이터 입력부(10)를 통해서 입력된 화상데이터를 압축하는 기능을 갖는다.
버퍼메모리(12)는 화상데이터를 일시 기억하기 위한 메모리이다.
리드 모디파이 라이트부(13)는 버퍼메모리(12)에서 판독한 데이터를 메모리카드(20)에 기록하며, 이 기록시에 후술하는 리드 모디파이 라이트를 행하는 기능을 갖는다.
제어부(14)는, 메모리카드(20)를 호스트 기기(21)에 장착할 때에, 메모리카드(20)에 미리 기록되어 있는 라이트 가능 블록 사이즈, 보증 라이트 레이트, 및 버퍼메모리 용량 데이터를 판독하기 위한 커맨드를 발행함으로써 이들을 판독해서 제어 파라미터로 보유하고, 그 제어 파라미터에 따라서 압축부(11), 버퍼메모리(12) 및 리드 모디파이 라이트부(13)를 제어하는 기능을 갖는다.
이하, 상기 구성을 구비하는 메모리카드 시스템에서 카메라 리코더인 호스트 기기(21)가 촬상기구로부터 입력되는 디지털 화상데이터를 메모리카드(20)에 리얼 타임으로 기록하는 동작에 대해서 설명한다.
제어부(14)에서는 메모리카드(20)에서 판독하여 보유하고 있는 제어 파라미터에 따라서 다음과 같은 동작을 한다. 즉, 보증 라이트 레이트를 만족하도록 압축부(11)의 압출률을 변경하고, 또, 버퍼메모리 용량 데이터를 만족하도록 호스트 기기에 실장되어 있는 메모리를 장착한 메모리카드용의 버퍼메모리로서 할당하며, 실시 예 1에서 설명한 라이트 가능 블록 사이즈에 관한 조건을 만족하는 라이트 커맨드를 발행한다. 또한, 라이트 커맨드의 발행에 있어서는, 라이트 가능 블록 사이즈가 나타내는 블록 단위로 데이터의 기록을 행하는 라이트 커맨드를 메모리카드에 발행하도록 리드 모디파이 라이트부(13)를 제어한다.
여기서, 이 제어부(14)에 의한 제어를 받은 리드 모디파이 라이트부(13)의 종작에 대해서 설명한다.
제어 파라미터로 보유하고 있는 라이트 가능 블록 사이즈가 나타내는 값이 8인 경우에는 8 섹터(=4 킬로바이트) 단위로 기록할 것이 요구되고 있다. 이 경우, 메모리카드에 기록하는 데이터가 4 킬로바이트의 정수 배인 경우에는 실현이 용이하다. 그러나 22 킬로바이트의 화상데이터를 기록하는 경우에는, 5개의 4 킬로바이트 블록과, 1개의 2 킬로바이트 블록으로 분할하지 않을 수 없다. 물론, 2 킬로바이트의 블록에 더미 데이터(dummy data)를 부가하여 4 킬로바이트의 블록으로 해서 기록해도 좋으나, 이 방법에서는, FAT와 같은 시스템 데이터를 기록할 필요가 있는 경우에는 더미 데이터를 부가할 수 없으므로 적응할 수 없다.
그러므로 8 섹터의 정수 배의 양의 데이터밖에 기록할 수 없는 메모리카드에서 FAT를 갱신하는 경우에는, 메모리카드의 FAT 데이터를 미러링(mirroring) 한 데이터를 호스트 기기가 가지도록 하지 않을 수 없다는 과제가 있다. 리드 모디파이 라이트부(13)가 리드 모디파이 라이트를 행함으로써 이 과제를 해결한다.
도 10은 섹터 번호가 8인 섹터에서부터 연속하여 4 섹터에 기록을 할 필요가 있는 경우의 리드 모디파이 라이트 동작의 이미지를 나타내는 도면이다.
동 도면 중, 데이터 201은 기록이 요구되고 있는 섹터 군에 기록되어야 할 데이터를 나타내고, 데이터 202는 메모리카드에서 판독한 섹터 군의 데이터를 나타내며, 데이터 203은 리드 모디파이 라이트에 의해 실제로 메모리카드 군에 기록되는 데이터를 나타내고 있다.
동 도면에 도시한 바와 같이, 기록을 함에 있어서, 라이트 가능 블록 사이즈가 나타내는 섹터 수에 의거하여 메모리카드로부터의 데이터의 판독을 행하고, 즉, 기록을 할 필요가 있는 섹터와 그 이외의 섹터(이하 「쌍(pair)이 되는 섹터」라 한다)의 섹터 수의 합계가 라이트 가능 블록 사이즈가 나타내는 섹터 수와 일치하 도록 쌍이 되는 섹터를 특정하고, 그 쌍이 되는 섹터의 데이터 202의 판독을 행하며, 기록을 할 필요가 있는 4 섹터의 데이터 201과 이 판독한 4 섹터의 데이터 202를 합해서 합계 8 섹터의 데이터 203을 구축해서 메모리카드에 기록하는 순서에 의해 리드 모디파이 라이트가 실현된다.
이와 같이, 리드 모디파이 라이트를 함으로써, FAT와 같은 시스템 데이터의 갱신에 있어서도 호스트 기기가 미러링 데이터를 가지도록 할 필요가 없게 된다.
또, 더미 데이터를 부가하는 방법을 이용할 수 없는 FAT 갱신시에만 이 리드 모디파이 라이트를 적용하면, 기록하기 전에 일단 판독을 하여야 함에 따른 기록 레이트의 저하도 매우 적다.
이상 설명한 바와 같이, 본 실시 예의 메모리카드 시스템에서는, 메모리카드에 미리 기록되어 있는 라이트 가능 블록 사이즈, 보증 라이트 레이트, 버퍼메모리 용량 데이터를 참조한 제어를 함으로써 메모리카드에 대한 기록 레이트의 보증이 실현된다.
<실시 예 3>
이하, 실시 예 1의 메모리카드 20을 부분적으로 변형한 메모리카드인 메모리카드 30에 대해서 설명한다.
메모리카드 20은, 기록속도를 어느 일정 속도 이하로 감소시키지 않도록 하기 위해, 플래시메모리를 소거블록의 정수 배인 라이트 가능 블록 사이즈 단위로 구분하여, 그 라이트 가능 블록 사이즈 단위의 정수 배로밖에 호스트 기기로부터의 기록을 인정하지 않는, 즉, 에러로 취급하는 것으로 하고, 이를 위해 ROM(19) 내의 라이트 가능 블록 사이즈를 호스트 기기가 판독하도록 하고 있다. 이에 대해, 메모리카드 30은, 라이트 가능 블록 사이즈를, ROM(19)이 아니라, 플래시메모리(6)와는 별도의 재기록 가능한 불휘발성 메모리에 기록해 두고, 일정한 조건 하에서 라이트 가능 블록 사이즈를 갱신하는 기능을 구비하고 있다.
도 11은 실시 예 3의 메모리카드(30)의 구성도이다. 또한, 동 도면 중 실시 예 1에서 설명한 메모리카드(20)의 구성요소와 동일한 것에는 동일한 부호를 부여하고 있고, 이들에 대해서는 설명을 적절하게 생략한다. 또, 동 도면 중, 굵은 화살표는 메모리카드(30)에 대해서 호스트 기기로부터 송신되는 기록 대상이 되는 데이터의 흐름을 나타내고, 가는 화살표는 제어신호 또는 데이터의 흐름을 나타내고 있다.
도 11에 도시한 바와 같이, 실시 예 3의 메모리카드(30)는, 외부 인터페이스(41), 커맨드 해석부(42), 제어부(3), 플래시메모리(6), 불휘발성 메모리인 라이트 가능 블록 사이즈 저장영역(47)과, 보증 라이트 레이트 저장영역(8) 및 버퍼메모리용량 저장영역(9)을 갖는 ROM(Read Only Memory, 49)를 구비한다.
여기서, 외부 인터페이스 41은, 실시 예 1에서 설명한 외부 인터페이스 1의 기능을 갖는 동시에, 호스트 기기로부터 라이트 가능 블록 사이즈의 갱신요구 커맨드를 접수하고, 이에 응답하는 기능을 더 갖는다.
커맨드 해석부(42)는 외부 인터페이스(41)에 의해서 수신된 커맨드를 해석하는 기능을 갖는다. 또한, 커맨드 해석부(42)는, 커맨드를 해석한 결과 커맨드가 ROM(49)의 각 내용 및 라이트 가능 블록 사이즈 저장영역의 내용을 판독하기 위한 커맨드인 경우에는, 호스트 기기에 그 각 내용을 판독해서 외부 인터페이스(41)를 통해서 커맨드에 대한 응답으로 전송한다. 또, 커맨드가 라이트 가능 블록 사이즈의 갱신요구 커맨드인 경우에는 후술하는 라이트 가능 블록 사이즈 갱신요구 커맨드 대응처리를 한다.
라이트 가능 블록 사이즈 저장영역(47)은, 호스트 기기에 기록을 허용하는 장소의 블록 사이즈를 나타내는 라이트 가능 블록 사이즈를 저장하기 위한, 재기록 가능한 불휘발성 메모리 내의 한 영역이며, 초기치로 실시 예 1에서의 라이트 가능 블록 사이즈 저장영역 7과 같은 값이 설정되어 있다.
또, ROM(49) 내의 보증 라이트 레이트 저장영역(8)은 보증하는 최저 레이트를 나타내는 보증 레이트가 미리 기록되어 있는 영역이며, 버퍼메모리용량 저장영역(9)은 그 보증 레이트를 만족하기 위해 호스트 기기에 요구하는 버퍼메모리 용량 데이터가 미리 기록되어 있는 영역이다.
제어부(3)의 라이트 블록 사이즈 판정부(4)는, 라이트 가능 블록 사이즈 저장영역(47)에 기록되어 있는 라이트 가능 블록 사이즈를 참조하여, 커맨드 해석부(42)에서 해석된 라이트 커맨드에 의해 지정되는 라이트 블록 사이즈 등이 적절한가 여부를 판정하고, 적절하면 데이터 라이트부(5)가 라이트 커맨드에 따른 데이터의 기록을 실행하도록 하고, 부적절하면 외부 인터페이스(41) 등을 통해서 에러를 호스트 기기에 반송하는 기능을 갖는다. 또한, 이 제어부(3)의 제어에 의한 기록동작에 대해서는 실시 예 1에서 설명한 동작과 동일하다.
이하, 라이트 가능 블록 사이즈 갱신요구 커맨드 대응처리에 대해서 설명한 다.
도 12는 라이트 가능 블록 사이즈 갱신요구 커맨드 대응처리를 나타내는 플로차트이다.
라이트 가능 블록 사이즈의 갱신요구 커맨드는 갱신하기 위한 지정 값을 수반하여 호스트 기기에 의해 발행된다.
커맨드 해석부(42)는, 라이트 가능 블록 사이즈의 갱신요구 커맨드를 접수하면, 지정 값을 취득하고(스텝 S 51), 그 지정 값이 소정의 조건을 만족하는가를 판정하며(스텝 S 52), 소정의 조건을 만족하지 않으면 외부 인터페이스(41) 등을 통해서 에러를 호스트 기기에 반송하고(스텝 S 54), 소정의 조건을 만족하면 그 지정 값을 새로운 라이트 가능 블록 사이즈로 라이트 가능 블록 사이즈 저장영역(47)에 기록한다(스텝 S 53).
스텝 S 52의 판정에 관한 소정의 조건은, 소거블록 사이즈가 2 섹터인 것을 전제로 한 경우에는, 라이트 가능 블록 사이즈 저장영역(47)의 초기치가 8 섹터를 나타내는 8인 것으로 하고, 지정 값이 섹터 수에 의해 지정되는 것으로 하면, 그 지정 값이 라이트 가능 블록 사이즈 저장영역(47)에서 그 지정되는 시점에 저장되어 있는 라이트 가능 블록 사이즈보다도 작으면서 4 또는 2인 것이다.
따라서 호스트 기기는 라이트 가능 블록 사이즈의 지정 값으로 4 또는 2를 지정해서 메모리카드(30)에서의 라이트 가능 블록을 갱신하도록 할 수 있으나, 일단 4로 갱신한 후에는 다시 8로는 복귀되지 않으며, 다시 갱신하는 경우에는 2로밖에 할 수 없고, 일단 2로 갱신한 후에는 다시 8이나 4로 갱신할 수는 없다.
이와 같이 어떤 호스트 기기가 메모리카드(30)의 라이트 가능 블록 사이즈를 4로 갱신하면, 8 섹터 단위로 기록하는 경우에 비해 기록 레이트는 저하하나, 그 메모리카드(30)를 나중에 장착한 다른 호스트 기기에서도 그 라이트 가능 블록 사이즈가 4 섹터라는 것을 메모리카드(30)로부터 판독하여 알 수도 있고, 또, 8 섹터 단위로 기록하는 것보다는 저속이기는 하나, 어느 정도의 기록 레이트는 보증되게 된다. 또한, 보증 라이트 레이트 저장영역(8)에는, 당초의 라이트 가능 블록 사이즈에 대응하는 보증 라이트 레이트 외에도, 변경 후의 각 라이트 가능 블록 사이즈가 될 수 있는 사이즈별에 따른, 보증 가능한 최저 기록 레이트를 나타내는 보증 라이트 레이트, 이른바 조건부 보증 라이트 레이트를 미리 기록해 두는 것으로 해도 좋다.
<보충>
이상, 본 발명의 메모리카드 및 메모리카드 시스템의 실시 예에 대하여 설명하였으나, 상기 실시 예에서 설명한 메모리카드를 이하에 설명하는 것과 같이 부분적으로 변형할 수도 있다.
(1) 각 실시 예에서 제시한 라이트 가능 블록 사이즈는 소거블록의 사이즈와 동일한 것으로 하였으나, 소거블록의 사이즈의 2배나 4배 등, 정수 배이면 최저 기록 레이트의 보증은 가능하다. 또한, 실시 예에서 제시한 라이트 가능 블록 사이즈의 값에 대해서는 단순한 예시이며, 예를 들어, 플래시메모리에서, 소거블록이 128 킬로바이트이고, 1 섹터가 512 킬로바이트인 경우에 있어서 라이트 가능 블록 사이즈를 섹터 수를 단위로 하여 표현하면 그 값은 256이 된다.
(2) 실시 예 1에서 제시한 라이트 블록 사이즈 및 기록 선두 섹터 번호가 라이트 가능 블록 사이즈와의 관계에서 만족해야 할 조건으로는, 기록 선두 섹터 번호가 라이트 가능 블록 사이즈에서 제시되는 섹터 수로 나누어질 수 있는 것일 것도 조건으로 하였으나, 라이트 커맨드의 발행 원이 되는 호스트 측에서 기록 선두 섹터 번호를 라이트 블록 사이즈에서 제시되는 섹터 수의 정수 배가 되도록 정하도록 하면, 메모리카드 측에서는 이 선두 섹터 번호에 관한 조건의 판단을 행하지 않도록 해도 된다. 또, 라이트 가능 블록 사이즈나 라이트 블록 사이즈의 값에 대해서는 반드시 섹터 수로 표시하지 않아도 되며, 바이트 수 등으로 해도 좋다.
(3) 실시 예 1에서 설명한 보증 라이트 레이트에 더하여, 라이트 가능 블록 사이즈의 정수 배의 블록 사이즈에 해당하는 각 라이트 블록 사이즈에 대응한 각 보증 라이트 레이트 데이터, 즉, 조건부 보증 라이트 데이터를 메모리카드가 보유하도록 하여 두고, 호스트 기기가 그 조건부 보증 라이트 데이터를 취득할 수 있도록 해도 된다.
(4) 각 실시 예에서는, 소거블록 사이즈를 감안하여 라이트 가능 블록 사이즈를 정하고 있는 예를 설명하고 있으나, 변형 예로, 라이트 페이지의 정수 배가 되도록 라이트 가능 블록 사이즈를 정하는 것으로 해도 된다. 또, 장래에, 소거블록이 비교적 작은 라이트 페이지로 구성되는 플래시메모리가 개발된 경우에는, 데이터를 기록할 때마다 보관 처리를 할 가능성이 커서, 상기 빈 블록 검색에 의한 기록 레이트의 저하는 발생하지 않을 가능성이 있으므로, 라이트 가능 블록 사이즈는 1 섹터에 상당하는 512 바이트로 하고, 메모리카드의 특성에 따른 최적의 라이 트 블록 사이즈마다 그 사이즈와 그 사이즈로 기록한 조건부로 조건부 보증 레이트를 미리 등록해 두는 것으로 해도 좋다.
(5) 실시 예 3에서는, 호스트 기기가 라이트 가능 블록 사이즈의 갱신요구 커맨드를 발행하는 것을 계기로 하여 메모리카드가 라이트 가능 블록 사이즈의 갱신 가부의 판단 및 갱신을 행하는 것으로 하였으나, 이와 같은 갱신요구 커맨드를 이용하지 않는 방식이라도 좋다. 예를 들어, 호스트 기기에서 라이트 가능 블록 사이즈보다도 작은 라이트 가능 블록 사이즈를 지정한 라이트 커맨드를 발행한 것을 계기로 하여, 메모리카드가 일단 호스트 기기에 에러를 송신한 후에 호스트 기기로부터 라이트 커맨드를 강행한다는 취지의 응답을 받은 경우에는, 라이트 가능 블록 사이즈의 갱신의 가부 판단 및 갱신을 행하는 것으로 해도 좋다.
(6) 실시 예 3에서 설명한 메모리카드를 변형하여, 보증 라이트 레이트도 재기록 가능한 불휘발성 메모리에 저장하는 것으로 하고, 라이트 가능 블록 사이즈의 갱신요구 커맨드에 의해 라이트 가능 블록 사이즈가 일단 갱신된 후에는 보증 라이트 레이트의 값을 보증 불가능을 나타내는 값으로 재기록하도록 해도 좋다. 이에 의해, 메모리카드를, 최저 기록 레이트의 보증이 필요없는 용도에 이용하는 호스트 기기가 일단 라이트 가능 블록 사이즈를 갱신한 경우에는, 그 후 그 메모리카드를 장착한 다른 호스트 기기 등은 그 메모리카드에 대해서는, 최저 기록 레이트가 보증되지 않는 것이면, 보증 레이트의 판독에 의해 식별이 가능해지므로, 예를 들어 사용자에게 알리거나 기타 처리를 행할 수 있게 된다.
(7) 실시 예 3에서 설명한 메모리카드에서, 플래시메모리 내의 모든 소거블 록의 소거 커맨드를 접수하는 것으로 하고, 그 커맨드를 접수한 경우에는 모든 소거블록을 소거한 후에 라이트 가능 블록 사이즈로 초기 설정치(예를 들어 8)를 다시 설정하도록 해도 된다. 이에 의해, 어느 호스트 기기가 메모리카드의 라이트 가능 블록 사이즈를 초기 설정치보다 작은 값으로 갱신하여 데이터를 기록하는 등을 하고 있은 경우에, 그 후에 그 메모리카드를 장착한 호스트 기기 등에서 전체 소거를 행하면, 다시 당초의 최저 기록 레이트를 보증한 기록을 할 수 있게 된다.
본 발명의 메모리카드 및 메모리카드 시스템은 데이터의 기록 레이트의 보증을 할 수 있으므로, 연속적으로 데이터를 고속으로 기록하는 용도에 적합하며, 높은 레이트에서의 리얼 타임 기록을 확실하게 행할 필요가 있는 업무용 영상분야 등에서 이용될 수 있다.

Claims (9)

  1. 플래시메모리와,
    호스트 기기와의 사이에서 데이터의 송수신을 행하는 인터페이스 수단과,
    소정의 라이트 가능 블록 사이즈(writable block size)를 기억하고 있는 기억수단과,
    호스트 기기로부터 라이트 블록 사이즈의 지정을 수반한 상기 플래시메모리에 데이터의 기록을 지시하는 커맨드(command)를 상기 외부 인터페이스 수단을 통해서 수신한 경우에, 당해 라이트 블록 사이즈가 상기 라이트 가능 블록 사이즈와 소정의 관계를 가지는가 여부를 판정하고, 판정 결과에 따라서 상기 플래시메모리에 대한 데이터의 기록의 허가 여부에 관한 제어를 행하는 제어수단을 구비하는 것을 특징으로 하는 메모리카드.
  2. 청구항 1에 있어서,
    상기 소정의 라이트 가능 블록 사이즈는 상기 플래시메모리에 대한 소거블록의 사이즈의 정수 배의 사이즈이고,
    상기 제어수단의 판정기준이 되는 상기 소정의 관계는 상기 라이트 블록 사이즈가 상기 라이트 가능 블록 사이즈의 정수 배가 되어 있는 관계이며,
    상기 제어수단은 상기 소정의 관계를 갖는 경우에만 플래시메모리에 데이터를 기록하도록 제어하는 것을 특징으로 하는 메모리카드.
  3. 청구항 2에 있어서,
    상기 메모리카드는 상기 기억수단에서 상기 라이트 가능 블록 사이즈를 판독하여 상기 외부 인터페이스 수단을 통해서 호스트 기기에 전달하는 전달수단을 더 구비하는 것을 특징으로 하는 메모리카드.
  4. 청구항 3에 있어서,
    상기 기억수단은 상기 라이트 가능 블록 사이즈와 동일한 사이즈 단위로 상기 플래시메모리에 데이터의 기록을 행하는 한에 있어서 보증되는 최저 기록 레이트(lowest recording rate)를 나타내는 것으로 미리 정해져 있는 보증 라이트 레이트 (guaranteed write rate)를 더 기억하고 있고,
    상기 전달수단은 상기 기억수단에서 보증 라이트 레이트를 판독하여 상기 외부 인터페이스 수단을 통해서 호스트 기기에 더 전달하는 것을 특징으로 하는 메모리카드.
  5. 청구항 4에 있어서,
    상기기억수단은 상기 라이트 가능 블록 사이즈의 특정 정수 배인 사이즈를 단위로 하여 상기 플래시메모리에 데이터의 기록을 행하는 한에 있어서 보증되는 최저 기록 레이트를 나타내는 것으로 미리 정해져 있는 조건부 보증 라이트 레이트(conditional guaranteed write rate)를 더 기억하고 있고,
    상기 전달수단은 상기 기억수단에서 조건부 보증 라이트 레이트를 판독하여 상기 외부 인터페이스 수단을 통해서 호스트 기기에 더 전달하는 것을 특징으로 하는 메모리카드.
  6. 청구항 4에 있어서,
    상기기억수단은, 상기 보증 라이트 레이트에 의해 나타내는 최저 기록 레이트를 보증하기 위해, 상기 외부 인터페이스 수단에 데이터를 전달하기 위한 호스트 기기 측의 버퍼메모리에 필요로 하는 용량을 나타내는 것으로 미리 정해져 있는 버퍼메모리 용량 데이터를 더 기억하고 있고,
    상기 전달수단은 상기 기억수단에서 버퍼메모리 용량 데이터를 판독하여 상기 외부 인터페이스 수단을 통해서 호스트 기기에 더 전달하는 것을 특징으로 하는 메모리카드.
  7. 청구항 4에 있어서,
    상기 메모리카드는, 상기 외부 인터페이스 수단을 통한 호스트 기기로부터의 요구에 따라서, 상기 기억수단에 기억되어 있는 상기 라이트 가능 블록 사이즈를 원래보다도 작은 사이즈로 재기록(rewrite)하고, 이에 대응하여 상기 보증 라이트 레이트를 재기록하는 갱신수단을 더 구비하는 것을 특징으로 하는 메모리카드.
  8. 청구항 3에 있어서,
    상기 메모리카드는, 상기 외부 인터페이스 수단을 통한 호스트 기기로부터의 요구에 따라서, 상기 기억수단에 기억되어 있는 상기 라이트 가능 블록 사이즈를 원래보다도 작은 사이즈로 재기록하는 라이트 가능 블록 사이즈 갱신수단을 더 구비하는 것을 특징으로 하는 메모리카드.
  9. 청구항 1에 기재된 메모리카드와, 당해 메모리카드와의 사이에서 데이터의 송수신을 행하는 호스트 기기를 구비하는 메모리카드 시스템으로,
    상기 호스트 기기는, 상기 메모리카드에 기록을 필요로 하는 제 1 데이터의 사이즈가 상기 라이트 가능 블록 사이즈 미만인 경우에는, 상기 외부 인터페이스 수단을 통해서 상기 메모리카드의 플래시메모리에서 제 2 데이터를 판독하여, 제 1 데이터와 제 2 데이터를 합침으로써 당해 라이트 블록 사이즈와 동일한 사이즈의 제 3 데이터를 구축하고, 제 3 데이터를 상기 플래시메모리에 기록하도록 상기 메모리카드에 라이트 커맨드(write command)를 전달하는 리드 모디파이 라이트 수단(read-modify-write unit)을 구비하는 것을 특징으로 하는 메모리카드 시스템.
KR1020067016424A 2004-03-31 2005-03-28 메모리카드 및 메모리카드 시스템 KR100826065B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004107779 2004-03-31
JPJP-P-2004-00107779 2004-03-31

Publications (2)

Publication Number Publication Date
KR20060126775A KR20060126775A (ko) 2006-12-08
KR100826065B1 true KR100826065B1 (ko) 2008-04-29

Family

ID=35064004

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067016424A KR100826065B1 (ko) 2004-03-31 2005-03-28 메모리카드 및 메모리카드 시스템

Country Status (6)

Country Link
US (1) US7433245B2 (ko)
EP (1) EP1720119A4 (ko)
JP (1) JP3825465B2 (ko)
KR (1) KR100826065B1 (ko)
CN (1) CN100470585C (ko)
WO (1) WO2005096220A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007105688A1 (ja) * 2006-03-16 2009-07-30 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
US8560760B2 (en) 2007-01-31 2013-10-15 Microsoft Corporation Extending flash drive lifespan
US7657572B2 (en) 2007-03-06 2010-02-02 Microsoft Corporation Selectively utilizing a plurality of disparate solid state storage locations
US7869277B1 (en) 2007-04-25 2011-01-11 Apple Inc. Managing data writing to memories
CN101727293B (zh) * 2008-10-23 2012-05-23 成都市华为赛门铁克科技有限公司 一种固态硬盘ssd存储的设置方法、装置和系统
JP5300496B2 (ja) * 2009-01-07 2013-09-25 パナソニック株式会社 半導体記憶装置、ホスト機器及び半導体記憶システム
US8471926B2 (en) * 2009-07-22 2013-06-25 Panasonic Corporation Imaging apparatus, information processing apparatus and information processing method
US9194838B2 (en) 2010-03-03 2015-11-24 Osaka University Method and device for identifying nucleotide, and method and device for determining nucleotide sequence of polynucleotide
JP5385835B2 (ja) * 2010-03-29 2014-01-08 パナソニック株式会社 データ記録装置
JP4806089B1 (ja) 2010-06-30 2011-11-02 株式会社東芝 情報処理装置、raidコントローラカード、およびミラーリング方法
JP2012019383A (ja) * 2010-07-08 2012-01-26 Panasonic Corp 記録制御装置、半導体記録装置および記録システム
US9836370B2 (en) 2010-11-18 2017-12-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Backup memory administration using an active memory device and a backup memory device
JP5917163B2 (ja) * 2011-01-27 2016-05-11 キヤノン株式会社 情報処理装置、その制御方法及びプログラム並びに記憶媒体
JP5708216B2 (ja) * 2011-05-09 2015-04-30 ソニー株式会社 フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
WO2013115783A1 (en) * 2012-01-31 2013-08-08 Hewlett-Packard Development Company, L.P. Memory module buffer data storage
CA2929929A1 (en) 2013-09-18 2015-03-26 Quantum Biosystems Inc. Biomolecule sequencing devices, systems and methods
JP2015077652A (ja) 2013-10-16 2015-04-23 クオンタムバイオシステムズ株式会社 ナノギャップ電極およびその製造方法
US10438811B1 (en) 2014-04-15 2019-10-08 Quantum Biosystems Inc. Methods for forming nano-gap electrodes for use in nanosensors
WO2015170782A1 (en) 2014-05-08 2015-11-12 Osaka University Devices, systems and methods for linearization of polymers
US10388369B2 (en) * 2015-04-28 2019-08-20 Hitachi, Ltd. Nonvolatile memory control method, control device, and semiconductor storage device
CN109937426A (zh) * 2016-04-11 2019-06-25 量子生物有限公司 用于生物数据管理的系统和方法
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10037164B1 (en) * 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10261704B1 (en) 2016-06-29 2019-04-16 EMC IP Holding Company LLC Linked lists in flash memory
KR102611638B1 (ko) * 2016-09-27 2023-12-08 삼성전자주식회사 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 데이터 저장 시스템
US10606773B2 (en) * 2017-01-04 2020-03-31 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Systems and methods for low latency access of memory between computing devices
TWI621063B (zh) * 2017-01-13 2018-04-11 慧榮科技股份有限公司 主機裝置與資料傳輸速率控制方法
US11048645B2 (en) 2018-02-01 2021-06-29 Samsung Electronics Co., Ltd. Memory module, operation method therof, and operation method of host
US10782916B2 (en) 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system
US11409436B2 (en) 2018-08-08 2022-08-09 Micron Technology, Inc. Buffer management in memory systems for read and write requests
US10969994B2 (en) * 2018-08-08 2021-04-06 Micron Technology, Inc. Throttle response signals from a memory system
US10489335B1 (en) * 2018-09-28 2019-11-26 Silicon Motion, Inc. Apparatus and method and computer program product for accessing a memory card
US11294824B2 (en) * 2020-01-03 2022-04-05 Western Digital Technologies, Inc. System and method for reduced latency of read-modify-write operations
US11537510B2 (en) 2020-04-24 2022-12-27 Western Digital Technologies, Inc. Storage devices having minimum write sizes of data
US11294598B2 (en) * 2020-04-24 2022-04-05 Western Digital Technologies, Inc. Storage devices having minimum write sizes of data
US20220086455A1 (en) * 2020-09-11 2022-03-17 Western Digital Technologies, Inc. Storage System and Method for Storage Management in Multi-Channel, Variable-Bit-Rate Systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002335486A (ja) * 2001-05-08 2002-11-22 Fuji Photo Film Co Ltd デジタルカメラ、画像記録方法及び画像記録プログラム
JP2003308240A (ja) * 2002-04-15 2003-10-31 Sony Corp データ記憶装置
JP2004005423A (ja) * 2002-02-08 2004-01-08 Sanyo Electric Co Ltd ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4435792A (en) * 1982-06-30 1984-03-06 Sun Microsystems, Inc. Raster memory manipulation apparatus
JP3525734B2 (ja) 1997-04-25 2004-05-10 ソニー株式会社 情報記録装置及び方法、情報再生装置及び方法
EP0874368A3 (en) 1997-04-25 2003-03-19 Sony Corporation Information recording apparatus and method, and information reproducing apparatus and method
US6438086B1 (en) 1998-07-13 2002-08-20 Sony Corporation Recording apparatus and method, reproducing apparatus and method, and recording medium
JP2000122923A (ja) 1998-07-13 2000-04-28 Sony Corp 記録装置および記録方法、再生装置および再生方法、記録媒体、並びにプログラム記録媒体
US7509342B2 (en) 2002-02-08 2009-03-24 Sanyo Electric Co., Ltd. File data storage management method, file data storage device, program executing processing for storing file data, and storage medium
JP2005051347A (ja) * 2003-07-30 2005-02-24 Canon Inc 撮像装置
JP4452690B2 (ja) * 2003-12-09 2010-04-21 パナソニック株式会社 電子装置、その制御方法、ホスト装置及びその制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002335486A (ja) * 2001-05-08 2002-11-22 Fuji Photo Film Co Ltd デジタルカメラ、画像記録方法及び画像記録プログラム
JP2004005423A (ja) * 2002-02-08 2004-01-08 Sanyo Electric Co Ltd ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体
JP2003308240A (ja) * 2002-04-15 2003-10-31 Sony Corp データ記憶装置

Also Published As

Publication number Publication date
JP3825465B2 (ja) 2006-09-27
KR20060126775A (ko) 2006-12-08
WO2005096220A1 (ja) 2005-10-13
EP1720119A1 (en) 2006-11-08
CN100470585C (zh) 2009-03-18
EP1720119A4 (en) 2008-01-23
CN1938720A (zh) 2007-03-28
JPWO2005096220A1 (ja) 2008-02-21
US20070183198A1 (en) 2007-08-09
US7433245B2 (en) 2008-10-07

Similar Documents

Publication Publication Date Title
KR100826065B1 (ko) 메모리카드 및 메모리카드 시스템
KR100877448B1 (ko) 비휘발성 기억 시스템
KR100858756B1 (ko) 저장 디바이스 및 호스트 장치
US8166231B2 (en) Memory controller, nonvolatile memory device, access device, and nonvolatile memory system
US20090310412A1 (en) Methods of data management in non-volatile memory devices and related non-volatile memory systems
US20080025706A1 (en) Information recording apparatus and control method thereof
US20070168603A1 (en) Information recording apparatus and control method thereof
US8572307B2 (en) Memory controller, memory card, and nonvolatile memory system
US20070168602A1 (en) Information storage device and its control method
JP2006514386A (ja) ドライブ装置、プログラム
US20070168604A1 (en) Information recording apparatus and method for controlling the same
CN114253461A (zh) 混合通道存储设备
CN114253462A (zh) 提供混合通道存储设备的方法
US20070250661A1 (en) Data recording apparatus and method of controlling the same
JP4262220B2 (ja) デジタルカメラ
KR20050086389A (ko) 플래시메모리카드의 미러인터페이스 방법
KR100775885B1 (ko) 데이터 액세스 방법 및 그 방법이 실시되는 장치와 기록매체
JP2009282836A (ja) メモリカード及びメモリカードドライブ
US9465546B2 (en) Memory control method, memory control program, and semiconductor integrated circuit device
JP4219299B2 (ja) 記録デバイスのキャッシュ方法及びデータ記録装置
JPH0143332B2 (ko)
JP5489818B2 (ja) 記録再生装置及びその制御方法
JP2011199377A (ja) 記録装置
JP2016015059A (ja) 記録装置
KR20060069118A (ko) 메모리 카드의 수선방법

Legal Events

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

Payment date: 20160318

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180316

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190319

Year of fee payment: 12