(57)【要約】【課題】I/O 空間を使用することなく、さらにはポーリングベースの処理をすることなく、PCI ローカルバスを利用して任意のPCI デバイス間で所望の情報を直接に通知し得るPCI接続装置を提供する。【解決手段】PCI ローカルバス11を介して外部からPCI デバイス内部のメモリ空間へのアクセスを受け付けるPCI 接続装置において、同一のメモリ空間へのアクセスを別々のメモリ空間へのアクセスに変換するアクセス変換回路（12、13）を具備する。【選択図】    図１
2009087064.tif 000002
【特許請求の範囲】
【請求項１】
PCI ローカルバスを介して外部からPCI デバイス内部のメモリ空間へのアクセスを受け付けるPCI 接続装置において、同一のメモリ空間へのアクセスを別々のメモリ空間へのアクセスに変換するアクセス変換回路を具備することを特徴とするPCI 接続装置。
【請求項２】
前記メモリ空間の一部に情報通知用レジスタを割り当て、外部からのメモリ空間へのアクセスを、前記情報通知用レジスタへのアクセスに変換することを特徴とする請求項１記載のPCI 接続装置。
【請求項３】
前記メモリ空間の一部に割り込み通知用レジスタを割り当て、外部からのメモリ空間の最終アドレスへのアクセスを、前記割り込み通知用レジスタへのアクセスに変換することを特徴とする請求項２記載のPCI 接続装置。
【請求項４】
前記メモリ空間の一部に割り込み通知用レジスタを割り当て、外部からのメモリ空間の任意のアドレスへのアクセスを、前記割り込み通知用レジスタへのアクセスに変換することを特徴とする請求項２記載のPCI 接続装置。
【請求項５】
前記情報通知用レジスタへのアクセスを、PCI デバイス内部のバスを使用せずに直接に行うことを特徴とする請求項２記載のPCI 接続装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報デバイスを相互接続するためのPCI ローカルバスを介して外部からPCIデバイス内部のメモリ空間へアクセスするPCI 接続装置に係り、例えばPCI ローカルバスの割り込み通知機能に使用されるものである。
【背景技術】
【０００２】
様々な情報デバイスを容易に相互接続するために、現在、標準バスインターフェースは必要不可欠なものであり、この標準バスインターフェースの中でも、PCI （Peripheral Component Interconnection）ローカルバスインターフェースはよく使われている。PCI ローカルバスでのデータの入出力は、データを出力するイニシエータとデータが入力されるターゲットの間の任意のデバイス間で行われる。このようなデータの入出力には、メモリ空間・I/O 空間の２種類が存在する。
【０００３】
一方、PCI ローカルバスの標準仕様で定められているPCI ローカルバスインターフェースの割り込み信号線は、通常のシステムにおいては、PCI デバイスからの割り込み通知をホスト・ブリッジデバイスのみが受け付けることができる（特許文献１，２参照）。したがって、PCI デバイスへの割り込み通知は直接的にできない、つまり、任意のPCI デバイス間での割り込み通知ができない仕様となっている。そのため、割り込みを利用した効率のよい処理を行うには何らかの手段が必要である。これについて、以下、具体的に説明する。
【０００４】
PCI ローカルバス標準では、割り込み線(INTA#, INTB#, INTC#, INTD#)が定義されている。そして、通常は、図９に示すように、複数のPCI デバイスからホストおよびブリッジデバイスに割り込み線が接続されることにより、PCI デバイスからホストおよびブリッジデバイスへの割り込み通知が可能となっている。そのため、このようなシステムでは、PCI ローカルバス標準の割り込み線を利用してPCI デバイスから任意のPCI デバイスへ割り込みを通知することができない。
【０００５】
このような事情に鑑み、通常は、イニシエータとなるPCI デバイスから任意のターゲットのPCI デバイスへ割り込みを通知するために、PCI デバイスのI/O 空間が利用されている。すなわち、図８に示すように、ターゲットのPCI デバイスのI/O 空間をPCI デバイス内部の割り込みレジスタに割り当て、イニシエータからこのI/O 空間にアクセスすることで、ターゲットに割り込みを通知する方法が行われていた。
【０００６】
しかし、PCI デバイスを含むシステムによってはI/O 空間が狭いことがあり、また、PCI デバイスが持つI/O 空間の数が少ないものもあるので、上記方法ではPCI デバイスの貴重なI/O 空間を消費してしまう。
【０００７】
また、I/O 空間を持たない（使用できない）PCI デバイスのように、上記方法を採用できないデバイスやシステムがある。このようなデバイスに対しては、メモリ空間に対するアクセスを介してデータのやり取りをすることにより通知を行うという方法がある。この方法は、まず、イニシエータがターゲットとなるPCI デバイスのメモリ空間をアクセスすることでターゲットデバイスのメモリにデータの書き込みを行う。そして、イニシエータによりメモリに書き込まれたデータをターゲットのPCI デバイスのCPU 等がポーリングすることで割り込みを通知する。
【０００８】
しかし、上記したようにアクセスを受けたターゲットのCPU がメモリ上のデータをポーリングする方法は、余分な処理が増えるのでCPU に負荷がかかる。CPU に負荷がかかることを避けるために、メモリ上のデータをポーリングする専用の回路を作ったとしても、余分な回路が増え、メモリアクセスも増えるので、PCI デバイスの性能劣化につながる。
【特許文献１】特開２００５−９２７７０号公報
【特許文献２】特開２００５−３１９３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は前記した従来の問題点を解決すべくなされたもので、I/O 空間を使用することなく、さらにはポーリングベースの処理をすることなく、PCI ローカルバスを利用して任意のPCI デバイス間で所望の情報を直接に通知し得るPCI 接続装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明のPCI 接続装置は、PCI ローカルバスを介して外部からPCI デバイス内部のメモリ空間へのアクセスを受け付けるPCI 接続装置において、同一のメモリ空間へのアクセスを別々のメモリ空間へのアクセスに変換するアクセス変換回路を具備することを特徴とする。
【発明の効果】
【００１１】
本発明のPCI 接続装置によれば、I/O 空間を使用することなく、さらにはポーリングベースの処理をすることなく、任意のPCI デバイスに直接に割り込みなどの所望の情報を通知することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施形態を説明する。この説明に際して、全図にわたり共通する部分には共通する参照符号を付す。
【００１３】
＜第１の実施形態＞
図１は、本発明のPCI 接続装置の第１の実施形態を示すブロック回路図である。このPCI 接続装置は、例えばパーソナルコンピュータのPCI ローカルバス11とPCI デバイス内部との間に設けられる。
【００１４】
このPCI 接続装置は、PCI ローカルバス11に接続されたアドレス変換回路12と、このアドレス変換回路12に接続されたアドレス検出回路13と、このアドレス検出回路13に接続された割り込み通知用レジスタ14と、この割り込み通知用レジスタ14に接続された割り込み通知用イネーブルレジスタ15とを具備する。
【００１５】
PCI デバイスの内部メモリは、例えばバイト単位でアクセス可能なメモリが用いられ、内部メモリ空間の一部が割り込み通知用レジスタ14に割り当てられる。この際、内部メモリ空間の未使用の一部に割り当てることにより、内部メモリ空間を拡大しなくても済む。
【００１６】
本例では、図２に示すように、内部メモリ空間の最終アドレスの１ワード領域が割り込み通知用レジスタ14に割り当てられる。このように内部メモリ空間の最終アドレスに割り当てることにより、内部メモリ空間への影響は少なくて済む。
【００１７】
アドレス変換回路12は、外部からPCI ローカルバス11を介してメモリ空間に対するアクセスを、PCI デバイス内部のメモリ空間へのアクセスへと変換する機能を有する。
【００１８】
アドレス検出回路13は、アドレス変換回路12によるアドレス変換後のアドレスが割り込み通知用レジスタ14を示す最終アドレスであるかどうかを検出するとともに、PCI デバイス内部のメモリ空間をアクセスするアドレスを出力する機能を有する。
【００１９】
割り込み通知用レジスタ14は、外部からアクセスされたアドレスが割り込み通知用レジスタを示す最終アドレスであるとアドレス検出回路13で検出された場合に、アクセスを受け、PCI デバイス内部へ割り込み通知を出力する機能を有する。
【００２０】
割り込み通知用イネーブルレジスタ15は、イネーブル信号により動作のイネーブル／ディセーブルが制御され、イネーブル状態の時に割り込み通知用レジスタ14にアクセスを受けた場合にPCI デバイス内部へ割り込みを通知する機能を有する。
【００２１】
上記した本実施形態の構成によれば、外部からのPCI デバイス内部のメモリ空間へのアクセスを別々のメモリ空間に変換できるアクセス変換回路12、13を備えている。これにより、１つのメモリ空間（本例ではPCI デバイス内部メモリ空間の最終ワード領域）をPCIデバイスの割り込み通知用レジスタ14へ割り付けることが可能となる。
【００２２】
したがって、外部からの通常のメモリ空間へのアクセスを割り込み通知レジスタ14へのアクセスへと変換することができ、追加のプロトコル定義やI/O 空間の消費をすることなく効率的にPCI デバイスへ割り込み通知を行うことが可能となる。
【００２３】
すなわち、本実施形態によれば、図２に示すように、PCI デバイス内部のメモリ空間の最終アドレスへのアクセスを、PCI デバイスの割り込み通知用レジスタ14のアクセスへ変換する機能を有する。換言すれば、PCI デバイスのメモリ空間の最終ワードをPCI デバイス内部の割り込み通知用レジスタ14に割り当てる機能を有する。この機能により、PCI デバイスの内部メモリ空間への通常のアクセスと同様に、割り込み通知用レジスタ14へアクセスを行うことができ、割り込み通知用イネーブルレジスタ15のイネーブル状態時にPCIデバイス内部へ割り込み通知をすることができる。
【００２４】
この際、割り込み通知用レジスタ14へのアクセスは、PCI デバイスの内部バスを通して行うのではなく直接にアクセスを行うことができるので、内部バスの使用効率も向上する。換言すれば、追加のプロトコル定義やI/O 空間の消費をすることなく、効率的にPCI デバイスへの割り込み通知が可能となる。
【００２５】
上記したように本実施形態の情報通知装置によれば、PCI ローカルバス11を経由したイニシエータからターゲットへの通常のPCI ローカルバス標準のメモリ空間のアクセスにより、メモリ空間に割り当てられた割り込み通知用レジスタ14へアクセスすることができる。これにより、I/O 空間を使用することなく、さらにはポーリングベースの処理をすることなく、ターゲットとなる任意のPCI デバイスに直接に割り込みを通知することができる。これにより、通常のPCI ローカルバス標準のプロトコルのまま、効率良い処理ができる。換言すれば、PCI デバイスが持つメモリ空間の一部に直接にPCI デバイスの割り込み通知用レジスタ14を割り当て、そのレジスタ14にメモリアクセスを行うことにより、任意のPCI デバイスから直接に割り込みを通知することが可能になる。
【００２６】
＜第２の実施形態＞
図３は、本発明のPCI 接続装置の第２の実施形態を示すブロック回路図である。このPCI 接続装置は、図１を参照して前述した第１の実施形態のPCI 接続装置と比べて、割り込み通知用レジスタ14に所定のオフセットアドレスを設定するためのオフセットアドレス設定レジスタ31が付加されている点が異なる。
【００２７】
オフセットアドレス設定レジスタ31は、PCI ホストデバイスより指定されたメモリ空間のベースアドレスから当該オフセットアドレス設定レジスタ31に指定されたオフセットを持つ任意のアドレスへのアクセスを、割り込み通知用レジスタ14に割り当てる機能を有する。
【００２８】
本実施形態の構成によれば、PCI デバイスへのメモリ空間の設定アドレスへのアクセスを割り込み用レジスタのアクセスへ変換する機能を有する。これにより、図４に示すように、PCI デバイスへの通常のメモリ空間のアクセスと同様に、PCI デバイスへの割り込み用レジスタへのアクセスを行うことができ、割り込み通知イネーブルレジスタの状態により割り込み通知をすることができる。この際、割り込み通知用レジスタへのアクセスは、PCI デバイスの内部バスを通して行うのではなく直接にアクセスを行うことができるので、内部バスの使用効率も向上する。
【００２９】
なお、PCI デバイスの内部メモリ空間の一部をPCI デバイスの割り込み通知用レジスタ14へ割り付ける場合、必要な領域のメモリ空間へのアクセスが割り込み通知用レジスタ14に割り当ててしまう可能性がある。つまり、図５に示すように、アクセス必要領域でアクセスできないメモリ空間領域（アクセス不可領域）が発生してしまう可能性があるが、この問題に対する解決手段を以下に述べる。
【００３０】
（１）第１の実施形態で示したように割り込み通知レジスタ14をメモリ空間の最終アドレスに割り当てる。
【００３１】
（２）図６に示すように、PCI デバイスが利用するメモリ空間よりも大きなサイズのメモリ空間を割り当てることにより、必要な領域のメモリ空間と、割り込み通知用レジスタ14の領域の衝突を回避することができる。
【００３２】
（３）第２の実施形態で示したように、割り込み通知用レジスタ14をメモリ空間の任意のアドレスに割り当てることにより、必要なメモリ領域と割り込み通知用レジスタ14との衝突を回避することができる。
【００３３】
＜第３の実施形態＞
図７は、本発明のPCI 接続装置の第３の実施形態を示すブロック回路図である。図７中、11はPCI ローカルバス、21はPCIC（PCI コントローラ）、22はPCI デバイスの内部バスである。PCI ローカルバス11は、PCI コントローラ21を介して内部バス22に接続される。この内部バス22には、メモリコントローラ23を介して内部メモリ（例えばＲＡＭ）24が接続される。内部バス22には、内部メモリ24の他に、例えばＣＰＵ25、INTC（割り込みコントローラ）26等が接続される。
【００３４】
第３の実施形態では、前述したような割り込み通知用レジスタをPCIC21（PCI インターフェース処理部分）に配置している。このような構成により、PCI デバイス内部への割り込み通知を、PCI デバイスの内部バス22を使用することなく直接に行うことができるので、効率よく割り込みを通知することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明のPCI 接続装置の第１の実施形態を示すブロック回路図。
【図２】第１の実施形態においてPCI デバイスの内部メモリ空間の最終アドレスの１ワード領域を割り込み通知用レジスタに割り当て、割り込み通知時にアクセスする様子を示すブロック回路図。
【図３】本発明のPCI 接続装置の第２の実施形態を示すブロック回路図。
【図４】第２の実施形態においてPCI デバイスの内部メモリ空間の任意のアドレスの１ワード領域を割り込み通知用レジスタに割り当て、割り込み通知時にアクセスする様子を示すブロック回路図。
【図５】PCI デバイスの内部メモリ空間の一部をPCI デバイスの割り込み通知用レジスタへ割り付ける場合に必要な領域でアクセスできないメモリ空間領域（アクセス不可領域）が発生してしまう可能性がある様子を示すブロック回路図。
【図６】図５中のアクセス不可領域の発生を回避する例を示すブロック回路図。
【図７】本発明のPCI 接続装置の第３の実施形態を示すブロック回路図。
【図８】PCI ローカルバス標準によるPCI ローカルバスの割り込み線の接続関係を示すブロック回路図。
【図９】PCI ローカルバスを利用した従来の割り込み通知方法例を示すブロック回路。
【符号の説明】
【００３６】
11…PCI ローカルバス、12…アドレス変換回路、13…アドレス検出回路、14…割り込み通知用レジスタ、15…割り込み通知用イネーブルレジスタ、21…PCI コントローラ、22…内部バス、23…メモリコントローラ、24…内部メモリ、25…ＣＰＵ、26…割り込みコントローラ。
【図１】
2009087064.tif 000003
【図２】
2009087064.tif 000004
【図３】
2009087064.tif 000005
【図４】
2009087064.tif 000006
【図５】
2009087064.tif 000007
【図６】
2009087064.tif 000008
【図７】
2009087064.tif 000009
【図８】
2009087064.tif 000010
【図９】
2009087064.tif 000011