ATE256886T1 - METHOD AND DEVICE FOR BRANCH CONTROL IN A PIPELINE PROCESSOR - Google Patents
METHOD AND DEVICE FOR BRANCH CONTROL IN A PIPELINE PROCESSORInfo
- 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
Links
- 238000000034 method Methods 0.000 title abstract 6
- 230000002194 synthesizing effect Effects 0.000 abstract 1
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/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- 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/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent 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.
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)
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)
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 |
-
2000
- 2000-05-12 EP EP00928970A patent/EP1190303B1/en not_active Expired - Lifetime
- 2000-05-12 CN CNB008084599A patent/CN1167005C/en not_active Expired - Fee Related
- 2000-05-12 DE DE60007312T patent/DE60007312T2/en not_active Expired - Lifetime
- 2000-05-12 AU AU47123/00A patent/AU4712300A/en not_active Abandoned
- 2000-05-12 AT AT00928970T patent/ATE256886T1/en not_active IP Right Cessation
- 2000-05-12 WO PCT/US2000/013030 patent/WO2000070444A2/en active IP Right Grant
- 2000-07-05 TW TW089109197A patent/TW527563B/en not_active IP Right Cessation
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 |