Você está na página 1de 68

Arquitetura VLIW com otimiza c ao do uso de mem oria

Hadley Magno da Costa Siqueira


Departamento de Inform atica e Matem atica Aplicada - DIMAp Universidade Federal do Rio Grande do Norte - UFRN

Junho 17, 2013

Introdu c ao

Roteiro

Introdu c ao

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Grande maioria dos sistemas computacionais existentes s ao sistemas embarcados Complexos: celulares, consoles, tablets etc Dom esticos: port ao autom atico, geladeira etc Cr ticos: carros, avi oes etc Possuem restri c oes que computadores normais n ao tem: tamanho, consumo de energia, mem oria utilizada entre outros

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

O que celulares, tablets, consoles e sistemas embarcados similares possuem em comum? Rodam v arios aplicativos Necessidade de um microprocessador para executar uma variada gama de aplicativos Hardware espec co como GPUs, por exemplo, podem ajudar a acelerar algumas atividades, mas n ao todas. Processadores precisam ser cada vez mais r apidos Mais velocidade, mais complexidade

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Como projetar sistemas embarcados complexos de forma r apida e eciente? FPGAs aparecem como bons candidatos ` a prototipagem Podem ser congurados para funcionar como v arios circuitos Trabalham com linguagens de descri c ao de hardware que permitem n veis mais abtratatos que portas l ogicas Funcionam similar ` a linguagens de programa c ao e compiladores Muito mais r apido modicar um texto do que refabricar um chip

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Como conectar um processador ao FPGA? Comprar algum FPGA com processador j a integrado: processadores hard-core Possuem boa performance Por serem processadores f sicos, n ao permitem grandes customiza c oes E se customiza c oes forem importantes? Por exemplo, inserir instru c oes especiais para fazer codica c ao de v deo

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Outra abordagem: usar o pr oprio FPGA congurado como processador Processadores desse tipo s ao denominados de soft-core Descritos em linguagem de hardware, mais f aceis de serem customizados do que processadores hard-core Que processador deve ser implementado?

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Processadores CISC: um dos primeiros a serem implementados na hist oria da computa c ao Surgiram em uma epoca onde a mem oria era cara e lenta e onde se programava bastante em assembly Evitar ao m aximo o uso da mem oria ao transferir o m aximo de opera c oes possiveis para dentro do processador; e oferecer o opera c oes de alto n vel tanto quanto poss vel Manter compatibilidade dos programas Complexidade proporcional ` a quantidade de opera c oes Processadores grandes

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

O tempo passou e as ferramentas de desenvolvimento e mem orias melhoraram Mem orias com maior capacidade, mais r apidas e mais baratas Software programado em linguagens de alto n vel Por que esperar pelo fabricante para colocar uma opera c ao no processador quando o pr oprio usu ario pode fazer a opera c ao em linguagem de alto n vel? Por que se preocupar em manter compatibilidade ` a n vel de assembly quando basta recompilar o c odigo para a nova arquitetura?

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Fazer um bom compilador e uma tarefa dif cil Como suportar tantos modelos de processadores com opera c oes diferentes? Uso de conjunto de opera c oes comuns entre os processadores: adi c oes, subtra c oes etc O compilador aliado ` a mem orias melhores e ` a facilidade de recompilar o c odigo para novas arquiteturas levou ao surgimento das arquiteturas RISC

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Arquiteturas RISC descartaram a grande quantidade de instru c oes presentes em arquiteturas CISC: hardware bem simplicado Hardware mais simples usa menos area em chip e e mais f acil de ser melhorado e otimizado (pipeline). Mais espa co em livre chip, mais oportunidade de usar para outras possibilidades: caches. Resultado: arquitetura eciente Na epoca, processadores RISC conseguiam emular processadores CISC e emula c ao era mais r apida do que os processadores CISC originais.

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Arquiteturas RISC chegaram ao seu limite: limita c oes f sicas Diculdade em obter transistores menores e mais pr oximos Diculdade em aumentar a frequ encia de opera c ao Como obter mais desempenho? Utilizar paralelismo existente nos programas

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Algumas instru c oes nos programas podem ser executadas em paralelo Aproveitar o espa co livre e utilizar mais unidades funcionais Quanto mais unidades funcionais, mais opera c oes podem ser executadas em paralelo As unidades funcionais por si s o n ao oferecem paralelismo Al em de ser capaz de executar as opera c oes em paralelo, e necess ario descobrir quais opera c oes podem ser executadas em paralelo

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Uma abordagem para descobrir o paralelismo e utilizando hardware dedicado Arquiteturas que fazem uso da replica c ao de unidades funcionais e que descobrem o paralelismo usando hardware s ao denominadas arquiteturas superescalares. Apresentam alta taxa de desempenho Esse desempenho n ao vem de gra ca Arquiteturas superescalares t ao ou mais complexas do que processadores CISC

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Como colocar uma arquitetura superescalar em um sistema embarcado com tantas restri c oes? E poss vel fazer uso do paralelismo presente nos programas sem ter um hardware complexo? Abordagem usando software

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Arquiteturas VLIW delegam a responsabilidade de encontrar o paralelismo ao compilador O compilador monta as instru c oes e j a entrega tudo pronto para a m aquina VLIW Dessa forma, processadores VLIW s ao bem mais simples que processadores superescalares Controle mais simples, aus encia de circuito de verica c ao de paralelismo etc

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Arquiteturas VLIW: ideia proposta por Joseph Fisher Vantagens: hardware simples e eciente etc Desvantagens: baixa densidade de c odigo, incompatibilidade de c odigo etc Possui hardware simples que e atrativo para sistemas embarcados, mas possui baixa densidade de c odigo. Como resolver?

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Diminuir tamanho dos execut aveis Fazer o compilador gerar c odigo menor
trechos repetidos se tornam fun c oes

Utilizar conjunto de instru c oes de tamanhos variados


Estrat egia utilizada pela ARM e MIPS (Thumb e MIPS16)

Realizar compress ao do execut avel


Algoritmo estat sticos: Human ou codica c ao aritm etica Uso de dicion arios

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Processador VLIW soft-core com otimiza c ao no uso de mem oria Instru c oes de tamanho vari avel similar ` a Thumb e MIPS16 Manter hardware simples sem perder eci encia

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Sistemas embarcados

Executa at e duas opera c oes em paralelo 32 registradores de prop osito geral Execu c ao condicional Predi c ao de salto Adiantamento Instru c oes de tamanho variado

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Instru c oes comportam at e duas opera c oes Exemplos de opera c oes: adi c ao, subtra c ao, compara c oes, acessos ` a mem oria etc Opera c oes com tamanhos de 30 ou 14 bits Consequentemente, instru c oes passam a ter tamanho variado (n ao h a uso de padding)

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Opera c oes de 30 bits divididas em 4 tipos Opera c oes do tipo I realizam, em geral, opera c oes entre registradores Opera c oes do tipo II realiza opera c oes entre um registrador e uma constante Opera c oes do tipo III e IV lidam, respectivamente, com instru c oes de salto condicional e incondicional

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Opera c oes de 14 bits s ao vers oes de opera c oes 30 bits reduzidas Operandos implicitos e/ou redu c ao de bits na codica c ao dos operandos. Codicam um subconjunto das opera c oes de 30 bits Exemplos: saltos condicionais, loads e stores em chamadas de fun c oes etc

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Pipeline possui 7 est agios Dois desses est agios foram adicionados por quest oes de desempenho
Busca Expans ao Decodica c ao I Decodica c ao II Execu c ao e acesso ` a mem oria I Execu c ao e acesso ` a mem oria II Escrita

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Est agio de busca acessa a mem oria de instru c oes, buscando sempre 64 bits da mem oria O endere co a ser acessado e armazenado no registrador contador de programa (PC) Mem oria de instru c oes entrega os dados com um atraso de um ciclo de rel ogio PC n ao pode ser incrementado de uma constante xa porque as intru c oes possuem tamanho vari avel Constante a ser adicionada depende do tamanho da instru c ao Como calcular o pr oximo valor do PC no ciclo atual, se a instru c ao s o estar a pronta no ciclo seguinte?

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Primeira instru c ao de blocos b asicos possuem tamanho xo Auxiliado pelo assembler, cada instru c ao passa a armazenar o tamanho da instru c ao seguinte considerando um uxo de execu c ao sequencial Primeira instru c ao possui tamanho conhecido a priori, logo e poss vel calcular o pr oximo PC sem ter a instru c ao No ciclo seguinte, a instru c ao j a cont em o tamanho da sua sucessora e assim por diante

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

O est agio de expans ao e respons avel por transformar eventuais opera c oes de 14 bits em opera c oes de 30 bits Verica o tamanho da instru c ao e ent ao multiplexa as opera c oes corretas Remove dos est agios seguintes a necessidade de vericar a possibilidade ou n ao de execu c ao paralela

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es


No est agio de decodica c ao I e onde os sinais de controle s ao gerados e os valores dos registradores lidos Necess ario construir um banco de registradores ecaz Duas abordagens: utilizando registradores ou utilizando block rams As duas foram testadas

Tabela: Compara c ao entre os bancos de registradores


Banco Usando registradores Usando block ram Frequencia 167 MHz 250 Mhz Area 1638 EL 704 EL Bits de mem oria 0 (%0) 8192 (%1)

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

FPGAs atuais com block rams com no m aximo duas portas de leitura/escrita Necess ario replica c ao Replica c ao n ao resolve o problema das portas de escrita Manter hist orico de qual block ram possui o dado mais atualizado

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Uso de block rams na constru c ao do banco de registradores apresenta um novo problema Dados entregues no ciclo seguinte Mas os sinais de controle s ao gerados no ciclo atual Ligar a sa da do banco de registradores diretamente em outros circuitos pode criar caminhos cr ticos longos

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

A solu c ao usada foi adicionar um est agio denominado de decodica c ao II Manter desempenho e sincronizar os dados N ao realiza nenhuma computa c ao importante

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

O est agio de execu c ao e acesso ` a mem oria I e onde s ao feitas as opera c oes l ogico-aritm eticas e onde ocorre o acesso ` a mem oria de dados Diferente de outras arquiteturas que realizam o acesso ` a mem oria de dados em est agios mais avan cados do pipeline Mem oria de dados implementada com block rams Principal motivo para acessar a mem oria de dados neste est agio: minimizar o custo da entrega dos dados atrasados de um ciclo.

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Possui duas ULA-deslocadores Deslocadores implementados como barrel shifters a m de realizar deslocamentos em um ciclo de rel ogio Deslocamento seguido de uma poss vel adi c ao Permite c alculo de endere cos efetivos de forma mais ecaz ao realizar deslocamento e adi c ao em um u nico ciclo endere co = (i col tamanho) + j c = (a immd) + b

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Registradores de predicado nesse est agio Cont em quatro registradores de predicado Usados para obter execu c ao condicional Opera c ao carrega o endere co do registrador de predicado e um valor teste Opera c ao s o e executada se o valor teste for igual ao valor do registrador de predicado especicado pelo endere co Uma opera c ao e impedida de ser executada ao impedir a mesma de atualizar o estado do processador Desabilita c ao dos sinais de controle

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Da mesma forma que no est agio de decodica c ao, foi inserido um est agio adicional para manter desempenho Novamente por causa do atraso na entrega de dados por parte das block ram Est agio denominado de execu c ao e acesso ` a mem oria II Apenas repassa os dados realizando poucas computa c oes

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Ou ltimo est agio e o est agio de escrita Seleciona entre o dado lido da mem oria ou o resultado de uma opera c ao l ogico-aritm etica Envia os valores para o banco de registradores

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

A arquitetura proposta possui suporte ` a predi c ao de salto Predi c ao de salto consiste em prever se um salto deve ou n ao ser tomado Predi c ao de salto para opera c oes de salto condicional e incondicional Previs ao pode ser feita em software ou hardware Aqui usamos predi c ao feita em software. O compilador insere dicas nas opera c oes a m de informar ao hardware se o salto deve ou n ao ser tomado Opera c oes de salto que usem valores de registradores como endere co de destino n ao s ao tratadas pela predi c ao de salto

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Est agios modicados para suportar predi c ao de salto Principais est agios alterados foram o est agio de busca e o de expans ao Demais est agios sofreram modica c oes a m de repassar os dados para os demais est agios No est agio de busca foram adicionados multiplexadores para selecionar entre os diversos endere cos de saltos poss veis Est agio de expans ao modicado para detectar se e uma opera c ao de salto

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Em opera c oes de salto condicional verica-se o bit de predi c ao a m de saber se o salto e tomado ou n ao Opera c oes de salto incondicional sempre saltam A verica c ao do bit de predi c ao bem como a tomada do salto s ao realizados no est agio de expans ao

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

No est agio de decodica c ao I, opera c oes de salto que salvam o endere co de retorno s ao implementadas, internamente, como uma opera c ao de soma Valor do antigo PC e salvo no banco de registradores e o novo valor enviado para o est agio de busca. Isso ocorre no est agio de execu c ao e acesso ` a mem oria I

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Adiantamento implementado para quase todos as combina c oes de opera c oes poss veis N ao e poss vel opera c oes de load seguidas de opera c oes que fazem uso do resultado do load Necess ario inserir NOPs via software

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Arquitetura proposta - Conjunto de instru co es

Inseridos multiplexadores no est agio de execu c ao Prioridade na ordem dos adiantamentos

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Ferramentas de desenvolvimento

Assembler e simulador implementados (C++) para desenvolvimento de algoritmos O mais simples poss vel: n ao exibe erros Bin ario gerado e um arquivo .txt f acil de ser lido tanto pelo simulador quanto por simula c oes em VHDL

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Ferramentas de desenvolvimento

Opera c oes agrupadas com ;; Coment arios usando # Declara c ao de vari aveis inteiras ou strings

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Ferramentas de desenvolvimento
loop: (p1) add $r1, $r2, $r0 shadd $r20, $r20, $r0 SLL 12 ;; add $r7, $r7, $r7 addi $r8, $r9, 72 ;; cmpeq $p1, $r1, $r2 ;; (!p1) jr $r31 andp $p2, $p2, $p3 ;; (!p2) jc loop ;; .qtd dw 20 .versao ascii "v1.0" # fim do exemplo
Hadley Magno Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Experimentos e resultados

Arquitetura sintetizada para placa DE0 da Altera

Tabela: Resultados de s ntese

Area ocupada 4701 EL (26%)

Frequ encia de opera c ao 74.47 MHz

Mem oria utilizada 8192 bits

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Experimentos e resultados
Compara c ao com o processador -VEX Arquitetura VLIW multiciclo com suporte ` a instru c oes recongur aveis Execu c ao do algoritmo Fibonacci: achar o 45o elemento da sequ encia

Tabela: Quantidades de ciclos gasto pelo -VEX

Qtd. opera c oes em paralelo 1 opera c ao 2 opera c oes 4 opera c oes 4 opera c oes com opera c oes recongur aveis
Hadley Magno

Ciclos gastos 1906 1080 537 141

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Experimentos e resultados

Mesmo algoritmo executado na arquitetura proposta Primeira execu c ao com os saltos preditos de forma errada Segunda execu c ao considerando saltos preditos corretamente

Tabela: Quantidade de ciclos gasta pela arquitetura proposta

Acerto na predi c ao 281 ciclos

Erro na predi c ao 408 ciclos

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Experimentos e resultados

Taxa de compress ao de 82% para o algoritmo de Fibonacci implementado C odigo comparado com o de uma arquitetura VLIW imagin aria
Opera c oes de 32 bits, sempre Codica c ao explicita de NOPs

Pode-se obter melhores resultados de compress ao utilizando mais opera c oes de 14 bits em troca obtendo um desempenho inferior

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Introdu c ao

Trabalhos futuros

Melhorias na arquitetura e no c odigo Realizar estudo mais detalhado das opera c oes Suportar interrup c oes, sistemas operacionais etc Compiladores, assemblers etc Combinar com outras t ecnicas de compress ao de c odigo

Hadley Magno

Arquitetura VLIW com otimiza c ao do uso de mem oria

Obrigado pela aten c ao Perguntas?