(57)【特許請求の範囲】
【請求項１】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）装置との間で通信される割込みの情報を中継し、前記ＣＰＵと他の中継装置とのいずれかの装置が上位側に接続し、Ｉ／Ｏ装置と、上位側とは別の他の中継装置とのうち、少なくとも前記Ｉ／Ｏ装置が下位側に接続するバス中継装置において、
Ｉ／Ｏ装置が送信元である割込み通知を下位側のポートから受信し、前記ポートのポート番号を出力する割込み通知受信部と、
ポート番号と、割込み要因の読出しに使用するアドレスである割込み要因アドレスとの複数の組を含む割込み要因アドレス情報を格納する第１のアドレス記憶部と、
前記割込み通知受信部が出力した前記ポート番号を受信し、受信した前記ポート番号に基づいて前記第１のアドレス記憶部の前記割込み要因アドレス情報から割込み要因アドレスを取得すると共に、受信した前記ポート番号のポートに接続する装置がＩ／Ｏ装置かどうかを予め保有する接続情報に基づいて判断し、前記ポートに接続する装置が前記Ｉ／Ｏ装置であると判断すると、前記第１のアドレス記憶部から取得した割込み要因アドレスを出力するアドレス選択部と、
前記アドレス選択部が出力した割込み要因アドレスを含む割込み要因の要因読出し要求を、前記ポートに接続する前記Ｉ／Ｏ装置に向けて送信する下位側送信部と、
前記下位側送信部が送信した前記割込み要因の要因読出し要求に応答する割込み要因を、前記ポートに接続する前記Ｉ／Ｏ装置から受信し、受信した前記割込み要因を出力する下位側受信部と、
割込み要因アドレスと、割込み要因と、Ｉ／Ｏ装置の内部データの読出しに使用するアドレスであるデータ読出しアドレスとの組を複数格納し、前記アドレス選択部が出力した割込み要因アドレスと、前記下位側受信部が出力した前記割込み要因とを受信し、受信した前記割込み要因アドレスと前記割込み要因とを含む組が、格納する複数の前記組の中に存在するかどうか判断し、受信した前記割込み要因アドレスと前記割込み要因とを含む組が存在すると判断すると、前記組に含まれる前記データ読出しアドレスを出力する第２のアドレス記憶部と
を備え、
前記下位側送信部は、
前記第２のアドレス記憶部が出力した前記データ読出しアドレスに基づいてＩ／Ｏ装置の内部データの読出しを求めるデータ読出し要求を生成し、生成した前記データ読出し要求を前記ポートに接続する前記Ｉ／Ｏ装置に向けて送信することを特徴とするバス中継装置。
【請求項２】
前記バス中継装置は、さらに、
前記上位側に接続する前記装置から割込み要因アドレスを含む割込み要因の要因読出し要求を受信し、前記要因読出し要求を受信すると、前記上位側に接続する前記装置がＣＰＵかどうかを予め保有する接続情報に基づいて判断し、前記上位側に前記ＣＰＵが接続すると判断すると、割込み要因の読出し指示を出力する上位側受信部と、
前記上位側受信部が出力した割込み要因の読出し指示を受信すると共に前記下位側受信部が出力した前記割込み要因を受信して格納し、前記割込み要因が格納され、かつ、前記割込み要因の読出し指示が受信されると、前記割込み要因を出力する割込み要因記憶部と、
前記割込み要因記憶部が出力した前記割込み要因を受信し、受信した前記割込み要因を前記上位側に接続する前記ＣＰＵに送信する上位側送信部と
を備えたことを特徴とする請求項１に記載のバス中継装置。
【請求項３】
前記バス中継装置は、さらに、
Ｉ／Ｏ装置の内部データを記憶する内部データ記憶部を備え、
前記上位側受信部は、
前記上位側に接続する前記装置からデータ読出しアドレスを含むと共にＩ／Ｏ装置の内部データの読出しを求めるデータ読出し要求を受信し、受信した前記データ読出し要求から前記データ読出しアドレスを抽出し、抽出した前記データ読出しアドレスを出力し、
前記内部データ記憶部は、
前記上位側受信部が出力した前記データ読出しアドレスを受信し、前記上位側受信部から前記データ読出しアドレスを受信すると、前記上位側に接続する前記装置が前記ＣＰＵかどうかを予め保有する接続情報に基づいて判断し、前記上位側に前記ＣＰＵが接続すると判断すると、Ｉ／Ｏ装置の前記内部データを記憶しているときには、前記内部データを前記上位側送信部に出力し、
前記上位側送信部は、
前記内部データ記憶部から前記内部データを受信し、前記内部データを前記上位側に接続する前記ＣＰＵに送信することを特徴とする請求項２に記載のバス中継装置。
【請求項４】
前記下位側受信部は、
前記下位側に接続する装置からＩ／Ｏ装置の内部データを受信し、受信した前記内部データを前記内部データ記憶部に出力し、
前記内部データ記憶部は、
前記下位側受信部から内部データを受信すると、前記上位側に接続する前記装置が前記ＣＰＵかどうかを予め保有する接続情報に基づいて判断し、前記上位側に前記ＣＰＵが接続すると判断すると、前記上位側受信部が出力する前記データ読出しアドレスが受信済みのときは前記内部データを前記上位側送信部に送信し、前記データ読出しアドレスが未受信のときは前記データ読出しアドレスの受信を待ち、前記データ読出しアドレスが受信されたときに前記内部データを前記上位側送信部に送信することを特徴とする請求項３に記載のバス中継装置。
【請求項５】
前記第１のアドレス記憶部が格納する前記割込み要因アドレス情報は、
前記組ごとに、前記ポート番号が前記組として使用された過去の使用状況を示すアクセス情報を有し、
前記上位側受信部は、
前記上位側に接続する前記装置から割込み要因アドレスを含む割込み要因の要因読出し要求を受信すると前記要因読出し要求から前記割込み要因アドレスを抽出し、抽出した前記割込み要因アドレスを出力し、
前記第１のアドレス記憶部は、
前記割込み通知受信部が出力した前記ポート番号と、前記上位側受信部が出力した前記割込み要因アドレスとを受信し、受信した前記ポート番号及び前記割込み要因アドレスと同じ前記ポート番号及び前記割込み要因アドレスを含む前記組に対して、前記アクセス情報を更新し、
前記アドレス選択部は、
前記アクセス情報の更新後の前記割込み要因アドレス情報から、前記割込み要因を取得することを特徴とする請求項２から請求項４のいずれか一項に記載のバス中継装置。
【請求項６】
前記第１のアドレス記憶部が格納する前記割込み要因アドレス情報は、
前記組ごとの前記アクセス情報として、
前記組の使用された新しさを示すアクセス履歴と、前記組の使用された回数を示すアクセス回数とを含み、
前記アドレス選択部は、
前記アクセス履歴と、前記アクセス回数とのいずれかに基づいて、前記割込み要因アドレスを取得することを特徴とする請求項５に記載のバス中継装置。
【請求項７】
前記第１のアドレス記憶部は、
前記割込み通知受信部が出力した前記ポート番号と、前記上位側受信部が出力した前記割込み要因アドレスとを受信したときに、受信した前記ポート番号及び前記割込み要因アドレスと同じ前記ポート番号及び前記割込み要因アドレスを含む前記組が存在しないときには、受信した前記ポート番号と前記割込み要因アドレスとを含む前記組を新たな組として格納することを特徴とする請求項５または請求項６に記載のバス中継装置。
【請求項８】
前記第２のアドレス記憶部は、
前記アドレス選択部が出力した前記割込み要因アドレスと、前記下位側受信部が出力した前記割込み要因と、前記上位側受信部が出力した前記データ読出しアドレスとを受信し、受信した前記割込み要因アドレスと、前記割込み要因と、前記データ読出しアドレスとの組が格納されているかどうかを判断し、格納されていないと判断すると前記組を新たに格納することを特徴とする請求項３から請求項７のいずれか一項に記載のバス中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、Ｉ／Ｏ装置の割込みに関して、Ｉ／Ｏ装置とＣＰＵとのバスを経由する通信を中継するバス中継装置に関する。
【背景技術】
【０００２】
周期的にＳ／Ｗ処理を繰り返し実行するシステムとその構成がある。このシステムは、ＣＰＵがＳ／Ｗ処理を行い一定の周期内でＳ／Ｗ処理を完了し、次の周期で再びＳ／Ｗ処理を行う。上記システムの構成としては、複数のＩ／Ｏ装置は、バス中継装置（ブリッジ）を介してＣＰＵと接続される。Ｉ／Ｏ装置とバス中継装置の接続、または１対１（ポイント・ツー・ポイント）で接続されるバスである構成の場合、以下の（１）、（２）の処理が行われる。
（１）Ｉ／Ｏ装置が割込みをバス中継装置を経由しＣＰＵへ通知する。
（２）ＣＰＵは「割込み要因」の読み出し要求を発行する。ＣＰＵの発行した「割込み要因」の読み出し要求が、バス中継装置を経由しＩ／Ｏ装置に到達する。
この場合、Ｉ／Ｏ装置から「割込み要因」を読み出す時、ＣＰＵの「割込み要因」の読み出し要求発行から「割込み要因」を受領するまで、ＣＰＵ処理は「割込み要因」読み出し待ち状態となる。
【０００３】
下記の特許文献１（特開平５−２５７８６３）では、ＣＰＵが割込み要因を読出す代わりにバス中継装置相当部分が読出し、ＣＰＵが割込み要因を取得するまでの時間を短縮することが記載されている。特許文献１においては、Ｉ／Ｏ装置から割込み通知を受け取ると、処理ユニット内のバス中継装置相当部分（ＩＳＲリードシーケンス部４１）が割込み要因を読み出している。
これにより、ＣＰＵが割込み要因を読出す代わりにバス中継装置相当部分が読出し、ＣＰＵが割込み要因を取得するまでの時間を短縮している。
【０００４】
しかし、割込み要因をＣＰＵが読み出す前に、バス中継装置相当部分（ＩＳＲリードシーケンス部４１）が読出しアドレスを知っている必要があり、予めバス中継装置相当部分にそのアドレスを設定する必要がある。割込み要因の読出しアドレスが固定であれば、そのアドレス以外のシステムでは対応ができない。割込み要因のアドレスがシステムによって異なる場合は、予めバス中継装置相当部分（ＩＳＲリードシーケンス部４１）にそれぞれに対応したアドレス設定が必要であり、該特許の構成では初期化時のＳ／Ｗによる設定が必要である。さらに、割込み要因の内容を読んだＣＰＵが、その内容によってＩ／Ｏ装置内のデータの読出しが必要な場合、Ｉ／Ｏ装置内のデータ読出しの待ち時間の削減は行えない。また、特許文献１では、Ｉ／Ｏ装置とバス中継装置相当部分は装置内バスで接続され、バスの多段構成には対応できない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−２５７８６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の「割込み要因」読み出しにかかる時間を短縮する方法には、以下の課題がある。
（１）予め「割込み要因」の格納場所を示すアドレス設定が必要で、初期化時のＳ／Ｗによる設定が必要である。
（２）さらに、ＣＰＵが行う割込み要因による処理に関連して、Ｉ／Ｏ装置内のデータを読出す場合の、Ｉ／Ｏ装置内のデータ読出し時間の削減はできない。
（３）また、バス中継装置を多段接続したバス多段構成は対応できない。
【０００７】
本発明は、上記の課題を解決するためになされるもので、
（１）予め「割込み要因」の格納場所を示すアドレス設定が不要で、従来の「割込み要因」読み出しにかかる時間を短縮する方法以前に使用したＳ／Ｗ処理に変更が必要なく、
（２）割込み要因読出し後の処理で発生するＩ／Ｏ装置内のデータ読出しに関しても、時間削減を行い、
（３）より多くのＩ／Ｏ装置を接続する為にバス中継装置を多段接続した場合のバス多段構成時にも、上記に対応することが可能で、
これらにより割込み要因に関係する処理を短縮し、周期的なＳ／Ｗ処理にかけられる時間を増やすことを目的とする。
【課題を解決するための手段】
【０００８】
この発明のバス中継装置は、
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））とＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）装置との間で通信される割込みの情報を中継し、前記ＣＰＵと他の中継装置とのいずれかの装置が上位側に接続し、Ｉ／Ｏ装置と上位側とは別の他の中継装置とのうち、少なくとも前記Ｉ／Ｏ装置が下位側に接続するバス中継装置において、
Ｉ／Ｏ装置が送信元である割込み通知を下位側のポートから受信し、前記ポートのポート番号を出力する割込み通知受信部と、
ポート番号と、割込み要因の読出しに使用するアドレスである割込み要因アドレスとの複数の組を含む割込み要因アドレス情報を格納する割込み要因アドレス記憶部と、
前記割込み通知受信部が出力した前記ポート番号を入力し、入力した前記ポート番号に基づいて前記割込み要因アドレス記憶部の前記割込み要因アドレス情報から割込み要因アドレスを取得すると共に、入力した前記ポート番号のポートに接続する装置がＩ／Ｏ装置かどうかを予め保有する接続情報に基づいて判断し、前記ポートに接続する装置が前記Ｉ／Ｏ装置であると判断すると、前記割込み要因アドレス記憶部から取得した割込み要因アドレスを出力するアドレス選択部と、
前記アドレス選択部が出力した割込み要因アドレスを含む割込み要因の要因読出し要求を、前記ポートに接続する前記Ｉ／Ｏ装置に向けて送信する下位側送信部と
を備えたことを特徴とする。
【発明の効果】
【０００９】
この発明によって、予め割込み要因の格納場所を示すアドレス設定を必要としない割込み手段を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１のバス中継装置１の１段接続のシステム２を示す図。
【図２】実施の形態１のバス中継装置１の多段（２段）接続のシステム３を示す図。
【図３】実施の形態１のバス中継装置１のブロック構成図。
【図４】実施の形態１の前提となるＩ／Ｏ装置とＣＰＵとの情報のやり取りを説明する図。
【図５】実施の形態１の割込み要因アドレス記憶部１０４が有するアドレス情報記憶テーブル１０４１を示す図。
【図６】実施の形態１のＩ／Ｏ装置内データ読出しアドレス記憶部１０８が有するＩ／Ｏ装置内データ読出しアドレス記憶テーブル１０８１を示す図。
【図７】実施の形態１のシステム２の動作概要を示す図。
【図８】実施の形態１の「（Ａ）割込み通知の受信時動作」におけるデータ、制御の流れと、構成要素との関係を示すＵＭＬシーケンス図。
【図９】実施の形態１の「（Ｂ）割込み要因の受信時動作」における、データ、制御の流れと構成要素との関係を示すＵＭＬシーケンス図。
【図１０】実施の形態１の「（Ｃ）割込み要因の読出し要求の受信時動作」における、データ、制御の流れと構成要素との関係を示すＵＭＬシーケンス図。
【図１１】実施の形態１の「（Ｄ）Ｉ／Ｏ装置内データの読出し要求の受信時動作」における、データ、制御の流れと、構成要素の関係を示すＵＭＬシーケンス図。
【図１２】実施の形態１の「（Ｅ）Ｉ／Ｏ装置内データの受信時動作」における、データ、制御の流れと構成要素との関係を示すＵＭＬシーケンス図。
【図１３】実施の形態１の割込み要因アドレス記憶部１０４の動作を示すフローチャート。
【図１４】実施の形態１のアドレス情報記憶テーブル１０４１の初期化処理のフローチャート。
【図１５】実施の形態１の接続ポート番号の登録処理のフローチャート。
【図１６】実施の形態１の無効エントリの検索処理のフローチャート。
【図１７】実施の形態１の送信アドレスの登録処理のフローチャート。
【図１８】実施の形態１の「登録中エントリ」の検索処理のフローチャート。
【図１９】実施の形態１の「登録中エントリ」の有効化判定処理のフローチャート。
【図２０】実施の形態１のアドレス情報記憶テーブル１０４１のアクセス履歴、アクセス回数の更新処理のフローチャート。
【図２１】実施の形態１のＩ／Ｏ装置内データ読出しアドレス記憶部１０８の動作のフローチャート。
【図２２】実施の形態１のＩ／Ｏ装置内データ読出しアドレス記憶テーブル１０８１の初期化処理のフローチャート。
【図２３】実施の形態１のＩ／Ｏ装置内データ読出しアドレス記憶テーブル１０８１への送信アドレスの登録処理のフローチャート。
【図２４】実施の形態１のＩ／Ｏ装置内データ読出しアドレス記憶テーブル１０８１の割込み要因の内容の登録、Ｉ／Ｏ装置内データ読出しアドレスの出力のフローチャート。
【図２５】実施の形態１の有効エントリ登録済の検索処理のフローチャート。
【図２６】実施の形態１のＩ／Ｏ装置内データ読出しアドレスの格納処理及び更新処理のフローチャート。
【発明を実施するための形態】
【００１１】
実施の形態１．
図１と図２は、バス中継装置１を用いたシステム２、システム３の構成を示す。
図１は、バス中継装置１の１段接続のシステム２を示す。
図２は、バス中継装置１の多段（２段）接続のシステム３を示す。図１、図２に示すようにシステム２、システム３は、バス中継装置１、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）装置１２、バス１１を備えている。図１のシステム２は、一つのＣＰＵ１０、一つのバス中継装置１及び複数のＩ／Ｏ装置１２を備えている。図２のシステム３は、一つのＣＰＵ１０、二つのバス中継装置１及び複数のＩ／Ｏ装置１２を備えている。
バス中継装置は、ＣＰＵ装置とＩ／Ｏ装置との間で通信される割込みの情報を中継する。
図１、図２に示すように、バス中継装置には、ＣＰＵと他の中継装置とのいずれかの装置が上位側に接続し、Ｉ／Ｏ装置と、上位側とは別の他の中継装置とのうち、少なくともＩ／Ｏ装置が下位側に接続する。
【００１２】
図３は、バス中継装置１の構成図である。バス中継装置１は、割込み通知受信部１０１、割込み通知送信部１０２、ＣＰＵ側トランザクション受信部１０３（上位側受信部）、割込み要因アドレス記憶部１０４、アドレス選択部１０５、リード・トランザクション発行部１０６（下位側送信部）、Ｉ／Ｏ側トランザクション受信部１０７（下位側受信部）、Ｉ／Ｏ装置内データ読出しアドレス記憶部１０８、割込み要因内容記憶部１０９（割込み要因記憶部）、トランザクション送信部１１０（上位側送信部）、Ｉ／Ｏ装置内データ記憶部１１１（内部データ記憶部）を備える。
【００１３】
また、バス中継装置１では、図３に示すように、割込み通知１５１、割込み通知受信フラグ１５２、接続ポート番号１５３、アドレス参照指示１５４、アドレス情報１５５、送信アドレス１５６、割込み要因読出し指示１５７、Ｉ／Ｏ装置内データ読出しアドレス１５８（データ読出しアドレス）、読出し要求１５９、読出しデータ１６０、割込み要因内容１６１、Ｉ／Ｏ装置内データ読出しアドレス１６２、Ｉ／Ｏ装置内データ１６３（内部データ）等がやり取りされる。
【００１４】
図４は、実施の形態１の前提となる、Ｉ／Ｏ装置とＣＰＵとの割込みに関する情報のやりとりを示す図である。
（ＳＴ１）Ｉ／Ｏ装置は、割込み通知１５１を送信する。
（ＳＴ２）ＣＰＵは、割込み通知１５１の応答として、割込み要因の読出し要求１５９（１）（要因読出し要求）をＩ／Ｏ装置に送信する。読出し要求１５９（１）は、割込み要因の読出しのためのアドレス（以下、ＡＤＲ（１）と記す場合がある）を含む。以下の実施の形態では読出し要求は２種類登場する。
割込み要因の読出し要求と、Ｉ／Ｏ装置内データの読出し要求である。前者を読出し要求１５９（１）、後者を読出し要求１５９（２）と記載する場合がある。また読出し要求１５９（１）、１５９（２）に対する応答が、それぞれ割込み要因と、Ｉ／Ｏ装置内データである。これらを割込み要因１６０（１）、Ｉ／Ｏ装置内データ１６０（２）と記載する場合がある。割込み要因１６０（１）とＩ／Ｏ装置内データ１６０（２）とは、いずれも読出しデータ１６０である。
（ＳＴ３）Ｉ／Ｏ装置は、割込み要因の読出し要求１５９（１）の応答として、割込み要因１６０（１）を送信する。
（ＳＴ４）ＣＰＵは割込み要因１６０（１）を受信すると、Ｉ／Ｏ装置のデータ読出しを要求する読出し要求１５９（２）（データ読出し要求）を送信する。読出し要求１５９（２）は、Ｉ／Ｏ装置のデータの所在を示すＩ／Ｏ装置内データ読出しアドレス（以下、ＡＤＲ（２）と記す場合がある）を含む。
（ＳＴ５）Ｉ／Ｏ装置は、読出し要求１５９（２）を受信すると、Ｉ／Ｏ装置内データ１６０（２）を送信する。
【００１５】
以下の実施の形態には、アドレス情報、送信アドレス、Ｉ／Ｏ装置内データ読出しアドレス等が登場する。これらのアドレスは、上記のＡＤＲ（１）とＡＤＲ（２）とのいずれかである。割込み要因の読出し要求１５９（１）に含まれるアドレスがＡＤＲ（１）であり、Ｉ／Ｏ装置のデータ読出しを要求する読出し要求１５９（２）に含まれるアドレスがＡＤＲ（２）である。以下の実施の形態では送信アドレス（ＡＤＲ（１））、Ｉ／Ｏ装置内データ読出しアドレス（ＡＤＲ（２））等のように記載する場合がある。
【００１６】
図５は、割込み要因アドレス記憶部１０４が有するアドレス情報記憶テーブル１０４１（割込み要因アドレス情報）を示す。図５に示すように、アドレス情報記憶テーブル１０４１は、エントリ（行からなるレコード）を識別するエントリナンバ格納域１０４１−１、そのエントリが有効か無効かを示す状態格納域１０４１−２、接続ポート番号が格納される接続ポート番号格納域１０４１−３、送信アドレスが格納される送信アドレス格納域１０４１−４、アクセス履歴が格納されるアクセス履歴格納域１０４１−５、アクセス回数が格納されるアクセス回数格納域１０４１−６を有する。アクセス履歴やアクセス回数はポート番号の接続ポートが使用された使用状況を示す。
【００１７】
図６は、Ｉ／Ｏ装置内データ読出しアドレス記憶部１０８が有するＩ／Ｏ装置内データ読出しアドレス記憶テーブル１０８１を示す。図６に示すように、Ｉ／Ｏ装置内データ読出しアドレス記憶テーブル１０８１は、エントリを識別するエントリナンバ格納域１０８１−１、そのエントリが有効か無効かを示す状態格納域１０８１−２、送信アドレスが格納される送信アドレス格納域１０８１−３、割込み要因の内容が格納される割込み要因内容格納域１０８１−４、Ｉ／Ｏ装置内データ読出しアドレスが格納されるＩ／Ｏ装置内データ読出しアドレス格納域１０８１−５を有する。
【００１８】
（動作説明）
本実施の形態のシステム動作は、以下の動作を含む。
（Ａ）割込み通知の受信時動作、
（Ｂ）割込み要因の受信時動作、
（Ｃ）割込み要因の読出し要求の受信時動作（ＣＰＵ／上位ブリッジから送信される）、
（Ｄ）Ｉ／Ｏ装置内データの読出し要求の受信時動作（ＣＰＵ／上位ブリッジから送信される）、
（Ｅ）Ｉ／Ｏ装置内データの受信時動作。
【００１９】
本実施の形態のシステムの動作は、以下「（Ａ）割込み通知の受信時動作（ａ２）」で示す、割込み通知受信フラグ１５２が有効となったことで開始し、「（Ｅ）Ｉ／Ｏ装置内データの受信時動作（ｅ５）」のＩ／Ｏ装置内データの送信により終了する。
【００２０】
以下に説明するように、アドレス選択部１０５（後述のａ１０）、割込み要因内容記憶部１０９（後述のｂ３−２）、Ｉ／Ｏ装置内データ記憶部１１１（後述のｄ６、ｅ４）等は、上位や下位に接続する装置を判定できる。これは、アドレス選択部１０５等が、上位側、下位側に接続する装置の接続情報を予め保有しているからである。
【００２１】
図７は、図１の１段接続の動作概要を示す図である。図７のＡ〜Ｅは上記の（Ａ）〜（Ｅ）に対応する。詳細は後述するが、実施の形態１では、中継装置が割込み通知１５１を受信すると、アドレス情報記憶テーブル１０４１に基づき、ＣＰＵの応答を待たずに割込み要因の読出し要求１５９（１）を送信する。また、中継装置が割込み要因１６０（１）を受信すると、Ｉ／Ｏ装置内データ読出しアドレス記憶テーブル１０８１に基づき、ＣＰＵの応答を待たずにＩ／Ｏ装置内データ読出し要求１５９（２）を送信する。
以下に、詳細を説明する。
【００２２】
＜動作詳細＞
以下に、上記の各動作について説明する。
【００２３】
＜（Ａ）割込み通知の受信時動作＞
「（Ａ）割込み通知の受信時動作」は、バス中継装置１内の以下の構成要素が動作に関係する。つまり、割込み通知受信部１０１、割込み通知送信部１０２、ＣＰＵ側トランザクション受信部１０３（以下、ＣＰＵ側受信部という）、割込み要因アドレス記憶部１０４（以下、アドレス記憶部１０４という）、アドレス選択部１０５、リード・トランザクション発行部１０６（以下、Ｉ／Ｏ側送信部という）、Ｉ／Ｏ装置内データ読出しアドレス記憶部１０８（以下、アドレス記憶部１０８という）が動作に関係する。
【００２４】
図８は、「（Ａ）割込み通知の受信時動作」における、データ、制御の流れと、上記の構成要素との関係を示すＵＭＬシーケンス図である。図中、時間は上から下向きに流れ、横向きの矢印がデータ、制御の流れを示す。各構成要素に接続されている破線上にある矩形部分は、破線が接続されている構成要素で処理が行われることをあらわす。
【００２５】
割込み通知の受信時は、以下の処理が行われる。
（ａ１）Ｉ／Ｏ装置１２または「下位バス中継装置」（後述の（ａ４）の場合）によって発行された割込み通知１５１を、バス中継装置１内の割込み通知受信部１０１が、受信する。
（ａ２）割込み通知受信部１０１は、割込み通知１５１を受信したことを表す割込み通知受信フラグ１５２を、ＣＰＵ側受信部１０３と、アドレス選択部１０５に送出する。
（ａ３）割込み通知受信部１０１は、Ｉ／Ｏ装置１２または下位バス中継装置から発行された割込み通知１５１を受け取ると、フラグ送出の上記（ａ２）と同時に、割込み通知送信部１０２へ割込み通知１５１を送出する。
【００２６】
（ａ４）割込み通知送信部１０２は、割込み通知受信部１０１から割込み通知１５１を受け取ると、ＣＰＵ１０または上位バス中継装置１へ割込み通知１５１を送信する。
（ａ５）ＣＰＵ側受信部１０３は、フラグ送出の上記（ａ２）において割込み通知受信フラグ１５２を受け取ると、ＣＰＵ１０または上位バス中継装置１から送出される、割込み要因の読出し要求１５９（１）を受け取った際には（後述の（ｃ３）、（ｃ６））、「アドレス情報１５５、割込み要因読出し指示１５７」を、バス中継装置内の関連する構成要素に出力する。
（ａ６）割込み通知受信部１０１は、割込み通知１５１を受信したバス中継装置の接続ポート番号１５３を、アドレス記憶部１０４とアドレス選択部１０５とへ、フラグ送出の上記（ａ２）と同時に、送出する。接続ポート番号１５３の送出は、割込み通知１５１を通知したＩ／Ｏ装置１２または割込み通知１５１を転送した下位バス中継装置を識別するためである。
【００２７】
（ａ７）アドレス記憶部１０４は、図５のアドレス情報記憶テーブル１０４１を持つ。アドレス情報記憶テーブル１０４１は、以下、テーブル１０４１という。アドレス記憶部１０４は、割込み通知受信部１０１から接続ポート番号１５３を受け取ると、テーブル１０４１の未使用（無効）のエントリ（Ｎｏ．、状態、接続ポート番号、送信アドレス、アクセス履歴、アクセス回数を一連の情報として管理する単位（行））の接続ポート番号格納域１０４１−３に、受け取った接続ポート番号１５３を格納する（後述の図１３のＳ１１３、Ｓ１１４）。）
【００２８】
（ａ８）アドレス選択部１０５は、フラグ送出の（ａ２）において割込み通知受信フラグ１５２を受け取ると、割込み通知受信部１０１から接続ポート番号送出の（ａ６）で受け取った接続ポート番号１５３を基に、アドレス記憶部１０４内に格納されているアドレス情報１５５（ＡＤＲ（１））を取得する。アドレス選択部１０５は、アドレス参照指示１５４をアドレス記憶部１０４に出力することにより、アドレス情報１５５を取得する。
（ａ９）アドレス選択部１０５は、（ａ８）におけるアドレス情報１５５の取得に際し、テーブル１０４１における有効（使用中）のエントリの接続ポート番号格納域１０４１−３に格納された番号と、割込み通知受信部１０１から受け取った接続ポート番号１５３とが一致する番号のエントリを対象に、対象とするエントリの「送信アドレス」を取得する。つまり、アドレス選択部１０５は、割込み通知受信部１０１から受け取った接続ポート番号１５３を有し、かつ、「有効」（同じポート番号の送信アドレスの格納されたエントリ）なエントリの「送信アドレス」をアドレス情報１５５として取得する。その際、アドレス選択部１０５は、アクセス履歴に従って、最も新しくアクセスがあったエントリ（アクセス履歴の数字の小さいエントリ）の送信アドレスを選択してもよい。また、アドレス選択部１０５は、アクセス回数が最も多いエントリの送信アドレスを選択してもよい。
【００２９】
例えば図５の場合、割込み通知受信部１０１から受け取った接続ポート番号１５３が、「０」とした時、アドレス選択部１０５は、アクセス履歴に基づいて送信アドレスを選択する場合は、Ｎｏ．３の送信アドレス「１０２０」を、アドレス情報として選択する。アドレス選択部１０５は、アクセス回数に基づいて送信アドレスを選択する場合は、Ｎｏ．１の送信アドレス「１０００」を、アドレス情報として選択する。
【００３０】
（ａ１０）アドレス選択部１０５は、接続ポート番号送出の（ａ６）で割込み通知受信部１０１から受け取った接続ポート番号１５３により、該当するポートの下位に接続されている装置を判断する。アドレス選択部１０５は、該当するポートの下位にＩ／Ｏ装置１２が接続されていると判断すると、上記（ａ８）で取得したアドレス情報１５５を、Ｉ／Ｏ側送信部１０６へ、送信アドレス１５６として出力する。アドレス選択部１０５は、受け取った接続ポート番号１５３に該当するポートの下位に接続されているのが、下位バス中継装置の場合は、上記（ａ８）で取得したアドレス情報１５５を、Ｉ／Ｏ側送信部１０６へ出力しない。これにより、バス中継装置がＣＰＵの割込み要因の読出し要求を待たずに、割込み要因の読出し要求を発行するのは、Ｉ／Ｏ装置がつながるバス中継装置のみである。
（ａ１１）アドレス選択部１０５は、上記（ａ１０）で送信アドレス１５６を、Ｉ／Ｏ側送信部１０６へ出力した場合（下位の接続がＩ／Ｏ装置の場合）、それと同時に送信アドレス１５６をアドレス記憶部１０８に出力する。
【００３１】
（ａ１２）アドレス記憶部１０８は、Ｉ／Ｏ装置内データ読出しアドレス記憶テーブル１０８１を持つ。以下、Ｉ／Ｏ装置内データ読出しアドレス記憶テーブル１０８１をテーブル１０８１という。ＣＰＵ１０は、割込み要因の読出し後に、Ｉ／Ｏ装置からＩ／Ｏ装置内データを読み出すが、テーブル１０８１は、ＣＰＵ１０によるＩ／Ｏ装置内データ読出し時の「読出しアドレス」と、「送信アドレス１５６」とを関連付けるテーブルである。アドレス記憶部１０８は、（ａ１１）においてアドレス選択部１０５から送信アドレス１５６を受けると、テーブル１０８１の未使用（無効）のエントリ（Ｎｏ．、状態、送信アドレス、割込み要因内容、Ｉ／Ｏ装置内データ読出しアドレス（以下、データ読出しアドレスという）を一連の情報として管理する単位）の送信アドレス格納域１０８１−３に、受け取った送信アドレス１５６を格納（後述の図２１のＳ１９３、Ｓ１９４）する。ただし、送信アドレス１５６の格納のみで、状態は登録中状態とする。
【００３２】
（ａ１３）Ｉ／Ｏ側送信部１０６は、（ａ１０）によって取得した送信アドレス１５６を基に、Ｉ／Ｏ装置１２に、割込み要因の読出し要求１５９（１）を発行する。
【００３３】
＜（Ｂ）割込み要因の受信時動作＞
割込み要因の受信時動作は、バス中継装置１内の以下の構成要素が動作に関係する。つまり、Ｉ／Ｏ側送信部１０６、Ｉ／Ｏ側トランザクション受信部１０７（以下、Ｉ／Ｏ側受信部という）、アドレス記憶部１０８、割込み要因内容記憶部１０９、トランザクション送信部１１０が、動作に関係する。
【００３４】
図９は、割込み要因の受信時における、データ、制御の流れと上記構成要素の関係を示すＵＭＬシーケンス図である。
【００３５】
「（Ｂ）割込み要因の受信時」は、次の処理が行われる。
（ｂ１）上記の「（Ａ）割込み通知の受信時動作」の（ａ１３）により、Ｉ／Ｏ装置１２に発行した割込み要因の読出し要求１５９（１）によって、バス中継装置１は、Ｉ／Ｏ装置１２から割込み要因を読み出す。バス中継装置１は割込み要因１６０（１）を読み出すと、その割込み要因１６０（１）（読出しデータ１６０）を、Ｉ／Ｏ側受信部１０７で受信する。
（ｂ２）Ｉ／Ｏ側受信部１０７は、割込み要因（読出しデータ１６０）から割込み要因内容１６１を抽出し、割込み要因内容記憶部１０９に送出する。
【００３６】
（ｂ３−１）割込み要因内容記憶部１０９は、割込み要因内容１６１を受け取ると、上位側の接続先が、ＣＰＵ１０の場合、割込み要因内容記憶部１０９内の記憶域に格納、記憶する。
（ｂ３−２）割込み要因内容記憶部１０９は、自バス中継装置の上位側の接続先が、上位バス中継装置の場合、割込み要因内容１６１を、トランザクション送信部１１０へ送出する。
（ｂ４）トランザクション送信部１１０は、割込み要因内容記憶部１０９から割込み要因内容１６１を受け取ると、上位バス中継装置へ送信する（読み出しデータ１６０）。
（ｂ５）Ｉ／Ｏ側受信部１０７は、上記（ｂ２）と同時に、割込み要因内容１６１をアドレス記憶部１０８へ送出する。
（ｂ６）アドレス記憶部１０８は、テーブル１０８１内に格納されている有効状態であるエントリのうち、送信アドレス域１０８１−３の値と、割込み要因内容域１０８１−４の値とに、下位接続がＩ／Ｏ装置の場合に（ａ１１）にてアドレス選択部１０５が出力する送信アドレス１５６と、（ｂ５）で受け取った割込み要因内容６１が一致するエントリを検索する。アドレス記憶部１０８は、検索の結果、一致したエントリのＩ／Ｏ装置内データ読出しアドレス格納域１０８１−５の値を、データ読出しアドレス１６２として、Ｉ／Ｏ側送信部１０６に送出する。アドレス記憶部１０８は、上記エントリの検索で一致しない場合、ＣＰＵ側受信部１０３から送信されるデータ読出しアドレス１５８（後述する（ｄ３））を待つ。アドレス記憶部１０８は、ＣＰＵ側受信部１０３からデータ読出しアドレス１５８を受信すると、データ読出しアドレス１５８をＩ／Ｏ側送信部１０６に送出する。
（ｂ７）Ｉ／Ｏ側送信部１０６は、（ｂ６）によるデータ読出しアドレス１６２を基に、Ｉ／Ｏ装置内データ読出しのための読出し要求１５９（２）を、Ｉ／Ｏ装置１２に発行する。
【００３７】
＜（Ｃ）割込み要因の読出し要求の受信時動作＞
ＣＰＵ１０または上位バス中継装置から送信される割込み要因の「（Ｃ）割込み要因の読出し要求の受信時動作」は、バス中継装置１内の以下の構成要素が動作に関係する。つまり、ＣＰＵ側受信部１０３、アドレス記憶部１０４、アドレス選択部１０５、Ｉ／Ｏ側送信部１０６、割込み要因内容記憶部１０９、トランザクション送信部１１０が動作に関係する。
【００３８】
図１０は、「（Ｃ）割込み要因の読出し要求の受信時動作」における、データ、制御の流れと上記構成要素の関係を示すＵＭＬシーケンス図である。
【００３９】
「（Ｃ）割込み要因の読出し要求時」は、次の処理が行われる。
（ｃ１）上記の（ａ４）により、ＣＰＵ１０または上位バス中継装置に割込み通知１５１が送出される。これにより、ＣＰＵ１０まで割込み通知１５１が到達する。ＣＰＵ１０は、割込み要因の読出し要求１５９（１）を発行する。
（ｃ２）ＣＰＵ側受信部１０３は、ＣＰＵ１０または上位バス中継装置から送出された割込み要因の読出し要求１５９を受信する。
（ｃ３）ＣＰＵ側受信部１０３は、割込み要因の読出し要求１５９からアドレス情報１５５を抽出し、アドレス情報１５５をアドレス選択部１０５へ送出する。
（ｃ４−１）アドレス選択部１０５は、ＣＰＵ側受信部１０３からアドレス情報１５５を受け取ると、アドレス記憶部１０４に、受信したアドレス情報１５５を送出する。アドレス記憶部１０４は、後述する「Ｆ．３  送信アドレス・アクセス履歴・アクセス回数の登録」のようにして、テーブル１０４１の送信アドレス格納域１０４１−４に、アドレス情報１５５の示す送信アドレスを格納する。
（ｃ４−２）送信アドレスの登録が発生した時、アドレス選択部１０５は、Ｉ／Ｏ装置１２または下位バス中継装置に割込み要因の読出し要求１５９（１）を送信する為、アドレス選択部１０５から受け取った送信アドレス１５６（ＡＤＲ（１））を、Ｉ／Ｏ側送信部１０６へ送出する。
【００４０】
（ｃ５）上記の（ｃ４−２）により、Ｉ／Ｏ側送信部１０６は、送信アドレス１５６を受け取ると、Ｉ／Ｏ装置１２または下位バス中継装置に、割込み要因の読出し要求１５９を送信する。
（ｃ６）上記の（ｃ３）と同時に、ＣＰＵ側受信部１０３は、上位の接続先がＣＰＵ１０である場合、割込み要因読出し指示１５７を割込み要因内容記憶部１０９へ出力する。
なおＣＰＵ側受信部１０３は、上位の接続先が上位バス中継装置である場合は、割込み要因読出し指示１５７を出力しない。
【００４１】
（ｃ７）割込み要因内容記憶部１０９は、割込み要因読出し指示１５７を受け取ると、割込み要因内容記憶部１０９の内部に記憶している割込み要因の内容を、トランザクション送信部１１０へ送出する。割込み要因内容記憶部１０９は、割込み要因読出し指示１５７を受け取った時（上位接続がＣＰＵ）、まだ、Ｉ／Ｏ側受信部１０７から割込み要因内容１６１を受け取っていない場合は、Ｉ／Ｏ側受信部１０７からの割込み要因内容１６１の受け取りを待ち（ｂ２）、受け取ると、割込み要因内容１６１をトランザクション送信部１１０へ送出する。
（ｃ８）トランザクション送信部１１０は、割込み要因内容１６１を受け取ると、ＣＰＵ１０へ読出しデータ１６０として割込み要因内容１６１を送信する。
【００４２】
＜（Ｄ）Ｉ／Ｏ装置内データの読出し要求の受信時動作＞
ＣＰＵ１０または上位バス中継装置から送信される、「（Ｄ）Ｉ／Ｏ装置内データの読出し要求１５９の受信時動作」は、バス中継装置１内の以下の構成要素が動作に関係する。つまり、ＣＰＵ側受信部１０３、Ｉ／Ｏ側送信部１０６、アドレス記憶部１０８、トランザクション送信部１１０、Ｉ／Ｏ装置内データ記憶部１１１（以下、データ記憶部１１１という）が関係する。
図１１は、Ｉ／Ｏ装置内データの読出し要求の受信時における、データ、制御の流れと、上記構成要素の関係を示すＵＭＬシーケンス図である。
【００４３】
Ｉ／Ｏ装置内データの読出し要求時は、次の処理が行われる。
（ｄ１）上記の（ｃ８）により、ＣＰＵ１０は、トランザクション送信部１１０から読出しデータ１６０（１）（割込み要因内容１６１）を受信すると、バス中継装置１にＩ／Ｏ装置内データの読出し要求１５９（２）を出力する。
（ｄ２）ＣＰＵ側受信部１０３は、ＣＰＵ１０「または上位バス中継装置」から、Ｉ／Ｏ装置内データの読出し要求１５９（２）を受信する。
（ｄ３）ＣＰＵ側受信部１０３は、Ｉ／Ｏ装置内データの読出し要求１５９（２）を受信すると、読出し要求１５９（２）から、データ読出しアドレス１５８（ＡＤＲ（２））を抽出する。ＣＰＵ側受信部１０３は、アドレス記憶部１０８及びデータ記憶部１１１に、抽出したデータ読出しアドレス１５８を送出する。
【００４４】
（ｄ４）アドレス記憶部１０８は、データ読出しアドレス１５８を受け取ると、テーブル１０８１のデータ読出しアドレス格納域１０８１−５に登録し、または、既に登録済みのエントリの更新を行う（後述の「Ｇ．３  データ読出しアドレスの格納及び更新」参照）。
（ｄ５）アドレス記憶部１０８は、後述の「Ｇ．２  割込み要因内容の登録及びデータ読出しアドレスの出力（３）」に示すように、テーブル１０８１に該当するアドレスがない場合、ＣＰＵ側受信部１０３から受信したデータ読出しアドレス１５８（ＡＤＲ（２））を、テーブル１０８１に登録する。同時に、アドレス記憶部１０８はＩ／Ｏ側送信部１０６に、ＣＰＵ側受信部１０３から受信したデータ読出しアドレス１６２（ＡＤＲ（２））を送出する。Ｉ／Ｏ側送信部１０６は、Ｉ／Ｏ装置１２または下位バス中継装置に、Ｉ／Ｏ装置内データの読出し要求１５９（２）を出力する。
（ｄ６）上記の（ｄ３）によりデータ読出しアドレス１５８（ＡＤＲ（２））を受け取ったデータ記憶部１１１は、上位の接続がＣＰＵ１０である時、Ｉ／Ｏ装置内データが既に自身に格納されていれば、トランザクション送信部１１０へ、記憶されているＩ／Ｏ装置内データ１６３を送出する。
（ｄ７）Ｉ／Ｏ装置内データ１６３を受け取ったトランザクション送信部１１０は、ＣＰＵ１０または上位バス中継装置に、Ｉ／Ｏ装置内データ１６３を読出しデータ１６０（２）として送信する。
【００４５】
＜（Ｅ）Ｉ／Ｏ装置内データの受信時動作＞
Ｉ／Ｏ装置１２または下位バス中継装置からのＩ／Ｏ装置内データ（読出しデータ１６０（２））の受信時の動作は、バス中継装置１内の以下の構成要素が動作に関係する。つまり、Ｉ／Ｏ側受信部１０７、トランザクション送信部１１０、データ記憶部１１１が動作に関係する。
図１２は、Ｉ／Ｏ装置内データの受信時における、データ、制御の流れと上記構成要素の関係を示すＵＭＬシーケンス図である。
【００４６】
Ｉ／Ｏ装置内データの受信時は、次の処理が行われる。
（ｅ１）上記の「Ｂ．割り込み要因受信時動作」の（ｂ７）または「Ｄ．Ｉ／Ｏ装置内データの読出し要求受信時動作」の（ｄ５）により送信したＩ／Ｏ装置内データの読出し要求１５９（２）に対し、Ｉ／Ｏ装置１２または下位バス中継装置が送出したＩ／Ｏ装置内データ１６３（読出しデータ１６０（２））を、Ｉ／Ｏ側受信部１０７が受信する。
（ｅ２）Ｉ／Ｏ側受信部１０７は、Ｉ／Ｏ装置内データ１６３（読出しデータ１６０（２））を受信すると、データ記憶部１１１へ送出する。
（ｅ３）データ記憶部１１１は、Ｉ／Ｏ装置内データ１６３を受け取ると、上位の接続がＣＰＵ１０である時、Ｉ／Ｏ装置内データ１６３を格納する。ただし、既にＣＰＵ側受信部１０３によりＩ／Ｏ装置内データの読出しアドレス１５８（ＡＤＲ（２））を受け取り済みの場合、Ｉ／Ｏ装置内データ１６３を格納せず、トランザクション送信部１１０へＩ／Ｏ装置内データ１６３を送出する。
（ｅ４）データ記憶部１１１は、Ｉ／Ｏ装置内データ１６３を受け取ると、自バス中継装置の上位の接続が上位バス中継装置１である時、Ｉ／Ｏ装置内データ１６３を格納せず、トランザクション送信部１１０へＩ／Ｏ装置内データ１６３を送出する。
（ｅ５）トランザクション送信部１１０は、Ｉ／Ｏ装置内データ１６３を受け取ると、ＣＰＵ１０または、上位バス中継装置１に読出しデータ１６０としてＩ／Ｏ装置内データを送信する。
【００４７】
＜Ｆ．アドレス記憶部１０４の動作＞
アドレス記憶部１０４の動作を以下にまとめる。
図１３〜図２０は、アドレス記憶部１０４の動作を示すフローチャートである。
図１３はアドレス記憶部１０４の全体動作を示し、図１４〜図２０が、図１３のサブルーチン処理を示す。図１３の動作の主体は、アドレス記憶部１０４である。
図１４は、テーブル１０４１の初期化処理のフローチャートである。
図１５は、接続ポート番号の登録処理のフローチャートである。
図１６は、無効エントリの検索処理のフローチャートである。
図１７は、送信アドレスの登録処理のフローチャートである。
図１８は、「登録中エントリ」の検索処理のフローチャートである。
図１９は、「登録中エントリ」の有効化判定処理のフローチャートである。
図２０は、テーブル１０４１のアクセス履歴、アクセス回数の更新処理のフローチャートである。
【００４８】
＜Ｆ．１  テーブル１０４１の初期化（Ｓ１１２）＞
（１）図１３のように、システムリセット解除（Ｓ１１１）の後、アドレス記憶部１０４は、システム起動直後、テーブル１０４１の初期化によりテーブルの状態を無効にする（Ｓ１１２）。
図１４は、Ｓ１１２の内容を示す。Ｓ１２１〜Ｓ１２３において、アドレス記憶部１０４は、テーブル１０４１のエントリｉの状態を無効にする。図５で説明すれば、アドレス記憶部１０４は、テーブル１０４１の各エントリ（各行）の状態を無効にする。
【００４９】
＜Ｆ．２  接続ポート番号の登録（Ｓ１１４）＞
（１）Ｓ１１３においてアドレス記憶部１０４は、接続ポート番号の受信を待つ。アドレス記憶部１０４は、割込み通知受信部１０１から接続ポート番号１５３を受け取ると（Ｓ１１３のＹＥＳ、図８の（ａ７））、テーブル１０４１の未使用（無効）のエントリの接続ポート番号格納域１０４１−３に、受け取った接続ポート番号を格納する（Ｓ１１４）。
（２）この時、接続ポート番号を書き込んだエントリは、未だ有効（使用中）ではなく、登録中状態である。状態を登録中とする。Ｓ１１４は図１５が示し、図１５のＳ１３１は図１６が示す。Ｓ１３１を示す図１６において、アドレス記憶部１０４は、テーブル１０４１の中の無効エントリを検索する。図１６のＳ１４１〜Ｓ１４４に示すように、アドレス記憶部１０４は、テーブル１０４１の中で無効なエントリを見つけると処理を終了する。アドレス記憶部１０４は、ヒットした無効エントリの状態を「登録中」にし（Ｓ１３２）、Ｓ１１３で受け取ったポート番号を「登録中」のエントリの接続ポート番号格納域１０４１−３に格納する。
【００５０】
＜Ｆ．３  送信アドレス・アクセス履歴・アクセス回数の登録（Ｓ１１６）＞
Ｓ１１５においてアドレス記憶部１０４はアドレス情報（ＡＤＲ（１））の受信を待つ。これは図１０の（ｃ４−１）に該当する。
（１）＜送信アドレスの登録＞
アドレス記憶部１０４がアドレス選択部１０５から出力されるアドレス情報１５５を受け取ると（Ｓ１１５のＹＥＳ）、図１３の処理はＳ１１６に進む。Ｓ１１６の内容は、図１７のＳ１５１〜Ｓ１５３に示す。Ｓ１５１は登録中のエントリの検索である。Ｓ１５１の内容は図１８に示す。図１８の内容は、図１６で述べた「無効エントリ」の検索と類似であり、アドレス記憶部１０４がテーブル１０４１の中から「登録中エントリ」を見つけると、最初に見つけたエントリを「登録中エントリ」として維持する（Ｓ１６１〜Ｓ１６４）。Ｓ１５２においてアドレス記憶部１０４は、Ｓ１５１で見つけた「登録中エントリ」の送信アドレス格納域１０４１−４に、Ｓ１１５で受信したアドレス情報（送信アドレス）を格納する。Ｓ１５３においてアドレス記憶部１０４は登録中エントリの有効化判定を行う。Ｓ１５３は図１９のＳ１７１〜Ｓ１７９に示す。Ｓ１７１〜Ｓ１７３、Ｓ１７４−２のループで、アドレス記憶部１０４は、テーブル１０４１から「有効」なエントリを探す。Ｓ１７２で「有効」なエントリが見つかると、アドレス記憶部１０４は、Ｓ１７３で「有効」なエントリと、「登録中エントリ」との接続ポート番号を比較する（Ｓ１７３）。一致する場合、Ｓ１７４−１に進み、アドレス記憶部１０４は、さらに、送信アドレスどうしが一致するかどうかを判断する。
【００５１】
（２）＜送信アドレスの同じエントリが既登録の場合＞
Ｓ１７４−１で一致する場合、つまり、登録中状態のエントリの接続ポート番号と上記「Ｆ．３（１）」の送信アドレスとをもつエントリが既にある場合は、アドレス記憶部１０４は送信アドレスを格納せず、登録中状態を「無効」にする（図１９のＳ１７９）。Ｓ１７４−１で一致する場合、処理はＳ１７８、Ｓ１７９、終了へと向かう。これらの処理は後述の＜Ｆ．４  アクセス履歴、アクセス回数の更新＞で述べる。
【００５２】
（３）＜送信アドレスが同じエントリが未登録時の場合＞
Ｓ１７４−１で一致しない場合、処理はＳ１７５、Ｓ１７６、Ｓ１７７、終了へと向かう。Ｓ１７４−１で一致しない場合の処理は、接続ポート番号を同じくする送信アドレス違いのエントリの新規登録である。上記「Ｆ．３（１）」、「Ｆ．３（２）」で送信アドレスを格納した際、アドレス記憶部１０４は、登録中エントリのアクセス履歴を「０」に設定する（Ｓ１７５）。アクセス履歴は０以上の整数で、数値が小さいほど最新のアクセスであることを示すものとする。アクセス履歴は、そのエントリの接続ポートと送信アドレスとの組が使用された新しさを示し、数値が小さいほど新しい。
【００５３】
（４）＜送信アドレスが未登録時のアクセス回数＞
上記「Ｆ．３（１）」、「Ｆ．３（２）」で送信アドレスを格納した際、アドレス記憶部１０４は、登録中エントリのアクセス回数を「０」に設定する（Ｓ１７７）。アクセス回数は、０以上の整数で、数値が大きいほどアクセスが多く発生していることを示す。
【００５４】
＜Ｆ．４  アクセス履歴、アクセス回数の更新＞
（１）上記「Ｆ．３（２）」の場合、アドレス記憶部１０４は、既に存在するエントリのアクセス回数の更新を行う。処理はＳ１７４−１、Ｓ１７８，Ｓ１７９の順である。Ｓ１７８の内容は図２０である。
（２）アクセス履歴の更新は、有効状態のエントリの接続ポート番号のうち、登録中状態のエントリの接続ポート番号と一致する有効状態のエントリ全てに対して行う。この内容は図２０の説明で後述する。
（３）図２０に示すように、アドレス記憶部１０４は、アクセス履歴の更新対象となるエントリｊに対して、上記「Ｆ．３（２）」のＳ１７８では、送信アドレスが一致するエントリｉのアクセス履歴の値ｔｍｐより小さい値のエントリｊのアクセス履歴を「＋１」し、送信アドレスが一致するエントリｉのアクセス履歴は「０」に更新する。こうすることで、アクセス履歴の大小関係を保つことが可能である。
（４）図２０に示すように、既に存在するエントリのアクセス回数の更新は、現在のアクセス回数値に＋１した値に更新する。
【００５５】
図２０を説明する。
（１）Ｓ１８１において、アドレス記憶部１０４は、エントリｉのアクセス履歴値を変数ｔｍｐに格納する。アクセス履歴値は、テーブル１０４１のアクセス履歴格納域１０４１−５におけるエントリｉの値である。エントリｉは、図１９において、「登録中エントリ」と接続ポート番号、送信アドレスの同じ特定のエントリである。
（２）Ｓ１８２においてアドレス記憶部１０４は、テーブル１０４１から一つのエントリ（ｊ＝１）を選択する。
（３）Ｓ１８３においてアドレス記憶部１０４は、エントリｊが有効かどうかを判定する。有効でないときは次のエントリを選択する。有効のときはＳ１８４に進む。
（４）Ｓ１８４においてアドレス記憶部１０４は、選択したエントリｊとエントリｉの接続ポート番号が同じかを判定する。異なる場合は次のエントリを選択し、Ｓ１８３からの処理を繰り返す。接続ポート番号が同じ場合（Ｓ１８４のＹＥＳ）、処理はＳ１８５に進む。
（５）Ｓ１８５においてアドレス記憶部１０４は、エントリｊのアクセス履歴値がｔｍｐよりも小さいか判定する。ｔｍｐよりも小さくない場合、処理はＳ１８２に戻る。ｔｍｐよりも小さい場合は、処理はＳ１８６に進む。
（６）Ｓ１８６においてアドレス記憶部１０４は、エントリｊのアクセス履歴値を１増やす。この後、アドレス記憶部１０４は別のエントリｊを選択し、Ｓ１８２に戻る。
（７）Ｓ１８８においてアドレス記憶部１０４は、エントリｉのアクセス履歴値を「０」にする。
（８）Ｓ１８９においてアドレス記憶部１０４は、エントリｉのアクセス回数を１増やす。
【００５６】
＜Ｇ．  アドレス記憶部１０８の動作＞
アドレス記憶部１０８の動作を以下にまとめる。
図２１は、アドレス記憶部１０８の全体動作のフローチャートである。図２１の動作の主体はアドレス記憶部１０８である。図２２〜図２６は図２１のサブルーチン処理を示す。
図２２は、テーブル１０８１の初期化処理のフローチャートである。
図２３は、テーブル１０８１への送信アドレスの登録処理のフローチャートである。
図２４は、テーブル１０８１の割込み要因の内容の登録、データ読出しアドレスの出力のフローチャートである。
図２５は、有効エントリ登録済の検索処理のフローチャートである。
図２６は、データ読出しアドレスの格納処理及び更新処理のフローチャートである。
【００５７】
図２１のように、システムリセット解除（Ｓ１９１）の後、アドレス記憶部１０８は、システム起動直後、テーブル１０８１の初期化によりテーブルの状態を無効にする（Ｓ１９２）。Ｓ１９２の内容は図２２に示す。図２２は図１４と同様であるので説明を省略する。
【００５８】
＜Ｇ．１  送信アドレスの登録：Ｓ１９４＞
（１）Ｓ１９３においてアドレス記憶部１０８は、送信アドレスの受信を待つ。アドレス記憶部１０８は、アドレス選択部１０５から送信アドレス１５６を受け取ると（図８の（ａ１１））、テーブル１０８１の未使用（無効）のエントリの送信アドレス格納域に受け取った送信アドレスを格納する。
（２）この時、送信アドレスを書き込んだエントリは、未だ有効（使用中）ではなく、登録中状態である。状態を登録中とする。送信アドレス登録（Ｓ１９４）は、図２３である。図２３のＳ２１１は図１６であり、既に説明したので説明は省略する。また図２３は図１５と類似であるので説明は省略する。
【００５９】
＜Ｇ．２  割込み要因内容の登録及びデータ読出しアドレスの出力＞
（１）Ｓ１９５においてアドレス記憶部１０８は、割込み要因内容の受信を待つ。アドレス記憶部１０８は、Ｉ／Ｏ側受信部１０７から、割込み要因内容１６１を受け取ると（Ｓ１９５のＹＥＳ、図９の（ｂ５））、Ｓ１９６に進む。Ｓ１９６は、図２４の内容である。図２４のＳ２２１は図１８の内容であり、Ｓ２２３は図２５の内容である。図１８は既に説明したのでＳ２２１の説明は省略する。Ｓ２２２において、アドレス記憶部１０８は、テーブル１０８１の「登録中」のエントリの割込み要因内容格納域１０８１−４に、受け取った割込み要因内容１６１を格納する。処理はＳ２２３に進む。
【００６０】
（２）以下に図２５を参照して説明する。アドレス記憶部１０８は、エントリ検索ヒットフラグを無効にし（Ｓ２３１）、テーブル１０８１からエントリを一つ選択する（Ｓ２３２）。アドレス記憶部１０８は、選択したエントリｉが有効であればＳ２３４の処理に進み、有効でなければ次のエントリを選択する（Ｓ２３３）。Ｉ／Ｏ側受信部１０７から、割込み要因内容１６１を受け取った時（図９の（ｂ５））、アドレス記憶部１０８は、テーブル１０８１の登録中のエントリの送信アドレス及び受け取った割込み要因内容１６１の組合せが、既に有効状態のエントリにあるかどうかを確認する（Ｓ２３４、Ｓ２３５）。この組合せがある場合（Ｓ２３４のＹＥＳ、Ｓ２３５のＹＥＳ）、アドレス記憶部１０８は、エントリ検索ヒットフラグを有効にする（Ｓ２３６）。アドレス記憶部１０８は、エントリｉの「ｉ」を「検索ヒットエントリ」に格納する（Ｓ２３７）。アドレス記憶部１０８は、その有効状態のエントリｉのデータ読出しアドレス格納域の値を、データ読出しアドレス１６２としてＩ／Ｏ側送信部１０６へ出力する（Ｓ２３８）。アドレス記憶部１０８は、エントリ検索ヒットフラグが無効でない場合（Ｓ２４０のＮＯ）、処理を終了する。
【００６１】
（３）図９の（ｂ５）でＩ／Ｏ側受信部１０７から、割込み要因内容１６１を受け取った時、テーブル１０８１の登録中のエントリの送信アドレス（Ｓ１９３のＹＥＳ）及び受け取った割込み要因内容１６１（Ｓ１９５のＹＥＳ）の組合せが、有効状態のエントリにない場合（Ｓ２３５のＮＯ、Ｓ２４０のＹＥＳ））Ｓ２４１に進む。Ｓ２４１では、アドレス記憶部１０８は、ＣＰＵ側受信部１０３が出力するデータ読出しアドレス１５８の受取りを待つ。Ｓ２４１においてアドレス記憶部１０８は、データ読出しアドレス１５８を受け取ると（図１１の（ｄ３））、データ読出しアドレス１６２としてＩ／Ｏ側送信部１０６へ出力する（Ｓ２４２、図１１の（ｄ５））。
【００６２】
＜Ｇ．３  データ読出しアドレスの格納及び更新＞
図２１に示すように、Ｓ１９６はＳ１９７に進む。Ｓ１９７は図２６の内容である。
（１）アドレス記憶部１０８は、エントリ検索ヒットフラグが有効の場合（Ｓ２５１のＹＥＳ）、データ読出しアドレスの受信を待つ（Ｓ２５２）。アドレス記憶部１０８は、ＣＰＵ側受信部１０３が出力するデータ読出しアドレス１５８を受け取ると（Ｓ２５２のＹＥＳ、図１１の（ｄ３））、テーブル１０８１の登録中のエントリのデータ読出しアドレス格納域１０８１−５へ、データ読出しアドレス１５８を格納し（Ｓ２５３）、登録中のエントリの状態を有効にする（Ｓ２５４）。
（２）ただし、上記「Ｇ．２  割込み要因内容の登録及びデータ読出しアドレスの出力（２）」の場合（Ｓ２５１でＹＥＳ、既にエントリに登録済みの場合）、アドレス記憶部１０８は、送信アドレス及び割込み要因が一致する有効なエントリｉを無効化する。これによって、テーブル１０８１が、最新のデータ読出しアドレス１５８に更新される。
【００６３】
以上の実施の形態１によれば、以下の効果が得られる。
（１）予め「割込み要因」の格納場所を示すアドレス設定が不要で、従来の「割込み要因」読み出しにかかる時間を短縮する方法以前に使用したＳ／Ｗ処理の変更を不要としながら「割込み要因」読み出しにかかる時間を削減する効果がある。
（２）また、割込み要因読出し後の処理で発生するＩ／Ｏ装置内のデータ読出しに関しても、時間削減の効果がある。
（３）また、バス中継装置を多段接続した場合のバス多段構成時にも、上記の時間削減の効果がある。
【００６４】
以上の実施の形態では、以下の（１）〜（４）のシステム構成で使用されるバス中継装置を説明した。
（１）周期的にＳ／Ｗ処理を繰り返し実行する。
（２）ＣＰＵが一定の周期内でＳ／Ｗ処理を完了し、次の周期で再びＳ／Ｗ処理を行う。
（３）複数のＩ／Ｏ装置を接続し、ＣＰＵと複数のＩ／Ｏ装置はバス中継装置を介して接続される。
（４）Ｉ／Ｏ装置とバス中継装置の接続は１対１（ポイント・ツー・ポイント）で行う。
【００６５】
また、以上の実施の形態で説明したバス中継装置は、以下の構成要素を有する。割込み通知受信部１０１、割込み通知送信部１０２、ＣＰＵ側受信部１０３、アドレス記憶部１０４、アドレス選択部１０５、Ｉ／Ｏ側送信部１０６、Ｉ／Ｏ側受信部１０７、アドレス記憶部１０８、割込み要因内容記憶部１０９、トランザクション送信部１１０、データ記憶部１１１。
【００６６】
また、以上の実施の形態で説明したバス中継装置は、以下の構成を有する。
（１）Ｉ／Ｏ装置から割込み通知を受信しＣＰＵへ転送する。
（２）ＣＰＵからの割込み要因の読出し要求を待たずに、Ｉ／Ｏ装置に割込み要因読出しを自律的に発行する。
（３）Ｉ／Ｏ装置への割込み要因読出し時のアドレス設定をＳ／Ｗで行う必要がなく、動作中のアドレスを記憶し、そのアドレスを使用する。
（４）アドレスは複数記憶することが可能で、Ｉ／Ｏ装置に割込み要因読出し時の状態に合ったアドレスを選択可能とする。
（５）自律的に発行したＩ／Ｏ装置への割込み要因読出しによる割込み要因を記憶する。
（６）ＣＰＵからの割込み要因の読出し要求を受信した時に、自バス中継装置内に記憶した割込み要因をＣＰＵへ送出する。
（７）ＣＰＵからの割込み要因の読出し要求よりアドレスを抽出し、次回の自律的割込み要因読出しのアドレス候補として記憶し、統計情報も生成し記憶する。
【００６７】
また、以上の実施の形態で説明したバス中継装置は、以下の特徴を有する。つまり、上記で述べたバス中継装置は、Ｉ／Ｏ装置から受信した割込み要因によって、ＣＰＵが割込み要因読出し後に読み出しを行うＩ／Ｏ装置内データを、ＣＰＵからのＩ／Ｏ装置内データ読出しを待たずに、自律的にＩ／Ｏ装置から読出すことを可能とする。
【００６８】
また、以上の実施の形態で説明したバス中継装置は、以下の特徴を有する。つまり、上記で述べたバス中継装置は、Ｉ／Ｏ装置の代わりにバス中継装置を接続可能とし、バス中継装置の多段接続を可能とする。
【符号の説明】
【００６９】
１  バス中継装置、２，３  システム、１０  ＣＰＵ、１１  バス、１２  Ｉ／Ｏ装置、１０１  割込み通知受信部、１０２  割込み通知送信部、１０３  ＣＰＵ側受信部、１０４  アドレス記憶部、１０４１  テーブル、１０５  アドレス選択部、１０６  Ｉ／Ｏ側送信部、１０７  Ｉ／Ｏ側受信部、１０８  アドレス記憶部、１０８１  テーブル、１０９  割込み要因内容記憶部、１１０  トランザクション送信部、１１１  データ記憶部、１５１  割込み通知、１５２  割込み通知受信フラグ、１５３  接続ポート番号、１５４  アドレス参照指示、１５５  アドレス情報、１５６  送信アドレス、１５７  割込み要因読出し指示、１５８  データ読出しアドレス、１５９  読出し要求（割込み要因の読出し要求，Ｉ／Ｏ装置内データの読出し要求）、１６０  読出しデータ、１６１  割込み要因内容、１６２  データ読出しアドレス、１６３  Ｉ／Ｏ装置内データ。
【図１】
0006053921.tif 000002
【図２】
0006053921.tif 000003
【図３】
0006053921.tif 000004
【図４】
0006053921.tif 000005
【図５】
0006053921.tif 000006
【図６】
0006053921.tif 000007
【図７】
0006053921.tif 000008
【図８】
0006053921.tif 000009
【図９】
0006053921.tif 000010
【図１０】
0006053921.tif 000011
【図１１】
0006053921.tif 000012
【図１２】
0006053921.tif 000013
【図１３】
0006053921.tif 000014
【図１４】
0006053921.tif 000015
【図１５】
0006053921.tif 000016
【図１６】
0006053921.tif 000017
【図１７】
0006053921.tif 000018
【図１８】
0006053921.tif 000019
【図１９】
0006053921.tif 000020
【図２０】
0006053921.tif 000021
【図２１】
0006053921.tif 000022
【図２２】
0006053921.tif 000023
【図２３】
0006053921.tif 000024
【図２４】
0006053921.tif 000025
【図２５】
0006053921.tif 000026
【図２６】
0006053921.tif 000027