JPH11203191A - 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体 - Google Patents

不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体

Info

Publication number
JPH11203191A
JPH11203191A JP24383098A JP24383098A JPH11203191A JP H11203191 A JPH11203191 A JP H11203191A JP 24383098 A JP24383098 A JP 24383098A JP 24383098 A JP24383098 A JP 24383098A JP H11203191 A JPH11203191 A JP H11203191A
Authority
JP
Japan
Prior art keywords
address
data
conversion table
page
storage means
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
JP24383098A
Other languages
English (en)
Inventor
Tsunenori Kimura
恒範 木村
Yoshimasa Kondo
嘉政 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP24383098A priority Critical patent/JPH11203191A/ja
Priority to US09/191,437 priority patent/US6282624B1/en
Priority to KR10-1998-0048317A priority patent/KR100468880B1/ko
Publication of JPH11203191A publication Critical patent/JPH11203191A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Abstract

(57)【要約】 【課題】 論理セクタアドレスの指定によりデータの
読み出しや書き込みが可能な不揮発性記憶装置を提供す
る。 【解決手段】 揮発性記憶手段に記憶される第1のア
ドレス変換テーブル、不揮発性記憶手段に記憶される第
2のアドレス変換テーブルを備え、受信された要求に係
る論理セクタアドレスと揮発性記憶手段によって記憶さ
れた第1のアドレス変換テーブルとから、不揮発性記憶
手段に記憶される第2のアドレス変換テーブルの物理ロ
ケーションを取得し、第1のアドレス取得手段によって
取得された物理ロケーションに基づいて、不揮発性記憶
手段に記憶された第2のアドレス変換テーブルを得て、
受信手段によって受信された要求に係る論理セクタアド
レスと当該第2のアドレス変換テーブルとから、不揮発
性記憶手段に対しデータを書き込む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本願発明は、不揮発性記憶装
置、不揮発性記憶装置の制御方法、および、不揮発性記
憶装置を制御するプログラムを記録した情報記録媒体に
関し、特に、論理セクタアドレスの指定によるデータの
書き込みや読み出しが可能であり、電源を投入してから
データの書き込みや読み出しができるまでの準備時間が
短い不揮発性記憶装置、当該不揮発性記憶装置の制御方
法、および、当該不揮発性記憶装置を制御するプログラ
ムを記録した情報記録媒体に関する。
【0002】また、本願発明は、ハードディスクやフロ
ッピーディスクと同様の指定方法によりデータの記憶場
所を指定することができるATA(AT Attachment )カ
ードやSSFDC(Solid State Floppy Disk Card For
um)カードなどのメモリカード、これらのカードの制御
方法、および、これらのカードを制御するプログラムを
記録した情報記録媒体に関する。
【0003】また、本願発明は、フラッシュEEPRO
M(Electrically Erasable Programmable Read Only M
emory ;電気的消去可能プログラム可能読み出し専用メ
モリ)、および、RAM(Random Access Memory;ラン
ダムアクセスメモリ)を備え、データの読み出し、およ
び、書き込みの要求の際に指定される論理セクタアドレ
スをフラッシュEEPROM内の物理ページアドレスに
変換するための変換テーブルをフラッシュEEPRO
M、および、RAMに分割して記憶する不揮発性記憶装
置、当該不揮発性記憶装置の制御方法、および、当該不
揮発性記憶装置を制御するプログラムを記録した情報記
録媒体に関する。
【0004】また、本願発明は、フラッシュEEPRO
Mに記憶されたアドレス変換テーブルはページ単位で更
新し、フラッシュEEPROMに記憶されるデータ(ホ
ストコンピュータからの読み出しや書き込みがされるも
ののほか、アドレス変換テーブルのデータを含む)はブ
ロック単位で管理する不揮発性記憶装置、当該不揮発性
記憶装置の制御方法、および、当該不揮発性記憶装置を
制御するプログラムを記録した情報記録媒体に関する。
【0005】
【従来の技術】不揮発性記憶装置として実現されるAT
AカードやSSFDCカードなどのメモリカードは、コ
ンピュータの外部記憶装置として普及しつつあり、ま
た、その規格の標準化が進められている。
【0006】特に、PC(Personal Computer )カード
標準、もしくは、PCMCIA(Personal Computer Me
mory Card International Association )標準にしたが
ったメモリカードは、ホストコンピュータと接続した場
合は外部記憶装置として動作し、ホストコンピュータと
の接続を解除した場合は記憶したデータを保持したまま
単独で移動や運搬が可能であり、ホストコンピュータの
電源が投入されている場合であっても活線接続、およ
び、活線接続解除が可能である。このような利点を有す
るため、ATAカードなどのメモリカードは、たとえ
ば、ディジタルカメラなどによって撮影されたデータを
記録し、そのデータをホストコンピュータへ移送するた
めの手段として広く使用されている。
【0007】ATAカードやSSFDCカードなどのメ
モリカードに対して、これらが接続されたホストコンピ
ュータからデータの書き込み、および、読み出しの要求
をする場合には、そのデータの記録場所を指定する必要
がある。この記録場所を指定する際に、論理セクタアド
レスと呼ばれる整数を用いる。論理セクタアドレスは、
ハードディスクやフロッピーディスクに対する書き込み
や読み出しの際にも、記録場所を指定するために使用さ
れる。また、論理セクタアドレスのことを論理ブロック
アドレスと呼ぶこともある。
【0008】たとえば、ハードディスクに対するアクセ
スは、ある程度のデータ、たとえば512バイトのデー
タをまとめて処理した方が高速な処理ができるため51
2バイトを1セクタとして、セクタ単位で書き込みや読
み出しを行う。現実のハードディスクにおける記憶場所
の指定はシリンダ番号、ヘッド番号、クラスタ番号など
によって行われるが、読み出しや書き込みの処理を統一
化するため、仮想的に、ハードディスクの記憶領域を一
列に並べて先頭からセクタ単位で区切り、番号を振る。
この番号が論理セクタアドレスである。フロッピーディ
スクの場合も同様に論理セクタアドレスを定義すること
ができる。
【0009】ホストコンピュータでは、ハードディスク
などにアクセスする場合に論理セクタアドレスを使用す
るが、このような記憶場所の指定方法をATAカードや
SSFDCカードなどのメモリカードでも使用できるよ
うにすると、アプリケーション開発やデータ管理の上で
便利である。このため、このようなメモリカードでは、
論理セクタアドレスを使用した記憶場所の指定ができる
ような制御を行う必要がある。
【0010】また、上述のようなディジタルカメラにメ
モリカードを接続した場合においても、ディジタルカメ
ラがメモリカードに対してデータの書き込みや読み出し
を行う場合は、論理セクタアドレスを使用して記憶場所
を指定する。すなわち、ディジタルカメラが上述の「ホ
ストコンピュータ」として動作するのである。
【0011】さて、このようなメモリカードは、内部に
不揮発性メモリ、特にフラッシュEEPROMを備える
ことによって実現されている。フラッシュEEPROM
の記憶領域は、1つまたは複数のブロックに分割され、
各ブロックは1つまたは複数のページに分割され、各ペ
ージはハードディスクなどの書き込みや読み出しの単位
と同じ容量、たとえば512バイトを記憶することが可
能な記憶領域として構成されている。また、各ページ
に、さらに冗長領域として、たとえば16バイトの記憶
領域を追加する形態も広くとられている。前者の場合は
1ページは512バイトであり、後者の場合は1ページ
は528バイトとなるが、いずれも、ホストコンピュー
タによる読み出しや書き込みの単位である512バイト
のデータを記憶できるという点で共通する。
【0012】フラッシュEEPROM内の記憶領域の場
所は、チップ番号、そのチップにおけるブロック番号、
および、そのブロックにおけるページ番号を指定すれば
一義的に決めることができる。そこで仮想的に、フラッ
シュEEPROM内の記憶領域を一列に並べ、先頭から
順にページ単位で番号を振る。この番号を物理ページア
ドレスと呼ぶ。すなわち、物理ページアドレスによって
フラッシュEEPROM内の記憶領域の場所を指定する
ことができる。
【0013】一方、フラッシュEEPROM内の記憶領
域を一列に並べ、先頭から順にブロック単位で番号を振
る。この番号を物理ブロックアドレスと呼ぶ。すなわ
ち、物理ブロックアドレスによってフラッシュEEPR
OM内の記憶領域の場所を指定することもできる。
【0014】本願では、これら物理ページアドレスや物
理ブロックアドレスによる記憶領域の場所の指定をまと
めて、「物理ロケーション」による記憶領域の場所の指
定、と呼ぶ。
【0015】フラッシュEEPROMは、電気的に消去
が可能な読み出し専用メモリである。すなわち、原則と
して、電気的に消去されたページに対して1度だけデー
タの書き込みができる。したがって、あるページに記憶
にされているデータを変更したい場合には、そのページ
をまず消去し、それから新たなデータを書き込む必要が
ある。さらに、フラッシュEEPROMでは、素子数を
おさえ、処理の高速化を図るため、上記の消去の処理
は、ブロック単位で行われるという点に技術的な特徴が
ある。
【0016】また、フラッシュEEPROMによって
は、すでにデータが書き込まれているページに対する上
書き機能を備えたものもある。しかし、このような上書
き機能では、上書きの回数が制限されている場合がほと
んどである。また、上書き機能自体を備えないフラッシ
ュEEPROMも多い。
【0017】このようなメモリカードでは、ホストコン
ピュータから指定される論理セクタアドレスを物理ロケ
ーションに変換して、当該物理ロケーションに配置され
たページに対する書き込みや読み出しを行う。しかし、
上記のような書き込みの制限があるため、論理セクタア
ドレスと物理ページアドレスとの対応は頻繁に変更され
る可能性が高い。
【0018】そこで、従来、このようなフラッシュEE
PROMを備えるメモリカードは、フラッシュEEPR
OMのほかにRAMを備えることとし、このRAMに論
理セクタアドレスを物理ロケーションに変換するための
アドレス変換テーブルを記憶し、論理セクタアドレスと
物理ロケーションの対応が更新された場合には、RAM
に記憶されたアドレス変換テーブルを更新する手法がと
られていた。たとえば、論理セクタアドレスをインデッ
クスとし、物理ロケーションを値とする配列によって、
アドレス変換テーブルを実現していた。
【0019】また、ホストコンピュータが同じ論理セク
タアドレスにデータを複数回書き込むような要求を出し
た場合、古いデータを記憶するページと新しいデータを
記憶するページとがフラッシュEEPROM内に存在す
ることになる。古いデータを記憶するページは適宜消去
する必要があるため、消去されており書き込みはまださ
れていない状態、すでに書き込みがされており書き込ま
れたデータが有効である状態、すでに書き込みがされて
おり書き込まれたデータが無効である状態、などのペー
ジの状態を管理する必要がある。従来は、このような状
態を、各ページの冗長部などに記憶していた。
【0020】また、メモリカードの電源がオフになる
と、RAMの内容は消去されてしまうため、電源の投入
時に、まずRAM内にアドレス変換テーブルを構築す
る。このため、各ページと論理セクタアドレスとの対応
をフラッシュEEPROMに記憶しておく必要がある。
従来は、この対応関係を各ページの冗長部に記憶するな
どの手法がとられていた。
【0021】さらに、上記のように、フラッシュEEP
ROMに対する書き込みはページ単位で行われ、消去は
複数のページを含むブロック単位で行われ、消去には長
時間を要するという技術的特徴があるが、従来の実装で
は、あるページに記憶された内容を更新する際に、当該
ページが含まれるブロック全体をRAM内にコピーして
避難し、当該ブロックを消去し、RAM内にコピーされ
た内容の当該ページに該当する部分を更新し、一部更新
されたRAM内のデータを当該ブロックに書き戻す、な
どの手法がとられていた。
【0022】
【発明が解決しようとする課題】さて、上述のようにデ
ィジタルカメラなどの外部記憶装置としてメモリカード
を使用する場合には、細粒度で撮影した写真をできるだ
け多数記録したい。また、データの保存や運搬の便を考
えれば、記憶容量は大きければ大きいほどよい。さら
に、今日のようなアプリケーションの巨大化、マルチメ
ディアの普及に伴うデータの巨大化の下では、メモリカ
ードの記憶容量をさらに大きくしたいという要望はきわ
めて大きい。
【0023】しかしながら、従来の手法では、メモリカ
ードの記憶容量を大きくすると、これに合わせてアドレ
ス変換テーブルも大きくなり、アドレス変換テーブルを
記憶するためのRAMの記憶容量も大きくする必要があ
る。したがって、従来の手法では、コストの上昇や消費
電力の増加につながるという問題を生ずる。
【0024】また、PCカード標準などではメモリカー
ドの大きさも規定されており、チップを配置できる面積
には制限があるため、RAMの記憶容量にも制限が課せ
られる。したがって、従来の手法では、大容量のメモリ
カードに対応することができないという問題を生ずる。
【0025】また、従来の手法では、管理セクタアドレ
スと物理ロケーションとの対応関係が各ページに分散し
て配置されているため、RAM内にアドレス変換テーブ
ルを構築するために、多数のページからの読み出し作業
が必要になる。このため、アドレス変換テーブルの構築
に多大な時間を要するようになる。したがって、従来の
手法では、メモリカードをホストコンピュータに接続し
てから、実際にホストコンピュータがデータをメモリカ
ードに書き込んだりメモリカードから読み出したりでき
るようになるまでの時間が長くなってしまうという問題
を生ずる。
【0026】さらに、従来の手法では、ブロックの一部
であるページを更新する場合にも、当該ブロック全体を
消去する必要があり、ブロックの消去には長時間を要す
るため、メモリカードに対する書き込みに長時間を要す
るという問題を生ずる。また、ブロック内のデータをR
AM内に避難している際に、電源が切れた場合などに、
当該ブロックのデータが失なわれ、復旧することができ
なくなってしまう、という問題を生ずる。
【0027】本願発明は、以上のような問題を解決する
ためになされたもので、論理セクタアドレスの指定によ
るデータの書き込みや読み出しが可能であり、電源を投
入してからデータの書き込みや読み出しができるまでの
準備時間が短い不揮発性記憶装置、当該不揮発性記憶装
置の制御方法、および、当該不揮発性記憶装置を制御す
るプログラムを記録した情報記録媒体を提供することを
課題とする。
【0028】また、本願発明は、ハードディスクやフロ
ッピーディスクと同様の指定方法によりデータの記憶場
所を指定することができるATA(AT Attachment )カ
ードやSSFDC(Solid State Floppy Disk Card For
um)カードなどのメモリカード、これらのカードの制御
方法、および、これらのカードを制御するプログラムを
記録した情報記録媒体を提供することを課題とする。
【0029】また、本願発明は、フラッシュEEPRO
M、および、RAMを備え、データの読み出し、およ
び、書き込みの要求の際に指定される論理セクタアドレ
スをフラッシュEEPROM内の物理ページアドレスに
変換するための変換テーブルをフラッシュEEPRO
M、および、RAMに分割して記憶する不揮発性記憶装
置、当該不揮発性記憶装置の制御方法、および、当該不
揮発性記憶装置を制御するプログラムを記録した情報記
録媒体を提供することを課題とする。
【0030】また、本願発明は、フラッシュEEPRO
Mに記憶されるデータの信頼性を向上させ、データの一
部が壊れている場合であってもこれを訂正できる不揮発
性記憶装置、当該不揮発性記憶装置の制御方法、およ
び、当該不揮発性記憶装置を制御するプログラムを記録
した情報記録媒体を提供することを課題とする。
【0031】また、本願発明は、フラッシュEEPRO
Mに記憶されたアドレス変換テーブルはページ単位で更
新し、フラッシュEEPROMに記憶されるデータ(ホ
ストコンピュータからの読み出しや書き込みがされるも
ののほか、アドレス変換テーブルのデータを含む)はブ
ロック単位で管理する不揮発性記憶装置、当該不揮発性
記憶装置の制御方法、および、当該不揮発性記憶装置を
制御するプログラムを記録した情報記録媒体に関する。
【0032】
【課題を解決するための手段】以上の課題を達成するた
めの発明は下記の発明である。
【0033】第1の発明は、ホストコンピュータが送信
する論理セクタアドレスに対するデータの書き込み、ま
たは、論理セクタアドレスからの読み出しの要求を受信
する受信手段と、第1のアドレス変換テーブルを記憶す
る揮発性記憶手段と、第2のアドレス変換テーブル、お
よび、データを記憶する不揮発性記憶手段と、受信手段
によって受信された要求に係る論理セクタアドレスと揮
発性記憶手段によって記憶された第1のアドレス変換テ
ーブルとから、不揮発性記憶手段に記憶される第2のア
ドレス変換テーブルの物理ロケーションを取得する第1
のアドレス取得手段と、第1のアドレス取得手段によっ
て取得された物理ロケーションに基づいて、不揮発性記
憶手段に記憶された第2のアドレス変換テーブルを得
て、受信手段によって受信された要求に係る論理セクタ
アドレスと当該第2のアドレス変換テーブルとから、不
揮発性記憶手段に対するデータの書き込み、または、デ
ータの読み込みを行う物理ロケーションを取得する第2
のアドレス取得手段と、第2のアドレス取得手段によっ
て取得された不揮発性記憶手段の物理ロケーションに対
して受信手段によって受信された要求のデータを書き込
み、または、不揮発性記憶手段から受信手段によって受
信された要求のデータを読み出すデータアクセス手段
と、を備えたことを特徴とする不揮発性記憶装置であ
る。
【0034】第1の発明では、受信手段は、ホストコン
ピュータが送信する論理セクタアドレスに対するデータ
の書き込み、または、論理セクタアドレスからの読み出
しの要求を受信し、揮発性記憶手段は、第1のアドレス
変換テーブルを記憶し、不揮発性記憶手段は、第2のア
ドレス変換テーブル、および、データを記憶し、第1の
アドレス取得手段は、受信手段によって受信された要求
に係る論理セクタアドレスと揮発性記憶手段によって記
憶された第1のアドレス変換テーブルとから、不揮発性
記憶手段に記憶される第2のアドレス変換テーブルの物
理ロケーションを取得し、第2のアドレス取得手段は、
第1のアドレス取得手段によって取得された物理ロケー
ションに基づいて、不揮発性記憶手段に記憶された第2
のアドレス変換テーブルを得て、受信手段によって受信
された要求に係る論理セクタアドレスと当該第2のアド
レス変換テーブルとから、不揮発性記憶手段に対するデ
ータの書き込み、または、データの読み込みを行う物理
ロケーションを取得し、データアクセス手段は、第2の
アドレス取得手段によって取得された不揮発性記憶手段
の物理ロケーションに対して受信手段によって受信され
た要求のデータを書き込み、または、不揮発性記憶手段
から受信手段によって受信された要求のデータを読み出
す。
【0035】第1の発明によれば、論理セクタアドレス
の指定によりデータの読み出しや書き込みが可能な不揮
発性記憶装置を提供することができる。
【0036】また、本発明によれば、ハードディスクや
フロッピーディスクと同様の指定方法によりデータの記
憶場所を指定することができるATAカードやSSFD
Cカードなどのメモリカードを提供することができる。
【0037】さらに、本発明によれば、フラッシュEE
PROM、および、RAMを備え、データの読み出し、
および、書き込みの要求の際に指定される論理セクタア
ドレスをフラッシュEEPROM内の物理ページアドレ
スに変換するための変換テーブルをフラッシュEEPR
OM、および、RAMに分割して記憶する不揮発性記憶
装置を提供することができる。
【0038】第2の発明は、第1の発明において、さら
に、不揮発性記憶手段に記憶された第2のアドレス変換
テーブルから論理セクタアドレスと物理ロケーションの
対応関係を調べて第1のアドレス変換テーブルを構築
し、揮発性記憶手段に 当該第1のアドレス変換テーブ
ルを記憶させるアドレス変換テーブル構築手段と、を備
えたことを特徴とする不揮発性記憶装置である。
【0039】第2の発明では、第1の発明に加え、さら
に、アドレス変換テーブル構築手段は、不揮発性記憶手
段に記憶された第2のアドレス変換テーブルから論理セ
クタアドレスと物理ロケーションの対応関係を調べて第
1のアドレス変換テーブルを構築し、揮発性記憶手段に
当該第1のアドレス変換テーブルを記憶させる。
【0040】第2の発明によれば、電源を投入してから
データの書き込みや読み出しができるまでの準備時間が
短い不揮発性記憶装置を提供することができる。
【0041】第3の発明は、第1の発明において、さら
に、データアクセス手段が不揮発性記憶手段に受信手段
によって受信された要求のデータを書き込む場合、当該
データのエラー訂正チェックデータを不揮発性記憶手段
に記憶させ、受信手段によって受信された要求のデータ
を読み出す場合、不揮発性記憶手段に記憶された当該デ
ータのエラー訂正チェックデータに基づいて当該読み出
したデータのエラー訂正を行うエラー訂正手段と、を備
えたことを特徴とする記載の不揮発性記憶装置である。
【0042】第3の発明では、第1の発明に加えて、さ
らに、エラー訂正手段は、データアクセス手段が不揮発
性記憶手段に受信手段によって受信された要求のデータ
を書き込む場合、当該データのエラー訂正チェックデー
タを不揮発性記憶手段に記憶させ、受信手段によって受
信された要求のデータを読み出す場合、不揮発性記憶手
段に記憶された当該データのエラー訂正チェックデータ
に基づいて当該読み出したデータのエラー訂正を行う。
【0043】第3の発明によれば、フラッシュEEPR
OMに記憶されるデータの信頼性を向上させ、データの
一部が壊れている場合であってもこれを訂正できる不揮
発性記憶装置を提供することができる。
【0044】第4の発明は、第1の発明において、さら
に、第2のアドレス取得手段によって取得された物理ロ
ケーションに換えてデータの書き込みができる不揮発性
記憶手段の記憶領域の物理ロケーションを参照するよう
に、不揮発性記憶手段に記憶された第2のアドレス変換
テーブルを更新するアドレス変換テーブル更新手段と、
を備えたことを特徴とする不揮発性記憶装置である。
【0045】第4の発明では、第1の発明に加えて、さ
らに、アドレス変換テーブル更新手段は第2のアドレス
取得手段によって取得された物理ロケーションに換えて
データの書き込みができる不揮発性記憶手段の記憶領域
の物理ロケーションを参照するように、不揮発性記憶手
段に記憶された第2のアドレス変換テーブルを更新す
る。
【0046】第4の発明によれば、不揮発性記憶装置が
有する不揮発性記憶手段に対するデータの書き込みは、
原則としてデータが消去された後1回に限られるという
制限がある場合であっても、効率よく不揮発性記憶手段
の管理を行うことができる不揮発性記憶装置を提供する
ことができる。
【0047】第5の発明は、第4の発明において、アド
レス変換テーブル更新手段は、不揮発性記憶手段のペー
ジを単位として第2のアドレス変換テーブルを更新する
ことを特徴とする不揮発性記憶装置である。
【0048】第5の発明により、本発明の好適実施形態
の一つを提供することができる。
【0049】第6の発明は、第1の発明において、第2
のアドレス変換テーブルに記憶される不揮発性記憶手段
の物理ロケーションは、複数のページを含むブロックを
単位として指定されることを特徴とする不揮発性記憶装
置である。
【0050】第6の発明により、本発明の好適実施形態
の一つを提供することができる。
【0051】第7の発明は、ホストコンピュータが送信
する論理セクタアドレスに対するデータの書き込み、ま
たは、論理セクタアドレスからの読み出しの要求を受信
する受信ステップと、受信された要求に係る論理セクタ
アドレスと揮発性記憶手段によって記憶された第1のア
ドレス変換テーブルとから、不揮発性記憶手段に記憶さ
れる第2のアドレス変換テーブルの物理ロケーションを
取得する第1のアドレス取得ステップと、第1のアドレ
ス取得ステップによって取得された物理ロケーションに
基づいて、不揮発性記憶手段に記憶された第2のアドレ
ス変換テーブルを得て、受信手段によって受信された要
求に係る論理セクタアドレスと当該第2のアドレス変換
テーブルとから、不揮発性記憶手段に対するデータの書
き込み、または、データの読み込みを行う物理ロケーシ
ョンを取得する第2のアドレス取得ステップと、第2の
アドレス取得ステップによって取得された不揮発性記憶
手段の物理ロケーションに対して受信手段によって受信
された要求のデータを書き込み、または、不揮発性記憶
手段から受信手段によって受信された要求のデータを読
み出すデータアクセスステップと、を備えたことを特徴
とする不揮発性記憶装置の制御方法である。
【0052】第7の発明によれば、論理セクタアドレス
の指定によりデータの読み出しや書き込みが可能な不揮
発性記憶装置の制御方法を提供することができる。
【0053】また、本発明によれば、ハードディスクや
フロッピーディスクと同様の指定方法によりデータの記
憶場所を指定することができるATAカードやSSFD
Cカードなどのメモリカードの制御方法を提供すること
ができる。
【0054】さらに、本発明によれば、フラッシュEE
PROM、および、RAMを備え、データの読み出し、
および、書き込みの要求の際に指定される論理セクタア
ドレスをフラッシュEEPROM内の物理ページアドレ
スに変換するための変換テーブルをフラッシュEEPR
OM、および、RAMに分割して記憶する不揮発性記憶
装置の制御方法を提供することができる。
【0055】第8の発明は、第7の発明において、さら
に、不揮発性記憶手段に記憶された第2のアドレス変換
テーブルから論理セクタアドレスと物理ロケーションの
対応関係を調べて第1のアドレス変換テーブルを構築
し、揮発性記憶手段に 当該第1のアドレス変換テーブ
ルを記憶させるアドレス変換テーブル構築ステップと、
を備えたことを特徴とする請求項7に記載の不揮発性記
憶装置の制御方法である。
【0056】第8の発明によれば、電源を投入してから
データの書き込みや読み出しができるまでの準備時間が
短い不揮発性記憶装置の制御方法を提供することができ
る。
【0057】第9の発明は、第7の発明において、さら
に、データアクセスステップが不揮発性記憶手段に受信
された要求のデータを書き込む場合、当該データのエラ
ー訂正チェックデータを不揮発性記憶手段に記憶させ、
受信された要求のデータを読み出す場合、不揮発性記憶
手段に記憶された当該データのエラー訂正チェックデー
タに基づいて当該読み出したデータのエラー訂正を行う
エラー訂正ステップと、を備えたことを特徴とする記載
の不揮発性記憶装置の制御方法である。
【0058】第9の発明によれば、フラッシュEEPR
OMに記憶されるデータの信頼性を向上させ、データの
一部が壊れている場合であってもこれを訂正できる不揮
発性記憶装置の制御方法を提供することができる。
【0059】第10の発明は、第7の発明において、さ
らに、第2のアドレス取得ステップによって取得された
物理ロケーションに換えてデータの書き込みができる不
揮発性記憶手段の記憶領域の物理ロケーションを参照す
るように、不揮発性記憶手段に記憶された第2のアドレ
ス変換テーブルを更新するアドレス変換テーブル更新ス
テップと、を備えたことを特徴とする不揮発性記憶装置
の制御方法である。
【0060】第10の発明によれば、不揮発性記憶装置
が有する不揮発性記憶手段に対するデータの書き込み
は、原則としてデータが消去された後1回に限られると
いう制限がある場合であっても、効率よく不揮発性記憶
手段の管理を行うことができる不揮発性記憶装置の制御
方法を提供することができる。
【0061】第11の発明は、第10の発明において、
アドレス変換テーブル更新ステップは、不揮発性記憶手
段のページを単位として第2のアドレス変換テーブルを
更新することを特徴とする不揮発性記憶装置の制御方法
である。
【0062】第11の発明によれば、本願発明の好適実
施形態の一つを提供することができる。
【0063】第12の発明は、第7の発明において、第
2のアドレス変換テーブルに記憶される不揮発性記憶手
段の物理ロケーションは、複数のページを含むブロック
を単位として指定されることを特徴とする不揮発性記憶
装置の制御方法である。
【0064】第12の発明によれば、本願発明の好適実
施形態の一つを提供することができる。
【0065】第13の発明は、ホストコンピュータが送
信する論理セクタアドレスに対するデータの書き込み、
または、論理セクタアドレスからの読み出しの要求を受
信する受信ステップと、受信された要求に係る論理セク
タアドレスと揮発性記憶手段によって記憶された第1の
アドレス変換テーブルとから、不揮発性記憶手段に記憶
される第2のアドレス変換テーブルの物理ロケーション
を取得する第1のアドレス取得ステップと、第1のアド
レス取得ステップによって取得された物理ロケーション
に基づいて、不揮発性記憶手段に記憶された第2のアド
レス変換テーブルを得て、受信手段によって受信された
要求に係る論理セクタアドレスと当該第2のアドレス変
換テーブルとから、不揮発性記憶手段に対するデータの
書き込み、または、データの読み込みを行う物理ロケー
ションを取得する第2のアドレス取得ステップと、第2
のアドレス取得ステップによって取得された不揮発性記
憶手段の物理ロケーションに対して受信手段によって受
信された要求のデータを書き込み、または、不揮発性記
憶手段から受信手段によって受信された要求のデータを
読み出すデータアクセスステップと、を備えたことを特
徴とする不揮発性記憶装置を制御するプログラムを記録
した情報記録媒体である。
【0066】第14の発明は、第13の発明において、
さらに、不揮発性記憶手段に記憶された第2のアドレス
変換テーブルから論理セクタアドレスと物理ロケーショ
ンの対応関係を調べて第1のアドレス変換テーブルを構
築し、揮発性記憶手段に 当該第1のアドレス変換テー
ブルを記憶させるアドレス変換テーブル構築ステップ
と、を備えたことを特徴とする不揮発性記憶装置を制御
するプログラムを記録した情報記録媒体である。
【0067】第15の発明は、第13の発明において、
さらに、データアクセスステップが不揮発性記憶手段に
受信された要求のデータを書き込む場合、当該データの
エラー訂正チェックデータを不揮発性記憶手段に記憶さ
せ、受信された要求のデータを読み出す場合、不揮発性
記憶手段に記憶された当該データのエラー訂正チェック
データに基づいて当該読み出したデータのエラー訂正を
行うエラー訂正ステップと、を備えたことを特徴とする
記載の不揮発性記憶装置を制御するプログラムを記録し
た情報記録媒体である。
【0068】第16の発明は、さらに、第2のアドレス
取得ステップによって取得された物理ロケーションに換
えてデータの書き込みができる不揮発性記憶手段の記憶
領域の物理ロケーションを参照するように、不揮発性記
憶手段に記憶された第2のアドレス変換テーブルを更新
するアドレス変換テーブル更新ステップと、を備えたこ
とを特徴とする不揮発性記憶装置を制御するプログラム
を記録した情報記録媒体である。
【0069】第17の発明は、第16の発明において、
アドレス変換テーブル更新ステップは、不揮発性記憶手
段のページを単位として第2のアドレス変換テーブルを
更新することを特徴とする不揮発性記憶装置を制御する
プログラムを記録した情報記録媒体である。
【0070】第18の発明は、第13の発明において、
第2のアドレス変換テーブルに記憶される不揮発性記憶
手段の物理ロケーションは、複数のページを含むブロッ
クを単位として指定されることを特徴とする不揮発性記
憶装置を制御するプログラムを記録した情報記録媒体で
ある。
【0071】第13から第18の発明によれば、これら
のプログラムを記録した情報記録媒体により、これをソ
フトウェア商品として不揮発性記憶装置と独立して容易
に配布したり販売したりすることができるようになる。
本願発明の情報記録媒体に記録されたプログラムを不揮
発性記憶装置で実行すれば、上記の発明に係る不揮発性
記憶装置、および、上記の発明に係る不揮発性記憶装置
の制御方法が実現でき、上記の発明と同様の効果を奏す
る。
【0072】第19の発明は、ホストコンピュータが送
信する論理セクタアドレスに対するデータの書き込み、
または、論理セクタアドレスからの読み出しの要求を受
信する受信手段と、第1のアドレス変換テーブル、およ
び、第2のアドレス変換テーブルを記憶する揮発性記憶
手段と、第3のアドレス変換テーブル、および、データ
を記憶する不揮発性記憶手段と、受信手段によって受信
された要求に係る論理セクタアドレスと揮発性記憶手段
によって記憶された第1のアドレス変換テーブルとか
ら、揮発性記憶手段に記憶される第2のアドレス変換テ
ーブルの物理ロケーションを取得する第1のアドレス取
得手段と、第1のアドレス取得手段によって取得された
物理ロケーションに基づいて、揮発性記憶手段に記憶さ
れた第2のアドレス変換テーブルを得て、受信手段によ
って受信された要求に係る論理セクタアドレスと当該第
2のアドレス変換テーブルとから、不揮発性記憶手段に
記憶される第3のアドレス変換テーブルの物理ロケーシ
ョンを取得する第2のアドレス取得手段と、第2のアド
レス取得手段によって取得された物理ロケーションに基
づいて、不揮発性記憶手段に記憶された第3のアドレス
変換テーブルを得て、受信手段によって受信された要求
に係る論理セクタアドレスと当該第3のアドレス変換テ
ーブルとから、不揮発性記憶手段に対するデータの書き
込み、または、データの読み込みを行う物理ロケーショ
ンを取得する第3のアドレス取得手段と、第3のアドレ
ス取得手段によって取得された不揮発性記憶手段の物理
ロケーションに対して受信手段によって受信された要求
のデータを書き込み、または、不揮発性記憶手段から受
信手段によって受信された要求のデータを読み出すデー
タアクセス手段と、を備えたことを特徴とする不揮発性
記憶装置である。
【0073】第19の発明では、受信手段は、ホストコ
ンピュータが送信する論理セクタアドレスに対するデー
タの書き込み、または、論理セクタアドレスからの読み
出しの要求を受信し、揮発性記憶手段は、第1のアドレ
ス変換テーブル、および、第2のアドレス変換テーブル
を記憶し、不揮発性記憶手段は、第3のアドレス変換テ
ーブル、および、データを記憶し、第1のアドレス取得
手段は、受信手段によって受信された要求に係る論理セ
クタアドレスと揮発性記憶手段によって記憶された第1
のアドレス変換テーブルとから、揮発性記憶手段に記憶
される第2のアドレス変換テーブルの物理ロケーション
を取得し、第2のアドレス取得手段は、第1のアドレス
取得手段によって取得された物理ロケーションに基づい
て、揮発性記憶手段に記憶された第2のアドレス変換テ
ーブルを得て、受信手段によって受信された要求に係る
論理セクタアドレスと当該第2のアドレス変換テーブル
とから、不揮発性記憶手段に記憶される第3のアドレス
変換テーブルの物理ロケーションを取得し、第3のアド
レス取得手段は、第2のアドレス取得手段によって取得
された物理ロケーションに基づいて、不揮発性記憶手段
に記憶された第3のアドレス変換テーブルを得て、受信
手段によって受信された要求に係る論理セクタアドレス
と当該第3のアドレス変換テーブルとから、不揮発性記
憶手段に対するデータの書き込み、または、データの読
み込みを行う物理ロケーションを取得し、データアクセ
ス手段は、第3のアドレス取得手段によって取得された
不揮発性記憶手段の物理ロケーションに対して受信手段
によって受信された要求のデータを書き込み、または、
不揮発性記憶手段から受信手段によって受信された要求
のデータを読み出す。
【0074】第19の発明によれば、揮発性記憶手段に
記憶されるアドレス変換テーブルを多段階にすることに
より、不揮発性記憶手段に記憶されるデータの管理をよ
りきめ細かく行うことができる不揮発性記憶装置を提供
することができる。
【0075】第20の発明は、ホストコンピュータが送
信する論理セクタアドレスに対するデータの書き込み、
または、論理セクタアドレスからの読み出しの要求を受
信する受信ステップと、受信された要求に係る論理セク
タアドレスと揮発性記憶手段によって記憶された第1の
アドレス変換テーブルとから、揮発性記憶手段に記憶さ
れる第2のアドレス変換テーブルの物理ロケーションを
取得する第1のアドレス取得ステップと、第1のアドレ
ス取得ステップによって取得された物理ロケーションに
基づいて、揮発性記憶手段に記憶された第2のアドレス
変換テーブルを得て、受信された要求に係る論理セクタ
アドレスと当該第2のアドレス変換テーブルとから、不
揮発性記憶手段に記憶される第3のアドレス変換テーブ
ルの物理ロケーションを取得する第2のアドレス取得ス
テップと、第2のアドレス取得ステップによって取得さ
れた物理ロケーションに基づいて、不揮発性記憶手段に
記憶された第3のアドレス変換テーブルを得て、受信さ
れた要求に係る論理セクタアドレスと当該第3のアドレ
ス変換テーブルとから、不揮発性記憶手段に対するデー
タの書き込み、または、データの読み込みを行う物理ロ
ケーションを取得する第3のアドレス取得ステップと、
第3のアドレス取得ステップによって取得された不揮発
性記憶手段の物理ロケーションに対して受信された要求
のデータを書き込み、または、不揮発性記憶手段から受
信手段によって受信された要求のデータを読み出すデー
タアクセスステップと、を備えたことを特徴とする不揮
発性記憶装置の制御方法である。
【0076】第20の発明によれば、揮発性記憶手段に
記憶されるアドレス変換テーブルを多段階にすることに
より、不揮発性記憶手段に記憶されるデータの管理をよ
りきめ細かく行うことができる不揮発性記憶装置の制御
方法を提供することができる。
【0077】第21の発明は、ホストコンピュータが送
信する論理セクタアドレスに対するデータの書き込み、
または、論理セクタアドレスからの読み出しの要求を受
信する受信ステップと、受信された要求に係る論理セク
タアドレスと揮発性記憶手段によって記憶された第1の
アドレス変換テーブルとから、揮発性記憶手段に記憶さ
れる第2のアドレス変換テーブルの物理ロケーションを
取得する第1のアドレス取得ステップと、第1のアドレ
ス取得ステップによって取得された物理ロケーションに
基づいて、揮発性記憶手段に記憶された第2のアドレス
変換テーブルを得て、受信された要求に係る論理セクタ
アドレスと当該第2のアドレス変換テーブルとから、不
揮発性記憶手段に記憶される第3のアドレス変換テーブ
ルの物理ロケーションを取得する第2のアドレス取得ス
テップと、第2のアドレス取得ステップによって取得さ
れた物理ロケーションに基づいて、不揮発性記憶手段に
記憶された第3のアドレス変換テーブルを得て、受信さ
れた要求に係る論理セクタアドレスと当該第3のアドレ
ス変換テーブルとから、不揮発性記憶手段に対するデー
タの書き込み、または、データの読み込みを行う物理ロ
ケーションを取得する第3のアドレス取得ステップと、
第3のアドレス取得ステップによって取得された不揮発
性記憶手段の物理ロケーションに対して受信された要求
のデータを書き込み、または、不揮発性記憶手段から受
信手段によって受信された要求のデータを読み出すデー
タアクセスステップと、を備えたことを特徴とする不揮
発性記憶装置を制御するプログラムを記録した情報記録
媒体である。
【0078】第21の発明によれば、このプログラムを
記録した情報記録媒体により、これをソフトウェア商品
として不揮発性記憶装置と独立して容易に配布したり販
売したりすることができるようになる。本願発明の情報
記録媒体に記録されたプログラムを不揮発性記憶装置で
実行すれば、上記の発明に係る不揮発性記憶装置、およ
び、上記の発明に係る不揮発性記憶装置の制御方法が実
現でき、上記の発明と同様の効果を奏する。
【0079】
【発明の実施の形態】以下に本願発明の一実施形態を説
明する。なお、本実施形態は、本願発明の説明のための
ものであり、本願発明の範囲を制限するものではない。
したがって、当業者であれば、各要素をこれと均等なも
のに置換した実施形態を採用することが可能であり、こ
れらの実施形態も本願発明の範囲に含まれる。
【0080】図1は、本願発明に係る不揮発性記憶装置
(メモリカード)の基本的な構成を示すブロック構成図
である。メモリカード101は、インターフェース10
2、CPU 103、フラッシュEEPROM 10
4、RAM 105を備え、これらはバス106を介し
て接続されている。
【0081】インターフェース102はホストコンピュ
ータが送信するデータの書き込みおよび読み出しの要求
を受信し、これらの要求に対する応答をホストコンピュ
ータへ送信する。さらに、ホストコンピュータからイン
ターフェース102を介して電源を供給することも可能
である。また、メモリカード101がATAカードであ
る場合には、インターフェース102は、PCカード
(PCMCIA)標準にしたがった形状および構成とす
る。
【0082】メモリカード101がホストコンピュータ
へ接続され、電源の供給が開始されると、CPU 10
3はフラッシュEEPROM 104に記憶された第2
アドレス変換テーブルに基づいて、第1アドレス変換テ
ーブルを構築し、RAM 105内にこの第1アドレス
変換テーブルを記憶させる。
【0083】また、ホストコンピュータとの間でデータ
の書き込みや読み出しの処理が行われる場合に、RAM
105を用いて転送されるデータをバッファリングし
て、データ転送の高速化を図ることができる。
【0084】また、CPU 103は、フラッシュEE
PROM 104の各ページに実際に書き込まれるデー
タのイメージ、たとえば528バイトのイメージをRA
M105内に作成してから、これをまとめてフラッシュ
EEPROM 104の所望のページに書き込む。この
際に、CPU 103が有するDMA(Direct Memory
Access;直接メモリアクセス)転送装置(図示せず)に
よってバス106を介した高速なデータ転送を実現する
ことができる。
【0085】なお、データ転送のバッファリングに使用
するRAMを別途用意してバス106に接続して、第1
アドレス変換テーブルを記憶するRAM 105とは異
なるチップとすることも可能である。
【0086】フラッシュEEPROM 104の各ペー
ジは、主としてホストコンピュータが書き込んだデータ
を記憶するページと、第2アドレス変換テーブルを記憶
するページと、に分類することができる。
【0087】また、CPU 103は、プログラムRO
M(図示せず)を備える。このプログラムROMにメモ
リカードを制御するプログラムが記録され、電源が投入
されたときにCPU 103はプログラムROMに記録
されたプログラムをロードして、それ以降はこのメモリ
カード制御プログラムを実行し続ける。プログラムRO
MをEEPROMとすれば、別途配布されたメモリカー
ド制御プログラムを新たに記憶させることによって、新
たなメモリカード制御プログラムに更新することができ
る。
【0088】また、CPU 103は、レジスタや、キ
ャッシュ、メモリなどのRAM(図示せず)を内部に備
え、一時的な記憶領域として使用することができる。こ
れらの記憶領域に対する読み出しや書き込み作業はバス
106を介する必要がないため、さらに高速な処理が実
行できる。
【0089】以下では、本願発明の第1の実施形態とし
て、フラッシュEEPROMに記憶されるデータとフラ
ッシュEEPROMに記憶される第2アドレス変換テー
ブルとのいずれもが、ページ単位で管理される実施形態
を説明する。
【0090】まず、本願発明のメモリカード101に対
してホストコンピュータから論理セクタアドレスのデー
タを読み出す旨の要求が来た場合の処理を、図2に示し
たアドレス変換テーブルの説明図、および、図3に示し
たフローチャートを参照して説明する。
【0091】第1アドレス変換テーブル201はRAM
105に記憶され、第2アドレス変換テーブル202
はフラッシュEEPROM 104に記憶される。な
お、第2アドレス変換テーブル202の大きさは、1ペ
ージに記憶できる大きさとする。以下、第2アドレス変
換テーブル202が記憶されているページを管理ページ
と呼ぶ。
【0092】第1アドレス変換テーブル201と第2ア
ドレス変換テーブル202は、アドレス変換を配列で行
う。図2に示すアドレス変換テーブルでは、第1アドレ
ス変換テーブル201の配列のインデックスとして論理
セクタアドレス203の上位側ビット204を、第2ア
ドレス変換テーブル202の配列のインデックスとして
論理セクタアドレス203の下位側ビット205を、そ
れぞれ使用する。
【0093】第1アドレス変換テーブル201の配列の
各要素である第2アドレス変換テーブル物理アドレスエ
リア206は、第2アドレス変換テーブル202の物理
ページアドレスを記憶する。
【0094】第2アドレス変換テーブル202の配列の
各要素である物理ページアドレスエリア207は、デー
タの読み出しや書き込みの対象となりうるページの物理
ページアドレスを記憶する。以下、データの読み出しや
書き込みの対象となりうるページをデータページと呼
ぶ。
【0095】さらに、管理ページには、物理ページ状態
エリア208と代替テーブル物理ページアドレスエリア
209がある。物理ページ状態エリア208は、その管
理ページが有する第2アドレス変換テーブル202の配
列の物理ページアドレスエリア207によって参照され
ているデータページが有効か否かを示す。
【0096】代替テーブル物理ページアドレスエリア2
09は、その管理ページが無効な場合、すなわち、物理
ページ状態エリア208に記憶された値が、その管理ペ
ージが有する第2アドレス変換テーブル202の配列の
物理ページアドレスエリア207によって参照されてい
るデータページが有効でない旨を示している場合、当該
管理ページのかわりに使用すべき管理ページの物理ペー
ジアドレスを記憶する。
【0097】以下、図3のフローチャートにしたがって
説明する。ホストから送信された論理セクタアドレスs
に記憶されたデータを読み出す旨の要求を受信したら、
本処理を開始する(ステップS301)。
【0098】まず、論理セクタアドレスsの上位側ビッ
トを計算する。結果の値がiであるとすると、RAM
105に記憶された第1アドレス変換テーブルの配列の
i番目の要素a[i]を取得する(ステップS302)。
この値をxとする。これは第2アドレス変換テーブルが
記憶される管理ページの物理ページアドレスである。
【0099】次に、フラッシュEEPROM 104か
ら物理ページアドレスxに配置された管理ページを参照
し、この管理ページの物理ページ状態エリア208を調
べる(ステップS303)。
【0100】物理ページ状態エリア208を調べた結
果、この管理ページによって管理されているデータペー
ジが有効でない場合(ステップS303;No)は、物
理ページアドレスxとして代替テーブル物理ページアド
レスエリア209に記憶された値を新たに採用して(ス
テップS304)、ステップS303へ戻る。
【0101】この管理ページによって管理されているデ
ータページが有効である場合(ステップS303;Ye
s)は、論理セクタアドレスsの下位側ビットを計算す
る。結果の値がjであるとすると、この管理ページに記
憶された第2アドレス変換テーブルの配列のj番目の要
素b[j]を取得する(ステップS305)。この値をy
とする。これは、読み出しの対象となるデータページの
物理ページアドレスである。
【0102】最後にフラッシュEEPROM 104の
物理ページアドレスがyのデータページに記憶されたデ
ータをRAM 105内のバッファに転送し、さらに要
求に対する応答としてこのデータをインターフェース1
02を介してホストコンピュータへ送信して(ステップ
S306)、本処理を終了する。
【0103】このように、読み出し要求においては、ア
ドレス変換テーブルやページの更新は一切行う必要がな
い。
【0104】なお、上記実施形態では、第1アドレス変
換テーブル201の配列のインデックスとして論理セク
タアドレス203の上位側ビット204を、第2アドレ
ス変換テーブル202の配列のインデックスとして論理
セクタアドレス203の下位側ビット205を、それぞ
れ使用したが、これと逆の対応とした実施形態をとるこ
とも可能である。また、論理セクタアドレスの一部のビ
ットを無視するような実施形態をとることも可能であ
る。
【0105】以下に、本願発明のメモリカード101に
対してホストコンピュータから論理セクタアドレスsに
データを書き込む旨の要求が来た場合の処理を、図4に
示したフローチャートを参照して、説明する。
【0106】ホストコンピュータから送信された論理セ
クタアドレスsにデータを書き込む旨の要求を受信した
ら、本処理を開始する(ステップS401)。
【0107】まず、ホストコンピュータから送信された
書き込み用データをRAM 105内のバッファに転送
する(ステップS402)。
【0108】次に、データ読み込み要求の処理における
ステップS303〜ステップS304と同様の処理を行
い、書き込みの対象となるデータページを管理している
管理ページの物理ページアドレスxと、当該データペー
ジの物理ページアドレスyを得る(ステップS40
3)。
【0109】次に、フラッシュEEPROM 104の
物理ページアドレスyに配置されたデータページに対す
る書き込みがすでに行われているか否かを調べる(ステ
ップS404)。
【0110】データページに対する書き込みが行われて
いるか否かの判別は、当該データページの冗長部の特定
の場所、たとえば特定の場所の1バイトである管理デー
タエリアに記憶されている値を利用する。フラッシュE
EPROMでは、消去処理は実行されたが未だ書き込み
が実行されていない場合に記憶された値を読み出そうと
すると、すべてのビットが1であるような(実施形態に
よっては、すべてのビットが0であるような)値が取得
される。
【0111】したがって、先のステップS410におい
てデータページに対する書き込みを実行する際に、常
に、管理データエリアに255(二進数で111111
11、十六進数で0xFF)以外の値を記憶させること
とすればよい。こうすれば、管理データエリアの値が0
xFFの場合はそのページに対する書き込みは未だ行わ
れていないと判断し、管理データエリアの値が0xFF
以外の場合はそのページに対する書き込みがすでに行わ
れていると判断することができる。
【0112】管理データエリアに0xFF以外の値が記
憶されている場合(ステップS404;No)は、その
データページはすでに書き込みが行われていることを意
味する。この場合は、未だ書き込みが行われていないペ
ージを、フラッシュEEPROM 104の中から探す
(ステップS405)。
【0113】未だ書き込みが行われていないページが見
つからない場合(ステップS405;No)は、不要に
なった古いデータを記憶しているデータページや管理ペ
ージを消去するため、ガーベージコレクション(Garbag
e Collection)処理を行って、不要なページの消去処理
を行い書き込みが行われていないページを取得する(ス
テップS406)。
【0114】書き込みが行われていないページが見つか
った場合(ステップS405;Yes)は、新たなペー
ジとして2ページを取得する(ステップS407)。一
方は、新たな管理ページとして使用し、他方は、書き込
み要求がされたデータを書き込むデータページとして使
用する。前者の物理ページアドレスをp、後者の物理ペ
ージアドレスをqとする。これらの値を用いて新たな管
理ページに値を記憶させる。
【0115】図5は、管理ページ、および、データペー
ジの更新の様子を示す説明図である。図5(a)は、物
理ページアドレスxに配置された管理ページ501の様
子を示す。管理ページ501の第2アドレス変換テーブ
ル502の配列は、物理ページアドレスyを記憶する要
素503を有し、物理ページアドレスyに配置されたデ
ータページ504はすでに書き込みがされているため、
管理データエリア505には0xFF以外の値(図中で
は0x10。これは「書き込み済み」を意味する)が記
憶されている。また、管理ページ501の物理ページ状
態エリア506には「有効」を示す値が記憶されてい
る。
【0116】図5(b)では、物理ページアドレスxに
配置された管理ページ501の物理ページ状態エリア5
06には「無効」を示す値が、代替テーブル物理ページ
アドレスエリア507には新たに取得された管理ページ
の物理ページアドレスpが、それぞれ記憶される。物理
ページ状態エリア506、および、代替テーブル物理ペ
ージアドレスエリア507の値の更新には、フラッシュ
EEPROMの上書き機能を使用する。本願発明では、
これらのエリアに対する上書きは、高々1回しか使用さ
れないので、広く普及しているフラッシュEEPROM
の上書き機能の制限を満たすことができる。
【0117】物理ページアドレスpに配置された管理ペ
ージ511に記憶される第2アドレス変換テーブル51
2の配列の各要素の値は、基本的には、管理ページ50
1に記憶される第2アドレス変換テーブル502の配列
の各要素の同じ値である。ただし、第2アドレス変換テ
ーブル502の配列の要素のうち、yを記憶していた要
素503に相当する要素513の値がqである点が異な
る。また、管理ページ511の物理ページ状態エリア5
06は「有効」を示す値を記憶している。
【0118】物理ページアドレスqに配置されるデータ
ページ514には、書き込み要求によりRAM 104
に転送されたデータが書き込まれる。また、このデータ
ページ514の管理データエリア515には、「書き込
み済み」を意味する値0x10が記憶されている。
【0119】また、図5(b)では、物理ページアドレ
スyに配置される「古い」データを記憶するデータペー
ジ504の管理データエリア505に記憶される値が、
フラッシュEEPROMの上書き機能によって0x20
に更新されている。これは、前述のガーベージコレクシ
ョン処理(ステップS406)によって将来消去が可能
であるページであることを示す。
【0120】このように図5(a)に示す状態から図5
(b)に示す状態への更新および設定の処理を実行する
(ステップS408)。
【0121】ついで、RAM 105に記憶された第1
アドレス変換テーブルを更新する。すなわち、物理ペー
ジアドレスxを値として記憶している配列の要素の値を
物理ページアドレスpに更新する(ステップS40
9)。この処理によって、第1アドレス変換テーブル2
01は常に最新の「有効」な管理ページの物理ページア
ドレスを記憶することになる。
【0122】なお、書き込み処理および読み出し処理で
は、それぞれ最初に、物理ページ状態エリア208によ
って管理ページのが無効であることが示されている間は
代替ページ物理ページアドレスエリア209をたどるこ
とによって最新の「有効」な管理ページに到達する処理
(ステップS303〜ステップS304、および、ステ
ップS403と同様)を行うので、この処理は任意的で
あり、この時点では行わずにガーベージコレクション処
理において行うこととしてもよい。
【0123】物理ページアドレスyとして新たに取得し
たデータページの物理ページアドレスqを使用して(ス
テップS410)ステップS411へ移行する。
【0124】一方、管理データエリアに0xFFが記憶
されている場合(ステップS404;Yes)は、その
データページは消去された後、未だ書き込みが行われて
いないことを意味する。したがって、当該データページ
に対して書き込みを行うことができる。
【0125】フラッシュEEPROM104の物理ペー
ジアドレスyに配置されたデータページに、RAM 1
05内のバッファに記録されたデータを書き込んで(ス
テップS412)、本処理を終了する。
【0126】なお、ホストコンピュータからの書き込み
要求が複数セクタに渡る場合がある。この場合、書き込
み要求には、書き込み開始位置を示す論理セクタアドレ
ス、および、書き込みを行うセクタ数が指定される。
【0127】この場合、図4のフローチャートに示され
る制御に従って1セクタずつ書き込みの処理を行い、ひ
いてはアドレス変換テーブルの更新を行うことも可能で
ある。しかし、この場合は、第2アドレス変換テーブル
用に多数のページを消費し、その多くが直ちに無効な第
2アドレス変換テーブルとなってしまい、使用効率が悪
い。
【0128】この問題を解決するには、アドレス変換テ
ーブルの更新は、指定された複数のセクタについてまと
めて行うこととすればよい。
【0129】また、上記実施例では管理データエリアに
記憶される値に0x10(書き込み済みのページ)およ
び0x20(消去可のページ)を使用しているが、これ
らは0xFF以外の値に適宜変更が可能である。
【0130】以下に、本願発明のメモリカード101に
電源が投入された際の準備処理、すなわち、第1アドレ
ス変換テーブル201の構築処理を図6に示すフローチ
ャートを参照して説明する。
【0131】上述したように、本願発明においては、管
理に用いられるデータもホストコンピュータによって記
憶されるデータもいずれも不揮発性メモリに記憶され
る。したがって、管理ページかデータページかを区別す
るための機構が必要になる。
【0132】このための機構が、リンクページである。
リンクページは、フラッシュEEPROM 104の固
定された物理ページアドレスに配置された1つまたは複
数のページである。
【0133】リンクページには、論理セクタアドレス2
03の上位側ビット204をインデックスとし、第2ア
ドレス変換テーブルを有する管理ページの物理ページア
ドレスを各要素の値とする配列を記憶する。すなわち、
リンクページに記憶される配列は、RAM 105に記
憶される第1アドレス変換テーブル201と同様の値を
記憶する。
【0134】リンクページに記憶される配列の各要素の
値は、第1アドレス変換テーブル201の配列の要素の
値を更新するのと同時に、フラッシュメモリの上書き機
能を用いて更新することができる。また、上書きの回数
制限によってこれ以上上書きができなくなった場合に
は、当該リンクページが「有効」でなくなった旨と、新
たなリンクページの物理ページアドレスを冗長部に記憶
し、新たなリンクページに第1アドレス変換テーブル2
01と同じ値を記憶させることができる。
【0135】「有効」か否かは、データページの冗長部
の管理データエリア505と同じ場所に記録する。ま
た、新たなリンクページの物理ページアドレスが記憶さ
れる場所を代替リンクページ物理ページアドレスエリア
と呼ぶ。代替リンクページ物理ページアドレスエリア
は、代替テーブル物理ページアドレスエリア209同
様、ページの冗長部でもそうでない部分でも、いずれに
も配置することができる。特に、両者をページ内の同じ
場所に配置することができる。
【0136】このほか、ガーベージコレクション処理の
際に、最初の物理ページアドレスを消去することができ
れば、最新の第1アドレス変換テーブル201を書き込
んでコピーするなどの手法をとることも可能である。
【0137】それでは、図6に示すフローチャートを参
照して、RAM 105に第1アドレス変換テーブル2
01を構築する処理について説明する。電源が投入され
たときに、本処理を開始する(ステップS601)。
【0138】まず、リンクページの物理ページアドレス
mとして0を採用する(ステップS602)。次に、物
理ページアドレスmに配置されたページの冗長部の管理
データエリア505の値を調べる(ステップS60
3)。
【0139】管理データエリア505の値によって、物
理ページアドレスmに配置されたページが「有効」でな
いと判断された場合(ステップS603;No)は、物
理ページアドレスmに配置されたページの代替リンクペ
ージ物理ページアドレスエリアに記憶された物理ページ
アドレスを新たなmとして採用し(ステップS60
4)、ステップS603に戻る。
【0140】物理ページアドレスmに配置されたページ
が「有効」であると判断された場合(ステップS60
3;Yes)は、当該ページをリンクページと判断し、
そのリンクページの配列の各要素について以下の処理を
繰り返す。
【0141】すなわち、最後の要素まで処理したかを調
べ(ステップS605)、最後の要素に達した場合(ス
テップS605;Yes)は本処理を終了する。
【0142】最後の要素の達していない場合(ステップ
S605;No)は、その要素が記憶する物理ページア
ドレスを取得し、当該物理ページアドレスに配置された
管理ページについてステップS303〜ステップS30
4やステップS403と同様の処理を行って、最新の管
理ページの物理ページアドレスを得て、RAM 105
にその物理ページアドレスを記憶して第1アドレス変換
テーブル203の配列を順次設定し(ステップS60
6)、ステップS605に戻る。
【0143】このように、RAM 105には、電源投
入時に第1アドレス変換テーブル201が構築される
が、本願発明では、アドレス変換テーブルを複数の階層
に分割しているため、RAM 105に構築される第1
アドレス変換テーブル201のサイズは小さくてすむ。
このため、RAM 105の容量をおさえることができ
るとともに、電源投入から実際にメモリカードに対する
読み出しや書き込みができるようになるまでの時間を短
縮することができる。
【0144】以下に、アドレス変換テーブルのほかの実
施形態を、図7に示したアドレス変換テーブルの説明図
を参照して、説明する。
【0145】上記の実施形態の説明においては、第2ア
ドレス変換テーブルの配列に物理ページアドレスそのも
のを記憶しているが、図7に示したアドレス変換テーブ
ルは、これ以外の値を記憶した実施形態のものである。
すなわち、物理ページアドレスを16などの2のべき乗
の数値で除算した数値を記憶させる手法である。この数
値を物理ページグループアドレスと呼ぶ。この手法で
は、上述の除算で用いる除数のページ数からなる複数の
ページ(以下、「ページグループ」という)単位で管理
を行う。
【0146】論理セクタアドレス701に対応するデー
タページ702を得る手順は以下のようになる。まず、
論理セクタアドレス701のビット703とRAM 1
05に記憶された第1アドレス変換テーブル704から
第2アドレス変換テーブル705が含まれるページグル
ープ706の物理ページグループアドレスを取得する。
【0147】次に、このページグループ706と論理セ
クタアドレス701のビット707とから第2アドレス
変換テーブル705を含む管理ページ708を選択す
る。さらに、この第2アドレス変換テーブル705と論
理セクタアドレスのビット709とから所望のページ7
02が含まれるページグループ711の物理ページグル
ープアドレスを取得する。最後にこのページグループ7
11と論理セクタアドレス701のビット712とか
ら、所望のページ702の物理ページアドレスを取得す
る。
【0148】この手法では、管理の単位がより大きくな
るだけで、構成、作用、効果とも上記の実施例のそれと
共通する。ただし、ページグループの大きさをブロック
の大きさと一致させると、たとえば1ページが512バ
イトの場合に1ページグループを16ページとすると、
フラッシュEEPROMの消去の単位がページグループ
となる。したがって、ガーベージコレクションなどの処
理において、より容易に不要なページを消去して書き込
みが可能な状態にできるようになる。
【0149】また、管理の単位がより大きくなっている
ため、複数ページに渡るデータの書き込みや読み出しが
頻繁に要求されるような場合には、まとめてデータの書
き込みや読み出しを行うことができるため、処理の高速
化を図ることができる。
【0150】また、管理の単位がより大きくなっている
ため、データの書き込みが特定のページの集中する度合
が減少し、ページの使用頻度が分散するので、メモリカ
ードの寿命を延ばすことができる。
【0151】このようなページグループ単位での管理
は、リンクページについても同様に適用することができ
る。
【0152】以下には、エラー訂正チェックデータを使
用してメモリカードに記憶されるデータの信頼性を向上
するための手法を説明する。
【0153】エラー訂正チェック(ECC;Error Corr
ection Check)データは、各ページに書き込まれるデー
タに基づいて計算される。ハミング距離などに基づいて
データを復元する手法については、公知の手法を利用す
ることができる。たとえば、各ページの冗長部を除いた
サイズを512バイトの場合に、エラー訂正チェックデ
ータを3バイトとすることができる。このようなエラー
訂正チェックデータの計算方法については、たとえば
「情報と符号の理論」(宮川ほか、岩波書店、1983
年)に開示されているような、公知の手法を用いること
ができる。
【0154】本願発明においては、データを書き込む要
求の処理を行う際に、上記ステップS410の前、後、
もしくはこのステップS410において、エラー訂正チ
ェックデータを計算し、これをフラッシュEEPROM
104に記憶する。
【0155】エラー訂正チェックデータは、データが書
き込まれる物理ページアドレスyのページの冗長部に記
憶することができる。この手法では、RAM 105に
物理ページアドレスyのページのデータ部および冗長部
のすべてのイメージを作成してから書き込むことができ
るため、エラー訂正チェックデータをホストコンピュー
タからの要求に基づいてページに書き込まれるデータと
同時に書き込むことができる。
【0156】このほか、物理ページアドレスxもしくは
pに配置される管理ページが管理するデータページの数
と同じ配列を当該管理ページに用意して、その配列の各
データページに対応したインデックスの要素を上記エラ
ー訂正チェックデータとして記憶させることができる。
この手法では、管理ページが物理ページアドレスxにあ
る場合には、フラッシュEEPROMの上書き機能を利
用して管理ページに当該エラー訂正チェックデータを書
き込む。一方、管理ページが物理ページアドレスpにあ
る場合には、管理ページのイメージをRAM 105に
作成する際に、当該エラー訂正チェックデータも含めて
イメージを作成すれば、管理ページに対する第2アドレ
ス変換テーブルの書き込みと同時に当該エラー訂正チェ
ックデータを書き込むことができる。
【0157】さらに、管理ページに記憶された第2アド
レス変換テーブルなどのデータについても、エラー訂正
チェックデータを計算して、上記データページと同様
に、当該管理ページ内などに記憶することができる。
【0158】一方、ホストコンピュータからの要求に基
づいてデータを読み出す際には、上記ステップS304
において、要求されたデータをRAM 105に転送す
るほか、当該データに対応するエラー訂正チェックデー
タも読み出して、RAM 105に転送されたデータと
読み出されたエラー訂正チェックデータとから、エラー
訂正処理を行う。この計算は、上記の通り、公知の手法
を用いることができる。
【0159】このエラー訂正処理を行った後で、インタ
ーフェース102を介して、エラー訂正処理を行ったR
AM 105上のデータを転送する。
【0160】このように、本手法を用いれば、フラッシ
ュEEPROM 104の管理ページおよびデータペー
ジに記憶されるデータの信頼性を向上することができ、
これらのデータが壊れた場合でも、これを訂正できる可
能性を高くすることができる。
【0161】以下では、図8を参照して第2アドレス変
換テーブルのほかの実施形態について説明する。
【0162】上述したように、フラッシュEEPROM
においては、書き込みはページ単位で、消去は複数のペ
ージからなるブロック単位で行われる。これに合わせ
て、第2アドレス変換テーブルを構成する手法について
説明する。
【0163】まず、第2アドレス変換テーブルをまった
く新たに取得する場合には、新しいブロックを1つ取得
する。1ブロックが16ページの場合には、このブロッ
クを使用して第2アドレス変換テーブルを16回まで更
新することができる。現在どの第2アドレス変換テーブ
ルが有効であるかは、上述の実施例と同様の手法による
ことができる。
【0164】また、第2アドレス変換テーブルを更新す
る場合には、第2アドレス変換テーブルが参照するペー
ジに対する書き込みが発生した場合である。上述した実
施形態では、各ページが有効であるか否かの情報を当該
ページの冗長部の管理データエリア505に格納してい
る。しかし、この情報を管理ページ側に記憶すると、起
動時にどのデータページが有効かを調べるために、各デ
ータページにアクセスしないですむため、起動時間の高
速化を図ることができる。
【0165】図8の管理ページ801は、第2アドレス
変換テーブル802を記憶し、参照するページの物理ペ
ージアドレスを記憶する配列a 803と、参照するペ
ージの状態を記憶する配列b 804を備えている。配
列を参照するインデックスをiとすると、物理ページア
ドレスa[i]に配置されたデータページに対する書き込
みが済んでいるか否かの情報がb[i]に記憶された値に
よって判定できる。
【0166】また、管理ページ801が参照するいずれ
かのデータページに対する更新が起こった場合には、新
たに管理ページを取得して、i番目の要素以外はそのま
ま配列a 803と配列b 804をコピーする。i番
目の要素については、以下のように場合分けすることが
できる。
【0167】(1)b[i]が「書き込み可能」であった
場合は、新しい管理ページに対してa[i]はそのままコ
ピーし、b[i]として「書き込み済み」を記憶する。
【0168】(2)b[i]が「書き込み済み」であった
場合は、新しい管理ページに対してa[i]として新たな
データページの物理ページアドレスを記憶し、b[i]と
して「書き込み済み」を記憶する。
【0169】図8を参照しての説明では、第2アドレス
変換テーブルはページ単位での参照を行っているが、こ
れをブロック単位での参照とすることも可能である。す
なわち、管理ページと同様に、1ブロックには複数のデ
ータページを配置することができる。そこで、第2アド
レス変換テーブルは、参照するページを含むブロックの
ブロック番号を記憶するようにしてもよい。第2アドレ
ス変換テーブルが記憶するブロック番号のブロック内
で、どのデータページが最新のもので、どのデータペー
ジが現在有効であるか、については、上述の実施例と同
様の手法によることができる。
【0170】このような実施形態によれば、同じブロッ
クに記憶されるデータページが、同一の論理セクタアド
レスに対応するものとすることができる。したがって、
同一の論理セクタアドレスに対する書き込みがたとえば
16回行われると、それぞれの書き込みの際のデータが
1つブロックに書き込まれることになり、さらに1回書
き込みを行えば、新たなブロックの最初のページに書き
込みが行われる。一方、古いブロック(16回書き込み
がされたブロック)に記憶されたデータはすべて不要な
ものなので、このページの内容を消去してほかのデータ
を記憶するために使用することができる。フラッシュE
EPROMでは、消去はブロック単位で行われるため、
この実施形態は記憶領域の管理の上で大変に有利であ
る。これは、管理ページが含まれるブロックにおいても
同様である。
【0171】以下に、リンクページのほかの実施形態に
ついて説明する。上述の実施形態では、リンクページに
第1アドレス変換テーブルと同じ値を記憶させている
が、これとは異なる以下の実施態様をとることができ
る。すなわち、管理ページに「次の管理ページの物理ペ
ージアドレス」を記憶する領域を設け、すべての管理ペ
ージをリスト状に連結しておく。リンクページは、この
連結された管理ページのリストの先頭の物理ページアド
レスだけを記憶する。この実施形態では、リンクページ
は、ガーベージコレクションにより管理ページの順序が
変更された場合にのみ更新すればよい。したがって、更
新の回数を大幅に減らすことができる。
【0172】リンクページから最新の「先頭の管理ペー
ジの物理ページアドレス」を取得したら、リストを順次
たどっていけば、すべての有効な管理ページをたどるこ
とができる。
【0173】なお、図8の実施形態のように、管理ペー
ジをブロック内に複数配置した場合には、管理ページの
リスト状の連結は、ページ単位ではなくブロック単位で
行った方が記憶容量の面で有利である。この場合は、管
理ページを含むブロック(管理ブロック)に「次の管理
ブロックのブロック番号」を記憶する領域を設ければよ
い。
【0174】なお、RAM 105内にフラッシュEE
PROM 104の未使用ページを高速に検索するため
のビットマップテーブルを記憶させることが可能であ
る。CPU 103は、ホストコンピュータからの書き
込み要求を受信した場合にビットマップを使用して未使
用のページを検索する。
【0175】さらに、バス106を介してデータ圧縮伸
長回路(図示せず)、および、スライディングディクシ
ョナリ(sliding dictionary)用RAM(図示せず)を
接続し、フラッシュEEPROM 104の各ページに
記憶されるデータをLZ法などにより圧縮して、より多
くのデータを記憶できるようにし、メモリカード101
の見かけの記憶容量を大きくすることが可能である。ま
た、スライディングディクショナリは、RAM 105
に記憶させることも可能である。
【0176】このほか、ホストコンピュータがデータの
読み出しや書き込みをすべき場所として、論理セクタア
ドレスを直接指定しない実施形態に本願発明を適用する
ことも可能である。この場合は、シリンダ番号、クラス
タ番号、ヘッダ番号などが指定されるので、これから論
理セクタアドレスを計算する読み出しや書き込みの処理
の事前に行えばよい。
【0177】また、本願発明においては、メモリカード
を使用する前に管理ページにデータページの物理ページ
アドレスを適宜記憶させる必要がある。この処理、工場
出荷時に設定することもできるし、このためのフォーマ
ット処理を行うプログラムをCPU 102に実行させ
ることも可能である。
【0178】以下では、本願発明の第2の実施形態とし
て、第2アドレス変換テーブル自体はページ単位で更新
し、第2アドレス変換テーブルは、物理ロケーションと
して物理ブロックアドレスを記憶する実施形態を説明す
る。第2の実施形態では、記憶されたデータ(ホストコ
ンピュータが要求する読み出しや書き込みの対象となる
データのほか、第2アドレス変換テーブル自体のデータ
を含む)管理をブロック単位で行うため、第2の実施形
態に比較して、さらにアクセス速度を向上させることが
できる。
【0179】第2の実施形態では、フラッシュEEPR
OMの記憶領域の諸元は以下の値を採用することができ
る。
【0180】・1ページ=512バイト(このほか冗長
部あり) ・1ブロック=16ページ 一方、ホストコンピュータの書き込みや読み出しの諸元
は、以下の値を採用することができる。
【0181】・1セクタ=512バイト そこで、第2の実施形態では、1ブロックに対して16
セクタ分のデータを記憶する手法を採用する。すなわ
ち、ホストコンピュータの指定するセクタを16個ずつ
グループにしてまとめる。これをセクタグループと呼
ぶ。
【0182】セクタグループには、連続するセクタ番号
によって指定される複数のセクタを含めることができ
る。この場合、セクタグループ0にはセクタ番号0から
15のセクタが、セクタグループ1にはセクタ番号16
から31のセクタが、…セクタグループ1023にはセ
クタ番号16368から16383のセクタが、それぞ
れ含まれる。このセクタグループとして0から1023
までの1024個を採用した場合、ホストコンピュータ
からは、全体として512×16×1024=8388
608バイト(8メガバイト)の記憶容量の不揮発性記
憶装置として見えることになる。
【0183】一方、フラッシュEEPROM 104に
記憶される第2アドレス変換テーブル内では、セクタグ
ループをさらに128個ずつまとめて管理する。128
個としたのは、これらの管理情報が1ページに入り切る
からである。このセクタグループ128個をまとめて、
セクタグループ群という。上記諸元では、セクタグルー
プ群の数は、1024/128=8個となる。
【0184】上記と同様に、セクタグループ群0には、
セクタグループ0から127が、セクタグループ群1に
は、セクタグループ128から255が、…セクタグル
ープ群7には、セクタグループ896から1023が、
それぞれ含まれる。
【0185】第2の実施形態では、第2アドレス変換テ
ーブルが最適化(ガーベージコレクション)されている
場合、第2アドレス変換テーブル全体を1ブロック内に
記憶することができるが、第2アドレス変換テーブルの
大きさは1ブロックを超えてもよい。また、更新ととも
に古くなったセクタグループ群の情報を記憶するページ
が増えるため、第2アドレス変換テーブルの大きさは増
えていき、ある時点における第2アドレス変換テーブル
が複数ブロックにまたがることがありうる。
【0186】なお、セクタグループ群管理ページを複数
集めて複数ブロック内に記憶し、当該ブロックのそれぞ
れの中の残りの領域をセクタグループ群管理ページの更
新用の領域として確保することができる。この実施形態
では、更新用領域をすべて使い尽した場合、新たな空き
ブロックを確保して、新たなブロックへのリンク情報
(そのブロックの物理ブロックアドレス、すなわち、ブ
ロック番号)を元の(領域を使い尽した)ブロック内に
記憶する。
【0187】なお、これらの諸元は用途に応じて適宜変
更することが可能であり、変更した実施形態も本願発明
の範囲に含まれる。
【0188】以下では、図9を参照して、第2の実施形
態のメモリカードにおける記憶管理の概要を説明する。
図9は、第2の実施形態のメモリカードにおける記憶管
理の概要を示す説明図である。
【0189】ホストコンピュータから送信される書き込
みや読み出しのアクセス要求は、論理セクタ番号を指定
して行われる。この論理セクタ番号をaとする。
【0190】指定された論理セクタ番号aに基づいてR
AM 105内に記憶された第1アドレス変換テーブル
901を参照する。RAM 105内には、第2アドレ
ス変換テーブル902の物理ページアドレスが配列とし
て記憶されている。この配列をXとする。配列のインデ
ックスとして論理セクタ番号aを直接使用することもで
きる。この場合、X[a]なる計算によって第2アドレス
変換テーブル902の物理ページアドレスが得られる。
【0191】一方、論理セクタ番号aで指定されるセク
タが含まれるセクタグループ群のセクタグループ群番号
を使用すると、配列全体の大きさを小さくすることがで
きるため、RAM 105の記憶容量を小さくすること
ができ、コストの削減を図ることができる。
【0192】この場合、論理セクタ番号aで指定される
セクタが含まれるセクタグループ群のセクタグループ群
番号bは、以下の計算により求めることができる。ただ
し、/は整数の割り算、>>は算術右シフトである。
【0193】 b=a/(16×128)=a/2048=a>>11 セクタグループ群番号bをインデックスとして、RAM
105に記憶される第1アドレス変換テーブル901
の配列Xから物理ページアドレスc=X[b]を得る。
【0194】物理ページアドレスcで指定されるページ
は、フラッシュEEPROM 104内のページであ
り、第2アドレス変換テーブル902の一部をなす。こ
の物理ページアドレスで指定されるページをセクタグル
ープ群管理ページと呼ぶ。
【0195】セクタグループ群管理ページ903が記憶
する情報には、以下のものが含まれる。
【0196】・当該セクタグループ群管理ページが管理
セクタグループ群の番号 ・セクタグループを管理する配列Y ・当該ページが含まれるブロックの最後に配置されてい
る場合であって、当該ブロック以外のブロックに第2ア
ドレス変換テーブル902が拡張された場合に、当該拡
張された第2アドレス変換テーブル902が含まれるブ
ロックから元のブロックを参照できるように、元のブロ
ックの物理ブロックアドレス(ブロック番号)を記憶す
るリンク情報 セクタグループ群管理ページ903では、128個のセ
クタグループを配列Yとして管理する。配列Yの各要素
が記憶する情報には、以下の情報が含まれる。
【0197】・物理ブロックアドレスblk ・当該ブロックの現在の状態stat 論理セクタ番号aで表されるセクタが含まれるセクタグ
ループは、セクタグループ群管理ページc内の配列の要
素Y[d]において管理される。dは以下の計算によって
求められ、%は整数の割り算の余りを求める計算、&は
整数のビットアンドである。
【0198】d=(a%(16×128))/16=
(a&2047)/16 以下では、配列の要素Y[d]に含まれる情報のうち、物
理ブロックアドレスをY[d].blkと表記し、当該ブ
ロックの現在の状態をY[d].statと表記する。
【0199】論理セクタアドレスaが指定されると、当
該セクタの情報が記憶されるべきページが含まれるブロ
ックの物理ブロックアドレス(ブロック番号)は、e=
y[d].blkを計算することによって得られる。
【0200】ブロック番号eによって指定されるブロッ
ク904には、論理セクタ番号aによって指定されるセ
クタの情報を記憶するページ905が含まれる。ブロッ
ク904には、ページが16個含まれるが、論理セクタ
番号aによって指定されるセクタの情報を記憶するペー
ジ905は、これらのページのうち、f番目のページで
ある。fは以下の計算によって求められる。
【0201】f=a%16=a&15 このようにして、論理セクタアドレスに対応する物理ロ
ケーションが、物理ブロックアドレス(ブロック番号)
eと、その中でのページ番号fによって得られる。
【0202】以下では、図10を参照して、第2の実施
形態のメモリカードに対するデータの読み出しの手法を
説明する。図10は、第2の実施形態のメモリカードに
対するデータの読み出しの手法を示すフローチャートで
ある。
【0203】読み出し処理は、ホストコンピュータが論
理セクタアドレスaを指定した読み出し要求を出し、こ
れを受信することによって開始される(ステップS10
01)。
【0204】まず、論理セクタアドレスaと第1アドレ
ス変換テーブル901の配列Xから計算c=X[a/2
048]により、第2アドレス変換テーブル902内の
物理ページアドレスcを得る(ステップS1002)。
【0205】次に、物理ページアドレスcに含まれる第
2アドレス変換テーブル902の配列Yから計算d=
(a%2048)/16により、論理セクタアドレスa
に対応するページが含まれるブロックの情報Y[d]を得
る(ステップS1003)。
【0206】ここで、ブロックの状態情報Y[d].st
atが「使用中」であるか否かを調べる(ステップS1
004)。状態には「使用可」「使用中」などが含まれ
るが、読み出しでは「使用中」となっているはずであ
り、「使用中」となっていない場合(ステップS100
4;No)は、エラー処理を行って(ステップS100
5)、本処理を終了する。エラー処理としては、ホスト
コンピュータへ当該状況を報告する処理や、「使用中」
でないにもかかわらず後述するステップS1006へ進
む処理などが考えられる。
【0207】一方、「使用中」となっている場合(ステ
ップS1004;Yes)は、計算e=Y[d].blk
により当該セクタに対応するページが含まれるブロック
の物理ブロックアドレス(ブロック番号)eを得る(ス
テップS1006)。
【0208】さらに、計算f=a%16により、ブロッ
クe内でのページ番号fを得る(ステップS100
7)。
【0209】最後にブロック番号e、当該ブロック内で
のページ番号fで指定されるページのデータを読み出し
て、ホストコンピュータへ転送し(ステップS100
8)、本処理を終了する。
【0210】第1の実施携帯の読み出し処理ではステッ
プS303とS304の繰り返し処理が行われるが、第
2の実施例の読み出し処理では、このような繰り返し処
理が不要であるためより高速な読み出し処理が実現でき
る。
【0211】なお、このように、繰り返し処理を不要と
するために、以下に説明するように、書き込み処理にお
いて工夫をする必要がある。
【0212】以下では、図11、図12を参照して、第
2の実施形態のメモリカードに対するデータの書き込み
の手法を説明する。図11は、第2の実施形態のメモリ
カードに対するデータの書き込みの手法を示すフローチ
ャートであり、図12は、メモリカードに対するデータ
の書き込みの手法を示す説明図である。
【0213】書き込み処理は、ホストコンピュータが論
理セクタアドレスaを指定した書き込み要求を出し、こ
れを受信することによって開始される(ステップS11
01)。
【0214】まず、論理セクタアドレスaと第1アドレ
ス変換テーブル901の配列Xから計算c=X[a/2
048]により、第2アドレス変換テーブル902内の
物理ページアドレスcを得る(ステップS1102)。
【0215】次に、物理ページアドレスcに含まれる第
2アドレス変換テーブル902の配列Yから計算d=
(a%2048)/16により、論理セクタアドレスa
に対応するページが含まれるブロックの情報Y[d]を得
る(ステップS1103)。
【0216】ここで、ブロックの状態情報Y[d].st
atが「使用可」であるか否かを調べる(ステップS1
104)。「使用可」である場合(ステップS110
4;Yes)は、書き込みの対象となるセクタaが含ま
れるセクタグループに対する書き込みが初めて行われた
ことを意味する。
【0217】そこで、計算e=Y[d].blkにより当
該セクタに対応するページが含まれるブロックの物理ブ
ロックアドレス(ブロック番号)eを得る(ステップS
1105)。
【0218】さらに、計算f=a%16により、ブロッ
クe内でのページ番号fを得る(ステップS110
6)。
【0219】最後にブロック番号e、当該ブロック内で
のページ番号fで指定されるページにホストコンピュー
タから指定されたデータを書き込むとともに、Y[d].
statを「使用中」に更新して(ステップS110
7)、本処理を終了する。
【0220】一方、ブロックの状態情報Y[d].sta
tが「使用可」でなかった場合(ステップS1104;
No)は、ブロックの状態情報が「使用可」であるよう
な要素を含む配列Yを記憶するセクタグループ群管理ペ
ージを探す(ステップS1108)。当該セクタグルー
プ群管理ページの物理ページアドレスをpとする。以下
の説明では、セクタグループ群管理ページc内の配列
は、c.Yのように表記することにする。
【0221】セクタグループ群管理ページpの配列Y
は、「使用可」であるようなブロックを管理する。すな
わち、p.Y[q].statが「使用可」であるような整
数qが存在する。
【0222】なお、ステップS1108の空きブロック
を探す処理では、第1の実施例におけるビットマップテ
ーブルによる高速検索を行うこともできる。
【0223】次に、第2アドレス変換テーブル902を
記憶するブロックの更新領域に空きページが2ページあ
るか否かを調べる(ステップS1109)。この2ペー
ジには、ページcとページpを更新した結果を保存する
ことになる。
【0224】第2アドレス変換テーブル902を記憶す
るブロックの更新領域に空きページが2ページある場合
(ステップS1109;Yes)は、ステップS111
0に進む。得られた空きページの物理ページアドレスを
mとn=m+1として、以下、説明する。
【0225】さらに、ページc、p、m、nについてセ
クタグループ群管理ページの更新処理を行う(ステップ
S1110)。この処理について、図12を参照して説
明する。
【0226】図12(a)は、本ステップS1110を
実行する前のページc、pに記憶された情報の様子を示
す説明図である。
【0227】ページc 1201において、c.Y[d]
は、当該セクタaの元のデータが記憶されているブロッ
ク1211を指している。すなわち、ブロック1211
のブロック番号sは、s=c.Y[d].blkである。ま
た、c.Y[d].statは「使用中」である。
【0228】ページp 1202において、p.Y[q]
は、空きブロック1212を指している。空きブロック
1212のブロック番号tは、t=p.Y[q].blkで
ある。
【0229】ページm 1203と、ページn 120
4は、消去されたままの、何も記憶されていない状態に
なっているので省略する。また、p.Y[q].statは
「使用可」である。
【0230】図12(b)は、本ステップS1110を
実行する前のページm、nに記憶された情報の様子を示
す説明図である。ページc、pに記憶される情報は、図
12(a)に示すものと同じであるので、省略する。
【0231】ページm 1203は、m.Y[d].blk
に記憶される値がtであり、m.Y[d].statに記憶
される値が「使用中」であることを除き、ページc 1
201に記憶される値と同様の値を記憶する。なお、こ
の時点でm.Y[d].statの値を「使用中」にしてい
るため、この後に実行するステップS1107において
Y[d].statの値を更新する必要はない。
【0232】一方、ページn 1204は、n.Y[q].
blkに記憶される値がsであり、n.Y[q].stat
に記憶される値が「消去可」であることを除き、ページ
p1202に記憶される値と同様の値を記憶する。
【0233】すなわち、使用中のブロックs 1211
と、使用可の空きブロックt 1212との間で、物理
ブロックアドレスの「交換」が行なわれる。
【0234】さらに、本ステップS1110において、
古いブロックs 1211の内容はそのままとするが、
当該古いブロックs 1211のうち、(f=a%1
6)番目のページ以外のページの内容を新しいブロック
t 1212にコピーする。f番目のページに対する書
き込みは以降の処理ステップS1107で行われる。
【0235】なお、この説明では、新しいブロックt
1212に対する書き込みは、ステップS1110とス
テップS1107において、分割して行われるが、ステ
ップS1110でブロック全体をまとめてコピー実行
し、ステップS1107におけるページ書き込みは実行
しない実施形態をとることもできる。
【0236】さらに、本ステップS1110において、
各ページc、p、m、nに適切なセクタグループ群番号
を記憶する。
【0237】最後に、本ステップS1110において、
第1アドレス変換テーブルの更新を行う。まず、RAM
105内に記憶された第1アドレス変換テーブルの配
列の要素の値X[a/2048]を新たに取得されたペー
ジm 1203のページ番号mに更新する。さらに、配
列の要素の値がpとなっているもの、すなわち、等式X
[i]=pが成立するような要素が一つあるが、この要素
の値を新たに取得されたページn 1204のページ番
号nに更新する。
【0238】ステップS1110のセクタグループ群管
理ページの更新処理を行ったら、物理ページアドレスc
の新たな値としてmを採用して(ステップS111
1)、ステップS1105へ進む。dとしては、ステッ
プS1103で計算されるものと同じ値(d=(a%2
048)/16)を使用する。なお、上記更新処理ステ
ップS1110において適切な値が記憶されるため、ス
テップS1103からステップS1104におけるY
[d].statのチェックは不要である。
【0239】第2アドレス変換テーブル902を記憶す
るブロックの更新領域に空きページが2ページない場合
(ステップS1109;No)には、新たな空きブロッ
クを探し、新たなブロックの最後のページに配置された
リンク情報領域に元のブロックの物理ブロックアドレス
(ブロック番号)を記憶し、当該ブロックの最初の2ペ
ージを得られた空きページとし、当該ページの物理ペー
ジアドレスmとn=m+1を取得して(ステップS11
12)、ステップS1110へ進む。
【0240】なお、ステップS1112において、ブロ
ックの状態情報が「使用可」であるような要素を含む配
列を記憶するセクタグループ群管理ページが一切見つか
らなかった場合は、使用済みブロックを含む管理ページ
を参照し、使用済みブロックを消去することにより、新
たな空きページm、nを取得する。ステップS1110
に進む。
【0241】なお、cとpが等しい場合については、フ
ローチャート内に図示しないが、同じセクタグループ群
管理ページc内において上記のようなブロック番号の交
換処理を行えばよい。この場合、更新領域から取得する
新たなセクタグループ群管理ページは1つでよい。
【0242】また、ステップS1109における空きペ
ージを2ページ分取得する処理は、ページcとページ
m、および、ページqとページn、が、それぞれ同じブ
ロック内、もしくは、そのブロックからリンクされたブ
ロック内に配置されるような形式で行うこともできる。
この場合、必ずしもn=m+1とはならない。このよう
な実施形態は、セクタグループ群管理ページの数が多い
場合であって、1ブロックには入り切らない場合に採用
することができる。
【0243】セクタグループ群管理ページの数が多い場
合には、複数のセクタグループ群管理ページをまとめ
て、セクタグループ群管理ページ群とする。セクタグル
ープ群管理ページ群は1ブロック内に記憶されるが、当
該ブロック内に更新用の空き領域が複数ページ存在する
ようにする。
【0244】セクタグループ群管理ページ群が含まれる
ブロックは、更新用の空き領域がなくなると、適宜リン
クされる。このようなリンクされたブロックをまとめ
て、セクタグループ群管理ブロック群と呼ぶ。
【0245】新たなブロックがセクタグループ群管理ブ
ロック群にリンクされた場合、当該新たなブロックのブ
ロック番号を、フラッシュEEPROM内の固定領域に
確保されたリンクブロックに記憶する。
【0246】セクタグループ群管理ページの数が少ない
場合には、セクタグループ群管理ブロック群は1つなの
で、リンクブロックに記憶される最後に取得されたブロ
ックのブロック番号は1つである。この値は、リンクブ
ロックの先頭から順次記憶していく。
【0247】一方、セクタグループ群管理ページの数が
多い場合には、セクタグループ群管理ブロック群は複数
なので、リンクブロックに記憶される最後に取得された
ブロックのブロック番号を、ブロック群ごとに、リンク
ブロックの先頭から順次記憶していく。
【0248】セクタグループ群管理ブロック群は、当該
ブロックの最後のページ内のリンク情報によってリンク
されるが、このリンクは、新たに取得されたブロック
が、古いブロックを参照する形で行われる。したがっ
て、リンクブロック内に最後に取得されたブロックのブ
ロック番号を記憶しておけば、リンク情報をたどること
によって、新しいブロックから古いブロックへ、順次、
必要な管理情報を記憶するセクタグループ群管理ブロッ
クのすべてにアクセスすることができる。
【0249】また、ビットマップテーブルを使用する実
施形態においては、必要なビットマップテーブルの更新
の処理をステップS1107において行う。
【0250】また、ステップS1112における空きブ
ロックの取得においては、ステップS1108からステ
ップS1111で行われるセクタグループ群管理ページ
の更新処理と同様の処理を行うことができる。このよう
に、データを記憶するブロックの管理と、セクタグルー
プ群管理ページを記憶するブロックの管理とが、同じよ
うに行われる。これが本願発明の特徴の一つである。
【0251】以下では、図13を参照して、第2の実施
形態のメモリカードに対する第1アドレス変換テーブル
901の構築の手法を説明する。以下では、セクタグル
ープ群管理ブロック群が1つの場合について説明する
が、複数の場合には、以下の説明で示す手法を各群につ
いて繰り返せばよい。
【0252】構築処理は、メモリカードに電源が投入さ
れた際に開始される(ステップS1301)。
【0253】まず、フラッシュEEPROM内の固定領
域に確保されたリンクブロックから、セクタグループ群
管理ブロックとして最後に確保されたブロックのブロッ
ク番号を取得する(ステップS1302)。
【0254】次に、取得されたブロック番号で指定され
るブロック内のセクタグループ群管理ページのすべてに
ついて処理を行ったか調べ(ステップS1303)、行
っていない場合(ステップS1303;No)は以下の
処理を行い、処理すべきセクタグループ群管理ページが
ない場合には、ステップS1307へ進む。
【0255】当該セクタグループ群管理ページが管理す
るセクタグループ群番号を取得し、RAM内の第1アド
レス変換テーブル901の配列のうち当該セクタグルー
プ群番号をインデックスとする領域に、すでに物理ペー
ジアドレスが記憶されているか調べる(ステップS13
04)。すでに物理ページアドレスが記憶されている場
合(ステップS1304;Yes)には、当該セクタグ
ループ群管理ページは古い情報を記憶しているため、処
理の対象を次のセクタグループ群管理ページに移行して
(ステップS1305)、ステップS1303に戻る。
【0256】一方、まだ物理ページアドレスが記憶され
ていない場合(ステップS1304;No)には、当該
セクタグループ群管理ページに最新の情報が記憶されて
いるため、RAM内の第1アドレス変換テーブル901
の配列のうち当該セクタグループ群番号をインデックス
とする領域に、当該セクタグループ群管理ページの物理
ページアドレスを記憶し(ステップS1306)、ステ
ップS1305に進む。
【0257】処理すべきセクタグループ群管理ページが
ない場合(ステップS1303;No)は、現在処理し
ているセクタグループ群管理ブロックが管理するセクタ
グループについて、RAM内の第1アドレス変換テーブ
ル901の配列に、必要なセクタグループ群管理ページ
の物理ページアドレスがすべて記憶されたか調べる(ス
テップS1307)。
【0258】すべて記憶されている場合(ステップS1
307;Yes)は、本処理を終了する。
【0259】一方、配列内にまだ記憶されていない要素
がある場合には、現在処理しているブロックのリンク情
報を参照し、現在処理しているブロックよりも一段階古
いブロックを処理対象に変更して(ステップS130
8)ステップS1303に戻る。
【0260】なお、第2の実施形態においても、上記第
1の実施形態と同様にエラーチェック処理を行うことが
可能である。
【0261】このほか、揮発性記憶手段であるRAMに
記憶されるアドレス変換テーブルを多段階、たとえば2
段階にする実施形態も考えられる。すなわち、まず、R
AMに記憶される第1アドレス変換テーブルと論理セク
タアドレスの一部とからRAMに記憶される第2アドレ
ス変換テーブルの物理ロケーションを得る。次に、当該
RAMに記憶される第2アドレス変換テーブルと論理セ
クタアドレスの一部とからフラッシュEEPROMに記
憶される第3アドレス変換テーブルの物理ロケーション
を得る。さらに、当該フラッシュEEPROMに記憶さ
れる第3アドレス変換テーブルと論理セクタアドレスの
一部とからアクセスしたいデータを記憶するフラッシュ
EEPROM内の物理ロケーションを得る。最後に、当
該フラッシュEEPROM内の物理ロケーションに対し
てアクセスを実行する、という実施形態である。
【0262】この実施形態は、前述の実施形態とは、R
AM内に記憶されるアドレス変換テーブルの段階が増え
ている点が異なるが、それ以外は前述の実施形態と同様
である。また、RAM内に記憶されるアドレス変換テー
ブルを多段階にする点についても、前述の実施形態と同
様に、情報を木構造で記憶する手法をとることができ
る。
【0263】
【発明の効果】第1に、論理セクタアドレスの指定によ
りデータの読み出しや書き込みが可能な不揮発性記憶装
置、および、その制御方法を提供することができる。
【0264】第2に、ハードディスクやフロッピーディ
スクと同様の指定方法によりデータの記憶場所を指定す
ることができるATAカードやSSFDCカードなどの
メモリカード、および、その制御方法を提供することが
できる。
【0265】第3に、フラッシュEEPROM、およ
び、RAMを備え、データの読み出し、および、書き込
みの要求の際に指定される論理セクタアドレスをフラッ
シュEEPROM内の物理ページアドレスに変換するた
めの変換テーブルをフラッシュEEPROM、および、
RAMに分割して記憶する不揮発性記憶装置、および、
その制御方法を提供することができる。
【0266】第4に、電源を投入してからデータの書き
込みや読み出しができるまでの準備時間が短い不揮発性
記憶装置、および、その制御方法を提供することができ
る。
【0267】第5に、不揮発性記憶装置が有する不揮発
性記憶手段に対するデータの書き込みは、原則としてデ
ータが消去された後1回に限られるという制限がある場
合であっても、効率よく不揮発性記憶手段の管理を行う
ことができる不揮発性記憶装置、および、その制御方法
を提供することができる。
【0268】第6に、フラッシュEEPROMに記憶さ
れるデータの信頼性を向上させ、データの一部が壊れて
いる場合であってもこれを訂正できる不揮発性記憶装
置、および、その制御方法を提供することができる。
【0269】第7に、ブロック単位で記憶されるデータ
を更新することにより、より高速なアクセスが可能な不
揮発性記憶装置、および、その制御方法を提供すること
ができる。
【0270】第8に、これら制御を実現するプログラム
を記録した情報記録媒体により、これをソフトウェア商
品として不揮発性記憶装置と独立して容易に配布したり
販売したりすることができるようになる。本願発明の情
報記録媒体に記録されたプログラムを不揮発性記憶装置
で実行すれば、上記の発明に係る不揮発性記憶装置、お
よび、上記の発明に係る不揮発性記憶装置の制御方法が
実現でき、同様に、上記効果を奏する。
【図面の簡単な説明】
【図1】本願発明の不揮発性記憶装置(メモリカード)
の基本構成を示すブロック構成図である。
【図2】本願発明のアドレス変換テーブルの実施形態の
例を示す説明図である。
【図3】本願発明において、ホストコンピュータからデ
ータを読み出す旨の要求を受信した場合の処理を示すフ
ローチャートである。
【図4】本願発明において、ホストコンピュータからデ
ータを書き込む旨の要求を受信した場合の処理を示すフ
ローチャートである。
【図5】本願発明において、新たなページを取得して管
理ページおよびデータページの関係を更新する場合の各
ページの関係を示す説明図である。
【図6】本願発明において、メモリカードの電源投入の
際にRAMに第1アドレス変換テーブルを構築する処理
を示すフローチャートである。
【図7】本願発明のアドレス変換テーブルのほかの実施
形態の例を示す説明図である。
【図8】本願発明のアドレス変換テーブルのほかの実施
形態の例を示す説明図である。
【図9】第2の実施形態のメモリカードにおける記憶管
理の概要を示す説明図である。
【図10】第2の実施形態のメモリカードに対するデー
タの読み出しの手法を示すフローチャートである。
【図11】第2の実施形態のメモリカードに対するデー
タの書き込みの手法を示すフローチャートである。
【図12】メモリカードに対するデータの書き込みの手
法を示す説明図である。
【図13】第2の実施形態のメモリカードに対する第1
アドレス変換テーブルの構築の手法を示す説明図であ
る。
【符号の説明】
101 メモリカード 102 インターフェース 103 CPU 104 フラッシュEEPROM 105 RAM 106 バス 201 第1アドレス変換テーブル 202 第2アドレス変換テーブル 203 論理セクタアドレス 204 論理セクタアドレスの上位側ビット 205 論理セクタアドレスの下位側ビット 206 第2アドレス変換テーブル物理アドレスエリ
ア 207 物理ページアドレスエリア 208 物理ページ状態エリア 209 代替テーブル物理ページアドレスエリア 501 管理ページ 502 第2アドレス変換テーブル 503 第2アドレス変換テーブルの配列の要素 504 データページの物理ページアドレス 505 管理データエリア 506 物理ページ状態エリア 511 管理ページ 512 第2アドレス変換テーブル 513 第2アドレス変換テーブルの配列の要素 514 データページの物理ページアドレス 515 管理データエリア 516 物理ページ状態エリア 701 論理セクタアドレス 702 所望のデータページ 703 論理セクタアドレスのビット 704 第1アドレス変換テーブル 705 第2アドレス変換テーブル 706 ページグループ 707 論理セクタアドレスのビット 708 管理ページ 709 論理セクタアドレスのビット 711 ページグループ 712 論理セクタアドレスのビット 801 管理ページ 802 第2アドレス変換テーブル 803 物理ページアドレスの配列 804 ページ状態の配列 901 第1アドレス変換テーブル 902 第2アドレス変換テーブル 903 セクタグループ群管理ページ 904 書き込みを行うページが含まれるブロック 905 書き込みを行うページ 1201 セクタグループを管理するページc 1202 空ブロックを管理するページp 1203 新規に取得したページm 1204 新規に取得したページn 1211 古い使用済みのブロックs 1212 新しい使用可のブロックt

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 ホストコンピュータが送信する論理セク
    タアドレスに対するデータの書き込み、または、論理セ
    クタアドレスからの読み出しの要求を受信する受信手段
    と、 第1のアドレス変換テーブルを記憶する揮発性記憶手段
    と、 第2のアドレス変換テーブル、および、データを記憶す
    る不揮発性記憶手段と、 前記受信手段によって受信された要求に係る論理セクタ
    アドレスと前記揮発性記憶手段によって記憶された第1
    のアドレス変換テーブルとから、前記不揮発性記憶手段
    に記憶される第2のアドレス変換テーブルの物理ロケー
    ションを取得する第1のアドレス取得手段と、 前記第1のアドレス取得手段によって取得された物理ロ
    ケーションに基づいて、前記不揮発性記憶手段に記憶さ
    れた第2のアドレス変換テーブルを得て、前記受信手段
    によって受信された要求に係る論理セクタアドレスと当
    該第2のアドレス変換テーブルとから、前記不揮発性記
    憶手段に対するデータの書き込み、または、データの読
    み込みを行う物理ロケーションを取得する第2のアドレ
    ス取得手段と、 前記第2のアドレス取得手段によって取得された前記不
    揮発性記憶手段の物理ロケーションに対して前記受信手
    段によって受信された要求のデータを書き込み、また
    は、前記不揮発性記憶手段から前記受信手段によって受
    信された要求のデータを読み出すデータアクセス手段
    と、を備えたことを特徴とする不揮発性記憶装置。
  2. 【請求項2】 さらに、前記不揮発性記憶手段に記憶さ
    れた第2のアドレス変換テーブルから論理セクタアドレ
    スと物理ロケーションの対応関係を調べて第1のアドレ
    ス変換テーブルを構築し、前記揮発性記憶手段に 当該
    第1のアドレス変換テーブルを記憶させるアドレス変換
    テーブル構築手段と、 を備えたことを特徴とする請求項1に記載の不揮発性記
    憶装置。
  3. 【請求項3】 さらに、前記データアクセス手段が前記
    不揮発性記憶手段に前記受信手段によって受信された要
    求のデータを書き込む場合、当該データのエラー訂正チ
    ェックデータを前記不揮発性記憶手段に記憶させ、 前記受信手段によって受信された要求のデータを読み出
    す場合、前記不揮発性記憶手段に記憶された当該データ
    のエラー訂正チェックデータに基づいて当該読み出した
    データのエラー訂正を行うエラー訂正手段と、 を備えたことを特徴とする請求項1に記載の不揮発性記
    憶装置。
  4. 【請求項4】 さらに、前記第2のアドレス取得手段に
    よって取得された物理ロケーションに換えてデータの書
    き込みができる前記不揮発性記憶手段の記憶領域の物理
    ロケーションを参照するように、前記不揮発性記憶手段
    に記憶された第2のアドレス変換テーブルを更新するア
    ドレス変換テーブル更新手段と、を備えたことを特徴と
    する請求項1に記載の不揮発性記憶装置。
  5. 【請求項5】 前記アドレス変換テーブル更新手段は、
    不揮発性記憶手段のページを単位として第2のアドレス
    変換テーブルを更新することを特徴とする請求項4に記
    載の不揮発性記憶装置。
  6. 【請求項6】 前記第2のアドレス変換テーブルに記憶
    される不揮発性記憶手段の物理ロケーションは、複数の
    ページを含むブロックを単位として指定されることを特
    徴とする請求項1に記載の不揮発性記憶装置。
  7. 【請求項7】 ホストコンピュータが送信する論理セク
    タアドレスに対するデータの書き込み、または、論理セ
    クタアドレスからの読み出しの要求を受信する受信ステ
    ップと、 前記受信された要求に係る論理セクタアドレスと揮発性
    記憶手段によって記憶された第1のアドレス変換テーブ
    ルとから、不揮発性記憶手段に記憶される第2のアドレ
    ス変換テーブルの物理ロケーションを取得する第1のア
    ドレス取得ステップと、 前記第1のアドレス取得ステップによって取得された物
    理ロケーションに基づいて、前記不揮発性記憶手段に記
    憶された第2のアドレス変換テーブルを得て、前記受信
    手段によって受信された要求に係る論理セクタアドレス
    と当該第2のアドレス変換テーブルとから、前記不揮発
    性記憶手段に対するデータの書き込み、または、データ
    の読み込みを行う物理ロケーションを取得する第2のア
    ドレス取得ステップと、 前記第2のアドレス取得ステップによって取得された前
    記不揮発性記憶手段の物理ロケーションに対して前記受
    信手段によって受信された要求のデータを書き込み、ま
    たは、前記不揮発性記憶手段から前記受信手段によって
    受信された要求のデータを読み出すデータアクセスステ
    ップと、を備えたことを特徴とする不揮発性記憶装置の
    制御方法。
  8. 【請求項8】 さらに、前記不揮発性記憶手段に記憶さ
    れた第2のアドレス変換テーブルから論理セクタアドレ
    スと物理ロケーションの対応関係を調べて第1のアドレ
    ス変換テーブルを構築し、前記揮発性記憶手段に 当該
    第1のアドレス変換テーブルを記憶させるアドレス変換
    テーブル構築ステップと、を備えたことを特徴とする請
    求項7に記載の不揮発性記憶装置の制御方法。
  9. 【請求項9】 さらに、前記データアクセスステップが
    前記不揮発性記憶手段に前記受信された要求のデータを
    書き込む場合、当該データのエラー訂正チェックデータ
    を前記不揮発性記憶手段に記憶させ、前記受信された要
    求のデータを読み出す場合、前記不揮発性記憶手段に記
    憶された当該データのエラー訂正チェックデータに基づ
    いて当該読み出したデータのエラー訂正を行うエラー訂
    正ステップと、 を備えたことを特徴とする請求項7に記載の不揮発性記
    憶装置の制御方法。
  10. 【請求項10】 さらに、前記第2のアドレス取得ステ
    ップによって取得された物理ロケーションに換えてデー
    タの書き込みができる前記不揮発性記憶手段の記憶領域
    の物理ロケーションを参照するように、前記不揮発性記
    憶手段に記憶された第2のアドレス変換テーブルを更新
    するアドレス変換テーブル更新ステップと、を備えたこ
    とを特徴とする請求項7に記載の不揮発性記憶装置の制
    御方法。
  11. 【請求項11】 前記アドレス変換テーブル更新ステッ
    プは、不揮発性記憶手段のページを単位として第2のア
    ドレス変換テーブルを更新することを特徴とする請求項
    10に記載の不揮発性記憶装置の制御方法。
  12. 【請求項12】 前記第2のアドレス変換テーブルに記
    憶される不揮発性記憶手段の物理ロケーションは、複数
    のページを含むブロックを単位として指定されることを
    特徴とする請求項7に記載の不揮発性記憶装置の制御方
    法。
  13. 【請求項13】 ホストコンピュータが送信する論理セ
    クタアドレスに対するデータの書き込み、または、論理
    セクタアドレスからの読み出しの要求を受信する受信ス
    テップと、 前記受信された要求に係る論理セクタアドレスと揮発性
    記憶手段によって記憶された第1のアドレス変換テーブ
    ルとから、不揮発性記憶手段に記憶される第2のアドレ
    ス変換テーブルの物理ロケーションを取得する第1のア
    ドレス取得ステップと、 前記第1のアドレス取得ステップによって取得された物
    理ロケーションに基づいて、前記不揮発性記憶手段に記
    憶された第2のアドレス変換テーブルを得て、前記受信
    手段によって受信された要求に係る論理セクタアドレス
    と当該第2のアドレス変換テーブルとから、前記不揮発
    性記憶手段に対するデータの書き込み、または、データ
    の読み込みを行う物理ロケーションを取得する第2のア
    ドレス取得ステップと、 前記第2のアドレス取得ステップによって取得された前
    記不揮発性記憶手段の物理ロケーションに対して前記受
    信手段によって受信された要求のデータを書き込み、ま
    たは、前記不揮発性記憶手段から前記受信手段によって
    受信された要求のデータを読み出すデータアクセスステ
    ップと、を備えたことを特徴とする不揮発性記憶装置を
    制御するプログラムを記録した情報記録媒体。
  14. 【請求項14】 さらに、前記不揮発性記憶手段に記憶
    された第2のアドレス変換テーブルから論理セクタアド
    レスと物理ロケーションの対応関係を調べて第1のアド
    レス変換テーブルを構築し、前記揮発性記憶手段に 当
    該第1のアドレス変換テーブルを記憶させるアドレス変
    換テーブル構築ステップと、を備えたことを特徴とする
    請求項13に記載の不揮発性記憶装置を制御するプログ
    ラムを記録した情報記録媒体。
  15. 【請求項15】 さらに、前記データアクセスステップ
    が前記不揮発性記憶手段に前記受信された要求のデータ
    を書き込む場合、当該データのエラー訂正チェックデー
    タを前記不揮発性記憶手段に記憶させ、 前記受信された要求のデータを読み出す場合、前記不揮
    発性記憶手段に記憶された当該データのエラー訂正チェ
    ックデータに基づいて当該読み出したデータのエラー訂
    正を行うエラー訂正ステップと、 を備えたことを特徴とする請求項13に記載の不揮発性
    記憶装置を制御するプログラムを記録した情報記録媒
    体。
  16. 【請求項16】 さらに、前記第2のアドレス取得ステ
    ップによって取得された物理ロケーションに換えてデー
    タの書き込みができる前記不揮発性記憶手段の記憶領域
    の物理ロケーションを参照するように、前記不揮発性記
    憶手段に記憶された第2のアドレス変換テーブルを更新
    するアドレス変換テーブル更新ステップと、を備えたこ
    とを特徴とする請求項13に記載の不揮発性記憶装置を
    制御するプログラムを記録した情報記録媒体。
  17. 【請求項17】 前記アドレス変換テーブル更新ステッ
    プは、不揮発性記憶手段のページを単位として第2のア
    ドレス変換テーブルを更新することを特徴とする請求項
    16に記載の不揮発性記憶装置を制御するプログラムを
    記録した情報記録媒体。
  18. 【請求項18】 前記第2のアドレス変換テーブルに記
    憶される不揮発性記憶手段の物理ロケーションは、複数
    のページを含むブロックを単位として指定されることを
    特徴とする請求項13に記載の不揮発性記憶装置を制御
    するプログラムを記録した情報記録媒体。
  19. 【請求項19】 ホストコンピュータが送信する論理セ
    クタアドレスに対するデータの書き込み、または、論理
    セクタアドレスからの読み出しの要求を受信する受信手
    段と、 第1のアドレス変換テーブル、および、第2のアドレス
    変換テーブルを記憶する揮発性記憶手段と、 第3のアドレス変換テーブル、および、データを記憶す
    る不揮発性記憶手段と、 前記受信手段によって受信された要求に係る論理セクタ
    アドレスと前記揮発性記憶手段によって記憶された第1
    のアドレス変換テーブルとから、前記揮発性記憶手段に
    記憶される第2のアドレス変換テーブルの物理ロケーシ
    ョンを取得する第1のアドレス取得手段と、 前記第1のアドレス取得手段によって取得された物理ロ
    ケーションに基づいて、前記揮発性記憶手段に記憶され
    た第2のアドレス変換テーブルを得て、前記受信手段に
    よって受信された要求に係る論理セクタアドレスと当該
    第2のアドレス変換テーブルとから、前記不揮発性記憶
    手段に記憶される第3のアドレス変換テーブルの物理ロ
    ケーションを取得する第2のアドレス取得手段と、 前記第2のアドレス取得手段によって取得された物理ロ
    ケーションに基づいて、前記不揮発性記憶手段に記憶さ
    れた第3のアドレス変換テーブルを得て、前記受信手段
    によって受信された要求に係る論理セクタアドレスと当
    該第3のアドレス変換テーブルとから、前記不揮発性記
    憶手段に対するデータの書き込み、または、データの読
    み込みを行う物理ロケーションを取得する第3のアドレ
    ス取得手段と、 前記第3のアドレス取得手段によって取得された前記不
    揮発性記憶手段の物理ロケーションに対して前記受信手
    段によって受信された要求のデータを書き込み、また
    は、前記不揮発性記憶手段から前記受信手段によって受
    信された要求のデータを読み出すデータアクセス手段
    と、を備えたことを特徴とする不揮発性記憶装置。
  20. 【請求項20】 ホストコンピュータが送信する論理セ
    クタアドレスに対するデータの書き込み、または、論理
    セクタアドレスからの読み出しの要求を受信する受信ス
    テップと、 前記受信された要求に係る論理セクタアドレスと揮発性
    記憶手段によって記憶された第1のアドレス変換テーブ
    ルとから、揮発性記憶手段に記憶される第2のアドレス
    変換テーブルの物理ロケーションを取得する第1のアド
    レス取得ステップと、 前記第1のアドレス取得ステップによって取得された物
    理ロケーションに基づいて、前記揮発性記憶手段に記憶
    された第2のアドレス変換テーブルを得て、前記受信さ
    れた要求に係る論理セクタアドレスと当該第2のアドレ
    ス変換テーブルとから、不揮発性記憶手段に記憶される
    第3のアドレス変換テーブルの物理ロケーションを取得
    する第2のアドレス取得ステップと、 前記第2のアドレス取得ステップによって取得された物
    理ロケーションに基づいて、前記不揮発性記憶手段に記
    憶された第3のアドレス変換テーブルを得て、前記受信
    された要求に係る論理セクタアドレスと当該第3のアド
    レス変換テーブルとから、前記不揮発性記憶手段に対す
    るデータの書き込み、または、データの読み込みを行う
    物理ロケーションを取得する第3のアドレス取得ステッ
    プと、 前記第3のアドレス取得ステップによって取得された前
    記不揮発性記憶手段の物理ロケーションに対して前記受
    信された要求のデータを書き込み、または、前記不揮発
    性記憶手段から前記受信手段によって受信された要求の
    データを読み出すデータアクセスステップと、を備えた
    ことを特徴とする不揮発性記憶装置の制御方法。
  21. 【請求項21】 ホストコンピュータが送信する論理セ
    クタアドレスに対するデータの書き込み、または、論理
    セクタアドレスからの読み出しの要求を受信する受信ス
    テップと、 前記受信された要求に係る論理セクタアドレスと揮発性
    記憶手段によって記憶された第1のアドレス変換テーブ
    ルとから、揮発性記憶手段に記憶される第2のアドレス
    変換テーブルの物理ロケーションを取得する第1のアド
    レス取得ステップと、 前記第1のアドレス取得ステップによって取得された物
    理ロケーションに基づいて、前記揮発性記憶手段に記憶
    された第2のアドレス変換テーブルを得て、前記受信さ
    れた要求に係る論理セクタアドレスと当該第2のアドレ
    ス変換テーブルとから、不揮発性記憶手段に記憶される
    第3のアドレス変換テーブルの物理ロケーションを取得
    する第2のアドレス取得ステップと、 前記第2のアドレス取得ステップによって取得された物
    理ロケーションに基づいて、前記不揮発性記憶手段に記
    憶された第3のアドレス変換テーブルを得て、前記受信
    された要求に係る論理セクタアドレスと当該第3のアド
    レス変換テーブルとから、前記不揮発性記憶手段に対す
    るデータの書き込み、または、データの読み込みを行う
    物理ロケーションを取得する第3のアドレス取得ステッ
    プと、 前記第3のアドレス取得ステップによって取得された前
    記不揮発性記憶手段の物理ロケーションに対して前記受
    信された要求のデータを書き込み、または、前記不揮発
    性記憶手段から前記受信手段によって受信された要求の
    データを読み出すデータアクセスステップと、を備えた
    ことを特徴とする不揮発性記憶装置を制御するプログラ
    ムを記録した情報記録媒体。
JP24383098A 1997-11-13 1998-08-28 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体 Withdrawn JPH11203191A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP24383098A JPH11203191A (ja) 1997-11-13 1998-08-28 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体
US09/191,437 US6282624B1 (en) 1997-11-13 1998-11-12 Non-volatile memory apparatus including first and second address conversion tables stored in volatile and nonvolatile memories for improved access at power up
KR10-1998-0048317A KR100468880B1 (ko) 1997-11-13 1998-11-12 불발성기억장치,불휘발성기억장치의제어방법및불휘발성기억장치를제어하는프로그램을기록한정보기록매체

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP31212197 1997-11-13
JP9-312121 1997-11-13
JP24383098A JPH11203191A (ja) 1997-11-13 1998-08-28 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体

Publications (1)

Publication Number Publication Date
JPH11203191A true JPH11203191A (ja) 1999-07-30

Family

ID=26536455

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24383098A Withdrawn JPH11203191A (ja) 1997-11-13 1998-08-28 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体

Country Status (3)

Country Link
US (1) US6282624B1 (ja)
JP (1) JPH11203191A (ja)
KR (1) KR100468880B1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002052416A1 (fr) * 2000-12-27 2002-07-04 Tdk Corporation Systeme de memoire flash
WO2003017108A1 (en) * 2001-08-21 2003-02-27 Matsushita Electric Industrial Co., Ltd. Storage device having non-volatile memory
WO2003019382A1 (fr) * 2001-08-24 2003-03-06 Matsushita Electric Industrial Co., Ltd. Dispositif de stockage non volatile et procede de commande associe
WO2002019334A3 (en) * 2000-08-25 2003-03-27 Lexar Media Inc Flash memory architecture with separate storage of overhead and user data
WO2002049039A3 (en) * 2000-11-22 2003-06-05 Sandisk Corp Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
JP2004102781A (ja) * 2002-09-11 2004-04-02 Hitachi Ltd メモリシステム
USRE42263E1 (en) 2001-03-22 2011-03-29 Panasonic Corporation Address conversion unit for memory device
JP2014505297A (ja) * 2011-01-06 2014-02-27 マイクロン テクノロジー, インク. メモリアドレス変換

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999045460A2 (en) * 1998-03-02 1999-09-10 Lexar Media, Inc. Flash memory card with enhanced operating mode detection and user-friendly interfacing system
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
WO2001008015A1 (fr) * 1999-07-28 2001-02-01 Sony Corporation Systeme d'enregistrement, dispositif d'enregistrement de donnees, dispositif a memoire et procede d'enregistrement de donnees
JP2001103280A (ja) * 1999-09-30 2001-04-13 Canon Inc 情報処理方法とその装置
JP3975245B2 (ja) 1999-12-16 2007-09-12 株式会社ルネサステクノロジ 記録再生装置および半導体メモリ
US6643731B2 (en) * 1999-12-31 2003-11-04 Texas Instruments Incorporated Low cost memory management that resists power interruption
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
JP2001297038A (ja) * 2000-04-11 2001-10-26 Toshiba Corp データ記憶装置および記録媒体並びに記録媒体制御方法
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
EP1476873A4 (en) * 2002-02-22 2006-07-05 Lexar Media Inc MEMORY HOLDER WITH INTEGRATED LAMP LAMP
US7526599B2 (en) 2002-10-28 2009-04-28 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
FI117489B (fi) 2003-02-07 2006-10-31 Nokia Corp Menetelmä muistikortin osoittamiseksi, muistikorttia käyttävä järjestelmä, ja muistikortti
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US7398348B2 (en) 2004-08-24 2008-07-08 Sandisk 3D Llc Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewritable memory
US7420847B2 (en) * 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US7409473B2 (en) * 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
US7212440B2 (en) * 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
US7509474B2 (en) 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
US7706183B2 (en) * 2005-07-27 2010-04-27 Spansion Llc Read mode for flash memory
US7512864B2 (en) * 2005-09-30 2009-03-31 Josef Zeevi System and method of accessing non-volatile computer memory
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
JP5076411B2 (ja) * 2005-11-30 2012-11-21 ソニー株式会社 記憶装置、コンピュータシステム
US9183114B2 (en) * 2005-12-27 2015-11-10 International Business Machines Corporation Error detection on the stack
US7423915B2 (en) * 2006-01-17 2008-09-09 Spansion Llc Random cache read using a double memory
JP4229140B2 (ja) * 2006-06-16 2009-02-25 ソニー株式会社 集積回路チップ、データ読み出し方法、データ書き込み方法、icカード、および携帯電話機
KR100885783B1 (ko) * 2007-01-23 2009-02-26 주식회사 하이닉스반도체 플래시 메모리 장치 및 동작 방법
US8892831B2 (en) * 2008-01-16 2014-11-18 Apple Inc. Memory subsystem hibernation
US20090198952A1 (en) * 2008-02-04 2009-08-06 Apple Inc Memory Mapping Architecture
EP2309392A1 (en) * 2008-02-29 2011-04-13 Kabushiki Kaisha Toshiba Memory system
US20090307409A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Device memory management
US9280466B2 (en) * 2008-09-09 2016-03-08 Kabushiki Kaisha Toshiba Information processing device including memory management device managing access from processor to memory and memory management method
US8102705B2 (en) * 2009-06-05 2012-01-24 Sandisk Technologies Inc. Structure and method for shuffling data within non-volatile memory devices
US8027195B2 (en) 2009-06-05 2011-09-27 SanDisk Technologies, Inc. Folding data stored in binary format into multi-state format within non-volatile memory devices
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US8468293B2 (en) * 2009-07-24 2013-06-18 Apple Inc. Restore index page
US8516219B2 (en) * 2009-07-24 2013-08-20 Apple Inc. Index cache tree
US20110035557A1 (en) * 2009-08-05 2011-02-10 Nokia Corporation Fragmentation reduction using virtual sectors for static data
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US20110153912A1 (en) * 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US8468294B2 (en) 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
KR20110097438A (ko) 2010-02-25 2011-08-31 삼성전자주식회사 메모리 시스템, 그리고 그것의 동작 방법
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
JP2012234482A (ja) * 2011-05-09 2012-11-29 Canon Inc 記憶制御装置及びその制御方法、並びにプログラム
CN103309824A (zh) * 2012-03-12 2013-09-18 海尔集团公司 Eeprom数据通用读写系统
US8842473B2 (en) 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
JP2014200059A (ja) * 2013-03-15 2014-10-23 パナソニック株式会社 記録媒体
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US10956076B2 (en) 2017-05-23 2021-03-23 Texas Instruments Incorporated Integrated circuit capable of switching between non-volatile memory-based and volatile memory-based processor execution
US10977186B2 (en) * 2017-11-21 2021-04-13 Micron Technology, Inc. Last written page searching

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241741A (ja) * 1990-12-31 1993-09-21 Intel Corp 不揮発性半導体メモリ及びこれを使用したコンピュータシステム
JPH06202821A (ja) * 1992-10-30 1994-07-22 Intel Corp 固体メモリディスク並びにそれを制御する方法及び装置
JPH08510072A (ja) * 1993-03-08 1996-10-22 エム−システムズ・リミテッド フラッシュファイルシステム
WO1997012324A1 (en) * 1995-09-27 1997-04-03 Memory Corporation Memory management

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520197A (ja) * 1991-07-09 1993-01-29 Hitachi Ltd 記憶管理システム及びマイクロプロセツサ
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
EP0613151A3 (en) * 1993-02-26 1995-03-22 Tokyo Shibaura Electric Co Semiconductor memory system with flash EEPROM.
JPH08137634A (ja) * 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
JP3706167B2 (ja) * 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
JP3604466B2 (ja) * 1995-09-13 2004-12-22 株式会社ルネサステクノロジ フラッシュディスクカード
JP3197815B2 (ja) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241741A (ja) * 1990-12-31 1993-09-21 Intel Corp 不揮発性半導体メモリ及びこれを使用したコンピュータシステム
JPH06202821A (ja) * 1992-10-30 1994-07-22 Intel Corp 固体メモリディスク並びにそれを制御する方法及び装置
JPH08510072A (ja) * 1993-03-08 1996-10-22 エム−システムズ・リミテッド フラッシュファイルシステム
WO1997012324A1 (en) * 1995-09-27 1997-04-03 Memory Corporation Memory management

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2317441A1 (en) * 2000-08-25 2011-05-04 Lexar Media, Inc. Flash memory architecture with separate storage of overhead and user data
US10078449B2 (en) 2000-08-25 2018-09-18 Micron Technology, Inc. Flash memory architecture with separate storage of overhead and user data
US9384127B2 (en) 2000-08-25 2016-07-05 Micron Technology, Inc. Flash memory architecture with separate storage of overhead and user data
WO2002019334A3 (en) * 2000-08-25 2003-03-27 Lexar Media Inc Flash memory architecture with separate storage of overhead and user data
WO2002049039A3 (en) * 2000-11-22 2003-06-05 Sandisk Corp Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
JP2004516536A (ja) * 2000-11-22 2004-06-03 サンディスク コーポレイション メモリのページサイズおよび/またはブロックサイズとは異なるサイズを有するデータセクタを備えた不揮発性メモリシステムの処理技法
WO2002052416A1 (fr) * 2000-12-27 2002-07-04 Tdk Corporation Systeme de memoire flash
USRE42263E1 (en) 2001-03-22 2011-03-29 Panasonic Corporation Address conversion unit for memory device
WO2003017108A1 (en) * 2001-08-21 2003-02-27 Matsushita Electric Industrial Co., Ltd. Storage device having non-volatile memory
US6922768B2 (en) 2001-08-24 2005-07-26 Matsushita Electric Industrial Co., Ltd. Non-volatile storage device and control method thereof
EP1420345A4 (en) * 2001-08-24 2007-10-10 Matsushita Electric Ind Co Ltd NON-VOLATILE MEMORY BLOCK AND CONTROL PROCEDURE THEREFOR
WO2003019382A1 (fr) * 2001-08-24 2003-03-06 Matsushita Electric Industrial Co., Ltd. Dispositif de stockage non volatile et procede de commande associe
EP1420345A1 (en) * 2001-08-24 2004-05-19 Matsushita Electric Industrial Co., Ltd. Non−volatile storage device and control method thereof
JP4499982B2 (ja) * 2002-09-11 2010-07-14 株式会社日立製作所 メモリシステム
JP2004102781A (ja) * 2002-09-11 2004-04-02 Hitachi Ltd メモリシステム
JP2014505297A (ja) * 2011-01-06 2014-02-27 マイクロン テクノロジー, インク. メモリアドレス変換
US8898424B2 (en) 2011-01-06 2014-11-25 Micron Technology, Inc. Memory address translation
JP2015158941A (ja) * 2011-01-06 2015-09-03 マイクロン テクノロジー, インク. メモリアドレス変換
US9274973B2 (en) 2011-01-06 2016-03-01 Micron Technology, Inc. Memory address translation

Also Published As

Publication number Publication date
KR100468880B1 (ko) 2005-06-27
US6282624B1 (en) 2001-08-28
KR19990045218A (ko) 1999-06-25

Similar Documents

Publication Publication Date Title
JPH11203191A (ja) 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体
US6477616B1 (en) Storage device, storage system, memory management method, recording medium, and computer data signal
JP5066209B2 (ja) コントローラ、データ記憶装置、及びプログラム
US7475185B2 (en) Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device
US7793068B2 (en) Dual mode access for non-volatile storage devices
JP5178514B2 (ja) 記憶装置用デュアルモードアクセスのための方法およびシステム
US7747837B2 (en) Method and system for accessing non-volatile storage devices
KR100847506B1 (ko) 기억 장치, 메모리 관리 방법 및 프로그램
US7861028B2 (en) System and method for configuration and management of flash memory
US7769978B2 (en) Method and system for accessing non-volatile storage devices
US8041887B2 (en) Memory device and control method thereof
TWI408551B (zh) 快閃記憶體儲存系統及其控制器與資料處理方法
JP5481493B2 (ja) アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム
JP5577238B2 (ja) アクセス装置、情報記録装置、コントローラ、及び情報記録システム
JPH06250798A (ja) 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US7702845B2 (en) Method and apparatus for managing blocks according to update type of data in block-type memory
US6347355B1 (en) Non-volatile storage, the controlling method, and information memory medium
CN112882650A (zh) 数据储存装置以及非挥发式存储器控制方法
US20200301847A1 (en) Memory system for controlling nonvolatile memory
CN112882649B (zh) 数据储存装置以及非挥发式存储器控制方法
JP5057887B2 (ja) データ更新装置及びデータ更新方法及びデータ更新プログラム
JP2005322209A (ja) シリコン記憶媒体制御方法およびシリコン記憶媒体
JP4242245B2 (ja) フラッシュrom制御装置
JP2004038236A (ja) 情報処理装置およびプログラム
JP2004038237A (ja) 情報処理装置およびプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060509

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20060615