JP3724507B2 - スーパースカラープロセッサ及びデータ処理装置 - Google Patents
スーパースカラープロセッサ及びデータ処理装置 Download PDFInfo
- Publication number
- JP3724507B2 JP3724507B2 JP2005142583A JP2005142583A JP3724507B2 JP 3724507 B2 JP3724507 B2 JP 3724507B2 JP 2005142583 A JP2005142583 A JP 2005142583A JP 2005142583 A JP2005142583 A JP 2005142583A JP 3724507 B2 JP3724507 B2 JP 3724507B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- unit
- address
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims abstract description 43
- 239000000872 buffer Substances 0.000 claims abstract description 117
- 230000008859 change Effects 0.000 claims description 14
- 238000000034 method Methods 0.000 description 71
- 230000006870 function Effects 0.000 description 46
- 238000012546 transfer Methods 0.000 description 43
- 239000013598 vector Substances 0.000 description 34
- 238000010586 diagram Methods 0.000 description 19
- 230000004044 response Effects 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 10
- 238000013519 translation Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 238000006073 displacement reaction Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 101100269885 Arabidopsis thaliana ANN1 gene Proteins 0.000 description 1
- 101100269886 Arabidopsis thaliana ANN2 gene Proteins 0.000 description 1
- 102100031024 CCR4-NOT transcription complex subunit 1 Human genes 0.000 description 1
- 102100031025 CCR4-NOT transcription complex subunit 2 Human genes 0.000 description 1
- 101000919674 Caenorhabditis elegans CCR4-NOT transcription complex subunit let-711 Proteins 0.000 description 1
- 101001092183 Drosophila melanogaster Regulator of gene activity Proteins 0.000 description 1
- 101000919672 Homo sapiens CCR4-NOT transcription complex subunit 1 Proteins 0.000 description 1
- 101000919667 Homo sapiens CCR4-NOT transcription complex subunit 2 Proteins 0.000 description 1
- 101100491597 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) arg-6 gene Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000003079 width control Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/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/38—Concurrent instruction execution, e.g. pipeline, look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30116—Shadow registers, e.g. coupled registers, not forming part of the register space
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- 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/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/327—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
-
- 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
-
- 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/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- 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/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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
-
- 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
- G06F9/3828—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
-
- 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
-
- 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/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/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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/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, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
Description
(1)発明の名称「高性能RISCマイクロプロセッサ・アーキテクチャ」(High-Performance RISC Microprocessor Architecture) SMOS 7984 MCF/GBR, 米国特許出願第07/727,006号、1991年7月8日出願、発明者Le T.Nguyen 他、及びこれに対応する特願平5ー502150号(特表平6ー501122号公報)。
(2)「アーキテクチャ上の依存関係を隔離したRISCマイクロプロセッサ・アーキテクチャ」(RISC Microprocessor Architecture with Isolated Architectural Dependencies) SMOS 7987 MCF/GBR, 米国特許出願第07/726,744号、1991年7月8日出願、発明者Le T. Nguyen他、及びこれに対応する特願平5ー502152号(特表平6ー502034号公報)。
(3)発明の名称「複数型レジスタ・セットを採用したRISCマイクロプロセッサ・アーキテクチャ」(RISC Microprocessor Architecture ImplementingMultiple Typed Register Sets) SMOS 7988 MCF/GBR/RCC,米国特許出願第07/726,773号、1991年7月8日出願、発明者Sanjiv Garg 他、及びこれに対応する特願平5ー502403号(特表平6ー501805号公報)。
(4)発明の名称「高速トラップと例外状態をインプリメントしたRISCマイクロプロセッサ・アーキテクチャ」(RISC Microprocessor Architecture Implementing Fast Trap and Exception State) SMOS 7989 MCF/GBR/WSW, 米国特許出願第07/726,942号、1991年7月8日出願、発明者Le T.Nguyen 他、及びこれに対応する特願平5ー502154号(特表平6ー502035号公報)。
(5)発明の名称 「シングル・チップ・ページ・プ リンタ・コントーラ」(Single Chip Page Printer Controller) SMOS 7991 MCF/GBR,米国特許出願第07/726,929号、1991年7月8日出願、発明者Derek J.Lentz 他、及びこれに対応する特願平5ー502149号(特表平6ー501586号公報)。
(6)発明の名称「複数の異種プロセッサをサポートすることのできるマイクロプロセッサ・アーキテク チャ」(Microprocessor Architecture Capable of Supporting Multiple Heterogeneous Processors) SMOS 7992 MCF/WMB,米国特許出願第07/726,893号、1991年7月8日出願、発明者Derek J.Lentz 他、及びこれに対応する特願平5ー502151号(特表平6ー501123号公報)。
命令をデコードするデコーダと、
前記デコーダでデコード済みで実行が完了していない複数の命令を格納する命令バッファと、
決められたプログラム順序と無関係に命令を実行可能な複数の機能ユニットと、
前記命令バッファ内に格納されている未実行の命令を順序外で実行可能か否かを判断する依存関係チェックユニットと、
前記依存関係チェックユニットによって順序外で実行可能と判断された命令について、前記複数の機能ユニットでの実行を割り当てる命令発行ユニットと、
最近にリタイアした命令の実行により得られたプロセッサステータスを格納するプロセッサ状態レジスタと、
前記命令バッファ内に格納されている複数の命令に対応して設けられた複数の一時プロセッサ状態レジスタと、
を備え、
前記複数の一時プロセッサ状態レジスタは、
(i)命令の順序外での実行が完了すると、当該命令の完了により生じたプロセッサステータスの変更が当該命令に対応付けられた一時プロセッサ状態レジスタに反映されるとともに、
(ii)命令がリタイアするときに、当該命令に対応付けられた一時プロセッサ状態レジスタ内のプロセッサステータスが前記プロセッサ状態レジスタに転送されるように構成されており、
前記依存関係チェックユニットは、前記複数の一時プロセッサ状態レジスタを参照して前記命令バッファ内に格納されている未実行の命令を順序外で実行可能か否かを判断する。
I. マイクロプロセッサ・アーキテクチャの概要
II. 命令フェッチユニット
A)IFUデータ経路
B)IFU制御経路
C)IFU/IEU制御インタフェース
D)PCロジック・ユニットの詳細
1)PFおよびExPC制御/データ・ユニットの詳細
2)PC制御アルゴリズムの詳細
E)割込みおよび例外の処理
1)概要
2)非同期割込み
3)同期例外
4)ハンドラ・ディスパッチとリターン
5)ネスト
6)トラップ一覧表
III.命令実行ユニット
A)IEUデータ経路の詳細
1)レジスタ・ファイルの詳細
2)整数データ経路の詳細
3)浮動小数点データ経路の詳細
4)ブール・レジスタ・データ経路の詳細
B)ロード/ストア制御ユニット
C)IEU制御経路の詳細
1)Eデコード・ユニットの詳細
2)キャリー・チェッカ・ユニットの詳細
3)データ依存関係チェッカ・ユニットの詳細
4)レジスタ改名ユニットの詳細
5)命令発行ユニットの詳細
6)完了制御ユニットの詳細
7)リタイア制御ユニットの詳細
8)制御フロー制御ユニットの詳細
9)バイパス制御ユニットの詳細
IV.仮想メモリ制御ユニット
V.キャッシュ制御ユニット
VI.要約及び結論
以下に目次に従って説明する。
I.マイクロプロセッサ・アーキテクチャの概要
図1は、本発明のアーキテクチャ 100の概要を示すものである。命令フェッチ・ユニット(IFU) 102 と命令実行ユニット(IEU) 104 は、アーキテクチャ 100の中心となる機能要素である。仮想メモリ・ユニット(VMU) 108 、キャッシュ制御ユニット(CUU) 106 、およびメモリ制御ユニット(MCU) 110は、IFU 102 とIEU 104 の機能を直接にサポートするためのものである。また、メモリ・アレイ・ユニット(MAU) 112 は基本的要素として、アーキテクチャ 100を動作させるためのものである。もっとも、MAU 112 はアーキテクチャ 100の1つの一体的なコンポーネントとして直接的に存在しない。つまり、本発明の好適実施例では、IFU 102 、IEU 104 、VMU 108 、CCU 106 、およびMCU 110 は従来の 0.8ミクロン設計ルールの低電力CMOSプロセスを利用してシングル・シリコン・チップ上に実装され、約1,200,000 個のトランジスタから構成されている。アーキテクチャ100 の標準プロセッサまたはシステムのクロック速度は 40 MHZ である。しかし、本発明の好適実施例によれば、プロセッサの内部クロック速度は160 MHZ である。
IFU 102 の基本的役割は命令をフェッチし、 IEU104 による実行が保留されている間命令をバッファに置いておき、一般的には、次の命令をフェッチするとき使用される次の仮想アドレスを計算することである。
II.命令フェッチ・ユニット
命令フェッチ・ユニット102 の主要エレメントを図2に示す。これらのエレメントのオペレーションおよび相互関係を理解しやすくするために、以下では、これらのエレメントが IFUデータ経路と制御経路に関与する場合を考慮して説明する。
A)IFU データ経路
IFU データ経路は、命令セットを受け取ってプリフェッチ・バッファ260 に一時的にストアしておく命令バス114 から始まる。プリフェッチ・バッファ260 からの命令セットはIデコード・ユニット262 を通ってIFIFO ユニット264 へ渡される。命令FIFO 264の最後の2ステージにストアされた命令セットは、データ・バス278 、280 を通してIEU 104 に連続的に取り出して利用することができる。
好適アーキテクチャ100 では、MBUF 188、TBUF 190、EBUF 192内のプリフェッチ・バッファは直接的にはFIFO構造を構成していない。その代わりに、どのバッファ・ロケーションも出力バス196 に接続されているので、命令用キャッシュ132 から取り出された命令セットのプリフェッチ順序に大幅な自由度をもたせることができる。つまり、命令フェッチ・ユニット102 は命令ストリームに一定順序で並んだ命令順に命令セットを判断して、要求するのが一般的になっている。しかし、命令セットがIFU 102 へ返されるときの順序は、要求したある命令セットが使用可能で、CCU 106 だけからアクセス可能であり、他の命令セットはMAU 102のアクセスを必要とするような場合に合わせて、順序外に現れることも可能である。
Iデコード・ユニット 162からの命令セットはIFIFO ユニット264 の128 ビット幅入力バス198 上に送出される。内部的には、IFIFO ユニット264 はマスタ/スレーブ・レジスタ200 、204 、208 、212 、216 、220 、224 の列から構成されている。各レジスタはその後続レジスタに接続され、マスタ・レジスタ200 、208 、216 の内容がFIFOオペレーションの内部プロセッサ・サイクルの前半時にスレーブ・レジスタ204 、212 、220 へ転送され、そのあとオペレーションの後半サイクル時に次の後続マスタ・レジスタ208 、216 、224 へ転送されるようになっている。入力バス198 はマスタ・レジスタ200 、208 、216 、224 の各々の入力に接続され、FIFOオペレーションの後半サイクル時に命令セットがIデコード・ユニット262 からマスタ・レジスタに直接にロードされるよになっている。しかし、マスタ・レジスタを入力バス198 からロードすることは、IFIFO ユニット264 内でデータをFIFOシフトすることと同時に行う必要はない。その結果、命令FIFOユニット264 内にストアされた命令セットの現在の深さに関係なく、さらに、IFIFO ユニット264 内でデータをFIFOシフトすることから独立して、入力バス198 から連続的にIFIFO ユニット264 に入れていくことができる。
B)IFU 制御経路
IFU 102 制御経路は、プリフェッチ・バッファ・ユニット260 、Iデコード・ユニット262 およびIFIFO ユニット264 のオペレーションを直接にサポートする。プリフェッチ制御ロジック・ユニット266 は主にプリフェッチ・バッファ・ユニット260 のオペレーションを管理する。プリフェッチ制御ロジック・ユニット266 とIFU 102 は一般的には、クロック・ライン290 からシステム・クロック信号を受信して、IFU のオペレーションとIEU 104 、 CCU 106およびVMU 108 のオペレーションとの同期をとるようにしている。命令セットを選択して、MBUF 188、 TBUF 190 およびEBUF 192に書き込むための制御信号は制御ライン304 上に送出される。
プリフェッチIDは、要求がCCU 106 に出されるのと並行して、MBUF 188、TBUF 190、またはEBUF 192内の目標とする記憶ロケーションに対応する、状況レジスタ配列268 内のID記憶ロケーションに書き込まれる。さらに、対応する予約状況フラグが真にセットされる。
C)IFU/IEU 制御インタフェース
IFU 102 とIEU 104 とを結ぶ制御インタフェースは制御バス126 によって提供される。この制御バス126 はPCロジック・ユニット270 に接続され、複数の制御、アドレスおよび特殊データ・ラインから構成されている。割込み要求と受信確認制御信号を制御ライン340 を経由して渡すことにより、IFU 102 は割込みオペレーションを通知し、IEU 104 との同期をとることができる。外部で発生した割込み信号はライン292 経由でロジック・ユニット270 へ送られる。これを受けて、割込み要求制御信号がライン340 上に送出されると、IEU 104 は試行的に実行された命令をキャンセルする。割込みの内容に関する情報は、割込み情報ライン341 を通してやりとりされる。IEU 104 がPCロジック・ユニット270 によって判断された割込みサービス・ルーチンのアドレスからプリフェッチされた命令の受信を開始する準備状態になると、IEU 104 はライン340 上の割込み受信確認制御信号を肯定する。IFU 102 によってプリフェッチされた割込みサービス・ルーチンがそのあと開始される。
制御フロー結果(CF RESULT) 制御信号は制御ライン348 を経由してPCロジック・ユニット270 へ送られて、現在保留されている条件付きブランチ命令が解決されたかどうか、その結果がブランチによるものなのか、ブランチによらないものなのかを示している。これらの制御信号に基づいて、PCロジック・ユニット270 は、条件付きフロー命令の実行の結果として、プリフェッチ・バッファ260 とIFIFO ユニット264 に置かれている命令セットのどれをキャンセルする必要があるかを判断することができる。
D)PCロジック・ユニットの詳細
PC制御ユニット362 、割込み制御ユニット363 、プリフェッチPC制御ユニット364 および実行PC制御ユニット366 を含むPCロジック・ユニット270 の詳細図は図3に示されている。
PC制御ユニット362 はインターフェース・バス126 を通してプリフェッチ制御ユニット266 、IFIFO 制御ロジック・ユニット272 、およびIEU 104 から制御信号を受けて、プリフェッチおよび実行PC制御ユニット364 、366 に対してタイミング制御を行う。割込み制御ユニット363 は、プリフェッチ・トラップ・アドレス・オフセットを判断してそれぞれのトラップ・タイプを処理する該当処理ルーチンを選択することを含めて、割込みと例外の正確な管理を担当する。プリフェッチPC制御ユニット364 は、特に、トラップ処理とプロシージャ・ルーチン命令のフローのためのリターン・アドレスをストアすることを含めて、プリフェッチ・バッファ188 、190 、192 をサポートするために必要なプログラム・カウンタの管理を担当する。このオペレーションをサポートするために、プリフェッチPC制御ユニット364 は、物理アドレス・バス・ライン324 上のCCU PADDERアドレスとアドレス・ライン326 上のVMU VMADDRアドレスを含むプリフェッチ仮想アドレスを生成することを担当する。その結果、プリフェッチPC制御ユニット364 は、現在のプリフェッチPC仮想アドレス値を保持することを担当する。
1) PF およびExPC制御/データ・ユニットの詳細
図4は、プリフェッチおよび実行PC制御ユニット364 、366 の詳細ブロック図である。これらのユニットは主に、レジスタ、インクリメンタ(増分器)その他の類似部品、セレクタおよび加算器ブロックから構成されている。これらのブロック間のデータ転送を管理する制御は、PFPC制御ライン372 、ExPC制御ライン378 およびインクリメント制御ライン374 、380 を通してPC制御ユニット362 によって行われる。説明を分かりやすくするために、図4のブロック図には、これらの個々の制御ラインは示されていない。しかし、これらの制御信号が以下に説明するように、これらのブロックへ送られることは勿論である。
この初期アドレス、つまり、ベース・アドレスはアドレス・バス454 を経由してターゲット・アドレスALU 450 へ送られる。ターゲットALU 450 への入力となるもう1つの値は、制御フロー変位計算ユニット452 からバス458 経由で送られてくる。相対ブランチ命令は、アーキテクチャ100 の好適実施例によれば、新相対ターゲット・アドレスを指定した即値モード定数の形態をした変位置を含んでいる。制御フロー変位計算ユニット452 はIデコード・ユニットのオペランド出力バス318 から初めて得たオペランド変位置を受け取る。最後に、オフセット・レジスタ値はライン456 を経由してターゲット・アドレスALU450へ送られる。オフセット・レジスタ448 はPC制御ユニット362 から制御ライン378'を経由してオフセット値を受け取る。オフセット値の大きさはアドレス・ライン454 上を送られるベース・アドレスから相対ターゲット・アドレスを計算するときの現ブランチ命令のアドレスまでのアドレス・オフセットに基づいてPC制御ユニット362 によって判断される。つまり、PC制御ユニット362 は、IFIFO 制御ロジック・ユニット272 を制御することによって、現実行点アドレスに命令(CP PCによって要求された) とIデコード・ユニット262 によって現在処理中の、従ってPCロジック・ユニット270 によって処理中の命令を分離している命令の個数を追跡して、その命令のターゲット・アドレスを判断する。
2)PC制御アルゴリズムの詳細
1.メイン命令ストリームの処理:MBUF PFnPC
1.1 次のメイン・フロープリフェッチ命令のアドレスはMBUF PFn
PCにストアされる.
1.2 制御フロー命令がないときは、32ビット・インクリメンタはMBU
F PFnPCに入っているアドレス値を各プリフェッチ・サイクル
ごとに16バイト(x16)だけ調整する.
1.3 無条件制御フロー命令がIデコードされると、命令セットに続いてフ
ェッチされた全てのプリフェッチ・データはフラッシュされ、MBU
F PFnPCにはターゲット・レジスタ・ユニット、PF PCセ
レクタおよびインクリメンタを通して、新しいメイン命令ストリーム
・アドレスがロードされる。新しいアドレスは新ストリーム・レジス
タにもストアされる。
が保持しているレジスタ・データからと制御フロー命令
の後に置かれたオペランド・データからIFUによって
計算される.
1.3.2 絶対無条件制御フローのターゲット・アドレスはレジス
タ基準値、ベース・レジスタ値、及びインデックス・レ
ジスタ値からIEUによって最終的に計算される.
1.3.2.1 命令プリフェッチ・サイクルは絶対アドレス制御
フロー命令に対してターゲット・アドレスがIE
Uから返されるまで停止する。命令実行サイクル
は続行される.
1.4 無条件制御フロー命令から得た次のメイン・フロー・プリフェッチ命
令のアドレスはバイパスされて、ターゲット・アドレス・レジスタ・
ユニット、PF_PCセレクタおよびインクリメンタを経由して送ら
れ、最終的にMBUF PFnPCにストアされ、プリフェッチは
1.2から続けられる.
2.プロシージャ命令ストリームの処理:EBUF PFnPC
2.1 プロシージャ命令はメインまたはブランチ・ターゲット命令ストリー
ムの中でプリフェッチされる。ターゲット・ストリームの中でフェッ
チされた場合は条件付き制御フェッチ命令が解決され、プロシージャ
命令がMBUFへ転送されるまでプロシージャ・ストリームのプリフ
ェッチを停止する。これにより、プロシージャ命令ストリームに現れ
た条件付き制御フローを処理する際にTBUFを使用できる.
2.1.1 プロシージャ命令はプロシージャ命令ストリームの中に
おいてはならない。つまり、プロシージャ命令はネスト
してはならない。プロシージャ命令からリターンすると
、実行は主命令ストリームに戻る。ネストを可能にする
ためには、ネストしたプロシージャ命令から別の専用リ
ターンが必要である。アーキテクチャはこの種の命令を
容易にサポートできるが、プロシージャ命令をネストす
る機能があっても、アーキテクチャの性能が向上する見
込みはない.
2.1.2 メイン命令ストリームにおいては、第1及び第2条件付
き制御フロー命令を含む命令セットを含んでいるプロシ
ージャ命令ストリームは第1命令セットの中の条件付き
制御フロー命令が解決し、第2条件付き制御フロー命令
セットがMBUFへ転送されるまで第2条件付き制御フ
ロー命令セットに対してプリフェッチを停止する.
2.2 プロシージャ命令は、命令の即値モード・オペランド・フィールドと
して含まれている相対オフセットによって、プロシージャ・ルーチン
の開始アドレスを示している.
2.2.1 プロシージャ命令から得られたオフセット値はIFUに
維持されているプロシージャ・ベース・アドレス(PB
R)レジスタに入っている値と結合される。このPBR
レジスタは、特殊レジスタの移動命令が実行されると、
特殊アドレスおよびデータバスを通して読み書き可能で
ある.
2.3 プロシージャ命令が現れると、次のメイン命令ストリームIF PC
アドレスはDPCリターン・アドレス・レジスタにストアされ、プロ
セッサ・ステータス・レジスタ(PSR)内のプロシージャ進行中ビ
ット(procedure−in−progress bit)がセ
ットされる.
2.4 プロシージャ・ストリームの開始アドレスは、PBRレジスタ(プロ
シージャ命令オペランド・オフセット値を加えて)からPF PCセ
レクタへ送られる.
2.5 プロシージャ・ストリームの開始アドレスは、新ストリーム・レジス
タ・ユニットとインクリメンタへ同時に送られ、(x16)だけイン
クリメントする。インクリメントされたアドレスはそのあとEBUF
PFnPCにストアされる.
2.6 制御フロー命令がないと、32ビット・インクリメンタは各プロシー
ジャ命令プリフェッチ・サイクルごとにEBUF PFnPCに入っ
ているアドレス値を、(x16)だけ調整する.
2.7 無条件制御フロー命令がIデコードされると、ブランチ命令のあとに
フェッチされた全てのプリフェッチ・データはフラッシュされ、EB
UF PFnPCには新しいプロシージャ命令ストリーム・アドレス
がロードされる.
2.7.1 相対無条件制御フロー命令のターゲット・アドレスはI
FUに保持されているレジスタデータからと制御フロー
命令の即値モード・オペランド・フィールド内に入って
いるオペランド・データとからIFUによって計算され
る.
2.7.2 絶対無条件ブランチのターゲット・アドレスはレジスタ
基準値、ベース・レジスタ値およびインデックス・レジ
スタ値からIEUによって計算される.
2.7.2.1 命令プリフェッチ・サイクルは絶対アドレス・ブ
ランチに対してターゲット・アドレスがIEUか
ら返されるまで停止する。実行サイクルは続行さ
れる.
2.8 次のプロシージャ・プリフェッチ命令セットのアドレスはEBUF
PFnPCにストアされプリフェッチは1.2から続けられる.
2.9 プロシージャ命令からのリターンがIデコードされると、プリフェッ
チがuPCレジスタにストアされているアドレスから続けられ、その
あと(x16)だけインクリメントされ、あとでプリフェッチするた
めにMBUF PFnPCレジスタに返される.
3 ブランチ命令ストリームの処理:TBUF PFnPC
3.1 MBUF命令ストリームの中の最初の命令セットに現れた条件つき制
御フロー命令がIデコードされると、ターゲット・アドレスはそのタ
ーゲット・アドレスが現アドレスに対する相対アドレスならばIFU
によって絶対アドレスならばIEUによって判断される.
3.2 「ブランチを行うバイアス」の場合:
3.2.1 ブランチが絶対アドレスに行われる場合はターゲット・
アドレスがIEUから返されるまで命令プリフェッチ・
サイクルを停止する。実行サイクルは続行される.
3.2.2 PF_PCセレクタとインクリメンタを経由して転送す
ることによってブランチ・ターゲット・アドレスをT
BUF PFnPCにロードする.
3.2.3 ターゲット命令ストリームがプリフェッチされてTBU
Fに入れられたあとで実行するためにIFIFOに送ら
れる。IFIFOとTBUFが一杯になると、プリフェ
ッチを停止する.
3.2.4 32ビット・インクリメンタは各プリフェッチ・サイク
ルごとにTBUF PFnPCに入っているアドレス値
を(x16)だけ調整する.
3.2.5 ターゲット命令ストリーム内の2番目の命令セットに現
れた条件付き制御フロー命令がIデコードされるとプリ
フェッチ・オペレーションを、第1の(主)セット内の
全ての条件付きブランチ命令が解決されるまで停止する
(しかし、先に進んで、相対ターゲット・アドレスを計
算しターゲット・レジスタにストアする).
3.2.6 最初の命令セット内の条件付きブランチを「行う」と解
釈された場合:
3.2.6.1 ブランチのソースがプロシージャ進行中ビットか
ら判断されたEBUF命令セットであったときは
MBUFまたはEBUFに入っている最初の条件
付きフロー命令セットのあとに置かれた命令セッ
トをフラッシュする.
3.2.6.2 プロシージャ進行中ビットの状態に基づいて、T
BUF PFnPC値をMBUF PFnPCま
たはEBUFへ転送する.
3.2.6.3 プロシージャ進行中ビットの状態に基づいて、プ
リフェッチしたTBUF命令をMBUFまたはE
BUFへ転送する.
3.2.6.4 2番目の条件付きブランチ命令セットがIデコー
ドされていなければ、プロシージャ進行中ビット
の状態に基づいて、MBUFまたはEBUFプリ
フェッチ・オペレーションを続行する.
3.2.6.5 2番目の条件付きブランチ命令がIデコードされ
ていれば、その命令の処理を開始する(ステップ
3.3.1へ進む).
3.2.7 最初の条件付き命令セットの中の命令に対する条件付き
制御を「行わない」と解釈された場合:
3.2.7.1 ターゲット命令ストリームからの命令セットと命
令のIFIFOとIEUをフラッシュする.
3.2.7.2 MBUFまたはEBUFプリフェッチ・オペレー
ションを続行する.
3.3 「ブランチが行われないバイアス」の場合:
3.3.1 命令をプリフェッチしてMBUFに入れることを停止す
る。実行サイクルを続ける.
3.3.1.1 最初の条件付き命令セットの中の条件付き制御フ
ロー命令が相対ならばターゲット・アドレスを計
算し、ターゲット・レジスタにストアする.
3.3.1.2 最初の条件付き命令セットの中の条件付き制御フ
ロー命令が絶対ならば、IEUがターゲット・ア
ドレスを計算して、そのアドレスをターゲット・
レジスタに返すまで待つ.
3.3.1.3 2番目の命令セットの中の条件付き制御フロー命
令のIデコードが行われると、最初の条件付き命
令セットの中の条件付き制御フロー命令が解決さ
れるまでプリフェッチ・オペレーションを停止す
る.
3.3.2 最初の条件付きブランチのターゲット・アドレスが計算
されると、TBUF PFnPCにロードし、メイン命
令ストリームの実行と並行して命令をプリフェッチして
TBUFに入れることを開始する。ターゲット命令セッ
トはロードされない(したがって、ブランチ・ターゲッ
ト命令は最初の命令セット中の各条件付き制御フロー命
令が解決されたとき用意されている).
3.3.3 最初のセットの中の条件つき制御フロー命令が「行われ
る」と解釈された場合:
3.3.3.1 ブランチのソースがEBUF命令ストリームであ
るとプロシージャ進行中ビットの状態から判断さ
れると、MBUFまたはEBUFをフラッシュし
、最初の条件付きブランチ命令セットのあとに置
かれたメイン・ストリームからの命令のIFIF
OとIEUをフラッシュする.
3.3.3.2 プロシージャ進行中ビットの状態から判断した通
りに、TBUF PFnPC値をMBUF PF
nPCまたはEBUFへ転送する.
3.3.3.3 プロシージャ進行中ビットの状態から判断した通
りに、プリフェッチしたTBUF命令をMBUF
またはEBUFへ転送する.
3.3.3.4 プロシージャ進行中ビットの状態から判断した通
りに、MBUFまたはEBUFプリフェッチ・オ
ペレーションを続行する.
3.3.4 最初のセット内の条件付き制御フロー命令が「行われな
い」と解析された場合:
3.3.4.1 ターゲット命令ストリームからの命令セットのT
BUFをフラッシュする.
3.3.4.2 2番目の条件付きブランチ命令がIデコードされ
なかった場合は、プロシージャ進行中ビットの状
態から判断した通りに、MBUFまたはEBUF
プリフェッチ・オペレーションを続ける.
3.3.4.3 2番目の条件付きブランチ命令がIデコードされ
た場合は、その命令の処理を開始する(ステップ
3.4.1へ進む).
4 割り込み、例外およびトラップ命令
4.1 トラップは広義には次のものからなる。
4.1.1.1 非同期(外部)発生事象、内部または外部.
4.1.1.2 いつでも発生し、持続する.
4.1.1.3 アトミック(通常)命令間で優先順にサービスを
受け、プロシージャ命令を一時中止する.
4.1.1.4 割り込みハンドラの開始アドレスはトラップ・ハ
ンドラ入り口点の事前定義テーブルまでのベクト
ル番号オフセットとして判断される.
4.1.2 ソフトウェア・トラップ命令
4.1.2.1 非同期(外部)発生命令.
4.1.2.2 例外として実行されるソフトウェア命令.
4.1.2.3 トラップ・ハンドラの開始アドレスは、TBRま
たはFTBレジスタにストアされたベース・アド
レス値と結合されたトラップ番号オフセットから
判断される.
4.1.3 例外
4.1.3.1 命令と同期して発生する事象.
4.1.3.2 命令の実行時に処理される.
4.1.3.3 例外の結果により、期待された命令とすべての後
続実行命令はキャンセルされる.
4.1.3.4 例外ハンドラの開始アドレスは、トラップ・ハ
ンドラ入り口点の事前定義テーブルまでのトラッ
プ番号オフセットから判断される.
4.2 トラップ命令ストリーム・オペレーションはそのとき実行中の命令ス
トリームとインラインで実行される.
4.3 トラップ処理ルーチンが次の割り込み可能トラップの前にxPCアド
レスをセーブすることを条件に、トラップはネストが可能である。そ
うしないと、現トラップ・オペレーションの完了前にトラップが現れ
ると、マシンの状態が壊れることになる.
5 トラップ命令ストリームの処理:xPC
5.1 トラップが現れた時:
5.1.1 非同期割り込みが起こると、そのとき実行中の命令は一
時中断される.
5.1.2 同期例外が起こると、例外を起こした命令が実行される
とトラップが処理される.
5.2 トラップが処理されたとき:
5.2.1 割り込みは禁止される.
5.2.2 現在のIF PCアドレスはxPCトラップ状態リター
ン・アドレス・レジスタにストアされる.
5.2.3 IF PCアドレスとそのあとのアドレスにあるIFI
FOとMBUFプリフェッチ・バッファはフラッシュさ
れる.
5.2.4 アドレスIF PCと、そのあとのアドレスの実行され
た命令と、その命令の結果はIEUからフラッシュされ
る.
5.2.5 MBUF PFnPCに、トラップ・ハンドラ・ルーチ
ンのアドレスがロードされる.
5.2.5.1 トラップのソースは特殊レジスタ群に入っている
トラップ番号によって判断されたトラップ・タイ
プに応じてTBRまたはFTBレジスタをアドレ
ス指定している.
5.2.6 命令がプリフェッチされ、通常通りに実行するためにI
FIFOに入れられる.
5.2.7 トラップ・ルーチンの命令がそのあと実行される.
5.2.7.1 トラップ処理ルーチンはxPCアドレスを所定の
ロケーションにセーブする機能を備え、割り込み
を再び可能にする。xPCレジスタは特殊レジス
タ移動命令で、および特殊レジスタ・アドレスと
データ・バスを通して読み書きされる.
5.2.8 トラップ命令からのリターンを実行することによってト
ラップ状態から抜け出る必要がある.
5.2.8.1 以前にセーブしていた時はxPCアドレスをその
事前定義ロケーションから復元してからトラップ
命令からのリターンを実行する必要がある.
5.3 トラップ命令からのリターンが実行されたとき:
5.3.1 割り込みが可能にされる.
5.3.2 プロシージャ進行中ビットの状態から判断したとおりに
、xPCアドレスが現在の命令ストリーム・レジスタM
BUFまたはEBUF PFnPCに戻され、プリフェ
ッチがそのアドレスから続行される.
5.3.3 xPCアドレスが新ストリーム・レジスタを通してIF
PCレジスタに復元される.
E)割込みおよび例外の処理
1)概要
割込みと例外は、それらが可能にされている限り、プロセッサがメイン命令ストリームから実行されているか、プロシージャ命令ストリームから実行されているかに関係なく処理される。割込みと例外は優先順にサービスが受けられ、クリアされるまで持続してる。トラップ・ハンドラの開始アドレスは、下述するように、トラップ・ハンドラの事前定義テーブルまでのベクトル番号オフセットとして判断される。
2)非同期割込み
非同期割込みは、割込みライン292 を通してPCロジック・ユニット270 に通知される。図3に示すように、これらのラインはPCロジック・ユニット270 内の割込みロジック・ユニット363 に通知するためのもので、NMI ライン、IRQ ラインおよび1組の割込みレベル・ライン(LVL) からなっている。NMI ラインはマスク不能割込みを通知し、外部ソースを起点としている。これは、ハードウェア・リセットを除き最高優先度割込みである。IRQ ラインも外部ソースを起点としており、外部デバイスがハードウェア割込みをいつ要求したかを通知する。好適実施例では、外部から起こされるハードウェア割込みは最高32までユーザが定義することができ、割込みを要求した特定外部デバイスは割込みレベル・ライン(LVL) 上に割込み番号(0ー31) を送出する。メモリ・エラー・ラインはMCU 110 によってアクティベート( 活動化) され、様々な種類のメモリ・エラーを通知する。その他の非同期割込みライン( 図示せず) も割込みロジック・ユニット363 に通知するために設けられている。これらには、タイマ/カウンタ割込み、メモリ入出力(I/O)エラー割込み、マシン・チェック割込み、およびパフォーマンス・モニタ割込みを要求するためのラインがある。
非同期割込みの各々は、下述する同期例外と同様に、対応する事前定義トラップ番号が関連づけられている。これらのトラップ番号は32個が32個のハードウェア割込みレベルと関連づけられている。これらのトラップ番号のテーブルは割込みロジック・ユニット363 に維持されている。一般に、トラップ番号が大きくなると、トラップの優先度が高くなる。
3)同期例外
同期例外の場合は、割込み制御ユニット363 は各命令セットごとに4個が1組の内部例外ビット(図示せず)をもっており、各ビットはセット内の各命令に対応づけられている。割込み制御ユニット363 は各命令で見つかったとき、通知するトラップ番号も維持している。
4)ハンドラ・ディスパッチとリターン:
割込み受信確認信号がライン340 経由でIEU から受信されるか、あるいはゼロ以外の例外ベクトルがライン341 経由で受信された後、現DPC がリターン・アドレスとして特殊レジスタ412 (図4)の1つであるxPC レジスタに一時的にストアされる。現プロセッサ状態レジスタ(PSR) は先のPSR(PPSR) レジスタにもストアされ、そして現状態比較レジスタ(CSR) が特殊レジスタ412 の中の旧状態比較レジスタ(PCSR)にセーブされる。
32個またはそれ以下の命令で実現できる標準的なTLB 処理ルーチンのような、小さなプログラムの実行は、実際の実行処理ルーチンへの予備的ブランチが回避されるので、通常のトラップよりも高速化される。
5) ネスト:
ある種のプロセッサ状況情報は、トラップ・ハンドラ、特に、CSR 、PSR 、リタンPC、およびある意味では"A" レジスタ・セットre[24]〜re[31]へディスパッチするとき自動的にバックアップがとられるが、他のコンテキスト情報は保護されていない。例えば、浮動小数点状況レジスタ(FSR) の内容は自動的にバックアップがとられない。トラップ・ハンドラがこれらのレジスタを変更するためには、独自のバックアップを実行しなければならない。
6)トラップ一覧表:
次の表Iは、好適実施例で認識されるトラップのトラップ番号、優先度および処理モードを示すものである。
───────────────────────────────────
トラップ番号 処理モード 同期 トラップ名
0−127 通常 同期 トラップ命令
128 通常 同期 FP例外
129 通常 同期 整数算術演算例外
130 通常 同期 MMU(TLB不一致または
修正を除く)
135 通常 同期 不整列メモリアドレス
136 通常 同期 違法命令
137 通常 同期 特権命令
138 通常 同期 デバッグ例外
144 通常 非同期 性能モニタ
145 通常 非同期 タイマ/カウンタ
146 通常 非同期 メモリI/Oエラー
160−191 通常 非同期 ハードウェア割込み
192−253 予約
254 通常 非同期 マシン・チェック
255 通常 非同期 NMI
0 高速トラップ 同期 高速MMU TLB不一致
1 高速トラップ 同期 高速MMU TLB修正
2−3 高速トラップ 同期 高速(予約)
4−7 高速トラップ 同期 高速(予約)
III.命令実行ユニット
図5は、IEU 104 の制御経路部分とデータ経路部分を示したものである。主要データ経路は、IFU 102 からの命令/オペランド・データ・バスを始端としている。データ・バスとして、即値オペランドはオペランド位置合わせユニット470 へ送られ、レジスタ・ファイル(REG ARRAY)472に渡される。レジスタ・データはレジスタ・ファイル472 からバイパス・ユニット474 を通って、レジスタ・ファイル出力バス476 を経由し、分配バス480 を経由して機能計算エレメント(FUo-n) の並列配列へ送られる。機能ユニット478o-nによって生成されたデータは、出力バス482 を経由してバイパス・ユニット474 またはレジスタ配列472 または両方へ送り返される。
IEU 104 の制御経路部分はIEU データ経路を通る情報の送出、管理、およびその処理を行うことを担当する本発明の好適実施例では、IEU 制御経路は複数の命令の並行実行を管理する機能を備え、IEU データ経路は、IEU 104 のほぼすべてのデータ経路エレメント間の複数のデータ転送を独立して行う機能を備えている。IEU 制御経路は命令/オペランド・バス124 を経由して命令を受信すると、それを応じて動作する。具体的には、命令セットはEデコード・ユニット490 によって受信される。本発明の好適実施例では、Eデコード・ユニット490 はIFIFO マスタ・レジスタ216 、224 に保持されている両方の命令セットを受信して、デコードする。8命令すべてのデコードの結果は、キャリー・チェッカ(CRY CHKR)ユニット492 、依存性チェッカ(DEP CHKR)ユニット494 、レジスタ改名ユニット(REG RENAME)496、命令発行(ISSUEUR) ユニット498 およびリタイア制御ユニット(RETIRE CLT)500 へ送られる。
A)IEU データ経路の詳細
IEU データ経路の中心となるエレメントはレジスタ・ファイル472 である。しかし、本発明によれば、IEU データ経路内には、個々の機能用に最適化された並列データ経路がいくつか用意されている。主要データ経路は整数と浮動小数点の2つである。各並列データ経路内では、レジスタ・ファイル472 の一部そのデータ経路内で行われるデータ操作をサポートするようになっている。
1)レジスタ・ファイルの詳細
図6(a)は、データ経路レジスタ・ファイル550 の好適アーキテクチャの概要図である。データ経路レジスタ・ファイル550 は一時バッファ552 、レジスタ・ファイル配列564 、入力セレクタ559 、および出力セレクタ556 を含んでいる。最終的にレジスタ配列564 へ送られるデータは、統合データ入力バス558'を経由して一時バッファ552 によって最初に受信されるのが代表例である。つまり、データ経路レジスタ・ファイル550 へ送られるデータはすべて入力セレクタ559 によって多重化されて、複数の入力バス55(好ましくは2つの)から入力バス558'上に送出される。制御バス518 上に送出されたレジスタ選択およびイネーブル制御信号は一時バッファ552 内の受信データのレジスタ・ロケーションを選択する。一時バッファにストアされるデータを生成した命令がリタイアされると、再び制御バス518 上に送出された制御信号は一時バッファ552 からレジスタ・ファイル配列564 内の論理的に対応づけられたレジスタへデータ・バス560 を経由してデータを転送することを許可する。しかし、命令がリタイアされる前は、一時バッファ552 にストアされたデータは一時バッファにストアされたデータをデータ・バス560 のバイパス部分を経由して出力データ・セレクタ556 へ送ることにより、後続の命令の実行時に使用することが可能である。制御バス518 経由で送られる制御信号によって制御されるセレクタ556 は、一時バッファ552 のレジスタからのデータとレジスタ・ファイル配列564 のレジスタからのデータのどちらかを選択する。結果のデータはレジスタ・ファイル出力バス564 上に送出される。また、実行中の命令が完了と同時にリタイアされる場合は、つまり、その命令が順序内で実行された場合は、結果データをバイパス延長部分558"を経由して直接にレジスタ配列554 へ送るように指示することができる。
その他の特殊レジスタは表IIに説明されている。
───────────────────────────────────
特殊レジスタ
特殊移動
レジスタ R/W 説明
PC R プログラム・カウンタ:一般的にはPCは現在実
行中のプログラム命令ストリームの次のアドレス
を格納している。
IF PC R/W IFUプログラム・カウンタ:
IF PCは正確な次の実行アドレスを格納して
いる。
PFnPC R プリフェッチ・プログラム・カウンタ:MBUF
、TBUFおよびEBUF PFnPCはそれぞ
れのプリフェッチ命令ストリームの次のプリフェ
ッチ命令アドレスを格納している。
uPC R/W マイクロ・プログラム・カウンタ:プロシージャ
命令のあとに続く命令のアドレスを格納している
。これはプロシージャ命令がリターンしたとき最
初に実行される命令のアドレスである。
xPC R/W 割り込み/例外プログラム・カウンタ:割り込み
または例外(または両方)のリターン・アドレス
を格納している。リターン・アドレスはトラップ
発生時のIF PCアドレスである。
TBR W トラップ・ベース・アドレス:トラップ処理ルー
チンへディスパッチするとき使用されるベクトル
・テーブルのベース・アドレス。各エントリは1
ワード長である。割り込みロジック・ユニット3
63から与えられるトラップ番号は、このアドレ
スが指しているテーブルまでのインデックスとし
て使用される。
FTB W 高速トラップ・ベース・レジスタ:即時トラップ
処理ルーチン・テーブルのベース・レジスタ。各
テーブル・エントリは32ワードであり、トラッ
プ処理ルーチンを直接に実行するために使用され
る。割り込みロジック・ユニット363から与え
られるトラップ番号を32倍したものは、このア
ドレスが指しているテーブルまでのオフセットと
して使用される。
PBR W プロシージャ・ベース・レジスタ:プロシージャ
・ルーチンへディスパッチするとき使用されるベ
クトル・テーブルのベース・アドレス。各エント
リは1ワード長であり、4ワード境界に位置合わ
せされている。プロシージャ命令フィールドとし
て与えられるプロシージャ番号はこのアドレスが
指しているテーブルまでのインデックスとして使
用される。
PSR R/W プロセッサ状態レジスタ:プロセッサ状況ワード
を格納している。状況データ・ビットは、キャリ
ー、オーバーフロー、ゼロ、負、プロセッサ・モ
ード、現割り込みレベル、実行中のプロシージャ
・ルーチン、0による除算、オーバフロー例外、
ハードウェア機能割り込み可能、プロシージャ割
り込み可能、割り込み可能などのビットがある。
PPSR R/W 旧プロセッサ状態レジスタ:命令が正しく完了す
るか、割り込みまたはトラップが引き起こされる
と、PSRからロードされる。
CSR R/W 状態比較(ブール)レジスタ:シングル・ワード
としてアクセス可能なブール・レジスタ・セット
。
PCSR R/W 旧状態比較レジスタ:命令が正しく完了するか、
割り込みまたはトラップが引き起こされると、C
SRからロードされる。
2)整数データ経路の詳細
本発明の好適実施例にしたがって構成されるIEU 104 の整数データ経路は図10に示されている。説明の便宣上、整数データ経路580 と結ばれる多数の制御経路は図には示していない。これらの接続関係は図5を参照して説明したとおりである。
3)浮動小数点データ経路の詳細
次に、図11は浮動小数点データ経路を示したものである。初期データは、この場合も、即値整数オペランド・バス588 、即値オペランド・バス594 および特殊レジスタ・アドレス・データ・バス354 を含む、複数のソースから受信される。外部データの最終的ソースは外部データ・バス598 を通してCCU 106 に接続された浮動小数点ロード/ストア・ユニット622 である。
アーキテクチャ100 の好適実施例による入力バス706 、708 、710 の各々は、最高3個までのレジスタ・オペランド・データ値を機能ユニット712 、714 、716 の各々へ同時に転送することが可能である。これらの機能ユニット712 、714 、716 の出力バスは機能ユニット・データ・リターン・バス482"に結合され、データをレジスタ・ファイル入力マルチプレクサ678 へ戻すようになっている。整数データ経路機能ユニット出力バス650 を、機能ユニット・データ・リターン・バス482"に接続するために設けることも可能である。本発明のアーキテクチャ100 によれば、マルチプレクサ機能ユニット712 とファイルALU 714 の機能ユニット出力バスを浮動小数点データ経路機能ユニット・バス652 を経由して整数データ経路500 の機能ユニット・データ・リターン・バス482'に接続することが可能である。
4)ブール・レジスタ・データ経路の詳細
ブール演算データ経路720 は図12に示されている。このデータ経路720 は基本的に2種類の命令の実行をサポートするために利用される。最初のタイプは、オペランド比較命令であり、この命令では、整数レジスタ・セットと浮動小数点レジスタ・セットから選択された、あるいは即値オペランドとして与えられた2つのオペランドが、ALU 機能ユニットの1つで整数と浮動小数点データ経路を減算することによって比較される。この比較は、ALU 機能ユニット642 、644 、714 、716 のいずかによる減算によって行われ、その結果の符号とゼロ状況ビットは入力セレクタと比較演算子結合ユニット722 へ送られる。このユニット722 は、制御信号を指定した命令をEデコード・ユニット490 から受け取ると、ALU 機能ユニット642 、644 、714 、716 の出力を選択し、符号およびゼロ・ビットを結合し、ブール比較結果値を抽出する。出力バス723 を通して比較演算の結果を入力マルチプレクサ726 とバイパス・ユニット742 へ同時に転送することができる。整数および浮動小数点データ経路と同じように、バイパス・ユニット742 は並列のマルチプレクサ配列として実現され、バイパス・ユニット742 の入力間で複数のデータ経路を選択して、複数の出力と結ぶことができる。バイパス・ユニット742 の他の入力はブール演算結果リターン・データ・バス724 とデータ・バス744 上の2つのブール・オペランドからなっている。バイパス・ユニット742 は、最高2つまでの同時に実行中のブール命令を表したブール・オペランドを、オペランド・バス748 を経由してブール演算機能ユニット746 へ転送することができる。また、バイパス・ユニット746 は最高2個までのシングル・ビット・ブール・オペランド・ビット(CF0、CF1)を制御フロー結果制御ライン750 、752 を経由して同時に転送することができる。
───────────────────────────────────
整数の比較
命令
条件* 記号 条件コード
rs1はrs2より大 > 0000
rs1はrs2より大か等しい >= 0001
rs1はrs2より小 < 0010
rs1はrs2より小か等しい <= 0011
rs1はrs2と等しくない ≠ 0100
rs1はrs2と等しい == 0101
予備 0110
無条件 1111
───────────────────────────────────
*rs=レジスタ・ソース
表IV
───────────────────────────────────
浮動小数点の比較
命令
条件 記号 条件コード
rs1はrs2より大 > 0000
rs1はrs2より大か等しい >= 0001
rs1はrs2より小 < 0010
rs1はrs2より小か等しい <= 0011
rs1はrs2と等しくない ≠ 0100
rs1はrs2と等しい == 0101
無順序 ? 1000
無順序またはrs1はrs2より大 ?> 1001
無順序、rs1はrs2より大か等しい ?>= 1010
無順序またはrs1はrs2より小 ?< 1011
無順序、rs1はrs2より小か等しい ?<= 1100
無順序またはrs1はrs2と等しい ?= 1101
予備 1110−1111
───────────────────────────────────
表V
───────────────────────────────────
ブール演算
命令
演算* 記号 機能コード
0 Zero 0000
bs1&bs2 AND 0001
bs1&−bs2 ANN2 0010
bs1 bs1 0011
−bs1&bs2 ANN1 0100
bs2 bs2 0101
bs1- bs2 XOR 0110
bs1 bs2 OR 0111
−bs1&−bs2 NOR 1000
−bs1- bs2 XNOR 1001
−bs2 NOT2 1010
bs1 −bs2 ORN2 1011
−bs1 NOT1 1100
−bs1 bs2 ORN1 1101
−bs1 −bs2 NAND 1110
1 ONE 1111
───────────────────────────────────
*bs=ブール・ソース・レジスタ
B) ロード/ストア・制御ユニット
図13はロード/ストア・ユニット760 の例を示したものである。データ経路580 、660 に別々に示されているが、ロード/ストア・ユニット586 、662 は1つの共用ロード/ストア・ユニット760 として実現するのが好ましい。それぞれのデータ経路580 、660 からのインタフェースはアドレス・バス762 およびロードとストア・データ・バス764(600 、676)、766(632 、702)を経由している。
C)IEU 制御経路の詳細
再び図5を参照して、IEU 制御経路のオペレーションを、図14に示したタイミング図と関連づけて説明する。図14に示した命令の実行タイミングは本発明のオペレーションを例示したもので、種々態様に変更可能であることは勿論である。
1)Eデコード・ユニットの詳細
Eデコード・ユニット490 は全命令セットを並列に受け取って、プロセッサ・サイクル1が完了する前にデコードする。Eデコード・ユニット490 は、好適アーキテクチャ100 では、バス124 を経由して受け取ったすべての有効命令を並列に直接デコードする機能を備えた順列組合せ理論に基づくロジック・ブロックとして実現されている。アーキテクチャ100 によって認識される命令は、各タイプ別に、命令、レジスタ要件および必要な資源の仕様と共に表VIに示されている。
───────────────────────────────────
命令/仕様
命令 制御とオペランド情報*
レジスタ間移動 論理/算術演算機能コード:
加算、減算、乗算、シフトその他の指定
宛先レジスタ
PSRのみセット
ソース・レジスタ1
ソース・レジスタ2または即値定数値
レジスタセットA/B選択
即値からレジスタへ 宛先レジスタ
移動 即値整数または浮動小数点定数値
レジスタ・セットA/B選択
ロード/ストア・レジスタ オペレーション機能コード:
ロードまたはストアの指定、即値、ベースと
即値、またはベースとオフセットの使用
ソース/宛先レジスタ
ベース・レジスタ
インデックス・レジスタまたは即値定数値
レジスタ・セットA/B選択
即値コール 符号付き即値変位
制御フロー オペレーション機能コード:
ブランチ・タイプとトリガ条件の指定
ベース・レジスタ
インデックス・レジスタ、即値定数変位値、また
はトラップ番号
レジスタ・セットA/B選択
特殊レジスタ移動 オペレーション機能コード:
特殊/整数レジスタとの間の移動の指定
特殊レジスタ・アドレス識別子ソース/宛先レジ
スタ
レジスタ・セットA/B選択
整数変換移動 オペレーション機能コード:
浮動小数点から整数への変換タイプの指定
ソース/宛先レジスタ
レジスタ・セットA/B選択
ブール関数 ブール関数コード:AND、ORなどの指定
宛先ブール・レジスタ
ソース・レジスタ1
ソース・レジスタ2
レジスタ・セットA/B選択
拡張プロシージャ プロシージャ指定子:プロシージャ・ベース値か
らのアドレス・オフセットの指定
オペレーション:値をプロシージャ・ルーチンへ
渡す
アトミック・プロシージャ プロシージャ指定子:アドレス値の指定
───────────────────────────────────
*−命令は、デコードされて命令を識別するフィールドのほかにこれらのフィールドを含んでいる。
2)キャリー・チェッカ・ユニットの詳細
キャリー・チェッカ・ユニット492 は図14に示すオペレーションのデータ依存関係フェーズ期間の間に依存関係検査ユニット494 を並列に動作する。キャリー・チェッカ・ユニット492 は好適アーキテクチャ100 では順列組合せ論理に基づくロジックをして実現されている。従って、キャリー・チェッカ・ユニット492 によるオペレーションの各繰返し時に、命令がプロセッサ状態レジスタのキャリー・フラグを変更したかどうかについて8個の命令すべてが考慮される。これが必要とされるのは、その前の命令によって設定されたキャリー・ビットの状況に依存する命令を順序外で実行することを可能にするためである。制御ライン504 上に送出された制御信号により、キャリー・チェッカ・ユニット492 は、キャリー・フラグに対する先行命令の実行に依存する特定の命令を識別することができる。
3)データ依存関係チェッカ・ユニットの詳細
データ依存関係チェッカ・ユニット494 はEデコード・ユニット490 から制御ライン506 を経由して8個のレジスタ参照識別ベクトルを受け取る。各レジスタの参照は32個のレジスタを一度に1つを識別するのに適した5ビット値と、"A" 、"B" またはブール・レジスタ・セット内に置かれているレジスタ・バンクを識別する2ビット値によって示されている。浮動小数点レジスタ・セットは"B" レジスタ・セットとも呼ばれる。各命令は最高3つまでのレジスタ参照フィールドをもつことができる。2つのソース・レジスタ・フィールドと1つの宛先レジスタ・フィールドである。ある種の命令、特にレジスタ間移動命令は、宛先レジスタを指定している場合があっても、Eデコード・ユニット490 によって認識される命令ビット・フィールドは、実際に作成される出力データがないことを意味している場合がある。むしろ、命令の実行は、プロセッサ状況レジスタの値の変更を判断することだけを目的としている。
4)レジスタ改名ユニットの詳細
レジスタ改名ユニット496 は8個の保留中の命令すべてのレジスタ参照のIDを制御ライン506 を経由して、レジスタ依存関係を制御ライン508 を経由して受け取る。8個のエレメントからのマトリックスも制御ライン542 を経由して受け取る。これらのエレメントは、保留中命令の現セットの中でどの命令が実行されたか( 完了したか) を示している。この情報から、レジスタ改名ユニット496 は制御信号の8エレメント配列を制御ライン512 を経由して命令発行ユニット498 へ送る。このようにして送られた制御情報は、現セットのデータ依存関係が判別された場合に、まだ実行されていない現在保留中の命令のうちどの命令の実行が可能になったかについてレジスタ改名ユニット496 が行った判断を反映している。レジスタ改名ユニット496 は実行のために同時に出される最高6個までの命令を識別した選択制御信号をライン516 を経由して受信する。つまり、2個の整数命令、2個の浮動小数点命令および2個のブール命令である。
5)命令発行ユニットの詳細
命令発行ユニット498 は発行できる命令のセットをレジスタ改名ユニット496 の出力をEデコード・ユニット490 によって識別された命令の機能要件に基づいて判断する。命令発行ユニット498 は制御ライン514 を経由して報告された機能ユニット4780-nの各々の状況に基づいてこの判断を行う。従って、命令発行ユニット498 は発行すべき使用可能な命令セットをレジスタ改名ユニット496 から受信すると、オペレーションを開始する。各命令を実行するためにレジスタ・ファイルへのアクセスが必要であるとすると、命令発行ユニット498 は現在命令を実行中の機能ユニット4980-nが使用可能であることを予想する。レジスタ改名ユニット496 へ発行すべき命令を判断する際の遅延を最小にするために、命令発行ユニット498 は専用の組合せロジックで実現されている。
6)完了制御ユニットの詳細
完了制御ユニット540 は機能ユニット478o-nをモニタして、現在のオペレーションの完了状況を調べる。好適アーキテクチャ100 では、完了制御ユニット540 は各機能ユニットによるオペレーションの完了を予想して、現在保留中の命令セットの中の各命令の実行状況を示した完了ベクトルを、機能ユニット478o-nによる命令の実行完了よりも約半プロセッサ・サイクル前にレジスタ改名ユニット496 、バイパス制御ユニット520 およびリタイア制御ユニット500 へ送る。これにより、命令発行ユニット498 はレジスタ改名ユニット496 を通して、実行を完了する機能ユニットを次の命令発行サイクルに対して使用可能な資源として考慮することができる。バイパス制御ユニット520 は、機能ユニットから出力された出力をバイパス・ストリーム474 を通るようにバイパスする準備を行うことができる。最後に、リタイア制御ユニット500 は、機能ユニット478o-nからレジスタ・ファイル配列472 へデータを転送するのと同時に対応する命令をリタイアするように動作する。
7)リタイア制御ユニットの詳細
完了制御ユニット540 から送られた命令完了ベクトルのほかに、リタイア制御ユニット500 はEデコード・ユニット490 から出力された最も古い命令セットをモニタする。命令ストリーム順序の中の各命令に完了制御ユニット540 によって完了の印(マーク)がつけられると、リタイア制御ユニット500 は、制御ライン534 上に送出された制御信号を通して、一時バッファ・スロットからレジスタ・ファイル配列472 内の対応する命令が指定したファイル・レジスタ・ロケーションへデータを転送することを指示する。1つまたは複数の命令が同時にリタイアされると、PC Inc/Size 制御信号が制御ライン344 上に送出される。各プロセッサ・サイクルごとに最高4個までの命令をリタイアすることが可能である。命令セット全体がリタイアされると、IFIFO 読取り制御信号が制御ライン342 上に送出されてIFIFO 264 を前進させる。
8)制御フロー制御ユニットの詳細
制御フロー制御ユニット528 は、現在の保留中命令セット内の制御フロー命令が解決されたかどうか、さらに、その結果ブランチが行われたかどうかを指定した情報をIFU 102 に絶えず与えるように動作する。制御フロー制御ユニット528 は、Eデコード・ユニット490 による制御フロー・ブランチ命令の識別情報を制御ライン510 を経由して取得する。現在のレジスタ依存関係のセットは、制御ライン536 を経由してデータ依存関係チェッカ・ユニット494 から制御フロー制御ユニット528 へ送られるので、制御フロー制御ユニット528 はブランチ命令の結果が依存関係に拘束されているかどうか、あるいは判明しているかどうかを判断することができる。レジスタ改名ユニット496 からバス518 を経由して送られたレジスタの参照は制御フロー制御ユニット528 によってモニタされ、ブランチ決定を定義するブール・レジスタが判別される。従って、ブランチ決定は、制御フロー命令の順序外の実行以前でも判断することが可能である。
9)バイパス制御ユニットの詳細
命令発行ユニット498 はバイパス制御ユニット520 と緊密に協働して、レジスタ・ファイル配列472 と機能ユニット478o-n間のデータのルーチング(経路指定)を制御する。バイパス制御ユニット520 は、図14に示すオペレーションのレジスタ・ファイル・アクセス、出力およびストア・フェーズと関連して動作する。レジスタ・ファイル・アクセスの間には、バイパス制御ユニット520 は命令の実行の出力フェーズの間に書き込まれている途中にあるレジスタ・ファイル配列472 内の宛先レジスタのアクセスを、制御ライン522 を通して確認することができる。この場合、バイパス制御ユニット520 は、バイパスして機能ユニット配布バス480 に返すように、機能ユニット出力バス482 上に送出された出力を選択することを指示する。バイパス・ユニット520 に対する制御は、制御ライン542 を通して命令発行ユニット498 によって行われる。
IV. 仮想メモリ制御ユニット
VMU 108 のインタフェース定義は図15に示されている。VMU 108 はおもにVMU 制御ロジック・ユニット800 と内容アドレス(content addressable) メモリ(CAM)802から構成されている。VMU 108 の一般的機能は図16にブロック図で示してある。同図において、仮想アドレスの表示は、スペースID(sID[31:28])、仮想ページ番号(VADDR[27:14])、ページ・オフセット(PADDR[13:4]) 、および要求ID(rID[3:0])に分割されている。物理アドレスを生成するためのアルゴリズムでは、スペースIDを使用して、スペース・テーブル842 内の16個のレジスタから1つを選択するようになっている。選択したスペース・レジスタの内容と仮想ページ番号とを組み合わせて、テーブル索引バッファ(TLB)844をアクセスするときのアドレスとして使用される。34ビット・アドレスは内容アドレス・タグの働きをし、バッファ844 ないの対応するバッファ・レジスタを指定するために使用される。タグに一致するものが見つかると、18ビット幅レジスタ値が物理アドレス846 の上位18ビットとして得られる。ページ・オフセットと要求IDは物理アドレス846 の下位14ビットとして得られる。
V.キャッシュ制御ユニット
CCU 106 用のデータ・インタフェース上のコントロールを図17に示す。この場合も、インタフェースはIFU 102 用とIEU 104 用に別個に設けている。さらに、論理的に別個になったインタフェースをCCU 106 に設けて、MCU 110 と命令とデータの転送が行われる。IFU インタフェースはアドレス・ライン324 上に送出される物理ページ・アドレスと、アドレス・ライン824 上に送出されるVMU 変換ページ・アドレスと、制御ライン294 、296 上を別個に転送される要求IDとからなっている。単方向データ転送バス114 は命令セット全体をIFU 102 と並列に転送するためのものである。最後に、読取り/使用中(read/busy) 制御信号と準備(ready) 制御信号は制御ライン298 、300 、302 を経由してCCU 106 へ送られる。
102...命令フェッチ・ユニット(IFU)
104...命令実行ユニット(IEU)
106...キャッシュ制御ユニット(CUU)
108...仮想メモリ・ユニット(VMU)
110...メモリ制御ユニット(MCU)
112...メモリ・アレイ・ユニット(MAU)
Claims (2)
- 決められたプログラム順序の命令を実行するスーパースカラープロセッサであって、
命令をデコードするデコーダと、
前記デコーダでデコード済みで実行が完了していない複数の命令を格納する命令バッファと、
決められたプログラム順序と無関係に命令を実行可能な複数の機能ユニットと、
前記命令バッファ内に格納されている未実行の命令を順序外で実行可能か否かを判断する依存関係チェックユニットと、
前記依存関係チェックユニットによって順序外で実行可能と判断された命令について、前記複数の機能ユニットでの実行を割り当てる命令発行ユニットと、
最近にリタイアした命令の実行により得られたプロセッサステータスを格納するプロセッサ状態レジスタと、
前記命令バッファ内に格納されている複数の命令に対応して設けられた複数の一時プロセッサ状態レジスタと、
を備え、
前記複数の一時プロセッサ状態レジスタは、
(i)命令の順序外での実行が完了すると、当該命令の完了により生じたプロセッサステータスの変更が当該命令に対応付けられた一時プロセッサ状態レジスタに反映されるとともに、
(ii)命令がリタイアするときに、当該命令に対応付けられた一時プロセッサ状態レジスタ内のプロセッサステータスが前記プロセッサ状態レジスタに転送されるように構成されており、
前記依存関係チェックユニットは、前記複数の一時プロセッサ状態レジスタを参照して前記命令バッファ内に格納されている未実行の命令を順序外で実行可能か否かを判断する、スーパースカラープロセッサ。 - 請求項1記載のスーパースカラープロセッサと、
外部メモリと、
前記スーパースカラープロセッサと前記外部メモリとを接続するバスと、
を備えるデータ処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72705891A | 1991-07-08 | 1991-07-08 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005117624A Division JP3724505B2 (ja) | 1991-07-08 | 2005-04-15 | スーパースカラープロセッサ及びデータ処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005175209A Division JP3744534B2 (ja) | 1991-07-08 | 2005-06-15 | スーパースカラープロセッサ及びデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005243049A JP2005243049A (ja) | 2005-09-08 |
JP3724507B2 true JP3724507B2 (ja) | 2005-12-07 |
Family
ID=24921163
Family Applications (16)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50215393A Expired - Fee Related JP3441071B2 (ja) | 1991-07-08 | 1992-07-07 | マイクロプロセッサ及びデータ処理装置 |
JP2001054372A Withdrawn JP2001243067A (ja) | 1991-07-08 | 2001-02-28 | スーパースカラ処理システム及びデータ処理方法 |
JP2001054371A Withdrawn JP2001273139A (ja) | 1991-07-08 | 2001-02-28 | スーパースカラ処理装置、データ処理方法及びコンピュータシステム |
JP2001054373A Withdrawn JP2001229023A (ja) | 1991-07-08 | 2001-02-28 | スーパースカラ処理システム及びデータ処理方法 |
JP2002267999A Expired - Lifetime JP3627735B2 (ja) | 1991-07-08 | 2002-09-13 | スーパースカラープロセッサ及びデータ処理装置 |
JP2004265342A Expired - Lifetime JP3724497B2 (ja) | 1991-07-08 | 2004-09-13 | スーパースカラープロセッサ及びデータ処理装置 |
JP2004298617A Expired - Lifetime JP3724499B2 (ja) | 1991-07-08 | 2004-10-13 | スーパースカラープロセッサ及びデータ処理装置 |
JP2004328494A Expired - Lifetime JP3724500B2 (ja) | 1991-07-08 | 2004-11-12 | スーパースカラープロセッサ及びデータ処理装置 |
JP2004360050A Expired - Lifetime JP3724502B2 (ja) | 1991-07-08 | 2004-12-13 | スーパースカラープロセッサ及びデータ処理装置 |
JP2005005252A Expired - Lifetime JP3757982B2 (ja) | 1991-07-08 | 2005-01-12 | スーパースカラープロセッサ及びデータ処理装置 |
JP2005035339A Withdrawn JP2005129087A (ja) | 1991-07-08 | 2005-02-14 | スーパースカラープロセッサ及びデータ処理装置 |
JP2005074144A Expired - Lifetime JP3864976B2 (ja) | 1991-07-08 | 2005-03-16 | スーパースカラープロセッサ及びデータ処理装置 |
JP2005117624A Expired - Lifetime JP3724505B2 (ja) | 1991-07-08 | 2005-04-15 | スーパースカラープロセッサ及びデータ処理装置 |
JP2005142583A Expired - Lifetime JP3724507B2 (ja) | 1991-07-08 | 2005-05-16 | スーパースカラープロセッサ及びデータ処理装置 |
JP2005175209A Expired - Lifetime JP3744534B2 (ja) | 1991-07-08 | 2005-06-15 | スーパースカラープロセッサ及びデータ処理装置 |
JP2006024711A Withdrawn JP2006172496A (ja) | 1991-07-08 | 2006-02-01 | スーパースカラープロセッサ及びデータ処理装置 |
Family Applications Before (13)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50215393A Expired - Fee Related JP3441071B2 (ja) | 1991-07-08 | 1992-07-07 | マイクロプロセッサ及びデータ処理装置 |
JP2001054372A Withdrawn JP2001243067A (ja) | 1991-07-08 | 2001-02-28 | スーパースカラ処理システム及びデータ処理方法 |
JP2001054371A Withdrawn JP2001273139A (ja) | 1991-07-08 | 2001-02-28 | スーパースカラ処理装置、データ処理方法及びコンピュータシステム |
JP2001054373A Withdrawn JP2001229023A (ja) | 1991-07-08 | 2001-02-28 | スーパースカラ処理システム及びデータ処理方法 |
JP2002267999A Expired - Lifetime JP3627735B2 (ja) | 1991-07-08 | 2002-09-13 | スーパースカラープロセッサ及びデータ処理装置 |
JP2004265342A Expired - Lifetime JP3724497B2 (ja) | 1991-07-08 | 2004-09-13 | スーパースカラープロセッサ及びデータ処理装置 |
JP2004298617A Expired - Lifetime JP3724499B2 (ja) | 1991-07-08 | 2004-10-13 | スーパースカラープロセッサ及びデータ処理装置 |
JP2004328494A Expired - Lifetime JP3724500B2 (ja) | 1991-07-08 | 2004-11-12 | スーパースカラープロセッサ及びデータ処理装置 |
JP2004360050A Expired - Lifetime JP3724502B2 (ja) | 1991-07-08 | 2004-12-13 | スーパースカラープロセッサ及びデータ処理装置 |
JP2005005252A Expired - Lifetime JP3757982B2 (ja) | 1991-07-08 | 2005-01-12 | スーパースカラープロセッサ及びデータ処理装置 |
JP2005035339A Withdrawn JP2005129087A (ja) | 1991-07-08 | 2005-02-14 | スーパースカラープロセッサ及びデータ処理装置 |
JP2005074144A Expired - Lifetime JP3864976B2 (ja) | 1991-07-08 | 2005-03-16 | スーパースカラープロセッサ及びデータ処理装置 |
JP2005117624A Expired - Lifetime JP3724505B2 (ja) | 1991-07-08 | 2005-04-15 | スーパースカラープロセッサ及びデータ処理装置 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005175209A Expired - Lifetime JP3744534B2 (ja) | 1991-07-08 | 2005-06-15 | スーパースカラープロセッサ及びデータ処理装置 |
JP2006024711A Withdrawn JP2006172496A (ja) | 1991-07-08 | 2006-02-01 | スーパースカラープロセッサ及びデータ処理装置 |
Country Status (8)
Country | Link |
---|---|
US (7) | US5560032A (ja) |
EP (3) | EP1526446A3 (ja) |
JP (16) | JP3441071B2 (ja) |
KR (2) | KR100299691B1 (ja) |
AT (2) | ATE291755T1 (ja) |
DE (2) | DE69233493T2 (ja) |
HK (2) | HK1014784A1 (ja) |
WO (1) | WO1993001546A1 (ja) |
Families Citing this family (188)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2016068C (en) * | 1989-05-24 | 2000-04-04 | Robert W. Horst | Multiple instruction issue computer architecture |
US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
DE69233493T2 (de) | 1991-07-08 | 2005-07-28 | Seiko Epson Corp. | RISC-Prozessor mit erweiterbarer Architektur |
US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5826055A (en) * | 1991-07-08 | 1998-10-20 | Seiko Epson Corporation | System and method for retiring instructions in a superscalar microprocessor |
US5452401A (en) * | 1992-03-31 | 1995-09-19 | Seiko Epson Corporation | Selective power-down for high performance CPU/system |
US5438668A (en) * | 1992-03-31 | 1995-08-01 | Seiko Epson Corporation | System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer |
US5371684A (en) | 1992-03-31 | 1994-12-06 | Seiko Epson Corporation | Semiconductor floor plan for a register renaming circuit |
EP0636256B1 (en) | 1992-03-31 | 1997-06-04 | Seiko Epson Corporation | Superscalar risc processor instruction scheduling |
EP0638183B1 (en) * | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | A system and method for retiring instructions in a superscalar microprocessor |
JP3531166B2 (ja) | 1992-12-31 | 2004-05-24 | セイコーエプソン株式会社 | レジスタ・リネーミングのシステム及び方法 |
US5628021A (en) | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
DE69423376T2 (de) * | 1993-04-23 | 2000-10-12 | Advanced Micro Devices Inc | Unterbrechungsverarbeitung |
JP2596712B2 (ja) * | 1993-07-01 | 1997-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 近接した分岐命令を含む命令の実行を管理するシステム及び方法 |
EP0651321B1 (en) * | 1993-10-29 | 2001-11-14 | Advanced Micro Devices, Inc. | Superscalar microprocessors |
DE69427265T2 (de) * | 1993-10-29 | 2002-05-02 | Advanced Micro Devices Inc | Superskalarbefehlsdekoder |
US5630082A (en) * | 1993-10-29 | 1997-05-13 | Advanced Micro Devices, Inc. | Apparatus and method for instruction queue scanning |
US5574928A (en) * | 1993-10-29 | 1996-11-12 | Advanced Micro Devices, Inc. | Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments |
US6101597A (en) * | 1993-12-30 | 2000-08-08 | Intel Corporation | Method and apparatus for maximum throughput scheduling of dependent operations in a pipelined processor |
TW353732B (en) * | 1994-03-31 | 1999-03-01 | Ibm | Processing system and method of operation |
US5590352A (en) * | 1994-04-26 | 1996-12-31 | Advanced Micro Devices, Inc. | Dependency checking and forwarding of variable width operands |
US5559975A (en) * | 1994-06-01 | 1996-09-24 | Advanced Micro Devices, Inc. | Program counter update mechanism |
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 |
JPH0877021A (ja) * | 1994-09-01 | 1996-03-22 | Fujitsu Ltd | 割込処理装置および方法 |
JP3543181B2 (ja) * | 1994-11-09 | 2004-07-14 | 株式会社ルネサステクノロジ | データ処理装置 |
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 |
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 |
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 |
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 |
US5822574A (en) * | 1995-04-12 | 1998-10-13 | Advanced Micro Devices, Inc. | Functional unit with a pointer for mispredicted resolution, and a superscalar microprocessor employing the same |
US5802346A (en) * | 1995-06-02 | 1998-09-01 | International Business Machines Corporation | Method and system for minimizing the delay in executing branch-on-register instructions |
US5768574A (en) * | 1995-06-07 | 1998-06-16 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to expand the condition flags and a computer system employing the microprocessor |
US5680578A (en) * | 1995-06-07 | 1997-10-21 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to specify expanded functionality and a computer system employing same |
US5778434A (en) * | 1995-06-07 | 1998-07-07 | Seiko Epson Corporation | System and method for processing multiple requests and out of order returns |
US5822778A (en) * | 1995-06-07 | 1998-10-13 | Advanced Micro Devices, Inc. | Microprocessor and method of using a segment override prefix instruction field to expand the register file |
US5926642A (en) * | 1995-10-06 | 1999-07-20 | Advanced Micro Devices, Inc. | RISC86 instruction set |
US5920713A (en) * | 1995-10-06 | 1999-07-06 | Advanced Micro Devices, Inc. | Instruction decoder including two-way emulation code branching |
US5819056A (en) * | 1995-10-06 | 1998-10-06 | Advanced Micro Devices, Inc. | Instruction buffer organization method and system |
US5809273A (en) * | 1996-01-26 | 1998-09-15 | Advanced Micro Devices, Inc. | Instruction predecode and multiple instruction decode |
US5794063A (en) * | 1996-01-26 | 1998-08-11 | Advanced Micro Devices, Inc. | Instruction decoder including emulation using indirect specifiers |
US6093213A (en) * | 1995-10-06 | 2000-07-25 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (SMM) in a processor |
US5796974A (en) * | 1995-11-07 | 1998-08-18 | Advanced Micro Devices, Inc. | Microcode patching apparatus and method |
US5765035A (en) * | 1995-11-20 | 1998-06-09 | Advanced Micro Devices, Inc. | Recorder buffer capable of detecting dependencies between accesses to a pair of caches |
US5787241A (en) * | 1995-12-18 | 1998-07-28 | Integrated Device Technology, Inc. | Method and apparatus for locating exception correction routines |
US5764943A (en) * | 1995-12-28 | 1998-06-09 | Intel Corporation | Data path circuitry for processor having multiple instruction pipelines |
US6092184A (en) * | 1995-12-28 | 2000-07-18 | Intel Corporation | Parallel processing of pipelined instructions having register dependencies |
US5819080A (en) * | 1996-01-02 | 1998-10-06 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to specify condition flags for use with branch instructions and a computer system employing the microprocessor |
US6688888B1 (en) * | 1996-03-19 | 2004-02-10 | Chi Fai Ho | Computer-aided learning system and method |
US5748934A (en) * | 1996-05-31 | 1998-05-05 | Hewlett-Packard Company | Operand dependency tracking system and method for a processor that executes instructions out of order and that permits multiple precision data words |
US5802556A (en) * | 1996-07-16 | 1998-09-01 | International Business Machines Corporation | Method and apparatus for correcting misaligned instruction data |
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 |
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 |
US5882993A (en) | 1996-08-19 | 1999-03-16 | Advanced Micro Devices, Inc. | Integrated circuit with differing gate oxide thickness and process for making same |
US5983342A (en) * | 1996-09-12 | 1999-11-09 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing a future file for storing results into multiportion registers |
US6631454B1 (en) | 1996-11-13 | 2003-10-07 | Intel Corporation | Processor and data cache with data storage unit and tag hit/miss logic operated at a first and second clock frequencies |
US5828868A (en) * | 1996-11-13 | 1998-10-27 | Intel Corporation | Processor having execution core sections operating at different clock rates |
GB2361082B (en) * | 1996-11-13 | 2002-01-30 | Intel Corp | Processor |
US5838941A (en) * | 1996-12-30 | 1998-11-17 | Intel Corporation | Out-of-order superscalar microprocessor with a renaming device that maps instructions from memory to registers |
US6222840B1 (en) * | 1996-12-30 | 2001-04-24 | Compaq Computer Corporation | Method and system for performing concurrent read and write cycles in network switch |
US6016540A (en) * | 1997-01-08 | 2000-01-18 | Intel Corporation | Method and apparatus for scheduling instructions in waves |
US5996063A (en) * | 1997-03-03 | 1999-11-30 | International Business Machines Corporation | Management of both renamed and architected registers in a superscalar computer system |
US6055616A (en) * | 1997-06-25 | 2000-04-25 | Sun Microsystems, Inc. | System for efficient implementation of multi-ported logic FIFO structures in a processor |
US6075931A (en) * | 1997-06-25 | 2000-06-13 | Sun Microsystems, Inc. | Method for efficient implementation of multi-ported logic FIFO structures in a processor |
US6052777A (en) * | 1997-06-25 | 2000-04-18 | Sun Microsystems, Inc. | Method for delivering precise traps and interrupts in an out-of-order processor |
US6094719A (en) * | 1997-06-25 | 2000-07-25 | Sun Microsystems, Inc. | Reducing data dependent conflicts by converting single precision instructions into microinstructions using renamed phantom registers in a processor having double precision registers |
US6058472A (en) * | 1997-06-25 | 2000-05-02 | Sun Microsystems, Inc. | Apparatus for maintaining program correctness while allowing loads to be boosted past stores in an out-of-order machine |
US5884070A (en) * | 1997-06-25 | 1999-03-16 | Sun Microsystems, Inc. | Method for processing single precision arithmetic operations in system where two single precision registers are aliased to one double precision register |
US5948106A (en) * | 1997-06-25 | 1999-09-07 | Sun Microsystems, Inc. | System for thermal overload detection and prevention for an integrated circuit processor |
US6098165A (en) * | 1997-06-25 | 2000-08-01 | Sun Microsystems, Inc. | Fetching and handling a bundle of instructions comprising instructions and non-complex instructions |
US5987594A (en) * | 1997-06-25 | 1999-11-16 | Sun Microsystems, Inc. | Apparatus for executing coded dependent instructions having variable latencies |
US5941977A (en) * | 1997-06-25 | 1999-08-24 | Sun Microsystems, Inc. | Apparatus for handling register windows in an out-of-order processor |
US5870597A (en) * | 1997-06-25 | 1999-02-09 | Sun Microsystems, Inc. | Method for speculative calculation of physical register addresses in an out of order processor |
US6049868A (en) * | 1997-06-25 | 2000-04-11 | Sun Microsystems, Inc. | Apparatus for delivering precise traps and interrupts in an out-of-order processor |
US5898853A (en) * | 1997-06-25 | 1999-04-27 | Sun Microsystems, Inc. | Apparatus for enforcing true dependencies in an out-of-order processor |
US5850533A (en) * | 1997-06-25 | 1998-12-15 | Sun Microsystems, Inc. | Method for enforcing true dependencies in an out-of-order processor |
US5999727A (en) * | 1997-06-25 | 1999-12-07 | Sun Microsystems, Inc. | Method for restraining over-eager load boosting using a dependency color indicator stored in cache with both the load and store instructions |
US5978864A (en) * | 1997-06-25 | 1999-11-02 | Sun Microsystems, Inc. | Method for thermal overload detection and prevention for an intergrated circuit processor |
US5875316A (en) * | 1997-06-25 | 1999-02-23 | Sun Microsystems, Inc. | Method for handling complex instructions in an out-of-order processor |
US6189022B1 (en) | 1997-08-20 | 2001-02-13 | Honeywell International Inc. | Slack scheduling for improved response times of period transformed processes |
US6289437B1 (en) * | 1997-08-27 | 2001-09-11 | International Business Machines Corporation | Data processing system and method for implementing an efficient out-of-order issue mechanism |
JP3452771B2 (ja) * | 1997-10-02 | 2003-09-29 | 富士通株式会社 | 命令制御システム及びその方法 |
US6029244A (en) * | 1997-10-10 | 2000-02-22 | Advanced Micro Devices, Inc. | Microprocessor including an efficient implementation of extreme value instructions |
US6230259B1 (en) | 1997-10-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Transparent extended state save |
US6157996A (en) * | 1997-11-13 | 2000-12-05 | Advanced Micro Devices, Inc. | Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space |
US6442585B1 (en) | 1997-11-26 | 2002-08-27 | Compaq Computer Corporation | Method for scheduling contexts based on statistics of memory system interactions in a computer system |
US6549930B1 (en) * | 1997-11-26 | 2003-04-15 | Compaq Computer Corporation | Method for scheduling threads in a multithreaded processor |
US6289441B1 (en) | 1998-01-09 | 2001-09-11 | Sun Microsystems, Inc. | Method and apparatus for performing multiple branch predictions per cycle |
US6148372A (en) * | 1998-01-21 | 2000-11-14 | Sun Microsystems, Inc. | Apparatus and method for detection and recovery from structural stalls in a multi-level non-blocking cache system |
US6226713B1 (en) | 1998-01-21 | 2001-05-01 | Sun Microsystems, Inc. | Apparatus and method for queueing structures in a multi-level non-blocking cache subsystem |
US6065110A (en) * | 1998-02-09 | 2000-05-16 | International Business Machines Corporation | Method and apparatus for loading an instruction buffer of a processor capable of out-of-order instruction issue |
US6061785A (en) * | 1998-02-17 | 2000-05-09 | International Business Machines Corporation | Data processing system having an apparatus for out-of-order register operations and method therefor |
US6108761A (en) * | 1998-02-20 | 2000-08-22 | Unisys Corporation | Method of and apparatus for saving time performing certain transfer instructions |
US6157998A (en) * | 1998-04-03 | 2000-12-05 | Motorola Inc. | Method for performing branch prediction and resolution of two or more branch instructions within two or more branch prediction buffers |
US6393552B1 (en) | 1998-06-19 | 2002-05-21 | International Business Machines Corporation | Method and system for dividing a computer processor register into sectors |
US6336160B1 (en) | 1998-06-19 | 2002-01-01 | International Business Machines Corporation | Method and system for dividing a computer processor register into sectors and storing frequently used values therein |
US6398556B1 (en) | 1998-07-06 | 2002-06-04 | Chi Fai Ho | Inexpensive computer-aided learning methods and apparatus for learners |
US9792659B2 (en) * | 1999-04-13 | 2017-10-17 | Iplearn, Llc | Computer-aided methods and apparatus to access materials in a network environment |
US6360194B1 (en) * | 1998-09-08 | 2002-03-19 | Bull Hn Information Systems Inc. | Different word size multiprocessor emulation |
US6449713B1 (en) * | 1998-11-18 | 2002-09-10 | Compaq Information Technologies Group, L.P. | Implementation of a conditional move instruction in an out-of-order processor |
US6567840B1 (en) | 1999-05-14 | 2003-05-20 | Honeywell Inc. | Task scheduling and message passing |
US6598118B1 (en) | 1999-07-30 | 2003-07-22 | International Business Machines Corporation | Data processing system with HSA (hashed storage architecture) |
US6516404B1 (en) | 1999-07-30 | 2003-02-04 | International Business Machines Corporation | Data processing system having hashed architected processor facilities |
US6823471B1 (en) | 1999-07-30 | 2004-11-23 | International Business Machines Corporation | Method for providing high availability within a data processing system via a reconfigurable hashed storage subsystem |
US6446165B1 (en) | 1999-07-30 | 2002-09-03 | International Business Machines Corporation | Address dependent caching behavior within a data processing system having HSA (hashed storage architecture) |
US6658556B1 (en) * | 1999-07-30 | 2003-12-02 | International Business Machines Corporation | Hashing a target address for a memory access instruction in order to determine prior to execution which particular load/store unit processes the instruction |
US6470442B1 (en) | 1999-07-30 | 2002-10-22 | International Business Machines Corporation | Processor assigning data to hardware partition based on selectable hash of data address |
US6449691B1 (en) | 1999-07-30 | 2002-09-10 | International Business Machines Corporation | Asymmetrical cache properties within a hashed storage subsystem |
US6513109B1 (en) * | 1999-08-31 | 2003-01-28 | International Business Machines Corporation | Method and apparatus for implementing execution predicates in a computer processing system |
US6567975B1 (en) * | 1999-11-08 | 2003-05-20 | Sun Microsystems, Inc. | Method and apparatus for inserting data prefetch operations using data flow analysis |
GB2362730B (en) * | 1999-12-23 | 2004-02-11 | St Microelectronics Sa | Computer register watch |
US6601162B1 (en) * | 2000-01-19 | 2003-07-29 | Kabushiki Kaisha Toshiba | Processor which executes pipeline processing having a plurality of stages and which has an operand bypass predicting function |
US6877084B1 (en) | 2000-08-09 | 2005-04-05 | Advanced Micro Devices, Inc. | Central processing unit (CPU) accessing an extended register set in an extended register mode |
US6981132B2 (en) | 2000-08-09 | 2005-12-27 | Advanced Micro Devices, Inc. | Uniform register addressing using prefix byte |
US6754807B1 (en) | 2000-08-31 | 2004-06-22 | Stmicroelectronics, Inc. | System and method for managing vertical dependencies in a digital signal processor |
US6671799B1 (en) | 2000-08-31 | 2003-12-30 | Stmicroelectronics, Inc. | System and method for dynamically sizing hardware loops and executing nested loops in a digital signal processor |
US7079133B2 (en) * | 2000-11-16 | 2006-07-18 | S3 Graphics Co., Ltd. | Superscalar 3D graphics engine |
US6981130B2 (en) * | 2001-09-25 | 2005-12-27 | Texas Instruments Incorporated | Forwarding the results of operations to dependent instructions more quickly via multiplexers working in parallel |
US7013382B1 (en) * | 2001-11-02 | 2006-03-14 | Lsi Logic Corporation | Mechanism and method for reducing pipeline stalls between nested calls and digital signal processor incorporating the same |
JP4272371B2 (ja) * | 2001-11-05 | 2009-06-03 | パナソニック株式会社 | デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。 |
US6876559B1 (en) * | 2002-02-01 | 2005-04-05 | Netlogic Microsystems, Inc. | Block-writable content addressable memory device |
US7120780B2 (en) * | 2002-03-04 | 2006-10-10 | International Business Machines Corporation | Method of renaming registers in register file and microprocessor thereof |
US7000095B2 (en) * | 2002-09-06 | 2006-02-14 | Mips Technologies, Inc. | Method and apparatus for clearing hazards using jump instructions |
US7493478B2 (en) * | 2002-12-05 | 2009-02-17 | International Business Machines Corporation | Enhanced processor virtualization mechanism via saving and restoring soft processor/system states |
US7437532B1 (en) | 2003-05-07 | 2008-10-14 | Marvell International Ltd. | Memory mapped register file |
US7267620B2 (en) * | 2003-05-21 | 2007-09-11 | Taylor Made Golf Company, Inc. | Golf club head |
GB2402760B (en) * | 2003-06-12 | 2006-01-11 | Advanced Risc Mach Ltd | Improvements in flexibility of use of a data processing apparatus |
USH2212H1 (en) * | 2003-09-26 | 2008-04-01 | The United States Of America As Represented By The Secretary Of The Navy | Method and apparatus for producing an ion-ion plasma continuous in time |
US7096345B1 (en) | 2003-09-26 | 2006-08-22 | Marvell International Ltd. | Data processing system with bypass reorder buffer having non-bypassable locations and combined load/store arithmetic logic unit and processing method thereof |
US7937557B2 (en) | 2004-03-16 | 2011-05-03 | Vns Portfolio Llc | System and method for intercommunication between computers in an array |
US7496735B2 (en) * | 2004-11-22 | 2009-02-24 | Strandera Corporation | Method and apparatus for incremental commitment to architectural state in a microprocessor |
US7406406B2 (en) * | 2004-12-07 | 2008-07-29 | Bull Hn Information Systems Inc. | Instructions to load and store containing words in a computer system emulator with host word size larger than that of emulated machine |
US7308527B2 (en) * | 2005-01-24 | 2007-12-11 | International Business Machines Corporation | System for indicating a plug position for a memory module in a memory system |
US20060179286A1 (en) * | 2005-02-09 | 2006-08-10 | International Business Machines Corporation | System and method for processing limited out-of-order execution of floating point loads |
US7490254B2 (en) * | 2005-08-02 | 2009-02-10 | Advanced Micro Devices, Inc. | Increasing workload performance of one or more cores on multiple core processors |
US7328330B2 (en) * | 2005-08-16 | 2008-02-05 | International Business Machines Corporation | Queue design supporting dependency checking and issue for SIMD instructions within a general purpose processor |
EP2541431A1 (en) * | 2005-10-07 | 2013-01-02 | Altera Corporation | Data input for systolic array processors |
US7617383B2 (en) * | 2006-02-16 | 2009-11-10 | Vns Portfolio Llc | Circular register arrays of a computer |
US7904615B2 (en) | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
US7913069B2 (en) * | 2006-02-16 | 2011-03-22 | Vns Portfolio Llc | Processor and method for executing a program loop within an instruction word |
US7966481B2 (en) | 2006-02-16 | 2011-06-21 | Vns Portfolio Llc | Computer system and method for executing port communications without interrupting the receiving computer |
US7647486B2 (en) | 2006-05-02 | 2010-01-12 | Atmel Corporation | Method and system having instructions with different execution times in different modes, including a selected execution time different from default execution times in a first mode and a random execution time in a second mode |
US7555637B2 (en) * | 2007-04-27 | 2009-06-30 | Vns Portfolio Llc | Multi-port read/write operations based on register bits set for indicating select ports and transfer directions |
US20100023730A1 (en) * | 2008-07-24 | 2010-01-28 | Vns Portfolio Llc | Circular Register Arrays of a Computer |
US8966228B2 (en) * | 2009-03-20 | 2015-02-24 | Arm Limited | Instruction fetching following changes in program flow |
US9329996B2 (en) * | 2011-04-27 | 2016-05-03 | Veris Industries, Llc | Branch circuit monitor with paging register |
US10157060B2 (en) | 2011-12-29 | 2018-12-18 | Intel Corporation | Method, device and system for control signaling in a data path module of a data stream processing engine |
US9454371B2 (en) | 2011-12-30 | 2016-09-27 | Intel Corporation | Micro-architecture for eliminating MOV operations |
US10331583B2 (en) | 2013-09-26 | 2019-06-25 | Intel Corporation | Executing distributed memory operations using processing elements connected by distributed channels |
KR101756966B1 (ko) | 2015-03-25 | 2017-07-11 | 전북대학교 산학협력단 | 계면개질제 및 이를 이용한 전자소자 |
KR102593320B1 (ko) | 2016-09-26 | 2023-10-25 | 삼성전자주식회사 | 전자 장치, 프로세서 및 그 제어 방법 |
US10402168B2 (en) | 2016-10-01 | 2019-09-03 | Intel Corporation | Low energy consumption mantissa multiplication for floating point multiply-add operations |
US10416999B2 (en) | 2016-12-30 | 2019-09-17 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10558575B2 (en) | 2016-12-30 | 2020-02-11 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10474375B2 (en) | 2016-12-30 | 2019-11-12 | Intel Corporation | Runtime address disambiguation in acceleration hardware |
US10572376B2 (en) | 2016-12-30 | 2020-02-25 | Intel Corporation | Memory ordering in acceleration hardware |
US10671395B2 (en) * | 2017-02-13 | 2020-06-02 | The King Abdulaziz City for Science and Technology—KACST | Application specific instruction-set processor (ASIP) for simultaneously executing a plurality of operations using a long instruction word |
US10496596B2 (en) * | 2017-02-13 | 2019-12-03 | King Abdulaziz City For Science And Technology | Application specific instruction-set processor (ASIP) architecture having separated input and output data ports |
US10445451B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features |
US10515049B1 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Memory circuits and methods for distributed memory hazard detection and error recovery |
US10387319B2 (en) | 2017-07-01 | 2019-08-20 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features |
US10445234B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features |
US10469397B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods with configurable network-based dataflow operator circuits |
US10515046B2 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10467183B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods for pipelined runtime services in a spatial array |
US10496574B2 (en) | 2017-09-28 | 2019-12-03 | Intel Corporation | Processors, methods, and systems for a memory fence in a configurable spatial accelerator |
US11086816B2 (en) | 2017-09-28 | 2021-08-10 | Intel Corporation | Processors, methods, and systems for debugging a configurable spatial accelerator |
US10380063B2 (en) | 2017-09-30 | 2019-08-13 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator |
US10445098B2 (en) | 2017-09-30 | 2019-10-15 | Intel Corporation | Processors and methods for privileged configuration in a spatial array |
US10445250B2 (en) | 2017-12-30 | 2019-10-15 | Intel Corporation | Apparatus, methods, and systems with a configurable spatial accelerator |
US10565134B2 (en) | 2017-12-30 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for multicast in a configurable spatial accelerator |
US10417175B2 (en) | 2017-12-30 | 2019-09-17 | Intel Corporation | Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator |
US11307873B2 (en) | 2018-04-03 | 2022-04-19 | Intel Corporation | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging |
US10564980B2 (en) | 2018-04-03 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator |
US11200186B2 (en) | 2018-06-30 | 2021-12-14 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
US10853073B2 (en) | 2018-06-30 | 2020-12-01 | Intel Corporation | Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator |
US10891240B2 (en) | 2018-06-30 | 2021-01-12 | Intel Corporation | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator |
US10459866B1 (en) | 2018-06-30 | 2019-10-29 | Intel Corporation | Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator |
US10678724B1 (en) | 2018-12-29 | 2020-06-09 | Intel Corporation | Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator |
US10965536B2 (en) | 2019-03-30 | 2021-03-30 | Intel Corporation | Methods and apparatus to insert buffers in a dataflow graph |
US11029927B2 (en) | 2019-03-30 | 2021-06-08 | Intel Corporation | Methods and apparatus to detect and annotate backedges in a dataflow graph |
US10817291B2 (en) | 2019-03-30 | 2020-10-27 | Intel Corporation | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator |
US10915471B2 (en) | 2019-03-30 | 2021-02-09 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator |
US11037050B2 (en) | 2019-06-29 | 2021-06-15 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator |
US11907713B2 (en) | 2019-12-28 | 2024-02-20 | Intel Corporation | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator |
CN113609904B (zh) * | 2021-06-30 | 2024-03-29 | 杭州电子科技大学 | 一种基于动态全局信息建模和孪生网络的单目标跟踪算法 |
US11599358B1 (en) * | 2021-08-12 | 2023-03-07 | Tenstorrent Inc. | Pre-staged instruction registers for variable length instruction set machine |
CN113778528B (zh) * | 2021-09-13 | 2023-03-24 | 北京奕斯伟计算技术股份有限公司 | 指令发送方法、装置、电子设备及存储介质 |
Family Cites Families (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3346851A (en) * | 1964-07-08 | 1967-10-10 | Control Data Corp | Simultaneous multiprocessing computer system |
US3771138A (en) * | 1971-08-31 | 1973-11-06 | Ibm | Apparatus and method for serializing instructions from two independent instruction streams |
US4003462A (en) * | 1976-02-06 | 1977-01-18 | Perrott L F | Log sorting system |
US4128880A (en) * | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
AU529675B2 (en) * | 1977-12-07 | 1983-06-16 | Honeywell Information Systems Incorp. | Cache memory unit |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
US4296470A (en) * | 1979-06-21 | 1981-10-20 | International Business Machines Corp. | Link register storage and restore system for use in an instruction pre-fetch micro-processor interrupt system |
JPS5616248A (en) * | 1979-07-17 | 1981-02-17 | Matsushita Electric Ind Co Ltd | Processing system for interruption |
US4434461A (en) | 1980-09-15 | 1984-02-28 | Motorola, Inc. | Microprocessor with duplicate registers for processing interrupts |
JPS5757345A (en) * | 1980-09-24 | 1982-04-06 | Toshiba Corp | Data controller |
JPS58151655A (ja) * | 1982-03-03 | 1983-09-08 | Fujitsu Ltd | 情報処理装置 |
US4434641A (en) * | 1982-03-11 | 1984-03-06 | Ball Corporation | Buckle resistance for metal container closures |
US4410393A (en) * | 1982-06-24 | 1983-10-18 | The United States Of America As Represented By The Secretary Of The Army | Preparation of steel surfaces for adhesive bonding by etching with H3 PO4 -polyhydric alcohol mixture |
JPS5932045A (ja) * | 1982-08-16 | 1984-02-21 | Hitachi Ltd | 情報処理装置 |
US4800486A (en) * | 1983-09-29 | 1989-01-24 | Tandem Computers Incorporated | Multiple data patch CPU architecture |
US4807115A (en) * | 1983-10-07 | 1989-02-21 | Cornell Research Foundation, Inc. | Instruction issuing mechanism for processors with multiple functional units |
JPS60225943A (ja) * | 1984-04-25 | 1985-11-11 | Hitachi Ltd | 例外割込み処理方式 |
US4766564A (en) * | 1984-08-13 | 1988-08-23 | International Business Machines Corporation | Dual putaway/bypass busses for multiple arithmetic units |
JPH0769818B2 (ja) | 1984-10-31 | 1995-07-31 | 株式会社日立製作所 | デ−タ処理装置 |
CA1242803A (en) * | 1984-12-27 | 1988-10-04 | Nobuhisa Watanabe | Microprocessor with option area facilitating interfacing with peripheral devices |
JPH0762823B2 (ja) * | 1985-05-22 | 1995-07-05 | 株式会社日立製作所 | デ−タ処理装置 |
US4722049A (en) * | 1985-10-11 | 1988-01-26 | Unisys Corporation | Apparatus for out-of-order program execution |
US4811208A (en) * | 1986-05-16 | 1989-03-07 | Intel Corporation | Stack frame cache on a microprocessor chip |
JPS63131230A (ja) * | 1986-11-21 | 1988-06-03 | Hitachi Ltd | 情報処理装置 |
JPH0810430B2 (ja) | 1986-11-28 | 1996-01-31 | 株式会社日立製作所 | 情報処理装置 |
JPS63172343A (ja) | 1987-01-12 | 1988-07-16 | Hitachi Ltd | 命令先取り方式 |
DE3702899A1 (de) * | 1987-01-31 | 1988-08-11 | Porsche Ag | Brennraum fuer eine hubkolben-brennkraftmaschine |
JPS63284648A (ja) * | 1987-05-18 | 1988-11-21 | Fujitsu Ltd | キャッシュメモリ制御方法 |
JPS63318634A (ja) | 1987-06-23 | 1988-12-27 | Nec Corp | 命令先取り方式 |
US5134561A (en) * | 1987-07-20 | 1992-07-28 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
US4901233A (en) * | 1987-07-20 | 1990-02-13 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
JPS6436336U (ja) | 1987-08-28 | 1989-03-06 | ||
US5003462A (en) * | 1988-05-31 | 1991-03-26 | International Business Machines Corporation | Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means |
JPH0222736A (ja) | 1988-07-12 | 1990-01-25 | Nec Corp | 中央処理装置 |
JPH0673105B2 (ja) | 1988-08-11 | 1994-09-14 | 株式会社東芝 | 命令パイプライン方式のマイクロプロセッサ |
JPH0287229A (ja) | 1988-09-24 | 1990-03-28 | Nec Corp | 実行命令の先取り制御方式 |
JP2810068B2 (ja) * | 1988-11-11 | 1998-10-15 | 株式会社日立製作所 | プロセッサシステム、コンピュータシステム及び命令処理方法 |
JPH0769824B2 (ja) | 1988-11-11 | 1995-07-31 | 株式会社日立製作所 | 複数命令同時処理方式 |
GB8828817D0 (en) * | 1988-12-09 | 1989-01-18 | Int Computers Ltd | Data processing apparatus |
US5075840A (en) * | 1989-01-13 | 1991-12-24 | International Business Machines Corporation | Tightly coupled multiprocessor instruction synchronization |
US5226166A (en) | 1989-02-10 | 1993-07-06 | Mitsubishi Denki K.K. | Parallel operation processor with second command unit |
US5293500A (en) | 1989-02-10 | 1994-03-08 | Mitsubishi Denki K.K. | Parallel processing method and apparatus |
JPH0769825B2 (ja) | 1989-02-10 | 1995-07-31 | 三菱電機株式会社 | 並列処理装置 |
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 |
US5768575A (en) * | 1989-02-24 | 1998-06-16 | Advanced Micro Devices, Inc. | Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions |
JP3153906B2 (ja) | 1989-02-24 | 2001-04-09 | アドヴァンスド マイクロ デヴァイセス インコーポレイテッド | コンピュータの分散型パイプライン制御装置及び方法 |
CA2016068C (en) * | 1989-05-24 | 2000-04-04 | Robert W. Horst | Multiple instruction issue computer architecture |
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 |
US5129067A (en) * | 1989-06-06 | 1992-07-07 | Advanced Micro Devices, Inc. | Multiple instruction decoder for minimizing register port requirements |
JPH0314025A (ja) * | 1989-06-13 | 1991-01-22 | Nec Corp | 命令実行制御方式 |
DE69032812T2 (de) | 1989-07-07 | 1999-04-29 | Hitachi Ltd | Vorrichtung und Verfahren zur parallelen Verarbeitung |
DE69031257T2 (de) * | 1989-09-21 | 1998-02-12 | Texas Instruments Inc | Integrierte Schaltung mit einem eingebetteten digitalen Signalprozessor |
JP2856784B2 (ja) | 1989-10-27 | 1999-02-10 | 株式会社東芝 | 電子計算機 |
JP2835103B2 (ja) * | 1989-11-01 | 1998-12-14 | 富士通株式会社 | 命令指定方法及び命令実行方式 |
JPH03147134A (ja) | 1989-11-02 | 1991-06-24 | Oki Electric Ind Co Ltd | 命令シーケンス制御装置 |
JP2814683B2 (ja) | 1989-11-08 | 1998-10-27 | 日本電気株式会社 | 命令処理装置 |
DE3940450A1 (de) | 1989-12-07 | 1991-06-13 | Voith Gmbh J M | Rakeleinrichtung |
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 |
US5230068A (en) * | 1990-02-26 | 1993-07-20 | Nexgen Microsystems | Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence |
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 |
JP2878792B2 (ja) | 1990-06-22 | 1999-04-05 | 株式会社東芝 | 電子計算機 |
JP2877468B2 (ja) | 1990-08-09 | 1999-03-31 | 株式会社東芝 | 電子計算機 |
DE69130723T2 (de) * | 1990-10-05 | 1999-07-22 | Koninkl Philips Electronics Nv | Verarbeitungsgerät mit Speicherschaltung und eine Gruppe von Funktionseinheiten |
USH1291H (en) * | 1990-12-20 | 1994-02-01 | Hinton Glenn J | Microprocessor in which multiple instructions are executed in one clock cycle by providing separate machine bus access to a register file for different types of instructions |
JP3141429B2 (ja) | 1991-04-11 | 2001-03-05 | ソニー株式会社 | 記録再生装置の映像調整装置 |
US5488729A (en) * | 1991-05-15 | 1996-01-30 | Ross Technology, Inc. | Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution |
DE69233493T2 (de) * | 1991-07-08 | 2005-07-28 | Seiko Epson Corp. | RISC-Prozessor mit erweiterbarer Architektur |
US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
DE69224887T2 (de) | 1991-07-08 | 1998-07-23 | Seiko Epson Corp | Single-chip seitendrucker-steuerschaltung |
US5493687A (en) * | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
US5440752A (en) | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
JPH06501805A (ja) | 1991-07-08 | 1994-02-24 | トランスメタ コーポレイション | 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ |
WO1993001563A1 (en) | 1991-07-08 | 1993-01-21 | Seiko Epson Corporation | Risc microprocessor architecture with isolated architectural dependencies |
JP3333196B2 (ja) | 1991-07-08 | 2002-10-07 | セイコーエプソン株式会社 | トラップ処理方法 |
JPH0820949B2 (ja) | 1991-11-26 | 1996-03-04 | 松下電器産業株式会社 | 情報処理装置 |
JPH07504773A (ja) | 1992-03-18 | 1995-05-25 | セイコーエプソン株式会社 | マルチ幅のメモリ・サブシステムをサポートするためのシステム並びに方法 |
IT1259012B (it) * | 1992-07-27 | 1996-03-11 | Alcatel Italia | Metodo e circuiti per la riduzione della potenza di picco del segnale filtrato trasmesso in un collegamento di tipo numerico |
JP3147134B2 (ja) | 1992-11-30 | 2001-03-19 | 三菱マテリアル株式会社 | チップ型サーミスタ及びその製造方法 |
JP3218524B2 (ja) | 1993-12-22 | 2001-10-15 | 村田機械株式会社 | ワークホルダーのはみ出し検出装置 |
US5574927A (en) * | 1994-03-25 | 1996-11-12 | International Meta Systems, Inc. | RISC architecture computer configured for emulation of the instruction set of a target computer |
US5778210A (en) * | 1996-01-11 | 1998-07-07 | Intel Corporation | Method and apparatus for recovering the state of a speculatively scheduled operation in a processor which cannot be executed at the speculated time |
US5832205A (en) * | 1996-08-20 | 1998-11-03 | Transmeta Corporation | Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed |
US7897110B2 (en) | 2005-12-20 | 2011-03-01 | Asml Netherlands B.V. | System and method for detecting at least one contamination species in a lithographic apparatus |
-
1992
- 1992-07-07 DE DE69233493T patent/DE69233493T2/de not_active Expired - Lifetime
- 1992-07-07 EP EP05001561A patent/EP1526446A3/en not_active Withdrawn
- 1992-07-07 AT AT98119123T patent/ATE291755T1/de not_active IP Right Cessation
- 1992-07-07 KR KR1019930700691A patent/KR100299691B1/ko not_active IP Right Cessation
- 1992-07-07 JP JP50215393A patent/JP3441071B2/ja not_active Expired - Fee Related
- 1992-07-07 EP EP92914444A patent/EP0547247B1/en not_active Expired - Lifetime
- 1992-07-07 AT AT92914444T patent/ATE200357T1/de not_active IP Right Cessation
- 1992-07-07 WO PCT/JP1992/000871 patent/WO1993001546A1/en active IP Right Grant
- 1992-07-07 DE DE69231762T patent/DE69231762T2/de not_active Expired - Lifetime
- 1992-07-07 EP EP98119123A patent/EP0886209B1/en not_active Expired - Lifetime
-
1995
- 1995-03-01 US US08/397,016 patent/US5560032A/en not_active Expired - Lifetime
-
1996
- 1996-09-23 US US08/716,728 patent/US5832292A/en not_active Expired - Lifetime
-
1998
- 1998-09-22 US US09/158,568 patent/US6038653A/en not_active Expired - Fee Related
- 1998-12-28 HK HK98116067A patent/HK1014784A1/xx not_active IP Right Cessation
-
1999
- 1999-06-23 HK HK99102711A patent/HK1019251A1/xx not_active IP Right Cessation
- 1999-09-10 US US09/393,662 patent/US6282630B1/en not_active Expired - Fee Related
-
2001
- 2001-01-20 KR KR1020017000941A patent/KR100335750B1/ko not_active IP Right Cessation
- 2001-02-28 JP JP2001054372A patent/JP2001243067A/ja not_active Withdrawn
- 2001-02-28 JP JP2001054371A patent/JP2001273139A/ja not_active Withdrawn
- 2001-02-28 JP JP2001054373A patent/JP2001229023A/ja not_active Withdrawn
- 2001-05-08 US US09/850,416 patent/US7028161B2/en not_active Expired - Fee Related
-
2002
- 2002-09-13 JP JP2002267999A patent/JP3627735B2/ja not_active Expired - Lifetime
-
2004
- 2004-09-13 JP JP2004265342A patent/JP3724497B2/ja not_active Expired - Lifetime
- 2004-10-13 JP JP2004298617A patent/JP3724499B2/ja not_active Expired - Lifetime
- 2004-11-12 JP JP2004328494A patent/JP3724500B2/ja not_active Expired - Lifetime
- 2004-12-13 JP JP2004360050A patent/JP3724502B2/ja not_active Expired - Lifetime
-
2005
- 2005-01-12 JP JP2005005252A patent/JP3757982B2/ja not_active Expired - Lifetime
- 2005-02-14 JP JP2005035339A patent/JP2005129087A/ja not_active Withdrawn
- 2005-03-16 JP JP2005074144A patent/JP3864976B2/ja not_active Expired - Lifetime
- 2005-04-15 JP JP2005117624A patent/JP3724505B2/ja not_active Expired - Lifetime
- 2005-05-16 JP JP2005142583A patent/JP3724507B2/ja not_active Expired - Lifetime
- 2005-06-15 JP JP2005175209A patent/JP3744534B2/ja not_active Expired - Lifetime
- 2005-12-27 US US11/316,814 patent/US7555632B2/en not_active Expired - Fee Related
-
2006
- 2006-02-01 JP JP2006024711A patent/JP2006172496A/ja not_active Withdrawn
- 2006-12-19 US US11/640,967 patent/US7941635B2/en not_active Expired - Fee Related
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3724507B2 (ja) | スーパースカラープロセッサ及びデータ処理装置 | |
JP3729202B2 (ja) | スーパースカラーマイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050615 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050615 |
|
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: 20050912 |
|
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: 20080930 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090930 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090930 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100930 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100930 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110930 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120930 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120930 Year of fee payment: 7 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120930 Year of fee payment: 7 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120930 Year of fee payment: 7 |