Vector Gather with a Narrow Datapath
    31.
    发明公开

    公开(公告)号:US20230367599A1

    公开(公告)日:2023-11-16

    申请号:US18141466

    申请日:2023-04-30

    Applicant: SiFive, Inc.

    CPC classification number: G06F9/30141 G06F9/30094

    Abstract: Systems and methods are disclosed for vector gather with a narrow datapath. For example, some methods may include reading b bits of a vector of indices into a first operand buffer; reading b bits of the vector of source data into a second operand buffer, including an element indexed by a first index stored in the first operand buffer; checking whether other indices stored in the first operand buffer point to elements of the vector of source data stored in the second operand buffer; during a single clock cycle, copying a plurality of elements stored in the second operand buffer that are pointed to by indices stored in the first operand buffer to a third operand buffer; and updating flags in a completion flags buffer corresponding to those indices to indicate that handling of those indices has completed.

    MEMORY PROTECTION FOR GATHER-SCATTER OPERATIONS

    公开(公告)号:US20230305969A1

    公开(公告)日:2023-09-28

    申请号:US18024208

    申请日:2021-09-01

    Applicant: SiFive, Inc.

    CPC classification number: G06F12/1458 G06F9/30036 G06F21/6218 G06F2212/1052

    Abstract: Systems and methods are disclosed for memory protection for memory protection for gather-scatter operations. For example, an integrated circuit may include a processor core; a memory protection circuit configured to check for memory protection violations with a protection granule; and an index range circuit configured to: memoize a maximum value and a minimum value of a tuple of indices stored in a vector register of the processor core as the tuple of indices is written to the vector register; determine a range of addresses for a gather-scatter memory instruction that takes the vector register as a set of indices based on a base address of a vector in memory, the memoized minimum value, and the memoized maximum value; and check, using the memory protection circuit during a single clock cycle, whether accessing elements of the vector within the range of addresses will cause a memory protection violation.

    SECURE CONTROL FLOW PREDICTION
    33.
    发明申请

    公开(公告)号:US20220292183A1

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

    申请号:US17826622

    申请日:2022-05-27

    Applicant: SiFive, Inc.

    Abstract: Systems and methods are disclosed for secure control flow prediction. Some implementations may be used to eliminate or mitigate the Spectre-class of attacks in a processor. For example, an integrated circuit (e.g., a processor) for executing instructions may include a control flow predictor with entries that include branch target addresses associated with instructions. The branch target addresses may be predictions. A context tag associated with an entry may be compared to a context identifier associated with a currently executing process. Responsive to a mismatch between the context tag and the context identifier, the control flow predictor may provide an alternate value in place of a branch target address.

    Fetch stage handling of indirect jumps in a processor pipeline

    公开(公告)号:US11301251B2

    公开(公告)日:2022-04-12

    申请号:US16856462

    申请日:2020-04-23

    Applicant: SiFive, Inc.

    Abstract: Systems and methods are disclosed for fetch stage handling of indirect jumps in a processor pipeline. For example, a method includes detecting a sequence of instructions fetched by a processor core, wherein the sequence of instructions includes a first instruction, with a result that depends on an immediate field of the first instruction and a program counter value, followed by a second instruction that is an indirect jump instruction; responsive to detection of the sequence of instructions, preventing an indirect jump target predictor circuit from generating a target address prediction for the second instruction; and, responsive to detection of the sequence of instructions, determining a target address for the second instruction before the first instruction is issued to an execution stage of a pipeline of the processor core.

    WAY PREDICTOR AND ENABLE LOGIC FOR INSTRUCTION TIGHTLY-COUPLED MEMORY AND INSTRUCTION CACHE

    公开(公告)号:US20220083340A1

    公开(公告)日:2022-03-17

    申请号:US17418933

    申请日:2019-12-12

    Applicant: SiFive, Inc.

    Abstract: Disclosed herein are systems and method for instruction tightly-coupled memory (iTIM) and instruction cache (iCache) access prediction. A processor may use a predictor to enable access to the iTIM or the iCache and a particular way (a memory structure) based on a location state and program counter value. The predictor may determine whether to stay in an enabled memory structure, move to and enable a different memory structure, or move to and enable both memory structures. Stay and move predictions may be based on whether a memory structure boundary crossing has occurred due to sequential instruction processing, branch or jump instruction processing, branch resolution, and cache miss processing. The program counter and a location state indicator may use feedback and be updated each instruction-fetch cycle to determine which memory structure(s) needs to be enabled for the next instruction fetch.

    Macro-op fusion
    36.
    发明授权

    公开(公告)号:US10996952B2

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

    申请号:US16215328

    申请日:2018-12-10

    Applicant: SiFive, Inc.

    Abstract: Systems and methods are disclosed for macro-op fusion. Sequences of macro-ops that include a control-flow instruction are fused into single micro-ops for execution. The fused micro-ops may avoid the use of control-flow instructions, which may improve performance. A fusion predictor may be used to facilitate macro-op fusion.

    INSTRUCTION TIGHTLY-COUPLED MEMORY AND INSTRUCTION CACHE ACCESS PREDICTION

    公开(公告)号:US20200210189A1

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

    申请号:US16553839

    申请日:2019-08-28

    Applicant: SiFive, Inc.

    Abstract: Disclosed herein are systems and method for instruction tightly-coupled memory (iTIM) and instruction cache (iCache) access prediction. A processor may use a predictor to enable access to the iTIM or the iCache and a particular way (a memory structure) based on a location state and program counter value. The predictor may determine whether to stay in an enabled memory structure, move to and enable a different memory structure, or move to and enable both memory structures. Stay and move predictions may be based on whether a memory structure boundary crossing has occurred due to sequential instruction processing, branch or jump instruction processing, branch resolution, and cache miss processing. The program counter and a location state indicator may use feedback and be updated each instruction-fetch cycle to determine which memory structure(s) needs to be enabled for the next instruction fetch.

Patent Agency Ranking