Padrão de formatação - paginas.fe.up.ptee07306/wp-content/uploads/2013/03/PDI_e... · A...

33
Faculdade de Engenharia da Universidade do Porto Redução da potência de uma interface de alta velocidade em tecnologia CMOS através de “power gating” Luís Miguel Granja Gomes VERSÃO FINAL Relatório final da UC Preparação para a Dissertação realizado no âmbito do Mestrado Integrado em Engenharia Eletrotécnica e de Computadores Major Telecomunicações Orientador na FEUP: Prof. Dr. João Canas Ferreira Orientador na Synopsys: Eng.º Hélder Araújo 13 de Fevereiro de 2013

Transcript of Padrão de formatação - paginas.fe.up.ptee07306/wp-content/uploads/2013/03/PDI_e... · A...

Faculdade de Engenharia da Universidade do Porto

Redução da potência de uma interface de alta velocidade em tecnologia CMOS através de

“power gating”

Luís Miguel Granja Gomes

VERSÃO FINAL

Relatório final da UC Preparação para a Dissertação realizado no âmbito do Mestrado Integrado em Engenharia Eletrotécnica e de Computadores

Major Telecomunicações

Orientador na FEUP: Prof. Dr. João Canas Ferreira Orientador na Synopsys: Eng.º Hélder Araújo

13 de Fevereiro de 2013

ii

© Luís Miguel Granja Gomes, 2013

iii

Índice

Índice ............................................................................................... iii

Lista de figuras ................................................................................... iv

Lista de tabelas ................................................................................... v

Abreviaturas e Símbolos ........................................................................ vi

Capítulo 1 .......................................................................................... 1

Introdução ......................................................................................................... 1 1.1 - Enquadramento ........................................................................................ 1 1.2 - Motivação ............................................................................................... 2 1.3 - Objetivos ................................................................................................ 3 1.4 - Estrutura do documento .............................................................................. 3

Capítulo 2 .......................................................................................... 4

Estado da Arte .................................................................................................... 4 2.1 - Energia e Potência ..................................................................................... 4 2.2 - Potência Dinâmica vs Potência Estática ........................................................... 5 2.3 - Power Gating - Conceito .............................................................................. 6 2.4 - Principais Desafios do Power Gating ............................................................... 9 2.5 - Metodologia para implementação de Power Gating com suporte de ferramentas

Synopsys ............................................................................................... 18

Capítulo 3 ......................................................................................... 20

Proposta de Trabalho ......................................................................................... 20 3.1 - Metodologia ........................................................................................... 20 3.2 - Ferramentas de trabalho ........................................................................... 21 3.3 - Plano de trabalho .................................................................................... 22 3.4 - Resultados Esperados ............................................................................... 25

Referências ....................................................................................... 26

iv

Lista de figuras

Figura 2.1- Perfil de um bloco alvo de Power Gating. Fonte: [1] ..................................... 7

Figura 2.2- Utilização de Sleep Transistors. Fonte: [3] ................................................. 7

Figura 2.3 - Diagrama de blocos de um sistema com Power Gating. Fonte: [1] .................... 8

Figura 2.4 - Implentação de Fine Grain numa porta AND. Fonte: [1] .............................. 11

Figura 2.5 - Implementação Coarse Grain. Fonte: [2] ................................................ 12

Figura 2.6 - Header Switch(esquerda) e Footer Switch(direita). Fonte: [1] ...................... 12

Figura 2.7 - Implementação em Anel. Fonte: [1] ...................................................... 13

Figura 2.8 - Implementação em rede. Fonte: [1] ...................................................... 14

Figura 2.9 - Registo de retenção. Fonte: [1]............................................................ 16

Figura 2.10 - Célula de isolamento que fixa a saída em "0". Fonte [1] ............................. 18

Figura 2.11- Metodologia de implementação utilizando ferramentas Synopsys. Fonte: [2] .... 19

Figura 3.1 - Planemanento: Diagrama de Gantt ........................................................ 24

v

Lista de tabelas

Tabela 1.1 - Técnicas Low Power ........................................................................... 2

vi

Abreviaturas e Símbolos

Lista de abreviaturas

CAD Computer Aided Design

CMOS Complementary metal–oxide–semiconductor

GDSII Graphic Database System II

HDL Hardware Description Languages

HDMI High-Definition Multimedia Interface

IP Intellectual Property

LVA Linha Virtual de Alimentação

RTL Register Transfer Level

SBPF Synopsys Binary Parasitic Format

SoC System-On-A-Chip

SPEF Standard Parasitic Exchange Format

ST Sleep Transistor

ITRS INTERNATIONAL TECHNOLOGY ROADMAP FOR SEMICONDUCTORS

VLSI Very Large Scale Integration

Capítulo 1

Introdução

Esta dissertação foi proposta pela Synopsys Portugal e é realizada no âmbito do Mestrado

Integrado em Engenharia Eletrotécnica e de Computadores da Faculdade de Engenharia da

Universidade do Porto.

O presente capítulo introduz o tema da dissertação e os motivos pelos quais a sua

realização é pertinente. São listados os principais objetivos a alcançar e apresentada a

estrutura do documento.

1.1 - Enquadramento

O tempo dedicado à utilização de dispositivos eletrónicos ocupa uma grande percentagem

da vida quotidiana. Estes dispositivos sofreram uma notável expansão e desenvolvimento nas

últimas décadas. É possível, por exemplo, ler um livro num dispositivo de dimensões mínimas,

cuja autonomia atinge várias horas. É ainda inegável, a dependência que apresentamos em

relação à utilização de muitos equipamentos em áreas tão distintas como a medicina ou o

entretenimento.

A expansão verificada é possível devido à revolução e aos avanços no desenvolvimento de

circuitos VLSI (Very Large Scale Integration) em tecnologia CMOS. A utilização de Linguagens

de Descrição de Hardware (HDL), a reutilização de modelos (IP cores) e a utilização de

ferramentas CAD permitiu que os circuitos aumentassem a sua frequência de funcionamento e

reduzissem o tamanho [1].

À medida que a tecnologia encolhe e aumenta a sua performance, surgem problemas

associados ao consumo de energia. Maiores frequências refletem-se num maior consumo de

energia dinâmica. Por sua vez, menores dimensões refletem-se num aumento do consumo

estático. Este problema levou os projetistas a desenvolverem técnicas para diminuir o

consumo de energia dos circuitos VLSI, em ambas as componentes dinâmica e estática. Entre

estas técnicas, as mais utilizadas estão resumidas na Tabela 1.

Esta dissertação é realizada em conjunto com a Synopsys Portugal e tem como objetivo a

redução da potência de uma das suas interfaces de alta velocidade através da implementação

de Power Gating, atuando ao nível do consumo estático.

2 Introdução

Tabela 1.1 - Técnicas Low Power

1.2 - Motivação

Até aos anos 90, a expansão da tecnologia media-se pelo número de transístores por chip

e pela sua frequência de funcionamento. De acordo com a lei de Moore, assistiu-se a um

grande crescimento na integração de cada vez mais transístores, potenciado pela redução do

seu tamanho. Este fenómeno é denominado de scaling.

O scalling permitiu que os circuitos se tornassem cada vez mais pequenos e mais rápidos.

No entanto a maior densidade de transístores, conduziu a um aumento da densidade de

potência e, consequentemente, da temperatura.

A partir desse ponto, começou-se a dar importância ao consumo de potência devido a

diversos fatores. Aparelhos portáteis são alimentados a baterias, o que torna importante

qualquer redução do consumo energético. Por outro lado a imunidade ao ruido diminuí e os

custos dos sistemas de refrigeração e de packaging aumentam significativamente. Como

exemplo, em 2006 os centros de servidores dos EUA consumiam, cerca de 61 TWh, o que

corresponde a um custo de 4.5 mil milhões de dólares em sistemas de refrigeração [4]. A

INTERNATIONAL TECHNOLOGY ROADMAP FOR SEMICONDUCTORS (ITRS) afirma que, neste

momento a potência tornou-se o principal fator limitante, em detrimento da velocidade.

Inicialmente, a potência dinâmica dominava as preocupações dos projetistas e ia sendo

combatida com a diminuição da tensão de alimentação. Para manter o aumento de

performance, transístores com tensões de threshold mais baixas começaram a ser utilizados,

o que potenciou um aumento das correntes de fuga. Sendo assim, para tecnologias

avançadas, a partir dos 90nm, a potência estática (conhecida como leakage) começa a

sobrepor-se à potência dinâmica [1].

É neste aspeto que esta dissertação pretende atuar, ao implementar Power Gating, como

uma das técnicas mais eficazes de redução da potência estática. Estudos afirmam que é

Técnica Princípio de funcionamento Objetivo

Clock Gating Desligar o sinal de relógio Diminuir potência

dinâmica

Otimização ao

nível das portas

lógicas

Reordenar portas lógicas e operandos para

diminuir atividade de comutação

Diminuir potência

dinâmica

Multi-threshold Utilizar transístores com Vt baixo, apenas

em caminhos críticos

Reduzir fugas

Power Gating Utilização de células especiais para

desligar certos blocos quando estes não

estão em funcionamento.

Reduzir fugas

Multi VDD Utilizar tensões de alimentação mais

baixas em blocos que possam funcionar a

frequências mais baixas

Reduzir quadraticamente

a potência dinâmica.

Introdução 3

possível reduzir o consumo de potência cerca de 1000x [3]. A justificação é simples: quanto

menos tempo o circuito estiver ligado, menos potência dissipará.

Como já referido na secção anterior, o método Power Gating será implementado numa

interface de alta velocidade. Este tipo de interfaces tem estado cada vez mais em foco no

desenvolvimento de sistemas. Muitos dos dispositivos que utilizamos no dia-a-dia, como

televisores ou dispositivos de armazenamento, utilizam cada vez maiores taxas de

transferências de dados, chegando aos Gbps, quando há alguns anos apenas atingiam taxas na

ordem dos Mbps. Por exemplo, a versão 1.4 do HDMI, atinge 3.4Gbps por canal, esperando-se

que atinga os 6Gbps na verão 2.0 (lançamento programado para o primeiro semestre de 2013)

[5]. Considerando, a crescente taxa de utilização de interfaces deste tipo, e o aumento das

suas taxas de transmissão, torna-se importante atuar no controlo do consumo de energia.

1.3 - Objetivos

Recorrendo à ajuda de ferramentas CAD, como fermentas de síntese lógica, síntese física

e de simulação e análise, esta dissertação tem como objetivos:

1. Reduzir a potência de uma interface de alta velocidade em tecnologia CMOS, através

da implementação de Power Gating;

2. Não prejudicar o desempenho da interface em questão;

3. Não alterar a funcionalidade da interface em questão.

Com o evoluir dos trabalhos, é natural que mais objetivos específicos sejam introduzidos.

1.4 - Estrutura do documento

No segundo capítulo é levantado o estado da arte no que diz respeito à aplicação de

Power Gating.

Finalmente o terceiro capítulo descreve a metodologia a seguir e apresenta o plano de

trabalhos proposto.

Capítulo 2

Estado da Arte

Este capítulo apresenta conceitos associados ao projeto de circuitos de baixa potência,

relevantes para a compreensão do problema. É ainda explicado o conceito que suporta a

metodologia Power Gating bem como os componentes e desafios críticos para uma correta

implementação da mesma.

2.1 - Energia e Potência

Potência e energia são dois conceitos muitas vezes confundidos. Quando nos referimos a

potência, consideramos a potência instantânea presente no circuito ou num elemento do

circuito. É definida como o produto da corrente que o atravessa pela tensão aos seus

terminais, e é expressa em Watts (W):

( ) ( ) ( ) (2.1)

A energia consumida ( ) pelo circuito durante um intervalo de tempo é o integral da

potência instantânea, ou seja a área delimitada pela curva da potência. A sua unidade SI é o

Joule (J), mas no contexto das baterias é normalmente utilizada a unidade Watt-hora (W-hr)

= 3600J.

(2.2)

Estado da Arte 5

O estado de funcionamento de um dispositivo eletrónico influencia a potência instantânea. Se

considerarmos um aparelho de comunicação móvel, uma chamada ativa implica, certamente,

mais potência que o modo standby. Desta forma, quanto maior a potência instantânea no

dispositivo mais energia será consumida e, consequentemente, o tempo de vida da bateria

decresce.

2.2 - Potência Dinâmica vs Potência Estática

No contexto de aplicação de Power Gating, é a potência estática que merece maior

atenção pois é ela que será maioritariamente afetada. No entanto é interessante perceber de

onde vem o conjunto da potência num circuito CMOS.

A potência total consumida por um circuito CMOS é igual à soma da potência dinâmica e

da potência estática:

(2.3)

Potência dinâmica

A Potência Dinâmica ( ) é resultado da carga e descarga de capacidades, resultante da

atividade de comutação dos transístores ( ), e da corrente de curto-circuito quando

ambas as redes PMOS e NMOS estão ativas ( ).

(2.4)

é função da tensão de alimentação ( ), da capacidade de carga ( ), da

frequência de relógio ( ) e da probabilidade dos sinais transitarem entre 0 e 1( ).

(2.5)

A outra componente de potência dinâmica, é função da tensão de alimentação

( ), da corrente de curto-circuito ( , muitas vezes chamada crowbar current) e do

intervalo de tempo em que ambas as redes PMOS e NMOS estão a conduzir ( ).

(2.6)

Neste contexto, desde que o tempo de subida do sinal de entrada não seja muito longo,

é negligenciável em relação a .

Potência estática

Por seu lado, está presente mesmo quando os transístores não estão a comutar. Este

tipo de potência está associado a correntes de fuga que estão sempre presentes, desde que o

circuito se encontre ligado. Por este motivo é muitas vezes referida como leakage. É o

conjunto de 3 tipos de correntes de fuga:

6 Estado da Arte

Sub-threshold Leakage ( ) - É a corrente que flui do dreno para a fonte do

transístor quando este se encontra na região de inversão fraca, ou seja,

quando . Ou, por outras palavras, é a corrente que atravessa o canal

do transístor quando este era suposto não estar a conduzir.

Gate Leakage ( ) – A corrente da porta de um transístor MOS é

idealmente zero, uma vez que esta é isolada por um material dielétrico. No

entanto, existe uma corrente que flui diretamente da gate para o substrato,

através desse material isolador.

Reverse-bias P-N Junction Leakage ( ) – Corrente que flui da fonte ou do

dreno para o substrato através dos díodos inversamente polarizados,

presentes nas junções P-N dos transístores.

A corrente de sub-thershold é fortemente dependente de . Uma diminuição de ,

implica um aumento exponencial da corrente de sub-threshold, como já referido

anteriormente. dominava a potência estática de um circuito. No entanto, com a

constante redução da espessura do material dielétrico da porta dos transístores,

tem tomado proporções significativas, atingindo 1/3 de para 90 nm, e

igualando ou ultrapassando Isub, para tecnologias mais avançadas [1].

2.3 - Power Gating - Conceito

Um SoC (system-on-a-chip) é constituído por vários blocos com funcionalidades

diferentes. Cada um desses blocos pode operar num dos seguintes modos:

Modo ativo – Quando executa a sua função e, por isso, as portas lógicas constituintes

estão a comutar.

Modo Standby – Quando o funcionamento do bloco não é necessário, ou seja, os sinais

associados mantêm o seu estado.

No Modo Standby, a potência dinâmica é eliminada, uma vez que não existe atividade de

comutação. No entanto, a potência estática mantém-se uma vez que o bloco continua

alimentado.

Estado da Arte 7

Power Gating consiste em desligar os blocos que não estão em funcionamento, diminuindo

assim as correntes de fuga, e voltar a ligá-los quando o seu funcionamento for novamente

necessário. Deste modo um bloco pode funcionar em dois modos distintos: Active Mode e

Sleep Mode. O perfil de funcionamento de um bloco em que foi aplicado Power Gating está

representado na figura 2.1.

Para desligar um bloco, transístores MOS com elevado (adiante designados por ST-sleep

transistor) são utilizados como interruptores e posicionados entre o bloco e as linhas de

alimentação:

PMOS, colocado entre VDD e o bloco, e por isso designado Header Switch;

NMOS, colocado entre GND e o bloco, e por isso designado Footer Switch.

Os blocos do circuito deixam, então, de ser alimentados diretamente pelas linhas de alimentação, para serem alimentados através dos ST. É legítimo considerar que estamos perante uma nova linha de alimentação à qual poderemos chamar Linha Virtual de Alimentação (LVA) (VDD ou GDN).

Figura 2.1- Perfil de um bloco alvo de Power Gating. Fonte: [1]

Figura 2.2- Utilização de Sleep Transistors. Fonte: [3]

8 Estado da Arte

Os ST são controlados por um sinal, o qual pode, convenientemente, ser chamado Sleep

Signal e que é gerado por um bloco denominado Controlador de Power Gating.

No caso dos Header Switches, para desligar o bloco, Sleep Signal toma o valor lógico 1, de

forma a colocar o transístor no corte. Caso se trate de um Footer Switch, acontece

precisamente o contrário, ou seja, Sleep Signal toma o valor lógico 0.

Além do controlo do Sleep Signal é necessário garantir, que quando a alimentação de um

bloco é restaurada, este inicie no mesmo estado em que estava aquando a interrupção do seu

funcionamento. Para isso, são utilizados registos que guardam o estado dos blocos. Estes

registos são denominados Registos de Retenção.

Outro aspeto a ter em conta é o fato de as saídas do bloco que sofre Power Gating serem, ao

mesmo tempo, entradas de blocos que estão sempre ligados. Estas saídas podem comutar

muito lentamente e permanecer muito tempo num valor indefinido, o que proporciona o

aumento da já falada corrente de curto-circuito ou crowbar current ( ) do bloco que se

encontra sempre ligado. Este problema pode ser atacado recorrendo a células especiais que,

quando necessário, isolam o sinal de saída e previnem a corrente de curto-circuito.

Assim sendo, e de acordo com [1] os elementos fundamentais para a implementação de

power gatins são:

Rede de Sleep Transistors (Power Switching Fabric)

Controlador de Power Gating; (Power Gating Controller)

Mecanismo de retenção de estado;

Células de isolamento (Isol)

Figura 2.3 - Diagrama de blocos de um sistema com Power Gating. Fonte: [1]

Estado da Arte 9

2.4 - Principais Desafios do Power Gating

A projeção destes elementos é a espinha dorsal da implementação de Power Gating. Contudo,

enquanto o projeto é desenvolvido há certos aspetos que devem ser tidos em conta:

Identificação de Power Islands;

O impacto na performance;

O impacto na área;

A queda de tensão imposta pelos Sleep Transistors;

A energia necessária para entrar e sair do Sleep Mode;

O tempo necessário para voltar a alimentar o bloco (Wake-up time);

A corrente que se gera, e consequente energia, durante o tempo em que alimentação

do bloco é reposta (In-Rush Current);

A flutuação gerada nas linhas de alimentação até a alimentação ser reposta

(Power/Ground Bounce), originada pela In-Rush-Current.

2.4.1 Identificação de Power Islands

O conceito de Power Islands é introduzido por [6]. Os autores apresentam uma metodologia

de alto nível em que partes do sistema com características de funcionamento semelhantes

são agregadas e posicionadas numa região que é controlada independentemente. Cada uma

destas regiões é uma Power Island e pode ser individualmente alvo de Power Gating. O

truque é analisar o sistema ao nível RTL e identificar blocos com maior sobreposição do

tempo de funcionamento e criar Power Islands que possam ser desligadas o maior número de

ciclos possíveis. Com esta metodologia ou autores afirmam que atingem poupanças no

consumo de potência entre 5% a 20% com tecnologia de 65nm.

2.4.2 Wake Up Time, In Rush Current e Power/Ground Bounce

Uma característica fulcral de qualquer implementação de Power Gating é o tempo que

decorre desde o fim do Sleep Mode e o início do Active Mode, ou seja, o tempo necessário

para repor a alimentação na LAV (conhecido como Wake-Up Time). É do interesse do

projetista diminuir este tempo, uma vez que, quanto mais rápido a alimentação for reposta,

mais tempo o circuito pode permanecer desligado, poupando mais energia.

No entanto, manter este tempo reduzido, implica uma variação abruta de corrente

instantânea ( ) que surge da linha de alimentação e que é necessária para carregar a LVA.

Esta variação abrupta de corrente, além de implicar um aumento de potência, cria flutuações

na linha de alimentação. Ora, em circuitos low power, em que a tensão de alimentação é

10 Estado da Arte

mantida baixa, qualquer variação da mesma pode provocar perturbações na operação de

todos os blocos adjacentes.

Sendo assim, existe um compromisso entre o quão rápido é possível reativar um bolco e a

flutuação da linha de alimentação.

Surge daqui, que é importante desenvolver técnicas que limitem , de forma a

diminuir as flutuações da linha de alimentação e a manter o tempo de reativação o mais

reduzido possível.

Com este objetivo foram desenvolvidos alguns métodos que estão documentados em

vários artigos. De salientar [7] que, com uma tecnologia de 180nm atingiu uma redução de

10.23% no Wake-Up Time, mantendo a mesma flutuação das linhas de alimentação

experienciada pelo Power Gating tradicional (+-0.083V). Estes resultados resultam da

ativação do circuito por fases, balanceado a variação da corrente, de forma a diminuir o

efeito na flutuação da alimentação. São gerados dois sinais de controlo para dois ST. Um dos

sinais comporta-se da mesma forma que o sinal convencional, enquanto que o outro, aplicado

a um ST mais pequeno, efetua a transição 1->0, em dois degraus, dividindo o período de

ativação em quatro fases. Desta forma, a corrente induzida varia menos, permitindo diminuir

o tempo de ativação, mantendo a mesma característica de flutuação.

Uma solução parecida com a anterior é descrita em [8], no entanto apresenta resultados

mais satisfatórios. O princípio de funcionamento é o mesmo, sendo a ativação executada em

duas fases. A primeira inicia o restabelecimento de energia, limitando a corrente instantânea

gerada. A segunda fase completa a ativação e ativa o bloco. Ao contrário do exemplo

anterior, não são utilizados dois ST. É utilizado apenas um, mas que tem a particularidade de

funcionar como um díodo, bastando para isso introduzir um pequeno transístor de controlo

entre o seu dreno e porta. Na primeira fase, o ST comporta-se como um díodo, reduzindo a

corrente instantânea na linha de alimentação e, na segunda fase, comporta-se como um

transístor normal, restabelecendo energia ao circuito. Esta abordagem, para os mesmos

180nm, permite reduzir o tempo de ativação em 62.3%, ao mesmo tempo que limita a

flutuação da alimentação em 67%.

Outra abordagem é sugerida em [9]. Neste caso é usada uma linha de alimentação auxiliar

que é ligada a cada bloco do sistema através de transístores bypass. Desta forma, apenas o

transístor bypass do bloco que está a ser reativado está ativo, ficando os restantes blocos

ligados apenas à linha principal de alimentação. Assim sendo, a flutuação provocada na linha

auxiliar de alimentação não influencia a operação dos blocos adjacentes. Com este método,

os autores afirmam que, para um processador dual-core fabricado com uma tecnologia de

90nm e para tempos de reativação superiores a 150ns, conseguem diminuir a flutuação de

30mV para 5mV. Para tempos de ativação mais pequenos os resultados mostram que os

ganhos são ainda maiores.

Estado da Arte 11

2.4.3 Projeto da Rede de Sleep Transistors

No que diz respeito ao projeto da rede de interruptores, além dos desafios descritos na

secção anterior, existem várias escolhas a ser feitas.

Fine Grain vs Coarse Grain

Para a implementação dos Sleep Transistors, existem duas alternativas distintas: Fine Grain e

Coarse Grain.

Em Fine Grain os ST encontram-se no interior de cada Standard Cell que constitui o bloco.

Uma vez que que têm que fornecer a corrente necessária para a célula funcionar, têm que

ser relativamente grandes, podendo aumentar a área da célula em 2 a 4 vezes [1]. A grande

vantagem é que é possível seguir o fluxo normal de projeto, uma vez que todas as

características impostas pelo ST já estão devidamente caracterizadas e camufladas.

No caso de Coarse Grain, os blocos recebem a energia através de um conjunto de células

específicas para Power Gating, que têm que constar na biblioteca de células utilizada. Este

método torna o projeto mais complicado, uma vez que as características de funcionamento

não são conhecidas.

Figura 2.4 - Implentação de Fine Grain numa porta AND. Fonte: [1]

12 Estado da Arte

Figura 2.5 - Implementação Coarse Grain. Fonte: [2]

O impacto na área do método Fine Grain faz com que, na maior parte dos casos, não se

justifique a maior facilidade de projeto. Por este motivo Coarse Grain é o método mais

utilizado.

Header vs Footer

Uma outra escolha prende-se com a utilização de Header Switches ou Footer Switches, ou

seja, comutar VDD ou comutar GND.

Figura 2.6 - Header Switch(esquerda) e Footer Switch(direita). Fonte: [1]

Uma hipótese poderia ser utilizar os dois em simultâneo. No entanto a queda de tensão,

potenciada por dois transístores com alto seria grande, induzindo elevados atrasos nas

portas lógicas.

No que diz respeito à integração num sistema o Header Switch traz vantagens:

Estado da Arte 13

É cada vez mais comum a utilização de vários níveis de tensão num sistema. Para

atingir este fim, é necessária a utilização de Level Shifters. Estes componentes

possuem GND comum e dois níveis diferentes de tensões de alimentação. Neste caso,

não se deve utilizar Footer Swtiches.

É mais comum pensar em “ativo” como o valor lógico “1” e desativo como o valor

lógico “0”. Neste sentido é mais fácil considerar que para desligar um bloco,

colocamos um interruptor entre o mesmo e VDD. Além disso em SoC é mais comum

blocos comunicarem utilizando protocolos “active-high”, em que o valor lógico “0” é

representado por um GND comum.

Header Switches permitem que, quando são utilizadas estratégias de isolamento que

colocam os sinais a ”0”, sejam utilizados simples transístores entre o sinal e GND.

Footer Switches podem ser vantajosos, se a área ocupada for um fator muito importante,

uma vez que transístores nMOS, apresentam maior eficiência de comutação (Ion/Iof),

resultando em menor área total necessária para fornecer a mesma corrente, comparando

com transístores pMOS.

Anel vs Rede

No caso Coarse Grained, os ST podem ser colocados à volta do bloco (Anel) ou no interior do

mesmo (Rede).

Anel

Numa implementação em anel, os ST são colocados à volta do bloco. VDD forma igualmente

um anel, enquanto que várias linhas de alimentação virtual ( , na figura 2.7) cobrem o

bloco.

Figura 2.7 - Implementação em Anel. Fonte: [1]

14 Estado da Arte

As razões que justificam o uso de uma topologia em anel são:

A distribuição da alimentação é mais simples, uma vez que os ST estão confinados a

uma área em específico e não misturados com a lógica do circuito. Existe sempre uma

separação entre VDD e a LVA (VVDD na figura 2.7), o que resulta em apenas uma

região de alimentação no interior do bloco. Isto facilita a fase de place-and-route.

Células de isolamento, que necessitam de alimentação constante podem,

simplesmente, ser colocadas no domínio de alimentação constante.

No entanto:

Registos de retenção não podem ser utilizados, uma vez que necessitam, que

no bloco existam duas regiões de alimentação distintas.

Implica um grande aumento da área do bloco.

Implica um maior número de ST para atingir as especificações relativas à

queda de tensão, uma vez que os ST estão afastados da lógica do bloco e, por

isso necessitam de fornecer energia através de interconexões longas.

Rede

Numa topologia em rede, os ST estão colocados entre a lógica do circuito, como representado

na Figura 2.8. As desvantagens da implementação em anel, tornam-se as vantagens da

topologia em rede e vice-versa.

Figura 2.8 - Implementação em rede. Fonte: [1]

Estado da Arte 15

Vantagens:

Proporcionam duas regiões de alimentação, pelo que registos de retenção podem ser

utilizados;

Os ST estão próximos da lógica, não necessitando de fornecer energia através de

interconexões de grande extensão. Deste modo, as linhas de alimentarão virtuais

podem ser implementadas em camadas inferiores de metal;

São necessários menos ST para atingir as especificações de queda de tensão;

Implica menos área, uma vez que espaços não aproveitados da lógica podem ser

utilizados para formar a rede;

Desvantagens:

Complica a implementação física;

Complica a rede de distribuição de energia.

A escolha da topologia a implementar depende de vários fatores e das características da

biblioteca de Standard Cells disponível. A melhor abordagem é experimentar as duas

topologias e analisar os resultados, de forma a escolher qual implementar.

Se considerarmos blocos que não utilizem registos de retenção, pode ser utilizada a topologia

em anel, uma vez que é mais simples. No entanto, se a área for um fator em consideração,

ou se forem necessárias duas regiões de alimentação, a topologia em rede é mais adequada.

No caso de SoC é, também, possível conciliar as duas topologias no mesmo projeto, numa

opção híbrida. Neste caso, a rede seria implementada em alto-nível, ficando o anel reservado

para blocos nos quais não seja possível efetuar modificações físicas ou que apenas necessitem

de uma região de alimentação.

2.4.4 Retenção de estado

Quando um bloco é reativado, é necessário existir um mecanismo que o coloque exatamente

no mesmo estado em que se encontrava antes de ser desligado.

16 Estado da Arte

Pode simplesmente ser induzido um reset que acione mecanismos internos do bloco e que o

faça recuperar o seu estado. Outra opção é guardar o estado numa memória externa.

No entanto quando é necessário uma rápida reativação é importante que mecanismos

internos de retenção de estado estejam implementados, de forma a agilizar o processo.

Registos de retenção

São registos que substituem os registos normais dos blocos e que contém um registo auxiliar

destinado a guardar o estado do registo principal durante a desativação. Posteriormente,

durante a reativação, o registo principal volta a ser carregado a partir do registo auxiliar.

Como é possível verificar na Figura 2.9, o registo auxiliar “RET”, é alimentado pela linha

principal de alimentação “VDD”, o que significa que está sempre ativo. Por seu lado o registo

principal “Master/Slave Latches”, que gera a saída “Q”, está ligado à linha de alimentação

virtual (VDD_SW, na imagem).

A grande vantagem da utilização destes registos é que, ao nível de RTL podem ser tratados

como registos normais, o que facilita a integração.

No entanto, requerem um controlo cuidado por parte do Controlador de Power Gating que

necessita de gerar os sinais “SAVE” e “RESTORE”. Além disso, implicam um aumento

significativo da área dos registos.

Scan Chains

É a alternativa à utilização de registos de retenção. Baseia-se na utilização de cadeias de

registos, semelhantes aos utilizados em métodos de teste de hardware como Boundary Scan.

Figura 2.9 - Registo de retenção. Fonte: [1]

Estado da Arte 17

Tem a vantagem de não implicar aumento de área, uma vez que as cadeias de teste já

implementadas podem ser reutilizadas com o objetivo de retenção de estado.

Durante a desativação do bloco, o conteúdo dos registos da cadeia são deslocados e

guardados numa memória. Durante a reativação, o contudo da memoria é carregado de volta

para os registos da cadeia.

É de salientar o fato de que as operações de deslocação e escrita/leitura na memória gastam

quantidades consideráveis de energia.

As vantagens prendem-se com o fato de não ser necessário manter uma região do circuito

alimentada para fornecer energia aos registos auxiliares usados em registos de retenção. Por

outro lado a energia gasta para guardar o estado é compensada se o bloco ficar desligado por

um tempo considerável.

2.4.5 Células de Isolamento

Como referido anteriormente, na secção 2.3, as saídas de um bloco alvo de Power Gating que

se encontra desativo podem permanecer num estado flutuante e perturbar o funcionamento

dos blocos para os quais representam sinais de entrada. É neste contexto que é necessária a

introdução de células de isolamento.

Estas células são controladas pelo Controlador de Power Gating, e quando ativas fixam os

sinais de saída a “0”, “1” ou ao valor que tinham anteriormente. Para fixar a “0” basta

utilizar um AND, ao passo que, para fixar a “1” utiliza-se um OR.

A decisão de fixar as saídas a “1” ou a “0” depende da natureza dos blocos. A melhor

abordagem é fixar os sinais num valor “neutro”, de forma a não serem interpretados como

comandos pelos blocos dos quais são entradas. Na maior parte dos sistemas, isto significa

fixar a “0”.

Outra justificação que suporta a escolha da fixação a “0” é que, quando existem dois blocos

sujeitos a Power Gating encadeados e desativados, se o bloco de destino utilizar Header

Switches e as saídas (do primeiro bloco) forem fixadas a “1”, é estabelecido um caminho

entre as saídas e GND, causando uma corrente de fuga que aumenta o consumo de energia.

Devido às razões enunciadas acima, [1] recomenda que sejam usados sinais ativos a “1”,

resets ativos “0” e fixar as saídas em “0”.

18 Estado da Arte

As células de isolamento podem desempenhar a sua função em dois sítios diferentes: no bloco

em que o sinal é gerado ou no bloco de destino.

Caso seja escolhida a 2.ª opção, é necessário colocar uma célula de isolamento em cada

bloco de destino e verificar o funcionamento de cada uma. Para casos em que o sinal seja

uma entrada de vários blocos, isto significa um aumento de área e de trabalho de verificação.

Se for escolhida a primeira opção, basta uma célula para cada sinal. No entanto, este caso

traz de volta um problema já discutido na secção anterior. Uma vez que a célula de

isolamento (à semelhança do registo auxiliar de um registo de retenção) necessita de ser

sempre alimentada são necessárias duas zonas de alimentação distintas.

Os autores de [1] recomendam que sejam usadas células de isolamento no interior do bloco

alvo de Power Gating (origem do sinal) de forma a facilitar a reutilização de IP ao nível SoC.

2.5 - Metodologia para implementação de Power Gating com

suporte de ferramentas Synopsys

Em [2] é descrita uma metodologia para implementação de Power Gating utilizando

ferrmentas da Synopsys. Esta metodologia, que vai desde o RTL até GDSII (Graphic Database

System II), é representada na figura 2.11.

Na primeira etapa é utilizada a ferremanta Synopsys VCS, para verificar e validar a

funcionalidade ao nível RTL, verificando os sinais de controlo, os registos de retenção e as

células de isolamento.

Figura 2.10 - Célula de isolamento que fixa a saída em "0". Fonte [1]

Estado da Arte 19

Na segunda etapa é efetuada a síntese da descrição RTL, utilizando o Synopsys Design

Compiler. Nesta fase, são definidos e passados à aplicação os domínios de alimentação do

sistema. Além da síntese lógica normal, elementos como registos de retenção e células de

isolamento são mapeados em células presentas na biblioteca.

Na terceira etapa é efetuada a síntese física, recorrendo ao Synopys IC Compiler.

Inicialmente são criadas as diferentes Power Islands e, de seguida, colocados os Sleep

Transistors. De seguida as redes de alimentação (VDD e GND) são colocadas e analisadas.

A próxima etapa é a otimização física. Nesta etapa, em que é novamente utilizado o IC

Compiler, são conectados os sinais de controlo, sintetizadas as redes que necessitem de estar

sempre alimentadas, sintetizada a clock tree e conectados os pinos secundários das redes que

estão sempre ligadas às respetivas linhas de alimentação.

Na última etapa é analisado o desempenho da implementação de Power Gating, utilizando a

ferramenta Synopsys PrimeTime-PX. É, ainda, analisada a queda de tensão provocada pelos

ST, a corrente instantânea gerada na reativação (In-Rush-Current) e os tempos de reativação

(Wake-Up Time), utilizando o Synopsys PrimeRail. Ao longo desta etapa são, também,

extraídos os elementos parasitas.

Uma metodologia semelhante será utilizada nesta dissertação, bem como a maior parte das ferramentas.

Figura 2.11- Metodologia de implementação utilizando ferramentas Synopsys. Fonte: [2]

Capítulo 3

Proposta de Trabalho

Neste capítulo é apresentada a metodologia de trabalho que irá ser seguida ao longo do

desenvolvimento desta Dissertação. Com base nessa metodologia é elaborado um plano de

trabalho baseado num mapa de Gantt. Este plano de trabalho irá ser atualizado com o

desenvolver do projeto.

3.1 - Metodologia

Como referido na secção 1.3 o objetivo desta dissertação é reduzir o consumo de

potência numa interface de alta velocidade, sem degradação do seu desempenho. Plataforma

essa, propriedade da Synopsys Portugal.

Neste sentido, o trabalho será desenvolvido no escritório da Synopys Portugal, e iniciar-

se-á com a familiarização com as ferramentas Synopsys necessárias à execução do projeto.

De seguida, é necessário conhecer a interface em causa, pelo que será feito o estudo da

mesma e levantamento de dados já existentes, no que diz respeito à sua funcionalidade e

consumo de potência.

Finalizada esta fase, irá ser iniciada a implementação do método Power Gating, primeiro

ao nível do RTL e, de seguida, ao nível físico.

Feita a implementação, os resultados obtidos serão comparados com os dados já

existentes de forma a determinar se o objetivo foi cumprido.

A última etapa será documentar o trabalho efetuado e redigir a dissertação.

Proposta de Trabalho 21

3.2 - Ferramentas de trabalho

Está prevista a utilização das seguintes ferramentas da Synopsys:

Desing Compiler

É uma ferramenta de síntese lógica. Síntese lógica é uma tarefa na qual descrições RTL de

alto nível, escritas em HDL (Hardware Description Languages) são convertidas em netlists que

contêm as portas lógicas constituintes do circuito e suas interligações. A síntese é elaborada

a partir da descrição RTL, constraints e portas lógicas da biblioteca respeitante à tecnologia

alvo.

Power Compiler

É uma ferramenta de síntese que permite fazer otimizações do consumo de energia, tanto ao

nível RTL como ao nível das portas lógicas e analisar do consumo de potência apenas ao nível

das portas lógicas.

Com esta ferramenta é possível aplicar várias técnicas de baixo consumo, como é o caso de

Power Gating.

IC Compiler

É uma ferramenta de implementação física. Dispões de capacidades de place-and-route, com

suporte para projetos de baixa potência. Trata-se de, a partir, da netlist gerada na fase de

sitense lógica, gerar uma netlist em que, além das células que constituem o circuito, é

também indicado o seu posicionamento e interligações. A primeira fase (place) envolve

decidir onde colocar as células que constituem o bloco no espaço disponível. A segunda fase

(route) é responsável por estabelecer as ligações entre as células de acordo com as regras e

limitações existentes.

Star- RCXT

Ferramenta para extração de capacidades parasitas. Trata-se de obter um modelo RC do

circuito, para que as simulações representem o funcionamento real de um circuito digital. A

utilização desta ferramenta permite criar ficheiros SPEF (Standard Parasitic Exchange

Format) e SBPF (Synopsys Binary Parasitic Format) que contêm informação relativa aos

elementos parasíticos.

22 Proposta de Trabalho

Prime Time

Ferramenta que permite efetuar análises temporais estáticas ao nível das portas lógicas. O

objetico do metódo STA (Static Timing Analysis) é verificar se os requisitos temporais do

circuito estão a ser cumpridos. É verificado o cumprimento dos tempos de setup e hold, assim

como de fenómenos como clock skew e caminhos lentos que não permitam atingir a

frequência de funcionamento pretendida.

Prime Time PX

É uma extensão do Prime Time que permite analisar o consumo de potência dinâmica e

estática de um circuito. Permite uma análise em alto nível.

Prime Rail

Ferramenta que permite verificar a rede de alimentação, analisando fenómenos de

eletromigração e IR Drop. Em projetos low-power é muito útil pois permite analisar a

corrente instantânea gerada na reativação dos blocos (In-Rush-Current) e os tempos de

reativação (Wake-Up-Time), otimizando a sequência de reativação dos Sleep Transistors.

Incorpora ainda uma funcionalidade “what-if” que permite testar compromissos entre ganhos

no consumo de potência estática e os requisitos relacionados com a queda de tensão nos

Sleep Transistors.

Hercules DRC and LVS

Ferramenta para verificação física. Permite efetuar verificações DRC (Design Rule Check) e

LVS (Layout Versus Schematic). DRC permite verificar que a implementação física do circuito

cumpre certas regras específicas para a tecnologia em uso (design rules) que especificam

restrições geométricas e de conectividade entre elementos, que garantem que o circuito irá

funcionar corretamente. LVS permite verificar se o layout projetado está de acordo com o

esquemático desenhado inicialmente, ou seja, se representa o circuito desejado.

3.3 - Plano de trabalho

As etapas identificadas até ao momento e suas respetivas durações são:

1. Aprendizagem das ferramentas a usar durante a execução do projeto (4 semanas);

2. Levantamento e análise dos dados já existentes para a interface (2 semanas);

3. Análise e implementação do método de Power Gating no RTL do bloco (3 semanas);

Proposta de Trabalho 23

4. Implementação física do bloco (6 semanas);

5. Análise e comparação de resultados (2 semanas);

6. Redação da dissertação (4 semanas).

O Diagrama de Gantt associado ao plano de trabalho pode ser consultado na figura 3.1.

Proposta de Trabalho 24

Figura 3.1 - Planemanento: Diagrama de Gantt

25 Proposta de trabalho

3.4 - Resultados Esperados

No final desta dissertação é esperada a diminuição do consumo de potência da interface em

questão sem a alteração da sua funcionalidade. Será conhecido o impacto que a

implementação de Power Gating terá em aspetos como a área e a performance.

Referências 26

Referências

1. Keating, M.F., David Low Power Methodology Manual - For a System-on-Chip Design.

2007: Springer. 300.

2. Wang, E. Synopsys Power-gating Design Methodology based on SMIC 90nm Process.

2008.

3. Ping, H., et al. A Brief Survey on Power Gating Design. in 2010 10th IEEE

International Conference on Solid-State and Integrated Circuit Technology (ICSICT),

1-4 Nov. 2010. 2010. Piscataway, NJ, USA: IEEE.

4. WESTE, N.H.E.H., DAVID, CMOS VLSI Design - A circuits and Systems Perspective, 4th

edition. 2011: PEARSON.

5. Wikipedia. HDMI. [cited 2012 8/02]; Available from:

http://en.wikipedia.org/wiki/HDMI.

6. Dal, D. and N. Mansouri, Power optimization with power islands synthesis. IEEE

Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2009.

28(7): p. 1025-1037.

7. Chao-Yang, C., et al. A fast wake-up power gating technique with inducing a

balanced rush current. in 2012 IEEE International Symposium on Circuits and Systems

- ISCAS 2012, 20-23 May 2012. 2012. Piscataway, NJ, USA: IEEE.

8. Ku, H., L. Rong, and W. Yu. A power gating scheme for ground bounce reduction

during mode transition. in 25th International Conference on Computer Design, ICCD

2007, 7-10 Oct. 2007. 2007. Piscataway, NJ, USA: IEEE.

9. Kawasaki, K.i., et al. A sub-s wake-up time power gating technique with bypass

power line for rush current support. in 2008 IEEE Symposium on VLSI Circuits, 18-20

June 2008. 2008. Piscataway, NJ, USA: IEEE.

10. Bhatnagar, H., Advanced ASIC Chip Synthesis: Using Synopsys Design Compiler and

PrimeTime. 1999, Dordrecht, Netherlands: Kluwer Academic Publishers.

11. Brunvand, E., Digital VLSI Chip Design with Cadence and Synopsys CAD Tools. 2010:

Pearson.

12. Butzen, P.F.R., Renato Perez, Leakage Current in Sub-Micrometer CMOS Gates.

Universidade Federal do Rio Grande do Sul.

13. Hyung-Ock, K. and S. Youngsoo, Semicustom design methodology of power gated

circuits for low leakage applications. IEEE Transactions on Circuits and Systems--II:

Analog and Digital Signal Processing, 2007. 54(6): p. 512-16.

14. Jotwani, R., et al., An x86-64 Core in 32 nm SOI CMOS. IEEE Journal of Solid-State

Circuits, 2011. 46(1): p. 162-72.

15. Kyung Ki, K., N. Haiqing, and C. Ken. Power gating for ultra-low voltage nanometer

ICs. in 2010 IEEE International Symposium on Circuits and Systems. ISCAS 2010, 30

May-2 June 2010. 2010. Piscataway, NJ, USA: IEEE.

16. Nebel, W.T., Jurgen, RT-Level Power-Gating Models optimizing Dynamic Leakage-

Management. 2012.

17. Rabaey, J.M., Digital Integrated Circuits: A Design Perspective, 1996, Prentice

Hall,Inc: Upper Sadle Rive. p. 700.

18. Sedra, A.S.S., Kenneth c., Microelectronic Circuits, 5th Edition. 2004, Oxford: Oxford

University Press.

Referências 27

19. Suji, C.C.G., S. Maragatharaj, and R. Hemima. Performance analysis of power gating

designs in low power VLSI circuits. in 2011 - International Conference on Signal

Processing, Communication, Computing and Networking Technologies, ICSCCN-2011,

July 21, 2011 - July 22, 2011. 2011. Thuckalay, India: IEEE Computer Society.

20. Zhigang, H., et al. Microarchitectural techniques for power gating of execution

units. in Proceedings of the 2004 International Symposium on Low Power Electronics

and Design, 9-11 Aug. 2004. 2004. New York, NY, USA: ACM.

[1-20]