IP Library › Granted Patent US 12,657,027
Granted Patent B2
US 12,657,027 · App. 17/712,101 · Granted Jun 16, 2026

Stalling an instruction fetch operation impacted by a hazard without stalling another instruction fetch operation not impacted by the hazard

Inventors: Eliyah Kilada (Portland, OR); Ammon Christiansen (Hillsboro, OR); Ariel Fabien Sabba (Lavon, IL); Christopher Celio (Santa Clara, CA); Ankur Groen (San Jose, CA); Muhammad Faisal Azeem (Hillsboro, OR); Malihe Ahmadi (Sudbury, MA); Rangeen Basu Roy Chowdhury (Beaverton, OR)
Assignee: Intel Corporation
G06F9/3802G06F9/30047G06F9/3838G06F9/3861G06F9/3867
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,657,027
App. No.
17/712,101
Granted
Jun 16, 2026
Kind
B2
Abstract

At least one instruction storage coupled with a fetch unit including sets of fetch circuitry each having a same plurality of pipeline stages. The sets of fetch circuitry perform fetch operations to fetch blocks of instructions from the at least one instruction storage. Stall circuitry, in response to an indication of a hazard for a given pipeline stage of a first set of fetch circuitry, retains a fetch operation for a first block of instructions at the given pipeline stage, and zero or more fetch operations for zero or more corresponding blocks of instructions at zero or more preceding pipeline stages of the first set of fetch circuitry, until the hazard has been removed. The stall circuitry advances a fetch operation for a second block of instructions from the given pipeline stage of a second set of fetch circuitry, during an initial cycle of the one or more cycles.

Claims (36)

1 . An apparatus comprising:

at least one instruction storage; and

a fetch unit coupled with the at least one instruction storage, the fetch unit including:

a plurality of sets of fetch circuitry, including a first set of fetch circuitry and a second set of fetch circuitry, each of the sets of fetch circuitry having a same plurality of pipeline stages, the sets of fetch circuitry to perform fetch operations to fetch blocks of instructions from the at least one instruction storage; and

stall circuitry, in response to an indication of a hazard for a given pipeline stage of the plurality of pipeline stages of the first set of fetch circuitry, to:

retain a fetch operation for a first block of instructions at the given pipeline stage of the first set of fetch circuitry, and zero or more fetch operations for zero or more corresponding blocks of instructions at zero or more preceding pipeline stages of the first set of fetch circuitry, for one or more cycles, until the hazard has been removed;

advance a fetch operation for a second block of instructions from the given pipeline stage of the second set of fetch circuitry, during an initial cycle of the one or more cycles; and

advance a fetch operation for a third block of instructions from an immediately preceding pipeline stage of the second set of fetch circuitry into the given pipeline stage of the second set of fetch circuitry, during the initial cycle of the one or more cycles;

circuitry to indicate that a fetch operation for a block of instructions at the given pipeline stage is older in program order than all other fetch operations at the given pipeline stage, after the fetch operation for the third block of instructions has advanced into the given pipeline stage.

2 . An apparatus comprising:

at least one instruction storage; and

a fetch unit coupled with the at least one instruction storage, the fetch unit including:

a plurality of sets of fetch circuitry, including a first set of fetch circuitry and a second set of fetch circuitry, each of the sets of fetch circuitry having a same plurality of pipeline stages, the sets of fetch circuitry to perform fetch operations to fetch blocks of instructions from the at least one instruction storage; and

stall circuitry, in response to an indication of a hazard for a given pipeline stage of the plurality of pipeline stages of the first set of fetch circuitry, to:

retain a fetch operation for a first block of instructions at the given pipeline stage of the first set of fetch circuitry, and zero or more fetch operations for zero or more corresponding blocks of instructions at zero or more preceding pipeline stages of the first set of fetch circuitry, for one or more cycles, until the hazard has been removed; and

advance a fetch operation for a second block of instructions from the given pipeline stage of the second set of fetch circuitry, during an initial cycle of the one or more cycles,

wherein the fetch operation for the first block of instructions is to indicate that the first block of instructions is to be obtained from a second instruction storage of the at least one instruction storage, and

wherein the stall circuitry is further to store the first block of instructions from the second instruction storage to a first instruction storage of the at least one instruction storage during the one or more cycles.

3 . The apparatus of claim 1 , wherein the plurality of sets of fetch circuitry comprises at least three sets of fetch circuitry.

4 . The apparatus of claim 1 , wherein the plurality of pipeline stages comprises at least three pipeline stages.

5 . The apparatus of claim 1 , wherein the first block of instructions is a first cache line of instructions, and the second block of instructions is a second cache line of instructions.

6 . The apparatus of claim 5 , wherein the first and second cache lines of instructions are 512-bit cache lines of instructions.

7 . The apparatus of claim 2 , wherein the plurality of sets of fetch circuitry comprises at least three sets of fetch circuitry, wherein the plurality of pipeline stages comprises at least three pipeline stages, and wherein the first block of instructions is a first cache line of instructions.

8 . A method comprising:

storing instructions in at least one instruction storage;

concurrently initiating a fetch operation for a first block of instructions from the at least one instruction storage with a first set of fetch circuitry, and initiating a fetch operation for a second block of instructions from the at least one instruction storage with a second set of fetch circuitry, the first and second sets of fetch circuitry each having a same plurality of pipeline stages;

receiving an indication of a hazard for a given pipeline stage of the plurality of pipeline stages of the first set of fetch circuitry;

retaining the fetch operation for the first block of instructions at the given pipeline stage of the first set of fetch circuitry, and retaining zero or more fetch operations for zero or more corresponding blocks of instructions at zero or more preceding pipeline stages of the first set of fetch circuitry, for one or more cycles, until the hazard has been removed;

advancing the fetch operation for the second block of instructions from the given pipeline stage of the second set of fetch circuitry, during an initial cycle of the one or more cycles;

advancing a fetch operation for a third block of instructions from an immediately preceding pipeline stage of the second set of fetch circuitry into the given pipeline stage of the second set of fetch circuitry, during the initial cycle of the one or more cycles; and

indicating that a fetch operation for a block of instructions at the given pipeline stage is older in program order than all other fetch operations at the given pipeline stage, after said advancing the fetch operation for the third block of instructions into the given pipeline stage.

9 . The method of claim 8 , wherein the fetch operation for the first block of instructions is to indicate that the first block of instructions is to be obtained from a second instruction storage of the at least one instruction storage, and further comprising storing the first block of instructions from the second instruction storage to a first instruction storage of the at least one instruction storage during the one or more cycles.

10 . The method of claim 9 , further comprising reading the first block of instructions from the first instruction storage for the fetch operation for the first block of instructions.

11 . The method of claim 8 , further comprising initiating a fetch operation for the third block of instructions from the at least one instruction storage with a third set of fetch circuitry.

12 . The method of claim 8 , wherein initiating the fetch operation for the first block of instructions comprises initiating the fetch operation for a first cache line of instructions.

13 . The method of claim 8 , wherein initiating the fetch operation for the first block of instructions comprises initiating the fetch operation for a first 512-bit cache line of instructions.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2026
From: CELIO, CHRISTOPHER
To: INTEL CORPORATION
Reel/Frame 074684/0289 →
EMPLOYMENT AGREEMENT Recorded May 14, 2026
From: CELIO, CHRISTOPHER
To: INTEL CORPORATION
Reel/Frame 075606/0637 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2026
From: KILADA, ELIYAH; CHRISTIANSEN, AMMON; SABBA, ARIEL FABIEN; GROEN, ANKUR; AZEEM, MUHAMMAD FAISAL; AHMADI, MALIHE; BASU ROY CHOWDHURY, RANGEEN
To: INTEL CORPORATION
Reel/Frame 074664/0132 →
Continuity (1)
Related Publication 20230315466A1 · Oct 5, 2023
References Cited (32)
US 5434987A · Abramson et al. · 1995 [cited by applicant]
US 6035393A · Glew et al. · 2000 [cited by applicant]
US 6079014A · Papworth et al. · 2000 [cited by applicant]
US 6275924B1 · Subash · 2001 [cited by examiner]
US 6385715B1 · Merchant et al. · 2002 [cited by applicant]
US 6604190B1 · Tran · 2003 [cited by applicant]
US 6751724B1 · Moyer · 2004 [cited by examiner]
US 6981129B1 · Boggs et al. · 2005 [cited by applicant]
US 7444498B2 · Eickemeyer et al. · 2008 [cited by applicant]
US 7836281B1 · Tremblay et al. · 2010 [cited by applicant]
US 8171266B2 · Karp et al. · 2012 [cited by applicant]
US 9146745B2 · Jourdan et al. · 2015 [cited by applicant]
US 9519944B2 · Goodman · 2016 [cited by examiner]
US 10754655B2 · Chauhan et al. · 2020 [cited by applicant]
US 20030126406A1 · Hammarlund et al. · 2003 [cited by applicant]
US 20040226011A1 · Augsburg et al. · 2004 [cited by applicant]
US 20060010309A1 · Chaudhry et al. · 2006 [cited by applicant]
US 20080005534A1 · Jourdan et al. · 2008 [cited by applicant]
US 20080229068A1 · Bose · 2008 [cited by examiner]
US 20150046655A1 · Nystad et al. · 2015 [cited by applicant]
US 20150100763A1 · Holm · 2015 [cited by applicant]
US 20150205725A1 · Al-Otoom et al. · 2015 [cited by applicant]
US 20160357561A1 · Greenhalgh et al. · 2016 [cited by applicant]
US 20180165097A1 · Hanley · 2018 [cited by examiner]
US 20200004538A1 · Fleming et al. · 2020 [cited by applicant]
US 20210326141A1 · Tran · 2021 [cited by applicant]
US 20210374063A1 · Jeong et al. · 2021 [cited by applicant]
US 20220100519A1 · Cohen et al. · 2022 [cited by applicant]
US 20220121449A1 · Grassi · 2022 [cited by applicant]
US 20220164254A1 · Smittle et al. · 2022 [cited by applicant]
US 20230315467A1 · Kilada · 2023 [cited by examiner]
Non-Final Office Action, U.S. Appl. No. 17/712,103, May 2, 2025, 16 pages. [cited by applicant]