JP4703735B2 - コンパイラ、コード生成方法、コード生成プログラム - Google Patents
コンパイラ、コード生成方法、コード生成プログラム Download PDFInfo
- Publication number
- JP4703735B2 JP4703735B2 JP2009014308A JP2009014308A JP4703735B2 JP 4703735 B2 JP4703735 B2 JP 4703735B2 JP 2009014308 A JP2009014308 A JP 2009014308A JP 2009014308 A JP2009014308 A JP 2009014308A JP 4703735 B2 JP4703735 B2 JP 4703735B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- data
- code
- engine
- calculation
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
Description
前記第1の演算エンジンは、前記第1のバリッド信号の値を決定するための第1のコードを記憶する第1の記憶部と、前記第1のコードから前記第1のバリッド信号の値を求め、前記サイクルごとに出力する第1のコントローラと、を具備し、前記第2の演算エンジンは、前記第2のバリッド信号の値を決定するための第2のコードを記憶する第2の記憶部と、前記第2のコードから前記第2のバリッド信号の値を求め、前記サイクルごとに出力する第2のコントローラと、を具備する。
前記コンパイラは、前記第1の演算エンジンと前記第2の演算エンジンの間で受け渡される前記第1のデータ及び前記第2のデータの依存関係を示すデータ依存グラフから、前記サイクルごとに、前記第1の演算エンジン及び前記第2の演算エンジンのそれぞれが演算を行うか否かを決定する決定部と、前記第1の演算エンジンが演算を行うならば、前記第1のコントローラに前記第1の値を出力させ、前記第1の演算エンジンが演算を行わないならば、前記第1のコントローラに前記第2の値を出力させるようなコードを前記第1のコードとして生成し、前記第2の演算エンジンが演算を行うならば、前記第2のコントローラに前記第1の値を出力させ、前記第2の演算エンジンが演算を行わないならば、前記第2のコントローラに前記第2の値を出力させるようなコードを前記第2のコードとして生成するコード生成部と、を具備することを特徴とする。
11A〜E…演算エンジン;
110…入力コントローラ;
1100…入力A選択部;
1101…入力B選択部;
1102…コンテキスト情報メモリ;
1103…コンテキストIDラッチ;
1104…データ処理終了ラッチ;
1105…インクリメンタ;
1106…マルチプレクサ;
1107A〜B…ラッチ;
1108A〜B…タイミングラッチ;
113A〜E…演算ユニット;
1130…演算器;
1131…制御テーブルメモリ;
1132A〜D…設定情報レジスタ;
1133…マルチプレクサ;
114A〜E…データパイプラインレジスタ;
115A〜E…制御パイプラインレジスタ;
116…出力コントローラ;
1160A〜B…ベースアドレスレジスタ;
1161…制御テーブルメモリ;
1162…加算器;
1163…マルチプレクサ;
117…最終コンテキストIDラッチ;
118…マルチプレクサ;
12…演算エンジン間バッファ;
120A〜H…データレジスタ;
1200…データラッチ;
1201A〜D…ANDロジック;
1202…ORロジック;
1203…マルチプレクサ;
13…コードメモリ;
14…コード転送制御装置;
140…メモリIDレジスタ;
141…アドレスレジスタ;
142…コードアドレスレジスタ;
143A〜C…インクリメンタ;
144A〜D…マルチプレクサ;
145…Validラッチ;
146…比較器;
15…データメモリ
Claims (6)
- サイクルごとに第1の演算を行い、前記第1の演算の結果を示す第1のデータと、第1の値又は第2の値を示す第1のバリッド信号とを前記サイクルごとに出力する第1の演算エンジンと、
前記サイクルごとに第2の演算を行い、前記第2の演算の結果を示す第2のデータと、前記第1の値又は前記第2の値を示す第2のバリッド信号とを前記サイクルごとに出力する第2の演算エンジンと、
前記第1の演算エンジンと前記第2の演算エンジンの間で前記第1のデータ及び前記第2のデータを受け渡すために用いられ、前記第1のバリッド信号又は前記第2のバリッド信号が前記第1の値を示すならば、前記第1のデータ又は前記第2のデータの書込みが可能であり、前記第1のバリッド信号又は前記第2のバリッド信号が前記第2の値を示すならば、前記第1のデータ又は前記第2データの書込みを禁止する演算エンジン間バッファと、を具備し、
前記第1の演算エンジンは、
前記第1のバリッド信号の値を決定するための第1のコードを記憶する第1の記憶部と、
前記第1のコードから前記第1のバリッド信号の値を求め、前記サイクルごとに出力する第1のコントローラと、を具備し、
前記第2の演算エンジンは、
前記第3のバリッド信号の値を決定するための第2のコードを記憶する第2の記憶部と、
前記第2のコードから前記第2のバリッド信号の値を求め、前記サイクルごとに出力する第2のコントローラと、を具備する半導体装置に用いられる前記第1のコード及び前記第2のコードを生成するコンパイラであって、
コンピュータを、
前記第1の演算エンジンと前記第2の演算エンジンの間で受け渡される前記第1のデータ及び前記第2のデータの依存関係を示すデータ依存グラフから、前記サイクルごとに、前記第1の演算エンジン及び前記第2の演算エンジンのそれぞれが演算を行うか否かを決定する決定部と、
前記第1の演算エンジンが演算を行うならば、前記第1のコントローラに前記第1の値を出力させ、前記第1の演算エンジンが演算を行わないならば、前記第1のコントローラに前記第2の値を出力させるようなコードを前記第1のコードとして生成し、
前記第2の演算エンジンが演算を行うならば、前記第2のコントローラに前記第1の値を出力させ、前記第2の演算エンジンが演算を行わないならば、前記第2のコントローラに前記第2の値を出力させるようなコードを前記第2のコードとして生成するコード生成部、として機能させるためのコンパイラ。 - 前記決定部は、ある演算への入力となるデータの一部が既に演算されており、該データの一部が前記演算エンジン間バッファに書き込まれているような演算を前記データ依存グラフから特定する特定部と、
前記特定部により特定された演算が優先して実行されるように前記第1の演算エンジン及び前記第2の演算エンジンのそれぞれの演算の順序を決めるスケジューリング部と、を具備することを特徴とする請求項1に記載のコンパイラ。 - サイクルごとに第1の演算を行い、前記第1の演算の結果を示す第1のデータと、第1の値又は第2の値を示す第1のバリッド信号とを前記サイクルごとに出力する第1の演算エンジンと、
前記サイクルごとに第2の演算を行い、前記第2の演算の結果を示す第2のデータと、前記第1の値又は前記第2の値を示す第2のバリッド信号とを前記サイクルごとに出力する第2の演算エンジンと、
前記第1の演算エンジンと前記第2の演算エンジンの間で前記第1のデータ及び前記第2のデータを受け渡すために用いられ、前記第1のバリッド信号又は前記第2のバリッド信号が前記第1の値を示すならば、前記第1のデータ又は前記第2のデータの書込みが可能であり、前記第1のバリッド信号又は前記第2のバリッド信号が前記第2の値を示すならば、前記第1のデータ又は前記第2データの書込みを禁止する演算エンジン間バッファと、を具備し、
前記第1の演算エンジンは、
前記第1のバリッド信号の値を決定するための第1のコードを記憶する第1の記憶部と、
前記第1のコードから前記第1のバリッド信号の値を求め、前記サイクルごとに出力する第1のコントローラと、を具備し、
前記第2の演算エンジンは、
前記第3のバリッド信号の値を決定するための第2のコードを記憶する第2の記憶部と、
前記第2のコードから前記第2のバリッド信号の値を求め、前記サイクルごとに出力する第2のコントローラと、を具備する半導体装置に用いられる前記第1のコード及び前記第2のコードを生成するコード生成方法あって、
決定部が、
前記第1の演算エンジンと前記第2の演算エンジンの間で受け渡される前記第1のデータ及び前記第2のデータの依存関係を示すデータ依存グラフから、前記サイクルごとに、前記第1の演算エンジン及び前記第2の演算エンジンのそれぞれが演算を行うか否かを決定するステップと、
コード生成部が、
前記第1の演算エンジンが演算を行うならば、前記第1のコントローラに前記第1の値を出力させ、前記第1の演算エンジンが演算を行わないならば、前記第1のコントローラに前記第2の値を出力させるようなコードを前記第1のコードとして生成し、前記第2の演算エンジンが演算を行うならば、前記第2のコントローラに前記第1の値を出力させ、前記第2の演算エンジンが演算を行わないならば、前記第2のコントローラに前記第2の値を出力させるようなコードを前記第2のコードとして生成するステップと、を具備するコード生成方法。 - サイクルごとに第1の演算を行い、前記第1の演算の結果を示す第1のデータと、第1の値又は第2の値を示す第1のバリッド信号とを前記サイクルごとに出力する第1の演算エンジンと、
前記サイクルごとに第2の演算を行い、前記第2の演算の結果を示す第2のデータと、前記第1の値又は前記第2の値を示す第2のバリッド信号とを前記サイクルごとに出力する第2の演算エンジンと、
前記第1の演算エンジンと前記第2の演算エンジンの間で前記第1のデータ及び前記第2のデータを受け渡すために用いられ、前記第1のバリッド信号又は前記第2のバリッド信号が前記第1の値を示すならば、前記第1のデータ又は前記第2のデータの書込みが可能であり、前記第1のバリッド信号又は前記第2のバリッド信号が前記第2の値を示すならば、前記第1のデータ又は前記第2データの書込みを禁止する演算エンジン間バッファと、を具備し、
前記第1の演算エンジンは、
前記第1のバリッド信号の値を決定するための第1のコードを記憶する第1の記憶部と、
前記第1のコードから前記第1のバリッド信号の値を求め、前記サイクルごとに出力する第1のコントローラと、を具備し、
前記第2の演算エンジンは、
前記第3のバリッド信号の値を決定するための第2のコードを記憶する第2の記憶部と、
前記第2のコードから前記第2のバリッド信号の値を求め、前記サイクルごとに出力する第2のコントローラと、を具備する半導体装置に用いられる前記第1のコード及び前記第2のコードを生成するコード生成プログラムあって、
コンピュータを、
前記第1の演算エンジンと前記第2の演算エンジンの間で受け渡される前記第1のデータ及び前記第2のデータの依存関係を示すデータ依存グラフから、前記サイクルごとに、前記第1の演算エンジン及び前記第2の演算エンジンのそれぞれが演算を行うか否かを決定する決定部と、
前記第1の演算エンジンが演算を行うならば、前記第1のコントローラに前記第1の値を出力させ、前記第1の演算エンジンが演算を行わないならば、前記第1のコントローラに前記第2の値を出力させるようなコードを前記第1のコードとして生成し、前記第2の演算エンジンが演算を行うならば、前記第2のコントローラに前記第1の値を出力させ、前記第2の演算エンジンが演算を行わないならば、前記第2のコントローラに前記第2の値を出力させるようなコードを前記第2のコードとして生成するコード生成部、として機能させるためのコード生成プログラム。 - 第1の設定IDにより識別可能な第1の設定情報を記憶する第1の設定情報レジスタと、
サイクルごとに前記第1の設定IDに従って前記第1の設定情報レジスタから前記第1の設定情報を読み出し、該第1の設定情報に従って設定を変更しながら第1の演算を行い、前記第1の演算の結果を示す第1のデータと、第1の値又は第2の値を示す第1のバリッド信号とを前記サイクルごとに出力する第1の演算エンジンと、
第2の設定IDにより識別可能な第2の設定情報を記憶する第2の設定情報レジスタと、
サイクルごとに前記第2の設定IDに従って前記第2の設定情報レジスタから前記第2の設定情報を読み出し、該第2の設定情報に従って設定を変更しながら第2の演算を行い、前記第2の演算の結果を示す第2のデータと、第1の値又は第2の値を示す第2のバリッド信号とを前記サイクルごとに出力する第2の演算エンジンと、
前記第1の演算エンジンと前記第2の演算エンジンの間で前記第1のデータ及び前記第2のデータを受け渡すために用いられ、前記第1のバリッド信号又は前記第2のバリッド信号が前記第1の値を示すならば、前記第1のデータ又は前記第2のデータの書込みが可能であり、前記第1のバリッド信号又は前記第2のバリッド信号が前記第2の値を示すならば、前記第1のデータ又は前記第2データの書込みを禁止する演算エンジン間バッファと、を具備し、
前記第1の演算エンジンは、
前記第1のバリッド信号の値を決定するための第1のコードを記憶する第1の記憶部と、
前記第1のコードから前記第1のバリッド信号の値を求め、前記サイクルごとに出力する第1のコントローラと、を具備し、
前記第2の演算エンジンは、
前記第3のバリッド信号の値を決定するための第2のコードを記憶する第2の記憶部と、
前記第2のコードから前記第2のバリッド信号の値を求め、前記サイクルごとに出力する第2のコントローラと、を具備するリコンフィギュアラブルデバイスに用いられる前記第1のコード及び前記第2のコードを生成するコンパイラであって、
コンピュータを、
前記第1の演算エンジンと前記第2の演算エンジンの間で受け渡される前記第1のデータ及び前記第2のデータの依存関係を示すデータ依存グラフから、前記サイクルごとに、前記第1の演算エンジン及び前記第2の演算エンジンのそれぞれが演算を行うか否かを決定する決定部と、
前記第1の演算エンジンが演算を行うならば、前記第1のコントローラに前記第1の値を出力させ、前記第1の演算エンジンが演算を行わないならば、前記第1のコントローラに前記第2の値を出力させるようなコードを前記第1のコードとして生成し、
前記第2の演算エンジンが演算を行うならば、前記第2のコントローラに前記第1の値を出力させ、前記第2の演算エンジンが演算を行わないならば、前記第2のコントローラに前記第2の値を出力させるようなコードを前記第2のコードとして生成するコード生成部と、として機能させるためのコンパイラ。 - 前記決定部は、ある演算への入力となるデータの一部が既に演算されており、該データの一部が前記演算エンジン間バッファに書き込まれているような演算を前記データ依存グラフから特定する特定部と、
前記特定部により特定された演算が優先して実行されるように前記第1の演算エンジン及び前記第2の演算エンジンのそれぞれの演算の順序を決めるスケジューリング部と、を具備する請求項5に記載のコンパイラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009014308A JP4703735B2 (ja) | 2009-01-26 | 2009-01-26 | コンパイラ、コード生成方法、コード生成プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009014308A JP4703735B2 (ja) | 2009-01-26 | 2009-01-26 | コンパイラ、コード生成方法、コード生成プログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007084281A Division JP4444305B2 (ja) | 2007-03-28 | 2007-03-28 | 半導体装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009140514A JP2009140514A (ja) | 2009-06-25 |
JP4703735B2 true JP4703735B2 (ja) | 2011-06-15 |
Family
ID=40870985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009014308A Expired - Fee Related JP4703735B2 (ja) | 2009-01-26 | 2009-01-26 | コンパイラ、コード生成方法、コード生成プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4703735B2 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006018514A (ja) * | 2004-06-30 | 2006-01-19 | Fujitsu Ltd | 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体 |
JP2006040254A (ja) * | 2004-06-21 | 2006-02-09 | Sanyo Electric Co Ltd | リコンフィギュラブル回路および処理装置 |
JP2006099719A (ja) * | 2004-08-30 | 2006-04-13 | Sanyo Electric Co Ltd | 処理装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6246354A (ja) * | 1985-08-23 | 1987-02-28 | Nec Corp | ペ−ジ履歴メモリ制御方式 |
-
2009
- 2009-01-26 JP JP2009014308A patent/JP4703735B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006040254A (ja) * | 2004-06-21 | 2006-02-09 | Sanyo Electric Co Ltd | リコンフィギュラブル回路および処理装置 |
JP2006018514A (ja) * | 2004-06-30 | 2006-01-19 | Fujitsu Ltd | 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体 |
JP2006099719A (ja) * | 2004-08-30 | 2006-04-13 | Sanyo Electric Co Ltd | 処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2009140514A (ja) | 2009-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7264955B2 (ja) | プログラム可能な最適化を有するメモリネットワークプロセッサ | |
CN109213723B (zh) | 一种用于数据流图处理的处理器、方法、设备、及一种非暂时性机器可读介质 | |
US9830156B2 (en) | Temporal SIMT execution optimization through elimination of redundant operations | |
JP6143872B2 (ja) | 装置、方法、およびシステム | |
JP4986431B2 (ja) | プロセッサ | |
JP6373425B2 (ja) | 複数のビットを左にシフトし、複数の1を複数の下位ビットにプルインするための命令 | |
US20110231616A1 (en) | Data processing method and system | |
CN117724763A (zh) | 用于矩阵操作加速器的指令的装置、方法和系统 | |
KR100681199B1 (ko) | 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치 | |
JP2012529096A (ja) | ベクトル命令を取り扱うためのデータ処理装置および方法 | |
CN108780395B (zh) | 矢量预测指令 | |
US20140047218A1 (en) | Multi-stage register renaming using dependency removal | |
JP2017538213A (ja) | アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置 | |
TWI613590B (zh) | 處理器流水線中的靈活的指令執行 | |
WO2017021675A1 (en) | Element size increasing instruction | |
Wolf et al. | AMIDAR project: lessons learned in 15 years of researching adaptive processors | |
JP4444305B2 (ja) | 半導体装置 | |
TWI613589B (zh) | 處理器流水線中的靈活的指令執行 | |
JP5231949B2 (ja) | 半導体装置、および、半導体装置によるデータ処理方法 | |
US9477628B2 (en) | Collective communications apparatus and method for parallel systems | |
JP4703735B2 (ja) | コンパイラ、コード生成方法、コード生成プログラム | |
JP5145659B2 (ja) | ベクトルリネーミング方式およびベクトル型計算機 | |
JP6344022B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
US11176278B2 (en) | Efficient rotate adder for implementing cryptographic basic operations | |
JP5025521B2 (ja) | 半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091215 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101012 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101122 |
|
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: 20110208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110308 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4703735 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |