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

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

Info

Publication number
WO2010029812A1
WO2010029812A1 PCT/JP2009/063217 JP2009063217W WO2010029812A1 WO 2010029812 A1 WO2010029812 A1 WO 2010029812A1 JP 2009063217 W JP2009063217 W JP 2009063217W WO 2010029812 A1 WO2010029812 A1 WO 2010029812A1
Authority
WO
WIPO (PCT)
Prior art keywords
processor
parameter information
linker
processors
arithmetic processing
Prior art date
Application number
PCT/JP2009/063217
Other languages
English (en)
French (fr)
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 日本電気株式会社
Priority to US13/062,761 priority Critical patent/US8694975B2/en
Priority to EP09812960.4A priority patent/EP2336883B1/en
Priority to JP2010528688A priority patent/JP5360506B2/ja
Publication of WO2010029812A1 publication Critical patent/WO2010029812A1/ja

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

Definitions

  • the present invention relates to a multicore processor programming system having a plurality of programming cores, a method thereof, and a program thereof.
  • SoC System-on-a-chip
  • SoC System-on-a-chip
  • these many arithmetic circuits include a programmable core such as a processor.
  • the device which raises the calculation efficiency and the efficiency of a resource is given by combining the programmable core from which an architecture differs according to an application.
  • Such a method of mounting different types of cores is generally called heterogeneous multicore.
  • Patent Document 1 The technology related to this heterogeneous multi-core is described in Patent Document 1.
  • the technology described in Patent Document 1 relates to a global compiler for heterogeneous multi-core processors.
  • a heterogeneous multi-core processor system (HCMP) is configured by a plurality of different types of processor units (PU) and a shared memory. The shared memory can be accessed from all processor units.
  • the architecture configuration information various parameters, the type and number of PUs, the PU to bus operation speed ratio, the type of memory possessed by each PU, the memory size, the memory access latency, the memory type possessed by HCMP, The size, latency, etc. are input in advance.
  • the multiprocessor can be operated efficiently.
  • Patent Document 1 the technique described in Patent Document 1 described above can only be applied to a case where an execution file required for each of a plurality of programmable cores is synthesized from a single programming model using multithreading or multitasking. There was a problem. This point will be described below.
  • Patent Document 1 described above is applicable to the method 1) above, but cannot be applied to the method 2).
  • the first processor tool flow is shown on the left side of FIG.
  • the first code description 600 inputted by the first compiler 601 is compiled from program code into object code.
  • the first linker 602 links the object code to generate the first execution file 603.
  • FIG. 8 what is described on the right side of FIG. 8 is the second processor tool flow.
  • information such as a memory, a register, and an interrupt register map is manually extracted from each program code so as to meet the input / output request of each programmable core. And it is necessary to share the extracted information.
  • information is shared by extracting information by the first code reference 604 and using it as a parameter information file description 605.
  • parameter information is manually extracted as a pre-processing of compilation performed by the second compiler 607, and a specific information is generated using a parameter information file generation tool 611.
  • a method for performing processing to generate a file describing the pattern is also a method for performing processing to generate a file describing the pattern.
  • the parameter information file generation tool 607 does not generate a file linked with the first processor tool flow. For this reason, a file described in a format suitable for the parameter information file generation tool 611 needs to be generated each time, which is not efficient.
  • the present invention provides a multi-core programming system capable of providing a development environment with high programming efficiency when software development of a multi-core system is performed in an environment in which each of a plurality of programmable cores has an individual programming model. It is an object to provide a method and a program thereof.
  • a programming system includes a first compiler that generates one or more object codes from program code for a first processor provided in an arithmetic processing system in which a plurality of processors are connected to each other, and the first compiler And a first linker that links the one or more object codes generated by the first processor to generate an executable file for the first processor, and the arithmetic processing system includes a first linker provided on the basis of information obtained from the first linker.
  • Parameter information generating means for generating parameter information used by two processors, a second compiler for generating one or more object codes by referring to the program code for the second processor and the parameter information, Recode one or more object codes generated by the second compiler Characterized in that it comprises a second linker to click to generate an executable file for the second processor.
  • a programming method includes a first step in which a first compiler generates one or more object codes from program code for a first processor provided in an arithmetic processing system in which a plurality of processors are connected to each other.
  • the first linker is obtained from the first linker, the second step of linking one or more object codes generated by the first compiler to generate an executable file for the first processor, and
  • a programming program includes a first compiler that generates one or more object codes from a program code for a first processor provided in an arithmetic processing system in which a plurality of processors are connected to each other, and the first compiler
  • the arithmetic processing system includes a first linker that links one or more object codes generated by a compiler to generate an executable file for the first processor, and information obtained from the first linker.
  • Parameter information generating means for generating parameter information used by the second processor, a second compiler for generating one or more object codes with reference to the program code for the second processor and the parameter information, One or more object codes generated by the second compiler Wherein the second linker linked to produce an executable file for the second processor, that causes a computer to function as a.
  • a file having parameter information necessary for another programmable core can be automatically generated as a header file automatically within the programming process of the programmable core.
  • the development flow that needed to share such update information has been simplified, and it is possible to remove the cause of mixing bugs, so that a development environment with high programming efficiency can be provided. Is possible.
  • FIG. 1 shows the basic composition of the programming system in the multi-core which concerns on the 1st Embodiment of this invention. It is a block diagram showing the whole structure of the target system in the programming system shown in FIG. It is a block diagram showing the fundamental structure of the parameter information generation part shown in FIG. It is a flowchart showing the basic operation
  • FIG. 9 is a diagram illustrating a basic configuration and operation when a parameter information generation tool is added to the related technology illustrated in FIG. 8.
  • the multi-core programming system provides a development environment when software development of a multi-core system is performed in an environment in which each of a plurality of programmable cores has an individual programming model.
  • FIG. 1 illustrates the basic configuration and software development flow of a programming system according to this embodiment.
  • the difference from the related art method shown in FIG. 8 is that a header file that generates information such as a register and a memory map from the compilation information as a header file at the time of compiling to generate object code from program code in the tool flow of the first processor A generation function (in the drawings and below, referred to as a parameter information file generation unit 130).
  • FIG. 2 shows an overall configuration of a target system (arithmetic processing system) in the programming system according to the present embodiment.
  • This target system has a plurality of processors (a first processor 100 and a second processor 200) as shown in FIG.
  • the processor is an arithmetic device that can be programmed by a tool flow using a compiler and a linker. These processors are connected by an IF 400 of a memory map (memory mapped I / O: Memory-mapped Input / Output).
  • the system further includes a shared memory 300.
  • Each processor can be configured to start an operation from a predetermined instruction address by issuing a command from each processor.
  • first processor tool flow and the second processor tool flow shown in FIG. 1 indicate the tool flows of the respective processors (the first processor 100 and the second processor 200).
  • the first processor tool flow includes a first compiler 110, a first linker 120, a parameter information file generation unit (which constitutes parameter information generation means of the present invention) 130, a first code It has a description 500, a first execution file 501, and a parameter information file 502.
  • the second processor tool flow 200 includes a second compiler 210, a second linker 220, a parameter information file 502, a second code description 503, and a second execution file 504.
  • the first code description 500 and the second code description 503 are program codes for the respective programs.
  • the first compiler 110 and the second compiler 210 are compilers that generate object code from program code.
  • the first linker 120 and the second linker 220 are linkers that link object codes generated by the compiler 110 and the compiler 210, respectively.
  • the first execution file 501 and the second execution file 504 are execution files output from the linker.
  • the parameter information file generation unit 130 is a parameter information file generation unit that generates the first parameter information file 502 for the second processor 200 from the linker map information obtained from the first linker 120.
  • the parameter information file 502 is a parameter information file in which the start address and the like of each function obtained from the linker map are described.
  • the parameter information file generation unit 130 includes a linker table acquisition unit 131, a table conversion unit 132, and a file generation unit 133.
  • the linker table acquisition unit 131 is a block that acquires linker table information obtained from the linker.
  • the linker table information is information in which the start address of each function is tabulated.
  • the table conversion unit 132 is a block that converts the linker table obtained by the linker table acquisition unit 131 and uses it as a parameter used by the second processor 200.
  • the file generation unit 133 is a block that generates a header file used by the second processor 200. This header file is referred to as “parameter information file 502” in the drawings and in the following description.
  • the first code description 500 for the first processor 100 is generated (step S101).
  • the first compiler 110 compiles the first code description 500 to generate an object code (step S102).
  • one or more object codes are linked by the first linker 120 to generate the first executable file 501 (step S103).
  • each part of the parameter information file generation unit 130 performs the above-described operation, so that map information or the like is read from the first linker 120 and information necessary for the operation of the other second processor 200 is selected.
  • the parameter information file 502 is generated and used as a header file (from step S104 to step S106).
  • a second execution file 504 for the second processor 200 is generated (from step S107 to step S109).
  • the second code description 503 for the second processor 200 is generated (step S107).
  • the second compiler 210 compiles the second code description 503 using the parameter information file 502 obtained from the tool flow of the first processor 100 to generate an object code (step S108). ).
  • one or more object codes are linked by the second linker 220 to generate the second executable file 504 (step S109).
  • the present embodiment simplifies the development flow that required sharing of update information with the update of the program code, and can eliminate the cause of mixing bugs. It is possible to provide a highly efficient development environment.
  • the present invention is not limited to the case where there are two processors, but may be a case where there are three or more processors. It is possible to apply. If there are three or more processors, the same effect as in the case where there are two processors can be obtained by adding the parameter information file generation unit 130 to the linker for each processor. This point will be described with reference to FIG.
  • the parameter information generation unit 130 is added to the second processor tool flow in FIG. Then, the parameter information generation unit 130 of the second processor tool flow reads map information and the like from the second linker 220, selects information necessary for the operation of another processor, and generates a second parameter information file 506. Header file. In the third processor tool flow, compilation is performed using the first parameter information file 505 and the second parameter information file 506. When the number of processors further increases, the processor tool flow having the parameter information file generation unit 130 is added by the same number as the increasing number of processors.
  • the parameter information file generation unit 130 sets N ⁇ 1 tools out of tool flows for N or more processors.
  • the configuration may be used for each flow. Even with this configuration, it is possible to obtain the same effect as when there are two processors.
  • the programming system according to this embodiment is a modification of the first embodiment, and the difference from the first embodiment is that the internal configuration of the parameter information file generation unit 130 is different as shown in FIG. . Specifically, the register / memory map acquisition unit 134 is replaced with the linker table acquisition unit 131 and the table conversion unit 132 in the first embodiment.
  • the parameter information file generation unit 130 the parameter information is generated based on the linker table obtained from the linker in the first embodiment, whereas in the present embodiment, the register / memory map acquisition unit 134 The parameter information file is generated by referring to the register map of the processor itself and the address map of the data memory.
  • the tool flow of the first processor and the second processor is the same in the first embodiment and the second embodiment.
  • the contents of the data memory and the register can be shared by the memory mapped I / O.
  • the programming system according to this embodiment is a combination of the first embodiment and the second embodiment.
  • the difference from the first embodiment is that the parameter information file generator 130 has an internal structure as shown in FIG. In this configuration, a register / memory map acquisition unit 134 is added.
  • the register in addition to generating parameter information based on the linker table obtained from the linker performed in the first embodiment, in the third embodiment, in the register
  • the memory map acquisition unit 134 refers to the register map of the processor itself described in the second embodiment and the address map of the data memory to generate parameter information.
  • the tool flow of the first processor and the second processor is the same as that of the first embodiment.
  • the programming system in the heterogeneous multi-core which is the embodiment of the present invention can be realized by hardware, software, or a combination thereof.
  • the programming system according to each of the above embodiments of the present invention can be realized by hardware, but a program for causing a computer to function as the programming system can be read from a recording medium that can be read by the computer. It can also be realized by reading and executing.
  • the programming methods according to the above embodiments of the present invention can also be realized by hardware, but a program for causing a computer to execute the method is read from a computer-readable recording medium. It can also be realized by executing the above.
  • any of the above-described components may be individually configured with independent circuits or components for each function, or may be configured integrally by incorporating a plurality of functions into one circuit or component. .
  • the present invention is suitable for use in a development environment of a multi-core processor LSI having a plurality of programmable cores, for example.
  • first processor 110 601 first compiler 120, 602 first linker 130 parameter information file generation unit 131 linker table information acquisition unit 132 table conversion unit 133 file generation unit 134 register / memory map acquisition unit 200 second Processors 210 and 607 Second compiler 220 and 608 Second linker 300 Shared memory 310 Third compiler 320 Third linker 400 Memory mapped I / O IF 500, 600 First code description 501, 603 First execution file 502 Parameter information file 503, 606 Second code description 504, 609 Second execution file 505 First parameter information file 506 Second parameter information file 507 Third code description 508 Third execution file 604 First code reference 605 Parameter information file description

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個のツールフローにおいて、それぞれ用いられることを特徴とするプログラミング用プログラム。
PCT/JP2009/063217 2008-09-09 2009-07-23 マルチコアにおけるプログラミングシステム、その方法及びそのプログラム WO2010029812A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US13/062,761 US8694975B2 (en) 2008-09-09 2009-07-23 Programming system in multi-core environment, and method and program of the same
EP09812960.4A EP2336883B1 (en) 2008-09-09 2009-07-23 Programming system in multi-core environment, and method and program of the same
JP2010528688A JP5360506B2 (ja) 2008-09-09 2009-07-23 マルチコアにおけるプログラミングシステム、その方法及びそのプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-231080 2008-09-09
JP2008231080 2008-09-09

Publications (1)

Publication Number Publication Date
WO2010029812A1 true WO2010029812A1 (ja) 2010-03-18

Family

ID=42005073

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/063217 WO2010029812A1 (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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9873416B2 (en) 2013-03-25 2018-01-23 Continental Teves Ag & Co. Ohg Method for operating a brake system for motor vehicles and a brake system in which the method is carried out

Families Citing this family (2)

* 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
CN104346150B (zh) * 2013-07-30 2017-10-17 华为技术有限公司 多实例业务的可执行文件的生成方法和装置

Citations (9)

* 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 プログラムリンク装置
JPH08241216A (ja) * 1995-01-06 1996-09-17 Mitsubishi Electric Corp 計算機システム
JPH08286896A (ja) * 1995-04-14 1996-11-01 Mitsubishi Electric Corp ソフトウェア開発方法及びソフトウェア開発システム
JP2004078600A (ja) * 2002-08-19 2004-03-11 Fujitsu Ltd ロードモジュール生成方法、ロードモジュール生成プログラムおよびロードモジュール生成装置
JP2006260096A (ja) * 2005-03-16 2006-09-28 Matsushita Electric Ind Co Ltd プログラム変換方法およびプログラム変換装置
JP2007128175A (ja) * 2005-11-01 2007-05-24 Hitachi Ltd ストレージシステム
JP2007328416A (ja) 2006-06-06 2007-12-20 Univ Waseda ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ
JP2008518355A (ja) * 2004-10-28 2008-05-29 株式会社ソニー・コンピュータエンタテインメント 異種混合アーキテクチャからの複数のオブジェクトファイルを一組のファイルに統合する方法
JP2008231080A (ja) 2007-03-23 2008-10-02 Univ Of Tokushima 脂肪細胞からのレプチン分泌促進剤

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
JP2007334643A (ja) * 2006-06-15 2007-12-27 Renesas Technology Corp プログラム実行方法、プログラム、およびプログラム実行システム

Patent Citations (9)

* 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 プログラムリンク装置
JPH08241216A (ja) * 1995-01-06 1996-09-17 Mitsubishi Electric Corp 計算機システム
JPH08286896A (ja) * 1995-04-14 1996-11-01 Mitsubishi Electric Corp ソフトウェア開発方法及びソフトウェア開発システム
JP2004078600A (ja) * 2002-08-19 2004-03-11 Fujitsu Ltd ロードモジュール生成方法、ロードモジュール生成プログラムおよびロードモジュール生成装置
JP2008518355A (ja) * 2004-10-28 2008-05-29 株式会社ソニー・コンピュータエンタテインメント 異種混合アーキテクチャからの複数のオブジェクトファイルを一組のファイルに統合する方法
JP2006260096A (ja) * 2005-03-16 2006-09-28 Matsushita Electric Ind Co Ltd プログラム変換方法およびプログラム変換装置
JP2007128175A (ja) * 2005-11-01 2007-05-24 Hitachi Ltd ストレージシステム
JP2007328416A (ja) 2006-06-06 2007-12-20 Univ Waseda ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ
JP2008231080A (ja) 2007-03-23 2008-10-02 Univ Of Tokushima 脂肪細胞からのレプチン分泌促進剤

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9873416B2 (en) 2013-03-25 2018-01-23 Continental Teves Ag & Co. Ohg Method for operating a brake system for motor vehicles and a brake system in which the method is carried out

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6525286B2 (ja) プロセッサコア及びプロセッサシステム
Grandpierre et al. From algorithm and architecture specifications to automatic generation of distributed real-time executives: a seamless flow of graphs transformations
JP4635082B2 (ja) マルチプロセッサシステム及びグルーピング方法
WO2001090887A1 (fr) Procede de traitement de programme permettant un traitement haute vitesse au moyen d'un materiel a reconfiguration dynamique et programme permettant d'executer ce procede de traitement
JP2008158759A (ja) プログラミング方法、プログラム処理方法、処理プログラム及び情報処理装置
JP5360506B2 (ja) マルチコアにおけるプログラミングシステム、その方法及びそのプログラム
Carle et al. Predicate-aware, makespan-preserving software pipelining of scheduling tables
JP2008305337A (ja) プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム
Traulsen et al. Compiling synccharts to synchronous c
Amiri et al. FLOWER: A comprehensive dataflow compiler for high-level synthesis
Álvarez et al. OpenMP dynamic device offloading in heterogeneous platforms
JP2010049439A (ja) ソフトウェアモデルを用いたシステム構築方法およびモデリング装置
Cartwright et al. Creating hw/sw co-designed mpsopc's from high level programming models
Baloukas et al. Mapping embedded applications on MPSoCs: the MNEMEE approach
Bernard et al. On the compilation of a language for general concurrent target architectures
JP2008204023A (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法
JP4755371B2 (ja) 計算機システム
JP2018163381A (ja) コード生成装置、コード生成方法及びコード生成プログラム
De Laender et al. ZyPy: Intercepting NumPy operations for acceleration on FPGAs
JP2013127703A (ja) ロードモジュール生成方法及びロードモジュール生成プログラム
Cattaneo et al. Explicitly isolating data and computation in high level synthesis: the role of polyhedral framework
Balboni et al. The use of a virtual instruction set for the software synthesis of Hw/Sw embedded systems
Djukic et al. AC compiler based methodology for implementing audio DSP applications on a class of embedded systems
KR100293932B1 (ko) 소프트웨어 코드인 이미지의 후처리 방법
JP2007233805A (ja) プログラム変換システム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09812960

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010528688

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13062761

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2009812960

Country of ref document: EP