JP2005516301A - 命令実行方法 - Google Patents
命令実行方法 Download PDFInfo
- Publication number
- JP2005516301A JP2005516301A JP2003564729A JP2003564729A JP2005516301A JP 2005516301 A JP2005516301 A JP 2005516301A JP 2003564729 A JP2003564729 A JP 2003564729A JP 2003564729 A JP2003564729 A JP 2003564729A JP 2005516301 A JP2005516301 A JP 2005516301A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- program
- block
- instructions
- execution
- 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
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000008569 process Effects 0.000 claims abstract description 8
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 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/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
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)
Abstract
【解決手段】 この課題は、一定数の順番に実行すべき命令を提供し、そのため命令実行後の戻りアドレスが決まっているブロック命令の形態において、ジャンプ命令が発生した場合に、プログラム制御ユニットが、その時点のプログラムカウンタの状態の保存と、一連の命令の命令数の保存とを更に実行することによって解決される。そうすることによって、この命令ブロックの最後の命令を実行した後に、保存していたプログラムカウンタの状態から、プログラムカウンタの計数プロセスが再び続行される。
Description
"Computer Architecture a quantitative Approach" von John L. Hennessy, David A. Patterson (ISDN 1-55860-329-8)
1 プログラムメモリ
2 第一の命令ブロック
3 ジャンプアドレスメモリ
4 その時点のプログラムカウンタの状態メモリ
5 プログラムカウンタ
6 命令数メモリ
7 遅延スロット(実行フェーズ)
8 ローカルスタックの命令数メモリ
9 ローカルスタックの処理状態メモリ
10 プログラム制御ユニット
11 第二の命令ブロック
12 プログラム制御用のローカルスタック
Claims (5)
- 一方では、プログラム制御ユニットは、このユニット内に実装したプログラムカウンタのプログラムカウンタの状態を用いて、プログラムメモリのその時点で実行すべき命令をアドレス指定し、その際プログラム制御ユニットは、プログラムカウンタの計数モードとステップ幅を設定するとともに、その他に、ジャンプアドレスを保存しており、ジャンプ命令が出現した場合に、このプログラムカウンタが、このジャンプアドレスから、その計数モードを続行し、他方では、このプログラム制御ユニットが、このアドレス指定された命令を読み出して、復号し、そして実行に移す、プロセッサにおける命令実行方法において、
ハードウェアにもとづき、追加のブロック命令が、プロセッサ内に実装されており、その結果プログラム分岐時には、一定数の順番に実行すべき命令が提供されて、そのため命令実行後の戻りアドレスが決まっており、そしてプログラム分岐が発生した場合、プログラム制御ユニット(10)が、サブルーチンに代わって、この実装されたブロック命令を選択的に呼び出し、その際その時点のプログラムカウンタの状態の保存と、一連の命令の命令数の保存とが更に行われることと、この命令ブロックの最後の命令が実行された後に、再び保存されていたプログラムカウンタの状態で、プログラムカウンタ(5)の計数プロセスを続行することを特徴とする方法。 - 当該の追加のブロック命令が、演算装置(0)によって、条件付き命令(述語付き命令)として実行され、その際その命令語に、どのような条件の元で、命令ブロックの保存していた数の命令を実行するのかという情報を含んでいることを特徴とする請求項1に記載の方法。
- 条件付きブロック命令により操作されるプログラム分岐の際に、実行フェーズでの、それに対応する遅延スロット(7)の最後において、条件照会の結果が評価可能となるまで、二つのパスが、暫定的な処理フェーズにおいて実行され、その際この条件を満たさない代替パスを却下した後に、直ちに、他方のパスのその時点で有効となった実行フェーズの進捗した位置から、この命令の実行を続行することを特徴とする請求項1または2に記載の方法。
- 第一の命令ブロック(2)の第一のブロック命令の実行フェーズ時において第二のブロック命令が発生した場合に、ジャンプ命令処理に加えて、この中断された命令ブロック(2)のその時々の処理状態と、第二の命令ブロック(11)からの戻りのために保存すべき最終アドレスとをプログラム制御用のローカルスタック(12)に保存し、この最終アドレスは、ジャンプアドレスと第二のブロック命令の命令数とから求められるものであることを特徴とする請求項1から3までのいずれか一つに記載の方法。
- その時々の命令ブロックに統合されている命令のアドレスが、コンパイラから読み出し可能な特別なアドレス領域に置かれていることを特徴とする請求項1から4までのいずれか一つに記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10204345A DE10204345A1 (de) | 2002-02-01 | 2002-02-01 | Verfahren zur Befehlsbearbeitung |
PCT/DE2003/000126 WO2003065204A1 (de) | 2002-02-01 | 2003-01-17 | Verfahren zur befehlsbearbeitung |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005516301A true JP2005516301A (ja) | 2005-06-02 |
Family
ID=27588306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003564729A Pending JP2005516301A (ja) | 2002-02-01 | 2003-01-17 | 命令実行方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US20050246571A1 (ja) |
EP (1) | EP1470477A1 (ja) |
JP (1) | JP2005516301A (ja) |
DE (1) | DE10204345A1 (ja) |
WO (1) | WO2003065204A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AT500858B8 (de) * | 2004-08-17 | 2007-02-15 | Martin Schoeberl | Instruction cache für echtzeitsysteme |
DE102012218363A1 (de) * | 2012-10-09 | 2014-04-10 | Continental Automotive Gmbh | Verfahren zur Steuerung eines getrennten Ablaufs von verknüpften Programmblöcken und Steuergerät |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0374419A3 (en) * | 1988-12-21 | 1991-04-10 | International Business Machines Corporation | Method and apparatus for efficient loop constructs in hardware and microcode |
JPH07160585A (ja) * | 1993-12-13 | 1995-06-23 | Hitachi Ltd | 低電力データ処理装置 |
US5805863A (en) * | 1995-12-27 | 1998-09-08 | Intel Corporation | Memory pattern analysis tool for use in optimizing computer program code |
US5710913A (en) * | 1995-12-29 | 1998-01-20 | Atmel Corporation | Method and apparatus for executing nested loops in a digital signal processor |
US5898865A (en) * | 1997-06-12 | 1999-04-27 | Advanced Micro Devices, Inc. | Apparatus and method for predicting an end of loop for string instructions |
US20020147969A1 (en) * | 1998-10-21 | 2002-10-10 | Richard A. Lethin | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
US6453407B1 (en) * | 1999-02-10 | 2002-09-17 | Infineon Technologies Ag | Configurable long instruction word architecture and instruction set |
-
2002
- 2002-02-01 DE DE10204345A patent/DE10204345A1/de not_active Ceased
-
2003
- 2003-01-17 EP EP20030706230 patent/EP1470477A1/de not_active Withdrawn
- 2003-01-17 JP JP2003564729A patent/JP2005516301A/ja active Pending
- 2003-01-17 WO PCT/DE2003/000126 patent/WO2003065204A1/de active Application Filing
- 2003-01-17 US US10/502,991 patent/US20050246571A1/en not_active Abandoned
-
2008
- 2008-10-22 US US12/256,236 patent/US20090070557A1/en not_active Abandoned
-
2009
- 2009-11-04 US US12/612,463 patent/US20100049949A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
DE10204345A1 (de) | 2003-08-14 |
US20100049949A1 (en) | 2010-02-25 |
EP1470477A1 (de) | 2004-10-27 |
US20090070557A1 (en) | 2009-03-12 |
WO2003065204A1 (de) | 2003-08-07 |
US20050246571A1 (en) | 2005-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10268480B2 (en) | Energy-focused compiler-assisted branch prediction | |
US20160291982A1 (en) | Parallelized execution of instruction sequences based on pre-monitoring | |
US6687812B1 (en) | Parallel processing apparatus | |
EP1886216B1 (en) | Controlling out of order execution pipelines using skew parameters | |
US7454598B2 (en) | Controlling out of order execution pipelines issue tagging | |
JPH08249195A (ja) | 命令スレッドを処理するための方法およびシステム | |
CN109101276B (zh) | 在cpu中执行指令的方法 | |
JP2000132390A (ja) | プロセッサ及び分岐予測器 | |
US9519479B2 (en) | Techniques for increasing vector processing utilization and efficiency through vector lane predication prediction | |
US20040225870A1 (en) | Method and apparatus for reducing wrong path execution in a speculative multi-threaded processor | |
US20090019431A1 (en) | Optimised compilation method during conditional branching | |
CN111538535A (zh) | 一种cpu指令处理方法、控制器和中央处理单元 | |
CN110569067A (zh) | 用于多线程处理的方法、装置及系统 | |
JP2005516301A (ja) | 命令実行方法 | |
US10437596B2 (en) | Processor with a full instruction set decoder and a partial instruction set decoder | |
EP1499960B1 (en) | Multi-issue processor | |
EP3278212A1 (en) | Parallelized execution of instruction sequences based on premonitoring | |
JP2010257199A (ja) | プロセッサ及びプロセッサにおける命令発行の制御方法 | |
US10296350B2 (en) | Parallelized execution of instruction sequences | |
CN1826583A (zh) | 时间-固定处理器中零开销的分支和循环 | |
JP3512707B2 (ja) | マイクロコンピュータ | |
WO2022051161A1 (en) | Alternate path for branch prediction redirect | |
JP2001356904A (ja) | プロセッサ | |
Kaeli et al. | Data Speculation Yiannakis Sazeides, 1 Pedro Marcuello, 2 James E. Smith, 3 and An-tonio Gonza´ lez2, 4 1University of Cyprus; 2Intel-UPC Barcelona Research Center; 3University of Wisconsin-Madison; 4Universitat Politecnica de | |
Sazeides et al. | Data Speculation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050908 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060609 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060711 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20061011 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20061018 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070717 |