Patents by Inventor Wilson P. Snyder

Wilson P. Snyder 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: 11269644
    Abstract: A system and corresponding method enforce strong load ordering in a processor. The system comprises an ordering ring that stores entries corresponding to in-flight memory instructions associated with a program order, scanning logic, and recovery logic. The scanning logic scans the ordering ring in response to execution or completion of a given load instruction of the in-flight memory instructions and detects an ordering violation in an event at least one entry of the entries indicates that a younger load instruction has completed and is associated with an invalidated cache line. In response to the ordering violation, the recovery logic allows the given load instruction to complete, flushes the younger load instruction, and restarts execution of the processor after the given load instruction in the program order, causing data returned by the given and younger load instructions to be returned consistent with execution according to the program order to satisfy strong load ordering.
    Type: Grant
    Filed: July 29, 2019
    Date of Patent: March 8, 2022
    Assignee: MARVELL ASIA PTE, LTD.
    Inventors: David A. Carlson, Shubhendu S. Mukherjee, Wilson P. Snyder, II
  • Patent number: 11188466
    Abstract: A memory request, including an address, is accessed. The memory request also specifies a type of an operation (e.g., a read or write) associated with an instance (e.g., a block) of data. A group of caches is selected using a bit or bits in the address. A first hash of the address is performed to select a cache in the group. A second hash of the address is performed to select a set of cache lines in the cache. Unless the operation results in a cache miss, the memory request is processed at the selected cache. When there is a cache miss, a third hash of the address is performed to select a memory controller, and a fourth hash of the address is performed to select a bank group and a bank in memory.
    Type: Grant
    Filed: February 11, 2020
    Date of Patent: November 30, 2021
    Assignee: Marvell Asia Pte, Ltd.
    Inventors: Richard E. Kessler, David Asher, Shubhendu S. Mukherjee, Wilson P. Snyder, II, David Carlson, Jason Zebchuk, Isam Akkawi
  • Patent number: 11010165
    Abstract: A network processor provides for buffer allocation in a manner supporting virtual machines. Each memory allocation request is associated with an aura and a pool, which can be assigned to distinct virtual functions. When parsing a request, lookup tables for the auras and pools are generated and expanded as needed to accommodate any number of concurrent functions. Based on the identified pool of the request, a corresponding stack of pointers is accessed, and a pointer is returned to enable access to the memory.
    Type: Grant
    Filed: March 12, 2019
    Date of Patent: May 18, 2021
    Assignee: Marvell Asia Pte, Ltd.
    Inventors: Wilson P. Snyder, II, Shahe H. Krakirian
  • Publication number: 20210064421
    Abstract: A system and corresponding method queue work within a virtualized scheduler based on in-unit accounting (IUA) of in-unit entries (IUEs). The system comprises an IUA resource and arbiter. The IUA resource stores, in association with an IUA identifier, an IUA count and threshold. The IUA count represents a global count of work-queue entries (WQEs) that are associated with the IUA identifier and occupy respective IUEs of an IUE resource. The IUA threshold limits the global count. The arbiter retrieves the IUA count and threshold from the IUA resource based on the IUA identifier and controls, as a function of the IUA count and threshold, whether a given WQE from a given scheduling group, assigned to the IUA identifier, is moved into the IUE resource to be queued for scheduling. The IUA count and threshold prevent group(s) assigned to the IUA identifier from using more than an allocated amount of IUEs.
    Type: Application
    Filed: August 28, 2019
    Publication date: March 4, 2021
    Inventors: Jason D. Zebchuk, Wilson P. Snyder, II
  • Publication number: 20200293318
    Abstract: A network processor provides for buffer allocation in a manner supporting virtual machines. Each memory allocation request is associated with an aura and a pool, which can be assigned to distinct virtual functions. When parsing a request, lookup tables for the auras and pools are generated and expanded as needed to accommodate any number of concurrent functions. Based on the identified pool of the request, a corresponding stack of pointers is accessed, and a pointer is returned to enable access to the memory.
    Type: Application
    Filed: March 12, 2019
    Publication date: September 17, 2020
    Inventors: Wilson P. Snyder, II, Shahe H. Krakirian
  • Publication number: 20200183844
    Abstract: A memory request, including an address, is accessed. The memory request also specifies a type of an operation (e.g., a read or write) associated with an instance (e.g., a block) of data. A group of caches is selected using a bit or bits in the address. A first hash of the address is performed to select a cache in the group. A second hash of the address is performed to select a set of cache lines in the cache. Unless the operation results in a cache miss, the memory request is processed at the selected cache. When there is a cache miss, a third hash of the address is performed to select a memory controller, and a fourth hash of the address is performed to select a bank group and a bank in memory.
    Type: Application
    Filed: February 11, 2020
    Publication date: June 11, 2020
    Inventors: Richard E. KESSLER, David ASHER, Shubhendu S. MUKHERJEE, Wilson P. SNYDER, II, David CARLSON, Jason ZEBCHUK, Isam AKKAWI
  • Patent number: 10599437
    Abstract: A predicted branch result is determined based on at least a portion of branch prediction information, which is updated based on an actual branch result, which is provided based on an executed branch instruction. For a first execution of a first branch instruction, the updating includes: computing a randomized value and storing the randomized value in association with an identified subset of one or more contexts that includes a context associated with the first branch instruction, obfuscating the actual branch result based at least in part on the randomized value, and storing a resulting obfuscated value in the branch prediction information. Providing a predicted branch result for a second execution of the first branch instruction includes: retrieving the obfuscated value from the branch prediction information, retrieving the randomized value, and de-obfuscating the obfuscated value using the randomized value to recover the actual branch result as the predicted branch result.
    Type: Grant
    Filed: April 26, 2018
    Date of Patent: March 24, 2020
    Assignee: Marvell World Trade Ltd.
    Inventors: Richard Eugene Kessler, Wilson P. Snyder, II, Shubhendu Sekhar Mukherjee
  • Patent number: 10558573
    Abstract: A memory request, including an address, is accessed. The memory request also specifies a type of an operation (e.g., a read or write) associated with an instance (e.g., a block) of data. A group of caches is selected using a bit or bits in the address. A first hash of the address is performed to select a cache in the group. A second hash of the address is performed to select a set of cache lines in the cache. Unless the operation results in a cache miss, the memory request is processed at the selected cache. When there is a cache miss, a third hash of the address is performed to select a memory controller, and a fourth hash of the address is performed to select a bank group and a bank in memory.
    Type: Grant
    Filed: September 11, 2018
    Date of Patent: February 11, 2020
    Assignee: Cavium, LLC
    Inventors: Richard E. Kessler, David Asher, Shubhendu S. Mukherjee, Wilson P. Snyder, II, David Carlson, Jason Zebchuk, Isam Akkawi
  • Publication number: 20200012499
    Abstract: An apparatus, and corresponding method, for input/output (I/O) value determination, generates an I/O instruction for an I/O device, the I/O device including a state machine with state transition logic. The apparatus comprises a controller that includes a simplified state machine with a reduced version of the state transition logic of the state machine of the I/O device. The controller is configured to improve instruction execution performance of a processor core by employing the simplified state machine to predict at least one state value of at least one I/O device true state value to be affected by the I/O instruction at the I/O device.
    Type: Application
    Filed: December 4, 2018
    Publication date: January 9, 2020
    Inventors: Jason D. Zebchuk, Wilson P. Snyder, II, Michael S. Bertone
  • Publication number: 20190227802
    Abstract: A predicted branch result is determined based on at least a portion of branch prediction information, which is updated based on an actual branch result, which is provided based on an executed branch instruction. For a first execution of a first branch instruction, the updating includes: computing a randomized value and storing the randomized value in association with an identified subset of one or more contexts that includes a context associated with the first branch instruction, obfuscating the actual branch result based at least in part on the randomized value, and storing a resulting obfuscated value in the branch prediction information. Providing a predicted branch result for a second execution of the first branch instruction includes: retrieving the obfuscated value from the branch prediction information, retrieving the randomized value, and de-obfuscating the obfuscated value using the randomized value to recover the actual branch result as the predicted branch result.
    Type: Application
    Filed: April 26, 2018
    Publication date: July 25, 2019
    Inventors: Richard Eugene KESSLER, Wilson P. SNYDER, II, Shubhendu Sekhar MUKHERJEE
  • Patent number: 10303514
    Abstract: In an embodiment, a method of providing quality of service (QoS) to at least one resource of a hardware processor includes providing, in a memory of the hardware processor, a context including at least one quality of service parameter and allocating access to the at least one resource of the hardware processor based on the quality of service parameter of the context, a device identifier, a virtual machine identifier, and the context.
    Type: Grant
    Filed: November 13, 2015
    Date of Patent: May 28, 2019
    Assignee: Cavium, LLC
    Inventors: Wilson P. Snyder, II, Varada Ogale, Anna Kujtkowski, Albert Ma
  • Patent number: 10282299
    Abstract: Partition information includes entries that each include an entity identifier and associated cache configuration information. A controller manages memory requests originating from processor cores, including: comparing at least a portion of an address included in a memory request with tags stored in a cache to determine whether the memory request results in a hit or a miss, and comparing an entity identifier included in the memory request with stored entity identifiers to determine a matched entry. The cache configuration information associated with the entity identifier in a matched entry is updated based at least in part on a hit or miss result. The associated cache configuration information includes cache usage information that tracks usage of the cache by an entity associated with the particular entity identifier, and partition descriptors that each define a different group of one or more of the regions.
    Type: Grant
    Filed: June 23, 2017
    Date of Patent: May 7, 2019
    Assignee: Cavium, LLC
    Inventors: Shubhendu Sekhar Mukherjee, David Asher, Wilson P. Snyder, II
  • Patent number: 10169080
    Abstract: According to at least one example embodiment, a multi-chip system includes multiple chip devices configured to communicate to each other and share hardware resources. According to at least one example embodiment, a method of processing work item in the multi-chip system comprises designating, by a work source component associated with a chip device, referred to as the source chip device, of the multiple chip devices, a work item to a scheduler for scheduling. The scheduler then assigns the work item to another chip device, referred to as the destination chip device, of the multiple chip devices for processing, the scheduler is one of one or more schedulers each associated with a corresponding chip device of the multiple chip devices.
    Type: Grant
    Filed: July 1, 2016
    Date of Patent: January 1, 2019
    Assignee: Cavium, LLC
    Inventors: Richard E. Kessler, Wilson P. Snyder, II
  • Publication number: 20180373635
    Abstract: Partition information includes entries that each include an entity identifier and associated cache configuration information. A controller manages memory requests originating from processor cores, including: comparing at least a portion of an address included in a memory request with tags stored in a cache to determine whether the memory request results in a hit or a miss, and comparing an entity identifier included in the memory request with stored entity identifiers to determine a matched entry. The cache configuration information associated with the entity identifier in a matched entry is updated based at least in part on a hit or miss result. The associated cache configuration information includes cache usage information that tracks usage of the cache by an entity associated with the particular entity identifier, and partition descriptors that each define a different group of one or more of the regions.
    Type: Application
    Filed: June 23, 2017
    Publication date: December 27, 2018
    Inventors: Shubhendu Sekhar Mukherjee, David Asher, Wilson P. Snyder, II
  • Patent number: 10078601
    Abstract: In an embodiment, interfacing a pipeline with two or more interfaces in a hardware processor includes providing a single pipeline in a hardware processor. The single pipeline presents at least two visible units. The single pipeline includes replicated architecturally visible structures, shared logic resources, and shared architecturally hidden structures. The method further includes receiving a request from one of a plurality of interfaces at one of the visible units. The method also includes tagging the request with an identifier based on the one of the at least two visible units that received the request. The method further includes processing the request in the single pipeline by propagating the request through the single pipeline through the replicated architecturally visible structures that correspond with the identifier.
    Type: Grant
    Filed: November 13, 2015
    Date of Patent: September 18, 2018
    Assignee: Cavium, Inc.
    Inventors: Wilson P. Snyder, II, Anna Kujtkowski, Albert Ma, Paul G. Scrobohaci
  • Patent number: 10042778
    Abstract: A computer system that supports virtualization may maintain multiple address spaces. Each guest operating system employs guest virtual addresses (GVAs), which are translated to guest physical addresses (GPAs). A hypervisor, which manages one or more guest operating systems, translates GPAs to root physical addresses (RPAs). A merged translation lookaside buffer (MTLB) caches translations between the multiple addressing domains, enabling faster address translation and memory access. The MTLB can be logically addressable as multiple different caches, and can be reconfigured to allot different spaces to each logical cache. Further, a collapsed TLB provides an additional cache storing collapsed translations derived from the MTLB.
    Type: Grant
    Filed: March 31, 2017
    Date of Patent: August 7, 2018
    Assignee: Cavium, Inc.
    Inventors: Shubhendu S. Mukherjee, Bryan W. Chin, Wilson P. Snyder, II, Michael Bertone, Richard E. Kessler, Christopher Mikulis
  • Patent number: 10013385
    Abstract: A data processor includes an input/output bridge that provides enforcement of a security status on transactions between devices across the bridge. The bridge includes circuitry to parse a received request to obtain one or more identifiers, and compare the identifiers against one or more programmable lookup tables. Based on this comparison, the bridge can determine the security status of the transaction, as well as selectively forward the transaction based on the security status.
    Type: Grant
    Filed: November 13, 2014
    Date of Patent: July 3, 2018
    Assignee: Cavium, Inc.
    Inventors: Robert A. Sanzone, Wilson P. Snyder, II, Richard E. Kessler
  • Patent number: 10002099
    Abstract: An arbiter circuit manages and enforces arbitration and quality of service (QOS) among multiple devices accessing a resource, such as a memory. The arbiter circuit receives requests from a number of devices to use resources of a bridge connecting to a memory, and maintains a count of bridge resources available on a per-device and per-bus basis. The arbiter circuit operates to select a next one of the requests to grant a bridge resource based on the device originating the request, a count of the per-device resources available, and a count of the resources available to the bus connecting the device to the bridge.
    Type: Grant
    Filed: November 13, 2014
    Date of Patent: June 19, 2018
    Assignee: Cavium, Inc.
    Inventors: Robert A. Sanzone, Wilson P. Snyder, II, Richard E. Kessler
  • Patent number: 9858222
    Abstract: A circuit manages and controls access requests to a register, such as a control and status register (CSR) among a number of devices. In particular, the circuit selectively forwards or suspends off-chip access requests and forwards on-chip access requests independent of the status of off-chip requests. The circuit receives access requests at a plurality of buses, one or more of which can be dedicated to exclusively on-chip requests and/or exclusively off-chip requests. Based on the completion status of previous off-chip access requests, further off-chip access requests are selectively forwarded or suspended, while on-chip access request are sent independently of off-chip request status.
    Type: Grant
    Filed: November 13, 2014
    Date of Patent: January 2, 2018
    Assignee: Cavium, Inc.
    Inventors: Robert A. Sanzone, Wilson P. Snyder, II, Richard E. Kessler
  • Patent number: 9772952
    Abstract: An embodiment of the present disclosure includes a method for compressing data for a translation look aside buffer (TLB). The method includes: receiving an identifier at a content addressable memory (CAM), the identifier having a first bit length; compressing the identifier based on a location within the CAM the identifier is stored, the compressed identifier having a second bit length, the second bit length being smaller than the first bit length; and mapping at least the compressed identifier to a physical address in a buffer.
    Type: Grant
    Filed: May 18, 2017
    Date of Patent: September 26, 2017
    Assignee: CAVIUM, INC.
    Inventors: Anna Kujtkowski, Wilson P. Snyder, II