You are on page 1of 33

Reduo do Consumo de Energia

MO801/MC912

Motivao
Prolongar a durao de bateria Evitar problemas de aquecimento Minimizar tamanho de dissipador
Reduo de rea Reduo de peso

Garantir usabilidade
Ex.: Sensao de teclado quente

Motivao
A Lei de Moore continua prevalecendo, com o nmero de transistores dobrando a cada 18 meses

Motivao

Fonte: Intel

Motivao

Fonte: Intel

Motivao

Fonte: Intel

Como a energia gasta?


Consumo esttico
Consumo quando o circuito est parado
Corrente de fuga (leakage)

Dependente de tecnologia No tem soluo em alto nvel

Consumo dinmico

C e V so dependentes da tecnologia Os outros dois parmetros so relacionados com a implementao

C D CV f
2

Fontes de consumo de energia


Contribuio
Switching power (~ 70%-90%) Leakage power (~ 5%-25%) Short-circuit power (~ 5%)

Fontes de consumo de energia


Switching power
cargas e descargas das capacitncias na sada do gate
Vdd
Potncia dinmica total (aproximao)
carga

P IN N

P Vdd.f .TR dyn = C L .


OUT
Onde,

CL Gnd

CL = capacitncia de carga Vdd = tenso de entrada f = frequncia do circuito TR = toggle rate (trans/s)

Fontes de consumo de energia


Short-circuit Power
Ambos transistores esto conduzindo ao mesmo tempo Vdd Conecta Vdd a Gnd intil por um curto perodo
P

IN
N

OUT

CL

Gnd

Tcnicas para reduo do consumo de energia


Uso de latches Instanciao direta de componentes Codificao explcita de estados Reduo de glitches Clock gating

Uso de latches
teis para evitar transies indesejadas Podem gerar outros problemas
Condies de corrida Anlise de temporizao esttica Checagem de equivalncia de circuitos

Dois latches podem ser usados para gerar um flip-flop


O uso de latch tolera a existncia de clock skew

Instanciao direta de componentes


Algumas bibliotecas de tecnologias fornecem componentes com consumo de energia menor
Tente utiliza-los sem gerar dependncia de tecnologia

Codificao explcita de estados


Especificar os valores dos tipos enumerados
Cada ferramenta oferece uma forma de especificar explicitamente a codificao Tambm possvel escolher a codificao globalmente

Trocar tipos enumerados por constantes


Perda de legibilidade

Glitch
Glitches so transies temporrias, oscilaes
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

Como remover glitches


Planejar as transies nas portas lgicas Ajustar os valores dos estados das mquinas de estado Utilizar tcnicas de pipeline
Colocar registradores no meio do caminho

Balancear o atraso em todos os componentes Usar equaes na forma de soma de produtos

Como remover glitches


Reestruturar a ordem dos blocos de um circuito
Pode reduzir a propagao dos glitches Utilizar o sinal propenso a sofrer glitch no final do perodo de clock

Ateno: glitch no eterno

Clock gating
Tcnica muito utilizada Suspender o clock numa parte do circuito
Reduz as transies

Gera um novo sinal de clock baseado no anterior e num sinal de controle


Cuidado com clock skew

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 prximos
ctrl D Q Latch

clk

Quando fazer clock gating?


Quando o ganho no consumo de energia for superior ao gasto extra Ao invs de fazer um clock por componente, agrupe-os e fornea um clock novo apenas Quebre mdulos que possuam condies diferentes em sub-mdulos para aplicar clock gating separadamente

Problemas com clock gating


Temporizao
As portas lgicas 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 distribuio de clock

Testabilidade
O uso de mltiplos domnios de clock dificulta os testes Sugesto: habilitar os clocks nos testes (???)

Mquinas de Estados
Dois pontos de otimizao
Lgica Nos elementos de armazenamento

Clock gating para FSM


Evitar recalcular o prximo estado quando as entradas da lgica forem iguais Exemplo: Mquina de estados que verifica se um contador estourou
Na maior parte do tempo, o contador estar no intervalo vlido As entradas sero as mesmas O estado interno ser o mesmo Por que ativar os FF nesse caso?

Codificao de estados
Quando a mquina percorre vrios estados seqencialmente, procure utilizar cdigo de gray
Dependente da mquina e do conhecimento do projetista

Codificao one-hot
Muito utilizada em FPGAs Apenas um dos bits do estado est ativo por vez Boa alternativa para at 10 estados

Alterar a codificao modifica a lgica de sada


Use isso a seu favor

Particionamento de mquinas de estados


Criar n mquinas de estados no lugar de uma Apenas uma mquina estar ativa a cada instante, as outras estaro num estado IDLE Somente a mquina ativa precisa de clock

Datapaths
Muita energia gasta fazendo computaes desnecessrias 3 tcnicas teis
Pr-computar valores Proteo de partes da lgica Control-signal gating

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 sero comparados Ateno para o atraso gerado!

Proteo de partes da lgica


Colocar latches nas entradas e s habilitalos se as sadas realmente forem necessrias no circuito Exemplo
Colocar dois latches nas entradas de um somador e s habilita-los quando a sada do somador for ser utilizada

Control-signal gating
Similar a clock gating, s que para sinais de controle Somente habilitar sinais de controle que sejam relevantes para a operao
Uma transio num sinal de controle, em geral, leva a vrias transies no circuito de destino Manter os sinais de controle estveis reduz o consumo de energia

Codificao de barramentos
Barramentos gastam MUITA energia
Muitas transies => muita energia

Existem codificaes alternativas para os valores dos barramentos


Inverso dos sinais Auto-incremento Recodificao

Inverso dos sinais


Consiste em incluir um sinal extra no barramento (INV) O prximo valor poder ser enviado com todos os bits invertidos se assim gerar menos transies
Isso indicado pelo sinal INV

Serve para endereos e dados

Auto-incremento
Incluir um novo sinal no barramento de endereos (INC) Se o prximo valor for exatamente o valor atual + 1, no alterar o barramento e ativar o sinal INC Existem variaes com incrementos maiores que 1

Recodificao
Se uma seqncia de valores aparece sempre no barramento, procure recodificla para gastar menos energia

You might also like