Managing resource sharing in a multi-core data processing fabric

  • US 10,963,306 B2
  • Filed: 09/28/2020
  • Issued: 03/30/2021
  • Est. Priority Date: 11/04/2011
  • Status: Active Grant
First Claim
Patent Images

1. A method for task-switching on a multi-user parallel processing hardware architecture comprising a plurality of reconfigurable logic-based processing units, the method comprising:

  • linking, through a first set of inter-task communication paths of the multi-user parallel processing hardware architecture, a first set of reconfigurable logic-based processing units of the plurality of reconfigurable logic-based processing units into a first multi-stage program instance configured to execute a corresponding set of interdependent processing stages of a first program, wherein each of the first set of reconfigurable logic-based processing units is programmed to perform a respective task of a plurality of first tasks of the first program corresponding to a respective processing stage of the first multi-stage program instance;

    linking, through a second set of inter-task communication paths of the multi-user parallel processing hardware architecture, a second set of reconfigurable logic-based processing units of the plurality of reconfigurable logic-based processing units into a second multi-stage program instance configured to execute a corresponding set of interdependent processing stages of a second program, wherein each of the second set of reconfigurable logic-based processing units is programmed to perform a respective task of a plurality of second tasks of the second program corresponding to a respective processing stage of the second multi-stage program instance;

    maintaining, in a storage, a first location for a first reconfigurable logic-based processing unit of the first set of reconfigurable logic-based processing units executing the first multi-stage program instance such that a first one or more users and/or programs are enabled to communicate directly with the first multi-stage program instance;

    maintaining, in the storage, a second location for a second reconfigurable logic-based processing unit of the second set of reconfigurable logic-based processing units executing the second multi-stage program instance such that a second one or more users and/or programs are enabled to communicate directly with the second multi-stage program instance; and

    in response to an increased demand for the second program, reallocating, by a controller comprising software and/or hardware logic configured to implement a load-adaptive allocation policy, at least one processing unit of the first set of reconfigurable logic-based processing units, the reallocating resulting in(1) switching the at least one of the first set of processing units from performing a task of the plurality of first tasks to performing one task of the plurality of second tasks, wherein switching comprises matching a first programming configuration of the at least one of the first set of processing units to a programming configuration demanded by the one task, and(2) adjusting, in storage, at least one of the first location or the second location to enable, through the respective location, direct communication to the other multi-stage program instance of the first multi-stage program instance or the second multi-stage program instance;

    wherein the load-adaptive allocation policy is configured to facilitate minimizing reconfiguring the plurality of reconfigurable logic-based processing units.

View all claims
    ×
    ×

    Thank you for your feedback

    ×
    ×