Multitasking on reconfigurable architectures: microarchitecture support and dynamic scheduling

  • Authors:
  • Juanjo Noguera;Rosa M. Badia

  • Affiliations:
  • Inkjet Commercial Division (ICD), Hewlett-Packard Company, Barcelona, Spain;Department Computer Architecture, Technical University of Catalonia (UPC), Barcelona, Spain

  • Venue:
  • ACM Transactions on Embedded Computing Systems (TECS)
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Dynamic scheduling for system-on-chip (SoC) platforms has become an important field of research due to the emerging range of applications with dynamic behavior (e.g., MPEG-4). Dynamically reconfigurable architectures are an interesting solution for this type of applications. Scheduling for dynamically reconfigurable architectures might be classified in two major broad categories: (1) static scheduling techniques or (2) use of an operating system (OS) for reconfigurable computing. However, research efforts demonstrate a trend to move tasks traditionally assigned to the OS into hardware (thus increasing performance and reducing power).In this paper, we introduce a methodology for dynamically reconfigurable architectures. The dynamic scheduling of tasks to several reconfigurable units is performed by a hardware-based multitasking support unit. Two different versions of the microarchitecture are possible (with or without a hardware configuration prefetch unit). The dynamic scheduling algorithms are also explained. Both algorithms try to minimize the reconfiguration overhead by overlapping the execution of tasks with device reconfigurations.An exhaustive study (using the developed simulation and performance analysis framework) of this novel proposal is presented, and the effect of the microarchitecture parameters has been studied. Results demonstrate the benefits of our approach (achieving similar performance to a static configuration solution but using half of the resources). The hardware configuration prefetch unit is useful (i.e., minimize the execution time) in applications with low level of parallelism.