Projeto e Implementação do Decodificador PBIW em Hardware. Felipe de Oliveira de Araújo Felipe Yonehara

Documentos relacionados
Code Compression for Embedded Systems

PBIW-SPARC: Uma Estratégia para Codificação de Instruções em Programas SPARC

Gerenciamento de memória

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. RISC versus CISC

Microarquiteturas Avançadas

Processamento de áudio em tempo real utilizando dispositivos não convencionais:

2. A influência do tamanho da palavra

Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW

Estendendo o Conjunto de Instruções de um PPC para Uso de Transformadas do H.264

A quantidade de informação existente no mundo é grande e cresce a uma taxa exponencial a cada ano. Aplicações como engenhos de busca web, por

Sistemas numéricos e a Representação Interna dos Dado no Computador

18/10/2010. Unidade de Controle Controle. UC Microprogramada

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Sistemas Embebidos I , Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos

TÉCNICAS DE CODIFICAÇÃO DE SINAIS

TRANSMISSÃO DE DADOS PROTEGIDOS POR CÓDIGOS CORRETORES DE ERRO

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 12: MEMÓRIA CACHE: FUNÇÃO DE MAPEAMENTO (PARTE 1)

Elementos Físicos do SC e a Classificação de Arquiteturas

Memória. Arquitetura de Computadores I. DCC-IM/UFRJ Prof. Gabriel P. Silva

EA075 Memória virtual

Unidade de Controle. UC - Introdução

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

2. A influência do tamanho da palavra

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW

SSC0112 Organização de Computadores Digitais I

Organização de Computadores

Computadores e Programação (DCC/UFRJ)

CONVERSORES AD/DA (ÁUDIO CODEC)

SSC546 -Avaliação de Desempenho de Sistemas

Célula, Palavra, Ciclo de Instruções e Lógica Temporizada

Arquitetura de Computadores - Controle Microprogramado. por Helcio Wagner da Silva

Organização e Arquitetura de Computadores I

Instruções de Máquina

Organização de Computadores μarquitetura. Na Aula Anterior... Introdução. Nesta Aula. MIPS-Monociclo. Formas de Organização 17/10/2016

EXERCÍCIOS DE PREPARAÇÃO PARA PROVA B2

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Organização de Computadores I

3/14/2012. Programação de Computadores O Computador. Memória Principal representação binária

Hierarquia de Memória

Conceitos Básicos de Programação

Pré-Processamento de Documentos

Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações. Medidas de desempenho


Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

Compactação de Dados Letícia Rodrigues Bueno

Sistemas Numéricos, Operações Lógicas e Tipos de Dados Tratados pelo Computador

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5. Cristina Boeres

Organização e Arquitetura de Computadores I

Projeto e Implementação de Decodificadores de Código em Plataformas FPGA

Organização de Sistemas de Computadores

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Conjunto de Instruções e Modelos de Arquiteturas

Unidade Central de Processamento UCP (CPU)

Conjunto de Instruções e Modelos de Arquiteturas

MICROPROCESSADORES E MICROCONTROLADORES. PROVA 1 - Solução da Versão 1

6 Inserção Seletiva de Nulos

Monitorando o Consumo Energético de Aplicações Concorrentes com Arduino

Infraestrutura de Hardware. Explorando Desempenho com a Hierarquia de Memória

DECODIFICADORES. Capítulo 5

Conceitos básicos sobre computadores (continuação)

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

Otimização de Execução em Processadores Modernos. William Stallings - Computer Organization and Architecture, Chapter 12 [Trad. E.Simões / F.

Arquiteturas RISC e CISC. Adão de Melo Neto

18/08/2015. Capítulo 2: Manipulação de dados. Arquitetura de Computadores. Capítulo 2: Manipulação de Dados

Análise e Técnicas de Algoritmos

ARQUITETURA DE COMPUTADORES

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

SSC510 Arquitetura de Computadores 1ª AULA

ELE32 Introdução a Comunicações Codificação de Canal. ITA 2º. Semestre de 2017

Notas de Aula Guilherme Sipahi Arquitetura de Computadores

Organização e Arquitetura de Computadores INTRODUÇÃO

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

COMPUTADOR. Adão de Melo Neto

Introdução à Organização de Computadores. Aula 8

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I

5 Testes em Imagens. Figura 5.1: Esquema de proteção com detecção de erros LT Hamming. Imagem. Cod-Hamming SPIHT. Cod-LT. Canal.

Memória Cache. Adriano J. Holanda. 12 e 16/5/2017

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.

Capítulo 5. Parte de Controle

FCA - Editora de Informática xv

Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre Máquina de Turing e Máquina Norma

Nivio Ziviani. Conjunto de transparências elaborado por Nivio Ziviani, Patrícia Correia e Fabiano C. Botelho

Sistemas de Numeração. Tiago Alves de Oliveira

PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações

Sistemas Operacionais I

COMPRESSÃO E CODIFICAÇÃO SEM PERDAS. Mauro Nogueira Mônica Festa Paulo Antiquera

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I. Qualificadores. prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno

Desempenho. Sistemas de Computação

O que é Arquitetura de Computadores?

Circuitos Sequenciais

Estudo sobre decodificação iterativa usando códigos de treliça

CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES

Arquitetura de Computadores Aula 10 - Processadores

Transcrição:

Projeto e Implementação do Decodificador PBIW em Hardware Felipe de Oliveira de Araújo Felipe Yonehara

A técnica de codificação PBIW A técnica PBIW ( Pattern Based Instruction Word) é composta por um algoritmo baseado em fatoração de operando e por um mecanismo decodificador. O mecanismo decodificador é composto por uma simples cache (P-cache) e um circuito de decodificação. O algoritmo fatora as operações de um programa em instruções (conjunto de operações) codificadas e padrões.

A técnica de codificação PBIW Os padrões fatorados são armazenados em uma cache que recebe o nome de P-cache (Pattern Cache). As instruções codificadas são armazenadas na memória de instruções. Podemos dizer que o principal objetivo da técnica é representar as instruções de forma bastante compacta em memória sem a necessidade de hardware complexo para recompor a instrução executável no interior do processador.

Motivação Diversas propostas foram desenvolvidas na tentativa de minimizar o problema de Memory Wall. Enquanto algumas propostas focaram em novos esquemas de codificação outras buscavam técnicas eficientes de compressão. Todas com um único objetivo: reduzir a quantidade de dados armazenados na memória principal.

Motivação Trabalhos vem mostrando ainda que é possível obter redução no tamanho do código e no consumo de energia através de uma compressão de código eficiente e um descompressor bastante simples. No entanto, boa parte das propostas que tentam reduzir os programas causam uma queda no desempenho do processador devido ao overhead da descompressão.

Motivação A técnica PBIW utiliza conceitos e técnicas da área de compressão de código, e utiliza um abordagem diferente. Podemos fazer um simples comparação entre as duas figuras a seguir que ilustram a diferença entre o Fluxo convencional de compressão e o Fluxo da Codificação PBIW.

(a) Fluxo convencional de compressão (b) Fluxo da codificação PBIW

Decodificador PBIW

Resultados Nessa primeira versão de nosso projeto objetivamos provar a funcionalidade, e que não houve um impacto significativo na área do processador para o uso da nossa técnica. Os experimentos que utilizamos foram dois programas carregados diretamente na memória de instrução (i_men.vhdl) antes da síntese.

Resultados O primeiro programa calcula o número 45 da seqüência de Fibonacci e o segundo programa calcula o Fatorial do número 10. Nos experimentos apresentados a seguir primeiramente buscamos provar a funcionalidade da técnica. Para assim investigar o impacto em termos estáticos ( tamanho total do código) e dinâmico ( tamanho do código executado) dos 2 programas sob estudo.

Funcionalidade Figura 6: Resultado da simulação do código do cálculo do número de Fibonacci 45.

Funcionalidade Figura 7: Resultado da simulação para o código do cálculo do fatorial do número 10

Avaliação do Desempenho da Técnica O esquema de codificação PBIW apresentado anteriormente propõe a redução no tamanho do programa em memória. Como após a decodificação da instrução PBIW, o número de bits total utilizado pela instrução codificada e seu respectivo padrão ( 96 + 64 = 160 bits) é maior do que o número de bits utilizado por instrução VEX (128 bits) equivalente, em alguns casos pode causar um aumento do tamanho do programa.

Avaliação do Desempenho da Técnica Porém o diferencial da técnica está no fato de que a instrução de 64 bits é duas vezes menor que a instrução VEX original e o reuso dos padrões grande o suficiente para reduzir o tamanho dos programas e, conseqüentemente, aumentar o desempenho do processador.

Avaliação do Desempenho da Técnica Os experimentos realizados nesta seção foram baseados na codificação dos programas do cálculo de Fibonacci e Fatorial. Foram realizados dois tipos de experimentos: Estático e Dinâmico.

Avaliação Estática Neste caso, duas medidas merecem destaque: Taxa de Reuso e Taxa de Compressão. A taxa de reuso indica a quantidade média de instruções codificadas que utilizam um mesmo padrão. O valor da Taxa de Reuso pode ser calculado de acordo com a seguinte Equação: Taxa de Reuso = Número de Instruções Codificadas Número de Padrões

Avaliação Estática O fator de redução informa de quanto foi a redução no tamanho do código do programa obtido com o uso da codificação PBIW. Deve-se observar que quanto maior o reuso e o fator de redução mais eficiente é a técnica de codificação. O valor da Taxa de Compressão pode ser calculado fazendo: Taxa de Compressão = 1 - α β α= tamanho do código codificado Β= tamanho do código não codificado

Programa Tamanho do código ρ-vex original ( Bytes) Avaliação Estática Tamanho do código ρ-vex+ Decodificador ( Bytes) Taxa de Compressão (%) Taxa de Reuso Fibonacci 64 168-162 1,13 Fatorial 240 332-38,3 2,3 Fibonacci + Fatorial 304 452-48,7 2,3 Tabela 1: Avaliação Estática dos programas implementados na memória de instrução

Avaliação Dinâmica Visa medir o impacto da técnica de codificação no desempenho do processador durante a execução. Neste experimento, considera-se que a latência de busca de bytes na memória é a mesma para ambas as implementações. Logo, um programa que busca menos bytes na memória vai gerar menor latência de busca de instrução.

Avaliação Dinâmica A diminuição da latência de busca de instrução implica num aumento de desempenho, uma vez que todas as operações possuem a mesma latência e, principalmente, o número de operações é o mesmo para ambos os programas.

Avaliação Dinâmica Programa ρ-vex (Bytes) ρ-vex + Decodificador (Bytes) Taxa de Compressão (%) Instruções VEX Fibonacci 1520 1400 8 94 175 Fatorial 448 360 20 28 45 Fibonacci + Fatorial 1952 1760 10 122 220 Instruções PBIW Tabela 2: Avaliação Dinâmica dos programas implementados na Memória de instrução.

Conclusão Este trabalho projetou e implementou um mecanismo de decodificação PBIW sobre o processador ρ-vex em hardware. Os resultados obtidos conseguiram demonstrar a factibilidade da implementação. E mesmo sem objetivarmos, conseguimos obter um aumento no desempenho do processador.

Conclusão Cabe ressaltar que com uma implementação otimizada da cache de padrões, com um codificador eficiente para a técnica além de uma revisão aprofundada das decisões de projeto poderíamos aumentar significativamente os resultados obtidos neste trabalho.

FIM Questões?