Object-Oriented Development for Reconfigurable Architectures
Total Page:16
File Type:pdf, Size:1020Kb
Object-Oriented Development for Reconfigurable Architectures Von der Fakultät für Mathematik und Informatik der Technischen Universität Bergakademie Freiberg genehmigte DISSERTATION zur Erlangung des akademischen Grades Doktor Ingenieur Dr.-Ing., vorgelegt von Dipl.-Inf. (FH) Dominik Fröhlich geboren am 19. Februar 1974 Gutachter: Prof. Dr.-Ing. habil. Bernd Steinbach (Freiberg) Prof. Dr.-Ing. Thomas Beierlein (Mittweida) PD Dr.-Ing. habil. Michael Ryba (Osnabrück) Tag der Verleihung: 20. Juni 2007 To my parents. ABSTRACT Reconfigurable hardware architectures have been available now for several years. Yet the application devel- opment for such architectures is still a challenging and error-prone task, since the methods, languages, and tools being used for development are inappropriate to handle the complexity of the problem. This hampers the widespread utilization, despite of the numerous advantages offered by this type of architecture in terms of computational power, flexibility, and cost. This thesis introduces a novel approach that tackles the complexity challenge by raising the level of ab- straction to system-level and increasing the degree of automation. The approach is centered around the paradigms of object-orientation, platforms, and modeling. An application and all platforms being used for its design, implementation, and deployment are modeled with objects using UML and an action language. The application model is then transformed into an implementation, whereby the transformation is steered by the platform models. In this thesis solutions for the relevant problems behind this approach are discussed. It is shown how UML can be used for complete and precise modeling of applications and platforms. Application development is done at the system-level using a set of well-defined, orthogonal platform models. Thereby the core features of object-orientation - data abstraction, encapsulation, inheritance, and polymorphism - are fully supported. Novel algorithms are presented, that allow for an automatic mapping of such application models to the tar- get architecture. Thereby the problems of platform mapping, estimation of implementation characteristics, and synthesis of UML models are discussed. The thesis explores the utilization of platform models for gen- eration of highly optimized implementations in an automatic yet adaptable way. The approach is evaluated by a number of relevant applications. The execution of the generated implementations is supported by a run-time service. This service man- ages the hardware configurations and objects comprising the application. Moreover, it serves as broker for hardware objects. The efficient management of configurations and objects at run-time is discussed and opti- mized life cycles for these entities are proposed. Mechanisms are presented that make the approach portable among different physical hardware architectures. Further, this thesis presents UML profiles and example platforms that support system-level design. These extensions are embodied in a novel type of model compiler. The compiler is accompanied by an imple- mentation of the run-time service. Both have been used to evaluate and improve the presented concepts and algorithms. ACKNOWLEDGEMENTS This work would have never been started or even finished without the support of many people. I am partic- ularly grateful to my advisors Prof. Steinbach and Prof. Beierlein for the long hours they spent with me in discussing the tangible pieces of this work. Especially thankful I am to Prof. Beierlein and my colleague Thomas Oehme for providing me the time and encouragement to finish this thesis. I am greatly indebted to my parents Regina and Elmar for their seamlessly never-ending emotional and financial support, and patience while I was doing my academic endeavours. Without them this work would have never been possible. The development of only the most important parts of the MOCCA project took many man-years of effort. Clearly, this can not be done by a single person in such a restricted time frame. Therefore, I am grateful to Isabel Drost, Alexander Faber, Andre Gauter, Thomas Mathiebe, Henning Riedel, and Vitali Tomm for the discussion and development of parts of MOCCA. Peter Grünberg helped me preparing most of the experimental results. Particular thanks go to Frank Anke for his work in improving the quality of the compiler and performing the experiments on model-driven graphical user interface generation. Many thanks to Jana, Anja, Susi, Tina, Erik, Lars, and many more who offered my their friendship, and provided me an emotional refuge. Particularly I’d like to thank Mandy. We met in a time of my life when I was almost giving up finishing this thesis. It was her emotional support and kind nature that made me smile again and continue to the end. CONTENTS List of Figures .......................................... vii List of Tables ........................................... xi List of Algorithms ........................................ xv List of Listings .......................................... xvii List of Acronyms ......................................... xix List of Symbols ......................................... xxiii 1. Introduction ........................................... 1 1.1 Motivation...................................... ..... 1 1.2 RelatedWork ..................................... .... 3 1.3 ContributionsandRestrictions . ............ 4 1.4 Overview ........................................ ... 5 2. Theoretical and Technological Foundations ........................... 7 2.1 Reconfigurable Computing . ........ 7 2.1.1 Design Space of Reconfigurable Computing . .......... 7 2.1.2 System-LevelDesign. ..... 9 2.2 Hardware Design with High-Level Languages . ............. 14 2.2.1 High-Level Languages for Hardware Design . .......... 14 2.2.2 DesignSpaceofVHDL ............................. 15 2.2.3 HardwareDesignFlow. 16 2.3 The Unified Modeling Language . ........ 18 2.3.1 DesignSpaceofUML .............................. 18 2.3.2 SystemDesignwithUML . 22 3. Model-Driven Architecture for Reconfigurable Computer Architectures ............. 25 3.1 System-LevelDesignwithUML . ........ 25 3.1.1 UML as System-Level Design Language . ....... 25 3.1.2 MOCCAActionLanguage. 26 ii Contents 3.2 Model-Driven Development Methodology . ............ 31 3.2.1 Co-Design, Platform-based Design and Model-Driven Architecture . 31 3.2.2 Model-Driven, Platform-Based System-Level Design . ............... 33 3.3 PlatformsandModels.............................. ....... 36 3.3.1 Use-CaseModel ................................. 36 3.3.2 DesignPlatformModel. ..... 36 3.3.3 DesignModel................................... 41 3.3.4 Implementation Platform Model . ........ 42 3.3.5 ImplementationModel . ..... 49 3.3.6 Deployment Platform Model . ...... 52 3.3.7 DeploymentModel............................... 53 4. Platform Mapping ........................................ 55 4.1 Platform Mapping for Object-Oriented Specifications . .................. 55 4.1.1 Definition of the Mapping Problem . ....... 55 4.1.2 Challenges .................................... 55 4.1.3 StructureoftheDesignSpace . ....... 56 4.2 TargetPlatformArchitecture . ........... 60 4.2.1 ArchitecturalIllusions . ........ 60 4.2.2 ImplementationOptions . ...... 61 4.2.3 ArchitecturalConstraints . ......... 62 4.3 PlatformMappingAlgorithms . ......... 63 4.3.1 A Platform-Based Distributed Mapping Approach . ............ 63 4.3.2 MappingControl ................................ 65 4.3.3 BreedingofMappings . 66 4.3.4 Computation of Candidate Mappings . ........ 73 4.3.5 MappingEvaluation ............................. 76 4.4 Estimation of Model Characteristics . ............. 77 4.4.1 Estimation of Execution Characteristics . ............. 77 4.4.2 Estimation of Implementation Characteristics . ............... 78 5. Synthesis ............................................. 83 5.1 Synthesis for Object-Oriented Specifications . ................. 83 5.1.1 Definition of the Synthesis Problem . ......... 83 5.1.2 UML-to-Implementation Mappings . ........ 83 5.1.3 SynthesisFlow ................................. 84 5.2 Hardware/SoftwareInterface . ........... 84 5.2.1 Hardware Object and Component Life Cycle . ......... 84 5.2.2 Logical Hardware Object Interface . .......... 85 Contents iii 5.3 Implementation of Software Modules . ........... 86 5.3.1 UML-to-C++Mapping. 86 5.3.2 Communication with Hardware Objects . ......... 87 5.4 Implementation of Hardware Modules . ........... 87 5.4.1 UML-to-VHDLMapping . 87 5.4.2 Hardware Implementation of Components . .......... 88 5.4.3 Hardware Implementation of Objects . ......... 94 5.4.4 Hardware Implementation of Behavior . .......... 96 5.5 HardwareObjectModel ............................. 105 6. Run-Time Reconfiguration .................................... 107 6.1 HardwareAbstractionLayer . ......... 107 6.1.1 ResourceManagement . 107 6.1.2 ResourceBroking............................... 108 6.2 Dynamic Object Lifetimes and Communication . ............. 108 6.2.1 ObjectCreation................................ 108 6.2.2 ObjectDestruction . .... ..... ..... ..... ..... .... 110 6.2.3 Communication with Hardware Objects . ......... 111 7. Experimental Results ....................................... 113 7.1 MOCCA-Development Environment . ......... 113 7.1.1 Overview ...................................... 113 7.1.2 Model Compiler for Reconfigurable Architectures . ............. 114 7.2 BooleanNeuralNetworks. ........ 117 7.2.1 ProblemDescription . 117 7.2.2 Experiments