[go: up one dir, main page]

JP4104939B2 - Multiprocessor system - Google Patents

Multiprocessor system Download PDF

Info

Publication number
JP4104939B2
JP4104939B2 JP2002250150A JP2002250150A JP4104939B2 JP 4104939 B2 JP4104939 B2 JP 4104939B2 JP 2002250150 A JP2002250150 A JP 2002250150A JP 2002250150 A JP2002250150 A JP 2002250150A JP 4104939 B2 JP4104939 B2 JP 4104939B2
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.)
Expired - Fee Related
Application number
JP2002250150A
Other languages
Japanese (ja)
Other versions
JP2004086798A (en
Inventor
茂 小野
大一郎 篠崎
優 渡邉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New Japan Radio Co Ltd
Original Assignee
New Japan Radio Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by New Japan Radio Co Ltd filed Critical New Japan Radio Co Ltd
Priority to JP2002250150A priority Critical patent/JP4104939B2/en
Publication of JP2004086798A publication Critical patent/JP2004086798A/en
Application granted granted Critical
Publication of JP4104939B2 publication Critical patent/JP4104939B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、複数のプロセッサ間でデータを転送する際、プロセッサ間のデータ転送に必要な時間を予め決められた最大時間よりも必ず小さくできるマルチプロセッサシステムに関するものである。
【0002】
【従来の技術】
複数のプロセッサ間で自由にデータを転送する場合、まず、各々のプロセッサ間にデータを転送する信号線路を設ける方式が考えられる。この方式は、転送が必要になるプロセッサ間には独立した信号線路が存在するため、いつでも自由にデータを転送することができる。しかし、多数のプロセッサを用いて高速にデータ転送を行おうとすると、各プロセッサ間の信号線路の総数が膨大になり、特に複数のプロセッサを1つのLSIに実装する場合には、極めて大きい配線領域が必要になるため、現実的ではない。
【0003】
そこで、多数のプロセッサに適用できる現実的なマルチプロセッサシステムとして、例えば特開2001−156817に記述されるようなリングバスを用いた方式が提案されている。この方式では、リングバスを通じて到来する他のプロセッサからのデータが自分宛てのものであるときに、リングバスからデータを取り込み受信する。一方、他のプロセッサに対してデータを送る場合には、リングバスが空いていることを確認してからデータを送信する。もし、リングバス上に他のデータがある場合には、リングバスが空くまで送信を待つことになる。
【0004】
【発明が解決しようとする課題】
しかしながら、上述した従来のマルチプロセッサシステムにおいては、データを送信したいときに、リングバスが他のプロセッサ間のデータ転送に使われている場合、リングバスが空くまで待ち時間が必要になる。特に、リングバス上に多くの転送データがあるような状況では、この待ち時間が大きくなり、プロセッサ間の転送に必要な時間を正しく見積もることができず、場合によっては、転送を諦めなければならない状況もあり得るという問題点があった。
本発明は、以上の点を考慮してなされたものであり、プロセッサ間のデータ転送に必要な時間を予め決められた最大時間よりも必ず小さくできるマルチプロセッサシステムを提供することを目的とする。
【0005】
【課題を解決するための手段】
上記目的を達成するため、本発明は、送信を要求する要求信号と該要求信号に対する応答信号を伝送する信号用リングバスと、データを伝送するデータ用リングバスと、タイミング信号を伝送するタイミング用リングバスと、該タイミング用リングバスに有限のタイミング値からなる前記タイミング信号を送信するタイミング生成部と、バス制御部をそれぞれ備えた複数のプロセッサとを有し、前記プロセッサはそれぞれ、プロセッサ・コアと、該プロセッサ・コア側と前記バス制御部側から独立に読み書きできるデュアルポートメモリと、送信指示内容を格納する送信要求レジスタと、受信指示内容を格納する受信応答レジスタと、前記送信要求レジスタへの書き込みと読み出しに合わせてセットとリセットが行われる送信要求フラグと、前記受信応答レジスタへの書き込みと読み出しに合わせてセットとリセットが行われる受信応答フラグとを有し、前記バス制御部は、ランダム書き込みが可能な送信許可ビットを付加した前記送信指示内容を格納するFIFO構造のメモリで構成され、前記送信要求フラグがセットのとき前記送信要求レジスタに格納されている送信指示内容を前記要求指示内容として格納してから前記送信要求フラグをリセットする送信キューと、ランダム書き込みが可能なデュアルポートメモリ・アドレスと転送終了ビットを付加した前記受信指示内容を格納するFIFO構造のメモリで構成され、前記転送終了ビットを順に調べてセットのとき、前記受信応答フラグがリセットならば前記受信応答レジスタに該受信指示内容と該デュアルポートメモリ・アドレスを格納してから前記受信応答フラグをセットする受信キューと、予め定めた送信タイミング値を記憶する送信制御メモリと、予め定めた受信タイミング値を記憶する受信制御メモリと、前記送信キューに格納されている送信指示内容を読み出し、これに基づいて前記要求信号を生成して信号用リングバスへ送信する要求信号送信制御部と、前記受信キューに格納されている受信指示内容を読み出し、受信したデータを格納するデュアルポートメモリ・アドレスを割り当てて前記受信キューに書き込み、前記応答信号を生成して信号用リングバスへ送信する応答信号送信制御部と、前記信号用リングバスから前記要求信号を受信したとき前記受信キューに格納し、また、該信号用リングバスから応答信号を受信したとき前記送信キューの対応する送信許可ビットを許可にする信号受信制御部と、前記送信キューの送信許可ビットが許可になっているとき、前記送信制御メモリから前記送信タイミング値を知り、タイミング用リングバスのタイミング値が該タイミング値と一致したとき、前記デュアルポートメモリの対応するアドレスからデータ用リングバスへデータを送信するデータ送信制御部と、前記受信制御メモリから受信タイミング値を知り、前記タイミング用リングバスのタイミング値が該受信タイミング値と一致したとき、前記データ用リングバスからデータを受信して前記デュアルポートメモリの対応するアドレスに格納し、全てのデータを受信したのち前記受信キューの対応する転送終了ビットをセットするデータ受信制御部とを有するように構成したものである。
【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:右バッファ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a multiprocessor system in which, when data is transferred between a plurality of processors, the time required for data transfer between the processors can always be made smaller than a predetermined maximum time.
[0002]
[Prior art]
When data is freely transferred between a plurality of processors, first, a method of providing a signal line for transferring data between the processors can be considered. In this method, since independent signal lines exist between processors that need to be transferred, data can be freely transferred at any time. However, if data transfer is performed at high speed using a large number of processors, the total number of signal lines between the processors becomes enormous. Especially when a plurality of processors are mounted on one LSI, an extremely large wiring area is required. Because it is necessary, it is not realistic.
[0003]
Therefore, as a practical multiprocessor system that can be applied to a large number of processors, for example, a system using a ring bus as described in JP-A-2001-156817 has been proposed. In this system, when data from another processor coming through the ring bus is destined for itself, the data is received from the ring bus and received. On the other hand, when sending data to another processor, the data is sent after confirming that the ring bus is free. If there is other data on the ring bus, transmission is waited until the ring bus is free.
[0004]
[Problems to be solved by the invention]
However, in the conventional multiprocessor system described above, when the ring bus is used for data transfer between other processors when data is transmitted, a waiting time is required until the ring bus is free. Especially in situations where there is a lot of transfer data on the ring bus, this waiting time becomes large and the time required for the transfer between processors cannot be estimated correctly, and in some cases the transfer must be given up. There was a problem that the situation was possible.
The present invention has been made in consideration of the above points, and an object of the present invention is to provide a multiprocessor system in which the time required for data transfer between processors can be made smaller than a predetermined maximum time.
[0005]
[Means for Solving the Problems]
To achieve the above object, the present invention provides a signal ring bus for transmitting a request signal for requesting transmission, a response signal for the request signal, a data ring bus for transmitting data, and a timing signal for transmitting timing signals. A ring bus, a timing generation unit that transmits the timing signal having a finite timing value to the timing ring bus, and a plurality of processors each including a bus control unit, Each of the processors includes a processor core, a dual-port memory that can be read and written independently from the processor core side and the bus control unit side, a transmission request register that stores transmission instruction contents, and a reception response that stores reception instruction contents A register, a transmission request flag that is set and reset in accordance with writing to and reading from the transmission request register, and a reception response flag that is set and reset in accordance with writing to and reading from the reception response register. The bus control unit is configured by a FIFO-structured memory that stores the transmission instruction content to which a transmission permission bit capable of random writing is added, and is stored in the transmission request register when the transmission request flag is set. The transmission request content is stored as the request instruction content and then the transmission request It consists of a transmission queue that resets the lag, a FIFO memory that stores the contents of the reception instruction with a dual port memory address and transfer end bit that can be randomly written, and checks the transfer end bit in order and sets When the reception response flag is reset, the reception instruction register and the dual port memory address are stored in the reception response register, and then the reception queue for setting the reception response flag and a predetermined transmission timing value are stored. The transmission control memory for storing, the reception control memory for storing a predetermined reception timing value, and the contents of the transmission instruction stored in the transmission queue are read out, and based on this, the request signal is generated and sent to the signal ring bus Request signal transmission control unit for transmission, and reception instruction contents stored in the reception queue A read signal, a dual port memory address for storing received data is allocated and written to the reception queue, the response signal is generated and transmitted to the signal ring bus, and the signal ring bus from the signal ring bus When receiving a request signal, the signal is stored in the reception queue, and when a response signal is received from the signal ring bus, a signal reception control unit that enables a corresponding transmission permission bit of the transmission queue; and When the transmission permission bit is enabled, the transmission timing value is known from the transmission control memory, and when the timing value of the timing ring bus matches the timing value, the data for the data from the corresponding address of the dual port memory A data transmission controller for transmitting data to the ring bus, and a receiver from the reception control memory. Knowing the imming value, when the timing value of the timing ring bus coincides with the reception timing value, the data is received from the data ring bus and stored in the corresponding address of the dual port memory. And a data reception control unit that sets a transfer end bit corresponding to the reception queue after receiving the data. It is comprised as follows.
[0006]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a block diagram showing an embodiment of a multiprocessor system of the present invention. FIG. 1 shows a case where data is transferred between six processors. In FIG. 1, 111, 112, 113, 114, 115, 116 are processors, 121, 122, 123, 124, 125, 126 are bus control units, 13 is a timing generation unit, 14 is a signal ring bus, and 15 is data. A ring bus 16 is a timing ring bus.
[0007]
FIG. 2 is a diagram for explaining data transfer in the multiprocessor system of the present invention. In FIG. 2, 211, 212, 213, 214, 215, and 216 represent each processor position including each bus control unit. An arrow indicates a data transfer path, and a number in <> indicates a timing value of the timing ring bus when data is transferred through the data transfer path. In FIG. 2, the numbers in <> of each data transfer path are set so that the numbers do not overlap in all the data transfer paths input to and output from each processor position. This is because it is assumed that the bus control unit does not transmit and receive data to the data ring bus at each processor position. On the other hand, the same number can be set for the input data transfer path and the output data transfer path.
[0008]
Hereinafter, the operation of the data transfer method of the multiprocessor system of the present invention will be described in detail with reference to FIG. 1 and FIG. The timing generation unit 13 generates a cyclic timing value and transmits it to the timing ring bus 16. In FIG. 2, it is assumed that the timing value takes a cyclic value that increases by 1 from 0 to 7 and then returns to 0.
[0009]
The operation will be described by taking the processor 111 and the bus control unit 121 as an example. In FIG. 2, it corresponds to the processor location 211. When data is to be transferred from the processor 111 to the processor 112, the processor 111 instructs the bus control unit 121 to transmit a request signal. The bus control unit 121 receives a command from the processor 111, generates a request signal, confirms that the signal ring bus 14 is empty, and transmits the request signal to the signal ring bus 14. If the signal ring bus 14 is not vacant with a signal from another processor, the signal ring bus 14 waits for vacancy and then transmits. The request signal includes information such as a destination address corresponding to the processor 112, a transmission source address corresponding to the processor 111, and a data length.
[0010]
The bus control unit 122 constantly monitors the signal ring bus 14 and receives a request signal addressed to itself. The bus control unit 122 extracts information from the request signal, prepares to receive data, generates a response signal, confirms that the signal ring bus 14 is empty, and then responds to the signal ring bus 14. Send a signal. If the signal ring bus 14 is not vacant with a signal from another processor, the signal ring bus 14 waits for vacancy and then transmits. The response signal includes a destination address corresponding to the processor 111, a transmission source address corresponding to the processor 112, information indicating transmission permission, and the like.
[0011]
The bus control unit 121 constantly monitors the signal ring bus 14, and receives a response signal addressed to itself. Then, the bus control unit 121 extracts information from the response signal, confirms information indicating transmission permission, and then starts data transmission. As shown in FIG. 2, the data is transmitted to the data ring bus 15 when the timing value of the timing ring bus 16 coincides with a value determined in advance for the data transfer path. In this case, transmission is possible when the timing value is zero. If the data length is 2 or more, the next data is transmitted when the next 0 comes after the timing value has been completed.
[0012]
The bus control unit 122 receives data from the data ring bus 15 when the timing value of the timing ring bus 16 is zero. If the data length is 2 or more, the next data is received when the next 0 comes after the timing value has been completed. When data corresponding to the data length known as the request signal information is received, the data reception process is terminated, and the processor 112 is informed that the data reception has been completed. The processor 112 can perform necessary processing using the received data.
[0013]
In the multiprocessor system of the present invention, it is necessary to transmit the request signal and the response signal to the signal ring bus 14 after confirming that the signal ring bus 14 is free. However, when preparation for data transfer is completed by this, subsequent transfer to the data ring bus 15 does not need to check for vacancy, and is executed only on the timing value of the predetermined timing ring bus 16 as a condition. it can. Further, since data transmission to the data ring bus 15 can be executed in a pipelined manner in parallel with transmission of request signals and response signals to the signal ring bus 14, data transfer is performed at a preset speed. Can do. In FIG. 2, only one value is set as a timing value at which data can be transferred through each data transfer path. However, a plurality of values can be set. Can improve the data transfer speed.
[0014]
FIG. 3 is a block diagram showing an example of a configuration example of the processor and the bus control unit in the multiprocessor system of the present invention. In FIG. 3, 31 is a processor, 32 is a bus control unit, 311 is a processor core, 312 is a dual port memory (hereinafter abbreviated as DP memory), 313 is a reception response register, 314 is a transmission request register, and 315 is a reception Response flag, 316 is a transmission request flag, 321 is a transmission queue, 322 is a reception queue, 323 is a transmission control memory, 324 is a reception control memory, 325 is a data transmission control unit, 326 is a data reception control unit, and 327 is a request signal transmission A control unit 328 is a response signal transmission control unit, and 329 is a signal reception control unit. Hereinafter, the operation of the bus control unit in the multiprocessor system of the present invention will be described in detail with reference to FIG. 3, FIG. 1, and FIG. Similar to the above description, the processor 111 and the bus control unit 121 in FIG. 1 will be described as an example.
[0015]
For example, when it is desired to transfer data from the processor 111 (corresponding to the processor 31 in FIG. 3) to the processor 112, the processor core 311 checks the state of the transmission request flag 316. The transmission request flag 316 is a 1-bit flag having two states of set and reset, and is set when there is a transmission request, and reset when there is no transmission request. If the transmission request flag 316 is reset, the processor core 311 stores information necessary for generating a request signal such as a destination address and a data length corresponding to the processor 112 and transmission data in the transmission request register 314. The DP memory address is stored, and then the transmission request flag 316 is set. If the transmission request flag 316 is set, the preceding transmission request has not been processed yet, and the processor core 311 must wait for processing.
[0016]
The bus control unit 121 (corresponding to the bus control unit 32 in FIG. 3) monitors the transmission request flag 316, and if it is set, reads the content of the transmission request register 314 and stores the content in the transmission queue 321. The transmission request flag 316 is reset. The transmission queue 321 is an irregular FIFO-structured memory to which transmission permission bits that can be randomly written are added, and the contents other than the transmission permission bits can be read in order from the previously stored contents.
[0017]
The request signal transmission control unit 327 reads the content written first from the transmission queue 321, generates a request signal, confirms the availability of the signal ring bus 14, and then sends the request signal to the signal ring bus 14. Send. If the signal ring bus 14 is not vacant with a signal from another processor, the signal ring bus 14 waits for vacancy and then transmits. If there is no content to be read in the transmission queue 321, the request signal transmission control unit 327 waits for the content to be read to be stored.
[0018]
In the bus control unit 122 (corresponding to the bus control unit 32 in FIG. 3), the signal reception control unit 329 constantly monitors the signal ring bus 14, and receives a request signal addressed to itself. The contents are stored in the reception queue 322. The reception queue 322 is a memory having an irregular FIFO structure to which a DP memory address capable of random writing and a transfer end bit are added. Except for the DP memory address and the transfer end bit, the contents stored in order are stored in order. Can be read.
[0019]
The response signal transmission control unit 328 reads the content stored first in the reception queue 322, and if an area for storing the received data is allocated to the DP memory 312, writes the DP memory address, and sends the response signal. After generating and confirming the availability of the signal ring bus 14, a response signal is transmitted to the signal ring bus 14. If the signal ring bus 14 is not vacant with a signal from another processor, the signal ring bus 14 waits for vacancy and then transmits. In addition, the response signal transmission control unit 328 notifies the data reception control unit 326 of the DP memory address for storing the received data. If the DP memory 312 cannot allocate an area for storing the received data, the response signal transmission control unit 328 waits for processing.
[0020]
In the bus control unit 121 (corresponding to the bus control unit 32 in FIG. 3), the signal reception control unit 329 constantly monitors the signal ring bus 14, and receives a response signal addressed to itself. Then, after extracting information from the response signal and confirming information indicating transmission permission, the corresponding transmission permission bit of the transmission queue 321 is permitted.
[0021]
The data transmission control unit 325 sequentially reads the transmission permission bits in the transmission queue 321 and, if they are permitted, starts data transmission from the DP memory address corresponding to the transmission queue 321. If the transmission permission bit is not permitted, the data transmission control unit 325 waits for processing. The data transmission control unit 325 knows a transmission timing value at which predetermined data can be transmitted from the transmission control memory 323, and transmits the data to the data ring bus 15 when the timing value of the timing ring bus matches the transmission timing value. To do. In this case, 0 is stored in the transmission control memory 323 as a transmission timing value for the destination address 112, and transmission is possible when the timing value of the timing ring bus 16 is zero. If the data length is 2 or more, the next data is transmitted from the next DP memory address when the next zero comes after the timing value has been completed.
[0022]
In the bus control unit 122 (corresponding to the bus control unit 32 in FIG. 3), the data reception control unit 326 knows 0 as the reception timing value for the transmission source address 111 from the reception control memory 324 and determines the timing ring bus 16. When the timing value is 0, data is received from the data ring bus 15 and stored in the DP memory address notified from the response signal transmission control unit 328 of the DP memory 312. If the data length is 2 or more, the next data is received when the timing value is cycled and the next 0 arrives, and the DP memory address is updated and stored in the DP memory 312. When data corresponding to the data length known as the request signal information is received, the data reception process is terminated, and the corresponding transfer end bit of the reception queue 322 is set.
[0023]
The reception queue 322 checks the transfer end bit in order, and if it is set, checks the state of the reception response flag 315. The reception response flag 315 is a 1-bit flag having two states of set and reset, and is set when there is a reception response, and is reset when there is no reception response. If the reception response flag 315 is reset, the reception queue 322 stores the transmission source address, the data length, and the DP memory address corresponding to the processor 111 in the reception response register 313, and then sets the reception response flag 315. . If the reception response flag 315 is set, the reception queue 322 has to wait for processing because the preceding reception response has not yet been processed.
[0024]
In the processor 112 (corresponding to the processor 31 in FIG. 3), the processor core 311 examines the state of the reception response flag 315, and if it is set, reads the content of the reception response register 313 and reads the DP memory address. And the data length are used to read the information transferred from the DP memory 312. Thereafter, the processor core 311 can perform necessary processing after resetting the reception response flag 315.
[0025]
Since the processor 31 in FIG. 3 uses the DP memory 312 to store the transmitted and received data, transmission and reception cannot be performed at the same timing. However, it is also possible to perform transmission and reception simultaneously by providing separate DP memories dedicated for transmission and reception, or by providing a dedicated circuit that can transmit and receive simultaneously instead of DP memory. Is possible. In this case, the same number can be set for each processor position in FIG. 2 for the data transfer path to be input and the data transfer path to be output, so that the efficiency of data transfer can be improved.
[0026]
FIG. 4 is a block diagram showing a second embodiment of the multiprocessor system of the present invention. FIG. 4 shows a case where data is transferred between six processors as an example, as in FIG. In FIG. 4, 41 is a left signal ring bus, 42 is a right signal ring bus, 43 is a left data ring bus, and 44 is a right data ring bus, and the same components as those in FIG. Has been.
[0027]
FIG. 5 is a diagram for explaining the state of data transfer in the second embodiment of the multiprocessor system of the present invention. The same components as those in FIG. 2 are denoted by the same reference numerals. The number in <> indicates the timing value of the timing ring bus when data is transmitted and received through the data transfer path using the right data ring bus. The number in [] indicates the timing value of the timing ring bus when data is transmitted through the data transfer path using the left data ring bus, and the number in {} indicates the left data ring bus. The timing value of the timing ring bus when data is received through the used data transfer path is shown. However, in FIG. 5, it is assumed that the timing ring bus flows in the same clockwise direction as the right data ring bus. In FIG. 5, the numbers in <>, [], and {} of each data transfer path are set so that the numbers do not overlap in all data transfer paths that are input to and output from each processor position. Yes. This is because it is assumed that the bus control unit does not transmit and receive data to the data ring bus at each processor position. On the other hand, the same number can be set for the input data transfer path and the output data transfer path.
[0028]
In the second embodiment of the multiprocessor system of the present invention, the signal ring bus and the data ring bus are divided into two counterclockwise and clockwise ring buses, so that the ring bus closest in distance can be selected. It is a thing. By doing so, the average data transfer distance is shortened, and the transfer efficiency can be improved. For example, when the processor 111 wants to transfer data to the processor 112, the processor 111 instructs the bus control unit 121 to transmit a request signal. In response to an instruction from the processor 111, the bus control unit 121 generates a request signal, selects the nearer right signal ring bus 42, confirms the availability of the right signal ring bus, and then performs the right signal use. A request signal is transmitted to the ring bus 42. If the right signal ring bus 42 is not empty due to a signal from another processor, transmission is performed after waiting for the signal to become empty. The request signal includes information such as a destination address corresponding to the processor 112, a transmission source address corresponding to the processor 111, and a data length.
[0029]
The bus control unit 122 always monitors the left and right signal ring buses 41 and 42, and receives a request signal addressed to itself. Then, the bus control unit 122 extracts information from the request signal, prepares to receive the data, generates a response signal, confirms the vacancy of the near left signal ring bus 41, and then performs the left signal use. Transmit to the ring bus 41. If the left signal ring bus 41 is not free due to a signal from another processor, transmission is performed after waiting for the signal to be free. The response signal includes a destination address corresponding to the processor 111, a transmission source address corresponding to the processor 112, information indicating transmission permission, and the like.
[0030]
The bus control unit 121 always monitors the left and right signal ring buses 41 and 42, and receives a response signal addressed to itself. Then, the bus control unit 121 extracts information from the response signal, confirms information indicating transmission permission, and then starts data transmission. As shown in FIG. 5, when the timing value of the timing ring bus 16 coincides with a value determined in advance for the data transfer path, the data is transmitted to the closer right data ring bus 44. In this case, transmission is possible when the timing value is zero. If the data length is 2 or more, the next data is transmitted when the next 0 comes after the timing value has been completed.
[0031]
The bus control unit 122 receives data from the right data ring bus 44 when the timing value of the timing ring bus 16 is zero. If the data length is 2 or more, the next data is received when the next 0 comes after the timing value has been completed. When data corresponding to the data length known as the request signal information is received, the data reception process is terminated, and the processor 112 is informed that the data reception has been completed. The processor 112 can perform necessary processing using the received data.
[0032]
In the multiprocessor system of the present invention shown in FIG. 4, both the signal ring bus and the data ring bus are divided into the left-handed and right-handed ring buses, but directly affects the data transfer efficiency. It is also possible to separate only the data ring bus. In FIG. 5, only one value is set as a timing value at which data can be transferred through each data transfer path. However, a plurality of values can be set. Can improve the data transfer speed.
[0033]
FIG. 6 is a block diagram showing a configuration example of the processor and the bus control unit in the second embodiment of the multiprocessor system of the present invention. In FIG. 6, 61 is a bus control unit, 611 is a transmission queue, 612 is a reception queue, 613 is a transmission control memory, 614 is a reception control memory, 615 is a data transmission control unit, 616 is a data reception control unit, and 617 is a request signal. A transmission control unit, 618 is a response signal transmission control unit, 619 is a signal reception control unit, 620 is a left buffer, and 621 is a right buffer. The same components as those in FIG. 3 are denoted by the same reference numerals.
[0034]
For example, when it is desired to transfer data from the processor 111 (corresponding to the processor 31 in FIG. 6) to the processor 112, the processor core 311 checks the state of the transmission request flag 316, and if this is reset, the transmission request register In 314, a destination address corresponding to the processor 112, information necessary for generating a request signal such as a data length, and a DP memory address in which transmission data is stored are stored, and then a transmission request flag 316 is set. If the transmission request flag 316 is set, the preceding transmission request has not been processed yet, and the processor core 311 must wait for processing.
[0035]
The bus control unit 121 (corresponding to the bus control unit 61 in FIG. 6) monitors the transmission request flag 316, and if it is set, reads the content of the transmission request register 314 and stores the content in the transmission queue 611. The transmission request flag 316 is reset. The request signal transmission control unit 617 reads the content written first from the transmission queue 611, refers to the content of the transmission control memory 613, and selects the right signal ring bus 42 closer to the destination address 112. Then, the request signal transmission control unit 617 generates a request signal, confirms that the right signal ring bus 42 is empty, and then transmits the request signal to the right signal ring bus 42. If the right signal ring bus 42 is not empty due to a signal from another processor, transmission is performed after waiting for the signal to become empty. Further, if there is no content to be read in the transmission queue 611, the request signal transmission control unit 617 waits for the content to be read to be stored.
[0036]
In the bus control unit 122 (corresponding to the bus control unit 61 in FIG. 6), the left buffer 620 and the right buffer 621 constantly monitor the left signal ring bus 41 and the right signal ring bus 42, respectively. When the right buffer 621 receives a request signal addressed to itself, the right buffer 621 receives it. The signal reception control unit 619 constantly monitors the status of the left buffer 620 and the right buffer 621, receives the request signal in the right buffer 621, receives this request signal, and stores the content in the reception queue 612.
[0037]
The response signal transmission control unit 618 reads the content stored first in the reception queue 612, and when the area for storing the data to be received is allocated to the DP memory 312, writes the DP memory address, The ring bus 41 for the left signal that is closer to the destination address 111 is selected. Then, the response signal transmission control unit 618 generates a response signal, confirms that the left signal ring bus 41 is empty, and then transmits the response signal to the left signal ring bus 41. If the left signal ring bus 41 is not free due to a signal from another processor, transmission is performed after waiting for the signal to be free. In addition, the response signal transmission control unit 618 notifies the data reception control unit 616 of the DP memory address for storing the received data. If the DP memory 312 cannot allocate an area for storing received data, the response signal transmission control unit 618 waits for processing.
[0038]
In the bus control unit 121 (corresponding to the bus control unit 61 in FIG. 6), the left buffer 620 and the right buffer 621 constantly monitor the left signal ring bus 41 and the right signal ring bus 42, respectively. The left buffer 620 receives a response signal addressed to the left buffer 620. The signal reception control unit 619 constantly monitors the status of the left buffer 620 and the right buffer 621, receives the response signal in the left buffer 620, receives the response signal, extracts information from the response signal, and indicates transmission permission. After confirming the information, the corresponding transmission permission bit of the transmission queue 611 is permitted.
[0039]
The data transmission control unit 615 sequentially reads the transmission permission bits of the transmission queue 611, and when it is permitted, starts data transmission from the corresponding DP memory address of the transmission queue 611. If the transmission permission bit is not permitted, the data transmission control unit 615 waits for processing. The data transmission control unit 615 knows from the transmission control memory 613 a transmission timing value at which predetermined data can be transmitted, and when the timing value of the timing ring bus 16 matches the transmission timing value, the data transmission control unit 615 sends the data to the timing ring bus 16. Send the transmission timing value. In this case, 0 is stored in the transmission control memory 613 as the transmission timing value for the destination address 112, and transmission is possible when the timing value of the timing ring bus 16 is zero. If the data length is 2 or more, the next data is transmitted from the next DP memory address when the next zero comes after the timing value has been completed.
[0040]
In the bus control unit 122 (corresponding to the bus control unit 61 in FIG. 6), the data reception control unit 616 knows 0 as the reception timing value for the transmission source address 111 from the reception control memory 614, and When the timing value is 0, data is received from the data ring bus 15 and stored in the DP memory address notified from the response signal transmission control unit of the DP memory 312. If the data length is 2 or more, the next data is received when the timing value is cycled and the next 0 arrives, and the DP memory address is updated and stored in the DP memory 312. When data corresponding to the data length known as the request signal information is received, the data reception process is terminated, and the corresponding transfer end bit of the reception queue 612 is set.
[0041]
The reception queue 612 checks the transfer end bit in order, and if it is set, checks the state of the reception response flag 315. If the reception response flag 315 is reset, the reception queue 612 stores the transmission source address, the data length, and the DP memory address corresponding to the processor 111 in the reception response register 313, and then sets the reception response flag 315. . If the reception response flag 315 is set, the reception queue 612 has to wait for processing because the preceding reception response has not yet been processed.
[0042]
In the processor 112 (corresponding to the processor 31 in FIG. 6), the processor core 311 examines the state of the reception response flag 315, and if it is set, reads the contents of the reception response register 313 and reads the DP memory address. And the data length are used to read the information transferred from the DP memory 312. Thereafter, the processor core 311 can perform necessary processing after resetting the reception response flag 315.
[0043]
Since the processor 31 in FIG. 6 uses the DP memory 312 to store the transmitted and received data, transmission and reception cannot be performed at the same timing. However, it is possible to perform transmission and reception at the same time by providing a DP memory dedicated for transmission and reception, or by providing a dedicated register circuit that can transmit and receive simultaneously instead of the DP memory. Is possible. In this case, the same number can be set for each processor position in FIG. 5 for the data transfer path to be input and the data transfer path to be output, thereby improving the efficiency of data transfer.
[0044]
The embodiments of the multiprocessor system have been described above. However, the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the spirit of the present invention. Of course.
【The invention's effect】
As described above in detail, according to the present invention, data transfer using the data ring bus can be executed only on the timing value of the predetermined timing ring bus. Therefore, it is possible to provide a multiprocessor system in which the time required for data transfer between processors can be made smaller than a predetermined maximum time.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a first embodiment of a multiprocessor system of the present invention.
FIG. 2 is a diagram for explaining a state of data transfer in the first embodiment of the multiprocessor system of the present invention.
FIG. 3 is a block diagram illustrating a first configuration example of a processor and a bus control unit in the multiprocessor system according to the first embodiment of this invention.
FIG. 4 is a block diagram showing a second embodiment of the multiprocessor system of the present invention.
FIG. 5 is a diagram for explaining a state of data transfer in the second embodiment of the multiprocessor system of the present invention;
FIG. 6 is a block diagram illustrating a second configuration example of a processor and a bus control unit in a multiprocessor system according to a second embodiment of this invention.
[Explanation of symbols]
111, 112, 113, 114, 115, 116: processor, 121, 122, 123, 124, 125, 126: bus control unit, 13: timing generation unit, 14: signal ring bus, 15: data ring bus, 16: ring bus for timing, 211, 212, 213, 214, 215, 216: processor position, 31: processor, 32: bus control unit, 311: processor core, 312: dual port memory, 313: reception response register 314: Transmission request register, 315: Reception response flag, 316: Transmission request flag, 321: Transmission queue, 322: Reception queue, 323: Transmission control memory, 324: Reception control memory, 325: Data transmission control unit, 326: Data reception control unit, 327: request signal transmission control unit, 328: response signal Communication control unit, 329: signal reception control unit, 41: left signal ring bus, 42: right signal ring bus, 43: left data ring bus, 44: right data ring bus, 61: bus control unit, 611 : Transmission queue, 612: reception queue, 613: transmission control memory, 614: reception control memory, 615: data transmission control unit, 616: data reception control unit, 617: request signal transmission control unit, 618: response signal transmission control unit 619: Signal reception control unit 620: Left buffer 621: Right buffer

Claims (2)

送信を要求する要求信号と該要求信号に対する応答信号を伝送する信号用リングバスと、データを伝送するデータ用リングバスと、タイミング信号を伝送するタイミング用リングバスと、該タイミング用リングバスに有限のタイミング値からなる前記タイミング信号を送信するタイミング生成部と、バス制御部をそれぞれ備えた複数のプロセッサとを有し、
前記プロセッサはそれぞれ、プロセッサ・コアと、該プロセッサ・コア側と前記バス制御部側から独立に読み書きできるデュアルポートメモリと、送信指示内容を格納する送信要求レジスタと、受信指示内容を格納する受信応答レジスタと、前記送信要求レジスタへの書き込みと読み出しに合わせてセットとリセットが行われる送信要求フラグと、前記受信応答レジスタへの書き込みと読み出しに合わせてセットとリセットが行われる受信応答フラグとを有し、
前記バス制御部は、
ランダム書き込みが可能な送信許可ビットを付加した前記送信指示内容を格納するFIFO構造のメモリで構成され、前記送信要求フラグがセットのとき前記送信要求レジスタに格納されている送信指示内容を前記要求指示内容として格納してから前記送信要求フラグをリセットする送信キューと、
ランダム書き込みが可能なデュアルポートメモリ・アドレスと転送終了ビットを付加した前記受信指示内容を格納するFIFO構造のメモリで構成され、前記転送終了ビットを順に調べてセットのとき、前記受信応答フラグがリセットならば前記受信応答レジスタに該受信指示内容と該デュアルポートメモリ・アドレスを格納してから前記受信応答フラグをセットする受信キューと、
予め定めた送信タイミング値を記憶する送信制御メモリと、
予め定めた受信タイミング値を記憶する受信制御メモリと、
前記送信キューに格納されている送信指示内容を読み出し、これに基づいて前記要求信号を生成して信号用リングバスへ送信する要求信号送信制御部と、
前記受信キューに格納されている受信指示内容を読み出し、受信したデータを格納するデュアルポートメモリ・アドレスを割り当てて前記受信キューに書き込み、前記応答信号を生成して信号用リングバスへ送信する応答信号送信制御部と、
前記信号用リングバスから前記要求信号を受信したとき前記受信キューに格納し、また、該信号用リングバスから応答信号を受信したとき前記送信キューの対応する送信許可ビットを許可にする信号受信制御部と、
前記送信キューの送信許可ビットが許可になっているとき、前記送信制御メモリから前記送信タイミング値を知り、タイミング用リングバスのタイミング値が該タイミング値と一致したとき、前記デュアルポートメモリの対応するアドレスからデータ用リングバスへデータを送信するデータ送信制御部と、
前記受信制御メモリから受信タイミング値を知り、前記タイミング用リングバスのタイミング値が該受信タイミング値と一致したとき、前記データ用リングバスからデータを受信して前記デュアルポートメモリの対応するアドレスに格納し、全てのデータを受信したのち前記受信キューの対応する転送終了ビットをセットするデータ受信制御部とを有することを特徴とするマルチプロセッサシステム。
A signal ring bus for transmitting a request signal for requesting transmission and a response signal for the request signal, a data ring bus for transmitting data, a timing ring bus for transmitting timing signals, and the timing ring bus A timing generation unit that transmits the timing signal composed of the timing value of the plurality of processors, and a plurality of processors each including a bus control unit,
Each of the processors includes a processor core, a dual-port memory that can be read and written independently from the processor core side and the bus control unit side, a transmission request register that stores transmission instruction contents, and a reception response that stores reception instruction contents A register, a transmission request flag that is set and reset in accordance with writing to and reading from the transmission request register, and a reception response flag that is set and reset in accordance with writing to and reading from the reception response register. And
The bus control unit
It is composed of a memory having a FIFO structure for storing the transmission instruction content to which a transmission permission bit capable of random writing is added, and when the transmission request flag is set, the transmission instruction content stored in the transmission request register is the request instruction. A transmission queue that resets the transmission request flag after storing as content;
It is composed of a dual-port memory address that can be written randomly and a FIFO-structured memory that stores the contents of the reception instruction with a transfer end bit added. When the transfer end bit is sequentially checked and set, the reception response flag is reset A reception queue that sets the reception response flag after storing the reception instruction content and the dual port memory address in the reception response register;
A transmission control memory for storing a predetermined transmission timing value;
A reception control memory for storing a predetermined reception timing value;
A request signal transmission control unit that reads the transmission instruction content stored in the transmission queue, generates the request signal based on the transmission instruction content, and transmits the request signal to the signal ring bus;
A response signal that reads the contents of the reception instruction stored in the reception queue, assigns a dual-port memory address for storing the received data, writes it to the reception queue, generates the response signal, and transmits it to the signal ring bus A transmission control unit;
When receiving the request signal from the signal ring bus, the signal is stored in the reception queue, and when a response signal is received from the signal ring bus, the signal reception control for permitting the corresponding transmission permission bit of the transmission queue. And
When the transmission permission bit of the transmission queue is enabled, the transmission timing value is known from the transmission control memory, and when the timing value of the timing ring bus matches the timing value, the corresponding of the dual port memory A data transmission control unit for transmitting data from the address to the data ring bus;
The reception timing value is obtained from the reception control memory, and when the timing ring bus timing value matches the reception timing value, the data is received from the data ring bus and stored in the corresponding address of the dual port memory. And a data reception control unit that sets a transfer end bit corresponding to the reception queue after receiving all the data .
前記データ用リングバスを、左回り及び右回りにデータが流れる左データ用リングバスと右データ用リングバスとで構成し、データを転送する先のプロセッサまでの距離が近い方のデータ用リングバスを選択するように構成し、
前記信号用リングバスを、左回り及び右回りに信号が流れる左信号用リングバスと右信号用リングバスとで構成し、前記要求信号または前記応答信号の宛先のプロセッサまでの距離が近い方の信号用リングバスを選択するように構成し、
前記バス制御部に、左信号用リングバスから前記要求信号または前記応答信号を受信したとき、該要求信号または該応答信号を記憶する左バッファと、右信号用リングバスから前記要求信号または前記応答信号を受信したとき、該要求信号または該応答信号を記憶す る右バッファとを付加し、
前記送信制御メモリは、送信タイミング値に加えて、前記左信号用リングバスと前記右信号用リングバスのいずれか、または前記左データ用リングバスと前記右データ用リングバスのいずれかを選択するためのバス選択情報を記憶するようにし、
前記受信制御メモリは、受信タイミング値に加えて、前記左信号用リングバスと前記右信号用リングバスのいずれか、または前記左データ用リングバスと前記右データ用リングバスのいずれかを選択するためのバス選択情報を記憶するようにし、
前記要求信号送信制御部は、前記送信制御メモリの前記バス選択情報に基づいて前記左信号用リングバスと前記右信号用リングバスのいずれかを選択してから該選択した信号用リングバスに要求信号を送信するようにし、
前記応答信号送信制御部は、前記受信制御メモリの前記バス選択情報に基づいて前記左信号用リングバスと前記右信号用リングバスのいずれかを選択してから該選択した信号用リングバスに応答信号を送信するようにし、
前記信号受信制御部は、前記左バッファまたは前記右バッファを調べて信号が記憶されていたら該信号に対する処理を行うようにし、
前記データ送信制御部は、前記送信制御メモリの前記バス選択情報に基づいて前記左データ用リングバスと前記右データ用リングバスのいずれかを選択してからデータを送信するようにし、
前記データ受信制御部は、前記受信制御メモリの前記バス選択情報に基づいて前記左データ用リングバスと前記右データ用リングバスのいずれかを選択してからデータを受信するようにしたことを特徴とする請求項1に記載のマルチプロセッサシステム。
The data ring bus is composed of a left data ring bus and a right data ring bus through which data flows counterclockwise and clockwise, and a data ring bus having a shorter distance to a processor to which data is transferred Configured to select
The signal ring bus is composed of a left signal ring bus and a right signal ring bus through which signals flow counterclockwise and clockwise, and the request signal or the response signal is closer to the destination processor. Configure to select the signal ring bus,
When the request signal or the response signal is received from the left signal ring bus, the bus controller stores the request signal or the response signal, and the request signal or the response from the right signal ring bus. when receiving the signal, adding the right buffer you store the request signal or said response signal,
In addition to the transmission timing value, the transmission control memory selects either the left signal ring bus or the right signal ring bus, or the left data ring bus or the right data ring bus. To store bus selection information for
The reception control memory selects one of the left signal ring bus and the right signal ring bus, or the left data ring bus and the right data ring bus, in addition to the reception timing value. To store bus selection information for
The request signal transmission control unit selects one of the left signal ring bus and the right signal ring bus based on the bus selection information in the transmission control memory, and then requests the selected signal ring bus. Send a signal,
The response signal transmission control unit selects either the left signal ring bus or the right signal ring bus based on the bus selection information in the reception control memory, and then responds to the selected signal ring bus. Send a signal,
The signal reception control unit checks the left buffer or the right buffer and performs processing on the signal if the signal is stored,
The data transmission control unit transmits data after selecting either the left data ring bus or the right data ring bus based on the bus selection information of the transmission control memory,
The data reception control unit receives data after selecting either the left data ring bus or the right data ring bus based on the bus selection information in the reception control memory. The multiprocessor system according to claim 1.
JP2002250150A 2002-08-29 2002-08-29 Multiprocessor system Expired - Fee Related JP4104939B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002250150A JP4104939B2 (en) 2002-08-29 2002-08-29 Multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002250150A JP4104939B2 (en) 2002-08-29 2002-08-29 Multiprocessor system

Publications (2)

Publication Number Publication Date
JP2004086798A JP2004086798A (en) 2004-03-18
JP4104939B2 true JP4104939B2 (en) 2008-06-18

Family

ID=32057050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002250150A Expired - Fee Related JP4104939B2 (en) 2002-08-29 2002-08-29 Multiprocessor system

Country Status (1)

Country Link
JP (1) JP4104939B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220070841A (en) * 2020-11-23 2022-05-31 엘아이지넥스원 주식회사 Apparatus and method for changing waveform mode at high speed

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060041715A1 (en) * 2004-05-28 2006-02-23 Chrysos George Z Multiprocessor chip having bidirectional ring interconnect
JP4928862B2 (en) 2006-08-04 2012-05-09 株式会社日立ハイテクノロジーズ Defect inspection method and apparatus
US7664608B2 (en) 2006-07-14 2010-02-16 Hitachi High-Technologies Corporation Defect inspection method and apparatus
JP4823929B2 (en) * 2007-01-25 2011-11-24 シャープ株式会社 Multiple bus interface module and multiple bus system
JP5460088B2 (en) * 2009-03-17 2014-04-02 キヤノン株式会社 Information processing apparatus, information processing method, and program
JP5406558B2 (en) * 2009-02-24 2014-02-05 キヤノン株式会社 Data processing apparatus, data processing method and program
US8463959B2 (en) * 2010-05-31 2013-06-11 Mosaid Technologies Incorporated High-speed interface for daisy-chained devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220070841A (en) * 2020-11-23 2022-05-31 엘아이지넥스원 주식회사 Apparatus and method for changing waveform mode at high speed
KR102434180B1 (en) 2020-11-23 2022-08-19 엘아이지넥스원 주식회사 Apparatus and method for changing waveform mode at high speed

Also Published As

Publication number Publication date
JP2004086798A (en) 2004-03-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
EP0617368B1 (en) Arbitration process for controlling data flow through an I/O controller
JP5036120B2 (en) Communication system and method with unblocked shared interface
US6119196A (en) System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US5020020A (en) Computer interconnect system with transmit-abort function
EP0391583B1 (en) Dual-path computer interconnect system with four-ported packet memory control
JP5280135B2 (en) Data transfer device
US5187780A (en) Dual-path computer interconnect system with zone manager for packet memory
US6925512B2 (en) Communication between two embedded processors
US20050132089A1 (en) Directly connected low latency network and interface
WO2016127552A1 (en) Direct memory access (dma) controller and data transmission method
JP2009538069A (en) Multiprocessor gateway
JP3664664B2 (en) Bus system and bus arbitration method thereof
JPH0981508A (en) Method and apparatus for communication
JP4104939B2 (en) Multiprocessor system
JP2008541276A (en) Simultaneous read response confirmation extended direct memory access unit
US20040230717A1 (en) Processing device
KR102303424B1 (en) Direct memory access control device for at least one processing unit having a random access memory
CN115114215B (en) High-speed peripheral component interconnect interface device and operation method thereof
JP4125933B2 (en) Processor system with common memory
KR20010095103A (en) An intelligent bus interconnect unit
US7177997B2 (en) Communication bus system
JPH10143486A (en) Data transmission / reception method for parallel computers
KR0138063B1 (en) Inter processor communication apparatus of broad circuit distributing system
JP3457084B2 (en) Packet bus controller

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