Patents Assigned to SiFive, Inc.
-
Publication number: 20260154206Abstract: 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: ApplicationFiled: January 21, 2026Publication date: June 4, 2026Applicant: SiFive, Inc.Inventor: John Ingalls
-
Patent number: 12632631Abstract: 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: GrantFiled: May 2, 2023Date of Patent: May 19, 2026Assignee: SiFive, Inc.Inventors: Cameron Mcnairy, Michael Avner Urbach, Colin Schmidt
-
Publication number: 20260133804Abstract: 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: ApplicationFiled: January 31, 2025Publication date: May 14, 2026Applicant: SiFive, Inc.Inventors: Hung-Lun Chen, Chih-Kai Yang, I-Cheng Cheng
-
Publication number: 20260133803Abstract: 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: ApplicationFiled: November 13, 2024Publication date: May 14, 2026Applicant: SiFive, Inc.Inventors: Hung-Lun Chen, Chih-Kai Yang, I-Cheng Cheng
-
Patent number: 12625756Abstract: 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: GrantFiled: July 11, 2022Date of Patent: May 12, 2026Assignee: SiFive, Inc.Inventors: Ernest L. Edgar, Bruce Ableidinger
-
Patent number: 12625833Abstract: 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: GrantFiled: October 9, 2023Date of Patent: May 12, 2026Assignee: SiFive, Inc.Inventors: Edward Mclellan, Arjun Pal Chowdury
-
Publication number: 20260127065Abstract: 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: ApplicationFiled: November 5, 2024Publication date: May 7, 2026Applicant: SiFive, Inc.Inventors: John Ingalls, Perrine Peresse, Cyril Bresch
-
Patent number: 12602329Abstract: 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: GrantFiled: September 27, 2023Date of Patent: April 14, 2026Assignee: SiFive, Inc.Inventors: John Ingalls, Andrew Waterman
-
Patent number: 12591527Abstract: 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: GrantFiled: June 18, 2024Date of Patent: March 31, 2026Assignee: SiFive, Inc.Inventors: Robert P. Adler, David Parry, Rick H. Y. Chen, Henry Cook
-
Publication number: 20260087214Abstract: 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: ApplicationFiled: September 24, 2024Publication date: March 26, 2026Applicant: SiFive, Inc.Inventor: Schuyler Eldridge
-
Publication number: 20260072775Abstract: The present application relates to devices and components including apparatus, systems, and methods for measurements for serving cell configuration.Type: ApplicationFiled: September 12, 2024Publication date: March 12, 2026Applicant: SiFive, Inc.Inventor: Jon Stephan
-
Publication number: 20260072689Abstract: 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: ApplicationFiled: November 7, 2025Publication date: March 12, 2026Applicant: SiFive, Inc.Inventors: Andrew Waterman, Krste Asanovic, Joshua Smith
-
Publication number: 20260064426Abstract: 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: ApplicationFiled: September 25, 2025Publication date: March 5, 2026Applicant: SiFive, Inc.Inventors: Krste Asanovic, Andrew Waterman
-
Patent number: 12566606Abstract: 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: GrantFiled: March 13, 2023Date of Patent: March 3, 2026Assignee: SiFive, Inc.Inventors: Eric Andrew Gouldey, Wesley Waylon Terpstra, Michael Klinglesmith
-
Publication number: 20260056737Abstract: A matrix multiply engine can include a first operand buffer and a second operand buffer, each of which can store multiple operand elements arranged in rows and columns. A cell array can be formed of cells, where each cell includes a memory and accumulator circuitry to receive operand elements column-wise from each of the first operand buffer and the second operand buffer, to compute a dot product of the received operand elements, and to accumulate the dot product into a corresponding tile state element in the memory. Matrix elements of the operand matrices to be multiplied can be loaded row-wise into rows of the operand buffers and read column-wise into the cells. The number of elements for which a dot product is computed can be selected depending on operand element width.Type: ApplicationFiled: January 31, 2025Publication date: February 26, 2026Applicant: SiFive, Inc.Inventors: David John Simpson, Krste Asanovic, Andrew Waterman, Michael Todd Ruff
-
Publication number: 20260056736Abstract: A matrix multiply engine can include a first operand buffer and a second operand buffer, each of which can store multiple operand elements arranged in rows and columns. A cell array can be formed of cells, where each cell includes a memory and accumulator circuitry to receive operand elements column-wise from each of the first operand buffer and the second operand buffer, to compute a dot product of the received operand elements, and to accumulate the dot product into a corresponding tile state element in the memory. Matrix elements of the operand matrices to be multiplied can be loaded row-wise into rows of the operand buffers and read column-wise into the cells. The number of elements for which a dot product is computed can be selected depending on operand element width.Type: ApplicationFiled: August 23, 2024Publication date: February 26, 2026Applicant: SiFive, Inc.Inventors: David John Simpson, Krste Asanovic, Andrew Waterman, Michael Todd Ruff
-
Patent number: 12561246Abstract: Systems and methods are disclosed for virtualized caches. For example, an integrated circuit (e.g., a processor) for executing instructions includes a virtually indexed physically tagged first-level (L1) cache configured to output to an outer memory system one or more bits of a virtual index of a cache access as one or more bits of a requestor identifier. For example, the L1 cache may be configured to operate as multiple logical L1 caches with a cache way of a size less than or equal to a virtual memory page size. For example, the integrated circuit may include an L2 cache of the outer memory system that is configured to receive the requestor identifier and implement a cache coherency protocol to disambiguate an L1 synonym occurring in multiple portions of the virtually indexed physically tagged L1 cache associated with different requestor identifier values.Type: GrantFiled: September 12, 2022Date of Patent: February 24, 2026Assignee: SiFive, Inc.Inventor: Wesley Waylon Terpstra
-
Patent number: 12554650Abstract: 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: GrantFiled: June 18, 2024Date of Patent: February 17, 2026Assignee: SiFive, Inc.Inventor: John Ingalls
-
Patent number: 12554504Abstract: Apparatus and methods for dependency tracking, chaining, and/or fusing for vector instructions. A system, processor, or integrated circuit includes a renamer to generate a valid bit mask for each micro-operation decoded from a first vector instruction, where the valid bit mask indicates what portion of a mask register to write and generate a dependency bit mask for each micro-operation decoded from a second vector instruction, where the dependency bit mask is based on a relationship between the first vector instruction and the second vector instruction, and an issue queue configured to issue for execution each micro-operation from the second vector instruction when an associated dependency bit mask is cleared based on execution of appropriate micro-operations from the first vector instruction.Type: GrantFiled: April 26, 2023Date of Patent: February 17, 2026Assignee: SiFive, Inc.Inventors: Bradley Gene Burgess, David Kravitz
-
Patent number: 12530197Abstract: Apparatus and methods for cracking and processing vector instructions in a vector pipeline after decoding of a single or a first micro-operation in a main or primary pipeline are described. An integrated circuit includes a primary pipeline to decode a micro-operation from an instruction, create a reorder buffer entry in a reorder buffer for the micro-operation, responsive to a determination that the instruction is a vector instruction, send the micro-operation to a vector pipeline, and responsive to a determination that the instruction is a multiple register vector instruction, signal a vector pipeline to decode a remaining micro-operations from the instruction, and the vector pipeline to process the micro-operation, and process the remaining micro-operations when the instruction is the multiple register vector instruction.Type: GrantFiled: March 8, 2023Date of Patent: January 20, 2026Assignee: SiFive, Inc.Inventors: Bradley Gene Burgess, David Kravitz