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: 11689305Abstract: 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: GrantFiled: November 19, 2021Date of Patent: June 27, 2023Assignee: Microsoft Technology Licensing, LLCInventors: Adrian M. Caulfield, Michael K. Papamichael, Ang Li
-
Publication number: 20220085904Abstract: 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: ApplicationFiled: November 19, 2021Publication date: March 17, 2022Inventors: Adrian M. Caulfield, Michael K. Papamichael, Ang Li
-
Patent number: 11212023Abstract: 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: GrantFiled: November 6, 2019Date of Patent: December 28, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Adrian M. Caulfield, Michael K. Papamichael, Ang Li
-
Publication number: 20210135773Abstract: 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: ApplicationFiled: November 6, 2019Publication date: May 6, 2021Inventors: Adrian M. Caulfield, Michael K. Papamichael, Ang Li
-
Patent number: 10977104Abstract: 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: GrantFiled: January 25, 2019Date of Patent: April 13, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Derek T. Chiou, Sitaram V. Lanka, Adrian M. Caulfield, Andrew R. Putnam, Douglas C. Burger
-
Patent number: 10922250Abstract: 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: GrantFiled: April 30, 2019Date of Patent: February 16, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Adrian M. Caulfield, Michael Papamichael, Alexey Lavrov
-
Patent number: 10831576Abstract: 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: GrantFiled: January 25, 2019Date of Patent: November 10, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Derek T. Chiou, Sitaram V. Lanka, Adrian M. Caulfield, Andrew R. Putnam, Douglas C. Burger
-
Publication number: 20200349098Abstract: 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: ApplicationFiled: April 30, 2019Publication date: November 5, 2020Inventors: Adrian M. Caulfield, Michael Papamichael, Alexey Lavrov
-
Patent number: 10791054Abstract: 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: GrantFiled: April 26, 2019Date of Patent: September 29, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Adrian M. Caulfield, Eric S. Chung, Michael Papamichael
-
Patent number: 10528119Abstract: 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: GrantFiled: August 25, 2017Date of Patent: January 7, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Andrew R Putnam, Douglas Christopher Burger, Stephen F Heil, Eric S. Chung, Adrian M. Caulfield
-
Publication number: 20190253354Abstract: 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: ApplicationFiled: April 26, 2019Publication date: August 15, 2019Inventors: Adrian M. Caulfield, Eric S. Chung, Michael Papamichael
-
Patent number: 10326696Abstract: 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: GrantFiled: January 2, 2017Date of Patent: June 18, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Adrian M. Caulfield, Eric S. Chung, Michael Papamichael
-
Patent number: 10320677Abstract: 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: GrantFiled: February 10, 2017Date of Patent: June 11, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Adrian M. Caulfield, Eric S. Chung, Michael Papamichael
-
Publication number: 20190155669Abstract: 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: ApplicationFiled: January 25, 2019Publication date: May 23, 2019Inventors: Derek T. Chiou, Sitaram V. Lanka, Adrian M. Caulfield, Andrew R. Putnam, Douglas C. Burger
-
Patent number: 10296392Abstract: 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: GrantFiled: May 20, 2015Date of Patent: May 21, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Stephen F. Heil, Adrian M. Caulfield, Douglas C. Burger, Andrew R. Putnam, Eric S. Chung
-
Patent number: 10216555Abstract: 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: GrantFiled: June 26, 2015Date of Patent: February 26, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Derek T. Chiou, Sitaram V. Lanka, Adrian M. Caulfield, Andrew R. Putnam, Douglas C. Burger
-
Publication number: 20180349196Abstract: 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: ApplicationFiled: August 9, 2018Publication date: December 6, 2018Applicant: Microsoft Technology Licensing, LLCInventors: Stephen F. Heil, Adrian M. Caulfield, Douglas C. Burger, Andrew R. Putnam, Eric S. Chung
-
Patent number: 10027543Abstract: 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: GrantFiled: June 26, 2015Date of Patent: July 17, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Sitaram V. Lanka, Adrian M. Caulfield, Eric S. Chung, Andrew R. Putnam, Douglas C. Burger, Derek T. Chiou
-
Publication number: 20180191609Abstract: 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: ApplicationFiled: January 2, 2017Publication date: July 5, 2018Inventors: Adrian M. Caulfield, Eric S. Chung, Michael Papamichael
-
Publication number: 20180191617Abstract: 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: ApplicationFiled: February 10, 2017Publication date: July 5, 2018Inventors: Adrian M. Caulfield, Eric S. Chung, Michael Papamichael