Patents Assigned to SiFive, Inc.
  • Patent number: 12681730
    Abstract: A system may include a processor having a pipeline, a plurality of counters, and trigger circuitry. The plurality of counters may mount events associated with processing instructions in the pipeline. Counters of the plurality of counters may count different events. The trigger circuitry may trigger a performance measurement for a first instruction after counters of the plurality of counters meet predefined values. Triggering the performance measurement may cause the plurality of counters to reset and then count events associated with processing the first instruction. In some implementations, the trigger circuitry may trigger the performance measurement based on an AND selection and/or an OR selection of multiple counters of the plurality of counters meeting predefined values.
    Type: Grant
    Filed: July 24, 2023
    Date of Patent: July 14, 2026
    Assignee: SiFive, Inc.
    Inventor: David John Simpson
  • Patent number: 12675367
    Abstract: Systems and methods are disclosed for cycle accurate tracing of vector instructions. For example, a system may include a vector unit in communication with a scalar core. The vector unit may include a vector instruction queue that receives vector instructions from the scalar core. The vector unit may also include a vector execution unit that executes vector instructions from the vector instruction queue. The system may also include checkpoints in the vector unit including a first checkpoint including circuitry that sets a first bit for a first clock cycle in which a first vector instruction exits the vector instruction queue, and a second checkpoint including circuitry that sets a second bit for a second clock cycle in which a second vector instruction exits the vector execution unit.
    Type: Grant
    Filed: June 28, 2024
    Date of Patent: July 7, 2026
    Assignee: SiFive, Inc.
    Inventors: Bruce Ableidinger, Ernest L. Edgar
  • Patent number: 12663994
    Abstract: Systems and methods are disclosed for supporting multiple vector lengths with a configurable vector register file. For example, an integrated circuit (e.g., a processor) includes a data store configured to store a vector length parameter; a processor core including a vector register, wherein the processor core is configured to: while a first value of the vector length parameter is stored in the data store, store a single architectural register of an instruction set architecture in the vector register; and, while a second value of the vector length parameter is stored in the data store, store multiple architectural registers of the instruction set architecture in respective disjoint portions of the vector register. For example, the integrated circuit may be used to emulate a processor with smaller vector registers for the purpose of migrating a thread to a processor core of the integrated circuit for continued execution.
    Type: Grant
    Filed: June 30, 2023
    Date of Patent: June 23, 2026
    Assignee: SiFive, Inc.
    Inventors: Andrew Waterman, Krste Asanovic
  • Patent number: 12663992
    Abstract: Prediction circuitry may generate a vector length prediction associated with a configuration instruction prior to completion of execution of the configuration instruction. The vector length prediction may indicate a number of data elements on which a vector instruction will operate. In some implementations, the prediction circuitry can generate the vector length prediction by detecting a repeating pattern of vector lengths associated with earlier executions of the configuration instruction. In some implementations, the prediction circuitry can generate the vector length prediction by detecting decrements of an application vector length by a constant value.
    Type: Grant
    Filed: October 10, 2023
    Date of Patent: June 23, 2026
    Assignee: SiFive, Inc.
    Inventor: Bradley Gene Burgess
  • Patent number: 12664098
    Abstract: An integrated circuit for translating and reverse-translating the address included in a memory request is disclosed. The integrated circuit may first comprise a processor, a first boundary function, a second boundary function, and a component device. The processor is configured to transmit a memory request to a target module over a bus of the integrated circuit. The memory request requests access to one or more memory mapped resources and the memory request includes a physical address. The first boundary function is configured to translate the physical address to a relative address which operates in or applies to a different address space than an address space that the physical address operates in or applies to. The second boundary function is configured to translate the relative address to the physical address. The device is configured utilize the physical address transmitted by the second boundary function.
    Type: Grant
    Filed: January 28, 2025
    Date of Patent: June 23, 2026
    Assignee: SiFive, Inc.
    Inventors: Dean A. Liberty, Robert P. Adler, Henry Cook, Abderrahmane Sensaoui, Perrine Peresse
  • Patent number: 12650465
    Abstract: A first circuitry may be configured to generate a first output based on an input and send an indication responsive to detection of an error while the first output is generated. A second circuitry may be configured to generate a second output based on the input. A wrapper circuitry may be configured to compare the first output and the second output to check correctness by default, and responsive to receipt of the indication, select the second output as a system output without checking for correctness by comparing the first output and the second output. In some implementations, the second circuitry may be configured to send a second indication responsive to detection of a second error while the second output is generated. The wrapper circuitry may be configured to, responsive to receipt of the second indication, ignore the check for correctness.
    Type: Grant
    Filed: November 2, 2023
    Date of Patent: June 9, 2026
    Assignee: SiFive, Inc.
    Inventor: Cameron Mcnairy
  • Publication number: 20260154206
    Abstract: Systems and methods are disclosed for store-to-load forwarding for processor pipelines. For example, an integrated circuit (e.g., a processor) for executing instructions includes a processor pipeline; a store queue that has entries associated with respective store instructions that are being executed, wherein an entry of the store queue includes a tag that is determined based on a virtual address of a target of the associated store instruction; and store-to-load forwarding circuitry that is configured to: compare a first virtual address of a target of a first load instruction being executed by the load unit to respective tags of one or more entries in the store queue; select an entry of the store queue based on a match between the first virtual address and the tag of the selected entry; and forward data of the selected entry in the store queue to be returned by the first load instruction.
    Type: Application
    Filed: January 21, 2026
    Publication date: June 4, 2026
    Applicant: SiFive, Inc.
    Inventor: John Ingalls
  • Patent number: 12632631
    Abstract: A system may generate an annotation based on an attribute determined in connection with logic. In some implementations, the logic may be between a first function (e.g., a first point of logic, such as an encoder) and a second function (e.g., a second point of logic, such as a decoder) in a first level circuit representation. The attribute may indicate, for example, fault protection using error correction code, parity, or Gray code, or a power level, frequency domain, or clock domain. The system may then identify circuitry in a second level circuit representation corresponding to the annotated logic in the first level circuit representation. The second level circuit representation may be generated based on the first level circuit representation. The system may then mark the identified circuitry in the second level circuit representation having the attribute. In some implementations, the system may determine a fault profile of an integrated circuit design based on the marking.
    Type: Grant
    Filed: May 2, 2023
    Date of Patent: May 19, 2026
    Assignee: SiFive, Inc.
    Inventors: Cameron Mcnairy, Michael Avner Urbach, Colin Schmidt
  • Publication number: 20260133804
    Abstract: Prefetchers can have improved ability to make predictions in the presence of speculative execution. The prefetcher can maintain a training queue of addresses and can predict an address for a prefetch request based on the addresses in the training queue. The addresses in the training queue can be marked to distinguish addresses associated with speculatively-executed instructions from addresses associated with non-speculatively-executed instructions. If the speculation is determined to be incorrect, the prefetcher can remove the speculative addresses from the training queue, and if the speculation is determined to be correct, the prefetcher can remove the marking from the addresses associated with speculatively-executed instructions. The prefetcher can also pause prefetching during speculative execution.
    Type: Application
    Filed: January 31, 2025
    Publication date: May 14, 2026
    Applicant: SiFive, Inc.
    Inventors: Hung-Lun Chen, Chih-Kai Yang, I-Cheng Cheng
  • Publication number: 20260133803
    Abstract: Prefetchers can have improved ability to make predictions in the presence of speculative execution. The prefetcher can maintain a training queue of addresses and can predict an address for a prefetch request based on the addresses in the training queue. The addresses in the training queue can be marked to distinguish addresses associated with speculatively-executed instructions from addresses associated with non-speculatively-executed instructions. If the speculation is determined to be incorrect, the prefetcher can remove the speculative addresses from the training queue, and if the speculation is determined to be correct, the prefetcher can remove the marking from the addresses associated with speculatively-executed instructions. The prefetcher can also pause prefetching during speculative execution.
    Type: Application
    Filed: November 13, 2024
    Publication date: May 14, 2026
    Applicant: SiFive, Inc.
    Inventors: Hung-Lun Chen, Chih-Kai Yang, I-Cheng Cheng
  • Patent number: 12625756
    Abstract: Systems and methods are disclosed for processor crash analysis using register sampling. For example, an integrated circuit may include a processor core configured to execute instructions, wherein the processor core includes a program counter register and an exception program counter register (e.g., a machine exception program counter register) that is configured to store a program counter value that was current when an exception occurred; a data store connected to the exception program counter register via an ingress port that is configured to store a copy of an exception program counter value responsive to retirement of an instruction; and an exception program counter capture register, configured to store an exception program counter value from the second data store responsive to a reset signal for the processor core.
    Type: Grant
    Filed: July 11, 2022
    Date of Patent: May 12, 2026
    Assignee: SiFive, Inc.
    Inventors: Ernest L. Edgar, Bruce Ableidinger
  • Patent number: 12625833
    Abstract: Systems and methods are described for a flexible and selectable power management interface. The flexible and selectable power management interface can provide multiple power management interfaces which are selectable based on a selected processor IP core, a selected power management controller, and a variety of factors. The flexible and selectable power management interface can be a direct handshake hardware interface, a memory-mapped bus interface, or a combination of the direct handshake hardware interface and the memory-mapped bus interface.
    Type: Grant
    Filed: October 9, 2023
    Date of Patent: May 12, 2026
    Assignee: SiFive, Inc.
    Inventors: Edward Mclellan, Arjun Pal Chowdury
  • Publication number: 20260127065
    Abstract: The present application relates to devices and components, including apparatus, systems, and methods for scheduling delivery and execution of page fault or permission fault exceptions. A memory management unit may receive a virtual address associated with an execution mode and initiate a virtual-to-physical translation operation. The MMU may detect a first condition associated with a search of the virtual address in a translation lookaside buffer (TLB). In response to the detection of the first condition, MMU may start a timer. MMU may detect a fault exception associated with the translation operation of the virtual address and determine that a second condition is satisfied. In response to detecting the second condition, the MMU or the reorder buffer exception monitor may deliver the fault exception based on the timer.
    Type: Application
    Filed: November 5, 2024
    Publication date: May 7, 2026
    Applicant: SiFive, Inc.
    Inventors: John Ingalls, Perrine Peresse, Cyril Bresch
  • Patent number: 12602329
    Abstract: Systems and methods are disclosed for atomic memory operations for address translation. For example, an integrated circuit (e.g., a processor) for executing instructions includes a memory system including random access memory; a bus connected to the memory system; and an atomic memory operation circuitry configured to receive a request from the bus to access an entry in a page table stored in the memory system, wherein the request includes an indication of whether an instruction that references an address being translated using the entry is a store instruction; access the entry in the page table; responsive to the indication indicating that the instruction is a store instruction, set a dirty bit of the entry in the page table; and transmit contents of the entry on the bus in response to the request.
    Type: Grant
    Filed: September 27, 2023
    Date of Patent: April 14, 2026
    Assignee: SiFive, Inc.
    Inventors: John Ingalls, Andrew Waterman
  • Patent number: 12591527
    Abstract: Disclosed are systems and methods that include accessing design parameters to configure an integrated circuit design. The integrated circuit design may include a transaction source or processing node to be included in an integrated circuit. The transaction source or processing node may be configured to transmit memory transactions to memory addresses. A compiler may compile the integrated circuit design with the transaction source or processing node to generate a design output. The design output may be configured to route memory transactions based on their targeting cacheable or non-cacheable memory addresses. The design output may be used to manufacture an integrated circuit.
    Type: Grant
    Filed: June 18, 2024
    Date of Patent: March 31, 2026
    Assignee: SiFive, Inc.
    Inventors: Robert P. Adler, David Parry, Rick H. Y. Chen, Henry Cook
  • Publication number: 20260087214
    Abstract: The present application relates to generating a design for an integrated circuit, where the design includes a layer that can be enabled and/or disabled on demand. In an example, a system receives an input declaring a layer associated with a function. The system defines a first layer block of the layer, where corresponding code references the layer and is included in code of a first module. The system defines a second layer block of the layer, where corresponding code references the layer and is included in code of a second module. The system defines a first port for the first layer block, the first port referencing the layer and indicating that output of the first layer block is accessible to the second layer block conditioned on the layer being enabled. The system causes a compilation of the codes, where the compilation removes the first port from the circuit design.
    Type: Application
    Filed: September 24, 2024
    Publication date: March 26, 2026
    Applicant: SiFive, Inc.
    Inventor: Schuyler Eldridge
  • Publication number: 20260072775
    Abstract: The present application relates to devices and components including apparatus, systems, and methods for measurements for serving cell configuration.
    Type: Application
    Filed: September 12, 2024
    Publication date: March 12, 2026
    Applicant: SiFive, Inc.
    Inventor: Jon Stephan
  • Publication number: 20260072689
    Abstract: Systems and methods are disclosed for macro-op fusion in pipelined architectures. For example, some methods include detecting a sequence of macro-ops stored in an instruction decode buffer, the sequence of macro-ops including a first macro-op, followed by one or more intervening macro-ops, followed by a last macro-op; determining a micro-op that is equivalent to the first macro-op combined with the last macro-op; and forwarding the micro-op to one or more execution resource circuitries for execution.
    Type: Application
    Filed: November 7, 2025
    Publication date: March 12, 2026
    Applicant: SiFive, Inc.
    Inventors: Andrew Waterman, Krste Asanovic, Joshua Smith
  • Publication number: 20260064426
    Abstract: Systems and methods are disclosed for register renaming. For example, an integrated circuit is described that includes a first cluster including a first set of physical registers and a first execution resource circuit, wherein the inputs for operations of the first execution resource circuit are of a first data type; a second cluster including a second set of physical registers and a second execution resource circuit, wherein the inputs for operations of the second execution resource circuit are of a second data type that is different than the first data type; and a register renaming circuit configured to: determine a data type prediction for a result of a first instruction that will be mapped to a first logical register; and, based on the data type prediction matching the first data type, rename the first logical register to be mapped to a physical register of the first set of physical registers.
    Type: Application
    Filed: September 25, 2025
    Publication date: March 5, 2026
    Applicant: SiFive, Inc.
    Inventors: Krste Asanovic, Andrew Waterman
  • Patent number: 12566606
    Abstract: Prefetch circuitry may be configured to transmit a message to prefetch one or more cache blocks of a group. The message may indicate an address for the group of cache blocks and a bit field that indicates the one or more cache blocks of the group to prefetch. In some implementations, the message may target a higher level cache to prefetch the one or more cache blocks, and the message may be transmitted to the higher level cache via a lower level cache. In some implementations, the message may target a higher level cache to prefetch the one or more cache blocks, the message may be transmitted to a lower level cache via a first command bus, and the lower level cache may forward the message to the higher level cache via a second command bus.
    Type: Grant
    Filed: March 13, 2023
    Date of Patent: March 3, 2026
    Assignee: SiFive, Inc.
    Inventors: Eric Andrew Gouldey, Wesley Waylon Terpstra, Michael Klinglesmith