Você está na página 1de 23

Implementao do formato UPF na descrio de circuitos integrados baseados em HDL

1 TRABALHO DE CONCLUSO DE CURSO GRADUANDO: ALEXANDRE ESSELIN BOTELHO ORIENTADOR: FRANK SILL TORRES DELT GRADUAO EM ENGENHARIA ELTRICA UNIVERSIDADE FEDERAL DE MINAS GERAIS

Sumrio
2

Viso Geral Motivao Objetivos Fluxos de Desenvolvimento Apresentao do ChipTop ChipTop Estratgias Low Power Resultados ChipTop com Clock Gating Resultados ChipTop com UPF Concluses Consideraes Finais

Viso Geral
3

Implementao do formato de descrio de potncia

conhecido como UPF (Unified Power Format).


Avaliao dos ganhos e perdas da metodologia Low

Power com UPF.

Motivao
4

Crescente demanda por equipamentos mais

eficientes do ponto de vista energtico. Desempenho dos circuitos comprometido quando submetido altas temperaturas. Desenvolvimento da tecnologia aumenta o consumo de potncia esttica. Preocupao com o futuro energtico do planeta.

Motivao
5

Fonte: Intel

Objetivos
6

Desenvolvimento da descrio no formato UPF de um

processador exemplrio. Compreenso do fluxo de desenvolvimento requerido pelo desenhista. Anlise e elaborao do processador exemplrio em trs casos de teste distintos, utilizando o software Design Compiler, da empresa Synopsys:

Sem tcnicas de Low Power. Operao com clock gating. Descrio UPF. Descrio UPF e clock gating.

Avaliao dos resultados.

Fluxo de Desenvolvimento Tradicional


7

Fonte: (SCHEFFER e LAVAGNO, 2006, p1-3

Incremento dos processos com o avano tecnolgico


8

Fluxo UPF
9

Paralelo Complementar Descrio facilitada Atende metodologia Low

Power

ChipTop Viso Geral


10

Cdigo RTL

sintetizvel Contm:
Multiplicador RAM de uso geral Controle de potncia Decodificador de instrues Clock nico

ChipTop

Multiplier

GRPs

InstDecode

GENPP

PwrCtrl

ChipTop Power Domains com UPF


11

ChipTop Estratgias Low Power


12

Chaveamento de Clock

Adiciona lgica ao circuito para que a rvore de clock seja podada, desativando a alimentao de clock do circuito por sinais de controle.

Chaveamento de potncia

Consiste em desativar mdulos no utilizados do circuito atravs de uma chave de potncia, controlada por sinal. Exige que a lgica de controle do chaveamento esteja correta.

Operao multi-tenso

Utiliza tenses diferentes nos mdulos, dependendo da sua utilizao. Pode trazer delays maiores, medida que tenses mais baixas aumentam o tempo de carga dos capacitores.

ChipTop Power Domains com estratgias LP


13

Resultados Sem estratgias Low Power


14

Relatrio de Potncia Tipo Interna da clula Chaveamento de nets Dinmica total Leakage Potncia (mW) 21.9968 1.7460 23.7429 1.8250 Tipo Total das clulas rea total Relatrio de rea rea (m) 111080.448214 118711.668062

Resultados Operao com Clock Gating


15

Relatrio de Potncia Tipo Interna da clula Chaveamento de nets Dinmica total Leakage Potncia (mW) 9.5907 1.7169 11.3073 1.5405 Tipo Total das clulas rea total Relatrio de rea rea (m) 101366.784438 108101.362848

Ganho de potncia: 52%

Perda de rea: -9%

Resultados ChipTop com LP por UPF


16

Relatrio de Potncia Tipo Interna da clula Chaveamento de nets Dinmica total Leakage Potncia (mW) 12.4682 1.4535 13.9217 1.0690 Perda de rea: 3% Tipo Total das clulas rea total Relatrio de rea rea (m) 116959.334010 122246.456688

Ganho de potncia: 41%

Resultados ChipTop com LP por UPF


17

Relatrio de Potncia Tipo Interna da clula Chaveamento de nets Dinmica total Leakage Potncia (mW) 7.9727 1.4412 9.4139 0.9577985 Tipo Total das clulas rea total Relatrio de rea rea (m) 106280.754822 111509.888948

Ganho de potncia: 60%

Perda de rea: -9%

Concluses
18

A unio da estratgia de clock gating, juntamente com

uma descrio de potncia detalhada por UPF, apresentou os melhores resultados de reduo de consumo. A facilidade de introduo do formato UPF, sem que seja necessrio realizar mudanas no RTL, se torna essencial para o planejamento de potncia de um circuito. As estratgias apresentadas pelo UPF permitem que haja reteno de dados e isolamento, para que no acontea propagao de X, levando o circuito estados indesejveis.

Consideraes finais
19

O optimizador do Design Compiler para Clock

Gating extremamente eficiente, visto que o algoritmo est em um estado tecnolgico mais avanado. Isso faz com que haja reduo de rea, se comparado ao primeiro caso de teste.

20

Perguntas?

Parmetros do Design Compiler - SDC


21
set PERIOD 7.0 set INPUT_DELAY 1.0 set OUTPUT_DELAY 1.0 set CLOCK_LATENCY 1.5 set MIN_IO_DELAY 1.0 set MAX_TRANSITION 0.5 ## CLOCK BASICS create_clock -name "clock" -period $PERIOD [get_ports clock] set_clock_latency $CLOCK_LATENCY [get_clocks clock] set_clock_uncertainty 0.3 [get_clocks clock] set_clock_transition 0.4 [get_clocks clock] ## GROUPING group_path -name CLOCK\ -to clock\ -weight 1 group_path -name INPUTS\ -through [all_inputs]\ -weight 1 group_path -name OUTPUTS\ -to [all_outputs]\ -weight 1

Parmetros do Design Compiler - SDC


22
## IN/OUT set INPUTPORTS [remove_from_collection [all_inputs] [get_ports clock]] set OUTPUTPORTS [all_outputs] set_input_delay -clock "clock" -max $INPUT_DELAY $INPUTPORTS set_output_delay -clock "clock" -max $OUTPUT_DELAY $OUTPUTPORTS set_input_delay -clock "clock" -min $MIN_IO_DELAY $INPUTPORTS set_output_delay -clock "clock" -min $MIN_IO_DELAY $OUTPUTPORTS #set REFLIB [get_object_name [index_collection [get_libs *wc] 0]] set REFLIB saed90nm_max set BUFFER "NBUFFX16" set BUF_IN_PIN "INP" set BUF_OUT_PIN "Z" set_load [expr 5 * [load_of $REFLIB/$BUFFER/$BUF_IN_PIN]] [all_outputs] set_driving_cell -library $REFLIB -lib_cell $BUFFER -pin $BUF_OUT_PIN [all_inputs] remove_driving_cell [get_ports clock] ## DRC set_max_transition $MAX_TRANSITION [current_design] set_max_capacitance 100 [current_design] set_max_fanout 200 [current_design]

Parmetros do Design Compiler - Script


23
# Atividade das entradas set_switching_activity [get_nets -h *] -static 0.1 -toggle 0.1 -period 1 set_switching_activity [get_nets clock] -static 0.5 -toggle 1.0 -period 1 # Opes set compile_preserve_subdesign_interfaces true set_fix_multiple_port_nets -all -buffer_constants set verilogout_show_unconnected_pins true set auto_insert_level_shifters_on_clocks all # Compilao compile_ultra -no_boundary_optimization

Você também pode gostar