JP6053921B2 - バス中継装置 - Google Patents
バス中継装置 Download PDFInfo
- Publication number
- JP6053921B2 JP6053921B2 JP2015516844A JP2015516844A JP6053921B2 JP 6053921 B2 JP6053921 B2 JP 6053921B2 JP 2015516844 A JP2015516844 A JP 2015516844A JP 2015516844 A JP2015516844 A JP 2015516844A JP 6053921 B2 JP6053921 B2 JP 6053921B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- interrupt factor
- interrupt
- storage unit
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
- G06F13/34—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Small-Scale Networks (AREA)
Description
この発明は、I/O装置の割込みに関して、I/O装置とCPUとのバスを経由する通信を中継するバス中継装置に関する。
周期的に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処理は「割込み要因」読み出し待ち状態となる。
(1)I/O装置が割込みをバス中継装置を経由しCPUへ通知する。
(2)CPUは「割込み要因」の読み出し要求を発行する。CPUの発行した「割込み要因」の読み出し要求が、バス中継装置を経由しI/O装置に到達する。
この場合、I/O装置から「割込み要因」を読み出す時、CPUの「割込み要因」の読み出し要求発行から「割込み要因」を受領するまで、CPU処理は「割込み要因」読み出し待ち状態となる。
下記の特許文献1(特開平5−257863)では、CPUが割込み要因を読出す代わりにバス中継装置相当部分が読出し、CPUが割込み要因を取得するまでの時間を短縮することが記載されている。特許文献1においては、I/O装置から割込み通知を受け取ると、処理ユニット内のバス中継装置相当部分(ISRリードシーケンス部41)が割込み要因を読み出している。
これにより、CPUが割込み要因を読出す代わりにバス中継装置相当部分が読出し、CPUが割込み要因を取得するまでの時間を短縮している。
これにより、CPUが割込み要因を読出す代わりにバス中継装置相当部分が読出し、CPUが割込み要因を取得するまでの時間を短縮している。
しかし、割込み要因をCPUが読み出す前に、バス中継装置相当部分(ISRリードシーケンス部41)が読出しアドレスを知っている必要があり、予めバス中継装置相当部分にそのアドレスを設定する必要がある。割込み要因の読出しアドレスが固定であれば、そのアドレス以外のシステムでは対応ができない。割込み要因のアドレスがシステムによって異なる場合は、予めバス中継装置相当部分(ISRリードシーケンス部41)にそれぞれに対応したアドレス設定が必要であり、該特許の構成では初期化時のS/Wによる設定が必要である。さらに、割込み要因の内容を読んだCPUが、その内容によってI/O装置内のデータの読出しが必要な場合、I/O装置内のデータ読出しの待ち時間の削減は行えない。また、特許文献1では、I/O装置とバス中継装置相当部分は装置内バスで接続され、バスの多段構成には対応できない。
従来の「割込み要因」読み出しにかかる時間を短縮する方法には、以下の課題がある。
(1)予め「割込み要因」の格納場所を示すアドレス設定が必要で、初期化時のS/Wによる設定が必要である。
(2)さらに、CPUが行う割込み要因による処理に関連して、I/O装置内のデータを読出す場合の、I/O装置内のデータ読出し時間の削減はできない。
(3)また、バス中継装置を多段接続したバス多段構成は対応できない。
(1)予め「割込み要因」の格納場所を示すアドレス設定が必要で、初期化時のS/Wによる設定が必要である。
(2)さらに、CPUが行う割込み要因による処理に関連して、I/O装置内のデータを読出す場合の、I/O装置内のデータ読出し時間の削減はできない。
(3)また、バス中継装置を多段接続したバス多段構成は対応できない。
本発明は、上記の課題を解決するためになされるもので、
(1)予め「割込み要因」の格納場所を示すアドレス設定が不要で、従来の「割込み要因」読み出しにかかる時間を短縮する方法以前に使用したS/W処理に変更が必要なく、
(2)割込み要因読出し後の処理で発生するI/O装置内のデータ読出しに関しても、時間削減を行い、
(3)より多くのI/O装置を接続する為にバス中継装置を多段接続した場合のバス多段構成時にも、上記に対応することが可能で、
これらにより割込み要因に関係する処理を短縮し、周期的なS/W処理にかけられる時間を増やすことを目的とする。
(1)予め「割込み要因」の格納場所を示すアドレス設定が不要で、従来の「割込み要因」読み出しにかかる時間を短縮する方法以前に使用したS/W処理に変更が必要なく、
(2)割込み要因読出し後の処理で発生するI/O装置内のデータ読出しに関しても、時間削減を行い、
(3)より多くのI/O装置を接続する為にバス中継装置を多段接続した場合のバス多段構成時にも、上記に対応することが可能で、
これらにより割込み要因に関係する処理を短縮し、周期的なS/W処理にかけられる時間を増やすことを目的とする。
この発明のバス中継装置は、
CPU(Central Processing Unit))とI/O(Input/Output)装置との間で通信される割込みの情報を中継し、前記CPUと他の中継装置とのいずれかの装置が上位側に接続し、I/O装置と上位側とは別の他の中継装置とのうち、少なくとも前記I/O装置が下位側に接続するバス中継装置において、
I/O装置が送信元である割込み通知を下位側のポートから受信し、前記ポートのポート番号を出力する割込み通知受信部と、
ポート番号と、割込み要因の読出しに使用するアドレスである割込み要因アドレスとの複数の組を含む割込み要因アドレス情報を格納する割込み要因アドレス記憶部と、
前記割込み通知受信部が出力した前記ポート番号を入力し、入力した前記ポート番号に基づいて前記割込み要因アドレス記憶部の前記割込み要因アドレス情報から割込み要因アドレスを取得すると共に、入力した前記ポート番号のポートに接続する装置がI/O装置かどうかを予め保有する接続情報に基づいて判断し、前記ポートに接続する装置が前記I/O装置であると判断すると、前記割込み要因アドレス記憶部から取得した割込み要因アドレスを出力するアドレス選択部と、
前記アドレス選択部が出力した割込み要因アドレスを含む割込み要因の要因読出し要求を、前記ポートに接続する前記I/O装置に向けて送信する下位側送信部と
を備えたことを特徴とする。
CPU(Central Processing Unit))とI/O(Input/Output)装置との間で通信される割込みの情報を中継し、前記CPUと他の中継装置とのいずれかの装置が上位側に接続し、I/O装置と上位側とは別の他の中継装置とのうち、少なくとも前記I/O装置が下位側に接続するバス中継装置において、
I/O装置が送信元である割込み通知を下位側のポートから受信し、前記ポートのポート番号を出力する割込み通知受信部と、
ポート番号と、割込み要因の読出しに使用するアドレスである割込み要因アドレスとの複数の組を含む割込み要因アドレス情報を格納する割込み要因アドレス記憶部と、
前記割込み通知受信部が出力した前記ポート番号を入力し、入力した前記ポート番号に基づいて前記割込み要因アドレス記憶部の前記割込み要因アドレス情報から割込み要因アドレスを取得すると共に、入力した前記ポート番号のポートに接続する装置がI/O装置かどうかを予め保有する接続情報に基づいて判断し、前記ポートに接続する装置が前記I/O装置であると判断すると、前記割込み要因アドレス記憶部から取得した割込み要因アドレスを出力するアドレス選択部と、
前記アドレス選択部が出力した割込み要因アドレスを含む割込み要因の要因読出し要求を、前記ポートに接続する前記I/O装置に向けて送信する下位側送信部と
を備えたことを特徴とする。
この発明によって、予め割込み要因の格納場所を示すアドレス設定を必要としない割込み手段を提供することができる。
実施の形態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装置が下位側に接続する。
図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装置が下位側に接続する。
図3は、バス中継装置1の構成図である。バス中継装置1は、割込み通知受信部101、割込み通知送信部102、CPU側トランザクション受信部103(上位側受信部)、割込み要因アドレス記憶部104、アドレス選択部105、リード・トランザクション発行部106(下位側送信部)、I/O側トランザクション受信部107(下位側受信部)、I/O装置内データ読出しアドレス記憶部108、割込み要因内容記憶部109(割込み要因記憶部)、トランザクション送信部110(上位側送信部)、I/O装置内データ記憶部111(内部データ記憶部)を備える。
また、バス中継装置1では、図3に示すように、割込み通知151、割込み通知受信フラグ152、接続ポート番号153、アドレス参照指示154、アドレス情報155、送信アドレス156、割込み要因読出し指示157、I/O装置内データ読出しアドレス158(データ読出しアドレス)、読出し要求159、読出しデータ160、割込み要因内容161、I/O装置内データ読出しアドレス162、I/O装置内データ163(内部データ)等がやり取りされる。
図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)を送信する。
(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)を送信する。
以下の実施の形態には、アドレス情報、送信アドレス、I/O装置内データ読出しアドレス等が登場する。これらのアドレスは、上記のADR(1)とADR(2)とのいずれかである。割込み要因の読出し要求159(1)に含まれるアドレスがADR(1)であり、I/O装置のデータ読出しを要求する読出し要求159(2)に含まれるアドレスがADR(2)である。以下の実施の形態では送信アドレス(ADR(1))、I/O装置内データ読出しアドレス(ADR(2))等のように記載する場合がある。
図5は、割込み要因アドレス記憶部104が有するアドレス情報記憶テーブル1041(割込み要因アドレス情報)を示す。図5に示すように、アドレス情報記憶テーブル1041は、エントリ(行からなるレコード)を識別するエントリナンバ格納域1041−1、そのエントリが有効か無効かを示す状態格納域1041−2、接続ポート番号が格納される接続ポート番号格納域1041−3、送信アドレスが格納される送信アドレス格納域1041−4、アクセス履歴が格納されるアクセス履歴格納域1041−5、アクセス回数が格納されるアクセス回数格納域1041−6を有する。アクセス履歴やアクセス回数はポート番号の接続ポートが使用された使用状況を示す。
図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を有する。
(動作説明)
本実施の形態のシステム動作は、以下の動作を含む。
(A)割込み通知の受信時動作、
(B)割込み要因の受信時動作、
(C)割込み要因の読出し要求の受信時動作(CPU/上位ブリッジから送信される)、
(D)I/O装置内データの読出し要求の受信時動作(CPU/上位ブリッジから送信される)、
(E)I/O装置内データの受信時動作。
本実施の形態のシステム動作は、以下の動作を含む。
(A)割込み通知の受信時動作、
(B)割込み要因の受信時動作、
(C)割込み要因の読出し要求の受信時動作(CPU/上位ブリッジから送信される)、
(D)I/O装置内データの読出し要求の受信時動作(CPU/上位ブリッジから送信される)、
(E)I/O装置内データの受信時動作。
本実施の形態のシステムの動作は、以下「(A)割込み通知の受信時動作(a2)」で示す、割込み通知受信フラグ152が有効となったことで開始し、「(E)I/O装置内データの受信時動作(e5)」のI/O装置内データの送信により終了する。
以下に説明するように、アドレス選択部105(後述のa10)、割込み要因内容記憶部109(後述のb3−2)、I/O装置内データ記憶部111(後述のd6、e4)等は、上位や下位に接続する装置を判定できる。これは、アドレス選択部105等が、上位側、下位側に接続する装置の接続情報を予め保有しているからである。
図7は、図1の1段接続の動作概要を示す図である。図7のA〜Eは上記の(A)〜(E)に対応する。詳細は後述するが、実施の形態1では、中継装置が割込み通知151を受信すると、アドレス情報記憶テーブル1041に基づき、CPUの応答を待たずに割込み要因の読出し要求159(1)を送信する。また、中継装置が割込み要因160(1)を受信すると、I/O装置内データ読出しアドレス記憶テーブル1081に基づき、CPUの応答を待たずにI/O装置内データ読出し要求159(2)を送信する。
以下に、詳細を説明する。
以下に、詳細を説明する。
<動作詳細>
以下に、上記の各動作について説明する。
以下に、上記の各動作について説明する。
<(A)割込み通知の受信時動作>
「(A)割込み通知の受信時動作」は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、割込み通知受信部101、割込み通知送信部102、CPU側トランザクション受信部103(以下、CPU側受信部という)、割込み要因アドレス記憶部104(以下、アドレス記憶部104という)、アドレス選択部105、リード・トランザクション発行部106(以下、I/O側送信部という)、I/O装置内データ読出しアドレス記憶部108(以下、アドレス記憶部108という)が動作に関係する。
「(A)割込み通知の受信時動作」は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、割込み通知受信部101、割込み通知送信部102、CPU側トランザクション受信部103(以下、CPU側受信部という)、割込み要因アドレス記憶部104(以下、アドレス記憶部104という)、アドレス選択部105、リード・トランザクション発行部106(以下、I/O側送信部という)、I/O装置内データ読出しアドレス記憶部108(以下、アドレス記憶部108という)が動作に関係する。
図8は、「(A)割込み通知の受信時動作」における、データ、制御の流れと、上記の構成要素との関係を示すUMLシーケンス図である。図中、時間は上から下向きに流れ、横向きの矢印がデータ、制御の流れを示す。各構成要素に接続されている破線上にある矩形部分は、破線が接続されている構成要素で処理が行われることをあらわす。
割込み通知の受信時は、以下の処理が行われる。
(a1)I/O装置12または「下位バス中継装置」(後述の(a4)の場合)によって発行された割込み通知151を、バス中継装置1内の割込み通知受信部101が、受信する。
(a2)割込み通知受信部101は、割込み通知151を受信したことを表す割込み通知受信フラグ152を、CPU側受信部103と、アドレス選択部105に送出する。
(a3)割込み通知受信部101は、I/O装置12または下位バス中継装置から発行された割込み通知151を受け取ると、フラグ送出の上記(a2)と同時に、割込み通知送信部102へ割込み通知151を送出する。
(a1)I/O装置12または「下位バス中継装置」(後述の(a4)の場合)によって発行された割込み通知151を、バス中継装置1内の割込み通知受信部101が、受信する。
(a2)割込み通知受信部101は、割込み通知151を受信したことを表す割込み通知受信フラグ152を、CPU側受信部103と、アドレス選択部105に送出する。
(a3)割込み通知受信部101は、I/O装置12または下位バス中継装置から発行された割込み通知151を受け取ると、フラグ送出の上記(a2)と同時に、割込み通知送信部102へ割込み通知151を送出する。
(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を転送した下位バス中継装置を識別するためである。
(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を転送した下位バス中継装置を識別するためである。
(a7)アドレス記憶部104は、図5のアドレス情報記憶テーブル1041を持つ。アドレス情報記憶テーブル1041は、以下、テーブル1041という。アドレス記憶部104は、割込み通知受信部101から接続ポート番号153を受け取ると、テーブル1041の未使用(無効)のエントリ(No.、状態、接続ポート番号、送信アドレス、アクセス履歴、アクセス回数を一連の情報として管理する単位(行))の接続ポート番号格納域1041−3に、受け取った接続ポート番号153を格納する(後述の図13のS113、S114)。)
(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は、アクセス回数が最も多いエントリの送信アドレスを選択してもよい。
(a9)アドレス選択部105は、(a8)におけるアドレス情報155の取得に際し、テーブル1041における有効(使用中)のエントリの接続ポート番号格納域1041−3に格納された番号と、割込み通知受信部101から受け取った接続ポート番号153とが一致する番号のエントリを対象に、対象とするエントリの「送信アドレス」を取得する。つまり、アドレス選択部105は、割込み通知受信部101から受け取った接続ポート番号153を有し、かつ、「有効」(同じポート番号の送信アドレスの格納されたエントリ)なエントリの「送信アドレス」をアドレス情報155として取得する。その際、アドレス選択部105は、アクセス履歴に従って、最も新しくアクセスがあったエントリ(アクセス履歴の数字の小さいエントリ)の送信アドレスを選択してもよい。また、アドレス選択部105は、アクセス回数が最も多いエントリの送信アドレスを選択してもよい。
例えば図5の場合、割込み通知受信部101から受け取った接続ポート番号153が、「0」とした時、アドレス選択部105は、アクセス履歴に基づいて送信アドレスを選択する場合は、No.3の送信アドレス「1020」を、アドレス情報として選択する。アドレス選択部105は、アクセス回数に基づいて送信アドレスを選択する場合は、No.1の送信アドレス「1000」を、アドレス情報として選択する。
(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に出力する。
(a11)アドレス選択部105は、上記(a10)で送信アドレス156を、I/O側送信部106へ出力した場合(下位の接続がI/O装置の場合)、それと同時に送信アドレス156をアドレス記憶部108に出力する。
(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の格納のみで、状態は登録中状態とする。
(a13)I/O側送信部106は、(a10)によって取得した送信アドレス156を基に、I/O装置12に、割込み要因の読出し要求159(1)を発行する。
<(B)割込み要因の受信時動作>
割込み要因の受信時動作は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、I/O側送信部106、I/O側トランザクション受信部107(以下、I/O側受信部という)、アドレス記憶部108、割込み要因内容記憶部109、トランザクション送信部110が、動作に関係する。
割込み要因の受信時動作は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、I/O側送信部106、I/O側トランザクション受信部107(以下、I/O側受信部という)、アドレス記憶部108、割込み要因内容記憶部109、トランザクション送信部110が、動作に関係する。
図9は、割込み要因の受信時における、データ、制御の流れと上記構成要素の関係を示すUMLシーケンス図である。
「(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に送出する。
(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に送出する。
(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に発行する。
(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に発行する。
<(C)割込み要因の読出し要求の受信時動作>
CPU10または上位バス中継装置から送信される割込み要因の「(C)割込み要因の読出し要求の受信時動作」は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、CPU側受信部103、アドレス記憶部104、アドレス選択部105、I/O側送信部106、割込み要因内容記憶部109、トランザクション送信部110が動作に関係する。
CPU10または上位バス中継装置から送信される割込み要因の「(C)割込み要因の読出し要求の受信時動作」は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、CPU側受信部103、アドレス記憶部104、アドレス選択部105、I/O側送信部106、割込み要因内容記憶部109、トランザクション送信部110が動作に関係する。
図10は、「(C)割込み要因の読出し要求の受信時動作」における、データ、制御の流れと上記構成要素の関係を示すUMLシーケンス図である。
「(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へ送出する。
(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へ送出する。
(c5)上記の(c4−2)により、I/O側送信部106は、送信アドレス156を受け取ると、I/O装置12または下位バス中継装置に、割込み要因の読出し要求159を送信する。
(c6)上記の(c3)と同時に、CPU側受信部103は、上位の接続先がCPU10である場合、割込み要因読出し指示157を割込み要因内容記憶部109へ出力する。
なおCPU側受信部103は、上位の接続先が上位バス中継装置である場合は、割込み要因読出し指示157を出力しない。
(c6)上記の(c3)と同時に、CPU側受信部103は、上位の接続先がCPU10である場合、割込み要因読出し指示157を割込み要因内容記憶部109へ出力する。
なおCPU側受信部103は、上位の接続先が上位バス中継装置である場合は、割込み要因読出し指示157を出力しない。
(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を送信する。
(c8)トランザクション送信部110は、割込み要因内容161を受け取ると、CPU10へ読出しデータ160として割込み要因内容161を送信する。
<(D)I/O装置内データの読出し要求の受信時動作>
CPU10または上位バス中継装置から送信される、「(D)I/O装置内データの読出し要求159の受信時動作」は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、CPU側受信部103、I/O側送信部106、アドレス記憶部108、トランザクション送信部110、I/O装置内データ記憶部111(以下、データ記憶部111という)が関係する。
図11は、I/O装置内データの読出し要求の受信時における、データ、制御の流れと、上記構成要素の関係を示すUMLシーケンス図である。
CPU10または上位バス中継装置から送信される、「(D)I/O装置内データの読出し要求159の受信時動作」は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、CPU側受信部103、I/O側送信部106、アドレス記憶部108、トランザクション送信部110、I/O装置内データ記憶部111(以下、データ記憶部111という)が関係する。
図11は、I/O装置内データの読出し要求の受信時における、データ、制御の流れと、上記構成要素の関係を示すUMLシーケンス図である。
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を送出する。
(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を送出する。
(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)として送信する。
(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)として送信する。
<(E)I/O装置内データの受信時動作>
I/O装置12または下位バス中継装置からのI/O装置内データ(読出しデータ160(2))の受信時の動作は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、I/O側受信部107、トランザクション送信部110、データ記憶部111が動作に関係する。
図12は、I/O装置内データの受信時における、データ、制御の流れと上記構成要素の関係を示すUMLシーケンス図である。
I/O装置12または下位バス中継装置からのI/O装置内データ(読出しデータ160(2))の受信時の動作は、バス中継装置1内の以下の構成要素が動作に関係する。つまり、I/O側受信部107、トランザクション送信部110、データ記憶部111が動作に関係する。
図12は、I/O装置内データの受信時における、データ、制御の流れと上記構成要素の関係を示すUMLシーケンス図である。
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装置内データを送信する。
(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装置内データを送信する。
<F.アドレス記憶部104の動作>
アドレス記憶部104の動作を以下にまとめる。
図13〜図20は、アドレス記憶部104の動作を示すフローチャートである。
図13はアドレス記憶部104の全体動作を示し、図14〜図20が、図13のサブルーチン処理を示す。図13の動作の主体は、アドレス記憶部104である。
図14は、テーブル1041の初期化処理のフローチャートである。
図15は、接続ポート番号の登録処理のフローチャートである。
図16は、無効エントリの検索処理のフローチャートである。
図17は、送信アドレスの登録処理のフローチャートである。
図18は、「登録中エントリ」の検索処理のフローチャートである。
図19は、「登録中エントリ」の有効化判定処理のフローチャートである。
図20は、テーブル1041のアクセス履歴、アクセス回数の更新処理のフローチャートである。
アドレス記憶部104の動作を以下にまとめる。
図13〜図20は、アドレス記憶部104の動作を示すフローチャートである。
図13はアドレス記憶部104の全体動作を示し、図14〜図20が、図13のサブルーチン処理を示す。図13の動作の主体は、アドレス記憶部104である。
図14は、テーブル1041の初期化処理のフローチャートである。
図15は、接続ポート番号の登録処理のフローチャートである。
図16は、無効エントリの検索処理のフローチャートである。
図17は、送信アドレスの登録処理のフローチャートである。
図18は、「登録中エントリ」の検索処理のフローチャートである。
図19は、「登録中エントリ」の有効化判定処理のフローチャートである。
図20は、テーブル1041のアクセス履歴、アクセス回数の更新処理のフローチャートである。
<F.1 テーブル1041の初期化(S112)>
(1)図13のように、システムリセット解除(S111)の後、アドレス記憶部104は、システム起動直後、テーブル1041の初期化によりテーブルの状態を無効にする(S112)。
図14は、S112の内容を示す。S121〜S123において、アドレス記憶部104は、テーブル1041のエントリiの状態を無効にする。図5で説明すれば、アドレス記憶部104は、テーブル1041の各エントリ(各行)の状態を無効にする。
(1)図13のように、システムリセット解除(S111)の後、アドレス記憶部104は、システム起動直後、テーブル1041の初期化によりテーブルの状態を無効にする(S112)。
図14は、S112の内容を示す。S121〜S123において、アドレス記憶部104は、テーブル1041のエントリiの状態を無効にする。図5で説明すれば、アドレス記憶部104は、テーブル1041の各エントリ(各行)の状態を無効にする。
<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に格納する。
(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に格納する。
<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は、さらに、送信アドレスどうしが一致するかどうかを判断する。
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は、さらに、送信アドレスどうしが一致するかどうかを判断する。
(2)<送信アドレスの同じエントリが既登録の場合>
S174−1で一致する場合、つまり、登録中状態のエントリの接続ポート番号と上記「F.3(1)」の送信アドレスとをもつエントリが既にある場合は、アドレス記憶部104は送信アドレスを格納せず、登録中状態を「無効」にする(図19のS179)。S174−1で一致する場合、処理はS178、S179、終了へと向かう。これらの処理は後述の<F.4 アクセス履歴、アクセス回数の更新>で述べる。
S174−1で一致する場合、つまり、登録中状態のエントリの接続ポート番号と上記「F.3(1)」の送信アドレスとをもつエントリが既にある場合は、アドレス記憶部104は送信アドレスを格納せず、登録中状態を「無効」にする(図19のS179)。S174−1で一致する場合、処理はS178、S179、終了へと向かう。これらの処理は後述の<F.4 アクセス履歴、アクセス回数の更新>で述べる。
(3)<送信アドレスが同じエントリが未登録時の場合>
S174−1で一致しない場合、処理はS175、S176、S177、終了へと向かう。S174−1で一致しない場合の処理は、接続ポート番号を同じくする送信アドレス違いのエントリの新規登録である。上記「F.3(1)」、「F.3(2)」で送信アドレスを格納した際、アドレス記憶部104は、登録中エントリのアクセス履歴を「0」に設定する(S175)。アクセス履歴は0以上の整数で、数値が小さいほど最新のアクセスであることを示すものとする。アクセス履歴は、そのエントリの接続ポートと送信アドレスとの組が使用された新しさを示し、数値が小さいほど新しい。
S174−1で一致しない場合、処理はS175、S176、S177、終了へと向かう。S174−1で一致しない場合の処理は、接続ポート番号を同じくする送信アドレス違いのエントリの新規登録である。上記「F.3(1)」、「F.3(2)」で送信アドレスを格納した際、アドレス記憶部104は、登録中エントリのアクセス履歴を「0」に設定する(S175)。アクセス履歴は0以上の整数で、数値が小さいほど最新のアクセスであることを示すものとする。アクセス履歴は、そのエントリの接続ポートと送信アドレスとの組が使用された新しさを示し、数値が小さいほど新しい。
(4)<送信アドレスが未登録時のアクセス回数>
上記「F.3(1)」、「F.3(2)」で送信アドレスを格納した際、アドレス記憶部104は、登録中エントリのアクセス回数を「0」に設定する(S177)。アクセス回数は、0以上の整数で、数値が大きいほどアクセスが多く発生していることを示す。
上記「F.3(1)」、「F.3(2)」で送信アドレスを格納した際、アドレス記憶部104は、登録中エントリのアクセス回数を「0」に設定する(S177)。アクセス回数は、0以上の整数で、数値が大きいほどアクセスが多く発生していることを示す。
<F.4 アクセス履歴、アクセス回数の更新>
(1)上記「F.3(2)」の場合、アドレス記憶部104は、既に存在するエントリのアクセス回数の更新を行う。処理はS174−1、S178,S179の順である。S178の内容は図20である。
(2)アクセス履歴の更新は、有効状態のエントリの接続ポート番号のうち、登録中状態のエントリの接続ポート番号と一致する有効状態のエントリ全てに対して行う。この内容は図20の説明で後述する。
(3)図20に示すように、アドレス記憶部104は、アクセス履歴の更新対象となるエントリjに対して、上記「F.3(2)」のS178では、送信アドレスが一致するエントリiのアクセス履歴の値tmpより小さい値のエントリjのアクセス履歴を「+1」し、送信アドレスが一致するエントリiのアクセス履歴は「0」に更新する。こうすることで、アクセス履歴の大小関係を保つことが可能である。
(4)図20に示すように、既に存在するエントリのアクセス回数の更新は、現在のアクセス回数値に+1した値に更新する。
(1)上記「F.3(2)」の場合、アドレス記憶部104は、既に存在するエントリのアクセス回数の更新を行う。処理はS174−1、S178,S179の順である。S178の内容は図20である。
(2)アクセス履歴の更新は、有効状態のエントリの接続ポート番号のうち、登録中状態のエントリの接続ポート番号と一致する有効状態のエントリ全てに対して行う。この内容は図20の説明で後述する。
(3)図20に示すように、アドレス記憶部104は、アクセス履歴の更新対象となるエントリjに対して、上記「F.3(2)」のS178では、送信アドレスが一致するエントリiのアクセス履歴の値tmpより小さい値のエントリjのアクセス履歴を「+1」し、送信アドレスが一致するエントリiのアクセス履歴は「0」に更新する。こうすることで、アクセス履歴の大小関係を保つことが可能である。
(4)図20に示すように、既に存在するエントリのアクセス回数の更新は、現在のアクセス回数値に+1した値に更新する。
図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増やす。
(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増やす。
<G. アドレス記憶部108の動作>
アドレス記憶部108の動作を以下にまとめる。
図21は、アドレス記憶部108の全体動作のフローチャートである。図21の動作の主体はアドレス記憶部108である。図22〜図26は図21のサブルーチン処理を示す。
図22は、テーブル1081の初期化処理のフローチャートである。
図23は、テーブル1081への送信アドレスの登録処理のフローチャートである。
図24は、テーブル1081の割込み要因の内容の登録、データ読出しアドレスの出力のフローチャートである。
図25は、有効エントリ登録済の検索処理のフローチャートである。
図26は、データ読出しアドレスの格納処理及び更新処理のフローチャートである。
アドレス記憶部108の動作を以下にまとめる。
図21は、アドレス記憶部108の全体動作のフローチャートである。図21の動作の主体はアドレス記憶部108である。図22〜図26は図21のサブルーチン処理を示す。
図22は、テーブル1081の初期化処理のフローチャートである。
図23は、テーブル1081への送信アドレスの登録処理のフローチャートである。
図24は、テーブル1081の割込み要因の内容の登録、データ読出しアドレスの出力のフローチャートである。
図25は、有効エントリ登録済の検索処理のフローチャートである。
図26は、データ読出しアドレスの格納処理及び更新処理のフローチャートである。
図21のように、システムリセット解除(S191)の後、アドレス記憶部108は、システム起動直後、テーブル1081の初期化によりテーブルの状態を無効にする(S192)。S192の内容は図22に示す。図22は図14と同様であるので説明を省略する。
<G.1 送信アドレスの登録:S194>
(1)S193においてアドレス記憶部108は、送信アドレスの受信を待つ。アドレス記憶部108は、アドレス選択部105から送信アドレス156を受け取ると(図8の(a11))、テーブル1081の未使用(無効)のエントリの送信アドレス格納域に受け取った送信アドレスを格納する。
(2)この時、送信アドレスを書き込んだエントリは、未だ有効(使用中)ではなく、登録中状態である。状態を登録中とする。送信アドレス登録(S194)は、図23である。図23のS211は図16であり、既に説明したので説明は省略する。また図23は図15と類似であるので説明は省略する。
(1)S193においてアドレス記憶部108は、送信アドレスの受信を待つ。アドレス記憶部108は、アドレス選択部105から送信アドレス156を受け取ると(図8の(a11))、テーブル1081の未使用(無効)のエントリの送信アドレス格納域に受け取った送信アドレスを格納する。
(2)この時、送信アドレスを書き込んだエントリは、未だ有効(使用中)ではなく、登録中状態である。状態を登録中とする。送信アドレス登録(S194)は、図23である。図23のS211は図16であり、既に説明したので説明は省略する。また図23は図15と類似であるので説明は省略する。
<G.2 割込み要因内容の登録及びデータ読出しアドレスの出力>
(1)S195においてアドレス記憶部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に進む。
(1)S195においてアドレス記憶部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に進む。
(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)、処理を終了する。
(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))。
<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に更新される。
図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に更新される。
以上の実施の形態1によれば、以下の効果が得られる。
(1)予め「割込み要因」の格納場所を示すアドレス設定が不要で、従来の「割込み要因」読み出しにかかる時間を短縮する方法以前に使用したS/W処理の変更を不要としながら「割込み要因」読み出しにかかる時間を削減する効果がある。
(2)また、割込み要因読出し後の処理で発生するI/O装置内のデータ読出しに関しても、時間削減の効果がある。
(3)また、バス中継装置を多段接続した場合のバス多段構成時にも、上記の時間削減の効果がある。
(1)予め「割込み要因」の格納場所を示すアドレス設定が不要で、従来の「割込み要因」読み出しにかかる時間を短縮する方法以前に使用したS/W処理の変更を不要としながら「割込み要因」読み出しにかかる時間を削減する効果がある。
(2)また、割込み要因読出し後の処理で発生するI/O装置内のデータ読出しに関しても、時間削減の効果がある。
(3)また、バス中継装置を多段接続した場合のバス多段構成時にも、上記の時間削減の効果がある。
以上の実施の形態では、以下の(1)〜(4)のシステム構成で使用されるバス中継装置を説明した。
(1)周期的にS/W処理を繰り返し実行する。
(2)CPUが一定の周期内でS/W処理を完了し、次の周期で再びS/W処理を行う。
(3)複数のI/O装置を接続し、CPUと複数のI/O装置はバス中継装置を介して接続される。
(4)I/O装置とバス中継装置の接続は1対1(ポイント・ツー・ポイント)で行う。
(1)周期的にS/W処理を繰り返し実行する。
(2)CPUが一定の周期内でS/W処理を完了し、次の周期で再びS/W処理を行う。
(3)複数のI/O装置を接続し、CPUと複数のI/O装置はバス中継装置を介して接続される。
(4)I/O装置とバス中継装置の接続は1対1(ポイント・ツー・ポイント)で行う。
また、以上の実施の形態で説明したバス中継装置は、以下の構成要素を有する。割込み通知受信部101、割込み通知送信部102、CPU側受信部103、アドレス記憶部104、アドレス選択部105、I/O側送信部106、I/O側受信部107、アドレス記憶部108、割込み要因内容記憶部109、トランザクション送信部110、データ記憶部111。
また、以上の実施の形態で説明したバス中継装置は、以下の構成を有する。
(1)I/O装置から割込み通知を受信しCPUへ転送する。
(2)CPUからの割込み要因の読出し要求を待たずに、I/O装置に割込み要因読出しを自律的に発行する。
(3)I/O装置への割込み要因読出し時のアドレス設定をS/Wで行う必要がなく、動作中のアドレスを記憶し、そのアドレスを使用する。
(4)アドレスは複数記憶することが可能で、I/O装置に割込み要因読出し時の状態に合ったアドレスを選択可能とする。
(5)自律的に発行したI/O装置への割込み要因読出しによる割込み要因を記憶する。
(6)CPUからの割込み要因の読出し要求を受信した時に、自バス中継装置内に記憶した割込み要因をCPUへ送出する。
(7)CPUからの割込み要因の読出し要求よりアドレスを抽出し、次回の自律的割込み要因読出しのアドレス候補として記憶し、統計情報も生成し記憶する。
(1)I/O装置から割込み通知を受信しCPUへ転送する。
(2)CPUからの割込み要因の読出し要求を待たずに、I/O装置に割込み要因読出しを自律的に発行する。
(3)I/O装置への割込み要因読出し時のアドレス設定をS/Wで行う必要がなく、動作中のアドレスを記憶し、そのアドレスを使用する。
(4)アドレスは複数記憶することが可能で、I/O装置に割込み要因読出し時の状態に合ったアドレスを選択可能とする。
(5)自律的に発行したI/O装置への割込み要因読出しによる割込み要因を記憶する。
(6)CPUからの割込み要因の読出し要求を受信した時に、自バス中継装置内に記憶した割込み要因をCPUへ送出する。
(7)CPUからの割込み要因の読出し要求よりアドレスを抽出し、次回の自律的割込み要因読出しのアドレス候補として記憶し、統計情報も生成し記憶する。
また、以上の実施の形態で説明したバス中継装置は、以下の特徴を有する。つまり、上記で述べたバス中継装置は、I/O装置から受信した割込み要因によって、CPUが割込み要因読出し後に読み出しを行うI/O装置内データを、CPUからのI/O装置内データ読出しを待たずに、自律的にI/O装置から読出すことを可能とする。
また、以上の実施の形態で説明したバス中継装置は、以下の特徴を有する。つまり、上記で述べたバス中継装置は、I/O装置の代わりにバス中継装置を接続可能とし、バス中継装置の多段接続を可能とする。
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装置内データ。
Claims (8)
- 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装置に向けて送信することを特徴とするバス中継装置。 - 前記バス中継装置は、さらに、
前記上位側に接続する前記装置から割込み要因アドレスを含む割込み要因の要因読出し要求を受信し、前記要因読出し要求を受信すると、前記上位側に接続する前記装置がCPUかどうかを予め保有する接続情報に基づいて判断し、前記上位側に前記CPUが接続すると判断すると、割込み要因の読出し指示を出力する上位側受信部と、
前記上位側受信部が出力した割込み要因の読出し指示を受信すると共に前記下位側受信部が出力した前記割込み要因を受信して格納し、前記割込み要因が格納され、かつ、前記割込み要因の読出し指示が受信されると、前記割込み要因を出力する割込み要因記憶部と、
前記割込み要因記憶部が出力した前記割込み要因を受信し、受信した前記割込み要因を前記上位側に接続する前記CPUに送信する上位側送信部と
を備えたことを特徴とする請求項1に記載のバス中継装置。 - 前記バス中継装置は、さらに、
I/O装置の内部データを記憶する内部データ記憶部を備え、
前記上位側受信部は、
前記上位側に接続する前記装置からデータ読出しアドレスを含むと共にI/O装置の内部データの読出しを求めるデータ読出し要求を受信し、受信した前記データ読出し要求から前記データ読出しアドレスを抽出し、抽出した前記データ読出しアドレスを出力し、
前記内部データ記憶部は、
前記上位側受信部が出力した前記データ読出しアドレスを受信し、前記上位側受信部から前記データ読出しアドレスを受信すると、前記上位側に接続する前記装置が前記CPUかどうかを予め保有する接続情報に基づいて判断し、前記上位側に前記CPUが接続すると判断すると、I/O装置の前記内部データを記憶しているときには、前記内部データを前記上位側送信部に出力し、
前記上位側送信部は、
前記内部データ記憶部から前記内部データを受信し、前記内部データを前記上位側に接続する前記CPUに送信することを特徴とする請求項2に記載のバス中継装置。 - 前記下位側受信部は、
前記下位側に接続する装置からI/O装置の内部データを受信し、受信した前記内部データを前記内部データ記憶部に出力し、
前記内部データ記憶部は、
前記下位側受信部から内部データを受信すると、前記上位側に接続する前記装置が前記CPUかどうかを予め保有する接続情報に基づいて判断し、前記上位側に前記CPUが接続すると判断すると、前記上位側受信部が出力する前記データ読出しアドレスが受信済みのときは前記内部データを前記上位側送信部に送信し、前記データ読出しアドレスが未受信のときは前記データ読出しアドレスの受信を待ち、前記データ読出しアドレスが受信されたときに前記内部データを前記上位側送信部に送信することを特徴とする請求項3に記載のバス中継装置。 - 前記第1のアドレス記憶部が格納する前記割込み要因アドレス情報は、
前記組ごとに、前記ポート番号が前記組として使用された過去の使用状況を示すアクセス情報を有し、
前記上位側受信部は、
前記上位側に接続する前記装置から割込み要因アドレスを含む割込み要因の要因読出し要求を受信すると前記要因読出し要求から前記割込み要因アドレスを抽出し、抽出した前記割込み要因アドレスを出力し、
前記第1のアドレス記憶部は、
前記割込み通知受信部が出力した前記ポート番号と、前記上位側受信部が出力した前記割込み要因アドレスとを受信し、受信した前記ポート番号及び前記割込み要因アドレスと同じ前記ポート番号及び前記割込み要因アドレスを含む前記組に対して、前記アクセス情報を更新し、
前記アドレス選択部は、
前記アクセス情報の更新後の前記割込み要因アドレス情報から、前記割込み要因を取得することを特徴とする請求項2から請求項4のいずれか一項に記載のバス中継装置。 - 前記第1のアドレス記憶部が格納する前記割込み要因アドレス情報は、
前記組ごとの前記アクセス情報として、
前記組の使用された新しさを示すアクセス履歴と、前記組の使用された回数を示すアクセス回数とを含み、
前記アドレス選択部は、
前記アクセス履歴と、前記アクセス回数とのいずれかに基づいて、前記割込み要因アドレスを取得することを特徴とする請求項5に記載のバス中継装置。 - 前記第1のアドレス記憶部は、
前記割込み通知受信部が出力した前記ポート番号と、前記上位側受信部が出力した前記割込み要因アドレスとを受信したときに、受信した前記ポート番号及び前記割込み要因アドレスと同じ前記ポート番号及び前記割込み要因アドレスを含む前記組が存在しないときには、受信した前記ポート番号と前記割込み要因アドレスとを含む前記組を新たな組として格納することを特徴とする請求項5または請求項6に記載のバス中継装置。 - 前記第2のアドレス記憶部は、
前記アドレス選択部が出力した前記割込み要因アドレスと、前記下位側受信部が出力した前記割込み要因と、前記上位側受信部が出力した前記データ読出しアドレスとを受信し、受信した前記割込み要因アドレスと、前記割込み要因と、前記データ読出しアドレスとの組が格納されているかどうかを判断し、格納されていないと判断すると前記組を新たに格納することを特徴とする請求項3から請求項7のいずれか一項に記載のバス中継装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/063709 WO2014184935A1 (ja) | 2013-05-16 | 2013-05-16 | バス中継装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6053921B2 true JP6053921B2 (ja) | 2016-12-27 |
JPWO2014184935A1 JPWO2014184935A1 (ja) | 2017-02-23 |
Family
ID=51897941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015516844A Expired - Fee Related JP6053921B2 (ja) | 2013-05-16 | 2013-05-16 | バス中継装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9684617B2 (ja) |
EP (1) | EP2998872B1 (ja) |
JP (1) | JP6053921B2 (ja) |
CN (1) | CN105190582B (ja) |
WO (1) | WO2014184935A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6418021B2 (ja) * | 2015-03-18 | 2018-11-07 | 富士通株式会社 | 情報処理装置及び情報処理装置の制御方法 |
JP6700564B1 (ja) * | 2018-12-28 | 2020-05-27 | 富士通クライアントコンピューティング株式会社 | 情報処理システム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02166548A (ja) * | 1988-12-21 | 1990-06-27 | Fujitsu Ltd | 共通バス制御方式 |
JPH08115292A (ja) * | 1994-10-17 | 1996-05-07 | Mitsubishi Electric Corp | インタフェースボード及び命令処理装置 |
JPH11338713A (ja) * | 1998-05-26 | 1999-12-10 | Oki Electric Ind Co Ltd | コンピュータシステム |
JP2000276357A (ja) * | 1999-03-24 | 2000-10-06 | Nec Corp | 割り込み処理装置および割り込み通知方法 |
JP2010224689A (ja) * | 2009-03-19 | 2010-10-07 | Nec Soft Ltd | デバイス制御システム、情報処理装置及びデバイス制御方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01306948A (ja) | 1988-06-06 | 1989-12-11 | Toshiba Corp | インタフェース基板 |
JPH05257863A (ja) * | 1992-03-16 | 1993-10-08 | Fujitsu Ltd | 処理装置の割込みステータス認識方法 |
US7415557B2 (en) * | 2006-06-06 | 2008-08-19 | Honeywell International Inc. | Methods and system for providing low latency and scalable interrupt collection |
JP5320140B2 (ja) * | 2009-04-14 | 2013-10-23 | 株式会社日立製作所 | 計算機システム、割込み中継回路及び割込み中継方法 |
JP2011175419A (ja) | 2010-02-24 | 2011-09-08 | Kyocera Mita Corp | インタフェース装置、画像形成装置 |
DE112010006065T5 (de) * | 2010-12-14 | 2013-10-17 | Mitsubishi Electric Corporation | Unterbrechungsursachen-Verwaltungsvorrichtung und Unterbrechungsverarbeitungssystem |
-
2013
- 2013-05-16 CN CN201380076319.6A patent/CN105190582B/zh not_active Expired - Fee Related
- 2013-05-16 US US14/780,918 patent/US9684617B2/en active Active
- 2013-05-16 JP JP2015516844A patent/JP6053921B2/ja not_active Expired - Fee Related
- 2013-05-16 WO PCT/JP2013/063709 patent/WO2014184935A1/ja active Application Filing
- 2013-05-16 EP EP13884428.7A patent/EP2998872B1/en not_active Not-in-force
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02166548A (ja) * | 1988-12-21 | 1990-06-27 | Fujitsu Ltd | 共通バス制御方式 |
JPH08115292A (ja) * | 1994-10-17 | 1996-05-07 | Mitsubishi Electric Corp | インタフェースボード及び命令処理装置 |
JPH11338713A (ja) * | 1998-05-26 | 1999-12-10 | Oki Electric Ind Co Ltd | コンピュータシステム |
JP2000276357A (ja) * | 1999-03-24 | 2000-10-06 | Nec Corp | 割り込み処理装置および割り込み通知方法 |
JP2010224689A (ja) * | 2009-03-19 | 2010-10-07 | Nec Soft Ltd | デバイス制御システム、情報処理装置及びデバイス制御方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105190582A (zh) | 2015-12-23 |
WO2014184935A1 (ja) | 2014-11-20 |
JPWO2014184935A1 (ja) | 2017-02-23 |
EP2998872A4 (en) | 2017-01-11 |
US9684617B2 (en) | 2017-06-20 |
US20160055109A1 (en) | 2016-02-25 |
EP2998872B1 (en) | 2018-05-02 |
EP2998872A1 (en) | 2016-03-23 |
CN105190582B (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11755527B2 (en) | Techniques for command validation for access to a storage device by a remote client | |
US11886355B2 (en) | Emulated endpoint configuration | |
US8588228B1 (en) | Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner | |
US8396996B2 (en) | Querying a device for information | |
WO2014038070A1 (ja) | 情報処理装置,並列計算機システム及び情報処理装置の制御方法 | |
US10318334B2 (en) | Virtio relay | |
US20170371787A1 (en) | Contended lock request elision scheme | |
JP6053921B2 (ja) | バス中継装置 | |
CN105491082B (zh) | 远程资源访问方法和交换设备 | |
KR20170072645A (ko) | 프로세서 및 프로세서에서 데이터를 처리하는 방법 | |
CN107526696B (zh) | 软件定义的sr-iov模块 | |
US20210349840A1 (en) | System, Apparatus And Methods For Handling Consistent Memory Transactions According To A CXL Protocol | |
US11301410B1 (en) | Tags for request packets on a network communication link | |
CN107526695B (zh) | NVMe配置空间实现方法与装置 | |
CN110268390B (zh) | 相干互连系统中的读取交易跟踪器生命期 | |
US11347667B2 (en) | Bus controller and related methods | |
CN112052074B (zh) | 处理器建模系统及处理器建模方法 | |
JP2009217336A (ja) | 計算機システム、ネットワークブートロードシステム、及び、そのブートロード方法 | |
CN114090912A (zh) | 数据平台融合方法、计算设备及计算机存储介质 | |
CN115729649A (zh) | 一种数据缓存方法、有限状态机、处理器和存储系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161101 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161129 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6053921 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |