JP2005078177A - 並列演算装置 - Google Patents

並列演算装置 Download PDF

Info

Publication number
JP2005078177A
JP2005078177A JP2003304755A JP2003304755A JP2005078177A JP 2005078177 A JP2005078177 A JP 2005078177A JP 2003304755 A JP2003304755 A JP 2003304755A JP 2003304755 A JP2003304755 A JP 2003304755A JP 2005078177 A JP2005078177 A JP 2005078177A
Authority
JP
Japan
Prior art keywords
data
transfer
circuit
processing
parallel
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.)
Pending
Application number
JP2003304755A
Other languages
English (en)
Inventor
Kenichiro Anjo
健一朗 安生
Masato Motomura
真人 本村
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2003304755A priority Critical patent/JP2005078177A/ja
Priority to US10/924,373 priority patent/US20050050233A1/en
Publication of JP2005078177A publication Critical patent/JP2005078177A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

Abstract

【課題】 簡単な構造でデータ転送を良好に実行できる並列演算装置を提供する。
【解決手段】 事前に転送仲介回路102のマップテーブル133に複数のデータ受信ポート131と複数種類の転送IDとの組み合わせごとに複数のデータ送信ポート132と複数種類の転送IDとの組み合わせをデータ登録しておけば、その転送仲介回路102にデータ受信ポート131で転送IDとともにデータ受信された転送データを、所定のデータ送信ポート132から次段の転送IDとともに次段の転送仲介回路102や可変処理回路101にデータ送信させることができるので、複数の101のデータ転送を簡単な構造で良好に実行することができる。
【選択図】 図1

Description

本発明は、複数の可変処理回路が複数の転送仲介回路とともに所定形状に配列されており、可変処理回路はオブジェクトコードに対応して可変自在に各種処理を各々実行し、転送仲介回路は可変処理回路の相互のデータ転送を仲介する並列演算装置に関する。
現在、各種のデータ処理を自在に実行できるプロセッサユニットとしては、いわゆるCPU(Central Processing Unit)やMPU(Micro Processor Unit)と呼称される製品が実用化されている。
このようなプロセッサユニットを利用したデータ処理システムでは、複数の動作命令が記述された各種のオブジェクトコードと各種の処理データとがメモリデバイスに格納され、プロセッサユニットはメモリデバイスから動作命令や処理データを順番にデータ読出して複数のデータ処理を逐次実行する。
このため、一個のプロセッサユニットで各種のデータ処理を実現できるが、その場合は複数のデータ処理を順番に逐次実行する必要があり、その逐次処理ごとにプロセッサユニットがメモリデバイスから動作命令をデータ読出する必要があるので、複雑なデータ処理を高速に実行することは困難である。
一方、実行するデータ処理が一つに限定されている場合には、そのデータ処理を実行するように論理回路をハードウェアで形成すれば、プロセッサユニットがメモリデバイスから複数の動作命令を順番にデータ読出して複数のデータ処理を順番に逐次実行するような必要はない。このため、複雑なデータ処理を高速に実行することが可能であるが、当然ながら一つのデータ処理しか実行することができない。
つまり、オブジェクトコードを切換自在としたデータ処理システムでは、各種のデータ処理を実行できるが、ハードウェアの構成が固定されているのでデータ処理を高速に実行することが困難である。一方、ハードウェアからなる論理回路では、データ処理を高速に実行することが可能であるが、オブジェクトコードを変更できないので一つのデータ処理しか実行できない。
このような課題を解決するため、本出願人はソフトウェアに対応してハードウェアの構成が変化するプロセッサユニットとして並列演算装置を創案した。この並列演算装置では、小規模の多数のデータ処理回路と配線切換回路とが行列配置されており、このマトリクス回路部に状態管理回路が並設されている。
複数のデータ処理回路は、個々にデータ設定される動作命令に対応してデータ処理を個々に実行し、複数の配線切換回路は、個々にデータ設定される動作命令に対応して複数のデータ処理回路の接続関係を個々に切換制御する。
つまり、並列演算装置は複数のデータ処理回路と複数の配線切換回路との動作命令を切り換えることでハードウェアの構成が変化するので、各種のデータ処理を実行することができ、ハードウェアとして小規模の多数のデータ処理回路が簡単なデータ処理を並列に実行するので、データ処理を高速に実行することができる。
そして、上述のような複数のデータ処理回路と複数の配線切換回路との動作命令からなるコンテキストを状態管理回路がオブジェクトコードに対応して動作サイクルごとに順次切り換えるので、並列演算装置はオブジェクトコードに対応して並列処理を連続的に実行することができる(例えば、特許文献1〜6、非特許文献1,2参照)。
特開2000−138579号 特開2000−224025号 特開2000−232354号 特開2000−232162号 特開2003−76668号 特開2003−99409号 "Introduction to the Configurable, Highly Parallel Computer"、Lawrence Snyder著、Purdue University、"IEEE Computer, vol.15, No.1, Jan. 1982, pp47-56" "Interconnection networks enable fine-grain dynamic multi-tasking on FPGAs"[2003年08月13日検索]インターネット<URL:http://www.imec.be/design/pdf/reconfig/FPL#02#interconnection.pdf >
現在、上述のような並列演算装置として実用化されているFPGA(Field Programmable Gate Array)では、行列配置されている多数のデータ処理回路を自在に接続するために配線切換回路に多数のスイッチング素子とデータ配線とが必要となるため、データ処理回路の個数の増大とともに配線切換回路の回路規模が過大となる。
さらに、FPGAはソースコードが複数のタスクとして設計されても、それを結合した一つのタスクに対して回路の配置や配線が決定されるので、その配置配線のオブジェクトコードを生成するために必要な計算時間が膨大である。また、複数のタスクを複数の領域にデータパス回路として構築した場合、特定のタスクのデータパス回路が構築されている領域に他のタスクの配線が形成されることがあるため、領域ごとにタスクのデータパス回路を自在に変更することが困難である。
さらに、最長のデータ転送の経路がクリティカルパスとなるため、データ処理の速度を良好に向上させることが困難である。これはフリップフロップなどの保持回路の追加により解決することは不可能ではないが、この場合は回路規模が増大するとともに回路構造が複雑となる。
上述のような課題を解決するため、前述の非特許文献2に開示された技術では、FPGAを複数の処理領域に分割しておき、複数のタスクを処理領域ごとに並列に処理する。さらに、複数の処理領域をネットワークルータで接続しておき、このネットワークルータにより複数のタスクの相互のデータ転送を実行する。
より詳細には、処理領域では転送データをネットワークルータに出力するとき、その転送先のアドレスやデータ長などが記述されたヘッダをデータ生成して転送データに付与する。このようなヘッダは、タスク上で転送データを識別するための付帯情報が記述されている必要があり、少なくとも、転送先、転送データのデータ長、転送先での転送データの識別子、が記述されている必要がある。
ネットワークルータは、ヘッダのデータ内容に対応して転送データを所定の処理領域まで転送するので、同一のデータ配線を時分割に利用することができ、多数のスイッチング素子やデータ配線が無用となる。しかし、これでは転送先のアドレスやデータ長などが記述されたヘッダを処理領域でデータ生成する必要があるので、そのデータ処理が煩雑であり、タスクにヘッダ生成も組み込む必要がある。
ヘッダには転送データのデータ長も記述するので、例えば、転送データが音声や画像などのリアルタイムデータの場合、そのデータ長が判明するまで転送データを蓄積する必要がある。このため、充分なデータ容量の蓄積回路が処理領域ごとに必要で回路規模が増大することになり、転送データの転送タイミングが遅滞することになる。
各種データが記述されているヘッダは長大となるため、転送データが短小であると相対的に転送効率が低下することになる。この転送効率の低下を防止するために転送データを長大とすると、ヘッダと転送データとの合計のデータ長が過大となり、特定のヘッダと転送データとが複数のネットワークルータとデータ配線とを占有してデッドロックが発生することになる。
このデッドロックは、ネットワークルータの内部配線の各々にFIFO(First In First Out)メモリを並列に追加し、仮想的に転送経路を複数とすることなどで、防止することは不可能ではないが、この場合はネットワークルータの回路規模が増大するとともに回路構造が複雑となる。
また、上述のような並列演算装置では、ネットワークルータとネットワークルータとが直接に接続された転送ルートで転送される転送データの種類に制限がないため、ある転送ルートで何種類の転送ルートが転送されるか予想できない。このため、実際に並列演算装置を動作させたときに、内部で発生する輻輳を予想できず、最低性能を保証することができない。
本発明は上述のような課題に鑑みてなされたものであり、簡単な構造でデータ転送を良好に実行できる並列演算装置の提供を目的とする。
本発明の並列演算装置は、複数の可変処理回路と複数の転送仲介回路とを有しており、これら複数の可変処理回路と複数の転送仲介回路とが所定形状に配列されている。可変処理回路は、処理実行手段、転送付与手段、を有しており、オブジェクトコードに対応して可変自在に各種処理を各々実行する。転送仲介回路は、複数のデータ受信ポート、複数のデータ送信ポート、経路記憶手段、転送制御手段、を有しており、可変処理回路の相互のデータ転送を仲介する。
可変処理回路の処理実行手段は、各種処理により任意に転送データの入力や出力を実行し、転送付与手段は、転送仲介回路に出力する転送データに最終的な送信先の可変処理回路に対応して複数種類の転送IDの一つを付与する。
転送仲介回路の複数のデータ受信ポートは、転送データを転送IDとともに周囲の可変処理回路か転送仲介回路から個々に受信し、複数のデータ送信ポートは、転送データを転送IDとともに周囲の可変処理回路か転送仲介回路に個々に送信する。経路記憶手段は、複数のデータ受信ポートと複数種類の転送IDとの組み合わせごとに複数のデータ送信ポートと複数種類の転送IDとの組み合わせを可変自在にデータ記憶し、転送制御手段は、データ受信ポートで転送IDとともにデータ受信された転送データを経路記憶手段の記憶データに対応して次段の転送IDとともに所定のデータ送信ポートに送信させる。
従って、本発明の並列演算装置では、事前に転送仲介回路の経路記憶手段に複数のデータ受信ポートと複数種類の転送IDとの組み合わせごとに複数のデータ送信ポートと複数種類の転送IDとの組み合わせをデータ登録しておけば、その転送仲介回路にデータ受信ポートで転送IDとともにデータ受信された転送データは、所定のデータ送信ポートから次段の転送IDとともに次段の転送仲介回路や可変処理回路にデータ送信される。
なお、本発明で云う各種手段は、その機能を実現するように形成されていれば良く、例えば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与されたデータ処理装置、コンピュータプログラムによりデータ処理装置に実現された所定の機能、これらの組み合わせ、等として実現することができる。
また、本発明で云う各種手段は、かならずしも個々に独立した存在である必要はなく、複数の手段が1個の部材として形成されていること、ある手段が他の手段の一部であること、ある手段の一部と他の手段の一部とが重複していること、等も可能である。
さらに、本発明では前後左右上下の方向を言及しているが、これは方向の相対関係を簡単に説明するために便宜的に規定したものであり、本発明を実施する場合の製造時や使用時の方向を限定するものではない。
また、本発明で云う転送IDとは、転送データを転送ルートに位置する転送仲介回路および可変処理回路で識別するため、各々の転送仲介回路および可変処理回路で局所的に定義されたデジタルデータであれば良く、例えば、転送ルートが4個ならば2ビットで設定可能である。
さらに、本発明で云う“転送データへの転送IDの付与”は、転送データに転送IDを外的に追加することに限定されるものではなく、転送データの一部として転送IDを内的に挿入することも可能である。このような場合、転送仲介回路による転送IDの変更は、転送データの一部または全部の書き換えとして実現することが可能である。
本発明の並列演算装置では、事前に転送仲介回路の経路記憶手段に複数のデータ受信ポートと複数種類の転送IDとの組み合わせごとに複数のデータ送信ポートと複数種類の転送IDとの組み合わせをデータ登録しておけば、その転送仲介回路にデータ受信ポートで転送IDとともにデータ受信された転送データを、所定のデータ送信ポートから次段の転送IDとともに次段の転送仲介回路や可変処理回路にデータ送信させることができるので、複数の可変処理回路のデータ転送を簡単な構造で良好に実行することができ、さらに、転送仲介回路で転送される転送データの種類が制限されるので、最低性能を保証することができる。
[実施の形態の構成]
本発明の実施の形態を図面を参照して以下に説明する。なお、以下では説明を簡単とするため、図面の左右方向が行方向で上下方向が列方向とし、各行は列方向に配列されており、各列は行方向に配列されているとする。
まず、本形態の並列演算装置であるアレイ型プロセッサ100では、図2に示すように、複数の可変処理回路であるエレメント領域101が行列形状に配列されており、そのエレメント領域101の各々に行方向で転送仲介回路102が隣接されている。
エレメント領域101は、オブジェクトコードに対応して可変自在に各種処理を各々実行し、転送仲介回路102は、エレメント領域101の相互のデータ転送を仲介する。本形態のアレイ型プロセッサ100では、例えば、エレメント領域101と転送仲介回路102とが4行4列に配列されており、その第2行目と第3行目との中間に1個の構成管理回路103が配置されている。
複数のエレメント領域101は、1個の状態管理回路105と複数のデータ処理回路であるプロセッサエレメント106とを有しており、例えば、4行4列に配列されたプロセッサエレメント106の第2行目と第3行目との中間に状態管理回路105が配置されている。
状態管理回路105はプロセッサエレメント106を配線切換回路であるスイッチエレメント108とともに動作制御するが、本形態のアレイ型プロセッサ100では、エレメント領域101ごとに状態管理回路105がプロセッサエレメント106に接続されているので、その状態管理回路105は接続されているプロセッサエレメント106のみ状態管理を実行する。
エレメント領域101では、図3(a)に示すように、行列配置されている複数のプロセッサエレメント106の各々が隣接するスイッチエレメント108に接続されており、行列配置されている複数のスイッチエレメント108が多数のmb(m-bit)バス109と多数のnb(n-bit)バス110とでマトリクス接続されている。
また、図3(b)に示すように、プロセッサエレメント106は、メモリ制御回路111、インストラクションメモリ112、インストラクションデコーダ113、mbレジスタファイル115、nbレジスタファイル116、mbALU(Arithmetic and Logical Unit)117、nbALU118、内部可変配線(図示せず)、等を各々有しており、スイッチエレメント108は、バスコネクタ121、入力制御回路122、出力制御回路123、等を各々有している。
また、本形態のアレイ型プロセッサ100では、外部から供給されるオブジェクトコードに、エレメント領域101の多数のプロセッサエレメント106と多数のスイッチエレメント108との動作命令が、順次切り換わるコンテキストとしてデータ設定されており、このコンテキストを動作サイクルごとに切り換える状態管理回路105の動作命令が、順次遷移する動作状態としてデータ設定されている。
このため、状態管理回路105は、上述のような自身の動作命令と、複数の動作状態を順次遷移させる遷移ルールと、がデータ格納されており、その遷移ルールに対応して動作状態を順次遷移させて動作命令によりプロセッサエレメント106とスイッチエレメント108とのインストラクションポインタを発生する。
図3(b)に示すように、スイッチエレメント108は、隣接するプロセッサエレメント106のインストラクションメモリ112を共用しているので、状態管理回路105は、発生したプロセッサエレメント106とスイッチエレメント108とのインストラクションポインタを対応するプロセッサエレメント106のインストラクションメモリ112に供給する。
このインストラクションメモリ112には、プロセッサエレメント106とスイッチエレメント108との複数の動作命令がデータ格納されているので、状態管理回路105から供給される1つのインストラクションポインタでプロセッサエレメント106とスイッチエレメント108との動作命令が指定される。
インストラクションデコーダ113は、インストラクションポインタで指定された動作命令をデコードし、スイッチエレメント108、内部可変配線、m/nbALU117,118、等の動作を制御する。
mbバス109はmbである“8(bit)”の処理データを転送し、nbバス110はnbである“1(bit)”の処理データを転送するので、スイッチエレメント108は、インストラクションデコーダ113の動作制御に対応してm/nbバス109,110による多数のプロセッサエレメント106の接続関係を制御する。
より詳細には、スイッチエレメント108のバスコネクタ121は、mbバス109とnbバス110とが四方から連通しており、このように連通している複数のmbバス109の互いの接続関係と連通する複数のnbバス110の互いの接続関係とを制御する。
このため、アレイ型プロセッサ100は、外部から供給されるオブジェクトコードに対応して、複数のエレメント領域101ごとに状態管理回路105がプロセッサエレメント106のコンテキストを動作サイクルごとに順次切り換え、その段階ごとに多数のプロセッサエレメント106は個々に設定自在なデータ処理で並列動作する。
入力制御回路122は、図3(b)に示すように、mbバス109からmbレジスタファイル115およびmbALU117へのデータ入力の接続関係と、nbバス110からnbレジスタファイル116およびnbALU118へのデータ入力の接続関係とを制御する。
出力制御回路123は、mbレジスタファイル115およびmbALU117からmbバス109へのデータ出力の接続関係と、nbレジスタファイル116およびnbALU118からnbバス110へのデータ出力の接続関係とを制御する。
プロセッサエレメント106の内部可変配線は、インストラクションデコーダ113の動作制御に対応して、プロセッサエレメント106の内部でのmbレジスタファイル115およびmbALU117の接続関係とnbレジスタファイル116およびnbALU118の接続関係とを制御する。
mbレジスタファイル115は、内部可変配線に制御される接続関係に対応して、mbバス109などから入力されるmbの処理データを一時保持してmbALU117などに出力する。nbレジスタファイル116は、内部可変配線に制御される接続関係に対応して、nbバス110などから入力されるnbの処理データを一時保持してnbALU118などに出力する。
mbALU117は、インストラクションデコーダ113の動作制御に対応したデータ処理をmbの処理データで実行し、nbALU118は、インストラクションデコーダ113の動作制御に対応したデータ処理をnbの処理データで実行するので、処理データのビット数に対応してm/nbのデータ処理が適宜実行される。
また、本形態のアレイ型プロセッサ100では、図1に示すように、行列配置されている複数のエレメント領域101の各々が隣接する転送仲介回路102に個々に接続されており、この行列配置されている複数の転送仲介回路102がマトリクス接続されている。
そこで、オブジェクトコードに対応して複数のエレメント領域101ごとにタスクがデータ処理され、その複数のタスクの相互でのデータ転送が転送仲介回路102により仲介される。その場合、エレメント領域101では、図4および図5に示すように、オブジェクトコードに対応して複数のプロセッサエレメント106と複数のスイッチエレメント108により構築されるデータパス回路129が処理実行手段となり、そのデータパス回路129が任意に転送データの入力や出力を実行する。
より具体的には、図4に示すように、エレメント領域101は、所定の動作状態のときに複数のプロセッサエレメント106からなるデータパス回路129から転送データを隣接する転送仲介回路102に出力するとともに、その動作状態の状態IDを転送付与手段となる状態管理回路105が転送ID(Label信号)として転送仲介回路102にデータ出力する。
このようにエレメント領域101が転送データとともに出力する転送IDは、最終的な転送先のエレメント領域101に対応している。つまり、転送データの送信元の転送IDと受信先の転送IDとは一対一に対応しており、それに対応して転送ルートで転送IDが順次変更されるので、所望の転送IDを付与した転送データは所望の送信先まで転送される。
なお、あるエレメント領域101で1個のタスクが処理される場合でも、その送信用の転送IDと受信用の転送IDとは関連しないので、一つの転送IDで相違するデータ送信とデータ受信とを実行することができる。
また、所定の動作状態のときに複数のデータパス回路129が並列に転送データやバリッド信号を出力する場合、その転送データやバリッド信号をマルチプレクサなどの論理回路141で選択することが好適である。このような論理回路141はハードウェアとして実装しておくこともでき、データパス回路129と同様にオブジェクトコードによりプロセッサエレメント106やスイッチエレメント108で動的に構築することもできる。
なお、上述の転送IDは転送データを転送する転送ルートの個数に対応して任意のビット数に規定されるが、本形態のアレイ型プロセッサ100では、エレメント領域101のデータパス回路129がタスクごとに4(=22 )種類まで転送データを出力し、エレメント領域101の状態管理回路105が転送データに4(=22 )種類の2ビットの転送IDの一つを付与するとする。
ただし、この転送IDは状態管理回路105が所定の動作状態のときに出力する状態IDなので、本形態のアレイ型プロセッサ100では、状態管理回路105が動作状態をタスクごとに4個まで管理する。
また、複数のエレメント領域101は同期することなく個別にデータ処理を実行しているので、データパス回路129は、上述のように転送仲介回路102に次段の転送データを出力するときのみ、その転送データが有効であることを示すバリッド信号をアクティブとする。
なお、エレメント領域101はタスクごとに転送が必要な各種データを任意ビットで生成するが、その任意ビットの処理データは複数の所定ビットの転送データに分割されて出力される。例えば、エレメント領域101の動作サイクルごとの処理単位が32ビットに設定されている場合、エレメント領域101は、動作サイクルごとの32ビットで転送データを出力し、転送仲介回路102は、32ビットの転送データをパラレルに転送することが可能である。
転送仲介回路102は、図6に示すように、5個のデータ受信ポート131、5個のデータ送信ポート132、経路記憶手段であるマップテーブル133、データ登録手段の一部として機能するコンフィギュレーションコントローラ136、転送制御手段に相当するポートアービタ137、アクノリッジジェネレータ138、等を有している。
本形態のアレイ型プロセッサ100では、前述のように複数のエレメント領域101の各々が矩形に形成されていて行列形状に配列されており、複数の転送仲介回路102は、複数のエレメント領域101の各々に1個ずつ隣接されている。そして、転送仲介回路102は、行列方向に位置する周囲の4個の転送仲介回路102と隣接するエレメント領域101とに接続されているので、5個のデータ受信ポート131と5個のデータ送信ポート132とを有している。
転送仲介回路102のデータ受信ポート131は、転送データを転送IDとともに隣接するエレメント領域101か四方の転送仲介回路102から個々に受信し、5個のデータ送信ポート132は、転送データを転送IDとともに四方の転送仲介回路102か隣接するエレメント領域101に個々に送信する。
マップテーブル133は、データ受信ポート131ごとに形成されており、複数のデータ受信ポート131と複数種類の転送IDとの組み合わせごとに複数のデータ送信ポート132と複数種類の転送IDとの組み合わせを可変自在にデータ記憶している。なお、前述のようにデータ受信/送信ポート131,132の個数は5個なので、そのポートIDは3ビットでデータ記憶されており、転送IDは4種類なので2ビットでデータ記憶されている。
ポートアービタ137は、その出力信号でデータ送信ポート132を動作制御することにより、データ受信ポート131で転送IDとともにデータ受信された転送データをマップテーブル133の記憶データに対応して次段の転送IDとともに所定のデータ送信ポート132に送信させる。
例えば、第1のデータ受信ポート131と“01”なる転送IDとの組み合わせに対して第3のデータ送信ポート132と“11”なる転送IDの組み合わせがデータ登録されている場合、“01”なる転送IDが付与された転送データが第1のデータ受信ポート131でデータ受信されると、その転送データは転送IDが“11”に変更されて第3のデータ送信ポート132からデータ送信される。
なお、前述のように転送データにはバリッド信号も付与されているので、データ受信ポート131はバリッド信号がアクティブなときのみ転送データを受信してバッファ回路やレジスタなどの記憶回路(図示せず)で一時保持し、データ送信ポート132は転送データを送信するときのみバリッド信号をアクティブとする。
なお、このような記憶回路は、データ受信ポート131の内部ではなく、データ送信ポート132の内部に配置することも可能であり、データ受信ポート131とデータ送信ポート132との両方に配置することも可能である。
また、ポートアービタ137は、1個のデータ送信ポート132に複数の転送データが集中した場合、例えば、ラウンドロビン方式などの既存手法により複数の転送データの競合を解決する。
コンフィギュレーションコントローラ136は、複数のデータ受信ポート131と複数種類の転送IDとの組み合わせごとの複数のデータ送信ポート132と複数種類の転送IDとの組み合わせが、データ登録手段である構成管理回路103からデータ供給されると、それをマップテーブル133にデータ格納する。
つまり、前述のようにオブジェクトコードに対応してアレイ型プロセッサ100が動作するとき、エレメント領域101ごとに状態管理回路105でタスクが設定され、そのタスクの相互のデータ転送に対応した制御データが、構成管理回路103により転送仲介回路102ごとに設定される。
アクノリッジジェネレータ138は、接続先のデータ受信ポート131から出力されているレディ信号により、そのデータ受信ポート131のデータ受信の可否を判定し、データ受信が可能なデータ受信ポート131にはアクティブなアクノリッジ信号を供給する。
なお、アクノリッジジェネレータ138は、接続先のデータ受信ポート131のレディ信号がアクティブでないときや、ポートアービタ137による調停で送信権限を得られなかったときは、アクノリッジ信号をアクティブとしない。
データ受信ポート131は、アクノリッジ信号がアクティブとなると保持している転送データを無効とし、データ受信の可否を送信元のデータ送信ポート132に通知するレディ信号をアクティブとする。また、アクノリッジ信号がアクティブでないときは転送データの保持を維持し、レディ信号をアクティブとしない。
また、転送仲介回路102から最終的に転送データが入力されるエレメント領域101でも、図5に示すように、オブジェクトコードに対応して複数のプロセッサエレメント106と複数のスイッチエレメント108により構築されるデータパス回路129により任意に転送データが入力される。
より具体的には、転送仲介回路102は、エレメント領域101に入力する転送データの転送IDにより、その転送データが状態管理回路105のイベントデータか、データパス回路129の処理データか、をデータ設定する。
例えば、前述のように転送IDが2ビットならば“0,1,2,3”が表現されるが、図5に例示するエレメント領域101では、転送IDが“0,1”の転送データのみ処理対象とし、転送IDが“2,3”の転送データは処理対象としない。
そこで、図5に例示するエレメント領域101では、転送IDが“0,1”の場合には、転送仲介回路102から入力されるバリッド信号がアクティブな転送データを、データパス回路129により転送IDに対応して状態管理回路105やFIFOバッファ142に入力する。
なお、エレメント領域101が転送仲介回路102から転送データを入力しないと、その転送データは転送仲介回路102のデータ受信ポート131に保持されるため、このデータ受信ポート131が次段の転送データを受信できない状態となり、転送データが順次渋滞することとなる。これを防止するため、エレメント領域101は転送仲介回路102からデータ入力が依頼されると、その転送データが必要ない場合でもデータ入力を実行する。
なお、本形態のアレイ型プロセッサ100のオブジェクトコードは、例えば、本出願人が特開2003−99409号に開示したように、データ処理装置(図示せず)によりソースコードから自動的に生成することが可能である。
より具体的には、このようなデータ処理装置は、アレイ型プロセッサ100の物理構造と物理特性とに対応した制約条件を事前にデータ登録された状態で、C言語などで記述された一連のソースコードを言語解析してDFGをデータ生成し、このDFGから所定の制約条件によりアレイ型プロセッサ100の順次遷移する複数段階の動作状態をスケジューリングしたCDFGをデータ生成する。
このCDFGから所定の制約条件により複数段階の動作状態のRTL記述をアレイ型プロセッサ100のプロセッサ/スイッチエレメント106,108に対応したデータパスと状態管理回路105に対応した有限状態マシンとに分離してデータ生成し、このRTL記述から所定の制約条件により複数段階の動作状態ごとのプロセッサエレメント106のネットリストをm/nbALU117,118などのm/nb回路資源ごとにデータ生成する。
このネットリストに対応して状態管理回路105のRTL記述を対応するオブジェクトコードにデータ変換し、複数段階の動作状態ごとにデータ生成されたプロセッサ/スイッチエレメント106,108のネットリストをマトリクス配列されている複数のプロセッサエレメント106に複数サイクルのコンテキストごとに割り付ける。
このプロセッサエレメント106に割り付けられたネットリストを対応するオブジェクトコードにデータ変換し、このデータ変換されたプロセッサエレメント106のオブジェクトコードに対応してスイッチエレメント108のネットリストをオブジェクトコードにデータ変換する。
ただし、本形態のアレイ型プロセッサ100では、上述のように複数のエレメント領域101ごとにタスクが独立に処理され、そのタスクの相互のデータ転送が転送仲介回路102で実現されるので、これを実現するようにソースコードからオブジェクトコードを生成することが必要である。
その場合、複数のタスクごとに上述のようにソースコードからネットリストをデータ生成するとき、そのタスクごとにデータ送信/受信を示す“Send, Receive”関数などで記述されている転送関係を転送情報としてデータ生成しておく。なお、このように転送関係を転送情報としてデータ生成することは、データ送信/受信を示すソースコードの各種記述で可能である。
つぎに、その複数のタスクの転送情報をデータ照合し、合計の転送コストが最少となる転送ルートとタスクの配置をデータ生成する。これでデータ生成された転送ルートのテーブル情報を上述のネットリストに統合させ、以下は前述のようにオブジェクトコードをデータ生成する。
これで、複数のエレメント領域101ごとにタスクが独立に処理され、そのタスクの相互のデータ転送が転送仲介回路102で実現される、アレイ型プロセッサ100のオブジェクトコードがデータ生成される。
[実施の形態の動作]
上述のような構成において、本実施の形態のアレイ型プロセッサ100では、外部から供給されるオブジェクトコードに対応して、外部入力される処理データでデータ処理を実行する。その場合、複数のエレメント領域101ごとに状態管理回路105が動作状態を順次遷移させるとともにプロセッサエレメント106のコンテキストを動作サイクルごとに順次切り換える。
このため、その動作サイクルごとに多数のプロセッサエレメント106が個々に設定自在なデータ処理で並列動作し、その多数のプロセッサエレメント106の接続関係を多数のスイッチエレメント108が切換制御する。
このとき、エレメント領域101ごとに、プロセッサエレメント106での処理結果は必要により状態管理回路105にイベントデータとしてフィードバックされるので、この状態管理回路105は入力されたイベントデータにより動作状態を次段の動作状態に遷移させるとともにプロセッサエレメント106のコンテキストを次段のコンテキストに切り換える。
本形態のアレイ型プロセッサ100は、上述のように複数のエレメント領域101ごとに状態管理回路105がプロセッサエレメント106のコンテキストを状態遷移させることで複数のタスクのデータ処理が並列に実行されるが、図1(b)に示すように、その複数のデータ処理が処理データの相互転送を必要とする場合がある。
その場合、オブジェクトコードに対応して複数のエレメント領域101にタスクがデータ登録されるとき、そのデータ転送に対応して構成管理回路103が複数の転送仲介回路102のマップテーブル133に、データ受信ポート131と転送IDとの組み合わせごとにデータ送信ポート132と転送IDとの組み合わせをデータ登録する。
このような状態で、図1(a)に示すように、エレメント領域101から転送データが転送ID(Label信号)とともに隣接する転送仲介回路102のデータ受信ポート131に出力されると、この転送仲介回路102では、マップテーブル133の記憶データに対応して転送IDを変更し、その転送IDとともに転送データを所定のデータ送信ポート132から送信する。
このため、エレメント領域101から隣接する転送仲介回路102に転送IDとともに出力された転送データは、目的のエレメント領域101まで任意の転送仲介回路102により転送されることになる。
[実施の形態の効果]
本実施の形態のアレイ型プロセッサ100は、上述のように転送ルートに対応した所定データを複数の転送仲介回路102のマップテーブル133にデータ登録しておくことにより、複数のエレメント領域101が転送IDとともに出力する転送データを目的のエレメント領域101まで良好に転送することができる。
しかも、その転送IDは転送ルートの個数に対応したビット数で生成できるので、例えば、エレメント領域101ごとに4個の転送ルートを確保できれば良いならば、転送IDは2ビットで生成することができる。このため、長大なヘッダをデータ生成して転送データに付与する必要がなく、転送データが短小でも相対的に転送効率を向上することができる。
特に、エレメント領域101は所定の動作状態のときに転送データを出力するが、その動作状態の状態IDを転送IDとするので、専用の処理動作を必要とすることなく特定の動作状態に対応した転送IDを発生させることができ、さらにエレメント領域101の処理負担を軽減することができる。
しかも、エレメント領域101はタスクごとに転送が必要な各種データを任意ビットで生成するが、その任意ビットの処理データはエレメント領域101での動作サイクルごとの処理単位で出力される。このため、エレメント領域101は、処理データを複数の短小な転送データに分割する専用の処理動作が必要なく、各種の処理が容易な転送データを簡単に生成することができる。
また、転送仲介回路102は、行列方向に位置する周囲の4個の転送仲介回路102と隣接するエレメント領域101とに各々5個のデータ受信/送信ポート131,132で接続されているので、そのポートIDは3ビットでマップテーブル133にデータ記憶されている。
このため、マップテーブル133は、5個のデータ受信ポート131と4種類の転送IDとの組み合わせごとの5個のデータ送信ポート132と4種類の転送IDとの組み合わせを、(2+3)×2=10ビットでデータ記憶することができ、極めて小規模な回路でマップテーブル133を形成することが可能である。
さらに、オブジェクトコードに対応して複数のエレメント領域101にタスクがデータ設定されるとき、そのタスクに対応した制御データが構成管理回路103によりマップテーブル133にデータ登録されるので、切換自在なタスクごとに転送データを簡単かつ的確に転送することができる。
また、エレメント領域101や転送仲介回路102は新規の転送データを出力するときのみバリッド信号をアクティブとして出力し、エレメント領域101や転送仲介回路102は入力されるバリッド信号がアクティブなときのみ転送データを入力する。さらに、エレメント領域101や転送仲介回路102は転送データを受信できないときはレディ信号をアクティブとせず、エレメント領域101や転送仲介回路102は入力されるレディ信号がアクティブなときのみ転送データを送信する。
しかも、転送仲介回路102の内部で1個のデータ送信ポート132に複数の転送データが集中しても、その競合がポートアービタ137により解消される。このため、本形態のアレイ型プロセッサ100では、複数のエレメント領域101のデータ処理や複数の転送仲介回路102のデータ転送が同期していなくとも、データ転送を良好な効率で実行することができる。このため、複数のエレメント領域101の動作を統合制御する必要もなく、複数のエレメント領域101が完全に独立して個別にタスクを処理することも可能である。
さらに、転送仲介回路102で転送される転送データの種類が制限されているので、転送仲介回路102を通過する転送データの最低の転送バンド幅を一定以上に保証することができる。例えば、前述のように転送IDが2ビットならば転送仲介回路102の1個のデータ受信ポート131には転送データが4種類までしか通過しないので、転送ルートの転送速度が“8ギガビット/秒”ならば、転送IDごとには“2ギガビット/秒”の転送速度が保証される。
また、本形態のアレイ型プロセッサ100では、エレメント領域101の4行4列に配列されたプロセッサエレメント106の第2行目と第3行目との中間に、その1行と同幅の状態管理回路105が配置されているので、エレメント領域101の状態管理回路105は4行4列のプロセッサエレメント106と最短距離で接続されている。
しかも、行方向に転送仲介回路102を介して4行4列に配列されたエレメント領域101の第2行目と第3行目との中間に、その1行と同幅の構成管理回路103が配置されており、この1個の構成管理回路103は多数の転送仲介回路102と最短距離で接続されているので、アレイ型プロセッサ100は無駄なく高速に動作することができる。
[実施の形態の変形例]
本発明は上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形が可能である。例えば、上記形態ではエレメント領域101やプロセッサエレメント106の個数や配置などを具体的に例示したが、当然ながら、その個数や配置などは各種に変更することが可能である。
例えば、上記形態では、エレメント領域101の4行4列に配列されたプロセッサエレメント106の第2行目と第3行目との中間に、その1行と同幅の状態管理回路105が配置されており、行方向に転送仲介回路102を介して4行4列に配列されたエレメント領域101の第2行目と第3行目との中間に、その1行と同幅の構成管理回路103が配置されていることを例示したが、このような状態管理回路105や構成管理回路103の形状や配置も各種に変形可能である。
例えば、上記形態ではエレメント領域101が行列形状に最適な矩形に形成されていることを例示したが、エレメント領域101を矩形以外の形状に形成することも可能であり、三角形や六角形として充填配置することも不可能ではない(図示せず)。
また、行列形状に配列されているエレメント領域101の行方向の間隙に列形状の転送仲介回路102が位置することを例示したが、例えば、この転送仲介回路102がエレメント領域101の左辺と下辺とに対向するL字形状に形成されていることや、4個の転送仲介回路102の行列の中央に位置する十字形状に形成されていることなども可能である(図示せず)。
また、上記形態ではプロセッサエレメント106やスイッチエレメント108の内部構造なども具体的に例示したが、これも各種構造で実現可能である。例えば、プロセッサエレメント106がm/nbレジスタファイル115,116やm/nbALU117,118を有することを例示したが、これをmbレジスタファイル115やmbALU117のみとすることも可能である。また、m/nbALU117,118を複合的な演算処理まで可能な処理回路とすることや、タスクレベルの大規模な演算処理まで可能な大規模な処理回路とすることも可能である。
さらに、上記形態では転送仲介回路102が転送データをパラレルに転送することを例示したが、転送仲介回路102のデータ受信ポート131にシリアルパラレル変換器を接続するとともにパラレルシリアル変換器をデータ送信ポート132に接続することで転送データをシリアルに転送することも可能である。
また、上記形態では並列演算装置として状態管理回路105がプロセッサエレメント106やスイッチエレメント108から完全に分離されているアレイ型プロセッサ100を例示したが、例えば、いわゆるFPGAのように状態管理回路105がプロセッサエレメント106などと一体に形成されている構造も可能である(図示せず)。
さらに、上記形態では複数のエレメント領域101ごとに状態管理回路105が配置されており、複数のエレメント領域101が独立に処理動作を実行することを例示したが、例えば、複数のエレメント領域101の状態管理回路105を1個の中央管理回路(図示せず)により統合制御するようなことも可能である。
また、上記形態ではアレイ型プロセッサ100のみを例示したが、このようなアレイ型プロセッサ100を有しており、アレイ型プロセッサ100に処理データを入力して結果データを取得する演算処理装置や半導体集積回路も実施可能であり(図示せず)、このような半導体集積回路で各種のデータ処理を実行するコンピュータ装置なども実施可能である(図示せず)。
ASIC(Application Specific Integrated Circuit)などの一般的な半導体集積回路は、製造後に回路構造を変更することができないが、アレイ型プロセッサ100を搭載した半導体集積回路や演算処理装置ならば、製造後でも回路構造を変更することが可能である。このため、半導体集積回路などの製造後でも不具合を修正することができ、設計変更などを無用として半導体集積回路などの開発から量産までのコストを大幅に削減することが可能である。
同様に、このような半導体集積回路を搭載したコンピュータ装置では、その半導体集積回路を交換しなくともソフトウェアの変更で不具合の修正や回路動作の変更が可能なので、その利便性を向上させることができる。
また、図4および図5に示すように、上記形態では転送データを出力するエレメント領域101や入力するエレメント領域101の内部に構築される回路構造を具体的に例示したが、当然ながら、このようなエレメント領域101の内部構造などは各種に構築可能である。
例えば、図4では1個のエレメント領域101に2個のデータパス回路129が形成されている構造を例示しているが、これを1個や3個以上とすることも可能であり、複数のデータパス回路129が別個のコンテキストに存在することも可能である。
さらに、上記形態では1個のエレメント領域101に状態管理回路105が1個ずつ存在することを例示したが、1個のエレメント領域101に複数の状態管理回路105が存在することも可能である。
また、上記形態ではエレメント領域101の複数のデータパス回路129が所定の動作状態のときに転送データやバリッド信号などを並列に出力する場合、その複数の転送データなどを論理回路141で選択することを例示した。しかし、エレメント領域101の一つの動作状態に対して複数のデータパス回路129の1個からしか転送データなどが出力されないならば、図7(a)に示すように、転送データなどを選択する論理回路などは省略することができる。
さらに、上記形態ではエレメント領域101が所定の動作状態のときに発生させる転送IDとして状態管理回路105の状態IDを利用することを例示したが、これでは転送ルートの個数の上限が動作状態の個数となり、一つの動作状態に複数の転送ルートを対応させることもできない。
そこで、これらが問題となる場合には、図7(b)に示すように、データパス回路129で専用の転送IDをデータ生成することや、データパス回路129で状態IDに識別ビットを追加して転送IDをデータ生成することが好適である(図示せず)。
また、状態IDを転送IDとして利用することが適切ではない場合、図7(c)に示すように、ID変換回路143などで状態IDを転送IDに変換することが好適である。なお、このようなID変換回路143は、専用のハードウェアで形成することも可能であり、データパス回路としてプロセッサエレメント106やスイッチエレメント108で構築することも可能である。
さらに、上記形態では転送データに転送IDを外的に追加することを例示したが、このような転送データの一部として転送IDを内的に挿入することも可能である。このような場合、転送仲介回路による転送IDの変更は、転送データの一部または全部の書き換えとして実現することが可能である。
また、複数の転送データを一つの転送IDで転送するようなことも可能であり、その場合は、複数の転送データに転送IDを外的に追加することも、複数の転送データの一つに転送IDを内的に挿入することも可能である。
さらに、上記形態では説明を簡単とするため、動作状態の遷移とコンテキストの切り換えとが単純に一対一に対応している場合を例示したが、例えば、動作状態とコンテキストとが一対一に対応せず、動作状態が遷移してもコンテキストは維持される場合もある。また、動作状態を遷移させる回路がオブジェクトコードによりエレメント領域101などに構築された場合も、動作状態が遷移してもコンテキストは維持される。
また、上記形態ではイベントデータにより状態遷移やコンテキスト切換が流動的に実行されることを例示したが、例えば、状態遷移やコンテキスト切換の順番を事前に固定的に設定しておくようなことも可能である。
さらに、上記形態ではアレイ型プロセッサ100が1個の集積回路として形成されていることを想定したが、例えば、複数のエレメント領域101と複数の転送仲介回路102との各々を独立した集積回路として形成しておき、それを結線してアレイ型プロセッサ100を形成するようなことも可能である。
本発明の並列演算装置の実施の形態であるアレイ型プロセッサによるデータ転送を示す模式図である。 アレイ型プロセッサの物理構造を示す平面図である。 アレイ型プロセッサの要部の物理構造を示すブロック図である。 可変処理回路であるエレメント領域の各種信号の出力構造を示す模式図である。 エレメント領域の各種信号の入力構造を示す模式図である。 転送仲介回路の内部構造を示すブロック図である。 エレメント領域の各種信号の出力構造の変形例を示す模式図である。
符号の説明
100 並列演算装置であるアレイ型プロセッサ
101 可変処理回路であるエレメント領域
102 転送仲介回路
103 データ登録手段として機能する構成管理回路
105 転送付与手段としても機能する状態管理回路
106 データ処理回路であるプロセッサエレメント
108 配線切換回路であるスイッチエレメント
129 処理実行手段に相当するデータパス回路
131 データ受信ポート
132 データ送信ポート
133 経路記憶手段であるマップテーブル
136 データ登録手段の一部として機能するコンフィギュレーションコントローラ
137 転送制御手段に相当するポートアービタ

Claims (16)

  1. 複数の可変処理回路が複数の転送仲介回路とともに所定形状に配列されており、前記可変処理回路はオブジェクトコードに対応して可変自在に各種処理を各々実行し、前記転送仲介回路は前記可変処理回路の相互のデータ転送を仲介する並列演算装置であって、
    前記可変処理回路は、前記各種処理により任意に転送データの入力や出力を実行する処理実行手段と、前記転送仲介回路に出力する転送データに最終的な送信先の前記可変処理回路に対応して複数種類の転送ID(Identity)の一つを付与する転送付与手段と、を有しており、
    前記転送仲介回路は、前記転送データを前記転送IDとともに周囲の前記可変処理回路か前記転送仲介回路から個々に受信する複数のデータ受信ポートと、前記転送データを前記転送IDとともに周囲の前記可変処理回路か前記転送仲介回路に個々に送信する複数のデータ送信ポートと、複数の前記データ受信ポートと複数種類の前記転送IDとの組み合わせごとに複数の前記データ送信ポートと複数種類の前記転送IDとの組み合わせを可変自在にデータ記憶する経路記憶手段と、前記データ受信ポートで前記転送IDとともにデータ受信された前記転送データを前記経路記憶手段の記憶データに対応して次段の前記転送IDとともに所定の前記データ送信ポートに送信させる転送制御手段と、を有している並列演算装置。
  2. 複数の前記転送仲介回路の各々の前記経路記憶手段に複数の前記データ受信ポートと複数種類の前記転送IDとの組み合わせごとに複数の前記データ送信ポートと複数種類の前記転送IDとの組み合わせをデータ登録するデータ登録手段も有している請求項1に記載の並列演算装置。
  3. 前記可変処理回路の処理実行手段は、2n 個まで前記転送データを出力し、
    前記可変処理回路の転送付与手段は、前記転送データに2n 種類のnビットの前記転送IDの一つを付与する請求項1または2に記載の並列演算装置。
  4. 複数の前記可変処理回路は、各々が矩形に形成されていて行列形状に配列されており、
    複数の前記転送仲介回路は、複数の前記可変処理回路の各々に1個ずつ隣接されており、
    前記転送仲介回路は、行列方向に位置する周囲の4個の前記転送仲介回路と隣接する前記可変処理回路と個々に通信する5個の前記データ受信ポートと5個の前記データ送信ポートとを有しており、
    前記転送仲介回路の経路記憶手段は、5個の前記データ受信ポートと5個の前記データ送信ポートとを3ビットのポートIDで個々にデータ記憶する請求項1ないし3の何れか一項に記載の並列演算装置。
  5. 前記可変処理回路の処理実行手段は、任意ビットの処理データを複数の所定ビットの前記転送データに分割して出力する請求項1ないし4の何れか一項に記載の並列演算装置。
  6. 前記可変処理回路の処理実行手段は、複数段階の動作状態を動作サイクルごとに順次遷移させ、所定の動作状態のときに所定の前記転送IDが付与されている前記転送データを受け付ける請求項1ないし5の何れか一項に記載の並列演算装置。
  7. 前記可変処理回路は、個々にデータ設定される動作命令に対応してデータ処理を個々に実行する複数のデータ処理回路と、個々にデータ設定される動作命令に対応して複数の前記データ処理回路の接続関係を個々に切換制御する複数の配線切換回路と、が行列配置されている請求項1ないし6の何れか一項に記載の並列演算装置。
  8. 前記可変処理回路は、前記データ処理回路と前記配線切換回路との動作命令を順次切り換えて複数段階の動作状態を動作サイクルごとに順次遷移させる状態管理回路も有している請求項7に記載の並列演算装置。
  9. 前記可変処理回路は、所定の前記動作命令のときに複数の前記データ処理回路の少なくとも一部から前記転送データと前記転送IDとを出力する請求項7または8に記載の並列演算装置。
  10. 前記可変処理回路は、所定の前記動作状態のときに複数の前記データ処理回路の少なくとも一部から前記転送データを出力するとともに前記状態管理回路から前記動作状態の状態IDを前記転送IDとしてデータ出力する請求項8に記載の並列演算装置。
  11. オブジェクトコードに対応して処理動作を実行する演算処理回路を有しており、前記演算処理回路に処理データを入力して結果データを取得する演算処理装置であって、
    前記演算処理回路が請求項1ないし10の何れか一項に記載の並列演算装置からなる演算処理装置。
  12. オブジェクトコードに対応して処理動作を実行する演算処理回路を有しており、前記演算処理回路に処理データを入力して結果データを取得する半導体集積回路であって、
    前記演算処理回路が請求項1ないし10の何れか一項に記載の並列演算装置からなる半導体集積回路。
  13. 半導体集積回路で各種のデータ処理を実行するコンピュータ装置であって、
    請求項12に記載の半導体集積回路を有しているコンピュータ装置。
  14. 請求項1ないし10の何れか一項に記載の並列演算装置のソースコードからオブジェクトコードを生成するデータ処理方法であって、
    前記並列演算装置の物理構造と物理特性とに対応した制約条件を事前にデータ登録しておき、一連の前記ソースコードを言語解析してDFG(Data Flow Graph)をデータ生成し、このDFGから所定の前記制約条件により並列演算装置の順次遷移する複数段階の動作状態をスケジューリングしたCDFG(Control DFG)をデータ生成し、このCDFGから所定の前記制約条件により前記動作状態のRTL(Register Transfer Level)記述をデータ生成し、このRTL記述から所定の前記制約条件により前記動作状態ごとのネットリストをデータ生成し、このネットリストに対応して前記RTL記述を対応する前記オブジェクトコードにデータ変換するとともに前記動作状態ごとにデータ生成された前記ネットリストを前記オブジェクトコードにデータ変換するデータ処理方法において、
    前記ソースコードから前記ネットリストをデータ生成するときに複数のタスクごとに転送データの転送関係を転送情報としてデータ生成し、
    複数の前記タスクの転送情報をデータ照合して合計の転送コストが最少となる転送ルートとタスクの配置をデータ生成し、
    このデータ生成された転送ルートのテーブル情報を前記ネットリストに統合させるデータ処理方法。
  15. 請求項1ないし10の何れか一項に記載の並列演算装置のソースコードからオブジェクトコードを生成するデータ処理装置であって、
    前記並列演算装置の物理構造と物理特性とに対応した制約条件を事前にデータ登録しておき、一連の前記ソースコードを言語解析してDFGをデータ生成し、このDFGから所定の前記制約条件により並列演算装置の順次遷移する複数段階の動作状態をスケジューリングしたCDFGをデータ生成し、このCDFGから所定の前記制約条件により前記動作状態のRTL記述をデータ生成し、このRTL記述から所定の前記制約条件により前記動作状態ごとのネットリストをデータ生成し、このネットリストに対応して前記RTL記述を対応する前記オブジェクトコードにデータ変換するとともに前記動作状態ごとにデータ生成された前記ネットリストを前記オブジェクトコードにデータ変換するデータ処理装置において、
    前記ソースコードから前記ネットリストをデータ生成するときに複数のタスクごとに転送データの転送関係を転送情報としてデータ生成する転送生成手段と、
    複数の前記タスクの転送情報をデータ照合して合計の転送コストが最少となる転送ルートとタスクの配置をデータ生成する配置生成手段と、
    このデータ生成された転送ルートのテーブル情報を前記ネットリストに統合させるデータ統合手段と、
    を有しているデータ処理装置。
  16. 請求項1ないし10の何れか一項に記載の並列演算装置のオブジェクトコードであって、
    請求項14に記載のデータ処理方法により合計の転送コストが最少となる転送ルートとタスクの配置に対応してデータ生成されている、
    並列演算装置のオブジェクトコード。
JP2003304755A 2003-08-28 2003-08-28 並列演算装置 Pending JP2005078177A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003304755A JP2005078177A (ja) 2003-08-28 2003-08-28 並列演算装置
US10/924,373 US20050050233A1 (en) 2003-08-28 2004-08-24 Parallel processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003304755A JP2005078177A (ja) 2003-08-28 2003-08-28 並列演算装置

Publications (1)

Publication Number Publication Date
JP2005078177A true JP2005078177A (ja) 2005-03-24

Family

ID=34214036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003304755A Pending JP2005078177A (ja) 2003-08-28 2003-08-28 並列演算装置

Country Status (2)

Country Link
US (1) US20050050233A1 (ja)
JP (1) JP2005078177A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021064270A (ja) * 2019-10-16 2021-04-22 ルネサスエレクトロニクス株式会社 半導体装置およびその制御方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107852379A (zh) * 2015-05-22 2018-03-27 格雷研究有限公司 用于现场可编程门阵列的定向二维路由器和互连网络、以及所述路由器和网络的其他电路和应用
US10116557B2 (en) 2015-05-22 2018-10-30 Gray Research LLC Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network
US10587534B2 (en) 2017-04-04 2020-03-10 Gray Research LLC Composing cores and FPGAS at massive scale with directional, two dimensional routers and interconnection networks

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2093355A1 (en) * 1990-10-03 1992-04-04 David C. Douglas Parallel computer system
US5960209A (en) * 1996-03-11 1999-09-28 Mitel Corporation Scaleable digital signal processor with parallel architecture
US6000024A (en) * 1997-10-15 1999-12-07 Fifth Generation Computer Corporation Parallel computing system
JP3576837B2 (ja) * 1998-10-30 2004-10-13 日本電気株式会社 プログラマブルロジックlsiの基本セル及び基本セル2次元アレイ
GB2359162B (en) * 1998-11-10 2003-09-10 Fujitsu Ltd Parallel processor system
JP3444216B2 (ja) * 1999-01-28 2003-09-08 日本電気株式会社 プログラマブルデバイス
JP3269526B2 (ja) * 1999-02-09 2002-03-25 日本電気株式会社 プログラマブルロジックlsi
JP3616518B2 (ja) * 1999-02-10 2005-02-02 日本電気株式会社 プログラマブルデバイス
FR2795840B1 (fr) * 1999-07-02 2001-08-31 Commissariat Energie Atomique Reseau de processeurs paralleles avec tolerance aux fautes de ces processeurs, et procede de reconfiguration applicable a un tel reseau
KR100349671B1 (ko) * 1999-12-13 2002-08-22 한국전자통신연구원 3-링크 노드 상호연결 장치 및 그 방법과 그를 이용한 병렬처리 시스템
US20040158663A1 (en) * 2000-12-21 2004-08-12 Nir Peleg Interconnect topology for a scalable distributed computer system
JP2002259352A (ja) * 2001-03-01 2002-09-13 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサシステム装置
US6957318B2 (en) * 2001-08-17 2005-10-18 Sun Microsystems, Inc. Method and apparatus for controlling a massively parallel processing environment
JP3528922B2 (ja) * 2001-08-31 2004-05-24 日本電気株式会社 アレイ型プロセッサ、データ処理システム
JP3921367B2 (ja) * 2001-09-26 2007-05-30 日本電気株式会社 データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021064270A (ja) * 2019-10-16 2021-04-22 ルネサスエレクトロニクス株式会社 半導体装置およびその制御方法
JP7346235B2 (ja) 2019-10-16 2023-09-19 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
US20050050233A1 (en) 2005-03-03

Similar Documents

Publication Publication Date Title
US11677662B2 (en) FPGA-efficient directional two-dimensional router
EP3298740B1 (en) Directional two-dimensional router and interconnection network for field programmable gate arrays
US20170220499A1 (en) Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications
Mukherjee et al. The Alpha 21364 network architecture
US9590629B2 (en) Logical elements with switchable connections
US9075623B2 (en) External auxiliary execution unit interface for format conversion of instruction from issue unit to off-chip auxiliary execution unit
JP4971998B2 (ja) 半導体集積回路、プログラム変換装置及びマッピング装置
US20060245225A1 (en) Reconfigurable elements
EP1665065B1 (en) Integrated data processing circuit with a plurality of programmable processors
Samman et al. Adaptive and deadlock-free tree-based multicast routing for networks-on-chip
Ahmadinia et al. A practical approach for circuit routing on dynamic reconfigurable devices
JP4907521B2 (ja) 再構成可能な半導体集積回路及びその処理割り当て方法
US20180060034A1 (en) Communication between dataflow processing units and memories
US20040111590A1 (en) Self-configuring processing element
KR102539571B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
JP3987784B2 (ja) アレイ型プロセッサ
US20180212894A1 (en) Fork transfer of data between multiple agents within a reconfigurable fabric
JP2005078177A (ja) 並列演算装置
JPS5858672A (ja) 再構成可能集積回路
Koch et al. Obstacle-free two-dimensional online-routing for run-time reconfigurable FPGA-based systems
JP2010033336A (ja) 信号処理装置及び信号処理方法
JP2009043094A (ja) 情報処理システム、プログラマブル論理回路装置、配線方法、論理回路作成方法、及び、プログラム
Duvvuri Design, Development, and Simulation/Experimental Validation of a Crossbar Interconnection Network for a Single–Chip Shared Memory Multiprocessor Architecture
Amaresh et al. Performance Analysis of Data Communication Using Hybrid NoC for Low Latency and High Throughput on FPGA
JP3987805B2 (ja) アレイ型プロセッサ

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050120

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050120

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060202