Patents Assigned to SiFive, Inc.
-
Patent number: 12367047Abstract: Systems and methods are disclosed for debug path profiling. For example, a processor pipeline may execute instructions. A debug trace circuitry may, responsive to an indication of a non-sequential execution of an instruction by the processor pipeline, generate a record including an address pair and one or more counter values. The address pair may include a first address corresponding to a first instruction before the non-sequential execution and a second address corresponding to a second instruction resulting in the non-sequential execution. The one or more counter values may indicate, for example, a count of instructions executed, a type of instruction executed, cache misses, cycles consumed by cache misses, translation lookaside buffer misses, cycles consumed by translation lookaside buffer misses, and/or processor stalls.Type: GrantFiled: November 6, 2023Date of Patent: July 22, 2025Assignee: SiFive, Inc.Inventor: Bruce Ableidinger
-
Patent number: 12367154Abstract: Systems and methods are disclosed for logging guest physical address for memory access faults. For example, a method for logging guest physical address includes receiving a first address translation request from a processor pipeline at a translation lookaside buffer for a first guest virtual address; identifying a hit with a fault condition corresponding to the first guest virtual address; responsive to the fault condition, invoking a single-stage page table walk with the first guest virtual address to obtain a first guest physical address; and storing the first guest physical address with the first guest virtual address in a data store, wherein the data store is separate from an entry in the translation lookaside buffer that includes a tag that includes the first guest virtual address and data that includes a physical address.Type: GrantFiled: December 21, 2022Date of Patent: July 22, 2025Assignee: SiFive, Inc.Inventors: John Ingalls, Andrew Waterman
-
Patent number: 12346268Abstract: Systems and methods are disclosed for address range encoding in a system on a chip with a securely partitioned memory space. For example, methods may include receiving, via a bus from a processor core, a memory request for a memory mapped resource; comparing an address included in the memory request to an address range, determined based on an address field and an address range configuration field, for a resource; comparing a first hardware security identifier from the memory request to a hardware security list associated with the resource when the address of the memory request is within the address range for the resource; and, based on the comparison of the first hardware security identifier with the hardware security list, determining whether to allow or reject access to the resource for the memory request.Type: GrantFiled: February 28, 2023Date of Patent: July 1, 2025Assignee: SiFive, Inc.Inventor: Krste Asanovic
-
Patent number: 12340226Abstract: Apparatus and methods for vector instruction cracking after scalar dispatch are described. An integrated circuit includes a primary pipeline and a vector pipeline. The primary pipeline is configured to determine a type of instruction, responsive to a determination that the instruction is a vector instruction, create a reorder buffer entry in a reorder buffer for the vector instruction prior to out-of-order processing in the primary pipeline, and send the vector instruction to a vector pipeline. The vector pipeline is configured to process the vector instruction.Type: GrantFiled: September 18, 2023Date of Patent: June 24, 2025Assignee: SiFive, Inc.Inventor: Kathlene Rose Magnus
-
Patent number: 12332799Abstract: A method and apparatus for a speculative request indicator is described. A method includes providing, for a cache hierarchy, a messaging protocol used for transfer operations among agents in the cache hierarchy, the messaging protocol indicating acceptable cache coherency states for a cache block indicated in a request message and providing, in the messaging protocol for selection by an agent, a speculative request indicator when sending the request message, wherein the speculative request indicator differentiates between a demand request and a speculative request with respect to the cache block.Type: GrantFiled: June 26, 2023Date of Patent: June 17, 2025Assignee: SiFive, Inc.Inventors: Wesley Waylon Terpstra, Eric Andrew Gouldey, Michael Klinglesmith, Henry Cook
-
Publication number: 20250190358Abstract: 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: ApplicationFiled: January 28, 2025Publication date: June 12, 2025Applicant: SiFive, Inc.Inventors: Dean A. Liberty, Robert P. Adler, Henry Cook, Abderrahmane Sensaoui, Perrine Peresse
-
Publication number: 20250181355Abstract: 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: ApplicationFiled: January 31, 2025Publication date: June 5, 2025Applicant: SiFive, Inc.Inventors: Bradley Gene Burgess, David Kravitz
-
Publication number: 20250181507Abstract: An agent may be configured to invoke a first eviction operation that is interruptible by probe operations when receiving a first type of eviction message and invoke a second eviction operation in which probe operations are interruptible by the second eviction operation when receiving a second type of eviction message. In some implementations, the agent may maintain a data storage that is inclusive of at least one of unique or dirty cache blocks in a cache maintained by an agent that transmits the second type of eviction message. In some implementations, the agent may prevent a cache block from transitioning from a modified state to an exclusive state when the agent invokes the second eviction operation to evict the cache block. In some implementations, the agent may convert from the second eviction operation to the first eviction operation when receiving the second type of eviction message.Type: ApplicationFiled: January 30, 2025Publication date: June 5, 2025Applicant: SiFive, Inc.Inventors: Michael Klinglesmith, Eric Gouldey, Wesley Terpstra
-
Publication number: 20250181519Abstract: Systems and methods are disclosed for concurrent support for multiple cache inclusivity schemes using low priority evict operations. For example, some methods may include, receiving a first eviction message having a lower priority than probe messages from a first inner cache; receiving a second eviction message having a higher priority than probe messages from a second inner cache; transmitting a third eviction message, determined based on the first eviction message, having the lower priority than probe messages to a circuitry that is closer to memory in a cache hierarchy; and, transmitting a fourth eviction message, determined based on the second eviction message, having the lower priority than probe messages to the circuitry that is closer to memory in the cache hierarchy.Type: ApplicationFiled: February 3, 2025Publication date: June 5, 2025Applicant: SiFive, Inc.Inventors: Wesley Terpstra, Richard Van, Eric Andrew Gouldey
-
Publication number: 20250173281Abstract: A method for managing orders of operations between one or more clients and one or more servers is disclosed. The method includes partitioning addressable regions of logical servers on or within an interconnect link into multiple regions including a first orderable region, and providing logical client an ability to push ordering responsibility within the first orderable region to a server. Over the first orderable region, two request messages for access to memory-mapped sources including two respective operations are transmitted, and the two request messages originate from a same logical client. The ordering responsibility can include a first rule for order of operations between the two request messages.Type: ApplicationFiled: January 29, 2025Publication date: May 29, 2025Applicant: SiFive, Inc.Inventors: Eric Andrew Gouldey, Michael Klinglesmith, Henry Cook, Wesley Terpstra
-
Publication number: 20250173277Abstract: 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.Type: ApplicationFiled: January 30, 2025Publication date: May 29, 2025Applicant: SiFive, Inc.Inventors: Andrew Waterman, Krste Asanovic
-
Patent number: 12314191Abstract: Systems and methods are disclosed for memory protection for vector operations. For example, a method includes fetching a vector memory instruction using a processor core including a pipeline configured to execute instructions, including constant-stride vector memory instructions; partitioning a vector that is identified by the vector memory instruction into a subvector of a maximum length, greater than one, and one or more additional subvectors with lengths less than or equal to the maximum length; checking, using a memory protection circuit, whether accessing elements of the subvector will cause a memory protection violation; and accessing the elements of the subvector before checking, using the memory protection circuit, whether accessing elements of one of the one or more additional subvectors will cause a memory protection violation.Type: GrantFiled: September 1, 2021Date of Patent: May 27, 2025Assignee: SiFive, Inc.Inventors: Krste Asanovic, Andrew Waterman
-
Patent number: 12314715Abstract: Apparatus and methods for tracking sub-micro-operations and groups thereof are described. An integrated circuit includes a load store unit configured to receive store micro-operations cracked from a vector store instruction. The load store unit is configured to unroll multiple store sub-micro-operations from each of the store micro-operations. The load store unit includes an issue status vector to track issuance of each sub-micro-operation, an unroll status vector to track unrolling of each sub-micro-operation associated with a group of sub-micro-operations, and a replay status vector to track a replayability of sub-micro-operations associated with the group of sub-micro-operations.Type: GrantFiled: June 15, 2023Date of Patent: May 27, 2025Assignee: SiFive, Inc.Inventors: Yueh Chi Wu, Yohann Rabefarihy
-
Patent number: 12314718Abstract: A method for performing segmented vector store operations is disclosed. The method includes decoding one or more segmented vector store micro-operations (uops) of segmented vector store instruction in a pipeline, allocating, based on each of the one or more segmented vector store uops, one or more respective store buffer entries in First-in, First-out (FIFO) order, stalling the pipeline until store buffer entries are allocated by all of segmented vector store uops of the segmented vector store instruction, and writing, based on each of the one or more segmented vector store uops, manipulated vector data into multiple store buffer entries.Type: GrantFiled: March 1, 2023Date of Patent: May 27, 2025Assignee: SiFive, Inc.Inventor: Josh Smith
-
Publication number: 20250147761Abstract: Prefetch circuitry may be configured to transmit a message to cancel a prefetch of one or more cache blocks of a group. The message may correspond to a prefetch message by indicating an address for the group and a bit field for the one or more cache blocks of the group to cancel. In some implementations, the message may target a higher level cache to cancel prefetching 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 cancel prefetching 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: ApplicationFiled: January 10, 2025Publication date: May 8, 2025Applicant: SiFive, Inc.Inventors: Eric Andrew Gouldey, Wesley Terpstra, Michael Klinglesmith
-
Patent number: 12293192Abstract: Apparatus and methods which bundle micro-operations with respect to a vector instruction, dynamically allocate register blocks for a vector instruction, and track the registers using valid bits. A method includes decoding, by a decoder, a vector instruction having a length multiplier of at least two into a number of micro-operations less than the length multiplier, allocating, by an issue queue, an issue queue entry to each of the number of micro-operations and executing, by the issue queue with execution units, each of the number of micro-operations a number of times from the issue queue entry to collectively match the length multiplier.Type: GrantFiled: April 28, 2023Date of Patent: May 6, 2025Assignee: SiFive, Inc.Inventors: Bradley Gene Burgess, David Kravitz, Alexandre Solomatnikov
-
Patent number: 12271309Abstract: Systems and techniques are disclosed for relative age tracking for entries in a buffer. For example, some techniques may include pre-computing age matrix entries of an age matrix corresponding to invalid entries of a data buffer based on a validity indication (e.g., a valid bit mask), wherein the validity indication identifies valid entries in the data buffer and the age matrix tracks relative ages of the entries in the data buffer; responsive to data being received for storage in the data buffer, selecting an entry corresponding to an index value in the data buffer from among a set of invalid entries of the data buffer; storing the data in the entry corresponding to the index value; and updating the validity indication to indicate that the entry corresponding to the index value is valid.Type: GrantFiled: December 1, 2023Date of Patent: April 8, 2025Assignee: SiFive, Inc.Inventor: Wesley Waylon Terpstra
-
Publication number: 20250110896Abstract: Cache circuitry may be configured to receive a first message to downgrade a permission associated with data stored in a current level cache. For example, the current level cache could be a level two (L2) cache. The cache circuitry could receive the first message from a processor core having a level one (L1) cache. The cache circuitry may forward the first message to a higher level cache. For example, the higher level cache could be a level three (L3) cache. The cache circuitry may downgrade the permission associated with data stored in the current level cache based on receiving a second message from the higher level cache. The cache circuitry may forward the first message before receiving the second message and downgrading the permission. The second message may cause downgrade of the permission in multiple caches (e.g., the L1, L2, and L3 caches).Type: ApplicationFiled: December 12, 2024Publication date: April 3, 2025Applicant: SiFive, Inc.Inventors: Michael Klinglesmith, Eric Andrew Gouldey, Wesley Terpstra
-
Patent number: 12265829Abstract: A method for re-triggering wakeup to handle time skew between a scalar operation and a vector operation is provided. The method includes: initiating, before a Load-Store (LST) pipeline completes an execution of a load operation corresponding to a vector micro-operation (uop) dispatched to a baler issue queue, a respective load operation in a Load (LD) pipeline corresponding to the vector uop; triggering a speculative wakeup from the LD pipeline during an execution of the respective load operation; triggering a second wakeup corresponding to the speculative wakeup from the LD pipeline; and waking up, based on the second wakeup, the vector micro-operation in the baler issue queue of the baler unit.Type: GrantFiled: June 21, 2023Date of Patent: April 1, 2025Assignee: SiFive, Inc.Inventor: Kuan Lin Huang
-
Patent number: 12259825Abstract: Systems and methods are disclosed for concurrent support for multiple cache inclusivity schemes using low priority evict operations. For example, some methods may include, receiving a first eviction message having a lower priority than probe messages from a first inner cache; receiving a second eviction message having a higher priority than probe messages from a second inner cache; transmitting a third eviction message, determined based on the first eviction message, having the lower priority than probe messages to a circuitry that is closer to memory in a cache hierarchy; and, transmitting a fourth eviction message, determined based on the second eviction message, having the lower priority than probe messages to the circuitry that is closer to memory in the cache hierarchy.Type: GrantFiled: December 20, 2023Date of Patent: March 25, 2025Assignee: SiFive, Inc.Inventors: Wesley Waylon Terpstra, Richard Van, Eric Andrew Gouldey