(57)【要約】【課題】複数のチャネルで共有データを入出力するインタフェース装置に関し、データの入出力を効率よく行なえるインタフェース装置を提供することを目的とする。【解決手段】複数のチャネルで共有データを入出力するインタフェース装置において、前記チャネル毎に設けられた複数のバッファメモリと、前記複数のバッファメモリでデータの同一性を保証しつつ、データの入出力を行なう制御部を有することを特徴とする。【選択図】図１１
2006172710.tif 000002
【特許請求の範囲】
【請求項１】
複数のチャネルで共有データを入出力するインタフェース装置において、前記チャネル毎に設けられた複数のバッファメモリと、前記複数のバッファメモリでデータの同一性を保証しつつ、データの入出力を行なう制御部を有することを特徴とするインタフェース装置。
【請求項２】
前記制御部は、前記複数のバッファメモリのデータの状態を管理するデータ管理テーブルを有することを特徴とする請求項１記載のインタフェース装置。
【請求項３】
前記制御部は、一つのチャネルのバッファメモリのデータが更新されたときに、他のチャネルのバッファメモリへのアクセスを抑止することを特徴とする請求項２又は３記載のインタフェース装置。
【請求項４】
前記制御部は、他の処理の空時間に前記バッファメモリのデータが更新されたチャネルのデータを他のチャネルのバッファメモリにコピーすることを特徴とする請求項１乃至３のいずれか一項記載のインタフェース装置。
【請求項５】
前記制御部は、データを他のチャネルのバッファメモリにコピーするとき、前記他のチャネルのバッファメモリへのアクセスを抑止することを特徴とする請求項４記載のインタフェース装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はインタフェース装置に係り、特に、複数のチャネルで共有データを入出力するインタフェース装置に関する。
【背景技術】
【０００２】
図１にハードディスクドライブのブロック構成図を示す。
【０００３】
ハードディスクドライブ１は、エンクロージャ２及び回路基板３を含む構成とされている。エンクロージャ２には、ディスク１１、スピンドルモータ１２、磁気ヘッド１３、アクチュエータ１４、ヘッドＩＣ１５を有する構成とされている。ディスク１１は、スピンドルモータ１２により回転される。ディスク１１には、磁気ヘッド１３が対向して配置される。磁気ヘッド１３は、アクチュエータ１４によりディスク１１の半径方向に移動可能とされており、記録情報に応じてディスク１１を磁化する。また、磁気ヘッド１３は、ディスク１１の磁化状態に応じた信号を検出する。
【０００４】
スピンドルモータ１２は、回路基板３からの回転制御信号により回転される。アクチュエータ１４は、回路基板３からの位置制御信号により制御され、磁気ヘッド１３をディスク１１に対して位置決めする。磁気ヘッド１３は、ヘッドＩＣ１５からの記録信号によりディスク１１を磁化するとともに、ディスク１１の磁化に応じた再生信号をヘッドＩＣ１５に供給する。ヘッドＩＣ１５は、回路基板３からの記録信号を増幅して、磁気ヘッド１３に供給するとともに、磁気ヘッド１３からの再生信号を増幅して回路基板３に供給する。
【０００５】
回路基板３は、リードチャネル２１、ハードディスクコントローラ２２、バッファメモリ２３、サーボコントローラ２４、ＲＯＭ２５を含む構成とされている。リードチャネル２１は、ハードディスクコントローラ２２からの記録データに基づいて記録信号を生成するとともに、磁気ヘッド１３からの再生信号に基づいて再生データを復元する。また、リードチャネル２１は、再生信号からサーボ用信号を抽出し、サーボコントローラ２４に供給する。
【０００６】
サーボコントローラ２４は、リードチャネル２１からのサーボ用信号に基づいてスピンドルモータ１２の回転を制御するとともに、ＶＣＭ１４の駆動制御を行なう。
【０００７】
ＲＯＭ２５には、プロセッサ３４で実行されるプログラムであるファームウェアが予め格納されており、電源投入時などにハードディスクコントローラ２２の内部のメモリに展開される。
【０００８】
図２に従来のハードディスクコントローラの一例のブロック構成図を示す。
【０００９】
ハードディスクコントローラ２２は、インタフェース３１、バッファマネージャ３２、フォーマッタ３３、プロセッサ３４、プログラムメモリ３５を含む構成とされている。
【００１０】
ホストコンピュータ４１からの記録データは、インタフェース３１でインタフェースがとられた後、バッファマネージャ３２によりバッファメモリ２３に一旦記憶される。バッファマネージャ３２は、プロセッサ３４からの命令に基づいてバッファメモリ２３に記憶された記録データを読み出し、ディスクフォーマッタ３３に供給する。ディスクフォーマッタ３３は、プロセッサ３４からの命令に基づいてバッファマネージャ３２により読み出された記録データを所定のフォーマットにフォーマッティングしてリードチャネル２１に供給する。
【００１１】
また、リードチャネル２１からの再生データは、ディスクフォーマッタ３３に供給され、元のフォーマットに復元された後、バッファマネージャ３２によりバッファメモリ２３に記憶される。バッファマネージャ３２は、プロセッサ３４からの命令に基づいてバッファメモリ２３から再生データを読み出し、インタフェース３１を介してホストコンピュータ４１に再生データを供給する。
【００１２】
このとき、プロセッサ３４は、プログラムメモリ３５にＲＯＭ２５から展開されたファームウェアに基づいて命令を実行する。このように、従来のハードディスクコントローラ２２では、プロセッサ３４で実行されるファームウェアをプログラムメモリ３５に展開して用いるとともに、記録／再生データを一時的に記憶するためのバッファメモリ２３を外付けする必要があった。
【００１３】
このとき、ハードディスクコントローラ２２に内蔵されるファームウェアは、主に、高機能のものと低機能のものとに区分される。高機能のファームウェアは、低機能のファームウェアに比べて処理ステップや使用するパラメータの数が多く、ハードディスクドライブを高機能に制御可能であった。また、低機能のファームウェアは、高機能のファームウェアに比べて処理ステップや使用するパラメータの数が少なく、安価に実現できる。
【００１４】
一方、ハードディスクコントローラ２２は、プログラムメモリ３５を含めて１チップ化されている。一般にメモリを多機能のＬＳＩに内蔵するとメモリの占有面積が大きくなり、チップ面積が大きくなるので、小型化の障害となったり、あるいは、歩留まりが低下する。このため、メモリの容量を必要最小限にする必要があった。
【００１５】
このため、従来は高機能のファームウェアを搭載するハードディスクコントローラと低機能のファームウェアを搭載するハードウェアとで内蔵するメモリの容量を異ならせて、メモリの容量を必要最小限とし、チップ面積の大型化を防止していた。
【００１６】
次に、従来のハードディスクコントローラを構成するＬＳＩのテスト方法について説明する。
【００１７】
図３に従来のＬＳＩの一例のブロック構成図を示す。
【００１８】
従来のＬＳＩ５０は、内部ロジック回路５１及びマルチプレクサ５２を含む構成とされている。内部ロジック回路５１は、入力端子Ｔin1〜Ｔinnから入力される入力信号に対して所定の処理を施し、出力端子Ｔout1〜Ｔoutmから出力する。
【００１９】
内部ロジック回路５１は複数のブロックから構成されており、複数のブロックの入出力信号は、マルチプレクサ５２に供給されている。マルチプレクサ５２には、テスト選択端子Ｔs1〜Ｔspからｐビットの選択パターンが供給される。
【００２０】
マルチプレクサ５２は、テスト選択端子Ｔs1〜Ｔspに供給される選択パターンに基づいて内部ロジック回路５１から供給される入出力信号のうち一つの信号を選択し、テスト出力端子Ｔtoutに出力する。
【００２１】
従来のテスト時の具体的動作について説明する。
【００２２】
図４に従来のＬＳＩのテスト時の動作を説明するための図を示す。図４（Ａ）はクロック、図４（Ｂ）、（Ｃ）は信号出力、図４（Ｄ）は選択パターン、図４（Ｅ）はテスト出力を示す。
【００２３】
図４（Ａ）に示す内部クロックに応じて内部ロジック回路５１の各部から信号が出力される。時刻ｔ１でテスト選択端子Ｔs1〜Ｔspに所定の信号、例えば、図４（Ｂ）に示される第３の信号を選択するための選択パターンが入力されると、内部クロックが次に立ち上がる時刻ｔ２で図４（Ｅ）に示すようにテスト出力端子Ｔtoutから図４（Ｂ）に示される第３の信号が出力される。
【００２４】
時刻ｔ３で図４（Ｄ）に示されるテスト選択端子Ｔs1〜Ｔspに図４（Ｃ）に示される第５の信号を選択するための選択パターンが供給されると、図４（Ｅ）に示されるようにテスト出力端子Ｔtoutからは図４（Ｃ）に示される第５の信号が出力される。
【００２５】
以上のようにテスト選択端子Ｔs1〜Ｔspに供給される選択パターンにより選択された信号がテスト出力端子Ｔtoutから出力される。
【００２６】
次に、従来のインタフェース装置のデータの入出力方法について説明する。
【００２７】
図５に従来のインタフェース装置の一例のブロック構成図を示す。
【００２８】
従来のインタフェース装置６０は、インタフェース回路６１、６２、バッファメモリ６３、バッファコントローラ６４、ハードディスクコントローラ６５から構成される。インタフェース回路６１は、コンピュータＡとのインタフェースをとり、インタフェース回路６２は、コンピュータＢとのインタフェースをとる。
【００２９】
インタフェース回路６１、６２から入力されたデータは、バッファコントローラ６４によりバッファメモリ６３に記憶される。バッファコントローラ６４は、バッファメモリ６３からハードディスク１１に記録すべきデータを読み出し、ハードディスクコントローラ６５を介して磁気ヘッド１３に供給し、ハードディスク１１に記録する。
【００３０】
また、ハードディスク１１から磁気ヘッド１３により再生された再生信号は、はハードディスクコントローラ６５によりデータに復号化されて、バッファコントローラ６４を介してバッファメモリ６３に記憶される。バッファコントローラ６４は、バッファメモリ６３に記憶されたデータをインタフェース回路６１又は６２に供給する。
【００３１】
このとき、バッファメモリ６３は、インタフェース回路６１とインタフェース回路６２とで共用されていたため、同時に動作できるインタフェースは、バッファメモリ６３の転送能力によって制限されていた。例えば、バッファメモリ６３の転送能力が３５０ＭＢ／ｓであり、インタフェース回路６１又は６２の転送能力が２００ＭＢ／ｓであった場合には、バッファメモリ６３の転送能力では、データの読み書きが効率よく行なえないので、インタフェース回路６１又は６２のうちいずれか一方のインタフェース回路のみがデータ転送を行ない、他方のインタフェース回路は動作の完了を待つように制御されていた。
【００３２】
コンピュータＡ又はＢからのコマンドは、インタフェース回路６１，６２にコマンドキューとして保持される。
【００３３】
コマンドは、着順に保持された後、実行までの磁気ヘッド１３の移動が最小となる順序に並べ替えられる。いわゆる、リオーダリングが行なわれる。このとき、リオーダリングでは、同一セクタに対するライト後に実行されるべきリードがライトより先に実行されると、更新前のデータを読み出しまうので、リードとライトコマンドの順序は変更しないようにしている。
【００３４】
リードコマンドでは、ハードディスク１１から磁気ヘッド１３により読み出されたデータはバッファメモリ６３に一時保持され、バッファメモリ６３からコンピュータＡ又はＢに転送される。
【００３５】
引き続き同じセクタのリードが行なわれることが期待されるときにはバッファメモリ６３上のデータをしばらく保持して次のリード時には、ハードディスク１１からデータを読み出すことなく、バッファメモリ６３からホストコンピュータＡ又はＢに転送する。このように、ハードディスク１１からデータを読み出すことなく、バッファメモリ６３からコンピュータＡ又はＢに転送することにより、リードコマンドの実行時間を大幅に短縮できる。この動作をキャッシュ処理と呼ぶ、このとき、バッファメモリ６３はキャッシュメモリと呼ばれる。
【００３６】
キャッシュ処理では、バッファメモリ６３に記憶されたデータがハードディスク１１のどの位置のデータであるかを判定するためのテーブルである、キャッシュテーブルが用意されていた。
【００３７】
図６に従来のインタフェース装置の一例の処理フローチャートを示す。
【００３８】
ステップＳ１−１でコマンドを受領すると、ステップＳ１−２で受領したコマンドが有効か否かを判定して、ステップＳ１―３で有効なコマンドをコマンドキューとして保持する。なお、ステップＳ１−１でコマンドが受領されないときには、他の処理が実行される。また、ステップＳ１−２でコマンドが無効なときには、リジェクト処理が実行される。
【００３９】
従来のインタフェース装置では、データライト時、コンピュータＡ又はＢからのデータは、一旦メモリバッファ６３に記憶される。バッファメモリ６３にデータが記憶されると、ライトコマンドが完了したことをコンピュータＡ又はＢに通知し、その後、磁気ヘッド１３の空時間にハードディスク１１への書き込みを行なう。この方法をライトバックと呼ぶ。
【００４０】
ライトバック時にもコンピュータＡ又はＢへ通知するために、バッファメモリ６３に記憶されたデータがハードディスク１１のどの位置にライトされるかを記録するテーブルである、ライトバックテーブルが用意されていた。
【００４１】
上記キャッシュテーブルとライトバックテーブルは、バッファメモリ６３とハードディスク１１の位置情報を関係付けるものであり、動作内容やデータに有効・無効を示すフラグを設けることにより共通したテーブルとして用いられている。
【００４２】
ライトバックを行なう前には、リードコマンドが当該セクタに対して発行されると、リードコマンドの実行を待たせて、ライトバックを先に行い、しかる後、ハードディスク１１からリードする。
【発明の開示】
【発明が解決しようとする課題】
【００４３】
従来の図５に示されるインタフェース装置ではバッファメモリの転送能力には限界があり、データを効率よく入出力することができなかった。
【００４４】
本発明は上記の点に鑑みてなされたもので、データの入出力を効率よく行なえるインタフェース装置を提供することを目的とする。
【課題を解決するための手段】
【００４５】
本発明は、チャネル毎にバッファメモリを設け、複数のチャネルのバッファメモリでデータの同一性を保証しつつ、データの入出力を行なう。
【００４６】
本発明によれば、バッファメモリから直接複数のチャネルで供給されたデータを読み出すことができるので、データを効率よく入出力できる。
【発明の効果】
【００４７】
本発明によれば、チャネル毎にバッファメモリを設け、複数のチャネルのバッファメモリでデータの同一性を保証しつつ、データの入出力を行なうことにより、バッファメモリから直接複数のチャネルで供給されたデータを読み出すことができるので、データを効率よく入出力できる等の特長を有する。
【発明を実施するための最良の形態】
【００４８】
図７に本発明の第１実施例のブロック構成図を示す。同図中、図２と同一構成部分には同一符号を付し、その説明は省略する。
【００４９】
本実施例のハードディスクコントローラ１００は、インタフェース３１、バッファマネージャ３２、ディスクフォーマッタ３３、プロセッサ３４、プログラムメモリ３５に加えて、共用メモリ１０１、マルチプレクサ１０２、設定回路１０３を有する構成とされている。
【００５０】
このとき、プログラムメモリ３５は、ハードディスクコントローラ１００に低機能ファームウェアを搭載する場合に、最適な容量、すなわち、低機能ファームウェアのプログラムを格納できる容量に設定されている。このため、ハードディスクコントローラ１００に高機能ファームウェアのプログラムを搭載する場合には、プログラムメモリ３５だけでは容量が不足する。そこで、高機能ファームウェアを搭載する場合には、プログラムメモリ３５に格納しきれなかった分のプログラムを共用メモリ１０１に格納する。すなわち、共用メモリ１０１をプログラムメモリとして用いる。
【００５１】
また、ハードディスクコントローラ１００に低機能ファームウェアを搭載する場合には、低機能ファームウェアはプログラムメモリ３５に格納され、共用メモリ１０１は用いられない。このため、共用メモリ１０１を外付けのバッファメモリ２３に代えてバッファメモリとして用い、外付けのバッファメモリ２３を削除する。
【００５２】
共用メモリ１０１をプログラムメモリとして用いるか、バッファメモリとして用いるかは、マルチプレクサ１０２及び設定回路１０３によって外部からの指示に基づいて切り換え可能とされている。
【００５３】
図８に本発明の第１実施例の共用メモリの切り換え動作を説明するための図を示す。
【００５４】
設定回路１０３は、例えば、レジスタから構成されており、切換端子Ｔｓの電圧に応じて論理値「１」又は「０」が設定される。例えば、切換端子Ｔｓに＋５〔Ｖ〕が印加されると、論理値「１」が設定され、切換端子Ｔｓが接地レベルにされると、論理値「０」が設定される。
【００５５】
設定回路１０３に論理値「１」が設定されると、マルチプレクサ１０２は共有メモリ１０１をバス側からアクセス可能とする。論理回路１０３に論理値「０」が設定されると、マルチプレクサ１０２は共有メモリ１０１をバッファマネージャ３２からアクセス可能とする。
【００５６】
以上のようにハードディスクコントローラ１００を高機能ファームウェアで動作させたい場合には、切換端子Ｔｓに＋５〔Ｖ〕を印加し、設定回路１０３に論理値「１」を設定することにより、電源投入時にＲＯＭ２５に予め記憶された高機能ファームウェアプログラムがプログラムメモリ３５及び共用メモリ１０１に分散して格納され、高機能ファームウェアが実行可能となる。このとき、外付けでバッファメモリ２３を設け、記録／再生データを一時的に記憶するようにする。
【００５７】
また、ハードディスクコントローラ１００を低機能ファームウェアで動作させたい場合には、切換端子Ｔｓに０〔Ｖ〕を印加し、設定回路１０３に論理値「０」を設定することにより、電源投入時にＲＯＭ２５に予め記憶された低機能ファームウェアプログラムがプログラムメモリ３５に格納され、低機能ファームウェアが実行可能となる。このとき、共用メモリ１０１は、バッファマネージャ３２からアクセス可能となり、バッファメモリとして機能する。このため、外付けのバッファメモリ２３が不要となり、データ転送の高速化、消費電力の低電力化、低価格化が可能となる。
【００５８】
本実施例のハードディスクコントローラ１００は、高機能ファームウェア及び低機能ファームウェアの両方に共通で用いることができる。よって、ハードディスクコントローラ１００の低コスト化を図ることができ、ハードディスク装置のコストダウンを図ることができる。
【００５９】
次に、第２の目的を解決する実施例について説明する。
【００６０】
図９に本発明の第２実施例のブロック構成図を示す。同図中、図４と同一構成部分には同一符号を付し、その説明は省略する。
【００６１】
本実施例の信号処理回路３００は、テストレジスタ３０１、デコーダ３０２、セレクタ３０３、同期回路３０４、マルチプレクサ３０５、ＰＬＬ回路３０６、レジスタ設定回路３０７を含む構成とされている。
【００６２】
テストレジスタ３０１は、テストのオン／オフを決定するテストオン／オフ情報を格納するためのテストオン／オフ情報格納領域３０１ａ、信号を選択するためのアドレスを格納するためのアドレス領域３０１ｂ−１〜３０１ｂ−ｎ、ＰＬＬ回路３０６の逓倍数を設定する情報を格納するためのＰＬＬ逓倍設定領域３０１ｃを含む構成とされている。テストオン／オフ情報格納領域３０１ａに格納されるテストオン／オフ情報及びアドレス領域３０１ｂ−１〜３０１ｂ−ｎに格納されるアドレスは、デコーダ３０２に供給され、ＰＬＬ逓倍設定領域３０１ｃに格納される。
【００６３】
デコーダ３０２には、テストレジスタ３０１からテストオン／オフ情報及びテストする信号に応じたアドレスが供給される。デコーダ３０２は、テストオン／オフ情報がテストオン状態であるときに動作する。デコーダ３０２は動作すると、アドレス格納領域３０１ｂ−１〜３０１ｂ−ｎに格納されたアドレスに基づいて選択信号を生成し、セレクタ３０３に供給する。
【００６４】
セレクタ３０３は、デコーダ３０２からの選択信号に基づいて内部ロジック回路５１のうち所定箇所の信号を選択して、同期回路３０４に供給する。同期回路３０４は、セレクタ３０３により選択された信号をＰＬＬ回路３０６からのクロックに同期させる。ＰＬＬ回路３０６は、内部ロジック回路５１の基準クロックをテストレジスタ３０１のＰＬＬ逓倍設定領域３０１ｃに設定されたＰＬＬ逓倍値に基づいて逓倍したクロックを生成し、同期回路３０４に供給している。
【００６５】
同期回路３０４でＰＬＬ回路３０６からのクロックに同期されたセレクタ３０３からの信号は、マルチプレクサ３０５に供給される。マルチプレクサ３０５には、同期回路３０４でセレクタ３０３からの信号を同期させたクロックが供給されている。マルチプレクサ３０５は、同期回路３０４からのクロックに基づいて同期回路３０４からの信号を順次選択してテスト出力端子Ｔtoutに供給する。また、マルチプレクサ３０５に供給されたクロックは、ストローブ信号としてストローブ端子Ｔstrに供給される。
【００６６】
ストローブ端子Ｔstrから出力されるストローブ信号に基づいてテスト出力端子Ｔtoutの出力信号が内部ロジック回路５１のどの部分の信号かを識別可能となる。
【００６７】
次にテスト時の動作を図面とともに説明する。
【００６８】
図１０に本発明の第２実施例のテスト時の動作を説明するための図を示す。図１０（Ａ）は内部基準クロック、図１０（Ｂ）、（Ｃ）はテストすべき信号、図１０（Ｄ）はＰＬＬ回路３０６からの出力クロック、図１０（Ｅ）はテスト出力端子Ｔtoutからのテスト出力信号を示す。
【００６９】
テストレジスタ３０１のアドレス領域３０１ｂ−１〜３０１ｂ−ｎに格納されたアドレスに基づいて選択されたｎ個の信号が図１０（Ａ）に示される内部基準クロックの１周期の間でテスト出力端子Ｔtoutから順次出力される。このとき、図１０（Ｄ）に示されるＰＬＬ回路３０６の出力クロックの時刻ｔ１の立下りで図１０１０（Ｂ）に示す信号が選択され、ＰＬＬ回路３０６の出力クロックの時刻ｔ２で図１０（Ｃ）に示す信号が選択される。
【００７０】
なお、ＰＬＬ回路３０６の出力クロックは、図１０（Ｄ）に示されるように図１０（Ａ）に示される内部基準クロックの１周期のｎ倍の周波数とされている。このため、ＰＬＬ回路３０６の出力クロック、すなわち、ストローブ端子Ｔstrからの信号を出力することにより、テスト出力端子Ｔtoutから出力される信号の切換タイミングを認識でき、テスト出力端子Ｔtoutからの出力信号を識別可能となる。
【００７１】
次に、第３の目的を解決するための実施例について説明する。
【００７２】
図１１に本発明の第３実施例のブロック構成図を示す。同図中、図５と同一構成部分には同一符号を付し、その説明は省略する。
【００７３】
本実施例の情報処理装置４００は、インタフェース回路４０１，４０２、バッファメモリ４０３，４０４、ハードディスクコントローラ４０５、データ管理テーブル４０６、ＦＩＦＯ４０７、４０８を有する構成とされている。
【００７４】
インタフェース回路４０１はコンピュータＡとのインタフェースをとる。インタフェース回路４０２はコンピュータＢとのインタフェースをとる。バッファメモリ４０３は、コンピュータＡの入出力データを記憶する。バッファメモリ４０４は、コンピュータＢの入出力データを記憶する。
【００７５】
図１２に本発明の第３実施例のデータ管理テーブルのデータ構成図を示す。
【００７６】
データ管理テーブル４０６は、バッファメモリ４０３、４０４とハードディスク１１とのデータの格納位置を対応付けるテーブルであり、ハードディスク１１上のアドレスに対応して、コンピュータＡのバッファメモリ４０３のアドレス及びコンピュータＢのバッファメモリ４０４のアドレス並びに、更新済フラグ、アクセス抑止フラグが記憶可能とされている。
【００７７】
更新済フラグは、ライトバックが行なわれたか否かを示すライトバックフラグ、ステージングされているか否かを示すステージングフラグがコンピュータＡ、Ｂ夫々に設定可能とされている。
【００７８】
アクセス抑止フラグは、コピー中フラグ及び使用中フラグを含む構成とされている。コピー中フラグは、コピー中であるか否かを示すフラグであり、コンピュータＢからコンピュータＡからのコピー中か、コンピュータＡからコンピュータＢからのコピー中かで別々に設定可能とされている。使用中フラグは、リード又はライト中か否かを示すフラグで、コンピュータＡ、Ｂ夫々に設定可能とされている。
【００７９】
図１３に本発明の第３実施例の処理フローチャートを示す。
【００８０】
本実施例では、まず、バッファメモリ４０３とバッファメモリ４０４との間でのデータのコピーは行なわないモード１を示す、これは、コンピュータＡとコンピュータＢとのキャッシュ処理を独立に制御し、一方で、キャッシュメモリ上にデータがあっても他方のチャネルで同じデータにリードが要求されてもキャッシュミスとする方法である。
【００８１】
まず、ライトコマンドを実行するときの動作について説明する。
【００８２】
ライトコマンドを実行する場合、データ管理テーブル４０６を参照して、当該セクタが登録されているか否かを判定する。データ管理テーブル４０６に当該セクタが登録されている場合には、ステップＳ２−１でデータ管理テーブル４０６のアクセス抑止フラグの使用中フラグを参照して、他方のチャネルの使用中フラグがオンしており、自己のチャネルが抑止されているか否かを判定する。
【００８３】
ステップＳ２−１で、自己のチャネルが抑止されていない場合には、ステップＳ２−２でライトバックフラグがオンか否かを判定する。ステップＳ２−２でライトバックフラグがオンの場合には、ステップＳ２−３で処理モードがモード１かモード２かを判定する。
【００８４】
ステップＳ２−３で処理モードがモード１の場合には、ステップＳ２−４で、ライトバックデキュー処理を生成し、ライトバックキューにつなぐ。
【００８５】
図１４にキューにつながれた処理のデキューの処理フローチャートを示す。
【００８６】
ライトバックデキュー処理では、まず、ステップＳ３−１で他方のチャネルが使用中か否かを判定する。ステップＳ３−１で、他方のチャネルが使用中のときには、自己のチャネルの処理をアイドル状態とし、処理を終了する。
【００８７】
また、他方のチャネルが使用中でなければ、ステップＳ３−２で自己のチャネルの使用中フラグをセットし、シーク動作を開始する。シーク動作が完了すると、シーク完了処理が実行される。
【００８８】
図１５にシーク完了処理の処理フローチャートを示す。
【００８９】
シーク完了処理では、まず、ステップＳ４−１で内部処理か否かを判定する。ステップＳ４−１でシーク動作が内部処理である場合には、ステップＳ４−２でライトバック処理を行なうか否かを判定する。
【００９０】
ステップＳ４−２でライトバック処理を行なうのでなければ、他の処理を実行する。ステップＳ４−２でライトバック処理を行なうのであれば、ステップＳ２−３で、ライトバック処理を行ない、他方のチャネルのライトバックフラグ、自己の使用中フラグをオフにする。
【００９１】
次に、ステップＳ４−４で、モード２で動作させているか否かを判定し、モード１で動作している場合には、そのままアイドル状態とされ、モード２で動作している場合には、ステップＳ４−５で自己のライトバックフラグをオフした後、自己のチャネルをアイドル状態とする。
【００９２】
また、ステップＳ４−１で、内部処理でない場合には、ステップＳ４−６で処理を要求したコンピュータＡと結合する。次にステップＳ４−７でハードディスク１１からのデータをバッファメモリ４０３、４０４経由で自己のチャネルに転送するとともに、データ管理テーブル４０６に登録する。登録後、ステップＳ４−８で自己のチャネルの使用中フラグをオフした後、自己のチャネルをアイドル状態とする。
【００９３】
図１３に戻って説明を続ける。
【００９４】
ステップＳ２−２で自己のチャネルのライトバックフラグがオフの場合には、次に、ステップＳ２−５で自己のチャネルのコマンドがライトコマンドが否かが判定される。
【００９５】
ステップＳ２−５で自己のチャネルのコマンドがライトコマンドの場合には、ステップＳ２−６で自己のチャネルの使用中フラグ及びライトバックフラグをオンする。次にステップＳ２−７で自己のチャネルの外部からのデータを自己のバッファメモリ４０３又は４０４に記憶する。次にステップＳ２−８で自己のチャンネルの使用中フラグをオフした後、自己のチャネルをアイドル状態とする。
【００９６】
また、ステップＳ２−５でコマンドがライトコマンドでない場合には、ステップＳ２−９でバッファメモリ４０３又は４０４にデータが存在するか否か、すなわち、キャッシュヒットか否かを判定する。ステップＳ２−９でキャッシュヒットの場合には、ステップＳ２−１０でキャッシュヒットが自己のチャネルのバッファメモリ４０３又は４０４かを判定する。ステップＳ２−１０で自己のチャネルのバッファメモリ４０３又は４０４でキャッシュヒットした場合には、ステップＳ２−１１で自己のチャネルの使用中フラグをオンし、バッファメモリ４０３又は４０４からデータをリードした後、自己の使用中フラグをオフして、自己のチャネルをアイドル状態とする。
【００９７】
また、ステップＳ２−１０で他方のチャネルのバッファメモリ４０３又は４０４でキャッシュヒットした場合には、ステップＳ２−１２で動作モードがモード１かモード２かを判定する。ステップＳ２−１２で動作モードがモード１に設定されている場合には、ステップＳ２−１３で自己のチャネルの使用中フラグをオンし、シーク動作を開始した後、アイドル状態とする。
【００９８】
次に、モード２について説明を行なう。モード２は、バッファメモリ間でデータのコピーをすることにより、メモリ上のデータを等価にしてキャッシュ動作を行なうモードである。
【００９９】
図１６にモード２の処理フローチャートを示す。
【０１００】
モード２では、まず、ステップＳ５−１で自己のチャネルのコピーフラグ及び使用中フラグをオンする。次にステップＳ５−２でデータをＦＩＦＯ４０７又は４０８にコピーした後に、自己のチャネルのコピーフラグをオフする。次にステップＳ５−３で他方のチャネルのステージングフラグをオフする。
【０１０１】
次に、ステップＳ５−４で自己のチャネルのコマンドがライトコマンドか否かを判定する。ステップＳ５−４で自己のチャネルのコマンドがライトコマンドである場合にはステップＳ５−５で自己の使用中フラグをセットし、自己のライトバックフラグをリセットしてアイドル状態に戻り、リードコマンドである場合にはステップＳ２−１２へ戻り、自己のチャネルのバッファメモリ４０３又は４０４からデータを読み出すキャッシュリードを行なう。
【０１０２】
また、動作モードとしてモード２が設定されている場合には、別途スキャン処理が実行される。スキャン処理は、処理の空時間に実行される。
【０１０３】
図１７にスキャン処理の処理フローチャートを示す。
【０１０４】
スキャン処理では、まず、ステップＳ６−１でいずれかのチャネルのライトバックフラグがオンか否かが判定される。ステップＳ６−１でライトバックフラグがオンのときには、ステップＳ６−２でフラグオンでない方のチャネルが抑止状態か否かを判定する。ステップＳ６−２で抑止状態でない場合には、次にステップＳ６−３で自己のチャネルのコピー中フラグをオンし、ＦＩＦＯ４０７又は４０８にデータを記憶し、データをＦＩＦＯ４０７又は４０８に記憶した後、自己のチャネルのコピー中フラグをオフする。
【０１０５】
次にステップＳ６−４で他方のチャネルのステージングフラグをオフする。さらに、ステップＳ６−５で自己のチャネルのライトバックフラグをオンした後、自己のチャネルをアイドル状態とする。
【０１０６】
また、ステップＳ６−１で自己のチャネルのライトバックフラグがオフの場合、ステップＳ６−６で自己のチャネルのステージングフラグがオンか否かが判定される。ステップＳ６−６で、自己のチャネルのステージングフラグがオンの場合には、ステップＳ６−２が実行され、ステップＳ６−６で自己のチャネルのステージングフラグがオフのときには、ステップＳ６−７でスキャンポインタを進めた後、自己のチャネルをアイドル状態とする。
【０１０７】
図１８に本発明の第３実施例の動作説明図を示す。
【０１０８】
本実施例によれば、ステップＳ１でコンピュータＡにライトコマンドによりバッファメモリ４０３にデータがライトされると、ステップＳ１’に示すようにライトバックフラグによりコンピュータＢのコマンドは抑止される。
【０１０９】
ステップＳ２でハードディスク１１にコンピュータＡの更新データが反映されると、コンピュータＢ側のライトバックフラグはリセットされる。ライトバックフラグがリセットされると、次に、ステップＳ３でリードコマンドによりハードディスク１１からバッファメモリ４０４にデータが読み出され、バッファメモリ４０４からコンピュータＢにリードコマンドによりデータのリードが行なわれると、コンピュータＢの使用中フラグによりステップＳ４’に示されるようにコンピュータＡのコマンドが抑止される。一方で処理中の媒体上の領域に対する他方のアクセスが抑止されることにより、同一領域への処理が重複することによるデータ破壊が防止できる。
【０１１０】
図１９に本発明の第３実施例のモード２の動作説明図を示す。
【０１１１】
モード２では、バッファメモリ４０３のデータＤ２からデータＤ２’をコピーして、処理の空時間にＦＩＦＯ４０８を介して更新されたデータＤ２’が転送され、バッファメモリ４０４の対応するデータＤ２がデータＤ２’に更新される。これによりバッファメモリ４０３、４０４の間で直接的にデータの転送が行なわれ、バッファメモリ４０３とバッファメモリ４０４とでデータの同一性を図ることができる。このとき、コンピュータＢでデータＤ２へのアクセス要求があった場合には、ＦＩＦＯ４０８からバッファメモリ４０４にデータＤ２’がコピーされるまでアクセス要求を待機させ、バッファメモリ４０３とバッファメモリ４０４とでデータの同一性が図られた後、コンピュータＢのデータＤ２へのアクセスが許可される。
【０１１２】
このように、異なるチャネルのバッファメモリでデータの同一性を図ることにより、バッファメモリ４０３、４０４から直接的にデータを読み出すことができ、複数のチャネルからのアクセスの高速化を図ることができる。
【０１１３】
なお、上記処理は、各チャネルで夫々実行されるので、同時にフラグをセットしようとする場合がある。これを防止するために、いずれか一方のチャネルの要求フラグのみがオンするように競合制御が行なわれている。また、要求フラグのオンが成功したか否かが各チャネルに通知されるようにしている。さらに、各チャネルからのアクセスは先着順に単一のコマンドキューにより制御している。
【０１１４】
また、本実施例では、説明を簡単にするために２チャンネルの構成について説明したが、２チャンネル以上の複数チャネルの構成についても各チャネルに対応してバッファメモリを設け、データの同一性を図ることにより、同様の作用効果を奏するものである。
【０１１５】
さらに、第１乃至第３実施例では、ハードディスクドライブについて説明したが、これに限定されるものではない。
【０１１６】
（付記１）  プログラムに基づいてデータを処理する情報処理装置において、複数の記憶部と、前記複数の記憶部のデータを前記プログラムを実行するための領域、又は、前記データのバッファ領域となるようにプログラム及びデータの流れを制御する制御部とを有する情報処理装置。
【０１１７】
（付記２）  前記制御部は、レジスタと、該レジスタに格納された値に応じてデータの流れを制御する切換部とを有することを特徴とする付記１記載の情報処理装置。
【０１１８】
（付記３）  前記制御部は、前記プログラムの容量が大きいときには前記複数の記憶部のすべてに前記プログラムを記憶し、外付けの記憶装置をデータバッファ領域とし、前記プログラムの容量が小さいときには前記複数の記憶部の一部にプログラムを記憶し、残りの記憶部を前記データのバッファ領域とするように制御することを特徴とする付記１又は２記載の情報処理装置。
【０１１９】
（付記４）  入力端子に供給される入力信号に応じた出力信号を出力端子から出力する内部ロジック回路を有する信号処理回路において、前記内部ロジック回路内から選択すべき信号を識別する識別コードを記憶する記憶部と、前記記憶部に記憶された識別コードに応じて前記内部ロジック回路から信号を選択する選択部と、前記選択部で選択された信号を順次出力する出力部とを有することを特徴とする信号処理回路。
【０１２０】
（付記５）  前記入力端子から前記記憶部に前記識別コードを記憶させる設定部を有することを特徴とする付記４記載の信号処理回路。
【０１２１】
（付記６）  前記選択部は、前記記憶部に記憶された識別コードから一つのコードを生成するデコーダと、前記内部ロジック回路から出力されるすべての信号が供給されており、前記内部ロジック回路から出力されるすべて信号のうち前記デコーダで生成されたコードに応じた信号を選択的に出力するセレクタとを有することを特徴とする付記４又は５記載の信号処理回路。
【０１２２】
（付記７）  前記出力部は、前記内部ロジック回路の基準クロックの前記出力すべき信号の数に応じた倍数した周波数の出力クロックを生成する出力クロック発生部と、前記選択部で選択された信号が並列に供給されており、前記信号を前記出力クロック発生部で発生された出力クロックに基づいてシリアルに出力するマルチプレクサを有することを特徴とする付記４乃至６のいずれか一項記載の信号処理回路。
【０１２３】
（付記８）  前記出力部は、出力される信号に同期したストローブ信号を生成するストローブ信号生成部を有することを特徴とする付記４乃至７のいずれか一項記載の信号処理回路。
【０１２４】
（付記９）  複数のチャネルで共有データを入出力するインタフェース装置において、前記チャネル毎に設けられた複数のバッファメモリと、前記複数のバッファメモリでデータの同一性を保証しつつ、データの入出力を行なう制御部を有することを特徴とするインタフェース装置。
【０１２５】
（付記１０）  前記制御部は、前記複数のバッファメモリのデータの状態を管理するデータ管理テーブルを有することを特徴とする付記９記載のインタフェース装置。
【０１２６】
（付記１１）  前記制御部は、一つのチャネルのバッファメモリのデータが更新されたときに、他のチャネルのバッファメモリへのアクセスを抑止することを特徴とする付記９又は１０記載のインタフェース装置。
【０１２７】
（付記１２）  前記制御部は、他の処理の空時間に前記バッファメモリのデータが更新されたチャネルのデータを他のチャネルのバッファメモリにコピーすることを特徴とする付記９乃至１１のいずれか一項記載のインタフェース装置。
【０１２８】
（付記１３）  前記制御部は、データを他のチャネルのバッファメモリにコピーするとき、前記他のチャネルのバッファメモリへのアクセスを抑止することを特徴とする付記１２記載のインタフェース装置。
【図面の簡単な説明】
【０１２９】
【図１】ハードディスク装置のブロック構成図である。
【図２】従来のハードディスクコントローラの一例のブロック構成図である。
【図３】従来のＬＳＩの一例のブロック構成図である。
【図４】従来のＬＳＩのテスト時の動作を説明するための図である。
【図５】従来のインタフェース装置の一例のブロック構成図である。
【図６】従来のインタフェース装置の一例の処理フローチャートである。
【図７】本発明の第１実施例のブロック構成図である。
【図８】本発明の第１実施例の共用メモリの切り換え動作を説明するための図である。
【図９】本発明の第２実施例のブロック構成図である。
【図１０】本発明の第２実施例のテスト時の動作を説明するための図である。
【図１１】本発明の第３実施例のブロック構成図である。
【図１２】本発明の第３実施例のデータ管理テーブルのデータ構成図である。
【図１３】本発明の第３実施例の処理フローチャートである。
【図１４】ライトバックデキュー処理の処理フローチャートである。
【図１５】シーク完了処理の処理フローチャートである。
【図１６】モード２の処理フローチャートである。
【図１７】スキャン処理の処理フローチャートである。
【図１８】本発明の第３実施例の動作説明図である。
【図１９】本発明の第３実施例のモード２の動作説明図である。
【符号の説明】
【０１３０】
３１  インタフェース
３２  バッファマネージャ
３３  ディスクフォーマッタ
３４  プロセッサ
３５  プログラムメモリ
５１  内部ロジック回路
１００  ハードディスクコントローラ
１０１  共用メモリ
１０２  マルチプレクサ
１０３  設定回路
３００  信号処理回路
３０１  テストレジスタ
３０２  デコーダ
３０３  セレクタ
３０４  同期回路
３０５  マルチプレクサ
３０６  ＰＬＬ回路
３０７  テストレジスタ設定回路
４００  インタフェース装置
４０１、４０２  インタフェース回路
４０３，４０４  バッファメモリ
４０５  ハードディスクコントローラ
４０６  データ管理テーブル
４０７、４０８  ＦＩＦＯ
【図１】
2006172710.tif 000003
【図２】
2006172710.tif 000004
【図３】
2006172710.tif 000005
【図４】
2006172710.tif 000006
【図５】
2006172710.tif 000007
【図６】
2006172710.tif 000008
【図７】
2006172710.tif 000009
【図８】
2006172710.tif 000010
【図９】
2006172710.tif 000011
【図１０】
2006172710.tif 000012
【図１１】
2006172710.tif 000013
【図１２】
2006172710.tif 000014
【図１３】
2006172710.tif 000015
【図１４】
2006172710.tif 000016
【図１５】
2006172710.tif 000017
【図１６】
2006172710.tif 000018
【図１７】
2006172710.tif 000019
【図１８】
2006172710.tif 000020
【図１９】
2006172710.tif 000021