JP2007316699A - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP2007316699A JP2007316699A JP2006142414A JP2006142414A JP2007316699A JP 2007316699 A JP2007316699 A JP 2007316699A JP 2006142414 A JP2006142414 A JP 2006142414A JP 2006142414 A JP2006142414 A JP 2006142414A JP 2007316699 A JP2007316699 A JP 2007316699A
- Authority
- JP
- Japan
- Prior art keywords
- data
- packet
- response
- data packet
- transfer
- 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.)
- Withdrawn
Links
Images
Landscapes
- Multi Processors (AREA)
- Bus Control (AREA)
Abstract
【課題】優先度に応じたデータ転送を簡単な構成で実現することができるデータ処理装置を提供する。
【解決手段】出力データ選択部104は、他のモジュール宛てのデータパケットと、データパケット生成部103によって生成されたデータパケットとのいずれかを優先度に応じて選択する。応答パケット生成部107は、その選択結果に応じた応答パケットを生成する。再送制御部106は、他のモジュールから受信した応答パケットの内容に応じて、出力バッファ102からの処理結果の読み出しを制御する。
【選択図】図2
【解決手段】出力データ選択部104は、他のモジュール宛てのデータパケットと、データパケット生成部103によって生成されたデータパケットとのいずれかを優先度に応じて選択する。応答パケット生成部107は、その選択結果に応じた応答パケットを生成する。再送制御部106は、他のモジュールから受信した応答パケットの内容に応じて、出力バッファ102からの処理結果の読み出しを制御する。
【選択図】図2
Description
本発明は、複数のモジュールが並列にデータ処理を実行するデータ処理装置に関する。
一般に、集積回路は、単一の機能を有する機能モジュールを複数組み合わせることで所望の機能を実現している。この場合、各モジュールは双方向のバスで接続されることが多い。しかし、この双方向バスによる接続では、データ転送時には1対1の転送が行われるため、複数のモジュールが同時にデータを送出することはできない。よって、接続されるモジュールが多くなるほど転送待ち時間が増加し、転送効率が悪化する。また、バスの使用権の調停にオーバーヘッドが生じる上、モジュール数が増えるほど、その制御の複雑度が増加するといったデメリットがある。
このような問題を解決する方法として、例えば特許文献1に記載の集積回路が提案されている。図13にその構成を示す。処理モジュール1301a〜1301dは、アダプタ1302a〜1302dを介してリング状のバス1303に接続されている。また、このアダプタの構成は図14のようになっている。このアダプタとリング状バスとで一種のシフトレジスタを構成しているため、リングバス上にはモジュール数と同じ数の転送データが存在することができる。例えば、図13の場合、同時に4データの転送が可能となる。
アダプタ内では、データ抽出挿入回路1402とセレクタ1403により、リングバスからのデータ取得およびリングバスへのデータ送出が制御される。データ抽出挿入回路1402は、レジスタ1401に保持されたデータが自モジュール宛であるか否かの判定を行い、自モジュール宛であればモジュール内にデータを取り込む。一方、セレクタ1403は、他のモジュール宛のデータが入力された場合にはその入力データを、自モジュール宛のデータあるいは無効データが入力された場合にはデータ抽出挿入回路1402の出力を選択してレジスタ1404に入力する。この構成により、同時に複数のデータ転送を実行することが可能になるため、双方向バス方式と比較してデータ転送性能が向上する。
特開平11−167560号公報
上記のように、特許文献1に記載の集積回路においては、自モジュール宛のデータか無効データが入力されたときにはリングバス上にデータを送出できるようになっている。他のモジュール宛のデータが入力された場合、そのモジュールは、入力データを次段のモジュールに転送するためのシフトレジスタとしての機能しか果たせず、送出したい(優先度の高い)データがあってもデータを送出することができない。すなわち、優先度に応じたデータ転送が行えないという状況が発生する。なお、特許文献1では、このような問題の対策として、図15のように転送制御回路1501を配置し、優先度に応じた転送を実現するための集中管理を行うという提案が記載されている。しかし、この構成ではモジュール数の増加に比例して、制御回路の複雑度が飛躍的に増加することが容易に想像できる。
本発明は、上述した問題点に鑑みてなされたものであって、優先度に応じたデータ転送を簡単な構成で実現することができるデータ処理装置を提供することを目的とする。
本発明は、上記の課題を解決するためになされたもので、複数のモジュールをデータ転送バスと応答転送バスとによりリング状に接続してリングバスを構成するデータ処理装置であって、前記モジュールは、所定の処理を実行する処理部と、前記処理部の処理結果を一時的に保持する処理結果保持部と、前記処理結果保持部から前記処理結果を読み出し、該処理結果を含むデータパケットを生成するデータパケット生成部と、前記データ転送バスから入力された他のモジュール宛てのデータパケットと、前記データパケット生成部によって生成されたデータパケットとのいずれかを優先度に応じて選択するデータパケット選択部と、前記データパケット選択部によって選択されたデータパケットを前記データ転送バスへ出力するデータパケット出力部と、前記データパケット選択部の選択結果に応じて、データパケットの送信元である他のモジュールにデータパケットの転送状況を通知する応答パケットを生成する応答パケット生成部と、前記応答パケット生成部によって生成された応答パケットと、前記応答転送バスから入力された他のモジュール宛ての応答パケットとを前記応答転送バスへ出力する応答パケット出力部と、前記応答転送バスから入力される応答パケットの内容に応じて、前記処理結果保持部からの前記処理結果の読み出しを制御する制御部とを備えたことを特徴とするデータ処理装置である。
また、本発明のデータ処理装置において、前記応答転送バスは順方向および逆方向に応答パケットを転送可能であり、前記応答パケット出力部は、自モジュールと応答パケットの宛先のモジュールとの前記リングバス上の相対位置関係に基づいて、より転送段数の少ない転送方向に応答パケットを出力することを特徴とする。
また、本発明のデータ処理装置において、前記応答パケット生成部は、データパケットの送信元である他のモジュールに対してデータパケットの送信停止を指示する第1の応答パケットと、前記他のモジュールに対してデータパケットの送信再開を指示する第2の応答パケットとを生成することを特徴とする。
また、本発明のデータ処理装置において、前記データパケット生成部は、前記応答転送バスから入力される応答パケットの内容に応じてデータパケットの優先度を設定することを特徴とする。
本発明によれば、他のモジュール宛てのデータパケットと、データパケット生成部によって生成されたデータパケットとのいずれかを優先度に応じて選択し、その選択結果に応じた応答パケットを送信するようにしたと共に、他のモジュールから受信した応答パケットの内容に応じて、処理結果保存部からの処理結果の読み出しを制御するようにしたことにより、優先度に応じたデータ転送を簡単な構成で実現することができるという効果が得られる。
以下、図面を参照し、本発明の実施形態を説明する。
(第1の実施形態)
まず、本発明の第1の実施形態を説明する。図1は、本実施形態によるデータ処理装置の構成を示している。プロセッサモジュール110は、プロセッサモジュール毎にそれぞれ定められた所定の処理を実行する。各プロセッサモジュール110は、データを転送するデータ転送路111と、データ送信元のプロセッサモジュール110に対して、転送状況を示す応答を返信するための応答用転送路112とを介し、リング状に結線されている。これらデータ転送路111と応答用転送路112とによって、リング状バスが構成されている。
まず、本発明の第1の実施形態を説明する。図1は、本実施形態によるデータ処理装置の構成を示している。プロセッサモジュール110は、プロセッサモジュール毎にそれぞれ定められた所定の処理を実行する。各プロセッサモジュール110は、データを転送するデータ転送路111と、データ送信元のプロセッサモジュール110に対して、転送状況を示す応答を返信するための応答用転送路112とを介し、リング状に結線されている。これらデータ転送路111と応答用転送路112とによって、リング状バスが構成されている。
データおよび応答の転送は図1中の矢印の方向にのみ行われる。なお、プロセッサモジュール110の出力段にはシフトレジスタ109が設けられており、あるプロセッサモジュール110のシフトレジスタ109の出力は次段のプロセッサモジュール110の入力となっている。転送データは、基本的にはこれらのレジスタ109によるシフトレジスタ動作により、所望のプロセッサモジュール110まで転送される。
よって、各プロセッサモジュール110間にはそれぞれ独立したデータが存在することになり、一度にプロセッサモジュール数と同数のデータ転送を行うことができる。あるプロセッサモジュール110内のシフトレジスタ109と、その後段のプロセッサモジュール110内のシフトレジスタ109との間の、独立したデータが存在している区間(図1中の区間113)を、以下では転送スロットと呼ぶ。なお、図1ではプロセッサモジュールが3個結線されているが、結線されるプロセッサモジュールの個数に制限はない。
次に、本実施形態におけるデータパケットと応答パケットの構成を説明する。データパケットの構成例を図4に、応答パケットの構成例を図5に示す。データパケットは、転送に関する種々の情報が格納されるヘッダ部10と、データ本体が格納されるデータ部11とから構成され、同様に応答パケットもヘッダ部20とデータ部21とから構成されている。
データパケットは以下のフィールドで構成されている。有効フィールド12は、転送データが存在することを示す。すなわち、有効フィールド12が「無効」になっている場合、転送スロットが空いているとみなすことができるため、その転送スロットに含まれるプロセッサモジュールはデータを出力することができる。
転送先IDフィールド13は、パケットを受信させたいプロセッサモジュールのID番号を示す。プロセッサモジュールのID番号には、本データ処理装置内で重複しない独立した数字が割り振られており、各プロセッサモジュールは自モジュールのID番号を把握している。このID番号は、ハードウェア的に固定情報として保持していても良いし、レジスタ等で外部から変更できるようになっていても良い。
転送元IDフィールド14は、パケットを発信したプロセッサモジュールのID番号を示す。転送IDフィールド15は、パケットを発信したプロセッサモジュールが転送を管理するための識別番号である。優先度フィールド16は、そのパケットの転送優先順位を示す。通常は、各プロセッサモジュール自身の優先順位と等しい。転送データフィールド17は、転送したいデータである。
応答パケットは以下のフィールドで構成されている。有効フィールド22、転送元IDフィールド23、転送IDフィールド24はデータパケットと同様である。応答フィールド25は、送信元のプロセッサモジュールに対して通知したい応答内容を示す。
次に、プロセッサモジュール110の詳細を説明する。図2はプロセッサモジュール110の構成を示している。入力データ解析部100には、データ転送路111からのデータパケット116が入力される。入力データ解析部100は、データパケット116のヘッダ部を解析することにより、現在の転送スロットに有効なデータが存在し、且つそのデータが自プロセッサモジュール宛のデータであるか否か(すなわち自プロセッサモジュール宛ての有効なデータであるか否か)を判定する。
判定の結果、データが自プロセッサモジュール宛のデータであった場合、入力データ解析部100はデータパケット116からデータ部を取り出して処理部101に入力する。また、この場合に入力データ解析部100は、データパケット116のヘッダ部の有効フィールドを“無効”にしたデータパケット114を出力データ選択部104に入力する。一方、入力データが“無効”あるいは他のプロセッサモジュール宛ての場合、入力データ解析部100は、データパケット114としてデータパケット116を、加工せずにそのまま出力し、処理部101には何も入力しない。
処理部101は、あらかじめ決められた処理を入力データに対して実行し、処理結果を出力バッファ102に格納する。出力バッファ102は、その処理結果を一時的に保持する。データパケット生成部103は、処理結果を示すデータが出力バッファ102に存在する場合、出力バッファ102からデータを読み出し、転送に必要なヘッダ情報を付与して、データパケットを生成する。データパケットの転送IDフィールドには、出力バッファ102のアドレス等、転送データに関連する情報が格納される。
なお、データパケットの優先度は、優先順位保持部105が保持する優先度情報により規定される。優先順位保持部105が保持する優先度情報は、ハードウェアが固定的に保持するものであっても良いし、レジスタ等で可変にできるものであっても良い。また、本実施形態では、有効な自プロセッサモジュール宛てのデータが入力された場合に、処理部101が処理を実行し、処理結果が他のプロセッサモジュールに転送されるようになっているが、これ以外の場合に処理部101が処理を実行するようにしても良い。
出力データ選択部104は、データパケット生成部103が生成したデータパケット115と、入力データ解析部100から出力されるデータパケット114とのどちらかを選択し、シフトレジスタ109に入力する。この選択の際に出力データ選択部104は、データパケット114とデータパケット115の優先度フィールドの比較を行い、優先度の高い方のデータパケットを出力する。優先度が同じ場合には、出力データ選択部104はデータパケット114を選択する。
また、データパケット生成部103によって生成されたデータパケット115の優先度の方が高い場合には、出力データ選択部104は応答パケット生成部107にトリガ信号118を入力する。出力データ選択部104がデータパケット115を選択した場合には、データパケット116は転送路上から消滅し、そのかわりにデータパケット115が新たに転送路上に出現したことになる。
応答パケット生成部107は、出力データ選択部104の選択結果に応じて、データの転送状況を示す応答パケットを生成する。具体的には、応答パケット生成部107は、トリガ信号118が入力されると、データパケット116を送信したプロセッサモジュール110に対して、データ送信が取り消されたことを通知すると共にデータの再送を要求する応答パケットを生成する。この際に、応答を転送する先のIDとして、出力データ選択部104がデータパケット114から抜き出して応答パケット生成部107に通知した転送元IDが使用される。
応答パケット選択部108は、通常時には、応答用転送路112から入力される応答パケット117をシフトレジスタ109に入力するが、応答パケット生成部107が応答パケットを生成した場合には、応答パケット生成部107が生成した応答パケット119をシフトレジスタ109に入力する。ただし、応答パケット生成部107が応答パケットを生成したときに、有効な応答パケット117が存在する場合には応答パケット117を優先する。よって、応答パケット生成部107あるいは応答パケット選択部108内には、応答パケットを一時的に退避するための図示しないバッファが用意されている。
なお、正常転送完了時には応答を返さず、前述したように、転送されるべきデータが優先順位の関係により途中で消滅したような場合にのみ応答を返すようにしておけば、応答用転送路112(転送スロット)の空いている状態が通常状態になる。よって、応答パケットの入力と出力のタイミングが重なる可能性はあっても、応答用転送路112が応答パケットで一杯になり、応答パケットを出力できないという状況に陥る可能性は低いと考えられるため、応答パケット用のバッファはごく少量でよい。
シフトレジスタ109は、システムクロックに同期して、出力データ選択部104の出力(データパケット)と応答パケット選択部108の出力(応答パケット)を1サイクル期間保持し、データパケットをデータ転送路111へ、応答パケットを応答用転送路112へ出力する。
再送制御部106は、応答用転送路112から入力される応答パケットの内容に応じて、出力バッファ102からのデータの読み出しを制御する。具体的には、再送制御部106は、通常時には何もしないが、データパケットの再送を要求する自プロセッサモジュール宛ての応答パケットの入力を検出すると、その応答パケットの内容を解析し、出力バッファ102から読み出すデータに関する情報をデータパケット生成部103に入力する。自プロセッサモジュールが送信したデータパケットが他のプロセッサモジュールで消滅したことが応答パケットによって通知された場合、再送制御部106によって、そのデータパケットが再度送信されるようになる。
なお、データに関する情報は、応答パケットの転送IDフィールドに格納されている。転送IDフィールドに格納すべきデータの内容は特に規定しないが、前述したように、例えば出力バッファ102のアドレスを格納しておけば、データパケット生成部103は該当するデータを特定することができる。データパケット生成部103は、通常時は出力バッファ102のデータを格納順に読み出すが、再送制御部106からの指示がある際には、その指示に対応したアドレスのデータを読み出す。
次に、図3および図6を参照し、プロセッサモジュール間での転送動作を説明する。図3では、3個のプロセッサモジュール140,141,142がリング状に結線されており、プロセッサモジュール140からプロセッサモジュール142に連続的にデータが転送されている。ここで、プロセッサモジュール141の転送優先順位はプロセッサモジュール140の転送優先順位よりも上位とする。この状態で、プロセッサモジュール141からプロセッサモジュール142への転送が発生する場合を考える。なお、図3中の各プロセッサモジュールの構成は図2と同一であるため、以下の説明では各構成要素に関して同じ記号を使用する。
図6の時間150において、プロセッサモジュール141内のデータパケット生成部103がプロセッサモジュール142宛てのデータパケット“B0”を生成したとすると、出力データ選択部104には、データパケット130(より正確には、入力データ解析部100の出力)と、データパケット生成部103から出力されたデータパケット131との両方が入力されている。このとき、データパケット131の優先順位がデータパケット130よりも上位であるため、出力データ選択部104はデータパケット131(データパケット“B0”)をデータパケット132としてシフトレジスタ109に入力する。
このとき、図示しない応答パケット生成部107は、プロセッサモジュール140に対してデータの再送を指示する応答パケット“再送”を生成し、シフトレジスタ109に入力する。これらのパケット(図6中のデータパケット“B0”および応答パケット“再送”)は、シフトレジスタ109によりラッチされ、時間151においてプロセッサモジュール141から出力されるデータパケット133および応答パケット134となる。このとき、プロセッサモジュール140が出力したデータパケット“A0”は、リングバス上から消滅したことになる。
時間152において、応答パケット“再送”は、プロセッサモジュール140に入力される応答パケット135となる。応答パケットを受信したプロセッサモジュール140は、次に発信するはずであったデータパケット“A4”ではなく、出力バッファ102に保持されているデータパケット“A1”を再び出力する。このデータパケット“A1”は、シフトレジスタ109によりラッチされ、時間153においてプロセッサモジュール141に入力されるデータパケット130となる。
時間153において、プロセッサモジュール141のデータパケット生成部103からはデータ出力がないため、データパケット“A1”は出力データ選択部104の出力となる。その後、データパケット“A1”はシフトレジスタ109によりラッチされて、時間154においてプロセッサモジュール142に入力されるデータパケット133となり、本来行われるはずであった転送が完了する。
本実施形態では、転送路が使用されていても、優先度が高いプロセッサモジュールであれば、転送路に割り込むことでデータを送出することが可能になる。一方、優先度の低いデータが転送される場合、データの転送中に他のプロセッサモジュールに割り込まれるとそのデータは消滅してしまうが、破棄されたデータを発信したプロセッサモジュールは、応答パケットにより、送信したデータが破棄された(転送が中断された)ことを知ることができる。よって、応答パケットを受信したプロセッサモジュールが然るべき措置(データ再送等)を実行することができるため、システムが破綻することは無い。
上述したように、他のプロセッサモジュール宛てのデータと、データパケット生成部によって生成されたデータとのいずれかを優先度に応じて選択し、その選択結果に応じた応答パケットを送信するようにしたと共に、他のプロセッサモジュールから受信した応答パケットの内容に応じて、出力バッファからの処理結果の読み出しを制御するようにしたことにより、優先度に応じたデータ転送を簡単な構成で実現することができる。特に、優先順位の高いプロセッサモジュールがデータパケットを出力できないという状況を、システムを破綻させること無く解消することができる。
なお、本実施形態の各構成は、当然、各種の変形、変更が可能である。例えば、図1では、データ転送路111と応答用転送路112を分けて図示しているが、転送方向が同じなのでまとめて一つの転送路としても良い。ただし、その場合は、入力されたパケットをデータと応答とに選別する機能を各プロセッサモジュール110に持たせる必要がある。
また、本実施形態によるデータパケットおよび応答パケットの構成を、図4、図5に示した構成に限定する必要は無い。各フィールド位置を入れ替えることは当然可能であるし、各システムに固有の情報フィールドを定義しても良い。また、各フィールドのビット長に関しても、その処理システムに最適なビット長を定義すれば良い。さらに、本実施形態では、シフトレジスタ109をプロセッサモジュール110の最後段に配置しているが、入力データ解析部100の前段に配置しても良い。全体がリング状に結線されている限り、得られる結果は同じである。
(第2の実施形態)
次に、本発明の第2の実施形態を説明する。本実施形態の基本構成は第1の実施形態と同様であるため、説明には図2を使用する。本実施形態では、応答パケット生成部107が生成するパケットの内容および応答パケットの出力方法に特徴がある。本実施形態による応答パケット生成部107は、出力データ選択部104がデータパケット生成部103の出力を選択した際に応答パケットを生成する。この際に、応答パケット生成部107は、出力データ選択部104が破棄したデータを送信したプロセッサモジュールに対して、データの再送を指示する“再送”パケットと、データ送信を停止することを指示する“送信停止”パケット(第1の応答パケット)とのどちらを出力するか選択する。
次に、本発明の第2の実施形態を説明する。本実施形態の基本構成は第1の実施形態と同様であるため、説明には図2を使用する。本実施形態では、応答パケット生成部107が生成するパケットの内容および応答パケットの出力方法に特徴がある。本実施形態による応答パケット生成部107は、出力データ選択部104がデータパケット生成部103の出力を選択した際に応答パケットを生成する。この際に、応答パケット生成部107は、出力データ選択部104が破棄したデータを送信したプロセッサモジュールに対して、データの再送を指示する“再送”パケットと、データ送信を停止することを指示する“送信停止”パケット(第1の応答パケット)とのどちらを出力するか選択する。
すなわち、応答パケット生成部107は、出力データ選択部104が、例えば所定量以上のデータパケットを送信する場合には“送信停止”パケットを、それ以下のデータパケットを送信する場合には“再送”パケットを選択する。所定のデータパケットの送信が完了すると、応答パケット生成部107は、“送信停止”パケットを送信したプロセッサモジュールに対して“送信再開”を指示するパケット(第2の応答パケット)を生成する。この“送信再開”パケットを受信したプロセッサモジュールは、“送信停止”パケットに対応するデータパケットからデータ送信を再開する。
以下、図7および図8を使用して、本実施形態の動作を説明する。 図7では、3個のプロセッサモジュール203,204,205がリング状に結線されており、プロセッサモジュール203からプロセッサモジュール205に連続的にデータが転送されている。ここで、プロセッサモジュール204の転送優先順位は、プロセッサモジュール203の転送優先順位よりも上位とする。この状態で、プロセッサモジュール204からプロセッサモジュール205への連続転送が発生する場合を考える。
図8の時間210において、プロセッサモジュール204内で転送データが発生した場合、プロセッサモジュール204よりも優先順位の低いプロセッサモジュール203が出力したデータパケット“A1”は破棄される。その結果、時間211において、プロセッサモジュール205に入力されるデータパケット202は、プロセッサモジュール204が生成したデータパケット“B0”となる。ここで、プロセッサモジュール204から205に連続してデータ転送する必要がある場合(図8では3連続)、応答パケット生成部107は“送信停止”パケットを生成する。この応答パケットは、シフトレジスタ109によりラッチされ、時間211においてデータパケット“B0”と同じタイミングでプロセッサモジュール205に入力される応答パケット208となる。
時間212において、プロセッサモジュール203に応答パケット206として“送信停止”パケットが入力されると、プロセッサモジュール203はデータの送信を停止する。その結果、時間213において、プロセッサモジュール203は空のパケットを出力する。一方、連続データの最後のデータ送信時に、応答パケット生成部107は、プロセッサモジュール203に対し、“送信停止”パケットに対応するデータパケットからデータ送信を再開することを指示する“送信再開”パケットを生成する。時間214において、プロセッサモジュール203に応答パケット206として“送信再開”パケットが入力されると、プロセッサモジュール203は、“送信停止”パケットが生成されたときに破棄されたデータパケット“A1”から転送を再開する。
転送に割り込みが発生すると、送信データを破棄されたプロセッサモジュールはデータを再送するが、その転送に割り込んだプロセッサモジュールが大量のデータを連続して発信すると、再送したデータが再度破棄されることがある。そのデータを再送するためには、該当データが出力バッファ102内に存在していなければならず、特定のデータだけが長く残り続けるというような状況は、出力バッファ102の管理やバッファ容量の観点では望ましくない。また、大量の再送データの発生は、転送路の有効活用という面でも望ましくない。したがって、優先順位の高いプロセッサモジュールが一時的に大量のデータを送信する際には、他のデータ転送を抑止することで、無駄な再送動作を回避できる上に、出力バッファ容量の削減および管理の簡潔化が可能になる。
なお、本実施形態の各構成は、当然、各種の変形、変更が可能である。転送路に割り込んだプロセッサモジュールが“送信再開”パケットを出力すると、その時点で、転送路に割り込んだプロセッサモジュールのデータ発信は完了している。一方、“送信再開”パケットが、転送に割り込まれたプロセッサモジュールに届くまでは若干の時間のずれがある。よって、その間にどのプロセッサモジュールもデータを出力しないという状況が起こりうる。しかし、自プロセッサモジュールと応答転送先のプロセッサモジュールとの相対位置関係が判明しているならば、応答パケットを早めに出力することで、無駄な空パケットが流れることを回避できる。
(第3の実施形態)
次に、本発明の第3の実施形態を説明する。本実施形態の基本構成は第1の実施形態と同様であり、説明には図2を使用する。本実施形態では、再送パケットの優先順位付けに特徴がある。
次に、本発明の第3の実施形態を説明する。本実施形態の基本構成は第1の実施形態と同様であり、説明には図2を使用する。本実施形態では、再送パケットの優先順位付けに特徴がある。
本実施形態によるデータパケット生成部103は、再送応答を受信した再送制御部106からの指示により、出力バッファ102から再送データを読み出して再送パケットを生成するが、その際に、再送パケットの優先順位を、自プロセッサモジュールの優先順位にかかわらず、最上位に設定する。ここでの最上位とは、すべてのプロセッサモジュールの優先順位よりも上位であるとする。このようにして最上位の優先順位が付与されたデータパケットは、他のプロセッサモジュールによる転送の割り込みが発生することなく、転送先のプロセッサモジュールまで送信される。
以下、図9および図10を使用して、本実施形態の動作を説明する。 図9では、3個のプロセッサモジュール300,301,302がリング状に結線されており、プロセッサモジュール300からプロセッサモジュール302に連続的にデータが転送されている。ここで、プロセッサモジュール301の転送優先順位はプロセッサモジュール300の転送優先順位よりも上位とする。この状態で、プロセッサモジュール301からプロセッサモジュール302への転送が発生する場合を考える。
時間320において、プロセッサモジュール301の出力データ選択部104には、データパケット304(データパケット“A1”)と、データパケット生成部303の出力であるデータパケット309(データパケット“B0”)とが入力されている。プロセッサモジュール301の優先順位がプロセッサモジュール300の優先順位よりも上位であるため、出力データ選択部104の出力であるデータパケット310として、データパケット“B0”が出力される。このとき、応答パケット生成部107は、プロセッサモジュール300に対してデータパケット“A1”の再送を要求する応答パケット“再送”を生成する。
データパケット“B0”と応答パケット”再送“は、シフトレジスタ109によりラッチされ、時間321において、それぞれデータパケット305および応答パケット307としてプロセッサモジュール302に入力される。続いて、応答パケット“再送”は、時間322において、応答パケット308としてプロセッサモジュール300に入力される。プロセッサモジュール300のデータパケット生成部103は、出力バッファ102からデータパケット“A1”と同じ転送データを読み出すが、優先度フィールドを最上位に設定したデータパケット“A1’”をデータパケット312として出力する。
時間323において、プロセッサモジュール301の出力データ選択部104にはデータパケット“A1’”と、プロセッサモジュール300のデータパケット生成部103が生成したデータパケット“B1”とが入力されているが、データパケット“A1’”の優先順位がデータパケット“B1”よりも上位であるため、この場合はデータパケット“A1’”がデータパケット310として出力される。
時間324において、プロセッサモジュール301内のデータパケット生成部103は、出力バッファ102から次のデータを読み出さずに、データパケット”B1”を続けて出力する。このとき、プロセッサモジュール300からデータパケット“A4”が入力されているが、このデータパケット“A4”の優先順位はデフォルト状態のままであるため、データパケット“B1”の優先順位の方が上位である。よって、データパケット310としてデータパケット“B1”が選択される。データパケット“A4”がリングバス上から消滅するため、応答パケット生成部107は、プロセッサモジュール300に対してデータパケット“A4”の再送を要求する応答パケット“再送”を生成する。
上述したように再送パケットの優先順位を変えることにより、再送パケットが破棄されることがなくなる。本実施形態では、パケット生成時の優先順位を置換するだけであり、複雑な制御は不要である。よって、簡単な回路構成で、無駄なデータ転送の防止、出力バッファの容量の削減、および管理の簡潔化が可能になる。
(第4の実施形態)
次に、本発明の第4の実施形態を説明する。図12は、本実施形態によるプロセッサモジュールの構成を示している。図2と同じ機能を持つものに関しては同一の符号を付与し、説明を省略する。本実施形態によるプロセッサモジュールは、順方向および逆方向の2系統の応答用転送路を備えることを特徴とする。ここで、順方向はデータパケットの転送方向と同じ方向、逆方向はデータパケットの転送方向と逆の方向であるとする。
次に、本発明の第4の実施形態を説明する。図12は、本実施形態によるプロセッサモジュールの構成を示している。図2と同じ機能を持つものに関しては同一の符号を付与し、説明を省略する。本実施形態によるプロセッサモジュールは、順方向および逆方向の2系統の応答用転送路を備えることを特徴とする。ここで、順方向はデータパケットの転送方向と同じ方向、逆方向はデータパケットの転送方向と逆の方向であるとする。
応答パケット選択部400は、リングバス上の各プロセッサモジュールの位置(接続関係)を各プロセッサモジュールのIDによりあらかじめ認識しているものとする。応答パケット選択部400は、応答パケット生成部107より応答パケット119が入力されると、その応答パケット119のヘッダ部から転送元IDを取り出し、自プロセッサモジュールのIDと比較する。比較の結果、応答パケット選択部400は、順方向と逆方向のどちらの転送路を利用すれば、転送元のプロセッサモジュールまで先に届くかを判定し、各転送路に対応するシフトレジスタ109と401のどちらか一方に応答パケットを入力する。すなわち、応答パケット選択部400は、自プロセッサモジュールと、応答パケットの宛先であるプロセッサモジュールとのリングバス上の相対位置関係に基づいて、より転送段数の少ない転送方向に応答パケットが出力されるように動作する。
再送制御部402は、入力された応答パケットを解析し、どのデータを再送するのかをデータパケット生成部103に通知する。なお、再送制御部402に同時に2つの応答パケットが入力される可能性がある。よって、再送制御部402は、応答パケットを一時的に保持するバッファを備えている。なお、正常転送時には応答を返さず、転送データが破棄されたような場合のみに応答を返すような仕様であれば、応答パケットが大量に入力されるという状況は考えにくい。また、第2、第3の実施形態との組み合わせにより、さらに応答パケットを発信する機会は減少する。よって、応答パケット保持用のバッファの容量は少なくても良い。
次に、図11を用いて、転送路の選択方法を説明する。図11ではプロセッサモジュール500,501,502,503,504の5個のプロセッサモジュールが順方向応答転送路505および逆方向応答転送路506によりリング状に結線されている。なお、データ転送路の図示は省略する。また、各プロセッサモジュールのIDは、付与された記号の数値と一致するものとする。
ここで、プロセッサモジュール501からプロセッサモジュール504に向けて応答パケットを送信する場合を考える。応答パケットの転送方向が順方向の場合、504−501=3であるから、パケット到達まで3サイクルが必要である。一方、応答パケットの転送方向が逆方向の場合、501−504=−3となり、転送に必要なサイクル数がマイナスの数値になるが、この場合には、この結果に総モジュール数を足し込めば、所望のサイクル数を算出できる。よって、501−504+5=2となり、パケット到達まで2サイクルが必要である。よって、この場合には、逆方向転送を選択すれば、より短時間で応答パケットを届けることができる。
本実施形態によれば、応答パケットをデータパケットの送信元に最速で届けることが可能になる。応答パケット転送方向が一方向のみの場合、転送に必要な時間は1サイクルから(プロセッサモジュール数−1)サイクルまでのいずれかとなるが、本実施形態によれば、応答パケットの転送に必要な時間が1サイクルから(プロセッサモジュール数/2)サイクルまでの範囲に収まる(小数点以下は切捨て)。よって、保持しておくべきデータ量を半分にできるため、出力バッファの容量を削減することができる。
なお、本実施形態の各構成は、当然、各種の変形、変更が可能である。図11の各プロセッサモジュールのID番号は、順方向(転送方向)に単調増加しているが、これに限定する必要は無い。一定の法則に基づいて付与されていれば、単調減少でも良いし、あるいは他の数列を基準にしていてもよい。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
100・・・入力データ解析部、101・・・処理部、102・・・出力バッファ(処理結果保持部)、103・・・データパケット生成部、104・・・出力データ選択部(データパケット選択部)、105・・・優先順位保持部、106,402・・・再送制御部(制御部)、107・・・応答パケット生成部、108,400・・・応答パケット選択部、109,401・・・シフトレジスタ(データパケット出力部、応答パケット出力部)、110・・・プロセッサモジュール、111・・・データ転送路(データ転送バス)、112・・・応答用転送路(応答転送バス)
Claims (4)
- 複数のモジュールをデータ転送バスと応答転送バスとによりリング状に接続してリングバスを構成するデータ処理装置であって、
前記モジュールは、
所定の処理を実行する処理部と、
前記処理部の処理結果を一時的に保持する処理結果保持部と、
前記処理結果保持部から前記処理結果を読み出し、該処理結果を含むデータパケットを生成するデータパケット生成部と、
前記データ転送バスから入力された他のモジュール宛てのデータパケットと、前記データパケット生成部によって生成されたデータパケットとのいずれかを優先度に応じて選択するデータパケット選択部と、
前記データパケット選択部によって選択されたデータパケットを前記データ転送バスへ出力するデータパケット出力部と、
前記データパケット選択部の選択結果に応じて、データパケットの送信元である他のモジュールにデータパケットの転送状況を通知する応答パケットを生成する応答パケット生成部と、
前記応答パケット生成部によって生成された応答パケットと、前記応答転送バスから入力された他のモジュール宛ての応答パケットとを前記応答転送バスへ出力する応答パケット出力部と、
前記応答転送バスから入力される応答パケットの内容に応じて、前記処理結果保持部からの前記処理結果の読み出しを制御する制御部と、
を備えたことを特徴とするデータ処理装置。 - 前記応答転送バスは順方向および逆方向に応答パケットを転送可能であり、
前記応答パケット出力部は、自モジュールと応答パケットの宛先のモジュールとの前記リングバス上の相対位置関係に基づいて、より転送段数の少ない転送方向に応答パケットを出力することを特徴とする請求項1に記載のデータ処理装置。 - 前記応答パケット生成部は、データパケットの送信元である他のモジュールに対してデータパケットの送信停止を指示する第1の応答パケットと、前記他のモジュールに対してデータパケットの送信再開を指示する第2の応答パケットとを生成することを特徴とする請求項1または請求項2に記載のデータ処理装置。
- 前記データパケット生成部は、前記応答転送バスから入力される応答パケットの内容に応じてデータパケットの優先度を設定することを特徴とする請求項1または請求項2に記載のデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006142414A JP2007316699A (ja) | 2006-05-23 | 2006-05-23 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006142414A JP2007316699A (ja) | 2006-05-23 | 2006-05-23 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007316699A true JP2007316699A (ja) | 2007-12-06 |
Family
ID=38850532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006142414A Withdrawn JP2007316699A (ja) | 2006-05-23 | 2006-05-23 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007316699A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011008658A (ja) * | 2009-06-29 | 2011-01-13 | Canon Inc | データ処理装置、データ処理方法およびプログラム |
EP2336897A1 (en) | 2009-12-18 | 2011-06-22 | Canon Kabushiki Kaisha | Data processing apparatus, data processing method, and computer-readable storage medium |
CN102859599A (zh) * | 2010-04-19 | 2013-01-02 | 莫塞德技术公司 | 具有多个存储装置的系统中的状态指示 |
US9363101B2 (en) | 2011-05-20 | 2016-06-07 | Canon Kabushiki Kaisha | Packet processing in a predetermined order and suspension of packet transmission by predetermined time intervals based on a suspension flag |
-
2006
- 2006-05-23 JP JP2006142414A patent/JP2007316699A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011008658A (ja) * | 2009-06-29 | 2011-01-13 | Canon Inc | データ処理装置、データ処理方法およびプログラム |
EP2312457A2 (en) | 2009-06-29 | 2011-04-20 | Canon Kabushiki Kaisha | Data processing apparatus, data processing method and computer-readable medium |
US8799536B2 (en) | 2009-06-29 | 2014-08-05 | Canon Kabushiki Kaisha | Data processing apparatus, data processing method and computer-readable medium |
EP2336897A1 (en) | 2009-12-18 | 2011-06-22 | Canon Kabushiki Kaisha | Data processing apparatus, data processing method, and computer-readable storage medium |
US8588234B2 (en) | 2009-12-18 | 2013-11-19 | Canon Kabushiki Kaisha | Data processing apparatus, method, and computer-readable storage medium for dynamically controlling a transmission interval |
CN102859599A (zh) * | 2010-04-19 | 2013-01-02 | 莫塞德技术公司 | 具有多个存储装置的系统中的状态指示 |
JP2013525889A (ja) * | 2010-04-19 | 2013-06-20 | モサイド・テクノロジーズ・インコーポレーテッド | 複数のメモリデバイスを有するシステムの状態表示 |
US9363101B2 (en) | 2011-05-20 | 2016-06-07 | Canon Kabushiki Kaisha | Packet processing in a predetermined order and suspension of packet transmission by predetermined time intervals based on a suspension flag |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI402686B (zh) | 通用序列匯流排輸出入埠傳送器及其傳送方法 | |
JP5460143B2 (ja) | データ処理装置、データ処理方法およびプログラム | |
EP1093252A2 (en) | Access control device for IEEE 1394 Bus | |
EP2975529B1 (en) | Requests and data handling in a bus architecture | |
SE515148C2 (sv) | Styrning av cellväljare | |
US9665514B2 (en) | Integrated circuit having a bus network, and method for the integrated circuit | |
JP2007316699A (ja) | データ処理装置 | |
JP5414506B2 (ja) | データ処理装置、データ処理方法、及びプログラム | |
JP2010198226A (ja) | データ処理装置、データ処理方法およびプログラム | |
JP2009239374A (ja) | 仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード | |
WO2009125368A2 (en) | Electronic device and method for controlling an electronic device | |
JP2008066971A (ja) | データ処理装置 | |
JP5978849B2 (ja) | 並列計算機システム、クロスバスイッチ及び並列計算機システムの制御方法 | |
JP2013196509A (ja) | 情報処理装置及びその制御方法 | |
JP4708901B2 (ja) | データ処理モジュール及びそのメッセージの送信準備方法 | |
JP2009177256A (ja) | パケットスイッチ装置およびパケットスイッチ方法 | |
JP2007214981A (ja) | データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法 | |
JP5652866B2 (ja) | バス調停回路及びバス調停方法 | |
JP2006211136A (ja) | データ処理装置およびデータ処理方法 | |
JP2006323579A (ja) | Dmaコントローラ | |
JP6000732B2 (ja) | データ転送装置及びその制御方法、プログラム | |
JP2003141094A (ja) | プロセッサ間データ通信装置 | |
WO2017217084A1 (ja) | データ処理システム | |
JP2009225304A (ja) | スイッチング方法及び装置 | |
JP2005251095A (ja) | Usb装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090804 |