Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar...

33
Redução do Consumo de Energia MO801/MC912

Transcript of Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar...

Page 1: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Redução do Consumo de Energia

MO801/MC912

Page 2: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Motivação

• Prolongar a duração de bateria

• Evitar problemas de aquecimento

• Minimizar tamanho de dissipador– Redução de área– Redução de peso

• Garantir usabilidade– Ex.: Sensação de teclado quente

Page 3: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Motivação

A Lei de Moore continua prevalecendo, com o númerode transistores dobrando a cada 18 meses

Page 4: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Motivação

Fonte: Intel

Page 5: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Motivação

Fonte: Intel

Page 6: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Motivação

Fonte: Intel

Page 7: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Como a energia é gasta?

• Consumo estático– Consumo quando o circuito está parado

• Corrente de fuga (leakage)

– Dependente de tecnologia– Não tem solução em alto nível

• Consumo dinâmico– C e V são dependentes da tecnologia– Os outros dois parâmetros são relacionados

com a implementação

fCVCD2

Page 8: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Fontes de consumo de energia

• Contribuição– Switching power (~ 70%-90%)– Leakage power (~ 5%-25%)– Short-circuit power (~ 5%)

Page 9: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

• Switching power– cargas e descargas das capacitâncias na saída do

gate

IN OUT

Vdd

P

N

Gnd

CL

carga

desc

arga

Potência dinâmica total (aproximação)

Pdyn CLVdd2f= TR. ..

CLVddf

Onde,

TR= frequência do circuito

= capacitância de carga= tensão de entrada

= toggle rate (trans/s)

Fontes de consumo de energia

Page 10: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

• Short-circuit Power– Ambos transistores estão conduzindo ao mesmo

tempo– “inútil”

IN OUT

Vdd

P

N

Gnd

CL

Conecta Vdd a Gndpor um curto período

Fontes de consumo de energia

Page 11: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Técnicas para redução do consumo de energia

• Uso de latches

• Instanciação direta de componentes

• Codificação explícita de estados

• Redução de glitches

• Clock gating

Page 12: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Uso de latches

• Úteis para evitar transições indesejadas• Podem gerar outros problemas

– Condições de corrida– Análise de temporização estática– Checagem de equivalência de circuitos

• Dois latches podem ser usados para gerar um flip-flop– O uso de latch tolera a existência de clock

skew

Page 13: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Instanciação direta de componentes

• Algumas bibliotecas de tecnologias fornecem componentes com consumo de energia menor– Tente utiliza-los sem gerar dependência de

tecnologia

Page 14: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Codificação explícita de estados

• Especificar os valores dos tipos enumerados– Cada ferramenta oferece uma forma de

especificar explicitamente a codificação– Também é possível escolher a codificação

globalmente

• Trocar tipos enumerados por constantes– Perda de legibilidade

Page 15: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Glitch

• Glitches são transições temporárias, oscilações– Ex.: A <= B xor C– Se B=0 e C=0 => A =0– Se B e C mudam para 1, A deveria ficar em 0– Mas B pode transitar primeiro que C e A ficar

com 1 por um intervalo pequeno

• Glitches podem se propagar pelo circuito

Page 16: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Como remover glitches

• Planejar as transições nas portas lógicas• Ajustar os valores dos estados das

máquinas de estado• Utilizar técnicas de pipeline

– Colocar registradores no meio do caminho

• Balancear o atraso em todos os componentes

• Usar equações na forma de soma de produtos

Page 17: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Como remover glitches

• Reestruturar a ordem dos blocos de um circuito– Pode reduzir a propagação dos glitches– Utilizar o sinal propenso a sofrer glitch no final

do período de clock

• Atenção: glitch não é eterno

Page 18: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Clock gating

• Técnica muito utilizada

• Suspender o clock numa parte do circuito– Reduz as transições

• Gera um novo sinal de clock baseado no anterior e num sinal de controle– Cuidado com clock skew

Page 19: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Como fazer clock gating?

• Colocar uma porta AND ou OR no clock com um sinal de controle– Pode gerar spikes (pulsos) extras no clock

• Utilizar um latch, habilitado pelo clock para guardar o sinal de Clock Enable antes de fazer um AND

• Manter os componentes próximos

Latch

clk

ctrl D Q

Page 20: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Quando fazer clock gating?

• Quando o ganho no consumo de energia for superior ao gasto extra

• Ao invés de fazer um clock por componente, agrupe-os e forneça um clock novo apenas

• Quebre módulos que possuam condições diferentes em sub-módulos para aplicar clock gating separadamente

Page 21: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Problemas com clock gating

• Temporização– As portas lógicas alteram a forma de onda do

clock, aumentando o tempo de subida e/ou descida

– Em geral, o uso de clock gating deveria afetar a árvofe de distribuição de clock

• Testabilidade– O uso de múltiplos domínios de clock dificulta

os testes– Sugestão: habilitar os clocks nos testes (???)

Page 22: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Máquinas de Estados

• Dois pontos de otimização– Lógica– Nos elementos de armazenamento

Page 23: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Clock gating para FSM

• Evitar recalcular o próximo estado quando as entradas da lógica forem iguais

• Exemplo: Máquina de estados que verifica se um contador estourou– Na maior parte do tempo, o contador estará

no intervalo válido– As entradas serão as mesmas– O estado interno será o mesmo– Por que ativar os FF nesse caso?

Page 24: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Codificação de estados

• Quando a máquina percorre vários estados seqüencialmente, procure utilizar código de gray– Dependente da máquina e do conhecimento do

projetista

• Codificação one-hot– Muito utilizada em FPGAs– Apenas um dos bits do estado está ativo por vez– Boa alternativa para até 10 estados

• Alterar a codificação modifica a lógica de saída– Use isso a seu favor

Page 25: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Particionamento de máquinas de estados

• Criar n máquinas de estados no lugar de uma

• Apenas uma máquina estará ativa a cada instante, as outras estarão num estado IDLE

• Somente a máquina ativa precisa de clock

Page 26: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Datapaths

• Muita energia é gasta fazendo computações desnecessárias

• 3 técnicas úteis– Pré-computar valores– Proteção de partes da lógica– Control-signal gating

Page 27: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Pré-computar valores

• Consiste em quebrar o circuito em duas partes– Pré-computar o valor da primeira parte– Usar o valor pré-computado para habilitar a segunda

parte

• Exemplo– Quebrar um comparador de magnitude em duas

partes: bits mais e menos significativos– Somente se os mais significativos forem iguais é que

os menos significativos serão comparados– Atenção para o atraso gerado!

Page 28: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Proteção de partes da lógica

• Colocar latches nas entradas e só habilita-los se as saídas realmente forem necessárias no circuito

• Exemplo– Colocar dois latches nas entradas de um

somador e só habilita-los quando a saída do somador for ser utilizada

Page 29: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Control-signal gating

• Similar a clock gating, só que para sinais de controle

• Somente habilitar sinais de controle que sejam relevantes para a operação– Uma transição num sinal de controle, em

geral, leva a várias transições no circuito de destino

– Manter os sinais de controle estáveis reduz o consumo de energia

Page 30: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Codificação de barramentos

• Barramentos gastam MUITA energia– Muitas transições => muita energia

• Existem codificações alternativas para os valores dos barramentos– Inversão dos sinais– Auto-incremento– Recodificação

Page 31: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Inversão dos sinais

• Consiste em incluir um sinal extra no barramento (INV)

• O próximo valor poderá ser enviado com todos os bits invertidos se assim gerar menos transições– Isso é indicado pelo sinal INV

• Serve para endereços e dados

Page 32: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Auto-incremento

• Incluir um novo sinal no barramento de endereços (INC)

• Se o próximo valor for exatamente o valor atual + 1, não alterar o barramento e ativar o sinal INC

• Existem variações com incrementos maiores que 1

Page 33: Redução do Consumo de Energia MO801/MC912. Motivação Prolongar a duração de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador –Redução.

Recodificação

• Se uma seqüência de valores aparece sempre no barramento, procure recodificá-la para gastar menos energia