Reconfiguring an acceleration component among interconnected acceleration components

US2016308718A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016308718-A1
Application numberUS-201514752793-A
CountryUS
Kind codeA1
Filing dateJun 26, 2015
Priority dateApr 17, 2015
Publication dateOct 20, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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

First claim

Opening claim text (preview).

What is claimed: 1 . A method for reconfiguring an acceleration component among interconnected acceleration components, the method comprising a service manager: determining that it is appropriate to reconfigure a role at the acceleration component based on a detected condition at one or more of: the acceleration component or the role, the acceleration component included in a group of interoperating acceleration components in a hardware acceleration plane, roles at each acceleration component in the group of interoperating acceleration components linked together to compose a graph that provides service acceleration for a service; isolating the acceleration component from neighbor acceleration components in the group of interoperating acceleration components, the acceleration component isolated by sending a halt command to one or more neighbor acceleration components of the acceleration component, the halt command instructing the one or more neighbor acceleration components to ignore communication from the acceleration component; receiving an indication from each of the one or more neighbor acceleration components that the neighbor acceleration component is halted; reconfiguring the role at the acceleration component; sending an activate command to the one or more neighbor acceleration components of the acceleration component, the activate command instructing the one or more neighbor acceleration components to accept communication from the acceleration component; and receiving an indication from each of the one or more neighbor acceleration components that the neighbor acceleration component is activated. 2 . The method of claim 1 , wherein determining that it is appropriate to reconfigure a role at the acceleration component comprises detecting an error at the acceleration component. 3 . The method of claim 1 , further comprising, prior to isolating the acceleration component from the one or more neighbor acceleration components: sending a command to quiesce the graph; and receiving an indication that the graph is quiesced. 4 . The method of claim 3 , further comprising, subsequent to receiving an indication from each of the one or more neighbor acceleration components that the neighbor acceleration component is activated, sending an activate command to the graph to reactivate the graph. 5 . The method of claim 1 , wherein reconfiguring the role at the acceleration component comprises: sending a reconfiguration command to the acceleration component to reconfigure the role at the acceleration component; and receiving an indication from the acceleration component that the role has been reconfigured. 6 . The method claim 1 , wherein reconfiguring the role at the acceleration component comprises loading an image file at the acceleration component. 7 . The method of claim 1 , wherein the acceleration component comprises a Field Programmable Gate Array (FPGA). 8 . The method of claim 1 , wherein the service acceleration is for a service selected from among: document ranking, data encryption, data compression, speech translation, computer vision, or machine learning. 9 . The method of claim 1 , wherein the hardware acceleration plane comprises a configurable fabric of Field Programmable Gate Arrays (FPGAs). 10 . A computer program product for implementing a method for reconfiguring an acceleration component among interconnected acceleration components, the computer program product comprising one or more computer storage devices having stored thereon computer-executable instructions that, in response to execution at a processor, cause the method to be performed, comprising: determine that it is appropriate to reconfigure a role at the acceleration component based on a detected condition at one or more of: the acceleration component or the role, the acceleration component included in a group of interoperating acceleration components in a hardware acceleration plane, roles at each acceleration component in the group of interoperating acceleration components linked together to compose a graph that provides service acceleration for a service; isolate the acceleration component from neighbor acceleration components in the group of interoperating acceleration components, the acceleration component isolated by sending a halt command to one or more neighbor acceleration components of the acceleration component, the halt command instructing the one or more neighbor acceleration components to ignore communication from the acceleration component; receive an indication from each of the one or more neighbor acceleration components that the neighbor acceleration component is halted; reconfigure the role at the acceleration component; send an activate command to the one or more neighbor acceleration components of the acceleration component, the activate command instructing the one or more neighbor acceleration components to accept communication from the acceleration component; and receive an indication from each of the one or more neighbor acceleration components that the neighbor acceleration component is activated. 11 . The computer program product of claim 10 , wherein computer-executable instructions that, in response to execution, reconfigure the role at the acceleration component reconfigure the role at the acceleration component comprise computer-executable instructions that, when executed, load an image file at the acceleration component. 12 . The computer program product of claim 10 , further comprising computer-executable instructions that, in response to execution: prior to isolating the acceleration component from the one or more neighbor acceleration components: send a command to quiesce the graph; and receive an indication that the graph is quiesced; and subsequent to receiving an indication from each of the one or more neighbor acceleration components that the neighbor acceleration component is activated: send an activate command to the graph to reactivate the graph. 13 . The computer program product of claim 10 , wherein the acceleration component comprises a Field Programmable Gate Array (FPGA). 14 . The computer program product of claim 10 , wherein the service acceleration is for a service selected from among: document ranking, data encryption, data compression, speech translation, computer vision, or machine learning. 15 . The computer program product of claim 10 , wherein the hardware acceleration plane comprises a configurable fabric of Field Programmable Gate Arrays (FPGAs). 16 . A system, the system including: a hardware acceleration plane including a configurable fabric of a plurality of acceleration components; a software plane including a plurality of host components configured to execute software; a network infrastructure shared by acceleration components in the hardware acceleration plane and host components in the software plane, the network infrastructure used by acceleration components to communicate directly with one another; one or more computer storage devices having stored thereon computer-executable instructions representing a service manager, the service manager configured to: determine that it is appropriate to reconfigure a role at the acceleration component based on a detected condition at one or more of: the acceleration component and the role, the acceleration component included in a group of interoperating acceleration components in the hardware acceleration plane, roles at each acceleration component in the group of interoperating acceleration components linked together to compose a graph that provides service accelerat

Assignees

Inventors

Classifications

  • Resetting or repowering · CPC title

  • Reconfiguring to eliminate the error (group management mechanisms in a peer-to-peer network H04L67/1044) · CPC title

  • Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units (interface circuits for specific input/output devices G06F3/00 {; multiprogram control therefor  G06F9/46}; multiprocessor systems  G06F15/16 ) · CPC title

  • Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS · CPC title

  • G06F9/5027Primary

    the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016308718A1 cover?
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 send…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/5027. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Oct 20 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).