特許第6053921号(P6053921)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6053921
(24)【登録日】2016年12月9日
(45)【発行日】2016年12月27日
(54)【発明の名称】バス中継装置
(51)【国際特許分類】
   G06F 13/36 20060101AFI20161219BHJP
   G06F 13/24 20060101ALI20161219BHJP
【FI】
   G06F13/36 310E
   G06F13/24 310E
【請求項の数】8
【全頁数】25
(21)【出願番号】特願2015-516844(P2015-516844)
(86)(22)【出願日】2013年5月16日
(86)【国際出願番号】JP2013063709
(87)【国際公開番号】WO2014184935
(87)【国際公開日】20141120
【審査請求日】2015年5月14日
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】100099461
【弁理士】
【氏名又は名称】溝井 章司
(74)【代理人】
【識別番号】100122035
【弁理士】
【氏名又は名称】渡辺 敏雄
(72)【発明者】
【氏名】飯田 博之
【審査官】 坂東 博司
(56)【参考文献】
【文献】 特開平11−338713(JP,A)
【文献】 特開平08−115292(JP,A)
【文献】 特開平02−166548(JP,A)
【文献】 特開2000−276357(JP,A)
【文献】 特開2010−224689(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/36
G06F 13/24
(57)【特許請求の範囲】
【請求項1】
CPU(Central Processing Unit)とI/O(Input/Output)装置との間で通信される割込みの情報を中継し、前記CPUと他の中継装置とのいずれかの装置が上位側に接続し、I/O装置と、上位側とは別の他の中継装置とのうち、少なくとも前記I/O装置が下位側に接続するバス中継装置において、
I/O装置が送信元である割込み通知を下位側のポートから受信し、前記ポートのポート番号を出力する割込み通知受信部と、
ポート番号と、割込み要因の読出しに使用するアドレスである割込み要因アドレスとの複数の組を含む割込み要因アドレス情報を格納する第1のアドレス記憶部と、
前記割込み通知受信部が出力した前記ポート番号を受信し、受信した前記ポート番号に基づいて前記第1のアドレス記憶部の前記割込み要因アドレス情報から割込み要因アドレスを取得すると共に、受信した前記ポート番号のポートに接続する装置がI/O装置かどうかを予め保有する接続情報に基づいて判断し、前記ポートに接続する装置が前記I/O装置であると判断すると、前記第1のアドレス記憶部から取得した割込み要因アドレスを出力するアドレス選択部と、
前記アドレス選択部が出力した割込み要因アドレスを含む割込み要因の要因読出し要求を、前記ポートに接続する前記I/O装置に向けて送信する下位側送信部と、
前記下位側送信部が送信した前記割込み要因の要因読出し要求に応答する割込み要因を、前記ポートに接続する前記I/O装置から受信し、受信した前記割込み要因を出力する下位側受信部と、
割込み要因アドレスと、割込み要因と、I/O装置の内部データの読出しに使用するアドレスであるデータ読出しアドレスとの組を複数格納し、前記アドレス選択部が出力した割込み要因アドレスと、前記下位側受信部が出力した前記割込み要因とを受信し、受信した前記割込み要因アドレスと前記割込み要因とを含む組が、格納する複数の前記組の中に存在するかどうか判断し、受信した前記割込み要因アドレスと前記割込み要因とを含む組が存在すると判断すると、前記組に含まれる前記データ読出しアドレスを出力する第2のアドレス記憶部と
を備え、
前記下位側送信部は、
前記第2のアドレス記憶部が出力した前記データ読出しアドレスに基づいてI/O装置の内部データの読出しを求めるデータ読出し要求を生成し、生成した前記データ読出し要求を前記ポートに接続する前記I/O装置に向けて送信することを特徴とするバス中継装置。
【請求項2】
前記バス中継装置は、さらに、
前記上位側に接続する前記装置から割込み要因アドレスを含む割込み要因の要因読出し要求を受信し、前記要因読出し要求を受信すると、前記上位側に接続する前記装置がCPUかどうかを予め保有する接続情報に基づいて判断し、前記上位側に前記CPUが接続すると判断すると、割込み要因の読出し指示を出力する上位側受信部と、
前記上位側受信部が出力した割込み要因の読出し指示を受信すると共に前記下位側受信部が出力した前記割込み要因を受信して格納し、前記割込み要因が格納され、かつ、前記割込み要因の読出し指示が受信されると、前記割込み要因を出力する割込み要因記憶部と、
前記割込み要因記憶部が出力した前記割込み要因を受信し、受信した前記割込み要因を前記上位側に接続する前記CPUに送信する上位側送信部と
を備えたことを特徴とする請求項1に記載のバス中継装置。
【請求項3】
前記バス中継装置は、さらに、
I/O装置の内部データを記憶する内部データ記憶部を備え、
前記上位側受信部は、
前記上位側に接続する前記装置からデータ読出しアドレスを含むと共にI/O装置の内部データの読出しを求めるデータ読出し要求を受信し、受信した前記データ読出し要求から前記データ読出しアドレスを抽出し、抽出した前記データ読出しアドレスを出力し、
前記内部データ記憶部は、
前記上位側受信部が出力した前記データ読出しアドレスを受信し、前記上位側受信部から前記データ読出しアドレスを受信すると、前記上位側に接続する前記装置が前記CPUかどうかを予め保有する接続情報に基づいて判断し、前記上位側に前記CPUが接続すると判断すると、I/O装置の前記内部データを記憶しているときには、前記内部データを前記上位側送信部に出力し、
前記上位側送信部は、
前記内部データ記憶部から前記内部データを受信し、前記内部データを前記上位側に接続する前記CPUに送信することを特徴とする請求項2に記載のバス中継装置。
【請求項4】
前記下位側受信部は、
前記下位側に接続する装置からI/O装置の内部データを受信し、受信した前記内部データを前記内部データ記憶部に出力し、
前記内部データ記憶部は、
前記下位側受信部から内部データを受信すると、前記上位側に接続する前記装置が前記CPUかどうかを予め保有する接続情報に基づいて判断し、前記上位側に前記CPUが接続すると判断すると、前記上位側受信部が出力する前記データ読出しアドレスが受信済みのときは前記内部データを前記上位側送信部に送信し、前記データ読出しアドレスが未受信のときは前記データ読出しアドレスの受信を待ち、前記データ読出しアドレスが受信されたときに前記内部データを前記上位側送信部に送信することを特徴とする請求項3に記載のバス中継装置。
【請求項5】
前記第1のアドレス記憶部が格納する前記割込み要因アドレス情報は、
前記組ごとに、前記ポート番号が前記組として使用された過去の使用状況を示すアクセス情報を有し、
前記上位側受信部は、
前記上位側に接続する前記装置から割込み要因アドレスを含む割込み要因の要因読出し要求を受信すると前記要因読出し要求から前記割込み要因アドレスを抽出し、抽出した前記割込み要因アドレスを出力し、
前記第1のアドレス記憶部は、
前記割込み通知受信部が出力した前記ポート番号と、前記上位側受信部が出力した前記割込み要因アドレスとを受信し、受信した前記ポート番号及び前記割込み要因アドレスと同じ前記ポート番号及び前記割込み要因アドレスを含む前記組に対して、前記アクセス情報を更新し、
前記アドレス選択部は、
前記アクセス情報の更新後の前記割込み要因アドレス情報から、前記割込み要因を取得することを特徴とする請求項2から請求項4のいずれか一項に記載のバス中継装置。
【請求項6】
前記第1のアドレス記憶部が格納する前記割込み要因アドレス情報は、
前記組ごとの前記アクセス情報として、
前記組の使用された新しさを示すアクセス履歴と、前記組の使用された回数を示すアクセス回数とを含み、
前記アドレス選択部は、
前記アクセス履歴と、前記アクセス回数とのいずれかに基づいて、前記割込み要因アドレスを取得することを特徴とする請求項5に記載のバス中継装置。
【請求項7】
前記第1のアドレス記憶部は、
前記割込み通知受信部が出力した前記ポート番号と、前記上位側受信部が出力した前記割込み要因アドレスとを受信したときに、受信した前記ポート番号及び前記割込み要因アドレスと同じ前記ポート番号及び前記割込み要因アドレスを含む前記組が存在しないときには、受信した前記ポート番号と前記割込み要因アドレスとを含む前記組を新たな組として格納することを特徴とする請求項5または請求項6に記載のバス中継装置。
【請求項8】
前記第2のアドレス記憶部は、
前記アドレス選択部が出力した前記割込み要因アドレスと、前記下位側受信部が出力した前記割込み要因と、前記上位側受信部が出力した前記データ読出しアドレスとを受信し、受信した前記割込み要因アドレスと、前記割込み要因と、前記データ読出しアドレスとの組が格納されているかどうかを判断し、格納されていないと判断すると前記組を新たに格納することを特徴とする請求項3から請求項7のいずれか一項に記載のバス中継装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、I/O装置の割込みに関して、I/O装置とCPUとのバスを経由する通信を中継するバス中継装置に関する。
【背景技術】
【0002】
周期的にS/W処理を繰り返し実行するシステムとその構成がある。このシステムは、CPUがS/W処理を行い一定の周期内でS/W処理を完了し、次の周期で再びS/W処理を行う。上記システムの構成としては、複数のI/O装置は、バス中継装置(ブリッジ)を介してCPUと接続される。I/O装置とバス中継装置の接続、または1対1(ポイント・ツー・ポイント)で接続されるバスである構成の場合、以下の(1)、(2)の処理が行われる。
(1)I/O装置が割込みをバス中継装置を経由しCPUへ通知する。
(2)CPUは「割込み要因」の読み出し要求を発行する。CPUの発行した「割込み要因」の読み出し要求が、バス中継装置を経由しI/O装置に到達する。
この場合、I/O装置から「割込み要因」を読み出す時、CPUの「割込み要因」の読み出し要求発行から「割込み要因」を受領するまで、CPU処理は「割込み要因」読み出し待ち状態となる。
【0003】
下記の特許文献1(特開平5−257863)では、CPUが割込み要因を読出す代わりにバス中継装置相当部分が読出し、CPUが割込み要因を取得するまでの時間を短縮することが記載されている。特許文献1においては、I/O装置から割込み通知を受け取ると、処理ユニット内のバス中継装置相当部分(ISRリードシーケンス部41)が割込み要因を読み出している。
これにより、CPUが割込み要因を読出す代わりにバス中継装置相当部分が読出し、CPUが割込み要因を取得するまでの時間を短縮している。
【0004】
しかし、割込み要因をCPUが読み出す前に、バス中継装置相当部分(ISRリードシーケンス部41)が読出しアドレスを知っている必要があり、予めバス中継装置相当部分にそのアドレスを設定する必要がある。割込み要因の読出しアドレスが固定であれば、そのアドレス以外のシステムでは対応ができない。割込み要因のアドレスがシステムによって異なる場合は、予めバス中継装置相当部分(ISRリードシーケンス部41)にそれぞれに対応したアドレス設定が必要であり、該特許の構成では初期化時のS/Wによる設定が必要である。さらに、割込み要因の内容を読んだCPUが、その内容によってI/O装置内のデータの読出しが必要な場合、I/O装置内のデータ読出しの待ち時間の削減は行えない。また、特許文献1では、I/O装置とバス中継装置相当部分は装置内バスで接続され、バスの多段構成には対応できない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平5−257863号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来の「割込み要因」読み出しにかかる時間を短縮する方法には、以下の課題がある。
(1)予め「割込み要因」の格納場所を示すアドレス設定が必要で、初期化時のS/Wによる設定が必要である。
(2)さらに、CPUが行う割込み要因による処理に関連して、I/O装置内のデータを読出す場合の、I/O装置内のデータ読出し時間の削減はできない。
(3)また、バス中継装置を多段接続したバス多段構成は対応できない。
【0007】
本発明は、上記の課題を解決するためになされるもので、
(1)予め「割込み要因」の格納場所を示すアドレス設定が不要で、従来の「割込み要因」読み出しにかかる時間を短縮する方法以前に使用したS/W処理に変更が必要なく、
(2)割込み要因読出し後の処理で発生するI/O装置内のデータ読出しに関しても、時間削減を行い、
(3)より多くのI/O装置を接続する為にバス中継装置を多段接続した場合のバス多段構成時にも、上記に対応することが可能で、
これらにより割込み要因に関係する処理を短縮し、周期的なS/W処理にかけられる時間を増やすことを目的とする。
【課題を解決するための手段】
【0008】
この発明のバス中継装置は、
CPU(Central Processing Unit))とI/O(Input/Output)装置との間で通信される割込みの情報を中継し、前記CPUと他の中継装置とのいずれかの装置が上位側に接続し、I/O装置と上位側とは別の他の中継装置とのうち、少なくとも前記I/O装置が下位側に接続するバス中継装置において、
I/O装置が送信元である割込み通知を下位側のポートから受信し、前記ポートのポート番号を出力する割込み通知受信部と、
ポート番号と、割込み要因の読出しに使用するアドレスである割込み要因アドレスとの複数の組を含む割込み要因アドレス情報を格納する割込み要因アドレス記憶部と、
前記割込み通知受信部が出力した前記ポート番号を入力し、入力した前記ポート番号に基づいて前記割込み要因アドレス記憶部の前記割込み要因アドレス情報から割込み要因アドレスを取得すると共に、入力した前記ポート番号のポートに接続する装置がI/O装置かどうかを予め保有する接続情報に基づいて判断し、前記ポートに接続する装置が前記I/O装置であると判断すると、前記割込み要因アドレス記憶部から取得した割込み要因アドレスを出力するアドレス選択部と、
前記アドレス選択部が出力した割込み要因アドレスを含む割込み要因の要因読出し要求を、前記ポートに接続する前記I/O装置に向けて送信する下位側送信部と
を備えたことを特徴とする。
【発明の効果】
【0009】
この発明によって、予め割込み要因の格納場所を示すアドレス設定を必要としない割込み手段を提供することができる。
【図面の簡単な説明】
【0010】
図1】実施の形態1のバス中継装置1の1段接続のシステム2を示す図。
図2】実施の形態1のバス中継装置1の多段(2段)接続のシステム3を示す図。
図3】実施の形態1のバス中継装置1のブロック構成図。
図4】実施の形態1の前提となるI/O装置とCPUとの情報のやり取りを説明する図。
図5】実施の形態1の割込み要因アドレス記憶部104が有するアドレス情報記憶テーブル1041を示す図。
図6】実施の形態1のI/O装置内データ読出しアドレス記憶部108が有するI/O装置内データ読出しアドレス記憶テーブル1081を示す図。
図7】実施の形態1のシステム2の動作概要を示す図。
図8】実施の形態1の「(A)割込み通知の受信時動作」におけるデータ、制御の流れと、構成要素との関係を示すUMLシーケンス図。
図9】実施の形態1の「(B)割込み要因の受信時動作」における、データ、制御の流れと構成要素との関係を示すUMLシーケンス図。
図10】実施の形態1の「(C)割込み要因の読出し要求の受信時動作」における、データ、制御の流れと構成要素との関係を示すUMLシーケンス図。
図11】実施の形態1の「(D)I/O装置内データの読出し要求の受信時動作」における、データ、制御の流れと、構成要素の関係を示すUMLシーケンス図。
図12】実施の形態1の「(E)I/O装置内データの受信時動作」における、データ、制御の流れと構成要素との関係を示すUMLシーケンス図。
図13】実施の形態1の割込み要因アドレス記憶部104の動作を示すフローチャート。
図14】実施の形態1のアドレス情報記憶テーブル1041の初期化処理のフローチャート。
図15】実施の形態1の接続ポート番号の登録処理のフローチャート。
図16】実施の形態1の無効エントリの検索処理のフローチャート。
図17】実施の形態1の送信アドレスの登録処理のフローチャート。
図18】実施の形態1の「登録中エントリ」の検索処理のフローチャート。
図19】実施の形態1の「登録中エントリ」の有効化判定処理のフローチャート。
図20】実施の形態1のアドレス情報記憶テーブル1041のアクセス履歴、アクセス回数の更新処理のフローチャート。
図21】実施の形態1のI/O装置内データ読出しアドレス記憶部108の動作のフローチャート。
図22】実施の形態1のI/O装置内データ読出しアドレス記憶テーブル1081の初期化処理のフローチャート。
図23】実施の形態1のI/O装置内データ読出しアドレス記憶テーブル1081への送信アドレスの登録処理のフローチャート。
図24】実施の形態1のI/O装置内データ読出しアドレス記憶テーブル1081の割込み要因の内容の登録、I/O装置内データ読出しアドレスの出力のフローチャート。
図25】実施の形態1の有効エントリ登録済の検索処理のフローチャート。
図26】実施の形態1のI/O装置内データ読出しアドレスの格納処理及び更新処理のフローチャート。
【発明を実施するための形態】
【0011】
実施の形態1.
図1図2は、バス中継装置1を用いたシステム2、システム3構成を示す。
図1は、バス中継装置1の1段接続のシステム2を示す。
図2は、バス中継装置1の多段(2段)接続のシステム3を示す。図1図2に示すようにシステム2、システム3は、バス中継装置1、CPU(Central Processing Unit)10、I/O(Input/Output)装置12、バス11を備えている。図1のシステム2は、一つのCPU10、一つのバス中継装置1及び複数のI/O装置12を備えている。図2のシステム3は、一つのCPU10、二つのバス中継装置1及び複数のI/O装置12を備えている。
バス中継装置は、CPU装置とI/O装置との間で通信される割込みの情報を中継する。
図1図2に示すように、バス中継装置には、CPUと他の中継装置とのいずれかの装置が上位側に接続し、I/O装置と、上位側とは別の他の中継装置とのうち、少なくともI/O装置が下位側に接続する。
【0012】
図3は、バス中継装置1の構成図である。バス中継装置1は、割込み通知受信部101、割込み通知送信部102、CPU側トランザクション受信部103(上位側受信部)、割込み要因アドレス記憶部104、アドレス選択部105、リード・トランザクション発行部106(下位側送信部)、I/O側トランザクション受信部107(下位側受信部)、I/O装置内データ読出しアドレス記憶部108、割込み要因内容記憶部109(割込み要因記憶部)、トランザクション送信部110(上位側送信部)、I/O装置内データ記憶部111(内部データ記憶部)を備える。
【0013】
また、バス中継装置1では、図3に示すように、割込み通知151、割込み通知受信フラグ152、接続ポート番号153、アドレス参照指示154、アドレス情報155、送信アドレス156、割込み要因読出し指示157、I/O装置内データ読出しアドレス158(データ読出しアドレス)、読出し要求159、読出しデータ160、割込み要因内容161、I/O装置内データ読出しアドレス162、I/O装置内データ163(内部データ)等がやり取りされる。
【0014】
図4は、実施の形態1の前提となる、I/O装置とCPUとの割込みに関する情報のやりとりを示す図である。
(ST1)I/O装置は、割込み通知151を送信する。
(ST2)CPUは、割込み通知151の応答として、割込み要因の読出し要求159(1)(要因読出し要求)をI/O装置に送信する。読出し要求159(1)は、割込み要因の読出しのためのアドレス(以下、ADR(1)と記す場合がある)を含む。以下の実施の形態では読出し要求は2種類登場する。
割込み要因の読出し要求と、I/O装置内データの読出し要求である。前者を読出し要求159(1)、後者を読出し要求159(2)と記載する場合がある。また読出し要求159(1)、159(2)に対する応答が、それぞれ割込み要因と、I/O装置内データである。これらを割込み要因160(1)、I/O装置内データ160(2)と記載する場合がある。割込み要因160(1)とI/O装置内データ160(2)とは、いずれも読出しデータ160である。
(ST3)I/O装置は、割込み要因の読出し要求159(1)の応答として、割込み要因160(1)を送信する。
(ST4)CPUは割込み要因160(1)を受信すると、I/O装置のデータ読出しを要求する読出し要求159(2)(データ読出し要求)を送信する。読出し要求159(2)は、I/O装置のデータの所在を示すI/O装置内データ読出しアドレス(以下、ADR(2)と記す場合がある)を含む。
(ST5)I/O装置は、読出し要求159(2)を受信すると、I/O装置内データ160(2)を送信する。
【0015】
以下の実施の形態には、アドレス情報、送信アドレス、I/O装置内データ読出しアドレス等が登場する。これらのアドレスは、上記のADR(1)とADR(2)とのいずれかである。割込み要因の読出し要求159(1)に含まれるアドレスがADR(1)であり、I/O装置のデータ読出しを要求する読出し要求159(2)に含まれるアドレスがADR(2)である。以下の実施の形態では送信アドレス(ADR(1))、I/O装置内データ読出しアドレス(ADR(2))等のように記載する場合がある。
【0016】
図5は、割込み要因アドレス記憶部104が有するアドレス情報記憶テーブル1041(割込み要因アドレス情報)を示す。図5に示すように、アドレス情報記憶テーブル1041は、エントリ(行からなるレコード)を識別するエントリナンバ格納域1041−1、そのエントリが有効か無効かを示す状態格納域1041−2、接続ポート番号が格納される接続ポート番号格納域1041−3、送信アドレスが格納される送信アドレス格納域1041−4、アクセス履歴が格納されるアクセス履歴格納域1041−、アクセス回数が格納されるアクセス回数格納域1041−を有する。アクセス履歴やアクセス回数はポート番号の接続ポートが使用された使用状況を示す。
【0017】
図6は、I/O装置内データ読出しアドレス記憶部108が有するI/O装置内データ読出しアドレス記憶テーブル1081を示す。図6に示すように、I/O装置内データ読出しアドレス記憶テーブル1081は、エントリを識別するエントリナンバ格納域1081−1、そのエントリが有効か無効かを示す状態格納域1081−2、送信アドレスが格納される送信アドレス格納域1081−3、割込み要因の内容が格納される割込み要因内容格納域1081−4、I/O装置内データ読出しアドレスが格納されるI/O装置内データ読出しアドレス格納域1081−5を有する。
【0018】
(動作説明)
本実施の形態のシステム動作は、以下の動作を含む。
(A)割込み通知の受信時動作、
(B)割込み要因の受信時動作、
(C)割込み要因の読出し要求の受信時動作(CPU/上位ブリッジから送信される)、
(D)I/O装置内データの読出し要求の受信時動作(CPU/上位ブリッジから送信される)、
(E)I/O装置内データの受信時動作。
【0019】
本実施の形態のシステムの動作は、以下「(A)割込み通知の受信時動作(a2)」で示す、割込み通知受信フラグ152が有効となったことで開始し、「(E)I/O装置内データの受信時動作(e5)」のI/O装置内データの送信により終了する。
【0020】
以下に説明するように、アドレス選択部105(後述のa10)、割込み要因内容記憶部109(後述のb3−2)、I/O装置内データ記憶部111(後述のd6、e4)等は、上位や下位に接続する装置を判定できる。これは、アドレス選択部105等が、上位側、下位側に接続する装置の接続情報を予め保有しているからである。
【0021】
図7は、図1の1段接続の動作概要を示す図である。図7のA〜Eは上記の(A)〜(E)に対応する。詳細は後述するが、実施の形態1では、中継装置が割込み通知151を受信すると、アドレス情報記憶テーブル1041に基づき、CPUの応答を待たずに割込み要因の読出し要求159(1)を送信する。また、中継装置が割込み要因160(1)を受信すると、I/O装置内データ読出しアドレス記憶テーブル1081に基づき、CPUの応答を待たずにI/O装置内データ読出し要求159(2)を送信する。
以下に、詳細を説明する。
【0022】
<動作詳細>
以下に、上記の各動作について説明する。
【0023】
<(A)割込み通知の受信時動作>
「(A)割込み通知の受信時動作」は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、割込み通知受信部101、割込み通知送信部102、CPU側トランザクション受信部103(以下、CPU側受信部という)、割込み要因アドレス記憶部104(以下、アドレス記憶部104という)、アドレス選択部105、リード・トランザクション発行部106(以下、I/O側送信部という)、I/O装置内データ読出しアドレス記憶部108(以下、アドレス記憶部108という)が動作に関係する。
【0024】
図8は、「(A)割込み通知の受信時動作」における、データ、制御の流れと、上記の構成要素との関係を示すUMLシーケンス図である。図中、時間は上から下向きに流れ、横向きの矢印がデータ、制御の流れを示す。各構成要素に接続されている破線上にある矩形部分は、破線が接続されている構成要素で処理が行われることをあらわす。
【0025】
割込み通知の受信時は、以下の処理が行われる。
(a1)I/O装置12または「下位バス中継装置」(後述の(a4)の場合)によって発行された割込み通知151を、バス中継装置1内の割込み通知受信部101が、受信する。
(a2)割込み通知受信部101は、割込み通知151を受信したことを表す割込み通知受信フラグ152を、CPU側受信部103と、アドレス選択部105に送出する。
(a3)割込み通知受信部101は、I/O装置12または下位バス中継装置から発行された割込み通知151を受け取ると、フラグ送出の上記(a2)と同時に、割込み通知送信部102へ割込み通知151を送出する。
【0026】
(a4)割込み通知送信部102は、割込み通知受信部101から割込み通知151を受け取ると、CPU10または上位バス中継装置1へ割込み通知151を送信する。
(a5)CPU側受信部103は、フラグ送出の上記(a2)において割込み通知受信フラグ152を受け取ると、CPU10または上位バス中継装置1から送出される、割込み要因の読出し要求159(1)を受け取った際には(後述の(c3)、(c6))、「アドレス情報155、割込み要因読出し指示157」を、バス中継装置内の関連する構成要素に出力する。
(a6)割込み通知受信部101は、割込み通知151を受信したバス中継装置の接続ポート番号153を、アドレス記憶部104とアドレス選択部105とへ、フラグ送出の上記(a2)と同時に、送出する。接続ポート番号153の送出は、割込み通知151を通知したI/O装置12または割込み通知151を転送した下位バス中継装置を識別するためである。
【0027】
(a7)アドレス記憶部104は、図5のアドレス情報記憶テーブル1041を持つ。アドレス情報記憶テーブル1041は、以下、テーブル1041という。アドレス記憶部104は、割込み通知受信部101から接続ポート番号153を受け取ると、テーブル1041の未使用(無効)のエントリ(No.、状態、接続ポート番号、送信アドレス、アクセス履歴、アクセス回数を一連の情報として管理する単位(行))の接続ポート番号格納域1041−3に、受け取った接続ポート番号153を格納する(後述の図13のS113、S114)。)
【0028】
(a8)アドレス選択部105は、フラグ送出の(a2)において割込み通知受信フラグ152を受け取ると、割込み通知受信部101から接続ポート番号送出の(a6)で受け取った接続ポート番号153を基に、アドレス記憶部104内に格納されているアドレス情報155(ADR(1))を取得する。アドレス選択部105は、アドレス参照指示154をアドレス記憶部104に出力することにより、アドレス情報155を取得する。
(a9)アドレス選択部105は、(a8)におけるアドレス情報155の取得に際し、テーブル1041における有効(使用中)のエントリの接続ポート番号格納域1041−3に格納された番号と、割込み通知受信部101から受け取った接続ポート番号153とが一致する番号のエントリを対象に、対象とするエントリの「送信アドレス」を取得する。つまり、アドレス選択部105は、割込み通知受信部101から受け取った接続ポート番号153を有し、かつ、「有効」(同じポート番号の送信アドレスの格納されたエントリ)なエントリの「送信アドレス」をアドレス情報155として取得する。その際、アドレス選択部105は、アクセス履歴に従って、最も新しくアクセスがあったエントリ(アクセス履歴の数字の小さいエントリ)の送信アドレスを選択してもよい。また、アドレス選択部105は、アクセス回数が最も多いエントリの送信アドレスを選択してもよい。
【0029】
例えば図5の場合、割込み通知受信部101から受け取った接続ポート番号153が、「0」とした時、アドレス選択部105は、アクセス履歴に基づいて送信アドレスを選択する場合は、No.3の送信アドレス「1020」を、アドレス情報として選択する。アドレス選択部105は、アクセス回数に基づいて送信アドレスを選択する場合は、No.1の送信アドレス「1000」を、アドレス情報として選択する。
【0030】
(a10)アドレス選択部105は、接続ポート番号送出の(a6)で割込み通知受信部101から受け取った接続ポート番号153により、該当するポートの下位に接続されている装置を判断する。アドレス選択部105は、該当するポートの下位にI/O装置12が接続されていると判断すると、上記(a8)で取得したアドレス情報155を、I/O側送信部106へ、送信アドレス156として出力する。アドレス選択部105は、受け取った接続ポート番号153に該当するポートの下位に接続されているのが、下位バス中継装置の場合は、上記(a8)で取得したアドレス情報155を、I/O側送信部106へ出力しない。これにより、バス中継装置がCPUの割込み要因の読出し要求を待たずに、割込み要因の読出し要求を発行するのは、I/O装置がつながるバス中継装置のみである。
(a11)アドレス選択部105は、上記(a10)で送信アドレス156を、I/O側送信部106へ出力した場合(下位の接続がI/O装置の場合)、それと同時に送信アドレス156をアドレス記憶部108に出力する。
【0031】
(a12)アドレス記憶部108は、I/O装置内データ読出しアドレス記憶テーブル1081を持つ。以下、I/O装置内データ読出しアドレス記憶テーブル1081をテーブル1081という。CPU10は、割込み要因の読出し後に、I/O装置からI/O装置内データを読み出すが、テーブル1081は、CPU10によるI/O装置内データ読出し時の「読出しアドレス」と、「送信アドレス156」とを関連付けるテーブルである。アドレス記憶部108は、(a11)においてアドレス選択部105から送信アドレス156を受けると、テーブル1081の未使用(無効)のエントリ(No.、状態、送信アドレス、割込み要因内容、I/O装置内データ読出しアドレス(以下、データ読出しアドレスという)を一連の情報として管理する単位)の送信アドレス格納域1081−3に、受け取った送信アドレス156を格納(後述の図21のS193、S194)する。ただし、送信アドレス156の格納のみで、状態は登録中状態とする。
【0032】
(a13)I/O側送信部106は、(a10)によって取得した送信アドレス156を基に、I/O装置12に、割込み要因の読出し要求159(1)を発行する。
【0033】
<(B)割込み要因の受信時動作>
割込み要因の受信時動作は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、I/O側送信部106、I/O側トランザクション受信部107(以下、I/O側受信部という)、アドレス記憶部108、割込み要因内容記憶部109、トランザクション送信部110が、動作に関係する。
【0034】
図9は、割込み要因の受信時における、データ、制御の流れと上記構成要素の関係を示すUMLシーケンス図である。
【0035】
「(B)割込み要因の受信時」は、次の処理が行われる。
(b1)上記の「(A)割込み通知の受信時動作」の(a13)により、I/O装置12に発行した割込み要因の読出し要求159(1)によって、バス中継装置1は、I/O装置12から割込み要因を読み出す。バス中継装置1は割込み要因160(1)を読み出すと、その割込み要因160(1)(読出しデータ160)を、I/O側受信部107で受信する。
(b2)I/O側受信部107は、割込み要因(読出しデータ160)から割込み要因内容161を抽出し、割込み要因内容記憶部109に送出する。
【0036】
(b3−1)割込み要因内容記憶部109は、割込み要因内容161を受け取ると、上位側の接続先が、CPU10の場合、割込み要因内容記憶部109内の記憶域に格納、記憶する。
(b3−2)割込み要因内容記憶部109は、自バス中継装置の上位側の接続先が、上位バス中継装置の場合、割込み要因内容161を、トランザクション送信部110へ送出する。
(b4)トランザクション送信部110は、割込み要因内容記憶部109から割込み要因内容161を受け取ると、上位バス中継装置へ送信する(読み出しデータ160)。
(b5)I/O側受信部107は、上記(b2)と同時に、割込み要因内容161をアドレス記憶部108へ送出する。
(b6)アドレス記憶部108は、テーブル1081内に格納されている有効状態であるエントリのうち、送信アドレス域1081−3の値と、割込み要因内容域1081−4の値とに、下位接続がI/O装置の場合に(a11)にてアドレス選択部105が出力する送信アドレス156と、(b5)で受け取った割込み要因内容61が一致するエントリを検索する。アドレス記憶部108は、検索の結果、一致したエントリのI/O装置内データ読出しアドレス格納域1081−5の値を、データ読出しアドレス162として、I/O側送信部106に送出する。アドレス記憶部108は、上記エントリの検索で一致しない場合、CPU側受信部103から送信されるデータ読出しアドレス158(後述する(d3))を待つ。アドレス記憶部108は、CPU側受信部103からデータ読出しアドレス158を受信すると、データ読出しアドレス158をI/O側送信部106に送出する。
(b7)I/O側送信部106は、(b6)によるデータ読出しアドレス162を基に、I/O装置内データ読出しのための読出し要求159(2)を、I/O装置12に発行する。
【0037】
<(C)割込み要因の読出し要求の受信時動作>
CPU10または上位バス中継装置から送信される割込み要因の「(C)割込み要因の読出し要求の受信時動作」は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、CPU側受信部103、アドレス記憶部104、アドレス選択部105、I/O側送信部106、割込み要因内容記憶部109、トランザクション送信部110が動作に関係する。
【0038】
図10は、「(C)割込み要因の読出し要求の受信時動作」における、データ、制御の流れと上記構成要素の関係を示すUMLシーケンス図である。
【0039】
「(C)割込み要因の読出し要求時」は、次の処理が行われる。
(c1)上記の(a4)により、CPU10または上位バス中継装置に割込み通知151が送出される。これにより、CPU10まで割込み通知151が到達する。CPU10は、割込み要因の読出し要求159(1)を発行する。
(c2)CPU側受信部103は、CPU10または上位バス中継装置から送出された割込み要因の読出し要求159を受信する。
(c3)CPU側受信部103は、割込み要因の読出し要求159からアドレス情報155を抽出し、アドレス情報155をアドレス選択部105へ送出する。
(c4−1)アドレス選択部105は、CPU側受信部103からアドレス情報155を受け取ると、アドレス記憶部104に、受信したアドレス情報155を送出する。アドレス記憶部104は、後述する「F.3 送信アドレス・アクセス履歴・アクセス回数の登録」のようにして、テーブル1041の送信アドレス格納域1041−4に、アドレス情報155の示す送信アドレスを格納する。
(c4−2)送信アドレスの登録が発生した時、アドレス選択部105は、I/O装置12または下位バス中継装置に割込み要因の読出し要求159(1)を送信する為、アドレス選択部105から受け取った送信アドレス156(ADR(1))を、I/O側送信部106へ送出する。
【0040】
(c5)上記の(c4−2)により、I/O側送信部106は、送信アドレス156を受け取ると、I/O装置12または下位バス中継装置に、割込み要因の読出し要求159を送信する。
(c6)上記の(c3)と同時に、CPU側受信部103は、上位の接続先がCPU10である場合、割込み要因読出し指示157を割込み要因内容記憶部109へ出力する。
なおCPU側受信部103は、上位の接続先が上位バス中継装置である場合は、割込み要因読出し指示157を出力しない。
【0041】
(c7)割込み要因内容記憶部109は、割込み要因読出し指示157を受け取ると、割込み要因内容記憶部109の内部に記憶している割込み要因の内容を、トランザクション送信部110へ送出する。割込み要因内容記憶部109は、割込み要因読出し指示157を受け取った時(上位接続がCPU)、まだ、I/O側受信部107から割込み要因内容161を受け取っていない場合は、I/O側受信部107からの割込み要因内容161の受け取りを待ち(b2)、受け取ると、割込み要因内容161をトランザクション送信部110へ送出する。
(c8)トランザクション送信部110は、割込み要因内容161を受け取ると、CPU10へ読出しデータ160として割込み要因内容161を送信する。
【0042】
<(D)I/O装置内データの読出し要求の受信時動作>
CPU10または上位バス中継装置から送信される、「(D)I/O装置内データの読出し要求159の受信時動作」は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、CPU側受信部103、I/O側送信部106、アドレス記憶部108、トランザクション送信部110、I/O装置内データ記憶部111(以下、データ記憶部111という)が関係する。
図11は、I/O装置内データの読出し要求の受信時における、データ、制御の流れと、上記構成要素の関係を示すUMLシーケンス図である。
【0043】
I/O装置内データの読出し要求時は、次の処理が行われる。
(d1)上記の(c8)により、CPU10は、トランザクション送信部110から読出しデータ160(1)(割込み要因内容161)を受信すると、バス中継装置1にI/O装置内データの読出し要求159(2)を出力する。
(d2)CPU側受信部103は、CPU10「または上位バス中継装置」から、I/O装置内データの読出し要求159(2)を受信する。
(d3)CPU側受信部103は、I/O装置内データの読出し要求159(2)を受信すると、読出し要求159(2)から、データ読出しアドレス158(ADR(2))を抽出する。CPU側受信部103は、アドレス記憶部108及びデータ記憶部111に、抽出したデータ読出しアドレス158を送出する。
【0044】
(d4)アドレス記憶部108は、データ読出しアドレス158を受け取ると、テーブル1081のデータ読出しアドレス格納域1081−5に登録し、または、既に登録済みのエントリの更新を行う(後述の「G.3 データ読出しアドレスの格納及び更新」参照)。
(d5)アドレス記憶部108は、後述の「G.2 割込み要因内容の登録及びデータ読出しアドレスの出力(3)」に示すように、テーブル1081に該当するアドレスがない場合、CPU側受信部103から受信したデータ読出しアドレス158(ADR(2))を、テーブル1081に登録する。同時に、アドレス記憶部108はI/O側送信部106に、CPU側受信部103から受信したデータ読出しアドレス162(ADR(2))を送出する。I/O側送信部106は、I/O装置12または下位バス中継装置に、I/O装置内データの読出し要求159(2)を出力する。
(d6)上記の(d3)によりデータ読出しアドレス158(ADR(2))を受け取ったデータ記憶部111は、上位の接続がCPU10である時、I/O装置内データが既に自身に格納されていれば、トランザクション送信部110へ、記憶されているI/O装置内データ163を送出する。
(d7)I/O装置内データ163を受け取ったトランザクション送信部110は、CPU10または上位バス中継装置に、I/O装置内データ163を読出しデータ160(2)として送信する。
【0045】
<(E)I/O装置内データの受信時動作>
I/O装置12または下位バス中継装置からのI/O装置内データ(読出しデータ160(2))の受信時の動作は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、I/O側受信部107、トランザクション送信部110、データ記憶部111が動作に関係する。
図12は、I/O装置内データの受信時における、データ、制御の流れと上記構成要素の関係を示すUMLシーケンス図である。
【0046】
I/O装置内データの受信時は、次の処理が行われる。
(e1)上記の「B.割り込み要因受信時動作」の(b7)または「D.I/O装置内データの読出し要求受信時動作」の(d5)により送信したI/O装置内データの読出し要求159(2)に対し、I/O装置12または下位バス中継装置が送出したI/O装置内データ163(読出しデータ160(2))を、I/O側受信部107が受信する。
(e2)I/O側受信部107は、I/O装置内データ163(読出しデータ160(2))を受信すると、データ記憶部111へ送出する。
(e3)データ記憶部111は、I/O装置内データ163を受け取ると、上位の接続がCPU10である時、I/O装置内データ163を格納する。ただし、既にCPU側受信部103によりI/O装置内データの読出しアドレス158(ADR(2))を受け取り済みの場合、I/O装置内データ163を格納せず、トランザクション送信部110へI/O装置内データ163を送出する。
(e4)データ記憶部111は、I/O装置内データ163を受け取ると、自バス中継装置の上位の接続が上位バス中継装置1である時、I/O装置内データ163を格納せず、トランザクション送信部110へI/O装置内データ163を送出する。
(e5)トランザクション送信部110は、I/O装置内データ163を受け取ると、CPU10または、上位バス中継装置1に読出しデータ160としてI/O装置内データを送信する。
【0047】
<F.アドレス記憶部104の動作>
アドレス記憶部104の動作を以下にまとめる。
図13図20は、アドレス記憶部104の動作を示すフローチャートである。
図13はアドレス記憶部104の全体動作を示し、図14図20が、図13のサブルーチン処理を示す。図13の動作の主体は、アドレス記憶部104である。
図14は、テーブル1041の初期化処理のフローチャートである。
図15は、接続ポート番号の登録処理のフローチャートである。
図16は、無効エントリの検索処理のフローチャートである。
図17は、送信アドレスの登録処理のフローチャートである。
図18は、「登録中エントリ」の検索処理のフローチャートである。
図19は、「登録中エントリ」の有効化判定処理のフローチャートである。
図20は、テーブル1041のアクセス履歴、アクセス回数の更新処理のフローチャートである。
【0048】
<F.1 テーブル1041の初期化(S112)>
(1)図13のように、システムリセット解除(S111)の後、アドレス記憶部104は、システム起動直後、テーブル1041の初期化によりテーブルの状態を無効にする(S112)。
図14は、S112の内容を示す。S121〜S123において、アドレス記憶部104は、テーブル1041のエントリiの状態を無効にする。図5で説明すれば、アドレス記憶部104は、テーブル1041の各エントリ(各行)の状態を無効にする。
【0049】
<F.2 接続ポート番号の登録(S114)>
(1)S113においてアドレス記憶部104は、接続ポート番号の受信を待つ。アドレス記憶部104は、割込み通知受信部101から接続ポート番号153を受け取ると(S113のYES、図8の(a7))、テーブル1041の未使用(無効)のエントリの接続ポート番号格納域1041−3に、受け取った接続ポート番号を格納する(S114)。
(2)この時、接続ポート番号を書き込んだエントリは、未だ有効(使用中)ではなく、登録中状態である。状態を登録中とする。S114は図15が示し、図15のS131は図16が示す。S131を示す図16において、アドレス記憶部104は、テーブル1041の中の無効エントリを検索する。図16のS141〜S144に示すように、アドレス記憶部104は、テーブル1041の中で無効なエントリを見つけると処理を終了する。アドレス記憶部104は、ヒットした無効エントリの状態を「登録中」にし(S132)、S113で受け取ったポート番号を「登録中」のエントリの接続ポート番号格納域1041−3に格納する。
【0050】
<F.3 送信アドレス・アクセス履歴・アクセス回数の登録(S116)>
S115においてアドレス記憶部104はアドレス情報(ADR(1))の受信を待つ。これは図10の(c4−1)に該当する。
(1)<送信アドレスの登録>
アドレス記憶部104がアドレス選択部105から出力されるアドレス情報155を受け取ると(S115のYES)、図13の処理はS116に進む。S116の内容は、図17のS151〜S153に示す。S151は登録中のエントリの検索である。S151の内容は図18に示す。図18の内容は、図16で述べた「無効エントリ」の検索と類似であり、アドレス記憶部104がテーブル1041の中から「登録中エントリ」を見つけると、最初に見つけたエントリを「登録中エントリ」として維持する(S161〜S164)。S152においてアドレス記憶部104は、S151で見つけた「登録中エントリ」の送信アドレス格納域1041−4に、S115で受信したアドレス情報(送信アドレス)を格納する。S153においてアドレス記憶部104は登録中エントリの有効化判定を行う。S153は図19のS171〜S179に示す。S171〜S173、S174−2のループで、アドレス記憶部104は、テーブル1041から「有効」なエントリを探す。S172で「有効」なエントリが見つかると、アドレス記憶部104は、S173で「有効」なエントリと、「登録中エントリ」との接続ポート番号を比較する(S173)。一致する場合、S174−1に進み、アドレス記憶部104は、さらに、送信アドレスどうしが一致するかどうかを判断する。
【0051】
(2)<送信アドレスの同じエントリが既登録の場合>
S174−1で一致する場合、つまり、登録中状態のエントリの接続ポート番号と上記「F.3(1)」の送信アドレスとをもつエントリが既にある場合は、アドレス記憶部104は送信アドレスを格納せず、登録中状態を「無効」にする(図19のS179)。S174−1で一致する場合、処理はS178、S179、終了へと向かう。これらの処理は後述の<F.4 アクセス履歴、アクセス回数の更新>で述べる。
【0052】
(3)<送信アドレスが同じエントリが未登録時の場合>
S174−1で一致しない場合、処理はS175、S176、S177、終了へと向かう。S174−1で一致しない場合の処理は、接続ポート番号を同じくする送信アドレス違いのエントリの新規登録である。上記「F.3(1)」、「F.3(2)」で送信アドレスを格納した際、アドレス記憶部104は、登録中エントリのアクセス履歴を「0」に設定する(S175)。アクセス履歴は0以上の整数で、数値が小さいほど最新のアクセスであることを示すものとする。アクセス履歴は、そのエントリの接続ポートと送信アドレスとの組が使用された新しさを示し、数値が小さいほど新しい。
【0053】
(4)<送信アドレスが未登録時のアクセス回数>
上記「F.3(1)」、「F.3(2)」で送信アドレスを格納した際、アドレス記憶部104は、登録中エントリのアクセス回数を「0」に設定する(S177)。アクセス回数は、0以上の整数で、数値が大きいほどアクセスが多く発生していることを示す。
【0054】
<F.4 アクセス履歴、アクセス回数の更新>
(1)上記「F.3(2)」の場合、アドレス記憶部104は、既に存在するエントリのアクセス回数の更新を行う。処理はS174−1、S178,S179の順である。S178の内容は図20である。
(2)アクセス履歴の更新は、有効状態エントリの接続ポート番号のうち、登録中状態のエントリの接続ポート番号と一致する有効状態のエントリ全てに対して行う。この内容は図20の説明で後述する。
(3)図20に示すように、アドレス記憶部104は、アクセス履歴の更新対象となるエントリjに対して、上記「F.3(2)」のS178、送信アドレス一致するエントリのアクセス履歴の値tmpより小さい値のエントリのアクセス履歴を「+1」し、送信アドレス一致するエントリのアクセス履歴は「0」に更新する。こうすることで、アクセス履歴の大小関係を保つことが可能である。
(4)図20に示すように、既に存在するエントリのアクセス回数の更新は、現在のアクセス回数値に+1した値に更新する。
【0055】
図20を説明する。
(1)S181において、アドレス記憶部104は、エントリiのアクセス履歴値を変数tmpに格納する。アクセス履歴値は、テーブル1041のアクセス履歴格納域1041−5におけるエントリiの値である。エントリiは、図19において、「登録中エントリ」と接続ポート番号、送信アドレスの同じ特定のエントリである。
(2)S182においてアドレス記憶部104は、テーブル1041から一つのエントリ(j=1)を選択する。
(3)S183においてアドレス記憶部104は、エントリjが有効かどうかを判定する。有効でないときは次のエントリを選択する。有効のときはS184に進む。
(4)S184においてアドレス記憶部104は、選択したエントリjとエントリiの接続ポート番号が同じかを判定する。異なる場合は次のエントリを選択し、S183からの処理を繰り返す。接続ポート番号が同じ場合(S184のYES)、処理はS185に進む。
(5)S185においてアドレス記憶部104は、エントリjのアクセス履歴値がtmpよりも小さいか判定する。tmpよりも小さくない場合、処理はS182に戻る。tmpよりも小さい場合は、処理はS186に進む。
(6)S186においてアドレス記憶部104は、エントリjのアクセス履歴値を1増やす。この後、アドレス記憶部104は別のエントリjを選択し、S182に戻る。
(7)S188においてアドレス記憶部104は、エントリiのアクセス履歴値を「0」にする。
(8)S189においてアドレス記憶部104は、エントリiのアクセス回数を1増やす。
【0056】
<G. アドレス記憶部108の動作>
アドレス記憶部108の動作を以下にまとめる。
図21は、アドレス記憶部108の全体動作のフローチャートである。図21の動作の主体はアドレス記憶部108である。図22図26図21のサブルーチン処理を示す。
図22は、テーブル1081の初期化処理のフローチャートである。
図23は、テーブル1081への送信アドレスの登録処理のフローチャートである。
図24は、テーブル1081の割込み要因の内容の登録、データ読出しアドレスの出力のフローチャートである。
図25は、有効エントリ登録済の検索処理のフローチャートである。
図26は、データ読出しアドレスの格納処理及び更新処理のフローチャートである。
【0057】
図21のように、システムリセット解除(S191)の後、アドレス記憶部108は、システム起動直後、テーブル1081の初期化によりテーブルの状態を無効にする(S192)。S192の内容は図22に示す。図22図14と同様であるので説明を省略する。
【0058】
<G.1 送信アドレスの登録:S194>
(1)S193においてアドレス記憶部108は、送信アドレスの受信を待つ。アドレス記憶部108は、アドレス選択部105から送信アドレス156を受け取ると(図8の(a11))、テーブル1081の未使用(無効)のエントリの送信アドレス格納域に受け取った送信アドレスを格納する。
(2)この時、送信アドレスを書き込んだエントリは、未だ有効(使用中)ではなく、登録中状態である。状態を登録中とする。送信アドレス登録(S194)は、図23である。図23のS211は図16であり、既に説明したので説明は省略する。また図23図15と類似であるので説明は省略する。
【0059】
<G.2 割込み要因内容の登録及びデータ読出しアドレスの出力>
(1)S19においてアドレス記憶部108は、割込み要因内容の受信を待つ。アドレス記憶部108は、I/O側受信部107から、割込み要因内容161を受け取ると(S195のYES、図9の(b5))、S196に進む。S196は、図24の内容である。図24のS221は図18の内容であり、S223は図25の内容である。図18は既に説明したのでS221の説明は省略する。S222において、アドレス記憶部108は、テーブル1081の「登録中」のエントリの割込み要因内容格納域1081−4に、受け取った割込み要因内容161を格納する。処理はS223に進む。
【0060】
(2)以下に図25を参照して説明する。アドレス記憶部108は、エントリ検索ヒットフラグを無効にし(S231)、テーブル1081からエントリを一つ選択する(S232)。アドレス記憶部108は、選択したエントリiが有効であれS234の処理に進み、有効でなければ次のエントリを選択する(S233)。I/O側受信部107から、割込み要因内容161を受け取った時(図9の(b5))、アドレス記憶部108は、テーブル1081の登録中のエントリの送信アドレス及び受け取った割込み要因内容161の組合せが、既に有効状態のエントリにあるかどうかを確認する(S234、S235)。この組合せがある場合(S234のYES、S235のYES)、アドレス記憶部108は、エントリ検索ヒットフラグを有効にする(S236)。アドレス記憶部108は、エントリiの「i」を「検索ヒットエントリ」に格納する(S237)。アドレス記憶部108は、その有効状態のエントリiのデータ読出しアドレス格納域の値を、データ読出しアドレス162としてI/O側送信部106へ出力する(S238)アドレス記憶部108は、エントリ検索ヒットフラグが無効でない場合(S240のNO)、処理を終了する。
【0061】
(3)図9の(b5)でI/O側受信部107から、割込み要因内容161を受け取った時、テーブル1081の登録中のエントリの送信アドレス(S193のYES)及び受け取った割込み要因内容161(S195のYES)の組合せが、有効状態のエントリにない場合(S235のNO、S240のYES))S241に進む。S241では、アドレス記憶部108は、CPU側受信部103が出力するデータ読出しアドレス158の受取りを待つ。S241においてアドレス記憶部108は、データ読出しアドレス158を受け取ると(図11の(d3))、データ読出しアドレス162としてI/O側送信部106へ出力する(S242、図11の(d5))。
【0062】
<G.3 データ読出しアドレスの格納及び更新>
図21に示すように、S196はS197に進む。S197は図26の内容である。
(1)アドレス記憶部108は、エントリ検索ヒットフラグが有効の場合(S251のYES)、データ読出しアドレスの受信を待つ(S252)。アドレス記憶部108は、CPU側受信部103が出力するデータ読出しアドレス158を受け取ると(S252のYES、図11の(d3))、テーブル1081の登録中のエントリのデータ読出しアドレス格納域1081−5へ、データ読出しアドレス158を格納し(S253)、登録中のエントリの状態を有効にする(S254)。
(2)ただし、上記「G.2 割込み要因内容の登録及びデータ読出しアドレスの出力(2)」の場合(S251でYES、既にエントリに登録済みの場合)、アドレス記憶部108は、送信アドレス及び割込み要因が一致する有効なエントリiを無効化する。これによって、テーブル1081が、最新のデータ読出しアドレス158に更新される。
【0063】
以上の実施の形態1によれば、以下の効果が得られる。
(1)予め「割込み要因」の格納場所を示すアドレス設定が不要で、従来の「割込み要因」読み出しにかかる時間を短縮する方法以前に使用したS/W処理の変更を不要としながら「割込み要因」読み出しにかかる時間を削減する効果がある。
(2)また、割込み要因読出し後の処理で発生するI/O装置内のデータ読出しに関しても、時間削減の効果がある。
(3)また、バス中継装置を多段接続した場合のバス多段構成時にも、上記の時間削減の効果がある。
【0064】
以上の実施の形態では、以下の(1)〜(4)のシステム構成で使用されるバス中継装置を説明した。
(1)周期的にS/W処理を繰り返し実行する。
(2)CPUが一定の周期内でS/W処理を完了し、次の周期で再びS/W処理を行う。
(3)複数のI/O装置を接続し、CPUと複数のI/O装置はバス中継装置を介して接続される。
(4)I/O装置とバス中継装置の接続は1対1(ポイント・ツー・ポイント)で行う。
【0065】
また、以上の実施の形態で説明したバス中継装置は、以下の構成要素を有する。割込み通知受信部101、割込み通知送信部102、CPU側受信部103、アドレス記憶部104、アドレス選択部105、I/O側送信部106、I/O側受信部107、アドレス記憶部108、割込み要因内容記憶部109、トランザクション送信部110、データ記憶部111。
【0066】
また、以上の実施の形態で説明したバス中継装置は、以下の構成を有する。
(1)I/O装置から割込み通知を受信しCPUへ転送する。
(2)CPUからの割込み要因の読出し要求を待たずに、I/O装置に割込み要因読出しを自律的に発行する。
(3)I/O装置への割込み要因読出し時のアドレス設定をS/Wで行う必要がなく、動作中のアドレスを記憶し、そのアドレスを使用する。
(4)アドレスは複数記憶することが可能で、I/O装置に割込み要因読出し時の状態に合ったアドレスを選択可能とする。
(5)自律的に発行したI/O装置への割込み要因読出しによる割込み要因を記憶する。
(6)CPUからの割込み要因の読出し要求を受信した時に、自バス中継装置内に記憶した割込み要因をCPUへ送出する。
(7)CPUからの割込み要因の読出し要求よりアドレスを抽出し、次回の自律的割込み要因読出しのアドレス候補として記憶し、統計情報も生成し記憶する。
【0067】
また、以上の実施の形態で説明したバス中継装置は、以下の特徴を有する。つまり、上記で述べたバス中継装置は、I/O装置から受信した割込み要因によって、CPUが割込み要因読出し後に読み出しを行うI/O装置内データを、CPUからのI/O装置内データ読出しを待たずに、自律的にI/O装置から読出すことを可能とする。
【0068】
また、以上の実施の形態で説明したバス中継装置は、以下の特徴を有する。つまり、上記で述べたバス中継装置は、I/O装置の代わりにバス中継装置を接続可能とし、バス中継装置の多段接続を可能とする。
【符号の説明】
【0069】
1 バス中継装置、2,3 システム、10 CPU、11 バス、12 I/O装置、101 割込み通知受信部、102 割込み通知送信部、103 CPU側受信部、104 アドレス記憶部、1041 テーブル、105 アドレス選択部、106 I/O側送信部、107 I/O側受信部、108 アドレス記憶部、1081 テーブル、109 割込み要因内容記憶部、110 トランザクション送信部、111 データ記憶部、151 割込み通知、152 割込み通知受信フラグ、153 接続ポート番号、154 アドレス参照指示、155 アドレス情報、156 送信アドレス、157 割込み要因読出し指示、158 データ読出しアドレス、159 読出し要求(割込み要因の読出し要求,I/O装置内データの読出し要求)、160 読出しデータ、161 割込み要因内容、162 データ読出しアドレス、163 I/O装置内データ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26