• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 143
  • 35
  • 22
  • 7
  • 4
  • 2
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • Tagged with
  • 238
  • 238
  • 233
  • 49
  • 44
  • 41
  • 39
  • 37
  • 37
  • 34
  • 32
  • 31
  • 31
  • 29
  • 28
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
201

Aplicando a metodologia de desenvolvimento baseado em modelos para funções de software automotivo / Model based design for automotive software function

Stella, Gilson Natal Dalla 15 May 2015 (has links)
Os veículos automotivos possuem diversas funcionalidades em que, para ser melhoradas ou inovadas, é mandatório que se garanta melhor desempenho, segurança e confiabilidade. Para isto, é necessário criar, ou aperfeiçoar os já existentes, métodos e processos de desenvolvimento de software embarcado automotivo. As metodologias de desenvolvimento tradicionais não atendem aos requisitos e complexidade destes sistemas. Desta forma, a metodologia de desenvolvimento de software baseado em modelos (MBD – Model-Based Design) pode contribuir grandemente, por tornar possível a otimização com recursos de análise e testes. Por estes motivos, este trabalho busca demonstrar como se pode aplicar esta metodologia desenvolvimento baseado em modelos para as funções de software automotivo, considerando as etapas deste processo como MIL (Model-Inthe- Loop), SIL (Software-In-the Loop), PIL (Processor-In-the Loop) e RCP (Rapid Control Prototyping) e comprovar a sua eficácia. Considera-se ainda que foram utilizadas ferramentas compatíveis e essenciais para o processo de desenvolvimento, tais como para definição dos requisitos, elaboração da planta física, projeto controlador, verificação e testes. / The vehicles has many functions wherein, to be improve or innovated, is essential that the warranty of a better performance, safety and reliability. For this, is necessary to create, or improve the already existing, developing methods and processes of automotive embedded software. However, the traditional development methodologies do not meet the requirements and complexity of these systems. Therefore the methodology of model-based design (MBD) may contribute greatly, by making possible the optimization using analysis resources and tests. For these reasons, this work seeks to demonstrate how you can apply this development methodology based on models for automotive software functions, considering the steps in this process as MIL (Model-In-the-Loop), SIL (Software-In-the Loop), PIL (Processor-In-the Loop) and RCP (Rapid Control Prototyping) and prove its effectiveness. It is further considered that were used compatible and essential tools for the development process, such as for requirements definition, development of physical plant, controller design, verification and testing.
202

PM-MDA: um método para o desenvolvimento de modelos de plataforma no contexto da MDA

Soares, Inali Wisniewski 07 December 2012 (has links)
Esta tese propõe um método denominado PM-MDA para o desenvolvimento de Modelos de Plataforma (Platform Model - PM) no contexto da abordagem Model Driven Architecture (MDA). O método PM-MDA tem como foco o desenvolvimento de projetos de Software embarcado baseados em Sistemas Operacionais em Tempo Real (Real-Time Operating System - RTOS). Adicionalmente, este estudo define um perfil UML 2.0 para modelagem da aplicação e plataforma de software embarcado denominado Profile for modeling Application and Platform of Embedded Software (PROAPES) que é usado no método PM-MDA. Tal perfil define um conjunto de estereótipos para descrever genericamente Modelos de Plataforma e Modelos Independentes de Plataforma (Platform Independent Model - PIM). Além disso, são definidas extensões desse perfil, tal como o perfil PROAPESX que permite a modelagem de PMs para versões do RTOS X Real-Time Kernel e hardware associados. Além disso, o perfil PROAPES possibilita vincular um PIM a um PM, permitindo que esses modelos sejam inseridos como atributos de entrada em uma Transformação de Modelos. No contexto da MDA, esse perfil constitui-se em um metamodelo de plataforma (um metamodelo de uma família de plataformas similares) para a construção de modelos de plataforma. Desse modo, um PM é usado como parte fundamental para o desenvolvimento de software embarcado na abordagem MDA, fornecendo meios de obter independência de plataforma. Em abordagens atuais de MDA, as transformações de modelos empregam implicitamente os modelos de plataforma. Como os interesses referentes à plataforma não são separados dos interesses referentes às transformações de modelos, para cada plataforma requerida deve existir uma ou mais transformações de modelos correspondentes que são configuradas especificamente para aquela plataforma. O resultado são processos de transformações de modelos difíceis de serem automatizados. No domínio de sistemas embarcados, o uso de MDA é ainda mais importante devido à heterogeneidade de plataformas e à complexidade destes sistemas. O método PM-MDA, que faz uso do perfil PROAPES, visa sistematizar o processo de criação e disponibilização de modelos de plataforma separados do processo de transformação de modelos, possibilitando a geração de processos de transformações de modelos eficientes e adaptáveis. / This thesis proposes a method called PM-MDA for the development of Platform Models in the context of Model Driven Architecture (MDA). The PM-MDA method focuses on the development of embedded software projects based on Real-Time Operating Systems (RTOS). Additionally, this study defines a UML 2.0 Profile for Modeling Application and Platform of Embedded Software (PROAPES), which is used in the PM-MDA method. Such profile defines a set of stereotypes to generically describe Platform Models (PMs) and Platform Independent Models (PIMs). Further, extensions are defined in this profile, e.g. the PROAPESX profile, allowing the modeling of PMs into versions of the X RTOS Real-Time Kernel and associated hardware. In its turn, the PROAPES profile enables the link of a PIM to a PM, allowing these models to be entered as input attributes in a Model Transformation. In the context of MDA, this profile is a platform metamodel for building PMs, i.e., a metamodel of a family of similar platforms. In this way, a PM is used as a fundamental part in the development of embedded software in the MDA approach by providing means of obtaining platform independence. In current MDA approaches, model transformations implicitly employ PMs. As the concerns regarding the platform are not separated from the concerns related to model transformations, for each required platform there must be one or more corresponding model transformations that are configured specifically for that platform. This results in model transformation processes that are expensive and difficult to be automated. In some application domains such as embedded systems, the use of MDA is more motivating because of the heterogeneity of platforms and the complexity of these systems. The PM-MDA method, which makes use of the PROAPES profile, aims to systematize the process of creating and providing platform models separated from the model transformation process, enabling the generation of efficient and adaptable model transformations.
203

Um estudo da aplicação do padrão AUTOSAR para desenvolvimento de funções em sistemas embarcados automotivos / A study of the application of the AUTOSAR standard for function development in automotive embedded systems

Neme, João Henrique Zander 03 May 2017 (has links)
A indústria automotiva necessita de constante aumento de qualidade e inovação para se diferenciar das concorrentes, porém sem impactar os custos de produção. No desenvolvimento tradicional geralmente o aumento da complexidade de um sistema é diretamente proporcional ao custo da sua produção. Para inverter esta relação é necessário que se implementem técnicas e padrões modernos de desenvolvimento. Além disso, é estratégico que os engenheiros, hoje em dia, estejam preparados para trabalhar com ferramentas modernas. Este trabalho tem a intenção de apresentar algumas técnicas modernas de desenvolvimento e demonstrar o fluxo de trabalho necessário para a criação de funções automotivas modernas, disponibilizando uma bibliografia que demonstra conceitos e práticas da cadeia de ferramentas específicas para este fim. Inicialmente é apresentada uma visão geral do desenvolvimento de softwares automotivos e uma comparação entre a metodologia tradicional e a abordagem X-in-the-Loop. Na sequência do trabalho o padrão AUTOSAR é apresentado para ser aplicado após o desenvolvimento da função de um painel de instrumentos automotivo. / The automotive industry needs constant increase of quality and innovation to differentiate from competitors, but without impacting production costs. In the traditional development increasing complexity of a system directly increases the cost of production. To reverse this relationship it is necessary to implement modern development techniques and standards. This work intends to present some modern development techniques demonstrating the workflow necessary for the creation of modern automotive functions, providing a bibliography that demonstrates concepts and practices of the tool chain for this purpose. Initially, an overview of the development of automotive software and a comparison between the traditional methodology and the X-in-the-Loop approach is presented. Following the AUTOSAR standard is presented to be applied after the design of an automotive dashboard function.
204

Critérios para adoção e seleção de sistemas operacionais embarcados

Moroz, Maiko Rossano 30 November 2011 (has links)
CNPq / Sistemas embarcados são sistemas computacionais projetados para aplicações específicas, os quais estão presentes em praticamente todos os dispositivos eletrônicos atuais. A utilização de um sistema operacional (SO) é uma maneira de simplificar o desenvolvimento de software, livrando os programadores do gerenciamento do hardware de baixo nível e fornecendo uma interface de programação simples para tarefas que ocorrem com frequência. A alta complexidade dos computadores pessoais atuais torna a utilização de um SO indispensável. Por outro lado, sistemas embarcados são arquiteturas limitadas, geralmente com muitas restrições de custo e consumo. Devido às demandas adicionais impostas por um SO, os desenvolvedores de sistemas embarcados enfrentam a crítica decisão quanto à adoção ou não de um SO. Nesta dissertação, apresenta-se uma série de critérios a fim de auxiliar os projetistas de sistemas embarcados na decisão quanto ao uso ou não de um SO. Além disso, outros critérios são apresentados com o intuito de guiar a seleção do SO mais adequado às características do projeto. Adicionalmente, escolheu-se 15 sistemas operacionais para serem analisados de acordo com os critérios apresentados, os quais podem ser utilizados como base para o processo de seleção de um SO. Adicionalmente, a fim de avaliar o impacto da adoção de um SO em um projeto embarcado, apresenta-se um estudo de caso no qual uma aplicação modelo (uma estação meteorológica embarcada) foi desenvolvida em três diferentes cenários: sem um SO, usando um SO de tempo real (µC/OS-II), e usando um SO de propósito geral (uClinux). Uma FPGA e um SoPC foram utilizados para obter uma plataforma flexível de hardware apta para acomodar as três configurações. A adoção de um SO proporcionou uma redução de até 48% no tempo de desenvolvimento; em contrapartida, isto aumentou os requisitos de memória de programa em pelo menos 71%. / An embedded system (ES) is a computing system designed for a specific purpose, present essentially in every electronic device. The use of an operating system (OS) is advocated as a means to simplify software development, freeing programmers from managing low-level hardware and providing a simpler programming interface for common tasks. The high complexity of modern desktop computers makes an OS indispensable; embedded systems, on the other hand, are limited architectures, usually severely cost- and power-constrained. Because of the additional demands imposed by an OS, embedded developers are faced with the crucial decision of whether to adopt an OS or not. In this work, we introduce a set of criteria to help determine whether an OS should be adopted in an embedded design. We then go further and establish a series of rules to help decide which OS to pick, if one should be used. In addition, we present a case study in which a sample application (an embedded weather station) was developed under three different scenarios: without any OS, using the µC/OS-II real-time OS, and using the uClinux general-purpose OS. An FPGA and a SoPC were used to provide a flexible hardware platform able to accommodate all three configurations. The adoption of an OS provided a reduction of up to 48% in development time; on the other hand, it increased program memory requirements in at least 71%.
205

PM-MDA: um método para o desenvolvimento de modelos de plataforma no contexto da MDA

Soares, Inali Wisniewski 07 December 2012 (has links)
Esta tese propõe um método denominado PM-MDA para o desenvolvimento de Modelos de Plataforma (Platform Model - PM) no contexto da abordagem Model Driven Architecture (MDA). O método PM-MDA tem como foco o desenvolvimento de projetos de Software embarcado baseados em Sistemas Operacionais em Tempo Real (Real-Time Operating System - RTOS). Adicionalmente, este estudo define um perfil UML 2.0 para modelagem da aplicação e plataforma de software embarcado denominado Profile for modeling Application and Platform of Embedded Software (PROAPES) que é usado no método PM-MDA. Tal perfil define um conjunto de estereótipos para descrever genericamente Modelos de Plataforma e Modelos Independentes de Plataforma (Platform Independent Model - PIM). Além disso, são definidas extensões desse perfil, tal como o perfil PROAPESX que permite a modelagem de PMs para versões do RTOS X Real-Time Kernel e hardware associados. Além disso, o perfil PROAPES possibilita vincular um PIM a um PM, permitindo que esses modelos sejam inseridos como atributos de entrada em uma Transformação de Modelos. No contexto da MDA, esse perfil constitui-se em um metamodelo de plataforma (um metamodelo de uma família de plataformas similares) para a construção de modelos de plataforma. Desse modo, um PM é usado como parte fundamental para o desenvolvimento de software embarcado na abordagem MDA, fornecendo meios de obter independência de plataforma. Em abordagens atuais de MDA, as transformações de modelos empregam implicitamente os modelos de plataforma. Como os interesses referentes à plataforma não são separados dos interesses referentes às transformações de modelos, para cada plataforma requerida deve existir uma ou mais transformações de modelos correspondentes que são configuradas especificamente para aquela plataforma. O resultado são processos de transformações de modelos difíceis de serem automatizados. No domínio de sistemas embarcados, o uso de MDA é ainda mais importante devido à heterogeneidade de plataformas e à complexidade destes sistemas. O método PM-MDA, que faz uso do perfil PROAPES, visa sistematizar o processo de criação e disponibilização de modelos de plataforma separados do processo de transformação de modelos, possibilitando a geração de processos de transformações de modelos eficientes e adaptáveis. / This thesis proposes a method called PM-MDA for the development of Platform Models in the context of Model Driven Architecture (MDA). The PM-MDA method focuses on the development of embedded software projects based on Real-Time Operating Systems (RTOS). Additionally, this study defines a UML 2.0 Profile for Modeling Application and Platform of Embedded Software (PROAPES), which is used in the PM-MDA method. Such profile defines a set of stereotypes to generically describe Platform Models (PMs) and Platform Independent Models (PIMs). Further, extensions are defined in this profile, e.g. the PROAPESX profile, allowing the modeling of PMs into versions of the X RTOS Real-Time Kernel and associated hardware. In its turn, the PROAPES profile enables the link of a PIM to a PM, allowing these models to be entered as input attributes in a Model Transformation. In the context of MDA, this profile is a platform metamodel for building PMs, i.e., a metamodel of a family of similar platforms. In this way, a PM is used as a fundamental part in the development of embedded software in the MDA approach by providing means of obtaining platform independence. In current MDA approaches, model transformations implicitly employ PMs. As the concerns regarding the platform are not separated from the concerns related to model transformations, for each required platform there must be one or more corresponding model transformations that are configured specifically for that platform. This results in model transformation processes that are expensive and difficult to be automated. In some application domains such as embedded systems, the use of MDA is more motivating because of the heterogeneity of platforms and the complexity of these systems. The PM-MDA method, which makes use of the PROAPES profile, aims to systematize the process of creating and providing platform models separated from the model transformation process, enabling the generation of efficient and adaptable model transformations.
206

Um estudo da aplicação do padrão AUTOSAR para desenvolvimento de funções em sistemas embarcados automotivos / A study of the application of the AUTOSAR standard for function development in automotive embedded systems

Neme, João Henrique Zander 03 May 2017 (has links)
A indústria automotiva necessita de constante aumento de qualidade e inovação para se diferenciar das concorrentes, porém sem impactar os custos de produção. No desenvolvimento tradicional geralmente o aumento da complexidade de um sistema é diretamente proporcional ao custo da sua produção. Para inverter esta relação é necessário que se implementem técnicas e padrões modernos de desenvolvimento. Além disso, é estratégico que os engenheiros, hoje em dia, estejam preparados para trabalhar com ferramentas modernas. Este trabalho tem a intenção de apresentar algumas técnicas modernas de desenvolvimento e demonstrar o fluxo de trabalho necessário para a criação de funções automotivas modernas, disponibilizando uma bibliografia que demonstra conceitos e práticas da cadeia de ferramentas específicas para este fim. Inicialmente é apresentada uma visão geral do desenvolvimento de softwares automotivos e uma comparação entre a metodologia tradicional e a abordagem X-in-the-Loop. Na sequência do trabalho o padrão AUTOSAR é apresentado para ser aplicado após o desenvolvimento da função de um painel de instrumentos automotivo. / The automotive industry needs constant increase of quality and innovation to differentiate from competitors, but without impacting production costs. In the traditional development increasing complexity of a system directly increases the cost of production. To reverse this relationship it is necessary to implement modern development techniques and standards. This work intends to present some modern development techniques demonstrating the workflow necessary for the creation of modern automotive functions, providing a bibliography that demonstrates concepts and practices of the tool chain for this purpose. Initially, an overview of the development of automotive software and a comparison between the traditional methodology and the X-in-the-Loop approach is presented. Following the AUTOSAR standard is presented to be applied after the design of an automotive dashboard function.
207

Geração automatica de montadores em ArchC / Automatic generation of assemblers using ArchC

Baldassin, Alexandro José 20 April 2005 (has links)
Orientador: Paulo Cesar Centoducatte / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-05T00:50:23Z (GMT). No. of bitstreams: 1 Baldassin_Alexandro_M.pdf: 957897 bytes, checksum: 02ca08a95301bf7e9262564a9672c8b4 (MD5) Previous issue date: 2005 / Resumo: Projetistas de sistemas dedicados enfrentam atualmente novos desafios em todas as fases do projeto. A difusão da tecnologia conhecida como SoC (System on a Chip) requer novos paradigmas para a especificação, implementação e verificação do projeto. A alta complexidade de tais sistemas e a grande variedade de configurações disponíveis podem tornar a escolha do sistema ideal demorada, prolongando o tempo de projeto e conseqüentemente seu ingresso no mercado. Em especial, no processo de escolha de um certo processador, o projetista necessita de um conjunto básico de ferramentas que lhe permitam analisar questões como desempenho, potência consumida, ou ainda área de silício ocupada. Exemplos de ferramentas importantes nessa fase de avaliação do projeto incluem compiladores, montadores e simuladores de instruções. Nesse contexto, o uso de uma linguagem para descrição de arquitetura (Architecture Description Language, ADL) permite que processadores sejam modelados em níveis altos de abstração, e que um conjunto de ferramentas específicas para o modelo descrito seja gerado automaticamente. ArchC é uma ADL em desenvolvimento no Laboratório de Sistemas de Computação (IC-UNICAMP), e já é capaz de gerar ferramentas de simulação de instruções automaticamente. Desenvolvemos neste trabalho uma ferramenta para geração automática de montadores a partir de modelos descritos em ArchC, denominada acasm 2. O desenvolvimento de acasm nos levou a incorporar novas construções a ArchC para a modelagem da linguagem de montagem e da codificação das instruções. Nossa ferramenta gera um conjunto de arquivos dependentes de arquitetura para o redirecionamento do montador GNU Assembler (gas). Usamos acasm para gerar montadores a partir de modelos, em ArchC, das arquiteturas MIPS-I e SPARC-V8, e comparamos os arquivos objetos obtidos com os gerados pelo montador gas nativo para ambas arquiteturas. Os resultados mostraram que os arquivos gerados pelo nosso montador foram idênticos aos gerados pelo montador nativo para ambas arquiteturas / Abstract: Nowadays, embedded systems designers are facing new challenges at all stages of the design process. The growing of the system-on-chip (SoC) technology is creating new paradigms in the specification, implementation and verification phases of a design. The increasing complexity and the myriad of available configurations make it hard to choose the ideal system, therefore lengthening the design time, as well as time to market. Specially, customization of the processor architecture requires a software toolkit in order to estimate factors such as performance, power dissipation and chip area. Examples of these tools may include compilers, assemblers and instruction level simulators. In this context, the use of an architecture description language (ADL) allows one to model processors using different levels of abstraction. Based on the model, a software toolkit can be automatically generated. ArchC is an ADL being developed by the Computer Systems Laboratory (IC-UNICAMP) and can automatically generate instruction level simulators at its current stage. In this work, we have created a tool to automatically generate assemblers from ArchC models, named acasm 3. While developing acasm we have introduced new language constructions to ArchC in order to describe the assembly language syntax and the instruction encoding scheme. Our tool retargets the GNU assembler (gas) to different architectures by generating a set of architecture depedent files based on ArchC models. We used acasm to generate assemblers to the MIPS-I and SPARC-V8 architectures based on our ArchC models. We then compared the object files created by our assemblers with the ones created by the native gas and no difference between each pair of files was noticed, for both architectures / Mestrado / Mestre em Ciência da Computação
208

Proposta de uma plataforma de testes para o desenvolvimento de veículos autônomos / Test platform proposal for the development of autonomous vehicles

Hernandez Beleño, Ruben Dario, 1986- 20 August 2018 (has links)
Orientador: Janito Vaqueiro Ferreira / Dissertação (mestrado) - Universidade Estadual de Campinas, Faculdade de Engenharia Mecânica / Made available in DSpace on 2018-08-20T14:52:32Z (GMT). No. of bitstreams: 1 HernandezBeleno_RubenDario_M.pdf: 6591392 bytes, checksum: fd4c66b4e3769739bb1a4283c418d2d8 (MD5) Previous issue date: 2012 / Resumo: Com o avanço da tecnologia refletida nos sistemas eletrônicos e de computação, os métodos do controle de trajetória no sistema de navegação se tornaram importantes nas diversas aplicações de veículos autônomos, como na geração de mapas, desvio de obstáculos e tarefas de posicionamento. Além disso, o controle pode proporcionar um ganho significativo na confiabilidade, versatilidade e precisão das tarefas robóticas, questões cruciais na maioria das aplicações reais. O presente trabalho tem como objetivo principal apresentar a criação de um veículo autônomo em escala. Para tanto foi desenvolvido um sistema de função sensorial que provê informações sobre a posição e orientação do carro a partir de quatro sistemas sensoriais como GPS, acelerômetro, giroscópio e a bussola (IMU), para que o veículo autônomo possa realizar a rota corretamente, de forma eficiente e segura. Neste projeto foi desenvolvido um software que integra os sistemas de controle e de sensoriamento. Além disso, foi projetado um módulo que controla a posição e orientação do veículo. O robô antes de realizar a manobra calcula a distância mínima relacionada ao próximo ponto da coordenada planejada para trocar sua referência de trajetória satisfazendo a orientação do caminho e do veículo. Para fins de avaliação, foram realizados experimentos em ambientes reais onde o carro percorre um conjunto determinado de coordenadas geográficas sem nenhuma intervenção humana, apresentando resultados do seguimento de trajetórias proposto e validando os sistemas sensoriais, além do algoritmo de controle projetado / Abstract: As electronic and computational systems technology advances, the use of path control methods in navigation systems become very important for different autonomous vehicles applications such as generating maps, avoiding obstacles and carrying out positioning tasks. In addition, controls can help increase the reliability, versatility and precision level of programmed tasks, which is exceedingly significant regarding real applications. The first aim of this work is to present the creation of an autonomous scale vehicle. We have developed a sensor system that provides information about the vehicle's position and orientation through four sensor systems such as gps, accelerometer, gyroscope and compass so that it can effectively and safely cover the right route. This project developed a software, which integrates the control and sensors systems. In addition, a control module was projected for the positioning and orientation of the vehicle. Before the robot turns to any direction, it calculates the minimal distance to the next step of the programmed coordinate, in order to change its own referenced trajectory, satisfying the orientation of the trajectory and the vehicle. For the task validation were done experiments in real life scenarios, where the vehicle follows a determined group of geo-coordinates without any human intervention, presenting results of the purposed following trajectories, validating the sensors systems and the control algorithm / Mestrado / Mecanica dos Sólidos e Projeto Mecanico / Mestre em Engenharia Mecânica
209

Embedded Computer for Space Applications suitable for Linux / Linuxanpassad inbyggnadsdator för rymdbruk

Dahlberg, Johan January 2003 (has links)
This report briefly describes the special requirements for a computer board for use in space. In particular, component selection and ways of mitigating the soft and hard errors are discussed. Furthermore, one implementation for a low-cost, relatively high performance computer that will work in the harsh space environment is presented. The report is primarily intended for those familiar with digital design, who need an introduction to construction of space or other high-reliability hardware. As the quality (resolution) of imagers, spectrometers and other data sources in scientific satellite payloads is increasing, there is also an increasing demand for more processing power in order to compress or in other way process the data before transmitting it on the limited bandwidth microwave downlink to Earth. Scientific instruments are usually mission specific and have rather low budget, so there is a need for a powerful computer board that can be used for a number of missions in order to keep the engineering costs down.
210

Design and evaluation of compact ISAs / Estudo e avaliação de conjuntos de instruções compactos

Lopes, Bruno Cardoso, 1985- 24 August 2018 (has links)
Orientador: Rodolfo Jardim de Azevedo / Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-24T12:29:38Z (GMT). No. of bitstreams: 1 Lopes_BrunoCardoso_D.pdf: 3162388 bytes, checksum: 3a46d0fb9404a69bf87489922e4743b0 (MD5) Previous issue date: 2014 / Resumo: Sistemas embarcados modernos são compostos de SoC heterogêneos, variando entre processadores de baixo e alto custo. Apesar de processadores RISC serem o padrão para estes dispositivos, a situação mudou recentemente: fabricantes estão construindo sistemas embarcados utilizando processadores RISC - ARM e MIPS - e CISC (x86). A adição de novas funcionalidades em software embarcados requer maior utilização da memória, um recurso caro e escasso em SoCs. Assim, o tamanho de código executável é crítico, porque afeta diretamente o número de misses na cache de instruções. Processadores CISC costumavam possuir maior densidade de código do que processadores RISC, uma vez que a codificação de instruções com tamanho variável beneficia as instruções mais usadas, os programas são menores. No entanto, com a adição de novas extensões e instruções mais longas, a densidade do CISC em aplicativos recentes tornou-se similar ao RISC. Nesta tese de doutorado, investigamos a compressibilidade de processadores RISC e CISC; SPARC e x86. Nós propomos uma extensão de 16-bits para o processador SPARC, o SPARC16. Apresentamos também, a primeira metodologia para gerar ISAs de 16-bits e avaliamos a compressão atingida em comparação com outras extensões de 16-bits. Programas do SPARC16 podem atingir taxas de compressão melhores do que outros ISAs, atingindo taxas de até 67%. O SPARC16 também reduz taxas de cache miss em até 9%, podendo usar caches menores do que processadores SPARC mas atingindo o mesmo desempenho; a redução pode chegar à um fator de 16. Estudamos também como novas extensões constantemente introduzem novas funcionalidades para o x86, levando ao inchaço do ISA - com o total de 1300 instruções em 2013. Alem disso, 57 instruções se tornam inutilizadas entre 1995 e 2012. Resolvemos este problema propondo um mecanismo de reciclagem de opcodes utilizando emulação de instruções legadas, sem quebrar compatibilidade com softwares antigos. Incluímos um estudo de caso onde instruções x86 da extensão AVX são recodificadas usando codificações menores, oriundas de instruções inutilizadas, atingindo até 14% de redução no tamanho de código e 53% de diminuição do número de cache misses. Os resultados finais mostram que usando nossa técnica, até 40% das instruções do x86 podem ser removidas com menos de 5% de perda de desempenho / Abstract: Modern embedded devices are composed of heterogeneous SoC systems ranging from low to high-end processor chips. Although RISC has been the traditional processor for these devices, the situation changed recently; manufacturers are building embedded systems using both RISC - ARM and MIPS - and CISC processors (x86). New functionalities in embedded software require more memory space, an expensive and rare resource in SoCs. Hence, executable code size is critical since performance is directly affected by instruction cache misses. CISC processors used to have a higher code density than RISC since variable length encoding benefits most used instructions, yielding smaller programs. However, with the addition of new extensions and longer instructions, CISC density in recent applications became similar to RISC. In this thesis, we investigate compressibility of RISC and CISC processors, namely SPARC and x86. We propose a 16-bit extension to the SPARC processor, the SPARC16. Additionally, we provide the first methodology for generating 16-bit ISAs and evaluate compression among different 16-bit extensions. SPARC16 programs can achieve better compression ratios than other ISAs, attaining results as low as 67%. SPARC16 also reduces cache miss rates up to 9%, requiring smaller caches than SPARC processors to achieve the same performance; a cache size reduction that can reach a factor of 16. Furthermore, we study how new extensions are constantly introducing new functionalities to x86, leading to the ISA bloat at the cost a complex microprocessor front-end design, area and energy consumption - the x86 ISA reached over 1300 different instructions in 2013. Moreover, analyzed x86 code from 5 Windows versions and 7 Linux distributions in the range from 1995 to 2012 shows that up to 57 instructions get unused with time. To solve this problem, we propose a mechanism to recycle instruction opcodes through legacy instruction emulation without breaking backward software compatibility. We present a case study of the AVX x86 SIMD instructions with shorter instruction encodings from other unused instructions to yield up to 14% code size reduction and 53% instruction cache miss reduction in SPEC CPU2006 floating-point programs. Finally, our results show that up to 40% of the x86 instructions can be removed with less than 5% of overhead through our technique without breaking any legacy code / Doutorado / Ciência da Computação / Doutor em Ciência da Computação

Page generated in 0.0692 seconds