JP2005534114A - ソース間分割コンパイル - Google Patents
ソース間分割コンパイル Download PDFInfo
- Publication number
- JP2005534114A JP2005534114A JP2004524004A JP2004524004A JP2005534114A JP 2005534114 A JP2005534114 A JP 2005534114A JP 2004524004 A JP2004524004 A JP 2004524004A JP 2004524004 A JP2004524004 A JP 2004524004A JP 2005534114 A JP2005534114 A JP 2005534114A
- Authority
- JP
- Japan
- Prior art keywords
- abstract syntax
- processor
- coprocessor
- source code
- syntax tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000006870 function Effects 0.000 claims abstract description 99
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000013461 design Methods 0.000 claims abstract description 48
- 230000015654 memory Effects 0.000 claims description 40
- 102100030972 Coatomer subunit beta Human genes 0.000 abstract description 12
- 241000761389 Copa Species 0.000 abstract description 12
- 101000919970 Homo sapiens Coatomer subunit beta Proteins 0.000 abstract description 12
- 239000012634 fragment Substances 0.000 description 14
- 239000013598 vector Substances 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 238000013139 quantization Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
- Stored Programmes (AREA)
Abstract
Description
f (int x)
{
s1;
s2;
}
g (int y)
{
s3;
s4;
}
h (int z)
{
s5;
s6;
}
f (int x)
{
s1;
s2;
}
g (int y)
{
s3;
k(y);
}
h (int z)
{
s5;
s6;
}
k (int y)
{
s4;
}
−ソースコード言語C言語による仕様301をスキャナーおよびパーサーを用いて複数の抽象構文ツリーへ変換し、
−コプロセッサによって実現されるべきクリティカルな演算を識別するプロファイルデータを使用して、複数の抽象構文木を第1の抽象構文木の組と第2の抽象構文木の組に分割し、
−第1の抽象構文木の組をC言語による第1の部分仕様309に翻訳し、第2の抽象構文木の組をC言語による第2の部分仕様311に変換する。
C[i]=A[i]+B[i]
であり、ここで、A、BおよびCは関連した3個のベクトルを表し、iは配列添字を表す。
func_id:コプロセッサCOP内のベクトル加算関数の識別子
&A,&B,&C:計算に関わる3個のベクトルのシステムメモリSMにおけるアドレス
&ret_stat:コプロセッサCOPによって実行された関数のリターン状態を格納する変数のシステムメモリSMにおけるアドレス
Claims (19)
- ソースコードにおける仕様を分割する方法であって、
仕様を複数の抽象構文木に変換するステップと、
前記複数の抽象構文木を第1のプロセッサによって実現されるべき第1の抽象構文木の組と第2のプロセッサによって実現されるべき第2の抽象構文木の組に分割するステップと、
を備えたことを特徴とする方法。 - 前記第2のプロセッサがコプロセッサである、請求項1に記載のソースコードにおける仕様を分割する方法。
- 前記第1のプロセッサが汎用プロセッサである、請求項2に記載のソースコードにおける仕様を分割する方法。
- 前記第1の抽象構文木の組を前記ソースコードによる第1の部分仕様に変換し、前記第2の抽象構文木の組を前記ソースコードによる第2の部分仕様に変換するステップをさらに含む、請求項1に記載のソースコードにおける仕様を分割する方法。
- 前記複数の抽象構文木を第1の抽象構文木の組と第2の抽象構文木の組に分割するステップが、プロファイルデータに基づいて少なくとも一つの抽象構文木をアウトライン化するステップを含む、請求項1に記載のソースコードにおける仕様を分割する方法。
- 前記複数の抽象構文木を第1の抽象構文木の組と第2の抽象構文木の組に分割するステップが、プログラマによって与えられた情報に基づいて少なくとも一つの抽象構文木をアウトライン化するステップを含む、請求項1に記載のソースコードにおける仕様を分割する方法。
- ターゲットシステムを生成する協調設計方法であって、
前記ターゲットシステムは、第1のプロセッサと少なくとも第2のプロセッサとを具備し、
請求項1に記載のソースコードにおける仕様を分割する方法を含む、
協調設計方法。 - ソースコードにおける仕様を分割する方法が、前記第1の抽象構文木の組を前記ソースコードによる第1の部分仕様に変換し、前記第2の抽象構文木の組を前記ソースコードによる第2の部分仕様に変換するステップをさらに含む、
請求項7に記載のターゲットシステムを生成する協調設計方法。 - 前記第2のプロセッサがコプロセッサであり、前記第2の部分仕様が前記コプロセッサの仕様に変換される、請求項8に記載のターゲットシステムを生成する協調設計方法。
- 前記第1のプロセッサが汎用プロセッサであり、前記第1の部分仕様がコンパイラを用いてオブジェクトコードに変換される、請求項9に記載のターゲットシステムを生成する協調設計方法。
- 前記汎用プロセッサと前記コプロセッサとの間にインタフェースを定義するステップをさらに含む、請求項10に記載のターゲットシステムを生成する協調設計方法。
- 前記コプロセッサの仕様がASICの仕様を含む、請求項9に記載の協調設計方法。
- 前記コプロセッサの仕様がプログラマブルプロセッサの仕様を含む、請求項9に記載の協調設計方法。
- 前記コプロセッサの仕様が再構成可能なプロセッサの仕様を含む、請求項9に記載の協調設計方法。
- 前記汎用プロセッサと前記コプロセッサとの間の前記インタフェースがリモート関数呼び出しを含み、
前記リモート関数呼び出しがパラメータの組を有し、
前記パラメータの組が、呼び出し先関数の識別子と、呼び出し先関数の入力データを指示する少なくとも一つの参照と、呼び出し先関数の結果データを指示する少なくとも一つの参照とを含む、
請求項11に記載の協調設計方法。 - 前記リモート関数呼び出しのパラメータの組が、呼び出し先関数のリターン状態に関する情報を格納するため使用される記憶場所への参照をさらに含む、請求項15に記載の協調設計方法。
- 前記ターゲットシステムがシステムメモリおよびシステムバスをさらに含み、
前記システムメモリ、前記第1のプロセッサおよび前記第2のプロセッサが前記バスシステムによって接続される、
請求項7に記載の協調設計方法。 - 前記汎用プロセッサがデジタル信号プロセッサである、請求項10に記載の協調設計方法。
- 分割コンパイラプログラムがコンピュータシステム上で動かされるとき、請求項1に記載のソースコードにおける仕様を分割する方法のすべてのステップを実施する分割コンパイラプログラムプロダクト。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02078038 | 2002-07-25 | ||
PCT/IB2003/002908 WO2004012083A2 (en) | 2002-07-25 | 2003-06-23 | Source-to-source partitioning compilation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005534114A true JP2005534114A (ja) | 2005-11-10 |
Family
ID=30775845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004524004A Pending JP2005534114A (ja) | 2002-07-25 | 2003-06-23 | ソース間分割コンパイル |
Country Status (7)
Country | Link |
---|---|
US (1) | US7559051B2 (ja) |
EP (1) | EP1527390A2 (ja) |
JP (1) | JP2005534114A (ja) |
KR (1) | KR100958909B1 (ja) |
CN (1) | CN1672132A (ja) |
AU (1) | AU2003242950A1 (ja) |
WO (1) | WO2004012083A2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009151422A (ja) * | 2007-12-19 | 2009-07-09 | Kddi Corp | プロセッサデバイスに基づくソースコード変換プログラム及び装置 |
JP2012133756A (ja) * | 2010-11-10 | 2012-07-12 | Src Computers Inc | ヘテロジニアス黙示的及び明示的プロセッシング要素の計算の一体化のためのシステム及び方法 |
JP2013125419A (ja) * | 2011-12-14 | 2013-06-24 | Fuji Xerox Co Ltd | ハードウエア/ソフトウエア協調設計装置及びプログラム |
JP2015534184A (ja) * | 2012-09-28 | 2015-11-26 | インテル・コーポレーション | コード実行の柔軟なアクセラレーション |
JP2018537779A (ja) * | 2015-11-19 | 2018-12-20 | ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツングdspace digital signal processing and control engineering GmbH | 制御装置の動作方法ならびに外部バイパスのために設計されている制御装置 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7457671B2 (en) * | 2004-09-30 | 2008-11-25 | Rockwell Automation Technologies, Inc. | Systems and methods that facilitate management of add-on instruction generation, selection, and/or monitoring during execution |
US7478376B2 (en) * | 2004-12-02 | 2009-01-13 | International Business Machines Corporation | Computer program code size partitioning method for multiple memory multi-processing systems |
US7487496B2 (en) * | 2004-12-02 | 2009-02-03 | International Business Machines Corporation | Computer program functional partitioning method for heterogeneous multi-processing systems |
JP4867009B2 (ja) * | 2004-12-09 | 2012-02-01 | 国立大学法人 奈良先端科学技術大学院大学 | 量子コンピュータを含むコンピュータシステムのためのプログラム開発支援装置、プログラム開発支援用プログラム、及びシミュレーション装置 |
US7509244B1 (en) * | 2004-12-22 | 2009-03-24 | The Mathworks, Inc. | Distributed model compilation |
US8316059B1 (en) | 2004-12-30 | 2012-11-20 | Robert T. and Virginia T. Jenkins | Enumeration of rooted partial subtrees |
US7899821B1 (en) | 2005-04-29 | 2011-03-01 | Karl Schiffmann | Manipulation and/or analysis of hierarchical data |
KR101528415B1 (ko) | 2007-11-01 | 2015-06-11 | 실리콘 하이브 비.브이. | 애플리케이션 프로파일 기반의 asip 설계 |
US20100037213A1 (en) * | 2008-08-07 | 2010-02-11 | Microsoft Corporation | Grammar-based generation of types and extensions |
US8352244B2 (en) * | 2009-07-21 | 2013-01-08 | International Business Machines Corporation | Active learning systems and methods for rapid porting of machine translation systems to new language pairs or new domains |
US20120096445A1 (en) * | 2010-10-18 | 2012-04-19 | Nokia Corporation | Method and apparatus for providing portability of partially accelerated signal processing applications |
US9489475B2 (en) * | 2012-05-31 | 2016-11-08 | Saudi Arabian Oil Company | Reservoir simulation with scalable grid computing |
US9760346B2 (en) * | 2013-05-31 | 2017-09-12 | Microsoft Technology Licensing, Llc | Deeply parallel source code compilation |
GB2523205B (en) * | 2014-03-18 | 2016-03-02 | Imagination Tech Ltd | Efficient calling of functions on a processor |
KR20160003485A (ko) | 2014-07-01 | 2016-01-11 | 삼성전자주식회사 | 원격 함수 호출을 위한 자동 코드 생성 |
CN104572234A (zh) * | 2014-12-29 | 2015-04-29 | 杭州华为数字技术有限公司 | 生成用于并行计算架构的源代码的方法及源到源编译器 |
US20170168792A1 (en) * | 2015-12-15 | 2017-06-15 | Futurewei Technologies, Inc. | Space and time aware organization and isolation of components in real time systems |
US10503509B2 (en) * | 2016-09-30 | 2019-12-10 | Intel Corporation | System and method for communication using a register management array circuit |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428793A (en) * | 1989-11-13 | 1995-06-27 | Hewlett-Packard Company | Method and apparatus for compiling computer programs with interproceduural register allocation |
US5276880A (en) * | 1989-12-15 | 1994-01-04 | Siemens Corporate Research, Inc. | Method for parsing and representing multi-versioned computer programs, for simultaneous and synchronous processing of the plural parses |
US5535342A (en) * | 1992-11-05 | 1996-07-09 | Giga Operations Corporation | Pld connector for module having configuration of either first PLD or second PLD and reconfigurable bus for communication of two different bus protocols |
US5615127A (en) * | 1994-11-30 | 1997-03-25 | International Business Machines Corporation | Parallel execution of a complex task partitioned into a plurality of entities |
EP0767544A3 (en) * | 1995-10-04 | 2002-02-27 | Interuniversitair Micro-Elektronica Centrum Vzw | Programmable modem using spread spectrum communication |
EP1065611A3 (en) * | 1995-10-23 | 2006-05-10 | Interuniversitair Microelektronica Centrum Vzw | A design environment for hardware/software co-design |
US5815717A (en) * | 1995-10-27 | 1998-09-29 | Authorgenics, Inc. | Application program and documentation generator system and method |
US5896537A (en) * | 1996-05-13 | 1999-04-20 | Siemens Corporate Research, Inc. | Partition based alias analyzer for pointers |
US5848262A (en) * | 1996-06-17 | 1998-12-08 | Hewlett-Packard Company | Simulating digital systems by using vector processing |
US6061513A (en) * | 1997-08-18 | 2000-05-09 | Scandura; Joseph M. | Automated methods for constructing language specific systems for reverse engineering source code into abstract syntax trees with attributes in a form that can more easily be displayed, understood and/or modified |
US6175957B1 (en) * | 1997-12-09 | 2001-01-16 | International Business Machines Corporation | Method of, system for, and computer program product for providing efficient utilization of memory hierarchy through code restructuring |
US6857102B1 (en) * | 1998-04-07 | 2005-02-15 | Fuji Xerox Co., Ltd. | Document re-authoring systems and methods for providing device-independent access to the world wide web |
EP0997815A3 (en) * | 1998-10-29 | 2004-05-26 | Texas Instruments Incorporated | Interactive translation system and method |
GB9828381D0 (en) * | 1998-12-22 | 1999-02-17 | Isis Innovation | Hardware/software codesign system |
US20030188300A1 (en) * | 2000-02-18 | 2003-10-02 | Patrudu Pilla G. | Parallel processing system design and architecture |
EP1168168A3 (en) * | 2000-06-20 | 2005-04-13 | Interuniversitair Microelektronica Centrum Vzw | Virtual hardware machine methods and devices |
US7343594B1 (en) * | 2000-08-07 | 2008-03-11 | Altera Corporation | Software-to-hardware compiler with symbol set inference analysis |
US20040015816A1 (en) * | 2001-01-05 | 2004-01-22 | Hines Kenneth Joseph | Coordination synthesis for software systems |
US7174536B1 (en) * | 2001-02-12 | 2007-02-06 | Iowa State University Research Foundation, Inc. | Integrated interactive software visualization environment |
US20030037319A1 (en) * | 2001-08-20 | 2003-02-20 | Ankur Narang | Method and apparatus for partitioning and placement for a cycle-based simulation system |
US8473922B2 (en) * | 2001-09-19 | 2013-06-25 | Hewlett-Packard Development Company, L.P. | Runtime monitoring in component-based systems |
US7062762B2 (en) * | 2001-12-12 | 2006-06-13 | Texas Instruments Incorporated | Partitioning symmetric nodes efficiently in a split register file architecture |
US20030140337A1 (en) * | 2001-12-21 | 2003-07-24 | Celoxica Ltd. | System, method, and article of manufacture for data transfer reporting for an application |
US7085918B2 (en) * | 2003-01-09 | 2006-08-01 | Cisco Systems, Inc. | Methods and apparatuses for evaluation of regular expressions of arbitrary size |
-
2003
- 2003-06-23 JP JP2004524004A patent/JP2005534114A/ja active Pending
- 2003-06-23 WO PCT/IB2003/002908 patent/WO2004012083A2/en active Application Filing
- 2003-06-23 EP EP03771222A patent/EP1527390A2/en not_active Ceased
- 2003-06-23 AU AU2003242950A patent/AU2003242950A1/en not_active Abandoned
- 2003-06-23 KR KR1020057001103A patent/KR100958909B1/ko not_active IP Right Cessation
- 2003-06-23 US US10/522,083 patent/US7559051B2/en not_active Expired - Fee Related
- 2003-06-23 CN CNA038174669A patent/CN1672132A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009151422A (ja) * | 2007-12-19 | 2009-07-09 | Kddi Corp | プロセッサデバイスに基づくソースコード変換プログラム及び装置 |
JP2012133756A (ja) * | 2010-11-10 | 2012-07-12 | Src Computers Inc | ヘテロジニアス黙示的及び明示的プロセッシング要素の計算の一体化のためのシステム及び方法 |
JP2013125419A (ja) * | 2011-12-14 | 2013-06-24 | Fuji Xerox Co Ltd | ハードウエア/ソフトウエア協調設計装置及びプログラム |
JP2015534184A (ja) * | 2012-09-28 | 2015-11-26 | インテル・コーポレーション | コード実行の柔軟なアクセラレーション |
US9836316B2 (en) | 2012-09-28 | 2017-12-05 | Intel Corporation | Flexible acceleration of code execution |
JP2018537779A (ja) * | 2015-11-19 | 2018-12-20 | ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツングdspace digital signal processing and control engineering GmbH | 制御装置の動作方法ならびに外部バイパスのために設計されている制御装置 |
Also Published As
Publication number | Publication date |
---|---|
EP1527390A2 (en) | 2005-05-04 |
WO2004012083A3 (en) | 2004-12-29 |
US7559051B2 (en) | 2009-07-07 |
AU2003242950A1 (en) | 2004-02-16 |
US20050246680A1 (en) | 2005-11-03 |
WO2004012083A2 (en) | 2004-02-05 |
KR20050021542A (ko) | 2005-03-07 |
CN1672132A (zh) | 2005-09-21 |
KR100958909B1 (ko) | 2010-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100958909B1 (ko) | 소스 코드에서의 규격을 분할하는 방법 및 목표 시스템을 생성하는 공동-설계 방법 | |
Bhattacharyya et al. | Overview of the MPEG reconfigurable video coding framework | |
Leupers | Retargetable code generation for digital signal processors | |
Paterson | A new notation for arrows | |
US8464214B2 (en) | Apparatus, method and system for building software by composition | |
JP4979875B2 (ja) | リターゲッタブルコンパイルシステム及び方法 | |
Wipliez et al. | Software code generation for the RVC-CAL language | |
JPH11249904A (ja) | コンパイル方法 | |
EA004196B1 (ru) | Управляющий программный продукт и система обработки данных | |
Zhao et al. | Optimizing the memory hierarchy by compositing automatic transformations on computations and data | |
Gorin et al. | LLVM-based and scalable MPEG-RVC decoder | |
de Araujo | Code generation algorithms for digital signal processors | |
Metcalf | The seven ages of fortran | |
Aditya et al. | Elcor's machine description system: Version 3.0 | |
Mattavelli et al. | MPEG reconfigurable video coding | |
Sun et al. | Designing high-quality hardware on a development effort budget: A study of the current state of high-level synthesis | |
Gorin et al. | A portable video tool library for MPEG reconfigurable video coding using LLVM representation | |
Rijpkema et al. | Deriving process networks from nested loop algorithms | |
Liao et al. | Code generation and optimization techniques for embedded digital signal processors | |
Brandner et al. | Automatic generation of compiler backends | |
Piper et al. | Generalized parallel programming with divide-and-conquer: The beeblebrox system | |
Lesser | Dynamic control structures and their use in emulation. | |
Saarikivi et al. | Translating C# to Branching Symbolic Transducers. | |
Caro | Generating multithreaded code from Parallel Haskell for symmetric multiprocessors | |
Tanase et al. | Fundamentals and Compiler Framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060621 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20070511 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071101 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081216 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090316 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090324 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090402 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090623 |