Object-Oriented Embedded System Development Based on Synthesis and Reuse of OO-ASIPs
Maziar Goudarzi (Sharif University of Technology, I.R.Iran and University of Cambridge, UK)
Shaahin Hessabi (Sharif University of Technology, I.R.Iran, Iran)
Alan Mycroft (University of Cambridge, UK)
Abstract: We present an embedded_system design flow, discuss its details, and demonstrate its advantages. We adopt the object_oriented methodology for the system_level model because software dominates hardware in embedded systems and the object_oriented methodology is already established for software design and reuse. As the building_block of system implementation, we synthesise application_specific processors that are reusable, through programming, for several related applications. This addresses the high cost and risk of manufacturing specialised hardware tailored to only a single application. Both the processor and its software are generated from the model of the system by the synthesis and compilation procedures provided. We observe that the key point in object_oriented methodology is the class library, and hence, we implement methods of the class library as the instruction_set of the processor. This allows the processor to be synthesised just once, but, by programming, to be reused several times and specialised to new applications that use the same class library. An important point here is that the processor allows its instructions to be selectively overridden by software routines, this not only allows augmentation of processor capabilities in software, but also enables a structured approach to make software patches to faulty or outdated hardware. A case study illustrates application of the methodology to various applications modelled on top of a common basis class library, and moreover, demonstrates new application_specific opportunities in power management (and area_management for FPGA implementations) resulting from the structure of the processor based on de_activation of unused features.
Keywords: application_specific instruction processors, embedded system design, hardware/software synthesis, highlevel synthesis, object_oriented system design
Categories: C.3, C.5.4, J.6