(57)【要約】【課題】プロセッサと演算手段およびＬＡＮコントローラから各バスを介してアクセス可能な共有メモリで構成されるマルチプロセッサシステムにおいて、共有メモリへのアクセスが競合するとシステム全体のスループットが低下する。【解決手段】同期制御手段１４から送付されるタイムテーブルＴＢＬにしたがって、各バス４１〜４３から共有メモリ５へのアクセスを許可するタイミングと時間帯を決定するデータ転送同期手段６を用いることで、共有メモリ５のアクセスを管理・制御し、プロセッサ１１〜１３と演算手段２１〜２３およびＬＡＮコントローラ３１〜３３がメモリアクセスで待たされたり、データ転送が輻輳する状態の発生を防ぐ。【選択図】図２
2010186241.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと演算手段とＬＡＮコントローラおよび前記プロセッサ、演算手段、ＬＡＮコントローラから各バスを介してアクセス可能な共有メモリを有する複数のプロセッシングユニットで構成され、前記プロセッシングユニットはネットワークに接続されて、「データ受信→演算→データ送信」の処理シーケンスを所定の周期で定期的に発生するようなマルチプロセッサシステムにおいて、
前記プロセッサと前記演算手段の処理の開始時刻を保持するタイムテーブルを生成するタイムテーブル生成部と、このタイムテーブル生成部で生成したタイムテーブルを送信するタイムテーブル送信部とを有する同期制御手段、
前記同期制御手段のタイムテーブル送信部から送信されたタイムテーブルを受信するタイムテーブル受信部と、このタイムテーブル受信部で受信したタイムテーブルを解析するタイムテーブル解析部とを有するデータ転送同期手段を備え、
前記データ転送同期手段は、前記タイムテーブルの解析内容にしたがって前記プロセッシングユニット上の各バスから前記共有メモリへのアクセスの許可を管理・制御するようにしたマルチプロセッサシステム。
【請求項２】
前記データ転送同期手段は、タイムテーブルで指定された時刻を基準として、実際に処理が始まった時刻との差異を含む遅延情報を生成する遅延情報生成部と、この遅延情報生成部で生成した遅延情報を送信する遅延情報送信部を備え、
前記同期制御手段は、前記遅延情報送信部から送信された遅延情報を受信する遅延情報受信部と、この遅延情報受信部で受信した遅延情報を解析する遅延情報解析部を備えた請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記同期制御手段は、前記遅延情報解析部で解析した遅延情報に基づきタイムテーブルを更新するタイムテーブル更新部を備えた請求項２に記載のマルチプロセッサシステム。
【請求項４】
前記同期制御手段は、前記データ転送同期手段の状態を監視する監視部を備えた請求項１〜請求項３のいずれか１項に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のプロセッサと演算手段から構成される各プロセッシングユニットがネッワークに接続されたマルチプロセッサシステム、特にプロセッシングユニットに搭載の共有メモリを複数のプロセッシングユニットが共有して利用するマルチプロセッサシステムに関するものである。
【背景技術】
【０００２】
従来のシステムでは、メインのプロセッサがデータを処理するための演算手段を備えるが、システムの大規模化に伴いプロセッサの能力に比して処理すべきデータ量が大きくなったり、あるいは許容される所用時間が短かくなりプロセッサの負荷が増大する。近年のコンピュータシステムでは多少なりともこのような傾向にあり、この問題を解決する手段として一般に採用されるのがシステムに搭載されるプロセッサの数を増やしてマルチプロセッサシステムを構築する手法である。
【０００３】
マルチプロセッサシステムにおいて、ひとつひとつのプロセッサはバスあるいはネットワークに接続されることで、相互に処理すべきデータや、演算処理の結果としてのデータを相互に転送することで共有する。システムに搭載できるプロセッサの数は有限であるので、処理すべきデータがさらに増加すればプロセッサの負荷がさらに増大し、処理しきれなくなったデータはプロセッサの処理を待つことになる。これはデータ転送にも当てはまり、データを送信するプロセッサと受信するプロセッサがデータ転送に専念できるとは限らず、またひと組の送受信プロセッサがデータ転送のためにバスやネットワークを充分な期間にわたり占有できるとは限らないケースが出てくる。
【０００４】
こうした不具合を避けるため、複数のアクセス要求発生源とリソースとのアクセスの競合調停時間を短縮するため、競合調整制御を行なうための複数の小規模なリングアービタを並行的、かつ階層的に動作させるアクセス調停装置が知られている。（例えば特許文献１参照）
【０００５】
また、プロセッサ間通信制御装置を構成する各プロセッサが実施するデータ送信、データ受信およびデータ処理の各処理に着目し、別に監視プロセッサを設けて、受信プロセッサは自身の状態を所定時に監視プロセッサに報告するようにし、監視プロセッサは報告された受信プロセッサの状態に基づいてデータの必要な処理ステージをスケジューリングしたタイムテーブルを生成し、各送信プロセッサおよび受信プロセッサはこのタイムテーブルにしたがってデータ送信、データ受信およびデータ処理するようにしたプロセッサ間通信制御装置が知られている。
更に、受信プロセッサは、タイムテーブルにしたがった所定時間内に所定の処理が終わらない場合は、監視プロセッサにタイムテーブルの生成変更を要求するタイムテーブル変更要求手段を設け、監視プロセッサは、タイムテーブルの生成変更の要求を受けると、タイムテーブルの再生成を行うようにしたプロセッサ間通信制御装置も知られている。（特許文献２参照）
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−１０４９１６号公報
【特許文献２】特開２００２−２４５０１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の特許文献１に示すアクセス調停装置は、ある１つのリソースへのアクセスを要求する複数のアクセス要求発生源に対してアクセス権が付与される優先順位をもとに、リソースへのアクセスの競合を調停するもので、アクセス要求からアクセス開始までに遅延が発生すると共に、リングアービタを並行的、かつ階層的に複数設ける必要があり、構成が高価となる。またアクセス要求発生源として複数のプロセッサ間でのデータ送受についての輻輳の解決については依然として課題があった。
マルチプロセッサシステムの通信制御において、いま、ある１つのプロセッサシステムで、他のプロセッサシステムのデータを受信する処理と、別のプロセッサシステムにデータを送信する処理と、はじめのプロセッサシステムの内部で実行される演算処理が、ともに共有メモリにアクセスすることがある。こうした場合、共有メモリへのアクセスが競合して各々のデータ転送の応答性能が低下し、ひいてはプロセッシングユニットの処理性能やシステム全体のパフォーマンスが低下することがあった。
【０００８】
特許文献２に示すプロセッサ間通信制御装置は、上記した課題を解決するため、受信プロセッサにタイムテーブルの生成変更を要求するタイムテーブル変更要求手段を設け、監視プロセッサは、タイムテーブルの生成変更の要求を受けると、タイムテーブルの再生成を行うようにもしているが、各受信プロセッサは、監視プロセッサで再生成したタイムテーブルの送り先である、どこのプロセッサユニットのどの送信プロセッサかを特定する機能を備えておかなければならず、コストが嵩むという課題があった。
【０００９】
この発明は、上述した課題を解決しようとするもので、プロセッシングユニットの各コンポーネントから共有メモリへのアクセスを管理・制御することにより、プロセッシングユニットの処理性能やシステム全体のパフォーマンスの低下を防ぐマルチプロセッサシステムを提供することを目的とするものである。
【課題を解決するための手段】
【００１０】
この発明のマルチプロセッサシステムは、プロセッサと演算手段とＬＡＮコントローラおよびプロセッサ、演算手段、ＬＡＮコントローラから各バスを介してアクセス可能な共有メモリを有する複数のプロセッシングユニットで構成され、プロセッシングユニットはネットワークに接続されて、「データ受信→演算→データ送信」の処理シーケンスを所定の周期で定期的に発生するようなマルチプロセッサシステムにおいて、
プロセッサと演算手段の処理の開始時刻を保持するタイムテーブルを生成するタイムテーブル生成部と、このタイムテーブル生成部で生成したタイムテーブルを送信するタイムテーブル送信部とを有する同期制御手段、この同期制御手段のタイムテーブル送信部から送信されたタイムテーブルを受信するタイムテーブル受信部と、このタイムテーブル受信部で受信したタイムテーブルを解析するタイムテーブル解析部とを有するデータ転送同期手段を備え、データ転送同期手段は、タイムテーブルの解析内容にしたがってプロセッシングユニット上の各バスから共有メモリへのアクセスの許可を管理・制御するようにしたものである。
【発明の効果】
【００１１】
この発明は、同期制御手段とデータ転送同期手段とを用い、同期制御手段から送信されるタイムテーブルにしたがってデータ転送同期手段を制御することで、ネットワーク通信処理と演算手段の演算処理、およびプロセッサと演算手段とＬＡＮコントローラからの共有メモリへのアクセスを制御でき、各マスタデバイス（プロセッサ、演算手段、ＬＡＮコントローラ）がメモリアクセスで待たされたり、データ転送が輻輳する状態の発生を防ぐことができる。
また、同期制御手段にデータ転送同期手段の状態監視機能を付加することで、タイムテーブルの精度を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】この発明の実施の形態１のマルチプロセッサシステムの全体構成図である。
【図２】この発明の実施の形態１におけるプロセッシングユニットの構成図である。
【図３】この発明の実施の形態１におけるデータ転送同期手段の構成図である。
【図４】この発明の実施の形態１における同期制御手段の構成図である。
【図５】この発明の実施の形態１におけるタイムテーブルの構成図である。
【図６】この発明の実施の形態１における遅延情報の構成図である。
【図７】この発明の実施の形態１におけるシステム動作（共通）のフローチャートである。
【図８】この発明の実施の形態１におけるシステム動作（遅延発生なし）のフローチャートである。
【図９】本発明の実施の形態１におけるシステム動作（遅延発生あり）のフローチャートである。
【発明を実施するための形態】
【００１３】
実施の形態１．
以下、この発明の実施の形態１におけるマルチプロセッサシステムについて、図１から図９に基づいて説明する。
まず図１に示す全体構成図において、マルチプロセッサシステム１００は、複数のプロセッシングユニット１ａ〜１ｈ（以下、総称する場合は添字ａ〜ｈを省略する）がＬＡＮやＩＰネットワークなどのネットワーク８を介して互いに接続され、相互に処理すべきデータや、演算処理の結果としてのデータを相互に転送することで共有する。
そして複数のプロセッシングユニット１はリソースを共有して利用するシステムで活用される。ここでリソースとは、入力装置２０１、出力装置２０２、印字装置２０３、外部記憶装置２０４やシステム固有の機能ユニット、その他システムを運用するためのハードウエアを伴う設備を指す。図１ではプロセッシングユニット１ａが複数のリソースに接続されている図を示しているが、他のプロセッシングユニット１ｂ〜１ｈも同様に複数のリソースに接続される。
【００１４】
次にマルチプロセッサシステムを構成するプロセッシングユニット１について図２に基づき説明する。プロセッシングユニット１は、実行可能な命令で構成されるソフトウェアを実行することにより信号処理の制御などを行なう複数のプロセッサ１１〜１３と、アクセラレータとして演算処理を行うＦＰＧＡ（Field Programmable Gate Array）などの複数の演算手段２１〜２３と、ＬＡＮやＩＰネットワークなどのネットワーク８を介して他のプロセッシングユニット１と接続されるＬＡＮコントローラ３１〜３３とを備えている。
【００１５】
さらにプロセッシングユニット１は、複数のプロセッサ１１〜１３に接続されるプロセッサバス４１と、複数の演算手段２１〜２３に接続されるＦＰＧＡバス４２と、ＬＡＮコントローラ３１〜３３に接続されるＬＡＮバス４３と、プロセッサ１１〜１３、演算手段２１〜２３およびＬＡＮコントローラ３１〜３３から各バス４１、４２、４３を介してアクセス可能な共有メモリ５と、共有メモリ５へのアクセス要求の許可・禁止を管理および制御するデータ転送同期手段６と、データ転送同期手段６と共有メモリ５との間を接続する共有メモリバス７を備えている。
【００１６】
また複数のプロセッサ１１〜１３のうち、少なくとも１つのプロセッサは、データ転送同期手段６がどのバス４１〜４３から共有メモリ５へのアクセス要求を許可するか否かを決定し、かつデータ転送同期手段６に設定する機能を備える同期制御手段１４を構成する。この同期制御手段１４は、データ転送同期手段６を制御するソフトウェアとして構成されるが、ミドルウェアとして実装することで、アプリケーションと連携してデータ転送同期手段６を制御することもできる。
【００１７】
上記構成において、プロセッサ１１〜１３は、演算手段２１〜２３に演算処理の開始を要求し、演算手段２１〜２３からの演算結果を受け取ると共に、他のプロセッシングユニット１との間でデータ転送を実行する。またＬＡＮコントローラ３１〜３３は、他のプロセッシングユニット１との間でデータ転送を実行し、共有メモリ５経由でプロセッサ１１〜１３にデータを受け渡す。
このような動作において、プロセッシングユニット１内のデータ転送が輻輳する要因として（１）搭載される複数のプロセッサ１１〜１３から共有メモリ５へのアクセスが短い時間に集中するか、（２）演算手段２１〜２３が演算処理実施中にデータ転送が発生することが挙げられる。
ＬＡＮコントローラ３１〜３３とプロセッサ１１〜１３および演算手段２１〜２３はプロセッシングユニット１基板上の共有メモリ５を共有するため、データ転送同期手段６はプロセッシングユニット１内の各コンポーネント（プロセッサ、演算手段、ＬＡＮコントローラを指し、以下マスタデバイスとも称す）が実行する通信処理と演算処理の開始タイミングを管理、制御することで、共有メモリ５へのアクセス競合の発生頻度を抑える。
【００１８】
同期制御手段１４は、データ転送同期手段６を制御するソフトウェアを実行する。同ソフトウェアはデータ転送同期手段６がどのバス４１〜４３から共有メモリ５へのアクセスを許可するかを決定する。即ち、データ転送同期手段６は、同期制御手段１４から送付されるタイムテーブルの内容を解析し、各バス４１〜４３からのアクセスを許可するタイミングと時間帯を決定する。こうしてデータ転送の輻輳によるシステム全体のスループット低下を抑止する。
【００１９】
なお以下の説明において、プロセッシングユニット１をＰＵ、プロセッサ１１〜１３をＣＰＵ、演算手段２１〜２３をＦＰＧＡ、ＬＡＮコントローラ３１〜３３をＬＡＮＣ、ネットワークをＬＡＮ、ＣＰＵが接続されるプロセッサバス４１をＣＰＵＢＵＳ、演算手段ＦＰＧＡが接続されるＦＰＧＡバス４２をＦＰＧＡＢＵＳ、ＬＡＮコントローラＬＡＮＣが接続されるＬＡＮバス４３をＬＡＮＢＵＳ、共有メモリ５をＳＭ、データ転送同期手段６をＴＧ、同期制御手段１４をＴＧＣ、共有メモリバス７をＳＭＢＵＳ、タイムテーブルをＴＢＬ、と略記することがある。
【００２０】
図３は図２に示すデータ転送同期手段６の構成図を示し、データ転送同期手段６は、ＣＰＵＢＵＳに接続されるＣＰＵＢＵＳインタフェース６０と、ＦＰＧＡＢＵＳに接続されるＦＰＧＡＢＵＳインタフェース６１と、ＬＡＮＢＵＳに接続されるＬＡＮＢＵＳインタフェース６２と、ＳＭＢＵＳバスに接続されるＳＭＢＵＳインタフェース６３と、の４つのインタフェースを有している。
ＣＰＵＢＵＳインタフェース６０は、プロセッサ１１〜１３から送られてくるデータを受信すると共に、同期制御手段１４に遅延情報を送信する。ＦＰＧＡＢＵＳインタフェース６１は演算手段２１〜２３からのデータを入出力する。ＬＡＮＢＵＳインタフェース６２はＬＡＮコントローラ３１〜３３からのデータを入出力する。ＳＭＢＵＳインタフェース６３は共有メモリ５にデータを入出力する。
【００２１】
データ転送同期手段６は、同期制御手段１４からＣＰＵＢＵＳおよびＣＰＵＢＵＳインタフェース６０を介して送られてくるタイムテーブルＴＢＬを受信するタイムテーブル受信部６４と、受信したタイムテーブルＴＢＬを解析するタイムテーブル解析部６５と、タイムテーブル解析部６５で解析した内容に基づき、各バス４１〜４３から共有メモリ５へのアクセスを許可するタイミングと時間帯を決定する共有メモリバス（ＳＭＢＵＳ）調停部６６を有し、ＳＭＢＵＳ調停部６６からＳＭＢＵＳインタフェース６３を介して共有メモリ５にデータを入出力する。
【００２２】
さらにデータ転送同期手段６は、タイムテーブルＴＢＬで指定された時刻を基準として、実際に処理が始まった時刻と比較することにより遅延発生の有無を検出する遅延検出部６７と、遅延検出部６７で検出された遅延をもとに基準時刻と処理開始時刻との差異の遅延時間を含む遅延情報を生成する遅延情報生成部６８と、この遅延情報生成部６８で生成した遅延情報をＣＰＵＢＵＳインタフェース６０を介して同期制御手段１４に送信する遅延情報送信部６９を備えている。
【００２３】
図４は図２に示す同期制御手段１４の構成図を示し、同期制御手段１４は、プロセッシングユニット１（ＰＵ）内のプロセッサＣＰＵ、演算手段ＦＰＧＡおよびＬＡＮコントローラＬＡＮＣの演算処理と通信処理の開始時刻をスケジューリングするタイムテーブルＴＢＬを生成するタイムテーブル生成部１４１と、データ転送同期手段６から送信されてくる遅延情報をもとにタイムテーブルＴＢＬを更新するタイムテーブル更新部１４２と、タイムテーブル生成部１４１またはタイムテーブル更新部１４２で生成されたタイムテーブルＴＢＬを記憶するタイムテーブル記憶部１４３と、タイムテーブル記憶部１４３に記憶されているタイムテーブルＴＢＬをＣＰＵＢＵＳインタフェース１４５を介してデータ転送同期手段６に送信するタイムテーブル送信部１４４を有している。
【００２４】
さらに同期制御手段１４は、データ転送同期手段６からＣＰＵＢＵＳインタフェース１４５を介して送られて来る遅延情報を受信する遅延情報受信部１４６と、この遅延情報受信部１４６で受信した遅延情報を解析する遅延情報解析部１４７を有し、この遅延情報解析部１４７で解析された内容をもとにタイムテーブル更新部１４２はタイムテーブルＴＢＬを更新する。またデータ転送同期監視部１４８はデータ転送同期手段６からＣＰＵＢＵＳインタフェース１４５を介して送られて来る遅延情報をもとにデータ転送同期手段６の状態を監視し、タイムテーブル更新部１４２に更新を依頼する。
【００２５】
図５は同期制御手段１４のタイムテーブル生成部１４１で生成されるタイムテーブルＴＢＬの例を示す図で、タイムテーブルＴＢＬの識別番号８１、タイムテーブルＴＢＬに含まれるステージ長８２（処理ステージあたりの時間をミリ秒単位で表す）、処理ステージの総数８３、遅延閾値８４（ステージ開始から処理開始までの遅延がこの値を超えると遅延と判定される）、各ステージのデータ転送を開始するマスタデバイス（プロセッサＣＰＵ、演算手段ＦＰＧＡ、ネットワークＬＡＮ、同期制御手段ＴＧＣ）と実行するジョブを示す処理８５ａ〜８５ｊ、マスタデバイスがデータを転送するスレーブデバイス（共有メモリＳＭ、演算手段ＦＰＧＡ、プロセッサＣＰＵ、ネットワークＬＡＮ、データ転送同期手段ＴＧ）のＩＰアドレス８６ａ〜８６ｊからなっている。
【００２６】
図５に示すタイムテーブルＴＢＬは、１ステージ長が５００ミリ秒、ステージ数１０（処理時間は５００ｍｓｅｃ×１０）、遅延閾値５０ミリ秒の例を示している。
なお、タイムテーブルＴＢＬの識別番号８１には、プロセッシングユニットＰＵおよびプロセッシングユニットＰＵに含まれるプロセッサＣＰＵ、演算手段ＦＰＧＡなどが特定できる番号が設定されている。ジョブの処理８５ａ〜８５ｊには、「データ生成」「データ送信」「データ受信」「データ処理」「ジョブなし」のいずれかの処理ステージが割り付けられて設定される。
【００２７】
図６はデータ転送同期手段６から同期制御手段１４に送付される遅延情報のパケット例を示す図で、遅延情報の識別番号９１、遅延発生ステージ９２、遅延発生マスタデバイス９３、遅延時間９４からなっている。遅延情報の識別番号９１には、プロセッシングユニットＰＵおよびプロセッシングユニットＰＵに含まれるプロセッサＣＰＵ、演算手段ＦＰＧＡなどが特定できる番号が設定されている。
図６に示す遅延情報は、識別番号０Ｘ００００、ステージ６でＣＰＵのアービトレーションが１００ミリ秒遅延した例を示している。
【００２８】
上記したマルチプロセッサシステムにおいて、各プロセッシングユニットＰＵには、プロセッサＣＰＵ、演算手段ＦＰＧＡ、ＬＡＮコントローラＬＡＮＣからアクセス可能な共有メモリＳＭが搭載され、プロセッサＣＰＵと演算手段ＦＰＧＡがプロセッサバスＣＰＵＢＵＳとＦＰＧＡＢＵＳを介してバス接続されている。各プロセッシングユニットＰＵの処理シーケンスは「データ受信→演算→データ送信」であり、複数のプロセッシングユニットＰＵがＬＡＮなどのネットワークで接続される。各マスタデバイス（プロセッサ、演算手段、ＬＡＮコントローラ）から共有メモリ５へのアクセスは、データ転送同期手段ＴＧにより管理・制御されている。
即ち、データ転送同期手段ＴＧは同期制御手段ＴＧＣから送付されるタイムテーブルＴＢＬの内容を解析し、例えば１００ミリ秒周期でアクセスを許可するバスＢＵＳを切替え、許可したＢＵＳでマスタデバイスがアービトレーションを発行するか監視し、アービトレーションが発行されたらマスタデバイスから共有メモリ５へのアクセスを許可する。もし、ステージ開始から遅延閾値が経過してもアービトレーションが発行されなければ遅延発生と判定し、同期制御手段ＴＧＣに遅延情報を送付する。
【００２９】
以下、この発明におけるマルチプロセッサシステムの動作を図７〜図９に基づいて説明する。
図７〜図９の各図の上部には、同期制御手段ＴＧＣ、データ転送同期手段ＴＧ、プロセッサＣＰＵ、共有メモリＳＭ、演算手段ＦＰＧＡ、ＬＡＮコントローラＬＡＮＣ、ネットワークが記載されている。
まず、遅延発生の有無に関係ない共通の動作を図７に基づいて説明する。
ステップＳ６０１は、同期制御手段ＴＧＣがタイムテーブルＴＢＬの初期値を生成する。ステップＳ６０２において、データ転送同期手段ＴＧはＦＰＧＡＢＵＳとＬＡＮＢＵＳから共有メモリＳＭへのアクセスをすべて禁止し、同期制御手段ＴＧＣからデータ転送同期手段ＴＧへのアクセスのみを許可する。ステップＳ６０３において、同期制御手段ＴＧＣはタイムテーブルＴＢＬをデータ転送同期手段ＴＧに送信する。ステップＳ６０４において、データ転送同期手段ＴＧはタイムテーブルＴＢＬを受信し、ステップＳ６０５において、受信したタイムテーブルＴＢＬの内容を解析する。
なお、この時ＩＥＥＥ  １５８８で規定されるような時刻同期手段を用いて、ネットワークに接続された複数のプロセッシングユニットＰＵ間、及び／またはプロセッシングユニットＰＵ内のプロセッサＣＰＵ間で時刻情報を共有してもよい。
【００３０】
ステップＳ６０６は、データ転送同期手段ＴＧがタイムテーブルＴＢＬの内容を参照し、ＬＡＮコントローラＬＡＮＣがＬＡＮＢＵＳ経由で共有メモリＳＭにアクセスすることを許可する。ステップＳ６０７において、データ転送同期手段ＴＧは後述するＬＡＮＢＵＳから共有メモリＳＭへのアクセスを監視する。ステップＳ６０８は、ＬＡＮコントローラＬＡＮＣがネットワークＬＡＮ＃０〜ＬＡＮ＃３を通じて他のプロセッシングユニットＰＵからデータを受信する。ステップＳ６０９は、ＬＡＮコントローラＬＡＮＣがデータ転送同期手段ＴＧに対して共有メモリＳＭへのアクセスを要求する。ステップＳ６１０は、ＬＡＮコントローラＬＡＮＣがネットワークＬＡＮ＃０〜ＬＡＮ＃３からＬＡＮＢＵＳ経由で共有メモリＳＭの受信バッファにデータ書込みを行う。ステップＳ６１１は、ＬＡＮコントローラＬＡＮＣからプロセッサＣＰＵへの受信割り込みを発行する。このステップＳ６０８からＳ６１１の間、データ転送同期手段ＴＧはＬＡＮＢＵＳから共有メモリＳＭへのアクセスを監視する。
【００３１】
ステップＳ６１２はデータ転送同期手段ＴＧがタイムテーブルＴＢＬの内容を解析する。ステップＳ６１３は、ＬＡＮコントローラＬＡＮＣからＬＡＮＢＵＳ経由で共有メモリＳＭへのデータ書込みが終了すれば、タイムテーブルＴＢＬの内容にしたがって、データ転送同期手段ＴＧはＬＡＮＢＵＳから共有メモリＳＭへのアクセスを禁止する。ステップＳ６１４において、データ転送同期手段ＴＧはプロセッサＣＰＵからＣＰＵＢＵＳ経由で共有メモリＳＭにアクセスすることを許可する。ステップＳ６１５において、データ転送同期手段ＴＧは後述するＣＰＵＢＵＳから共有メモリＳＭへのアクセスを監視する。ステップＳ６１６は、ステップＳ６１１において受けたＬＡＮコントローラＬＡＮＣからプロセッサＣＰＵへの受信割り込みに基づいて、プロセッサＣＰＵがデータ転送同期手段ＴＧに対して共有メモリＳＭへのアクセス要求を発行する。ステップＳ６１７は、プロセッサＣＰＵが共有メモリＳＭの受信バッファの先頭アドレスを取得する。ステップＳ６１８は、プロセッサＣＰＵは共有メモリＳＭの受信バッファの先頭アドレスを演算手段ＦＰＧＡに通知する。このステップＳ６１６からＳ６１８の間、データ転送同期手段ＴＧはＣＰＵＢＵＳから共有メモリＳＭへのアクセスを監視する。
【００３２】
ステップＳ６１９はデータ転送同期手段ＴＧがタイムテーブルＴＢＬの内容を解析し、ステップＳ６２０において、タイムテーブルＴＢＬの内容にしたがって、データ転送同期手段ＴＧはＣＰＵＢＵＳから共有メモリＳＭへのアクセスを禁止する。ステップＳ６２１は、演算手段ＦＰＧＡからＦＰＧＡＢＵＳ経由で共有メモリＳＭにアクセスすることを許可する。ステップＳ６２２において、データ転送同期手段ＴＧは後述するＦＰＧＡＢＵＳから共有メモリＳＭへのアクセスを監視する。ステップＳ６２３は、演算手段ＦＰＧＡはプロセッサＣＰＵから通知された受信バッファの先頭アドレスを用いて、共有メモリＳＭの受信バッファを読み出し、受信データを演算手段ＦＰＧＡ内部に取り込む。ステップＳ６２４は、演算手段ＦＰＧＡは受信データをもとに演算処理する。ステップＳ６２５は、演算手段ＦＰＧＡがデータ転送同期手段ＴＧに対して共有メモリＳＭへのアクセス要求を発行する。ステップＳ６２６は、演算手段ＦＰＧＡが演算を完了し、その演算結果を共有メモリＳＭに書き込みする。ステップＳ６２７は、演算手段ＦＰＧＡが共有メモリＳＭへの書き込みが完了したらプロセッサＣＰＵに完了通知をする。このステップＳ６２３からＳ６２７の間、データ転送同期手段ＴＧはＦＰＧＡＢＵＳから共有メモリＳＭへのアクセスを監視する。
【００３３】
ステップＳ６２８はデータ転送同期手段ＴＧがタイムテーブルＴＢＬの内容を解析し、一定時間が経過すると、タイムテーブルＴＢＬの内容にしたがって、ステップＳ６２９において、演算手段ＦＰＧＡから共有メモリＳＭへのアクセスを禁止する。ステップＳ６３０において、プロセッサＣＰＵは演算手段ＦＰＧＡから完了通知を受信する。ステップＳ６３１はＣＰＵＢＵＳから共有メモリＳＭへのアクセスを許可し、ステップＳ６３２においてＣＰＵＢＵＳから共有メモリＳＭへのアクセスを監視する。
【００３４】
次にデータ転送同期手段ＴＧに遅延が発生していない場合の動作を図８に基づいて説明する。
図７のステップＳ６３１において、ＣＰＵＢＵＳから共有メモリＳＭへのアクセスを許可すると、ステップＳ７３０において、プロセッサＣＰＵはデータ転送同期手段ＴＧに対して共有メモリＳＭへのアクセス要求を発行する。ステップＳ７３１は、プロセッサＣＰＵが共有メモリＳＭ上の送信バッファに演算手段ＦＰＧＡの演算結果を書き込みして送信データを生成する。ステップＳ７３２は、送信データを生成した後に、共有メモリＳＭ上の送信バッファの先頭アドレスをＬＡＮコントローラＬＡＮＣに通知して、ステップＳ７３３において、ＬＡＮコントローラＬＡＮＣの送信動作をキックする。このステップＳ７３０からＳ７３３の間、データ転送同期手段ＴＧはＣＰＵＢＵＳから共有メモリＳＭへのアクセスを監視する。
【００３５】
ステップＳ７５０はデータ転送同期手段ＴＧがタイムテーブルＴＢＬの内容を解析し、ステップＳ７３４において、タイムテーブルＴＢＬの内容にしたがって、データ転送同期手段ＴＧはＣＰＵＢＵＳから共有メモリＳＭへのアクセスを禁止し、ステップＳ７３５において、ＬＡＮＢＵＳから共有メモリＳＭへのアクセスを許可する。ステップＳ７３６において、データ転送同期手段ＴＧは後述するＬＡＮＢＵＳから共有メモリＳＭへのアクセスを監視する。ステップＳ７３７は、ＬＡＮコントローラＬＡＮＣがデータ転送同期手段ＴＧに対して共有メモリＳＭへのアクセス要求を発行する。ステップＳ７３８は、ＬＡＮコントローラＬＡＮＣが共有メモリＳＭから送信データを取得し、ステップＳ７３９において、ＬＡＮコントローラＬＡＮＣはネットワークＬＡＮ＃０〜ＬＡＮ＃３へデータ送信し、共有メモリＳＭ上の演算結果データを他のプロセッシングユニットＰＵに送信する。ステップＳ７４０は、ＬＡＮコントローラＬＡＮＣがデータの送信を完了すると、プロセッサＣＰＵに対して完了通知する。
【００３６】
次にデータ転送同期手段ＴＧに遅延が発生した場合の動作を図９に基づいて説明する。
図７のステップＳ６３１において、ＣＰＵＢＵＳから共有メモリＳＭへのアクセスを許可した後に、データ転送が輻輳していて、データ転送同期手段ＴＧがタイムテーブルＴＢＬで指定させる時刻に所定の処理を開始できなかった場合、即ち、ステップＳ８３０でタイムアウトが発生した場合、データ転送同期手段ＴＧはステップＳ８３１において、全部のバスＢＵＳへのアクセスを禁止しておき、ステップＳ８３２で遅延情報を生成して同期制御手段ＴＧＣに送付する。遅延情報には、どのステージのどのマスタデバイスの処理の開始がどのくらい遅延したかが含まれる。ステップＳ８３３において、同期制御手段ＴＧＣはデータ転送同期手段ＴＧから送られてきた遅延情報をもとに、タイムテーブルＴＢＬを更新し、ステップＳ８３４において、データ転送同期手段ＴＧに送信する。
ステップＳ８３５において、データ転送同期手段ＴＧは更新されたタイムテーブルＴＢＬを受信し、ステップＳ８３６において、更新されたタイムテーブルＴＢＬを解析し、データ転送同期手段ＴＧは新しいタイムテーブルＴＢＬの内容にしたがって各バスから共有メモリＳＭへのアクセスを許可する。
【００３７】
以上のようにこの発明のマルチプロセッサシステムは、プロセッシングユニットＰＵ内の各マスタデバイス（プロセッサＣＰＵ、演算手段ＦＰＧＡ、ＬＡＮコントローラＬＡＮＣ）が発行するバス要求を時分割で許可するためのデータ転送同期手段ＴＧを設けることで、共有メモリＳＭへのアクセスを制御でき、メモリアクセスで待たされたり、データ転送が輻輳する状態の発生を防ぐことができる。
【符号の説明】
【００３８】
１：プロセッシングユニットＰＵ          ５：共有メモリＳＭ
６：データ転送同期手段ＴＧ              ７：共有メモリバスＳＭＢＵＳ
８：ネットワークＬＡＮ                １１〜１３：プロセッサＣＰＵ
１４：同期制御手段ＴＧＣ                ２１〜２３：演算手段ＦＰＧＡ
３１〜３３：ＬＡＮコントローラＬＡＮＣ  ４１：プロセッサバスＣＰＵＢＵＳ
４２：演算バスＦＰＧＡＢＵＳ            ４３：ネットワークバスＬＡＮＢＵＳ
６０：ＣＰＵＢＵＳインタフェース        ６１：ＦＰＧＡＢＵＳインタフェース
６２：ＬＡＮＢＵＳインタフェース        ６３：ＳＭＢＵＳインタフェース
６４：タイムテーブル受信部              ６５：タイムテーブル解析部
６６：共有メモリバス調停部              ６７：遅延検出部
６８：遅延情報生成部                    ６９：遅延情報送信部
８１〜８６：タイムテーブルＴＢＬ        ９１〜９４：遅延情報
１００：マルチプロセッサシステム      １４１：タイムテーブル生成部
１４２：タイムテーブル更新部          １４３：タイムテーブル記憶部
１４４：タイムテーブル送信部          １４５：ＣＰＵＢＵＳインタフェース
１４６：遅延情報受信部                １４７：遅延情報解析部
１４８：データ転送同期監視部。
【図１】
2010186241.tif 000003
【図２】
2010186241.tif 000004
【図３】
2010186241.tif 000005
【図４】
2010186241.tif 000006
【図５】
2010186241.tif 000007
【図６】
2010186241.tif 000008
【図７】
2010186241.tif 000009
【図８】
2010186241.tif 000010
【図９】
2010186241.tif 000011