JP3863544B1 - 演算処理装置及び演算処理方法 - Google Patents
演算処理装置及び演算処理方法 Download PDFInfo
- Publication number
- JP3863544B1 JP3863544B1 JP2005198562A JP2005198562A JP3863544B1 JP 3863544 B1 JP3863544 B1 JP 3863544B1 JP 2005198562 A JP2005198562 A JP 2005198562A JP 2005198562 A JP2005198562 A JP 2005198562A JP 3863544 B1 JP3863544 B1 JP 3863544B1
- Authority
- JP
- Japan
- Prior art keywords
- register
- code
- arithmetic processing
- instruction
- logical
- 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
- 238000003672 processing method Methods 0.000 title claims description 8
- 238000004364 calculation method Methods 0.000 claims description 12
- 101150064138 MAP1 gene Proteins 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 101150031250 retm gene Proteins 0.000 description 3
- 101100075995 Schizosaccharomyces pombe (strain 972 / ATCC 24843) fma2 gene Proteins 0.000 description 1
- 101100456045 Schizosaccharomyces pombe (strain 972 / ATCC 24843) map3 gene Proteins 0.000 description 1
- 101100108191 Vibrio parahaemolyticus serotype O3:K6 (strain RIMD 2210633) add gene Proteins 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】 命令メモリ12は、実行する複数の共通な演算パターンを、複数の論理レジスタを用いて表される1つの共通コードとした命令コードを格納する。レジスタマップテーブル管理部14は、論理レジスタへ割り当てる物理レジスタを管理する複数のレジスタマップテーブル14a、14b、14cを記憶し、共通コードの呼び出しの際に指定されるレジスタマップテーブル14a、14b、14cを用いて論理レジスタへ割り当てる物理レジスタを決定する。
【選択図】 図1
Description
図6は、従来の命令コードの例を示す図である。
ここでは、(a+b)×(a−b)を演算する命令コード50を示している。
また、本発明の他の目的は、命令コードを削減可能な演算処理方法を提供することである。
図1は、第1の実施の形態の演算処理装置の構成を示す図である。
第1の実施の形態の演算処理装置10aは、PC(プログラムカウンタ)11、命令メモリ12、命令デコーダ13、レジスタマップテーブル管理部14、レジスタファイル15、ALU(Arithmetic and Logical Unit)16、レジスタ制御部17、演算制御部18、を有する。
命令メモリ12は、演算処理装置10aで実行される命令コードを格納する。命令コードは、アセンブリで直接記述したものを用いてもよいが、例えば、C言語などの高級言語を使用して記述されたプログラムから、コンパイラによってコンパイルして生成されたものを命令コードとして用いてもよい。また、命令コードは、2次メモリ、ハードディスクまたはネットワークなどから命令メモリ12にロードするようにしてもよい。
ここではアセンブリで記述された命令コードを示している。
演算処理装置10aで用いられる命令コード20は、実行するプログラム中に同一のアルゴリズムで表現できるような共通な演算パターン、例えば、(a+b)×(a−b)を計算するコード21a、21b、21cがある場合に、従来のように直接物理レジスタを指定するのではなく(図6参照)、論理レジスタa、b、c、d、eを用いて上記の演算処理を記述した共通コード22を呼び出すようにしている。なお、共通コード22を呼び出しの際、各コード21a、21b、21cでは、論理レジスタa、b、c、d、eに割り当てる物理レジスタを決定するため、後述するレジスタマップテーブル14a、14b、14cを指定する。なお、共通コード22の呼び出し命令“jmpm”、加算命令“addm”、減算命令“subm”、乗算命令“multm”、リターン命令“retm”の末尾の“m”は、レジスタマップテーブル14a、14b、14cを用いた命令であることを示している。
図3は、レジスタマップテーブルの例を示す図である。
レジスタ制御部17は、命令デコーダ13によるデコード結果に応じて、選択された物理レジスタへのデータのリードやライトなどを制御する。
次に、本実施の形態の演算処理装置10aの動作を、図2の命令コード20及び図3のレジスタマップテーブル14a、14b、14cを用いた場合を例にして説明する。
以上のように、本実施の形態の演算処理装置10aでは、実行する複数の共通な演算パターンを、論理レジスタa、b、c、d、eを用いて表される1つの共通コード22にした命令コード20を用い、共通コード22の呼び出し時に指定されるレジスタマップテーブル14a、14b、14cによって共通コード22中の論理レジスタa、b、c、d、eに割り当てる物理レジスタr0、r1、r2、r3、r4を決定するので、命令コード20を削減できる。これによって、命令メモリ12の小型化も期待できる。
図4は、第2の実施の形態の演算処理装置の構成を示す図である。
第1の実施の形態の演算処理装置10aと同じ構成要素については同一符号とし、説明を省略する。
図5は、命令コードの生成処理の概略を示すフローチャートである。
次に、中間表現とされたコードに対して、アーキテクチャに依存しての最適化やアルゴリズム的な最適化を行う。ここで、同一のアルゴリズムで表現できるような共通な演算パターンを抽出する(ステップS2)。
11 PC
12 命令メモリ
13 命令デコーダ
14 レジスタマップテーブル管理部
14a、14b、14c レジスタマップテーブル
15 レジスタファイル
16 ALU
17 レジスタ制御部
18 演算制御部
Claims (6)
- 命令メモリに書き込まれた命令コードをもとに所定の演算処理を行う演算処理装置において、
実行する複数の共通な演算パターンを、複数の論理レジスタを用いて表される1つの共通コードとした命令コードを格納する命令メモリと、
前記論理レジスタへ割り当てる物理レジスタを管理する複数のレジスタ割り当てテーブルを記憶し、前記共通コードの呼び出しの際に指定される前記レジスタ割り当てテーブルを用いて前記論理レジスタへ割り当てる前記物理レジスタを決定するレジスタ割り当て管理部と、
を有することを特徴とする演算処理装置。 - 前記レジスタ割り当てテーブルには、前記論理レジスタに割り当てる前記物理レジスタで演算が行えない場合、前記物理レジスタに記憶する値を一時的に退避させるメモリのアドレスが、前記論理レジスタに割り当てられて管理されていることを特徴とする請求項1記載の演算処理装置。
- 前記命令コードは、高級言語で記述されたプログラムのコンパイル時に、前記プログラムから前記共通な演算パターンを抽出し、前記物理レジスタの代わりに前記論理レジスタを用いた1つの前記共通コードとなるように生成されることを特徴とする請求項1記載の演算処理装置。
- 命令メモリに書き込まれた命令コードをもとに所定の演算処理を行う演算処理方法において、
実行する複数の共通な演算パターンを、複数の論理レジスタを用いて表される1つの共通コードとした命令コードを命令メモリに記憶し、
前記論理レジスタへ割り当てる物理レジスタを管理する複数のレジスタ割り当てテーブルを記憶し、
前記共通コードの呼び出しの際に指定される前記レジスタ割り当てテーブルを用いて前記論理レジスタへ割り当てる前記物理レジスタを決定することを特徴とする演算処理方法。 - 前記レジスタ割り当てテーブルには、前記論理レジスタに割り当てる前記物理レジスタで演算が行えない場合、前記物理レジスタに記憶する値を一時的に退避させるメモリのアドレスが、前記論理レジスタに割り当てられて管理されていることを特徴とする請求項4記載の演算処理方法。
- 前記命令コードは、高級言語で記述されたプログラムのコンパイル時に、前記プログラムから前記共通な演算パターンを抽出し、前記物理レジスタの代わりに前記論理レジスタを用いた1つの前記共通コードとなるように生成されることを特徴とする請求項4記載の演算処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005198562A JP3863544B1 (ja) | 2005-07-07 | 2005-07-07 | 演算処理装置及び演算処理方法 |
US11/358,207 US20070011440A1 (en) | 2005-07-07 | 2006-02-22 | Processor and processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005198562A JP3863544B1 (ja) | 2005-07-07 | 2005-07-07 | 演算処理装置及び演算処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP3863544B1 true JP3863544B1 (ja) | 2006-12-27 |
JP2007018220A JP2007018220A (ja) | 2007-01-25 |
Family
ID=37619568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005198562A Expired - Fee Related JP3863544B1 (ja) | 2005-07-07 | 2005-07-07 | 演算処理装置及び演算処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070011440A1 (ja) |
JP (1) | JP3863544B1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138330A1 (en) * | 2003-12-23 | 2005-06-23 | Maxim Integrated Products, Inc. | MAXQ microcontroller |
US8947438B2 (en) * | 2011-08-01 | 2015-02-03 | Microsoft Corporation | Reducing font instructions |
GB2514618B (en) * | 2013-05-31 | 2020-11-11 | Advanced Risc Mach Ltd | Data processing systems |
JP5986543B2 (ja) | 2013-07-19 | 2016-09-06 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | アーキテクチャレジスタの割り付け方法、割り付け装置及び割り付けプログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6633970B1 (en) * | 1999-12-28 | 2003-10-14 | Intel Corporation | Processor with registers storing committed/speculative data and a RAT state history recovery mechanism with retire pointer |
US7065631B2 (en) * | 2002-04-09 | 2006-06-20 | Sun Microsystems, Inc. | Software controllable register map |
-
2005
- 2005-07-07 JP JP2005198562A patent/JP3863544B1/ja not_active Expired - Fee Related
-
2006
- 2006-02-22 US US11/358,207 patent/US20070011440A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2007018220A (ja) | 2007-01-25 |
US20070011440A1 (en) | 2007-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050005085A1 (en) | Microprocessor using genetic algorithm | |
RU2002129004A (ru) | Запоминание операндов стека в регистре | |
US8214812B2 (en) | Method of interpreting method bytecode and system operated by the same | |
US8266416B2 (en) | Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system | |
JP2007286671A (ja) | ソフトウェア/ハードウェア分割プログラム、および分割方法。 | |
JP3175921B2 (ja) | プログラム設計方法、これに関連する方法、命令デコーダ及びプロセッサ | |
CN114721720B (zh) | 一种指令集扩展方法、装置、电子设备及存储介质 | |
KR20190001183A (ko) | 프로그램 컴파일 방법 | |
JP3863544B1 (ja) | 演算処理装置及び演算処理方法 | |
US20120284701A1 (en) | Efficient conditional flow control compilation | |
US7143272B2 (en) | Using computation histories to make predictions | |
JP5157534B2 (ja) | 動作合成装置、および、プログラム | |
JP5186802B2 (ja) | マイクロプロセッサ | |
JP4870956B2 (ja) | 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部 | |
JP2005215830A (ja) | コンパイラ、コンパイル方法、コンパイルプログラム、及び記録媒体 | |
JP2002014809A (ja) | マイクロプロセッサ並びにアセンブラ、その方法およびそのプログラムを記録した記録媒体 | |
JP4846226B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP2010146181A (ja) | 実行ファイル作成装置 | |
CN113031952A (zh) | 深度学习模型的执行代码的确定方法、装置及存储介质 | |
US7404153B2 (en) | Method for the providing of a design, test and development environment and system for carrying out said method | |
JP2005322110A (ja) | プログラム変換装置及びプロセッサ | |
JP4768214B2 (ja) | コンパイル方法、及びデータ処理装置。 | |
JP2005228047A (ja) | 言語処理装置及び言語処理プログラム | |
JP2008003867A (ja) | マイクロコンピュータ | |
JP2007058256A (ja) | プログラマブルコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20060926 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060928 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091006 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101006 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101006 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111006 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |