10 research outputs found

    Generic Pipelined Processor Modeling and High Performance Cycle-Accurate Simulator Generation

    Full text link
    Detailed modeling of processors and high performance cycle-accurate simulators are essential for today's hardware and software design. These problems are challenging enough by themselves and have seen many previous research efforts. Addressing both simultaneously is even more challenging, with many existing approaches focusing on one over another. In this paper, we propose the Reduced Colored Petri Net (RCPN) model that has two advantages: first, it offers a very simple and intuitive way of modeling pipelined processors; second, it can generate high performance cycle-accurate simulators. RCPN benefits from all the useful features of Colored Petri Nets without suffering from their exponential growth in complexity. RCPN processor models are very intuitive since they are a mirror image of the processor pipeline block diagram. Furthermore, in our experiments on the generated cycle-accurate simulators for XScale and StrongArm processor models, we achieved an order of magnitude (~15 times) speedup over the popular SimpleScalar ARM simulator.Comment: Submitted on behalf of EDAA (http://www.edaa.com/

    Cooperative multithreading on embedded multiprocessor architectures enables energy-scalable design

    Full text link

    Performance Estimation for Task Graphs Combining Sequential Path Profiling and Control Dependence Regions

    Get PDF
    The speed-up estimation of parallelized code is crucial to efficiently compare different parallelization techniques or task graph transformations. Unfortunately, most of the time, during the parallelization of a specification, the information that can be extracted by profiling the corresponding sequential code (e.g. the most executed paths) are not properly taken into account. In particular, correlating sequential path profiling with the corresponding parallelized code can help in the identification of code hot spots, opening new possibilities for automatic parallelization. For this reason, starting from a well-known profiling technique, the Efficient Path Profiling, we propose a methodology that estimates the speed-up of a parallelized specification, just using the corresponding hierarchical task graph representation and the information coming from the dynamic profiling of the initial sequential specification. Experimental results show that the proposed solution outperforms existing approaches

    ReSP: A Nonintrusive Transaction-Level Reflective MPSoC Simulation Platform for Design Space Exploration

    Full text link

    Um analisador de restrições de tempo real para compiladores redirecionáveis automaticamente

    Get PDF
    Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico. Programa de Pós-Graduação em Ciência da Computação

    Efficient software development for microprocessor based embedded system.

    Get PDF
    Tang Tze Yeung Eric.Thesis submitted in: July 2003.Thesis (M.Phil.)--Chinese University of Hong Kong, 2004.Includes bibliographical references (leaves 69-75).Abstracts in English and Chinese.ABSTRACT --- p.IIACKNOWLEDGMENT --- p.IIChapter 1 --- INTRODUCTION --- p.1Chapter 1.1 --- Embedded System --- p.1Chapter 1.2 --- Embedded Processor --- p.1Chapter 1.3 --- Embedded System Design --- p.3Chapter 1.3.1 --- Current Embedded System Design Challenges --- p.3Chapter 1.3.2 --- Embedded System Design Trend --- p.4Chapter 1.4 --- Efficient Software Development for Microprocessor --- p.8Chapter 1.4.1 --- Efficient Software Development Methodology --- p.8Chapter 1.5 --- Thesis Organization --- p.10Chapter 2 --- SOURCE CODE OPTIMIZATION --- p.11Chapter 2.1 --- Source Code Optimization Strategy --- p.11Chapter 2.2 --- Source Code Transformations --- p.12Chapter 2.2.1 --- Strength Reduction --- p.12Chapter 2.2.2 --- Function Inlining --- p.13Chapter 2.2.3 --- Table Lookup --- p.13Chapter 2.2.4 --- Loop Transformations --- p.13Chapter 2.2.5 --- Software Pipelining --- p.15Chapter 2.2.6 --- Register Allocation --- p.17Chapter 2.3 --- Case Study: Source Code Optimization on the StrongARM (SA1110) Platform --- p.18Chapter 2.3.1 --- StrongARM architecture --- p.18Chapter 2.3.2 --- StrongARM pipeline hazard illustration --- p.20Chapter 2.3.3 --- Source Code Optimization on StrongARM --- p.21Chapter 2.3.4 --- Instruction Set Optimization of StrongARM --- p.27Chapter 2.4 --- Conclusion --- p.32Chapter 3 --- FLOAT-TO-FIXED OPTIMIZATION --- p.33Chapter 3.1 --- Introduction to Fixed-point --- p.34Chapter 3.1.1 --- Fixed-point representation --- p.34Chapter 3.1.2 --- Fixed-point implementation --- p.35Chapter 3.1.3 --- Mathematical functions implementation --- p.38Chapter 3.2 --- Case Study: Fingerprint Minutiae Extraction Algorithms on the Strong ARM platform --- p.41Chapter 3.2.1 --- Fingerprint Verification Overview --- p.42Chapter 3.2.2 --- Fixed-point Implementation of Fingerprint Minutiae Extraction Algorithm --- p.49Chapter 3.2.3 --- Experimental Results --- p.51Chapter 3.3 --- Conclusion --- p.56Chapter 4 --- DOMAIN SPECIFIC OPTIMIZATION --- p.57Chapter 4.1 --- Case Study: Font Rasterization on the Strong ARM platform --- p.57Chapter 4.1.1 --- Outline Font --- p.57Chapter 4.1.2 --- Font Rasterization --- p.59Chapter 4.1.3 --- Experiments --- p.63Chapter 4.2 --- Conclusion --- p.66Chapter 5 --- CONCLUSION --- p.67BIBLIOGRAPHY --- p.6

    The hArtes Tool Chain

    Get PDF
    This chapter describes the different design steps needed to go from legacy code to a transformed application that can be efficiently mapped on the hArtes platform

    OpenISA, um conjunto de instruções híbrido

    Get PDF
    Orientador: Edson BorinTese (doutorado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: OpenISA é concebido como a interface de processadores que pretendem ser altamente flexíveis. Isto é conseguido por meio de três estratégias: em primeiro lugar, o ISA é empiricamente escolhido para ser facilmente traduzido para outros, possibilitando flexibilidade do software no caso de um processador OpenISA físico não estar disponível. Neste caso, não há nenhuma necessidade de aplicar um processador virtual OpenISA em software. O ISA está preparado para ser estaticamente traduzido para outros ISAs. Segundo, o ISA não é um ISA concreto nem um ISA virtual, mas um híbrido com a capacidade de admitir modificações nos opcodes sem afetar a compatibilidade retroativa. Este mecanismo permite que as futuras versões do ISA possam sofrer modificações em vez de extensões simples das versões anteriores, um problema comum com ISA concretos, como o x86. Em terceiro lugar, a utilização de uma licença permissiva permite o ISA ser usado livremente por qualquer parte interessada no projeto. Nesta tese de doutorado, concentramo-nos nas instruções de nível de usuário do OpenISA. A tese discute (1) alternativas para ISAs, alternativas para distribuição de programas e o impacto de cada opção, (2) características importantes de OpenISA para atingir seus objetivos e (3) fornece uma completa avaliação do ISA escolhido com respeito a emulação de desempenho em duas CPUs populares, uma projetada pela Intel e outra pela ARM. Concluímos que a versão do OpenISA apresentada aqui pode preservar desempenho próximo do nativo quando traduzida para outros hospedeiros, funcionando como um modelo promissor para ISAs flexíveis da próxima geração que podem ser facilmente estendidos preservando a compatibilidade. Ainda, também mostramos como isso pode ser usado como um formato de distribuição de programas no nível de usuárioAbstract: OpenISA is designed as the interface of processors that aim to be highly flexible. This is achieved by means of three strategies: first, the ISA is empirically chosen to be easily translated to others, providing software flexibility in case a physical OpenISA processor is not available. Second, the ISA is not a concrete ISA nor a virtual ISA, but a hybrid one with the capability of admitting modifications to opcodes without impacting backwards compatibility. This mechanism allows future versions of the ISA to have real changes instead of simple extensions of previous versions, a common problem with concrete ISAs such as the x86. Third, the use of a permissive license allows the ISA to be freely used by any party interested in the project. In this PhD. thesis, we focus on the user-level instructions of OpenISA. The thesis discusses (1) ISA alternatives, program distribution alternatives and the impact of each choice, (2) important features of OpenISA to achieve its goals and (3) provides a thorough evaluation of the chosen ISA with respect to emulation performance on two popular host CPUs, one from Intel and another from ARM. We conclude that the version of OpenISA presented here can preserve close-to-native performance when translated to other hosts, working as a promising model for next-generation, flexible ISAs that can be easily extended while preserving backwards compatibility. Furthermore, we show how this can also be a program distribution format at user-levelDoutoradoCiência da ComputaçãoDoutor em Ciência da Computação2011/09630-1FAPES

    Flexible and Formal Modeling of Microprocessors with Application to Retargetable Simulation

    No full text
    Given the growth in application-specific processors, there is a strong need for a retargetable modeling framework that is capable of accurately capturing complex processor behaviors and generating efficient simulators. We propose the operation state machine (OSM) computation model to serve as the foundation of such a modeling framework. The OSM model separates the processor into two interacting layers: the operation layer where operation semantics and timing are modeled, and the hardware layer where disciplined hardware units interact. This declarative model allows for direct synthesis of micro-architecture simulators as it encapsulates precise concurrency semantics of microprocessors. We illustrate the practical benefits of this model through two case studies- the StrongARM core and the PowerPC-750 superscalar processor. The experimental results demonstrate that the OSM model has excellent modeling productivity and model efficiency. Additional applications of this modeling framework include derivation of information required by compilers and formal analysis for processor validation

    MiADL : linguagem para geração automática de simuladores redireccionáveis

    Get PDF
    Tese de Doutoramento em Electrónica Industrial - Área de Conhecimento em Informática IndustrialOs sistemas embutidos, além de fazerem cada vez mais parte da vida do cidadão comum, são dispositivos cada vez mais sofisticados e complexos. As equipas de desenvolvimento de sistemas embutidos têm por isso de lidar com complexidade crescente para atingir performances e requisitos cada vez mais exigentes (ex. hierarquias de memória complexas). Estes dispositivos exigem ferramentas de software – tais como: simuladores, depuradores, assembladores ou compiladores – que têm que acompanhar a evolução dos mesmos. Torna-se por isso fundamental desenvolver de forma rápida o conjunto de ferramentas para determinado sistema embutido para garantir espaço num mercado bastante competitivo, ou seja, conseguir um curto time-tomarket. O desenvolvimento de aplicações que permitam a rápida e eficaz geração deste tipo de ferramentas assume relevo no âmbito do desenvolvimento dos sistemas embutidos. Das ferramentas de software, o simulador é uma das essenciais para o desenvolvimento de novas arquitecturas computacionais. Entre as vantagens que apresenta, destaca-se a flexibilidade e baixo custo, uma vez que permite simular hardware em estágios iniciais do processo de desenvolvimento, sem necessidade de existência física do mesmo. Os primeiros simuladores eram desenvolvidos manualmente. Entretanto têm emergido linguagens de descrição de arquitecturas (ADLs) que facilitam a geração dessas ferramentas de uma forma automática, rápida, redireccionável e menos propensa a erros. Uma das vantagens destas linguagens consiste em permitirem gerar várias ferramentas a partir de uma única descrição, o que garante desde logo compatibilidade e coerência entre elas. Estas linguagens além de aplicação prática para fins industriais, podem também ser usadas para fins educacionais nomeadamente para o ensino de arquitecturas de microprocessadores. Este trabalho de Doutoramento tem por objectivo contribuir para simplificar o processo de construção de simuladores, usados no projecto de sistemas embutidos. Pretende-se mostrar que a melhor forma de alcançar este objectivo consiste numa abordagem usando uma linguagem estruturada e que explora os comportamentos/sintaxes comuns ao conjunto de instruções da arquitectura alvo. Para suportar esta abordagem propõem-se uma linguagem que introduz uma forma diferente de descrever arquitecturas do conjunto de instruções (ISAs). A linguagem nomeada de Minho Architecture Description Language (MiADL), possui uma estrutura que explora o que é comum às instruções (comportamento e assembly) e permite a existência de blocos que são descritos uma vez e podem ser usados várias vezes. Desta forma a validação e identificação de incoerências fica facilitada e conduz a descrições claras, robustas e fáceis de depurar. As principais características desta linguagem são a existência de scopes, a inferência de argumentos, a estrutura em secções que permitem reutilização em diferentes partes da linguagem, a forma como lida com variabilidades e regularidades presentes em ISAs e a relação com a informação presente geralmente em manuais dos processadores. As modelações usando MiADL de vários ISAs complexos, de arquitecturas conhecidas, resulta em descrições bastante compactas, estruturadas e fáceis de explorar, quando comparadas com as conseguidas por outras ADLs. Em termos de simulação, com base em modelações MiADL, na tese é apresentada a infra-estrutura de geração automática de simuladores redireccionáveis de ISAs usando a técnica de simulação compilada estática, recorrendo a generic programming. Esta possibilidade de recorrer àquela técnica de programação deve-se às características da linguagem, que com outras ADLs não é tão fácil de conseguir. Além de tornar o código mais compacto e estruturado, permite que o compilador nativo explore optimizações para conseguir bom desempenho do simulador.Embedded system devices, besides having a growing importance in the common citizen’s life, are more and more sophisticated and complex devices. The embedded systems development teams have to deal with the rising complexity to provide higher performance and more demanding requisites (ex. complex memory organizations). These devices require software tools – such as: simulator, debugger, linker, assembler or compiler - that must be proper to those devices. It is therefore essential to develop in a quick way the software toolkit, for the target embedded system, to assure place in a competitive market, in other words, to shorten time-to-market. The development of applications to efficiently generate the software toolkit is of great importance in the embedded systems development scenario. From the set of software tools, the simulator is an essential tool for the development of new computational architectures. It brings flexibility and reduces the cost, since it allows the hardware simulation in early stages of the development process, without the physical existence of such hardware. The first simulators were hand-coded developed. Since then, new Architecture Description Languages (ADLs) have emerged, that have made easier the generation of these tools in an automatic, quicker, retargetable and error resilient way. One advantage of these languages is that they allow generating several tools from a single description. These languages, besides the practical applications for industrial purposes, can also be used for educational purposes namely for teaching microprocessors architectures. The purpose of this PhD work is to contribute for the simplification of generating simulators to be used in the design of embedded systems. The aim is to demonstrate that the best way is achieved through the use of a structured language which explores the common behavioural/syntaxes of the target instruction set architecture. To support this approach a new language is proposed which introduces a new way to describe Instructions Set Architectures (ISAs). This language, named Minho Architecture Description Language (MiADL), possesses a structure that explores what is common with the instructions (behaviour and assembly) and is block organized. The language blocks can be described once and used several times. In this way the validation and detection of incoherencies is facilitated, leading to clear, robust and easy to debug descriptions. The main features of this language are: scopes existence; arguments inference; structure organized in sections which allows its reuse in different parts of the description; the way in which it deals with variability and regularities present in complex ISAs and similarity with the information usually available in processors manuals. The descriptions of several complex ISAs of known architectures using MiADL, result in rather compact, structured and easy to explore descriptions, when compared with the ones obtained by other ADLs. In this thesis is also discussed the retargetable framework designed for automatic generation of compiled simulators, from MiADL descriptions, using generic programming to execute instruction behaviors. The use of function templates is possible due to MiADL features, with other ADLs this isn’t so easy to accomplish. Besides making the code more compact and structured, allows to explore optimizations from the native compiler to achieve improvements in the simulator´s performace.Ministério da Educação - Prodep II
    corecore