EP2490141A2

Method of, and apparatus for, stream scheduling in a parallel pipelined stream processor

Abstract

There is provided a method of generating a hardware design for a pipelined parallel stream processor. The method comprises defining, on a computing device, a processing operation designating processes to be implemented in hardware as part of said pipelined parallel stream processor; defining, on a computing device, a graph representing said processing operation as a parallel structure in the time domain as a function of clock cycles, said graph comprising at least one data path to be implemented as a hardware design for said pipelined parallel stream processor and comprising a plurality of branches configured to enable data values to be streamed therethrough, the branches of the or each data path being represented as comprising at least one input, at least one output, at least one discrete object corresponding directly to a hardware element to be implemented in hardware as part of said pipelined parallel stream processor, the or each discrete object being operable to execute a function for one or more clock cycles and having a predefined latency associated therewith, said predefined latency representing the time required for said hardware element to execute said function; , said data values propagating through said data path from the at least one input to the at least one output as a function of increasing clock cycle; defining, on a computing device, the at least one data path and associated latencies of said graph as a set of algebraic linear inequalities; solving, on a computing device, said set of linear inequalities; optimising, on a computing device, the at least one data path in said graph using said solved linear inequalities to produce an optimised graph; and utilising, on a computing device, said optimised graph to define an optimised hardware design for implementation in hardware as said pipelined parallel stream processor.

EP2490141A2, drawing sheet 1
Sheet 1 of 32

Term

5.3 yearsto projected expiry

Projected expiry 28 December 2031, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

22 claims: 10 independent, 12 dependent

  1. 1
    A method of generating a hardware design for a pipelined parallel stream processor, the method comprising:defining, on a computing device, a processing operation designating processes to be implemented in hardware as part of said pipelined parallel stream processor;defining, on a computing device, a graph representing said processing operation as a parallel structure in the time domain as a function of clock cycles, said graph comprising at least one data path to be implemented as a hardware design for said pipelined parallel stream processor and comprising a plurality of parallel branches configured to enable data values to be streamed therethrough, the or each data path being represented as comprising at least one input, at least one output, at least one discrete object corresponding directly to a hardware element to be implemented in hardware as part of said pipelined parallel stream processor, the or each discrete object being operable to execute a function for one or more clock cycles and having a predefined latency associated therewith, said predefined latency representing the time required for said hardware element to execute said function, said data values propagating through said data path from the at least one input to the at least one output as a function of increasing clock cycle;defining, on a computing device, the at least one data path and associated latencies of said graph as a set of algebraic linear inequalities;solving, on a computing device, said set of linear inequalities;optimising, on a computing device, the at least one data path in said graph using said solved linear inequalities to produce an optimised graph;and utilising, on a computing device, said optimised graph to define an optimised hardware design for implementation in hardware as said pipelined parallel stream processor.
  2. 4
    A method according to any one of the preceding claims, wherein said step of optimising comprises minimising the amount of buffering required to schedule said data path and/or inserting, if required, buffering into at least some of the branches of said data path.
  3. 7
    A method according to any one of claims 4 to 6, wherein said step of optimising further comprises merging two or more buffers into a single buffer and/or allocating a single buffer to two or more branches of said at least one data path.
  4. 8
    A method according to any one of the preceding claims, wherein said graph comprises multiple inputs and multiple outputs, each input and each output being connected to at least one branch of said at least one data path.
  5. 10
    A method according to any one of the preceding claims, wherein said graph comprises multiple parallel data paths to be implemented in hardware as said pipelined parallel stream processor, and said steps of solving and optimising are carried out for each of said multiple parallel data paths.
  6. 11
    A method according to any one of the preceding claims, further comprising providing, on a computing device, at least one stream offset object located at a particular point in the data path, said stream offset object being operable to access, for a particular clock cycle and for said particular point in the data path, data values from a clock cycle different from said particular clock cycle.
  7. 12
    A method of generating a hardware design for a stream processor, the method comprising:defining, on a computing device, a processing operation designating processes to be implemented in hardware as part of said stream processor;defining, on a computing device, a graph representing said processing operation in the time domain as a function of clock cycles, said graph comprising at least one data path to be implemented in hardware as part of said stream processor and configured to enable data to be streamed therethrough, the or each data path comprising at least one input, at least one output and at least one discrete object, said data propagating through said data path from the at least one input to the at least one output as a function of increasing clock cycle;providing, on a computing device, at least one stream offset object located at a particular point in the data path, said stream offset object being operable to access, for a particular clock cycle and for said particular point in the data path, data values from a clock cycle different from said particular clock cycle;optimising, on a computing device, the at least one data path in said graph to produce an optimised graph;and utilising, on a computing device, said optimised graph to define an optimised hardware design for implementation in hardware as said stream processor.
  8. 18
    A method according to any one of the preceding claims, wherein said stream processor is implemented on a Field Programmable Gate Array or an Application Specific Integrated Circuit.
  9. 19
    A method according to any one of the preceding claims, further comprising the step of forming said optimised hardware design on said stream processor such that said stream processor is operable to perform said processing operation.
  10. 20
    A method of making a programmable logic device, comprising:generating a design using the method of any one of claims 1 to 18 programming the logic device to embody the generated design.
  11. 22
    A Field Programmable Gate Array, Application Specific Integrated Circuit or other programmable logic device, having a design generated using method of any one of claims 1 to 18.