Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Transcript of Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
a658669
amp
Universidad Autoacutenoma de Madrid Departamento de Ingenieriacutea Informaacutetica
Aportes a la Reduccioacuten de
Consumo en FPGAs
Tesis Doctoral
Autor Gustavo Sutter
Director Eduardo Boemo Scalvinoni
Escuela Politeacutecnica Superior
Enero de 2005
Resumen
En esta tesis se desarrolla una metodologiacutea para reduccioacuten de consumo en FPGAs a
nivel topoloacutegico arquitectural y algoriacutetmico pues el consumo al igual que el aacuterea o la
velocidad puede ser atacado en todos los niveles de la jerarquiacutea de disentildeo
En primer lugar se revisan las principales teacutecnicas de reduccioacuten de consumo en
tecnologiacutea VLSI y el caso particular de FPGAs Se realiza una clasificacioacuten de las
diferentes ideas y se llevan a cabo algunos experimentos generales para su
comprobacioacuten A continuacioacuten se profundiza en algunas teacutecnicas de aplicacioacuten
universal tales como la segmentacioacuten (pipelininjj) o la inhabilitacioacuten de bloques Estos
conocimientos son aplicados posteriormente para reducir el consumo en maacutequinas de
estados y en diferentes bloques aritmeacuteticos Para las primeras se estudian diferentes
meacutetodos de codificacioacuten y particioacuten para diversos circuitos de prueba y nuacutemero de
estados En lo referente a bloques aritmeacuteticos los experimentos abarcan las
operaciones de suma multiplicacioacuten multiplicacioacuten modular y divisioacuten teniendo en
cuenta diferentes ideas algoriacutetmicas y estrategias de implementacioacuten
Las conclusiones expuestas en esta tesis se sustentan sobre un exhaustivo trabajo
experimental Se han construido y medido maacutes de 600 circuitos en diversos modelos
de FPGAs Xilinx que en conjunto abarcan maacutes de una deacutecada de esta tecnologiacutea Los
resultados finales se resumen en una serie de recomendaciones y reglas de reduccioacuten
de consumo de utilidad a nivel de disentildeador
I
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
II
Summary
In this thesis a methodology for power reduction in FPGAs at the topological
architectural and algorithmic leveacuteis is developed The power consumption as the aacuterea
or the speed can be modified in all the leveacuteis of the design hierarchy
In the first place the main low-power design techniques in technology VLSI are
revised and the particular case of FPGAs is analyzed A classification of the different
ideas is done and some general experiments are performed to verify them Next a
deeper study of some techniques of universal application as the pipelining or the
disabling of blocks is done Later this knowledge is applied in order to reduce the
consumption in state machines and different arithmetic blocks For the first ones
different coding methods and partiacutetion schemes are studied for diverse benchmark
circuits and number of states For arithmetic blocks the experiments embrace the
operations of addition multiplication module multiplication and finally divisioacuten
taking into account different algorithmic ideas and implementation strategies
The conclusions exposed in this thesis are sustained by an exhaustive experimental
work More than 600 circuits have been built and measured using diverse models of
Xilinx FPGAs that comprise more than a decade of this technology As final result a
summary of recommendations and low-power design rules at designers level are
established
III
s
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
IV
Agradecimientos
Indudablemente Eduardo ha sido mucho maacutes que un director de tesis Su amistad y
compantildeerismo exceden su ya invaluable aporte teacutecnico y acadeacutemico En aquellos
primeros y lejanos primeros tiempos en Madrid Eduardo hizo mucho maacutes de lo que
cualquiera pueda imaginar Mi gratitud y reconocimiento son difiacuteciles de plasmar en
unas cuantas liacuteneas
Desde aquellos primeros momentos Sergio ha sido un amigo de hierro y su inmensa
capacidad teacutecnica y cientiacutefica no solo han resuelto innumerables problemas cotidianos
y concretos sino que han sido una guiacutea para miacute
A Elias compantildeero de peripecias y avatares y con quien hicimos nuestros primeros
experimentos y siempre discutimos resultados A los compantildeeros de laboratorio por
su paciencia y amistad Paco Javier Guillermo Juan Ivan Miguel Alberto(s) Tani y
tantos otros que han pasado por aquiacute
No quiero dejar de agradecer a Juana Aacutengel Eugenio Conrado y Pablo por su
siempre buena predisposicioacuten a resolver los problemas diarios con la burocracia y la
docencia
V
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
VI
iacutendice
iacutendice
Resumen I
Summary III
iacutendice VII
Lista de Figuras XIX
Lista de Tablas XXIX
Lista de Acroacutenimos XXXIII
Anglicismos barbarismos neologismos y otros defectos XXXVII
Capiacutetulo 1 Introduccioacuten y Motivacioacuten 1
11 Reduccioacuten y estimacioacuten del consumo 1
12 Marco tecnoloacutegico 2
13 Seleccioacuten de teacutecnicas de reduccioacuten de consumo 4
14 Objetivos de eacutesta tesis 5
15 Organizacioacuten y lectura de eacutesta tesis 6
16 Referencias del capiacutetulo 8
Capiacutetulo 2 Consumo en circuitos CMOS y su efecto en FPGAs 11
21 Consumo en circuitos CMOS 11
211 Consumo estaacutetico 12
VII
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
212 Consumo dinaacutemico 13
22 Espacio de disentildeo para bajo consumo 15
221 Tensioacuten de alimentacioacuten 15
222 Capacidad 16
223 Actividad del circuito 17
23 Temas destacados en el disentildeo para bajo consumo 19
24 Nivel de proceso y tecnologiacutea 21
241 Encapsulado (packageacute) 21
242 Proceso de fabricacioacuten 22
2421 OptiacutemIacute2acioacuten de la tensioacuten umbral (Jhreshold Voltaje-Vi) 22
2422 Reduccioacuten en la tecnologiacutea (JTechnoIogical scaltng) 22
2423 Trazado (Lqyoui) 23
2424 Dimensiones de los transistores (Transtsitor sizpng) 23
25 Nivel de implementacioacuten 24
251 Descomposicioacuten tecnoloacutegica y mapeo 24
252 Reordenar las entradas 24
253 Reduccioacuten aacuteampglitches 25
254 Concurrencia y redundancia 26
26 Nivel de arquitectura y sistema 27
261 Procesamiento concurrente 27
2611 Paralelismo 27
2612 Segmentacioacuten (pipeltni) 29
262 Manejo de potencia (poiver managemei) 30
263 Particionado 31
264 Representacioacuten de los datos 32
27 Nivel algoriacutetmico 34
271 Algoritmos para bajo consumo 34
VIH
iacutendice
Complejidad 35
Precisioacuten 35
Regularidad 35
272 Algoritmos para arquitecturas de bajo consumo 36
Concurrencia 36
Modularidad y localidad 37
28 Nivel sistema 37
281 Optimizacioacuten de memoria 37
282 Particionado hardware-software 37
283 Optimizacioacuten a nivel de instrucciones 38
284 Manejo dinaacutemico del consumo 38
285 Minimizacioacuten del consumo en las interfaces 38
29 Otros conceptos en el tratamiento del consumo 39
291 Energiacutea vs potencia 39
292 Proyecciones para la tecnologiacutea de semiconductores 40
210 Desglose del consumo en FPGAs 41
211 Resumen del capiacutetulo 43
212 Referencias del capiacutetulo 44
Capiacutetulo 3 Experimentos sobre Bajo Consumo 49
31 Experimentos generales 49
311 Relacioacuten de la frecuencia y tensioacuten en el consumo 50
Dispositivo XC4K 50
Dispositivo Virtex 51
Dispositivo Virtex II 51
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
312 Corriente Estaacute tica 52
313 Corriente de Sincronizacioacuten 54
314 Conclusiones sobre experimentos generales 59
32 Relacioacuten entre velocidad y consumo en FPGAs 60
321 Circuitos de prueba 62
322 Resultados experimentales de la relacioacuten velocidad - consumo 63
3221 Correlacioacuten velocidad-consumo Efecto de las diferentes topologiacuteas 63
3222 Correlacioacuten velocidad-consumo para implementaciones dentro de la misma
topologiacutea 65
3223 Importancia de los glitches 67
3224 Correlacioacuten aacuterea-velocidad-consumo (Area-Time-Powei) 70
323 Conclusiones de la relacioacuten velocidad - consumo 71
33 Conmutacioacuten de los datos de entrada (propiedad conmutativa y disentildeo de bajo
consumo) 72
331 Circuitos de pruebas familia 4K 74
332 Resultados experimentales familia 4K 74
3321 Esquema de medicioacuten 75
3322 Resultados 75
333 Circuitos de pruebas familia Virtex 80
334 Resultados experimentales familia Virtex 80
3341 Relacioacuten retardo consumo 82
3342 Uso de herramientas de estimacioacuten de consumo 82
335 Conclusiones de la conmutacioacuten de datos 86
34 Efecto de la segmentacioacuten en el consumo 87
341 Medidas sobre XC4K 87
342 Mediciones sobre Virtex 90
3421 Actividad espuria (glitchei) 92
X
iacutendice
3422 Uso de herramienta de estimacioacuten de consumo 92
343 Mediciones sobre Virtex II 94
344 Conclusiones sobre la segmentacioacuten 96
35 Observaciones en la disminucioacuten del consumo registrando las entradas y salidas97
351 Experiencias sobre la familia XC4K 97
352 Experiencias sobre la familia Virtex 100
353 Experiencias sobre la familia Virtex II 101
354 Conclusiones del registro de entradas y salidas 102
36 Reduccioacuten del consumo por deshabilitacioacuten de partes inactivas del circuito 103
361 Introduccioacuten 103
362 Teacutecnicas de inhabilitacioacuten en FPGAs 104
3621 Bloqueo por inhabilitacioacuten del reloj 105
3622 Bloqueo de datos mediante la sentildeal de habilitacioacuten 105
3623 Bloqueo de datos con latches 106
3624 Bloqueo de datos con puertas loacutegicas 107
3625 Uso de buffers de tercer estado 107
363 Resultados de las teacutecnicas de deshabilitacioacuten 108
364 Conclusiones de las teacutecnicas de deshabilitacioacuten 110
37 Conclusiones y recomendaciones a nivel disentildeador 111
38 Referencias del Capiacutetulo 116
Capiacutetulo 4 Reduccioacuten de Consumo en Maacutequinas de Estado 121
41 Estrategias para reduccioacuten de consumo en maacutequinas de estados 121
411 Minimizacioacuten de estados 122
412 Asignacioacuten de estados state assignment eneodiniquest) 122
XI
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
4121 Enfoques tradicionales para la codificacioacuten de estados 122
4122 Aproximaciones para asignacioacuten de estado de bajo consumo 122
4123 Asignacioacuten de estados en FPGAs 123
413 Descomposicioacuten de maquinas de estado (FSMpartitioning o descompositioiiacute) 123
42 Experimentos sobre codificacioacuten de maacutequinas de estados en FPGAs 124
421 Experimentos 124
422 Resultados Experimentales 129
423 Conclusiones sobre codificacioacuten de maacutequinas de estados en FPGAs 134
43 Particioacuten de maacutequinas de estado en FPGAs 135
431 Alternativas de bajo consumo en FSMs 135
432 Decomposicioacuten o partcionado de FSMs 136
4321 Modelo general para la particioacuten de maacutequinas de estado 137
4322 Particioacuten ortogonal de maacutequinas de estado 138
433 Teacutecnicas de descomposicioacuten para bajo consumo 139
434 Una arquitectura de descomposicioacuten de FSMs para FPGAs 141
435 Caacutelculo de probabilidades de transicioacuten en un STG 142
436 Particionando la FSM en submaacutequinas 144
437 Meacutetodos para bloquear los datos 146
438 Siacutentesis de la maacutequina de estados 146
439 Experimentos con particioacuten de maacutequinas de estado 146
4310 Resultados experimentales de la particioacuten de maacutequinas de estado 148
4311 Conclusiones de la particioacuten de maacutequina de estado en FPGAs 154
44 Recomendaciones para la reduccioacuten de consumoen maacutequinas de estado 155
45 Referencias del Capiacutetulo 156
XII
iacutendice
Capiacutetulo 5 Experimentos sobre Bloques Aritmeacuteticos 161
51 Introduccioacuten 161
52 Muluumlplicacioacuten modular 162
521 Introduccioacuten a la multiplicacioacuten modular 162
522 Algoritmos para la multiplicacioacuten modular 162
5221 Multiplicacioacuten y reduccioacuten (iquestVlultiply andReduceacute) 163
5221 Suma y desplazamiento shifi and add) 164
5223 Multiplicacioacuten de Montgomery 166
523 Detalle de la siacutentesis 168
5231 Multiplicacioacuten y reduccioacuten 168
5232 Sumas y desplazamientos 170
5233 Multiplicacioacuten de Montgomery 171
5234 Comparacioacuten en aacuterea y velocidad 171
524 Realizacioacuten secuencial 173
525 Consumo de potencia en la multiplicacioacuten modular 175
5251 Consumo en implementaciones combinacionales 175
5252 Consumo en implementaciones secuenciales 176
526 Sugerencias para la multiplicacioacuten modular 178
53 Sumadores de alta velocidad 179
531 Sumador rippk-carry 179
532 Sumador carry-skip 180
533 Resultados experimentales del sumador carry-skip 184
5331 Resultados en aacuterea - velocidad 184
5332 Resultados en consumo 187
5333 Justificacioacuten de los resultados en consumo 188
XIII
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
534 Conclusiones sobre algoritmos sumadores 189
54 Algoritmos y arquitecturas para la divisioacuten entera 191
541 Algoritmos de divisioacuten para nuacutemeros naturales y enteros 191
5411 Algoritmo con restauracioacuten (restoring divisioacuten algorithm) 192
5412 Algoritmo sin restauracioacuten (non-restoring divisioacuten algorithm) 194
5413 Otros algoritmos para nuacutemeros enteros 196
542 Implementaciones en FPGA para nuacutemeros naturales y enteros 198
5421 Algoritmo con restauracioacuten en base dos 198
5422 Algoritmo sin restauracioacuten en base dos 199
543 Implementaciones para divisores de nuacutemeros enteros 201
5431 Resultados del consumo para divisores enteros 201
5432 Resultados en la actividad interna en los divisores enteros 203
544 Conclusiones para la divisioacuten de nuacutemeros enteros 206
55 Algoritmos y arquitecturas para la divisioacuten de nuacutemeros fraccionarios 207
551 Algoritmos de divisioacuten fraccionaria 207
552 Algoritmos con y sin-restauracioacuten restoring and non-restoring algorithm) 208
553 Algoritmos SRT 208
554 Implementaciones combinacionales en FPGAs para nuacutemeros fraccionarios 211
5541 Algoritmo con restauracioacuten y sin restauracioacuten 211
5542 Algoritmo SRT base 2 resto complemento a dos 211
5543 Algoritmo SRT base 4 resto complemento a dos 215
5544 Algoritmo SRT base 8 resto complemento a dos 219
5545 Algoritmo SRT base 16 resto complemento a dos 220
5546 Algoritmo SRT base 2 resto carry-save 222
555 Arquitecturas segmentadas 226
556 Circuitos Secuenciales 228
557 Resultados en aacuterea y velocidad para los divisores para nuacutemeros fraccionarios 229
XIV
iacutendice
5571 Resultados en implementaciones combinacionales 230
5572 Resultados en implementaciones segmentadas 233
5573 Resultados en implementaciones secuenciales 235
5574 Comparacioacuten de resultados en aacuterea y velocidad 237
558 Resultados del consumo para divisores de nuacutemeros fraccionarios 240
5581 Resultados en circuitos combinacionales 240
5582 Resultados en circuitos segmentados 242
5583 Resultados en circuitos iterativos 244
5584 Comparaciones arquitecturales en el consumo 245
559 Conclusiones de la divisioacuten de nuacutemeros fraccionarios 246
56 Conclusiones del Capiacutetulo 247
57 Referencias de Capiacutetulo 251
Capiacutetulo 6 Conclusiones y Futuros Trabajos 255
61 Conclusiones y Aportaciones 255
611 Recomendaciones para la reduccioacuten de consumo en FSMs 256
612 Observaciones y consejos a nivel topoloacutegico 256
613 Resultados a nivel algoriacutetmico 260
614 Bloques aritmeacuteticos 261
615 Conclusiones sobre la herramientas de estimacioacuten de consumo 263
62 Trabajos futuros 264
63 Publicaciones relacionadas con eacuteste trabajo 265
64 Reglas empiacutericas para el disentildeo de bajo consumo en FPGAs 268
XV
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Apeacutendice A Placa de prueba familia XC4K 271
A1 Introduccioacuten 271
A2 Caracteriacutesticas de la placa de prueba 271
A3 Dispositivos utilizados 273
A4 Conexioacuten de la placa de pruebas 274
A5 Meacutetodo de medicioacuten de consumo 276
A6 Generador de vectores 277
A7 Referencias del apeacutendice 279
Apeacutendice B Placa de prueba AFX (Virtex) 281
Bl Introduccioacuten 281
B2 Caracteriacutesticas de la placa de prueba AFX 282
B3 Dispositivos Virtex utilizados 283
B4 Conexioacuten de la placa de pruebas 283
B5 Metodologiacutea de medicioacuten de consumo 285
B6 Referencias del apeacutendice 287
Apeacutendice C Placa de prueba para VIRTEX II 289
C1 Introduccioacuten 289
C2 Caracteriacutesticas de la placa de prueba para Virtex II 290
C3 Dispositivos Virtex II utilizados 292
XVI
iacutendice
C4 Conexioacuten de la placa de pruebas 292
C5 Metodologiacutea de medicioacuten de consumo 293
C6 Referencias del apeacutendice 295
Apeacutendice D Traductor Kiss2VHDL 297
Dl Introduccioacuten 297
D2 El formato KISS 297
D3 Bancos de pruebas (Bencimarks) 299
D3 Traductor Kiss2VHDL 300
D4 Referencias del Apeacutendice 303
Apeacutendice E Particionador de maacutequinas de estado Part_FSM 305
El Introduccioacuten 305
E2 Estructuras de datos 305
E3 Caacutelculo de probabilidad estaacutetica 306
E4 Particioacuten de la maacutequina de estados 307
E5 Generacioacuten del coacutedigo VHDL 309
Apeacutendice F Utilizacioacuten de la herramienta de estimacioacuten de consumo Xpower 317
Fl Introduccioacuten 317
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
F2 Uso de Xpower con FPGAs 317
F21 Generacioacuten del fichero VCD 318
F22 Uso de la interfaz graacutefica Xpower 320
F23 Uso de la liacutenea de comando Xpwr 320
F3 Scripts para el uso del Xpower 321
F31 Script para la implementacioacuten del disentildeo 321
F32 Scriptpamptz la simulacioacuten y generacioacuten del fichero VCD 322
F4 Cometarios y conclusiones 323
F5 Referencias del apeacutendice 325
xvni
Lista de Figuras
Lista de Figuras
Figura 21 Inversor CMOS 12
Figura 22 Consumo estaacutetico en un inversor CMOS 13
Figura 23 Consumo dinaacutemico en un cambio de estado del inversor 14
Figura 24 Relacioacuten energiacutea-tensioacuten y retardo-tensioacuten respectivamente 15
Figura 25 Rutado simplificado en dispositivos tipo FPGA 16
Figura 26 Interpretacioacuten de la actividad en circuitos siacutencronos Glitches 18
Figura 27 Transiciones espuacutereas (glitches) a Producidos por el desbalance en el arribo
de las sentildeales b Efecto avalancha debido al aumento de la profundidad
loacutegica 19
Figura 28 Jerarquiacutea en el espacio de disentildeo 20
Figura 29 Dependencia del orden de entrada para la reduccioacuten de actividad 25
Figura 210 Estructuras de cascada y balanceadas 26
Figura 211 Desbalanceo en las pistas El ejemplo se muestran 4 conexiones
adyasentes a una LUT en un dispositivo Virtex 26
Figura 212 Reduccioacuten de tensioacuten y paralelismo para bajo consumo [Lan96] 28
Figura 213 Reduccioacuten de tensioacuten ypipeline para bajo consumo [Lan96] 30
Figura 214 Ejemplos de cambio de signo en complemento a dos (C2) y signo
magnitud (SVA) 33
Figura 215 Graacutefica del consumo y la energiacutea 40
Figura 216 Proyecciones para la industria de semiconductores 41
Figura 217 Distribucioacuten del consumo en XC4003 seguacuten [Kus98] 42
Figura 218 Distribucioacuten del consumo en XC4k-E seguacuten [GarOO] 42
Figura 219 Distribucioacuten del consumo en Virtex 2 seguacuten [Sha02] 42
XIX
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Figura 31 Medidas de la relacioacuten lineal de la frecuencia con el consumo y cuadraacutetica
con la tensioacuten de alimentacioacuten en la familia XC4K 50
Figura 32 Medidas de la relacioacuten lineal de la frecuencia y cuadraacutetica con la tensioacuten en
dispositivos de la familia Virtex 51
Figura 33 Corriente de sincronizacioacuten en funcioacuten de la cantidad de registros en
diferentes dispositivos de la familia XC4K 54
Figura 34 Relacioacuten del consumo de sincronizacioacuten respecto del de la ruta de datos en
XC4K 55
Figura 35 Consumo de sincronizacioacuten en funcioacuten de la cantidad de registros en el
dispositivo Virtex XCV800PQ240-4 56
Figura 36 Distribucioacuten del reloj en Virtex II [Xil04b] 57
Figura 37 Consumo por flip-flop en el dispositivo Virtex II XC2V1500fg676-6 expresados (iquestWMHz 57
Figura 38 Relacioacuten ancho de banda-consumo para multiplicadores segmentados
[Boe96] 61
Figura 39 Consumo dinaacutemica de los multiplicadores medidos 63
Figura 310 Relacioacuten velocidad-consumo para la misma topologiacutea para el
multiplicador Guild 64
Figura 311 Relacioacuten velocidad-consumo dentro de la misma topologiacutea (multipl
VHDL comportamental) 65
Figura 312 Estudio de las fluctuaciones en el consumo para circuitos de similares
velocidades (Multiplicador Guid) 66
Figura 313 Transiciones a la salida de los multiplicadores seleccionados y obtenida
por Simulacioacuten 67
Figura 314 Transiciones a la salida de los multiplicadores obtenido por medicioacuten con
el analizador loacutegico 68
Figura 315 Relacioacuten entre actividad a la salida de los multiplicadores y consumo para
implementaciones con similar velocidad 69
XX
Lista de Figuras
Figura 316 Relacioacuten entre actividad a la salida de los multiplicadores y consumo para
implementaciones con similar velocidad 70
Figura 317 Arreglo segmentado Hatamian-Cash de 4 bits con entradas b locales y a
globales [Boe95] 73
Figura 318 Reduccioacuten de consumo Areglos Hatamian-Cashampa XC4010PC84 76
Figura 319 Reduccioacuten de consumo en funcioacuten de la profundidad de loacutegica de los
circuitos XC4010PC84 76
Figura 320 Efecto de las liacuteneas globales XC4010PC84 78
Figura 321 Reduccioacuten de consumo para diferentes topologiacuteas XC4010PC84 79
Figura 322 Reduccioacuten de consumo para diferentes circuitos familia XC40XXPC84
(multiplicador Hatamian-8) 79
Figura 324 Diferencia en el consumo estimado y medido multiplicadores 16 bits 85
Figura 325 Diferencia en el consumo estimado y medido multiplicadores de 32 bits85 Figura 326 Consumo respecto de la profundidad loacutegica para diferentes dispositivos
de la familia XC4K 88
Figura 327 Relacioacuten del consumo de sincronizacioacuten y de la ruta de datos en funcioacuten
de la profundidad loacutegica en XC4010 89
Figura 328 Consumo dinaacutemico respecto de la profundidad loacutegica en Virtex 91
Figura 329 Consumo aacuterea retardo normalizados respecto de la profundidad loacutegica
en Virtex 91
Figura 330 Consumo medido y estimado en funcioacuten de la profundidad loacutegica 93
Figura 331 Consumo respecto de la profundidad loacutegica en Virtex II 95
Figura 332 Distribucioacuten de la liacutenea global de reloj a)Flip-flop en las patas de entrada
salida b) usando los Flip-Flop de los CLBs 97
Figura 333 Distribucioacuten de la liacutenea de entrada alt7gt con fan-out aacutee 16 a)Flip-flop en
las patas de entrada salida b) usando los Flip-Flop de los CLBs 98
Figura 334 Consumo normalizado con registros en IOBs y CLBs 99
Figura 335 Ejemplo de la utilizacioacuten de aislamiento de operandos ^$amp^Q$pj
sectpoundsect vxsa lQj
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Figura 336 Esquema para la deshabilitacioacuten de partes del circuito 104
Figura 337 Riesgo de doble captura en la implementacioacuten de gated dock en FPGAs
P0103a] 105
Figura 338 Forma de iacutemplementar el bloqueo de datos equivalente al gated dock
seguacuten Xilinx [Xil03a] 106
Figura 339 Inhabilitadoacuten de las entradas con puertas a puertas AND b Puertas
OR 107
Figura 340 Circuito original para la evaluadoacuten de las teacutecnicas de deshabilitadoacuten de
partes inactivas 108
Figura 341 Modificadoacuten del circuito para la evaluadoacuten de las teacutecnicas de
deshabilitadoacuten de partes inactivas utilizando inhabilitadoacuten con CE 108
Figura 41 Ejemplo coacutedigo KISS 125
Figura 42 Resumen del coacutedigo generado por la herramienta KISS2VHDL para el coacutedigo KISS2 de la Figura 42 126
Figura 43 Ahorro de consumo en fundoacuten de la cantidad de estados One-Hot
respecto de Binario 129
Figura 44 Ahorro de consumo en fundoacuten de la cantidad de estados One-Hot
respecto de Out-oriented 130
Figura 45 Consumo por cantidad de estados Codificadoacuten binaria 131
Figura 46 Consumo por cantidad de estados Codificadoacuten One-Hot 131
Figura 47 Consumo por cantidad de estados Codificadoacuten Out-oriented 131
Figura 48 Consumo por cantidad de estados Codificadoacuten Two-Hot 132
Figura 49 Reladoacuten retardo- consumo para las FSMs 132
Figura 410 Reladoacuten aacuterea mdash consumo en las maacutequinas de estados 133
Figura 411 Descomposidoacuten de maacutequinas de estados a Paralela b Cascada c General 136
Figura 412 Diagrama de estados de una maacutequina de estados y diagramas de las
paruumldones en la aproximadoacuten tradidonal 137
XXII
Lista de Figuras
Figura 413 Diagrama de estados y particioacuten ortogonal de una FSM [She92] 138
Figura 414 Arquitectura I para descomposicioacuten de maacutequinas de estado en FPGAs
140
Figura 415 Arquitectura II para descomposicioacuten de maacutequinas de estado en FPGAs
141
Figura 416 Diagrama de transicioacuten de estados y grafos de probabilidades a FSM
de ejemplo b Probabilidad condicional para cada arco c probabilidad
estaacutetica de cada estado y la probabilidad total de transicioacuten d grafo de
probabilidades de transicioacuten 144
Figura 417 a) Diagrama de transicioacuten de estados (State Transition Graph - STG) b)
Probabilidad estaacutetica y probabilidad total de transicioacuten 145
Figura 418 Graacutefica de frecuencia donde se observa el impacto negativo de los
registros de bloqueo 151
Figura 419 Aacuterea de la particioacuten ortogonal respecto de las arquitectura 1 y 2 152
Figura 420 Retardo de la particioacuten ortogonal respecto de las arquitectura 1 y 2 152
Figura 421 Consumo de la particioacuten ortogonal respecto de las particiones seguacuten la arquitectural y2 153
Figura 51 Reductor moacutedulo M a Celda elemental del algoritmo con restauracioacuten b
Celda elemental algoritmo sin restauracioacuten c Implementacioacuten
combinacional algoritmo sin restauracioacuten 169
Figura 52 Multiplicador modular shifi and add a Celda de caacutelculo b arreglo
combinacional 170
Figura 53 Celda de caacutelculo del multiplicador de Montgomery 171
Figura 54 Esquema de la implementacioacuten secuencial del algoritmo de sumas y desplazamientos 173
Figura 55 Aacuterea - retardo mdash consumo para los multiplicadores modulares 177
Figura 56 Celda baacutesica de un sumador que utiliza la cadena de acarreo en las FPGAs
deXilinx 180
Figura 57 Grupo sumador de s bits para el carry-skip 181
XXIII
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Figura 58 Multiplexores de salto de acarreo (carry-skip multiplexeri) 182
Figura 59 Generacioacuten de la condicioacuten de propagacioacuten del acarreo 183
Figura 510 Emplazamiento relativo para un Carry-Skip con 2V=128 J=16 184
Figura 511 Sumador carry-skip (raquo = 4s) 185
Figura 512 Estructura de los circuitos a medir 186
Figura 513 Estructura de los acumuladores utilizados para medir el consumo 187
Figura 514 Divisor con restauracioacuten a Estructura general b Celda baacutesica 194
Figura 515 Divisor sin restauracioacuten Estructura general Celda baacutesica del algortimo
197
Figura 516 Celda de correccioacuten del cociente y resto en el algoritmo sin restauracioacuten
197
Figura 517 Circuito de divisioacuten de naturales binarios con restauracioacuten a
Estructura general b Celda elemental de caacutelculo 199
Figura 518 Circuito de divisioacuten de enteros sin restauracioacuten a Estructura general b
Celda elemental de caacutelculo c Celda de correccioacuten para naturales 200
Figura 519 Consumo para los divisores con y sin restauracioacuten para la secuencia
aleatoria (aleatTog) en mWMHz 203
Figura 520 Actividad en un divisor con restauracioacuten de 8 por 8 bits 204
Figura 521 Actividad en un divisor sin restauracioacuten de 8 por 8 bits 204
Figura 522 Algoritmos de divisioacuten con y sin restauracioacuten para nuacutemeros fraccionarios
208
Figura 523 Arquitectura para el algoritmo SRT a) Paso de divisioacuten (division_step) y
circuito combinacional 209
Figura 524 Arquitectura de la celda srt_r2_division_step para el algoritmo SRT en base
2 212
Figura 525 Esquema para el divisor SRT base 2 214
Figura 526 Celda para el caacutelculo de x(n0) x srn(l0) 216
XXIV
Lista de Figuras
Figura 527 Celda Division_step_r4 para el divisor SRT base 4 con resto en
complemento a dos 216
Figura 528 Divisor SRT base 4 con resto en complemento a la base 217
Figura 529 Contenido del slice perteneciente a la celda converter para el divisor SRT
base 4 218
Figura 530 PD-Plot para SRT base 8 con cociente en el rango -7 -6-5 - 1 0
1 6 7 219
Figura 531 PD-Plot para SRT base 16 con cociente en el rango -15 - 1 4 -1 0
1 1415 221
Figura 532 Arquitectura del SRT en base 2 con el resto en formato carry-save 223
Figura 533 Celda baacutesica del divisor SRT en base 2 con resto en formato carry-save224
Figura 534 Implementacioacuten en FPGA de la celda baacutesica del divisor SRT en base 2
con resto en formato carry-save 225
Figura 535 Celda de divisioacuten SRT con resto en carry-save (2da versioacuten) 226
Figura 536 Arquitectura segmentada de un divisor SRT con LD mdash 1 227
Figura 537 Arquitectura secuencial del algoritmo de divisioacuten SRT 228
Figura 538 Retardo de los divisores en funcioacuten del tamantildeo de datos en Vitex 232
Figura 539 Retardo de divisores en funcioacuten del tamantildeo de datos en Virtex II 232
Figura 540 Aacuterea de los divisores en Virtex y Virtex II 233
Figura 541 Aacuterea y retardo en funcioacuten de la profundidad loacutegica para divisores de 32 bits en Virtex II 235
Figura 542 Latencia para los diferentes circuitos secuenciales en Virtex II 237
Figura 543 Relacioacuten aacuterea x latencia en circuitos secuenciales en Virtex II 237
Figura 544 Retado (en ns) respecto del tamantildeo de los operandos para diferentes
implementaciones de divisores publicadas recientemente y los circuitos
descritos en esta seccioacuten 238
Figura 545 Relacioacuten retardo - latencia - aacuterea par las diferentes arquitecturas de
divisores fraccionarios 239
XXV
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Figura 546 Consumo dinaacutemico en mWMHz para divisores de 16 bits 240
Figura 547 Consumo dinaacutemico en mWMHz para divisores de 32 bits 241
Figura 548 Area-Time-Poiver para divisores de 32 bits con la secuencia avgjog 241
Figura 549 Consumo dinaacutemico (mWMHz) con respecto a la profundidad loacutegica
para los divisores SRT base-2 con resto en complemento a dos 242
Figura 550 Consumo dinaacutemico (mWMHz) con respecto a la profundidad loacutegica
para los diferentes divisores segmentados y la secuencia de prueba
avgjog 242
Figura 551 Consumo retardo y aacuterea normalizados respecto de la profundidad loacutegica
para el divisor SRT base-2 con resto en complemento a la base 243
Figura 552 Consumo de energiacutea tanto de sincronizacioacuten como de la ruta de datos
para los divisores secuenciales de 32 bits 244
Figura 553 Aacuterea retardo y consumo (ATP) para diferentes algoritmos divisioacuten y
arquitecturas secuenciales combinacionales y segmentadas 245
Figura Al Esquema de la placa de prueba de la familia XC4000 274
Figura A2 Esquema de conexioacuten del arreglo experimental en XC4K 275
Figura A3 Fotografiacutea del arreglo experimental para XC4K 275
Figura A4 Esquema de un generador de patrones en las XC3K 278
Figura Bl Detalle de la placa de prototipado AFX 281
Figura B2 Fotografiacutea de la tarjeta AFX 282
Figura B3 Detalle de la interfaz con el puerto paralelo de la tarjeta AFX 283
Figura B4 Fotografiacutea del arreglo experimental placa AFX 285
Figura Cl Diagrama de bloques de la placa de prototipado para Viacutertex II [XIacute103] 290
Figura C2 Detalle de la placa de prototipado para Virtex II [XIacute103] 291
Figura C4 Fotografiacutea del arreglo experimental placa Virtex II 293
Figura Dl Un primer ejemplo de descripcioacuten KISS2 298
XXVI
Lista de Figuras
Figura D2 Ejemplo de grafo de transicioacuten de estados y su correspondiente
especificacioacuten en KISS2 299
Figura El Declaracioacuten de la parte privada de las clases statey transiHon 306
Figura E2 Coacutedigo para la particioacuten de maacutequinas de estados 308
Figura E3 Diagrama de transicioacuten de estados de la maacutequina de estados DK27 309
Figura E4 a) Coacutedigo KISS2 de entrada b) Informacioacuten de la herramienta con las
probabilidades calculadas 310
Figura E5 Informacioacuten de las particiones generadas 310
Figura E6 Particioacuten generada para el circuito dk27 311
Figura Fl Aspecto de la interfaz graacutefica Xpower 319
Figura F2 Opciones en la herramienta de liacutenea de comando Xpwr 321
Figura F3 Script de iacutemplementacioacuten de un disentildeo 322
Figura F4 Script de simulacioacuten e invocacioacuten a xpwr 322
Figura F5 Script para el simulador 323
XXVII
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
XXVIII
Lista de Tablas
Lista de Tablas
Tabla 31 Consumo estaacutetico para dispositivos XC4K Virtex y Virtex II medidos 52
Tabla 32 Relacioacuten consumo estaacutetico respecto del dinaacutemico en XC4K Virtex y Virtex
II 53
Tabla 33 Ejemplos de la relacioacuten del consumo de sincronizacioacuten respecto del de la
ruta de datos en Virtex 56
Tabla 34 Principales caracteriacutesticas de los circuitos de prueba Relacioacuten Velocidad-
Consumo 62
Tabla 35 Principales caracteriacutesticas de los circuitos de prueba 74
Tabla 36 Descripcioacuten de los vectores de prueba 75
Tabla 37 Actividad de las entradas salidas y totales para la operacioacuten AxB y BxA con
vectores de maacuteximo toggk-8 77
Tabla 38 Principales caracteriacutesticas de los circuitos de prueba Familia Virtex 80
Tabla 39 Diferencia de consumo AxB vs BxA en multiplicadores de 32 bits 81
Tabla 310 Diferencia de consumo AxB vs BxA en multiplicadores de 16 bits 81
Tabla 311 Relacioacuten medidas mdash estimaciones para multiplicadores de 32 bits y
secuencia MaxTog 83
Tabla 312 Relacioacuten medidas mdash estimaciones para multiplicadores de 32 bits y
secuencia AvgTog 83
Tabla 313 Relacioacuten medidas mdash estimaciones para multiplicadores de 16 bits y
secuencia MaxTog 83
Tabla 314 Relacioacuten medidas - estimaciones para multiplicadores de 16 bits y
secuencia AvgTog 84
Tabla 315 Principales caracteriacutesticas de las diferentes topologiacuteas de prueba XC4K 88
Tabla 316 Principales caracteriacutesticas de los circuitos de prueba para Virtex 90
XXIX
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Tabla 317 Consumo medido respecto del estimado para multiplicadores
segmentados 93
Tabla 318 Principales caracteriacutesticas de los circuitos de prueba para Virtex II 94
Tabla 319 Diferencia de consumo dinaacutemico dependiendo del tipo de registros en Virtex Consumo dinaacutemico a 5 MHz 100
Tabla 320 Diferencia de consumo dinaacutemico dependiendo del tipo de registros en
Virtex II Consumo dinaacutemico a 10 MHz 101
Tabla 41 Circuitos de prueba originales y minimizados en cantidad de estados 127
Tabla 42 Aacuterea-Velocidad y Consumo para el conjunto de circuitos de prueba 128
Tabla 43 Datos originales de las maacutequinas de estados cantidad de entradas salidas
estados y arcos Ademaacutes informacioacuten de la particioacuten (probabilidad y
nuacutemero de arcos entre particiones) 147
Tabla 44 Consumo de potencia expresado en mWMHz para la particioacuten de
maacutequinas de estado 149
Tabla 45 Airea expresada en CLBs para la particioacuten de maacutequinas de estado 150
Tabla 46 Circuitos donde no se logra mejora en el consumo debido a la alta probabilidad de transicioacuten entre submaacutequinas de estados 151
Tabla 51 Nuacutemero de CLBs y Retardo Maacuteximo (ns) para los multiplicadores
modulares secuenciales 172
Tabla 52 Nuacutemero de CLBs y Frecuencia maacutexima (MHz) para multiplicadores
modulares secuenciales 175
Tabla 53 Aacuterea retardo y consumo (Area-Time-Energy) de los multiplicadores
modulares combinacionales 176
Tabla 54 Aacuterea retardo y consumo de los multiplicadores modulares secuenciales176
Tabla 55 Resultados de la implementacioacuten de circuitos carry skip Retardos en ns 186
Tabla 56 Resultados de la implementacioacuten de circuitos carry skip Penalidad en aacuterea
187
Tabla 57 Consumo sumadores Carry-Skiacutep 188
XXX
Lista de Tablas
Tabla 58 Aacuterea y retardo para la divisioacuten con y sin restauracioacuten 201
Tabla 59 Consumo dinaacutemico para los divisores de nuacutemeros enteros expresados en
mWMHz 202
Tabla 510 Actividad de sentildeales y loacutegica para los algoritmos divisores de enteros de 8
bits Los valores expresan frecuencias de las sentildeales en MHz 205
Tabla 511 Operaciones a realizar por el SRT en base 2 212
Tabla 512 Funcioacuten loacutegica implementada en la celda S_R_Nada del algoritmo SRT
base 2 213
Tabla 513 Seleccioacuten del diacutegito Qi en el SRT en base 4 215
Tabla 514 Tabla Qsel para el SRT base 2 con catry-save 224
Tabla 515 Resultados para implementaciones combinacionales en la familia Virtex 230
Tabla 516 Resultados para implementaciones combinacionales en la familia Virtex II
231
Tabla 517 Profundidad Loacutegica (LD) ciclos necesarios aacuterea en slices cantidad de
registros (FF y SRL) y maacuteximo ancho de banda en MHz para diferentes
arquitecturas en Virtex 234
Tabla 518 Profundidad Loacutegica (LD) ciclos necesarios aacuterea en slices cantidad de
registros y maacuteximo ancho de banda en MHz para diferentes arquitecturas
en Virtex II 234
Tabla 519 Resultados implementaciones iterativas en Virtex 236
Tabla 520 Resultados implementaciones iterativas en Virtex II 236
Tabla Al Conexiones del analizador en la placas de prueba 272
Tabla A2 Conexiones del cable de programacioacuten y botones 273
Tabla A3 Recursos de los dispositivos de la serie XC4K utilizados en las mediciones
273
Tabla A4 Componentes del consumo y forma de medicioacuten en XC4K 276
Tabla Bl Conexiones del generador de patrones a la FPGA 284
XXXI
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Tabla B2 Conexiones del generador de la FPGA al analizador loacutegico 284
Tabla B3 Componentes del consumo y forma de medicioacuten en Virtex 286
Tabla Cl Componentes del consumo y forma de medicioacuten en Virtex II 294
XXXII
Lista de Acroacutenimos
Lista de Acroacutenimos
ASIC Application Specific Integrated Circuit Circuito de aplicacioacuten especifica
ATP Area-Time-Pmver Relacioacuten aacuterea - retardo - consumo
C2 Sistema de representacioacuten de enteros de complemento a dos
CAD Computer Aided Design Disentildeo Asistido por Ordenador
CD Cero Desplazado Sistema de representacioacuten de enteros
CDSP Custom Digital SignalProcessor Procesador digital de sentildeal a medida
CLA Cary Look AbeadAdder Sumador de acarreo anticipado
CLB Configurabk Logic Block Bloque configurable de loacutegica Celda elemental en
las FPGAs
CMOS Complementar Metal Oxide Semiconductor
CPLD ComplexPLD
CSA Carry-Save Adder Sumador con ahorro de propagacioacuten de acarreo
DCM Digital Clock Manager Administrador digital de reloj Un elemento de
disentildeo que provee muacuteltiples funciones sobre el reloj
DCT Discrete Cosine Transform Transformada discreta del coseno
DLL Delqy LockedLoop Circuito para realizar manejos del reloj
DSP Digital Signal Processor Procesador digital de sentildeal
EDA Electronic Design Automation Nombre geneacuterico para especificar herramientas para automatizar el disentildeo electroacutenico
EDIF Electronic Data Interchange Format Un formato de fichero estaacutendar
industrial para especificar netlists
EEPROM Electrically Erasable Programmable Read Only Memory Memoria de solo
lectura programable y borrable electroacutenicamente
xxxni
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
EPROM Erasable Programmabk Read Only Memory Memoria de solo lectura
programable y borrable
FA FullAdder Sumador completo
fe Frecuencia maacutexima de funcionamiento o de reloj
FF Flip-Flop Baacutescula
FFT Fast Fourier Transform Transformada raacutepida de Fourier
FIFO First In First Out Primero entra primero sale
FIR Finite Impulse Response Aplicado a Filtros digitales
FPGA FieldProgrammabk GateArray
FSM Finite State Machine Maacutequina de Estados Finitos
GF Galois Field Cuerpo de Galois (cuerpo finito)
HDL Hardware Descriptiacuteon Language Lenguaje de descripcioacuten de Hardware
I O Input I Output EntradaSalida
IDE Integrated Development Environment
IOB Input Output Block Bloques de entrada salida en FPGA de Xilinx
ISE Integrated Software Environment Nombre del entorno de desarrollo para
FPGAs y CPLDs de Xilinx
JHDL Java Hardware descriptiacuteon Language Lenguaje de descripcioacuten de Hardware
basado en JAVA
LD Logic Depth Profundidad loacutegica
LSI Large-Scak Integration Alta escala de integracioacuten
LUT Look-Up Tabk Tabla de consulta Implementa funciones booleanas
MCNC Microelectronics Center of North Carolina Centro de microelectroacutenica de
Carolina del Norte Circuitos electroacutenicos de referencia
MSB Most Signiftcant Bit Bit maacutes significativo
MSD Most Significant Digit Diacutegito maacutes significativo
XXXIV
Lista de Acroacutenimos
NCD Native Circuit Description Fichero que representa la representacioacuten fiacutesica
de un dispositivo en el entorno de Xilinx
NGD Native Generic Dataacutebase Fichero que describe el disentildeo loacutegico en base a
primitivas de Xilinx
NR Non-Restoring Algoritmo de divisioacuten sin restauracioacuten
NRE Non-Recurring Engineering Costes no recurrentes de ingenieriacutea Utilizado
para nombrar los costos fijos en el desarrollo
OH One Hot Codificacioacuten de maacutequinas de estados
PAR Place and route too Programa para el mapeo emplazamiento y rutado en
las FPGAs de Xilinx
PCB Priacutented Circuit Board Placa de circuito impreso
PCF Physica Constraints Fie Fichero de restricciones en el entorno Xilinx
PD-Plot Partial-Remainder and Divisor Plot Graacutefica del resto parcial respecto del
divisor (seleccioacuten de cocientes en algoritmos de divisioacuten)
PLD Programmable Logic Device Dispositivo Loacutegico Programable
PSC Parallel Serie Converter Conversor paraleloserie
r2 Coeficiente de determinacioacuten en el anaacutelisis de regresioacuten lineal
RCA Ripple CarryAdder Sumador de acarreo propagado RISC Reduced Instruction Set Computer Ordenador de conjunto reducido de
instrucciones
ROM Read Only Memory Memoria de solo lectura
RPM Relationally Placed Macro Define relaciones espaciales entre las primitivas
de un disentildeo en Xilinx
RSA Rivest-Sbamiacuter-Adleman Sistema criptograacutefico con clave puacuteblica
RTL Register Transference hevel Nivel de descripcioacuten de hardware a nivel de transferencia entre registros
SP SerieParalelo
taoacutesvv bullbullbull yi-j
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
SDA Serial digitArithmetic Aritmeacutetica de diacutegitos en serie
SDF Standard Delay Format Estaacutendar industrial para especificar informacioacuten de
tiempos usado generalmente en la simulacioacuten
SoC System on Chip Sistema en un chip
SPC Serial Parallel Converter Conversor serieparalelo
SRAM Static Random Access Memory
SRL ShifRegister in LUT Registros de desplazamiento en LUT
SRT Sweeney - Robertson - Tocher Algoritmo de divisioacuten
STG State Transition Graph Grafo de transicioacuten de estados
STT State Transition Table Tabla de transicioacuten de estados
SVA Signo Valor Absoluto Sistema de representacioacuten de enteros tambieacuten
dominado de signo y magnitud
TH Two Hot Codificacioacuten de maacutequinas de estados
UCF User Constraints File Fichero de restricciones en el entorno Xiliacutenx
ULP Unit in the JLeast signijicant Position Unidad en las posiciones menos
significativas
USB Universal Serial Bus
UUT Unit Under Test Unidad bajo prueba
VCD Valueacute Change Dump Volcado del cambio de valores Fichero para automatizar la anotacioacuten del movimiento de las sentildeales
VHDL VHSIC (Very Higb Speed Integrated Circuit) Hardware Description Language
Lenguaje de Descripcioacuten de Hardware
VLSI Very hatge-Scale Integration Circuitos de muy alta escala de integracioacuten
XST Xilinx Synthesis Technology Herramemienta de siacutentesis HDL de Xilinx
ZOH Zero One Hot Codificacioacuten de maacutequinas de estados
XXXVI
Anglicismos y batbarismos
Anglicismos barbarismos neologismos y otros defectos
Indudablemente el ingleacutes es el idioma que mejor ha logrado adaptarse a la inevitable
ampliacioacuten de vocabulario generada por la revolucioacuten tecnoloacutegica de los uacuteltimos antildeos
En la actualidad difiacutecilmente puede pretender un cientiacutefico difundir universalmente su
trabajo al margen de los medios escritos en ingleacutes y resulta obvio que la praacutectica
totalidad de las revistas cientiacuteficas maacutes acreditadas se escriben en este idioma
El liderazgo indiscutible de la lengua Inglesa se basa en que una parte significativa de
los progresos cientiacuteficos y teacutecnicos modernos se han originado y desarrollado
fundamentalmente en aacutereas geograacuteficas angloacutefonas y que consecuentemente un
notable nuacutemero de las publicaciones cientiacuteficas utilizan esta lengua como medio
comuacuten de propagacioacuten e intercambio de informacioacuten Su innegable simplicidad
foneacutetica y gramatical contribuye en este proceso
Si bien este fenoacutemeno tiene por una parte el valor de facilitar la comunicacioacuten y el
intercambio universal de informacioacuten (quizaacutes una versioacuten moderna del utoacutepico
esperanto) no cabe duda que por otro lado su progresivo asentamiento haya
permitido la adulteracioacuten de otros idiomas con una soacutelida tradicioacuten gramatical
Aunque ninguna rama de la ciencia se libra de dicha contaminacioacuten es en el lenguaje
informaacutetico y de telecomunicaciones donde pueden detectarse niacutetidamente varios de
estos barbarismos
Esta tesis no esta exenta de estos vicios idiomaacuteticos los que en ocasiones son casi
inevitables A continuacioacuten se listan algunos de estos teacuterminos de comuacuten utilizacioacuten
en el entorno y aacuterea de trabajo del autor y que han sido utilizados durante la redaccioacuten
del presente documento
XXXVII
Teacutecnicas para la Reduccioacuten de Consumoen FPGAs
benchmark m Castellanizacioacuten del mismo teacutermino ingleacutes Su significado y correcta
traduccioacuten es la de banco de prueba Utilizado en el contexto de prueba sistematizada
sobre coacutedigo de descripcioacuten de hardware
buacutefer m Castellanizacioacuten del teacutermino buffer con muacuteltiples acepciones Amplificador y
restaurador de niveles (electroacutenica digital) memoria intermedia (programacioacuten) etc
bus m Castellanizacioacuten del mismo teacutermino ingleacutes Su significado seguacuten el diccionario
difiere totalmente con el empleado en electroacutenica coleccioacuten de sentildeales
core m Castellanizacioacuten del mismo teacutermino ingleacutes En ocasiones se utiliza con el
significado de nuacutecleo (parte interna del circuito sin la periferia) aunque tambieacuten se
utiliza en la jerga de las FPGAs como circuito predisentildeado
datapath m Castellanizacioacuten del mismo teacutermino ingleacutes Se refiere a la ruta de datos
de un disentildeo electroacutenico
deshabilitacioacuten m Castellanizacioacuten del teacutermino disable Supresioacuten interrupcioacuten o
inhabilitacioacuten son teacuterminos maacutes correctos
embebido Castellanizacioacuten del teacutermino embedded El autor prefiere utilizar dedicado
o empotrado aunque el teacutermino anterior es ampliamente difundido
fanin m Castellanizacioacuten del mismo teacutermino ingleacutes Expresa el concepto cantidad de
entradas de un circuito loacutegico
fanout m Castellanizacioacuten del mismo teacutermino ingleacutes Expresa el concepto
conexiones o carga de una sentildeal
flip-flop m Castellanizacioacuten del mismo teacutermino ingleacutes Maacutes utilizado que la correcta
palabra castellana biestable
gated clock m Castellanizacioacuten del mismo teacutermino ingleacutes Teacutecnica de disentildeo
electroacutenico de bloqueo de reloj
glitch m Castellanizacioacuten del mismo teacutermino ingleacutes Muy empleado al no existir un
teacutermino espantildeol tan compacto Se refiere a las transiciones espurias
hardware m Castellanizacioacuten del mismo teacutermino ingleacutes
instancia m Castellanizacioacuten del teacutermino instance La acepcioacuten utilizada no coincide
con la definicioacuten del diccionario En disentildeo electroacutenico oacute en programacioacuten orientada a
objetos elemento correspondiente a una determinado tipo o clase
xxxvin
Anglicismos y barbarismos
instanciar v t Castellanizacioacuten del verbo to instantiate Se utiliza para indicar la
creacioacuten de un nuevo elemento de un determinado tipo o clase Utilizado tanto en
disentildeo software como de hardware
latch m Castellanizacioacuten del mismo teacutermino ingleacutes Maacutes utilizado que la correcta
palabra castellana cerrojo
layout m Castellanizacioacuten del mismo teacutermino ingleacutes Se utiliza con el significado de
disposicioacuten de los elementos que componen un circuito
macro Castellanizacioacuten del teacutermino ingleacutes Se utiliza como circuito predisentildeado oacute
bien como conjunto de instrucciones y acciones guardadas en un fichero Tambieacuten se
utiliza con el significado castellano de prefijo que significa grande
mapear v t Castellanizacioacuten del verbo to map En el contexto de esta tesis se podriacutea
traducir como asociar recursos a elementos loacutegicos no seriacutea correcto emplear soacutelo el
verbo asociar porque no tiene todos los matices de to map
pad m Castellanizacioacuten del mismo teacutermino ingleacutes No existe una palabra en espantildeol
que tenga exactamente los mismos matices pues no es la pata de un circuito
integrado sino el aacuterea donde eacutesta se conecta
pin m Castellanizacioacuten del mismo teacutermino ingleacutes En espantildeol se utiliza el teacutermino
pata de un circuito integrado pero es esta palabra es del mismo modo muy utilizada
power management m Castellanizacioacuten del teacutermino ingleacutes Se refiere al grupo de
teacutecnicas para el manejo del consumo de energiacutea
reconfigurable reconfiguracioacuten adj Adaptacioacuten del teacutermino reconfigurable
reconfiguration Castellanizacioacuten con base en la semaacutentica de reconfigurar
reconfigurar v t Adaptacioacuten del teacutermino reconfigure de raiacutez latina Utilizado para
indicar la recarga del contenido de un circuito reprogramable
reset m Castellanizacioacuten del teacutermino reset La palabra equivalente en espantildeol
reiniciacioacuten es mucho menos utiliza
retiming m Castellanizacioacuten del mismo teacutermino ingleacutes Se refiere a una teacutecnica
especiacutefica para el aumento de velocidad en circuitos digitales Una posible traduccioacuten
es retemporizacioacuten utilizando la temporizacioacuten con el significado aquiacute descrito
XXXIX
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
rutar v t Castellanizacioacuten del verbo to route Las acepciones que aparecen en el
diccionario son completamente distintas al uso que se le da en esta tesis crear un
camino para establecer las conexiones de una sentildeal
script m Aunque existe el teacutermino castellano guioacuten este teacutermino es maacutes utilizado
en el aacuterea de la ingenieriacutea
software m Castellanizacioacuten del mismo teacutermino ingleacutes
temporizacioacuten f Castellanizacioacuten del teacutermino tempori^ation El significado que da el
diccionario a temporizar no se corresponde con el concepto para el que se emplea en
el disentildeo electroacutenico fijar la evolucioacuten en el tiempo de algo
topologiacutea f Si bien existe el teacutermino castellano el significado de la real academia no
soporta aun una de las acepciones del teacutermino ingleacutes topology Configuracioacuten formada
por conexiones entre dispositivos
triestado adj Castellanizacioacuten del teacutermino triestate
XL
Capiacutetulo 1 Introduccioacuten y Motivacioacuten
El objetivo general de esta tesis es dar soluciones en el disentildeo de bajo consumo en
FPGAs conocer queacute circuitos poseen mejores caracteriacutesticas de consumo respetando
propiedades de aacuterea y velocidad Sin embargo eacutesta es una meta demasiado ambiciosa y
alcanzarla con eacutexito requeririacutea la evaluacioacuten de multitud de operandos variables
arquitecturas y algoritmos Esta tesis es un aporte maacutes a dicho objetivo y se basa en
un fuerte trabajo experimental donde maacutes de 600 circuitos fueron construidos y
medidos
La utilizacioacuten de FPGAs (Fied Programmable Gate Arrays) ha aumentando raacutepidamente
debido a la posibilidad de realizar prototipos con tiempos reducidos y con bajos costes
de desarrollo (NRE - Non-Recarring Engineering costs) El consumo de potencia y la
disipacioacuten desde hace antildeos son un factor importante en el disentildeo de VLSI y existen
muacuteltiples herramientas y metodologiacuteas Sin embargo en el aacuterea de la loacutegica
reprogramable los dispositivos herramientas y metodologiacuteas estaacuten todaviacutea muy por
debajo de los requerimientos del mercado
11 Reduccioacuten y estimacioacuten del consumo
La utilizacioacuten de una metodologiacutea de estimacioacuten y control del consumo de circuitos
integrados resulta indispensable En la actualidad el calor generado por un circuito
integrado a menudo sobrepasa los liacutemites de disipacioacuten de los encapsulados siendo
imperiosa la utilizacioacuten de refrigeracioacuten artificial Actualmente el consumo de
potencia de algunos chiacuteps fundamentalmente microprocesadores pueden superar los
50 vatios con una tendencia de al menos duplicarse en los proacuteximos antildeos
1
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
[Jew00][Sia97][ItrO3] Valga como ejemplo el consumo Intel Pentium 4 a 24 GHz
(Northwood) con tecnologiacutea de 130 nm puede superar los 57 W [Act02] en tanto un
AMD XP 2200+ con tecnologiacutea de 180 nm supera los 67 W [Kai02]
Las ventajas de la reduccioacuten de consumo sobrepasan el campo de aplicacioacuten natural
relacionado con la electroacutenica portaacutetil (ordenadores telefoniacutea sistemas remotos de
adquisicioacuten etc) En primer lugar tiene un importante impacto econoacutemico pues
permite reemplazar encapsulados ceraacutemicos por plaacutesticos cuyo costo es al menos un
25 menor y a la vez simplifica o elimina la necesidad de elementos de refrigeracioacuten
tales como ventiladores disipadores o sensores de temperatura [Kah02] estima que el
costo del encapsulado se incrementa en 1$ por vatio de consumo
Por otro lado teniendo en cuenta que fallos de los circuitos integrados crecen
exponencialmente con la temperatura la reduccioacuten del consumo aumenta la fiabilidad
y vida del producto Seguacuten [Sma94][Ped96] cada 10 degC aproximadamente se dobla la
tasa de fallos Ademaacutes la vida del producto se ve afectada por la temperatura Intel
calcula que el aumento de entre 10-15 degC puede afectar la vida de los circuitos en un
factor de dos [VisOO] Finalmente un valor elevado del consumo se refleja en picos de
corrientes siacutencronos con el reloj que pueden afectar al funcionamiento del circuito
hasta proyectar su influencia sobre aspectos aparentemente independientes como la
complejidad del PCB o la sincronizacioacuten [Boe95]
Otro aspecto importante para evitar un excesivo consumo auacuten en las aplicaciones
donde no existen restricciones en ese sentido es que la velocidad de un circuito
CMOS decrece hasta en un factor del 035 por degC [Ped96]
12 Marco tecnoloacutegico
Se utilizaraacuten circuitos programables (Programmable Loacutegica Devices - PLDs) maacutes
especiacuteficamente FPGAs QField Programmable GateArrajs) de Xilinx La eleccioacuten de esta
tecnologiacutea VLSI estaacute justificada en su bajo coste y su capacidad de reutilizacioacuten El
mercado de circuitos reprogramables ha crecido muy velozmente compitiendo en
familias de aplicaciones que tradiacutecionalmente eran exclusivos de tecnologiacuteas ASIC y
DSPs
El disentildeo en FPGA exige una metodologiacutea propia en la mayoriacutea de los casos diferente
a la utilizada para el disentildeo de ASICs que estaacute condicionada por su estructura y
2
Capiacutetulo 1 Introduccioacuten y Motivacioacuten
recursos disponibles Muchos de los principios del disentildeo de ASICs no se cumplen en
el disentildeo en FPGAs debido principalmente a los grandes retardos provocados por el
rutado la divisioacuten en LUTs de los circuitos y a los recursos fijos de los dispositivos
Por todo esto la viabilidad de algunos circuitos meacutetodos de disentildeo y axiomas claacutesicos
deben reconsiderarse en funcioacuten de las caracteriacutesticas de la FPGA elegida
La justificacioacuten del fabricante elegido se basa en varios hechos Xilinx (XUuml04] es el
inventor1 de las FPGAs Fundada en 1984 es liacuteder del mercado y su arquitectura
basada en tablas de consulta look-up tabes) de cuatro entradas es la maacutes difundida
entre otros fabricantes Xilinx actualmente acapara en torno al 50 del mercado de la
loacutegica programable [Par04] lo que brinda gran difusioacuten y aplicacioacuten a los resultados
Por uacuteltimo y no menos importante en la metodologiacutea (y filosofiacutea) de disentildeo de este
fabricante se tiene acceso a todos los niveles de implementacioacuten y se puede controlar
cada detalle de la implementacioacuten fiacutesica del circuito elemento indispensable para la
evaluacioacuten de diferentes teacutecnicas y alternativas
A fin de disponer de una mayor generalidad de los resultados se han realizado
pruebas sobre diferentes dispositivos que cubren un amplio espectro de tiempo Se
han utilizado dispositivos de las serie XC4K la familia que maacutes tiempo ha estado en el
mercado introducida en 1991 (hoy sigue en fabricacioacuten la versioacuten econoacutemica de 33V
Spartan XL) Virtex en fabricacioacuten desde 1998 y Virtex II cuyos primeros dispositivos
datan de fines de 2001
El problema del consumo en FPGAs
Las FPGAs de hoy en diacutea poseen un altiacutesimo nivel de integracioacuten utilizando la
tecnologiacutea de fabricacioacuten maacutes avanzada del momento La cantidad de transistores
integrados en un uacutenico chip estaacute al nivel de los microprocesadores maacutes avanzados De
este modo los dispositivos programables siguen las tendencias de crecimiento de los
segmentos punteros en la tecnologiacutea VLSI con lo cual la problemaacutetica del consumo
no es ni mucho menos ajena a esta tecnologiacutea
1 La idea original fue desarrollada a fines de los antildeos 60 y patentada por Sven Wahlstrom [Wah67] aunque recien 1984 Xilinx (entonces una compantildeiacutea starttip y como hasta hoy en diacutea fabless) fabricoacute y comercializoacute esta idea
3
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
El alto nivel de reprogramabilidad y versatilidad genera a su vez una gran
incertidumbre respecto del consumo Las diferentes formas de implementar una
misma funcionalidad generan variaciones en el consumo que pueden superar
faacutecilmente un orden de magnitud He aquiacute uno de los motivos fundamentales para
establecer criterios para el disentildeo de bajo consumo
Seguacuten [Sha02] el consumo medio en un disentildeo promedio implementado en un
dispositivo Virtex II es alrededor de 15 uWMHzSlice con lo que un disentildeo
modesto de unos 8000 slices (2000 CLBs) funcionando a 100 MHz puede consumir 12
Vatios No obstante esta meacutetrica conservadora en opinioacuten el autor de esta tesis no
tiene en cuenta detalles de implementacioacuten como la profundidad loacutegica o la
generacioacuten de movimientos espurios (glitcbes) Por ejemplo un divisor non-restontildeng de
32 bits totalmente combinacional ocupando 576 slices en un dispositivo Virtex
Consume alrededor de 610 (iWMHzSlice Lo que significa que dividir a 5 MHz
puede consumir maacutes de 175 Wbdquo Hay que tener en cuenta que el divisor antes
mencionado con una implementacioacuten secuencial cuidadosa puede reducir el
consumo en un factor de 20
13 Seleccioacuten de teacutecnicas de reduccioacuten de consumo
El consumo de un circuito integrado es funcioacuten de la arquitectura tecnologiacutea
interconexioacuten secuencia de datos de entrada y estados por los que evoluciona Al igual
que el aacuterea o la velocidad su estudio estimacioacuten y control pueden realizarse en
cualquiera de los niveles de la jerarquiacutea de disentildeo
En este trabajo se desarrollaraacuten teacutecnicas de reduccioacuten de consumo en los niveles
arquitecturales funcionales y de implementacioacuten que son los que mejor se adaptan al
marco tecnoloacutegico elegido Para cada uno de los estratos anteriores existiraacuten dos
categoriacuteas de beneficiario de los resultados de la investigacioacuten por un lado el
fabricante del circuito integrado y por otro los usuarios finales del mismo a traveacutes del
desarrollo de heuriacutesticas para la reduccioacuten del consumo
La seleccioacuten de las teacutecnicas parte de un primer estudio bibliograacutefico y un refinamiento
posterior para adecuarlo al marco tecnoloacutegico Mucho se ha publicado sobre bajo
consumo en tecnologiacuteas VLSI los principales aportes a nivel arquitectural y
topoloacutegico tienen alrededor de una decada de publicacioacuten [Dev95] [Sch95] [Liu94]
4
Capiacutetulo 1 Introduccioacuten y Motivacioacuten
[Su94] [Pow91] [Su96] con una produccioacuten de conocimiento sostenida en los uacuteltimos
antildeos [Ben99][Alc00][Ben01][Sou02][Sun03]ITsu03]0ac04]|Yin04]|Kiy04] Por otra
parte en FPGAs recien en el uacuteltimo lustro se percibe un incremento significativo de
las publicaciones
Una gran parte de las teacutecnicas descritas en las publicaciones son a nivel teoacuterico con
resultados obtenidos por simulacioacuten Esta tesis tiene entre otros aspectos que la
diferencian con previas contribuciones la utilizacioacuten de medidas empiacutericas sobre los
circuitos
14 Objetivos de eacutesta tesis
Como resumen de lo anterior el objetivo de eacutesta tesis es desarrollar una serie de
teacutecnicas y heuriacutesticas que permitan reducir el consumo en circuitos programables Eacutesta
tesis tiene un fuerte caraacutecter experimental y todas las teacutecnicas son validadas en
dispositivos concretos alejaacutendose de otros enfoques puramente teoacutericos o a nivel de
simulacioacuten
La tesis se desarrolla sobre dispositivos del fabricante de circuitos programables
Xilinx Sin embargo los resultados son extrapolables a otros fabricantes y a
dispositivos futuros La arquitectura basada en tablas de look-up de 4 entradas es la maacutes
difundida entre los fabricantes de este tipo de circuitos y ademaacutes se han realizado
pruebas con circuitos que tienen maacutes de 10 antildeos de diferencia en la salida al mercado
obtenieacutendose conclusiones similares En resumen los principales objetivos de este
trabajo pueden dividirse en cinco grandes grupos
a Estudio de las teacutecnicas de reduccioacuten de consumo en FPGAs A falta de
literatura que resuma esta problemaacutetica el primer punto es el anaacutelisis de los trabajos
en otras tecnologiacuteas VLSI y su adaptabilidad al marco tecnoloacutegico Esta tarea se ha de
complementar con los aportes de los uacuteltimos antildeos en el consumo de FPGAs
b Utilizacioacuten de las herramientas de desarrollo actuales para la reduccioacuten de
consumo Estudio del uso de herramientas de desarrollo como meacutetricas indirectas
para estimar o reducir el consumo Este tema incluye explorar las relaciones de la
velocidad y el aacuterea con el consumo asiacute como otras teacutecnicas y opciones de disentildeo que
tiacutepicamente se asocian y utilizan para reducir el aacuterea o aumentar la velocidad
5
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
c Estudio de maacutequinas de estados Las maacutequinas de estados finitos son
omnipresentes en cualquier disentildeo digital ya sea para modelar un problema concreto
oacute como control de una ruta de datos Se estudiaraacuten alternativas de reduccioacuten de
consumo ya sea a traveacutes de la codificacioacuten de estados o bien utiacutelIacute2ando teacutecnicas de
deshabilitacioacuten
d Estudio de bloques aritmeacuteticos Estudio de diferentes bloques aritmeacuteticos a fin
de encontrar patrones de consumo respecto a la implementacioacuten de diferentes familias
de algoritmos La implementacioacuten de bloques aritmeacuteticos incluiraacute el estudio e
influencia de diferentes alternativas arquitecturales y algoriacutetmicas
15 Organizacioacuten y lectura de eacutesta tesis
Esta tesis estaacute organizada en seis capiacutetulos y seis apeacutendices Este primer capiacutetulo
presenta los objetivos y alcances de esta memoria La organizacioacuten de cada capiacutetulo se
estructura en secciones que comprenden un tema autocontenido
El capiacutetulo 2 repasa los principales conceptos en el estudio del bajo consumo
orientado a FPGAs Se agrega ademaacutes informacioacuten actualizada de las tendencias en el
consumo asiacute como el desglose del consumo en FPGAs Este capiacutetulo es de utilidad
para quien intenta interiorizarse en las ideas necesarias para realizar disentildeo de bajo
consumo
En el capiacutetulo 3 se examinan varios experimentos llevados a cabo sobre distintos
modelos de FPGAs con el objeto de determinar relaciones generales en el consumo
Comienza con experimentos elementales sobre la relacioacuten de la tensioacuten y la frecuencia
en el consumo para proseguir con la influencia del consumo estaacutetico y de
sincronizacioacuten Maacutes adelante se examinan la relacioacuten velocidad-consumo la
conmutatividad de datos el efecto de la segmentacioacuten (pipeline) y el uso de registros en
general Finalmente se analizan y cuantifican las alternativas para la inhabilitacioacuten de
partes de un circuito
El capiacutetulo 4 aborda el tema de la reduccioacuten de consumo en maacutequinas de estados
finitos en FPGAs por un lado se analiza el efecto de la codificacioacuten en el consumo y
por otro se propone una arquitectura de particioacuten de maacutequinas de estado para la
reduccioacuten del consumo
6
Capiacutetulo 1 Introduccioacuten y Motivacioacuten
En el capiacutetulo 5 se describen experimentos sobre diferentes bloques aritmeacuteticos Por
un lado se examinan las opciones para la multiplicacioacuten modular operacioacuten central en
los caacutelculos criptograacuteficos maacutes tarde se presentan experimentos sobre la adicioacuten de
alta velocidad en particular el algoritmo de carry-skip a continuacioacuten se examinan los
algoritmos y arquitecturas para la divisioacuten entera Por uacuteltimo se analizan las
alternativas para la divisioacuten de nuacutemeros fraccionarios operacioacuten llevada a cabo sobre
la mantisa en las operaciones de divisioacuten de nuacutemeros en coma flotante
Finalmente en el capiacutetulo 6 se recopilan las principales conclusiones y aportes
generados las futuras liacuteneas de investigacioacuten que se desprenden de eacutesta tesis asiacute como
una enumeracioacuten de las publicaciones generadas a raiacutez de este trabajo
Adicionalmente a modo de resumen se seleccionan las reglas de oro en el disentildeo de
bajo consumo en FPGAs desde el punto de vista del usuario final
Los apeacutendices incluyen informacioacuten complementariacutea al contenido principal Los
apeacutendices A B y C describen los arreglos experimentales utilizados durante las
mediciones El primero describe el arreglo para la familia XC4C el segundo lo hace
para la familia Virtex en tanto que el siguiente lo hace para la familia Virtex II
Los apeacutendices D y E describen las herramientas de generacioacuten de coacutedigo desarrolladas
para los experimentos del capiacutetulo 4 La primera se trata de un traductor de formato
de especificacioacuten de maacutequinas de estado KISS a VHDL (Kiss2VHDL) en tanto que la
segunda herramienta realiza la particioacuten de maacutequina de estado seguacuten un proceso
probabiliacutestico generando coacutedigo VHDL (partJFSM)
Finalmente el apeacutendice F describe y analiza la herramienta de estimacioacuten de consumo
provista por Xilinx denominada XPOWER [Xpo04] Adicionalmente se brindan una
serie de scripts para automatizar la medicioacuten del consumo
Por facilidad y comodidad cada seccioacuten incluye un resumen de resultados lo mismo
se lleva acabo al final de cada capiacutetulo Las referencias empleadas en cada capiacutetulo se
resumen al final de cada uno de ellos
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
16 Referencias del capiacutetulo
[Act02] Active Hardware Editor Intel 24 ghz Pentium 4 Northwood Active Hardware electronicpublication Available at httpwwwactive-hardwarecom April 2002
[AlcOO] J Alcalde J Rius and J Figueras Experimental techniques to measure current power and energy in CMOS integrated circuits Proceedings ofXV Conference on Design of Circuit and Integrated Systems (DCIS2000) Montpellier France November 2000
[BenOl] Luca Benini Giovanni De Micheli Enrico Macii Designing Low-Power Circuits Practical Recipes IEEE Circuit and System Magazine Vol 1 No 1 pp 6-25 First Quarter 2001
[Ben99] L Benini G de Micheli A Macii E Macii M Poncino R Scarsi Glitch Power Minimization by Gate Freezing Design Automation and Test in Europe (DATE 99) Munich Germany March 1999
[Boe95] E Boemo G Gonzaacutelez de Rivera SLopez-Buedo and J Meneses Some Notes on Power Management on FPGAs Lecture Notes in Computer Science (LNCS) No975 pp149-157 Berliacuten Springer-Verlag 1995
[Dev95] S Devadas y S Malik A Survey of Optimization Technique Targeting Low Power VLSI Circuits 32nd Design Automation Conference (DAC95) pp242-2471995
[Itr03] ITRS Technology Working Groups International Technology Roadmap for Semiconductors 2003 Edition Executive Summary Jointy Sponsored by European SIA Jopan ETTIA Korea SIA Taiman SLA and Semiconductor Industry Association (SIA) httppublicitrsnet 2003
Qac04] Hans M Jacobson Improved ClockGating through Transparent Pipelining International Sjmposium on Low Power Electronics and Design (ISLPED04) Newport Beach California USA August 9-112004
QewOO] Jim Jewett The International Technology Roadmap for Semiconductors (ESH THRUST) Intel Corporation Arington VA April 2000
[Kah02] Andrew B PCahng The signifiacutecance of packaging IEEE Design (iquesty Test of Computers November - December 2002
[Kai02] Kai Schmerer AMDs Thoroughbred leaves the starting gate httpwwwreviewszdnetcouk June 2002
[Kiy04] Kiyoo Itoh Kenichi Osada Takayuki Kawahara Low-Voltage Embedded RAMs mdash Current Status and Future Trends Lecture Notes in Computer Science Volume 3254 pp 3 - 1 5 Springer-Verlag Heidelberg Sept 2004
8
Capiacutetulo 1 Introduccioacuten y Motivacioacuten
|Liu94] D Liu y C Svensson Power Consumption Estimation in CMOS VLSI Circuits IEEE Journal of Solid-State Circuits Vol29 Ndeg6 pp 663-670 Jun 1994
Par04] Karen Parnell Roger Bryner Comparing and Contrasting FPGA and Microprocessor System Design and Development Xilinx White paper BiexclTgt27(vll)July2004
Pow91] S Powell y P Chau A Model for Estimatiacuteng Power Dissipatiacuteon in a Class of DSP VLSI Chips IEEE Trans on Circuit and Systems VOL 38 Ndeg6 pp646-650 Jun 1991
[Sch95] T Schneider C Piguet y V von Kaenel Low-voltage Low-power Paralleliacutezed Logic Modules Proc PATMOS95 Fifth Int Workshop pp148-160 Oldenburg Oct 1995
[Sha02] Li Shang Alireza Kaviani Kusuma Bathala Dynamic Power Consumption in Virtextrade-II FPGA Family Proceedings of Tenth ACM International Symposium on Field-Programmable GateArrays (FPGA02) Monterey California USA February 2002
[Sia97] SIA Semiconductor Industry Association The National Technologies Roadmap for semiconductors Technologies Needs SIA home page httpwwwsemichipsorg 1997
[Sma94] C Small Shrinking devices put the squeeze on system packaging EDN (Electronic Design News) vol 39 no4 pp 41-46 Feb 171994
[Sou02] Soudris Dimitrios Designing CMOS circuits for low power Kluwer Academic Publishers 2002
[Su94] C Su C Tsui y A Despain Low Power Architecture Design and Compilation Techniques for High Performance Processors Proc 1994 Spring IEEE International Computer Conference (COMPCONJpp489-498 IEEE Press 1994
[Sun03] Sung-Mo Kang Elements of Low Power Design for Integrated Systems International Symposium on Low Power Electronics and Design (ISLPED 03) Seoul Korea August 2003
[Tsu03] Tsugio Makimoto Yoshio Sakai Evolution of Low Power Electronics and Its Future Applications International Symposium on Low Power Electronics and Design (ISLPED03) Seoul Korea August 2003
iexclVisOO] Ram Viswanath Vijay Wakharkar Abhay Watwe and Vassou Lebonheur Thermal Performance Challenges from Silicon to Systems Intel Technology Journal3er Quarter 2000
[Wah67] Sven EWahlstrom Programmable logic arrays - cheaper by the miacutellions Electronics 40(25)90-95 December 111967
(XIacute104] Xilinx Inc httpwwwxilinxcom
9
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
[Xpo04] Xpower Xpower getting started Releacutease versioacuten 6203Iacute 2004 avaiacutelable at supportxilinxcom
[Yin04] Yingmin Li David Brooks Zhigang Hu Kevin Skadron Pradip Bose Understanding the Energy Efficiency of Simultaneous Multithreading International Symposium on Low Power Electronics and Design (ISLPED04) Newport Beach California USA August 9-112004
10
Capiacutetulo 2 Consumo en circuitos CMOS v su efecto en FPGAs
A fin de introducir en el tema del bajo consumo se describe en este capiacutetulo los
fundamentos y las principales componentes del consumo en los circuitos VLSI de
tecnologiacutea CMOS Adicionalmente se presentan las principales teacutecnicas utilizadas
tradicionalmente en la reduccioacuten del consumo con especial atencioacuten en las
consecuencias de la aplicacioacuten de dichas teacutecnicas en las tecnologiacuteas de loacutegica
reconfigurable
21 Consumo en circuitos CMOS
Como punto de partida se analiza se describe las fuentes de consumo en un circuito
CMOS claacutesico Para el anaacutelisis se considera un inversor CMOS como el descrito en la
figura 21a Hay dos tipos de disipacioacuten de corriente en los circuitos integrados
aquellas generadas durante las operaciones estaacuteticas y las generadas en las operaciones
dinaacutemicas
El consumo estaacutetico se refiere a las corrientes que fluyen mientras no hay cambios de
estado en los circuitos El consumo dinaacutemico que es el maacutes importante en la
11
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
tecnologiacutea CMOS depende de las cargas y descargas de las capacitancias en las
transiciones
Vdd o alimentacioacuten
ansistor-P
i Transistor-N
GND o tierra =
Figura 21 Inversor CMOS
211 Consumo estaacutetico
En estado ideal los circuitos CMOS no disipan corriente estaacutetica en el estado de
equilibrio es decir no existe un camino directo desde Vdd a Gnd No obstante existen
dos fuentes de disipacioacuten estaacutetica a considerar [Ped96]
bull Corriente de fuga (leakage curreni) determinada fundamentalmente por la tecnologiacutea
de fabricacioacuten y referida a dos fuentes 1) A las corrientes inversas en los diodos
formados entre las difusiones de la fuente (source) y el colector (drairi) y la regioacuten
del transistor MOS 2) La corriente de subumbral (subtreshold curreni) que aparecen
en las inversiones de tensioacuten en la puerta (gafeacute) por debajo de la corriente de
umbral
bull Corriente standby (Standby Curreni) que es la que siempre fluye desde Vdd a Gnd
(Figura 22)
Las corrientes de fuga son proporcionales al aacuterea de la difusioacuten de la fuente y el
colector y a la densidad de corriente de fuga La corriente de subtreshold se incrementa
linealmente con la relacioacuten ancho sobre largo del canal y disminuye exponencialmente
con la relacioacuten Vgs mdash Vt donde Vgs es la tensioacuten aje de la puerta y Vt la tensioacuten de
umbral
La corriente de standby ocurre cuando tanto el transistor nMOS como el pMOS estaacuten
continuamente en una fase de pseudo inversor nMOS o cuando la puerta de un
inversor esta en un valor entre Vdd y Gnd En general esta potencia es igual al
12
Capiacutetulo 2 Consumo en Circuitos CMOS
producto entre Vdd y la corriente continua fluida entre la fuente y la tierra
Tradicionalmente el consumo estaacutetico se ha consideredo praacutecticamente despreciable
en aplicaciones reales [Ped96][Rab96] no obstante en los uacuteltimos procesos
tecnoloacutegicos por debajo de los 100 laquom puede alcanzar el 40 del consumo total
[Nar03]|Liu04] Vdd
IEST I
f I
Figura 22 Consumo estaacutetico en un inversor CMOS
212 Consumo dinaacutemico
Es la fuente de consumo maacutes importante en los circuitos CMOS se puede considerar
compuesta por dos fuentes principales
bull Corriente de cortocircuito short-drcuit curreniacute) la que es producida a traveacutes del
camino que se forma entre la Vdd y Gnd durante las transiciones
bull Corriente de capacitancia (Capaatance Cumnt) la que fluye para cargar y descargar
las cargas capacitivas durante los cambios loacutegicos
La corriente de cortocircuito surge durante la transicioacuten de estados de un dispositivo
CMOS cuando al mismo tiempo transmiten tanto los dispositivos pMOS como los
nMOS (figura 23) La comente de cortocircuito para una puerta inversora es
proporcional al tiempo de subida o bajada de la sentildeal (rampa) la carga y el tamantildeo del
transistor
Tradicionalmente la corriente de cortocircuito suele ser menor del 15 de la corriente
dinaacutemica [Vee84] no obstante los uacuteltimos procesos tecnoloacutegicos por debajo de los
025 laquom esta componente suele superar el 20 QunOl] Maacutes auacuten seguacuten [Alv98] un
disentildeo descuidado puede aumentar significativamente dicho valor Tal lo expuesto si
bien no es despreciable tampoco es un factor dominante en el consumo
13
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
in
Vdd
^~ C HP1 out
Figura 23 Consumo dinaacutemico en un cambio de estado del inversor
El factor dominante en la disipacioacuten de potencia en los circuitos CMOS es debida a la
carga y descarga de las capacitancias de cada nodo Esta fuente de disipacioacuten es la
llamada corriente de capacitancia y viene dada por la expresioacuten
P = ~CL-Vdd2-E(sw)-fclk
2 (Ec 21)
Donde
CL = Capacitancia fiacutesica a la salida de un nodo
Vdd mdash Tensioacuten de alimentacioacuten
E(siv) mdash Actividad de conmutacioacuten (Smtching activity) nuacutemero medio de
transiciones
ftik mdash Frecuencia del reloj
Es importante destacar que la potencia disipada depende del cuadrado de la tensioacuten
con lo cual es la variable principal para la reduccioacuten de consumo aunque cuando no
se puede variar la tecnologiacutea suele ser un aspecto poco manipulable en tanto que la
reduccioacuten de capacitancias frecuencia de reloj y actividad son lineales y muy atractivas
dado que no dependen uacutenicamente de la tecnologiacutea para su reduccioacuten
Para el caso de las FPGAs valen las mismas consideraciones anteriores es decir la
corriente estaacutetica ha sido mucho menor que la dinaacutemica [Gar02] pero el consumo
estaacutetico comienza a ser uno de las mayores preocupaciones [Gay04][And04] (ver
mediciones de la seccioacuten 312) Se puede afirmar que la corriente estaacutetica depende de
la tecnologiacutea del dispositivo y del tamantildeo (cantidad de bloques de caacutelculo patas etc)
El porcentaje de ocupacioacuten no es desde el punto de vista del consumo estaacutetico
14
Capiacutetulo 2 Consumo en Circuitos CMOS
demasiado relevante (ver experimentos capiacutetulo 3) El consumo dinaacutemico en los
dispositivos reprogramables es tambieacuten proporcional a la frecuencia y al cuadrado de
la tensioacuten (ver experimentos seccioacuten 311)
22 Espacio de disentildeo para bajo consumo
Como expresa la ecuacioacuten 21 el consumo depende de tres factores Tensioacuten de
alimentacioacuten capacidades fiacutesicas y actividad de los datos La intencioacuten de reducir
consumo invariablemente se relaciona con reducir uno o maacutes de estos factores
Desafortunadamente estos factores no son independientes entre si y en ocasiones no
pueden ser optimizados independientemente uno de los otros A continuacioacuten se
realiza una clasificacioacuten de ellos
i oraquo
bull
bull
o
- - -
v 2 y
s bdquos s
s 1 deg- f i
S o ^(vv
Tensioacuten de Aumentacioacuten (VoHs) Tensioacuten de Alimentacioacuten (Volts)
Figura 24 Relacioacuten energiacutea-tensioacuten y retardo-tensioacuten respectivamente
221 Tensioacuten de alimentacioacuten
Sin dudas es el mas atractivo de los paraacutemetros a manipular dada su influencia
cuadraacutetica en la ecuacioacuten del consumo es la tensioacuten de alimentacioacuten Muchos
fabricantes estaacuten dispuestos a sacrificar capacidad en el circuito o actividad de los
datos con tal de reducir la tensioacuten Lamentablemente se paga un costo en velocidad
muy alto cuando Vdd se acerca Vt (Tensioacuten de umbral) esto limita la reduccioacuten de
consumo a un miacutenimo de dos a tres veces la tensioacuten de umbral (Figura 24b) Los
retardos en un circuito son proporcionales a T ce Vdd(Vdd-Vt)2
15
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
La aproximacioacuten maacutes atractiva a la hora de reducir tensioacuten sin peacuterdida de velocidad es
la reduccioacuten de la tensioacuten de umbral (Vt) El liacutemite para la reduccioacuten de Vt esta dado
por el margen de ruido soportado y el aumento en la corriente de fuga de subumbral
En cuanto a los circuitos de loacutegica programable si bien existen familias operando a
diferentes tensiones (5V y 33V tradicionalmente y los maacutes nuevas como la familia
Virtex II Spartan III a 25V 18V y 12V) no es aconsejable con vista a la
interoperacioacuten con otros dispositivos operar un circuito fuera de los rangos provistos
por el fabricante Existen no obstante trabajos en esta liacutenea donde se prueban disentildeos
operando a diferentes tensiones [GarOO] los que permiten evaluar la relacioacuten consumo
tensioacuten respecto de la merma en el rendimiento
222 Capacidad
La reduccioacuten de la capacitancia ofrece una disminucioacuten lineal del consumo de modo
que la opcioacuten es otra atractiva fuente de minimizacioacuten La capacidad en un circuito
CMOS depende mayoritariamente de dos factores por un lado los dispositivos (
puertas loacutegicas) y por otro las interconexiones En las tecnologiacuteas antiguas las
capacitancias de los dispositivos dominaban sobre las interconexiones Conforme las
tecnologiacuteas siguen reducieacutendose las capacitancias de las interconexiones empiezan a
ser maacutes importantes
Figura 25 Rutado simplificado en dispositivos tipo FPGA
16
Capiacutetulo 2 Consumo en Circuitos CMOS
En las FPGAs es muy significativa la capacidad debido a las interconexiones Es causa
de maacutes del 50 del consumo seguacuten |Kus98][Sha02][Poo02] tal como se explica en la
seccioacuten 210 En los dispositivos repropramables los canales de rutado son fijos y se
debe pasar por una o muacuteltiples matrices de interconexioacuten para conectar dos elementos
de caacutelculo (figura 25) he ahiacute uno de los motivos para esta gran influencia del rutado
Para la reduccioacuten del consumo debido a las capacidades en FPGAs existen
baacutesicamente dos posibilidades La primera y maacutes evidente es la reduccioacuten del largo de
las pista La utilizacioacuten de herramientas optimizadas de emplazamiento y rutado place
and routeacute) ayudan a la disminucioacuten del consumo La segunda resulta de la reduccioacuten de
loacutegica de caacutelculo aunque esto puede provocar aumentos en la actividad o bien
aumentar los recursos de rutado necesario
223 Actividad del circuito
Al margen de la tensioacuten y la capacidad la otra fuente de consumo dinaacutemico es la
actividad en el circuito La actividad del circuito depende de dos factores Por un lado
fcki que especifica la periodicidad promedio de arribo de datos y E(sw) que determina
cuantos cambios puede determinar cada arribo La actividad es muy difiacutecil de calcular
dado que depende de las entradas y de la funcioacuten a computar Por ejemplo la
actividad dentro de un multiplicador de 16 bits puede variar en un factor de 5
dependiendo de la correlacioacuten entre los datos de entrada [Mar95]
En la figura 27 se observa la interpretacioacuten de los conceptos defdk el que se puede
ver como la frecuencia de funcionamiento de un circuito siacutencrono y E(sw) que expresa
cuantas transiciones se desarrollan en un ciclo de reloj En un circuito sin guumltches E(sw)
puede ser interpretada como la probabilidad que ocurra una transicioacuten durante un
ciclo de reloj en tanto en un circuito con glitches especifica tanto la probabilidad de
ocurrencia de una transicioacuten asiacute como la cantidad de movimientos espurios generados
por eacutesta
Los glitches se refieren a las transiciones espurias o indeseadas producidas antes que un
nodo alcance un estado final (estable) Los glitches se producen frecuentemente cuando
los caminos con tiempos de propagacioacuten desbalanceados llegan a un mismo punto del
circuito Esto produce que algunos nodos realicen varias transiciones que producen
consumo (es decir E(sw) gt 1) esto naturalmente debe ser evitado siempre que sea
posible Algunos trabajos sugieren que en tecnologiacuteas ASIC la actividad espuria^tiacuteeacuteie^O ^
fipound$ p-iexcl- - c-i
^
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
ser entre 20 y 70 [She92] en tanto en [Rab96b] se consigna que el consumo
debido a los glitches es tiacutepicamente de un 15-20 pero para unidades aritmeacuteticas
puede llegar al 65
IN
CLK
-TLTLrLTL
Sin Glitches
in iacuteir~ Con Glitches
1f
Figura 26 Interpretacioacuten de la actividad en circuitos siacutencronos Glitches
Por comodidad se suele combinar la actividad de los datos E(siv) con la capacidad
fiacutesica ( ACL) para obtener la capacidad efectiva Ctfmdash Vz Cu E(sugt) La que se refiere a la
capacidad promedio cargada en cada ciclo de reloj transformado asiacute la expresioacuten del
consumo en
P = -CL-Vdd2E(Sw)-fclk=Ceff-Ved
2
2 (Ec 22)
Esto refleja que el consumo no depende ni de la frecuencia de funcionamiento ni la
capacidad ni la actividad de conmutacioacuten por separado sino de la integracioacuten e
interaccioacuten de estos factores en la capacidad efectiva
La figura 29 ilustra la existencia de transiciones espurias producidas por la diferencia
en el retardo de dos caminos El efecto se refuerza con el aumento de la profundidad
loacutegica que produce avalanchas de glitches (figura 27b)
Como en el caso de la tensioacuten y la capacidad existen teacutecnicas para la reduccioacuten de
actividad como meacutetodo de reduccioacuten del consumo Por ejemplo ciertas
representaciones de datos como las de signo y magnitud poseen inherentemente
menor actividad que el complemento a dos [Cha94] Dado que la implementacioacuten de
las operaciones en signo magnitud son maacutes complejas que en complemento a la base
18
Capiacutetulo 2 Consumo en Circuitos CMOS
se debe pagar un costo extra en superficie de silicio asiacute como consecuentemente en
capacidad del circuito Como siempre el problema de optimizacioacuten de las tres
variables tensioacuten-capacidad y actividad no puede ser considerado independientemente
y sin considerar el impacto sobre los demaacutes factores
En el caso de las FPGAs la reduccioacuten de la actividad puede ser tanto encarada desde
la representacioacuten de los datos como de un mapeado tendiente a la reduccioacuten de
actividad reconociendo partes del circuito con mayor actividad y agrupaacutendolas en
lugares vecinos Casi todas las familias de FPGAs poseen registros y latches entre sus
elementos de caacutelculos Esto permite implementar exitosamente disentildeos segmentados
los que tienen entre otras la ventaja de reducir glitches
A |
A ^ - p ^ A o r B A A ^ T gt 1 B ~ T
A I c B I D
AorB U
Figura 27 Transiciones espuacutereas (glitches) a Producidos por el desbalance en el arribo de las sentildeales b Efecto avalancha debido al aumento de la profundidad loacutegica
Los glitches en las FPGAs son muy significativos y se ven magnificados por el efecto de
retardo que originan las matrices de interconexioacuten Para un multiplicador de 16 bits se
pueden observar que sentildeales internas pueden tener una actividad del orden de 16
veces superior a la frecuencia de las entradas y uno de 32 maacutes de 36 veces mayor
(datos obtenidos por el autor a traveacutes de simulacionespostplace amp routeacute) La seccioacuten 34
analiza y cuantifica la reduccioacuten del consumo debido a la reduccioacuten de glitches por
medio de la teacutecnica de segmentacioacuten
23 Temas destacados en el disentildeo pata bajo consumo
La primera observacioacuten surge de la ecuacioacuten 21 donde se observa que el consumo es
determinado por tres paraacutemetros importantes como son la tensioacuten la capacidad del
z_nn
19
Teacutecnicas pata la Reduccioacuten de Consumo en FPGAs
circuito y la actividad del mismo No obstante la optimizacioacuten de estos no puede ser
interpretada individualmente sino que debe ser interpretada conjuntamente
Quizaacutes el tema maacutes importante es el balance entre aacuterea-velocidad para bajo consumo
La mayor parte de las teacutecnicas de bajo consumo son a expensas del aacuterea o la velocidad
valga como ejemplo la reduccioacuten de la tensioacuten de alimentacioacuten la que conlleva un
ahorro cuadraacutetico del consumo pero afecta directamente a la velocidad de ejecucioacuten
Si el disentildeador no puede perder performance en la reduccioacuten del consumo
posiblemente se vea obligado a utilizar teacutecnicas de segmentacioacuten (pipeline) o
paralelizacioacuten para compensar la velocidad de ejecucioacuten aumentando inevitablemente
el aacuterea del circuito
Un tema recurrente en el disentildeo de bajo consumo es el anaacutelisis de la localidad Las
operaciones globales consumen mucha potencia Los datos que se mueven de una
punta a la otra del circuito deben conmutar una gran capacidad de pistas Un
partiacutecionado pobre puede significar aun la necesidad de replicar datos en otras partes
del circuito aumentando aun maacutes la capacidad de este En caso de las FPGAs con
canales de rutado fijos y pasando por matrices de conmutacioacuten este efecto es maacutes
importante auacuten el aprovechamiento de los diferentes canales de rutado y lugares de
almacenamiento posee un fuerte impacto en el consumo Los aacuterboles de reloj globales
tienden a atentar contra el bajo consumo
A c -o u $
ltiexcl o T3
Nivel de Sistema
Algoritmos
Disentildeo de la Arquitectura
Disentildeo del Circuito
Proceso y Tecnologiacutea
A T2 ~a laquo
M
O
a o o ltu
- a a
2 0 o 3
-a Figura 28 Jerarquiacutea en el espacio de disentildeo
Otro tema importante cuando se habla de bajo consumo es evitar derroches
(avotding wasti) entre estos se cuentan evitar gliches ecualizando caminos apagar
partes del circuito cuando estos no se utilizan (quitando el reloj o bloqueando los
datos de entrada) etc Otras fuentes de derroches de consumo son la no utilizacioacuten de
algoritmos y arquitecturas regulares forzando de esta manera maacutes loacutegica y actividad
20
Capiacutetulo 2 Consumo en Circuitos CMOS
Por otra parte la utilizacioacuten de procesadores o elementos de caacutelculos maacutes potentes
(raacutepidos) que los necesarios puede ser una fuente de derroche de consumo
perfectamente evitable
En lo que resta del capiacutetulo se realiza un anaacutelisis de las teacutecnicas de reduccioacuten del
consumo organizados por el nivel de abstraccioacuten Los niveles a considerar son 5 y se
detallan en la figura 28
24 Nivel de proceso y tecnologiacutea
En el nivel maacutes bajo de abstraccioacuten se pueden considerar el proceso de fabricacioacuten asiacute
como el encapsulado (packageacute) del circuito En cuanto a las FPGAs estos factores son
determinados por el fabricante y existe poco margen de eleccioacuten mas allaacute de elegir
ciertos dispositivos dentro de la gama de oferta de circuitos reconfigurables los que
eventualmente operen a menor tensioacuten utilicen un proceso de fabricacioacuten maacutes
moderno provean arquitecturas que se adapten mejor al bajo consumo etc
241 Encapsulado (packageacute)
Generalmente una fraccioacuten importante del consumo total puede ser atribuida a las
grandes capacitancias manejadas fuera del circuito (pff-chip power) en vez de al circuito
en si (coreacute) Esto se apoya en el hecho de que las capacidades fuera del chip se miden
en picofaradios en tanto que normalmente las internas se hacen en teacuterminos de
femtofaradios Circuitos con gran interaccioacuten de entradasalida (IO mdash inputloutpuiacute)
pueden consumir hasta o xh de la potencia total
La tecnologiacutea de encapsulados ha evolucionado y estaacute evolucionando raacutepidamente
producto del aumento de densidad de los circuitos y la multiplicacioacuten que han sufrido
las entradas y salidas de los IC (Jntegrated Circuit) Con esto tambieacuten aparecen nuevos
estaacutendares en entrada-salida que reducen considerablemente la capacidad de los patas
(pads) de conexioacuten
Los encapsulados de las FPGAs siguen las tendencias de toda la industria de IC Es
importante destacar que el aumento en la potencia de caacutelculo que experimentan las
nuevas familias de dispositivos tambieacuten hacen posible integran en un solo circuito maacutes
loacutegica lo que eventualmente redunda en una menor actividad de entrada salida Las
FPGAs han evolucionado de ser una solucioacuten para generar loacutegica de conexioacuten (glue
21
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
logic) a ser utilizadas para implementar lo que se da en llamar SoC System-on-a-Chip
sistema en un chip) haciendo relativamente menos voluminosa la comunicacioacuten con
otros dispositivos electroacutenicos
242 Proceso de fabricacioacuten
Al margen de las consideraciones del encapsulado la tecnologiacutea de fabricacioacuten posee
una importante componente en la reduccioacuten de consumo Varias modificaciones en el
proceso de fabricacioacuten reducen el consumo en los circuitos integrados CMOS
Muchas de estas ocurren con cada nueva generacioacuten de procesos de fabricacioacuten
(reduccioacuten del tamantildeo de las puertas agregado capas de metal etc) Estos paraacutemetros
no estaacuten disponibles para los disentildeadores de IC y mucho menos para quien disentildea con
FPGAs no obstante es importante conocer las causas del consumo y las posibilidades
de reduccioacuten en este nivel
2421 Optimizacioacuten de la tensioacuten umbral (Threshold Voltaje-Vi)
Cuando se pretende reducir la tensioacuten como meacutetodo para la disminucioacuten del
consumo la tensioacuten umbral comienza a tener gran importancia dada su directa
influencia en la velocidad de operacioacuten (inversamente proporcional a (Vdd -V t)2 )
Lamentablemente la conduccioacuten subumbral y consideraciones de maacutergenes de ruidos
limitan cuan baja puede ser situada Ve
2422 Reduccioacuten en la tecnologiacutea (Technologicalscaling)
La reduccioacuten de las dimensiones fiacutesicas es una teacutecnica muy conocida para reducir el
consumo La reduccioacuten significa disminuir todas las dimensiones horizontales y
verticales por un factor S mayor que uno De este modo se reduce el alto y ancho de
los transistores grosor de oxido ancho y alto de las interconexiones etc Si se
considera que la capacidad de una puerta es Cg = WLCox donde significan el ancho
y largo de la difusioacuten de la puerta y la capacidad por unidad de superficie
respectivamente Y si se reduce por un factor S cada una de las dimensiones W L y
Cox entonces la capacidad se reduciraacute por un factor S tambieacuten de este modo si la
tensioacuten y la actividad de los datos se mantienen la potencia se disminuiraacute en un factor
de S tambieacuten (PoclS)
22
Capiacutetulo 2 Consumo en Circuitos CMOS
Existen no obstante otros factores negativos en las interconexiones la resistencia de
estas es proporcional al largo e inversamente proporcionales al ancho y el grosor Si
escalamos por un factor S la residencia aumentaraacute tambieacuten S Respecto de la
capacidad esta es proporcional al ancho y largo e inversamente proporcional al grosor
con lo que la capacidad disminuiraacute en un factor S Resumiendo el retardo debido a las
interconexiones no se ve afectado por la reduccioacuten de dimensiones por tanto los
retardos de pistas comienzan a dominar sobre el retardo de las puertas que es la
situacioacuten de hoy en diacutea
2423 Trazado (Layoui)
La teacutecnica maacutes simple a nivel layout es colocar las pistas de mayor actividad en las
capas superiores Los niveles superiores de metal estaacuten separados por una capa maacutes
gruesa de dioacutexido de silicio Dado que la capacidad fiacutesica decrece linealmente con el
incremento de del espesor del oxido existen claras ventajas de rutar las liacuteneas de
mayor actividad en las capas superiores Seguacuten [Rab95] en un proceso tiacutepico de
fabricacioacuten la capa tres puede tener hasta cerca del 30 menos de capacidad por
unidad de superficie que la capa dos
2424 Dimensiones de los transistores Ttansisitor sizing)
Otro punto en discusioacuten en bajo consumo es el tamantildeo de los transistores
Transistores con puertas grandes pueden manejar mas corriente que los pequentildeos
pero esto contribuye con mayores capacidades en el circuito con el obvio aumento
del consumo Maacutes auacuten los dispositivos maacutes grandes poseen corrientes de cortocircuito
mayores La estrategia entonces es disminuir el tamantildeo de los transistores siempre que
sea posible No obstante la disminucioacuten del tamantildeo conlleva perdida de performance
que no siempre son aceptables
23
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
25 Nivel de implementacioacuten
Se refiere este nivel a la forma de implementar los disentildeos en base a los recursos que
propone la arquitectura de los circuitos reprogramables Nuevamente aquiacute se discute la
relacioacuten de performance aacuterea y consumo ahora desde este nivel de abstraccioacuten Aquiacute
se discuten el mapeo (mappiniquest) reduccioacuten de glitches y actividad formas de
sincronizacioacuten asiacute como meacutetodos de concurrencia y redundancia para la disminucioacuten
de consumo
251 Descomposicioacuten tecnoloacutegica y mapeo
Se denomina descomposicioacuten tecnoloacutegica al proceso de transformar una descripcioacuten
booleana a nivel de puertas en un mapeo para la arquitectura elegida En el caso de
implementaciones en ASICs seraacute elegir la configuracioacuten de transistores que realizaraacute la
funcioacuten o en caso de loacutegica reconfigurable elegir la forma de mapear a los recursos
baacutesicos (LUTs loacutegica de acarreo Block RAMs multiplicadores embebidos etc) la
funcionalidad de la descripcioacuten
Por ejemplo en el caso de ASICs una puerta NAND de tres entradas puede ser
implementada por una simple puerta de tres entradas o bien por una cascada de
puertas simples de dos entradas Para el caso de la loacutegica reconfigurable la forma de
descomponer las funciones en tablas de look-up (o multiplexores) ofrece muacuteltiples
alternativas Algunos de los criterios para esta descomposicioacuten se ofrecen a
continuacioacuten
252 Reordenar las entradas
Una simple estrategia para disminuir la actividad total seraacute posponer las sentildeales que
poseen mayor movimiento Por ejemplo simplemente reordenando las entradas en
una cascada de caacutelculos se puede reducir la cantidad de transiciones totales (figura
211) La probabilidad de que exista transicioacuten Trpara una sentildeal en la que se conoce la
probabilidad de ser uno (p ) en un modelo sin retardos viene dado por la expresioacuten
Tr = 2-p-(l-p) ^c23)
24
Capiacutetulo 2 Consumo en Circuitos CMOS
Naturalmente es la suma de la probabilidad de que pase la sentildeal de 0 a 1 maacutes la que
pase de 1 a 0 La P(0 -gt 1) = P(l-gt0) = p(l-p)
D (90raquoo 9)
I mdash
P(l) P(0-raquo1)
A(80 16) mdash
B(5025) mdash
C(3021) mdash
C(30 21)
A(80 16)
B(S025)
C(30 21)
B(5025)
A(80 16)
P(l) P(0-raquo1)
A(80 16) mdash
r~X_P36) B(50o(25oo) _ C(3021)
B(5025)
(65 23) D- __ C(30 21)
1 mdash y y m - w B(5O25) A(80 16)
D (40 24)
D -TV^13 C(302gt) r - V 2 4 1 8 ) -LJ T y ^ 6) A(8016) [_^~ f
D (1S 13)
~~imdashr
(12 11)
D (12 11)
(12 (12 11)
Figura 29 Dependencia del orden de entrada para la reduccioacuten de actividad
253 Reduccioacuten de guumltches
Una de las teacutecnicas maacutes importantes para la reduccioacuten de consumo es la de evitar las
transiciones espurias asociadas a los glitches (ver seccioacuten 23) En la figura 210 se puede
observar dos implementaciones de una funcioacuten loacutegica Una de las implementaciones
posee una estructura en cascada en tanto que en la otra se encuentra balanceada Si se
supone la llegada de las sentildeales al mismo tiempo se puede observar que la opcioacuten
balanceada realiza menos transiciones que la versioacuten en cascada Las eventuales
transiciones espurias pueden provocar transiciones a las puertas conectadas la salida
amplificando el efecto Basados en este razonamiento se puede inferir una cota
superior para las transiciones espurias glitches) de 0(N) donde N es la profundidad
loacutegica
En contrate si se logra una estructura donde la llegada de las sentildeales a cada puerta
sucede al mismo tiempo se evitan las transiciones espurias Este concepto de
balancear las estructuras arboacutereas se puede extender como teacutecnica de reduccioacuten de
consumo Algunos estudios sugieren reducciones de hasta 15-20 del consumo
[Ped96]
Al margen de la utilizacioacuten de estructuras balanceadas en forma de aacuterbol para lograr el
balance de los retardos de caminos se suelen utilizar otras teacutecnicas como la
25
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
incorporacioacuten de buffers o en caso de loacutegica programable la utilizacioacuten de elementos
de caacutelculo que solo se utilizan como retardos para lograr la ecualizacioacuten de los
caminos
A mdash
B mdash
bull
r n
A
B
C
D
(a) Estructura de cascada
Figura 210 Estructuras de cascada y balanceadas
(b) Estructura balanceada
Como idea general dado que los glitches tienen como cota superior la profundidad
loacutegica al cuadrado es interesante lograr circuitos de poca profundidad loacutegica este es
uno de los argumentos a favor del uso de teacutecnicas de pipeline en la reduccioacuten de
consumo
Las teacutecnicas de balanceo son difiacuteciles de implementar en FPGAs ya que la mayor
componente del retardo lo representan las pistas (que pasan por matrices de
interconexioacuten) las que a su vez son difiacuteciles de balancear En la figura 211 se muestra
un ejemplo simple de 4 conexiones que llegan a una LUT para demostrar el inherente
desbalanceo que se provoca en estos dispositivos
S 2poundT bull a cm
H 1 a
Figura 211 Desbalanceo en las pistas El ejemplo se muestran 4 conexiones adyasentes a una LUT en un dispositivo Virtex
254 Concurrencia y redundancia
La idea de la concurrencia es al aumento de las prestaciones del circuito (aunque a
expensas del aumento del aacuterea) con el objeto de reducir la tensioacuten de alimentacioacuten la
que tiene una influencia cuadraacutetica con el consumo Cuando por cuestiones de disentildeo
26
Capiacutetulo 2 Consumo en Circuitos CMOS
del circuito o de interrelacioacuten con otros sistemas la tensioacuten no puede ser modificado
esta teacutecnica pierde atractivo
Por otra parte el objetivo de la redundancia es baacutesicamente reducir los glitches o bien a
traveacutes de la ecualizacioacuten de caminos o bien el evitando conexiones con un fan-out
demasiado elevado En el primer caso si una sentildeal debe llegar a puntos muy distantes
de un circuito puede convenir replicar un modulo de modo de evitar retardos
indeseables que ocasionan glitches y aumenten el consumo El segundo caso un fan-out
muy grande implica puertas y pistas de mayor capacidad y eventualmente huffers esto
invariablemente genera retardos que pueden atraer movimientos espurios La
redundancia trae aparejado el aumento del aacuterea y la capacidad del circuito de modo
que debe sopesarse correctamente con el ahorro en potencia producida por los glitches
26 Nivel de arquitectura y sistema
En el nivel de arquitectura las primitivas son bloques como multiplicadores
sumadores memorias buses controladores etc En la bibliografiacutea se lo suele llamar
nivel de transferencia de registros (Register-Transfer (RT) Level) o los cientiacuteficos del aacuterea
informaacutetica nivel de micro arquitectura (micro-architecture level) Las teacutecnicas aquiacute
utilizadas tratan de evitar el derroche en el consumo explotar la localidad de datos y el
balance de aacuterea - velocidad para bajo consumo
261 Procesamiento concurrente
A nivel arquitectural el procesamiento concurrente es un excelente ejemplo de balance
de aacuterea mdash velocidad para bajar el consumo A traveacutes de teacutecnicas conocidas para
aumentar la performance como lo son el paralelismo o la segmentacioacuten (pipeline) se
aumenta el rendimiento para luego bajar la tensioacuten de alimentacioacuten y asiacute ahorrar
consumo Naturalmente estas teacutecnicas estaacuten limitadas por los costos de interconexioacuten
es decir si se desea realIacute2ar un circuito masivamente paralelo llega un momento que los
costos de conexioacuten superan a los beneficios
2611 Paralelismo
Se supone el ejemplo de la figura 212 donde un caacutelculo complejo A se puede llevar a
cabo en un cierto tiempo Los registros de entrada y salida capturan a una frecuencia
27
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Si se supone que no existe dependencia de los datos de modo que se pueda paralelizar
sin restricciones Si se paraleliza el caacutelculo duplicando N veces el bloque de caacutelculo
A se tendraacute N procesadores ideacutenticos los que podraacuten funcionar a una frecuencia iV
veces inferior y sin embargo mantener la velocidad total de caacutelculo
Operacioacuten A
Operacioacuten A
Operacioacuten A
Circuito de Referencia
Capacidad = C Frecuencia = f Voltaje = V Power = P oc CV2f
Circuito Paralelo
Capacidad ~ NC Frecuencia = f N Voltaje ~ VN (despresiando Vt) Power ~ P N 2
Figura 212 Reduccioacuten de tensioacuten y paralelismo para bajo consumo [Lan96]
La clave para la reduccioacuten del consumo es la posibilidad de reducir en un factor N la
frecuencia de caacutelculo Dado que la velocidad de caacutelculo se puede considerar
aproximadamente lineal a la tensioacuten de alimentacioacuten esto permite reducir la tensioacuten
en un factor N La capacidad total del circuito se incrementa N veces (dado que hay N
procesadores iguales y despreciando la sobrecarga que representa la interconexioacuten)
Sobre la base de la ecuacioacuten 4 donde se deduce que P oc CV 2 se puede inferir que
la potencia para una concurrencia de N niveles (Pbdquo) es
PbdquoocC-N-t A r (
(Ec 24)
Este modelo simplificado no tiene en cuenta algunos aspectos que restan valor a la
teacutecnica En primer lugar la inclusioacuten de N procesadores no siempre implica un
28
Capiacutetulo 2 Consumo en Circuitos CMOS
aumento en N de la velocidad total Frecuentemente los algoritmos no son totalmente
paralelizables y existen tareas que deben ser necesariamente ejecutas secuencialmente
o bien en nivel deparalelismo es limitado Otro aspecto importante es existe una
sobrecarga de conexiones y distribucioacuten de sentildeales tanto para abastecer las entradas
como para combinar nuevamente las salidas aumenta la superficie (y por tanto la
capacidad) en un factor mayor a N Por ultimo cabe mencionar los efectos de la
tensioacuten umbral (Vt) que hace que no se pueda reducir indefinidamente la tensioacuten
ademaacutes que como se mencionoacute en la ecuacioacuten 25 la velocidad de un circuito se puede
considerar lineal a la tensioacuten cuando V ltiexcld raquo Vt maacutes precisamente la expresioacuten dice
queTccVdd(Vdd-Vt)2
Como se mensiono en la seccioacuten 221 la disminucioacuten de la tensioacuten de alimentacioacuten en
FPGAs no resulta muy atractiva por tanto esta teacutecnica pierde intereacutes en el marco
tecnoloacutegico de la loacutegica reconfigurable
2612 Segmentacioacuten pipeline)
El pipeline es otra de las teacutecnicas de computacioacuten concurrente que puede ser explotada
para reducir el consumo En este caso en vez de duplicar hardware se procede a
particionar la operacioacuten A en N suboperaciones colocando registros entre ellas y
logrando un pipeline de N etapas La capacidad total (despreciando los registros) puede
considerarse similar a la versioacuten original En este caso para mantener la misma
velocidad de operacioacuten se debe mantener la frecuencia pero en cada subetapa debe
calcularse solo una N-esima parte del caacutelculo total lo que permite disminuir en N la
tensioacuten de alimentacioacuten De este modo la reduccioacuten de la potencia dinaacutemica seraacute un
factor N2
Como ocurre con el paralelismo el pipeline incurre en alguna sobrecarga aunque no tan
notoria como en el primer caso Aquiacute se deben agregar tantas etapas de registros como
etapas de pipeline se utilicen generando una mayor superficie capacidad y necesidad de
distribucioacuten de reloj Al aumentar los niveles de pipeline el consumo de registros de
sincronizacioacuten puede superar al consumo debido al caacutelculo Desde el punto de vista
del rendimiento del circuito se debe tener en cuenta la existencia de la latencia que es
el retardo necesarios para obtener el primer resultado QST ciclos de reloj)
Existe otra ventaja en la utilizacioacuten de pipeline independiente de la reduccioacuten de la
tensioacuten de alimentacioacuten y es la referida a la disminucioacuten de glitches que genera la
29
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
reduccioacuten de la profundidad loacutegica En efecto los registros de sincronizacioacuten detienen
la avalancha aacuteeglitches que se suceden en la loacutegica combinacional [Boe96] En esta tesis
se ha cuantificado experimentalmente esta influencia la seccioacuten 33
O n 3 a oraquo
o n s D ogt o
Z
O 13 re
3 o 5gt s
Circuito de Referencia
Capacidad = C Frecuencia =f Voltaje = V Power = P oc CV2f
Circuito con Pipeline
Capacidad ~ C Frecuencia =f Voltaje ~ VN (despresiando Vt) Power ~ P N 2
Figura 213 Reduccioacuten de tensioacuten y pipeline para bajo consumo [Lan96]
262 Manejo de potencia (power managemei)
Cualquier consumo de potencia que no produzca una operacioacuten uacutetil es un desperdicio
de energiacutea Las estrategias para evitar el desperdicio de energiacutea se denominan manejo
de potencia o energiacutea (power managemei) entre las teacutecnicas utilizadas se cuenta con
apagado selectivo (selective power down) modo descanso (sleep mode) y sistemas
adaptativos de la velocidad de reloj y tensioacuten
Se denomina apagado selectivo a la desactivacioacuten especiacutefica de moacutedulos que no estaacuten
realizando una computacioacuten concreta Esta estrategia exige de circuitos adicionales
para detectar la inactividad y para desactivar y activar los moacutedulos individualmente La
forma tradicional de llevar a cabo esta teacutecnica es desactivando el reloj eliminando de
esta manera la componente dinaacutemica del consumo Los circuitos asincronos proveen
esta teacutecnica incorporada ya que no producen caacutelculo a menos que se lo requiera
expliacutecitamente
30
Capiacutetulo 2 Consumo en Circuitos CMOS
El modo descanso es una extensioacuten de la teacutecnica anterior y se trata del apagado de
todo el circuito Para esto se monitorea el sistema y en caso de estar ocioso se procede
al apagado del sistema en lo que se conoce como modo descanso o suentildeo (seep modeacute)
Durante este modo se monitorean las entradas en busca de las condiciones que
despierten al sistema y pase al modo de uso normal El cambio de modos deshy
funcionamiento representa una sobrecarga tanto en tiempo como en consumo de
modo que si los periodos de descanso no son suficientemente largos esta estrategia
pierde atractivo
La tercera teacutecnica en cuestioacuten se trata de ajustar tanto sea la frecuencia del reloj como
la tensioacuten de alimentacioacuten de modo de cumplir los requerimientos de caacutelculo (la
filosofiacutea de no tener maacutes potencia de caacutelculo que la necesaria) Si bien las tareas a
realizar por un circuito variacutean con el tiempo el problema reside en como detectar o
predecir la potencia de caacutelculo necesaria en cada momento Una aproximacioacuten es a
traveacutes de instrucciones software para la reduccioacuten de velocidad como en algunos
procesadores MIPS (VR4K) que reduce al 25 la velocidad de reloj o por alguacuten
sistema de retroalimentacioacuten interna En esta liacutenea Intel en la tecnologiacutea SpeedStep
reduce la velocidad del reloj de sus procesadores al funcionar con bateriacuteas en vez de la
red eleacutectrica [IntOO]
La liacutenea de microprocesadores MIPS RISC de 64 bits YR4100 de Nec Corporation
combina la reduccioacuten de velocidad por software con cuatro modos de funcionamiento
para reduccioacuten de consumo (full speed standby suspend and hibernoacutete modeacute) donde se
apagan selectivamente ciertas partes del circuito [nec98]
Los dispositivos programables de Xilinx no poseen modo seep power doivn o similares
de hecho fue quitado de los dispostivos VirtexVirtexII que originalmente lo tuvieron
En la seccioacuten 36 se estudian algunas alternativas para desactivacioacuten de partes inactivas
del circuito en FPGAs
263 Particionado
Datos globales significan memorias globales con sentildeales a traveacutes de todo el circuito
que conmutan altas capacidades y disipan mucha potencia Una teacutecnica altamente
difundida es la participacioacuten para aprovechar de la localidad de los datos el proceso
distribuido es de mayor eficiencia de consumo que los procesos centralizados
Capiacutetulo 2 Consumo en Circuitos CMOS
Al margen de los problemas de exactitud y longitud de palabra el disentildeador debe
seleccionar tambieacuten una aritmeacutetica de representacioacuten para los datos Por ejemplo
complemento a dos (C2) signo magnitud (tambieacuten llamado signo valor absoluto
SVA) oacute cero desplazado (CD) son posibles representaciones aritmeacuteticas de datos Sin
duda el complemento a dos es el sistema maacutes ameno de utilizar y por ende el maacutes
utilizado En esta representacioacuten los bits menos representativos (LSBs) son bits de
datos en tanto los bits maacutes representativos (MSBs) son bits de signo Como resultado
los bits MSBs contienen informacioacuten redundante que conlleva a una mayor actividad
(maacutes consumo) cuando hay una cantidad de transiciones de signo importante Como
contrapartida la representacioacuten en signo y magnitud utiliza un solo bit para
representar el signo y por ende solo necesita cambiar un bit para cambiar de signo En
la figura 214 se muestran dos ejemplos de cambio de signo en complemento a dos
(C2) y signo magnitud (SVA)
Nuacutemero decimal
10 -10
Numero en C2 de 16 bits
0000 0000 0000 1010 11111111 11110110
Total transiciones 14
Numero en SVA de 16 bits
0000 0000 0000 1010 1000 0000 0000 1010 Total transiciones 1
1245 -1245
0000 01001101 1101 1111 10110010 0011
Total transiciones 15
0000 01001101 1101 1000 01001101 1101 Total transiciones 1
Figura 214 Ejemplos de cambio de signo en complemento a dos (C2) y signo magnitud (SVA)
No obstante en la mayoriacutea de los casos la superior complejidad de las operaciones en
signo magnitud supera con creces los eventuales beneficios de la menor actividad En
algunos casos utilizando liacuteneas globales de mucha capacidad y pocas operaciones
aritmeacuteticas puede ser conveniente pasar a signo magnitud
Un tema relacionado es el referente a la codificacioacuten de datos De alguna manera esta
discusioacuten trata de evitar el derroche en la eleccioacuten del esquema de representacioacuten Por
ejemplo los bits de signo en la representacioacuten de complemento a dos puede ser
considerado un desperdicio en el ancho de datos Otro problema tiacutepico es la necesidad
de tener buena precisioacuten en nuacutemeros pequentildeos pero no tanta en nuacutemeros grandes Si
esto se soluciona con una representacioacuten como el complemento a dos que posee una
cuantiacuteficacioacuten lineal no se saca provecho de esa representacioacuten la solucioacuten podriacutea
33
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Por ejemplo las memorias tienen un consumo proporcional al tamantildeo si para un
proceso cualquiera realizado por un uacutenico procesador accediendo a una uacutenica
memoria se puede dividir el proceso en N procesadores accediendo a N memorias se
puede lograr un ahorro conceptual de N veces Con las maquinas de estados que
implementan controladores se puede efectuar un razonamiento anaacutelogo Si un control
centralizado debe abastecer todo un circuito las liacuteneas seraacuten globales y de alta
capacidad con el correspondiente aumento de consumo respecto de una opcioacuten
descentralizada que solo intercambian algunos pocos bits necesarios y el resto de
proceso se realiza local
264 Representacioacuten de los datos
Otra teacutecnica para la reduccioacuten de consumo es la eleccioacuten de la representacioacuten de los
datos El disentildeador dispone de diferentes alternativas a escoger por ejemplo punto
fijo vs punto flotante signo magnitud (signo valor absoluto - SVA) vs complemento
a dos (C2) datos codificados vs datos sin codificar Cada decisioacuten involucra ponderar
diferentes aspectos como exactitud facilidad de disentildeo prestaciones aacuterea consumo
En eacutesta seccioacuten se discuten algunos problemas involucrados en la seleccioacuten de la
representacioacuten de datos para bajo consumo
Uno de las decisiones maacutes obvias es decidir utilizar punto fijo o punto flotante El
punto fijo como es de esperar necesita menos hardware y por consiguiente menos
consumo Desafortunadamente sufre dificultades en cuanto al rango de
representacioacuten escalar los datos por software puede ser una solucioacuten pero requiere
naturalmente de decodificacioacuten extra El punto flotante por contraste modera las
dificultades del rango de representacioacuten a expensas de utilizar mucho maacutes hardware
(consecuentemente maacutes capacidad y maacutes consumo) Por esto la representacioacuten de
punto flotante debe ser elegida solamente cuando las necesidades del rango de
representacioacuten lo exijan
Una decisioacuten relacionada involucra seleccioacuten de la longitud de palabra requerida para
la ruta de datos Frecuentemente se sobrestiman los requisitos del rango de
representacioacuten construyendo arquitecturas con grandes maacutergenes de seguridad y por
ende usando anchos de palabras maacutes grandes de los requeridos por la aplicacioacuten Estas
decisiones apresuradas traen indiscutiblemente un aumento del aacuterea y el consumo
32
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
pasar por usar punto flotante Otra alternativa es utilIacute2ar una codificacioacuten logariacutetmica
que complica muchas operaciones baacutesicas (como la suma) pero que puede hacer
multiplicaciones con simples sumadores
Siguiendo con el tema de codificacioacuten de la informacioacuten se puede mencionar la
codificacioacuten de estados en maquinas de estados finitos (FSMs) Las codificaciones
binarias ofrecen una manera compacta de expresar estados pero que pueden tener
muchas transiciones si la cantidad de estados (bits para representar los estados) es
grande La codificacioacuten one-hot (solo un bit a 1 el resto a 0) ofrece una distancia
constante de dos transiciones entre cualquier par de estados Dentro de las
codificaciones binarias los coacutedigos de Gray o Johnson ofrecen soluciones con
menores transiciones para ciertos tipos de problemas de codificacioacuten Este aspecto se
estudia detalladamente en el capitulo 4 sobre maacutequinas de estado
Visiblemente existen muacuteltiples alternativas a la hora de elegir una representacioacuten de
datos para sistemas de bajo consumo Desafortunadamente no existe una opcioacuten ideal
para aplicaciones de bajo consumo Por el contrario el disentildeador debe realizar un
anaacutelisis del sistema en teacuterminos de precisioacuten requerida prestaciones y operaciones a
realizar sobre los datos para determinar el sistema de representacioacuten idoacuteneo para cada
aplicacioacuten
27 Nivel algoriacutetmico
Los algoritmos tienen influencia directa e indirecta sobre el consumo Por ejemplo la
complejidad algoriacutetmica y la cantidad de operaciones tienen una influencia directa en
el consumo Otras caracteriacutesticas como la posibilidad de aplicar concurrencia pipeline
deshabilitacioacuten parcial del reloj o utilizar operaciones de menor consumo tienen una
influencia algo maacutes indirecta Esta seccioacuten evaluacutea eacutestas fuentes de ahorro de consumo
271 Algoritmos para bajo consumo
Tres factores primarios afectan directamente a la potencia consumida por un
algoritmo independientemente de la arquitectura que se elija Ellos son la complejidad
la precisioacuten y la regularidad del algoritmo elegido
34
Capiacutetulo 2 Consumo en Circuitos CMOS
Complejidad
La complejidad de un algoritmo puede ser medido de diferentes maneras Una primera
meacutetrica de la complejidad puede ser la cantidad de instrucciones u operaciones
realizadas Dado que cada operacioacuten consume potencia es un indicador uacutetil para
medir o comparar las caracteriacutesticas de bajo consumo de un algoritmo respecto de
otro para una arquitectura determinada
Hay que recordar en realidad que no todas las operaciones consumen lo mismo
claramente una multiplicacioacuten o divisioacuten han de consumir mucho mas que una adicioacuten
o substraccioacuten Para una correcta comparacioacuten no solo se debe medir el total de
operaciones sino tambieacuten ponderar con el tipo de operaciones realizadas
Relacionado con esto otra meacutetrica para evaluar la complejidad de los algoritmos es la
cantidad de datos accedidos en memoria Los accesos a registros y memoria (sobre
todo memorias externas) suelen ser caros en teacutermino de consumo Por ello algoritmos
que no solo minimizan la cantidad de operaciones sino que ademaacutes la cantidad de
accesos a memoria y su tamantildeo son mas apropiados para implementaciones de bajo
consumo
Precisioacuten
Como es de suponer arquitecturas con mayores anchos de palabras consumen maacutes
potencia Por tanto una arquitectura debe utilizar solo el ancho de palabra necesario
para cumplir con los requerimientos de precisioacuten del algoritmo Existen diferentes
algoritmos que computan la misma funcioacuten con requerimientos de anchos de palabra
internos totalmente diferentes
Existe en la bibliografiacutea un concepto relacionado llamado procesado de sentildeal
aproximado aproxiacutemate signalprocessiniquest) [Ben99c] donde un determinado nivel de ruido
puede ser tolerado La idea central es que se puede reducir draacutesticamente el consumo
permitiendo algunas imprecisiones en el caacutelculo
Regularidad
Mientras la complejidad computacional afecta a la potencia consumida por la ruta de
datos la regularidad de un algoritmo puede afectar la complejidad y el consumo del
hardware de control y de la red de interconexioacuten En FPGAs o ASICs un algoritmo
35
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
regular requiere menos estados para describir su comportamiento lo que se traduce en
una maquina de estados con menos consumo En caso de procesadores o
microcontroladores conlleva a desperdiciar menos consumo en saltos en el programa
(cada salto es una operacioacuten que no computa nada efectivo y genera consumo el que
se ve agravado si el procesador utilIacute2a pipeline donde ademaacutes se ha de descargar toda la
tuberiacutea sin generar computo)
Maacutes aun los algoritmos regulares tienden a tener patrones de comunicacioacuten maacutes
regulares tambieacuten lo que facilita las redes de interconexioacuten Este es un punto
importante dado que las redes de interconexioacuten globales aportan una nada
despreciable parte del consumo total
272 Algoritmos para arquitecturas de bajo consumo
Anteriormente se reconociacutean el efecto directo sobre el consumo que poseen la
complejidad la precisioacuten y la regularidad de los algoritmos Otro aspecto importante
aunque maacutes sutil es reconocer cuan bien se adecuacutea un algoritmo a una arquitectura
de bajo consumo (como las explicadas en las seccioacuten 25 y 26) Para una eficiente
implementacioacuten de los algoritmos en arquitecturas de bajo consumo existen
caracteriacutesticas deseables como son la concurrencia y la modularidad
Concurrencia
Para sistemas donde se puede cambiar la tensioacuten de alimentacioacuten sin otros problemas
se puede utilizar la concurrencia para aumentar el rendimiento y de ese modo reducir
la tensioacuten de alimentacioacuten y consecuentemente el consumo Esta estrategia carece de
sentido si el algoritmo no posee la suficiente concurrencia Los cuellos de botella
suelen ser las sentencias u operaciones secueacutenciales o recursivas Es decir aquellas que
dependen de resultados de operaciones previas para poder completarse Por ejemplo
en el caacutelculo del producto utilizando sumas y desplazamientos (ecuacioacuten 25) se
requiere conocer siempre el resultado anterior haciendo imposible (sin modificar el
algoritmo) cualquier tipo de paralelizacioacuten
Pi+1 = (Pi2 + X(n-i)Y) (Ec 25)
Existen varias teacutecnicas software para eliminar los cuellos de botella recursivos ademaacutes
hay que tener en cuenta las teacutecnicas de replicacioacuten y eliminacioacuten de subexpresiones
36
Capiacutetulo 2 Consumo en Circuitos CMOS
comunes retemporizacioacuten (retiminiquest) y las transformaciones algebraicas como posible
caminos para lograr un mayor grado de concurrencia
Modularidad y localidad
Otra teacutecnica arquitectural de bajo consumo es explotar la localidad a traveacutes de
procesadores memorias y control distribuidos Maximizando la modularidad del
algoritmo se asegura el uso eficiente de la estructura distribuida de procesamiento En
particular los grafos de computo con grupos de computacioacuten fuertemente conexos
con relativas pocas conexiones globales es de esperar que puedan ser eficientemente
implementadas en arquitecturas distribuidas
Otro efecto positivo de la modularidad es la facilidad de generar estructuras con
piacutepeline las que como fue sentildealado tienden a reducir el consumo por reduccioacuten de la
actividad espuria (glitches)
28 Nivel sistema
Considerando a un sistema formado por elementos de proceso memorias y recursos
de comunicacioacuten la optjmizacioacuten desde el punto de vista del consumo de dicha
interaccioacuten es abordado en este apartado Se consideran dentro de este nivel la
optimizacioacuten de memoria el particionado del sistema y las teacutecnicas de manejo de
potencia (poiver management)
281 Optimizacioacuten de memoria
Estas teacutecnicas intentan reducir el consumo tanto en el uso de memoria como en la
comunicacioacuten y transferencia de datos Muchas aproximaciones se centran en explotar
sistemas de caches para reducir el consumo [Su94][Baj97] Otras teacutecnicas buscan
jerarquiacuteas mas complejas de diferentes tipos de memoria (SRAMs DRAMs etc)
controlando la transferencia entre moacutedulos y el emplazado |Lid94][Geb97] |Lee95]
282 Particionado hardware-software
Es un concepto relacionado con el codisentildeo hardware software hardware software
codesigti) orientado al bajo consumo A partir de una descripcioacuten funcional de alto
37
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
nivel estas teacutecnicas intentan realizar una particioacuten y asignacioacuten de las tareas en
hardware y software de forma oacuteptima |Wan98][Hwa99]|Hen99]|Mah01] El mayor
desafioacute en este tema es contar con potentes herramientas de estimacioacuten de consumo
ya que sin una estimacioacuten eficaz es imposible optimizar posteriormente
283 Optimizacioacuten a nivel de instrucciones
El enfoque de las optimizaciones a nivel de instrucciones es en general sobre sistemas
de procesadores estaacutendares Estos meacutetodos estaacuten basados en modelos del consumo de
los procesadores en los que cada par de instrucciones tiene asociado un costo La
optimizacioacuten por tanto se basa en seleccionar una combinacioacuten de instrucciones con
miacutenimo consumo |Tiw94b] [Tiw96a] [Tiw97] [Dou98] |Tob98] [Tiw98]
284 Manejo dinaacutemico del consumo
Si bien estas ideas fueron descritas parcialmente en el punto 262 aquiacute se clasifican
ideas similares pero desde el punto de vista del sistema y no de un circuito en
particular El manejo dinaacutemico del consumo (Dynamic Power Managementmdash DPM) es un
meacutetodo de control que permite a los sistemas o parte de ellos de ser en estados
dormidos (seep modeacute) cuando estaacuten inactivos Existen actualmente estaacutendares de
manejo de energiacutea en ordenadores y dispositivos portaacutetiles [acp02] y praacutecticamente
todos los procesadores modernos tienen alguacuten meacutetodo de control del consumo La
misma tendencia se observa en diferentes componentes de sistemas como en discos
riacutegidos moacutedulos de comunicacioacuten pantallas etc
285 Minimizacioacuten del consumo en las interfaces
Una gran cantidad de energiacutea es consumida en la comunicacioacuten de datos sobre buses
muy cargados dentro o fuera del chip Diferentes aproximaciones se han desarrollado
para reducir las conmutaciones en los buses viacutea recodificacioacuten de la sentildeal [Sta95b]
[Sta94] [Sta95a] [Pan96] [Sta96] [Sta97] [Ben98]
38
Capiacutetulo 2 Consumo en Circuitos CMOS
29 Otros conceptos en el tratamiento del consumo
En esta seccioacuten se presentan las definiciones de energiacutea y potencia (conceptos que
regularmente son confundidos) y alguna de las meacutetricas que se utilizan para su medida
Por otro lado se presentan las proyecciones para la tecnologiacutea de semiconductores
elaborado por la International Semiconductor Industry Assodation que refuerzan el los
argumentos a favor del intereacutes en el desarrollo de teacutecnicas de reduccioacuten de consumo
291 Energiacutea vs potencia
La potencia consumida se expresa en Vatios (Watts) y determina el disentildeo de la fuente
de alimentacioacuten de los reguladores de tensioacuten y las dimensiones de las
interconexiones eventualmente la refrigeracioacuten de corto tiempo
Por otra parte la energiacutea consumida se expresa en julios (joules) e indica la potencia
consumida en el tiempo como lo muestra la ecuacioacuten 26 La energiacutea se asocia con la
duracioacuten de las bateriacuteas De esta manera menor energiacutea indica menos potencia para
realizar un caacutelculo a la misma frecuencia La figura 215 muestra graacuteficamente esta
ecuacioacuten
Energy = power delay (joules = watts seconds) (Ec 26)
La energiacutea es por tanto independiente de la frecuencia de reloj Reducir la velocidad
del reloj solo degradaraacute la performance pero no lograraacute ahorros en la vida uacutetil de la
bateriacutea (a menos que se cambie el tensioacuten de alimentacioacuten)
Meacutetricas utilizadas Las principales meacutetricas para el consumo en circuitos integrados
utilizadas en la literatura son
bull Potencia-Tiempo (Pomr-Deiqy Product - PDP) PDP = Pavg t Mide la energiacutea
consumida por cada evento de conmutacioacuten Tambieacuten se expresa como
Pavgfrecuencia tiacutepicamente en mWMHz
bull Meacutetrica para la eficiencia de la energiacutea [Bur95]
ETR = (Energyoperation)Throughput=PowerThroughput2 (Ec 27)
Un menor ETR indica menor energiacutea para un rendimiento constante o mejor
performance para la misma energiacutea
39
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
bull Operaciones por unidad de Potencia Utilizado en el aacutembito de los
microprocesadores Tiacutepicamente en MOPSmW o MIPSmW
En esta tesis se expresaraacuten los consumos en mWMHz cuando se comparan circuitos
y algoritmos que producen igual cantidad de datos por ciclo de reloj Por otra parte se
utiliza njoules cuando se compara el consumo total de diferentes alternativas que
requieren diferente cantidad de ciclos de reloj para realizar la computacioacuten
Vatios
Vatios
La potencia es el alto de esta curva
Opcioacuten 1
Opcioacuten 2
Tiempo
La energiacutea es el aacuterea bajo la curva
Opcioacuten 1
Opcioacuten 2
Tiempo
Figura 215 Graacutefica del consumo y la energiacutea
292 Proyecciones para la tecnologiacutea de semiconductores
La asociacioacuten norteamericana de la industria de semiconductores [SIA03] y la asociacioacuten internacional de la industria de semiconductores [ITR03] realizan perioacutedicamente proyecciones de la evolucioacuten de la industria (Semiconductor Industry Association Roadmap) de semiconductores En apoyado en los informes previos provistos en Qew00][SIA97] y en el maacutes reciente de las ITRS (Jntemadonal Technology Roadmap for Semiconductors)lTRQ3] se muestra la tabla con las proyecciones para los proacuteximos antildeos
40
Capiacutetulo 2 Consumo en Circuitos CMOS
Elementos Ancho de las lineas (micrones)
Liacuteneas en DRAM Liacuteneas en Loacutegica
Memorias Bitschip (DRAM) Bitscm2(DRAM) Costbit (packaged - microcents)
Loacutegica High volume MPU (transcm2) Low volume ASIC (transcm2)
Memorias Chip-to-package pads (cost perfonnance) Chip-to-package pads (high performance)
Frequencias de los Chips (MHz) On-chip (local) high performance On-chip (across-chip) high performance On-chip (across-chip) cost performance On-chip (across-chip) ASIC high perforan Chip-to-board high performance
Tamantildeos de los Chip (mm2) DRAM Microprocessor ASIC
Proceso de Fabricacioacuten Nro de niveles cableados on-chip Nro miacutenimo de mascaras Max diaacutemetro de los Wafer (mm)
Tensioacuten (V) y Potencia (watts) Tensioacuten de alimentacioacuten de la loacutegica Vdd
Potencia (alta perf con refrigeracioacuten) Potencia (a bateriacuteas y handheld)
1997
025 020
256M 96M 120
37M 8M
800 1450
750 750 400 300 750
280 300 280
6 22 200
18-25 70 12
2001
015 012
1G 380M
30
10M 16M
1195 2400
1500 1400 700 600
1400
445 385 445
7 23 300
12-15 110 17
2003
013 010
4G 770M
15
18M 24M
1460 3000
2100 1600 800 700 1600
560 430 560
7 24 300
12-15 130 20
2006
010 007
16G 22G 53
39M 40M
1970 4000
3500 2000 1100 900
2000
790 520 790
7-8 24-26 300
09-12 160 24
2009
007 005
64G 61G 19
84M 64M
2655 5400
6000 2500 1400 1200 2500
1120 620 1120
8-9 24-26 450
06-09 170 28
2012
005 0035
256G 17G 066
180M 100M
3585 7300
10000 3000 1800 1500 3000
1580 750 1580
9 28
450
05-06 175 32
Figura 216 Proyecciones para la industria de semiconductores
210 Desglose del consumo en FPGAs
Resulta importante conocer la influencia detallada de los diferentes componentes de la
FPGA en el consumo Esto permite concentrarse en los puntos importantes a la hora
de reducir el consumo El anaacutelisis del consumo en FPGAs ha tenido poca importancia
respecto de las standart cell No obstante en [Kus98][Gar00] se presentan resultados
del desglose del consumo para la familia XC4K en tanto en [Sha02][Poo02] se realiza
lo propio en Virtex II
41
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
En todos los trabajos existe la coincidencia en cuanto a la alta influencia de la
interconexioacuten Solo [GarOO] estima el consumo de la interconexioacuten por debajo del
50 en tanto [Kus98] lo situacutea en un 65 Para la familia de dispositivos Virtex II
[Sha02] lo calcula en torno al 60 en tanto que [Poo02] en el 57
Figura 217 Distribucioacuten del consumo en XC4003 seguacuten [Kus98]
rOnWTiMlIt) loB-50)
3 ltiquest
nck bull Iiucrcoumct
bull IO
DCIJi
bull RAM
Figura 218 Distribucioacuten del consumo en XC4k-E seguacuten [GarOO]
Figura 219 Distribucioacuten del consumo en Virtex 2 seguacuten [Sha02]
42
Capiacutetulo 2 Consumo en Circuitos CMOS
211 Resumen del capiacutetulo
Este capiacutetulo brinda una introduccioacuten al disentildeo de bajo consumo en CMOS y su
aplicacioacuten al marco tecnoloacutegico de los circuitos reprogramables Comienza con una
introduccioacuten al consumo en los circuitos CMOS en general siguiendo por un repaso
de los temas recurrentes en el disentildeo de bajo consumo Se hace un repaso de las
principales teacutecnicas de reduccioacuten de consumo en los diferentes niveles de abstraccioacuten
(nivel de sistema de algoritmos arquitectura disentildeo del Circuito proceso y
tecnologiacutea)
En la discusioacuten precedente queda claro que la principal componente del consumo en
los circuitos CMOS es debido a la carga y descarga de las capacidades paraacutesitas
obtenieacutendose la conocida expresioacuten del consumo dinaacutemico
P = ~CL-Vdd2-E(sw)-fclk
La reduccioacuten del consumo se puede obtener reduciendo la capacidad CL la actividad
E(siv)fcik o la tensioacuten de alimentacioacuten Vdd Las teacutecnicas resentildeadas durante el capiacutetulo
tratan de reducir estos factores siguiendo ciertos temas recurrentes como el balance
aacuterea y velocidad para reducir consumo evitar derroches aprovechar la localidad de los
datos Varias teacutecnicas utilizan el aumento de performance para luego reducir la
tensioacuten de alimentacioacuten y aprovecharse asiacute de la dependencia cuadraacutetica de la tensioacuten
en el consumo
Por otro lado queda claro que las mayores reducciones de consumo se logran cuanto
mayor sea el nivel de abstraccioacuten Mientras a bajo nivel (nivel de puertas rutado y
emplazado y tecnoloacutegico) como mucho se puede lograr reducciones en un factor de
dos optimizaciones a nivel de arquitectura algoritmo o sistema pueden llegar a
reducir ordenes de magnitud el consumo de potencia
Por uacuteltimo en este capiacutetulo se presentan algunos conceptos claves en el tratamiento de
consumo asiacute como el desgloce del consumo en FPGAs realizado por diferentes
autores Todos coinciden en la gran influencia del rutado en el total del consumo lo
que brinda un punto importante a la hora de reducir el consumo
43
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
212 Referencias del capiacutetulo
[Acp02] Compaq Intel Microsoft Phoenix Toshiba ACPI Advanced Configuration amp Power Interface Specificatiacuteon Revisioacuten 20b October 112002 httpwwwacpiinfo
[Alv98] Atila Alvandpour Per Larsson-Edefors Christer Svensson Separation and extractiacuteon of short-circuit power consumptiacuteon in digital CMOS VLSI circuits International Symposium on Low Power Electronics and Design archive Pp 245 - 249 Monterey California United States 1998
[And04] J H Anderson F N Najm T Tuan Active Leakage Power Optimization for FPGAs Twelfih International Symposium on Field Programmable Gate Arrays (FPGA 2004) pp33 - 41 Monterrey California Feb 2004
[Baj97] R S Bajwa M Hiraki H Kojima D J Gorny K Nitta A Shridhar K Seki and K Sasaki Instructiacuteon Buffering to Reduce Power in Processors for Signal Processing IEEE TVLSI Systems Volume 05 Ntildeumber 04 p 417 December 1997
[Ben98] Luca Benini Giovanni De Micheli Enrico Macii Donatella Sciuto and Cristina Silvano Address Bus Encoding Techniques for System-Level Power Optimization Proceedings of Design Automation and Test in Europe (DATE98) Paris France Feb 1998
(Ben99c] Luca Benini and Giovanni De Micheli System-Level Power Optimization Techniques and Tools International Symposium on Low Power Desing (ISLPED99) San Diego CA USA 1999
[Boe95] E Boemo G Gonzaacutelez de Rivera Siopez-Buedo and J Meneses Some Notes on Power Management on FPGAs Lecture Notes in Computer Sciences (LNCS) No975pp149-157 Berliacuten Springer-Verlag 1995
|Boe96] E Boemo Contribution to the Design of Fine-grain Pipelined VLSI Arrays PhD Thesis ETSI Telecomunicacioacuten Universidad Politeacutecnica de Madrid January 1996
[Boe98] E Boemo S Lopez-Buedo C Santos J Jauregui and J Meneses Logic Depth and Power Consumptiacuteon A Comparative Study Between Standard Cells and FPGAs Proc XIIIDCIS Conference (Design of Circuit and Integrated Systems) Madrid Universidad Carlos III November 1998
[Bur95] T Burd R Brodersen Energy Efficient CMOS Microprocessor Design Proceedings of the 28th Annual HICSS Conference Vol I pp 288-297 January 1995
44
Capiacutetulo 2 Consumo en Circuitos CMOS
[Cha94b] A Chandrakasan R Alimoacuten A Stratakos and R W Brodersen Design of Portable Systems Proceedings of Custom Integrated Circuits Conference (CICC 94) San Diego May 1994
[Dou98] William E Dougherty David J Pursley Donald E Thomas Instruction Subsetting Trading Power for Programmability IEEE Workshop on VLSI 1998 Los Alamitos CA pp42-471998
[GarOO] A Garcia Power consumption and optimization in field programmable gate arrays PhD thesis Deacutepartement Communications et Electronique Ecoe Nationale Supeacuterieure des Teacuteleacutecommunications 2000
[Gay04] A Gayasen Y Tsai N VijaykrishnanM Kandemir MJ Irwin T Tuan Reducing Leakage Energy in FPGAs Usiacuteng Region-Constrained Placement Twelftb International Sjmposium on Field Programmable Gate Arrays (FPGA04) Monterey California USA February 2004
[Geb97] C Gebotys Low Energy Memory and Register Allocation Using Network Flow ACMIEEE Design and Automation Conference (DAC 97) Anaheim California 1997
[Hen99] Jorg Henkel A Low Power HardwareSoftware Partitioning Approach for Core-Based Embedded Systems Design Automation Conference (DAC 99) pp 122-127]me 1999
[Hwa99] Enoch Oi-Kee Hwang Functional Partitioning for Low Power PhD thesis in computer science at University of California at Riverside June 1999
[IntOO] Intel corp Mobile Intel Pentium III with SpeedStep Intel web page Second Quarter2000 wwwintelcom 2000
PTR03] ITRS Technology Working Groups International Technology Roadmap for Semiconductors 2003 Edition Executive Summary Jointly Sponsored by European SIA Japan EITIA Korea SIA Taiwan SIA and Semiconductor Industry Association (SIA) httppublicitrsnet 2003
[JewOO] Jim Jewett The International Technology Roadmap for Semiconductors (ESH THRUST) Intel Corporation Arlington VA April 2000
QunOl] Seung-Ho Jung Jong-Humn Baek and Seok-Yoon Kim Short circuit power estimation of static CMOS circuits Proceedings ofthe 2001 conference on Asia South Pacific design automation January 2001
PCao02] J Kao S Narendra and A Chandrakasan Subthreshold leakage modeling and reduction techniques In IEEE International Conference on ComputerAided Design pages 141-1482002
pCus98] E A Kusse and J Rabaey Low-energy embedded FPGA structures International Sjmposium on IJOW Power Electronics ltampbull Design pp155-160 August 1998
45
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
|Lee95] T C Lee and V Tiwari Memory Allocatiacuteon Technique for Low- Energy Embedded DSP Software Proceedings of the 1995 IEEE Symposium on LowPower Electronics San Diego CA October 1995
[Lid94] David B Lidsky Jan M Rabaey Low-power design of memory intensive functions Case Study Vector Quantization In Proceedings of the IEEE Symposium on Low Power Electronics Sept 1994
[Liu04] Michael Liu Wei-Shen Wang and Michael Orshansky Leakage Power Reductiacuteon by Dual-Vth Designs Under Probabilistic Analysis of Vth Variation International Symposium on Low Power Desing (ISLPED04) Newport Beach California USA August 2004
|Mee95] J Leijten J Meerbengen and J Jess Analysis of Reductiacuteon of Gliacutetches in Synchronous Networks Proceedings qflEEE European Design and Automation Conf(EDAC95) IEEE Press 1995
[MahOl] Rabi Mahapatra Hardware-Software Codesign Issues amp Challenges Seminar at Department of Computer Science Texas AampM University September 2001
[Mar95] R Marculescu D Marculescu and M Pedram Effiacutecient Power Estiacutemation for Highly Correlated Input Streams Proceeding of32th Design and Automation Conference (DAC) 1995
[Nar03] S Narendra D Blaauw A Devgan F Najm Leakage issues in IC design trends estimation and avoidance Proc of International Conference on Computer Aided Design (ICCAD) 2003
[Nec98] NEC Electronics Inc Power Management Modes In the VR4100 Family of 64-BitMIPS RISC Microprocessors NEC Application Note ]uacutey 1998
[Pan96] Panda PR and ND Dutt Reducing Address Bus Transitions for Low Power Memory Mapping In Proc of EDTC-96 IEEE European Design and Test Conference Pariacutes - France pp 63-67 March 1996
[Ped96] Massoud Pedram Tutorial and Survey Paper - Power Minimization in IC Design Principies and Applications ACM Transaction on Design Automation of Electronic Systems Vol 1 No J a n 1996
[Poo02] K Poon A Yan and S J E Wilton A Flexible power model for FPGAs In Intertnational Conference on Field-Programmable Logic and Applications (FPL02)pages 312-321 La Grande Motte France 2002
[Rab96a] Rabaey Jan M Low power design methodologies Kluwer Academic publtshers 1996
|Rab96b] Dirk Rabe Wolfgang Nebel Short Circuit Power Consumption of Glitches Inproc of International Symposium on Low Power Desing (ISLPED 96) Monterey CA USA 1996
46
Capiacutetulo 2 Consumo en Circuitos CMOS
[Sha02] Li Shang Alireza Kaviani Kusuma Bathala Dynamic Power Consumptiacuteon in Virtextrade-II FPGA Family FPGA02 Monterey California USA February 2002
[She92] Amelia Shen Abhijit Ghosh Srinivas Devadas and Kurt Keutzer On average power dissipation and random pattern testability of CMOS combinational logic networks In IEEE Int Conf on Computer-Aided Design pages402-4071992
[SIA03] Semiconductor Industry Association (SIA) home page http wwwsemichipsorg
[SIA97] SIA Semiconductor Industry Association The National Technologies Roadmap for semiconductors Technologies Needs 1997
[Sta94] Mircea R Stan Wayne P Burleson Limited-weight codes for low-power I O International Workshop on Low Power Design April 1994
[Sta95a] Mircea R Stan Wayne Burleson Bus-Invert Coding for Low-Power I O IEEE Transaction on VLSI Systems volume 3 number 1 pages 49-58 March 1995
[Sta95b] Mircea R Stan Wayne P Burleson Coding a Terminated Bus for Low Power Proceedings oGreat Lakes Symposium on VLSI Buffao NY USA pp 703 March 1995
[Sta96] Mircea R Stan Wayne P Burleson Two-Dimensional Codes for Low Power In proc of International Symposium on Low Power Desing (ISLPED96) Monterey CA USA 1996
[Sta97] M Stan W Burlesson Low-Power Encodings for Global Communication in CMOS VLSI IEEE TVLSI Systems Volume 05 Number 04 pp 444 December 1997
[Su94] C Su C Tsui y A Despain Low Power Architecture Design and Compilation Techniques for High-Performance Processors Proc IEEE 1994 Spring C0MPC0N pp489-498 IEEE Press 1994
[Tho98] Scott Thompson Paul Packan and Mark Bohr MOS Scaling Transistor Challenges for the 21st Century Intel Technology JournalQ3981998
[Tiw94b] V Tiwari P Ashar and S Malik Compilation Techniques for Low Energy An Overview IEEE Solid States Council Symposium on Low Power Electronics 1994
jTiw96a] V Tiwari S Malik A Wolfe and M Lee Instruction Level Power Analysis and Optimization of Software Journal of VLSI Signal Processing Kluwer Academic Publishers 1996
iexclTiw97] V Tiwari R Donnelley S Malik and R Gonzaacutelez Dynamic Power Management for Microprocessors A Case Study IEEE VLSI Design Januaryl997 ^ i iacute
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
[Tiw98] Vivek Tiwari Deo Singh Suresh Rajgopal Gaurav Mehta Rakesh Patel and Franldin Baez Reducing Power in High-performance Microprocessors In Proceedings of35th Desiga Automation Conference (DAC 98) San Francisco CA USA June 1998
[Tob98] M C Toburen T M Conteacute and M Reilly Instruccioacuten scheduling for low power processors In Proceedings ofthe Power Driven Micro-architecture Workshop in conjunction iacutevith theISCA98 June 1998
[Vee84] H J M Veendrick Short-Circuit Dissipation of Static CMOS Circuitry and its Impact on the Design of Buffer Circuits IEEE Journal of Solid-State Circuits pp 468-473 August 1984
[Wan98] Marlene Wan Yuji Ichikawa David Lidsky Jan Rabaey An Energy Conscious Methodology for Early Design Exploratiacuteon of Heterogeneous DSPS Proceedings ofthe Custom Intergrated Circuit Conference Santa Clara CA USA May 1998
48
Capiacutetulo 3 Experimentos sobre Bajo Consumo
Este capiacutetulo examina diferentes experimentos llevados cabo sobre el consumo en
FPGAs con el objeto de determinar relaciones baacutesicas y de ser posible derivar
recomendaciones generales a nivel usuario Otro objetivo Impliacutecito es demostrar que
la utilizacioacuten de herramientas de desarrollo puede servir como meacutetricas indirectas para
estimar o reducir el consumo Comienza con una serie de experimentos baacutesicos donde
se establece la relacioacuten de la tensioacuten y la frecuencia en el consumo para proseguir con
la influencia de la corriente estaacutetica y la corriente de sincronizacioacuten Maacutes adelante se
examinan la relacioacuten velocidad-consumo la conmutatividad de datos el efecto de la
segmentacioacuten (pipelineacute) y el uso de registros en general Finalmente se analizan y
cuantifican las alternativas para la inhabilitacioacuten de partes inactivas de un circuito
31 Experimentos generales
En el capiacutetulo 2 se han enumerado las causas del consumo y establecido las formulas
correspondientes en esta seccioacuten se realizan experimentos para corroborar la
linealidad con la frecuencia asiacute como la dependencia cuadraacutetica con la tensioacuten En
[GarOO] se sugiere la existencia de una componente Yiquestiquest de tercer orden en el consumo
debido a las corrientes de cortocircuito aunque en las medidas realizadas en esta tesis
no conducen a dichos resultados Por otra parte se ha medido la corriente estaacutetica en
los diferentes dispositivos y la influencia del consumo de sincronizacioacuten (debida al
aacuterbol de distribucioacuten del reloj)
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Para cada familia de dispositivos se utilizan diferentes grupos de circuitos de prueba
atendiendo a las caracteriacutesticas de densidad de cada uno El objetivo de estos
experimentos generales es en primer lugar corroborar las relaciones baacutesicas de
consumo y en segundo termino comparar la evolucioacuten relativa de las componentes
estaacutetica y de sincronizacioacuten en el consumo total
311 Relacioacuten de la frecuencia y tensioacuten en el consumo
Dispositivo XC4K
Utilizando el arreglo experimental descrito en el Apeacutendice A se han medido la
relacioacuten del consumo con la frecuencia y la tensioacuten de alimentacioacuten Los circuitos
presentes en la Figura 31 son los multiplicadores modulares mult_red shifiampaddy montg
descritos en la seccioacuten 51 y los circuitos de multiplicacioacuten entera guild hatamiany
ivallace de la seccioacuten 32 Las medidas se llevaron a cabo sobre el dispositivo
XC4010PC84-4C Los anaacutelisis de regresioacuten dan un coeficiente de determinacioacuten (R2)
superior a 098 en todos los casos
2 4 3 34 38 42 46 5 54 Frecuencia (MHz) Tensioacuten (V)
Figura 31 Medidas de la relacioacuten lineal de la frecuencia con el consumo y cuadraacutetica con la tensioacuten de alimentacioacuten en la familia XC4K
Capiacutetulo 3 Experimentos sobre bajo consumo
Dispositivo Virtex
Se han medido la relacioacuten del consumo con la frecuencia y la tensioacuten de alimentacioacuten
para Virtex utilizando el arreglo experimental del Apeacutendice B Se muestran en las
figura Figura 32 el consumo de corriente del core (Vccint = 25V) Los circuitos
utilizados en la son los algoritmos de divisioacuten de nuacutemeros fraccionarios descritos en la
seccioacuten 54 La Figura 32a utiliza divisores de 16 bits y fueron medidos con la
secuencia de actividad aleatoria Por otra para la Figura 32b utiliza divisores de 32
bits con secuencia de entrada de maacutexima actividad En este caso al igual que en la
familia XC4K los anaacutelisis de regresioacuten dan un coeficiente de determinacioacuten (R2)
superior a 098 para todos los circuitos medidos
0 4 8 12 19 21 23 25 27 Frecuencia (MHz) Tensioacuten (V)
Figura 32 Medidas de la relacioacuten lineal de la frecuencia y cuadraacutetica con la tensioacuten en dispositivos de la familia Virtex
Dispositivo Virtex II
Utilizando el arreglo experimental del Apeacutendice C se han medido la relacioacuten del
consumo con la frecuencia y la tensioacuten de alimentacioacuten Las medidas corresponden a
la corriente Vccint de 15 V correspondiente al core Los circuitos medidos son
multiplicadores tipos shifiampadd ampamp 16 bits (seccioacuten 32) y divisores de nuacutemeros enteros
Para la medicioacuten de la relacioacuten de la tensioacuten (Vccint) se vario entre 125 y 165
obtenieacutendose una dependencia cuadraacutetica con coeficiente de determinacioacuten (R2)
superior a 097 La linealidad con la frecuencia en el rango 10 Hz mdash 100 MHz brindo
un R2 mayor a 099 para todos los circuitos medidos
51
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
312 Corriente Estaacutetica
Conforme avanzan los procesos tecnoloacutegicos la influencia de la componente estaacutetica
del consumo (seccioacuten 211) comienza a ser maacutes importante [Nar03][Liu04] llegando a
representar en disentildeos con procesos de fabricacioacuten por debajo 100 laquom hasta un 40
del consumo total Por cuestiones tecnoloacutegicas la corriente estaacutetica variacutea con la
configuracioacuten de la FPGA Existe un interesante trabajo en la reduccioacuten de las
corrientes estaacutetica en las nuevas familias de FPGA en [And04] basado en las ideas de
Pltao02] que muestra una reduccioacuten media de la corriente estaacutetica de hasta un 25
En esta seccioacuten se muestran los valores medidos para la corriente estaacutetica en los
diferentes dispositivos y su influencia relativa sobre el consumo total La Tabla 31
muestra el consumo de corriente estaacutetica para los tres dispositivos de la familia XC4K
utilizados en esta tesis (Apeacutendice A) el dispositivo Virtex (Apeacutendice B) y Virtex Tiacute
(Apeacutendice C) Se muestra la media y la desviacioacuten estaacutendar en funcioacuten de los circuitos
medidos
Cabe destacar que los valores de corriente estaacutetica medidos en el dispositivo Virtex II
es mucho menor que el informado por Xilinx en la herramienta de estimacioacuten de
consumo Xpower [Xpo04] (apeacutendice F) y por la utilidad de estimacioacuten de consumo
on-line de Xilinx [Xil04a] Seguacuten estas herramientas el consumo estaacutetico en estos
dispositivos llega aproximadamente al medio Vatio
Dispositivo
XC4003PC84-4
XC4005PC84-4
XC4010PC84-4
Virtex XCV800
Vccint
Vccout
Virtex IIXC2V1500
Vccint
Vccout
Vccaux
Cantidad
Circuitos
10
10
25
50
50
20
20
20
Corriente
estaacutetica
429
460
468
1007
181
1035
1120
270
Desv
Estaacutendar
003
010
038
040
007
025
015
009
Tensioacuten
Alimentacioacuten
5
5
5
25
33
15
33
33
Potencia
Total (mW)
214
230
234
252
60
155
370
89
Tabla 31 Consumo estaacutetico para dispositivos XC4K Virtex y Virtex II medidos
52
Capiacutetulo 3 Experimentos sobre bajo consumo
Medir el impacto del consumo estaacutetico sobre el total es complejo de llevar a cabo
dado que se comparan dispositivos con densidades muy dispares No obstante se lleva
a cabo una primera aproximacioacuten escogiendo circuitos combinacionales de gran
actividad como multiplicadores y divisores La Tabla 32 muestra la relacioacuten
porcentual del consumo estaacutetico respecto del total para tres ejemplos en cada
tecnologiacutea solo se calcula sobre el consumo en el core Para el caso de XC4K se
presentan tres multiplicadores de enteros de 8 bits (ver seccioacuten 432) en el dispositivo
XC4010PC84-4 (matriz de 20 x 20 CLBs) Para Virtex (112 x 84 slices) y Virtex II (96
x 80 slices) se presentan los consumos para un multiplicador shiji and add (seccioacuten
34) un divisor sin restauracioacuten non restoriniquest) y un divisor SRT base 2 (seccioacuten 544)
Para cada circuito se informa la ocupacioacuten medido en slices (CLB en XC4K) el
porcentaje del total de loacutegica que utiliza el consumo en mAMHz y el consumo en
mW para cierta frecuencia Por uacuteltimo se expresa la relacioacuten consumo estaacutetico
respecto del total
XC
4000
V
irtex
V
irtex
II
Circuito
Guild comb
m-vhdl8
corem8
mult_SampA
div_nr
srt_r2
mult_SampA
div_nr
srt_r2
Aacuterea
(slices)
60
56
52
545
576
561
585
576
561
Ocupashy
cioacuten
15
14
13
6
6
6
8
8
7
Consumo
mAMHz
60
39
34
760
1698
1351
382
284
332
Frec
(MHz)
5
5
5
2
1
1
2
1
1
Tensioacuten
(V)
50
50
50
25
25
25
15
15
15
Consumo
(mW)
1494
981
846
3802
4244
3378
1145
426
498
Estaacutetico
T o t a l
136
193
217
66
59
73
119
267
238
Tabla 32 Relacioacuten consumo estaacutetico respecto del dinaacutemico en XC4K Virtex y Virtex II
La Tabla 32 permite percibir la disminucioacuten relativa del consumo estaacutetico que se
evidencia en Virtex respecto de XC4K y el gran aumento relativo que representa esta
componente en Virtex II El consumo dinaacutemico en Virtex II se reduce notablemente
respecto de Virtex en un factor que va desde 3 hasta casi 10
53
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
313 C o m e n t e de Sincronizacioacuten
La corriente de sincronizacioacuten es la que se origina por el aacuterbol de distribucioacuten del reloj
y los registros conectados a ellos En la Figura 33 se puede ver la relacioacuten de la
corriente de sincronizacioacuten respecto de la cantidad de registros para dispositivos de la
familia XC4K El anaacutelisis de regresioacuten de los datos nos brinda un consumo debido del
buffery aacuterbol de reloj de 73 mWMHz y de 003 mWMHz por cada FF extra
La Figura 34 muestra la relacioacuten consumo de sincronizacioacuten respecto del de la ruta de
datos para algunos circuitos en XC4K Se han graneado dos multiplicadores con
diferente profundidad loacutegica Uno totalmente combinacional solo registrado a la
entrada y salida Quumlatam-15) y otro con profundidad loacutegica de tres LUTs (Hatam-3) Por
otro lado se han graneado tres algoritmos de multiplicacioacuten modular implememtados
sequencuialmente es decir con una ruta de datos y una maacutequina de estados que lo
controla (mult_red SampA y Montiquest) En la Figura 327 de la seccioacuten 341 se muestra
ademaacutes la relacioacuten de la corriente de sincronizacioacuten respecto de la ruta de datos en la
segmentacioacuten (ptpeline)
pound 3 S lt
tiacute 2 c s u c
m
bull
| bullXC4010 I I iacute laquoXC4005 I XC4003 I
100 200 300 Cantidad de FF
400 500
Figura 33 Corriente de sincronizacioacuten en funcioacuten de la cantidad de registros en diferentes dispositivos de la familia XC4K
54
Capiacutetulo 3 Experimentos sobre bajo consumo
Circuito
Hatam-15
Hatam-3
Mult^red
SampA
Montg
CLBs
80
112
57
33
34
FF
32
207
67
37
31
SincTotal
8
28
39
32
41
amp J3 ltamp lt$~ amp
Figura 34 Relacioacuten del consumo de sincronizacioacuten respecto del de la ruta de datos en XC4K
Para el caso de Virtex el anaacutelisis de regresioacuten lineal de los datos graneados en la Figura
35 indica un consumo para el buffer y aacuterbol de reloj de 143 mWMHz y un consumo
por FF de 15 |iWMHz En la Tabla 34 se pueden observar en algunos ejemplos la
relacioacuten del consumo de sincronizacioacuten respecto del de la ruta de datos en Virtex Se
han seleccionado circuitos segmentados (multiplicadores y divisores con diferentes
profundidades loacutegicas) y circuitos secuenciales (divisores fraccionarios)
Adicionalmente en la Figura 328 de la seccioacuten 342 se puede observar la relacioacuten del
consumo total y de sincronizacioacuten respecto de la profundidad loacutegica en la
segmentacioacuten
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
1000 1500 2000 Cantidad de FF
2500 3000
Figura 35 Consumo de sincronizacioacuten en funcioacuten de la cantidad de registros en el dispositivo Virtex XCV800PQ240-4
Segm
enta
dos
(pip
elin
es)
Secu
encl
ales
(ru
ta d
e da
tos
+ F
SM)
Circuitos
Srt_r2_pipe04
srt_r2_pipe03
srt_r2_pipe01
mult_pipe4
mult_pipe3
mult_pipel
srt_r2_gl
srt_r2_g2
srt_r2_g4
srt_r2_g8
srt_j16_g4
srt_r6_g8
Aacuterea
Slices
969
1121
2179
776
875
1584
135
139
169
229
336
603
FF
794
1089
3202
800
1088
3104
240
236
236
236
255
294
Consumo
Sincro
33
38
63
284
328
573
166
162
161
169
174
189
ruta datos
449
394
306
316
278
266
296
289
313
474
341
645
Total
482
431
369
3447
3105
3235
462
451
474
642
516
834
Syncro
Total
68
87
171
82
105
177
359
359
340
263
338
227
Tabla 33 Ejemplos de la relacioacuten del consumo de sincronizacioacuten respecto del de la ruta de datos en Virtex
Los dispositivos Virtex II poseen un sistema de distribucioacuten de reloj bastante maacutes
avanzado que los dispositivitos predecesores (Figura 36) [Xil04b]|Eto03] Estos
56
Capiacutetulo 3 Experimentos sobre bajo consumo
dispositivos pueden conectar hasta 16 relojes externos y poseen hasta 12 manejadores
digitales de reloj digital dock managers - DCM) [Xil04b] existen ademaacutes 8 aacuterboles de
reloj por cada cuarto del dispositivo Cada cuadrante posee estos ocho relojes globales
organizados en filas de reloj Una fila de reloj soporta hasta 16 filas de CLBs (8 arriba
y 8 abajo) en dispositivos mayores se agregan nuevas filas de reloj Para ahorrar-
consumo cada fila no utilizada permanece desconectada
JDDDI bull[IHIlIlffipinHMIIll AAAA A A A A
8 BUFGMUX
8max
Figura 36 Distribucioacuten del reloj en Virtex II [Xil04b]
4000 F F
8000 12000
Figura 37 Consumo por flip-flop en el dispositivo Virtex II XC2V1500fg676-6 expresados uWMHz
57
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
La Figura 37 muestra el consumo (en |iquestWMHz) en funcioacuten de la cantidad de flip-
flops El consumo por cada registro llega ser inferior a 01 pWMHz Se puede
observa que se trata de un orden de magnitud respecto a Virtex y casi 3 ordenes de
magnitud sobre los dispositivos XC4K El aspecto discontinuo del consumo se
justifica por la conexioacuten (oacute desconexioacuten) de las liacuteneas de reloj que realiza Virtex II
La Figura 331 de la seccioacuten 343 muestra la relacioacuten del consumo total y de
sincronizacioacuten respecto de la profundidad loacutegica en la segmentacioacuten de
multiplicadores de 32 bits
58
Capiacutetulo 3 Experimentos sobre bajo consumo
314 Conclusiones sobre experimentos generales
Se han corroborado la linealiacutedad del consumo con la frecuencia y su dependencia
cuadraacutetica con la tensioacuten en las tres familias de dispositivos estudiadas Si bien esta es
una conclusioacuten obvia resulta indispensable corroborar este hecho experimentalmente
como punto de partida de las futuras mediciones
El consumo estaacutetico es del mismo orden de magnitud en XC4K y Virtex (23 mW vs
31 mW) a pesar que el dispositivo Virtex tiene una capacidad unas ochenta veces maacutes
grande El salto a la tecnologiacutea Virtex II conlleva un incremento en el consumo
estaacutetico (maacutes de 60 mW) a pesar de la importante disminucioacuten en la tensioacuten de
alimentacioacuten La influencia relativa del consumo estaacutetico respecto del total disminuye
en Virtex respecto de XC4K pero aumenta considerablemente en Virtex II
Posteriormente se ha analizado la corriente de sincronizacioacuten y la influencia en
algunos disentildeos tiacutepicos Claramente se observa una menor influencia relativa de esta
componente en los dispositivos maacutes modernos En XC4K cada flip-flop extra implica
un consumo de unos 30 (iquestWMHz en tanto que en Virtex se reduce hasta 15
|JWMHz y para Virtex II puede llegar a representar menos de 01 |iquestWMHz El
esquema avanzado de distribucioacuten de reloj de Virtex II permite desconectar partes del
aacuterbol de reloj que no se utilicen que se refleja claramente en la menor influencia de
esta componente en los disentildeos
59
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
32 Relacioacuten entre velocidad y consumo en FPGAs
Si bien los disentildeadores de sistemas basados en FPGAs cuentan con herramientas para
optimizar los circuitos en aacuterea y velocidad y a pesar de los resultados obtenidos en la
investigacioacuten realizada en los uacuteltimos antildeos [Naj94] |Ped96] los IDE (Integrated
Development Envirvnmeni) de los fabricantes de FPGAs no proveen herramientas de
disentildeo para bajo consumo
Noacutetese que la alternativa de medir el consumo de una FPGA montada en una tarjeta
suele no ser viable por ser la FPGA normalmente un componente de un sistema
mayor Y aunque esta medicioacuten fuera posible se trata como principio general de
disentildeo de estimar y optimizar el consumo de un circuito desde las primeras fases de
disentildeo En esta direccioacuten Xilinx a partir de la versioacuten 4 del software de desarrollo ISE
[IseOl] ha introducido una herramienta de estimacioacuten del consumo denominada
XPOWER [Xpo02] (Apeacutendice F) para mitigar esta deficiencia aunque aun no hay
herramientas para la optimizacioacuten
Frente a esta falta de herramientas de disentildeo para bajo consumo interesa saber si las
herramientas que se proveen y los informes que se generan para aacuterea y retardo pueden
ayudar o ser uacutetiles tambieacuten en disentildeo para bajo consumo
Existen trabajos en la literatura que muestran que los circuitos con mayor frecuencia
maacutexima de operacioacuten son los que menos energiacutea consumen En esta seccioacuten se
pretende verificar experimentalmente esta proposicioacuten para FPGAs lo cual abre una
posibilidad para la estimacioacuten y optimizacioacuten de consumo frente a la falta de
herramientas de disentildeo para bajo consumo en los dispositivos programables
Debido a la falta de correlacioacuten entre aacuterea y consumo en FPGAs observada en
iexclTodOO] en el presente seccioacuten soacutelo se analiza la relacioacuten entre frecuencia maacutexima de
operacioacuten y consumo Esta relacioacuten fue considerada por investigadores y fabricantes
de ICs Por ejemplo Xilinx recomienda redisentildear los circuitos hacieacutendolos maacutes raacutepidos
para disminuir su consumo maacutes allaacute de que la velocidad pedida en las especificaciones
de disentildeo se haya obtenido [XIacute195]
En particular al optimizar los paraacutemetros de los que depende la velocidad como el
fan-out la cantidad de loacutegica de caacutelculo (CLBs) o la profundidad de loacutegica se optimiza
tambieacuten el consumo de un circuito En [Boe96] se ha estudiado el efecto de la
60
Capiacutetulo 3 Experimentos sobre bajo consumo
segmentacioacuten y el particionado manual en multiplicadores sobre velocidad y consumo
Los resultados de este trabajo muestran que estas acciones no soacutelo aumentan la
velocidad de operacioacuten de los multiplicadores sino que tambieacuten se reduce el consumo
para una velocidad de operacioacuten fija (Figura 38)
16
S 1-4
bull8 18 co
75 E o c co o c 0 - o Q 0) O O
E W c o uuml
12
10
08
bull
bull
bull
bull
0
bull
bull
1
t
m i
iacute
i
bull
bull bull
3 ltbull i
u
5
5 (
bull
3 7
bull
bull
3 9 1
Retardo normalizado
Figura 38 Relacioacuten ancho de banda-consumo para multiplicadores segmentados [Boe96]
La optimizacioacuten de un paraacutemetro de un circuito integrado como la velocidad se puede
atacar en diferentes niveles en el ciclo de disentildeo [Boe96] A nivel de topologiacutea se
puede disponer de varias alternativas funcionalmente equivalentes Por ejemplo para la
divisioacuten se pueden utilizar algoritmos de non-restoring restoring SRT en diferentes bases
Neivion-Raphson Goldschmith etc Cada una de estas alternativas tiene sus propios
valores de aacuterea velocidad y consumo (ATP Area-Time-Vowef) en una tecnologiacutea dada
Una vez seleccionada una topologiacutea se pueden aplicar modificaciones arquitectoacutenicas
como paralelismo segmentacioacuten o secuencializacioacuten Por uacuteltimo el circuito puede ser
transformado a nivel fiacutesico particionado yo emplazado manual (jloorplaning
emplazamiento relativo restricciones de aacuterea) seleccioacuten de un valor para el esfuerzo
de rutado retiming restricciones de tiempo (timming constraints) etc
61
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
En esta seccioacuten se exploran alternativas topoloacutegicas y de implementacioacuten para
multiplicadores implementados en FPGAs de la serie XC4K de Xilinx En el siguiente
punto se resumen las principales caracteriacutesticas de los circuitos que se estudiaron y los
detalles de realizacioacuten de los experimentos Maacutes tarde se presentan y analizan los
resultados obtenidos Finalmente se presentan conclusiones y recomendaciones de
disentildeo para reducir el consumo en FPGAs
321 Circuitos de prueba
La relacioacuten entre velocidad y consumo y la incidencia de las diferentes decisiones de
disentildeo planteadas en este trabajo se estudian sobre cuatro tipos de multiplicadores
Ademaacutes de existir bibliografiacutea que estudia este tipo de circuitos a lo largo de toda la
historia de la computacioacuten se pueden materializar sobre diferentes topologiacuteas lo cual
convierte a los multiplicadores en casos de prueba apropiados Las principales
caracteriacutesticas de cada tipo de multiplicador se resumen en la Tabla 34 En estos
experimentos se incluyen multiplicadores de Wallace [Wall64] Hatamian-Cash [Hat86]
Guild [Gui69] y por uacuteltimo un multiplicador que resulta de la siacutentesis de un modelo
VHDL de alto nivel (p lt= a b donde a y b son las entradas y p la salida del
multiplicador) [Syn99]
Test circuit
SetA
SetB
SetC
SetE
Topology
Foundation 21 Synthesis
Wallace
Hatamian
Guild
Reference
[Syn99]
[Wall64]
[Hat86]
[Gui69]
Descriptiacuteon
language
VHDL
VHDL
Gate level
VHDL
Number of CLB
54
69
96
60
Logic depth in critical path
12 LUTs
13 LUTs
15 LUTs
15 LUTs
Tabla 34 Principales caracteriacutesticas de los circuitos de prueba Relacioacuten Velocidad-Consumo
Todas las medidas experimentales fueron realizadas en las mismas condiciones sobre
una FPGA XC4010PC84-4C de Xilinx Por este motivo todos los prototipos tienen
praacutecticamente las mismas componentes de potencia estaacutetica y externa (pff-chip) Como
estas componentes del consumo no se pueden manipular en ninguacuten momento del
disentildeo para FPGA se aislan y no se consideran en los graacuteficos para centrar el estudio
en la componente dinaacutemica del consumo
62
Capiacutetulo 3 Experimentos sobre bajo consumo
Para estudiar a nivel de disentildeo fiacutesico la incidencia de los paraacutemetros de los algoritmos
de emplazamiento y rutado se realizaron 100 implementaciones de cada multiplicador
usando un proceso automaacutetico provisto en el software del fabricante De este
conjunto de implementaciones se tomo una muestra de 21 casos que fueron los que se
midieron seleccionados de manera de tener las implementaciones maacutes raacutepidas las maacutes
lentas y las de velocidad media
322 Resultados experimentales de la relacioacuten velocidad - consumo
Los resultados maacutes relevantes se muestran a continuacioacuten Se analiza la relacioacuten del
consumo y la velocidad por efecto de las diferentes topologiacuteas el efecto de muacuteltiples
implementaciones dentro de la misma topologiacutea y por uacuteltimo la informacioacuten de la
actividad como meacutetrica indirecta del consumo
3 0 gt gt mdash 1 mdash gt mdash 1 mdash gt mdash I mdash gt mdash I mdash mdash i mdash mdash 1 mdash gt mdash I mdash bull mdash i mdash i mdash 60 65 70 75 80 85 90 95 100 105 110 115
Miacutenimo periodo de reloj (ns)
Figura 39 Consumo dinaacutemica de los multiplicadores medidos
3221 Correlacioacuten velocidad-consumo Efecto de las diferentes topologiacuteas
Cada topologiacutea tiene sus propias caracteriacutesticas en cuanto a aacuterea y velocidad En la
Figura 39 se muestran los resultados de las medidas de los cuatro conjuntos de
63
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
multiplicadores donde cada regioacuten rectangular incluye los valores obtenidos de las 21
implementaciones seleccionadas que se diferencian en los paraacutemetros de
emplazamiento y rutado usados durante la siacutentesis
El eje de las abscisas en la Figura 39 muestra el miacutenimo periacuteodo de operacioacuten que es
la inversa de la maacutexima frecuencia admitida por el circuito Este valor se obtiene de los
reportes generados durante la implementacioacuten Es importante destacar que el
consumo de la FPGA fue medido en todos los casos con el dispositivo operando a 2
Mhz independientemente de la frecuencia maacutexima de operacioacuten que indica cuan
raacutepido es el circuito
La potencia dentro de cada conjunto de circuitos del mismo tipo (topologiacutea) variacutea en
un factor de aproximadamente 11 y la maacutexima variacioacuten para todos los circuitos
medidos es de 13
^^ $ E OT O
ffl bull o ltD bulla 3 i _
(0
0) bull o
o E 3 (0 c o uuml
44
43
42
41
40-
asshy
as-
SetG
1
bull 1
1
jild
u
i
bull
bull
bull
bull
bull -
bull
bull bull bull
i
bull bull
bull
bull
l
bull -
1
l
96 98 100 102 104 106 108 110 112 114
Periodo de reloj (ns)
Figura 310 Relacioacuten velocidad-consumo para la misma topologiacutea para el multiplicador Guild
64
Capiacutetulo 3 Experimentos sobre bajo consumo
Q ro
X3 a)
xs
imdash
JO 0
O E ziexcl w c o uuml
o9f0
385
ooCr
o75_
o7tr
oo5
oolr
ooo
350-
SetVf
1
1
bull
bull
IDL
1
bull
1
bull
1 -
bull - bull bull bull bull bull - bull -
bull
bull
BI
bull
bull
bull
m bull - - -
M j bdquo
bull
bull
-
i
bull
1
60 65 70 75 80
Periodo de reloj (ns) 85 90
Figura 311 Relacioacuten velocidad-consumo dentro de la misma topologiacutea (multipl VHDL comportamental)
3222 Correlacioacuten velocidad-consumo para implementaciones dentro de la
misma topologiacutea
Para un mismo tipo de multiplicador es decir luego de haber seleccionado una
topologiacutea la diferencia entre las distintas implementaciones estaacute en el emplazamiento
y el conexionado de los CLBs
En la Figura 310 se muestra el resultados obtenido para el multiplicador Guildy en la
Figura 311 para el descrito en VHDL comportamental Si bien se observa dispersioacuten
en los puntos en los graacuteficos vale la suposicioacuten planteada los circuitos raacutepidos son
los que menos consumen Los coeficientes de regresioacuten son 063 y 065
respectivamente Por ejemplo de las 12 implementaciones con el menor periacuteodo
miacutenimo de operacioacuten o sea las maacutes raacutepidas 10 tienen un consumo menor que la
media Para el multiplicador tipo Guild 9 de las 10 implementaciones maacutes raacutepidas
presentan un consumo menor que el valor medio
65
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
pound ro
TJ ltD
3
jg agt bullo o E 3 W c o O
44-s 3t Gui
1
bull -1
1 bull
pound
bull
1 --
bull
1 1
bull
bull
bull
1
-o
bull 1 1 bull 1 vgt
1
np4
bull
iexclTip4pound
pyb
1 1
bull
bull bull
bullbull -
bull
1
bull
bull
1
96 98 100 102 104 106 108 110 112 114
Periodo de reloj (ns)
pound F
tn o bull-raquo bullo o
bull o CO bull^ 3 i mdash
03
0 bull o O
E 3 (0 c o O
44
43
42
41
4(1
39
38
setGuild
bull
u
m
u
bull
bull (
laquoNIacuteTIDA
w np45
VJfapss
bull mdash bull _ _
bull
bull 102 104 106
Periodo de reloj (ns) 108
Figura 312 Estudio de las fluctuaciones en el consumo para circuitos de similares velocidades (Multiplicador Guid)
66
Capiacutetulo 3 Experimentos sobre bajo consumo
3223 Importancia de los glitches
Mediante los experimentos reportados en esta seccioacuten se trata de explicar las
fluctuaciones observadas en la relacioacuten velocidad-consumo Esto se realiza analizando
los glitches que se producen en los circuitos Para ello se estudiaron algunas
implementaciones para cada tipo de multiplicador Las implementaciones analizadas
fueron seleccionadas de manera que tengan casi el mismo periodo miacutenimo de
operacioacuten (PMO) y la mayor fluctuacioacuten de consumo entre ellas Por ejemplo para el
multiplicador tipo Guild se seleccionaron las 3 implementaciones que se ven en la
Figura 312 (imp4 imp45 imp95)
Guild 8x8 Medida en el AL Resolucioacuten del AL 4ns
45-
40-
35-
30-
25-
20-
15-
( ltD C O o lt) c
-o TJ 03
bullJO C 03
O
10 - i mdash 16 14 12
- i mdash 10
Bits del producto
Figura 313 Transiciones a la salida de los multiplicadores seleccionados y obtenida por Simulacioacuten
67
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Guild 8x8 Resultado de simulacioacuten
(0 ltD C O o w c ffl 1mdash
bull4-raquo
o bulla bullo bullo
co O
90-n
80-
70-
60-
50-
40-
bull 30-
Uuml0-
10-bulli 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
16 14 12 10 8 6 4 2 0
Bits del producto
Figura 314 Transiciones a la salida de los multiplicadores obtenido por medicioacuten con el analizador loacutegico
Dado que las implementaciones originales teniacutean sus salidas registradas se sacaron los
registros (FF) de la salida usando el FPGA Editor de manera que no se altere el resto
de la implementacioacuten Luego se uso un analizador loacutegico (AL) [Tek02] para contar
todas las transiciones a la salida para una serie de 16 pares de operandos que generan
maacutexima actividad a la salida Sin embargo como la resolucioacuten del instrumento es de 4
ns los valores obtenidos son una cota inferior de los verdaderos aunque se supone
que el porcentaje de error se mantiene constante para poder comparar los resultados
obtenidos por este meacutetodo Ademaacutes de realizar estas mediciones se hizo un estudio
ideacutentico en simulacioacuten Los resultados de las Figura 313 y Figura 314 muestran la
cantidad de transiciones en cada bit de salida del multiplicador por simulacioacuten y
medicioacuten respectivamente
Para resumir esta informacioacuten se ha calculado la cantidad deacute transiciones por
operacioacuten (TPO) seguacuten la ecuacioacuten TPO = cantidad_transiaacuteones nuacutemero_de_operadones
Luego para la Figura 315 se ha definido el cociente entre la cantidad de transiciones
Imp4 Imp95 Imp45 Theory
68
Capiacutetulo 3 Experimentos sobre bajo consumo
por operacioacuten seguacuten medicioacuten (TPOM) y la cantidad de transiciones por operacioacuten
seguacuten simulacioacuten (TPOS)
Figura 315 Relacioacuten entre actividad a la salida de los multiplicadores y consumo para implementaciones con similar velocidad
En la Figura 315 se observa que la simple cuenta de transiciones se puede utilizar para
detectar el circuito con menor consumo (los datos son tomados de un conjunto de
implementaciones con velocidades praacutecticamente iguales) En la figura se pueden
observar el consumo el miacutenimo periodo de reloj y la relacioacuten TPOM TPOS (la
cantidad de transiciones por operacioacuten seguacuten medicioacuten sobre la cantidad de
transiciones por operacioacuten seguacuten simulacioacuten) Esto nos permite afirmar que contando
las transiciones espurias que brinda un simulador convencional se puede utilizar como
meacutetrica indirecta para analizar que circuito consume menos
69
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
3224 Correlacioacuten aacuterea-velocidad-consumo (Area-Time-Powei)
No existe una clara correlacioacuten entre estos paraacutemetros Si se comparan los cuatro
multiplicadores (Figura 316) En teacuterminos de velocidad y consumo los resultados
pueden ser separados en dos zonas una de ellas conteniendo los circuitos maacutes
raacutepidos y que menos consumen (VHDL y Wallaceacute) y otro con los que maacutes consumen
y maacutes lentos (Guild y Hatamiati) La tercera variable ocupacioacuten medida en CLBs no
es significativa en teacuterminos de consumo Los circuitos de los conjuntos VHDL y
Guild son los que menos ocupan 54 y 66 CLBs respectivamente teniendo a la vez la
maacutexima brecha de consumo entre ellos Por el contrario Hatamiati y Wallace ocupan
maacutes pero poseen una figura del consumo maacutes ajustada respecto del consumo
Figura 316 Relacioacuten entre actividad a la salida de los multiplicadores y consumo para implementaciones con similar velocidad
70
Capiacutetulo 3 Experimentos sobre bajo consumo
323 Conclusiones de la relacioacuten velocidad - consumo
En esta seccioacuten se estudiaron algunas de las alternativas accesibles para los usuarios
del software de los fabricantes de FPGAs cuando tratan de obtener disentildeos con
menor consumo de energiacutea La idea es que el usuario pueda emplear las herramientas e
informacioacuten disponible a partir de los informes de tiempos generados durante el ciclo
de disentildeo para indirectamente mejorar el consumo Estas recomendaciones se
pueden complementar con las propuestas del trabajo de [Gar99] para el nivel
arquitectoacutenico Las principales conclusiones son
bull Para una topologiacutea dada el circuito con mayor maacutexima frecuencia de
funcionamiento normalmente implica el mejor circuito en teacutermino de
consumo Esta optimizacioacuten se puede obtener de manera gratuita por
ejemplo usando emplazado y rutado repetitivo (KPR - Repetitivo Placement ltampdeg
Routiniquest) o ajustando las opciones de optimizacioacuten
bull No obstante si el disentildeador debe elegir entre diferentes topologiacuteas ni la
velocidad de reloj ni el aacuterea son paraacutemetros por si solos validos para predecir
el ahorro de consumo
bull La cuenta de las transiciones espurias que brinda un simulador convencional
se puede utilizar como meacutetrica indirecta para analizar que circuito consume
menos
bull La relacioacuten entre aacuterea y consumo no parece ser nada evidente Algunas
teacutecnicas que ganan velocidad a expensas de mayor utilizacioacuten de recursos
(opciones del tipo duplicar hardware para disminuir fan-out) contribuyen a
reducir consumo sin ser significativo el aumento de consumo por la mayor
utilizacioacuten de CLBs
71
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
33 Conmutacioacuten de los datos de entrada (propiedad
conmutativa y disentildeo de bajo consumo)
En las primeras clases de aritmeacutetica se menciona la conmutabilidad de las operaciones
baacutesicas es decir el orden de los operandos no altera el resultado del caacutelculo Sin
embargo el disentildeador de circuitos integrados debe cuestionarse el alcance de esta
propiedad cuando uno de los objetivos es la reduccioacuten de consumo de potencia
En esta seccioacuten se muestra que en teacuterminos de consumo de potencia los circuitos
digitales aritmeacuteticos no siempre cumplen la propiedad conmutativa En consecuencia
es posible obtener una reduccioacuten de consumo adicional simplemente permutando las
entradas del circuito El fenoacutemeno se refuerza cuando se cumplen algunas de las
siguientes condiciones el volumen de datos a procesar no es elevado y de caraacutecter no
aleatorio el circuito tiene una implementacioacuten irregular y finalmente los bits de uno
de los datos se distribuyen a traveacutes de liacuteneas globales Para verificar
experimentalmente este fenoacutemeno se han construido y medido multiplicadores
binarios utilizando FPGAS de la serie XC4K y Virtex de Xilinx
Como se mencionoacute en las secciones precedentes dependiendo de la profundidad de
loacutegica del circuito glitches generados en las primeras etapas del circuito producen un
efecto avalancha en la actividad que se constituye en la principal componente del
consumo del circuito [Ped96][Rag96][Rab96][Mee95] Este fenoacutemeno conduce a que
el consumo dinaacutemico variacutee con el orden de los operandos dado que eacuteste modifica la
cantidad de actividad espuria
De lo antedicho se puede deducir que si el layout del circuito no es simeacutetrico y por lo
tanto los retardos de las sentildeales de entrada son diferentes la cantidad de glitches que se
generan cuando se realiza AxB seraacute distinta de la correspondiente a BxA Auacuten asiacute en
teacuterminos de potencia media no se deberiacutea detectar una variacioacuten importante si la
secuencia de operandos fuese suficientemente larga y aleatoria En tal caso cada par
de operandos deberiacutea aparecer repetido varias veces de la forma AxB y BxA Por el
contrario el efecto deberiacutea ser visible en la mayoriacutea de los casos reales de
procesamiento de sentildeal donde existe una fuerte correlacioacuten entre datos sucesivos o
cuando el nuacutemero de vectores a procesar es pequentildeo
72
Capiacutetulo 3 Experimentos sobre bajo consumo
p [ 7 0 ]
b 3 b 2 b l bO a [ 3 0 ]
Figura 317 Arreglo segmentado Hatamian-Cash de 4 bits con entradas b locales y agloacutebales [Boe95]
La asimetriacutea del consumo se puede reforzar por un segundo mecanismo Para ello se
deben combinar dos factores que aparecen a menudo en procesamiento digital de
sentildeal En primer lugar la difusioacuten broadcasi) de uno de los operandos se realiza a traveacutes
de pistas globales y en segundo lugar una de las sentildeales tiene una frecuencia de
variacioacuten menor (por ejemplo los coeficientes de un filtro) En tal caso se reduciraacute el
consumo medio si por las pistas globales (las de mayor capacidad) se introducen los
datos que tienen menor variabilidad Muchos circuitos segmentados (pipelineiacute)
presentan entradas globales y locales En la Figura 317 |Boe95] se muestra un
ejemplo el multiplicador de Hatamian j Casi (por simplicidad su tamantildeo se ha
reducido a 4 bits) cada PE (ProductElemeniacute) estaacute formado por una AND y un sumador
completo (full-adder) Las liacuteneas de entrada a y b son globales soacutelo en la versioacuten
combinacional Si se segmenta (por ejemplo como indican las liacuteneas punteadas) las
entradas de b se transforman en locales al ser seccionadas por los registros de
segmentacioacuten Por lo tanto a medida que aumenta el tamantildeo de palabra aumenta la
diferencia de capacidad entre las dos entradas
73
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
En esta seccioacuten se realizan varios experimentos sobre los argumentos anteriores A
continuacioacuten se resumen las caracteriacutesticas de los circuitos de prueba y maacutes tarde se
presentan los meacutetodos de medida y se muestran los principales resultados
331 Circuitos de pruebas familia 4K
Para demostrar el efecto sobre el consumo de la permutacioacuten de los operandos se han
construido y medido 7 prototipos utilizando FPGAs de Xilinx de la serie XC4K El
arreglo experimental se describe en el Apeacutendice A Las pruebas se han realizado
utilizando cuatro juegos diferentes de vectores Como operacioacuten aritmeacutetica se ha
seleccionado la multiplicacioacuten binaria debido a que es la tarea central en cualquier
circuito de procesado de sentildeal es habitualmente utilizada como benchmark para evaluar
una determinada tecnologiacutea VLSI y finalmente su evolucioacuten puede rastrearse a lo
largo de la historia de las maacutequinas de computacioacuten al menos durante los uacuteltimos 150
antildeos [Gol93]
Las principales caracteriacutesticas de los circuitos de prueba se resumen en la Tabla 35 La
profundidad loacutegica se expresa en cantidad de LUTs en el camino criacutetico Los circuitos
VHDL-12 y Xcore-9 se han obtenidos directamente de las herramientas del
fabricante el primero sintetizado a partir de una descripcioacuten VHDL a nivel
comportamental y el segundo mediante la herramienta de generacioacuten de cores de
Xilinx Complementariamente se incluye un juego de arreglos Hatamian [Hat86]
segmentados con diferentes profundidades de loacutegica
Topologiacutea
Gnild-16 VHDLr12 Wallace-12 Hatamian-8 Hatamian-3 Hatamian-2 Xcore-9
Ref
fGui69l |Xil00al (Wal64l [Hat861 [Hat861 [Hat861 [XilOObl
CLBs
60 56 71 75 112 207 52
FF
32 32 32 54
207 404 96
Prof de loacutegica (max) LUTs
16 12 12 8 3 2 9
Max Frecuencia MHz 210 321 295 258 662 709 781
Tabla 35 Principales caracteriacutesticas de los circuitos de prueba
332 Resultados experimentales familia 4K
En esta seccioacuten se resumen los principales resultados experimentales Los circuitos
han sido implementados usando FPGAs Xilinx modelos XC4010 XC4005 y XC4003
74
Capiacutetulo 3 Experimentos sobre bajo consumo
con encapsulados PLCC84 Han sido compilados con la herramienta Xilinx
Foundation 31i utilizando la opciones de maacuteximum place amp route efforty tiacuteed Todos los
circuitos tienen la ES registrada (con FF de CLBs) Adicionalmente todas las salidas
pasan a traveacutes de un bufferaacutet control de alta impedancia
Todas las medidas fueron realizadas a 2 MHz La reduccioacuten de potencia PR se ha
calculado como la reduccioacuten porcentual del consumo que se obtiene respecto de
circuito original cuando se aplica una determinada modificacioacuten en este caso la
permutacioacuten de los datos de entradas Es decir PR = 100 (Pcriexclgnai-Pmodiexclfiiexclado)Pensad-
3321 Esquema de medicioacuten
Todos los prototipos fueron medidos en la misma placa de prueba utilizando ideacutentica
asignacioacuten de patas (pins) de ES La uacutenica carga a la salida corresponde a la punta de
prueba del analizador loacutegico inferior a 3 pF [Tek02] Por lo tanto todas las versiones
tiene ideacutentica potencia off-chip alrededor de 013 mWMHz por pata de salida (para
nuacutemeros aleatorios) y 018 mWMHz para la secuencia de maacutexima actividad
Se utiliza una FPGA de la serie XC3K (ver apeacutendice A) para generar cuatro juegos
diferentes de vectores cuyas caracteriacutesticas se resumen en la Tabla 36 El consumo
medio se midioacute Indirectamente determinando la corriente de entrada del circuito bajo
prueba Las tres componentes de la potencia (ruta de datos sincronizacioacuten y off-chip)
fueron separadas seguacuten la teacutecnica descrita en el apeacutendice A
Nombre Random-1 Random-8
Toggle-1
Tofgk-8
Descripcioacuten 64 pares de vectores aleatorios Uno de los operandos posee una frecuencia 8 veces menor Conforman 512 pares de valores 16 pares de vectores sintetizados para maximizar la actividad del multiplicador a la entrada y salida del mismo En cada ciclo variacutean del 38 al 81 de los bits de entrada y del 50 al 100 de los bits de salida El operando A posee una frecuencia 8 veces menor Son 128 pares de valores
Tabla 36 Descripcioacuten de los vectores de prueba
3322 Resultados
En la Figura 318 se muestra la reduccioacuten de potencia obtiene en la ruta de datos para
el juego de multiplicadores Hatamian-Cash En todos los casos se obtiene mayores
reducciones de potencia para los vectores que maximizan la actividad en la E S ^ B K ^
Teacutecnicas pata la Reduccioacuten de Consumo en FPGAs
valor de PR para nuacutemeros aleatorios es bajo pero no es cero debido a que la secuencia
se aleja del caso teoacuterico al limitarse a solamente 64 vectores
Hatamian 8
Hatamiexclan_3
Hatamian 2
0 1 2 3 4 5 6 7 8
PR []
Figura 318 Reduccioacuten de consumo Areglos Hatamian-Cashen XC4010PC84
tu
o-7
6-
5-
4-
3-
1 1
bull
- --
1 i
bull
i
i
i
i
i
ti
i
-
jgglfi
4 6 8 10 12 14 Profundidad de Loacutegica
16 18
Figura 319 Reduccioacuten de consumo en funcioacuten de la profundidad de loacutegica de los circuitos XC4010PC84
Por el contrario los vectores de maacutexima actividad enfatizan la diferencia de potencia
producida por el orden de los operandos La mayor actividad en las entradas se
traduce en mayor cantidad de glitches la causa central de esta asimetriacutea La figura
tambieacuten muestra que el efecto es maacutes significativo cuando la profundidad de loacutegica es
76
Capiacutetulo 3 Experimentos sobre bajo consumo
mayor debido al efecto avalancha de los glitcbes Este uacuteltimo fenoacutemeno se repite en la
Figura 319 donde se muestra la reduccioacuten de potencia para todos los circuitos de
prueba Aunque los puntos distan de ser una recta existe una clara correlacioacuten
Utilizando una herramienta informaacutetica [Tod02] se mide la cantidad de transiciones
para un multiplicador YLatamian-8 con la secuencia toggk-8 Esta herramienta obtiene la
cuenta de transiciones en funcioacuten de los datos de salida de un simulador convencional
La Tabla 37 muestra los valores de actividad de cada entrada y salida y resume el total
de actividad comparaacutendolo con los valores correspondientes a la medicioacuten sobre el
dispositivo XC4005
Al igual que en la seccioacuten anterior se pone de manifiesto la utilidad de la cuenta de
transiciones espurias obtenidas por un simulador tradicional como meacutetrica indirecta
del consumo Queda claro ademaacutes que eacutesta meacutetrica nos da una idea de la diferencia de
actividad de una secuencia respecto de la otra pero no puede ser tomada como una
medida exacta de la diferencia de consumo ya que no se tiene en cuenta la capacidad
asociada a cada transicioacuten
Nodo
PflS] Pfl4| P[13] Pfl21 Pflll PflOl P|9| P[8|
AxB 42 54 67 64 69 60 60 61
BxA 42 54 67 64 69 60 60 61
Nodo
P|7| Pf61 Pf51 PIacute41 PP1 P|Z| PIacuteH PfOl
Total Pad_P
AxB 71 69 68 61 48 81 49 38
962
BxA 71 69 68 61 48 81 49 38
962
Nodo
B|7I B[61 B|5| Bffl B|31 B|Z| BIacuteH BfOl
Total Pad_B
AxB 14 11 13 12 13 12 12 13
100
BxA 49 65 81 64 49 80 47 80
515
Nodo
A|7] AIacute61 Af51 Affl A|3| AI2| AHIacute AfOl
Total Pad_A
AxB 49 65 81 64 49 80 47 80
515
BxA 14 11 13 12 13 12 12 13
100
Total nodos analizados
Cantidad Total de Transiciones
Promedio transicioacuten por nodo
Medicioacuten consumo ruta de datos (mWMHz)
AxB
580
47476
8186
213
BxA
580
52158
8993
232
Diferencia
90
90
82
Tabla 37 Actividad de las entradas salidas y totales para la operacioacuten AxB y BxA con vectores de maacuteximo toggle-8
bull ^ i
40 -s-
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
El conjunto de arreglos Hatamian-Cash tambieacuten permiten ilustrar la reduccioacuten de
consumo cuando coinciden las liacuteneas globales con un operando que variacutea con menor
frecuencia Es decir el caso maacutes favorable donde las liacuteneas maacutes cargadas del circuito
tienen menos actividad En la Figura 320 se muestran los resultados Se han elegido
las medidas correspondientes al conjunto de vectores aleatorios (random) para
minimizar un posible enmascaramiento producido por una mayor actividad espuria
En todos los casos el consumo resultoacute miacutenimo cuando el operando de menor
frecuencia se introdujo por la entrada global a[70J Obseacutervese que el efecto es menor
para el arreglo Hatamian_8 el cual tiene solo dos etapas de pipelining Esto hace que la
entraba de datos por b[70] tambieacuten sea global anulaacutendose de este modo la diferencia
entre un caso y otro
PR []
Figura 320 Efecto de las liacuteneas globales XC4010PC84
Finalmente en la Figura 321 se muestra los valores de reduccioacuten de consumo
obtenidos para los otros circuitos Con excepcioacuten del multiplicador de Wallace en los
demaacutes casos el efecto se magnifica cuando los datos producen mayor actividad
espuria
78
Capiacutetulo 3 Experimentos sobre bajo consumo
j l I I I | 1 I 1 l-J-ITII | I 1 I I | I I 1 I | MI I iexclI I I 1 | I I I I
0 1 2 3 4 5 6 7 8
PR []
Figura 321 Reduccioacuten de consumo para diferentes topologiacuteas XC4010PC84
Tal como se menciona anteriormente se realizaron las implementaciones en diferentes
circuitos de la familia Xilinx 4K concretamente sobre un XC4003EPC84
XC4005EPC84 y XC4010EPC84 obtenieacutendose similares resultados en todos ellos En
la Figura 322 se observa las variaciones de consumo para el multiplicador Hatamian-8
para las secuencia toggk-8 y Ratidom-1 en los diferentes circuitos
PR []
Figura 322 Reduccioacuten de consumo para diferentes circuitos familia XC40XXPC84 (multiplicador Hatamian-8)
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
333 Circuitos de pruebas familia Virtex
Para demostrar el efecto de la permutacioacuten de los operandos en Virtex se han
construido y medido 5 multiplicadores de 16 bits y otros 5 de 32 bits utilizando
FPGAs Xilinx de la familia Virtex De forma anaacuteloga a las pruebas sobre XC4K se
han realizado utilizando dos juegos diferentes de vectores uno de maacutexima actividad
en una entrada y dieciseacuteis veces menor en la otra (MaxTqg) y otro con valores
aleatorios pero con diferente frecuencia en una entrada y en la otra (AvgTog) como en
el caso tiacutepico de la multiplicacioacuten de matrices o el de muchos filtros digitales
Circuitos 32 bits
Circuito
Core32
Exp32
Uo32
Sybdquo32
Xst32
Aacuterea (Slices)
580
561
565
571
576
Min period (ns)
482
382
443
474
478
Max Frec (MHz)
207
261
225
211
209
Circuitos 16 bits
Circuito
Core16
Bxp16
LeoH
Syn16
Xst16
Aacuterea (Slices)
157
149
150
152
156
Min period (ns)
230
199
229
221
219
Max Frec (MHz)
434
500
436
452
455
Tabla 38 Principales caracteriacutesticas de los circuitos de prueba Familia Virtex
Cuatro de los circuitos de prueba son multiplicadores descritos de forma
comportamental (behavioral) en VHDL y sintetizado con cuatro sinteuumlzadores
diferentes (Syr Synplify Pro [Syn02] Xsk Xilinx Siacutentesis Technologies [Xil02a] Leo
Leonardo Spectrum [Men02] y Exp FPGA Express [SynOl]) El multiplicador
restante es el obtenido por el generador de circuitos CoreGen [Xil02b] provisto por la
herramienta ISE Todos los circuitos son totalmente secuenciales y estaacuten registrados
en las entradas y las salidas con registros en los slices internos Las caracteriacutesticas de
aacuterea y velocidad de los circuitos se resumen en la Tabla 38
334 Resultados experimentales familia Virtex
El dispositivo utilizado es una Virtex XCV800HQ240 Los detalles del arreglo
experimental asiacute como de la metodologiacutea de medicioacuten se pueden ver en el apeacutendice B
En la Tabla 39 y Tabla 310 se pueden observar las diferencias de consumo para la
80
Capiacutetulo 3 Experimentos sobre bajo consumo
secuencia de maacutexima actividad y actividad promedio (MaxTqg y AvgToiquest) para los
multiplicadores de 16 y 32 bits respectivamente
En las tablas se especifica la componente dinaacutemica del consumo expresado en
mWMhz La tercera columna indica el aumento de consumo de una permutacioacuten
respecto de la otra El signo positivo indica que P(AxB) es mayor P(BxA) en tanto
que el negativo la situacioacuten contraria
Circuitos 32 bits
Core32
Exp32
Letgt32
Syn32
Xst32
MaxTog
P_AxB
3412
2381
3140
3231
3229
P_BxA
2777
2939
2787
3512
2945
P din
2286
-2341
1270
-870
964
AvgXon
P_AxB
1192
956
1170
1004
1171
P_BxA
994
1022
1062
1200
1062
P din
2000
-693
1024
-1956
1024
Tabla 39 Diferencia de consumo AxB vs BxA en multiplicadores de 32 bits
Circuitos 16 bits
Core16
Expioacute
Leo16
Syn16
Xst16
MaxTog
P_AXB
757
642
769
582
721
P_BxA
543
698
601
763
606
P din
3931
-876
2795
-3113
1894
AvffoA P_AXB
245
241
253
218
240
P_BXA
220
253
226
237
230
P d i n
1172
-471
1196
-896
412
Tabla 310 Diferencia de consumo AXB vs BxA en multiplicadores de 16 bits
Se puede observar que en todos los casos existe una importante diferencia de
consumo al invertir el orden de las entradas (hasta un 39 superior) La variacioacuten en
el sentido o direccioacuten de la diferencia de consumo (signo positivo o negativo en la
relacioacuten porcentual) responde al hecho de que cada sintetizador utiliza su propio
algoritmo para construir los multiplicadores Es importante destacar que para cada
sintetizador se observa que el signo de la diferencia de consumo se mantiene tanto
para multiplicadores de 16 y 32 bits como para secuencias de maacuteximo movimiento
(MaxTqg) y movimientos aleatorios (AvgTqg)
81
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
3341 Relacioacuten retardo - consumo
En la Figura 323 se muestra la relacioacuten del consumo promedio de los diferentes
multiplicadores de 32 bits en funcioacuten del retardo lo que refuerza los argumentos del
apartado 32 donde se puede ver una clara correlacioacuten consumo-retardo para ambos
conjuntos de patrones de entrada
11
o bulla n N
F k
o z o bullo ltB lt agt tiacute
10-
09 -
08 -
07
bullbull
bull
bull
bull
bull
u bull
i bull MaxTog
j laquoAvgTog 06
08 09 09 10 10 11 11 12
Consumo Normalizado
Figura 323 Relacioacuten retardo - consumo para los multiplicadores de 32 bits
3342 Uso de herramientas de estimacioacuten de consumo
Con la conjuncioacuten de una simulacioacuten post PlaceampRoute con Modelsim [Men02] y la
herramienta de estimacioacuten de consumo XPOWER [Xpo02] se puede obtener una
estimacioacuten del consumo El objetivo de este apartado es verificar la precisioacuten de la
herramienta Xpower y determinar la utilidad de esta para discernir mejores
implementaciones En el apeacutendice E se describe la utilizacioacuten de la herramienta
Xpower asiacute como algunos scriacutepts para la automatizacioacuten y simplificacioacuten en el uso de
esta herramienta
Todos los circuitos medidos en el arreglo experimental del Apeacutendice B fueron
simulados y estimado su consumo con los mismos patrones de entrada A
continuacioacuten se resumen los resultados
82
Capiacutetulo 3 Experimentos sobre bajo consumo
Circuitos
Cors32
Exp32 Leo32 Syti32 Xst32
Medidas en Placa
AxB BxA Pdif
3412 2777 2286 2381 2939 -2341 3140 2787 1270 3231 3512 -870 3229 2945 964
Xpower
AxB BXA Pdif
574 420 3661 366 443 -2082 561 396 4164 233 385 -6559 616 433 4249
Relacioacuten Xpow medidas
AxB BxA
168 151 154 151 179 142 72 110 191 147
Tabla 311 Relacioacuten medidas mdash estimaciones para multiplicadores de 32 bits y secuencia MaxTog
Circuitos
Core32
Exp32
Uo32
Syriexcl32
Xsi32
Medidas en Placa
AXB BXA Pdif
1192 994 2000
956 1022 -693
1170 1062 1024
1004 1200 -1956
1171 1062 1024
Xpower
AxB BxA Pdif
188 165 1364
150 171 -1417
185 170 882
104 125 -2048
185 178 423
Relacioacuten Xpowmedidas
AxB BxA
157 166
157 168
158 160
103 104
158 167
Tabla 312 Relacioacuten medidas mdash estimaciones para multiplicadores de 32 bits y secuencia AvgTog
Circuitos
Core16
Expioacute
Leoloacute
Synloacute
XstU
Medidas en Placa
AxB BxA Pdif
757 543 3931
642 698 -876
769 601 2795
582 763 -3113
721 606 1894
Xpower
AxB BXA Pdif
125 104 2048
90 106 -1806
121 95 2763
64 79 -2353
114 94 2133
Relacioacuten Xpow medidas AxB BxA
165 191
140 152
158 158
110 103
158 155
Tabla 313 Relacioacuten medidas - estimaciones para multiplicadores de 16 bits y secuencia MaxTog
83
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Circuitos
Coacuterelo
Expioacute
Uo16
SynU
Xst16
Medidas en Placa
AxB BXA Pdif
245 220 1172
241 253 -471
253 226 1196
218 237 -896
240 230 412
Xpower
AXB BxA Pdif
48 44 857
43 45 -588
48 45 556
31 34 -800
45 44 286
Relacioacuten Xpowmedidas AxB BxA
194 199
176 178
188 199
144 142
188 190
Tabla 314 Relacioacuten medidas mdash estimaciones para multiplicadores de 16 bits y secuencia AvgTog
En las tablas anteriores (Tabla 311 Tabla 312 Tabla 313 y Tabla 314) se puede ver
el consumo expresado en mWmHz de consumo dinaacutemico tanto para las mediciones
como para las estimaciones de Xpower En eacutestas tablas se puede observar la diferencia
de consumo AxB vs BxA medidos y estimados asiacute como la diferencia porcentual en
la relacioacuten estimadomedido para cada orden de los operandos La Figura 324 y
Figura 325 muestran la diferencia de consumo estimado y medido pasa los diferentes
circuitos orden de entrada de los operandos (AxB y BxA) y los diferentes patrones
de excitacioacuten (MaxTogy AvgToj) Las principales observaciones son
bull Es importante notar que el signo de la diferencia de consumo se respeta en
todos los casos es decir si las medidas indican que es mejor hacer AXB que
BxA la estimacioacuten viacutea simulacioacuten tambieacuten lo hace Esto permite afirmar que
el uso de esta herramienta de estimacioacuten es adecuado para discernir la
permutacioacuten de las entradas
bull El consumo por estimacioacuten es en promedio un 50 mayor respecto de las
medidas (Figura 324 y Figura 325) Lo cual nos permite concluir que las
estimaciones de consumo dinaacutemico son de alguacuten modo pesimistas Solo el
consumo por estimacioacuten del circuito sintetizado por Synplify [Syn02] es
menor que la media
84
Capiacutetulo 3 Experimentos sobre bajo consumo
El AxB AvgTog bull BxA AvgTog n AxB MaxTog bull BxA MaxTog
250
Core32 Bltp32 Leo32 Syn32 Xst32
Figura 324 Diferencia en el consumo estimado y medido multiplicadores 16 bits
[SAacutexB AvgTog bull BxA AvgTog DAxB MaxTog DBxA MaxTog j
_ 250
Corel 6 Exp16 Leo16 Syn16 Xst16
Figura 325 Diferencia en el consumo estimado y medido multiplicadores de 32 bits
85
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
335 Conclusiones de la conmutacioacuten de datos
En esta seccioacuten se ha analizado en el fenoacutemeno de la conmutatividad en la operacioacuten
de multiplicacioacuten respecto al consumo de potencia Se prueba a traveacutes de diferentes
ejemplos que bajo ciertas condiciones el solo hecho de permutar las entradas tiene un
fuerte impacto en la reduccioacuten de consumo del consumo debido al caacutelculo En la
familia XC4K se utilizaron multiplicadores de 8 bits llegando la diferencia hasta un 8
en el consumo En la familia Virtex con multiplicadores de 16 y 32 bits se llega a
una diferencia de hasta un 39
Las componentes de este desbalance en el consumo puede ser un disentildeo irregular o la
implementacioacuten irregular que se genera al mapear un disentildeo en una FPGA esto
produce que los glitches generados en una secuencia de operaciones no sean iguales al
permutar las entradas Otra componente es el uso de liacuteneas globales (que poseen
mayor capacidad) para uno de los operandos lo que puede generar diferencias en el
consumo Por ello si la secuencia de valores a operar no es aleatoria o la frecuencia de
uno de los operandos es diferente al otro (multiplicacioacuten de matrices operaciones
sobre video filtros etc) conviene analizar el orden de los operandos
Cabe esperar que otros bloques combiacutenacionales cuyas entradas sean conmutativas
tiendan a tener esta caracteriacutestica de desbalance en el consumo Este efecto tambieacuten se
produciraacute en circuitos segmentados cuando la segmentacioacuten produzca que un
operando se propague sobre globales y el otro locales
Se ha validado el uso de herramientas de estimacioacuten del consumo a la hora de elegir la
mejor el orden de entrada de los operandos para la reduccioacuten de consumo Tambieacuten
se observo que una herramienta maacutes simple y por ende maacutes veloz que solo cuente la
cantidad de transiciones en un caso y otro puede ser suficiente para decidir el orden de
las entradas
86
Capiacutetulo 3 Experimentos sobre bajo consumo
34 Efecto de la segmentacioacuten en el consumo
La segmentacioacuten (pipelineacute) es una antigua y eficiente manera de aumentar la
performance de los circuitos popularizada a principio del siglo XX por Henry Ford
en la optimizacioacuten de la cadena de montaje de sus Ford modelo T La relacioacuten del
consumo con eacuteiacute pipelineacute proviene del hecho de que la segmentacioacuten reduce la actividad
espuria (glitches) como se describe maacutes adelante
Si bien los glitches no producen errores en los disentildeos siacutencronos bien disentildeados pueden
ser responsables hasta de un 70 de la consumo del circuito [she92] y como se midioacute
en esta seccioacuten puede superar el 80 de la actividad total Como se describioacute en el
capiacutetulo 2 los glitches pueden ser reducidos baacutesicamente por dos viacuteas por un lado
ecualizando caminos [Sak98] [Ped96] o bien reduciendo la profundidad loacutegica
introduciendo registros [cha92] La relacioacuten profundidad loacutegica con el consumo fue
analizada en detalle en muacuteltiples trabajos [Lei85](Mus95][Boe98][Wil04]
En esta seccioacuten se estudian los efectos de la segmentacioacuten en el consumo En primer
lugar se presentan resultados para multiplicadores sobre diferentes dispositivos de la
familia XC4K (seccioacuten 341) luego se analiza los resultados para multiplicadores de
32 bits implementados en la familia de dispositivos Virtex (seccioacuten 342) y por uacuteltimo
se muestran los resultados para los mismos circuitos implementados en Virtex II
(seccioacuten 343)
341 Medidas sobre XC4K
A fin de comprobar la relacioacuten del consumo respecto de la profundidad loacutegica se
extendioacute el grupo de circuitos Hatamian-Cash [Hat86] del descritos en el apartado 333
a los expuestos en la Tabla 315 Los circuitos no implementados son debido al
tamantildeo de las FPGAs
Los resultados comprueban los conceptos expresadas en [Boe86] respecto de la
relacioacuten del consumo con la profundidad loacutegica (Figura 326) para los diferentes
circuitos de la familia XC4000 Se observa que el miacutenimo consumo se logra para una
segmentacioacuten media (profundidad 4-5 CLBs 4-3 niveles de segmentacioacuten) Cuando la
segmentacioacuten es nula (multiplicador totalmente combinacional) o muy pequentildea la
avalancha de glitches es la principal componente de consumo a medida que se agrega
87
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
segmentacioacuten disminuye la corriente producida por los glitches pero aumenta la
corriente de sincronizacioacuten siendo eacutesta la componente maacutes importante en un circuito
altamente segmentado en la familia XC4K (Figura 327)
Topologiacutea de Circuito
Hatamian-15
Hatamian-8
Hatamian-5
Hatamian-4
Hatamian-3
Hatamian-2
CLBs
80
75
87
97
112
207
FFs
32
54
101
153
207
404
Prof Log LUTs
15
8
5
4
3
2
Retardos (ciclos clk)
2
3
5
6
9
17
BW normalizado (MHz) XC4010
167
258
420
536
662
707
XC4005
160
293
472
546
754
mdash
XC4003
157
373
537
424
mdash
mdash
Tabla 315 Principales caracteriacutesticas de las diferentes topologiacuteas de prueba XC4K
pound 25 -E
iquest20 -o
| 15
o I 10 ugt c o
deg 5-i 1
Figura 326 Consumo respecto de la profundidad loacutegica para diferentes dispositivos de la familia XC4K
Cabe mencionar que el aumento en el porcentaje de ocupacioacuten para un circuito suele
ser contraproducente en teacuterminos de velocidad y consumo ya que comienzan a ser
XC4010
laquomdash XC4005
XC4003
7 9 11 Profundidad Loacutegica
13 15
88
Capiacutetulo 3 Experimentos sobre bajo consumo
escasos los recursos y por ende el rutado suele ser maacutes complejo y de peor
performance Obseacutervese el caso del Hatamian-4 cuya ocupacioacuten de la XC4003EPC84
es del 97 de los CLBs alliacute la maacutexima velocidad de operacioacuten sufre un importante
deterioro respecto a los demaacutes circuitos reconfigurables en tanto el consumo tambieacuten
se ve afectadoa
La Figura 327 muestra la relacioacuten del consumo de sincronizacioacuten y la ruta de datos
respecto de la profundidad loacutegica para el dispositivo XC4010 Se observa que para la
segmentacioacuten maacutexima (LD=1) la corriente de sincronizacioacuten puede llegar a ser
alrededor de un tercio del consumo dinaacutemico total Para el circuito totalmente
combinacional la corriente de sincronizacioacuten no es cero debido a la utilizacioacuten de
registros a la entrada y salida del circuito
25
20
15
N
E
E
Tiacuteo E 3 c 5 o
o 0
bullmdashSincronizacioacuten
bullmdash Ruta de datos
-mdash Total Power
5 7 9 11
Profundidad Loacutegica
13 15
Figura 327 Relacioacuten del consumo de sincronizacioacuten y de la ruta de datos en funcioacuten de la profundidad loacutegica en XC4010
89
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
342 Mediciones sobre Virtex
Se han construido multiplicadores tipo shifi amp add de 32 bits con distintos niveles de
segmentacioacuten La Tabla 316 muestra las principales caracteriacutesticas de los circuitos
Los circuitos son registrados a la entrada y salida lo que agrega dos ciclos de reloj para
obtener el resultado El nivel de segmentacioacuten se expresa como la latencia medida en
ciclos de reloj menos dos
Se utilizaron dos tipos de patrones de excitacioacuten uno de actividad aleatoria y otro de
maacutexima actividad El consumo en funcioacuten de la profundidad loacutegica se puede observar
en la Figura 328 Aquiacute se puede ver que la segmentacioacuten no solo disminuye el camino
criacutetico de manera praacutecticamente lineal sino que tambieacuten reduce el consumo casi
linealmente Solo una segmentacioacuten maacutexima (una LUT de profundidad loacutegica)
aumenta levemente el consumo respecto de una segmentacioacuten menor (dos LUTs de
profundidad loacutegica) El efecto que se podiacutea observar en la familia 4K de un
importante aumento de la potencia de sincronizacioacuten aquiacute tiene un peso relativo
mucho menor
Circuitos
mult_pipe32
mult_pipel6
mult_pipel2
mult_pipell
mult_pipelO
mult_pipe8
mult_pipe7
mult_pipe6
mult_pipe5
mult_pipe4
mult_pipe3
mult_pipe2
mult_pipel
Slices
545
578
611
611
644
644
677
710
743
776
875
1040
1584
Flip Flops
128
224
320
320
416
416
512
608
704
800
1088
1568
3104
Prof Loacutegica (LUTs)
32
16
12
11
10
8
7
6
5
4
3
2
1
Latencia (ciclos clk)
2
3
4
4
5
5
6
7
8
9
12
17
33
Min period (ns)
1234
670
535
488
456
397
361
327
286
266
213
187
156
Max freq (MHz)
81
149
187
205
219
252
277
305
350
375
470
534
642
Tabla 316 Principales caracteriacutesticas de los circuitos de prueba para Virtex
90
Capiacutetulo 3 Experimentos sobre bajo consumo
0 4 8 12 16 20 24 28 32 Logic Depth (LUTs)
Figura 328 Consumo dinaacutemico respecto de la profundidad loacutegica en Virtex
mdashbullmdashConsumo mdashlaquomdashAacuterea Max periodo -bullmdashMax Frecuencia iexcl
0 4 8 12 16 20 24 28 32
Figura 329 Consumo aacuterea retardo normalizados respecto de la profundidad loacutegica en Virtex
En la Figura 329 se puede ver el consumo aacuterea periodo y maacutexima frecuencia
normalizados respecto de la profundidad loacutegica Se puede observar el efecto de la
segmentacioacuten como al disminuir la profundidad loacutegica (aumentando la segmentacioacuten)
decae el retardo del camino criacutetico casi de forma lineal al igual que sucede con el
consumo El aacuterea total del circuito crece lentamente dado que los slices poseen
91
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
registros que se reutilizan en la sincronizacioacuten con un impacto muy deacutebil en el aacuterea
total Cuando la cantidad de niveles de segmentacioacuten son muy grandes y por tanto la
cantidad de registros utilizados mucho mayor que los slices utilizados para implementar
la loacutegica siacute se nota el aumento de aacuterea total
3421 Actividad espuria (glitches)
Con el objeto de estimar cuantitativamente el aumento de la actividad producida por
los glitches dentro de la ruta de datos se han simulado algunos circuitos despueacutes del
emplazado y rutado (post ltiquestr place and route simulation) teniendo en cuenta ademaacutes los
retardos internos de la FPGA (usando el fichero SDF - Standard Delay Format
|Men03b]) Luego con herramientas internas del simulador Modelsim [Men03a] tales
como toggle add toggle reset y toggle report [Men03c] se ha realizado un script para contar
las transiciones necesarias y las espurias
Para el multiplicador sin segmentacioacuten (mult_pipe32) la lista de conexiones (netlisl)
analizada posee 26167 nodos Utilizando la secuencia de maacutexima actividad se encuentra
transiciones de estados en que la actividad espuria (glitches) llega a superar el 802 de la
actividad total
3422 Uso de herramienta de estimacioacuten de consumo
Se ha utilizado la herramienta XPOWER [Xpo02] (Apeacutendice F) para estimar el
consumo de los multiplicadores descritos anteriormente En la Tabla 317 se puede
ver un resumen del consumo dinaacutemico para los datos medidos respecto de los
estimados tanto para estiacutemulos de maacuteximo movimiento (max_tog) como para
estiacutemulos de actividad aleatoria (avgjog) La columna sincro muestra el consumo
debido a los registros y al aacuterbol de reloj (consumo de sincronizacioacuten) en tanto que la
siguiente el porcentaje de consumo sincronizacioacuten respecto al consumo aleatorio En
la Figura 330 se observan la comparacioacuten de los datos de consumo medido respecto
de los estimados
En este caso se observa que la estimacioacuten con XPOWER no ofrece resultados
demasiado precisos sobre todo en la versioacuten totalmente combinacional (mult_pipe32)
donde la estimacioacuten ofrece valores hasta un tercio menores que los medidos Las
estimaciones para segmentaciones intermedias sobreestiman el consumo
92
Capiacutetulo 3 Experimentos sobre bajo consumo
Circuito
mult_pipe32
mult_pipel6
mult_pipel2
mult_pipell
mult_pipelO
mult_pipe8
mult_pipe7
mult_pipe6
mult_pipe5 mult_pipe4 mult_pipe3 mult_pipe2 mult_pipel
Consumo Medido (mWMHz)
Max_tog
2018
1059
747 738
628
579
503
487
411 385 346 297 337
Avg_tog
1950
968
680 652
554
500
418
402
337 316 278 240 266
Sincro
158
172
198
249
222
216
237
251
271 284 328 403 573
Sincro Avg_tog
08
18
29 38
40
43
57
62
80 90
118 168 215
Consumo Estimado (mWMHz)
Max_tog
1245
1195
1085
1100
1035
1070
1020
975
890
885 670 475 335
Avg_tog
1480
1410
1295
1290
1225
1275
1160
1130
1025 985 710 455 315
Sincro
05
05
08
08
08
08
10 10
10 13 13 18 25
Sincro Avg_tog
03
04
06
06
06
06
09
09
10
13 18 38 79
Tabla 317 Consumo medido respecto del estimado para multiplicadores segmentados
I 250
0 4 8 12 16 20 24 28 32 Profundidad Loacutegica
Figura 330 Consumo medido y estimado en funcioacuten de la profundidad loacutegica
93
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
343 Mediciones sobre Virtex II
Se han construido los mismos multiplicadores tipo shift amp add de 32 bits con
diferentes niveles de segmentacioacuten que anteriormente para los dispositivos Virtex La
Tabla 318 muestra las principales caracteriacutesticas de los circuitos Al igual que en
Virtex los circuitos son registrados a la entrada y salida lo que agrega dos ciclos de
reloj para obtener el resultado
Se utilizaron dos tipos de patrones de excitacioacuten uno de actividad aleatoria y otro de
maacutexima actividad El consumo en funcioacuten de la profundidad loacutegica se puede observar
en la Figura 328 donde tambieacuten se muestra el consumo de sincronizacioacuten
La figura que relaciona la profundidad loacutegica con el consumo es praacutecticamente igual
en Virtex y Virtex II La profundidad loacutegica de miacutenimo consumo es igualmente de dos
LUTs Tambieacuten queda de manifiesto la baja influencia del consumo de sincronizacioacuten
sobre la segmentacioacuten en estas dos arquitecturas Por uacuteltimo cabe destacar que el
consumo en Virtex II se reduce respecto de Virtex II en un factor de entre 3 y 5
dependiendo de la profundidad loacutegica
Circuitos
mult_v2_p32
mult_v2_pl6
mult_v2_pl2
mult_v2_pl0
mult_v2_p8
mult_v2_p7
mult_v2_p6
mult_v2_p5
mult_v2_p4
mult_v2_p3
mult_v2_p2
mult_v2_pl
Slices
585
587
618
654
653
686
721
756
793
886
1057
1616
FUp Flops
167
232
326
425
424
520
618
716
816
1098
1584
3136
Prof Loacutegica (LUTs)
32
16
12
10
8
7
6
5
4
3
2
1
Latericia (ciclos clk)
2
3
4
5
5
6
7
8
9
12
17
33
Min period (ns)
972
536
405
348
296
264
229
193
161
148
107
79
Max freq (MHz)
103
186
247
287
338
379
436
519
621
676
931
1273
Tabla 318 Principales caracteriacutesticas de los circuitos de prueba para Virtex II
94
Capiacutetulo 3 Experimentos sobre bajo consumo
Figura 331 Consumo respecto de la profundidad loacutegica en Virtex II
95
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
344 Conclusiones sobre la segmentacioacuten
La segmentacioacuten (pipelineacute) se asocia al aumento de velocidad y en otras tecnologiacuteas de
circuitos integrados posee un fuerte impacto en el aacuterea y el consumo En las FPGAs
gracias a los registros distribuidos por el circuito generalmente no suele degradar tanto
el aacuterea en tanto que el consumo producto de la reduccioacuten de los guumltches se mejora
ostensiblemente
La principal observacioacuten es que la segmentacioacuten disminuye notablemente el consumo
en el caso de la familia 4K una segmentacioacuten intermedia 4-5 LUTs es lo ideal en
tanto que para las familias Virtex y Virtex II una segmentacioacuten cercana al maacuteximo
posible es lo ideal Los miacutenimos consumo se observan con dos LUTs en estas
familias
En los circuitos analizados en la familia 4K tal como recomienda el fabricante no es
aconsejable tener un porcentaje de ocupacioacuten superior al 90 dado que la escasez de
recursos hace degradar la calidad del rutado introduciendo mayores demoras y tal
como se medio aquiacute aumentando el consumo
En la familia Virtex y Virtex II se ha observado la relacioacuten directa que posee la
profundidad loacutegica con la degradacioacuten de velocidad y el consumo De utilizar una
versioacuten totalmente combinacional a segmentar de manera oacuteptima (puta estos circuitos
profundidad loacutegica 2 mdash LD = 2) se puede reducir el consumo dinaacutemico a un 12 del
original en Virtex y a un 24 en Virtex II
Por otra parte se ha puesto a prueba la herramienta de estimacioacuten de consumo
Xpower [Xpo02] no obtenieacutendose resultados aceptables Cabe destacar que esta
herramienta esta en continuo desarrollo y se observan resultados diferentes de versioacuten
a versioacuten (ver comentario F6 en el apeacutendice F)
Por uacuteltimo destacar la diferencia que se observa entre Virtex y Virtex II La mejor
estructura en el rutado de Virtex-II hace que el aumento de actividad espuria por la
profundidad loacutegica solo multiplique por cuatro el consumo respecto de LD=2 en
tanto que en Virtex el consumo dinaacutemico se multiplica por ocho Relacionado con la
evolucioacuten tecnoloacutegica cabe destacar que el consumo se reduce en un factor de entre 3
y 5 en Virtex II respecto de Virtex dependiendo de la profundidad loacutegica
96
Capiacutetulo 3 Experimentos sobre bajo consumo
35 Observaciones en la disminucioacuten del consumo registrando
las entradas y salidas
El hecho de registrar tanto las entradas como las salidas provee una forma significativa
de reduccioacuten de consumo a traveacutes de la eliminacioacuten de glitches Por otra parte en
sistemas que interactuacutean con otros dispositivos montados sobre un PCB donde las
capacidades son mucho mayores es altamente deseable eliminar estos pulsos espurios
fuera del circuito
351 Experiencias sobre la familia XC4K
Un primer experimento fue sobre el disentildeo de un multiplicador guild con sus salidas
registradas en los pads de salida y sin alterar el placement and routing (a traveacutes del
FPGA editor) quitar el registro en las patas Esto produce un aumento del orden del
7 del consumo dinaacutemico para vectores de maacuteximo movimiento
Luego se cambio la forma de registro de las entradas y salidas En un principio se
utilizaban registros en los IOBs (Input Output Blocks) y luego se comenzoacute a registrar
dentro del circuito a traveacutes de los flip-flops que se posee dentro de los CLBs Esta
teacutecnica no hizo aumentar la cantidad de CLBs dado que los CLBs para el caacutelculo
poseen Flip-Flops sin utilizar pero el consumo disminuyo notablemente En un
principio no pareciacutea muy razonable pero la explicacioacuten fue la siguiente
^ ^ ^ _ laquo bull _ b I w w I l ^ ^ X J l
Figura 332 Distribucioacuten de la liacutenea global de reloj a)Flip-flop en las patas de entrada salida b) usando los Flip-Flop de los CLBs
97
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
El uso de pads con registro hace que el aacuterbol de reloj se distribuya por toda la FPGA
para llegar a toda la periferia donde se encuentran las patas aumentando notablemente
la capacidad del aacuterbol de reloj Para el este caso A fan-out de la bnea global de reloj es
de 32 (16 entradas y 16 salidas) en tanto cuando se registran las entradas en los CLBs
el fan-out de reloj es de solo 16 ya que cada CLB posee 2 registros y se usan
conjuntamente Ademaacutes cada entrada posee MIL fan-out promedio de 16 CLBs lo que
hace que las pistas utilizadas para llegar a los CLBs sean maacutes largas que llegar al centro
del circuito con una uacutenica sentildeal y registrarlo alliacute mismo En las figuras se puede
observar este hecho En la Figura 332 la liacutenea de reloj necesaria para alcanzar todos
los pads es claramente superior a la necesaria para alimentar a los 16 CLBs que
registran sentildeales en la Figura 333 se muestra la distribucioacuten de uno de los bits de los
operandos (concretamente alt7gt) y se ve la diferencia en recursos utilizadas
1 V
Figura 333 Distribucioacuten de la liacutenea de entrada alt7gt con fan-out de 16 a)Flip-flop en las patas de entrada salida b) usando los Flip-Flop de los CLBs
En la Figura 334 se puede observar el consumo dinaacutemico para diferentes alternativas
obseacutervese que registrando dentro de los CLBs se logra el menor consumo Registrar
en los pads acarrea un aumento del consumo en alrededor de un 14 en tanto si no se
lo registra puede consumir en el orden del 21 maacutes
)
98
Capiacutetulo 3 Experimentos sobre bajo consumo
O bull o CO
co E
10-
09-
o uuml E c 5 o E 3 W c o O
08-
07-
06
i
GuildC Multiplicador con registros en los IOBs Guildnr Guild con registro dentro de los CLBs Guildsr Sin registrar las salidas en el nivel esquemaacutetico GuildS2 Sin registro ni en las entradas ni salidas (sin clk) Guildes Sin registro de salida con el FPGA editor el
registro de las patas
1 GuildC
1 Guildnr
1 Guildsr
1 GuiexclldS2 Guildes
Multiplicadores
Figura 334 Consumo normalizado con registros en IOBs y CLBs
Al estar registradas las salidas del generador de vectores de test y que tanto el
generador como el circuito analizado compartan el reloj hace que no tenga
praacutecticamente influencia el hecho de quitar los registros a la entrada
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
352 Experiencias sobre la familia Virtex
El efecto de los glitches al registrar en las patas o dentro de los slices se refuerza en el
caso de la familia Virtex dado que la alimentacioacuten del nuacutecleo de la FPGA y la periferia
son diferentes Para el caso del circuito bajo prueba un XCV800hq240 la tensioacuten del
nuacutecleo es de 25 V y la periferia de 33V
Los circuitos de prueba son multiplicadores shif eacuter add de 32 bits registrados en las
entradas y las salidas estos circuitos tienen una gran profundidad loacutegica y
consecuentemente una gran cantidad de glitches los que magnifican el efecto En la
Tabla 319 se puede observar la diferencia de utilizar los registros en los slices (Slice-
FF) en los IOB de entrada (IOB-FF) quitando los registros de salida (No-FF-out) y
por uacuteltimo quitando los registros de entrada tambieacuten (No-FFs)
Tipo Secuencia
Max_Tog
AvgJTog
Circuito
Slice-FF IOB-FF No-ff-out No-FFs
Slice-FF IOB-FF
No-ff-out
No-FFs
I core (mA)
296 300 305 305
249
251 255
254
Iperif (mA)
13 108 219 217
12
85 179
175
PCore (mW)
740 750 763 763
623 628
638
635
PPerif (mW)
43 356 723 716
40 281
591
578
Pot Total (mW)
783 1106 1485 1479
662
908
1228
1213
Aumento consumo
~ 41 89 88
- 37
85
83
Tabla 319 Diferencia de consumo dinaacutemico dependiendo del tipo de registros en Virtex Consumo dinaacutemico a 5 MHz
En la tabla se muestran los resultados para dos tipos de secuencia de entrada por un
lado una secuencia denominada de maacuteximo movimiento (Max_Tog) y por otra una
denominada de movimientos aleatorios (AvgJTog) Para cada circuito se muestra la
corriente dinaacutemica del core y la periferia y el respectivo consumo (recordar que uno se
alimenta a 25 y el otro a 33 V) En la uacuteltima columna se muestra el aumento de
consumo de cada alternativa respecto del uso de registros en los slices El resultado de
quitar los flip-flops a la entrada consume menos potencia que con ellos Esto se
justifica en el hecho que los datos de entrada producidos por el generador de patrones
no poseen glitches en tanto que los registros consumen cierta potencia de
sincronizacioacuten
100
Capiacutetulo 3 Experimentos sobre bajo consumo
353 Experiencias sobre la familia Virtex II
Al igual que en Virtex el efecto de los glitcbes al registrar en las patas o dentro de los
slkes se refuerza en el caso de la familia Virtex II puesto que en este caso tambieacuten la
alimentacioacuten del nuacutecleo de la FPGA y la periferia son diferentes Para el caso del
circuito bajo prueba un XC2V1500fg676-6 la tensioacuten del nuacutecleo es de 15 V y la
periferia y tensioacuten auxiliar son de 33V Los circuitos de prueba son multiplicadores
shifampaddampz 16 bits registrados en las entradas y las salidas
La Tabla 320 muestra los resultados del consumo dinaacutemico al utilizar registros en los
slices (Slice-FF) en los IOB de entrada (IOB-FF) quitando los registros de salida (No-
FF-oul) y por uacuteltimo quitando los registros de entrada tambieacuten (No-FFs)
Tipo Secuencia
Avg_Togl
Avg_Tog2
Circuito
Slice-FF IOB-FF
No-ff-out
No-FFs
Slice-FF
IOB-FF No-ff-out No-FFs
I core (mA)
159 192
215
214
180 212 243 242
Iperif (mA)
91 90
240
239
80 80
227 227
Pcore (mW)
239
288
323 321
270 318 365 363
Pperif (mW)
300
297 792
789
264
264 749 749
Pot total (mW)
539
585
1115
1110
534 582
1114 1112
Aumento consumo
mdash 9
107
106
9 109 108
Tabla 320 Diferencia de consumo dinaacutemico dependiendo del tipo de registros en Virtex II Consumo dinaacutemico a 10 MHz
En la tabla se muestran los resultados para dos tipos secuencia de entrada
pseudoaletorias Para cada circuito se muestra la corriente dinaacutemica del core y la
periferia y el respectivo consumo dinaacutemico operando a 10 MHz En la uacuteltima columna
se muestra el aumento de consumo de cada alternativa respecto del uso de registros en
los slices Al quitar los jlip-flops a la entrada el circuito consume menos potencia que
con ellos Esto se justifica en el hecho que los datos de entrada producidos por el
generador de patrones no poseen glitches en tanto que los registros consumen cierta
potencia de sincronizacioacuten Cabe destacar que la diferencia observada al pasar los Jlip-
flops de los slices a los IOBs en Virtex es mucho menor en el caso de Virtex II
101
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
354 Conclusiones del registro de entradas y salidas
Esta seccioacuten tiene relacioacuten con el apartado anterior respecto de la segmentacioacuten y la
consiguiente disminucioacuten del consumo producto de la reduccioacuten de glitches La
existencia de registros en los datos de salida tiene un fuerte impacto en el consumo las
capacidades internas del chiacutep son del orden de los femto-faradios en tanto que los
PCBs se pueden medir en pico-faradios con la consiguiente implicacioacuten en el
consumo debido a los glitches Para los ejemplos medidos en la familia 4K existe un
aumento del 21 quitando los registros en tanto que en Virtex del orden del 90 y
en Virtex II en torno al 110
En el caso de la eleccioacuten del tipo de flip-flop para registrar las salidas entre los
disponibles en los suumlcesCLBs y los de los IOBs existe una gran diferencia desde el
punto de vista del consumo En el caso de la famila 4K para multiplicadores de 8 bits
puede haber una diferencia del orden del 14 en tanto que en Virtex para
multiplicadores de 32 bits y teniendo en cuenta el efecto que produce la diferencia de
tensioacuten de alimentacioacuten del core y la periferia puede llegar casi a ser un 40 superior
Para Virtex II la influencia es algo menor en torno al 9
Los registros a la entrada no tuvieron gran relevancia en estas pruebas dado que los
datos de entrada a la FPGA eran praacutecticamente carentes de movimientos espurios En
un disentildeo que interactueacute con el mundo real es altamente aconsejable de utilizarlo no
solo por la disminucioacuten de consumo sino tambieacuten por la fiabilidad de los datos (evitar
metaestabilidades etc)
102
Capiacutetulo 3 Experimentos sobre bajo consumo
36 Reduccioacuten del consumo por deshabilitacioacuten de partes
inactivas del circuito
La idea es simple las partes del circuito que no estaacuten produciendo datos uacutetiles pueden
ser desconectadas o deshabilitadas Esto se enmarca en el concepto de evitar
derroches de la seccioacuten 23 Para este fin se pueden aplicar diferentes teacutecnicas las que
se estudian y evaluacutean en eacutesta seccioacuten
361 Introduccioacuten
En los circuitos siacutencronos tipo ASIC quizaacutes la idea maacutes conocida sea la inhabilitacioacuten
del reloj (gatiacuteng cock) [Ish95][Ben96][Lan97][She00][Pon93] De este modo el reloj no
llega a la parte del circuito que se desea deshabilitar reduciendo el consumo de
sincronizacioacuten y bloqueando asiacute mismo el funcionamiento de los registros
Otra alternativa es bloquear los datos de entrada de modo que al no cambiar los
estiacutemulos no se generaraacuten transiciones en los nodos internos y por tanto se reduciraacute el
consumo Basados en estas ideas existen teacutecnicas como el aislamiento de operadores
(operand isolatiacuteon) [Muumln00][Syn03a] la pre-computacioacuten (pre-computatiotiacute) [AU94] oacute
guarded evaluation (evaluacioacuten cautelosa) [Tiv95]
data out data_ou(
Figura 335 Ejemplo de la utilizacioacuten de aislamiento de operandos
En el aislamiento de operandos los bloques combinacionales son deshabilitados
cuando no se requiere su utilizacioacuten (Figura 335) La herramienta para disentildeo de
ASIC Power Compiler de Synopsys [Syn04] junto al Physical Compiler [Syn03a]
implementa esta funcionalidad Solo basta con declarar una directiva del sintetizador
en el coacutedigo HDL En el caso de la precomputacioacuten la reduccioacuten del consumo se
logra a traveacutes de bloquear los datos que no intervienen en el computo En [Ali94] se
103
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
proponen varias arquitecturas y formas de caacutelculo de las funciones de deshabilitacioacuten
La teacutecnica de guarded evaluation es similar a la anterior utilizando para el bloqueo latches
La estructura general de un del circuito (o parte de el) que aplica el bloqueo de datos
tendraacute una estructura como la que se muestra en la Figura 336 La generacioacuten de
sentildeales de bloqueo (blocking signali) depende del tipo de aplicacioacuten que se esteacute
desarrollando Esto puede ser maacutequina de estados o un circuito puramente
combinacional ademaacutes puede o no depender de las entradas a los circuitos o ser
simplemente ser una secuencia fija
Sentildeales de
Bloqueo
Subcirculto Combinacional 1
Subclrcuito Combinacional 2
mdashbull f
Blo
que Subcirculto
Combinacional K
Figura 336 Esquema para la deshabilitacioacuten de partes del circuito
El esquema de la Figura 336 es faacutecilmente extensible a circuitos combinacionales
donde la sentildeal de inhabilitacioacuten actuaraacute (directa o indirectamente) sobre todos los
registros del circuito A continuacioacuten se analizan las diferentes alternativas para el
bloqueo de los datos
362 Teacutecnicas de inhabilitacioacuten en FPGAs
A continuacioacuten se describen aquellas teacutecnicas de inhabilitacioacuten de datos que mejor se
adaptan al marco tecnoloacutegico Estas teacutecnicas son triviales de aplicar y no representan
maacutes que unas pocas liacuteneas de coacutedigo HDL para llevarlas a cabo
104
Capiacutetulo 3 Experimentos sobre bajo consumo
3621 Bloqueo por inhabilitacioacuten del reloj
En los circuitos digitales siacutencronos implementados en FPGA la potencia de
sincronizacioacuten puede representar una parte considerable del consumo total (seccioacuten
313) Una teacutecnica ampliamente utilizada y difundida en el disentildeo ASIC es la conocida
como inhabilitacioacuten del reloj o gated clock Se han publicado importantes reducciones
del consumo con esta teacutecnica [Ish95][Ben96][Mon99] Pero por otra parte Xilinx
recomienda contundentemente no utilizar esta teacutecnica en FPGAs [Xil03a] La razoacuten es
la posible aparicioacuten de gliiches sobre la sentildeal de reloj que actuacutea sobre el FF por no
utilizar los canales globales de rutado (Figura 337) Maacutes aun existen herramientas
comerciales de siacutentesis que automaacuteticamente transforman el gated clock en una
estructura orientada a las FPGAs [Syn03b]
En los dispositivos Virtex II II Pro y Spartan-3 existe un tipo de buffertswAuacuteplexot de
reloj global denominado BUFGMUX [Xil03b] que permite cambiar entre dos relojes
sin glitches Esto permite disentildear circuito que funcionen con dos relojes diferentes Si
una de las entradas del componente BUFGMUX es fija a 0 (oacute 1) esto se transforma en
un buffer global de reloj con clock enable (BUFGE) Esto permite implementar gated clock
sobre todo un aacuterbol de reloj Cabe recordar que los dispositivos Virtex II poseen 8
aacuterboles de reloj globales por cuarto de la FPGA iexclXil04b]
Enable 1 Clock __J~
D Q
gt
Clock Enable
Clock
Enable
Clock Enable
Output
Figura 337 Riesgo de doble captura en la implementacioacuten de gated clock en FPGAs [Xil03a]
3622 Bloqueo de datos mediante la sentildeal de habilitacioacuten
Es el uso aconsejado por Xilinx |Xil03a] para implementar el comportamiento del
gated clock sin riesgo de dobles capturas originadas por los glitches que se puedan
originar en la liacutenea de reloj (Figura 337 y Figura 338) Estos dispositivos FDCE (flip
105
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
flop tipo D con chip enableacute) estaacute disponible en todos los dispositivos de Xilinx desde
XC3K en adelante
Entre las ventajas maacutes importantes es la forma simple de generar estos elementos en
cualquier disentildeo asiacute como la pequentildea influencia en el aacuterea dado que los registros con
CE estaacuten distribuidos en toda la loacutegica (2 FF por slice) La penalidad en el retardo es
muy baja ya que es el rutado maacutes el tiempo de captura del FF La desventaja desde el
punto de vista del consumo es que mientras no se estaacute capturando datos el aacuterbol de
reloj sigue funcionando y consecuentemente consumiendo
Using a
Enable
dock
Figura 338 Forma de implementar el bloqueo de datos equivalente al gated clock seguacuten Xilinx [Xil03a]
3623 Bloqueo de datos con latches
La utilizacioacuten de registros activos por nivel (laiacuteches) en vez de activos por flanco posee
la ventaja que la sentildeal de reloj solo se utiliza cada vez que se cambia de modo
transparente a modo captura Si como es de esperar esta frecuencia es mucho menor
que la del reloj tambieacuten se estaraacute ahorrando consumo de sincronizacioacuten La
utilizacioacuten de latches tambieacuten es atractivo dado que es aplicable a circuitos totalmente
combinacionales
Los registros en los slices pueden ser configurados tanto como FF o latches en Virtex
Virtex IlII-Pro Spartan IIIII no asiacute en la familias maacutes antiguas XC4KSpartan
donde la forma de lograr latches es utilizando LUTs configuradas como memorias
La penalidad en aacuterea es pequentildea por la abundancia de registros distribuidos en la
FPGA en tanto la penalidad en tiempo de un latch en modo transparente es del
mismo orden de magnitud que atravesar una LUT
Iback Path
D Q
gt
Clock
Enable
Output
J L
106
Capiacutetulo 3 Experimentos sobre bajo consumo
3624 Bloqueo de datos con puertas loacutegicas
Otra alternativa para el bloqueo de los datos es la utilizacioacuten de puertas AND (u OR)
De este modo la sentildeal de habilitacioacuten a cero (respectivamente a uno) haraacute que todas
las entradas se mantengan a cero (respectivamente a uno) independientemente del
valor de entrada original (Figura 339)
Esta teacutecnica puede generar transiciones espurias cada vez que se inhabilita o habilita el
circuito Por ejemplo una entrada que no cambia y cuyo valor es uno
(respectivamente cero) bloqueada con una puerta AND (respectivamente OR) si se
genera una habilitacioacuten y una deshabilitacioacuten provocaraacute dos transiciones innecesarias
En el entorno de FPGAs puede ser interesante estaacute teacutecnica puesto que puede no
requerir aacuterea extra ni aumentar el retardo si se logran intercalar la puerta AND (u OR)
dentro de las LUTs que implementan la loacutegica Otro punto a favor de esta teacutecnica es
que funciona en circuitos totalmente combinacionales
enable mdash
x(0)-Q_xb(o)
_=D~xb(1) x(1)
x(2) - t Q - Xb(2)
x(n-
enable mdashi x(0)
x(1)
x(2) l j gt xb(2)
1 H Q - xb(n-1) xltn-1 ) q ] gt xb(n-1)
Figura 339 Inhabilitacioacuten de las entradas con puertas a puertas AND b Puertas OR
3625 Uso de buffers de tercer estado
Esta alternativa tiene varios inconvenientes en FPGA El primero es el mayor
consumo asociado a la desconexioacuten y conexioacuten de las sentildeales Adicionalmente agregan
un retardo bastante maacutes importante que las alternativas resentildeadas en los puntos
anteriores y por uacuteltimo no todas las FPGAs disponen de abundantes buffers de tercer
estado Por ejemplo la liacutenea de bajo coste Spartan 3 (Xil04c] solo tiene buffers de tercer
estado en las patas de salida y no dentro del arreglo de slices
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
363 Resultados de las teacutecnicas de deshabilitacioacuten
Para evaluar las teacutecnicas de deshabilitacioacuten se ha construido un circuito con dos
bloques aritmeacuteticos (multiplicadores) maacutes una loacutegica de seleccioacuten que utiliza el
resultado de un bloque u otro (Figura 341) Luego se aplicaron las diferentes teacutecnicas
expuestas anteriormente con el fin de evaluar la disminucioacuten del consumo La Figura
341 muestra el ejemplo de la alternativa de utilizar sentildeales de inhabilitacioacuten CE
(seccioacuten 3622) La ruta de datos usa operandos de 16 bits y para la medicioacuten del
consumo se utilizo una secuencia aleatoria de entrada
Clk
Caacutelculo 1
Caacutelculo 2 Sfl-Loacutegica de Seleccioacuten
Figura 340 Circuito original para la evaluacioacuten de las teacutecnicas de deshabilitacioacuten de partes inactivas
Figura 341 Modificacioacuten del circuito para la evaluacioacuten de las teacutecnicas de deshabilitacioacuten de partes inactivas utilizando inhabilitacioacuten con CE
Para la familia Virtex se utiliza el dispositivo XCV800hq240-6 en tanto que para
Virtex II un arreglo XC2V1500fg676-6 La Tabla 321 resume los resultados para el
dispositivo de la familia Virtex en tanto la Tabla 322 lo hace para el dispositivo de la
108
Capiacutetulo 3 Experimentos sobre bajo consumo
familia Virtex II Los circuitos expuestos en las tablas son los descritos
anteriormente es decir bloqueo de datos por sentildeal de habilitacioacuten (ck_eri) de la
seccioacuten 3622 bloqueo de datos con latches (JatcR) de la seccioacuten 3623 bloqueo por
inhabilitacioacuten del reloj (gate_clk) de la seccioacuten 3621 bloqueo de datos con puertas
loacutegicas atids ors) de la seccioacuten 3624 y por uacuteltimo uso de buffets de tercer estado
(tbufs) de la seccioacuten 3625
Circuito
normal
clk_ce
latch
gate_clk
ands ors tbufs
Aacuterea
slices
334 342
357
342
357 356 324
4-LUT
597
597
597
599 662 661 597
regist
81
104
136
103
75 74 71
latch
-
-
64 -
--
-
aumento
00
24
69
24 69 66
-30
Retardo (ns)
periodo
240
244
228
316
250 243 308
aumento
00
04
-12
76
10 03 68
Consumo (mWMHz)
dinaacutemico
175
97 108
100
99 103 118
Ahorro -
457
386
429
449 414 329
Tabla 321 Resultados para la deshabilitacioacuten de circuitos en Virtex
Los resultados expuestos en las tablas muestran una muy baja influencia en aacuterea muy
poco impacto en retardo e importantes reducciones de consumo para todas las
alternativas La teacutecnica maacutes atractiva y simple de aplicar es la de utilizar la sentildeal de
inhabilitacioacuten CE (clk_ce) La teacutecnica de gated dock en Virtex II ofrece buenos
resultados utilizando el componente especiacutefico BUFGMUX aunque la penalidad en el
retardo no es despreciable La alternativa de utilizar puertas ANDs es otra alternativa
simple de utilizar que ademaacutes reporta buenos resultados Por uacuteltimo la alternativa de
los buffers de tercer estado no solo degrada el camino criacutetico fuertemente sino que
ofrece los peores resultados en cuanto al ahorro de consumo
Circuito
normal clk_ce latch gate_clk
ands ors
tbufs
Aacuterea slices
327 342 358 342 355
355
324
4-LUT
596 596 598 596
660 660
596
regist
74 104 136 104 74 74
71
latch -
-
64 ---
-
aumento
00 46 95 46 86 86
-09
Retardo (ns)
periodo
167 162 162 162
166 166
179
aumento
00 -05 -05 -05 -02 -02
11
Consumo(mWMHz) dinaacutemico
45 24 29 26 27
30
30
Ahorro --
467 367
433 400
333
333
Tabla 322 Resultados para la deshabilitacioacuten de circuitos en VirtexII
109
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
364 Conclusiones de las teacutecnicas de deshabilitacioacuten
Dejar que partes inactivas del circuito generen consumo es claramente un derroche
que se debe evitar Las teacutecnicas descritas en las secciones 362 fueron evaluadas
obteniendo importantes reducciones de consumo
La teacutecnica maacutes simple de implementar y que mejores resultados ofrece tanto en Virtex
como Virtex II es la inhabilitacioacuten de registros con la sentildeal CE La alternativa de
utilizar puertas ANDs es otra alternativa simple de utilizar que ademaacutes reporta buenos
resultados
La teacutecnica de gated dock en Virtex II ofrece buenos resultados en la reduccioacuten de
consumo utilizando el componente especiacutefico BUFGMUX aunque la penalidad en el
retardo no es despreciable Esta teacutecnica gana relevancia cuando se tiene largos
periodos de inactividad ya que elimina tambieacuten el consumo de sincronizacioacuten
Por uacuteltimo la alternativa de los buffers de tercer estado no solo degrada el camino
criacutetico fuertemente sino que ofrece los peores resultados en cuanto al ahorro de
consumo
Debido a la gran cantidad de registros distribuidos en la FPGA la implementacioacuten de
estas teacutecnicas de inhabilitacioacuten de partes inactivas tiene un escaso impacto en el aacuterea y
la velocidad
110
Capiacutetulo 3 Experimentos sobre bajo consumo
37 Conclusiones y recomendaciones a nivel disentildeador
Este capiacutetulo examinoacute diferentes experimentos llevados cabo sobre el consumo en
FPGAs con el objeto de determinar relaciones en el consumo y consejos a nivel
disentildeador Aquiacute se ha examinado la relacioacuten de la tensioacuten y la frecuencia en el
consumo la influencia de la corriente estaacutetica y la corriente de sincronizacioacuten la
relacioacuten velocidad-consumo la conmutatividad de datos el efecto aacuteuacutepipeline y el uso
de registros en general Finalmente se analizaron y cuantificaron las alternativas para la
inhabilitacioacuten de partes inactivas de un circuito
Se han presentado experimentos sobre dispositivos XC4000 Virtex y Virtex II Estos
dispositivos comparten la estructura baacutesica de LUTs de 4 entradas aunque
tecnoloacutegicamente han sufrido una gran evolucioacuten La mayor parte de los experimentos
muestran que las teacutecnicas propuestas son independientes del dispositivo utilizado es
decir las conclusiones para una familia de dispositivos es aplicable a otras A
continuacioacuten se detallan los puntos maacutes importantes del capiacutetulo
De la relacioacuten de la tensioacuten y la frecuencia en el consumo
bull Se han corroborado la linealidad del consumo con la frecuencia y su
dependencia cuadraacutetica con la tensioacuten en las tres familias de dispositivos
estudiadas Si bien esta es una conclusioacuten obvia (sigue la ecuacioacuten 24) es
indispensable corroborar este hecho experimentalmente como punto de
partida de las futuras mediciones Existen trabajos en el marco tecnoloacutegico de
las FPGA que sugieren una dependencia de tercer orden de Vcc [GarOO] la
que no ha sido corroborada en estas mediciones
De la comente estaacutetica en el consumo
bull Se ha visto un fuerte incremento en la corriente estaacutetica en las tecnologiacuteas
maacutes modernas En los dispositivos de la familia XC4K y Virtex la corriente de
estaacutetica son del mismo orden de magnitud a pesar que el dispositivo Virtex
tiene una capacidad unas ochenta veces mayor El salto a la tecnologiacutea Virtex
II conlleva un incremento del consumo estaacutetico aunque no tanto como lo
predicho por las herramientas de estimacioacuten de consumo
111
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Del consumo de sincronizacioacuten
bull Claramente se observa una menor influencia relativa de esta componente en
los dispositivos maacutes modernos En XC4K cada flip-flop extra implica un
consumo de unos 30 uWMHz en tanto que en Virtex se reduce hasta 15
pWMHz y para Virtex II puede estar por debajo de 01 iWMHz
bull A su vez desde el punto de vista de la relacioacuten consumo sincronizacioacuten sobre
consumo dinaacutemico total se observa una menor influencia en los dispositivos
maacutes modernos Por ejemplo en un multiplicador con maacutexima segmentacioacuten
en XC4K la corriente de sincronizacioacuten representa maacutes del 30 en tanto
que Virtex es un 17 yen Virtex II se reduce hasta un 12
De la relacioacuten velocidad-consumo
bull Para una topologiacutea dada el circuito con mayor maacutexima frecuencia de
funcionamiento normalmente implica el mejor circuito en teacutermino de
consumo Esta optimizacioacuten se puede obtener de manera gratuita por
ejemplo usando emplazado y rutado repetitivo (RPR - Repetitivo Vlacement ltamp
Routing) o ajustando las opciones de optimizacioacuten
bull Ntildeo obstante si el disentildeador debe elegir entre diferentes topologiacuteas ni la
velocidad de reloj ni el aacuterea son paraacutemetros por si solos validos para predecir
el ahorro de consumo
bull La cuenta de las transiciones espurias que brinda un simulador convencional
se puede utilizar como meacutetrica indirecta para analizar que circuito consume
menos dentro de una misma topologiacutea
Del efecto de la conmutatividad
bull Se prueba a traveacutes de diferentes ejemplos que bajo ciertas condiciones el solo
hecho de permutar las entradas tiene un fuerte impacto en la reduccioacuten de
consumo del consumo debido al caacutelculo En la familia XC4K se utilizaron
multiplicadores de 8 bits llegando la diferencia hasta un 8 En la familia
Virtex con multiplicadores de 16 y 32 bits se llega a una diferencia de hasta
un 39
112
Capiacutetulo 3 Experimentos sobre bajo consumo
bull Las componentes de este desbalance en el consumo puede ser un disentildeo
irregular o la implementacioacuten irregular que se genera al mapear un disentildeo en
una FPGA esto produce que los glitches generados en una secuencia de
operaciones no sean iguales al permutar las entradas Otra componente es el
uso de liacuteneas globales (que poseen mayor capacidad) para uno de los
operandos lo que puede generar diferencias en el consumo Por ello si la
secuencia de valores a operar no es aleatoria o la frecuencia de uno de los
operandos es diferente al otro (multiplicacioacuten de matrices operaciones sobre
video filtros etc) conviene analizar el orden de los operandos
bull Cabe esperar que otros bloques combinacionales cuyas entradas sean
conmutativas tiendan a tener esta caracteriacutestica de desbalance en el consumo
El uso de herramientas de estimacioacuten del consumo (y aun solo de la actividad)
puede ser de utilidad a la hora de elegir la mejor el orden de entrada de los
operandos para estos casos
De la Segmentacioacuten
bull La principal observacioacuten es que la segmentacioacuten disminuye notablemente el
consumo en el caso de la familia 4K una segmentacioacuten intermedia (4-5
LUTs) es lo ideal en tanto que para la familias Virtex y Virtex II una
segmentacioacuten cercana al maacuteximo posible resulta ser lo ideal
bull En las FPGAs gracias a los registros distribuidos por todo el dispositivo la
aplicacioacuten de la segmentacioacuten no suele degradar demasiado el aacuterea en tanto
que el consumo producto de la reduccioacuten de los movimientos espurios
glitches) se mejora ostensiblemente
bull En las familias Virtex y Virtex II se ha observado la relacioacuten directa que posee
la profundidad loacutegica con la degradacioacuten de velocidad y el consumo De
utilizar una versioacuten totalmente combinacional a segmentar de manera oacuteptima
(para estos circuitos - profundidad loacutegica 2) se puede reducir el consumo
dinaacutemico hasta un 12 del original en la familia Virtex y a un 24 en la
familia Virtex II
113
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
De los registros a la Entrada j Salida
bull La existencia de registros en los datos de salida tiene un fuerte impacto en el
consumo las capacidades internas del chip son del orden de los femto-
faradios en tanto que los PCBs se pueden medir en pico-faradiacuteos con la
consiguiente implicacioacuten en el consumo de los glitches Para los ejemplos
medidos en la familia 4K existe un aumento del 21 quitando los registros
en tanto que en Virtex del orden del 90 y en el dispositivo Virtex II
estudiando supera el 110
bull En el caso de la eleccioacuten del tipo de flip-flop la registrar las salidas entre los
disponibles en los slicesCLBs y los de los IOBs existe una gran diferencia
desde el punto de vista del consumo En el caso de la famila 4K para
multiplicadores de 8 bits puede haber una diferencia del orden del 14 en
tanto que en Virtex para multiplicadores de 32 bits y teniendo en cuenta el
efecto que produce la diferencia de tensioacuten de alimentacioacuten del core y la
periferia puede llegar casi a ser un 40 superior
De la inhabilitacioacuten departes inactivas del circuito
bull Dejar que partes inactivas del circuito generen consumo es claramente un
derroche que se debe evitar Las teacutecnicas de inhabilitacioacuten descritas en las
secciones 362 son faacutecilmente aplicables en el marco tecnoloacutegico
bull La teacutecnica maacutes simple de implementar y que mejores resultados ofrece tanto
en Virtex como Virtex II es la inhabilitacioacuten de registros con la sentildeal CE La
alternativa de utilizar puertas ANDs es otra alternativa simple de utilizar que
ademaacutes reporta buenos resultados
bull La teacutecnica degated dock en Virtex II ofrece buenos resultados en la reduccioacuten
de consumo utilizando el componente especiacutefico BUFGMUX aunque la
penalidad en el retardo no es despreciable Esta teacutecnica gana relevancia
cuando se tiene largos periodos de inactividad ya que elimina tambieacuten el
consumo de sincronizacioacuten
bull La alternativa de los buffers de tercer estado no solo degrada el camino criacutetico
fuertemente sino que ofrece los peores resultados en cuanto al ahorro de
consumo
114
Capiacutetulo 3 Experimentos sobre bajo consumo
bull Debido a la gran cantidad de registros distribuidos en la FPGA la
implementacioacuten de estas teacutecnicas de inhabilitacioacuten de partes inactivas tiene un
escaso impacto en el aacuterea y la velocidad
115
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
38 Referencias del Capiacutetulo
[AlcOO] J Alcalde J Rlus and J Figueras Experimental techniques to measure current power and energy in CMOS integrated circuiacutets Proceedings ofXV Conference on Design of Circuit and Integrated Systems (DCIS2000) Montpellier France November 2000
[AU94] M Alidina J Monteiro S Devadas A Gosh M Papaefthymiou Precom-putation-Based sequential logic optimization for Low-Power IEEE Vety Latge Scale Integration (VLSI) Systems Journal Vol 2 num4 pp426-435 December 1994
[And04] J H Anderson F N Najm T Tuan Active Leakage Power Optimization for FPGAs Ttvelfth International Symposium on Field Programmable Gate Arrays (FPGA 2004) pp33 - 41 Monterrey California Feb 2004
[Ben96] LBenini PSiegel and GDe Micheli Automatic synthesis of low-power gated-clock finite-state machines IEEE Transaction on Computer Aided Design of Integrated Circuit vol15 Issue 6 pp 630- 643 June 1996
|Boe96] E Boemo Contribution to the Design of Fine-graiacuten Pipelined VLSI Arrays Tesis doctoral ETSI Telecomunicacioacuten Universidad Politeacutecnica de Madrid Enero 1996
[Boe98] E Boemo S Lopez-Buedo C Santos J Jauregui and J Meneses Logic Depth and Power Consumption A Comparative Study Between Standard Cells and FPGAs Proc XIIIDCIS Conference (Design of Circuit and Integrated Systems) Madrid Universidad Carlos III November 1998
[Cha92] A Chandrakasan S Sheng and R Brodersen Low-Power CMOS Digital Design IEEE Journal of Solid-State Circuits Vol 27 No 4 pp 473-484 April 1992
[Don03] Monica Donno Alessandro Ivaldi Luca Benini Enrico Macii Clock-Tree Power Optimization based on RTL Clock-Gating Proceedings of40th ACM Design Automation conference (DAC 2003) Anaheim California USA June 2003
[Eto03] Emi Eto and Lyman Lewis Local Clocking Resourses in Virtex II Devices Xilinx Application Note Xapp609 (V10) January 2003
[Gar99] A Garda W Burleson and J Danger Power Consumption Model of Fidd Programmable Gate Arrays Proceedings of FPU99 in LNCS Springer-Verlag September 1999
[Gol93] H Goldstine The Computer From Pascal to von Newman Princeton University Press New Jersey 1993
116
Capiacutetulo 3 Experimentos sobre bajo consumo
[Gui69] H H Guild Fully Iterative Fast Array for Binary Multiplication and Addition Electronic Letters pp263 Vol5 Ndeg12 June 1969
|Hat86] M Hatamian and GLCash A 70-MHz 8-bit x 8 bit Parallel Pipelined Multiplier in 25-um CMOS IEEE Journal of Solid-State Circuits August 1986
[IseOlj ISE Xilinx 4 ISE 4 Releacutease Notes and Installation Guide - 0401965 2001 available at -wwwxilinxcom
[Ish95] Tohru Ishihara Hiroto Yasuura Some Experimental Results on Low Power Design with Gated Clock IPSJ SIGNotes Design Automation Abstract No0781995
pCao02] J Kao S Narendra and A Chandrakasan Subthreshold leakage modeling and reduction techniques In IEEE International Conference on Computer-Aided Design pages 141-1482002
[Lan97] T Lang E Musoll and J Cortadella Individual Flip-Flops with Gated Clocks for Low Power Datapaths IEEE Trans on Circuits and Systems 27 Analog and Digital SignalProcessing Vol44 No 6 June 1997
[Lei95] J Leiten J van Meerbegen and J Jess Analisys and Reduction of Glitches in Synchronous Networks Proceedings ofEuropean Design and Test Conference EDampTC 1995 pp1461-1464 New York IEEE Press 1995
[Liu04] Michael Liu Wei-Shen Wang and Michael Orshansky Leakage Power Reduction by Dual-Vth Designs Under Probabilistic Analysis of Vth Variation International Symposium on Loiv Power Desing (ISLPED04) Newport Beach California USA August 2004
[Mee95] J Leijten J Meerbengen and J Jess Analysis of Reduction of Glitches in Synchronous Networks Proceedings oIEEE Europearaquo Design and Automation Conf(EDAC95) IEEE Press 1995
[Men02] Mentor Graphics LeonardoSpectrum Bookcase v2002a 2002 wwwmentorcom
[Men03a] Mentor Graphics ModelSim SE Users Manual Versioacuten 57d wwwmentorcom May 2003
iexclMen03b] Mentor Graphics ModelSim SE Users Manual Versioacuten 57d Chapter 14 -Standard Delay Format (SDF) Timing Annotation May 2003
[Men03c] Mentor Graphics ModelSim SE Command Reference Versioacuten 57d toggle Add May 2003
[Men99] L Mengiacutebar M Garda D Martiacuten and L Entrena Experiments in FPGA Characterization for Low-power Design Proceedings of IV Conference on Design of Circuits and Integrated Systems (DCIS 99) Palma de Mallorca Spain 1999
[Mod02] Model Technologies Modelsim SE user Manual October 2002 available at wwwmodelcom
117
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
[Mon99] J C Monteiro Power optimization using dynamic power management In Procedding ofthe XH Symposium on Integrated Circuits and Systems Design (ICSD) pp 134-139 Sep 1999
[MuumlnOO] M Muumlnch BWurth R Mehra J Sproch and N Wehn Automating RT-Level Operand Isolation to Minimize Power Consumption in Datapaths Design Automation and Test in Europe (DATE 2000) Paris France March 2000
[Mus95] E Mussol and J Cortadella Low-Power Array Multiplier with Transition-Retaining Barriers Proc PATMOS95 Fifth Int Workshop pp 227-235 Oldenburg October 1995
[Naj94] F Najm A Survey of Power Estimacioacuten Techniques in VLSI Circuits IEEE Transaction on VLSI Systems Vol 2 number 4 pp 446-455 December 1994
[Nar03] S Narendra D Blaauw A Devgan F Najm Leakage issues in IC design trends estiacutemation and avoidance Proc of International Conference on Computer Aided Design (ICCAD) 2003
[Ped96] Massoud Pedram Power Minimization in IC Design Principies and Applications ACM Transaction on Design Automation of Electronic Systems Vol 1 No 1 Jan 1996
[Ped97] Massoud Pedram Design Technologies for Low Power VLSI in Enciclopedia of Computer Science and Technology vo 36 Marcel Dekker Inc pp 73-961997
[Rab96] Jan M Rabaey Exploring the Power Dimensioacuten In Proceeding of Custom Integrated Circuit Conference pp 215-220 May 1996
[Rag96] Anand Raghunathan Sujit Dey and Niraj K Jha Glitch Analysis and Reduccioacuten in Register Transfer Level Power OptimIacute2ation 33rd ACM Design Automation Conference (DAC96) Las Vegas Nevada1996
[Sak98] T Sakuta W Lee and P Balsara Delay Balanced Multipliers for Low-PowerLow-Voltage DSP Cores in Low-Pomr CMOS Design A Chandrakasan andK Brodersen (Eds) IEEE Press 1998
[SheOO] R Shelar H Narayanan and M Desai Orthogonal Partiacutetioning and Gated Clock Architecture for Low Power Realization of FSMs IEEE International ASICSOC conference Sep 2000 pp 266-270
[She92] A Shen A Gosh S Devadas y IacuteC Keutzer On average Power Dissipatiacuteon and Random Pattern Testabiliacutety of CMOS Combinatiacuteonal Logic Networks Proceeding of International Conference on Computer Aided Design (ICCAD-92) pp402-407 IEEE Press 1992
[SynOl] Synopsis Inc FPGA Express 361 User Guide Agosto 2001 available at wwwsynopsiscomfpga
118
Capiacutetulo 3 Experimentos sobre bajo consumo
[Syn02] Synpicity Inc Synplify Pro 71 Online Documentation April 2002 Available at wwwsynplicitycom
[Syn03] Synplicity inc Gated Clock Conversioacuten with Synplicity Syndicated Vol 2 Issue 4 2003 available at wwwsynplicitycom
[Syn03a] Synopsys inc Power Compiler Physical Compiler Data Sheet Low power Synthesis with Power Compiler 2003 available at wwwsynopsyscom
[Syn04] Synopsys inc Power Compiler Data Sheet Automatic Power Management within Galaxytrade Design Platform 2004 available at wwwsynopsyscom
[Syn99] Synopsis inc FPGA Express User Guide versioacuten 231999 FPGA Express home page httpwwwsynopsyscomproducts fpgafpga_expresshtm
[Tek02] Tektronix inc TLA 700 Series Logic Analyzer User Manual available at httpwwwtektronixcom 2002
[Tiw95] Vivek Tiwari Sharad Malik and Pranav Ashar Guarded evaluation pushing power management to logic synthesisdesign International Symposium on Low Power Electronics and Design pp 221-226 California USA 1995
[TodOO] E Todorovich G Sutter N Acosta E Boemo and S Loacutepez-Buedo End-user low-power alternatives at topological and physical leveacuteis Some examples on FPGAs ~XV Conference on Design ofCircuits and Integrated Systems (DCIS 2000) Le Corum Montpellier France November 21-24 2000
[Tod02] E Todorovich M Gilabert G Sutter S Lopez-Buedo and E Boemo A Tool for Activity Estimation in FPGAs Lecture Notes in Computer Science Vol2438pp340-349 Berliacuten Springer-Verlag 2002
[Wall64] C Wallace A Suggestion for a Fast Multiplier IEEE Transaction on Electronic Computenpp)4-17 February 1964
[WIacute104] Steven Wilton Su-Shin Ang Wayne Luk The Impact of Pipelining on Energy per Operation in Field-Programmable Gate Arrays Proceedings oflth Field-Programmable Logic and Applications (FPL04) LNCS 3203 pp 719-718 Antwerp Belgium AugustSeptember 2004
[XilOOa] Xilinx inc Software Manual on line Synthesis and Simulation Design Guide 31i available at httpsupportxilinxcom 2000
[XilOOb] Xilinx corp Software Manual on line CORE generator Guide 31 available at httpsupportxilinxcom 2000
[Xil02a] Xilinx Inc Xilinx Synthesis Technology (XST) User Guide available at wwwxilinxcom 2002
puumll02b] Xilinx Inc Core Generator Guide mdash ISE 5 available at wwwxilinxcom 2002
[Xil03a] Xilinx inc Data Feedback and Clock Enable Development system design guide Chapter 2 Design Flow 2003
119
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
[Xil03b] Xilinx inc Data Feedback and Clock Enable Development system design guide Chapter2 Design Flow 2003
[Xil04a] Xilinx Inc Xilinx Virtex-II Web Power Tool Versioacuten 220 available at httpwwwxilinxcomcgi-binpower_toolweb_power_toolpl
[Xil04b] Xilinx Inc Virtex-II Platform FPGAs Functiacuteonal Description Data sheet DS031 (v33) June 242004 Available at wwwxilinxcom
[Xil04c] Xilinx Inc Xilinx Online Documentation Library Guide V61 - Global Clock MUX Buffer 2004 Available at httpwwwxilinxcom
[XIacute195] Xilinx Inc Power Considerations in Technical Conjerence and Seminar Series 1995
[Xpo02] Xpower Xpower getting started Releacutease versioacuten 4203Iacute 2002 available at supportxilinxcom
[Xpo03] Xpower Xpower gettiacuteng started Releacutease versioacuten 5103i 2003 available at supportxilinxcom
[Xpo04] Xpower Xpower getting started Releacutease versioacuten 6203Iacute 2004 available at supportxilinxcom
120
Capiacutetulo 4 Reduccioacuten de Consumo en Maacutequinas de Estado
En este capiacutetulo se examina la reduccioacuten de consumo en maacutequinas de estados finitos
(Finite State Machine - FSM) implementadas en FPGAs El capiacutetulo comienza con una
revisioacuten de las estrategias utilizadas para la reduccioacuten de consumo en maacutequinas de
estados (seccioacuten 41) maacutes adelante en la seccioacuten 42 se muestran resultados
experimentales en la codificacioacuten de maacutequinas de estados En la seccioacuten 43 se
describe una teacutecnica desarrollada en esta tesis para la particioacuten de maacutequinas de estados
y para finalizar en la seccioacuten 44 se enumeran recomendaciones para la reduccioacuten de
consumo en maacutequinas de estado
41 Estrategias para reduccioacuten de consumo en maacutequinas de
estados
Las principales teacutecnicas para la reduccioacuten de consumo en maacutequinas de estados se
basan en tres teacutecnicas la minimizacioacuten o reduccioacuten de estados la forma en que se
codifican los estados y a la descomposicioacuten en varias submaacutequinas de estados A
continuacioacuten se describen estas alternativas
121
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
411 Minimizacioacuten de estados
El problema de reduccioacuten o minimizacioacuten de estados es comuacuten a la minimizacioacuten de
aacuterea en los circuitos y ha sido amplia y matemaacuteticamente estudiado La reduccioacuten de
estados trae aparejado la reduccioacuten en aacuterea la cantidad de interconexiones asiacute como
los registros necesarios Existen muacuteltiples herramientas informaacuteticas que realizan la
minimizacioacuten de estados una de las maacutes populares es STAMINA [Hac91] que se
distribuye con el paquete SIS [Sen92] basando los algoritmos de minimizacioacuten
propuestos en [Pau59] [Hac91]
412 Asignacioacuten de estados (state assignment encodiacuteng)
Las teacutecnicas de asignacioacuten de estados es quizaacutes la teacutecnica maacutes extendida para la
reduccioacuten de consumo en maacutequinas de estados finitos El objetivo principal es reducir
la cantidad de transiciones entre estados
4121 Enfoques tradicionales para la codificacioacuten de estados
Los meacutetodos tradicionales de codificacioacuten de estados estuvieron orientados a reducir
fundamentalmente aacuterea o eventualmente retardos Por ejemplo la herramienta NOVA
implementa la codificacioacuten oacuteptima en dos niveles [VIacute190] mientras que el sistema de
asignacioacuten de estados MUSTANG implementa la asignacioacuten para muacuteltiples niveles
[Dev88] La herramienta JEDI [Lin89] es un programa simboacutelico general de
codificacioacuten (es decir codifica entradas salidas y estados) orientado a implementacioacuten
con redes multinivel Esta herramienta se distribuye con el paquete de siacutentesis de
circuitos secuenciales SIS [Sen92] desarrollo por la Universidad de California
Berkeley
Dado que estos meacutetodos tradicionales estaban orientados a implementaciones tipo
ASIC y minimizacioacuten de aacuterea estas codificaciones generaban una cantidad miacutenima de
Jlip-flops pero funciones de codificacioacuten grandes
4122 Aproximaciones para asignacioacuten de estado de bajo consumo
Los trabajos de asignacioacuten de estados para bajo consumo parten del caacutelculo
probabiliacutestico de transiciones de estados y actividad de conmutacioacuten [Tsu94a] La idea
comuacuten de los diferentes enfoques es la reduccioacuten del promedio de conmutaciones a
122
Capiacutetulo 4 Consumo en Maacutequinas de Estado
traveacutes de la minimizacioacuten de la distancia de Hamming en las transiciones maacutes
probables Benini y De Micheli [Ben95a] utilizan una descripcioacuten probabiliacutestica de la
FSM que modela el grafo de transicioacuten de estados (STG) como una cadena de Markov
y resuelven el problema de asignacioacuten con miacutenima actividad usando Uog2 laquo1 bits
donde n es el numero de estados Noth y Kolla utilizan un meacutetodo basado en aacuterboles
de recubrimiento (Spanzng Trees) cuya caracteriacutestica maacutes importante es que no solo se
limitan a codificaciones de |log2 laquo1 bit sino que la solucioacuten puede utilizar entre |log2 n
y n bits Otras contribuciones interesantes en el tema son [wu00][Tsu94b][Mar00]
4123 Asignacioacuten de estados en FPGAs
Los trabajos de investigacioacuten antes mencionados fueron concebidos para circuitos
integrados tipo gate arrays o estaacutendar cells Los fabricantes de FPGAs y de herramientas
de siacutentesis utilizan One Hot como la codificacioacuten por defecto para maacutequinas de estado
[Xil00a][Exp99] La codificacioacuten One Hot utiliza tantos registros como estados a
codificar con un uacutenico bit a 1 y todos los demaacutes a cero Este sistema de codificacioacuten
permite crear FSMs maacutes eficientes en FPGA en teacuterminos de aacuterea y profundidad loacutegica
(velocidad)
Las FPGAs poseen muchos registros pero la generacioacuten de funciones a traveacutes de
tablas look up estaacute limitada a unos cuantos bits de ancho La codificacioacuten One Hot
incrementa la cantidad aacuteampJlip-Jlop utilizados (uno por estado) pero decrece la cantidad
de loacutegica combinacional ademaacutes la distancia de Hamming es siempre dos
independientemente de la cantidad de estados Otra ventaja que posee eacutesta
codificacioacuten es la facilidad para implementar la loacutegica de siguiente estado con lo que
es atractiva para maacutequinas de estado grandes No obstante para maacutequinas pequentildeas
las codificaciones binarias pueden tener mejores resultados
413 Descomposicioacuten de maquinas de estado FSM partitioning o
descompositioriacute)
En la descomposicioacuten de maacutequinas de estados se trata de dividir la maacutequina en otras
maacutes pequentildeas comunicadas entre si Las maquinas maacutes pequentildeas han de ser maacutes
faacuteciles de asignar estados por separado que todas juntas Ademaacutes si la divisioacuten se
realiza correctamente la mayor parte del tiempo solo una de ellas ha de estar
funcionado pudieacutendose desactivar las demaacutes
123
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Utilizar esta teacutecnica plantea dos problemas a resolver en primer termino realizar la
divisioacuten de la maquina original en N submaacutequinas de modo que las transiciones entre
ellas sean miacutenimas En segundo termino se debe resolver la forma en que se ha de
desactivar a las N-l maquinas que se encuentran inactivas En la seccioacuten 44 se estudia
en profundidad la aplicacioacuten de esta teacutecnica en FPGAs
42 Experimentos sobre codificacioacuten de maacutequinas de estados
en FPGAs
En esta seccioacuten se describen los experimentos realizados sobre la codificacioacuten de bajo
consumo en maacutequinas de estados siacutencronas sobre FPGAs Se han estudiado cuatro
sistemas de codificacioacuten En primer lugar el tradicional sistema binario de
codificacioacuten luego el sistema One-Hot propuesto por los fabricantes de FPGAs maacutes
tarde un sistema de codificacioacuten que minimiza las funciones de salida y finalmente un
sistema denominado Two-Hot Como banco de pruebas (Benchmarks) se han utilizados
las maacutequinas de estados del MCNC [Lis88] y del consorcio PREP [PreOO] Una
descripcioacuten maacutes detallada se encuentra en el Apeacutendice D
421 Exper imentos
Los experimentos se llevaron a cabo sobre cuatros sistemas de codificacioacuten dos
sistemas densamente codificados y otros dos escasamente codificados los que se
describen a continuacioacuten
bull Binario (Bin) Es el tradicional meacutetodo de codificacioacuten en que a cada coacutedigo
binario se le asocia un estado Se utilizan Tlog2 n registros para almacenar los
n estados
bull One-Hot (OH) Es la codificacioacuten por defecto en FPGAs donde se utiliza raquo
registros para codificar raquo estados y donde solo un registro esta a uno y los
demaacutes todos a cero Posee la ventaja de simplificar la loacutegica de codificacioacuten de
proacuteximo estado a expensas de aumentar el uso de registros
bull Out-oriented (Out-0) Es un estilo de codificacioacuten provisto en la herramienta de
codificacioacuten de estados JEDI [Lin89] que realiza una codificacioacuten binaria
124
Capiacutetulo 4 Consumo en Maacutequinas de Estado
(utiliza |log2 laquo1 registros) que minimiza la cantidad de loacutegica para las funciones
de salida
bull Two-Hot (TH) Es un intento por reducir la cantidad de registros sin perder la
facilidad de codificacioacuten de la funcioacuten de proacuteximo estado Aquiacute se utilizan dos
bits a uno y el resto a cero lo que requiere | loga n registros para codificar n
estados
Claramente Binario y Out-oriented son las alternativas llamadas densamente codificadas
(por el uso que realizan de las posibles codificaciones sobre los registros utilizados) en
tanto que One-Hot y Two-Hot son las consideradas codificaciones dispersas o poco
densas
Ex5 i 2 o 2 p 16 s 4 00 SO -1 SO 10 SO 00 SI 01 SI
e
KISS example
SO S2 SO SO S2
11 00 11 00 11
Figura 41 Ejemplo coacutedigo KISS
Los experimentos de esta seccioacuten se base en 26 maacutequinas de estados del banco de
pruebas MCNC [Lis88] junto a las dos maacutequinas de estado provistas por el consorcio
PREP [PreOO] El conjunto de maacutequinas de estados seleccionado presentan entre 4 y
48 estados de 1 a 12 entradas y de 1 a 19 salidas Las maquinas estaacuten descritas en el
formato KISS2 [Sen92] Un ejemplo se muestra en la Figura 42
Para proceder a la siacutentesis e implementacioacuten de los circuitos se realizoacute un programa
llamado KISS2VHDL que traduce la especificacioacuten en KISS y genera el coacutedigo
VHDL correspondiente El programa infiere la maacutequina de Mealy o Moore seguacuten
corresponda y realiza la asignacioacuten de estados seguacuten se haya indicado a traveacutes de
paraacutemetros externos El programa genera una entidad VHDL con la maacutequina de
estados (Figura 42) y un top-level VHDL con buffers de tercer estado en las patas para
125
8ZI
BiBd BpijBS ap SBjBd SBJ ua sopBjsaro poundlaquo$amp uaXnpur sodnojojd soj sopoj BDpBjsa
Bpuajod Biexcl jBjodBxjxa BJBd zpjj[ ^ X czfpoundjAi2 CZH 001 B sopipara uoianj sojrnajp scyj
bulleqatud ap sojmojp ap ojunfrioo p vxed oumsuoQ A pBpiooxa^-Bajy Z vqBj
Z6gt
66l
f l l
SKZ
lgt7
w i
IZS
Z0-9
6frl
98^
srt 117
w ZZZ
wz 9poundl
8Z7
tgt99
S8pound
Z6pound
pound8pound
9pound7
iquest60
ere 9KI
T-H
iquest O
z ^ i
Z-poundl
917
117
ero poundiquestpound
ZVt
WO
liquestpound
860
017
IS1
881
S8l
S6-0
iquestZ7
iquest99
8Zpound
8 0
667
poundpoundl
iquestiquestbullo
H - pound
iquest8 -l
O 3 O
6rs igt07
poundZ-9
W I
6iquest -i
lgtS-0
0 0
so-s 9 n
6S-pound
9 r t
99 l
ZSl
pound07
w 80l
W l
poundiquest-pound
Z0pound
88pound
0Spound
29 l
S60
iquestpound-pound
8poundl
X o
iquestfrS
99-l
vn S67
0S7
W 0
frr SS9
Z9-0
szgt SSO
IS7
8poundl
09-e
9tgt7
880
0pound7
608
Zpoundpound
S I
poundiquestpound
poundpoundbull
80l
Z0gt
6pound-l
3
(ZHIacuteMMUJ) oumsucQ
iquestbulliquestpound
60pound
r i 9
T8Z
S-0pound
SSZ
9-9pound
pound79
pound-8l
9 7
8-SZ
Z7Z
iquest-poundI
KiquestZ
6poundZ
8-8t
SZ
0 -t
87pound
8iquestpound
6 7
6-8Z
SSl
TOfr
r i pound
Slfr
S-9Z
poundS
87Z
lZ
88
68pound
6S
S6
9poundpound
iquest71
077
iquest91
YYC
09Z
98l
poundiquestZ
pound bullraquo
9SZ
iquest - l pound
VUr
Ygt
iquest-9I
9pound
fr6Z
O 3
O
frlpound
69Z
ZIP
0poundpound
9Z
rsi Z9pound
LVf
s i
VIZ
ros Y6Z
T81
ez YVZ
voz 877
0Spound
zz S7pound
T6pound
98l
iquest 7 1
Z9pound
9SZ
X o
6Sfr
poundbullpoundpound
9-09
Tlpound
Z-0pound
88
pound8pound
T8S
ZW
0Ofr
88
r i pound
Z6l
0-lpound
802
971
zvz 17S
T6Z
lgtpound
6gtS
T12
89l
rraquo 0-0pound
a S
(su) opiKjaa
S
fr
01
ir
S
fr
S
9
)7
i
fr
S
pound
S
S
fr
fr
L
V
b
S
^ pound
S
gt
lgt
81
66
8t
iquest l
S
iquestS
poundS
L
Spound
iquest
81
iquest
ZZ
91
I
frl
iquestS
OZ
iquestZ
poundS
Z
7
9pound
SI
Vi s H-X
fr
pound
9
t
t
Z
I
s 2
pound
Z
fr
pound
t
t
pound
pound
S
Z
pound
fr
Z
pound
t-
pound
V-
Spound
Zl
901
oz iquest l
Z
Sfr
OS
Z
6Z
I
61
iquest
Zl
6 pound pound1
OS
OZ
SZ
8fr
iquest
pound
iquestZ
01
9 u o- jno
B 3 j y
91
8
8fr
6
Zl
fr
91
61
V
8
t-
raquo S
11
n L
8
iquestZ
V
L
91
t
9
pound1
L
fe
iquestpound
t-l
S9
SI
SI
Z
raquo Zl
S
8Z
S
SI
8
iquestl
01
V
01
lpound
OZ
9Z
Zfr
01
V
9Z
8
s HO B 3 j y
t
pound
9
I
t
Z
t-
s z pound
z V
z V
V
pound
Z
S
z pound
t
Z
pound
^ pound
p-
6pound
pound1
pound11
ez 61
Z
amp iquestS
Z
frpound
l
ZZ
9
IZ
n pound
Zl
6S
81
iquestZ
ZS
iquest
fr
9pound
11
s
91
8
8^
6
Zl
V
91
61
V
8
fr
M
S
laquo
5ii iquest
8
iquestZ
f
iquest
91
J
9
pound1
iquest
8iquest
6Z
S i l
6Z
081
91
0iquestpound
0iquestl
91
t-pound
91
IZ
OZ
9S
0pound
H
ZZ
801
Zpound
9S
16
OZ
VL
80Z
ZV
8
8
61
9
91
l
9
Z
Z
8
Z
6
Z
Z
pound
Z
pound
pound
S
S
L
V
Z
L
Z
viexcl
e 3 O
8
8
iquest
S
S
z Zl
iquest
z S
z 9
Z
Z
l
l
Z
Z
pound
pound
iquest
pound
Z
iquest
t
3 a
bull3SU33DBIBD
bull^daid
gdaid
jatrejd
sndo J3JJEIII
6uoFI UBUDJJDj
qA33]
iquestX3
9x3
gxs
poundX3
poundX3
gX3
ZIS^IP
iquestZ^IP
iquest I I P
9PIP
S H P
frHP 3S3
3unoo33q
SBjqq
assqq
Bieqq
so^mojQ
bull[ZO^Pl] iexcld pound v jopajut jBjfiiacutep ODISOJ JopBzipuB p p BSJBD
BJ Bjiodos ojos Bjed BpBD ap laquopijes BJ X sojmoiiD soj jBjnuipsa Bjsd BaoiBa|B Bpuanoas
Btustuiacute BJ pzrjpn ag -ODaacutepj jopBzijBUB pp SBpuos X [opj ap Bpuanaajj (y aoipuady)
osajdan ojmajp ap Bjatrej sisajujs ap SBjuaraiBiiaq SBJ ua sauopdo SBrasrai sBjBd ap
uppBuSisB BDpuapi UOD VOctiI BUisnu B[ ua uoiejuauiacuteaidun as sojinoip soiexcl sopoj sa
ojsa sauoprpuoo seapuapi ua sopipatu Aacute sopcjuauiacuteaiduii uojatg sojmoira soj sopox
s y g j j j ua ouinsuOQ ap uoponpsy B[ BJElt3 SiacuteoiuDax
Capiacutetulo 4 Consumo en Maacutequinas de Estado
facilitar la medida de la potencia de salida Se pueden ver los detalles de la metodologiacutea
de medicioacuten en el Apeacutendice A
422 Resultados Experimentales
En la Tabla 42 se puede observar aacuterea retardo y consumo dinaacutemico obtenidos para
cada uno de los circuitos de prueba El aacuterea es expresada en CLBs aunque tambieacuten se
informa la cantidad de registros flip-flop (FF) que se utilizan El retardo expresado en
ns corresponde al camino criacutetico Finalmente la potencia dinaacutemica es expresada en
mWMHz
Ahorro de consumo La Figura 43 muestra la comparacioacuten de ahorro de consumo de OH
(One Hol) vs codificacioacuten binaria en tanto la Figura 44 hace lo propio para OH vs
Out-oriented Los valores positivos indican reducciones obtenidas por la codificacioacuten
OH El eje de las abscisas representa el nuacutemero de estados de la FSMs Las figuras
pueden ser conceptualmente divididas en tres claras zonas Para maacutequinas hasta ocho
estados la codificacioacuten binaria debe ser utilizada para reducir consumo Para maacutequinas
con maacutes de 16 estados siempre OH es la mejor opcioacuten y finalmente si la maacutequina
posee entre 8 y 16 estados no es claro la opcioacuten a elegir pero claramente Out-oriented
es mejor que binario puro
60
40
20
0
-20
-40
-60
bull 10 - bull - bdquo
20 30 40 5P
Figura 43 Ahorro de consumo en funcioacuten de la cantidad de estados One-Hot respecto de Binario
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Por otra parte la codificacioacuten TH (Tiw-Hoi) consume maacutes que OH en praacutecticamente
todos los casos no obstante sigue siendo mejor opcioacuten que Out-oriented y binario
puro para maacutequinas de estado grandes Cabe destacar que el ahorro de consumo por la
eleccioacuten de la codificacioacuten correcta puede llegar al 57
60
40
20
o
-20
-40
-60
mdash _ bull bull
5 bullbull 10 bull bull 1 5 20 plusmn bull
25 30 35 40 45 poundJ
Figura 44 Ahorro de consumo en funcioacuten de la cantidad de estados One-Hot respecto de Out-oriented
Reacioacuten estados-consumo Se comprueba que para todas las codificaciones el consumo es
lineal con la cantidad de estados El coeficiente de determinacioacuten r2 para los diferentes
anaacutelisis de regresioacuten esta siempre sobre 085 (Figura 48) El consumo estaacute auacuten maacutes
relacionado (R2 = 087) respecto de n+i (cantidad de estados maacutes el nuacutemero de
entradas)
Relacioacuten estados- aacuterea En este caso la correlacioacuten es similar al anaacutelisis previo con un
coeficiente de determinacioacuten r2 = 080 Como es de esperar este relacioacuten aumenta
cuando se relaciona el aacuterea con de n+i (estados maacutes cantidad de entradas) obteniendo
un r2 = 086 La relacioacuten aacuterea respecto de n+i+o (estados maacutes cantidad de entradas y
salidas) r2 supera el 088
130
Capiacutetulo 4 Consumo en Maacutequinas de Estado
16
14
12
N 1 0 X I 8 5 E 6
4
2
0
bull-bull -bull bull
- - bull r-r
bull bull
^ j
bull bull bull
bull
0 10 20 30 40 50
Figura 45 Consumo por cantidad de estados Codificacioacuten binaria
16
14
12
N 1 0
X I 8 E 6
4
2
0
___bdquo bdquo _bull bull bull
mdash ^ - n mdash bull x mdash mdash mdash mdash - mdash mdash mdash mdash bull v _ v - t 5 _ _ bull mdash -
10 20 30 40 50
Figura 46 Consumo por cantidad de estados Codificacioacuten One-Hot
16
14
12 bull
N 1 0
X
i 8
E 6
4
2
0
bull bull bull bull bull bull
^bullbull bullmdashraquo-
bull
bull
mdash mdash _ mdash
10 20 30 40 50
Figura 47 Consumo por cantidad de estados Codificacioacuten Out-oriented
131
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
16
14 bull
12
x
l 8 S 6
4
2
0 0 10 20 30 40 50
Figura 48 Consumo por cantidad de estados Codificacioacuten Two-Hot
bull bull
bull mdash - p bdquo mdash $ bull mdash bull _ bull
Velocidad-Consumo La relacioacuten se puede ver graacuteficamente en la Figura 49 el
coeficiente de correlacioacuten es r2 = 07 El experimento no sigue tan claramente la regla
general dentro del disentildeo de bajo consumo en FPGAs que indica que los circuitos
maacutes raacutepidos consumen menos potencia La afirmacioacuten que para una maacutequina de
estados determinada la codificacioacuten que produce el circuito maacutes veloz es la que menos
consume solo se cumple 36
16
14
12
iacute I raquobull E iacute 6 o O
4 bull
laquoBin
| bull One Hot
bull x Two Hot i
bull
x x bull x i raquo M raquo bull A
t
Sit j^Vx
bull
A
X
bull
A
bull
10 20 30 40
Retardo (ns)
50 60 70
Figura 49 Relacioacuten retardo- consumo para las FSMs
132
Capiacutetulo 4 Consumo en Maacutequinas de Estado
Area-Consumo La correlacioacuten es realmente importante (r2 = 091) y puede ser utilizada
como una primera aproximacioacuten para decidir por un sistema de codificacioacuten La figura
Figura 410 muestra esta distribucioacuten Si se compara aacuterea y consumo para una misma
FSM se puede observa que en este experimento el 77 de las veces se cumple que el
circuito que menos ocupa es el que menos consume
Oiacuteros correlaaacuteones Se han explorado otras correlaciones como cantidad de estados-
velocidad sin resultados visibles (r2 menor que 06) Otras correlaciones de aacuterea
velocidad o consumo respecto de los diferentes paramentos de la maacutequina de estados
(cantidad de entradas salidas estados reglas) y combinaciones de estos tampoco
producen resultados significativos
N
i s F o f= 3
g O O
16
14
12
10
8
6
4
2
0
bull Bin
bull One Hot
AOut
x Two Hot
raquopound amp ^
mdash
i
bull
A
A
bull
A
X
0 20 40 60 80 100 120 Aacuterea (CLBs)
Figura 410 Relacioacuten aacuterea mdash consumo en las maacutequinas de estados
133
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
423 Conclusiones sobre codificacioacuten de maacutequinas de estados en
FPGAs
Esta seccioacuten ha presentado un anaacutelisis de las alternativas de codificacioacuten para
maquinas de estados desde el punto de vista del bajo consumo Las conclusiones maacutes
importantes son que para maacutequinas de estados pequentildeas (hasta ocho estados) el aacuterea
retardo y consumo es minimIacute2ado con codificaciones binarias (codificaciones densas)
Por otra parte las codificaciones poco densas pero maacutes faacuteciles de decodificar como
One-Hot o Two-Hot muestran mejores resultados para maacutequinas de estados grandes
(maacutes de dieciseacuteis estados)
La comparacioacuten entre los 26 circuitos de prueba muestra una gran diferencia de
consumo Dependiendo del sistema de codificacioacuten utilizado se puede alcanzar una
ahorro de hasta el 57 La aproximacioacuten Two-Hot si bien es mejor que binario y out-
oriented para maacutequinas grandes siempre es de inferior calidad que One-Hot por lo que
no parece ser muy interesante Dentro de las codificaciones densas out-oriacuteented se
comporta en promedio mejor que el binario puro
Por uacuteltimo se puede observar una clara relacioacuten aacuterea-consumo Esta puede ser
utilizada durante el ciclo de disentildeo para estimar el consumo a traveacutes de la informacioacuten
provista por la herramienta de siacutentesis
Estos resultados han sido publicados en [Sut02a] y [Sut02b] posteriormente [Men03]
propuso un enfoque hiacutebrido utilizando cero-one-hot para la parte de la FSM con mayor
actividad y una codificacioacuten miacutenima (oacute densa) para las partes con menor actividad Sus
resultados por simulacioacuten utilizando Xpower y dispositivos Spartan-2 llegan al 60
de reduccioacuten
134
Capiacutetulo 4 Consumo en Maacutequinas de Estado
43 Particioacuten de maacutequinas de estado en FPGAs
En esta seccioacuten se estudia la optimizacioacuten de consumo en maacutequinas de estado finitos
implementadas en FPGA por la teacutecnica de descomposicioacuten decompositiacuteoiiacute) o
particionado (partitioning) Cuando el tamantildeo de las maacutequinas de estado crece su
complejidad hace que las estrategias conocidas de asignacioacuten de estados no sean
oacuteptimas Se pueden lograr mejoras en aacuterea velocidad y consumo en circuitos
secuenciales realizando la interconexioacuten de dos o maacutes circuitos Las teacutecnicas
heuriacutesticas para la asignacioacuten de estados y optimizacioacuten loacutegica trabajan mejor sobre
problemas pequentildeos que sobre grandes
Desde el punto de vista del consumo si se realiza una divisioacuten correcta la mayor parte
del tiempo solo una de las submaacutequinas de estados ha de estar funcionado pudieacutendose
desactivar las demaacutes
En la solucioacuten que se presenta en esta seccioacuten la maacutequina de estados es dividida en
dos submaacutequinas usando un criterio probabiliacutestico Solo una submaacutequina estaacute activa a
la vez mientras la otra esta inactiva con el objeto de ahorrar consumo Se han
probado diferentes alternativas para llevar a cabo la desactivacioacuten en dispositivos
XilinxXC4K
Para probar eacutestas teacutecnicas se han utilizado 14 maacutequinas de estados de los bancos de
prueba benchmarkiacute) MCNC [Lis88] y PREP [PreOO] y construido maacutes de 200 circuitos
Con la teacutecnica propuesta en esta seccioacuten que se adapta a grandes maacutequina de estados
se han logrado ahorros de consumo de hasta el 425 respecto de la maacutequina
tradicional codificada en one-hot y de hasta 54 respecto de la misma maacutequina con
codificacioacuten binaria
431 Alternativas de bajo consumo en FSMs
Indudablemente la teacutecnica maacutes popular para reducir consumo es modificando la
manera en que se codifican los estados [Tsu94b]|Ben95a][Not99]|Wu00]|Mar00] como
se ha explicado y estudiado en la seccioacuten 42 No obstante otras ideas muy utilizadas
son lo que se conoce como teacutecnicas de manejo de energiacutea (power managemeni) Esto es
apagar los bloques de hardware en aquellos periodos de tiempo en que no estaacuten
produciendo datos uacutetiles El apagado de un circuito puede ser llevado a cabo de
135
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
diferentes maneras Apagando la fuente de alimentacioacuten deshabilitando la sentildeal de
reloj o congelando (freeigng or bockitig) los datos de entrada
Dentro de esta categoriacutea de teacutecnicas caen meacutetodos como precomputacioacuten
(precompufaiacuteioti) bloqueo de reloj (gated clocM) sistemas con reloj selectivo (selectively
clocked systems) En las teacutecnicas de gated-cock rBen96]fBen95b] el reloj de la FSM se
para cuando la maacutequina esta en un auto-ciclo (queda en el mismo estado) y las salidas
no cambian En precomputacioacuten [A1Iacute94] un bloque de loacutegica combinacional es
agregado al circuito original Bajo ciertas condiciones de entrada la loacutegica de
precomputacioacuten deshabilita la carga de los registros de entrada Esta seccioacuten se centra
en las alternativas de descomposicioacuten que se detallan a continuacioacuten
input
mdash M1 mdash
output input
M2 mdash
M1 mdash
OL V output
input
b
IVI I
reg
M2
reg
UumlU
M2 mdash
Figura 411 Descomposicioacuten de maacutequinas de estados a Paralela b Cascada c General
432 Decomposicioacuten o partcionado de FSMs
Los primeros trabajos sobre particioacuten de maacutequinas de estados datan de los 60 fHaroacuteO]
El primer objetivo fue reducir la complejidad del bloque combinacional los que se
implementaban en arquitecturas que poseiacutean una cantidad limitada de loacutegica (PLAs
etc) [Ash91][Gei91] En lo subsiguiente por simplicidad la particioacuten se realizaraacute en
136
Capiacutetulo 4 Consumo en Maacutequinas de Estado
dos submaacutequinas aunque el concepto es aplicable a n submaacutequinas Conceptualmente
se pueden dividir en maacutequinas paralelas en cascada o generales (Figura 411) siendo
estas uacuteltimas las maacutes utilizadas en la praacutectica
4321 Modelo general para la particioacuten de maacutequinas de estado
En el modelo general la FSM se divide en dos (o maacutes) maacutequinas de estados
relacionadas donde cada submaacutequina conoce en que estado se encuentra la (las) otras
(Figura 412) Esta estrategia agrega un estado ocioso en cada submaacutequina
Figura 412 Diagrama de estados de una maacutequina de estados y diagramas de las particiones en la aproximacioacuten tradicional
137
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
4322 Particioacuten ortogonal de maacutequinas de estado
Otro esquema de particioacuten de maacutequinas de estados es la particioacuten ortogonal [she99]
En este caso la cantidad de estados no es laquo+laquoiquest = n pero es aproximadamente 4ntilde en
cada particioacuten Si se considera Q = qiq2qn el conjunto original de estados luego
dos particiones Uuml A = Ai A2 Am y I1B = Bi B2 Bk del conjunto Q son
ortogonales si para todo j con lt mj lt k se cumple que Aiexcl n Bj = 0 o bien Aiexcl (~ Biexcl
= qiexcl De este modo para representar un estado qiexcl de la maacutequina original se utiliza la
combinacioacuten de un estado Aiexcl y otro Bj
Grafo de transicioacuten de estados
1--
01B
IOA2
STG para la particioacuten A STG para la particioacuten B
Figura 413 Diagrama de estados y particioacuten ortogonal de una FSM [She92]
138
Capiacutetulo 4 Consumo en Maacutequinas de Estado
La funcioacuten de proacuteximo estado para cada maacutequina se describe en funcioacuten de la entrada
y el estado de ambas submaacutequinas 8a LTA X I1B x E mdashraquo I1A anaacutelogamente 8b I1A X
YIB x 2 mdashgt IIA LO mismo sucede con la funcioacuten de salida en que de ser una maacutequina
de Moore dependeraacute del estado de ambas submaacutequinas (A- UumlA X Uuml B mdashgt A) y en caso
de ser una maacutequina de Mealy ademaacutes dependeraacute de la entrada (k LTA X I1B x E mdashgt A)
En la Figura 413 se muestra el siguiente ejemplo La maacutequina original posee los
siguientes cuatro estados Q = Si S2 S3 S4 Las siguientes podriacutean ser dos
particiones I IA = (sls2)(s3s4) y UumlB = (sls3)(s2s4) Es decir Ai = sls2 A2
= s3s4 Bi = sljS3 B2 = s2s4 Expresado en otros teacuterminos las dos
submaacutequinas estaacuten en el estado original si cuando la submaacutequinas esteacuten en Ai y Bi
respectivamente Con este uacuteltimo razonamiento se obtiene si = (Ai Bi) s2 = (Ai
B2 ) s3 = (A2 Bi) s4 = (A2 B2 ) Obseacutervese que las transiciones de estados de las
particiones no solo dependen de la entrada si no tambieacuten del estado de la otra
submaacutequina
433 Teacutecnicas de descomposicioacuten para bajo consumo
La idea principal para reducir consumo por descomposicioacuten de maacutequinas de estados
es desactivar la parte que no estaacute operando de la FSM La desactivacioacuten puede ser
alcanzada o bien bloqueando las entradas usando latches puertas ANDs buffers tri-
estados oacute bien apagando la parte del circuito que no es utilizada (deshabilitando el
reloj por ejemplo)
Tanto en [Mon98] como en [Ben98] la maacutequina de estados es particionada en varias
piezas que son implementadas en maacutequinas separadas con un estado ocioso extra (ide
state) En eacuteste caso solo una maacutequina es activa a la vez mientras las otras se
encuentran en estado ocioso Por ende se puede desactivar el reloj para las
submaacutequinas ociosas asiacute como desactivar sus respectivas entradas Con esto se logra
reducir la actividad de conmutacioacuten y por tanto la potencia disipada
En [Mon98] el diagrama de transicioacuten de estados (STG) es dividido en dos maquinas
de estados no balanceadas una es pequentildea y se encuentra activa la mayor parte del
tiempo en tanto que la mayor que usualmente esta inactiva La clave consiste en
encontrar un subconjunto pequentildeo de estados donde la FSM ha de estar mucho
139
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
tiempo y que existan pocas transiciones hacia el resto de los estados El algoritmo se
basa en rotular el STG con las probabilidades de transicioacuten entre estados
iacutenput
Figura 414 Arquitectura I para descomposicioacuten de maacutequinas de estado en FPGAs
Un esquema muy interesante basado en codificacioacuten disjunta es propuesto en
[Cho96] La particioacuten resultante no sigue exactamente la estructura estaacutendar de la
descomposicioacuten de las maacutequinas de estados finitos En este meacutetodo el diagrama de
transicioacuten de estados es particionado en dos (pueden ser maacutes) conjuntos de estados
Todos los estados de un subconjunto de estados es codificado con el bit maacutes
significativo (MSB - most significant bii) a 0 mientras que el otro conjunto es codificado
con su MSB a uno Por tanto la loacutegica combinacional puede ser partida en dos bloques
separados uno que es activa cuando el MSB de la codificacioacuten esta en cero y otro que
seraacute activo cuando el bit maacutes significativo esteacute a 1 De esta forma el consumo puede
ser potencialmente reducido
Finalmente otra teacutecnica utilizada para reducir consumo es utilizar la particioacuten
ortogonal descrita en la seccioacuten anterior utilizando mecanismos de gated dock y
precomputacioacuten para la maacutequina inactiva [SheOO] En cada submaacutequina de estados el
programa de particioacuten trata de maximizar el nuacutemero de arcos a si mismo es decir que
140
Capiacutetulo 4 Consumo en Maacutequinas de Estado
la maacutequina se quede en el mismo estado tras el flanco de reloj Para cada condicioacuten de
arco a si mismo self-edgeacute) las sentildeales de entrada y de reloj son deshabilitadas
434 Una arquitectura de descomposicioacuten de FSMs para FPGAs
En esta seccioacuten se describe una arquitectura de descomposicioacuten orientada a la
implementacioacuten en FPGAs basadas en LUTs Los mismos coacutedigos son utilizados en
ambas submaacutequinas pero solo una de ellas estaraacute activa a la vez Para discernir la
maacutequina activa se utiliza un bit extra llamado ActiveacuteFSM (FSM activa) La primera
opcioacuten arquitectural se puede ver en la Figura 414 La maacutequina de estados es dividida
en dos circuitos combinacionales (machines A y B) ambos computan las salidas y
proacuteximo estado La transferencia de control entre las submaacutequinas se basa en que la
que tiene el control cambia el valor del bit activeacuteFSM En funcioacuten del valor activeacuteFSM
se controla cual de las submaacutequinas es activa activando los multiplexores y bloques de
entrada correspondientes Los bloques sombreados indican circuitos que congelan
las entradas
u input
Machine A
^
cei
-CXJ-
U
D Machine B
clki
mdash bull
ti OIacute f o
FF Active FSM
ce2
clk2 gt
O)
8
Output
Figura 415 Arquitectura II para descomposicioacuten de maacutequinas de estado en FPGAs
141
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Una segunda arquitectura se puede ver el la Figura 415 En este caso dos bancos de
registros son utilizados para parar la evolucioacuten de la maacutequina de estados Existen dos
posibilidades para controlar los registros Viacutea la sentildeal de habilitacioacuten (enable) oacute
utilizando la teacutecnica de gated-clock desaconsejado para el caso de FPGAs por los
fabricantes [XIacute103]
Para ambas arquitecturas se lleva a cabo el mismo ciclo de disentildeo En primer lugar se
debe seleccionar un algoritmo para descomponer la maacutequina de estados en dos
submaacutequinas Maacutes tarde se debe implementar un meacutetodo para bloquear los datos en
la submaacutequina deshabilitada Finalmente se debe escribir el coacutedigo VHDL para
proceder a la siacutentesis e implementacioacuten
435 Caacutelculo de probabilidades de transicioacuten en un STG
Para llevar a cabo la particioacuten de las maacutequinas de estado se realiza un modelo
probabiliacutestico [Tsu94a] del grafo de transicioacuten de estados de la FSM Para calcular la
probabilidad de transicioacuten de estados sobre un grafo de transicioacuten de estados (STG)
se debe conocer ante todo la distribucioacuten de probabilidad para las entradas Estos
valores pueden ser obtenidos por una simulacioacuten de alto nivel en el contexto donde
interactuacutea la maacutequina de estados o bien asignar equiprobabilidad
Luego la probabilidad de transicioacuten para cada arco dentro del STG puede ser
determinado modelando al grafo de transicioacuten de estados como una cadena de
Markov Una cadena de Markov es un proceso estocaacutestico cuyo funcionamiento
dinaacutemico es tal que su comportamiento depende solo del estado presente sin tener en
cuenta como el proceso ha arribado al estado actual
La probabilidad estaacutetica (steady state probabilitf) de un estado qiexcl esta definida como la
probabilidad de una maacutequina de estados de quedarse en el estado qiexcl Este valor no es
dependiente del tiempo Esto es cuando el tiempo crece converge a un valor real Sea
P la matriz de probabilidades condicionales y v el vector de probabilidades estaacuteticas
(cuyos componentes son las probabilidades de los estados) Luego la probabilidad
estaacutetica para cada estado puede ser calculada resolviendo el sistema de n+1
ecuaciones
V-P = v y | J gt = 1 donde v = [P0^Pbdquo] y
142
Capiacutetulo 4 Consumo en Maacutequinas de Estado
Po0 Po bull Pon-l
p = Plfi P - Phn-l
Pn^lO Pn- bull Pn-ln-l_
Aquiacute P es una matriz estocaacutestiacuteca (esto es todos los valores son positivos y la suma de
cada columna es uno) cuyas entradas son las probabilidades condicionales de
transicioacuten La probabilidad total de transicioacuten Piexcliexcl puede ser calculada como
R = p -P
Un ejemplo sencillo La Figura 416 muestra una maacutequina de estados y las diferentes
transformaciones que sufre el diagrama de transicioacuten de estados para terminar en un
grafo ponderado que puede luego ser utilizado por el algoritmo de particioacuten de
maacutequinas de estado
Para obtener el grafo de probabilidades de transicioacuten se asume que las entradas son no
relacionadas y equiprobables Luego la probabilidad condicional puede ser calculada
como se explico anteriormente La Figura 416b muestra la probabilidad condicional
para cada arco Obseacutervese por ejemplo la transicioacuten del estado SI al S2 donde los
valores 00 10 y 11 pueden generar transiciones de estados los que se corresponden
con una probabilidad condicional de 34 Los arcos a si mismo son eliminados
La probabilidad estaacutetica de cada estado y la probabilidad total de transicioacuten (la que
surge de multiplicar la probabilidad estaacutetica por la probabilidad de transicioacuten del
estado donde parte) se puede observar en la Figura 416c Finalmente en la Figura
416d se obtiene el grafo de probabilidades de transicioacuten a traveacutes de sumar los arcos
paralelos (observar que en este ejemplo los valores no estaacuten normalizados) En el
apeacutendice D se describen detalles de la implementacioacuten de eacuteste caacutelculo
143
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
P^O27 020 P2=039
Figura 416 Diagrama de transicioacuten de estados y grafos de probabilidades a FSM de ejemplo b Probabilidad condicional para cada arco c probabilidad estaacutetica de cada estado y la probabilidad total de transicioacuten d grafo de probabilidades de transicioacuten
436 Particionando la FSM en submaacutequinas
La teacutecnica separa la maacutequina de estados original en dos submaacutequinas tal que la
probabilidad de transicioacuten de estados dentro de una submaacutequina es maximizada
mientras que la interaccioacuten entre la otra submaacutequina es minimizada
Primero se calcula la probabilidad de transicioacuten de la maacutequina de estado (Figura 417)
Luego una particioacuten con igual cardinalidad en cada submaacutequina es llevada a cabo Por
144
Capiacutetulo 4 Consumo en Maacutequinas de Estado
ejemplo consideacuterese dos particiones IIA = Sai Sa2 bull bull -San y UumlB = Sbi Sb2 bull -Sbn
con probabilidad de transicioacutenraquo^ entre los estados Siexcl y Siexcl En este caso el algoritmo
minimiza la suma de las probabilidades de transicioacuten entre submaacutequinas esto es
min( X POgtJ))gt V t s UAJ e n B bull
No hace falta un algoritmo aacutevido (greedy) para resolver este problema ya que la
buacutesqueda exhaustiva por un algoritmo de backtracking suficientemente acotado logra
resolver los peores casos presentados en pocos segundos En el Apeacutendice D se
brindan mayores detalles de los algoritmos utilizados
Figura 417 a) Diagrama de transicioacuten de estados (State Transition Graph STG) b) Probabilidad estaacutetica y probabilidad total de transicioacuten
145
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
437 Meacutetodos para bloquear los datos
Para eliminar la actividad en la maacutequina de estado inactiva (bloques sombreados en
Figura 414 y Figura 415) la mejor alternativa es utilizar latches para capturar los datos
(Blocking Latches) Otras posibilidades son el uso de puertas ANDs o buffers de tercer
estado Ambas fueron probadas y descartadas por su peor comportamiento en aacuterea
velocidad y consumo
Para la arquitectura de particioacuten de FSMs de la Figura 415 que utiliza dos bancos de
registros existe la alternativa de usar la inhabilitacioacuten por la sentildeal de habilitado (enableacute)
o bloquear el reloj (gate-clock) La segunda alternativa presenta la ventaja que no existe
movimientos en la sentildeal de reloj y consecuentemente no hay consumo La desventaja
pasa por la menor fiabilidad de este meacutetodo (pueden aparecer movimientos espuacutereos -
glitches) y el no menos importante hecho que los recursos de reloj no sobran en las
FPGAs y puede ser necesario utilizar liacuteneas comunes para rutar el reloj con una
importante perdida de calidad en el rutado
438 Siacutentesis de la maacutequina de estados
Se desarrolloacute una herramienta denominada part_FSM (Apeacutendice D) que genera la
particioacuten de maacutequinas de estado especificadas en formato KISS2 [Sen92] (Apeacutendice
Q La herramienta calcula la probabilidad estaacutetica y divide la maacutequina original en dos
submaacutequinas como se explica en la seccioacuten 437 para finalmente generar coacutedigo
VHDL sintetizable Otros paraacutemetros necesarios para el programa son tipo de
arquitectura meacutetodo de bloqueo blocking method) y tipo de codificacioacuten de las
submaacutequinas
El coacutedigo VHDL generado contiene la entidad de la maacutequina de estados y tres
procesos El primeto para la loacutegica combinacional otro para la circuiteriacutea de bloqueo
de los datos y por uacuteltimo uno para incorporar buffers tri-estado en las patas de salida
para medir por separado la potencia a la salida (pff-chippoiver)
439 Experimentos con particioacuten de maacutequinas de estado
Los circuitos de prueba fueron implementados de diferentes formas en primer lugar
de manera original con codificaciones binarias y One Hot Luego cada maacutequina fue
partiacutecionada de dos formas una correspondiente a la arquitectura I (Figura 414) y otra
146
Capiacutetulo 4 Consumo en Maacutequinas de Estado
a la arquitectura II (Figura 415) Nuevamente para cada submaacutequiacutena se aplico
codificacioacuten binaria y One Hot Adicionalmente sobre la arquitectura I se probaron
diferentes teacutecnicas de bloqueos de datos Se implementaron y midieron un total de
168 circuitos
Por otra parte se procedioacute a implementar la particioacuten ortogonal (seccioacuten 432) en las
maacutequinas de estado Esta teacutecnica de descomposicioacuten descrita en [She99][She00]
reducen el consumo basados en el hecho de la disminucioacuten de estados que implica la
particioacuten ortogonal En la implementacioacuten en FPGAs realizada los resultados fueron
muy deficientes tanto en velocidad como consumo
Todos los experimentos utilizan maacutequinas de estado del banco de pruebas (benchmarM)
MCNC91 [Lis88]|Yan91] y del consorcio PREP [PreOO] Se seleccionaron aquellas
maacutequinas con doce estados o maacutes Cada maacutequina de estados fue minimizada en
cantidad de estados con STAMINA [Hac91] La cantidad de entradas salidas reglas
de proacuteximo estado (arcos del grafo de transicioacuten de estados) para cada maacutequina de
prueba se puede ver en la Tabla 43 Adicionalmente la probabilidad de transicioacuten
entre submaacutequinas y la cantidad de arcos que las comunican tras aplicar el programa
part_FSM se muestra en la tabla
Circuitos
Bbsse Cse Dkl6 Dk512 Exl Ex2 Keyb Kirkman Markl Planet Prep4 S386 S820 S832c
Paraacutemetros de las FSM originales Entradas
121 7 7 2 1 9 2 7
12 5 7 8 7
18 18
Salidas
lltT| 7 7 3 3
19 2 2 6
16 19 8 7
19 19
Estados
IQI 13 16 27 15 18 14 19 16 12 48 16 13 24 24
Reglas
| 5 | 208
91 108 30
233 56
170 370 180 115 78 69
254 243
Particioacuten
Prob
0024 0017 0247 0175 0022 0218 0004 0002 0037 0052 0041 0024 0006 0006
Arcos
52 36 28
7 53 25 63 46 79 14 9
27 138 118
Tabla 43 Datos originales de las maacutequinas de estados cantidad de entradas salidas estados y arcos Ademaacutes informacioacuten de la particioacuten (probabilidad y nuacutemero de arcos entre particiones)
147
Teacutecnicas pata la Reduccioacuten de Consumo en FPGAs
El coacutedigo VHDL generado por el programa partJpSM (Apeacutendice E) fue
implementado en una FPGA XC4010EPC84-4 usando como herramienta de siacutentesis
FPGA Express [Syn99] y las Xilinx Foundation tools [XilOOb] para su
implementacioacuten Este modelo de FPGA no posee latches con lo que eacutestos fueron
construidos con look up tables (LUTs) actuando como memoria RAM
Todos los circuitos fueron implementados y medidos en ideacutenticas condiciones al igual
que en los experimentos de la seccioacuten 42 Se ha utilizando el arreglo experimental del
Apeacutendice A y los circuitos fueron medidos a 100 Hz 1 MHz 2 MHz y 4 MHz
4310 Resultados experimentales de la particioacuten de maacutequinas de estado
El consumo de corriente expresado en mWMHz se muestra en la Tabla 44 Las
primeras columnas muestran los valores para la maacutequina de estados original
codificada en One Hot (OH) y binario (bin) Luego se exhiben los resultados para el
circuito particionado y codificado tanto en One Hot como en binario Se presentan los
resultados para cuatro formas diferentes Architectura 1 (Archl) Architectura 2 Archl)
Architectura 1 sin meacutetodos de bloqueo (Ni BIM) y finalmente Architectura I con
bloqueos implementados con puertas ANDs (Bik and) En la uacuteltima columna se
observa el factor de mejora en el consumo el que se obtiene como relacioacuten entre el
consumo de la mejor maacutequina de estados original respecto de la mejor
implementacioacuten con teacutecnica de particioacuten
Posteriormente en la Tabla 45 se muestra el aacuterea de los circuitos de la Tabla 44
expresada en CLBs de la serie XC4000 adicionalmente se presenta la utilizacioacuten de
registros^fi^raquo
Mejora de consumo Para la mayor parte de las maacutequinas de estado se obtiene una
reduccioacuten considerable de consumo llegando hasta un 425 respecto de la maacutequina
tradicional codificada en one-hot y de hasta 54 respecto de la misma maacutequina con
codificacioacuten binaria No obstante en cinco circuitos no se logro mejora o incluso
hubo resultados negativos Una observacioacuten maacutes detallada muestra que este efecto es
causado por la alta probabilidad de transicioacuten entre submaacutequinas (Tabla 46) Cuando
la particioacuten produce que la probabilidad de transicioacuten entre submaacutequinas supere el 5
los resultados son de esta teacutecnica son negativos
148
Capiacutetulo 4 Consumo en Maacutequinas de Estado
Circuito
Bbsse
Cse
Dkl6
Dk512
Exl
Ex2
Keyb
Kirkman
Markl
Planet
Prep4
S386
S820
S832c
FSM Original
O X
390
385
388
184
709
251
550
450
270
804
466
423
784
701
470
410
1000
280
856
410
706
461
330
1680
571
484
928
1021
Particionado codificacioacuten One Hot
Archl
380
324
580
246
673
340
473
490
301
918
544
408
581
508
Arch2
395
346
576
279
653
309
431
466
301
929
538
445
544
500
td Z iexclT O
404
429
581
244
811
269
788
449
331
1023
686
498
843
764
g 2 O (T
434
530
634
214
816
326
769
450
309
1001
755
498
798
660
Particionado codificacioacuten binaria
Archl
355
300
750
224
653
309
366
480
266
1088
511
421
451
473
Arch2
376
288
701
251
611
288
465
449
278
1181
466
421
465
504
5r o
423
383
909
216
790
358
525
483
263
1518
686
555
883
755
g S
391
359
996
194
779
346
681
480
288
1699
644
459
730
675
Mejora del
Consum
o
90
253
-328
-52
138
-65
334
03
28
-124
00
36
424
326
Tabla 44 Consumo de potencia expresado en mWMHz para la particioacuten de maacutequinas de estado
Codificacioacuten Binario vs One Hot en las submaacutequinas De acuerdo con los resultados
relacionados con el consumo en maacutequinas de estados sin particionar (seccioacuten 42) One
Hot provee mejores resultados para maacutequinas de estados con maacutes de 16 estados Por
oposicioacuten para maacutequinas con ocho o menos estados la codificacioacuten binaria produce
mejores resultados
Meacutetodos de Bloqueo Los latches son la mejor forma en la mayoriacutea de los casos La
mejora respecto de utilizar puertas AND (que ocupa un CLB) puede llegar a un 30
Solo en dos circuitos del banco de pruebas el bloqueo con puertas AND fue mejor
Se probaron ademaacutes como alternativas de bloqueo puertas OR y buffers triestado con
resultados claramente inferiores y fueron desechados Los resultados concuerdan con
los expuestos en la seccioacuten 36 donde se manifiesta la superioridad de las alternativas
de bloqueo por puertas AND y latches
149
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Circuito
Bbsse
Cse
Dkl6
Dk512
Exl
Ex2
Keyb
Kirkman
Markl
Planet
Prep4
S386
S820
S832c
FSM Original
O X
CLB
s
26
65
42
32
10
51
17
12
42
43
15
65
34
25
3 13
128
16
27
14
18
11
13
19 16
12
48
16
13
Bin
CLB
s 36
150
52
61
14
79
21
21
57
45
19
113
40
36
3 4
7
4
5
4
5
4
4
5 4
4
6
4
4
Particionado codificacioacuten One Hot A
rchl C
LBs
48
145
64
68
26
90
39
30
78 80
34
117
71
46
3 8
65
9
15
9
10
8
8 11
9
7
25
9
8
Arch2
CLB
s
46
99
66
54
18
82
32
25
60
70
30
100
60
41
TI
15
129
17
29
17
19
15
15 21
17
13
49
17
15
No B
lk C
LBs
37
33
50
44
13
66
20
17
57 45
18
83
53
36
3 8
65
9
15
9
10
8
8 11
9 7
25
9
8
Blk and
CLB
s
40
33
56
49
10
82
26
16
61
46
19
83
57
37
3 8
65
9
15
9
10
8
8 11
9
7
25
9
8
Particionado codificacioacuten binaria
Archl
CLB
s
45
36
64
69
17
82
30
33 62
80
29
129
50
50
3 4
7
4
5
4
5
4
4
5 4
4
6
4
4
Arch2
CLB
s
38
26
62
58
14
78
26
31
64 67
27
127
46
45
3 7
13
7
9
7
9
7
7
9
7
7
11
7
7
No B
lk C
LBs
31
5
46
53
10
71
23
21
51
39
15
102
35
38
4
7
4
5
4
5
4
4
5 4
4
6
4
4
Blkand
CLB
s
32
5
45
56
8
71
26
19
59
50 18
120
43
36
3 4
7
4
5
4
5
4
4
5 4
4
6
4
4
Tabla 45 Aacuterea expresada en CLBs para la particioacuten de maacutequinas de estado
Penalidad en Aacuterea Tanto la sincronizacioacuten como la circuiteriacutea de la particioacuten agregan
loacutegica extra a la maacutequina de estados Esta sobrecarga depende de la cantidad de
entradas salidas y estados Cada sentildeal de entrada requiere dos LUTs para implementar
los latches y cada salida requiere una LUT extra para implementar el multiplexor de
salida Finalmente cada estado agrega dos LUTs extra para implementar los latches en
architecture I en tanto que la architecture II no necesita loacutegica extra para implementar el
bloqueo de los estados Dado que la XC4000E no posee latches y estos se implementan
con LUTs configuradas como RAM [XIacute199] en teacuterminos de aacuterea la arquitectura I posee
peores caracteriacutesticas que la arquitectura II (lo contrario que en el consumo)
150
Capiacutetulo 4 Consumo en Maacutequinas de Estado
Sample
Dkl6 Ex2
Dk512
Planet
Prep4
| S |
2 2
1
7
8
M 3 2
3
19
8
IQI 27
14 15
48
16
| 8 |
108 56
30
115
78
Ares bet part
28 25
7
14
9
ares bet part
2 6 4 5
2 3 1 2
1 2
Prob
0247
0218 0175 0052
0041
Power Improv -328
-65 -52
-124
00
Tabla 46 Circuitos donde no se logra mejora en el consumo debido a la alta probabilidad de transicioacuten entre submaacutequinas de estados
Penalidad del periodo de reloj El esquema de sincronizacioacuten produce una degradacioacuten
importante en la velocidad La Figura 418 muestra la maacutexima frecuencia en MHz para
cada circuito implementado con codificacioacuten One Hot La influencia de los latches es
remarcable en tanto que la arquitectura que utiliza el bloqueo de los datos con puertas
ANDs muestra mejores resultados
60
50
40
30
i El Original OH BArchited DArchiexcltec2 DNoBIk laquoBlkAntiacutej
c
u es 20 E x a E
10 i ililllih 1 i I II U I s
Figura 418 Graacutefica de frecuencia donde se observa el impacto negativo de los registros de bloqueo
Partidonado ortogonal Se implemento el esquema de particioacuten ortogonal como se explica
en la seccioacuten 442 Los resultados fueron muy deficientes tanto en aacuterea velocidad asiacute
como en consumo Si bien con estaacute teacutecnica se reduce el nuacutemero de estados total el
151
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
aumento de loacutegica necesaria para la decodificacioacuten de siguiente estado y salida
aumenta el aacuterea y actividad del circuito En la Figura 419 se muestra el aacuterea en CLBs y
en la Figura 420 el retardo en ns de las particiones de los circuitos con arquitectura 1 y
arquitectura 2 respecto de la particioacuten ortogonal Por otra parte en la Figura 421 se
compara el consumo expresado en mWMHz para los mismos circuitos Claramente y
sin excepcioacuten la particioacuten ortogonal muestra peores resultados
Figura 419 Aacuterea de la particioacuten ortogonal respecto de las arquitectura 1 y 2
iexclbullArchitectural MArchitectura 2 D Ortogonal
350 T
Figura 420 Retardo de la particioacuten ortogonal respecto de las arquitectura 1 y 2
152
Capiacutetulo 4 Consumo en Maacutequinas de Estado
bullArchited bullArchiexcltec2 D Ortogonal
18
16
14
12
10
8
6
4
2 1 l-l l l iacute l 1 Uuml i
n n
Mit Figura 421 Consumo de la particioacuten ortogonal respecto de las particiones seguacuten la arquitectura 1 y 2
153
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
4311 Conclusiones de la particioacuten de maacutequina de estado en FPGAs
Esta seccioacuten explora los meacutetodos de particioacuten de maacutequinas de estados para reducir
consumo en FSMs implementadas en FPGAs La principal conclusioacuten es la utilidad de
esta teacutecnica desarrollada para circuitos basados en ceacutelulas y que puede ser adaptado
con eacutexito en FPGAs Se pueden obtener importantes ahorros en el consumo de
energiacutea con esta teacutecnica llegando hasta un 54 Estos resultados pueden mejorar
significativamente en dispositivos que disponen de latches nativos (Xilinx XC4000EX
Spartan23 Virtex-Il)
El esquema de codificacioacuten en las submaacutequinas juega un importante papel los
esquemas basados en codificacioacuten binaria funcionan bien por submaacutequinas pequentildeas
(hasta ocho estados) en tanto que para maacutequinas maacutes grandes la mejor opcioacuten es One
Hot
Por otra cabe destacar que la alternativa de particioacuten ortogonal que si bien disminuye
la cantidad de estados de las submaacutequinas siempre ha dado peores resultados en aacuterea
velocidad y consumo que la teacutecnica aquiacute propuesta
Por ultimo cabe sentildealar que los buenos resultados en cuanto al bajo consumo
dependen de la actividad entre las submaacutequinas de estados Esta teacutecnica resulta
ineficaz en aquellas maacutequinas de estado donde no se puede generar particiones donde
la actividad entre las submaacutequinas sea pequentildea
154
Capiacutetulo 4 Consumo en Maacutequinas de Estado
44 Recomendaciones para la reduccioacuten de consumo en
maacutequinas de estado
Los experimentos realizados en este capiacutetulo permiten generar la siguiente heuriacutestica
para la minimizacioacuten del consumo en maacutequinas de estados La primera
recomendacioacuten aunque trivial es llevar a cabo un disentildeo minimal de la maacutequina de
estados Existen innumerables programas mayoritariamente de libre distribucioacuten para
la minimizacioacuten de estados pero un disentildeo cuidadoso los hace prescindibles
Otra discusioacuten siempre vigente en el disentildeo de FSM es la utilizacioacuten de maacutequina de
Mealy o Moore Las maacutequinas de Moore aunque son maacutes grandes su sincronismo con
el reloj las hace maacutes adecuada para los disentildeos siacutencronos y al no producir glitches
adecuadas para el bajo consumo Existe no obstante para el caso que la
representacioacuten de Mealy es extremadamente maacutes pequentildea que su equivalente de
Moore la posibilidad de generar maacutequinas de Mealy siacutencronas como alternativa viable
al bajo consumo
Una vez definida la maacutequina de estados y en funcioacuten de la cantidad de estados existen
diferentes alternativas Si la maacutequina de estados es pequentildea no superando los ocho
estados las codificaciones binarias son la mejor alternativa La codificacioacuten oacuteptima
depende de las transiciones maacutes probables dentro de la FSM No obstante con
transiciones con la misma probabilidad se demostroacute una clara correlacioacuten aacuterea-
consumo pudieacutendose utilizar el aacuterea como meacutetrica para la mejor codificacioacuten
Para maacutequina de estado entre ocho y dieciseacuteis estados no existe una regla clara
respecto al tipo de codificacioacuten a utilizar no obstante para maacutes de dieciseacuteis estados
One-Hot es mejor alternativa que las codificaciones binarias La reduccioacuten de consumo
debido a la correcta eleccioacuten de la codificacioacuten puede llegar al 57
Respecto de las maacutequinas grandes (maacutes de dieciseacuteis estados) las arquitecturas de
particionamiento de maacutequinas de estado son una alternativa viable La condicioacuten para
que este meacutetodo logre disminucioacuten en el consumo es lograr realizar una particioacuten de
las maacutequinas de estados tal que la probabilidad de pasar de una maacutequina a otra sea
pequentildea Para ejemplos concretos se han logrado disminuciones de hasta el 54
155
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
45 Referencias del Capiacutetulo
[AlcOO] J Alcalde J Rius and J Figueras Experimental techniques to measure current power and energy in CMOS integrated circuits Proceedings ofXV Conference on Design of Circuit and Integrated Systems (DCIS2000) Montpellier France November 2000
[Ald99] Aldec State Editor a graphical FSM entry tool for Xilinx Foundations 2x y 3x 1999 -wwwxilinxcom
[A1Iacute94] M Alidina J Monteiro S Devadas A Gosh M Papaefthymiou Precom-putation-Based sequential logic optimization foacuter Low-Power IEEE Very Large Scale Integration (VLSI) Systems Journal Vol 2 num4 pp426-435 December 1994
[Ash91] PAshar SDevadas and ANewton Optimum and heuristic Algorithms for an Approach to FSM Decomposition IEEE Transaction on Computer-AidedDesign 10(3)296-310 March 1991
[Ben95a] Lucca Benini and Giovanni De Micheli State Assignment for Low Power Dissipation IEEE Journal of Soid State Circuits Vol 30 No 3 pp 258-268 March 1995
[Ben95b] L Benini and G De Micheli Transformation and Synthesis of FSMs for Low Power Gated Clock Implementation Proceedings ofISLP95 International Sjmposium on Low Power Design ACM-SIGDA andIEEE-CAS April 1995
[Ben96] LBenini PSiegel and GDe Micheli Automatic synthesis of low-power gated-clock finite-state machines IEEE Transaction on Computer Aided Design of Integrated Circuit vol15 Issue 6 pp 630- 643 June 1996
[Ben98] L Benini G De Micheli and F Vermeulen Finite-State Machine Partitioning for Low Power In Proceeding ofIEEE International Symposjum on Circuits and Systems (ISCAS 98) volume 2 pages 5-8 Monterey California May-June 1998
[Cho96] S-HChow Y-CHo and THwang Low Power Realization of Finite State Machines Decomposition Approach ACM Transaction on Design Automation in Electronic Systems 315-340 July 1996
[Dem88] G De Michelli RK Briton y A San Giovanni-Vincentelliacute Optimal State Assignment for Finite State Machines IEEE transaction on CAD vol CAD-4 pages 269-284 July 1985
[Dev88] Devadas S Ma H Newton A and Sangiovanni-Vincentelli A MUSTANG State assignment of finite state machines targeting multilevel logic implementations IEEE Transaction on Computer-Aided Design 7 12 December) 1988
156
Capiacutetulo 4 Consumo en Maacutequinas de Estado
[Dun97j JDunoyer FPeacutetrot LJacomme Intrinsic Limitations of Logarithmic Encodings for Low Power Finite State Machines Mixed Design of VLSI Circuit Conference pp 613-618 Pologne 1997
[Gei91] MGeiger TMuumlUer-Wipperfuumlrth FSM Decomposition Revisited Algebraic Structure Theory Applied to MCNC Benchmark FSMs 28gt ACMIEEE Design ofAutomation Conference (DAC 91) Amsterdam The Netherlands Februaryl991
[Hac91] GD Hachtel J-K Rho F Somenziacute and R Jacoby Exact and Heuristic Algorithms for the Minimization of Incompletely Specified State Machines In Proceedings of the European Conference on Design Automation pages 184mdash191 Amsterdam The Netherlands February 1991
[Hac94] G Hachtel JK Rho F Somenzi and R Jacoby Exact and heuristic algorithms for the minimization of incompletely specified state machines IEEE Transaction on Computer Aided Design (CAD) 13 (2) ppl67-177 February 1994
iexclHar60] Juris Hartmanis Symbolic Analysis of a decomposition of information processing Information Control 3154-178 June 1960
[Lin89] B Lin and AR Newton Synthesis of Muacuteltiple Level Logic from Symbolic High-Level Description Languages In Proceedings of International Conference on VLSI pages 187-196 August 1989
iexclLis88] Bob Lisanke Logic synthesis and optimization benchmarks Technkal report MCNC Research Triangle Park North Carolina December 1988
[MarOO] M Martiacutenez M J Avedillo J M Quintana M Koegst ST Rulke and H Susse Low Power State Assignment Algorithm Proceedings of XV Conference on Design of Circuit and Integrated Systems (DCIS2000) pp 181-187 Montpellier France November 2000
[Men03] Luis Mengibar Luis Entrena Michael G Lorenz and Rauacutel Saacutenchez-Reillo State Encoding for Low-Power FSMs in FPGA PATMOS 2003 LNCS 2799 Springer-Verlag Berlin pp 31-402003
[Men99] L Mengibar M Garda D Martiacuten and L Entrena Experiments in FPGA Characterization for Low-power Design Proceedings of XIV Conference on Design of Circuit and Integrated Systems (DCIS99) Palma de Mallorca November 1999
[Mon98] J Monteiro A Oliviera Finite State Machine Decomposition for Low Power Proceedings 35th Design Automation Conference (DAC98) San Francisco pp 758-7631998
[New88] A R Newton S Devadas Hi-Keung Ma A San Giovanni-Vincentelli MUSTANG State Asiacutegnament of Finite State Machine Targeting Multilevel Logic Implementation IEEE transaction on Computer Aided Design (CAD) December 1988 ^sraquo52225^
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
[Not99] Winfried Noth and Reiner Kolla Spanning Tree Based State Encoding for Low Power Dissipation In Vroceedings of Design Automation and Test in Europe (DATE 99) pp 168-174 Munich Germany March 1999
[Pau59] MC Paull and SH Unger Minimizing the Number of States in Incompletely Specified Sequentiacuteal Switching Functions IREacute Transacntildeons on Electronic Computen EC-8356-367 September 1959
[PreOO] Programmable Electronics Performance Corporation (PREP) Benchmarks (Programmable Electronics Performance Company) Avilable from httpwwwpreporg
[San90] A San Giovanni-Viacutencentelli T Villa NOVA State Asignament of Finite State Machines for Optiacutemal Two Level Logic Implementatiacuteon IEEE transaction on Computer AidedDesign (CAD) September 1990
[Sen92] E Sentovich K Singh L Lavagno C Moon R Murgai A Saldanha P Stephan R Brayton and A Sangiovanni-Vincentelli SIS A System for Seq Circuit Synthesis Technical Report Mem No UCB ERL M9241 Universidad of California Berkeley 1992
[SheOO] RShelar HNarayanan MDesai Orthogonal Partitioning and Gated Clock Architecture for Low Power Realization of FSMs IEEE Int ASICSOC conference Sep 2000 pp 266-270
[she99] RShelar MP Desai HNarayanan Decomposition of Finite State Machines for Aacuterea Delay Minimization IEEE Conference on Computer Design (ICCD99) Austin 10-13 pp 620-625 Oct 1999
[Sta02] StateCAD 503 a graphical entry tool for FSM distributed with Xilinx ISE foundatiacuteons tolls 4x wwwxilinxcom
[Sut02a] G Sutter and E Boemo Low Power Finite state machines in FPGA Bynary vs One hot encoding VIII Workshop Iberchip Guadalajara Meacutexico April 2002
[Sut02b] G Sutter E Todorovich S Lopez-Buedo and E Boemo Low-Power FSMs in FPGA Encoding Alternatives Lecture Notes in Computer Science Vol2451 pp363-370 Berliacuten Springer-Verlag sept 2002
[Syn99] Synopsis FPGA Express User Guide versioacuten 23 1999 FPGA Express home page httpwwwsynopsyscomproducts fpgafpga_expresshtm
[Tek02] Tektronbc inc TLA 700 Series Logic Analyzer User Manual 2002 available at httpwwwtektronixcom
[TodOO] E Todorovich G Sutter N Acosta E Boemo and S Loacutepez-Buedo End-user low-power alternatives at topological and physical leveacuteis Some examples on FPGAs Proceedings ofXV Conference on Design of Circuit and Integrated Systems (DCIS2000) Montpellier France November 2000
[Tsu94a] C-Y Tsui MPedram A Despain Exact and Approximate Methods for Calculating Signa and Transicioacuten Probabilities in FSMs 31 st ACMIEEE
158
Capiacutetulo 4 Consumo en Maacutequinas de Estado
Design Automauumlon Conference (DAC94) pp 18-23 San Diego CA USA June 1994
[Tsu94b] Chi-Ying Tsui Massoud Pedram Chih-Ang Chen and Alvin Despain Low Power State Assignment Targeting Two- and Multi-level Logic Implementations Proceedings of ACMIEEE International Con of Computer-AidedDesign pp 82-87 November 1994
[VIacute190] TVilla ASangiovanni-Vincentelli NOVA State assignment for fiacutenite state machines for optiacutemal two-level logic implementation IEEE Transaction on CAD Vol9-9 pp905 Sept 1990
[WuOO] X Wu M Pedram and L Wang Multi-code State Assignment for Low Power Design IEEE Proceedings-Circuits Devices and Systems Vol147 No5 pp271-275 Oct 2000
iexclXilOOa] Xilinx inc Xilinx software manual Synthesis and Simulation Design Guide Encoding State Machines wwwxilinxcom 2000
[XilOOb] Xilinx Inc Xilinx Foundation Tools F31i user Guide 2000 available at wwwxilinxcomsupportlibraryhtm
[XIacute103] Xilinx inc Data Feedback and Clock Enable Development system design guide Chapter2 Design Flow 2003
[XIacute199] Xilinx Inc XC4000E and XC4000X Series Field Programmable Gate Arrays Product Specification (Versioacuten 16) May 1999
[Yan91] Saeyang Yang Logic Synthesis and Optimization Benchmarks User Guide Versioacuten 30 Tecbnical report MCNQ Research Triangle Park North Carolina January 1991
159
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
160
Capiacutetulo 5 Experimentos sobre Bloques Aritmeacuteticos
Este capiacutetulo examina alternativas a nivel algoriacutetmico para diferentes bloques
aritmeacuteticos Por un lado se examinan las opciones para la multiplicacioacuten modular
operacioacuten central en los caacutelculos criptograacuteficos maacutes tarde se presenta un experimento
cuyos resultados poseen un efecto inesperados desde el punto de vista del consumo
como es la suma por el algoritmo de carry-skip a continuacioacuten se examinan los
algoritmos y arquitecturas para la divisioacuten entera Por uacuteltimo se analizan las
alternativas para la divisioacuten de nuacutemeros fraccionarios operacioacuten tiacutepicamente llevada a
cabo sobre la mantisa en las operaciones de divisioacuten de nuacutemeros en coma flotante Se
presentan resultados para maacutes de 250 circuitos y mediciones del consumo en maacutes de
130 casos
51 Introduccioacuten
En la seccioacuten 27 se reconociacutea el efecto directo que poseen la complejidad la precisioacuten
y la regularidad de los algoritmos sobre el consumo Otro aspecto importante aunque
maacutes sutil es reconocer cuan bien se adecuacutea un algoritmo a una arquitectura de bajo
consumo (como las explicadas en las seccioacuten 25 y 26) Para una eficiente
implementacioacuten de los algoritmos orientados al bajo consumo existen caracteriacutesticas
deseables como son la concurrencia y la modularidad de los algoritmos
Existen asimismo otras caracteriacutesticas auacuten maacutes sutiles a tener en cuenta como son la
capacidad de producir o no movimientos espurios (glitches) dentro de la ruta de datos
la representacioacuten de los datos utilizados por el algoritmo asiacute como la correlacioacuten de
datos que se producen producto del algoritmo utilizado
161
Teacutecnicas pata la Reduccioacuten de Consumo en FPGAs
52 Multiplicacioacuten modular
Se describen en estaacute seccioacuten tres algoritmos de multiplicacioacuten modular multiplicacioacuten
y reduccioacuten sumas y desplazamientos y por uacuteltimo multiplicacioacuten de Montgomery Se
brindan estimaciones de los costes correspondientes tanto para las versiones
combinacionales como secuenciales Por uacuteltimo se muestran los resultados praacutecticos
para implementaciones combinacionales y secuenciales utilizando dispositivos
programables de la familia XC4K
521 Introduccioacuten a la multiplicacioacuten modular
Gran parte de los algoritmos criptograacuteficos de clave puacuteblica utilizan como primitivas
de caacutelculo operaciones en un anillo finito (Zm) o en un cuerpo finito (GF^J) Es el
caso del RSA [Riv78] y de los algoritmos basados en curvas eliacutepticas [Bla99] Por tanto
la generacioacuten de modelos VHDL de multiplicadores modulares es un punto de partida
importante Por lo general los multiplicadores modulares que a su vez sirven para el
caacutelculo de la funcioacuten exponencial y mod m se sintetizan en base al algoritmo de
Montgomery [Mon85] Es un meacutetodo eficiente para la generacioacuten de procedimientos
que ejecutan la exponenciacioacuten modular [Men96] y ha sido utilizado frecuentemente
para la realizacioacuten en hardware de parte del cifrado y descifrado asiacute como de la
generacioacuten de las claves del RSA [FisOl] [ManOl] [Blu99] Sin embargo es un
meacutetodo poco eficiente cuando se trata de multiplicaciones modulares propiamente
dichas [Men96] En esta seccioacuten se proponen y comparan los tres algoritmos antes
mencionados multiplicacioacuten y reduccioacuten sumas y desplazamientos multiplicacioacuten de
Montgomery
La seccioacuten 522 describe los algoritmos de multiplicacioacuten modular utilizados La
seccioacuten 523 brinda detalles de la siacutentesis y en la siguiente seccioacuten hace lo propio para
las implementaciones secuenciales Por uacuteltimo la seccioacuten 525 presenta los resultados
en consumo
522 Algoritmos para la multiplicacioacuten modular
Dados tres nuacutemeros naturales xj y m y una cantidad de diacutegitos n tales que
x lt mj lt m y m lt 2
162
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
Se proponen tres algoritmos mdash con los circuitos correspondientes mdash para calcular
Z = xy mod m
5221 Multiplicacioacuten y reduccioacuten (Multiply and Reduceacute)
El primer algoritmo consiste en (1) multiplicar x por y generando asiacute un resultado
intermedio p de 2raquo bits y (2) reducirraquo moacutedulo m
La multiplicacioacuten de dos nuacutemeros naturales se descompone en una serie de
desplazamientos hacia la izquierda y de sumas condicionales Es el claacutesico algoritmo de
sumas y desplazamientos (shift and add)
Algoritmo 521 mdash multiplicacioacuten por sumas y desplazamientos
p=0
for i in 0 n-1 loop
p=(p + x(i)y)2
end loop
p = p(2n)
La reduccioacuten moacutedulo m se descompone en una secuencia de desplazamientos hacia la
izquierda restas y bifurcaciones El algoritmo con restauracioacuten (resforing) es simular a la
divisioacuten a mano
Algoritmo 522 mdash reduccioacuten con restauracioacuten
module = m(2n)
r(0)=p
for i in 1 n loop
remainder = (2r(i-l))-module
if remainder lt 0 then
rreg = 2r(i-l)
elser
(i) = remainder
end if
end loop
z = r(n) 2n
163
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Un algoritmo diferente sin restauracioacuten (non-restorin^ utiliza como primitiva de caacutelculo
un sumador restador cuya operacioacuten depende de una condicioacuten binaria previamente
calculada
Algoritmo 523 mdash reduccioacuten sin restauracioacuten
module = m(2n)
r(0) = (2n) - module
for i in 1 n-1 loop
if r(i-l)lt0 then
r(i) = (2r(I-l))+ module
else
r(i) = (2r(M))- module
endif
end loop
z = r(n-l) (2n)
if z lt 0 then z = z + m end if
Obseacutervese que el algoritmo con restauracioacuten incluye una bifurcacioacuten basada en el bit
de signo de un resultado ipmainder) calculado durante la misma etapa de la iteracioacuten
en tanto que la bifurcacioacuten incluida en el algoritmo sin restauracioacuten se basa en el bit de
signo de un resultado (r(i-1J) calculado durante la etapa anterior
5221 Suma y desplazamiento (shift and add)
En lugar de multiplicar y luego reducir moacutedulo m el nuacutemero de 2raquo bits asiacute obtenido
otra opcioacuten consiste en ejecutar la multiplicacioacuten empezando con el bit maacutes
significativo de x y reducir en cada etapa
Algoritmo 524 mdash reduccioacuten en cada etapa
z=0 for i in 1 n loop
z = (z2 + x(n-i)y) mod m
end loop
El valor maacuteximo de 2+x(n-i)y es
164
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
2m-) + (m-Y) = 3(m-iacute)
Por tanto
2pound + x(n-i)j = mq + r
Donde q e 012 y el caacutelculo de 2 + x(n-i)y moacutedulo m puede reafoarse de la forma
siguiente
Algoritmo 525
pl = z2
p2 = pl + x(n-i)y - m
if p2 lt 0 then
p3 = p2 + m
z = p3
else
p3 = p2 - m
if p3 lt 0 then
2 = p2
else
2 = p3
end if
endif
Se puede simplificar el algoritmo 525 Por un ladogt2 yp3 no pueden ser negativos al
mismo tiempo
pl = 2 + x(n-i)j - m
Con lo cual -m ltp2 lt 2nr uacutep2 lt 0 entonces
p3 =p2 + mgt-m + m = 0
Por otra parte en lugar de calcular
plmdashp + xin-fyy - m
Se puede evaluar k = m-j de antemano (fuera de la iteracioacuten) de tal manera quegt2 =p-
m oacutep2 =pl-k El algoritmo asiacute obtenido es el siguiente
165
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Algoritmo 526 - suma y desplazamiento
z = 0 k = m-y
for i in 1 n loop
if x(n-i) = 0 then w = m
else w = k
endif
pl = z2 p2 = pl - w
if p2lt0 then p3 = p2+m
else p3 = p2-m
endif
i fp3lt0thenz =p2
else z = p3
endif
end loop
5223 Multiplicacioacuten de Montgomery
Si m es impar el mayor comuacuten divisor de 2 y m es igual a 1 con lo cual existe un
nuacutemero natural representado como 2- tal que 2-2 = 1 mod m Montgomery
[Mon85] propuso un algoritmo que calcula
Z = xy 2- mod tu
el asiacute llamado producto de Montgomery Cada etapa de la iteracioacuten consta de dos
sumas condicionales
Algoritmo 527 mdash algoritmo de Montgomery
r(0) = 0
for i in 1 n loop
a = r(i-l) + x(i-l) y
rreg = (a + a(0) m) 2
end loop
if r(n) lt m then z = r(n)
else z = r(n) - m
end if
166
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
El algoritmo no calcula xy mod m Sin embargo obseacutervese que si xy y = xy mod m
son sustituidos por x = x2 mod my =y2 mod m y spound = ^2 mod ^ entonces
pound = 2 mod raquo
Ello significa que siquest es el producto de Montgomery de x y y Dicho de otra forma se
puede definir una transformacioacuten basada en la aplicacioacuten de Zm en Zm definida por
a mdashgt a2 mod m de tal manera que dentro del dominio transformado el producto
moacutedulo m sea sustituido por el producto de Montgomery Obseacutervese que la
transformacioacuten directa a mdashgt a2 mod m es equivalente a la multiplicacioacuten de
Montgomery por 22n mod m y la transformacioacuten inversa a mdashraquo a2-n mod m a la
multiplicacioacuten de Montgomery por 1
Consideacuterese ahora el claacutesico algoritmo de exponenciacioacuten basado en una secuencia de
multiplicaciones que calcula e =y
Algoritmo 528
e = l
for i in 1
e = ee
ifx(n-i)
e=
endif
end loop
nloop
=1then
ey
Para calcular e = y mod m se modifica el algoritmo anterior de la forma siguiente 1 e
y son sustituidos por 12 mod m cy2 mod m el producto de los enteros por el
producto de Montgomery y el resultado final e por e2 mod m Supoacutengase que los
valores de one_m = 2 mod m y de two_m mdash 22- mod m hayan sido previamente
calculados (para todos los valores uacutetiles de m)
Entonces el siguiente algoritmo en el cual MM es un procedimiento que ejecuta la
multiplicacioacuten de Montgomery calcula e =yx mod rgtr
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Algoritmo 529 - exponenciacioacuten por Montgomery
e = one_m
y = MM(y two_m)
for i in 1 n loop
e = MM(ee)
if x(n-i) = 1 then e = MM(ey)
endif
end loop
e = MM(el)
523 Detalle de la siacutentesis
Los tres tipos de algoritmos de multiplicacioacuten modular han sido sintetizados en forma
de circuitos combinacionales e integrados en FPGA de la familia XC4K Para la
siacutentesis de los algoritmos (521 y 522 o 523 526 y 527) se necesitan las primitivas
de caacutelculo siguientes
suma ra+b resta r = a + (2n-b) suma resta r = a + (1-x)b + x (2n - b) suma condicional r = a + xb resta condicional r = a + x (2nb) seleccioacuten r = (1-x)a + xb
Donde a y b son nuacutemeros de n bits y x un nuacutemero de un solo bit Todas se sintetizan
con niexcl2 + 1 bloques loacutegicos configurables (CLBs) de la familia XC4000 excepto la
seleccioacuten (multiplexor 2-1 de n bits) que se sintetiza con n2 CLBs
Obseacutervese que el coste de un multiplexor 2-1 es praacutecticamente el mismo que el de un
sumador restador (n2 vs n2 + 1) es decir el de n LUTs La conclusioacuten seriacutea
bastante diferente en el caso de la versioacuten Standard Cellaacutee las mismas primitivas
5231 Multiplicacioacuten y reduccioacuten
La multiplicacioacuten (algoritmo 521) incluye n sumas condicionales El coste
correspondiente es igual a n(n2 + 1) CLBs Para ejecutar la reduccioacuten con el
algoritmo 522 (con restauracioacuten) se necesitan n restadores condicionales y n
multiplexores mientras que el algoritmo 523 (sin restauracioacuten) soacutelo incluye n-1
168
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
sumador-restador una resta inicial y una suma condicional final El coste
correspondiente es (raquo+)(raquobull + T) CLBs La Figura 51 muestra las celdas elementales
y un esquema del reductor modulo m con el algoritmo 523 El coste total es igual a
(bullrnuloacutepuumlcacioacuten y reduccioacuten ^T Z0tf T 1 lArgtS
a(2n-ln-l) m(n-l0)
i iexcli signo Sumador-Restador
n+1 bit operacioacuten bdquo
(n-l0)
signo
a a(n0) m(n-l0)
1
m(n-l0) a(n-2) I
Sumador-Restador n+1 bit
signo Restador n+1 bit
I Reste
operacioacuten (n-l0)
signo
Resta(n0)
m(n-l0) a(raquo-3) I
_L Sumador-Restador
n+1 bit operacioacuten
R(n-10)
a(n0) m(n-l0) signo
-1 a a(0)
m(n-l0)
Sumador-Restador n+1 bit
signo | Sumador-Restador pveracioacuten n+1 bit I
operacioacuten (n-l0)
I Suma o Resta (n-1 0)
m(n-l0)
l Sumador n bit
operacioacuten
Z mdash amodM
Figura 51 Reductor moacutedulo M a Celda elemental del algoritmo con restauracioacuten b Celda elemental algoritmo sin restauracioacuten c Implementacioacuten combinacional algoritmo sin restauracioacuten
169
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
5232 Sumas y desp lazamientos
Para la ejecucioacuten del algoritmo 526 se necesitan
un primer restador (caacutelculo de M)
n multiplexores (seleccioacuten de iv) n restadores de n+1 bits (caacutelculo dep2 es necesario antildeadir un bit para poder detectar el signo aacuteamppZ) n sumadores restadores de n+1 bits (caacutelculo de p3 se necesita un bit adicional para detectar el signo aacuteep2) n multiplexores (seleccioacuten de $
El coste correspondiente es igual a ni2 + 1 + raquo(raquo2 + (laquo+ l ) 2 + 1 + ( laquo + l ) 2 + 1 +
raquo2) es decir
^-sumas y desplazmientos mdash iquestraquotr + Jofiacute + 1 C^Lltx5S
0 M K M Y
i ni ni 4 n_i M K=M-Y M
P 2 ^ j
0 l P amp n+1
Restador (n+1 bits)
n+1 Pl
X(n-1)-
bullX i
Sumador Restador (n+1 bits)
n+1 P2
P2lt0 PlsinoP2
Sin el bit de maacutes peso
R
Muiacute cel
P K O X(-2gt suma resta
M K
Muiacute cel
~
restador
nIacuteK- M-Y
M K
l j X(0) Muiacute cel
b 77 I R = ]
Figura 52 Multiplicador modular shintildeandadd a Celda de caacutelculo b arreglo combinacional
170
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
5233 Multiplicacioacuten de Montgomery
El algoritmo 527 incluye n sumas condicionales de raquo+l bits (a) tiacute sumas
condicionales de laquo+2-bits (r(i)) una resta de laquo+1 bits (r(n) - ni) un multiplexor de n
bits (seleccioacuten de $ El coste correspondiente es igual a raquo((laquo+l)2 + 1 + (raquo+2)2 + 1)
+ (raquo+l)2 + 1 + raquo2 es decir
CMomgomoy = t + 4 5 raquo + 1 5 CLBs
r_i(n0) b(n-l0)
i_l Suma condicional
n+1 bits laquom
Sa(n0)
signo
m(n-l0)
iexclI Suma condicional
n+2 bits
Sb(n-ll) = r_o(n0)
Y Sa(0)
Figura 53 Celda de caacutelculo del multiplicador de Montgomery
5234 Comparacioacuten en aacuterea y velocidad
Los tres tipos de multiplicadores modulares (m_r multiplicacioacuten y reduccioacuten s_d
sumas y desplazamientos mont multiplicador de Montgomery) han sido integrados en
dispositivo programable de la serie XC4000 La descripcioacuten inicial es un modelo
VHDL sintetiacutezable utilizando los paquetes de funciones aritmeacuteticas del IEEE Los
sumadores-restadores sumadores condicionales restadores condicionales y
multiplexores se modelaron con sentencias ifthen ese
ifx=0 then r ltmdash a + b ese r lt=a - b endif ifx=0 then r lt= a ese r lt= a + b end if ifx=0 then r lt= a ese r lt= a - b end if ifxmdashO then r lt= o ese r lt= b end if
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
En la tabla 51 se presenta el nuacutemero de CLBs y el retardo maacuteximo (en ns) soacutelo para 8
y 16 bits dado que los multiplicadores de 24 y 32 bits no caben dentro de la matriz
elegida
bits 8 16 24 32
Aacuterea (CLBs) m_r 85 297 637 1104
s_d 157 563 1232 2160
mont 102 334 694 1166
Retardo (ns) m_r 186 454 --
s_d 201 724 --
mont 167 325 --
Tabla 51 Nuacutemero de CLBs y Retardo Maacuteximo (ns) para los multiplicadores modulares secuenciales
Obseacutervese que los costes reales son muy parecidos a los que se habiacutean calculado Las
conclusiones praacutecticas son las siguientes
1 Los costes de los multiplicadores m_r (multiplicacioacuten y reduccioacuten) y mont
(producto de Montgomey) son casi ideacutenticos (tf2 + 25raquo + 1 vs raquo2 + 45raquo +
15) Sin embargo el multiplicador de Montgomery es maacutes raacutepido
2 El coste del multiplicador s_d (sumas y desplazamientos) es casi el doble del
de los anteriores (2W2 + 35raquo + 1) Ello se debe al alto coste relativo de los
multiplexores
El algoritmo por sumas y desplazamientos debe ser descartado por lo menos en el
caso de un circuito combinacional integrado dispositivos de la familia XC4K A la
hora de elegir entre Multiplicacioacuten y Reduccioacuten y Multiplicacioacuten de Montgomery
se deben tener en cuenta los comentarios siguientes
1 El producto de Montgomery (algoritmo 527) es maacutes raacutepido
2 El caacutelculo de la funcioacuten exponencial con la multiplicacioacuten de Montgomery
(algoritmo 529) necesita el caacutelculo previo de 2 mod m y de 2Z mod m para
todos los valores de m susceptibles de ser utilizados Dichos valores podriacutean
ser almacenados en la memoria del sistema Una solucioacuten alternativa consiste
en reconfigurar la matriz de forma especiacutefica para cada valor de m
3 El multiplicador de Montgomery no calcula pound = xy mod m sino siquest = xj2-
mod m Para obtener ^ a partir de iexcliquest es necesario haber calculado previamente
172
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
el valor de 2Z mod m y se debe ejecutar un segundo producto de
Montgomery dado que ^ = ^22-2- mod m Por tanto el meacutetodo de
Montgomery es ineficiente para realizar una multiplicacioacuten modular aislada
(cuando no sirve para calcular la funcioacuten exponencial modular)
524 Realizacioacuten secuencial
Para grandes valores de n el circuito debe ser (por lo menos parcialmente)
secuencializado Los tres tipos de multiplicadores modulares han sido sintetizados y
comparados en base a las hipoacutetesis siguientes el circuito completamente
secuencializado ejecuta el cuerpo de la iteracioacuten principal de los algoritmos 521 y
523 (m_r) 526 (s_d) y 527 (mont) respectivamente ademaacutes contiene registros para
almacenar las variables del algoritmo un contador y la loacutegica de control El circuito se
integra en la misma FPGA que antes
M K r
X J
func
^ mdash gt bull
clk
n
MUL_CEL
n -1
P
gt Registro P
laquo bull
Registro Z
fin ^ Result
M Y
restador
n K = M-Y
iacuteni
clk
mi
bullgt contador fin
X
clk -gtgt
Shifregister X i
Figura 54 Esquema de la implementacioacuten secuencial del algoritmo de sumas y desplazamientos
Para la ejecucioacuten secuencial de los algoritmos los recursos adicionales que se necesitan
son registros registros de desplazamiento y contadores Cada CLB de la familia
XC4K contiene dos biestables con lo cual los registros de n bits se sintetizan con raquo2
173
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
CLBs Para los contadores compuestos de n biestables (2 estados) el nuacutemero miacutenimo
de CLBs es igual a n2 En el caso de los contadores maacutes complejos (bidirecdonales
programables con habilitacioacuten del reloj) se necesitan CLBs adicionales Como regla
praacutectica se supone que el coste de un contador de n bits es del orden de n CLBs En la
Figura 54 se puede ver un esquema de la implementacioacuten secuencial del algoritmo de
sumas y desplazamientos
Para la siacutentesis secuencial de los algoritmos 521 y 522 (multiplicacioacuten y reduccioacuten)
se usan
un sumador condicional de n bits un sumador restador de n bits un sumador condicional de n bits (etapa final) un contador de 2raquo estados dos registros de desplazamiento de n biacutets un registro de 2raquo bits una maacutequina de cuatro estados
El coste correspondiente es del orden de n2 + 1 + n2 + 1 + n2 + 1 + log2(2laquo) +
2(raquo2) + (2raquo)2 + 4 es decir
(^multiplicacioacuten y reduccioacuten mdash 3D7 T 10g2 bull o
Para la siacutentesis secuencial del algoritmo 526 (sumas y desplazamientos) se utilizan
un restador de n bits dos multiplexores de n bits un restador de n+1 bits un sumador restador de n+1 bits un contador de n estados un registro de desplazamiento de n bits un registro de n bits
El coste correspondiente es del orden de n2 + 1 + 2n2 + (laquo+l)2 + 1 + (+l)2 +
1 + log2raquo + n2 + n2 es decir
(asumas y desplazamiento = J5 IacuteOgtfl + 4
La siacutentesis del algoritmo 527 (Montgomery) se hace con
un sumador condicional de n+1 bits un sumador condicional de n+2 bits un restador de n+1 bits un multiacuteplexor de n bits un contador de n estados
174
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
un registro de desplazamiento de n bits un registro de n+1 bits
El coste correspondiente es del orden de (laquo+l)2 + 1 + (laquo+2)2 + 1 + (raquo+l)2 + 1
+ raquo2 + log2laquo + raquo2 + (raquo+l)2 es decir
CMontgomery = 3 raquo + log2raquo + 55
Los resultados de la implementacioacuten en FPGAs se recogen en las Tabla 52 (nuacutemero
de CLBs y frecuencia maacutexima en MHz) El nuacutemero total de ciclos es igual a n para los
multiplicadores s_d (sumas y desplazamientos) y mont (Montgomery) y a 2raquo para los
multiplicadores m_r (multiplicacioacuten y reduccioacuten) Obseacutervese que los costes reales son
muy parecidos a los calculados
bits 8 16 32 64 128 256
Aacuterea (CLBs) m_r 57 72 126 240 465 915
s_d 33 63 119 232 457 905
Mont 34 59 108 204 398 783
Retardo (ns) m_r 25 224 169 --
s_d 172 127 71 ---
Mont 321 258 244 ---
Tabla 52 Nuacutemero de CLBs y Frecuencia maacutexima (MHz) para multiplicadores modulares secuenciales
525 Consumo de potencia en la multiplicacioacuten modular
Para medir el consumo de los diferentes multiplicadores se utilizo el arreglo
experimental y la metodologiacutea descrita en el Apeacutendice A Adicionalmente cada circuito
fue medido a 100 Hz 2 3 4 y 5 MHz El coacutedigo VHDL fue sintetizado con FPGA
express [Fpg99] [FpgOl] y el entorno de desarrollo de Xilinx [XilOOb] en un dispositivo
XC4010EPC84-4 |Xil99]
5251 Consumo en implementaciones combinacionales
La entradasalida de los circuitos secuenciales fue registrada y un ancho de ocho bits
en la ruta de datos fue elegido En la tabla 53 se puede ver un resumen del consumo
aacuterea y retardo de los circuitos
175
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Energiacutea (njoules) Aacuterea (CLBs) Retardo (ns)
M_r 960 85 186
s_a
1864 157 201
mont 927 102 167
Tabla 53 Aacuterea retardo y consumo (Area-Time-Energy) de los multiplicadores modulares combinacionales
Se observa que la implementacioacuten de Montgomery (moni) consume menos potencia
que multiplicar y reducir (M_f) a pesar de utilizar mayor aacuterea El algoritmo de
Montgomery posee aproximadamente un 4 menos de transiciones a la salida para el
patroacuten de pruebas utilizado Esto es a causa de que el algoritmo de Montgomery no
computa = xy mod m sino en realidad siquest = xy2- mod m
Las medidas muestran que el algoritmo de multiplicar y reducir (M_r) y el algoritmo de
Montgomery (moni) tienen no solo praacutecticamente la misma figura de aacuterea y retardo
sino que tambieacuten similar consumo No obstante el multiplicador de Montgomery es
levemente maacutes raacutepido y consume menos potencia El consumo del algoritmo de
desplazar y reducir (s_a) asiacute como el aacuterea es alrededor del doble que los algoritmos
anteriores
5252 Consumo en implementaciones secuenciales
En las implementaciones secuenciales se separoacute la potencia dinaacutemica en dos
componentes Por un lado la potencia de sincronizacioacuten (debida al reloj y los flip-
flops) y por otro la loacutegica combinacional (debida a la ruta de datos) Como se puede
ver en los resultados de la tabla 54 la potencia de sincronizacioacuten es lineal con la
cantidad de registros utilizados
Consumo dinaacutemico (njoules)
Consumo de sincronizacioacuten (njoules)
Consumo ruta de datos (njoules)
Aacuterea (CLBs)
Flip - Flops (Cantidad)
Maacutexima Frecuencia (Mhz)
Retardo total (ns)
m_r
715
468
247
57
67
25
320
s_a
524
262
262
33
37
172
465
mont
386
272
111
34
31
321
249
Tabla 54 Aacuterea retardo y consumo de los multiplicadores modulares secuenciales
176
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
La implementacioacuten secuencial del algoritmo de Montgomery consume menos
potencia que las otras alternativas El circuito de multiplicar y reducir tiene la peor
figura de consumo y utiliza el doble de ciclos de reloj para computar el resultado
Cabe destacar que la energiacutea consumida medida en nanojoules es menor en las
implementaciones secuenciales que en las puramente combinacionales Esto se
justifica en el hecho de que las etapas de registros disminuyen el efecto avalancha de
gliuhes La potencia de sincronizacioacuten en estos casos es mayor que la potencia
combinacional
Otro punto a destacar es que en estas mediciones tanto en circuitos secuenciales
como combinacionales se cumple la ley empiacuterica de que el circuito maacutes raacutepido es el
que menos consume
Por uacuteltimo en la Figura 55 se muestra la relacioacuten de aacuterea-retardo-consumo (ATP
Area-Time-Poiver) para los diferentes multiplicadores modulares Donde el postfijo
comb y sed en los circuitos se refiere a las implementaciones combinacionales y
secuenciales respectivamente
De la figura se puede extraer la mayor velocidad de los circuitos combinacionales a
expensas de aacuterea y consumo Por ejemplo el circuito Montgomery combinacional (c)
el retardo disminuye en un factor 15 respecto de la versioacuten secuencial (f) en tanto el
aacuterea aumenta en un factor de 3 y el consumo en 25
Figura 55 Aacuterea mdash retardo mdash consumo para los multiplicadores modulares
177
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
526 Sugerencias para la multiplicacioacuten modular
Para calcular e =jx mod m donde m pertenece a un conjunto conocido de valores (de
tal manera que los valores de 2 y 22a moacutedulo m puedan ser calculados de antemano)
el algoritmo de Montgomery muestra la mejor figura de consumo (tambieacuten aacuterea y
retardo) independientemente del tipo de circuito (combinacional o secuencial)
Para calcular = xy mod m la versioacuten combinacional del algoritmo m_r
(multiplicacioacuten y reduccioacuten) es mejor que la del algoritmo s_d (sumas y
desplazamientos) En el caso de las versiones secuenciales ambos meacutetodos dan
resultados similares en cuanto al aacuterea y velocidad (teniendo en cuenta el hecho de que
para multiplicar y reducir se necesitan 2raquo ciclos en lugar de ti) pero la potencia del
desplazar y sumar (s_a) es claramente menor
Desde el punto de vista del consumo se prueba que la eleccioacuten del algoritmo correcto
puede dar reducciones de consumo del orden del 50 en los casos combinacionales
(Montgomery vs desplazar y sumar) del 54 en el caso secuencial (Montgomery vs
Multiplicar y reducir) El retardo de los los circuitos puede ser utilizado como meacutetrica
indirecta para determinar el algoritmo que menos consume
Por otra parte la energiacutea consumida para realizar la misma operacioacuten en las versiones
secuenciales es menor que en las versiones combinacionales (hasta superar el 58 de
reduccioacuten en el algoritmo de Montgomery) debido a la disminucioacuten de los glitches al
reducir la profundidad loacutegica
178
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
53 Sumadores de alta velocidad
En esta seccioacuten se analiza el algoritmo de adicioacuten de alta velocidad conocido como
carry skip De los algoritmos alternativos del sumador rippk-carry el carry skip parece
por su estructura que ha de tener menos glitcbes producto de una menor propagacioacuten
del acarreo y consecuentemente menos consumo Basaacutendose en esta idea y en el
hecho analizado y descrito en la seccioacuten 32 que los circuitos maacutes veloces consumen
menos se llevaron a cabo varios experimentos Sin embargo las mediciones negaron
la suposicioacuten inicial de la reduccioacuten de consumo En la seccioacuten 5333 se explica la
causa
Aunque las teacutecnicas de carry-look-ahead (CLA) parecen ser maacutes veloces que las de carry
skip pCor02] [ParOO] [ObeOl] en algunas tecnologiacuteas especificas esto no puede ser
realmente explotado De hecho la implementacioacuten del CLA en FPGAs no tiene
buenos resultados [HauOO] Por el contrario el uso de los canales de acarreo raacutepido
(fast carry propagation channels) de las FPGAs son particularmente atractivos para
implementar el carry-skip Aquiacute se analizaran circuitos sumadores con operandos de
hasta 1024 bits La suma con grandes operandos es de gran utilidad en las operaciones
criptograacuteficas
531 Sumador riacutepple-carry
Las FPGAs en general poseen recursos de computacioacuten para generar sumadores
raacutepidos [XilOl] [Xil03a] Por ejemplo las familias actuales (Spartan 23 y Virtex II)
incluyen puertas loacutegicas y multiplexores que junto a las tablas de look-up de propoacutesito
general permiten construir sumadores de tipo rippk-carry de forma eficiente
En la Figura 56 se puede ver una celda baacutesica de un sumador La cadena de acarreo
conecta dos celdas de sumador dentro de un slice y luego con el slke adyacente vertical
Es decir las cadenas de acarreo recorren verticalmente la FPGA de abajo a arriba
existiendo una cadena por columna de slices En la celda de un sumador rippk-carry la
tabla de look-up es utilizada para computar la funcioacuten propagacioacuten del acarreo p (cany-
propagate)
p(i) = x 0 xory(i)
Con lo que el acarreo siguiente es
179
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Donde iquest(i) = x(i)y(t) es la funcioacuten de generacioacuten de acarreo carry-generate functioti)
Luego se tiene que el acarreo siguiente es
not(x(i) xory(i))y(i) + (x(i) xoryfij) q(i) = not(p(i))y(i) +p(0-qreg
Con el uso de los multiplexores de acarreo y las conexiones dedicadas el tiempo de
computo del sumador de laquo bits (Tajjn(f) ) es aproximadamente
Donde tibdquoi es el tiempo de coacutemputo de una LUT de propoacutesito general y tmuxj el retardo
de los multiplexores de acarreo dedicados junto al retardo de la conexioacuten al bloque
adyacente El valor de tmm^ es mucho menor que la suma de los tiempos de un
multiplexor generado con tablas de look-up y conexiones de propoacutesito general En cada
slice se incluyen dos celdas de un sumador con lo que el costo en aacuterea de un sumador
de n bits es
CaUcJn) mdash n2 slices
x(iexcl)c
Y(iexcl)lt LUT
P(iexcl)
q(iexcl+1)
q(i+1)
A A
r q(iexcl)
I j gt = gt zltiexclgt
Figura 56 Celda baacutesica de un sumador que utiliza la cadena de acarreo en las FPGAs de Xilinx
532 Sumador catry-skip
Dado el hecho de que tibdquoi raquo tmiexclIXy utilizar la loacutegica dedicada de acarreo es esencial
para poder generar sumadores veloces Como consecuencia las teacutecnicas del tipo carry-
look-ahead no pueden ser implementadas faacutecil y efectivamente No obstante las
teacutecnicas de carry-skip si pueden tener implementaciones eficientes Para lograr eacutestas
180
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
implementaciones eficaces se utiliza en el caacutelculo de los productos P(i) asiacute como para
seleccionar la salida de cada grupo de iacute-bits la loacutegica dedicada de acarreo
Un grupo sumador del carry-skip para iacute-bits se muestra en la Figura 57 El tiempo de
computacioacuten y aacuterea utilizados son los tradicionales para un sumador rippk-carry
normal
i aaacutedtr^pup Stmtac y
x(is+s-1)
y(is+s-1)
Caditr_gtmp mdash s2 sltCCS
qq((i+1)s)
Hgt z(is+s-1)
x(is+1)
y(is+1)
x(iexcls)
y(iexcls)
LUT P(i-s+1iquest
n n
LUT p(is)
j z pound gt - z(Ls+1)
-Ho 1 n n
^ - 3 gt z(iexcl-s) q(is) mdash mdashmdash
Figura 57 Grupo sumador de s bits para el carry-skip
Los multiplexores que seleccionan la salida de cada grupo de sumadores pertenece al
camino criacutetico del circuito (Figura 511) Por ello se implementan utilizando
multiplexores de acarreo como se puede ver en la Figura 58 Obseacutervese que para
conectar las entradas P(i) a los multiplexores internos se debe obligatoriamente
hacerlo a traveacutes de tablas de look-up Los tiempos de propagacioacuten y aacuterea son
+ ns - 2) (ns-2)2slices
181
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
P(ns-2)
qq((ns-1)s)-LUT
P(ns-2) q((ns-1)s)
M 1l n IacuteL
r
P(2) bull
qq(3s)^mdash~ LUT
P(2) M iacutel
q(3s)
IacuteL IacuteL
P(1)
qq(2s) LUT
P(1) J ti li i
i ) L IacuteL
q(2s)
q(s)
Figura 58 Multiplexores de salto de acarreo (carry-sldp xnultiacuteplexers)
El circuito que genera el producto P(i) = p(is)p(is+1 ) p(is+s-1) se puede observar
en la Figura 59 cada tabla de look-up calcula
p(is)p(is+l) = (x(jr) xorj(iquests)) (x(is+l) xorj(is+))
p(is+2)p(is+3) = (x(is+2) xorj(is+2)) (X(J+3) xorj(iquests+3))
etc
En tanto que los multiplexores de acarreo implementan la funcioacuten AND entre ellos
El tiempo de coacutemputo y costo son
tim + (s2) and sA slices
182
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
La estructura completa de un sumador carty-skip (con ns = 4) se puede ver en la
Figura 511 El tiempo de caacutelculo (parte sombreada del graacutefico) es igual a
Taddtf^ttut+max (2s+ns - 3)Jmm^ tiexclbdquoiexcl +(15J- + ns - 3)JmiK^+2jC0bdquobdquollfiexcllgtbdquo+ t^a
Donde tamKtim se refiere al tiempo de una conexioacuten de propoacutesito general El aacuterea utiliza
es aproximadamente igual a
Cadjcr = 075n + 05ns
En funcioacuten de la ecuacioacuten anterior el menor retardo teoacuterico se lograraacute cuando 2s +
ns oacute 15J + ns sea miacutenimo Esto es decir
spound(n2yKand nsS(2n)^2ojs = (nl5y2znd nsSf(l5n)V2
(is-1) y(is-1) A(iexcls-2) y(iexcls-2)
is-3)
y(is-3) X(i-4)
y(iexcls-4)
4-LUT
4-LUT
T
T
M
x (is-s+1)-y(iexcls-s+i)-X(is-s) -
y(iexcls-s) ~
(is-s+1)-
y(iexcls-s+ij-
y(iexcls-s)
4-LUT
4-LUT
bullp~ I
2$3 I
Figura 59 Generacioacuten de la condicioacuten de propagacioacuten del acarreo
183
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
533 Resultados experimentales del sumador carry-skip
Se han implementado diferentes sumadores dentro de diferentes modelos de FPGAs
de la familia Spartan2 y Virtex se presentan a continuacioacuten por un lado los resultados
de aacuterea y velocidad y por otro los resultados del consumo
5331 Resultados en aacuterea - velocidad
Varios sumadores fueron implementados dentro en una FPGA de la familia Spartan2
(maacutes exactamente una XC2s200e-6pq208 una matriz 28X42-JiquestVIacuteJ) La siacutentesis se llevo
a cabo utilizando la herramienta XST Qiilinx Synthesis Technology) [Xil02a] y la
implementacioacuten usando Xilinx ISE (Integrated System Environmeni) [Xil03b] Para poder
utilizar todos los recursos disponibles el disentildeo instancia componentes de bajo nivel
de la (FPGA LUTs MUXCY XORCY etc) El disentildeo utiliza ademaacutes emplazamiento
relativo (relativeplacement ltiquesty routing - RPR) [XU99] [Xil02b] para mantener bajo control
los detalles del rutado
Skip_Mux
P(l)
P(0)
Sum(O)
Sum(l)
P(NS-1)
Sum(NS-l)
Figura 510 Emplazamiento relativo para un Carry-Skip con iV=128 pound=16
184
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
Cada vez que es posible el primer sumador de iacute-bits el conjunto de multiacuteplexores
carry skip (ns mdash 2 etapas) y el uacuteltimo sumador de j-bits son colocados sobre la misma
columna de modo que las conexiones asociadas con las sentildeales qq(s) y q(3s) de la
figura 510 no utilicen recursos de rutado de propoacutesito general sino los propios de la
cadena de acarreo La condicioacuten para poder utilizar esto es que s + (ns -2)2 lt alto
en slices de la FPGA En la Figura 510 se muestra un ejemplo del emplazado relativo
paraiT=128 S=l(gt
qq(s) qq(2s) qq(3s) qq(4s)
X(s-10)
Y(s-10)
Figura 511 Sumador carry-skip (n = 4s)
185
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Todos los circuitos son implementados con la estructura que se sugiere en la Figura
512 Los retardos medidos son desde el pulso de reloj externo clk hasta las entradas d
de los registros de salida de modo que se tienen en cuenta los retardos de las
conexiones de propoacutesito general conn(X) y conn2 Dado que el dispositivo utilizado
posee menos patas que las utilizadas en el circuito se le agregan multiplexores a la
entrada y salida los que no se granean en la figura
operandosi
ss
conn1
conn1
sumador carry-skip
conn2 d resultado
clk i
Figura 512 Estructura de los circuitos a medir
Los resultados para el retardo se resumen en la Tabla 55 La primera columna (s = n)
indica el retardo para un sumador tradicional La uacuteltima columna muestra el
incremento de frecuencia del maacutes raacutepido respecto del tradicional La Tabla 56
presenta el aacuterea en slices de las implementaciones asiacute como la penalizacioacuten oacute aumento
de aacuterea producto del uso de la teacutecnica
n 64 96 128 256 512 1024
s=n 14 ns 16 ns 23 ns 38 ns 77 ns 159 ns
j = 8
13 ns 14 ns 14 ns
---
s=6 12 ns 13 ns 14 ns 16 ns 20 ns 28 ns
iquest=32 ---
17 ns 20 ns 25 ns
Aumento frec 1 3 2 1 6 3 141 296 531
Tabla 55 Resultados de la implementacioacuten de circuitos carry skip Retardos enns
186
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
n 64 96 128 256 512 1024
Aacuterea en Slices s=n 32 48 64 128 256 512
j = 8
47 73 99 ---
j=16 41 66 91 191 391 791
s=32 ---
179 375 767
Aumento de aacuterea j = 8
47 52 55
---
s=16 28 38 42 49 53 54
j=32 ---
40 46 50
Tabla 56 Resultados de la implementacioacuten de circuitos carry skip Penalidad en aacuterea
Gracias al uso de la circuiteriacutea dedicada a la loacutegica de acarreo para todos los bloques
incluidos en el camino criacutetico el incremento de frecuencia para sumadores operandos
grandes son apreciables maacutes del 500 para un sumador de 1024-bits
5332 Resultados en consumo
Dada la cantidad de datos de entrada-salida cuando se utilizan operandos largos Se
optoacute por utilizar los sumadores dentro de un acumulador para medir el consumo en
funcionamiento El acumulador suma tiene una entrada de 64 bits que se registran
raquo64 veces y compone el operando 1 el operando 2 surge de la recirculacioacuten del
resultado (Figura 513) Para controlar el funcionamiento se sacan como salida los 32
bits maacutes altos y los 32 maacutes bajos del acumulador
Entrada(630) w
1 bull
s
t
s
t
op1(n-17 mdash
op1(127
op1(630)
op2(n-10)
op1(n-10)
pound r(n-32)ampr(310)
f Figura 513 Estructura de los acumuladores utilizados para medir el consumo
187
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Se han construido y medido el consumo para acumuladores basados en sumadores
normales y sumadores carry-skip para operandos de 256 512 y 1024 bits Los
resultados a nivel simulacioacuten con Xpower iexclXpo02] dieron valores favorables al carry
skip pero la posterior medicioacuten contradijo las estimaciones iniciales En la Tabla 57 se
puede ver el resultado del consumo para diferentes patrones de entrada
Para la mayoriacutea de los casos el sumador normal da mejores resultados que la
implementacioacuten carry skip solo en el caso de la suma de -1 (FFFF) y 1 la
implementacioacuten normal da peores resultados Se han probado una gran cantidad de
valores de entrada para los acumuladores implementados con sumadores de 256 bits
siendo siempre la implementacioacuten normal superior A continuacioacuten se describen las
posibles causas
Circuito
Normal_256
Skip_256
Normal_512
Skip_512
Normal_1024 Skip_1024
Consumo seguacuten patrones de entrada (mWMHz)
5555
606 994
882 1774
1386 3191
6565
575 1009
843 1769
1333 3199
FFFF
255 208
338 269
412 404
0001
268 232
334 314
509 448
8001
452 773
653 1389
1013 2421
Tabla 57 Consumo sumadores Carry-Skip
5333 Justificacioacuten de los resultados en consumo
La hipoacutetesis para suponer un menor consumo del sumador carry-skip se basa en dos
hechos En primer lugar la arquitectura del sumador carry-skip ha de tener una menor
actividad en la cadena de acarreos ya que esta se divide en tramos de ns bits Y por
otra parte la afirmacioacuten empiacuterica en el disentildeo de FPGAs que dice que los circuitos
maacutes raacutepidos consumen menos
El error en el razonamiento parte del siguiente hecho El caacutelculo del camino criacutetico en
el sumador ripple-carry incluye toda la cadena de acarreo En el peor escenario el
acarreo debe propagarse desde la primera a la uacuteltima etapa En ese caso es cierto que
el acarreo produciraacute gran actividad en la salida No obstante probabiliacutesticamente esto
188
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
ocurre en muy pocos casos y la mayoriacutea de las veces el acarreo se propaga por unas
pocas etapas
En general si se considera a un sumador compuesto por las funciones G-P (geneacuterate -
propaacutegate) donde
g(i) = 1 suuml xreg + yreg gt B-l en base B = 2 seraacute greg = xreg yreg
preg = 1 sii xreg + yreg = B-l en base B = 2 seraacute preg = xreg copy yreg
Luego se pude calcular el acarreo siguiente de esta manera
if preg = 1 then q(i+l) = qreg else q(i+l) = g(i) end if
De lo antedicho se deduce que importa el acarreo anterior si y solo sp(i) =1 es decir
si xreg e yreg son distintos Por tanto la probabilidad de que se propague el acarreo es de
Vz por etapa del sumador Luego la probabilidad a de que el acarreoacute se propague
durante s etapas seraacute
laquo = ( 1 2 )
Es decir que el acarreoacute se propague por 5 bits tiene una probabilidad de 0031 que se
propague por 10 bits 000097 y que se propague por 100 alrededor de 78 x 10-31 Por
ello en realidad los glitches que se producen como resultado de la propagacioacuten del
acarreo no son desde el punto de vista del consumo relevantes
534 Conclusiones sobre algoritmos sumadores
La teacutecnica de sumador carry skip resulta muy interesante para ser aplicada en FPGAs
para operandos largos Aunque las teacutecnicas de carry-look-ahead (CLA) parecen ser maacutes
veloces que las de carry skip o ripple carry en el marco tecnoloacutegico especiacutefico esto no es
verdad Una implementacioacuten cuidadosa usando la loacutegica de acarreo convenientemente
logra un incremento de frecuencia para sumadores con operandos de 1024 bits que
superan el 500 con un incremento del aacuterea menor del 50 respecto a la
implementacioacuten por defecto en FPGA (ripple carry)
En adicioacuten cany-skip el mecanismo de caacutelculo del acarreo genera menos glitches
producto de una menor propagacioacuten del acarreo y consecuentemente se preveiacutea
menos consumo Basaacutendose en esta idea y en el hecho estudiado en el capiacutetulo 3 que
189
f
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
los circuitos maacutes veloces consumen menos se construyeron circuitos cuyas
mediciones negaron la suposicioacuten inicial
El error en el razonamiento parte del siguiente hecho El caacutelculo del peor tiempo
(camino criacutetico) incluye la cadena de acarreo y el peor caso donde el acarreo debe
propagarse desde la primera a la uacuteltima etapa En ese caso es cierto que el acarreo
produciraacute gran actividad en la salida Pero probabiliacutesticamente esto ocurre en muy
pocos casos y la mayoriacutea de las veces el acarreo se propaga por unas pocas etapas por
tanto los glitches por propagacioacuten del acarreo no son tan importantes como se creiacutea
190
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
54 Algoritmos y arquitecturas para la divisioacuten entera
Naturales enteros y fraccionarios pueden ser multiplicados exactamente mientras
existan suficiente cantidad de diacutegitos para el resultado La operacioacuten de divisioacuten no
comparte esta caracteriacutestica de hecho la divisioacuten generalmente no provee un resultado
de longitud fija La precisioacuten debe ser definida de antemano seleccionando el maacuteximo
tamantildeo del resultado La cantidad de ciclos del algoritmo dependeraacute pues de la
precisioacuten pretendida y no del largo de los operandos
El estudio se divide en forma temprana en algoritmos para divisioacuten de enteros y
algoritmos de divisioacuten con nuacutemeros fraccionarios normalizados El primer grupo de
algoritmos analizados corresponde con las tiacutepicas operaciones de divisioacuten de nuacutemeros
naturales o enteros (esta seccioacuten) en tanto la segunda como parte esencial en sistemas
de punto flotante (seccioacuten 55) La nomenclatura y descripcioacuten de los algoritmos
corresponde a poundPar00][Pes02]
541 Algoritmos de divisioacuten para nuacutemeros naturales y enteros
Sean X e Y dos naturales en base Baacuteampnymbits respectivamente
X = xbdquoirW + xbdquo2Bn-2 + + xdegBltgt
Y = ymiB-1 + ybdquo-2B-2 + + y0Bdeg
xiexclyi(=0l B-l
Con la condicioacuten que Y gt 0 Se define Q y R como el cociente y resto de la divisioacuten X
por Y con una precisioacuten aacuteampp diacutegitos
BPX = QY + R
Donde Q y R son nuacutemeros naturales y R lt Y (resto menor que la divisioacuten) De otra
forma se puede escribir
XY = QB-P + (RB-PY) (ec 51)
Con
RB-PY lt B-P (ec 52)
191
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
El algoritmo baacutesico se aplica a operandos X e Y tales que X lt Y Un paso previo
consiste en sustituir Y por YBn tal que YB gt lBn gt X con lo que queda
BPX = (QB)Y + R
La implementacioacuten de este ajuste es trivial ya que consiste en agregar simplemente
maacutes diacutegitos ceros en la operacioacuten y realizar un ajuste similar con el resultado
Lema 541
El siguiente lema justifica el algoritmo baacutesico de la divisioacuten asiacute como los algoritmos de
divisioacuten por recurrencia de diacutegitos (Digit recurrence divisioacuten algorithms) En general dados
dos nuacutemeros naturales a y b tal que a lt b luego existen dos uacutenicos nuacutemeros q y r tal
que satisfacen Ba = qb + r con q e 01 B-l y ademaacutes rlt b
La aplicacioacuten recursiva del lema anterior es decir
Br(0)=q(l)Y + r(l)
Br(l) = q(2)Y + r(2)
Br(p-l) = q(p)Y + r(p) (Ec53)
Con r(0) = X genera la siguiente relacioacuten
XBP = ( q(l)BP-i + q(2)BP-2 + + q(p)Bdeg)Y + r(p) (Ec 54)
Con lo que se tiene
Q = q(l)BP- + q(2)BP-2 + + q(p)Bdeg y R = r(p)
Si se asume un procedimiento division_step definido como
procedure division_step (a b in natural q r out natural)
Que calcula q y r tal que Ba = qb + r con q e 0 1 B-l y tambieacuten rltb
Luego el siguiente algoritmo baacutesico de divisioacuten es consecuencia directa de las
ecuaciones (53) y (54)
5411 Algoritmo con restauracioacuten iacuteestoriacuteng divisioacuten algorithni)
En funcioacuten de lo antes descrito se puede definir el algoritmo de divisioacuten con
restauracioacuten por medio del algoritmo 531
192
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
Algoritmo 541 - de divisioacuten con restauracioacuten
r(0) = X
for i in 1 p loop
division_step (r(i-l) Y q(i) rreg)
end loop
Esto generaraacute la representacioacuten en base-B de Q formada por q(l) q(2) q(p) y el
resto R = r(p) La Figura 514a muestra un diagrama de bloques de este algoritmo
Para la base-B = 2 el procedimiento division_step resulta muy simple se puede ver un
esquema en la Figura 514b y se resume a continuacioacuten
Algorithm 542
z = 2a - b
if z lt 0 then q = 0 r = 2a else q = 1 r = z end if
Para una base B mayor que dos el paso de divisioacuten es maacutes complejo por ejemplo
Algorithm 543
if Ba lt b then q = 0 r = Ba elsif Ba lt 2b then q = 1 r = Ba - b
elsif Ba lt 3b then q = 2 r = Ba - (2b)
elsif Ba lt (B-l)b then q = B-2 r = Ba - ((B-2)b)
else q = B-l r = Ba - ((B-l)b)
A cada paso del algoritmo 531 el nuevo resto r(i) es igual a Br(i-1) - qregY Si fuese
q(i) = 0 entonces r(iacute) = Br(i-1) y el resto precedente r(i-l) se dice que es restaurado
(en realidad restaurado y deplazado) Por esta razoacuten al algoritmo baacutesico de divisioacuten se
lo conoce como algoritmo de restauracioacuten (restoring divisioacuten algorithm)
193
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
q(1)laquo-
q(2)laquo-
q(p)lt-
X
iquestI diexclviexclsIon_step
pound_pound diexclviexclslon_step
mdash I -
diexclviexclsion_step
a(m-10) 0 0 b(m-10)
qlaquo-lt
r(P-1)f
T r(P)
Figura 514 Divisor con restauracioacuten a Estructura general b Celda baacutesica
5412 Algoritmo sin restauracioacuten (non-iestoiing divisioacuten algorithm)
Sea X un entero de n bits en complemento a la base con base-B dos (2s complemeni) y
un nuacutemero positivo de m bits Se definen el cociente jg y resto R de la divisioacuten entre X
e Y con una presicioacuten de gt bits a
2PJ = poundY+R ( E C 5 6 )
Donde tanto Q como R son enteros tales que signo(R) = signo(X) y abs(R) lt Y En
otras palabras
XY = Q2-P + (R2-PY) (Ec 57)
Con
signo(R2y) = signo(X) y abs(R2Y) lt 2A (Ec 58)
El algoritmo baacutesico se aplica a operandos X e Y con tal que -Y lt X lt Y Como
sucede en el algoritmo de divisioacuten con restauracioacuten un paso previo puede consistir en
194
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
reemplazar Y por Y2raquo- tal que Y2raquo- gt 12raquo- gt X -Y2raquo- lt -12raquo- lt X por tanto 2PX
= (g2-9Y+K
El siguiente lema contituye la justificacioacuten del algoritmo de divisioacuten sin restauracioacuten
jion-restoring divisioacuten algorithtii)
Lema 543
Dados un intero a y un numero positivo b tal que -b lt a lt b luego 2a puede ser
descompuesto de la forma 2a = qb + r donde q euro -11 y ademaacutes -bltrlt b
Una aplicacioacuten recursiva de este lema nos da que
2lt0) = ) Y + K1) 2ltl) = 9(l)Y + lt2)
2Hp-l) = q(pA)Y+x(p) (Ec59)
Si se comienza con riuuml) = X se genera la siguiente relacioacuten
X2gt = ((0)2iacute + q()2f-2 + + q(p-l)2deg)Y + rip) (Ec 510)
Se define iquest(i) = q$)+)2 e 01 y se subtituye q(i) e -11 por 2^reg-l
X2 = (((0)-l)2gt + q(l)2P- + + q(p-l)2 +12deg)Y + r(p) (Ec 511)
Por consiguiente
X 2 = pound Y + ^ ) (Ec512)
Donde
g = (q(0)-iacute)2Jgt + ^ ( l ) ^ + + ^(p-l)2i +12 -Ylt ltp) lt Y (Ec 513)
Si coinciden los signos del resto y el dividendo signo(r(p)) = signo(X) entonces
pound=pound and R =gt)
Si los signos son diferentes se debe llevar a cabo una correccioacuten final
i f gt )lt0andXgt0 t h e n j 2 = g - l andR = rip) + Y
i f ) gt 0 a n d X lt 0 t h e n g = g - l andR=rgt)-Y
Si se supone ademaacutes un procedimiento division_step definido como
procedure division_step (a in integer b in natural q out binary r out integer)
195
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Este procedimiento computaraacute q and r tal que 2a = (2q -)b + r con q e 01 y
-bltrltb
De acuerdo con (59) (512) y (513) el siguiente algoritmo computa la representacioacuten
en complemento a dos q(0) (1) q(2) q(p) dejg y el resto R1 = r(p) Un esquema del
algoritmo se puede observar en la Figura 515a
Algoritmo 547 - Algoritmo sin restauracioacuten
r(0)=X
for i in 0 p-1 loop
division_step (r(i) Y q(3) r(i+l))
end loop
q(p) = l q (0) = l -q (0)
En caso de ser necesario se debe antildeadir el siguiente paso de correccioacuten
if X lt 0 and r(p) gt= 0 then R = r(p) - Y Q = Q + 1
elsif X gt= 0 and r(p) lt 0 then R = r(p) + Y Q = Q - 1
else R = r(p) Q = Q1 end if
El proceso de divisioacuten division_step es muy simple el esquema correspondiente en la
Figura 515b En tanto el esquema del paso de correccioacuten se puede ver en Figura 516
Algoritmo 548
if a lt 0 then q = 0 r = 2a + b else q = 1 r = 2a - b end if
Obseacutervese que a cada paso del algoritmo 537 el nuevo resto ^+1) es igual o bien a
2(i) -Yo 2rreg + Y de este modo nunca es restaurado el valor anterior
5413 Otros algoritmos para nuacutemeros enteros
Otros algoritmos de divisioacuten suponen dividendo y divisor en cierto rango el costo en
aacuterea velocidad y consumo asociado a la normalizacioacuten los hacen poco atractivos Para
dividir enteros tambieacuten se pueden utilizar algoritmos en bases mayores que dos
196
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
aunque esta opcioacuten no posee ninguna ventaja desde el punto de vista del consumo (ni
en aacuterea y velocidad) En la siguiente seccioacuten donde se estudia la divisioacuten para
nuacutemeros fraccionarios se analizan algoritmos tipo SRT para bases mayores de dos los
cuales siacute poseen intereacutes desde el punto de vista de la velocidad y el consumo
q(0)lt deg lt ^
qliquest) t
X Y
mdash diexclvision_step
i-1 -mdash diexclviexclsion_step
1
q(p-1)lt-
r(p-1)f J
diviexclsiexclon_step
T r(p)
qlt-
a(m) a(m-10) 0
^ i 0 b(m-10)
subiacutelf (m+1)-bit addersubtracter
T Figura 515 Divisor sin restauracioacuten Estructura general Celda baacutesica del algortimo
q(0p-1)1 1 0 -1 r(p) -Y 0 Y
X(n-1)r(p)(m) UA U l
(p+1)-biexcltadder
T (m+1)-biexcltadder
T Figura 516 Celda de correccioacuten del cociente y resto en el algoritmo suacutefesEa
r5 restauracioacuten
lt bull bull bull
tVlaquoU
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
542 Implementaciones en FPGA para nuacutemeros naturales y enteros
Para poder sacar provecho de las caracteriacutesticas de los dispositivos programables es
imprescindible utilizar los recursos especiacuteficos fundamentalmente la loacutegica de acarreo
(carry-Iogc) en la construccioacuten de sumadores y Testadores Los disentildeos presentados en
esta seccioacuten son optimizados para las familias VirtexSpartan 2 y Virtex IISpartan 3
en sus diferentes versiones En estos dispositivos las primitivas de caacutelculo
suma r a+b resta r = a + (2n-b) suma resta r = a + (1-x)b + x (2n - b) suma condicional r=a + xb resta condicional r= a + x (2n-b) seleccioacuten r = (1-x)a + xb
Donde a y b son nuacutemeros de n bits y x una sentildeal de un solo bit se sintetizan con n2
slices Si las operaciones de suma yo resta deben retornar una sentildeal de acarreo o
arrastre final (carty oacute borroacuten) eacutestas necesitaraacuten realizar la operacioacuten con un bit maacutes es
decir se han de sintetizar en n2 + 1 slices Esta uacuteltima consideracioacuten no tiene sentido
para la seleccioacuten (multiplexor 2-1 de n bits) que se sintetiza con n2 slices Obseacutervese
que el coste de un multiplexor 2-1 es praacutecticamente el mismo que el de un sumador
restador n2 vs n2 + 1) es decir el de n tablas de look-up La conclusioacuten seriacutea
bastante diferente en el caso de la versioacuten standard cell aacuteamp las mismas primitivas
5421 Algoritmo con restauracioacuten en base dos
Como se mencionoacute anteriormente el algoritmo baacutesico se aplica a operandos enteros
X e Y tales que X lt Y Para el caso de enteros de n y m bits se procede a sustituir Y
por Y J ^ e s decir se agregan m ceros al final del operando Y) Dado que los uacuteltimos m
bits del operando Y son ceros el algoritmo 52 de la celda elemental puede ser
simplificado en cuanto al tamantildeo de bits a operar Obseacutervese que la multiplicacioacuten por
dos (desplazamiento a izquierda) del operando X como el desplazamiento y la resta
de Y pueden ser realizadas con m bits
La implementacioacuten de la Figura 517a consta de n instancias de la celda nr_division_step
(Figura 517b) La celda de calculo estaacute compuesta por un restador de (laquo+l)-bits y un
multiplexor 2 a 1 de w-biacutets con lo que necesitaraacute m+1 slices El retardo seraacute Tlut +
laquoTmux para el restador maacutes Tconex + TLut producto del multiplexor y su
198
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
conexioacuten con lo que el tiempo total seraacute 2Tiut + iquestvTmUx + Tconex Luego para el
divisor entero de laquo sobre m bits
C(nm) = n(Cdiexclvisoacuten_steP(m)) = n(m+l) = nm + n slices
T(n m) = n( Tdiexclviexclsiexcloacuten_5teP(m) + Tconlaquo) = 2laquoTlut +
Y(m-10) 00
q(n-1)
q(n-2) ltr
q(n-3) ltr
q(0)laquo
Figura 517 Circuito de divisioacuten de naturales binarios con restauracioacuten a Estructura general b Celda elemental de caacutelculo
5422 Algoritmo sin restauracioacuten en base dos
Al igual que en el caso del algoritmo con restauracioacuten X debe ser menor que Y maacutes
aun -Y lt X lt Y Se opta por la misma solucioacuten es decir se sustituye Y por YBm (es
decir se agregan m ceros al final del operando Y) La consideracioacuten aplicada al
algoritmo 52 es extensible al algoritmo 58 es decir la operacioacuten division_step (de ahora
en adelante adder_substracter) se puede realizar con m bits
199
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
Si en el algoritmo de divisioacuten se considera a X como natural los bits indicados con r
en la primera celda de caacutelculo en la Figura 518 han de ser ceros En caso de X entero
los bits s seraacuten reemplazados por X(n-1) (se extiende el signo) La celda correction_cell
descrita en la Figura 516 puede ser simplificada en el caso de X natural ya que el
ajuste del resto se limitaraacute a una suma condicional y la del cociente a la resta de uno
Maacutes aun se ha de ajustar (sumar Y al resto parcial y restar uno al cociente) si el resto
parcial r(n) lt 0 con ello r(n)(m) = 1 solo se deberaacute sumar Y La resta del cociente no
se realiza realmente
I X(n-1) 0 T
q(n-1)
q(n-2) lt - lt ] bull
r(3)(m)
r(n-1)(m)
adder-substractor
I I r(2)(m-10)
q(1) lt-ltF
I X(0) oT
adder-substractor
r(n)(m)
q(0) ltmdashlt1-
Y(m-10)
r(n)(m-10)
bull0
Ji correctiexclon_cell
~1
a(m) a(m-10) x(iexcl)
i 0 b(m-10)
uuml add(1V sub(0) (m+1)-biaddersubtracter
T
a(m) a(m-10)
i b(m-10)
m-bit conditional adder
T remainder
r(m-10)
Figura 518 Circuito de divisioacuten de enteros sin restauracioacuten a Estructura general b Celda elemental de caacutelculo c Celda de correccioacuten para naturales
200
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
La Figura 518a se implementa con n instancias de la celda adder_substracter maacutes un
sumador final La celda sumador o restador y la celda final (sumador condicional) de m
bits necesitan por igual m2+1 slices con un retardo de Tlut + laquoTmux Luego para el
divisor sin restauracioacuten de n sobre m bits tendremos
C(nm)=n(Caddausustractor(m))+Caddct(m) = (raquo+)(raquo2+l) = nm2+m2+n +1 slices
T ( n p ) = n ( Taddcr_substracter ( m ) + Tconex) + Tadder(m) + Tconex =
= (raquo+7)Tiut + m(ti+1)Tmux + (w+fyTconcx
543 Implementaciones para divisores de nuacutemeros enteros
Los circuitos fueron implementados en una Virtex XCV800hq240-6 utilIacute2ando el
entorno de desarrollo ISE 61 [Xil03d] y XST Qiilinx Synthesis Technologies) [Xil03e]
para la siacutentesis Los resultados en aacuterea y velocidad se pueden ver en la Tabla 58 En la
tabla se puede observar que la divisioacuten con restauracioacuten ocupa al menos el doble de
aacuterea y necesita alrededor del 50 maacutes de tiempo que el algoritmo sin restauracioacuten
Los circuitos div_X_Y se refiere a dividendo de X bits y divisor de Y bits con lo
que el resultado de la divisioacuten seraacute de X bits y el resto de Y bits
Circuitos
div_32_32
div_32_24 div_32_16
div_32_8
div_16_16
div_16_8
div_8_8
Divisioacuten con restauracioacuten
Aacuterea
Slices
1589
1201 812
424
396
207
103
4-LUTs
2048 1536
1024 512
512
256
128
Retardo
(ns)
2917
2536 2184
1775
1105
911
458
Divisioacuten sin restauracioacuten
Aacuterea
Slices
641
493 345
197
177
101
57
4-LUTs
1119
847
575 303
303
159
87
Retardo
(ns)
1983
1718
1481
1224
800
668
366
Tabla 58 Aacuterea y retardo para la divisioacuten con y sin restauracioacuten
5431 Resultados del consumo para divisores enteros
En funcioacuten de los resultados en aacuterea y velocidad se puede pensar que el consumo
deberiacutea favorecer claramente a la divisioacuten sin restauracioacuten Sin embargo los resultados
contradicen eacutesta suposicioacuten
201
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
El consumo fue separado en consumo estaacutetico dinaacutemico (debido a la ruta de datos y
sincronizacioacuten) y el consumo debido a las patas (pff-chip) La medicioacuten de los circuitos
fue realizada utilizando dos secuencias diferentes a) Valores aleatorios (akaiacuteTog) b)
una secuencia con una alta probabilidad de transicioacuten en los nodos (maxTqg) Los
vectores de prueba fueron ingresados a los circuitos con un generador de patrones
[Tek04b] y las salidas conectadas a un analizador loacutegico [Tek04a] como se describe en
el Apeacutendice B
La Tabla 59 muestra los resultados del consumo dinaacutemico medio expresados en
mWMHz para los circuitos presentados anteriormente Adiacutecionalmente se muestran
los resultados para la estimacioacuten con XPOWER [Xpo04] (estini) con los vectores de
prueba aleatorios (aeafTog) Detalles del uso y aplicaciones de la herramienta Xpower
se describen en el apeacutendice F
Circuito
div_32_32 div_32_24 div_32_16 div_32_8 div_16_16 div_16_8 div_8_8
Divisioacuten con restauracioacuten Estim
48 54 69
106 21 17 14
AleatTog 50
141 265 234 23 48 15
MaxTog 47
153 151 168 19 45 18
Divisioacuten sin restauracioacuten Estiacutem
332 254 176 94 57 34 18
AleatTog 414 354 304 236 95 75 27
MaxTog 454 432 314 259
99 86 28
Tabla 59 Consumo dinaacutemico para los divisores de nuacutemeros enteros expresados en mWMHz
La Figura 519 muestra el consumo en mWMHz para los patrones aleatorios Se
observa la disminucioacuten del consumo respecto del tamantildeo de los datos en el divisor sin
restauracioacuten aunque se ve un claro crecimiento del consumo promedio en la divisioacuten
con restauracioacuten a medida que decrece el tamantildeo del dividendo
Esta figura presenta dos hechos losque a priori son poco intuitivos El primero es el
mayor consumo que presenta el divisor sin restauracioacuten a pesar de ser maacutes veloz y
ocupar menos de la mitad que el algoritmo de divisioacuten con restauracioacuten En segundo
lugar el aumento del consumo medio que sufre el divisor restoring a medida que se
disminuye el tamantildeo del divisor Ambos hechos se explican por la actividad espuria
202
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
(glitcheiacute) generados por los algoritmos y por los ajustes necesarios para poder dividir
nuacutemeros enteros
O
bull restoring bull non-restoring iexcl
ltV
$ $ $ ltamp
K
ltb
amp $
Figura 519 Consumo para los divisores con y sin restauracioacuten para la secuencia aleatoria (aleatTog) en niWMHz
5432 Resultados en la actividad interna en los divisores enteros
Como se mencionoacute en los apartados anteriores (541 y 5412) los algoritmos baacutesicos
de divisioacuten se aplican a operandos X e Y tales que X lt Y El paso previo consiste en
sustituir Y por YBn tal que YB gt lB gt X con lo que el cociente debe ser
multiplicado por Bn Esto se realiza agregando m ceros delante del operando X y
suponiendo desplazado el operando Y en n posiciones a izquierda (Figura 517 y
Figura 518)
En la Figura 520 se muestra la actividad que se genera al dividir cuatro valores en un
divisor con restauracioacuten de 8 por 8 bits en tanto la Figura 521 hace lo propio con el
algoritmo sin restauracioacuten Las figuras muestran los restos intermedios asiacute como los
valores del cociente
Los ejemplos de las figuras muestran como en el algoritmo sin restauracioacuten el resto
pasa de positivo a negativo praacutecticamente en todos los restos intermedios en tanto el
algoritmo con restauracioacuten al tener los restos siempre positivos genera menos
actividad
203
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
En el algoritmo non-restoring como el operando Y ha sido desplazado n posiciones a
izquierda el resto en las primeras etapas pasaraacute de un nuacutemero pequentildeo positivo a un
numero pequentildeo negativo generando gran actividad al estar representado en
complemento a dos (ver el ejemplo de la seccioacuten 264)
Este efecto se potencia cuando el divisor tiene muchos bits respecto del dividendo
(maacutes de raquo2) Para los casos maacutes tiacutepicos donde el divisor tiene exactamente ti2 bits
esta diferencia en el consumo se reduce aunque sigue favoreciendo al algoritmo con
restauracioacuten
Figura 520 Actividad en un divisor con restauracioacuten de 8 por 8 bits
Figura 521 Actividad en un divisor sin restauracioacuten de 8 por 8 bits
204
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
Como conclusioacuten el algoritmo non-mtoring produce en los pasos intermedios del
algoritmo mucha maacutes actividad que su contraparte con restauracioacuten Se puede
observar en la Tabla 510 los resultados de la actividad a nivel simulacioacuten para una
secuencia aleatoria de entrada
Por uacuteltimo cabe destacar que estos resultados en el consumo son completamente
diferentes cuando se utilizan operando normalizados (por tanto no hay que desplazar
el dividendo) como es el caso de la divisioacuten de nuacutemeros fraccionarios que se estudia
en la siguiente seccioacuten
Origen de la actividad
Reloj de entrada Actividad media de cada entrada Maacutexima actividad en sentildeal interna Maacutexima actividad en loacutegica interna Actividad media de las 10 sentildeales que maacutes consumen Activ media de los 10 elem de loacutegjca que maacutes consumen
Divisioacuten con
restauracioacuten
10 25
130 167
81 127
Divisioacuten sin
restauracioacuten
10 25
1025 655 526 463
Tabla 510 Actividad de sentildeales y loacutegica para los algoritmos divisores de enteros de 8 bits Los valores expresan frecuencias de las sentildeales en MHz
205
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
544 Conclusiones para la divisioacuten de nuacutemeros enteros
Los resultados en aacuterea y velocidad favorecen claramente a la divisioacuten sin restauracioacuten
(non-restoriacuteng) El algoritmo con restauracioacuten (mtoring) ocupa el doble de aacuterea y necesita
alrededor del 50 maacutes de tiempo que el algoritmo sin restauracioacuten
Sin embargo los resultados en el consumo son claramente favorables al algoritmo de
divisioacuten con restauracioacuten El motivo de la diferencia de consumo son las transiciones
internas generadas en cada algoritmo Para poder dividir cualquier par de enteros el
dividendo debe ser desplazado n posiciones a izquierda lo que genera en el algoritmo
non-restontildeng de un nuacutemero pequentildeo positivo a un nuacutemero pequentildeo negativo
generando gran actividad ya que el resto es representado en complemento a dos Este
efecto se refuerza cuando el tamantildeo del divisor es mayor a raquo2 bits siendo laquo el
tamantildeo del dividendo
Para la divisioacuten de nuacutemeros de 32 bits el algoritmo sin restauracioacuten consume maacutes de
ocho veces que el algoritmo con restauracioacuten en tanto el consumo medio para la
divisioacuten de 32 bits por 16 bits en non-restontildeng es solo alrededor del 20 superior al
algoritmo de divisioacuten con restauracioacuten
La divisioacuten de enteros es un excelente ejemplo que demuestra que a nivel algoriacutetmico
ni el aacuterea ni la velocidad son buenas meacutetricas para evaluar un algoritmo desde el
punto de vista del consumo Por uacuteltimo cabe destacar que estos resultados en el
consumo son completamente diferentes cuando se utilizan operando normalizados
206
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
55 Algoritmos y arquitecturas para la divisioacuten de nuacutemeros
fraccionarios
La divisioacuten de nuacutemeros fraccionarios y normalizados tiene fundamental intereacutes en la
divisioacuten de nuacutemeros en coma (o punto) flotante ya que es la operacioacuten fundamental a
realizar en la divisioacuten de las mantisas Esta seccioacuten se especializa en los divisores en el
rango [12)
Para dividir nuacutemeros normalizados se pueden utilizar los algoritmos con restauracioacuten
y sin restauracioacuten descritos previamente aunque el algoritmo de recurrencia de diacutegitos
maacutes utilizado en los CPUs modernos es SRT que debe su nombre a Sweeney
[Sweoacutel] Robertson [Rob58] y Tocher [Toc58] quienes desarrollaron los trabajos a
aproximadamente el mismo tiempo
Una descripcioacuten maacutes amplia de los algoritmos de recurrencia de diacutegitos y en especial
de los algoritmos SRT se puede encontrar en [Obe97][Erc94][Par00][Erc04][Sod96]
En esta seccioacuten se propone una implementacioacuten eficiente del algoritmo SRT en base 2
que posee interesantes caracteriacutesticas desde el punto de vista del consumo
Adicionalmente se estudian implementaciones en diferentes bases Por uacuteltimo se
cuantifica la influencia de la segmentacioacuten (ptpelineacute) y de las implementaciones
secuenciales
551 Algoritmos de divisioacuten fraccionaria
Dados dos nuacutemeros reales no negativos el dividendo X y el divisor D (DampO) el
cociente q y el resto r son nuacutemeros reales no negativos definidos por la siguiente
expresioacuten X = qD + r con r lt Dulp donde ulp son las unidades en las posiciones
menos significativas (unitin the kast significantpositiotiacute) Si Xy D son las mantisas de dos
nuacutemeros en punto flotante seguacuten el estaacutendar IEEE-754 los nuacutemeros perteneceraacuten al
rango [12) y q estaraacute en el rango [05 1) Este resultado puede ser normalizado
desplazando el cociente un bit a la derecha y ajustando el exponente oportunamente
La divisioacuten no provee resultados de una longitud finita La precisioacuten debe ser definida
de antemano definiendo el maacuteximo tamantildeo para el resultado (p) La cantidad de ciclos
207
Teacutecnicas para la Reduccioacuten de Consumo en FPGAs
del algoritmo por tanto no depende del tamantildeo de los operandos (raquo) sino de la
precisioacuten requerida en el resultado (p)
552 Algoritmos con y sin-testauracioacuten restoring and non-restoring
algoriacutethm)
Los circuitos con y sin restauracioacuten descritos anteriormente (532) son faacutecilmente
adaptables a operandos fraccionarios [Par00][Erc04] Las implementaciones en
FPGAs son faacuteciles de realizar y los resultados en aacuterea y velocidad favorecen siempre al
algoritmo sin restauracioacuten non-restoring La
Figura 522 resume los algoritmos con y sin restauracioacuten para operandos fraccionarios
En el uacuteltimo algoritmo se debe agregar un paso de correccioacuten en caso que el resto sea
negativo
Restoring divisioacuten algoriacutethm
r(0)=X foriin ploop
rest_step(r(i-l) Dqcopy rreg) endloop
rest_step (a b q r) z = 2a - b ifz lt 0 then
q = 0 r = 2a else
q= l r = z endif
Non-restoring divisioacuten algoriacutethm
r(0)=X foriinO p-1 loop
nonr_step(rreg Dqreg r(i+l)) endloop
q(p)=lq(0)=l-q(0)
nonr_step (abqr) ifa lt 0 then
q = 0 r = 2a+b else
q = 1 r = 2a-b endif
Figura 522 Algoritmos de divisioacuten con y sin restauracioacuten para nuacutemeros fraccionarios
553 Algoritmos SRT
Como todos los algoritmos de recurrencia de diacutegitos en cada paso de la iteracioacuten se
obtienen un nuacutemero fijo de bits Los algoritmos SRT utilIacute2an una cantidad limitada de
comparaciones para acelerar el caacutelculo
Un diagrama de bloques general de una iteracioacuten de un algoritmo SRT en base r (r =
2k K entero) se puede ver en la Figura 523 Un divisor necesitaraacute = nk
iteraciones para la divisioacuten de operandos de n bits Ademaacutes se ha de agregar el
208
Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos
hardware necesario para transformar el cociente de diacutegitos con signo en una notacioacuten
estaacutendar en base 2 El divisor deberiacutea ademaacutes tener una etapa previa para la deteccioacuten
de la divisioacuten por cero y que x y d esteacuten en el rango necesario
XWO) D
Shift 1 P llli wmdash
U+D
O^
^ t Qsel Table
i i bull Multiplier
S^ substractor
f Wfl+1)
Q_ O
cT
conv
erte
r
sig
Tmdash 1
lt-
W(0) = X
w d n divisioacuten step 4 n w
cNtildeT w ^ir bull
f = - w d n divisioacuten step M n w
|W(2)
D
bull
~ Wf-nk+H +
t t r w d
n divisioacuten step ^ n w
|W(-pk)
n(W(-pk)]| f
adiust cond_adder
wremainder
Figura 523 Arquitectura para el algoritmo SRT a) Paso de divisioacuten (division_step) y circuito combinacional
La divisioacuten de xd produce k bits del cociente q en cada iteracioacuten El diacutegito del
cociente q(i) se representa con una notacioacuten en base r El primer residuo w(0) es
inicializado con x En la iteracioacuten j el residuo ngt0) es desplazado a izquierda k bits
(produce rwQ)) Basado en algunos de los diacutegitos superiores de rwff) y d (raquory laquoiquestbits
respectivamente) se puede deducir el siguiente diacutegito del cociente Finalmente se
realiza la substraccioacuten a rwQ) el producto q(j+1)d para formar el proacuteximo residuo
wff+V-
En una implementacioacuten hardware existen varios paraacutemetros importantes en un
divisor SRT
bull Base r El rol maacutes importante es la base r=2k en que se realiza la operacioacuten Para
mayores valores de k se necesitan menos iteraciones pero cada iteracioacuten es maacutes
209