ATE256886T1 - METHOD AND DEVICE FOR BRANCH CONTROL IN A PIPELINE PROCESSOR - Google Patents

METHOD AND DEVICE FOR BRANCH CONTROL IN A PIPELINE PROCESSOR

Info

Publication number
ATE256886T1
ATE256886T1 AT00928970T AT00928970T ATE256886T1 AT E256886 T1 ATE256886 T1 AT E256886T1 AT 00928970 T AT00928970 T AT 00928970T AT 00928970 T AT00928970 T AT 00928970T AT E256886 T1 ATE256886 T1 AT E256886T1
Authority
AT
Austria
Prior art keywords
instruction
flags
branch
jump
affect
Prior art date
Application number
AT00928970T
Other languages
German (de)
Inventor
James Robert Howar Hakewill
Jon Sanders
Original Assignee
Arc Internat U S Holdings 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
Priority claimed from US09/418,663 external-priority patent/US6862563B1/en
Priority claimed from US09/523,871 external-priority patent/US6560754B1/en
Application filed by Arc Internat U S Holdings Inc filed Critical Arc Internat U S Holdings Inc
Application granted granted Critical
Publication of ATE256886T1 publication Critical patent/ATE256886T1/en

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/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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/30181Instruction operation extension or modification
    • 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
    • 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/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Abstract

An improved method and apparatus for controlling and implementing instructions in a pipelined central processing unit (CPU) or user-customizable microprocessor. In a first aspect of the invention, an improved method of permitting programmer control of jump instruction interlocks is disclosed. In one embodiment, a minimum of one cycle is required between an instruction that sets flags and a branch taken as a result of those flags; an interlock is used to detect a branch preceded by an instruction setting the flags to ensure that the instruction immediately preceding the branch can not affect the branch outcome. In a second embodiment, a jump instruction following a flag setting instruction whose flags may affect the outcome of the jump is stalled until all flags are set. In a second aspect of the invention, a method of synthesizing a processor design incorporating the aforementioned interlocks is disclosed. Exemplary gate logic synthesized using the aforementioned methods, and a computer system capable of implementing these methods, are also described.
AT00928970T 1999-05-13 2000-05-12 METHOD AND DEVICE FOR BRANCH CONTROL IN A PIPELINE PROCESSOR ATE256886T1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13425399P 1999-05-13 1999-05-13
US09/418,663 US6862563B1 (en) 1998-10-14 1999-10-14 Method and apparatus for managing the configuration and functionality of a semiconductor design
US09/523,871 US6560754B1 (en) 1999-05-13 2000-03-13 Method and apparatus for jump control in a pipelined processor
PCT/US2000/013030 WO2000070444A2 (en) 1999-05-13 2000-05-12 Method and apparatus for jump control in a pipelined processor

Publications (1)

Publication Number Publication Date
ATE256886T1 true ATE256886T1 (en) 2004-01-15

Family

ID=27384544

Family Applications (1)

Application Number Title Priority Date Filing Date
AT00928970T ATE256886T1 (en) 1999-05-13 2000-05-12 METHOD AND DEVICE FOR BRANCH CONTROL IN A PIPELINE PROCESSOR

Country Status (7)

Country Link
EP (1) EP1190303B1 (en)
CN (1) CN1167005C (en)
AT (1) ATE256886T1 (en)
AU (1) AU4712300A (en)
DE (1) DE60007312T2 (en)
TW (1) TW527563B (en)
WO (1) WO2000070444A2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4204522B2 (en) * 2004-07-07 2009-01-07 株式会社東芝 Microprocessor
GB2563587B (en) 2017-06-16 2021-01-06 Imagination Tech Ltd Scheduling tasks
GB2563589B (en) * 2017-06-16 2019-06-12 Imagination Tech Ltd Scheduling tasks
CN111026442B (en) * 2019-12-17 2022-08-02 天津国芯科技有限公司 Method and device for eliminating program unconditional jump overhead in CPU

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0365188B1 (en) * 1988-10-18 1996-09-18 Hewlett-Packard Company Central processor condition code method and apparatus

Also Published As

Publication number Publication date
EP1190303B1 (en) 2003-12-17
DE60007312D1 (en) 2004-01-29
TW527563B (en) 2003-04-11
CN1357122A (en) 2002-07-03
WO2000070444A3 (en) 2001-08-09
CN1167005C (en) 2004-09-15
AU4712300A (en) 2000-12-05
DE60007312T2 (en) 2004-10-14
EP1190303A2 (en) 2002-03-27
WO2000070444A2 (en) 2000-11-23

Similar Documents

Publication Publication Date Title
ATE323904T1 (en) METHOD AND APPARATUS FOR FLEXIBLE DATA TYPES
EP1046995A3 (en) Method and apparatus for debugging optimized code
EP1003095A3 (en) A computer system for executing branch instructions
EP0996059A3 (en) Class loading model
CA2152041A1 (en) An Apparatus for Executing a Plurality of Program Segments Having Different Object Code Types in a Single Program or Processor Environment
DE60001393T2 (en) PROCEDURE FOR MONITORING THE PROGRAM SEQUENCE
EP0938044A3 (en) Methods and apparatus for reducing interference in a branch history table of a microprocessor
EP1049011A3 (en) Method and apparatus for handling exceptions as normal control flow
DE60132633D1 (en) DIGITAL SIGNAL PROCESSOR DEVICE
EP1372064A3 (en) Processor and program conversion method
CN101344857B (en) Apparatus and method for accelerating Java translation
DE60007312D1 (en) METHOD AND DEVICE FOR BRANCH CONTROL IN A PIPELINE PROCESSOR
ATE251776T1 (en) METHOD AND APPARATUS FOR CONTROLLING A JUMP DELAY SLOT IN A PIPELINE PROCESSOR
EP1109095A3 (en) Instruction prefetch and branch prediction circuit
MY126211A (en) Locking source registers in a data processing apparatus
ATE461480T1 (en) INSTRUCTION SET ARCHITECTURE METHOD AND APPARATUS FOR PERFORMING PRIMARY AND SHADOW DIGITAL SIGNAL PROCESSING SUBCOMMANDS SIMULTANEOUSLY
ATE284556T1 (en) METHOD AND APPARATUS FOR EXECUTING CODE BREAKPOINT INSTRUCTIONS IN A PROCESSOR
WO2002050666A3 (en) Method and apparatus for processing program loops in parallel
ATE433152T1 (en) AUDIO PROCESSING SYSTEM
EP0889394A3 (en) Program control method
ATE418760T1 (en) METHOD AND COMPUTER SYSTEM FOR EVENT TREATMENT
DE60041509D1 (en) A method and apparatus for program shrinking in an open-pipelined processor
EP1372065A3 (en) System large scale integrated circuit (LSI), method of designing the same, and program therefor
WO2005033873A3 (en) Method and system for processing a sequence of instructions
EP1069499A3 (en) Data processing apparatus and method for simultaneously executing plural instructions

Legal Events

Date Code Title Description
RER Ceased as to paragraph 5 lit. 3 law introducing patent treaties