Patents Assigned to SiFive, Inc.
  • Patent number: 11966290
    Abstract: Systems and methods are disclosed for checker cores for fault tolerant processing. For example, an integrated circuit (e.g., a processor) for executing instructions includes a processor core configured to execute instructions of an instruction set; an outer memory system configured to store instructions and data; and a checker core configured to receive committed instruction packets from the processor core and check the committed instruction packets for errors, wherein the checker core is configured to utilize a memory pathway of the processor core to access the outer memory system by receiving instructions and data read from the outer memory system as portions of committed instruction packets from the processor core. For example, data flow from the processor core to the checker core may be limited to committed instruction packets received via dedicated a wire bundle.
    Type: Grant
    Filed: January 15, 2023
    Date of Patent: April 23, 2024
    Assignee: SiFive, Inc.
    Inventors: Murali Vijayaraghavan, Krste Asanovic
  • Patent number: 11922101
    Abstract: Systems and methods are disclosed for automated generation of integrated circuit designs and associated data. These allow the design of processors and SoCs by a single, non-expert who understands high-level requirements; allow the en masse exploration of the design-space through the generation processors across the design-space via simulation, or emulation; allow the easy integration of IP cores from multiple third parties into an SoC; allow for delivery of a multi-tenant service for producing processors and SoCs that are customized while also being pre-verified and delivered with a complete set of developer tools, documentation and related outputs. Some embodiments, provide direct delivery, or delivery into a cloud hosting environment, of finished integrated circuits embodying the processors and SoCs.
    Type: Grant
    Filed: March 20, 2023
    Date of Patent: March 5, 2024
    Assignee: SiFive, Inc.
    Inventors: Yunsup Lee, Richard Xia, Derek Pappas, Mark Nugent, Henry Cook, Wesley Waylon Terpstra, Pin Hung Chen
  • Patent number: 11914933
    Abstract: Systems and methods are disclosed for to generation of dynamic design flows for integrated circuits. For example, a method may include accessing a design flow configuration data structure, wherein the design flow configuration data structure is encoded in a tool control language; based on the design flow configuration data structure, selecting multiple flowmodules from a set of flowmodules, wherein each flowmodule provides an application programming interface, in the tool control language, to a respective electronic design automation tool; based on the design flow configuration data structure, generating a design flow as a directed acyclic graph including the selected flowmodules as vertices; and generating an output integrated circuit design data structure, based on one or more input integrated circuit design data structures, using the design flow to control the respective electronic design automation tools of the selected flowmodules.
    Type: Grant
    Filed: March 13, 2023
    Date of Patent: February 27, 2024
    Assignee: SiFive, Inc.
    Inventor: Han Chen
  • Patent number: 11861365
    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.
    Type: Grant
    Filed: May 3, 2021
    Date of Patent: January 2, 2024
    Assignee: SiFive, Inc.
    Inventors: Krste Asanovic, Andrew Waterman
  • Patent number: 11847060
    Abstract: Described is a data cache with prediction hints for a cache hit. The data cache includes a plurality of cache lines, where a cache line includes a data field, a tag field, and a prediction hint field. The prediction hint field is configured to store a prediction hint which directs alternate behavior for a cache hit against the cache line. The prediction hint field is integrated with the tag field or is integrated with a way predictor field.
    Type: Grant
    Filed: March 1, 2023
    Date of Patent: December 19, 2023
    Assignee: SiFive, Inc.
    Inventors: John Ingalls, Josh Smith
  • Patent number: 11797308
    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.
    Type: Grant
    Filed: April 11, 2022
    Date of Patent: October 24, 2023
    Assignee: SiFive, Inc.
    Inventors: Joshua Smith, Krste Asanovic, Andrew Waterman
  • Patent number: 11748536
    Abstract: Systems and methods are disclosed for automated generation of integrated circuit designs and associated data. These allow the design of processors and SoCs by a single, non-expert who understands high-level requirements; allow the en masse exploration of the design-space through the generation processors across the design-space via simulation, or emulation; allow the easy integration of IP cores from multiple third parties into an SoC; allow for delivery of a multi-tenant service for producing processors and SoCs that are customized while also being pre-verified and delivered with a complete set of developer tools, documentation and related outputs. Some embodiments, provide direct delivery, or delivery into a cloud hosting environment, of finished integrated circuits embodying the processors and SoCs.
    Type: Grant
    Filed: November 27, 2019
    Date of Patent: September 5, 2023
    Assignee: SiFive, Inc.
    Inventors: Yunsup Lee, Michael Cave
  • Patent number: 11687455
    Abstract: Described is a data cache implementing hybrid writebacks and writethroughs. A processing system includes a memory, a memory controller, and a processor. The processor includes a data cache including cache lines, a write buffer, and a store queue. The store queue writes data to a hit cache line and an allocated entry in the write buffer when the hit cache line is initially in at least a shared coherence state, resulting in the hit cache line being in a shared coherence state with data and the allocated entry being in a modified coherence state with data. The write buffer requests and the memory controller upgrades the hit cache line to a modified coherence state with data based on tracked coherence states. The write buffer retires the data upon upgrade. The data cache writebacks the data to memory for a defined event.
    Type: Grant
    Filed: October 6, 2022
    Date of Patent: June 27, 2023
    Assignee: SiFive, Inc.
    Inventors: John Ingalls, Wesley Waylon Terpstra, Henry Cook
  • Patent number: 11687342
    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.
    Type: Grant
    Filed: December 12, 2019
    Date of Patent: June 27, 2023
    Assignee: SiFive, Inc.
    Inventors: Krste Asanovic, Andrew Waterman
  • Patent number: 11675959
    Abstract: Systems and methods are disclosed for generation and testing of integrated circuit designs with point-to-point connections between modules. These may allow for the rapid design and testing (e.g. silicon testing) of processors and SoCs. For example, type parameterization may be used to generate point-to-point connections in a flexible manner. For example, a point-to-point connection between the source module and the sink module that includes one or more named wires specified by bundle type may be automatically generated based on using the bundle type as a type parameterization input. For example, these system and methods may be used to rapidly connect a custom processor design, including one or more IP cores, to a standard input/output shell for a SoC design to facilitate rapid silicon testing of the custom processor design.
    Type: Grant
    Filed: October 18, 2021
    Date of Patent: June 13, 2023
    Assignee: SiFive, Inc.
    Inventors: Megan Wachs, Henry Cook, Wesley Waylon Terpstra
  • Patent number: 11675945
    Abstract: Systems and methods are disclosed for generation and testing of integrated circuit designs with clock crossings between clock domains and reset crossings between reset domains. These may allow for the rapid design and testing (e.g. silicon testing) of processors and SoCs. Clock crossings may be automatically generated between modules, inferring the values of design parameters, such as a signaling protocol (e.g. a bus protocol), directionality, and/or a clock crossing type (e.g., synchronous, rational divider, or asynchronous), of a clock crossing. Reset crossings may be automatically generated in a similar manner. For example, implicit classes may be used to generate clock crossings or reset crossings in a flexible manner. For example, these system and methods may be used to rapidly connect a custom processor design, including one or more IP cores, to a standard input/output shell for a SoC design to facilitate rapid silicon testing of the custom processor design.
    Type: Grant
    Filed: May 2, 2022
    Date of Patent: June 13, 2023
    Assignee: SiFive, Inc.
    Inventors: Henry Cook, Ernest L. Edgar, Ryan Macdonald, Wesley Waylon Terpstra
  • Patent number: 11640301
    Abstract: Systems and methods are disclosed for duplicate detection for register renaming. For example, a method includes checking a map table for duplicates of a first physical register, wherein the map table stores entries that each map an architectural register of an instruction set architecture to a physical register of a microarchitecture and a duplicate is two or more architectural registers that are mapped to a same physical register; and, responsive to a duplicate of the first physical register in the map table, preventing the first physical register from being added to a free list upon retirement of an instruction that renames an architectural register that was previously mapped to the first physical register to a different physical register, wherein the free list stores entries that indicate which physical registers are available for renaming.
    Type: Grant
    Filed: April 4, 2022
    Date of Patent: May 2, 2023
    Assignee: SiFive, Inc.
    Inventor: Joshua Smith
  • Patent number: 11630930
    Abstract: Systems and methods are disclosed for to generation of dynamic design flows for integrated circuits. For example, a method may include accessing a design flow configuration data structure, wherein the design flow configuration data structure is encoded in a tool control language; based on the design flow configuration data structure, selecting multiple flowmodules from a set of flowmodules, wherein each flowmodule provides an application programming interface, in the tool control language, to a respective electronic design automation tool; based on the design flow configuration data structure, generating a design flow as a directed acyclic graph including the selected flowmodules as vertices; and generating an output integrated circuit design data structure, based on one or more input integrated circuit design data structures, using the design flow to control the respective electronic design automation tools of the selected flowmodules.
    Type: Grant
    Filed: June 28, 2021
    Date of Patent: April 18, 2023
    Assignee: SiFive, Inc.
    Inventor: Han Chen
  • Patent number: 11620229
    Abstract: Described is a data cache with prediction hints for a cache hit. The data cache includes a plurality of cache lines, where a cache line includes a data field, a tag field, and a prediction hint field. The prediction hint field is configured to store a prediction hint which directs alternate behavior for a cache hit against the cache line. The prediction hint field is integrated with the tag field or is integrated with a way predictor field.
    Type: Grant
    Filed: February 21, 2020
    Date of Patent: April 4, 2023
    Assignee: SiFive, Inc.
    Inventors: John Ingalls, Josh Smith
  • Patent number: 11610036
    Abstract: Systems and methods are disclosed for automated generation of integrated circuit designs and associated data. These allow the design of processors and SoCs by a single, non-expert who understands high-level requirements; allow the en masse exploration of the design-space through the generation processors across the design-space via simulation, or emulation; allow the easy integration of IP cores from multiple third parties into an SoC; allow for delivery of a multi-tenant service for producing processors and SoCs that are customized while also being pre-verified and delivered with a complete set of developer tools, documentation and related outputs. Some embodiments, provide direct delivery, or delivery into a cloud hosting environment, of finished integrated circuits embodying the processors and SoCs.
    Type: Grant
    Filed: June 28, 2021
    Date of Patent: March 21, 2023
    Assignee: SiFive, Inc.
    Inventors: Yunsup Lee, Richard Xia, Derek Pappas, Mark Nugent, Henry Cook, Wesley Waylon Terpstra, Pin Hung Chen
  • Patent number: 11556413
    Abstract: Systems and methods are disclosed for checker cores for fault tolerant processing. For example, an integrated circuit (e.g., a processor) for executing instructions includes a processor core configured to execute instructions of an instruction set; an outer memory system configured to store instructions and data; and a checker core configured to receive committed instruction packets from the processor core and check the committed instruction packets for errors, wherein the checker core is configured to utilize a memory pathway of the processor core to access the outer memory system by receiving instructions and data read from the outer memory system as portions of committed instruction packets from the processor core. For example, data flow from the processor core to the checker core may be limited to committed instruction packets received via dedicated a wire bundle.
    Type: Grant
    Filed: December 8, 2020
    Date of Patent: January 17, 2023
    Assignee: SiFive, Inc.
    Inventors: Murali Vijayaraghavan, Krste Asanovic
  • Patent number: 11467962
    Abstract: Described are methods and a system for atomic memory operations with contended cache lines. A processing system includes at least two cores, each core having a local cache, and a lower level cache in communication with each local cache. One local cache configured to request a cache line to execute an atomic memory operation (AMO) instruction, receive the cache line via the lower level cache, receive a probe downgrade due to other local cache requesting the cache line prior to execution of the AMO, and send the AMO instruction to the lower level cache for remote execution in response to the probe downgrade.
    Type: Grant
    Filed: September 2, 2020
    Date of Patent: October 11, 2022
    Assignee: SiFive, Inc.
    Inventors: John Ingalls, Wesley Waylon Terpstra, Henry Cook, Leigang Kou
  • Patent number: 11467961
    Abstract: Described is a data cache implementing hybrid writebacks and writethroughs. A processing system includes a memory, a memory controller, and a processor. The processor includes a data cache including cache lines, a write buffer, and a store queue. The store queue writes data to a hit cache line and an allocated entry in the write buffer when the hit cache line is initially in at least a shared coherence state, resulting in the hit cache line being in a shared coherence state with data and the allocated entry being in a modified coherence state with data. The write buffer requests and the memory controller upgrades the hit cache line to a modified coherence state with data based on tracked coherence states. The write buffer retires the data upon upgrade. The data cache writebacks the data to memory for a defined event.
    Type: Grant
    Filed: May 27, 2021
    Date of Patent: October 11, 2022
    Assignee: SiFive, Inc.
    Inventors: John Ingalls, Wesley Waylon Terpstra, Henry Cook
  • Publication number: 20220292183
    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.
    Type: Application
    Filed: May 27, 2022
    Publication date: September 15, 2022
    Applicant: SiFive, Inc.
    Inventors: Alex Solomatnikov, Krste Asanovic, Yann Loisel, Cyril Bresch
  • Patent number: 11443071
    Abstract: Systems and methods are disclosed for secure debug architecture. For example, an integrated circuit (e.g., a processor) for executing instructions includes a processor core configured to execute instructions; a debug interface comprising two or more conductors with input/output drivers configured to, when enabled, transmit and receive signals between the processor core and an external host device via the two or more conductors; and wherein the integrated circuit is configured to: receive a request from a host device for access to the integrated circuit via the debug interface; responsive to the request, generate a random number; transmit the random number from the integrated circuit to the host device via the debug interface; receive, from the host device via the debug interface, input data that has been encrypted using the random number as a key; and decrypt the input data using the random number as a key.
    Type: Grant
    Filed: February 13, 2020
    Date of Patent: September 13, 2022
    Assignee: SiFive, Inc.
    Inventors: Yann Loisel, Frank Lhermet