(57)【特許請求の範囲】
【請求項１】
回転する記録媒体に書き込みヘッドでデータを書き込む記憶ユニットと、
不揮発性半導体メモリと、
複数の書き込み命令を一時記憶する一時記憶メモリと、
該複数の書き込み命令を実行し、該記憶ユニットと該不揮発性半導体メモリにデータを書き込む制御部とを有し、
該制御部は、該一時記憶メモリ中の複数の書き込み命令を該記憶ユニットに対して実行する時の、該書き込みヘッドの書き込み終了位置、並びに該書き込みヘッドの移動および該書き込み命令により指示されたデータの書き込みに要する時間に基づいて算出された待ち時間の順に順序付け、該待ち時間の短い順に該書き込み命令を順次該記憶ユニットに対して実行し、それと同時に並行して該待ち時間の長い順に該書き込み命令を順次該不揮発性半導体メモリに対して実行し、該複数の書き込み命令により書き込みを指示された全てのデータが、該記憶ユニットか該不揮発性半導体メモリのいずれかに格納されるようにしたことを特徴とする記憶装置。
【請求項２】
該制御部は、該不揮発性半導体メモリの領域毎のデータ書き込み回数を監視し、書き込み命令実行時に書き込みを指定された領域の書き込み回数が所定の制限回数を超えているときは、該領域への書き込みを実行せずに該順序の次の降順の書き込み命令実行に移行できるようにしたことを特徴とする請求項１に記載の記憶装置。
【請求項３】
該制御部は、該不揮発性半導体メモリの領域毎のデータ書き込み回数を監視し、書き込み命令実行時に書き込みを指定された領域の書き込み回数が所定の制限回数を超えているときは、該領域への書き込みを実行すると共に該順序の次の降順の書き込み命令実行に移行できるようにしたことを特徴とする請求項１に記載の記憶装置。
【請求項４】
該記憶ユニットに対して該順序の上り順に実行される該複数の書き込み命令のうち、該不揮発性半導体メモリに対して実行済みの書き込み命令がある場合には該書き込み命令の次の書き込み命令から実行することを特徴とする請求項１に記載の記憶装置。
【請求項５】
該不揮発性半導体メモリは該不揮発性半導体メモリに書き込まれたデータに対応する論理アドレスと、該データを記憶した該不揮発性半導体メモリの物理アドレスとをメモリアドレス変換テーブルとして記憶することを特徴とする請求項１に記載の記憶装置。
【請求項６】
該メモリアドレス変換テーブルはさらに該不揮発性半導体メモリに記憶したデータと同一のデータを該記憶ユニットに記憶したことを示すフラグデータを有することを特徴とする請求項５に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる種類の記憶ユニットを有する記憶装置およびその記憶方法に関するものである。
【背景技術】
【０００２】
回転する記憶媒体に書き込みヘッドでデータを書き込む形態の記憶装置が、不揮発性の大容量記憶装置として多様な用途で利用されている。この種装置として典型的なものは磁気ディスク装置であり、また光ディスク装置、光磁気ディスク装置などもこの範疇に入る。これら記憶装置は、シリアルなデータ書き込み速度はかなり高速でも、指定された領域に書き込みヘッドを機械的に移動させるための待ち時間が大きく、ランダムアクセス速度は遅い。特に、書き込み命令を実行する直前の書き込みヘッドの位置によって、書き込み開始までのアクセス時間が大幅に遅延する問題がある。
【０００３】
フラッシュメモリのような不揮発性半導体メモリは、回転式の記憶装置と比較して、ランダムアクセス速度が速く、領域（アドレス）によるアクセス時間のばらつきが少ない利点がある。不揮発性半導体メモリは、近年大容量化が進み、回転式の記憶装置の一部応用分野で代替されるまでになっている。他方、不揮発性半導体メモリは、同一の記憶領域に繰り返し書き込みを行える回数に制約があり、例えば１０万回といった書き込み数を超えると、記憶セルの記憶保持特性が劣化する弱点がある。この弱点を補えるよう、回転式の記憶装置（ユニット）を併用することが以下の特許文献において試みられている。
【特許文献１】特開２００７−１１５２３２号公報
【特許文献２】特開平０７−８４８８０号公報
【特許文献３】特開平１０−１５４１０１号公報
【特許文献４】特開２００３−１６７７８１号公報  不揮発性半導体メモリと回転式の記憶媒体を併用する記憶装置では、両者を同時に並列的に動作させることで、動作高速化の効果も追求できる。１つの書き込み命令で書き込みを指示されるデータ量が大きいときは、不揮発性半導体メモリのシリアルな書き込み速度は、相対的にはそれほど高速ではないから、相当の待ち時間を生じる。この間に回転式の記憶ユニットに別の書き込み命令データを並列して書き込み（格納）できれば、実効的な書き込み時間の短縮にもなり、また不揮発性半導体メモリへの書き込み回数を節減できる利点もある。しかしながら、複数の書き込み命令の実行順序をどのように順序付ければ、記憶装置全体として実効的に最速の書き込みを実行できるかという観点でのスケジューリングを最適化する手法は見いだされていなかった。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、不揮発性半導体メモリと回転式の記憶ユニットを併用した記憶装置において、複数の書き込み命令があったときに、書き込みデータを不揮発性半導体メモリと記憶ユニットとのいずれかに並行して書き込みができるように、複数の書き込み命令の実行順序を適切に決定して、記憶装置としての書き込み実行時間を短縮することにある。
【課題を解決するための手段】
【０００５】
上記の課題を解決するため、記憶装置は、回転する記録媒体に書き込みヘッドでデータを書き込む記憶ユニットと、不揮発性半導体メモリと、複数の書き込み命令を一時記憶する一時記憶メモリと、該複数の書き込み命令を実行し、該記憶ユニットと該不揮発性半導体メモリにデータを書き込む制御部とを有し、該制御部は、該一時記憶メモリ中の複数の書き込み命令を該記憶ユニットに対して実行する時の、該書き込みヘッドの書き込み終了位置、並びに該書き込みヘッドの移動および該書き込み命令により指示されたデータの書き込みに要する時間に基づいて算出された待ち時間の順に順序付け、該待ち時間の短い順に該書き込み命令を順次該記憶ユニットに対して実行し、それと同時に並行して該待ち時間の長い順に該書き込み命令を順次該不揮発性半導体メモリに対して実行し、該複数の書き込み命令により書き込みを指示された全てのデータが、該記憶ユニットか該不揮発性半導体メモリのいずれかに格納されるようにしたことを特徴とする。 
【発明の効果】
【０００６】
本発明によれば、記憶装置への書き込み時間を短縮することができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施の形態について説明する。
［装置全体構成］
図１は記憶装置９０の全体構成図である。記憶装置９０は不揮発性半導体メモリ１００、一時記憶メモリ１０２、メモリコントローラ１０４、制御部１０６、ＡＤ変換部１１０、磁気ヘッド１１２、および記憶媒体１１４を有する。磁気ヘッド１１２は記憶媒体１１４の所定の位置にデータを書き込む書き込みヘッド、および所定の位置からデータを読み込む読み込みヘッドとして機能する。回転する記録媒体１１４に書き込みヘッドでデータを書き込むユニットを記憶ユニットとする。
【０００８】
記憶媒体１１４は上位装置１２０から送信されたデータを記憶する。通常記憶媒体１１４は複数のディスクを有しており、磁気ヘッド１１２はそれぞれのディスクごとに存在する。ディスクを同心円状の領域に分割したものをトラックといい、トラックを放射状に等分したものをセクタという。また、同じ大きさのトラックがディスクの数だけ同筒状に集まったものをシリンダという。
【０００９】
制御部１０６はメモリコントローラ１０４、ＡＤ変換部１１０等を制御する演算装置である。制御部１０６はＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算器により実現することができる。また、制御部１０６は不揮発性半導体メモリ１００への書き込み命令の実行回数をカウントするためのカウンタ１０８を有する。
【００１０】
不揮発性半導体メモリ１００は記憶領域のひとつであり、フラッシュメモリなど記憶装置の電源供給を止めても記憶したデータを保持するメモリ装置である。不揮発性半導体メモリ１００は上位装置１２０から送信されたデータを記憶する記憶メモリとして機能する。
【００１１】
一時記憶メモリ１０２は記憶装置外部からの書き込みデータや読み出し命令、記憶装置外部への読み出しデータを一時的に記憶するメモリとして機能する。一時記憶メモリ１０２に保持された情報は、記憶装置への電源供給が止まると消滅する。
【００１２】
メモリコントローラ１０４は不揮発性半導体メモリ１００へのデータの書き込みまたは不揮発性半導体メモリ１００からのデータの読み出し等を行う。
【００１３】
ＡＤ変換部１１０は一時記憶メモリ１０２に保持したデータのディジタル信号を記憶媒体１１４に記憶可能なアナログ信号に変換する。
【００１４】
上位装置１２０は記憶装置９０に対してデータの書き込み命令や読み込み命令を行うホストシステムである。上位装置１２０は記憶装置９０の外部に存在する。
【００１５】
一時記憶メモリ１０２は上位装置１２０から送信されたデータの書き込み命令群を一時的に記憶する。書き込み命令群は一時記憶メモリ１０２に存在する未実行の複数のデータ書き込み命令である。制御部１０６は、一時記憶メモリ１０２に保持された書き込み命令群を再配列する。ここで待ち時間とは、記憶媒体１１４に対し１つの書き込み命令を実行した後に、次の書き込み命令を実行するまでに必要なヘッドの移動時間をいう。また再配列とは、記憶媒体１１４への書き込みに適合するように、例えば待ち時間の短い順に書き込み命令の実行順序を決定することをいう。また、１つの書き込み命令に対する書き込みデータ量が多い場合、待ち時間はヘッドの移動時間にデータの書き込み時間を足したものとしても良い。これにより、データの書き込み時間を考慮した書き込み命令の再配列が可能となる。
【００１６】
制御部１０６は再配列した書き込み命令群について、昇順すなわち待ち時間の短い順に記憶媒体１１４への書き込み命令を実行する。同時に制御部１０６は再配列した書き込み命令群のうち、まだ実行していない他の書き込み命令を不揮発性半導体メモリ１００に対して実行する。例えば制御部１０６は降順すなわち待ち時間の長い順に他の書き込み命令を不揮発半導体メモリ１００に対して実行してもよい。
【００１７】
これにより、記憶媒体１１４の待ち時間による書き込み時間の損失を小さく抑えることができ、記憶装置全体の書き込み効率を向上させることができる。
【００１８】
また制御部１０６は不揮発性半導体メモリ１００の特定の領域ごとへの書き込み回数をカウントしている。ここで特定の領域は例えばフラッシュメモリの場合ブロックであり、フラッシュメモリはブロック単位で書き込み動作すなわち消去動作が行われる。
【００１９】
制御部１０６は不揮発性半導体メモリ１００の特定の領域への書き込み回数が設定値以上になった場合、記憶媒体１１４へ書き込み命令を実行すると共に、当該書き込み命令を不揮発性半導体メモリ１００に対しても実行する。これにより、不揮発性半導体メモリ１００へ書き込んだデータと同一データが記憶媒体１１４に存在することとなり、データの信頼性を向上させることができる。
【００２０】
また制御部１０６は不揮発性半導体メモリ１００の特定の領域への書き込み回数が設定値以上になった場合、記憶媒体１１４へ書き込み命令を実行せずに、当該書き込み命令を不揮発性半導体メモリ１００に対して実行する。これにより制御部１０６は不要な書き込み命令の実行数を減らすことが出来、記憶装置へのデータの書き込み処理速度を高速化することが出来る。
【００２１】
一方、上位装置１２０から読み出し命令群を受信した場合、読み出し命令群は一時記憶メモリ１０２に一時的に保持される。読み出し命令群は、記憶装置９０に対して送信され一時記憶メモリ１０２に保持された未実行の複数の読み出し命令である。制御部１０６は、一時記憶メモリ１０２に保持された読み出し命令群を、不揮発性半導体メモリ１００への読み出し命令と記憶媒体１１４への読み出し命令とが交互にならぶように再配列する。
【００２２】
制御部１０６は不揮発性半導体メモリ１００への読み出し命令をまず実行し、データを上位装置１２０へ送信する。これと同時に制御部１０６は記憶媒体１１４への読み出し命令を実行し、データを一時記憶メモリ１０２に送信する。これにより、記憶媒体１１４の回転待ち時間等により発生した読み出し時間の損失を不揮発性半導体メモリ１００からのデータ読み出しにより補填することができる。さらに、次の不揮発性半導体メモリ１００への読み出し命令が実行されている間に、一時記憶メモリ１０２に保持されているデータを上位装置１２０へ送信することができ、データの読み出し効率を向上させることができる。
［データ群の書き込み］
図２は書き込み命令の論理アドレスと記憶媒体１１４の物理アドレスとの関係をあらわすディスクアドレス変換テーブル１０である。書き込み命令は書き込み先の論理アドレスおよび書き込むデータ量を有する。ディスクアドレス変換テーブル１０はあらかじめ用意され記憶媒体１１４に記憶されており、記憶装置９０の起動時に一時記憶メモリ１０２等に展開される。制御部１０６は書き込み命令の論理アドレスとディスクアドレス変換テーブル１０に基づいて、データを書き込むセクタを決定する。
【００２３】
列２００は書き込み命令に対応する論理アドレスである。記憶媒体１１４のすべてのセクタに論理アドレスが割り当てられているため、列２００には各磁気ヘッドの各シリンダにおける開始セクタに対応する論理アドレスのみが記憶されている。
【００２４】
列２０１は列２００の論理アドレスに対応するヘッド番号である。したがって行２０４のデータの場合、論理アドレス“０”から“９９”に対応するデータはヘッド番号“０”に存在することが分かる。またヘッドは記憶媒体１１４の磁気ディスクごとに存在するので、ディスクアドレス変換テーブル１０においては少なくとも３枚の磁気ディスクが存在することが分かる。
【００２５】
列２０２は列２００の論理アドレスに対応する開始シリンダ番号である。したがって行２０４のデータの場合、論理アドレス“０”から“９９”に対応するデータはヘッド番号“０”、シリンダ番号“０”から数えて何番目かのシリンダ番号に存在することが分かる。
【００２６】
列２０３は列２０２に対応する１シリンダあたりの単位セクタ数である。したがって行２０４のデータの場合、ヘッド番号“０”、シリンダ番号“０”から始まるシリンダの１シリンダあたりのセクタ数は１０であることがわかる。例えば、書き込み命令の論理アドレスが“３５”の場合、この論理アドレスから列２００の論理アドレスを引いた値を列２０３の単位セクタ数で割ると、
（３５−０）／１０＝３余り５
となる。よって、論理アドレス“３５”に対応する物理アドレスは、ヘッド番号“０”、シリンダ番号“３”、セクタ番号“５”であることがわかる。
【００２７】
図３は書き込み命令の論理アドレスと不揮発性半導体メモリ１００の物理アドレスとの関係をあらわすメモリアドレス変換テーブル２０である。メモリアドレス変換テーブル２０は不揮発性半導体メモリ１００に記憶されている。制御部１０６はデータが書き込まれる度にメモリアドレス変換テーブル２０を更新する。データの読み出し時において、読み出し命令の論理アドレスに対応する論理アドレスがメモリアドレス変換テーブル２０から参照できない場合、制御部１０６はその読み出し命令に対応するデータは記憶媒体１１４に記憶されていると判断する。
【００２８】
列２１０は不揮発性半導体メモリ１００に記憶されたデータの開始アドレスに対応する開始論理アドレスである。列２１１は不揮発性半導体メモリ１００に記憶されたデータの終了アドレスに対応する終了論理アドレスである。列２１２は列２１０の開始論理アドレスに対応する不揮発性半導体メモリ１００に記憶されたデータの開始メモリアドレスである。したがって、行２１４のデータの場合、書き込み命令の論理アドレスが“４００”から“５００”のデータは開始メモリアドレス“１０”から始まる領域に記憶されていることが分かる。より具体的には、書き込み命令の論理アドレスが“４３０”の場合、このアドレスから列２１０の開始論理アドレス“４００”を引いた値に列２１２の開始メモリアドレス“１０”を足した値
（４３０−４００）＋１０＝４０
が論理アドレス“４３０”に対応する不揮発性半導体メモリ１００のメモリアドレスとなる。
【００２９】
列２１３は不揮発性半導体メモリ１００に書き込んだデータと同一のデータが記憶媒体１１４に存在することを示すフラグデータである。同一のデータが書き込まれた場合は“１”とし、そうでない場合は“０”とする。同一のデータは同一の論理アドレスで参照可能なセクタに書き込む。これにより読み出し命令に対応する同一の論理アドレスにより、不揮発性半導体メモリ１００および記憶媒体１１４の同一データを読み出すことができ、仮に不揮発性半導体メモリ１００に記憶されたデータが読み出せなくても、記憶媒体１１４から読み出すことが出来る。
【００３０】
図４は上位装置１２０から発行された書き込み命令群の処理の説明図である。
【００３１】
配列３００は上位装置１２０から送信された書き込み命令群の配列である。配列３００において、書き込み命令３０６（ｎ）は、上位装置から送信され、一時記憶メモリ１０２に保持されているデータの書き込み命令である。ｎは１から始まる自然数であり、本実施例ではｎ＝５として説明する。書き込み命令３０６（ｎ）はそれぞれ論理アドレスを有している。データの書き込み先である記憶媒体１１４の物理アドレスはこの論理アドレスとディスクアドレス変換テーブル１０を用いて求めることができる。
【００３２】
配列３０２は再配列処理された書き込み命令群である。再配列処理は制御部１０６により実行される。本実施例では、制御部１０６はディスクアドレス変換テーブル１０に基づいて各書き込み命令の論理アドレスをセクタ番号に変換し、セクタからセクタへのヘッドの移動の待ち時間が小さい順に書き込み命令３０６（ｎ）を再配列する。制御部１０６は一時記憶メモリ１０２に２以上の書き込み命令が存在することを確認すると再配列処理を実行する。また、以下の書き込み処理中に新たな書き込み命令が上位装置１２０から一時記憶メモリ１０２に送信された場合、制御部１０６は実行中の書き込み命令が完了した後に再配列処理を実行する。
【００３３】
配列３０２の場合を例に説明すると、制御部１０６は現在のヘッド位置から最も待ち時間が短いセクタ番号に対応する論理アドレスを有するのが書き込み命令３０６（３）であることを算出し、この実行順序を最初とすることを決定する。次に制御部１０６は書き込み命令３０６（３）のセクタ番号を基準とし、そこから待ち時間の短いセクタ番号に対応する論理アドレスを有するのは書き込み命令３０６（４）であることを算出し、これを実行順序の２番目に決定する。このように制御部１０６は各書き込み命令３０６（ｎ）の論理アドレスに対応するセクタ番号に基づいて待ち時間が短くなるようにすべての書き込み命令の実行順序を決定する。
【００３４】
さらに配列３０２に対し、制御部１０６は再配列処理された書き込み命令を記憶媒体１１４および不揮発性半導体メモリ１００に平行して実行する。
【００３５】
制御部１０６は待ち時間が書き込み速度に影響する記憶媒体１１４に対しては、待ち時間が短い順に書き込み命令３０６（ｎ）を実行する。これと同時に制御部１０６は待ち時間が書き込み速度に影響しない不揮発性半導体メモリ１００に対しては、待ち時間が長い順に書き込み命令３０６（ｎ）を実行する。記憶ユニット１０６への書き込み速度を向上させ、かつ記憶ユニット１０６への書き込み命令数を減らすことができるため、書き込み効率は向上し、一時記憶メモリ１０２の空き領域がなくなることを解消することができる。
【００３６】
書き込み命令の内容から書き込みデータ量がわかるので、制御部１０６は記憶媒体１１４および不揮発性半導体メモリ１００へ書き込み命令を実行した際の書き込み時間を見積もることができる。書き込み時間の計算に必要な記憶媒体１１４および不揮発性半導体メモリ１００への書き込み速度はあらかじめ不揮発性半導体メモリ１００等に記憶しておく。
【００３７】
例えば単位データあたりの書き込み速度が記憶媒体１１４よりも不揮発性半導体メモリ１００の方が速い場合、制御部１０６は書き込みデータ量から計算した書き込み時間に基づいて書き込み命令を再配列することも出来る。制御部１０６は書き込み時間の短い書き込み命令から順に記憶媒体１１４へ実行すると共に、書き込み時間の長い書き込み命令から順に不揮発性半導体メモリ１００へ実行する。これにより、データの書き込み効率を向上させることが出来る。
【００３８】
また制御部１０６は前述した待ち時間に、記憶媒体１１４へ書き込み命令を実行した場合の書き込み時間を足して再配列処理をすることも出来る。これにより、記憶媒体１１４への書き込み時間と待ち時間とを考慮した再配列が可能となり、データの書き込み処理をより効率よく行うことが出来る。
【００３９】
さらに制御部１０６は再配列後の実行順序でデータを記憶媒体１１４へ書き込む時間が、未実行の書き込み命令を不揮発性半導体メモリ１００へ書き込む時間以下になるように複数の書き込み命令を分割してもよい。このように分割するのは記憶媒体１１４へ書き込む場合の待ち時間を考慮し、記憶媒体１１４へのデータ書き込み時間を不揮発性半導体メモリ１００へのデータ書き込み時間以下にしておくためである。
【００４０】
例えばそれぞれの書き込み命令に対応するデータ量が同じであり、記憶媒体１１４および不揮発性半導体メモリ１００への書き込み速度が同じとする。この場合制御部１０６は配列３０２において、書き込み命令３０６（３）、３０６（４）を記憶媒体１１４への書き込み命令とし、書き込み命令３０６（５）、３０６（２）、３０６（１）を不揮発性半導体メモリ１００への書き込み命令として分割する。分割後の書き込み命令を不揮発性半導体メモリ１００へ実行することにより、不揮発性半導体メモリ１００への書き込み命令実行順序を気にすることなく、書き込み効率を向上させることができる。
【００４１】
図５は待ち時間を説明するための記憶媒体１１４の拡大図である。位置４００は現在の磁気ヘッド１１２の位置を示している。セクタ４０２は書き込み命令を実行したときに参照される書き込み開始位置のセクタ位置を示す。トラック４０４は現在磁気ヘッド１１２が参照しているトラックを示す。トラック４０５はセクタ４０２が存在するトラックを示す。矢印４０６は記憶媒体１１４の回転方向を示す。
【００４２】
矢印４１０は磁気ヘッド１１２がトラック４０４からトラック４０５に移動する際のシーク時間を示す。記憶媒体１１４は一定の速度で回転しているので、トラック間の距離と記憶媒体１１４の回転速度から矢印４１０に示す移動距離を求めることができる。この移動距離とヘッドの移動速度からシーク時間を求めることができる。位置４１４は磁気ヘッド１１２がトラック４０５に到達した際のヘッド位置を示す。
【００４３】
矢印４１２は磁気ヘッド１１２がトラック４０５に到達した位置４１４からセクタ４０２に到達するまでの回転待ち時間を示す。記憶媒体１１４は一定速度で回転しているので、位置４１４が上記の通り求められれば、位置４１４からセクタ４０２までの移動距離が求められる。よってこの移動距離と記憶媒体１１４の回転速度から回転待ち時間を求めることができる。
【００４４】
以上の通り求めたシーク時間と回転待ち時間の合計値を待ち時間という。不揮発性半導体メモリ１００へのデータの書き込み速度が、記憶媒体１１４への書き込み速度に比べて遅い場合、複数の書き込み命令を実行したときの両者の書き込み速度の差は待ち時間が支配的になる。このため、不揮発性半導体メモリ１００への書き込み順序の決定において、記憶媒体１１４の待ち時間を考慮することが重要になる。
【００４５】
データの書き込み量が少ない場合、データの書き込み時間に対してシーク時間および回転待ち時間が支配的になるが、データの書き込み量が多い場合は、データの書き込み時間も無視できなくなる。そこで、待ち時間としてさらにデータの書き込み時間を考慮することにより、より効率のより書き込み順序の決定すなわち再配列が可能になる。
【００４６】
図６は再配列処理のフローチャート図である。以下はｎ個の書き込み命令の場合について説明しているが、読み込み命令の場合も同様である。
【００４７】
制御部１０６は磁気ヘッド１１２の現在位置を取得する（Ｓ５００）。制御部１０６は一時記憶メモリ１０２に送信されたｎ個の書き込み命令にそれぞれ対応するデータの書き込み開始位置から、それぞれの書き込み命令を実行した場合の磁気ヘッド１１２の待ち時間を計算する（Ｓ５０２）。制御部１０６は計算した待ち時間のうちもっとも短いものを最初に実行するよう実行順序を決定する（Ｓ５０４）。制御部１０６は順位付けした書き込み命令を実行した場合の書き込み終了位置を計算する（Ｓ５０６）。
【００４８】
実行順序の決定処理を（ｎ−１）回実行していない場合（Ｓ５０８、ＮＯ）、制御部１０６はステップＳ５０６で計算した書き込み終了位置を基準に、残りのそれぞれの書き込み命令を実行した場合の磁気ヘッド１１２の待ち時間を計算する（Ｓ５０２）。制御部１０６は計算した待ち時間に基づいて次に実行すべき書き込み命令を決定する（Ｓ５０４）。制御部１０６は同様の処理を繰り返し、（ｎ−１）回再配列処理をすると処理を終了する（Ｓ５０８、ＹＥＳ）。このように再配列処理を実行することによりｎ個の書き込み命令を実行した場合の磁気ヘッド１１２の待ち時間を最小にすることができる。これにより記憶媒体１１４へのデータの書き込み時間を短縮することができる。
【００４９】
図７は記憶装置９０へのデータ書き込みのフローチャート図である。
【００５０】
制御部１０６は上位装置１２０から一時記憶メモリ１０２に送信された書き込み命令群に対し、記憶媒体１１４への書き込みに適合するように書き込み命令を再配列する。配列３００の場合、制御部１０６は書き込み命令３０６（ｎ）の各論理アドレスに基づいて配列３０２の通り待ち時間の短い順に再配列を行う（Ｓ１００）。
【００５１】
制御部１０６は再配列した書き込み命令群について、待ち時間の短い順に、記憶媒体１１４に対して書き込み命令を実行する。配列３０２の場合、制御部１０６は書き込み命令３０６（３）から順に記憶媒体１１４に対して書き込み命令を実行する。制御部１０６は実行した書き込み命令を一時記憶メモリ１０２から消去する（Ｓ１０２）。
【００５２】
同時に制御部１０６は再配列した書き込み命令群について、未実行の他の書き込み命令を例えば待ち時間の長い順に、不揮発性半導体メモリ１００に対して実行する。書き込み命令を実行後、制御部１０６は実行した書き込み命令を一時記憶メモリ１０２から消去する。よって、もし記憶媒体１１４に対して上り順に実行される複数の書き込み命令のうち、不揮発性半導体メモリ１００に対して実行済みの書き込み命令がある場合には、制御部１０６はその書き込み命令の次の書き込み命令から記憶媒体１１４に対する書き込み処理を実行する。
【００５３】
また、制御部１０６は書き込み命令の論理アドレスおよびデータを書き込んだ不揮発性半導体メモリ１００のメモリアドレスをメモリアドレス変換テーブル２０に書き込む。配列３０２の場合、制御部１０６は書き込み命令３０６（１）から順に不揮発性半導体メモリ１００に対して書き込み命令を実行する。書き込み命令実行後、制御部１０６は書き込み命令３０６（１）の論理アドレスおよびデータを書き込んだ不揮発性半導体メモリ１００のメモリアドレスをメモリアドレス変換テーブル２０に書き込む（Ｓ１０４）。
【００５４】
すべての書き込み命令が実行された場合（Ｓ１０６、ＹＥＳ）制御部１０６は書き込み処理を終了する（Ｓ１１６）。すべての書き込み命令が実行されていない場合（Ｓ１０６、ＮＯ）制御部１０６は記憶媒体１１４への書き込み命令実行状況を確認する。配列３０２の場合、制御部１０６は書き込み命令３０６（ｎ）が記憶媒体１１４に対して実行中かを確認する（Ｓ１０８）。
【００５５】
記憶媒体１１４への書き込み命令が終了している場合（Ｓ１０８、ＹＥＳ）制御部１０６は記憶媒体１１４に対し次の書き込み命令を実行する。配列３０２の場合、制御部１０６は書き込み命令３０６（ｎ）を記憶媒体１１４に対して実行する（Ｓ１１０）。記憶媒体１１４への書き込み命令が終了していない場合（Ｓ１０８、ＮＯ）制御部１０６は不揮発性半導体メモリ１００への書き込み命令実行状況を確認する。配列３０２の場合、制御部１０６は書き込み命令３０６（ｎ）が不揮発性半導体メモリ１００に対して実行中かを確認する（Ｓ１１２）。
【００５６】
不揮発性半導体メモリ１００への書き込み命令が終了している場合（Ｓ１１２、ＹＥＳ）制御部１０６は不揮発性半導体メモリ１００に対し次の書き込み命令を実行する。配列３０２の場合、制御部１０６は書き込み命令３０６（ｎ）を不揮発性半導体メモリ１００に対して実行する（Ｓ１１４）。不揮発性半導体メモリ１００への書き込み命令が実行していない場合（Ｓ１１２、ＮＯ）制御部１００はステップＳ１０６の処理へ戻り、記憶媒体１１４または不揮発性半導体メモリ１００への書き込み命令が終了するまでステップＳ１０６以降の処理を繰り返す。
【００５７】
以上の通り、記憶媒体１１４および不揮発性半導体メモリ１００へ平行して書き込み命令を実行し、すべての書き込み命令が終了するまで処理を繰り返す。これにより、記憶媒体１１４への書き込み効率を向上させ、かつ記憶媒体１１４への書き込み命令数を減らすことができる。この結果、記憶装置への書き込み時間を短縮するとともに、不揮発性半導体メモリ１００の書き込み回数を削減することができる。
［データの読み出し］
図８は上位装置１２０から発行された読み出し命令群の処理の説明図である。
【００５８】
配列５００は、上位装置１２０から送信された読み出し命令群の配列である。配列５００において、読み出し命令５０８（ｎ）は、上位装置１２０から送信され一時記憶メモリ１０２に保持された実行待ちの読み出し命令である。読み出し命令は読み出すデータの先頭の論理アドレスおよび読み出すデータ量を有する。ｎは１から始まる自然数であり、本実施例ではｎ＝５として説明する。
【００５９】
配列５０２は読み出し命令５０８（ｎ）を不揮発性半導体メモリ１００に対する読み出し命令と記憶媒体１１４に対する読み出し命令とが交互に実行されるように再配列したものである。読み出し命令５０８（１）、５０８（３）、５０８（５）は不揮発性半導体メモリ１００に対するものであり、読み出し命令５０８（２）、５０８（４）は記憶媒体１１４に対するものである。さらに記憶媒体１１４に対する読み出し命令は、制御部１０６による再配列処理によって回転待ち時間の短いものから順に再配列され、配列５０２の順序となる。
【００６０】
読み出し命令の論理アドレスに対応するデータが不揮発性半導体メモリ１００に存在するかどうかの判断はメモリアドレス変換テーブル２０に基づいて行われる。例えば読み出し命令の論理アドレスが“４５０”である場合、これはメモリアドレス変換テーブル２０の一行目の開始論理アドレス“４００”と終了論理アドレス“５００”との間に存在する。したがって、論理アドレス“４５０”に対応するデータは不揮発性半導体メモリ１００に存在することが分かる。一方、読み出し命令の論理アドレスが“５５０”である場合、これはメモリアドレス変換テーブル２０のいずれの行の開始論理アドレスと終了論理アドレスとの間にも存在しない。不揮発性半導体メモリ１００に書き込まれないデータは記憶媒体１１４に書き込まれるため、論理アドレス“５５０”に対応するデータは不揮発性半導体メモリ１００に存在せず、記憶媒体１１４に存在することがわかる。
【００６１】
配列５０２において、制御部１０６は読み出し命令５０８（１）の論理アドレスに対応するデータを不揮発性半導体メモリ１００から上位装置１２０に送信する。これと同時に制御部１０６は読み出し命令５０８（４）の論理アドレスに対応するデータを記憶媒体１１４から読み出し、一時記憶メモリ１０２に送信する。不揮発性半導体メモリ１００から上位装置１２０へデータを送信している間に記憶媒体１１４から一時記憶メモリ１０２にデータを送信するのは、記憶媒体１１４からデータを読み出す際の回転待ち時間等による読み出し時間の損失を解消するためである。
【００６２】
配列５０４は読み出し命令５０８（１）を実行後の読み出し命令群の配列である。制御部１０６は実行済みの読み出し命令５０８（１）を配列５０４の通り消去する。読み出し命令５０８（４）に対する記憶媒体１１４のデータはすでに一時記憶メモリ１０２に送信されている。以上より制御部１０６は、記憶媒体１１４に記憶されたデータを読み出す際に生じる待ち時間を利用して不揮発性半導体メモリ１００からデータを上位装置１２０へ送信する。これにより、データ読み出し時の読み出し効率を向上させることができる。データの送信終了後、制御部１０６は読み出し命令５０８（４）を配列５０４から消去する。
【００６３】
図９は記憶装置９０からのデータ読み出しのフローチャート図である。
【００６４】
一時記憶メモリ１０２に保持された読み出し命令の数が２以上になった場合、制御部１０６は上位装置１２０から送信され一時記憶メモリ１０２に保持された読み出し命令群を再配列する。配列５００の場合、制御部１０６は読み出し命令５０８（ｎ）を不揮発性半導体メモリ１００への読み出し命令と記憶媒体１１４への読み出し命令が交互になるように並び替える。さらに制御部１０６は記憶媒体１１４への読み出し命令を待ち時間が短い順に並び替えてもよい（Ｓ２００）。また、以下の読み出し処理中に新たな読み出し命令が一時記憶メモリ１０２に書き込まれた場合、制御部１０６は実行中の読み出し命令が終了した後に、再度上記の再配列を行う。
【００６５】
制御部１０６は再配列した読み出し命令群の先頭から読み出し命令を実行する。配列５０２の場合、再配列した読み出し命令５０８（ｎ）のうち、先頭の読み出し命令５０８（１）を実行し、不揮発性半導体メモリ１００から上位装置１２０へ読み出しデータの転送を開始する（Ｓ２０２）。
【００６６】
制御部１０６は不揮発性半導体メモリ１００への読み出し命令の次にある記憶媒体１１４への読み出し命令を続けて実行し、読み出されたデータを一時記憶メモリ１０２へ書き込む。配列５０２の場合、読み出し命令５０８（１）の次の読み出し命令５０８（４）を実行し、記憶媒体１１４から読み出したデータを一時記憶メモリ１０２へ書き込む（Ｓ２０４）。
【００６７】
制御部１０６は不揮発性半導体メモリ１００から上位装置１２０へのデータ転送が終了するまで待ち状態となり（Ｓ２０６、ＮＯ）データ転送が終了すると、記憶媒体１１４からのデータ転送状態を確認する（Ｓ２０６、ＹＥＳ）。
【００６８】
制御部１０６は記憶媒体１１４から一時記憶メモリ１０２へのデータ転送が終了するまで待ち状態となる（Ｓ２０８、ＮＯ）。制御部１０６は、記憶媒体１１４から一時記憶メモリ１０２へのデータ転送が終了すると（Ｓ２０８、ＹＥＳ）当該データを一時記憶メモリ１０２から上位装置１２０へ転送する。配列５０２の場合、読み出し命令５０８（４）に対応するデータを一時記憶メモリ１０２から上位装置１２０へ転送する。また制御部１０６は実行済みの読み出し命令５０８（１）および５０８（４）を消去する（Ｓ２１０）。
【００６９】
制御部１０６は一時記憶メモリ１０２に保持され再配列されたデータ読み出し命令群がすべて実行されていない場合、再びステップＳ２０２からの処理を開始する（Ｓ２１２、ＮＯ）。
【００７０】
制御部１０６は一時記憶メモリ１０２に保持され再配列されたデータ読み出し命令群がすべて実行されている場合（Ｓ２１２、ＹＥＳ）読み出し処理を終了する。
【００７１】
以上の通り、制御部１０６は記憶媒体１１４および不揮発性半導体メモリ１００へ平行して読み出し命令を実行し、すべての読み出し命令が終了するまで処理を繰り返す。制御部１０６は記憶媒体１１４に記憶されたデータを読み出す際に生じる待ち時間を利用して不揮発性半導体メモリ１００からデータを上位装置１２０へ送信することにより、データ読み出し時の読み出し効率を向上させることができる。
［不揮発性半導体メモリ記憶データの保護］
不揮発性半導体メモリ１００としてフラッシュメモリを用いる場合、データの書き込み動作、すなわち消去動作はブロック単位で行われる。単位ブロックあたりの書き換え回数が増えると、メモリセルの記憶保持特性が劣化する。したがってあるブロックでの書き換え回数が一定値を超えると、上位装置１２０から要求された書き込み命令に従って不揮発性半導体メモリ１００の上記ブロックに記憶されたデータが正しく読み出せない可能性が高くなる。
【００７２】
図１０は不揮発性半導体メモリ１００への書き込み回数が閾値を超えた場合の書き込み処理のフローチャート図である。
【００７３】
制御部１０６は上位装置１２０から送信された書き込み命令群を一時記憶メモリ１０２に記憶し、再配列処理を行う。制御部１０６は再配列後の配列から書き込み命令を１つ取り出す。配列３００の場合、制御部１０６は配列３０２の通り待ち時間が短くなるように再配列し、再配列後の配列３０２から書き込み命令３０６（１）を取り出す（Ｓ３１０）。
カウンタ１０８は不揮発性半導体メモリ１００のブロックごとの書き込み回数すなわち消去回数をカウントする。カウント値および閾値は制御部１０６の記憶領域など、不揮発性の記憶領域に記憶しておく。ここで閾値は、不揮発性半導体メモリ１００の書き換え可能回数に基づいて定めることができる。これにより、閾値を超える書き換えがあった場合、不揮発性半導体メモリ１００のデータが読み出せない可能性が高いと推測できる。
【００７４】
制御部１０６はカウンタ１０８のカウント値と設定された閾値とを比較し、カウント値が閾値を超えた場合（Ｓ３００、ＹＥＳ）データを不揮発性半導体メモリ１００へ書き込むかわりに記憶媒体１１４へ書き込む。
【００７５】
配列３０２の場合、制御部１０６は書き込み命令３０６（１）に対応するデータを記憶媒体１１４へ書き込む（Ｓ３０６）。カウント値が閾値を超えていない場合（Ｓ３００、ＮＯ）制御部１０６はカウンタ１０８のカウント値を加算し（Ｓ３０２）、データを不揮発性半導体メモリ１００へ書き込む。配列３０２の場合、制御部１０６は書き込み命令３０６（１）に対応するデータを不揮発性半導体メモリ１００へ書き込む（Ｓ３０４）。
【００７６】
ステップＳ３０６を実行後、制御部１０６は新たな書き込み命令が上位装置１２０から送信されたかを確認する。新たな書き込み命令が送信された場合（Ｓ３０８、ＹＥＳ）制御部１０６は新たな書き込み命令を一時記憶メモリ１０２の配列に追加し（Ｓ３１４）、書き込み命令の再配列を行う（Ｓ３１６）。新たな書き込み命令があった場合、制御部１０６は書き込み処理の負荷が大きいと判断し不揮発性半導体メモリ１００への書き込みを行うことなくステップＳ３１０からの処理を実行する。
【００７７】
一方、新たな書き込み命令が送信されていない場合（Ｓ３０８、ＮＯ）制御部１０６はカウンタ１０８のカウント値を加算する（Ｓ３０２）。制御部１０６はステップＳ３０６で記憶媒体１１４に書き込んだデータを不揮発性半導体メモリ１００に対しても書き込む（Ｓ３０４）。同一データを不揮発性半導体メモリ１００にも記憶するのは、不揮発性半導体メモリ１００のランダムアクセスの良さを利用してデータの読み出し効率を向上させるためである。ただし、カウンタ１０８のカウント値が閾値を超えているため不揮発性半導体メモリ１００に記憶したデータが読み出せない可能性もある。そこで同一データを記憶媒体１１４にも記憶しておく。また、メモリアドレス変換テーブル２０を更新するときに、制御部１０６は書き込みデータに対応する行の列２１３に“１”を書き込む。同一データが不揮発性半導体メモリ１００および記憶媒体１１４にあることを明確にするためである。
【００７８】
また、ステップＳ３０４において不揮発性半導体メモリ１００に記憶する動作を省略することも出来る。これにより書き込みデータが大きいときの書き込み時間を省略し、記憶装置の書き込み処理を高速化することが出来る。この場合、メモリアドレス変換テーブル２０の更新は不要である。
【００７９】
書き込み命令群の配列に未実施の書き込み命令が残っている場合、制御部１０６はステップＳ３１０からの処理を再び実行する（Ｓ３１２、ＹＥＳ）。配列に書き込み命令が残っていない場合（Ｓ３１２、ＮＯ）制御部１０６は書き込み処理を終了する（Ｓ３１８）。
【００８０】
図１１は図１０の処理にしたがって不揮発性半導体メモリ１００および記憶媒体１１４に同一のデータが書き込まれた場合の、データの読み出し処理のフローチャート図である。
【００８１】
制御部１０６は上位装置１２０から送信された読み出し命令に対応するデータが不揮発性半導体メモリ１００に記憶されていると判断すると、不揮発性半導体メモリ１００に記憶されたデータを読み出す（Ｓ４００）。
【００８２】
制御部１０６は読み出したデータにエラーが発生していないかを判定し、エラーが発生していない場合（Ｓ４０２、ＮＯ）そのデータを上位装置１２０に送信し、読み出し処理を終了する。エラーの発生は、制御部１０６がデータの書き込み時に生成しデータと共に不揮発性半導体メモリ１００に記憶したＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）コードと、データの読み出し時に生成したＣＲＣコードとを比較することにより判定する。ＣＲＣコードの生成はメモリコントローラ１０４により行われる。ＣＲＣコードとは、不揮発性半導体メモリ１００から読み出したデータが書き込み時と異なっていることを検出するためのコードである。
【００８３】
制御部１０６はエラーが発生したと判定した場合（Ｓ４０２、ＹＥＳ）同一データが記憶媒体１１４にあるか確認する。制御部１０６はメモリアドレス変換テーブル２０の列２１３にあるフラグデータが“１”の場合、同一データが記憶媒体１１４にあると判定する（Ｓ４０４）。制御部１０６は、同一データが記憶媒体１１４にあると判定できた場合（Ｓ４０６、ＹＥＳ）記憶媒体１１４から当該データを読み出し（Ｓ４０８）、上位装置１２０へデータ送信して読み出し処理を終了する。
【００８４】
制御部１０６は同一データが記憶媒体１１４に無いと判定した場合（Ｓ４０６、ＮＯ）上位装置１２０へエラー報告を行い（Ｓ４１０）、読み出し処理を終了する。
【００８５】
一方、カウント値が閾値を超えた場合に不揮発性半導体メモリ１００に同一データを書き込む処理を行っていない場合は、上記処理は行わず直接記憶媒体１１４にアクセスする。これにより、データの読み出し処理ステップを省略することが出来、読み出し速度を高速化することが出来る。
【００８６】
なお、各実施形態における構成の組み合わせも本発明の実施形態に含まれる。以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
回転する記録媒体に書き込みヘッドでデータを書き込む記憶ユニットと、
不揮発性半導体メモリと、
複数の書き込み命令を一時記憶する一時記憶メモリと、
該複数の書き込み命令を実行し、該記憶ユニットと該不揮発性半導体メモリにデータを書き込む制御部とを有し、
該制御部は、該一時記憶メモリ中の複数の書き込み命令を、該記憶ユニットに対して実行する時の待ち時間順に順序付け、該順序の昇順に該複数の書き込み命令を順次該記憶ユニットに対して実行するとともに、他の書き込み命令を該不揮発性半導体メモリに対して実行し、該複数の書き込み命令により書き込みを指示された全てのデータが、該記憶ユニットか該不揮発性半導体メモリのいずれかに格納されるようにしたことを特徴とする記憶装置。
（付記２）
該待ち時間を、書き込み命令を実行するときの該書き込みヘッドの移動に要する時間で定めるようにしたことを特徴とする付記１に記載の記憶装置。
（付記３）
該待ち時間を、該書き込み命令の実行による該記憶ユニットへのデータの書き込み時間で定めるようにしたことを特徴とする付記１に記載の記憶装置。
（付記４）
該待ち時間を、書き込み命令を実行するときの該書き込みヘッドの移動に要する時間に、該書き込み命令の実行による該記憶ユニットへのデータの書き込み時間を足した時間で定めるようにしたことを特徴とする付記１に記載の記憶装置。
（付記５）
該制御部は、該不揮発性半導体メモリの領域毎のデータ書き込み回数を監視し、書き込み命令実行時に書き込みを指定された領域の書き込み回数が所定の制限回数を超えているときは、該領域への書き込みを実行せずに該順序の次の降順の書き込み命令実行に移行できるようにしたことを特徴とする付記１に記載の記憶装置。
（付記６）
該制御部は、該不揮発性半導体メモリの領域毎のデータ書き込み回数を監視し、書き込み命令実行時に書き込みを指定された領域の書き込み回数が所定の制限回数を超えているときは、該領域への書き込みを実行すると共に該順序の次の降順の書き込み命令実行に移行できるようにしたことを特徴とする付記１に記載の記憶装置。
（付記７）
該記憶ユニットに対して該順序の上り順に実行される該複数の書き込み命令のうち、該不揮発性半導体メモリに対して実行済みの書き込み命令がある場合には該書き込み命令の次の書き込み命令から実行することを特徴とする付記１に記載の記憶装置。
（付記８）
該他の書き込み命令は、該順序の降順の該複数の書き込み命令であることを特徴とする付記１に記載の記憶装置。
（付記９）
該不揮発性半導体メモリは該不揮発性半導体メモリに書き込まれたデータに対応する論理アドレスと、該データを記憶した該不揮発性半導体メモリの物理アドレスとをメモリアドレス変換テーブルとして記憶することを特徴とする付記１に記載の記憶装置。
（付記１０）
該メモリアドレス変換テーブルはさらに該不揮発性半導体メモリに記憶したデータと同一のデータを該記憶ユニットに記憶したことを示すフラグデータを有することを特徴とする付記９に記載の記憶装置。
（付記１１）
回転する記録媒体に書き込みヘッドでデータを書き込む記憶ユニットと、不揮発性半導体メモリと、複数の書き込み命令を一時記憶する一時記憶メモリとを有する記憶装置へのデータ記憶方法であって、
該一時記憶メモリ中の複数の書き込み命令を該記憶ユニットに対して実行する時の待ち時間順に順序付け、
該順序の昇順に該複数の書き込み命令を順次該記憶ユニットに対して実行するとともに、他の書き込み命令を該不揮発性半導体メモリに対して実行し、
該複数の書き込み命令により書き込みを指示された全てのデータが、該記憶ユニットが該不揮発性半導体メモリのいずれかに格納されるようにしたことを特徴とするデータ記憶方法。
（付記１２）
該記憶ユニットに対して該順序の上り順に実行される該複数の書き込み命令のうち、該不揮発性半導体メモリに対して実行済みの書き込み命令がある場合には該書き込み命令の次の書き込み命令から実行することを特徴とする付記１１に記載のデータ記憶方法。
（付記１３）
該他の書き込み命令は、該順序の降順の該複数の書き込み命令であることを特徴とする付記１１に記載のデータ記憶方法。
（付記１４）
付記１に記載の記憶装置であって、
受信した複数の読み出し命令を一時記憶する一時記憶メモリと、
該読み出し命令に対応するデータが該不揮発性半導体メモリに記憶されていることを判定し、該記憶ユニットに対する読み出し命令を実行している間に、該不揮発性半導体メモリに対する読み出し命令を実行する制御部とを有することを特徴とする記憶装置。
（付記１５）
該不揮発性半導体メモリは該不揮発性半導体メモリに書き込まれたデータに対応する論理アドレスと、該データを記憶した該不揮発性半導体メモリの物理アドレスとをメモリアドレス変換テーブルとして記憶し、
該制御部は該メモリアドレス変換テーブルの該論理アドレスに基づいて該読み出し命令に対応するデータが該不揮発性半導体メモリに記憶されていることを判定することを特徴とする付記１４に記載の記憶装置。
【図面の簡単な説明】
【００８７】
【図１】装置全体構成図
【図２】ディスクアドレス変換テーブル
【図３】メモリアドレス変換テーブル
【図４】書き込み命令群の配列図
【図５】記憶ユニットの拡大図
【図６】再配列処理のフローチャート図
【図７】データの書き込みフローチャート図
【図８】読み出し命令群の配列図
【図９】データの読み出しフローチャート図
【図１０】データの書き込みフローチャート図
【図１１】データの読み出しフローチャート図
【符号の説明】
【００８８】
１０          ディスクアドレス変換テーブル
２０          メモリアドレス変換テーブル
９０          記憶装置
１００        不揮発性半導体メモリ
１０２        一時記憶メモリ
１０４        メモリコントローラ
１０６        制御部
１０８        カウンタ
１１０        ＡＤ変換部
１１２        磁気ヘッド
１１４        記憶媒体
１２０        上位装置
【図１】
0005214315.tif 000002
【図２】
0005214315.tif 000003
【図３】
0005214315.tif 000004
【図４】
0005214315.tif 000005
【図５】
0005214315.tif 000006
【図６】
0005214315.tif 000007
【図７】
0005214315.tif 000008
【図８】
0005214315.tif 000009
【図９】
0005214315.tif 000010
【図１０】
0005214315.tif 000011
【図１１】
0005214315.tif 000012