Patents by Inventor Wesley Waylon Terpstra

Wesley Waylon Terpstra has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 12271309
    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.
    Type: Grant
    Filed: December 1, 2023
    Date of Patent: April 8, 2025
    Assignee: SiFive, Inc.
    Inventor: Wesley Waylon Terpstra
  • Patent number: 12259825
    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.
    Type: Grant
    Filed: December 20, 2023
    Date of Patent: March 25, 2025
    Assignee: SiFive, Inc.
    Inventors: Wesley Waylon Terpstra, Richard Van, Eric Andrew Gouldey
  • Patent number: 12248401
    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.
    Type: Grant
    Filed: June 26, 2023
    Date of Patent: March 11, 2025
    Assignee: SiFive, Inc.
    Inventors: Michael Klinglesmith, Eric Andrew Gouldey, Wesley Waylon Terpstra
  • Patent number: 12204462
    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).
    Type: Grant
    Filed: April 10, 2023
    Date of Patent: January 21, 2025
    Assignee: SiFive, Inc.
    Inventors: Michael Klinglesmith, Eric Andrew Gouldey, Wesley Waylon Terpstra
  • Patent number: 12197335
    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.
    Type: Grant
    Filed: March 13, 2023
    Date of Patent: January 14, 2025
    Assignee: SiFive, Inc.
    Inventors: Eric Andrew Gouldey, Wesley Waylon Terpstra, Michael Klinglesmith
  • Patent number: 12189544
    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.
    Type: Grant
    Filed: June 26, 2023
    Date of Patent: January 7, 2025
    Assignee: SiFive, Inc.
    Inventors: Michael Klinglesmith, Eric Andrew Gouldey, Wesley Waylon Terpstra
  • Patent number: 12066941
    Abstract: Described are methods and a system for atomic memory operations with contended cache lines. A processing system includes at least two cores, each core having a local cache, and a lower level cache in communication with each local cache. One local cache configured to request a cache line to execute an atomic memory operation (AMO) instruction, receive the cache line via the lower level cache, receive a probe downgrade due to other local cache requesting the cache line prior to execution of the AMO, and send the AMO instruction to the lower level cache for remote execution in response to the probe downgrade.
    Type: Grant
    Filed: October 6, 2022
    Date of Patent: August 20, 2024
    Assignee: SiFive, Inc.
    Inventors: John Ingalls, Wesley Waylon Terpstra, Henry Cook, Leigang Kou
  • Publication number: 20240232083
    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.
    Type: Application
    Filed: January 6, 2024
    Publication date: July 11, 2024
    Inventors: Wesley Waylon Terpstra, Richard Van, Chao Wei Huang, Kevin Heuer
  • Publication number: 20240202137
    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.
    Type: Application
    Filed: December 20, 2023
    Publication date: June 20, 2024
    Inventors: Wesley Waylon Terpstra, Richard Van, Eric Andrew Gouldey
  • Publication number: 20240184707
    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.
    Type: Application
    Filed: June 26, 2023
    Publication date: June 6, 2024
    Inventors: Michael Klinglesmith, Eric Andrew Gouldey, Wesley Waylon Terpstra
  • Publication number: 20240184721
    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.
    Type: Application
    Filed: April 11, 2023
    Publication date: June 6, 2024
    Inventors: Eric Andrew Gouldey, Michael Klinglesmith, Henry Cook, Wesley Waylon Terpstra
  • Publication number: 20240184703
    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.
    Type: Application
    Filed: June 26, 2023
    Publication date: June 6, 2024
    Inventors: Wesley Waylon Terpstra, Eric Andrew Gouldey, Michael Klinglesmith, Henry Cook
  • Publication number: 20240184663
    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.
    Type: Application
    Filed: December 1, 2023
    Publication date: June 6, 2024
    Inventors: Wesley Waylon Terpstra, Eric Andrew Gouldey
  • Publication number: 20240184696
    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.
    Type: Application
    Filed: December 1, 2023
    Publication date: June 6, 2024
    Inventor: Wesley Waylon Terpstra
  • Publication number: 20240184701
    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.
    Type: Application
    Filed: March 13, 2023
    Publication date: June 6, 2024
    Inventors: Eric Andrew Gouldey, Wesley Waylon Terpstra, Michael Kinglesmith
  • Publication number: 20240184720
    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.
    Type: Application
    Filed: June 26, 2023
    Publication date: June 6, 2024
    Inventors: Michael Klinglesmith, Eric Andrew Gouldey, Wesley Waylon Terpstra
  • Publication number: 20240184698
    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.
    Type: Application
    Filed: June 26, 2023
    Publication date: June 6, 2024
    Inventors: Wesley Waylon Terpstra, Eric Andrew Gouldey, Michael Klinglesmith, Henry Cook
  • Publication number: 20240184725
    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.
    Type: Application
    Filed: October 30, 2023
    Publication date: June 6, 2024
    Inventors: Michael Klinglesmith, Eric Andrew Gouldey, Wesley Waylon Terpstra
  • Publication number: 20240184702
    Abstract: Prefetch circuitry may be configured to transmit a message to prefetch one or more cache blocks of a group. The message may indicate an address for the group of cache blocks and a bit field that indicates the one or more cache blocks of the group to prefetch. In some implementations, the message may target a higher level cache to prefetch the one or more cache blocks, and the message may be transmitted to the higher level cache via a lower level cache. In some implementations, the message may target a higher level cache to prefetch the one or more cache blocks, the message may be transmitted to a lower level cache via a first command bus, and the lower level cache may forward the message to the higher level cache via a second command bus.
    Type: Application
    Filed: March 13, 2023
    Publication date: June 6, 2024
    Inventors: Eric Andrew Gouldey, Wesley Waylon Terpstra, Michael Klinglesmith
  • Publication number: 20240184718
    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).
    Type: Application
    Filed: April 10, 2023
    Publication date: June 6, 2024
    Inventors: Michael Klinglesmith, Eric Andrew Gouldey, Wesley Waylon Terpstra