EP1372084A2

Method for hardware-software multitasking on a reconfigurable computing platform

Abstract

A platform supporting reconfigurable computing, enabling the introduction of reconfigurable hardware into portable devices is described. Dynamic hardware/software multitasking methods for a reconfigurable computing platform including reconfigurable hardware devices such as gate arrays, especially FPGA's, and software means, like dedicated hardware/software operating systems and middleware, adapted for supporting said methods, especially multitasking are described. A computing platform, which is a heterogeneous multi-processor platform, containing one or more instruction set processors (ISP) and a reconfigurable matrix (for 5 instance a gate array, especially an FPGA), adapted for (dynamic) hardware/software multitasking is decribed. An operating systems (OS) is provided, capable of dealing with the platform, by providing a clear interface to the facilities of said platform and supporting concurrent task execution. The operating system is preferably an application independent system, allowing applications with a plurality of tasks, to communicate to said heterogeneous platform. Application tasks mapped on the reconfigurable matrix are denoted as hardware (HW) tasks (or components) while other tasks are denoted softwae (SW) tasks or components, e.g. for running on an Instruction Set Processor (ISP). Facilities for invoking hard real time constraints on a SW task are included in the operating system. Means for storing state information of a task preempted on a reconfigurable device are provided. The storage and transfer/restoration of state information can be managed by a HW/SW OS scheduler.

EP1372084A2, drawing sheet 1
Sheet 1 of 14

Term

Term ended

Projected expiry passed 2 June 2023, 3.3 years ago.

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

26 claims: 2 independent, 24 dependent

  1. 1
    A method of dynamically reconfiguring a computing platform in a process for executing at least one application on said platform,    said platform comprising at least one programmable processor and a reconfigurable processing device,    said application comprising a plurality of tasks,       a number of said tasks being selectably executable as a software task on a programmable processor or as a hardware task on a hardware device, said method comprising:configuring said reconfigurable device so as to be capable of executing a first plurality of hardware tasks ;after said configuring, executing a first set of tasks of an application substantially simultaneously on said platform, at least two of said tasks of said first set being substantially simultaneously executed as hardware tasks of said first plurality on said reconfigurable device;interrupting said execution of said first set;configuring said reconfigurable device such that at least one new hardware task other than one of the first plurality of hardware tasks can be executed;executing a second set of said tasks to further execute the application, the second set including said new hardware task, the execution being substantially simultaneously on said platform, at least two of said tasks of said second set, including said new hardware task, being substantially simultaneously executed as hardware tasks on said reconfigurable device.
  2. 9
    An operating system of a computing platform, capable of managing the execution of at least one application, comprising a plurality of tasks,    a number of said tasks being selectably executable as a software task on a programmable processor oras a hardware task on a hardware device,    on the computing platform comprising at least one programmable processor and a reconfigurable device, said operating system comprising:means for scheduling said tasks;said operation system further comprising: means to reconfigure at run-time resources for a hardware task executed on the reconfigurable device.