(57)【要約】【課題】性能が高い磁気ディスク装置を提供すること。【解決手段】磁気ディスク装置は、磁気ディスクと、互いに独立に移動せしめられる第１の磁気ヘッドおよび第２の磁気ヘッドと、第１のコントローラチップと、第２のコントローラチップと、第３のメモリと、を備える。第１のコントローラチップは、第１のプロセッサと、第１のメモリと、を備え、第１の磁気ヘッドを制御する。第２のコントローラチップは、第２のプロセッサと、第２のメモリと、を備え、第２の磁気ヘッドを制御する。第３のメモリには、管理情報が格納される。第１のコントローラチップは、第３のメモリに接続されている。第２のコントローラチップは、第１のコントローラチップを介して第３のメモリに接続されている。第２のコントローラチップは、第２のメモリに管理情報をキャッシュする。【選択図】図１
2020155170.tif 000002
【特許請求の範囲】
【請求項１】
磁気ディスクと、
互いに独立に移動せしめられる第１の磁気ヘッドおよび第２の磁気ヘッドと、
第１のプロセッサと、第１のメモリと、を備え、前記第１の磁気ヘッドを介した前記磁気ディスクに対する書き込みおよび読み出しを制御する第１のコントローラチップと、
第２のプロセッサと、第２のメモリと、を備え、前記第２の磁気ヘッドを介した前記磁気ディスクに対する書き込みおよび読み出しを制御する第２のコントローラチップと、
管理情報が格納される第３のメモリと、
を備え、
前記第１のコントローラチップは、前記第３のメモリに接続され、
前記第２のコントローラチップは、前記第１のコントローラチップを介して前記第３のメモリに接続され、
前記第２のコントローラチップは、前記第２のメモリに前記管理情報をキャッシュする、
磁気ディスク装置。
【請求項２】
前記第１のコントローラチップは、前記第１のメモリに前記管理情報をキャッシュしない、
請求項１に記載の磁気ディスク装置。
【請求項３】
前記第１のコントローラチップは、前記第１のメモリに前記第１のプロセッサが実行する第１プログラムコード群をキャッシュし、
前記第２のコントローラチップは、前記第２のメモリに前記第２のプロセッサが実行する前記第１プログラムコード群よりも少ない量の第２プログラムコード群をキャッシュし、前記第２のメモリの記憶領域のうちの残りの領域に前記管理情報をキャッシュする、
請求項１または２に記載の磁気ディスク装置。
【請求項４】
前記第１のコントローラチップは、ホストに接続され、
前記第２のコントローラチップは、前記第１のコントローラチップを介して前記ホストに接続され、
前記第１プログラムコード群は、前記ホストからのコマンドを解釈するためのプログラムコードを含み、
前記第２プログラムコード群は、前記ホストからの前記コマンドを解釈するための前記プログラムコードを含まない、
請求項３に記載の磁気ディスク装置。
【請求項５】
前記第２のメモリの記憶領域および前記第３のメモリの記憶領域は、アドレス空間内のそれぞれ異なる領域にマッピングされ、
前記第２のプロセッサは、前記第２のメモリにアクセスするか前記第２のメモリを経由しないで前記第３のメモリにアクセスするかをアドレスを用いて切り替える、
請求項１に記載の磁気ディスク装置。
【請求項６】
前記管理情報は、書き込みによる隣接トラック干渉（Adjacent  Track  Interference：ＡＴＩ）の影響が記録されたＡＴＩ情報を含む、
請求項１から５の何れか一項に記載の磁気ディスク装置。
【請求項７】
前記管理情報は、前記磁気ディスクに含まれる欠陥の位置が記録された欠陥位置情報を含む、
請求項１から６の何れか一項に記載の磁気ディスク装置。
【請求項８】
前記管理情報は、トラックまたはセクタの配置が記録されたフォーマット情報を含む、
請求項１から７の何れか一項に記載の磁気ディスク装置。
【請求項９】
前記第１のプロセッサと前記第２のプロセッサとは、同一のハードウェア構成を備え、
前記第１のメモリと前記第２のメモリとは、同一のハードウェア構成を備える、
請求項１から８の何れか一項に記載の磁気ディスク装置。
【請求項１０】
前記第１のコントローラチップの型式番号と、前記第２のコントローラチップの型式番号とは、等しい、
請求項９に記載の磁気ディスク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、磁気ディスク装置に関する。
【背景技術】
【０００２】
２以上のアクチュエータによって２以上の磁気ヘッドのそれぞれを独立に移動させることができる磁気ディスク装置が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第５６１０８０８号明細書
【特許文献２】米国特許第９８８０９１３号明細書
【特許文献３】米国特許出願公開第２０１２／２７５０４６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一つの実施形態は、性能が高い磁気ディスク装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
一つの実施形態によれば、磁気ディスク装置は、磁気ディスクと、互いに独立に移動せしめられる第１の磁気ヘッドおよび第２の磁気ヘッドと、第１のコントローラチップと、第２のコントローラチップと、第３のメモリと、を備える。第１のコントローラチップは、第１のプロセッサと、第１のメモリと、を備え、第１の磁気ヘッドを介した磁気ディスクに対する書き込みおよび読み出しを制御する。第２のコントローラチップは、第２のプロセッサと、第２のメモリと、を備え、第２の磁気ヘッドを介した磁気ディスクに対する書き込みおよび読み出しを制御する。第３のメモリには、管理情報が格納される。第１のコントローラチップは、第３のメモリに接続されている。第２のコントローラチップは、第１のコントローラチップを介して第３のメモリに接続されている。第２のコントローラチップは、第２のメモリに管理情報をキャッシュする。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態にかかる磁気ディスク装置の構成の一例を示す図である。
【図２】図２は、実施形態にかかる磁気ディスクの構成の一例を示す図である。
【図３】図３は、実施形態にかかるバッファメモリに格納される情報の例を示す模式的な図である。
【図４】図４は、実施形態にかかる各ＳｏＣのＳＲＡＭに格納される情報の例を示す模式的な図である。
【図５】図５は、実施形態にかかるＳＲＡＭをキャッシュメモリとして使用する制御をハードウェア回路によって実行する場合のＳｏＣの構成例を説明するための模式的な図である。
【図６】図６は、実施形態にかかるアドレス空間への各記憶領域のマッピングの一例を説明する模式的な図である。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかる磁気ディスク装置を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【０００８】
（実施形態）
図１は、実施形態にかかる磁気ディスク装置１の構成の一例を示す図である。磁気ディスク装置１は、ホスト２に接続可能である。磁気ディスク装置１とホスト２との間の通信路の規格は、特定の規格に限定されない。一例では、ＳＡＳ（Serial  Attached  SCSI）が採用され得る。
【０００９】
ホスト２は、例えばプロセッサ、パーソナルコンピュータ、またはサーバなどが該当する。磁気ディスク装置１は、ホスト２からアクセスコマンド（リードコマンドおよびライトコマンド）を受け付けることができる。
【００１０】
磁気ディスク装置１は、スピンドルモータ（不図示）の回転軸２０１を中心に回転する磁気ディスク２００を備える。なお、磁気ディスク装置１は、２以上の磁気ディスク２００を備え得る。
【００１１】
図２は、実施形態にかかる磁気ディスク２００の構成の一例を示す図である。磁気ディスク２００は、表面に磁性体を有しており、出荷前にサーボライタなどによりサーボ情報が書き込まれている。サーボ情報は、例えばバーストパターンである。図２には、サーボ情報が書き込まれたサーボゾーンの配置の一例として放射状に配置されたサーボゾーン２０２が示されている。磁気ディスク２００の径方向には同心円の形状の複数のトラック２０３が所定のピッチで設けられている。各トラック２０３の周上には多数のセクタが連続的に形成されている。各セクタは、磁性領域を有し、データの書き換えが自在である。それぞれ多数のセクタを有する複数のトラック２０３によって、データの記録が可能な記録面が構成される。  
【００１２】
図１に説明を戻す。
磁気ディスク装置１は、それぞれ独立に磁気ディスク２００にデータの書き込みおよび読み出しを実行することができる複数の読み書き系３００を備える。本実施形態では、磁気ディスク装置１は、一例として、複数の読み書き系３００として、読み書き系３００−１と、読み書き系３００−２とを備える。なお、磁気ディスク装置１は、３以上の読み書き系３００を備え得る。
【００１３】
読み書き系３００−１は、アーム３０１−１と、磁気ヘッド３０２−１と、軸３０３−１と、アクチュエータ３０４−１とを備える。
【００１４】
磁気ヘッド３０２−１は、アーム３０１−１の先端に取り付けられている。磁気ヘッド３０２−１は、磁気ディスク２００に対してデータに対応した信号の書き込みやデータに対応した信号の読み出しを実行する。
【００１５】
アクチュエータ３０４−１は、例えばＶＣＭ（Voice  Coil  Motor）である。アクチュエータ３０４−１は、アーム３０１−１を軸３０３−１を中心に回転させることによって、磁気ヘッド３０２−１を磁気ディスク２００の表面に対して相対移動させることができる。なお、図１に例示されるＴ１は、磁気ヘッド３０２−１の軌跡の一例である。
【００１６】
読み書き系３００−２は、アーム３０１−２と、磁気ヘッド３０２−２と、軸３０３−２と、アクチュエータ３０４−２とを備える。
【００１７】
磁気ヘッド３０２−２は、アーム３０１−２の先端に取り付けられている。磁気ヘッド３０２−２は、磁気ディスク２００に対してデータに対応した信号の書き込みやデータに対応した信号の読み出しを実行する。
【００１８】
アクチュエータ３０４−２は、例えばＶＣＭである。アクチュエータ３０４−２は、アーム３０１−２を軸３０３−２を中心に回転させることによって、磁気ヘッド３０２−２を磁気ディスク２００の表面に対して相対移動させることができる。なお、図１に例示されるＴ２は、磁気ヘッド３０２−２の軌跡の一例である。
【００１９】
読み書き系３００−１を用いたアクセスと、読み書き系３００−２を用いたアクセスとが並列に実行されることで、１つの読み書き系３００のみによって磁気ディスク２００へのアクセスが実行される場合に比べて、データのスループットが向上する。
【００２０】
なお、軸３０３−１と軸３０３−２とは、共通化されてもよい。つまり、アーム３０１−１およびアーム３０１−２が、同一の軸の軸方向に異なる位置に取り付けられ、アーム３０１−１およびアーム３０１−２は、当該軸を中心に回転せしめられるように構成されてもよい。アーム３０１−１およびアーム３０１−２が、同一の軸の軸方向に異なる位置に取り付けられるので、磁気ヘッド３０２−１が書き込みおよび読み出しを行う記録面と、磁気ヘッド３０２−２が書き込みおよび読み出しを行う記録面とが異なり得る。
【００２１】
例えば、磁気ヘッド３０２−１は、磁気ディスク２００のおもて面および裏面のうちの一にアクセスを行い、磁気ヘッド３０２−２は、磁気ディスク２００のおもて面および裏面のうちの他にアクセスを行うように構成される。
【００２２】
また、各読み書き系３００が備える磁気ヘッドの数は１つに限定されない。例えば、次のような構成が採用され得る。即ち、磁気ディスク装置１は、Ｎ（Ｎは２以上の整数）個の磁気ディスク２００を備える。読み書き系３００−１は、Ｎ個の磁気ヘッド３０２−１を備え、読み書き系３００−２は、Ｎ個の磁気ヘッド３０２−２を備える。アーム３０１−１およびアーム３０１−２が、同一の軸の軸方向に異なる位置に取り付けられ、当該軸を中心に回転せしめられるように構成されている。読み書き系３００−１が備えるＮ個の磁気ヘッド３０２−１は、Ｎ個の磁気ディスク２００が備える合計２＊Ｎ個の記録面のうちの、Ｎ個の記録面にアクセスする。読み書き系３００−２が備えるＮ個の磁気ヘッド３０２−２は、２＊Ｎ個の記録面のうちの、読み書き系３００−１が備えるＮ個の磁気ヘッド３０２−１とは異なるＮ個の記録面にアクセスする。
【００２３】
なお、磁気ヘッド３０２−１は、第１の磁気ヘッドの一例である。磁気ヘッド３０２−２は、第２の磁気ヘッドの一例である。
【００２４】
磁気ディスク装置１は、さらに、バッファメモリ４００を備える。バッファメモリ４００は、磁気ディスク２００よりも高速にアクセスされ得るメモリである。バッファメモリ４００は、揮発性であってもよいし、不揮発性であってもよい。一例では、バッファメモリ４００としては、ＤＲＡＭ（Dynamic  Random  Access  Memory）が採用される。なお、バッファメモリ４００の種類はＤＲＡＭに限定されない。バッファメモリ４００には、種々の情報が一時的に格納される。
【００２５】
図３は、実施形態にかかるバッファメモリ４００に格納される情報の例を示す模式的な図である。バッファメモリ４００には、例えば、ユーザデータ５０１、プログラムコード群５０２、および管理情報５０３が格納される。
【００２６】
ユーザデータ５０１は、ホスト２から磁気ディスク装置１に送られてきたデータである。ユーザデータ５０１は、ホスト２から転送されてきた後、磁気ディスク２００に書き込まれる。また、磁気ディスク２００に格納されたユーザデータ５０１は、リードコマンドに応じて読み出され、その後、ホスト２に転送される。バッファメモリ４００には、ホスト２と磁気ディスク２００との間で転送されるユーザデータ５０１がバッファリングされる。
【００２７】
プログラムコード群５０２は、コンピュータプログラムを構成するコードの群である。プログラムコード群５０２に含まれる各コードは、プロセッサ（ＳｏＣ１００−１に内蔵されるＣＰＵ（Central  Processing  Unit）１０６−１またはＳｏＣ１００−２に内蔵されるＣＰＵ１０６−２）によって実行される。
【００２８】
管理情報５０３は、磁気ディスク装置１を正常な動作が可能な状態に維持するために必要となる各種の情報を含む。管理情報５０３は、動作中に、プロセッサによって参照されたり更新されたりする。
【００２９】
管理情報５０３は、例えば、ＡＴＩ情報５０４、欠陥位置情報５０５、およびフォーマット情報５０６を含む。なお、管理情報５０３の例はこれらに限定されない。なお、本明細書では、ＣＰＵ１０６−１やＣＰＵ１０６−２が実行するプログラムコードや、ユーザデータ５０１は、管理情報５０３に該当しない。
【００３０】
ＡＴＩ情報５０４は、書き込みによる隣接トラック干渉（Adjacent  Track  Interference：ＡＴＩ）の影響が記録された情報である。
【００３１】
磁気ディスクに書き込みを行った場合、磁気ヘッドを構成するライト素子が発する磁界が、書き込み位置の近傍のトラックに影響を与え、当該トラックの信号の品質が劣化する場合がある。この現象は、隣接トラック干渉として知られている。すでにデータが書き込まれた位置から近い位置に書き込みを行った場合、すでに書き込まれたデータが、隣接トラック干渉によって、読み出せなくなる虞がある。隣接トラック干渉の影響のレベルは、書き込み位置に近いほど大きくなる。
【００３２】
そこで、例えば、隣接トラック干渉の影響の度合いを示す評価値が、トラック毎にＡＴＩ情報５０４に記録される。書き込みが行われた位置の近傍のすでにデータが書き込まれたトラックの評価値が増加せしめられる。つまり、書き込みが行われる毎にＡＴＩ情報５０４が更新される。次に書き込みが実施される際には、トラック毎の評価値が所定以下となるように、書き込みが制御される。
【００３３】
欠陥位置情報５０５は、磁気ディスク２００に含まれる欠陥の位置が記録された情報である。
【００３４】
磁気ディスク２００は、微視的な磁気特性のばらつき、傷、サーボ不良など、種々の要因により、データの読み出しが困難または不可能な位置を含む場合がある。このような位置は、欠陥として欠陥位置情報５０５に記録され、不使用とされる。欠陥は、出荷前の検査によって検出された先天的な欠陥のほかに、動作中に発生する欠陥を含む。動作中に欠陥が発生した場合には、その欠陥が発生した位置が欠陥位置情報５０５に書き加えられる。
【００３５】
なお、欠陥位置情報５０５には、典型的には、セクタ単位の位置情報が記録される。欠陥位置情報５０５に記録される位置情報の単位はこれに限定されない。
【００３６】
フォーマット情報５０６は、トラックまたはセクタの配置が記録された情報である。データの書き込みまたは読み出しの際には、適宜、フォーマット情報５０６が参照される。
【００３７】
図１に説明を戻す。
磁気ディスク装置１は、さらに、複数のＳｏＣ（System-On-a-Chip）１００を備える。複数のＳｏＣ１００は、協働して、磁気ディスク装置１の制御系として機能する。
【００３８】
ＳｏＣ１００は、読み書き系３００毎に設けられる。図１の例では、磁気ディスク装置１は、読み書き系３００−１に接続されたＳｏＣ１００−１と、読み書き系３００−２に接続されたＳｏＣ１００−２とを備える。
【００３９】
なお、ＳｏＣ１００−１およびＳｏＣ１００−２は、樹脂などによって一体に封止されて、１つのパッケージとして構成されてもよい。ＳｏＣ１００−１およびＳｏＣ１００−２は、厚さ方向に積層されてもよい。
【００４０】
実施形態では、ＳｏＣ１００−１と、ＳｏＣ１００−２とは、同一のハードウェア構成を備える。
【００４１】
例えば、ＳｏＣ１００−１と、ＳｏＣ１００−２とは、同じ型式番号のＳｏＣ１００として製造される。製造された各ＳｏＣ１００は、外部ピンによる設定またはソフトウェア的な設定などによって、ＳｏＣ１００−１として機能するか、ＳｏＣ１００−２として機能するかが決定される。
【００４２】
ＳｏＣ１００−１およびＳｏＣ１００−２でハードウェア構成を共通化することで、ＳｏＣ１００−１およびＳｏＣ１００−２のそれぞれを個別に設計する場合に比べて、設計や製造に要する時間を短縮することが可能である。
【００４３】
また、製造者は、読み書き系３００の数を１または３以上に変更したい場合、読み書き系３００の数に応じてＳｏＣ１００の数を変更するだけで、読み書き系３００の数の変更後の磁気ディスク装置１の制御系を構築することが可能となる。つまり、読み書き系３００の数の変更に伴う制御系の変更が容易になる。
【００４４】
なお、図１は、あくまでも模式的な図である。図１では、図の煩雑化を避けるために、ＳｏＣ１００−１に含まれる各構成要素の配置と、ＳｏＣ１００−２に含まれる各構成要素の配置とが異なっている。ＳｏＣ１００−１と、ＳｏＣ１００−２とは、同一のハードウェア構成を備えるので、実際には、ＳｏＣ１００−１に含まれる各構成要素の配置と、ＳｏＣ１００−２に含まれる各構成要素の配置と、は互いに等しい。
【００４５】
なお、ＳｏＣ１００−１およびＳｏＣ１００−２のそれぞれは、読み書き制御回路１０３−１および読み書き制御回路１０３−２が同じ方向を向くように配置される。
【００４６】
各ＳｏＣ１００は、バッファ制御回路１０１、ホスト制御回路１０２、読み書き制御回路１０３、データ通信回路１０４、およびＭＣＵ(Micro  Control  Unit)１０５を備える。
【００４７】
バッファ制御回路１０１は、バッファメモリ４００へのアクセスを制御する回路である。ホスト制御回路１０２は、ホスト２に対する通信を制御する回路である。データ通信回路１０４は、他のＳｏＣ１００に対する通信を制御する回路である。
【００４８】
読み書き制御回路１０３は、読み書き系３００を介した磁気ディスク２００への書き込みおよび読み出しを制御するための回路である。例えば、読み書き制御回路１０３は、デジタルデータを、磁気ヘッド３０２に供給される信号に変換したり、磁気ヘッド３０２から出力された信号をデジタルデータに変換したりする。読み書き制御回路１０３は、リードライトチャネルとも称される。
【００４９】
なお、読み書き制御回路１０３と磁気ヘッド３０２との間には、アンプ回路が設けられてもよい。また、読み書き制御回路１０３は、アクチュエータ３０４を位置決め制御する回路を含んでいてもよい。
【００５０】
ＭＣＵ１０５は、プログラムコードを実行可能なプロセッサであるＣＰＵ１０６と、ＣＰＵ１０６がキャッシュメモリとして使用するＳＲＡＭ（Static  Random  Access  Memory）１０７と、を備える。
【００５１】
以降、ＳｏＣ１００−１に属する構成要素の符号には「−１」を付し、ＳｏＣ１００−２に属する構成要素の符号には「−２」を付す。
【００５２】
なお、ＳｏＣ１００−１は、第１のコントローラチップの一例である。ＳｏＣ１００−２は、第２のコントローラチップの一例である。ＳｏＣ１００−１が備えるＣＰＵ１０６−１は、第１のプロセッサの一例である。ＳｏＣ１００−１が備えるＳＲＡＭ１０７−１は、第１のメモリの一例である。ＳｏＣ１００−２が備えるＣＰＵ１０６−２は、第１のプロセッサと同一のハードウェア構成を備える第２のプロセッサの一例である。ＳｏＣ１００−２が備えるＳＲＡＭ１０７−２は、第１のメモリと同一のハードウェア構成を備える第２のメモリの一例である。バッファメモリ４００は、第３のメモリの一例である。
【００５３】
実施形態では、ＳｏＣ１００−１は、ホスト２およびバッファメモリ４００にも接続されている。ＳｏＣ１００−２は、ＳｏＣ１００−１を介してバッファメモリ４００に接続されている。
【００５４】
ＳｏＣ１００−１では、バッファ制御回路１０１−１およびホスト制御回路１０２−１は、ＣＰＵ１０６−１による制御の下で、協働して、ホスト２とバッファメモリ４００との間のユーザデータ５０１の転送を実行する。また、バッファ制御回路１０１−１および読み書き制御回路１０３−１は、ＣＰＵ１０６−１による制御の下で、協働して、バッファメモリ４００と磁気ディスク２００との間のユーザデータ５０１の転送を実行する。
【００５５】
また、バッファ制御回路１０１−１およびデータ通信回路１０４−１は、協働して、ＳｏＣ１００−２とバッファメモリ４００との間のデータ転送を実行する。
【００５６】
ＣＰＵ１０６−１は、所定のプログラムコード群を実行することによって、例えば下記に述べる処理を実行する。即ち、ＣＰＵ１０６−１は、ホスト２から受信したコマンドを解釈、ホスト２とバッファメモリ４００との間のユーザデータ５０１の転送、磁気ディスク２００に対するアクセスを読み書き系３００−１および読み書き系３００−２にアサインする処理、読み書き系３００−１にアサインされた磁気ディスク２００に対するアクセスの制御、などを実行する。
【００５７】
ＣＰＵ１０６−１は、上記の各種の処理を実行する際に、バッファメモリ４００に格納された各管理情報５０３に適宜アクセスすることができる。つまり、ＣＰＵ１０６−１は、バッファメモリ４００に格納された各管理情報５０３を参照したり更新したりすることができる。バッファメモリ４００に格納された各管理情報５０３へのアクセスは、バッファ制御回路１０１−１を介して実行される。
【００５８】
ＳｏＣ１００−２では、データ通信回路１０４−２および読み書き制御回路１０３−２は、ＣＰＵ１０６−２による制御の下で、協働して、読み書き系３００−２およびＳｏＣ１００−１を介した、バッファメモリ４００と磁気ディスク２００との間のユーザデータ５０１の転送を実行する。
【００５９】
バッファ制御回路１０１−２およびホスト制御回路１０２−２は使用されない。ＳｏＣ１００−２は、バッファメモリ４００およびホスト２のいずれにも直接に接続されていないからである。ＣＰＵ１０６−２は、バッファ制御回路１０１−２またはホスト制御回路１０２−２への電力の供給またはクロックの供給を遮断してもよい。
【００６０】
ＣＰＵ１０６−２は、所定のプログラムコード群に基づいて、読み書き系３００−２にアサインされた磁気ディスク２００に対するアクセスの制御を実行する。ＣＰＵ１０６−２は、当該制御を実行する際に、バッファメモリ４００に格納された各管理情報５０３に適宜アクセスすることができる。つまり、ＣＰＵ１０６−２は、バッファメモリ４００に格納された各管理情報５０３を参照したり更新したりすることができる。
【００６１】
ここで、ＳｏＣ１００−１は、バッファメモリ４００に直接に接続されていることに対し、ＳｏＣ１００−２は、ＳｏＣ１００−１を介してバッファメモリ４００に接続されている。よって、ＣＰＵ１０６−２がバッファメモリ４００内の管理情報５０３にアクセスする場合、ＣＰＵ１０６−１がバッファメモリ４００内の管理情報５０３にアクセスする場合に比べて、アクセスに要する時間が長くなる。その結果、ＳｏＣ１００−２による磁気ディスク２００へのアクセスが遅くなり、磁気ディスク装置１の性能の低下が起こり得る。
【００６２】
実施形態では、ＣＰＵ１０６−２がバッファメモリ４００内の管理情報５０３にアクセスする速度を向上させるために、ＳｏＣ１００−２は、ＳＲＡＭ１０７−２を、管理情報５０３へのアクセスのためのキャッシュメモリとして使用する。
【００６３】
図４は、実施形態にかかる各ＳｏＣ１００のＳＲＡＭ１０７に格納される情報の例を示す模式的な図である。
【００６４】
ＳＲＡＭ１０７−１には、ＣＰＵ１０６−１が実行するプログラムコード群６０１−１がキャッシュデータとして格納される。ＳｏＣ１００−１は、ＣＰＵ１０６−１が実行するプログラムコード群のうちの、頻繁に使用されるコード、高速に実行されるべき処理にかかるコード、などをＳＲＡＭ１０７−１にプログラムコード群６０１−１としてキャッシュし、それ以外のコードを、バッファメモリ４００にプログラムコード群５０２として格納しておく。ＣＰＵ１０６−１は、必要に応じて、バッファメモリ４００からプログラムコードを取得することもできる。
【００６５】
ＳＲＡＭ１０７−２には、ＣＰＵ１０６−２が実行するプログラムコード群６０１−２がキャッシュデータとして格納される。ＳｏＣ１００−２は、ＣＰＵ１０６−２が実行するプログラムコード群のうちの、頻繁に使用されるコード、高速に実行されるべき処理にかかるコード、などをＳＲＡＭ１０７−２にプログラムコード群６０１−２としてキャッシュし、それ以外のコードを、バッファメモリ４００にプログラムコード群５０２として格納しておく。ＣＰＵ１０６−２は、必要に応じて、バッファメモリ４００からプログラムコードを取得することもできる。
【００６６】
前述したように、ＣＰＵ１０６−１は、ホスト２から受信したコマンドを解釈、ホスト２とバッファメモリ４００との間のユーザデータ５０１の転送、磁気ディスク２００に対するアクセスを読み書き系３００−１および読み書き系３００−２にアサインする処理、読み書き系３００−１にアサインされた磁気ディスク２００に対するアクセスの制御、などを実行する。
【００６７】
これに対し、ＣＰＵ１０６−２は、読み書き系３００−２にアサインされた磁気ディスク２００に対するアクセスの制御を実行する。ＣＰＵ１０６−２は、バッファメモリ４００やホスト２にかかる処理、つまり、ホスト２から受信したコマンドを解釈、ホスト２とバッファメモリ４００との間のユーザデータ５０１の転送、磁気ディスク２００に対するアクセスを読み書き系３００−１および読み書き系３００−２にアサインする処理などを実行しない。
【００６８】
つまり、ＣＰＵ１０６−２が実行する処理の量は、ＣＰＵ１０６−１が実行する処理の量に比べて少ない。ＳＲＡＭ１０７−２にキャッシュされるプログラムコード群６０１−２の量は、ＣＰＵ１０６−２が実行しない処理の分だけ、ＳＲＡＭ１０７−１にキャッシュされるプログラムコード群６０１−１の量よりも少ない。
【００６９】
ＳｏＣ１００−２は、ＳＲＡＭ１０７−２の記憶領域のうちの、プログラムコード群６０１−２のキャッシュに使用された領域を除く、残りの領域に、管理情報５０３をキャッシュする。本図に示されるＡＴＩ情報６０２は、ＡＴＩ情報５０４のキャッシュデータである。欠陥位置情報６０３は、欠陥位置情報５０５のキャッシュデータである。フォーマット情報６０４は、フォーマット情報５０６のキャッシュデータである。
【００７０】
なお、ＣＰＵ１０６−１が実行する処理と、ＣＰＵ１０６−２が実行する処理と、の切り分けは、任意に変更され得る。少なくとも、ＣＰＵ１０６−１は、ホスト２から受信したコマンドの解釈を実行し、ＣＰＵ１０６−２は、ホスト２から受信したコマンドの解釈を実行しない。ＣＰＵ１０６−２が実行する処理の量は、少なくともホスト２から受信したコマンドの解釈をしない分だけ、ＣＰＵ１０６−１が実行する処理の量より少ないので、ＳＲＡＭ１０７−２にキャッシュされるプログラムコード群６０１−２の量は、ＳＲＡＭ１０７−１にキャッシュされるプログラムコード群６０１−１の量よりも少ない。
【００７１】
このように、ＣＰＵ１０６−２は、ＳＲＡＭ１０７−２を、バッファメモリ４００に格納された管理情報５０３にアクセスするためのキャッシュメモリとして使用する。これによって、管理情報５０３を取得する速度が向上し、ひいては磁気ディスク装置１の性能が向上する。
【００７２】
具体的には、ＣＰＵ１０６−２は、管理情報５０３のうちのある情報を使用（参照または更新）する場合、まず、ＳＲＡＭ１０７から当該情報を探す。キャッシュヒットした場合、即ち当該情報がＳＲＡＭ１０７にキャッシュされている場合、ＣＰＵ１０６−２は、ＳＲＡＭ１０７内のキャッシュされている情報を使用する。キャッシュミスした場合、即ち当該情報がＳＲＡＭ１０７にキャッシュされていない場合、ＣＰＵ１０６−２は、バッファメモリ４００から当該情報を取得して使用する。
【００７３】
キャッシュヒットした場合、ＣＰＵ１０６−２は、バッファメモリ４００にアクセスすることなく管理情報５０３を取得することが可能であるので、ＣＰＵ１０６−２が管理情報５０３を取得する速度が向上する。
【００７４】
なお、ＳＲＡＭ１０７に適用されるキャッシュの方式は、特定の方式に限定されない。例えば、フルアソシアティブ方式、ダイレクトマップ方式、またはｎウェイセットアソシアティブ方式が適用され得る。ＳＲＡＭ１０７の記憶領域が複数に分割され、分割によって生成された部分毎に異なる方式が適用されてもよい。
【００７５】
なお、ＳＲＡＭ１０７をキャッシュメモリとして使用する制御は、例えば、キャッシュヒット／ミスの判定、追い出し、リフィル、ダーティ／クリーンの管理、などを含む。これらの制御のうちの一部または全部は、ＣＰＵ１０６によって実行されてもよいし、専用のハードウェア回路によって実行されてもよい。
【００７６】
図５は、実施形態にかかるＳＲＡＭ１０７をキャッシュメモリとして使用する制御をハードウェア回路によって実行する場合のＳｏＣ１００の構成例を説明するための模式的な図である。バッファ制御回路１０１、ホスト制御回路１０２、データ通信回路１０４、および読み書き制御回路１０３などの図示は省略されている。
【００７７】
本図に示されるように、ＳｏＣ１００は、ＣＰＵ１０６およびＳＲＡＭ１０７のほかに、キャッシュ制御回路１０８を備える。キャッシュ制御回路１０８は、例えば、ＳＲＡＭ１０７をキャッシュメモリとして使用する制御を実行する。
【００７８】
また、ＳＲＡＭ１０７の記憶領域とバッファメモリ４００の記憶領域とは、アドレス空間内のそれぞれ異なる領域にマッピングされてもよい。
【００７９】
図６は、実施形態にかかるアドレス空間への各記憶領域のマッピングの一例を説明する模式的な図である。本図に示されるように、アドレス空間７００には、領域７０１、７０２、および７０３がアロケートされている。そして、領域７０１にＳＲＡＭ１０７−１の記憶領域がマッピングされ、領域７０２にＳＲＡＭ１０７−２の記憶領域がマッピングされ、領域７０３にバッファメモリ４００の記憶領域がマッピングされている。
【００８０】
例えば、ＣＰＵ１０６−２は、ＳＲＡＭ１０７−２にキャッシュデータとして格納されている管理情報５０３にアクセスする場合には、領域７０２に含まれるアドレスを使用してアクセス先を指定する。また、ＣＰＵ１０６−２は、バッファメモリ４００に格納されている管理情報５０３にＳＲＡＭ１０７−２を介さずにアクセスする場合には、領域７０３に含まれるアドレスを使用してアクセス先を指定する。つまり、ＣＰＵ１０６−２は、ＳＲＡＭ１０７−２にアクセスするか、バッファメモリ４００にアクセスするかを、アドレスによって切り替えることが可能である。
【００８１】
なお、ＳＲＡＭ１０７とバッファメモリ４００とは、必ずしもアドレス空間７００内の異なる領域にマッピングされていなくてもよい。
【００８２】
以上述べたように、実施形態によれば、ＳｏＣ１００−１は、バッファメモリ４００に接続され、ＳｏＣ１００−２は、ＳｏＣ１００−１を介してバッファメモリ４００に接続されている。そして、ＳｏＣ１００−２は、ＳＲＡＭ１０７−２に管理情報５０３をキャッシュする。
【００８３】
よって、ＣＰＵ１０６−２がバッファメモリ４００に格納された管理情報５０３を取得する速度が向上し、ひいては磁気ディスク装置１の性能が向上する。
【００８４】
なお、以上では、ＳｏＣ１００−１は、ＳＲＡＭ１０７−１に管理情報５０３をキャッシュしないこととして説明した。ＳＲＡＭ１０７−１の記憶領域に空きがある場合には、この限りではない。例えば、ＳｏＣ１００−１もＳＲＡＭ１０７−１に管理情報５０３をキャッシュしてもよい。
【００８５】
また、ＳｏＣ１００−１は、ＣＰＵ１０６−１が実行するプログラムコード群６０１−１をＳＲＡＭ１０７−１にキャッシュし、ＳｏＣ１００−２は、ＣＰＵ１０６−２が実行するプログラムコード群６０１−２をＳＲＡＭ１０７−２にキャッシュする。プログラムコード群６０１−２の量は、プログラムコード群６０１−１の量よりも少ない。ＳｏＣ１００−２は、ＳＲＡＭ１０７−２の記憶領域のうちの残りの領域に、管理情報５０３をキャッシュする。
【００８６】
よって、ＣＰＵ１０６−２がバッファメモリ４００に格納された管理情報５０３を取得する速度が向上し、ひいては磁気ディスク装置１の性能が向上する。
【００８７】
また、ＳｏＣ１００−１は、ホスト２に接続され、ＳｏＣ１００−２は、ＳｏＣ１００−１を介してホスト２に接続されている。例えば、プログラムコード群６０１−１は、ホスト２からのコマンドを解釈するためのプログラムコードを含み、プログラムコード群６０１−２は、ホスト２からのコマンドを解釈するためのプログラムコードを含まない。
【００８８】
よって、プログラムコード群６０１−２の量は、プログラムコード群６０１−１の量よりも少なく、ＳＲＡＭ１０７−２の空いた領域に管理情報５０３をキャッシュすることが可能となる。
【００８９】
また、ＳＲＡＭ１０７−２の記憶領域およびバッファメモリ４００の記憶領域は、アドレス空間７００内のそれぞれ異なる領域７０２、７０３にマッピングされ、ＣＰＵ１０６−２は、ＳＲＡＭ１０７−２にアクセスするかバッファメモリ４００に直接にアクセスするかを、アドレスによって切り替えてもよい。
【００９０】
なお、一例では、管理情報５０３は、書き込みによる隣接トラック干渉の影響が記録されたＡＴＩ情報５０４を含む。
【００９１】
別の例では、管理情報５０３は、磁気ディスク２００に含まれる欠陥の位置が記録された欠陥位置情報５０５を含む。
【００９２】
さらに別の例では、管理情報５０３は、トラックまたはセクタの配置が記録されたフォーマット情報５０６を含む。
【００９３】
なお、以上では、ＳｏＣ１００−１の型式番号と、ＳｏＣ１００−２の型式番号とは等しいとして説明した。ＳｏＣ１００−１の型式番号と、ＳｏＣ１００−２の型式番号とは、必ずしも同じでなくてもよい。
【００９４】
例えば、読み書き制御回路１０３、データ通信回路１０４、ＣＰＵ１０６、およびＳＲＡＭ１０７のハードウェア構成は、ＳｏＣ１００−１とＳｏＣ１００−２とで等しいが、ＳｏＣ１００−１は、バッファ制御回路１０１およびホスト制御回路１０２を備え、ＳｏＣ１００−２は、バッファ制御回路１０１およびホスト制御回路１０２を備えなくてもよい。その場合には、ＳｏＣ１００−１の型式番号と、ＳｏＣ１００−２の型式番号とが異なってもよい。
【００９５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９６】
１  磁気ディスク装置、２  ホスト、１００，１００−１，１００−２  ＳｏＣ、１０１，１０１−１，１０１−２  バッファ制御回路、１０２，１０２−１，１０２−２  ホスト制御回路、１０３，１０３−１，１０３−２  読み書き制御回路、１０４，１０４−１，１０４−２  データ通信回路、１０５  ＭＣＵ、１０６，１０６−１，１０６−２  ＣＰＵ、１０７，１０７−１，１０７−２  ＳＲＡＭ、１０８  キャッシュ制御回路、２００  磁気ディスク、２０１  回転軸、２０２  サーボゾーン、２０３  トラック、３００，３００−１，３００−２  読み書き系、３０１−１，３０１−２  アーム、３０２−１，３０２−２  磁気ヘッド、３０３−１，３０３−２  軸、３０４−１，３０４−２  アクチュエータ、４００  バッファメモリ、５０１  ユーザデータ、５０２，６０１−１，６０１−２  プログラムコード群、５０３  管理情報、５０４，６０２  ＡＴＩ情報、５０５，６０３  欠陥位置情報、５０６，６０４  フォーマット情報、７００  アドレス空間、７０１，７０２，７０３  領域。
【図１】
2020155170.tif 000003
【図２】
2020155170.tif 000004
【図３】
2020155170.tif 000005
【図４】
2020155170.tif 000006
【図５】
2020155170.tif 000007
【図６】
2020155170.tif 000008