JP3731604B2 - スーパースカラーマイクロプロセッサおよびデータ処理装置 - Google Patents
スーパースカラーマイクロプロセッサおよびデータ処理装置 Download PDFInfo
- Publication number
- JP3731604B2 JP3731604B2 JP2005011006A JP2005011006A JP3731604B2 JP 3731604 B2 JP3731604 B2 JP 3731604B2 JP 2005011006 A JP2005011006 A JP 2005011006A JP 2005011006 A JP2005011006 A JP 2005011006A JP 3731604 B2 JP3731604 B2 JP 3731604B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- register
- instructions
- address
- 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
- 239000000872 buffer Substances 0.000 claims abstract description 122
- 238000012545 processing Methods 0.000 claims abstract description 46
- 230000003139 buffering effect Effects 0.000 abstract description 2
- 238000000034 method Methods 0.000 description 80
- 230000006870 function Effects 0.000 description 49
- 238000012546 transfer Methods 0.000 description 43
- 239000013598 vector Substances 0.000 description 34
- 238000010586 diagram Methods 0.000 description 21
- 230000008859 change Effects 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 13
- 230000001360 synchronised effect Effects 0.000 description 13
- 230000004044 response Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 10
- 238000006073 displacement reaction Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000013519 translation Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 230000002457 bidirectional effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000000717 retained 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
- 238000009825 accumulation Methods 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
- 150000001875 compounds Chemical class 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 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
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011084 recovery Methods 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
- 230000000153 supplemental effect Effects 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- 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
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30061—Multi-way branch instructions, e.g. CASE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/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
- 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/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/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/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect 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/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 or 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/38—Concurrent instruction execution, e.g. pipeline or 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 or 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 or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
- Microcomputers (AREA)
Description
なお、以下に列挙した米国特許出願は本件特許出願と同時に米国特許出願され、係属中のものであるが、これらの米国特許出願に開示されており、かつそれぞれ対応して出願された日本での特許出願に開示されている事項は、その出願番号を本明細書で引用することにより本明細書の一部を構成するものとする。
(1)発明の名称「拡張可能RISCマイクロプロセッサ・アーキテクチャ」(Extensible RISC Microprocessor Architecture)SMOS 7985 MCF/GBR,米国特許出願第07/727,058号)1991年7月8日出願、発明者Le T.Nguyen他、およびこれに対応する特願平5ー502153号(特表平6ー501124号公報)。
(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 Implementing Multiple 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号公報)。
従って、そのあとに続く条件付命令の実行が遅延または停止(stall)されるので、いくつかのパイプライン・ステージが数プロセッサ・サイクルの間インアクティブ(inactive)、すなわち不動作のままになっている。代表例として条件コードは実行ステージを通してある命令の処理が完了したときだけ、プロセッサ状況レジスタ(PSR)とも呼ばれる条件コード・レジスタに書かれている。そのために、ブランチ条件コードが判断されるまでの数プロセッサ・サイクルの間、条件付きブランチ命令をデコード・ステージにおいたままパイプラインを停止させなければならない。パイプラインが停止すると、スループットの損失が大になる。さらにコンピュータの平均スループットはプログラム命令ストリームの中で条件付きブランチ命令が条件コード設定命令のあとに近接して現れる頻度によって左右される。
path)で結ばれているので、それぞれの命令を並行実行するために必要とされるレジスタ・ファイルへの複数の独立アクセスが可能になっている。
本発明の別の利点は、サイクルごとに複数の命令の実行を可能にしたことにある。
さらに、本発明の利点は、複数の命令を同時並行に実行することを最適化するために必要な機能ユニットを動的に(ダイナミック)に選択して、利用することを可能にしたことである。さらに本発明の別の利点は、正確なマシン状態復帰機能をサポートするメカニズムと一体化したレジスタ・ファイル・ユニットを設けたことにある。
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.要約及び結論
以下に目次に従って説明する。
図1は本発明のアーキテクチャ100の概要を示すものである。命令フェッチ・ユニット(IFU)102と命令実行ユニット(IEU)104はアーキテクチャ100の中心となる機能要素である。仮想メモリ・ユニット(VMU)108、キャッシュ制御ユニット(CUU)106、およびメモリ制御ユニット(MCU)110は、IFU102とIEU104の機能を直接にサポートするためのものである。また、メモリ・アレイ・ユニット(MAU)112は基本的要素として、アーキテクチャ100を動作させるためのものである。もっともMAU112はアーキテクチャ100の一つの一体的なコンポーネントとして直接的に存在しない。つまり、本発明の好適実施例ではIFU102、IEU104、VMU108、CCU106およびMCU110は従来の0.8ミクロン設計ルールの低電力CMOSプロセスを利用してシングル・シリコン・チップ上に実装され、約1,200,000個のトランジスタから構成されている。アーキテクチャ100の標準プロセッサまたはシステムのクロック速度は40MHzである。しかし、本発明の好適実施例によれば、プロセッサの内部クロック速度は160MHzである。
命令フェッチ・ユニット102の主要エレメントを図2に示す。これらのエレメントのオペレーションおよび相互関係を理解しやすくするために、以下ではこれらのエレメントがIFUデータ経路と制御経路に関与する場合を考慮して説明する。
IFUデータ経路は、命令の組を受け取ってプリフェッチ・バッファ260に一時的にストアしておく命令バス114から始まる。プリフェッチ・バッファ260からの命令の組はIデコード・ユニット262を通ってIFIFOユニット264へ渡される。命令FIFO264の最後の2ステージにストアされた命令の組は、データ・バス278、280を通してIEU104に連続的に取り出して利用することができる。
IFU102制御経路は、プリフェッチ・バッファ・ユニット260、Iデコード・ユニット262およびIFIFOユニット264のオペレーションを直接にサポートする。プリフェッチ制御ロジック・ユニット266は主にプリフェッチ・バッファ・ユニット260のオペレーションを管理する。プリフェッチ制御ロジック・ユニット266とIFU102は一般的にはクロック・ライン290からシステム・クロック信号を受信して、IFUのオペレーションとIEU104、CCU106およびVMU108のオペレーションとの同期をとるようにしている。命令の組を選択して、MBUF188、TBUF190およびEBUF192に書き込むための制御信号は制御ライン304上に送出される。
ID)、2個の1ビット予約フラグ(TB RES、EB RES)および2個の1ビット有効フラグ(TB VAL、EB VAL)をストアしておくためのものである。最後にフロー・スルー状況レジスタ314は1個の4ビットID値(FT ID)、1個の予約フラグ・ビット(FT RES)および1個の有効フラグ・ビット(FT VAL)をストアしておくためのものである。
IFU102とIEU104とを結ぶ制御インタフェースは制御バス126によって提供される。この制御バス126はPCロジック・ユニット270に接続され、複数の制御、アドレスおよび特殊データ・ラインから構成されている。割り込み要求と受信確認制御信号を制御ライン340を経由して渡すことにより、IFU102は割り込みオペレーションを通知し、IEU104との同期をとることができる。外部で発生した割り込み信号はライン292経由でロジック・ユニット270へ送られる。これを受けて、割り込み要求制御信号がライン340上に送出されると、IEU104は試行的に実行された命令をキャンセルする。割り込みの内容に関する情報は、割り込み情報ライン341を通してやりとりされる。IEU104がPCロジック・ユニット270によって判断された割り込みサービス・ルーチンのアドレスからプリフェッチされた命令の受信を開始する準備状態になると、IEU104はライン340上の割り込み受信確認制御信号を肯定する。IFU102によってプリフェッチされた割り込みサービス・ルーチンがそのあと開始される。
PC制御ユニット362、割り込み制御ユニット363、プリフェッチPC制御ユニット364および実行PC制御ユニット366を含むPCロジック・ユニット270の詳細図は図3に示されている。
1)PFおよびExPC制御/データ・ユニットの詳細
図4はプリフェッチおよび実行PC制御ユニット364、366の詳細ブロック図である。
これらのユニットは主にレジスタ、インクリメンタ(増分器)その他の類似部品、セレクタおよび加算器ブロックから構成されている。これらのブロック間のデータ転送を管理する制御は、PFPC制御ライン372、ExPC制御ライン378およびインクリメント制御ライン374、380を通してPC制御ユニット362によって行われる。説明を分かりやすくするために、図4のブロック図には、これらの個々の制御ラインは示されていない。しかし、これらの制御信号が以下に説明するように、これらのブロックへ送られることは勿論である。
1.メイン命令ストリームの処理:MBUF_PFnPC
1.1 次のメイン・フロープリフェッチ命令のアドレスはMBUF_PFn
PCにストアされる
1.2 制御フロー命令がないときは、32ビット・インクリメンタはMBU
F_PFnPCに入っているアドレス値を各プリフェッチ・サイクル
ごとに16バイト(x16)だけ調整する
1.3 無条件制御フロー命令がIデコードされると、命令の組に続いてフ
ェッチされた全てのプリフェッチ・データはフラッシュされ、MBU
F_PFnPCにはターゲット・レジスタ・ユニット、PF_PCセ
レクタおよびインクリメンタを通して、新しいメイン命令ストリーム
・アドレスがロードされる。新しいアドレスは新ストリーム・レジス
タにもストアされる
1.3.1 相対無条件制御フローのターゲット・アドレスはIFU
が保持しているレジスタ・データからと制御フロー命令
の後に置かれたオペランド・データから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 ハードウェア割り込み
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レジスタに復元される。
1)概要
割り込みと例外は、それらが可能にされている限り、プロセッサがメイン命令ストリームから実行されているか、プロシージャ命令ストリームから実行されているか、プロシージャ命令ストリームから実行されているかに関係なく処理される。割り込みと例外は優先順にサービスが受けられ、クリアされるまで持続している。トラップ・ハンドラの開始アドレスは下述するように、トラップ・ハンドラの事前定義テーブルまでのベクトル番号オフセットとして判断される。
非同期割り込みは、割り込みライン292を通してPCロジック・ユニット270に通知される。図3に示すように、これらのラインはPCロジック・ユニット270内の割り込みロジック・ユニット363に通知するためのもので、NMIライン、IRQラインおよび1組の割り込みレベル・ライン(LVL)からなっている。NMIラインはマスク不能割り込みを通知し、外部ソースを起点としている。これは、ハードウエア・リセットを除き最高優先度割り込みである。IRQラインも外部ソースを起点としており、外部デバイスがハードウエア割り込みをいつ要求したかを通知する。好適実施例では、外部から起こされるハードウエア割り込みは最高32個までユーザが定義することができ、割り込みを要求した特定外部デバイスは割り込みレベル・ライン(LVL)上に割り込み番号(0−31)を送出する。メモリ・エラー・ラインはMCU110によってアクティベート(活性化)され、様々な種類のメモリ・エラーを通知する。その他の非同期割り込みライン(図示せず)も割り込みロジック・ユニット363に通知するために設けられている。これらには、タイマ/カウンタ割り込み、メモリ入出力(I/O)エラー割り込み、マシン・チェック割り込み、およびパフォーマンス・モニタ割り込みを要求するためのラインがある。
同期例外の場合は、割り込み制御ユニット363は各命令の組ごとに4個が1組の内部例外ビット(図示せず)をもっており、各ビットはセット内の各命令に対応づけられている。割り込み制御ユニット363は各命令で見つかったとき、通知するトラップ番号も維持している。
4)ハンドラ・ディスパッチとリターン:
割り込み受信確認信号がライン340経由でIEUから受信されるか、あるいはゼロ以外の例外ベクトルがライン341経由で受信された後、現DPCがリターン・アドレスとして特殊レジスタ412(図4)の一つであるxPCレジスタに一時的にストアされる。現プロセッサ状態レジスタ(PSR)は先のPSR(PPSR)レジスタにもストアされ、そして現状態比較レジスタ(CSR)が特殊レジスタ412の中の旧状態比較レジスタ(PCSR)にセーブされる。
PFnPCに復元すべきかの判断は、復元された後のPSRの「プロシージャ進行中」ビットにしたがって行われる。
5)ネスト:
ある種のプロセッサ状況情報は、トラップ・ハンドラ、特にCSR、PSR、リターンPCおよびある意味では“A”レジスタ・セットra〔24〕〜ra〔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はIEU104の制御経路部分とデータ経路部分を示したものである。主要データ経路は、IFU102からの命令/オペランド・データ・バスを始端としている。データ・バスとして、即値オペランドはオペランド位置合わせユニット470へ送られ、レジスタ・ファイル(REG ARRAY)472に渡される。レジスタ・データはレジスタ・ファイル472からバイパス・ユニット474を通って、レジスタ・ファイル出力バス476を経由し、分配バス480を経由して機能計算エレメント(FU0-n )の並列配列へ送られる。機能ユニット4780-n によって生成されたデータは出力バス482を経由して、バイパス・ユニット474またはレジスタ配列472または両方へ送り返される。
IEUデータ経路の中心となるエレメントはレジスタ・ファイル472である。しかし、本発明によればIEUデータ経路内には、個々の機能用に最適化された並列データ経路がいくつか用意されている。主要データ経路は整数と浮動少数点の2つである。各並列データ経路内では、レジスタ・ファイル472の一部がそのデータ経路内で行われるデータ操作をサポートするようになっている。
図6(a)は、データ経路レジスタ・ファイル550の好適アーキテクチャの概要図である。データ経路レジスタ・ファイル550は一時バッファ552、レジスタ・ファイル配列554、入力セレクタ559、および出力セレクタ556を含んでいる。最終的にレジスタ配列554へ送られるデータは結合データ入力バス558'を経由して一時バッファ552によって最初に受信されるのが代表例である。つまり、データ経路レジスタ・ファイル550へ送られるデータはすべて入力セレクタ559によって多重化されて、複数の入力バス558(好ましくは2つの)から入力バス558'上に送出される。制御バス518上に送出されたレジスタ選択およびイネーブル制御信号は一時バッファ552内の受信データのレジスタ・ロケーションを選択する。一時バッファにストアされるデータを生成した命令がリタイアされると、再び制御バス518上に送出された制御信号は一時バッファ552からレジスタ・ファイル配列554内の論理的に対応づけられたレジスタへデータ・バス560を経路してデータを転送することを許可する。しかし、命令がリタイアされる前は、一時バッファ552にストアされたデータは一時バッファにストアされたデータをデータ・バス560のバイパス部分を経由して出力データ・セレクタ556へ送ることにより、後続の命令の実行時に使用することが可能である。制御バス518経由で送られる制御信号によって制御されるセレクタ556は、一時バッファ552のレジスタからのデータとレジスタ・ファイル配列554のレジスタからのデータのどちらかを選択する。結果のデータはレジスタ・ファイル出力バス564上に送出される。また、実行中の命令が完了と同時にリタイアされる場合は、つまり、その命令が順序内で実行された場合は、結果データをバイパス延長部分558”を経由して直接にレジスタ配列554へ送るように指示することができる。
これは、等しい、等しくない、より大、その他単純なブール状況値などの条件を表す1ビット・フラグをストアするシングル・プロセッサ状況ワード・レジスタを使用するのと対照的である。
その他の特殊レジスタは表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からロードされる。
本発明の好適実施例に従って構築されるIEU104の整数データ経路は、図10に示されている。説明の便宜上、整数データ経路580と結ばれる多数の制御経路は、図には示していない。これらの接続関係は図5を参照して説明したとおりである。
immediate)データ値は、最初は命令埋め込み(embedded)データ・フィールドとして与えられ、バス588経由でオペランド・ユニット470から得られる。位置合わせユニット582は整数データ値を隔離し、その結果値が出力バス590を経由してマルチプレクサ592へ送られる。マルチプレクサ592への別の入力は、特殊レジスタ・アドレスとデータ・バス354である。
3)浮動小数点データ経路の詳細
次に、図11は浮動小数点データ経路を示したものである。初期データは、この場合も、即値整数オペランド・バス588、即値オペランド・バス594および特殊レジスタ・アドレス・データ・バス354を含む複数のソースから受信される。外部データの最終的ソースは外部データバス598を通してCCU106に接続された浮動小数点ロード/ストア・ユニット622である。
ブール演算データ経路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=ブール・ソース・レジスタ。
図13はロード/ストア・ユニット760の例を示したものである。データ経路580、660に別々に示されているが、ロード/ストア・ユニット586、662は一つの共用ロード/ストア・ユニット760として実現するのが好ましい。それぞれのデータ経路580、660からのインタフェースはアドレス・バス762およびロードとストア・データ・バス764(600、676)、766(632、702)を経由している。
再び、図5を参照して、IEU制御経路のオペレーションを図14に示したタイミング図と関連づけて説明する。図14に示した命令の実行タイミングは、本発明のオペレーションを例示したもので、種々態様に変更可能であることは勿論である。
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選択
拡張プロシージャ プロシージャ指定子:プロシージャ・ベース値か
らのアドレス・オフセットの指定
オペレーション:値をプロシージャ・ルーチンへ
渡す
アトミック・プロシージャ プロシージャ指定子:アドレス値の指定
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
*−命令は、デコードされて命令を識別するフィールドのほかにこれらのフィールドを含んでいる。
キャリー・チェッカ・ユニット492は図14に示すオペレーションのデータ依存関係フェーズ期間の間に依存関係検査ユニット494と並列に動作する。キャリー・チェッカ・ユニット492は好適アーキテクチャ100では順列組合せ理論に基づくロジックとして実現されている。したがって、キャリー・チェッカ・ユニット492によるオペレーションの各繰り返し時に、命令がプロセッサ状態レジスタのキャリー・フラグを変更したかどうかについて8個の命令すべてが考慮される。これが必要とされるのは、その前の命令によって設定されたキャリー・ビットの状況に依存する命令を順序外で実行することを可能にするためである。制御ライン504上に送出された制御信号により、キャリー・チェッカ・ユニット492は、キャリー・フラグに対する先行命令の実行に依存する特定の命令を識別することができる。
データ依存関係チェッカ・ユニット494はEデコード・ユニット490から制御ライン506を経由して8個のレジスタ参照識別ベクトルを受け取る。各レジスタの参照は32個のレジスタを一度に1つを識別するのに適した5ビット値と“A”“B”またはブール・レジスタ・セット内に置かれているレジスタ・バンクを識別する2ビット値によって示されている。浮動小数点レジスタ・セットは“B”レジスタ・セットとも呼ばれる。各命令は最高3つまでのレジスタ参照フィールドを持つことができる。2つのソース・レジスタ・フィールドと1つの宛先レジスタ・フィールドである。ある種の命令、特にレジスタ間移動命令は、宛先レジスタを指定している場合があっても、Eデコード・ユニット490によって認識される命令ビット・フィールドは実際に作製される出力データがないことを意味している場合がある。むしろ、命令の実行は、プロセッサ状況レジスタの値の変更を判断することだけを目的としている。
キャリーとレジスタ・データの依存関係は、第2プロセッサ・サイクルの開始直後に判別される。
レジスタ改名ユニット496は8個の保留中の命令すべてのレジスタ参照のIDを制御ライン506を経由してレジスタ依存関係を制御ライン508を経由して受け取る。8個のエレメントからのマトリックスも制御ライン542を経由して受け取る。これらのエレメントは保留中命令の現セットの中でどの命令が実行されたか(完了したか)を示している。この情報からレジスタ改名ユニット496は制御信号の8エレメント配列を制御ライン512を経由して命令発行ユニット498へ送る。このようにして送られた制御情報は、現セットのデータ依存関係が判別された場合に、まだ実行されていない現在保留中の命令のうちどの命令の実行が可能になったかについてレジスタ改名ユニット496が行った判断を反映している。レジスタ改名ユニット496は実行のために同時に出される最高6個までの命令を識別した選択制御信号をライン516を経由して受信する。つまり、2個の整数命令、2個の浮動小数点命令および2個のブール命令である。
命令発行ユニット498は、発行できる命令のセットをレジスタ改名ユニット496の出力とEデコード・ユニット490によって識別された命令の機能要件に基づいて判断する。命令発行ユニット498は制御ライン514を経由して報告された機能ユニット4780-n の各々の状況に基づいてこの判断を行う。したがって、命令発行ユニット498は発行すべき使用可能な命令の組をレジスタ改名ユニット496から受信すると、オペレーションを開始する。各命令を実行するためにレジスタ・ファイルへのアクセスが必要であるとすると、命令発行ユニット498は現在命令を実行中の機能ユニット4980-n が使用可能であることを予想する。レジスタ改名ユニット496へ発行すべき命令を判別する際の遅延を最小にするために、命令発行ユニット498は専用の組合せロジックで実現されている。
PC実行アドレスを出力する。
完了制御ユニット540は機能ユニット4780-n をモニタして、現在のオペレーションの完了状況を調べる。好適アーキテクチャ100では、完了制御ユニット540は各機能ユニットによるオペレーションの完了を予想して、現在保留中の命令の組の中の各命令の実行状況を示した完了ベクトルを機能ユニット4780-n による命令の実行完了よりも約半プロセッサ・サイクル前にレジスタ改名ユニット496、バイパス制御ユニット520およびリタイア制御ユニット500へ送る。これにより、命令発行ユニット498はレジスタ改名ユニット496を通して、実行を完了する機能ユニットを次の命令発行サイクルに対して使用可能な資源として考慮することができる。バイパス制御ユニット520は、機能ユニットから出力されたデータをバイパス・ユニット474を通るようにバイパスする準備を行うことができる。最後に、リタイア制御ユニット500は機能ユニット4780-n からレジスタ・ファイル配列472へデータを転送するのと同時に対応する命令をリタイアするように動作する。
完了制御ユニット540から送られた命令完了ベクトルの他に、リタイア制御ユニット500はEデコード・ユニット490から出力された最も古い命令の組をモニタする。命令ストリーム順序の中の各命令に完了制御ユニット540によって完了の印(マーク)が付けられると、リタイア制御ユニット500は、制御ライン534上に送出された制御信号を通して一時バッファ・スロットからレジスタ・ファイル配列472内の対応する命令が指定したファイル・レジスタ・ロケーションへデータを転送することを指示する。1つまたは複数の命令が同時にリタイアされると、PC Inc/size制御信号が制御ライン344上に送出される。各プロセッサ・サイクルごとに最高4個までの命令をリタイアすることが可能である。命令の組の全体がリタイアされると、IFIFO読取り制御信号が制御ライン342上に送出されてIFIFO264を前進させる。
制御フロー制御ユニット528は、現在の保留中命令の組の内の制御フロー命令が解決されたかどうか、さらに、その結果ブランチが行われたかどうかを指定した情報をIFU102に絶えず与えるように動作する。制御フロー制御ユニット528はEデコード・ユニット490による制御フロー・ブランチ命令の識別情報を制御ライン510を経由して取得する。現在のレジスタ依存関係のセットは、制御ライン536を経由してデータ依存関係チェッカ・ユニット494から制御フロー制御ユニット528へ送られるので、制御フロー制御ユニット528はブランチ命令の結果が依存関係に拘束されているかどうか、あるいは判明しているかどうかを判断することができる。レジスタ改名ユニット496からバス518を経由して、送られたレジスタの参照は制御フロー制御ユニット528によってモニタされ、ブランチ決定を定義するブール・レジスタが判別される。したがって、ブランチ決定は制御フロー命令の順序外の実行以前でも判断することが可能である。
好適アーキテクチャ100では、制御フロー制御ユニット528は制御ユニット528への入力制御信号を受けて連続的に動作する組合せロジックとして実現されている。
命令発行ユニット498は、バイパス制御ユニット520と厳密に協働して、レジスタ・ファイル配列472と機能ユニット4780-n 間のデータのルーチング(経路指定)を制御する。バイパス制御ユニット520は図14に示すオペレーションのレジスタ・ファイル・アクセス、出力およびストア・フェーズと関連して動作する。レジスタ・ファイル・アクセスの間にはバイパス制御ユニット520は命令の実行の出力フェーズの間に書き込まれている途中にあるレジスタ・ファイル配列472内の宛先レジスタのアクセスを制御ライン522を通して認識することができる。この場合、バイパス制御ユニット520はバイパスして機能ユニット配布バス480に返すように、機能ユニット出力バス482上に送出されたデータを選択することを指示する。バイパス・ユニット520に対する制御は、制御ライン542を通して命令発行ユニット498によって行われる。
VMU108のインタフェース定義は図15に示されている。VMU108は主にVMU制御ロジック・ユニット800と内容アドレス(content addressable)メモリ(CAM)802から構成されている。VMU108の一般的機能は図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ビットとして得られる。
CCU106のデータ・インタフェースに対する制御は、図17に示されている。この場合も、IFU102とIEU104用に別々のインタフェースが設けられている。さらに論理的に別個のインタフェースがCCU106に用意され、命令とデータ転送のためにMCU110と結ばれている。
IFUインタフェースはアドレス・ライン324上に送出される物理ページ・アドレス、アドレス・ライン824上に送出されるVMU変換ページ・アドレス、および制御ライン294、296上を別々に転送される要求IDからなっている。単方向データ転送バス114は命令の組の全体をIFU102と並列に転送するためのものである。最後に、読取り/使用中および準備制御信号は制御ライン298、300、302を経由して、CCU106へ送られる。
しかし、アーキテクチャ100の好適実施例では、下位の64ビットだけがIEU104によって使用される。全80ビット・データ転送バスをCCU106内で使用できるようにし、かつ、サポートしているのは、本アーキテクチャ100の引き続いての実行をサポートするためであり、浮動少数点データ経路660を変更することによって、IEEE標準754に準拠する浮動小数点のオペレーションをサポートする。
高性能RISCをベースとしたマイクロプロセッサ・アーキテクチャは以上に説明した通りである。本発明のアーキテクチャによれば、命令を順序外に実行することができ、メインとターゲット命令ストリームのプリフェッチ命令転送経路を別々に設け、およびプロシージャ命令認識と専用プリフェッチ経路を設けることができる。命令実行ユニットは最適化されているので、最適化された複数のデータ処理経路で整数、浮動小数点およびブール演算をサポートすることができ、また、それぞれの一時レジスタ・ファイルが設けられているので、容易に設定されるマシン状態の状況を正確に維持しながら、順序外の実行と命令取消しを容易に行うことができる。
したがって、上述した説明では、本発明の好適実施例を開示しているが、当業者にとって本発明の範囲内で種々変更および改良することが可能であることは勿論である。
102…命令フェッチ・ユニット(IFU)
104…命令実行ユニット(IEU)
106…キャッシュ制御ユニット(CUU)
108…仮想メモリ・ユニット(VMU)
110…メモリ制御ユニット(MCU)
112…メモリ・アレイ・ユニット(MAU)
Claims (2)
- 命令を同時に実行可能な複数の機能ユニットと該機能ユニットにおける前記命令の実行時に使用可能なレジスタとを有するスーパースカラーマイクロプロセッサであって、
メイン命令ストリームを構成する複数の命令を、前記機能ユニットでの実行に先立って、予め定めたブログラム順序で、外部のメモリからプリフェッチする第1のプリフェッチユニットと、
該第1のプリフェッチユニットと同一のパス幅を有し、前記メイン命令ストリーム中の条件付き分岐命令の後に置かれる他方の命令ストリームを、プログラムの実行順序に従った順序でプリフェッチする第2のプリフェッチユニットと、
該第1,第2のプリフェッチユニットの後段に設けられ、複数の命令を保持するバッファユニットと、
前記バッファの後段に設けられ、前記バッファに保持された命令のうちの複数命令を同時にデコードするデコードユニットと、
該デコードされた命令を前記機能ユニットにより実行する際に用いられる前記レジスタを複数備えたレジスタファイルユニットと、
前記デコーダから出力された前記複数の命令の依存関係を、少なくとも前記レジスタの使用条件に基づいて検出する依存関係チェックユニットと、
前記依存関係チェックユニットにより依存関係に基づく実行上の制約がないと判断された前記命令については、複数の機能ユニットに順序外での実行を割り当てる命令発行ユニットと、
前記順序外で実行された命令のリタイアを行なうリタイアユニットと、
前記リタイアされた命令が条件付きブランチ命令である場合、該条件付きブランチ命令の結果を判断し、該結果に基づいて、前記第1,第2のプリフェッチユニットおよび前記バッフアユニットに置かれた前記命令のうち、前記条件付きブランチ命令の結果から外れた命令を無効にするロジックユニットと
を備えたスーパースカラーマイクロプロセッサ。 - 請求項1記載のスーパースカラーマイクロプロセッサと、
該スーパースカラー型マイクロプロセッサが、前記命令の実行に伴って、システムメモリバスを介してデータをアクセスするメモリと
を備えたデータ処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72700691A | 1991-07-08 | 1991-07-08 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004367718A Division JP3760948B2 (ja) | 1991-07-08 | 2004-12-20 | スーパースカラーマイクロプロセッサ |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005041740A Division JP3731605B2 (ja) | 1991-07-08 | 2005-02-18 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005108264A JP2005108264A (ja) | 2005-04-21 |
JP3731604B2 true JP3731604B2 (ja) | 2006-01-05 |
Family
ID=24920949
Family Applications (23)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50215093A Expired - Lifetime JP3441070B2 (ja) | 1991-07-08 | 1992-07-07 | 高性能riscマイクロプロセッサ及びデータ処理装置 |
JP2000145125A Expired - Lifetime JP3654138B2 (ja) | 1991-07-08 | 2000-05-17 | スーパースカラー型マイクロプロセッサ及びデータ処理装置 |
JP2000145126A Withdrawn JP2000357091A (ja) | 1991-07-08 | 2000-05-17 | コンピュータシステム |
JP2000145124A Withdrawn JP2000339159A (ja) | 1991-07-08 | 2000-05-17 | スーパースカラー型マイクロプロセッサ |
JP2000145123A Expired - Lifetime JP3654137B2 (ja) | 1991-07-08 | 2000-05-17 | スーパースカラー型マイクロプロセッサ及びデータ処理装置 |
JP2000146442A Withdrawn JP2000339162A (ja) | 1991-07-08 | 2000-05-18 | スーパースカラーマイクロプロセッサ |
JP2000146441A Expired - Lifetime JP3654139B2 (ja) | 1991-07-08 | 2000-05-18 | スーパースカラーマイクロプロセッサ及びデータ処理装置 |
JP2000146443A Withdrawn JP2000339163A (ja) | 1991-07-08 | 2000-05-18 | スーパースカラーマイクロプロセッサ、該プロセッサシステム、該プロセッサシステムにおけるデータ処理方法、及び該プロセッサを備えたコンピュータシステム |
JP2002267998A Expired - Lifetime JP3702873B2 (ja) | 1991-07-08 | 2002-09-13 | マイクロプロセッサを用いた命令実行方法 |
JP2004266867A Expired - Lifetime JP3729202B2 (ja) | 1991-07-08 | 2004-09-14 | スーパースカラーマイクロプロセッサ |
JP2004299657A Expired - Lifetime JP3838252B2 (ja) | 1991-07-08 | 2004-10-14 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2004329902A Expired - Lifetime JP3760947B2 (ja) | 1991-07-08 | 2004-11-15 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2004367718A Expired - Lifetime JP3760948B2 (ja) | 1991-07-08 | 2004-12-20 | スーパースカラーマイクロプロセッサ |
JP2005011006A Expired - Lifetime JP3731604B2 (ja) | 1991-07-08 | 2005-01-19 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005041740A Expired - Lifetime JP3731605B2 (ja) | 1991-07-08 | 2005-02-18 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005119940A Expired - Lifetime JP3791542B2 (ja) | 1991-07-08 | 2005-04-18 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005145542A Expired - Lifetime JP3791544B2 (ja) | 1991-07-08 | 2005-05-18 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005178170A Expired - Lifetime JP3791545B2 (ja) | 1991-07-08 | 2005-06-17 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005208079A Expired - Lifetime JP3791547B2 (ja) | 1991-07-08 | 2005-07-19 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005237341A Expired - Lifetime JP3791548B2 (ja) | 1991-07-08 | 2005-08-18 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005271886A Expired - Lifetime JP3791550B2 (ja) | 1991-07-08 | 2005-09-20 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2006162315A Expired - Lifetime JP3915842B2 (ja) | 1991-07-08 | 2006-06-12 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2006191594A Withdrawn JP2006313564A (ja) | 1991-07-08 | 2006-07-12 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
Family Applications Before (13)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50215093A Expired - Lifetime JP3441070B2 (ja) | 1991-07-08 | 1992-07-07 | 高性能riscマイクロプロセッサ及びデータ処理装置 |
JP2000145125A Expired - Lifetime JP3654138B2 (ja) | 1991-07-08 | 2000-05-17 | スーパースカラー型マイクロプロセッサ及びデータ処理装置 |
JP2000145126A Withdrawn JP2000357091A (ja) | 1991-07-08 | 2000-05-17 | コンピュータシステム |
JP2000145124A Withdrawn JP2000339159A (ja) | 1991-07-08 | 2000-05-17 | スーパースカラー型マイクロプロセッサ |
JP2000145123A Expired - Lifetime JP3654137B2 (ja) | 1991-07-08 | 2000-05-17 | スーパースカラー型マイクロプロセッサ及びデータ処理装置 |
JP2000146442A Withdrawn JP2000339162A (ja) | 1991-07-08 | 2000-05-18 | スーパースカラーマイクロプロセッサ |
JP2000146441A Expired - Lifetime JP3654139B2 (ja) | 1991-07-08 | 2000-05-18 | スーパースカラーマイクロプロセッサ及びデータ処理装置 |
JP2000146443A Withdrawn JP2000339163A (ja) | 1991-07-08 | 2000-05-18 | スーパースカラーマイクロプロセッサ、該プロセッサシステム、該プロセッサシステムにおけるデータ処理方法、及び該プロセッサを備えたコンピュータシステム |
JP2002267998A Expired - Lifetime JP3702873B2 (ja) | 1991-07-08 | 2002-09-13 | マイクロプロセッサを用いた命令実行方法 |
JP2004266867A Expired - Lifetime JP3729202B2 (ja) | 1991-07-08 | 2004-09-14 | スーパースカラーマイクロプロセッサ |
JP2004299657A Expired - Lifetime JP3838252B2 (ja) | 1991-07-08 | 2004-10-14 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2004329902A Expired - Lifetime JP3760947B2 (ja) | 1991-07-08 | 2004-11-15 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2004367718A Expired - Lifetime JP3760948B2 (ja) | 1991-07-08 | 2004-12-20 | スーパースカラーマイクロプロセッサ |
Family Applications After (9)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005041740A Expired - Lifetime JP3731605B2 (ja) | 1991-07-08 | 2005-02-18 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005119940A Expired - Lifetime JP3791542B2 (ja) | 1991-07-08 | 2005-04-18 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005145542A Expired - Lifetime JP3791544B2 (ja) | 1991-07-08 | 2005-05-18 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005178170A Expired - Lifetime JP3791545B2 (ja) | 1991-07-08 | 2005-06-17 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005208079A Expired - Lifetime JP3791547B2 (ja) | 1991-07-08 | 2005-07-19 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005237341A Expired - Lifetime JP3791548B2 (ja) | 1991-07-08 | 2005-08-18 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2005271886A Expired - Lifetime JP3791550B2 (ja) | 1991-07-08 | 2005-09-20 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2006162315A Expired - Lifetime JP3915842B2 (ja) | 1991-07-08 | 2006-06-12 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
JP2006191594A Withdrawn JP2006313564A (ja) | 1991-07-08 | 2006-07-12 | スーパースカラーマイクロプロセッサおよびデータ処理装置 |
Country Status (8)
Country | Link |
---|---|
US (19) | US5539911A (ja) |
EP (3) | EP0547241B1 (ja) |
JP (23) | JP3441070B2 (ja) |
KR (42) | KR20080109099A (ja) |
AT (3) | ATE450826T1 (ja) |
DE (4) | DE69232113T2 (ja) |
HK (2) | HK1014782A1 (ja) |
WO (1) | WO1993001545A1 (ja) |
Families Citing this family (233)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781753A (en) | 1989-02-24 | 1998-07-14 | 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 speculative and out-of-order execution of complex instructions |
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 |
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 |
JPH04367936A (ja) * | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | スーパースカラープロセッサ |
US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5961629A (en) * | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
DE69233493T2 (de) | 1991-07-08 | 2005-07-28 | Seiko Epson Corp. | RISC-Prozessor mit erweiterbarer Architektur |
JP3730252B2 (ja) | 1992-03-31 | 2005-12-21 | トランスメタ コーポレイション | レジスタ名称変更方法及び名称変更システム |
US5371684A (en) * | 1992-03-31 | 1994-12-06 | Seiko Epson Corporation | Semiconductor floor plan for a register renaming circuit |
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 |
EP0638183B1 (en) * | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | A system and method for retiring instructions in a superscalar microprocessor |
EP0809252B1 (en) * | 1992-09-18 | 2003-11-26 | Hitachi, Ltd. | Data processing system with synchronous dynamic memory in integrated circuit technology |
US6735685B1 (en) * | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
EP0663083B1 (en) | 1992-09-29 | 2000-12-20 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
WO1994016384A1 (en) | 1992-12-31 | 1994-07-21 | Seiko Epson Corporation | System and method for register renaming |
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 |
JP2596712B2 (ja) * | 1993-07-01 | 1997-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 近接した分岐命令を含む命令の実行を管理するシステム及び方法 |
JP2801135B2 (ja) * | 1993-11-26 | 1998-09-21 | 富士通株式会社 | パイプラインプロセッサの命令読み出し方法及び命令読み出し装置 |
US5956753A (en) * | 1993-12-30 | 1999-09-21 | Intel Corporation | Method and apparatus for handling speculative memory access operations |
US6393550B1 (en) * | 1993-12-30 | 2002-05-21 | Intel Corporation | Method and apparatus for pipeline streamlining where resources are immediate or certainly retired |
US5724536A (en) * | 1994-01-04 | 1998-03-03 | Intel Corporation | Method and apparatus for blocking execution of and storing load operations during their execution |
US5546597A (en) * | 1994-02-28 | 1996-08-13 | Intel Corporation | Ready selection of data dependent instructions using multi-cycle cams in a processor performing out-of-order instruction execution |
US5564056A (en) * | 1994-03-01 | 1996-10-08 | Intel Corporation | Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming |
JP3212213B2 (ja) * | 1994-03-16 | 2001-09-25 | 株式会社日立製作所 | データ処理装置 |
US5878244A (en) * | 1995-01-25 | 1999-03-02 | Advanced Micro Devices, Inc. | Reorder buffer configured to allocate storage capable of storing results corresponding to a maximum number of concurrently receivable instructions regardless of a number of instructions received |
US6237082B1 (en) | 1995-01-25 | 2001-05-22 | Advanced Micro Devices, Inc. | Reorder buffer configured to allocate storage for instruction results corresponding to predefined maximum number of concurrently receivable instructions independent of a number of instructions received |
US5901302A (en) * | 1995-01-25 | 1999-05-04 | Advanced Micro Devices, Inc. | Superscalar microprocessor having symmetrical, fixed issue positions each configured to execute a particular subset of instructions |
US5903741A (en) * | 1995-01-25 | 1999-05-11 | Advanced Micro Devices, Inc. | Method of allocating a fixed reorder buffer storage line for execution results regardless of a number of concurrently dispatched instructions |
US5778434A (en) | 1995-06-07 | 1998-07-07 | Seiko Epson Corporation | System and method for processing multiple requests and out of order returns |
US5710902A (en) * | 1995-09-06 | 1998-01-20 | Intel Corporation | Instruction dependency chain indentifier |
US5694565A (en) * | 1995-09-11 | 1997-12-02 | International Business Machines Corporation | Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions |
US5897665A (en) * | 1995-12-15 | 1999-04-27 | Intel Corporation | Register addressing for register-register architectures used for microprocessors and microcontrollers |
US5930490A (en) * | 1996-01-02 | 1999-07-27 | Advanced Micro Devices, Inc. | Microprocessor configured to switch instruction sets upon detection of a plurality of consecutive instructions |
US5860000A (en) * | 1996-01-31 | 1999-01-12 | Hitachi Micro Systems, Inc. | Floating point unit pipeline synchronized with processor pipeline |
US5715425A (en) * | 1996-02-22 | 1998-02-03 | Sun Microsystems, Inc. | Apparatus and method for prefetching data into an external cache |
US5652774A (en) * | 1996-07-08 | 1997-07-29 | International Business Machines Corporation | Method and apparatus for decreasing the cycle times of a data processing system |
US5872951A (en) * | 1996-07-26 | 1999-02-16 | Advanced Micro Design, Inc. | Reorder buffer having a future file for storing speculative instruction execution results |
US5915110A (en) * | 1996-07-26 | 1999-06-22 | Advanced Micro Devices, Inc. | Branch misprediction recovery in a reorder buffer having a future file |
US5946468A (en) * | 1996-07-26 | 1999-08-31 | Advanced Micro Devices, Inc. | Reorder buffer having an improved future file for storing speculative instruction execution results |
US5983342A (en) * | 1996-09-12 | 1999-11-09 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing a future file for storing results into multiportion registers |
US5774694A (en) * | 1996-09-25 | 1998-06-30 | Intel Corporation | Method and apparatus for emulating status flag |
US5815688A (en) * | 1996-10-09 | 1998-09-29 | Hewlett-Packard Company | Verification of accesses in a functional model of a speculative out-of-order computer system |
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 |
US6195746B1 (en) | 1997-01-31 | 2001-02-27 | International Business Machines Corporation | Dynamically typed register architecture |
US5864701A (en) * | 1997-02-14 | 1999-01-26 | Integrated Device Technology, Inc. | Apparatus and method for managing interrupt delay associated with mask flag transition |
US5974538A (en) * | 1997-02-21 | 1999-10-26 | Wilmot, Ii; Richard Byron | Method and apparatus for annotating operands in a computer system with source instruction identifiers |
US5944810A (en) * | 1997-06-27 | 1999-08-31 | Sun Microsystems, Inc. | Superscalar processor for retiring multiple instructions in working register file by changing the status bits associated with each execution result to identify valid data |
US6035388A (en) | 1997-06-27 | 2000-03-07 | Sandcraft, Inc. | Method and apparatus for dual issue of program instructions to symmetric multifunctional execution units |
US6263416B1 (en) * | 1997-06-27 | 2001-07-17 | Sun Microsystems, Inc. | Method for reducing number of register file ports in a wide instruction issue processor |
US6128728A (en) * | 1997-08-01 | 2000-10-03 | Micron Technology, Inc. | Virtual shadow registers and virtual register windows |
US5966142A (en) * | 1997-09-19 | 1999-10-12 | Cirrus Logic, Inc. | Optimized FIFO memory |
US6249857B1 (en) * | 1997-10-20 | 2001-06-19 | Motorola, Inc. | Apparatus using a multiple instruction register logarithm based processor |
US6112293A (en) * | 1997-11-17 | 2000-08-29 | Advanced Micro Devices, Inc. | Processor configured to generate lookahead results from operand collapse unit and for inhibiting receipt/execution of the first instruction based on the lookahead result |
US6493790B1 (en) * | 1998-01-30 | 2002-12-10 | Sun Microsystems, Inc. | Translation-lookaside buffer with current tracking reference circuit |
US6345355B1 (en) | 1998-05-29 | 2002-02-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for distributing commands to a plurality of circuit blocks |
US6317820B1 (en) | 1998-06-05 | 2001-11-13 | Texas Instruments Incorporated | Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism |
US6266761B1 (en) * | 1998-06-12 | 2001-07-24 | International Business Machines Corporation | Method and system in an information processing system for efficient maintenance of copies of values stored within registers |
WO2000011547A1 (en) * | 1998-08-21 | 2000-03-02 | California Institute Of Technology | Processing element with special application for branch functions |
US6308262B1 (en) * | 1998-09-30 | 2001-10-23 | Intel Corporation | System and method for efficient processing of instructions using control unit to select operations |
US6163155A (en) * | 1999-01-28 | 2000-12-19 | Dresser Industries, Inc. | Electromagnetic wave resistivity tool having a tilted antenna for determining the horizontal and vertical resistivities and relative dip angle in anisotropic earth formations |
US6882642B1 (en) * | 1999-10-14 | 2005-04-19 | Nokia, Inc. | Method and apparatus for input rate regulation associated with a packet processing pipeline |
US6470427B1 (en) | 1999-11-09 | 2002-10-22 | International Business Machines Corporation | Programmable agent and method for managing prefetch queues |
EP1109096A3 (en) * | 1999-12-17 | 2004-02-11 | Fujitsu Limited | Processor and method of controlling the same |
US6609193B1 (en) | 1999-12-30 | 2003-08-19 | Intel Corporation | Method and apparatus for multi-thread pipelined instruction decoder |
US6467027B1 (en) * | 1999-12-30 | 2002-10-15 | Intel Corporation | Method and system for an INUSE field resource management scheme |
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 |
US7149883B1 (en) * | 2000-03-30 | 2006-12-12 | Intel Corporation | Method and apparatus selectively to advance a write pointer for a queue based on the indicated validity or invalidity of an instruction stored within the queue |
US6446181B1 (en) * | 2000-03-31 | 2002-09-03 | Intel Corporation | System having a configurable cache/SRAM memory |
US6606684B1 (en) | 2000-03-31 | 2003-08-12 | Intel Corporation | Multi-tiered memory bank having different data buffer sizes with a programmable bank select |
US6785802B1 (en) | 2000-06-01 | 2004-08-31 | Stmicroelectronics, Inc. | Method and apparatus for priority tracking in an out-of-order instruction shelf of a high performance superscalar microprocessor |
US7080183B1 (en) * | 2000-08-16 | 2006-07-18 | Koninklijke Philips Electronics N.V. | Reprogrammable apparatus supporting the processing of a digital signal stream and method |
SE0003398D0 (sv) * | 2000-09-22 | 2000-09-22 | Ericsson Telefon Ab L M | Optimization of a pipelined processor system |
US6754808B1 (en) * | 2000-09-29 | 2004-06-22 | Intel Corporation | Valid bit generation and tracking in a pipelined processor |
US7149878B1 (en) * | 2000-10-30 | 2006-12-12 | Mips Technologies, Inc. | Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values |
US7079133B2 (en) * | 2000-11-16 | 2006-07-18 | S3 Graphics Co., Ltd. | Superscalar 3D graphics engine |
US7162718B1 (en) * | 2000-12-12 | 2007-01-09 | International Business Machines Corporation | Language extension for light weight threading in a JVM |
US7069422B2 (en) * | 2000-12-22 | 2006-06-27 | Modelski Richard P | Load-shift carry instruction |
US7007156B2 (en) * | 2000-12-28 | 2006-02-28 | Intel Corporation | Multiple coprocessor architecture to process a plurality of subtasks in parallel |
US6643755B2 (en) * | 2001-02-20 | 2003-11-04 | Koninklijke Philips Electronics N.V. | Cyclically sequential memory prefetch |
US6493814B2 (en) | 2001-03-08 | 2002-12-10 | International Business Machines Corporation | Reducing resource collisions associated with memory units in a multi-level hierarchy memory system |
US7711926B2 (en) * | 2001-04-18 | 2010-05-04 | Mips Technologies, Inc. | Mapping system and method for instruction set processing |
US6826681B2 (en) * | 2001-06-18 | 2004-11-30 | Mips Technologies, Inc. | Instruction specified register value saving in allocated caller stack or not yet allocated callee stack |
US7107439B2 (en) * | 2001-08-10 | 2006-09-12 | Mips Technologies, Inc. | System and method of controlling software decompression through exceptions |
US7191430B2 (en) * | 2001-09-24 | 2007-03-13 | Hewlett-Packard Development Company, L.P. | Providing instruction execution hints to a processor using break instructions |
JP2003140886A (ja) * | 2001-10-31 | 2003-05-16 | Seiko Epson Corp | インストラクションセット及びコンパイラ |
JP4272371B2 (ja) * | 2001-11-05 | 2009-06-03 | パナソニック株式会社 | デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。 |
US7376811B2 (en) * | 2001-11-06 | 2008-05-20 | Netxen, Inc. | Method and apparatus for performing computations and operations on data using data steering |
JP3878508B2 (ja) * | 2001-11-08 | 2007-02-07 | 松下電器産業株式会社 | 回路群制御システム |
US6895460B2 (en) * | 2002-07-19 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Synchronization of asynchronous emulated interrupts |
US7120068B2 (en) * | 2002-07-29 | 2006-10-10 | Micron Technology, Inc. | Column/row redundancy architecture using latches programmed from a look up table |
US7493478B2 (en) * | 2002-12-05 | 2009-02-17 | International Business Machines Corporation | Enhanced processor virtualization mechanism via saving and restoring soft processor/system states |
US7502910B2 (en) * | 2003-01-28 | 2009-03-10 | Sun Microsystems, Inc. | Sideband scout thread processor for reducing latency associated with a main processor |
US20040148489A1 (en) * | 2003-01-28 | 2004-07-29 | Sun Microsystems, Inc. | Sideband VLIW processor |
US20040199749A1 (en) * | 2003-04-03 | 2004-10-07 | Robert Golla | Method and apparatus to limit register file read ports in an out-of-order, multi-stranded processor |
US7873110B2 (en) * | 2003-06-17 | 2011-01-18 | Broadcom Corporation | MPEG smart video transport processor with different transport packet handling |
US7428631B2 (en) * | 2003-07-31 | 2008-09-23 | Intel Corporation | Apparatus and method using different size rename registers for partial-bit and bulk-bit writes |
US7552426B2 (en) * | 2003-10-14 | 2009-06-23 | Microsoft Corporation | Systems and methods for using synthetic instructions in a virtual machine |
US7310722B2 (en) * | 2003-12-18 | 2007-12-18 | Nvidia Corporation | Across-thread out of order instruction dispatch in a multithreaded graphics processor |
US20050138297A1 (en) * | 2003-12-23 | 2005-06-23 | Intel Corporation | Register file cache |
US7171545B2 (en) * | 2003-12-30 | 2007-01-30 | Intel Corporation | Predictive filtering of register cache entry |
US7484045B2 (en) | 2004-03-30 | 2009-01-27 | Intel Corporation | Store performance in strongly-ordered microprocessor architecture |
US7437536B2 (en) * | 2004-05-03 | 2008-10-14 | Sony Computer Entertainment Inc. | Systems and methods for task migration |
US7724263B2 (en) * | 2004-05-14 | 2010-05-25 | Nvidia Corporation | System and method for a universal data write unit in a 3-D graphics pipeline including generic cache memories |
US7868902B1 (en) * | 2004-05-14 | 2011-01-11 | Nvidia Corporation | System and method for pixel data row forwarding in a 3-D graphics pipeline |
US20050289323A1 (en) * | 2004-05-19 | 2005-12-29 | Kar-Lik Wong | Barrel shifter for a microprocessor |
US8225034B1 (en) * | 2004-06-30 | 2012-07-17 | Oracle America, Inc. | Hybrid instruction buffer |
US7200693B2 (en) * | 2004-08-27 | 2007-04-03 | Micron Technology, Inc. | Memory system and method having unidirectional data buses |
US20080162877A1 (en) * | 2005-02-24 | 2008-07-03 | Erik Richter Altman | Non-Homogeneous Multi-Processor System With Shared Memory |
JP2007041837A (ja) * | 2005-08-03 | 2007-02-15 | Nec Electronics Corp | 命令プリフェッチ装置及び命令プリフェッチ方法 |
JP4841861B2 (ja) * | 2005-05-06 | 2011-12-21 | ルネサスエレクトロニクス株式会社 | 演算処理装置及びデータ転送処理の実行方法 |
US20070028027A1 (en) * | 2005-07-26 | 2007-02-01 | Micron Technology, Inc. | Memory device and method having separate write data and read data buses |
US7877584B2 (en) * | 2005-08-29 | 2011-01-25 | The Invention Science Fund I, Llc | Predictive processor resource management |
US20070050605A1 (en) * | 2005-08-29 | 2007-03-01 | Bran Ferren | Freeze-dried ghost pages |
US8255745B2 (en) * | 2005-08-29 | 2012-08-28 | The Invention Science Fund I, Llc | Hardware-error tolerant computing |
US7493516B2 (en) | 2005-08-29 | 2009-02-17 | Searete Llc | Hardware-error tolerant computing |
US7774558B2 (en) * | 2005-08-29 | 2010-08-10 | The Invention Science Fund I, Inc | Multiprocessor resource optimization |
US8516300B2 (en) * | 2005-08-29 | 2013-08-20 | The Invention Science Fund I, Llc | Multi-votage synchronous systems |
US7739524B2 (en) * | 2005-08-29 | 2010-06-15 | The Invention Science Fund I, Inc | Power consumption management |
US8209524B2 (en) * | 2005-08-29 | 2012-06-26 | The Invention Science Fund I, Llc | Cross-architecture optimization |
US8214191B2 (en) * | 2005-08-29 | 2012-07-03 | The Invention Science Fund I, Llc | Cross-architecture execution optimization |
US8423824B2 (en) | 2005-08-29 | 2013-04-16 | The Invention Science Fund I, Llc | Power sparing synchronous apparatus |
US7725693B2 (en) | 2005-08-29 | 2010-05-25 | Searete, Llc | Execution optimization using a processor resource management policy saved in an association with an instruction group |
US7653834B2 (en) | 2005-08-29 | 2010-01-26 | Searete, Llc | Power sparing synchronous apparatus |
US7647487B2 (en) | 2005-08-29 | 2010-01-12 | Searete, Llc | Instruction-associated processor resource optimization |
US8181004B2 (en) * | 2005-08-29 | 2012-05-15 | The Invention Science Fund I, Llc | Selecting a resource management policy for a resource available to a processor |
US7627739B2 (en) * | 2005-08-29 | 2009-12-01 | Searete, Llc | Optimization of a hardware resource shared by a multiprocessor |
US7779213B2 (en) * | 2005-08-29 | 2010-08-17 | The Invention Science Fund I, Inc | Optimization of instruction group execution through hardware resource management policies |
US20070050608A1 (en) | 2005-08-29 | 2007-03-01 | Searete Llc, A Limited Liability Corporatin Of The State Of Delaware | Hardware-generated and historically-based execution optimization |
US8981996B2 (en) * | 2005-09-27 | 2015-03-17 | Qualcomm Incorporated | Position location using transmitters with timing offset and phase adjustment |
US7747088B2 (en) | 2005-09-28 | 2010-06-29 | Arc International (Uk) Limited | System and methods for performing deblocking in microprocessor-based video codec applications |
WO2007069000A1 (en) | 2005-12-16 | 2007-06-21 | Freescale Semiconductor, Inc. | Device and method for processing instructions |
US8266413B2 (en) * | 2006-03-14 | 2012-09-11 | The Board Of Trustees Of The University Of Illinois | Processor architecture for multipass processing of instructions downstream of a stalled instruction |
EP2011018B1 (en) | 2006-04-12 | 2016-07-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
US7685467B2 (en) * | 2006-04-27 | 2010-03-23 | Texas Instruments Incorporated | Data system simulated event and matrix debug of pipelined processor |
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 |
US20080077777A1 (en) * | 2006-09-25 | 2008-03-27 | Arm Limited | Register renaming for instructions having unresolved condition codes |
CN101627365B (zh) | 2006-11-14 | 2017-03-29 | 索夫特机械公司 | 多线程架构 |
US7664932B2 (en) | 2007-04-13 | 2010-02-16 | Microsoft Corporation | Scalable and configurable execution pipeline of handlers having policy information for selectively acting on payload |
US8082540B2 (en) * | 2007-04-19 | 2011-12-20 | International Business Machines Corporation | Method for visually indicating preceding and succeeding source code lines that are executed in a graphical debugging environment |
JP2008305185A (ja) * | 2007-06-07 | 2008-12-18 | Nec Electronics Corp | プロセッサ装置及び複合条件処理方法 |
JP4896837B2 (ja) * | 2007-08-20 | 2012-03-14 | 株式会社東芝 | 携帯可能電子装置および携帯可能電子装置の制御方法 |
US7823117B1 (en) * | 2007-12-21 | 2010-10-26 | Xilinx, Inc. | Separating a high-level programming language program into hardware and software components |
US8176406B2 (en) * | 2008-03-19 | 2012-05-08 | International Business Machines Corporation | Hard error detection |
US20090249035A1 (en) * | 2008-03-28 | 2009-10-01 | International Business Machines Corporation | Multi-cycle register file bypass |
US20090289943A1 (en) * | 2008-05-22 | 2009-11-26 | Howard Teece | Anti-aliasing system and method |
KR101012121B1 (ko) * | 2008-06-05 | 2011-02-07 | 경상북도 (관련부서:경상북도축산기술연구소장) | 송아지 사육 케이지 |
KR100892857B1 (ko) * | 2008-07-30 | 2009-04-15 | 주식회사 유비콘테크놀로지 | 시스템온칩의 내부 메모리 장치 및 그 운영방법 |
GB2463278B (en) * | 2008-09-05 | 2012-05-16 | Advanced Risc Mach Ltd | Scheduling control within a data processing system |
US8312442B2 (en) * | 2008-12-10 | 2012-11-13 | Oracle America, Inc. | Method and system for interprocedural prefetching |
US9690625B2 (en) * | 2009-06-16 | 2017-06-27 | Oracle America, Inc. | System and method for out-of-order resource allocation and deallocation in a threaded machine |
KR101032771B1 (ko) * | 2009-05-29 | 2011-05-06 | 광운대학교 산학협력단 | 구성형 프로세서에서 risc 명령어와 확장 명령어를 병렬 처리하기 위한 방법 및 그에 따른 구성형 프로세서 |
KR200448337Y1 (ko) * | 2009-12-31 | 2010-04-05 | 임준기 | 통풍기능을 구비한 농산물 받침대 |
CN102193775B (zh) * | 2010-04-27 | 2015-07-29 | 威盛电子股份有限公司 | 微处理器融合搬运/算术逻辑运算/条件跳跃指令 |
EP2616928B1 (en) | 2010-09-17 | 2016-11-02 | Soft Machines, Inc. | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
WO2012051281A2 (en) | 2010-10-12 | 2012-04-19 | Soft Machines, Inc. | An instruction sequence buffer to store branches having reliably predictable instruction sequences |
WO2012051262A2 (en) * | 2010-10-12 | 2012-04-19 | Soft Machines, Inc. | An instruction sequence buffer to enhance branch prediction efficiency |
US9710270B2 (en) * | 2010-12-20 | 2017-07-18 | International Business Machines Corporation | Exception control method, system, and program |
WO2012135050A2 (en) | 2011-03-25 | 2012-10-04 | Soft Machines, Inc. | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
EP2689330B1 (en) | 2011-03-25 | 2022-12-21 | Intel Corporation | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
TWI533129B (zh) | 2011-03-25 | 2016-05-11 | 軟體機器公司 | 使用可分割引擎實體化的虛擬核心執行指令序列程式碼區塊 |
CN102789377B (zh) | 2011-05-18 | 2015-09-30 | 国际商业机器公司 | 处理指令分组信息的方法和装置 |
EP2710480B1 (en) | 2011-05-20 | 2018-06-20 | Intel Corporation | An interconnect structure to support the execution of instruction sequences by a plurality of engines |
TWI666551B (zh) | 2011-05-20 | 2019-07-21 | 美商英特爾股份有限公司 | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 |
US8683261B2 (en) | 2011-07-20 | 2014-03-25 | International Business Machines Corporation | Out of order millicode control operation |
US8756591B2 (en) | 2011-10-03 | 2014-06-17 | International Business Machines Corporation | Generating compiled code that indicates register liveness |
US10078515B2 (en) | 2011-10-03 | 2018-09-18 | International Business Machines Corporation | Tracking operand liveness information in a computer system and performing function based on the liveness information |
US9690583B2 (en) | 2011-10-03 | 2017-06-27 | International Business Machines Corporation | Exploiting an architected list-use operand indication in a computer system operand resource pool |
US9354874B2 (en) | 2011-10-03 | 2016-05-31 | International Business Machines Corporation | Scalable decode-time instruction sequence optimization of dependent instructions |
US9329869B2 (en) | 2011-10-03 | 2016-05-03 | International Business Machines Corporation | Prefix computer instruction for compatibily extending instruction functionality |
US9697002B2 (en) | 2011-10-03 | 2017-07-04 | International Business Machines Corporation | Computer instructions for activating and deactivating operands |
US8615745B2 (en) | 2011-10-03 | 2013-12-24 | International Business Machines Corporation | Compiling code for an enhanced application binary interface (ABI) with decode time instruction optimization |
US8612959B2 (en) | 2011-10-03 | 2013-12-17 | International Business Machines Corporation | Linking code for an enhanced application binary interface (ABI) with decode time instruction optimization |
US9286072B2 (en) | 2011-10-03 | 2016-03-15 | International Business Machines Corporation | Using register last use infomation to perform decode-time computer instruction optimization |
US20150039859A1 (en) | 2011-11-22 | 2015-02-05 | Soft Machines, Inc. | Microprocessor accelerated code optimizer |
KR101703401B1 (ko) | 2011-11-22 | 2017-02-06 | 소프트 머신즈, 인크. | 다중 엔진 마이크로프로세서용 가속 코드 최적화기 |
KR101912427B1 (ko) | 2011-12-12 | 2018-10-29 | 삼성전자주식회사 | 재구성가능 프로세서 및 재구성가능 프로세서의 미니 코어 |
CN104126169B (zh) * | 2011-12-22 | 2018-11-09 | 英特尔公司 | 用于在两个向量寄存器的相应打包数据元素之间执行绝对差计算的系统、装置和方法 |
WO2013095666A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Systems, apparatuses, and methods for performing vector packed unary decoding using masks |
US8930674B2 (en) | 2012-03-07 | 2015-01-06 | Soft Machines, Inc. | Systems and methods for accessing a unified translation lookaside buffer |
US9152566B2 (en) * | 2012-06-15 | 2015-10-06 | International Business Machines Corporation | Prefetch address translation using prefetch buffer based on availability of address translation logic |
US10255944B2 (en) * | 2012-06-27 | 2019-04-09 | Marvell World Trade Ltd. | Systems and methods for reading and decoding encoded data from a storage device |
US9916253B2 (en) | 2012-07-30 | 2018-03-13 | Intel Corporation | Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput |
US9710399B2 (en) | 2012-07-30 | 2017-07-18 | Intel Corporation | Systems and methods for flushing a cache with modified data |
US9229873B2 (en) | 2012-07-30 | 2016-01-05 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load and store accesses of a cache |
US9740612B2 (en) | 2012-07-30 | 2017-08-22 | Intel Corporation | Systems and methods for maintaining the coherency of a store coalescing cache and a load cache |
US9678882B2 (en) | 2012-10-11 | 2017-06-13 | Intel Corporation | Systems and methods for non-blocking implementation of cache flush instructions |
US10299934B2 (en) * | 2012-12-11 | 2019-05-28 | Globus Medical, Inc | Expandable vertebral implant |
US20140281413A1 (en) * | 2013-03-14 | 2014-09-18 | Mips Technologies, Inc. | Superforwarding Processor |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US9436476B2 (en) | 2013-03-15 | 2016-09-06 | Soft Machines Inc. | Method and apparatus for sorting elements in hardware structures |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
US20140281116A1 (en) | 2013-03-15 | 2014-09-18 | Soft Machines, Inc. | Method and Apparatus to Speed up the Load Access and Data Return Speed Path Using Early Lower Address Bits |
US9627038B2 (en) | 2013-03-15 | 2017-04-18 | Intel Corporation | Multiport memory cell having improved density area |
CN105210040B (zh) | 2013-03-15 | 2019-04-02 | 英特尔公司 | 用于执行分组成块的多线程指令的方法 |
KR102083390B1 (ko) | 2013-03-15 | 2020-03-02 | 인텔 코포레이션 | 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법 |
US9582322B2 (en) | 2013-03-15 | 2017-02-28 | Soft Machines Inc. | Method and apparatus to avoid deadlock during instruction scheduling using dynamic port remapping |
GB2523823B (en) * | 2014-03-07 | 2021-06-16 | Advanced Risc Mach Ltd | Data processing apparatus and method for processing vector operands |
US9841974B2 (en) * | 2014-04-25 | 2017-12-12 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Renaming with generation numbers |
JP2017516228A (ja) | 2014-05-12 | 2017-06-15 | インテル・コーポレーション | 自己書き換えコードのハードウェアサポートを提供する方法及び装置 |
CN104156196B (zh) * | 2014-06-12 | 2017-10-27 | 龚伟峰 | 重命名预处理方法 |
US9678758B2 (en) | 2014-09-26 | 2017-06-13 | Qualcomm Incorporated | Coprocessor for out-of-order loads |
US9483409B2 (en) | 2015-02-05 | 2016-11-01 | International Business Machines Corporation | Store forwarding cache |
US10620952B2 (en) | 2015-06-24 | 2020-04-14 | International Business Machines Corporation | Conversion of boolean conditions |
US10705841B2 (en) | 2015-06-24 | 2020-07-07 | International Business Machines Corporation | Instruction to perform a logical operation on conditions and to quantize the Boolean result of that operation |
US10698688B2 (en) | 2015-06-24 | 2020-06-30 | International Business Machines Corporation | Efficient quantization of compare results |
US9794660B2 (en) | 2015-09-25 | 2017-10-17 | Intel Corporation | Integrated sound bar hinge assembly for mobile electronic device |
US10445091B1 (en) * | 2016-03-30 | 2019-10-15 | Apple Inc. | Ordering instructions in a processing core instruction buffer |
US11106467B2 (en) | 2016-04-28 | 2021-08-31 | Microsoft Technology Licensing, Llc | Incremental scheduler for out-of-order block ISA processors |
US10496409B2 (en) | 2016-11-22 | 2019-12-03 | The Arizona Board Of Regents | Method and system for managing control of instruction and process execution in a programmable computing system |
US10162680B2 (en) * | 2016-12-13 | 2018-12-25 | GM Global Technology Operations LLC | Control of data exchange between a primary core and a secondary core using a freeze process flag and a data frozen flag in real-time |
US10983799B1 (en) | 2017-12-19 | 2021-04-20 | Apple Inc. | Selection of instructions to issue in a processor |
US11422821B1 (en) | 2018-09-04 | 2022-08-23 | Apple Inc. | Age tracking for independent pipelines |
CN109614145B (zh) * | 2018-10-18 | 2021-03-09 | 中国科学院计算技术研究所 | 一种处理器核心结构及数据访存方法 |
US11269650B2 (en) * | 2018-12-29 | 2022-03-08 | Texas Instruments Incorporated | Pipeline protection for CPUs with save and restore of intermediate results |
CN111488176B (zh) * | 2019-01-25 | 2023-04-18 | 阿里巴巴集团控股有限公司 | 一种指令调度方法、装置、设备及存储介质 |
US11176055B1 (en) | 2019-08-06 | 2021-11-16 | Marvell Asia Pte, Ltd. | Managing potential faults for speculative page table access |
US11573802B2 (en) * | 2019-10-23 | 2023-02-07 | Texas Instruments Incorporated | User mode event handling |
US11579884B2 (en) * | 2020-06-26 | 2023-02-14 | Advanced Micro Devices, Inc. | Instruction address translation and caching for primary and alternate branch prediction paths |
US11656876B2 (en) | 2020-10-29 | 2023-05-23 | Cadence Design Systems, Inc. | Removal of dependent instructions from an execution pipeline |
US11243778B1 (en) * | 2020-12-31 | 2022-02-08 | Microsoft Technology Licensing, Llc | Instruction dispatch for superscalar processors |
US11886883B2 (en) | 2021-08-26 | 2024-01-30 | International Business Machines Corporation | Dependency skipping in a load-compare-jump sequence of instructions by incorporating compare functionality into the jump instruction and auto-finishing the compare instruction |
WO2023150114A1 (en) * | 2022-02-01 | 2023-08-10 | Apple Inc. | Conditional instructions prediction |
US12067399B2 (en) | 2022-02-01 | 2024-08-20 | Apple Inc. | Conditional instructions prediction |
US11809874B2 (en) | 2022-02-01 | 2023-11-07 | Apple Inc. | Conditional instructions distribution and execution on pipelines having different latencies for mispredictions |
Family Cites Families (279)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3346851A (en) * | 1964-07-08 | 1967-10-10 | Control Data Corp | Simultaneous multiprocessing computer system |
US3718912A (en) * | 1970-12-22 | 1973-02-27 | Ibm | Instruction execution unit |
US3789365A (en) * | 1971-06-03 | 1974-01-29 | Bunker Ramo | Processor interrupt system |
US3771138A (en) * | 1971-08-31 | 1973-11-06 | Ibm | Apparatus and method for serializing instructions from two independent instruction streams |
US3913074A (en) | 1973-12-18 | 1975-10-14 | Honeywell Inf Systems | Search processing apparatus |
JPS5110746A (ja) | 1974-07-17 | 1976-01-28 | Hitachi Ltd | |
US4041461A (en) * | 1975-07-25 | 1977-08-09 | International Business Machines Corporation | Signal analyzer system |
US4034349A (en) * | 1976-01-29 | 1977-07-05 | Sperry Rand Corporation | Apparatus for processing interrupts in microprocessing systems |
US4128880A (en) | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
US4212076A (en) | 1976-09-24 | 1980-07-08 | Giddings & Lewis, Inc. | Digital computer structure providing arithmetic and boolean logic operations, the latter controlling the former |
US4101086A (en) | 1977-07-20 | 1978-07-18 | Eastman Kodak Company | Yarn tie-up and transfer tail method, and yarn package tube and apparatus for the method |
US4237532A (en) * | 1977-09-02 | 1980-12-02 | Sperry Corporation | Table driven decision and control logic for digital computers |
US4210960A (en) * | 1977-09-02 | 1980-07-01 | Sperry Corporation | Digital computer with overlapped operation utilizing conditional control to minimize time losses |
US4199811A (en) * | 1977-09-02 | 1980-04-22 | Sperry Corporation | Microprogrammable computer utilizing concurrently operating processors |
US4296465A (en) * | 1977-11-03 | 1981-10-20 | Honeywell Information Systems Inc. | Data mover |
AU529675B2 (en) * | 1977-12-07 | 1983-06-16 | Honeywell Information Systems Incorp. | Cache memory unit |
US4315314A (en) * | 1977-12-30 | 1982-02-09 | Rca Corporation | Priority vectored interrupt having means to supply branch address directly |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
US4228495A (en) * | 1978-12-19 | 1980-10-14 | Allen-Bradley Company | Multiprocessor numerical control system |
US4315308A (en) | 1978-12-21 | 1982-02-09 | Intel Corporation | Interface between a microprocessor chip and peripheral subsystems |
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 |
US4336024A (en) * | 1980-02-22 | 1982-06-22 | Airwick Industries, Inc. | Process for cleaning clothes at home |
JPS6028015B2 (ja) * | 1980-08-28 | 1985-07-02 | 日本電気株式会社 | 情報処理装置 |
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 |
JPS57150040A (en) | 1981-03-11 | 1982-09-16 | Mitsubishi Electric Corp | Pipeline computer |
JPS57155666A (en) * | 1981-03-20 | 1982-09-25 | Fujitsu Ltd | Instruction controlling system of vector processor |
US4574349A (en) | 1981-03-30 | 1986-03-04 | International Business Machines Corp. | Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction |
US4814979A (en) | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
JPS57204125A (en) | 1981-06-10 | 1982-12-14 | Hitachi Ltd | Electron-ray drawing device |
US4482950A (en) | 1981-09-24 | 1984-11-13 | Dshkhunian Valery | Single-chip microcomputer |
US4498134A (en) | 1982-01-26 | 1985-02-05 | Hughes Aircraft Company | Segregator functional plane for use in a modular array processor |
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 |
US4484272A (en) * | 1982-07-14 | 1984-11-20 | Burroughs Corporation | Digital computer for executing multiple instruction sets in a simultaneous-interleaved fashion |
JPS5932045A (ja) * | 1982-08-16 | 1984-02-21 | Hitachi Ltd | 情報処理装置 |
US4500963A (en) | 1982-11-29 | 1985-02-19 | The United States Of America As Represented By The Secretary Of The Army | Automatic layout program for hybrid microcircuits (HYPAR) |
US4597054A (en) | 1982-12-02 | 1986-06-24 | Ncr Corporation | Arbiter circuit and method |
US4594655A (en) * | 1983-03-14 | 1986-06-10 | International Business Machines Corporation | (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions |
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 |
GB8329509D0 (en) * | 1983-11-04 | 1983-12-07 | Inmos Ltd | Computer |
JPS60120439A (ja) * | 1983-12-05 | 1985-06-27 | Nec Corp | 演算処理装置 |
JPS60168238A (ja) * | 1984-02-10 | 1985-08-31 | Hitachi Ltd | パイプラインデータ処理装置 |
US4561051A (en) | 1984-02-10 | 1985-12-24 | Prime Computer, Inc. | Memory access method and apparatus in multiple processor systems |
AU553416B2 (en) * | 1984-02-24 | 1986-07-17 | Fujitsu Limited | Pipeline processing |
JPS60225943A (ja) * | 1984-04-25 | 1985-11-11 | Hitachi Ltd | 例外割込み処理方式 |
US4648045A (en) | 1984-05-23 | 1987-03-03 | The Board Of Trustees Of The Leland Standford Jr. University | High speed memory and processor system for raster display |
JPS6140650A (ja) | 1984-08-02 | 1986-02-26 | Nec Corp | マイクロコンピユ−タ |
US4766564A (en) * | 1984-08-13 | 1988-08-23 | International Business Machines Corporation | Dual putaway/bypass busses for multiple arithmetic units |
US4677545A (en) | 1984-10-12 | 1987-06-30 | American Telephone And Telegraph Company | Microprocessor having macro-rom and main program queues |
US4991081A (en) | 1984-10-31 | 1991-02-05 | Texas Instruments Incorporated | Cache memory addressable by both physical and virtual addresses |
US4775927A (en) * | 1984-10-31 | 1988-10-04 | International Business Machines Corporation | Processor including fetch operation for branch instruction with control tag |
DE3587591T2 (de) * | 1984-11-21 | 1994-04-28 | Harris Corp | Mikroprozessor für Forth-ähnliche Sprache. |
JPS61133439A (ja) | 1984-12-04 | 1986-06-20 | Nec Corp | 命令先取り制御方式 |
JPH0652784B2 (ja) | 1984-12-07 | 1994-07-06 | 富士通株式会社 | ゲートアレイ集積回路装置及びその製造方法 |
US4829467A (en) | 1984-12-21 | 1989-05-09 | Canon Kabushiki Kaisha | Memory controller including a priority order determination circuit |
NL193475C (nl) * | 1984-12-27 | 1999-11-02 | Sony Corp | Microprocessorinrichting. |
US5255384A (en) | 1985-02-22 | 1993-10-19 | Intergraph Corporation | Memory address translation system having modifiable and non-modifiable translation mechanisms |
US4714994A (en) * | 1985-04-30 | 1987-12-22 | International Business Machines Corp. | Instruction prefetch buffer control |
JPH0762823B2 (ja) * | 1985-05-22 | 1995-07-05 | 株式会社日立製作所 | デ−タ処理装置 |
CA1254661A (en) * | 1985-06-28 | 1989-05-23 | Allen J. Baum | Method and means for instruction combination for code compression |
US4613941A (en) | 1985-07-02 | 1986-09-23 | The United States Of America As Represented By The Secretary Of The Army | Routing method in computer aided customization of a two level automated universal array |
US4945479A (en) | 1985-07-31 | 1990-07-31 | Unisys Corporation | Tightly coupled scientific processing system |
US4734852A (en) * | 1985-08-30 | 1988-03-29 | Advanced Micro Devices, Inc. | Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor |
US4777588A (en) | 1985-08-30 | 1988-10-11 | Advanced Micro Devices, Inc. | General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance |
US4719569A (en) | 1985-10-11 | 1988-01-12 | Sun Microsystems, Inc. | Arbitrator for allocating access to data processing resources |
US4722049A (en) * | 1985-10-11 | 1988-01-26 | Unisys Corporation | Apparatus for out-of-order program execution |
JPH0622035B2 (ja) * | 1985-11-13 | 1994-03-23 | 株式会社日立製作所 | ベクトル処理装置 |
JPS62152043A (ja) * | 1985-12-26 | 1987-07-07 | Nec Corp | 命令コ−ドアクセス制御方式 |
EP0239081B1 (en) * | 1986-03-26 | 1995-09-06 | Hitachi, Ltd. | Pipelined data processor capable of decoding and executing plural instructions in parallel |
IL81762A0 (en) * | 1986-04-11 | 1987-10-20 | Symbolics Inc | Instruction prefetch unit |
JP2545789B2 (ja) | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
US4809169A (en) * | 1986-04-23 | 1989-02-28 | Advanced Micro Devices, Inc. | Parallel, multiple coprocessor computer architecture having plural execution modes |
US4903196A (en) * | 1986-05-02 | 1990-02-20 | International Business Machines Corporation | Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor |
US4811208A (en) | 1986-05-16 | 1989-03-07 | Intel Corporation | Stack frame cache on a microprocessor chip |
US5051940A (en) * | 1990-04-04 | 1991-09-24 | International Business Machines Corporation | Data dependency collapsing hardware apparatus |
JP2684362B2 (ja) | 1986-06-18 | 1997-12-03 | 株式会社日立製作所 | 可変長データの記憶方式 |
US4814978A (en) | 1986-07-15 | 1989-03-21 | Dataflow Computer Corporation | Dataflow processing element, multiprocessor, and processes |
JPS6324428A (ja) * | 1986-07-17 | 1988-02-01 | Mitsubishi Electric Corp | キヤツシユメモリ |
US4942323A (en) * | 1986-07-28 | 1990-07-17 | Decesare Dominic | Two pole electric motor with stator winding encircling the rotor |
US4766566A (en) * | 1986-08-18 | 1988-08-23 | International Business Machines Corp. | Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing |
JPS6393041A (ja) * | 1986-10-07 | 1988-04-23 | Mitsubishi Electric Corp | 計算機 |
JPH0793358B2 (ja) | 1986-11-10 | 1995-10-09 | 日本電気株式会社 | ブロック配置処理方式 |
US4841453A (en) | 1986-11-10 | 1989-06-20 | Ibm Corporation | Multidirectional scan and print capability |
JPS63131230A (ja) * | 1986-11-21 | 1988-06-03 | Hitachi Ltd | 情報処理装置 |
JPH0810430B2 (ja) | 1986-11-28 | 1996-01-31 | 株式会社日立製作所 | 情報処理装置 |
US5283903A (en) | 1986-12-25 | 1994-02-01 | Nec Corporation | Priority selector |
US5226170A (en) * | 1987-02-24 | 1993-07-06 | Digital Equipment Corporation | Interface between processor and special instruction processor in digital data processing system |
US5179689A (en) | 1987-03-13 | 1993-01-12 | Texas Instruments Incorporated | Dataprocessing device with instruction cache |
US4833599A (en) * | 1987-04-20 | 1989-05-23 | Multiflow Computer, Inc. | Hierarchical priority branch handling for parallel execution in a parallel processor |
US4858116A (en) | 1987-05-01 | 1989-08-15 | Digital Equipment Corporation | Method and apparatus for managing multiple lock indicators in a multiprocessor computer system |
JP2510591B2 (ja) * | 1987-06-12 | 1996-06-26 | 株式会社日立製作所 | 命令処理装置 |
JPH07113903B2 (ja) | 1987-06-26 | 1995-12-06 | 株式会社日立製作所 | キャッシュ記憶制御方式 |
US4992938A (en) * | 1987-07-01 | 1991-02-12 | International Business Machines Corporation | Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers |
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 |
JP2624484B2 (ja) | 1987-07-31 | 1997-06-25 | 三井東圧化学株式会社 | 中国語の入力処理方法 |
US5150309A (en) | 1987-08-04 | 1992-09-22 | Texas Instruments Incorporated | Comprehensive logic circuit layout system |
US4980817A (en) | 1987-08-31 | 1990-12-25 | Digital Equipment | Vector register system for executing plural read/write commands concurrently and independently routing data to plural read/write ports |
US4991078A (en) * | 1987-09-29 | 1991-02-05 | Digital Equipment Corporation | Apparatus and method for a pipelined central processing unit in a data processing system |
EP0312764A3 (en) | 1987-10-19 | 1991-04-10 | International Business Machines Corporation | A data processor having multiple execution units for processing plural classes of instructions in parallel |
US5089951A (en) | 1987-11-05 | 1992-02-18 | Kabushiki Kaisha Toshiba | Microcomputer incorporating memory |
US5197136A (en) * | 1987-11-12 | 1993-03-23 | Matsushita Electric Industrial Co., Ltd. | Processing system for branch instruction |
US4823201A (en) | 1987-11-16 | 1989-04-18 | Technology, Inc. 64 | Processor for expanding a compressed video signal |
US5185878A (en) | 1988-01-20 | 1993-02-09 | Advanced Micro Device, Inc. | Programmable cache memory as well as system incorporating same and method of operating programmable cache memory |
US4926323A (en) * | 1988-03-03 | 1990-05-15 | Advanced Micro Devices, Inc. | Streamlined instruction processor |
JPH0769821B2 (ja) * | 1988-03-04 | 1995-07-31 | 日本電気株式会社 | 情報処理装置におけるバイパスライン制御方式 |
JPH01228865A (ja) | 1988-03-09 | 1989-09-12 | Minolta Camera Co Ltd | プリンタ制御装置 |
US5187796A (en) * | 1988-03-29 | 1993-02-16 | Computer Motion, Inc. | Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units |
US5155817A (en) | 1988-04-01 | 1992-10-13 | Kabushiki Kaisha Toshiba | Microprocessor |
US5301278A (en) | 1988-04-29 | 1994-04-05 | International Business Machines Corporation | Flexible dynamic memory controller |
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 |
US4897810A (en) * | 1988-06-13 | 1990-01-30 | Advanced Micro Devices, Inc. | Asynchronous interrupt status bit circuit |
US5261057A (en) | 1988-06-30 | 1993-11-09 | Wang Laboratories, Inc. | I/O bus to system interface |
US5097409A (en) | 1988-06-30 | 1992-03-17 | Wang Laboratories, Inc. | Multi-processor system with cache memories |
JP2761506B2 (ja) | 1988-07-08 | 1998-06-04 | 株式会社日立製作所 | 主記憶制御装置 |
JPH0222736A (ja) | 1988-07-12 | 1990-01-25 | Nec Corp | 中央処理装置 |
US5032985A (en) | 1988-07-21 | 1991-07-16 | International Business Machines Corporation | Multiprocessor system with memory fetch buffer invoked during cross-interrogation |
US5148536A (en) | 1988-07-25 | 1992-09-15 | Digital Equipment Corporation | Pipeline having an integral cache which processes cache misses and loads data in parallel |
JPH0673105B2 (ja) * | 1988-08-11 | 1994-09-14 | 株式会社東芝 | 命令パイプライン方式のマイクロプロセッサ |
US5291615A (en) | 1988-08-11 | 1994-03-01 | Kabushiki Kaisha Toshiba | Instruction pipeline microprocessor |
US4974155A (en) * | 1988-08-15 | 1990-11-27 | Evans & Sutherland Computer Corp. | Variable delay branch system |
US5101341A (en) * | 1988-08-25 | 1992-03-31 | Edgcore Technology, Inc. | Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO |
US5167035A (en) * | 1988-09-08 | 1992-11-24 | Digital Equipment Corporation | Transferring messages between nodes in a network |
JPH0287229A (ja) | 1988-09-24 | 1990-03-28 | Nec Corp | 実行命令の先取り制御方式 |
US4879787A (en) | 1988-10-03 | 1989-11-14 | Walls Thomas J | Shoe lace knot securing device |
EP0365188B1 (en) | 1988-10-18 | 1996-09-18 | Hewlett-Packard Company | Central processor condition code method and apparatus |
JP2672599B2 (ja) * | 1988-10-18 | 1997-11-05 | ヤマハ 株式会社 | コンピュータシステム |
JPH0769824B2 (ja) | 1988-11-11 | 1995-07-31 | 株式会社日立製作所 | 複数命令同時処理方式 |
JP2810068B2 (ja) | 1988-11-11 | 1998-10-15 | 株式会社日立製作所 | プロセッサシステム、コンピュータシステム及び命令処理方法 |
US5058451A (en) * | 1988-11-11 | 1991-10-22 | Kabushiki Kaisha Kobe Seiko Sho | Control lever apparatus and actuator operation apparatus |
KR920006613B1 (ko) * | 1988-12-01 | 1992-08-10 | 재단법인한국전자통신연구소 | 파이프라인으로 동작하는 프로세서의 명령어 페취 유니트 |
GB8828817D0 (en) * | 1988-12-09 | 1989-01-18 | Int Computers Ltd | Data processing apparatus |
IL92605A0 (en) * | 1988-12-19 | 1990-08-31 | Bull Hn Information Syst | Production line method and apparatus for high performance instruction execution |
JPH0769811B2 (ja) * | 1988-12-21 | 1995-07-31 | 松下電器産業株式会社 | データ処理装置 |
US5148533A (en) | 1989-01-05 | 1992-09-15 | Bull Hn Information Systems Inc. | Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units |
US5125092A (en) | 1989-01-09 | 1992-06-23 | International Business Machines Corporation | Method and apparatus for providing multiple condition code fields to to allow pipelined instructions contention free access to separate condition codes |
JP2736092B2 (ja) | 1989-01-10 | 1998-04-02 | 株式会社東芝 | バッファ装置 |
US5127091A (en) * | 1989-01-13 | 1992-06-30 | International Business Machines Corporation | System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor |
US5075840A (en) * | 1989-01-13 | 1991-12-24 | International Business Machines Corporation | Tightly coupled multiprocessor instruction synchronization |
US5142634A (en) * | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Branch prediction |
US5167026A (en) | 1989-02-03 | 1992-11-24 | Digital Equipment Corporation | Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers |
US5125083A (en) | 1989-02-03 | 1992-06-23 | Digital Equipment Corporation | Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system |
US5142633A (en) * | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Preprocessing implied specifiers in a pipelined processor |
US5109495A (en) | 1989-02-03 | 1992-04-28 | Digital Equipment Corp. | Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor |
US5222223A (en) | 1989-02-03 | 1993-06-22 | Digital Equipment Corporation | Method and apparatus for ordering and queueing multiple memory requests |
US5067069A (en) * | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
US4985825A (en) * | 1989-02-03 | 1991-01-15 | Digital Equipment Corporation | System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer |
US5133074A (en) | 1989-02-08 | 1992-07-21 | Acer Incorporated | Deadlock resolution with cache snooping |
US5293500A (en) | 1989-02-10 | 1994-03-08 | Mitsubishi Denki K.K. | Parallel processing method and apparatus |
US5226166A (en) | 1989-02-10 | 1993-07-06 | Mitsubishi Denki K.K. | Parallel operation processor with second command unit |
JPH0630063B2 (ja) * | 1989-02-17 | 1994-04-20 | 株式会社東芝 | マイクロプロセッサ |
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 |
US5239633A (en) * | 1989-03-24 | 1993-08-24 | Mitsubishi Denki Kabushiki Kaisha | Data processor executing memory indirect addressing and register indirect addressing |
JPH02278337A (ja) | 1989-04-19 | 1990-11-14 | Nec Corp | 命令キュー装置 |
US5119485A (en) | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
US5155809A (en) | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
CN1040803C (zh) * | 1989-05-17 | 1998-11-18 | 国际商业机器公司 | 在数据处理系统提供附加系统特性的方法和装置 |
US5072364A (en) | 1989-05-24 | 1991-12-10 | Tandem Computers Incorporated | Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel |
CA2016068C (en) | 1989-05-24 | 2000-04-04 | Robert W. Horst | Multiple instruction issue computer architecture |
US5129067A (en) | 1989-06-06 | 1992-07-07 | Advanced Micro Devices, Inc. | Multiple instruction decoder for minimizing register port requirements |
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 |
JPH0314025A (ja) * | 1989-06-13 | 1991-01-22 | Nec Corp | 命令実行制御方式 |
JP2550213B2 (ja) | 1989-07-07 | 1996-11-06 | 株式会社日立製作所 | 並列処理装置および並列処理方法 |
JP2505887B2 (ja) * | 1989-07-14 | 1996-06-12 | 富士通株式会社 | 命令処理システム |
EP0471888B1 (en) * | 1989-08-28 | 1999-01-13 | Nec Corporation | Microprocessor for enhancing initiation of instruction execution after the execution of conditional branch instruction |
US5317734A (en) * | 1989-08-29 | 1994-05-31 | North American Philips Corporation | Method of synchronizing parallel processors employing channels and compiling method minimizing cross-processor data dependencies |
JPH07120284B2 (ja) * | 1989-09-04 | 1995-12-20 | 三菱電機株式会社 | データ処理装置 |
US5303382A (en) | 1989-09-21 | 1994-04-12 | Digital Equipment Corporation | Arbiter with programmable dynamic request prioritization |
DE69031257T2 (de) * | 1989-09-21 | 1998-02-12 | Texas Instruments Inc | Integrierte Schaltung mit einem eingebetteten digitalen Signalprozessor |
JPH03137729A (ja) | 1989-10-23 | 1991-06-12 | Hokuriku Nippon Denki Software Kk | 先行制御方式 |
JP2835103B2 (ja) * | 1989-11-01 | 1998-12-14 | 富士通株式会社 | 命令指定方法及び命令実行方式 |
JPH03147134A (ja) | 1989-11-02 | 1991-06-24 | Oki Electric Ind Co Ltd | 命令シーケンス制御装置 |
US5179530A (en) | 1989-11-03 | 1993-01-12 | Zoran Corporation | Architecture for integrated concurrent vector signal processor |
US5226125A (en) | 1989-11-17 | 1993-07-06 | Keith Balmer | Switch matrix having integrated crosspoint logic and method of operation |
DE68928980T2 (de) | 1989-11-17 | 1999-08-19 | Texas Instruments Inc. | Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern |
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 |
JPH03186928A (ja) * | 1989-12-16 | 1991-08-14 | Mitsubishi Electric Corp | データ処理装置 |
US5179673A (en) | 1989-12-18 | 1993-01-12 | Digital Equipment Corporation | Subroutine return prediction mechanism using ring buffer and comparing predicated address with actual address to validate or flush the pipeline |
US5197130A (en) | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
JPH061463B2 (ja) | 1990-01-16 | 1994-01-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法 |
US5251306A (en) | 1990-01-16 | 1993-10-05 | Advanced Micro Devices, Inc. | Apparatus for controlling execution of a program in a computing device |
US5222240A (en) | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
US5241636A (en) | 1990-02-14 | 1993-08-31 | Intel Corporation | Method for parallel instruction execution in a computer |
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 |
US5120083A (en) | 1990-03-19 | 1992-06-09 | Henkels & Mccoy, Inc. | Expansion joint for conduit for cables |
JP2818249B2 (ja) | 1990-03-30 | 1998-10-30 | 株式会社東芝 | 電子計算機 |
DE69132675T2 (de) * | 1990-04-06 | 2002-06-13 | Nec Corp., Tokio/Tokyo | Parallelfliessband-Befehlsverarbeitungssystem für sehr lange Befehlswörter |
IT1247640B (it) | 1990-04-26 | 1994-12-28 | St Microelectronics Srl | Operazioni booleane tra due qualsiasi bit di due qualsiasi registri |
US5201056A (en) | 1990-05-02 | 1993-04-06 | Motorola, Inc. | RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output |
US5214763A (en) | 1990-05-10 | 1993-05-25 | International Business Machines Corporation | Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism |
EP0457403B1 (en) * | 1990-05-18 | 1998-01-21 | Koninklijke Philips Electronics N.V. | Multilevel instruction cache and method for using said cache |
US5249286A (en) | 1990-05-29 | 1993-09-28 | National Semiconductor Corporation | Selectively locking memory locations within a microprocessor's on-chip cache |
CA2038264C (en) * | 1990-06-26 | 1995-06-27 | Richard James Eickemeyer | In-memory preprocessor for a scalable compound instruction set machine processor |
DE69127936T2 (de) * | 1990-06-29 | 1998-05-07 | Digital Equipment Corp | Busprotokoll für Prozessor mit write-back cache |
US5197132A (en) | 1990-06-29 | 1993-03-23 | Digital Equipment Corporation | Register mapping system having a log containing sequential listing of registers that were changed in preceding cycles for precise post-branch recovery |
CA2045773A1 (en) | 1990-06-29 | 1991-12-30 | Compaq Computer Corporation | Byte-compare operation for high-performance processor |
US5155843A (en) * | 1990-06-29 | 1992-10-13 | Digital Equipment Corporation | Error transition mode for multi-processor system |
EP0463965B1 (en) * | 1990-06-29 | 1998-09-09 | Digital Equipment Corporation | Branch prediction unit for high-performance processor |
JPH0475139A (ja) * | 1990-07-18 | 1992-03-10 | Toshiba Corp | ループ並列化装置 |
JPH0814492B2 (ja) * | 1990-09-21 | 1996-02-14 | 日本航空電子工業株式会社 | 光ファイバジャイロ |
EP0479390B1 (en) * | 1990-10-05 | 1999-01-07 | Koninklijke Philips Electronics N.V. | Processing device including a memory circuit and a group of functional units |
US5301340A (en) * | 1990-10-31 | 1994-04-05 | International Business Machines Corporation | IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle |
US5222244A (en) | 1990-12-20 | 1993-06-22 | Intel Corporation | Method of modifying a microinstruction with operands specified by an instruction held in an alias register |
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 |
US5303362A (en) | 1991-03-20 | 1994-04-12 | Digital Equipment Corporation | Coupled memory multiprocessor computer system including cache coherency management protocols |
US5261071A (en) | 1991-03-21 | 1993-11-09 | Control Data System, Inc. | Dual pipe cache memory with out-of-order issue capability |
US5287467A (en) * | 1991-04-18 | 1994-02-15 | International Business Machines Corporation | Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit |
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 |
US5355457A (en) | 1991-05-21 | 1994-10-11 | Motorola, Inc. | Data processor for performing simultaneous instruction retirement and backtracking |
US5630157A (en) | 1991-06-13 | 1997-05-13 | International Business Machines Corporation | Computer organization for multiple and out-of-order execution of condition code testing and setting instructions |
US5278963A (en) | 1991-06-21 | 1994-01-11 | International Business Machines Corporation | Pretranslation of virtual addresses prior to page crossing |
US5826055A (en) | 1991-07-08 | 1998-10-20 | Seiko Epson Corporation | System and method for retiring instructions in a superscalar microprocessor |
US5961629A (en) * | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
DE69233493T2 (de) | 1991-07-08 | 2005-07-28 | Seiko Epson Corp. | RISC-Prozessor mit erweiterbarer Architektur |
WO1993001565A1 (en) | 1991-07-08 | 1993-01-21 | Seiko Epson Corporation | Single chip page printer controller |
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 |
KR100294276B1 (ko) | 1991-07-08 | 2001-09-17 | 야스카와 히데아키 | 고속트랩및예외상태를구현한알아이에스씨마이크로프로세서구조 |
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
US5345569A (en) * | 1991-09-20 | 1994-09-06 | Advanced Micro Devices, Inc. | Apparatus and method for resolving dependencies among a plurality of instructions within a storage device |
GB2260628A (en) | 1991-10-11 | 1993-04-21 | Intel Corp | Line buffer for cache memory |
JPH0820949B2 (ja) | 1991-11-26 | 1996-03-04 | 松下電器産業株式会社 | 情報処理装置 |
US5285527A (en) | 1991-12-11 | 1994-02-08 | Northern Telecom Limited | Predictive historical cache memory |
US5617554A (en) | 1992-02-10 | 1997-04-01 | Intel Corporation | Physical address size selection and page size selection in an address translator |
US5398330A (en) | 1992-03-05 | 1995-03-14 | Seiko Epson Corporation | Register file backup queue |
WO1993019424A1 (en) | 1992-03-18 | 1993-09-30 | Seiko Epson Corporation | System and method for supporting a multiple width memory subsystem |
US5371684A (en) | 1992-03-31 | 1994-12-06 | Seiko Epson Corporation | Semiconductor floor plan for a register renaming circuit |
JP3730252B2 (ja) | 1992-03-31 | 2005-12-21 | トランスメタ コーポレイション | レジスタ名称変更方法及び名称変更システム |
JP3137729B2 (ja) | 1992-04-09 | 2001-02-26 | 本田技研工業株式会社 | ガバリ部品の製造方法 |
EP0638183B1 (en) | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | A system and method for retiring instructions in a superscalar microprocessor |
US5442756A (en) | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
US5619668A (en) | 1992-08-10 | 1997-04-08 | Intel Corporation | Apparatus for register bypassing in a microprocessor |
US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
US5524225A (en) | 1992-12-18 | 1996-06-04 | Advanced Micro Devices Inc. | Cache system and method for providing software controlled writeback |
WO1994016384A1 (en) | 1992-12-31 | 1994-07-21 | Seiko Epson Corporation | System and method for register renaming |
US5604912A (en) | 1992-12-31 | 1997-02-18 | Seiko Epson Corporation | System and method for assigning tags to instructions to control instruction execution |
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 |
US5627984A (en) | 1993-03-31 | 1997-05-06 | Intel Corporation | Apparatus and method for entry allocation for a buffer resource utilizing an internal two cycle pipeline |
US5577217A (en) | 1993-05-14 | 1996-11-19 | Intel Corporation | Method and apparatus for a branch target buffer with shared branch pattern tables for associated branch predictions |
JPH09500989A (ja) | 1993-05-14 | 1997-01-28 | インテル・コーポレーション | 分岐ターゲット・バッファにおける推論履歴 |
JPH0728695A (ja) | 1993-07-08 | 1995-01-31 | Nec Corp | メモリコントローラ |
US5613132A (en) | 1993-09-30 | 1997-03-18 | Intel Corporation | Integer and floating point register alias table within processor device |
US5446912A (en) * | 1993-09-30 | 1995-08-29 | Intel Corporation | Partial width stalls within register alias table |
US5630149A (en) | 1993-10-18 | 1997-05-13 | Cyrix Corporation | Pipelined processor with register renaming hardware to accommodate multiple size registers |
DE69429061T2 (de) | 1993-10-29 | 2002-07-18 | Advanced Micro Devices, Inc. | Superskalarmikroprozessoren |
US5689672A (en) | 1993-10-29 | 1997-11-18 | Advanced Micro Devices, Inc. | Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions |
JP3218524B2 (ja) | 1993-12-22 | 2001-10-15 | 村田機械株式会社 | ワークホルダーのはみ出し検出装置 |
US5574935A (en) | 1993-12-29 | 1996-11-12 | Intel Corporation | Superscalar processor with a multi-port reorder buffer |
US5630075A (en) | 1993-12-30 | 1997-05-13 | Intel Corporation | Write combining buffer for sequentially addressed partial line operations originating from a single instruction |
US5619664A (en) | 1994-01-04 | 1997-04-08 | Intel Corporation | Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms |
US5627985A (en) | 1994-01-04 | 1997-05-06 | Intel Corporation | Speculative and committed resource files in an out-of-order processor |
US5604877A (en) | 1994-01-04 | 1997-02-18 | Intel Corporation | Method and apparatus for resolving return from subroutine instructions in a computer processor |
US5452426A (en) | 1994-01-04 | 1995-09-19 | Intel Corporation | Coordinating speculative and committed state register source data and immediate source data in a processor |
US5577200A (en) | 1994-02-28 | 1996-11-19 | Intel Corporation | Method and apparatus for loading and storing misaligned data on an out-of-order execution computer system |
US5630083A (en) | 1994-03-01 | 1997-05-13 | Intel Corporation | Decoder for decoding multiple instructions in parallel |
US5608885A (en) | 1994-03-01 | 1997-03-04 | Intel Corporation | Method for handling instructions from a branch prior to instruction decoding in a computer which executes variable-length instructions |
US5625788A (en) | 1994-03-01 | 1997-04-29 | Intel Corporation | Microprocessor with novel instruction for signaling event occurrence and for providing event handling information in response thereto |
US5586278A (en) | 1994-03-01 | 1996-12-17 | Intel Corporation | Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor |
US5564056A (en) | 1994-03-01 | 1996-10-08 | Intel Corporation | Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming |
US5623628A (en) | 1994-03-02 | 1997-04-22 | Intel Corporation | Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue |
US5394351A (en) | 1994-03-11 | 1995-02-28 | Nexgen, Inc. | Optimized binary adder and comparator having an implicit constant for an input |
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 |
US5490280A (en) | 1994-03-31 | 1996-02-06 | Intel Corporation | Apparatus and method for entry allocation for a resource buffer |
US5615126A (en) | 1994-08-24 | 1997-03-25 | Lsi Logic Corporation | High-speed internal interconnection technique for integrated circuits that reduces the number of signal lines through multiplexing |
KR100329338B1 (ko) | 1994-12-02 | 2002-07-18 | 피터 엔. 데트킨 | 복합피연산자의팩연산을수행하는마이크로프로세서 |
US5819101A (en) | 1994-12-02 | 1998-10-06 | Intel Corporation | Method for packing a plurality of packed data elements in response to a pack instruction |
US5666494A (en) | 1995-03-31 | 1997-09-09 | Samsung Electronics Co., Ltd. | Queue management mechanism which allows entries to be processed in any order |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
US5745375A (en) | 1995-09-29 | 1998-04-28 | Intel Corporation | Apparatus and method for controlling power usage |
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 |
US5961129A (en) * | 1997-02-07 | 1999-10-05 | Post; Peter G. | Quick-Release interlocking frame assembly for interchangeably mounting operative sports devices to a boot sole |
US6418529B1 (en) | 1998-03-31 | 2002-07-09 | Intel Corporation | Apparatus and method for performing intra-add operation |
JP3147134U (ja) | 2008-09-17 | 2008-12-18 | 洋 吉迫 | プランター |
-
1992
- 1992-01-08 US US07/817,810 patent/US5539911A/en not_active Expired - Lifetime
- 1992-07-07 KR KR1020087028736A patent/KR20080109099A/ko not_active Application Discontinuation
- 1992-07-07 KR KR1020077008100A patent/KR100875262B1/ko not_active IP Right Cessation
- 1992-07-07 KR KR1020037001231A patent/KR100559465B1/ko not_active IP Right Cessation
- 1992-07-07 WO PCT/JP1992/000868 patent/WO1993001545A1/en active Application Filing
- 1992-07-07 KR KR1020077008095A patent/KR100764894B1/ko not_active IP Right Cessation
- 1992-07-07 JP JP50215093A patent/JP3441070B2/ja not_active Expired - Lifetime
- 1992-07-07 AT AT03024585T patent/ATE450826T1/de not_active IP Right Cessation
- 1992-07-07 KR KR1019930700687A patent/KR100294475B1/ko not_active IP Right Cessation
- 1992-07-07 EP EP92914387A patent/EP0547241B1/en not_active Expired - Lifetime
- 1992-07-07 KR KR1020037001233A patent/KR100559475B1/ko not_active IP Right Cessation
- 1992-07-07 DE DE69232113T patent/DE69232113T2/de not_active Expired - Lifetime
- 1992-07-07 AT AT00109747T patent/ATE260485T1/de not_active IP Right Cessation
- 1992-07-07 KR KR1020077008098A patent/KR100886000B1/ko not_active IP Right Cessation
- 1992-07-07 KR KR1020037001232A patent/KR100559468B1/ko not_active IP Right Cessation
- 1992-07-07 KR KR1020067001063A patent/KR100764898B1/ko not_active IP Right Cessation
- 1992-07-07 EP EP03024585A patent/EP1385085B1/en not_active Expired - Lifetime
- 1992-07-07 KR KR1020077008101A patent/KR100875266B1/ko not_active IP Right Cessation
- 1992-07-07 EP EP00109747A patent/EP1024426B1/en not_active Expired - Lifetime
- 1992-07-07 KR KR1020077008096A patent/KR100875252B1/ko not_active IP Right Cessation
- 1992-07-07 KR KR1020067001062A patent/KR100633578B1/ko not_active IP Right Cessation
- 1992-07-07 KR KR1020077008097A patent/KR100875257B1/ko not_active IP Right Cessation
- 1992-07-07 AT AT92914387T patent/ATE206829T1/de not_active IP Right Cessation
- 1992-07-07 DE DE69233313T patent/DE69233313T2/de not_active Expired - Lifetime
- 1992-07-07 DE DE0001385085T patent/DE03024585T1/de active Pending
- 1992-07-07 DE DE69233777T patent/DE69233777D1/de not_active Expired - Lifetime
- 1992-07-07 KR KR1020037001229A patent/KR100559455B1/ko not_active IP Right Cessation
- 1992-07-07 KR KR1020067001061A patent/KR100633574B1/ko not_active IP Right Cessation
- 1992-07-07 KR KR1020077008104A patent/KR100764895B1/ko not_active IP Right Cessation
- 1992-07-07 KR KR1020037001234A patent/KR100559482B1/ko not_active IP Right Cessation
- 1992-07-07 KR KR1020037001230A patent/KR100559463B1/ko not_active IP Right Cessation
- 1992-07-07 KR KR1020077008099A patent/KR100875259B1/ko not_active IP Right Cessation
-
1996
- 1996-02-15 US US08/602,021 patent/US5689720A/en not_active Expired - Lifetime
-
1997
- 1997-10-07 US US08/946,078 patent/US6092181A/en not_active Expired - Fee Related
-
1998
- 1998-12-28 HK HK98116065A patent/HK1014782A1/xx not_active IP Right Cessation
-
1999
- 1999-05-11 US US09/309,601 patent/US6101594A/en not_active Expired - Fee Related
- 1999-05-11 US US09/309,603 patent/US6128723A/en not_active Expired - Fee Related
- 1999-06-23 US US09/338,563 patent/US6038654A/en not_active Expired - Fee Related
- 1999-11-09 US US09/436,986 patent/US6256720B1/en not_active Expired - Fee Related
- 1999-11-10 US US09/437,601 patent/US6272619B1/en not_active Expired - Fee Related
-
2000
- 2000-05-17 JP JP2000145125A patent/JP3654138B2/ja not_active Expired - Lifetime
- 2000-05-17 JP JP2000145126A patent/JP2000357091A/ja not_active Withdrawn
- 2000-05-17 JP JP2000145124A patent/JP2000339159A/ja not_active Withdrawn
- 2000-05-17 JP JP2000145123A patent/JP3654137B2/ja not_active Expired - Lifetime
- 2000-05-18 JP JP2000146442A patent/JP2000339162A/ja not_active Withdrawn
- 2000-05-18 JP JP2000146441A patent/JP3654139B2/ja not_active Expired - Lifetime
- 2000-05-18 JP JP2000146443A patent/JP2000339163A/ja not_active Withdrawn
- 2000-12-27 KR KR1020007014869A patent/KR100325177B1/ko not_active IP Right Cessation
- 2000-12-27 KR KR1020007014868A patent/KR100325176B1/ko not_active IP Right Cessation
- 2000-12-27 KR KR1020007014867A patent/KR100325175B1/ko not_active IP Right Cessation
-
2001
- 2001-05-10 US US09/852,293 patent/US6647485B2/en not_active Expired - Fee Related
- 2001-11-23 KR KR10-2001-7015019A patent/KR100403166B1/ko not_active IP Right Cessation
- 2001-11-23 KR KR10-2001-7015021A patent/KR100403164B1/ko not_active IP Right Cessation
- 2001-11-23 KR KR10-2001-7015020A patent/KR100403167B1/ko not_active IP Right Cessation
-
2002
- 2002-09-13 JP JP2002267998A patent/JP3702873B2/ja not_active Expired - Lifetime
- 2002-10-29 US US10/282,207 patent/US6948052B2/en not_active Expired - Fee Related
- 2002-10-29 US US10/282,045 patent/US6959375B2/en not_active Expired - Fee Related
- 2002-10-30 US US10/283,106 patent/US6915412B2/en not_active Expired - Fee Related
- 2002-10-30 US US10/283,177 patent/US6986024B2/en not_active Expired - Fee Related
-
2003
- 2003-01-27 KR KR10-2003-7001228A patent/KR100393495B1/ko not_active IP Right Cessation
- 2003-01-27 KR KR10-2003-7001236A patent/KR100393496B1/ko not_active IP Right Cessation
- 2003-01-27 KR KR10-2003-7001227A patent/KR100393494B1/ko not_active IP Right Cessation
- 2003-01-27 KR KR10-2003-7001237A patent/KR100393497B1/ko not_active IP Right Cessation
- 2003-07-21 KR KR10-2003-7009659A patent/KR100449244B1/ko not_active IP Right Cessation
- 2003-07-21 KR KR10-2003-7009656A patent/KR100449238B1/ko not_active IP Right Cessation
- 2003-07-21 KR KR10-2003-7009653A patent/KR100469964B1/ko not_active IP Right Cessation
- 2003-07-21 KR KR10-2003-7009658A patent/KR100403165B1/ko not_active IP Right Cessation
- 2003-07-21 KR KR10-2003-7009660A patent/KR100449242B1/ko not_active IP Right Cessation
- 2003-07-21 KR KR10-2003-7009657A patent/KR100449236B1/ko not_active IP Right Cessation
- 2003-07-21 KR KR10-2003-7009650A patent/KR100469971B1/ko not_active IP Right Cessation
- 2003-07-21 KR KR10-2003-7009651A patent/KR100469954B1/ko not_active IP Right Cessation
- 2003-07-21 KR KR10-2003-7009655A patent/KR100469968B1/ko not_active IP Right Cessation
- 2003-07-21 KR KR10-2003-7009652A patent/KR100469952B1/ko not_active IP Right Cessation
- 2003-07-21 KR KR10-2003-7009654A patent/KR100469959B1/ko not_active IP Right Cessation
- 2003-09-12 US US10/660,671 patent/US7162610B2/en not_active Expired - Fee Related
- 2003-09-18 KR KR10-2003-7012158A patent/KR100464272B1/ko not_active IP Right Cessation
- 2003-09-18 KR KR10-2003-7012159A patent/KR20040000411A/ko not_active Application Discontinuation
- 2003-10-31 US US10/697,257 patent/US6934829B2/en not_active Expired - Fee Related
- 2003-11-05 US US10/700,485 patent/US7487333B2/en not_active Expired - Fee Related
- 2003-11-05 US US10/700,520 patent/US6941447B2/en not_active Expired - Fee Related
-
2004
- 2004-05-11 HK HK04103298.9A patent/HK1060417A1/xx not_active IP Right Cessation
- 2004-09-14 JP JP2004266867A patent/JP3729202B2/ja not_active Expired - Lifetime
- 2004-10-14 JP JP2004299657A patent/JP3838252B2/ja not_active Expired - Lifetime
- 2004-11-15 JP JP2004329902A patent/JP3760947B2/ja not_active Expired - Lifetime
- 2004-12-20 JP JP2004367718A patent/JP3760948B2/ja not_active Expired - Lifetime
-
2005
- 2005-01-19 JP JP2005011006A patent/JP3731604B2/ja not_active Expired - Lifetime
- 2005-02-18 JP JP2005041740A patent/JP3731605B2/ja not_active Expired - Lifetime
- 2005-04-18 JP JP2005119940A patent/JP3791542B2/ja not_active Expired - Lifetime
- 2005-05-18 JP JP2005145542A patent/JP3791544B2/ja not_active Expired - Lifetime
- 2005-06-17 JP JP2005178170A patent/JP3791545B2/ja not_active Expired - Lifetime
- 2005-07-19 JP JP2005208079A patent/JP3791547B2/ja not_active Expired - Lifetime
- 2005-08-18 JP JP2005237341A patent/JP3791548B2/ja not_active Expired - Lifetime
- 2005-09-20 JP JP2005271886A patent/JP3791550B2/ja not_active Expired - Lifetime
-
2006
- 2006-06-12 JP JP2006162315A patent/JP3915842B2/ja not_active Expired - Lifetime
- 2006-07-12 JP JP2006191594A patent/JP2006313564A/ja not_active Withdrawn
- 2006-12-21 US US11/642,599 patent/US7739482B2/en not_active Expired - Fee Related
-
2008
- 2008-09-22 US US12/235,215 patent/US7721070B2/en not_active Expired - Fee Related
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3731604B2 (ja) | スーパースカラーマイクロプロセッサおよびデータ処理装置 | |
JP3757982B2 (ja) | スーパースカラープロセッサ及びデータ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050218 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050218 |
|
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: 20050920 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051003 |
|
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: 20091021 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101021 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101021 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111021 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121021 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121021 Year of fee payment: 7 |