CA2016068A1 - Multiple instruction issue computer architecture - Google Patents

Multiple instruction issue computer architecture

Info

Publication number
CA2016068A1
CA2016068A1 CA2016068A CA2016068A CA2016068A1 CA 2016068 A1 CA2016068 A1 CA 2016068A1 CA 2016068 A CA2016068 A CA 2016068A CA 2016068 A CA2016068 A CA 2016068A CA 2016068 A1 CA2016068 A1 CA 2016068A1
Authority
CA
Canada
Prior art keywords
family
computer architecture
instructions
multiple instruction
instruction issue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CA2016068A
Other languages
French (fr)
Other versions
CA2016068C (en
Inventor
Robert W. Horst
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of CA2016068A1 publication Critical patent/CA2016068A1/en
Application granted granted Critical
Publication of CA2016068C publication Critical patent/CA2016068C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/261Microinstruction address formation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Abstract

A system for issuing a family of instructions during a single clock includes a decoder for decoding the family of instructions and logic, responsive to the decade result, for determining whether resource conflicts would occur if the family were issued during one clock. If no resource conflicts occur, an execution unit executes the family regardless of whether dependencies among the instructions in the family exist.
CA002016068A 1989-05-24 1990-05-04 Multiple instruction issue computer architecture Expired - Fee Related CA2016068C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US35617089A 1989-05-24 1989-05-24
US356,170 1989-05-24

Publications (2)

Publication Number Publication Date
CA2016068A1 true CA2016068A1 (en) 1990-11-24
CA2016068C CA2016068C (en) 2000-04-04

Family

ID=23400422

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002016068A Expired - Fee Related CA2016068C (en) 1989-05-24 1990-05-04 Multiple instruction issue computer architecture

Country Status (5)

Country Link
US (8) US5390355A (en)
EP (2) EP0902362A3 (en)
JP (1) JP2810211B2 (en)
CA (1) CA2016068C (en)
DE (1) DE69033398T2 (en)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2016068C (en) * 1989-05-24 2000-04-04 Robert W. Horst Multiple instruction issue computer architecture
US5615349A (en) * 1990-09-04 1997-03-25 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
US5745723A (en) * 1989-09-04 1998-04-28 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
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
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5826055A (en) * 1991-07-08 1998-10-20 Seiko Epson Corporation System and method for retiring instructions in a superscalar microprocessor
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
JP3441071B2 (en) * 1991-07-08 2003-08-25 セイコーエプソン株式会社 Microprocessor and data processing device
EP0636256B1 (en) * 1992-03-31 1997-06-04 Seiko Epson Corporation Superscalar risc processor instruction scheduling
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
WO1993022722A1 (en) * 1992-05-01 1993-11-11 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
JPH0651984A (en) * 1992-06-05 1994-02-25 Hitachi Ltd 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
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
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
EP0682789B1 (en) * 1992-12-31 1998-09-09 Seiko Epson Corporation System and method for register renaming
US5490265A (en) * 1993-04-14 1996-02-06 Intel Corporation Late cancel method and apparatus for a high performance microprocessor system
US6138230A (en) * 1993-10-18 2000-10-24 Via-Cyrix, Inc. Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline
US5630149A (en) * 1993-10-18 1997-05-13 Cyrix Corporation Pipelined processor with register renaming hardware to accommodate multiple size registers
DE69408769T2 (en) * 1993-10-18 1998-07-09 Cyrix Corp Assembly line control and register translation in microprocessor
US6073231A (en) * 1993-10-18 2000-06-06 Via-Cyrix, Inc. Pipelined processor with microcontrol of register translation hardware
DE69427265T2 (en) * 1993-10-29 2002-05-02 Advanced Micro Devices Inc Superskalarbefehlsdekoder
DE69429061T2 (en) * 1993-10-29 2002-07-18 Advanced Micro Devices Inc Superskalarmikroprozessoren
US5878245A (en) * 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
DE69427734T2 (en) * 1993-10-29 2002-05-23 Advanced Micro Devices Inc Linearly addressed microprocessor cache
US5604909A (en) 1993-12-15 1997-02-18 Silicon Graphics Computer Systems, Inc. Apparatus for processing instructions in a computing system
US5559975A (en) * 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
TW448403B (en) * 1995-03-03 2001-08-01 Matsushita Electric Ind Co Ltd Pipeline data processing device and method for executing multiple data processing data dependent relationship
US5802346A (en) * 1995-06-02 1998-09-01 International Business Machines Corporation Method and system for minimizing the delay in executing branch-on-register instructions
US5592488A (en) * 1995-06-07 1997-01-07 Micron Technology, Inc. Method and apparatus for pipelined multiplexing employing analog delays for a multiport interface
US5848288A (en) * 1995-09-20 1998-12-08 Intel Corporation Method and apparatus for accommodating different issue width implementations of VLIW architectures
JP2636821B2 (en) * 1996-03-08 1997-07-30 株式会社日立製作所 Parallel processing unit
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US5794010A (en) * 1996-06-10 1998-08-11 Lsi Logic Corporation Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
US6065105A (en) * 1997-01-08 2000-05-16 Intel Corporation Dependency matrix
US5838939A (en) * 1997-05-09 1998-11-17 Sun Microsystems, Inc. Multi-issue/plural counterflow pipeline processor
US6108768A (en) * 1998-04-22 2000-08-22 Sun Microsystems, Inc. Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system
US6742110B2 (en) * 1998-10-06 2004-05-25 Texas Instruments Incorporated Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution
US6192466B1 (en) * 1999-01-21 2001-02-20 International Business Machines Corporation Pipeline control for high-frequency pipelined designs
EP1050808B1 (en) * 1999-05-03 2008-04-30 STMicroelectronics S.A. Computer instruction scheduling
EP1050809A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Computer instruction dependency
US6609191B1 (en) * 2000-03-07 2003-08-19 Ip-First, Llc Method and apparatus for speculative microinstruction pairing
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
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
GB2424727B (en) * 2005-03-30 2007-08-01 Transitive Ltd Preparing instruction groups for a processor having a multiple issue ports

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3881173A (en) * 1973-05-14 1975-04-29 Amdahl Corp Condition code determination and data processing
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
JPS6028015B2 (en) * 1980-08-28 1985-07-02 日本電気株式会社 information processing equipment
JPS57130150A (en) * 1981-02-03 1982-08-12 Nec Corp Register control system
US4439828A (en) * 1981-07-27 1984-03-27 International Business Machines Corp. Instruction substitution mechanism in an instruction handling unit of a data processing system
JPS58189738A (en) * 1982-04-30 1983-11-05 Hitachi Ltd Data processing system
JPS58187850U (en) * 1982-06-04 1983-12-13 株式会社日立製作所 Vector processing device
JPS5932045A (en) * 1982-08-16 1984-02-21 Hitachi Ltd Information processor
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
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
AU553416B2 (en) * 1984-02-24 1986-07-17 Fujitsu Limited Pipeline processing
JPH0769818B2 (en) * 1984-10-31 1995-07-31 株式会社日立製作所 Data processing device
US4794517A (en) * 1985-04-15 1988-12-27 International Business Machines Corporation Three phased pipelined signal processor
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system
US4991080A (en) * 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
DE3751503T2 (en) * 1986-03-26 1996-05-09 Hitachi Ltd Data processor in pipeline structure with the ability to decode and execute multiple instructions in parallel.
JPH0731615B2 (en) * 1986-04-18 1995-04-10 日本電気株式会社 Information processing equipment
JPS63131230A (en) * 1986-11-21 1988-06-03 Hitachi Ltd Information processor
US5179680A (en) * 1987-04-20 1993-01-12 Digital Equipment Corporation Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus
AT386981B (en) * 1987-04-24 1988-11-10 Philips Nv DRY SHAVER WITH A SLIDING SHUTTER
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
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
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US4926323A (en) * 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor
JPH07120278B2 (en) * 1988-07-04 1995-12-20 三菱電機株式会社 Data processing device
US4875160A (en) * 1988-07-20 1989-10-17 Digital Equipment Corporation Method for implementing synchronous pipeline exception recovery
DE68926701T2 (en) * 1988-08-09 1997-02-20 Matsushita Electric Ind Co Ltd Data processing device for parallel decoding and parallel execution of commands with variable word length
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
JPH0769824B2 (en) * 1988-11-11 1995-07-31 株式会社日立製作所 Multiple instruction simultaneous processing method
EP0378415A3 (en) * 1989-01-13 1991-09-25 International Business Machines Corporation Multiple instruction dispatch mechanism
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
JP3441071B2 (en) * 1991-07-08 2003-08-25 セイコーエプソン株式会社 Microprocessor and data processing device
DE69429061T2 (en) * 1993-10-29 2002-07-18 Advanced Micro Devices Inc Superskalarmikroprozessoren
US5592679A (en) * 1994-11-14 1997-01-07 Sun Microsystems, Inc. Apparatus and method for distributed control in a processor architecture
US5651124A (en) * 1995-02-14 1997-07-22 Hal Computer Systems, Inc. Processor structure and method for aggressively scheduling long latency instructions including load/store instructions while maintaining precise state
US5878252A (en) * 1997-06-27 1999-03-02 Sun Microsystems, Inc. Microprocessor configured to generate help instructions for performing data cache fills

Also Published As

Publication number Publication date
EP0902362A3 (en) 2001-10-04
EP0902362A2 (en) 1999-03-17
US5918032A (en) 1999-06-29
CA2016068C (en) 2000-04-04
AU5515390A (en) 1990-11-29
DE69033398T2 (en) 2000-05-18
US6009506A (en) 1999-12-28
EP0399762A3 (en) 1992-01-22
JP2810211B2 (en) 1998-10-15
EP0399762A2 (en) 1990-11-28
US5752064A (en) 1998-05-12
US5574941A (en) 1996-11-12
US5628024A (en) 1997-05-06
DE69033398D1 (en) 2000-01-27
US5390355A (en) 1995-02-14
US6092177A (en) 2000-07-18
AU630697B2 (en) 1992-11-05
EP0399762B1 (en) 1999-12-22
US6266765B1 (en) 2001-07-24
JPH03116233A (en) 1991-05-17

Similar Documents

Publication Publication Date Title
CA2016068A1 (en) Multiple instruction issue computer architecture
US5095427A (en) Dispatch control of virtual machine
US5440747A (en) Data processor with control logic for storing operation mode status and associated method
CA2320913A1 (en) Zero overhead computer interrupts with task switching
JPS6436336A (en) Calculator system
GB2266605B (en) Microprocessor having a run/stop pin for accessing an idle mode
EP0272835A3 (en) Virtual execution of programs on a multiprocessor system
EP0343992A3 (en) Multiprocessor system
CA2123448A1 (en) Blackout Logic for Dual Execution Unit Processor
EP0331191A3 (en) Information processing system capable of carrying out advanced execution
WO2000033175A3 (en) Method for increasing efficiency of multiprocessing systems
GB2016753A (en) Data Processing System
JPS5741739A (en) Program renewal control system
JPS57178553A (en) Multiprocessor system
JPS6075938A (en) Dispatching system during timer interruption
SU907551A1 (en) Multi-microprocessor system
JPS5717058A (en) Control system of microprogram
JPS61136115A (en) Basic clock generating circuit of microcomputer system
Sewry Process scheduling in Modula-2
JPS649561A (en) Computer
JPS5597655A (en) Memory access system
Redhead Development of a dual processor multiprocessor system
Vainshtein et al. Estimation of mutual effect of jobs in multiprogram batch processing.
JPH05233283A (en) Parallel instruction execution system
JPS648451A (en) Microprogram control device

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed