説明

半導体補助記憶装置

【課題】フラッシュメモリを記憶媒体として使用した半導体補助記憶装置の起動時間を短縮する。
【解決手段】フラッシュメモリ15の読み書きの基本単位であるページの管理データとして、対応する論理ページ(チャンク)番号とユーザデータの論理ページ(チャンク)の更新番号に加えて、そのユーザデータが新しいか古いかを示す更新フラグを設け、ユーザデータを書き換えたときには、旧ユーザデータに対応する更新フラグをセットしておく。半導体補助記憶装置10に対する電源投入等の起動処理において、物理ページ(チャンク)を順次読み出してRAM13bによるアドレステーブルを作成するときに、更新フラグがセットされている物理ページ(チャンク)を無視する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フラッシュメモリを記憶媒体として使用したUSBメモリやコンパクトフラッシュ(登録商標)等の半導体補助記憶装置、特にその起動時間の短縮に関するものである。
【背景技術】
【0002】
近年の半導体メモリの大容量化及び低コスト化に伴い、フラッシュメモリを使用したUSBメモリやコンパクトフラッシュ(登録商標)等の半導体補助記憶装置が広く使用されるようになった。フラッシュメモリは、浮遊ゲートを有する絶縁ゲート型電界効果トランジスタを記憶素子とするEEPROM(電気的に書き替え可能な不揮発性メモリ)の一種で、ページと呼ばれる最小単位(通常、512バイト)のユーザデータを読み書きすると共に、連続する複数ページ(例えば、32ページ)を1ブロックとしてデータの消去を行うように構成されている。なお、音声データのWAVファイル等に特化する場合には、連続する複数ページをチャンク(chunk:ひとかたまり)という単位で扱うこともある。
【0003】
フラッシュメモリにおけるデータの書き込みは、データ“0”を書き込むべき記憶素子の制御ゲートに書き込み用の高電圧を印加することにより、該当する記憶素子の浮遊ゲートに電荷を蓄積させることで行われる。なお、データ“1”を書き込むべき記憶素子の制御ゲートには書き込み用の高電圧は印加しない。一方、データの消去は、該当するブロックの記憶素子の各制御ゲートに書き込み用とは逆極性の消去用の高電圧を印加することで、ブロック全体の記憶素子の浮遊ゲートに蓄積された電荷を放出することによって行われる。これにより、消去されたブロックのデータはすべて“1”となる。
【0004】
フラッシュメモリでは、ブロック単位でデータの消去が行われるので、書き換えが1ページだけであっても、そのページを含むブロック全体を消去する必要がある。また、記憶素子の構造上、消去可能な回数が10万〜100万回に制約されている。このため、特定のブロックに書き替えが集中することのないように、全ブロックを満遍なく使用するための構成や制御方法が提案されている。
【0005】
例えば、磁気ディスク装置では、所定の領域にFAT(File Allocation Table)と呼ばれるディスク管理テーブルを設け、ディスク内の各クラスタの使用状況を常時把握できるようにしているが、ディスク管理テーブルは書き換えの頻度が大きいので、フラッシュメモリ内にこのような管理テーブルを設けることはできない。このため、ユーザデータを記録するためのフラッシュメモリとは別に、管理テーブル用のRAM(Random Access Memory)を設けたフラッシュディスク装置が下記特許文献1に記載されている。但し、RAMは電源が遮断されるとその記憶内容が喪失するため、起動時にはフラッシュメモリに保存されたデータに基づいて管理テーブルを生成する必要がある。
【0006】
図2は、下記特許文献1に実施例2として記載された従来のフラッシュディスク装置の構成図である。
【0007】
フラッシュディスク装置は、従来の磁気ディスク装置と同様に、大量のデータを保存するための補助記憶装置であり、図2(a)に示すように、ホストマシン1と周辺機器接続用のバス2を介して接続されるもので、ホストインタフェース部(I/F部)3、バッファメモリ4、マイクロプロセッサ5、メモリ制御部6、フラッシュメモリ7、内部バス8及びメモリバス9で構成されている。
【0008】
ホストインタフェース部3は、バス2のプロトコルに従ってホストマシン1との間のデータ転送を制御するものである。バッファメモリ4は、ホストマシン1との間で読み書きするデータを一時的に保存するメモリである。
【0009】
マイクロプロセッサ5は、ホストマシン1から与えられる論理アドレスと実際のフラッシュメモリ7に割り当てられた物理アドレスとの対応付けを行うと共に、メモリ制御部6に対して、該当する物理アドレスに対する書き込み、読み出し、消去等の指示を行うものである。マイクロプロセッサ5は、処理の手順を示すプログラムが格納されたROM(Read Only Memory)5aと、論理アドレスと物理アドレスの対応付けを行うアドレステーブルを格納するためのRAM5bを有している。
【0010】
メモリ制御部6は、マイクロプロセッサ5の指示に従って、フラッシュメモリ7に対する書き込み、読み出し、消去の処理を行うものである。これらのホストインタフェース部3、バッファメモリ4、マイクロプロセッサ5及びメモリ制御部6は、内部バス8を介して相互に接続され、メモリ制御部6とフラッシュメモリ7の間は、メモリバス9を介して接続されている。
【0011】
フラッシュメモリ7は、大量のデータを保存するための補助記憶部で、必要とする記憶容量に応じて複数個が並列に接続できるようになっている。フラッシュメモリ7は、連続する複数ページ(例えば、2ページまたは4ページ)を1つにまとめたチャンク単位でデータの書き込みと読み出しを行うと共に、連続する複数のチャンクで構成されるブロック単位で消去動作が行われるように構成されている。
【0012】
図2(b)は、マイクロプロセッサ5内のRAM5bに設けられたアドレステーブルの構成図である。アドレステーブルは、論理チャンク番号1〜Nの順番に構成され、各論理チャンクに対応する実際の物理チャンク番号を記録するようになっている。
【0013】
図2(c)は、フラッシュメモリ7上の1ページの構成図である。1ページは、512バイトのユーザデータと、16バイトの管理データで構成されている。管理データは、ユーザデータに対する誤り訂正符号、このページに対応する論理チャンク番号、及びこの論理チャンク番号に対応する更新番号を有している。誤り訂正符号は、ユーザデータだけでなく論理チャンク番号と更新番号を含めたデータに対して付加される場合もある。
【0014】
図3は、図2のフラッシュディスク装置の起動時の動作を示すフローチャートである。
フラッシュディスク装置では、起動時にマイクロプロセッサ5の制御によって次のような処理が行われる。
【0015】
起動処理が開始されると、ステップS1において読み出すべき物理チャンク番号Iを0に設定すると共に、RAM5b中のアドレステーブル内の情報を消去し、ステップS2へ進む。ステップS2において、物理チャンク番号Iが最後の物理チャンク番号Mを越えたか否かを判定する。IがM以下のときはステップS3へ進み、IがMを越えたときには起動処理を終了する。
【0016】
ステップS3では、フラッシュメモリ7における物理チャンク番号Iの記憶内容を読み出し、その先頭ページの管理データから論理チャンク番号と更新番号を抽出する。
【0017】
ステップS4において、ステップS3で抽出した管理データ中の論理チャンク番号に対応するアドレステーブルを調べ、既に物理チャンク番号が登録されているか否かを調べる。そして、登録済みで且つその更新番号がステップS3で抽出した更新番号よりも大きいときはステップS6へ進み、そうでない場合はステップS5へ進む。即ち、ステップS3で抽出した管理データ中の論理チャンク番号に対応するアドレステーブルが未登録の場合と、登録されていても、登録されている物理チャンクの内容が古い(更新番号が小さい)場合に、ステップS5の処理が行われる。
【0018】
ステップS5では、ステップS3で抽出した管理データでアドレステーブルの該当する論理チャンク番号のデータ(物理チャンク番号)を書き換える。ステップS5の後、ステップS6へ進む。ステップS6では、読み出すべき物理チャンク番号Iに1を加算し、ステップS2へ戻る。
【0019】
以上の起動処理により、フラッシュメモリ7内のすべての物理チャンクが順次読み出され、各物理チャンクの最初のページの管理データが抽出され、抽出された管理データに基づいてRAM5b内のアドレステーブルが生成される。その後のフラッシュメモリ7に対する読み書き及び消去の制御は、このアドレステーブルを使用して行われる。
【0020】
【特許文献1】特開2005−242897号公報
【発明の開示】
【発明が解決しようとする課題】
【0021】
しかしながら、前記フラッシュディスク装置では、ユーザデータの更新に伴って同一論理チャンク番号のデータが多くなってくると、起動処理において比較のための読み出し処理が多くなり、起動時間が遅くなってしまうという問題点があった。本発明は、フラッシュメモリを記憶媒体として使用した半導体補助記憶装置の起動時間を短縮することを目的としている。
【課題を解決するための手段】
【0022】
本発明は、物理アドレスが付されたデータ格納用の複数のページで構成されるブロックを複数有し、該ページ単位でのデータの書き込みと読み出しが可能で、該ブロック単位でデータの消去が行われるフラッシュメモリと、主制御装置から指定される論理アドレスを前記物理アドレスに変換するためのアドレステーブルを有し、該主制御装置から与えられるユーザデータを前記フラッシュメモリに書き込むと共に、該フラッシュメモリから読み出したユーザデータを該主制御装置に出力する制御手段とを備えた半導体補助記憶装置において、前記フラッシュメモリの各ページは、ユーザデータを格納するユーザデータ領域と、対応する論理アドレス、該論理アドレスに対する該ユーザデータの更新回数及び最新のユーザデータであるか否かを示す更新フラグを含む管理データを格納する管理データ領域とを有し、前記制御手段は、通常処理時において、前記フラッシュメモリに格納されている旧ユーザデータを前記主制御装置から与えられる新ユーザデータで書き換えるときに、前記アドレステーブルを参照及び更新して該新ユーザデータを未使用のページに書き込むと共に該旧ユーザデータが格納されているページの更新フラグをセットし、起動処理時においては、前記フラッシュメモリの各ページの管理データ領域を順次読み出し、前記更新フラブがセットされていないページの管理データに基づいて前記アドレステーブルを生成するように構成したことを特徴としている。
【発明の効果】
【0023】
本発明では、フラッシュメモリの読み書きの基本単位であるページの管理データとして、対応する論理アドレスとユーザデータの更新番号に加えて、そのユーザデータが最新のものであるか否かを示す更新フラグを設け、ユーザデータを書き換えたときには、旧ユーザデータの更新フラグをセットするようにしている。更に、半導体補助記憶装置に対する電源投入等の起動処理で、フラッシュメモリの各ページを順次読み出してアドレステーブルを作成するときに、更新フラグがセットされているページを無視し、更新フラグがセットされていないページの管理データに基づいてアドレステーブルを作成するようにしている。これにより、フラッシュメモリを記憶媒体として使用した半導体補助記憶装置において、アドレステーブルの作成にかかる起動時間を短縮することができるという効果がある。
【発明を実施するための最良の形態】
【0024】
この発明の前記並びにその他の目的と新規な特徴は、次の好ましい実施例の説明を添付図面と照らし合わせて読むと、より完全に明らかになるであろう。但し、図面は、もっぱら解説のためのものであって、この発明の範囲を限定するものではない。
【実施例1】
【0025】
図1は、本発明の実施例を示す半導体補助記憶装置の構成図である。
この半導体補助記憶装置10は、従来の磁気ディスク装置等と同様に、大量のデータを保存するための補助記憶装置であり、図1(a)に示すように、主制御装置であるホストマシン1との間でUSB(Universal serial Bus),IDE(Integrated Drive Electronics),SATA(Serial Advanced Technology Attachment)等の周辺機器接続用のバス2を介して接続されるようになっている。
【0026】
半導体補助記憶装置10は、ホストインタフェース部(I/F部)11、バッファメモリ12、制御手段であるマイクロプロセッサ13、メモリ制御部14、フラッシュメモリ15、内部バス16及びメモリバス17で構成されている。
【0027】
ホストインタフェース部11は、バス2の所定のプロトコルに従ってホストマシン1との間のデータ転送を制御するものであり、バッファメモリ12は、ホストマシン1との間で読み書きするデータを一時的に保存するメモリである。
【0028】
マイクロプロセッサ13は、処理の手順を示すプログラムが格納されたROM13aと、論理アドレスと物理アドレスの対応付けを行うアドレステーブルを格納するRAM13bを有している。マイクロプロセッサ13は、電源投入等の起動時に、ROM13aに格納された初期設定プログラムに従って、フラッシュメモリ15を順次読み出してRAM13bのアドレステーブルを生成する。
【0029】
その後、マイクロプロセッサ13は、ROM13aの通常処理プログラムに従って、このアドレステーブルを使用して、ホストマシン1から与えられる論理アドレスと実際のフラッシュメモリ15に割り当てられた物理アドレスとの対応付けを行うと共に、メモリ制御部14に対して、該当する物理アドレスに対する書き込み、読み出し、消去等の指示を行うようになっている。
【0030】
例えば、フラッシュメモリ15に格納されているユーザデータを、ホストマシン1から与えられるユーザデータで書き換える場合、アドレステーブルを参照して未使用の物理アドレスを探し、その未使用のページに新しいユーザデータを書き込むと共に、古いユーザデータが格納されているページの管理データの更新フラグをセットし、更に、アドレステーブルの内容を更新するようになっている。
【0031】
メモリ制御部14は、マイクロプロセッサ13からの指示に従って、フラッシュメモリ15に対する書き込み、読み出し、消去の処理を行うものである。ホストインタフェース部11、バッファメモリ12、マイクロプロセッサ13及びメモリ制御部14は、内部バス16を介して相互に接続され、メモリ制御部14とフラッシュメモリ15の間は、メモリバス17を介して接続されている。
【0032】
フラッシュメモリ15は、大量のデータを保存するための補助記憶部で、必要とする記憶容量に応じて複数個が並列に接続できるようになっている。フラッシュメモリ15は、連続する複数ページ(例えば、2ページまたは4ページ)を1つにまとめたチャンク単位でデータの書き込みと読み出しを行うと共に、連続する複数のチャンクで構成されるブロック単位で消去動作が行われるように構成されている。
【0033】
図1(b)は、マイクロプロセッサ13内のRAM13bに設けられたアドレステーブルの構成図である。アドレステーブルは、論理チャンク番号1〜Nの順番に構成され、各論理チャンクに対応する実際の物理チャンク番号が記録されるようになっている。
【0034】
図1(c)は、フラッシュメモリ15上の1ページの構成図である。1ページは、512バイトのユーザデータと、16バイトの管理データで構成されている。管理データは、ユーザデータに対する誤り訂正符号、このページに対応する論理チャンク番号、この論理チャンク番号に対応する更新番号及び更新フラグを有している。誤り訂正符号は、ユーザデータだけでなく論理チャンク番号と更新番号を含めたデータに対して付加される場合もある。なお、同一論理チャンクに属する2ページ以降の管理データには、論理チャンク番号、更新番号及び更新フラグは含まれない。
【0035】
図4は、図1の半導体補助記憶装置の起動時の動作を示すフローチャートである。
この半導体補助記憶装置では、起動時にマイクロプロセッサ13により、ROM13aに格納された初期設定プログラムに従って次のような処理が行われる。
【0036】
起動処理が開始されると、ステップS11において、読み出すべき物理チャンク番号Iを0に設定すると共に、RAM13b中のアドレステーブル内の情報を消去し、ステップS12へ進む。ステップS12において、物理チャンク番号Iが最後の物理チャンク番号Mを越えたか否かを判定する。IがM以下のときはステップS13へ進み、IがMを越えたときには起動処理を終了する。
【0037】
ステップS13では、フラッシュメモリ17における物理チャンク番号Iの記憶内容を読み出し、その先頭ページの管理データから論理チャンク番号、更新番号及び更新フラグを抽出する。
【0038】
ステップS14において、ステップS13で抽出した更新フラグが設定されている(データ“0”)か否かを判定し、設定されていればステップS17へ進み、設定されていなければ(データ“1”であれば)ステップS15へ進む。
【0039】
ステップS15において、ステップS13で抽出した管理データ中の論理チャンク番号に対応するアドレステーブルを調べ、既に物理チャンク番号が登録されているか否かを調べる。そして、登録済みで且つその更新番号がステップS13で抽出した更新番号よりも大きいときはステップS17へ進み、そうでない場合はステップS16へ進む。即ち、ステップS13で抽出した管理データ中の論理チャンク番号に対応するアドレステーブルが未登録の場合と、登録されていても、その登録されている物理チャンクの内容が古い(更新番号が小さい)場合に、ステップS16の処理が行われる。
【0040】
ステップS16では、ステップS13で抽出した管理データで、アドレステーブルの該当する論理チャンク番号のデータ(物理チャンク番号)を書き換える。ステップS16の後、ステップS17へ進む。ステップS17では、読み出すべき物理チャンク番号Iに1を加算し、ステップS12へ戻る。
【0041】
以上の起動処理により、フラッシュメモリ15内のすべての物理チャンクが順次読み出され、各物理チャンクの最初のページの管理データが抽出され、抽出された管理データに基づいてRAM13b内のアドレステーブルが生成される。
【0042】
その後の通常処理では、フラッシュメモリ15に対する読み書き及び消去の制御は、このアドレステーブルを使用して行われる。
【0043】
例えば、ホストマシン1から指定された論理チャンクにユーザデータを書き込む場合、アドレステーブルを参照して指定された論理チャンクが使用されているか否かを調べる。その論理チャンクが使用されていなければ、新規のユーザデータを書き込むことになる。この場合、未使用の物理チャンクを探し、その物理チャンクにユーザデータと共に、物理チャンク番号と更新番号(この場合は、0)の管理データを書き込む。このとき、更新フラグは書き込まない。即ち、更新フラグのデータは消去状態と同じ“1”となっている。更に、アドレステーブルの指定された論理チャンク番号に、対応する物理チャンク番号と更新番号を登録する。
【0044】
指定された論理チャンクが既に使用されていれば、フラッシュメモリ15に格納されているユーザデータを、与えられたユーザデータで書き換えることになる。この場合、アドレステーブルを参照して未使用の物理チャンクを探し、その未使用の物理チャンクに新しいユーザデータを書き込む。一方、古いユーザデータが格納されている物理チャンクの最初のページに更新フラグを書き込む。即ち、古いユーザデータが格納されている物理チャンクの更新フラグには、データ“0”が書き込まれる。更に、アドレステーブルの内容(該当する物理チャンクに対応する新しい物理チャンク番号)を更新する。
【0045】
以上のように、本実施例の半導体補助記憶装置は、フラッシュメモリ上のユーザデータを更新するときに、古くなったページの管理データに更新フラグを書き込んでおき、起動処理時に更新フラグがセットされているページを、アドレステーブルの生成の対象から除外するようにしている。これにより、アドレステーブル生成にかかる起動時間を短縮することができるという利点がある。
【0046】
なお、本発明は、上記実施例に限定されず、種々の変形が可能である。この変形例としては、例えば、次のようなものがある。
(a) フラッシュメモリへの読み書きをチャンク単位に行っているが、ページ単位に行うようにしても良い。その場合、各ページに更新フラグ等の管理データを設ける必要がある。
(b) 管理データ中の更新番号は、なくても良い。
(c) 読み出しや消去の動作については特に説明していないが、従来通りの処理を行うことができる。
【図面の簡単な説明】
【0047】
【図1】本発明の実施例を示す半導体補助記憶装置の構成図である。
【図2】従来のフラッシュディスク装置の構成図である。
【図3】図2のフラッシュディスク装置の起動時の動作を示すフローチャートである。
【図4】図1の半導体補助記憶装置の起動時の動作を示すフローチャートである。
【符号の説明】
【0048】
1 ホストマシン
2 バス
10 半導体補助記憶装置
11 ホストインタフェース部
12 バッファメモリ
13 マイクロプロセッサ
14 フラッシュメモリ制御部
15 フラッシュメモリ
16 内部バス
17 メモリバス

【特許請求の範囲】
【請求項1】
物理アドレスが付されたデータ格納用の複数のページで構成されるブロックを複数有し、該ページ単位でのデータの書き込みと読み出しが可能で、該ブロック単位でデータの消去が行われるフラッシュメモリと、主制御装置から指定される論理アドレスを前記物理アドレスに変換するためのアドレステーブルを有し、該主制御装置から与えられるユーザデータを前記フラッシュメモリに書き込むと共に、該フラッシュメモリから読み出したユーザデータを該主制御装置に出力する制御手段とを備えた半導体補助記憶装置において、
前記フラッシュメモリの各ページは、ユーザデータを格納するユーザデータ領域と、対応する論理アドレス、該論理アドレスに対する該ユーザデータの更新回数及び最新のユーザデータであるか否かを示す更新フラグを含む管理データを格納する管理データ領域とを有し、
前記制御手段は、通常処理時において、前記フラッシュメモリに格納されている旧ユーザデータを前記主制御装置から与えられる新ユーザデータで書き換えるときに、前記アドレステーブルを参照及び更新して該新ユーザデータを未使用のページに書き込むと共に該旧ユーザデータが格納されているページの更新フラグをセットし、起動処理時においては、前記フラッシュメモリの各ページの管理データ領域を順次読み出し、前記更新フラブがセットされていないページの管理データに基づいて前記アドレステーブルを生成するように構成したことを特徴とする半導体補助記憶装置。
【請求項2】
前記制御手段は、前記フラッシュメモリの連続する複数のページ単位に前記ユーザデータの読み書きを行うことを特徴とする請求項1記載の半導体補助記憶装置。
【請求項3】
前記更新フラグは、対応する前記ブロックの消去によってリセットされ、消去状態に対して相補的な論理値を書き込むことによってセットされることを特徴とする請求項1または2記載の半導体補助記憶装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2009−276883(P2009−276883A)
【公開日】平成21年11月26日(2009.11.26)
【国際特許分類】
【出願番号】特願2008−125676(P2008−125676)
【出願日】平成20年5月13日(2008.5.13)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】