JPH11510291A - スーパースケーラープロセッサにおけるout−of−order実行のための統一化された機能オペレーションスケジューラ - Google Patents
スーパースケーラープロセッサにおけるout−of−order実行のための統一化された機能オペレーションスケジューラInfo
- Publication number
- JPH11510291A JPH11510291A JP9514372A JP51437297A JPH11510291A JP H11510291 A JPH11510291 A JP H11510291A JP 9514372 A JP9514372 A JP 9514372A JP 51437297 A JP51437297 A JP 51437297A JP H11510291 A JPH11510291 A JP H11510291A
- Authority
- JP
- Japan
- Prior art keywords
- scheduler
- operand
- entry
- operations
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims description 81
- 238000000034 method Methods 0.000 claims description 68
- 238000012546 transfer Methods 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 50
- 230000006870 function Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 4
- 230000010365 information processing Effects 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 230000002194 synthesizing effect Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 230000011664 signaling Effects 0.000 claims description 2
- 230000026676 system process Effects 0.000 claims 1
- 239000000872 buffer Substances 0.000 abstract description 9
- 230000008859 change Effects 0.000 description 36
- 238000006073 displacement reaction Methods 0.000 description 34
- 238000011156 evaluation Methods 0.000 description 17
- 230000003068 static effect Effects 0.000 description 14
- 230000001419 dependent effect Effects 0.000 description 13
- 230000009471 action Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 11
- 238000007667 floating Methods 0.000 description 11
- 101100058681 Drosophila melanogaster Btk29A gene Proteins 0.000 description 10
- 206010000210 abortion Diseases 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 230000007717 exclusion Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 101100534231 Xenopus laevis src-b gene Proteins 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000006467 substitution reaction Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 101150108116 PGLYRP1 gene Proteins 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 208000010994 Lethal infantile mitochondrial myopathy Diseases 0.000 description 2
- 101100496858 Mus musculus Colec12 gene Proteins 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000116 mitigating effect Effects 0.000 description 2
- 230000001343 mnemonic effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- AGRCPNMCOXLKFO-BDVNFPICSA-N 1-methyl-1-nitroso-3-[(2r,3r,4s,5r)-3,4,5,6-tetrahydroxy-1-oxohexan-2-yl]urea Chemical compound O=NN(C)C(=O)N[C@@H](C=O)[C@@H](O)[C@H](O)[C@H](O)CO AGRCPNMCOXLKFO-BDVNFPICSA-N 0.000 description 1
- 241000276498 Pollachius virens Species 0.000 description 1
- 241000220010 Rhode Species 0.000 description 1
- 108050003387 Stathmin Proteins 0.000 description 1
- 102100024237 Stathmin Human genes 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- FKLFBQCQQYDUAM-UHFFFAOYSA-N fenpiclonil Chemical compound ClC1=CC=CC(C=2C(=CNC=2)C#N)=C1Cl FKLFBQCQQYDUAM-UHFFFAOYSA-N 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 238000007373 indentation Methods 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001052 transient effect Effects 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, look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/74—Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
- G06F9/30152—Determining start or end of instruction; determining instruction length
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3812—Instruction prefetching with instruction modification, e.g. store into instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/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, 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, 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
Abstract
Description
Claims (1)
- 【特許請求の範囲】 1.複数の実行ユニットと、 前記実行ユニットに結合されたスケジューラを有する処理システムであって、 前記スケジューラが、 各エントリーに対応するオペレーションを記述する情報を記憶するためのメモ リフィールドを含む複数のエントリーと、 実行のための前記実行ユニットに発行するためのオペレーションを選択するべ く前記エントリーをスキャンするロジックと、 発行されたオペレーションの実行のために前記実行ユニットに情報を提供する ロジックと、 前回に発行されたオペレーションに関連するエントリーに於ける前回発行され たオペレーションの実行から得られた結果を記憶するロジックを有することを特 徴とする処理システム。 2.前記スケジューラに結合されたオペレーションコミットユニットを更に含み 、 前記オペレーションコミットユニットが、前記スケジューラ内のエントリーに 新たなオペレーションを関連付け得るように、前記スケジューラからオペレーシ ョンを退避及び除去し、 前記オペレーションコミットユニットが、エントリーに記憶された結果が、当 該処理システムにより実行されたプログラムにとって必要なものである場合には 、この結果を永久化することを特徴とする請求項1に記載の処理システム。 3.レジスタファイルを更に含み、前記オペレーションコミットユニットが、前 記スケジューラ内のエントリーからの結果をレジスタファイル に転送することにより前記結果を永久化することを特徴とする請求項2に記載の 処理システム。 4.前記オペレーションコミットユニットが、状態フラグ値をエントリーから状 態フラグレジスタに向けて転送することにより前記結果を永久化することを特徴 とする請求項3に記載の処理システム。 5.前記スケジューラ内のエントリーが最上列から最下列に至る一連の列にグル ープ分けされ、前記列のそれぞれが複数のエントリーを含み、最下列を除く前記 列のそれぞれのエントリーのメモリフィールドが、次の列のメモリフィールドに 結合されており、 前記スケジューラが更に、最下列を除く前記列のそれぞれのための制御信号を 生成するグローバル制御ロジックを有し、前記制御信号がそれぞれ、各列のメモ リフィールドに記憶された情報を次の列のメモリフィールドに列シフトすること を特徴とする請求項1乃至4の何れかに記載の処理システム。 6.前記オペレーションコミットユニットが前記スケジューラの最下列のエント リーに対応する全てのオペレーションを退避させるのに応答して、前記制御ロジ ックが、前記スケジューラのある列の情報を前記スケジューラの最下列にシフト させるような信号を生成することを特徴とする請求項5に記載の処理システム。 7.前記処理システムにより実行されるプログラムを構成する命令からオペレー ションのセットを生成する命令デコーダを更に有し、前記命令デコーダが、前記 スケジューラの最上列のエントリーにオペレーションのセットに関連する情報を ロードするべく結合されていることを特徴とする請求項5若しくは6に記載の処 理システム。 8.前記グローバル制御ロジックが、前記スケジューラの最上列に最後にロード された情報がシフトしたかまたは前記スケジューラの次の列に シフトされつつある場合でない限り、前記スケジューラの最上列のオペレーショ ンのセットのロードを禁止するように前記命令デコーダへの信号を生成すること を特徴とする請求項7に記載の処理システム。 9.前記命令デコーダが、実行されさるべきプログラム内の条件付き分岐命令に 遭遇したときに、前記命令デコーダが、 条件付き分岐命令に従うべき予測された命令アドレスを判定し、 予測された命令アドレスからデコーディングを継続し、 実行されたときに予測が正しかったか否か判定するオペレーションに関連する 情報を前記スケジューラの最上列にロードすることを特徴とする請求項7若しく は8に記載の情報処理システム。 10.前記スケジューラが更に、 状態レジスタと、 前記状態レジスタに記憶された値及び前記スケジューラのフィールドに記憶さ れた結果に基づき、状態フラグビットを生成し、状態フラッグロジックに関連す るスケジューラの選択された列の境界に於けるオペレーションのために、状態フ ラッグビットが有効であるか否かを示す有効性ビットを生成する状態フラグロジ ックとを有することを特徴とする請求項5乃至9の何れかに記載の処理システム 。 11.第1のオペレーションの特定の実行ステージの完了のために、状態フラッ グビットを必要とするような第1のオペレーションについて、状態フラッグロジ ックが、第1のオペレーションに関連する情報が状態フラッグロジックに関連す る選択された列の境界にまでシフトダウンされるまで、前記第1のオペレーショ ンが前記実行ステージに進むのを阻止する信号を発生することを特徴とする請求 項10に記載の処理システム。 12.前記グローバル制御ロジックが、第1のオペレーションが選択された列の 境界に達した後、状態ビットを必要とする実行ステージに、前記オペレーション のために有効な状態フラッグビットが提供されるまで、前記第1のオペレーショ ンが前記境界からシフトするのを阻止する信号を発生することを特徴とする請求 項11に記載の処理システム。 13.前記状態フラッグロジックが、前記第1の形式のオペレーションが選択さ れた境界の上側の列に位置するときに前記第1の形式のオペレーションを実行す るための状態フラッグビット及び第2の形式のオペレーションが前記選択された 境界の下の列にある時に前記第2の形式のオペレーションを実行するための状態 フラッグビットを同時に提供し得ることを特徴とする請求項11若しくは12に 記載の処理システム。 14.前記第2の形式のオペレーションが条件付き分岐判断であることを特徴と する請求項14に記載の処理システム。 15.前記処理システムが、シングルチッププロセッサの一部をなすことを特徴 とす請求項1乃至14の何れかに記載の処理システム。 16.データ及び命令を記憶するメモリサブシステムを更に有することを特徴と する請求項1乃至14の何れかに記載の処理システム。 17.前記処理システムがコンピュータマザーボードの部品の一部を構成するこ とを特徴とする請求項16に記載の処理システム。 18.前記マザーボードがプロセッサに機能的に接続された背面バスを有し、前 記処理システムが更に前記背面バスを介して前記マザーボードに接続されたカー ド状の1若しくは複数のデバイスを更に含むことを特徴とする請求項17に記載 の処理システム。 19.前記処理システムがネットワークサーバの一部を構成することを特徴とす る請求項1乃至14及び16の何れかに記載の処理システム。 20.前記処理システムが、マルチメディアコンピュータシステムの一部をなし 、 前記マルチメディアコンピュータが、 マルチメディア機能デバイスと、 前記マルチメディア機能デバイス及びマルチメディア信号取得デバイスに接続 され、マルチメディア信号を合成しサンプリングするための信号変換インタフェ ースを更に含むマルチメディアアダプタと、 マルチメディアデータの通信のために前記マルチメディアアダプタに接続され た入力/出力バスとを有し、 前記処理システムが、マルチメディアデータを処理し、前記処理システムとマ ルチメディアアダプタとの間のマルチメディアデータの通信の制御するために前 記入力/出力バスに接続されていることを特徴とする請求項1乃至14の何れか に記載の処理システム。 21.オペレーションスケジューラであって、 オペレーションを保持し、これらのオペレーションのためのプログラム順序が 物理的順序に一致するように配置された複数のエントリーと、 第1の実行ユニットにより実行されるべきオペレーションのための物理的順序 に基づき前記複数のエントリーを検索する第1発行選択回路と、 前記スケジューラから前記第1の実行ユニットにオペランド値をフォワードす るオペランドフォワーディング回路と、 結果が前記オペランドフォワーディング回路によって利用可能であるような実 行されたオペレーションに対応するエントリーに於ける第1の実行により実行さ れたオペレーションの結果を記憶するための結果転送回路とを有することを特徴 とするオペレーションスケジューラ。 22.第2の実行ユニットにより実行されるオペレーションのための物理的順序 に基づき前記複数のエントリーを検索する第2の発行選択回路 を更に有し、前記オペランドフォワーディング回路が、前記スケジューラから前 記第2の実行ユニットにオペランド値をフォワードし、前記結果転送回路が、結 果が前記オペランドフォワーディング回路によって利用可能であるような実行さ れたオペレーションに対応するエントリーに於ける第2の実行により実行された オペレーションの結果を記憶することを特徴とする請求項21に記載のスケジュ ーラ。 23.前記第1の実行ユニットが、前記第2の実行ユニットが実行するように設 計されていないようなオペレーションを実行し得ることを特徴とする請求項22 に記載のスケジューラ。 24.プログラムからデコードされたオペレーションをout-od-order実行するた めの方法であって、 スケジューラの最上列が空であったり、その下側の列にシフトされつつある場 合に前記スケジューラの最上列のエントリーにオペレーションのセットをロード する過程と、 その下側の列が空であったりその下の列のオペレーションがシフト中である場 合には、前記スケジューラの各列のオペレーションをその下側の列にシフトする 過程と、 実行ユニットに発行されるべきオペレーションを選択するために前記最下列か ら最上列に向けて前記スケジューラをスキャンする過程と、 前記オペレーションに対応する前記スケジューラのエントリーに於けるオペレ ーションを実行して得られた結果を一時的に記憶する過程と、 前記スケジューラの最下列からレジスタファイルに結果をコミットする過程と 、 最下列にある情報に関連する全てのオペレーションの実行により得られた結果 がコミットし或いは必要でない場合には、前記最下列に情報をシフトする過程と を有することを特徴とする方法。 25.アボートオペレーションに先行するあらゆるオペレーションをコミットす る過程と、 前記アボートオペレーションが前記スケジューラの最下列に達したときに、前 記スケジューラ内の全てのオペレーションをアボートする過程とを有し、 オペレーションがアボートされたことは、当該オペレーションのコミットが必 要でないことを示すように前記オペレーションを設定することを特徴とする請求 項24に記載の方法。 26.前記実行ユニットの第1のものに発行された第1のオペレーションに先行 する全てのオペレーションをコミットする過程と、 前記第1のオペレーションが最下列にある間に、前記第1の実行ユニットが前 記第1のオペレーションの実行を完了したか否かを判定する過程と、 前記第1のオペレーションが、前記最下列にある時に完了しておらず、前記第 1の実行ユニットが例外を示す信号を発しているのに応答して、前記スケジュー ラの全てのオペレーションをアボートする過程とを有し、 オペレーションがアボートされたことは、当該オペレーションのコミットが必 要でないことを示すように前記オペレーションを設定することを特徴とする請求 項24若しくは25に記載の方法。 27.条件付き分岐オペレーションが前記スケジューラの最上列と最下列との間 の列にある時に、命令デコーダが、前記条件付き分岐オペレーションの予測を誤 ったか否かを判定するために条件付き分岐オペレーションを判定する過程と、 前記条件付き分岐オペレーションの予測が誤ったことを判定した場合に、前記 命令デコーダを再起動する過程と、 前記条件付き分岐が最下列に到達するまで、前記スケジューラへのオペレーシ ョンのロードを禁止する過程と、 前記条件付き分岐に先行する全てのオペレーションをコミットする過程と、 前記スケジューラの最下列に前記条件付き分岐がある時に、前記スケジューラ 内の全てのオペレーションをアボートし、オペレーションをアボートすることに より、当該オペレーションのコミットが必要でないことを示すように前記オペレ ーションを設定する過程とを有することを特徴とする請求項24に記載の方法。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US506995P | 1995-10-06 | 1995-10-06 | |
US502195P | 1995-10-10 | 1995-10-10 | |
US59038396A | 1996-01-26 | 1996-01-26 | |
US590,383 | 1996-01-26 | ||
US08/649,243 US5884059A (en) | 1996-01-26 | 1996-05-16 | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor |
US60/005,069 | 1996-05-16 | ||
US649,243 | 1996-05-16 | ||
US60/005,021 | 1996-05-16 | ||
PCT/US1996/015743 WO1997013201A1 (en) | 1995-10-06 | 1996-10-04 | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11510291A true JPH11510291A (ja) | 1999-09-07 |
JP3720371B2 JP3720371B2 (ja) | 2005-11-24 |
Family
ID=27485435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51437297A Expired - Fee Related JP3720371B2 (ja) | 1995-10-06 | 1996-10-04 | スーパースケーラープロセッサにおけるout−of−order実行のための統一化された機能オペレーションスケジューラ |
Country Status (6)
Country | Link |
---|---|
US (1) | US6195744B1 (ja) |
EP (1) | EP0870228B1 (ja) |
JP (1) | JP3720371B2 (ja) |
AU (1) | AU7550496A (ja) |
DE (1) | DE69629495T2 (ja) |
WO (1) | WO1997013201A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014215624A (ja) * | 2013-04-22 | 2014-11-17 | 富士通株式会社 | 演算処理装置 |
JP2017059273A (ja) * | 2017-01-05 | 2017-03-23 | 富士通株式会社 | 演算処理装置 |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5878244A (en) * | 1995-01-25 | 1999-03-02 | Advanced Micro Devices, Inc. | Reorder buffer configured to allocate storage capable of storing results corresponding to a maximum number of concurrently receivable instructions regardless of a number of instructions received |
US6237082B1 (en) | 1995-01-25 | 2001-05-22 | Advanced Micro Devices, Inc. | Reorder buffer configured to allocate storage for instruction results corresponding to predefined maximum number of concurrently receivable instructions independent of a number of instructions received |
US5901302A (en) * | 1995-01-25 | 1999-05-04 | Advanced Micro Devices, Inc. | Superscalar microprocessor having symmetrical, fixed issue positions each configured to execute a particular subset of instructions |
US5903741A (en) * | 1995-01-25 | 1999-05-11 | Advanced Micro Devices, Inc. | Method of allocating a fixed reorder buffer storage line for execution results regardless of a number of concurrently dispatched instructions |
US5872951A (en) * | 1996-07-26 | 1999-02-16 | Advanced Micro Design, Inc. | Reorder buffer having a future file for storing speculative instruction execution results |
US5915110A (en) * | 1996-07-26 | 1999-06-22 | Advanced Micro Devices, Inc. | Branch misprediction recovery in a reorder buffer having a future file |
US5946468A (en) * | 1996-07-26 | 1999-08-31 | Advanced Micro Devices, Inc. | Reorder buffer having an improved future file for storing speculative instruction execution results |
US5983342A (en) * | 1996-09-12 | 1999-11-09 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing a future file for storing results into multiportion registers |
WO1999008184A1 (en) * | 1997-08-06 | 1999-02-18 | Advanced Micro Devices, Inc. | An apparatus and method for accessing special registers without serialization |
US6055620A (en) * | 1997-09-18 | 2000-04-25 | Lg Semicon Co., Ltd. | Apparatus and method for system control using a self-timed asynchronous control structure |
US6044453A (en) * | 1997-09-18 | 2000-03-28 | Lg Semicon Co., Ltd. | User programmable circuit and method for data processing apparatus using a self-timed asynchronous control structure |
US6334182B2 (en) * | 1998-08-18 | 2001-12-25 | Intel Corp | Scheduling operations using a dependency matrix |
US6329838B1 (en) * | 1999-03-09 | 2001-12-11 | Kabushiki Kaisha Toshiba | Logic circuits and carry-lookahead circuits |
EP1050799A1 (en) * | 1999-05-03 | 2000-11-08 | STMicroelectronics S.A. | Execution of a computer program |
US6591343B1 (en) * | 2000-02-22 | 2003-07-08 | Ip-First, Llc | Predecode in parallel with TLB compare |
US7062767B1 (en) * | 2000-09-05 | 2006-06-13 | Raza Microelectronics, Inc. | Method for coordinating information flow between components |
US6754808B1 (en) * | 2000-09-29 | 2004-06-22 | Intel Corporation | Valid bit generation and tracking in a pipelined processor |
JP3709553B2 (ja) * | 2000-12-19 | 2005-10-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 演算回路および演算方法 |
JP3755415B2 (ja) * | 2001-04-04 | 2006-03-15 | 株式会社デンソー | 処理実行装置、当該処理実行装置に搭載される処理プログラム、及び記録媒体 |
US7203817B2 (en) * | 2001-09-24 | 2007-04-10 | Broadcom Corporation | Power consumption reduction in a pipeline by stalling instruction issue on a load miss |
US6976152B2 (en) * | 2001-09-24 | 2005-12-13 | Broadcom Corporation | Comparing operands of instructions against a replay scoreboard to detect an instruction replay and copying a replay scoreboard to an issue scoreboard |
US7269714B2 (en) | 2001-09-24 | 2007-09-11 | Broadcom Corporation | Inhibiting of a co-issuing instruction in a processor having different pipeline lengths |
US7251594B2 (en) * | 2001-12-21 | 2007-07-31 | Hitachi, Ltd. | Execution time modification of instruction emulation parameters |
US7260217B1 (en) * | 2002-03-01 | 2007-08-21 | Cavium Networks, Inc. | Speculative execution for data ciphering operations |
US7085940B2 (en) * | 2002-05-09 | 2006-08-01 | International Business Machines Corporation | Floating point unit power reduction via inhibiting register file write during tight loop execution |
JP4283576B2 (ja) * | 2003-03-27 | 2009-06-24 | 株式会社日立製作所 | トランザクション同期方法、データベースシステム及びデータベース装置 |
US7555633B1 (en) | 2003-11-03 | 2009-06-30 | Advanced Micro Devices, Inc. | Instruction cache prefetch based on trace cache eviction |
US8069336B2 (en) * | 2003-12-03 | 2011-11-29 | Globalfoundries Inc. | Transitioning from instruction cache to trace cache on label boundaries |
US7197630B1 (en) | 2004-04-12 | 2007-03-27 | Advanced Micro Devices, Inc. | Method and system for changing the executable status of an operation following a branch misprediction without refetching the operation |
US20060282821A1 (en) * | 2005-06-10 | 2006-12-14 | Renno Erik K | Efficient subprogram return in microprocessors |
GB2463278B (en) * | 2008-09-05 | 2012-05-16 | Advanced Risc Mach Ltd | Scheduling control within a data processing system |
US8103850B2 (en) * | 2009-05-05 | 2012-01-24 | International Business Machines Corporation | Dynamic translation in the presence of intermixed code and data |
US8055883B2 (en) * | 2009-07-01 | 2011-11-08 | Arm Limited | Pipe scheduling for pipelines based on destination register number |
US9176738B2 (en) * | 2011-01-12 | 2015-11-03 | Advanced Micro Devices, Inc. | Method and apparatus for fast decoding and enhancing execution speed of an instruction |
US8935574B2 (en) | 2011-12-16 | 2015-01-13 | Advanced Micro Devices, Inc. | Correlating traces in a computing system |
US8683296B2 (en) | 2011-12-30 | 2014-03-25 | Streamscale, Inc. | Accelerated erasure coding system and method |
US8914706B2 (en) | 2011-12-30 | 2014-12-16 | Streamscale, Inc. | Using parity data for concurrent data authentication, correction, compression, and encryption |
US9268569B2 (en) * | 2012-02-24 | 2016-02-23 | Apple Inc. | Branch misprediction behavior suppression on zero predicate branch mispredict |
US9087409B2 (en) * | 2012-03-01 | 2015-07-21 | Qualcomm Incorporated | Techniques for reducing memory access bandwidth in a graphics processing system based on destination alpha values |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
US8682877B2 (en) * | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
US8966324B2 (en) | 2012-06-15 | 2015-02-24 | International Business Machines Corporation | Transactional execution branch indications |
US8880959B2 (en) | 2012-06-15 | 2014-11-04 | International Business Machines Corporation | Transaction diagnostic block |
US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US9317460B2 (en) | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
US8832500B2 (en) | 2012-08-10 | 2014-09-09 | Advanced Micro Devices, Inc. | Multiple clock domain tracing |
US8959398B2 (en) | 2012-08-16 | 2015-02-17 | Advanced Micro Devices, Inc. | Multiple clock domain debug capability |
US8972645B2 (en) * | 2012-09-19 | 2015-03-03 | Hewlett-Packard Development Company, L.P. | Request sent to storage device based on moving average |
US9710278B2 (en) * | 2014-09-30 | 2017-07-18 | International Business Machines Corporation | Optimizing grouping of instructions |
US9852202B1 (en) * | 2016-09-23 | 2017-12-26 | International Business Machines Corporation | Bandwidth-reduced coherency communication |
CN106406814B (zh) * | 2016-09-30 | 2019-06-14 | 上海兆芯集成电路有限公司 | 处理器和将架构指令转译成微指令的方法 |
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
US10360034B2 (en) | 2017-04-18 | 2019-07-23 | Samsung Electronics Co., Ltd. | System and method for maintaining data in a low-power structure |
US11256621B2 (en) | 2019-06-25 | 2022-02-22 | Seagate Technology Llc | Dual controller cache optimization in a deterministic data storage system |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4807115A (en) | 1983-10-07 | 1989-02-21 | Cornell Research Foundation, Inc. | Instruction issuing mechanism for processors with multiple functional units |
US5136697A (en) | 1989-06-06 | 1992-08-04 | Advanced Micro Devices, Inc. | System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache |
GB9123271D0 (en) | 1991-11-02 | 1991-12-18 | Int Computers Ltd | Data processing system |
US5560025A (en) | 1993-03-31 | 1996-09-24 | Intel Corporation | Entry allocation apparatus and method of same |
US5454117A (en) | 1993-08-25 | 1995-09-26 | Nexgen, Inc. | Configurable branch prediction for a processor performing speculative execution |
US5519864A (en) | 1993-12-27 | 1996-05-21 | Intel Corporation | Method and apparatus for scheduling the dispatch of instructions from a reservation station |
US5546597A (en) | 1994-02-28 | 1996-08-13 | Intel Corporation | Ready selection of data dependent instructions using multi-cycle cams in a processor performing out-of-order instruction execution |
US5555432A (en) | 1994-08-19 | 1996-09-10 | Intel Corporation | Circuit and method for scheduling instructions by predicting future availability of resources required for execution |
US5884059A (en) * | 1996-01-26 | 1999-03-16 | Advanced Micro Devices, Inc. | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor |
US5761776A (en) | 1997-01-30 | 1998-06-09 | 532341 Ontario Inc. | Locking hook with integral separator |
US5858176A (en) | 1997-04-22 | 1999-01-12 | Betzdearborn Inc. | Compositions and methods for inhibiting fouling of vinyl monomers |
-
1996
- 1996-10-04 DE DE69629495T patent/DE69629495T2/de not_active Expired - Lifetime
- 1996-10-04 WO PCT/US1996/015743 patent/WO1997013201A1/en active IP Right Grant
- 1996-10-04 EP EP96937644A patent/EP0870228B1/en not_active Expired - Lifetime
- 1996-10-04 JP JP51437297A patent/JP3720371B2/ja not_active Expired - Fee Related
- 1996-10-04 AU AU75504/96A patent/AU7550496A/en not_active Abandoned
-
1999
- 1999-02-18 US US09/252,898 patent/US6195744B1/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014215624A (ja) * | 2013-04-22 | 2014-11-17 | 富士通株式会社 | 演算処理装置 |
JP2017059273A (ja) * | 2017-01-05 | 2017-03-23 | 富士通株式会社 | 演算処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3720371B2 (ja) | 2005-11-24 |
US6195744B1 (en) | 2001-02-27 |
DE69629495T2 (de) | 2004-06-09 |
DE69629495D1 (de) | 2003-09-18 |
EP0870228B1 (en) | 2003-08-13 |
AU7550496A (en) | 1997-04-28 |
WO1997013201A1 (en) | 1997-04-10 |
EP0870228A1 (en) | 1998-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH11510291A (ja) | スーパースケーラープロセッサにおけるout−of−order実行のための統一化された機能オペレーションスケジューラ | |
US5799165A (en) | Out-of-order processing that removes an issued operation from an execution pipeline upon determining that the operation would cause a lengthy pipeline delay | |
US5884059A (en) | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor | |
US7117347B2 (en) | Processor including fallback branch prediction mechanism for far jump and far call instructions | |
US6247106B1 (en) | Processor configured to map logical register numbers to physical register numbers using virtual register numbers | |
US6336183B1 (en) | System and method for executing store instructions | |
US5745724A (en) | Scan chain for rapidly identifying first or second objects of selected types in a sequential list | |
EP0381444A2 (en) | Branch prediction | |
CN108196884B (zh) | 利用生成重命名的计算机信息处理器 | |
US20050149698A1 (en) | Scoreboarding mechanism in a pipeline that includes replays and redirects | |
JPH07334364A (ja) | スーパースカラマイクロプロセッサおよびropを処理する方法 | |
JPH11510289A (ja) | Risc86命令セット | |
US20080109644A1 (en) | System and method for using a working global history register | |
JP5301554B2 (ja) | プロシージャリターンシーケンスを加速するための方法およびシステム | |
US20040064684A1 (en) | System and method for selectively updating pointers used in conditionally executed load/store with update instructions | |
US20070174592A1 (en) | Early conditional selection of an operand | |
JP3683439B2 (ja) | 分岐予測を抑止する情報処理装置および方法 | |
US20050144427A1 (en) | Processor including branch prediction mechanism for far jump and far call instructions | |
JP3717524B2 (ja) | ストアおよびロードミス命令を完了するための複数のポインタを備えるロード/ストアユニット | |
JPH11510290A (ja) | シーケンシャルなリスト内の選択されたタイプの第1もしくは第2のオブジェクトを迅速に特定するためのスキャンチェーン | |
KR100459152B1 (ko) | 수퍼스칼라프로세서에서의순서를벗어난실행을위한통합된다중기능연산스케쥴러 | |
EP0853786B1 (en) | Out-of-order processing with operation bumping to reduce pipeline delay | |
JP2886838B2 (ja) | スーパースカラパイプライン式データ処理装置の可変長命令の並列デコーディング装置及び方法 | |
KR100384213B1 (ko) | 순차리스트내의선택된타입의제1또는제2대상을인식하는처리시스템,선택회로및방법 | |
US5729729A (en) | System for fast trap generation by creation of possible trap masks from early trap indicators and selecting one mask using late trap indicators |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20031212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050629 |
|
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: 20050830 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050908 |
|
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: 20080916 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |