(57)【特許請求の範囲】
【請求項１】
ＰＣＩバス上の１又は複数のＰＣＩデバイスとＡＴＡ規格のＩ／Ｏバス上のＨＤＤとの間でデータを転送する制御を行うＨＤＤコントローラであって、
前記データの高速バースト転送を実行するに際し、当該ＨＤＤコントローラが前記ＰＣＩバスのバスマスタになるマスタモードと前記ＰＣＩバスのスレーブになるスレーブモードとを有し、
前記ＰＣＩデバイスがスレーブとなってアクセスするときのデータ転送スピードが、当該ＨＤＤコントローラがスレーブとなってアクセスするときのデータ転送スピードより遅い場合に、当該ＨＤＤコントローラは前記スレーブモードで制御し、前記ＰＣＩデバイスがスレーブとなってアクセスするときのデータ転送スピードが、当該ＨＤＤコントローラがスレーブとなってアクセスするときのデータ転送スピードより速い又は同等の場合に、当該ＨＤＤコントローラは前記マスタモードで制御することを特徴とするＨＤＤコントローラ。
【請求項２】
前記マスタモードと前記スレーブモードとを切り換える手段を備えたことを特徴とする請求項１に記載のＨＤＤコントローラ。
【請求項３】
前記ＰＣＩバス上には、前記ＰＣＩデバイスとして、スレーブとなってアクセスするときのデータ転送スピードが当該ＨＤＤコントローラがスレーブとなってアクセスするときのデータ転送スピードより遅い第１のＰＣＩデバイスと、スレーブとなってアクセスするときのデータ転送スピードが当該ＨＤＤコントローラがスレーブとなってアクセスするときのデータ転送スピードより速い又は同等の第２のＰＣＩデバイスとが接続され、当該ＨＤＤコントローラは、前記ＨＤＤにＲｅａｄ／Ｗｒｉｔｅする時に、データを暗号化・復号化する暗号手段を備え、当該ＨＤＤコントローラが前記マスタモードで制御されているときと前記スレーブモードで制御されているときとによって、前記暗号手段を異ならしめることを特徴とする請求項１又は２に記載のＨＤＤコントローラ。
【請求項４】
前記スレーブモードでは、当該ＨＤＤコントローラで指定された特定のアドレスにメモリバーストされたデータを、前記ＨＤＤにＲｅａｄ／Ｗｒｉｔｅすることを特徴とする請求項１乃至３のいずれか１項に記載のＨＤＤコントローラ。
【請求項５】
当該ＨＤＤコントローラには、前記ＨＤＤに加え２台目のＨＤＤが接続され、当該ＨＤＤコントローラが前記マスタモードで制御されているときに、前記ＰＣＩデバイスの一つがスレーブとして前記２台目のＨＤＤにアクセスすることを特徴とする請求項１乃至４のいずれか１項に記載のＨＤＤコントローラ。
【請求項６】
請求項１乃至５のいずれか１項に記載のＨＤＤコントローラを備えたシステムであって、前記ＰＣＩバス上に、前記ＰＣＩデバイスとして、スレーブとなってアクセスするときのデータ転送スピードが前記ＨＤＤコントローラがスレーブとなってアクセスするときのデータ転送スピードより遅い第１のＰＣＩデバイスと、スレーブとなってアクセスするときのデータ転送スピードが前記ＨＤＤコントローラがスレーブとなってアクセスするときのデータ転送スピードより速い又は同等の第２のＰＣＩデバイスとが接続され、前記ＨＤＤコントローラは、前記第２のＰＣＩデバイスとのデータの高速バースト転送を実行する際には前記ＰＣＩバスのバスマスタとなり、前記第１のＰＣＩデバイスとのデータの高速バースト転送を実行する際には前記ＰＣＩバスのスレーブとなることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）コントローラ及びそれを搭載したシステムに関し、より詳細には、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス上のＰＣＩデバイスとＨＤＤとの間におけるデータ転送を制御するＨＤＤコントローラ、及びそのＨＤＤコントローラ及び複数の他のＰＣＩデバイスを搭載し、それらの間でアクセスを行うシステムに関する。
【背景技術】
【０００２】
従来から、パーソナルコンピュータ（ＰＣ）をはじめ各種電子機器内のデバイス間で使用されるシステムバスとしては、データ転送速度の高速化やプロセッサに依存しないシステムアーキテクチャの構築のために、ＰＣＩバスが採用されている。
【０００３】
ＰＣＩバスにおいては、全てのデータ転送はブロック転送を基本としており、これら各ブロック転送はバースト転送を用いて実現されている。これにより、ＰＣＩバスでは、最大１３３Ｍバイト／秒（データバスが３２ビット幅の時）のデータ転送速度を実現できる。また、ＰＣＩバスは、仕様上、メモリ及びＩ／Ｏアドレス空間の両方でバースト転送をサポートしている。
【０００４】
よって、Ｉ／Ｏ空間でバーストを生成するようなプロセッサ又はバスマスタがあれば、これらのマスタがＩ／Ｏバーストを発生することにより、Ｉ／Ｏデバイス間、及びシステムメモリとＩ／Ｏデバイスとの間のデータ転送などをさらに高速に行うことが可能となり、システム性能を高めることができる。
【０００５】
このような高速化を図る従来技術として、ＣＰＵ又は他のバスマスタからＰＣＩバス経由で行われる既存のＩ／ＯマップされたＩ／Ｏデバイスに対するアクセス処理の高速化を実現することを目的としたコンピュータシステムが提案されている（例えば、特許文献１を参照）。
【０００６】
特許文献１に記載のコンピュータシステムは、ＰＣＩバスの所定のＩ／Ｏアドレスに割り当てられたＩ／Ｏデバイスを、メモリ空間に割り当て、Ｉ／Ｏデバイスに対するＩ／Ｏアクセス要求に対してメモリサイクルを発生する手段と、そのメモリバーストサイクルをＩ／Ｏデバイスをアクセスするための複数の連続したＩ／Ｏサイクルに変換する手段を具備している。
【特許文献１】特許第３５７９１４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載のシステムでは、ＣＰＵなどがバスマスタになって、Ｉ／Ｏデバイスにアクセスすることが可能だが、Ｉ／Ｏアクセス要求に対してメモリサイクルを発生するので、高速なＩ／Ｏデバイスに対しては充分なバスパフォーマンスを稼ぐことができなかった。すなわち、特許文献１に記載のシステムでは、Ｉ／Ｏアクセスとメモリアクセスとをブリッジ回路で切り換えており、少なくともメモリアクセスしている分に関しては、ＣＰＵが介在しなくてもよいが、結局は、毎回バースト期間の到来によりＣＰＵが介在することとなり、高速なＩ／Ｏデバイスに対しては充分なバスパフォーマンスで処理が遂行されているとは言えなかった。
【０００８】
さらに、特許文献１に記載の技術は、ＣＰＵがバスマスタとなって特定のＩ／Ｏデバイスにアクセスするものであり、そのＩ／ＯデバイスはＨＤＤである場合もある。そして、ＨＤＤを制御するＨＤＤコントローラは、ＨＤＤへのアクセスを伴ったデータ転送をバスマスタとなって行っており、そのときターゲットとなる他のＰＣＩデバイスがスレーブアクセス（ターゲットアクセス）の遅いデバイスであると、バスパフォーマンスを生かし切れない。
【０００９】
例えば、ＨＤＤコントローラがターゲットアクセスの遅い他のＰＣＩデバイスＡにバス接続されているものとする。ＰＣＩデバイスＡがターゲットとなって、ＨＤＤコントローラがターゲットアクセスが遅いデバイスＡにアクセスしているときには、図３において左半分のタイミングチャート（８バースト分のデータ転送例）で示すような処理がなされる。すなわち、ＰＣＩデバイスＡはターゲットアクセスが遅いのでＰＣＩデバイスＡのＰＣＩ  Ｉ／Ｆから発せられるＴＲＤＹ信号によって、ＨＤＤコントローラを待たせてしまい、効率的な転送処理が実行できているとは言えない。
【００１０】
このことは、特許文献１に記載の技術に限らず一般的に言えることであり、ＨＤＤコントローラに接続された他のＰＣＩデバイスがスレーブアクセスの遅いデバイスであること、並びに、スレーブアクセスが遅いＰＣＩデバイスを備えたＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）チップにＨＤＤコントローラが接続されることは、回路の組み合わせなどの設計上、多々生じ得る。
【００１１】
スレーブアクセスによるデータ転送が遅くなる理由の一つとして、或るＰＣＩデバイスでは、ＰＣＩデバイスからデータを受け取ったら直ぐにＰＣＩバスを停止させてローカルメモリに書き込みを実行し、書き終わったら再度ＰＣＩバス上のデータを要求するといった処理がなされている。なお、一方で、ＰＣＩバスはアドレスをまず送出してデータを続けて送出するバースト転送により高速化を図っており、そこでは、データを受け取ったらデータを例えば３２バースト分だけ全部まとめた後に、例えばページメモリに書き込む際の高速化を行っている。また、ＰＣＩバスの停止及び再要求の繰り返しを実行することを改良すればよいが、ＰＣＩバスコントローラの根本的な思想が高速化を考えたものではなく、改良は困難である。
【００１２】
本発明は、上述のごとき実情に鑑みてなされたものであり、ＨＤＤコントローラ及びそれを備えたシステムにおいて、ＨＤＤコントローラ自身に比べターゲットアクセスが遅いＰＣＩデバイスとターゲットアクセスが速い又は同等のＰＣＩデバイスが混在した場合に、ターゲットアクセスが遅いＰＣＩデバイスとＨＤＤコントローラの制御対象となるＨＤＤとの間でデータアクセスを行う場合であっても、バスパフォーマンスを最大限に生かしてデータのバースト転送を実行することを可能にすることを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、上述のごとき課題を解決するために、以下の各技術手段によりそれぞれ構成される。
【００１４】
第１の技術手段は、ＰＣＩバス上の１又は複数のＰＣＩデバイスとＡＴＡ規格のＩ／Ｏバス上のＨＤＤとの間でデータを転送する制御を行うＨＤＤコントローラであって、前記データの高速バースト転送を実行するに際し、当該ＨＤＤコントローラが前記ＰＣＩバスのバスマスタになるマスタモードと前記ＰＣＩバスのスレーブになるスレーブモードとを有し、前記ＰＣＩデバイスがスレーブとなってアクセスするときのデータ転送スピードが、当該ＨＤＤコントローラがスレーブとなってアクセスするときのデータ転送スピードより遅い場合に、当該ＨＤＤコントローラは前記スレーブモードで制御し、前記ＰＣＩデバイスがスレーブとなってアクセスするときのデータ転送スピードが、当該ＨＤＤコントローラがスレーブとなってアクセスするときのデータ転送スピードより速い又は同等の場合に、当該ＨＤＤコントローラは前記マスタモードで制御することを特徴としたものである。
【００１５】
第２の技術手段は、第１の技術手段において、前記マスタモードと前記スレーブモードとを切り換える手段を備えたことを特徴としたものである。
【００１７】
第３の技術手段は、第１又は第２の技術手段において、前記ＰＣＩバス上には、前記ＰＣＩデバイスとして、スレーブとなってアクセスするときのデータ転送スピードが当該ＨＤＤコントローラがスレーブとなってアクセスするときのデータ転送スピードより遅い第１のＰＣＩデバイスと、スレーブとなってアクセスするときのデータ転送スピードが当該ＨＤＤコントローラがスレーブとなってアクセスするときのデータ転送スピードより速い又は同等の第２のＰＣＩデバイスとが接続され、当該ＨＤＤコントローラは、前記ＨＤＤにＲｅａｄ／Ｗｒｉｔｅする時に、データを暗号化・復号化する暗号手段を備え、当該ＨＤＤコントローラが前記マスタモードで制御されているときと前記スレーブモードで制御されているときとによって、前記暗号手段を異ならしめることを特徴としたものである。
【００１８】
第４の技術手段は、第１乃至第３のいずれかの技術手段において、前記スレーブモードでは、当該ＨＤＤコントローラで指定された特定のアドレスにメモリバーストされたデータを、前記ＨＤＤにＲｅａｄ／Ｗｒｉｔｅすることを特徴としたものである。
【００１９】
第５の技術手段は、第１乃至第４のいずれかの技術手段において、当該ＨＤＤコントローラには、前記ＨＤＤに加え２台目のＨＤＤが接続され、当該ＨＤＤコントローラが前記マスタモードで制御されているときに、前記ＰＣＩデバイスの一つがスレーブとして前記２台目のＨＤＤにアクセスすることを特徴としたものである。
【００２０】
第６の技術手段は、第１乃至第５のいずれかの技術手段におけるＨＤＤコントローラを備えたシステムであって、前記ＰＣＩバス上に、前記ＰＣＩデバイスとして、スレーブとなってアクセスするときのデータ転送スピードが前記ＨＤＤコントローラがスレーブとなってアクセスするときのデータ転送スピードより遅い第１のＰＣＩデバイスと、スレーブとなってアクセスするときのデータ転送スピードが前記ＨＤＤコントローラがスレーブとなってアクセスするときのデータ転送スピードより速い又は同等の第２のＰＣＩデバイスとが接続され、前記ＨＤＤコントローラは、前記第２のＰＣＩデバイスとのデータの高速バースト転送を実行する際には前記ＰＣＩバスのバスマスタとなり、前記第１のＰＣＩデバイスとのデータの高速バースト転送を実行する際には前記ＰＣＩバスのスレーブとなることを特徴としたものである。
【発明の効果】
【００２１】
本発明によれば、ＨＤＤコントローラ及びそれを備えたシステムにおいて、ＨＤＤコントローラ自身に比べターゲットアクセスが遅いＰＣＩデバイスとターゲットアクセスが速い又は同等のＰＣＩデバイスが混在した場合に、ターゲットアクセスが遅いＰＣＩデバイスとＨＤＤコントローラの制御対象となるＨＤＤとの間でデータアクセスを行う場合であっても、バスパフォーマンスを最大限に生かしてデータのバースト転送を実行することを可能にする。
【発明を実施するための最良の形態】
【００２２】
図１は、本発明の一実施形態に係るＨＤＤコントローラ並びにそれに接続されたＰＣＩデバイスを搭載したシステムの一構成例を示すブロック図で、図中、１はＨＤＤコントローラ、２はＨＤＤ、３はＰＣＩデバイスＡ、４はＰＣＩデバイスＡ（３）のページメモリ、５はＰＣＩデバイＢ、６はＰＣＩデバイスＢ（５）のページメモリ、１１はＰＣＩ  Ｉ／Ｆ、１２はＰＣＩターゲット制御部、１３はＰＣＩイニシエータ制御部、１４はマルチプレサ（ＭＰＸ）、１５はバーストアクセス用デュアルポートメモリ、１６はＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）側制御部である。
【００２３】
本発明の一実施形態に係るシステム（以下、本システムという）は、ＨＤＤ２をＡＴＡ（ＩＤＥ）規格のＩ／Ｏバス（ＡＴＡバス）によって接続した本発明に係るＨＤＤコントローラ１と、これらでなるＰＣＩデバイスとは別のＰＣＩデバイスＡ（３）及びＰＣＩデバイスＢ（５）とが、ＰＣＩバス上に搭載されているシステムである。ここで、ＡＴＡはバスの規格であり、ＡＴＡ−２，ＡＴＡＰＩ等の規格も含み、本発明を適用可能である。
【００２４】
ＨＤＤコントローラ１は、ＰＣＩバス上の１又は複数のＰＣＩデバイス（ここではデバイスＡ，Ｂで例示）とＡＴＡバス上のＨＤＤ２との間でデータを転送する制御を行う。すなわち、ＨＤＤコントローラ１は、ＰＣＩバス上のデータをＡＴＡ上のＨＤＤに（入出力）転送する。ここで実行される制御は、主として、ＰＣＩバス上のＰＣＩデバイスからＨＤＤ２へのデータ書き込み処理、ＨＤＤ２からＰＣＩデバイスへのデータ読み出し処理、並びに、本発明に係るマスタモード／スレーブモードの切り換えに伴う処理に対するものである。
【００２５】
ＰＣＩデバイスＡ（３）は、ローカルバスによって接続されたページメモリ４上のデータに対し読み書き可能なメモリデバイスである。同様に、ＰＣＩデバイスＢ（５）は、ローカルバスによって接続されたページメモリ６上のデータに対し読み書き可能なメモリデバイスである。ここで前提として、ＰＣＩデバイスＡ（３）はＨＤＤコントローラ１に比べスレーブアクセスが遅いデバイスとし、逆に、ＰＣＩデバイスＢ（５）はＨＤＤコントローラ１に比べスレーブアクセスが速い或いは同程度のデバイスとし、本発明の説明を行う。つまり、ＰＣＩデバイスＡ（３）がスレーブとなってアクセスするときのデータ転送スピードが、ＨＤＤコントローラ１がスレーブとなってアクセスするときのデータ転送スピードより遅く、ＰＣＩデバイスＢ（４）がスレーブとなってアクセスするときのデータ転送スピードが、ＨＤＤコントローラ１がスレーブとなってアクセスするときのデータ転送スピードより速い又は同等であるものとして、本発明の説明を行う。なお、図１では示していないが、当然、ＰＣＩデバイスＡ（３）及びＰＣＩデバイスＢ（５）においてもそれぞれＰＣＩ  Ｉ／ＦをもったＰＣＩコントローラが搭載されている。
【００２６】
ＰＣＩデバイスＡ（３）としては、例えば画像処理系のＡＳＩＣ（特定用途向け集積回路）が、ＰＣＩデバイスＢ（５）としては、例えば本システムのシステムＡＳＩＣが挙げられる。この例におけるシステムとしては、ＰＣＩバス上のページメモリ等のメモリ（ページメモリ４又はページメモリ６）のデータをＨＤＤ２に書くことが可能な多機能の複合機等の画像処理装置が挙げられ、後述するように書き込みや読み出しの際に暗号化及び復号化（データ消去機能を伴ってもよい）を併せて実行するようなシステムであってもよい。
【００２７】
本発明に係るＨＤＤコントローラ１は、データの高速バースト転送（例えばＤＭＡ転送）を実行するに際し、すなわち高速バースト転送モードを行うにあたって、マスタモードとスレーブモードとをもつ。マスタモードとは、ＨＤＤコントローラ１自身がＰＣＩバスのバスマスタになるモードで、スレーブモードとはＰＣＩバスのスレーブになるモードである。
【００２８】
マスタ／スレーブのいずれのモードを採用するかは、データのやり取りの対象となるメモリに接続されたＰＣＩデバイスがスレーブアクセスについてＨＤＤコントローラよりも速いか遅いかによって決定するとよい。遅いデバイスであった場合には、ＨＤＤコントローラ１はスレーブモードで制御し、ＨＤＤコントローラ１より速い或いは同等のデバイスであった場合には、ＨＤＤコントローラ１はマスタモードで制御するようにするとよい。
【００２９】
また、ＡＴＡは、例えば、最大転送速度１００ＭＢ／秒で転送できるＡＴＡ１００や、同様の定義でのＡＴＡ６６、ＡＴＡ１３３等の規格がある。そして、ＨＤＤを高速で動かすデータ転送モードと低速で動かすデータ転送モードとがある。例えば、ＡＴＡ１３３の場合、１３３ＭＢ／秒の高速で動かすデータ転送モードと、それより低速で動かすデータ転送モードとがある。従って、ＡＴＡでのデータ転送モードのように、対象となっているＰＣＩデバイスの現在のデータ転送モードにおけるスレーブアクセス速度と、ＨＤＤコントローラ１のスレーブアクセスの速度とを比較して、マスタ／スレーブのいずれのモードを使用するかを決定するようにしてもよい。
【００３０】
さらに、ＨＤＤコントローラ１では、マスタモードとスレーブモードとを切り換える手段を備えることが好ましい。この手段としては、例えば、ＰＣＩバス上のＣＰＵがレジスタ設定により、通常、ＨＤＤコントローラ１をバスマスタとして機能させるようにしておき、且つスレーブモードにするときには図４を参照して後述するような設定を行っておく。すなわち、ＨＤＤコントローラ１でＰＣＩスレーブモードベースアドレス（以下、スレーブアドレスという）を指定しておき、他のＰＣＩデバイス（ここではＰＣＩデバイスＡ（３））がそのスレーブアドレス指定で伝送してきたデータをＰＣＩターゲット制御部１２が中心となって処理する。
【００３１】
これにより、ＰＣＩで高速なターゲットバーストアクセスが可能なメモリコントローラ上のローカルメモリのデータ（この例ではページメモリ６にあるデータ）をＨＤＤ２に転送する場合はＨＤＤコントローラはバスマスタ（イニシエータ）になり、ＨＤＤ２に高速に転送することができる。また、ＰＣＩでターゲットバーストアクセスが高速にできないメモリコントローラ上のローカルメモリのデータ（この例ではページメモリ４にあるデータ）を転送する場合は、メモリコントローラ（この例ではＰＣＩデバイスＡ（３））がバスマスタになることで効率よくデータ転送ができる。
【００３２】
ＨＤＤコントローラ１は、ＰＣＩ  Ｉ／Ｆ１１、ＰＣＩターゲット制御部１２、ＰＣＩイニシエータ制御部１３、入力を選択するマルチプレサ（ＭＰＸ）１４、バーストアクセス用デュアルポートメモリ１５、及びＡＴＡ側制御部１６を備えるものとする。ＰＣＩ  Ｉ／Ｆ１１は、図４を参照して後述する装置管理情報テーブル（コンフィギュレーションレジスタ）等をもつインターフェースである。
【００３３】
ＰＣＩイニシエータ制御部１３は、ＨＤＤコントローラ１自身がＰＣＩバスのバスマスタとなるときの制御を司り、この例ではターゲットとなっているＰＣＩデバイスＢ（５）の制御も司る。ＰＣＩイニシエータ制御部１３は、デュアルポートメモリ１５へデータをＭＰＸ１４経由で出力しているか否かを表すフレーム信号を発生させ、デュアルポートメモリ１５及びＰＣＩバス上の他のＰＣＩデバイス（この例ではＰＣＩデバイスＡ，Ｂ）へ送出する。このように、フレーム信号はデータを現在転送中であるか否かを表す信号であり、フレーム信号を送出してＰＣＩバスをネゲートするまで、ＰＣＩバスを確保できる。
【００３４】
ＰＣＩイニシエータ制御部１３は、フレーム信号を提示すると共に、最初の先頭アドレスを規定して、データを所定のバースト数（例えば３２バースト）分を連続転送することで、アドレスとデータの多重化をはかっている。ＰＣＩイニシエータ制御部１３は、その３２バースト分の連続転送が終了したときに、フレーム信号をネゲートする。このように、データを何回連続して転送するかを示すバースト数は固定されており、ここで例示するようにバースト数３２であった場合には、アドレス１回でデータを３２回（３２ロングワード）連続して転送することを示している。
【００３５】
また、ＰＣＩイニシエータ制御部１３は、データ転送がデュアルポートメモリ１５内のデータのＲｅａｄであった場合にＲｅａｄアドレスを、デュアルポートメモリ１５へのＷｒｉｔｅであった場合にＷｒｉｔｅアドレスを、ＭＰＸ１４経由でデュアルポートメモリ１５に送出する。ＰＣＩイニシエータ制御部１３は、このように読み書きの時はバーストアクセス用デュアルポートメモリ１５を使って、ＡＴＡ側制御部１６にデータを転送して、ＡＴＡ側制御部１６がＡＴＡバスをコントロールしてＨＤＤ２への読み書きを実行する。一方で、外部への制御は、ＰＣＩイニシエータ制御部１３がＰＣＩ  Ｉ／Ｆ１１を介してＰＣＩバスを経由して外部のＰＣＩデバイスＡ（３），ＰＣＩデバイスＢ（５）を制御する。
【００３６】
一方、ＰＣＩターゲット制御部１２は、ＨＤＤコントローラ１自身がＰＣＩバスのスレーブ（ターゲット）となるときの制御を司り、この例では、ＰＣＩデバイスＡ（３）がバスマスタとなっているときの制御を司る。ＰＣＩターゲット制御部１２は、ＨＤＤコントローラ１がスレーブとなった場合にＰＣＩバス上の他のＰＣＩデバイス（この例ではＰＣＩデバイスＡ）から入力されるフレーム信号を受け取る。そのときのフレーム信号は例えばＰＣＩデバイスＡ（３）からＰＣＩターゲット制御部１２に転送されるデータに対してデータを入力しているか否かを表す信号となる。
【００３７】
また、ＰＣＩターゲット制御部１２は、データ転送がデュアルポートメモリ１５内のデータのＲｅａｄであった場合にＲｅａｄアドレスを、デュアルポートメモリ１５へのＷｒｉｔｅであった場合にＷｒｉｔｅアドレスを、ＭＰＸ１４経由でデュアルポートメモリ１５に送出する。
【００３８】
ＭＰＸ１４は、ＰＣＩターゲット制御部１２及びＰＣＩイニシエータ制御部１３からの入力のいずれを採用するかを選択し、選択した方の部位からの命令及びデータを出力する。ここでの選択は、単純に入力の有った方の制御部からの命令及びデータを出力するだけでもよい。
【００３９】
バーストアクセス用デュアルポートメモリ１５は、Ｒｅａｄ／Ｗｒｉｔｅ可能なデュアルポートに対応したバースト転送用のバッファメモリであり、ここでは、３２バースト分のメモリを要するものとして説明する。ここで、デュアルポートメモリ１５は、ＰＣＩターゲット制御部１２、ＰＣＩイニシエータ制御部１３、又はＡＴＡ側制御部１６を介して、ＰＣＩデバイスＡ（３）にバス接続されたページメモリ４、ＰＣＩデバイスＢ（５）にバス接続されたページメモリ６、又はＨＤＤ２に対し、データの読み込み及び書き込みが可能となっている。
【００４０】
このように、ＨＤＤコントローラ１は、デュアルポートメモリ１５を有し、ＰＣＩ上からＨＤＤ２へデータの書き込みを行う場合には、ＰＣＩ上のデータをデュアルポートメモリ１５に書き込んで、それを読み出して、ＨＤＤ２へデータを書き込む。逆の場合、ＨＤＤ２上のデータをデュアルポートメモリ１５に書き込んで、それを読み出して、ＰＣＩバス上の他のメモリ（ページメモリ４，６等）に書き込む。
【００４１】
ＡＴＡ側制御部１６は、ＨＤＤ２とのデータのやりとりを制御する部位であり、ＨＤＤ２とデュアルポートメモリ１５との間でＡＴＡバスを介して所定バースト数（所定のＰＣＩバースト数ともいう。ここでは３２バースト分で例示）のデータ転送を行うよう制御する。また、ＡＴＡ側制御部１６は、データ転送がデュアルポートメモリ１５内のデータのＲｅａｄであった場合にＲｅａｄアドレスを、デュアルポートメモリ１５へのＷｒｉｔｅであった場合にＷｒｉｔｅアドレスを、デュアルポートメモリ１５に送出する。
【００４２】
なお、本システムにおいて、ＨＤＤコントローラ１と同じＰＣＩバス上には、別のＰＣＩデバイスが少なくとも一つ設けられていればよく、その場合、後述するようにターゲットアクセスの速度によって、そのＰＣＩデバイスとのやり取りを、ＨＤＤコントローラ１がバスマスタとなって実行するのかスレーブとなって実行するのかが自然と決定されて、データのバースト転送が実行されることとなる。また、ＨＤＤコントローラ１が３つ以上のＰＣＩデバイスに接続されていた場合にも、同様に、現在処理の対象となっているＰＣＩデバイスとＨＤＤコントローラ１のどちらがＰＣＩバスのマスタとなるのかスレーブとなるのかが自然と決定され、それに基づきデータのバースト転送が実行される。
【００４３】
図２は、図１のシステムにおけるＰＣＩデバイスＡへのデータ転送及びＢへのデータ転送を連続して実行したときのタイミングチャートを示す図で、図３は、図２と同様のデータ転送を従来のＨＤＤコントローラで実行したときのタイミングチャートを示す図である。ここで、図３に関し、従来のＨＤＤコントローラとは、自身に接続されたＨＤＤへのアクセスに係わるデータ転送を実行する際にはバスマスタとなるコントローラを指す。
【００４４】
なお、図２及び図３では、紙面の関係上、データを８バースト転送することを前提としたタイミングチャートを示しており、その説明も８バースト転送を採用した場合について行っている。また、図２及び図３では、ＰＣＩデバイスＡにデータを転送後、ＰＣＩデバイスＢへデータを転送した場合のタイミングチャートを示しているが、データ転送の順番や転送量さらには転送方向についてはこの例のみでまかなえるものではなく、さらに一方のＰＣＩデバイスのデータのみを取り扱っているときもあるが、本発明に係わる部分は同様であり説明を省略する。
【００４５】
また、図２及び図３において、ＦＲＡＭＥ＃信号はデータ転送中か否かを示す信号（すなわちバスサイクルの開始及び終了を示す信号）、Ａはアドレス信号、Ｄはデータ信号、ＩＲＤＹ＃はバスマスタ（イニシエータ）がデータの入出力の準備を完了していることを示す信号、ＴＲＤＹ＃はターゲットがデータの入出力の準備が完了していることを示す信号である。バスマスタとなったＰＣＩデバイス（ＨＤＤコントローラ１である場合も含む）は、データ転送の必要を生じたとき、ＦＲＡＭＥ＃信号をアサートにする。そのＰＣＩデバイスのＰＣＩ  Ｉ／Ｆは、ＩＲＤＹ＃がアサートの状態で、データのバースト転送を開始し、ＴＲＤＹ＃がネゲートされている間はデータ転送を待つ。
【００４６】
図２の右半分は、ＨＤＤコントローラ１がバスマスタ（イニシエータ）となってターゲットであるＰＣＩデバイスＢ（５）へデータを転送するケースのタイミングチャートである。このときのＴＲＤＹ信号、ＦＲＡＭＥ信号及びＩＲＤＹ信号は、それぞれＰＣＩデバイスＢ（５）のＰＣＩ  Ｉ／Ｆ、ＨＤＤコントローラ１のＰＣＩ  Ｉ／Ｆ１１から発せられる信号で、Ｌｏｗが準備済みを示す信号である。ＴＲＤＹ信号は、ＨＤＤコントローラ１のＰＣＩ  Ｉ／Ｆ１１で受け取られ、準備済みでない信号であった場合に処理を待機させる。しかし、このケースのデータ転送中は、ＴＲＤＹ信号はＬｏｗのままであり、データ転送は遅滞なく実行されているのがわかる。このように、このケースではＰＣＩデバイスＢ（５）はターゲットアクセスが速いデバイスであるので、８バースト転送によってデータがスムーズに転送できている。
【００４７】
図２の左半分は、ＰＣＩデバイスＡ（３）がバスマスタ（イニシエータ）となってターゲットであるＨＤＤコントローラ１へデータを転送するケースのタイミングチャートである。このときのＴＲＤＹ信号、ＦＲＡＭＥ信号及びＩＲＤＹ信号は、それぞれＨＤＤコントローラ１のＰＣＩ  Ｉ／Ｆ１１、ＰＣＩデバイスＡ（３）のＰＣＩ  Ｉ／Ｆから発せられる信号で、Ｌｏｗが準備済みを示す信号である。ＴＲＤＹ信号は、ＰＣＩデバイスＡ（３）のＰＣＩ  Ｉ／Ｆで受け取られ、準備済みでない信号であった場合に処理を待機させる。しかし、このケースのデータ転送中は、ＴＲＤＹ信号はＬｏｗのままであり、データ転送は遅滞なく実行されているのがわかる。このように、このケースではＰＣＩデバイスＡ（３）はターゲットアクセスが遅いデバイスであるので、よりターゲットアクセスの速いＨＤＤコントローラ１の方がターゲットとなってＰＣＩデバイスＡ（３）がイニシエータとなることで、８バースト転送によってデータがスムーズに転送できている。
【００４８】
図３の左半分は、従来のＨＤＤコントローラが従来通りバスマスタ（イニシエータ）となってターゲットであるＰＣＩデバイスＡへデータを転送するケースのタイミングチャートである。このときのＴＲＤＹ信号、ＦＲＡＭＥ信号及びＩＲＤＹ信号は、それぞれＰＣＩデバイスＡのＰＣＩ  Ｉ／Ｆ、ＨＤＤコントローラのＰＣＩ  Ｉ／Ｆから発せられる信号で、Ｌｏｗが準備済みを示す信号である。ＴＲＤＹ信号は、ＨＤＤコントローラのＰＣＩ  Ｉ／Ｆで受け取られ、準備済みでない信号であった場合に処理を待機させる。このケースのデータ転送中は、ＴＲＤＹ信号は、ＰＣＩデバイスＡがターゲットアクセスが遅い関係上、Ｈｉｇｈとなってしまうことが多くあり、データ転送は遅滞して実行されているのがわかる。
【００４９】
なお、図３の右半分のケースは、従来のＨＤＤコントローラがバスマスタとなって、ＰＣＩデバイスＢにアクセスしているときのタイミングを示している。このケースでは、図３の左半分のケースと異なり、ＰＣＩデバイスＢはターゲットアクセスが速いデバイスであるので、データ転送は遅滞なく実行されている。
【００５０】
図３の左半分と図２の左半分とを比較すると分かるように、従来のＨＤＤコントローラに比べ、本発明に係るＨＤＤコントローラ１では、従来データ転送がストップしてしまっていた時間分だけ転送時間が省略でき、データ転送を効率よく高速に実行できる。実際、従来製品に比べ、本発明に係る製品の方が３倍程度の高速化が図れた。
【００５１】
図４は、本発明の他の実施形態に係るＨＤＤコントローラのＰＣＩ  Ｉ／Ｆにおけるコンフィギュレーションレジスタの一例を示す図である。このレジスタは、図１のＨＤＤコントローラ１のＰＣＩ  Ｉ／Ｆ１１に記録された例えば２５６バイトの装置管理情報テーブルである。
【００５２】
本発明の他の実施形態として、スレーブモードでは、ＨＤＤコントローラ１で指定された特定のアドレスにメモリバーストされたデータを、ＨＤＤ２にＲｅａｄ／Ｗｒｉｔｅするようにすることが好ましい。従って、本実施形態では、ＨＤＤ２の高速バースト転送モードを行うにあたって、ＨＤＤコントローラ１がＰＣＩのバスマスタになるモードとＰＣＩのスレーブになるモードを併せてもち、ＰＣＩのスレーブとなるモードでは、特定のアドレスにメモリバーストされたデータをＨＤＤ２に高速バースト（ＵＤＭＡ  Ｍｏｄｅ）でＲ／Ｗする。なお、本実施形態は、後述する暗号化・復号化処理についても併用できる。
【００５３】
本実施形態においては、ＨＤＤコントローラ１に関する特定アドレスを指定するために、ＰＣＩ  Ｉ／Ｆ１１のレジスタに特定アドレスを設定しておくとよい。さらに、その特定アドレスにメモリバースト可能とするために、特定アドレスとして、通常のＩ／ＯデバイスのＩ／Ｏ空間より大幅に広い、メモリデバイスのごときアドレス空間を指定しておく。すなわち、本実施形態では、ＨＤＤ２がＩ／Ｏデバイスであるのにも拘わらず、あたかもメモリのごとく、相手先がバスマスタとなってその特定アドレスをメモリコマンドでＤＭＡ転送することで、ＨＤＤコントローラ１がＰＣＩのスレーブモードになる。スレーブモードになったＨＤＤコントローラ１は、発生するデータをそのアドレス空間の指定によって受け取ることができる。
【００５４】
図４では、こういった特定アドレスを設定したレジスタを示している。このレジスタは、オフセットとしてＰＣＩ  Ｓｌａｖｅ  Ｍｏｄｅ  Ｂａｓｅ  Ａｄｄｒｅｓｓ（以下、単に「スレーブモードアドレス」という）が設定可能となっている。このスレーブモードアドレスにおいて、スレーブモードのときのアドレス空間を設定しておけば、他のデバイスがマスタとなってＤＭＡ転送を実行するときにこのアドレス空間を転送先として設定することで、ＨＤＤコントローラ１へのデータのＤＭＡ転送が実行できる。
【００５５】
なお、これに対して、従来のＨＤＤコントローラ（又はＤＭＡコントローラ）では、ＨＤＤがＩ／Ｏデバイスであるのでアドレス空間が狭いので、ＤＭＡ転送の対象とはならない。つまり、Ｉ／Ｏ空間の３２バースト分の固定アドレスであった場合には、ＤＭＡが使えなくなってＣＰＵが読み書きを繰り返すので、処理が遅くなる。一方、本実施形態では、デュアルポートメモリ１５があたかもページメモリをもっているかのような番地設定をＰＣＩ  Ｉ／Ｆ１１で行っておくことで、ＤＭＡ転送が可能となる。
【００５６】
また、本発明の他の実施形態として、ＨＤＤコントローラ１に、ＨＤＤ２に加え２台目のＨＤＤ（以下、第２ＨＤＤという）が接続されるようにしてもよい。そして、ＨＤＤコントローラ１がマスタモードで制御されているときに、ＰＣＩデバイスの一つが第２ＨＤＤに対してスレーブアクセスを行う。
【００５７】
このように、１つのＨＤＤコントローラにＨＤＤを２台接続した場合、２つのメモリコントローラが効率よくＨＤＤにアクセスすることが可能である。また、一方のＨＤＤコントローラがバスマスタとなってやり取りしている間に、もう一つのＰＣＩデバイスが第２ＨＤＤに対してこのスレーブアクセスをして、２台のＨＤＤを同時に高速バースト転送することができる。また、本実施形態は、後述する暗号化・復号化処理についても併用できる。ＨＤＤを２台接続した場合で各々暗号化・復号化を行う場合、独立して、暗号化を行うか復号化を行うか、スルーするか、また、暗号化のＭｏｄｅをどうするか暗号鍵などを設定することで効率よく処理を行うことができる。一方が暗号化して、他方がその間復号化するといった形態も採用できる。
【００５８】
図５は、本発明の他の実施形態に係るＨＤＤコントローラ並びにそれに接続されたＰＣＩデバイスを搭載したシステムの一構成例を示すブロック図で、図中、１７は暗号化・復号化部である。
【００５９】
図５で示す構成例では、ＨＤＤコントローラ１は、図１の各構成要素に加えて暗号化・復号化部１７を備えるものとする。各構成要素の説明は、図１乃至図４を参照して説明した通りであり、暗号化・復号化部１７の説明を除き省略する。
【００６０】
図５で示す実施形態においては、ＰＣＩバス上には、ＰＣＩデバイスとして、スレーブアクセスの遅いＰＣＩデバイスと速い又は同等の速度のＰＣＩデバイスとの２つのＰＣＩデバイスが接続されているものとする。本実施形態におけるＨＤＤコントローラ１は、ＨＤＤ２にＲｅａｄ／Ｗｒｉｔｅする時に、データを暗号化・復号化する暗号手段（暗号化・復号化部１７で例示）を備えるものとする。暗号化・復号化部１７においては、ＨＤＤコントローラ１がマスタモード（スレーブアクセスが速いＰＣＩデバイス）で制御しているときとスレーブモード（スレーブアクセスが遅いＰＣＩデバイス）で制御しているときとによって、暗号手段を異ならしめる。例えば、マスタの場合はＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）で、スレーブの場合にはＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）で暗号化・復号化を行うようにしてもよい。
【００６１】
実際、ＰＣＩデバイスＡ（３）のページメモリ４のデータを暗号化するときと、ＰＣＩデバイスＢ（５）のページメモリ６のデータを暗号化するときとでは、データの種類が異なるため、一般的に暗号化の方式や暗号鍵などを異ならせなければならない。さらに、ページメモリ４のデータとページメモリ６のデータとを同時処理でＨＤＤ２へ書き込んだりする場合には、暗号化方式や暗号鍵を異ならせないと、同時処理自体が実行不可能となってしまう。これらは復号化のときも同様である。
【００６２】
このような場合に、従来では、ＰＣＩバスに接続されたＣＰＵがレジスタ設定などによって、処理がデバイスＡとＢで入れ替わるたびに、暗号化方式や暗号鍵などを指定する必要があった。これに対し、本実施形態では、ＨＤＤ２にＲ／Ｗする時に、データを暗号化・復号化する機能を有し、ＰＣＩがターゲットとマスタとで暗号鍵や暗号化方式などを独立して設定可能とする。すなわち、本実施形態では、ＣＰＵが介在することで処理速度を遅延させることなく、暗号化や復号を伴うＨＤＤ２への高速データアクセスが可能となる。
【００６３】
なお、ＨＤＤコントローラ１が３つ以上のＰＣＩデバイスに接続されていた場合には、上述したように、どちらがＰＣＩバスのマスタとなるのかスレーブとなるのかが自然と決定され、それに基づきデータのバースト転送が実行される。そのとき、例えばターゲットアクセスの遅いＰＣＩデバイスが２つ存在した場合には、その２台の暗号処理については、本発明とは別の手法にて暗号手段を異ならしめるか、或いは同じ暗号手段を採用するとよい。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態に係るＨＤＤコントローラ並びにそれに接続されたＰＣＩデバイスを搭載したシステムの一構成例を示すブロック図である。
【図２】図１のシステムにおけるＰＣＩデバイスＡへのデータ転送及びＢへのデータ転送を連続して実行したときのタイミングチャートを示す図である。
【図３】図２と同様のデータ転送を従来のＨＤＤコントローラで実行したときのタイミングチャートを示す図である。
【図４】本発明の他の実施形態に係るＨＤＤコントローラのＰＣＩ  Ｉ／Ｆにおけるコンフィギュレーションレジスタの一例を示す図である。
【図５】本発明の他の実施形態に係るＨＤＤコントローラ並びにそれに接続されたＰＣＩデバイスを搭載したシステムの一構成例を示すブロック図である。
【符号の説明】
【００６５】
１…ＨＤＤコントローラ、２…ＨＤＤ、３…ＰＣＩデバイスＡ、４…ＰＣＩデバイスＡのページメモリ、５…ＰＣＩデバイＢ、６…ＰＣＩデバイスＢのページメモリ、１１…ＰＣＩ  Ｉ／Ｆ、１２…ＰＣＩターゲット制御部、１３…ＰＣＩイニシエータ制御部、１４…マルチプレサ（ＭＰＸ）、１５…バーストアクセス用デュアルポートメモリ、１６…ＡＴＡ側制御部、１７…暗号化・復号化部。
【図１】
0004408840.tif 000002
【図２】
0004408840.tif 000003
【図３】
0004408840.tif 000004
【図４】
0004408840.tif 000005
【図５】
0004408840.tif 000006