(57)【要約】【課題】複数のプロセッサ間でのデータ転送効率を向上可能なマルチプロセッサシステムを提供する。【解決手段】例えば、マイコン［１］ＭＣ１およびそのシステムメモリＭＥＭ１と、マイコン［２］ＭＣ２およびそのシステムメモリＭＥＭ２とを備えた構成において、ＭＥＭ１のデータをＭＥＭ２に転送する際の経路上にデータ中継装置ＰＣＩＣを設ける。ＰＣＩＣは、バッファ［Ａ］ＢＦＡおよびバッファ［Ｂ］ＢＦＢを含み、大容量のデータを転送する際にはＢＦＡとＢＦＢが交互にアクセスされる。例えば、ＭＣ１内のＤＭＡコントローラＤＭＡＣ１によってＢＦＢにデータが格納される際には、ＭＣ２内のＤＭＡコントローラＤＭＡＣ２によってＢＦＡからデータを読み出され（Ｓ６３）、これによって空となったＢＦＡに対して続くデータがＤＭＡＣ１によって格納される（Ｓ６４）。【選択図】図６
2009134635.tif 000002
【特許請求の範囲】
【請求項１】
第１バスおよび第２バスと、
第１プロセッサおよび第２プロセッサと、
前記第１プロセッサによってアクセスされる第１メモリと、
前記第１プロセッサからの設定によって、前記第１プロセッサを経由せずに前記第１メモリへのアクセスを行い、リードデータの前記第１バスへの転送または前記第１バスからのライトデータの前記第１メモリへの転送を制御する第１データ転送制御部と、
前記第２プロセッサによってアクセスされる第２メモリと、
前記第２プロセッサからの設定によって、前記第２プロセッサを経由せずに前記第２メモリへのアクセスを行い、リードデータの前記第２バスへの転送または前記第２バスからのライトデータの前記第２メモリへの転送を制御する第２データ転送制御部と、
前記第１バスと前記第２バスに接続され、Ｎ（Ｎ≧２）個の記憶領域を含むデータバッファを含んだデータ中継部とを備え、
前記データ中継部は、
前記Ｎ個の記憶領域のそれぞれがライト済みに対応する充満状態かリード済みに対応する空状態かを管理するバッファ管理部と、
前記Ｎ個の記憶領域の空状態の有無に応じて前記第１または前記第２データ転送制御部にイネーブル信号を出力し、前記第１メモリから前記第１バスに転送されたデータまたは前記第２メモリから前記第２バスに転送されたデータを、前記Ｎ個の記憶領域の１番目となる第１記憶領域からＮ番目となる第Ｎ記憶領域に向けて順にライトするライト制御部と、
前記Ｎ個の記憶領域の充満状態の有無に応じて前記第２または前記第１データ転送制御部にイネーブル信号を出力し、前記Ｎ個の記憶領域にライトされたデータを、前記第１記憶領域から前記第Ｎ記憶領域に向けて順にリードし、このリードされたデータを前記第２バスまたは前記第１バスに転送するリード制御部とを有し、
前記ライト制御部は、前記第Ｎ記憶領域のライトが完了し前記第１記憶領域が空状態の場合は、前記第Ｎ記憶領域のデータに続くデータを前記第１記憶領域に戻ってライトし、
前記リード制御部は、前記第Ｎ記憶領域のリードが完了し前記第１記憶領域が充満状態の場合は、前記第１記憶領域に戻ってリードすることを特徴とするマルチプロセッサシステム。
【請求項２】
請求項１記載のマルチプロセッサシステムにおいて、
前記データ中継部は、
前記データバッファとなる第１および第２データバッファと、
前記バッファ管理部となる第１および第２バッファ管理部と、
前記ライト制御部となる第１および第２ライト制御部と、
前記リード制御部となる第１および第２リード制御部とを備え、
前記第１バッファ管理部は、前記第１データバッファの前記Ｎ個の記憶領域を管理し、
前記第２バッファ管理部は、前記第２データバッファの前記Ｎ個の記憶領域を管理し、
前記第１ライト制御部は、前記第１データバッファにおける前記Ｎ個の記憶領域の空状態の有無に応じて前記第１データ転送制御部にイネーブル信号を出力し、前記第１メモリから前記第１バスに転送されたデータを前記第１データバッファにライトし、
前記第１リード制御部は、前記第１データバッファにおける前記Ｎ個の記憶領域の充満状態の有無に応じて前記第２データ転送制御部にイネーブル信号を出力し、前記第１データバッファにライトされたデータを前記第２バスに転送し、
前記第２ライト制御部は、前記第２データバッファにおける前記Ｎ個の記憶領域の空状態の有無に応じて前記第２データ転送制御部にイネーブル信号を出力し、前記第２メモリから前記第２バスに転送されたデータを前記第２データバッファにライトし、
前記第２リード制御部は、前記第２データバッファにおける前記Ｎ個の記憶領域の充満状態の有無に応じて前記第１データ転送制御部にイネーブル信号を出力し、前記第２データバッファにライトされたデータを前記第１バスに転送することを特徴とするマルチプロセッサシステム。
【請求項３】
請求項１記載のマルチプロセッサシステムにおいて、
前記Ｎ個の記憶領域は、２個の記憶領域であることを特徴とするマルチプロセッサシステム。
【請求項４】
請求項３記載のマルチプロセッサシステムにおいて、
前記２個の記憶領域は、それぞれ独立して形成された２個の記憶回路によって実現されることを特徴とするマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマルチプロセッサシステムに関し、特に各プロセッサが各ＤＭＡコントローラ（Direct Memory Access Controller）を用いて各プロセッサ同士のデータ転送を行うマルチプロセッサシステムに適用して有益な技術に関するものである。
【背景技術】
【０００２】
例えば、２つのプロセッサ間でデータ転送を行う際には、この各プロセッサ間を繋ぐバス上に共有メモリを設置する方式などが知られている。この方式によってデータ転送を行う場合は、２つのプロセッサ間でバス使用権の調停を行いながら、一方のプロセッサが共有メモリにデータを書き込み、他方のプロセッサが共有メモリからデータを読み出すような動作が行われる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、前記のようなマルチプロセッサシステムの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００４】
図１２は、本発明の前提として検討した従来技術のマルチプロセッサシステムにおいて、その構成の一例を示すブロック図である。図１２に示すマルチプロセッサシステムは、プロセッサ［１］ＣＰＵ１とプロセッサ［２］ＣＰＵ２を共通のローカルバスＬＢＵＳで接続し、このＬＢＵＳに転送用バッファＢＦが接続された構成となっている。例えば、ＣＰＵ１用のシステムメモリＭＥＭ１からＣＰＵ２用のシステムメモリＭＥＭ２にデータ転送を行う場合、ＭＥＭ１のデータをＣＰＵ１を介して転送用バッファＢＦにライトし、このＢＦのデータをＣＰＵ２を介してＭＥＭ２に書き込む。
【０００５】
このような動作を行うため、ＣＰＵ１とＣＰＵ２は、それぞれバス調停機能を備える必要がある。例えば、ＣＰＵ１は、バッファＢＦにライトを行う際に、予めＣＰＵ２に対してバス権要求信号ＢＲＥＱを出力し、その返答としてＣＰＵ２からバス権要求許可信号ＢＡＣＫを受けることでＬＢＵＳの権限を確保する必要がある。また、ＣＰＵ２は、ＢＦからリードを行う際に、その逆の手順でＬＢＵＳの権限を確保する必要がある。
【０００６】
したがって、このような構成を用いると、転送処理の最中でプロセッサＣＰＵのリソースが奪われると共に、例えばデータを分割して転送する際にはその都度ハンドシェイク（ＢＲＥＱおよびＢＡＣＫ）が必要となる。更には、ＣＰＵ１がＢＦにデータをライト中、ＣＰＵ２は待たされることになる。このようなことから、処理手順の複雑化、転送効率の低下、プロセッサの処理効率の低下などが懸念される。
【０００７】
本発明は、このようなことを鑑みてなされたものであり、その目的の一つは、複数のプロセッサ間でのデータ転送効率を向上可能なマルチプロセッサシステムを提供することにある。また、本発明の他の目的の一つは、複数のプロセッサ間でのデータ転送効率を小さい回路規模で向上可能なマルチプロセッサシステムを提供することにある。本発明の前記ならびにそれ以外の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本発明の一実施の形態によるマルチプロセッサシステムは、第１プロセッサ側の第１システムメモリと第２プロセッサ側の第２システムメモリとの間のデータ転送を、第１プロセッサ側の第１データ転送制御部（代表的にはＤＭＡコントローラ）と第２プロセッサ側の第２データ転送制御部を用いて行うものとなっている。そして、この第１システムメモリと第２システムメモリとの間のデータ転送経路に、Ｎ（Ｎ≧２）個の記憶領域を含むデータバッファを含んだデータ中継部が備わったことが特徴となっている。
【０００９】
例えば、第１システムメモリから第２システムメモリにデータ転送を行う場合は、第１データ転送制御部が第１システムメモリからデータ中継部のデータバッファに向けたデータ転送を制御し、第２データ転送制御部がデータバッファから第２システムメモリに向けたデータ転送を制御する。この際に、第１システムメモリからのデータは、Ｎ個の記憶領域において、第１番目の記憶領域から第Ｎ番目の記憶領域に向けて順に格納され、第Ｎ番目の記憶領域に格納された後は第１番目の記憶領域に戻って格納される。一方、これと並行して、このＮ個の記憶領域に格納されたデータは、第１番目の記憶領域から第Ｎ番目の記憶領域に向けて順に読み出され、第Ｎ番目の記憶領域から読み出された後は第１番目の記憶領域に戻って読み出され、その都度第２システムメモリに転送される。
【００１０】
また、この際に、このＮ個の記憶領域のそれぞれがライト済み（充満状態）であるかリード済み（空状態）であるかが監視される。データ中継部は、対象とする記憶領域が空状態の場合には、第１データ転送制御部のデータ転送（即ち記憶領域への書き込み）をイネーブルとし、対象とする記憶領域が充満状態である場合には、第２データ転送制御部のデータ転送（即ち記憶領域からの読み出し）をイネーブルとする。
【００１１】
このような構成を用いると、例えば、大容量のデータ転送を行った場合に、ある記憶領域に対するライト動作と、別の記憶領域に対するリード動作とを並行して行うことができ、高いデータ転送効率を実現できる。また、この際に、ＤＭＡコントローラ等を用いているため、プロセッサのリソースは奪われずに、その処理効率の低下を抑制できる。さらに、Ｎ個の記憶領域を巡回させながら使用する方式であるため、大容量のデータ転送をこの容量に満たない小容量のデータバッファを用いて実現でき、回路規模の低減が可能となる。なお、最小構成としては、２個の記憶領域を用いて、この２個の記憶領域に対して交互にライト又はリードするような方式となる。
【００１２】
また、本発明の一実施の形態によるマルチプロセッサシステムは、前述したようなデータバッファを、第１システムメモリから第２システムメモリに向けたデータ転送用と、第２システムメモリから第１システムメモリに向けたデータ転送用とに分けることで２系統備えたことが特徴となっている。この場合、例えば第１データ転送制御部と第２データ転送制御部が備える複数のチャネルを用いて双方向のデータ転送を設定すれば、途中で各プロセッサの処理が介入することなくこの双方向のデータ転送を並行して行うことが可能となる。例えば、１系統のデータバッファを双方向対応とした場合、回路が複雑化すると共に、双方向のデータ転送を行う際に途中でプロセッサの処理が介入することになる。また、例えば双方向対応のデータバッファを２系統設けた場合、回路の複雑化や回路規模の増大が懸念される。したがって、前述したように一方向対応のデータバッファを２系統設けることで、小さい回路規模で双方向のデータ転送を効率的に行うことができる。
【発明の効果】
【００１３】
本発明の一実施の形態によるマルチプロセッサシステムを用いることで、複数のプロセッサ間でのデータ転送効率を向上可能となる。また、複数のプロセッサ間でのデータ転送効率を小さい回路規模で向上可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００１５】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００１６】
まず、本発明の検討にあたり、その前提として検討した比較例となるマルチプロセッサシステムについて説明を行う。図１は、本発明の前提として検討した比較例のマルチプロセッサシステムにおいて、その構成の一例を示すブロック図である。図１に示すマルチプロセッサシステムは、ローカルバス［１］ＬＢＵＳ１にマイクロコンピュータ（以下、マイコンと略す）［１］ＭＣ１およびこのＭＣ１用のシステムメモリＭＥＭ１が接続され、ローカルバス［２］ＬＢＵＳ２にマイコン［２］ＭＣ２およびこのＭＣ２用のシステムメモリＭＥＭ２が接続されている。
【００１７】
さらに、図１のマルチプロセッサシステムは、ＬＢＵＳ１およびＬＢＵＳ２をそれぞれ一方のポートおよび他方のポートとするデュアルポートメモリＤＰＲＡＭを備えている。マイコン［１］ＭＣ１は、プロセッサ［１］ＣＰＵ１およびＤＭＡコントローラ［１］ＤＭＡＣ１を含み、マイコン［２］ＭＣ２は、プロセッサ［２］ＣＰＵ２およびＤＭＡコントローラ［２］ＤＭＡＣ２を含んでいる。例えば、ＭＥＭ１からＭＥＭ２にデータ転送を行いたい場合、ＤＭＡＣ１がＭＥＭ１より所望のデータをリードすると共にＤＰＲＡＭにライトし、ＤＭＡＣ２がこのライトデータをＤＰＲＡＭよりリードすると共にＭＥＭ２にライトする。したがって、前述した図１２の場合と異なり、このデータ転送の最中、ＣＰＵ１およびＣＰＵ２のリソースは奪われないので、プロセッサの処理効率はある程度確保できる。
【００１８】
ただし、この場合、ＤＭＡコントローラＤＭＡＣの１回の起動に伴う最大データ転送量は、ＤＰＲＡＭの容量となる。したがって、大容量のデータを転送したい場合、（１）ＤＰＲＡＭの容量を大きくする、（２）ＤＰＲＡＭの容量を小さくしてＤＭＡコントローラＤＭＡＣを複数回起動する、のいずれかの方式を用いる必要がある。まず、（１）の方式を用いた場合、当然のことながら回路規模が大きくなってしまう。
【００１９】
一方、（２）の方式を用いた場合、ＣＰＵ１とＣＰＵ２を制御するソフトウェアの負担が大きくなる。すなわち、例えば、ＣＰＵ１は、ＤＭＡＣ１に対してＮ回目の起動を行う際、ＣＰＵ２がＤＭＡＣ２に対して行った（Ｎ−１）回目の起動に伴う動作が完了していることを確認する必要がある。このため、例えば、ＣＰＵ２のソフトウェアは、ＤＭＡＣ２から（例えば割り込み信号等によって）動作完了の通知を受けた際に割り込み信号［Ａ］等をアサートし、ＣＰＵ１のソフトウェアは、この割り込み信号［Ａ］等のアサートを検知してＤＭＡＣ１を起動するといった処理を実行する必要がある。そうすると、ソフトウェア処理が煩雑になると共に、このような処理の実行に伴いデータ転送効率やプロセッサＣＰＵの処理効率が低下する恐れもある。以降に説明する実施の形態では、このような問題点も含めて解決を図る。
【００２０】
（実施の形態１）
図２は、本発明の実施の形態１によるマルチプロセッサシステムにおいて、その構成の一例を示すブロック図である。図２に示すマルチプロセッサシステムは、ローカルバス［１］ＬＢＵＳ１に接続されたマイコン［１］ＭＣ１と、ローカルバス［２］ＬＢＵＳ２に接続されたマイコン［２］ＭＣ２と、ＭＣ１用のシステムメモリＭＥＭ１と、ＭＣ２用のシステムメモリＭＥＭ２等を含んでいる。マイコン［１］ＭＣ１は、プロセッサ［１］ＣＰＵ１およびＤＭＡコントローラ［１］ＤＭＡＣ１を含み、マイコン［２］ＭＣ２は、プロセッサ［２］ＣＰＵ２およびＤＭＡコントローラ［２］ＤＭＡＣ２を含んでいる。各ローカルバスＬＢＵＳ１，ＬＢＵＳ２は各マイコンＭＣ１，ＭＣ２の外部に接続される外部バスである。各マイコンＭＣ１，ＭＣ２は、プロセッサ及びＤＭＡコントローラとを接続する図示されない内部バスを含む。
【００２１】
システムメモリＭＥＭ１は、メモリバスＭＢＵＳ１によってマイコン［１］ＭＣ１と接続され、システムメモリＭＥＭ２は、メモリバスＭＢＵＳ２によってマイコン［２］ＭＣ２と接続される。ＤＭＡコントローラ（データ転送制御部）ＤＭＡＣは、広く知られているように、予めプロセッサＣＰＵによって転送元デバイスのアドレス（メモリアドレス、ＩＯアドレス等）、転送先デバイスのアドレス、および転送データのサイズなどが設定された後に起動命令を受けると、この設定に基づいてＣＰＵを経由せずにデータ転送を行う機能を備えている。また、転送元デバイスや転送先デバイスとして、ＤＲＥＱ（データ転送要求信号）付デバイスを指定することも可能となっている。この場合、ＤＭＡＣは、当該デバイスからのＤＲＥＱを受信した際に、当該デバイスに対してデータ転送受付信号ＤＡＣＫを送信することでアクセスを行う。なお、ＤＭＡＣは、通常、複数のチャネルを備え、各チャネル毎に前述したような設定を任意に行うことが可能となっている。
【００２２】
このような構成において、図２のマルチプロセッサシステムは、さらに、ＬＢＵＳ１とＬＢＵＳ２に接続されるデータ中継装置ＰＣＩＣを備えたことが主要な特徴となっている。図３は、図２におけるデータ中継装置ＰＣＩＣの詳細な構成例を示すブロック図である。図３に示すデータ中継装置ＰＣＩＣは、ＬＢＵＳ１からＬＢＵＳ２へ向かうデータ転送を処理するチャネル０用の回路部と、ＬＢＵＳ２からＬＢＵＳ１へ向かうデータ転送を処理するチャネル１用の回路部を含んでいる。
【００２３】
チャネル０用の回路部は、ＬＢＵＳ１に接続されるライト制御部ＷＣＴＬ０と、ＬＢＵＳ２に接続されるリード制御部ＲＣＴＬ０と、例えばデュアルポートを備えたバッファ［Ａ］ＢＦＡ０，バッファ［Ｂ］ＢＦＢ０と、カウンタ部ＣＵＮＴ０を含んでいる。チャネル１用の回路部は、ＬＢＵＳ１に接続されるリード制御部ＲＣＴＬ１と、ＬＢＵＳ２に接続されるライト制御部ＷＣＴＬ１と、例えばデュアルポートを備えたバッファ［Ａ］ＢＦＡ１，バッファ［Ｂ］ＢＦＢ１と、カウンタ部ＣＵＮＴ１を含んでいる。各バッファＢＦＡ０，ＢＦＢ０，ＢＦＡ１，ＢＦＢ１は、例えばそれぞれ独立した記憶回路とすることで任意に同時アクセスが可能なように構成され、特に限定はされないが、ここではそれぞれ１２８Ｂｙｔｅの容量を備えるものとする。
【００２４】
ライト制御部ＷＣＴＬ０（ＷＣＴＬ１）は、外部よりライト命令を受けた際に、ローカルバスＬＢＵＳ１（ＬＢＵＳ２）からライトデータを受信し、当該ライトデータをバッファ［Ａ］ＢＦＡ０またはバッファ［Ｂ］ＢＦＢ０（ＢＦＡ１またはＢＦＢ１）の一方のポートからライトする。また、ＷＣＴＬ０（ＷＣＴＬ１）は、カウンタ部ＣＵＮＴ０（ＣＵＮＴ１）からの制御信号によってＢＦＡ０およびＢＦＢ０（ＢＦＡ１およびＢＦＢ１）の状態を認識し、その状態に応じて外部に向けてデータ転送要求信号ＤＲＥＱ０（ＤＲＥＱ１）を送信する。図２のＤＭＡＣ１（ＤＭＡＣ２）は、このＤＲＥＱ０（ＤＲＥＱ１）に応答してデータ転送要求受付信号ＤＡＣＫ０（ＤＡＣＫ１）を送信するが、ここでは、このＤＡＣＫ０（ＤＡＣＫ１）は外部からのライト命令に相当することになる。
【００２５】
リード制御部ＲＣＴＬ０（ＲＣＴＬ１）は、外部よりリード命令を受けた際に、バッファ［Ａ］ＢＦＡ０またはバッファ［Ｂ］ＢＦＢ０（ＢＦＡ１またはＢＦＢ１）の他方のポートからデータをリードし、このリードデータをローカルバスＬＢＵＳ２（ＬＢＵＳ１）に送信する。また、ＲＣＴＬ０（ＲＣＴＬ１）は、カウンタ部ＣＵＮＴ０（ＣＵＮＴ１）からの制御信号によってＢＦＡ０およびＢＦＢ０（ＢＦＡ１およびＢＦＢ１）の状態を認識し、その状態に応じて外部に向けてデータ転送要求信号ＤＲＥＱ０（ＤＲＥＱ１）を送信する。図２のＤＭＡＣ２（ＤＭＡＣ１）は、このＤＲＥＱ０（ＤＲＥＱ１）に応答してＤＡＣＫ０（ＤＡＣＫ１）を送信するが、ここでは、このＤＡＣＫ０（ＤＡＣＫ１）が外部からのリード命令に相当することになる。
【００２６】
図４は、図３におけるカウンタ部ＣＵＮＴ０，１の詳細な構成例を示すブロック図である。図４に示すカウンタ部（バッファ管理部）ＣＵＮＴは、ライトカウンタＷＣＮＴ、リードカウンタＲＣＮＴ、ステートマシンＳＭなどを含んでいる。ライトカウンタＷＣＮＴは、ライト制御部ＷＣＴＬからのライトパルスをカウントし、そのカウンタ値が各バッファの容量である１２８Ｂｙｔｅの整数倍の時、または全ての転送が完了した時(予め定められた設定値にカウンタ値が達した時)に制御信号（ｗｒ＿ｅｎｄ）をステートマシンＳＭに向けて送信する。ライトパルスは、ライト制御部ＷＣＴＬがバッファ［Ａ］ＢＦＡ，［Ｂ］ＢＦＢに対してライトを１サイクル実行する毎に生成される。なお、ライトカウンタＷＣＮＴに予め定める設定値は、一回の転送サイズを設定する。例えば、図４においては、３２０Ｂｙｔｅを設定する。
【００２７】
リードカウンタＲＣＮＴは、リード制御部ＲＣＴＬからのリードパルスをカウントし、そのカウンタ値が各バッファの容量である１２８Ｂｙｔｅの整数倍の時、または全ての転送が完了した時(予め定められた設定値にカウンタ値が達した時)に制御信号（ｒｄ＿ｅｎｄ）をステートマシンＳＭに向けて送信する。リードパルスは、リード制御部ＲＣＴＬがバッファ［Ａ］ＢＦＡ，［Ｂ］ＢＦＢからのリードを１サイクル実行する毎に生成される。なお、リードカウンタＲＣＮＴに予め定める設定値は、一回の転送サイズを設定する。
【００２８】
ステートマシンＳＭは、初期状態を空状態（ＥＭＰ）として、この状態で制御信号（ｗｒ＿ｅｎｄ）を受信すると充満状態（Ｎｏｔ  ＥＭＰ）へ遷移する。逆に、充満状態（Ｎｏｔ  ＥＭＰ）において制御信号（ｒｄ＿ｅｎｄ）を受信すると空状態（ＥＭＰ）へ遷移する。この空状態（ＥＭＰ）または充満状態（Ｎｏｔ  ＥＭＰ）の判断は、各バッファ［Ａ］ＢＦＡ，［Ｂ］ＢＦＢ毎に行われる。そして、ステートマシンＳＭは、リード制御部ＲＣＴＬおよびライト制御部ＷＣＴＬに向けて、各サイクル毎に、各バッファ［Ａ］ＢＦＡ，［Ｂ］ＢＦＢのそれぞれが空状態（ＥＭＰ）であるか充満状態（Ｎｏｔ  ＥＭＰ）であるかを送信する。
【００２９】
図５は、図４におけるリード制御部ＲＣＴＬおよびライト制御部ＷＣＴＬの動作例を示すものであり、（ａ）はリード制御部の動作説明図、（ｂ）はライト制御部の動作説明図である。リード制御部ＲＣＴＬは、図５（ａ）に示すように、前述したステートマシンＳＭからの出力信号を受けて、バッファ［Ａ］ＢＦＡおよびバッファ［Ｂ］ＢＦＢ共に空状態（ＥＭＰ）の場合にのみディスエーブルとなり、それ以外の場合はイネーブルとなる。一方、ライト制御部ＷＣＴＬは、図５（ｂ）に示すように、前述したステートマシンＳＭからの出力信号を受けて、バッファ［Ａ］ＢＦＡおよびバッファ［Ｂ］ＢＦＢ共に充満状態（Ｎｏｔ  ＥＭＰ）の場合にのみディスエーブルとなり、それ以外の場合はイネーブルとなる。
【００３０】
なお、充満状態（Ｎｏｔ  ＥＭＰ）とは、当該バッファが全て満たされた状態（ＦＵＬＬ）かバッファの有効データが各バッファの容量である１２８Ｂｙｔｅ未満の状態（ＨＡＬＦ）を意味する。この状態（ＨＡＬＦ）は、前述したようにライトカウンタＷＣＮＴおよびリードカウンタＲＣＮＴのカウント値が１２８Ｂｙｔｅ未満となった場合に用いられる。
【００３１】
図６は、図２のマルチプロセッサシステムにおいて、その動作概要の一例を示す説明図である。ここでは、図２のＭＣ１用システムメモリＭＥＭ１のデータをＭＣ２用システムメモリＭＥＭ２に転送する場合を想定し、これに伴い、図３のデータ中継装置ＰＣＩＣにおけるチャネル０用の回路部を用いるものとする。また、ここでは、ローカルバスＬＢＵＳ１とＬＢＵＳ２は同一周波数で動作するものとする。
【００３２】
図６のＳ６１においては、まず、ＣＰＵ１が、ＤＭＡＣ１に対して転送元をＭＥＭ１に、転送先をＰＣＩＣに設定し、ＣＰＵ２が、ＤＭＡＣ２に対して転送元をＰＣＩＣに、転送先をＭＥＭ２に設定し、それぞれの転送サイズをここでは３２０Ｂｙｔｅに設定する。その後、ＣＰＵ１およびＣＰＵ２は、ＤＭＡＣ１およびＤＭＡＣ２を起動状態にする。バッファ［Ａ］ＢＦＡおよびバッファ［Ｂ］ＢＦＢのサイズは、それぞれ１２８Ｂｙｔｅとする。初期状態では、ＢＦＡおよびＢＦＢ共に空状態（ＥＭＰ）であるため、これに伴いＤＭＡＣ１に対してはデータ転送要求信号ＤＲＥＱがイネーブルとなり、ＤＭＡＣ２に対してはＤＲＥＱがディスエーブルとなる。
【００３３】
次いで、Ｓ６２において、ＤＭＡＣ１が、ＤＲＥＱのイネーブルに伴いＭＥＭ１のデータをバッファ［Ａ］ＢＦＡの例えばポート［１］からライトする。一方、ＤＭＡＣ２は、ＤＲＥＱのディスエーブルに伴い待機状態となる。ここで、ＢＦＡに対して１２８Ｂｙｔｅのデータが転送されるとＢＦＡは充満状態（ＦＵＬＬ）となる。ＢＦＡが充満状態（ＦＵＬＬ）になると、ＤＭＡＣ２に対するＤＲＥＱがイネーブルに遷移する。
【００３４】
続いて、Ｓ６３において、ＤＭＡＣ１が、ＭＥＭ１のデータをバッファ［Ｂ］ＢＦＢのポート［１］からライトする。一方、ＤＭＡＣ２は、前述したＤＲＥＱのイネーブルに伴いバッファ［Ａ］ＢＦＡのデータをポート［２］を介してＭＥＭ２へリードする。ここで、ＢＦＢに対して１２８Ｂｙｔｅ（すなわち累計２５６Ｂｙｔｅ）のデータが転送されると、ＢＦＢは充満状態（ＦＵＬＬ）となる。一方、ＢＦＡは、元々充満状態（ＦＵＬＬ）であったがＤＭＡＣ２に伴い１２８Ｂｙｔｅの転送が行われると空状態（ＥＭＰ）に遷移する。これにより、ＤＭＡＣ１側およびＤＭＡＣ２側のＤＲＥＱ共にイネーブルを保つ。
【００３５】
続いて、Ｓ６４において、ＤＭＡＣ１が、ＭＥＭ１のデータをＳ６３で空状態（ＥＭＰ）となったバッファ［Ａ］ＢＦＡにポート［１］を介してライトする。一方、ＤＭＡＣ２は、バッファ［Ｂ］ＢＦＢのデータをポート［２］を介してＭＥＭ２へリードする。ここで、ＢＦＡに対して６４Ｂｙｔｅ（すなわち累計３２０Ｂｙｔｅ）のデータが転送されると、ＢＦＡは充満状態（ＨＡＬＦ）となる。一方、ＢＦＢは、元々充満状態（ＦＵＬＬ）であったがＤＭＡＣ２による１２８Ｂｙｔｅの転送が行われると空状態（ＥＭＰ）に遷移する。そして、ＤＭＡＣ１側の転送は完了となり、ＤＭＡＣ１は、割り込み信号等を用いてＣＰＵ１に対してデータ転送の完了を通知する。
【００３６】
最後に、Ｓ６５において、ＤＭＡＣ２が、バッファ［Ａ］ＢＦＡのデータをポート［２］を介してＭＥＭ２へリードする。ここで、ＢＦＡから６４Ｂｙｔｅのデータが転送されると、ＢＦＡは、充満状態（ＨＡＬＦ）から空状態（ＥＭＰ）に遷移する。そして、ＤＭＡＣ２側の転送も完了となり、ＤＭＡＣ２は、割り込み信号等を用いてＣＰＵ２に対してデータ転送の完了を通知する。
【００３７】
図７は、図３のデータ中継装置ＰＣＩＣにおいて、その各バッファＢＦＡ０，ＢＦＢ０，ＢＦＡ１，ＢＦＢ１の論理アドレス割付の一例を示す説明図である。図７に示すように、例えば、ベースアドレス＋「ｈ’０００  ００００〜ｈ’１ＦＦ  ＦＦＦＦ」の３２ＭＢｙｔｅをチャネル０用バッファの見かけ上のアドレス空間とし、ベースアドレス＋「ｈ’２００  ００００〜ｈ’３ＦＦ  ＦＦＦＦ」の３２ＭＢｙｔｅをチャネル１用バッファの見かけ上のアドレス空間とする。例えば、３２ＭＢｙｔｅは、ＤＭＡコントローラＤＭＡＣによって連続転送可能な最大データサイズであり、異なるＤＭＡコントローラを採用し、用途に応じたデータサイズを選択することが可能となる。
【００３８】
ここで、チャネル０用バッファとして実際に物理的に存在するのは、「ｈ’０００  ００００〜ｈ’０００  ００７Ｆ」となる１２８Ｂｙｔｅのバッファ［Ａ］ＢＦＡ０と、これに連続する１２８Ｂｙｔｅのバッファ［Ｂ］ＢＦＢ０である。これ以降は、物理的に存在しないバッファ［Ａ］のシャドウとバッファ［Ｂ］のシャドウが交互に連続する。一方、チャネル１用バッファとして実際に物理的に存在するのは、「ｈ’２００  ００００〜ｈ’２００  ００７Ｆ」となる１２８Ｂｙｔｅのバッファ［Ａ］ＢＦＡ１と、これに連続する１２８Ｂｙｔｅのバッファ［Ｂ］ＢＦＢ１である。これ以降は、物理的に存在しないバッファ［Ａ］のシャドウとバッファ［Ｂ］のシャドウが交互に連続する。
【００３９】
すなわち、物理的にはチャネル０用バッファとして２５６Ｂｙｔｅ、チャネル１用バッファとして２５６Ｂｙｔｅしか設けていないが、図６で説明したようなバッファ［Ａ］とバッファ［Ｂ］の２交代動作を行うことで各チャネル毎に３２ＭＢｙｔｅの連続データ転送が可能となる。なお、図６から判るように原理的には３２ＭＢｙｔｅに限らず、それ以上のデータを連続データ転送することも勿論可能である。
【００４０】
ＤＭＡコントローラＤＭＡＣは、通常、連続するアドレス空間にアクセスする仕様となっているため、例えば、バッファ［Ｂ］となる「ｈ’０００  ００ＦＦ」にアクセスした直後は、バッファ［Ａ］のシャドウとなる「ｈ’０００  ０１００」にアクセスする。ただし、これは見かけ上のアクセスであり、この場合にデータ中継装置ＰＣＩＣ内で実際にアクセスされるアドレスはバッファ［Ａ］となる「ｈ’０００  ００００」である。このような２交代動作の方式は、例えば、アドレス「ｈ’ｘｘｘ  ｘｘｙｙ」が入力された際にその下２桁の「ｙｙ」の箇所のみでアクセスを行えば容易に実現可能である。
【００４１】
このように、図２のマルチプロセッサシステムを用いることで、（１）高いデータ転送効率を実現可能となり、（２）データ転送に際してのプロセッサの処理効率を向上可能となり、（３）小回路規模でデータ転送効率またはプロセッサの処理効率を向上可能となる。すなわち、例えば、図１２の構成例と比較すると、各プロセッサＣＰＵにバス調停機能を設けて調停動作を行わせる必要がなく、さらに、一方のシステムメモリＭＥＭからのデータ転送を行っている間、他方のシステムメモリＭＥＭに向けてもデータ転送を行うことができる。また、例えば、図１の構成例と比較すると、小容量のバッファＢＦを用いて当該容量を超える連続データ転送が行える。そして、このデータ転送の最中におけるプロセッサＣＰＵの介入（ＣＰＵのソフトウェアを用いたＤＭＡＣの操作等）は不要であるため、ＣＰＵによる所望のプログラム処理と各システムメモリ間でのデータ転送との並列動作を効率的に行える。
【００４２】
なお、図３等の説明においては、各バッファＢＦＡ０，ＢＦＢ０，ＢＦＡ１，ＢＦＢ１をデュアルポートメモリとしたが、図６の説明から判るように、ある１つのバッファに対してライト命令とリード命令が同時に発生することはない。したがって、各バッファにおいては、同時アクセス時の調停機能などは必要なく、各バッファの小規模化が図れる。さらに、例えばポート［１］とポート［２］の周波数が同一の場合または周波数差を許容できるような場合には、各バッファをシングルポートメモリとすることもでき、このような場合は、各バッファの更なる小規模化が図れる。
【００４３】
図８は、図６を補足する動作説明図である。図６では、ローカルバスＬＢＵＳ１とＬＢＵＳ２が同一周波数で動作する場合を想定したが、ここでは、ＬＢＵＳ１（すなわちバッファＢＦのポート［１］）がＬＢＵＳ２（すなわちＢＦのポート［２］）の２倍の周波数で動作する場合を想定する。
【００４４】
この場合、例えば、図８のｔ＝ｔ２において、ポート［１］側からのライト動作によりバッファ［Ａ］ＢＦＡが充満状態（ＦＵＬＬ）になると、ポート［２］側のデータ転送要求信号ＤＲＥＱがイネーブルに遷移し、ポート［２］側よりＢＦＡのリード動作が開始される。その後、ｔ＝ｔ４において、ポート［１］側からのライト動作によりバッファ［Ｂ］ＢＦＢが充満状態（ＦＵＬＬ）となるが、ポート［２］側からのＢＦＡのリード動作は半分しか完了していないため、ＢＦＡおよびＢＦＢ共に充満状態（ＦＵＬＬ）となり、ポート［１］側のＤＲＥＱはディスエーブルに遷移する。
【００４５】
ｔ＝ｔ５においては、ポート［１］側のＤＲＥＱのディスエーブルに伴い、ポート［１］側からライト動作を行うＤＭＡＣは待機状態となり、ポート［２］側のＤＭＡＣによるリード動作のみが行われる。その後、ｔ＝ｔ６において、ポート［２］側からのＢＦＡのリード動作が完了すると、ＢＦＡが空状態（ＥＭＰ）に遷移し、ポート［１］側のＤＲＥＱがイネーブルに遷移する。そして、ｔ＝ｔ７において、ポート［１］側のＤＭＡＣによるＢＦＡに対するライト動作が再開される。
【００４６】
このｔ＝ｔ４〜ｔ６のように、ローカルバスＬＢＵＳ１とＬＢＵＳ２の周波数が異なる場合、周波数が速いローカルバス側のＤＭＡＣにおいて待機状態が発生することがある。ただし、これはＤＭＡＣがＤＲＥＱを判別することによるハードウェア処理で行われるため、プロセッサＣＰＵの処理が介入するようなことはない。なお、本実施の形態では、バッファＢＦを２交代動作としたためこのような待機状態が発生するが、例えば、３個のバッファＢＦＡ，ＢＦＢ，ＢＦＣで３交代動作を行わせたり、更にはＮ（Ｎ＞３）個のバッファでＮ交代動作を行わせれば、このような待機状態をある程度回避できる。ただし、この場合、勿論、バッファ容量が大きくなると共に、これに伴う各種制御回路も必要となるため、この観点からは２交代動作とすることが望ましい。
【００４７】
図９は、図３のデータ中継装置ＰＣＩＣにおいて、その動作例を示す説明図である。前述したように、図３のデータ中継装置ＰＣＩＣは、ローカルバスＬＢＵＳ１からＬＢＵＳ２へ向けた転送を担うチャネル０と、ＬＢＵＳ２からＬＢＵＳ１へ向けた転送を担うチャネル１とを備えている。したがって、図９に示すように、例えば、システムメモリＭＥＭ１内の記憶領域ＡＲ１１をシステムメモリＭＥＭ２内の記憶領域ＡＲ２１に転送する処理と、ＭＥＭ２内の記憶領域ＡＲ２２をＭＥＭ１内の記憶領域ＡＲ１２に転送する処理とを並行して実行可能である。
【００４８】
この場合、例えば、ＤＭＡＣ１のチャネル０において、転送元をＡＲ１１に、転送先をＰＣＩＣのチャネル０用バッファに設定し、チャネル１において、転送元をＰＣＩＣのチャネル１用バッファに、転送先をＡＲ１２に設定する。一方、ＤＭＡＣ２のチャネル０においては、転送元をＰＣＩＣのチャネル０用バッファに、転送先をＡＲ２１に設定し、チャネル１においては、転送元をＡＲ２２に、転送先をＰＣＩＣのチャネル１用バッファに設定する。
【００４９】
このような設定を行った後、ＣＰＵ１およびＣＰＵ２がＤＭＡＣ１およびＤＭＡＣ２に対して起動を行うと、前述したような双方向のデータ転送を途中でＣＰＵを介することなく行うことができる。特に限定はされないが、例えばＤＭＡＣ１およびＤＭＡＣ２の各チャネルが所謂ラウンドロビンモード（１転送単位の転送が終了するとそのチャネルの優先順位が最下位になる方式）で動作する場合、各ＤＭＡＣはＰＣＩＣに対するライト動作とリード動作とを時系列的に交互に行うことになる。
【００５０】
このような双方向のデータ転送は、例えば、ＣＰＵ１で処理したデータをＣＰＵ２で処理し、更に、ＣＰＵ２で処理したデータをＣＰＵ１で処理するようなプログラムを実行する場合に有益なものとなる。また、詳細は後述するが、図３のＰＣＩＣのように、２個のチャネルの一方をＬＢＵＳ１→ＬＢＵＳ２のデータ転送用とし、他方をＬＢＵＳ２→ＬＢＵＳ１のデータ転送用とすることで小回路規模または容易な構成で効率的な双方向データ転送を実現可能となる。
【００５１】
以上のように、本実施の形態１のマルチプロセッサシステムを用いることによる代表的な効果を述べると、複数のプロセッサ間でのデータ転送効率を向上可能となる。また、複数のプロセッサ間でのデータ転送効率を小さい回路規模で向上可能となる。
【００５２】
（実施の形態２）
図１０は、本発明の実施の形態２によるマルチプロセッサシステムにおいて、図２のデータ中継装置ＰＣＩＣの詳細な構成例を示すブロック図である。図１０に示すデータ中継装置ＰＣＩＣは、図３と同様に、バッファ［Ａ］ＢＦＡおよびバッファ［Ｂ］ＢＦＢと、カウンタ部ＣＵＮＴを備え、図３と異なり、ローカルバスＬＢＵＳ１側にリード・ライト制御部ＲＷＣＴＬａを、ローカルバスＬＢＵＳ２側にリード・ライト制御部ＲＷＣＴＬｂを備えた構成となっている。すなわち、図３と異なり１個のチャネルで双方向のデータ転送が可能な構成となっている。
【００５３】
例えば、各ＤＭＡＣによってＬＢＵＳ１からＬＢＵＳ２へ向けたデータ転送が設定された場合、リード・ライト制御部ＲＷＣＴＬａは前述したようなライト制御部ＷＣＴＬとして動作し、ＲＷＣＴＬｂは、前述したようなリード制御部ＲＣＴＬとして動作する。逆に、各ＤＭＡＣによってＬＢＵＳ２からＬＢＵＳ１へ向けたデータ転送が設定された場合、ＲＷＣＴＬａはリード制御部ＲＣＴＬとして動作し、ＲＷＣＴＬｂは、ライト制御部ＷＣＴＬとして動作する。
【００５４】
このような構成を用いた場合も、実施の形態１で述べたような各種効果をある程度得ることは可能である。ただし、この場合、各リード・ライト制御部ＲＷＣＴＬａ，ＲＷＣＴＬｂは、転送方向に応じて、バッファＢＦに対するリードイネーブルおよびライトイネーブル等の制御信号を使い分ける必要があり、また、ＤＭＡコントローラＤＭＡＣに向けたデータ転送要求信号ＤＲＥＱの論理なども使い分ける必要がある。したがって、多くの信号選択回路が必要になるため、回路規模の増大や制御の複雑化が生じ、また、ＬＢＵＳ１とＬＢＵＳ２の動作周波数が異なると、場合によっては信号選択に伴い同期処理も必要となることがある。
【００５５】
さらに、動作の観点からは、図１０の構成例によって図９で述べたような双方向のデータ転送を行う場合、まず、ＭＥＭ１の記憶領域ＡＲ１１をＭＥＭ２の記憶領域ＡＲ２１に転送した後、各ＣＰＵによる各ＤＭＡＣへの再設定および起動を介してＭＥＭ２の記憶領域ＡＲ２２からＭＥＭ１の記憶領域ＡＲ１２への転送が行われることになる。この場合、図３の場合と比較してデータ転送効率やＣＰＵの処理効率が低下する。一方、例えば、図１０のような構成例を２チャネル分設ければ、図３の場合と同等のデータ転送効率やＣＰＵの処理効率は確保できる。しかしながら、この場合、前述したように、回路規模の増大や制御の複雑化などが懸念される。また、例えば２個のチャネルを同時に起動し、２個共にＬＢＵＳ１からＬＢＵＳ２へ向けたデータ転送で用いるようなことは、実使用上のメリットが小さい。
【００５６】
したがって、このような観点からは、図３のような構成例を用いることが望ましい。図１０のような構成例は、例えば、ＤＭＡコントローラＤＭＡＣにおいて使用可能なチャネルの数が限られている（例えば１個）のような場合に有益となる。
【００５７】
（実施の形態３）
図１１は、本発明の実施の形態３によるマルチプロセッサシステムにおいて、その構成の一例を示す概略図である。図１１に示すマルチプロセッサシステムは、パーソナルコンピュータＰＣと、このＰＣが備える例えばＰＣＩ  Ｅｘｐｒｅｓｓ用のスロット端子に接続される画像処理用のボードＢＤなどから構成される。ＰＣは、プロセッサＣＰＵ１、システムメモリＭＥＭ１、ＤＭＡコントローラＤＭＡＣ１およびコントローラＣＴＬ１などを含み、ＣＴＬ１からスロット端子を介してボードＢＤとの通信が可能となっている。
【００５８】
ボードＢＤには、プロセッサＣＰＵ２およびＤＭＡコントローラＤＭＡＣ２を含むマイコンＭＣと、マイコン用のシステムメモリＭＥＭ２と、実施の形態１および２で述べたようなデータ中継装置ＰＣＩＣと、コントローラＣＴＬ２などが搭載されている。ＰＣＩＣは、ローカルバスＬＢＵＳ１によってマイコンＭＣと接続され、ローカルバスＬＢＵＳ２によってコントローラＣＴＬ２と接続される。ＣＴＬ２は、例えばＰＣＩ  Ｅｘｐｒｅｓｓの通信機能を備え、ボードＢＤは、このＣＴＬ２を介してＰＣとの通信が可能となっている。特に限定はされないが、ＬＢＵＳ１は例えば６６ＭＨｚで動作し、ＬＢＵＳ２は例えば５０ＭＨｚで動作する。
【００５９】
このようなマルチプロセッサシステムでは、例えば、ＰＣのＣＰＵ１で処理した比較的大容量の画像データをボードＢＤに送信し、この転送された画像データをボードＢＤのマイコンＭＣで処理した後、当該データをＰＣに返信するような動作が繰り返し行われる。したがって、ＰＣ内のシステムメモリＭＥＭ１とボードＢＤ内のシステムメモリＭＥＭ２との間のデータ転送効率をどれだけ上げられるかが画像処理のパフォーマンスを決める上で重要となる。また、近年では、モバイル端末の普及などにより、ボードＢＤの小型化も重要な要素となっている。こうした中、ボードＢＤ上に前述したようなデータ中継装置ＰＣＩＣを搭載することで、前述したような要求に対して有益な効果を得ることができる。
【００６０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【００６１】
例えば、図２においては、一例としてマイコンを用いる構成例としたが、勿論、マイコンである必要はなく、例えばパーソナルコンピュータ等のようにプロセッサＣＰＵとＤＭＡコントローラＤＭＡＣが別チップで構成されていてもよい。また、図２では、システムメモリＭＥＭを外付けメモリとしたが、勿論、マイコン内の内蔵メモリ等であってもよい。すなわち、プロセッサＣＰＵとＤＭＡコントローラＤＭＡＣとシステムメモリＭＥＭが、１個のバスまたはバスコントローラ等を介して複数のバスで接続され、当該ＣＰＵによって当該ＤＭＡＣの設定および起動が可能であり、当該ＤＭＡＣによって当該ＭＥＭのアクセスが可能な構成であればよい。
【産業上の利用可能性】
【００６２】
本実施の形態によるマルチプロセッサシステムは、各プロセッサ同士で頻繁にデータのやり取りを行いながら所望の処理を行う画像処理システム等を代表に、複数のプロセッサおよび複数のＤＭＡコントローラを備えたマルチプロセッサシステム全般に対して広く適用可能である。
【図面の簡単な説明】
【００６３】
【図１】本発明の前提として検討した比較例のマルチプロセッサシステムにおいて、その構成の一例を示すブロック図である。
【図２】本発明の実施の形態１によるマルチプロセッサシステムにおいて、その構成の一例を示すブロック図である。
【図３】図２におけるデータ中継装置の詳細な構成例を示すブロック図である。
【図４】図３におけるカウンタ部の詳細な構成例を示すブロック図である。
【図５】図４におけるリード制御部およびライト制御部の動作例を示すものであり、（ａ）はリード制御部の動作説明図、（ｂ）はライト制御部の動作説明図である。
【図６】図２のマルチプロセッサシステムにおいて、その動作概要の一例を示す説明図である。
【図７】図３のデータ中継装置において、その各バッファの論理アドレス割付の一例を示す説明図である。
【図８】図６を補足する動作説明図である。
【図９】図３のデータ中継装置において、その動作例を示す説明図である。
【図１０】本発明の実施の形態２によるマルチプロセッサシステムにおいて、図２のデータ中継装置の詳細な構成例を示すブロック図である。
【図１１】本発明の実施の形態３によるマルチプロセッサシステムにおいて、その構成の一例を示す概略図である。
【図１２】本発明の前提として検討した従来技術のマルチプロセッサシステムにおいて、その構成の一例を示すブロック図である。
【符号の説明】
【００６４】
ＭＣ  マイクロコンピュータ
ＣＰＵ  プロセッサ
ＤＭＡＣ  ＤＭＡコントローラ
ＭＥＭ  システムメモリ
ＬＢＵＳ  ローカルバス
ＤＰＲＡＭ  デュアルポートメモリ
ＰＣＩＣ  データ中継装置
ＭＢＵＳ  メモリバス
ＷＣＴＬ  ライト制御部
ＲＣＴＬ  リード制御部
ＢＦ，ＢＦＡ，ＢＦＢ  バッファ
ＣＵＮＴ  カウンタ部
ＷＣＮＴ  ライトカウンタ
ＲＣＮＴ  リードカウンタ
ＳＭ  ステートマシン
ＲＷＣＴＬ  リード・ライト制御部
ＣＴＬ  コントローラ
ＰＣ  パーソナルコンピュータ
ＢＤ  ボード
【図１】
2009134635.tif 000003
【図２】
2009134635.tif 000004
【図３】
2009134635.tif 000005
【図４】
2009134635.tif 000006
【図５】
2009134635.tif 000007
【図６】
2009134635.tif 000008
【図７】
2009134635.tif 000009
【図８】
2009134635.tif 000010
【図９】
2009134635.tif 000011
【図１０】
2009134635.tif 000012
【図１１】
2009134635.tif 000013
【図１２】
2009134635.tif 000014