JPH11500551A - 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 - Google Patents
特殊機能を提供する高性能投機的実行プロセッサの構造及び方法Info
- Publication number
- JPH11500551A JPH11500551A JP8525085A JP52508596A JPH11500551A JP H11500551 A JPH11500551 A JP H11500551A JP 8525085 A JP8525085 A JP 8525085A JP 52508596 A JP52508596 A JP 52508596A JP H11500551 A JPH11500551 A JP H11500551A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- execution
- signal
- data
- instructions
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 471
- 238000011156 evaluation Methods 0.000 claims abstract description 126
- 238000007667 floating Methods 0.000 claims abstract description 108
- 238000012545 processing Methods 0.000 claims abstract description 93
- 230000006870 function Effects 0.000 claims abstract description 20
- 230000001965 increasing effect Effects 0.000 claims abstract description 14
- 230000000670 limiting effect Effects 0.000 claims abstract description 4
- 238000003860 storage Methods 0.000 claims description 332
- 230000015654 memory Effects 0.000 claims description 183
- 230000004044 response Effects 0.000 claims description 112
- 238000013507 mapping Methods 0.000 claims description 110
- 238000013500 data storage Methods 0.000 claims description 104
- 238000011084 recovery Methods 0.000 claims description 72
- 230000000694 effects Effects 0.000 claims description 70
- 238000012546 transfer Methods 0.000 claims description 70
- 230000008859 change Effects 0.000 claims description 38
- 239000013598 vector Substances 0.000 claims description 31
- 238000012544 monitoring process Methods 0.000 claims description 28
- 238000004364 calculation method Methods 0.000 claims description 23
- 238000013461 design Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 16
- 230000004913 activation Effects 0.000 claims description 14
- 238000001514 detection method Methods 0.000 claims description 14
- 230000007704 transition Effects 0.000 claims description 13
- 230000004048 modification Effects 0.000 claims description 12
- 238000012986 modification Methods 0.000 claims description 12
- 230000015572 biosynthetic process Effects 0.000 claims description 11
- 238000009826 distribution Methods 0.000 claims description 9
- 238000005259 measurement Methods 0.000 claims description 9
- 230000009471 action Effects 0.000 claims description 8
- 238000009434 installation Methods 0.000 claims description 8
- 238000012913 prioritisation Methods 0.000 claims description 8
- 230000001960 triggered effect Effects 0.000 claims description 8
- 239000013256 coordination polymer Substances 0.000 claims description 7
- 230000001186 cumulative effect Effects 0.000 claims description 7
- 238000013481 data capture Methods 0.000 claims description 7
- 230000003111 delayed effect Effects 0.000 claims description 7
- 230000002829 reductive effect Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000002441 reversible effect Effects 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 238000007726 management method Methods 0.000 claims description 4
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000015556 catabolic process Effects 0.000 claims description 2
- 238000006731 degradation reaction Methods 0.000 claims description 2
- 239000000203 mixture Substances 0.000 claims description 2
- 230000002093 peripheral effect Effects 0.000 claims description 2
- 230000001172 regenerating effect Effects 0.000 claims description 2
- 101150071746 Pbsn gene Proteins 0.000 claims 12
- 230000008929 regeneration Effects 0.000 claims 10
- 238000011069 regeneration method Methods 0.000 claims 10
- 230000005055 memory storage Effects 0.000 claims 8
- 238000010200 validation analysis Methods 0.000 claims 4
- 238000013479 data entry Methods 0.000 claims 3
- 230000008093 supporting effect Effects 0.000 claims 3
- 238000009825 accumulation Methods 0.000 claims 2
- 230000005764 inhibitory process Effects 0.000 claims 2
- 230000000873 masking effect Effects 0.000 claims 2
- 238000009751 slip forming Methods 0.000 claims 2
- 230000001939 inductive effect Effects 0.000 claims 1
- 230000002401 inhibitory effect Effects 0.000 claims 1
- 230000002147 killing effect Effects 0.000 claims 1
- 238000013468 resource allocation Methods 0.000 claims 1
- 230000004043 responsiveness Effects 0.000 claims 1
- 238000010079 rubber tapping Methods 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 30
- 238000010586 diagram Methods 0.000 description 20
- 230000001360 synchronised effect Effects 0.000 description 19
- 108090000623 proteins and genes Proteins 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 12
- 238000012423 maintenance Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000009849 deactivation Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 241000282376 Panthera tigris Species 0.000 description 3
- 240000005523 Peganum harmala Species 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000009740 moulding (composite fabrication) Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000001976 improved effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- IYZMXHQDXZKNCY-UHFFFAOYSA-N 1-n,1-n-diphenyl-4-n,4-n-bis[4-(n-phenylanilino)phenyl]benzene-1,4-diamine Chemical compound C1=CC=CC=C1N(C=1C=CC(=CC=1)N(C=1C=CC(=CC=1)N(C=1C=CC=CC=1)C=1C=CC=CC=1)C=1C=CC(=CC=1)N(C=1C=CC=CC=1)C=1C=CC=CC=1)C1=CC=CC=C1 IYZMXHQDXZKNCY-UHFFFAOYSA-N 0.000 description 1
- JORMZLCKCZMVJM-UHFFFAOYSA-N 4'-(4-fluorophenyl)acetanilide Chemical compound C1=CC(NC(=O)C)=CC=C1C1=CC=C(F)C=C1 JORMZLCKCZMVJM-UHFFFAOYSA-N 0.000 description 1
- 102100022138 Achaete-scute homolog 3 Human genes 0.000 description 1
- 241001279686 Allium moly Species 0.000 description 1
- 101100204264 Arabidopsis thaliana STR4 gene Proteins 0.000 description 1
- 241001527902 Aratus Species 0.000 description 1
- 101100199752 Caenorhabditis elegans rrp-1 gene Proteins 0.000 description 1
- 102100031456 Centriolin Human genes 0.000 description 1
- 108010068561 Fructose-Bisphosphate Aldolase Proteins 0.000 description 1
- 101000901094 Homo sapiens Achaete-scute homolog 3 Proteins 0.000 description 1
- 101000941711 Homo sapiens Centriolin Proteins 0.000 description 1
- 101000980162 Homo sapiens Mediator of RNA polymerase II transcription subunit 18 Proteins 0.000 description 1
- 102100024280 Mediator of RNA polymerase II transcription subunit 18 Human genes 0.000 description 1
- 101000860173 Myxococcus xanthus C-factor Proteins 0.000 description 1
- 101710122057 Phospholemman-like protein Proteins 0.000 description 1
- 241001237728 Precis Species 0.000 description 1
- 108700012364 REG1 Proteins 0.000 description 1
- 241000282806 Rhinoceros Species 0.000 description 1
- 241000555745 Sciuridae Species 0.000 description 1
- 101150076149 TROL gene Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000004378 blood-retinal barrier Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 101150099184 fccA gene Proteins 0.000 description 1
- 235000013882 gravy Nutrition 0.000 description 1
- 230000002779 inactivation Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000024977 response to activity Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- UPPMZCXMQRVMME-UHFFFAOYSA-N valethamate Chemical group CC[N+](C)(CC)CCOC(=O)C(C(C)CC)C1=CC=CC=C1 UPPMZCXMQRVMME-UHFFFAOYSA-N 0.000 description 1
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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- 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/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
-
- 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/3842—Speculative 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
-
- 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/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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
-
- 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
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
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)
- Retry When Errors Occur (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
Claims (1)
- 【特許請求の範囲】 1.データ記憶装置、命令発行ユニット、命令実行ユニット及び命令発行・実 行スケジューラを有する、命令発行ユニットが発行した命令を実行するための中 央処理ユニットの中で、プロセッサ内の投機的命令実行をトラッキングするため の方法において、 − データ記憶装置内のデータ構造を規定する段階; − 発行ユニットによって発行された各命令に対して識別タグを割当てる段階; − 割当てられたタグに基づいて各々の発行済み命令に対して、データ構造内に 記憶された1つの活動ビットを結びつける段階; − 命令が発行された時点で、データ構造内に活動ビットをセットする段階;及 び − 命令がエラー無しで実行を完了した時点でデータ構造内の活動ビットをクリ アする段階、 を含んで成る方法。 2.データ構造には、n個のアドレス可能な場所0,1,2,…,n−2,n −1をもつ円形データ構造が含まれており、ここでアドレス可能な場所n−1は 、論理的にアドレス可能な場所0に隣接しており、データ構造内の一つの活動ビ ットを各々の発行済み命令と結びつける段階が、n個の場所のうちの固有の1つ の場所の中の活動ビットを各々の発行済み命令と結びつけることを含んで成る請 求項1に記載の方法。 3.識別タグが数値的シリアル番号であり各々の発行済み命令に対して1つの 識別タグを割当てる段階には、各々の命令が発行されるにつれてその後発行され た命令に対し単調に増大するシリアル番号(モジュロn)を割当てることが含ま れている請求項2に記載の 方法。 4.− 付随する活動ビットの状態に基づいて各々の発行済み命令の実行状況 をトラッキングする段階; − 活動中の命令に付随する最小のシリアル番号を識別するべく単調にシリアル 番号が増大する順で円形データ構造内の各々の活動ビットを評価し、かくして最 も早期に発行されなお活動中の命令を決定する段階;及び − 取消しが不可能であるように、前記最小の活動中のシリアル番号に付随する シリアル番号よりも小さいシリアル番号をもつ命令を完遂する段階;及び − 識別された最小のシリアル番号に基づいて完遂済み命令に割振られたプロセ ッサ資源を再生する段階; をさらに含んで成る請求項3に記載の方法。 5.再生された資源には、退去済み命令に付随するデータ構造の中の記憶場所 及び命令シリアル番号が含まれる請求項4に記載の方法。 6.投機的out-of-order実行プロセッサの中で、命令状況をトラッキングする ための方法において、 − 各々の発行済み命令について活動状況データを記憶するための複数の記憶場 所をもつプロセッサ内のアドレス可能なデータ構造を提供する段階; − 各々の発行済み命令に対し1つの識別タグを割当てる段階; − 複数の記憶場所のうちの1つと、各々の割当てられたタグを結びつける段階 ; − 特定の命令が発行された時点で活動中であるものとして特定の発行済み命令 を識別するデータを記憶する段階; − 特定の命令の完了を検出する段階;及び − 特定の命令が、実行条件の予め定められたセットのうちのいずれか1つが発 生することなく実行を完了した時点で、特定の命令を識別するデータを記憶する 段階、 を含んで成る方法。 7.予め定められた実行条件セットには、命令実行エラー、例外、ハードウェ ア故障、分岐命令誤予測が含まれ、エラー条件が検出される請求項6に記載の方 法。 8.命令発行スケジューラ及び命令発行ユニットを有する投機的out-of-order プロセッサの中で、発行済み命令の状況をトラッキングするための方法において 、 − 命令活動状況データを記憶するためのn−場所データ構造を提供する段階; − n−場所データ構造内のn個の場所の各々について固有の記憶場所アドレス を規定する段階; − 発行ユニットによって発行された各々の命令を、固有の記憶場所アドレスの うちの1つと結びつける段階; − 命令が活動中であることを表示するべく命令に付随するデータ構造の場所に おいてデータ構造内に活動状況データを記憶する段階; − 各々の発行済み命令について、命令実行完了及びそれに付随するあらゆるエ ラー状況を検出する段階; − 命令がエラー無しで完了した場合、命令が現在非活動中であることを表示す るための付随する記憶場所の中の活動状況データを更新し、命令がエラーを伴っ て完了した場合、命令がなおも活動中であることを表示するため付随する記憶場 所の中にもとの活動状況データを保持する段階;及び − 命令発行スケジューラが、当時非活動中であった以前に発行さ れた命令の状況とは無関係にさらなる命令を実行のためのスケジュールできるよ うな形で、命令発行スケジューラに対し命令活動状況データを伝送する段階、 を含んで成る方法。 9.− プロセッサ内のエラーハンドラユニットに対し命令のうちの任意のも のの実行完了に付随するエラー状況を伝達する段階、及び − 伝達されたエラー状況に応えて命令発行及び実行シーケンスのスケジューリ ングを修正する段階、 を含んで成る請求項8に記載の方法。 10.命令を発行するための命令発行ユニット及びプロセッサ内にデータを記憶 するためのデータ記憶装置をもつ投機的out-of-order実行プロセッサの中で、精 確なプロセッサ状態をトラッキングするための方法において、 − プロセッサのデータ記憶装置内にn個のアドレス可能なデータ記憶場所をも つ第1のデータ構造を規定する段階; − 発行済み命令に対しひきつづき割当てするべく複数の固有識別タグと割振る 段階; − 命令が発行された時点で、各々の命令に対して固有識別タグのうちの1つを 割当てる段階; − プロセッサ内の第1のデータ構造内のアドレス可能な記憶場所の1つと各々 のタグを結びつける段階; − 各々の命令について、各命令に対する命令活動状況の変化に応えて命令に付 随する記憶場所の中に記憶されたデータを更新する段階; − 記憶場所に複数のポインタを維持し、命令活動状況の変化に応えて、ポイン タを移動させる段階; を含んで成る方法。 11.複数のポインタを維持する段階には、 − 複数の発行済み命令の各々について命令状況を決定するべくアドレス可能な 記憶場所の中に記憶されたデータを評価する段階; − 予め定められた実行状況のセットから選択された特定の実行状況を達成した その付随する識別タグを伴う命令を各々識別する複数の異なるプロセッサ条件イ ンジケータを、アドレス可能な記憶場所の中に記憶されたデータに基づいて計算 する段階;及び − 前記プロセッサ内の第3のデータ記憶装置内にポインタとしてプロセッサ条 件インジケータを記憶する段階; を含んで成り、命令活動状況変化に応えてポインタを移動させる段階には、前記 プロセッサ条件インジケータを更新するべく予め定められた時間的間隔で前記評 価、異なるプロセッサ条件インジケータの計算及び記憶の段階を反復する段階が 含まれている、請求項10に記載の方法。 12.予め定められた実行状況セットには最後の発行済み命令、最後の完遂済み 命令及び最後の退去済み命令が含まれる請求項10に記載の方法。 13.予め定められた実行状況セットがさらに、最後の非メモリ参照命令及び最 後の予測された分岐命令を含んでいる請求項10に記載の方法。 14.前記状況データは、命令が発行された時点でセットされ、実行がエラー無 く完了した時点でクリアされる活動中のビットを含んでいる請求項10に記載の方 法。 15.前記複数のポインタには、 − 最後の発行済み命令をポインタする第1のポインタ、及び − 順序的に前に発行された全ての命令がエラー無しで完了してお りそれ自体エラー無しで完了した最後の命令である最後の完遂済み命令をポイン トする第2のポインタ、 が含まれている請求項14に記載の方法。 16.前記複数のポインタにはさらに、 − 割振られたプロセッサ資源が再生された最後の命令である最後の再生済み命 令をポイントする第3のポインタ が含まれている請求項15に記載の方法。 17.前記各々の識別タグが、単調に増加する順序の数値的シリアル番号のうち の1つであり、前記第1のデータ構造の中の前記アドレス可能な記憶場所が前記 シリアル番号によってアドレスされる請求項16に記載の方法。 18.n個のアドレス可能なデータ記憶場所をもつ前記第1のデータ構造が円形 データ構造であり、より高い値のシリアル番号に対する前記ポインタの前進は、 アドレスnからポインタを増分させることでこのポインタがアドレス0に置かれ るような形でモジュロn算術演算で達成される請求項17に記載の方法。 19.命令活動状況変化に応えて前記ポインタを移動させることによりこのポイ ンタを維持する前記段階には、 − 発行された全ての命令について、1つのシリアル番号だけより高い命令シリ アル番号(モジュロn)に向かって順方向に前記第1の発行済み命令ポインタを 前進させる段階、 − 各記憶場所についての活動中のビットの状態のシリアル番号逐次評価及び第 1の予め定められた規則に基づいてより高い命令シリアル番号(モジュロn)に 向かって順方向に前記第2の完遂済み命令ポインタを前進させるものの、前記第 1のポインタを超えて前記第2のポインタを前進させることはしない段階;及び − 各場所についての活動中のビットの状態の通信番号逐次評価及 び第2の予め定められた規則に基づいてより高い命令シリアル番号(モジュロn )に向かって順方向に前記第3の退去済みのポインタを前進させるものの、前記 第2のポインタを超えて前記第3のポインタを前進させることはしない段階、 が含まれている請求項15に記載の方法。 20.前記第1の予め定められた規則には、 − マシンクロックサイクルの各々全ての予め定められた数において、より低い アドレス場所にある全ての活動状態ビットが非活動「0」である最高のデータ記 憶場所アドレスより低いものの、そのマシンサイクルでの前記第1のポインタの アドレスほどは高くない新しいアドレス場所まで順方向に前記第2のポインタを 前進させる段階; が含まれている請求項19に記載の方法。 21.前記第2の予め定められた規則には、マシンクロックサイクルの各々全て の予め定められた数において、より低いアドレス場所にある全ての活動状況ビッ トが非活動「0」である最高のデータ記憶場所アドレスよりも低いものの、その マシンサイクルでの前記第2のポインタのアドレスほどは高くない新しいアドレ ス場所まで順方向に前記第3のポインタを前進させる段階が含まれている請求項 19に記載の方法。 22.前記ポインタが、命令発行、完遂及び退去の結果として移動させられる請 求項19に記載の方法。 23.前記第2及び第3のポインタは、例外、分岐命令該予測及びエラー条件が 検出された命令を通過して移動させられない請求項19に記載の方法。 24.データ記憶手段及び命令発行、ディスパッチ、実行及び退出をスケジュー ルするための手段を有する投機的out-of-order実行プ ロセッサの中で、命令の状況をトラッキングする方法において、 − 前記プロセッサ内で競合して目立つ命令の最大数を規定するn個の固有命令 シリアル番号を割振る段階; − 前記プロセッサ内で前記データ記憶手段内にn個の独立してアドレス可能な 記憶場所をもつデータ構造を規定する段階; − 前記割振られたシリアル番号各々を前記アドレス可能な記憶場所に結びつけ る段階;及び − 前記プロセッサが発行する命令に応えて、前記シリアル番号の1つを識別タ グとして各々の前記発行済み命令に割当て、この命令が実行を完了し退去させら れて暫定的に固有の対応が各々の発行済み命令と前記記憶場所のうち固有のもの の間に打ち立てられるようになるまで前記割当てを維持する段階、 を含んで成る方法。 25.− 前記命令が発行された時点で前記命令に付随する前記データ記憶場所 の中に活動中の状況インジケータを記憶する段階; − 前記命令がエラー無しで完了した時点で前記命令に付随する前記データ記憶 場所内に非活動中の状況インジケータを記憶する段階; − 前記アドレス可能な記憶場所をポイントする複数のマシンポインタを規定す る段階;及び − 命令状況及び予め定められた規則に応えて、前記複数のマシンポインタを移 動させることにより各命令に割振られた命令状況及びマシン資源をトラッキング する段階; をさらに含んで成る請求項24に記載の方法。 26.前記データ記憶場所がマルチビットレジスタ内のビットであり、前記活動 中の状況インジケータが1−ビットであり、前記非活動中の状況インジケータが 0−ビットである請求項25に記載の方法 。 27.前記複数のマシンポインタには、 − 最後の発行済み命令をポイントする第1のポインタ、 − 順序的に早期の全てのin-order発行済み命令がエラー無しで完了していてそ れ自体エラー無しで完了した最後の命令である最後の完遂済み命令をポイントす る第2の最後の完遂済み命令ポインタ;及び − 命令に対してプロセッサが割振った全てのマシン資源及び順序的に早期の全 てのin-order命令が再生された最後の命令をポイントする第3の退去及び再生ポ インタ、 が含まれている請求項25に記載の方法。 28.前記データ構造は、アドレス可能な場所n−1が論理的に場所0に隣接し ているような形でn個のアドレス可能な場所0,1,2,…,n−2,n−1を もつ円形データ構造であり、前記シリアル番号は連続する整数であり、前記シリ アル番号を前記アドレス可能な記憶場所の1つと結びつける段階には、前記円形 レジスタ内の第1のビット位置と最低のシリアル番号を結びつけること及び前記 円形レジスタ内のn番目のビット位置と前記最高のシリアル番号を結びつけるこ とが含まれている、請求項27に記載の方法。 29.前記複数のマシンポインタを移動させることによって各命令に割振られた 命令状況及びマシン資源をトラッキングする前記段階には、 − 第1の命令を発行する前に同じ初期記憶場所アドレスに前記第1、第2及び 第3のポインタを初期設定する段階; − 発行された各々全ての命令について1つのシリアル番号だけ、より高い命令 シリアル番号(モジュロn)に向かって順方向に前記第1の発行命令ポインタを 前進させる段階; − 各記憶場所についての活動中のビットの状態のシリアル番号逐次評価及び第 1の予め定められた規則に基づいてより高い命令シリアル番号(モジュロn)に 向かって順方向に前記第2の完遂済み命令ポインタを前進させるものの、前記第 1のポインタを超えて前記第2のポインタを前進させることはしない段階;及び − 各場所についての活動中のビットの状態の通信番号逐次評価及び第2の予め 定められた規則に基づいてより高い命令シリアル番号(モジュロn)に向かって 順方向に前記第3の退去済みのポインタを前進させるものの、前記第2のポイン タを超えて前記第3のポインタを前進させることはしない段階、 が含まれ、前記ポインタをより高い値のシリアル番号へと前進させる段階は、ア ドレスn−1からポインタを増分させることによってこのポインタがアドレスn に置かれ、このポインタをアドレスnから増分させるとこのポインタがアドレス 0に置かれるような形で、モジュロn算術演算を用いて前記円形データ構造中で 達成される請求項28に記載の方法。 30.前記第1の予め定められた規則には、 − マシンクロックサイクルの各々全ての予め定められた数において、より低い アドレス場所にある全ての活動状況ビットが非活動「0」である最高のデータ記 憶場所アドレスより低いものの、そのマシンサイクルでの前記第1のポインタの アドレスほどは高くない新しいアドレス場所まで順方向に前記第2のポインタを 前記させる段階; が含まれ、ここで前記第2の予め定められた規則には、 − マシンクロックサイクルの各々全ての予め定められた数において、より低い アドレス場所にある全ての活動状況ビットが非活動状態にある最高のデータ記憶 場所アドレスより低いものの、そのマシ ンサイクルでの前記第2のポインタのアドレスほどは高くない新しいアドレス場 所まで順方向に前記第3のポインタを前進させる段階; が含まれている、請求項29に記載の方法。 31.前記新しいアドレス場所は、前記状況活動ビットのブール演算に基づいて 決定される請求項30に記載の方法。 32.前記第1の予め定められた規則には、前記第2のポインタが前記予め定め られた数のマシンサイクルの間に前進され得るアドレス数を、第1のアドレス最 大数に制限する段階がさらに含まれており;前記第2の予め定められた規則には 、前記第3のポインタが前記予め定められた数のマシンサイクルの間に前進され 得るアドレス数を第2のアドレス最大数に制限する段階がさらに含まれており、 ここで前記第2のアドレス最大数は前記第1のアドレス最大数より小さい、請求 項30に記載の方法。 33.前記第2及び第3のポインタは、例外、分岐命令誤予測及びエラー条件が 検出された命令を通過して移動させられない、請求項30に記載の方法。 34.データ記憶手段、少なくとも1つの命令実行ユニット及び命令発行ユニッ トをもつプロセッサの中で、精確な状態を維持するための装置において、 − 各々の発行済み命令について前記実行ユニットから命令実行状況を受領する ための手段; − 前記プロセッサ内の命令の発行、実行、完了及び退去に基づいてマシン資源 利用可能性情報をトラッキングし前記情報を前記命令発行ユニットに伝達するた めの手段;及び − マシン資源がさらなる命令を処理するのに利用可能である場合に命令の発行 を続行し、マシン資源が命令の処理に利用可能でない 場合にはさらなる命令の発行を停止させるべく、前記資源利用可能性情報に対し 応答性をもつ前記命令発行ユニット内の手段、 を含んで成る装置。 35.マシン資源利用可能性情報をトラッキングするための前記手段には、 − 各々の発行済み命令について発行、実行、完了及び退去の状況情報を記憶す るための前記データ記憶手段内に構成されたデータ構造; − 最後の発行済み命令を決定するため、順序的により早期の全ての命令がエラ ー無く完了しておりかつそれ自体エラー無く完了した最後の命令である最後の完 遂済み命令を決定するため、そして割振りされたプロセッサ資源が再生された最 後の命令である最後の再生済み命令を決定するための論理手段 が含まれている請求項34に記載の装置。 36.前記発行ユニットによって発行された予測された命令を識別するための手 段; − 予測を誤った実行済みの予測分岐命令を検出し、前記誤予測分岐からの回復 を開始するための手段 − 命令実行例外をとり扱うための手段、 をさらに含んで成る請求項35に記載の装置。 37.データ記憶装置、命令発行ユニット、命令実行ユニット及び命令発行・実 行スケジューラをもつ中央処理ユニットの中で、このプロセッサ内での投機的命 令実行をトラッキングするための装置において、 − 前記データ記憶装置内に構成されたデータ構造; − 命令発行オペレーションに応答して発行ユニットにより発行された各々の命 令に対し識別タグを割当てるための手段; − 割当てられたタグに基づいて各々の前記発行済み命令と付随するデータ構造 内で記憶された活動ビットを結びつけるための手段; − 命令が発行された時点でデータ構造内の活動ビットをセットするための手段 ; − 命令がエラー無く実行を完了した時点でデータ構造内の活動ビットをクリア するための手段、 を含んで成る装置。 38.内部データ記憶装置、命令復号ユニットをもち外部メモリと連絡している 投機的out-of-order実行プロセッサの中で、精確な例外モデルを維持するロード 及びストア命令を含めたメモリ参照命令をトラッキングし攻撃的にスケジュール するための方法において、 − 前記プロセッサによる実行のための複数の命令を発行する段階; − 前記発行済みの複数の命令のうちのいずれかが投機的に発行された命令であ るかを識別する段階; − 前記内部データ記憶装置内に、前記識別された投機的に発行された命令の各 々に付随する投機的実行インジケータを記憶する段階; − 前記発行済み命令のいずれかが外部メモリを参照するかを決定する段階; − 前記内部データ記憶装置の中に前記決定されたメモリ参照命令に付随するメ モリ参照命令インジケータを記憶する段階; − 前記命令が発行された後前記複数の命令のうちの各々の命令の実行活動状況 を監視する段階; − 各々の発行済み命令について実行中に何らかのエラー条件が発生したか否か を確認し、実行中にエラーを経験した各々の命令のためにエラー状況を表示する エラー条件インジケータを生成する段階 ; − 前記発行済み命令の実行状況をトラッキングする段階;及び − その他の発行されたものの実行されていない命令の実行状況に基づいて、順 序的により早期の発行済みの非メモリ参照命令に先立ち、out-of-order実行のた めに前記決定されたメモリ参照命令のうちの特定の1つの命令をスケジュールす る段階であって、この実行状況には、投機的に発行された命令であるものとして の非メモリ参照命令の識別及び予め定められた実行完了状況を有するものとして の非メモリ参照命令の識別が含まれている、スケジュール段階、 を含んで成る方法。 39.前記実行状況をトラッキングする段階には; − 命令シリアル番号により各命令を識別する段階; − 最後の発行済み命令のシリアル番号に対応するポインタ値を前記レジスタの うちの第1のレジスタの中に記憶する段階; − 最後の非活動化済み命令のシリアル番号に対応するポインタ値を前記レジス タのうちの第2のレジスタの中に記憶する段階であって、ここで非活動化済み命 令は実行を完了したもののその結果が状態ライトバックされていない1つの命令 であるような、段階; − 最後の完遂済み命令のシリアル番号に対応するポインタ値を前記レジスタの うちの第3のレジスタ内に記憶する段階; − 最後の退去済み命令のシリアル番号に対応するポインタ値を(前記レジスタ のうちの第1のレジスタ内の記憶のシリアル番号に対応するポインタ値を)前記 レジスタのうちの第4のレジスタ内に記憶する段階; − 最後の予測された分岐命令のシリアル番号に対応するポインタ値を前記レジ スタのうちの第5のレジスタ内に記憶する段階; − 最後の非メモリ参照命令のシリアル番号に対応するポインタ値 を前記レジスタのうちの第6のレジスタ内に記憶する段階;及び − 前記第1、第2、第3、第4、第5及び第6のポインタ値を評価することに より前記プロセッサの状況を確認する段階、 が含まれる請求項38に記載の方法。 40.内部のレジスタと外部のメモリを含むデータ記憶手段、命令発行ユニット 及び命令実行ユニットを有する投機的out-of-order実行プロセッサの中で、この プロセッサ内の精確なアーキテクチャ状態を維持しながら、順序的にout-of-ord erで低待ち時間命令に先立って、アーキテクチャ状態を修正できる長待ち時間命 令を攻撃的にスケジュールするための方法において、 − エラー無く実行を完了し取り消す必要が全く無い順序的に最後の連続的命令 を識別する段階; − 実行の予測が誤った場合実行が取消されなくてはならない可能性のある、順 序的に最も早期の投機的発行済みで未解決の予測された制御転送命令を識別する 段階; − エラー無しで実行を完了し取消す必要の全く無い前記識別された順序的に最 後の連続的命令と、実行の予測を誤った場合取消さなければならない可能性のあ る前記識別された順序的に最も早期の投機的発行済みで未解決の予測された制御 転送命令の間に順序づけされたあらゆる長待ち時間命令を識別するための段階で あって、この長待ち時間命令は、長待ち時間命令であるものとして予め指定され た予め定められた命令セットと、発行済み命令を比較することによって識別され る、識別段階; − 中間実行のため前記識別された長待ち時間命令をスケジュールする段階; を含んで成り、 かくして、誤予測をした可能性のある投機的発行済みの介入する 制御転送命令及びそうでなければ実行例外を生成した可能性のある命令とは無関 係に、実行のためスケジュールされ得る長待ち時間命令のみを実行するためにス ケジュールすることによって、長待ち時間命令が攻撃的に発行され精確な状態が 維持されることになる方法。 41.エラー無しで実行を完了し取消しの必要が全く無い順序的に最後の連続的 命令を識別する段階に先立って、 − nのアドレス可能場所0,1,2,…,n−2,n−1を有し、アドレス可 能場所n−1がこのデータ記憶手段内で論理的にアドレス可能な場所0と隣接し ている、円形モジュロnデータ構造を規定する段階; − 各命令が発行されるにつれて、各々のひきつづき発行された命令に対して単 調に増大する(モジュロn)数値的シリアル番号識別タグを割当てる段階; − 前記データ構造内の活動状況インジケータを前記タグに基づいて各々の発行 済み命令と結びつける段階; − 全て命令について、その命令が発行された時点ですでに発行されていたこと を表示するため、各々の発行済み命令を用いて前記データ構造内の前記n個の場 所のうちの固有の1つの場所で前記活動状況インジケータの最初の要素をセット する段階; − 長待ち時間命令について、前記命令がその発行時点で長待ち時間命令である ことを表示するべく、前記活動状況インジケータの第2の要素をセットする段階 ; − 予測された結果に基づいて投機的に発行された命令について、その命令がそ の発行時点で投機的に発行された命令であることを表示するべく、前記活動状況 インジケータの1要素をセットする段階; − 前記命令がエラー無く完了した時点で、それがすでにエラー無く完了してい たことを表示するべく、前記データ構造内の前記活動状況インジケータをクリア する段階; − エラー無しで完了していた前記順序的に最後の連続的命令、前記順序的に最 も早期の投機的未解決予測命令及び、前記識別された最後の連続的エラー無し完 了済み命令と前記識別された早期未解決予測命令の間に順序づけされた前記長待 ち時間命令を含む、発行済みの各々の命令についての実行状況を決定するべく、 発行済みの複数の命令についての前記活動状況インジケータを評価することによ り、発行済み命令の実行状況をトラッキングする段階、 をさらに含んで成る請求項40に記載の方法。 42.エラー無しで完了し取消しの必要が全く無く順序的に最後の連続的命令を 識別するための前記段階には、前記データ構造内の1つのエントリをポイントし 、最後の非活動化済み命令を表示する第2のポインタを設定する段階が含まれて おり、前記最後の非活動化済み命令は、順序的に先行する全てのin-order命令も エラー無しで完了している。エラー無しで完了した順序的に最後のin-order命令 であり、前記第2のポインタにより識別された命令よりも早い順序のin-order命 令が、分岐誤予測及び例外とは無関係に実行可能であり; − その実行を取消さなければならない可能性のある順序的に最も早期の投機的 で未解決の予測された制御転送命令を識別する前記段階には、前記データ構造内 の1つのエントリをポイントし、順序的に最も早期のin-order未解決分岐命令を 表示する第1のポインタ(PBSN)を設定する段階が含まれており、前記第1のポ インタによって識別された命令より順序的に早期のin-order命令が分岐誤予測と は無関係に実行可能であり; − 前記識別された最後の連続的エラー無し完了命令と前記識別された最早期未 解決予測制御転送命令の間に順序づけされたあらゆる長待ち時間命令を識別する 前記段階が、前記第2のポインタ(CSN)と前記第3のポインタ(NMCSN)の間の あらゆる長待ち時間命令を実行のためにスケジュールすべく利用可能なものとし て識別するが、前記第2のポインタ(NMCSN)と前記第1のポインタ(PBSN)の 間のあらゆる非長待ち時間命令を実行のためにスケジュールすべく利用可能なも のとしては識別しない段階を含んでいる、請求項41に記載の方法。 43.前記識別段階は、各々のマシンサイクル毎に前記状況インジケータ要素を 論理的に比較するブール論理比較演算を実行し、前記より高い数値的シリアル番 号識別タグに対応する記憶場所に向かって前記ポインタの各々を前進させること によって実行される請求項42に記載の方法。 44.前記長待ち時間命令が、前記外部メモリを参照する命令を含んでいる請求 項40に記載の方法。 45.前記外部メモリ参照命令には、ロード命令とストア命令が含まれている請 求項44に記載の方法。 46.内部レジスタ及び外部メモリを有する投機的out-of-order実行プロセッサ の中で、プロセッサ内の精確な状態を危険にさらすことなく前記内部レジスタの みを参照する命令に先立ちアーキテクチャ状態を修正できるメモリ参照命令をス ケジュールするための方法において、 − 複数の命令についての状況情報を記憶するため、前記プロセッサ内のレジス タの中にデータ構造を設定する段階; − 前記データ構造の中の1つのエントリをポイントし最早期未解決分岐命令を 表示する第1の予測された分岐命令シリアル番号ポイ ンタ(PBSN)を設定する段階であって、この第1のポインタによって識別された 命令よりも順序的に早期のin-order命令は、分岐誤予測とは無関係に実行可能で ある、段階; − 前記データ構造内の1つのエントリをポイントし、最後の非活動化された命 令を表示する第2のポインタ(CSN)を設定する段階であって、この最後の非活 動化された命令は、順序的に前のin-order命令が全てエラー無しで完了しており それ自体エラー無しで完了した順序的に最後のin-order命令であり、前記第2の ポインタにより識別された命令より順序的に早期のin-order命令は、分岐誤予測 及び例外とは無関係に実行可能である、段階; − 前記データ構造内の1つのエントリをポイントし、メモリ参照命令以外の最 後に完遂された命令を表示する第3の非メモリ完遂シリアル番号ポインタ(NMCS N)を設定し、前記第2のポインタ(CSN)を通過しさらに前記メモリ参照命令の うちの任意のものをあたかもそれらも同様に完遂されたかのごとくに通過して前 進する段階; − 前記第2のポインタ(CSN)と前記第3のポインタ(NMCSN)の間のあらゆる メモリ参照命令を実行のためにスケジュールすべく利用可能なものとして識別す るものの、前記第2のポインタ(NMCSN)と前記第1のポインタ(PBSN)の間の 任意のメモリ参照命令を実行のためスケジュールするのに利用可能なものとして 識別しない段階; を含んで成り、かくして 長待ち時間メモリ参照命令は短待ち時間レジスタ参照命令から結合解除され、 − 分岐誤予測及び実行例外とは無関係に実行のためにスケジュールされ得るメ モリ参照命令のみをスケジュールすることによって精確な状態が維持される、 スケジューリング方法。 47.前記データ構造内の1つのエントリをポイントしメモリを参照する命令以 外の最後の完遂済み命令を表示する前記第3のポインタ(NMCSN)を設定し、前 記第2のポインタ(DSN)を通過し前記メモリを参照指示する命令をあたかもそ れらが同様に完遂されたかのごとく通過して前進し、さらに、活動中の又は非活 動化された状況インジケータのいずれを有するかとは無関係に非障害発生命令で あるものと予め決定されたあらゆる命令を通過して前進する段階をさらに含んで 成る請求項46に記載の方法。 48.内部のレジスタと外部のメモリ、命令発行ユニット及び命令実行ユニット を有する投機的out-of-order実行プロセッサの中で、このプロセッサ内の精確な 状態を危険にさらすことなくレジスタのみを参照する命令に先立つアーキテクチ ャ状態を修正することのできるメモリ参照命令を攻撃的にスケジュールするため の方法において; − メモリ参照命令及び非メモリ参照命令上に第1の状況情報を記憶するための 複数のアドレス可能なデータ記憶要素を含む第1のデータ構造を規定する段階、 − メモリ参照命令上に第2の状況情報を記憶するための複数のアドレス可能な データ記憶要素を含む第2のデータ構造を規定する段階; − 各々前記アドレス可能なデータ記憶要素の1つをポイントする、発行済みシ リアル番号ポインタ(ISN)、完遂済みシリアル番号ポインタ(CSN)、最早期未 解決予測制御転送命令シリアル番号ポインタ(PBSN)、非メモリ参照命令完遂済 みシリアル番号ポインタ(NMCSN)を含む複数のポインタを規定する段階; − 前記アドレス可能なデータ記憶要素のうちの予め定められたものを非固有的 にポイントするよう前記複数のポインタの各々を初期 設定する段階; − 前記命令発行ユニットから少なくとも1つの命令を発行する段階; − 前記発行済み命令の各々がメモリを参照するか否かを決定する段階; − 前記命令発行ユニットからの命令発行信号に応えて、メモリ参照命令及び非 メモリ参照命令について活動中の命令を表示するように前記第1のデータ構造内 の前記第1のインジケータをセットする段階、 − 非メモリ参照命令についてのみ活動中の命令を表示するよう前記第2のデー タ構造内の前記第2のインジケータをセットし、前記命令発行ユニットからの命 令発行信号に応えてメモリ参照命令についてこの命令が非活動中であることを表 示するべく前記第2のインジケータをクリアする段階、 − (i)命令が完了したこと及びこの完了にエラーが伴うか伴わないかを表示 する前記実行ユニットからの命令完了信号、及び(ii)予測された制御転送が適 正に予測されたか否かを表わす予測評価状況ユニットからの制御転送命令のため の予測評価状況信号、に応えて前記命令の現行状況を活動中又は非活動中として 表示するように発行済みの各々の命令について前記第1及び第2のデータ構造内 の前記第1及び第2のインジケータを各々変更することによって前記インジケー タの状況を更新する段階; − 最後の発行済み命令番号をポイントするべく、現行マシンサイクル中に発行 された命令の数を表示する命令発行ユニットからの信号に応えて、前記ISN ポイ ンタを前進させる段階; − 前記CSN ポインタから出発して増大するシリアル番号順で前記第1のインジ ケータを順序評価し、非活動中の命令インジケータを もつ最後のシリアル番号を決定するべく前記ISN ポインタに向かって評価し、非 活動中の命令インジケータをもつ前記最後のシリアル番号をポイントするべく前 記CSN ポインタを前進させる段階; − 予測評価状況ユニットからの予測評価状況信号に応えて最も早期の未解決分 岐命令の場所をポイントするべく前記PBSNポインタを前進させる段階; − 最後の完遂済み命令の場所をポイントするべく前記NMCSN ポインタを前進さ せ、さらに、前記第2のデータ構造内の前記第2のインジケータの評価に基づい て、前記PBSNポインタを上へあらゆる未完遂で活動中のメモリ命令を通過してCS N の前に前進させる段階; − 予測制御転送命令の誤予測又は実行例外の発生の時点で精確な状態を回復す ることができるように、(i)制御転送命令及び(ii)投機的に修正できる制御 レジスタ値を修正するという副作用をもつと考えられる命令である各々の命令を 実行する直前にマシン状態情報を記憶する段階;及び − 投機的に修正できない制御レジスタ値を修正するという副作用をもち得る命 令を実行する直前に全ての保留命令を完遂し退去させるべくマシンを同期化する 段階; を含んで成り、かくして非メモリ参照命令に比べより多くのマシンサイクルを実 行することを必要とするメモリ参照命令は、命令実行状況が許せば直ちに、ただ し精確な状態を危険にさらすことなく、実行のためにスケジュールできるように なる方法。 49.前記複数の規定されたポインタにはさらに、前記アドレス可能なデータ記 憶要素のうちの1つをポイントする資源再生ポインタ(RRP)が含まれており、 さらに − 割振られた全てのマシン資源がマシンによって再生された、完遂されている 最後の命令をポイントするべく、命令完遂及び再生ユ ニット(ICRU)からの信号に応えて前記in-order RRPポインタを前進させる段階 を含んで成る、請求項48に記載の方法。 50.前記メモリ参照命令が、ロード命令、ストア命令及び原子命令を含むグル ープの中から選択される、請求項48に記載の方法。 51.前記ISN ポインタを前進させる前記段階が、以前のマシンサイクルの最後 の発行済み命令シリアル番号のシリアル番号に基づいており、前記信号は、現マ シンサイクル中に発行された命令の数を識別する請求項48に記載の方法。 52.前記CSN ポインタを前進させる前記段階は、各マシンサイクル上のシリア ル番号の予め定められた数だけ、前記CSN ポインタを前進させることに制限され ている請求項48に記載の方法。 53.前記制御転送命令には分岐命令が含まれている請求項48に記載の方法。 54.内部データ記憶装置をもち外部メモリと連絡している投機的out-of-order 実行プロセッサの中で、精確な例外モデルを維持するロード及びストア命令を含 めたメモリ参照命令をトラッキングし攻撃的にスケジュールするための方法にお いて、 − 前記プロセッサ内での実行のため複数の命令を発行する段階; − 前記発行された命令のうちのどれに投機的実行が関与するかを識別し、各々 の前記投機的命令に付随するインジケータを記憶する段階; − 前記発行済み命令のうちのどれが外部メモリを参照するかを識別し、各々の 前記メモリ参照命令に付随するインジケータを記憶する段階; − 各命令について完了状況を決定するべくエラー無しの実行完了を監視するこ とを含め、前記命令の発行後に前記複数の命令の実行状況を監視する段階; − 前記発行された命令の実行状況をトラッキングする段階;及び − 投機的命令であるものとしての識別を含むその他の命令の状況及び前記複数 の命令の前記実行完了状況に基づいて、非メモリ参照命令に先立って実行するた めに前記発行済みのメモリ参照命令をスケジュールする段階、 を含んで成る方法。 55.内部のレジスタと外部のメモリを含むデータ記憶手段、命令発行ユニット 及び命令実行ユニットを有する投機的out-of-order実行プロセッサの中で、この プロセッサ内の精確なアーキテクチャ状態を維持しながら、順序的にout-of-ord erで低待ち時間命令に先立って、アーキテクチャ状態を修正できる長待ち時間命 令を攻撃的にスケジュールするための装置において、 − エラー無く実行を完了し取消す必要が全く無い順序的に最後の連続的命令を 識別するための手段; − 実行の予測が誤った場合実行が取消されなくてはならない可能性のある順序 的に最も早期の投機的発行済みで未解決の予測された制御転送命令を識別するた めの手段; − エラー無しで実行を完了し取消す必要の全く無い前記識別された順序的に最 後の連続的命令と、実行の予測を誤った場合取消さなければならない可能性のあ る前記識別された順序的に早期の投機的発行済みで未解決の予測された制御転送 命令の間に順序づけされたあらゆる長待ち時間命令を識別するための手段であっ て、この長待ち時間命令は、長待ち時間命令であるものとして予め指定された予 め定められた命令セットと、発行済み命令を比較することによって識別される、 識別用手段; − 中間実行のための前記識別された長待ち時間命令をスケジュールするための 手段; を含んで成り、 かくして、誤予測をした可能性のある投機的に発行済みの介入する制御転送命 令及びそうでなければ実行例外を生成した可能性のある命令とは無関係に、実行 のためスケジュールされ得る長待ち時間命令のみを実行のためにスケジュールす ることによって、長待ち時間命令が攻撃的に発行され精確な状態が維持されるこ とになる、装置。 56.− nのアドレス可能場所0,1,2,…n−1,n−1を有し、アドレ ス可能場所n−1がこのデータ記憶手段内で論理的にアドレス可能な場所0と隣 接している、円形モジュロnデータ構造; − 各命令が発行されるにつれて、各々の発行された命令に対して単調に増大す る(モジュロn)数値的シリアル番号識別タグを割当てるための手段; − 前記データ構造内の活動状況インジケータを前記タグに基づいて各々の発行 済み命令と結びつけるための手段; − その命令が発行された時点ですでに発行されていたことを表示するため、前 記発行済み命令の各々全てについて前記データ構造内の前記n個の場所のうちの 固有の1つの場所で前記活動状況インジケータの最初の要素をセットするための 手段; − 長待ち時間命令として識別された命令についてのみ、前記命令がその発行時 点で長待ち時間命令であることを表示するべく、前記活動状況インジケータの第 2の要素をセットするための手段; − 予測された結果に基づいて投機的に発行された命令についてのみ、その命令 がその発行時点で投機的に発行された命令であることを表示するべく、前記活動 状況インジケータの1要素をセットするための手段; − 前記命令がエラー無く完了した時点で、それがすでにエラー無く完了してい たことを表示するべく、前記データ構造内の前記活動状況インジケータをクリア するための手段; − エラー無しで完了していた前記順序的に最後の連続的命令、前記順序的に最 も早期の投機的未解決予測命令及び、前記識別された最後の連続的エラー無し完 了済み命令と前記識別された早期未解決予測命令の間に順序づけされた前記長待 ち時間命令を含む、発行済みの各々の命令についての実行状況を決定するべく、 発行済みの複数の命令についての前記活動状況インジケータを評価することによ り、発行済み命令の実行状況をトラッキングするための手段、 をさらに含んで成る請求項55に記載の装置。 57.エラー無しで完了した順序的に最後の連続的命令を識別するための前記段 階には、前記データ構造内の1つのエントリをポイントし、最後の非活動化済み 命令を表示する第2のポインタを設定するための手段が含まれており、前記最後 の非活動化済み命令は、順序的に先行する全てのin-order命令もエラー無しで完 了している、エラー無しで完了した順序的に最後のin-order命令であり、前記第 2のポインタにより識別された命令よりも早い順序のin-order命令が、分岐誤予 測及び例外とは無関係に実行可能であり; − その実行を取消さなければならない可能性のある順序的に最も早期の投機的 で未解決予測制御転送命令を識別するための前記手段には、前記データ構造内の 1つのエントリをポイントし、順序的に最も早期のin-order未解決分岐命令を表 示する第1のポインタ(PBSN)を設定するための手段が含まれており、前記第1 のポインタによって識別された命令より順序的に早期のin-order命令が分岐誤予 測とは無関係に実行可能であり; − 前記識別された最後の連続的エラー無し完了命令と前記識別さ れた最早期未解決予測制御転送命令の間に順序づけされたあらゆる長待ち時間命 令を識別するための前記段階が、前記第2のポインタ(CSN)と前記第3のポイ ンタ(NMCSN)の間のあらゆる長待ち時間命令を実行のためにスケジュールすべ く利用可能なものとして識別するが、前記第2のポインタ(NMCSN)と前記第1 のポインタ(PBSN)の間のあらゆる非長待ち時間命令を実行のためにスケジュー ルすべく利用可能なものとしては識別しないための手段を含んでいる、請求項56 に記載の装置。 58.前記識別用手段には、各マシンサイクル毎に前記状況インジケータ要素を 論理的に比較するためのブール論理回路、及び前記ポインタの各々を、前記より 高い数値的シリアル番号識別タグに対応する場所まで前進させるための手段が含 まれている請求項57に記載の装置。 59.前記長待ち時間命令には、前記外部メモリを参照する命令を含まれており 、ロード命令及びストア命令を含むあらゆる長待ち時間命令を識別するための前 記手段が、命令を復号し外部メモリ参照命令を識別するための命令デコーダを含 んでいる請求項58に記載の装置。 60.複数の内部プロセッサレジスタ及び外部メモリ、命令発行ユニット及び命 令実行ユニットを有する投機的なout-of-order実行プロセッサの中で、このプロ セッサ内の精確な状態を危険にさらすことなくレジスタのみを参照する命令に先 立つアーキテクチャ状態を修正することのできるメモリ参照命令を攻撃的にスケ ジュールするための装置において; − メモリ参照命令及び非メモリ参照命令上に第1の状況情報を記憶するための 複数のアドレス可能なデータ記憶要素を含む第1のデータ構造; − メモリ参照命令上に第2の状況情報を記憶するための複数のアドレス可能な データ記憶要素を含む第2のデータ構造; − 各々前記アドレス可能なデータ記憶要素の1つをポイントする、発行済みシ リアル番号ポインタ(ISN)、完遂済みシリアル番号ポインタ(CSN)、最早期未 解決予測制御転送命令シリアル番号ポインタ(PBSN)、非メモリ参照命令完遂済 みシリアル番号ポインタ(NMCSN)を含む前記内部プロセッサレジスタ内に構成 され複数のポインタ値を記憶する複数のポインタ記憶レジスタ; − 前記アドレス可能なデータ記憶要素のうちの予め定められたものをポイント するよう前記複数のポインタの各々を初期設定する手段; − 前記命令発行ユニットから少なくとも1つの命令を発行する手段; − 前記発行済み命令の各々が前記外部メモリを参照するか否かを決定する手段 ; − 前記命令発行ユニットからの命令発行信号に応えて、メモリ参照命令及び非 メモリ参照命令について活動中の命令を表示するように前記第1のデータ構造内 の前記第1のインジケータをセットする手段; − 非メモリ参照命令についてのみ活動中の命令を表示するよう前記第2のデー タ構造内の前記第2のインジケータをセットし、前記命令発行ユニットからの命 令発行信号に応えてメモリ参照命令についてこの命令が非活動中であることを表 示するべく前記第2のインジケータをクリアする手段; − (i)命令が完了したこと及びこの完了にエラーが伴うか伴わないかを表示 する前記実行ユニットからの命令完了信号、及び(ii)予測された制御転送が適 正に予測されたか否かを表わす予測評価 状況ユニットからの制御転送命令のための予測評価状況信号、に応えて前記命令 の現行状況を活動中又は非活動中として表示するように発行済みの各々の命令に ついて前記第1及び第2のデータ構造内の前記第1及び第2のインジケータを各 々変更することによって前記インジケータの状況を更新する手段; − 最後の発行済み命令番号をポイントするべく、現行マシンサイクル中に発行 された命令の数を表示する命令発行ユニットからの信号に応えて、前記ISN ポイ ンタを前進させる手段; − 前記CSN ポインタから出発して増大するシリアル番号順で前記第1のインジ ケータを順序評価し、非活動中の命令インジケータをもつ最後のシリアル番号を 決定するべく前記ISN ポインタに向かって評価し、非活動中の命令インジケータ をもつ前記最後のシリアル番号をポイントするべく前記CSN ポインタを前進させ る手段 − 予測評価状況ユニットからの予測評価状況信号に応えて最も早期の未解決分 岐命令の場所をポイントするべく前記PBSNポインタを前進させる手段; − 最後の完遂済み命令の場所をポイントするべく前記NMCSN ポインタを前進さ せ、さらに、前記第2のデータ構造内の前記第2のインジケータの評価に基づい て、前記PBSNポインタを上へあらゆる未完遂で活動中のメモリ命令を通過してCS Nの前に前進させる手段; − 予測制御転送命令の誤予測又は実行例外の発生の時点で精確な状態を回復す ることができるように、(i)制御転送命令及び(ii)投機的に修正できる制御 レジスタ値を修正するという副作用をもつと考えられる命令である各々の命令を 実行する直前にマシン状態情報を記憶する手段;及び − 投機的に修正できない制御レジスタ値を修正するという副作用をもち得る命 令を実行する直前に全ての保留命令を完遂し退去させ るべく前記プロセッサを同期化する手段; を含んで成り、かくして非メモリ参照命令に比べより多くのマシンサイクルを実 行することを必要とするメモリ参照命令は、命令実行状況が許せば直ちに、ただ し精確な状態を危険にさらすことなく、実行のためにスケジュールできるように なる装置。 61.前記複数の規定されたポインタにはさらに、前記アドレス可能なデータ記 憶要素のうちの1つをポイントする資源再生ポインタ(RRP)が含まれており、 さらに − 割振られた全てのマシン資源がマシンによって再生された完遂されている最 後の命令をポイントするべく、命令完遂及び再生ユニット(ICRU)からの信号に 応えて前記in-order RRPポインタを前進させる手段を含んで成る、請求項60に記 載の方法。 62.中央処理ユニット(CPU)についての精確なアーキテクチャ状態を維持し ながらチェックポイント実行済み状態を低減させるべくこのCPU 内の命令をチェ ックポイント実行するための方法において、 − 前記CPU 内で実行されたときにアーキテクチャ状態を修正する可能性のある 命令を、その発行及び実行前に予め識別する段階; − 予め定められた選択基準に基づいて実行する前にアーキテクチャ状態をチェ ックポイント実行せずに特別な実行モードにて実行するための、前記識別された 命令のうちの特定の命令を予め選択する段階; − 実行に先立ち前記予め選択された特定の命令以外の前記識別された命令につ いてアーキテクチャ状態をチェックポイント実行する段階;及び − 前記特殊モードでの前記命令のうちの特定の命令の実行を含め、前記識別さ れた命令を実行する段階、 を含んで成る方法。 63.前記予め定められた基準には、修正可能な状態のタイプ及び実行中に命令 によって修正され得る修正可能状態の量、が含まれる、請求項62に記載の方法。 64.前記予め定められた基準には、予め定められた名目命令ストリーム内で命 令が発生する頻度がさらに含まれている、請求項63に記載の方法。 65.前記予め定められた基準には、さらに、前記CPU 内の特定のタイプの処理 タスクについて前記選択基準を最適化できるように前記予め定められた名目命令 ストリームの組成が含まれている請求項64に記載の方法。 66.前記予め定められた基準には、 − 前記予め識別された命令のうちの各々の特定の命令によって修正可能な状態 ; − 前記予め識別された命令のうちの各々の特定の命令の修正可能な状態につい ての記憶必要条件;及び、 − いくつかの予め定められた名目処理タスクについて前記予め識別された命令 のうちの各々の特定の命令が発生する推定上の統計的頻度; が含まれている請求項62に記載の方法。 67.前記予備選択段階には、 − 前記特別な実行モードでの実行のために、予め定められた低い推定上の統計 的頻度で発行され比較的多いチェックポイント記憶量を必要とするような予め識 別された命令を選ぶ段階;及び − 正規の処理モードで、予め定められた高い頻度で発行され比較的少ないチェ ックポイント記憶量を必要とするような予め識別された命令を選ぶ段階; が含まれている、請求項66に記載の方法。 68.前記特別な実行モードには、前記選択された命令の実行を開始する前に前 記CPU を同期化する段階が含まれている請求項67に記載の方法。 69.前記CPU 同期化段階には、 − 実行前に命令ストリーム内でマシンの同期化を必要とする同期化命令として 、1つの命令を識別する段階; − 実行がエラー無く完了し実行結果が状態ライトバックされてしまうように全 ての保留中の発行済み命令が完遂され退去されるまで、前記同期化命令の実行を 遅延させる段階; − マシンの同期化を必要とする命令を逐次的かつin-orderで実行する段階; − 状態ライトバックが行なわれる前に、前記同期化命令の各々の実行から生じ る例外条件を識別する段階; − 前記同期化命令の実行中に生じ得る前記例外条件のいずれかをとり扱う段階 ;及び − 実行結果をマシン状態へライトバックする段階; が含まれており、かくして前記同期化命令をチェックポイント実行することなく 精確な状態が維持される、請求項68に記載の方法。 70.1つの命令を同期化命令として識別する前記段階には、その命令を発行前 に同期化命令として識別することが含まれており、前記同期化命令の実行を遅延 させる前記段階にはさらに、全ての保留中の発行済み命令が完遂され退去されて しまうまで前記同期化命令の発行を遅延させることが含まれている請求項68に記 載の方法。 71.前記識別された命令には、予測されたプログラム制御転送命令、プログラ ムフローを修正できる命令、マシン状態を修正できる命令及び、制御レジスタ値 を修正する副作用をもち得る命令、が含 まれる請求項68に記載の方法。 72.前記プログラムフローを修正しうる命令にはBPr,FBcc,FBPcc,Bcc,BPc c,CALL,JMPL,TCC,RETURN,DONE,RETRY、及びそれらの組合せから成るグル ープの中から選択されたSPARC−V9命令セット内で実施された命令が含まれてい る請求項71に記載の方法。 73.前記マシン状態を修正できる命令には、制御レジスタ内で制御レジスタに 書込む命令、及びレジスタウインドウ制御命令が含まれている請求項71に記載の 方法。 74.前記マシン状態を修正できる命令には、制御レジスタ内で制御レジスタを 読取る命令が含まれている請求項71に記載の方法。 75.前記識別された命令にはさらに、往々にして発行トラップを結果としても たらす命令が含まれている請求項71に記載の方法。 76.前記識別された命令にはさらに、トラップが投機的にとられた場合に復帰 を行なうことができるように、トラップハンドラルーチン内の第1命令が含まれ ている請求項71に記載の方法。 77.前記CPU についての精確なアーキテクチャ状態を維持しながらチェックポ イント実行済み状態を低減させるべく命令をチェックポイント実行するための方 法において、 − 前記CPU 内で実行されたときにアーキテクチャ状態を修正する可能性のある 命令を、その発行及び実行前に予め識別する段階; − 予め定められた選択基準に基づいて実行する前にアーキテクチャ状態をチェ ックポイント実行せずにマシン同期化モードにて実行するための、前記識別され た命令のうちの特定の命令を予め選択する段階; を含み、 前記予め定められた基準には、 − 前記予め識別された命令のうちの各々の特定の命令によって修 正可能である状態; − 前記予め識別された命令のうちの各々の特定の命令の修正可能な状態につい ての記憶必要条件; − いくつかの予め識別された名目処理タスクについて前記予め識別された命令 のうちの各々の特定の命令が発生する推定上の統計的頻度、 が含まれており、 前記予備選択段階には、 − 前記特別な実行モードでの実行のために、予め定められた低い推定上の統計 的頻度で発行され比較的多いチェックポイント記憶量を必要とするような予め識 別された命令を選ぶ段階;及び、 − 正規の処理モードで、予め定められた高い頻度で発行され比較的少ないチェ ックポイント記憶量を必要とするような予め識別された命令を選ぶ段階; が含まれており、 さらには、 − 実行に先立ち前記予め定め選択された特定の命令以外の前記識別された命令 についてアーキテクチャ状態をチェックポイント実行する段階;及び − 前記マシン同期化モードでの前記命令のうちの特定の命令の実行を含め、前 記識別された命令を、それらが前記命令ストリーム内に発生するにつれて実行す る段階; を含んで成り、 前記マシン同期化モードにはさらに、 − 発行前に命令ストリーム内でマシンの同期化を必要とする同期化命令として 、1の命令を識別する段階; − 前記同期化命令以外の命令を発行し、保留中の発行済み命令が エラー無しで実行を完了しこの実行からの結果が状態ライトバックされてしまう まで前記同期化命令の実行を遅延させる段階; − マシン同期化を必要とする各々の命令を逐次的かつin-orderで発行する段階 ; − 状態ライトバックが行なわれる前に、前記同期化命令の各々の実行から生じ る例外条件を識別する段階; − 前記同期化命令の実行中に生じ得る前記例外条件のいずれかをとり扱う段階 ;及び − 実行結果を状態ライトバックする段階; が含まれており、かくして前記同期化命令をチェックポイント実行することなく 精確な状態が維持される、方法。 78.命令状況をトラッキングし、この命令状況に基づいてチェックポイントを 割振り及び割振り解除するための方法において、 − 前記CPU のメモリ内のデータ記憶領域内に1つのデータ構造を設定する段階 ; − 前記データ構造内で、複数のチェックポイント状況フィールドを有し単一の チェックポイントに各々対応している複数のチェックポイント割振りレジスタを 規定する段階; − 命令シリアル番号SNをもつ命令のために次の逐次的に利用可能なチェックポ イント割振りレジスタnを割振り、前記複数の状況フィールド内で前記命令のた めのチェックポイント状況情報を記憶する段階、 − 完遂済みの命令シリアル番号ポインタ(CSN)が、チェックポイントn及び 次の記憶されたチェックポイントn+1に付随する命令シリアル番号SNを通過し たか否かを決定するため、予め定められた時間的間隔で、完遂済みシリアル番号 ポインタ(CSN)を監視する段階; − CPU のバックアップ信号に応答して、前記CPU に対して、前記チェックポイ ント割振りレジスタ内に記憶された情報を伝達する段階;及び − 完遂済み命令シリアル番号ポインタ(CSN)がチェックポイントn及び次の チェックポイントn+1に付随する命令シリアル番号を通過したという決定に応 答して、以前に割振られたチェックポイントを割振り解除する段階、 を含んで成る方法。 79.CPU が、チェックポイントが形成されたチェックポイントシリアル番号を 通過してバックアップしたことを表わすCPU バックアップ信号の受理に応答して 、以前に割振られたチェックポイントを割振り解除する段階をさらに含んで成る 請求項78に記載の方法。 80.前記データ構造内で、複数のチェックポイント状況フィールドをもち単一 のチェックポイントに各々対応する複数のチェックポイント割振りレジスタを構 成する前記段階には、 − 各々の前記チェックポイントレジスタで、そのチェックポイントが割振りさ れたか及びその特定のチェックポイント内に記憶された情報が有効なチェックポ イント情報かを指示する第1の有効性状況フィールドを規定する段階; − 各々の前記チェックポイントレジスタで、完遂済みシリアル番号命令ポイン タ(CSN)がレジスタ内に記憶された特定のチェックポイントの命令シリアル番 号(SN)を通過したか否かを表示することによってチェックポイントが通過され たか否かを指示する第2のチェックポイント通過済み状況フィールドを規定する 段階; − 各々の前記チェックポイントレジスタで、完遂済み命令シリアル番号ポイン タ(CSN)に付随する条件を指示する第3の状況フィールドを規定する段階; − 各々の前記チェックポイントレジスタで、完遂済み命令シリアル番号ポイン タ(CSN)がチェックポイントのシリアル番号よりも大きいか否かを指示し、完 遂済みシリアル番号がこのチェックポイントを通過した時点を見極めるために用 いられる、第4の比較的大きい状況フィールドを規定する段階; − 各々の前記チェックポイントレジスタで、チェックポイント実行されたシリ アル番号の後の次のシリアル番号(NSN)を指示する第5の次シリアル番号状況 フィールドを規定する段階、 を含んで成る請求項78に記載の方法。 81.前記第1の状況フィールドが1ビットのフィールドであり、前記第2の状 況フィールドが1ビットのフィールドであり、前記第3の状況フィールドが3ビ ットのフィールドであり、前記第4の状況フィールドが1ビットのフィールドで あり、前記第5の状況フィールドが6ビットのフィールドである、請求項80に記 載の方法。 82.命令シリアル番号SNをもつ命令についてチェックポイントiを割振る前記 段階には、 − 次の利用可能なチェックポイント番号iを識別し、この番号iに基づいて前 記チェックポイント割振りレジスタiの中へ指標づけする段階; − 前記チェックポイントiが有効であり退去されていないことを表示するべく 前記レジスタの前記第1のフィールドに「1」を書込む段階; − 前記チェックポイントiを通過していないことを表示するため前記第2のフ ィールド内に「0」を書込む段階; − 円形の活動中の命令状況リングのまわりからの前記完遂済み命令シリアル番 号ポインタ(CSN)の遷移を検出することができるように、前記チェックポイン トiが割振られた時点で前記完遂済み命令 シリアル番号ポインタ(CSN)の場所を表示するべく前記第3のフィールド内に 複数の状態のうちの1つを書込む段階; − チェックポイントのシリアル番号と完遂済みシリアル番号ポインタ(CSN) を比較し、完遂済みシリアル番号の方が大きい場合、完遂済みシリアル番号がこ のチェックポイントを通過したことを表示するため、前記第4の状況フィールド 内にインジケータを書込む段階;及び − 第5の状況フィールド内に、そのチェックポイントが形成された命令シリア ル番号に関係する情報を書込む段階、 が含まれている請求項80に記載の方法。 83.前記命令シリアル番号に関係する情報は、そのチェックポイントが形成さ れたシリアル番号である、請求項80に記載の方法。 84.前記命令シリアル番号に関係する情報は、そのチェックポイントが形成さ れたシリアル番号に1シリアル番号を増分した番号である請求項8に記載の方法 。 85.完遂済み命令シリアル番号ポインタ(CSN)がチェックポイントn及びチ ェックポイントn+1に付随する命令シリアル番号を通過したという決定に応答 して以前に割振られたチェックポイントを割振り解除する前記段階にはさらに、 − チェックポイントレジスタ内に記録されたシリアル番号と完遂済みシリアル 番号ポインタの間の差を計算することによって完遂済みシリアル番号通過済み信 号を生成する段階;及び − 前記生成された完遂済みシリアル番号通過済み信号に応答して前記第1の状 況フィールドをクリアする段階、 が含まれている請求項82に記載の方法。 86.− CPU バックアップ表示信号; − CPU が、チェックポイントが形成された前記バックアップ表示 信号の中で識別されたチェックポイントシリアル番号を通過してバックアップし たか否かを決定する段階;及び − 前記決定が、バックアップがそのチェックポイントを通過して行なわれたこ とを識別した場合、このチェックポイントを割振り解除する段階; をさらに含んで成る請求項78に記載の方法。 87.− バックアップチェックポイントでの命令のシリアル番号を識別するCP U バックアップ表示信号を検出する段階; − チェックポイントが形成された前記バックアップ表示信号内で識別されたチ ェックポイントシリアル番号を通過してCPU がバックアップしたか否かを決定す る段階;及び − 前記生成された完遂済みシリアル番号通過済み信号に応えて、前記第1の状 況フィールドをクリアすることによってバックアップがチェックポイントを通過 してであることを前記決定が識別した場合に、前記チェックポイントを割振り解 除する段階、 をさらに含んで成り請求項85に記載の方法。 88.− 最後に発行された命令シリアル番号を表示する発行済みシリアル番号 (ISN)信号を受理する段階; − 最後に完遂された命令シリアル番号を表示する完遂済み命令シリアル番号( CSN)信号を受理する段階; − 完遂済みシリアル番号ポインタ(CSN)とバックアップチェックポイントの 間のシリアル番号を有する全ての発行済み命令をキルする段階; − バックアップチェックポイントに付随する次のシリアル番号を記憶する前記 第5の状況フィールドに基づいて前記バックアップ中に、発行済み命令シリアル 番号ポインタ(ISN)を更新する段階; − 未終了の浮動小数点例外又はデータ区切り点例外が検出された 場合にバックアップチェックポイントのためにチェックポイントレジスタ内に記 憶された次のシリアル番号値に基づいて発行済みシリアル番号ポインタ(ISN) を更新する段階; をさらに含んで成る請求項85に記載の方法。 89.チェックポイントのシリアル番号と完遂済みシリアル番号ポインタ(CSN )を比較する前記段階が、複数の前記チェックポイントレジスタについて同時に 行なわれる請求項82に記載の方法。 90.前記チェックポイントは、最後のチェックポイントが形成されてから予め 定められた数の事象が発生したこと及び命令タイプ属性とは無関係に付加的なチ ェックポイントが形成されるべきであることを表示するタイムアウトチェックポ イント割振り信号に応答して前記チェックポイントが割振られる請求項78に記載 の方法。 91.前記命令の実行に先立って前記CPU を同期化することによってCPU 内に精 確な状態を維持するための方法において、 − 実行前に命令ストリーム内でマシンの同期化を必要とする同期化命令として 、実行中にマシン状態を修正し得る1つの命令を識別する段階; − 前記保留中の命令の実行がエラー無く完了し実行結果がCPU 状態ライトバッ クされてしまうように全ての保留中の発行済み命令が完遂され退去されるまで、 前記同期化命令の実行を遅延させる段階; − マシンの同期化を必要とする命令を逐次的かつin-orderで実行する段階; − 状態ライトバックが行なわれる前に、前記同期化命令の各々の実行から生じ る例外条件を識別する段階; − 前記同期化命令の実行中に生じ得る前記例外条件のいずれかをとり扱う段階 ;及び − 実行結果をマシン状態へライトバックする段階; を含んで成り、かくして前記同期化命令によって修正可能な状態を予め記憶する ことなく前記同期化命令について精確な状態が維持されることになる、方法。 92.1つの命令を同期化命令として識別する前記段階には、その命令を発行前 に同期化命令として識別することが含まれており、前記同期化命令の実行を遅延 させる前記段階にはさらに、全ての保留中の発行済み命令が完遂され退去されて しまうまで前記同期化命令の発行を遅延させることが含まれている請求項91に記 載の方法。 93.CPU のための最適なチェックポイントサイズを設計する方法において、 − 前記CPU により支持されている命令セット内の各命令により修正可能なマシ ン状態を決定する段階; − いくつかの代表的名目処理タスクについて各々の特定の命令が発生する統計 的頻度を決定する段階; − 各命令について状態記憶必要条件を決定する段階; − チェックポイント情報のための最大記憶量を選ぶ段階; − 稀にしか発行されず、より頻繁に発生する命令に比べ比較的大きい量のチェ ックポイント記憶を必要とするような命令を選択するため最適化を行なう段階; − 前記割振りされた最大チェックポイントスペース内でチェックポイント実行 できるような命令のみをチェックポイント実行する段階; を含んで成る方法。 94.中央処理ユニット(CPU)内の精確な状態を維持しながらチェックポイン ト実行されたデータの量を減少させるべく1つの命令をチェックポイント実行す るための方法において、 − 前記中央処理ユニット内のデータ記憶装置内に複数のマップレジスタ要素を もつレジスタリネームマップデータ構造を規定する段階; − 1つの命令の実行に先立ちその命令が参照した各々の論理ソース及び/又は 論理宛先レジスタのために前記CPU 内の利用可能な物理レジスタを割振る段階; − 固有の論理レジスタタグにより、各々の前記論理ソースレジスタを識別する 段階; − 物理レジスタタグにより各々の割振り可能な物理レジスタを識別する段階; − 前記固有の論理レジスタタグのうちの1つと前記複数のマップレジスタ要素 のうちの各々1つを結びつける段階;及び − 各々のマップレジスタ要素が現在その論理レジスタタグに対してマッピング されている物理レジスタタグを記憶するような形で、この物理レジスタが割振ら れた固有の論理レジスタタグに付随するマップレジスタ要素の中に各々の前記割 振られた物理レジスタで識別された物理レジスタタグを記憶する段階; を含んで成り、 かくして、前記命令の発行の結果として前記レジスタのために変化した全ての 状態は記憶され、CPU バックアップが必要とされる場合に回復のため利用可能な 状態になる、方法。 95.− 前記CPU 内の利用可能な未割振り物理レジスタについて1つずつの物 理レジスタを各々記憶している複数のフリーリスト要素をもつフリー物理レジス タフリーリストデータ構造を規定する段階; − 論理レジスタを参照する命令がディスパッチされそうであるという命令発行 ユニットからの表示に応えて、ソース又は宛先レジス タとして論理レジスタを置換するのに使用するため命令発行ユニットに対しフリ ー物理レジスタタグを伝達する段階;及び − 前記命令発行ユニットに対する前記フリー物理レジスタタグの伝達時点で、 前記フリー物理レジスタフリーリストデータ構造から前記物理レジスタタグを除 去する段階 をさらに含んで成る、請求項94に記載の方法。 96.− データを記憶するための論理レジスタタグフィールド、旧物理レジス タタグフィールド及び再生要素妥当性フィールドを各々有する複数の再生要素を もつ資源再生ユニットを提供する段階; − 前記再生要素を固有の発行済み命令シリアル番号と結びつける段階;及び − 特定の論理レジスタを参照する命令シリアル番号SNの割当てられた命令の復 号に応えて: ・前記複数のリネームマップレジスタ要素のうちのどの特定の1つの要素が、 該当する場所、以前に復号され発行された命令について前記復号された命令の中 で参照された前記特定の論理レジスタと結びつけられたかを決定する段階、 ・前記特定の論理レジスタに付随する特定の物理レジスタタグを決定するため の前記特定のリネームマップレジスタ要素を読取る段階、 ・前記古い物理レジスタタグフィールドの中に前記特定の物理レジスタタグを 記憶し、前記命令シリアル番号SNに付随する再生要素の前記論理レジスタタグフ ィールドの中に前記特定の論理レジスタタグを記録して、旧物理レジスタ番号が 以前にマッピングした論理レジスタタグと共に記憶されるようにする段階; ・特定の再生要素が有効なデータセットを含有することを表示するため、前記 命令シリアル番号SNに付随する再生要素妥当性フィー ルド内に1つのインジケータを書込む段階; ・命令シリアル番号SNをもつ前記命令を実行する上で使用するため前記フリー リストから新しいフリー物理レジスタを識別し、前記フリー物理レジスタに対応 する新しいフリー物理レジスタタグを中に書込む段階; ・前記命令シリアル番号SNをもつ命令により参照された前記特定の論理レジス タについて新しい物理レジスタを割振る段階;及び ・各々のリネームマップレジスタ要素が、現在特定の論理レジスタにマッピン グされている物理レジスタタグを記憶するような形で前記論理レジスタを参照す る命令シリアル番号SNに応えて前記新しい物理レジスタが割振られた論理レジス タタグに付随するリネームマップレジスタ要素内に前記新たに割振られた物理レ ジスタに対応する前記新しい物理レジスタタグを記憶する段階; をさらに含んで成り、 かくして、前記資源再生ユニットは、必要とあらばより早期の論理−物理マッ ピングを再構築する元となる逐次履歴レジャーとして役立つことができる、請求 項95に記載の方法。 97.前記レジスタリネームマップデータ構造を規定する段階には、前記CPU 内 の複数のレジスタタイプの各々について別々のレジスタリネームマップデータ構 造を規定する段階が含まれており;前記フリー物理レジスタを規定する段階には 、前記CPU 内の複数のレジスタタイプの各々について別々のフリーリストデータ 構造を規定する段階が含まれており;前記資源再生ユニットを提供する段階には 、前記複数の別々のレジスタリネームデータ構造及び別々のフリーリストデータ 構造のうちの任意のものによりマッピングされた論理及び物理レジスタを記憶す る単一の資源再生ユニットを提供する段階が含まれている請求項96に記載の方法 。 98.− バックステップすべき命令の数の表示を含むCPU バックステップ開始 信号を受理する段階; − 最後の発行済み命令シリアル番号を表示する、発行済み命令シリアル番号( ISN)を受理する段階; − 前記受理された発行済み命令シリアル番号及び各再生要素と固有の発行済み 命令シリアル番号の前記結びつきに基づいて特定の再生要素を識別する段階; − 各々のリネームマップレジスタ要素が前記命令ISN の発行に先立ち特定の論 理レジスタにマッピングされた物理レジスタタグを記憶するように、前記発行済 み命令シリアル番号(ISN)に付随する前記資源再生要素の中に記憶されたデー タに基づいて命令シリアル番号ISN のための前記識別された特定のレジスタリネ ームマップ要素の中に記憶された論理レジスタから物理レジスタへのマッピング を回復する段階、及び − 発行済み命令シリアル番号を減分し、前記特定の再生要素の識別段階及び、 バックステップされるべき各命令のための識別された要素内に記憶された論理レ ジスタタグ−物理レジスタマッピングの前記回復段階をくり返す段階、 をさらに含んで成る、請求項96に記載の方法。 99.前記各々の命令シリアル番号において、論理レジスタから論理レジスタへ のマッピングを回復する段階には、 − 命令シリアル番号により前記資源再生データ構造へと逆方向に指標付けし、 前記命令シリアル番号に付随する前記旧物理レジスタタグフィールド内に記憶さ れた前記物理レジスタタグ及び前記論理レジスタタグフィールド内に記憶された 論理レジスタタグを読取る段階、 − 前記論理レジスタタグフィールドから読みとられた前記論理レ ジスタタグに付随するレジスタリネームマップ要素を識別する段階; − 中に記憶された物理レジスタタグを決定するべく前記論理レジスタタグに対 応するリネームマップ要素を読取る段階; − 前記物理レジスタフリーリスト内へ前記リネームマップ要素内に記憶された 前記決定された物理レジスタタグを書込む段階; − 前記資源再生ユニットの前記論理レジスタタグフィールドの中に記憶された 前記論理レジスタタグに対応するレジスタリネームマップ要素の中へ前記旧物理 レジスタタグフィールド内に記憶された前記物理レジスタタグを書込む段階、及 び − 再生要素が有効なデータセットを含まないことを表示するべく前記命令シリ アル番号のための前記再生要素妥当性フィールド内へインジケータを書込む段階 ; が含まれており、 かくして前記物理レジスタフリーリストユニット要素、前記レジスタリネーム マップ要素及び前記レジスタ再生ユニット要素が、前記特定の命令の発行の直前 に有していた状態まで回復されることになる請求項98に記載の方法。 100.− 資源退去ポインタ(RRP)として記憶された命令シリアル番号を決定 する段階; − 前記資源退去ポインタ(RRP)が特定の記憶された再生要素に付随する命令 シリアル番号SN以上となるよう前進させられた時点で命令シリアル番号SNのため の特別な論理レジスタに以前に割振られた物理レジスタの割振りを解放する段階 、 をさらに含んで成る請求項99に記載の方法。 101.前記物理レジスタの割振りを解放する段階には、 − 前記物理レジスタフリーリストの中へ、前記命令シリアル番号 に対応する前記特別なリネームマップ要素の中に記憶された前記物理レジスタタ グを書込む段階;及び − 再生要素が有効なデータセットを含まないことを表示するべく前記命令シリ アル番号のための前記再生要素妥当性フィールド内へ1つのインジケータを書込 む段階、 が含まれている、請求項100 に記載の方法。 102.前記命令の実行に先立ち物理レジスタを割振る前記段階には、実行ユニ ットに前記命令発行する前に前記物理レジスタを割振る段階が含まれている請求 項94に記載の方法。 103.前記複数のレジスタタイプが、整数レジスタタイプ、浮動小数点レジス タタイプ、条件コードレジスタタイプ、Y−レジスタタイプ、トラップスタック レジスタタイプから成るグループの中から選択される請求項97に記載の方法。 104.物理レジスタの数が論理レジスタの数よりも多く、各々の前記論理レジ スタを複数の物理レジスタ上へとマッピングすることができる請求項94に記載の 方法。 105.命令により参照される各々の論理レジスタは、任意の論理宛先レジスタ が物理レジスタへとマッピングされる前に物理レジスタマッピングされる、請求 項94に記載の方法。 106.構築されたレジスタ場所を物理レジスタ場所へマッピングすることによ り命令が発行された時点で使用されたレジスタについてのレジスタリネームを実 施するCPU において、精確な状態を維持しながらチェックポイント実行されたデ ータの量を減少させるための方法において、 − 前記発行済み命令により使用される論理ソースレジスタを識別する段階; − 利用可能な物理レジスタ上へと各々の識別された論理ソースレ ジスタをマッピングし、資源リネームデータ構造内に前記論理−物理マッピング を記憶する段階; − 前記発行済み命令によって使用される論理宛先レジスタを識別する段階; − 利用可能な物理レジスタ上に各々の識別された論理宛先レジスタをマッピン グし、資源リネームデータ構造内に前記論理−物理マッピングを記憶する段階; − フリー物理レジスタのリストを記憶するために前記CPU 内に第1のデータ記 憶装置を提供する段階; − 命令シリアル番号SN、命令シリアル番号SNをもつ前記命令により参照された 論理レジスタのための論理レジスタタグ及び前記論理レジスタにマッピングされ た物理レジスタのための物理レジスタタグを記憶するため、前記CPU 内に第2の データ記憶装置を提供する段階; − 命令実行に先立つ命令発行の間、命令実行の前に発行済み命令の影響を受け る前記リネームソース及び/又は宛先レジスタの状態に関するマシン状態データ を記憶することによって前記リネームされた論理及び物理レジスタをチェックポ イント実行する段階; を含んで成る方法。 107.− CPU バックアップ開始信号条件の受理に応答して、前記リネームマ ップを、バックアップを結果としてもたらした命令の実行の直前にそれが有して いた状態まで回復させることにより、より早期のマシン状態を回復する段階 をさらに含んで成る請求項106 に記載の方法。 108.命令を発行するための命令発行ユニット、及び命令を実行するための実 行ユニットを有する、in-orderで発行された命令のout-of-order投機的実行を実 施する中央処理ユニットの中で、 − 前記CPU 内で実行された時点でアーキテクチャ状態を修正する可能性があり 、実行に先立ちプロセッサの状態をセーブするべくチェックポイント実行される べき第1の命令タイプセットのアイデンティティを予備記憶するための記憶手段 ; − 前記CPU 内で実行された時点でアーキテクチャ状態を修正する可能性があり 、実行に先立つアーキテクチャ状態をチェックポイント実行することなく特別な 実行モードで実行されるべき第2の命令タイプセットのアイデンティティを予備 記憶するための記憶手段; − 前記第1及び第2の記憶された命令タイプと発行された命令タイプを比較し 、発行された命令が、正規実行モードでは実行前にチェックポイント実行される べきであり、特殊なプロセッサモードではチェックポイント実行無しに実行され るべきであることを表示する出力信号を生成するための比較器; − 実行に先立ち前記第1のタイプの命令についてアーキテクチャ状態をチェッ クポイント実行するべくチェックポイント形成を開始するため、前記比較器出力 信号に応答するチェックポイント手段;及び − 前記第2のタイプの命令を前記特殊な実行モードで実行することを含めた、 前記命令を実行するための命令実行手段、 を含む装置において、前記特殊な実行モードには、前記第2のタイプの命令を実 行する前に前記プロセッサを同期化するための手段が含まれている装置。 109.命令を発行するための命令発行ユニット、データを記憶するためのメモ リ及び命令を実行するための実行ユニットを有する、in-orderで発行された命令 のout-of-order投機的実行を実施する中央処理ユニットの中で、 − 前記CPU のメモリ内のデータ記憶領域内のデータ構造; − 前記データ構造内で各々対応する単一のチェックポイントに割振られ、複数 のチェックポイント状況フィールドを有する複数のチェックポイント割振りレジ スタ; − 命令シリアル番号SNをもつ命令のために次の逐次的に利用可能なチェックポ イント割振りレジスタnを割振るための手段; − 前記複数の状況フィールド内で前記命令のためのチェックポイント状況情報 を記憶するための手段; − 完遂済み命令シリアル番号ポインタ(CSN)がチェックポイントn及び次の 記憶されたチェックポイントn+1に付随する命令シリアル番号SNを通過したか 否かを決定するため予め定められた時間的間隔で完遂済みシリアル番号ポインタ (CSN)を監視するための手段; − CPU バックアップ信号に応答して前記チェックポイント割振りレジスタ内に 記憶された情報を前記CPU に伝達するための手段;及び − 完遂済み命令シリアル番号ポインタ(CSN)がチェックポイントn及び次の チェックポイントn+1に付随する命令シリアル番号を通過したという決定に応 答して、以前に割振られたチェックポイントを割振り解除するための手段; を含んで成り、 かくして命令状況がトラッキングされ、命令状況に基づいてチェックポイント が割振りされ割振り解除されることになる、装置。 110.命令を発行するための命令発行ユニット、データを記憶するためのメモ リ及び命令を実行するための実行ユニットを有する、in-orderで発行された命令 のout-of-order投機的実行を実施する中央処理ユニットの中で、選択された命令 の実行に先立ち前記CPU を同期化するための装置において、 − 実行前に命令ストリーム内でマシンの同期化を必要とする同期化命令として 、実行中にマシン状態を修正する可能性のある1つの命令を識別するための手段 ; − 前記保留中の命令の実行がエラー無く完了し実行結果がCPU 状態にライトバ ックされてしまうように全ての保留中の発行済み命令が完遂され退去されるまで 、前記同期化命令の実行を遅延させるための手段; − マシンの同期化を必要とする命令を逐次的かつin-orderで実行するための、 手段; − 状態ライトバックが行なわれる前に、前記同期化命令の各々の実行から生じ る例外条件を識別するための手段; − 前記同期化命令の実行中に生じ得る前記例外条件のいずれかをとり扱うため の例外ハンドラー;及び − 実行結果をマシン状態へライトバックするための手段、 を含んで成り、 かくして、前記同期化命令により修正可能な状態を予備記憶することなく、前 記同期化命令のために精確な状態が維持されることになる、装置。 111.命令を発行するための命令発行ユニット、データを記憶するためのメモ リ及び命令を実行するための実行ユニットを有する、in-orderで発行された命令 のout-of-order投機的実行を実施する中央処理ユニットの中で、このユニットの 中の精確な状態を維持しながらチェックポイント実行されたデータの量を減少さ せるべく1つの命令をチェックポイント実行するための装置において、 − 前記中央処理ユニット内のデータ記憶装置内に複数のマップレジスタ要素を もつレジスタリネームマップデータ構造; − 1つの命令の実行に先立ちその命令が参照した各々の論理ソー ス及び/又は論理宛先レジスタのために前記CPU 内の利用可能な物理レジスタを 割振るための手段 − 固有の論理レジスタタグにより、各々の前記論理ソースレジスタを識別する ための手段; − 物理レジスタタグにより各々の割振り可能な物理レジスタを識別するための 手段; − 前記固有の論理レジスタタグのうちの1つと前記複数のマップレジスタ要素 のうちの各々1つを結びつけるための手段;及び − 各々のマップレジスタ要素が現在その論理レジスタタグに対しマッピングさ れている物理レジスタタグを記憶するような形で、この物理レジスタが割振られ た固有の論理レジスタタグに付随するマップレジスタ要素の中に各々の前記割振 られた物理レジスタで識別された物理レジスタタグを記憶するための手段 を含んで成り、 かくして、前記命令の発行の結果として前記レジスタのために変化した全ての 状態は記憶され、CPU バックアップが必要とされる場合に回復のため利用可能な 状態になる、装置。 112.命令発行手段、命令実行手段及びデータを記憶するためのデータ記憶装 置を有する中央処理ユニット(CPU)の中で、前記実行手段の中で発生する例外 のために例外取扱いを束縛するための方法において、 − タイムアウト条件を規定する特定された事象の発生回数について予め定めら れた閾値を設定し、この閾値を前記CPU 内の第1のデータ記憶装置の中に記憶す る段階、 − 前記CPU 内のカウンタ内で前記特定された事象の発生を計数し、前記発生回 数を前記CPU 内の第2のデータ記憶装置内に1つの計数として記憶する段階; − 前記計数を前記閾値と比較する段階; − 前記計数が前記タイムアウト条件以上である場合にタイムアウトチェックポ イントを形成する段階、 を含んで成る方法。 113.− 第1の命令の実行に先立って前記計数を初期値に初期設定する段階 ;及び − 前記タイムアウトチェックポイントが形成された後を含め、チェックポイン トの形成後に前記計数を前記初期状態にリセットする段階、 をさらに含んで成る、請求項112 に記載の方法。 114.前記特定された事象は、前記中央処理ユニットによるあらゆる命令の発 行であり、かくして前記タイムアウトチェックポイントの形成は、連続的に形成 されたチェックポイント間で発行される命令の数を前記予め定められた命令数に 制限するようになっている、請求項113 に記載の方法。 115.前記命令が任意の命令属性をもつ、請求項114 に記載の方法。 116.前記特定された事象が、予め定められた数のマシンクロックサイクルの 実行である、請求項113 に記載の方法。 117.前記特定された事象が、チェックポイントを形成することなく通過した 命令発行サイクルの数である、請求項114 に記載の方法。 118.前記タイムアウトチェックポイントを形成する前記段階は、前記CPU 内 の全てのレジスタに関する状態情報を記憶することを含め、前記CPU の完全な状 態を特徴づける状態情報を記憶することを含む、請求項114 に記載の方法。 119.前記タイムアウトチェックポイントを形成する前記段階に は、最後のタイムアウトチェックポイントを含む最後のチェックポイントが前記 CPU 内に形成されてから変化したデータの徴候のみを記憶するレジスタリネーム マップの状態を特徴づける状態情報を記憶することが含まれている、請求項114 に記載の方法。 120.前記徴候には、物理レジスタに対する論理レジスタのマッピングが含ま れている、請求項119 に記載の方法。 121.− 障害発生命令よりも順序的に前のチェックポイント実行された命令 のために形成されたチェックポイントから、より早期のプロセッサ状態を回復す る段階; − 前記障害発生命令から前記より早期のチェックポイント実行済み命令へと前 記CPU をバックアップし、前記チェックポイント実行済み命令から順方向に命令 を再度実行する段階、 を含んで成る、障害発生命令によってひき起こされた実行エラーからの回復段階 をさらに含んで成る請求項114 に記載の方法。 122.− 前記障害発生命令より順序的に後のチェックポイント実行済み命令 のために形成されたチェックポイントから、より早期のプロセッサ状態を回復す る段階; − 前記障害発生命令から前記順序的に後のチェックポイント実行済み命令へと 前記CPU をバックアップする段階; − 逆方向の段階的やり方で、順序的に前記より後のチェックポイント実行済み 命令と前記障害発生命令の間に存在する各々の命令のためにプロセッサ状態を回 復することを含め、前記障害発生命令へと前記CPU をバックステップさせる段階 ;及び − 前記障害発生命令から順方向に命令を再度実行する段階; を含む、障害発生命令によってひき起こされた実行エラーからの回復段階をさら に含んで成る請求項114 に記載の方法。 123.− タイムアウトチェックポイントが満了した時点で全て のチェックポイントが割振られた場合、命令復号タイプのチェックポイントのた めの精確な状態を維持するのに必要となり得るようにマシンをマシン停止させる のではなく予め定められた規則に従ってタイムアウトチェックポイントの形成を 遅延させる段階、 をさらに含んで成る請求項114 に記載の方法。 124.予め定められた規則には、予め定められたサイクル数についてのタイム アウトチェックポイントの形成を遅延させることが含まれている、請求項123 に 記載の方法。 125.命令を発行するための命令発行ユニットをもつ中央処理ユニット(CPU) の中で例外取扱いを束縛するための方法において、 − 前記CPU 内のデータ記憶装置内で予め定められたタイムアウト閾値計数を設 定する段階; − 前記CPU 内のデータ記憶装置内に初期カウント数を記憶する段階; − 1つの命令が発行されたCPU クロックサイクル中に、少なくとも1つの命令 が発行されたことを表示するべく、このクロックサイクル中に前記命令発行ユニ ットから命令発行済み信号を送る段階; − 前記命令発行済み信号に応答して、受理した命令発行済み信号の数を計数す るためのタイムアウトカウンタを提供する段階; − 前記命令発行済み信号を受理する段階; − 各CPU クロックサイクル中に受理された命令発行済み信号の数を計数し、前 記CPU 内のデータ記憶装置内に記憶された累積数にその数を加算する段階; − タイムアウトチェックポイント作成信号に応答して形成されたチェックポイ ント及び復号済み命令属性に応答して形成されたチェックポイントを含め、チェ ックポイントが形成された時点でつねに前記カウント数を初期値にリセットする 段階; − 各々のCPU クロックサイクルの間に、前記累積カウント数が閾値計数以上で あるか否かを決定するため前記タイムアウト閾値計数と前記累積カウント数を比 較する段階; − 前記タイムアウトカウンタ内で、前記累積カウント数が前記閾値計数以上で ある場合に、タイムアウトチェックポイント作成信号を生成する段階; − 前記タイムアウトチェックポイント信号を前記命令発行ユニットに伝送し、 チェックポイントタイムアウト条件が発生しチェックポイントを1つ形成しなけ ればならないということを前記発行ユニットに知らせる段階; − 前記タイムアウトチェックポイント作成信号に応えてチェックポイントを形 成し、前記初期値に前記カウント数をとりセットする段階、 を含んで成り、 かくして前記タイムアウトチェックポイントの形成が、連続的に形成されたチ ェックポイントの間で発行された命令の数を予め定められた命令数に制限しかく して、例外条件が発生した時点で取消しされ再実行されなくてはならない可能性 のある発行済み命令の数を束縛することになる、方法。 126.前記累積カウント数を前記タイムアウト閾値計数と比較する前記段階の 後でかつ前記生成段階の前に;さらに − 同じCPU クロックサイクル内で発行されなくてはならない命令発行ウインド ウ内の命令がチェックポイントを必要としているか否かを、命令属性に基づいて 決定する段階; − 前記タイムアウトチェックポイント作成信号の生成を遅延させる段階、 − 前記復号済み命令に応答してチェックポイントを形成する段階 ;及び − 命令属性に基づくチェックポイント形成のため、チェックポイント形成に応 答して前記初期値チェックポイントに前記累積カウント数をリセットする段階; を含んで成る請求項125 に記載の方法。 127.命令の発行時点で命令発行済み信号を生成する命令発行ユニット、前記 命令の実行に先立ちプロセッサ状態を記憶する、チェックポイントの形成時点で チェックポイント形成済み信号を生成するチェックポイント形成ユニットをもつ プロセッサの中で、 − 前記命令発行済み信号を受理し、各々の受理した命令発行済み信号に応えて 計数を増分するための有効化入力ポート、前記チェックポイント形成済み信号及 び累積計数出力信号を受理するためのリセットポートを有するカウンタ回路; − 予め定められたタイムアウト閾値計数を記憶するためのデータ記憶装置;及 び − 前記記憶されたタイムアウト閾値計数を前記累積計数出力信号と比較するた めの比較器、 を含んで成り、 前記カウンタ回路は、命令発行済み信号の予め定められた数を計数した後タイ ムアウトチェックポイント要求信号を出力する、 タイムアウトチェックポイントカウンタ装置。 128.命令を発行するための発行ユニット、命令を実行するための実行ユニッ ト及び中央処理ユニット内のその他のユニットに対し前記実行ユニットからの実 行結果を伝達するデータ順方向分配バスを有する中央処理ユニットの中で、複数 の投機的に発行された予測された命令の実行結果を同時に監視するための方法に おいて、 − プロセッサ内の前記データ順方向分配全体にわたり前記実行ユ ニットからの実行結果信号を受理するように結合されたウォッチポイントデータ を記憶するための複数のウォッチポイントレジスタをもつウォッチポイントユニ ットを提供する段階; − 前記投機的に発行された予測された命令の各々について、制御フロー転送方 向を左右し投機的発行済み予測命令を投機的に発行する基礎となる1つの条件の 予測値を識別する予測条件データ結果を含むウォッチポイントデータを記憶する ために1つのウォッチポイントレジスタを割振る段階; − 前記データ順方向送りバス上で伝送される前記投機的発行済みの予測命令に ついての実行結果信号を監視する段階; − 前記記憶されたウォッチポイントデータ及び実際の既知の条件データ結果信 号及び予め定められた規則を含む前記記憶されたウォッチポイントデータ及び実 行結果信号に基づき、予め定められた事象の発生を検出する段階であって、ここ で前記実際の既知の条件データ結果信号が、前記投機的発行済みの予測命令の制 御フロー転送方向を決定する上で基礎となるべき条件の実際の値を識別している ような、段階; − 信号が一致しているかしていないかを決定するべく前記投機的に発行された 命令に関して前記データ順方向送りバス上で到着した前記結果信号と前記投機的 に発行された予測命令のうちの1つについて前記ウォッチポイントレジスタ内に 記憶された前記ウォッチポイントデータを比較する段階であって、一致は前記投 機的発行済み予測命令が正しく予測されていたことを表わし、不一致は、前記投 機的発行済み予測命令が該予測されていたことを表わすような、段階;及び − 比較の結果、前記予測が誤予測であったことが表示された場合には、前記誤 予測に基づいて実行された命令が取消されるように前 記中央処理ユニットをより早期の中央処理ユニット状態まで回復させる段階、 を含んで成る方法。 129.− 前記データ順方向送りバス上に現われる実行結果信号がもはや前記 予め定められた事象の発生を検知する結果をもたらさないように前記中央処理ユ ニットを回復させる段階の後に前記ウォッチポイント要素を割振り解除する段階 ; をさらに含んで成る、請求項128 に記載の方法。 130.前記中央処理ユニットを回復させる段階には、 − 前記実際の既知の条件データ結果信号がフェッチされ誤予測を訂正するべく 発行され得るように、適正な命令ストリームに対応する前記発行ユニットに対す る新しい命令アドレスを供給する段階; − 前記の直前の状態まで中央処理ユニットのマシン状態を回復し、前記誤予測 に基づいて実行された命令が取消されるように命令の実行を再開する段階; − 前記フェッチされた命令に基づいて前記適正な命令ストリーム内で前記新し い命令のための実行を開始する段階、 が含まれている、請求項128 に記載の方法。 131.前記投機的発行済み予測命令の実行に先立って、チェックポイントデー タ記憶装置内に中央処理ユニットマシン状態を記憶する段階をさらに含んで成り 、 前記中央処理ユニット状態の回復段階には、前記新しい命令のための前記実行 開始段階に先立って前記チェックポイントデータ記憶装置から中央処理ユニット 状態を回復することが含まれている請求項130 に記載の方法。 132.前記中央処理ユニットをより早期の中央処理ユニット状態まで回復させ る前記段階にはさらに、前記より早期の状態まで回復 させるべく前記中央処理ユニットをバックアップすることが含まれている請求項 131 に記載の方法。 133.前記中央処理ユニットをより早期の中央処理ユニット状態まで回復させ る前記段階にはさらに、前記より早期の状態まで回復させるべく前記中央処理ユ ニットをバックアップしかつバックステップすることが含まれている請求項131 に記載の方法。 134.前記投機的発行済み予測命令のうちの1つのための前記ウォッチポイン トの中に記憶された前記ウォッチポイントデータがWP_COND 信号を含み;前記デ ータ順方向送りバス上で到着した前記結果信号には、XCC_DATA_C,ICC_DATA_C又 はFCC_DATA_C,FXU_XCC_DATA,FXU_ICC_DATA,FXAGU_XCC_DATA,FXU_ICC_DATA、 及びFPU_FCCDATAから成るグループの中から選択された実行ユニット条件コード データが含まれている、請求項128 に記載の方法。 135.前記命令には、予測された分岐命令が含まれている請求項128 に記載の 方法。 136.前記命令にはジャンプ&リンク命令が含まれている請求項128 に記載の 方法。 137.前記命令には、予測された分岐及びジャンプ&リンク命令が含まれてい る請求項128 に記載の方法。 138.前記新しいアドレスからウォッチポイントユニット内のデータ記憶装置 内に記憶されている請求項128 に記載の方法。 139.命令を発行するための命令発行ユニット、発行された命令を実行するた めの実行ユニット及び前記実行ユニットからCPU のその他のコンポーネントまで 実行結果を伝達するための複数のデータ順方向送りバスを有する中央処理ユニッ ト(CPU)の中で、前記実行結果生成ユニットから予め定められた命令が待って いる実行結果を同時に捕捉するための方法において、 − 前記結果データを捕捉することのできる各々の実行結果ソースから、有効化 制御信号を受理する段階: − 各々の前記実行結果ソースユニットから結果データタイプ信号を受理する段 階; − 前記実行結果ソースユニットのうちのどれから前記結果データが受理される ことになるかを表示するセレクトソース信号及び前記結果データが予測されてい る現行のクロックサイクルとの関係における時刻の表示を受理する段階; − 選択された実行結果ソースユニットを規定するべく予め定められた規則に従 って前記制御有効化信号、前記結果データタイプ信号及び前記セレクトソース信 号の受理に応答してデータ捕捉有効化信号を生成する段階; − 前記実行結果ソースユニットから実行結果データ信号を監視する段階; − 前記到達した実行結果データ及び前記データ捕捉有効化信号に応答して前記 選択された実行結果ソースユニットから実行結果データを捕捉する段階;及び − 前記中央処理ユニット内のデータ記憶装置内での評価のため前記捕捉された 実行結果データを記憶する段階、 を含んで成る方法。 140.少なくとも1つのデータ捕捉有効化信号の生成に応答して前記捕捉され た実行結果データの評価を開始する段階、 をさらに含んで成る請求項139 に記載の方法。 141.− 抑止制御信号を受理する段階;及び − 前記抑止選択信号が受理された場合に前記データ捕捉有効化信号を生成する 前記段階を抑止する段階; をさらに含んで成る請求項139 に記載の方法。 142.前記抑止制御信号には、現行のマシンサイクルにて発行された命令によ って条件コードが修正されたこと、又現行サイクル中に前記データ順方向送りバ ス上に現われうる条件コードが現行サイクル中有効でない可能性があるというこ とを表わす前記条件コードリネームユニットからの条件コードリネーム済み信号 が含まれている請求項141 に記載の方法。 143.前記実行結果データには条件コードデータが含まれている請求項139 に 記載の方法。 144.前記実行結果データには、リネームされた条件コードデータが含まれて いる請求項139 に記載の方法。 145.前記実行結果データには、浮動小数点実行ユニット、整数実行ユニット 及びアドレス生成ユニットから受理された条件コードデータ及び条件コードリネ ームユニットから受理されたリネームされた条件コードデータが含まれており、 これらの条件コードデータ及び前記リネームされた条件コードデータが同じマシ ンサイクル中に受理されている請求項139 に記載の方法。 146.前記実行結果データには条件コードデータが含まれ、前記予め定められ た命令には、予測された分岐命令を含む予測された制御フロー転送命令が含まれ ている請求項139 に記載の方法。 147.前記実行結果データには、計算されたジャンプ&リンクアドレスが含ま れており、前記予め定められた命令には、ジャンプ&リンク命令が含まれている 請求項139 に記載の方法。 148.前記実行結果データには条件コードデータ及び計算上のジャンプ&リン クアドレスが含まれており、前記予め定められた命令には予測された分岐命令及 びジャンプ&リンク命令が含まれている、請求項139 に記載の方法。 149.前記実行結果ソースユニットが命令実行ユニットを含んで いる請求項139 に記載の方法。 150.前記実行結果ソースユニットにはさらにレジスタリネームユニットが含 まれる請求項139 に記載の方法。 151.前記レジスタリネームユニットには条件コードレジスタリネームユニッ トが含まれ、前記実行計算データにはリネーム条件コードデータが含まれている 、請求項150 に記載の方法。 152.前記実行結果ソースユニットには整数実行ユニット、浮動小数点実行ユ ニット、アドレス生成ユニット及び条件コードレジスタリネームユニットが含ま れている請求項139 に記載の方法。 153.前記結果データが条件コードデータ及びアドレスデータを含んでいる請 求項139 に記載の方法。 154.前記条件コードタイプの信号には、その命令が発行された時点で生成さ れた前記条件コードリネームユニットからの条件コードタイプの信号、及び命令 発行中により早期に生成されその後ウォッチポイント記憶要素の中に記憶された 条件コードタイプの信号が含まれている請求項139 に記載の方法。 155.BR_XCC信号、BR_ICC信号、BR_FCC信号及びその組合せから成るグループ の中から前記条件コードタイプ信号が選択される請求項154 に記載の方法。 156.前記条件コードタイプ信号がWP_XCC信号、WP_ICC信号、WP_FCC信号及び その組合せから成るグループの中から選択されている請求項154 に記載の方法。 157.− 前記有効化制御信号がDO_PREDICT_VEC又はWP_ACTIVEから成るグルー プの中から選択され − 前記データタイプ信号が、BR_XCC信号、BR_ICC信号、BR_FCC信号、WP_XCC信 号、WP_ICC信号及びWP_FCC信号から成るグループの中から選択され; − 前記レクトソース信号は、CC_DV_C,FXU_CC_CURR_MATCH,FXUCC_ARRAY_MATC H,FXAGU_CC_CURR_MATCH,FXAGU_CC_ARRAY_MATCH,FPU_CC_CURR_MATCH、及びFPU _CC_ARRAY_MATCHから成るグループの中から選択され; − 前記生成されたソース選択信号は、XCC_DATA_C,FXU_DATA_C or ICC_DATA_C ,FXU_XCC_DATA_F,FXAGU_CC_DATA_F,FXAGU_CC_DATA_F、及びFPU_CC_DATA_F信 号、から成るグループの中から選択されたソース信号を選択するべくSEL_BR_XCC ,SEL_BR_ICC,SEL_FXU_XCC,SEL_FXU_ICC,SEL_FXAGU_XCC,SEL_FXAGU_ICC,SE L_FPU_FCCから成るグループの中から選択され; − 前記捕捉された実行結果データは、XCC_DATA_C,FXU_DATA_C or ICC_DATA_C ,FXU_XCC_DATA_F,FXAGU_CC_DATA_F,FXAGU_CC_DATA_F,FPU_CC_DATA_Fデータ 信号から成るグループの中から選択され、 − 評価のための前記捕捉された実行結果データがEVAL_CC信号を含んでいる、 請求項139 に記載の方法。 158.前記データ記憶ユニットがラッチである請求項139 に記載の方法。 159.前記複数の実行結果ソースユニットには、整数実行ユニット、アドレス 生成ユニット、浮動小数点実行ユニット及び条件コードリネームユニットが含ま れている請求項139 に記載の方法。 160.前記有効化制御信号にはDO_PREDICT_VEC信号が含まれ;前記有効化制御 信号にはWP_ACTIVE信号が含まれ;前記実行結果データタイプ信号には条件コー ドタイプ信号が含まれている請求項139 に記載の方法。 161.命令を発行するための命令発行ユニット、命令を実行するための実行ユ ニット及び前記中央処理ユニットのその他のコンポー ネントに対して実行結果を伝達するための複数のデータ順方向送りバスを有する 中央処理ユニットの中で、現行のCPU クロックサイクル内でリネームすることに より修正されなかった条件コードタグについて前記データ順方向送りバスから条 件コードタグを捕捉するための方法において、 − 現行マシンサイクル内で発生する条件コードタグの修正を除外するものの、 リネームされた条件コード物理レジスタタグを識別するリネームされた条件コー ド物理レジスタタグ信号を受理する段階; − 前記データ順方向送りバスから直接複数の条件コードタグ信号を受理する段 階; − 前記受理したリネーム済み条件コードタグ信号を前記実行ユニットから到着 した前記複数の条件コードタグ信号のうちの全てのものと同時に比較し、前記到 着したデータ順方向送りバス条件コードタグ信号の各々に対応する比較信号を生 成する段階; − 現行CPU サイクル中に前記データ順方向送りバス上で有効なデータを送る各 々の実行ユニットからデータ有効信号を受理する段階; − 各々の前記比較信号を、現行CPU サイクル中に前記データ順方向送りバスの 上で有効データを送る各々の実行ユニットから到着した異なるデータ有効制御信 号の論理積を同時にとる段階; − 各々の比較信号及び各々の前記データ有効信号が表明された時点で条件コー ド現行一致信号を生成する段階; を含んで成り、 − 前記条件コード現行一致信号は、前記ウォッチポイント番号のいずれである かを識別しかくして現行のCPU サイクル内で前記データ順方向送りバスから捕捉 され得る付随する命令番号及び条件コードタグを識別し、 − かくして、前記現行一致論理は、未解決の投機的に発行された複数の命令を 同時に監視しかつ、捕捉して前記投機的発行済み命令の発行の基礎となった予測 の評価のために利用できるようにすることのできる条件コードを識別することが 可能となる、方法。 162.命令を発行するための命令発行ユニット、命令を実行するための実行ユ ニット論理及び物理とリネームするためのレジスタリネームユニット及び前記中 央処理ユニットのその他のコンポーネントに対して前記実行ユニットからの実行 結果を伝達するための複数のデータ順方向送りバスを有する中央処理ユニットの 中で、現行のCPU クロックサイクル内でリネームすることにより修正されなかっ た条件コードタグについて前記データ順送りバスから条件コードタグを捕捉する ための方法において − 前記CPU 内にデータを記憶するため複数の条件コードタグレジスタをもつ条 件コードタグアレイデータ記憶装置を提供する段階; − 現行マシンサイクル内で発生する条件コードの修正を含めてリネームされた 条件コード物理レジスタタグを識別するリネームされた条件コード物理レジスタ タグ信号を受理する段階; − ウォッチポイント番号及びそのCPU サイクル中に発行された各々の投機的発 行済み命令に割振られた対応する条件コードタグレジスタ要素を識別する信号ウ ォッチポイント番号信号成分を含む予測実施信号を受理する段階; − そのとき現行であるCPU サイクル内で発行された命令によって1つの条件コ ードが修正された時点で条件コードリネーム済み信号を受理し、この条件コード リネーム済み信号を、前記予測実施信号によって識別された条件コードタグレジ スタ要素内への前記リネーム済み条件コード物理レジスタタグ信号の書込みのた めの書込み有効化信号として用いる段階; − 論理積をとることによって、前記条件コードリネーム済み信号と前記予測実 施信号を組合せ、前記条件コードリネーム済み信号と前記予測実施(信号)の両 方が表明された時点でのみ前記タグアレイに対する前記受理されたリネーム済み 条件コード物理レジスタタグの書込み及びこの書込みのこのアレイを伴う場所を 制御するべく書込み制御有効化信号を生成する段階; − アレイ中の特定の要素が前記予測実施信号の一成分として含まれているウォ ッチポイント番号により識別され指標付けされている、前記書込み有効化信号の 制御下で前記タグアレイ内の前記複数の条件コードタグレジスタ要素の1つの中 に前記投機的発行済み命令に付随する前記受理されたリネーム済み条件コード物 理レジスタタグ信号を記憶する段階; − 前記リネーム済み条件コード物理レジスタタグが前記データ順方向送りバス 上で到着する条件コードタグ信号と一致する必要がなくなってしまうまで、前記 条件コードタグレジスタ内に前記記憶された各々のリネーム済み条件コード物理 レジスタタグ信号を保持する段階; − 同じCPU サイクル中に前記データ順方向送りバスからの複数の条件コードタ グ信号を同時に受理する段階; − 複数のアレイ比較信号を生成するべく前記記憶されたリネーム済み条件コー ド物理レジスタタグ信号の全てのものと前記受理されたデータ順方向送りバス条 件コード信号の各々を同時に比較する段階;及び − 前記データ有効信号と前記アレイ比較信号の論理積をとり、前記比較信号と 前記データ有効信号が両方共表明された時点で条件コードアレイ一致信号を生成 する段階; を含んで成り、 − 前記条件コードアレイ一致信号は、前記ウォッチポイント番号のいずれであ るかを識別しかくして現行のサイクル内で前記データ順方向送りバスから捕捉さ れ得る付随する命令番号及び条件コードタグを識別し、 − かくして、前記アレイ晩期一致論理は、未解決の投機的に発行された複数の 命令を同時に監視しかつ、捕捉して前記投機的発行済み命令の発行の基礎となっ た予測の評価のために利用できるようにすることのできる条件コードを識別する ことが可能となる、方法。 163.− 現行マシンサイクル内で発生する条件コードタグの修正を除外する ものの、リネームされた条件コード物理レジスタタグを識別するリネームされた 条件コード物理レジスタタグ信号を受理する段階; − 前記データ順方向送りバスから直接複数の条件コードタグ信号を受理する段 階; − 前記受理したリネーム済み条件コードタグ信号を前記実行ユニットから到着 した前記複数の条件コードタグ信号のうちの全てのものと同時に比較し、前記到 着したデータ順方向送りバス条件コードタグ信号の各々に対応する比較信号を生 成する段階; − 現行CPU サイクル中に前記データ順方向送りバス上で有効なデータを送る各 々の実行ユニットからデータ有効信号を受理する段階; − 各々の前記比較信号を、現行CPU サイクル中に前記データ順方向送りバスの 上で有効データを送る各々の実行ユニットから到着した異なるデータ有効制御信 号の論理積を同時にとる段階; − 各々の比較信号及び各々の前記データ有効信号が表明された時点で条件コー ド現行一致信号を生成する段階; をさらに含んで成り、 − 前記条件コード現行一致信号は、前記ウォッチポイント番号のいずれである かを識別しかくして現行のCPU サイクル内で前記データ順方向送りバスから捕捉 され得る付随する命令番号及び条件コードタグを識別し、 − かくして、前記現行一致論理は、未解決の投機的に発行された複数の命令を 同時に監視しかつ、捕捉して前記投機的発行済み命令の発行の基礎となった予測 の評価のために利用できるようにすることのできる条件コードを識別することが 可能となる、請求項139 に記載の方法。 164.− 前記CPU 内にデータを記憶するため複数の条件コードタグレジスタ をもつ条件コードタグアレイデータ記憶装置を提供する段階; − 現行マシンサイクル内で発生する条件コードの修正を含めてリネームされた 条件コード物理レジスタタグを識別するリネームされた条件コード物理レジスタ タグ信号を受理する段階; − ウォッチポイント番号及びそのCPU サイクル中に発行された各々の投機的発 行済み命令に割振られた対応する条件コードタグレジスタ要素を識別する信号ウ ォッチポイント番号信号成分を含む予測実施信号を受理する段階; − そのとき現行であるCPU サイクル内で発行された命令によって1つの条件コ ードが修正された時点で条件コードリネーム済み信号を受理し、この条件コード リネーム済み信号を、前記予測実施信号によって識別された条件コードタグレジ スタ要素内への前記リネーム済み条件コード物理レジスタタグ信号の書込みのた めの書込み有効化信号として用いる段階; − 論理積をとることによって、前記条件コードリネーム済み信号と前記予測実 施信号を組合せ、前記条件コードリネーム済み信号と 前記予測実施(信号)の両方が表明された時点でのみ前記タグアレイに対する前 記受理されたリネーム済み条件コード物理レジスタタグの書込み及びこの書込み のこのアレイを伴う場所を制御するべく書込み制御有効化信号を生成する段階; − アレイ中の特定の要素が前記予測実施信号の一成分として含まれているウォ ッチポイント番号により識別され指標付けされている、前記書込み有効化信号の 制御下で前記タグアレイ内の前記複数の条件コードタグレジスタ要素の1つの中 に前記投機的発行済み命令に付随する前記受理されたリネーム済み条件コード物 理レジスタタグ信号を記憶する段階; − 前記リネーム済み条件コード物理レジスタタグが前記データ順方向送りバス 上で到着する条件コードタグ信号と一致する必要がなくなってしまうまで、前記 条件コードタグレジスタ内に前記記憶された各々のリネーム済み条件コード物理 レジスタタグ信号を保持する段階; − 同じCPU サイクル中に前記データ順方向送りバスからの複数の条件コードタ グ信号を同時に受理する段階; − 複数のアレイ比較信号を生成するべく前記記憶されたリネーム済み条件コー ド物理レジスタタグ信号の全てのものと前記受理されたデータ順方向送りバス条 件コード信号の各々を同時に比較する段階;及び − 前記データ有効信号と前記アレイ比較信号の論理積をとり、前記比較信号と 前記データ有効信号が両方共表明された時点で条件コードアレイ一致信号を生成 する段階; をさらに含んで成り、 − 前記条件コードアレイ一致信号は、前記ウォッチポイント番号のいずれであ るかを識別しかくして現行のサイクル内で前記データ 順方向送りバスから捕捉され得る付随する命令番号及び条件コードタグを識別し 、 − かくして、前記アレイ晩期一致論理は、未解決の投機的に発行された複数の 命令を同時に監視しかつ、捕捉して前記投機的発行済み命令の発行の基礎となっ た予測の評価のために利用できるようにすることのできる条件コードを識別する ことが可能となる、請求項163 に記載の方法。 165.− 現行の発行ウインドウ信号内の現在リネームされた条件コードタグ を各々のタグ順方向送りバスタグに比較し、先行するサイクルの条件コードタグ を各々のデータ順方向送りバスタグと比較することにより、現行の発行ウインド ウサイクル内の現在リネームされている条件コードと先行サイクル中の条件コー ドタグの間でデータ順方向送りバスタグ比較を分離する段階 を含む、比較時間を低減するべく前記条件コードデータと前記データ順方向送り バスタグを比較することをさらに含んで成り、 − かくして先行するサイクル内の前記条件コードタグ及び現在リネームされて いる条件コードタグとの前記データ順方向送りバスタグの前記比較は、それが単 一の非分割作業にて行なわれた場合に比べさらに迅速に行なわれることになる、 請求項164 に記載の方法。 166.命令を発行するための発行ユニット、命令を実行するための実行ユニッ ト及び中央処理ユニット内で前記実行ユニットからその他のユニットまで実行結 果を伝達するための手段、を有する中央処理ユニット(CPU)の中で、複数の投 機的発行済み命令の実行結果を同時に監視するための方法において、 − 命令識別タグで各々の命令を識別する段階; − 各々の投機的発行済み命令について命令発行中に前記命令識別タグに付随す る指標付けされたデータ記憶装置の中に前記CPU 内の 予測データを記憶し、この予測データを前記投機的発行済み命令と結びつける段 階であって、前記予測データがその命令が投機的に発行された条件の予測値を識 別している、段階; − 前記実行結果伝達手段上で伝送された全ての発行済み命令について、実行結 果信号を同時に監視する段階; − 前記実行結果データが前記伝達用手段上に現われた時点で前記予測データに 対応するものの必ずしも等しいものではない既知のデータを含む前記実行結果デ ータのうちの選択されたデータを同時に捕捉する段階であって、前記既知のデー タが、前記命令を投機的に発行する目的で仮定された条件の実際値を識別してい る、段階; − 前記予め定められたデータを既知のデータと比較し、この予め定められたデ ータが前記既知のデータと一致しない場合に誤予測信号を生成する段階;及び − 前記誤予測に基づいて実行された命令が取消されるように、誤予測信号の受 理に応えてより早期の中央処理ユニット状態まで中央処理ユニットを回復させる 段階、 を含んで成る方法。 167.中央処理ユニットの中で投機的に発行された予測された分岐命令を含む 予め定められた投機的発行済み命令のための複数の誤予測信号を同時に生成する ための方法において、 − 前記投機的発行済み命令を監視するためにウォッチポイントが形成されつつ あることを表示するウォッチポイント活動中信号を受理する段階; − 前記投機的発行済み命令の各々について前記CPU 内に規定されたデータ記憶 構造の中でウォッチポイント番号及び付随するウォッチポイントレジスタを割振 りする段階; − 前記1つの投機的発行済み命令に関係するウォッチポイントデ ータを受理し、前記割振られたウォッチポイントレジスタ内に前記ウォッチポイ ントデータを記憶する段階; − 各々の発行済み分岐命令について、分岐命令のための複数の誤予測信号を同 時に生成する段階であって、 ・条件コード選択論理回路から評価条件コード信号を受理する段階; ・ウォッチポイント記憶要素からウォッチポイント条件信号を受理する段階; ・ウォッチポイント記憶要素から条件コードタイプ制御信号を受理する段階; ・各実行結果ソースユニットから有効化制御信号を受理する段階; ・分岐のための条件が正しく予測されているか否かを評価するため各々の前記 実行結果ソースユニットのための前記有効化制御信号の表明された状態を含め予 め定められた状態コード評価規則に従って前記ウォッチポイント条件信号と前記 評価条件コード信号を比較する段階; ・前記分岐命令が正しく予測された場合には、分岐真信号を表明する段階; を含む段階;及び − 前記分岐真信号が表明されたという決定に応答して評価真信号を生成する段 階; − 投機的発行済み分岐命令について前記結果データを捕捉した結果として少な くとも1つのデータ捕捉有効化信号の受理に応えて評価準備完了信号を生成する 段階; − 前記評価準備完了信号と前記評価真信号の両方の受理に応えて命令誤予測信 号を生成する段階、 を含んで成る方法。 168.中央処理ユニットの中で、投機的に発行されたジャンプ&リンク命令を 含む予め定められた投機的発行済み命令のための複数の誤予測信号を当時に生成 するための方法において、 − 前記投機的発行済み命令を監視するためにウォッチポイントが形成されつつ あることを表示するウォッチポイント活動中信号を受理する段階; − 前記投機的発行済み命令の各々について前記CPU 内に規定されたデータ記憶 構造の中でウォッチポイント番号及び付随するウォッチポイントレジスタを割振 りする段階; − ウォッチポイントがジャンプ&リンク命令のために形成されつつあることを 表示するウォッチポイントジャンプ&リンク有効化信号を受理する段階; − 前記1つの投機的発行済み命令に関係するウォッチポイントデータを受理し 、前記割振られたウォッチポイントレジスタ内に前記ウォッチポイントデータを 記憶する段階; − 各々の前記発行済みジャンプ&リンク命令について、複数のジャンプ&リン ク誤予測信号を同時に生成する段階であって、 ・プログラムカウンタデータを記憶するための複数の記憶場所をもつ標的アド レスデータ構造を規定する段階; ・前記ジャンプ&リンク命令が発行された時点で前記標的アドレスデータ構造 記憶場所のうちの1つに代替的な次のプログラムカウンタを書込み、この記憶さ れた代替的な次のプログラムカウンタを前記命令と結びつける段階; ・実行結果ソースユニット内での前記ジャンプ&リンクの実行中に計算上の次 のプログラムカウンタ値を計算する段階; ・前記ジャンプ&リンク命令の実行の完了時点でジャンプ&リン ク命令実行完了信号を生成する段階; ・前記実行結果ソースユニットから前記計算上の次のプログラムカウンタを受 理する段階; ・前記記憶場所から前記ジャンプ&リンク命令に付随する前記記憶された代替 的な次のカウンタを読取る段階; ・前記代替的な次のプログラムカウンタ値を前記計算上の次のプログラムカウ ンタ値と比較する段階; ・前記代替的な次のプログラムカウンタ値が前記計算上の次のプログラムカウ ンタ値と一致する場合、ジャンプ&リンク一致信号を生成する段階;及び ・前記ジャンプ&リンク一致信号と前記ウォッチポイントジャンプ&リンク有 効化信号の両方の表明に応えてジャンプ&リンク真信号を生成する段階、 を含む段階; − 前記ジャンプ&リンク一致信号が表明されたという決定に応答て評価真信号 を生成する段階; − 前記ウォッチポイント活動中信号、前記命令ウォッチポイント番号信号、前 記ウォッチポイント活動中信号及び前記ジャンプ&リンク命令実行完了信号の表 明に応答して、ジャンプ&リンク命令評価有効化信号を生成する段階; − 前記ジャンプ&リンク命令評価有効化信号の受理(の受理)に応えて評価準 備完了信号を生成する段階;及び − 前記評価準備完了信号及び前記評価真信号の受理に応えて命令誤予測信号を 生成する段階、 を含んで成る方法。 169.中央処理ユニットの中で、投機的に発行された予測された分岐命令及び ジャンプ&リンク命令を含む予め定められた投機的発 行済み命令のための複数の誤予測信号を同時に生成するための方法において、 − 前記投機的発行済み命令を監視するためにウォッチポイントが形成されつつ あることを表示するウォッチポイント活動中信号を受理する段階; − 前記投機的発行済み命令の各々について前記CPU 内に規定されたデータ記憶 構造の中でウォッチポイント番号及び付随するウォッチポイントレジスタを割振 りする段階; − ウォッチポイントがジャンプ&リンク命令について形成されつつあることを 表示するウォッチポイントジャンプ&リンク有効化信号を受理する段階; − 前記1つの投機的発行済み命令に関係するウォッチポイントデータを受理し 、前記割振られたウォッチポイントレジスタ内に前記ウォッチポイントデータを 記憶する段階; − 各々の発行済み分岐命令について、分岐命令のための複数の誤予測信号を同 時に生成する段階であって、 ・条件コード選択論理回路から評価条件コード信号を受理する段階; ・ウォッチポイント記憶要素からウォッチポイント条件信号を受理する段階; ・ウォッチポイント記憶要素から条件コードタイプ制御信号を受理する段階; ・各実行結果ソースユニットから有効化制御信号を受理する段階; ・分岐のための条件が正しく予測されているか否かを評価するため各々の前記 実行結果ソースユニットのための前記有効化制御信号の表明された状態を含め予 め定められた状態コード評価規則に従っ て前記ウォッチポイント条件信号と前記評価条件コード信号を比較する段階; ・前記分岐命令が正しく予測された場合には、分岐真信号を表明する段階; を含む段階;及び ・前記分岐真信号が表明されたという決定に応答して評価真信号を生成する段 階;そして − 各々の前記発行済みジャンプ&リンク命令について、複数のジャンプ&リン ク誤予測信号を同時に生成する段階であって、 ・プログラムカウンタデータを記憶するための複数の記憶場所をもつ標的アド レスデータ構造を規定する段階; ・前記ジャンプ&リンク命令が発行された時点で前記標的アドレスデータ構造 記憶場所のうちの1つに代替的な次のプログラムカウンタを書込み、この記憶さ れた代替的な次のプログラムカウンタを前記命令と結びつける段階; ・実行結果ソースユニット内での前記ジャンプ&リンクの実行中に計算上の次 のプログラムカウンタ値を計算する段階; ・前記ジャンプ&リンク命令の実行の完了時点でジャンプ&リンク命令実行完 了信号を生成する段階; ・前記実行結果ソースユニットから前記計算上の次のプログラムカウンタを受 理する段階; ・前記記憶場所から前記ジャンプ&リンク命令に付随する前記記憶された代替 的な次のカウンタを読取る段階; ・前記代替的な次のプログラムカウンタ値を前記計算上の次のプログラムカウ ンタ値と比較する段階; ・前記代替的な次のプログラムカウンタ値が前記計算上の次のプログラムカウ ンタ値と一致する場合、ジャンプ&リンク一致信号を 生成する段階;及び ・前記ジャンプ&リンク一致信号と前記ウォッチポイントジャンプ&リンク有 効化信号の両方の表明に応えてジャンプ&リンク真信号を生成する段階、 ・前記ジャンプ&リンク一致信号が表明されたという決定に応答て評価真信号 を生成する段階; ・前記ウォッチポイント活動中信号、前記命令ウォッチポイント番号信号、前 記ウォッチポイント活動中信号及び前記ジャンプ&リンク命令実行完了信号の表 明に応答して、ジャンプ&リンク命令評価有効化信号を生成する段階; を含む段階 − 投機的発行済み分岐命令のための前記結果データの捕捉の結果としての少な くとも1つのデータ捕捉有効化信号の受理又は前記ジャンプ&リンク命令評価有 効化信号の受理に応答して、評価準備完了信号を生成する段階;及び − 前記評価準備完了信号及び前記評価真信号の両方の受理に応答して命令誤予 測信号を生成する段階、 を含んで成る方法。 170.− 各々の実行結果ソースユニットから有効化制御信号を受理する段階 ; − 各々の実行結果ソースユニットから結果データタイプ信号を受理する段階; − 前記結果データが前記実行結果ソースユニットのいずれから受理されること になるかを表示するセレクトソース信号及び、前記結果データが予測される現行 クロックサイクルとの関係における時刻の表示を受理する段階; − 予め定められた規則に従って前記有効化制御信号、前記結果デ ータタイプ信号及び前記セレクトソース信号の受理に応答してソース選択信号を 生成する段階; − 前記実行結果ソースユニットから実行結果データ信号を監視する段階; − 前記到着する実行結果データ及び前記ソース選択信号に応えて前記選択され たソースから実行結果データを捕捉する段階;及び − 前記プロセッサ内のデータ記憶装置内に評価のため前記捕捉された実行結果 データを記憶する段階; をさらに含んで成り、 かくして予め定められた命令が待っている結果データは、複数の実行結果ソー スユニットから同時に捕捉される請求項169 に記載の方法。 171.前記実行結果ソースユニットには命令実行ユニットとレジスタリネーム ユニットが内含されている請求項169 に記載の方法。 172.− 前記予め定められた投機的発行済み命令が制御転送命令、分岐命令 、ジャンプ&リンク命令及びそれらの組合せから成るグループの中から選択され ; − 前記条件コードタイプ制御信号には、WP_XCC,WP_ICC,WP_FCC及びその組合 せから成るグループの中から選択されたものが含まれており、 − 前記分岐真信号がBR_TRUE 信号を含み; − 前記評価条件コード信号がEVAL_CC 信号を含んでおり; − 前記ウォッチポイント条件信号にはWP_COND 信号が含まれており; − 前記有効化信号がWP_JMPL 信号を含んでおり、前記第1の状態がWP_JMPL = 0であり、前記第2の状態がWP_JMPL =1であり、 前記ソース選択信号が、SEL_BR_XCC,SEL_BR_ICC,SEL_FXU_XCC, SEL_FXU_ICC,SEL_FXAGU_CC,SEL_FXAGU_ICC、及びSEL_FPU_FCC信号から成るグ ループの中から選ばれたものを含んでおり; − 前記ジャンプ&リンク命令実行完了信号には、FXAGU_JMPL信号が含まれてお り; − 前記ジャンプ&リンクチェックポイント番号がFXAGU_CHKPNT_DEC信号を含み ; − 前記ジャンプ&リンク一致信号がJMPL_MATCH信号を含み; − 前記ジャンプ&リンク真信号がJMPL_TRUE 信号を含み; − 前記ウォッチポイントジャンプ&リンク信号がWP_JMPL 信号を含み; − 前記評価真信号がEVAL_TRUE 信号を含み; − 前記評価準備完了信号がEVAL_RUE 信号を含み; − 前記評価準備完了信号がEVAL_READY信号を含み; − 前記評価有効化信号がEVAL_ENABLE 信号を含み; − 前記ウォッチポイント活動中信号がWP_ACTIVE_VEC 信号を含み; − 前記ウォッチポイントジャンプ&リンク有効化信号がWP_JMPL 信号を含み; − 前記命令誤予測信号がWP_MISPRED_VEC信号を含む 請求項169 に記載の方法。 173.命令発行ユニット及び複数の命令実行ユニットを有する中央処理ユニッ トの中で、投機的発行済みの予測された分岐命令及びジャンプ&リンク命令を含 む、予め定められた投機的発行済み命令のための複数の誤予測信号を同時に生成 するための方法において、 − 命令シーケンスの実行の結果としてもたらされる条件を予測する段階; − 前記実行シーケンスの実行を完了する前に前記予測された条件 に基づいて制御転送命令を投機的に発行する段階; − 前記CPU のデータ構造内でウォッチポイント記憶レジスタを割振りし、前記 投機的に発行された命令のうちの特定の1つの命令と前記割振られたレジスタを 結びつける段階; − 前記制御転送命令のための正しい方向を有する評価された条件との後の比較 のために、前記割振られたウォッチポイントレジスタ内に前記予測された条件を 記憶する段階;及び 各々の投機的に発行された命令について、 − 前記実行ユニットによって生成された実行結果データを監視する段階、 − 各々の前記ウォッチポイントレジスタの中に記憶された前記実行前予測情報 を前記実行ユニットから受理した実行後評価された条件情報と比較して、前記予 測された条件情報が前記命令シーケンスについて前記評価された条件情報に一致 しているか否かを見極める段階;及び − 前記命令のための前記予測情報が前記命令のための前記既知の情報と一致し ない場合に、誤予測された条件情報の結果として誤って発行された各々の投機的 発行済み命令についての誤予測表示を生成する段階、 を含んで成る方法。 174.命令発行ユニット、命令実行ユニット、及びデータを記憶するためのメ モリ記憶ユニットを有する中央処理ユニットの中で、このユニット内の単一の共 用記憶ユニット内の共通のデータ構造の中に代替的分岐アドレス及び予測された ジャンプ&リンクアドレスを並行して記憶するための方法において、 − 発行された各々の制御転送命令についてそれが発行された時点で発行ユニッ トからの制御転送命令発行済み信号を生成する段階で あって、前記制御転送命令発行済み信号には、分岐命令又はジャンプ&リンク命 令として制御転送命令を識別するべくウォッチポイントタイプの信号が含まれて いる段階; − 予測された分岐及びジャンプ&リンク命令の命令復号中に代替的な次のプロ グラムカウンタを決定する段階; − 代替的分岐アドレスを記憶するための前記記憶ユニット内のレジスタ場所を 識別するウォッチポイント書込み有効化制御信号及びウォッチポイント書込みア ドレス信号を生成する段階であって、このウォッチポイント書込み有効化制御信 号が、チェックポイント又はウォッチポイントを作る時に表明される、段階; − 前記ウォッチポイント書込みアドレスにより表示されたレジスタ場所で前記 記憶ユニット内に前記ウォッチポイント代替的次プログラムカウンタを書込む段 階; を含み、ここで − 前記ウォッチポイント代替次プログラムカウンタには、前記制御転送命令が ジャンプ&リンク命令である場合予測された標的フェッチプログラムカウンタが 含まれ、前記ウォッチポイント代替次プログラムカウンタには、前記制御転送命 令が予測された分岐命令である場合に代替的分岐方向のためのフェッチプログラ ムカウンタが含まれ、さらに、 − 前記ウォッチポイント命令タイプ信号に基づいて別々のアドレス可能な記憶 場所の中に前記ジャンプ&リンク命令又は前記分岐命令の各々のための前記代替 次プログラムカウンタを記憶する段階、 を含んで成る方法。 175.前記制御転送命令が、分岐命令、ジャンプ&リンク命令及びそれらの組 合せから成るグループの中から選択され、 − 前記制御転送命令発行済み信号には、ジャンプ&リンク信号成 分WP_JMPL を含むDO_WTCHPNT信号が含まれており; − 前記代替次プログラムカウンタがWP_ANPC 信号を含み; − 前記チェックポイント書込み有効化信号がMAKE_CHKPNT 信号を含み; − 前記チェックポイント書込みアドレス信号がNEXT_CHKPNT 信号を含み; − 前記データ構造中の前記記憶場所がTARGET_RAM内に位置づけられ − 前記分岐命令のための情報項目にはさらに、XCC により左右される分岐、IC C により左右される分岐、FCC により左右される分岐又はジャンプリンク命令と して命令を指定する分岐タイプフィールド;CONDフィールド;及び条件コードタ グフィールドが含まれている、 請求項174 に記載の方法。 176.− 各々の実行結果ソースユニットから有効化制御信号を受理する段階 ; − 各々の実行結果ソースユニットから結果データタイプ信号を受理する段階; − 前記実行結果ソースユニットのいずれから前記結果データが受理されること になるかを表示するセレクトソース信号及び前記結果データが予想される現行ク ロックサイクルとの関係における時刻の表示を受理する段階; − 予め定められた規則に従って前記有効化制御信号、前記結果データタイプ信 号及び前記セレクトソース信号の受理に応答してソース選択信号を生成する段階 ; − 前記実行結果ソースユニットから実行結果データ信号を監視する段階; − 前記到着する実行結果データ及び前記ソース選択信号に応えて前選択された ソースから実行結果データを捕捉する段階;及び − 前記プロセッサ内のデータ記憶装置内に評価のため前記捕捉された実行結果 データを記憶する段階; をさらに含んで成り かくして予め定められた命令が待っている結果データは、複数の実行結果ソー スユニットから同時に捕捉される請求項174 に記載の方法。 177.投機的に発行された命令の誤予測が発生した後、命令再フェッチのため の適正な再フェッチ命令アドレスを送る段階をさらに含んで成り、この送信段階 には、 − 前記命令の実行に先立ち各々の投機的に発行された予測された命令について 、この予測された命令のための代替的実行経路を指定する代替的経路プログラム 命令アドレス及び、前記CPU 内のメモリユニット内に規定された標的アドレス構 造内のウォッチポイント要素の中で前記予測された実行を左右する予測情報を、 同時に記憶する段階; − 各々の前記予測された命令の実行の完了時点で、中に実行前代替経路及び予 測情報が記憶されている前記命令に対応するウォッチポイント要素番号及び前記 記憶された条件値及び代替的プログラム命令アドレスとの比較のための計算上の 適正な条件値を識別する、命令実行完了状況を表示する信号を同時に生成する段 階; − 前記記憶された実行前代替経路及び予測情報と各単一命令のための前記生成 された計算上の条件データ値とを比較し、予測上の条件データがこれらの命令の いずれかについての前記計算上の適正な条件データ値と一致する場合には一致信 号を生成すること及び、分岐命令又はジャンプ&リンク命令が正しく予測された か又は予測が 正しくないかを評価し各々の誤予測命令について誤予測信号を生成することを含 めて、各単一命令についての予測を同時に評価する段階; − 前記誤予測からの前記CPU の回復を優先順位づけし、予め定められた優先順 位規則に基づいて特定の高優先順の誤予測を選択する段階; − 前記特定の高優先順誤予測命令に付随するチェックポイントを識別し、前記 特定の誤予測命令から前記プロセッサを回復するためのCPU バックアップ信号を 生成する段階; − 前記標的アドレスデータ構造から前記特定の誤予測命令のための代替次プロ グラムカウンタを読取る段階;及び − 前記再フェッチされた命令に基づき前記CPU の実行を再開させるため発行ユ ニットに対して前記読取り代替次プログラムアドレスを送る段階、 が含まれている請求項174 に記載の方法。 178.命令フェッチコンポーネントを含む命令発行ユニット、命令実行ユニッ ト、データ記憶ユニットをもつ中央処理ユニットの中で、投機的に発行された命 令の誤予測が発生した後命令フェッチのために適正なフェッチアドレスを送るた めの方法において − 前記命令の実行に先立ち各々の投機的に発行された予測された命令について 、この予測された命令のための代替的実行経路を指定する代替的経路プログラム 命令アドレス及び、前記CPU 内のメモリユニット内に規定された標的アドレス構 造内のウォッチポイント要素の中で前記予測された実行を左右する予測情報を、 同時に記憶する段階; − 各々の前記予測された命令の実行の完了時点で、中に実行前代替経路情報及 び予測情報が記憶されている前記命令に対応するウォ ッチポイント要素番号及び前記記憶された条件値及び代替的プログラム命令アド レスとの比較のための計算上の適正な条件値を識別する、命令実行完了状況を表 示する信号を同時に生成する段階; − 前記記憶された実行前代替経路及び予測情報と前記投機的発行済み命令のた めの前記生成された計算上の条件データ値とを比較し、予測上の条件データがこ れらの命令のいずれかについての前記計算上の適正な条件データ値と一致する場 合には一致信号を生成すること及び、分岐命令又はジャンプ&リンク命令が正し く予測されたか又は予測が正しくないかを評価し各々の誤予測命令について誤予 測信号を生成することを含めて、前記投機的発行済み命令についての前記記憶さ れた予測情報を同時に評価する段階; − 全ての誤予測された命令の中から1つの誤予測された命令を選択する段階; − 前記選択された誤予測命令に付随するウォッチポイントを識別する段階; − 前記データ構造内に前記選択されたウォッチポイント番号を指標づけするこ とによって前記標的アドレスデータ構造から前記選択された誤予測命令のための 代替的プログラムカウンタアドレスを読取る段階;及び − 望ましい命令シーケンス経路に沿ってCPU 命令を開始するべく命令再フェッ チのために前記命令発行ユニットに対し前記読取られた代替次プログラムカウン タアドレスを送る段階、 を含んで成る方法。 179.前記1つの誤予測された命令を選択する段階には、前記CPU 内で発生す る誤予測を優先順位づけし予め定められた優先順位規則に基づいて高優先順位の 誤予測を選択する段階が含まれている請求項178 に記載の方法。 180.前記投機的に発行された命令は、予測された制御転送命令、予測された 分岐命令、ジャンプ&リンク命令及びそれらの組合せから成るグループの中から 選択される、請求項178 に記載の方法。 181.前記同時記憶、同時生成及び同時評価の段階には、それぞれ、同じCPU クロックサイクル内での記憶、生成及び評価段階が含まれている、請求項178 に 記載の方法。 182.命令フェッチコンポーネントを含む命令発行ユニット、命令実行ユニッ ト、データ記憶ユニットをもつ中央処理ユニットの中で、投機的に発行された命 令の誤予測が発生した後命令フェッチのために適正なフェッチアドレスを送るた めの方法において − 予測された分岐命令の発行に応えて、前記CPU 内のメモリユニットのデータ 構造内に前記分岐命令に付随するウォッチポイント要素内のウォッチポイント代 替プログラムカウンタデータを記憶する段階であって、ここで前記ウォッチポイ ント代替プログラムカウンタデータは、予測がとられた場合には分岐の次のアド レスであり、予測がとられない場合には分岐−標的アドレスであるような段階; − 予測されたジャンプ&リンク命令の発行に応えて、前記CPU 内のメモリユニ ットのデータ構造内に前記ジャンプ&リンク命令に付随するウォッチポイント要 素の中の予測されたジャンプ&リンク標的アドレスを記憶する段階; − 前記発行された命令にウォッチポイント要素を割振るべく各々の分岐及びジ ャンプ&リンク命令のためのウォッチポイント有効信号が発行されることを表明 する段階; − 前記ウォッチポイント有効信号の表明に応えて、そのウォッチポイント活動 中ベクトル信号内で識別されたチェックポイント番号を使用する予測された命令 が発行されまだ解決されていないことを表示するべくこのウォッチポイント活動 中ベクトル信号を表明する 段階; − 各々のジャンプ&リンク命令について、適正なジャンプ&リンク標的アドレ スを計算すること、アドレス生成ユニットがジャンプ&リンク命令の実行を終え た時点でアドレス生成ユニットジャンプ&リンク命令完了信号を表明すること、 ジャンプ&リンク命令のチェックポイント番号を指定するアドレス生成ユニット ジャンプ&リンクチェックポイント識別信号を生成すること、及び計算された適 正なジャンプ&リンク命令標的アドレスを指定するアドレス生成ユニットジャン プ&リンクデータ信号を生成することを含めた、前記ジャンプ&リンクの実行を 完了する段階; − 各々の予測された分岐命令について、分岐方向を左右する条件コード値を計 算すること及び前記評価準備完了信号の受信に応答して、ウォッチポイント番号 に対応する評価条件コード信号が利用可能になった時点でこの評価条件コード信 号を捕捉することを含む、前記分岐命令の実行を完了する段階; − ・*前記アドレス生成ユニットジャンプ&リンクチェックポイント識別信号 によって標識づけされた前記標的アドレスメモリユニット内の記憶場所の中の予 測されたジャンプ&リンクアドレスを読取ること; *前記予測されたジャンプ&リンクアドレスを前記計算されたジャンプ&リ ンクアドレスと比較して比較結果を生成すること; *予測されたアドレス及び計算された適正なアドレスが同じである場合にジ ャンプ&リンク一致信号を生成すること; *前記ウォッチポイント要素内に記憶された前記ウォッチポイントジャンプ &リンク有効化信号と前記ジャンプ&リンク一致信号を比較すること;及び *前記信号が一致し、前記ウォッチポイントがジャンプ&リン ク命令について形成されジャンプ&リンク命令が適正に予測されたことを表わし ている場合、ジャンプ&リンク真出力信号を生成することによって、ジャンプ& リンク命令が適切に予測されたか否かを決定する段階; ・*条件コードセレクト論理ユニットからの条件コード評価信号を受理するこ と; *命令に付随するウォッチポイント記憶要素内に記憶されたウォッチポイン ト条件信号を含むウォッチポイントレジスタ内に記憶されたウォッチポイントを 読取ること; *分岐を発行するときに作成された予測が適正であるか否かを評価するべく 予め定められた規則に基づき前記分岐命令に対応するウォッチポイント要素内に 記憶された前記ウォッチポイント条件データと前記評価条件コード信号を比較す ること;及び *前記条件コード評価信号及び前記ウォッチ条件信号である場合、前記特定 のウォッチポイントのための分岐真信号を生成すること により、分岐命令が適正に予測されたか否かを決定する段階、及び ・前記分岐真信号とジャンプ&リンク真信号の論理和をとり、前記分岐真又は ジャンプ&リンク信号が真として表明された場合に評価真信号を生成する段階; を含み、分岐命令又はジャンプ&リンク命令のいずれか(ただしその両方ではな い)に対する前記ウォッチポイント割振りが、同じウォッチポイント要素のため の前記分岐真信号及び前記ジャンプ&リンク信号の並行表明を制限している、評 価論理ユニット内の各々の単一命令のための予測を評価する段階; − 前記ジャンプ&リンク命令完了信号がCPU サイクル中に各命令について表明 された後評価準備完了信号を生成する段階; − 前記評価真信号のいずれかが表明されて、誤信号が検出されたことを表わし た場合、複数の評価真論理ユニットの各々から生成された前記評価真信号からの 誤予測を検出する命令ウォッチポイント誤予測信号を生成し、前記CPU 内の精確 な状態を維持するために前記誤予測信号を精確な状態のユニットに伝達する段階 ; − 生成された全てのウォッチポイント誤予測済み信号を優先順位づけし、予め 定められた優先順位づけ規則に従ってCPU 回復のための前記誤予測の1つを識別 する段階; − 精確な状態のユニットの中で、誤予測された分岐命令又は誤予測されたジャ ンプ&リンク命令のいずれかによる誤予測から回復する目的でCPU がバックアッ プされることになるチェックポイント実行済み命令を識別するバックアップチェ ックポイント信号を生成する段階; − 精確な状態のユニットの中で、バックアップが誤予測されたジャンプ&リン ク命令のせいである場合にのみジャンプ&リンク誤予測信号を生成する段階; − 前記識別された予測、誤予測のタイプ及びウォッチポイント/チェックポイ ント番号を含む因子に基づいて前記メモリ記憶装置内の1つの場所を選定する段 階であって; ・ウォッチポイント誤予測信号の受理に応えて前記精確な状態のユニット内で プロセッサバックアップ開始信号を生成する段階; ・誤予測がCPU 内で発生したこと及びCPU が、1つの代替プログラムカウンタ 値へとプログラムカウンタをリセットすることを含むより早期の状態までバック アップされるべきであることを表わすプロセッサバックアップ開始信号を受理す る段階; ・前記メモリ記憶領域内へチェックポイント/ウォッチポイント番号を識別す る指標を提供するバックアップチェックポイント信号 を受理し、前記指標を用いて命令フェッチのための適正な分岐アドレス又は適正 なジャンプ&リンクアドレスを記憶する場所の内容を読取る段階; ・前記メモリ記憶領域内へウォッチポイント及びチェックポイント番号の形で 指標を提供するアドレス生成ユニットチェックポイント信号を受理し、この指標 を用いて代替次プログラムカウンタを記憶する場所の内容を読取る段階; ・誤予測の検出に応えてCPU バックアップが要求された時点で、前記精確な状 態のユニットからバックアップ作成制御信号を受理する段階; ・アドレス生成ユニットがジャンプ&リンク命令の実行を終えた時点でアドレ ス生成ユニットジャンプ&リンク命令完了信号を受理する段階; ・前記メモリ記憶領域内の特定のウォッチポイント要素を特定するアドレス読 取り指標として前記精確な状態ユニット又は前記アドレス生成ユニットチェック ポイント入力信号から前記バックアップチェックポイントの1つを選択するべく マルチプレクサに対して制御セレクタ入力信号として前記ジャンプ&リンク完了 信号及びバックアップ作成信号を印加する段階; ・誤予測された命令が、バックアップ作成及びジャンプ&リンク制御信号によ って表示される通りにジャンプ&リンク命令の分岐命令であるか否かに基づいて 、読取るべきメモリ記憶場所アドレスを選択する段階;を含む段階;及び − 前記誤予測から回復するべく新しい命令をフェッチするため代替次プログラ ムカウンタを選択する段階であって、 ・前記誤予測がジャンプ&リンク命令誤予測である場合にジャンプ&リンク誤 予測信号を生成する段階; ・マルチプレクサ選択制御信号、複数のマルチプレクサ入力信号及び前記制御 信号によって選択された入力信号のための1つのマルチプレクサ出力をもつマル チプレクサに対して前記誤予測信号を印加する段階; ・前記マルチプレクサ選択制御信号が、誤予測が誤予測された分岐命令である ことを表わす第1の状態を有する場合に、マルチプレクサ出力信号として前記デ ータ記憶装置内の前記データ構造内の前記記憶場所の中に記憶された代替次プロ グラムカウンタを含む第1のマルチプレクサ入力信号を選択する段階; ・前記マルチプレクサ信号が、誤予測が発生したこと及び誤予測が誤予測され たジャンプ&リンク命令であることを表わす第2の状態を有する場合に、マルチ プレクサ出力信号として計算上のジャンプ&リンクアドレスを含む第2・マルチ プレクサ入力信号を選択する段階;を含む段階; − ・ジャンプ&リンク命令のための予測された標的フェッチプログラムカウン タ又は予測された分岐命令のための代替分岐方向についてのフェッチプログラム カウンタを含む読取り代替プログラムカウンタアドレス信号を生成する段階;及 び ・フェッチユニットが適正なアドレスから命令を再フェッチすることができる ように命令フェッチユニットに対して前記選択されたマルチプレクサ出力の中の 前記読取られた代替プログラムアドレス信号を送る段階; を含む、前記CPU の実行を再開する段階; を含んで成る方法。 183.− 前記再フェッチアドレスが、分岐命令アドレス及びジャンプ&リン ク命令アドレスから成るグループの中から選択され; − 前記ジャンプ&リンク命令完了信号がFXAGU_JMPL信号を含み; − 前記チェックポイント識別信号がFXAGU_CHKPNT信号を含み; − 前記アドレス生成ユニットデータ信号がFXAGU_DATA信号を含み; − 前記ジャンプ&リンク一致信号がJMPL_MATCH信号を含み; − 前記ウォッチポイントジャンプ&リンク有効化信号がWP_JMPL 信号を含み; − 前記ジャンプ&リンク真(信号)がJMPL_TRUE 信号を含み; − 前記条件コード評価信号がEVAL_CC 信号を含み; − 前記ウォッチポイントデータが、WP_COND,WP_XCC,WP_ICC 、及びWP_FCCデ ータ信号を含み; − 前記ウォッチポイント条件信号がWP_COND 信号を含み; − 前記分岐真信号がBR_TRUE 信号を含み; − 前記評価真信号がEVAL_TRUE 信号を含み; − 前記評価準備完了信号がEVAL_READY信号を含み; − 前記ウォッチポイント活動中信号がWP_ACTIVE_VEC 信号を含み; − 前記ウォッチポイント誤予測信号がWP_MISPRED_VEC信号を含み; − 前記バックアップチェックポイント信号がBACKUP_CHKPNT 信号を含み; − 前記ジャンプ&リンク誤予測信号がMIS_PRED信号を含み; − 前記プロセッサバックアップ開始信号がDO_BACKUP 信号を含み; − 前記バックアップチェックポイントがBACKUP_CHKPNT 信号を含み; − 前記バックアップ実施制御信号がMAKE_BACKUP 信号を含み; − 前記生成ユニットジャンプ&リンク命令完了信号がFXAGU_JMPL 信号を含み; − 前記選択されたバックアップチェックポイント信号がBACKUP_CHKPNT 信号を 含み; − 前記アドレス生成(前記)ユニットチェックポイントがFXAGU CHKPNT信号を 含み; − 前記ジャンプ&リンク誤予測信号がMISPRED 信号を含み; − 前記代替次プログラムカウンタがWR_ANPC 信号を含み; − 前記計算上のジャンプ&リンクアドレスがFXAGU_DATA信号を含み; − 前記代替プログラムカウンタアドレスがRD_ANPC 信号を含み; − 前記ジャンプ&リンク一致信号を前記ウォッチポイントジャンプ&リンク有 効化信号が、前記信号のブール論理積をとる段階を含んでいる、 請求項182 に記載の方法。 184.バックアップポイントでの命令の後に逐次的に発生する命令のためのチ ェックポイントをキルするべく前記誤予測からの回復中に誤予測の識別に応えて 命令キル信号を表明する段階; − 前記キル信号の表明に応えて、ウォッチポイント活動中信号及びウォッチポ イント誤予測信号の生成を抑制することにより各々のキルされた命令に対応する ウォッチポイント要素を非活動化する段階 をさらに含んで成る請求項182 に記載の方法。 185.前記ウォッチポイント活動中ベクトル信号及びウォッチポイント誤予測 信号は、各ウォッチポイントについてのウォッチポイント活動中情報を同時に記 憶し同じ信号内で伝送できるように前記CPU 内の割振り可能なチェックポイント の数に対応するベクトルビット位置の数を各々有するマルチホットベクトルとし て各々別々に コード化されている請求項182 に記載の方法。 186.比較時間を短縮するようにデータ順方向送りバスタグと条件コードデー タを比較するための方法において、 − ・現行の発行ウインドウ信号内の現行のリネーム済み条件コードを各々の データ順方向送りバスタグに比較し; ・先行するサイクルの条件コードタグを各々のデータ順方向送りバスタグと比 較すること、 によって、先行するサイクル内の条件コードタグと現行の発行ウインドウサイク ル内の現在リネームされている条件コードタグの間でデータ順方向送りタグの比 較を分離する段階を含み、 − 先行するサイクル中の前記条件コードタグ及び現行の発行ウインドウ内の現 在リネームされている条件コードタグとの前記データ順方向送りバスタグの前記 比較は、単一の非分割作業で行なわれた場合に比べさらに迅速に行なわれるよう な方法。 187.現在リネームされている条件コードの前記比較を行なう前にラッチ回路 内で現行の発行ウインドウ信号中の現在リネームされている条件コードタグをラ ッチングする段階をさらに含んで成り、 各々のデータ順方向送りバスタグに対し現行送信ウインドウサイクル内の現在 リネームされている条件コードタグを比較する前記段階には、各々のデータ順方 向送りバスタグに対する前記ラッチされた信号の比較が含まれ、かくしてタイミ ングクリティカリティが削除される請求項186 に記載の方法。 188.命令発行ユニット、条件コードレジスタリネームユニットを含む論理及 び物理レジスタをリネームするためのレジスタリネームユニット、複数の実行ユ ニット及び、前記実行ユニットの各々が中央処理ユニットのその他のコンポーネ ントまで実行結果データを伝達するためのデータ順方向送りバスを有する中央処 理ユニットに おいて、前記複数の実行ユニットの各々からの実行結果データを同時に捕捉する ための方法において、 − 各々の前記実行ユニットについて、先行するCPU クロックサイクル内でリネ ームされた条件コードレジスタを識別するものの現行サイクルでリネームされた 条件コードレジスタを識別しない前記条件コードレジスタリネームユニットから 受理した早期条件コードレジスタタグ信号を、現行のCPU クロックサイクル内で 前記実行ユニットから到着した条件コードレジスタタグ信号成分を含む有効な実 行結果データ信号と比較し、前記比較動作が、前記条件コードレジスタタグ信号 と前記条件コードレジスタタグ信号成分を含む前記有効な実行結果データ信号の 間での一致を識別した場合に、各々の前記実行ユニットについての条件コードタ グ現行一致信号を生成する段階;及び − 各々の前記実行ユニットについて、現行サイクル内でリネームされた条件コ ードレジスタを識別することを含め先行するCPU クロックサイクル内でリネーム された条件コードレジスタを各々識別する先行サイクル中に前記条件コードレジ スタリネームユニットから受理した複数の晩期条件コードレジスタタグ信号を、 現行のCPU クロックサイクル内で前記実行ユニットから到着した条件コードレジ スタタグ信号成分を含む有効な実行結果データ信号と比較し、前記比較動作が、 前記条件コードレジスタタグ信号の1つと前記複数の条件コードレジスタタグ信 号成分の1つの間での一致を識別した場合に、前記複数の条件コードレジスタタ グ信号のうちのいずれが一致したかを識別する各々の前記実行ユニットについて の現行条件コードタグのアレイ−晩期−一致信号を生成する段階、 を含んで成る方法。 189.− 前記早期条件コードレジスタタグ信号がCC_TAG_C信号 を含み; − 前記条件コードレジスタリネームユニットがFSR/CCRFRNユニットを含み; − 前記有効な実行結果データ信号は、FXU_XICC_TAG_F信号、FXAGU_XICC_TAG_F 信号及びFPU_FCC_TAG_F 信号から成るグループの中から選択されており; − 前記実行ユニットは、固定小数点実行ユニット、固定小数点/アドレス生成 ユニット及び浮動小数点ユニットから成るグループの中から選択され − 前記条件コードタグ現行一致信号は、FXU_CURR_MATCH信号、FXAGU_CURR_MAT CH信号及びFPU_CURR_MATCH信号から成るグループの中から選択され; − 前記複数の晩期条件コードレジスタタグ信号が、複数のCC_TAG_RENAMED信号 を含んでおり; − 前記条件コードレジスタリネームユニットがFSR/CCRFRNユニットを含み; − 前記現行の条件コードタグアレイ晩期一致信号が、各々の前記実行ユニット について、FXU_ARRAY_LATE_MATCH信号、FXAGU_ARRAY_LATE_MATCH信号及びFPU_AR RAY_LATE_MATCH信号から成るグループの中から選択される請求項188 に記載の方 法。 190.− 前記晩期条件コードレジスタタグを記憶するため前記CPU の中で複 数のアドレス可能なタグ記憶要素を含む晩期条件コードタグアレイデータ記憶装 置を提供する段階; − 前記条件コードレジスタリネームユニットから前記晩期条件コードレジスタ タグ信号成分を受理する段階; − 前記条件コードレジスタリネームユニットから条件コードリネーム済み信号 を受理する段階; − 前記命令発行ユニットからのウォッチポイント実施信号から誘導されたウォ ッチポイント番号識別成分信号を含む予測実施信号を受理する段階; − 前記条件コードリネーム済み信号及び前記予測実施信号が両方共表明された 場合に、前記タグアレイデータ記憶装置内への前記条件コードレジスタタグ信号 の各々の書込みのアドレスを制御するためのタグアレイ書込み有効化信号を生成 する段階; − 前記タグアレイ書込み有効化信号が表明された場合に前記ウォッチポイント 識別番号により識別された前記アドレス可能なタグ記憶要素のうちの1つの中に 前記受理した晩期条件コードレジスタタグ信号成分を記憶する段階;及び − 前記比較動作において使用するため各々の前記実行ユニットについて各々の 前記タグ記憶要素から各々の前記記憶された条件コードレジスタタグを読取る段 階、 を含んで成る請求項188 に記載の方法。 191.前記条件コードリネーム済み信号が、CC_RENAMED信号を含み; − 前記予測実施信号がDO_PREDICTVEC信号を含み、ウォッチポイント実施信号 がDO_WTCHPT 信号を含み; − 前記タグアレイ書込み有効化信号がARRAY_WRITE_VEC 信号を含んでいる、 請求項190 に記載の方法。 192.中央処理ユニット内で複数の命令の実行結果を同時に監視するための装 置において、 − 命令を発行するための発行ユニット; − 命令を実行するための実行ユニット; − 前記中央処理ユニット内で前記実行ユニットからその他のユニ ットまで実行結果を伝達するデータ順方向分配バス; − プロセッサ内で前記データ順方向分配の上で前記実行ユニットからの実行結 果信号を受理するべく結合されたウォッチポイントデータを記憶するため複数の ウォッチポイントレジスタを有するウォッチポイントユニット; − 前記命令が発行された時点で各々の投機的発行済みの予測された命令につい てウォッチポイントデータを記憶するためのウォッチポイントレジスタを割振る ための手段; − 前記ウォッチポイントユニット内で前記データ順方向送りバス上で伝達され た実行結果信号を監視するための手段; − 記実行結果信号及び予め定められた規則に基づいて予め定められた事象の発 生を検出するための手段; − 予測された投機的発行済み命令について予め定められた事象が検出された時 点で、その他のCPU ユニットにそれを知らせるための手段; − 特定の命令について前記ウォッチポイントレジスタ内に記憶された前記ウォ ッチポイントデータとこの特定の命令に関する前記データ順方向送りバスの上で 到着した前記結果信号と比較して、この特定の命令が投機的に発行された条件が 正しく予測されたか否かを評価するための手段; − 前記予測が適正でなかったことを前記評価が表示した場合に、前記ウォッチ ポイント要素を割振り解除し実行を続行するための割振り解除手段; − 前記予測が誤っていたということを前記評価が表示した場合に誤予測を補正 するべく既知の条件に対応する命令を再フェッチ発行できるように、前記発行ユ ニットに対し新しいアドレスを供給するための手段; − 前記誤予測を取消すことができるように、前記中央処理ユニットをより早期 の状態までバックアップするための手段; − 前記再フェッチされた命令に基づいて適正な命令ストリーム内の命令につい て実行を開始するための手段;及び − 前記実行が完了した時点で前記ウォッチポイント要素を割振り解除するため の手段 を含んで成る装置。 193.中央処理ユニット(CPU)内で複数の実行結果生成ユニットから予め定め られた命令が待っている結果データを同時に捕捉するための装置において、 − 各々の結果データソースから有効化制御信号を受理するための手段; − 各々の結果データソースから結果データタイプ信号を受理するための手段; − 前記実行結果生成ユニットのうちのいずれから前記結果データが受理される ことになるかを表示するセレクトソース信号及び前記結果データが予想されてい る現行クロックサイクルとの関係における時刻の表示を受理するための手段; − 予め定められた規則に従って前記有効化制御信号、前記結果データタイプ信 号及び前記セレクトソース信号に応えてソース選択信号を生成するための手段; − 前記実行結果生成ユニットから実行結果データ信号を監視するための手段; − 前記到着した実行結果データ及び前記ソース選択信号に応えて前記選択され たソースから実行結果データを捕捉するための手段; 及び − 前記プロセッサ内のデータ記憶装置内での評価のため前記捕捉 された実行結果データを記憶するための手段、 を含んで成る装置。 194.前記捕捉用手段には、 − 各々有効化制御信号入力ポート、結果データタイプ信号入力ポート、及びセ レクトソース信号入力ポートを内含する第1の複数の論理AND ゲート; − 同じ結果データタイプ依存性をもつ前記複数のAND ゲートからの選択された 出力と組合せるため、前記第1の複数の論理AND ゲートのうちの選択されたもの に結合された第2の複数の論理ORゲート; − 前記第1の複数の論理AND ゲート及び前記論理ORゲートのうちの選択された ゲートに結合された結果データソース入力ポートとセレクト条件コードタイプ入 力ポートを各々有する第3の複数の論理AND ゲート; − 各々前記第3の複数の論理ORゲートの出力を受理するための複数の入力ポー トを有する多入力論理ORゲート; − 条件コードデータを含む捕捉された実行結果データを含む前記多入力ORゲー トの出力信号をラッチングするためのラッチ回路、 が含まれている請求項193 に記載の装置。 195.中央処理ユニットの中で分岐命令及びジャンプ&リンク命令を含む予め 定められた命令タイプについての複数の誤予測信号を同時に生成するための装置 において、 − 分岐命令を監視するためにウォッチポイントが形成されつつあることを表示 する第1の状態又はジャンプ&リンク命令のためのウォッチポイントが形成され つつあることを表示する第2の状態を有するウォッチポイントジャンプ&リンク 有効化信号を受理するための手段; − ・条件コードセレクト論理回路からの評価条件コード信号を受理するための 手段; ・ウォッチポイント記憶要素からのウォッチポイント条件信号を受理するため の手段; ・ウォッチポイント記憶要素からの条件コードタイプ制御信号を受理するため の手段; ・各々の実行結果生成ユニットからの有効化信号を受理するための手段; ・分岐のための条件が正しく予測されたか否かを評価するため各々の前記実行 結果生成ユニットについて前記有効化制御信号の表明された状態を含む予め定め られた条件コード評価規則に従って前記ウォッチポイント条件信号と前記評価条 件コード信号を比較するための手段; ・前記分岐が正しく予測されていた場合分岐真信号を生成するための手段; を含む、複数の発行済み分岐命令について誤予測信号を同時に生成するための手 段;及び − ・プログラムカウンタデータを記憶するための複数の記憶場所を有する標的 データ構造を規定するための手段; ・ジャンプ&リンク命令が発行された時点で前記記憶場所のうちの1つに代替 次プログラムカウンタを書込み、前記記憶された代替次プログラムカウンタを前 記命令と結びつけるための手段; ・実行結果生成ユニット内で計算上の次プログラムカウンタ値を計算するため の手段; ・前記実行結果生成ユニットから前記計算上の次プログラムカウンタを受理す るための手段; ・前記記憶場所からの前記命令に付随する前記記憶された代替次 プログラムカウンタを読取るための手段; ・予め定められたプログラムカウンタ比較規則に従って前記計算上の次プログ ラムカウンタと前記代替次プログラムカウンタを比較するための手段; ・前記比較が真として評価した場合、ジャンプ&リンク一致信号を生成するた めの手段及び ・前記ジャンプ&リンク一致信号と前記ウォッチポイントジャンプ&リンク信 号の両方の真の状態に応えて、ジャンプ&リンク真信号を生成するための手段、 を含む、複数の発行済みジャンプ&リンク命令の各々についてジャンプ&リンク 誤予測信号を同時に生成するための手段; − 前記ジャンプ&リンク一致信号が表明されるか又は前記分岐真信号が表明さ れるかのいずれかに応えて、評価真信号を生成するための手段; − 少なくとも1つのソース選択信号の受理又は評価有効化信号の受理に応えて 評価準備完了信号を生成するための手段であって、この評価有効化信号はウォッ チポイント活動中信号、ウォッチポイントジャンプ&リンク有効化信号、ジャン プ&リンク命令実行完了信号及びジャンプ&リンク命令チェックポイント番号信 号の表明に応じて生成されるような手段;及び − 前記評価準備完了信号及び前記評価真信号の受理に応えて命令誤予測信号を 生成するための手段 を含んで成る装置。 196.中央処理ユニット内の単一の共用記憶ユニット内の共通のデータ構造の 中に代替分岐アドレス及び予測されたジャンプ&リンクアドレスを同時に記憶す るための装置において、 − 各々の発行された制御転送命令についてそれが発行された時点 で発行ユニットから制御転送命令発行済み信号を生成するための手段; − 分岐命令又はジャンプ&リンク命令として命令を識別するべく前記制御転送 命令発行済み信号内でウォッチポイントジャンプ&リンク信号を提供するための 手段; − プログラム制御論理ユニットにより計算された標的フェッチプログラムカウ ンタを特定する代替次プログラムカウンタを計算するための手段; − 前記データ構造内の記憶場所の中に代替分岐アドレスを記憶するためのチェ ックポイント書込み有効化制御信号及びチェックポイントアドレスを生成するた めの手段であって、この書込み有効化制御信号がチェックポイントを作成すると きに表明されるような手段; − チェックポイント書込みアドレスにおいて記憶ユニット内にウォッチポイン ト代替次プログラムカウンタを書込むための手段; − 予測された分岐及びジャンプ&リンク命令の命令復号の間に代替次プログラ ムカウンタを決定するための手段であって、ジャンプ&リンク命令のためにウォ ッチポイントユニットに対して送られた前記ウォッチポイント代替次プログラム カウンタには、予測された標的フェッチプログラムカウンタが含まれ、予測され た分岐命令のためにウォッチポイントユニットに対し送られた前記ウォッチポイ ント代替次プログラムカウンタには、代替分岐方向のためのフェッチプログラム カウンタが含まれているような手段; − 発行された命令が分岐命令であるかジャンプ&リンク命令であるかを決定す ることを含め、フィールド選択及び書込み論理ユニット内で前記制御転送命令発 行済み信号を復号して前記信号内の選択された情報フィールドの内容を決定する ための手段であって、前記 JMPLフィールド内の第1の予め定められた状態は、命令がジャンプ−リンク命令 であることを表示し、前記JMPLフィールド内の第2の状態は前記命令が分岐命令 であることを表示しているような手段;及び − 前記制御転送命令発行済み信号内に存在する前記徴候に基づき別々のアドレ ス可能な記憶場所内に各々の分岐命令又はジャンプ&リンク命令について1つの 情報項目を記憶するための手段; を含んで成り、前記命令が分岐命令である場合、前記分岐命令のための前記情報 項目が代替次プログラムカウンタを含み、前記命令がジャンプ&リンク命令であ る場合、ジャンプ&リンク命令のための前記情報項目が予測された標的アドレス を含んでいる、装置。 197.発行された命令の誤予測が発生した後、命令再フェッチのための適正な 再フェッチ命令アドレスを送るための方法において − 前記命令の実行に先立ち各々の投機的に発行された予測された命令について 、この予測された命令のための代替的実行経路を指定する代替的経路プログラム 命令アドレス及び、前記CPU 内のメモリユニット内に規定された標的アドレス構 造内のウォッチポイント要素の中で前記予測された実行を左右する予測情報を、 同時に記憶するための手段; − 各々の前記予測された命令の実行の完了時点で、中に実行前代替経路及び予 測情報が記憶されている前記命令に対応するウォッチポイント要素番号及び前記 記憶された条件値及び代替的プログラム命令アドレスとの比較のための計算上の 適正な条件値を識別する、命令実行完了状況を表示する信号を同時に生成するた めの手段; − 前記記憶された実行前代替経路及び予測情報と各単一命令のための前記生成 された計算上の条件データ値とを比較することを含め各単一命令についての予測 を同時に評価し、分岐命令又はジャンプ &リンク命令が正しく予測されたか又は予測が正しくないかを評価し各々の誤予 測命令について誤予測信号を生成するための手段; − 前記誤予測からの前記CPU の回復を優先順位づけし、予め定められた優先順 位規則に基づいて特定の高優先順の誤予測を選択するための手段; − 前記特定の高優先順誤予測命令に付随するチェックポイントを識別し、前記 特定の誤予測命令から前記プロセッサを回復するためのCPU バックアップ信号を 生成するための手段; − 前記標的アドレスデータ構造から前記特定の誤予測命令のための代替次プロ グラムカウンタを読取るための手段;及び − 前記再フェッチされた命令に基づき前記CPU の実行を再開させるため発行ユ ニットに対して前記読取り代替次プログラムアドレスを送る段階、 を含んで成る装置: 198.− 前記同時に記憶するための手段には、前記ウォッチポイント要素へ の書込み及びここからの読取りのためのウォッチポイント読取り/書込み制御論 理及び複数のウォッチポイント記憶要素が含まれており、これらのウォッチポイ ント要素は命令発行ユニットに結合され、各々の予測された命令のための命令復 号情報を受理し; − 前記命令実行完了信号を同時に生成するための手段には、データ順方向送り バスからの条件コードデータを含む実行結果データを捕捉するため複数の条件コ ード捕捉ユニットに結合された少なくとも1つの命令実行ユニットが含まれてお り; − 前記同時に評価するための手段には、予測された命令を左右する予測された 及び実際の条件データを評価するための複数の評価論理ユニットが含まれており ; − 前記優先順位づけ用手段には、実行状況を含む命令状況をトラッキングし予 め定められた規則に基づき多重の誤予測及び実行障害から前記高優先順位の誤予 測を選択するための精確な状態のユニットが含まれており; − 前記識別のための手段には、標的アドレスランダムアクセスメモリユニット 、このメモリに付随する周辺制御論理;制御入力信号を有するマルチプレクサ回 路及びバックアップチェックポイント入力そして分岐命令に付随するアドレスか 又は前記標的アドレスランダムアクセスユニットからのジャンプ&リンク命令に 付随するアドレスのいずれかをゲートするためのアドレス生成ユニットチェック ポイント信号を含む複数の選択可能な信号入力端が含まれており; − 前記実行前条件を実際の実行条件結果と比較するためのジャンプ&リンク一 致論理が含まれており; − 前記送信用手段には、標的アドレスランダムアクセスメモリ入力信号及び実 行結果データ入力信号を有するマルチプレクサ回路及び複数のプログラムカウン タの中から適切な命令プログラムカウンタアドレスを出力するため前記精確な状 態ユニットに結合された制御信号入力端を含む代替プログラムカウンタ出力論理 が含まれている; 請求項197 に記載の装置。 199.中央処理ユニット内での比較時間を短縮するようにデータ順方向送りバ スタグと条件コードデータを比較するための装置において、 − ・現行の発行ウインドウ信号内の現行のリネーム済み条件コードを各々のデ ータ順方向送りバスタグに比較するための手段; ・先行するサイクルの条件コードタグを各々のデータ順方向送りバスタグと比 較するための手段; によって、先行するサイクル内の条件コードタグと現行の発行ウインドウサイク ル内の現在リネームされている条件コードタグの間でデータ順方向送りタグの比 較を分離する手段を含み、 − 先行するサイクル中の前記条件コードタグ及び現行の発行ウインドウ内の現 在リネームされている条件コードタグとの前記データ順方向送りバスタグの前記 比較は、単一の非分割作業で行なわれた場合に比べさらに迅速に行なわれるよう な装置。 200.中央処理ユニット内で複数の命令の実行結果を同時に監視するための装 置において、 − 命令を発行するための発行ユニット; − 命令を実行するための実行ユニット; − 前記中央処理ユニット内で前記実行ユニットからその他のユニットまで実行 結果を伝達するデータ順方向分配バス; − プロセッサ内で前記データ順方向分配の上で前記実行ユニットからの実行結 果信号を受理するべく結合されたウォッチポイントデータを記憶するため複数の ウォッチポイントレジスタを有するウォッチポイントユニット; − 前記命令が発行された時点で各々の投機的発行済みの予測された命令につい てウォッチポイントデータを記憶するためのウォッチポイントレジスタを割振る ための手段; − 前記ウォッチポイントユニット内で前記データ順方向送りバス上で伝達され た実行結果信号を監視するための手段; − 前記実行結果信号及び予め定められた規則に基づいて予め定められた事象の 発生を検出するための手段; − 予測された投機的発行済み命令について予め定められた事象が検出された時 点でその他のCPU ユニットにそれを知らせるための手段; − 特定の命令について前記ウォッチポイントレジスタ内に記憶された前記ウォ ッチポイントデータとこの特定の命令に関する前記データ順方向送りバスの上で 到着した前記結果信号と比較して、この特定の命令が投機的に発行された条件が 正しく予測されたか否かを評価するための手段; − 前記予測が適正でなかったことを前記評価が表示した場合に、前記ウォッチ ポイント要素を割振り解除し実行を続行するための割振り解除手段; − 前記予測が誤っていたということを前記評価が表示した場合に誤予測を補正 するべく既知の条件に対応する命令を再フェッチし発行できるように、前記発行 ユニットに対し新しいアドレスを供給するための手段; − 前記誤予測を取消すことができるように、前記中央処理ユニットをより早期 の状態までバックアップするための手段; − 前記再フェッチされた命令に基づいて適正な命令ストリーム内の命令につい て実行を開始するための手段;及び − 前記実行が完了した時点で前記ウォッチポイント要素を割振り解除するため の手段; − 各々の結果データソースから有効化制御信号を受理するための手段; − 各々の結果データソースから結果データタイプ信号を受理するための手段; − 前記実行結果生成ユニットのうちのいずれから前記結果データが受理される ことになるかを表示するセレクトソース信号及び前記結果データが予想されてい る現行クロックサイクルとの関係における時刻の表示を受理するための手段; − 予め定められた規則に従って前記有効化制御信号、前記結果デ ータタイプ信号及び前記セレクトソース信号に応えてソース選択信号を生成する ための手段; − 前記実行結果生成ユニットから実行結果データ信号を監視するための手段; − 前記到着した実行結果データ及び前記ソース選択信号に応えて前記選択され たソースから実行結果データを捕捉するための手段;及び − 前記プロセッサ内のデータ記憶装置内での評価のため前記捕捉された実行結 果データを記憶するための手段、 − 分岐命令を監視するためにウォッチポイントが形成されつつあることを表示 する第1の状態又はジャンプ&リンク命令のためのウォッチポイントが形成され つつあることを表示する第2の状態を有するウォッチポイントジャンプ&リンク 有効化信号を受理するための手段; − ・条件コードセレクト論理回路からの評価条件コード信号を受理するための 手段; ・ウォッチポイント記憶要素からのウォッチポイント条件信号を受理するため の手段; ・ウォッチポイント記憶要素からの条件コードタイプ制御信号を受理するため の手段; ・各々の実行結果生成ユニットからの有効化信号を受理するための手段; ・分岐のための条件が正しく予測されたか否かを評価するため各々の前記実行 結果生成ユニットについて前記有効化制御信号の表明された状態を含む予め定め られた条件コード評価規則に従って前記ウォッチポイント条件信号と前記評価条 件コード信号を比較するための手段; ・前記分岐が正しく予測されていた場合、分岐真信号を生成するための手段; を含む、複数の発行済み分岐命令について誤予測信号を同時に生成するための手 段;及び − ・プログラムカウンタデータを記憶するための複数の記憶場所を有する標的 データ構造を規定するための手段; ・ジャンプ&リンク命令が発行された時点で前記記憶場所のうちの1つに代替 次プログラムカウンタを書込み、前記記憶された代替次プログラムカウンタを前 記命令と結びつけるための手段; ・実行結果生成ユニット内で計算上の次プログラムカウンタ値を計算するため の手段; ・前記実行結果生成ユニットから前記計算上の次プログラムカウンタを受理す るための手段; ・前記記憶場所からの前記命令に付随する前記記憶された代替次プログラムカ ウンタを読取るための手段; ・予め定められたプログラムカウンタ比較規則に従って前記計算上の次プログ ラムカウンタと前記代替次プログラムカウンタを比較するための手段; ・前記比較が真として評価した場合、ジャンプ&リンク一致信号を生成するた めの手段;及び ・前記ジャンプ&リンク一致信号と前記ウォッチポイントジャンプ&リンク信 号の両方の真の状態に応えて、ジャンプ&リンク真信号を生成するための手段、 を含む、複数の発行済みジャンプ&リンク命令の各々についてジャンプ&リンク 誤予測信号を同時に生成するための手段; − 前記ジャンプ&リンク一致信号が表明されるか又は前記分岐真信号が表明さ れるかのいずれかに応えて、評価真信号を生成するた めの手段; − 少なくとも1つのソース選択信号の受理又は評価有効化信号の受理に応えて 評価準備完了信号を生成するための手段であって、この評価有効化信号はウォッ チポイント活動中信号、ウォッチポイントジャンプ&リンク有効化信号、ジャン プ&リンク命令実行完了信号及びジャンプ&リンク命令チェックポイント番号信 号の表明に応じて生成されるような手段;及び − 前記評価準備完了信号及び前記評価真信号の受理に応えて命令誤予測信号を 生成するための手段 − 各々の発行された制御転送命令についてそれが発行された時点で発行ユニッ トから制御転送命令発行済み信号を生成するための手段; − 分岐命令又はジャンプ&リンク命令として命令を識別するべく前記制御転送 命令発行済み信号内でウォッチポイントジャンプ&リンク信号を提供するための 手段; − プログラム制御論理ユニットにより計算された標的フェッチプログラムカウ ンタを特定する代替次プログラムカウンタを計算するための手段; − 前記データ構造内の記憶場所の中に代替分岐アドレスを記憶するためチェッ クポイント書込み有効化制御信号及びチェックポイントアドレスを生成するため の手段であって、この書込み有効化制御信号がチェックポイントを作成するとき に表明されるような手段; − チェックポイント書込みアドレスにおいて記憶ユニット内にウォッチポイン ト代替次プログラムカウンタを書込むための手段; − 予測された分岐及びジャンプ&リンク命令の命令復号の間に代替次プログラ ムカウンタを決定するための手段であって、ジャンプ&リンク命令のためにウォ ッチポイントユニットに対して送られた 前記ウォッチポイント代替次プログラムカウンタには、予測された標的フェッチ プログラムカウンタが含まれ、予測された分岐命令のためにウォッチポイントユ ニットに対し送られた前記ウォッチポイント代替次プログラムカウンタには、代 替分岐方向のためのフェッチプログラムカウンタが含まれているような手段; − 発行された命令が分岐命令であるかジャンプ&リンク命令であるかを決定す ることを含め、フィールド選択及び書込み論理ユニット内で前記制御転送命令発 行済み信号を復号して前記信号内の選択された情報フィールドの内容を決定する ための手段であって、前記JMPLフィールド内の第1の予め定められた状態は、命 令がジャンプ−リンク命令であることを表示し、前記JMPLフィールド内の第2の 状態は前記命令が分岐命令であることを表示しているような手段;及び − 前記制御転送命令発行済み信号内に存在する前記徴候に基づき別々のアドレ ス可能な記憶場所内に各々の分岐命令又はジャンプ&リンク命令について1つの 情報項目を記憶するための手段であって、前記命令が分岐命令である場合、前記 分岐命令のための前記情報項目が代替次プログラムカウンタを含み、前記命令が ジャンプ&リンク命令である場合、ジャンプ&リンク命令のための前記情報項目 が予測された標的アドレスを含んでいるような手段; − 前記命令の実行に先立ち各々の投機的に発行された予測された命令について 、この予測された命令のための代替的実行経路を指定する代替的経路プログラム 命令アドレス及び、前記CPU 内のメモリユニット内に規定された標的アドレス構 造内のウォッチポイント要素の中で前記予測された実行を左右する予測情報を、 同時に記憶するための手段; − 各々の前記予測された命令の実行の完了時点で、中に実行前代 替経路及び予測情報が記憶されている前記命令に対応するウォッチポイント要素 番号及び前記記憶された条件値及び代替的プログラム命令アドレスとの比較のた めの計算上の適正な条件値を識別する、命令実行完了状況を表示する信号を同時 に生成するための手段; − 各々の前記命令についての前記生成された計算上の条件データ値と前記記憶 された実行前代替経路及び予測情報を比較し、予測された条件データが前記命令 のいずれかについて前記計算上の正しい条件データ値と一致する場合に一致信号 を生成するための手段; − 分岐命令又はジャンプ&リンク命令が正しく予測されたか又は予測が正しく ないかを評価し各々の誤予測命令について誤予測信号を生成することを含め、各 々の単一命令についての予測を同時に評価するための手段; − 前記誤予測からの前記CPU の回復を優先順序づけし、予め定められた優先順 位規則に基づいて特定の高優先順の誤予測を選択するための手段; − 前記特定の高優先順誤予測命令に付随するチェックポイントを識別し、前記 特定の誤予測命令から前記プロセッサを回復するためのCPU バックアップ信号を 生成するための手段; − 前記標的アドレスデータ構造から前記特定の誤予測命令のための代替次プロ グラムカウンタを読取るための手段;及び − 前記再フェッチされた命令に基づき前記CPU の実行を再開させるため発行ユ ニットに対して前記読取り代替次プログラムアドレスを送る段階、 − ・現行の発行ウインドウ信号内の現行の再命令済み条件コードを各々のデー タ順方向送りバスタグに比較するための手段; ・先行するサイクルの条件コードタグを各々のデータ順方向送りバスタグと比 較するための手段; によって、先行するサイクル内の条件コードタグと現行の発行ウインドウサイク ル内の現在リネームされている条件コードタグの間でデータ順方向送りタグの比 較を分離する手段であって 先行するサイクル中の前記条件コードタグ及び現行の発行ウインドウ内の現在 リネームされている条件コードタグとの前記データ順方向送りバスタグの前記比 較は、単一の非分割作業で行なわれた場合に比べさらに迅速に行なわれるような 手段; を含んで成る装置。 201.プログラム制御順out-of-order実行データプロセッサにおいて、 − 実行のためプログラム制御順で命令を発行するための発行ユニットであって 、発行される命令には、浮動小数点及び非浮動小数点命令が含まれている、ユニ ット; − 少なくとも浮動小数点命令が、実行手段によってプログラム制御順外でout- of-order実行され得る、発行済み命令を実行するための実行手段; − ・発行済み命令の各々が記憶要素の1つに対応し、各々の記憶要素が浮動小 数点命令識別フィールドと浮動小数点トラップタイプフィールドを有する、記憶 要素を含むデータ記憶構造; ・各々の発行済み命令について対応する発行済み命令が浮動小数点命令である か否かを表示する対応する記憶要素の浮動小数点命令識別フィールド内へのデー タを書込むための第1の論理; ・実行中に浮動小数点実行トラップの予め規定された複数のタイプのうちの対 応する1つのタイプを結果としてもたらすことになる単数又は複数の浮動小数点 実行例外をひきおこす各々の発行された浮動小数点命令について、結果としても たらされることになる浮動小数点実行トラップの予め定められたタイプのうちの 1つを識別す る対応する記憶要素の浮動小数点トラップタイプフィールド内へのデータを書込 むための第2の論理 を含む浮動小数点例外ユニット; − 実行中実行例外をひき起こさず、プログラム制御順でそれに先行する全ての 発行済み命令が退去されてしまっている各々の発行済み命令を退去させるための 精確状態手段; を含み、 予め定められた実行例外のうちの第1のものが発行済み命令によってひき起こ された時点で、実行手段は発行済み命令の実行を続行し、精確状態手段は、退去 され得ない発行済み命令に遭遇するまで発行済み命令を退去させ続けることによ り実行トラップ順序付けに着手し、退去され得ない発行済み命令は、(a)第1 の実行例外をひき起こした発行済み命令、及び(b)第1の実行例外をひき起こ した発行済み命令よりも早期に発行されたものの第1の実行例外よりも晩期に発 生する第2の実行例外をひき起こした発行済み命令のうちの1つであり、さらに − 浮動小数点トラップタイプフィールドをもつ浮動小数点状況レジスタ;及び − 退去され得ない命令に対応する記憶要素の浮動小数点識別フィールド内のデ ータが、この退去され得ない命令が浮動小数点命令であることを表示した時点で 、退去され得ない命令に対応する記憶要素の浮動小数点トラップタイプフィール ド内のデータにより識別された浮動小数点実行トラップのタイプを識別する浮動 小数点状況レジスタの浮動小数点トラップタイプフィールドに対するデータを書 込むための書込み手段; を含んで成るプロセッサ。 202.− データ記憶構造の各々の記憶要素が、現行の浮動小数 点実行例外フィールドも有しており; − 浮動小数点例外ユニットにはさらに、浮動小数点実行トラップの予め定めら れたタイプのうちの特定の1つのタイプを結果としてもたらすことになる複数の 特定の浮動小数点実行例外のうちの単数又は複数の例外を実行中にひき起こす各 々の発行済み浮動小数点命令について、ひき起こされた特定の浮動小数点実行例 外のうちの単数又は複数のものを識別する対応する記憶要素の現行の浮動小数点 実行例外フィールドに対するデータを書込むための第3の論理がさらに含まれ; − 浮動小数点状況レジスタが同様に、現行の浮動小数点実行例外フィールドも 有しており、さらに − 書込み手段は同様に、(a)退去され得ない発行済み命令に対応する記憶要 素の浮動小数点命令識別フィールド内のデータが、退去され得ない発行済み命令 が浮動小数点命令であることを表示した時点、及び(b)退去され得ない発行済 み命令に対応する記憶要素の浮動小数点トラップタイプフィールド内のデータが 、予め定められた浮動小数点実行トラップタイプのうちの特定の1つを識別した 時点で、退去され得ない発行済み命令に対応する記憶要素の現行の浮動小数点実 行例外フィールド内のデータによって識別された特定の浮動小数点実行例外のう ちの単数又は複数のものを識別する浮動小数点状況レジスタの現行の浮動点実行 例外フィールドに対するデータを書込む、 請求項201 に記載のプログラム制御順out-of-order実行データプロセッサ。 203.− 第4の論理は同様に、実行中に特定の浮動小数点実行例外のいずれ もひき起こさない各々の発行済み浮動小数点命令について、特定の浮動小数点実 行例外のいずれもひき起こされていない ことを表示する対応する記憶要素の現行の浮動小数点実行例外フィールドに対す るデータを書込み; − 浮動小数点状況レジスタには、蓄積した例外フィールド及びトラップ有効化 マスクフィールドが含まれ、トラップ有効化マスクフィールドが特定の浮動小数 点実行例外のあらゆる組合せの選択的マスキングを提供し; − 精確状態ユニットは同様に、実行中単数又は複数のマスキングされた特定の 浮動小数点実行例外をひき起こすもののその他の浮動小数点実行例外を全くひき 起こさず、かつプログラム制御順でそれに先行する全ての発行済み命令が退去さ せられてしまっている各々の発行済み浮動小数点命令も退去させ; − 命令が退去させられる各々の現行のマシンサイクルの間、書込み手段は、( a)対応する記憶要素の浮動小数点命令識別フィールド内のデータが浮動小数点 命令でありかつ現行のマシンサイクル内で退去されつつある発行済み命令に対応 する記憶要素の現行の浮動小数点実行例外フィールド内のデータによって識別さ れた特定の浮動小数点実行例外、及び(b)浮動小数点状況レジスタの蓄積した 浮動小数点実行例外フィールド内の現行データによって識別された特定の浮動小 数点実行例外の蓄積を表わす浮動小数点状況レジスタの蓄積された例外フィール ドに対するデータを書込み; − 命令が退去させられる各々の現行のマシンサイクルの間に、書込み手段は同 様に対応する記憶要素の浮動小数点命令識別フィールド内のデータがそれが浮動 小数点命令であることを表示している対応する現行のマシンサイクルにおいて退 去させられた最後に発行された命令に対応する記憶要素の現行の浮動小数点実行 例外フィールド内のデータによって識別された特定の浮動小数点実行例外を識別 する浮動小数点状況レジスタの現行の例外フィールドに対するデー タを書込み; − 命令が退去させられる各々の現行のマシンサイクルの間に、書込み手段はさ らに、対応する記憶要素の浮動小数点命令識別フィールド内のデータがそれが浮 動小数点命令であることを表わしている対応する現行のマシンサイクルにおいて 退去させられた最後に発行された命令について、予め定められた浮動小数点実行 トラップタイプのいずれも結果としてもたらされないであろうということを表示 する浮動小数点状況レジスタのトラップタイプフィールドに対するデータを書込 む 請求項202 に記載のプログラム制御順out-of-order実行データプロセッサ。 204.発行された命令にはSPARC 命令が含まれており; − 浮動小数点状況レジスタが、SPARC 浮動小数点状況レジスタを含んでおり、 − 浮動小数点実行トラップの予め定められたタイプのうちの特定の1つのタイ プがIEEE_754_ 例外トラップを含み、 − 特定の浮動小数点実行例外には、IEEE_754例外が含まれる、 請求項203 に記載のプログラム順out-of-order実行のデータプロセッサ。 205.プログラム制御順out-of-order実行データプロセッサ内で浮動小数点例 外を検出する方法において、 − 実行のためプログラム制御順で命令を発行する段階であって発行される命令 には、浮動小数点及び非浮動小数点命令が含まれている段階; − 少なくとも浮動小数点命令が、実行手段によってプログラム制御順外でout- of-order実行され得るように発行済み命令を実行する段階; − ・発行済み命令の各々が記憶要素の1つに対応し、各々の記憶要素が浮動小 数点命令識別フィールドと浮動小数点トラップタイプフィールドを有する、記憶 要素を含むデータ記憶構造を提供する段階; ・各々の発行済み命令について対応する発行済み命令が浮動小数点命令である か否かを表示する対応する記憶要素の浮動小数点命令識別フィールド内へのデー タを書込む段階; ・実行中に浮動小数点実行トラップの予め規定された複数のタイプのうちの対 応する1つのタイプを結果としてもたらすことになる単数又は複数の浮動小数点 実行例外をひき起こす各々の発行された浮動小数点命令について、結果としても たらされることになる浮動小数点実行トラップの予め定められたタイプのうちの 1つを識別する対応する記憶要素の浮動小数点トラップタイプフィールド内への データを書込む段階; − 実行中実行例外をひき起こさず、プログラム制御順でそれに先行する全ての 発行済み命令が退去されてしまっている各々の発行済み命令を退去させる段階; − 予め定められた実行例外のうちの第1のものが発行済み命令によってひき起 こされた時点で、発行済み命令の実行を続行し、退去され得ない発行済み命令に 遭遇するまで発行済み命令を退去させ続けることにより実行トラップ順序付けに 着手し、ここで退去され得ない発行済み命令は、(a)第1の実行例外をひき起 こした発行済み命令、及び(b)第1の実行例外をひき起こした発行済み命令よ りも早期に発行されたものの第1の実行例外よりも晩期に発生する第2の実行例 外をひき起こした発行済み命令のうちの1つである段階; − 浮動小数点トラップタイプフィールドをもつ浮動小数点状況レ ジスタを提供する段階;及び − 退去され得ない命令に対応する記憶要素の浮動小数点識別フィールド内のデ ータか、この退去され得ない命令が浮動小数点命令であることを表示した時点で 、退去され得ない命令に対応する記憶要素の浮動小数点トラップタイプフィール ド内のデータにより識別された浮動小数点実行トラップのタイプを識別する浮動 小数点状況レジスタの浮動小数点トラップタイプフィールドに対するデータを書 込む段階; を含んで成る方法。 206.− データ記憶構造の各々の記憶要素が、現行の浮動小数点実行例外フ ィールドも有しており; − 浮動小数点状況レジスタが同様に、現行の浮動小数点実行例外フィールドも 有しており、さらに − 浮動小数点実行トラップの予め定められたタイプのうちの特定の1つのタイ プを結果としてもたらすことになる複数の特定の浮動小数点実行例外のうちの単 数又は複数の例外を実行中にひき起こす各々の発行済み浮動小数点命令について 、ひき起こされた特定の浮動小数点実行例外のうちの単数又は複数のものを識別 する対応する記憶要素の現行の浮動小数点実行例外フィールドに対するデータを 書込む段階; − (a)退去され得ない発行済み命令に対応する記憶要素の浮動小数点命令識 別フィールド内のデータが、退去され得ない発行済み命令が浮動小数点命令であ ることを表示した時点、及び(b)退去され得ない発行済み命令に対応する記憶 要素の浮動小数点トラップタイプフィールド内のデータが、予め定められた浮動 小数点実行トラップタイプのうちの特定の1つを識別した時点で、退去され得な い発行済み命令に対応する記憶要素の現行の浮動小数点実行例外フ ィールド内のデータによって識別された特定の浮動小数点実行例外のうちの単数 又は複数のものを識別する浮動小数点状況レジスタの現行の浮動点実行例外フィ ールドに対するデータを書込む段階; を含んで成る請求項205 に記載の方法。 207.− 実行中に特定の浮動小数点実行例外のいずれもひき起こさない各々 の発行済み浮動小数点命令について、特定の浮動小数点実行例外のいずれもひき 起こされていないことを表示する対応する記憶要素の現行の浮動小数点実行例外 フィールドに対するデータを書込む段階を含み; − ここで浮動小数点状況レジスタには、蓄積した例外フィールド及びトラップ 有効化マスクフィールドが含まれ、トラップ有効化マスクフィールドが特定の浮 動小数点実行例外のあらゆる組合せの選択的マスキングを提供し;さらに − 実行中単数又は複数のマスキングされた特定の浮動小数点実行例外をひき起 こすもののその他の浮動小数点実行例外を全くひき起こさず、かつプログラム制 御順でそれに先行する全ての発行済み命令が退去させられてしまっている各々の 発行済み浮動小数点命令を退去させる段階; − 命令が退去させられる各々の現行のマシンサイクルの間、(a)対応する記 憶要素の浮動小数点命令識別フィールド内のデータが浮動小数点命令であり、か つ現行のマシンサイクル内で退去されつつある発行済み命令に対応する記憶要素 の現行の浮動小数点実行例外フィールド内のデータによって識別された特定の浮 動小数点実行例外、及び(b)浮動小数点状況レジスタの蓄積した浮動小数点実 行例外フィールド内の現行データによって識別された特定の浮動小数点実行例外 の蓄積を表わす浮動小数点状況レジスタの蓄積された例外フィールドに対するデ ータを書込む段階; − 命令が退去させられる各々の現行のマシンサイクルの間に、対応する記憶要 素の浮動小数点命令識別フィールド内のデータがそれが浮動小数点命令であるこ とを表示している対応する現行のマシンサイクルにおいて退去させられた最後に 発行された命令に対応する記憶要素の現行の浮動小数点実行例外フィールド内の データによって識別された特定の浮動小数点実行例外を識別する浮動小数点状況 レジスタの現行の例外フィールドに対するデータを書込む段階; − 命令が退去させられる各々の現行のマシンサイクルの間に、対応する記憶要 素の浮動小数点命令識別フィールド内のデータがそれが浮動小数点命令であるこ とを表わしている対応する現行のマシンサイクルにおいて退去させられた最後に 発行された命令について、予め定められた浮動小数点実行トラップタイプのいず れも結果としてもたらされないであろうということを表示する浮動小数点状況レ ジスタのトラップタイプフィールドに対するデータを書込む段階; をさらに含んで成る請求項206 に記載の方法。 208.発行された命令にはSPARC 命令が含まれており; − 浮動小数点状況レジスタが、SPARC 浮動小数点状況レジスタを含んでおり、 − 浮動小数点実行トラップの予め定められたタイプのうちの特定の1つのタイ プがIEEE_754_ 例外トラップを含み、 − 特定の浮動小数点実行例外には、IEEE_754例外が含まれる、 請求項207 に記載の方法。 209.投機的にトラップを取りこれから復帰するためのデータプロセッサにお いて、各々対応するトラップレベルを有するネストされたトラップを取るため予 め定められた数のトラップレベルを支持するデータプロセッサであって、 − チェックポイントを形成するための手段; − チェックポイントにバックアップするための手段; − トラップを取るための手段; − トラップから復帰するための手段; − トラップが取られる度毎のデータプロセッサの状態を規定する内容をもつレ ジスタ − ・トラップレベルより多い数のトラップスタック記憶エントリを有するトラ ップスタックデータ記憶構造; ・トラップレベルのうちの1つにマッピングするため現在利用可能なトラップ スタック記憶エントリの現行の利用可能性リストを維持し、トラップがとられる 毎にトラップレベルのうちの対応するものにマッピングするため現在利用可能な トラップスタック記憶エントリのうちの次のものを識別するフリーリストユニッ ト; ・とられた各々のトラップについて、現在利用可能なトラップスタック記憶エ ントリのうちの次のものに対しレジスタの内容を書込む読取り/書込み論理; ・トラップスタック記憶エントリのうちの1つに対する各トラップレベルの現 行のマッピングを維持し、トラップがとられる毎に、トラップスタック記憶エン トリのうちの1つに対する対応するトラップレベルの古いマッピングを、現在利 用可能なトラップスタック記憶エントリのうちの次のエントリに対する対応する トラップレベルの現行マッピングと置換する、リネームマッピング論理; ・現行マッピングによりトラップレベルの1つに現在マッピングされていない もののトラップレベルの1つにマッピングするためには利用できない各々のトラ ップスタック記憶エントリの利用不能性リストを維持し、トラップがとられる毎 に、古いマッピングにより対応するトラップレベルにマッピングされたトラップ スタック記憶エントリを利用不能性リストに付加し、とったトラップをもはや取 消しできなくなる毎に、古いマッピングにより対応するトラップレベルにマッピ ングされたトラップスタック記憶エントリを利用不能性リストから除去する資源 再生ユニット;及び ・チェックポイント記憶エントリを含み、形成された各チェックポイントが対 応するチェックポイント記憶エントリをもち、さらに各々の形成されたチェック ポイントについて対応するチェックポイント記憶エントリ内でフリーリストユニ ットの現行の利用可能性フリーリスト及びリネームマッピング論理の現行のマッ ピングを記憶する、チェックポイント記憶ユニット、を含むトラップスタックユ ニット、 を含んで成り、 ・フリーリストは、現行の利用可能性リストに対し、利用不能性リストから除 去された各々のトラップスタック記憶エントリを付加し、 ・チェックポイントに対する各々のバックアップについて、リネームマッピン グ論理は、それが維持する現行マッピングを対応するチェックポイント記憶エン トリ内に記憶されているマッピングと置換し、フリーリストユニットはそれが維 持する現行の利用可能性リストを対応するチェックポイント記憶エントリ内に記 憶された利用可能性リストと置換する、 データプロセッサ。 210.− トラップがとられる毎に、レジスタのうちの特定のものの内容がま だ利用可能でない可能性があり; − データプロセッサにはさらに、レジスタのうちの特定のものの内容が利用可 能となった時点をトラップがとられる毎に決定するための捕捉論理が含まれてお り; − レジスタのうちの特定の1つのレジスタの内容が利用可能にな ったことを捕捉論理が決定した時点で、トラップがとられる毎に、この特定のレ ジスタの内容を利用可能なトラップスタック記憶エントリのうちの次のものに書 込む、 請求項209 に記載のトラップスタックユニット。 211.− 捕捉論理はレジスタのうちの特定のものの内容がまだ利用可能でな いかどうかをトラップからの復帰のための手段に対し表示し、 − トラップから復帰するための手段は、レジスタのうちの特定のレジスタの内 容が利用可能な状態になったことを捕捉論理が表示するまで、トラップから復帰 しない、 請求項210 に記載のデータプロセッサ。 212.− フリーリストユニットは、トラップをとるための手段に対して、ト ラップスタック記憶エントリのうちの少なくとも1つが、トラップレベルへのマ ッピングのために現在利用可能であるか否かを表示し、 − トラップをとるための手段は、トラップスタック記憶エントリのうちの少な くとも1つがトラップレベルへのマッピングのために利用可能であることをフリ ーリストが表示するまで、トラップをとらない、 請求項209 に記載のデータプロセッサ。 213.− 形成されたチェックポイントを退去する段階; をさらに含み、 − チェックポイント形成手段が、とられた各々のトラップについての対応する チェックポイントを形成し; − 資源再生ユニットには、資源再生記憶エントリを有する資源再生データ記憶 構造が含まれ、各々の形成されたチェックポイントは資源再生記憶エントリのう ちの1つに対応し、資源再生ユニットは 、とられた各々のトラップについて、対応するトラップのために形成されたチェ ックポイントに対応する資源再生記憶エントリ内にデータを記憶し、このデータ は、古いマッピングにより対応するトラップレベルに対しマッピングされたトラ ップスタック記憶エントリを識別し、資源再生ユニットは、チェックポイントを 退去させるための手段によって、とられたトラップのために形成されたチェック ポイントが退去される毎に、退去されたチェックポイントに対応する資源再生記 憶エントリ内に記憶されたデータによって識別されたトラップスタック記憶エン トリを識別し、 − フリーリストユニットは、チェックポイントを退去させるための手段によっ て、とられたトラップのために形成されたチェックポイントが退去される毎に、 資源再生ユニットによって識別された記憶エントリを、それが維持する現行の利 用可能性リストに対して付加する、 請求項209 に記載のデータプロセッサ。 214.対応するトラップレベルを各々有するネストされたトラップをとるため 予め定められた数のトラップレベルを支持するデータプロセッサの中で、投機的 にトラップをとりこれから復帰する方法であって、 − チェックポイントを形成する段階; − チェックポイントをバックアップする段階; − トラップを取る段階; − トラップから復帰する段階; − トラップが取られる度毎のデータプロセッサの状態を規定する内容をもつレ ジスタを提供する段階; − トラップレベルより多い数のトラップスタック記憶エントリを有するトラッ プスタックデータ記憶構造を提供する段階; − トラップレベルのうちの1つにマッピングするため現在利用可能なトラップ スタック記憶エントリの現行の利用可能性リストを維持し、トラップがとられる 毎にトラップレベルのうちの対応するものにマッピングするため現在利用可能な トラップスタック記憶エントリのうちの次のものを識別する段階; − とられた各々のトラップについて、現在利用可能なトラップスタック記憶エ ントリのうちの次のものに対しレジスタの内容を書込む段階; − トラップがとられる毎に、トラップスタック記憶エントリのうちの1つに対 する対応するトラップレベルの古いマッピングを、現在利用可能なトラップスタ ック記憶エントリのうちの次のエントリに対する対応するトラップレベルの現行 マッピングと置換することによってトラップスタック記憶エントリのうちの1つ に対する各トラップレベルの現行のマッピングを維持する段階; − トラップがとられる毎に、古いマッピングにより対応するトラップレベルに マッピングされたトラップスタック記憶エントリを利用不能性リストに付加し、 とったトラップをもはや取消しできなくなる毎に、古いマッピングにより対応す るトラップレベルにマッピングされたトラップスタック記憶エントリを利用不能 性リストから除去することによって、現行マッピングによりトラップレベルの1 つに現在マッピングされていないもののトラップレベルの1つにマッピングする ためには利用できない各々のトラップスタック記憶エントリの利用不能性リスト を維持する段階; − 現行の利用可能性リストに対し、利用不能性リストから除去された各々のト ラップスタック記憶エントリを付加する段階; − チェックポイント記憶エントリを含み、形成された各チェックポイントが対 応するチェックポイント記憶エントリをもつような、 チェックポイント記憶ユニットを提供する段階; − 各々の形成されたチェックポイントについて、対応するチェックポイント記 憶エントリ内で、現行のマッピング及び現行に利用可能性リストを記憶する段階 ; − チェックポイントに対する各々のバックアップについて、現行のマッピング を対応するチェックポイント記憶エントリ内に記憶されたマッピングと置換し、 現行の利用可能性リストを対応するチェックポイント記憶エントリ内に記憶され た利用可能性リストと置換する段階、 を含んで成る方法。 215.− トラップがとられる毎に、レジスタのうちの特定のものの内容がま だ利用可能でない可能性があり; − レジスタのうちの特定のものの内容が利用可能となった時点で、トラップが 取られる毎にこれを決定する段階; − レジスタのうちの特定の1つのレジスタの内容が利用可能になったことが決 定された時点で、トラップがとられる毎に、この特定のレジスタの内容を利用可 能なトラップスタック記憶エントリのうちの次のものに書込む段階、 を含んで成る請求項214 に記載の方法。 216.− レジスタのうちの特定のものの内容がまだ利用可能でないかどうか を表示する段階; − 表示段階中でレジスタのうちの特定のものの内容が利用可能になったことが 表示された時点で初めてトラップから復帰する段階; をさらに含んで成る請求項215 に記載の方法。 217.− トラップスタック記憶エントリのうちの少なくとも1つがトラップ レベルへのマッピングのために現在利用可能であるか否かを表示する段階; − トラップスタック記憶エントリのうちの少なくとも1つがトラップレベルへ のマッピングのために利用可能であることが、表示段階で表示された時点で初め てトラップをとる段階; をさらに含んで成る、請求項214 に記載の方法。 218.− 形成されたチェックポイントを退去する段階; をさらに含み、 − チェックポイント形成段階が、とられた各々のトラップについての対応する チェックポイントを形成する段階を含み; − 利用不能性リストを維持する段階には、 ・資源再生記憶エントリを有する資源再生データ記憶構造を提供し、ここで各 々の形成されたチェックポイントが資源再生記憶エントリのうちの1つに対応し 、資源再生ユニットは、記憶を行なうような段階; ・とられたトラップの各々について、対応するトラップのために形成されたチ ェックポイントに対応する資源再生記憶エントリ内にデータを記憶し、このデー タは、古いマッピングにより対応するトラップレベルに対しマッピングされたト ラップスタック記憶エントリを識別するような段階、 ・チェックポイントを退去させるための手段によって、とられたトラップのた めに形成されたチェックポイントが退去される毎に、退去されたチェックポイン トに対応する資源再生記憶エントリ内に記憶されたデータによって識別されたト ラップスタック記憶エントリを識別する段階; が含まれており、 − 付加段階には、チェックポイントを退去させるための手段によって、とられ たトラップのために形成されたチェックポイントが退去される毎に、資源再生ユ ニットフリーエントリによって識別され た記憶エントリを、それが維持する現行の利用可能性リストに対して付加する段 階が含まれている、 請求項214 に記載の方法。 219.命令を発行するための手段、命令を実行するための手段及びプロセッサ の中にデータを記憶するためのメモリ記憶装置を有するプロセッサの中で、プロ セッサ状態回復を要求する条件を検出した時点であらゆる命令境界でプロセッサ 内の先行するマシン状態を回復する方法において、 − 各々の発行済み命令について1つの命令シリアル番号を割振る段階; − マシン状態を変更する実行可能な命令の第1の予め定められたセットについ てのみ実行に先立って前記プロセッサ内のデータ記憶装置内で1つのチェックポ イント中にマシン状態情報を記憶する段階であって、ここでマシン状態を変える 実行可能な命令の前記予め定められたセットが、このプロセッサ内で実施された マシン状態を変化させる実行可能な命令の全てのセットよりも少ないような段階 ; − 前記障害をひき起こす命令を識別し、多数の例外又は障害が同時に発生した 場合には、障害又は例外をひき起こす順序的に最も早期のin-order命令を識別す る段階; − 前記最も早期の障害発生命令がチェックポイント実行された命令である場合 には、前記障害発生命令の実行に先立って記憶された前記マシン状態情報を回復 させプロセッサプログラムカウンタを前記障害発生命令の命令シリアル番号まで 減分させて前記先行するマシン状態を回復する段階; − マシン状態情報が記憶されてきた前記予め定められた実行可能な命令の1つ が順序的に前記障害発生命令と最後に発行された命令 の間に置かれている場合には、(i)まず最初に、順序的に前記障害発生命令の 後で前記障害発生命令に最も近いチェックポイントまで前記プロセッサをバック アップし、(ii)第2に、レジスタ資源を更新することによって前記障害命令の 実行の直前に存在した状態までプロセッサの状態を回復するように前記プロセッ サをバックステップさせ、(iii)前記障害発生命令の命令シリアル番号までプ ロセッサプログラムカウンタを減分させる段階; を含んで成る方法。 220.前記プロセッサ内のデータ記憶装置内にマシン状態情報を記憶する前記 段階には、レジスタデータ値を記憶するよりもむしろレジスタリネームマップを 記憶し、投機的に発行された予測された命令について代替次プログラムカウンタ を記憶する段階、が含まれている請求項219 に記載の方法。 221.前記実行可能な命令の第1の予め定められたセットが、 − 予測された分岐命令を含む予測されたプログラム制御転送命令; − 制御レジスタ値を修正する副作用をもち得る命令; − ジャンプ&リンクタイプの命令を含め、プログラムフロー変化を結果として もたらすタイプの命令; − チェックポイント実行済み状態の量を減少させるためそのタイプの全ての命 令よりも少ない数に制限され、そのタイプの非チェックポイント実行済み命令が 結果として制御されたプロセッサ同期化をもたらすことになるような、制御レジ スタ値を変更する副作用をもち得る命令を含めた、プロセッサ状態を修正するタ イプの選択された命令; − 予め定められた基準に従って頻繁に発生し、命令発行トラップを結果として もたらす命令;及び − 投機的トラップエントリを開始させるタイプの命令 から成るグループの中から選択された命令である請求項219 に記載の方法。 222.投機的命令シーケンスが関与する実行可能な命令の第2の予め定められ たセットのうちのいずれか1つを実行する前に前記プロセッサを同期化する段階 をさらに含む、請求項220 に記載の方法。 223.前記マシンの同期化段階には、 − 実行に先立ちマシンの同期化を要求する前記その他の命令の発行/実行を暫 定的に中断する段階; − 完遂し退去させるべき実行段において全ての保留命令を待ち、前記プロセッ サがマシン同期化に到着した後で前記その他の命令を発行/実行する段階、 が含まれている請求項222 に記載の方法。 224.命令を発行するための手段、命令を実行するための手段及びプロセッサ 内でデータを記憶するためのメモリ記憶装置を有するプロセッサの中で、命令境 界においてプロセッサ内でマシン状態を回復する方法において、 − 予め定められた複数の投機的発行済み予測命令の実行に先立って前記プロセ ッサの前記データ記憶装置内のレジスタに、予め定められたマシン状態パラメー タを記憶する段階; − 実行例外又は障害条件を検出するべく命令実行を監視する段階; − 前記実行例外又は障害条件を結果としてもたらす各命令の命令識別子をセー ブする段階; − 複数の実行済み命令が実行例外又は障害条件を結果としてもたらした場合に 、この複数の例外又は障害発生命令のいずれが順序的 により早期であるかを決定する段階; − 前記最も早期の例外又は障害発生識別子をエンドポイントとして用いてプロ セッサ中のプログラムカウンタをバックアップする段階; − 前記最も早期の障害発生命令がチェックポイント実行済み命令である場合に 、この障害発生命令の実行に先立ち前記チェックポイント内に記憶された前記マ シン状態情報を回復し、プロセッサプログラムカウンタを前記障害発生命令の命 令シリアル番号まで減分して前記先行するマシン状態を回復する段階;及び − マシン状態情報が記憶された前記予め定められた実行可能な命令の1つが、 順序的に前記障害発生命令と最後に発行された命令の間に置かれている場合には 、(i)まず最初に、前記障害発生命令の後で前記障害発生命令に最も近いチェ ックポイントまで前記プロセッサをバックアップし、(ii)第2にレジスタ資源 を更新することによって前記障害命令の実行の直前に存在した状態までプロセッ サの状態を回復するように前記プロセッサをバックアップさせ、(iii)前記障 害発生命令の命令シリアル番号までプロセッサプログラムカウンタを減分させる 段階; を含んで成る方法。 225.命令境界でマシン状態を回復する方法において; − 制御レジスタ値を修正する副作用をもち得る命令を含め、アーキテクチャ制 御レジスタを修正し得るあらゆる命令について、(i)前記マシンを同期化する こと又は(ii)制御レジスタ更新が必要でなくなるように前記命令の実行に先立 ってマシン状態を保存するべく前記プロセッサ内の前記データ記憶構造内で命令 チェックポイントを生成、記憶することのいずれかを選ぶ段階; − 任意の投機的命令シーケンスを含むプログラムカウンタ不連続 性を作り出すあらゆる命令について、プログラムカウンタ値がin-order命令シー ケンス内の命令に対応しかつ障害をひき起こした命令の再発行及び実行なく正し いプログラムカウンタを再構築できるように前記命令の実行に先立ってアーキテ クチャ及びマシン状態を保持するべく前記プロセッサ内のデータ記憶装置内で命 令チェックポイントを生成、記憶する段階; − 実行例外又は障害条件を検出するべく命令実行を監視する段階; − 前記実行例外又は障害条件を結果としてもたらす各命令の命令識別子をセー ブする段階; − 複数の実行済み命令が実行例外又は障害条件を結果としてもたらした場合に 、この複数の例外又は障害発生命令のいずれが順序的により早期であるかを決定 する段階; − 前記最も早期の例外又は障害発生識別子をエンドポイントとして用いてプロ セッサ中のプログラムカウンタをバックアップする段階; − 前記最も早期の障害発生命令がチェックポイント実行済み命令である場合に 、この障害発生命令の実行に先立ちチェックポイント内に記憶された前記マシン 状態情報を回復し、プロセッサプログラムカウンタを前記障害発生命令の命令シ リアル番号まで減分して前記先行するマシン状態を回復する段階;及び − マシン状態情報が記憶された前記予め定められた実行可能な命令の1つが、 順序的に前記障害発生命令と最後に発行された命令の間に置かれている場合には 、(i)まず最初に、前記障害発生命令の後で前記障害発生命令に最も近いチェ ックポイントまで前記プロセッサをバックアップし、(ii)第2にレジスタ資源 を更新することによって前記障害命令の実行の直前に存在した状態までプロセッ サの状態を回復するように前記プロセッサをバックアップさせ、(iii)前記障 害発生命令の命令シリアル番号までプロセッサプログラムカウンタを減分させる 段階; を含んで成る方法。 226.前記命令識別子は、前記命令が発行された時点で割当てられた前記命令 シリアル番号である請求項225 に記載の方法。 227.各々の前記チェックポイントには、レジスタリネームマップ及び制御; アーキテクチャ制御レジスタ値;ISN;アーキテクチャプログラムカウンタ(PC )及び次のアーキテクチャプログラムカウンタ(PC);及び代替次プログラムカ ウンタ(PC)が含まれている、請求項226 に記載の方法。 228.前記チェックポイントは、命令発行サイクル中に生成され割当てられる 請求項225 に記載の方法。 229.前記マシンの同期化段階には、 − 実行に先立ちマシンの同期化を要求する前記その他の命令の発行/実行を暫 定的に中断する段階; − 完遂し退去させるべき実行段において全ての保留命令を待ち、前記プロセッ サがマシン同期化に到着した後で前記その他の命令を発行/実行する段階、 が含まれている請求項225 に記載の方法。 230.実行に先立ちマシンの同期化を要求するために識別された前記その他の 命令が、命令の同期化を要求するための性能劣化及び投機度への依存度といった 考慮事項を含む性能−設計トレードオフに基づいて選択される、請求項225 に記 載の方法。 231.実行前の前記マシンの同期化を要求するものとしてマシン内のどの命令 を指定すべきかを選択する方法において、 − 前記命令のための投機度を決定する段階; − 命令の全てを投機的にとり扱うのに必要となる要求された論理を実施するよ う割振ることが望ましい最大回路部域を決定することを含む、実施することが望 ましい論理的複雑性の限界を決定する段階; − 各々のトレードオフパラメータについての重み係数を含め、予め定められた トレードオフパラメータを設定する段階; − 前記決定及び前記基準に基づいてその命令が同期化を要求するはずのもので あるか否かを決定するべく命令のための性能指標を計算する段階、 を含んで成る方法。 232.命令を発行するための手段、命令を実行するための手段及びプロセッサ の中にデータを記憶するためのメモリ記憶装置を有するプロセッサの中で、あら ゆる命令境界でプロセッサ内の先行するマシン状態を回復するための装置におい て − 各々の発行済み命令について1つの命令シリアル番号を割振るための手段; − マシン状態を変更する実行可能な命令の第1の予め定められたセットについ てのみ実行に先立って前記プロセッサ内のデータ記憶装置内で1つのチェックポ イント中にマシン状態情報を記憶する手段であって、ここでマシン状態を変える 実行可能な命令の前記予め定められたセットが、このプロセッサ内で実施された マシン状態を変化させる実行可能な命令の全てのセットよりも少ないような手段 ; − 前記障害をひき起こす命令を識別し、多数の例外又は障害が同時に発生した 場合には、障害又は例外をひき起こす順序的に最も早期のin-order命令を識別す る手段; − 前記最も早期の障害発生命令がチェックポイント実行された命 令である場合には、前記障害発生命令の実行に先立って記憶された前記マシン状 態情報を回復させプロセッサプログラムカウンタを前記障害発生命令の命令シリ アル番号まで減分させて前記先行するマシン状態を回復するための手段; − マシン状態情報が記憶された前記予め定められた実行可能な命令の1つが順 序的に前記障害発生命令と最後に発行された命令の間に置かれている場合に、よ り早期の状態まで前記プロセッサをバックトラッキングするための手段;を含み 、 − 前記バックトラッキング用手段には、順序的に前記障害発生命令の後に前記 故障発生命令に最も近いチェックポイントまで前記プロセッサをバックアップす るための手段が含まれ、しかも − レジスタ資源を更新することにより前記故障発生命令の実行の直前に存在し ていたプロセッサの状態を回復するべく、前記プロセッサをバックステップさせ るための手段;及び − 前記障害発生命令の命令シリアル番号までプロセッサプログラムカウンタを 減分させるための手段、 を含んで成る装置。 233.前記プロセッサ内の前記データ記憶装置内にマシン状態情報を記憶する ための前記手段には、前記マシン状態のためのレジスタリネームマップを記憶す るための手段が含まれている請求項232 に記載の装置。 234.前記レジスタリネームマップから前記状態を回復することによって前記 マシン状態を回復するための手段をさらに含んで成る請求項233 に記載の装置。 235.投機的命令シーケンスが関与する実行可能な命令の第2の予め定められ たセットのいずれか1つを実行する前に前記プロセッサを同期化するための手段 をさらに含んで成る請求項232 に記載の 方法。 236.前記マシンの同期化用手段には、 − 実行に先立ちマシンの同期化を要求する前記その他の命令の発行/実行を暫 定的に中断するための手段; − 以前に発行された命令が完遂され退去されてしまうまで実行段階中の全ての 保留命令の発行を遅延させるための手段; − 前記プロセッサがマシンの同期化に到達した後に前記同期化タイプの命令の 発行及び実行を開始するための手段; が含まれている請求項235 に記載の方法。 237.データを記憶するための内部データ記憶装置、命令を発行するための命 令発行ユニット手段、命令復号ユニット、命令を実行するための命令実行ユニッ ト手段及び命令発行及び実行スケジューラ、及び前記実行ユニットから処理ユニ ット内のその他のユニットまで実行結果を伝達するデータ順方向分配バスを有し 、外部メモリと交信し、対応するトラップレベルを各々有するネストされたトラ ップをとるため予め定められた数のトラップレベルを支持している、命令発行ユ ニットによって発行された命令を実行するための処理ユニット中で、命令実行効 率を増大するための方法において、 − プロセッサ内の投機的命令をトラッキングする段階; − 精確な例外モデルを維持する、ロード及びストア命令を含むメモリ参照命令 をトラッキングし攻撃的にスケジュールする段階; − 精確なアーキテクチャ状態を維持する一方でチェックポイント実行済みの状 態を低減させるべく前記処理ユニット内の命令をチェックポイント実行する段階 ; − 前記実行手段内に発生する例外について例外取り扱いを束縛する段階; − 複数の投機的発行済みの予測された命令の実行結果を同時に監 視する段階; − 浮動小数点例外を検出する段階; − 投機的にトラップをとりここから復帰する段階;及び − プロセッサ状態回復を要求する条件を検出した時点で任意の命令境界でプロ セッサ内の先行するマシン状態を回復する段階; を含んで成る方法。 238.プロセッサ内での投機的命令実行をトラッキングする前記段階には、 − データ記憶装置内のデータ構造を規定する段階; − 発行ユニットによって発行された各命令に対して識別タグを割当てる段階; − 割当てられたタグに基づいて各々の発行済み命令に対して、データ構造内に 記憶された1つの活動ビットを結びつける段階; − 命令が発行された時点で、データ構造内に活動ビットをセットする段階;及 び − 命令がエラー無しで実行を完了した時点でデータ構造内の活動ビットをクリ アする段階、 が含まれている、請求項237 に記載の方法。 239.精確な例外モデルを維持する、ロード及びストア命令を含むメモリ参照 命令をトラッキングし攻撃的にスケジュールする前記段階には、 − 前記プロセッサによる実行のための複数の命令を発行する段階; − 前記発行済みの複数の命令のうちのいずれが投機的に発行された命令である かを識別する段階; − 前記内部データ記憶装置内に、前記識別された投機的に発行された命令の各 々に付随する投機的実行インジケータを記憶する段階 ; − 前記発行済み命令のいずれが外部メモリを参照するかを決定する段階; − 前記内部データ記憶装置の中に前記決定されたメモリ参照命令に付随するメ モリ参照命令インジケータを記憶する段階; − 前記命令が発行された後前記複数の命令のうちの各々の命令の実行活動状況 を監視する段階; − 各々の発行済み命令について実行中に何らかのエラー条件が発生したか否か を確認し、実行中にエラーを経験した各々の命令のためにエラー状況を表示する エラー条件インジケータを生成する段階; − 前記発行済み命令の実行状況をトラッキングする段階;及び − その他の発行されたものの実行されていない命令の実行状況に基づいて、順 序的により早期の発行済みの非メモリ参照命令に先立ち、out-of-order実行のた めに前記決定されたメモリ参照命令のうちの特定の1つの命令をスケジュールす る段階であって、この実行状況には、投機的に発行された命令であるものとして の非メモリ参照命令の識別及び予め定められた実行完了状況を有するものとして の非メモリ参照命令の識別が含まれている、スケジュール段階、 が含まれている請求項238 に記載の方法。 240.前記CPU のための精確なアーキテクチャ状態を維持する一方でチェック ポイント実行済み状態を低減させるべく前記プロセッサ内の命令をチェックポイ ント実行する前記段階には、 − 前記CPU 内で実行されたときにアーキテクチャ状態を修正する可能性のある 命令を、その発行及び実行前に予め識別する段階; − 予め定められた選択基準に基づいて実行する前にアーキテクチャ状態をチェ ックポイント実行せずに特別な実行モードにて実行す るための、前記識別された命令のうちの特定の命令を予め選択する段階; − 実行に先立ち前記予め選択された特定の命令以外の前記識別された命令につ いてアーキテクチャ状態をチェックポイント実行する段階;及び − 前記特殊モードでの前記命令のうちの特定の命令の実行を含め、前記識別さ れた命令を実行する段階、 が含まれている請求項239 に記載の方法。 241.前記実行手段内で発生する例外について例外取扱いを束縛する前記段階 には、、 − タイムアウト条件を規定する特定された事象の発生回数について予め定めら れた閾値を設定し、この閾値を前記CPU 内の第1のデータ記憶装置の中に記憶す る段階、 − 前記CPU 内のカウンタ内で前記特定された事象の発生を計数し、前記発生回 数を前記CPU 内の第2のデータ記憶装置内に1つの計数として記憶する段階; − 前記計数を前記閾値と比較する段階; − 前記計数が前記タイムアウト条件以上である場合に、タイムアウトチェック ポイントを形成する段階、 が含まれている、請求項240 に記載の方法。 242.複数の投機的発行済みの予測された命令の実行結果を同時に監視する前 記段階には、 − プロセッサ内の前記データ順方向分配全体にわたり前記実行ユニットからの 実行結果信号を受理するように結合されたウォッチポイントデータを記憶するた めの複数のウォッチポイントレジスタをもつウォッチポイントユニットを提供す る段階; − 前記投機的に発行された予測された命令の各々について、制御 フロー転送方向を左右し投機的発行済み予測命令を投機的に発行する基礎となる 1つの条件の予測値を識別する予測条件データ結果を含むウォッチポイントデー タを記憶するために1つのウォッチポイントレジスタを割振る段階; − 前記データ順方向送りバス上で伝送される前記投機的発行済みの予測命令に ついての実行結果信号を監視する段階; − 前記記憶されたウォッチポイントデータ及び実際の既知の条件データ結果信 号及び予め定められた規則を含む前記記憶されたウォッチポイントデータ及び実 行結果信号に基づき、予め定められた事象の発生を検出する段階であって、ここ で前記実際の既知の条件データ結果信号が、前記投機的発行済みの予測命令の制 御フロー転送方向を決定する上で基礎となるべき条件の実際の値を識別している ような、段階; − 信号が一致しているかしていないかを決定するべく前記投機的に発行された 命令に関して前記データ順方向送りバス上で到着した前記結果信号と前記投機的 に発行された予測命令のうちの1つについて前記ウォッチポイントレジスタ内に 記憶された前記ウォッチポイントデータを比較する段階であって、一致は前記投 機的発行済み予測命令が正しく予測されていたことを表わし、不一致は、前記投 機的発行済み予測命令が誤予測されていたことを表わすような、段階;及び − 比較の結果、前記予測が誤予測であったことが表示された場合には、前記誤 予測に基づいて実行された命令が取消されるように前記中央処理ユニットをより 早朝の中央処理ユニット状態まで回復させる段階、 が含まれている請求項241 に記載の方法。 243.浮動小数点例外を検出する前記段階には、 − 実行のためプログラム制御順で命令を発行する段階であって発行される命令 には、浮動小数点及び非浮動小数点命令が含まれている段階; − 少なくとも浮動小数点命令が、実行手段によってプログラム制御順外でout- of-order実行され得るように発行済み命令を実行する段階; − ・発行済み命令の各々が記憶要素の1つに対応し、各々の記憶要素が浮動小 数点命令識別フィールドと浮動小数点トラップタイプフィールドを有する、記憶 要素を含むデータ記憶構造を提供する段階 ・各々の発行済み命令について対応する発行済み命令が浮動小数点命令である か否かを表示する対応する記憶要素の浮動小数点命令識別フィールド内へのデー タを書込む段階; ・実行中に浮動小数点実行トラップの予め規定された複数のタイプのうちの対 応する1つのタイプを結果としてもたらすことになる単数又は複数の浮動小数点 実行例外をひき起こす各々の発行された浮動小数点命令について、結果としても たらされることになる浮動小数点実行トラップの予め定められたタイプのうちの 1つを識別する対応する記憶要素の浮動小数点トラップタイプフィールド内への データを書込む段階; − 実行中実行例外をひき起こさず、プログラム制御順でそれに先行する全ての 発行済み命令が退去されてしまっている各々の発行済み命令を退去させる段階; − 予め定められた実行例外のうちの第1のものが発行済み命令によってひき起 こされた時点で、発行済み命令の実行を続行し、退去され得ない発行済み命令に 遭遇するまで発行済み命令を退去させ続けることにより実行トラップ順序付けに 着手し、ここで退去され得 ない発行済み命令は、(a)第1の実行例外をひき起こした発行済み命令、及び (b)第1の実行例外をひき起こした発行済み命令よりも早期に発行されたもの の第1の実行例外よりも晩期に発生する第2の実行例外をひき起こした発行済み 命令のうちの1つである段階; − 浮動小数点トラップタイプフィールドをもつ浮動小数点状況レジスタを提供 する段階;及び − 退去され得ない命令に対応する記憶要素の浮動小数点識別フィールド内のデ ータが、この退去され得ない命令が浮動小数点命令であることを表示した時点で 、退去され得ない命令に対応する記憶要素の浮動小数点トラップタイプフィール ド内のデータにより識別された浮動小数点実行トラップのタイプを識別する浮動 小数点状況レジスタの浮動小数点トラップタイプフィールドに対するデータを書 込む段階; が含まれている請求項242 に記載の方法。 244.投機的にトラップをとりこのトラップから復帰する前記段階には、 − チェックポイントを形成する段階; − チェックポイントをバックアップする段階; − トラップを取る段階; − トラップから復帰する段階; − トラップが取られる度毎のデータプロセッサの状態を規定する内容をもつレ ジスタを提供する段階; − トラップレベルより多い数のトラップスタック記憶エントリを有するトラッ プスタックデータ記憶構造を提供する段階; − トラップレベルのうちの1つにマッピングするため現在利用可能なトラップ スタック記憶エントリの現行の利用可能性リストを維 持し、トラップがとられる毎にトラップレベルのうちの対応するものにマッピン グするため現在利用可能なトラップスタック記憶エントリのうちの次のものを識 別する段階; − とられた各々のトラップについて、現在利用可能なトラップスタック記憶エ ントリのうちの次のものに対しレジスタの内容を書込む段階; − トラップがとられる毎に、トラップスタック記憶エントリのうちの1つに対 する対応するトラップレベルの古いマッピングを、現在利用可能なトラップスタ ック記憶エントリのうちの次のエントリに対する対応するトラップレベルの現行 マッピングと置換することによってトラップスタック記憶エントリのうちの1つ に対する各トラップレベルの現行のマッピングを維持する段階、 − トラップがとられる毎に、古いマッピングにより対応するトラップレベルに マッピングされたトラップスタック記憶エントリを利用不能性リストに付加し、 とったトラップをもはや取消しできなくなる毎に、古いマッピングにより対応す るトラップレベルにマッピングされたトラップスタック記憶エントリを利用不能 性リストから除去することによって、現行マッピングによりトラップレベルの1 つに現在マッピングされていないもののトラップレベルの1つにマッピングする ためには利用できない各々のトラップスタック記憶エントリの利用不能性リスト を維持する段階; − 現行の利用可能性リストに対し、利用不能性リストから除去された各々のト ラップスタック記憶エントリを付加する段階; − チェックポイント記憶エントリを含み、形成された各チェックポイントが対 応するチェックポイント記憶エントリをもつような、チェックポイント記憶ユニ ットを提供する段階; − 各々の形成されたチェックポイントについて、対応するチェッ クポイント記憶エントリ内で、現行のマッピング及び現行の利用可能性リストを 記憶する段階; − チェックポイントに対する各々のバックアップについて、現行のマッピング を対応するチェックポイント記憶エントリ内に記憶されたマッピングと置換し、 現行の利用可能性リストを対応するチェックポイント記憶エントリ内に記憶され た利用可能性リストを置換する段階、 が含まれている請求項243 に記載の方法。 245.プロセッサ状態の回復を要求する条件を検出した時点で任意の命令境界 でプロセッサ内の先行するマシン状態を回復する前記段階には; − 各々の発行済み命令について1つの命令シリアル番号を割振る段階; − マシン状態を変更する実行可能な命令の第1の予め定められたセットについ てのみ実行に先立って前記プロセッサ内のデータ記憶装置内で1つのチェックポ イント中にマシン状態情報を記憶する段階であって、ここでマシン状態を変える 実行可能な命令の前記予め定められたセットが、このプロセッサ内で実施された マシン状態を変化させる実行可能な命令の全てのセットよりも少ないような段階 ; − 前記障害をひき起こす命令を識別し、多数の例外又は障害が同時に発生した 場合には、障害又は例外をひき起こす順序的に最も早期のin-order命令を識別す る段階; − 前記最も早期の障害発生命令がチェックポイント実行された命令である場合 には、前記障害発生命令の実行に先立って記憶された前記マシン状態情報を回復 させプロセッサプログラムカウンタを前記障害発生命令の命令シリアル番号まで 減分させて前記先行するマ シン状態を回復する段階; − マシン状態情報が記憶されてきた前記予め定められた実行可能な命令の1つ が順序的に前記障害発生命令と最後に発行された命令の間に置かれている場合に は、(i)まず最初に、順序的に前記障害発生命令の後で前記障害発生命令に最 も近いチェックポイントまで前記プロセッサをバックアップし、(ii)第2にレ ジスタ資源を更新することによって前記障害命令の実行の直前に存在した状態ま でプロセッサの状態を回復するように前記プロセッサをバックステップさせ、( iii)前記障害発生命令の命令シリアル番号までプロセッサプログラムカウンタ を減分させる段階; が含まれている請求項244 に記載の方法。
Applications Claiming Priority (21)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US39088595A | 1995-02-14 | 1995-02-14 | |
US08/390,885 | 1995-02-14 | ||
US39829995A | 1995-03-03 | 1995-03-03 | |
US08/398,299 | 1995-03-03 | ||
US08/482,075 US5655115A (en) | 1995-02-14 | 1995-06-07 | Processor structure and method for watchpoint of plural simultaneous unresolved branch evaluation |
US08/487,801 US5751985A (en) | 1995-02-14 | 1995-06-07 | Processor structure and method for tracking instruction status to maintain precise state |
US08/472,394 | 1995-06-07 | ||
US08/487,801 | 1995-06-07 | ||
US08/483,958 | 1995-06-07 | ||
US08/484,795 US5673426A (en) | 1995-02-14 | 1995-06-07 | Processor structure and method for tracking floating-point exceptions |
US08/478,025 | 1995-06-07 | ||
US08/473,223 US5644742A (en) | 1995-02-14 | 1995-06-07 | Processor structure and method for a time-out checkpoint |
US08/478,025 US5651124A (en) | 1995-02-14 | 1995-06-07 | Processor structure and method for aggressively scheduling long latency instructions including load/store instructions while maintaining precise state |
US08/472,394 US5673408A (en) | 1995-02-14 | 1995-06-07 | Processor structure and method for renamable trap-stack |
US08/473,223 | 1995-06-07 | ||
US08/482,073 | 1995-06-07 | ||
US08/484,795 | 1995-06-07 | ||
US08/476,419 US5659721A (en) | 1995-02-14 | 1995-06-07 | Processor structure and method for checkpointing instructions to maintain precise state |
US08/476,419 | 1995-06-07 | ||
US08/483,958 US5649136A (en) | 1995-02-14 | 1995-06-07 | Processor structure and method for maintaining and restoring precise state at any instruction boundary |
PCT/US1996/001930 WO1996025705A1 (en) | 1995-02-14 | 1996-02-13 | Structure and method for high-performance speculative execution processor providing special features |
Related Child Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004265716A Division JP3787142B2 (ja) | 1995-02-14 | 2004-09-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2004265586A Division JP3754439B2 (ja) | 1995-02-14 | 2004-09-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2004265390A Division JP3787141B2 (ja) | 1995-02-14 | 2004-09-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11500551A true JPH11500551A (ja) | 1999-01-12 |
JP3670290B2 JP3670290B2 (ja) | 2005-07-13 |
Family
ID=34979088
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52508596A Expired - Fee Related JP3670290B2 (ja) | 1995-02-14 | 1996-02-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2004265716A Expired - Fee Related JP3787142B2 (ja) | 1995-02-14 | 2004-09-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2004265586A Expired - Fee Related JP3754439B2 (ja) | 1995-02-14 | 2004-09-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2004265390A Expired - Fee Related JP3787141B2 (ja) | 1995-02-14 | 2004-09-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2006006056A Pending JP2006107536A (ja) | 1995-02-14 | 2006-01-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2006006315A Expired - Fee Related JP4142690B2 (ja) | 1995-02-14 | 2006-01-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2007180315A Pending JP2007287176A (ja) | 1995-02-14 | 2007-07-09 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
Family Applications After (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004265716A Expired - Fee Related JP3787142B2 (ja) | 1995-02-14 | 2004-09-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2004265586A Expired - Fee Related JP3754439B2 (ja) | 1995-02-14 | 2004-09-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2004265390A Expired - Fee Related JP3787141B2 (ja) | 1995-02-14 | 2004-09-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2006006056A Pending JP2006107536A (ja) | 1995-02-14 | 2006-01-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2006006315A Expired - Fee Related JP4142690B2 (ja) | 1995-02-14 | 2006-01-13 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
JP2007180315A Pending JP2007287176A (ja) | 1995-02-14 | 2007-07-09 | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0815507B1 (ja) |
JP (7) | JP3670290B2 (ja) |
WO (1) | WO1996025705A1 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7086035B1 (en) | 1999-05-13 | 2006-08-01 | International Business Machines Corporation | Method and system for counting non-speculative events in a speculative processor |
JP2013122774A (ja) * | 2006-09-27 | 2013-06-20 | Qualcomm Inc | 同時に予測された分岐命令を解決するための方法および装置 |
JP2014179098A (ja) * | 2013-03-14 | 2014-09-25 | Samsung Electronics Co Ltd | マイクロプロセッサ及びこれを使用した電子機器 |
WO2016043271A1 (ja) * | 2014-09-19 | 2016-03-24 | 株式会社 東芝 | プロセッサおよびプロセッサシステム |
JP2017509063A (ja) * | 2014-03-27 | 2017-03-30 | インテル・コーポレーション | ストアをソート及びリタイアする命令及びロジック |
JP2018538628A (ja) * | 2015-12-28 | 2018-12-27 | クアルコム,インコーポレイテッド | ブロックアトミック実行モデルを利用するプロセッサベースシステムにおける部分的に実行された命令ブロックのリプレイ |
JP2022519848A (ja) * | 2019-02-06 | 2022-03-25 | アーム・リミテッド | アンカーデータ値のオーバーフロー又はアンダーフロー処理 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6047370A (en) * | 1997-12-19 | 2000-04-04 | Intel Corporation | Control of processor pipeline movement through replay queue and pointer backup |
DE19929050C2 (de) * | 1998-08-19 | 2002-01-03 | Ibm | Verfahren zur Umbenennung von Bedingungscodedaten in einem Superskalar-Prozessorsystem |
US7486854B2 (en) | 2006-01-24 | 2009-02-03 | Uni-Pixel Displays, Inc. | Optical microstructures for light extraction and control |
JP5277961B2 (ja) | 2006-10-13 | 2013-08-28 | 日本電気株式会社 | 情報処理装置及びその故障隠蔽方法 |
JP5326314B2 (ja) | 2008-03-21 | 2013-10-30 | 富士通株式会社 | プロセサおよび情報処理装置 |
KR101669989B1 (ko) | 2010-05-27 | 2016-10-28 | 삼성전자주식회사 | 파이프라인 프로세서 및 이퀄 모델 보존 방법 |
KR102010317B1 (ko) * | 2013-03-14 | 2019-08-13 | 삼성전자주식회사 | 재명명 테이블 재구성을 위한 리오더-버퍼를 기초로 하는 동적 체크포인팅 |
US9436552B2 (en) | 2014-06-12 | 2016-09-06 | International Business Machines Corporation | Checkpoint triggering in a computer system |
KR102330389B1 (ko) * | 2014-07-24 | 2021-11-24 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 처리 방법 |
US10303525B2 (en) | 2014-12-24 | 2019-05-28 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US10942744B2 (en) | 2014-12-24 | 2021-03-09 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US10061589B2 (en) | 2014-12-24 | 2018-08-28 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US9785442B2 (en) | 2014-12-24 | 2017-10-10 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US10061583B2 (en) | 2014-12-24 | 2018-08-28 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US10387158B2 (en) | 2014-12-24 | 2019-08-20 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US20160357556A1 (en) * | 2014-12-24 | 2016-12-08 | Elmoustapha Ould-Ahmed-Vall | Systems, apparatuses, and methods for data speculation execution |
US10387156B2 (en) | 2014-12-24 | 2019-08-20 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US10248509B2 (en) | 2016-11-16 | 2019-04-02 | International Business Machines Corporation | Executing computer instruction including asynchronous operation |
JP7225745B2 (ja) | 2018-12-06 | 2023-02-21 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US10877768B1 (en) | 2019-09-06 | 2020-12-29 | Microsoft Technology Licensing, Llc | Minimizing traversal of a processor reorder buffer (ROB) for register rename map table (RMT) state recovery for interrupted instruction recovery in a processor |
US11119772B2 (en) | 2019-12-06 | 2021-09-14 | International Business Machines Corporation | Check pointing of accumulator register results in a microprocessor |
CN111159051B (zh) * | 2019-12-31 | 2023-07-04 | 北京天融信网络安全技术有限公司 | 死锁检测方法、装置、电子设备及可读存储介质 |
US11061677B1 (en) | 2020-05-29 | 2021-07-13 | Microsoft Technology Licensing, Llc | Recovering register mapping state of a flushed instruction employing a snapshot of another register mapping state and traversing reorder buffer (ROB) entries in a processor |
CN114355968B (zh) * | 2021-11-26 | 2023-12-12 | 中国航空无线电电子研究所 | 一种基于多维匹配的机载设备自主控制方法和装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0306891A3 (en) * | 1987-09-11 | 1992-04-01 | National Semiconductor Corporation | Pipelined slave protocol for high performance cpu-fpu cluster |
US5109514A (en) * | 1988-07-28 | 1992-04-28 | Sun Microsystems, Inc. | Method and apparatus for executing concurrent CO processor operations and precisely handling related exceptions |
US4912707A (en) * | 1988-08-23 | 1990-03-27 | International Business Machines Corporation | Checkpoint retry mechanism |
DE68927218T2 (de) * | 1988-10-18 | 1997-02-06 | Hewlett Packard Co | Verfahren und Vorrichtung für Zustandskode in einem Zentralprozessor |
US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
US5487156A (en) * | 1989-12-15 | 1996-01-23 | Popescu; Valeri | Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched |
US5185872A (en) * | 1990-02-28 | 1993-02-09 | Intel Corporation | System for executing different cycle instructions by selectively bypassing scoreboard register and canceling the execution of conditionally issued instruction if needed resources are busy |
US5237700A (en) * | 1990-03-21 | 1993-08-17 | Advanced Micro Devices, Inc. | Exception handling processor for handling first and second level exceptions with reduced exception latency |
US5287467A (en) * | 1991-04-18 | 1994-02-15 | International Business Machines Corporation | Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit |
EP0514763A3 (en) * | 1991-05-20 | 1993-08-25 | Motorola, Inc. | A data processor having a logical register content-addressable memory |
US5355457A (en) * | 1991-05-21 | 1994-10-11 | Motorola, Inc. | Data processor for performing simultaneous instruction retirement and backtracking |
EP0547240B1 (en) * | 1991-07-08 | 2000-01-12 | Seiko Epson Corporation | Risc microprocessor architecture implementing fast trap and exception state |
US5269017A (en) * | 1991-08-29 | 1993-12-07 | International Business Machines Corporation | Type 1, 2 and 3 retry and checkpointing |
DE4237417C2 (de) * | 1992-03-25 | 1997-01-30 | Hewlett Packard Co | Datenverarbeitungssystem |
DE69311330T2 (de) * | 1992-03-31 | 1997-09-25 | Seiko Epson Corp., Tokio/Tokyo | Befehlsablauffolgeplanung von einem risc-superskalarprozessor |
US5694564A (en) * | 1993-01-04 | 1997-12-02 | Motorola, Inc. | Data processing system a method for performing register renaming having back-up capability |
JPH06236274A (ja) * | 1993-01-08 | 1994-08-23 | Internatl Business Mach Corp <Ibm> | スーパースカラ・プロセッサ・システム内でスカラ命令を追跡する方法およびシステム |
US5471598A (en) * | 1993-10-18 | 1995-11-28 | Cyrix Corporation | Data dependency detection and handling in a microprocessor with write buffer |
EP0649086B1 (en) * | 1993-10-18 | 2000-07-19 | National Semiconductor Corporation | Microprocessor with speculative execution |
US5463745A (en) * | 1993-12-22 | 1995-10-31 | Intel Corporation | Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system |
-
1996
- 1996-02-13 WO PCT/US1996/001930 patent/WO1996025705A1/en active IP Right Grant
- 1996-02-13 JP JP52508596A patent/JP3670290B2/ja not_active Expired - Fee Related
- 1996-02-13 EP EP96906404.7A patent/EP0815507B1/en not_active Expired - Lifetime
-
2004
- 2004-09-13 JP JP2004265716A patent/JP3787142B2/ja not_active Expired - Fee Related
- 2004-09-13 JP JP2004265586A patent/JP3754439B2/ja not_active Expired - Fee Related
- 2004-09-13 JP JP2004265390A patent/JP3787141B2/ja not_active Expired - Fee Related
-
2006
- 2006-01-13 JP JP2006006056A patent/JP2006107536A/ja active Pending
- 2006-01-13 JP JP2006006315A patent/JP4142690B2/ja not_active Expired - Fee Related
-
2007
- 2007-07-09 JP JP2007180315A patent/JP2007287176A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7086035B1 (en) | 1999-05-13 | 2006-08-01 | International Business Machines Corporation | Method and system for counting non-speculative events in a speculative processor |
JP2013122774A (ja) * | 2006-09-27 | 2013-06-20 | Qualcomm Inc | 同時に予測された分岐命令を解決するための方法および装置 |
JP2014179098A (ja) * | 2013-03-14 | 2014-09-25 | Samsung Electronics Co Ltd | マイクロプロセッサ及びこれを使用した電子機器 |
JP2017509063A (ja) * | 2014-03-27 | 2017-03-30 | インテル・コーポレーション | ストアをソート及びリタイアする命令及びロジック |
US10514927B2 (en) | 2014-03-27 | 2019-12-24 | Intel Corporation | Instruction and logic for sorting and retiring stores |
WO2016043271A1 (ja) * | 2014-09-19 | 2016-03-24 | 株式会社 東芝 | プロセッサおよびプロセッサシステム |
JP2018538628A (ja) * | 2015-12-28 | 2018-12-27 | クアルコム,インコーポレイテッド | ブロックアトミック実行モデルを利用するプロセッサベースシステムにおける部分的に実行された命令ブロックのリプレイ |
US11188336B2 (en) | 2015-12-28 | 2021-11-30 | Qualcomm Incorporated | Replay of partially executed instruction blocks in a processor-based system employing a block-atomic execution model |
JP2022519848A (ja) * | 2019-02-06 | 2022-03-25 | アーム・リミテッド | アンカーデータ値のオーバーフロー又はアンダーフロー処理 |
Also Published As
Publication number | Publication date |
---|---|
JP3787142B2 (ja) | 2006-06-21 |
EP0815507B1 (en) | 2013-06-12 |
JP3670290B2 (ja) | 2005-07-13 |
EP0815507A4 (en) | 2001-05-16 |
EP0815507A1 (en) | 1998-01-07 |
JP2006107536A (ja) | 2006-04-20 |
JP2004355663A (ja) | 2004-12-16 |
JP2006107537A (ja) | 2006-04-20 |
JP4142690B2 (ja) | 2008-09-03 |
JP2007287176A (ja) | 2007-11-01 |
JP2005025782A (ja) | 2005-01-27 |
JP2005038445A (ja) | 2005-02-10 |
JP3754439B2 (ja) | 2006-03-15 |
WO1996025705A1 (en) | 1996-08-22 |
JP3787141B2 (ja) | 2006-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5018728B2 (ja) | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 | |
JP4142690B2 (ja) | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 | |
CN109891393B (zh) | 使用检查器处理器的主处理器错误检测 | |
US7870369B1 (en) | Abort prioritization in a trace-based processor | |
US5463745A (en) | Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system | |
CN103842959B (zh) | 在计算机系统中维持操作数活性信息 | |
EP0638183B1 (en) | A system and method for retiring instructions in a superscalar microprocessor | |
CN110597556B (zh) | 一种寄存器映射表检查点资源的管理方法、系统及介质 | |
TWI439930B (zh) | 具選擇性啟動早期引退功能之失序執行微處理器 | |
US7603543B2 (en) | Method, apparatus and program product for enhancing performance of an in-order processor with long stalls | |
JP2002508567A (ja) | 誤推論後の命令再実施のためのアウトオブパイプライン・トレース・バッファ | |
JP2002508568A (ja) | 不適正順序マルチスレッド実行を実行するロード命令およびストア命令を順序付けるシステム | |
JP2002508564A (ja) | 実行パイプラインの外部に複数のプログラム・カウンタとトレース・バッファを有するプロセッサ | |
JPH07152559A (ja) | パイプ制御及びレジスタ変換機能を増強したスーパースカラーパイプライン式のプロセッサ | |
US10977038B2 (en) | Checkpointing speculative register mappings | |
JP3142813B2 (ja) | レジスタの名前変更を管理するための情報処理システムおよび方法 | |
US7783863B1 (en) | Graceful degradation in a trace-based processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040713 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040913 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041026 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041227 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050303 |
|
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: 20050315 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050414 |
|
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: 20080422 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090422 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090422 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100422 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110422 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110422 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120422 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130422 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140422 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |