(57)【要約】【課題】プラガブルデバイスの抜去により通信が遮断される場合でも、カーネルパニックの発生を防止して伝送装置を適正な動作状態に維持する。【解決手段】プラガブルデバイスを備えた伝送装置は、プロセッサを有する装置本体と、前記装置本体に着脱可能に接続された１以上のプラガブルデバイスと、を有し、前記プラガブルデバイスは、前記装置本体に対して自律的に制御要求を出力するマスター回路を有し、前記装置本体は、前記制御要求に基づく処理を行って処理結果を前記プラガブルデバイスに供給する。【選択図】図６
2019095842.tif 000002
【特許請求の範囲】
【請求項１】
プラガブルデバイスを備えた伝送装置であって、
プロセッサを有する装置本体と、
前記装置本体に着脱可能に接続された１以上のプラガブルデバイスと、
を有し、
前記プラガブルデバイスは、前記装置本体に対して自律的に制御要求を出力するマスター回路を有し、
前記装置本体は、前記制御要求に基づく処理を行って処理結果を前記プラガブルデバイスに供給することを特徴とする伝送装置。
【請求項２】
前記装置本体は、前記プラガブルデバイスからの第１要求と、前記プロセッサからの第２要求の競合を調整する調停回路を有し、
前記第１要求と前記第２要求は調停された順序で処理されることを特徴とする請求項１に記載の伝送装置。
【請求項３】
前記装置本体は、前記プラガブルデバイスと前記プロセッサとによって使用される共有メモリを有し、
前記調停回路は、前記プラガブルデバイスから前記共有メモリへの第１のアクセス要求と、前記プロセッサから前記共有メモリへの第２のアクセス要求の競合を調停することを特徴とする請求項２に記載の伝送装置。
【請求項４】
前記第１のアクセス要求は、前記共有メモリへのライト要求またはリード要求であり、
前記マスター回路は、前記プラガブルデバイスにおいて前記ライト要求の出力と前記リード要求の出力が競合しないように調停または制御する回路を有することを特徴とする請求項３に記載の伝送装置。
【請求項５】
伝送装置で着脱可能に用いられるプラガブルデバイスであって、
前記伝送装置の装置本体との間で制御データの送受信を行う通信インタフェースと、
前記装置本体に対して自律的に制御要求を出力し、前記装置本体から受け取る情報を処理するマスター回路を有し、
前記マスター回路は、前記装置本体への前記制御要求の出力タイミングを制御または調停する回路を有することを特徴とするプラガブルデバイス。
【請求項６】
前記制御要求は、前記装置本体のメモリに第１データを書き込むライト要求、または前記メモリから第２データを読み出すリード要求であることを特徴とする請求項５に記載のプラガブルデバイス。
【請求項７】
プラガルデバイスを備えた伝送装置における通信制御方法において、
前記伝送装置の装置本体にプラガブルデバイスを着脱可能に接続し、
前記プラガブルデバイスから前記装置本体に対して制御要求を出力し、
前記装置本体で、前記制御要求に基づく処理を行って処理結果を前記プラガブルデバイスに供給する、
ことを特徴とする通信制御方法。
【請求項８】
前記装置本体で、前記プラガブルデバイスからの第１要求と、前記装置本体のプロセッサで生成される第２要求の間の競合を調整し、
前記第１要求と前記第２要求を調停された順序で処理することを特徴とする請求項７に記載の通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、伝送装置、プラガブルデバイス、及び通信制御方法に関する。
【背景技術】
【０００２】
光伝送システムにおいて、トランスポート（伝送）、波長多重（ＷＤＭ：Wavelength  Division  Multiplexing）、スイッチ、アクセス等の機能ごとに機器を分割したディスアグリゲーション構成が採用されている。機能ごとに分割された機器（「ブレード」と呼ばれることがある）を組み合わせることで、機能追加や性能向上を迅速に行うことができる。
【０００３】
ディスアグリゲーション構成の伝送システムでは、機能の拡張を可能にするために、カードあるいはパッケージモジュールをプラガブルにしている。プラガブルなモジュールはプラグインユニット（ＰＩＵ：plug-in  unit）と呼ばれ、複数のＰＩＵがメインボードに接続されている。図１に示すように、メインボードと各ＰＩＵの間の通信は、PCIe等の高速シリアル通信インタフェースを介して行われる。メインボードのＣＰＵがマスターとして機能し、各ＰＩＵとの通信を制御している。ＰＩＵのＣＰＬＤ（Complex  Programmable  Logic  Device）、ＦＰＧＡ（Field-Programmable  Gate  Array）などのロジックデバイスはスレーブとして動作する。
【０００４】
メインボードとＰＩＵの間の通信は、ＰＩＵの抜去などによって途切れることがある。PCIeポートの先にＰＩＵが接続されていない状態で通信が行われた場合、もしくは通信の途中でＰＩＵが抜去された場合、ＣＰＵはＰＩＵとの通信で期待する信号以外の信号を受信するか、または何も受信しない。図１の（Ｂ）に示すように、ＣＰＵがPCIeスイッチからＰＩＵ＃５にリクエストパケットを送信しても、ＰＩＵ＃５が抜去されると通信が遮断され、期待するコンプリージョンパケットを受け取ることができない。ＰＩＵからの応答が一定時間得られない場合、ＣＰＵのオペレーティングシステム（ＯＳ）はカーネルパニックを引き起こし、メインボードの動作が停止する。
【０００５】
これを防止するために、ＰＩＵにスイッチを搭載し、ＰＩＵの抜去前にオペレータがスイッチを押下してメインボード側に抜去を通知することで、抜去前にPCIe通信を停止する措置がとられている。なお、被監視装置の個別処理部と共通処理部の間に高速シリアルバスを用い、共通処理部でシリアルバスマスタコントローラが活線挿抜を含む制御を行う技術が知られている（たとえば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−５０００１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＰＩＵのスイッチ押下によりＰＩＵの抜去を事前にメインボードに通知する構成を用いても、不適切なタイミング（PCIe通信の停止処理が完了する前など）でＰＩＵが抜去されると、カーネルパニックが発生する。カーネルはＯＳの中核となる部分であり、カーネルパニックによりＯＳの動作が完全に停止する。また、カーネルパニック発生のトリガとなるマシンチェック例外（ＣＰＵによって生成されるエラー）をＯＳやカーネルにおいてマスクまたは無効にすることはできない。
【０００８】
本発明は、プラガブルデバイスの抜去により通信が遮断される場合でも、カーネルパニックの発生を防止して伝送装置を適正な動作状態に維持することのできる技術の提供を目的とする。
【課題を解決するための手段】
【０００９】
一つの態様では、プラガブルデバイスを備えた伝送装置において、
プロセッサを有する装置本体と、
前記装置本体に着脱可能に接続された１以上のプラガブルデバイスと、
を有し、
前記プラガブルデバイスは、前記装置本体に対して自律的に制御要求を出力するマスター回路を有し、
前記装置本体は、前記制御要求に基づく処理を行って処理結果を前記プラガブルデバイスに供給する。
【発明の効果】
【００１０】
プラガブルデバイスの抜去により通信が遮断される場合でも、カーネルパニックの発生を防止して伝送装置の適正な動作状態を維持することができる。
【図面の簡単な説明】
【００１１】
【図１】従来の伝送システムを示す図である。
【図２】メインボードをマスターとする従来のプラガブル構成で、ＰＩＵに抜去通知用のスイッチを設けたときの構成を示す。
【図３】図２の動作で生じるカーネルパニックを説明するシーケンス図である。
【図４】本発明の基本原理を説明する図である。
【図５】実施形態の伝送装置が適用される光通信システムの概略図である。
【図６】第１実施形態の伝送装置の概略図である。
【図７】第１実施形態の伝送装置で行われる通信制御処理のフローチャートであり、ＰＩＵからメインボードに状態値を書き込むときの制御フローである。
【図８】ＰＩＵがメインボードから制御値を読み出すときの制御フローである。
【図９】第１実施形態の伝送装置で行われる通信制御のうち、ＰＩＵからメインボードへのライト要求に着目したシーケンス図である。
【図１０】第１実施形態の伝送装置で行われる通信制御のうち、ＰＩＵからメインボードに対するリード要求に着目したシーケンス図である
【図１１】第２実施形態の伝送装置の概略図である。
【図１２】第２実施形態の伝送装置で行われる通信制御処理のフローチャートであり、ＰＩＵからメインボードに状態値を書き込むときの制御フローである。
【図１３】ＰＩＵがメインボードから制御値を読み出すときの制御フローである。
【図１４】第２実施形態の伝送装置で行われる通信制御のうち、ＰＩＵからメインボードへのライト要求に着目したシーケンス図である。
【図１５】第２実施形態の伝送装置で行われる通信制御のうち、ＰＩＵからメインボードに対するリード要求に着目したシーケンス図である
【発明を実施するための形態】
【００１２】
実施形態では、カーネルパニックの発生を防止して、伝送装置の本体であるブレードまたはメインボードを確実に動作させるために、プラガブルデバイスをマスターとし、メインボードをスレーブとして用いる。これは、従来の通信制御関係とは逆の構成である。
【００１３】
実施形態の構成と制御方法を説明する前に、図２及び図３を参照して、プラガブルデバイスの抜去によるカーネルパニック発生の問題を説明する。
【００１４】
図２は、メインボードをマスターとする従来のプラガブル構成で、ＰＩＵ１０００に抜去通知用のスイッチ１００３を設けたときの構成を示す。ＰＩＵ１０００のＣＰＬＤ１００１は、メインボード２０００のＣＰＵ２００１の制御の下で、周辺デバイス１００２のステータス情報をメインボード２０００に送信し、メインボード２０００から受け取る制御値を設定する。周辺デバイス１００２は、たとえば、ＰＩＵ１０００に搭載される光モジュールの温度センサ、ジッター減衰器などである。周辺デバイス１００２の状態を表わす状態値はステータスレジスタ（群）１０１１に一時的に保持され、制御値はコントロールレジスタ（群）１０１２に一時的に保持される。
【００１５】
各ＰＩＵ１０００のＣＰＬＤ１００１は、PCIeなどの高速通信インタフェース１０１３でＣＰＵ２００１と通信する。メインボード２０００と複数のＰＩＵの間の通信は、ＣＰＵ２００１の制御の下でPCIeスイッチ２００３によって切り替えられる。
【００１６】
ＰＩＵ１０００で抜去通知用のスイッチ１００３が押されると、押下状態がステータスレジスタ１０１１に記録され、ＣＰＬＤ１００１からメインボード２０００のＣＰＬＤ２００４に「Remove  Ready」通知が送られる。ＣＰＬＤ２００４は抜去の通知をＣＰＵコア２０１２に通知する。ＣＰＵコア２０１２は、PCIeインタフェース２０１１を制御して通信停止処理を行い、メモリ２００２にデータをキャッシュ、ロード、あるいはストアして抜去に備える。ＰＩＵ１０００は抜去の準備が完了すると、抜去可能の通知をオペレータに出力する。スイッチ１００３が押されてから実際にＰＩＵ１０００が抜去されるまで時間はかかるが、この動作が正常に行われる場合は、カーネルパニックは生じない。
【００１７】
図３は、図２で抜去準備完了前にＰＩＵ１０００が抜かれたときに生じるカーネルパニックを説明するシーケンス図である。ここでプロセスＰ１００１、Ｐ１００２、Ｐ１００３はパラレルに行われている。
【００１８】
Ｐ１００１で、ＰＩＵ１０００とメインボード２０００のＣＰＬＤ２００４の間で、挿抜状態が「挿入」として確認されている。Ｐ１００２で、メインボード２０００のＯＳとＣＰＬＤ２００４（ハードウエア）の間で、ＰＩＵの挿抜状態が「挿入」として確認されている。
【００１９】
Ｐ１００３で、ＯＳはＣＰＵ２００１にリード命令を出す（Ｓ３０１）。リード命令は、カーネルとドライバを介してＣＰＵコア２０１２に入力される。ＣＰＵ２００１のPCIeインタフェース２０１１でリード要求のパケットが生成され（Ｓ３０２）、ＰＩＵ１０００に送信される（Ｓ３０３）。ＰＩＵ１０００のＣＰＬＤ１００１は、PCIeインタフェース１０１３でリクエストパケットを受信すると、レジスタ１０１１から状態値を読み出す（Ｓ３０４）。このとき、抜去通知用のスイッチ１００３が押され（Ｓ３０５）、抜去準備完了を待たずにＰＩＵ１０００が抜去されると（Ｓ３０６）、状態値をメインボード２０００に送ることができない。
【００２０】
メインボード１０００のＣＰＵのPCIeインタフェース２０１１は、リクエストに対する応答がないため、タイムアウト処理を行って（Ｓ３０７）、マシンチェック例外（エラー）を発生する。マシンチェック例外がＯＳに到達すると、ＯＳは上位のプロセスを削除し（Ｓ３０８）、動作が完全に停止する（カーネルパニック）。
【００２１】
ＯＳやカーネルは、カーネルパニック発生のトリガとなるマシンチェック例外をマスクまたは無効にすることができない。
【００２２】
図４は、本発明の基本原理を説明する図である。カーネルパニックは、伝送装置の本体であるメインボードのＣＰＵが送信したリクエストパケットに対するコンプリージョンパケットが返ってこないことにより引き起こされる。そこで、実施形態では、メインボード側のＣＰＵからリクエスト（ライト要求、リード要求を含む）を行わず、代わりに、ＰＩＵからメインボードに所定のタイミングでリクエストを送信する。
【００２３】
図４において、各ＰＩＵ１０のＣＰＬＤ１１はマスターとして機能し、所定のタイミングでリクエストパケットをメインボード２０に送信する。メインボード２０のＣＰＵ２１はスレーブとして機能し、メモリ２２を参照して、リクエストパケットで要求される処理を行い、コンプリージョンパケットをＰＩＵ１０に送信する。
【００２４】
ＰＩＵ１０からメインボード２０へのリクエストは、複数種類がある。たとえば、ＰＩＵ１０のステータスレジスタの値をメインボード２０のメモリ２２に書き込むライト要求と、メインボード２０のメモリ２２の値をＰＩＵ１０のコントロールレジスタに転送するリード要求である。ＰＩＵ１０をマスターとして動作させるためには、ＰＩＵ１０で複数の要求が競合しないように、調停または制御する構成が求められる。メインボード２０でも、ＰＩＵ１０からのメモリアクセス要求と、ＣＰＵ２１からのメモリアクセス要求が競合しないように、調停する構成が求められる。これらの具体的な構成については、以下で詳細に説明する。
【００２５】
図５は、実施形態の伝送装置が適用される光通信システム１の概略図である。光通信システム１は、複数のネットワーク機器２ａ、２ｂ、２ｃ（以下、適宜「ネットワーク機器２」と総称する）で形成される光ネットワーク４をと含む。少なくとも一部のネットワーク機器２はルータ３（ルータ３ａ、３ｃ等を含む）に接続され、ルータ３を経由してクライアント装置の間でデータの送受信が行われる。
【００２６】
ネットワーク機器２は、複数の伝送装置５を収容する。伝送装置５は、たとえばブレード型の装置である。伝送装置５は、装置本体であるメインボード２０と、メインボード２０に着脱可能に接続されるＰＩＵ１０を有する。ＰＩＵ１０の挿入時は、ＰＩＵ１０のコネクタ１２１と、メインボード２０のコネクタ２０１が電気的に接続される。ＰＩＵ１０の制御系１２２と、メインボード２０のＣＰＵ２１とは、PCIeなどの高速シリアルインタフェースで通信し、アラームの転送、デバイス設定等が行われる。制御系１２２は、ＣＰＬＤ、ＦＰＧＡなどのプラガブルロジックデバイスで実現される。実施形態では、ＰＩＵ１０の制御系１２２が、PCIe通信のイニシャチブをとり、ＰＩＵ１０が自発的に制御要求をメインボード２０に出力する。
【００２７】
ＰＩＵ１０の主信号系１２３は、たとえばデジタル信号プロセッサ（ＤＳＰ）であり、ルータ３を介してクライアント信号の送受信を行い、光ネットワーク４とネットワーク信号の送受信を行う。以下で伝送装置５の具体的な構成と手法を説明する。
【００２８】
＜第１実施形態＞
図６は、第１実施形態の伝送装置５Ａの概略図である。伝送装置５Ａは、装置本体であるメインボード２０と、メインボード２０に着脱可能に接続される１以上のプラガブルデバイス（たとえばＰＩＵ１０Ａ）を有する。従来構成と異なり、メインボード２０とＰＩＵ１０Ａの間の制御系の通信で、ＰＩＵ１０Ａがマスター、メインボード２０がスレーブとして動作する。ＰＩＵ１０Ａには、抜去通知スイッチを設けなくてもよい。
【００２９】
ＰＩＵ１０Ａは、主信号の処理を行うデジタル信号処理系（図５参照）と別に、制御系の処理を行うロジックデバイスとしてＣＰＬＤ１１を有する。ＣＰＬＤ１１は、PCIeインタフェース１１３と、マスター回路１０１Ａと、ステータスレジスタ（群）１１１と、コントロールレジスタ（群）１１２を有する。PCIeインタフェース１１３は、メインボード２０との間の通信インタフェースの一例である。
【００３０】
マスター回路１０１Ａは、レジスタリード回路１０３、レジスタライト回路１０４、及び調停回路１０５を有する。調停回路１０５は、PCIeインタフェース１１３と、レジスタリード回路１０３及びレジスタライト回路１０４の間に接続され、マスター回路１０１ＡからPCIeインタフェース１１３への要求の競合を防止する。
【００３１】
レジスタリード回路１０３は、自律的なタイミングでステータスレジスタ（群）１１１に保持されている状態値を読み込む。状態値の読み込みタイミングは、たとえば、周期的なタイミングである。レジスタリード回路１０３は、読み込んだ状態値（ステータス情報）とともに、メインボード２０に対するライト要求を調停回路１０５に出力する。
【００３２】
レジスタライト回路１０４は、自律的なタイミングで、メインボード２０に対するリード要求を調停回路１０５に出力する。自律的なタイミングは、たとえば周期的なタイミングである。レジスタライト回路１０４は、ＰＩＵ１０Ａが送信したリード要求に対するメインボード２０からの応答を調停回路１０５から受け取り、受信データをコントロールレジスタ（群）１１２に書き込む。レジスタリード回路１０３による読み込みの周期と、レジスタライト回路１０４による書き込みの周期は、同じであっても異なっていてもよい。
【００３３】
調停回路１０５は、メインボード２０に対するライト要求とリード要求が競合しないように調停して、各要求を順次PCIeインタフェース１１３に出力する。
【００３４】
メインボード２０は、ＣＰＵ２１と、メモリ２２と、PCIeスイッチ２３と、ロジックデバイスの一例としてＦＰＧＡ２５を有する。PCIeスイッチ２３は、各ＰＩＵ１０Ａからの要求に応じて送信するパケットのアドレスに従って、方路を切り替える。PCIeスイッチ２３の入出力端にバッファを設けて輻輳時の制御を行ってもよい。
【００３５】
ＦＰＧＡ２５は、PCIeスイッチ２３と接続されるPCIeインタフェース２５４、CPU21と接続されるPCIeインタフェース２５２、メモリと接続されるメモリインタフェース２５３、及び調停回路２５１を有する。ＣＰＵ２１は、コア２１１とPCIeインタフェース２１２を有し、ＦＰＧＡ２５と高速シリアル通信を行う。メモリ２２は、ＰＩＵ１０Ａのレジスタのデータを格納する共有メモリ２２１を有する。ＣＰＵ２１のコア２１１は、ＦＰＧＡ２５を介してメモリ２２にアクセス可能である。
【００３６】
ＦＰＧＡ２５の調停回路２５１は、PCIeインタフェース２５４を介したＰＩＵ１０Ａからのメモリアクセスと、PCIeインタフェース２５２を介したＣＰＵ２１からのメモリアクセスの間の競合を防止する。調停回路２５１の調停動作に従って、ＰＩＵ１０Ａのステータスレジスタ値が共有メモリ２２１に書き込まれ、コントロールレジスタ１１２に書き込まれる制御値が共有メモリ２２１から読み出される。
【００３７】
ここで、太線で囲まれた通信プロセス１は、ＰＩＵ１０ＡのＣＰＬＤ１１と、メインボード２０のＦＰＧＡ２５及び共有メモリ２２１の間の通信プロセスである。通信プロセス２は、メインボード２０のＣＰＵ２１と、ＦＰＧＡ２５及び共有メモリ２２１の間の通信プロセスである。通信プロセス１と通信プロセス２は、パラレルで行われる。
【００３８】
通信プロセス１で、ＰＩＵ１０Ａはたとえば周期的なタイミングで、メインボード２０にアクセスして最新のステータス情報を送って共有メモリ２２１に保存する。また、周期的なタイミングで、共有メモリ２２１から最新の制御値を読み出す。
【００３９】
通信プロセス２で、ＣＰＵ２１は、共有メモリ２２１に保存された情報に対して任意のタイミングでアクセス可能であるが、ＰＩＵ１０Ａからの共有メモリ２２１へのアクセスと競合しないように、調停回路２５１が調停処理を行う。
【００４０】
この構成により、ＰＩＵ１０Ａが主導のリード／ライト制御が行われ、ＰＩＵ１０Ａが抜去されたとしても、ＣＰＵ２１の応答待ちタイムアウト処理によるカーネルパニックの発生は防止できる。抜去時にＰＩＵ１０Ａ及び／またはメインボード２０で処理中のデータがある場合も、キャッシュなどの特別な処理は行わず、抜去前の処理を継続する。
【００４１】
図７は伝送装置５Ａで行われる制御処理のフローチャートである。より具体的には、ＰＩＵ１０Ａからメインボード２０の共有メモリにデータを書き込むときの制御フローである。
【００４２】
ＰＩＵ１０Ａのマスター回路１０１Ａは、メインボード２０の共有メモリ２２１に状態値を書き込むライトタイミングにあるか否かを判断する（Ｓ１０）。ライトタイミングにある場合は（Ｓ１０でＹｅｓ）、マスター回路１０１Ａはステータスレジスタ１１１の状態値を読み出し（Ｓ１１）、メインボード２０の共有メモリ２２１に書き込むライト要求を生成する（Ｓ１２）。マスター回路１０１Ａの調停回路１０５は、共有メモリ２２１へのライト要求と、メインボード２０に対するリード要求の間の競合の確認・調停処理に入る（Ｓ１３）。競合の有無を判定し（Ｓ１４）、競合がない場合は（Ｓ１４でＮｏ）、PCIeインタフェース１１３にライト要求を出力する。PCIeインタフェース１１３は、ライト要求とレジスタデータを含むライト要求パケットを生成し、メインボードに送信する（Ｓ１５）。
【００４３】
ライト要求とリード要求が競合する場合は（Ｓ１４でＹｅｓ）、ステップＳ１３に戻って競合する要求の間を調停する。たとえば、調停回路１０５は、ランダムにいずれかの要求を優先してもよいし、あらかじめメインボード２０へのリード要求、またはライト要求のいずれかを優先するルールを設定しておいてもよい。
【００４４】
マスター回路１０１Ａは、現在のステータスレジスタ１１１のアドレスがエンドアドレスか否かを判断する（Ｓ１６）。ステップＳ１６のアドレス判定と、ステップＳ１５のライト要求パケットの送信は、同時または並列に行われてもよい。
【００４５】
現在のアドレスがエンドアドレスに至っていない場合は（Ｓ１６でＮｏ）、ステータスレジスタ１１１の処理対象のアドレスをインクリメントして（Ｓ１７）、ステップＳ１１〜Ｓ１６の処理を繰り返す。現在のアドレスがエンドアドレスの場合は（Ｓ１６でＹｅｓ）、スタートアドレスに戻し（Ｓ１８）、ステップＳ１０に戻って次のライトタイミングを待つ。
【００４６】
ステップＳ１０〜Ｓ１８は、ＰＩＵ１０Ａがメインボード２０に接続されている間、繰り返し行われるため、ループになっている。ＰＩＵ１０Ａがメインボード２０から抜去されたときは、ＰＩＵ１０Ａの電源がＯＦＦになり、その時点で処理は終了する。メインボード２０は、抜去前の処理を継続する。
【００４７】
一方、ステップＳ１５でメインボード２０に送信されたライト要求パケットは、ＦＰＧＡ２５のPCIeインタフェース２５４で受信される（Ｓ２１）。ＦＰＧＡ２５の調停回路２５１は競合の確認・調停処理に入り（Ｓ２２）、ＰＩＵ１０Ａからのライト要求と、ＣＰＵ２１のコア２１１から共有メモリ２２１へのアクセス要求の間で競合の有無を判定する（Ｓ２３）。競合がない場合は（Ｓ２３でＮｏ）、ＰＩＵ１０Ａから受け取ったライト要求パケットに含まれる状態値を、共有メモリ２２１に書き込む（Ｓ２４）。競合する場合は（Ｓ２３でＹｅｓ）、ステップＳ２２に戻って調停処理を行い、競合のない状態で（Ｓ２３でＮｏ）、ライト要求パケットに含まれる状態値を共有メモリ２２１に書き込む（Ｓ２４）。
【００４８】
ＦＰＧＡ２５での調停は、ランダムにいずれかの要求を優先させてもよいし、ＣＰＵ２１からのアクセス、またはＰＩＵ１０Ａからのアクセスの何れか一方を優先させる規則を設定しておいてもよい。
【００４９】
この方法により、ＰＩＵ１０Ａで生成されるライト要求を、メインボード２０のＣＰＵ２１からのアクセス要求と抵触せずに共有メモリ２２１に書き込むことができる。また、ＣＰＵ２１は、ＰＩＵ１０Ａとの間で応答待ちタイムアウト処理を行わないので、カーネルパニックの原因となるマシンチェック例外の発生を防止できる。
【００５０】
図８は、伝送装置５Ａにおいて、ＰＩＵ１０Ａがメインボード２０の共有メモリ２２１から制御データを読み出してコントロールレジスタ１１２に制御値を書き込むときの制御フローである。ＰＩＵ１０Ａのマスター回路１０１Ａは、メインボード２０の共有メモリ２２１から制御値を読み出すリードタイミングにあるか否かを判断する（Ｓ３０）。リードタイミングにある場合は（Ｓ３０でＹｅｓ）、メインボード２０の共有メモリ２２１からデータを読み出すリード要求を生成する（Ｓ３１）。マスター回路１０１Ａの調停回路１０５は、リード要求とライト要求の間の競合の確認・調停処理に入る（Ｓ３２）。競合の有無を判定し（Ｓ３３）、競合がない場合は（Ｓ３３でＮｏ）、PCIeインタフェース１１３にリード要求を出力する。PCIeインタフェース１１３は、リード要求をメインボードに送信する（Ｓ３４）。
【００５１】
ライト要求とリード要求が競合する場合は（Ｓ３３でＹｅｓ）、ステップＳ３２に戻って競合する要求の間を調停する。たとえば、調停回路１０５は、ランダムにいずれかの要求を優先してもよいし、あらかじめリード要求を優先するルールを設定しておいてもよい。
【００５２】
ステップＳ３４で送信されたリード要求は、メインボード２０のＦＰＧＡ２５のPCIeインタフェース２５４で受信される（Ｓ４１）。ＦＰＧＡ２５の調停回路２５１は競合の確認・調停処理に入り（Ｓ４２）、ＰＩＵ１０Ａからのリード要求と、ＣＰＵ２１のコア２１１から共有メモリ２２１へのアクセスとの間で競合の有無を判定する（Ｓ４３）。競合がない場合は（Ｓ４３でＮｏ）、ＰＩＵ１０Ａからのリード要求に従って共有メモリ２２１に保存されている制御値を読み出し（Ｓ４４）、読み出した制御データをＰＩＵ１０Ａに送信する（Ｓ４５）。ＰＩＵ１０Ａからのリード要求と、ＣＰＵ２１から共有メモリ２２１へのアクセスとが競合する場合は（Ｓ４３でＹｅｓ）、ステップＳ４２に戻って調停処理を行い、調停された順序でリード要求に基づく読み出し処理を行い（Ｓ４４）、読み出したデータをＰＩＵ１０Ａに送信する（Ｓ４５）。
【００５３】
ＰＩＵ１０Ａは、メインボード２０から制御データ（リードデータ）を受信すると（Ｓ３５）、制御値をコントロールレジスタ１１２に書き込み（Ｓ３６）、現在のレジスタアドレスがエンドアドレスか否かを判断する（Ｓ３７）。ステップＳ３７のアドレス判定と、ステップＳ３６の書き込み処理は、同時または並列に行われてもよい。
【００５４】
現在のアドレスがエンドアドレスに達していない場合は（Ｓ３７でＮｏ）、コントロールレジスタ１１２の処理対象のアドレスをインクリメントして（Ｓ３８）、ステップＳ３１〜Ｓ３７を繰り返す。現在のアドレスがエンドアドレスの場合は（Ｓ３７でＹｅｓ）、スタートアドレスに戻して（Ｓ３９）、ステップＳ３０に戻り、次のリードタイミングを待つ。
【００５５】
この処理は、ＰＩＵ１０Ａがメインボード２０に接続されている間、繰り返して行われるため、ループになっている。ＰＩＵ１０Ａがメインボード２０から抜去されたときは、ＰＩＵ１０Ａの電源がＯＦＦになり処理は終了する。メインボード２０は、抜去前の処理を継続する。
【００５６】
この方法により、ＰＩＵ１０Ａからのリード要求に応答して、メインボード２０のＣＰＵ２１から共有メモリ２２１へのアクセス要求と抵触せずに、共有メモリ２２１から制御値を読み出すことができる。また、ＣＰＵ２１は、ＰＩＵ１０Ａとの間で応答待ちタイムアウト処理を行わないので、カーネルパニックの原因となるマシンチェック例外の発生を防止できる。
【００５７】
図９は、第１実施形態の伝送装置５Ａで行われる通信制御のうち、ＰＩＵ１０Ａからメインボード２０へのライト要求に着目したシーケンス図である。伝送装置５Ａで、ＰＩＵ１０Ａとメインボード２０の間の通信プロセスＰ１（図６参照）と、メインボード２０の中での通信プロセスＰ２（図６参照）は、パラレルに行われる。
【００５８】
通信プロセスＰ１で、ＰＩＵ１０Ａからメインボード２０に対するライトタイミングになると、ＰＩＵ１０Ａのマスター回路１０１Ａは、ステータスレジスタ１１１から状態値を読み出す（Ｓ１０１）。マスター回路１０１ＡからPCIeインタフェース１１３への要求の競合の有無を判定し（Ｓ１０２）、必要に応じて調停処理を行い、競合がない状態でメインボード２０へのライト要求を出力する（Ｓ１０３）。PCIeインタフェース１１３は、ライト要求と状態値のデータを含めたライト要求パケットを生成し（Ｓ１０４）、ライト要求パケットをメインボード２０に送信する（Ｓ１０５）。
【００５９】
メインボード２０はライト要求パケットを受信すると、ＦＰＧＡ２５の調停回路２５１で共有メモリ２２１へのアクセス競合の有無を判定し（Ｓ１０６）、必要に応じて調停処理を行い、競合がない状態で、ライト命令を出して共有メモリ２２１に状態値を書き込む（Ｓ１０７）。この通信プロセスＰ１は、ステータスレジスタ群に含まれるステータスレジスタ１１１の数だけ行われる。
【００６０】
上記の通信プロセスＰ１とパラレルに、通信プロセスＰ２で、メインボード２０のＯＳは、カーネル及びドライバを介して、ハードウエアであるＣＰＵ２１のコア２１１にリード命令を送る（Ｓ２０１）。調停回路２５１は、ＣＰＵ２１のコア２１１からリード命令を受け取ると、共有メモリ２２１へのアクセス競合の有無を判定する（Ｓ２０３）。このリード命令とプロセスＰ１のライト要求が競合する場合は、調停回路２５１は調停処理を行って、競合がない状態で、共有メモリ２２１にリード命令を転送する（Ｓ２０４）。これにより、共有メモリ２２１から必要なデータを読み出して、ＣＰＵ２１を経由してＯＳにデータを転送する（Ｓ２０５）。
【００６１】
このシーケンスによると、メインボード２０のＯＳからＰＩＵ１０Ａに対するリクエストパケットの送信と、応答（コンプリージョンパケット）待ちの処理は行われないので、カーネルパニックの発生を防止することができる。また、ＰＩＵ１０Ａに抜去通知スイッチを設ける必要がなく、メインボード２０とＰＩＵ１０Ａの双方において、抜去完了までの待機時間を省略することができる。
【００６２】
図１０は、第１実施形態の伝送装置５Ａで行われる通信制御のうち、ＰＩＵ１０Ａからメインボード２０へのリード要求に着目したシーケンス図である。伝送装置５Ａで、ＰＩＵ１０Ａとメインボード２０の間の通信プロセスＰ１（図６参照）と、メインボード２０の中での通信プロセスＰ２（図６参照）は、パラレルに行われる。
【００６３】
通信プロセスＰ１で、ＰＩＵ１０Ａからメインボード２０に対するリードタイミングになると、ＰＩＵ１０Ａのマスター回路１０１Ａはリード要求を生成し（Ｓ１１１）、PCIeインタフェース１１３への要求の競合の有無を判定する（Ｓ１１２）。マスター回路１０１Ａは、必要に応じて調停処理を行い、競合がない状態でリード要求をPCIeインタフェース１１３に出力する（Ｓ１１３）。PCIeインタフェース１１３は、リード要求を含めたパケットを生成し（Ｓ１１４）、リード要求パケットをメインボード２０に送信する（Ｓ１１５）。
【００６４】
メインボード２０はリード要求パケットを受信すると、ＦＰＧＡ２５の調停回路２５１で共有メモリ２２１へのアクセス競合の有無を判定し（Ｓ１１６）、必要に応じて調停処理を行って、競合がない状態で共有メモリ２２１から制御値を読み出す（Ｓ１１７、Ｓ１１８）。ＦＰＧＡ２５は、読出した制御データを含む応答パケットを生成し、パケットをＰＩＵ１０Ａに送信する（Ｓ１１９）。
【００６５】
ＰＩＵ１０Ａは、PCIeインタフェース１１３で応答パケットを受信し、制御データをマスター回路１０１Ａに出力する（Ｓ１２０）。マスター回路１０１Ａは、制御データをコントロールレジスタ１１２に書き込む（Ｓ１２１）。
【００６６】
通信プロセスＰ１は、コントロールレジスタ群に含まれるコントロールレジスタ１１２の数だけ行われる。通信プロセスＰ１とパラレルに、通信プロセスＰ２が行われる。通信プロセスＰ２で、メインボード２０のＯＳは、カーネル及びドライバを介して、ハードウエアであるＣＰＵ２１のコア２１１にライト命令を送る（Ｓ２１１）。調停回路２５１は、ＣＰＵ２１のコア２１１からライト命令を受け取ると、共有メモリ２２１へのアクセス競合の有無を判定する（Ｓ２１２）。このライト命令と通信プロセスＰ１のリード要求が競合する場合は、調停回路２５１は調停処理を行って、競合がない状態で、共有メモリ２２１にライト命令を転送する（Ｓ２１３）。これにより、共有メモリ２２１に必要なデータを書き込む（Ｓ２１４）。
【００６７】
このシーケンスによると、メインボード２０のＯＳからＰＩＵ１０Ａに対するリクエストパケットの送信と、応答（コンプリージョンパケット）待ちの処理は行われないので、カーネルパニックの発生を防止することができる。また、ＰＩＵ１０Ａに抜去通知スイッチを設ける必要がなく、メインボード２０とＰＩＵ１０Ａの双方において、抜去完了までの待機時間を省略することができる。
【００６８】
＜第２実施形態＞
図１１は、第２実施形態の伝送装置５Ｂの概略図である。伝送装置５Ｂでは、ＰＩＵ１０Ｂのマスター回路１０１Ｂは、調停回路１０５に替えて、リード／ライト動作のタイミングを制御する制御回路１０７を有する。その他の構成は第１実施形態と同じであり、同じ構成要素に同じ符号を付けて重複する説明を省略する。
【００６９】
伝送装置５Ｂは、装置本体であるメインボード２０と、メインボード２０に着脱可能に接続される１以上のＰＩＵ１０Ｂを有する。第２実施形態でも、メインボード２０とＰＩＵ１０Ｂの間の制御系の通信において、ＰＩＵ１０ＢのＣＰＬＤ１１がマスター、メインボード２０のＣＰＵ２１がスレーブとして動作する。
【００７０】
マスター回路１０１Ｂは、レジスタリード回路１０３、レジスタライト回路１０４、及び制御回路１０７を有する。制御回路１０７は、レジスタリード回路１０３を動作させるタイミングと、レジスタライト回路１０４を動作させるタイミングを制御する。
【００７１】
レジスタリード回路１０３は、制御回路１０７によって制御されるタイミングで、ステータスレジスタ（群）１１１に保持されている状態値を読み込み、ステータスデータとともに、メインボード２０へのライト要求をPCIeインタフェース１１３に出力する。
【００７２】
レジスタライト回路１０４は、制御回路１０７によって制御されるタイミングで、メインボード２０に対するリード要求をPCIeインタフェース１１３に出力する。リード要求に対するメインボード２０からの応答を調停回路１０５から受け取ると、受信データをコントロールレジスタ（群）１１２に書き込む。
【００７３】
メインボード２０の構成と動作は、第１実施形態と同じであり、ＦＰＧＡ２５の調停回路２５１は、ＰＩＵ１０Ｂから受け取る要求と、ＣＰＵ２１から共有メモリ２２１へのアクセス要求の間を調停する。
【００７４】
通信プロセス１で、ＰＩＵ１０Ｂは制御回路１０７により制御されたタイミングで、メインボード２０に最新のステータス情報を送って共有メモリ２２１に保存し、共有メモリ２２１から最新の制御値を読み出す。
【００７５】
通信プロセス２で、ＣＰＵ２１は、共有メモリ２２１に保存された情報に対して任意のタイミングでアクセス可能であるが、ＰＩＵ１０Ｂからの共有メモリ２２１へのアクセスと競合しないように、調停回路２５１で調停する。
【００７６】
この構成により、ＰＩＵ１０Ｂが主導のリード／ライト制御が行われ、ＰＩＵ１０Ｂが抜去されたとしても、ＣＰＵ２１の応答待ちタイムアウト処理によるカーネルパニックの発生は防止できる。
【００７７】
図１２は、伝送装置５Ｂのマスター回路１０１Ｂで行われる制御処理のフローチャートである。より具体的には、ＰＩＵ１０Ｂからメインボード２０の共有メモリにデータを書き込むときの制御フローである。
【００７８】
マスター回路１０１Ｂの制御回路１０７は、レジスタリード回路１０３にリード回路動作要求を出力する（Ｓ５１）。レジスタリード回路１０３は、動作要求に従ってステータスレジスタ１１１から状態値を読み出す（Ｓ５２）。また、メインボード２０へのライト要求を生成して、ライト要求と状態値をPCIeインタフェース１１３に出力する（Ｓ５３）。PCIeインタフェース１１３は、ライト要求と状態値を含めたライト要求パケットを生成して、パケットをメインボード２０に送信する（Ｓ５４）。
【００７９】
マスター回路１０１Ｂは、現在のステータスレジスタ１１１のアドレスがエンドアドレスか否かを判断する（Ｓ５５）。ステップＳ５５のアドレス判定と、ステップＳ５４のライト要求パケットの送信は、同時または並列に行われてもよい。現在のアドレスがエンドアドレスに達していない場合は（Ｓ５５でＮｏ）、ステータスレジスタ１１１の処理対象のアドレスをインクリメントして（Ｓ５６）、ステップＳ５１〜Ｓ５５の処理を繰り返す。現在のアドレスがエンドアドレスの場合は（Ｓ５５でＹｅｓ）、スタートアドレスに戻して（Ｓ５７）、ステップＳ５１〜Ｓ５５の処理を繰り返す。
【００８０】
ステップＳ５１〜Ｓ５７は、ＰＩＵ１０Ｂがメインボード２０に接続されている間、繰り返し行われるため、ループになっている。
【００８１】
一方、ステップＳ５４でメインボード２０に送信されたライト要求パケットは、ＦＰＧＡ２５のPCIeインタフェース２５４で受信される（Ｓ６１）。ＦＰＧＡ２５の調停回路２５１は競合の確認・調停処理に入って（Ｓ６２）、ＰＩＵ１０Ｂからのライト要求と、ＣＰＵ２１のコア２１１から共有メモリ２２１へのアクセス要求の間で競合の有無を判定する（Ｓ６３）。競合がない場合は（Ｓ６３でＮｏ）、ＰＩＵ１０Ｂから受け取ったライト要求パケットに含まれる状態値を、共有メモリ２２１に書き込む（Ｓ６４）。競合する場合は（Ｓ６３でＹｅｓ）、ステップＳ６２に戻って調停処理を行い、競合のない状態で（Ｓ６３でＮｏ）、ライト要求パケットに含まれる状態値を共有メモリ２２１に書き込む（Ｓ６４）。
【００８２】
この方法により、ＰＩＵ１０Ｂで制御回路１０７のタイミング制御の下で生成されるライト要求を、メインボード２０のＣＰＵ２１からのアクセス要求と抵触せずに、共有メモリ２２１に書き込むことができる。また、ＣＰＵ２１は、ＰＩＵ１０Ｂとの間で応答待ちタイムアウト処理を行わないので、カーネルパニックの原因となるマシンチェック例外の発生を防止できる。
【００８３】
図１３は、伝送装置５Ｂにおいて、ＰＩＵ１０Ｂがメインボード２０の共有メモリ２２１から制御データを読み出してコントロールレジスタ１１２に制御値を書き込むときの制御フローである。
【００８４】
マスター回路１０１Ｂの制御回路１０７は、レジスタライト回路１０４に、ライト動作を起動させるライト回路動作要求を出力する（Ｓ７１）。また、共有メモリ２２１からの制御値の読出しのためのリード要求を生成し（Ｓ７２）、リード要求をメインボード２０に送信する（Ｓ７３）。ステップＳ７１と、ステップＳ７２及びＳ７３は、同時に並列で行われてもよい。
【００８５】
メインボード２０では、リード要求を受信すると（Ｓ８１）、競合確認処理に入り（Ｓ８２）、ＰＩＵ１０Ｂからのリード要求と、ＣＰＵコア２１１から共有メモリ２２１へのアクセス要求との競合の有無を判定する（Ｓ８３）。競合が無い場合は（Ｓ８３でＮｏ）、リード要求に従って共有メモリ２２１からＰＩＵ１０Ｂのための制御値を読み出して（Ｓ８４）、読み出したデータをＰＩＵ１０Ｂに送信する（Ｓ８５）。競合する場合は（Ｓ８３でＹｅｓ）、ステップＳ８２に戻って、ＣＰＵコア２１１からのアクセス要求との間を調整し、競合のない状態で（Ｓ８３でＮｏ）、共有メモリ２２１からデータを読み取る（Ｓ８４）。
【００８６】
ＰＩＵ１０Ｂは、メインボード２０から制御データ（リードデータ）を受信すると（Ｓ７４）、制御値をコントロールレジスタ１１２に書き込み（Ｓ７５）、現在のレジスタアドレスがエンドアドレスか否かを判断する（Ｓ７６）。ステップＳ７６のアドレス判定と、ステップＳ７５の書き込み処理は、同時または並列に行われてもよい。
【００８７】
現在のアドレスがエンドアドレスに達していない場合は（Ｓ７６でＮｏ）、コントロールレジスタ１１２の処理対象のアドレスをインクリメントして（Ｓ７８）、ステップＳ７１〜Ｓ７６を繰り返す。現在のアドレスがエンドアドレスの場合は（Ｓ７６でＹｅｓ）、スタートアドレスに戻して（Ｓ７７）、ステップＳ７１に戻り、次の指示を待つ。
【００８８】
この方法により、ＰＩＵ１０Ｂからのリード要求に応答して、メインボード２０のＣＰＵ２１から共有メモリ２２１へのアクセス要求と抵触せずに、共有メモリ２２１から制御値を読み出すことができる。また、ＣＰＵ２１は、ＰＩＵ１０Ｂとの間で応答待ちタイムアウト処理を行わないので、カーネルパニックの原因となるマシンチェック例外の発生を防止できる。
【００８９】
図１２と図１３のフローは、ＰＩＵ１０Ｂがメインボード２０に接続されている間、繰り返して行われるため、ループになっている。ＰＩＵ１０Ｂがメインボード２０から抜去されたときは、ＰＩＵ１０Ｂの電源がＯＦＦになり、処理は終了する。
【００９０】
図１４は、第２実施形態の伝送装置５Ｂで行われる通信制御のうち、ＰＩＵ１０Ｂからメインボード２０へのライト要求に着目したシーケンス図である。伝送装置５Ｂで、ＰＩＵ１０Ａとメインボード２０の間の通信プロセスＰ１と、メインボード２０の中での通信プロセスＰ２は、パラレルに行われる。
【００９１】
通信プロセスＰ１で、ＰＩＵ１０Ｂの制御回路１０７は、レジスタリード回路１０３とレジスタライト回路１０４のいずれを動作させるかを制御して（Ｓ４０１）、レジスタリード回路１０３に動作命令を出力する（Ｓ４０２）。レジスタリード回路１０３は、動作命令に従ってステータスレジスタ１１１から状態値を読み出して、PCIeインタフェース１１３にデータを渡す（Ｓ４０３、Ｓ４０４）。PCIeインタフェース１１３は、状態値とライト要求を含めたライト要求パケットを生成し（Ｓ４０５）、メインボード２０に送信する（Ｓ４０６）。
【００９２】
メインボード２０はライト要求パケットを受信すると、ＦＰＧＡ２５の調停回路２５１で共有メモリ２２１へのアクセス競合の有無を判定し（Ｓ４０７）、必要に応じて調停処理を行い、競合がない状態で、共有メモリ２２１に状態値を書き込む（Ｓ４０８）。この通信プロセスＰ１は、ステータスレジスタ群に含まれるステータスレジスタ１１１の数だけ行われる。
【００９３】
上記の通信プロセスＰ１とパラレルに、通信プロセスＰ２が行われる。通信プロセスＰ２で、メインボード２０のＯＳは、カーネル及びドライバを介して、ハードウエアであるＣＰＵ２１のコア２１１にリード命令を送る（Ｓ５０１）。調停回路２５１は、ＣＰＵ２１のコア２１１からリード命令を受け取ると、共有メモリ２２１へのアクセス競合の有無を判定する（Ｓ５０２）。このリード命令とプロセスＰ１のライト要求が競合する場合は、調停回路２５１は調停処理を行って、競合がない状態で、共有メモリ２２１にリード命令を転送する（Ｓ５０３）。これにより、共有メモリ２２１から必要なデータを読み出して、ＣＰＵ２１を経由してＯＳにデータを転送する（Ｓ５０４）。
【００９４】
このシーケンスによると、メインボード２０のＯＳからＰＩＵ１０Ｂに対するリクエストパケットの送信と、応答（コンプリージョンパケット）待ちの処理は行われないので、カーネルパニックの発生を防止することができる。また、ＰＩＵ１０Ｂに抜去通知スイッチを設ける必要がなく、メインボード２０とＰＩＵ１０Ｂの双方において、抜去完了までの待機時間を省略することができる。
【００９５】
図１５は、第２実施形態の伝送装置５Ｂで行われる通信制御のうち、ＰＩＵ１０Ｂからメインボード２０へのリード要求に着目したシーケンス図である。伝送装置５Ｂで、ＰＩＵ１０Ａとメインボード２０の間の通信プロセスＰ１と、メインボード２０の中での通信プロセスＰ２は、パラレルに行われる。
【００９６】
通信プロセスＰ１で、ＰＩＵ１０Ｂの制御回路１０７は、レジスタリード回路１０３とレジスタライト回路１０４のいずれを動作させるかを制御して（Ｓ４１１）、レジスタライト回路１０４に動作命令を出力する（Ｓ４１２）。レジスタライト回路１０４は、動作命令に従って、メインボード２０に対するリード要求をPCIeインタフェース１１３に出力し、PCIeインタフェース１１３でリード要求パケットを生成する（Ｓ４１３）。リード要求パケットはメインボード２０に送信される（Ｓ４１４）。
【００９７】
メインボード２０のＦＰＧＡ２５は、調停回路２５１で、共有メモリ２２１へのアクセス要求の競合がないかを確認し（Ｓ４１５）、競合のない状態で共有メモリ２２１からＰＩＵ１０Ｂのための制御値を読み出す（Ｓ３１６，Ｓ３１７）。読み出した制御値をコンプリージョンパケットに含め、コンプリージョンパケットをＰＩＵ１０Ｂに送信する（Ｓ４１８）。ＰＩＵ１０ＢはPCIeインタフェース１１３でコンプリージョンパケットを受信し、レジスタライト回路１０４はパケットから制御値を取り出して、コントロールレジスタ１１２に書き込む（Ｓ４１９）。
【００９８】
上記の通信プロセスＰ１とパラレルに、通信プロセスＰ２が行われる。通信プロセスＰ２で、メインボード２０のＯＳは、カーネル及びドライバを介して、ハードウエアであるＣＰＵ２１のコア２１１にライト命令を送る（Ｓ５１１）。調停回路２５１は、ＣＰＵ２１のコア２１１からライト命令を受け取ると、共有メモリ２２１へのアクセス競合の有無を判定する（Ｓ５１２）。このライト命令と通信プロセスＰ１のリード要求が競合する場合、調停回路２５１は調停処理を行って、競合がない状態で、共有メモリ２２１にライト命令を転送してデータを書き込む（Ｓ５１３）。
【００９９】
このシーケンスによると、メインボード２０のＯＳからＰＩＵ１０Ｂに対するリクエストパケットの送信と、応答（コンプリージョンパケット）待ちの処理は行われないので、カーネルパニックの発生を防止することができる。また、ＰＩＵ１０Ｂに抜去通知スイッチを設ける必要がなく、メインボード２０とＰＩＵ１０Ｂの双方において、抜去完了までの待機時間を省略することができる。
【０１００】
以上、特定の実施形態に基づいて本発明を説明したが、発明は上述した実施例に限定されない。伝送装置５の本体はメインボード２０に替えて、ブレード、マザーボード等と呼ばれる基板やパッケージボードであってもよい。ＰＩＵ１０のロジック回路として、ＣＰＬＤに替えてＦＰＧＡを用いてもよい。第１実施形態と第２実施形態で、各ＰＩＵの周辺デバイスの図示は省略されているが、ＰＩＵごとに複数の光トランシーバが搭載されていてもよい。ＰＩＵ１０の主導で行われるメインボード２０へのアクセス要求は、共有メモリ２２１へのリード要求とライト要求に限定されない。たとえば、ＰＩＵ１０からのＤＭＡ転送や、ＣＰＵ以外の搭載部品(クロックモジュールや光モジュール)へのシャットダウン要求／リセット要求等の動作にも本発明は適用可能である。
【０１０１】
以上の説明に対して、以下の付記を呈示する。
（付記１）
プラガブルデバイスを備えた伝送装置であって、
プロセッサを有する装置本体と、
前記装置本体に着脱可能に接続された１以上のプラガブルデバイスと、
を有し、
前記プラガブルデバイスは、前記装置本体に対して自律的に制御要求を出力するマスター回路を有し、
前記装置本体は、前記制御要求に基づく処理を行って処理結果を前記プラガブルデバイスに供給することを特徴とする伝送装置。
（付記２）
前記装置本体は、前記プラガブルデバイスからの第１要求と、前記プロセッサからの第２要求の競合を調整する調停回路を有し、
前記第１要求と前記第２要求は調停された順序で処理されることを特徴とする付記１に記載の伝送装置。
（付記３）
前記装置本体は、前記プラガブルデバイスと前記プロセッサとによって使用される共有メモリを有し、
前記調停回路は、前記プラガブルデバイスから前記共有メモリへの第１のアクセス要求と、前記プロセッサから前記共有メモリへの第２のアクセス要求の競合を調停することを特徴とする付記２に記載の伝送装置。
（付記４）
前記第１のアクセス要求は、前記共有メモリへのライト要求またはリード要求であり、
前記マスター回路は、前記プラガブルデバイスにおいて前記ライト要求の出力と前記リード要求の出力が競合しないように調停または制御する回路を有することを特徴とする付記３に記載の伝送装置。
（付記５）
前記マスター回路は、周期的なタイミングで前記ライト要求またはリード要求を出力するリード／ライト回路と、前記装置本体への前記ライト要求と前記リード要求の出力を調停する第２調停回路とを有することを特徴とする付記４に記載の光伝送装置。
（付記６）
前記マスター回路は、前記ライト要求または前記リード要求を出力するリード／ライト回路の動作タイミングを制御する制御回路、
を有し、前記ライト要求または前記リード要求は、前記制御回路で制御されたタイミングで前記装置本体に出力されることを特徴とする付記４に記載の光伝送装置。
（付記７）
前記マスター回路は、第１レジスタから状態値を読み出して、前記装置本体にライト要求を出力し、
前記装置本体は、前記ライト要求に基づいて前記状態値を前記共有メモリに書き込むことを特徴とする付記３に記載の伝送装置。
（付記８）
前記マスター回路は、前記装置本体にリード要求を出力し、
前記装置本体は、前記リード要求に基づいて前記共有メモリから制御値を読み出して前記プラガブルデバイスに供給し、
前記マスター回路は、前記制御値を第２レジスタに書き込むことを特徴とする付記３に記載の伝送装置。
（付記９）
伝送装置で着脱可能に用いられるプラガブルデバイスであって、
前記伝送装置の装置本体との間で制御データの送受信を行う通信インタフェースと、
前記装置本体に対して自律的に制御要求を出力し、前記装置本体から受け取る情報を処理するマスター回路を有し、
前記マスター回路は、前記装置本体への前記制御要求の出力タイミングを制御または調停する回路を有することを特徴とするプラガブルデバイス。
（付記１０）
前記制御要求は、前記装置本体のメモリに第１データを書き込むライト要求、または前記メモリから第２データを読み出すリード要求であることを特徴とする付記９に記載のプラガブルデバイス。
（付記１１）
前記回路は、前記プラガブルデバイスにおいて前記ライト要求と前記リード要求が競合するときに前記ライト要求と前記リード要求の処理を調停することを特徴とする付記１０に記載のプラガブルデバイス。
（付記１２）
プラガルデバイスを備えた伝送装置における通信制御方法において、
前記伝送装置の装置本体に前記プラガブルデバイスを着脱可能に接続し、
前記プラガブルデバイスから前記装置本体に対して制御要求を出力し、
前記装置本体で、前記制御要求に基づく処理を行って処理結果を前記プラガブルデバイスに供給する、
ことを特徴とする通信制御方法。
（付記１３）
前記装置本体で、前記プラガブルデバイスからの第１要求と、前記装置本体のプロセッサで生成される第２要求の間の競合を調整し、
前記第１要求と前記第２要求を調停された順序で処理することを特徴とする付記１２に記載の通信制御方法。
（付記１４）
前記装置本体は、前記プラガブルデバイスから前記装置本体に設けられたメモリへの第１アクセス要求を受信したときに、前記プロセッサから前記メモリへの第２のアクセス要求の有無を判定し、
前記第１アクセス要求と前記第２アクセス要求が競合するときは前記第１アクセス要求と前記第２アクセス要求の処理を調停することを特徴とする付記１３に記載の通信制御方法。
（付記１５）
前記プラガブルデバイスで、前記第１のアクセス要求として前記メモリへのライト要求またはリード要求が発生したときに、前記プラガブルデバイスにて前記ライト要求の出力と前記リード要求の出力が競合しないように調停または制御することを特徴とする付記１４に記載の通信制御方法。
【符号の説明】
【０１０２】
１  光通信システム
２  ネットワーク機器
５、５Ａ、５Ｂ  伝送装置
１０、１０Ａ、１０Ｂ  ＰＩＵ（プラガブルデバイス）
１１  ＣＰＬＤ（ロジックデバイス）
１０１Ａ、１０１Ｂ  マスター回路
１０３  レジスタリード回路
１０４  レジスタライト回路
１０５  調停回路
１０７  制御回路
１１１  ステータスレジスタ
１１２  コントロールレジスタ
１１３  PCIeインタフェース（通信インタフェース）
２０  メインボード（装置本体）
２１  ＣＰＵ（プロセッサ）
２２  メモリ
２２１  共有メモリ
２３  PCIeスイッチ（通信インタフェース）
２５１  調停回路（メインボード側）
【図１】
2019095842.tif 000003
【図２】
2019095842.tif 000004
【図３】
2019095842.tif 000005
【図４】
2019095842.tif 000006
【図５】
2019095842.tif 000007
【図６】
2019095842.tif 000008
【図７】
2019095842.tif 000009
【図８】
2019095842.tif 000010
【図９】
2019095842.tif 000011
【図１０】
2019095842.tif 000012
【図１１】
2019095842.tif 000013
【図１２】
2019095842.tif 000014
【図１３】
2019095842.tif 000015
【図１４】
2019095842.tif 000016
【図１５】
2019095842.tif 000017