Movatterモバイル変換


[0]ホーム

URL:


US20050198479A1 - Apparatus and method for handling BTAC branches that wrap across instruction cache lines - Google Patents

Apparatus and method for handling BTAC branches that wrap across instruction cache lines
Download PDF

Info

Publication number
US20050198479A1
US20050198479A1US09/906,381US90638101AUS2005198479A1US 20050198479 A1US20050198479 A1US 20050198479A1US 90638101 AUS90638101 AUS 90638101AUS 2005198479 A1US2005198479 A1US 2005198479A1
Authority
US
United States
Prior art keywords
instruction
address
cache
branch
cache line
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
US09/906,381
Other versions
US7203824B2 (en
Inventor
Brent Bean
G. Henry
Thomas McDonald
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.)
IP First LLC
Original Assignee
IP First LLC
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/898,583external-prioritypatent/US7162619B2/en
Assigned to IP FIRST, L.L.C.reassignmentIP FIRST, L.L.C.ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: HENRY, G. GLENN, BEAN, BRENT, MCDONALD, THOMAS C.
Priority to US09/906,381priorityCriticalpatent/US7203824B2/en
Application filed by IP First LLCfiledCriticalIP First LLC
Priority to TW90127270Aprioritypatent/TW564369B/en
Priority to CN 02107138prioritypatent/CN1270234C/en
Priority to US11/208,302prioritypatent/US7234045B2/en
Publication of US20050198479A1publicationCriticalpatent/US20050198479A1/en
Assigned to IP-FIRST, LLCreassignmentIP-FIRST, LLCASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: BEAN, BRENT, MCDONALD, THOMAS C., HENRY, G. GLENN
Publication of US7203824B2publicationCriticalpatent/US7203824B2/en
Application grantedgrantedCritical
Adjusted expirationlegal-statusCritical
Expired - Lifetimelegal-statusCriticalCurrent

Links

Images

Classifications

Definitions

Landscapes

Abstract

A branch control apparatus in a microprocessor. The apparatus includes a branch target address cache (BTAC) that caches indications of whether a branch instruction wraps across two cache lines. When an instruction cache fetch address of a first cache line containing the first part of the branch instruction hits in the BTAC, the BTAC outputs a target address of the branch instruction and indicates the wrap condition. The target address is stored in a register. The next sequential fetch address selects a second cache line containing the second part of the branch instruction. After the two cache lines containing the branch instruction are fetched, the target address from the register is provided to the instruction cache in order to fetch a third cache line containing a target instruction of the branch. The three cache lines are stored in order in an instruction buffer for decoding.

Description

Claims (36)

1. A branch control apparatus in a microprocessor having an instruction cache, coupled to an address bus, for providing cache lines to an instruction buffer, the apparatus comprising:
a target address of a branch instruction, said target address provided by a branch target address cache (BTAC);
a wrap signal, originating directly from said BTAC, for indicating whether said branch instruction wraps across first and second cache lines of said instruction cache; and
an address register, coupled to said BTAC, for storing said target address;
wherein if said wrap signal indicates said branch instruction wraps across said first and second cache lines, said address register provides said target address on the address bus to the instruction cache to select a third cache line, said third cache line containing a target instruction of said branch instruction.
12. A pipelined microprocessor, comprising:
an instruction cache, coupled to an address bus configured to receive a first fetch address for selecting a first cache line;
a branch target address cache (BTAC), coupled to said address bus, for storing and directly providing a wrap indicator for indicating whether a branch instruction wraps beyond said first cache line;
an address register, coupled to said BTAC, for storing a target address of said branch instruction, said target address provided by said BTAC; and
a multiplexer, coupled to receive said target address from said address register and coupled to receive a second fetch address that specifies a second cache line containing a portion of said branch instruction wrapping beyond said first cache line, wherein if said wrap indicator is true, said multiplexer selects said second fetch address for provision onto said address bus and subsequently
selects said target address from said address register for provision onto said address bus, after selecting said second fetch address for provision onto said address bus.
19. A branch control apparatus in a microprocessor, comprising:
a branch target address cache (BTAC), for caching indications of whether previously executed branch instructions wrap across two cache lines and for directly providing said indications;
a register, coupled to said BTAC, for receiving from said BTAC a target address of one of said previously executed instructions stored therein; and
control logic, coupled to said BTAC, for receiving one of said indications associated with said one of said previously executed branch instructions;
wherein if said one of said indications indicates said one of said previously executed branch instructions wraps across two cache lines, said control logic causes the microprocessor to branch to said target address, after causing said two cache lines containing said one of said previously executed branch instructions to be fetched.
25. A microprocessor branch control apparatus, comprising:
an incrementer, coupled to an instruction cache address bus, for providing a first fetch address on said address bus, said first fetch address selecting a first cache line containing a first portion of a branch instruction;
a branch target address cache (BTAC), coupled to said address bus, for providing a target address of said branch instruction in response to said first fetch address, and for caching and directly providing an indication of whether said branch instruction wraps beyond said first cache line; and
an address register, coupled to said BTAC, for storing said target address if said BTAC indicates said branch instruction wraps beyond said first cache line;
wherein said incrementer provides a second fetch address on said address bus, said second fetch address selecting a second cache line containing a second portion of said branch instruction;
wherein said address register provides said target address on said address bus, said target address selecting a third cache line containing a target instruction of said branch instruction.
28. A method for performing branches in a microprocessor with an instruction cache, the method comprising:
storing in a branch target address cache an indication of whether a previously executed branch instruction wraps beyond a first cache line containing at least a portion of said branch instruction, and said branch target address cache directly providing the indication;
applying a first fetch address to the instruction cache for selecting said first cache line containing at least a portion of a branch instruction, after said storing said indication;
providing a target address of said branch instruction and said indication in response to said first fetch address;
determining whether said branch instruction wraps beyond said first cache line based on said indication;
storing said target address in a register if said branch instruction wraps beyond said first cache line;
applying a second fetch address to the instruction cache, if said branch instruction wraps beyond said first cache line, for selecting a second cache line containing a remainder of said branch instruction; and
providing said target address from said register to the instruction cache for selecting a third cache line containing a target instruction of said branch instruction.
US09/906,3812001-07-032001-07-16Apparatus and method for handling BTAC branches that wrap across instruction cache linesExpired - LifetimeUS7203824B2 (en)

Priority Applications (4)

Application NumberPriority DateFiling DateTitle
US09/906,381US7203824B2 (en)2001-07-032001-07-16Apparatus and method for handling BTAC branches that wrap across instruction cache lines
TW90127270ATW564369B (en)2001-07-162001-11-02Apparatus and method for handling BTAC branches that wrap across instruction cache lines
CN 02107138CN1270234C (en)2001-07-162002-03-11Device and method of branch for processing branch goal address high speed area covering crossed instruction high speed line
US11/208,302US7234045B2 (en)2001-07-032005-08-19Apparatus and method for handling BTAC branches that wrap across instruction cache lines

Applications Claiming Priority (2)

Application NumberPriority DateFiling DateTitle
US09/898,583US7162619B2 (en)2001-07-032001-07-03Apparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer
US09/906,381US7203824B2 (en)2001-07-032001-07-16Apparatus and method for handling BTAC branches that wrap across instruction cache lines

Related Parent Applications (1)

Application NumberTitlePriority DateFiling Date
US09/898,583Continuation-In-PartUS7162619B2 (en)2001-07-032001-07-03Apparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer

Related Child Applications (1)

Application NumberTitlePriority DateFiling Date
US11/208,302ContinuationUS7234045B2 (en)2001-07-032005-08-19Apparatus and method for handling BTAC branches that wrap across instruction cache lines

Publications (2)

Publication NumberPublication Date
US20050198479A1true US20050198479A1 (en)2005-09-08
US7203824B2 US7203824B2 (en)2007-04-10

Family

ID=37943865

Family Applications (1)

Application NumberTitlePriority DateFiling Date
US09/906,381Expired - LifetimeUS7203824B2 (en)2001-07-032001-07-16Apparatus and method for handling BTAC branches that wrap across instruction cache lines

Country Status (1)

CountryLink
US (1)US7203824B2 (en)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20020188833A1 (en)*2001-05-042002-12-12Ip First LlcDual call/return stack branch prediction system
US20020194461A1 (en)*2001-05-042002-12-19Ip First LlcSpeculative branch target address cache
US20020194464A1 (en)*2001-05-042002-12-19Ip First LlcSpeculative branch target address cache with selective override by seconday predictor based on branch instruction type
US20020194460A1 (en)*2001-05-042002-12-19Ip First LlcApparatus, system and method for detecting and correcting erroneous speculative branch target address cache branches
US20040030866A1 (en)*2002-04-262004-02-12Ip-First, LlcApparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
US20040139301A1 (en)*2003-01-142004-07-15Ip-First, Llc.Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US20040139281A1 (en)*2003-01-142004-07-15Ip-First, Llc.Apparatus and method for efficiently updating branch target address cache
US20040139292A1 (en)*2003-01-142004-07-15Ip-First, Llc.Apparatus and method for resolving deadlock fetch conditions involving branch target address cache
US20040143709A1 (en)*2003-01-162004-07-22Ip-First, Llc.Apparatus and method for invalidation of redundant branch target address cache entries
US20040143727A1 (en)*2003-01-162004-07-22Ip-First, Llc.Method and apparatus for correcting an internal call/return stack in a microprocessor that detects from multiple pipeline stages incorrect speculative update of the call/return stack
US20050044343A1 (en)*2001-07-032005-02-24Ip-First, Llc.Apparatus and method for selectively accessing disparate instruction buffer stages based on branch target address cache hit and instruction stage wrap
US20050076193A1 (en)*2003-09-082005-04-07Ip-First, Llc.Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
US20050114636A1 (en)*2001-05-042005-05-26Ip-First, Llc.Apparatus and method for target address replacement in speculative branch target address cache
US20050132175A1 (en)*2001-05-042005-06-16Ip-First, Llc.Speculative hybrid branch direction predictor
US20050198481A1 (en)*2001-07-032005-09-08Ip First LlcApparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer
US20050268076A1 (en)*2001-05-042005-12-01Via Technologies, Inc.Variable group associativity branch target address cache delivering multiple target addresses per cache line
US7234045B2 (en)2001-07-032007-06-19Ip-First, LlcApparatus and method for handling BTAC branches that wrap across instruction cache lines
EP2693333A4 (en)*2011-03-312015-08-05Renesas Electronics Corp PROCESSOR AND METHOD OF PROCESSING INSTRUCTION THEREFOR
WO2016154115A1 (en)*2015-03-202016-09-29Mill Computing, Inc.Cpu security mechanisms employing thread-specific protection domains
US20170075692A1 (en)*2015-09-112017-03-16Qualcomm IncorporatedSelective flushing of instructions in an instruction pipeline in a processor back to an execution-resolved target address, in response to a precise interrupt
US9747218B2 (en)2015-03-202017-08-29Mill Computing, Inc.CPU security mechanisms employing thread-specific protection domains
US20180060073A1 (en)*2016-08-302018-03-01Advanced Micro Devices, Inc.Branch target buffer compression
CN110336803A (en)*2019-06-212019-10-15中国科学院软件研究所 A Security Evaluation Method of Branch Prediction Unit of Target Host
US20220100520A1 (en)*2020-09-262022-03-31Intel CorporationBranch prefetch mechanisms for mitigating frontend branch resteers
US12182317B2 (en)2021-02-132024-12-31Intel CorporationRegion-based deterministic memory safety
US12235791B2 (en)2021-08-232025-02-25Intel CorporationLoop driven region based frontend translation control for performant and secure data-space guided micro-sequencing

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN101449256B (en)2006-04-122013-12-25索夫特机械公司Apparatus and method for processing instruction matrix specifying parallel and dependent operations
EP2527972A3 (en)2006-11-142014-08-06Soft Machines, Inc.Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes
KR101685247B1 (en)*2010-09-172016-12-09소프트 머신즈, 인크.Single cycle multi-branch prediction including shadow cache for early far branch prediction
US9766893B2 (en)2011-03-252017-09-19Intel CorporationExecuting instruction sequence code blocks by using virtual cores instantiated by partitionable engines
KR101966712B1 (en)2011-03-252019-04-09인텔 코포레이션Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
EP2710480B1 (en)2011-05-202018-06-20Intel CorporationAn interconnect structure to support the execution of instruction sequences by a plurality of engines
US9940134B2 (en)2011-05-202018-04-10Intel CorporationDecentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines
US10191746B2 (en)2011-11-222019-01-29Intel CorporationAccelerated code optimizer for a multiengine microprocessor
CN104040491B (en)2011-11-222018-06-12英特尔公司 Microprocessor-accelerated code optimizer
US10140138B2 (en)2013-03-152018-11-27Intel CorporationMethods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9569216B2 (en)2013-03-152017-02-14Soft Machines, Inc.Method for populating a source view data structure by using register template snapshots
WO2014150991A1 (en)2013-03-152014-09-25Soft Machines, Inc.A method for implementing a reduced size register view data structure in a microprocessor
US9811342B2 (en)2013-03-152017-11-07Intel CorporationMethod for performing dual dispatch of blocks and half blocks
EP2972845B1 (en)2013-03-152021-07-07Intel CorporationA method for executing multithreaded instructions grouped onto blocks
US9904625B2 (en)2013-03-152018-02-27Intel CorporationMethods, systems and apparatus for predicting the way of a set associative cache
WO2014151043A1 (en)2013-03-152014-09-25Soft Machines, Inc.A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
WO2014150806A1 (en)2013-03-152014-09-25Soft Machines, Inc.A method for populating register view data structure by using register template snapshots
US10275255B2 (en)2013-03-152019-04-30Intel CorporationMethod for dependency broadcasting through a source organized source view data structure

Citations (88)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US4181942A (en)*1978-03-311980-01-01International Business Machines CorporationProgram branching method and apparatus
US4200927A (en)*1978-01-031980-04-29International Business Machines CorporationMulti-instruction stream branch processing mechanism
US4860197A (en)*1987-07-311989-08-22Prime Computer, Inc.Branch cache system with instruction boundary determination independent of parcel boundary
US5142634A (en)*1989-02-031992-08-25Digital Equipment CorporationBranch prediction
US5163140A (en)*1990-02-261992-11-10Nexgen MicrosystemsTwo-level branch prediction cache
US5313634A (en)*1992-07-281994-05-17International Business Machines CorporationComputer system branch prediction of subroutine returns
US5353421A (en)*1990-10-091994-10-04International Business Machines CorporationMulti-prediction branch prediction mechanism
US5355459A (en)*1988-03-011994-10-11Mitsubishi Denki Kabushiki KaishaPipeline processor, with return address stack storing only pre-return processed addresses for judging validity and correction of unprocessed address
US5394530A (en)*1991-03-151995-02-28Nec CorporationArrangement for predicting a branch target address in the second iteration of a short loop
US5404467A (en)*1992-02-271995-04-04Wang Laboratories, Inc.CPU having pipelined instruction unit and effective address calculation unit with retained virtual address capability
US5434985A (en)*1992-08-111995-07-18International Business Machines CorporationSimultaneous prediction of multiple branches for superscalar processing
US5513330A (en)*1990-10-091996-04-30Nexgen, Inc.Apparatus for superscalar instruction predecoding using cached instruction lengths
US5530825A (en)*1994-04-151996-06-25Motorola, Inc.Data processor with branch target address cache and method of operation
US5553246A (en)*1992-10-301996-09-03Nec CorporationShared bus mediation system for multiprocessor system
US5604877A (en)*1994-01-041997-02-18Intel CorporationMethod and apparatus for resolving return from subroutine instructions in a computer processor
US5623614A (en)*1993-09-171997-04-22Advanced Micro Devices, Inc.Branch prediction cache with multiple entries for returns having multiple callers
US5623615A (en)*1994-08-041997-04-22International Business Machines CorporationCircuit and method for reducing prefetch cycles on microprocessors
US5634103A (en)*1995-11-091997-05-27International Business Machines CorporationMethod and system for minimizing branch misprediction penalties within a processor
US5687349A (en)*1995-04-071997-11-11Motorola, Inc.Data processor with branch target address cache and subroutine return address cache and method of operation
US5687360A (en)*1995-04-281997-11-11Intel CorporationBranch predictor using multiple prediction heuristics and a heuristic identifier in the branch instruction
US5706491A (en)*1994-10-181998-01-06Cyrix CorporationBranch processing unit with a return stack including repair using pointers from different pipe stages
US5721855A (en)*1994-03-011998-02-24Intel CorporationMethod for pipeline processing of instructions by controlling access to a reorder buffer using a register file outside the reorder buffer
US5734881A (en)*1995-12-151998-03-31Cyrix CorporationDetecting short branches in a prefetch buffer using target location information in a branch target cache
US5752069A (en)*1995-08-311998-05-12Advanced Micro Devices, Inc.Superscalar microprocessor employing away prediction structure
US5761723A (en)*1994-02-041998-06-02Motorola, Inc.Data processor with branch prediction and method of operation
US5805877A (en)*1996-09-231998-09-08Motorola, Inc.Data processor with branch target address cache and method of operation
US5812839A (en)*1994-01-031998-09-22Intel CorporationDual prediction branch system having two step of branch recovery process which activated only when mispredicted branch is the oldest instruction in the out-of-order unit
US5828901A (en)*1995-12-211998-10-27Cirrus Logic, Inc.Method and apparatus for placing multiple frames of data in a buffer in a direct memory access transfer
US5832289A (en)*1991-09-201998-11-03Shaw; Venson M.System for estimating worst time duration required to execute procedure calls and looking ahead/preparing for the next stack operation of the forthcoming procedure calls
US5850543A (en)*1996-10-301998-12-15Texas Instruments IncorporatedMicroprocessor with speculative instruction pipelining storing a speculative register value within branch target buffer for use in speculatively executing instructions after a return
US5850532A (en)*1997-03-101998-12-15Advanced Micro Devices, Inc.Invalid instruction scan unit for detecting invalid predecode data corresponding to instructions being fetched
US5864707A (en)*1995-12-111999-01-26Advanced Micro Devices, Inc.Superscalar microprocessor configured to predict return addresses from a return stack storage
US5867701A (en)*1995-06-121999-02-02Intel CorporationSystem for inserting a supplemental micro-operation flow into a macroinstruction-generated micro-operation flow
US5881265A (en)*1989-02-241999-03-09Advanced Micro Devices, Inc.Computer processor with distributed pipeline control that allows functional units to complete operations out of order while maintaining precise interrupts
US5881260A (en)*1998-02-091999-03-09Hewlett-Packard CompanyMethod and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction
US5931944A (en)*1997-12-231999-08-03Intel CorporationBranch instruction handling in a self-timed marking system
US5948100A (en)*1997-03-181999-09-07Industrial Technology Research InstituteBranch prediction and fetch mechanism for variable length instruction, superscalar pipelined processor
US5961629A (en)*1991-07-081999-10-05Seiko Epson CorporationHigh performance, superscalar-based computer system with out-of-order instruction execution
US5964868A (en)*1996-05-151999-10-12Intel CorporationMethod and apparatus for implementing a speculative return stack buffer
US5968169A (en)*1995-06-071999-10-19Advanced Micro Devices, Inc.Superscalar microprocessor stack structure for judging validity of predicted subroutine return addresses
US5974543A (en)*1998-01-231999-10-26International Business Machines CorporationApparatus and method for performing subroutine call and return operations
US5978909A (en)*1997-11-261999-11-02Intel CorporationSystem for speculative branch target prediction having a dynamic prediction history buffer and a static prediction history buffer
US6035391A (en)*1996-12-312000-03-07Stmicroelectronics, Inc.Floating point operation system which determines an exchange instruction and updates a reference table which maps logical registers to physical registers
US6041405A (en)*1997-12-182000-03-21Advanced Micro Devices, Inc.Instruction length prediction using an instruction length pattern detector
US6044459A (en)*1996-11-062000-03-28Hyundai Electronics Industries Co., Ltd.Branch prediction apparatus having branch target buffer for effectively processing branch instruction
US6081884A (en)*1998-01-052000-06-27Advanced Micro Devices, Inc.Embedding two different instruction sets within a single long instruction word using predecode bits
US6085311A (en)*1997-06-112000-07-04Advanced Micro Devices, Inc.Instruction alignment unit employing dual instruction queues for high frequency instruction dispatch
US6088793A (en)*1996-12-302000-07-11Intel CorporationMethod and apparatus for branch execution on a multiple-instruction-set-architecture microprocessor
US6101595A (en)*1997-06-112000-08-08Advanced Micro Devices, Inc.Fetching instructions from an instruction cache using sequential way prediction
US6108773A (en)*1998-03-312000-08-22Ip-First, LlcApparatus and method for branch target address calculation during instruction decode
US6122729A (en)*1997-05-132000-09-19Advanced Micro Devices, Inc.Prefetch buffer which stores a pointer indicating an initial predecode position
US6134654A (en)*1998-09-162000-10-17Sun Microsystems, Inc.Bi-level branch target prediction scheme with fetch address prediction
US6151671A (en)*1998-02-202000-11-21Intel CorporationSystem and method of maintaining and utilizing multiple return stack buffers
US6157988A (en)*1997-08-012000-12-05Micron Technology, Inc.Method and apparatus for high performance branching in pipelined microsystems
US6170054B1 (en)*1998-11-162001-01-02Intel CorporationMethod and apparatus for predicting target addresses for return from subroutine instructions utilizing a return address cache
US6175897B1 (en)*1998-12-282001-01-16Bull Hn Information Systems Inc.Synchronization of branch cache searches and allocation/modification/deletion of branch cache
US6185676B1 (en)*1997-09-302001-02-06Intel CorporationMethod and apparatus for performing early branch prediction in a microprocessor
US6250821B1 (en)*1993-06-302001-06-26Intel CorporationMethod and apparatus for processing branch instructions in an instruction buffer
US6256727B1 (en)*1998-05-122001-07-03International Business Machines CorporationMethod and system for fetching noncontiguous instructions in a single clock cycle
US6260138B1 (en)*1998-07-172001-07-10Sun Microsystems, Inc.Method and apparatus for branch instruction processing in a processor
US6279105B1 (en)*1998-10-152001-08-21International Business Machines CorporationPipelined two-cycle branch target address cache
US6279106B1 (en)*1998-09-212001-08-21Advanced Micro Devices, Inc.Method for reducing branch target storage by calculating direct branch targets on the fly
US6308259B1 (en)*1998-08-242001-10-23Advanced Micro Devices, Inc.Instruction queue evaluating dependency vector in portions during different clock phases
US6314514B1 (en)*1999-03-182001-11-06Ip-First, LlcMethod and apparatus for correcting an internal call/return stack in a microprocessor that speculatively executes call and return instructions
US6321321B1 (en)*1999-06-212001-11-20Vlsi Technology, Inc.Set-associative cache-management method with parallel and single-set sequential reads
US6351796B1 (en)*2000-02-222002-02-26Hewlett-Packard CompanyMethods and apparatus for increasing the efficiency of a higher level cache by selectively performing writes to the higher level cache
US6457120B1 (en)*1999-11-012002-09-24International Business Machines CorporationProcessor and method including a cache having confirmation bits for improving address predictable branch instruction target predictions
US20020188833A1 (en)*2001-05-042002-12-12Ip First LlcDual call/return stack branch prediction system
US20020194461A1 (en)*2001-05-042002-12-19Ip First LlcSpeculative branch target address cache
US20020194460A1 (en)*2001-05-042002-12-19Ip First LlcApparatus, system and method for detecting and correcting erroneous speculative branch target address cache branches
US6502185B1 (en)*2000-01-032002-12-31Advanced Micro Devices, Inc.Pipeline elements which verify predecode information
US6560696B1 (en)*1999-12-292003-05-06Intel CorporationReturn register stack target predictor
US6601161B2 (en)*1998-12-302003-07-29Intel CorporationMethod and system for branch target prediction using path information
US20040030866A1 (en)*2002-04-262004-02-12Ip-First, LlcApparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
US6725357B1 (en)*1999-05-032004-04-20Stmicroelectronics S.A.Making available instructions in double slot FIFO queue coupled to execution units to third execution unit at substantially the same time
US6748441B1 (en)*1999-12-022004-06-08Microsoft CorporationData carousel receiving and caching
US6754808B1 (en)*2000-09-292004-06-22Intel CorporationValid bit generation and tracking in a pipelined processor
US20040139292A1 (en)*2003-01-142004-07-15Ip-First, Llc.Apparatus and method for resolving deadlock fetch conditions involving branch target address cache
US20040139301A1 (en)*2003-01-142004-07-15Ip-First, Llc.Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US20040139281A1 (en)*2003-01-142004-07-15Ip-First, Llc.Apparatus and method for efficiently updating branch target address cache
US20040143709A1 (en)*2003-01-162004-07-22Ip-First, Llc.Apparatus and method for invalidation of redundant branch target address cache entries
US20040143727A1 (en)*2003-01-162004-07-22Ip-First, Llc.Method and apparatus for correcting an internal call/return stack in a microprocessor that detects from multiple pipeline stages incorrect speculative update of the call/return stack
US6823444B1 (en)*2001-07-032004-11-23Ip-First, LlcApparatus and method for selectively accessing disparate instruction buffer stages based on branch target address cache hit and instruction stage wrap
US20050076193A1 (en)*2003-09-082005-04-07Ip-First, Llc.Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
US6886093B2 (en)*2001-05-042005-04-26Ip-First, LlcSpeculative hybrid branch direction predictor
US6895498B2 (en)*2001-05-042005-05-17Ip-First, LlcApparatus and method for target address replacement in speculative branch target address cache
US6898699B2 (en)*2001-12-212005-05-24Intel CorporationReturn address stack including speculative return address buffer with back pointers
US6968444B1 (en)*2002-11-042005-11-22Advanced Micro Devices, Inc.Microprocessor employing a fixed position dispatch unit

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US6233676B1 (en)1999-03-182001-05-15Ip-First, L.L.C.Apparatus and method for fast forward branch
US7165169B2 (en)2001-05-042007-01-16Ip-First, LlcSpeculative branch target address cache with selective override by secondary predictor based on branch instruction type

Patent Citations (93)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US4200927A (en)*1978-01-031980-04-29International Business Machines CorporationMulti-instruction stream branch processing mechanism
US4181942A (en)*1978-03-311980-01-01International Business Machines CorporationProgram branching method and apparatus
US4860197A (en)*1987-07-311989-08-22Prime Computer, Inc.Branch cache system with instruction boundary determination independent of parcel boundary
US5355459A (en)*1988-03-011994-10-11Mitsubishi Denki Kabushiki KaishaPipeline processor, with return address stack storing only pre-return processed addresses for judging validity and correction of unprocessed address
US5142634A (en)*1989-02-031992-08-25Digital Equipment CorporationBranch prediction
US5881265A (en)*1989-02-241999-03-09Advanced Micro Devices, Inc.Computer processor with distributed pipeline control that allows functional units to complete operations out of order while maintaining precise interrupts
US5163140A (en)*1990-02-261992-11-10Nexgen MicrosystemsTwo-level branch prediction cache
US5353421A (en)*1990-10-091994-10-04International Business Machines CorporationMulti-prediction branch prediction mechanism
US5513330A (en)*1990-10-091996-04-30Nexgen, Inc.Apparatus for superscalar instruction predecoding using cached instruction lengths
US5394530A (en)*1991-03-151995-02-28Nec CorporationArrangement for predicting a branch target address in the second iteration of a short loop
US5961629A (en)*1991-07-081999-10-05Seiko Epson CorporationHigh performance, superscalar-based computer system with out-of-order instruction execution
US5832289A (en)*1991-09-201998-11-03Shaw; Venson M.System for estimating worst time duration required to execute procedure calls and looking ahead/preparing for the next stack operation of the forthcoming procedure calls
US5404467A (en)*1992-02-271995-04-04Wang Laboratories, Inc.CPU having pipelined instruction unit and effective address calculation unit with retained virtual address capability
US5313634A (en)*1992-07-281994-05-17International Business Machines CorporationComputer system branch prediction of subroutine returns
US5434985A (en)*1992-08-111995-07-18International Business Machines CorporationSimultaneous prediction of multiple branches for superscalar processing
US5553246A (en)*1992-10-301996-09-03Nec CorporationShared bus mediation system for multiprocessor system
US6250821B1 (en)*1993-06-302001-06-26Intel CorporationMethod and apparatus for processing branch instructions in an instruction buffer
US5623614A (en)*1993-09-171997-04-22Advanced Micro Devices, Inc.Branch prediction cache with multiple entries for returns having multiple callers
US5812839A (en)*1994-01-031998-09-22Intel CorporationDual prediction branch system having two step of branch recovery process which activated only when mispredicted branch is the oldest instruction in the out-of-order unit
US5604877A (en)*1994-01-041997-02-18Intel CorporationMethod and apparatus for resolving return from subroutine instructions in a computer processor
US5768576A (en)*1994-01-041998-06-16Intel CorporationMethod and apparatus for predicting and handling resolving return from subroutine instructions in a computer processor
US5761723A (en)*1994-02-041998-06-02Motorola, Inc.Data processor with branch prediction and method of operation
US5721855A (en)*1994-03-011998-02-24Intel CorporationMethod for pipeline processing of instructions by controlling access to a reorder buffer using a register file outside the reorder buffer
US5530825A (en)*1994-04-151996-06-25Motorola, Inc.Data processor with branch target address cache and method of operation
US5623615A (en)*1994-08-041997-04-22International Business Machines CorporationCircuit and method for reducing prefetch cycles on microprocessors
US5706491A (en)*1994-10-181998-01-06Cyrix CorporationBranch processing unit with a return stack including repair using pointers from different pipe stages
US5687349A (en)*1995-04-071997-11-11Motorola, Inc.Data processor with branch target address cache and subroutine return address cache and method of operation
US5687360A (en)*1995-04-281997-11-11Intel CorporationBranch predictor using multiple prediction heuristics and a heuristic identifier in the branch instruction
US5968169A (en)*1995-06-071999-10-19Advanced Micro Devices, Inc.Superscalar microprocessor stack structure for judging validity of predicted subroutine return addresses
US5867701A (en)*1995-06-121999-02-02Intel CorporationSystem for inserting a supplemental micro-operation flow into a macroinstruction-generated micro-operation flow
US5752069A (en)*1995-08-311998-05-12Advanced Micro Devices, Inc.Superscalar microprocessor employing away prediction structure
US5634103A (en)*1995-11-091997-05-27International Business Machines CorporationMethod and system for minimizing branch misprediction penalties within a processor
US5864707A (en)*1995-12-111999-01-26Advanced Micro Devices, Inc.Superscalar microprocessor configured to predict return addresses from a return stack storage
US5734881A (en)*1995-12-151998-03-31Cyrix CorporationDetecting short branches in a prefetch buffer using target location information in a branch target cache
US5828901A (en)*1995-12-211998-10-27Cirrus Logic, Inc.Method and apparatus for placing multiple frames of data in a buffer in a direct memory access transfer
US5964868A (en)*1996-05-151999-10-12Intel CorporationMethod and apparatus for implementing a speculative return stack buffer
US5805877A (en)*1996-09-231998-09-08Motorola, Inc.Data processor with branch target address cache and method of operation
US5850543A (en)*1996-10-301998-12-15Texas Instruments IncorporatedMicroprocessor with speculative instruction pipelining storing a speculative register value within branch target buffer for use in speculatively executing instructions after a return
US6044459A (en)*1996-11-062000-03-28Hyundai Electronics Industries Co., Ltd.Branch prediction apparatus having branch target buffer for effectively processing branch instruction
US6088793A (en)*1996-12-302000-07-11Intel CorporationMethod and apparatus for branch execution on a multiple-instruction-set-architecture microprocessor
US6035391A (en)*1996-12-312000-03-07Stmicroelectronics, Inc.Floating point operation system which determines an exchange instruction and updates a reference table which maps logical registers to physical registers
US5850532A (en)*1997-03-101998-12-15Advanced Micro Devices, Inc.Invalid instruction scan unit for detecting invalid predecode data corresponding to instructions being fetched
US5948100A (en)*1997-03-181999-09-07Industrial Technology Research InstituteBranch prediction and fetch mechanism for variable length instruction, superscalar pipelined processor
US6122729A (en)*1997-05-132000-09-19Advanced Micro Devices, Inc.Prefetch buffer which stores a pointer indicating an initial predecode position
US6085311A (en)*1997-06-112000-07-04Advanced Micro Devices, Inc.Instruction alignment unit employing dual instruction queues for high frequency instruction dispatch
US6101595A (en)*1997-06-112000-08-08Advanced Micro Devices, Inc.Fetching instructions from an instruction cache using sequential way prediction
US6157988A (en)*1997-08-012000-12-05Micron Technology, Inc.Method and apparatus for high performance branching in pipelined microsystems
US6647467B1 (en)*1997-08-012003-11-11Micron Technology, Inc.Method and apparatus for high performance branching in pipelined microsystems
US6185676B1 (en)*1997-09-302001-02-06Intel CorporationMethod and apparatus for performing early branch prediction in a microprocessor
US5978909A (en)*1997-11-261999-11-02Intel CorporationSystem for speculative branch target prediction having a dynamic prediction history buffer and a static prediction history buffer
US6041405A (en)*1997-12-182000-03-21Advanced Micro Devices, Inc.Instruction length prediction using an instruction length pattern detector
US5931944A (en)*1997-12-231999-08-03Intel CorporationBranch instruction handling in a self-timed marking system
US6081884A (en)*1998-01-052000-06-27Advanced Micro Devices, Inc.Embedding two different instruction sets within a single long instruction word using predecode bits
US5974543A (en)*1998-01-231999-10-26International Business Machines CorporationApparatus and method for performing subroutine call and return operations
US5881260A (en)*1998-02-091999-03-09Hewlett-Packard CompanyMethod and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction
US6151671A (en)*1998-02-202000-11-21Intel CorporationSystem and method of maintaining and utilizing multiple return stack buffers
US6374350B1 (en)*1998-02-202002-04-16Intel CorporationSystem and method of maintaining and utilizing multiple return stack buffers
US6108773A (en)*1998-03-312000-08-22Ip-First, LlcApparatus and method for branch target address calculation during instruction decode
US6256727B1 (en)*1998-05-122001-07-03International Business Machines CorporationMethod and system for fetching noncontiguous instructions in a single clock cycle
US6260138B1 (en)*1998-07-172001-07-10Sun Microsystems, Inc.Method and apparatus for branch instruction processing in a processor
US6308259B1 (en)*1998-08-242001-10-23Advanced Micro Devices, Inc.Instruction queue evaluating dependency vector in portions during different clock phases
US6134654A (en)*1998-09-162000-10-17Sun Microsystems, Inc.Bi-level branch target prediction scheme with fetch address prediction
US6279106B1 (en)*1998-09-212001-08-21Advanced Micro Devices, Inc.Method for reducing branch target storage by calculating direct branch targets on the fly
US6279105B1 (en)*1998-10-152001-08-21International Business Machines CorporationPipelined two-cycle branch target address cache
US6170054B1 (en)*1998-11-162001-01-02Intel CorporationMethod and apparatus for predicting target addresses for return from subroutine instructions utilizing a return address cache
US6175897B1 (en)*1998-12-282001-01-16Bull Hn Information Systems Inc.Synchronization of branch cache searches and allocation/modification/deletion of branch cache
US6601161B2 (en)*1998-12-302003-07-29Intel CorporationMethod and system for branch target prediction using path information
US6314514B1 (en)*1999-03-182001-11-06Ip-First, LlcMethod and apparatus for correcting an internal call/return stack in a microprocessor that speculatively executes call and return instructions
US6725357B1 (en)*1999-05-032004-04-20Stmicroelectronics S.A.Making available instructions in double slot FIFO queue coupled to execution units to third execution unit at substantially the same time
US6321321B1 (en)*1999-06-212001-11-20Vlsi Technology, Inc.Set-associative cache-management method with parallel and single-set sequential reads
US6457120B1 (en)*1999-11-012002-09-24International Business Machines CorporationProcessor and method including a cache having confirmation bits for improving address predictable branch instruction target predictions
US6748441B1 (en)*1999-12-022004-06-08Microsoft CorporationData carousel receiving and caching
US6560696B1 (en)*1999-12-292003-05-06Intel CorporationReturn register stack target predictor
US6502185B1 (en)*2000-01-032002-12-31Advanced Micro Devices, Inc.Pipeline elements which verify predecode information
US6351796B1 (en)*2000-02-222002-02-26Hewlett-Packard CompanyMethods and apparatus for increasing the efficiency of a higher level cache by selectively performing writes to the higher level cache
US6754808B1 (en)*2000-09-292004-06-22Intel CorporationValid bit generation and tracking in a pipelined processor
US20020188833A1 (en)*2001-05-042002-12-12Ip First LlcDual call/return stack branch prediction system
US20020194460A1 (en)*2001-05-042002-12-19Ip First LlcApparatus, system and method for detecting and correcting erroneous speculative branch target address cache branches
US20020194461A1 (en)*2001-05-042002-12-19Ip First LlcSpeculative branch target address cache
US20050132175A1 (en)*2001-05-042005-06-16Ip-First, Llc.Speculative hybrid branch direction predictor
US20050114636A1 (en)*2001-05-042005-05-26Ip-First, Llc.Apparatus and method for target address replacement in speculative branch target address cache
US6895498B2 (en)*2001-05-042005-05-17Ip-First, LlcApparatus and method for target address replacement in speculative branch target address cache
US6886093B2 (en)*2001-05-042005-04-26Ip-First, LlcSpeculative hybrid branch direction predictor
US6823444B1 (en)*2001-07-032004-11-23Ip-First, LlcApparatus and method for selectively accessing disparate instruction buffer stages based on branch target address cache hit and instruction stage wrap
US6898699B2 (en)*2001-12-212005-05-24Intel CorporationReturn address stack including speculative return address buffer with back pointers
US20040030866A1 (en)*2002-04-262004-02-12Ip-First, LlcApparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
US6968444B1 (en)*2002-11-042005-11-22Advanced Micro Devices, Inc.Microprocessor employing a fixed position dispatch unit
US20040139281A1 (en)*2003-01-142004-07-15Ip-First, Llc.Apparatus and method for efficiently updating branch target address cache
US20040139301A1 (en)*2003-01-142004-07-15Ip-First, Llc.Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US20040139292A1 (en)*2003-01-142004-07-15Ip-First, Llc.Apparatus and method for resolving deadlock fetch conditions involving branch target address cache
US20040143727A1 (en)*2003-01-162004-07-22Ip-First, Llc.Method and apparatus for correcting an internal call/return stack in a microprocessor that detects from multiple pipeline stages incorrect speculative update of the call/return stack
US20040143709A1 (en)*2003-01-162004-07-22Ip-First, Llc.Apparatus and method for invalidation of redundant branch target address cache entries
US20050076193A1 (en)*2003-09-082005-04-07Ip-First, Llc.Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence

Cited By (46)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20050114636A1 (en)*2001-05-042005-05-26Ip-First, Llc.Apparatus and method for target address replacement in speculative branch target address cache
US20020194461A1 (en)*2001-05-042002-12-19Ip First LlcSpeculative branch target address cache
US20020194464A1 (en)*2001-05-042002-12-19Ip First LlcSpeculative branch target address cache with selective override by seconday predictor based on branch instruction type
US20020194460A1 (en)*2001-05-042002-12-19Ip First LlcApparatus, system and method for detecting and correcting erroneous speculative branch target address cache branches
US7707397B2 (en)2001-05-042010-04-27Via Technologies, Inc.Variable group associativity branch target address cache delivering multiple target addresses per cache line
US7200740B2 (en)2001-05-042007-04-03Ip-First, LlcApparatus and method for speculatively performing a return instruction in a microprocessor
US7165169B2 (en)2001-05-042007-01-16Ip-First, LlcSpeculative branch target address cache with selective override by secondary predictor based on branch instruction type
US7398377B2 (en)2001-05-042008-07-08Ip-First, LlcApparatus and method for target address replacement in speculative branch target address cache
US7134005B2 (en)2001-05-042006-11-07Ip-First, LlcMicroprocessor that detects erroneous speculative prediction of branch instruction opcode byte
US20050268076A1 (en)*2001-05-042005-12-01Via Technologies, Inc.Variable group associativity branch target address cache delivering multiple target addresses per cache line
US20050132175A1 (en)*2001-05-042005-06-16Ip-First, Llc.Speculative hybrid branch direction predictor
US20020188833A1 (en)*2001-05-042002-12-12Ip First LlcDual call/return stack branch prediction system
US7162619B2 (en)2001-07-032007-01-09Ip-First, LlcApparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer
US20050198481A1 (en)*2001-07-032005-09-08Ip First LlcApparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer
US7234045B2 (en)2001-07-032007-06-19Ip-First, LlcApparatus and method for handling BTAC branches that wrap across instruction cache lines
US20050044343A1 (en)*2001-07-032005-02-24Ip-First, Llc.Apparatus and method for selectively accessing disparate instruction buffer stages based on branch target address cache hit and instruction stage wrap
US7159098B2 (en)2001-07-032007-01-02Ip-First, Llc.Selecting next instruction line buffer stage based on current instruction line boundary wraparound and branch target in buffer indicator
US7159097B2 (en)2002-04-262007-01-02Ip-First, LlcApparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
US20040030866A1 (en)*2002-04-262004-02-12Ip-First, LlcApparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
US20040139292A1 (en)*2003-01-142004-07-15Ip-First, Llc.Apparatus and method for resolving deadlock fetch conditions involving branch target address cache
US7143269B2 (en)2003-01-142006-11-28Ip-First, LlcApparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US20040139281A1 (en)*2003-01-142004-07-15Ip-First, Llc.Apparatus and method for efficiently updating branch target address cache
US7165168B2 (en)2003-01-142007-01-16Ip-First, LlcMicroprocessor with branch target address cache update queue
US7185186B2 (en)2003-01-142007-02-27Ip-First, LlcApparatus and method for resolving deadlock fetch conditions involving branch target address cache
US20040139301A1 (en)*2003-01-142004-07-15Ip-First, Llc.Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US7152154B2 (en)2003-01-162006-12-19Ip-First, Llc.Apparatus and method for invalidation of redundant branch target address cache entries
US7178010B2 (en)2003-01-162007-02-13Ip-First, LlcMethod and apparatus for correcting an internal call/return stack in a microprocessor that detects from multiple pipeline stages incorrect speculative update of the call/return stack
US20040143709A1 (en)*2003-01-162004-07-22Ip-First, Llc.Apparatus and method for invalidation of redundant branch target address cache entries
US20040143727A1 (en)*2003-01-162004-07-22Ip-First, Llc.Method and apparatus for correcting an internal call/return stack in a microprocessor that detects from multiple pipeline stages incorrect speculative update of the call/return stack
US20050076193A1 (en)*2003-09-082005-04-07Ip-First, Llc.Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
US7237098B2 (en)2003-09-082007-06-26Ip-First, LlcApparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
US7631172B2 (en)2003-09-082009-12-08Ip-First, LlcApparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
US20070083741A1 (en)*2003-09-082007-04-12Ip-First, LlcApparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
EP2693333A4 (en)*2011-03-312015-08-05Renesas Electronics Corp PROCESSOR AND METHOD OF PROCESSING INSTRUCTION THEREFOR
WO2016154115A1 (en)*2015-03-202016-09-29Mill Computing, Inc.Cpu security mechanisms employing thread-specific protection domains
US10678700B2 (en)2015-03-202020-06-09Mill Computing, Inc.CPU security mechanisms employing thread-specific protection domains
US9747218B2 (en)2015-03-202017-08-29Mill Computing, Inc.CPU security mechanisms employing thread-specific protection domains
US10255074B2 (en)*2015-09-112019-04-09Qualcomm IncorporatedSelective flushing of instructions in an instruction pipeline in a processor back to an execution-resolved target address, in response to a precise interrupt
US20170075692A1 (en)*2015-09-112017-03-16Qualcomm IncorporatedSelective flushing of instructions in an instruction pipeline in a processor back to an execution-resolved target address, in response to a precise interrupt
US20180060073A1 (en)*2016-08-302018-03-01Advanced Micro Devices, Inc.Branch target buffer compression
US10592248B2 (en)*2016-08-302020-03-17Advanced Micro Devices, Inc.Branch target buffer compression
CN110336803A (en)*2019-06-212019-10-15中国科学院软件研究所 A Security Evaluation Method of Branch Prediction Unit of Target Host
US20220100520A1 (en)*2020-09-262022-03-31Intel CorporationBranch prefetch mechanisms for mitigating frontend branch resteers
US11928472B2 (en)*2020-09-262024-03-12Intel CorporationBranch prefetch mechanisms for mitigating frontend branch resteers
US12182317B2 (en)2021-02-132024-12-31Intel CorporationRegion-based deterministic memory safety
US12235791B2 (en)2021-08-232025-02-25Intel CorporationLoop driven region based frontend translation control for performant and secure data-space guided micro-sequencing

Also Published As

Publication numberPublication date
US7203824B2 (en)2007-04-10

Similar Documents

PublicationPublication DateTitle
US7203824B2 (en)Apparatus and method for handling BTAC branches that wrap across instruction cache lines
US6823444B1 (en)Apparatus and method for selectively accessing disparate instruction buffer stages based on branch target address cache hit and instruction stage wrap
US7162619B2 (en)Apparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer
US7165169B2 (en)Speculative branch target address cache with selective override by secondary predictor based on branch instruction type
US7200740B2 (en)Apparatus and method for speculatively performing a return instruction in a microprocessor
US6886093B2 (en)Speculative hybrid branch direction predictor
US7398377B2 (en)Apparatus and method for target address replacement in speculative branch target address cache
US7134005B2 (en)Microprocessor that detects erroneous speculative prediction of branch instruction opcode byte
US7178010B2 (en)Method and apparatus for correcting an internal call/return stack in a microprocessor that detects from multiple pipeline stages incorrect speculative update of the call/return stack
EP1513062B1 (en)Apparatus, method and computer data signal for selectively overriding return stack prediction in response to detection of non-standard return sequence
US6609194B1 (en)Apparatus for performing branch target address calculation based on branch type
US6553488B2 (en)Method and apparatus for branch prediction using first and second level branch prediction tables
US5850543A (en)Microprocessor with speculative instruction pipelining storing a speculative register value within branch target buffer for use in speculatively executing instructions after a return
US6550004B1 (en)Hybrid branch predictor with improved selector table update mechanism
US20020194461A1 (en)Speculative branch target address cache
US5983321A (en)Cache holding register for receiving instruction packets and for providing the instruction packets to a predecode unit and instruction cache
US7143269B2 (en)Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US5774710A (en)Cache line branch prediction scheme that shares among sets of a set associative cache
WO2014039962A1 (en)Fetch width predictor
US20020194462A1 (en)Apparatus and method for selecting one of multiple target addresses stored in a speculative branch target address cache per instruction cache line
US7234045B2 (en)Apparatus and method for handling BTAC branches that wrap across instruction cache lines
US7159097B2 (en)Apparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
US7913068B2 (en)System and method for providing asynchronous dynamic millicode entry prediction
US20040225866A1 (en)Branch prediction in a data processing system
US7343481B2 (en)Branch prediction in a data processing system utilizing a cache of previous static predictions

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:IP FIRST, L.L.C., CALIFORNIA

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BEAN, BRENT;HENRY, G. GLENN;MCDONALD, THOMAS C.;REEL/FRAME:012003/0728;SIGNING DATES FROM 20010621 TO 20010627

ASAssignment

Owner name:IP-FIRST, LLC, CALIFORNIA

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BEAN, BRENT;HENRY, G. GLENN;MCDONALD, THOMAS C.;REEL/FRAME:018565/0797;SIGNING DATES FROM 20010621 TO 20010627

STCFInformation on status: patent grant

Free format text:PATENTED CASE

CCCertificate of correction
FPAYFee payment

Year of fee payment:4

FPAYFee payment

Year of fee payment:8

MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:12


[8]ページ先頭

©2009-2025 Movatter.jp