Faculté informatique et communications IC, Section d'informatique, Institut des systèmes informatiques et multimédias ISIM (Laboratoire d'architecture de processeurs LAP)

Unifying software and hardware of multithreaded reconfigurable applications within operating system processes

Vuletic, Miljan ; Ienne, Paolo (Dir.)

Thèse sciences Ecole polytechnique fédérale de Lausanne EPFL : 2006 ; no 3626.

Ajouter à la liste personnelle
    Summary
    Novel reconfigurable System-on-Chip (SoC) devices offer combining software with application-specific hardware accelerators to speed up applications. However, by mixing user software and user hardware, principal programming abstractions and system-software commodities are usually lost, since hardware accelerators (1) do not have execution context —it is typically the programmer who is supposed to provide it, for each accelerator, (2) do not have virtual memory abstraction —it is again programmer who shall communicate data from user software space to user hardware, even if it is usually burdensome (or sometimes impossible!), (3) cannot invoke system services (e.g., to allocate memory, open files, communicate), and (4) are not easily portable —they depend mostly on system-level interfacing, although they logically belong to the application level. We introduce a unified Operating System (OS) process for codesigned reconfigurable applications that provides (1) unified memory abstraction for software and hardware application parts, (2) execution transfers from software to hardware and vice versa, thus enabling hardware accelerators to use systems services and callback other software and hardware functions, and (3) multithreaded execution of multiple software and hardware threads. The unified OS process ensures portability of codesigned applications, by providing standardised means of interfacing. Having just-another abstraction layer usually affects performance: we show that the runtime optimisations in the system layer supporting the unified OS process can minimise the performance loss and even outperform typical approaches. The unified OS process also fosters unrestricted automated synthesis of software to hardware, thus allowing unlimited migration of application components. We demonstrate the advantages of the unified OS process in practice, for Linux systems running on Xilinx Virtex-II Pro and Altera Excalibur reconfigurable devices.
    Résumé
    Les systèmes intégrés sur puce ("Systems-on-Chip") reconfigurables offrent la possibilité d'accélérer des applications en combinant du logiciel avec des accélérateurs spécifiques implémentés en matériel. Cependant, la combinaison du logiciel utilisateur avec le matériel utilisateur ne permet plus de bénéficier des abstractions principales de programmation et des facilités d'utilisation du système d'exploitation. En effet, les accélérateurs d'applications implémentés en matériel : (1) n'ont pas de contexte d'exécution (c'est au programmeur d'assurer ce contexte pour chaque accélérateur) ; (2) ne peuvent pas profiter de la mémoire virtuelle (c'est à nouveau le programmeur qui doit transférer les données depuis l'espace de mémoire utilisateur à l'espace de mémoire matériel, même si c'est pénible, voire même impossible, selon les cas!) ; (3) ne peuvent pas appeler les services du système d'exploitation; et (4) ne sont pas facilement portables (ils dépendent des interfaces du système, même s'ils appartiennent sémantiquement au niveau d'application). Pour les applications conçues en logiciel et en matériel reconfigurable, nous proposons un concept de processus du système d'exploitation unifié. Ce concept permet : (1) l'abstraction de mémoire unifiant les parties de l'application logicielles et matérielles ; (2) les transferts d'exécution du logiciel vers le matériel et vice-inversa, afin que les accélérateurs matériels puissent appeler les services systèmes et d'autres fonctions logicielles ou matérielles ; et (3) l'exécution de plusieurs processus légers ("multithreaded execution") en logiciel et en matériel. De plus, l'utilisation du processus du système d'exploitation unifié assure la portabilité des applications conçues partiellement en logiciel et en matériel, offrant ainsi des moyens standard d'interfaçage. En général, le fait d'introduire une nouvelle couche d'abstraction influence significativement la performance des applications: contrairement à cette attente, nous montrons que les optimisations en cours d'exécution effectuées dans la couche du système contenant le processus unifié permettent de minimiser la perte de performance et même, dans certain cas, de dépasser les approches typiques. De plus, le processus unifié rend possible la synthèse automatique et sans restriction du logiciel jusqu'au matériel ; c'est-à-dire, il est possible de migrer sans restriction les composants de l'application du logiciel vers le matériel ou inversement. Nous démontrons par des cas pratiques les avantages du processus unifié mentionnés ci-dessus sur un système Linux s'exécutant sur deux plateformes reconfigurables.