Branch prediction system
    11.
    发明授权

    公开(公告)号:US10719327B1

    公开(公告)日:2020-07-21

    申请号:US14716449

    申请日:2015-05-19

    Applicant: Apple Inc.

    Abstract: In some embodiments, a branch prediction unit includes a plurality of branch prediction circuits and selection logic. At least two of the branch prediction circuits are configured, based on an address of a branch instruction and different sets of history information, to provide a corresponding branch prediction for the branch instruction. At least one storage element of the at least two branch prediction circuits is set associative. The selection logic is configured to select a particular branch prediction output by one of the branch prediction circuits as a current branch prediction output of the branch prediction unit. In some instances, the branch prediction unit may be less likely to replace branch prediction information, as compared to a different branch prediction unit that does not include a set associative storage element. In some embodiments, this arrangement may lead to increased performance of the branch prediction unit.

    Systems and methods for optimizing authentication branch instructions

    公开(公告)号:US11468168B1

    公开(公告)日:2022-10-11

    申请号:US15484439

    申请日:2017-04-11

    Applicant: Apple Inc.

    Abstract: Systems, apparatuses, and methods for efficient handling of subroutine epilogues. When an indirect control transfer instruction corresponding to a procedure return for a subroutine is identified, the return address and a signature are retrieved from one or more of a return address stack and the memory stack. An authenticator generates a signature based on at least a portion of the retrieved return address. While the signature is being generated, instruction processing speculatively continues. No instructions are permitted to commit yet. The generated signature is later compared to a copy of the signature generated earlier during the corresponding procedure call. A mismatch causes an exception.

    Indirect branch predictor storing encrypted branch information fields and security tag for security protection

    公开(公告)号:US11449343B2

    公开(公告)日:2022-09-20

    申请号:US16220488

    申请日:2018-12-14

    Applicant: Apple Inc.

    Abstract: A system and method for efficiently protecting branch prediction information. In various embodiments, a computing system includes at least one processor with a branch predictor storing branch target addresses and security tags in a table. The security tag includes one or more components of machine context. When the branch predictor receives a portion of a first program counter of a first branch instruction, and hits on a first table entry during an access, the branch predictor reads out a first security tag. The branch predictor compares one or more components of machine context of the first security tag to one or more components of machine context of the first branch instruction. When there is at least one mismatch, the branch prediction information of the first table entry is not used. Additionally, there is no updating of any branch prediction training information of the first table entry.

    Methods for partially preserving a branch predictor state

    公开(公告)号:US11093249B2

    公开(公告)日:2021-08-17

    申请号:US16292003

    申请日:2019-03-04

    Applicant: Apple Inc.

    Abstract: In an embodiment, an apparatus includes a plurality of memories configured to store respective data in a plurality of branch prediction entries. Each branch prediction entry corresponds to at least one of a plurality of branch instructions. The apparatus also includes a control circuit configured to store first data associated with a first branch instruction into a corresponding branch prediction entry in at least one memory of the plurality of memories. The control circuit is further configured to select a first memory of the plurality of memories, to disconnect the first memory from a power supply in response to a detection of a first power mode signal, and to cease storing data in the plurality of memories in response to the detection of the first power mode signal.

    Indirect Branch Predictor Based on Register Operands

    公开(公告)号:US20210240477A1

    公开(公告)日:2021-08-05

    申请号:US16778939

    申请日:2020-01-31

    Applicant: Apple Inc.

    Abstract: In an embodiment, an indirect branch predictor generates indirect branch predictions based on one or more register values. The register values may be the contents of registers on which the indirect branch instruction is directly or indirectly dependent for generating the branch target address, for example. In an embodiment, at least one of the registers may be a source for a load instruction, and the indirect branch may be dependent (directly or indirectly) on the target of the load. In an embodiment, the indirect branch predictor may be one of at least two indirect branch predictors in a processor. The other indirect branch predictor may be based on a fetch address, or PC, associated with the indirect branch instruction. The other indirect branch predictor may generate a first predicted target address, and the indirect branch predictor may generate a second predicted target address for the same indirect branch instruction.

    Hierarchical reservation station
    16.
    发明授权

    公开(公告)号:US10452434B1

    公开(公告)日:2019-10-22

    申请号:US15701139

    申请日:2017-09-11

    Applicant: Apple Inc.

    Abstract: Systems, apparatuses, and methods for efficiently scheduling processor instructions for execution. The reservation station in a processor stores instructions in each of a primary buffer and a secondary buffer. Control logic selects a first number of instructions with ready source operands in the primary buffer and a second number of instructions with ready source operands in the secondary buffer. If a third number of instructions to issue from the reservation station is greater than the first number of instructions, then the reservation station issues one or more instructions of the second number of instructions from the secondary buffer to the one or more execution units. Control logic selects a fourth number of instructions in the secondary buffer to transfer to the primary buffer, and cancels the transfer of a given instruction in response to determining the given instruction has issued to the one or more execution units.

    Storing taken branch information
    19.
    发明授权

    公开(公告)号:US10175982B1

    公开(公告)日:2019-01-08

    申请号:US15184308

    申请日:2016-06-16

    Applicant: Apple Inc.

    Abstract: A method and system for storing branch information is disclosed. First data may be stored in a first entry of a first table in response to a determination that a fetched instruction is a branch instruction. Second data that is dependent upon at least one previously taken branch may be stored in a second entry in a second table in response to a determination that a branch associated with the instruction is predicted to be taken. The first data may be updated to include an index to the second data in response to the determination that the branch is predicted to be taken.

    EARLY LOOP BUFFER ENTRY
    20.
    发明申请
    EARLY LOOP BUFFER ENTRY 有权
    早期循环缓冲进入

    公开(公告)号:US20150227374A1

    公开(公告)日:2015-08-13

    申请号:US14179204

    申请日:2014-02-12

    Applicant: Apple Inc.

    Abstract: Systems, processors, and methods for determining when to enter loop buffer mode early for loops in an instruction stream. A processor waits until a branch history register has saturated before entering loop buffer mode for a loop if the processor has not yet determined the loop has an unpredictable exit. However, if the loop has an unpredictable exit, then the loop is allowed to enter loop buffer mode early. While in loop buffer mode, the loop is dispatched from a loop buffer, and the front-end of the processor is powered down until the loop terminates.

    Abstract translation: 用于确定何时在指令流中循环进入循环缓冲模式的系统,处理器和方法。 如果处理器尚未确定循环具有不可预测的退出,处理器将等待直到分支历史寄存器在进入环路循环缓冲区模式之前饱和。 然而,如果循环有一个不可预测的退出,那么循环允许提前进入循环缓冲模式。 在循环缓冲模式下,循环从循环缓冲区中分派,处理器的前端掉电直到循环终止。

Patent Agency Ranking