(57)【要約】アドインボード上のＰＣＩデバイスやカードデバイスを制御するために用いられるデバイスコントローラである。マスタデバイスを含む複数のデバイスをアドインボード上に搭載し、かつ、それらのデバイスの動作を円滑に制御することでマルチファンクションのＰＣＩデバイスまたはカードデバイスを構築するために、デバイスコントローラ（１）に、デバイス（Ｄ１〜Ｄ８）からのバスマスタ要求に対応するバスアービタ回路（１７）を設け、バスアービタ回路（１７）およびターゲット検出回路（１６）によりイニシエータおよびターゲットを検出させ、バスシーケンサ２に前記検出結果に基づいた適正な手順でバスマスタサイクル等における信号の発行を制御させるとともに、アドインボード（３０）をホスト装置に単一のマルチファンクションデバイスとして認識させる。
2004040462.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置と、前記ホスト装置のＰＣＩスロットまたはカードバススロットに接続されるアドインボード上に配置され、それぞれが固有の機能を有する複数のデバイスと、の間の通信を制御する通信制御部と、
前記複数のデバイスのそれぞれの機能と前記アドインボードに割り当てられた複数の機能との対応関係を記憶する記憶部と、
前記ホスト装置から前記アドインボードに対するコンフィギュレーションアクセスがあったときに、前記記憶部の記憶されている前記対応関係に基づいて、前記複数のデバイスの中から前記コンフィギュレーションアクセスのアクセス先となるべきデバイスを決定する決定回路と、
前記決定回路により前記コンフィギュレーションアクセスのアクセス先とされたデバイスのコンフィグレーション空間におけるコンフィグレーション空間ヘッダの情報のうち、前記アドインボードの動作に整合しない情報を前記アドインボードの動作に整合する情報に置き換えて前記ホスト装置に供給するヘッダ情報供給回路と、
を備えてなるデバイスコントローラ。
【請求項２】
前記アドインボード上に配置されるいずれかのデバイスからバスマスタ要求がされたことを検出したときに、前記デバイスに代わって前記ホスト装置に対してバスマスタ要求を発行し、前記ホスト装置からのバスマスタ許可を受けた後に前記デバイスのバスマスタ要求に対する許可を行う調停回路をさらに備え、
前記通信制御部は、前記ホスト装置および前記デバイスにおけるバスサイクルのマスタデバイスおよびターゲットデバイスを検出し、前記検出の結果に基づいた手順で前記ホスト装置と前記デバイスとの間の通信を実行する請求項１に記載のデバイスコントローラ。
【発明の詳細な説明】
【技術分野】  本発明は、アドインボード上のＰＣＩデバイスやカードデバイスを制御するデバイスコントローラに関するものである。
【背景技術】  ＰＣＩバスやカードバスに機能拡張を行う場合、必要な機能を有するデバイスが実装されているアドインボード等をスロットに増設する方法が採られることが一般的である。ただし、この方法はホスト装置側に備えられたスロットの数により増設可能なアドインボードが制限されるという不都合があり、とりわけ、最近ではパソコン等のホスト装置に設けられるＰＣＩスロットやカードバススロットの数が減少傾向にあるため、上述の機能拡張のためにアドインボード内にＰＣＩ−ＰＣＩブリッジ等のブリッジを実装しバスの階層化を行うことで２次側のバスに複数のＰＣＩデバイス等の接続を行う方法が用いられることがあった。
ところが、アドインボード上にＰＣＩ−ＰＣＩブリッジ等のブリッジを追加してバスの階層化を図る場合には、アドインボード上の回路量が多くなるという不都合がある。また、アドインボードの適正な動作のために、アドインボード上に搭載したブリッジを制御するためのソフトウェアが必要となるといった問題があった。
そこで、この問題を回避するために、従来技術の中には、例えば特開平１１−２８８４００号公報に記載されるようにＰＣＩの規格に準拠させつつ回路量の低減させるＰＣＩブリッジデバイスが採用されることがあった。
そして、このようなＰＣＩブリッジデバイスによれば、ＰＣＩブリッジデバイスが１次側と２次側と間の信号の中継を適正に行うことにより、アドインボード上の回路量の低減を図りつつ、マルチファンクションのアドインボードを構築することが可能になる、とされていた。
しかしながら、特開平１１−２８８４００号公報に記載の技術を含む従来技術では、ＰＣＩブリッジデバイスによって制御可能となる対象がターゲットデバイスのみであるため、例えばＰＣＩブリッジデバイスの２次側にマスタデバイスを接続する場合であって、このマスタデバイスがイニシエータとして動作するときには、動作上の不具合を生じるという問題があった。すなわち、従来技術ではＰＣＩアドインボード上にマスタデバイス（イニシエータ）を搭載する場合におけるマルチファンクション化を実現することができなかった。
また、ＰＣＩブリッジデバイスがコンフィグレーション情報を２次側の各デバイスから取得し、ＰＣＩブリッジデバイス内において記憶する必要があるため、デバイスの未使用フィールド情報（ベースアドレス空間／割り込みピン等）を含むコンフィグレーション空間のすべての情報を記憶する記憶部を別途ブリッジ側に設ける必要がある等の不都合があった。
この発明の目的は、可能な限り回路数の低減を行いつつ、マスタデバイスを含む複数の汎用デバイスをアドインボード上に搭載し、かつ、それらの汎用デバイスの動作を円滑に制御することでマルチファンクションのＰＣＩデバイスまたはカードデバイスを構築することを可能にするデバイスコントローラを提供することである。
【発明の開示】
（１）本発明のデバイスコントローラは、
ホスト装置と、前記ホスト装置のＰＣＩスロットまたはカードバススロットに接続されるアドインボード上に配置され、それぞれが固有の機能を有する複数のデバイスと、の間の通信を制御する通信制御部と、
前記複数のデバイスのそれぞれの機能と前記アドインボードに割り当てられた複数の機能との対応関係を記憶する記憶部と、
前記ホスト装置から前記アドインボードに対するコンフィギュレーションアクセスがあったときに、前記記憶部の記憶されている前記対応関係に基づいて、前記複数のデバイスの中から前記コンフィギュレーションアクセスのアクセス先となるべきデバイスを決定する決定回路と、
前記決定回路により前記コンフィギュレーションアクセスのアクセス先とされたデバイスのコンフィグレーション空間におけるコンフィグレーション空間ヘッダの情報のうち、前記アドインボードの動作に整合しない情報を前記アドインボードの動作に整合する情報に置き換えて前記ホスト装置に供給するヘッダ情報供給回路と、を備えてなる。
この構成においては、ＰＣＩスロットまたはカードバススロットに接続されるアドインボードに複数の機能を持たせるべく、アドインボード上に複数のデバイス（汎用ＬＳＩ）と本発明のデバイスコントローラとをアドインボードに搭載する場合に、例えば、ネットワークインタフェースカードの機能を有するデバイスが前記アドインボードの１番目の機能に対応し、ＳＣＳＩインタフェースの機能を有するデバイスが前記アドインボードの２番目の機能に対応する等の対応関係を示す情報、すなわち前記記憶部が記憶している情報に基づいて、前記決定回路によってコンフィグレーションアクセスのアクセス先となるデバイスが決定され、同時にヘッダ情報供給回路によりアドインボードがマルチファンクションデバイスとして適正に動作する妨げになるような情報がホスト装置側に供給されることが防止される。
したがって、本発明のデバイスコントローラおよび複数のデバイスが搭載されたアドインボードが、単一のマルチファンクションデバイスとして適正にホスト装置側に認識されるとともに、前記アドインボードの動作と整合しないデバイス情報がホスト装置側に供給されることがない。また、コンフィグレーション空間に関する情報であって前記アドインボードの動作に悪影響を与えない情報については、前記複数のデバイスのそれぞれから直接ホスト装置に供給されるため、前記デバイスコントローラ側で前記複数のデバイスのそれぞれのコンフィグレーション空間に関するすべての情報を保有する必要がなくなる。
（２）また、本発明のデバイスコントローラは、
前記アドインボード上に配置されるいずれかのデバイスからバスマスタ要求がされたことを検出したときに、前記デバイスに代わって前記ホスト装置に対してバスマスタ要求を発行し、前記ホスト装置からのバスマスタ許可を受けた後に前記デバイスのバスマスタ要求に対する許可を行う調停回路をさらに備え、
前記通信制御部は、前記ホスト装置および前記デバイスにおけるバスサイクルのマスタデバイスおよびターゲットデバイスを検出し、前記検出の結果に基づいた手順で前記ホスト装置と前記デバイスとの間の通信を実行する。
この構成においては、デバイスコントローラに、前記複数のデバイスのそれぞれから順次発行されるバスマスタ要求に応じてホスト装置にバスマスタ要求を発行し、前記ホスト装置のバスマスタ許可を受けると、前記複数のデバイスのそれぞれに適当な順序でバスマスタ許可をする等、前記複数のデバイスからのバスマスタ要求に適正に対応するための調停回路が配置されており、前記複数のデバイスにマスタデバイスが含まれている場合でも前記マスタデバイスからのバスマスタ要求に対する適切な対応が行われる。
さらに、前記通信制御部により、前記ホスト装置および前記デバイスにおけるバスサイクルのマスタデバイスおよびターゲットデバイスが検出され、この検出の結果に基づきバスサイクルにおけるマスタデバイスとターゲットデバイスが把握された後に適正な手順によって前記デバイスコントローラにおける信号の発行が制御されるため、前記ホスト装置と前記複数のデバイスとの間で円滑な通信が実現される。
【図面の簡単な説明】  図１は、本発明が適用されるアドインボードの構成を示す図であり、図２は、本実施形態に係るデバイスコントローラの構成を示す図であり、図３は、本実施形態に係るデバイスコントローラの動作手順を示すフローチャートであり、図４は、デバイス設定情報の一例を示す図であり、図５は、本実施形態における共用信号および専用信号を示す図である。
【発明を実施するための最良の形態】  以下、図を用いて本発明のデバイスコントローラの実施形態であるＰＣＩデバイスコントローラを説明する。なお、本実施形態においては、本発明のデバイスコントローラをＰＣＩデバイスコントローラとして使用しているが、同様の手法によって本発明のデバイスコントローラをカードデバイスコントローラとして使用することもできる。
通常、ＰＣＩアドインボードに、用途に応じたＰＣＩデバイスを搭載した状態が取引の対象となるが、ユーザの中には、ＰＣＩデバイスの設計を自ら行い、ＰＣＩアドインボードに所望の機能を備えたＰＣＩデバイス（汎用ＬＳＩ）を搭載させて使用目的に応じてＰＣＩアドインボードを制作する者もいる。
本実施形態のＰＣＩデバイスコントローラ（以下、単にデバイスコントローラという。）は、主に、上述のようにＰＣＩアドインボードを自ら制作するユーザやＰＣＩアドインボードのベンダ等によって使用されるものであり、ＰＣＩアドインボードに複数のＰＣＩデバイスを搭載した場合に、パーソナルコンピュータ等のホスト装置に対して、ＰＣＩアドインボード全体として複数の機能を有する単一のＰＣＩマルチファンクションデバイスとして認識させることを可能にする点に特徴を有している。
図１は、本発明のＰＣＩデバイスコントローラを搭載したアドインボードの構成を示している。同図に示すようにアドインボード３０には、それぞれがＬＡＮカード（ネットワークインタフェースカード）の機能やＳＣＳＩインタフェースの機能等、ホスト装置の動作に有益な固有の機能を有する汎用ＬＳＩデバイス（以下、単にデバイスという。）Ｄ１〜Ｄ８が搭載される。また、アドインボード３０にはＰＣＩバスを介して行われるデバイスＤ１〜Ｄ８とホスト装置のシステムバスとの通信の制御を行う後述のデバイスコントローラ１が搭載される。さらに、アドインボード３０におけるＰＣＩバスとデバイスＤ１〜Ｄ８またはデバイスコントローラ１との間、およびデバイスコントローラ１とデバイスＤ１〜Ｄ８との間には所定の信号が伝達される信号線が形成されている。
なお、アドインボード３０上に搭載されるデバイスの数は８個に限られることはないが、ＰＣＩデバイスは、原則としてその機能（ファンクション）を８つまで定義することが可能であるとされているため、ここでは８個以上のＰＣＩデバイスを搭載していない。
通常、ＰＣＩ規格のデバイスＤ１〜Ｄ８は、ファンクション番号０のみでその機能が特定されるシングルファンクションデバイス、またはファンクション番号０〜ｎ（最大７）によりその機能が特定されるマルチファンクションデバイスのいずれかに該当するように設計されている。
そのため、アドインボード３０上に複数のＰＣＩのデバイスＤ１〜Ｄ８をそのまま接続した場合、少なくとも互いのＰＣＩデバイスのファンクション番号０が重複し、ファンクション番号０という情報のみではデバイスＤ１〜Ｄ８のいずれを意味するものであるかを特定ができないため、適正なコンフィグレーションを行うことができずアドインボード３０上の各デバイスＤ１〜Ｄ８が正常に動作しないといった問題が生じる。
また、通常、ＰＣＩデバイスの中でもイニシエータとなり得るマスタデバイスは、ホスト装置側のＰＣＩスロットにポイントツーポイントで接続されるところ、アドインボード３０上に複数のマスタデバイスを搭載している場合には、ＩＤＳＥＬ、ＲＥＱ＃、ＧＮＴ＃等の信号が複数存在することとなり、また、それぞれの信号を適正に制御することができないため、アドインボード３０がマルチファンクションボードとして正常動作しなくなるという不都合もあった。
なお、ここで、ＩＤＳＥＬとは、コンフィグレーションサイクルにおいて対象となるターゲットデバイスを指定するために使用される信号であり、ＲＥＱ＃とは、マスタデバイスがＰＣＩバスの使用権を要求する際に発する信号であり、ＧＮＴ＃とは、ＲＥＱ＃をアサート（有効）にしているマスタデバイスに対してシステムのアービトレーション（調停）機能がバスの使用を許可する際に発する信号である。
そこで、本実施形態では、アドインボード３０上にマスタデバイスを含む複数のデバイスを搭載し、アドインボード３０全体として単一のマルチファンクションデバイスを構築する際に、アドインボード３０上のホスト装置とデバイスＤ１〜Ｄ８との間における円滑な通信を保証すべくデバイスコントローラ１をアドインボード３０上に設けている。
アドインボード３０上におけるデバイスＤ１〜Ｄ８とホスト装置側とを接続する信号線のうち、共用信号線はホスト装置側と直接つながっている。また、この共用信号線はデバイスコントローラ１にも接続されている。このため、ホスト装置からの共用信号はデバイスコントローラおよびデバイスＤ１〜Ｄ８に直接入力される。
これに対して、専用信号線についてはホスト装置側からデバイスコントローラ１を介して各デバイスＤ１〜Ｄ８に接続される。このため、ホスト装置側から各デバイスＤ１〜Ｄ８、および各デバイスＤ１〜Ｄ８からホスト装置側に出力される専用信号は、デバイスコントローラ１で中継されるような通信形態になる。
ここで、図５に示すように、共用信号には、ＣＬＫ、ＲＳＴ＃、ＡＤ（３１：１１）、ＡＤ（７：０）、ＣＢＥ（３：０）＃、ＦＲＡＭＥ＃、ＩＴＤＹ＃、ＴＲＤＹ＃、ＳＴＯＰ＃、ＩＮＴＡ＃、ＰＥＲＲ＃、ＳＥＲＲ＃が含まれているが各々の信号の説明は省略する。また、専用信号には、ＡＤ（１０：８）、ＤＥＶＳＥＬ＃、ＰＡＲ、ＩＤＳＥＬ、ＲＥＱ＃、ＧＮＴ＃が含まれる。
デバイスコントローラ１は、バスシーケンサ回路２、デバイス設定レジスタ３、およびデバイス制御回路１０を備えている。バスシーケンサ回路２は、入力される信号のオン／オフ等に応じて、適当な手順で信号を発行しアドインボード１０上における最適なシーケンス制御を実現させるものであり、本発明の通信制御部を構成する。
デバイス設定レジスタ３は、入力される各デバイスＤ１〜Ｄ８のデバイス設定情報を記憶するためのものである。ここで、デバイス設定情報とは主にデバイスコントローラ１に接続されているデバイスＤ１〜Ｄ８のファンクション情報である。
ＰＣＩ規格では、アドインボード１枚当り、０〜７までの８種類のファンクション番号を割り当てて使用することが可能である。例えば、ファンクション番号０のみ使用する場合、アドインボード３０はシングルファンクションボードとなり、ファンクション番号０の他にファンクション番号１〜７を使用する場合、アドインボード３０はマルチファンクションボートとなる。
アドインボードの設計者は、使用するデバイスがデコードしているファンクション番号をデータシート等により把握する事が可能であるところ、予めこのファンクション番号関する情報をスイッチ設定あるいは不揮発性メモリなどで準備しておけば、すなわち、アドインボード３０が具備する各機能とデバイスＤ１〜Ｄ８の機能を対応させて記憶しておけば、デバイスコントローラ１がデバイスＤ１〜Ｄ８の機能をアドインボード３０の機能として把握することが可能になる。
本実施形態ではアドインボード３０が具備する各機能とデバイスＤ１〜Ｄ８の機能との対応関係を関する情報をデバイス設定情報としてデバイス設定レジスタ３に記憶しているのである。なお、ここではデバイス設定レジスタ３が本発明の記憶部を構成している。
上述のように、デバイスコントローラ１は、デバイス（汎用ＬＳＩ）のシングルファンクション、またはマルチファンクションデバイスのファンクション番号を変換することで、ホスト装置からはアドインボード３０があたかも単一のマルチファンクションデバイスであるかのように認識させている。
図４は、デバイス設定情報の例を示している。同図の例では、デバイスＤ１がデコードしているファンクションは、ファンクション番号０および１であり、デバイスＤ２がデコードしているファンクションは、ファンクション番号０であり、デバイスＤ３がデコードしているファンクションは、ファンクション番号０および１であり、デバイス４〜８は、現在未接続の状態になっている。
ここでは、デバイスＤ１のファンクション０が、ホスト装置側にアドインボード３０のファンクション０として認識され、デバイスＤ１のファンクション０がホスト装置側にアドインボード３０のファンクション１として認識され、デバイスＤ２のファンクション０がホスト装置側にアドインボード３０のファンクション２として認識される等、適切に、アドインボード３０が具備する各機能とデバイスＤ１〜Ｄ８の機能とが対応していることが把握できる。
デバイスコントローラ１におけるデバイス制御回路１０は、ホスト装置とマスタデバイスを含む複数のデバイスＤ１〜Ｄ８との円滑な通信を実現させるものであり、その詳細は後述する。
図２は、本発明のデバイスコントローラ１の構成を示す図である。同図に示すようにデバイス制御回路１０は、ＩＤＳＥＬ制御回路１１、アドレスデコーダ１２、ＡＤ１０−８制御回路１３、パリティ生成回路１４、コンフィグレーションレジスタ１５、ターゲット検出回路１６、およびバスアービタ回路１７を備えている。
ＩＤＳＥＬ制御回路１１は、本発明の決定回路を構成するものであるが、デバイス設定レジスタ３が記憶するアドインボード３０が具備する各機能とデバイスＤ１〜Ｄ８の機能との対応関係を関する情報に基づいて、ホスト装置からのコンフィグレーションアクセスのアクセス先となるべきデバイスＤ１〜Ｄ８を決定する。
アドレスデコーダ１２は、多くの接続線の中の特定の何本かを２進コードにより選択してアドレス値を取得する回路を備えており、主に、ホスト装置がデバイスＤ１〜Ｄ８の有するコンフィグレーションレジスタのどのアドレスにアクセスしようとしているのか等を検出するために用いられる。
ＡＤ１０−８制御回路１３は、ＡＤ（１０−８）を用いて任意のファンクション番号を生成する。パリティ生成回路１４は、ＡＤ（３１−００）およびＣＢＥ＃（３：０）を伝わる信号、すなわち３２ビットのアドレス・データ・バス（ＡＤ）、および４ビットのコマンドバスイネーブル（ＣＢＥ＃）の合計３６ビットのデータに不具合が生じているか否かを検出するための偶数パリティを生成する。
コンフィグレーションレジスタ１５は、デバイスＤ１〜Ｄ８に関するコンフィグレーション空間におけるコンフィグレーション空間ヘッダの情報を格納している。原則として、コンフィグレーションレジスタ１５に格納されるコンフィグレーション空間ヘッダの情報とデバイスＤ１〜Ｄ８が実際に保有しているコンフィグレーション空間ヘッダの情報とは整合している。
ところが、アドインボード３０全体とマルチファンクションデバイスであることをホスト装置に認識させる必要があること、およびアドインボード３０が複数の機能についてインタラプトピンを共用するようにして動作していることをホスト装置に認識させる必要があること等により、デバイスコントローラ１では、ホスト装置が直接各デバイスＤ１〜Ｄ８のコンフィグレーション空間におけるコンフィグレーション空間ヘッダの情報を読み取ることがないようにしており、各デバイスＤ１〜Ｄ８のコンフィグレーション空間ヘッダの情報に代えてコンフィグレーションレジスタ１５に記憶されているコンフィグレーション空間ヘッダの情報をホスト装置に読み取らせている。
すなわち、アドインボード３０のヘッダタイプレジスタとインタラプトピンの情報については、デバイスＤ１〜Ｄ８の種類にかかわらず、常にホスト装置にアドインボード３０がマルチファンクションボードで、かつ、使用する割り込みチャンネルがＩＡＴＡ＃の１チャンネルである旨を認識させている。
ターゲット検出回路１６は、入力されるＤＥＶＳＥＬ＃からターゲットデバイスを検出する。バスアービタ回路１７は、従来バスの使用権の調停役のバスアービタがＰＣＩデバイス側に配置されておらずマザーボード側（スロット側）に設けられていることを鑑みて設けられたものであり、デバイスＤ１〜Ｄ８の中に含まれるマスタデバイスからのバスマスタ要求に対して許可を出す等、前記マスタデバイスについてのバスの使用権の調停を行うものである。なお、バスアービタ回路１７が本発明の調停回路を構成する。
図３は、デバイスコントローラ１の動作手順を示すフローチャートである。上述のデバイスコントローラ１の構成において、リセット時にデバイスコントローラ１は、アドインボード３０のディップスイッチの設定からデバイス設定情報を読み出してデバイス設定レジスタ３に記憶する（ｓ１）。
次に、デバイスコントローラ１は、あるデバイスが他のデバイスにデータの転送を要求する等によりバスサイクルが開始されるまで待機する（ｓ２）。ｓ２の待機工程においてバスサイクルの開始を検出すると、デバイスコントローラ１は、このバスサイクルがコンフィグレーションサイクルであるか否かを判断する（ｓ３）。なお、通常、コンフィグレーションサイクルは、パソコンの起動時に実行される。
ｓ３の判断工程において、開始されたバスサイクルがコンフィグレーションサイクルである場合、アドレスデコーダ１２より、固定値エリアのアクセスか否かを確認する（ｓ５）。ここでは、固定値エリアとは、コンフィグレーション空間ヘッダにおけるヘッダタイプレジスタ（８０ｈ＝マルチファンクションボード）や使用するインタラプトピン（０１ｈ＝ＩＮＴＡ＃）等のように、アドインボード３０がマルチファンクションデバイスとして動作する上で、ホスト装置側に認識させるべき情報が格納されているエリアを意味している。つまり、固定値エリアとは、接続されるデバイスＤ１〜Ｄ８の種類にかかわらず、ホスト装置側に示すべき固定した値を格納したエリアをいう。
ｓ５の判断工程において固定値エリアへのアクセスであると判断した場合、デバイスコントローラ１は、各デバイスＤ１〜Ｄ８へのＩＤＳＥＬ信号をマスクして各デバイスＤ１〜Ｄ８に応答させないようにするとともに（ｓ１１）、デバイスコントローラ１内のバスシーケンサ２が、コンフィグレーションアクセスのアクセス先となるデバイスＤ１〜Ｄ８の固定値エリアの情報に代えて、コンフィグレーションレジスタ１５に記憶されている固定値エリアの情報をホスト装置側に読み取らせている（ｓ１２）。
これは、例えば、各デバイスＤ１〜Ｄ８の固定値エリアにシングルファンクションデバイスである旨の情報が記憶されている場合には、アドインボード３０がマルチファンクションデバイスとして動作する際に矛盾が生じるからであり、また、アドインボード３０が共用信号として割り込みチャンネルをＩＮＴＡ＃の１チャンネルしか設けていないにもかかわらず、各デバイスＤ１〜Ｄ８の固定値エリアに複数の割り込みチャンネルを使用する旨の情報が記憶されている場合には、動作上の不具合を生じるからである。
ここで、ＰＣＩスロットでは、割り込みチャンネルとしてＩＮＴＡ＃〜ＩＮＴＤ＃の４チャンネルを使用することが可能であるが、カードバススロットでは、割り込みチャンネルとして１チャンネルしか使用することができないため、デバイスコントローラ１をいずれのスロットにおいても使用可能にすべく、各デバイスＤ１〜Ｄ８の数にかかわらずＩＮＴＡ＃を共用化する仕様を採用しているのである。なお、上述のｓ１１の工程およびｓ１２の工程が、コンフィギュレーションアクセスのアクセス先とされたデバイスのコンフィグレーション空間におけるコンフィグレーション空間ヘッダの情報のうち、前記アドインボードの動作に整合しない情報を前記アドインボードの動作に整合する情報に置き換えて前記ホスト装置に供給する本発明のヘッダ情報供給回路による動作に相当する。
ｓ５の判断工程において、コンフィグレーションサイクルが固定値エリア以外に対するアクセスである場合、デバイス設定レジスタ３に記憶しているデバイス設定情報を用いて、コンフィグレーションサイクルのアクセス先となるデバイスＤ１〜Ｄ８を選択しＩＤＳＥＬをアサートする（ｓ９）。このとき、前記デバイスがデコードを行うファンクション番号との整合性を取るためＡＤ１０−８制御回路１３により、データ変換が行われる。同時に、パリティビットの整合性を合わせるため、パリティ生成回路１４により新しいパリティビットが生成される（ｓ１０）。
一方で、ｓ３の判断工程において、コンフィグレーションサイクルでない場合には、デバイスコントローラ１は開始されたバスサイクルがバスマスタサイクルであるか否かを判断する（ｓ４）。
ｓ４の判断工程において、開始されたバスサイクルがバスマスタサイクルである場合には、デバイスコントローラ１は、バスアービタ回路１７に前記バスマスタサイクルのイニシエータとなるマスタデバイスから発せられるＲＥＱ＃信号を検出させて前記バスマスタサイクルのイニシエータとなるマスタデバイスを特定する（ｓ６）。
このとき、前記ＲＥＱ＃信号に対応してホスト装置側よりＧＮＴ＃がアサートされるが、バスアービタ回路１７は、予めデバイスＤ１〜Ｄ８からアサートされるＲＥＱ＃の順番を記憶しており、この順番に応じて、デバイスＤ１〜Ｄ８のうちの１つに対して信号線の使用を許可するＧＮＴ＃信号をアサートする。ここでは、デバイスコントローラ１が、あたかもＤＭＡのマスタ側の権限を取得している状態が形成されている。
バスアービタ回路１７によりバスマスタ要求を出したマスタデバイスが検出されることによって、バスシーケンサ２は、前記バスマスタサイクルのイニシエータを検出することができる。一方で、ターゲット検出回路１６は、デバイスＤ１〜Ｄ８を含む前記バスマスタサイクルにおけるターゲットとなり得るデバイスのうちの１つからバスサイクルを認識していることを示すＤＥＶＳＥＬ＃が返ってくるのを監視して、アサートされる１つの端子を検出することで前記バスマスタサイクルにおけるターゲットデバイスを特定する（ｓ７）。
つまり、すべてのＤＥＶＳＥＬ＃を監視することにより、コマンドやデータに関してホスト装置側またはデバイスＤ１〜Ｄ８側のいずれの方向に転送すべきであるとか、デバイスコントローラ１が自分自身で保持すべきデータであるとか等を決定することが可能になる。
例えば、ホスト装置側のＤＥＶＳＥＬ＃がアサートされた場合、前記バスマスタサイクルにおけるターゲットデバイスは、ホスト装置バス側にあることが特定できる。これに対して、デバイス２のＤＥＶＳＥＬ＃がアサートされた場合、ターゲットは、デバイス２側にあることになる。
以上の条件により、バスシーケンサ２は、イニシエータとなるマスタデバイスおよびターゲットデバイスの場所を検出することが可能であるため、検出したマスタデバイスおよびターゲットデバイスの場所に基づいて、データの転送を行うＡＤ１０−８制御回路１３およびパリティ生成回路１４に適正な手順で信号を発行させる（ｓ１３）。
上述のｓ４の判断工程において、開始されたバスサイクルがバスマスタサイクルでもない場合には、デバイスコントローラ１は、すべてのＤＥＶＳＥＬ＃よりターゲットデバイスを検出し（ｓ８）、バスシーケンサ２に前記検出結果に基づいた手順でＡＤ１０−８制御回路１３およびパリティ生成回路１４の信号の発行動作を制御させる（ｓ１３）。
つまり、開始されたバスサイクルがバスマスタサイクル以外の場合、ホスト装置バス側がイニシエータであり、コンフィグレーション・リード／ライト、メモリ・リード／ライト、ＩＯ・リード／ライト、およびスペシャルサイクルやリザーブ等のその他のサイクルを行うことになる。
この場合、イニシエータがホスト装置バス側にあることが予め特定されており、ターゲット検出回路１６により、前記バスサイクルにおけるターゲットデバイスを検出することができる。この条件から、バスシーケンサ２は、前記バスサイクルのイニシエータ、ＡＤ１０−８制御回路１３およびパリティ生成回路１４に対して、データの転送の方向を制御することが可能となるため、バスシーケンサ２はデータの転送を行うＡＤ１０−８制御回路１３およびパリティ生成回路１４に適正な手順で信号を発行させる（ｓ１３）。
そして、バスサイクルの種類にかかわらず、デバイスコントローラ１はバスサイクルが開始された後は、各バスサイクルの動作においてバスシーケンサ２にバスサイクルの終了条件を検出させている（ｓ１４）。ｓ１４の工程において、バスシーケンサ２がバスサイクルの終了を検出した後には、デバイスコントローラ１は、再度バスサイクルの開始があるまで待機する（ｓ１４→ｓ２）。
以上のように、本発明のデバイスコントローラ１を用いることにより、アドインボード３０上に複数デバイスＤ１〜Ｄ８を搭載して、アドインボード３０全体として単一のマルチファンクションデバイスとして適正にホスト装置に認識させることが可能になる。特に、従来、ＰＣＩデバイスのマルチファンクション化に使用される対象デバイスがターゲットデバイスに限られていたため、ＰＩＯ転送方式しか行えないという不都合があったが、本発明のデバイスコントローラ１を用いることによりマスタデバイスを含めた複数のＰＣＩデバイスのマルチファンクション化を実現することが可能になり、ＰＩＯ転送方式だけでなく、データを高速転送する手法として、バスマスタ転送方式を用いることができる。
また、本発明のデバイスコントローラ１を用いればバスの階層化を行うことなくＰＣＩデバイスのマルチファンクション化を図ることができるため、従来のバス階層化回路で発生していた待ち時間（ウェイト）を抑制することができる。
なお、各デバイスＤ１〜Ｄ８から同時にバスマスタ要求があった場合、デバイス制御回路１０で固定優先または回転優先のいずれかにより優先順位を設定して接続を許可するデバイスＤ１〜Ｄ８を決定すればよい。ここで、固定優先では、同じデバイスが連続して使用される傾向にあり、キャッシュのヒット率が向上するという利点があり、回転優先では、すべてのデバイスに略均等に接続の機会を与えることができるというメリットがある。
そして、上述の実施形態では、ＰＣＩマルチファンクションデバイスを構築するために本発明のデバイスコントローラが用いられているが、同様にカードマルチファンクションデバイスを構築するために本発明のデバイスコントローラを用いることができる。
ただし、単一のバス番号に対して複数のスロットが割り当てられるＰＣＩバスの規格とは異なり、単一のバス番号に対して単一のスロットが割り当てられるカードバスの規格では、その性質上ＩＤＳＥＬが用いられることがないが、ここでは本発明のデバイスコントローラがＩＤＳＥＬの信号線をプルアップして擬似的にＩＤＳＥＬをアサートすることで、本発明のデバイスコントローラによって構築されるカードマルチファンクションデバイスの適正な動作を保証することができる。
以上のように、この発明によれば、
ＰＣＩスロットまたはカードバススロットに接続されるアドインボードに複数の機能を持たせるべく、アドインボード上に複数のデバイス（汎用ＬＳＩ）と本発明のデバイスコントローラとを搭載する場合に、前記記憶部が記憶している前記アドインボードの各機能と前記複数のデバイスとの対応関係の情報に基づいて、前記決定回路がコンフィグレーションアクセスのアクセス先を決定し、同時にヘッダ情報供給回路がアドインボードがマルチファンクションデバイスとして動作するのに必要な情報をホスト装置側に供給することにより、本発明のデバイスコントローラおよび複数のデバイスが搭載されたアドインボードを、単一のマルチファンクションデバイスとして適正にホスト装置側に認識させることができるとともに、前記アドインボードの動作と整合しないデバイス情報がホスト装置側に供給されることを防止することができる。
また、前記デバイスコントローラにおいて前記複数のデバイスのそれぞれのコンフィグレーション空間に関する情報を保有することを不要にできる。
さらに、デバイスコントローラに前記複数のデバイスからのバスマスタ要求に対応するための調停回路を配置しており、前記複数のデバイスにマスタデバイスが含まれている場合でも前記マスタデバイスからのバスマスタ要求に対する適切な対応を行うことができる。
そして、前記通信制御部が、前記ホスト装置および前記デバイスにおけるバスサイクルのマスタデバイスおよびターゲットデバイスを検出し、この検出結果に基づく手順によって前記デバイスコントローラにおける信号の発行を制御するため、前記ホスト装置と前記複数のデバイスとの間で円滑な通信を実現することができる。
【産業上の利用可能性】  本発明は、可能な限り回路数の低減を行いつつ、マスタデバイスを含む複数のデバイスをアドインボード上に搭載し、かつ、それらのデバイスの動作を円滑に制御することでマルチファンクションのＰＣＩデバイスまたはカードデバイスを構築するために利用するのに適している。
【図１】
2004040462.tif 000003
【図２】
2004040462.tif 000004
【図３】
2004040462.tif 000005
【図４】
2004040462.tif 000006
【図５】
2004040462.tif 000007
【国際調査報告】
2004040462.tif 000008
2004040462.tif 000009