-
公开(公告)号:US10678542B2
公开(公告)日:2020-06-09
申请号:US14808811
申请日:2015-07-24
Applicant: Apple Inc.
Inventor: Ian D. Kountanis , Mahesh K. Reddy
IPC: G06F9/30
Abstract: Systems, apparatuses, and methods for implementing a non-shifting reservation station. A dispatch unit may write an operation into any entry of a reservation station. The reservation station may include an age matrix for determining the relative ages of the operations stored in the entries of the reservation station. The reservation station may include selection logic which is configured to pick the oldest ready operation from the reservation station based on the values stored in the age matrix. The selection logic may utilize control logic to mask off columns of an age matrix corresponding to non-ready operation so as to determine which operation is the oldest ready operation in the reservation station. Also, the reservation station may be configured to dequeue operations early when these operations do not have load dependency.
-
公开(公告)号:US20190286218A1
公开(公告)日:2019-09-19
申请号:US16363517
申请日:2019-03-25
Applicant: Apple Inc.
Inventor: Conrado Blasco , Ronald P. Hall , Ramesh B. Gunna , Ian D. Kountanis , Shyam Sundar , André Seznec
IPC: G06F1/3237 , G06F1/3296 , G06F1/3234 , G06F1/324 , G06F9/38
Abstract: A processor includes a mechanism for disabling a memory array of a branch prediction unit. The processor may include a next fetch prediction unit that may include a number of entries. Each entry may correspond to a next instruction fetch group and may store an indication of whether or not the corresponding the next fetch group includes a conditional branch instruction. In response to an indication that the next fetch group does not include a conditional branch instruction, the fetch prediction unit may be configured to disable, in a next instruction execution cycle, the memory array of the branch prediction unit.
-
公开(公告)号:US09632791B2
公开(公告)日:2017-04-25
申请号:US14160242
申请日:2014-01-21
Applicant: Apple Inc.
Inventor: Muawya M. Al-Otoom , Ian D. Kountanis , Ronald P. Hall , Michael L. Karm
IPC: G06F12/08 , G06F9/38 , G06F12/0862
CPC classification number: G06F9/3844 , G06F9/3808 , G06F9/381 , G06F9/3867 , G06F12/0862 , Y02D10/13
Abstract: Techniques are disclosed relating to a cache for patterns of instructions. In some embodiments, an apparatus includes an instruction cache and is configured to detect a pattern of execution of instructions by an instruction processing pipeline. The pattern of execution may involve execution of only instructions in a particular group of instructions. The instructions may include multiple backward control transfers and/or a control transfer instruction that is taken in one iteration of the pattern and not taken in another iteration of the pattern. The apparatus may be configured to store the instructions in the instruction cache and fetch and execute the instructions from the instruction cache. The apparatus may include a branch predictor dedicated to predicting the direction of control transfer instructions for the instruction cache. Various embodiments may reduce power consumption associated with instruction processing.
-
公开(公告)号:US20170024205A1
公开(公告)日:2017-01-26
申请号:US14808811
申请日:2015-07-24
Applicant: Apple Inc.
Inventor: Ian D. Kountanis , Mahesh K. Reddy
IPC: G06F9/30
Abstract: Systems, apparatuses, and methods for implementing a non-shifting reservation station. A dispatch unit may write an operation into any entry of a reservation station. The reservation station may include an age matrix for determining the relative ages of the operations stored in the entries of the reservation station. The reservation station may include selection logic which is configured to pick the oldest ready operation from the reservation station based on the values stored in the age matrix. The selection logic may utilize control logic to mask off columns of an age matrix corresponding to non-ready operation so as to determine which operation is the oldest ready operation in the reservation station. Also, the reservation station may be configured to dequeue operations early when these operations do not have load dependency.
Abstract translation: 用于实施非移动保留站的系统,装置和方法。 调度单元可以将操作写入保留站的任何条目。 保留站可以包括用于确定存储在保留站的条目中的操作的相对年龄的年龄矩阵。 保留站可以包括选择逻辑,其被配置为基于存储在年龄矩阵中的值从保留站中选择最早的就绪操作。 选择逻辑可以利用控制逻辑来屏蔽对应于未就绪操作的年龄矩阵的列,以便确定哪个操作是保留站中的最早的就绪操作。 此外,保留站可以被配置为当这些操作没有负载依赖性时提前出队。
-
公开(公告)号:US09524011B2
公开(公告)日:2016-12-20
申请号:US14251508
申请日:2014-04-11
Applicant: Apple Inc.
Inventor: Ronald P. Hall , Michael L. Karm , Ian D. Kountanis , David J. Williamson
CPC classification number: G06F1/3234 , G06F9/30058 , G06F9/30065 , G06F9/325 , G06F9/381 , G06F9/3844
Abstract: Techniques are disclosed relating to power reduction during execution of instruction loops. Multiple different power saving modes may be used by a processor, such as a first power saving mode after only a few loop iterations (e.g., 2-3) and a second, deeper power saving mode after a greater number of loop iterations. The first power saving mode may include keeping a branch predictor and/or other structures active, but the second power saving mode may include reducing power to the branch predictor and/or other structures. An observation mode and an instruction capture mode may also be used by a processor prior to entering a power saving mode for loop execution. Power saving modes may also be achieved during execution of complex loops having multiple backward branches (e.g., nested loops).
Abstract translation: 公开了在执行指令循环期间降低功率的技术。 处理器可以使用多种不同的功率节省模式,例如在更多数量的循环迭代之后仅仅几次循环迭代(例如2-3)和第二更深的省电模式之后的第一省电模式。 第一省电模式可以包括保持分支预测器和/或其他结构是有效的,但是第二省电模式可以包括降低分支预测器和/或其他结构的功率。 在进入用于循环执行的省电模式之前,处理器还可以使用观察模式和指令捕获模式。 在执行具有多个后向分支(例如,嵌套循环)的复杂环路时也可以实现节电模式。
-
公开(公告)号:US12236244B1
公开(公告)日:2025-02-25
申请号:US17810253
申请日:2022-06-30
Applicant: Apple Inc.
Inventor: Wei-Han Lien , Muawya M. Al-Otoom , Ian D. Kountanis , Niket K. Choudhary , Pruthivi Vuyyuru
IPC: G06F9/38
Abstract: A multi-degree branch predictor is disclosed. A processing circuit includes an instruction fetch circuit configured to fetch branch instructions, and a branch prediction circuit having a plurality of prediction subcircuits. The prediction subcircuits are configured to store different amounts of branch history data with respect to other ones, and to receive an indication of a given branch instruction in a particular clock cycle. The prediction subcircuits implement a common branch prediction scheme to output, in different clock cycles, corresponding predictions for the given branch instruction using the different amounts of branch history data and cause, instruction fetches to be performed by the instruction fetch circuit. The prediction subcircuits are also configured to override, in subsequent clock cycles, instruction fetches caused by prediction subcircuits with comparatively less branch history data based on contrary predictions performed in subsequent clock cycles by prediction subcircuits with more branch history data.
-
公开(公告)号:US20250036415A1
公开(公告)日:2025-01-30
申请号:US18358890
申请日:2023-07-25
Applicant: Apple Inc.
Inventor: Deepankar Duggal , Pruthivi Vuyyuru , Ian D. Kountanis
Abstract: A processor may include a conditional instruction prediction tracking circuit. During fetch of a conditional instruction from memory to an instruction cache of the processor, the conditional instruction prediction tracking circuit may predict whether the conditional instruction is biased. Responsive to a prediction that the conditional instruction is biased, the conditional instruction prediction tracking circuit may cause the conditional instruction to be executed according to the predicted bias. Sometimes the conditional prediction tracking circuit may cause the conditional instruction to be re-coded such that it may be executed as an unconditional instruction.
-
公开(公告)号:US20240028339A1
公开(公告)日:2024-01-25
申请号:US17814729
申请日:2022-07-25
Applicant: Apple Inc.
Inventor: Niket K. Choudhary , Mary D. Brown , Ethan R. Schuchman , Ronald P. Hall , Ian D. Kountanis , Douglas C. Holman , Ilhyun Kim , Abhishek Kumar , Siavash Zangeneh Kamali
IPC: G06F9/38 , G06F12/0875
CPC classification number: G06F9/3802 , G06F12/0875 , G06F2212/452
Abstract: An apparatus includes an instruction cache circuit and an instruction fetch circuit. The instruction fetch circuit is configured to retrieve, from the instruction cache circuit, a fetch group that includes a plurality of instructions for execution by a processing circuit, and to make a determination that the fetch group includes a control transfer instruction that is predicted to be taken. A target address associated with the control transfer instruction is directed to an instruction within the fetch group. The instruction fetch circuit is further configured to, based on the determination, alter instructions within the fetch group in a manner that is based on a type of the control transfer instruction.
-
公开(公告)号:US20230244495A1
公开(公告)日:2023-08-03
申请号:US17590722
申请日:2022-02-01
Applicant: Apple Inc.
Inventor: Ethan R. Schuchman , Niket K. Choudhary , Kulin N. Kothari , Haoyan Jia , Ian D. Kountanis , Douglas C. Holman , Wei-Han Lien , Pruthivi Vuyyuru
CPC classification number: G06F9/3844 , G06F9/3861 , G06F9/30145 , G06F9/30058 , G06F9/30079
Abstract: A processor may include an instruction distribution circuit and a plurality of execution pipelines. The instruction distribution circuit may distribute a conditional instruction to a first execution pipeline for execution when the conditional instruction is associated with a prediction of a high confidence level, or to a second execution pipeline for execution when the conditional instruction is associated with a prediction of a low confidence level. The second execution pipeline, not the first execution pipeline, may directly instruct the processor to obtain an instruction from a target address for execution, when the conditional instruction is mispredicted. Thus, when the conditional instruction is distributed to the first execution pipeline for execution and determined to be mispredicted, the first execution pipeline may cause the conditional instruction to be re-executed in the second execution pipeline to cause the instruction from the correct target address to be obtained for execution.
-
公开(公告)号:US10901484B2
公开(公告)日:2021-01-26
申请号:US16363517
申请日:2019-03-25
Applicant: Apple Inc.
Inventor: Conrado Blasco , Ronald P. Hall , Ramesh B. Gunna , Ian D. Kountanis , Shyam Sundar , André Seznec
IPC: G06F9/38 , G06F1/3237 , G06F1/324 , G06F1/3234 , G06F1/3296
Abstract: A processor includes a mechanism for disabling a memory array of a branch prediction unit. The processor may include a next fetch prediction unit that may include a number of entries. Each entry may correspond to a next instruction fetch group and may store an indication of whether or not the corresponding the next fetch group includes a conditional branch instruction. In response to an indication that the next fetch group does not include a conditional branch instruction, the fetch prediction unit may be configured to disable, in a next instruction execution cycle, the memory array of the branch prediction unit.
-
-
-
-
-
-
-
-
-