Redução do Consumo de Energia

Slides:



Advertisements
Apresentações semelhantes
Flip-Flops e Dispositivos Correlatos
Advertisements

Contadores e Registradores
Aula 3 – Transmissão Digital
Conceitos de Programação Paralela
Organização de Computadores I
MATRIZES DE PORTAS PROGRAMÁVEIS NO CAMPO (FPGA)
Sistemas Digitais Projeto RTL – Unidade de Controle
Os inversores são circuitos estáticos (não tem partes móveis) que convertem potência DC em potência AC com frequência e tensão ou corrente de saída desejada.
Comportamento de um transistor MOS - NMOS
Interruptor Eletrônico Controlado por Som
Arquitetura e organização de computadores
Barramentos Introdução.
Entrada e Saída Introdução.
Técnicas para operações E/S
GERADOR SÍNCRONO Geradores síncronos ou alternadores são máquinas síncronas usadas para converter potência mecânica em potência elétrica ASPECTOS CONSTRUTIVOS.
Sistemas Digitais Projeto RTL – Unidade de Execução
Unidades de Execução e de Controle Sistemas Digitais.
MC542 Organização de Computadores Teoria e Prática
Dicas de Circuitos MO801/MC912.
VHDL (outros tópicos) MO801/MC912.
MEMORIAS RAUL DIAZ ROSAS.
Revisão de Circuitos Lógicos MO801/MC912. Conteúdo Níveis lógicos Portas lógicas Formas de onda Sinais básicos Elementos de armazenamento Registradores.
Professor: Carlos Roberto da Silva Filho, M. Eng.
Contadores Digitais.
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
O FLIP-FLOP Os latches e os flips-flops são os blocos elementares com os quais se constrói a maior parte dos circuitos sequenciais. Um flip-flop é um dispositivo.
O FLIP-FLOP As latches e os flips-flops são os blocos elementares com os quais se constrói a maior parte dos circuitos sequenciais. Um flip-flop é um dispositivo.
1. Circuitos seqüenciais - conceito 2. Flip-flops 3. Registradores 4
Interfaces de entrada e saída discreta
Arquitetura de Computadores
Cálculo da Freqüência de Operação do Relógio
Técnica de modelagem de Máquina de Estados em VHDL
REDUNDÂNCIA POR SOFTWARE
UTFPR – Prof. Carlos Raimundo Erig Lima. Smart compilation – permite que o Quartus II não execute etapas desnecessárias da compilação. Incremental.
Índice SUMÁRIO Introdução ao projeto de lógica seqüencial.
Engenharia de Software para Computação Embarcada
Circuitos Seqüenciais
Fundamentos de Telecomunicações
Organização de Computadores
Lógica Seqüêncial Bruno Silvério Costa.
Aula 8 By: Abraham Ortega Paredes
ENGA78 – Síntese de Circuitos Digitais
Verificação Baseada em Simulação MO801/MC912. Ambiente Completo Testbench –Todo código utilizado para criar, observar e verificar características do circuito.
Unidade Central De Processamento: Processador
ARQUITETURA DE COMPUTADORES II
Medidor de distância Ultra-Sônico
Experimentação Algorítmica
UNIDADE LÓGICA ARITMÉTICA (ULA)
Circuitos Sequenciais
Circuitos Integrados Digitais ELT017
Aplicações com flip-flops
Hardware Description Language Aula 9 –Verilog HDL Prof. Afonso Ferreira Miguel, MSc.
Circuitos Integrados Digitais ELT017
UNIDADE LÓGICA ARITMÉTICA (ULA)
Circuitos Integrados Digitais ELT017
Circuitos Integrados Digitais ELT017. DECODIFICADORES DE ENDEREÇO Aula 9 2ELT017 - Circuitos Integrados Digitais.
Germano Maioli Penello
Eletrônica Digital II ELT013
FLIP-FLOPs.
Germano Maioli Penello
1 Eletrônica II Germano Maioli Penello Aula 06 II _ html.
11 Microeletrônica Germano Maioli Penello Sala 5145 (sala 17 do laboratorio de engenharia.
Germano Maioli Penello
Sistemas Digitais Aula 10 GRECO-CIN-UFPE.
LATCHES e FLIP-FLOPs Aula 9 GRECO-CIN-UFPE Como implementar uma célula de memória? Latches e Flip-Flops r n-1 r n-2 r n-3 r n-4 r 0 célula { 0,1} = 1.
Latches e Flip-Flops (2/2)
Lei de Moore O número de transistores num circuito integrado duplica todos os 18 meses. Isto é extremamente relevante porque... as gates são feitas a partir.
CONVERSORES DE SINAL.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Circuitos Sequenciais: Latch e Flip-Flop
Transcrição da apresentação:

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 de área Redução de peso Garantir usabilidade Ex.: Sensação de teclado quente

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

Motivação Fonte: Intel

Motivação Fonte: Intel

Motivação Fonte: Intel

Como a energia é gasta? Consumo estático Consumo dinâmico 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

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

Fontes de consumo de energia Switching power cargas e descargas das capacitâncias na saída do gate IN OUT V dd P N Gnd C L Potência dinâmica total (aproximação) P dyn C L V dd 2 f = TR . carga C L V dd f Onde, TR = frequência do circuito = capacitância de carga = tensão de entrada = toggle rate (trans/s) descarga O chaveamento ocorre da seguinte maneira: digamos que neste gate IN esteja inicialmente em “0”. Então o transistor de baixo (tipo N) está desligado, e o de cima (tipo P) está ligado, ou seja está conduzindo, desta forma a capacitância CL em OUT é carregada. Agora digamos que IN mude para “1”. Desta forma o transistor P pára de conduzir, ele fecha, e o transitor tipo N (ligado ao terra) começa a conduzir. Desta forma a capacitância CL de OUT é descarregada para Gnd. E é desta forma que o circuito consome potência, basicamente. E a fórmula básica para uma aproximação no consumo de potência dinâmica é a seguinte.

Fontes de consumo de energia 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 Tudo bem, mas um pequeno problema ocorre ao circuito chavear: o processo não é instantâneo, IN tem um tempo para transicionar Entre “0” e “1”. E neste meio tempo, até IN chavear completamente, há um pequeno tempo no qual ambos os transistores estão conduzindo, Ocorrendo uma ligação direta entre Vdd e Gnd. E isso consome potência, e é chamado de curto-circuito.

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

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

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

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

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

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

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

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

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

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

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

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

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?

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

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

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

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!

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

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

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

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

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

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