• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 45
  • 22
  • Tagged with
  • 67
  • 27
  • 25
  • 17
  • 16
  • 13
  • 13
  • 13
  • 12
  • 10
  • 10
  • 9
  • 9
  • 9
  • 8
  • 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.
11

Projeto de operadores aritmeticos de ponto flutuante em tecnologia cmos

Cleto, Laerte Davi January 1990 (has links)
Este trabalho aborda algumas etapas do projeto de operadores aritméticos de ponto flutuante visando sua IMPLENENTAÇÃ0 lntegrada. Inicialmente são estudados os algoritmos das operações de adição, subtração e multiplicação envolvendo operandos representados nos formatos estabelecidos pelo Padrão IEEE para aritmética binária de ponto flutuante [IEE 87]. A partir dos algoritmos são propostas arquiteturas para aqueles operadores, procurando aproveitar características de paralelismo para acelerar a execução. Detalha-se a proposta arquitetural do operador de multiplicação em ponto flutuante considerando algumas questões de caráter pratico. Estabelece-se uma estrutura pipeline, o controle e a temporização para o circuito. A implementação, neste nível, e validada por simulação. / This work deals with some design steps of integrated floating-point arithmetic operators. Firstly, the algorithms of floating-point addition, subtraction and multiplication are studied, based on the IEEE Standard for binary floating-point arithmetic CIEE 87]. After, some architectural solutions are proposed for the above operators, taking in account the parallel caracteristics of the algorithms for gain execution speed. The architectural level of the floating-point multiplier operator is detailed, emphasizing some practical matters; including a pipeline structure, control and timing of the circuit. Simulation is used to confirm the design proposed.
12

Parallel SAT solvers and their application in automatic parallelization / SAT solvers paralelos e suas aplicações em paralelização automática

Silveira, Jaime Kirch da January 2014 (has links)
Desde a diminuição da tendência de aumento na frequência de processadores, uma nova tendência surgiu para permitir que softwares tirem proveito de harwares mais rápidos: a paralelização. Contudo, diferente de aumentar a frequência de processadores, utilizar parallelização requer um tipo diferente de programação, a programação paralela, que é geralmente mais difícil que a programação sequencial comum. Neste contexto, a paralelização automática apareceu, permitindo que o software tire proveito do paralelismo sem a necessidade de programação paralela. Nós apresentamos aqui duas propostas: SAT-PaDdlinG e RePaSAT. SAT-PaDdlinG é um SAT Solver DPLL paralelo que roda em GPU, o que permite que RePaSAT utilize esse ambiente. RePaSAT é a nossa proposta de uma máquina paralela que utiliza o Problema SAT para paralelizar automaticamente código sequencial. Como uma GPU provê um ambiente barato e massivamente paralelo, SAT-PaDdlinG tem como objetivo prover esse paralelismo massivo a baixo custo para RePaSAT, como para qualquer outra ferramenta ou problema que utilize SAT Solvers. / Since the slowdown in improvement in the frequency of processors, a new tendency has arisen to allow software to take advantage of faster hardware: parallelization. However, different from increasing the frequency of processors, using parallelization requires a different kind of programming, parallel programming, which is usually harder than common sequential programming. In this context, automatic parallelization has arisen, allowing software to take advantage of parallelism without the need of parallel programming. We present here two proposals: SAT-PaDdlinG and RePaSAT. SAT-PaDdlinG is a parallel DPLL SAT Solver on GPU, which allows RePaSAT to use this environment. RePaSAT is our proposal of a parallel machine that uses the SAT Problem to automatically parallelize sequential code. Because GPU provides a cheap, massively parallel environment, SATPaDdlinG aims at providing this massive parallelism and low cost to RePaSAT, as well as to any other tool or problem that uses SAT Solvers.
13

Estimativa do consumo de energia devido ao software : uma abordagem baseada em redes de Petri coloridas

OLIVEIRA JÚNIOR, Meuse Nogueira de January 2006 (has links)
Made available in DSpace on 2014-06-12T15:59:40Z (GMT). No. of bitstreams: 2 arquivo5479_1.pdf: 5428990 bytes, checksum: 384171f77f7b3c9167469b053e4c8481 (MD5) license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5) Previous issue date: 2006 / Esta tese tem seu foco na análise do consumo de energia de microprocessadores no contexto dos sistemas embutidos. Para tanto, são propostos dois modelos para simulação e análise. Tais modelos operam com base na descrição do conjunto de instruções da arquitetura alvo em redes de Petri coloridas. O primeiro modelo aplica as redes de Petri coloridas para a avaliação do comportamento do código frente a uma descrição determinística das instruções. O segundo estende o primeiro de forma a explorar o espaçoo de possibilidades de execução do código por meio da descrição probabilística dos possíveis uxos de execução. Uma taxonomia para a descrição dos elementos presentes nos perfis de execução e consumo é proposta. Com base em tal taxonomia, formaliza-se um mecanismo para a análise de consumo de energia devido ao software. A abordagem proposta oferece três contribuições básicas: (i) criação de modelos de descrição de arquiteturas sobre uma linguagem de modelagem formal, as redes de Petri coloridas; (ii) proposição de um modelo de descrição estrutural do software, no qual os possíveis uxos de execução estão explícitos na semântica de descrição; e (iii) proposição de um modelo probabilístico para descrição, simulação e avaliação do consumo de energia devido ao software. O modelo probabilístico ataca o problema da dependência de padrão pela eliminação do vetor de teste em prol de um modelo probabilístico de comportamento do software. Dessa forma, esta tese estabelece uma abordagem nova para a análise de consumo de energia, promovendo um formalismo baseado em redes de Petri coloridas para a criação de ferramentas
14

Paralelização automática de laços para arquiteturas multicore / Automatic loop parallelization for multicore architectures

Vieira, Cristianno Martins 11 August 2010 (has links)
Orientador: Sandro Rigo / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-17T08:17:12Z (GMT). No. of bitstreams: 1 Vieira_CristiannoMartins_M.pdf: 1981128 bytes, checksum: 5af9a00808029ad96cd8d02e569b1cda (MD5) Previous issue date: 2010 / Resumo: Embora muitos programas possuam uma forma regular de paralelismo, que pode ser expressa em termos de laços paralelos, muitos exemplos importantes não a possuem. Loop skewing é uma transformação que remodela o espaço de iteração dos laços para que seja possível expressar o paralelismo implícito através de laços paralelos. Como consequência da complexidade em se modificar o espaço de iteração dos laços, e de possíveis problemas causados por transformações deste tipo - como o possível aumento na taxa de miss em caches -, no geral, elas não são largamente utilizadas. Neste projeto, implementamos a transformação loop skewing sobre o compilador da linguagem C presente no GCC (GNU Compiler Collection), de forma a permitir a assistência pelo programador. Utilizamos a ferramenta Graphite como base para a implementação da otimização, apenas representando-a como uma transformação afim sobre um objeto matemático multidimensional chamado polítopo. Mostramos, através de um estudo detalhado sobre o modelo matemático denominado modelo politópico, que laços com estruturas específicas - perfeitamente aninhados, com limites e acesso á memória descritos por funções afins - poderiam ser representados como polítopos, e que transformações aplicadas a estes seriam espelhadas no código gerado a partir desses polítopos. Dessa forma, qualquer transformação que possa ser estruturada como uma transformação afim sobre um polítopo, poderá ser implementada. Mostramos, ainda, durante a análise de desempenho, que transformações deste tipo são viáveis e, apesar de algumas limitações impostas pela infraestrutura do GCC, aumentam relativamente o desempenho das aplicações compiladas com ela - obtivemos um ganho máximo de aproximadamente 115% para o uso de quatro threads em uma das aplicações executadas. Verificamos o impacto do uso de programas já paralelizados manualmente sobre a plataforma, e obtivemos um ganho máximo de 11% nesses casos, mostrando que ainda aplicações paralelizadas podem conter paralelismo implícito / Abstract: Although many programs present a regular form of parallelism, which can be expressed as parallel loops, many important examples do not. Loop skewing is a transformation that reorganizes the iteration space of loops to make it possible to expose the implicit parallelism through parallel loops. In general, as a consequence of the complexity in modifying the iteration space of loops, and possible problems caused by such changes - such as the possibility of increasing the miss rate in caches -, they are not widely used. In this work, the loop skewing transformation was implemented on GCC's C compiler (GNU Compiler Collection), allowing programmer's assistance. Graphite provides us a basis for implementation of the optimization, just representing it as an a_ne transformation on a multidimensional mathematical object called polytope. We show, through a detailed study about the mathematical model called polytope model, that for a very restricted loop structure - perfectly nested, with limits and memory accesses described by a_ne functions - could be represented as polytopes, and transformations applied to these would be carried by the code generated from these polytope. Thus, any transformation that could be structured as an a_ne transformation on a polytope, could be added. We also show, by means of performance analysis, that this type of transformation is feasible and, despite some limitations imposed by the still under development GCC's infrastructure for auto-parallelization, fairly increases the performance of some applications compiled with it - we achived a maximum of about 115% using four threads with one of the applications. We also veriéd the impact of using manually parallelized programs on this platform, and achieved a maximum gain of 11% in these cases, showing that even parallel applications may have implicit parallelism / Mestrado / Ciência da Computação / Mestre em Ciência da Computação
15

Implementa??o da t?cnica de software pipelining na rede em chip IPNoSyS

Medeiros, Aparecida Lopes de 21 February 2014 (has links)
Made available in DSpace on 2014-12-17T15:48:10Z (GMT). No. of bitstreams: 1 AparecidaLM_DISSERT.pdf: 8059053 bytes, checksum: a243ee0772a785a00c8a0670955a7cae (MD5) Previous issue date: 2014-02-21 / Coordena??o de Aperfei?oamento de Pessoal de N?vel Superior / Alongside the advances of technologies, embedded systems are increasingly present in our everyday. Due to increasing demand for functionalities, many tasks are split among processors, requiring more efficient communication architectures, such as networks on chip (NoC). The NoCs are structures that have routers with channel point-to-point interconnect the cores of system on chip (SoC), providing communication. There are several networks on chip in the literature, each with its specific characteristics. Among these, for this work was chosen the Integrated Processing System NoC (IPNoSyS) as a network on chip with different characteristics compared to general NoCs, because their routing components also accumulate processing function, ie, units have functional able to execute instructions. With this new model, packets are processed and routed by the router architecture. This work aims at improving the performance of applications that have repetition, since these applications spend more time in their execution, which occurs through repeated execution of his instructions. Thus, this work proposes to optimize the runtime of these structures by employing a technique of instruction-level parallelism, in order to optimize the resources offered by the architecture. The applications are tested on a dedicated simulator and the results compared with the original version of the architecture, which in turn, implements only packet level parallelism / Com os avan?os tecnol?gicos os sistemas embarcados est?o cada vez mais presentes em nosso cotidiano. Devido a crescente demanda por funcionalidades, as fun??es s?o distribu?das entre os processadores, demandando arquiteturas de comunica??o mais eficientes, como as redes em chip (Network-on-Chip - NoC). As NoCs s?o estruturas que possuem roteadores com canais ponto-a-ponto que interconectam os cores do SoC (System-on-Chip), provendo comunica??o. Existem diversas redes em chip na literatura, cada uma com suas caracter?sticas espec?ficas. Dentre essas, para este trabalho foi a escolhida a IPNoSyS (Integrated Processing NoC System) por ser uma rede em chip com caracter?sticas diferenciadas em rela??o ?s NoCs em geral, pois seus componentes de roteamento acumulam tamb?m a fun??o de processamento, ou seja, possuem unidades funcionais capazes de executar instru??es. Com esse novo modelo, pacotes s?o processados e roteados pela arquitetura do roteador. Este trabalho visa melhorar o desempenho das aplica??es que possuem repeti??o, pois essas aplica??es gastam um tempo maior na sua execu??o, o que se d? pela repetida execu??o de suas instru??es. Assim, este trabalho prop?e otimizar o tempo de execu??o dessas estruturas, atrav?s do emprego de uma t?cnica de paralelismo em n?vel de instru??es, visando melhor aproveitar os recursos oferecidos pela arquitetura. As aplica??es s?o testadas em um simulador dedicado, e seus resultados comparados com a vers?o original da arquitetura, a qual prov? paralelismo apenas em n?vel de pacotes
16

Detec??o de ataques por controle de fluxo de execu??o em sistemas embarcados : uma abordagem em hardware

Porcher, Bruno Casagrande 31 March 2017 (has links)
Submitted by PPG Engenharia El?trica (engenharia.pg.eletrica@pucrs.br) on 2017-10-31T20:06:42Z No. of bitstreams: 1 Disserta??o_Bruno_Porcher.pdf: 1303682 bytes, checksum: 7373a048257a3ff06aef91a7ce86e8d8 (MD5) / Approved for entry into archive by Caroline Xavier (caroline.xavier@pucrs.br) on 2017-11-16T15:58:29Z (GMT) No. of bitstreams: 1 Disserta??o_Bruno_Porcher.pdf: 1303682 bytes, checksum: 7373a048257a3ff06aef91a7ce86e8d8 (MD5) / Made available in DSpace on 2017-11-16T16:03:02Z (GMT). No. of bitstreams: 1 Disserta??o_Bruno_Porcher.pdf: 1303682 bytes, checksum: 7373a048257a3ff06aef91a7ce86e8d8 (MD5) Previous issue date: 2017-03-31 / Coordena??o de Aperfei?oamento de Pessoal de N?vel Superior - CAPES / The use of computer systems is present in the most diverse environments in which we live and this rapid expansion exposes the population to the most diverse types of vulnerabilities. Errors in critical systems may result in financial loss, data theft, environmental damage or may even endanger human life. This work was developed to make it more difficult for malicious users to take control of computer systems. A hardware-based approach to detect attacks that cause changes to the program?s execution flow, but with no necessity for change or even the previous knowledge of the source code, is proposed. Thus, the purpose of this work is to ensure reliability by guaranteeing that the software running on the processor is equal to the one developed by the programmer. To do so, checkpoints in the program verify the integrity of the system during its execution. The proposed technique is implemented by software, which is responsible for the prior identification of the basic blocks using the critical system?s executable file. A dedicated hardware, denominated Watchdog is instantiated with the processor of the critical system and validated by functional simulations. The technique?s evaluation was carried out by executing in the soft-core version of a LEON3 processor for code sections, which are capable of exposing the database?s, denominated Common Vulnerabilities and Exposures (CVE, 2017). The experimental results demonstrate th proposed technique?s efficiency in terms of corruption detection in code snippets and in the execution of snippets of code not belonging to the original program. Finally, an analysis of the main overheads is performed. / O uso de sistemas computacionais est? presente nos mais diversos meios em que vivemos e esta r?pida expans?o acaba por expor a popula??o aos mais diversos tipos de vulnerabilidades. Um erro em um sistema cr?tico poder? ocasionar desde preju?zos financeiros, roubo de dados, danos ambientais ou at? riscos ? vida humana. Este trabalho foi desenvolvido visando dificultar que a tomada do controle de sistemas computacionais seja feita por um usu?rio mal intencionado. Este trabalho prop?e uma abordagem em hardware para detec??o de ataques que eventualmente causem qualquer tipo de altera??o no fluxo de execu??o de um programa, com o diferencial de que n?o ? necess?rio nenhuma altera??o, nem mesmo o conhecimento pr?vio do c?digo-fonte do programa da aplica??o em quest?o. Assim, em mais detalhes, o objetivo deste trabalho ? assegurar a confiabilidade de um sistema cr?tico, do ponto de vista em que o software que foi desenvolvido pelo programador seja id?ntico ao software que est? sendo executado no processador. Para isso ser?o utilizados pontos de checagem no programa capazes de verificarem a integridade do sistema durante a sua execu??o. A t?cnica proposta foi implementada atrav?s de um software que por sua vez, ? respons?vel pela identifica??o pr?via dos blocos b?sicos atrav?s do arquivo execut?vel do sistema cr?tico, e um hardware dedicado, denominado de Watchdog, instanciado juntamente com o processador do sistema cr?tico. Para a valida??o da t?cnica proposta foram realizadas simula??es funcionais e a avalia??o foi realizada a partir de trechos de c?digos capazes de exporem vulnerabilidades da base de dados, denominada Common Vulnerabilities and Exposures (CVE, 2017). A valida??o e a avalia??o foram realizadas adotando uma vers?o soft-core do processador LEON3. Os resultados experimentais demonstraram a efici?ncia da t?cnica proposta em termos de detec??o de corrup??es em trechos de c?digo e na execu??o de trechos de c?digo n?o pertencentes ao programa original. Finalmente uma analise das principais penalidades agregadas pela t?cnica foram realizadas.
17

The effects of the compiler optimizations in embedded processors reliability

Lins, Filipe Maciel January 2017 (has links)
O recente avanço tecnológico dos processadores embarcados aumentou a complexidade dos compiladores e o uso de recursos heterogêneos, como Arranjo de Portas Programáveis em Campo (Field Programmable Gate Array - FPGA) e Unidade de Processamento Gráfico (Graphics Processing Unit - GPU), integrado aos processadores. Além disso, aumentou-se o uso de componentes de prateleira (Commercial off-the-shelf - COTS) em aplicações críticas, ao invés de chips tolerantes a radiação, pois os COTS podem ser mais baratos, flexíveis, terem uma rápida colocação no mercado e um menor consumo de energia. No entanto, mesmo com essas vantagens, os COTS são suscetíveis a falha sendo necessário garantir uma alta confiabilidade nos sistemas utilizados. Assim como, no caso de aplicações em tempo real, também se precisa respeitar os requisitos determinísticos. Como caso de estudo, este trabalho utiliza a Zynq que é um dispositivo COTS do tipo Sistema em Chip Totalmente Programável (All Programmable System on Chip - APSoC) no qual possui um processador ARM Cortex-A9 embarcado. Nesta pesquisa, investigou-se o impacto das falhas que afetam o arquivo de registradores na confiabilidade dos processadores embarcados. Para tanto, experimentos de injeção de falhas e de radiação de íons pesados foram realizados. Além do mais, avaliou-se como os diferentes níveis de otimização do compilador modificam o uso e a probabilidade de falha do arquivo de registradores do processador. Selecionou-se seis benchmarks representativos, cada um compilado com três níveis diferentes de otimização. Realizamos campanhas exaustivas de injeção de falhas para medir o Fator de Vulnerabilidade Arquitetural (Architectural Vulnerability Factor - AVF) de cada código e configuração, identificando os registradores que são mais propensos a gerar uma corrupção de dados silenciosos (Silent Data Corruption - SDC) ou uma interrupção funcional de evento único (Single Event Functional Interruption - SEFI). Também foram correlacionadas as variações de confiabilidade observadas com a utilização do arquivo de registradores. Finalmente, irradiamos com íons pesados dois dos benchmarks selecionados compilados com dois níveis de otimização. Os resultados mostram que mesmo com o melhor desempenho, o menor uso do arquivo de registradores ou o menor AVF não é garantido que as aplicações irão alcançar a maior Carga de Trabalho Média Entre Falhas (Mean Workload Between Failure - MWBF). Por exemplo, os resultados mostram que o melhor desempenho da aplicação Multiplicação de Matrizes (Matrix Multiplication - MxM) é alcançado no nível de otimização mais alta. No entanto, nos resultados dos experimentos de injeção de falhas, a maior confiabilidade é alcançada no menor nível de otimização que possuem os menores AVFs e o menor uso do arquivo de registradores. Os resultados também mostram que o impacto das otimizações está fortemente relacionado com o algoritmo executado e como o compilador faz esta otimização. / The recent advances in the embedded processors increase the compilers complexity, and the usage of heterogeneous resources such as Field Programmable Gate Array (FPGA) and Graphics Processing Unit (GPU) integrated with the processors. Additionally, the increase in the usage of Commercial off-the-shelf (COTS) instead of radiation hardened chips in safety critical applications occurs because the COTS can be more flexible, inexpensive, have a fast time-to market and a lower power consumption. However, even with these advantages, it is still necessary to guarantee a high reliability in a system that uses a COTS for safety critical applications because they are susceptible to failures. Additionally, in the case of real time applications, the time requirements also need to be respected. As a case of study, this work uses the Zynq which is a COTS device classified as an All Programmable System-on-Chip (APSOC) and has an ARM Cortex-A9 as the embedded processor. In this research, the impact of faults that affect the register file in the embedded processors reliability was investigated. For that, fault-injection and heavy-ion radiation experiments were performed. Moreover, an evaluation of how the different levels of compiler optimization modify the usage and the failure probability of a processor register file. A set of six representative benchmarks, each one compiled with three different levels of compiler optimization. Exhaustive fault injection campaigns were performed to measure the registers Architectural Vulnerability Factor (AVF) of each code and configuration, identifying the registers that are more likely to generate Silent Data Corruption (SDC) or Single Event Functional Interruption (SEFI). Moreover, the observed reliability variations with register file utilization were correlated. Finally, two of the selected benchmarks, each one compiled with two different levels of optimization were irradiated in the heavy ions experiments. The results show that the best performance, the minor register file usage, or the lowest AVF does not always bring the highest Mean Workload Between Failures (MWBF). As an example, in the Matrix Multiplication (MxM) application, the best performance is achieved in the highest compiler optimization. However, in the fault injection, the higher reliability is obtained in the lower compiler optimization which has, the lower AVFs and the lower register file usage. Results also show that the impact of optimizations is strongly related to the executed algorithm and how the compiler optimizes them.
18

AwARE : an approach for adaptive recommendation of resources / AwARE: an Approach for Adaptive Recommendation of rEsources

Machado, Guilherme Medeiros January 2018 (has links)
Sistemas de recomendação foram propostos no início da década de 1990 com o objetivo de auxiliar seus usuários a lidar com a sobrecarga cognitiva criada com o advento da internet e o aumento constante de documentos. De lá para cá tais sistemas passaram a assumir vários outros papéis, tais como “auxiliar usuários a explorar”, “melhorar a tomada de decisão”, ou até mesmo “entreter”. Para atingir tais novos objetivos, o sistema necessita olhar para características do usuário que auxiliem no entendimento da tarefa desempenhada pelo usuário e como a recomendação pode auxiliar tal tarefa. Nesse sentido, propõe-se nessa tese uma integração entre estratégias de recomendação e de adaptação para criar um novo processo de recomendação adaptativa. É mostrado que tal integração pode melhorar a acurácia da recomendação, e dar bons resultados na retenção de usuários, e na interação destes com os sistemas. Para validar a abordagem, é implementado um protótipo para recomendação de filmes a serem utilizados em sala de aula. São também coletadas estatísticas de 78 usuários que participaram do experimento de avaliação da abordagem. / Recommender systems were proposed in early 90’s with the goal to help users deal with cognitive overload brought by the internet and the constant increase of documents. From there to now such systems have assumed many other roles like “help users to explore”, “improve decision making”, or even “entertain”. To accomplish such new goals, the system needs to look to user characteristics that help in understand what the user task is and how to adapt the recommendation to support such task. In this direction, it is proposed in this thesis an integration between recommender and adaptive strategies into a new process of adaptive recommendation. It is shown that such integration can improve recommendation accuracy and give good results to user retention, and interaction with the systems. To validate the approach, it is implemented a prototype to recommend movies to be used in a classroom. It is also collected some statistics about the 78 users who have participated of the experiment for evaluation of the new approach.
19

Transparent reconfigurable architecture for heterogeneous applications / Uma arquitetura reconfigurável transparente para aplicações heterogêneas

Beck Filho, Antonio Carlos Schneider January 2008 (has links)
Atualmente, pode-se observar que a Lei de Moore vem estagnando. A freqüência de operação já não cresce da mesma forma, e a potência consumida aumenta drasticamente em processadores de propósito geral. Ao mesmo tempo, sistemas embarcados vêm se tornando cada vez mais heterogêneos, caracterizados por uma grande quantidade de modelos computacionais diferentes, sendo executados em um mesmo dispositivo. Desta maneira, como novas tecnologias que irão substituir totalmente ou parcialmente o silício estão surgindo, novas soluções arquiteturais são necessárias. Apesar de sistemas reconfiguráveis já terem demonstrado serem candidatos em potencial para os problemas supracitados, ganhos significativos de desempenho são alcançados apenas em programas que manipulam dados massivamente, não representando a realidade dos sistemas atuais. Ademais, o seu uso em alta escala ainda está limitado à utilização de ferramentas ou compiladores que, claramente, não mantêm a compatibilidade de software e a reutilização do código binário já existente. Baseando-se nestes fatos, a presente tese propõe uma nova técnica para, utilizando um sistema reconfigurável, otimizar tanto programas orientados a dados como aqueles orientados a controle, sem a necessidade de modificação do código fonte ou binário. Para isto, um algoritmo de Tradução Binária, que trabalha em paralelo ao processador, foi desenvolvido. O mecanismo proposto é responsável pela transformação de seqüências de instruções, em tempo de execução, para serem executadas em uma unidade funcional reconfigurável de granularidade grossa, suportando execução especulativa. Desta maneira, é possível aproveitar as vantagens do uso da lógica combinacional para aumentar o desempenho e reduzir o gasto de energia, mantendo a compatibilidade binária em um processo totalmente transparente. Três diferentes estudos de caso foram feitos: os processadores Java e MIPS R3000 – representando o campo de sistemas embarcados – e o conjunto de ferramentas Simplescalar, que simula um processador superescalar baseado no MIPS R10000 – representando o mercado de processadores de propósito geral. / As Moore’s law is losing steam, one already sees the phenomenon of clock frequency reduction caused by the excessive power dissipation in general purpose processors. At the same time, embedded systems are getting more heterogeneous, characterized by a high diversity of computational models coexisting in a single device. Therefore, as innovative technologies that will completely or partially replace silicon are arising, new architectural alternatives are necessary. Although reconfigurable computing has already shown to be a potential solution for such problems, significant speedups are achieved just in very specific dataflow oriented software, not representing the reality of nowadays systems. Moreover, its wide spread use is still withheld by the need of special tools and compilers, which clearly preclude software portability and reuse of legacy code. Based on all these facts, this thesis presents a new technique using reconfigurable systems to optimize both control and dataflow oriented software without the need of any modification in the source or binary codes. For that, a Binary Translation algorithm has been developed, which works in parallel to the processor. The proposed mechanism is responsible for transforming sequences of instructions at runtime to be executed on a dynamic coarse-grain reconfigurable array, supporting speculative execution. This way, it is possible to take advantage of using pure combinational logic to speed up the execution, maintaining full binary compatibility in a totally transparent process. Three different case studies were evaluated: a Java Processor and a MIPS R3000 – representing the embedded systems field – and the Simplescalar Toolset, a widely used toolset that simulates a superscalar architecture based on the MIPS R10000 processor – representing the general-purpose market.
20

Risco : microprocessador RISC CMOS de 32 bits / Risco - a 32-bit CMOS RISC microprocessor

Junqueira, Alexandre Ambrozi January 1993 (has links)
Este trabalho apresenta o estudo, a definição e a simulação elétrica e lógica de um microprocessador CMOS de 32 bits, com arquitetura tipo RISC - o Risco. Dentre as principais características do Risco destacam-se: dados, instruções e endereços são palavras de 32 bits; a unidade de endereçamento é a palavra, permitindo um acesso a 4 Giga palavras (16 Gbytes); a comunição com a memória é feita por um barramento multiplexado de 32 bits para dados e endereços; possui 32 registradores de 32 bits, incluídos nestes o contador de programa, o apontador de pilha, a palavra de status do processador e um registrador constante zero; possui um pipeline de instruções de 3 estágios, atingindo no pico de execução uma instrução por ciclo de máquina; e as instruções de salto têm sua execução retardada de uma instrução. A Arquitetura de Computadores é analisada, em especial as Arquiteturas RISC (Reduced Instruction Set Computer - Processador com Conjunto de Instruções Reduzido) e CISC (Complex...), mostrando suas características e comparando-as. Algumas máquinas RISC importantes são vistas e o tema de Arquiteturas VLSI e suas implicações tecnológicas no projeto também é abordado. A arquitetura do Risco é descrita dando-se ênfase aos objetivos do projeto e construindo uma visão geral do processador. O tratamento de exceções é apresentado e o conjunto de instruções é analisado quanto ao formato, aos tipos e ao processamento no pipeline. A organização interna do Risco 6 tratada em detalhes, descrevendo-se a Parte Operativa (barramentos, o banco de registradores, a unidade de tratamento da constante, o contador de programa e incrementador associado, a unidade lógico-aritmética, a unidade de deslocamento/rotação) e a Parte de Controle to funcionamento do pipeline de instrug6es, a decodificação, o autômato de controle, a geração e a validação dos comandos). A simulação funcional do Risco, feita em HDC, também é reportada, incluindo o modelamento, os vetores de testa e os resultados. A implementação do Risco é discutida enfatizando-se alguns blocos críticos quanto A Área e ao desempenho. Os barramentos e o banco de registradores, a ULA e a unidade de deslocamento/rotação são estudados em detalhes pela sua importância no desempenho da maquina. Um teste chip contendo a maior parte dos blocos funcionais da parte operativa foi construído, tendo sido aprovado nos testes funcionais. Por fim, faz-se comentários sobre os resultados obtidos, os problemas encontrados e as etapas futuras no desenvolvimento do Risco, alem de serem expostas as conclusões finais. / This work presents the study, the definition, the electric and logic simulation, and the implementation of some blocks of a 32-bit CMOS microprocessor, with RISC architecture - the Risco. Among Risco's main characteristics it is highlighted that data, instructions and addresses are 32-bit words; the address unit is the word, allowing an access to 4-Giga words (16 GBytes); communication with memory is made through a data and address bus of 32 bits; it has 32 registers of 32 bits, including program counter, stack pointer, processor status word, and a zero constant register; it also has an instruction pipeline of three stages, fully capable of issuing one instruction at the execution peak per every machine cycle; and control flow instructions are implemnted as delayed branches. A study on computer architecture is carried out, and special attention is given to the RISC (Reduced Instruction Set Computer) and CISC (Complex...) architectures by means of making comparisons between them, showing their main characteristics and listing some important RISC machines. The VLSI architectures are also discussed, giving emphasis to their technological importance for the Risco's project. Risco's architecture is described, bringing into prominence the aims of the project and an overview of the processor. Exception handling is presented and the instruction set is analysed with regard to format, type and pipeline processing. Risco's internal organization is dealt with in detail, providing descriptions of the data path (buses, register bank, constant unit, program counter and associated incrementer, barrel shifter) and of the control part (operation of pipeline instruction, as well as decodification, control automaton, generation and validation of commands). Risco's functional simulation, through HDC, is mentioned, including modeling, test vectors, and results. Risco's implementation is also discussed giving emphasis to some critical blocks in regard to area and performance. Buses, register bank, arithmetic-logic unit, and barrel shifter are dealt with in detail because of their importance concerning the machine performance. A test-chip, containing most of the functional blocks of the data path, was made and successfully passed the functional tests. Finally, some comments are made with regard to results, main problems, and next stages in the development of Risco.

Page generated in 0.4559 seconds