Cookies
O website necessita de alguns cookies e outros recursos semelhantes para funcionar. Caso o permita, o INESC TEC irá utilizar cookies para recolher dados sobre as suas visitas, contribuindo, assim, para estatísticas agregadas que permitem melhorar o nosso serviço. Ver mais
Aceitar Rejeitar
  • Menu
Publicações

Publicações por João Paiva Cardoso

2011

Identifying Merge-Beneficial Software Kernels for Hardware Implementation

Autores
Sanches, AK; Cardoso, JMP; Delbem, ACB;

Publicação
2011 International Conference on Reconfigurable Computing and FPGAs, ReConFig 2011, Cancun, Mexico, November 30 - December 2, 2011

Abstract
Data-mining over software can reveal similar patterns on software code. This can give important insights for the design of hardware cores, especially considering the benefits of the merge of software kernels and their implementation as a single hardware core. However, software codes have characteristics that make inadequate the direct use of typical data mining tools, mainly related to their large number of samples and the imprecise definition of code features for mining. Those characteristics affect negatively the performance of the most known data mining methods. To solve this problem, we propose in this paper the use of three techniques: the Normalized Compression Distance, the Neighbor Joining, and the Fast Newman algorithm. We combine these three techniques and propose a new approach for data mining of code repositories (DAMICORE). DAMICORE works with different types of code representations. Experiments reveal DAMICORE can indicate important software similarities at source code level. Specifically, merging soft-ware kernels identified by DAMICORE results in FPGA cores with size smaller than the overall hardware size needed when implementing a core for each kernel. © 2011 IEEE.

2011

Techniques for Dynamically Mapping Computations to Coprocessors

Autores
Bispo, J; Cardoso, JMP;

Publicação
2011 International Conference on Reconfigurable Computing and FPGAs, ReConFig 2011, Cancun, Mexico, November 30 - December 2, 2011

Abstract
In embedded reconfigurable computing systems, general purpose processors (GPPs) are typically extended with coprocessors to meet specific goals, such as higher performance and/or energy savings. Coprocessors can range from specialized modules which execute a specific task to reconfigurable arrays of ALUs. This paper presents our ongoing work on techniques to dynamically offload computations being executed by a GPP to a coprocessor. We present our method for identifying repetitive instruction traces, named as Mega blocks, as well as transformations which can be applied over those Mega blocks. We also present a proof-of-concept implementation of a system which transparently moves computations from a GPP to a Specialized Reconfigurable Array (SRA). Finally, we present our current and planned work. © 2011 IEEE.

2011

A Domain-Specific Language for the Specification of Adaptable Context Inference

Autores
Santos, AC; Diniz, PC; Cardoso, JMP; Ferreira, DR;

Publicação
IEEE/IFIP 9th International Conference on Embedded and Ubiquitous Computing, EUC 2011, Melbourne, Australia, October 24-26, 2011

Abstract
Context-aware mobile applications can benefit from context inference adaptation based on run-time operating conditions, such as battery life or sensor availability. Developing applications with such adaptable behavior, however, is notoriously cumbersome, as developers need to deal with low-level system interfacing and programming issues. In this paper we describe a domain-specific language (DSL) and a middleware infrastructure to support the specification, deployment and maintenance of run-time adaptable context inference processes. We illustrate the benefits of our approach via a case study, highlighting the new abstractions that facilitate the specification of adaptable behavior using different algorithms and the corresponding varying parameter settings, with a specific goal of minimizing the energy while maintaing acceptable end-application performance and accuracy. © 2011 IEEE.

2011

Programming Safety Requirements in the REFLECT Design Flow

Autores
Petrov, Z; Kratky, K; Cardoso, JMP; Diniz, PC;

Publicação
2011 9TH IEEE INTERNATIONAL CONFERENCE ON INDUSTRIAL INFORMATICS (INDIN)

Abstract
The common approach to include non-functional requirements in tool chains for hardware/software embedded systems requires developers to manually change the software code and/or the hardware, in an error-prone and tedious process. In the REFLECT research project we explore a novel approach where safety requirements are described using an aspect-and strategy-oriented programming language, named LARA, currently under development. The approach considers that the weavers in the tool chain use those safety requirements specified as aspects and strategies to produce final implementations according to specific design patterns. This paper presents our approach including LARA-based examples using an avionics application targeting the FPGA-based embedded systems consisting of a general purpose processor (GPP) coupled to custom computing units.

2010

On Identifying Patterns in Code Repositories to Assist the Generation of Hardware Templates

Autores
Sanches, AK; Cardoso, JMP;

Publicação
International Conference on Field Programmable Logic and Applications, FPL 2010, August 31 2010 - September 2, 2010, Milano, Italy

Abstract
The identification of patterns on large repositories of code can be of paramount importance to guide the design of new hardware accelerators, To acquire the suitability of a certain hardware accelerator and to generate application-specific architectures that maximize hardware reuse. This work intends to research and develop methods to both acquire the presence of a given pattern (map-suitability) and to identify common and highly similar patterns in code repositories (design-suggestions). The approach being proposed is based on a number of identification layers that refine the selections at each stage. We analyze two possible complementary options for a high-level layer. A first option is based on the representation of programs as a sequence of symbols and string matching and clustering algorithms are then used to expose similar patterns. A second option is based on tree matching techniques for identifying the presence of user's input patterns in the programs under inspection. We are evaluating our approach using the MiBench, Media-Bench, UTDSP, and SNU code repositories. The results show the potential of our approach to identify approximate patterns that can be implemented by merging highly similar structures. © 2010 IEEE.

2010

On Identifying Segments of Traces for Dynamic Compilation

Autores
Bispo, J; Cardoso, JMP;

Publicação
International Conference on Field Programmable Logic and Applications, FPL 2010, August 31 2010 - September 2, 2010, Milano, Italy

Abstract
Typical computing systems based on general purpose processors (GPPs) are extended with coarse-grained reconfigurable arrays (CGRAs) to provide higher performance and/or energy savings. In order for applications to take advantage of these computing systems, efficient dynamic mapping techniques are required. Those dynamic mapping techniques will be responsible for automatically moving computations originally running in the GPP to the CGRA. The concept of dynamic compilation, widespread in the context of JIT compilation to GPPs, is receiving more attention by the reconfigurable computing community. This paper presents our approach to dynamically map computations to CGRAs coupled to a GPP. Specifically, we present the identification of large sequences of instructions, MegaBlocks, being executed in a GPP. These MegaBlocks are then mapped to the target CGRA. We evaluate the potential of the MegaBlocks over Basic Blocks and SuperBlocks to increase the IPC when targeting a CGRA and considering the execution of a number of representative benchmarks. © 2010 IEEE.

  • 25
  • 42