JP5071189B2 - プロセッサ合成装置、コンパイル装置、開発システム、プロセッサ合成方法およびプログラム - Google Patents
プロセッサ合成装置、コンパイル装置、開発システム、プロセッサ合成方法およびプログラム Download PDFInfo
- Publication number
- JP5071189B2 JP5071189B2 JP2008078273A JP2008078273A JP5071189B2 JP 5071189 B2 JP5071189 B2 JP 5071189B2 JP 2008078273 A JP2008078273 A JP 2008078273A JP 2008078273 A JP2008078273 A JP 2008078273A JP 5071189 B2 JP5071189 B2 JP 5071189B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- level description
- instruction
- unit
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
まず、動作合成部は、与えられた動作レベル記述からレジスタ転送レベル記述を生成する。
次に、受付部は、プロセッサが解釈可能な命令と当該命令により当該プロセッサが実行する処理とを対応付けて記述する第1の動作レベル記述と、当該プロセッサのレジスタ転送レベル記述が満たすべき性能目標と、の入力を受け付ける。
さらに、抽出部は、当該第1の動作レベル記述から当該プロセッサが実行する処理を表す関数のうち、当該プロセッサが解釈可能な命令に対応して当該プロセッサが実行する処理の全てを単独では表していない関数を抽出する。
そして、追加部は、当該抽出された関数からいずれかを選択し、当該選択された関数により表される処理を当該プロセッサが実行する処理とする新たな命令を生成して、当該生成された命令と当該選択された関数により表される処理とを対応付ける記述を当該第1の動作レベル記述に追加した第2の動作レベル記述を生成する。
また、出力部は、当該第2の動作レベル記述を動作合成部に与えて得られるレジスタ転送レベル記述が当該受け付けられた性能目標を
(a)満たす場合、当該得られたレジスタ転送レベル記述を出力し、
(b)満たさない場合、当該第1の動作レベル記述を動作合成部に与えて得られるレジスタ転送レベル記述を出力する。
まず、コンパイラ生成部は、上記のプロセッサ合成装置から出力されるレジスタ転送レベル記述に対する動作レベル記述において記述される命令のうち、ユーザにより指定された命令(以下「無効命令」という。)以外の命令(以下「有効命令」という。)と当該有効命令により当該プロセッサが実行する処理と、から、当該プロセッサ用のコンパイラを生成する。
次に、アプリケーション生成部は、当該プロセッサにより実行されるべきアプリケーションのソースプログラムを、当該生成されたコンパイラによりコンパイルして、当該プロセッサにより実行可能なアプリケーションプログラムを得る。
すなわち、動作合成ステップでは、動作合成部が、与えられた動作レベル記述からレジスタ転送レベル記述を生成する。
そして、受付ステップでは、受付部が、プロセッサが解釈可能な命令と当該命令により当該プロセッサが実行する処理とを対応付けて記述する第1の動作レベル記述と、当該プロセッサのレジスタ転送レベル記述が満たすべき性能目標と、の入力を受け付ける。
さらに、抽出ステップでは、抽出部が、当該第1の動作レベル記述から当該プロセッサが実行する処理を表す関数のうち、当該プロセッサが解釈可能な命令に対応して当該プロセッサが実行する処理の全てを単独では表していない処理を表す関数を抽出する。
また、追加ステップでは、追加部が、当該抽出された関数からいずれかを選択し、当該選択された関数により表される処理を当該プロセッサが実行する処理とする新たな命令を生成して、当該生成された命令と当該選択された関数により表される処理とを対応付ける記述を当該第1の動作レベル記述に追加した第2の動作レベル記述を生成する。
さらに、出力ステップでは、出力部が、当該第2の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述が当該受け付けられた性能目標を
(a)満たす場合、当該得られたレジスタ転送レベル記述を出力し、
(b)満たさない場合、当該第1の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述を出力する。
まず、動作合成部は、与えられた動作レベル記述からレジスタ転送レベル記述を生成する。
次に、受付部は、プロセッサが解釈可能な命令と当該命令により当該プロセッサが実行する処理とを対応付けて記述する第1の動作レベル記述と、当該プロセッサのレジスタ転送レベル記述が満たすべき性能目標と、の入力を受け付ける。
さらに、抽出部は、当該第1の動作レベル記述から当該プロセッサが実行する処理を表す関数のうち、当該プロセッサが解釈可能な命令に対応して当該プロセッサが実行する処理の全てを単独では表していない処理を表す関数を抽出する。
また、追加部は、当該抽出された関数からいずれかを選択し、当該選択された関数により表される処理を当該プロセッサが実行する処理とする新たな命令を生成して、当該生成された命令と当該選択された関数により表される処理とを対応付ける記述を当該第1の動作レベル記述に追加した第2の動作レベル記述を生成する。
さらに、出力部は、当該第2の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述が前記受け付けられた性能目標を
(a)満たす場合、当該得られたレジスタ転送レベル記述を出力し、
(b)満たさない場合、当該第1の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述を出力する。
このとき、専用命令AVE_DIFFにバグがない限りは、アプリケーションプログラムのコンパイルに、追加命令DIFF及びFILL_BUFの命令定義テーブルは使用されない。そのため、ここで追加した命令は使用されない。
上記実施形態に係るプロセッサ合成装置100は、得られる性能指標が性能目標を満たす場合に、命令を1つだけプロセッサに追加した。しかながら、得られる性能指標が性能目標を満たす限り、プロセッサへの命令の追加を繰り返すことができる。以下、変形例に係るプロセッサ合成装置200について説明する。
12 ROM
13 RAM
14 ハードディスク装置
15 入力装置
16 表示装置
20 受付部
30 抽出部
40 追加部
50 動作合成部
60 出力部
100、200 プロセッサ合成装置
101 命令追加手段
102 動作合成手段
110 記憶装置
111 プロセッサソースコード
112 命令定義テーブル
113 RTL記述
114 性能指標
Claims (10)
- 与えられた動作レベル記述からレジスタ転送レベル記述を生成する動作合成部と、
プロセッサが解釈可能な命令と当該命令により当該プロセッサが実行する処理とを対応付けて記述する第1の動作レベル記述と、当該プロセッサのレジスタ転送レベル記述が満たすべき性能目標と、の入力を受け付ける受付部と、
当該第1の動作レベル記述から当該プロセッサが実行する処理を表す関数のうち、当該プロセッサが解釈可能な命令に対応して当該プロセッサが実行する処理の全てを単独では表していない関数を抽出する抽出部と、
当該抽出された関数からいずれかを選択し、当該選択された関数により表される処理を当該プロセッサが実行する処理とする新たな命令を生成して、当該生成された命令と当該選択された関数とを対応付ける記述を当該第1の動作レベル記述に追加した第2の動作レベル記述を生成する追加部と、
当該第2の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述が当該受け付けられた性能目標を
(a)満たす場合、当該得られたレジスタ転送レベル記述を出力し、
(b)満たさない場合、当該第1の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述を出力する
出力部と、
を備える、ことを特徴とするプロセッサ合成装置。 - 請求項1に記載のプロセッサ合成装置であって、
前記出力部は、当該第2の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述が当該受け付けられた性能目標を満たす場合、当該得られたレジスタ転送レベル記述を出力するのにかえて、当該第2の動作レベル記述を新たな第1の動作レベル記述として前記抽出部に与える、
ことを特徴とするプロセッサ合成装置。 - 請求項2に記載のプロセッサ合成装置であって、
前記追加部は、前記抽出された関数のうち引数の個数及び型並びに返り値の型が所定の条件を満たすものを選択する、
ことを特徴とするプロセッサ合成装置。 - 請求項2に記載のプロセッサ合成装置であって、
前記追加部は、前記抽出された関数のうち引数の個数及び型並びに返り値の型が所定の条件を満たし、当該第1の動作レベル記述においていずれかの命令に対応付けられる処理を表す記述に含まれる関数若しくは当該関数から呼び出される関数を選択する、
ことを特徴とするプロセッサ合成装置。 - 請求項4に記載のプロセッサ合成装置であって、
前記追加部は、当該呼び出される関数が複数ある場合に、それぞれの関数について、当該関数を新たな命令に対応付けて当該第1の動作レベル記述に追加したものを前記動作合成部に与えて得られるレジスタ転送レベル記述の評価値が最も大きくなる関数を選択する、
ことを特徴とするプロセッサ合成装置。 - 請求項5に記載のプロセッサ合成装置であって、
当該レジスタ転送レベル記述の評価値は当該プロセッサの面積である、
ことを特徴とするプロセッサ合成装置。 - 請求項1乃至6のいずれか1項に記載のプロセッサ合成装置から出力されるレジスタ転送レベル記述に対する動作レベル記述において記述される命令のうち、ユーザにより指定された命令(以下「無効命令」という。)以外の命令(以下「有効命令」という。)と当該有効命令により当該プロセッサが実行する処理と、から、当該プロセッサ用のコンパイラを生成するコンパイラ生成部と、
当該プロセッサにより実行されるべきアプリケーションのソースプログラムを、当該生成されたコンパイラによりコンパイルして、当該プロセッサにより実行可能なアプリケーションプログラムを得るアプリケーション生成部と、
を備える、ことを特徴とするコンパイル装置。 - 請求項1乃至6のいずれか1項に記載のプロセッサ合成装置と、
当該プロセッサ合成装置に対する請求項7に記載のコンパイル装置と、
を備えることを特徴とする開発システム。 - 動作合成部、受付部、抽出部、追加部、出力部を備えるプロセッサ合成装置が実行するプロセッサ合成方法であって、
前記動作合成部が、与えられた動作レベル記述からレジスタ転送レベル記述を生成する動作合成ステップ、
前記受付部が、プロセッサが解釈可能な命令と当該命令により当該プロセッサが実行する処理とを対応付けて記述する第1の動作レベル記述と、当該プロセッサのレジスタ転送レベル記述が満たすべき性能目標と、の入力を受け付ける受付ステップ、
前記抽出部が、当該第1の動作レベル記述から当該プロセッサが実行する処理を表す関数のうち、当該プロセッサが解釈可能な命令に対応して当該プロセッサが実行する処理の全てを単独では表していない処理を表す関数を抽出する抽出ステップ、
前記追加部が、当該抽出された関数からいずれかを選択し、当該選択された関数により表される処理を当該プロセッサが実行する処理とする新たな命令を生成して、当該生成された命令と当該選択された関数により表される処理とを対応付ける記述を当該第1の動作レベル記述に追加した第2の動作レベル記述を生成する追加ステップ、
前記出力部が、当該第2の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述が当該受け付けられた性能目標を
(a)満たす場合、当該得られたレジスタ転送レベル記述を出力し、
(b)満たさない場合、当該第1の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述を出力する
出力ステップ、
を備える、ことを特徴とするプロセッサ合成方法。 - コンピュータを、
与えられた動作レベル記述からレジスタ転送レベル記述を生成する動作合成部、
プロセッサが解釈可能な命令と当該命令により当該プロセッサが実行する処理とを対応付けて記述する第1の動作レベル記述と、当該プロセッサのレジスタ転送レベル記述が満たすべき性能目標と、の入力を受け付ける受付部、
当該第1の動作レベル記述から当該プロセッサが実行する処理を表す関数のうち、当該プロセッサが解釈可能な命令に対応して当該プロセッサが実行する処理の全てを単独では表していない処理を表す関数を抽出する抽出部、
当該抽出された関数からいずれかを選択し、当該選択された関数により表される処理を当該プロセッサが実行する処理とする新たな命令を生成して、当該生成された命令と当該選択された関数により表される処理とを対応付ける記述を当該第1の動作レベル記述に追加した第2の動作レベル記述を生成する追加部、
当該第2の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述が前記受け付けられた性能目標を
(a)満たす場合、当該得られたレジスタ転送レベル記述を出力し、
(b)満たさない場合、当該第1の動作レベル記述を前記動作合成部に与えて得られるレジスタ転送レベル記述を出力する
出力部、
として機能させる、ことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008078273A JP5071189B2 (ja) | 2008-03-25 | 2008-03-25 | プロセッサ合成装置、コンパイル装置、開発システム、プロセッサ合成方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008078273A JP5071189B2 (ja) | 2008-03-25 | 2008-03-25 | プロセッサ合成装置、コンパイル装置、開発システム、プロセッサ合成方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009230683A JP2009230683A (ja) | 2009-10-08 |
JP5071189B2 true JP5071189B2 (ja) | 2012-11-14 |
Family
ID=41245947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008078273A Expired - Fee Related JP5071189B2 (ja) | 2008-03-25 | 2008-03-25 | プロセッサ合成装置、コンパイル装置、開発システム、プロセッサ合成方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5071189B2 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003337838A (ja) * | 2002-03-14 | 2003-11-28 | Pacific Design Kk | データ処理装置の設計方法 |
JP2006202330A (ja) * | 2006-03-31 | 2006-08-03 | Nec Electronics Corp | システムlsiの設計方法及びこれを記憶した記録媒体 |
-
2008
- 2008-03-25 JP JP2008078273A patent/JP5071189B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009230683A (ja) | 2009-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5910108B2 (ja) | 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 | |
JPH10320214A (ja) | コンパイルシステム及びコンピュータプログラム製品 | |
US8516414B2 (en) | Behavioral synthesis device, behavioral synthesis method, and computer program product | |
JP2007034584A (ja) | 高位合成装置、自動高位合成方法、高位合成プログラム及びゲートネットリスト自動検証方法 | |
JP2006285333A (ja) | 動作合成装置及び方法 | |
Frangieh et al. | A design assembly framework for FPGA back-end acceleration | |
JP5157534B2 (ja) | 動作合成装置、および、プログラム | |
JP5228546B2 (ja) | 動作合成装置、および、プログラム | |
JP5071189B2 (ja) | プロセッサ合成装置、コンパイル装置、開発システム、プロセッサ合成方法およびプログラム | |
JP5668404B2 (ja) | 構成情報管理装置、その方法及びそのプログラム並びに動作合成装置 | |
JP2007102651A (ja) | データ処理システム | |
JP2012238235A (ja) | プログラム検証装置及びプログラム | |
JP5471413B2 (ja) | 動作合成装置及び方法 | |
US8694975B2 (en) | Programming system in multi-core environment, and method and program of the same | |
Zaretsky et al. | Overview of the FREEDOM compiler for mapping DSP software to FPGAs | |
JP2007080049A (ja) | 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部 | |
JP2018124877A (ja) | コード生成装置、コード生成方法、およびコード生成プログラム | |
JP2006202330A (ja) | システムlsiの設計方法及びこれを記憶した記録媒体 | |
JP2006259805A (ja) | プロセッサ設計装置、プロセッサ設計方法およびプロセッサ設計プログラム | |
JP6342065B2 (ja) | 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム | |
Häublein et al. | Hybrid code description for developing fast and resource efficient image processing architectures | |
JP2018163381A (ja) | コード生成装置、コード生成方法及びコード生成プログラム | |
JP5267376B2 (ja) | 動作合成装置、動作合成方法、ならびに、プログラム | |
Ordaz et al. | HLS compilation for CPU interlays | |
JP2004252807A (ja) | ソフトウェア開発支援装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120508 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120704 |
|
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: 20120724 |
|
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: 20120806 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5071189 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150831 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |