JP5209390B2 - 情報処理装置及び命令フェッチ制御方法 - Google Patents
情報処理装置及び命令フェッチ制御方法 Download PDFInfo
- Publication number
- JP5209390B2 JP5209390B2 JP2008173410A JP2008173410A JP5209390B2 JP 5209390 B2 JP5209390 B2 JP 5209390B2 JP 2008173410 A JP2008173410 A JP 2008173410A JP 2008173410 A JP2008173410 A JP 2008173410A JP 5209390 B2 JP5209390 B2 JP 5209390B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- loop
- fetch
- information processing
- 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
- 230000010365 information processing Effects 0.000 title claims description 51
- 238000000034 method Methods 0.000 title claims description 24
- 238000012545 processing Methods 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000012546 transfer 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- 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, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
本実施の形態にかかる情報処理装置1の構成を図1に示す。図1において、命令メモリ10は、命令群を含むプログラムが記憶されたメモリである。命令メモリ10は、例えば、命令キャッシュ、ROM(Read Only Memory)又はこれらの組合せである。
上述した情報処理装置1は、ループ終端アドレスLEAを用いてLNFAを計算する構成について説明した。発明の実施の形態1で述べたLNFA計算回路171は、LNFAを正確に計算することが困難な場合がある。例えば、命令が可変長であるときや、命令メモリ10内の命令格納がワード境界及びライン境界に対して非整列である場合等は、LNFAを計算によって予測的に決定することが困難である。この場合、LNFA計算回路171は、LNFAを十分に余裕のある大きな値とすることで、ループ終端命令の正常なフェッチに対する妨害を避けることができる。しかしながら、いくつかのループ外命令の無駄なフェッチを許容しなければならない。これに対して、本実施の形態にかかる情報処理装置2は、ループ処理の実行結果を観測し、これに基づいてLNFAを決定する。以下では、情報処理装置1と情報処理装置2の差分であるLNFAの決定動作について詳しく説明する。
上述した情報処理装置2は、LNFAの決定が遅れるため、少なくとも1回のループに対しては、命令フェッチ停止制御を実行できない。これを改善するため、上述した情報処理装置1が有するLNFA計算回路171を情報処理装置2に追加してもよい。このような構成によって、例えば、第1ループでは、LNFA計算回路171によって計算されたLNFAを用いて命令フェッチ停止制御を実行できる。また、第2ループ以降では、LNFA決定回路271により決定されたLNFAを用いて命令フェッチ停止制御を実行できる。
10 命令メモリ
11 命令フェッチ部
111 フェッチポインタ
12 命令バッファ
13 命令実行部
131 命令デコード部
132 プログラムカウンタ
133 レジスタファイル
134 演算回路
135 データメモリアクセス回路
14 データメモリ
151 LSAレジスタ
152 LEAレジスタ
153 LCレジスタ
16 ループ処理制御部
161、162 比較器
171 LNFA計算回路
172 LNFAレジスタ
18 命令フェッチ制御部
181 比較器
271 LNFA決定回路
Claims (13)
- 命令メモリに対してフェッチアドレスを供給する命令フェッチ部と、
前記フェッチアドレスで指定されるアドレスから読み出された命令を格納する命令バッファと、
前記命令バッファから供給される命令をデコードして実行する命令実行部と、
前記命令実行部がループ命令をデコードしたことに応じて前記ループ命令に基づくループ処理が実行されている間において、前記フェッチアドレスが前記ループ処理に含まれる終端命令のアドレスより後の第1のアドレス以降である場合に、前記命令フェッチ部による前記命令メモリへの前記フェッチアドレスの供給を停止させる命令フェッチ制御部と、
を備える情報処理装置。 - 前記第1のアドレスは、前記終端命令をフェッチするための前記命令メモリへのアクセスによって前記命令メモリから読み出される、前記終端命令を含むデータブロックの最終アドレス以降である、請求項1に記載の情報処理装置。
- 前記命令メモリと前記情報処理装置との間のバス幅と前記終端命令のアドレスに基づいて、前記第1のアドレスを算出するアドレス計算回路をさらに備える、請求項1又は2に記載の情報処理装置。
- 前記第1のアドレスを決定するアドレス決定回路をさらに備え、
前記アドレス決定回路は、前記ループ命令に基づく少なくとも1回のループが実行された際に前記命令メモリから読み出された前記終端命令を含むデータブロックの最終アドレスを取得し、前記第1のアドレスを前記最終アドレス以降に決定する、請求項1乃至3のいずれか1項に記載の情報処理装置。 - 前記命令フェッチ部は、前記フェッチアドレスが格納されるアドレスレジスタを備え、
前記命令フェッチ制御部は、前記アドレスレジスタの値と前記第1のアドレスとの比較結果に基づいて、前記フェッチアドレスの供給を停止させる、請求項1乃至4のいずれか1項に記載の情報処理装置。 - 前記ループ処理の実行回数に応じてインクリメント又はデクリメントされるループカウンタをさらに備え、
前記命令フェッチ制御部は、前記ループカウンタの値に基づいて、前記フェッチアドレスの供給停止制御の終了を判定する、請求項1乃至5のいずれか1項に記載の情報処理装置。 - 前記命令実行部によってデコードされた命令が前記ループ命令である場合に、前記ループ処理の実行を制御するループ処理制御部をさらに備え、
前記命令フェッチ制御部は、前記ループ処理制御部による前記ループ処理の終了判定に応じて、前記フェッチアドレスの供給停止制御を終了する、請求項1乃至5のいずれか1項に記載の情報処理装置。 - 前記命令フェッチ制御部は、前記ループ処理の最終回に含まれる命令が前記命令実行部にて実行されている間に、前記フェッチアドレスの供給停止制御を終了する、請求項6又は7に記載の情報処理装置。
- 情報処理装置における命令フェッチの制御方法であって、
ループ命令がデコードされたことに応じて前記ループ命令に基づくループ処理が実行されている間において、命令フェッチの対象命令のアドレスであるフェッチアドレスが前記ループ処理に含まれる終端命令のアドレスより後の第1のアドレス以降であるか否かを判定し、
前記フェッチアドレスが前記第1のアドレス以降である場合に、命令メモリへの前記フェッチアドレスの供給を停止させる、
命令フェッチの制御方法。 - 前記第1のアドレスは、前記終端命令をフェッチするための前記命令メモリへのアクセスによって、前記命令メモリから読み出される前記終端命令を含むデータブロックの最終アドレス以降である、請求項9に記載の方法。
- 前記命令メモリと前記情報処理装置との間のバス幅と前記終端命令のアドレスに基づいて、前記第1のアドレスを算出する、請求項9又は10に記載の方法。
- 前記ループ命令に基づく少なくとも1回のループが実行された際に前記命令メモリから読み出された前記終端命令を含むデータブロックの最終アドレスを取得し、前記第1のアドレスを前記最終アドレス以降に決定する、請求項9乃至11のいずれか1項に記載の方法。
- 前記ループ処理の最終回に含まれる命令が実行されている間に、前記フェッチアドレスの供給停止制御を終了する、請求項9乃至12のいずれか1項に記載の方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008173410A JP5209390B2 (ja) | 2008-07-02 | 2008-07-02 | 情報処理装置及び命令フェッチ制御方法 |
US12/482,938 US8307195B2 (en) | 2008-07-02 | 2009-06-11 | Information processing device and method of controlling instruction fetch |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008173410A JP5209390B2 (ja) | 2008-07-02 | 2008-07-02 | 情報処理装置及び命令フェッチ制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010015298A JP2010015298A (ja) | 2010-01-21 |
JP5209390B2 true JP5209390B2 (ja) | 2013-06-12 |
Family
ID=41465249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008173410A Expired - Fee Related JP5209390B2 (ja) | 2008-07-02 | 2008-07-02 | 情報処理装置及び命令フェッチ制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8307195B2 (ja) |
JP (1) | JP5209390B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10346173B2 (en) | 2011-03-07 | 2019-07-09 | Oracle International Corporation | Multi-threaded instruction buffer design |
GB2501299A (en) | 2012-04-19 | 2013-10-23 | Ibm | Analysing computer program instructions to determine if an instruction can be replaced with a trap or break point. |
US20200133672A1 (en) * | 2018-10-26 | 2020-04-30 | Arizona Board Of Regents On Behalf Of Arizona State University | Hybrid and efficient approach to accelerate complicated loops on coarse-grained reconfigurable arrays (cgra) accelerators |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4910664A (en) * | 1987-11-27 | 1990-03-20 | Mitsubishi Denki Kabushiki Kaisha | Data processor with apparatus for reducing loop processing time |
JP2977099B2 (ja) * | 1990-12-20 | 1999-11-10 | 富士電機株式会社 | 演算処理装置 |
WO1998036351A1 (fr) * | 1997-02-17 | 1998-08-20 | Hitachi, Ltd. | Processeur de donnees |
JPH1185515A (ja) * | 1997-09-10 | 1999-03-30 | Ricoh Co Ltd | マイクロプロセッサ |
EP0992916A1 (en) * | 1998-10-06 | 2000-04-12 | Texas Instruments Inc. | Digital signal processor |
JP2000322257A (ja) * | 1999-05-10 | 2000-11-24 | Nec Corp | 条件分岐命令の投機的実行制御方法 |
JP3698123B2 (ja) | 2002-06-25 | 2005-09-21 | セイコーエプソン株式会社 | 情報処理装置及び電子機器 |
JP4610218B2 (ja) | 2004-03-30 | 2011-01-12 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
JP2007207145A (ja) | 2006-02-06 | 2007-08-16 | Nec Electronics Corp | ループ制御回路及びループ制御方法 |
-
2008
- 2008-07-02 JP JP2008173410A patent/JP5209390B2/ja not_active Expired - Fee Related
-
2009
- 2009-06-11 US US12/482,938 patent/US8307195B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010015298A (ja) | 2010-01-21 |
US20100005276A1 (en) | 2010-01-07 |
US8307195B2 (en) | 2012-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7444501B2 (en) | Methods and apparatus for recognizing a subroutine call | |
JP5815596B2 (ja) | プロシージャリターンシーケンスを加速するための方法およびシステム | |
US7454598B2 (en) | Controlling out of order execution pipelines issue tagging | |
WO2015024452A1 (zh) | 一种分支预测方法及相关装置 | |
US20060259742A1 (en) | Controlling out of order execution pipelines using pipeline skew parameters | |
JP2006318051A (ja) | マイクロプロセッサ及びマイクロプロセッサの制御方法 | |
US20230273797A1 (en) | Processor with adaptive pipeline length | |
US7877578B2 (en) | Processing apparatus for storing branch history information in predecode instruction cache | |
JP2000322257A (ja) | 条件分岐命令の投機的実行制御方法 | |
JP5209390B2 (ja) | 情報処理装置及び命令フェッチ制御方法 | |
JP2004145454A (ja) | 情報処理装置及び情報処理方法 | |
JP5902208B2 (ja) | データ処理装置 | |
JP2008071061A (ja) | 情報処理装置 | |
JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
JP5696210B2 (ja) | プロセッサ及びその命令処理方法 | |
JP2021168036A (ja) | 演算処理装置 | |
JP5440083B2 (ja) | シミュレーション装置、方法およびプログラム | |
US20220308888A1 (en) | Method for reducing lost cycles after branch misprediction in a multi-thread microprocessor | |
US20220308887A1 (en) | Mitigation of branch misprediction penalty in a hardware multi-thread microprocessor | |
US11314505B2 (en) | Arithmetic processing device | |
US20230315446A1 (en) | Arithmetic processing apparatus and method for arithmetic processing | |
US20230205535A1 (en) | Optimization of captured loops in a processor for optimizing loop replay performance | |
JP4151497B2 (ja) | パイプライン処理装置 | |
US20100153688A1 (en) | Apparatus and method for data process | |
WO2022212220A1 (en) | Mitigation of branch misprediction penalty in a hardware multi-thread microprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110302 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130130 |
|
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: 20130212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130221 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160301 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5209390 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |