(57)【要約】【課題】複数のノードを制御する制御装置がノードから受信するデータに基づいて発行する割り込みの回数を削減する。【解決手段】制御装置は、対応するノードからのコマンドとコマンドに続くデータ列とを処理する複数の処理部を有し、各処理部は、データ列の各データが順次格納される受信データレジスタと、受信データレジスタにデータが格納される毎にデータが転送される受信データバッファと、データ列の受信データバッファへの転送を検出する受信完了検出部と、受信したコマンドが、異常コマンドかを検出する異常検出部と、異常コマンドの検出に基づいて割り込みを発行し、異常コマンドを検出しない場合、受信データ列の転送完了の検出に基づいて割り込みを発行する割り込み発行部と、を有し、制御装置は、割り込み発行部が発行した割り込みに基づいて割り込み処理を実行する割り込み処理部と、を有する。【選択図】図１
2020198044.tif 000002
【特許請求の範囲】
【請求項１】
情報処理を実行する複数のノードと、前記複数のノードを制御する制御装置とを有する並列処理装置であって、
前記制御装置は、前記複数のノードの各々に対応して設けられ、対応するノードから受信するコマンドとコマンドに続くデータ列とを処理する複数の処理部を有し、
前記複数の処理部の各々は、
対応するノードから受信するコマンドに続く受信データ列の各データが順次格納される受信データレジスタと、
前記受信データレジスタにデータが格納される毎に、前記受信データレジスタからデータが転送される受信データバッファと、
受信データ列が前記受信データバッファに転送されたことを検出する受信完了検出部と、
受信したコマンドが、対応するノードの状態の異常を示す異常コマンドであるかを検出する異常検出部と、
前記異常検出部による前記異常コマンドの検出に基づいて割り込みを発行し、前記異常検出部が異常コマンドを検出しない場合、前記受信完了検出部による受信データ列の転送完了の検出に基づいて割り込みを発行する割り込み発行部と、を有し、
前記制御装置はさらに、前記複数のノードの各々に対応して設けられ、前記割り込み発行部が発行した割り込みに基づいて割り込み処理を実行する割り込み処理部と、を有することを特徴とする並列処理装置。
【請求項２】
前記複数の処理部の各々は、
前記受信データレジスタから前記受信データバッファにデータが転送される毎に、カウンタ値を更新し、カウンタ値が受信データ列のデータ数分更新された場合、受信完了信号を出力する受信データカウンタを有し、
前記受信完了検出部は、前記受信完了信号の受信に基づいて、受信データ列の前記受信データバッファへの転送完了を検出すること、を特徴とする請求項１に記載の並列処理装置。
【請求項３】
前記受信完了検出部は、前記異常検出部が前記異常コマンドを検出した場合、受信完了信号の受信に基づく前記割り込み発行部への割り込みの発行を抑止すること、を特徴とする請求項２に記載の並列処理装置。
【請求項４】
前記複数の処理部の各々は、
前記受信データバッファに転送された受信データ列を処理する割り込み処理により生成され、対応するノードに応答される応答データ列に含まれるデータが順次格納される送信データレジスタと、
前記送信データレジスタにデータが格納される毎に、カウンタ値を更新し、カウンタ値が、応答データ列のデータ数分更新された場合、第１の送信完了信号を出力する第１の送信データカウンタと、
前記送信データレジスタに格納されたデータが前記ノードに転送される毎に、カウンタ値を更新し、カウンタ値が応答データ列のデータ数分更新された場合、第２の送信完了信号を出力する第２の送信データカウンタと、
前記第１の送信完了信号と前記第２の送信完了信号との両方を受信した場合、応答データ列の前記ノードへの送信完了を検出する送信完了検出部と、
を有し、
前記割り込み発行部は、前記異常検出部が異常コマンドを検出しない場合、前記受信完了検出部による受信データ列の転送完了の検出または前記送信完了検出部による応答データ列の送信完了の検出に基づいて割り込みを発行すること、を特徴とする請求項１ないし請求項３のいずれか１項に記載の並列処理装置。
【請求項５】
前記送信完了検出部は、前記異常検出部が前記異常コマンドを検出した場合、前記第１の送信完了信号および前記第２の送信完了信号の受信に基づく前記割り込み発行部への割り込みの発行を抑止すること、を特徴とする請求項４に記載の並列処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列処理装置に関する。
【背景技術】
【０００２】
多重化されたコンピュータシステム内で発生するエラーに基づいて発行する割り込みの通知先を、システムに対する影響度に応じて変更可能にする手法が提案されている（例えば、特許文献１参照）。仮想サーバー・ブレードがエミュレートする仮想ＢＭＣ（Baseboard  Management  Controller）を、物理ＢＭＣのように振る舞わせ、仮想ＢＭＣにイベントおよびエラーをログに記録するなどの処理を実施させる手法が提案されている（例えば、特許文献２参照）。ＯＳ（Operating  System）を起動するディスク装置を選択的に切り替える機能をＢＭＣに持たせることで、ＯＳの起動の信頼性を向上させる手法が提案されている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１７８５５７号公報
【特許文献２】特表２００８−５２３５１２号公報
【特許文献３】特開２００２−２５９１３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、サーバ等のノードと、ノードを制御するＢＭＣを含む制御装置とは、ＩＰＭＩ（Intelligent  Platform  Management  Interface）標準のＫＣＳ（Keyboard  Controller  Style）インターフェースを使用してコマンドやデータ列を通信する。ノードは、ＢＭＣにコマンドおよびデータ列を送信する場合、コマンドに続くデータ列を１バイトずつ制御装置の受信回路に送信する。受信回路は、１バイトのデータをノードから受信する毎にＢＭＣに割り込みを発行する。ＢＭＣのファームウェアは、割り込みに応答して、制御装置がノードから受信したデータを処理する。
【０００５】
例えば、ＢＭＣが複数のノードを制御する場合、ＢＭＣが制御するノードの数が増えるほど、ＢＭＣによる割り込みの受信頻度および割り込み処理の頻度が高くなり、ＢＭＣの負荷は高くなる。
【０００６】
１つの側面では、本発明は、複数のノードを制御する制御装置がノードから受信するデータに基づいて発行する割り込みの回数を削減することを目的とする。
【課題を解決するための手段】
【０００７】
一つの観点によれば、並列処理装置は、情報処理を実行する複数のノードと、前記複数のノードを制御する制御装置とを有する並列処理装置であって、前記制御装置は、前記複数のノードの各々に対応して設けられ、対応するノードから受信するコマンドとコマンドに続くデータ列とを処理する複数の処理部を有し、前記複数の処理部の各々は、対応するノードから受信するコマンドに続く受信データ列の各データが順次格納される受信データレジスタと、前記受信データレジスタにデータが格納される毎に、前記受信データレジスタからデータが転送される受信データバッファと、受信データ列が前記受信データバッファに転送されたことを検出する受信完了検出部と、受信したコマンドが、対応するノードの状態の異常を示す異常コマンドであるかを検出する異常検出部と、前記異常検出部による前記異常コマンドの検出に基づいて割り込みを発行し、前記異常検出部が異常コマンドを検出しない場合、前記受信完了検出部による受信データ列の転送完了の検出に基づいて割り込みを発行する割り込み発行部と、を有し、前記制御装置はさらに、前記複数のノードの各々に対応して設けられ、前記割り込み発行部が発行した割り込みに基づいて割り込み処理を実行する割り込み処理部と、を有する。
【０００８】
１つの側面では、本発明は、複数のノードを制御する制御装置がノードから受信するデータに基づいて発行する割り込みの回数を削減することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態における並列処理装置の一例を示すブロック図である。
【図２】別の実施形態における並列処理装置の一例を示すブロック図である。
【図３】図２のＫＣＳ処理部の一例を示すブロック図である。
【図４】図３のコマンドレジスタに書き込まれるコマンドの一例を示す図である。
【図５】図３の受信データレジスタおよび送信データレジスタに格納されるデータフォーマットの一例を示す図である。
【図６】図２のノードが稼働状態を通知する場合のデータフォーマットの一例を示す図である。
【図７】図６のデータフォーマットにおいて、ノードの稼働状態を通知するリクエストデータとそのレスポンスデータの一例を示す図である。
【図８】図２のノードがシステム時刻情報を取得する場合のデータフォーマットの一例を示す図である。
【図９】図８のデータフォーマットにおいて、システム時刻情報を取得するリクエストとそのレスポンスの一例を示す図である。
【図１０】図２のＫＣＳ処理部の動作の一例を示すフロー図である。
【図１１】図１０の動作ＯＰ５０の処理の一例を示すフロー図である。
【図１２】図１０の動作ＯＰ７０の処理の一例を示すフロー図である。
【図１３】図２のＢＭＣによるＫＣＳ割り込み処理の一例を示すフロー図である。
【発明を実施するための形態】
【００１０】
以下、図面を用いて実施形態が説明される。
【００１１】
図１は、一実施形態における並列処理装置の一例を示す。図１に示す並列処理装置１００は、情報処理を実行する複数のノード１と、複数のノード１を制御する制御装置２とを有する。例えば、各ノード１は、サーバ等の情報処理装置でもよく、ＣＰＵ（Central  Processing  Unit）等のプロセッサでもよい。あるいは、各ノード１は、ＣＰＵに含まれる複数のＣＰＵコアでもよい。なお、ノード１は、図示しないネットワークを介して相互に接続され、情報処理に使用するデータを相互に転送してもよい。
【００１２】
例えば、ノード１は、コマンドとコマンドに続くデータ列とを制御装置２に送信する。例えば、コマンドがノード状態の通知を示す通知コマンドの場合、コマンドに続くデータ列は、ノードがどのような稼働状態または停止状態にあるのかを示す。例えば、コマンドが、時刻等のシステム情報の要求を示す要求コマンド、または、ノード１の状態の異常を示す異常コマンドの場合、コマンドに続くデータ列はなく、コマンドのみが送信されてもよい。ノード１の状態の異常とは、制御装置２との間で通信が正常にできないことをノード１が検出した場合を含む。
【００１３】
制御装置２は、複数のノード１の各々に対応して設けられる複数の処理部３を有する。各処理部３は、受信データレジスタ４、受信データバッファ５、受信完了検出部６、異常検出部７および割り込み発行部８を有する。また、制御装置２は、複数のノード１の各々に対応して設けられる割り込み処理部９を有する。
【００１４】
例えば、処理部３は、ハードウェアにより実現され、割り込み処理部９は、制御装置２に搭載されるＢＭＣ等のコントローラが実行するファームウェアにより実現される。なお、処理部３の一部は、ソフトウェアにより実現されてもよく、割り込み処理部９は、ＦＰＧＡ（Field  Programmable  Gate  Array）等のハードウェアにより実現されてもよい。
【００１５】
受信データレジスタ４は、対応するノード１から受信するコマンドに続くデータ列に含まれる各データが順次格納される。受信データバッファ５は、受信データレジスタ４にデータが格納される毎に、受信データレジスタ４からデータが転送される。例えば、受信データレジスタ４のサイズは１バイトであり、受信データバッファ５のサイズは、ノード１から受信するデータ列の最大サイズ以上（複数バイト）である。処理部３は、受信データレジスタ４にデータが書き込まれる毎に、書き込まれたデータを受信データバッファ５に転送する。なお、コマンドに続くデータ列は、１バイトでもよい。
【００１６】
受信完了検出部６は、受信したコマンドに続くデータ列の全てが、受信データレジスタ４から１バイトずつ受信データバッファ５に転送されたことを検出する。例えば、受信完了検出部６は、データ列の受信データバッファ５への転送が完了したことに基づいて、ノード１からのデータ列の受信が完了したことを示す受信完了情報を割り込み発行部８に出力する。
【００１７】
異常検出部７は、受信したコマンドが、コマンドを送信したノード１の状態の異常を示す異常コマンドであるかを検出する。異常検出部７は、異常コマンドの検出に基づいて直ちに、ノード１の状態の異常を示す異常情報を割り込み発行部８に出力する。
【００１８】
割り込み発行部８は、異常検出部７による異常コマンドの検出に基づいて直ちに、割り込み処理部９に割り込みを発行する。また、割り込み発行部８は、異常検出部７が異常コマンドを検出しない場合、受信完了検出部６によるデータ列の受信データバッファ５への転送完了の検出に基づいて、割り込み処理部９に割り込みを発行する。
【００１９】
割り込み処理部９は、割り込み発行部８が発行した割り込みに基づいて、割り込み要因毎に割り込み処理を実行する。例えば、ノード状態の通知を示す通知コマンドに続くデータ列の受信に基づく割り込み処理では、データ列により示されるノードの状態がＢＭＣ内の状態記憶領域に格納され、データ列を受信したことを示す応答コマンドがノードに発行される。例えば、時刻等のシステム情報の要求を示す要求コマンドの受信に基づく割り込み処理では、時刻等のシステム情報が取得され、取得したシステム情報がノード１に応答される。例えば、ノード１の状態の異常を示す異常コマンドの受信に基づく割り込み処理では、異常の内容や原因が解析され、ノード１または管理者端末に異常の内容や原因が通知される。
【００２０】
図１に示す並列処理装置１００では、受信完了検出部６は、通知コマンドに続いてノード１から受信するデータ列の受信データバッファ５への転送が完了したことに基づいて、受信完了情報を割り込み発行部８に出力する。このため、データ列に含まれる各データを受信データレジスタ４で受信する毎に受信完了情報を割り込み発行部８に出力する場合に比べて、割り込み発行部８が割り込み処理部９に発行する割り込みの回数を削減することができる。これにより、割り込みに基づいて実行される割り込み処理の回数を削減することができ、ＢＭＣ（割り込み処理部９）に掛かる負荷を軽減することができる。この結果、より多くのノード１の制御を制御装置２に実行させることが可能になる。換言すれば、コマンドに続いてノード１から送信されるデータを１バイト受信する毎に割り込みを発行する場合に比べて、並列処理装置１００内に配置する制御装置２の数を削減することができ、並列処理装置のコストを削減することができる。
【００２１】
また、異常コマンドを受信した場合には、異常情報が割り込み発行部８に直ちに出力され、割り込み発行部８が割り込み処理部９に割り込みを発行するため、ノード１の異常状態に対する割り込み処理を迅速に開始することができる。
【００２２】
図２は、別の実施形態における並列処理装置の一例を示す。図１と同様の要素については、詳細な説明は省略する。図３に示す並列処理装置１００Ａは、情報処理を実行する複数のノード１０と、複数のノード１０を制御および管理する制御装置２０とを有する。例えば、ノード１０は、ネットワークで相互に接続されている。ノード１０は、サーバ等の情報処理装置でもよく、ＣＰＵ等のプロセッサでもよく、ＣＰＵに含まれる複数のＣＰＵコアでもよい。
【００２３】
制御装置２０は、制御部３０およびＢＭＣ４０を有する。制御部３０は、例えば、ハードウェアにより実現され、各ノード１０に対するコマンドおよびコマンドに続くデータ列の送受信を制御する。例えば、ノード１０と制御部３０とは、ＩＰＭＩ標準のＫＣＳインターフェースを使用してコマンドおよびデータ列を送受信する。なお、図２では、ノード１０から受信するコマンドおよびデータに関する要素を示し、ノード１０に送信するコマンドおよびデータに関する要素の記載を省略している。
【００２４】
制御部３０は、各ノード１０に対応してそれぞれ設けられる複数のＫＣＳ処理部５０および割り込みレジスタ６０を有する。ＫＣＳ処理部５０は、ＫＣＳインターフェースレジスタ５２、ＫＣＳデータ処理回路５４、ＫＣＳサポートステータスレジスタ５６およびＫＣＳサポートデータバッファ５８を有する。ＫＣＳ処理部５０の例は、図３に示される。ＫＣＳ処理部５０は、処理部の一例である。
【００２５】
ＫＣＳインターフェースレジスタ５２は、ノード１０から受信するコマンドに続くデータ列を保持するとともに、コマンドとともにノード１０に送信するデータ列を保持する。ＫＣＳデータ処理回路５４は、ＫＣＳインターフェースレジスタ５２によるデータ列の受信に基づいて、ＫＣＳ割り込みの発行を判断した場合、ＫＣＳサポートステータスレジスタ５６の所定のＫＣＳ割り込みフラグをセットする。ここで、ＫＣＳ割り込みは、ＫＣＳインターフェースを使用したノード１０から制御装置２０への通信に起因して発生する割り込みである。
【００２６】
ＫＣＳサポートデータバッファ５８は、ＫＣＳインターフェースレジスタ５２を介してノード１０から１バイトずつ受信するデータをデータ列として保持する。また、ＫＣＳサポートデータバッファ５８は、ＫＣＳインターフェースレジスタ５２を介してノード１０に１バイトずつ送信されるデータを含むデータ列を保持する。
【００２７】
ＢＭＣ４０は、各ノード１０の電源の制御、温度情報等の取得、イベントの記録等のノード１０の管理を実行するとともに、制御部３０から発行されるＫＣＳ割り込みに基づいて、ＫＣＳ割り込み処理を実行する。ＫＣＳ割り込み処理は、ＫＣＳ割り込みに基づいて実行される割り込み処理である。図２では、ＫＣＳ割り込み処理に関する要素のみを記載し、ノード１０を管理する要素の記載を省略する。
【００２８】
ＢＭＣ４０は、割り込みスレッド４２と、ＫＣＳ割り込みが発生したときに割り込みスレッド４２により起動されるノード１０毎のＫＣＳスレッド４４とを、ファームウェアにより実行する。例えば、ＫＣＳスレッド４４は、対応するＫＣＳ処理部５０からの割り込みに基づいて、ＫＣＳ割り込み処理を実行し、対応するノード１０に送信する応答データを生成する割り込み処理部の一例である。ＫＣＳスレッド４４は、ＫＣＳ割り込みに基づくＫＣＳ割り込み処理が完了した場合に終了する。なお、ＢＭＣ４０は、割り込みスレッド４２およびＫＣＳスレッド４４の一方または両方の代わりに、割り込み処理を実行する割り込み処理回路を有してもよい。
【００２９】
図３は、図２のＫＣＳ処理部５０の一例を示す。ＫＣＳインターフェースレジスタ５２は、コマンドレジスタ５２２、ステータスレジスタ５２４、受信データレジスタ５２６および送信データレジスタ５２８を有する。例えば、コマンドレジスタ５２２、ステータスレジスタ５２４、受信データレジスタ５２６および送信データレジスタ５２８は、それぞれ１バイトである。
【００３０】
ＫＣＳデータ処理回路５４は、比較部５４１、アンド部５４２、立ち上がり検出部５４３、受信完了検出部５４４、送信完了検出部５４５およびその他異常検出部５４６を有する。また、ＫＣＳデータ処理回路５４は、受信データライトカウンタ５４７、送信データライトカウンタ５４８および送信データリードカウンタ５４９を有する。
【００３１】
ＫＣＳサポートステータスレジスタ５６は、ＫＣＳ割り込みフラグとして、アボードフラグ、受信完了フラグ、送信完了フラグおよびその他異常フラグを有する。なお、ＫＣＳ処理部５０は、アボードフラグＡＢＲＴ、受信完了フラグ、送信完了フラグまたはその他異常フラグに基づいて、割り込みレジスタ６０に割り込みを発行する割り込み発行制御部５９２を有する。
【００３２】
ＫＣＳサポートデータバッファ５８は、受信データバッファ５８２および送信データバッファ５８４を有する。また、ＫＣＳ処理部５０は、受信サイズレジスタ５９４および送信サイズレジスタ５９６を有する。ＫＣＳサポートステータスレジスタ５６および割り込み発行制御部５９２は、異常コマンドの検出、または、異常コマンドを検出しない場合に受信データ列または送信データ列の転送完了の検出に基づいてＫＣＳ割り込みを発行する割り込み発行部の一例である。
【００３３】
コマンドレジスタ５２２は、ノード１０から送信されるコマンドを保持する。受信データレジスタ５２６は、対応するノード１０から受信するコマンドに続くデータ列に含まれるデータを、例えば１バイト毎に保持する。例えば、ノード１０は、コマンドレジスタ５２２にコマンドを書き込み、受信データレジスタ５２６に１バイトずつデータを書き込む。ノード１０から受信するデータ列は、受信データ列の一例である。ノード１０から受信するデータ列は、受信データレジスタ５２６に１バイトずつ保持される毎に受信データバッファ５８２に転送される。
【００３４】
ステータスレジスタ５２４は、ＩＰＭＩ仕様におけるＩＢＦフラグを有する。ステータスレジスタ５２４のＩＢＦフラグは、ノード１０によりコマンドレジスタ５２２にコマンドが書き込まれ、またはノード１０により受信データレジスタ５２６にデータが書き込まれた場合に”１”にセットされる。
【００３５】
送信データレジスタ５２８は、ノード１０に送信する１バイトのデータを保持する。送信データレジスタ５２８に保持されるデータは、ＫＣＳデータ処理回路５４による制御に基づいて送信データバッファ５８４から転送される。
【００３６】
例えば、ＢＭＣ４０（図２のＫＣＳスレッド４４）は、受信データバッファ５８２に転送されたデータ列を処理するＫＣＳ割り込み処理を実行し、対応するノード１０に応答するデータ列を生成し、生成したデータ列を送信データバッファ５８４に格納する。そして、送信データバッファ５８４から送信データレジスタ５２８に１バイトずつ順次転送されるデータは、対応するノード１０に応答データ列として送信される。
【００３７】
比較部５４１は、コマンドレジスタ５２２に保持されたコマンドとアボートコマンドとを比較する。比較部５４１は、コマンドレジスタ５２２に保持されたコマンドがアボートコマンドである場合、”１”を出力し、コマンドレジスタ５２２に保持されたコマンドがアボートコマンドでない場合、”０”を出力する。例えば、コマンドレジスタ５２２には、コマンドを識別するコマンドコードが格納され、比較部５４１は、コマンドレジスタ５２２に保持されたコマンドコードと、アボードコマンドを識別するコマンドコードとを比較する。アボードコマンドは、ノード１０の状態の異常を示す異常コマンドの一例である。
【００３８】
アンド部５４２は、ＩＢＦフラグに”１”がセットされ、比較部５４１が”１”を出力する場合、”１”を出力し、ＩＢＦフラグが”０”または比較部５４１の出力が”０”の場合、”０”を出力する。立ち上がり検出部５４３は、アンド部５４２の出力が”０”から”１”に変化したことを検出した場合、アボートフラグをセットする。比較部５４１およびアンド部５４２は、ノード１０から受信したコマンドが、対応するノード１０の状態の異常を示す異常コマンドであるかを検出する異常検出部の一例である。
【００３９】
受信完了検出部５４４は、ノード１０から受信したデータ列の受信データバッファ５８２への転送の完了を示す受信完了信号ＲＣＰＬＴを受信データライトカウンタ５４７から受けた場合、ＫＣＳサポートステータスレジスタ５６の受信完了フラグをセットする。但し、受信完了検出部５４４は、アンド部５４２から”１”を受けている場合、受信完了フラグのセット動作を抑止し、受信完了信号ＲＣＰＬＴに応答する割り込みの発行を抑止させる。アボートコマンドをノード１０から受信した場合、ノード１０が異常動作している可能性があり、ノード１０から受信したデータ列が正しくないおそれがある。このため、アボートコマンドを受信した場合に、受信データ列の受信完了に伴う割り込みの発行を抑止することで、ＢＭＣ４０により無駄な割り込み処理が実行されることを抑止することができる。
【００４０】
送信完了検出部５４５は、送信データライトカウンタ５４８および送信データリードカウンタ５４９から送信完了信号ＴＣＰＬＴ１、ＴＣＰＬＴ２の両方を受信した場合、応答データ列のノード１０への送信完了を検出する。そして、送信完了検出部５４５は、ＫＣＳサポートステータスレジスタ５６の送信完了フラグをセットする。
【００４１】
但し、送信完了検出部５４５は、アンド部５４２から”１”を受けている場合、送信完了フラグのセット動作を抑止し、送信完了信号ＴＣＰＬＴ１、ＴＣＰＬＴ２に応答する割り込みの発行を抑止させる。アボートコマンドをノード１０から受信した場合、ノード１０が異常動作している可能性があり、制御装置２０から送信したデータ列をノード１０が正しく受信しないおそれがある。このため、アボートコマンドを受信した場合に、送信データ列の送信完了に伴う割り込みの発行を抑止することで、ＢＭＣ４０により無駄な割り込み処理が実行されることを抑止することができる。
【００４２】
その他異常検出部５４６は、ノード１０からのアボートコマンドとは無関係に、ノード１０との間の通信等の異常が制御装置２０内で検出された場合、その他異常フラグをセットする。例えば、その他異常フラグは、受信データサイズ分の受信データ列を受信する前にタイムアウトが発生した場合、または、送信データサイズ分の送信データ列を送信する前にタイムアウトが発生した場合等にセットされる。
【００４３】
受信データライトカウンタ５４７は、コマンドとともにノード１０から受信したデータ列に含まれる各データが、受信データレジスタ５２６から受信データバッファ５８２に書き込まれる毎にカウンタ値を更新する。受信データライトカウンタ５４７は、カウンタ値が受信サイズレジスタ５９４に保持された受信データサイズになった場合、受信完了検出部５４４に、受信完了信号ＲＣＰＬＴを出力する。例えば、受信データライトカウンタ５４７は、受信データレジスタ５２６から受信データバッファ５８２にデータを書き込むときに生成される書き込み要求をモニタし、書き込み要求が発生する毎にカウンタ値を更新する。受信データライトカウンタ５４７は、受信データカウンタの一例である。
【００４４】
受信データライトカウンタ５４７により、受信データバッファ５８２に書き込まれるデータを１つずつカウントすることで、受信データバッファ５８２への受信データ列の転送の完了に合わせて、割り込みを発行することができる。これにより、受信データバッファ５８２への受信データ列の転送が完了する前に割り込みが発行されることを抑止でき、受信データバッファ５８２への受信データ列の転送が完了してから割り込みが発行されるまでの時間が掛かることを抑止できる。したがって、受信データ列の転送の完了に基づいて割り込みを発行する場合に、割り込み処理の効率が低下することを抑止することができる。
【００４５】
送信データライトカウンタ５４８は、送信データバッファ５８４から送信データレジスタ５２８にデータが書き込まれる毎にカウンタ値を更新する。送信データライトカウンタ５４８は、カウンタ値が送信サイズレジスタ５９６に保持された送信データサイズになった場合、送信完了検出部５４５に送信完了信号ＴＣＰＬＴ１を出力する。
【００４６】
すなわち、送信データライトカウンタ５４８は、カウンタ値が応答データ列のデータ数分更新された場合、送信完了信号ＴＣＰＬＴ１を出力する。例えば、送信データライトカウンタ５４８は、送信データバッファ５８４から送信データレジスタ５２８にデータを書き込むときに生成される書き込み要求をモニタし、書き込み要求が発生する毎にカウンタ値を更新する。送信データライトカウンタ５４８は、第１の送信データカウンタの一例であり、送信完了信号ＴＣＰＬＴ１は、第１の送信完了信号の一例である。
【００４７】
送信データリードカウンタ５４９は、送信データレジスタ５２８に格納されたデータがノード１０により読み出される毎にカウンタ値を更新する。送信データリードカウンタ５４９は、カウンタ値が送信サイズレジスタ５９６に保持された送信データサイズになった場合、送信完了検出部５４５に送信完了信号ＴＣＰＬＴ２を出力する。
【００４８】
すなわち、送信データリードカウンタ５４９は、カウンタ値が応答データ列のデータ数分更新された場合、送信完了信号ＴＣＰＬＴ２を出力する。例えば、送信データリードカウンタ５４９は、送信データレジスタ５２８からデータを読み出す場合にノード１０から発行される読み出し要求をモニタし、読み出し要求が発生する毎にカウンタ値を更新する。送信データリードカウンタ５４９は、第２の送信データカウンタの一例であり、送信完了信号ＴＣＰＬＴ２は、第２の送信完了信号の一例である。
【００４９】
送信データライトカウンタ５４８および送信データリードカウンタ５４９により、送信データ列に含まれるデータを１つずつカウントすることで、送信データ列のノード１０への送信の完了に合わせて、割り込みを発行することができる。これにより、ノード１０への送信データ列の送信中に割り込みが発生されることを抑止でき、ノード１０への送信データ列の送信が完了してから割り込みが発行されるまでの時間が掛かることを抑止できる。したがって、送信データ列の送信の完了に基づいて割り込みを発行する場合に、割り込み処理の効率が低下することを抑止することができる。
【００５０】
また、送信データライトカウンタ５４８および送信データリードカウンタ５４９の両方によるデータのカウントに基づいて、割り込みを発行するため、割り込みの発行の信頼性を向上することができる。
【００５１】
なお、受信データライトカウンタ５４７は、受信サイズレジスタ５９４を使用せずに、データ列の受信の完了を判定してもよい。例えば、ＫＣＳデータ処理回路５４は、ノード１０から受信したコマンドに基づいて、コマンドに続く受信データ列のサイズ（受信データサイズ）を求め、求めた受信データサイズを受信データライトカウンタ５４７にセットする。受信データライトカウンタ５４７は、受信データレジスタ５２６から受信データバッファ５８２にデータが書き込まれる毎にカウンタ値をデクリメントし、カウンタ値が”０”になったときに、受信完了信号ＲＣＰＬＴを出力する。
【００５２】
また、送信データライトカウンタ５４８および送信データリードカウンタ５４９は、送信サイズレジスタ５９６を使用せずに、データ列の送信の完了を判定してもよい。例えば、ＫＣＳデータ処理回路５４は、コマンドに続いてノード１０に送信するデータ列のサイズ（送信データサイズ）を送信データライトカウンタ５４８および送信データリードカウンタ５４９にセットする。送信データライトカウンタ５４８は、送信データバッファ５８４から送信データレジスタ５２８にデータが書き込まれる毎にカウンタ値をデクリメントし、カウンタ値が”０”になったときに、送信完了信号ＴＣＰＬＴ１を出力する。送信データリードカウンタ５４９は、送信データレジスタ５２８に格納されたデータがノード１０により読み出される毎にカウンタ値をデクリメントし、カウンタ値が”０”になったときに、送信完了信号ＴＣＰＬＴ２を出力する。
【００５３】
割り込み発行制御部５９２は、アボードフラグ、受信完了フラグ、送信完了フラグまたはその他異常フラグのいずれかがセットされたことに応答して、割り込みレジスタ６０にＫＣＳ割り込みを発行する。割り込みレジスタ６０は、ＫＣＳ割り込みを受信した場合、ＫＣＳ割り込みをＢＭＣ４０の割り込みスレッド４２に通知する。
【００５４】
なお、ＫＣＳ割り込みの発行の優先順は、アボードフラグおよびその他異常フラグが、受信完了フラグおよび送信完了フラグよりも高く設定されてもよい。この場合、アボードフラグがセットされ、アボードフラグに対応する割り込み処理が実行されると、受信完了フラグまたは送信完了フラグに応答する割り込みの発行はマスクされる。一方、受信完了フラグがセットされ、受信完了フラグに対応する割り込み処理が実行されても、アボードフラグまたはその他異常フラグがセットされた場合、割り込みレジスタ６０への割り込みが発行される。
【００５５】
なお、例えば、受信完了フラグのセットに応答して割り込み処理が実行されているときに、受信完了フラグが再度セットされた場合、再度セットされた受信完了フラグに対応する割り込みの発行はマスクされる。このように、割り込み発行制御部５９２は、割り込みの発行のマスク機能を有する。
【００５６】
受信データバッファ５８２は、受信データレジスタ５２６から転送されたデータを保持する。受信データバッファ５８２に保持されたデータ列（受信データ）は、ＢＭＣ４０により読み出される。例えば、受信データバッファ５８２のサイズは、ノード１０から受信する受信データ列の最大サイズ以上（複数バイト）である。
【００５７】
送信データバッファ５８４は、ＢＭＣ４０によりデータ列が書き込まれる。送信データバッファ５８４に保持されたデータ列（送信データ）は、送信データレジスタ５２８に１バイトずつ転送され、ノード１０により読み出される。例えば、送信データバッファ５８４のサイズは、ノード１０に送信する送信データ列の最大サイズ以上（複数バイト）である。
【００５８】
受信サイズレジスタ５９４は、コマンドとともにノード１０から送信されるデータ列のサイズである受信データサイズが格納される。送信サイズレジスタ５９６は、コマンドとともにノード１０に送信するデータ列のサイズである送信データサイズが格納される。
【００５９】
図４は、図３のコマンドレジスタ５２２に書き込まれるコマンドの一例を示す。図４に示すコマンドは、ＩＰＭＩ仕様におけるＫＣＳ制御コードと同様である。例えば、ノード１０は、制御装置２０にデータを転送する場合、コマンドレジスタ５２２にＷＲＩＴＥ＿ＳＴＡＲＴ（コマンドコード＝６１ｈ）を書き込んでトランザクションを開始した後、データを受信データレジスタ５２６に１バイトずつ書き込む。なお、コマンドコードの末尾の”ｈ”は、１６進数を示す。そして、最終のデータを受信データレジスタ５２６に書き込んだ後、コマンドレジスタ５２２にＷＲＩＴＥ＿ＥＮＤ（コマンドコード＝６２ｈ）を書き込み、トランザクションを終了する。
【００６０】
また、ノード１０は、コマンドレジスタ５２２にＷＲＩＴＥ＿ＳＴＡＲＴを書き込んでからＷＲＩＴＥ＿ＥＮＤを書き込むまでに、通信異常等を検出した場合、コマンドレジスタ５２２にＡＢＯＲＴ（アボートコマンド；コマンドコード＝６０ｈ）を書き込む。アボートコマンドを受信した制御装置２０は、後述するアボート処理を実行する。なお、例えば、コマンドコードは、いずれも１バイトである。
【００６１】
図５は、図３の受信データレジスタ５２６および送信データレジスタ５２８に格納されるデータフォーマットの一例を示す。図５に示すリクエストデータフォーマットは、ＩＰＭＩ仕様におけるリクエストメッセージフォーマットと同様である。図５に示すレスポンスデータフォーマットは、ＩＰＭＩ仕様におけるレスポンスメッセージフォーマットと同様である。
【００６２】
ノード１０から受信データレジスタ５２６に書き込まれるリクエストデータフォーマットは、１バイトのネットワーク機能コードＮｅｔＦｎ／ＬＵＮ（Logical  Unit  Number）と、１バイトのコマンドＣｍｄと、０バイト以上のデータＤａｔａとを含む。ＢＭＣ４０から送信データレジスタ５２８に書き込まれるレスポンスデータフォーマットは、１バイトのＮｅｔＦｎ／ＬＵＮと、１バイトのＣｍｄと、１バイトの完了コード（Completion  Code）と、０バイト以上のデータＤａｔａとを含む。
【００６３】
図６は、図２のノード１０が稼働状態を通知する場合のデータフォーマットの一例を示す。例えば、ノード１０は、稼働状態を通知する場合、ＮｅｔＦｎ／ＬＵＮを３０ｈに設定し、Ｃｍｄを００ｈに設定し、３バイト目のＤａｔａに稼働状態を示すコードを設定し、４バイト目のＤａｔａに付加情報を設定する。Ｄａｔａの５バイト目と６バイト目は、リザーブ領域である。図６に示す例では、ノード１０は、３バイト目のＤａｔａに応じて、８種類の稼働状態を通知することができる。また、ノード１０は、４バイト目の付加情報により、シャットダウンが通常のシャットダウンなのか異常なシャットダウンなのかを通知することができる。
【００６４】
稼働状態の通知を受けたＢＭＣ４０は、レスポンスにおいて、ＮｅｔＦｎ／ＬＵＮおよびＣｍｄを、リクエストと同じ３０ｈと００ｈにそれぞれ設定し、正常のレスポンスの場合、３バイト目のＤａｔａに正常終了を示す００ｈを設定する。稼働状態の通知に対するレスポンスでは、Ｄａｔａ領域は使用されない。
【００６５】
図７は、図６のデータフォーマットにおいて、ノードの稼働状態を通知するリクエストデータとそのレスポンスデータの一例を示す。例えば、ノード１０からＢＭＣ４０に、ノード１０のＯＳが稼働状態であることを通知する場合、ＮｅｔＦｎ／ＬＵＮおよびＣｍｄの３０ｈ、００ｈに続き、受信データレジスタ５２６に０Ａｈが書き込まれる。レスポンスデータの内容は、図６と同じである。
【００６６】
図８は、図２のノード１０がシステムの時刻情報を取得する場合のデータフォーマットの一例を示す。例えば、ノード１０は、システム時刻情報を取得する場合、ＮｅｔＦｎ／ＬＵＮを３１ｈに設定し、Ｃｍｄを０１ｈに設定する。３バイト目以降のＤａｔａは存在しない。
【００６７】
システム時刻情報の取得の通知を受けたＢＭＣ４０は、レスポンスにおいて、ＮｅｔＦｎ／ＬＵＮおよびＣｍｄを、リクエストと同じ３１ｈと０１ｈにそれぞれ設定し、正常のレスポンスの場合、３バイト目のＤａｔａに正常終了を示す００ｈを設定する。また、４バイト目から７バイト目の４バイトにシステム時刻を示すデータを設定する。例えば、システム時刻は、ＵＴＣ（Universal  Time  Coordinated）が１９７０年１月１日からの累積秒として示される。
【００６８】
図９は、図８のデータフォーマットにおいて、システム時刻情報を取得するリクエストとそのレスポンスの一例を示す。リクエストデータの内容は、図８と同じである。また、レスポンスデータの最初の３バイトは、図８と同じである。例えば、レスポンスデータの４バイト目から７バイト目には、システム時刻を示す５ｃｈ、ｂｄｈ、８５ｈ、ｅ５ｈがそれぞれ書き込まれる。
【００６９】
図１０は、図３のＫＣＳ処理部５０の動作の一例を示す。まず、動作ＯＰ１０において、ＫＣＳ処理部５０は、ノード１０からのコマンドを待ち、ノード１０からコマンドを受信した場合、動作ＯＰ２０に移行する。動作ＯＰ２０において、ＫＣＳデータ処理回路５４は、コマンドがアボートコマンドか否かを比較部５４１により判定する。
【００７０】
コマンドがアボートコマンドの場合、動作ＯＰ４０に移行され、以下で説明するように、アボート処理が実行され、アボード処理の完了後、動作ＯＰ１０のコマンド待ちに戻る。
【００７１】
動作ＯＰ４０において、立ち上がり検出部５４３は、ＫＣＳサポートステータスレジスタ５６のアボートフラグをセットする。次に、動作ＯＰ４１において、割り込み発行制御部５９２は、アボートフラグのセットに応答して割り込みレジスタ６０に割り込み要求をセットすることで、ＢＭＣ４０に割り込みを発行し、動作ＯＰ４２に移行する。
【００７２】
動作ＯＰ４２において、例えば、割り込み発行制御部５９２は、割り込みレジスタ６０への割り込みの発行に基づいて、アボートフラグをリセットする。次に、動作ＯＰ４３において、ＫＣＳデータ処理回路５４は、ＢＭＣ４０によるアボート処理の完了を待ち、アボート処理が完了した場合、動作ＯＰ１０に戻る。
【００７３】
一方、動作ＯＰ２０でコマンドがアボートコマンドでない場合、動作ＯＰ３０に移行され、ＫＣＳデータ処理回路５４は、その他異常が発生したか否かを判定する。その他異常が発生した場合、動作ＯＰ３１において、その他異常検出部５４６は、ＫＣＳサポートステータスレジスタ５６のその他異常フラグをセットする。次に、動作ＯＰ３２において、割り込み発行制御部５９２は、その他異常フラグのセットに応答して割り込みレジスタ６０に割り込み要求をセットすることで、ＢＭＣ４０に割り込みを発行する。次に、動作ＯＰ３３において、例えば、割り込み発行制御部５９２は、割り込みレジスタ６０への割り込みの発行に基づいて、その他異常フラグをリセットし、動作ＯＰ７０に移行する。
【００７４】
一方、アボートもその他異常も発生していない場合、動作ＯＰ５０において、ＫＣＳデータ処理回路５４は、ノード１０からのデータ列の受信処理を実行し、データ列の受信処理の完了後、動作を動作ＯＰ７０に移行する。動作ＯＰ５０の動作の例は、図１１に示す。
【００７５】
動作ＯＰ７０において、ＫＣＳデータ処理回路５４は、割り込み処理の完了に基づいてノード１０に送信される応答データの送信確認処理を実行した後、動作ＯＰ１０のコマンド待ちに戻る。動作ＯＰ７０の動作の例は、図１２に示す。
【００７６】
図１１は、図１０の動作ＯＰ５０の一例を示す。まず、動作ＯＰ５１において、ＫＣＳ処理部５０は、受信サイズレジスタ５９４に受信データサイズをセットする。次に、動作ＯＰ５２において、ＫＣＳ処理部５０は、ノード１０からのデータが受信データレジスタ５２６に格納されるのを待つ。受信データレジスタ５２６にデータが格納された場合、動作ＯＰ５３において、ＫＣＳ処理部５０は、受信データレジスタ５２６が保持するデータを受信データバッファ５８２に格納する。次に、動作ＯＰ５４において、ＫＣＳデータ処理回路５４は、受信データライトカウンタ５４７のカウンタ値を更新する。
【００７７】
次に、動作ＯＰ５５において、ＫＣＳデータ処理回路５４は、受信データライトカウンタ５４７のカウンタ値に基づいて、受信データサイズ分のデータ列をノード１０から受信したか否かを判定する。受信データサイズ分のデータ列をノード１０から受信していない場合、動作ＯＰ５２において、ＫＣＳ処理部５０は、次のデータの受信を待つ。受信データサイズ分のデータ列をノード１０から受信した場合、動作ＯＰ５６において、受信完了検出部５４４は、ＫＣＳサポートステータスレジスタ５６の受信完了フラグをセットする。
【００７８】
次に、動作ＯＰ５７において、割り込み発行制御部５９２は、受信完了フラグのセットに応答して割り込みレジスタ６０に割り込み要求をセットすることで、ＢＭＣ４０に割り込みを発行する。次に、動作ＯＰ５８において、例えば、割り込み発行制御部５９２は、割り込みレジスタ６０への割り込みの発行に基づいて、受信完了フラグをリセットし、図１０に示した動作ＯＰ７０に移行する。
【００７９】
図１２は、図１０の動作ＯＰ７０の一例を示す。まず、動作ＯＰ７１において、ＫＣＳ処理部５０は、送信サイズレジスタ５９６に送信データサイズをセットする。次に、動作ＯＰ７２において、ＫＣＳデータ処理回路５４は、送信データバッファ５８４が保持するデータ列のうちの１バイトを、送信データレジスタ５２８にセットする。次に、ＫＣＳデータ処理回路５４は、送信データライトカウンタ５４８のカウンタ値を更新する。
【００８０】
次に、動作ＯＰ７３において、ＫＣＳデータ処理回路５４は、送信データレジスタ５２８に保持されたデータをノード１０が読み出すまで待つ。そして、ノード１０がデータを読み出した場合、動作ＯＰ７５において、ＫＣＳデータ処理回路５４は、送信データリードカウンタ５４９のカウンタ値を更新する。
【００８１】
次に、動作ＯＰ７６において、ＫＣＳデータ処理回路５４は、送信データライトカウンタ５４８のカウンタ値と送信データリードカウンタ５４９のカウンタ値とに基づいて、送信データサイズ分のデータ列をノード１０に送信したか否かを判定する。送信データサイズ分のデータ列をノード１０に送信していない場合、動作ＯＰ７４に戻る。送信データサイズ分のデータ列をノード１０に送信した場合、動作ＯＰ７７において、ＫＣＳデータ処理回路５４は、ＫＣＳサポートステータスレジスタ５６の送信完了フラグをセットする。
【００８２】
次に、動作ＯＰ７８において、割り込み発行制御部５９２は、送信完了フラグのセットに応答して割り込みレジスタ６０に割り込み要求をセットすることで、ＢＭＣ４０に割り込みを発行する。次に、動作ＯＰ７９において、例えば、割り込み発行制御部５９２は、割り込みレジスタ６０への割り込みの発行に基づいて、送信完了フラグをリセットし、図１０に示した動作ＯＰ１０に戻る。
【００８３】
図１３は、図２のＢＭＣ４０によるＫＣＳ割り込み処理の一例を示す。例えば、図１３に示す処理は、ＢＭＣ４０が実行するファームウェアより実行される。
【００８４】
まず、ステップＳ１１において、ＢＭＣ４０は、制御装置２０等からの割り込みを待つ。割り込みを受信した場合、ステップＳ１２において、ＢＭＣ４０は、割り込みがＫＣＳ割り込みか否かを判定し、ＫＣＳ割り込みの場合、処理をステップＳ１３に移行し、ＫＣＳ割り込みでない場合、処理をステップＳ２０に移行する。
【００８５】
ステップＳ１３において、ＢＭＣ４０は、ＫＣＳ割り込みがアボートによる割り込みか否かを判定し、アボートによる割り込みの場合、処理をステップＳ１４に移行し、アボートによる割り込みでない場合、処理をステップＳ１５に移行する。ステップＳ１４において、ＢＭＣ４０は、アボートによる割り込みに対する処理であるアボート処理を実行し、処理をステップＳ１１に戻す。
【００８６】
ステップＳ１５において、ＢＭＣ４０は、受信サイズレジスタ５９４から受信データサイズを取得する。次に、ステップＳ１６において、ＢＭＣ４０は、受信データバッファ５８２から受信データサイズ分のデータ列を読み出す。次に、ステップＳ１７において、ＢＭＣ４０は、割り込みに対する応答処理を実行する。例えば、ＢＭＣ４０は、応答処理において、ノード１０に応答する送信データ列を送信データバッファ５８４に格納する。
【００８７】
次に、ステップＳ１８において、ＢＭＣ４０は、送信データバッファ５８４に格納したデータ列がノード１０に送信されたことに基づいて発行されるＫＣＳ割り込みを待ち、ＫＣＳ割り込みを受信した場合、処理をステップＳ１９に移行する。ステップＳ１９において、ＢＭＣ４０は、ＫＣＳ割り込みの受信に基づいてノード１０への応答完了を検出し、処理をステップＳ１１に戻す。一方、ステップＳ２０において、ＢＭＣ４０は、ＫＣＳ割り込み以外の割り込みに対する割り込み処理を実行し、処理をステップＳ１１に戻す。
【００８８】
以上、図２から図１３に示す実施形態においても、図１に示す実施形態と同様の効果を得ることができる。例えば、ＫＣＳ処理部５０は、アボートコマンドを受信しない場合、コマンドに続くデータ列が受信データバッファ５８２に転送されたことに基づいて、ＫＣＳ割り込みを発行する。このため、データ列の各データを受信データレジスタ５２６で受信する毎にＫＣＳ割り込みを発行する場合に比べて、ＢＭＣ４０に発行する割り込みの回数を削減することができる。これにより、割り込みに基づいて実行される割り込み処理の回数を削減することができ、ＢＭＣ４０に掛かる負荷を軽減することができる。この結果、より多くのノード１の制御を制御装置２０に実行させることが可能になる。
【００８９】
さらに、図２から図１３に示す実施形態では、受信データバッファ５８２への受信データ列の転送の完了に合わせて、割り込みを発行することができる。これにより、受信データバッファ５８２への受信データ列の転送が完了する前に割り込みが発行されることを抑止でき、受信データバッファ５８２への受信データ列の転送が完了してから割り込みが発行されるまでの時間が掛かることを抑止できる。したがって、受信データ列の転送の完了に基づいて割り込みを発行する場合に、割り込み処理の効率が低下することを抑止することができる。
【００９０】
送信データライトカウンタ５４８および送信データリードカウンタ５４９により、送信データ列に含まれるデータを１つずつカウントすることで、送信データ列のノード１０への送信の完了に合わせて、割り込みを発行することができる。これにより、ノード１０への送信データ列の送信中に割り込みが発生されることを抑止でき、ノード１０への送信データ列の送信が完了してから割り込みが発行されるまでの時間が掛かることを抑止できる。したがって、送信データ列の送信の完了に基づいて割り込みを発行する場合に、割り込み処理の効率が低下することを抑止することができる。
【００９１】
アボートコマンドを受信した場合に、受信データ列の受信完了に伴う割り込みの発行を抑止することで、ＢＭＣ４０により無駄な割り込み処理が実行されることを抑止することができる。また、アボートコマンドを受信した場合に、送信データ列の送信完了に伴う割り込みの発行を抑止することで、ＢＭＣ４０により無駄な割り込み処理が実行されることを抑止することができる。
【００９２】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【００９３】
１  ノード
２  制御装置
３  処理部
４  受信データレジスタ
５  受信データバッファ
６  受信完了検出部
７  異常検出部
８  割り込み発行部
９  割り込み処理部
１０  ノード
２０  制御装置
３０  制御部
４０  ＢＭＣ
４２  割り込みスレッド
４４  ＫＣＳスレッド
５０  ＫＣＳ処理部
５２  ＫＣＳインターフェースレジスタ
５４  ＫＣＳデータ処理回路
５６  ＫＣＳサポートステータスレジスタ
５８  ＫＣＳサポートデータバッファ
６０  割り込みレジスタ
１００、１００Ａ  並列処理装置
５２２  コマンドレジスタ
５２４  ステータスレジスタ
５２６  受信データレジスタ
５２８  送信データレジスタ
５４１  比較部
５４２  アンド部
５４３  立ち上がり検出部
５４４  受信完了検出部
５４５  送信完了検出部
５４６  その他異常検出部
５４７  受信データライトカウンタ
５４８  送信データライトカウンタ
５４９  送信データリードカウンタ
５８２  受信データバッファ
５８４  送信データバッファ
５９４  受信サイズレジスタ
５９６  送信サイズレジスタ
【図１】
2020198044.tif 000003
【図２】
2020198044.tif 000004
【図３】
2020198044.tif 000005
【図４】
2020198044.tif 000006
【図５】
2020198044.tif 000007
【図６】
2020198044.tif 000008
【図７】
2020198044.tif 000009
【図８】
2020198044.tif 000010
【図９】
2020198044.tif 000011
【図１０】
2020198044.tif 000012
【図１１】
2020198044.tif 000013
【図１２】
2020198044.tif 000014
【図１３】
2020198044.tif 000015