SiFive, Inc.

United States of America

Back to Profile

1-100 of 221 for SiFive, Inc. Sort by
Query
Aggregations
IP Type
        Patent 206
        Trademark 15
Jurisdiction
        United States 166
        World 52
        Europe 2
        Canada 1
Date
New (last 4 weeks) 3
2026 August 3
2026 June 1
2026 May 5
2026 (YTD) 18
See more
IPC Class
G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode 65
G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead 45
G06F 12/0862 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch 14
G06F 12/0811 - Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies 12
G06F 30/327 - Logic synthesisBehaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist 12
See more
NICE Class
09 - Scientific and electric apparatus and instruments 15
42 - Scientific, technological and industrial services, research and design 6
35 - Advertising and business services 5
41 - Education, entertainment, sporting and cultural services 5
45 - Legal and security services; personal services for individuals. 3
Status
Pending 60
Registered / In Force 161
  1     2     3        Next Page

1.

FLEXIBLE POWER MANAGEMENT INTERFACE

      
Application Number 19644767
Status Pending
Filing Date 2026-04-10
First Publication Date 2026-08-27
Owner SiFive, Inc. (USA)
Inventor
  • Mclellan, Edward
  • Chowdury, Arjun Pal

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.

IPC Classes  ?

  • G06F 13/38 - Information transfer, e.g. on bus
  • G06F 1/26 - Power supply means, e.g. regulation thereof
  • G06F 13/40 - Bus structure
  • G06F 13/42 - Bus transfer protocol, e.g. handshakeSynchronisation

2.

Systems and Methods for Power Gating Chip Components

      
Application Number 18577335
Status Pending
Filing Date 2022-06-24
First Publication Date 2026-08-27
Owner SiFive, Inc. (USA)
Inventor
  • Mclellan, Edward
  • Cook, Henry
  • Chowdury, Arjun Pal

Abstract

Described are systems and methods for power gating components on a system-on-chip. A processing system includes a cluster including one or more cores, a power domain sequencer, and a power management unit connected to the cluster, the one or more cores, and the power domain sequencer. The power management unit configured to receive a power down ready notification from a core of the one or more cores, and process a set of bus blockers to block transactions to and from the core, where a bus blocker is associated with a port on an interconnection network connected to the one or more cores, uncore components, and the cluster. The power domain sequencer configured to power down the core when receiving a notification from the power management unit that the set of bus blockers are quiescent.

IPC Classes  ?

  • G06F 1/3287 - Power saving characterised by the action undertaken by switching off individual functional units in the computer system
  • G06F 1/3234 - Power saving characterised by the action undertaken

3.

Prefetcher with Multi-Cache Level Prefetches and Feedback Architecture

      
Application Number 18577363
Status Pending
Filing Date 2022-06-03
First Publication Date 2026-08-27
Owner SiFive, Inc. (USA)
Inventor
  • Alexander, Benoy
  • Wani, Mohit Gopal
  • Ingalls, John

Abstract

Described is a prefetcher with multi-cache level prefetches and feedback architecture. A processing system includes two or more cache levels, each cache level including miss status holding registers, and a prefetcher connected to each of the two or more cache levels The prefetcher configured to receive feedback from the miss status holding registers at each cache level for previously sent prefetches and control number of prefetches sent for a trained entry to each cache level of the two or more cache levels based on the feedback.

IPC Classes  ?

  • G06F 12/0811 - Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
  • G06F 12/0862 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

4.

STORE-TO-LOAD FORWARDING FOR PROCESSOR PIPELINES

      
Application Number 19455615
Status Pending
Filing Date 2026-01-21
First Publication Date 2026-06-04
Owner SiFive, Inc. (USA)
Inventor Ingalls, John

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.

IPC Classes  ?

  • G06F 12/1009 - Address translation using page tables, e.g. page table structures
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

5.

PREFETCHER WITH IMPROVED STABILITY AND NOISE REDUCTION

      
Application Number 19042703
Status Pending
Filing Date 2025-01-31
First Publication Date 2026-05-14
Owner SiFive, Inc. (USA)
Inventor
  • Chen, Hung-Lun
  • Yang, Chih-Kai
  • Cheng, I-Cheng

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.

IPC Classes  ?

  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

6.

SIFIVE

      
Serial Number 99823747
Status Pending
Filing Date 2026-05-14
Owner SiFive, Inc. (USA)
NICE Classes  ?
  • 09 - Scientific and electric apparatus and instruments
  • 35 - Advertising and business services
  • 41 - Education, entertainment, sporting and cultural services
  • 42 - Scientific, technological and industrial services, research and design
  • 45 - Legal and security services; personal services for individuals.

Goods & Services

Semiconductor chips; integrated circuits; microprocessors; microcontrollers; printed circuit boards; application-specific integrated circuits; system-on-chip devices, namely, microprocessors, microcontrollers, chips in the nature of multiprocessor chips, integrated circuit chips, computer chips, integrated circuits; embedded systems comprised of embedded computer hardware and embedded operating system software; electronic components and systems, namely, semiconductors, integrated circuits and microcontrollers; semiconductor intellectual property cores; microprocessor cores; downloadable computer software, namely, software for configuring semiconductor intellectual processor cores used in microprocessors, microcontrollers, chips, integrated circuits; downloadable electronic publications, namely, technical papers, and manuals in the field of computers and electronics; Computer hardware, namely, Central Processing Units (CPU); Downloadable computer software for creating, analyzing, and running quantum algorithms; Downloadable educational publications, namely, printable manuals, technical papers, product briefs, datasheets, schematics, user guides, and specifications, in the field of RISC-V computing, computer software, computer hardware, intellectual property cores, and artificial intelligence; Downloadable training materials in the field of RISC-V computing, computer software, computer hardware, intellectual property cores, and artificial intelligence Distributorship services in the field of intellectual property cores Providing online non-downloadable electronic publications in the nature of instruction manuals, user guides, installation guides, product datasheets, articles, and magazines in the fields of integrated circuits, microprocessors, computer programming, internet-of-things (iot), artificial intelligence, and electronics; educational services, namely, providing online instruction in the fields of integrated circuits, microprocessors, computer programming, internet-of-things (iot), artificial intelligence, and electronics; training in the fields of integrated circuits, microprocessors, computer programming, internet-of-things (iot), artificial intelligence, and electronics; Online journals, namely blogs featuring information and news in the fields of RISC-V computing, intellectual property cores, semiconductor intellectual processor cores, semiconductors, integrated circuits, microprocessors, internet-of-things (IoT), artificial intelligence, machine learning, and electronics; Education services, namely, providing non-downloadable webinars in the field of RISC-V computing, intellectual property cores, semiconductor intellectual processor cores, artificial intelligence, machine learning, and electronics; providing online non-downloadable videos in the field of RISC-V computing, intellectual property cores, semiconductor intellectual processor cores, artificial intelligence, machine learning, and electronics microchip design services for others; consulting services in the field of product design and development; computer software design services provided on an outsourcing basis in the field of artificial intelligence; Scientific and technological services, namely, research and design in the field of microprocessors, integrated circuits, computer hardware, computer software, and electronics; Design and development of intelligence (AI) software for microprocessors, microcontrollers, chips, integrated circuits, and System on Chip (SOC); Research, development and design of semiconductor intellectual property cores, instruction set architectures, and RISC-based instruction set architectures; technological consultation in the technology field of RISC-V computing, computer software, computer hardware, intellectual property cores, artificial intelligence and machine learning Licensing of software; licensing of computer programs; licensing of computer software and industrial property rights; granting of software licenses and granting of licenses for industrial property rights; Licensing intellectual property; licensing of intellectual property rights; granting of licenses for intellectual property rights; licensing of intellectual property in the field of microprocessor design file software, semiconductor intellectual property cores, instruction set architectures and RISC-based instruction set architectures; Intellectual property consultation

7.

HIFIVE

      
Serial Number 99823917
Status Pending
Filing Date 2026-05-14
Owner SiFive, Inc. (USA)
NICE Classes  ?
  • 09 - Scientific and electric apparatus and instruments
  • 35 - Advertising and business services
  • 41 - Education, entertainment, sporting and cultural services
  • 42 - Scientific, technological and industrial services, research and design
  • 45 - Legal and security services; personal services for individuals.

Goods & Services

Semiconductor chips; Integrated circuits; Microprocessors; Microcontrollers; Printed circuit boards; application-specific integrated circuits; system-on-chip devices, namely, microprocessors, microcontrollers, chips in the nature of multiprocessor chips, integrated circuit chips, computer chips, integrated circuits; embedded systems comprised of embedded computer hardware and embedded operating system software; electronic components and systems, namely, semiconductors, integrated circuits and microcontrollers; semiconductor intellectual property cores; microprocessor cores; downloadable computer software, namely, software for configuring semiconductor intellectual processor cores used in microprocessors, microcontrollers, chips, integrated circuits; downloadable electronic publications, namely, technical papers, and manuals in the field of computers and electronics; Computer hardware, namely, Central Processing Units (CPU); Downloadable computer software for creating, analyzing, and running quantum algorithms; Downloadable educational publications, namely, printable manuals, technical papers, product briefs, datasheets, schematics, user guides, and specifications, in the field of RISC-V computing, computer software, computer hardware, intellectual property cores, and artificial intelligence; Downloadable training materials in the field of RISC-V computing, computer software, computer hardware, intellectual property cores, and artificial intelligence Distributorship services in the field of intellectual property cores Providing online non-downloadable electronic publications in the nature of instruction manuals, user guides, installation guides, product datasheets, articles, and magazines in the fields of integrated circuits, microprocessors, computer programming, internet-of-things (iot), artificial intelligence, and electronics; educational services, namely, providing online instruction in the fields of integrated circuits, microprocessors, computer programming, internet-of-things (iot), artificial intelligence, and electronics; training in the fields of integrated circuits, microprocessors, computer programming, internet-of-things (iot), artificial intelligence, and electronics; Online journals, namely blogs featuring information and news in the fields of RISC-V computing, intellectual property cores, semiconductor intellectual processor cores, semiconductors, integrated circuits, microprocessors, internet-of-things (IoT), artificial intelligence, machine learning, and electronics; Education services, namely, providing non-downloadable webinars in the field of RISC-V computing, intellectual property cores, semiconductor intellectual processor cores, artificial intelligence, machine learning, and electronics; providing online non-downloadable videos in the field of RISC-V computing, intellectual property cores, semiconductor intellectual processor cores, artificial intelligence, machine learning, and electronics microchip design services for others; consulting services in the field of product design and development; computer software design services provided on an outsourcing basis in the field of artificial intelligence; Scientific and technological services, namely, research and design in the field of microprocessors, integrated circuits, computer hardware, computer software, and electronics; Design and development of intelligence (AI) software for microprocessors, microcontrollers, chips, integrated circuits, and System on Chip (SOC); Research, development and design of semiconductor intellectual property cores, instruction set architectures, and RISC-based instruction set architectures; technological consultation in the technology field of RISC-V computing, computer software, computer hardware, intellectual property cores, artificial intelligence and machine learning Licensing of software; licensing of computer programs; licensing of computer software and industrial property rights; granting of software licenses and granting of licenses for industrial property rights; Licensing intellectual property; licensing of intellectual property rights; granting of licenses for intellectual property rights; licensing of intellectual property in the field of microprocessor design file software, semiconductor intellectual property cores, instruction set architectures and RISC-based instruction set architectures; Intellectual property consultation

8.

PREFETCHER WITH IMPROVED STABILITY AND NOISE REDUCTION

      
Application Number 18946582
Status Pending
Filing Date 2024-11-13
First Publication Date 2026-05-14
Owner SiFive, Inc. (USA)
Inventor
  • Chen, Hung-Lun
  • Yang, Chih-Kai
  • Cheng, I-Cheng

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.

IPC Classes  ?

  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

9.

TECHNOLOGIES FOR PREVENTING FAULT EXCEPTION PROBING

      
Application Number 18938085
Status Pending
Filing Date 2024-11-05
First Publication Date 2026-05-07
Owner SiFive, Inc. (USA)
Inventor
  • Ingalls, John
  • Peresse, Perrine
  • Bresch, Cyril

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.

IPC Classes  ?

  • G06F 11/07 - Responding to the occurrence of a fault, e.g. fault tolerance
  • G06F 12/1045 - Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache

10.

EUROFIVE

      
Application Number 019350149
Status Pending
Filing Date 2026-04-17
Owner SiFive, Inc. (USA)
NICE Classes  ?
  • 09 - Scientific and electric apparatus and instruments
  • 45 - Legal and security services; personal services for individuals.

Goods & Services

Semiconductor chips; integrated circuits; microprocessors; microcontrollers; printed circuit boards; application-specific integrated circuits; system-on-chip devices, namely, microprocessors, microcontrollers, chips in the nature of multiprocessor chips, integrated circuit chips, computer chips, integrated circuits; embedded systems comprised of embedded computer hardware and embedded operating system software; electronic components and systems, namely, semiconductors, integrated circuits and microcontrollers; semiconductor intellectual property cores; microprocessor cores; downloadable computer software, namely, software for configuring semiconductor intellectual processor cores used in microprocessors, microcontrollers, chips, integrated circuits; downloadable electronic publications, namely, technical papers, and manuals in the field of computers and electronics; Computer hardware, namely, Central Processing Units (CPU); Downloadable computer software for creating, analyzing, and running quantum algorithms; Downloadable educational publications, namely, printable manuals, technical papers, product briefs, datasheets, schematics, user guides, and specifications, in the field of RISC-V computing, computer software, computer hardware, intellectual property cores, and artificial intelligence; Downloadable training materials in the field of RISC-V computing, computer software, computer hardware, intellectual property cores, and artificial intelligence. Distributorship services, namely, licensing of semiconductor intellectual property cores.

11.

INTEGRATED CIRCUIT DESIGN WITH ON-DEMAND ENABLED LAYER

      
Application Number 18895258
Status Pending
Filing Date 2024-09-24
First Publication Date 2026-03-26
Owner SiFive, Inc. (USA)
Inventor Eldridge, Schuyler

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.

IPC Classes  ?

  • G06F 30/31 - Design entry, e.g. editors specifically adapted for circuit design

12.

MACRO-OP FUSION FOR PIPELINED ARCHITECTURES

      
Application Number 19383289
Status Pending
Filing Date 2025-11-07
First Publication Date 2026-03-12
Owner SiFive, Inc. (USA)
Inventor
  • Waterman, Andrew
  • Asanovic, Krste
  • Smith, Joshua

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.

IPC Classes  ?

  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  • G06F 9/24 - Loading of the microprogram

13.

SEMI-STATIC ERROR BANK ARCHITECTURE IN INTEGRATED CIRCUITS

      
Application Number 18883554
Status Pending
Filing Date 2024-09-12
First Publication Date 2026-03-12
Owner SiFive, Inc. (USA)
Inventor Stephan, Jon

Abstract

The present application relates to devices and components including apparatus, systems, and methods for measurements for serving cell configuration.

IPC Classes  ?

  • G06F 11/07 - Responding to the occurrence of a fault, e.g. fault tolerance

14.

TECHNOLOGIES FOR PREDICTION-BASED REGISTER RENAMING

      
Application Number 19340386
Status Pending
Filing Date 2025-09-25
First Publication Date 2026-03-05
Owner SiFive, Inc. (USA)
Inventor
  • Asanovic, Krste
  • Waterman, Andrew

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.

IPC Classes  ?

  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

15.

MATRIX MULTIPLY ENGINE

      
Application Number 18814386
Status Pending
Filing Date 2024-08-23
First Publication Date 2026-02-26
Owner SiFive, Inc. (USA)
Inventor
  • Simpson, David John
  • Asanovic, Krste
  • Waterman, Andrew
  • Ruff, Michael Todd

Abstract

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.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 17/16 - Matrix or vector computation

16.

MATRIX MULTIPLY ENGINE

      
Application Number 19042659
Status Pending
Filing Date 2025-01-31
First Publication Date 2026-02-26
Owner SiFive, Inc. (USA)
Inventor
  • Simpson, David John
  • Asanovic, Krste
  • Waterman, Andrew
  • Ruff, Michael Todd

Abstract

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.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 17/16 - Matrix or vector computation

17.

DATA STORAGE IN NON-INCLUSIVE CACHE

      
Application Number 19327669
Status Pending
Filing Date 2025-09-12
First Publication Date 2026-01-15
Owner SiFive, Inc. (USA)
Inventor
  • Terpstra, Wesley Waylon
  • Van, Richard

Abstract

Systems and methods are disclosed for data storage in a non-inclusive cache. For example, an integrated circuit may include a cache that includes a databank with multiple entries configured to store respective cache lines; and an array of cache tags, wherein each cache tag includes a data pointer that points to an entry in the databank. For example, methods may include allocating the entry in the databank to the cache including the array of cache tags from amongst multiple caches in the integrated circuit by writing the data pointer to the cache tag in the array of cache tags.

IPC Classes  ?

  • G06F 12/0811 - Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
  • G06F 12/0815 - Cache consistency protocols
  • G06F 12/0831 - Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
  • G06F 12/0846 - Cache with multiple tag or data arrays being simultaneously accessible
  • G06F 12/121 - Replacement control using replacement algorithms

18.

TECHNOLOGIES FOR INTERCONNECT ADDRESS REMAPPER WITH EVENT RECOGNITION AND REGISTER MANAGEMENT

      
Application Number 19327653
Status Pending
Filing Date 2025-09-12
First Publication Date 2026-01-08
Owner SiFive, Inc. (USA)
Inventor
  • Parry, David
  • Barbier, Drew
  • Smith, Josh
  • Solomatnikov, Alexandre
  • Asanovic, Krste

Abstract

Systems and methods are disclosed for a configurable interconnect address remapper with event detection. For example, an integrated circuit can include a processor core configured to execute instructions. The processor core includes region registers defined by a From Address range and a To Address, a register storing a number of regions defined in the integrated circuit, interrupt enable registers associated with each pair of region registers, and event flags associated with each pair of region registers; an interconnection system handling transactions from the processor core; an interconnect address remapper translating an address associated with a transaction using the one or more pair of region registers; and an interrupt controller receiving an interrupt signal from the interconnect address remapper when the interrupt enable registers are enabled and at least one raised event flags when at least one of the one or more pair of region registers matches the transaction address.

IPC Classes  ?

  • G06F 9/32 - Address formation of the next instruction, e.g. by incrementing the instruction counter
  • G06F 13/32 - Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer

19.

FUSION WITH DESTRUCTIVE INSTRUCTIONS

      
Application Number 19309425
Status Pending
Filing Date 2025-08-25
First Publication Date 2025-12-18
Owner SiFive, Inc. (USA)
Inventor
  • Waterman, Andrew
  • Asanovic, Krste

Abstract

Systems and methods are disclosed for fusion with destructive instructions. For example, an integrated circuit (e.g., a processor) for executing instructions includes a fusion circuitry that is configured to detect a sequence of macro-ops stored in a processor pipeline of the processor core, the sequence of macro-ops including a first macro-op identifying a first register as a destination register followed by a second macro-op identifying the first register as both a source register and as a destination register, wherein one or more intervening macro-ops occur between the first macro-op and the second macro-op in the program order; determine a micro-op that is equivalent to the first macro-op followed by the second macro-op; and forward the micro-op to at least one of the one or more execution resource circuitries for execution. For example, the sequence of macro-ops may be detected in a vector dispatch stage of a processor pipeline.

IPC Classes  ?

  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

20.

SIFIVE BIGSKY

      
Serial Number 99513319
Status Pending
Filing Date 2025-11-24
Owner SiFive, Inc. (USA)
NICE Classes  ? 09 - Scientific and electric apparatus and instruments

Goods & Services

High-performance RISC-V Central Processing Units (CPUs)

21.

SIFIVE BLUESKY

      
Serial Number 99513339
Status Pending
Filing Date 2025-11-24
Owner SiFive, Inc. (USA)
NICE Classes  ? 09 - Scientific and electric apparatus and instruments

Goods & Services

High performance RISC-V Central Processing Units (CPUs)

22.

INTEGRATED CIRCUIT DESIGN WITH PROTECTION BASED ON PROTECTED DECLARATION AND ANNOTATION

      
Application Number 18646193
Status Pending
Filing Date 2024-04-25
First Publication Date 2025-10-30
Owner SiFive, Inc. (USA)
Inventor Koenig, John

Abstract

The present application relates to generating a design for an integrated circuit. The integrated circuit can include state elements that store data and a protection component, such as an encoder or decoder, that enables detection and, possibly correction, of errors in the stored data. The integrated circuit can be designed using an integrated circuit generator that implements a hardware description language (HDL). In the HDL, code for the integrated circuit can be defined. This code can indicate that the data forms an atomic data group to be processed together and can declare this data as being protected by a particular protection type (e.g., error correction codes). An annotation referring to the data protection can be included in an operation defined in the code. Based on the declaration and the annotation in the code, a data structure can be generated and can indicate that the protection component is to be implemented.

IPC Classes  ?

  • G06F 30/32 - Circuit design at the digital level
  • G06F 119/02 - Reliability analysis or reliability optimisationFailure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]

23.

LOGGING GUEST PHYSICAL ADDRESS FOR MEMORY ACCESS FAULTS

      
Application Number 19261901
Status Pending
Filing Date 2025-07-07
First Publication Date 2025-10-30
Owner SiFive, Inc. (USA)
Inventor
  • Ingalls, John
  • Waterman, Andrew

Abstract

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.

IPC Classes  ?

  • G06F 12/1009 - Address translation using page tables, e.g. page table structures
  • G06F 12/1027 - Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

24.

Window-based control for instruction issue in an out-of-order processor

      
Application Number 18742968
Grant Number 12436770
Status In Force
Filing Date 2024-06-13
First Publication Date 2025-10-07
Grant Date 2025-10-07
Owner SiFive, Inc. (USA)
Inventor
  • Cheng, I-Cheng
  • Wei, Chen
  • Huang, Kuan-Lin
  • Wu, Yueh-Chi

Abstract

A window-based constraint on issue order can be applied where a shared resource (e.g., a transfer buffer for load data) is allocated out-of-order by a first unit in a processor (e.g., a load/store unit) and freed in-order by a second unit in the processor (e.g., a unit that moves data out of the transfer buffer). The first unit can have a first issue queue and issue logic that imposes a constraint that an instruction that allocates the shared resource is only ready to issue if it is within or younger than a clearance window defined within the first issue queue, where the clearance window is defined to allow at least some out-of-order issue of instructions that allocate the shared resource.

IPC Classes  ?

  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

25.

TRANSFER BUFFER BETWEEN A SCALAR PIPELINE AND VECTOR PIPELINE

      
Application Number 19199751
Status Pending
Filing Date 2025-05-23
First Publication Date 2025-09-04
Owner SiFive, Inc. (USA)
Inventor
  • Kravitz, David
  • Hanselman, Andrew
  • Burgess, Bradley Gene

Abstract

Systems and methods are disclosed for transferring an operand between a vector pipeline and a scalar pipeline. For example, some methods may include transferring an operand from a scalar pipeline to a scalar-to-vector buffer responsive to the scalar pipeline executing a first micro-op, wherein the scalar-to-vector buffer includes an entry having a width equal to a width of a scalar register of the scalar pipeline and a data store configured to store an indication mapping the entry to the first micro-op; updating the data store to include the indication mapping the entry to the first micro-op; identifying, by the vector pipeline in response to execution of a second micro-op and in dependence on the indication mapping the entry to the first micro-op, the entry storing the operand; and transferring the operand from the entry in the scalar-to-vector buffer to the vector pipeline responsive to the vector pipeline executing the second micro-op.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/355 - Indexed addressing

26.

USING RENAMED REGISTERS TO SUPPORT MULTIPLE VSET{I}VL{I} INSTRUCTIONS

      
Application Number 19044204
Status Pending
Filing Date 2025-02-03
First Publication Date 2025-08-07
Owner SiFive, Inc. (USA)
Inventor Smith, Joshua

Abstract

A method for renaming architectural register, such as control and status register (CSR), is disclosed. The method includes decoding an instruction for updating CSR, updating the CSR based on a respective instruction of the one or more instructions, allocating a unique tag to the instruction in pipeline, and writing the tag into a mapping table for renaming the CSR. The tag can identify the CSR included in the instruction or the updated values of the CSR. The tag can be associated with a unique value. Moreover, the method can employ a First In, First Out (FIFO) queuing technique and virtual bits.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead

27.

BUNDLING AND DYNAMIC ALLOCATION OF REGISTER BLOCKS FOR VECTOR INSTRUCTIONS

      
Application Number 19044169
Status Pending
Filing Date 2025-02-03
First Publication Date 2025-08-07
Owner SiFive, Inc. (USA)
Inventor
  • Burgess, Bradley Gene
  • Kravitz, David
  • Solomatnikov, Alexandre

Abstract

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.

IPC Classes  ?

  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

28.

TRACKING OF STORE OPERATIONS

      
Application Number 19044233
Status Pending
Filing Date 2025-02-03
First Publication Date 2025-08-07
Owner SiFive, Inc. (USA)
Inventor
  • Wu, Yueh Chi
  • Rabefarihy, Yohann

Abstract

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.

IPC Classes  ?

29.

Integrated Circuit Design Verification with Object Model

      
Application Number 18408556
Status Pending
Filing Date 2024-01-09
First Publication Date 2025-07-10
Owner SiFive, Inc. (USA)
Inventor
  • Chang, Jacob
  • Cook, Henry
  • Rajendran, Sandeep

Abstract

Test verification code generation may be automated. Automating the generation of the test verification code may include generating an integrated circuit design for an integrated circuit that includes the object model and generating the verification code based on the object model. The object model is used by a parser to generate a verification code. The object model may include field values including a protection parameter field and a sequence field. The protection parameter field may include information that identifies node(s) that are associated with an intended protected region in the integrated circuit design and indicates characteristics of an encoding scheme applied in the intended protected region. The sequence field may include information representing a list of signals that can report an error. The verification code may be configured to inject the error during simulation of the integrated circuit design to verify that the system correctly responds to the error.

IPC Classes  ?

  • G06F 30/367 - Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods

30.

Address boundary functions for physical and localized addresses

      
Application Number 19039761
Grant Number 12664098
Status In Force
Filing Date 2025-01-28
First Publication Date 2025-06-12
Grant Date 2026-06-23
Owner SiFive, Inc. (USA)
Inventor
  • Liberty, Dean A.
  • Adler, Robert P.
  • Cook, Henry
  • Sensaoui, Abderrahmane
  • Peresse, Perrine

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.

IPC Classes  ?

31.

Hardware Test Mode for Processor Core

      
Application Number 18529694
Status Pending
Filing Date 2023-12-05
First Publication Date 2025-06-05
Owner SiFive, Inc. (USA)
Inventor
  • Chiavacci, Monia
  • Randhawa, Robin
  • Southwell, Trefor

Abstract

Systems and methods are disclosed for implementing a hardware test mode for a processor core. For example, some methods may include writing to one or more test mode registers to change a microarchitectural state of a processor core from a first state to one or more test mode states; executing a sequence of instructions on the processor core in the one or more test mode states to obtain a resulting architectural state of the processor core; comparing the resulting architectural state to an expected architectural state associated with the sequence of instructions to obtain a test result; and writing to the one or more test mode registers to restore the microarchitectural state of the processor core to the first state.

IPC Classes  ?

  • G06F 11/263 - Generation of test inputs, e.g. test vectors, patterns or sequences

32.

DEPENDENCY TRACKING AND CHAINING FOR VECTOR INSTRUCTIONS

      
Application Number 19042632
Status Pending
Filing Date 2025-01-31
First Publication Date 2025-06-05
Owner SiFive, Inc. (USA)
Inventor
  • Burgess, Bradley Gene
  • Kravitz, David

Abstract

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.

IPC Classes  ?

  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

33.

EVICTION OPERATIONS BASED ON EVICTION MESSAGE TYPES OF DIFFERENT PRIORITIES

      
Application Number 19041895
Status Pending
Filing Date 2025-01-30
First Publication Date 2025-06-05
Owner SiFive, Inc. (USA)
Inventor
  • Klinglesmith, Michael
  • Gouldey, Eric
  • Terpstra, Wesley

Abstract

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.

IPC Classes  ?

  • G06F 12/0831 - Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

34.

CONCURRENT SUPPORT FOR MULTIPLE CACHE INCLUSIVITY SCHEMES USING LOW PRIORITY EVICT OPERATIONS

      
Application Number 19044137
Status Pending
Filing Date 2025-02-03
First Publication Date 2025-06-05
Owner SiFive, Inc. (USA)
Inventor
  • Terpstra, Wesley
  • Van, Richard
  • Gouldey, Eric Andrew

Abstract

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.

IPC Classes  ?

  • G06F 12/121 - Replacement control using replacement algorithms
  • G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache

35.

ORDERABILITY OF OPERATIONS

      
Application Number 19040817
Status Pending
Filing Date 2025-01-29
First Publication Date 2025-05-29
Owner SiFive, Inc. (USA)
Inventor
  • Gouldey, Eric Andrew
  • Klinglesmith, Michael
  • Cook, Henry
  • Terpstra, Wesley

Abstract

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.

IPC Classes  ?

  • G06F 13/16 - Handling requests for interconnection or transfer for access to memory bus

36.

MEMORY PROTECTION FOR GATHER-SCATTER OPERATIONS

      
Application Number 19040861
Status Pending
Filing Date 2025-01-30
First Publication Date 2025-05-29
Owner SiFive, Inc. (USA)
Inventor
  • Waterman, Andrew
  • Asanovic, Krste

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.

IPC Classes  ?

  • G06F 12/14 - Protection against unauthorised use of memory
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

37.

CANCELING PREFETCH OF CACHE BLOCKS BASED ON AN ADDRESS AND A BIT FIELD

      
Application Number 19016702
Status Pending
Filing Date 2025-01-10
First Publication Date 2025-05-08
Owner SiFive, Inc. (USA)
Inventor
  • Gouldey, Eric Andrew
  • Terpstra, Wesley
  • Klinglesmith, Michael

Abstract

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.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 12/0862 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
  • G06F 12/0897 - Caches characterised by their organisation or structure with two or more cache hierarchy levels

38.

Downgrading a permission associated with data stored in a cache

      
Application Number 18979420
Grant Number 12711078
Status In Force
Filing Date 2024-12-12
First Publication Date 2025-04-03
Grant Date 2026-08-18
Owner SiFive, Inc. (USA)
Inventor
  • Klinglesmith, Michael
  • Gouldey, Eric Andrew
  • Terpstra, Wesley

Abstract

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).

IPC Classes  ?

  • G06F 12/14 - Protection against unauthorised use of memory

39.

COMBINING DATA CHANNELS TO DETERMINE CAMERA POSE

      
Application Number US2024039184
Publication Number 2025/024463
Status In Force
Filing Date 2024-07-23
Publication Date 2025-01-30
Owner VIFIVE, INC. (USA)
Inventor
  • Choi, Inseok Stephen
  • Sawyer, Eric
  • Ko, Soonmin

Abstract

A system can include a memory and a processing device, operatively coupled to the memory, configured to perform operations including receiving, from a client device using a camera, two-dimensional (2D) image data representing a scene including a subject, providing, to a camera pose identification model, an input including information identifying a set of attributes of the camera, obtaining, from the camera pose identification model, an output including information identifying at least one camera pose parameter, and performing at least one task based on the output. The set of attributes of the camera includes at least one orientation angle of the camera about at least one axis. Performing the at least one task can include generating a three-dimensional (3D) representation of the subject depicted in the 2D image data.

IPC Classes  ?

  • G06V 40/20 - Movements or behaviour, e.g. gesture recognition
  • G06T 7/73 - Determining position or orientation of objects or cameras using feature-based methods
  • G06T 7/80 - Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration

40.

Measuring performance associated with processing instructions based on counters for different events

      
Application Number 18357984
Grant Number 12681730
Status In Force
Filing Date 2023-07-24
First Publication Date 2025-01-30
Grant Date 2026-07-14
Owner SiFive, Inc. (USA)
Inventor Simpson, David John

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.

IPC Classes  ?

  • G06F 9/32 - Address formation of the next instruction, e.g. by incrementing the instruction counter
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  • G06F 11/34 - Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation

41.

Translation lookaside buffer probing prevention

      
Application Number 18344951
Grant Number 12204458
Status In Force
Filing Date 2023-06-30
First Publication Date 2025-01-02
Grant Date 2025-01-21
Owner SiFive, Inc. (USA)
Inventor Burgess, Bradley Gene

Abstract

Described are methods, logic, and circuitry which prevent translation lookaside buffer probing. Reporting a privilege violation fault is delayed for a defined period of time. The defined period of time can be a time frame needed to perform a long page table walk, which can be at least hundreds of clock cycles. A counter or a forced page table walk corresponding to the defined period of time can be used to implement the delay.

IPC Classes  ?

  • G06F 12/1027 - Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
  • G06F 12/1009 - Address translation using page tables, e.g. page table structures

42.

INTEGRATED CIRCUIT DESIGN VERIFICATION WITH SIGNAL FORCING

      
Application Number 18805414
Status Pending
Filing Date 2024-08-14
First Publication Date 2025-01-02
Owner SIFIVE, INC. (USA)
Inventor
  • Izraelevitz, Adam Moshe
  • Chen, Albert Pengju

Abstract

An integrated circuit design may be generated for an integrated circuit. The integrated circuit design may include an instance of a module description that describes a functional operation of a module. The instance may include an input that is internal to the integrated circuit design. The integrated circuit design may be encoded in an intermediate representation (IR) data structure. A parameter may be received indicating that the input should be exposed to a simulator. The IR data structure may be compiled to produce a register-transfer level (RTL) data structure. The RTL data structure may encode a logic description associated with the instance. The parameter may be used to permit a simulator to access a node in the RTL data structure that is associated with the input.

IPC Classes  ?

  • G06F 30/3308 - Design verification, e.g. functional simulation or model checking using simulation

43.

INTEGRATED CIRCUIT DESIGN USING METADATA

      
Application Number 18810838
Status Pending
Filing Date 2024-08-21
First Publication Date 2024-12-12
Owner SiFive, Inc. (USA)
Inventor
  • Chen, Albert Pengju
  • Izraelevitz, Adam Moshe

Abstract

An integrated circuit design may be generated for an integrated circuit. The integrated circuit design may include an instance of a module description that describes a functional operation of a module. The integrated circuit design may be encoded in an intermediate representation (IR) data structure. A parameter comprising metadata associated with the instance may be received. A compiler may compile the IR data structure to produce a register-transfer level (RTL) data structure. The RTL data structure may encode a logic description associated with the instance. Compiling the IR data structure may include associating the parameter comprising metadata with the logic description.

IPC Classes  ?

  • G06F 30/327 - Logic synthesisBehaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
  • G06F 8/41 - Compilation

44.

Systems and methods for clock gating

      
Application Number 18744598
Grant Number 12346187
Status In Force
Filing Date 2024-06-15
First Publication Date 2024-12-12
Grant Date 2025-07-01
Owner SiFive, Inc. (USA)
Inventor
  • Mclellan, Edward
  • Chowdury, Arjun Pal
  • Walmsley, Paul

Abstract

Described are systems and methods for clock gating components on a system-on-chip. A processing system includes one or more cores, each core including a clock gating enable bit register which is set by software when an expected idle period of the core meets or exceeds a clock gating threshold, and a power management unit connected to the one or more cores. The power management unit configured to receive an idle notification from a core of the one or more cores and initiate clock gating a clock associated with the core when the core and additional logic is quiescent and the clock gating enable bit register is set. The clock gating threshold is a defined magnitude greater than a clock wake-up time.

IPC Classes  ?

  • G06F 1/32 - Means for saving power
  • G06F 1/3206 - Monitoring of events, devices or parameters that trigger a change in power modality
  • G06F 1/3237 - Power saving characterised by the action undertaken by disabling clock generation or distribution

45.

Cache replacement policy state structure with extra states for prefetch and non-temporal loads

      
Application Number 18330607
Grant Number 12524352
Status In Force
Filing Date 2023-06-07
First Publication Date 2024-12-12
Grant Date 2026-01-13
Owner SiFive, Inc. (USA)
Inventor Burgess, Bradley Gene

Abstract

Described are methods, data structures, logic, and circuitry which enable a cache replacement policy to track a number of cache states greater than a number of ways in a cache. A cache replacement policy state structure provides that the number of cache states is greater than the N ways for each way per cache index in the cache The additional states can enable different handling and prioritization of data that has been prefetched (prefetch cache states) or loaded with a non-temporal hint from software (non-temporal cache states). The number of prefetcher states and non-temporal states are each less than the number of ways. The non-temporal states can only be promoted to certain of the cache states.

IPC Classes  ?

  • G06F 12/123 - Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
  • G06F 12/0862 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
  • G06F 12/126 - Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

46.

INTEGRATED CIRCUIT DESIGN VERIFICATION WITH MODULE SWAPPING

      
Application Number 18805453
Status Pending
Filing Date 2024-08-14
First Publication Date 2024-12-05
Owner SiFive, Inc. (USA)
Inventor
  • Izraelevitz, Adam Moshe
  • Chen, Albert Pengju

Abstract

An integrated circuit design may be generated for an integrated circuit. The integrated circuit design may include an instance of a module description that describes a functional operation of a module. The instance may include an input and an output. The integrated circuit design may be encoded in an intermediate representation (IR) data structure. Parameters may be received indicating that the instance should be replaced with a simulation model. The parameters may include a first parameter pointing to the instance and a second parameter pointing to the simulation model.

IPC Classes  ?

  • G06F 30/3308 - Design verification, e.g. functional simulation or model checking using simulation

47.

SELECTABLE AND HIERARCHICAL POWER MANAGEMENT

      
Application Number 18787944
Status Pending
Filing Date 2024-07-29
First Publication Date 2024-11-21
Owner SiFive, Inc. (USA)
Inventor Mclellan, Edward

Abstract

Described are systems and methods for power management. A processing system includes one or more cores and a connected power management unit (PMU). The PMU is selected from one of: a first level PMU which can power scale a; a second level PMU which can independently control power from a shared cluster power supply to each core of two or more cores in a cluster; a third level PMU where each core includes a power monitor which can track power performance metrics of an associated core; and a fourth level PMU when a complex includes multiple clusters and each cluster includes a set of the one or more cores, the fourth level PMU including a complex PMU and a cluster PMU for each of the multiple clusters, the complex PMU and cluster PMUs provide two-tier power management. Higher level PMUs include power management functionality of lower level PMUs.

IPC Classes  ?

  • G06F 1/26 - Power supply means, e.g. regulation thereof
  • G06F 1/28 - Supervision thereof, e.g. detecting power-supply failure by out of limits supervision

48.

Determining an error handling mode

      
Application Number 18142091
Grant Number 12332733
Status In Force
Filing Date 2023-05-02
First Publication Date 2024-11-07
Grant Date 2025-06-17
Owner SiFive, Inc. (USA)
Inventor
  • Mcnairy, Cameron
  • Klinglesmith, Michael

Abstract

A first circuitry may have a first interface. A response circuitry having a system interface may connect to the first circuitry. The response circuitry may receive an input selection that determines an error handling mode used to respond to an error (e.g., in a lockstep system, the error could be a difference between an output at the first interface and a second output at a second interface identified by comparing the first output to the second output). In some implementations, the error handling mode may cause the response circuitry to provide the output to the system interface and send an indication to software based on detecting the error. In some implementations, the error handling mode may cause the response circuitry to contain at least a portion of the output by disabling at least a portion of the system interface for multiple clock cycles based on detecting the error.

IPC Classes  ?

  • G06F 11/07 - Responding to the occurrence of a fault, e.g. fault tolerance

49.

Dependency tracking and chaining for vector instructions

      
Application Number 18139395
Grant Number 12554504
Status In Force
Filing Date 2023-04-26
First Publication Date 2024-10-31
Grant Date 2026-02-17
Owner SiFive, Inc. (USA)
Inventor
  • Burgess, Bradley Gene
  • Kravitz, David

Abstract

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.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead

50.

Bundling and dynamic allocation of register blocks for vector instructions

      
Application Number 18140792
Grant Number 12293192
Status In Force
Filing Date 2023-04-28
First Publication Date 2024-10-31
Grant Date 2025-05-06
Owner SiFive, Inc. (USA)
Inventor
  • Burgess, Bradley Gene
  • Kravitz, David
  • Solomatnikov, Alexandre

Abstract

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.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead

51.

PREFETCHER WITH OUT-OF-ORDER FILTERED PREFETCHER TRAINING QUEUE

      
Application Number 18758994
Status Pending
Filing Date 2024-06-28
First Publication Date 2024-10-24
Owner SIFive , Inc. (USA)
Inventor
  • Tiwari, Binayak
  • Alexander, Benoy
  • Ingallis, John
  • Gupta, Mohit

Abstract

Described is a system and method for implementing a prefetcher with an out-of-order filtered prefetcher training queue. A processing system includes a prefetcher and a prefetcher training queue connected to the prefetcher. The prefetcher training queue configured to receive one or more demand requests from one or more load-store units, allocate a prefetcher training queue entry for a non-duplicative demand request, and send, to the prefetcher, a stored demand request together with a hit or miss indicator, wherein the prefetcher training queue sends stored demand requests without regard to program order.

IPC Classes  ?

  • G06F 12/0862 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

52.

Page table entry caches with multiple tag lengths

      
Application Number 18747399
Grant Number 12711076
Status In Force
Filing Date 2024-06-18
First Publication Date 2024-10-10
Grant Date 2026-08-18
Owner SiFive, Inc. (USA)
Inventor
  • Peresse, Perrine
  • Mukherjee, Shubhendu Sekhar
  • Asanovic, Krste

Abstract

Systems and methods are disclosed for page table entry caches with multiple tag lengths. For example, an integrated circuit (e.g., a processor) includes a page table walk circuitry including a page table entry cache, in which the page table walk circuitry is configured to access a multi-level page table, and in which a first entry of the page table entry cache combines a first number of multiple levels and a second entry of the page table entry cache combines a second number of multiple levels that is different from the first number of multiple levels.

IPC Classes  ?

  • G06F 12/1009 - Address translation using page tables, e.g. page table structures
  • G06F 12/0882 - Page mode
  • G06F 12/1045 - Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache

53.

Integrated circuit generation with improved interconnect

      
Application Number 18747410
Grant Number 12591527
Status In Force
Filing Date 2024-06-18
First Publication Date 2024-10-10
Grant Date 2026-03-31
Owner SiFive, Inc. (USA)
Inventor
  • Adler, Robert P.
  • Parry, David
  • Chen, Rick H. Y.
  • Cook, Henry

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.

IPC Classes  ?

  • G06F 115/02 - System on chip [SoC] design
  • G06F 12/0888 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
  • G06F 13/16 - Handling requests for interconnection or transfer for access to memory bus

54.

CONFIGURING A PREFETCHER ASSOCIATED WITH A PROCESSOR CORE

      
Application Number 18747412
Status Pending
Filing Date 2024-06-18
First Publication Date 2024-10-10
Owner SIFIVE, INC. (USA)
Inventor
  • Walmsley, Paul
  • Ingalls, John
  • Alexander, Benoy

Abstract

Disclosed are systems and methods for configuring a prefetcher. A process may reconfigure a prefetcher associated with a processor core responsive to a context switch. The context switch may comprise the processor core changing from executing a first process to a second process. In some implementations, reconfiguring the prefetcher may include updating a register controlling an operation of the prefetcher from a first set of parameters associated with the first process to a second set of parameters associated with the second process. In some implementations, the second set of parameters may be based on input from a process executed in a user mode.

IPC Classes  ?

  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead

55.

Debug in system on a chip with securely partitioned memory space

      
Application Number 18577677
Grant Number 12399721
Status In Force
Filing Date 2022-06-03
First Publication Date 2024-10-10
Grant Date 2025-08-26
Owner SiFive, Inc. (USA)
Inventor
  • Edgar, Ernest L.
  • Loisel, Yann

Abstract

Systems and methods are disclosed for debug in a system on a chip with a securely partitioned memory space. For example, an integrated circuit (e.g., a processor) for executing instructions includes a processor core configured to execute instructions, including a data store configured to store a first world identifier; an outer memory system configured to store instructions and data; a data store configured to store a debug world list that specifies which world identifiers supported by the integrated circuit are authorized for debugging; and a debug enable circuitry configured to generate a debug enable signal based on the first world identifier and the debug world list, wherein the processor core is configured to jump to debug handler instructions in response to a debug exception or ignore the debug exception depending on the debug enable signal.

IPC Classes  ?

  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  • G06F 9/4401 - Bootstrapping
  • G06F 11/362 - Debugging of software
  • G06F 12/02 - Addressing or allocationRelocation
  • G06F 12/1027 - Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
  • G06F 12/14 - Protection against unauthorised use of memory
  • G06F 21/53 - Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity, buffer overflow or preventing unwanted data erasure by executing in a restricted environment, e.g. sandbox or secure virtual machine
  • G06F 21/57 - Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
  • G06F 21/74 - Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode

56.

INTEGRATED CIRCUIT GENERATION WITH COMPOSABLE INTERCONNECT

      
Application Number 18747403
Status Pending
Filing Date 2024-06-18
First Publication Date 2024-10-10
Owner SiFive, Inc. (USA)
Inventor
  • Adler, Robert P.
  • Macdonald, Ryan
  • De, Asmit
  • Cook, Henry

Abstract

Disclosed are systems and methods that include integrated circuit generation with composable interconnect. In some implementations, a system may access a design parameters data structure that specifies an interconnect topology to be included in an integrated circuit. The system may invoke an integrated circuit design generator that applies the design parameters data structure, including with the interconnect topology. In some implementations, the design parameters data structure may specify a definition for a hardware object (e.g., the interconnect topology) and instances of the hardware object. The definition and the instances may each be modifiable. The system may invoke the generator to apply the design parameters data structure to generate the design.

IPC Classes  ?

57.

Store-to-load forwarding for processor pipelines

      
Application Number 18747414
Grant Number 12554650
Status In Force
Filing Date 2024-06-18
First Publication Date 2024-10-10
Grant Date 2026-02-17
Owner SiFive, Inc. (USA)
Inventor Ingalls, John

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.

IPC Classes  ?

  • G06F 12/10 - Address translation
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 12/1009 - Address translation using page tables, e.g. page table structures

58.

Cycle accurate tracing of vector instructions

      
Application Number 18758980
Grant Number 12675367
Status In Force
Filing Date 2024-06-28
First Publication Date 2024-10-10
Grant Date 2026-07-07
Owner SiFive, Inc. (USA)
Inventor
  • Ableidinger, Bruce
  • Edgar, Ernest L.

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.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 11/14 - Error detection or correction of the data by redundancy in operation, e.g. by using different operation sequences leading to the same result
  • G06F 11/36 - Prevention of errors by analysis, debugging or testing of software
  • G06F 11/362 - Debugging of software

59.

QUAD NARROWING OPERATION

      
Application Number 18739757
Status Pending
Filing Date 2024-06-11
First Publication Date 2024-10-03
Owner SIFIVE, INC. (USA)
Inventor
  • Waterman, Andrew
  • Knight, Nicholas

Abstract

Systems and methods are disclosed for implementing a quad narrowing operation. The quad narrowing operation converts an output of a 32 bit floating-point operation to the 8 bit integer format by rounding the 32 bit floating-point operation and clamping the rounded 32 bit floating-point input by an 8 bit lower bound and an 8 bit upper bound which are defined in a 16 bit scalar register to generate the fixed-point output. The 8 bit lower bound is defined by the 8 most significant bits of the 16 bit scalar register and the 8 bit upper bound is defined by the 8 least significant bits of the 16 bit scalar register.

IPC Classes  ?

  • G06F 7/499 - Denomination or exception handling, e.g. rounding or overflow

60.

HYBRID FIXED-POINT AND FLOATING-POINT COMPUTATIONS FOR IMPROVED NEURAL NETWORK ACCURACY

      
Application Number 18744143
Status Pending
Filing Date 2024-06-14
First Publication Date 2024-10-03
Owner SIFIVE, INC. (USA)
Inventor Knight, Nicholas

Abstract

Systems and methods are disclosed for using hybrid floating-point and fixed-point computations for improved neural network accuracy. A neural network is defined using fixed-point computational units. Certain of the fixed-point computational units are identified based on replacement criteria. The identified fixed-point computational units are replaced with floating-point computational units to increase computational accuracy with minimal computational cost.

IPC Classes  ?

  • G06F 7/483 - Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers

61.

Processor crash analysis using register sampling

      
Application Number 18579166
Grant Number 12625756
Status In Force
Filing Date 2022-07-11
First Publication Date 2024-09-26
Grant Date 2026-05-12
Owner SiFive, Inc. (USA)
Inventor
  • Edgar, Ernest L.
  • Ableidinger, Bruce

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.

IPC Classes  ?

  • G06F 11/00 - Error detectionError correctionMonitoring
  • G06F 11/07 - Responding to the occurrence of a fault, e.g. fault tolerance

62.

EVENT TRACING

      
Application Number 18733046
Status Pending
Filing Date 2024-06-04
First Publication Date 2024-09-26
Owner SIFIVE, INC. (USA)
Inventor
  • Ableidinger, Bruce
  • Edgar, Ernest L.

Abstract

Systems and methods are disclosed for debug event tracing. For example, an integrated circuit (e.g., a processor) for executing instructions includes a processor core; a data store configured to store a code indicating a cause of an interrupt; a trace buffer configured to store a sequence of debug trace messages; and a debug trace circuitry that is configured to: responsive to a first interrupt to the processor core, generate a first debug trace message including a timestamp and a code from the data store that indicates a cause of the first interrupt; and store the first debug trace message in the trace buffer. In some implementations, the timestamp is generated using a Gray code counter of the integrated circuit.

IPC Classes  ?

  • G06F 11/36 - Prevention of errors by analysis, debugging or testing of software

63.

Nested Loop Optimization with Vector Memory Instructions

      
Application Number 18578007
Status Pending
Filing Date 2022-07-12
First Publication Date 2024-09-19
Owner SiFive, Inc. (USA)
Inventor Knight, Nicholas

Abstract

A program sequence, comprising an inner loop nested in an outer loop, may be converted to multiple statements of the inner loop with a statement of the multiple statements changing by an index of the outer loop. A memory access for a first statement of the multiple statements may be combined with a memory access for a second statement of the multiple statements via a vector instruction (e.g., a segmented-strided vector instruction). The vector instruction may be configured to access sets of N data elements, where N is a segment size of data elements in consecutive locations in memory, and where sets of N data elements are spaced at a constant distance in memory.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

64.

Error management in system on a chip with securely partitioned memory space

      
Application Number 18579134
Grant Number 12517841
Status In Force
Filing Date 2022-06-06
First Publication Date 2024-09-12
Grant Date 2026-01-06
Owner SiFive, Inc. (USA)
Inventor
  • Asanovic, Krste
  • Loisel, Yann
  • Ingalls, John
  • Mukherjee, Shubhendu Sekhar

Abstract

Systems and methods are disclosed for error management in a system on a chip with a securely partitioned memory space. For example, an integrated circuit (e.g., a processor) for executing instructions includes a world identifier checker circuitry configured to check memory requests for one or more memory mapped resources that are received via the bus that have been tagged with a world identifier to determine whether to allow or reject access based on the tagged world identifier; a world identifier checker circuitry configured to compare the tagged world identifier to a world list for a resource that specifies which world identifiers supported by the integrated circuit are authorized for access to the resource; and a data store configured to store world error data, including the tagged world identifier of a memory request that has been rejected by the world identifier checker circuitry.

IPC Classes  ?

  • G06F 12/14 - Protection against unauthorised use of memory
  • G06F 21/74 - Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode

65.

Vector instruction processing after primary decode

      
Application Number 18180327
Grant Number 12530197
Status In Force
Filing Date 2023-03-08
First Publication Date 2024-09-12
Grant Date 2026-01-20
Owner SiFive, Inc. (USA)
Inventor
  • Burgess, Bradley Gene
  • Kravitz, David

Abstract

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.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead

66.

Address range encoding in system on a chip with securely partitioned memory space

      
Application Number 18115457
Grant Number 12346268
Status In Force
Filing Date 2023-02-28
First Publication Date 2024-08-29
Grant Date 2025-07-01
Owner SiFive, Inc. (USA)
Inventor Asanovic, Krste

Abstract

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.

IPC Classes  ?

  • G06F 12/14 - Protection against unauthorised use of memory
  • G06F 21/72 - Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits

67.

SERIAL WIRE TIMER DISTRIBUTION

      
Application Number 18473351
Status Pending
Filing Date 2023-09-25
First Publication Date 2024-08-22
Owner SiFive, Inc. (USA)
Inventor Winston, Marcus

Abstract

Systems and methods are disclosed for serial wire timer distribution in an SoC. For example, some methods may include adding an offset to a current timestamp to obtain an offset timestamp; serially transmitting the offset timestamp on a first conductor according to a functional-logic clock signal; receiving the offset timestamp via the first conductor; and writing the offset timestamp to a timestamp register at a time according to an edge of a fixed-frequency reference clock signal on a second conductor.

IPC Classes  ?

  • G06F 30/392 - Floor-planning or layout, e.g. partitioning or placement

68.

Macro-op fusion for pipelined architectures

      
Application Number 18428319
Grant Number 12487829
Status In Force
Filing Date 2024-01-31
First Publication Date 2024-08-08
Grant Date 2025-12-02
Owner SiFive, Inc. (USA)
Inventor
  • Waterman, Andrew
  • Asanovic, Krste
  • Smith, Josh

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.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/24 - Loading of the microprogram
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead

69.

Address boundary functions for physical and localized addresses

      
Application Number 18474411
Grant Number 12248405
Status In Force
Filing Date 2023-09-26
First Publication Date 2024-08-01
Grant Date 2025-03-11
Owner SiFive, Inc. (USA)
Inventor
  • Liberty, Dean
  • Adler, Robert P.
  • Cook, Henry
  • Sensaoui, Abderrahmane
  • Peresse, Perrine

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.

IPC Classes  ?

70.

PARTITIONING A CACHE FOR APPLICATION OF A REPLACEMENT POLICY

      
Application Number 18406128
Status Pending
Filing Date 2024-01-06
First Publication Date 2024-07-11
Owner SiFive, Inc. (USA)
Inventor
  • Terpstra, Wesley Waylon
  • Van, Richard
  • Huang, Chao Wei
  • Heuer, Kevin

Abstract

Systems and methods are disclosed for partitioning a cache for application of a replacement policy. For example, some methods may include partitioning entries of a set in a cache into two or more subsets; receiving a message that will cause a cache block replacement; responsive to the message, selecting a way of the cache by applying a replacement policy to entries of the cache from only a first subset of the two or more subsets; and responsive to the message, evicting an entry of the cache in the first subset and in the selected way.

IPC Classes  ?

  • G06F 12/0811 - Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
  • G06F 12/123 - Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

71.

Processing for vector load or store micro-operation with inactive mask elements

      
Application Number 18335412
Grant Number 12210874
Status In Force
Filing Date 2023-06-15
First Publication Date 2024-07-04
Grant Date 2025-01-28
Owner SiFive, Inc. (USA)
Inventor Wu, Yueh Chi

Abstract

Apparatus and methods for processing of a vector load or store micro-operation with mask information as a no-operation (no-op) when a mask vector for the vector load or store micro-operation has all inactive mask elements or processing vector load or store sub-micro-operation(s) with active mask element(s) are described. An integrated circuit includes a load store unit configured to receive load or store micro-operations cracked from a vector load or store operation, determine that a mask vector for the vector load or store micro-operation is fully inactive, and process the vector load or store micro-operation as a no-operation. If the mask vector is not fully inactive, the vector load or store micro-operation is unrolled into vector load or store sub-micro-operation(s) which have active mask element(s). Vector load or store sub-micro-operation(s) which have inactive mask element(s) are ignored.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

72.

Tracking of store operations

      
Application Number 18335528
Grant Number 12314715
Status In Force
Filing Date 2023-06-15
First Publication Date 2024-07-04
Grant Date 2025-05-27
Owner SiFive, Inc. (USA)
Inventor
  • Wu, Yueh Chi
  • Rabefarihy, Yohann

Abstract

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.

IPC Classes  ?

  • G06F 9/22 - Microcontrol or microprogram arrangements
  • G06F 9/24 - Loading of the microprogram

73.

Making circuitry having an attribute

      
Application Number 18142087
Grant Number 12632631
Status In Force
Filing Date 2023-05-02
First Publication Date 2024-07-04
Grant Date 2026-05-19
Owner SiFive, Inc. (USA)
Inventor
  • Mcnairy, Cameron
  • Urbach, Michael Avner
  • Schmidt, Colin

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.

IPC Classes  ?

  • G06F 30/3323 - Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

74.

INTEGRATED CIRCUIT GENERATOR USING A PROVIDER

      
Application Number 18197422
Status Pending
Filing Date 2023-05-15
First Publication Date 2024-06-27
Owner SiFive, Inc. (USA)
Inventor
  • Koenig, Jack
  • Wachs, Megan
  • Cook, Henry

Abstract

A system may provide a placeholder for a component in a block of a first-level integrated circuit design without wiring at least one port of the component. The system may determine a mapping to a provider interface in the block. The system may invoke an integrated circuit generator to generate a second-level integrated circuit design based on the first-level integrated circuit design. The generator when executed replaces the provider interface with the component including wiring ports of the component, including the at least one port, in the second-level integrated circuit design according to the mapping. In some implementations, an application program interface may enable a provider to communicate with the generator. The provider can utilize the API to instantiate the provider interface and determine the mapping.

IPC Classes  ?

  • G06F 30/327 - Logic synthesisBehaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

75.

Concurrent support for multiple cache inclusivity schemes using low priority evict operations

      
Application Number 18390223
Grant Number 12259825
Status In Force
Filing Date 2023-12-20
First Publication Date 2024-06-20
Grant Date 2025-03-25
Owner SiFive, Inc. (USA)
Inventor
  • Terpstra, Wesley Waylon
  • Van, Richard
  • Gouldey, Eric Andrew

Abstract

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.

IPC Classes  ?

  • G06F 12/121 - Replacement control using replacement algorithms
  • G06F 12/0811 - Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
  • G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache

76.

Debug trace circuitry configured to generate a record including an address pair and a counter value

      
Application Number 18502270
Grant Number 12367047
Status In Force
Filing Date 2023-11-06
First Publication Date 2024-06-13
Grant Date 2025-07-22
Owner SiFive, Inc. (USA)
Inventor Ableidinger, Bruce

Abstract

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.

IPC Classes  ?

  • G06F 9/44 - Arrangements for executing specific programs
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead

77.

Downgrading a permission associated with data stored in a cache

      
Application Number 18132572
Grant Number 12204462
Status In Force
Filing Date 2023-04-10
First Publication Date 2024-06-06
Grant Date 2025-01-21
Owner SiFive, Inc. (USA)
Inventor
  • Klinglesmith, Michael
  • Gouldey, Eric Andrew
  • Terpstra, Wesley Waylon

Abstract

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).

IPC Classes  ?

  • G06F 12/14 - Protection against unauthorised use of memory

78.

Orderability of operations

      
Application Number 18133022
Grant Number 12306772
Status In Force
Filing Date 2023-04-11
First Publication Date 2024-06-06
Grant Date 2025-05-20
Owner SiFive, Inc. (USA)
Inventor
  • Gouldey, Eric Andrew
  • Klinglesmith, Michael
  • Cook, Henry
  • Terpstra, Wesley Waylon

Abstract

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.

IPC Classes  ?

  • G06F 13/16 - Handling requests for interconnection or transfer for access to memory bus

79.

Canceling prefetch of cache blocks based on an address and a bit field

      
Application Number 18182772
Grant Number 12197335
Status In Force
Filing Date 2023-03-13
First Publication Date 2024-06-06
Grant Date 2025-01-14
Owner SiFive, Inc. (USA)
Inventor
  • Gouldey, Eric Andrew
  • Terpstra, Wesley Waylon
  • Klinglesmith, Michael

Abstract

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.

IPC Classes  ?

  • G06F 12/0862 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 12/0897 - Caches characterised by their organisation or structure with two or more cache hierarchy levels

80.

Prefetching cache blocks based on an address for a group and a bit field

      
Application Number 18182778
Grant Number 12566606
Status In Force
Filing Date 2023-03-13
First Publication Date 2024-06-06
Grant Date 2026-03-03
Owner SiFive, Inc. (USA)
Inventor
  • Gouldey, Eric Andrew
  • Terpstra, Wesley Waylon
  • Klinglesmith, Michael

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.

IPC Classes  ?

  • G06F 12/00 - Accessing, addressing or allocating within memory systems or architectures
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 12/0862 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
  • G06F 12/0897 - Caches characterised by their organisation or structure with two or more cache hierarchy levels

81.

Re-triggering wake-up to handle time skew between scalar and vector sides

      
Application Number 18338643
Grant Number 12265829
Status In Force
Filing Date 2023-06-21
First Publication Date 2024-06-06
Grant Date 2025-04-01
Owner SiFive, Inc. (USA)
Inventor Huang, Kuan Lin

Abstract

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.

IPC Classes  ?

  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

82.

Speculative request indicator in request message

      
Application Number 18341217
Grant Number 12332799
Status In Force
Filing Date 2023-06-26
First Publication Date 2024-06-06
Grant Date 2025-06-17
Owner SiFive, Inc. (USA)
Inventor
  • Terpstra, Wesley Waylon
  • Gouldey, Eric Andrew
  • Klinglesmith, Michael
  • Cook, Henry

Abstract

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.

IPC Classes  ?

  • G06F 12/0862 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
  • G06F 12/0811 - Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
  • G06F 12/0815 - Cache consistency protocols

83.

Eviction operations based on eviction message types of different priorities

      
Application Number 18341244
Grant Number 12248401
Status In Force
Filing Date 2023-06-26
First Publication Date 2024-06-06
Grant Date 2025-03-11
Owner SiFive, Inc. (USA)
Inventor
  • Klinglesmith, Michael
  • Gouldey, Eric Andrew
  • Terpstra, Wesley Waylon

Abstract

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.

IPC Classes  ?

  • G06F 12/0831 - Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

84.

Flexible power management interface

      
Application Number 18483260
Grant Number 12625833
Status In Force
Filing Date 2023-10-09
First Publication Date 2024-06-06
Grant Date 2026-05-12
Owner SiFive, Inc. (USA)
Inventor
  • Mclellan, Edward
  • Chowdury, Arjun Pal

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.

IPC Classes  ?

  • G06F 13/38 - Information transfer, e.g. on bus
  • G06F 1/26 - Power supply means, e.g. regulation thereof
  • G06F 13/40 - Bus structure
  • G06F 13/42 - Bus transfer protocol, e.g. handshakeSynchronisation

85.

BIT PATTERN MATCHING HARDWARE PREFETCHER

      
Application Number 18497170
Status Pending
Filing Date 2023-10-30
First Publication Date 2024-06-06
Owner SiFive, Inc. (USA)
Inventor
  • Alexander, Benoy
  • Ingalls, John
  • Tiwari, Binayak

Abstract

Described herein is a bit pattern matching hardware prefetcher which captures complex repeating patterns, allows out-of-order (OOO) training, and allows OOO confirmations. The prefetcher includes a plurality of prefetch engines. Each prefetch engine is associated with a zone, each zone has a plurality of subzones, and each subzone has a plurality of cache lines. The prefetcher includes an access map for each subzone. Each bit position represents a cache line in the plurality of cache lines. The prefetcher determines whether a demand request matches one of the plurality of prefetch engines, updates, with respect to the demand request, a bit position in an access map for a subzone in a matching prefetch engine, determines a pattern from an access map for a subzone when a defined number of demand requests have been matched to the subzone; and generates a prefetch request based on at least the determined pattern.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead

86.

Transfer buffer between a scalar pipeline and vector pipeline

      
Application Number 18524185
Grant Number 12373210
Status In Force
Filing Date 2023-11-30
First Publication Date 2024-06-06
Grant Date 2025-07-29
Owner SiFive, Inc. (USA)
Inventor
  • Kravitz, David
  • Hanselman, Andrew
  • Burgess, Bradley Gene

Abstract

Systems and methods are disclosed for transferring an operand between a vector pipeline and a scalar pipeline. For example, some methods may include transferring an operand from a scalar pipeline to a scalar-to-vector buffer responsive to the scalar pipeline executing a first micro-op, wherein the scalar-to-vector buffer includes an entry having a width equal to a width of a scalar register of the scalar pipeline and a data store configured to store an indication mapping the entry to the first micro-op; updating the data store to include the indication mapping the entry to the first micro-op; identifying, by the vector pipeline in response to execution of a second micro-op and in dependence on the indication mapping the entry to the first micro-op, the entry storing the operand; and transferring the operand from the entry in the scalar-to-vector buffer to the vector pipeline responsive to the vector pipeline executing the second micro-op.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/355 - Indexed addressing

87.

Vector load store operations in a vector pipeline using a single operation in a load store unit

      
Application Number 18524222
Grant Number 12493465
Status In Force
Filing Date 2023-11-30
First Publication Date 2024-06-06
Grant Date 2025-12-09
Owner SiFive, Inc. (USA)
Inventor
  • Burgess, Bradley Gene
  • Kravitz, David
  • Solomatnikov, Alexandre

Abstract

Systems and methods are disclosed for transferring data between a memory system and a vector register file. For example, a system may include a vector pipeline including a vector physical register file; a load store unit; one or more pipeline stages configured to decode a vector memory instruction to obtain a macro-operation and dispatch the macro-operation to both the load store unit and the vector pipeline, and a baler circuitry, including a buffer with entries. The vector pipeline is configured to crack the macro-operation into multiple micro-operations. The baler circuitry is configured to implement the multiple micro-operations to transfer data between one or more selected entries of the buffer and respective registers of the vector physical register file. The load store unit is configured to implement the macro-operation to transfer data between one or more addresses in a memory system and the one or more selected entries of the buffer.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

88.

Accelerated Vector Reduction Operations

      
Application Number 18524391
Status Pending
Filing Date 2023-11-30
First Publication Date 2024-06-06
Owner SiFive, Inc. (USA)
Inventor
  • Brunie, Nicolas Rémi
  • Tsao, Kaihsiang
  • Wu, Yueh Chi

Abstract

Systems and methods are disclosed for accelerated vector-reduction operations. Some systems may include a vector register file configured to store register values of an instruction set architecture in physical registers; and an execution circuitry configured to, responsive to a folding micro-op: read a vector from a physical register of the vector register file or from bypass circuitry; partition the elements of the vector into a first subset of elements with even indices and a second subset with elements with odd indices; and apply a reduction operation to combine elements from the second subset of elements with corresponding elements from the first subset of elements to obtain a set of reduced elements.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

89.

Data storage in non-inclusive cache

      
Application Number 18524982
Grant Number 12430252
Status In Force
Filing Date 2023-11-30
First Publication Date 2024-06-06
Grant Date 2025-09-30
Owner SiFive, Inc. (USA)
Inventor
  • Terpstra, Wesley Waylon
  • Van, Richard

Abstract

Systems and methods for data storage in a non-inclusive cache. An integrated circuit includes a cache that includes a databank with multiple entries configured to store respective cache lines and an array of cache tags. Each cache tag includes a data pointer that points to an entry in the databank. A method includes allocating the entry in the databank to the cache including the array of cache tags from amongst multiple caches in the integrated circuit by writing the data pointer to the cache tag in the array of cache tags.

IPC Classes  ?

  • G06F 12/0811 - Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
  • G06F 12/0815 - Cache consistency protocols
  • G06F 12/0831 - Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
  • G06F 12/0846 - Cache with multiple tag or data arrays being simultaneously accessible
  • G06F 12/121 - Replacement control using replacement algorithms

90.

Variable Depth Pipeline for Error Correction

      
Application Number 18527215
Status Pending
Filing Date 2023-12-01
First Publication Date 2024-06-06
Owner SiFive, Inc. (USA)
Inventor
  • Terpstra, Wesley Waylon
  • Gouldey, Eric Andrew

Abstract

Systems and methods are disclosed for variable depth pipelines for error correction. For example, some methods may include changing the depth of a pipeline in response to an error signal from a stage of the pipeline. Changing the depth of the pipeline may include routing signals from the stage of the pipeline that resulted in the error signal through an error correction stage of the pipeline to a next stage of the pipeline that previously received output signals from the stage of the pipeline that resulted in the error signal. The methods may include continuing to route signals through the error correction stage of the pipeline to the next stage of the pipeline for multiple clock cycles until a pipeline bubble event is detected.

IPC Classes  ?

  • G06F 11/07 - Responding to the occurrence of a fault, e.g. fault tolerance

91.

Selectable granularity performance monitor

      
Application Number 18476933
Grant Number 12417163
Status In Force
Filing Date 2023-09-28
First Publication Date 2024-06-06
Grant Date 2025-09-16
Owner SiFive, Inc. (USA)
Inventor
  • Van, Richard
  • Wei, Huang Chao

Abstract

Systems and methods are described to collect latency data of transactions traversing a processor using a performance monitor, which uses a bucket timer based on a granule value in a configurable granule counter. The monitor can determine a transaction time for a transaction, which can then be compared to enumerated buckets (where the bucket size is based on the granule value), determine the appropriate bucket, and increment a latency counter associated with the bucket. The monitor can include a saturation mechanism to account for overflow or saturation. The collected data can be read by an external device to generate a histogram to identify potential problems in the processor or processor pipeline.

IPC Classes  ?

  • G06F 11/34 - Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation

92.

Selective transfer of data including a priority byte

      
Application Number 18497436
Grant Number 12386764
Status In Force
Filing Date 2023-10-30
First Publication Date 2024-06-06
Grant Date 2025-08-12
Owner SiFive, Inc. (USA)
Inventor
  • Klinglesmith, Michael
  • Gouldey, Eric Andrew
  • Terpstra, Wesley Waylon

Abstract

A data responder may determine a selection between granting a request for a priority byte to be prioritized for transmission ahead of other bytes via a bus and ignoring the request. Granting the request may include transferring a block of bytes of data across multiple clock cycles with the priority byte transferred in a first clock cycle before other clock cycles of the multiple clock cycles. Ignoring the request may include transferring the block across multiple clock cycles with the priority byte transferred in a clock cycle after the first clock cycle. The data responder may receive the request from a data requestor. The data responder may assert a signal on a wire, connected to the data requestor, to indicate a grant of the request and a transfer of the priority byte in the first clock cycle.

IPC Classes  ?

  • G06F 12/00 - Accessing, addressing or allocating within memory systems or architectures
  • G06F 13/16 - Handling requests for interconnection or transfer for access to memory bus
  • G06F 13/18 - Handling requests for interconnection or transfer for access to memory bus with priority control

93.

Stateful vector group permutation with storage reuse

      
Application Number 18524149
Grant Number 12423099
Status In Force
Filing Date 2023-11-30
First Publication Date 2024-06-06
Grant Date 2025-09-23
Owner SiFive, Inc. (USA)
Inventor Brunie, Nicolas Rémi

Abstract

Systems and methods are disclosed for stateful vector group permutation with storage reuse. For example, some methods may include expanding an element index from a vector of indices to obtain byte indices for respective bytes of a corresponding element; storing the byte indices in corresponding bytes of an intermediate result operand buffer; updating bits in a completion flags buffer to indicate that the corresponding bytes of the intermediate result operand buffer store indices; identifying bytes of an element of the vector of source data pointed to by the element index based on the byte indices stored in the intermediate result operand buffer; overwriting the byte indices in the intermediate result operand buffer with the identified bytes; and, responsive to overwriting the byte indices, updating the corresponding bits in the completion flags buffer to indicate that the corresponding bytes store data to be written to the destination vector.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

94.

Relative age tracking for entries in a buffer

      
Application Number 18527181
Grant Number 12271309
Status In Force
Filing Date 2023-12-01
First Publication Date 2024-06-06
Grant Date 2025-04-08
Owner SiFive, Inc. (USA)
Inventor Terpstra, Wesley Waylon

Abstract

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.

IPC Classes  ?

  • G06F 12/08 - Addressing or allocationRelocation in hierarchically structured memory systems, e.g. virtual memory systems
  • G06F 12/0802 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches

95.

Tracking of Data Readiness for Load and Store Operations

      
Application Number 18328839
Status Pending
Filing Date 2023-06-05
First Publication Date 2024-06-06
Owner SiFive, Inc. (USA)
Inventor Wu, Yueh Chi

Abstract

A method for tracking of data readiness for load and store operations is disclosed. The method includes establishing a Load Transfer Buffer (LTB) entry, initializing a write counter configured to track a number or progress of write data that are expected to update the LTB entry, and tracking the number or progress of the write data that are expected to update the LTB entry. The tracking can include setting, in the write counter, the number of the write data that are expected to update the LTB entry, maintaining, until a next respective write data arrives to the LTB entry a current value corresponding to a respective number of write data left to update the LTB entry, and after receiving the next respective write data, adjusting the write counter to reflect a respective number of write data left to update the LTB entry.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead

96.

Out-of-order vector iota calculations

      
Application Number 18337652
Grant Number 12223323
Status In Force
Filing Date 2023-06-20
First Publication Date 2024-06-06
Grant Date 2025-02-11
Owner SiFive, Inc. (USA)
Inventor
  • Wu, Yueh Chi
  • Brunie, Nicolas Rémi

Abstract

A method for executing vector iota (viota) operation is disclosed. The method includes fetching a viota instruction, decoding the viota instruction into multiple viota micro-operations (uops), computing a first element viota value of a respective viota uop, determining a respective last element viota value of the respective viota uop based on the first element viota value of the respective uop, and writing the respective last element viota value of the respective viota uop to an allocated physical register. Each viota uop of the multiple viota uops has multiple elements, and each element has a viota value corresponding to a sum of active mask bits of preceding elements of the viota uops. The multiple elements of each viota uop comprise at least a first element that has a starting bit position of a respective uop and a last element that has an ending bit position of the respective uop.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead

97.

Cache coherency state request vector encoding and use thereof

      
Application Number 18341091
Grant Number 12493551
Status In Force
Filing Date 2023-06-26
First Publication Date 2024-06-06
Grant Date 2025-12-09
Owner SiFive, Inc. (USA)
Inventor
  • Terpstra, Wesley Waylon
  • Gouldey, Eric Andrew
  • Klinglesmith, Michael
  • Cook, Henry

Abstract

A method and apparatus for a cache coherency state request vector is described. A method includes selecting, by a first agent, one or more bits in a cache coherency state request vector, where a selected bit in the cache coherency state request vector indicates an acceptable cache coherency state for a cache block indicated in a request message, transmitting, by the first agent to a second agent, the request message for the cache block, the request message including the cache coherency state request vector, and receiving, by the first agent from the second agent, a response message with a cache coherency response state, wherein the cache coherency response state indicates a cache coherency state responsive to the cache coherency state request vector.

IPC Classes  ?

  • G06F 12/00 - Accessing, addressing or allocating within memory systems or architectures
  • G06F 12/0817 - Cache consistency protocols using directory methods
  • G06F 12/0831 - Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

98.

Transmitting a response with a request and state information about the request

      
Application Number 18341093
Grant Number 12189544
Status In Force
Filing Date 2023-06-26
First Publication Date 2024-06-06
Grant Date 2025-01-07
Owner SiFive, Inc. (USA)
Inventor
  • Klinglesmith, Michael
  • Gouldey, Eric Andrew
  • Terpstra, Wesley Waylon

Abstract

First agent circuitry may receive from a second agent a first request and a first set of one or more bits. The first request may be part of a data operation. The first agent circuitry may transmit to the second agent a message including a first response to the first request, the first set of one or more bits, a second request, and a second set of one or more bits. The second set of one or more bits may be generated by the first agent circuitry to transmit state information about the second request. In some implementations, a set of one or more wires may be generated for transmission of the second set of one or more bits. The first agent circuitry may receive from the second agent a second response to the second request and the second set of one or more bits.

IPC Classes  ?

  • G06F 13/16 - Handling requests for interconnection or transfer for access to memory bus
  • G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
  • G06F 13/42 - Bus transfer protocol, e.g. handshakeSynchronisation

99.

Using renamed registers to support multiple vset{i}vl{i} instructions

      
Application Number 18115970
Grant Number 12260217
Status In Force
Filing Date 2023-03-01
First Publication Date 2024-06-06
Grant Date 2025-03-25
Owner SiFive, Inc. (USA)
Inventor Smith, Josh

Abstract

A method for renaming architectural register, such as control and status register (CSR), is disclosed. The method includes decoding an instruction for updating CSR, updating the CSR based on a respective instruction of the one or more instructions, allocating a unique tag to the instruction in pipeline, and writing the tag into a mapping table for renaming the CSR. The tag can identify the CSR included in the instruction or the updated values of the CSR. The tag can be associated with a unique value. Moreover, the method can employ a First In, First Out (FIFO) queuing technique and virtual bits.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead

100.

Stalling issue queue entries until consecutive allocated entries are available for segmented stores

      
Application Number 18115971
Grant Number 12314718
Status In Force
Filing Date 2023-03-01
First Publication Date 2024-06-06
Grant Date 2025-05-27
Owner SiFive, Inc. (USA)
Inventor Smith, Josh

Abstract

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.

IPC Classes  ?

  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  1     2     3        Next Page