JP2004086798A - マルチプロセッサシステム - Google Patents
マルチプロセッサシステム Download PDFInfo
- Publication number
- JP2004086798A JP2004086798A JP2002250150A JP2002250150A JP2004086798A JP 2004086798 A JP2004086798 A JP 2004086798A JP 2002250150 A JP2002250150 A JP 2002250150A JP 2002250150 A JP2002250150 A JP 2002250150A JP 2004086798 A JP2004086798 A JP 2004086798A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- data
- ring bus
- transmission
- reception
- 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.)
- Granted
Links
Images
Landscapes
- Multi Processors (AREA)
- Bus Control (AREA)
Abstract
【解決手段】送信を要求する要求信号と要求信号に対する応答信号を伝送する信号用リングバスと、データを伝送するデータ用リングバスと、タイミング信号を伝送するタイミング用リングバスと、タイミング用リングバスに有限のタイミング値からなるタイミング信号を送信するタイミング生成部と、バス制御部をそれぞれ備えた複数のプロセッサとを有し、バス制御部は一のプロセッサからの指示に基づき、要求信号または応答信号を生成して信号用リングバスに送信し、あるいは信号用リングバスから自分宛の要求信号または応答信号を受信し、タイミング用リングバスの前記タイミング信号が、バス制御部を指定する予め定められた値になったとき、データ用リングバスに対してデータの送信または受信を行う。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、複数のプロセッサ間でデータを転送する際、プロセッサ間のデータ転送に必要な時間を予め決められた最大時間よりも必ず小さくできるマルチプロセッサシステムに関するものである。
【0002】
【従来の技術】
複数のプロセッサ間で自由にデータを転送する場合、まず、各々のプロセッサ間にデータを転送する信号線路を設ける方式が考えられる。この方式は、転送が必要になるプロセッサ間には独立した信号線路が存在するため、いつでも自由にデータを転送することができる。しかし、多数のプロセッサを用いて高速にデータ転送を行おうとすると、各プロセッサ間の信号線路の総数が膨大になり、特に複数のプロセッサを1つのLSIに実装する場合には、極めて大きい配線領域が必要になるため、現実的ではない。
【0003】
そこで、多数のプロセッサに適用できる現実的なマルチプロセッサシステムとして、例えば特開2001−156817に記述されるようなリングバスを用いた方式が提案されている。この方式では、リングバスを通じて到来する他のプロセッサからのデータが自分宛てのものであるときに、リングバスからデータを取り込み受信する。一方、他のプロセッサに対してデータを送る場合には、リングバスが空いていることを確認してからデータを送信する。もし、リングバス上に他のデータがある場合には、リングバスが空くまで送信を待つことになる。
【0004】
【発明が解決しようとする課題】
しかしながら、上述した従来のマルチプロセッサシステムにおいては、データを送信したいときに、リングバスが他のプロセッサ間のデータ転送に使われている場合、リングバスが空くまで待ち時間が必要になる。特に、リングバス上に多くの転送データがあるような状況では、この待ち時間が大きくなり、プロセッサ間の転送に必要な時間を正しく見積もることができず、場合によっては、転送を諦めなければならない状況もあり得るという問題点があった。
本発明は、以上の点を考慮してなされたものであり、プロセッサ間のデータ転送に必要な時間を予め決められた最大時間よりも必ず小さくできるマルチプロセッサシステムを提供することを目的とする。
【0005】
【課題を解決するための手段】
上記目的を達成するため、本発明は、送信を要求する要求信号と該要求信号に対する応答信号を伝送する信号用リングバスと、データを伝送するデータ用リングバスと、タイミング信号を伝送するタイミング用リングバスと、該タイミング用リングバスに有限のタイミング値からなる前記タイミング信号を送信するタイミング生成部と、バス制御部をそれぞれ備えた複数のプロセッサとを有し、
前記バス制御部は一のプロセッサからの指示に基づき、前記要求信号または前記応答信号を生成して前記信号用リングバスに送信し、あるいは該信号用リングバスから自分宛の前記要求信号または前記応答信号を受信し、前記タイミング用リングバスの前記タイミング信号が、該バス制御部を指定する予め定められた値になったとき、データ用リングバスに対してデータの送信または受信を行うように構成したものである。
【0006】
【発明の実施の形態】
図1は、本発明のマルチプロセッサシステムの実施の形態を示すブロック図である。図1は、6個のプロセッサ間でデータを転送する場合を示している。図1において、111、112、113、114、115、116はプロセッサ、121、122、123、124、125、126はバス制御部、13はタイミング生成部、14は信号用リングバス、15はデータ用リングバス、16はタイミング用リングバスである。
【0007】
図2は、本発明のマルチプロセッサシステムにおけるデータ転送を説明するための図である。図2において、211、212、213、214、215、216は、各バス制御部を含めた各プロセッサ位置を表す。また矢印は、データ転送経路を表し、<>内の番号は、そのデータ転送経路でデータを転送するときのタイミング用リングバスのタイミング値を示す。図2において、各データ転送経路の<>内の番号は、各プロセッサ位置に対して入力及び出力される全てのデータ転送経路において、番号が重複しないように設定している。なお、これは、各プロセッサ位置において、バス制御部が同時にデータ用リングバスに対して送信と受信をしないことを前提としているためであり、これができるように構成する場合には、各プロセッサ位置に対して入力するデータ転送経路と出力するデータ転送経路とで同じ番号を設定できる。
【0008】
以下に、図1及び図2を参照しながら、本発明のマルチプロセッサシステムのデータ転送方式の動作について、詳細に説明する。タイミング生成部13は、巡回的なタイミング値を発生し、タイミング用リングバス16へ送信する。図2では、タイミング値は、0から7まで1ずつ増えた後で0に戻るような巡回的な値をとることを仮定している。
【0009】
一例としてプロセッサ111とバス制御部121を例に、動作を説明する。図2では、プロセッサ位置211に対応する。プロセッサ111からプロセッサ112にデータを転送したい場合、プロセッサ111からバス制御部121へ要求信号の送信を指示する。バス制御部121は、プロセッサ111からの指示を受けて要求信号を生成し、信号用リングバス14の空きを確認してから、信号用リングバス14へ要求信号を送信する。もし、信号用リングバス14が他のプロセッサからの信号で空いていなければ、空くのを待ってから送信する。要求信号には、プロセッサ112に対応する宛先アドレス、プロセッサ111に対応する送信元アドレス、データ長などの情報が含まれている。
【0010】
バス制御部122は、常に信号用リングバス14を監視しており、自分宛ての要求信号が来たら、それを受信する。そして、バス制御部122は、要求信号から情報を抜き出し、データを受信する準備をすると共に、応答信号を生成し、信号用リングバス14の空きを確認してから、信号用リングバス14へ応答信号を送信する。もし、信号用リングバス14が他のプロセッサからの信号で空いていなければ、空くのを待ってから送信する。応答信号には、プロセッサ111に対応する宛先アドレス、プロセッサ112に対応する送信元アドレス、送信許可を示す情報などが含まれている。
【0011】
バス制御部121は、常に信号用リングバス14を監視しており、自分宛ての応答信号が来たら、それを受信する。そして、バス制御部121は、応答信号から情報を抜き出し、送信許可を示す情報を確認した後で、データの送信を開始する。データは、図2に示すように、タイミング用リングバス16のタイミング値が予めそのデータ転送経路に対して定められた値と一致したときに、データ用リングバス15に送信する。この場合は、タイミング値が0のときに、送信することができる。データ長が2以上であれば、次のデータは、タイミング値が一巡して次の0が来たときに送信される。
【0012】
バス制御部122は、タイミング用リングバス16のタイミング値が0のときに、データ用リングバス15からデータの受信を行う。データ長が2以上であれば、次のデータは、タイミング値が一巡して次の0が来たときに受信される。そして、要求信号の情報として知ったデータ長分のデータを受信したら、データの受信処理を終了し、プロセッサ112へデータの受信が終了したことを知らせる。プロセッサ112は、受信したデータを利用して、必要な処理を行うことができる。
【0013】
本発明のマルチプロセッサシステムでは、信号用リングバス14への要求信号と応答信号の送信は、信号用リングバス14の空きを確認してから行う必要がある。しかし、これによりデータ転送のための準備ができると、その後のデータ用リングバス15への転送は、空きを確認する必要はなく、予め定めたタイミング用リングバス16のタイミング値だけを条件として実行できる。また、データ用リングバス15へのデータの送信は、信号用リングバス14への要求信号及び応答信号の送信とはパイプライン的に重複実行できるため、予め設定した速度でデータの転送を行うことができる。なお、図2では、各データ転送経路でデータを転送できるタイミング値として、全て1つの値のみを設定しているが、複数の値を設定することも可能であり、そうすることで、その経路のデータ転送速度を向上できる。
【0014】
図3は、本発明のマルチプロセッサシステムにおけるプロセッサ及びバス制御部の構成例の一例を示すブロック図である。図3において、31はプロセッサ、32はバス制御部、311はプロセッサ・コア、312はデュアルポート・メモリ(以下、DPメモリと略す)、313は受信応答レジスタ、314は送信要求レジスタ、315は受信応答フラグ、316は送信要求フラグ、321は送信キュー、322は受信キュー、323は送信制御メモリ、324は受信制御メモリ、325はデータ送信制御部、326はデータ受信制御部、327は要求信号送信制御部、328は応答信号送信制御部、329は信号受信制御部である。以下、図3、図1、及び図2を参照しながら、本発明のマルチプロセッサシステムにおけるバス制御部の動作について、詳細に説明する。先の説明と同様に、一例として図1のプロセッサ111とバス制御部121について説明する。
【0015】
プロセッサ111(図3では、プロセッサ31に対応する)から、例えば、プロセッサ112にデータを転送したい場合、プロセッサ・コア311は、送信要求フラグ316の状態を調べる。送信要求フラグ316は、セットとリセットの2状態を有する1ビットのフラグであり、送信要求があるときにはセット、ないときにはリセットとなる。プロセッサ・コア311は、送信要求フラグ316がリセットであれば、送信要求レジスタ314に、プロセッサ112に対応する宛先アドレス、データ長などの要求信号の生成に必要な情報と送信データが格納されているDPメモリ・アドレスを格納し、その後、送信要求フラグ316をセットする。もし、送信要求フラグ316がセットになっていれば、先行する送信要求が未だ処理されていないため、プロセッサ・コア311は処理を待たなければならない。
【0016】
バス制御部121(図3では、バス制御部32に対応する)は、送信要求フラグ316を監視し、これがセットになっていたら、送信要求レジスタ314の内容を読み出し、送信キュー321へ内容を格納し、送信要求フラグ316をリセットする。送信キュー321は、ランダム書き込みが可能な送信許可ビットを付加した変則的なFIFO構造のメモリであり、送信許可ビット以外は、先に格納された内容から順に読み出すことができる。
【0017】
要求信号送信制御部327は、送信キュー321から最も先に書き込まれた内容を読み出し、要求信号を生成して、信号用リングバス14の空きを確認してから、信号用リングバス14へ要求信号を送信する。もし、信号用リングバス14が他のプロセッサからの信号で空いていなければ、空くのを待ってから送信する。また、要求信号送信制御部327は、送信キュー321に読み出す内容がなければ、読み出す内容が格納されるのを待つことになる。
【0018】
バス制御部122(図3では、バス制御部32に対応する)において、信号受信制御部329は、常に信号用リングバス14を監視しており、自分宛ての要求信号が来たら、これを受信し、内容を受信キュー322へ格納する。受信キュー322は、ランダム書き込みが可能なDPメモリ・アドレスと転送終了ビットを付加した変則的なFIFO構造のメモリであり、DPメモリ・アドレスと転送終了ビット以外は、先に格納された内容から順に読み出すことができる。
【0019】
応答信号送信制御部328は、受信キュー322の最も先に格納された内容を読み出し、DPメモリ312に受信するデータを格納する領域を割り当てることができたら、DPメモリ・アドレスを書き込み、応答信号を生成し、信号用リングバス14の空きを確認してから、信号用リングバス14へ応答信号を送信する。もし、信号用リングバス14が他のプロセッサからの信号で空いていなければ、空くのを待ってから送信する。また、応答信号送信制御部328は、データ受信制御部326へ、受信したデータを格納するDPメモリ・アドレスを通知する。もし、DPメモリ312に受信するデータを格納する領域を割り当てることができなかったら、応答信号送信制御部328は、処理を待つことになる。
【0020】
バス制御部121(図3では、バス制御部32に対応する)において、信号受信制御部329は、常に信号用リングバス14を監視しており、自分宛ての応答信号が来たら、これを受信し、応答信号から情報を抜き出し、送信許可を示す情報を確認した後で、送信キュー321の対応する送信許可ビットを許可にする。
【0021】
データ送信制御部325は、送信キュー321の送信許可ビットを順に読み出し、それが許可になっていたら、送信キュー321の対応するDPメモリ・アドレスからデータの送信を開始する。もし、送信許可ビットが許可になっていなかったら、データ送信制御部325は、処理を待つことになる。データ送信制御部325は、送信制御メモリ323から、予め定められたデータを送信できる送信タイミング値を知り、タイミング用リングバスのタイミング値がその送信タイミング値と一致したら、データ用リングバス15に送信する。この場合は、送信制御メモリ323には、宛先アドレス112に対する送信タイミング値として0が記憶されており、タイミング用リングバス16のタイミング値が0のときに、送信することができる。データ長が2以上であれば、次のデータは、タイミング値が一巡して次の0が来たときに、次のDPメモリ・アドレスから送信される。
【0022】
バス制御部122(図3では、バス制御部32に対応する)において、データ受信制御部326は、受信制御メモリ324から送信元アドレス111に対する受信タイミング値として0を知り、タイミング用リングバス16のタイミング値が0のときに、データ用リングバス15からデータの受信を行い、DPメモリ312の応答信号送信制御部328から通知されたDPメモリ・アドレスへデータを格納する。データ長が2以上であれば、次のデータは、タイミング値が一巡して次の0が来たときに受信され、DPメモリ・アドレスを更新して、DPメモリ312へ格納する。そして、要求信号の情報として知ったデータ長分のデータを受信したら、データの受信処理を終了し、受信キュー322の対応する転送終了ビットをセットする。
【0023】
受信キュー322は、転送終了ビットを順に調べ、それがセットされていたら、受信応答フラグ315の状態を調べる。受信応答フラグ315は、セットとリセットの2状態を有する1ビットのフラグであり、受信応答があるときにはセット、ないときにはリセットとなる。受信キュー322は、受信応答フラグ315がリセットであれば、受信応答レジスタ313に、プロセッサ111に対応する送信元アドレス、データ長、DPメモリ・アドレスを格納し、その後、受信応答フラグ315をセットする。もし、受信応答フラグ315がセットになっていれば、先行する受信応答が未だ処理されていないため、受信キュー322は処理を待たなければならない。
【0024】
プロセッサ112(図3では、プロセッサ31に対応する)において、プロセッサ・コア311は、受信応答フラグ315の状態を調べ、これがセットされていれば、受信応答レジスタ313の内容を読み出し、DPメモリ・アドレスとデータ長を用いて、DPメモリ312から転送された情報を読む。その後、プロセッサ・コア311は、受信応答フラグ315をリセットしてから、必要な処理を行うことができる。
【0025】
図3におけるプロセッサ31では、送信及び受信したデータを格納するために、DPメモリ312を用いているため、送信と受信を同じタイミングで行うことはできない。しかし、送信専用と受信専用のDPメモリを別々に設けたり、DPメモリではなく同時に送受信可能な専用回路を設けるなどの工夫をすることにより、送信と受信を同時におこなうことができるようにすることも可能である。この場合、図2の各プロセッサ位置に対して、入力するデータ転送経路と出力するデータ転送経路とで同じ番号を設定できるようになり、データ転送の効率化を図ることができる。
【0026】
図4は、本発明のマルチプロセッサシステムの第二の実施形態を示すブロック図である。図4は、図1と同様に、例として、6個のプロセッサ間でデータを転送する場合を示している。図4において、41は左信号用リングバス、42は右信号用リングバス、43は左データ用リングバス、44は右データ用リングバスであり、図1と同じ構成要素には同じ符号が付されている。
【0027】
図5は、本発明のマルチプロセッサシステムの第二の実施形態におけるデータ転送の様子を説明するための図である。図2と同じ構成要素には同じ符号が付されている。<>内の番号は、右データ用リングバスを用いたデータ転送経路でデータを送信及び受信するときのタイミング用リングバスのタイミング値を示す。また、[]内の番号は、左データ用リングバスを用いたデータ転送経路でデータを送信するときのタイミング用リングバスのタイミング値を示し、{}内の番号は、左データ用リングバスを用いたデータ転送経路でデータを受信するときのタイミング用リングバスのタイミング値を示す。但し、図5では、タイミング用リングバスは、右データ用リングバスと同じ右回り方向に信号が流れていると仮定している。図5において、各データ転送経路の<>、[]、及び{}内の番号は、各プロセッサ位置に対して入力及び出力される全てのデータ転送経路において、番号が重複しないように設定している。なお、これは、各プロセッサ位置において、バス制御部が同時にデータ用リングバスに対して送信と受信をしないことを前提としているためであり、これができるように構成する場合には、各プロセッサ位置に対して入力するデータ転送経路と出力するデータ転送経路とで同じ番号を設定できる。
【0028】
本発明のマルチプロセッサシステムの第二の実施形態では、信号用リングバスとデータ用リングバスを、左回り及び右回りの2つのリングバスに分け、距離的に近い方のリングバスを選択できるようにしたものである。そうすることで、平均的なデータ転送距離が短くなり、転送効率を向上できる。プロセッサ111は、例えば、プロセッサ112にデータを転送したい場合、バス制御部121へ要求信号の送信を指示する。バス制御部121は、プロセッサ111からの指示を受けて、要求信号を生成し、近い方の右信号用リングバス42を選択し、右信号用リングバスの空きを確認してから、右信号用リングバス42へ要求信号を送信する。もし、右信号用リングバス42が他のプロセッサからの信号で空いていなければ、空くのを待ってから送信する。要求信号には、プロセッサ112に対応する宛先アドレス、プロセッサ111に対応する送信元アドレス、データ長などの情報が含まれている。
【0029】
バス制御部122は、常に左及び右信号用リングバス41、42を監視しており、自分宛ての要求信号が来たら、それを受信する。そして、バス制御部122は、要求信号から情報を抜き出し、データを受信する準備をすると共に、応答信号を生成し、近い方の左信号用リングバス41の空きを確認してから、左信号用リングバス41へ送信する。もし、左信号用リングバス41が他のプロセッサからの信号で空いていなければ、空くのを待ってから送信する。応答信号には、プロセッサ111に対応する宛先アドレス、プロセッサ112に対応する送信元アドレス、送信許可を示す情報などが含まれている。
【0030】
バス制御部121は、常に左及び右信号用リングバス41、42を監視しており、自分宛ての応答信号が来たら、それを受信する。そして、バス制御部121は、応答信号から情報を抜き出し、送信許可を示す情報を確認した後で、データの送信を開始する。データは、図5に示すように、タイミング用リングバス16のタイミング値が予めそのデータ転送経路に対して定められた値と一致したときに、近い方の右データ用リングバス44に送信する。この場合は、タイミング値が0のときに、送信することができる。データ長が2以上であれば、次のデータは、タイミング値が一巡して次の0が来たときに送信される。
【0031】
バス制御部122は、タイミング用リングバス16のタイミング値が0のときに、右データ用リングバス44からデータの受信を行う。データ長が2以上であれば、次のデータは、タイミング値が一巡して次の0が来たときに受信される。そして、要求信号の情報として知ったデータ長分のデータを受信したら、データの受信処理を終了し、プロセッサ112へデータの受信が終了したことを知らせる。プロセッサ112は、受信したデータを利用して、必要な処理を行うことができる。
【0032】
なお、図4に示した本発明のマルチプロセッサシステムでは、信号用リングバスとデータ用リングバスの両方を左回りと右回りのリングバスに分けたが、データ転送効率に直接的に影響を与えるデータ用リングバスのみを分けることも可能である。また、図5では、各データ転送経路でデータを転送できるタイミング値として、全て1つの値のみを設定しているが、複数の値を設定することも可能であり、そうすることで、その経路のデータ転送速度を向上できる。
【0033】
図6は、本発明のマルチプロセッサシステムの第2の実施形態におけるプロセッサ及びバス制御部の構成例を示すブロック図である。図6において、61はバス制御部、611は送信キュー、612は受信キュー、613は送信制御メモリ、614は受信制御メモリ、615はデータ送信制御部、616はデータ受信制御部、617は要求信号送信制御部、618は応答信号送信制御部、619は信号受信制御部、620は左バッファ、621は右バッファである。図3と同じ構成要素には同じ符号が付されている。
【0034】
プロセッサ111(図6では、プロセッサ31に対応する)から、例えば、プロセッサ112にデータを転送したい場合、プロセッサ・コア311は、送信要求フラグ316の状態を調べ、これがリセットであれば、送信要求レジスタ314に、プロセッサ112に対応する宛先アドレス、データ長などの要求信号の生成に必要な情報と送信データが格納されているDPメモリ・アドレスを格納し、その後、送信要求フラグ316をセットする。もし、送信要求フラグ316がセットになっていれば、先行する送信要求が未だ処理されていないため、プロセッサ・コア311は処理を待たなければならない。
【0035】
バス制御部121(図6では、バス制御部61に対応する)は、送信要求フラグ316を監視し、これがセットになっていたら、送信要求レジスタ314の内容を読み出し、送信キュー611へ内容を格納し、送信要求フラグ316をリセットする。要求信号送信制御部617は、送信キュー611から最も先に書き込まれた内容を読み出し、送信制御メモリ613の内容を参照して、宛先アドレス112に対する近い方の右信号用リングバス42を選択する。そして、要求信号送信制御部617は、要求信号を生成して、右信号用リングバス42の空きを確認してから、右信号用リングバス42へ要求信号を送信する。もし、右信号用リングバス42が他のプロセッサからの信号で空いていなければ、空くのを待ってから送信する。また、要求信号送信制御部617は、送信キュー611に読み出す内容がなければ、読み出す内容が格納されるのを待つことになる。
【0036】
バス制御部122(図6では、バス制御部61に対応する)において、左バッファ620と右バッファ621は、それぞれ、左信号用リングバス41と右信号用リングバス42を常に監視している。右バッファ621は、自分宛ての要求信号が来たら、これを受信する。信号受信制御部619は、左バッファ620と右バッファ621の状況を常に監視し、右バッファ621における要求信号の受信を受けて、この要求信号を受け取り、内容を受信キュー612へ格納する。
【0037】
応答信号送信制御部618は、受信キュー612の最も先に格納された内容を読み出し、DPメモリ312に受信するデータを格納する領域を割り当てることができたら、DPメモリ・アドレスを書き込み、応答信号の宛先アドレス111に対する近い方の左信号用リングバス41を選択する。そして、応答信号送信制御部618は、応答信号を生成し、左信号用リングバス41の空きを確認してから、左信号用リングバス41へ応答信号を送信する。もし、左信号用リングバス41が他のプロセッサからの信号で空いていなければ、空くのを待ってから送信する。また、応答信号送信制御部618は、データ受信制御部616へ、受信したデータを格納するDPメモリ・アドレスを通知する。もし、DPメモリ312に受信するデータを格納する領域を割り当てることができなかったら、応答信号送信制御部618は処理を待つことになる。
【0038】
バス制御部121(図6では、バス制御部61に対応する)において、左バッファ620と右バッファ621は、それぞれ、左信号用リングバス41と右信号用リングバス42を常に監視している。左バッファ620は、自分宛ての応答信号が来たら、これを受信する。信号受信制御部619は、左バッファ620と右バッファ621の状況を常に監視し、左バッファ620における応答信号の受信を受けて、この応答信号を受け取り、応答信号から情報を抜き出し、送信許可を示す情報を確認した後で、送信キュー611の対応する送信許可ビットを許可にする。
【0039】
データ送信制御部615は、送信キュー611の送信許可ビットを順に読み出し、それが許可になっていたら、送信キュー611の対応するDPメモリ・アドレスからデータの送信を開始する。もし、送信許可ビットが許可になっていなかったら、データ送信制御部615は、処理を待つことになる。データ送信制御部615は、送信制御メモリ613から、予め定められたデータを送信できる送信タイミング値を知り、タイミング用リングバス16のタイミング値がその送信タイミング値と一致したら、タイミング用リングバス16に送信タイミング値を送信する。この場合は、送信制御メモリ613には、宛先アドレス112に対する送信タイミング値として0が記憶されており、タイミング用リングバス16のタイミング値が0のときに、送信することができる。データ長が2以上であれば、次のデータは、タイミング値が一巡して次の0が来たときに、次のDPメモリ・アドレスから送信される。
【0040】
バス制御部122(図6では、バス制御部61に対応する)において、データ受信制御部616は、受信制御メモリ614から送信元アドレス111に対する受信タイミング値として0を知り、タイミング用リングバス16のタイミング値が0のときに、データ用リングバス15からデータの受信を行い、DPメモリ312の応答信号送信制御部から通知されたDPメモリ・アドレスへデータを格納する。データ長が2以上であれば、次のデータは、タイミング値が一巡して次の0が来たときに受信され、DPメモリ・アドレスを更新して、DPメモリ312へ格納する。そして、要求信号の情報として知ったデータ長分のデータを受信したら、データの受信処理を終了し、受信キュー612の対応する転送終了ビットをセットする。
【0041】
受信キュー612は、転送終了ビットを順に調べ、それがセットされていたら、受信応答フラグ315の状態を調べる。受信キュー612は、受信応答フラグ315がリセットであれば、受信応答レジスタ313に、プロセッサ111に対応する送信元アドレス、データ長、DPメモリ・アドレスを格納し、その後、受信応答フラグ315をセットする。もし、受信応答フラグ315がセットになっていれば、先行する受信応答が未だ処理されていないため、受信キュー612は処理を待たなければならない。
【0042】
プロセッサ112(図6では、プロセッサ31に対応する)において、プロセッサ・コア311は、受信応答フラグ315の状態を調べ、これがセットされていれば、受信応答レジスタ313の内容を読み出し、DPメモリ・アドレスとデータ長を用いて、DPメモリ312から転送された情報を読む。その後、プロセッサ・コア311は、受信応答フラグ315をリセットしてから、必要な処理を行うことができる。
【0043】
図6におけるプロセッサ31では、送信及び受信したデータを格納するために、DPメモリ312を用いているため、送信と受信を同じタイミングで行うことはできない。しかし、送信専用と受信専用のDPメモリを設ける、あるいは、DPメモリではなく同時に送受信可能な専用レジスタ回路を設けるなどの工夫をすることにより、送信と受信を同時におこなうことができるようにすることも可能である。この場合、図5の各プロセッサ位置に対して、入力するデータ転送経路と出力するデータ転送経路とで同じ番号を設定できるようになり、データ転送の効率化を図ることができる。
【0044】
以上、マルチプロセッサシステムの実施形態について説明したが、本発明は、上述したような実施形態に限定されるものではなく、他にも、本発明の主旨を逸脱しない範囲で、様々な変形実施可能であることは勿論である。
【発明の効果】
以上詳細に説明したように、本発明によれば、データ用リングバスを用いたデータの転送は、予め定めたタイミング用リングバスのタイミング値のみを条件に実行できるため、予め設定した速度でデータの転送を行うことができ、プロセッサ間のデータ転送に必要な時間を予め定めた最大時間よりも必ず小さくできるマルチプロセッサシステムを提供することができる。
【図面の簡単な説明】
【図1】本発明のマルチプロセッサシステムの第一の実施形態を示すブロック図である。
【図2】本発明のマルチプロセッサシステムの第一の実施形態におけるデータ転送の様子を説明するための図である。
【図3】本発明の第1の実施形態のマルチプロセッサシステムにおけるプロセッサ及びバス制御部の第一の構成例を示すブロック図である。
【図4】本発明のマルチプロセッサシステムの第二の実施形態を示すブロック図である。
【図5】本発明のマルチプロセッサシステムの第二の実施形態におけるデータ転送の様子を説明するための図である。
【図6】本発明の第2の実施形態のマルチプロセッサシステムにおけるプロセッサ及びバス制御部の第二の構成例を示すブロック図である。
【符号の説明】
111、112、113、114,115、116:プロセッサ、121、122、123、124、125、126:バス制御部、13:タイミング生成部、14:信号用リングバス、15:データ用リングバス、16:タイミング用リングバス、211、212、213、214、215、216:プロセッサ位置、31:プロセッサ、32:バス制御部、311:プロセッサ・コア、312:デュアルポート・メモリ、313:受信応答レジスタ、314:送信要求レジスタ、315:受信応答フラグ、316:送信要求フラグ、321:送信キュー、322:受信キュー、323:送信制御メモリ、324:受信制御メモリ、325:データ送信制御部、326:データ受信制御部、327:要求信号送信制御部、328:応答信号送信制御部、329:信号受信制御部、41:左信号用リングバス、42:右信号用リングバス、43:左データ用リングバス、44:右データ用リングバス、61:バス制御部、611:送信キュー、612:受信キュー、613:送信制御メモリ、614:受信制御メモリ、615:データ送信制御部、616:データ受信制御部、617:要求信号送信制御部、618:応答信号送信制御部、619:信号受信制御部、620:左バッファ、621:右バッファ
Claims (7)
- 送信を要求する要求信号と該要求信号に対する応答信号を伝送する信号用リングバスと、データを伝送するデータ用リングバスと、タイミング信号を伝送するタイミング用リングバスと、該タイミング用リングバスに有限のタイミング値からなる前記タイミング信号を送信するタイミング生成部と、バス制御部をそれぞれ備えた複数のプロセッサとを有し、
前記バス制御部は一のプロセッサからの指示に基づき、前記要求信号または前記応答信号を生成して前記信号用リングバスに送信し、あるいは該信号用リングバスから自分宛の前記要求信号または前記応答信号を受信し、前記タイミング用リングバスの前記タイミング信号が、該バス制御部を指定する予め定められた値になったとき、前記データ用リングバスに対してデータの送信または受信を行うことを特徴とするマルチプロセッサシステム。 - 前記プロセッサはそれぞれ、プロセッサ・コアと、該プロセッサ・コア側と前記バス制御部側から独立に読み書きできるデュアルポートメモリと、送信指示内容を格納する送信要求レジスタと、受信指示内容を格納する受信応答レジスタと、前記送信要求レジスタへの書き込みと読み出しに合わせてセットとリセットが行われる送信要求フラグと、前記受信応答レジスタへの書き込みと読み出しに合わせてセットとリセットが行われる受信応答フラグとを有し、
前記バス制御部は、
ランダム書き込みが可能な送信許可ビットを付加した送信指示内容を格納する変則的なFIFO構造のメモリで構成され、前記送信要求フラグがセットのとき前記送信要求レジスタに格納されている送信指示内容を前記要求指示内容として格納してから前記送信要求フラグをリセットする送信キューと、
ランダム書き込みが可能なデュアルポートメモリ・アドレスと転送終了ビットを付加した受信指示内容を格納する変則的なFIFO構造のメモリで構成され、前記転送終了ビットを順に調べてセットのとき、前記受信応答フラグがリセットならば前記受信応答レジスタに該受信指示内容と該デュアルポートメモリ・アドレスを格納してから前記受信応答フラグをセットする受信キューと、
予め定めた送信タイミング値を記憶する送信制御メモリと、
予め定めた受信タイミング値を記憶する受信制御メモリと、
前記送信キューに格納されている送信指示内容を読み出し、これに基づいて前記要求信号を生成して信号用リングバスへ送信する要求信号送信制御部と、
前記受信キューに格納されている受信指示内容を読み出し、受信したデータを格納するデュアルポートメモリ・アドレスを割り当てて前記受信キューに書き込み、前記応答信号を生成して信号用リングバスへ送信する応答信号送信制御部と、
前記信号用リングバスから前記要求信号を受信したとき前記の受信キューに格納し、また、該信号用リングバスから応答信号を受信したとき前記送信キューの対応する送信許可ビットを許可にする信号受信制御部と、
前記送信キューの送信許可ビットが許可になっているとき、前記送信制御メモリから前記送信タイミング値を知り、タイミング用リングバスのタイミング値が該タイミング値と一致したとき、前記デュアルポートメモリの対応するアドレスからデータ用リングバスへデータを送信するデータ送信制御部と、
前記の受信制御メモリから受信タイミング値を知り、前記タイミング用リングバスのタイミング値が該受信タイミング値と一致したとき、前記データ用リングバスからデータを受信して前記デュアルポートメモリの対応するアドレスに格納し、全てのデータを受信したのち前記受信キューの対応する転送終了ビットをセットするデータ受信制御部とを有することを特徴とする請求項1に記載のマルチプロセッサシステム。 - 前記データ用リングバスを、左回り及び右回りにデータが流れる左データ用リングバスと右データ用リングバスとで構成し、データを転送する先のプロセッサまでの距離が近い方のデータ用リングバスを選択するように構成することを特徴とする請求項1または2いずれかに記載のマルチプロセッサシステム。
- 前記信号用リングバスを、左回り及び右回りに信号が流れる左信号用リングバスと右信号用リングバスとで構成し、前記要求信号または前記応答信号の宛先のプロセッサまでの距離が近い方の信号用リングバスを選択するように構成することを特徴とする請求項3に記載のマルチプロセッサシステム。
- 前記バス制御部に、左信号用リングバスから前記要求信号または前記応答信号を受信したとき、該要求信号または該応答信号を記憶する左バッファと、右信号用リングバスから前記要求信号または前記応答信号を受信したとき、該要求信号または該応答信号を記憶する右バッファとを付加し、
前記送信制御メモリは、送信タイミング値に加えて、前記左信号用リングバスと前記右信号用リングバスのいずれか、または前記左データ用リングバスと前記右データ用リングバスのいずれかを選択するためのバス選択情報を記憶するようにし、
前記受信制御メモリは、受信タイミング値に加えて、前記左信号用リングバスと前記右信号用リングバスのいずれか、または前記左データ用リングバスと前記右データ用リングバスのいずれかを選択するためのバス選択情報を記憶するようにし、
前記要求信号送信制御部は、前記送信制御メモリの前記バス選択情報に基づいて前記左信号用リングバスと前記右信号用リングバスのいずれかを選択してから該選択した信号用リングバスに要求信号を送信するようにし、
前記応答信号送信制御部は、前記受信制御メモリの前記バス選択情報に基づいて前記左信号用リングバスと前記右信号用リングバスのいずれかを選択してから該選択した信号用リングバスに応答信号を送信するようにし、
前記信号受信制御部は、前記左バッファまたは前記右バッファを調べて信号が記憶されていたら該信号に対する処理を行うようにし、
前記データ送信制御部は、前記送信制御メモリの前記バス選択情報に基づいて前記左データ用リングバスと前記右データ用リングバスのいずれかを選択してからデータを送信するようにし、
前記データ受信制御部は、前記受信制御メモリの前記バス選択情報に基づいて前記左データ用リングバスと前記右データ用リングバスのいずれかを選択してからデータを受信するようにしたことを特徴とする請求項4に記載のマルチプロセッサシステム。 - デュアルポートメモリを送信専用と受信専用の2つに分けたことを特徴とする請求項2乃至5いずれか記載のマルチプロセッサシステム。
- デュアルポートメモリの替わりにバス制御部側から同時に読み書きができるような専用レジスタ回路で構成した記憶素子を用いることを特徴とする請求項2乃至5いずれかに記載のマルチプロセッサシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002250150A JP4104939B2 (ja) | 2002-08-29 | 2002-08-29 | マルチプロセッサシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002250150A JP4104939B2 (ja) | 2002-08-29 | 2002-08-29 | マルチプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004086798A true JP2004086798A (ja) | 2004-03-18 |
JP4104939B2 JP4104939B2 (ja) | 2008-06-18 |
Family
ID=32057050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002250150A Expired - Fee Related JP4104939B2 (ja) | 2002-08-29 | 2002-08-29 | マルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4104939B2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006012133A (ja) * | 2004-05-28 | 2006-01-12 | Intel Corp | 双方向性リング相互接続路を有する多重プロセッサチップ |
JP2008039533A (ja) * | 2006-08-04 | 2008-02-21 | Hitachi High-Technologies Corp | 欠陥検査方法及びその装置 |
JP2008181424A (ja) * | 2007-01-25 | 2008-08-07 | Sharp Corp | 多重バスインタフェースモジュールおよび多重バスシステム |
JP2010198226A (ja) * | 2009-02-24 | 2010-09-09 | Canon Inc | データ処理装置、データ処理方法およびプログラム |
JP2010218253A (ja) * | 2009-03-17 | 2010-09-30 | Canon Inc | 情報処理装置、情報処理方法およびプログラム |
US8427634B2 (en) | 2006-07-14 | 2013-04-23 | Hitachi High-Technologies Corporation | Defect inspection method and apparatus |
JP2013527541A (ja) * | 2010-05-31 | 2013-06-27 | モサイド・テクノロジーズ・インコーポレーテッド | デイジーチェーン接続されたデバイスのための高速インターフェイス |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102434180B1 (ko) * | 2020-11-23 | 2022-08-19 | 엘아이지넥스원 주식회사 | 고속 파형 모드 변경 장치 및 방법 |
-
2002
- 2002-08-29 JP JP2002250150A patent/JP4104939B2/ja not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006012133A (ja) * | 2004-05-28 | 2006-01-12 | Intel Corp | 双方向性リング相互接続路を有する多重プロセッサチップ |
US8427634B2 (en) | 2006-07-14 | 2013-04-23 | Hitachi High-Technologies Corporation | Defect inspection method and apparatus |
US8755041B2 (en) | 2006-07-14 | 2014-06-17 | Hitachi High-Technologies Corporation | Defect inspection method and apparatus |
JP2008039533A (ja) * | 2006-08-04 | 2008-02-21 | Hitachi High-Technologies Corp | 欠陥検査方法及びその装置 |
JP2008181424A (ja) * | 2007-01-25 | 2008-08-07 | Sharp Corp | 多重バスインタフェースモジュールおよび多重バスシステム |
JP2010198226A (ja) * | 2009-02-24 | 2010-09-09 | Canon Inc | データ処理装置、データ処理方法およびプログラム |
JP2010218253A (ja) * | 2009-03-17 | 2010-09-30 | Canon Inc | 情報処理装置、情報処理方法およびプログラム |
JP2013527541A (ja) * | 2010-05-31 | 2013-06-27 | モサイド・テクノロジーズ・インコーポレーテッド | デイジーチェーン接続されたデバイスのための高速インターフェイス |
Also Published As
Publication number | Publication date |
---|---|
JP4104939B2 (ja) | 2008-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0993680B1 (en) | Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory | |
US6119196A (en) | System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates | |
US20070180310A1 (en) | Multi-core architecture with hardware messaging | |
US20050172091A1 (en) | Method and an apparatus for interleaving read data return in a packetized interconnect to memory | |
JP4621604B2 (ja) | バス装置、バスシステムおよび情報転送方法 | |
US7447872B2 (en) | Inter-chip processor control plane communication | |
JP3664664B2 (ja) | バスシステム及びそのバス仲裁方法 | |
JP2008310832A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
US20060047754A1 (en) | Mailbox interface between processors | |
JP2004086798A (ja) | マルチプロセッサシステム | |
US20040230717A1 (en) | Processing device | |
JP6142783B2 (ja) | メモリコントローラ,情報処理装置及びメモリコントローラの制御方法 | |
JP2006313479A (ja) | 半導体集積回路装置及びデータ転送方法 | |
US20020078118A1 (en) | Network interface application specific integrated circuit to allow direct attachment for an appliance,such as a printer device | |
JP4125933B2 (ja) | 共通メモリを備えたプロセッサシステム | |
JP4708901B2 (ja) | データ処理モジュール及びそのメッセージの送信準備方法 | |
US7177997B2 (en) | Communication bus system | |
KR0138063B1 (ko) | 광대역회선 분배시스템의 프로세서간 통신장치 | |
JP3457084B2 (ja) | パケットバス制御装置 | |
JP2004054419A (ja) | ノード間トランザクション処理装置 | |
WO2007092747A2 (en) | Multi-core architecture with hardware messaging | |
JP2006195810A (ja) | メモリコントローラおよび高速データ転送方法 | |
JP2008250496A (ja) | エンジン・プロセッサ連携システム及び連携方法 | |
JPH077954B2 (ja) | 制御装置 | |
JP2007122576A (ja) | ループ状の通信経路に接続された複数のデバイスを備えるデバイスシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050607 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071217 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071225 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080220 |
|
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: 20080318 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080326 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110404 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110404 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140404 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |