JP4208919B2 - 活性化コードの生成方法 - Google Patents

活性化コードの生成方法 Download PDF

Info

Publication number
JP4208919B2
JP4208919B2 JP2006511244A JP2006511244A JP4208919B2 JP 4208919 B2 JP4208919 B2 JP 4208919B2 JP 2006511244 A JP2006511244 A JP 2006511244A JP 2006511244 A JP2006511244 A JP 2006511244A JP 4208919 B2 JP4208919 B2 JP 4208919B2
Authority
JP
Japan
Prior art keywords
processing
data path
information
parameter
data
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.)
Active
Application number
JP2006511244A
Other languages
English (en)
Other versions
JPWO2005091160A1 (ja
Inventor
大 志村
Original Assignee
アイピーフレックス株式会社
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 アイピーフレックス株式会社 filed Critical アイピーフレックス株式会社
Publication of JPWO2005091160A1 publication Critical patent/JPWO2005091160A1/ja
Application granted granted Critical
Publication of JP4208919B2 publication Critical patent/JP4208919B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、複数のプロセッシングエレメントを用いてデータパスを構成するデータ処理装置を用いてアプリケーションを実行するためのコードの生成方法に関するものである。
特開2004−40188号公報には、プロセッサと、複数の演算器と該演算器間を変更可能に接続する接続経路とを含む演算回路群と、パラメータ設定により処理仕様を変更できるパラメータ付専用ハードウェアと、該プロセッサ、該演算回路群、該パラメータ付専用ハードウェアを互いに接続するモジュール間インターフェイスを含むことを特徴とする集積回路が記載されている。この集積回路においては、処理のデータ数や精度などのパラメータを変更することにより対応可能な処理は、その処理に専用のハードウェアとパラメータ保持レジスタとの組み合わせで実行されるようになっており、パラメータ保持レジスタの内容は集積回路を動作させる前になんらかの方法によりセットされるようになっている。
国際公開02/095946号公報には、種々の論理演算を行う複数のエレメントが2次元に配置されたマトリクスと称される領域を有し、マトリクス内に縦横に配置された配線群の接続を切り替えることにより複数のエレメントによりフレキシブルにデータパスを再構成できるデータ処理装置が開示されている。データパスを動的に再構成可能な構成は、これに限定されるものではなく、適当な論理演算を行うエレメント(プロセッシングエレメント、PE)をツリー状に接続したり、隣り合うエレメント同士を接続し、エレメントを通信経路として用いる構成なども考えられる。複数のエレメントにより動的にデータパスを再構成するデータ処理装置においては、各々のエレメントのコンフィグレーションデータをそれぞれ格納するコンフィグレーションメモリを用意することにより各々のエレメントの機能を制御することができる。コンフィグレーションデータにより、エレメント単位で、その処理あるいは演算を変更可能とし、エレメント間の接続を変更可能とし、さらに、各々のエレメントの稼動・非稼動を制御することも可能である。
データパスにおける処理機能あるいは処理内容をパラメータにより制御することが可能である。複数のエレメントを有するデータ処理装置においては、複数のエレメントからなるデータパスを用いた処理の動き、あるいは内容を、パラメータを変更することにより制御できる。そして、変更するためのパラメータを構成データ(コンフィグレーションデータ)の一部として各々のエレメントにセットすることにより、コンフィグレーションデータを変えることによりデータパスの処理あるいは動きを制御することができる。したがって、パラメータ設定専用の固定的なメモリは不要となる。さらに、複数のエレメントを用いて再構成したデータパスのパラメータを変更できるので、パラメータの異なるデータパスを再構成するために要する設計時間を短縮できる。また、パラメータを変更するために要する時間あるいはリソースが、エレメントの接続を変更してデータパスを再構成するために要する時間あるいはリソースよりも少なくて良いデータ処理装置においては、パラメータを変更して機能を再構成することにより処理時間やリソースの消費を低減できるというメリットがある。
複数のエレメントを要するデータ処理装置においては、汎用性を高めるために1種類あるいは複数種類のエレメントが複数用意され、多くのデータパスは、それら複数のエレメントの内の一部のエレメントを用いて構成される。ある機能あるいは処理を実現するためのデータパスをデータ処理装置に実装するためには、そのデータ処理装置において、ある領域に所定のルールに従って物理的に配置された複数のエレメントから、目的とするデータパスを構成するために必要なエレメントを選択して、目的とするデータパスに要するエレメントの物理的な配置と、それらのエレメント間の接続とを決定する必要がある。これらのエレメントの物理的な配置および接続を決定する工程は、配置配線ステップ、マッピングステップあるいはレイアウトステップと呼ばれる。
したがって、複数のエレメントを接続してデータパスを構成するデータ処理装置おいて、ある機能を実装するためには以下の工程が必要になる。
a.目的の機能を実現するためのデータパス(データフローグラム)を設計する工程。
b.目的のデータパスを、用意された1または複数種類のエレメントの接続により実現する、すなわち、エレメント単位のデータパスを設計する工程。
c.目的のエレメント単位のデータパスを、具体的なエレメントの配置とそれらの結合というレイアウト情報にする工程。
これらの工程は、マニュアルで行うことも可能である。しかしながら、実際には、エレメント間のタイミングを調整したり、複数のデータパスを同一の領域に配置する必要があったり、用意されたエレメントの数や種類の過不足をデータパス間で調整する必要があるなど、数多くの要素を考慮する必要がある。このため、マニュアルでは、データパスを実際に実装できるようなレイアウト情報は得られない。したがって、適当なソフトウェアを用いて行うことになる。
このため、データ処理装置にレイアウトされたデータパスのパラメータを変更しようとしても、様々な条件により、そのデータパスを実装するために使用されている具体的なレイアウトのロケーションを特定することはかなり難しい。さらに、1つのエレメントが複数の論理ゲートを含んでいることが多く、エレメントが特定されたとしても、そのエレメントの、どの論理ゲートが実際に変更しようとしているパラメータに影響されるのかを特定することはほとんど不可能である。可能であるとしても、コンピュータ設計で生成されたレイアウト情報をマニュアルで解析することは時間の浪費に過ぎず、そのような設計方法は現実的ではない。
たとえば、メモリ間の転送を伴う処理を実行するデータパスであれば、コピー元のアドレス、コピー先のアドレス、コピーワード数などのパラメータを変更することにより、同じ構成のデータパスにより種々の目的で利用できる。しかしながら、複数のエレメントの接続により、パラメータの異なるデータパスを構成するデータ処理装置を設計する場合には、実際には、パラメータの異なるデータパスを再構成するように設計した方が、設計的には遥かに経済的であるという結論になる。データパスを再構成することに何らかのネックがあり、データパスの構成を変えたくない場合は、物理的に固定され、プログラムで呼び出し可能なメモリあるいはレジスタを用い、そのレジスタとの配線を含めてデータパスをレイアウトし、プログラムによりメモリの内容を書き換えるという方法がある。この方法は、パラメータを設定するためのレジスタが余分に必要になるだけではなく、目的の処理を行うデータパスを構成するためのエレメントに加えて、パラメータを設定するレジスタとの接続のためにもデータパスを余分に設ける必要があるので、エレメントの利用効率が低下し、データパスも複雑になる。したがって、複数のデータパスを動的に再構成して種々の処理を行おうとする場合は、採用しがたい解決策である。
特開2004−40188号公報のように、パラメータ付専用ハードウェアを再構成可能な回路とは独立して設けることも可能である。しかしながら、再構成可能な回路が、パラメータ付専用ハードウェアで構成しようとするデータパスを構成できる程度のエレメントを備えている場合は、パラメータ付専用ハードウェアは重複したハードウェアを持った回路となり、LSIあるいはASICといった形でパッケージングされるデータ処理装置をサイズダウンし、低消費電力化し、低コスト化することが要求される場合は採用し難い。
そこで、本発明においては、複数のプロセッシングエレメントを用いてデータパスを構成可能なデータ処理装置において、各プロセッシングエレメントに対応する各メモリに格納されるコンフィグレーションを、データパスを使用する際にプロセッシングエレメントの単位で簡単に制御できるコードを生成する方法を提供することを目的としている。そして、ユーザが各プロセッシングエレメントの物理的なアドレスを意識することなく、各プロセッシングエレメントのコンフィグレーション情報を自由自在に扱って、それらのエレメントにより構成されたデータパスの処理を、ソースコード上でパラメータを変更することにより自由に変更することができる環境をユーザに提供することを本発明の目的としている。
本発明においては、複数のプロセッシングエレメントを接続することにより少なくとも1つのデータパスが形成される少なくとも1つの回路区画を有し、プロセッシングエレメントにそれぞれ対応するメモリ領域にコンフィグレーション情報をセットすることによりプロセッシングエレメントの機能が制御されるデータ処理装置によりアプリケーションを実行するための活性化コード(活動化コード)の生成方法であって、以下のステップを有する生成方法を提供する。
A. アプリケーションの少なくとも一部を、第1のパラメータが関係する第1の機能を利用して実行するようにソースコードを生成する第1のステップ。
B. 第1の機能を含む処理を行う第1のデータパスを、少なくとも1つの回路区画にマッピングするためのレイアウト情報であって、複数のプロセッシングエレメントの接続情報を含むレイアウト情報をコンピュータにより生成すると共に、第1のパラメータに関係するプロセッシングエレメントに対応するメモリ領域へのアクセスを可能とするアクセス情報を生成する第2のステップ。
C. 第1のパラメータが関係する命令を含むソースコードと、アクセス情報とを少なくとも入力として、活性化コードをコンピュータにより生成する第3のステップ。
活性化コードは、その活性化コードにより回路区画に実装された1つのデータパスにより実行されて、他のデータパスの第1のパラメータに関係するエレメントに対応するメモリ領域へアクセスし、パラメータを変更するものであっても良い。データ処理装置が、メモリ領域にコンフィグレーション情報をセットすることにより、プロセッシングエレメントの機能を制御する制御ユニット、例えば、RISCなどの制御用のプロセッサを有している場合は、活性化コードは制御ユニットにより実行される実行用プログラム(実行コード)である。
第2のステップ(レイアウトステップ)においては、適当な規模の論理および/または算術演算を実行可能な複数のプロセッシングエレメント(以降において、エレメントと記述することもある)を備えた回路区画にデータパスをマッピングするためのレイアウト情報を、コンピュータを利用して生成する。この際、ソースコード(ソースプログラム)において使用される第1のパラメータが予め判明しているので、レイアウト情報を生成する際の、コンピュータにおける処理をトレースして第1のパラメータに関係するプロセッシングエレメントのメモリ領域のアドレスを示すアクセス情報を生成することが可能である。アクセス情報は、エレメントにそれぞれ対応するメモリ領域の全体を示す情報でも良い。さらに詳細なアクセス情報としては、エレメントに対応するメモリ領域のうち、第1のパラメータに対応して何らかの処理が行われるワードあるいはバイト単位のメモリ領域の詳細なアドレスであっても良い。
本発明の生成方法では、第1のパラメータに関係するメモリ領域へのアクセス情報を、ソースコードをコンパイルして活性化コード、例えば、実行用プログラムを生成する第3のステップにフィードバックする。これにより、第1のパラメータに関係する命令を、その第1のパラメータにより影響を受けるメモリ領域を具体的にアクセスする情報を含んだ活性化コードに変換することができる。例えば、第1のパラメータにより影響を受けるメモリ領域を、その具体的なアドレスに基づき操作する実行コードに変換することができる。したがって、ソースコードを生成するユーザは、第1のパラメータにより具体的に操作されるプロセッシングエレメントの物理的なアドレスを意識することなく第1のパラメータを記述することができる。
本発明の1つの好適な形態は、第1の機能が第1のパラメータにより処理が変更される機能を含むケースである。そのケースにおいては、アクセス情報は、第1のパラメータにより処理が変更されるプロセッシングエレメントのメモリ領域のアドレスを含み、ソースコードは、第1のパラメータを変更する命令を含む。そして、本発明により、ユーザは、第1のパラメータにより具体的に操作されるプロセッシングエレメントの物理的なアドレスを意識することなく、それらのエレメントにより構成されたデータパスの処理を、ソースプログラム上で第1のパラメータを変更することにより自由に変更することができる。
本発明により、ユーザは、プロセッシングエレメントの物理的なアドレスを意識することなく、各プロセッシングエレメントのコンフィグレーション情報を自由自在に扱えるようになる。これにより回路の機能を変更するパラメータをストレスなく記述できることは本発明の最も有用な効果であるが、本発明によりユーザフレンドリーな機能として開放される機能はこれに限定されることはない。本発明により、プロセッシングエレメントのコンフィグレーション情報に対するアクセスが要求される全ての処理のソフトウェア設計が容易になる。たとえば、デバッグ目的で所望のエレメントのコンフィグレーション情報を読み出したり、書き込むためのコード(プログラム)も極めて容易に生成することができる。
近年、複雑化するLSIの設計過程において、ハイレベルなハード/ソフト協調設計を行うことが提唱されているが、いずれも提供された仕様をハードウェアにより実現する部分と、ソフトウェアにより実現する部分に分離した後は、基本的に独立した設計過程を経る。設計および生成過程において、相互のタイミング収束を検証して、その結果をハードウェアおよびソフトウェアに反映するような協調検証を行うことが提唱されている。しかしながら、本発明において開示しているような、ハードウェア設計の具体的な結果により、ソースコードの命令自体のコンパイル結果が異なるような、実行用プログラムの生成方法は提唱されていない。
本発明の活性化コードを、コンピュータを用いて生成する、すなわち、コンパイルするためのプログラムは、アプリケーションの少なくとも一部を、第1のパラメータが関係する第1の機能を利用して実行するように生成されたソースコードに対応して、第1の機能を含む処理を行う第1のデータパスを、データ処理装置の回路区画にマッピングするためのレイアウト処理を実行するための記述を含む。そして、レイアウト処理では、複数のプロセッシングエレメントの接続情報を含むレイアウト情報を生成すると共に、第1のパラメータに関係するプロセッシングエレメントに対応するメモリ領域へアクセスするためのアクセス情報を生成する。
このコンパイル用のプログラムは、さらに、第1のパラメータが関係する命令を含むソースコードと、アクセス情報とを少なくとも入力として、データ処理装置の活性化コードを生成する処理を実行するための記述を有するものであっても良い。コンピュータにおいて実行するための記述とは、ソースコードあるいはコンピュータが実行可能な形式の命令、命令群、マクロ命令、各処理を行うモジュールやサブルーチンをコールする命令などを含むものである。このコンパイル用のプログラム、あるいはプログラム製品は、CD−ROMなどの適当な記録媒体に記録して提供することが可能であり、インターネットなどのコンピュータネットワークを介して提供することも可能である。
また、本発明においては、少なくとも1つの回路区画を有するデータ処理装置においてアプリケーションを実行するための活性化コードを生成する装置であって、アプリケーションの少なくとも一部を、第1のパラメータが関係する第1の機能を利用して実行するように生成されたソースコードに対応して、第1の機能を含む処理を行う第1のデータパスを少なくとも1つの回路区画にマッピングするためのレイアウト情報であって、複数のプロセッシングエレメントの接続情報を含むレイアウト情報と、第1のパラメータに関係するプロセッシングエレメントに対応するメモリ領域のアドレスを含むアクセス情報とを生成するレイアウト手段と、第1のパラメータが関係する命令を含むソースコードと、アドレス情報とを少なくとも入力として、活性化コードを生成する手段とを有する生成装置を提供する。
データ処理装置の回路区画におけるプロセッシングエレメントとメモリ領域との関係は、メモリ領域にセットされたコンフィグレーション情報によりプロセッシングエレメントの機能がダイナミックに制御できるものであれば良く、必ずしも物理的にプロセッシングエレメントとメモリ領域とが同じ位置に配置されている必要はない。しかしながら、配線遅延や、プロセッシングエレメントを構成するゲート単位あるいはトランジスタ単位の構成とメモリ領域との情報量を考慮すると、プロセッシングエレメントは物理的にメモリ領域を含んでいるか、または、少なくともグループ単位でプロセッシングエレメントの近傍にメモリ領域が配置されることが好ましい。そのようなデータ処理装置においては、アクセス情報は、プロセッシングエレメント自身へのアクセスを可能にする物理的なアドレスに対応した情報を含む。
少なくとも1つの回路区画が、複数のプロセッシングエレメントの接続を変更することによりデータパスを再構成する接続手段を備えている再構成可能なデータ処理装置においては、ソースコードが、データパスを再構成する命令を備えている。また、レイアウト情報を生成する第2のステップでは、第1のデータパスを再構成するためのレイアウト情報と共に、再構成された第1のデータパスにおけるメモリ領域へのアクセスを可能にするアクセス情報を生成する。したがって、本発明は、プロセッシングエレメントにより固定的なデータパスを形成するデータ処理装置の設計および開発においても有用であり、また、再構成可能なデータパスを形成するデータ処理装置の設計および開発においても有用である。
さらに、本発明の活性化コードの生成方法は、少なくとも1つの回路領域の固定した位置にデータパスを再構成するデータ処理装置のみならず、任意の位置にデータパスを再構成するデータ処理装置の設計および開発においても有用である。その場合は、アクセス情報は、相対的なアドレスを含むものになる。すなわち、データ処理装置が、回路区画の任意の場所にデータパスを再構成する手段を備えている場合は、レイアウトステップでは、第1のデータパスを任意の場所に再構成するための相対的なレイアウト情報と、任意の場所に再構成された第1のデータパスにおけるメモリ領域の相対的なアドレス情報とを生成する。
さらに、本発明の活性化コードの生成方法では、ソースコードに、第1の機能をインスタンス形式で記述することができる。レイアウト情報を生成する第2のステップでは、第1の機能をオブジェクト形式で記述したライブラリ情報を使用することにより、インスタンス毎のメモリ領域へのアクセスを可能にする情報、例えば、インスタンス毎のメモリ領域のアドレスを含むアクセス情報を生成する。活性化コードを生成する第3のステップでは、第1のパラメータに関係する命令を、インスタンス毎にプロセッシングエレメントに対応するメモリ領域にアクセスするコードに変換することができる。
図1は、プロセッシングユニット(PU)の概要を示す図である。 図2は、マトリクスの概要を示す図である。 図3は、プロセッシングエレメント(PE)の一例を示す図である。 図4は、PEの他の例を示す図である。 図5は、PEにコンフィグレーションデータをロードする構成を示す図である。 図6は、実行用のプログラムを生成する過程を示す図である。 図7は、DDDLコードの一例を示す図である。 図8は、アクセス情報の一例を示す図である。 図9は、ユーザソースプログラムの一例を示す図である。
図1に、本発明により生成された実行用プログラムによりアプリケーションを実行するデータ処理装置の一例を示してある。このデータ処理装置1は、1つのチップ化されたプロセッシングユニット(PU)1であり、図2に示すように複数プロセッシングエレメント(PE)21によりデータパスを再構成可能なマトリクスと称される回路区画19を備えている。データ処理装置1は、さらに、PE21などに対してコンフィグレーション情報(コンフィグレーションデータ)を供給して制御する制御用プロセッサ(RISC)35と、コンフィグレーション情報を伝送するためのコントロールユニット(TCU)59および転送路51〜58とを備えている。転送路51〜58は、複数のPE21を複数にグループ分けしたセグメント10〜15、入力バッファ33および出力バッファ34のそれぞれに張り巡らされている。これらは、RISC35からのみではなく、他のPU1などから供給されるコンフィグレーションデータをPE21などに転送する機能も備えている。このPU1においては、TCU59が、バススイッチングユニット(バスインターフェイス、BSU)36に接続されており、RISC35はBSU36を介してコンフィグレーションデータをTCU59を介して各PE21に供給する。
PU1は、マトリクス19の内部にデータを入出力するインターフェイスが2種類用意されている。1つは、ダイレクト入力31a〜31cおよびダイレクト出力32a〜32cであり、マトリクス19のPE21に対して外部から直にデータを入力し、また、出力することができる。ダイレクト入力31a〜31cおよびダイレクト出力32a〜32cを用いて複数のPU1を接続して、データパスを構成するPE21の実数をさらに増やすことができる。これにより、1つのチップ(PU)1では回路要素が不足するようなアプリケーションの処理も複数のチップ1を連結することにより対処できる。PU1は、さらに、他の入力方法として、入力バッファ33と出力バッファ34とを用いてマトリクス19にデータを供給する構成を備えている。入力バッファ33は4つの入力エレメントLDBを備えており、バッファ33の構成および制御をコンフィグレーションデータにより設定できる。出力バッファ34も同様であり、4つの出力エレメントSTBを備えており、構成および制御をコンフィグレーションデータにより設定できる。
BSU36には、複数のコンポーネントあるいはインターフェイスが接続されており、RISC35に限らず、これらのコンポーネントあるいはインターフェイスを用いてコンフィグレーションデータをマトリクス19に送り込むことができる。また、マトリクス19の内部に再構成されたデータパスから他のデータパスを構成するためのコンフィグレーションデータをPE21に供給できる。たとえば、SDRAMインターフェイス37を介して外部メモリからコンフィグレーションデータを提供でき、PCIバスインターフェイス38を介してPCIバスに接続された外部プロセッサからもコンフィグレーションデータを供給できる。また、その他のコンポーネントとしてDMAC39が接続され、バスブリッジ回路41を介してシリアルインターフェイスコントローラとなる非同期通信機(UART)などの汎用インターフェイス40が接続されている。
再構成可能な回路区画であるマトリクス19は、図1においては、複数のセグメント10から15に分かれて記載されている。マトリクス19は、全体としては図2に示すように、複数のプロセッシングエレメントがアレイまたはマトリクス状に2次元に配置された回路領域となっており、そのため回路領域19はマトリクスと称されている。PU1のマトリクス19は、368個のPE21を備えており、それらに対してコンフィグレーションデータを供給する転送路を分けて形成するために6つのセグメント10〜15に形式上分割されている。しかしながら、複数のPE21からデータパスを構成し、入力データを処理するという点では、これらのセグメント10〜15によりPE21が複数にグループ分けされているのではない。したがって、配線群22によりPE21をフレキシブルに接続し、複数のセグメントに跨ったデータパスまたはデータフローを自由に構成できる。
マトリクス19は、縦横に2次元に配置された複数のプロセッシングエレメント(PE)21と、それらの間に格子状に配置された配線22と、配線22の接続ポイントで縦横の配線22の接続を自由に切り替えることができるスイッチングユニット23とを備えている。PE21は、ルックアップテーブルなどにより自在に機能を設定可能なものであっても良い。本例のPE21は、算術論理演算用のエレメント、遅延用のエレメント、メモリ用のエレメント、データを入力または出力するためにアドレスを発生させるエレメント、データの入力または出力用のエレメントなど、ある程度機能的に異なるエレメントを含んでいる。このPU1においては、機能的に異なる処理に適した内部構成のエレメントを複数種類用意し、それらの機能的に異なる複数のエレメントをグループに分けて配置することによりマトリクス19のスペース効率を向上している。また、PU1においては、ある程度の機能グループに分けたエレメントを配置することにより冗長性が減少するのでAC特性および処理速度も向上できるといったメリットを得ている。
図3および図4は、PE21の一例である。PE21は、機能を変更可能な内部データパス領域29と、その内部データパス領域29の機能をコンフィグレーション情報により制御する設定ユニット60とを備えている。内部データパス領域29と配線22とは入出力のセレクタ25および26を介して接続されている。したがって、コンフィグレーション情報により配線22に含まれる複数のバスのいずれかが入力用のバスおよび出力用のバスとして選択され、PE21により形成されるデータパスの構成をコンフィグレーション情報により制御できる。
図3に示したPE21aの内部データパス領域29aは、カウンタなどからなるアドレス発生回路28と、セレクタSELとを備えている。設定ユニット60は、コンフィグレーション情報が格納されるコンフィグレーションメモリ68を備えており、内部データパス領域29aは、コンフィグレーション情報により機能が制御される。このPE21aでは、コンフィグレーション情報により設定された条件でアドレス発生回路28により生成されたアドレスが出力信号doとして配線22に出力される。そのアドレス信号は、行配線および列配線を介して、そのまま、あるいは、他のPE21によって処理された後、入力信号dixあるいはdiyとしてPE21aにフィードバックされる。そして、コンフィグレーション情報によりセットされた条件でセレクタSELが選択したアドレスがマトリクス19からデータ入力あるいは出力用のアドレスとして出力される。
したがって、PE21aの機能はコンフィグレーションメモリ68に格納されるコンフィグレーション情報を書き換えることにより自由に制御できる。たとえば、メモリ間の転送を伴う処理を実行するデータパスを、1つまたは複数のPE21aを用いて構成した場合は、コンフィグレーション情報に含まれるコピー元のアドレス、コピー先のアドレス、コピーワード数などのパラメータを変更することにより、同じ構成のデータパスにより種々の目的で利用できる。
図4に示したPE21bは、算術演算および論理演算に適した構成である。内部データパス部29bは、シフト回路SHIFT、マスク回路MASK、論理演算ユニットALUを備えている。そして、上記のPE21aと同様に、設定ユニット60のコンフィグレーションメモリ68に格納されたコンフィグレーション情報により、これらのシフト回路SHIFT、マスク回路MASK、論理演算ユニットALUの状態が設定される。したがって、コンフィグレーション情報を変えることにより、入力データdixおよびdiyを加算あるいは減算したり、比較したり、論理和あるいは論理積を演算することができ、その結果が出力信号doとして配線(バス)22に出力することができる。
図5に、PE21において転送路を用いてデータを入出力する機構を示してある。それぞれの転送路51〜56は、図2に示した夫々のセグメント10〜15に含まれるPE21に設けられた1ワード(32ビット)のレジスタ(フリップフロップ)を直列に繋ぐ配線である。ここでは、転送路51を例に説明する。PE21の設定ユニット60は32ビットのレジスタ(FF)61を備えており、32ビットの転送路51により前後に隣接するPE21のFF61と接続されている。したがって、転送路51では、1つのPE21のFF61に伝送された1ワードのデータ75は、1クロックあるいは1サイクルの遅延で次のPE21のFF61に伝送される。
設定ユニット60は、FF61に格納されたデータ75をデコードするデコーダ62と、データ75を格納するためにバックグラウンドで動作するバックグラウンド動作部63と、ローカルのデータパス領域29の設定を行うコンフィグレーションデータが格納されるフォアグラウンド動作部64とを備えている。バックグラウンド動作部63は、3バンクのバックグラウンドメモリ65と、FF61に格納されたデータ75をバックグラウンドメモリ65の各バンクと直に出力するラインに振り分けるセレクタ66と、メモリ65のバンクを選択してデータを出力できるセレクタ67とを備えている。
フォアグラウンド動作部64は、データパス領域29の現状のコンフィグレーションを維持するフォアグラウンドメモリ68を備えている。したがって、このフォアグラウンドメモリ68がデータパス領域29の機能を実際に制御するコンフィグレーションメモリとなり、このメモリ68のコンフィグレーションデータの一部あるいは全部を書き換えることによりPE21の機能あるいは動作は、PE21が設計された範囲で自由に制御することができる。フォアグラウンド動作部64は、フォアグラウンドメモリ68に、バックグラウンドメモリ65または転送路51のFF61からのデータを選択して供給するセレクタ69を備えている。フォアグラウンドメモリ68にロードするコンフィグレーションデータ(設定データ)を選択するセレクタ67および69は、選択信号を選択するための第2のセレクタ72および70により制御され、転送路51によりFF61にセットされたデータおよびフォアグラウンドメモリ68に設定されたコンフィグレーションデータから制御することができる。セレクタ67および69は、RISC35からダイレクトに供給される信号により制御するようにしても良い。
設定ユニット60は、下流のPE21のFF61に供給するデータ75を、自己のPE21のFF61のデータ、バックグラウンドメモリ65のバンクのデータ、さらにフォアグラウンドメモリ68のデータのいずれかから選択できる出力セレクタ71を備えている。デコーダ62は、自己のPE21のFF61に転送されたデータ75を解析することにより、出力セレクタ71を切り替えて下流のPE21のFF61に転送されるデータ75を選択する。
このように、PU1は、RISC35により、それぞれのPE21の設定ユニット60、さらに具体的には、PE21に対応するコンフィグレーションメモリ68に適当なコンフィグレーションデータをタイムリーに供給することができる。したがって、複数のPE21により構成されるデータパスを動的に変更することができる。また、PE21の単位で、フォアグラウンドでPE21を制御しているコンフィグレーションデータの一部あるいは全部を書き換えることが可能であり、データパスの構成を変えずに、個々のPE21の機能を変更してデータパスの処理を変更することも可能である。さらに、個々のPE21のコンフィグレーションデータを読み出すことも可能であり、RISC35によりコンフィグレーションデータの一部を変更してリライトしたり、PE21からフィードバックされたコンフィグレーションデータをデバッグするために用いることも可能である。
PE21の接続を動的に変更してデータパスを再構成可能なハードウェアはこれに限定されるものではない。たとえば、配線群22を用いてPE21を接続する代わりに、PE21それ自体を接続手段として利用し、PE21同士を接続し、変更可能なデータパスを構成することも可能である。また、各PE21にコンフィグレーションデータを供給する方法としては、各PE21のコンフィグレーションメモリを個別にバス接続する方法を採用することも可能である。
図6に、与えられたユーザの仕様(アプリケーション)をPU1により実行する実行用プログラムを生成する過程を示してある。アプリケーションは、PU1あるいはPU1を実装した電子機器などの装置において処理する業務を総括的に示しており、ユーザの仕様により決定される。アプリケーションを示すユーザ仕様は、本例においては、デバイスに依存しない記述であるCソースコード(user0.c)81で与えられている。まず、Cソースコード(user0.c)81を、DDDL(Device Dependent Description Language)コンパイラ101により、PU1のハードウェア情報を含むハードウェアライブラリ82を参照してPU1に依存したプログラムを生成する。このステップST−Aでは、ソースコード81に記述された処理のほとんどを、PU1のマトリクス19のPE21により構成されるデータパスを用いて実行するように変換する。このため、PE21により構成されるデータパスを用いて実行する処理内容を、デバイス、すなわちマトリクス19に含まれるPE21の機能に依存の形式で記述したDDDLソースコード85がDDDLコンパイラ101により生成される。さらに、そのDDDLソースコード85によりデータパスが構成されるマトリクス19を制御する記述を含んだソースコード(user1.c)84も、DDDLコンパイラ101により生成される。
DDDLコンパイラ101において参照されるマトリクスライブラリ83には、ユーザプログラムにおいて多用される機能をDDDLで記述したモジュールが用意されており、DDDLソースコード85を生成する時間を短縮することができる。モジュール化される機能としては、たとえば、メモリに対するアクセス制御などの入出力に関する機能、フーリエ変換などのデータ処理に関する機能がある。ある機能を実現するためのデータパスを複数のPE21を用いて構成する方法は通常幾つかあり、それらの内、最適な構成を選択するには多大な時間を消費する。したがって、事前に最適な構成のデータパスのDDDLソースを用意することによりコンパイル時間を大幅に短縮できる。また、1つの機能に対して、幾つかの条件に対して最適な構成の複数のデータパスのDDDLソースをライブラリ83に用意してコンパイラ101が選択できるようにすることにより、短時間でユーザの使用に適したDDDLソースを生成することができる。
さらに、ある機能を実現するデータパスのパラメータを変更することにより、ユーザの使用に適したDDDLソースを提供できることも多い。そのような、パラメータが関係する機能に対しては、ユーザソースコードから変更可能な1つまたは複数のパラメータと、その機能を実現するデータパスを記述するDDDLコードがライブラリ83に用意される。したがって、DDDLコンパイラ101は、ユーザ仕様を実現するユーザソースコード84、ユーザ仕様を実現するユーザDDDLコード85に加えて、ユーザソースコード84あるいはユーザDDDLコード(user.dd2)85に使用される1つまたは複数のモジュールのDDDLコード(matrix.dd2)86を出力する。そして、ユーザソースコード84には、選択されたDDDLコード86の処理を決定するパラメータを定義あるいは変更する命令が含まれる。
ライブラリ83に用意されたモジュールのDDDLコードをオブジェクト形式で記述することにより、ソースコード(ソースプログラム)84では、そのモジュールで実現しようとする機能はインスタンス形式で記述することができる。したがって、そのモジュールで使用されるパラメータを制御する命令をインスタンス形式で記述することができる。このため、同一のモジュールのインスタンスを複数のデータパスで用いるような構成を、ユーザソースプログラムにおいて極めて容易に記述することができる。
さらに、ユーザの要求する処理をPU1において実現するデータパス(データフロー)を構成するためにPE21のリソースが不足する場合がある。その場合は、再構成可能なマトリクス19の機能を利用して、PE21を時分割で使用し、マトリクス19にデータパスを再構成する必要がある。したがって、DDDLコンパイラ101では、マトリクス19のPE21を時分割で使用するための複数のデータパスの構成が生成され、それぞれのデータパスの構成を記述した複数のDDDLコードが出力される。さらに、ユーザソースコード84には、データパスを再構成する命令が含まれる。
DNAコンパイラ102は、ユーザソースコード84、ユーザDDDLコード85、1つまたは複数のモジュールのDDDLコード86を入力としてマトリクス19の配置配線を行う。そのため、DNAコンパイラ102は、DDDLコードに記述されたデータパスをマトリクス19にマッピングし、そのレイアウト情報87を出力する。このレイアウトを行うステップST−Bでは、ユーザソースコード84により変更可能なパラメータが定義されているモジュールのDDDLコード86をマッピングする際に、そのパラメータに関係するPE21のコンフィグレーションメモリ68のアドレスを示すアクセス情報をヘッダーファイル(matrix.h)88としてレイアウト情報87と共に出力する。すなわち、ステップST−Aにおいては、DDDLコンパイラ101により、アプリケーションの少なくとも一部を、ある(第1の)パラメータが関係する機能(第1の機能)を利用して実行するようにユーザソースコード84およびDDDLソースコード85を生成する。例えば、ソースコード85ではパラメータを設定したり、変更することにより機能の具体的な動きを決定する。ステップST−Bにおいて、レイアウト情報に加えて、第1のパラメータに関係するPE21に対応するコンフィグレーションメモリ68へのアクセスを可能とするアクセス情報を生成する。
DDDLコード86をPE21により具体的にマッピングする際には、データパスを実現するための具体的なPE21の位置と、そのPE21に含まれるゲート回路の具体的な構成が決定される。したがって、DDDLコード86に、予め変更可能なパラメータが含まれていれば、それにより影響を受ける具体的なPE21と、そのPE21に含まれる具体的なゲート回路とが特定され、そのゲート回路を制御するコンフィグレーション情報が格納されるコンフィグレーションメモリ68のアドレスも特定される。あるいは、パラメータにより影響を受けるPE21のコンフィグレーションメモリ68のアドレスと、コンフィグレーションメモリ68にセットされるデータ中のパラメータにより影響を受けるワードあるいはビットの位置が特定される。
本例のマトリクス19においては、コンフィグレーションメモリ68がPE21に物理的に含まれているので、コンフィグレーションメモリ自体のアドレスは、マトリクス中のPE21のアドレスと同一になる。複数のPE21に対して1つのコンフィグレーションメモリが用意されているデバイスにおいては、PE21のアドレスとコンフィグレーションメモリのアドレスとは一対一では対応しない可能性がある。その場合は、共通のコンフィグレーションメモリの中で、パラメータの変更が影響を与えるPE21を制御するデータが格納されるアドレスを含むアクセス情報88を生成できる。PE21をフロントで制御する前に、コンフィグレーションデータの内のパラメータにより影響を受けるアドレスを特定して更新することも可能である。しかしながら、多くの場合、フロントで制御する前は、データ量を少なくするためにコンフィグレーションデータは圧縮されており、圧縮された状態で更新を行うことは伸張および圧縮するためのハードウェアと処理時間が必要となり好ましくない。
ユーザソースプログラム84に、インスタンス形式でモジュール86が利用されている場合は、DNAコンパイラ102は、インスタンス毎にデータパスをマトリクス19にマッピングし、その配置配線情報を含むレイアウト情報87を出力する。それと共に、DNAコンパイラ102は、データパス毎、すなわち、インスタンス毎に、パラメータにより影響を受けるPE21のコンフィグレーションメモリのアドレスを含むアクセス情報88を出力する。
さらに、マトリクス19に、複数のデータパスが動的に再構成する必要がある場合は、DNAコンパイラ102は、マトリクス19にデータパスを再構成するためのレイアウト情報87を出力する。また、DNAコンパイラ102は、再構成されたデータパスにおいて、パラメータにより影響を受けるPE21のコンフィグレーションメモリのアドレスを含むアクセス情報88を出力する。
マトリクス19を構成するPE21が単一の構成であると、PE21により構成されるデータパスをマトリクス19の任意の場所に構成することにより、マトリクス19の資源をさらに効率よく利用できる。しかしながら、PE21の絶対的な位置は、実際にデータパスがマトリクス19に実装されるまで決定されず、そのときまでPE21のコンフィグレーションメモリのアドレスも決まらない。したがって、そのようなPU1を対象にDNAコンパイラ102がレイアウト情報を生成する場合は、DDDLコード85または86によるデータパスをマトリクス19の任意の場所に再構成するための相対的なレイアウト情報87を出力し、任意の場所に再構成されたデータパスにおいてパラメータにより影響を受けるPE21のコンフィグレーションメモリのアドレスを含むアクセス情報88を出力する。PU1に、データパスが実装されたマトリクス19の基準のアドレスによりアクセス情報88を加工する機能を設けることにより、絶対的なアドレスを含むアクセス情報と同様に取り扱うことができる。
さらに、DNAコンパイラ102は、モジュール化されたDDDLコード86のパラメータを変更する機能を制御するソースコード(matrix.c)89を出力する。この実行用プログラムの生成方法においては、ユーザソースプログラム88において、あるモジュールに関連するパラメータを個々に変更する命令を記述するアドバンスドモードに加えて、あるモジュールに関連するパラメータを一括で変更するマクロ命令を記述可能なベーシックモードをサポートする。したがって、ユーザソースプログラム88に記述されたマクロ命令により、DDDLコード86に関するパラメータを変更する機能を定義するソースプログラム89を用意することにより、Cコンパイラ103がマクロ命令を解析して実行用プログラムを生成できるようにしている。
実行用プログラムを生成するCコンパイラ(gcc)103は、ユーザソースプログラム90、マトリクス19にデータパス化されるモジュールのソースコード89、およびCソースライブラリ91に含まれるそのモジュールのソースコードを入力としてPU1において実行可能なコード93を生成する。ユーザソースプログラム90は、ソースプログラム84に、レイアウト情報を生成するステップST−Bにおいて生成されたアクセス情報がヘッダーファイル88としてインクルード(include)されたものである。したがって、この実行用プログラムを生成するステップST−Cでは、パラメータが関係する命令、例えば、パラメータを変更する命令を含むユーザソースプログラム84と、アクセス情報88とがコンパイラ103の入力情報に含まれ、それらの情報に基づき実行用プログラム93が生成される。このため、実行用プログラム93を生成するCコンパイラ103においては、ユーザソースプログラム84に含まれたパラメータを変更する命令によりアクセスすべきメモリのアドレスが明確になっており、そのメモリのアドレスに対してコンフィグレーションデータを書き込む、あるいはそのメモリのアドレスのコンフィグレーションデータを書き換える実行用プログラム93が自動的に生成される。
これらの実行用プログラムを生成する一連のプロセスST−A、ST−BおよびST−Cを実行するDDDLコンパイラ101、DNAコンパイラ102およびCコンパイラ103は、上述した機能を含むコンパイラとしての機能を適当なリソースを有するコンピュータで実行するための記述を有するプログラム製品としてCD−ROMなどの記録媒体に記録して提供される。これらのプログラム製品は、インターネットなどの異なるメディアにより提供することも可能である。また、これらのプログラム製品は、それぞれ独立した製品として提供することも可能であり、一つのパッケージとして提供することも可能である。
デバイスに依存しないソースプログラム81からデバイスに依存したソースプログラム84およびDDDLコード85を生成するプロセスST−Aは、デバイスに依存した形式に変換する要素に対して実行手順、リソースの割り振りなど最適化のために検討する要素が多く、プログラマの思想や経験が活用されるプロセスである。したがって、現状ではソフトウェアとの協調設計による半自動あるいはマニュアルで行われることも多い。これに対し、配置配線を行うプロセスST−Bおよび実行用プログラムを生成するプロセスST−Cは、変換する要素が膨大であり、プログラムのステップ数も膨大になることからマニュアルで行うことは非現実的であり、コンピュータにより自動生成せざるを得ない。そして、本発明によれば、コンピュータにより配置配線を自動生成するハードウェア設計分野であるステップST−Bにおいてアクセス情報88を生成し、コンピュータにより実行用プログラムを自動生成するソフトウェア設計分野であるステップST−Cにおいてアクセス情報88を使用する。これにより、ハードウェア設計の最終過程と、ソフトウェア設計の最終過程とを結合できるので、ユーザは、ソフトウェア設計においては、最後段階まで、詳細なアドレスをクリアにしないままのハードウェア依存の命令を使用して設計を進めることができる。
図7に、DDDLコード(matrix.dd2)86の一例を抜粋して示してある。記述86aにおいて、マクロ名「cp」というDDDLソースコードが定義され、その中で「dna_setparmphy_@_U6( )」という記述86bおよび「dna_setparmphy_@_U8( )」という記述86cにより変更可能なパラメータをオブジェクト形式で指定している。
図8に、アクセス情報(matrix.h)88の一例を示してある。このアクセス情報88は、ユーザソースプログラム84に、「cp1」というインスタンス名でDDDLコード86に定義された「matrix」というデータパスのパラメータを変更する命令が記述されている場合に、その命令に対応して出力される。このため、「・・・cp1_U6」および「・・・cp1_U8( )」というインスタンス形式でパラメータが利用されるPE21のアドレスが記述され、「dna_setparmphy_cp1_U6( )」および「dna_setparmphy_cp1_U8( )」という記述により、パラメータにより書き換えが必要になるメモリの詳細なアドレスが定義されている。
図9に、アクセス情報88をインクルードしたユーザソースコード(user2.c)90の一例を抜粋して示してある。ユーザソースコード90においては、ヘッダの記述90aによりアクセス情報88が取り込まれている。「dna_cfgram_load3( )」という記述90bにより、DDDLコード86の「matrix」というデータパスのコンフィグレーションデータが、回路区画であるマトリクス19の適切なPE21の設定ユニット60にロードされる。「dna_config( )」という記述90cにより、ロードされたコンフィグレーションデータがデータパスを構成するためのPE21の設定ユニット60のフォアグラウンドメモリ(コンフィグレーションメモリ)68にロードされ、内部データパス部29を制御する。これにより、回路区画であるマトリクス19に目的のデータパスが構成される。
「dna_setparmmacro_cp1( )」というインスタンス名cp1を指定したマクロ命令90dにより、データパス「matrix」において変更可能として開放されているパラメータを予め定義した「input1」という値にセットし、「dna_run( )」という記述90eによりデータパス「matrix」による処理を開始する。そのデータパスの処理が終了すると、「dna_stop( )」という記述90fによりデータパスの動作を停止する。このようにして、記述90dにより設定したパラメータにより制御される処理が実行される。
さらに、再度、記述90gにより、コンフィグレーションデータをフォアグラウンドのコンフィグレーションメモリ68にロードする。次に、「dna_setparmmacro_cp1( )」というマクロ命令90hにより、データパス「matrix」のパラメータを、予め定義した「input2」という値にセットし、記述90jによりデータパス「matrix」による処理を開始する。これにより、同じ構成のデータパス「matrix」を異なるパラメータで動作させることが可能となり、新たなコンフィグレーションデータをロードする必要はない。
ユーザソースコード90をコンパイルして実行用プログラム93を生成するステップST−Cにおいて、Cコンパイラ103は、「dna_setparmmacro_cp1( )」というマクロ命令90dおよび90hにおいて変更されるパラメータの詳細は、データパス「matrix」のソースコード89を参照することにより判明する。また、Cコンパイラ103は、それらのパラメータにより変更すべきデータが格納された、あるいは格納されるメモリの詳細なアドレスは、ソースコード90に含まれたアクセス情報88を参照することにより判明する。したがって、ユーザソースコード90のユーザ命令には、パラメータの変更に係るレジスタあるいはメモリの詳細なアドレスが明示されていなくても、Cコンパイラ103は、パラメータを変更するマクロ命令90dおよび90hにより、該当するPE21を制御するコンフィグレーションメモリ68の該当するアドレスの内容を書き換える実行用の命令を自動的に生成することができる。
なお、上記では、本発明により、PU1の制御用のプロセッサ35により実行されるプログラム(実行コード)を生成する例を示しているが、本発明により生成される活性化コードは制御用プロセッサの実行用プログラムに限定されない。再構成可能な回路区画であるマトリクス19に適当なデータパスを構成することにより、マトリクス19に制御用プロセッサとしての機能を与えて、マトリクス19の他のデータパスを制御することが可能である。この場合は、本発明により生成される活性化コードは、マトリクス19で実行されるものになる。さらに、各PE21の制御ユニット60にロードされて、ハードウェアの構成を制御するコンフィグレーション情報の中に、適切なタイミングでパラメータを変更してデータパスの機能を切り換える情報を埋め込むことも可能である。この場合は、コンフィグレーション情報が、活性化コード(活動化コード)としての機能も備えている。
また、上記では、C言語によりソースプログラムを記述した例を説明しているが、JAVA(登録商標)などの他のソースプログラムを記述するのに適した言語を用いることは可能である。また、本発明の対象となるアプリケーションプログラムは、エレメントを接続することによりデータパスを構成可能なデータ処理装置において、処理の対象となるソフトウェア全体を含むものであり、OS、OSを前提としたアプリケーションプログラム、さらにはデバッグ用のプログラムを含む。また、上記では、パラメータを変更するプログラムを例に説明しているが、データパスの処理結果が反映されるパラメータを読み出したり、書き換える処理を含むデバッグ用などのプログラムの設計および開発にも本発明を適用することが可能である。
以上に説明したように、本発明においては、パラメータに処理内容が変更されるような機能を実現するデータパスを、複数のエレメントの接続により実現するようにレイアウトを決定する際に、そのパラメータに関係するプロセッシングエレメントのコンフィグレーション情報が格納されるメモリ領域のアドレスを示すアクセス情報を生成し、ソースコードをコンパイルして活性化コードを生成する際に使用する。この生成方法は、電気あるいは電子回路、システムLSI、ASIC、FPGAなどを含む半導体集積回路に限らず、電子・光集積回路など、適当な規模の論理および/または算術演算する機能を備えた複数のプロセッシングエレメントの接続によりデータパスを構成可能な全てのデータ処理システムに適応可能である。さらに、パーソナルコンピュータなどの適当なコンピュータとしての機能を備えた演算ユニットをエレメントとしてコンピュータネットワークで接続し、データパスを構成するような分散型のデータ処理システムにおいても本発明を適用することが可能である。

Claims (14)

  1. 複数のプロセッシングエレメントを接続することにより少なくとも1つのデータパスが形成される少なくとも1つの回路区画を有し、プロセッシングエレメントにそれぞれ対応するメモリ領域にコンフィグレーション情報がセットされることにより前記プロセッシングエレメントの機能が制御されるデータ処理装置によりアプリケーションを実行するための活性化コードの生成方法であって、
    前記アプリケーションの少なくとも一部を、第1のパラメータが関係する第1の機能を利用して実行するようにソースコードを生成する第1のステップと、
    前記第1の機能を含む処理を行う第1のデータパスを前記少なくとも1つの回路区画にマッピングするためのレイアウト情報であって、前記複数のプロセッシングエレメントの接続情報を含むレイアウト情報をコンピュータにより生成すると共に、前記第1のパラメータに関係する前記プロセッシングエレメントに対応する前記メモリ領域へのアクセスを可能とするアクセス情報を生成する第2のステップと、
    前記第1のパラメータが関係する命令を含む前記ソースコードと、前記アクセス情報とを少なくとも入力として、前記活性化コードをコンピュータにより生成する第3のステップとを有する、生成方法。
  2. 前記データ処理装置は、前記メモリ領域に前記コンフィグレーション情報をセットすることにより、前記プロセッシングエレメントの機能を制御する制御ユニットを有しており、
    前記活性化コードは、前記制御ユニットの実行用プログラムである、請求項1の生成方法。
  3. 前記第1の機能は、前記第1のパラメータにより処理が変更される機能を含み、
    前記アクセス情報は、前記第1のパラメータにより処理が変更される前記プロセッシングエレメントの前記メモリ領域のアドレスを含み、
    前記命令は、前記第1のパラメータを変更する命令を含む、請求項1の生成方法。
  4. 前記プロセッシングエレメントは物理的に前記メモリ領域を含んでいる、請求項1の生成方法。
  5. 前記ソースコードでは、前記第1の機能はインスタンス形式で記述され、
    前記第2のステップでは、前記第1の機能をオブジェクト形式で記述したライブラリ情報を使用し、インスタンス毎の前記メモリ領域へのアクセスを可能とする前記アクセス情報を生成する、請求項1の生成方法。
  6. 前記少なくとも1つの回路区画は、前記複数のプロセッシングエレメントの接続を変更することによりデータパスを再構成する接続手段を備え、前記ソースコードは、データパスを再構成する命令を備えており、
    前記第2のステップでは、前記第1のデータパスを再構成するための前記レイアウト情報と、再構成された前記第1のデータパスにおける前記メモリ領域へのアクセスを可能とする前記アクセス情報とを生成する、請求項1の生成方法。
  7. 前記データ処理装置は、前記回路区画の任意の場所にデータパスを再構成する手段を有しており、
    前記第2のステップでは、前記第1のデータパスを任意の場所に再構成するための前記レイアウト情報と、任意の場所に再構成された前記第1のデータパスにおける前記メモリ領域の相対的なアドレス情報とを生成する、請求項6の生成方法。
  8. 複数のプロセッシングエレメントを接続することにより少なくとも1つのデータパスが形成される少なくとも1つの回路区画を有し、プロセッシングエレメントにそれぞれ対応するメモリ領域にコンフィグレーション情報がセットされることにより前記プロセッシングエレメントの機能が制御されるデータ処理装置におけるレイアウト情報を出力するためのレイアウト処理をコンピュータにおいて実行するための記述を有するプログラムであって、
    前記レイアウト処理では、アプリケーションの少なくとも一部を、第1のパラメータが関係する第1の機能を利用して実行するように生成されたソースコードに対応して、前記第1の機能を含む処理を行う第1のデータパスを、前記少なくとも1つの回路区画にマッピングするために、前記複数のプロセッシングエレメントの接続情報を含む前記レイアウト情報を生成すると共に、前記第1のパラメータに関係する前記プロセッシングエレメントに対応する前記メモリ領域へのアクセスを可能とするアクセス情報を生成する、プログラム。
  9. 前記第1のパラメータに関係する命令を含む前記ソースコードと、前記アクセス情報とを少なくとも入力として、前記データ処理装置において前記アプリケーションを実行するための活性化コードを生成するための処理をコンピュータにおいて実行するための記述をさらに有する、請求項8のプログラム。
  10. 前記第1の機能は前記第1のパラメータにより処理が変更される機能を含み、
    前記アクセス情報は、前記第1のパラメータにより処理が変更される前記プロセッシングエレメントの前記メモリ領域のアドレスを含み、
    前記命令は、前記第1のパラメータを変更する命令を含む、請求項9のプログラム。
  11. 前記ソースコードでは、前記第1の機能はインスタンス形式で記述され、
    前記レイアウト処理では、前記第1の機能をオブジェクト形式で記述したライブラリ情報を使用し、インスタンス毎の前記メモリ領域へのアクセスを可能とする前記アクセス情報を生成する、請求項8のプログラム。
  12. 前記少なくとも1つの回路区画は、前記複数のプロセッシングエレメントの接続を変更することによりデータパスを再構成する接続手段を備え、前記ソースコードは、データパスを再構成する命令を備えており、
    前記レイアウト処理では、前記第1のデータパスを再構成するための前記レイアウト情報と、再構成された前記第1のデータパスにおける前記メモリ領域へのアクセスを可能とする前記アクセス情報とを生成する、請求項8のプログラム。
  13. 複数のプロセッシングエレメントを接続することにより少なくとも1つのデータパスが形成される少なくとも1つの回路区画を有し、プロセッシングエレメントにそれぞれ対応するメモリ領域にコンフィグレーション情報がセットされることにより前記プロセッシングエレメントの機能が制御されるデータ処理装置によりアプリケーションを実行するための活性化コードを生成する装置であって、
    前記アプリケーションの少なくとも一部を、第1のパラメータが関係する第1の機能を利用して実行するように生成されたソースコードに対応して、前記第1の機能を含む処理を行う第1のデータパスを前記少なくとも1つの回路区画にマッピングするためのレイアウト情報であって、前記複数のプロセッシングエレメントの接続情報を含むレイアウト情報と、前記第1のパラメータに関係する前記プロセッシングエレメントに対応する前記メモリ領域へのアクセスを可能とするアクセス情報とを生成するレイアウト手段と、
    前記第1のパラメータが関係する命令を含む前記ソースコードと、前記アドレス情報とを少なくとも入力として、前記活性化コードを生成する手段とを有する生成装置。
  14. 前記データ処理装置は、前記メモリ領域に前記コンフィグレーション情報をセットすることにより、前記プロセッシングエレメントの機能を制御する制御ユニットを有しており、
    前記活性化コードは、前記制御ユニットの実行用プログラムである、請求項13の生成装置。
JP2006511244A 2004-03-19 2005-03-18 活性化コードの生成方法 Active JP4208919B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004080000 2004-03-19
JP2004080000 2004-03-19
PCT/JP2005/004963 WO2005091160A1 (ja) 2004-03-19 2005-03-18 活性化コードの生成方法

Publications (2)

Publication Number Publication Date
JPWO2005091160A1 JPWO2005091160A1 (ja) 2008-02-07
JP4208919B2 true JP4208919B2 (ja) 2009-01-14

Family

ID=34993900

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006511244A Active JP4208919B2 (ja) 2004-03-19 2005-03-18 活性化コードの生成方法

Country Status (2)

Country Link
JP (1) JP4208919B2 (ja)
WO (1) WO2005091160A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7316060B2 (ja) * 2019-02-26 2023-07-27 株式会社日立製作所 アプリケーション画面表示プログラム実装方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06301522A (ja) * 1993-04-09 1994-10-28 Sony Corp 計算機システム構成方法
JP4250230B2 (ja) * 1998-09-11 2009-04-08 キヤノン株式会社 画像処理装置
TWI234737B (en) * 2001-05-24 2005-06-21 Ip Flex Inc Integrated circuit device
JP3934493B2 (ja) * 2002-06-28 2007-06-20 富士通株式会社 集積回路及びシステム開発方法

Also Published As

Publication number Publication date
WO2005091160A1 (ja) 2005-09-29
JPWO2005091160A1 (ja) 2008-02-07

Similar Documents

Publication Publication Date Title
US9135387B2 (en) Data processing apparatus including reconfiguarable logic circuit
JP4208577B2 (ja) 集積回路装置
US20230359509A1 (en) Programming Flow for Multi-Processor System
JP5077597B2 (ja) データ処理装置
US20050283743A1 (en) Method for generating hardware information
US20070283311A1 (en) Method and system for dynamic reconfiguration of field programmable gate arrays
US6915410B2 (en) Compiler synchronized multi-processor programmable logic device with direct transfer of computation results among processors
US7865346B2 (en) Instruction encoding in a hardware simulation accelerator
US20130290693A1 (en) Method and Apparatus for the Automatic Generation of RTL from an Untimed C or C++ Description as a Fine-Grained Specialization of a Micro-processor Soft Core
Gokhale et al. FPGA computing in a data parallel C
CN109167595A (zh) 使用部分重构在可编程电路上实施外围器件的方法和装置
WO2001073618A2 (en) Designer configurable multi-processor system
Gokhale et al. Co-synthesis to a hybrid RISC/FPGA architecture
Silva et al. Support for partial run-time reconfiguration of platform FPGAs
JP4208919B2 (ja) 活性化コードの生成方法
JPH05101141A (ja) 高位合成装置
Nguyen et al. FCUDA-SoC: Platform integration for field-programmable SoC with the CUDA-to-FPGA compiler
Horta et al. Accelerating linux bash commands on fpgas using partial reconfiguration
Mitra et al. Dynamic co-processor architecture for software acceleration on csocs
Bauer et al. Cross-architectural design space exploration tool for reconfigurable processors
Paulino et al. Architecture for transparent binary acceleration of loops with memory accesses
Leppänen et al. Bitstream Database-Driven FPGA Programming Flow Based on Standard OpenCL
Kritikakis HLS-Enableddynamic Stream Processing
Nicolescu et al. FPGA Platforms for Embedded Systems
Bhardwaj Framework for hardware agility on FPGAs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080318

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: 20081002

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: 20081021

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4208919

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: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

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: 20111031

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: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

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: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

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: 20111031

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: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131031

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