[go: up one dir, main page]

WO1997013193B1 - Instruction buffer organization method and system - Google Patents

Instruction buffer organization method and system

Info

Publication number
WO1997013193B1
WO1997013193B1 PCT/US1996/015417 US9615417W WO9713193B1 WO 1997013193 B1 WO1997013193 B1 WO 1997013193B1 US 9615417 W US9615417 W US 9615417W WO 9713193 B1 WO9713193 B1 WO 9713193B1
Authority
WO
WIPO (PCT)
Prior art keywords
instruction
variable
length
instructions
length instructions
Prior art date
Application number
PCT/US1996/015417
Other languages
French (fr)
Other versions
WO1997013193A1 (en
Filing date
Publication date
Priority claimed from US08/649,995 external-priority patent/US5819056A/en
Application filed filed Critical
Priority to EP96935973A priority Critical patent/EP0853781B1/en
Priority to AU73733/96A priority patent/AU7373396A/en
Priority to DE69629709T priority patent/DE69629709D1/en
Priority to JP9514324A priority patent/JPH11510287A/en
Publication of WO1997013193A1 publication Critical patent/WO1997013193A1/en
Publication of WO1997013193B1 publication Critical patent/WO1997013193B1/en

Links

Abstract

Variable-length instructions are prepared for simultaneous decoding and execution of a plurality of instructions in parallel by reading multiple variable-length instructions from an instruction source and determining the starting point of each instruction so that multiple instructions are presented to a decoder simultaneously for decoding in parallel. Immediately upon accessing the multiple variable-length instructions from an instruction memory, a predecoder derives predecode information for each byte of the variable-length instructions by determining an instruction length indication for that byte, assuming each byte to be an opcode byte since the actual opcode byte is not identified. The predecoder associates an instruction length to each instruction byte. The instructions and predecode information are applied to an instruction buffer circuit in a memory-aligned format. The instruction buffer circuit prepares the variable-length instructions for decoding by converting the instruction alignment from a memory alignment to an instruction alignment on the basis of the instruction length indication. The instruction buffer circuit also assists the preparation of variable-length instructions for decoding of multiple instructions in parallel by facilitating a conversion of the instruction length indication to an instruction pointer.

Claims

-50-
AMENDED CLAIMS
[received by the Internauonal Bureau on 3 April 1997 (03.04.97); original claims 3 and 11 amended; new claims 25 and 26 added; remaining claims unchanged (9 pages)] 1 An apparatus for receiving a plurality of variable-length instructions arranged in a memory alignment from an instruction source and preparing the instructions for execution compnsing an instruction cache coupled to the instruction source and having a plurality of instruction storage elements and a corresponding plurality of predecode storage elements, each of the variable-length instructions being stored in one or more instruction storage elements in the memory alignment and the predecode storage elements for stonng predecode information corresponding to the vaπable- length instructions stored in each instruction storage element, a predecoder coupled to the instruction cache for accessing the variable-length instructions and assigning predecode information indicative of instruction length to the instruction storage elements assuming each instruction storage element stores a first instruction of a variable-length instruction, a buffer circuit coupled to the predecoder for holding the variable-length instructions and the corresponding predecode information, converting the vanable length instructions from the memory alignment to an instruction ahgnment, and designating the first instruction byte location of a vanable-length instruction, and a decoder circuit coupled to the instruction cache to receive the vanable-length instructions tn the instruction alignment and the predecode information, the decoder circuit including a plurality of decoders for receiving a plurality of vanable-length instructions, each beginning at the designated first instruction byte locations, and decoding the plurality of vanable-length instructions in parallel
2 An apparatus according to Claim 1 wherein the buffer circuit further compπses an instruction buffer coupled to the instruction cache for holding the variable-length instructions and for continually reloading with new vanable-length instructions as vanable-length instructions are decoded by the decoder circuit; and a predecode expansion circuit coupled to the instruction buffer for converting the predecode information indicative of instruction length to an instruction length
3 An apparatus according to Claim 1 wherein the buffer circuit further compnses. an instruction buffer coupled to the instruction cache including a multiple instruction byte storage for stonng a predefined number of bytes of the variable-length instructions, and a multiple-bit predecode element storage having the predefined number of bits corresponding to the predefined number of bytes instruction byte storage; and a predecode expansion circuit coupled to the instruction buffer for converting the predecode information indicative of instruction length to an instruction length and stonng the instruction length in an instruction byte storage -51-
4. An apparatus according to Claim 1 wherein the buffer circuit further comprises: an instruction buffer coupled to the instruction cache for holding the variable-length instructions and for continually reloading with new variable-length instructions as variable-length instructions are decoded by the decoder circuit; and a plurality of instruction multiplexers respectively coupled to the plurality of decoders, the instruction multiplexers for converting the variable-length instructions in the instruction buffer from a memory alignment to an instruction alignment.
5. An apparatus according to Claim 1 wherein the buffer circuit further comprises: an instruction buffer coupled to the instruction cache for holding the variable-length instructions and for continually reloading with new variable-length instructions as variable-length instructions are decoded by the decoder circuit; a plurality of instruction multiplexers respectively coupled to the plurality of decoders, the instruction multiplexers for converting the variable-length instructions in the instruction buffer from a memory alignment to an instruction alignment; and a program counter coupled to the plurality of instruction multiplexers and supplying a program count representing an initial point for decoding instructions, the program count being combined with the predecode information indicative of instruction length to designate the first instruction byte location of a variable-length instruction.
6. An apparatus according to Claim 1 wherein the buffer circuit further comprises: an instruction buffer coupled to the instruction cache; a program counter coupled to the plurality of instruction multiplexers and supplying a program count representing an initial point for decoding instructions; and an instruction lookahead logic circuit coupled to the instruction buffer, the program counter and the plurality of decoders, the instruction lookahead logic circuit for deriving the first instruction byte location of a variable-length instruction based on the program count and the predecode information indicative of instruction length, the first instruction byte locations being rapidly derived so that the decoders decode variable-length instructions in parallel.
7. An apparatus according to Claim 1 wherein the buffer circuit further comprises: an instruction buffer coupled to the instruction cache; a plurality of instruction multiplexers respectively coupled to the plurality of decoders, the instruction multiplexers for converting the variable-length instructions in the instruction buffer from a memory alignment to an instruction alignment; a program counter coupled to the plurality of instruction multiplexers and supplying a program count representing an initial point for decoding instructions; and an instruction lookahead logic circuit coupled to the instruction buffer, the plurality of instruction multiplexers, the program counter and the plurality of decoders, the instruction lookahead logic circuit for denving the first instruction byte location of a vanable-length instruction based on the program count and the predecode information indicative of instruction length, the first instruction byte locations being rapidly derived so that the decoders decode vanable-length instructions in parallel.
8 An apparatus according to Claim 7 wherein the instruction lookahead logic circuit further compnses- a circuit for determining whether the predecode information is valid based on the predecode information indicative of instruction length
9 An apparatus for receiving a plurality of vanable-length instructions arranged in a memory alignment from an instruction source and preparing the instructions for execution compπsing- an instruction cache coupled to the instruction source and having a plurality of instruction storage elements and a corresponding plurality of predecode storage elements, each of the vanable-length instructions being stored in one or more instruction storage elements in the memory alignment and the predecode storage elements for stoπng predecode information corresponding to the vaπable- length instructions stored in each instruction storage element, a predecoder coupled to the instruction cache for accessing the vanable-length instmctions, assigning predecode information indicative of instruction length to the instruction storage elements assuming each instruction storage element stores a first instruction of a vanable-length instruction, and designating the variable-length instructions as first-type and second-type variable-length instructions based on the information indicative of instruction length, a buffer circuit coupled to the predecoder for holding the vanable-length instructions and the corresponding predecode information, converting the vanable length instructions from the memory alignment to an instruction alignment, and designating the first instruction byte location of a vanable-length instruction; and a decoder circuit coupled to the instruction cache to receive the vanable-length instructions in the instruction alignment and the predecode information, the decoder circuit including a plurality of first type decoders and a second type decoder, the first type decoders for receiving a plurality of first-type vanable-length instructions, each beginning at the designated first instruction byte locations, and decoding the plurality of first-type vanable-length instructions in parallel, the second type decoder for decoding a second-type vanable length instruction.
10 An apparatus according to Claim 9 wherein the buffer circuit further compnses- an instruction buffer coupled to the instrucuon cache for holding first-type and second-type vanable-length instructions and for continually reloading with new vanable-length instructions as vanable-length instructions are decoded by the decoder circuit; and a predecode expansion circuit coupled to the instruction buffer for converting the predecode information indicative of instruction length to an instruction length -53-
11. An apparatus according to Claim 9 wherein the buffer circuit further comprises: an instruction buffer coupled to the instruction cache including a multiple instruction byte storage for storing a predefined number of bytes of the variable-length instructions, and a multiple-bit predecode element storage corresponding to the predefined number of bytes instruction byte storage; and a predecode expansion circuit coupled to the instruction buffer for converting the predecode information indicative of instruction length to an instruction length and storing the instruction length in an instruction byte storage.
12. An apparatus according to Claim 9 wherein the buffer circuit further comprises: an instruction buffer coupled to the instruction cache for holding the variable-length instructions and for continually reloading with new variable-length instructions as variable-length instructions are decoded by the decoder circuit; and a plurality of instruction multiplexers respectively coupled to the plurality of first type decoders, the instruction multiplexers for converting the first-type variable-length instructions in the instruction buffer from a memory alignment to an instruction alignment.
13. An apparatus according to Claim 12 wherein one instruction multiplexer of the plurality of instruction multiplexers is coupled to the second type decoder and coupled to one respective first type decoder.
14. An apparatus according to Claim 9 wherein the buffer circuit further comprises: an instruction buffer coupled to the instruction cache for holding the variable-length instructions and for continually reloading with new variable-length instructions as variable-length instructions are decoded by the decoder circuit; a plurality of instruction multiplexers respectively coupled to the plurality of first type decoders, the instruction multiplexers for converting the variable-length instructions in the instruction buffer from a memory alignment to an instruction alignment; and a program counter coupled to the plurality of instruction multiplexers and supplying a program count representing an initial point for decoding instructions, the program count being combined with the predecode information indicative of instruction length to designate the first instruction byte location of a variable-length instruction.
15. An apparatus according to Claim 14 wherein one instruction multiplexer of the plurality of instruction multiplexers is coupled to the second type decoder and coupled to one respective first type decoder.
16. An apparatus according to Claim 9 wherein the buffer circuit further comprises: an instruction buffer coupled to the instruction cache; a program counter coupled to the plurality of instruction multiplexers and supplying a program count representing an initial point for decoding instructions; and an instruction lookahead logic circuit coupled to the instruction buffer, the program counter and the plurality of first type decoders, the instruction lookahead logic circuit for deriving the first instruction byte location of a variable-length instruction based on the program count and the predecode information indicative of instruction length, the first instruction byte locations being rapidly derived so that the first type decoders decode variable-length instructions in parallel.
17. An apparatus according to Claim 9 wherein the buffer circuit further comprises: an instruction buffer coupled to the instruction cache; a plurality of instruction multiplexers respectively coupled to the plurality of first type decoders, the instruction multiplexers for converting the variable-length instructions in the instruction buffer from a memory alignment to an instruction alignment; a program counter coupled to the plurality of instruction multiplexers and supplying a program count representing an initial point for decoding instructions; and an instruction lookahead logic circuit coupled to the instruction buffer, the plurality of instruction multiplexers, the program counter and the plurality of first type decoders, the instruction lookahead logic circuit for deriving the first instruction byte location of a variable-length instruction based on the program count and the predecode information indicative of instruction length, the first instruction byte locations being rapidly derived so that the first type decoders decode variable- length instructions in parallel.
18. An apparatus according to Claim 17 wherein the instruction lookahead logic circuit further comprises: a circuit for determining whether the predecode information is valid based on the predecode information indicative of instruction length.
19. An apparatus according to Claim 9 further comprising: a branch target buffer coupled to the instruction cache and the buffer circuit, the branch target buffer for storing a plurality of target instructions, the branch target buffer and the instruction cache alternatively supplying variable-length instructions to the buffer circuit.
20. A method of receiving a plurality of variable-length instructions arranged in a memory alignment from an instruction source and preparing the instructions for execution, comprising the steps of: receiving the plurality of variable-length instructions from the instruction source; storing the variable-length instructions in a plurality of instruction storage elements, each of the variable- length instructions being stored in one or more instruction storage elements in the memory alignment; -55- accessing the variable-length instructions and assigning predecode information indicative of instruction length to the instruction storage elements assuming each instruction storage element stores a first instruction of a variable-length instruction; storing predecode information corresponding to the variable-length instructions stored in a plurality of predecode storage elements corresponding to the plurality of instruction storage elements; holding the variable-length instructions and the corresponding predecode information in a buffer; converting the variable length instructions from the memory alignment to an instruction alignment; designating the first instruction byte location of a variable-length instruction; receiving the variable-length instructions in the instruction alignment at a plurality of decoders, each variable-length instruction beginning at the designated first instruction byte locations; and decoding the plurality of variable-length instructions in parallel.
21. A method according to Claim 20, further comprising the steps of: supplying a program count representing an initial point for decoding instructions; and deriving the first instruction byte location of a variable-length instruction based on the program count and the predecode information indicative of instruction length, the first instruction byte locations being rapidly derived so that the decoders decode variable-length instructions in parallel.
22. A method of receiving a plurality of variable-length instructions arranged in a memory alignment from an instruction source and preparing the instructions for execution, comprising the steps of: receiving the plurality of variable-length instructions from the instrucuon source; storing the variable-length instructions in a plurality of instruction storage elements, each of the variable- length instructions being stored in one or more instruction storage elements in the memory alignment; accessing the variable-length instructions and assigning predecode information indicative of instruction length to the instruction storage elements assuming each instruction storage element stores a first instruction of a variable-length instruction; storing predecode information corresponding to the variable-length instructions stored in a plurality of predecode storage elements corresponding to the plurality of instruction storage elements; holding the variable-length instructions and the corresponding predecode information in a buffer; converting the variable length instructions from the memory alignment to an instrucuon alignment; designating the first instruction byte location of a variable-length instruction; designating the variable-length instructions as first-type and second-type variable-length instructions based on the information indicative of instruction length; receiving the variable-length instructions in the instruction alignment at a plurality of decoders including a plurality of first type decoders and a second type decoder, the first type decoders for receiving a plurality of first-type variable-length instructions, each variable-length instruction beginning at the designated first instruction byte locations; decoding the plurality of first-type variable-length instructions in parallel; and decoding a second-type variable length instruction. -56-
23. A computer system comprising: a memory subsystem which stores data and instructions; and a processor operably coupled to access the data and instructions stored in the memory subsystem, wherein the processor includes a circuit for receiving a plurality of variable-length instructions arranged in a memory alignment from an instruction source and preparing die instructions for execution, the circuit including: an instruction cache coupled to the instruction source and having a plurality of instruction storage elements and a corresponding plurality of predecode storage elements, each of the variable-length instructions being stored in one or more instruction storage elements in the memory alignment and the predecode storage elements for storing predecode information corresponding to the variable- length instructions stored in each instruction storage element; a predecoder coupled to the instruction cache for accessing the variable-length instructions and assigning predecode information indicative of instruction length to the instruction storage elements assuming each instruction storage element stores a first instruction of a variable- length instruction; a buffer circuit coupled to the predecoder for holding the variable-length instructions and the corresponding predecode information, converting the variable length instructions from the memory alignment to an instruction alignment, and designating the first instruction byte location of a variable-length instruction; and a decoder circuit coupled to the instruction cache to receive the variable-length instructions in the instruction alignment and the predecode information, the decoder circuit including a plurality of decoders for receiving a plurality of variable-length instructions, each beginning at the designated first instruction byte locations, and decoding the plurality of variable-length instructions in parallel.
24. In a processor having an instruction cache and a decoder, an apparatus for receiving a plurality of variable-length instructions arranged in a memory alignment from an instruction source and preparing the instructions for execution, the apparatus being characterized in that the apparatus comprises: an instruction cache coupled to the instruction source and having a plurality of instruction storage elements and a corresponding plurality of predecode storage elements, each of the variable-length instructions being stored in one or more instruction storage elements in the memory alignment and the predecode storage elements for storing predecode information corresponding to the variable- length instructions stored in each instruction storage element; a predecoder coupled to the instruction cache for accessing the variable-length instructions and assigning predecode information indicative of instruction length to the instruction storage elements assuming each instruction storage element stores a first instruction of a variable-length instruction; -57- a buffer circuit coupled to the predecoder for holding the variable-length instructions and the corresponding predecode information, converting the variable length instnicuons from the memory alignment to an instruction alignment, and designating the first instruction byte location of a variable-length instruction; and a decoder circuit coupled to the instruction cache to receive the variable-length instructions in the instruction alignment and the predecode information, the decoder circuit including a plurality of decoders for receiving a plurality of variable-length instructions, each beginning at the designated first instruction byte locations, and decoding the plurality of variable-length instructions in parallel.
25. A network server comprising: a superscalar processor including a circuit for receiving a plurality of variable-length instructions arranged in a memory alignment from an instruction source and preparing the instructions for execution including: an instruction cache coupled to the instruction source and having a plurality of instruction storage elements and a corresponding plurality of predecode storage elements, each of the variable-length instructions being stored in one or more instruction storage elements in the memory alignment and the predecode storage elements for storing predecode information corresponding to the variable-length instructions stored in each instruction storage element; a predecoder coupled to the instruction cache for accessing the variable-length instructions and assigning predecode information indicative of instruction length to the instruction storage elements assuming each instruction storage element stores a first instruction of a variable- length instruction; a buffer circuit coupled to the predecoder for holding the variable-length instructions and the conesponding predecode information, converting the variable length instructions from the memory alignment to an instruction alignment, and designating the first instruction byte location of a variable-length instruction; and a decoder circuit coupled to the instruction cache to receive the variable-length instructions in the instruction alignment and the predecode information, the decoder circuit including a plurality of decoders for receiving a plurality of variable-length instructions, each beginning at the designated first instruction byte locations, and decoding the plurality of variable-length instructions in parallel; a memory; a processor bus coupled between the memory and the superscalar processor; a local bus and an I/O bus; first and second bridges, respectively coupling the processor bus to the local bus and the local bus to d e I/O bus; and a LAN adapter coupled to one of the local bus and the I O bus. -58-
26. A network server comprising: a superscalar processor including a circuit for receiving a plurality of variable-length instructions arranged in a memory alignment from an instruction source and preparing the instructions for execution including: an instruction cache coupled to the instruction source and having a plurality of instruction storage elements and a conesponding plurality of predecode storage elements, each of the variable-length instructions being stored in one or more instruction storage elements in the memory alignment and the predecode storage elements for storing predecode information corresponding to the variable- length instructions stored in each instruction storage element; a predecoder coupled to the instruction cache for accessing the variable-length instructions and assigning predecode information indicative of instruction length to the instruction storage elements assuming each instruction storage element stores a first instruction of a variable- length instruction; a buffer circuit coupled to the predecoder for holding the variable-length instructions and the corresponding predecode information, converting the variable length instructions from the memory alignment to an instruction alignment, and designating the first instruction byte location of a variable-length instruction; and a decoder circuit coupled to the instruction cache to receive the variable-length instructions in the instruction alignment and the predecode information, the decoder circuit including a plurality of decoders for receiving a plurality of variable-length instructions, each beginning at the designated first instruction byte locations, and decoding the plurality of variable-length instructions in parallel; and a LAN adapter coupled to the superscalar processor.
PCT/US1996/015417 1995-10-06 1996-10-03 Instruction buffer organization method and system WO1997013193A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP96935973A EP0853781B1 (en) 1995-10-06 1996-10-03 Instruction buffer organization method and system
AU73733/96A AU7373396A (en) 1995-10-06 1996-10-03 Instruction buffer organization method and system
DE69629709T DE69629709D1 (en) 1995-10-06 1996-10-03 COMMAND BUFFER STORAGE ORGANIZATION METHOD AND SYSTEM
JP9514324A JPH11510287A (en) 1995-10-06 1996-10-03 Instruction buffer configuration method and system

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US506995P 1995-10-06 1995-10-06
US502195P 1995-10-10 1995-10-10
US59376596A 1996-01-26 1996-01-26
US593,765 1996-05-16
US60/005,021 1996-05-16
US60/005,069 1996-05-16
US649,995 1996-05-16
US08/649,995 US5819056A (en) 1995-10-06 1996-05-16 Instruction buffer organization method and system

Publications (2)

Publication Number Publication Date
WO1997013193A1 WO1997013193A1 (en) 1997-04-10
WO1997013193B1 true WO1997013193B1 (en) 1997-05-15

Family

ID=27485443

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1996/015417 WO1997013193A1 (en) 1995-10-06 1996-10-03 Instruction buffer organization method and system

Country Status (6)

Country Link
US (2) US5819056A (en)
EP (1) EP0853781B1 (en)
JP (1) JPH11510287A (en)
AU (1) AU7373396A (en)
DE (1) DE69629709D1 (en)
WO (1) WO1997013193A1 (en)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5884059A (en) * 1996-01-26 1999-03-16 Advanced Micro Devices, Inc. Unified multi-function operation scheduler for out-of-order execution in a superscalar processor
US6122729A (en) * 1997-05-13 2000-09-19 Advanced Micro Devices, Inc. Prefetch buffer which stores a pointer indicating an initial predecode position
JP3003782B2 (en) * 1997-07-31 2000-01-31 日本電気株式会社 Development support equipment
US6170055B1 (en) * 1997-11-03 2001-01-02 Iomega Corporation System for computer recovery using removable high capacity media
US6122638A (en) * 1997-11-26 2000-09-19 International Business Machines Corporation Object-oriented processor and method for caching intermediate data in an object-oriented processor
SE9704476L (en) 1997-12-02 1999-06-23 Ericsson Telefon Ab L M Extended instruction decoding
ATE297567T1 (en) * 1998-03-18 2005-06-15 Qualcomm Inc DIGITAL SIGNAL PROCESSOR TO REDUCE ACCESS COMPETITION
US6961801B1 (en) * 1998-04-03 2005-11-01 Avid Technology, Inc. Method and apparatus for accessing video data in memory across flow-controlled interconnects
US7634635B1 (en) * 1999-06-14 2009-12-15 Brian Holscher Systems and methods for reordering processor instructions
US7089404B1 (en) 1999-06-14 2006-08-08 Transmeta Corporation Method and apparatus for enhancing scheduling in an advanced microprocessor
US6393446B1 (en) 1999-06-30 2002-05-21 International Business Machines Corporation 32-bit and 64-bit dual mode rotator
US6748589B1 (en) 1999-10-20 2004-06-08 Transmeta Corporation Method for increasing the speed of speculative execution
US6807623B2 (en) * 2000-07-27 2004-10-19 Matsushita Electric Industrial Co., Ltd. Data processing control system, controller, data processing control method, program, and medium
US6832307B2 (en) 2001-07-19 2004-12-14 Stmicroelectronics, Inc. Instruction fetch buffer stack fold decoder for generating foldable instruction status information
US7168067B2 (en) * 2002-02-08 2007-01-23 Agere Systems Inc. Multiprocessor system with cache-based software breakpoints
KR100518567B1 (en) * 2003-04-15 2005-10-04 삼성전자주식회사 Integrated circuit having memory cell array configuration capable of operating data reading and data writing simultaneously
US7134000B2 (en) * 2003-05-21 2006-11-07 Analog Devices, Inc. Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information
US7665078B2 (en) * 2003-08-21 2010-02-16 Gateway, Inc. Huffman-L compiler optimized for cell-based computers or other computers having reconfigurable instruction sets
US7243170B2 (en) * 2003-11-24 2007-07-10 International Business Machines Corporation Method and circuit for reading and writing an instruction buffer
US20060155961A1 (en) * 2005-01-06 2006-07-13 International Business Machines Corporation Apparatus and method for reformatting instructions before reaching a dispatch point in a superscalar processor
US7769983B2 (en) 2005-05-18 2010-08-03 Qualcomm Incorporated Caching instructions for a multiple-state processor
US20070226454A1 (en) * 2006-03-01 2007-09-27 Marius Stoian Highly scalable MIMD machine for java and .net processing
US20080177979A1 (en) * 2006-03-01 2008-07-24 Gheorghe Stefan Hardware multi-core processor optimized for object oriented computing
JP4902854B2 (en) * 2006-09-12 2012-03-21 パナソニック株式会社 Moving picture decoding apparatus, moving picture decoding method, moving picture decoding program, moving picture encoding apparatus, moving picture encoding method, moving picture encoding program, and moving picture encoding / decoding apparatus
US7644204B2 (en) * 2006-10-31 2010-01-05 Hewlett-Packard Development Company, L.P. SCSI I/O coordinator
US7711927B2 (en) * 2007-03-14 2010-05-04 Qualcomm Incorporated System, method and software to preload instructions from an instruction set other than one currently executing
US7818543B2 (en) * 2007-07-10 2010-10-19 Globalfoundries Inc. Method and apparatus for length decoding and identifying boundaries of variable length instructions
US7818542B2 (en) * 2007-07-10 2010-10-19 Globalfoundries Inc. Method and apparatus for length decoding variable length instructions
US8417730B2 (en) * 2008-04-14 2013-04-09 Objectif Lune Inc. Block compression algorithm
US7870160B2 (en) * 2008-04-14 2011-01-11 Objectif Lune Inc. Block compression algorithm
US8942490B2 (en) * 2008-07-08 2015-01-27 Yin-Chun Blue Lan Method of high performance image compression
US8103850B2 (en) * 2009-05-05 2012-01-24 International Business Machines Corporation Dynamic translation in the presence of intermixed code and data
CN102426516A (en) * 2011-09-29 2012-04-25 杭州中天微系统有限公司 Variable length command set pre-decoding device based on two-level on-chip caches
CN104781786B (en) * 2012-12-26 2018-05-08 英特尔公司 Selection logic for refactoring program order using deferred
US20140244932A1 (en) * 2013-02-27 2014-08-28 Advanced Micro Devices, Inc. Method and apparatus for caching and indexing victim pre-decode information
US9710278B2 (en) * 2014-09-30 2017-07-18 International Business Machines Corporation Optimizing grouping of instructions
US11500643B2 (en) * 2020-11-13 2022-11-15 Centaur Technology, Inc. Spectre fixes with indirect valid table

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3731283A (en) * 1971-04-13 1973-05-01 L Carlson Digital computer incorporating base relative addressing of instructions
US5131086A (en) * 1988-08-25 1992-07-14 Edgcore Technology, Inc. Method and system for executing pipelined three operand construct
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
US5113515A (en) * 1989-02-03 1992-05-12 Digital Equipment Corporation Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer
JP2725450B2 (en) * 1989-08-28 1998-03-11 日本電気株式会社 Microprocessor
US5185868A (en) * 1990-01-16 1993-02-09 Advanced Micro Devices, Inc. Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
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
CA2037708C (en) * 1990-05-04 1998-01-20 Richard J. Eickemeyer General purpose compound apparatus for instruction-level parallel processors
JP2834289B2 (en) * 1990-07-20 1998-12-09 株式会社日立製作所 Microprocessor
WO1992006426A1 (en) * 1990-10-09 1992-04-16 Nexgen Microsystems Method and apparatus for parallel decoding of instructions with branch prediction look-up
JPH04156613A (en) * 1990-10-20 1992-05-29 Fujitsu Ltd instruction buffer device
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
EP0498654B1 (en) * 1991-02-08 2000-05-10 Fujitsu Limited Cache memory processing instruction data and data processor including the same
JP3181307B2 (en) * 1991-04-25 2001-07-03 株式会社東芝 Instruction processing unit
JP3441071B2 (en) * 1991-07-08 2003-08-25 セイコーエプソン株式会社 Microprocessor and data processing device
GB2263985B (en) * 1992-02-06 1995-06-14 Intel Corp Two stage window multiplexors for deriving variable length instructions from a stream of instructions
GB2263987B (en) * 1992-02-06 1996-03-06 Intel Corp End bit markers for instruction decode
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
US5386534A (en) * 1992-10-27 1995-01-31 Motorola, Inc. Data processing system for generating symmetrical range of addresses of instructing-address-value with the use of inverting sign value
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
US5659700A (en) * 1995-02-14 1997-08-19 Winbond Electronis Corporation Apparatus and method for generating a modulo address

Similar Documents

Publication Publication Date Title
WO1997013193B1 (en) Instruction buffer organization method and system
US5233696A (en) Microprocessor having precoder unit and main decoder unit operating in pipeline processing manner
US7493474B1 (en) Methods and apparatus for transforming, loading, and executing super-set instructions
EP0689128B1 (en) Computer instruction compression
US6141742A (en) Method for reducing number of bits used in storage of instruction address pointer values
US5826054A (en) Compressed Instruction format for use in a VLIW processor
US5878267A (en) Compressed instruction format for use in a VLIW processor and processor for processing such instructions
DE69631778T2 (en) FLEXIBLE IMPLEMENTATION OF A SYSTEM MANAGEMENT MODE IN A PROCESSOR
US4532590A (en) Data processing system having a unique address translation unit
US4701842A (en) Method and apparatus for avoiding excessive delay in a pipelined processor during the execution of a microbranch instruction
EP0363222A2 (en) Method and apparatus for concurrent dispatch of instructions to multiple functional units
US6009508A (en) System and method for addressing plurality of data values with a single address in a multi-value store on FIFO basis
CA1204218A (en) Data processing system with logical to physical address translation means
US6131152A (en) Planar cache layout and instruction stream therefor
GB2225884A (en) Locating rom code in computer memory space
US5390311A (en) Method and apparatus for accessing microcoded instructions in a computer system
KR940011594B1 (en) Multiprocessor controller having time shared control store
US5920713A (en) Instruction decoder including two-way emulation code branching
JPH03233630A (en) Information processor
US5752271A (en) Method and apparatus for using double precision addressable registers for single precision data
US6049897A (en) Multiple segment register use with different operand size
US20100115498A1 (en) Adaptive production of assembler
EP0945784A1 (en) Method for storing data structures in memory using address pointers, and apparatus
KR960024924A (en) Method and device for generating identification bit for Annex register file
US5155818A (en) Unconditional wide branch instruction acceleration