A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

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

2 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

3 Motivação A Lei de Moore continua prevalecendo, com o número de transistores dobrando a cada 18 meses

4 Motivação Fonte: Intel

5 Motivação Fonte: Intel

6 Motivação Fonte: Intel

7 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

8 Fontes de consumo de energia Contribuição –Switching power (~ 70%-90%) –Leakage power (~ 5%-25%) –Short-circuit power (~ 5%)

9 Switching power –cargas e descargas das capacitâncias na saída do gate IN OUT V dd P N Gnd C L carga descarga Potência dinâmica total (aproximação) P dyn C L V dd 2 f = TR... C L V dd f Onde, TR = frequência do circuito = capacitância de carga = tensão de entrada = toggle rate (trans/s) Fontes de consumo de energia

10 Short-circuit Power –Ambos transistores estão conduzindo ao mesmo tempo –inútil IN OUT V dd P N Gnd C L Conecta Vdd a Gnd por um curto período Fontes de consumo de energia

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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 DQ

20 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

21 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 (???)

22 Máquinas de Estados Dois pontos de otimização –Lógica –Nos elementos de armazenamento

23 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?

24 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

25 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

26 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

27 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!

28 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

29 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

30 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

31 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

32 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

33 Recodificação Se uma seqüência de valores aparece sempre no barramento, procure recodificá- la para gastar menos energia


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google