RAW 2003 Presentation - Louisiana State University
Download
Report
Transcript RAW 2003 Presentation - Louisiana State University
Designing an Operating System for a
Heterogeneous Reconfigurable SoC
Vincent Nollet,
P. Coene, D. Verkest, S. Vernalde, R. Lauwereins
IMEC, Belgium
© imec 2003
What is this all about ?
+
RTOS
ISP
Reconfigurable Logic
Create an Operating System that supports
the use of Reconfigurable Logic.
© imec 2003
Vincent Nollet – IMEC - RAW'03
2
Outline
OS introduction
What ? Why ? How ?
Related work
Who ? What ?
OS support implemented in hardware
What ? Why ? How ?
Operating System components
Operating System Structures
Inter-task Communication
Task Scheduling & Task Relocation
Kindergarten Components
Implementation details
Conclusions & future work
© imec 2003
Vincent Nollet – IMEC - RAW'03
3
Outline
OS introduction
What ? Why ? How ?
Related work
Who ? What ?
OS support implemented in hardware
What ? Why ? How ?
Operating System components
Operating System Structures
Inter-task Communication
Task Scheduling & Task Relocation
Kindergarten components
Implementation details
Conclusions & future work
© imec 2003
Vincent Nollet – IMEC - RAW'03
4
OS Introduction
What ?
A management infrastructure that enables a system to handle
multiple, concurrently executing heterogeneous applications
Why ?
Heterogeneous applications should be able to benefit from the
same OS abstractions/functionality as regular software applications
Managing the available computing resources
Providing a suited environment
How ?
By extending an existing Operating System
OS for Reconfigurable Systems (OS4RS)
Hardware Abstraction Layer
RTOS
Reconfigurable Logic
ISP
© imec 2003
Vincent Nollet – IMEC - RAW'03
5
Outline
OS introduction
What ? Why ? How ?
Related work
Who ? What ?
OS support implemented in hardware
What ? Why ? How ?
Operating System components
Operating System Structures
Inter-task Communication
Task Scheduling & Task Relocation
Kindergarten components
Implementation details
Conclusions & future work
© imec 2003
Vincent Nollet – IMEC - RAW'03
6
Related Work
Burns et al.
Having a set of run-time support functions commonly used by all
applications: reconfigure the FPGA, reserve a chunk of FPGA area
and the ability to transform a circuit.
No use of Tetris-like circuit transformations
Wigley et al.
Java based OS, linked to Xilinx JBits
Describe their fundamental OS services to manage the FPGA:
resource allocation, application placement and routing
Use of hardware support to implement these services
Simmler et al.
Preemptive multitasking on FPGAs through bitstream manipulation
Controlled by “hardware manager software”
Task preemption/relocation based on cooperative scheduling
© imec 2003
Vincent Nollet – IMEC - RAW'03
7
Outline
OS introduction
What ? Why ? How ?
Related work
Who ? What ?
OS support implemented in hardware
What ? Why ? How ?
Operating System components
Operating System Structures
Inter-task Communication
Task Scheduling & Task Relocation
Kindergarten components
Implementation details
Conclusions & future work
© imec 2003
Vincent Nollet – IMEC - RAW'03
8
OS support implemented in hardware
What ?
It is quite common for contemporary microprocessors to have builtin Operating System support.
Hardware support enables/facilitates certain OS functions
Why ?
Facilitate/accelerate the basic FPGA management functions like
resource allocation, task placement and routing
How ?
By putting an extra layer of abstraction on top of the ‘bare FPGA’
RTOS
ISP
© imec 2003
Vincent Nollet – IMEC - RAW'03
OS4RS
Hardware Abstraction Layer
InterConnection
Network
(ICN)
Hardware OS support
structure
FPGA
9
OS support implemented in hardware
The Interconnection Network (ICN)
On-FPGA packet switched network
Provides a number of fixed
sized hardware tiles that can
be reconfigured by means of
partial reconfiguration
Communication is done
through the fixed ICN-Tile
interface by means of
message passing
Communication is handled by ICN
routers, controlled by routing tables
provided by the Operating System
© imec 2003
Vincent Nollet – IMEC - RAW'03
Source: T. Marescaux
10
Outline
OS introduction
What ? Why ? How ?
Related work
Who ? What ?
OS support implemented in hardware
What ? Why ? How ?
Operating System components
Operating System Structures
Task Scheduling & Task Relocation
Inter-task Communication
Kindergarten Components
Implementation details
Conclusions & future work
© imec 2003
Vincent Nollet – IMEC - RAW'03
11
OS4RS Structures
Processor Information Structure
Represents an OS4RS computing resource (ISP, ICN Tile,…)
Allows the OS4RS to manage and monitor the computing
resources
Enables support for Hot-Pluggable computing resources
Task information structure
Required to store OS4RS information
List of available task representations
Info about the task state (e.g. assigned, relocating, …etc)
…etc
Linked to the processor-local task structure
© imec 2003
Vincent Nollet – IMEC - RAW'03
12
OS4RS Task Scheduling
Task Scheduling
Two level scheduling
Top Scheduler is responsible for processor assignment
Processor local schedulers handle local temporal scheduling
ICN Tile1
task pool
ICN
ICN
Tile
Tile
1 local
1
One
scheduler
task only
ICN Tile2
task pool
ICN
ICN
TileTile
2 local
2
One
scheduler
task only
ISP
task pool
ISP local
scheduler
Top Scheduler
Global
task pool
© imec 2003
Vincent Nollet – IMEC - RAW'03
13
Heterogeneous Task Relocation
What ?
Relocating a task at run-time from one type of processor to another
one (e.g. from reconfigurable logic to ISP) with minimal interference
Why ?
Optimal/Fair use of computing resources (e.g. according to a QoS)
How ?
Cooperative scheduling by means of switchpoints (i.e. dedicated
points of preemption inserted by the application designer).
switch
OS4RS
switch signal
FPGA
ISP
© imec 2003
Vincent Nollet – IMEC - RAW'03
14
Inter-task communication
Uniform Inter-Task Communication
What ?
Uniform communication scheme for all tasks
Based on message passing
Why ?
Relocating a task should not affect communication
Message passing is natively supported by the ICN
How ?
OS4RS
Communication
API
P2
P1
© imec 2003
Vincent Nollet – IMEC - RAW'03
HAL
PA
P3
PC
PN
ISP
FPGA
PB
15
Kindergarten components
Application Binary Interface
Describes how a (binary) application gains access to the
Operating System services
How can tasks running on the FPGA make a system call ?
How to incorporate and manage multiple binaries of the same
task in a file ?
OS security ?
Still a need to enforce the classic OS protection mechanisms
Allowing foreign hardware results in new security issues
The OS4RS should be more than just a hardware loader
© imec 2003
Vincent Nollet – IMEC - RAW'03
16
Outline
OS introduction
What ? Why ? How ?
Related work
Who ? What ?
OS support implemented in hardware
What ? Why ? How ?
Operating System components
Operating System Structures
Task Scheduling & Task Relocation
Inter-task Communication
Kindergarten Components
Implementation details
Conclusions & future work
© imec 2003
Vincent Nollet – IMEC - RAW'03
17
Implementation details
OS4RS manages a proof-of-concept platform
StrongARM-1110 ISP
Xilinx Virtex II FPGA
OS4RS implementation details
Build as an extension to RTAI 24.1.9 for StrongARM
Extension that creates a RTOS underneath Linux
Minimal changes into RTAI (~ 150 lines source code)
OS4RS is build using several (Linux) modules
OS4RS core extensions are about 150kB
OS4RS task setup: ~108 ms (ICN tile) ~100 s (ISP)
The applications…
3D game: two ISP tasks, one heterogeneous task.
Video decoding: two ISP tasks, one heterogeneous task.
© imec 2003
Vincent Nollet – IMEC - RAW'03
18
Outline
OS introduction
What ? Why ? How ?
Related work
Who ? What ?
OS support implemented in hardware
What ? Why ? How ?
Operating System components
Operating System Structures
Task Scheduling & Task Relocation
Inter-task Communication
Kindergarten Components
Implementation details
Conclusions & future work
© imec 2003
Vincent Nollet – IMEC - RAW'03
19
And to conclude …
What we have …
The Operating System for Reconfigurable Systems provides
an environment where heterogeneous applications can
execute concurrently, with minimal interference between
them, but with support for inter-task communication.
Build as an extension to an existing OS
Heterogeneous task scheduling/relocation
Uniform inter-task communication
…the show goes on…
Continue development on the present OS4RS modules
Raise the kindergarten modules
Heterogeneous task design issues
…
© imec 2003
Vincent Nollet – IMEC - RAW'03
20
www.imec.be
Worldwide collaboration with more than
450 companies and institutes.
IMEC – Kapeldreef 75 – B-3001 Leuven – Belgium – Tel. +32 16 281211 – Fax +32 16 229400 – www.imec.be