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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Abstract
読み出しや書き込みが可能な不揮発性記憶装置を提供す
る。 【解決手段】 揮発性記憶手段に記憶される第1のア
ドレス変換テーブル、不揮発性記憶手段に記憶される第
2のアドレス変換テーブルを備え、受信された要求に係
る論理セクタアドレスと揮発性記憶手段によって記憶さ
れた第1のアドレス変換テーブルとから、不揮発性記憶
手段に記憶される第2のアドレス変換テーブルの物理ロ
ケーションを取得し、第1のアドレス取得手段によって
取得された物理ロケーションに基づいて、不揮発性記憶
手段に記憶された第2のアドレス変換テーブルを得て、
受信手段によって受信された要求に係る論理セクタアド
レスと当該第2のアドレス変換テーブルとから、不揮発
性記憶手段に対しデータを書き込む。
Description
置、不揮発性記憶装置の制御方法、および、不揮発性記
憶装置を制御するプログラムを記録した情報記録媒体に
関し、特に、論理セクタアドレスの指定によるデータの
書き込みや読み出しが可能であり、電源を投入してから
データの書き込みや読み出しができるまでの準備時間が
短い不揮発性記憶装置、当該不揮発性記憶装置の制御方
法、および、当該不揮発性記憶装置を制御するプログラ
ムを記録した情報記録媒体に関する。
ッピーディスクと同様の指定方法によりデータの記憶場
所を指定することができるATA(AT Attachment )カ
ードやSSFDC(Solid State Floppy Disk Card For
um)カードなどのメモリカード、これらのカードの制御
方法、および、これらのカードを制御するプログラムを
記録した情報記録媒体に関する。
M(Electrically Erasable Programmable Read Only M
emory ;電気的消去可能プログラム可能読み出し専用メ
モリ)、および、RAM(Random Access Memory;ラン
ダムアクセスメモリ)を備え、データの読み出し、およ
び、書き込みの要求の際に指定される論理セクタアドレ
スをフラッシュEEPROM内の物理ページアドレスに
変換するための変換テーブルをフラッシュEEPRO
M、および、RAMに分割して記憶する不揮発性記憶装
置、当該不揮発性記憶装置の制御方法、および、当該不
揮発性記憶装置を制御するプログラムを記録した情報記
録媒体に関する。
Mに記憶されたアドレス変換テーブルはページ単位で更
新し、フラッシュEEPROMに記憶されるデータ(ホ
ストコンピュータからの読み出しや書き込みがされるも
ののほか、アドレス変換テーブルのデータを含む)はブ
ロック単位で管理する不揮発性記憶装置、当該不揮発性
記憶装置の制御方法、および、当該不揮発性記憶装置を
制御するプログラムを記録した情報記録媒体に関する。
AカードやSSFDCカードなどのメモリカードは、コ
ンピュータの外部記憶装置として普及しつつあり、ま
た、その規格の標準化が進められている。
標準、もしくは、PCMCIA(Personal Computer Me
mory Card International Association )標準にしたが
ったメモリカードは、ホストコンピュータと接続した場
合は外部記憶装置として動作し、ホストコンピュータと
の接続を解除した場合は記憶したデータを保持したまま
単独で移動や運搬が可能であり、ホストコンピュータの
電源が投入されている場合であっても活線接続、およ
び、活線接続解除が可能である。このような利点を有す
るため、ATAカードなどのメモリカードは、たとえ
ば、ディジタルカメラなどによって撮影されたデータを
記録し、そのデータをホストコンピュータへ移送するた
めの手段として広く使用されている。
モリカードに対して、これらが接続されたホストコンピ
ュータからデータの書き込み、および、読み出しの要求
をする場合には、そのデータの記録場所を指定する必要
がある。この記録場所を指定する際に、論理セクタアド
レスと呼ばれる整数を用いる。論理セクタアドレスは、
ハードディスクやフロッピーディスクに対する書き込み
や読み出しの際にも、記録場所を指定するために使用さ
れる。また、論理セクタアドレスのことを論理ブロック
アドレスと呼ぶこともある。
スは、ある程度のデータ、たとえば512バイトのデー
タをまとめて処理した方が高速な処理ができるため51
2バイトを1セクタとして、セクタ単位で書き込みや読
み出しを行う。現実のハードディスクにおける記憶場所
の指定はシリンダ番号、ヘッド番号、クラスタ番号など
によって行われるが、読み出しや書き込みの処理を統一
化するため、仮想的に、ハードディスクの記憶領域を一
列に並べて先頭からセクタ単位で区切り、番号を振る。
この番号が論理セクタアドレスである。フロッピーディ
スクの場合も同様に論理セクタアドレスを定義すること
ができる。
などにアクセスする場合に論理セクタアドレスを使用す
るが、このような記憶場所の指定方法をATAカードや
SSFDCカードなどのメモリカードでも使用できるよ
うにすると、アプリケーション開発やデータ管理の上で
便利である。このため、このようなメモリカードでは、
論理セクタアドレスを使用した記憶場所の指定ができる
ような制御を行う必要がある。
モリカードを接続した場合においても、ディジタルカメ
ラがメモリカードに対してデータの書き込みや読み出し
を行う場合は、論理セクタアドレスを使用して記憶場所
を指定する。すなわち、ディジタルカメラが上述の「ホ
ストコンピュータ」として動作するのである。
不揮発性メモリ、特にフラッシュEEPROMを備える
ことによって実現されている。フラッシュEEPROM
の記憶領域は、1つまたは複数のブロックに分割され、
各ブロックは1つまたは複数のページに分割され、各ペ
ージはハードディスクなどの書き込みや読み出しの単位
と同じ容量、たとえば512バイトを記憶することが可
能な記憶領域として構成されている。また、各ページ
に、さらに冗長領域として、たとえば16バイトの記憶
領域を追加する形態も広くとられている。前者の場合は
1ページは512バイトであり、後者の場合は1ページ
は528バイトとなるが、いずれも、ホストコンピュー
タによる読み出しや書き込みの単位である512バイト
のデータを記憶できるという点で共通する。
所は、チップ番号、そのチップにおけるブロック番号、
および、そのブロックにおけるページ番号を指定すれば
一義的に決めることができる。そこで仮想的に、フラッ
シュEEPROM内の記憶領域を一列に並べ、先頭から
順にページ単位で番号を振る。この番号を物理ページア
ドレスと呼ぶ。すなわち、物理ページアドレスによって
フラッシュEEPROM内の記憶領域の場所を指定する
ことができる。
域を一列に並べ、先頭から順にブロック単位で番号を振
る。この番号を物理ブロックアドレスと呼ぶ。すなわ
ち、物理ブロックアドレスによってフラッシュEEPR
OM内の記憶領域の場所を指定することもできる。
理ブロックアドレスによる記憶領域の場所の指定をまと
めて、「物理ロケーション」による記憶領域の場所の指
定、と呼ぶ。
が可能な読み出し専用メモリである。すなわち、原則と
して、電気的に消去されたページに対して1度だけデー
タの書き込みができる。したがって、あるページに記憶
にされているデータを変更したい場合には、そのページ
をまず消去し、それから新たなデータを書き込む必要が
ある。さらに、フラッシュEEPROMでは、素子数を
おさえ、処理の高速化を図るため、上記の消去の処理
は、ブロック単位で行われるという点に技術的な特徴が
ある。
は、すでにデータが書き込まれているページに対する上
書き機能を備えたものもある。しかし、このような上書
き機能では、上書きの回数が制限されている場合がほと
んどである。また、上書き機能自体を備えないフラッシ
ュEEPROMも多い。
ピュータから指定される論理セクタアドレスを物理ロケ
ーションに変換して、当該物理ロケーションに配置され
たページに対する書き込みや読み出しを行う。しかし、
上記のような書き込みの制限があるため、論理セクタア
ドレスと物理ページアドレスとの対応は頻繁に変更され
る可能性が高い。
PROMを備えるメモリカードは、フラッシュEEPR
OMのほかにRAMを備えることとし、このRAMに論
理セクタアドレスを物理ロケーションに変換するための
アドレス変換テーブルを記憶し、論理セクタアドレスと
物理ロケーションの対応が更新された場合には、RAM
に記憶されたアドレス変換テーブルを更新する手法がと
られていた。たとえば、論理セクタアドレスをインデッ
クスとし、物理ロケーションを値とする配列によって、
アドレス変換テーブルを実現していた。
タアドレスにデータを複数回書き込むような要求を出し
た場合、古いデータを記憶するページと新しいデータを
記憶するページとがフラッシュEEPROM内に存在す
ることになる。古いデータを記憶するページは適宜消去
する必要があるため、消去されており書き込みはまださ
れていない状態、すでに書き込みがされており書き込ま
れたデータが有効である状態、すでに書き込みがされて
おり書き込まれたデータが無効である状態、などのペー
ジの状態を管理する必要がある。従来は、このような状
態を、各ページの冗長部などに記憶していた。
と、RAMの内容は消去されてしまうため、電源の投入
時に、まずRAM内にアドレス変換テーブルを構築す
る。このため、各ページと論理セクタアドレスとの対応
をフラッシュEEPROMに記憶しておく必要がある。
従来は、この対応関係を各ページの冗長部に記憶するな
どの手法がとられていた。
ROMに対する書き込みはページ単位で行われ、消去は
複数のページを含むブロック単位で行われ、消去には長
時間を要するという技術的特徴があるが、従来の実装で
は、あるページに記憶された内容を更新する際に、当該
ページが含まれるブロック全体をRAM内にコピーして
避難し、当該ブロックを消去し、RAM内にコピーされ
た内容の当該ページに該当する部分を更新し、一部更新
されたRAM内のデータを当該ブロックに書き戻す、な
どの手法がとられていた。
ィジタルカメラなどの外部記憶装置としてメモリカード
を使用する場合には、細粒度で撮影した写真をできるだ
け多数記録したい。また、データの保存や運搬の便を考
えれば、記憶容量は大きければ大きいほどよい。さら
に、今日のようなアプリケーションの巨大化、マルチメ
ディアの普及に伴うデータの巨大化の下では、メモリカ
ードの記憶容量をさらに大きくしたいという要望はきわ
めて大きい。
ードの記憶容量を大きくすると、これに合わせてアドレ
ス変換テーブルも大きくなり、アドレス変換テーブルを
記憶するためのRAMの記憶容量も大きくする必要があ
る。したがって、従来の手法では、コストの上昇や消費
電力の増加につながるという問題を生ずる。
ドの大きさも規定されており、チップを配置できる面積
には制限があるため、RAMの記憶容量にも制限が課せ
られる。したがって、従来の手法では、大容量のメモリ
カードに対応することができないという問題を生ずる。
スと物理ロケーションとの対応関係が各ページに分散し
て配置されているため、RAM内にアドレス変換テーブ
ルを構築するために、多数のページからの読み出し作業
が必要になる。このため、アドレス変換テーブルの構築
に多大な時間を要するようになる。したがって、従来の
手法では、メモリカードをホストコンピュータに接続し
てから、実際にホストコンピュータがデータをメモリカ
ードに書き込んだりメモリカードから読み出したりでき
るようになるまでの時間が長くなってしまうという問題
を生ずる。
であるページを更新する場合にも、当該ブロック全体を
消去する必要があり、ブロックの消去には長時間を要す
るため、メモリカードに対する書き込みに長時間を要す
るという問題を生ずる。また、ブロック内のデータをR
AM内に避難している際に、電源が切れた場合などに、
当該ブロックのデータが失なわれ、復旧することができ
なくなってしまう、という問題を生ずる。
ためになされたもので、論理セクタアドレスの指定によ
るデータの書き込みや読み出しが可能であり、電源を投
入してからデータの書き込みや読み出しができるまでの
準備時間が短い不揮発性記憶装置、当該不揮発性記憶装
置の制御方法、および、当該不揮発性記憶装置を制御す
るプログラムを記録した情報記録媒体を提供することを
課題とする。
ッピーディスクと同様の指定方法によりデータの記憶場
所を指定することができるATA(AT Attachment )カ
ードやSSFDC(Solid State Floppy Disk Card For
um)カードなどのメモリカード、これらのカードの制御
方法、および、これらのカードを制御するプログラムを
記録した情報記録媒体を提供することを課題とする。
M、および、RAMを備え、データの読み出し、およ
び、書き込みの要求の際に指定される論理セクタアドレ
スをフラッシュEEPROM内の物理ページアドレスに
変換するための変換テーブルをフラッシュEEPRO
M、および、RAMに分割して記憶する不揮発性記憶装
置、当該不揮発性記憶装置の制御方法、および、当該不
揮発性記憶装置を制御するプログラムを記録した情報記
録媒体を提供することを課題とする。
Mに記憶されるデータの信頼性を向上させ、データの一
部が壊れている場合であってもこれを訂正できる不揮発
性記憶装置、当該不揮発性記憶装置の制御方法、およ
び、当該不揮発性記憶装置を制御するプログラムを記録
した情報記録媒体を提供することを課題とする。
Mに記憶されたアドレス変換テーブルはページ単位で更
新し、フラッシュEEPROMに記憶されるデータ(ホ
ストコンピュータからの読み出しや書き込みがされるも
ののほか、アドレス変換テーブルのデータを含む)はブ
ロック単位で管理する不揮発性記憶装置、当該不揮発性
記憶装置の制御方法、および、当該不揮発性記憶装置を
制御するプログラムを記録した情報記録媒体に関する。
めの発明は下記の発明である。
する論理セクタアドレスに対するデータの書き込み、ま
たは、論理セクタアドレスからの読み出しの要求を受信
する受信手段と、第1のアドレス変換テーブルを記憶す
る揮発性記憶手段と、第2のアドレス変換テーブル、お
よび、データを記憶する不揮発性記憶手段と、受信手段
によって受信された要求に係る論理セクタアドレスと揮
発性記憶手段によって記憶された第1のアドレス変換テ
ーブルとから、不揮発性記憶手段に記憶される第2のア
ドレス変換テーブルの物理ロケーションを取得する第1
のアドレス取得手段と、第1のアドレス取得手段によっ
て取得された物理ロケーションに基づいて、不揮発性記
憶手段に記憶された第2のアドレス変換テーブルを得
て、受信手段によって受信された要求に係る論理セクタ
アドレスと当該第2のアドレス変換テーブルとから、不
揮発性記憶手段に対するデータの書き込み、または、デ
ータの読み込みを行う物理ロケーションを取得する第2
のアドレス取得手段と、第2のアドレス取得手段によっ
て取得された不揮発性記憶手段の物理ロケーションに対
して受信手段によって受信された要求のデータを書き込
み、または、不揮発性記憶手段から受信手段によって受
信された要求のデータを読み出すデータアクセス手段
と、を備えたことを特徴とする不揮発性記憶装置であ
る。
ピュータが送信する論理セクタアドレスに対するデータ
の書き込み、または、論理セクタアドレスからの読み出
しの要求を受信し、揮発性記憶手段は、第1のアドレス
変換テーブルを記憶し、不揮発性記憶手段は、第2のア
ドレス変換テーブル、および、データを記憶し、第1の
アドレス取得手段は、受信手段によって受信された要求
に係る論理セクタアドレスと揮発性記憶手段によって記
憶された第1のアドレス変換テーブルとから、不揮発性
記憶手段に記憶される第2のアドレス変換テーブルの物
理ロケーションを取得し、第2のアドレス取得手段は、
第1のアドレス取得手段によって取得された物理ロケー
ションに基づいて、不揮発性記憶手段に記憶された第2
のアドレス変換テーブルを得て、受信手段によって受信
された要求に係る論理セクタアドレスと当該第2のアド
レス変換テーブルとから、不揮発性記憶手段に対するデ
ータの書き込み、または、データの読み込みを行う物理
ロケーションを取得し、データアクセス手段は、第2の
アドレス取得手段によって取得された不揮発性記憶手段
の物理ロケーションに対して受信手段によって受信され
た要求のデータを書き込み、または、不揮発性記憶手段
から受信手段によって受信された要求のデータを読み出
す。
の指定によりデータの読み出しや書き込みが可能な不揮
発性記憶装置を提供することができる。
フロッピーディスクと同様の指定方法によりデータの記
憶場所を指定することができるATAカードやSSFD
Cカードなどのメモリカードを提供することができる。
PROM、および、RAMを備え、データの読み出し、
および、書き込みの要求の際に指定される論理セクタア
ドレスをフラッシュEEPROM内の物理ページアドレ
スに変換するための変換テーブルをフラッシュEEPR
OM、および、RAMに分割して記憶する不揮発性記憶
装置を提供することができる。
に、不揮発性記憶手段に記憶された第2のアドレス変換
テーブルから論理セクタアドレスと物理ロケーションの
対応関係を調べて第1のアドレス変換テーブルを構築
し、揮発性記憶手段に 当該第1のアドレス変換テーブ
ルを記憶させるアドレス変換テーブル構築手段と、を備
えたことを特徴とする不揮発性記憶装置である。
に、アドレス変換テーブル構築手段は、不揮発性記憶手
段に記憶された第2のアドレス変換テーブルから論理セ
クタアドレスと物理ロケーションの対応関係を調べて第
1のアドレス変換テーブルを構築し、揮発性記憶手段に
当該第1のアドレス変換テーブルを記憶させる。
データの書き込みや読み出しができるまでの準備時間が
短い不揮発性記憶装置を提供することができる。
に、データアクセス手段が不揮発性記憶手段に受信手段
によって受信された要求のデータを書き込む場合、当該
データのエラー訂正チェックデータを不揮発性記憶手段
に記憶させ、受信手段によって受信された要求のデータ
を読み出す場合、不揮発性記憶手段に記憶された当該デ
ータのエラー訂正チェックデータに基づいて当該読み出
したデータのエラー訂正を行うエラー訂正手段と、を備
えたことを特徴とする記載の不揮発性記憶装置である。
らに、エラー訂正手段は、データアクセス手段が不揮発
性記憶手段に受信手段によって受信された要求のデータ
を書き込む場合、当該データのエラー訂正チェックデー
タを不揮発性記憶手段に記憶させ、受信手段によって受
信された要求のデータを読み出す場合、不揮発性記憶手
段に記憶された当該データのエラー訂正チェックデータ
に基づいて当該読み出したデータのエラー訂正を行う。
OMに記憶されるデータの信頼性を向上させ、データの
一部が壊れている場合であってもこれを訂正できる不揮
発性記憶装置を提供することができる。
に、第2のアドレス取得手段によって取得された物理ロ
ケーションに換えてデータの書き込みができる不揮発性
記憶手段の記憶領域の物理ロケーションを参照するよう
に、不揮発性記憶手段に記憶された第2のアドレス変換
テーブルを更新するアドレス変換テーブル更新手段と、
を備えたことを特徴とする不揮発性記憶装置である。
らに、アドレス変換テーブル更新手段は第2のアドレス
取得手段によって取得された物理ロケーションに換えて
データの書き込みができる不揮発性記憶手段の記憶領域
の物理ロケーションを参照するように、不揮発性記憶手
段に記憶された第2のアドレス変換テーブルを更新す
る。
有する不揮発性記憶手段に対するデータの書き込みは、
原則としてデータが消去された後1回に限られるという
制限がある場合であっても、効率よく不揮発性記憶手段
の管理を行うことができる不揮発性記憶装置を提供する
ことができる。
レス変換テーブル更新手段は、不揮発性記憶手段のペー
ジを単位として第2のアドレス変換テーブルを更新する
ことを特徴とする不揮発性記憶装置である。
の一つを提供することができる。
のアドレス変換テーブルに記憶される不揮発性記憶手段
の物理ロケーションは、複数のページを含むブロックを
単位として指定されることを特徴とする不揮発性記憶装
置である。
の一つを提供することができる。
する論理セクタアドレスに対するデータの書き込み、ま
たは、論理セクタアドレスからの読み出しの要求を受信
する受信ステップと、受信された要求に係る論理セクタ
アドレスと揮発性記憶手段によって記憶された第1のア
ドレス変換テーブルとから、不揮発性記憶手段に記憶さ
れる第2のアドレス変換テーブルの物理ロケーションを
取得する第1のアドレス取得ステップと、第1のアドレ
ス取得ステップによって取得された物理ロケーションに
基づいて、不揮発性記憶手段に記憶された第2のアドレ
ス変換テーブルを得て、受信手段によって受信された要
求に係る論理セクタアドレスと当該第2のアドレス変換
テーブルとから、不揮発性記憶手段に対するデータの書
き込み、または、データの読み込みを行う物理ロケーシ
ョンを取得する第2のアドレス取得ステップと、第2の
アドレス取得ステップによって取得された不揮発性記憶
手段の物理ロケーションに対して受信手段によって受信
された要求のデータを書き込み、または、不揮発性記憶
手段から受信手段によって受信された要求のデータを読
み出すデータアクセスステップと、を備えたことを特徴
とする不揮発性記憶装置の制御方法である。
の指定によりデータの読み出しや書き込みが可能な不揮
発性記憶装置の制御方法を提供することができる。
フロッピーディスクと同様の指定方法によりデータの記
憶場所を指定することができるATAカードやSSFD
Cカードなどのメモリカードの制御方法を提供すること
ができる。
PROM、および、RAMを備え、データの読み出し、
および、書き込みの要求の際に指定される論理セクタア
ドレスをフラッシュEEPROM内の物理ページアドレ
スに変換するための変換テーブルをフラッシュEEPR
OM、および、RAMに分割して記憶する不揮発性記憶
装置の制御方法を提供することができる。
に、不揮発性記憶手段に記憶された第2のアドレス変換
テーブルから論理セクタアドレスと物理ロケーションの
対応関係を調べて第1のアドレス変換テーブルを構築
し、揮発性記憶手段に 当該第1のアドレス変換テーブ
ルを記憶させるアドレス変換テーブル構築ステップと、
を備えたことを特徴とする請求項7に記載の不揮発性記
憶装置の制御方法である。
データの書き込みや読み出しができるまでの準備時間が
短い不揮発性記憶装置の制御方法を提供することができ
る。
に、データアクセスステップが不揮発性記憶手段に受信
された要求のデータを書き込む場合、当該データのエラ
ー訂正チェックデータを不揮発性記憶手段に記憶させ、
受信された要求のデータを読み出す場合、不揮発性記憶
手段に記憶された当該データのエラー訂正チェックデー
タに基づいて当該読み出したデータのエラー訂正を行う
エラー訂正ステップと、を備えたことを特徴とする記載
の不揮発性記憶装置の制御方法である。
OMに記憶されるデータの信頼性を向上させ、データの
一部が壊れている場合であってもこれを訂正できる不揮
発性記憶装置の制御方法を提供することができる。
らに、第2のアドレス取得ステップによって取得された
物理ロケーションに換えてデータの書き込みができる不
揮発性記憶手段の記憶領域の物理ロケーションを参照す
るように、不揮発性記憶手段に記憶された第2のアドレ
ス変換テーブルを更新するアドレス変換テーブル更新ス
テップと、を備えたことを特徴とする不揮発性記憶装置
の制御方法である。
が有する不揮発性記憶手段に対するデータの書き込み
は、原則としてデータが消去された後1回に限られると
いう制限がある場合であっても、効率よく不揮発性記憶
手段の管理を行うことができる不揮発性記憶装置の制御
方法を提供することができる。
アドレス変換テーブル更新ステップは、不揮発性記憶手
段のページを単位として第2のアドレス変換テーブルを
更新することを特徴とする不揮発性記憶装置の制御方法
である。
施形態の一つを提供することができる。
2のアドレス変換テーブルに記憶される不揮発性記憶手
段の物理ロケーションは、複数のページを含むブロック
を単位として指定されることを特徴とする不揮発性記憶
装置の制御方法である。
施形態の一つを提供することができる。
信する論理セクタアドレスに対するデータの書き込み、
または、論理セクタアドレスからの読み出しの要求を受
信する受信ステップと、受信された要求に係る論理セク
タアドレスと揮発性記憶手段によって記憶された第1の
アドレス変換テーブルとから、不揮発性記憶手段に記憶
される第2のアドレス変換テーブルの物理ロケーション
を取得する第1のアドレス取得ステップと、第1のアド
レス取得ステップによって取得された物理ロケーション
に基づいて、不揮発性記憶手段に記憶された第2のアド
レス変換テーブルを得て、受信手段によって受信された
要求に係る論理セクタアドレスと当該第2のアドレス変
換テーブルとから、不揮発性記憶手段に対するデータの
書き込み、または、データの読み込みを行う物理ロケー
ションを取得する第2のアドレス取得ステップと、第2
のアドレス取得ステップによって取得された不揮発性記
憶手段の物理ロケーションに対して受信手段によって受
信された要求のデータを書き込み、または、不揮発性記
憶手段から受信手段によって受信された要求のデータを
読み出すデータアクセスステップと、を備えたことを特
徴とする不揮発性記憶装置を制御するプログラムを記録
した情報記録媒体である。
さらに、不揮発性記憶手段に記憶された第2のアドレス
変換テーブルから論理セクタアドレスと物理ロケーショ
ンの対応関係を調べて第1のアドレス変換テーブルを構
築し、揮発性記憶手段に 当該第1のアドレス変換テー
ブルを記憶させるアドレス変換テーブル構築ステップ
と、を備えたことを特徴とする不揮発性記憶装置を制御
するプログラムを記録した情報記録媒体である。
さらに、データアクセスステップが不揮発性記憶手段に
受信された要求のデータを書き込む場合、当該データの
エラー訂正チェックデータを不揮発性記憶手段に記憶さ
せ、受信された要求のデータを読み出す場合、不揮発性
記憶手段に記憶された当該データのエラー訂正チェック
データに基づいて当該読み出したデータのエラー訂正を
行うエラー訂正ステップと、を備えたことを特徴とする
記載の不揮発性記憶装置を制御するプログラムを記録し
た情報記録媒体である。
取得ステップによって取得された物理ロケーションに換
えてデータの書き込みができる不揮発性記憶手段の記憶
領域の物理ロケーションを参照するように、不揮発性記
憶手段に記憶された第2のアドレス変換テーブルを更新
するアドレス変換テーブル更新ステップと、を備えたこ
とを特徴とする不揮発性記憶装置を制御するプログラム
を記録した情報記録媒体である。
アドレス変換テーブル更新ステップは、不揮発性記憶手
段のページを単位として第2のアドレス変換テーブルを
更新することを特徴とする不揮発性記憶装置を制御する
プログラムを記録した情報記録媒体である。
第2のアドレス変換テーブルに記憶される不揮発性記憶
手段の物理ロケーションは、複数のページを含むブロッ
クを単位として指定されることを特徴とする不揮発性記
憶装置を制御するプログラムを記録した情報記録媒体で
ある。
のプログラムを記録した情報記録媒体により、これをソ
フトウェア商品として不揮発性記憶装置と独立して容易
に配布したり販売したりすることができるようになる。
本願発明の情報記録媒体に記録されたプログラムを不揮
発性記憶装置で実行すれば、上記の発明に係る不揮発性
記憶装置、および、上記の発明に係る不揮発性記憶装置
の制御方法が実現でき、上記の発明と同様の効果を奏す
る。
信する論理セクタアドレスに対するデータの書き込み、
または、論理セクタアドレスからの読み出しの要求を受
信する受信手段と、第1のアドレス変換テーブル、およ
び、第2のアドレス変換テーブルを記憶する揮発性記憶
手段と、第3のアドレス変換テーブル、および、データ
を記憶する不揮発性記憶手段と、受信手段によって受信
された要求に係る論理セクタアドレスと揮発性記憶手段
によって記憶された第1のアドレス変換テーブルとか
ら、揮発性記憶手段に記憶される第2のアドレス変換テ
ーブルの物理ロケーションを取得する第1のアドレス取
得手段と、第1のアドレス取得手段によって取得された
物理ロケーションに基づいて、揮発性記憶手段に記憶さ
れた第2のアドレス変換テーブルを得て、受信手段によ
って受信された要求に係る論理セクタアドレスと当該第
2のアドレス変換テーブルとから、不揮発性記憶手段に
記憶される第3のアドレス変換テーブルの物理ロケーシ
ョンを取得する第2のアドレス取得手段と、第2のアド
レス取得手段によって取得された物理ロケーションに基
づいて、不揮発性記憶手段に記憶された第3のアドレス
変換テーブルを得て、受信手段によって受信された要求
に係る論理セクタアドレスと当該第3のアドレス変換テ
ーブルとから、不揮発性記憶手段に対するデータの書き
込み、または、データの読み込みを行う物理ロケーショ
ンを取得する第3のアドレス取得手段と、第3のアドレ
ス取得手段によって取得された不揮発性記憶手段の物理
ロケーションに対して受信手段によって受信された要求
のデータを書き込み、または、不揮発性記憶手段から受
信手段によって受信された要求のデータを読み出すデー
タアクセス手段と、を備えたことを特徴とする不揮発性
記憶装置である。
ンピュータが送信する論理セクタアドレスに対するデー
タの書き込み、または、論理セクタアドレスからの読み
出しの要求を受信し、揮発性記憶手段は、第1のアドレ
ス変換テーブル、および、第2のアドレス変換テーブル
を記憶し、不揮発性記憶手段は、第3のアドレス変換テ
ーブル、および、データを記憶し、第1のアドレス取得
手段は、受信手段によって受信された要求に係る論理セ
クタアドレスと揮発性記憶手段によって記憶された第1
のアドレス変換テーブルとから、揮発性記憶手段に記憶
される第2のアドレス変換テーブルの物理ロケーション
を取得し、第2のアドレス取得手段は、第1のアドレス
取得手段によって取得された物理ロケーションに基づい
て、揮発性記憶手段に記憶された第2のアドレス変換テ
ーブルを得て、受信手段によって受信された要求に係る
論理セクタアドレスと当該第2のアドレス変換テーブル
とから、不揮発性記憶手段に記憶される第3のアドレス
変換テーブルの物理ロケーションを取得し、第3のアド
レス取得手段は、第2のアドレス取得手段によって取得
された物理ロケーションに基づいて、不揮発性記憶手段
に記憶された第3のアドレス変換テーブルを得て、受信
手段によって受信された要求に係る論理セクタアドレス
と当該第3のアドレス変換テーブルとから、不揮発性記
憶手段に対するデータの書き込み、または、データの読
み込みを行う物理ロケーションを取得し、データアクセ
ス手段は、第3のアドレス取得手段によって取得された
不揮発性記憶手段の物理ロケーションに対して受信手段
によって受信された要求のデータを書き込み、または、
不揮発性記憶手段から受信手段によって受信された要求
のデータを読み出す。
記憶されるアドレス変換テーブルを多段階にすることに
より、不揮発性記憶手段に記憶されるデータの管理をよ
りきめ細かく行うことができる不揮発性記憶装置を提供
することができる。
信する論理セクタアドレスに対するデータの書き込み、
または、論理セクタアドレスからの読み出しの要求を受
信する受信ステップと、受信された要求に係る論理セク
タアドレスと揮発性記憶手段によって記憶された第1の
アドレス変換テーブルとから、揮発性記憶手段に記憶さ
れる第2のアドレス変換テーブルの物理ロケーションを
取得する第1のアドレス取得ステップと、第1のアドレ
ス取得ステップによって取得された物理ロケーションに
基づいて、揮発性記憶手段に記憶された第2のアドレス
変換テーブルを得て、受信された要求に係る論理セクタ
アドレスと当該第2のアドレス変換テーブルとから、不
揮発性記憶手段に記憶される第3のアドレス変換テーブ
ルの物理ロケーションを取得する第2のアドレス取得ス
テップと、第2のアドレス取得ステップによって取得さ
れた物理ロケーションに基づいて、不揮発性記憶手段に
記憶された第3のアドレス変換テーブルを得て、受信さ
れた要求に係る論理セクタアドレスと当該第3のアドレ
ス変換テーブルとから、不揮発性記憶手段に対するデー
タの書き込み、または、データの読み込みを行う物理ロ
ケーションを取得する第3のアドレス取得ステップと、
第3のアドレス取得ステップによって取得された不揮発
性記憶手段の物理ロケーションに対して受信された要求
のデータを書き込み、または、不揮発性記憶手段から受
信手段によって受信された要求のデータを読み出すデー
タアクセスステップと、を備えたことを特徴とする不揮
発性記憶装置の制御方法である。
記憶されるアドレス変換テーブルを多段階にすることに
より、不揮発性記憶手段に記憶されるデータの管理をよ
りきめ細かく行うことができる不揮発性記憶装置の制御
方法を提供することができる。
信する論理セクタアドレスに対するデータの書き込み、
または、論理セクタアドレスからの読み出しの要求を受
信する受信ステップと、受信された要求に係る論理セク
タアドレスと揮発性記憶手段によって記憶された第1の
アドレス変換テーブルとから、揮発性記憶手段に記憶さ
れる第2のアドレス変換テーブルの物理ロケーションを
取得する第1のアドレス取得ステップと、第1のアドレ
ス取得ステップによって取得された物理ロケーションに
基づいて、揮発性記憶手段に記憶された第2のアドレス
変換テーブルを得て、受信された要求に係る論理セクタ
アドレスと当該第2のアドレス変換テーブルとから、不
揮発性記憶手段に記憶される第3のアドレス変換テーブ
ルの物理ロケーションを取得する第2のアドレス取得ス
テップと、第2のアドレス取得ステップによって取得さ
れた物理ロケーションに基づいて、不揮発性記憶手段に
記憶された第3のアドレス変換テーブルを得て、受信さ
れた要求に係る論理セクタアドレスと当該第3のアドレ
ス変換テーブルとから、不揮発性記憶手段に対するデー
タの書き込み、または、データの読み込みを行う物理ロ
ケーションを取得する第3のアドレス取得ステップと、
第3のアドレス取得ステップによって取得された不揮発
性記憶手段の物理ロケーションに対して受信された要求
のデータを書き込み、または、不揮発性記憶手段から受
信手段によって受信された要求のデータを読み出すデー
タアクセスステップと、を備えたことを特徴とする不揮
発性記憶装置を制御するプログラムを記録した情報記録
媒体である。
記録した情報記録媒体により、これをソフトウェア商品
として不揮発性記憶装置と独立して容易に配布したり販
売したりすることができるようになる。本願発明の情報
記録媒体に記録されたプログラムを不揮発性記憶装置で
実行すれば、上記の発明に係る不揮発性記憶装置、およ
び、上記の発明に係る不揮発性記憶装置の制御方法が実
現でき、上記の発明と同様の効果を奏する。
明する。なお、本実施形態は、本願発明の説明のための
ものであり、本願発明の範囲を制限するものではない。
したがって、当業者であれば、各要素をこれと均等なも
のに置換した実施形態を採用することが可能であり、こ
れらの実施形態も本願発明の範囲に含まれる。
(メモリカード)の基本的な構成を示すブロック構成図
である。メモリカード101は、インターフェース10
2、CPU 103、フラッシュEEPROM 10
4、RAM 105を備え、これらはバス106を介し
て接続されている。
ータが送信するデータの書き込みおよび読み出しの要求
を受信し、これらの要求に対する応答をホストコンピュ
ータへ送信する。さらに、ホストコンピュータからイン
ターフェース102を介して電源を供給することも可能
である。また、メモリカード101がATAカードであ
る場合には、インターフェース102は、PCカード
(PCMCIA)標準にしたがった形状および構成とす
る。
へ接続され、電源の供給が開始されると、CPU 10
3はフラッシュEEPROM 104に記憶された第2
アドレス変換テーブルに基づいて、第1アドレス変換テ
ーブルを構築し、RAM 105内にこの第1アドレス
変換テーブルを記憶させる。
の書き込みや読み出しの処理が行われる場合に、RAM
105を用いて転送されるデータをバッファリングし
て、データ転送の高速化を図ることができる。
PROM 104の各ページに実際に書き込まれるデー
タのイメージ、たとえば528バイトのイメージをRA
M105内に作成してから、これをまとめてフラッシュ
EEPROM 104の所望のページに書き込む。この
際に、CPU 103が有するDMA(Direct Memory
Access;直接メモリアクセス)転送装置(図示せず)に
よってバス106を介した高速なデータ転送を実現する
ことができる。
するRAMを別途用意してバス106に接続して、第1
アドレス変換テーブルを記憶するRAM 105とは異
なるチップとすることも可能である。
ジは、主としてホストコンピュータが書き込んだデータ
を記憶するページと、第2アドレス変換テーブルを記憶
するページと、に分類することができる。
M(図示せず)を備える。このプログラムROMにメモ
リカードを制御するプログラムが記録され、電源が投入
されたときにCPU 103はプログラムROMに記録
されたプログラムをロードして、それ以降はこのメモリ
カード制御プログラムを実行し続ける。プログラムRO
MをEEPROMとすれば、別途配布されたメモリカー
ド制御プログラムを新たに記憶させることによって、新
たなメモリカード制御プログラムに更新することができ
る。
ャッシュ、メモリなどのRAM(図示せず)を内部に備
え、一時的な記憶領域として使用することができる。こ
れらの記憶領域に対する読み出しや書き込み作業はバス
106を介する必要がないため、さらに高速な処理が実
行できる。
て、フラッシュEEPROMに記憶されるデータとフラ
ッシュEEPROMに記憶される第2アドレス変換テー
ブルとのいずれもが、ページ単位で管理される実施形態
を説明する。
してホストコンピュータから論理セクタアドレスのデー
タを読み出す旨の要求が来た場合の処理を、図2に示し
たアドレス変換テーブルの説明図、および、図3に示し
たフローチャートを参照して説明する。
105に記憶され、第2アドレス変換テーブル202
はフラッシュEEPROM 104に記憶される。な
お、第2アドレス変換テーブル202の大きさは、1ペ
ージに記憶できる大きさとする。以下、第2アドレス変
換テーブル202が記憶されているページを管理ページ
と呼ぶ。
ドレス変換テーブル202は、アドレス変換を配列で行
う。図2に示すアドレス変換テーブルでは、第1アドレ
ス変換テーブル201の配列のインデックスとして論理
セクタアドレス203の上位側ビット204を、第2ア
ドレス変換テーブル202の配列のインデックスとして
論理セクタアドレス203の下位側ビット205を、そ
れぞれ使用する。
各要素である第2アドレス変換テーブル物理アドレスエ
リア206は、第2アドレス変換テーブル202の物理
ページアドレスを記憶する。
各要素である物理ページアドレスエリア207は、デー
タの読み出しや書き込みの対象となりうるページの物理
ページアドレスを記憶する。以下、データの読み出しや
書き込みの対象となりうるページをデータページと呼
ぶ。
エリア208と代替テーブル物理ページアドレスエリア
209がある。物理ページ状態エリア208は、その管
理ページが有する第2アドレス変換テーブル202の配
列の物理ページアドレスエリア207によって参照され
ているデータページが有効か否かを示す。
09は、その管理ページが無効な場合、すなわち、物理
ページ状態エリア208に記憶された値が、その管理ペ
ージが有する第2アドレス変換テーブル202の配列の
物理ページアドレスエリア207によって参照されてい
るデータページが有効でない旨を示している場合、当該
管理ページのかわりに使用すべき管理ページの物理ペー
ジアドレスを記憶する。
説明する。ホストから送信された論理セクタアドレスs
に記憶されたデータを読み出す旨の要求を受信したら、
本処理を開始する(ステップS301)。
トを計算する。結果の値がiであるとすると、RAM
105に記憶された第1アドレス変換テーブルの配列の
i番目の要素a[i]を取得する(ステップS302)。
この値をxとする。これは第2アドレス変換テーブルが
記憶される管理ページの物理ページアドレスである。
ら物理ページアドレスxに配置された管理ページを参照
し、この管理ページの物理ページ状態エリア208を調
べる(ステップS303)。
果、この管理ページによって管理されているデータペー
ジが有効でない場合(ステップS303;No)は、物
理ページアドレスxとして代替テーブル物理ページアド
レスエリア209に記憶された値を新たに採用して(ス
テップS304)、ステップS303へ戻る。
ータページが有効である場合(ステップS303;Ye
s)は、論理セクタアドレスsの下位側ビットを計算す
る。結果の値がjであるとすると、この管理ページに記
憶された第2アドレス変換テーブルの配列のj番目の要
素b[j]を取得する(ステップS305)。この値をy
とする。これは、読み出しの対象となるデータページの
物理ページアドレスである。
物理ページアドレスがyのデータページに記憶されたデ
ータをRAM 105内のバッファに転送し、さらに要
求に対する応答としてこのデータをインターフェース1
02を介してホストコンピュータへ送信して(ステップ
S306)、本処理を終了する。
ドレス変換テーブルやページの更新は一切行う必要がな
い。
換テーブル201の配列のインデックスとして論理セク
タアドレス203の上位側ビット204を、第2アドレ
ス変換テーブル202の配列のインデックスとして論理
セクタアドレス203の下位側ビット205を、それぞ
れ使用したが、これと逆の対応とした実施形態をとるこ
とも可能である。また、論理セクタアドレスの一部のビ
ットを無視するような実施形態をとることも可能であ
る。
対してホストコンピュータから論理セクタアドレスsに
データを書き込む旨の要求が来た場合の処理を、図4に
示したフローチャートを参照して、説明する。
クタアドレスsにデータを書き込む旨の要求を受信した
ら、本処理を開始する(ステップS401)。
書き込み用データをRAM 105内のバッファに転送
する(ステップS402)。
ステップS303〜ステップS304と同様の処理を行
い、書き込みの対象となるデータページを管理している
管理ページの物理ページアドレスxと、当該データペー
ジの物理ページアドレスyを得る(ステップS40
3)。
物理ページアドレスyに配置されたデータページに対す
る書き込みがすでに行われているか否かを調べる(ステ
ップS404)。
いるか否かの判別は、当該データページの冗長部の特定
の場所、たとえば特定の場所の1バイトである管理デー
タエリアに記憶されている値を利用する。フラッシュE
EPROMでは、消去処理は実行されたが未だ書き込み
が実行されていない場合に記憶された値を読み出そうと
すると、すべてのビットが1であるような(実施形態に
よっては、すべてのビットが0であるような)値が取得
される。
てデータページに対する書き込みを実行する際に、常
に、管理データエリアに255(二進数で111111
11、十六進数で0xFF)以外の値を記憶させること
とすればよい。こうすれば、管理データエリアの値が0
xFFの場合はそのページに対する書き込みは未だ行わ
れていないと判断し、管理データエリアの値が0xFF
以外の場合はそのページに対する書き込みがすでに行わ
れていると判断することができる。
憶されている場合(ステップS404;No)は、その
データページはすでに書き込みが行われていることを意
味する。この場合は、未だ書き込みが行われていないペ
ージを、フラッシュEEPROM 104の中から探す
(ステップS405)。
つからない場合(ステップS405;No)は、不要に
なった古いデータを記憶しているデータページや管理ペ
ージを消去するため、ガーベージコレクション(Garbag
e Collection)処理を行って、不要なページの消去処理
を行い書き込みが行われていないページを取得する(ス
テップS406)。
った場合(ステップS405;Yes)は、新たなペー
ジとして2ページを取得する(ステップS407)。一
方は、新たな管理ページとして使用し、他方は、書き込
み要求がされたデータを書き込むデータページとして使
用する。前者の物理ページアドレスをp、後者の物理ペ
ージアドレスをqとする。これらの値を用いて新たな管
理ページに値を記憶させる。
ジの更新の様子を示す説明図である。図5(a)は、物
理ページアドレスxに配置された管理ページ501の様
子を示す。管理ページ501の第2アドレス変換テーブ
ル502の配列は、物理ページアドレスyを記憶する要
素503を有し、物理ページアドレスyに配置されたデ
ータページ504はすでに書き込みがされているため、
管理データエリア505には0xFF以外の値(図中で
は0x10。これは「書き込み済み」を意味する)が記
憶されている。また、管理ページ501の物理ページ状
態エリア506には「有効」を示す値が記憶されてい
る。
配置された管理ページ501の物理ページ状態エリア5
06には「無効」を示す値が、代替テーブル物理ページ
アドレスエリア507には新たに取得された管理ページ
の物理ページアドレスpが、それぞれ記憶される。物理
ページ状態エリア506、および、代替テーブル物理ペ
ージアドレスエリア507の値の更新には、フラッシュ
EEPROMの上書き機能を使用する。本願発明では、
これらのエリアに対する上書きは、高々1回しか使用さ
れないので、広く普及しているフラッシュEEPROM
の上書き機能の制限を満たすことができる。
ージ511に記憶される第2アドレス変換テーブル51
2の配列の各要素の値は、基本的には、管理ページ50
1に記憶される第2アドレス変換テーブル502の配列
の各要素の同じ値である。ただし、第2アドレス変換テ
ーブル502の配列の要素のうち、yを記憶していた要
素503に相当する要素513の値がqである点が異な
る。また、管理ページ511の物理ページ状態エリア5
06は「有効」を示す値を記憶している。
ページ514には、書き込み要求によりRAM 104
に転送されたデータが書き込まれる。また、このデータ
ページ514の管理データエリア515には、「書き込
み済み」を意味する値0x10が記憶されている。
スyに配置される「古い」データを記憶するデータペー
ジ504の管理データエリア505に記憶される値が、
フラッシュEEPROMの上書き機能によって0x20
に更新されている。これは、前述のガーベージコレクシ
ョン処理(ステップS406)によって将来消去が可能
であるページであることを示す。
(b)に示す状態への更新および設定の処理を実行する
(ステップS408)。
アドレス変換テーブルを更新する。すなわち、物理ペー
ジアドレスxを値として記憶している配列の要素の値を
物理ページアドレスpに更新する(ステップS40
9)。この処理によって、第1アドレス変換テーブル2
01は常に最新の「有効」な管理ページの物理ページア
ドレスを記憶することになる。
は、それぞれ最初に、物理ページ状態エリア208によ
って管理ページのが無効であることが示されている間は
代替ページ物理ページアドレスエリア209をたどるこ
とによって最新の「有効」な管理ページに到達する処理
(ステップS303〜ステップS304、および、ステ
ップS403と同様)を行うので、この処理は任意的で
あり、この時点では行わずにガーベージコレクション処
理において行うこととしてもよい。
たデータページの物理ページアドレスqを使用して(ス
テップS410)ステップS411へ移行する。
されている場合(ステップS404;Yes)は、その
データページは消去された後、未だ書き込みが行われて
いないことを意味する。したがって、当該データページ
に対して書き込みを行うことができる。
ジアドレスyに配置されたデータページに、RAM 1
05内のバッファに記録されたデータを書き込んで(ス
テップS412)、本処理を終了する。
要求が複数セクタに渡る場合がある。この場合、書き込
み要求には、書き込み開始位置を示す論理セクタアドレ
ス、および、書き込みを行うセクタ数が指定される。
る制御に従って1セクタずつ書き込みの処理を行い、ひ
いてはアドレス変換テーブルの更新を行うことも可能で
ある。しかし、この場合は、第2アドレス変換テーブル
用に多数のページを消費し、その多くが直ちに無効な第
2アドレス変換テーブルとなってしまい、使用効率が悪
い。
ーブルの更新は、指定された複数のセクタについてまと
めて行うこととすればよい。
記憶される値に0x10(書き込み済みのページ)およ
び0x20(消去可のページ)を使用しているが、これ
らは0xFF以外の値に適宜変更が可能である。
電源が投入された際の準備処理、すなわち、第1アドレ
ス変換テーブル201の構築処理を図6に示すフローチ
ャートを参照して説明する。
理に用いられるデータもホストコンピュータによって記
憶されるデータもいずれも不揮発性メモリに記憶され
る。したがって、管理ページかデータページかを区別す
るための機構が必要になる。
リンクページは、フラッシュEEPROM 104の固
定された物理ページアドレスに配置された1つまたは複
数のページである。
03の上位側ビット204をインデックスとし、第2ア
ドレス変換テーブルを有する管理ページの物理ページア
ドレスを各要素の値とする配列を記憶する。すなわち、
リンクページに記憶される配列は、RAM 105に記
憶される第1アドレス変換テーブル201と同様の値を
記憶する。
値は、第1アドレス変換テーブル201の配列の要素の
値を更新するのと同時に、フラッシュメモリの上書き機
能を用いて更新することができる。また、上書きの回数
制限によってこれ以上上書きができなくなった場合に
は、当該リンクページが「有効」でなくなった旨と、新
たなリンクページの物理ページアドレスを冗長部に記憶
し、新たなリンクページに第1アドレス変換テーブル2
01と同じ値を記憶させることができる。
の管理データエリア505と同じ場所に記録する。ま
た、新たなリンクページの物理ページアドレスが記憶さ
れる場所を代替リンクページ物理ページアドレスエリア
と呼ぶ。代替リンクページ物理ページアドレスエリア
は、代替テーブル物理ページアドレスエリア209同
様、ページの冗長部でもそうでない部分でも、いずれに
も配置することができる。特に、両者をページ内の同じ
場所に配置することができる。
際に、最初の物理ページアドレスを消去することができ
れば、最新の第1アドレス変換テーブル201を書き込
んでコピーするなどの手法をとることも可能である。
照して、RAM 105に第1アドレス変換テーブル2
01を構築する処理について説明する。電源が投入され
たときに、本処理を開始する(ステップS601)。
mとして0を採用する(ステップS602)。次に、物
理ページアドレスmに配置されたページの冗長部の管理
データエリア505の値を調べる(ステップS60
3)。
理ページアドレスmに配置されたページが「有効」でな
いと判断された場合(ステップS603;No)は、物
理ページアドレスmに配置されたページの代替リンクペ
ージ物理ページアドレスエリアに記憶された物理ページ
アドレスを新たなmとして採用し(ステップS60
4)、ステップS603に戻る。
が「有効」であると判断された場合(ステップS60
3;Yes)は、当該ページをリンクページと判断し、
そのリンクページの配列の各要素について以下の処理を
繰り返す。
べ(ステップS605)、最後の要素に達した場合(ス
テップS605;Yes)は本処理を終了する。
S605;No)は、その要素が記憶する物理ページア
ドレスを取得し、当該物理ページアドレスに配置された
管理ページについてステップS303〜ステップS30
4やステップS403と同様の処理を行って、最新の管
理ページの物理ページアドレスを得て、RAM 105
にその物理ページアドレスを記憶して第1アドレス変換
テーブル203の配列を順次設定し(ステップS60
6)、ステップS605に戻る。
入時に第1アドレス変換テーブル201が構築される
が、本願発明では、アドレス変換テーブルを複数の階層
に分割しているため、RAM 105に構築される第1
アドレス変換テーブル201のサイズは小さくてすむ。
このため、RAM 105の容量をおさえることができ
るとともに、電源投入から実際にメモリカードに対する
読み出しや書き込みができるようになるまでの時間を短
縮することができる。
施形態を、図7に示したアドレス変換テーブルの説明図
を参照して、説明する。
ドレス変換テーブルの配列に物理ページアドレスそのも
のを記憶しているが、図7に示したアドレス変換テーブ
ルは、これ以外の値を記憶した実施形態のものである。
すなわち、物理ページアドレスを16などの2のべき乗
の数値で除算した数値を記憶させる手法である。この数
値を物理ページグループアドレスと呼ぶ。この手法で
は、上述の除算で用いる除数のページ数からなる複数の
ページ(以下、「ページグループ」という)単位で管理
を行う。
タページ702を得る手順は以下のようになる。まず、
論理セクタアドレス701のビット703とRAM 1
05に記憶された第1アドレス変換テーブル704から
第2アドレス変換テーブル705が含まれるページグル
ープ706の物理ページグループアドレスを取得する。
クタアドレス701のビット707とから第2アドレス
変換テーブル705を含む管理ページ708を選択す
る。さらに、この第2アドレス変換テーブル705と論
理セクタアドレスのビット709とから所望のページ7
02が含まれるページグループ711の物理ページグル
ープアドレスを取得する。最後にこのページグループ7
11と論理セクタアドレス701のビット712とか
ら、所望のページ702の物理ページアドレスを取得す
る。
るだけで、構成、作用、効果とも上記の実施例のそれと
共通する。ただし、ページグループの大きさをブロック
の大きさと一致させると、たとえば1ページが512バ
イトの場合に1ページグループを16ページとすると、
フラッシュEEPROMの消去の単位がページグループ
となる。したがって、ガーベージコレクションなどの処
理において、より容易に不要なページを消去して書き込
みが可能な状態にできるようになる。
ため、複数ページに渡るデータの書き込みや読み出しが
頻繁に要求されるような場合には、まとめてデータの書
き込みや読み出しを行うことができるため、処理の高速
化を図ることができる。
ため、データの書き込みが特定のページの集中する度合
が減少し、ページの使用頻度が分散するので、メモリカ
ードの寿命を延ばすことができる。
は、リンクページについても同様に適用することができ
る。
用してメモリカードに記憶されるデータの信頼性を向上
するための手法を説明する。
ection Check)データは、各ページに書き込まれるデー
タに基づいて計算される。ハミング距離などに基づいて
データを復元する手法については、公知の手法を利用す
ることができる。たとえば、各ページの冗長部を除いた
サイズを512バイトの場合に、エラー訂正チェックデ
ータを3バイトとすることができる。このようなエラー
訂正チェックデータの計算方法については、たとえば
「情報と符号の理論」(宮川ほか、岩波書店、1983
年)に開示されているような、公知の手法を用いること
ができる。
求の処理を行う際に、上記ステップS410の前、後、
もしくはこのステップS410において、エラー訂正チ
ェックデータを計算し、これをフラッシュEEPROM
104に記憶する。
き込まれる物理ページアドレスyのページの冗長部に記
憶することができる。この手法では、RAM 105に
物理ページアドレスyのページのデータ部および冗長部
のすべてのイメージを作成してから書き込むことができ
るため、エラー訂正チェックデータをホストコンピュー
タからの要求に基づいてページに書き込まれるデータと
同時に書き込むことができる。
pに配置される管理ページが管理するデータページの数
と同じ配列を当該管理ページに用意して、その配列の各
データページに対応したインデックスの要素を上記エラ
ー訂正チェックデータとして記憶させることができる。
この手法では、管理ページが物理ページアドレスxにあ
る場合には、フラッシュEEPROMの上書き機能を利
用して管理ページに当該エラー訂正チェックデータを書
き込む。一方、管理ページが物理ページアドレスpにあ
る場合には、管理ページのイメージをRAM 105に
作成する際に、当該エラー訂正チェックデータも含めて
イメージを作成すれば、管理ページに対する第2アドレ
ス変換テーブルの書き込みと同時に当該エラー訂正チェ
ックデータを書き込むことができる。
レス変換テーブルなどのデータについても、エラー訂正
チェックデータを計算して、上記データページと同様
に、当該管理ページ内などに記憶することができる。
づいてデータを読み出す際には、上記ステップS304
において、要求されたデータをRAM 105に転送す
るほか、当該データに対応するエラー訂正チェックデー
タも読み出して、RAM 105に転送されたデータと
読み出されたエラー訂正チェックデータとから、エラー
訂正処理を行う。この計算は、上記の通り、公知の手法
を用いることができる。
ーフェース102を介して、エラー訂正処理を行ったR
AM 105上のデータを転送する。
ュEEPROM 104の管理ページおよびデータペー
ジに記憶されるデータの信頼性を向上することができ、
これらのデータが壊れた場合でも、これを訂正できる可
能性を高くすることができる。
換テーブルのほかの実施形態について説明する。
においては、書き込みはページ単位で、消去は複数のペ
ージからなるブロック単位で行われる。これに合わせ
て、第2アドレス変換テーブルを構成する手法について
説明する。
く新たに取得する場合には、新しいブロックを1つ取得
する。1ブロックが16ページの場合には、このブロッ
クを使用して第2アドレス変換テーブルを16回まで更
新することができる。現在どの第2アドレス変換テーブ
ルが有効であるかは、上述の実施例と同様の手法による
ことができる。
る場合には、第2アドレス変換テーブルが参照するペー
ジに対する書き込みが発生した場合である。上述した実
施形態では、各ページが有効であるか否かの情報を当該
ページの冗長部の管理データエリア505に格納してい
る。しかし、この情報を管理ページ側に記憶すると、起
動時にどのデータページが有効かを調べるために、各デ
ータページにアクセスしないですむため、起動時間の高
速化を図ることができる。
変換テーブル802を記憶し、参照するページの物理ペ
ージアドレスを記憶する配列a 803と、参照するペ
ージの状態を記憶する配列b 804を備えている。配
列を参照するインデックスをiとすると、物理ページア
ドレスa[i]に配置されたデータページに対する書き込
みが済んでいるか否かの情報がb[i]に記憶された値に
よって判定できる。
かのデータページに対する更新が起こった場合には、新
たに管理ページを取得して、i番目の要素以外はそのま
ま配列a 803と配列b 804をコピーする。i番
目の要素については、以下のように場合分けすることが
できる。
場合は、新しい管理ページに対してa[i]はそのままコ
ピーし、b[i]として「書き込み済み」を記憶する。
場合は、新しい管理ページに対してa[i]として新たな
データページの物理ページアドレスを記憶し、b[i]と
して「書き込み済み」を記憶する。
変換テーブルはページ単位での参照を行っているが、こ
れをブロック単位での参照とすることも可能である。す
なわち、管理ページと同様に、1ブロックには複数のデ
ータページを配置することができる。そこで、第2アド
レス変換テーブルは、参照するページを含むブロックの
ブロック番号を記憶するようにしてもよい。第2アドレ
ス変換テーブルが記憶するブロック番号のブロック内
で、どのデータページが最新のもので、どのデータペー
ジが現在有効であるか、については、上述の実施例と同
様の手法によることができる。
クに記憶されるデータページが、同一の論理セクタアド
レスに対応するものとすることができる。したがって、
同一の論理セクタアドレスに対する書き込みがたとえば
16回行われると、それぞれの書き込みの際のデータが
1つブロックに書き込まれることになり、さらに1回書
き込みを行えば、新たなブロックの最初のページに書き
込みが行われる。一方、古いブロック(16回書き込み
がされたブロック)に記憶されたデータはすべて不要な
ものなので、このページの内容を消去してほかのデータ
を記憶するために使用することができる。フラッシュE
EPROMでは、消去はブロック単位で行われるため、
この実施形態は記憶領域の管理の上で大変に有利であ
る。これは、管理ページが含まれるブロックにおいても
同様である。
ついて説明する。上述の実施形態では、リンクページに
第1アドレス変換テーブルと同じ値を記憶させている
が、これとは異なる以下の実施態様をとることができ
る。すなわち、管理ページに「次の管理ページの物理ペ
ージアドレス」を記憶する領域を設け、すべての管理ペ
ージをリスト状に連結しておく。リンクページは、この
連結された管理ページのリストの先頭の物理ページアド
レスだけを記憶する。この実施形態では、リンクページ
は、ガーベージコレクションにより管理ページの順序が
変更された場合にのみ更新すればよい。したがって、更
新の回数を大幅に減らすことができる。
ジの物理ページアドレス」を取得したら、リストを順次
たどっていけば、すべての有効な管理ページをたどるこ
とができる。
ジをブロック内に複数配置した場合には、管理ページの
リスト状の連結は、ページ単位ではなくブロック単位で
行った方が記憶容量の面で有利である。この場合は、管
理ページを含むブロック(管理ブロック)に「次の管理
ブロックのブロック番号」を記憶する領域を設ければよ
い。
PROM 104の未使用ページを高速に検索するため
のビットマップテーブルを記憶させることが可能であ
る。CPU 103は、ホストコンピュータからの書き
込み要求を受信した場合にビットマップを使用して未使
用のページを検索する。
長回路(図示せず)、および、スライディングディクシ
ョナリ(sliding dictionary)用RAM(図示せず)を
接続し、フラッシュEEPROM 104の各ページに
記憶されるデータをLZ法などにより圧縮して、より多
くのデータを記憶できるようにし、メモリカード101
の見かけの記憶容量を大きくすることが可能である。ま
た、スライディングディクショナリは、RAM 105
に記憶させることも可能である。
読み出しや書き込みをすべき場所として、論理セクタア
ドレスを直接指定しない実施形態に本願発明を適用する
ことも可能である。この場合は、シリンダ番号、クラス
タ番号、ヘッダ番号などが指定されるので、これから論
理セクタアドレスを計算する読み出しや書き込みの処理
の事前に行えばよい。
を使用する前に管理ページにデータページの物理ページ
アドレスを適宜記憶させる必要がある。この処理、工場
出荷時に設定することもできるし、このためのフォーマ
ット処理を行うプログラムをCPU 102に実行させ
ることも可能である。
て、第2アドレス変換テーブル自体はページ単位で更新
し、第2アドレス変換テーブルは、物理ロケーションと
して物理ブロックアドレスを記憶する実施形態を説明す
る。第2の実施形態では、記憶されたデータ(ホストコ
ンピュータが要求する読み出しや書き込みの対象となる
データのほか、第2アドレス変換テーブル自体のデータ
を含む)管理をブロック単位で行うため、第2の実施形
態に比較して、さらにアクセス速度を向上させることが
できる。
OMの記憶領域の諸元は以下の値を採用することができ
る。
部あり) ・1ブロック=16ページ 一方、ホストコンピュータの書き込みや読み出しの諸元
は、以下の値を採用することができる。
セクタ分のデータを記憶する手法を採用する。すなわ
ち、ホストコンピュータの指定するセクタを16個ずつ
グループにしてまとめる。これをセクタグループと呼
ぶ。
によって指定される複数のセクタを含めることができ
る。この場合、セクタグループ0にはセクタ番号0から
15のセクタが、セクタグループ1にはセクタ番号16
から31のセクタが、…セクタグループ1023にはセ
クタ番号16368から16383のセクタが、それぞ
れ含まれる。このセクタグループとして0から1023
までの1024個を採用した場合、ホストコンピュータ
からは、全体として512×16×1024=8388
608バイト(8メガバイト)の記憶容量の不揮発性記
憶装置として見えることになる。
記憶される第2アドレス変換テーブル内では、セクタグ
ループをさらに128個ずつまとめて管理する。128
個としたのは、これらの管理情報が1ページに入り切る
からである。このセクタグループ128個をまとめて、
セクタグループ群という。上記諸元では、セクタグルー
プ群の数は、1024/128=8個となる。
セクタグループ0から127が、セクタグループ群1に
は、セクタグループ128から255が、…セクタグル
ープ群7には、セクタグループ896から1023が、
それぞれ含まれる。
ーブルが最適化(ガーベージコレクション)されている
場合、第2アドレス変換テーブル全体を1ブロック内に
記憶することができるが、第2アドレス変換テーブルの
大きさは1ブロックを超えてもよい。また、更新ととも
に古くなったセクタグループ群の情報を記憶するページ
が増えるため、第2アドレス変換テーブルの大きさは増
えていき、ある時点における第2アドレス変換テーブル
が複数ブロックにまたがることがありうる。
集めて複数ブロック内に記憶し、当該ブロックのそれぞ
れの中の残りの領域をセクタグループ群管理ページの更
新用の領域として確保することができる。この実施形態
では、更新用領域をすべて使い尽した場合、新たな空き
ブロックを確保して、新たなブロックへのリンク情報
(そのブロックの物理ブロックアドレス、すなわち、ブ
ロック番号)を元の(領域を使い尽した)ブロック内に
記憶する。
更することが可能であり、変更した実施形態も本願発明
の範囲に含まれる。
態のメモリカードにおける記憶管理の概要を説明する。
図9は、第2の実施形態のメモリカードにおける記憶管
理の概要を示す説明図である。
みや読み出しのアクセス要求は、論理セクタ番号を指定
して行われる。この論理セクタ番号をaとする。
AM 105内に記憶された第1アドレス変換テーブル
901を参照する。RAM 105内には、第2アドレ
ス変換テーブル902の物理ページアドレスが配列とし
て記憶されている。この配列をXとする。配列のインデ
ックスとして論理セクタ番号aを直接使用することもで
きる。この場合、X[a]なる計算によって第2アドレス
変換テーブル902の物理ページアドレスが得られる。
タが含まれるセクタグループ群のセクタグループ群番号
を使用すると、配列全体の大きさを小さくすることがで
きるため、RAM 105の記憶容量を小さくすること
ができ、コストの削減を図ることができる。
セクタが含まれるセクタグループ群のセクタグループ群
番号bは、以下の計算により求めることができる。ただ
し、/は整数の割り算、>>は算術右シフトである。
105に記憶される第1アドレス変換テーブル901
の配列Xから物理ページアドレスc=X[b]を得る。
は、フラッシュEEPROM 104内のページであ
り、第2アドレス変換テーブル902の一部をなす。こ
の物理ページアドレスで指定されるページをセクタグル
ープ群管理ページと呼ぶ。
する情報には、以下のものが含まれる。
セクタグループ群の番号 ・セクタグループを管理する配列Y ・当該ページが含まれるブロックの最後に配置されてい
る場合であって、当該ブロック以外のブロックに第2ア
ドレス変換テーブル902が拡張された場合に、当該拡
張された第2アドレス変換テーブル902が含まれるブ
ロックから元のブロックを参照できるように、元のブロ
ックの物理ブロックアドレス(ブロック番号)を記憶す
るリンク情報 セクタグループ群管理ページ903では、128個のセ
クタグループを配列Yとして管理する。配列Yの各要素
が記憶する情報には、以下の情報が含まれる。
ループは、セクタグループ群管理ページc内の配列の要
素Y[d]において管理される。dは以下の計算によって
求められ、%は整数の割り算の余りを求める計算、&は
整数のビットアンドである。
(a&2047)/16 以下では、配列の要素Y[d]に含まれる情報のうち、物
理ブロックアドレスをY[d].blkと表記し、当該ブ
ロックの現在の状態をY[d].statと表記する。
該セクタの情報が記憶されるべきページが含まれるブロ
ックの物理ブロックアドレス(ブロック番号)は、e=
y[d].blkを計算することによって得られる。
ク904には、論理セクタ番号aによって指定されるセ
クタの情報を記憶するページ905が含まれる。ブロッ
ク904には、ページが16個含まれるが、論理セクタ
番号aによって指定されるセクタの情報を記憶するペー
ジ905は、これらのページのうち、f番目のページで
ある。fは以下の計算によって求められる。
ケーションが、物理ブロックアドレス(ブロック番号)
eと、その中でのページ番号fによって得られる。
形態のメモリカードに対するデータの読み出しの手法を
説明する。図10は、第2の実施形態のメモリカードに
対するデータの読み出しの手法を示すフローチャートで
ある。
理セクタアドレスaを指定した読み出し要求を出し、こ
れを受信することによって開始される(ステップS10
01)。
ス変換テーブル901の配列Xから計算c=X[a/2
048]により、第2アドレス変換テーブル902内の
物理ページアドレスcを得る(ステップS1002)。
2アドレス変換テーブル902の配列Yから計算d=
(a%2048)/16により、論理セクタアドレスa
に対応するページが含まれるブロックの情報Y[d]を得
る(ステップS1003)。
atが「使用中」であるか否かを調べる(ステップS1
004)。状態には「使用可」「使用中」などが含まれ
るが、読み出しでは「使用中」となっているはずであ
り、「使用中」となっていない場合(ステップS100
4;No)は、エラー処理を行って(ステップS100
5)、本処理を終了する。エラー処理としては、ホスト
コンピュータへ当該状況を報告する処理や、「使用中」
でないにもかかわらず後述するステップS1006へ進
む処理などが考えられる。
ップS1004;Yes)は、計算e=Y[d].blk
により当該セクタに対応するページが含まれるブロック
の物理ブロックアドレス(ブロック番号)eを得る(ス
テップS1006)。
クe内でのページ番号fを得る(ステップS100
7)。
のページ番号fで指定されるページのデータを読み出し
て、ホストコンピュータへ転送し(ステップS100
8)、本処理を終了する。
プS303とS304の繰り返し処理が行われるが、第
2の実施例の読み出し処理では、このような繰り返し処
理が不要であるためより高速な読み出し処理が実現でき
る。
するために、以下に説明するように、書き込み処理にお
いて工夫をする必要がある。
2の実施形態のメモリカードに対するデータの書き込み
の手法を説明する。図11は、第2の実施形態のメモリ
カードに対するデータの書き込みの手法を示すフローチ
ャートであり、図12は、メモリカードに対するデータ
の書き込みの手法を示す説明図である。
理セクタアドレスaを指定した書き込み要求を出し、こ
れを受信することによって開始される(ステップS11
01)。
ス変換テーブル901の配列Xから計算c=X[a/2
048]により、第2アドレス変換テーブル902内の
物理ページアドレスcを得る(ステップS1102)。
2アドレス変換テーブル902の配列Yから計算d=
(a%2048)/16により、論理セクタアドレスa
に対応するページが含まれるブロックの情報Y[d]を得
る(ステップS1103)。
atが「使用可」であるか否かを調べる(ステップS1
104)。「使用可」である場合(ステップS110
4;Yes)は、書き込みの対象となるセクタaが含ま
れるセクタグループに対する書き込みが初めて行われた
ことを意味する。
該セクタに対応するページが含まれるブロックの物理ブ
ロックアドレス(ブロック番号)eを得る(ステップS
1105)。
クe内でのページ番号fを得る(ステップS110
6)。
のページ番号fで指定されるページにホストコンピュー
タから指定されたデータを書き込むとともに、Y[d].
statを「使用中」に更新して(ステップS110
7)、本処理を終了する。
tが「使用可」でなかった場合(ステップS1104;
No)は、ブロックの状態情報が「使用可」であるよう
な要素を含む配列Yを記憶するセクタグループ群管理ペ
ージを探す(ステップS1108)。当該セクタグルー
プ群管理ページの物理ページアドレスをpとする。以下
の説明では、セクタグループ群管理ページc内の配列
は、c.Yのように表記することにする。
は、「使用可」であるようなブロックを管理する。すな
わち、p.Y[q].statが「使用可」であるような整
数qが存在する。
を探す処理では、第1の実施例におけるビットマップテ
ーブルによる高速検索を行うこともできる。
記憶するブロックの更新領域に空きページが2ページあ
るか否かを調べる(ステップS1109)。この2ペー
ジには、ページcとページpを更新した結果を保存する
ことになる。
るブロックの更新領域に空きページが2ページある場合
(ステップS1109;Yes)は、ステップS111
0に進む。得られた空きページの物理ページアドレスを
mとn=m+1として、以下、説明する。
クタグループ群管理ページの更新処理を行う(ステップ
S1110)。この処理について、図12を参照して説
明する。
実行する前のページc、pに記憶された情報の様子を示
す説明図である。
は、当該セクタaの元のデータが記憶されているブロッ
ク1211を指している。すなわち、ブロック1211
のブロック番号sは、s=c.Y[d].blkである。ま
た、c.Y[d].statは「使用中」である。
は、空きブロック1212を指している。空きブロック
1212のブロック番号tは、t=p.Y[q].blkで
ある。
4は、消去されたままの、何も記憶されていない状態に
なっているので省略する。また、p.Y[q].statは
「使用可」である。
実行する前のページm、nに記憶された情報の様子を示
す説明図である。ページc、pに記憶される情報は、図
12(a)に示すものと同じであるので、省略する。
に記憶される値がtであり、m.Y[d].statに記憶
される値が「使用中」であることを除き、ページc 1
201に記憶される値と同様の値を記憶する。なお、こ
の時点でm.Y[d].statの値を「使用中」にしてい
るため、この後に実行するステップS1107において
Y[d].statの値を更新する必要はない。
blkに記憶される値がsであり、n.Y[q].stat
に記憶される値が「消去可」であることを除き、ページ
p1202に記憶される値と同様の値を記憶する。
と、使用可の空きブロックt 1212との間で、物理
ブロックアドレスの「交換」が行なわれる。
古いブロックs 1211の内容はそのままとするが、
当該古いブロックs 1211のうち、(f=a%1
6)番目のページ以外のページの内容を新しいブロック
t 1212にコピーする。f番目のページに対する書
き込みは以降の処理ステップS1107で行われる。
1212に対する書き込みは、ステップS1110とス
テップS1107において、分割して行われるが、ステ
ップS1110でブロック全体をまとめてコピー実行
し、ステップS1107におけるページ書き込みは実行
しない実施形態をとることもできる。
各ページc、p、m、nに適切なセクタグループ群番号
を記憶する。
第1アドレス変換テーブルの更新を行う。まず、RAM
105内に記憶された第1アドレス変換テーブルの配
列の要素の値X[a/2048]を新たに取得されたペー
ジm 1203のページ番号mに更新する。さらに、配
列の要素の値がpとなっているもの、すなわち、等式X
[i]=pが成立するような要素が一つあるが、この要素
の値を新たに取得されたページn 1204のページ番
号nに更新する。
理ページの更新処理を行ったら、物理ページアドレスc
の新たな値としてmを採用して(ステップS111
1)、ステップS1105へ進む。dとしては、ステッ
プS1103で計算されるものと同じ値(d=(a%2
048)/16)を使用する。なお、上記更新処理ステ
ップS1110において適切な値が記憶されるため、ス
テップS1103からステップS1104におけるY
[d].statのチェックは不要である。
るブロックの更新領域に空きページが2ページない場合
(ステップS1109;No)には、新たな空きブロッ
クを探し、新たなブロックの最後のページに配置された
リンク情報領域に元のブロックの物理ブロックアドレス
(ブロック番号)を記憶し、当該ブロックの最初の2ペ
ージを得られた空きページとし、当該ページの物理ペー
ジアドレスmとn=m+1を取得して(ステップS11
12)、ステップS1110へ進む。
ックの状態情報が「使用可」であるような要素を含む配
列を記憶するセクタグループ群管理ページが一切見つか
らなかった場合は、使用済みブロックを含む管理ページ
を参照し、使用済みブロックを消去することにより、新
たな空きページm、nを取得する。ステップS1110
に進む。
ローチャート内に図示しないが、同じセクタグループ群
管理ページc内において上記のようなブロック番号の交
換処理を行えばよい。この場合、更新領域から取得する
新たなセクタグループ群管理ページは1つでよい。
ージを2ページ分取得する処理は、ページcとページ
m、および、ページqとページn、が、それぞれ同じブ
ロック内、もしくは、そのブロックからリンクされたブ
ロック内に配置されるような形式で行うこともできる。
この場合、必ずしもn=m+1とはならない。このよう
な実施形態は、セクタグループ群管理ページの数が多い
場合であって、1ブロックには入り切らない場合に採用
することができる。
合には、複数のセクタグループ群管理ページをまとめ
て、セクタグループ群管理ページ群とする。セクタグル
ープ群管理ページ群は1ブロック内に記憶されるが、当
該ブロック内に更新用の空き領域が複数ページ存在する
ようにする。
ブロックは、更新用の空き領域がなくなると、適宜リン
クされる。このようなリンクされたブロックをまとめ
て、セクタグループ群管理ブロック群と呼ぶ。
ロック群にリンクされた場合、当該新たなブロックのブ
ロック番号を、フラッシュEEPROM内の固定領域に
確保されたリンクブロックに記憶する。
場合には、セクタグループ群管理ブロック群は1つなの
で、リンクブロックに記憶される最後に取得されたブロ
ックのブロック番号は1つである。この値は、リンクブ
ロックの先頭から順次記憶していく。
多い場合には、セクタグループ群管理ブロック群は複数
なので、リンクブロックに記憶される最後に取得された
ブロックのブロック番号を、ブロック群ごとに、リンク
ブロックの先頭から順次記憶していく。
ブロックの最後のページ内のリンク情報によってリンク
されるが、このリンクは、新たに取得されたブロック
が、古いブロックを参照する形で行われる。したがっ
て、リンクブロック内に最後に取得されたブロックのブ
ロック番号を記憶しておけば、リンク情報をたどること
によって、新しいブロックから古いブロックへ、順次、
必要な管理情報を記憶するセクタグループ群管理ブロッ
クのすべてにアクセスすることができる。
施形態においては、必要なビットマップテーブルの更新
の処理をステップS1107において行う。
ロックの取得においては、ステップS1108からステ
ップS1111で行われるセクタグループ群管理ページ
の更新処理と同様の処理を行うことができる。このよう
に、データを記憶するブロックの管理と、セクタグルー
プ群管理ページを記憶するブロックの管理とが、同じよ
うに行われる。これが本願発明の特徴の一つである。
形態のメモリカードに対する第1アドレス変換テーブル
901の構築の手法を説明する。以下では、セクタグル
ープ群管理ブロック群が1つの場合について説明する
が、複数の場合には、以下の説明で示す手法を各群につ
いて繰り返せばよい。
れた際に開始される(ステップS1301)。
域に確保されたリンクブロックから、セクタグループ群
管理ブロックとして最後に確保されたブロックのブロッ
ク番号を取得する(ステップS1302)。
るブロック内のセクタグループ群管理ページのすべてに
ついて処理を行ったか調べ(ステップS1303)、行
っていない場合(ステップS1303;No)は以下の
処理を行い、処理すべきセクタグループ群管理ページが
ない場合には、ステップS1307へ進む。
るセクタグループ群番号を取得し、RAM内の第1アド
レス変換テーブル901の配列のうち当該セクタグルー
プ群番号をインデックスとする領域に、すでに物理ペー
ジアドレスが記憶されているか調べる(ステップS13
04)。すでに物理ページアドレスが記憶されている場
合(ステップS1304;Yes)には、当該セクタグ
ループ群管理ページは古い情報を記憶しているため、処
理の対象を次のセクタグループ群管理ページに移行して
(ステップS1305)、ステップS1303に戻る。
ていない場合(ステップS1304;No)には、当該
セクタグループ群管理ページに最新の情報が記憶されて
いるため、RAM内の第1アドレス変換テーブル901
の配列のうち当該セクタグループ群番号をインデックス
とする領域に、当該セクタグループ群管理ページの物理
ページアドレスを記憶し(ステップS1306)、ステ
ップS1305に進む。
ない場合(ステップS1303;No)は、現在処理し
ているセクタグループ群管理ブロックが管理するセクタ
グループについて、RAM内の第1アドレス変換テーブ
ル901の配列に、必要なセクタグループ群管理ページ
の物理ページアドレスがすべて記憶されたか調べる(ス
テップS1307)。
307;Yes)は、本処理を終了する。
がある場合には、現在処理しているブロックのリンク情
報を参照し、現在処理しているブロックよりも一段階古
いブロックを処理対象に変更して(ステップS130
8)ステップS1303に戻る。
1の実施形態と同様にエラーチェック処理を行うことが
可能である。
記憶されるアドレス変換テーブルを多段階、たとえば2
段階にする実施形態も考えられる。すなわち、まず、R
AMに記憶される第1アドレス変換テーブルと論理セク
タアドレスの一部とからRAMに記憶される第2アドレ
ス変換テーブルの物理ロケーションを得る。次に、当該
RAMに記憶される第2アドレス変換テーブルと論理セ
クタアドレスの一部とからフラッシュEEPROMに記
憶される第3アドレス変換テーブルの物理ロケーション
を得る。さらに、当該フラッシュEEPROMに記憶さ
れる第3アドレス変換テーブルと論理セクタアドレスの
一部とからアクセスしたいデータを記憶するフラッシュ
EEPROM内の物理ロケーションを得る。最後に、当
該フラッシュEEPROM内の物理ロケーションに対し
てアクセスを実行する、という実施形態である。
AM内に記憶されるアドレス変換テーブルの段階が増え
ている点が異なるが、それ以外は前述の実施形態と同様
である。また、RAM内に記憶されるアドレス変換テー
ブルを多段階にする点についても、前述の実施形態と同
様に、情報を木構造で記憶する手法をとることができ
る。
りデータの読み出しや書き込みが可能な不揮発性記憶装
置、および、その制御方法を提供することができる。
スクと同様の指定方法によりデータの記憶場所を指定す
ることができるATAカードやSSFDCカードなどの
メモリカード、および、その制御方法を提供することが
できる。
び、RAMを備え、データの読み出し、および、書き込
みの要求の際に指定される論理セクタアドレスをフラッ
シュEEPROM内の物理ページアドレスに変換するた
めの変換テーブルをフラッシュEEPROM、および、
RAMに分割して記憶する不揮発性記憶装置、および、
その制御方法を提供することができる。
込みや読み出しができるまでの準備時間が短い不揮発性
記憶装置、および、その制御方法を提供することができ
る。
性記憶手段に対するデータの書き込みは、原則としてデ
ータが消去された後1回に限られるという制限がある場
合であっても、効率よく不揮発性記憶手段の管理を行う
ことができる不揮発性記憶装置、および、その制御方法
を提供することができる。
れるデータの信頼性を向上させ、データの一部が壊れて
いる場合であってもこれを訂正できる不揮発性記憶装
置、および、その制御方法を提供することができる。
を更新することにより、より高速なアクセスが可能な不
揮発性記憶装置、および、その制御方法を提供すること
ができる。
を記録した情報記録媒体により、これをソフトウェア商
品として不揮発性記憶装置と独立して容易に配布したり
販売したりすることができるようになる。本願発明の情
報記録媒体に記録されたプログラムを不揮発性記憶装置
で実行すれば、上記の発明に係る不揮発性記憶装置、お
よび、上記の発明に係る不揮発性記憶装置の制御方法が
実現でき、同様に、上記効果を奏する。
の基本構成を示すブロック構成図である。
例を示す説明図である。
ータを読み出す旨の要求を受信した場合の処理を示すフ
ローチャートである。
ータを書き込む旨の要求を受信した場合の処理を示すフ
ローチャートである。
理ページおよびデータページの関係を更新する場合の各
ページの関係を示す説明図である。
際にRAMに第1アドレス変換テーブルを構築する処理
を示すフローチャートである。
形態の例を示す説明図である。
形態の例を示す説明図である。
理の概要を示す説明図である。
タの読み出しの手法を示すフローチャートである。
タの書き込みの手法を示すフローチャートである。
法を示す説明図である。
アドレス変換テーブルの構築の手法を示す説明図であ
る。
ア 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のアドレス変換テーブルを記憶する揮発性記憶手段
と、 第2のアドレス変換テーブル、および、データを記憶す
る不揮発性記憶手段と、 前記受信手段によって受信された要求に係る論理セクタ
アドレスと前記揮発性記憶手段によって記憶された第1
のアドレス変換テーブルとから、前記不揮発性記憶手段
に記憶される第2のアドレス変換テーブルの物理ロケー
ションを取得する第1のアドレス取得手段と、 前記第1のアドレス取得手段によって取得された物理ロ
ケーションに基づいて、前記不揮発性記憶手段に記憶さ
れた第2のアドレス変換テーブルを得て、前記受信手段
によって受信された要求に係る論理セクタアドレスと当
該第2のアドレス変換テーブルとから、前記不揮発性記
憶手段に対するデータの書き込み、または、データの読
み込みを行う物理ロケーションを取得する第2のアドレ
ス取得手段と、 前記第2のアドレス取得手段によって取得された前記不
揮発性記憶手段の物理ロケーションに対して前記受信手
段によって受信された要求のデータを書き込み、また
は、前記不揮発性記憶手段から前記受信手段によって受
信された要求のデータを読み出すデータアクセス手段
と、を備えたことを特徴とする不揮発性記憶装置。 - 【請求項2】 さらに、前記不揮発性記憶手段に記憶さ
れた第2のアドレス変換テーブルから論理セクタアドレ
スと物理ロケーションの対応関係を調べて第1のアドレ
ス変換テーブルを構築し、前記揮発性記憶手段に 当該
第1のアドレス変換テーブルを記憶させるアドレス変換
テーブル構築手段と、 を備えたことを特徴とする請求項1に記載の不揮発性記
憶装置。 - 【請求項3】 さらに、前記データアクセス手段が前記
不揮発性記憶手段に前記受信手段によって受信された要
求のデータを書き込む場合、当該データのエラー訂正チ
ェックデータを前記不揮発性記憶手段に記憶させ、 前記受信手段によって受信された要求のデータを読み出
す場合、前記不揮発性記憶手段に記憶された当該データ
のエラー訂正チェックデータに基づいて当該読み出した
データのエラー訂正を行うエラー訂正手段と、 を備えたことを特徴とする請求項1に記載の不揮発性記
憶装置。 - 【請求項4】 さらに、前記第2のアドレス取得手段に
よって取得された物理ロケーションに換えてデータの書
き込みができる前記不揮発性記憶手段の記憶領域の物理
ロケーションを参照するように、前記不揮発性記憶手段
に記憶された第2のアドレス変換テーブルを更新するア
ドレス変換テーブル更新手段と、を備えたことを特徴と
する請求項1に記載の不揮発性記憶装置。 - 【請求項5】 前記アドレス変換テーブル更新手段は、
不揮発性記憶手段のページを単位として第2のアドレス
変換テーブルを更新することを特徴とする請求項4に記
載の不揮発性記憶装置。 - 【請求項6】 前記第2のアドレス変換テーブルに記憶
される不揮発性記憶手段の物理ロケーションは、複数の
ページを含むブロックを単位として指定されることを特
徴とする請求項1に記載の不揮発性記憶装置。 - 【請求項7】 ホストコンピュータが送信する論理セク
タアドレスに対するデータの書き込み、または、論理セ
クタアドレスからの読み出しの要求を受信する受信ステ
ップと、 前記受信された要求に係る論理セクタアドレスと揮発性
記憶手段によって記憶された第1のアドレス変換テーブ
ルとから、不揮発性記憶手段に記憶される第2のアドレ
ス変換テーブルの物理ロケーションを取得する第1のア
ドレス取得ステップと、 前記第1のアドレス取得ステップによって取得された物
理ロケーションに基づいて、前記不揮発性記憶手段に記
憶された第2のアドレス変換テーブルを得て、前記受信
手段によって受信された要求に係る論理セクタアドレス
と当該第2のアドレス変換テーブルとから、前記不揮発
性記憶手段に対するデータの書き込み、または、データ
の読み込みを行う物理ロケーションを取得する第2のア
ドレス取得ステップと、 前記第2のアドレス取得ステップによって取得された前
記不揮発性記憶手段の物理ロケーションに対して前記受
信手段によって受信された要求のデータを書き込み、ま
たは、前記不揮発性記憶手段から前記受信手段によって
受信された要求のデータを読み出すデータアクセスステ
ップと、を備えたことを特徴とする不揮発性記憶装置の
制御方法。 - 【請求項8】 さらに、前記不揮発性記憶手段に記憶さ
れた第2のアドレス変換テーブルから論理セクタアドレ
スと物理ロケーションの対応関係を調べて第1のアドレ
ス変換テーブルを構築し、前記揮発性記憶手段に 当該
第1のアドレス変換テーブルを記憶させるアドレス変換
テーブル構築ステップと、を備えたことを特徴とする請
求項7に記載の不揮発性記憶装置の制御方法。 - 【請求項9】 さらに、前記データアクセスステップが
前記不揮発性記憶手段に前記受信された要求のデータを
書き込む場合、当該データのエラー訂正チェックデータ
を前記不揮発性記憶手段に記憶させ、前記受信された要
求のデータを読み出す場合、前記不揮発性記憶手段に記
憶された当該データのエラー訂正チェックデータに基づ
いて当該読み出したデータのエラー訂正を行うエラー訂
正ステップと、 を備えたことを特徴とする請求項7に記載の不揮発性記
憶装置の制御方法。 - 【請求項10】 さらに、前記第2のアドレス取得ステ
ップによって取得された物理ロケーションに換えてデー
タの書き込みができる前記不揮発性記憶手段の記憶領域
の物理ロケーションを参照するように、前記不揮発性記
憶手段に記憶された第2のアドレス変換テーブルを更新
するアドレス変換テーブル更新ステップと、を備えたこ
とを特徴とする請求項7に記載の不揮発性記憶装置の制
御方法。 - 【請求項11】 前記アドレス変換テーブル更新ステッ
プは、不揮発性記憶手段のページを単位として第2のア
ドレス変換テーブルを更新することを特徴とする請求項
10に記載の不揮発性記憶装置の制御方法。 - 【請求項12】 前記第2のアドレス変換テーブルに記
憶される不揮発性記憶手段の物理ロケーションは、複数
のページを含むブロックを単位として指定されることを
特徴とする請求項7に記載の不揮発性記憶装置の制御方
法。 - 【請求項13】 ホストコンピュータが送信する論理セ
クタアドレスに対するデータの書き込み、または、論理
セクタアドレスからの読み出しの要求を受信する受信ス
テップと、 前記受信された要求に係る論理セクタアドレスと揮発性
記憶手段によって記憶された第1のアドレス変換テーブ
ルとから、不揮発性記憶手段に記憶される第2のアドレ
ス変換テーブルの物理ロケーションを取得する第1のア
ドレス取得ステップと、 前記第1のアドレス取得ステップによって取得された物
理ロケーションに基づいて、前記不揮発性記憶手段に記
憶された第2のアドレス変換テーブルを得て、前記受信
手段によって受信された要求に係る論理セクタアドレス
と当該第2のアドレス変換テーブルとから、前記不揮発
性記憶手段に対するデータの書き込み、または、データ
の読み込みを行う物理ロケーションを取得する第2のア
ドレス取得ステップと、 前記第2のアドレス取得ステップによって取得された前
記不揮発性記憶手段の物理ロケーションに対して前記受
信手段によって受信された要求のデータを書き込み、ま
たは、前記不揮発性記憶手段から前記受信手段によって
受信された要求のデータを読み出すデータアクセスステ
ップと、を備えたことを特徴とする不揮発性記憶装置を
制御するプログラムを記録した情報記録媒体。 - 【請求項14】 さらに、前記不揮発性記憶手段に記憶
された第2のアドレス変換テーブルから論理セクタアド
レスと物理ロケーションの対応関係を調べて第1のアド
レス変換テーブルを構築し、前記揮発性記憶手段に 当
該第1のアドレス変換テーブルを記憶させるアドレス変
換テーブル構築ステップと、を備えたことを特徴とする
請求項13に記載の不揮発性記憶装置を制御するプログ
ラムを記録した情報記録媒体。 - 【請求項15】 さらに、前記データアクセスステップ
が前記不揮発性記憶手段に前記受信された要求のデータ
を書き込む場合、当該データのエラー訂正チェックデー
タを前記不揮発性記憶手段に記憶させ、 前記受信された要求のデータを読み出す場合、前記不揮
発性記憶手段に記憶された当該データのエラー訂正チェ
ックデータに基づいて当該読み出したデータのエラー訂
正を行うエラー訂正ステップと、 を備えたことを特徴とする請求項13に記載の不揮発性
記憶装置を制御するプログラムを記録した情報記録媒
体。 - 【請求項16】 さらに、前記第2のアドレス取得ステ
ップによって取得された物理ロケーションに換えてデー
タの書き込みができる前記不揮発性記憶手段の記憶領域
の物理ロケーションを参照するように、前記不揮発性記
憶手段に記憶された第2のアドレス変換テーブルを更新
するアドレス変換テーブル更新ステップと、を備えたこ
とを特徴とする請求項13に記載の不揮発性記憶装置を
制御するプログラムを記録した情報記録媒体。 - 【請求項17】 前記アドレス変換テーブル更新ステッ
プは、不揮発性記憶手段のページを単位として第2のア
ドレス変換テーブルを更新することを特徴とする請求項
16に記載の不揮発性記憶装置を制御するプログラムを
記録した情報記録媒体。 - 【請求項18】 前記第2のアドレス変換テーブルに記
憶される不揮発性記憶手段の物理ロケーションは、複数
のページを含むブロックを単位として指定されることを
特徴とする請求項13に記載の不揮発性記憶装置を制御
するプログラムを記録した情報記録媒体。 - 【請求項19】 ホストコンピュータが送信する論理セ
クタアドレスに対するデータの書き込み、または、論理
セクタアドレスからの読み出しの要求を受信する受信手
段と、 第1のアドレス変換テーブル、および、第2のアドレス
変換テーブルを記憶する揮発性記憶手段と、 第3のアドレス変換テーブル、および、データを記憶す
る不揮発性記憶手段と、 前記受信手段によって受信された要求に係る論理セクタ
アドレスと前記揮発性記憶手段によって記憶された第1
のアドレス変換テーブルとから、前記揮発性記憶手段に
記憶される第2のアドレス変換テーブルの物理ロケーシ
ョンを取得する第1のアドレス取得手段と、 前記第1のアドレス取得手段によって取得された物理ロ
ケーションに基づいて、前記揮発性記憶手段に記憶され
た第2のアドレス変換テーブルを得て、前記受信手段に
よって受信された要求に係る論理セクタアドレスと当該
第2のアドレス変換テーブルとから、前記不揮発性記憶
手段に記憶される第3のアドレス変換テーブルの物理ロ
ケーションを取得する第2のアドレス取得手段と、 前記第2のアドレス取得手段によって取得された物理ロ
ケーションに基づいて、前記不揮発性記憶手段に記憶さ
れた第3のアドレス変換テーブルを得て、前記受信手段
によって受信された要求に係る論理セクタアドレスと当
該第3のアドレス変換テーブルとから、前記不揮発性記
憶手段に対するデータの書き込み、または、データの読
み込みを行う物理ロケーションを取得する第3のアドレ
ス取得手段と、 前記第3のアドレス取得手段によって取得された前記不
揮発性記憶手段の物理ロケーションに対して前記受信手
段によって受信された要求のデータを書き込み、また
は、前記不揮発性記憶手段から前記受信手段によって受
信された要求のデータを読み出すデータアクセス手段
と、を備えたことを特徴とする不揮発性記憶装置。 - 【請求項20】 ホストコンピュータが送信する論理セ
クタアドレスに対するデータの書き込み、または、論理
セクタアドレスからの読み出しの要求を受信する受信ス
テップと、 前記受信された要求に係る論理セクタアドレスと揮発性
記憶手段によって記憶された第1のアドレス変換テーブ
ルとから、揮発性記憶手段に記憶される第2のアドレス
変換テーブルの物理ロケーションを取得する第1のアド
レス取得ステップと、 前記第1のアドレス取得ステップによって取得された物
理ロケーションに基づいて、前記揮発性記憶手段に記憶
された第2のアドレス変換テーブルを得て、前記受信さ
れた要求に係る論理セクタアドレスと当該第2のアドレ
ス変換テーブルとから、不揮発性記憶手段に記憶される
第3のアドレス変換テーブルの物理ロケーションを取得
する第2のアドレス取得ステップと、 前記第2のアドレス取得ステップによって取得された物
理ロケーションに基づいて、前記不揮発性記憶手段に記
憶された第3のアドレス変換テーブルを得て、前記受信
された要求に係る論理セクタアドレスと当該第3のアド
レス変換テーブルとから、前記不揮発性記憶手段に対す
るデータの書き込み、または、データの読み込みを行う
物理ロケーションを取得する第3のアドレス取得ステッ
プと、 前記第3のアドレス取得ステップによって取得された前
記不揮発性記憶手段の物理ロケーションに対して前記受
信された要求のデータを書き込み、または、前記不揮発
性記憶手段から前記受信手段によって受信された要求の
データを読み出すデータアクセスステップと、を備えた
ことを特徴とする不揮発性記憶装置の制御方法。 - 【請求項21】 ホストコンピュータが送信する論理セ
クタアドレスに対するデータの書き込み、または、論理
セクタアドレスからの読み出しの要求を受信する受信ス
テップと、 前記受信された要求に係る論理セクタアドレスと揮発性
記憶手段によって記憶された第1のアドレス変換テーブ
ルとから、揮発性記憶手段に記憶される第2のアドレス
変換テーブルの物理ロケーションを取得する第1のアド
レス取得ステップと、 前記第1のアドレス取得ステップによって取得された物
理ロケーションに基づいて、前記揮発性記憶手段に記憶
された第2のアドレス変換テーブルを得て、前記受信さ
れた要求に係る論理セクタアドレスと当該第2のアドレ
ス変換テーブルとから、不揮発性記憶手段に記憶される
第3のアドレス変換テーブルの物理ロケーションを取得
する第2のアドレス取得ステップと、 前記第2のアドレス取得ステップによって取得された物
理ロケーションに基づいて、前記不揮発性記憶手段に記
憶された第3のアドレス変換テーブルを得て、前記受信
された要求に係る論理セクタアドレスと当該第3のアド
レス変換テーブルとから、前記不揮発性記憶手段に対す
るデータの書き込み、または、データの読み込みを行う
物理ロケーションを取得する第3のアドレス取得ステッ
プと、 前記第3のアドレス取得ステップによって取得された前
記不揮発性記憶手段の物理ロケーションに対して前記受
信された要求のデータを書き込み、または、前記不揮発
性記憶手段から前記受信手段によって受信された要求の
データを読み出すデータアクセスステップと、を備えた
ことを特徴とする不揮発性記憶装置を制御するプログラ
ムを記録した情報記録媒体。
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)
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)
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)
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)
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 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 半導体メモリ装置及びその制御方法 |
-
1998
- 1998-08-28 JP JP24383098A patent/JPH11203191A/ja not_active Withdrawn
- 1998-11-12 KR KR10-1998-0048317A patent/KR100468880B1/ko not_active IP Right Cessation
- 1998-11-12 US US09/191,437 patent/US6282624B1/en not_active Expired - Lifetime
Patent Citations (4)
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)
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 |