2013
Autores
Cardoso, JMP; Carvalho, T; Coutinho, JGF; Nobre, R; Nane, R; Diniz, PC; Petrov, Z; Luk, W; Bertels, K;
Publicação
MICROPROCESSORS AND MICROSYSTEMS
Abstract
The synthesis and mapping of applications to configurable embedded systems is a notoriously complex process. Design-flows typically include tools that have a wide range of parameters which interact in very unpredictable ways, thus creating a large and complex design space. When exploring this space, designers must manage the interfaces between different tools and apply, often manually, a sequence of tool-specific transformations making design exploration extremely cumbersome and error-prone. This paper describes the use of techniques inspired by aspect-oriented technology and scripting languages for defining and exploring hardware compilation strategies. In particular, our approach allows developers to control all stages of a hardware/software compilation and synthesis toolchain: from code transformations and compiler optimizations to placement and routing for tuning the performance of application kernels. Our approach takes advantage of an integrated framework which provides a transparent and unified view over toolchains, their data output and the control of their execution. We illustrate the use of our approach when designing application-specific hardware architectures generated by a toolchain composed of high-level source-code transformation and synthesis tools. The results show the impact of various strategies when targeting custom hardware and expose the complexities in devising these strategies, hence highlighting the productivity benefits of this approach.
2013
Autores
Bispo, J; Paulino, N; Cardoso, JMP; Ferreira, JC;
Publicação
International Journal of Reconfigurable Computing
Abstract
The ability to map instructions running in a microprocessor to a reconfigurable processing unit (RPU), acting as a coprocessor, enables the runtime acceleration of applications and ensures code and possibly performance portability. In this work, we focus on the mapping of loop-based instruction traces (called Megablocks) to RPUs. The proposed approach considers offline partitioning and mapping stages without ignoring their future runtime applicability. We present a toolchain that automatically extracts specific trace-based loops, called Megablocks, from MicroBlaze instruction traces and generates an RPU for executing those loops. Our hardware infrastructure is able to move loop execution from the microprocessor to the RPU transparently, at runtime, and without changing the executable binaries. The toolchain and the system are fully operational. Three FPGA implementations of the system, differing in the hardware interfaces used, were tested and evaluated with a set of 15 application kernels. Speedups ranging from 1.26 × to 3.69 × were achieved for the best alternative using a MicroBlaze processor with local memory. © 2013 João Bispo et al.
2013
Autores
Bispo, J; Paulino, N; Cardoso, JMP; Ferreira, JC;
Publicação
IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS
Abstract
This paper presents a novel approach to accelerate program execution by mapping repetitive traces of executed instructions, called Megablocks, to a runtime reconfigurable array of functional units. An offline tool suite extracts Megablocks from microprocessor instruction traces and generates a Reconfigurable Processing Unit (RPU) tailored for the execution of those Megablocks. The system is able to transparently movebcomputations from the microprocessor to the RPU at runtime. A prototype implementation of the system using a cacheless MicroBlaze microprocessor running code located in external memory reaches speedups from 2.2x to 18.2x for a set of 14 benchmark kernels. For a system setup which maximizes microprocessor performance by having the application code located in internal block RAMs, speedups from 1.4x to 2.8x were estimated.
2013
Autores
Cardoso, JMP; De F. Coutinho, JG; Nane, R; Sima, VM; Olivier, B; Carvalho, T; Nobre, R; Diniz, PC; Petrov, Z; Bertels, K; Gonçalves, F; Van Someren, H; Hübner, M; Constantinides, G; Luk, W; Becker, J; Krátký, K; Bhattacharya, S; Alves, JC; Ferreira, JC;
Publicação
Compilation and Synthesis for Embedded Reconfigurable Systems: An Aspect-Oriented Approach
Abstract
This chapter describes the design-flow approach developed in the REFLECT project as presented originally in [1]. Over the course of the project, this design-flow has evolved and has been extended into a fully operational toolchain. We begin by presenting an overview of the underlying aspect-oriented compilation flow followed by an extended description of the design-flow and its toolchain. © Springer Science+Business Media New York 2013. All rights are reserved.
2013
Autores
Cardoso, JMP; De F. Coutinho, JG; Carvalho, T; Diniz, PC;
Publicação
Compilation and Synthesis for Embedded Reconfigurable Systems: An Aspect-Oriented Approach
Abstract
This chapter presents LARA, an aspect-oriented domain-specific language developed in the context of the REFLECT project. We describe its main features, including syntax and semantics (as defined by the LARA 2.0 technical specification [1]), and provide detailed examples of its use. In particular, we cover the mapping of computations written in high-level programming languages such as C to reconfigurable architectures considering non-functional requirements and user concerns. © Springer Science+Business Media New York 2013. All rights are reserved.
2013
Autores
Cardoso, JMP;
Publicação
2013 23rd International Conference on Field Programmable Logic and Applications, FPL 2013 - Proceedings
Abstract
The access to the final selection minute is only available to applicants.
Please check the confirmation e-mail of your application to obtain the access code.