CONTROL FLOW PREDICTION
    2.
    发明公开

    公开(公告)号:US20230195467A1

    公开(公告)日:2023-06-22

    申请号:US17556166

    申请日:2021-12-20

    申请人: Arm Limited

    IPC分类号: G06F9/38 G06F9/30

    摘要: A data processing apparatus is provided that includes bimodal control flow prediction circuitry for performing a prediction of whether a conditional control flow instruction will be taken. Storage circuitry stores, in association with the control flow instruction, a stored state of the data processing apparatus and reversal circuitry reverses the prediction in dependence on the stored state of the data processing apparatus corresponding with a current state of the data processing apparatus when execution of the control flow instruction is to be performed.

    Data Processing System and Method for Controlling an Execution Flow

    公开(公告)号:US20180136934A1

    公开(公告)日:2018-05-17

    申请号:US15352517

    申请日:2016-11-15

    IPC分类号: G06F9/30 G06F9/34

    CPC分类号: G06F9/30054 G06F9/322

    摘要: A data processing system includes a control register, a program counter and a controller. The control register is used to store a level status of an execution flow and at least one return address. When the controller reads a block call instruction while a level status of the execution flow has an initial value, the controller stores a return address of the block call instruction in the control register, increments a value of the level status, and redirects the execution flow to a target address indicated by the block call instruction. When the controller reads a block return instruction and the value of the level status is not equal to the initial value, the controller decrements the value of the level status. If the value of the level status becomes equal to the initial value, the controller redirects the execution flow to the return address.

    Processor exception handling using a branch target cache

    公开(公告)号:US09940137B2

    公开(公告)日:2018-04-10

    申请号:US15042306

    申请日:2016-02-12

    申请人: ARM LIMITED

    IPC分类号: G06F9/30 G06F9/38 G06F12/0875

    摘要: Data processing apparatus comprises a processor configured to execute instructions, the processor having a pipelined instruction fetching unit configured to fetch instructions from memory during a pipeline period of two or more processor clock cycles prior to execution of those instructions by the processor; exception logic configured to respond to a detected processing exception having an exception type selected from a plurality of exception types, by storing a current processor status and diverting program flow to an exception address dependent upon the exception type so as to control the instruction fetching unit to initiate fetching of an exception instruction at the exception address; and an exception cache configured to cache information, for at least one of the exception types, relating to execution of the exception instruction at the exception address corresponding to that exception type and to provide the cached information to the processor in response to detection of an exception of that exception type.

    Processor for Correlation-Based Loop Detection

    公开(公告)号:US20180032340A1

    公开(公告)日:2018-02-01

    申请号:US15662454

    申请日:2017-07-28

    IPC分类号: G06F9/30 G06F9/32 G06F9/45

    摘要: Processor comprising an execution unit and a detection unit which are functionally connected, wherein the execution unit is configured to execute computer programs, and wherein the detection unit is configured to detect infinite loops during the execution of a computer program in the execution unit during run-time, wherein the computer program comprises a plurality of go-to instructions, wherein each go-to instruction is characterized by a corresponding branch address, wherein the detection unit is configured to calculate a detection function of the branch addresses of a branch sequence, the branch sequence comprising a sequence of executed go-to instructions, and wherein the detection function is chosen such that an increased value of the detection function is characteristic of an infinite loop in the branch sequence in which at least one go-to instruction is repeated.