(57)【要約】【課題】低消費電力、高速書き込み読出しを実現し、半導体メモリである記憶媒体の長寿命化を得ることができる。【解決手段】ホストインターフェースと、前記ホストインターフェースから入力されたコマンドの内容を解析するコマンド解析部と、前記コマンド解析部で解析されたコマンドがデータ書き込みを指令するコマンドであるとき、ハードディスクの回転状態を判定する状態判定部と、前記状態判定部の判定結果が、前記ハードディスクが回転していることを示すときは、書き込みデータを前記ハードディスクに送り、回転していないことを示すときは、フラッシュメモリに前記書き込みデータを送る書き込み処理部と有する。【選択図】図３
2007193440.tif 000002
【特許請求の範囲】
【請求項１】
ホストインターフェースと、
前記ホストインターフェースから入力されたコマンドの内容を解析するコマンド解析部と、
キャッシュメモリへのインターフェースとなるメモリインターフェースと、
前記コマンド解析部で解析されたコマンドがデータ書き込みを指令するコマンドであるとき、ハードディスクの回転状態を判定する状態判定部と、
前記状態判定部の判定結果が、前記ハードディスクが回転していることを示すときは、書き込みデータを前記ハードディスクに送り、回転していないことを示すときは、前記キャッシュメモリに前記書き込みデータを送る書き込み処理部と
を具備したことを特徴とする不揮発性キャッシュメモリを用いる記憶装置。
【請求項２】
前記書き込み処理部は、さらに、前記状態判定部の判定結果が、前記ハードディスクが回転し、かつスピンドルモータが回転上昇中又は安定していることを示すときに、書き込みデータを前記ハードディスクに送ることを特徴とする
請求項１記載の不揮発性キャッシュメモリを用いる記憶装置。
【請求項３】
前記書き込み処理部は、さらに、前記状態判定部の判定結果が、前記ハードディスクが回転し、かつスピンドルモータが安定していることを示すときは、前記スピンドルモータが所定回転数であるかどうかを確認して、書き込みデータを前記ハードディスクに送ることを特徴とする
請求項１記載の不揮発性キャッシュメモリを用いる記憶装置。
【請求項４】
前記状態判定部は、前記ハードディスクが回転しているか否かを判定する場合は、前記ハードディスクに発行されているコマンドを解釈することで判定することを特徴とする請求項１記載の不揮発性キャッシュメモリを用いる記憶装置。
【請求項５】
前記状態判定部は、前記ハードディスクが回転しているか否かを判定する場合は、前記ハードディスクのスピンドルモータの回転検出信号を用いて判定することを特徴とする請求項１記載の不揮発性キャッシュメモリを用いる記憶装置。
【請求項６】
ホストインターフェースと、ディスクインターフェースと、フラッシュメモリインターフェースと、動作を制御するコントローラと、キャッシュメモリを有する記憶装置の制御方法において、
前記ホストインターフェースから入力されたコマンドの内容を解析し、
解析されたコマンドがデータ書き込みを指令するコマンドであるとき、ハードディスクの回転状態を判定し、
前記回転状態の判定結果が、前記ハードディスクが回転していることを示すときは、書き込みデータを前記ハードディスクに送り、回転していないことを示すときは、前記キャッシュメモリに前記書き込みデータを送る
ことを特徴とする記憶装置の制御方法。
【請求項７】
前記回転状態の判定結果が、前記ハードディスクが回転し、かつスピンドルモータが回転上昇中又は安定していることを示すときに、書き込みデータを前記ハードディスクに送ることを特徴とする
請求項６載の記憶装置の制御方法。
【請求項８】
前記回転状態の判定結果が、前記ハードディスクが回転し、かつスピンドルモータが安定していることを示すときは、前記スピンドルモータが所定回転数であるかどうかを確認して、書き込みデータを前記ハードディスクに送ることを特徴とする
請求項６載の記憶装置の制御方法。
【請求項９】
前記ハードディスクが回転しているか否かを判定する場合は、前記ハードディスクに発行されているコマンドを解釈することで判定することを特徴とする請求項６載の記憶装置の制御方法。
【請求項１０】
前記ハードディスクが回転しているか否かを判定する場合は、前記ハードディスクのスピンドルモータの回転検出信号を用いて判定することを特徴とする請求項６載の記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、不揮発性キャッシュメモリを用いる記憶装置とその制御方法に関するものであり、低消費電力、高速書き込み読出しを実現し、さらには、記憶媒体の長寿命化を得られるように工夫したものである。
【背景技術】
【０００２】
近年、半導体記憶媒体であるメモリカードと、磁気記憶媒体であるハードディスクを用いたハードディスク（ＨＤ）の両方を搭載できる記憶装置が開発されている（特許文献１参照）。ここでは、例えば外部より取得したメモリカードのデータを磁気記憶媒体であるハードディスク（ＨＤ）にバックアップすることができる。また、ＨＤのデータをメモリカードに転送して、取り出すことができる。
【０００３】
また携帯用の記憶装置として、フラッシュメモリを用いたものが開発されている（特許文献２）。ここでは、フラッシュメモリは、消去回数（例えば１０万回）が多くなると、エラーが多く発生するために、このような問題を解決しようとしている。例えば特定領域のみの消去回数が多くなるのを抑制するデータ管理方法を提供している。
【特許文献１】特開２００４−０５５１０２公報
【特許文献２】特許３４０７３１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この発明に係る１つの実施形態では、記憶媒体としてのハードディスク及び半導体メモリの特徴を巧みに利用し、低消費電力、高速書き込み読出しを実現し、さらには、半導体メモリである記憶媒体の長寿命化を図る不揮発性キャッシュメモリを用いる記憶装置及びその制御方法を提供することを目的としている。
【課題を解決するための手段】
【０００５】
上記の目的を達成するために、この発明に係る１つの実施の形態では、ホストインターフェースと、前記ホストインターフェースから入力されたコマンドの内容を解析するコマンド解析部と、キャッシュメモリへのインターフェースとなるメモリインターフェースと、前記コマンド解析部で解析されたコマンドがデータ書き込みを指令するコマンドであるとき、ハードディスクの回転状態を判定する状態判定部と、前記状態判定部の判定結果が、前記ハードディスクが回転していることを示すときは、書き込みデータを前記ハードディスクに送り、回転していないことを示すときは、前記キャッシュメモリに前記書き込みデータを送る書き込み処理部と有する。
【発明の効果】
【０００６】
上記手段により、低消費電力、高速書き込み読出しを実現し、半導体メモリである記憶媒体の長寿命化を得ることができる。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照しながら、この発明に係る幾つかの実施の形態を説明する。
【０００８】
＜全体の構成及び機能＞
まず図１において、実施形態の全体ブロックの例を説明する。１００は、ホスト装置であり、例えば、パーソナルコンピュータに於けるコントロール部である。２００は、不揮発性キャッシュメモリを用いる記憶装置である。この記憶装置２００は、バッファとして機能するＳＤＲＡＭ２０１、後述するコントローラなどが搭載された例えば１チップのＬＳＩ（大規模集積化回路）２０２、フラッシュメモリ２０３、ハードディスク（ＨＤ）２０４を有する。
【０００９】
ＬＳＩ２０２は、コントローラ３１１、ホストインターフェース３１２、ＳＤＲＡＭインターフェース３１３、ディスクインターフェース３１４、フラッシュメモリインターフェース３１５を有する。なお、このＬＳＩ２０２に、上記のＳＤＲＡＭ２０１が内蔵されていてもよい。
【００１０】
ホスト装置１００は、ホストインターフェース３１２を介して、コントローラ３１１にコマンドを与えることができる。またホスト装置１００は、ホストインターフェース３１２を介して、コントローラ３１１からのデータを受け取ることもできるし、コントローラ３１１側へデータを転送することもできる。
【００１１】
コントローラ３１１からのコマンドは、データの書き込み命令、データの読出し命令、データのサイズ指定、データの転送、メモリ、情報の読み取り命令などがある。コントローラ３１１は、ホスト装置１００からのコマンドを解釈し、データの書き込み処理、読出し処理、転送処理などを実行する。
【００１２】
コントローラ３１１は、ＳＤＲＡＭインターフェース３１３を介して、ＳＤＲＡＭ２０１との間でデータのやり取りを行うことができる。またコントローラ３１１は、ディスクインターフェース３１４を介して、ＨＤ２０４との間でデータのやり取りを行うことができる。さらにコントローラ３１１は、フラッシュメモリインターフェース３１５を介して、フラッシュメモリ２０３との間でデータのやり取りを行うことができる。上記したフラッシュメモリ２０３に格納されるデータは、エラー訂正コードが付加されて格納される。またハードディスクに記録されるデータもエラー訂正コード（ＥＣＣ）が付加されて格納される。このようにフラッシュメモリへの記録データ、ハードディスクへの記録データに対しては、再生時のエラー訂正が可能なようにＥＣＣ処理が施される。
【００１３】
上記の装置は、フラッシュメモリインターフェース３１５、フラッシュメモリ２０３の部分は、キャッシュとして使用する。
【００１４】
データの書き込み順序、データの読出し順序は、コントローラ３１１に格納されているソフトウエアに応じて決まる。例えば、ホスト装置１００からハードディスク２０４へ書き込みデータが送られるときは、ホストインターフェース２０２→コントローラ３１１→ＳＤＲＡＭインターフェース３１３→ＳＤＲＡＭ２０１→ＳＤＲＡＭインターフェース３１３→コントローラ３１１→ディスクインターフェース３１４→ハードディスク２０４の系路でもよく、ホストインターフェース２０２→コントローラ３１１→フラッシュメモリインターフェース３１５→フラッシュメモリ２０３→フラッシュメモリインターフェース３１５→コントローラ３１１→ディスクインターフェース３１４→ハードディスク２０４の系路でもよい。また、ホストインターフェース２０２→コントローラ３１１→フラッシュメモリインターフェース３１５→フラッシュメモリ２０３→フラッシュメモリインターフェース３１５→コントローラ３１１→ＳＤＲＡＭインターフェース３１３→ＳＤＲＡＭ２０１→ＳＤＲＡＭインターフェース３１３→コントローラ３１１→ディスクインターフェース３１４→ハードディスク２０４の系路でもよい。
【００１５】
また、ハードディスク２０４からホスト装置１００側へデータが読み出されるときは、ディスクインターフェース３１４→コントローラ３１１→ＳＤＲＡＭインターフェース３１３→ＳＤＲＡＭ２０１→ＳＤＲＡＭインターフェース３１３→コントローラ３１１→ホストインターフェース３１２→ホスト装置、でも良く、ディスクインターフェース３１４→コントローラ３１１→フラッシュメモリインターフェース３１５→フラッシュメモリ２０３→フラッシュメモリインターフェース３１５→コントローラ３１１→ホストインターフェース３１２→ホスト装置でもよい。さらには、ディスクインターフェース３１４→コントローラ３１１→フラッシュメモリインターフェース３１５→フラッシュメモリ２０３→フラッシュメモリインターフェース３１５→コントローラ３１１→ＳＤＲＡＭインターフェース３１３→ＳＤＲＡＭ２０１→ＳＤＲＡＭインターフェース３１３→コントローラ３１１→ホストインターフェース３１２→ホスト装置でも良い。
【００１６】
さらには、ディスクインターフェース３１４→コントローラ３１１→フラッシュメモリインターフェース３１５→フラッシュメモリ２０３→フラッシュメモリインターフェース３１５→コントローラ３１１→ＳＤＲＡＭインターフェース３１３→ＳＤＲＡＭ２０１→ＳＤＲＡＭインターフェース３１３→コントローラ３１１→ホストインターフェース３１２→ホスト装置でも良い。
【００１７】
＜フラッシュメモリに関する説明＞
図２は、フラッシュメモリ２０３を取り扱う上で特有の制御が行われることを説明する図である。フラッシュメモリ２０３は、不揮発性メモリでありながら、データの電気的消去が可能である。したがって、データの書き換えが可能な不揮発性メモリである。
【００１８】
このフラッシュメモリ２０３は、例えば、消去単位は、１２８Ｋバイトで規定されている。一方、読み取り単位及び書き込み単位は、例えば２Ｋバイトに規定されている。またこのフラッシュメモリ２０３は、消去回数が多くなると素子が劣化し、エラー発生が多くなる。そこで、素子の性能を保証する情報として、書き換え回数を１０万回程度に規定している。なお上記の消去単位のバイト数及び書き込み単位の数値はこれに限定されるものではない。消去単位２３Ｋバイト、読み書き単位５１２単位であってもよい。
【００１９】
＜フラッシュメモリとコントローラとホスト装置からのコマンドとの基本的な関係＞
図２に示すように、フラッシュメモリ２０３にデータが書き込まれた場合、その書き込み領域を、Ｐｉｎｎｅｄ（ピンド）領域２０３Ａと、ＵｎＰｉｎｎｅｄ（アンピンド）領域２０３Ｂという名称で分類することができる。Ｐｉｎｎｅｄ領域２０３Ａは、ホスト装置１００が送ってきたデータ書き込み先のコマンドが、あえてフラッシュメモリ２０３を指定した場合に形成された領域である。コマンドは、フラッシュメモリ２０３とその論理ブロックアドレス（ＬＢＡ）を含む。ＵｎＰｉｎｎｅｄ（アンピンド）領域２０３Ｂは、ホスト装置１００によるデータ書き込み先のコマンドが指定されていない場合で、かつ、コントローラ３１１が独自に判断して、データを転送し、格納した領域である。
【００２０】
なおフラッシュメモリ２０３に書き込むデータとしては、ホスト装置１００から送られてくるデータ、あるいは、ハードディスク２０４から読み出したデータがある。
【００２１】
コントローラ３１１がデータ書き込み先を決めるための判断要件は、各種ある。コントローラ３１１内部の状態判定部が周囲の要件を総合的に判断し、書き込み先を決定している。例えば、装置の電源が投入された直後であり、ＨＤ２０４のハードディスクが所定回転数に達していない場合、あるいは、ＨＤ２０４が停止状態にある場合などである。
【００２２】
＜フラッシュメモリインターフェース３１５及びコントローラ３１１の機能と構成＞
図３には、コントローラ３１１、フラッシュメモリインターフェース３１５の構成を機能別に分類して示している。フラッシュメモリインターフェース３１５には、累積カウンタが設けられており、カウント数は、例えばインターフェース内に設けられたレジスタに書き込まれ、後にフラッシュメモリ２０３に書き込まれる、あるいは直接フラッシュメモリ２０３が利用されてもよい。
【００２３】
カウンタとしては、累積ライト回数カウンタ３１５ａ，累積消去回数カウンタ３１５ｂ、累積ライトエラー回数カウンタ３１５ｃ、リードエラー数カウンタ３１５ｄが用意されている。リードエラー数カウンタ３１５ｄの代わりに、ＥＣＣ回路により検出されるエラー数カウンタ、あるいはエラー訂正数カウンタ３１５ｅが設けられてもよい。また、リードライト単位をカウントするカウンタが設けられていてもよい。これらのカウンタの内容は、エラーが多くなったときの警告、状態判定部の判定要素として利用される。
【００２４】
コントローラ３１１は、コマンド解析部４１１を有し、ホスト装置１００から送られてきたコマンドをここでデコードし解析する。コマンドの解析結果により、アーキテクチャメモリ４１４内のソフトウエアが特定され、シーケンスコントローラ４１２に動作手順が設定される。また、これらのコマンド解析及び制御は、インターフェース３１２において行われてもよい。
【００２５】
シーケンスコントローラ４１２は、インターフェース及びバスコントローラ４１３などを介して、データ及びコントロールデータの流れを制御する。例えば、データ書き込みあるいは読出しが行われるときは、メディア選択部４１５がフラッシュメモリ２０３あるいはハードディスク（ＨＤ）を特定し、アドレス制御部４１６が書き込みアドレスあるいは読出しアドレスを特定する。そして、データ書き込み時には、書き込み処理部４１７が書き込みデータの転送処理などを行う。また、データ読出し時には、読出し処理部４１７が読出しデータの転送処理などを行う。
【００２６】
さらに消去処理部４１９が設けられている。消去処理部４１９は、フラッシュメモリ２０３のデータの消去処理を行う。またこの消去処理部４１９は、ハードディスクのデータの消去処理も行うことができる。
【００２７】
さらにアドレス管理部４２０が設けられている。アドレス管理部４２０は、ハードディスクのアドレス及びフラッシュメモリ２０３の記録済み領域、未記録領域などのアドレスを一括して管理している。フラッシュメモリ２０３は、キャッシュメモリとして利用されるので、ホスト装置側がアドレスを指定する場合は、キャッシュメモリのアドレスを意識する必要はなく、ハードディスク側のアドレスを設定すればよい。データの格納先として特別にキャッシュメモリを指定する場合に、Ｐｉｎｎｅｄのコマンドを発行すればよい。Ｐｉｎｎｅｄのコマンドがない場合には、データ格納先は、コントローラ３１１に構築されているファームウエアの判定結果に依存する。
【００２８】
またフラッシュメモリ２０３のＰｉｎｎｅｄ領域、Ｕｎｐｉｎｎｅｄ領域などのアドレス管理及び制御は、インターフェース３１５において行われてもよい。
【００２９】
さらに状態判定部４２１が設けられている。この状態判定部４２１は、ハードディスク２０４の状態を監視している。
【００３０】
なおフラッシュメモリ２０３の記憶容量がある閾値より大きくなった場合には、コントローラ３１１が状態を判定し、ハードディスクに転送して書き移す処理を行う。このときの動作は、主として読出し処理部４１８、書き込み処理部４１６、アドレス管理部４２０が組み合わせて制御される。
【００３１】
＜実施例における特有の構成と機能と動作＞
＜前提＞上記の記憶装置は、低消費電力が得られることがこのましい。このためにはできるだけハードディスク２０４の駆動回数を少なくするように動作を管理したほうがよい。このような指向で管理すると、フラッシュメモリ２０３に対するアクセス回数が増加する。フラッシュメモリ２０３に対する書き込み回数が増加するような管理を行うと、今度は、フラッシュメモリ２０３の寿命が短くなるという新たな問題が生じる。
【００３２】
＜解決手段＞そこでこの実施の形態では、低消費電力を図りながらフラッシュメモリ２０３の短命化を抑制できるようにした動作管理を行うものである。
【００３３】
図４は、装置がデータ書き込み処理を行うときの動作を示すフローチャートの一例である。コマンド解析部４１１がホスト装置１００から送られてきたコマンドを解析し、データ書き込みコマンドがあるかを判定する（ステップＳＡ１）。データ書き込みコマンドがない場合には、他の処理（ステップＳＡ３）を実行してステップＳＡ１に戻る。
【００３４】
データ書き込みコマンドがあった場合、書き込みデータは、Ｐｉｎｎｅｄであるかどうかの判定を行う（ステップＳＡ２）。Ｐｉｎｎｅｄであれば、書き込み処理部４１８は、フラッシュメモリにデータを書き込む。書き込みデータは、Ｐｉｎｎｅｄでない場合には、ＨＤＤモータ（スピンドルモータ）が回転しているかどうかを状態判定部４２１が判定する（ステップＳＡ５）。スピンドルモータが回転していない場合には、書き込み処理部４１８は、書き込みデータ（Ｕｎｐｉｎｎｅｄ領域となる）をフラッシュメモリに書き込む。ＨＤＤモータが回転している場合には、書き込み処理部４１８は、書き込みデータをハードディスクに書き込む。データをハードディスク（ＨＤ）に書き込む判断条件としては、フラッシュメモリが寿命近くになっているかどうかを判断して、寿命近くになっていた場合は、ＨＤに書き込むようにしてもよい。
【００３５】
図５は、装置がデータ書き込み処理を行うときの動作を示すフローチャートの他の例である。図４のフローチャートと同一の部分には、同一符号を付している。この実施の形態では、ステップＳＡ５において、スピンドルモータが回転していることが判明してしたとしても、さらにモータの回転の様子を監視する。つまり、スピンドルモータが回転していても、停止命令あとで慣性により回転していることもあるからである。したがって、この実施形態では、モータの回転数が上昇中であるかどうか、または安定しているかどうかを判定する（ステップＳＢ１）。この条件が満たされなければ、書き込み処理部４１７は、書き込みデータをフラッシュメモリ２０３に書き込む。
【００３６】
ステップＳＢ１において、モータの回転数が上昇中、または安定していることが判定された場合、書き込み処理部４１７は、モータが所定回転数になるまで、又は一定時間経過するまで待って、ハードディスクへのデータ書き込みを実行する。
【００３７】
モータの回転数が上昇中であるかどうかは、スピンドルモータを起動して一定時間経過していないような場合である。安定しているかどうかの判定は、起動した時点から一定時間経過し、かつ停止コマンドを発行していないことを条件にして判定できる。さらには、ハードディスク２０４側からスピンドルモータの回転検出信号の周波数を判定してもよい。回転検出信号は、スピンドルモータのサーボ回路において利用されているので、この回転検出信号を監視するのである。
【００３８】
＜有効な影響＞
上記したような管理を行うことにより、ハードディスク２０４の新規な駆動回数ができるだけ少なくなる。これにより低消費電力化が得られる。また、フラッシュメモリ２０３に対するアクセス回数が抑制できる。これによりフラッシュメモリ２０３の長寿命化が得られる。
【００３９】
図６は、装置がデータ書き込み処理を行うときの動作を示すフローチャートの他の例である。この実施形態では、データ書き込みコマンドが来たとき（ステップＳＣ１）、スピンドルモータ（ハードディスクモータ）が回転しているかどうかをまず判定する（ステップＳＣ２）。スピンドルモータが回転していない場合には、書き込み処理部４１７は、フラッシュメモリ２０３にデータの書き込み処理を行う。スピンドルモータが回転している場合には、スピンドルモータが回転上昇中であるのか、安定しているのかの判定を行う（ステップＳＣ５）。
【００４０】
スピンドルモータの回転数が、所定回転数又は起動後一定時間経過している場合には、書き込み処理部４１７は、ハードディスクにデータを書き込む（ステップＳＣ７）。
【００４１】
ここで、ハードディスクに書き込んだデータが、Ｐｉｎｎｅｄ領域に書き込むべきデータであったかどうかの判定が行われる。これは書き込みコマンドの属性を一時的に保存しておき、データ書き込み後、検査することで、Ｐｉｎｎｅｄデータであるかどうかを判断できる。もしＰｉｎｎｅｄデータが存在した場合には、そのデータは、フラッシュメモリＳＣ４に転送して書き込む（ステップＳＣ９）。Ｐｉｎｎｅｄデータが存在しない場合には、終了する。
【００４２】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００４３】
【図１】この発明に係る一実施の形態の全体構成を示すブロック図である。
【図２】図１におけるフラッシュメモリの特徴を説明するために示した図である。
【図３】図１におけるフラッシュメモリインターフェースの機能及びコントローラ３１１の機能を説明するために示した図である。
【図４】図１の装置の一動作例を説明するために示したフローチャートである。
【図５】図１の装置の他の一動作例を説明するために示したフローチャートである。
【図６】図１の装置のさらに他の一動作例を説明するために示したフローチャートである。
【符号の説明】
【００４４】
１００…ホスト装置、２００…記憶装置、２０１…ＳＤＲＡＭ、２０２…基板、２０３…フラッシュメモリ、２０４…ハードディスク、３１１…コントローラ、３１２…ホストインターフェース、３１３…ＳＤＲＡＭインターフェース、３１４…ディスクインターフェース、３１５…フラッシュメモリインターフェース。
【図１】
2007193440.tif 000003
【図２】
2007193440.tif 000004
【図３】
2007193440.tif 000005
【図４】
2007193440.tif 000006
【図５】
2007193440.tif 000007
【図６】
2007193440.tif 000008