JP2008066971A - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP2008066971A JP2008066971A JP2006241665A JP2006241665A JP2008066971A JP 2008066971 A JP2008066971 A JP 2008066971A JP 2006241665 A JP2006241665 A JP 2006241665A JP 2006241665 A JP2006241665 A JP 2006241665A JP 2008066971 A JP2008066971 A JP 2008066971A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- data
- module
- data packet
- output
- 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
- Small-Scale Networks (AREA)
Abstract
【課題】モジュール間での公平なデータ転送を簡単な構成で実現することができるデータ処理装置を提供する。
【解決手段】制御パケット更新部106は、他のモジュールからバスへのデータパケットの出力の抑制を要求するための制御パケットをレジスタ107へ出力する。出力パケット選択部104は、データパケット生成部103が生成したデータパケット113と、入力データ解析部100から出力されたデータパケット115とのどちらかを選択し、レジスタ107へ出力する。制御パケットによって、他のモジュールからバスへのデータパケットの出力の抑制を要求したモジュールが、自モジュールの送信したいデータパケットをバスへ出力することが可能となり、データを送信することができないモジュールがなくなる。
【選択図】図2
【解決手段】制御パケット更新部106は、他のモジュールからバスへのデータパケットの出力の抑制を要求するための制御パケットをレジスタ107へ出力する。出力パケット選択部104は、データパケット生成部103が生成したデータパケット113と、入力データ解析部100から出力されたデータパケット115とのどちらかを選択し、レジスタ107へ出力する。制御パケットによって、他のモジュールからバスへのデータパケットの出力の抑制を要求したモジュールが、自モジュールの送信したいデータパケットをバスへ出力することが可能となり、データを送信することができないモジュールがなくなる。
【選択図】図2
Description
本発明は、複数のモジュールが並列にデータ処理を実行するデータ処理装置に関する。
一般に、集積回路は、単一の機能を有する機能モジュールを複数組み合わせることで所望の機能を実現している。この場合、各モジュールは双方向のバスで接続されることが多い。しかし、この双方向バスによる接続では、データ転送時には1対1の転送が行われるため、複数のモジュールが同時にデータを送出することはできない。よって、接続されるモジュールが多くなるほど転送待ち時間が増加し、転送効率が悪化する。また、バスの使用権の調停にオーバーヘッドが生じる上、モジュール数が増えるほど、その制御の複雑度が増加するといったデメリットがある。
このような問題を解決する方法として、例えば特許文献1に記載の集積回路が提案されている。図14にその構成を示す。処理モジュール1401a〜1401dは、アダプタ1402a〜1402dを介してリング状のバス1403に接続されている。また、このアダプタの構成は図15のようになっている。このアダプタ内には、フリップフロップで構成されたレジスタ1501,1504が配置されており、このレジスタ1501,1504とリング状バスとで一種のシフトレジスタを構成しているため、リングバス上にはレジスタ数と同じ数の転送データが存在することができる。
アダプタ内では、データ抽出挿入回路1502とセレクタ1503により、リングバスからのデータ取得およびリングバスへのデータ送出が制御される。データ抽出挿入回路1502は、レジスタ1501に保持されたデータが自モジュール宛であるか否かの判定を行い、自モジュール宛であればモジュール内にデータを取り込む。一方、セレクタ1503は、他のモジュール宛のデータが入力された場合にはその入力データを、自モジュール宛のデータあるいは無効データが入力された場合にはデータ抽出挿入回路1502の出力を選択してレジスタ1504に入力する。この構成により、同時に複数のデータ転送を実行することが可能になるため、双方向バス方式と比較してデータ転送性能が向上する。
特開平11−167560号公報
上記のように、特許文献1に記載の集積回路においては、自モジュール宛のデータか無効データが入力されたときにはリングバス上にデータを送出できるようになっている。他のモジュール宛のデータが入力された場合、そのモジュールは、入力データを次段のモジュールに転送するためのシフトレジスタとしての機能しか果たせず、送出したいデータがあってもデータを送出することができない。すなわち、モジュール間で公平なデータ転送が行えないという状況が発生する。なお、特許文献1では、このような問題の対策として、図16のように転送制御回路1601を配置し、公平な転送を実現するための集中管理を行うという提案が記載されている。しかし、この構成ではモジュール数の増加に比例して、制御回路の複雑度が飛躍的に増加することが容易に想像できる。
本発明は、上述した問題点に鑑みてなされたものであって、モジュール間での公平なデータ転送を簡単な構成で実現することができるデータ処理装置を提供することを目的とする。
本発明は、上記の課題を解決するためになされたもので、複数のモジュールが、バスを介してリング状に接続されたデータ処理装置であって、前記モジュールは、他のモジュールから前記バスへのデータパケットの出力の抑制を要求するための制御パケットを前記バスへ出力する制御パケット出力部と、前記バスから入力された前記制御パケットに基づいて前記バスへの前記データパケットの出力を制御するデータパケット制御部とを有することを特徴とするデータ処理装置である。
また、本発明のデータ処理装置において、前記データパケット制御部はさらに、前記制御パケットによって前記バスへの前記データパケットの出力の抑制を要求しているモジュールと、自モジュールから送信される前記データパケットの宛先のモジュールと、自モジュールとの前記バス上の位置関係に基づいて、前記バスへの前記データパケットの出力を制御することを特徴とする。
また、本発明のデータ処理装置において、前記データパケット制御部はさらに、前記モジュールの優先順位に基づいて、前記バスへの前記データパケットの出力を制御することを特徴とする。
また、本発明のデータ処理装置において、前記制御パケットは、前記データパケット自体の優先順位を示す情報を格納する優先度フィールドを有し、前記データパケット制御部はさらに、前記優先度フィールドに格納されている前記優先順位に基づいて前記バスへの前記データパケットの出力を制御することを特徴とする。
また、本発明のデータ処理装置において、前記制御パケットは、他のモジュールによる前記制御パケットの更新の禁止を示す情報を格納するロックフィールドを有し、前記制御パケット出力部は、前記他のモジュールからの前記制御パケット内の前記ロックフィールドに、前記制御パケットの更新の禁止を示す情報が格納されている場合には、前記他のモジュールからの前記制御パケットの更新を行わないことを特徴とする。
本発明によれば、制御パケットによって、他のモジュールからバスへのデータパケットの出力の抑制を要求したモジュールが、自モジュールの送信したいデータパケットをバスへ出力することが可能となり、データを送信することができないモジュールがなくなる。したがって、モジュール間での公平なデータ転送を簡単な構成で実現することができる。
以下、図面を参照し、本発明の実施形態を説明する。
(第1の実施形態)
まず、本発明の第1の実施形態を説明する。図1は、本実施形態によるデータ処理装置の構成を示している。プロセッサモジュール110は、プロセッサモジュール毎にそれぞれ定められた所定の処理を実行する。各プロセッサモジュール110は、データパケットを転送するデータパケット転送路111と、データ転送を制御するための制御パケットを転送する制御パケット転送路112とを介し、リング状に結線されている。これらデータパケット転送路111と制御パケット転送路112とによって、リング状バスが構成されている。
まず、本発明の第1の実施形態を説明する。図1は、本実施形態によるデータ処理装置の構成を示している。プロセッサモジュール110は、プロセッサモジュール毎にそれぞれ定められた所定の処理を実行する。各プロセッサモジュール110は、データパケットを転送するデータパケット転送路111と、データ転送を制御するための制御パケットを転送する制御パケット転送路112とを介し、リング状に結線されている。これらデータパケット転送路111と制御パケット転送路112とによって、リング状バスが構成されている。
データパケットおよび制御パケットの転送は図1中の矢印の方向にのみ行われる。なお、プロセッサモジュール110の出力段にはレジスタ107が設けられており、このレジスタ107の出力は次段のプロセッサモジュール110の入力となっている。転送データは、これらのレジスタ107によるシフトレジスタ動作により、所望のプロセッサモジュール110まで転送される。
よって、各プロセッサモジュール110間(レジスタ107間)にはそれぞれ独立したデータパケットが存在することが可能であり、プロセッサモジュール数と同数のデータ転送を同時に実行することができる。なお、図1ではプロセッサモジュール110が3個結線されているが、結線されるプロセッサモジュールの個数に制限はない。
次に、本実施形態におけるデータパケットと制御パケットの構成を説明する。データパケットの構成例を図3に、制御パケットの構成例を図4に示す。データパケットは、転送に関する種々の情報が格納されるヘッダ部10と、データ本体が格納されるデータ部11とから構成されている。
データパケットは以下のフィールドで構成されている。有効フィールド12は、データ部11に存在するデータが有効、無効のどちらであるのかを示す情報を格納するフィールドである。転送先IDフィールド13は、データパケットを受信させたいプロセッサモジュールのID番号を示す情報を格納するフィールドである。プロセッサモジュールのID番号には、本データ処理装置内で重複しない固有の数字が割り振られている。このID番号は、ハードウェア的に固定情報として保持していても良いし、レジスタ等に保持することで外部から変更できるようになっていても良い。転送元IDフィールド14は、データパケットを発信したプロセッサモジュールのID番号を示す情報を格納するフィールドである。転送データフィールド15は、転送したいデータを格納するフィールドである。
制御パケットは以下のフィールドで構成されている。有効フィールド21は、他のモジュールからデータパケット転送路111へのデータパケットの出力の抑制を要求する抑止要求の有無を示す情報を格納するフィールドである。予約モジュールIDフィールド22は、抑止要求を発行したプロセッサモジュールのID番号を示す情報を格納するフィールドである。
次に、プロセッサモジュール110の詳細を説明する。図2はプロセッサモジュール110の構成を示している。入力データ解析部100には、データパケット転送路111からのデータパケット116が入力される。入力データ解析部100は、データパケット116のヘッダ部を解析することにより、データパケット116が自モジュール宛の有効なデータパケットであるか否かを判定する。
判定の結果、データパケット116が自モジュール宛の有効なデータパケットであった場合、入力データ解析部100はデータパケット116からデータ部を取り出して処理部101へ出力する。同時に入力データ解析部100は、データパケット116のヘッダ部の有効フィールドを“無効”にしたデータパケット115を出力パケット選択部104へ出力する。また、データパケット116が“無効”あるいは他のモジュール宛てのデータパケットであった場合、入力データ解析部100はデータパケット115としてデータパケット116をそのまま出力し、処理部101には何も出力しない。
処理部101は、あらかじめ決められた処理を、入力されたデータに対して実行し、処理結果を出力バッファ102に格納する。出力バッファ102は、その処理結果を一時的に保持する。データパケット生成部103は、処理結果を示すデータが出力バッファ102に存在する場合、出力バッファ102からデータを読み出し、転送に必要なヘッダ情報を付与してデータパケットを生成し、データパケット113として出力パケット選択部104へ出力する。出力パケット選択部104は、データパケット生成部103が生成したデータパケット113と、入力データ解析部100から出力されたデータパケット115とのどちらかを選択し、レジスタ107へ出力する。
優先順位保持部105はプロセッサモジュール110の転送優先順位を保持する。制御パケット更新部106は、データパケット113の有無やデータパケット116の有効・無効等の判定結果と、優先順位保持部105によって保持されているプロセッサモジュール110の転送優先順位とに基づいて、制御パケット転送路112から入力された制御パケット117を更新し、制御パケット118としてレジスタ107へ出力する。レジスタ107は、出力パケット選択部104の出力(データパケット)と制御パケット更新部106の出力(制御パケット)を1サイクル期間保持し、データパケット転送路111及び制御パケット転送路112を通してデータパケットと制御パケットをそれぞれ次段のプロセッサモジュールへ出力する。
次に、図5を参照しながら出力パケット選択部104の動作を説明する。まず、出力パケット選択部104は、データパケット生成部103からのデータパケット113があるか否かを判定する(ステップS100)。データパケット113がなかった場合、出力パケット選択部104はデータパケット115を選択してレジスタ107へ出力する(ステップS107)。また、データパケット113があった場合、出力パケット選択部104は、データパケット転送路111から入力されたデータパケット116のヘッダ部を参照し、データパケットが有効データパケットであるか否かを判定する(ステップS101)。
データパケット116が有効データパケットであった場合、出力パケット選択部104はデータパケット116のヘッダ部を参照し、データパケットの宛先が他モジュールであるか否かを判定する(ステップS102)。宛先が他モジュールであった場合、出力パケット選択部104はデータパケット115を選択してレジスタ107へ出力する(ステップS108)。また、宛先がそれ以外(自モジュール)であった場合には、出力パケット選択部104は、データパケット116と同時に制御パケット転送路112から入力されている制御パケット117の有効フィールドを参照し、データ送信の抑止要求があるか否かを判定する(ステップS103)。
抑止要求があった場合には、出力パケット選択部104はデータパケット115を選択してレジスタ107へ出力し(ステップS108)、抑止要求がなかった場合には、出力パケット選択部104はデータパケット113を選択してレジスタ107へ出力する(ステップS109)。一方、データパケット生成部103からのデータパケット113があるものの、有効なデータパケット116がない場合(ステップS101でNoの場合)には、出力パケット選択部104は制御パケット117を参照し、データ送信の抑止要求があるか否かを判定する(ステップS104)。
抑止要求がなかった場合、出力パケット選択部104はデータパケット113を選択してレジスタ107へ出力し(ステップS110)、抑止要求があった場合には、出力パケット選択部104は、制御パケット117の予約モジュールIDフィールドに格納されているIDと自身のIDを比較する(ステップS105)。両IDが一致した場合、現在入力されている無効パケット(データパケット116)は、自モジュールが数サイクル前に発行した抑止要求により、他のモジュールがデータ送信を保留した結果であるため、出力パケット選択部104は、自モジュールからのデータ送信が可能であると判断し、データパケット113を選択してレジスタ107へ出力する(ステップS110)。また、両IDが一致しなかった場合には、出力パケット選択部104はデータパケット115を選択してレジスタ107へ出力する(ステップS108)。
以上を簡単にまとめると、出力すべきデータがある場合でも、自モジュール以外のプロセッサモジュールが発行した抑止要求がある場合には、プロセッサモジュール内で生成されたデータパケットをバスに出力できないということになる。ただし、プロセッサモジュールに入力されたパケットをそのまま出力するのはよい。
このように、本実施形態では、出力すべきデータがあり、なおかつ有効なデータパケットの入力がない場合でも、制御パケットにより、データ送出が抑止される場合がある。よって、あるプロセッサモジュールが、抑止要求を示す制御パケットを発行すると、その制御パケットが通過したプロセッサモジュールがそのサイクルでのデータ送出を抑止するため、リングバス上に1サイクル分の隙間が空くことになり、抑止要求を発行したプロセッサモジュールがデータを送出することができるようになる。なお、データパケット生成部103が生成したデータパケット113は、必ずしもすぐに出力されるとは限らないため、データパケット生成部103と出力パケット選択部104との間では、データを保持および更新するための何らかのハンドシェイクが行われることが望ましい。
次に、図6を参照しながら制御パケット更新部106の動作を説明する。まず、制御パケット更新部106は、データパケット生成部103がデータパケット113を生成したか否かを判定する(ステップS200)。データパケット113が存在する場合、制御パケット更新部106は、データパケット転送路111から入力されたデータパケット116のヘッダ部を参照し、データパケット116が有効データパケットであるか否かを判定する(ステップS201)。
データパケット116が有効データパケットであった場合、制御パケット更新部106はデータパケット116のヘッダ部を参照し、宛先が他モジュールであるか否かを判定する(ステップS202)。宛先が他モジュールであった場合、制御パケット更新部106は、制御パケット転送路112から入力された制御パケット117の有効フィールドを参照し、データ送信の抑止要求があるか否かを判定する(ステップS203)。
抑止要求がなかった場合、制御パケット更新部106は制御パケット117の有効フィールドに抑止要求を書き込むと共に、予約モジュールIDフィールドに自モジュールのIDを書き込む(ステップS212)。また、既に抑止要求があった場合、制御パケット更新部106は制御パケット117の予約モジュールIDフィールド(抑止要求を発行したプロセッサモジュールのIDが格納されている)と、優先順位保持部105によって保持されているプロセッサモジュールの転送優先順位とを参照し、抑止要求を発行したプロセッサモジュールの優先順位が自モジュールよりも下位であるか否かを判定する(ステップS204)。
抑止要求を発行したプロセッサモジュールの優先順位が自モジュールよりも下位の場合、制御パケット更新部106は制御パケット117の予約モジュールIDフィールドに自モジュールのIDを書き込む(ステップS207)。制御パケット117の有効フィールドには既に抑止要求が書き込まれているので、予約モジュールIDフィールドのみが更新される。また、抑止要求を発行したプロセッサモジュールの優先順位が自モジュールと同レベル以上の場合、制御パケット更新部106は制御パケット117の更新動作を終了し、制御パケット117をそのままレジスタ107へ出力する。
一方、データパケット113は存在するが、データパケット116が無効パケットである場合(ステップS201でNoの場合)は、既に他のモジュールにより抑止要求が発行されているか、あるいは自モジュールが発行した抑止要求により、他のモジュールが転送を抑止した結果として無効パケットが入力されたという場合が考えられる。そこで、制御パケット更新部106は制御パケット117を参照し、抑止要求があるか否かを判定する(ステップS205)。
抑止要求がなかった場合には、そのままデータ出力が可能であるため、制御パケット更新部106は何もする必要がない。また、抑止要求があった場合、制御パケット更新部106は、その抑止要求が、自モジュールよりも優先順位の低いモジュールによって発行されたものであるか否かを判定する(ステップS206)。抑止要求が、自モジュールよりも優先順位の低いモジュールによって発行されたものであった場合、制御パケット更新部106は制御パケット117の予約モジュールIDフィールドに自モジュールのIDを書き込む(ステップS207)。制御パケット117の有効フィールドには既に抑止要求が書き込まれているので、予約モジュールIDフィールドのみが更新される。
また、抑止要求が、自モジュールの優先順位と同レベル以上のモジュールによって発行されたものであった場合、制御パケット更新部106は、抑止要求を発行したモジュールが自モジュールであるか否かを判定する(ステップS212)。抑止要求を発行したモジュールが自モジュールでなかった場合には、制御パケット更新部106は制御パケットの更新動作を終了し、制御パケット117をそのままレジスタ107へ出力する。また、抑止要求を発行したモジュールが自モジュールであった場合には、自モジュールが発行した制御パケットが巡回して自モジュールに戻ってきたことになるので、制御パケット更新部106は他のモジュールのために有効フィールドと予約モジュールIDフィールドをクリアする(ステップS208)。
なお、ステップS200の判定の結果、出力すべきデータがない場合には、本来は何もすべきことはないのだが、本実施形態では、自モジュールの抑止要求が何らかの手違いで残留していないかどうかの判定を行い、必要に応じて制御パケットの有効フィールドと予約モジュールIDフィールドをクリアする(ステップS209〜211)。
制御パケットの更新の際に優先順位の情報を用いているため、転送路の使用権に優先順位を付けることができる。仮に、優先順位の低いモジュールがデータ送信の抑止要求を出していたとしても、それより上位の優先順位を持つモジュールであれば、制御パケットを再更新することができる。その結果、優先順位の低いモジュールは、抑止要求を発行したとしても必ずしもデータ出力にたどり着けるとは限らないため、他のモジュールによる制御パケットの再更新が実施された場合には、再度制御パケットを更新する必要がある。
次に、図7および図8を参照しながらプロセッサモジュール間での転送動作を説明する。図7では、3個のプロセッサモジュール140,141,142が、データパケット転送路および制御パケット転送路を介してリング状に接続されている。ここで、プロセッサモジュール140からプロセッサモジュール142に連続的にデータが転送されているものとする。なお、プロセッサモジュール141の優先順位はプロセッサモジュール140よりも上位であるとする。また、プロセッサモジュール140,141,142のIDはそれぞれA,B,Cであるとする。この状態で、プロセッサモジュール141からプロセッサモジュール140へのデータ転送が発生する場合を考える。
図8の時間150において、プロセッサモジュール141内のデータパケット生成部103がデータパケット113(“BA0”)を生成したものの、出力パケット選択部104には有効なデータパケット130(“AC0”)が入力されている。入力パケットを優先した結果、出力パケット選択部104から出力されるデータパケット114は“AC0”となる。この時、制御パケット更新部106は、制御パケットの予約モジュールIDフィールドに自身のID“B”を書き込み、制御パケット118としてレジスタ107へ出力する。
時間151において、プロセッサモジュール140に入力される制御パケット135として、予約モジュールIDフィールドに“B”がセットされた制御パケットが入力される。データ送信の抑止要求が発行されている場合、抑止要求を発行したモジュール以外は新規にデータを送出することができなくなるため、時間152において、プロセッサモジュール140は、本来出力する予定であったデータパケット“AC3”ではなく、無効データパケットを出力する。なお、本実施形態では、データの送出ができなくても、制御パケットの更新は可能であるが、上記の場合では、プロセッサモジュール140の優先順位が、抑止要求を発行したプロセッサモジュール141よりも下位であるため、制御パケットの更新はできない。
また、無効データパケットが入力されたプロセッサモジュール141には、自身が時間150で発行した抑止要求を含む制御パケットが入力されている。プロセッサモジュール141の出力パケット選択部104はデータパケット生成部103からのデータパケット(“BA0”)を選択し、データパケット114としてレジスタ107に出力する。一方、制御パケット更新部106は、自身が制御パケットの予約モジュールIDフィールドに設定した“B”をクリアする。なお、制御パケットの有効フィールドを”無効“にするだけでも同じ効果が得られる。さらに、出力パケット選択部104からデータパケット生成部103に図示しないコントロール信号が送られ、データパケット生成部103はデータパケット”BA0“の保持を停止し、必要に応じて次のパケットの生成に移行する。
時間153において、プロセッサモジュール141から出力されるデータパケット132として“BA0”が現れる。また、時間154において、データパケット“BA0”が、転送先であるプロセッサモジュール140まで到達し、転送が完了する。
上述したように、本実施形態によれば、制御パケットにより他のモジュールのデータ転送を抑止することで、データ送信の抑止要求を発行したモジュールは、所定の時間が経過した後にデータを送信することが可能になる。よって、データを送信することができないモジュールがなくなり、公平なデータ転送が可能になる。さらに、制御パケットの情報の更新権に優先順位を付けることで、リングバス使用権の秩序ある調停が可能になる。さらに、有効なデータパケットが入力されてなく、なおかつ制御パケットに抑止要求がないときに、自モジュールが生成したデータパケットを送出するという動作は非常に簡潔であり、簡単なハードウェアで実現できる。
本実施形態では、データパケット用の転送路と制御パケット用の転送路を分けて図示しているが、転送方向が同じなので、両者をまとめて一つの転送路としてもよい。その場合には、例えば図9のようなパケット構成にすればよい。図9では、図3に示したデータパケットの構成に対して、図4に示した制御パケットの構成が制御部20として付加されている。また、データパケットおよび制御パケットの構成は、図示した構成に限定する必要はない。各フィールドの位置を入れ替えることは当然可能であるし、各システムに固有の情報フィールドを定義してもよい。また、各フィールドのビット長も、その処理システムに最適なビット長を定義すればよい。
さらに、本実施形態では、レジスタ107はプロセッサモジュール110の最後段に配置されているが、入力データ解析部100の前段に配置してもよいし、入力、出力の2箇所に配置してもよい。
(第2の実施形態)
次に、本発明の第2の実施形態を説明する。本実施形態の基本構成は第1の実施形態と同様であるため、説明には図2を使用する。第1の実施形態では、基本的に制御パケットの有効フィールドがセットされていれば、各モジュールはデータの送出を抑止していた。しかし、必ずしもすべてのデータ送出を抑止する必要はない。例えば、図10(a)において、プロセッサモジュール201がデータ送信の抑止要求を発行した場合を考える。
次に、本発明の第2の実施形態を説明する。本実施形態の基本構成は第1の実施形態と同様であるため、説明には図2を使用する。第1の実施形態では、基本的に制御パケットの有効フィールドがセットされていれば、各モジュールはデータの送出を抑止していた。しかし、必ずしもすべてのデータ送出を抑止する必要はない。例えば、図10(a)において、プロセッサモジュール201がデータ送信の抑止要求を発行した場合を考える。
制御パケットの目的は、抑止要求を発行したモジュールに無効パケットを入力することであり、抑止要求を発行したモジュールを跨いだデータ転送が開始されなければそれでよい。図10(b)は、どのモジュールからどのモジュールへデータが転送されるのかを示す転送内容と、転送を許可するか否かの可否判定の組み合わせを示している。
例えば、プロセッサモジュール200から201へデータが転送される場合、抑止要求を発行したプロセッサモジュール201を跨いだデータ転送は行われないため、可否判定の結果は“可”となる。また、プロセッサモジュール200から202へデータが転送される場合、抑止要求を発行したプロセッサモジュール201を跨いだデータ転送が行われるため、可否判定の結果は“不可”となる。よって、図10(b)の組み合わせでは、転送を抑止しなければならないのは3通りだけであり、その他の組み合わせは問題なく実行できる。
以下、図11を参照しながら、本実施形態における出力パケット選択部104の動作を説明する。基本的な動作は第1の実施形態と同様であり、共通部分に関しては図5と同一の符号を付与し、説明を省略する。本実施形態における出力パケット選択部104の特徴的な動作は、データパケット生成部103からのデータパケット113が存在し、データパケット転送路111から入力されたデータパケット116が無効データパケットであり、なおかつ自モジュール以外によるデータ送信の抑止要求が発行されている場合(ステップS105でNoの場合)に発動される。
この場合、出力パケット選択部104は、制御パケット117の予約モジュールIDフィールドに格納されているIDと、自モジュールがデータを受信させたいターゲットモジュールのIDと、自モジュールのIDとを比較し、抑止要求を発行したモジュールと、自モジュールがデータを受信させたいモジュールと自モジュールとのリングバス上における相対的な位置関係を判定する(ステップS300)。
リングバスに接続されているモジュールの数は各システムで一義的に決定され、動作中は不変である。よって、各モジュールのIDが何らかの基準に従って付与されていれば、相対位置は判定可能である。出力パケット選択部104は、各モジュールの相対位置に基づいて、自モジュールからのデータ送信が可能であるか否かを判定する(ステップS301)。この判定には、図10(b)に示した所定の表などを用いればよい。判定の結果、自モジュールからのデータ送信が可能な場合、出力パケット選択部104はデータパケット生成部103からのデータパケット113を選択し、それ以外であれば、データパケット115を選択する。
本実施形態によれば、他のモジュールからのデータ送信の抑制を要求しているモジュールと、自モジュールから送信されるデータパケットの宛先のモジュールと、自モジュールとのリングバス上の位置関係に基づいてデータパケットの出力を制御することによって、抑止する必要のないデータ送信まで停止してしまうことによるデータ転送効率の低下を回避することができる。
(第3の実施形態)
次に、本発明の第3の実施形態を説明する。本実施形態の基本構成は第1の実施形態と同様であるため、説明には図2を使用する。本実施形態における制御パケットの構成例を図12に示す。本実施形態の特徴は、データパケット自体の優先順位を示す情報を格納する優先度フィールド23を制御パケットに持たせた点である。
次に、本発明の第3の実施形態を説明する。本実施形態の基本構成は第1の実施形態と同様であるため、説明には図2を使用する。本実施形態における制御パケットの構成例を図12に示す。本実施形態の特徴は、データパケット自体の優先順位を示す情報を格納する優先度フィールド23を制御パケットに持たせた点である。
データパケット生成部103がデータパケット113を生成したにも関わらず、他のモジュールからの有効データパケットが入力されているためにデータを出力できない場合に、制御パケット更新部106が、他のモジュールのデータ送信を抑止する制御パケットを生成するのは第1および第2の実施形態と同様である。本実施形態ではさらに、制御パケットを生成する際に、制御パケットの優先度フィールドに自モジュールの優先順位をコピーする。各モジュールにおける優先順位の判定では、第1の実施の形態のように予約モジュールIDフィールドを参照するのではなく、この優先度フィールドを参照し、優先度フィールドに格納されている優先順位と自モジュールの優先順位を比較する。
ここで、リングバスに接続されているモジュールの数は、そのシステムにおいて固定であり、動作中に増減しない。よって、自モジュールが発行した制御パケットが一巡して戻ってくるまでの時間は、各システムにおいて自明である。よって、自モジュールが発行した制御パケットが、他の優先順位が高いモジュールにより再更新されたか否かは、制御パケットを発行してから所定のサイクルが経過した後に、自身が発行したのと同じ制御パケットが戻ってくるか否かを確認すれば判別可能である。
本実施形態による制御パケット更新部106は、自身が発行したのと同じ制御パケットが確実に一巡して戻ってくるか否かを確認し、その結果、他のモジュールによる再更新を検出した場合には、今度は優先度フィールドの数値を、自身の優先度よりも高い値に変更して制御パケットを再送する。
本実施形態によれば、データパケット自体の優先順位と自モジュールの優先順位を比較した結果に基づいてデータパケットの出力を制御することによって、優先順位の低いプロセッサモジュールがデータ送信の抑止要求を発行しても、他のモジュールに割り込まれてしまい、いつまでもデータを送信することができないという状況を回避することができる。
ただし、もともとの優先順位も、意味があって設定されているはずであり、公平な転送のためとはいえ、優先順位の入れ替わりが頻繁に発生することはシステム的に望ましいことではない。よって、現実的には他のモジュールによる再更新が所定回数連続して発生した場合に優先順位の変更を行う等の措置が必要である。また、優先順位の変更時に一気に最上位レベルにするのではなく、段階的に上げていくという方法も考えられる。
(第4の実施形態)
次に、本発明の第4の実施形態を説明する。本実施形態の基本構成は第1の実施形態と同様であるため、説明には図2を使用する。本実施形態における制御パケットの構成例を図13に示す。本実施形態の特徴は、他のモジュールによる制御パケットの更新の禁止を示す情報を格納するロックフィールド24を制御パケットに持たせた点である。制御パケット更新部106は、他のモジュールからの制御パケット117のロックフィールドに、他のモジュールによる制御パケットの更新の禁止を示す情報が格納されている場合には、制御パケット117の更新を行わず、制御パケット117をそのまま制御パケット118としてレジスタ107へ出力する。
次に、本発明の第4の実施形態を説明する。本実施形態の基本構成は第1の実施形態と同様であるため、説明には図2を使用する。本実施形態における制御パケットの構成例を図13に示す。本実施形態の特徴は、他のモジュールによる制御パケットの更新の禁止を示す情報を格納するロックフィールド24を制御パケットに持たせた点である。制御パケット更新部106は、他のモジュールからの制御パケット117のロックフィールドに、他のモジュールによる制御パケットの更新の禁止を示す情報が格納されている場合には、制御パケット117の更新を行わず、制御パケット117をそのまま制御パケット118としてレジスタ107へ出力する。
第4の実施形態と同様に、他のモジュールによる制御パケットの再更新が頻発するような場合、本実施形態による制御パケット更新部106は、制御パケットの“ロック”フィールドをセットする。“ロック”フィールドがセットされると、予約モジュールIDフィールドに格納されたIDのモジュールの制御パケット更新部106以外はその制御パケットを更新できなくなるため、確実にデータ転送が行えるようになる。本実施形態では、第3の実施形態のような細かな設定は行えないが、“ロック”フィールドは1ビットあれば十分であり、ハードウェア規模の点で有利である。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
100・・・入力データ解析部、101・・・処理部、102・・・出力バッファ、103・・・データパケット生成部、104・・・出力パケット選択部(データパケット制御部)、105・・・優先順位保持部、106・・・制御パケット更新部(制御パケット出力部)、107・・・レジスタ、110・・・プロセッサモジュール、111・・・データパケット転送路、112・・・制御パケット転送路
Claims (5)
- 複数のモジュールが、バスを介してリング状に接続されたデータ処理装置であって、
前記モジュールは、
他のモジュールから前記バスへのデータパケットの出力の抑制を要求するための制御パケットを前記バスへ出力する制御パケット出力部と、
前記バスから入力された前記制御パケットに基づいて前記バスへの前記データパケットの出力を制御するデータパケット制御部と、
を有することを特徴とするデータ処理装置。 - 前記データパケット制御部はさらに、前記制御パケットによって前記バスへの前記データパケットの出力の抑制を要求しているモジュールと、自モジュールから送信される前記データパケットの宛先のモジュールと、自モジュールとの前記バス上の位置関係に基づいて、前記バスへの前記データパケットの出力を制御することを特徴とする請求項1に記載のデータ処理装置。
- 前記データパケット制御部はさらに、前記モジュールの優先順位に基づいて、前記バスへの前記データパケットの出力を制御することを特徴とする請求項1または請求項2に記載のデータ処理装置。
- 前記制御パケットは、前記データパケット自体の優先順位を示す情報を格納する優先度フィールドを有し、
前記データパケット制御部はさらに、前記優先度フィールドに格納されている前記優先順位に基づいて前記バスへの前記データパケットの出力を制御する
ことを特徴とする請求項1または請求項2に記載のデータ処理装置。 - 前記制御パケットは、他のモジュールによる前記制御パケットの更新の禁止を示す情報を格納するロックフィールドを有し、
前記制御パケット出力部は、前記他のモジュールからの前記制御パケット内の前記ロックフィールドに、前記制御パケットの更新の禁止を示す情報が格納されている場合には、前記他のモジュールからの前記制御パケットの更新を行わない
ことを特徴とする請求項1〜請求項4のいずれかに記載のデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006241665A JP2008066971A (ja) | 2006-09-06 | 2006-09-06 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006241665A JP2008066971A (ja) | 2006-09-06 | 2006-09-06 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008066971A true JP2008066971A (ja) | 2008-03-21 |
Family
ID=39289297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006241665A Withdrawn JP2008066971A (ja) | 2006-09-06 | 2006-09-06 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008066971A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010217959A (ja) * | 2009-03-13 | 2010-09-30 | Canon Inc | 情報処理装置、情報処理方法およびプログラム |
JP2010245953A (ja) * | 2009-04-08 | 2010-10-28 | Canon Inc | 情報処理装置、情報処理方法 |
WO2013108873A1 (ja) * | 2012-01-18 | 2013-07-25 | オリンパス株式会社 | 内視鏡用画像プロセッサ |
JP2019016054A (ja) * | 2017-07-04 | 2019-01-31 | 富士通株式会社 | 情報処理システム、情報処理装置、及び情報処理システムの制御方法 |
-
2006
- 2006-09-06 JP JP2006241665A patent/JP2008066971A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010217959A (ja) * | 2009-03-13 | 2010-09-30 | Canon Inc | 情報処理装置、情報処理方法およびプログラム |
US9239813B2 (en) | 2009-03-13 | 2016-01-19 | Canon Kabushiki Kaisha | Ring-pattern bus connected information processing apparatus, information processing method, and storage medium |
JP2010245953A (ja) * | 2009-04-08 | 2010-10-28 | Canon Inc | 情報処理装置、情報処理方法 |
WO2013108873A1 (ja) * | 2012-01-18 | 2013-07-25 | オリンパス株式会社 | 内視鏡用画像プロセッサ |
JP2019016054A (ja) * | 2017-07-04 | 2019-01-31 | 富士通株式会社 | 情報処理システム、情報処理装置、及び情報処理システムの制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4638216B2 (ja) | オンチップバス | |
TWI464591B (zh) | 資料傳送的方法與積體電路 | |
US6473849B1 (en) | Implementing locks in a distributed processing system | |
JP3807250B2 (ja) | クラスタシステム、コンピュータ及びプログラム | |
US8601191B2 (en) | Bus system and deadlock avoidance circuit thereof | |
US8285903B2 (en) | Requests and data handling in a bus architecture | |
EP1307818B1 (en) | Implementing locks in a distributed processing system | |
US20130067201A1 (en) | Multiprocessor system, execution control method and execution control program | |
US10282343B2 (en) | Semiconductor device | |
KR20180071967A (ko) | 데이터 처리 | |
JP2008066971A (ja) | データ処理装置 | |
US20080215823A1 (en) | Data consistency control system and data consistency control method | |
JPH11167560A (ja) | データ転送システム、このシステムに用いるスイッチング回路、アダプタ及びこのシステムを有する集積回路並びにデータ転送方法 | |
JP2008146541A (ja) | Dma転送システム、dmaコントローラ及びdma転送方法 | |
JP4856413B2 (ja) | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 | |
US20040054843A1 (en) | Configuration and method having a first device and a second device connected to the first device through a cross bar | |
US6377582B1 (en) | Decentralized ring arbitration for multiprocessor computer systems | |
JP5239769B2 (ja) | リクエスト順序制御システム、リクエスト順序制御方法およびリクエスト順序制御プログラム | |
JP2007316699A (ja) | データ処理装置 | |
JPH10320365A (ja) | データ交換装置およびその方法 | |
US7167939B2 (en) | Asynchronous system bus adapter for a computer system having a hierarchical bus structure | |
JP2009194510A (ja) | 優先調停システム及び優先調停方法 | |
US20100153610A1 (en) | Bus arbiter and bus system | |
JP2013037693A (ja) | データ処理システムの同期化 | |
JP3848104B2 (ja) | データ管理システム |
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: 20091110 |