JPWO2010029812A1 - マルチコアにおけるプログラミングシステム、その方法及びそのプログラム - Google Patents

マルチコアにおけるプログラミングシステム、その方法及びそのプログラム Download PDF

Info

Publication number
JPWO2010029812A1
JPWO2010029812A1 JP2010528688A JP2010528688A JPWO2010029812A1 JP WO2010029812 A1 JPWO2010029812 A1 JP WO2010029812A1 JP 2010528688 A JP2010528688 A JP 2010528688A JP 2010528688 A JP2010528688 A JP 2010528688A JP WO2010029812 A1 JPWO2010029812 A1 JP WO2010029812A1
Authority
JP
Japan
Prior art keywords
processor
parameter information
linker
processors
arithmetic processing
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.)
Granted
Application number
JP2010528688A
Other languages
English (en)
Other versions
JP5360506B2 (ja
Inventor
友義 小堀
友義 小堀
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 Corp
Original Assignee
NEC 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 Corp filed Critical NEC Corp
Priority to JP2010528688A priority Critical patent/JP5360506B2/ja
Publication of JPWO2010029812A1 publication Critical patent/JPWO2010029812A1/ja
Application granted granted Critical
Publication of JP5360506B2 publication Critical patent/JP5360506B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

マルチコアプロセッサのプログラミングにおいて、プログラムコードのアップデートに伴いそれらの改善情報の共有が必要となり、開発フローが複雑化し、プログラミング効率が低下することを防止する。第1のコンパイラは、複数のプロセッサが相互に接続される演算処理システムが備える第1のプロセッサ向けのプログラムコードから1以上のオブジェクトコードを生成する。第1のリンカは、生成した1以上のオブジェクトコードをリンクして第1のプロセッサ向けの実行ファイルを生成する。パラメータ情報生成部は、第1のリンカから得られる情報に基づいて、演算処理システムが備える第2のプロセッサが使用するパラメータ情報を生成する。第2のコンパイラは、第2のプロセッサ向けのプログラムコードとパラメータ情報を参照して、1以上のオブジェクトコードを生成する。第2のリンカは、生成した1以上のオブジェクトコードをリンクして第2のプロセッサ向けの実行ファイルを生成する。

Description

本発明は、複数のプログラミングコアを有するマルチコアプロセッサのプログラミングシステム、その方法及びそのプログラムに関する。
近年、プロセス技術の進化に伴い、多数の演算回路を組み合わせたシステム全体を1つのチップ上に実装するSoC(System on a chip)が実現されている。また、これら多数の演算回路には、プロセッサなどのプログラマブルコアも含まれている。そして、アプリケーションに応じてアーキテクチャの異なるプログラマブルコアを組み合わせることによって、演算効率・リソースの効率を高める工夫が施されている。このように異種のコアを実装する手法は、一般にヘテロジニアスマルチコア(Heterogeneous multi core)と呼ばれる。
このヘテロジニアスマルチコアに関連する技術が、特許文献1に記載されている。特許文献1に記載の技術は、ヘテロジニアスマルチコアプロセッサ向けグローバルコンパイラに関するものである。特許文献1に記載の技術では、ヘテロジニアスマルチコアプロセッサシステム(HCMP)を、複数の異種のプロセッサユニット(PU)及び共有メモリから構成する。なお、共有メモリには、全てのプロセッサユニットからアクセス可能である。
そして、特許文献1では、アーキテクチャ構成情報各種パラメータとして、PUの種類、数、PUの対バス動作速度比、各PUが持つメモリの種類、メモリサイズ、及びメモリアクセスレイテンシ、HCMPが持つメモリ種類、サイズ、レイテンシ、等を予め入力しておく。このアーキテクチャ構成情報各種パラメータを利用することにより、マルチプロセッサを効率良く動作させることが可能となる。
特開2007−328416号公報
しかし、上述の特許文献1に記載の技術は、単一のプログラミングモデルから、マルチスレッドやマルチタスクを利用して、複数のプログラマブルコアのそれぞれに必要な実行ファイルを合成する場合にしか適用できないという問題があった。この点について以下説明する。
上述のような複数のプログラマブルコアを有するマルチコアシステムにおいて実行スケジューリングを行う方法として以下の2つが存在する。
1)単一のプログラミングモデルから、マルチスレッドやマルチタスクを利用して、複数のプログラマブルコアのそれぞれに必要な実行ファイルを合成する方法と、2)複数のプログラマブルコアそれぞれに対して個別にプログラミングを行い、それぞれに対応した実行ファイルを個別に生成する方法と、の2つである。
しかし、上述の特許文献1に記載の技術は、上記の1)の方法には適用できるが、2)の方法には適用できないため問題となる。
そこで、上記2)の方法でプログラミングを行う場合について、図8及び図9を参照して検討する。図8及び図9は、関連技術に係るプログラミングシステムの基本的構成及び動作を説明するものである。
図8の左側に記載されているのが、第1のプロセッサツールフローである。このツールフローでは、第1のコンパイラ601が入力された第1のコード記述600をプログラムコードからオブジェクトコードにコンパイルする。そしてその後、第1のリンカ602がオブジェクトコードのリンクを行うことにより、第1の実行ファイル603が生成される。
一方、図8の右側に記載されているのが、第2のプロセッサツールフローである。一般に、上記2)の方法でプログラミングを行う場合は、プログラマブルコアそれぞれの入出力要求に合うように、お互いのプログラムコードからメモリ・レジスタ・割り込みレジスタマップ等の情報を手動で抽出する。そして、抽出した情報を共有する必要がある。図8では、第1のコード参照604により情報を抽出し、それをパラメータ情報ファイル記述605とすることにより情報を共有している。
このような手順に沿って、マルチコアシステムにおいてソフトウェア開発を行う場合には、プログラムコードのアップデートに伴い、それらの改善情報の共有がその都度必要となり、開発フローが複雑になる。そのため、プログラミング効率が低下し、バグを混入させる一因ともなる、といった問題があった。
また、図9の右側に示すように、第2のプロセッサツールフローにおいて、第2のコンパイラ607が行うコンパイルの前処理としてパラメータ情報を手動で抜き出し、パラメータ情報ファイル生成ツール611を用いて、ある特定のパターンを記述したファイルを生成する処理を行う方式も存在する。
しかし、パラメータ情報ファイル生成ツール607は、第1のプロセッサツールフローとリンクしてファイル生成を行う訳ではない。そのため、パラメータ情報ファイル生成ツール611に適した形式に記述したファイルを、その都度生成する必要があり、効率的であるとはいえない。
そこで本発明は、複数のプログラマブルコアそれぞれが個別のプログラミングモデルを有している環境でマルチコアシステムのソフトウェア開発を行う場合に、プログラミング効率の高い開発環境を提供することが可能な、マルチコアにおけるプログラミングシステム、その方法及びそのプログラムを提供することを目的とする。
本発明に係るプログラミングシステムは、複数のプロセッサが相互に接続される演算処理システムが備える第1のプロセッサ向けのプログラムコードから1以上のオブジェクトコードを生成する第1のコンパイラと、前記第1のコンパイラが生成した1以上のオブジェクトコードをリンクして前記第1のプロセッサ向けの実行ファイルを生成する第1のリンカと、前記第1のリンカから得られる情報に基づいて、前記演算処理システムが備える第2のプロセッサが使用するパラメータ情報を生成するパラメータ情報生成手段と、前記第2のプロセッサ向けのプログラムコードと前記パラメータ情報を参照して、1以上のオブジェクトコードを生成する第2のコンパイラと、前記第2のコンパイラが生成した1以上のオブジェクトコードをリンクして前記第2のプロセッサ向けの実行ファイルを生成する第2のリンカと、を備えることを特徴とする。
本発明に係るプログラミング方法は、第1のコンパイラが、複数のプロセッサが相互に接続される演算処理システムが備える第1のプロセッサ向けのプログラムコードから1以上のオブジェクトコードを生成する第1のステップと、第1のリンカが、前記第1のコンパイラが生成した1以上のオブジェクトコードをリンクして前記第1のプロセッサ向けの実行ファイルを生成する第2のステップと、前記第1のリンカから得られる情報に基づいて、前記演算処理システムが備える第2のプロセッサが使用するパラメータ情報を生成するパラメータ情報生成ステップと、第2のコンパイラが、前記第2のプロセッサ向けのプログラムコードと前記パラメータ情報を参照して、1以上のオブジェクトコードを生成する第3のステップと、第2のリンカが、前記第2のコンパイラが生成した1以上のオブジェクトコードをリンクして前記第2のプロセッサ向けの実行ファイルを生成する第4のステップと、を備えることを特徴とする。
本発明に係るプログラミング用プログラムは、複数のプロセッサが相互に接続される演算処理システムが備える第1のプロセッサ向けのプログラムコードから1以上のオブジェクトコードを生成する第1のコンパイラと、前記第1のコンパイラが生成した1以上のオブジェクトコードをリンクして前記第1のプロセッサ向けの実行ファイルを生成する第1のリンカと、前記第1のリンカから得られる情報に基づいて、前記演算処理システムが備える第2のプロセッサが使用するパラメータ情報を生成するパラメータ情報生成手段と、前記第2のプロセッサ向けのプログラムコードと前記パラメータ情報を参照して、1以上のオブジェクトコードを生成する第2のコンパイラと、前記第2のコンパイラが生成した1以上のオブジェクトコードをリンクして前記第2のプロセッサ向けの実行ファイルを生成する第2のリンカと、としてコンピュータを機能させることを特徴とする。
本発明によれば、プログラマブルコアのプログラミング工程内で自動的に他のプログラマブルコアで必要なパラメータ情報を持ったファイルをヘッダファイルとして自動生成できる。そして、プログラムコードのアップデートに伴い、それらのアップデート情報の共有が必要であった開発フローが簡素化され、バグを混入させる一因を取り除くことができることから、プログラミング効率の高い開発環境を提供することが可能となる。
本発明の第1の実施形態に係るマルチコアにおけるプログラミングシステムの基本的構成を示す図である。 図1に示すプログラミングシステムにおけるターゲットシステムの全体構成を表すブロック図である。 図1に示すパラメータ情報生成部の基本的構成を表すブロック図である。 図1に示すプログラミングシステムの基本的動作を表すフローチャートである。 図1に示すプログラミングシステムにおいてプロセッサが3つ存在する場合の基本的構成を表す図である。 本発明の第2の実施形態に係るマルチコアにおけるプログラミングシステムのパラメータ情報生成部の基本的構成を表すブロック図である。 本発明の第3の実施形態に係るマルチコアにおけるプログラミングシステムのパラメータ情報生成部の基本的構成を表すブロック図である。 関連技術に係るマルチコアにおけるプログラミングシステムの基本的構成及び動作を表す図である。 図8に示す関連技術にパラメータ情報生成ツールを付加した場合の基本的構成及び動作を表す図である。
以下、本発明の実施形態について、図面を参照して説明する。
[第1の実施形態]
本発明の第1の実施形態の概略を説明する。本実施形態に係るマルチコアにおけるプログラミングシステムは、複数のプログラマブルコアそれぞれが個別のプログラミングモデルを有している環境でマルチコアシステムのソフトウェア開発を行う場合の開発環境を提供するものである。
図1は、本実施形態に係るプログラミングシステムの基本的構成及びソフトウェア開発フローを説明するものである。図8に示す関連技術の方式との違いは、第1のプロセッサのツールフローにおけるプログラムコードからオブジェクトコードを生成するコンパイル時に、コンパイル情報からレジスタ・メモリマップ等の情報をヘッダファイルとして生成するヘッダファイル生成機能(図中及び以下では、パラメータ情報ファイル生成部130と表記する。)を有することである。
次に、本実施形態について図面を用いて詳細に説明する。
図2は、本実施形態に係るプログラミングシステムにおけるターゲットシステム(演算処理システム)の全体構成を示す。このターゲットシステムは、図2に示すように複数のプロセッサ(第1のプロセッサ100及び第2のプロセッサ200)を有する。
ここでプロセッサとは、コンパイラとリンカを用いたツールフローによりプログラミング可能な演算装置である。それらのプロセッサは、メモリマップ(メモリマップドI/O:Memory-mapped Input/Output)のIF400で接続されている。また、本システムは、共有メモリ300を更に有している。それぞれのプロセッサは、各プロセッサからのコマンド発行により、所定のインストラクションアドレスから動作を開始する構成をとることができる。
なお、図1に示す第1のプロセッサツールフロー及び第2のプロセッサツールフローは、それぞれのプロセッサ(第1のプロセッサ100及び第2のプロセッサ200)のツールフローを示している。
次に、図1に示すプログラミングシステムの各部分及び各データについて説明する。
図1に示すように、第1のプロセッサツールフローは、第1のコンパイラ110、第1のリンカ120、パラメータ情報ファイル生成部(本発明のパラメータ情報生成手段を構成する)130、第1のコード記述500、第1の実行ファイル501及びパラメータ情報ファイル502を有する。また、第2のプロセッサツールフロー200は、第2のコンパイラ210、第2のリンカ220、パラメータ情報ファイル502、第2のコード記述503及び第2の実行ファイル504を有する。
第1のコード記述500及び第2のコード記述503は、それぞれのプログラムに対するプログラムコードである。
第1のコンパイラ110及び第2のコンパイラ210は、プログラムコードからオブジェクトコードを生成するコンパイラである。
第1のリンカ120及び第2のリンカ220は、それぞれコンパイラ110及びコンパイラ210で生成されたオブジェクトコードをリンクするリンカである。
第1の実行ファイル501及び第2の実行ファイル504は、リンカから出力される実行ファイルである。
パラメータ情報ファイル生成部130は、第1のリンカ120から得られるリンカマップ情報から第2のプロセッサ200用の第1のパラメータ情報ファイル502を生成するパラメータ情報ファイル生成部である。
パラメータ情報ファイル502は、リンカマップから得られた各関数のスタートアドレス番地等が記述されたパラメータ情報ファイルである。
次に、図3を参照してパラメータ情報ファイル生成部130の詳細を述べる。
パラメータ情報ファイル生成部130は、リンカテーブル取得部131、テーブル変換部132及びファイル生成部133を有している。
リンカテーブル取得部131は、リンカから得られたリンカテーブル情報を取得するブロックである。なお、リンカテーブル情報とは、各関数の先頭アドレスがテーブル化されているものをいう。
テーブル変換部132は、リンカテーブル取得部131において得られたリンカテーブルを変換し、第2のプロセッサ200で使用するパラメータとするブロックである。ファイル生成部133は、第2のプロセッサ200で使用されるヘッダファイルを生成するブロックである。なお、このヘッダファイルを図中及び以下の説明では「パラメータ情報ファイル502」と表記する。
次に、図4のフローチャートを参照して動作の説明をする。まず、プロセッサ100向けの第1の実行ファイル501を生成する際の動作について説明する。
初めに第1のプロセッサ100向けの第1のコード記述500を生成する(ステップS101)。次に、第1のコンパイラ110により第1のコード記述500のコンパイルを行い、オブジェクトコードを生成する(ステップS102)。次に、第1のリンカ120によって1以上のオブジェクトコードをリンクして、第1の実行ファイル501を生成する(ステップS103)。
このとき、パラメータ情報ファイル生成部130の各部が上述の動作を行うことにより、第1のリンカ120からマップ情報等が読み出され、他の第2のプロセッサ200の動作に必要な情報を選択し、パラメータ情報ファイル502を生成し、ヘッダファイルとする(ステップS104からステップS106)。
次に、第2のプロセッサ200向けの第2の実行ファイル504を生成する(ステップS107からステップS109)。
すなわち、第2のプロセッサ200向けの第2のコード記述503を生成する(ステップS107)。次に、第2のコンパイラ210が、第1のプロセッサ100のツールフローより得られたパラメータ情報ファイル502を用いて、第2のコード記述503のコンパイルを実行してオブジェクトコードを生成する(ステップS108)。そして、第2のリンカ220によって1以上のオブジェクトコードをリンクして、第2の実行ファイル504を生成する(ステップS109)。
以上の動作により、本実施の形態では、プログラムコードのアップデートに伴い、それらのアップデート情報の共有が必要であった開発フローが簡素化され、バグを混入させる一因を取り除くことができることから、プログラミング効率の高い開発環境を提供することが可能となる。
なお、上述した実施の形態では、プロセッサが2個存在する場合を想定して説明したが、本発明はプロセッサが2個存在する場合だけではなく、3個以上プロセッサが存在する場合であっても適用することが可能である。もしも、プロセッサが3個以上存在する場合は、各プロセッサ向けのリンカにパラメータ情報ファイル生成部130を付加することで、上述したプロセッサが2個存在する場合と同様の効果を得ることができる。この点について、図5を用いて説明する。
図5における第2のプロセッサツールフローには、パラメータ情報生成部130が付加されている。そして、第2のプロセッサツールフローのパラメータ情報生成部130は、第2のリンカ220からマップ情報等を読み出し、他のプロセッサの動作に必要な情報を選択し、第2のパラメータ情報ファイル506を生成しヘッダファイルとする。そして、第3のプロセッサツールフローでは、第1のパラメータ情報ファイル505及び第2のパラメータ情報ファイル506を用いてコンパイルを行う。プロセッサの数が更に増える場合は、パラメータ情報ファイル生成部130を有するプロセッサツールフローを、増加するプロセッサと同じ数だけ追加する。
すなわち、ターゲットシステムである演算処理システムがプロセッサをN(Nは3以上の自然数)個以上有する場合、パラメータ情報ファイル生成部130は、N個以上のプロセッサに対するツールフローのうちN−1個のツールフローにおいて、それぞれ用いられる構成でもよい。この構成でも、上述したプロセッサが2個存在する場合と同様の効果を得ることができる。
[第2の実施形態]
次に、本発明の他の実施形態として第2の実施形態を示す。
本実施形態に係るプログラミングシステムは、第1の実施形態の変形であって、第1の実施形態との違いは、図6に示すようにパラメータ情報ファイル生成部130の内部構成が異なる点である。具体的には、第1の実施形態におけるリンカテーブル取得部131及びテーブル変換部132が、レジスタ・メモリマップ取得部134が置き換えられている。
そして、パラメータ情報ファイル生成部130内において、第1の実施形態ではリンカから得られたリンカテーブルを元にパラメータ情報を生成するのに対し、本実施形態では、レジスタ・メモリマップ取得部134が、プロセッサそのものが持つレジスタのマップや、データメモリのアドレスマップを参照し、パラメータ情報ファイルを生成する。
第1のプロセッサと第2のプロセッサのツールフローは、第1の実施形態と第2の実施形態では同様である。この方式により、データメモリやレジスタの内容をメモリマップドI/Oにより共有することが可能となる。
[第3の実施形態]
次に、本発明の他の実施形態として第3の実施形態を示す。
本実施形態に係るプログラミングシステムは、第1の実施形態と第2の実施形態の組み合わせであって、第1の実施形態との違いは、図7に示すようにパラメータ情報ファイル生成部130の内部構成においてレジスタ・メモリマップ取得部134が付加されている点である。
具体的には、パラメータ情報ファイル生成部130内において、第1の実施形態で行っているリンカから得られたリンカテーブルを元にパラメータ情報を生成することに加え、第3の実施形態では、レジスタ・メモリマップ取得部134が第2の実施形態で説明したプロセッサそのものが持つレジスタのマップや、データメモリのアドレスマップを参照し、パラメータ情報を生成する。第1のプロセッサと第2のプロセッサのツールフローは、第1の実施形態と同様である。
以上説明した本発明の実施形態を用いることにより、プログラムコードのアップデートに伴い、それらのアップデート情報の共有が必要であった開発フローが簡素化され、バグを混入させる一因を取り除くことができることから、プログラミング効率の高い開発環境を提供することが可能となるという効果を得ることができる。
なお、本発明の実施形態であるヘテロジニアスマルチコアにおけるプログラミングシステムは、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。
例えば、本発明の上記各実施の形態に係るプログラミングシステムは、ハードウェアによっても実現することもできるが、コンピュータをそのプログラミングシステムとして機能させるためのプログラムをコンピュータがコンピュータ読みと取り可能な記録媒体から読み込んで実行することによっても実現することができる。
また、本発明の上記各実施の形態に係るプログラミング方法は、ハードウェアによっても実現することもできるが、コンピュータにその方法を実行させるためのプログラムをコンピュータがコンピュータ読みと取り可能な記録媒体から読み込んで実行することによっても実現することができる。
また、上述したハードウェア、ソフトウェア構成は特に限定されるものではなく、上述した各構成要素の機能を実現可能であれば、いずれのものでも適用可能である。例えば、上述した各構成要素の機能毎に回路や部品等を独立させて個別に構成したものでも、複数の機能を1つの回路や部品等に組み入れて一体的に構成したものでも、いずれでもよい。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2008年9月9日に出願された日本出願特願2008−231080号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、例えば複数のプログラマブルコアを有するマルチコアプロセッサLSIの開発環境での利用といった用途に好適である。
100 第1のプロセッサ
110、601 第1のコンパイラ
120、602 第1のリンカ
130 パラメータ情報ファイル生成部
131 リンカテーブル情報取得部
132 テーブル変換部
133 ファイル生成部
134 レジスタ・メモリマップ取得部
200 第2のプロセッサ
210、607 第2のコンパイラ
220、608 第2のリンカ
300 共有メモリ
310 第3のコンパイラ
320 第3のリンカ
400 メモリマップドI/O IF
500、600 第1のコード記述
501、603 第1の実行ファイル
502 パラメータ情報ファイル
503、606 第2のコード記述
504、609 第2の実行ファイル
505 第1のパラメータ情報ファイル
506 第2のパラメータ情報ファイル
507 第3のコード記述
508 第3の実行ファイル
604 第1のコード参照
605 パラメータ情報ファイル記述

Claims (15)

  1. 複数のプロセッサが相互に接続される演算処理システムが備える第1のプロセッサ向けのプログラムコードから1以上のオブジェクトコードを生成する第1のコンパイラと、
    前記第1のコンパイラが生成した1以上のオブジェクトコードをリンクして前記第1のプロセッサ向けの実行ファイルを生成する第1のリンカと、
    前記第1のリンカから得られる情報に基づいて、前記演算処理システムが備える第2のプロセッサが使用するパラメータ情報を生成するパラメータ情報生成手段と、
    前記第2のプロセッサ向けのプログラムコードと前記パラメータ情報を参照して、1以上のオブジェクトコードを生成する第2のコンパイラと、
    前記第2のコンパイラが生成した1以上のオブジェクトコードをリンクして前記第2のプロセッサ向けの実行ファイルを生成する第2のリンカと、
    を備えることを特徴とするプログラミングシステム。
  2. 前記演算処理システムにおける前記複数のプロセッサの接続は、メモリマップドI/O方式に準拠したものであり、
    前記パラメータ情報生成手段は、前記パラメータ情報として、前記第1のリンカから得られた各関数がマッピングされたアドレス情報を元に前記第2のプロセッサで使用可能なパラメータを定義したヘッダファイルを生成することを特徴とする請求項1に記載のプログラミングシステム。
  3. 前記演算処理システムにおける前記複数のプロセッサの接続は、メモリマップドI/O方式に準拠したものであり、
    前記パラメータ情報生成手段は、前記パラメータ情報として、前記第1のプロセッサのレジスタ及びデータメモリのアドレスマップの情報を元に前記第2のプロセッサから前記第1のプロセッサにアクセス可能なパラメータを定義したヘッダファイルを生成することを特徴とする請求項1に記載のプログラミングシステム。
  4. 前記演算処理システムにおける前記複数のプロセッサの接続は、メモリマップドI/O方式に準拠したものであり、
    前記パラメータ情報生成手段は、前記パラメータ情報として、前記第1のリンカから得られた各関数がマッピングされたアドレス情報と、前記第1のプロセッサのレジスタ及びデータメモリのアドレスマップの情報と、を元に前記第2のプロセッサから前記第1のプロセッサにアクセス可能なパラメータを定義したヘッダファイルを生成することを特徴とする請求項1に記載のプログラミングシステム。
  5. 前記演算処理システムがプロセッサをN(Nは3以上の自然数)個以上有しており、
    前記パラメータ情報生成手段は、前記N個以上のプロセッサに対するツールフローのうちN−1個のツールフローにおいて、それぞれ用いられることを特徴とする請求項1乃至4の何れか1項に記載のプログラミングシステム。
  6. 第1のコンパイラが、複数のプロセッサが相互に接続される演算処理システムが備える第1のプロセッサ向けのプログラムコードから1以上のオブジェクトコードを生成する第1のステップと、
    第1のリンカが、前記第1のコンパイラが生成した1以上のオブジェクトコードをリンクして前記第1のプロセッサ向けの実行ファイルを生成する第2のステップと、
    前記第1のリンカから得られる情報に基づいて、前記演算処理システムが備える第2のプロセッサが使用するパラメータ情報を生成するパラメータ情報生成ステップと、
    第2のコンパイラが、前記第2のプロセッサ向けのプログラムコードと前記パラメータ情報を参照して、1以上のオブジェクトコードを生成する第3のステップと、
    第2のリンカが、前記第2のコンパイラが生成した1以上のオブジェクトコードをリンクして前記第2のプロセッサ向けの実行ファイルを生成する第4のステップと、
    を備えることを特徴とするプログラミング方法。
  7. 前記演算処理システムにおける前記複数のプロセッサの接続は、メモリマップドI/O方式に準拠したものであり、
    前記パラメータ情報生成ステップにおいて、前記パラメータ情報として、前記第1のリンカから得られた各関数がマッピングされたアドレス情報を元に前記第2のプロセッサで使用可能なパラメータを定義したヘッダファイルを生成することを特徴とする請求項6に記載のプログラミング方法。
  8. 前記演算処理システムにおける前記複数のプロセッサの接続は、メモリマップドI/O方式に準拠したものであり、
    前記パラメータ情報生成ステップにおいて、前記パラメータ情報として、前記第1のプロセッサのレジスタ及びデータメモリのアドレスマップの情報を元に前記第2のプロセッサから前記第1のプロセッサにアクセス可能なパラメータを定義したヘッダファイルを生成することを特徴とする請求項6に記載のプログラミング方法。
  9. 前記演算処理システムにおける前記複数のプロセッサの接続は、メモリマップドI/O方式に準拠したものであり、
    前記パラメータ情報生成ステップにおいて、前記パラメータ情報として、前記第1のリンカから得られた各関数がマッピングされたアドレス情報と、前記第1のプロセッサのレジスタ及びデータメモリのアドレスマップの情報と、を元に前記第2のプロセッサから前記第1のプロセッサにアクセス可能なパラメータを定義したヘッダファイルを生成することを特徴とする請求項6に記載のプログラミング方法。
  10. 前記演算処理システムがプロセッサをN(Nは3以上の自然数)個以上有しており、
    前記パラメータ情報生成ステップは、前記N個以上のプロセッサに対するツールフローのうちN−1個のツールフローにおいて、それぞれ用いられることを特徴とする請求項6乃至9の何れか1項に記載のプログラミング方法。
  11. 複数のプロセッサが相互に接続される演算処理システムが備える第1のプロセッサ向けのプログラムコードから1以上のオブジェクトコードを生成する第1のコンパイラと、
    前記第1のコンパイラが生成した1以上のオブジェクトコードをリンクして前記第1のプロセッサ向けの実行ファイルを生成する第1のリンカと、
    前記第1のリンカから得られる情報に基づいて、前記演算処理システムが備える第2のプロセッサが使用するパラメータ情報を生成するパラメータ情報生成手段と、
    前記第2のプロセッサ向けのプログラムコードと前記パラメータ情報を参照して、1以上のオブジェクトコードを生成する第2のコンパイラと、
    前記第2のコンパイラが生成した1以上のオブジェクトコードをリンクして前記第2のプロセッサ向けの実行ファイルを生成する第2のリンカと、
    としてコンピュータを機能させることを特徴とするプログラミング用プログラム。
  12. 請求項11に記載のプログラミング用プログラムにおいて、
    前記演算処理システムにおける前記複数のプロセッサの接続は、メモリマップドI/O方式に準拠したものであり、
    前記パラメータ情報生成手段は、前記パラメータ情報として、前記第1のリンカから得られた各関数がマッピングされたアドレス情報を元に前記第2のプロセッサで使用可能なパラメータを定義したヘッダファイルを生成することを特徴とするプログラミング用プログラム。
  13. 請求項11に記載のプログラミング用プログラムにおいて、
    前記演算処理システムにおける前記複数のプロセッサの接続は、メモリマップドI/O方式に準拠したものであり、
    前記パラメータ情報生成手段は、前記パラメータ情報として、前記第1のプロセッサのレジスタ及びデータメモリのアドレスマップの情報を元に前記第2のプロセッサから前記第1のプロセッサにアクセス可能なパラメータを定義したヘッダファイルを生成することを特徴とするプログラミング用プログラム。
  14. 請求項11に記載のプログラミング用プログラムにおいて、
    前記演算処理システムにおける前記複数のプロセッサの接続は、メモリマップドI/O方式に準拠したものであり、
    前記パラメータ情報生成手段は、前記パラメータ情報として、前記第1のリンカから得られた各関数がマッピングされたアドレス情報と、前記第1のプロセッサのレジスタ及びデータメモリのアドレスマップの情報と、を元に前記第2のプロセッサから前記第1のプロセッサにアクセス可能なパラメータを定義したヘッダファイルを生成することを特徴とするプログラミング用プログラム。
  15. 請求項11乃至14の何れか1項に記載のプログラミング用プログラムにおいて、
    前記演算処理システムがプロセッサをN(Nは3以上の自然数)個以上有しており、
    前記パラメータ情報生成手段は、前記N個以上のプロセッサに対するツールフローのうちN−1個のツールフローにおいて、それぞれ用いられることを特徴とするプログラミング用プログラム。
JP2010528688A 2008-09-09 2009-07-23 マルチコアにおけるプログラミングシステム、その方法及びそのプログラム Expired - Fee Related JP5360506B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010528688A JP5360506B2 (ja) 2008-09-09 2009-07-23 マルチコアにおけるプログラミングシステム、その方法及びそのプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008231080 2008-09-09
JP2008231080 2008-09-09
PCT/JP2009/063217 WO2010029812A1 (ja) 2008-09-09 2009-07-23 マルチコアにおけるプログラミングシステム、その方法及びそのプログラム
JP2010528688A JP5360506B2 (ja) 2008-09-09 2009-07-23 マルチコアにおけるプログラミングシステム、その方法及びそのプログラム

Publications (2)

Publication Number Publication Date
JPWO2010029812A1 true JPWO2010029812A1 (ja) 2012-02-02
JP5360506B2 JP5360506B2 (ja) 2013-12-04

Family

ID=42005073

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010528688A Expired - Fee Related JP5360506B2 (ja) 2008-09-09 2009-07-23 マルチコアにおけるプログラミングシステム、その方法及びそのプログラム

Country Status (4)

Country Link
US (1) US8694975B2 (ja)
EP (1) EP2336883B1 (ja)
JP (1) JP5360506B2 (ja)
WO (1) WO2010029812A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430596B2 (en) * 2011-06-14 2016-08-30 Montana Systems Inc. System, method and apparatus for a scalable parallel processor
DE102013222061A1 (de) 2013-03-25 2014-09-25 Continental Teves Ag & Co. Ohg Verfahren zum Betrieb einer Bremsanlage für Kraftfahrzeuge
CN104346150B (zh) * 2013-07-30 2017-10-17 华为技术有限公司 多实例业务的可执行文件的生成方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63163530A (ja) * 1986-12-25 1988-07-07 Nec Corp プログラムリンク装置
US5247678A (en) * 1989-10-12 1993-09-21 Texas Instruments Incorporated Load time linker for software used with a multiprocessor system
US5201055A (en) * 1989-11-03 1993-04-06 Compaq Computer Corporation Multiprocessing system includes interprocessor encoding and decoding logic used for communication between two cards through reduced addressing lines
JPH08241216A (ja) * 1995-01-06 1996-09-17 Mitsubishi Electric Corp 計算機システム
JPH08286896A (ja) * 1995-04-14 1996-11-01 Mitsubishi Electric Corp ソフトウェア開発方法及びソフトウェア開発システム
JP4133107B2 (ja) * 2002-08-19 2008-08-13 富士通株式会社 ロードモジュール生成方法、ロードモジュール生成プログラムおよびロードモジュール生成装置
US7073159B2 (en) * 2004-03-31 2006-07-04 Intel Corporation Constraints-directed compilation for heterogeneous reconfigurable architectures
US7503040B2 (en) * 2004-09-30 2009-03-10 International Business Machines Corporation Configuring a shared library to accommodate relocatable data in a pervasive device
US20060095898A1 (en) * 2004-10-28 2006-05-04 International Business Machines Corporation Method for integrating multiple object files from heterogeneous architectures into a set of files
JP2006260096A (ja) * 2005-03-16 2006-09-28 Matsushita Electric Ind Co Ltd プログラム変換方法およびプログラム変換装置
JP4814617B2 (ja) * 2005-11-01 2011-11-16 株式会社日立製作所 ストレージシステム
JP4784827B2 (ja) 2006-06-06 2011-10-05 学校法人早稲田大学 ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ
JP2007334643A (ja) * 2006-06-15 2007-12-27 Renesas Technology Corp プログラム実行方法、プログラム、およびプログラム実行システム
JP2008231080A (ja) 2007-03-23 2008-10-02 Univ Of Tokushima 脂肪細胞からのレプチン分泌促進剤

Also Published As

Publication number Publication date
EP2336883B1 (en) 2018-03-07
EP2336883A1 (en) 2011-06-22
WO2010029812A1 (ja) 2010-03-18
EP2336883A4 (en) 2013-02-27
US8694975B2 (en) 2014-04-08
JP5360506B2 (ja) 2013-12-04
US20110167417A1 (en) 2011-07-07

Similar Documents

Publication Publication Date Title
JP6525286B2 (ja) プロセッサコア及びプロセッサシステム
JP4635082B2 (ja) マルチプロセッサシステム及びグルーピング方法
Grandpierre et al. From algorithm and architecture specifications to automatic generation of distributed real-time executives: a seamless flow of graphs transformations
EP1881405B1 (en) Global compiler for controlling heterogeneous multiprocessor
CN101799760B (zh) 生成任意目标架构的并行单指令多数据代码的系统和方法
US7877741B2 (en) Method and corresponding apparatus for compiling high-level languages into specific processor architectures
JP2006146953A (ja) プロセッサ、システムlsi、システムlsiの設計方法、及び、それを記録した記録媒体
JP4965995B2 (ja) プログラム処理方法、処理プログラム及び情報処理装置
US20030041312A1 (en) Program processing method utilizing dynamically reconfigurable hardware to enable faster processing, and program to execute same processing method
US8266416B2 (en) Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system
JP5360506B2 (ja) マルチコアにおけるプログラミングシステム、その方法及びそのプログラム
JP5576605B2 (ja) プログラム変換装置およびプログラム変換方法
JP2008305337A (ja) プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム
JP2005129001A (ja) プログラム実行装置、マイクロプロセッサ及びプログラム実行方法
JP2007080049A (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
Bernard et al. On the compilation of a language for general concurrent target architectures
JP2008204341A (ja) インタフェース合成装置
JP2008204023A (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法
JP2018163381A (ja) コード生成装置、コード生成方法及びコード生成プログラム
JP2013127703A (ja) ロードモジュール生成方法及びロードモジュール生成プログラム
JP2009064207A (ja) コンパイル装置
De Laender et al. ZyPy: Intercepting NumPy operations for acceleration on FPGAs
Cattaneo et al. Explicitly isolating data and computation in high level synthesis: the role of polyhedral framework
JP2006146731A (ja) プログラム、記憶媒体、アセンブラ装置、コンパイラ装置、シミュレータ装置及びエミュレータ装置
KR100293932B1 (ko) 소프트웨어 코드인 이미지의 후처리 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120605

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130821

R150 Certificate of patent or registration of utility model

Ref document number: 5360506

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees