Patents by Inventor Adrian M. Caulfield

Adrian M. Caulfield 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: 11689305
    Abstract: Systems and methods that provide for transmission of messages among nodes (e.g., acceleration components configurable to accelerate a service) using a time-synchronized transport layer (TSL) protocol are provided. An example method, in a network comprising at least a first node, a second node, and a third node, includes each of the at least the first node, the second node, and the third node synchronizing a respective clock to a common clock. The method further includes each of the at least the first node, the second node, and the third node scheduling data transmission in the network in a manner such that at a particular time in reference to the common clock each of the at least the first node, the second node, and the third node is scheduled to receive data from only one of the first node, the second node, or the third node.
    Type: Grant
    Filed: November 19, 2021
    Date of Patent: June 27, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Adrian M. Caulfield, Michael K. Papamichael, Ang Li
  • Publication number: 20220085904
    Abstract: Systems and methods that provide for transmission of messages among nodes (e.g., acceleration components configurable to accelerate a service) using a time-synchronized transport layer (TSL) protocol are provided. An example method, in a network comprising at least a first node, a second node, and a third node, includes each of the at least the first node, the second node, and the third node synchronizing a respective clock to a common clock. The method further includes each of the at least the first node, the second node, and the third node scheduling data transmission in the network in a manner such that at a particular time in reference to the common clock each of the at least the first node, the second node, and the third node is scheduled to receive data from only one of the first node, the second node, or the third node.
    Type: Application
    Filed: November 19, 2021
    Publication date: March 17, 2022
    Inventors: Adrian M. Caulfield, Michael K. Papamichael, Ang Li
  • Patent number: 11212023
    Abstract: Systems and methods that provide for transmission of messages among nodes (e.g., acceleration components configurable to accelerate a service) using a time-synchronized transport layer (TSL) protocol are provided. An example method, in a network comprising at least a first node, a second node, and a third node, includes each of the at least the first node, the second node, and the third node synchronizing a respective clock to a common clock. The method further includes each of the at least the first node, the second node, and the third node scheduling data transmission in the network in a manner such that at a particular time in reference to the common clock each of the at least the first node, the second node, and the third node is scheduled to receive data from only one of the first node, the second node, or the third node.
    Type: Grant
    Filed: November 6, 2019
    Date of Patent: December 28, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Adrian M. Caulfield, Michael K. Papamichael, Ang Li
  • Publication number: 20210135773
    Abstract: Systems and methods that provide for transmission of messages among nodes (e.g., acceleration components configurable to accelerate a service) using a time-synchronized transport layer (TSL) protocol are provided. An example method, in a network comprising at least a first node, a second node, and a third node, includes each of the at least the first node, the second node, and the third node synchronizing a respective clock to a common clock. The method further includes each of the at least the first node, the second node, and the third node scheduling data transmission in the network in a manner such that at a particular time in reference to the common clock each of the at least the first node, the second node, and the third node is scheduled to receive data from only one of the first node, the second node, or the third node.
    Type: Application
    Filed: November 6, 2019
    Publication date: May 6, 2021
    Inventors: Adrian M. Caulfield, Michael K. Papamichael, Ang Li
  • Patent number: 10977104
    Abstract: Aspects extend to methods, systems, and computer program products for partially reconfiguring acceleration components. Partial reconfiguration can be implemented for any of a variety of reasons, including to address an error in functionality at the acceleration component or to update functionality at the acceleration component. During partial reconfiguration, connectivity can be maintained for any other functionality at the acceleration component untouched by the partial reconfiguration. Partial reconfiguration is more efficient to deploy than full reconfiguration of an acceleration component.
    Type: Grant
    Filed: January 25, 2019
    Date of Patent: April 13, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Derek T. Chiou, Sitaram V. Lanka, Adrian M. Caulfield, Andrew R. Putnam, Douglas C. Burger
  • Patent number: 10922250
    Abstract: Systems and methods for monitoring and steering service requests to acceleration components are provided. An example method in a system comprising a host configured to send messages, corresponding to a service, to any of a set of acceleration components may include tracking an input buffer occupancy corresponding to each of the set of acceleration components. The method may further include, upon a first input buffer occupancy of a first acceleration component from among the set of the acceleration components meeting a predetermined criterion, generating a first penalty value for the first acceleration component based at least on the first input buffer occupancy associated with the first acceleration component, and comparing a second value indicative of an availability of the second acceleration component to receive messages from the host to a second dynamically updated value to determine whether the host can send a next message to the second acceleration component.
    Type: Grant
    Filed: April 30, 2019
    Date of Patent: February 16, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Adrian M. Caulfield, Michael Papamichael, Alexey Lavrov
  • Patent number: 10831576
    Abstract: Aspects extend to methods, systems, and computer program products for partially reconfiguring acceleration components. Partial reconfiguration can be implemented for any of a variety of reasons, including to address an error in functionality at the acceleration component or to update functionality at the acceleration component. During partial reconfiguration, connectivity can be maintained for any other functionality at the acceleration component untouched by the partial reconfiguration. Partial reconfiguration is more efficient to deploy than full reconfiguration of an acceleration component.
    Type: Grant
    Filed: January 25, 2019
    Date of Patent: November 10, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Derek T. Chiou, Sitaram V. Lanka, Adrian M. Caulfield, Andrew R. Putnam, Douglas C. Burger
  • Publication number: 20200349098
    Abstract: Systems and methods for monitoring and steering service requests to acceleration components are provided. An example method in a system comprising a host configured to send messages, corresponding to a service, to any of a set of acceleration components may include tracking an input buffer occupancy corresponding to each of the set of acceleration components. The method may further include, upon a first input buffer occupancy of a first acceleration component from among the set of the acceleration components meeting a predetermined criterion, generating a first penalty value for the first acceleration component based at least on the first input buffer occupancy associated with the first acceleration component, and comparing a second value indicative of an availability of the second acceleration component to receive messages from the host to a second dynamically updated value to determine whether the host can send a next message to the second acceleration component.
    Type: Application
    Filed: April 30, 2019
    Publication date: November 5, 2020
    Inventors: Adrian M. Caulfield, Michael Papamichael, Alexey Lavrov
  • Patent number: 10791054
    Abstract: Systems and methods for flow control and congestion management of messages among acceleration components (ACs) configurable to accelerate a service are provided. An example system comprises a software plane including host components configured to execute instructions corresponding to a service and an acceleration plane including ACs configurable to accelerate the service. In a first mode a sending AC is configured to, in response to receiving a first indication from a receiving AC, send subsequent packets corresponding to a first message associated with the service using a larger inter-packet gap than an inter-packet gap used for previous packets corresponding to the first message associated with the service, and in the second mode the sending AC is configured to, in response to receiving a second indication from the receiving AC, delay a transmission of a next packet corresponding to the first message associated with the service.
    Type: Grant
    Filed: April 26, 2019
    Date of Patent: September 29, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Adrian M. Caulfield, Eric S. Chung, Michael Papamichael
  • Patent number: 10528119
    Abstract: Dynamic power routing is utilized to route power from other components, which are transitioned to lower power consuming states, in order to accommodate more efficient processing of computational tasks by hardware accelerators, thereby staying within electrical power thresholds that would otherwise not have accommodated simultaneous full-power operation of the other components and such hardware accelerators. Once a portion of a workflow is being processed by hardware accelerators, the workflow, or the hardware accelerators, can be self-throttling to stay within power thresholds, or they can be throttled by independent coordinators, including device-centric and system-wide coordinators.
    Type: Grant
    Filed: August 25, 2017
    Date of Patent: January 7, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Andrew R Putnam, Douglas Christopher Burger, Stephen F Heil, Eric S. Chung, Adrian M. Caulfield
  • Publication number: 20190253354
    Abstract: Systems and methods for flow control and congestion management of messages among acceleration components (ACs) configurable to accelerate a service are provided. An example system comprises a software plane including host components configured to execute instructions corresponding to a service and an acceleration plane including ACs configurable to accelerate the service. In a first mode a sending AC is configured to, in response to receiving a first indication from a receiving AC, send subsequent packets corresponding to a first message associated with the service using a larger inter-packet gap than an inter-packet gap used for previous packets corresponding to the first message associated with the service, and in the second mode the sending AC is configured to, in response to receiving a second indication from the receiving AC, delay a transmission of a next packet corresponding to the first message associated with the service.
    Type: Application
    Filed: April 26, 2019
    Publication date: August 15, 2019
    Inventors: Adrian M. Caulfield, Eric S. Chung, Michael Papamichael
  • Patent number: 10326696
    Abstract: Components, methods, and systems allowing acceleration components to transmit messages are provided. An acceleration component for use among a first plurality of acceleration components, associated with a first top-of-rack (TOR) switch, to transmit messages to other acceleration components in an acceleration plane configurable to provide service acceleration for a service is provided. The acceleration component includes a transport component configured to transmit a first point-to-point message to a second acceleration component, associated with a second TOR switch different form the first TOR switch, and to a third acceleration component, associated with a third TOR switch different from the first TOR switch and the second TOR switch. The transport component may be configured to broadcast a second point-to-point message to all of a second plurality of acceleration components associated with the second TOR switch and to all of a third plurality of acceleration components associated with the third TOR switch.
    Type: Grant
    Filed: January 2, 2017
    Date of Patent: June 18, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Adrian M. Caulfield, Eric S. Chung, Michael Papamichael
  • Patent number: 10320677
    Abstract: Systems and methods for flow control and congestion management of messages among acceleration components (ACs) configurable to accelerate a service are provided. An example system comprises a software plane including host components configured to execute instructions corresponding to a service and an acceleration plane including ACs configurable to accelerate the service. In a first mode a sending AC is configured to, in response to receiving a first indication from a receiving AC, send subsequent packets corresponding to a first message associated with the service using a larger inter-packet gap than an inter-packet gap used for previous packets corresponding to the first message associated with the service, and in the second mode the sending AC is configured to, in response to receiving a second indication from the receiving AC, delay a transmission of a next packet corresponding to the first message associated with the service.
    Type: Grant
    Filed: February 10, 2017
    Date of Patent: June 11, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Adrian M. Caulfield, Eric S. Chung, Michael Papamichael
  • Publication number: 20190155669
    Abstract: Aspects extend to methods, systems, and computer program products for partially reconfiguring acceleration components. Partial reconfiguration can be implemented for any of a variety of reasons, including to address an error in functionality at the acceleration component or to update functionality at the acceleration component. During partial reconfiguration, connectivity can be maintained for any other functionality at the acceleration component untouched by the partial reconfiguration. Partial reconfiguration is more efficient to deploy than full reconfiguration of an acceleration component.
    Type: Application
    Filed: January 25, 2019
    Publication date: May 23, 2019
    Inventors: Derek T. Chiou, Sitaram V. Lanka, Adrian M. Caulfield, Andrew R. Putnam, Douglas C. Burger
  • Patent number: 10296392
    Abstract: A data processing system is described herein that includes two or more software-driven host components that collectively provide a software plane. The data processing system further includes two or more hardware acceleration components that collectively provide a hardware acceleration plane. The hardware acceleration plane implements one or more services, including at least one multi-component service. The multi-component service has plural parts, and is implemented on a collection of two or more hardware acceleration components, where each hardware acceleration component in the collection implements a corresponding part of the multi-component service. Each hardware acceleration component in the collection is configured to interact with other hardware acceleration components in the collection without involvement from any host component. A function parsing component is also described herein that determines a manner of parsing a function into the plural parts of the multi-component service.
    Type: Grant
    Filed: May 20, 2015
    Date of Patent: May 21, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Stephen F. Heil, Adrian M. Caulfield, Douglas C. Burger, Andrew R. Putnam, Eric S. Chung
  • Patent number: 10216555
    Abstract: Aspects extend to methods, systems, and computer program products for partially reconfiguring acceleration components. Partial reconfiguration can be implemented for any of a variety of reasons, including to address an error in functionality at the acceleration component or to update functionality at the acceleration component. During partial reconfiguration, connectivity can be maintained for any other functionality at the acceleration component untouched by the partial reconfiguration. Partial reconfiguration is more efficient to deploy than full reconfiguration of an acceleration component.
    Type: Grant
    Filed: June 26, 2015
    Date of Patent: February 26, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Derek T. Chiou, Sitaram V. Lanka, Adrian M. Caulfield, Andrew R. Putnam, Douglas C. Burger
  • Publication number: 20180349196
    Abstract: A data processing system is described herein that includes two or more software-driven host components that collectively provide a software plane. The data processing system further includes two or more hardware acceleration components that collectively provide a hardware acceleration plane. The hardware acceleration plane implements one or more services, including at least one multi-component service. The multi-component service has plural parts, and is implemented on a collection of two or more hardware acceleration components, where each hardware acceleration component in the collection implements a corresponding part of the multi-component service. Each hardware acceleration component in the collection is configured to interact with other hardware acceleration components in the collection without involvement from any host component. A function parsing component is also described herein that determines a manner of parsing a function into the plural parts of the multi-component service.
    Type: Application
    Filed: August 9, 2018
    Publication date: December 6, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Stephen F. Heil, Adrian M. Caulfield, Douglas C. Burger, Andrew R. Putnam, Eric S. Chung
  • Patent number: 10027543
    Abstract: The present invention extends to methods, systems, and computer program products for reconfiguring an acceleration component among interconnected acceleration components. Aspects of the invention facilitate reconfiguring an acceleration component among interconnected acceleration components using a higher-level software service. A manager or controller isolates an acceleration component by sending a message to one or more neighbor acceleration components instructing the one or more neighbor acceleration components to stop accepting communication from the acceleration component. The manager or controller can then shut down an application layer at the acceleration component for at least partial reconfiguration and closes input/output (I/O) portions. After reconfiguration completes, communication between the acceleration component and the one or more neighbor acceleration components can resume.
    Type: Grant
    Filed: June 26, 2015
    Date of Patent: July 17, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sitaram V. Lanka, Adrian M. Caulfield, Eric S. Chung, Andrew R. Putnam, Douglas C. Burger, Derek T. Chiou
  • Publication number: 20180191609
    Abstract: Components, methods, and systems allowing acceleration components to transmit messages are provided. An acceleration component for use among a first plurality of acceleration components, associated with a first top-of-rack (TOR) switch, to transmit messages to other acceleration components in an acceleration plane configurable to provide service acceleration for a service is provided. The acceleration component includes a transport component configured to transmit a first point-to-point message to a second acceleration component, associated with a second TOR switch different form the first TOR switch, and to a third acceleration component, associated with a third TOR switch different from the first TOR switch and the second TOR switch. The transport component may be configured to broadcast a second point-to-point message to all of a second plurality of acceleration components associated with the second TOR switch and to all of a third plurality of acceleration components associated with the third TOR switch.
    Type: Application
    Filed: January 2, 2017
    Publication date: July 5, 2018
    Inventors: Adrian M. Caulfield, Eric S. Chung, Michael Papamichael
  • Publication number: 20180191617
    Abstract: Systems and methods for flow control and congestion management of messages among acceleration components (ACs) configurable to accelerate a service are provided. An example system comprises a software plane including host components configured to execute instructions corresponding to a service and an acceleration plane including ACs configurable to accelerate the service. In a first mode a sending AC is configured to, in response to receiving a first indication from a receiving AC, send subsequent packets corresponding to a first message associated with the service using a larger inter-packet gap than an inter-packet gap used for previous packets corresponding to the first message associated with the service, and in the second mode the sending AC is configured to, in response to receiving a second indication from the receiving AC, delay a transmission of a next packet corresponding to the first message associated with the service.
    Type: Application
    Filed: February 10, 2017
    Publication date: July 5, 2018
    Inventors: Adrian M. Caulfield, Eric S. Chung, Michael Papamichael