JP4152319B2 - データ処理システムおよびその制御方法 - Google Patents
データ処理システムおよびその制御方法 Download PDFInfo
- Publication number
- JP4152319B2 JP4152319B2 JP2003527588A JP2003527588A JP4152319B2 JP 4152319 B2 JP4152319 B2 JP 4152319B2 JP 2003527588 A JP2003527588 A JP 2003527588A JP 2003527588 A JP2003527588 A JP 2003527588A JP 4152319 B2 JP4152319 B2 JP 4152319B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- setting
- processing
- transfer means
- processing unit
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 328
- 238000000034 method Methods 0.000 title claims description 71
- 238000012546 transfer Methods 0.000 claims description 82
- 230000006870 function Effects 0.000 claims description 67
- 230000008569 process Effects 0.000 claims description 25
- 239000004065 semiconductor Substances 0.000 claims description 4
- 239000000758 substrate Substances 0.000 claims description 4
- 208000033748 Device issues Diseases 0.000 claims 1
- 239000011159 matrix material Substances 0.000 description 49
- 230000008859 change Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000000873 masking effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 101100179596 Caenorhabditis elegans ins-3 gene Proteins 0.000 description 1
- 101150089655 Ins2 gene Proteins 0.000 description 1
- 239000006096 absorbing agent Substances 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
- Advance Control (AREA)
Description
本発明は、複数の処理ユニットを接続してデータフローを形成するデータ処理システムに関するものである。
背景技術
複数の処理エレメントをネットワークで接続して処理を行う技術が米国特許第6108760号に開示されている。しかしながら、処理エレメントに新しい機能を設定しようとすると、ネットワークにより処理エレメントにデータを供給する必要があるので、処理エレメントにより形成されるデータパスあるいはデータフローを一時的に開放し、ネットワークを処理エレメントに対して設定用のデータを供給するために利用可能にする必要がある。したがって、処理エレメントに対して外から設定用のデータを供給して異なる機能のデータパスを構成するために時間がかかり、その間はデータフローが形成されず、稼動しないので処理速度は低下する。短時間に異なる機能のデータパスに再構成しようとすると、事前にすべての設定データを処理エレメント内に予め記憶させておく必要があるので、膨大なメモリ容量が必要となり現実的であるとは言えない。
米国特許第6108760号には、さらに、個々の処理エレメントに対し、独立に、物理的な識別番号と、仮想的な識別番号とを付し、いずれかの識別番号の一部をマスクすることにより、ある機能を実現するための処理エレメントの物理的な位置により決定される任意の形状のグループを定義し、その単位で設定用のデータを供給したり、制御データを供給することが記載されている。しかしながら、データフローを再構成する際に、異なる機能を実現する処理エレメントが含まれる形状は大きく変化する可能性が高い。したがって、一部をマスクすることによりそれぞれの機能に対応した形状を表現できるような独立した識別番号を各々の処理エレメントに付与しようとすると識別番号は冗長となり、その識別番号を見出し、識別番号を利用したプログラミングを行うには膨大な時間がかかる。したがって、高コストの要因になり、さらに、システムのフレキシビリティーを減ずる要因ともなる。
また、物理的な位置により決定される任意の形状のグループに含まれる処理エレメントに対しデータを供給する方法は、配置が集中した複数の処理エレメントに対して同一の設定用のデータを供給する場合には、時間の短縮になる可能性がある。しかしながら、個々の処理エレメントの機能が異なっている場合には、結局、データフローを形成する各々の処理エレメントあるいは処理ユニットに対して個別に設定用のデータを供給する必要があり、外側から設定用のデータを短時間でロードさせることはできず、処理速度の改善という根本的な問題は解決されていない。
さらに、ネットワークを介して各々の処理エレメントに対して個別に設定用のデータを供給するためには、それぞれの処理エレメントを識別する必要がある。このため、それぞれの処理エレメントには独立した識別番号を付す必要があり、それらの独立した識別番号を処理することにより任意の形状のグループも形成しようとすると複雑な体系の識別番号が必要となり、それを認識する制御方法およびハードウェアも複雑なものとなる。したがって、経済的であるとは言えず、処理速度も向上し難い。
そこで、本発明においては、複数の処理エレメントまたは処理ユニットがネットワークで接続されるデータ処理システムにおいて、設定用のデータを各処理ユニットに供給すると共に、動的に、あるいはクロック単位で、異なる機能のデータパスあるいはデータフローを設定することが可能なデータ処理システムを提供することを目的としている。さらに、処理ユニットに対して複雑な体系の仮想アドレスを割り当ててマスクするなどの複雑な処理をする必要がなく、簡単な方法で、設定データを供給したり制御情報を供給する処理ユニットを適切に識別することができ、プログラミングの自由度も高いデータ処理システムを提供することを目的としている。
発明の開示
このため、本発明においては、複数の処理ユニットを有するデータ処理システムであって、第1、第2および第3のデータ転送手段を有するデータ処理システムを提供する。第1のデータ転送手段は、複数の処理ユニットをネットワーク状に接続して第1のデータの受け渡しを行い、複数の処理ユニットのうち、2以上の処理ユニットを接続することにより、再構成可能な少なくとも1つのデータフローを構成する。第2のデータ転送手段は、複数の処理ユニットに対し並列に第2のデータを供給する。そして、第3のデータ転送手段は、複数の処理ユニットの各々に対して設定データを供給する。この設定データは、第1のデータ転送手段を介して接続される他の処理ユニットを直接または間接的に変更し、および/または、当該処理ユニットの処理内容を変更することにより、異なる機能のデータフローを設定するデータである。
このデータ処理システムであれば、ネットワーク状の第1のデータ転送手段あるいはブロードキャスト型の第2のデータ転送手段ではなく、各々の処理ユニットに対して個別にデータを供給できる専用バス型の第3のデータ転送手段により設定データを供給することができる。したがって、個々の処理ユニットのアドレスを指定して、順番に設定データを転送しなくても良いので、短時間に、たとえば、1クロックで複数の処理ユニットに対して設定データを供給できる。さらに、設定データを配布するために各々の処理ユニットに対してアドレスを設定する必要がないので、仮想アドレスは不要であり、マスキングなどの面倒な処理を行わなくても、データフローを単純に示す識別情報で、そのデータフローに属する処理ユニットを指定することが可能となる。
本発明におけるデータフローは、ネットワークとなる第1のデータ転送手段で接続可能な全処理ユニットあるいは一部の処理ユニット(以降では機器あるいはエレメントと称することもある)を占有して実現される「機能」と表現することも可能なものであり、その機能の内部でデータを受け渡し、処理し、その機能の末端ではネットワークの外部からデータを受け取り、ネットワークの外へデータを渡す。そして、データフローは、自律的もしくは他律的に制御され、例えば、データの出口が詰まったら、それ全体の動作が一時停止されるような制御が行われる。また、データフロー同士の間では、データフローの内部で積極的な情報のやりとりは行われず、基本的には、互いに独立した存在として機能する。
本発明のデータ処理装置を制御する際は、第3のデータ転送手段を介して、設定データにより設定されるデータフローを示す識別情報を設定データと共に供給する第1の工程により、データフローを構成する処理ユニットに、そのデータフローを構成していることを示す識別情報を付すことができる。したがって、第2のデータ転送手段を介して、識別情報を第2のデータと共に供給すると、第3のデータ転送手段を介して供給される、または供給された識別情報に基づき第2のデータを選択して処理する第2の工程により、複数の処理ユニットに対しデータフローの単位で第2のデータを選択して処理させることが可能となる。このために、処理ユニットは、第3のデータ転送手段を介して供給される識別情報に基づき第2のデータを選択して処理する手段を備えていることが望ましい。
第2のデータを選択するために用いられる識別情報は、第2のデータが供給されるタイミングで、第3のデータ転送手段により供給されている識別情報であっても良い。この場合は、たとえば、処理ユニットにロードする設定データを、その設定データと共に供給されている識別情報、すなわち、次に処理ユニットが属するデータフローの識別情報により制御できる。
一方、第2の工程では、第3のデータ転送手段により供給された識別情報に基づき第2のデータを選択することも可能である。供給された識別情報を記憶するためには、処理ユニットに識別情報を記憶する手段、すなわちメモリを設けることが望ましい。この場合は、処理ユニットにロードする設定データを、それ以前に設定データと共に処理ユニットに記憶されている識別情報、すなわち、処理ユニットが現在属しているデータフローの識別情報により制御できる。
本発明において、第2のデータとして重要なものは、処理ユニットの動作を制御する制御情報(コマンド)である。特に、制御情報として、設定データをロードする第1のコマンドを第2のデータ伝達手段を介して供給することにより複数の処理ユニットのいずれかに対し、設定データを同時に適用すると共に、データフローの識別情報を適用することができる。これにより、処理ユニットは、自己が属するデータフローを識別情報により認識し、以降では、識別情報が付された制御情報に基づき動作することができる。識別情報は、個々の処理ユニットを特定可能な情報である必要はなく、むしろデータフローを識別できるだけの簡単な情報でよく、小さなデータで数多くのデータフローを識別することが可能となる。
また、第2のデータ転送手段を介して設定データをロードする制御情報が供給されることにより、複数の処理ユニットに設定データが同時に適用され、データフローの構成あるいは機能を瞬時に切り替えることができる。したがって、特定の1または複数のデータフローを構成する処理ユニットに、動的に新しい設定データをロードさせて新しいデータフローを構成させることができる。
したがって、本発明のデータ処理システムを制御するプログラムまたはプログラム製品は、第3のデータ転送手段を介して設定データと、その設定データにより設定されるデータフローを示す識別情報とを供給し、第2のデータ転送手段を介して、設定データをロードする制御情報を、少なくとも1つの識別情報を付して供給する処理を実行する命令を有している。このプログラムまたはプログラム製品は、適当な記録媒体に記録して提供できるし、あるいは、コンピュータネットワークなどの通信手段を介して提供することも可能である。
設定データは、データフローを構成するための様々な情報を含む。たとえば、第1のデータ転送手段が接続相手の処理ユニットのアドレスを指定することにより第1のデータを転送するネットワークであれば、接続相手先のアドレスを含む。あるいは、第1のデータ転送手段を構成する配線を選択したり、切り替えることにより接続先の処理ユニットを指定できるのであれば、配線の選択あるいは接続情報を含む。さらに、処理ユニットが自己の処理内容を変更できるのであれば、データパスを成立させるための処理内容を示す情報も含む。自己の処理内容を変更可能な処理ユニットとしてはプログラミング可能なプロセッサがある。また、処理ユニットに、複数の選択可能な内部データパスを設け、設定データにより内部データパスを選択できるようにしても良い。
汎用型のプロセッサはフレキシブルな処理が可能であるが、その分、処理速度が遅くなるか、処理速度を向上しようとすると大型で高コストになる。それに対して、複数の内部データパスを備えた処理ユニットはコンパクトで低コストであり、高速処理が可能であり、さらにある程度のフレキシビリティーがある。したがって、内部データパスの種類の異なる複数の処理ユニットを配置し、それらをネットワーク型の第1のデータ転送手段により接続することにより、高速に様々な処理が可能なデータ処理システムを構築することが可能である。そして、本発明を適用することにより動的にデータパスの構成あるいは機能を変更することが可能となる。
本発明のデータ処理システムにおいて、第2のデータ転送手段を介して識別情報と共に供給される第2のデータは、複数の処理ユニットに対して特定のデータフローを指定して供給する必要のある同じデータであれば種類を問わない。第2のデータとして重要なものの1つは、処理ユニットの動作を制御する制御情報であり、設定データをロードする第1のコマンドもその1つである。さらに、制御情報を、データフローを示す識別情報を付して第2のデータ転送手段を介して供給することにより、複数の処理ユニットをデータフローの単位で制御できる。したがって、データ処理システムは、第2のデータ転送手段を介して、データフローを示す識別情報と、処理ユニットの動作を制御する制御情報とを供給し、処理ユニットは、自己が属する識別情報の制御情報に基づき動作する手段を備えていることが望ましい。また、データ処理システムの制御方法は、第2のデータ転送手段を介して、データフローを示す識別情報と、処理ユニットの動作を制御する制御情報とが供給されると、処理ユニットは、自己が属する識別情報の制御情報に基づき動作する工程を備えていることが望ましい。さらに、このデータ処理システムを制御するプログラム(プログラム製品)は、制御コマンドなどの制御情報を、少なくとも1つのデータフローを示す識別情報を付して第2のデータ転送手段を介して供給する処理を実行できることが望ましい。
ネットワークで接続され所定の演算処理を実行する機能を持ったデータパスまたはデータフローを構成する複数の処理ユニットに対して制御情報を並列に供給することにより、複数の処理ユニットが分散している場合でも、それらにより構成されるデータフローを精度良く、たとえば1クロックで制御することが可能である。したがって、データフローを構成する複数の処理ユニットを同期して制御したり、制御用のプロセッサにより集中管理したりすることが容易となる。そして、データフローを識別する情報は、上述したように、個々の処理ユニットを特定可能な情報である必要はないので、簡単なデータとなり、その処理のために必要なハードウェアも小さくなる。したがって、経済的で処理速度の速いデータ処理システムを実現でき、その中で、処理ユニットが備えている複数の機能を1クロックで切り換えて異なる機能のデータフローを構成するような処理も容易に実現できる。
制御情報は、設定データをロードするコマンド(第1のコマンド)に限らず、たとえば、処理ユニットの開始または停止を指示するスタートコマンドまたはフリーズコマンド(ストップコマンド)(第2のコマンド)がある。スタートコマンドにより設定データをロードするようにしても良い。処理ユニットの停止を指示するフリーズコマンドを第2のデータ転送手段を介して識別情報と共に供給することにより、その識別情報で指示されるデータフローを構成する処理ユニットの処理を同期して停止することができる。構成していたデータフローの処理の終了を待たずに、他の機能のデータフローにより処理を開始する必要があり、処理ユニットが不足しているときに、処理ユニットを開放してデータフローを再構築するのに有効である。
さらに、制御情報としては、処理ユニットが動作を停止したときの状態をメモリに格納するストアコマンド(第3のコマンド)、または、処理ユニットが動作を開始する前に、メモリに格納された状態をロードするロードコマンド(第4のコマンド)を供給することも有効である。再構築されたデータフローの処理が終了して、元のデータフローを構成したときに、停止した状態を再現できる。このため、限られた処理ユニットを利用して異なるデータフローを動的に再構築してもデータ処理システムの信頼性を保持できる。
このようなコマンドあるいは制御情報に対応した処理を行えるように、処理ユニットは、第2のデータにより設定データをロードする手段、第2のデータにより動作を開始または停止する手段、第2のデータにより動作を停止すると共に当該処理ユニットの内部情報をメモリに格納し、メモリに格納された内部情報をロードした後に動作を開始する退避手段を備えていることが望ましい。これらの手段は、ロジック回路あるいはマイクロプログラムなどにより実現される。さらに、処理ユニットの状態と共に識別情報をメモリに格納することにより、メモリに格納された識別情報に基づき、動作を開始する制御情報を選択して、データフローを再構築することも可能である。
これらの処理ユニットは距離的に離れていても良い。そのようなデータ処理システムでは、処理ユニットはインターネットなどのコンピュータネットワークを第1のデータ転送手段として使用し、無線あるいは有線による放送する手段を第2のデータ転送手段として使用し、電話網などの個別通信可能な手段を第3のデータ転送手段として使用することになる。一方、処理ユニットを半導体基板などの回路基板に配置して1つのプロセッサとして提供することも可能である。この場合は、第1のデータ転送手段は、複数の処理ユニットを接続する回路網であり、第2のデータ転送手段は、第2のデータの供給源と複数の処理ユニットを接続する回路であり、第3のデータ転送手段は、設定データを処理ユニット毎に記憶した記憶手段と複数の処理ユニットを接続する回路となる。そして、第2のデータとして制御情報を供給する場合は、供給源は制御装置となる。
異なる設定データを第3のデータ転送手段を介して処理ユニットに供給する方法はいくつかある。第1の方法は、処理ユニット毎に複数の設定データを記憶可能なネットワーク設定メモリを用意し、制御方法の第1の工程で、制御装置の制御により、ネットワーク設定メモリに記憶された複数の設定データの中から、複数の処理ユニットの少なくともいずれかに同時に設定される設定データを選択して供給し、第2の工程ではロードするコマンドを供給する方法である。第3のデータ転送手段を介して供給される設定データは選択されたものに限定できるので、第3のデータ転送手段のバス幅は小さくて良いが、制御装置によりネットワーク設定メモリも制御する必要がある。
第2の方法は、第1の工程では、ネットワーク設定メモリに記憶された複数の設定データを供給し、第2の工程で、複数の設定データから1つの設定データを選択してロードするコマンドを供給する方法である。この方法であると、制御装置によりネットワーク設定メモリを制御する必要はないが、処理ユニット側で設定データを選択できるように第3のデータ転送手段のバス幅を大きくする必要がある。第3のデータ転送手段のバス幅が狭い場合でも、処理ユニット側に十分なメモリ容量があり、転送する時間の余裕があるのであれば、事前に複数の設定データと識別情報の組み合わせを処理ユニットの側に転送しておき、第2の工程で供給されるロードするコマンドで処理ユニットの機能を設定するということも可能である。
第3の方法は、第1の工程では、ネットワーク設定メモリに記憶された設定データを供給し、第1の工程の前に、ネットワーク設定メモリの設定データを制御装置などにより書き換える工程を設ける方法である。ネットワーク設定メモリの記憶容量を小さくすることができるが、事前にネットワーク設定メモリに設定データをロードする処理が必要となる。これらの第1から第3の方法は、完全に異なるものではなく、適宜、混ぜ合わせて利用することも可能である。たとえば、膨大な設定データを記憶したROM、RAMあるいは記録ディスクなどの外部メモリから、適当な量の設定データをデータ処理システムの適当なメモリにいったんロードし、その中から選択された設定データを処理ユニットに供給するようにしても良い。さらに、第3のデータ転送手段のバス幅を2つあるいは限られた設定データが処理ユニット側で選択できるようにして、頻繁にデータパスを構築しなおす必要のある設定データは、第2のデータ転送手段からのコマンドだけで選択できるようにするという方法もある。
発明を実施するための最良の形態
以下に図面を参照しながら、本発明についてさらに説明する。図1に、本発明に係るシステムLSI10の概略構成を示してある。このLSI10は、プログラムなどによって与えられる命令セットに基づきエラー処理を含めた汎用的な処理を行う汎用な構成のプロセッサ部11と、マトリクス状に配置された演算あるいは論理エレメントにより特定のアプリケーションのデータ処理に適合したデータフローあるいは擬似データフローが動的に形成されるAAP(Adoptive Application Processor)ユニット20と、このAAPユニット20からの割り込み処理を制御する割り込み制御部12と、AAPユニット20に作動用のクロック信号を供給するクロック発生部13と、このLSI10で提供可能な演算回路のフレキシビリティーをさらに向上するためのFPGA部14と、外部に対するデータの入出力を制御するバス制御部15とを備えたデータ処理装置である。AAPユニット20は、データ処理に適合したデータフローあるいは擬似データフローが動的に形成されるリコンフィグラブルあるいはコンフィグラブルなユニットである。
AAPユニット20とFPGA部14との間はデータバス17により接続されており、AAPユニット20からFPGA部14にデータを供給して処理を行い、その結果をAAPユニット20に返せるようになっている。また、AAPユニット20は、入出力バス18によってバス制御ユニット15と接続されており、LSI10の外部のデータバスとの間でデータを交換できるようになっている。したがって、AAPユニット20は、外部のDRAM2やその他のデバイスからデータを入力でき、そのデータをAAPユニット20で処理した結果を再び外部のデバイスに出力できる。基本プロセッサ部(プロセッサユニットあるいはプロセッサ)11もデータバス11aを介してバス制御ユニット15を介して外部のデバイスとデータを入出力することが可能である。
プロセッサ11とAAPユニット20は、プロセッサ11とAAPユニット20との間でデータを交換可能なデータバス21と、プロセッサ11からAAPユニット20の構成および動作を制御するための命令を供給する命令バス52とにより接続されている。また、AAPユニット20から割り込み制御部12に信号線19を介して割り込み信号が供給され、AAPユニット20における処理が終了したり、処理中にエラーが発生したときはAAPユニット20の状態をプロセッサ11にフィードバックできるようになっている。
図2にAAPユニット20の概要を示してある。本例のAAPユニット20は、複数の算術および/または論理演算を行う処理ユニット(以降ではエレメント)30がマトリクス状に配置されたマトリクス部23と、そのマトリクス部23に対し、ネットワークを形成する設定データ57を供給するネットワーク設定メモリ24と、ネットワークの状態を一時的に格納可能な退避用メモリ25とを備えている。
マトリクス部23は、複数の処理ユニット、すなわち、エレメント30をそなえており、エレメント30が縦方向と横方向にアレイ状あるいはマトリクス状に配置されている。マトリクス部30は、これらのエレメント30をネットワーク状に接続する第1の配線群51aおよび51bを備えており、これらの配線群51aおよび51bが第1のデータ転送手段としてエレメント30の間に配置されている。配線群51aは、横方向に延びた行配線群であり、配線群51bは、縦方向に延びた列配線群である。列配線群51bは、さらに、列方向に並んだ演算ユニット30の左右に分かれて配置された配線群51bxおよび51byが1対の構成となっており、これら配線群51bxおよび51byを総称して配線群51bと呼び、実際には、配線群51bxおよび51byからデータが各々のエレメント30に供給される。行配線群51aおよび列配線群51bとの交点にはスイッチングユニット51cが配置されており、行配線群51aの任意のチャンネルを、列配線群51bの任意のチャンネルに切り替えて接続できる。各々のスイッチングユニット51cは、設定データを記憶するコンフィグレイションRAMを備えており、基本的には、以下において説明するエレメント30と同様に設定データを受信し、プロセッサ部11から供給されるコマンドにより制御される。
このため、本例のマトリクス部23においては、複数のエレメント30の全部あるいは一部を配線群51aおよび51bにより接続し、物理的に離れたエレメント30にもクロックを消費せずにデータ(第1のデータ)をルーティングできる。したがって、複数のエレメント30を用いて任意の処理を行う1つまたは複数のデータフローを任意のタイミングで動的に構成し、それらを任意のタイミングで動的に変更することができる。
マトリクス部23は、さらに、プロセッサ部11からの制御信号(コマンド)55を各々のエレメント30に供給する第2の配線群52を備えている。したがって、本例では、配線群52が第2のデータ転送手段となる。この配線群52は、各エレメント30に対し、制御装置であるプロセッサ部11からの制御データ(第2のデータ)55を並列に送信できるものである。このため、第2の配線群52は、プロセッサ部11からの制御データ55をマトリクス部23の内部のエレメント30にブロードキャストする機能を有する。この際、本例のデータ処理装置10においては、プロセッサ部11は、制御データ55にデータフローを識別する情報であるデータフローID(以降ではDFID)56を付加して送信する。
また、マトリクス部23は、ネットワーク設定メモリ24と各々のエレメント30を接続し、設定データを供給する第3の配線群53を備えている。したがって、本例では、第3の配線群53が第3のデータ転送手段となる。ネットワーク設定用メモリ24としては2ポートRAMが使用されており、プロセッサ部11に接続される第1のポート24aと、マトリクス部23に接続される第2のポート24bとを備えている。プロセッサ部11からは第1のポート24aにより、通常のRAMなどのメモリとして制御できる。一方、第2のポート24bには第3の配線群53が接続されているので、ネットワーク設定メモリ24とマトリクス部23のエレメント30のそれぞれと専用に接続されたデータバスが形成されている。したがって、ネットワークメモリ24は全体として広大なバス幅を有するメモリとなっている。
図3に拡大して示すように、ネットワーク設定メモリ24の1つのバンク24.1には、各々のエレメント30に対応するエリア28が設けられている。たとえば、0行0列のエレメント30に対応するエリア(0,0)、1行0列のエレメント30に対応するエリア(1,0)などがある。エリア28は物理的に規定されていても良いし、メモリ内のアドレスで規定されていても良い。そして、各々のエリア28に、DFID58と、設定データ57とが記憶されている。このように各々のエレメント毎に記憶されたDFID58と設定データ57との組み合わせが、第3の配線群53を介して、各エレメント30に個別に供給される。
設定メモリ24は、複数のバンク24.1〜24.nを備えており、それぞれのバンク24.1〜24.nには異なる設定番号(設定No)29が付され、異なる設定データ57が記憶されている。したがって、マトリクス部23の制御装置であるプロセッサ部11から設定番号29が指定されると、その設定番号29に対応するDFID58と設定データ57とが各々のエレメント30に供給される。そして、第2の配線群52から供給されているDFID56と制御データ55により、複数のエレメント30において、エレメント毎に個別に用意され、供給された設定データ57が同時に選択されて利用される。
ネットワーク設定メモリ24の内容は、プロセッサ11の制御によりDRAM2などの外部メモリからロードして変更または更新することができる。設定メモリ24に格納可能な設定データ57の数が多ければ、設定メモリ24を更新する頻度は少なくて済み、それにかかるオーバーヘッドな処理時間を省くことができる。一方、設定メモリ24に格納可能な設定データ57の数が少なければ、設定メモリ24を更新することにより、エレメント30に供給する設定データ57の内容を制御することができる。
マトリクス部23は、さらに、退避用メモリ25と各々のエレメント30を接続し、各エレメント30の状態を退避用メモリ25に入出力する第4の配線群54を備えている。本例の退避用メモリ25は、第4の配線群54によりマトリクス部23のエレメント30のそれぞれと専用に接続されている。したがって、バス幅の広いデータバスを形成できるメモリが採用されている。したがって、各々のエレメント30の状態を1クロックまたは非常に少ないクロックでストアおよびロードできる。一方、各々のエレメント30の状態のストアおよびロードに数クロックを割けるのであれば、中継用のセレクタを設置することによりバス幅の狭いメモリを用いることができる。
マトリクス部23に配置されている各エレメント30は、1組の列配線群51bxおよび51byのそれぞれから入力データを選択するための1組のセレクタ31と、選択された入力データdixおよびdiyに特定の算術および/または論理演算処理を施し、出力データdoとして行配線群51aに出力する内部データパス部32を備えている。なお、以降では、様々な機能を備えた内部データパス部32を示すが、それらを総称して内部データパス部32と称する。本例のマトリクス部23には、ほぼ行単位で異なる処理を行うための内部データパス部32を備えたエレメント30が並んで配置されている。さらに、これらの配線群51aおよび51bには、キャリー信号を伝送する配線も用意されている。キャリー信号は、桁上げ用の信号や真偽を示す信号として使用することが可能であり、本例のマトリクス部23では、各エレメント30において算術演算および論理演算を制御したり、結果を他のエレメント30に伝達するためなどに利用される。
たとえば、図面上部の第1行目に配列されたエレメント30は、バス制御部15の入力バッファからのデータを受信する処理に適した構成となっている。現状のマトリクス部23に配置されたロード用のデータパス部LDは、ロードバス18からデータを受信して、行配線群51aに出力する。
第2行目および第3行目に配置されたエレメント30は、外部RAM2からデータを読み込むためのエレメントであり、データをロードするために必要なアドレスを発生するのに適した内部データパス部32aを備えている。
図4は、データパス部32aの一例である。このデータパス部32aは、カウンタなどからなるアドレス発生回路38を備えており、アドレスが出力信号doとして出力される。この出力信号doは、行配線群51aおよび列配線群51bを介して、そのまま、あるいは、他のエレメント30によって処理された後に入力信号dixあるいはdiyとしてデータパス部32aに供給される。供給されたアドレスは、セレクタSELで選択されてフリップフロップFFを介してマトリクス部23からデータ入力用のアドレスとして出力される。
エレメント30は、内部データパス部32aを制御する制御部60を備えており、その制御部60が第3の配線群53を介してロードした設定データ57に基づき内部データパス部32aの機能を設定する。アドレスを発生する内部データパス部32aでは、アドレス発生回路38の初期値や固定値、セレクタSELの選択状態などが設定データ57によりセットされる。
さらに、エレメント30は、列配線群51bxおよび51byのそれぞれから入力データを選択するためのセレクタ31を備えているが、その設定なども制御部60が設定データ57に基づき行う。さらに、行配線群51aおよび列配線群51bの接続を行う各スイッチングユニット51cの設定も各スイッチングユニット51cの制御部60が設定データ57に基づき行う。したがって、本例のマトリクス部23においては、第1の配線群51aおよび51bを介して接続されるエレメント30を設定データ57により選択することができるので、自由にデータフローを構成できる。さらに、設定データ57により内部データパス部32の機能を変える、または選択することにより、内部データパス部32が予めサポートできる範囲内で各エレメント30の処理内容も変えることが可能であり、いっそうフレキシブルにデータフローを構成できる。
第4行目および第5行目に配列されたエレメント30は、算術演算および論理演算に適したデータパス部(SMA)32bを備えている。このデータパス部32bは、図5に示すように、シフト回路SHIFT、マスク回路MASK、論理演算ユニットALUを備えている。そして、上記のエレメントと同様に、制御部60により、設定データ57に基づき、これらのシフト回路SHIFT、マスク回路MASK、論理演算ユニットALUの状態が設定される。したがって、入力データdixおよびdiyを加算あるいは減算したり、比較したり、論理和あるいは論理積を演算することができ、その結果が出力信号doとして出力することができる。
エレメント30は、マトリクス部23で処理する内容により様々なものを用意することが可能であり、たとえば、下の行に配列されたエレメント30は、データが伝送されるタイミングを遅延する処理に適したデータパス部(DEL)32cを備えている。このデータパス部32cには、たとえば、複数のセレクタとフリップフロップFFとの組み合わせで構成でき、入力信号を任意のクロック数だけ遅延して出力することができる。また、乗算器などを含む乗算処理に適したデータパス部、マトリクス部23の外部に用意されたFPGA14とのインターフェイス用のデータパス部、データ出力用のアドレスを発生するのに適したデータパス部などを提供することが可能である。
これらのエレメント30は、上述したようにいずれも、アドレスを発生させるなどの特定の処理あるいは機能に適したデータパスを備えていると共に、その構成あるいは機能を設定データ57に基づき制御部60で変更できる。そして、第1の配線群51aおよび51bによるマトリクス部23の他のエレメント30との接続環境も変更できる。したがって、本例のマトリクス部23は、各々のエレメント30が、特定の処理に特化したデータパスあるいは専用回路を備えているので、ハードウェア的に高速処理が可能であり、その一方で、エレメント30の接続を変えたり、エレメント30の機能を限られた範囲で変えることにより、マトリクス部23における処理内容をフレキシブルに変更することができる。
FPGAも、トランジスタ間の接続を変更することによりフレキシブルな構成を実現できるアーキテクチャであり、製造した後に機能を自由に変更することが可能な集積回路装置である。しかしながら、FPGAには、ANDやORなどの論理ゲートそのものが内蔵されているわけではないので、専用演算回路としての機能を実現できるといっても面積効率は低く、演算速度もそれほど高くはならない。さらに、FPGA自体は、ハードウェアをダイナミックに変更するには時間がかかり、また、その時間を短縮するためのハードウェアが必要となる。このため、アプリケーションの実行中にハードウェアを動的に制御することは難しく、経済的でもない。
これに対し、本例のマトリクス部23を採用した本例のデータ処理装置10は、適当な、あるいは特定の処理に適したデータパスを予め備えた複数種類のエレメントが用意されているので、FPGAのように各トランジスタ間の接続をすべて変更する必要がない。したがって、短時間でハードウェアを再構成することができ、さらに、FPGAのようにトランジスタレベルでの汎用性を要求するアーキテクチャではないので、実装密度も向上でき、コンパクトで経済的なシステムとなっている。さらに、冗長な構成を削減することができるので、処理速度も高速化でき、AC特性も良好である。
図6に、エレメント30の制御部60の概略構成を示してある。制御部60は、第2の配線群52を介して提供される制御コマンドなどの情報を解釈するデコード部61と、データパス部32の設定データを記憶するコンフィグレイションRAM62とを備えている。コンフィグレイションRAM62には、DFID63と、内部設定および内部状態を示す内部情報64が記憶される。内部情報64は、第3の配線群53を介して供給される設定データ57に加えて、データパス部32の稼動状態(ステータス)などのデータパス部32における処理をトレースできる情報が含まれる。たとえば、設定データ57としては、データパス部32の演算器の制御情報、初期値や固定値などのパラメータ、データパス部内のパスの選択情報、エレメント間の配線、すなわち、第1の配線網51aおよび51bの選択情報を含む。コンフィグレイションRAM62は書き換え可能なメモリであれば良く、レジスタ、EEPROMなどであってももちろん良い。
デコード部61は、第3の配線群53から供給されるDFID58と、第3の配線群53から既に供給され、RAM62に記憶されているDFID63と、後述する退避メモリ25から供給されるDFID71のいずれかを選択するセレクタ65と、このセレクタ65により選択されたDFIDと、第2の配線群52から供給されるDFID56とを比較するコンパレータ66と、コンパレータ66でDFIDが一致したときに第2の配線群52から供給される制御情報(コマンド)55をデコードし実行するコマンドデコーダ67を備えている。
図7に、このデータ処理装置10においてマトリクス部23のデータフローを設定したり、データフローを制御する処理の概要を、プロセッサ11の処理と、エレメント30の制御部60の処理とで示してある。データ処理装置10においてデータフローの制御方法は、第3の配線群53を介してDFID58と設定データ57を供給する第1の工程101と、第2の配線群52を介してDFID56とコマンド55とを供給する第2の工程102とを備えている。
プロセッサ11が、ステップ109でコードRAM11cに記憶されたプログラム11pから命令をフェッチし、フェッチした命令がマトリクス部23のデータフローの構成を制御する命令であると、第1の工程101および第2の工程102を実行する。フェッチした命令が、既に構成済みのデータフローを制御する命令であると、第2の工程102を実行することになる。第1の工程101においては、プロセッサ11が、プログラム11pに基づき、ステップ111で、新しい設定データ57を供給する必要があると判断すると、ステップ114でネットワーク設定メモリ24から第3の配線群53を介して、エレメント30のそれぞれに対しDFID58および設定データ57を供給する。この際、ネットワーク設定メモリ24の内容を更新する必要があれば(ステップ112)、DRAM2などに格納されている設定データ57を読み込んで更新する(ステップ113)。ネットワーク設定メモリ54の書き換えは、バンク単位でも良いし、設定番号(設定No)単位でも良いし、メモリ54の全内容を更新することも可能である。
ステップ114において、異なる設定データ57を第3の配線群53を介して所望のエレメント30に供給する方法はいくつかある。第1の方法は、ステップ114において、ネットワーク設定メモリ24に記憶された複数の設定データ57の中からエレメント30にロードされる設定データ57が選択して出力され、以下の第2の工程102では、その設定データ57がロードされる方法である。ネットワーク設定メモリ24の容量が少なく、1つの設定Noしかストアできないような場合は、ステップ113で更新された設定データがエレメント30に供給されることになる。これは上述した第3の方法に該当する。
第2の方法は、ステップ114では、ネットワーク設定メモリ24に記憶された複数の設定データ57がエレメント30から選択できる状態で供給し、第2の工程102では、エレメント30がコマンドに基づいて複数の設定データ57から1つの設定データを選択してロードする方法である。この第2の方法は、プロセッサ11により設定メモリ24を操作する手順が少なくなるのでプロセッサ11の負荷は減るが、第3の配線群53のバス幅を大きくする必要がある。事前に複数の設定データ57と識別情報58との組み合わせをエレメント30の制御部60のコンフィグレイションRAM62などにダウンロードしておくことも可能であるが、エレメント30に十分なメモリ容量を設ける必要があり、また、転送するための時間を確保する必要がある。
これらの方法を混合した制御方法も可能である。たとえば、第3の配線群53のバス幅を2つ程度の限られた設定データ57がエレメント30で選択できるようにして、頻繁にデータパスを構築しなおす必要のある設定データは、第2の配線群52からのコマンドだけで選択できるようにするということも可能である。
第2の工程102においては、プロセッサ11が、プログラム11pに基づき、ステップ115で第2の配線群52を介して、マトリクス23のエレメント30の全体にDFID56とコマンド55を供給する。各エレメント30の制御部60においては、ステップ116で、第2の配線群52を介して、DFID56とコマンド55を受けると、ステップ117で、第2の配線群52を介して供給されたDFID56と比較するDFID、すなわち処理ユニットが属するとするDFIDを選択する。本例では、上述したように、セレクタ65により、第3の配線群53を介して供給されているDFID58と、制御部60に記憶されているDFID63と、退避用メモリ25に格納されているDFID71のいずれかを選択することができる。ステップ118で、比較対象のDFIDと、第2の配線群52を介して供給されたDFID56が一致すると、ステップ119でコマンド55を実行する。
このデータ処理装置10において、プロセッサ11のコードRAM11cに記憶されたプログラム11pに、ネットワーク設定用メモリ24の設定No1の設定データを用いて、DFID1、2および3のデータフローをマトリクス部23に構成する処理を実行する命令Ins1があると、プロセッサ11は、ステップ114で、ネットワーク設定用メモリ24に対しバンク24.1を選択する制御信号φ1を出力する。さらに、プロセッサ11は、ステップ115で、第2の配線群52を介してデータフローを形成するスタートコマンド55aをエレメント30に供給する。スタートコマンド55aはたとえば以下のようになる。
start DFID,OP ・・・(1)
エレメント30の制御部60のデコーダ67は、ステップ118で、コマンドと共に供給されたDFID56がセレクタ65で選択されたDFIDと一致していると、ステップ119で、スタートコマンド55aを解釈して実行する。本例では、コンフィグレイションRAM62に対して第3の配線群53から供給されている設定データ57を記憶する制御信号を出力する。コマンド55と共に発行するDFIDは、上記のように複数でも良く、また、単数であっても良い。
スタートコマンド55aのOPは、オプションのパラメータである。パラメータの1つは、設定Noを選択する情報である。第3の配線群53のバス幅が広く、第3の配線群53を介して設定用メモリ24の複数のバンク、すなわち、複数の設定Noの設定データ57を提供できる場合は、パラメータにより、それらのいずれかの設定Noの設定データをRAM62に記憶させるようにすることができる。したがって、プロセッサ11は、ネットワーク設定メモリ24から出力される設定データを選択しなくて良いか、あるいは、ブロック単位などの大きな単位で選択する程度で良い。したがって、ネットワーク設定メモリ24の制御が容易になり、処理速度は向上する。しかしながら、第3の配線群53のバス幅を確保する必要があるので、データ処理装置10は大きくなる。
ステップ117において設定されるセレクタ65の状態は、コンフィグレイションRAM62に記憶される設定データ57により定義しても良く、あるいは、セレクタ65の状態を設定するコマンド55を第2の配線群52を介して供給しても良い。また、デコーダ67で先行してコマンド55をデコードし、コマンド自身、あるいはコマンドに付加されたパラメータによってセレクタ65の状態を設定することも可能である。いずれの場合もセレクタ65で選択されたDFIDとDFID56が一致した場合のみ、デコード結果を実行する。
ステップ117において、セレクタ65により、第3の配線群53により設定データ57と共に供給されるDFID58が選択されると、そのDFID58と、スタートコマンド55aにより指定されたDFID56が一致するエレメント30で設定データ57が更新される。したがって、スタートコマンド55aと共に供給されるDFID56は、マトリクス部23に新たに構築されるデータフローを示すDFIDとなる。
一方、セレクタ65により、コンフィグレイションRAM62に記憶されたDFID63、すなわち、エレメント30が現在属しているデータフローを識別するDFIDを選択することも可能である。この場合は、スタートコマンド55aと共に供給されるDFID56は、マトリクス部23で更新されるデータフローを示すDFIDとなる。
いずれの場合も、ネットワーク設定用メモリ24から第3の配線群53を介して複数のエレメント30に供給されている設定データ57を、スタートコマンド55aにより、コマンドと共に供給されたDFID56で識別される複数のエレメント30に同時に設定できる。したがって、各々のエレメント毎に設定データを提供する必要はなく、高速に、たとえば、1クロックで新しいデータフローを構築することができる。さらに、そのために使用されるDFIDは、各々のエレメント30を識別する情報を一切含まなくて良いので、本例に示すような非常に簡単な、情報量の少ないデータで済む。したがって、データフローの切り換えを高速で、極めて簡単に行うことができるデータ処理装置10を提供できる。
本例のデータ処理システム10においては、第3の配線群53によりネットワーク設定用メモリ24の各エレメント30に対応したアドレス領域28と各エレメント30の制御部60とを個別にダイレクトに接続している。したがって、第3の配線群53のバス幅が十分であり、距離的な遅延が無視できる程度の動作周波数であれば、ネットワーク設定用メモリ24の設定データ57をエレメント30の制御部のコンフィグレイションRAM62にロードしなくても、設定用メモリ24の各エレメント30に対応したアドレス領域28をコンフィグレイションRAM62として利用することも可能である。
以下では、本例のデータ処理装置10において、DFIDを用いたコマンドの幾つかの例を示す。まず、データフローの動作を停止する停止コマンド55bは以下のようになる。
freeze DFID・・・(2)
データフローの動作を停止させずに、データフローを切替えようとすると、切替え中または切替え後に誤動作する可能性がある。たとえば、切替え前に、クロック毎にメモリアクセスしていたハードウェア資源が切替え中に動作していると、想定外のアドレスにアクセスを行うことになる。仮にそのアクセスが致命的な結果を引き起こさなくとも、外部バスサイクルを発生させ、少なくとも性能低下の要因となる。また、マトリクス部23のデータフローを動的に切替える際に再現性がなくなる可能性がある。たとえば、データフローを停止させずに切替えると、切替え中にもデータフローが動作してしまう。すると、次回に設定データを戻してデータフローを再起動して処理を継続したときに、切替えを行わなかった場合と異なる結果になり得る。すなわち、データフローを再起動するためにデータフローを構成する各エレメントに戻された内部情報は、切替え前の値と、切替え中に書き換わった値が混在する可能性がある。
したがって、プロセッサ11においては、プログラム11pにデータフローを切替える命令Ins2があると、ステップ115で、対象となるデータフローをDFIDで指定して動作を停止させる停止コマンド(フリーズ命令)55bを第2の配線群52を介して発行する。エレメント30の制御部60においては、DFIDが一致するフリーズ命令55bを受けると、エレメント30の動作を停止する。このフリーズ命令55bに、データフローの機能を停止するだけではなく、いったん機能を停止しているデータフローを動作させる機能を持たせても良い。そして、本例のデータ処理システム10においては、各エレメント30が属するデータフローを識別する情報はDFIDとして予め割り付けられているので、停止コマンド55bと共にDFIDを発行することにより、エレメント内部から参照する際にはアドレス生成の必要は無い。
このように、停止コマンド55bを用意することにより、動作中のデータフローを指定してその機能を停止させることにより、余計なバスアクセスを抑制できる。また、データフローを動的に切替える際、再現性が確実に得られることになる。したがって、このようにデータフローを識別する情報DFIDを付して第2の配線群52を介して停止コマンド55bを供給し、それによりデータフローを停止し、さらにはデータフローを動作する制御方法は、本例のように第3の配線群53を介してデータフロー毎にDFIDをエレメントに付すデータ処理装置に限らず、ネットワークを介して、本例であると第1の配線群51aおよび51bを介してDFIDを付すようなデータ処理装置においても有効である。
データフローを動的に再構成する際に、稼動中のデータフローを一時的に退避して、再稼動させるストアコマンド55cおよびロードコマンド55dは以下のようになる。
storev DFID
loadv DFID ・・・(3)
マトリクス部23で実行したい処理が複数ある場合に、現在、マトリクス部23のエレメント30を占有している処理の終了を待ってから、次の処理を実行することも可能である。しかしながら、そのときに要求されている処理がリアルタイム性を要求されている優先度の高い処理であると、そのような制御方法では対処できない。また、マトリクス部23において、たまたま現在使用されていないエレメントを寄せ集めて、次の処理を実現するとなると、エレメント30が空いていなければそれまでである。さらに、空いているエレメント30を寄せ集める際には、空いているエレメント30が事前に予測できないので、その都度、エレメント30を繋ぐ配線資源、すなわち、第1の配線網51aおよび51bの配線方法を演算する必要があり、時間がかかる。したがって、この場合もリアルタイム性が要求されているケースには対応できない。
現在実行中の処理を中断して、優先度の高い処理を実行し、優先度の処理が終わったら、中断された処理を最初からやり直すという方法もある。しかしながら、明らかに処理時間が無駄であるし、中断された処理がやり直し不可能な場合には実現すら不可能となる。
これに対し、本例のデータ処理システム10では、プログラム11pに優先度の高い処理を実行する命令Ins3があると、プロセッサ部11は、ステップ115において、優先度の高いデータフローを示すDFIDを付してストアコマンド55cを発行し、そのデータフローに属することになるエレメント30の内部情報64を退避メモリ25に格納した後、所望のエレメント30を解放する。これにより、次に、プログラム11pに基づき、ステップ115において、スタートコマンド55aを供給することにより、優先度の高い処理を実行するデータフローを構築して処理を行うことができる。その後、ステップ115において、再現するデータフローのDFIDを付してロードコマンド55dを発行することにより、退避メモリ25から内部情報64をロードし、退避したデータフローを再構築して処理を継続することができる。
したがって、リアルタイム性が要求されるような優先度の高い処理が要求されたときに、その処理を優先してマトリクス部23で実行することが可能となる。さらに、優先度の高い処理が終了すると、中断されたデータフローを再構築し、中断された状態を再現して中断された状態から処理を継続することができる。このため、処理時間が無駄になることもない。
このため、ストアコマンド55cが発行されると、各エレメント30の制御部60においては、第3の配線群53を介して供給されるDFID58と、コマンド55cと共に第2の配線群52を介して供給されるDFID56とを比較し、該当する場合は、ステップ119において、処理を停止し、コンフィグレイションRAM62の内部情報64と、DFID63とを第4の配線群54を介して退避メモリ25に書き込む。書き込む時間が確保できるのであれば、セレクタやスイッチング回路により構成された転送回路75によりパラレル−シリアル変換を行い、配線群のバス幅を縮小したり、退避メモリ25のインターフェイスのバス幅を縮小することができる。
さらに、各エレメント30の制御部60のコンフィグレイションRAM62の容量が確保でき、退避すべき内部情報とDFIDを記憶できるのであれば、コンフィグレイションRAM62を退避メモリとして利用することも可能である。この場合、エレメント30で通常に処理を行っているときに、退避メモリあるいはレジスタとして利用するビット領域にも内部情報64をミラー状態で書き込んでおけば、ストア命令55cにより内部情報64を退避する処理は不要となる。
また、ストア命令55cによりデータフローの機能を停止するようにしているが、ストア命令55cに先立ってフリーズ命令55bを発行して事前にデータフローの機能を停止させても良い。さらに、優先処理するデータフローを構成するために必要なエレメント30の配列と、退避するデータフローを構成していたエレメント30の配列とが一致しない場合は、退避するデータフローのDFIDを指定してストア命令55cあるいはフリーズ命令55bを発行することが望ましい。この場合は、各エレメント30のコンフィグレイションRAM62に記憶されているDFID63と比較することにより、適切なエレメント30の内部情報64を退避することができる。
復帰するデータフローのDFID56と共にロードコマンド55dが発行されると、各エレメント30の制御部60では、ステップ118において、退避メモリ25の各エレメントに対応したアドレス領域73に記録されているDFID71とDFID56とを比較する。DFIDが一致すると、ステップ119において、退避メモリ25に退避されていた内部情報(コンディションデータ)72をコンフィグレイションRAM62にロードする。指定されているDFID56を構成する全エレメント30に内部情報64が復帰すると、中断されていた処理を継続して実行する。
データフローを動的に再構成する際に、稼動中のデータフローを一時的に退避して、再稼動させるストアコマンド55cおよびロードコマンド55dを、上記のようにデータフローを識別する情報DFIDを付して第2の配線群52を介して供給する制御方法は、本例のように第3の配線群53を介してデータフロー毎にDFIDをエレメントに付すデータ処理装置に限らず、たとえば、ネットワークを構成する第1の配線群51aおよび51bを介してDFIDを付すようなデータ処理装置においても有効である。
図8に、プロセッサ11からネットワーク設定用メモリ24に対し設定No1を指定するコマンドφ1が発行され、さらに、マトリクス部23に対し第2の配線群52を介してDFID56として「1、2、3」を指定してスタートコマンド55aが発行された状態を示してある。これにより、各エレメント30においては、第3の配線群53を介してネットワーク設定用メモリ24から供給されているDFID58が「1」、「2」または「3」となる設定データ57が、対応する複数のエレメント30のコンフィグレイションRAM62にラッチあるいは格納される。必要であれば、第1の配線群に属するスイッチングユニット51cにも第2の配線群52および第3の配線群53が接続されており、第1の配線群51aおよび51bの接続情報が供給される。これにより、スタートコマンド55aが発行された後、短期間、たとえば、1クロックで、エレメント30が第1の配線群51aおよび51bにより接続され、DFIDが「1」のデータフロー81と、DFIDが「2」のデータフロー82と、DFIDが「3」のデータフロー83が構築され、処理が開始される。
次に、プロセッサ11から、DFID56として「1、2」を指定してフリーズコマンド55bが発行されると、該当するデータフロー81および82に属するエレメント30は動作を停止し、データフロー81および82における処理は中断する。しかしながら、DFID56で指定されていないデータフロー83に属するエレメント30では処理を継続される。
その後、プロセッサ11から、ネットワーク設定用メモリ24に対し設定番号2を指定するコマンドφ1が発行され、さらに、マトリクス部23に対しDFID56として「4、5」を指定してストアコマンド55cが発行される。これにより、第3の配線群53を介して供給されているDFID58に基づき、そのデータフローを構築するために必要となるエレメント30、すなわち、現在のデータフロー81および82を構成していたエレメント30の内部状態が第4の配線群54を介して退避メモリ25に格納される。また、必要であれば、第1の配線群に属するスイッチングユニット51cの状態も退避メモリ25に格納される。さらに、第3の配線群53を介してネットワーク設定用メモリ24から供給されているDFID58が「4」または「5」の設定データ57が、対応する複数のエレメント30のコンフィグレイションRAM62に格納される。これにより、図9に示すように、DFIDが「4」のデータフロー84と、DFIDが「5」のデータフロー85が構築され、処理が開始される。
したがって、ストアコマンド55cが発行された後、数クロックでマトリクス部23の構成は切替えられ、新しいデータフローによる処理が開始される。さらに、この間、データフロー83では処理が継続して行われており、中断されることはない。
データフロー84および85の処理が終了すると、プロセッサ11から、マトリクス部23に対しDFID56として「1、2」を指定してロードコマンド55dが発行される。これにより、第4の配線群54を介して退避メモリ25に格納されていたDFID71に対応するエレメント30の内部情報72がコンフィグレイションRAM62に格納され、図8に示すように、データフロー81および82が再構築される。各々のデータフロー81および82に属するエレメント30の内部状態は、処理が中断されたときと同じになっているので、これらのデータフロー81および82で処理を開始することにより、中断された時点から処理を継続して行うことができる。
このように、本例のデータ処理装置10においては、複数のエレメント30が第1の配線群51によりネットワークに接続可能となったマトリクス部23で複数の機能を容易に実現できるものである。そして、ネットワークを構成する機器であるエレメントを動作させるかどうかについては、そのエレメント30に付されるDFIDが実行可能かどうかを調べるだけで良い。したがって、プロセッサ11あるいはその他のマトリクス部23の外部にある制御装置から、マトリクス部23の中のエレメント30に対して処理を要求することが容易になる。すなわち、外部からネットワーク内のある機能、すなわち、データフローに対して要求する際にはその「機能」の識別情報であるDFIDを指定しさえすれば良い。
そして、マトリクス部23のネットワーク(データフロー)の構成を変え、また、データフローの制御を行うためには、プロセッサ11から上記のようなコマンドを発行させる処理を実行する命令を備えたプログラムまたはプログラム製品11pを供給するだけで良い。そして、プログラム11pの命令の内容あるいは順番を変えることにより、システムLSIなどとして実現されるデータ処理装置10で実行される処理をハードウェアの段階から変更することができる。また、ネットワーク設定メモリ24の内容を変えることによってもデータ処理装置10で実行される処理をハードウェアの段階から変更することができる。したがって、本発明により、ハードウェア資源としては同一の構成を備えたデータ処理装置であっても、処理を実行する段階でのデータパスが異なり、異なるデータフローで処理を実行可能なデータ処理装置を提供することができる。
また、DFIDの利用方法は上記に限定されるものではない。たとえば、DFID「0」は全てのエレメント30を指定するものであるとして、第3の配線群53から供給されるDFID58や内部に記憶されているDFID63に影響されずに、全てのエレメント30に対してコマンドを供給したり、全てのエレメント30の設定データを更新することも可能である。また、DFID「−1」は、エレメント30に無関係なデータであるとして、第2の配線群52をエレメントの制御とは無関係な制御に用いることも可能である。
さらに、第2の配線群52から提供されるデータは制御コマンドに限定されるものではない。ネットワーク状に配置されたエレメントにより構成されるデータフローでは、同様な演算を繰り返すことが多いが、その際に演算の係数のみを変更することも多い。したがって、本システム10では、設定用メモリ24の内容は変えずに、すなわち、設定データ57は変えずに、第2の配線群52から提供されるデータにより係数を変更することができる。また、設定用メモリ24の設定データ57を再利用し、変更が必要な個所のみプロセッサ部11で修正し、第2の配線群52からスタートコマンド55aを供給することにより何度でもエレメント30に設定データ57を設定することが可能である。
また、ネットワーク設定用メモリ24は制御装置であるプロセッサ部11からは通常のメモリと同様に直接書き換えが可能である。このため、プログラマの自由度が大きい。これに相当するものが各エレメントに隠され、プロセッサ部11から直接書き換えができないとするならば、各エレメントを個別に示す識別情報、たとえば、アドレスと共に設定情報を全エレメントに個別に渡す方法を採用することになる。これでは、データフローを構成する全エレメントについて同様の操作をエレメントの数だけ繰り返さざるを得ず、時間が非常にかかる。また、無駄に回路が作動するので、電力も消費する。エレメントを樹状に接続し、目的のエレメントを示すアドレスと共に設定情報をその根に注入する方法でも可能であるが、これでは時間もかかるし、部分的な修正もしがたい。
これに対し、本例のネットワーク設定用メモリ24は第3の配線群53により全体としては広大なバス幅で各エレメント30と直に接続されている。これにより、1クロックでの高速設定が可能である。そして、第2の配線群52により、全エレメント30に対して制御要求(一時停止・再開)と制御対象であるDFIDを通知あるいは放送するので、これらの制御も1クロックで完結する。
さらに、ネットワーク設定用メモリ24に記憶されている設定データ57などは、プロセッサ部11によりどのタイミングで生成されても良い。また、予め作成され、外部DRAM2などに記憶されている設定データの一部を、プロセッサ部11がネットワーク設定用メモリ24にダウンロードして利用することも可能である。
また、上記に示した各配線群の構成は例示であり、これに限定されるものではない。第1のデータ転送手段として機能する第1の配線群51aおよび51bは、エレメント同士をより柔軟にルーティング可能な配線あるいはデータ転送手段であれば良い。たとえば、入力用のセレクタの数、すなわち入力の数を増やすことにより、各機器はより複雑な演算が可能となり、また、出力用のセレクタの数、すなわち、出力の数を増やすことによっても、より複雑な演算が可能になる。さらに、出力のセレクタは出力と1対1である必要は無く、1出力に複数セレクタ、または複数出力に1セレクタを用いても良い。また、エレメント間の通信時間によってエレメントのアドレスを指定してデータを送受信可能なネットワークであっても良い。
第2のデータ転送手段として機能する第2の配線群52では、DFIDの取り得る種類だけ信号線を用意し、各配線が各DFIDを示すものとして利用することも可能である。第3の配線群53においても同様である。
また、上記のデータ処理装置10は、半導体基板上にエレメント30が作り込まれ、プロセッサ装置あるいはLSI装置として本発明が実現された例を示している。したがって、アプリケーションの処理に適したデータフローを動的に再構築可能であり、ハードウェア資源を最も効率よく利用することが可能で、AC特性も良く、リアルタイム処理も可能なLSIあるいはASICを本発明により提供することができる。
さらに、本例のLSI装置10は、プログラム11pおよび/または設定データ57を変えることにより、同一のハードウェア資源を備えたLSIを様々な用途あるいはアプリケーションに用いることができるという特徴も備えている。また、プログラム11pおよび/または設定データ57は、データ処理装置とは別に、適当な記録媒体、たとえば、単体で流通するROMに格納して提供したり、コンピュータネットワークなどの通信手段により提供することも可能である。このため、プログラム11pおよび/または設定データ57を変更する、または更新することにより、LSIや、そのLSIが使用されている情報処理端末などの処理性能を向上したり、新たな機能を付加したりすることも可能である。このため、本来、いったん開発が終了するとフィックスされてしまうLSIの機能を、ファームウェアをバージョンアップするのと同じ感覚で更新することも可能となり、設計および製造におけるメーカ側の負荷も大幅に軽減でき、ユーザには常にベストな状態で使用可能なLSI装置を提供することができる。
また、本発明にかかる、複数の処理ユニットがネットワークで接続されてある機能を実現するような処理ユニット(上記の例のエレメントに相当する)は、異なる半導体装置、基板、さらには、離れて配置される機器などであっても良い。そして、この発明におけるデータフローでは、次のような機能を実現することができる。まず、ネットワークで接続可能な全機器もしくは一部の機器を占有して実現されるものであり、その内部でデータを受け渡し、処理し、その末端ではネットワークの外部からデータを受け取り、ネットワークの外へデータを渡すものである。そして、データフローの内部では自律的もしくは他律的に制御され、例えば、データの出口が詰まったら、それ全体の動作が一時停止されるような制御が行われる。また、データフロー間では、データフローの内部で積極的に情報をやりとりはせず、基本的には、互いに独立した存在として機能するものである。
上述したように、本発明により、このような「機能」を対象とした処理(設定・制御・動作)が容易に実現できる。設定とはその「機能」の定義付けであり、「機能」を構成する機器を選択し、各機器の役割を割り付けるものである。そして、この設定の要求を「機能」の外部から発行できる。制御とはその「機能」の動作開始・停止であり、これも「機能」の外部から発行できる。
動作とはその「機能」の自律的動作であり、「機能」が動作中に生じるであろう同期制御などを意味する。これには以下の内容が考えられる。第一に入力データの同期である。一般に機器が演算を行う際には入力データは二個以上であることが多い。この場合、全入力データは同時に機器に入力されることが望ましい。ネットワークに対する入力が「機能」に関係付けられていれば、ネットワークへの入力を受けつける際にこのフロー制御を行うことで、「機能」に複数の入力データを容易に同期して入力することができる。第二に出力データのフロー制御である。ネットワークの出力がつまってしまった場合(ネットワークの出力はもちろん緩衝装置を持っている場合が多いだろうが、その緩衝装置の能力一杯になってしまった場合)、「機能」が出力しつづければ出力データが失われてしまうことになる。しかしながら、もしネットワークの出力が「機能」に関係付けられていれば、ネットワークはこの「機能」にその旨を通知し、「機能」は出力が可能になるまでその動作を自律的に停止することができる。本発明は、ネットワーク中の制御装置による集中管理の可能性を排除するものではなく、「機能」を示す識別情報(DFID)を使用して集中管理しても良い。つまり、上述の現象を中央の監視装置が検出し、各「機能」に動作の一時停止及び再開を命ずることも可能となる。
これは、従来の機器をネットワーク状に配置し稼動させるシステム、特にLSIアーキテクチャにおける識別方法とは全く異なるものである。ネットワーク構成機器それぞれに固定的な、または動的な識別情報(IDあるいはアドレス)を付与することができる。しかしながら、機器間のネットワーク構築及びデータ転送を行う場合、各機器に1対1で対応する固定的または動的なIDを付与したのでは、その機器の物理的位置を使用して操作対象を特定できるのならば、ID自体は冗長な情報に過ぎない。さらに、機器毎に個別なIDでは、ネットワーク内に複数の「機能」が存在する場合、ある「機能」全体に対する操作が容易ではない。個別の機器を全て指定して操作するのは明らかに冗長であり、機器指定のために配線または時間を浪費する。
全ての機器を合わせて1個の機能を実現することにより、制御する上で機器を識別する必要を排除することも可能であるが、複数の「機能」を同時に実現することができないので、ハードウェア資源の浪費になる。各機器のIDの中の一部を残し、他をマスクする方法などの、ある特殊なルール付けのもとに異なるIDを同一なものとみなすことも可能であるが、機器毎に個別なIDを指定しないと、個々の機器に対して異なる設定を外部から与えることができないという問題を解決するための折衷案に過ぎず、根本的な解決になっていない。このため、各機器毎のIDは冗長にならざるを得ず、プログラミングの簡明さとフレキシビリティーを犠牲にすることになる。さらに、個々の機器に対して異なる設定を与えるためには、個々の機器にアクセスする必要があるという問題は解決されておらず、短時間で動的に機能を切替えることは不可能である。
これに対し、本発明においては、個々の機器に対して設定データを個別に並列配信可能な第3のデータ転送手段を導入することにより、ネットワーク中に動的定義される「機能」そのものに識別情報を付与しており、冗長性を排除し、プログラミングが容易であり、「機能」の設定・制御・動作に必要十分な簡便な機構となっている。
産業上の利用可能性
本発明のデータ処理装置およびその制御方法は、様々なデータ処理を実行可能なシステムLSIあるいはASICなどとして提供することが可能である。また、本発明のデータ処理装置、電子回路に限定されることはなく、光回路あるいは光電子回路をベースとするデータ処理装置にも適用できるものである。そして、本発明のデータ処理装置は、再構成可能なハードウェアによりデータ処理を高速に実行できるので、ネットワーク処理や、画像処理などの高速性およびリアルタイム性が要求されるデータ処理装置に好適なものである。
【図面の簡単な説明】
図1は、本発明の実施の形態に係る集積回路装置の概略構成を示すブロック図である。
図2は、AAPユニットの概略構成を示す図である。
図3は、ネットワーク設定用メモリの概要を示す図である。
図4は、アドレスを出力する処理に適したデータパス部の例である。
図5は、演算処理に適したデータパス部の例である。
図6は、エレメントの制御部の概略構成を示す図である。
図7は、データ処理装置の制御方法を示すフローチャートである。
図8は、マトリクス部にデータフローを構成した例である。
図9は、マトリクス部に異なるデータフローを構成した例である。
Claims (29)
- 複数の処理ユニットと、
それらの処理ユニットをネットワーク状に接続して第1のデータの受け渡しを行い、2以上の処理ユニットを接続することにより、再構成可能な少なくとも1つのデータフローを構成する第1のデータ転送手段と、
前記複数の処理ユニットに対し並列に第2のデータを供給する第2のデータ転送手段と、
前記複数の処理ユニットの各々に対し、前記第1のデータ転送手段を介して接続される他の前記処理ユニットを直接または間接的に変更し、および/または、当該処理ユニットの処理内容を変更することにより、異なる機能の前記データフローを設定する設定データを供給する第3のデータ転送手段とを有するデータ処理システム。 - 前記第3のデータ転送手段により、前記設定データにより設定される前記データフローを示す識別情報が前記設定データと共に供給され、
前記第2のデータ転送手段により、前記識別情報が前記第2のデータと共に供給され、
前記処理ユニットは、前記第3のデータ転送手段を介して供給される、または供給された前記識別情報に基づき前記第2のデータを選択して処理する手段を備えている、請求項1のデータ処理システム。 - 前記処理ユニットは、前記識別情報を記憶するメモリを備えている、請求項2のデータ処理システム。
- 前記第2のデータは、前記処理ユニットの動作を制御する制御情報である、請求項2のデータ処理システム。
- 前記処理ユニットは、前記第2のデータにより、前記設定データをロードする手段を備えている、請求項2のデータ処理システム。
- 前記処理ユニットは、前記第2のデータにより動作を開始または停止する手段を備えている、請求項2のデータ処理システム。
- 前記処理ユニットは、前記第2のデータにより動作を停止すると共に当該処理ユニットの内部情報を退避用メモリに格納し、前記退避用メモリに格納された内部情報をロードした後に動作を開始する退避手段を備えている、請求項2のデータ処理システム。
- 前記退避手段は、前記内部情報と共に前記識別情報も前記退避用メモリに格納する、請求項7のデータ処理システム。
- 前記処理ユニットは、複数の選択可能な内部データパスを備えており、前記設定データは、前記内部データパスを選択するデータを備えている、請求項2のデータ処理システム。
- 前記複数の処理ユニットは、回路基板上に配置されており、
前記第1のデータ転送手段は、前記複数の処理ユニットを接続する回路網であり、
前記第2のデータ転送手段は、前記第2のデータの供給源と前記複数の処理ユニットを接続する回路であり、
前記第3のデータ転送手段は、前記設定データを前記処理ユニット毎に記憶したネットワーク設定メモリと前記複数の処理ユニットとを接続する回路である、請求項1のデータ処理システム。 - 前記第3のデータ転送手段は前記設定データにより設定される前記データフローを示す識別情報を前記設定データと共に供給し、
前記第2のデータ転送手段は、前記識別情報を前記第2のデータと共に供給し、
前記処理ユニットは、前記第3のデータ転送手段を介して供給される、または供給された前記識別情報に基づき前記第2のデータを選択して処理する手段を備えている、請求項10のデータ処理システム。 - 前記供給源は、前記識別情報と共に前記処理ユニットの動作を制御する制御情報を前記第2のデータとして発行する制御装置である、請求項11のデータ処理システム。
- 前記ネットワーク設定メモリは、前記処理ユニット毎に複数の設定データを格納可能であり、
前記制御装置は、前記複数の処理ユニットの少なくともいずれかに同時に設定する前記設定データを前記複数の設定データから選択して前記ネットワーク設定メモリから出力させ、前記制御情報として前記設定データをロードするコマンドを発行する、請求項12のデータ処理システム。 - 前記ネットワーク設定メモリは、前記処理ユニット毎に複数の設定データを格納可能であり、
前記制御装置は、前記制御情報として前記ネットワーク設定メモリの前記複数の設定データから前記設定データを選択してロードするコマンドを発行する、請求項12のデータ処理システム。 - 前記制御装置は、前記ネットワーク設定メモリの前記複数の設定データを変更可能である、請求項12のデータ処理システム。
- 前記回路基板は半導体基板である、請求項10のデータ処理システム。
- 複数の処理ユニットと、それらの処理ユニットをネットワーク状に接続して第1のデータの受け渡しを行い、2以上の処理ユニットを接続することにより再構成可能な少なくとも1つのデータフローを構成する第1のデータ転送手段と、前記複数の処理ユニットに対し並列に第2のデータを供給する第2のデータ転送手段と、前記複数の処理ユニットの各々に対し、前記第1のデータ転送手段を介して接続される他の前記処理ユニットを直接または間接的に変更し、および/または、当該処理ユニットの処理内容を変更することにより、異なる機能の前記データフローを設定する設定データを供給する第3のデータ転送手段とを有するデータ処理システムの制御方法であって、
前記第3のデータ転送手段を介して、前記設定データにより設定される前記データフローを示す識別情報を前記設定データと共に供給する第1の工程と、
前記第2のデータ転送手段を介して、前記識別情報を前記第2のデータと共に供給すると、前記第3のデータ転送手段を介して供給される、または供給された前記識別情報に基づき前記処理ユニットが前記第2のデータを選択して処理する第2の工程とを有するデータ処理システムの制御方法。 - 前記第2の工程では、前記処理ユニットに記憶された前記識別情報に基づき前記第2のデータを選択する、請求項17のデータ処理システムの制御方法。
- 前記第2の工程で供給される第2のデータは、前記処理ユニットの動作を制御する制御情報である、請求項17のデータ処理システムの制御方法。
- 前記制御情報は、前記設定データを前記処理ユニットにロードする第1のコマンドである、請求項19のデータ処理システムの制御方法。
- 前記制御情報は、前記処理ユニットの動作の開始または停止する第2のコマンドである、請求項19のデータ処理システムの制御方法。
- 前記制御情報は、前記処理ユニットの処理を停止すると共に前記処理ユニットの内部情報を退避用メモリに格納する第3のコマンドと、前記退避用メモリに格納された内部情報をロードしてから前記処理ユニットの処理を開始する第4のコマンドとを含む、請求項19のデータ処理システムの制御方法。
- 前記第2の工程では、前記第3のコマンドにより、内部情報と共に前記識別情報が前記退避用メモリに格納され、その退避用メモリに格納された前記識別情報に基づき、前記第4のコマンドが選択される、請求項22のデータ処理システムの制御方法。
- 前記第1の工程では、前記処理ユニット毎に複数の設定データを記憶可能なネットワーク設定メモリに記憶された前記複数の設定データの中から、前記複数の処理ユニットの少なくともいずれかに同時に設定される前記設定データが供給され、
前記第2の工程では、前記第2のデータとして、前記設定データをロードするコマンドが供給される、請求項17のデータ処理システムの制御方法。 - 前記第1の工程では、前記処理ユニット毎に複数の設定データを記憶可能なネットワーク設定メモリに記憶された前記複数の設定データが供給され、
前記第2の工程では、前記第2のデータとして、前記複数の設定データから前記設定データを選択してロードするコマンドが供給される、請求項17のデータ処理システムの制御方法。 - 前記第1の工程では、前記処理ユニット毎に設定データを記憶可能なネットワーク設定メモリに記憶された前記設定データが供給され、
前記第1の工程の前に、前記ネットワーク設定メモリの設定データを書き換える工程を有する、請求項17のデータ処理システムの制御方法。 - 複数の処理ユニットと、それらの処理ユニットをネットワーク状に接続して第1のデータの受け渡しを行い、2以上の処理ユニットを接続することにより再構成可能な少なくとも1つのデータフローを構成する第1のデータ転送手段と、前記複数の処理ユニットに対し並列に第2のデータを供給する第2のデータ転送手段と、前記複数の処理ユニットの各々に対し、前記第1のデータ転送手段を介して接続される他の前記処理ユニットを直接または間接的に変更し、および/または、当該処理ユニットの処理内容を変更することにより、異なる機能の前記データフローを設定する設定データを供給する第3のデータ転送手段とを有するデータ処理システムを制御するプログラムであって、
前記第3のデータ転送手段を介して前記設定データと、その設定データにより設定される前記データフローを示す識別情報と供給し、前記第2のデータ転送手段を介して、前記設定データをロードする制御情報を、少なくとも1つの前記識別情報を付して供給する処理を実行する命令を有するプログラム。 - 前記第2のデータ転送手段を介して、前記処理ユニットの開始または停止を指示する制御情報を、少なくとも1つの前記識別情報を付して供給する処理を実行する命令をさらに有する、請求項27のプログラム。
- 前記第2のデータ転送手段を介して、前記処理ユニットが動作を停止したときの状態を退避用メモリに格納する制御情報、または、前記処理ユニットが動作を開始する前に、前記退避用メモリに格納された状態をロードする制御情報を、少なくとも1つの前記識別情報を付して供給する処理を実行する命令をさらに有する、請求項27のプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001272257 | 2001-09-07 | ||
JP2001272257 | 2001-09-07 | ||
PCT/JP2002/009108 WO2003023602A1 (fr) | 2001-09-07 | 2002-09-06 | Systeme de traitement de donnees et procede de commande |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2003023602A1 JPWO2003023602A1 (ja) | 2004-12-24 |
JP4152319B2 true JP4152319B2 (ja) | 2008-09-17 |
Family
ID=19097658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003527588A Expired - Fee Related JP4152319B2 (ja) | 2001-09-07 | 2002-09-06 | データ処理システムおよびその制御方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7380100B2 (ja) |
EP (1) | EP1443392A4 (ja) |
JP (1) | JP4152319B2 (ja) |
KR (1) | KR100960518B1 (ja) |
CN (1) | CN100397331C (ja) |
CA (1) | CA2459411C (ja) |
TW (1) | TWI238317B (ja) |
WO (1) | WO2003023602A1 (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100397331C (zh) | 2001-09-07 | 2008-06-25 | Ip菲力股份有限公司 | 数据处理系统以及控制方法 |
US7715377B2 (en) * | 2002-01-03 | 2010-05-11 | Integrated Device Technology, Inc. | Apparatus and method for matrix memory switching element |
US7937557B2 (en) | 2004-03-16 | 2011-05-03 | Vns Portfolio Llc | System and method for intercommunication between computers in an array |
US7941794B2 (en) | 2004-08-30 | 2011-05-10 | Sanyo Electric Co., Ltd. | Data flow graph processing method and processing apparatus provided with reconfigurable circuit |
US7447725B2 (en) * | 2004-11-05 | 2008-11-04 | International Business Machines Corporation | Apparatus for controlling rounding modes in single instruction multiple data (SIMD) floating-point units |
JP4810090B2 (ja) | 2004-12-20 | 2011-11-09 | キヤノン株式会社 | データ処理装置 |
WO2006083137A1 (en) * | 2005-02-07 | 2006-08-10 | Samsung Electronics Co., Ltd. | Method of generating usage rule information for broadcast channel |
US7668979B1 (en) * | 2005-03-25 | 2010-02-23 | Tilera Corporation | Buffering data in a parallel processing environment |
US7904695B2 (en) * | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous power saving computer |
JP4596538B2 (ja) * | 2005-09-05 | 2010-12-08 | 京セラミタ株式会社 | 情報処理装置、記録媒体、およびプログラム |
US7966481B2 (en) | 2006-02-16 | 2011-06-21 | Vns Portfolio Llc | Computer system and method for executing port communications without interrupting the receiving computer |
US7904615B2 (en) | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
US7934075B2 (en) * | 2006-02-16 | 2011-04-26 | Vns Portfolio Llc | Method and apparatus for monitoring inputs to an asyncrhonous, homogenous, reconfigurable computer array |
JP4782591B2 (ja) * | 2006-03-10 | 2011-09-28 | 富士通セミコンダクター株式会社 | リコンフィグラブル回路 |
JP4866194B2 (ja) * | 2006-09-29 | 2012-02-01 | 富士通セミコンダクター株式会社 | 集積回路及びリコンフィギュラブル回路の入力データ制御方法 |
JP5487966B2 (ja) * | 2007-07-03 | 2014-05-14 | 日本電気株式会社 | データ暗号化/復号化処理方法およびデータ処理装置 |
JP4962305B2 (ja) * | 2007-12-26 | 2012-06-27 | 富士通セミコンダクター株式会社 | リコンフィギュラブル回路 |
EP2246781B1 (en) * | 2008-01-31 | 2020-12-09 | Fuji Xerox Co., Ltd. | Reconfigurable device |
US10007486B2 (en) * | 2008-12-01 | 2018-06-26 | Micron Technology, Inc. | Systems and methods to enable identification of different data sets |
JP5711889B2 (ja) * | 2010-01-27 | 2015-05-07 | スパンション エルエルシー | リコンフィギュラブル回路および半導体集積回路 |
JP2011203935A (ja) * | 2010-03-25 | 2011-10-13 | Olympus Corp | 分散処理システム、制御部、演算部、分散処理方法、及びプログラム |
JP5197804B2 (ja) * | 2011-06-08 | 2013-05-15 | キヤノン株式会社 | データ処理装置及びその制御方法 |
CA2901062A1 (en) * | 2013-03-01 | 2014-09-04 | Atonarp Inc. | Data processing device and control method therefor |
US9698790B2 (en) * | 2015-06-26 | 2017-07-04 | Advanced Micro Devices, Inc. | Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces |
JP2018165908A (ja) * | 2017-03-28 | 2018-10-25 | 富士通株式会社 | 情報処理装置、情報処理方法及びプログラム |
JP6824806B2 (ja) * | 2017-04-10 | 2021-02-03 | 東芝デベロップメントエンジニアリング株式会社 | 管理装置 |
IT201700062830A1 (it) | 2017-06-08 | 2018-12-08 | Stmicroelectronics Application Gmbh | Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU665521B2 (en) * | 1990-10-03 | 1996-01-11 | Thinking Machines Corporation | Parallel computer system |
TW330265B (en) * | 1994-11-22 | 1998-04-21 | Hitachi Ltd | Semiconductor apparatus |
EP0780017A1 (en) | 1995-07-10 | 1997-06-25 | Xilinx, Inc. | System comprising field programmable gate array and intelligent memory |
US5887146A (en) * | 1995-08-14 | 1999-03-23 | Data General Corporation | Symmetric multiprocessing computer with non-uniform memory access architecture |
US5778439A (en) | 1995-08-18 | 1998-07-07 | Xilinx, Inc. | Programmable logic device with hierarchical confiquration and state storage |
US5784636A (en) * | 1996-05-28 | 1998-07-21 | National Semiconductor Corporation | Reconfigurable computer architecture for use in signal processing applications |
US5838165A (en) * | 1996-08-21 | 1998-11-17 | Chatter; Mukesh | High performance self modifying on-the-fly alterable logic FPGA, architecture and method |
US6108760A (en) | 1997-10-31 | 2000-08-22 | Silicon Spice | Method and apparatus for position independent reconfiguration in a network of multiple context processing elements |
US6122719A (en) * | 1997-10-31 | 2000-09-19 | Silicon Spice | Method and apparatus for retiming in a network of multiple context processing elements |
DE19807872A1 (de) * | 1998-02-25 | 1999-08-26 | Pact Inf Tech Gmbh | Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl. |
JP2000324102A (ja) | 1999-05-12 | 2000-11-24 | Toshiba Corp | 伝送装置および伝送システム |
WO2000079394A1 (en) * | 1999-06-21 | 2000-12-28 | Bops Incorporated | Methods and apparatus for providing manifold array (manarray) program context switch with array reconfiguration control |
CN100397331C (zh) | 2001-09-07 | 2008-06-25 | Ip菲力股份有限公司 | 数据处理系统以及控制方法 |
-
2002
- 2002-09-06 CN CNB028157214A patent/CN100397331C/zh not_active Expired - Lifetime
- 2002-09-06 WO PCT/JP2002/009108 patent/WO2003023602A1/ja active Application Filing
- 2002-09-06 US US10/399,360 patent/US7380100B2/en not_active Expired - Lifetime
- 2002-09-06 JP JP2003527588A patent/JP4152319B2/ja not_active Expired - Fee Related
- 2002-09-06 KR KR1020047000161A patent/KR100960518B1/ko active IP Right Grant
- 2002-09-06 CA CA2459411A patent/CA2459411C/en not_active Expired - Lifetime
- 2002-09-06 EP EP02767916A patent/EP1443392A4/en not_active Withdrawn
- 2002-09-09 TW TW091120505A patent/TWI238317B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JPWO2003023602A1 (ja) | 2004-12-24 |
CN1541355A (zh) | 2004-10-27 |
CA2459411A1 (en) | 2003-03-20 |
US7380100B2 (en) | 2008-05-27 |
EP1443392A4 (en) | 2007-08-15 |
EP1443392A1 (en) | 2004-08-04 |
TWI238317B (en) | 2005-08-21 |
WO2003023602A1 (fr) | 2003-03-20 |
CA2459411C (en) | 2013-04-02 |
CN100397331C (zh) | 2008-06-25 |
KR100960518B1 (ko) | 2010-06-03 |
US20040030815A1 (en) | 2004-02-12 |
KR20040027871A (ko) | 2004-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4152319B2 (ja) | データ処理システムおよびその制御方法 | |
US10409765B2 (en) | Method for providing subapplications to an array of ALUs | |
CN111274183A (zh) | 多路高速协议接口动态可重构系统及实现方法 | |
CN110083440B (zh) | 多处理器嵌入式系统上应用的动态重新配置 | |
JP4547198B2 (ja) | 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体 | |
US6675289B1 (en) | System and method for executing hybridized code on a dynamically configurable hardware environment | |
US20110173306A1 (en) | System and method for self configuration of reconfigurable systems | |
US11645225B2 (en) | Partitionable networked computer | |
US20080229093A1 (en) | System for reconfiguring a processor array | |
RU2559723C2 (ru) | Система параллельной обработки данных и способ работы системы параллельной обработки данных | |
JP6111680B2 (ja) | 信号処理装置およびプログラマブルロジックデバイスの構成方法 | |
CN106843948A (zh) | 片上生成硬件配置信息的芯片架构及其执行方法 | |
US7973554B2 (en) | Method of configuring embedded application-specific functional blocks | |
CN112580285A (zh) | 嵌入式服务器子系统及其配置方法 | |
CN118210529B (zh) | 优化机框式设备板卡固件升级装置、升级及启动加载方法 | |
JP2006085574A (ja) | データ処理システムおよびその制御方法 | |
JP2013061921A (ja) | エミュレータ及びマルチプロセッサシステム | |
JP2006510129A (ja) | システム・オン・チップへのアレイ・プロセッサのモジュラ統合 | |
JPH08307246A (ja) | 集積回路装置および論理回路の構成方法 | |
JP2007329760A (ja) | プログラマブル論理デバイス、回路情報入力制御装置および半導体装置 | |
JP4208919B2 (ja) | 活性化コードの生成方法 | |
CN118796202A (zh) | 一种全局变量的管理方法 | |
JP2004302856A (ja) | 集積回路装置およびその装置に対するデータ設定装置 | |
JP2002289787A (ja) | 半導体装置 | |
JP2002314402A (ja) | プログラマブル論理回路装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050725 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080314 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080512 |
|
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: 20080602 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080701 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4152319 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120711 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130711 Year of fee payment: 5 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |