dynamic voltage scaling - ulisboa · 3.3.3 diagrama de estados ... ism internal supply module...
TRANSCRIPT
Dynamic Voltage Scaling
(Optimização da Tensão de Alimentação)
Pedro Luís Neves
Dissertação para obtenção do Grau de Mestre em Engenharia Electrotécnica e de Computadores
Júri Presidente: Doutor Nuno Cavaco Gomes Horta Orientador: Doutor Marcelino Bicho dos Santos Vogais: Doutor Jorge Filipe Leal Costa Semião
Outubro de 2012
“The only limits we have are the limits we believe.”
(Os únicos limites que temos são aqueles em que acreditamos.)
Dr. Wayne W. Dyer
i
Agradecimentos
Estudar no IST tem sido uma experiência muito gratificante.
Para além do meu reconhecimento a todos os que deforma directa ou indirecta contribuíram
para o meu percurso académico e para a minha felicidade, gostaria de agradecer em particular:
Aos meus pais por toda a dedicação e amor que sempre demonstraram, mas também todos os
sacrifícios realizados para que eu pudesse concluir os meus estudos.
Aos restantes elementos da minha família, irmã, padrinhos, tios, primos e avós, os bons
momentos proporcionados, com um especial obrigado ao tio Henrique que de um modo muito próprio
deu o seu contributo para a minha formação pessoal.
Ao grande amigo Nuno Órfão por estar sempre presente nos bons e maus momentos.
Aos companheiros e amigos de faculdade agradeço o companheirismo e entreajuda.
Aos colegas de laboratório Tiago Moita e Ruben Cabral, os ensinamentos, a ajuda, a amizade e
a boa disposição demonstradas durante o tempo em que trabalhamos juntos.
Ao professor Jorge Semião e ao Bruno Jacinto, a disponibilidade para discussões sobre os
assuntos abordados neste trabalho.
Ao professor Marcelino Bicho dos Santos, a oportunidade e as condições de excelência que me
proporcionou para a realização deste trabalho.
A toda a equipa da SILICONGATE LDA pelo acolhimento excepcional e em especial ao
Floriberto Lima pelos bons ensinamentos e prontidão para fornecer as melhores condições para a
realização deste trabalhar.
Por fim um pedido de desculpa às pessoas a quem prestei menos atenção devido às obrigações
académicas, em especial ao afilhado João Pedro pela impossibilidade de aproveitar o pouco tempo
disponível para estar com ele.
iii
Resumo
Nesta dissertação é apresentada uma nova metodologia que permite melhorar a eficiência dos
circuitos digitais em microelectrónica, sem comprometer o desempenho e fiabilidade do sistema.
Actualmente a estratégia da indústria reside em fixar a tensão de alimentação num patamar
suficientemente alto que garanta o funcionamento do circuito para quaisquer variações no processo
de fabrico, temperatura e envelhecimento (PVTA – Process+Voltage+Temperature+Aging). No
entanto esta abordagem traduz-se num elevado dispêndio de energia uma vez que por norma os
circuitos não funcionam nas piores condições. Contudo, contornar a abordagem actual não é um
problema trivial. É necessário que o sistema consiga adaptar-se às diferentes condições sem
comprometer o desempenho e a fiabilidade. Com o objectivo de obter a eficiência máxima, foi
desenvolvido um sensor que permite monitorizar a degradação no desempenho dos circuitos por
forma a ajustar a tensão de alimentação às suas necessidades. Para comprovar o seu
funcionamento foi criado um demonstrador em FPGA contendo um multiplicador com autoteste (BIST
– Built-In Self-Test), onde foi aplicado o sensor desenvolvido a fim de demonstrar a sua operação
sem erros e com um consumo de energia optimizado.
Palavras Chave
Sensor PVTA, FPGA, Prototipagem, Gestão de Energia em Microelectrónica
v
Abstract
The present work reports a new methodology to improve the power efficiency of microelectronics
digital cores, without compromising their performance or reliability. Nowadays, the industry most
common strategy to support variations of the circuit fabrication Process, power supply Voltage,
Temperature and Aging (PVTA) is based on imposing a custom voltage high enough to ensure the
correct operation of the circuit in a worst case scenario. However, this approach leads to a
considerable waste of energy since most of the time circuits do not operate under worst case
conditions.
Nevertheless, the solution for this problem is not trivial since it is mandatory to develop a
methodology were the system is able to adapt itself to different conditions but without compromising
its performance or reliability.
In this context, a new methodology is here proposed that aims to guarantee maximum efficiency
through the use of a sensor that monitors the performance degradation of circuits in order to adjust its
power supply voltage, guaranteeing the best power consumption but without compromising its
performance or reliability. To demonstrate the sensor operation, a prototype circuit was developed
and implemented in a FPGA. The developed prototype includes a multiplier, and corresponding self-
-test (BIST), to which the developed sensor was applied in order to ensure its operation without
errors, guaranteeing at the same time minimal power consumption.
Keywords
PVTA Sensor, FPGA, Prototyping, Power Management for Microelectronics
vii
Conteúdo Agradecimentos ....................................................................................................................................... i
Resumo .................................................................................................................................................. iii
Abstract ................................................................................................................................................... v
Conteúdo ............................................................................................................................................... vii
Lista de Figuras ...................................................................................................................................... ix
Lista de Tabelas ..................................................................................................................................... xi
Lista de Acrónimos ................................................................................................................................ xiii
Introdução ....................................................................................................................................... 1
1.1 Motivação ................................................................................................................................ 2
1.2 Principais Contribuições .......................................................................................................... 4
1.3 Objectivos ................................................................................................................................ 5
1.4 Organização da Dissertação ................................................................................................... 5
Análise e Previsão do Envelhecimento ........................................................................................... 7
2.1 Envelhecimento e Efeito NBTI ................................................................................................ 8
2.2 Ring Oscillator Sensor (IBM®) ................................................................................................. 9
2.3 Sensor de envelhecimento da Sun Microsystems® .............................................................. 10
Sensor Global................................................................................................................................ 11
3.1 Introdução ............................................................................................................................. 12
3.2 Sensor PVTA......................................................................................................................... 13
3.2.1 Modo de Envelhecimento .................................................................................................. 14
3.2.2 Modo de Teste .................................................................................................................. 15
3.2.3 Detecção ........................................................................................................................... 15
3.2.4 Implementação Prática ..................................................................................................... 17
3.3 Temporizador ........................................................................................................................ 20
3.3.1 Divisor de Relógio ............................................................................................................. 20
3.3.2 Máquina de Estados ......................................................................................................... 22
3.3.3 Diagrama de Estados ........................................................................................................ 24
Demonstrador FPGA ..................................................................................................................... 27
4.1 Introdução ............................................................................................................................. 28
4.2 Arquitectura ........................................................................................................................... 28
Conteúdo
viii
4.3 Metodologia de Optimização ................................................................................................. 29
4.3.1 Modificações Efectuadas .................................................................................................. 30
4.3.2 Conversor DCDC .............................................................................................................. 30
4.3.3 Comunicação SPI.............................................................................................................. 31
4.3.4 Implementação do Sensor Global ..................................................................................... 33
4.3.5 Multiplicador Pipeline ........................................................................................................ 33
4.4 Bloco de Controlo e Optimização.......................................................................................... 34
4.4.1 Caminho de Dados............................................................................................................ 35
4.4.2 Comportamento................................................................................................................. 36
4.4.3 Multiplexer tri-state (cut_speed) ........................................................................................ 37
Resultados Experimentais ............................................................................................................ 39
5.1 Características do Demonstrador ......................................................................................... 40
5.2 Simulações Post-Route ......................................................................................................... 41
5.3 Teste em Temperatura .......................................................................................................... 43
Conclusões e Trabalho Futuro ...................................................................................................... 47
6.1 Conclusões ............................................................................................................................ 48
6.2 Trabalho Futuro ..................................................................................................................... 48
Bibliografia............................................................................................................................................. 49
Anexos .......................................................................................................................................... 51
ix
Lista de Figuras
Figura 1.1 – Distribuição da variação do desempenho típica no processo de fabrico de
semicondutores ....................................................................................................................................... 3
Figura 1.2 – Metodologia actualmente utilizada nos microprocessadores para ajuste de tensão ......... 3
Figura 2.1 – Difusão do Hidrogénio em direcção à poly durante a fase de stress ................................. 8
Figura 2.2 – Degradação no Vth de um transístor PMOS após 50% do tempo na fase de stress e
recuperação ............................................................................................................................................ 9
Figura 2.3 – Metodologia do sensor PVTA da IBM® ............................................................................. 10
Figura 2.4 – Sensor de Envelhecimento da Sun Microsystems® ......................................................... 10
Figura 3.1 – Diagrama simplificado do Sensor Global ......................................................................... 12
Figura 3.2 – Esquema de uma porta lógica NOR utilizada na cadeia de atraso .................................. 13
Figura 3.3 – Estado dos transístores das portas NOR no Modo de Envelhecimento .......................... 14
Figura 3.4 – Estado dos transístores das portas NOR no Modo de Teste ........................................... 15
Figura 3.5 – Esquema detalhado do Sensor PVTA .............................................................................. 16
Figura 3.6 – Diagrama temporal comportamental dos principais sinais do Sensor Global .................. 16
Figura 3.7 – Atraso da porta NOR para diferentes tensões de alimentação ........................................ 18
Figura 3.8 - Atraso da porta NOR para diferentes temperaturas.......................................................... 18
Figura 3.9 – Exemplo de optimização no Sensor PVTA ....................................................................... 19
Figura 3.10 – Princípio de funcionamento do contador assíncrono ..................................................... 20
Figura 3.11 – Esquema lógico e diagrama temporal de um Ripple Counter crescente de 4 bits ........ 21
Figura 3.12 – Divisor de relógio implementado .................................................................................... 22
Figura 3.13 – Módulo assíncrono da máquina de estados ................................................................... 23
Figura 3.14 – Módulo síncrono da máquina de estados ....................................................................... 23
Figura 3.15 – Diagrama de estados do Temporizador ......................................................................... 24
Figura 3.16 – Diagrama temporal comportamental dos sinais da máquina de estados ...................... 25
Figura 4.1 – Arquitectura de funcionamento do demonstrador ............................................................ 28
Figura 4.2 – Fluxograma da estratégia Global de Controlo .................................................................. 29
Figura 4.3 – Verso da placa de circuito impresso da FPGA indicando o LDO a remover ................... 30
Figura 4.4 – Conversor DCDC programável por SPI ............................................................................ 31
Lista de Figuras
x
Figura 4.5 – Vista de topo da placa de circuito impresso da FPGA indicando o LDO dos 3,3V .......... 31
Figura 4.6 – Exemplo da implementação SPI....................................................................................... 32
Figura 4.7 – Diagrama de estados do bloco de Controlo e Optimização ............................................. 34
Figura 4.8 – Caminho de dados necessário para o funcionamento do controlo .................................. 35
Figura 4.9 – Multiplexer tri-state para geração do sinal cut_speed ...................................................... 37
Figura 5.1 – Fotografia do protótipo final .............................................................................................. 40
Figura 5.2 – Diagrama temporal do bloco Temporizador ..................................................................... 41
Figura 5.3 – Diagrama temporal do bloco SPI ...................................................................................... 41
Figura 5.4 – Diagrama temporal do Sensor PVTA ............................................................................... 42
Figura 5.5 – Gráfico da variação da tensão de alimentação do núcleo digital da FPGA com a
temperatura ........................................................................................................................................... 44
Figura 5.6 – Gráfico da variação da corrente consumida pelo núcleo digital da FPGA com a
temperatura ........................................................................................................................................... 45
Figura 5.7 – Gráfico da variação da Potência consumida pelo núcleo digital da FPGA com a
temperatura ........................................................................................................................................... 45
Figura 5.8 – Poupança obtida com a utilização do Sensor Global para diferentes temperaturas ....... 46
Figura 7.1 – Esquema eléctrico dos dispositivos de alimentação da placa FGPA utilizada ................ 52
xi
Lista de Tabelas
Tabela 3.1 – Dimensão dos transístores PMOS e NMOS utilizados para simular o atraso da porta
NOR ...................................................................................................................................................... 17
Tabela 4.1 – Tabela com as tensões de saída do DCDC para cada palavra de configuração ............ 32
Tabela 5.1 – Atributos da FPGA ........................................................................................................... 40
Tabela 5.2 – Medições em Temperatura .............................................................................................. 43
Lista de Tabelas
xii
xiii
Lista de Acrónimos ASIC Application-specific integrated circuit (Circuito integrado de aplicação especifica)
BIST Built-in self-test (Autoteste embutido)
BTI Bias Temperature Instability (Instabilidade em temperatura e polarização)
CUT Circuit Under Test (Circuito em teste)
DVS Dynamic Voltage Scaling (Optimização da Tensão de Alimentação)
FPGA Field-programmable gate array (Arranjo de Portas Programável em Campo)
I2C Inter-Integrated Circuit (Circuito Inter-integrado - barramento série multi-mestre)
ISM Internal Supply Module (Modulo de fornecimento interno)
JTAG Joint Test Action Group (Grupo de Teste de Ação Conjunta)
LDO Low-dropout voltage regulator (regulador de tensão com baixa queda de tensão)
LUT Look-Up Table (Tabela de referêcia)
MISO Master Input, Slave Output (Entrada do Mestre, Saída do Escravo)
MOSI Master Output, Slave Input (Saída do Mestre, Entrada do Escravo)
NBTI Negative Bias Temperature Instability (Instabilidade em temperatura e polarização negativa)
Lista de Acrónimos
xiv
PBTI Positive Bias Temperature Instability (Instabilidade em temperatura e polarização positiva)
PMU Power Management Unit (Unidade de Gestão de Energia)
PVT Process, power supply Voltage and Temperature (Processo de fabrico, tensão de alimentação e temperatura)
PVTA Process, power supply Voltage, Temperature and Aging (Processo de fabrico, tensão de alimentação, temperatura e envelhecimento)
SoC System-on-Chip (sistema-em-um-chip)
SPI Serial Peripheral Interface (Interface periférica de comunicação série)
VHDL VHSIC Hardware Description Language (Linguagem de descrição de hardware VHSIC)
VHSIC Very High Speed Integrated Circuits (Circuito integrado de muito alta velocidade)
1
Introdução
Conteúdo
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Principais Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Objectivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Organização da Dissertação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1. Introdução
2
1.1 Motivação
Num mundo em que a mobilidade tem ganho cada vez mais importância, todo o tipo de
dispositivos portáteis tem sido criado para satisfazer as necessidades de comunicação e
entretenimento. No entanto, as baterias actualmente utilizadas por esses dispositivos têm sido o elo
mais fraco na conjugação entre a autonomia e o volume ocupado pelas mesmas. Por outro lado, as
preocupações ambientais têm instigado um maior cuidado com a eficiência dos equipamentos
electrónicos, com o objectivo de reduzir os gastos com a energia.
Em tecnologia CMOS, grande parte da energia é consumida no período de comutação dos
transístores. A expressão que traduz a potência dissipada por essas comutações é dada pela
expressão (1.1):
𝑃𝑠𝑤 = 𝐶𝑓𝑉2 (1.1)
onde 𝐶 representa a capacidade média dos nós que mudam de estado, 𝑓 é a frequência de relógio
do circuito e 𝑉 é a tensão com que é alimentado o núcleo digital.
Esta expressão não é exacta, na medida em que a actividade média do circuito não é constante
durante a sua operação, mas deixa antever uma dependência quadrática do consumo relativamente
à tensão de alimentação. Para além das perdas de comutação existe também uma corrente de fuga
estática nos transístores (subthreshold leakage) que é agravada com a miniaturização dos circuitos.
Esta corrente de fuga começa a ser preocupante para tecnologias abaixo dos 90nm e o acréscimo de
potência de perdas é dado pela expressão (1.2):
𝑃𝑙𝑒𝑎𝑘 = 𝑉𝐼𝑙𝑒𝑎𝑘 (1.2)
onde 𝑉 é a tensão de alimentação e 𝐼𝑙𝑒𝑎𝑘 é o somatório da corrente de fuga nos transístores.
Outra causa para a reduzida optimização no consumo dos semicondutores são as variações no
processo de fabrico que, devido à sua natureza incerta, obrigam a que a tensão de alimentação
atribuída a um dado microprocessador seja suficientemente alta para permitir a correcta operação de
todos os chips fabricados. Na Figura 1.1 é apresentado um exemplo típico da relação entre a
quantidade de chips com desempenhos acima e abaixo da média comparativamente com a tensão
necessária ao seu correcto funcionamento.
1. Introdução
3
Figura 1.1 – Distribuição da variação do desempenho típica no processo de fabrico de semicondutores
Estas condições têm dificultado a tarefa de encontrar mecanismos que consigam optimizar o
consumo dos dispositivos durante o seu tempo de utilização. Não só as incertezas no processo de
fabrico, mas também a degradação do seu desempenho devida ao envelhecimento dos transístores,
têm sido as principais barreiras na hora de optimizar a tensão de alimentação dos circuitos.
Actualmente, a estratégia mais utilizada em microprocessadores passa por tabelar a tensão de
alimentação para diferentes frequências de trabalho, reduzindo o consumo quando existe menor
actividade computacional (Figura 1.2). No entanto, quando o processador passa à plena carga, a
tensão de alimentação e a frequência passam para o valor máximo, deixando de haver qualquer
benefício para o consumo. Exemplos desta abordagem são as tecnologias SpeedStep® da Intel
® [1] e
PowerNow!™
da AMD [2].
Figura 1.2 – Metodologia actualmente utilizada nos microprocessadores para ajuste de tensão
1. Introdução
4
Apesar de não disponível comercialmente, existe ainda o sistema Razor da ARM® [3] que
permite ajustar a tensão de alimentação com base na quantidade de falhas ocorridas durante a
execução de tarefas. A correcta operação do circuito é assegurada por um mecanismo de
autocorrecção de erros baseado num modelo de amostragem dupla (uma com relógio rápido e outra
com relógio lento). Esta solução permite reduções elevadas no consumo, mas necessita que todos
os caminhos críticos sejam refeitos de modo a integrar os dispositivos de detecção e resolução de
falhas. No entanto, como esta abordagem interfere no normal fluxo de projecto, a sua adopção por
parte da indústria torna-se difícil.
Depois desta análise é possível concluir que se podem obter grandes ganhos de energia caso
sejam reduzidas as margens de tensão atribuídas para compensar incertezas devido ao processo de
fabrico, temperatura de operação e envelhecimento.
1.2 Principais Contribuições
O sensor aqui apresentado surge na sequência de estudos sobre o impacto do envelhecimento
nos transístores que mostram um aumento do tempo de propagação dos sinais digitais com o
decorrer do tempo. O fenómeno de envelhecimento afecta principalmente os transístores tipo P e o
seu impacto nos circuitos digitais foi analisado em [4].
Com o objectivo de prever antecipadamente possíveis falhas nos circuitos digitais causadas por
variações no processo de fabrico, temperatura e envelhecimento (PVTA), foi desenvolvido um sensor
local [5] que verifica junto dos principais caminhos críticos a eminência de uma falha ocorrer.
Mais tarde foi desenvolvido um segundo sensor [6] para avalizar o desempenho global do
circuito em complemento com o sensor local.
A principal contribuição deste trabalho consiste no desenvolvimento de um demonstrador em
FPGA que coloca em prática uma parte do princípio proposto em [6]. Recorrendo a um circuito com
autoteste, é validada a solução proposta e são quantificados os ganhos obtidos no consumo
energético quando a tensão de alimentação é optimizada de forma permanente.
1. Introdução
5
1.3 Objectivos
Esta dissertação tem como objectivo validar um processo que permite optimizar, de forma
independente (sem interferir no fluxo de projecto) e em tempo real, a tensão de alimentação nos
circuitos digitais em microelectrónica. Para efectuar esta validação foi criado um protótipo em FPGA
que permitiu obter resultados experimentais. O sistema sensor e respectivo controlo não provocam
um acréscimo de recursos físicos nem de consumo significativos quando comparado com o restante
circuito.
Para emular as condições reais de funcionamento foi integrado um multiplicador com autoteste
que indica qualquer falha que ocorra se o processamento for demasiado lento. Habilitando e
desabilitando este multiplicador podem ainda efectuar-se testes à fiabilidade do sensor durante
transitórios de carga com diferentes temperaturas.
1.4 Organização da Dissertação
Capitulo 2: Análise e Previsão do Envelhecimento – Neste capítulo é realizada uma
análise ao efeito do envelhecimento nos transístores tipo P (NBTI) bem como apresentadas
algumas das actuais estratégias de optimização de energia.
Capitulo 3: Sensor Global – Neste capítulo é apresentado o princípio de funcionamento do
sensor PVTA utilizado na FPGA.
Capitulo 4: Demonstrador FPGA – Neste capítulo são apresentados os mecanismos
necessários à realização do protótipo em FPGA: algoritmo de controlo global, modificações
físicas e dispositivos utilizados.
Capitulo 5: Resultados Experimentais – Neste capítulo são apresentados os resultados
obtidos por simulação em Xilinx® bem como os resultados práticos do funcionamento do
sensor para diferentes temperaturas.
Capitulo 6: Conclusões e Trabalho Futuro – Neste capítulo são discutidos os resultados
face aos objectivos iniciais e apontados os objectivos futuros.
1. Introdução
6
7
Análise e Previsão do
Envelhecimento Conteúdo
2.1 Envelhecimento e Efeito NBTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Ring Oscillator Sensor (IBM®) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Sensor de envelhecimento da Sun Microsystems® . . . . . . . . . . . . . 9
2. Análise e Previsão do Envelhecimento
8
2.1 Envelhecimento e Efeito NBTI
Uma das consequências da operação a longo prazo dos circuitos digitais é a degradação no
desempenho das portas lógicas devido ao envelhecimento. Esta diminuição do desempenho é
provocada pelo aumento da tensão de threshold (Vth) nos transístores, que leva à redução na
corrente de dreno. O fenómeno de envelhecimento pode ocorrer tanto em transístores tipo N (PBTI)
como em tipo P (NBTI), no entanto os seus efeitos têm maior relevância nos transístores tipo P [4].
Neste trabalho não será considerado o PBTI, mas para tecnologias inferiores a 40nm o seu efeito já
deve ser considerado [6]. Frequentemente chegam a ocorrer erros no processamento digital devido a
incumprimentos temporais causados pelo envelhecimento a longo prazo, sendo um dos principais
factores que limitam a vida útil dos dispositivos.
O fenómeno do NBTI surge devido a processos electroquímicos no seio dos transístores com o
dióxido de silício puro (SiO2) [7]. Estas reacções ocorrem durante a permanência do transístor no
estado de condução (fase de stress com VGS = –Vdd), onde devido ao campo eléctrico e às altas
temperaturas são quebradas as ligações químicas entre o silício (Si) e o hidrogénio (H) na zona de
junção do silício com o oxido. O hidrogénio libertado acaba por se deslocar em direcção à porta de
silício policristalino (poly), chegando por vezes a recombinar-se em H2 (Figura 2.1). Por outro lado, o
silício quebrado junto ao óxido (Si-) actua como uma armadilha para os portadores do canal,
reduzindo a mobilidade e aumentando a tensão de limiar (threshold voltage, Vth) do transístor.
Figura 2.1 – Difusão do Hidrogénio em direcção à poly durante a fase de stress
Por outro lado, na passagem do transístor ao estado de corte (fase de recuperação com VGS =
0V), o processo é invertido fazendo com que o hidrogénio se recombine de novo com o silício,
fazendo diminuir a variação na tensão de limiar do transístor. No entanto, nem todas as ligações
quebradas são restabelecidas. Isto provoca uma degradação acumulada do Vth no transístor, levando
à progressiva degradação do desempenho das portas lógicas. A longo prazo, o aumento do Vth fica
dependente da taxa de ruptura das ligações Si-H e de recombinações com Si-. Estas, por sua vez
estão dependentes da probabilidade do transístor estar na fase de stress ou recuperação e de outros
parâmetros como a temperatura [8].
2. Análise e Previsão do Envelhecimento
9
Na Figura 2.2 é apresentado um exemplo da variação de Vth na situação de igual período de
tempo na fase de stress e na fase de recuperação. Pode ver-se que para tentar reaver o Vth inicial é
necessário um intervalo de tempo muito superior ao que foi necessário para a degradação ocorrer.
Figura 2.2 – Degradação no Vth de um transístor PMOS após 50% do tempo na fase de stress e recuperação
Modelos de previsão, bem como resultados experimentais apontam para que o atraso causado
pelo NBTI seja independente da frequência, para frequências superiores a 100Hz [9] [10]. O maior
problema surge quando transístores num caminho quase crítico permanecem demasiado tempo na
fase de stress, podendo nestas circunstâncias, o envelhecimento transformar este caminho num
caminho crítico.
2.2 Ring Oscillator Sensor (IBM®)
A técnica utilizada pela IBM
® em [11] tira partido do comportamento de um ou mais osciladores
em anel (ring oscillators) para obter uma frequência de relógio proporcional a qualquer variação
PVTA (Figura 2.3). Em seguida o sinal de relógio obtido passa por um divisor de frequência e entra
num contador. O número de oscilações registadas por intervalo de tempo é analisado periodicamente
por um bloco de controlo que intervirá no caso de falha iminente. Esta detecção de falhas pode ser
obtida de duas formas: (1) número de oscilações registadas ser inferior ao de calibração; (2) uma
discrepância significativa entre leituras.
2. Análise e Previsão do Envelhecimento
10
Figura 2.3 – Metodologia do sensor PVTA da IBM®
2.3 Sensor de envelhecimento da Sun Microsystems®
O sistema desenvolvido pela antiga Sun Microsystems® [12], adquirida pela Oracle
Corporation®, baseia-se na polarização de diferentes tensões a transístores tipo N e tipo P que irão
alimentar um regulador de tensão que por sua vez liga a um oscilador controlado por tensão (VCO).
Em seguida o circuito contador averigua o número de oscilações realizadas por intervalo de tempo e
compara-as com uma referência. Devido ao envelhecimento dos transístores colocados no sensor, a
corrente fornecida ao regulador de tensão do VCO é menor e por conseguinte o número de
oscilações contabilizadas diminui. O diagrama de funcionamento do sensor é apresentado na Figura
2.4, na qual se pode ver a existência de um multiplexer para escolher qual o sensor a avaliar, bem
como de uma memória que guarda informações de calibração. Após o varrimento de todos os
sensores, a diferença verificada entre a contagem de calibração e a obtida na realidade é enviada a
um sistema de controlo.
Figura 2.4 – Sensor de Envelhecimento da Sun Microsystems
®
11
Sensor Global
Conteúdo
3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Sensor PVTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 Temporizador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3. Sensor Global
12
3.1 Introdução
Nesta secção é apresentada a arquitectura de um sensor para monitorização da degradação do
desempenho dos circuitos digitais resultante do envelhecimento a longo prazo. Esta arquitectura vem
no seguimento de uma metodologia recentemente desenvolvida pelo grupo de investigação do
INESC-ID no âmbito do qual este trabalho foi desenvolvido e que foi apresentada em [6].
A introdução desta nova topologia de sensor surgiu da necessidade de contornar dois grandes
inconvenientes associados à utilização de sensores locais:
A necessidade de suspender o funcionamento do circuito em monitorização no momento
em que é realizada a medição do estado de degradação. Esta interrupção é tempo de
processamento desperdiçado e rapidamente se poderia chegar à situação em que o tempo
em processamento seria da mesma ordem de grandeza do tempo de monitorização.
A necessidade de substituir os flip-flops do caminho crítico por outros com a lógica de
detecção de falhas integrada, o que obriga ao projecto e caracterização de células
adicionais para cada biblioteca digital e interfere com o normal fluxo de projecto.
Por outro lado, com a utilização do Sensor Global aqui apresentado, é possível avaliar em
tempo real a possibilidade de uma falha ocorrer, através da verificação periódica do desempenho
instantâneo do circuito em monitorização. Estas informações de desempenho são enviadas para um
dispositivo de Controlo Digital (apresentado no capítulo 4) que faz subir a tensão de alimentação
quando o atraso na propagação das portas lógicas do sensor aumenta acima de um limiar pré-
-definido, ou faz diminuir a tensão de alimentação se o desempenho estiver acima do necessário.
A implementação do Sensor Global é dividida em 2 blocos distintos (Figura 3.1). Um bloco de
controlo para gerar periodicamente os sinais necessários ao funcionamento do sensor e outro
contendo os dispositivos que actuam como sensores a variações PVTA.
Figura 3.1 – Diagrama simplificado do Sensor Global
3. Sensor Global
13
3.2 Sensor PVTA
Num circuito digital, ocorre uma falha quando um sinal que se propaga no caminho crítico não o
consegue percorrer num tempo inferior ao período de relógio. Sendo este o problema que se
pretende evitar, o funcionamento do sensor foi projectado para detectar esta situação. Deste modo, o
sensor mede o desempenho do circuito, emulando o atraso do caminho crítico, recorrendo a um
circuito composto por uma cadeia de atraso construída com portas NOR ligadas sequencialmente
(circuito réplica). O motivo pelo qual são utilizadas portas NOR deve-se ao facto de estas
envelhecerem mais rapidamente do que as restantes portas lógicas. Esta característica garante que
o tempo de propagação no sensor será sempre superior ao dos potenciais caminhos críticos que
possam surgir devido ao envelhecimento a longo prazo. Publicações anteriores mostram que pelo
facto do NBTI ser mais significativo nos transístores PMOS, a degradação do tempo de atraso é mais
relevante nas transições do ‘0’ para o ’1’ lógico e que o efeito cascata verificado nos transístores
PMOS das portas NOR contribui fortemente para o aumento do tempo de atraso da porta lógica com
o seu envelhecimento a longo prazo [13] [14].
No entanto, como foi referido anteriormente, a actividade lógica origina regeneração e para
garantir o pior cenário de envelhecimento no circuito réplica foi necessário impor dois modos de
funcionamento ao sensor. Assim, no intervalo que decorre entre as verificações de desempenho, o
sensor passa ao Modo de Envelhecimento (Aging Mode), e no momento da verificação, o sensor
passa ao Modo de Teste (Test Mode).
Na Figura 3.2 pode ver-se o esquema de ligações de uma das portas NOR presentes na cadeia
de atraso. O sinal aging é comum a todas as portas NOR e o seu valor lógico define qual o modo de
funcionamento em que o sensor se encontra. Por outro lado, o barramento test_data assegura a
ligação série entre as portas NOR da cadeia de atraso. De referir que na primeira porta NOR da
cadeia o sinal test_data(0) corresponde ao sinal edge, um impulso usado para avaliar o tempo de
propagação no sensor.
Figura 3.2 – Esquema de uma porta lógica NOR utilizada na cadeia de atraso
3. Sensor Global
14
3.2.1 Modo de Envelhecimento
A entrada do sensor em Modo de Envelhecimento ocorre quando o sinal aging é forçado a ‘1’
pelo bloco Temporizador. Durante este modo os sinais edge e clkgen permanecem inalterados no
valor lógico ‘0’. Na Figura 3.3 pode ver-se que esta configuração provoca o bloqueio de Vdd através
de P2 ao mesmo tempo que força gnd na saída por meio de N2. Deste modo, o sinal test_data
propagado a todos os transístores P1 e N1 é ‘0’, o que força os transístores P1 a envelhecer (fase de
stress).
Figura 3.3 – Estado dos transístores das portas NOR no Modo de Envelhecimento
Isto permite concluir que a degradação temporal por envelhecimento observada na cadeia de
atraso será apenas da responsabilidade dos transístores P1, uma vez que os transístores P2 estão
em modo de recuperação quase todo o tempo. Por este motivo, e para o correcto funcionamento do
sensor, é importante que a ordem de ligação das entradas das portas NOR seja respeitada, uma vez
que durante a fase de stress o fenómeno de envelhecimento só acontece nos transístores que estão
situados junto à tensão de alimentação.
3. Sensor Global
15
3.2.2 Modo de Teste
A mudança para o Modo de Teste ocorre quando o sinal aging transita para ‘0’. Esta alteração
coloca o transístor P2 em condução e o N2 ao corte, fazendo com que a saída fique dependente do
sinal test_data colocado na entrada. Na Figura 3.4 pode ver-se que a nova configuração das portas
NOR reflecte o comportamento lógico de um inversor, permitindo agora a propagação de qualquer
sinal que seja colocado no início da cadeia.
Figura 3.4 – Estado dos transístores das portas NOR no Modo de Teste
De referir que durante o período em que ocorre o teste, os transístores P1 passam algum do
tempo na fase de regeneração. No entanto, como o intervalo entre verificações consecutivas andará
sempre acima das centenas de ciclos de relógio, a duração do teste não deve impedir o sensor de
envelhecer mais do que o restante circuito.
3.2.3 Detecção
Uma vez activa a cadeia, é necessário implementar um mecanismo capaz de medir
quantitativamente o atraso provocado pelo circuito réplica. A abordagem utilizada baseia-se no
princípio sample-and-hold para registar o estado das portas NOR num dado instante do teste,
utilizando para o efeito flip-flops tipo D colocados à saída das portas NOR. Tendo em conta que
durante o teste as portas NOR têm o comportamento de inversores, pode obter-se uma leitura do tipo
código termómetro extraindo de forma intercalar as saídas ̅ ou dos flip-flops. A utilização deste
formato justifica-se com a sua fácil obtenção e pelo facto de permitir ao projectista usar diferentes
formas de manipular a informação do sensor com base no algoritmo de controlo.
3. Sensor Global
16
A Figura 3.5 mostra o esquema eléctrico final do Sensor PVTA. Face a versões anteriores, como
a proposta por J. Semião et al. [6], a versão proposta nesta dissertação apresenta algumas
alterações na forma como são registadas as saídas das portas NOR. Onde anteriormente existia
uma báscula (latch), um elemento de atraso e um detector de estabilidade (L+DE+SC), existe agora
apenas um flip-flop tipo D. Esta substituição visa tornar o sensor compatível com células digitais
normalizadas tendo em conta que a metodologia aqui apresentada não requer a utilização de
sensores locais.
Figura 3.5 – Esquema detalhado do Sensor PVTA
O modo de teste pode ainda ser divido em 3 submodos (Figura 3.6):
Inicialização – período de espera para permitir que a cadeia de portas NOR estabilize após
a transição para ‘0’ do sinal aging.
Propagação – intervalo de tempo em que o sinal edge é propagado na cadeia de atraso.
Captura – instante em que é efectuada a captura do estado das portas NOR pelos flip-flops.
Figura 3.6 – Diagrama temporal comportamental dos principais sinais do Sensor Global
3. Sensor Global
17
Os intervalos de tempo atribuídos a cada submodo são baseados na premissa de que após o
período correspondente a 1 ciclo de relógio toda a lógica num circuito digital deverá estar
estabilizada para não ocorrerem erros. Por esta razão a captura ocorre 1 ciclo de relógio após a
propagação do impulso edge e é atribuído 1 ciclo de relógio mais uma margem de meio período na
inicialização de forma a garantir que a cadeia se encontra estável mesmo quando o circuito tem um
comportamento demasiado lento.
3.2.4 Implementação Prática
Uma utilização posterior da informação do Sensor Global para optimização da tensão de
alimentação requer a calibração prévia do sensor. Esta calibração visa determinar quantas portas
NOR são necessárias para igualar o atraso do caminho crítico a vigiar mais uma margem de
segurança. Uma vez determinada a calibração, esta deverá servir para todos os chips de um mesmo
circuito. As variações no processo de fabrico deverão ser compensadas automaticamente devido ao
aumento ou diminuição no desempenho. De forma genérica, o princípio e topologia do sensor não
dependem do circuito a monitorizar, da frequência de relógio, nem da tecnologia em que está
implementado. No entanto a sua implementação vai depender de caso para caso. Em particular, o
número de portas lógicas utilizadas para representar o circuito réplica irá depender da dimensão do
caminho crítico, bem como da tecnologia de fabrico.
Com o objectivo de caracterizar o atraso gerado pela porta NOR foram efectuadas simulações
em tecnologia TSMC 65nm. Estas simulações mostram a dependência do atraso da porta NOR para
diferentes tensões de alimentação e diferentes temperaturas. Os resultados obtidos dizem respeito a
simulações ao nível do esquema eléctrico realizadas com dispositivos cujas dimensões se
apresentam na Tabela 3.1 e correspondem à porta NOR padrão.
Transístor W (nm) L (nm)
P1, P2 460 80
N1, N2 170 80
Tabela 3.1 – Dimensão dos transístores PMOS e NMOS utilizados para simular o atraso da porta NOR
Na Figura 3.7 é apresentado o gráfico da variação no atraso da porta NOR com a tensão de
alimentação para três cenários diferentes. O caso típico corresponde à operação à temperatura
ambiente (25ºC), no pior caso à temperatura de 125ºC e no melhor caso à temperatura de -40ºC.
3. Sensor Global
18
Figura 3.7 – Atraso da porta NOR para diferentes tensões de alimentação
Na Figura 3.8 é apresentado o gráfico da variação no atraso da porta NOR com a temperatura e
também para três cenários diferentes. O caso típico corresponde a operar com a tensão de
alimentação a 1,2V, no pior caso a 1,08V e no melhor caso a 1,32V.
Figura 3.8 - Atraso da porta NOR para diferentes temperaturas
Das simulações efectuadas pode ver-se que o atraso na porta NOR aumenta significativamente
com a diminuição da tensão de alimentação. Por este motivo deve existir especial cuidado com as
transições de tensão durante o processo de optimização. Para que não ocorram falhas, deve
garantir-se que a transição para uma tensão inferior não tem demasiado impacto no desempenho.
Esta margem de segurança deve ser considerada no momento da calibração e é tanto menor quanto
maior for a resolução na programação da tensão na PMU.
0.00E+00
5.00E+00
1.00E+01
1.50E+01
2.00E+01
2.50E+01
3.00E+01
3.50E+01
4.00E+01
4.50E+01
1.05 1.15 1.25 1.35
Atr
aso
po
rta
NO
R (
ps)
Tensão de Alimentação (V)
typicalschematic
Worst CornerSchematic
Best CornerSchematic
0.00E+00
5.00E+00
1.00E+01
1.50E+01
2.00E+01
2.50E+01
3.00E+01
3.50E+01
4.00E+01
4.50E+01
5.00E+01
-60 -30 0 30 60 90 120 150 180
Atr
aso
po
rta
NO
R (
ps)
Temperatura (°C)
typicalschematic
Worst CornerSchematic
Best CornerSchematic
T = 25ºC
T = 125ºC
T = -40ºC
Vdd = 1,2V
Vdd = 1,08V
Vdd = 1,32V
3. Sensor Global
19
Por outro lado, apenas grandes variações na temperatura do circuito fazem aumentar
significativamente o atraso. Assim, apenas é necessário garantir que o intervalo de tempo entre as
verificações de desempenho não é demasiado elevado para causar erros quando o gradiente de
temperatura é máximo.
Dependendo da tecnologia na qual é projectado o sensor, bem como da arquitectura do circuito
em monitorização, a distribuição dos flip-flops pelo circuito réplica pode ser feita de modo a minimizar
os recursos utilizados. Tipicamente, os microprocessadores estão divididos em blocos funcionais que
podem ser desligados consoante o tipo de operações a realizar. Diferentes blocos em funcionamento
significam diferentes caminhos críticos a ter em consideração. Uma melhor optimização do consumo
pode ser feita tendo em conta os caminhos críticos activos num determinado instante. Deste modo,
podem colocar-se apenas flip-flops em torno das zonas correspondentes ao atraso dos caminhos
críticos de cada bloco. Um exemplo desta abordagem é ilustrado na Figura 3.9.
Figura 3.9 – Exemplo de optimização no Sensor PVTA
Esta abordagem permite excluir a análise das primeiras NOR uma vez que estão muito distantes
do atraso do caminho crítico, permitindo reduzir a complexidade do controlo necessária para
processar a informação. Consoante o nível de sensibilidade pretendido, o espaçamento entre flip-
-flops consecutivos pode ser de várias portas NOR. Este aumento do atraso entre dois flip-flops
consecutivos limita as situações em que o código termómetro oscila entre dois valores devido a
diferenças mínimas no atraso da cadeia. É importante frisar que a não introdução de flip-flops em
todas as portas NOR leva a que o tempo de atraso no circuito réplica deixe de ser uniforme, sendo
maior nas portas NOR que têm a capacidade no nó de saída aumentada pela ligação do flip-flop. Por
esse motivo podem ser colocados inversores com impedância de entrada semelhante à dos flip-flops
nas portas NOR excluídas.
3. Sensor Global
20
3.3 Temporizador
Devido ao funcionamento periódico do Sensor Global, para implementar o bloco Temporizador
são necessários dois subsistemas. O primeiro é um divisor de relógio para gerar a base de tempo
para o accionamento do sensor. O segundo dispositivo é uma máquina de estados que é accionada
pelo divisor de relógio e cujo objectivo é gerar os sinais de controlo necessários aos três submodos
presentes no Modo de Teste do Sensor PVTA.
3.3.1 Divisor de Relógio
Existem alguns métodos para implementar divisores do sinal de relógio. No caso específico
deste trabalho interessa uma solução simples e de consumo reduzido, mas que permita alguma
flexibilidade na alteração da base de tempo. A solução que mais se aproxima dos objectivos
pretendidos é o contador assíncrono. Esta topologia de contador tem a vantagem de usar apenas
flip-flops na sua implementação, com o benefício de consumir menos energia do que o contador
síncrono.
O funcionamento deste contador baseia-se na realimentação negativa para forçar a alternância
de estados em ciclos de relógio consecutivos. No exemplo da Figura 3.10 pode ver-se que a cada
novo ciclo de relógio o flip-flop coloca na saída o estado oposto ao estado anterior. O sinal obtido tem
assim um período que é o dobro do sinal de entrada.
Figura 3.10 – Princípio de funcionamento do contador assíncrono
Deste modo, tendo em conta que cada flip-flop implementa uma divisão por dois relativamente
ao seu sinal de relógio, podem obter-se sucessivas divisões colocando vários flip-flops encadeados
ligando apenas as entradas de relógio à saída do flip-flop anterior. Esta metodologia tem o nome de
ripple counter e a frequência que é obtida na saída de cada flip-flop é dada pela expressão (3.1):
𝑓 =𝑓 𝑙𝑘
(3.1)
onde é o numero de flip-flops a montante na cadeia.
3. Sensor Global
21
Na Figura 3.11 poder ver-se um exemplo da implementação do ripple counter. Neste caso
pretende-se obter um contador crescente e por esse motivo é necessário que as entradas de relógio
dos flip-flops seguintes tenham origem na saída Q negada do flip-flop anterior. Caso contrário o
contador seria decrescente.
Figura 3.11 – Esquema lógico e diagrama temporal de um Ripple Counter crescente de 4 bits
Na figura anterior as transições de estado a partir do segundo flip-flop surgem no flanco
negativo. Isto deve-se ao facto do diagrama temporal mostrar apenas as saídas Q e não as saídas
que servem de relógio ao flip-flop seguinte. Neste contador todos os flip-flops são do tipo edge trigger
positivo.
De referir que este contador tem o inconveniente das saídas não serem totalmente síncronas
entre si. Isto acontece porque os flip-flops têm entradas de relógios independentes cujos atrasos
dependem dos flip-flops anteriores. Por este motivo, ao usar o relógio dividido para actuar a máquina
de estados do sensor deve colocar-se um registo sincronizado com o relógio para prevenir violações
temporais. Deste modo, deixa de existir qualquer limitação na utilização deste contador, podendo
assim tirar-se partido da menor área e do menor consumo utilizados.
3. Sensor Global
22
O número de flip-flops a utilizar depende da frequência de relógio e do tempo que o controlo
externo demora a executar as operações de subida e descida da tensão do circuito. O intervalo entre
verificações pode ser estático ou dinâmico dependendo das necessidades. Caso se pretenda usar
intervalos dinâmicos apenas é necessário adicionar um multiplexer ligado às saídas desejadas para
que externamente possa ser seleccionada qual a saída do contador a utilizar como base de tempo.
O esquema final do divisor de relógio implementado é apresentado na Figura 3.12. Tmonit são
os bits de selecção externa do factor de divisão e clkdiv o sinal resultante da divisão do relógio. Com
o objectivo de minimizar o atraso na lógica assíncrona e desse modo evitar a utilização de
dispositivos extra de sincronização na máquina de estados, o relógio do registo de saída foi
sincronizado com o flanco descendente para desse modo garantir que os interruptores de relógio
existentes se encontram activos imediatamente antes do flanco de relógio. Caso contrário, o primeiro
ciclo de relógio à saída do interruptor teria um período inferior ao do relógio global e poderia causar
problemas de estabilidade.
Figura 3.12 – Divisor de relógio implementado
3.3.2 Máquina de Estados
Como o Sensor Global é sensível à temporização dos sinais e é relevante o seu consumo de
recursos, a máquina de estados utilizada foi desenvolvida ao nível da porta lógica para assegurar a
sua optimização. A sua implementação é feita através de um módulo assíncrono, que ao entrar em
funcionamento activa um segundo módulo síncrono. Este mecanismo foi criado para permitir que a
sequência de teste seja executada apenas uma vez durante o flanco positivo do sinal clkdiv. O
princípio de funcionamento baseia-se na utilização de um elemento de memória, neste caso uma
báscula (latch), que regista o fim da sequência de teste e evita desse modo a sua repetição. Na
3. Sensor Global
23
Figura 3.13 pode ver-se que durante o flanco negativo do sinal clkdiv a latch é inicializado a ‘1’ (set
efectuado através do sinal clr). Deste modo, quando o sinal clkdiv regressa a ‘1’ o sinal start activa o
segundo módulo de controlo, ao mesmo tempo que o sinal aging retira o sensor do modo de
envelhecimento, dando assim início à sequência de teste. Com este mecanismo, a sequência de
teste termina no instante em que o segundo módulo fornece o sinal à latch.
Figura 3.13 – Módulo assíncrono da máquina de estados
Na composição do segundo módulo está um contador síncrono e restante lógica combinatória
necessária à geração dos sinais de controlo do sensor. O objectivo deste contador é fornecer os
instantes de tempo nos quais irão ser realizados os três submodos inerentes ao Modo de Teste. Para
o fazer, é apenas necessário um contador de 2 bits. Esta solução permite implementar os três
submodos mais um estado de espera. O esquema lógico do segundo módulo é apresentado na
Figura 3.14, no qual se podem ver dois registos e a porta XOR que compõem o contador crescente,
bem como a restante lógica combinatória de controlo.
Figura 3.14 – Módulo síncrono da máquina de estados
3. Sensor Global
24
No dimensionamento deste módulo existiu uma especial atenção para que os sinais edge e
clkgen distassem exactamente um período de relógio. Para conseguir esse objectivo é importante
que a lógica após os registos seja o mais semelhante possível no que toca ao número de portas
lógicas e respectiva dependência. Só deste modo é possível garantir que tempos de atraso em
ambos os sinais são semelhantes. Como o sinal edge é iniciado primeiro, a dependência sobre o
sinal clkgen não existe porque nesse instante o sinal é estático. Desse modo o sinal edge apenas
está dependente do atraso da porta XOR, e o sinal clkgen de uma porta AND. A lógica implementada
garante não só um tempo de atraso semelhante na ascensão, como garante também que o sinal
edge apenas é forçado a ’0’ depois do sinal clkgen ser iniciado. Desta forma, assegura-se que a
captura efectuada pelos flip-flops da cadeia de atraso não sofre qualquer perturbação pelo facto do
sinal edge transitar para ‘0’ no instante de captura.
É importante sublinhar que pelo facto do sinal de relógio fornecido aos registos estar bloqueado
durante o processo de envelhecimento por um interruptor de relógio (porta AND à esquerda), os
registos têm de permitir a inicialização assíncrona (clear ou clr).
3.3.3 Diagrama de Estados
O diagrama de estados correspondente ao funcionamento do Temporizador é exibido na Figura
3.15. Entre aspas encontra-se o código actual do contador de 2 bits. Uma vez que a entrada no
estado de Inicialização 1 ocorre meio período antes do relógio chegar ao contador, no diagrama final
surgem dois estados para o submodo de inicialização. O motivo pelo qual isto acontece é para dar
uma margem de 50% ao sensor para estabilizar a cadeia de atraso após a alteração no sinal aging.
Figura 3.15 – Diagrama de estados do Temporizador
3. Sensor Global
25
No diagrama temporal da Figura 3.16 pode ver-se que no instante em que o clkdiv vem a ‘1’, o
sensor entra no Modo de Teste assincronamente (Inicialização 1). Meio período depois é activado o
segundo módulo de controlo no flanco ascendente de relógio, fazendo avançar de forma síncrona a
máquina de estados para o estado Inicialização 2. No flanco de relógio seguinte é fornecido o sinal
edge à cadeia de atraso (Propagação) e no período seguinte o sinal clkgen (Captura). Mais tarde, no
flanco descendente do sinal clkdiv, é efectuada a inicialização do segundo módulo, repondo o sinal
clkgen e colocando a máquina de estados em espera.
Figura 3.16 – Diagrama temporal comportamental dos sinais da máquina de estados
3. Sensor Global
26
27
Demonstrador FPGA
Conteúdo
4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2 Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Metodologia de Optimização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4 Bloco de Controlo e Optimização . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4. Demonstrador FPGA
28
4.1 Introdução
Com o objectivo de demonstrar o potencial do Sensor Global apresentado nesta dissertação, foi
desenvolvida uma plataforma de demonstração utilizando uma FPGA para implementação do sensor
e de um circuito digital complexo para simular a carga correspondente a um processador comum. A
opção de utilizar uma FPGA prende-se com o facto de ser um meio de desenvolvimento
extremamente rápido para obter resultados experimentais e ser um meio frequentemente usado na
emulação de soluções que se pretendem implementar em ASICs. Apesar do teste ao sensor ser feito
recorrendo a um FPGA, o objectivo é poder demonstrar o seu funcionamento em SoC. Por esta
razão, grande parte do código VHDL implementado foi descrito ao nível da porta lógica ao invés do
respectivo comportamento. Este nível de detalhe permite realizar optimizações importantes para o
desempenho do sensor, aproximando esta implementação em FPGA da implementação em silício no
SoC.
4.2 Arquitectura
Para poder implementar um sistema de ajuste automático que consiga de forma independente
controlar a sua própria tensão de alimentação, é necessário recorrer a mais alguns dispositivos extra
que suportem as instruções de controlo geradas na FPGA. Esta situação implica fazer algumas
alterações físicas na placa de circuito impresso da FPGA original [15] de modo a permitir a utilização
de uma fonte de tensão externa na alimentação dos 1,2V fornecida ao chip da Xilinx®. O objectivo é
criar uma arquitectura fechada onde o controlador do sensor consegue configurar a tensão de
alimentação desejada (Figura 4.1).
Figura 4.1 – Arquitectura de funcionamento do demonstrador
Neste caso, o módulo que disponibiliza a alimentação externa é um conversor DCDC com
tensão de saída programável através de protocolo SPI. Para implementar o circuito digital cuja
alimentação é optimizada, foi usado um multiplicador de 16 bits com autoteste, tendo em vista uma
avaliação periódica da eventual ocorrência de falhas no processamento. Após uma calibração inicial,
o mecanismo Sensor Global mais algoritmo de controlo deverá ser capaz de operar dinamicamente,
ajustando-se às condições de temperatura ou envelhecimento sem qualquer interferência do
utilizador e sem interferir com a funcionalidade implementada no circuito.
4. Demonstrador FPGA
29
4.3 Metodologia de Optimização
A metodologia de optimização implementada neste trabalho é composta por quatro etapas mais
um estágio de inicialização (Figura 4.2). No momento em que o sistema arranca e surge o sinal de
reset, o mecanismo de controlo força o valor máximo de tensão no circuito de forma conservadora.
Este valor de tensão máxima é programável em tempo real e pode ser ajustado para diferentes
frequências à semelhança da estratégia utilizada nos actuais microprocessadores. Nesta situação, o
microprocessador deve fornecer a nova palavra de tensão e de seguida deverá activar o sinal
setvmax. Só depois desta operação deverá ser efectuada a alteração da frequência de relógio. Nas
etapas seguintes, e periodicamente, são efectuadas a leitura ao sensor, calculada a nova palavra de
tensão e por fim comunicado o novo valor à fonte de alimentação.
Figura 4.2 – Fluxograma da estratégia Global de Controlo
4. Demonstrador FPGA
30
4.3.1 Modificações Efectuadas
Neste trabalho foi utilizada uma FPGA Spartan 3 XC3S400-FT256 da Digilent®. Após uma
análise ao esquema eléctrico fornecido pelo fabricante foi identificado o processo de distribuição de
energia na FPGA. O dispositivo é alimentado externamente com 5V que irão alimentar o LDO
principal, reduzindo a tensão para 3,3V. Este LDO alimenta as interfaces de entrada e saída de
dados bem como a maioria dos dispositivos na FPGA. Incluídos nestes dispositivos encontra-se um
LDO para gerar 2,5V e outro para gerar 1,2V. Os 2,5V alimentam os controladores do sinal de relógio
(DCM) e os periféricos de programação como o JTAG. Por fim, os 1,2V alimentam o núcleo digital da
FPGA sendo, portanto, este o dispositivo a substituir pelo DCDC com tensão programável. Na Figura
4.3 é indicado o local, no verso da placa de circuito impresso da FPGA, de onde foi removido o LDO
dos 1,2V para substituir pela alimentação do DCDC.
Figura 4.3 – Verso da placa de circuito impresso da FPGA indicando o LDO a remover
4.3.2 Conversor DCDC
O conversor DCDC utilizado é apresentado na Figura 4.4 e foi projectado numa parceria entre o
INESC-ID e a SILICONGATE LDA. Para funcionar, este conversor requer o fornecimento de três
alimentações externas. À semelhança da FPGA, o DCDC utiliza 1,2V para o núcleo digital, 3,3V para
entradas e saídas de dados e uma tensão em torno de 2,4V como entrada de potência. Para tornar o
protótipo independente de fontes de alimentação externas foram utlizados os três LDO existentes na
FPGA para alimentar paralelamente o DCDC. O LDO de 1,2V que foi retirado da placa da FPGA foi
soldado a um dissipador externo e usado para alimentar o núcleo digital do DCDC. Para tal foi
necessário criar um cabo a ligar o LDO de 3,3V da FPGA (Figura 4.5) ao LDO de 1,2V e outro como
um conector para levar os 1,2V ao DCDC. Um outro cabo foi criado para levar os 2,5V da FPGA para
a entrada de potência do DCDC. Por fim, os 3,3V são fornecidos juntamente com as linhas de dados.
4. Demonstrador FPGA
31
Figura 4.4 – Conversor DCDC programável por SPI
Figura 4.5 – Vista de topo da placa de circuito impresso da FPGA indicando o LDO dos 3,3V
4.3.3 Comunicação SPI
O protocolo SPI ou interface periférica de comunicação série permite a comunicação de um
microcontrolador (mestre) com diversos outros componentes (escravos) de uma forma compacta.
Neste protocolo o dispositivo mestre faz a gestão das comunicações através de uma linha de
selecção, para cada dispositivo, activa a ‘0’ ( ). A sincronização de dados é assegurada pelo sinal
de relógio SCLK gerado pelo dispositivo mestre. Por fim, os dispositivos escravos comunicam pela
linha de dados MISO (master input, slave output ou entrada do mestre, saída do escravo), e mestre
pela linha MOSI (master output, slave input ou saída do mestre, entrada do escravo). Um exemplo da
implementação deste protocolo pode ser visto na Figura 4.6.
4. Demonstrador FPGA
32
Figura 4.6 – Exemplo da implementação SPI
Como seria de esperar, no demonstrador apresentado, o dispositivo mestre encontra-se do lado
da FPGA e o dispositivo escravo é o conversor DCDC. No caso particular desta implementação o
sinal MISO foi dispensado uma vez que a rotina para alteração da tensão Vdd não necessita de
qualquer tipo de resposta por parte do DCDC. No entanto existe uma linha de que deverá estar
sempre no valor lógico ’1’. Relativamente ao modo de transição, os dados devem ser recolhidos no
flanco ascendente de relógio e enviados com os bits menos significativos primeiro.
A comunicação com o DCDC é feita utilizando 5 bits de endereçamento e 8 bits para dados. Na
Tabela 4.1 são apresentadas as tensões realizadas pelo conversor, consoante a palavra de tensão
Vprog, bem como a palavra de dados a enviara ao DCDC. Apesar da palavra de dados conter 8 bits,
apenas os 4 bits mais significativos servem para alterar a tensão de saída do DCDC (b4 a b7). Os
restantes 4 bits enviados deverão ter o valor lógico ‘0’.
Vprog b7 b6 b5 b4 Vout [V]
0 0 0 0 0 0.600
1 0 0 0 1 0.650
2 0 0 1 0 0.700
3 0 0 1 1 0.750
4 0 1 0 0 0.800
5 0 1 0 1 0.850
6 0 1 1 0 0.900
7 0 1 1 1 0.950
8 1 0 0 0 1.000
9 1 0 0 1 1.050
10 1 0 1 0 1.100
11 1 0 1 1 1.150
12 1 1 0 0 1.200
13 1 1 0 1 1.250
14 1 1 1 0 1.300
15 1 1 1 1 1.350
Tabela 4.1 – Tabela com as tensões de saída do DCDC para cada palavra de configuração
4. Demonstrador FPGA
33
4.3.4 Implementação do Sensor Global
A implementação do Sensor Global em FPGA teve algumas particularidades devido às
condições oferecidas pelo dispositivo. Quando o sensor PVTA foi implementado pela primeira vez, a
ferramenta de síntese eliminou quase todos os flip-flops e portas NOR da cadeia e substitui-os por
lógica equivalente. Por este motivo foi necessário impor uma restrição de não optimização nos
barramentos test_data e Therm_Code através do atributo “keep”. Com esta modificação foi possível
obter os primeiros resultados do código termómetro, mas verificou-se que eram incoerentes. Esta
incoerência ficou a dever-se ao atraso dos sinais aging e clkgen originado pelo elevado fanout. O
problema foi resolvido introduzindo buffers presentes na FPGA para transporte e distribuição de
sinais de relógio: “BUFG”. Dada a enorme utilidade destes buffers, a sua utilização foi também
estendida ao bloco Temporizador a fim de ser utlizado no sinal edge, clkdiv e no relógio da máquina
de estados.
Por fim, o sensor foi implementado utilizando uma cadeia de atraso com 36 portas NOR, 4 no
início sem flip-flops e 32 com flip-flops consecutivos fornecendo um código termómetro também de
32 bits. Esta solução foi adoptada para permitir máxima versatilidade durantes a fase de teste.
Relativamente ao temporizador, foram utilizados 18 registos para dividir o sinal de relógio cuja saída
pode ser configurada manualmente. Por segurança é aconselhável que o período do sinal clkdiv seja
pelo menos maior do que a duração da comunicação de dados via SPI para controlo da tensão do
DCDC.
4.3.5 Multiplicador Pipeline
O método usado para garantir que o sistema de optimização proposto não causa falhas consiste
em efectuar um teste exaustivo e aferir que o resultado é sempre o desejado. Este é o motivo pelo
qual foi colocado um multiplicador com autoteste no demonstrador FPGA. A saída do multiplicador
implementado tem dimensão 32 bits (obtida de duas entradas de 16 bits) e contem dois andares
pipeline. Estas especificações foram escolhidas de modo a obter uma taxa de ocupação,
multiplicador mais BIST, superior à dos restantes elementos, garantindo o seu funcionamento em
torno da frequência fornecida pela FPGA. O código VHDL implementado foi o mesmo utilizado por J.
Semião et al. em [6]. Tanto o multiplicador como o algoritmo de autoteste são completamente
independentes dos restantes blocos implementados pelo que apenas têm em comum o sinal de
relógio. O correcto funcionamento da FPGA origina uma assinatura do BIST permanente, sendo uma
boa referencia para a calibração do sensor. Com o objectivo de aumentar a correlação entre o
desempenho do multiplicador e o desempenho do sensor, o multiplicador foi implementado
recorrendo às LUT. Deste modo são evitados os multiplicadores dedicados e extremamente
optimizados que não reflectem o real desempenho dos restantes blocos lógicos da FPGA.
4. Demonstrador FPGA
34
4.4 Bloco de Controlo e Optimização
O algoritmo de optimização implementado, e apresentado na Figura 4.7, baseia-se na
classificação do desempenho registado pelo sensor em três categorias. Lento, estável e rápido são
os códigos que a máquina de estados interpreta para decidir se aumenta, mantém ou diminui a
tensão de alimentação. Estas três combinações são dadas pelo sinal cut_speed que é gerado a partir
do código termómetro fornecido pelo Sensor Global.
Figura 4.7 – Diagrama de estados do bloco de Controlo e Optimização
Por uma questão de segurança e para prevenir erros na comunicação externa, todos os estados
a partir da verificação convergem para o estado de escrita no SPI, mesmo que a palavra de tensão
permaneça igual à anterior.
4. Demonstrador FPGA
35
4.4.1 Caminho de Dados
Para entender melhor o processo de optimização realizado pelo no bloco de controlo, é
apresentada abaixo uma lista com a descrição dos principais sinais de comando.
Entrada:
Vmax – palavra de tensão máxima a fornecer ao circuito num dado instante.
Vmin – palavra de tensão mínima admissível pelo circuito num dado instante.
setvmax – sinal exterior que ordena a imposição da palavra de tensão Vmax ao circuito.
cut_speed – sinal com 2 bits que indica o desempenho do circuito. “00” para lento, “10” para
estável e “11” para rápido. A combinação “01” não deverá surgir mas para todos os efeitos é
interpretada como rápido.
ready – criado a partir do sinal clkgen atrasado de um ciclo de relógio, indica ao controlo que os
dados de uma nova verificação de desempenho estão disponíveis.
busy – sinal enviado pelo bloco de comunicação SPI durante o processo de comunicação.
Saída:
Vprog – palavra com a tensão a fornecer ao circuito ordenada por comunicação SPI.
SPI_EN – sinal para ordenar ao bloco SPI o envio da nova palavra de tensão (Vprog).
subtract – sinal enviado ao Somador/Subtractor ordenando um subtracção.
muxout – sinal para escolher a origem da próxima palavra de tensão.
vprog_EN – sinal para activar a escrita no registo que guarda a palavra de tensão Vprog.
Figura 4.8 – Caminho de dados necessário para o funcionamento do controlo
4. Demonstrador FPGA
36
A lógica aritmética utilizada no cálculo da palavra tensão é apresentada Figura 4.8. É utilizado
um registo para guardar a palavra de tensão Vprog a enviar ao DCDC através bloco SPI e um
multiplexer para inicializar o DCDC com a palavra de tensão Vmax. Durante o processo de
optimização é utilizado um Somador/Subtractor para incrementar ou decrementar uma unidade à
palavra de tensão Vprog. Por fim são utilizados dois comparadores para interromper a optimização
caso sejam alcançados os limites Vmax ou Vmin.
4.4.2 Comportamento
Neste subcapítulo será detalhada a função de cada estado apresentado na Figura 4.7.
INIT – estado inicial no qual é transferida a palavra de tenção Vmax para o registo contendo
Vprog. O processo é realizado seleccionando a entrada Vmax no multiplexer e activando a
escrita no registo.
Verify – estado no qual é avaliado o desempenho do circuito através do sinal cut_speed.
Comp_add – estado no qual é comparada a actual palavra de tensão Vprog com Vmax a fim de
verificar se foi atingido o limite superior de tensão.
Comp_sub – estado no qual é comparada a actual palavra de tensão Vprog com Vmin a fim de
verificar se foi atingido o limite inferior de tensão.
Increase – estado no qual é efectuado o incremento de uma unidade à palavra de tensão
Vprog. O processo é realizado seleccionando no multiplexer a entrada vinda do
Somador/Subtractor, activando a escrita no registo e ordenando a operação de soma ao
Somador/Subtractor.
Decrease – estado no qual é efectuado o decremento de uma unidade à palavra de tensão
Vprog. O processo é realizado seleccionando no multiplexer a entrada vinda do
Somador/Subtractor, activando a escrita no registo e ordenando a operação de subtracção ao
Somador/Subtractor.
SPI_Write – estado no qual é dada ordem ao bloco SPI para comunicar a nova palavra de
tensão Vprog ao DCDC.
Wait_1 – estado no qual se aguarda que o sinal ready venha a ‘0’. Este estado é essencial uma
vez que a transição para ‘1’ do sinal ready indica a presença de novos dados de desempenho
vindos do Sensor Global. Por teste motivo é necessário esperar a sua vinda a ‘0’ uma vez que o
período do sinal ready é muito superior ao tempo que a máquina de estados demora para
realizar as operações até este estado.
Wait_2 – estado no qual se aguarda pela conclusão da transmissão de dados SPI (sinal busy)
bem como a chegada de novos dados por parte do Sensor Global (sinal ready).
4. Demonstrador FPGA
37
4.4.3 Multiplexer tri-state (cut_speed)
O sinal cut_speed foi criado para facilitar o tratamento da informação gerada pelo Sensor
Global. Inicialmente foi implementado um codificador para converter o código termómetro numa
palavra digital que posteriormente seria comparada com a palavra de calibração para definir qual a
categoria de velocidade a atribuir. No entanto, após alguns testes percebeu-se que esta abordagem
tem elevados custos no caso de ser implementada com portas lógicas, quer na quantidade de portas
necessárias mas principalmente no tempo de atraso. Isto porque na FPGA utilizada apenas é
possível implementar codificadores lógicos em que os bits mais significativos dependem de todos os
anteriores. Esta situação é particularmente gravosa uma vez que requer esperar pela propagação do
código termómetro no codificador a cada verificação efectuada pelo sensor.
Como solução final, implementou-se este conceito mas no sentido inverso. Deste modo,
pretende usar-se um descodificador para converter a palavra de calibração e desse modo atacar um
conjunto de buffers tri-state ligados ao código termómetro. O objectivo é multiplexar os dois bits
consecutivos do código termómetro correspondentes à calibração do caminho crítico a simular. Na
Figura 4.9 pode ver-se que são utilizados dois multiplexers, um para cada bit do sinal cut_speed,
correspondentes à selecção dos dois bits consecutivos do código termómetro. Os dois mutiplexers
têm a vantagem de ser realizados usando apenas um descodificador. Isto é feito desfasando a
sequência com que os bits do descodificador entram no segundo conjunto de buffers tri-state. A
utilização destes buffers tem também a vantagem de poder criar grandes multiplexers de atraso
reduzido, uma vez que evita toda a lógica sequencial e tira proveito do facto do descodificador ficar
estático após a calibração.
Figura 4.9 – Multiplexer tri-state para geração do sinal cut_speed
4. Demonstrador FPGA
38
39
Resultados Experimentais
Conteúdo
5.1 Características do Demonstrador . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2 Simulações Post-Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3 Teste em Temperatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5. Resultados Experimentais
40
5.1 Características do Demonstrador
FPGA – Digilent® Xilinx
® Spartan3 XC3S400-4FT256 [15] (Tabela 5.1)
DCDC – Buck com tensão de saída programável por comunicação SPI, VIN= [2,3 ; 3,6]V,
VOUT= [0,6 ; 3,6]V com avanços de 50mV, IOUT(max)=1,5A
Device System Gates
Equivalent Logic Cells
CLB Array
(One CLB = Four Slices) Distributed RAM Bits (K=1024)
Block RAM Bits
(K=1024) Dedicated Multipliers DCMs
Maximum User I/O
Maximum Differential I/O Pairs Rows Columns
Total
CLBs
XC3S400 400K 8,064 32 28 896 56K 288K 16 4 265 116
Tabela 5.1 – Atributos da FPGA
Na Figura 5.1 encontra-se a fotografia do protótipo de teste criado e que foi utilizado para obter
os resultados experimentais. A frequência de operação utilizada foi a máxima fornecida pela FPGA
(50MHz). Já a velocidade da comunicação SPI utilizada foi de 396,83KHz e obteve-se mediante
alguns testes de estabilidade. Para facilitar o processo de correcção de erros mas também para
acompanhar o comportamento dos vários dipositivos dentro da FPGA, foram utilizados os displays de
sete segmentos para mostrar a palavra de tensão Vprog, o valor do sinal cut_speed, o código
termómetro em hexadecimal e o código de autoteste ou BIST. A calibração manual do sensor é
efectuada através dos 5 interruptores mais à direita, deixando três interruptores disponíveis para
seleccionar a informação a apresentar nos displays. Após vários testes o demonstrador foi calibrado
de forma a obter a palavra de tensão 06H (0110b) correspondente a 0,9V. No entanto, devido a uma
questão de calibração do DCDC a saída encontra-se 30mV acima do valor tabelado, posicionando a
tensão de alimentação nos 0,93V.
Figura 5.1 – Fotografia do protótipo final
5. Resultados Experimentais
41
5.2 Simulações Post-Route
Para mostrar o comportamento de alguns sinais internos e verificar o cumprimento dos
objectivos propostos, foram realizadas algumas simulações post-route a alguns dos módulos
implementados na FPGA. As simulações são efectuadas individualmente para cada bloco, por esse
motivo os sinais de entrada em cada bloco são fornecidos manualmente no ficheiro de simulação.
Figura 5.2 – Diagrama temporal do bloco Temporizador
A Figura 5.2 apresenta o diagrama temporal do bloco Temporizador. Pode ver-se que foram
cumpridos os objectivos especificados para este bloco: o sinal edge termina depois do clkgen e o
sinal aging é o último a vir a ‘1’. Através desta simulação foi medido o período entre o início do sinal
edge e o sinal clkgen. No Capitulo 3.3.2 tinha sido referido que este intervalo deveria estar o mais
próximo possível do período de relógio. O resultado obtido foi então 19,952ns, o que é bastante
próximo dos 20ns do período de relógio. Tendo em conta que se está num ambiente FPGA, este
resultado foi considerado bastante bom. Comparando estes resultados com os da simulação
comportamental pode ver-se um forte atraso nas saídas Q0 e Q1 do contador da máquina de
estados. No entanto este atraso não tem qualquer influência no comportamento do sensor uma vez
que os sinais aging, edge e clkgen estão sincronizados entre si.
Figura 5.3 – Diagrama temporal do bloco SPI
No caso da simulação do bloco SPI apresentada na Figura 5.3, como a frequência de transição
suportada pelo protocolo é muito inferior aos 50Mhz utilizados pela FPGA, não são visíveis quaisquer
desfasamentos nos sinais de comunicação.
5. Resultados Experimentais
42
Figura 5.4 – Diagrama temporal do Sensor PVTA
Na simulação apresentada na Figura 5.4, referente ao Sensor PVTA, pode ver-se que após o
sinal clkgen vir a ‘1’, a captura não acontece instantaneamente em todos os flip-flops (região a
vermelho em torno dos 200ns). No entanto como a margem de captura é muito reduzida não é
detectada qualquer irregularidade no código termómetro final. Como seria de esperar, quando a
captura se faz na fronteira de propagação, o simulador não consegue prever se o bit é ‘0’ ou ‘1’ e
mostra uma indeterminação.
5. Resultados Experimentais
43
5.3 Teste em Temperatura Para demonstrar o correcto funcionamento do Sensor Global e respectivo Controlo Digital, foi
efectuado o teste a diferentes temperaturas para comprovar a sua estabilidade. A realização do teste
obrigou à implementação de uma estratégia de comunicação com o exterior da câmara de
temperatura de modo a obter a informação sobre a conclusão do autoteste e sobre a validade do
respectivo resultado. A comunicação com a placa da FPGA, além de incluir a recepção da
informação mencionada, também requer o envio do sinal de reset do autoteste e um sinal adicional
para forçar o modo de operação não optimizado que aplica a tensão de 1,2V ao núcleo da FPGA.
Para tal foi utilizada a interface de entrada e saída da FPGA juntamente com um cabo usb de
aquisição de sinais digitais.
Equipamentos:
Voltímetro – HP 34401A
Amperímetro – HP 34401A
Termómetro – Keithley 2001
Câmara de Temperatura – TestEquity Half Cube
Modo em Teste Temp. [°C] Tensão [V] Corrente [mA] Vprog Potência [mW] Poupança [%]
1.2 Standby
0
1.233 7.64 C 9.42 x
Run 1.226 17.89 C 21.93
DVS Standby 0.927 3.72 6 3.45 63.38
Run 0.927 10.97 6 10.17 53.63
1.2 Standby
10
1.233 7.98 C 9.84 x
Run 1.226 18.24 C 22.36
DVS Standby 0.926 3.90 6 3.61 63.31
Run 0.922 11.15 6 10.28 54.03
1.2 Standby
25
1.232 8.91 C 10.98 x
Run 1.226 19.22 C 23.56
DVS Standby 0.926 4.39 6 4.07 62.93
Run 0.921 11.68 6 10.76 54.33
1.2 Standby
35
1.230 9.72 C 11.96 x
Run 1.223 20.03 C 24.50
DVS Standby 0.926 4.86 6 4.50 62.37
Run 0.920 12.16 6 11.19 54.33
1.2 Standby
45
1.229 10.87 C 13.36 x
Run 1.223 21.18 C 25.90
DVS Standby 0.925 5.53 6 5.12 61.68
Run 0.920 12.81 6 11.79 54.48
1.2 Standby
55
1.228 12.38 C 15.2 x
Run 1.221 22.67 C 27.68
DVS Standby 0.924 6.44 6 5.95 60.86
Run 0.919 13.72 6 12.61 54.44
1.2 Standby
65
1.227 14.40 C 17.67 x
Run 1.219 24.76 C 30.18
DVS Standby 0.923 7.66 6 7.07 59.99
Run 0.918 14.97 6 13.74 54.47
1.2 Standby
75
1.224 16.96 C 20.76 x
Run 1.216 27.30 C 33.20
DVS Standby 0.921 9.26 6 8.53 58.91
Run 0.916 16.56 6 15.17 54.31
Tabela 5.2 – Medições em Temperatura
5. Resultados Experimentais
44
Os limites do teste em temperatura foram impostos pelas especificações da FPGA [15], sendo a
temperatura mínima de 0ºC e a máxima de 80ºC. Na Tabela 5.2 são apresentados os resultados
obtidos com as tensões e correntes correspondentes ao modo de funcionamento não optimizado da
FPGA (1,2V) e para o modo com a tensão de alimentação optimizada (DVS). Foram ainda
efectuadas medidas com o multiplicador activo (Run) e em repouso (Standby). Através da tensão e
da corrente foi calculada a potência dissipada na FPGA para os casos 1,2V e DVS. Dado que a
frequência de relógio se mantém para ambas as situações, o tempo de processamento é idêntico e
por isso a proporção entre a potência e a energia é a mesma para os casos 1.2V e DVS. Assim, os
valores da potência podem ser usados para quantificar a poupança de energia recorrendo à
expressão (5.1). Por fim, na Tabela 5.2, a coluna Vprog mostra o valor da palavra de tensão
fornecida ao DCDC em formato hexadecimal.
𝑃 = ( 𝑃
𝑃 2 ) (5.1)
Com os resultados da Tabela 5.2 foram elaborados quatro gráficos. Nas legendas apresentadas
juntamente com os gráficos a designação Sb significa Standby e a designação Rn significa Run.
Figura 5.5 – Gráfico da variação da tensão de alimentação do núcleo digital da FPGA com a temperatura
Na Figura 5.5 é apresentado o gráfico da variação da tensão de alimentação do núcleo digital da
FPGA para as várias temperaturas. É registada uma ligeira queda na tensão quando o circuito está
em carga no modo Run, mas deve-se apenas à resistência interna do amperímetro e fios de ligação
entre o DCDC e a FPGA, já que o DCDC regula eficazmente a sua tensão de saída.
0.9
0.95
1
1.05
1.1
1.15
1.2
1.25
0 15 30 45 60 75
Ten
são
[V
]
Temperatura [ºC]
1,2V Sb
1,2V Rn
DVS Sb
DVS Rn
5. Resultados Experimentais
45
Figura 5.6 – Gráfico da variação da corrente consumida pelo núcleo digital da FPGA com a temperatura
Na Figura 5.6 é apresentado o gráfico da variação da corrente consumida pelo núcleo digital da
FPGA com a temperatura. Pode ver-se que em carga e nos modos 1,2V (Standby e Run) a corrente
cresce mais rapidamente que no caso do DVS, aumentando de forma significativa o desperdício de
energia em temperaturas altas.
Figura 5.7 – Gráfico da variação da Potência consumida pelo núcleo digital da FPGA com a temperatura
0
5
10
15
20
25
30
0 15 30 45 60 75
Cu
rre
nte
[m
A]
Temperatura [ºC]
1,2V Sb
1,2V Rn
DVS Sb
DVS Rn
0
5
10
15
20
25
30
35
0 15 30 45 60 75
Po
tên
cia
[mW
]
Temperatura [ºC]
1,2V Sb
1,2V Rn
DVS Sb
DVS Rn
5. Resultados Experimentais
46
Na Figura 5.7 pode ver-se o gráfico com a variação da Potência consumida pelo núcleo digital
da FPGA com a temperatura. Como a variação da tensão em ambos os modos ronda as dezenas de
milivolts, o andamento da potência é muito semelhante ao observado na corrente.
Figura 5.8 – Poupança obtida com a utilização do Sensor Global para diferentes temperaturas
Analisando os resultados na perspectiva da poupança de energia, Figura 5.8, pode ver-se que
nas temperaturas mais elevadas existe uma diminuição da poupança em Standby (Sb). Contudo,
esta continua ainda a acima dos 58%. Mais importante é o facto de a poupança manter-se
praticamente constante quando a FPGA está em carga (Rn). Esta situação mostra que é possível
manter uma elevada redução no consumo de energia, mesmo em altas temperaturas.
52
54
56
58
60
62
64
0 15 30 45 60 75
Po
up
ança
[%
]
Temperatura [ºC]
DVS Sb
DVS Rn
47
Conclusões e Trabalho Futuro
Conteúdo
6.1 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.2 Trabalho Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6. Conclusões e Trabalho Futuro
48
6.1 Conclusões
Uma análise ao trabalho realizado permite concluir que todos os objectivos foram cumpridos. O
protótipo desenvolvido funcionou correctamente, permitindo efectuar a validação do sensor e
quantificar os ganhos possíveis com a optimização implementada, mesmo nas altas temperaturas.
Foi possível integrar o sensor na FPGA, monitorizando o desempenho da lógica desta, e incluir o
módulo de controlo que através do SPI comunica com o DCDC externo e optimiza a tensão de
alimentação da FPGA. O multiplicador com autoteste implementado na FPGA permitiu verificar que a
solução de optimização implementada não compromete o correcto processamento e proporciona
ganhos entre os 53% e os 63% dependendo das condições de temperatura e de carga.
A implementação efectuada, além de permitir validar a metodologia de optimização, comprova
que a sua implementação não interfere com o fluxo de projecto dos circuitos cuja tensão de
alimentação é optimizada.
6.2 Trabalho Futuro
Como trabalho futuro seria interessante poder realizar algumas das seguintes tarefas:
Utilização de múltiplos sensores posicionados em diferentes regiões do chip para efectuar a
optimização com base na temperatura e tensão de alimentação local.
Testar o funcionamento para diferentes frequências de relógio (o actual algoritmo de controlo
já está preparado para esta situação)
Prototipagem em silício integrado uma PMU interna com maior sensibilidade no ajuste da
tensão e com um protocolo de comunicação mais rápido.
49
Bibliografia
[1] S. Gochman, R. Ronen, I. Anati, A. Berkovits, T. Kurts, A. Naveh, A. Saeed, Z. Sperber and R. C. Valentine, "The Intel® Pentium® M Processor: Microarchitecture and Performance," Intel® Technology Journal, vol. 7, no. 2, Mai. 2003.
[2] “AMD PowerNow!™ Technology Dynamically Manages Power and Performance,” Nov. 2000. [Online]. Available: http://support.amd.com/us/Embedded_TechDocs/24404a.pdf.
[3] D. Ernst, N. S. Kim, S. Das, S. Pant, R. Rao, T. Pham, C. Ziesler, D. Blaauw, T. Austin, K. Flautner and T. Mudge, "Razor: A Low-Power Pipeline Based on Circuit-Level Timing Speculation," in Microarchitecture, 2003. MICRO-36. Proceedings. 36th Annual IEEE/ACM International Symposium on, Dez. 2003.
[4] V. Reddy, A. Krishnan, A. Marshall, J. Rodriguez, S. Natarajan, T. Rost and S. Krishnan, "Impact of Negative Bias Temperature Instability on Digital Circuit Reliability," in Reliability Physics Symposium Proceedings, 2002.
[5] J. Vazquez, V. Champac, A. iesemer, . eis, . emião, . Tei eira, M. antos and . Tei eira, "Predictive Error Detection by On-line Aging Monitoring," in On-Line Testing Symposium (IOLTS), 2010.
[6] J. Semiao, J. Pachito, C. Martins, B. Jacinto, J. Vazquez, V. Champac, M. Santos, I. Teixeira and J. Teixeira, "Aging-aware Power or Frequency Tuning with Predictive Fault Detection," in Design & Test of Computers, 99 ed., vol. PP, IEEE, 2012.
[7] M. Khan, S. Hamdioui and F. Catthoor, "Comparative BTI Analysis in Nano-scale Circuits Lifetime," in 4th Workshop on Design for Reliability, Paris, France, 2012.
[8] D. K. Schroder, "Negative bias temperature instability: What do we understand?," Microelectronics Reliability, vol. 47, no. 6, 2007.
[9] W. Wang, S. Yang, S. Bhardwaj, S. Vrudhula, F. Liu and Y. Cao, "The Impact of NBTI Effect on Combinational Circuit: Modeling, Simulation, and Analysis," in IEEE Transactions on Very Large Scale Integration Systems, vol. 18, Feb. 2010, pp. 173-183.
[10] S. Bhardwaj, W. Wang, R. Vattikonda, Y. Cao and a. S. Vrudhula, "Predictive Modeling of the NBTI Effect for Reliable Design," Custom Integrated Circuits Conference, 2006. CICC '06. IEEE, Sept. 2006.
[11] D. I. Kim, J. Kim, M. J. Kim, J. R. Moulic and H. H. Song, "System and Method for Monitoring Reliability of a Digital System". Patent 7495519, 24 Fev 2009.
[12] C. R. Gauthier, P. R. Trivedi and G. S. Yee, "Embedded Integrated Circuit Aging Sensor System". Patent 7054787, 30 Maio 2006.
[13] K. Kang, S. Gangwal, S. P. Park and K. Roy, "NBTI induced performance degradation in logic and memory circuits: how effectively can we approach a reliability solution?," in Design Automation Conference, 2008.
[14] K.-C. Wu and D. Marculescu, "Joint Logic Restructuring and Pin Reordering against NBTI-Induced Performance Degradation," in Design, Automation & Test in Europe Conference & Exhibition, 2009.
[15] "Digilent® Xilinx® Spartan3 XC3S400-4FT256," Digilent, Inc., [Online]. Available: http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD.
Bibliografia
50
51
Anexos
7. Anexos
52
Figura 7.1 – Esquema eléctrico dos dispositivos de alimentação da placa FGPA utilizada