(57)【要約】【課題】この発明は、ディスク状記録媒体に発生した不良領域に対して代替領域を設定して対処する際に、情報の書き込み及び読み出し動作を高速でかつ高い信頼性を持って実現することができるようにした情報記録装置及びその制御方法を提供することを目的としている。【解決手段】ディスク状記録媒体（１３）、キャッシュメモリ（１４）及び不揮発性メモリ（１５）と外部との相互間での情報転送をそれぞれ制御すること、ディスク状記録媒体（１３）、キャッシュメモリ（１４）及び不揮発性メモリ（１５）の相互間での情報転送を制御すること、ディスク状記録媒体（１３）に発生した不良領域に対する代替領域を不揮発性メモリ（１５）に設定するように制御することとを行なう制御手段（１６）を備える。【選択図】      図１
2008243265.tif 000002
【特許請求の範囲】
【請求項１】
ディスク状記録媒体と、
前記ディスク状記録媒体に対するキャッシュとなるキャッシュメモリと、
前記キャッシュメモリよりも情報の書き込み及び読み出し速度が遅く、前記ディスク状記録媒体に対するキャッシュとなる不揮発性メモリと、
前記ディスク状記録媒体、前記キャッシュメモリ及び前記不揮発性メモリと外部との相互間での情報転送をそれぞれ制御すること、前記ディスク状記録媒体、前記キャッシュメモリ及び前記不揮発性メモリの相互間での情報転送を制御すること、前記ディスク状記録媒体に発生した不良領域に対する代替領域を前記不揮発性メモリに設定するように制御することを行なう制御手段とを具備することを特徴とする情報記録装置。
【請求項２】
前記制御手段は、外部から指定されたアドレスで示される前記ディスク状記録媒体上の領域が不良領域である場合、その指定されたアドレスに前記不揮発性メモリの領域を割り当てて代替領域を設定することを特徴とする請求項１記載の情報記録装置。
【請求項３】
前記制御手段は、前記ディスク状記録媒体上の不良領域の位置を示すアドレスと、そのアドレスで割り当てられた前記不揮発性メモリの代替領域が、該不揮発性メモリから除去不可であることを示す属性情報とを対応させた管理テーブルを作成することを特徴とする請求項２記載の情報記録装置。
【請求項４】
前記制御手段は、ホストから、前記ディスク状記録媒体より情報を読み出すアドレスを指定するとともに、そのアドレスに対応して割り当てられる前記不揮発性メモリの領域に、前記ディスク状記録媒体から読み出した情報を書き込むことを要求するコマンドが入力された際に、指定された前記アドレスで示される前記ディスク状記録媒体上の領域に対して読み出しが所定の回数では正常に終了せず所定の回数を超えたリトライを要して読み出しが完了する事態が発生し、前記ディスク状記録媒体上の当該領域を不良領域として新たに登録するような場合において、その代替領域を前記不揮発性メモリに割り当て、さらに前記不揮発性メモリを管理する管理テーブル上に前記代替領域が前記不揮発性メモリから除去不可であることを示す属性情報とピンドの属性情報とを付加することを特徴とする請求項１記載の情報記録装置。
【請求項５】
前記制御手段は、ホストから前記ディスク状記録媒体に対して情報の読み出しを要求するコマンドが発行された際に、当該コマンドで指定されたアドレスで示される前記ディスク状記録媒体上の領域に対して読み出しが所定の回数では正常に終了せず所定の回数を超えたリトライを要して読み出しが完了する事態が発生し、前記ディスク状記録媒体上の当該領域を不良領域として新たに登録するような場合において、その代替領域を前記不揮発性メモリに割り当て、さらに前記不揮発性メモリを管理する管理テーブル上に前記代替領域が前記不揮発性メモリから除去不可であることを示す属性情報を付加するとともに、指定された前記アドレスのうちピンドの属性情報が付加されていないアドレスに対してアンピンドの属性情報を付加することを特徴とする請求項１記載の情報記録装置。
【請求項６】
前記制御手段は、ホストから前記ディスク状記録媒体に対して情報の書き込みを要求するコマンドが発行され、当該コマンドで指定されたアドレスの全部または一部について前記ディスク状記録媒体に書き込みを行なうという判断を下した際に、指定された前記アドレスで示される前記ディスク状記録媒体上の領域に対して書き込みが正常に終了しない事態が発生し、前記ディスク状記録媒体の書き込みが失敗した当該領域を不良領域として新たに登録する際に、書き込みが失敗したアドレスに対して前記不揮発性メモリの領域を代替領域として割り当て、情報を、前記キャッシュメモリから前記不揮発性メモリ上の代替領域に書き込み、さらに前記不揮発性メモリを管理する管理テーブル上に前記代替領域が前記不揮発性メモリから除去不可であることを示す属性情報とアンピンドの属性情報を付加することを特徴とする請求項１記載の情報記録装置。
【請求項７】
前記制御手段は、前記不揮発性メモリ上に領域を確保する必要が生じた際に、アンピンドの領域のうち除去不可属性のついていないものの全部または一部を前記ディスク状記録媒体に書き戻す場合、前記ディスク状記録媒体に対して書き込みが正常に終了しない事態が発生し、前記ディスク状記録媒体の当該領域を不良領域として新たに登録するとき、前記不揮発性メモリ上の当該情報記録領域を代替領域として前記不揮発性メモリ上に残し、さらに前記不揮発性メモリを管理する管理テーブル上に前記代替領域が前記不揮発性メモリから除去不可であることを示す属性情報を付加することを特徴とする請求項１記載の情報記録装置。
【請求項８】
前記制御手段は、外部から前記ディスク状記録媒体上の不良領域を含む領域に対応するアドレスを指定して、前記ディスク状記録媒体から情報を読み出すことを要求するコマンドが入力されたとき、前記ディスク状記録媒体の不良領域以外の領域から情報を読み出して前記キャッシュメモリに格納するとともに、前記ディスク状記録媒体の不良領域に対する前記不揮発性メモリの代替領域から情報を読み出して前記キャッシュメモリに格納し、該キャッシュメモリに格納された情報を前記アドレスに対応した順序で外部に出力させるように制御することを特徴とする請求項１記載の情報記録装置。
【請求項９】
ディスク状記録媒体と、前記ディスク状記録媒体に対するキャッシュとなるキャッシュメモリと、前記キャッシュメモリよりも情報の書き込み及び読み出し速度が遅く、前記ディスク状記録媒体に対するキャッシュとなる不揮発性メモリとを備えた情報記録装置を制御する方法であって、
前記ディスク状記録媒体、前記キャッシュメモリ及び前記不揮発性メモリと外部との相互間での情報転送をそれぞれ制御する工程と、
前記ディスク状記録媒体、前記キャッシュメモリ及び前記不揮発性メモリの相互間での情報転送を制御する工程と、
前記ディスク状記録媒体に発生した不良領域に対する代替領域を前記不揮発性メモリに設定するように制御する工程とを具備することを特徴とする情報記録装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばハードディスク等のような大容量のディスク状記録媒体に対し、半導体メモリをキャッシャとして情報の書き込み及び読み出しを行なう情報記録装置及びその制御方法に関する。
【背景技術】
【０００２】
周知のように、ハードディスクは、大容量で信頼性の高い情報記録媒体であり、近年、例えばコンピュータデータ、映像データ、音声データ等の記録用として多方面に普及している。また、ハードディスクは、その形状も携帯用電子機器に搭載されるほど小型化されてきている。
【０００３】
このため、ハードディスクを用いた小型化志向の情報記録装置においては、情報の高速書き込み及び高速読み出しが可能な半導体メモリを、ハードディスクに対するキャッシュメモリとして使用することによって、情報の書き込み及び読み出しに要する速度を高めるようにしている。
【０００４】
すなわち、この種の情報記録装置は、外部のホスト装置に対しての情報の書き込み及び読み出しを、キャッシュメモリを介して行なわせ、ハードディスクに対してはキャッシュメモリとの間で情報転送を行なわせることにより、外部から見た情報の書き込み及び読み出し動作を高速化させるようにしている。
【０００５】
そして、現在では、上記キャッシュメモリに加えて、不揮発性メモリをハードディスクに対するキャッシュとして備えることにより、ハードディスクの駆動回数、つまり、ハードディスクに対する情報の書き込み及び読み出し回数を削減して、電池電力の節約を図ることも考えられている。このような情報記録装置は、ＮＶ（non volatile）−cache対応ＨＤＤ（hard disk drive）と称されて、規格化されている。
【０００６】
ところで、情報記録媒体としてハードディスクを備えた情報記録装置にあっては、ハードディスク上の特定の領域（セクタ）に欠陥が発生して、情報の書き込み及び読み出しに対する信頼性が著しく低くなった場合に、その不良となった領域をハードディスク上の他の領域で代替する代替処理を施すようにしている。
【０００７】
しかしながら、このような代替処理では、ハードディスクに対して情報の書き込みまたは読み出しを行なう際に、磁気ヘッドを不良領域に対応する代替領域に移動させる必要が生じるため、その分、情報の書き込みまたは読み出しに時間を要してしまうことになる。
【０００８】
特許文献１には、ホストコンピュータからの書き込み及び読み出し要求のない期間に、バッテリバックアップＲＡＭ（random access memory）に書き込まれているデータをディスクに書き込む際、ディスクへの書き込みに失敗したデータの格納されているＲＡＭ上の領域を、代替領域とするようにした構成が開示されている。
【特許文献１】特開平２−１０９１５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、この発明は上記事情を考慮してなされたもので、ディスク状記録媒体に発生した不良領域に対して代替領域を設定して対処する際に、情報の書き込み及び読み出し動作を高速でかつ高い信頼性を持って実現することができるようにした情報記録装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係る情報記録装置は、ディスク状記録媒体と；ディスク状記録媒体に対するキャッシュとなるキャッシュメモリと；キャッシュメモリよりも情報の書き込み及び読み出し速度が遅く、ディスク状記録媒体に対するキャッシュとなる不揮発性メモリと；ディスク状記録媒体、キャッシュメモリ及び不揮発性メモリと外部との相互間での情報転送をそれぞれ制御すること、ディスク状記録媒体、キャッシュメモリ及び不揮発性メモリの相互間での情報転送を制御すること、ディスク状記録媒体に発生した不良領域に対する代替領域を不揮発性メモリに設定するように制御することを行なう制御手段とを備えるようにしたものである。
【００１１】
また、この発明に係る情報記録装置の制御方法は、ディスク状記録媒体と、ディスク状記録媒体に対するキャッシュとなるキャッシュメモリと、キャッシュメモリよりも情報の書き込み及び読み出し速度が遅く、ディスク状記録媒体に対するキャッシュとなる不揮発性メモリとを備えた情報記録装置を制御する方法を対象としている。そして、ディスク状記録媒体、キャッシュメモリ及び不揮発性メモリと外部との相互間での情報転送をそれぞれ制御する工程と、ディスク状記録媒体、キャッシュメモリ及び不揮発性メモリの相互間での情報転送を制御する工程と、ディスク状記録媒体に発生した不良領域に対する代替領域を不揮発性メモリに設定するように制御する工程とを備えるようにしたものである。
【発明の効果】
【００１２】
上記した発明によれば、ディスク状記録媒体に発生した不良領域に対する代替領域を不揮発性メモリに設定するようにしたので、ディスク状記録媒体に発生した不良領域に対して代替領域を設定して対処する際に、情報の書き込み及び読み出し動作を高速でかつ高い信頼性を持って実現することができるようにすることが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、この発明の実施の形態について図面を参照して詳細に説明する。図１は、この実施の形態で説明する情報記録装置１１の概略を示している。ここで説明する情報記録装置１１としては、Non Volatile Cache Command Proposal for ATA8−ACS Revision5等で規格化されたＮＶ−cache対応ＨＤＤを対象としている。
【００１４】
すなわち、この情報記録装置１１は、各種の回路ブロックが内蔵された１チップのＬＳＩ（large scale integrated）回路１２を備えている。そして、このＬＳＩ回路１２に対して、大容量のディスク状記録媒体であるハードディスク１３、ＳＤＲＡＭ（synchronous dynamic random access memory）１４、フラッシュメモリ１５等が接続されている。
【００１５】
このうち、ＳＤＲＡＭ１４は、バッファとして機能し、ハードディスク１３に対するキャッシュメモリとなっている。なお、ＳＤＲＡＭに限らず、例えばＳ（static）ＲＡＭ等を使用することも可能である。また、フラッシュメモリ１５は、ハードディスク１３に対するキャッシュとして機能する不揮発性メモリ（ＮＶ−cache）である。
【００１６】
ここで、上記ＬＳＩ回路１２には、情報記録装置１１が各種の処理動作を実行する場合に、その統括的な制御を行なうための制御部となるコントローラ１６が内蔵されている。そして、このＬＳＩ回路１２には、コントローラ１６とハードディスク１３とを情報転送可能に接続するディスクＩ／Ｆ（interface）１７が内蔵されている。
【００１７】
また、このＬＳＩ回路１２には、コントローラ１６とＳＤＲＡＭ１４とを情報転送可能に接続するＳＤＲＡＭ  Ｉ／Ｆ１８、コントローラ１６とフラッシュメモリ１５とを情報転送可能に接続するフラッシュメモリＩ／Ｆ１９、コントローラ１６と外部のホスト装置２０とを情報転送可能に接続するホストＩ／Ｆ２１等が内蔵されている。
【００１８】
上記ホスト装置２０は、例えばＰＣ（personal computer）等である。このホスト装置２０は、例えば所定のアプリケーションソフトウエアを実行する際に、情報記録装置１１を利用して情報の書き込み及び読み出しを実行するとともに、最終的に得られた情報の保存先としても情報記録装置１１を利用することができる。
【００１９】
このように情報記録装置１１に対して情報の書き込みや読み出しを行なう場合、ホスト装置２０は、情報記録装置１１に対して情報の書き込みを要求するコマンドや、情報の読み出しを要求するコマンドを発生する。これらのコマンドは、ホストＩ／Ｆ２１を介してコントローラ１６に供給され解析される。
【００２０】
これにより、コントローラ１６は、ハードディスク１３、ＳＤＲＡＭ１４及びフラッシュメモリ１５等に対して、ホスト装置２０から供給された情報の書き込みや、ホスト装置２０に供給する情報の読み出しを行なうように制御を施すことができる。この場合、コントローラ１６は、ハードディスク１３、ＳＤＲＡＭ１４及びフラッシュメモリ１５の相互間における情報転送も可能としている。
【００２１】
具体的に言えば、ホスト装置２０から供給された情報をハードディスク１３に書き込む場合、コントローラ１６は、情報の書き込み順序として、以下に示す５つの経路（Ｗ１）〜（Ｗ５）を選択することができる。
【００２２】
（Ｗ１）  ホストＩ／Ｆ２１→コントローラ１６→ディスクＩ／Ｆ１７→ハードディスク１３。
【００２３】
（Ｗ２）  ホストＩ／Ｆ２１→コントローラ１６→ＳＤＲＡＭ  Ｉ／Ｆ１８→ＳＤＲＡＭ１４→ＳＤＲＡＭ  Ｉ／Ｆ１８→コントローラ１６→ディスクＩ／Ｆ１７→ハードディスク１３。
【００２４】
（Ｗ３）  ホストＩ／Ｆ２１→コントローラ１６→フラッシュメモリＩ／Ｆ１９→フラッシュメモリ１５→フラッシュメモリＩ／Ｆ１９→コントローラ１６→ディスクＩ／Ｆ１７→ハードディスク１３。
【００２５】
（Ｗ４）  ホストＩ／Ｆ２１→コントローラ１６→ＳＤＲＡＭ  Ｉ／Ｆ１８→ＳＤＲＡＭ１４→ＳＤＲＡＭ  Ｉ／Ｆ１８→コントローラ１６→フラッシュメモリＩ／Ｆ１９→フラッシュメモリ１５→フラッシュメモリＩ／Ｆ１９→コントローラ１６→ディスクＩ／Ｆ１７→ハードディスク１３。
【００２６】
（Ｗ５）  ホストＩ／Ｆ２１→コントローラ１６→フラッシュメモリＩ／Ｆ１９→フラッシュメモリ１５→フラッシュメモリＩ／Ｆ１９→コントローラ１６→ＳＤＲＡＭ  Ｉ／Ｆ１８→ＳＤＲＡＭ１４→ＳＤＲＡＭ  Ｉ／Ｆ１８→コントローラ１６→ディスクＩ／Ｆ１７→ハードディスク１３。
【００２７】
また、ハードディスク１３からホスト装置２０に情報を読み出す場合、コントローラ１６は、情報の読み出し順序として、以下に示す５つの経路（Ｒ１）〜（Ｒ５）を選択することができる。
【００２８】
（Ｒ１）  ディスクＩ／Ｆ１７→コントローラ１６→ホストＩ／Ｆ２１→ホスト装置２０。
【００２９】
（Ｒ２）  ディスクＩ／Ｆ１７→コントローラ１６→ＳＤＲＡＭ  Ｉ／Ｆ１８→ＳＤＲＡＭ１４→ＳＤＲＡＭ  Ｉ／Ｆ１８→コントローラ１６→ホストＩ／Ｆ２１→ホスト装置２０。
【００３０】
（Ｒ３）  ディスクＩ／Ｆ１７→コントローラ１６→フラッシュメモリＩ／Ｆ１９→フラッシュメモリ１５→フラッシュメモリＩ／Ｆ１９→コントローラ１６→ホストＩ／Ｆ２１→ホスト装置２０。
【００３１】
（Ｒ４）  ディスクＩ／Ｆ１７→コントローラ１６→ＳＤＲＡＭ  Ｉ／Ｆ１８→ＳＤＲＡＭ１４→ＳＤＲＡＭ  Ｉ／Ｆ１８→コントローラ１６→フラッシュメモリＩ／Ｆ１９→フラッシュメモリ１５→フラッシュメモリＩ／Ｆ１９→コントローラ１６→ホストＩ／Ｆ２１→ホスト装置２０。
【００３２】
（Ｒ５）  ディスクＩ／Ｆ１７→コントローラ１６→フラッシュメモリＩ／Ｆ１９→フラッシュメモリ１５→フラッシュメモリＩ／Ｆ１９→コントローラ１６→ＳＤＲＡＭ  Ｉ／Ｆ１８→ＳＤＲＡＭ１４→ＳＤＲＡＭ  Ｉ／Ｆ１８→コントローラ１６→ホストＩ／Ｆ２１→ホスト装置２０。
【００３３】
上記した情報の書き込み順序及び読み出し順序は、例えば、ホスト装置２０から供給された書き込み要求コマンドや読み出し要求コマンドにおける指示内容、情報の格納場所、ＳＤＲＡＭ１４やフラッシュメモリ１５の空き容量等に応じて、コントローラ１６が判断して決定するものである。
【００３４】
なお、上記フラッシュメモリ１５としては、一般的に、ナンドフラッシュメモリが広く採用される傾向にある。そして、このナンドフラッシュメモリが採用された場合、フラッシュメモリ１５に対する情報の書き込み及び読み出し速度は、ＳＤＲＡＭ１４に対する情報の書き込み及び読み出し速度よりも遅くなることが多い。
【００３５】
ここで、上記した規格により設定されている、情報記録装置１１の実行可能な各種のコマンドのうち、この実施の形態を説明する上で必要となるものについて説明する。第１のコマンドは、ハードディスク１３上の論理ブロックアドレス（ＬＢＡ：logical block address）のうち、情報をフラッシュメモリ１５に書き込むＬＢＡを指定するものである。
【００３６】
また、第２のコマンドは、第１のコマンドと同様に、フラッシュメモリ１５に書き込むＬＢＡを指定するものであるが、それと同時に、ハードディスク１３から当該ＬＢＡに記録されている情報を読み出し、その読み出した情報をフラッシュメモリ１５に書き込むことを要求するものである。
【００３７】
上記した第１及び第２のコマンドは、上記の規格ではAdd LBA(s) to NV Cache Pinned SetのＰＩ＝０及びＰＩ＝１に対応しており、フラッシュメモリ１５に情報を格納することをホスト装置２０から指示されたＬＢＡには、ピンド（pinned）と称される属性情報が付される。
【００３８】
第３のコマンドは、ハードディスク１３上のＬＢＡを指定して情報の書き込みを要求するものである。この第３のコマンドがホスト装置２０から発生された場合、コントローラ１６は、書き込み要求されたＬＢＡにピンドの属性情報が対応付けられているか否かを調べる。そして、対応付けられていた場合には、フラッシュメモリ１５の中の書き込み要求されたＬＢＡに対応する領域に書き込みを実行する。
【００３９】
これに対し、書き込み要求されたＬＢＡにピンドの属性情報が対応付けられていない場合、コントローラ１６は、ＳＤＲＡＭ１４またはフラッシュメモリ１５の中の指定されたＬＢＡに対応する領域に情報を書き込むか、ハードディスク１３の指定されたＬＢＡに情報を書き込むかを、自己の判断で決定し実行する。
【００４０】
第４のコマンドは、ハードディスク１３上のＬＢＡを指定して情報の読み出しを要求するものである。この第４のコマンドがホスト装置２０から発生された場合、コントローラ１６は、指定されたＬＢＡに対応する領域がフラッシュメモリ１５上に既に割り当てられており、その領域にハードディスク１３よりも新しい情報が保存されていると判断される場合、フラッシュメモリ１５から該当情報を読み出す必要がある。
【００４１】
これに対し、ハードディスク１３とフラッシュメモリ１５とに同じ情報がある場合、コントローラ１６は、フラッシュメモリ１５の中の読み出し要求されたＬＢＡに対応する領域から該当情報を読み出しても良いし、ハードディスク１３の指定されたＬＢＡから情報を読み出しても良いものである。
【００４２】
また、指定されたＬＢＡに対応する領域がフラッシュメモリ１５上に既に割り当てられているが、ハードディスク１３の方に最新のデータが存在している場合、コントローラ１６は、ハードディスク１３の指定されたＬＢＡから該当情報を読み出す必要がある。そして、ハードディスク１３から情報を読み出した場合には、その情報をＳＤＲＡＭ１４またはフラッシュメモリ１５にキャッシュするか否かもコントローラ１６が判断する。
【００４３】
上記した第３及び第４のコマンドのように、情報の書き込みまたは読み出しが要求されたＬＢＡの中の、ピンドの属性情報が対応付けられていないＬＢＡのうち、フラッシュメモリ１５上に領域が割り当てられて、その割り当てられたフラッシュメモリ１５上の領域に情報が書き込まれたＬＢＡには、アンピンド（unpinned）と称される属性情報が付される。
【００４４】
そして、ピンドの属性情報が付されたＬＢＡはピンドＬＢＡと称され、そのピンドＬＢＡに対応するフラッシュメモリ１５上の領域はピンド領域と称される。また、アンピンドの属性情報が付されたＬＢＡはアンピンドＬＢＡと称され、そのアンピンドＬＢＡに対応するフラッシュメモリ１５上の領域はアンピンド領域と称される。このため、フラッシュメモリ１５上には、図２に示すように、ピンド領域１５ａとアンピンド領域１５ｂとその他の領域１５ｃとが形成されることになる。
【００４５】
第５のコマンドは、フラッシュメモリ１５内に、指定したサイズ分だけの空き領域を作成することを要求するもので、上記した規格ではFlush NV Cacheに対応している。この第５のコマンドがホスト装置２０から発生された場合、コントローラ１６は、フラッシュメモリ１５内の現在の空き領域のサイズと、要求された空き領域のサイズとを比較する。
【００４６】
そして、フラッシュメモリ１５内の現在の空き領域のサイズが、要求された空き領域のサイズよりも小さい場合、コントローラ１６は、フラッシュメモリ１５の中のアンピンドの属性情報が付されたＬＢＡに対応する領域（アンピンド領域１５ｂ）の中から、指定されたサイズ分またはそれ以上の情報をハードディスク１３に移動させることにより、指定されたサイズ分の空き領域をフラッシュメモリ１５内に確保する。
【００４７】
この場合、フラッシュメモリ１５の中の、アンピンドの属性情報が付されたＬＢＡに対応する領域（アンピンド領域１５ｂ）の中で、どの領域の情報がハードディスク１３に移動されるのか、すなわち、フラッシュメモリ１５のどの領域に空き領域が形成されるのかは、コントローラ１６の判断により決定される。
【００４８】
第６のコマンドは、ＬＢＡを指定してピンドの属性情報を解除する（ＬＢＡの属性情報をピンドでなくする）ことを要求するもので、上記した規格では、Remove LBA(s) From NV Cache Pinned Setに対応している。この第６のコマンドがホスト装置２０から発生された場合、コントローラ１６は、フラッシュメモリ１５の中の、第６のコマンドで指定されたＬＢＡに対応する領域に格納されている情報を、ハードディスク１３に転送して書き込ませるようにする必要があるが、そのタイミングについては、上記した規格では規定されていない。
【００４９】
これらの各種コマンドに基づいて、上記した順序（Ｗ１）〜（Ｗ５）及び（Ｒ１）〜（Ｒ５）での、ハードディスク１３に対する情報の書き込み及び読み出しが実行されることになる。
【００５０】
ところで、ハードディスク１３は、製造時の状況や経年変化等により、特定の領域（セクタ）に欠陥が発生して、情報の書き込み及び読み出しに対する信頼性が著しく低下してしまう場合がある。このような場合、現状では、ハードディスク１３上に発生した不良領域を、ハードディスク１３上の他の領域で代替することにより対処している。
【００５１】
しかしながら、このような代替処理は、ハードディスク１３に対して情報の書き込みや読み出しを行なうための磁気ヘッド（図示せず）を、本来の書き込みまたは読み出しを行なっている位置から、不良領域に対応する代替領域に移動させる作業が必要であることから、情報の書き込みまたは読み出し速度の高速化を損なう結果となっている。
【００５２】
そこで、この実施の形態では、ハードディスク１３上に発生した不良領域に対する代替領域を、フラッシュメモリ１５内に設定することにより、磁気ヘッドのゾーン移動やハードディスク１３の回転速度を制御し直す作業等を無くして、情報の書き込み及び読み出し動作を高速でかつ高い信頼性を持って実現することができるようにしている。
【００５３】
この場合、フラッシュメモリ１５内において代替領域として設定された領域は、ハードディスク１３上のＬＢＡとして管理され、そのＬＢＡには、不用意に除去されることを防止するために除去不可を示す属性情報が付加される。この属性情報は、上記したピンド及びアンピンドを示す属性情報とともに、ＬＢＡを管理するための管理テーブルに書き込まれる。
【００５４】
図３は、ＬＢＡにそれぞれ付加される属性情報を管理するための管理テーブルの一例を示している。この管理テーブルは、例えば上記ＳＤＲＡＭ１２またはフラッシュメモリ１５に格納されているものとする。すなわち、この管理テーブルには、先頭ＬＢＡと先頭ＬＢＡからのサイズと属性情報とが対応付けられている。
【００５５】
そして、属性情報には、そのＬＢＡに現在ピンドの属性情報が付加されているかアンピンドの属性情報が付加されているかを示すピンド／アンピンドの項目と、そのＬＢＡが現在代替領域として使用されていて除去不可であるか代替領域として使用されておらず除去可であるかを示す除去不可／除去可の項目とが含まれている。
【００５６】
図４は、上記コントローラ１６の一例を示している。このコントローラ１６は、ホスト装置２０から供給されたコマンドをデコード処理し解析するコマンド解析部１６ａを有する。このコマンド解析部１６ａの解析結果により、アーキテクチャメモリ１６ｂ内のソフトウエアが特定され、シーケンスコントローラ１６ｃに動作手順が設定される。
【００５７】
このシーケンスコントローラ１６ｃは、Ｉ／Ｆ及びバスコントローラ１６ｄを介して、情報の流れを制御する。例えば、情報の書き込みまたは読み出しが行なわれるときは、メディア選択部１６ｅがハードディスク１３、ＳＤＲＡＭ１４またはフラッシュメモリ１５を特定するとともに、アドレス制御部１６ｆが書き込みアドレスまたは読み出しアドレスを特定する。
【００５８】
そして、情報の書き込み時には、書き込み処理部１６ｇが書き込み情報の転送処理等を実行する。また、情報の読み出し時には、読み出し処理部１６ｈが読み出し情報の転送処理等を実行する。
【００５９】
さらに、コントローラ１６には、消去処理部１６ｉが設けられている。この消去処理部１６ｉは、ＳＤＲＡＭ１４やフラッシュメモリ１５に記録された情報の消去処理を実行する。なお、この消去処理部１６ｉは、ハードディスク１３に記録された情報の消去処理も実行することができる。
【００６０】
また、コントローラ１６には、アドレス管理部１６ｊが設けられている。このアドレス管理部１６ｊは、ＳＤＲＡＭ１４、フラッシュメモリ１５及びハードディスク１３の記録済み領域や未記録領域等のアドレスを一括して管理している。
【００６１】
さらに、コントローラ１６には、状態判定部１６ｋが設けられている。この状態判定部１６ｋは、ハードディスク１３の回転状態や、ハードディスク１３、ＳＤＲＡＭ１４及びフラッシュメモリ１５の残り容量の状態等を監視している。
【００６２】
また、コントローラ１６には、代替処理部１６ｌが設けられている。この代替処理部１６ｌは、ハードディスク１３上に発生した不良領域に対する代替領域を、フラッシュメモリ１５内に設定する代替処理を管理するもので、上記した管理テーブルの書き込みや書き替え等も制御している。
【００６３】
ここで、図５〜図８は、それぞれ、ハードディスク１３上に不良領域が発生し、その代替領域をフラッシュメモリ１５内に設定する処理動作の例を示している。まず、図５は、処理が開始（ステップＳ５ａ）され、ステップＳ５ｂで、ホスト装置２０から上記第２のコマンドに基づいてハードディスク１３からの情報の読み出しが要求された場合を示している。
【００６４】
この場合、コントローラ１６は、ステップＳ５ｃで、第２のコマンドにより指定されたハードディスク１３上のＬＢＡから、予め設定された所定のリトライ回数の範囲内で情報が読み出せたか否かを判別する。
【００６５】
そして、読み出せたと判断された場合（ＹＥＳ）、コントローラ１６は、ステップＳ５ｄで、ハードディスク１３から読み出した情報を、第２のコマンドによって指定されたＬＢＡに対応させて割り当てたフラッシュメモリ１５上の領域に書き込み、その指定されたＬＢＡにピンド及び除去可の属性情報を付加して、処理を終了（ステップ５ｆ）する。
【００６６】
また、上記ステップＳ５ｃで、ハードディスク１３から所定のリトライ回数の範囲内で情報が読み出せなかったと判断された場合（ＮＯ）、コントローラ１６は、ステップＳ５ｅで、上記所定のリトライ回数よりも多くリトライを行なったり、例えば補間処理等の予め設定された他の処理を行ったりして、第２のコマンドで指定されたハードディスク１３上のＬＢＡの情報を取得し、その取得した情報を、第２のコマンドによって指定されたＬＢＡに対応させて割り当てたフラッシュメモリ１５上の領域に書き込み、その指定されたＬＢＡにピンド及び除去不可の属性情報を付加して、処理を終了（ステップ５ｆ）する。
【００６７】
次に、図６は、処理が開始（ステップＳ６ａ）され、ステップＳ６ｂで、ホスト装置２０から上記第４のコマンドに基づいてハードディスク１３からの情報の読み出しが要求された場合を示している。
【００６８】
この場合、コントローラ１６は、ステップＳ６ｃで、第４のコマンドにより指定されたハードディスク１３上のＬＢＡから、予め設定された所定のリトライ回数の範囲内で情報が読み出せたか否かを判別し、読み出せたと判断された場合（ＹＥＳ）、処理を終了（ステップ６ｅ）する。
【００６９】
なお、コントローラ１６が、ハードディスク１３から読み出した情報を、第４のコマンドによって指定されたＬＢＡに対応させて割り当てたフラッシュメモリ１５上の領域に書き込むように制御する場合には、その指定されたＬＢＡに除去可の属性情報を付加するとともに、その指定されたＬＢＡのうちピンドの属性情報が付加されていないＬＢＡにアンピンドの属性情報を付加して、処理を終了（ステップ６ｅ）する。
【００７０】
また、上記ステップＳ６ｃで、ハードディスク１３から所定のリトライ回数の範囲内で情報が読み出せなかったと判断された場合（ＮＯ）、コントローラ１６は、ステップＳ６ｄで、上記所定のリトライ回数よりも多くリトライを行なったり、例えば補間処理等の予め設定された他の処理を行ったりして、第４のコマンドで指定されたハードディスク１３上のＬＢＡの情報を取得する。
【００７１】
その後、コントローラ１６は、取得した情報を、第４のコマンドによって指定されたＬＢＡに対応させて割り当てたフラッシュメモリ１５上の領域に書き込み、その指定されたＬＢＡに除去不可の属性情報を付加するとともに、その指定されたＬＢＡのうちピンドの属性情報が付加されていないＬＢＡにアンピンドの属性情報を付加して、処理を終了（ステップ６ｅ）する。
【００７２】
次に、図７は、処理が開始（ステップＳ７ａ）され、ステップＳ７ｂで、上記ＳＤＲＡＭ１４からハードディスク１３への情報の書き込みが要求された場合を示している。この書き込み要求は、例えば、上記した第３のコマンドにおいて、コントローラ１６が、ホスト装置２０からの情報を、ＳＤＲＡＭ１４を介してハードディスク１３に書き込むように制御した場合に実現される。
【００７３】
この場合、コントローラ１６は、ステップＳ７ｃで、ホスト装置２０により指定されたハードディスク１３上のＬＢＡに、予め設定された所定のリトライ回数の範囲内で情報が書き込めたか否かを判別し、書き込めたと判断された場合（ＹＥＳ）、処理を終了（ステップ７ｅ）する。
【００７４】
なお、コントローラ１６が、ハードディスク１３に書き込んだ情報を、ホスト装置２０によって指定されたＬＢＡに対応させて割り当てたフラッシュメモリ１５上の領域にも書き込むように制御する場合には、その指定されたＬＢＡに除去可の属性情報を付加するとともに、その指定されたＬＢＡのうちピンドの属性情報が付加されていないＬＢＡにアンピンドの属性情報を付加して、処理を終了（ステップ７ｅ）する。
【００７５】
また、上記ステップＳ７ｃで、ハードディスク１３に所定のリトライ回数の範囲内で情報を書き込めなかったと判断された場合（ＮＯ）、コントローラ１６は、ステップＳ７ｄで、ハードディスク１３に書き込めなかった情報を、ホスト装置２０によって指定されたＬＢＡに対応させて割り当てたフラッシュメモリ１５上の領域に書き込む。
【００７６】
その後、コントローラ１６は、ホスト装置２０によって指定されたＬＢＡに除去不可の属性情報を付加するとともに、その指定されたＬＢＡのうちピンドの属性情報が付加されていないＬＢＡにアンピンドの属性情報を付加して、処理を終了（ステップ７ｅ）する。
【００７７】
次に、図８は、処理が開始（ステップＳ８ａ）され、ステップＳ８ｂで、上記フラッシュメモリ１５からハードディスク１３への情報の書き込みが要求された場合を示している。この書き込み要求は、例えば、上記した第１のコマンドの発生下における第３のコマンドの発生状態において、コントローラ１６が、ホスト装置２０からの情報を、ＳＤＲＡＭ１４及びフラッシュメモリ１５を介してハードディスク１３に書き込むように制御した場合に実現される。
【００７８】
この場合、コントローラ１６は、ステップＳ８ｃで、ホスト装置２０により指定されたハードディスク１３上のＬＢＡに、予め設定された所定のリトライ回数の範囲内で情報が書き込めたか否かを判別する。
【００７９】
そして、書き込めたと判断された場合（ＹＥＳ）、コントローラ１６は、ステップＳ８ｄで、ハードディスク１３に書き込んだ情報が格納されているフラッシュメモリ１５上の領域に対応するＬＢＡに、ピンド及び除去可の属性情報を付加して、処理を終了（ステップ８ｆ）する。
【００８０】
また、上記ステップＳ８ｃで、ハードディスク１３に所定のリトライ回数の範囲内で情報を書き込めなかったと判断された場合（ＮＯ）、コントローラ１６は、ステップＳ８ｅで、ハードディスク１３に書き込めなかった情報が格納されているフラッシュメモリ１５上の領域に対応するＬＢＡに、ピンド及び除去不可の属性情報を付加して、処理を終了（ステップ８ｆ）する。
【００８１】
上記した実施の形態によれば、ハードディスク１３上に発生した不良領域に対する代替領域を、フラッシュメモリ１５内に設定するようにしたので、ハードディスク１３に対する情報の書き込み及び読み出し時に、磁気ヘッドの代替領域への移動やハードディスク１３の回転速度を制御し直す作業等が不要となり、情報の書き込み及び読み出し動作を高速でかつ高い信頼性を持って実現することができるようになる。
【００８２】
また、ハードディスク１３上の不良領域のＬＢＡ、つまり、フラッシュメモリ１５内に代替された領域のＬＢＡは、ＬＢＡの管理テーブル上で除去不可の属性情報を付加するようにしたので、不用意に除去されて代替処理が無効になってしまうことを確実に防止することができる。
【００８３】
さらに、ホスト装置２０からハードディスク１３に対する情報の書き込みや読み出し要求が発生された場合に、ハードディスク１３の不良領域をフラッシュメモリ１５で代替していることによる特殊な処理が必要になることなく、通常のＮＶ−cache対応ＨＤＤの制御ルーチンをそのまま用いて情報の書き込みや読み出しを行なうことが可能となる。
【００８４】
具体的に言えば、例えば、ハードディスク１３上のＬＢＡ４００が不良領域となり、フラッシュメモリ１５に代替されている状態で、ホスト装置２０からＬＢＡ３９０〜４１０の範囲の読み出し要求が発生されたとする。
【００８５】
すると、コントローラ１６は、管理テーブルから、ＬＢＡ４００の情報がフラッシュメモリ１５に存在していることがわかる。また、ＬＢＡ４００の情報以外は、フラッシュメモリ１５上に存在していないこともわかる。
【００８６】
このため、コントローラ１６は、ハードディスク１３に対してＬＢＡ３９０〜３９９及び４０１〜４１０までの領域の情報読み出しを行ない、読み出した情報をＳＤＲＡＭ１４に格納するように制御する。その後、コントローラ１６は、フラッシュメモリ１５からＬＢＡ４００の情報を読み出し、読み出した情報をＳＤＲＡＭ１４に格納するように制御する。そして、コントローラ１６は、ＳＤＲＡＭ１４に格納された情報を、ＬＢＡ３９０〜４１０の順序で連結し、ホスト装置２０に転送するように制御する。
【００８７】
このような読み出しの制御ルーチンは、ＬＢＡ４００が代替されている領域であるか否かにかかわらず、管理テーブルを参照して、ＬＢＡ４００の情報がフラッシュメモリ１５に存在していることがわかれば実行される通常の読み出しルーチンである。
【００８８】
さらに、管理テーブルにフラッシュメモリ１５上の情報が最新であることを示す属性情報を付加するようにすれば、情報の読み出し処理を高速化する際により効果的となる。
【００８９】
なお、ハードディスク１３上の不良領域をフラッシュメモリ１５で代替する際には、管理テーブルについて次のような注意が必要となる。まず、アンピンドで除去不可の属性情報が付加されているＬＢＡに対しては、上記した第５のコマンドが発生されても、そのＬＢＡに対応するフラッシュメモリ１５の情報をハードディスク１３に移動させて空き領域としないように、除去対象から外すことが必要となる。
【００９０】
また、ピンドで除去不可の属性情報が付加されているＬＢＡに対しては、上記した第６のコマンドが発生された場合、属性情報をアンピンドに変更し、除去不可はそのまま引き継ぐようにする。
【００９１】
さらに、フラッシュメモリ１５上に大量のピンド領域１５ａを確保する等、フラッシュメモリ１５内で大量の領域を必要とする事態が生じた場合には、フラッシュメモリ１５上に代替された情報を、ハードディスク１３上の不良領域以外の領域に代替させるようにすることもできる。この場合、対象となるＬＢＡの属性情報は、除去不可になっていても無視されるか、除去可に書き換えられる。
【００９２】
また、ハードディスク１３に対して、情報の書き込みや読み出しが正常に行なえたか否かを判断するためのしきい値となる予め設定された所定のリトライ回数としては、例えば製造業者毎にハードディスク１３の性能や安全性等を見込んで独自に設定している値である。
【００９３】
なお、この発明は上記した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を種々変形して具体化することができる。また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良いものである。
【図面の簡単な説明】
【００９４】
【図１】この発明の実施の形態を示すもので、情報記録装置の概略を説明するために示すブロック構成図。
【図２】同実施の形態における情報記録装置に備えられたフラッシュメモリ内の記録領域を説明するために示す図。
【図３】同実施の形態における情報記録装置に備えられたフラッシュメモリの管理テーブルの一例を説明するために示す図。
【図４】同実施の形態における情報記録装置に備えられたコントローラの一例を説明するために示すブロック構成図。
【図５】同実施の形態における情報記録装置が行なう不良領域の代替処理動作の第１の例を説明するために示すフローチャート。
【図６】同実施の形態における情報記録装置が行なう不良領域の代替処理動作の第２の例を説明するために示すフローチャート。
【図７】同実施の形態における情報記録装置が行なう不良領域の代替処理動作の第３の例を説明するために示すフローチャート。
【図８】同実施の形態における情報記録装置が行なう不良領域の代替処理動作の第４の例を説明するために示すフローチャート。
【符号の説明】
【００９５】
１１…情報記録装置、１２…ＬＳＩ回路、１３…ハードディスク、１４…ＳＤＲＡＭ、１５…フラッシュメモリ、１６…コントローラ、１７…ディスクＩ／Ｆ、１８…ＳＤＲＡＭ  Ｉ／Ｆ、１９…フラッシュメモリＩ／Ｆ、２０…ホスト装置、２１…ホストＩ／Ｆ。
【図１】
2008243265.tif 000003
【図２】
2008243265.tif 000004
【図３】
2008243265.tif 000005
【図４】
2008243265.tif 000006
【図５】
2008243265.tif 000007
【図６】
2008243265.tif 000008
【図７】
2008243265.tif 000009
【図８】
2008243265.tif 000010