Faculté des sciences et techniques de l'ingénieur STI, Département d'électricité, STI - Section d'électricité STI-SEL (Laboratoire de traitement des signaux 3 LTS3)

A virtual model for simulation and design of architectures in MPEG-4 audio and multimedia context

Zoia, Giorgio ; Mlynek, Daniel (Dir.)

Thèse sciences techniques Ecole polytechnique fédérale de Lausanne EPFL : 2001 ; no 2362.

Add to personal list
    Research in multimedia for consumer electronics is dominated by the problem of incredibly short times-to-market, that means fast complexity estimations and fast design of new architectures. On one side more and more sophisticated and flexible applications are rapidly developed, on the other side the exponential growth in IC computational power seems to be hardly capable to keep pace with requirements for real-time applications, since their complexity is exponentially growing as well. The processor's performance, often slowed down by bottlenecks in memories and buses, is further reduced by the time wasted in communication among the several application layers. From this problem comes the conception of integrated development frameworks for simulation and design. Tools for simulation and analysis of architectures have appeared from academic and industrial research laboratories above all in the last decade. Many of them are conceived to provide low-level exact simulation of the supported devices, at the price of heavy slowdowns in simulation times and huge sizes of traced data reports. Some others, in the last years, introduced some degrees of approximation in simulations, in order to speed up execution time and to increase the flexibility of the tools to support multi-processors. The resulting more or less abstract models are anyway not suitable to analyze real multimedia-oriented applications, where programs are usually available in some languages including dedicated libraries and meaningful results are only those measured in function of time. On another level, tools for hardware/software codesign or for block-based system design provide more useful results, but to be effective they must rely on rigid cores that may allow only a few degrees of reconfigurability; some very recent tools are conceived to design complex systems by modeling blocks through a high level description language. Conversely, the virtual model and related tool proposed in this dissertation have their roots in an approach to the analysis of complexity that aims to be, as far as possible, platform independent. The method is based on the concepts of abstract classes of operations and simulation in function of the performance time. The work described in this dissertation finds its application field in the world of multimedia, more precisely in multimedia-oriented Audio applications. Media applications are commonly programmed by imperative or object-oriented languages, which are composed by many different statements, operators and above all standard libraries. A careful profiling of typical applications permits to detect fundamental operations and functions and to define a virtual instruction set, grouping more or less similar operators and breaking functions into basic building blocks. The resulting virtual instruction set does not correspond to any actual one but it has as property to be easily mapped on a large number of existing ones. The simulation of an architecture requires then the availability of measures, benchmarks or estimations of at least one member of each abstract class. The number of classes, i.e. the complexity vector, can be adapted in length and detail to the needed degree of precision and to the available set of actual measures and/or benchmarks. The input to the simulation is described by a high-level standardized programming language, the new MPEG-4 Structured Audio Orchestra Language (SAOL); in principle, it may also be the case that the application does not need any translation, if it is already available in this format. Moreover, simulation through a high-level language permits to trace the behavior of the target architecture in function of the internal time of the application itself, result that is fundamental when the related workload is highly variable as in downloadable and/or interactive scenarios. In such cases complexity has always been considered a guess. The new virtual model for analyses of complexity led to two main practical results: the proposed method of simulation has been used to define complexity levels for Structured Audio in the MPEG-4 Standard, and consequently the platform independent analyzer has become the MPEG-4 reference software for MPEG-4 SA Conformance test. a virtual instruction set has been conceived that has permitted the implementation of an efficient Structured Audio decoder, SAINT, based on a virtual interpreted DSP core. The flexibility of the SAINT virtual DSP approach has permitted a fast porting of its execution engine on a superscalar VLIW DSP, making it one of the building blocks of the ThreeDSPACE system, a framework for advanced rendering of 3-D Audio scenes based on MPEG-4 descriptions. The complete tool for simulation of architectures, including a cache simulator, has shown promising results, achieving estimations of the execution time of SAINT with an approximation of the 10% in the mean for a general purpose processor, and of the 20% for a very complex superscalar VLIW processor. Estimated programs have sometimes dynamic excursions of a factor 10 in their complexity along the time axis. In general, the experimental results can be considered in line with those of the most recent, state-of-the-art simulators presented in literature. A limitation of the language adopted to model the applications is that its generality is limited to onedimensional floating-point computation; the most relevant advantage is that simulation in function of the performance time is straightforward and provides the time-dependent results that are fundamental for the optimization of real-time applications. With the tool developed in this PhD work, complex programs can be quickly modeled thanks to SA specific libraries and also quickly analyzed; moreover, the tool can be easily extended to become a tool for automatic generation and configuration of the main building blocks of a system running the application, or the class of applications, under consideration. The proposed model is finally intended as an alternative approach to coordinate two sides; a principal goal of this work was to conceive and specify a systematic analysis method that can be useful to both the software programmer and to the hardware system engineer. The former can benefit of a reconfigurable and dedicated highlevel software tool able to profile programs in a simple and platform independent manner and to easily simulate, with some margins of error, the behavior of a specific platform, existing or virtual; the latter can exploit complexity estimations in an abstract format, with the possibility to study the target application in its several aspects (operations, memory usage, data flows among the different program blocks) and the potentiality to extend these results to an automatic generation of high-level system architectures.
    La recherche dans le multimédia pour l'électronique de consommation est dominée par le problème du temps de marché extrêmement court, ce qui signifie des estimations rapides de complexité et des conceptions rapides d'architectures. D'une part des applications de plus en plus sophistiquées et flexibles sont rapidement développées; d'autre part la croissance exponentielle dans la puissance de calcul des circuits intégrés semble être à peine capable de suivre les conditions requises par les applications temps réel, car leur complexité croît aussi de façon exponentielle. La performance d'un processeur, souvent réduite par la vitesse limitée des mémoires et des bus, est ultérieurement diminuée par le temps perdu dans la communication entre les différents niveaux de l'application. De ce problème, naît la conception de cadres de développement intégrés pour l'intégration et la simulation. Les outils pour la simulation et l'analyse d'architectures sont diffusés par des laboratoires de recherche académiques et industriels surtout dans cette dernière décennie. La plus part d'entre eux sont conçus pour obtenir une simulation exacte de bas niveau des dispositifs supportés, au prix de forts ralentissements dans le temps de simulation et d'énormes tailles des fichiers de données à la sortie. Quelques autres, dans les dernières années, ont introduit des degrés d'approximation dans les simulations, pour accélérer le temps d'exécution et pour augmenter la flexibilité des outils afin de supporter les multiprocesseurs. Les modèles résultants, plus ou moins abstraits, ne sont de toute façon pas aptes à l'analyse des vraies applications orientées au multimédia, où les programmes sont habituellement disponibles dans un langage qui inclut des librairies dédiées et les résultats significatifs sont seulement ceux mesurés en fonction du temps. A un autre niveau, les outils pour le hardware/software codesign ou pour la conception de systèmes basé sur des blocs donnent des résultats plus utiles, mais pour être efficaces ils doivent s'appuyer sur des noyaux rigides qui ne permettent que peu de reconfiguration ; des outils très récents sont conçus pour projeter des systèmes complexes en manipulant des blocs à travers des langages de description de haut niveau. Le modèle virtuel et son outil relatif proposés dans ce rapport s'inspirent au contraire d'une approche à l'analyse de la complexité qui veut être le plus possible indépendant de la plate forme. La méthode est basée sur les concepts de classes d'opérations abstraites et de simulation en fonction du temps de performance. Le travail décrit dans ce rapport trouve son champ d'application dans le monde du multimédia, plus précisément dans les applications audio orientées multimédia. Les applications multimédia sont communément programmées par des langages impératifs ou orientés objets qui sont composés par plusieurs différents instructions, opérateurs et surtout librairies standard. Une analyse de profil attentive des applications typiques permet de détecter les opérations et les fonctions fondamentales et de définir un jeu d'instructions virtuel, en regroupant les opérateurs plus ou moins similaires et en subdivisant les fonctions en blocs de base qui les constituent. Le résultant jeu d'instruction virtuel ne correspond à aucun autre réel; au contraire il a comme propriété d'être facilement converti en un grand nombre de jeux existants. La simulation d'une architecture requiert donc la disponibilité de mesures ou d'estimations d'au moins un membre de chaque classe abstraite. Le nombre de classes, c'est-à-dire le vecteur de complexité, peut être adapté en longueur et en détail au degré nécessaire de précision et à la quantité disponible de mesures. L'entrée de la simulation est décrite par un langage de programmation standard de haut niveau : le nouveau MPEG-4 Structured Audio Orchestra Language (SAOL) ; en principe, il n'est pas exclu qu'aucune traduction soit nécessaire pour l'application, si celle-ci est déjà disponible dans ce format. En plus, la simulation à travers un langage de haut niveau permet de tracer le comportement de l'architecture simulée en fonction du temps de l'application même, résultat qui est fondamental quand sa charge de travail est fortement variable comme dans des scénarios interactifs. Dans ces cas la complexité a toujours été considérée comme une chose à deviner. Le nouveau modèle virtuel pour l'analyse de la complexité a amené deux résultats pratiques principaux : la méthode de simulation proposée a été utilisée pour définir les niveaux de complexité pour l'outil « Structured Audio » de la norme MPEG-4, et par conséquent l'analyseur, indépendant de la plate forme, est devenu le logiciel de référence pour le test de Conformance de MPEG-4 SA. un jeu d'instruction virtuel a été conçu ; il a permis l'implémentation d'un décodeur efficace pour SA : SAINT, basé sur un noyau virtuel de DSP interprété. La flexibilité du DSP virtuel de SAINT a permis un transfert rapide de son moteur d'exécution vers un DSP superscalaire VLIW, ce qui a fait de lui un des blocs composants de ThreeDSPACE, système pour la diffusion avancée de scènes Audio 3-D basées sur des descriptions MPEG-4. L'outil complet pour la simulation d'architecture, qui contient un simulateur de mémoire cache, a montré des résultats prometteurs, obtenant des estimations du temps d'exécution de SAINT avec une approximation de 10% en moyenne pour des processeurs general purpose et de 20% pour un processeur superscalaire VLIW très complexe. Les programmes estimés ont parfois des variations d'un facteur 10 dans leur complexité le long de l'axe du temps. En général, les résultats expérimentaux peuvent être considérés comparables à ceux des plus récents simulateurs décrits dans la littérature. Une limite du langage utilisé pour la modélisation des applications est que sa généralité est limitée à des calculs à une dimension en virgule flottante ; le plus grand avantage est que la simulation en fonction du temps de la performance est très facile et donne des résultats dépendants du temps qui sont fondamentaux pour l'optimisation des applications en temps-réel. Avec l'outil développé dans ce travail de doctorat des programmes complexes peuvent être modélisés rapidement grâce aux librairies spécifiques de SA et aussi analysés rapidement ; de plus, l'outil peut être facilement étendu pour devenir un outil de génération automatique et de configuration des blocs de base principaux du système qui réalise les applications considérées. En conclusion, le modèle proposé est pensé comme une approche alternative pour coordonner deux côtés : un des objectifs principaux de ce travail à été de concevoir une méthode d'analyse systématique qui puisse être utile en même temps au programmateur de logiciels et à l'ingénieur des systèmes hardware. Le premier peut bénéficier d'un outil de haut niveau reconfigurable et spécifique capable de analyser le profil des programmes de façon simple et indépendante de la plate forme et de simuler facilement, avec des marges d'erreur, le comportement d'une plate forme existante ou virtuelle ; le deuxième peut exploiter des estimations de complexité en forme abstraite, avec la possibilité d'étudier les applications envisagées dans ses divers aspects (opérations, utilisation de la mémoire, flux de données entre les différents blocs du programme) et avec la potentialité d'étendre ces résultats vers la génération automatique d'architectures de système.