Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral

366
a658669 & Universidad Autónoma de Madrid Departamento de Ingeniería Informática Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral Autor: Gustavo Sutter Director: Eduardo Boemo Scalvinoni Escuela Politécnica Superior Enero de 2005

Transcript of Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral

Page 1: 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

uam
Nota

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

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

compleja (tablas Qsel mucho mayores y productos q(i+1)d maacutes complejos)

Valores de base grandes (mayores que 16 K=4) son impracticas en las FPGAs

actuales

bull Representacioacuten del cociente La representacioacuten en base 2k usa un sistema

representacioacuten redundante de diacutegitos con signo para asegurarse que la

determinacioacuten del digito del cociente solo se basa en los algunos de los diacutegitos maacutes

significativos nr y nd del residuo y el divisor respectivamente En un sistema de

representacioacuten no redundante los diacutegitos en base r se representan con exactamente

r diacutegitos cociente 0 1 r En un sistema redundante se utilizan maacutes de r

valores La representacioacuten de los diacutegitos tienen la forma -a - a + 1 -1 0 1

a-1 a es decir un conjunto simeacutetrico y consecutivo de valores enteros con

un diacutegito maacuteximo a Para ser un sistema redundante a debe cumplir la relacioacuten

a gt r2 El grado de redundancia se mide por el factor de redundancia [redundancy

factor) definido como p = a (r-1) En sistema para a = I r 2 | es conocido como

redundante miacutenimo (minimally redundante mientras que con a = r-1 (y por tanto p =

1) es llamado redundante maacuteximo (maximally redundant) Si a gt r- y p gt 1 el

conjunto de diacutegitos es conocido como sobre redundante (pver-redundani) Por

ejemplo para la representacioacuten en base-4 el conjunto de diacutegitos miacutenimo es -2-1

01 2 (a = 2p= 23) el redundante maacuteximo es -3-2 2 3 (a = 3p= 33)

y el sobre redundante es -4-3 3 4 (a = 4 p = 43) Mayores valores de a

conducen a selecciones maacutes simples de cociente (menores valores de nr + nd para

direccionar la tabla Qsel) En esta seccioacuten solo se utiliza RAM distribuida (basada en

LUTs dentro de los slices) para la implementacioacuten de las tablas de seleccioacuten Los

bloques especiacuteficos de RAM (llamados BRAM en Virtex and Virtex II) pueden ser

utilizados para generar las tablas Qsel

Representacioacuten del residuo w(j) Tradicionalmente en tecnologiacuteas VLSI se

utilizan representaciones redundantes tipo carry-save con el objetivo de acelerar la

resta rwltj)-q(iexcl+i)D La utilidad de esta teacutecnica en FPGAs es relativa donde la loacutegica

dedicada de acarreo hace que los sumadores tradicionales tipo ripple-carry sean maacutes

eficientes para pequentildeos y medianos tamantildeos de datos tanto para la suma como

para la resta En esta seccioacuten se analizan sistemas no-redundantes (complemento a

dos) y redundantes carry-save)

210

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

554 Implementaciones combinacionales en FPGAs para nuacutemeros

fraccionarios

En eacutesta seccioacuten se describen los detalles en la implementacioacuten de divisores para

nuacutemeros fraccionarios Primero los algoritmos con y sin restauracioacuten y luego los

algoritmos SRT base-2 -4 -8 -16 con resto en complemento a dos Finalmente se

examina una implementacioacuten original del algoritmo SRT base 2 con resto en formato

carry-save

5541 Algoritmo con restauracioacuten y sin restauracioacuten

La divisioacuten de enteros como se mencionoacute trata fundamentalmente con los algoritmos

con y sin restauracioacuten Ajustar estos algoritmos para operandos fraccionarios es trivial

El arquitectura de divisioacuten con restauracioacuten implementada con el algoritmo

representado en la Figura 517 necesita) celdas restontildeng_division_step Cada una de ellas

necesita un restador de (laquo+l)-bit y un muldplexor 2 a 1 de laquo-bit esto quiere decir que

necesita (raquo+l) slices y un retardo de 2Tbdquoiexcl + nTmax^ + Tbdquot Entonces un divisor de n-

bits con p-bits de precisioacuten tiene un aacuterea y retardo de

Cmpoundnp) = p(Cmt_iquestlaquogt_p(iexcl)) =p(n+V) =pn+p slices

Tmnp) iexclp( TmtjK_laquopn) + T) = 2pTh +ptiTmiexcllx + 2pTsct

El algoritmo sin restauracioacuten implementado en Virtex oacute Virtex II es maacutes eficiente La

celda nonrestontildeng_division_cell se implementa con p (raquo+l)-bits sumador-restador Cada

celda necesita n2+1 slices y tiene un retado de Tbdquoi + Si se requiere el resto

final un sumador condicional (raquo2 slices) seraacute necesario para ajustar el resto cuando

sea negativo Aacuterea y retardo el algoritmo sin restauracioacuten

CbdquoAacuteflp) = pCbdquomr_jltp(n)) + CndtddM =Mlaquo2+iacute)+ fi2 = pn2 +p + n2 suumlces

TbdquoArtp)ampp (rwulepW+Ta^+TcoriacutejtaacuteJd+Tnt = (p+l)Tbdquofplusmnp (tl+ 1)Taiexcllx+(n+)TBtt

5542 Algoritmo SRT base 2 resto complemento a dos

En eacutesta implementacioacuten en base 2 se utiliza para la representacioacuten del residuo el

complemento a la base Esto permite que la tabla Qsel sea trivial (de hecho no existe)

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

ya que se puede utilizar los dos bits de mayor peso para determinar la operacioacuten a

realizar (Tabla 511)

W(nn-1) =

srn(l0)

0 0

01

10

11

Valor Residuo

0 lt r lt 12

12 lt r lt 1

-1 lt r lt -12

-12 lt r lt 0

Operacioacuten a

Realizar

Nada

Restar Divisor

Sumar Divisor

Nada

Diacutegito

resultado Q(i)

0

1

-1

0

Tabla 511 Operaciones a realizar por el SRT en base 2

De este modo se pueden integran Qsel el multiplicador (solo multiplica por 1 0 o -1)

y el restador de la Figura 523 en una uacutenica celda srt_b2_division_step Esta celda ocupa

(raquo+)2 slices (laquo+1 ya que se opera con un bit maacutes de precisioacuten que el tamantildeo de los

operandos) El contenido de un slice de la celda srt_b2_division_step se puede ver en la

figura 54 El valor carry(-l) se carga con la sentildeal srn(0)

srn(1) sm(0) d(iexcl+1) w(i+1)

srn(1) srn(0) d(i) w(i)

carry(i+1)

n_w(i+1)

n_w(i)

carry(i-1)

Figura 524 Arquitectura de la celda srt_r2_division_step para el algoritmo SRT en base 2

212

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La funcioacuten loacutegica a realizar por la LUT (g(i)) es la descrita en la Tabla 512 Para el

primer caso srn = 00 se pasa el operando W directo en el segundo (srn = 01) al

realizar la suma se realiza la operacioacuten W copy D como en la suma normal En el tercer

caso (srn = 10) al realizar la resta con lo que se calcula not(W copy D) ademaacutes en el

carry(-l) se ingresa 1 En el uacuteltimo caso (srn = 11) se debe dejar el operando W

directo pero dado que la entrada carry(l) = srn(0) = 1 la funcioacuten g(i) computa la

operacioacuten not(w) Se puede observar que esto ultimo funciona por un lado la salida de

la puerta XOR calcularaacute not(w) copy 1 = w y por otro la salida carry(y) seraacute siempre uno

dado que el multiplexor de acarreo realizaraacute la funcioacuten not(not(w))w+not(w) 1 = 1

El retardo de la celda restoring_division_step seraacute Tm_gtitp_r2IacuteJi) mdash Tkt + (n+l)TmuXy

Ope

rand

o

W D

irec

to

Sum

a

W +

D

si sO d W(j) g(i)

0 0 0 0 iexclOacute

0 0 0 1 -i

0 0 1 0 0

o o i i i

i

Res

ta

W-D

Nie

ga W

si sO d W(j) g(i)

I O O O aso I O O I i3f 1 0 1 0 laquo1

1 0 1 1 0

1 1 0 0 1

1 1 0 1 0

1 1 1 0 1

1 1 1 1 0

Tabla 512 Funcioacuten loacutegica implementada en la celda S_R_Nada del algoritmo SRT base 2

La arquitectura del divisor SRT base 2 se puede ver en la Figura 525 Las celdas

srt_r2_division_step realizan la multiplicacioacuten y resta antes descrita y da como salida el

nuevo resto W(i+1) y el digito qreg del cociente (representado con dos bits y

correspondientes a los bits n-1 y n-2 del resto W(i) de entrada)

La celda cond_adder es un sumador condicional de raquo bits que se utiliza en le caso que el

uacuteltimo resto parcial fuese negativo La sentildeal adjust es simplemente el bit de signo del

uacuteltimo resto El aacuterea y retardos son los ya descritos

La celda converter realiza la operacioacuten de transformar los diacutegitos q(i) e -1 0 1 en

binario puro Adicionalmente resta uno en caso que se deba realizar el ajuste en el

resto en aquellos casos que el uacuteltimo resto w(p) hubiese sido negativo Baacutesicamente lo

213

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

que implementa es un restador que suma el complemento maacutes uno Esta suma de uno

se realiza a traveacutes del carry(-l) el que es a su vez se conecta a la sentildeal que informa si ha

habido ajuste adjust)

El aacuterea necesaria esp2 slices y el tiempo es similar que el de un sumadorrestador La

funcioacuten loacutegica implementada por cada LUT es not(q(i)(0) copy q(i)(l)) la sentildeal que debe

entrar en el muxcy es q(l)(0)

01 W(0)(n0) = 0 ampX OampD

i_t q(-D

Q(0p)

pound altn w _ d

y division_step ^ n w

W(1)(n-1n-2) |w(1)(n0)

iacutel W(1)(n-10)amp0

pound 5fn w bdquo d

y division_step 9 n w

~|w(2)(n0)

W(p-1)(n-1n-2) W(p-1)(n-10)amp0 iacutel pound

5tn w bdquo d y division_step q n w

W(p)(n)

adjust

A W(p)(n0)p

(m+1 )-biexclt cond_adder

1 r(p)

Figura 525 Esquema para el divisor SRT base 2

El aacuterea total corresponde ap celdas srt_r2_divisioti_step (pound(laquo+1)2 slices) un sumador

condicional Qi2) y una celda ajuste (p2) El camino criacutetico pasa por los p

srt_r2_divmon_step y por el condiriacuteonal_adder siendo similar al divisor sin restauracioacuten

214

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La diferencia es que los tiempos de conexioacuten son maacutes lentos productos del mayor fan-

out de las conexiones

C[np) =p(n+1)iexcl2 + n 2 + p 2 = (pn+n+2p)2 slices

T(tip) =pTbdquo +ptmmnm + tiexcllaquo + max(p+nJrV)tauxv + n+V)tmaXy

Un aspecto interesante en esta implementacioacuten es la potencial reduccioacuten consumo

debido a la menor actividad ya que en promedio el 50 de las veces no se realiza ni

suma ni resta

5543 Algoritmo SRT base 4 resto complemento a dos

En eacutesta implementacioacuten en base 4 se utiliza para la representacioacuten del residuo el

complemento a la base La tabla Qsel utiliza 5 bits para determinar el cociente en el

rango -3-2-1 0 1 2 3 (seguacuten PD-plot [ParOO]) Para codificar el cociente se

utilizan 3 bits en formato signo-valor absoluto (SVA) El primer bit del cociente (el

signo) s_r_n(2) se determina por el primer bit del resto W(n+2) y se utiliza la loacutegica

invertida (1 positivo 0 negativo) El modulo del cociente se obtiene en funcioacuten de los

siguientes 3 bits del resto W(n+ln-l) a excepcioacuten del caso 011 donde se consulta el

bit n-1 del dividendo para decidir El cociente se codifica seguacuten lo expresado en la

Tabla 513

Bits del Resto

W(n+2n-l)-d(n-l)

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1 - 0

0 0 1 1 - 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

Qi binario

1 0 0

1 0 1

1 1 0

1 1 0

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

Qi decimal

0

1

2

2

3

3

3

3

3

Tabla 513 Seleccioacuten de

Bits del Resto

W(n+ln-l)-d(n-l)

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1 - 0

1 0 1 1 - 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

Qi binario

0 0 0

0 0 1

0 1 0

0 1 0

0 1 1

0 1 1

0 1 1

0 1 1

0 1 1

Qi decimal

-0

-1

-2

-2

-3

-3

-3

-3

-3

diacutegito Qi en el SRT en base 4

215

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Para la multiplicacioacuten se utiliza las puertas mul_and que acompantildean a cada LUT para

llevar acabo la multiplicacioacuten eficiente por dos bits Esto permite realizar la

multiplicacioacuten praacutecticamente con el mismo costo en aacuterea que un multiplexor 2-1 de n

bits Requiere n2 + 1 slices para multiplicar un natural binario de n nits por otro de 2

bits El retardo es similar al de un sumador de raquo+2 bits es decir Tmbdquomu mdash tki +

(n+1)tgt wux-g + tm i T txoiZ

carry(i)

carry(i-1)

Figura 526 Celda para el caacutelculo de x(n0) x srn(l0)

raquo out(iexcl)

El esquema del divisor SRT base 4 se puede ver en la Figura 528 mientras que la

celda srt_r4_division_step se muestra en la Figura 527 La celda srt_division_step_r4

necesita 3 LUTs para la funcioacuten Qsel es decir 2 slices el multiplicador (laquo+2)2 slicer y

el sumador condicional (raquo+2)2 slices Con lo que el costo total Ceacuteiexcl^_itiexclgt_rf= n+4 slices

w(n+20) d(n+20) w(n+2n-1)

i_ Qsel

q(2)laquo-q(Dlaquo-q(tgt)lt- n+2 X 2 bits multiplier

q(2) = sign

w_q(n+40)

w_q(n+20) plusmn w_q(n+20) X

iacute n+2 bits adder substractor

T Figura 527 Celda Division_step_r4 para el divisor SRT base 4 con resto en complemento a dos

216

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

El retardo estaraacute constituido por tiempo de Qsel maacutes el retardo de la multiplicacioacuten y

el tiempo de ejecucioacuten de la suma_resta Ademaacutes el caacutelculo de Qsel se realiza con un

slke configurado como una funcioacuten de 5 entradas (usando MuxF5) para el bit srn(0)

El bit srn(l) se calcula con una LUT normal mientras que el bit srn(2) -el del signo

no- necesita calcularlo es W(n+2) Luego el retardo es

W(0)(n0) = 00amp X amp 0

Q(0p)

i f w diexclviexclsion_step

n w

i |w(1)(n+20)

W(1)(n0)amp00 pound w division_step

n w | W(2)(n+20)

qq(-p2-1) i W(p2-1)(n0)amp00 pound division_step

n w

W(p2)(n+2)

adjust

|w(p2)(njiquest

remainder

Figura 528 Divisor SRT base 4 con resto en complemento a la base

iquest] (n+1)-bitcond_adder

000amp D

Celda converter

El conversor de diacutegitos en SVA en base 4 de un diacutegito (2 diacutegitos binarios) a binario

complemento a dos se puede mapear eficientemente en la estructura de la FPGA La

Figura 529 muestra el contenido de un slke que implementa la conversioacuten de un digito

217

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

SVA en 2 bits La entrada carry(-1) se alimentaraacute de la sentildeal adjust que sumaraacute uno

cuando no se deba ajustar y cero en caso contrario

El signo de diacutegito SVA ( qqreg(2) ) se ingresa en la entrada complementada del

MUXCY La eficiente implementacioacuten de esta conversioacuten depende de que la sentildeal

qq(i)(2) se haya codificado con loacutegica invertida es decir (0-negativo I-positivo) La

funcioacuten o(2i) = not (qqreg(0)) y o(2i+l) = not (qq(i)(l))

carry(2iexcl+1)

qq(i)(1)

qq(iexcl)(2)

qq(i)(o)

qq(iexcl)(2)

tD- q(2iexcl+1)

3$gt- q(2iexcl)

carry(2i-1)

Figura 529 Contenido del sliacutece perteneciente a la celda converter para el divisor SRT base 4

Justificacioacuten de la eleccioacuten del conjunto de cocientes

Estas son algunas de las ventajas en el conjunto redundante maacuteximo es decir

Qi e -3 3 en vez de miacutenimo redundante Qi e -2 2 en la implementacioacuten en

FPGAs

bull El producto Wq(i) si bien es maacutes simple en el segundo caso solo un multiplexor

2-1 de raquo+2 bits ocupa lo mismo que el multiplicador por 2x(laquo+2) bits El retardo

en el primer caso es Tbdquo contra Tbdquoi + (n+2)TmttXV en el segundo caso

bull Como contrapartida la tabla Qsel es mucho maacutes simple en el caso de utilizar amdash3

La funcioacuten Qsel en la representacioacuten redundante miacutenima usa 5 bits del resto y 4 del

divisor El aacuterea y retardo de Qsel para la representacioacuten redundante miacutenima son 3

218

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

slices y 2Tiut+Tnit respectivamente versus 2 slkes y Tibdquoiexcl para la representacioacuten

redundante maacutexima

raquo La conversioacuten final a binario se puede hacer eficientemente si se utiliza loacutegica

invertida en la representacioacuten del signo de los diacutegitos del cociente

5544 Algoritmo SRT base 8 resto complemento a dos

En la implementacioacuten en base 8 se utiliza para la representacioacuten del residuo el

complemento a la base La tabla Qsel utiliza 9 bits para determinar el cociente en el

rango -7 0 7 (seguacuten PD-plot de la Figura 530) Para codificar el cociente

se utilizan 4 bits en formato signo-valor absoluto (SVA) El primer bit del cociente (el

signo) s_r_n(3) se determina por el primer bit del resto W(n+3) y se utiliza la loacutegica

invertida (1 positivo 0 negativo) El modulo del cociente se obtiene en funcioacuten de los

siguientes 3 bits del resto W(n+3n-2) y tres bits del divisor D(n-2n-4)

Figura 530 PD-Plot para SRT base 8 con cociente en el rango -7 -6 -5 -1 0 1 6 7

219

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

La celda srt_division_step_r8 es similar a la de base 4 (Figura 527) solo que la

multiplicacioacuten es por 3 bits y la tabla Qsel tiene 9 bits de entrada y 4 de salida (signo

maacutes 3 bits) La celda converter para base 8 es similar que en el caso de base 4 solo que

se utilizan 3 LUTs por cada diacutegito Por tanto aacuterea y retardo es

C^jiexcll_ji^_rs= 32raquo + 22 slices

Tmjiiexcliacute_fttp_tsmdash 1-Tiui + (n+3)Tmuxy + 6Tmiexcl

El circuito como en base-2 y base-4 necesita un sumador condicional para el ajuste

del resto (n2+1 slices) y un conversor a complemento a dos ((iquestgt+l)2 slices) Por tanto

el aacuterea y el retardo del SRT base 8 son

Csrt_rs(fJjp) mdash plb(Ciiexclvjttp_A$) + CnmUJJaQl) + Cmpaiacutetr

=p3(32n+22)+gtj2+(p+V)2+l =pn2 + n2 + 476p + 2 slices

Ttrt_rs(Jp) ~p3-(Fltliexcli_ftip_r8(n)+Tbdquot)+TaibdquoJ_piexclJa(tIacute)+Tbdquoet

= (J3p+)Tiu(plusmn(pn3+n+2)Tbdquomv+(J3p+)Tbdquobdquo

5545 Algoritmo SRT base 16 resto complemento a dos

En la implementacioacuten en base 16 se utiliza para la representacioacuten del residuo el

complemento a la base La tabla Qsel utiliza 12 bits para determinar el cociente en el

rango -15 0 15 (seguacuten PD-plot de la Figura 531) Para codificar el cociente

se utilizan 5 bits en formato signo-valor absoluto (SVA) El primer bit del cociente (el

signo) s_jr_n(5) se determina por el primer bit del resto W(n+5) y se utiliza la loacutegica

invertida (1 positivo 0 negativo) El moacutedulo del cociente se obtiene en funcioacuten de los

siguientes 6 bits del resto W(n+2n-4) y cuatro bits del divisor D(n-2n-6) Un total de

268 LUTs dentro de 141 slices son necesarios para la tabla Qsel en Virtex y 221 LUTs

en 181 slices en Virtex II La diferencia entre las familias de FPGA son debido a la

disponibilidad de los multiplexores dedicados muxF7y muxF8 en Virtex II

La celda division_step_r16 es similar al caso base 4 y 8 solo que la multiacuteplicacioacuten es por

4 bits y la tabla Qsel tiene 12 bits de entrada y 5 de salida (signo maacutes 4 bits) La celda

converter es tambieacuten es similar a las anteriores solo que se utilizan 4 LUTs por cada

diacutegito Por tanto Ca^ipyK = 2raquo + 144 slices y TJIacute^^M = 8Tbdquo + (n+4)Tm^ + 6Tk

220

IZZ

_ lt bullstfrt mdash V o i

fl~ st oSwei p ira ajirarooo uoo 91 asijq XHS vivd Iacute O J J - Q iquest Igg BJnSij

miro Huiro n-ioi-o uoovo 10HT0 l-OOH-O lOIOH) WOOrO

n-iro wuo n-oro moro P onro 001ro otero 0001 o

OOOOO

soDOaunoB sanbojq ajqos sojusurcradxg g oirajdir)

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Como en los casos anteriores un sumador condicional de (laquo+1) bits es necesario si se

necesita el resto asiacute como la celda converter para el cociente La implementacioacuten

completa pues tiene

C^_rf iacute(laquo^)=)4(Q^^_rfiacute(raquo))+Cw^^raquo)+C1^ltr =p4(2n+150)+n2+p2+2

=gtlaquo2+raquo2+36gt+2 slices

Trt_r16 np) ~pAr(Taacutehjl^_r16n)+Tbdquo^)+TaiexclbdquoJ_Jddn(n)+Tbdquoi

= ltp+VgtThl+(pnA+n+2)Ta^+ltJ4p+)Tlll

5546 Algoritmo SRT base 2 resto catty-save

En eacutesta implementacioacuten en base 2 se utiliza para la representacioacuten del resto o residuo

en formato carry-save El diagrama de bloques del divisor se puede ver en la Figura

532 Para la implementacioacuten de la celda division_step se analizan dos alternativas

diferentes

La primera aproximacioacuten para la celda division_step es la que se sugiere en la Figura

533 donde se utiliza un sumador de 3 bits para componer la cabecera del resto

parcial y una tabla de look-up para obtener las sentildeales q_Jgtos y q^neg que codifican el

digito seleccionado

En la bibliografiacutea iexclPar00][Erce04] se sugiere la necesidad de sumar los 4 bits de mayor

peso para direccionar la tabla de seleccioacuten de cocientes No obstante en eacutesta tesis se ha

probado empiacutericamente que 3 bits son suficientes Los valores que calcula la tabla Qsel

se pueden ver en la Tabla 514

Por otra parte el multiacuteplexor de la Figura 523a y el sumador carry-save se puede

integrar en una sola LUT utilizando las puertas xorcy y el muxcy Por cuestiones del

rutado interno del slice solo se puede integrar la suma de un diacutegito en cada uno de

ellos En siacutentesis la celda tiene un aacuterea y retardo de

Cbdquon_t_fuiiquest mdash n + 4 slices

TalLfs^id = 3Tlut + 2gtTmuxf + 2Tbdquot + 2Txor

222

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

Como en las implementaciones descritas anteriormente es necesario agregar un

sumador condicional para el ajuste del resto y un conversor de diacutegitos con signo

magnitud a complemento a dos Con esto la primera versioacuten del divisor SRT con

carry-save (usando un sumador) tendraacute un aacuterea y retardo de

Ciexclrt_fjiljlp) ~pCctll_fs1-Sf CamJ_1JJer+ Cnnvcrtcr -ptl + Ap + fi2 + 1 + raquo 2 + l

= (p+iacute)n +4p+2 slices

Tirt_r_fdaacutenp) ~p(Tlaquo_ai + Tbdquoe) + 2Tlaquo+ Tajj+ Tabdquoj_jjj

= (3gt+2)Tbdquo+ (2n+3p+2) + 2jampTlaquor+(3p+2)

Q(0p)

(p+1)-bit subtracter

X

i i q_pos u v

diexclvision_step q_neg u- V

^ ^ q_pos u v

diexclvision_step q_neg u- v

i i q_pos u v

division_step q_neg u- v

EZI (m+1)-bitadder

r(p)(n0) I r(p)(n) I _

adjust ^ (m)-bit cond_adder

T remainder

Figura 532 Arquitectura del SRT en base 2 con el resto en formato carry-save

223

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

u(n+1n-1) v(n+1n-1)

q_pos laquo

q_negltc

u1

0

1 (tn+1)-bitCSA

0

1

T Figura 533 Celda baacutesica del divisor SRT en base 2 con resto en formato cany-save

Valor

U(n+ln-n + V(bdquo+in-iacute)

000

001

010

011

100

101

110

111

Min valor

u+v

000xxx

001xxx

010xxx

011xxx

100xxx

101xxx

110xxx

l l lxx x

Max valor

u+v

001xxx

010xxx

011xxx

100xxx

101xxx

110xxx

l l lxx x

000xxx

Min decimal

0

y2

1

1 Vi

-2

- 1

-1

-Va

Max decimal

yraquo

i

1 Vi

-2

-1 Vi

-1

-Vi

0

Diacutegito elegido

1(10)

1(10)

1(10)

-1 (01)

-1 (01)

-1 (01)

-1 (01)

0(00)

Tabla 514 Tabla Qsel para el SRT base 2 con cany-save

224

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

J gt - gt V(m)

gt u(3)

E gt - gt V(2)

gt u(2)

pound gt gt V(1)

gt u(1)

gt v(0)

Figura 534 Implementacioacuten en FPGA de la celda baacutesica del divisor SRT en base 2 con resto en formato carty-save

La segunda versioacuten optimiza la seleccioacuten del diacutegito Q(i) remplazando la suma y la

seleccioacuten de 3 bits por una tabla de look-up (Figura 535) Dado que como se

mencionoacute anteriormente solo bastan sumar 3 bits de u y v la tabla para q_pos y q_neg

solo seraacute de 6 bits esto se puede implementar con 8 LUTS (4 slices) usando ademaacutes los

multiplexores muxF5 y muxF6 Esto proporciona un aacuterea y retardo para la celda

cell_cs_lut aacutet

Cttn_ajut = n + 4 slices

Tctttjsjut 21ttt + Imuxoacute + iacuteitit + lxor~ ~gtlkt + Tbdquoi + l^iacutexor

Por tanto el SRT con resto en carry-save y Qsel implementado completamente con

LUTS (sri_cs_L) tiene un costo en aacuterea y tiempo de

Cuutj (raquogt) mdashp-Cau+ Cabdquo_1jdtr+ Cabdquomiacuteir= (p+l)n + 4 ^ + 1 slices

_

u(n+1n-1) v(n-1n-1)

Qsel Table

q_pos-laquoLneg-

b(mj = 0-u(m-1)-v(m-1) bull

q_pos

v(1)-

q_pos-

V A shy

CUDOS bull

q_neg-b(0)-

LUT 0 1 7 ^ 7 t

LUT 0 1 i ^

LUT

2LUTs

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Tsrt_a_L(ttp) mdashp-(Tbdquo+ Tbdquo1) +2rbdquo+ TbdquoJJ+ Tabdquoi_fidd

= (3p+2)n+ (2n+2)Tm^+pTiar+ (2p+2)Tbdquod

Importante el hecho de que tanto Taii_ft_piexclu como Tttii_tsjut son constantes de modo que

el tiempo de computacioacuten depende de la precisioacutenraquo (y nif ngtp) y no solo del ancho

de los datos n

u(nn-2) v(nn-2)

LA -Qsel

(4 Slices)

q_poslaquo-q_neglt-

i 0

1 0

i

b

1 (n+1)-bitCSA

V f u T V

Figura 535 Celda de divisioacuten SRT con resto en carry-save (2da versioacuten)

555 Arquitecturas segmentadas

Para aumentar la velocidad la segmentacioacuten pipelinin^ es una teacutecnica altamente

efectiva sobre todo cuando se trata con lotes grandes de operaciones En esta teacutecnica

cada LD etapas de divisioacuten division_step sucesivas se agrega una etapa de elementos de

almacenamiento (registros de segmentacioacuten) Figura 536 De este modo el camino

criacutetico se reduce y consecuentemente se puede aumentar la frecuencia de operacioacuten

(maacutes detalles de la segmentacioacuten en la seccioacuten 34)

Se han llevado a cabo la segmentacioacuten para los divisores sin restauracioacuten (non-restoriniquest)

SRT base 2 y base 4 con resto en complemento a la base y finalmente SRT con resto

en carry-save Se utiliza la denominacioacuten de LD (Logc Deptfi) para denominar la cantidad

maacutexima de pasos de divisioacuten diviuacuteon_step entre bancos de registros sucesivos Las

celdas division_step para cada implementacioacuten son las descritas en 5441 5442

5443 y 5446 respectivamente

226

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

reg

reg

v v

q(-1)

W(0) = X

i pound

q(-2)

q(-p)

gtreg

division_step 0

I register

| W ( 1 ) ^

division_step 1

I register

| W(2) f

register

q(-p+1) fw(-p+1) |T

division_step pk+1

v v converter

sign(W(-p))

C J )

T adjust

W(-p)

f conditional adder

Q(0p) T

register

mdash gt register

register

remainder

Figura 536 Arquitectura segmentada de un divisor SRT con LD = 1

Para la implementacioacuten de las etapas de registros se utilizan los flip-jlops distribuidos en

los slices Adicionalmente los registros de deskewing pueden ser implementado usando

registros de desplazamientos implementados en LUT llamados SRL16 (Shift Registers

in LUT) Los registros de desplazamiento basados en tablas de look-up permiten

comprimir 16 shifi-registers en una sola LUT La teacutecnica de pipelining tiene pues un bajo

impacto en aacuterea dados los registros distribuidos dentro de los slices y de las

caracteriacutesticas de SRL16 de las LUTs Ademaacutes como fue descrito anteriormente la

227

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

segmentacioacuten tiene un fuerte impacto en la reduccioacuten del consumo por la eliminacioacuten

de las transiciones espurias (glitches)

556 Circuitos Secuenciales

Para la reduccioacuten del aacuterea la principal teacutecnica es secuencializar (al menos

parcialmente) la ejecucioacuten del algoritmo de divisioacuten La arquitectura general agrega

una maacutequina de estados que controla la ruta de datos compuesta por g etapas de

divisioacuten consecutivas y los registros correspondientes para almacenar los valores

intermedios (Figura 537)

-gt Q_en n r p n State I = P r-en

W(n1)amp00laquo4l0-degampX(n10)

_ _ r t l 7 D(n-10)

i div_en I

_Jt I L l-gt div_en m u x - s

Machine -gt rna_en -gt fr_en

- gt end

sh en

iquest Partial remainder

q(0)

r pr-bit Shift Register

I b Divider Reg

00amp D

- division_step(0) m fc_f

q(9-1) diexclvision_step(g-1)

rna en-

Remainder not_adj

Q en mdashgt

converter

I adjust = Wp(n+1)

n_T | Q(P-10)

cond_adder

E ^uotient Register f r - e n ^Final remainder reg

| R(n-10)

Figura 537 Arquitectura secuencial del algoritmo de divisioacuten SRT

En cada ciclo de reloj el circuito genera gr bits mientras un ciclo extra es necesario

para calcular el resto Con esto se necesitan pl(gr) ciclos para el caacutelculo completo con

228

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

un ciclo extra para un eventual ajuste del resto El valor p se refiere a la precisioacuten en

bits requerida g a la cantidad de etapas de divisioacuten division_step y r a la base del divisor

Las Iacutemplementaciones secuenciales de estos circuitos son atractivas tambieacuten desde el

punto de vista del consumo La menor profundidad loacutegica producida por los registros

a cada ciclo de reloj reduce las transiciones espurias aunque como contrapartida existe

un mayor consumo de sincronizacioacuten debido a la maacutequina de estados y los registros

intermedios

557 Resultados en aacuterea y velocidad para los divisores para nuacutemeros

fraccionarios

Primero se presentan los resultados respecto al aacuterea y la velocidad para dispositivos

Virtex y Virtex II Si bien el objetivo es la reduccioacuten de consumo la cuidadosa

implementacioacuten de los circuitos ha dado interesantes resultados tanto en aacuterea como en

velocidad

Los circuitos descritos en las secciones 544 545 y 546 han sido implementados en

Virtex (XCV800hq240-6) y en Virtex II (XC2V1000bg575-6) Los circuitos son

descritos en VHDL instanciando cuando es necesario primitivas de bajo nivel como

LUTs muxcy xorcy etc [Xil03c] Se utilizo el entorno de desarrollo Xilinx ISE 61

iexclXil03d] y XST (Xilinx Synthesis Technologiei) [Xil03e] para la siacutentesis La misma

asignacioacuten de patas la opcioacuten de preservar la jerarquiacutea (keep hierarchy) optimizacioacuten

por velocidad y restricciones de tiempo timing constraini) son parte de la estrategia de

disentildeo

La mayor diferencia entre las Iacutemplementaciones en las familias Virtex y Virtex II se

observan en el retardo del rutado En Virtex la relacioacuten loacutegica-rutado en el peor

camino es en promedio (55 45) mientras que en Virtex II dicha relacioacuten es (63

37) Otra diferencia se debe a las conexiones raacutepidas entre slices que conectan los

multiplexores muxF7 y muxF8 presentes en Virtex II que permiten implementar

grandes bloques combinaciones de forma maacutes eficiente Asiacute las tablas de seleccioacuten

(Qsel) grandes presentes en base-8 y base-16 se implementan maacutes raacutepido y requieren

menos aacuterea

229

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

5571 Resultados en implementaciones combinacionales

La Tabla 515 muestra para el dispositivo Virtex el aacuterea (en LUTs y sices) y los retados

(total debido a la loacutegica y debido al rutado) expresados en ns En la cantidad de LUTs

(por ej 2420+12) se expresa por separado las utilizadas para la loacutegica y las que son solo

empleadas para rutar Los circuitos son los descritos en la seccioacuten 544 divisioacuten con

restauracioacuten y sin restauracioacuten rest nonresl) SRT base-2 base-4 base-8 y base-16 con

resto en complemento a dos (srf_r2 srt_r4 srt_r8 srt_16) y finalmente los dos

divisores SRT base-2 con resto representado en carry-save (con sumadores srt_cs_ad y

con tablas de look-up srt_cs_J^iexcl

Non

Res

t R

est

2 Vi

5 Vi

N

P

40 32 24 16 40 32 24 16 40 32 24 16 40 32 24 16

Aacuterea

slices

880 576 336 160

1640 1056 600 272 861 561 325 153 940 624 372 184

LUTs

1719 1119 647 303

3279 2111 1199 543

1720 1120 648 304

1936 1245 741 344

Retardo

total

2517 1806 1187 688

3291 2383 1584 915

2932 1981 1255 692

2437 1878 1257 824

loacutegica

1292 933 625 378

1464 1082 745 442

1243 908 608 370

1147 873 634 398

lutado

1225 873 562 309

1827 1301 838 473

1688 1073 646 322

1290 1005 623 426

oo

OS

VO

Vi

-o Vi

V)

1) Vi

N

P

40 32 24 16 40 32 24 16 40 32 24 16 40 32 24 16

Aacuterea

slices

1112 804 487 243

2258 1666 1137 676

1802 1186 698 338

1779 1183 695 335

LUTs

2420+12 1774+10

1089+7 584+4

4561+44 3358+35 2289+25 1390+16 2172+1 1461+1 901+1 439+1

2072+40 1400+32 856+24 440+16

Retardo

total

2773 2246 1546 839

2457 1911 1384 818

3369 2592 1928 1196 2386 1792 1414 879

loacutegica

1011 830 602

414 955 759 564 366

1321 1050 806 546

1035 811 599 428

rutado

1761 1416 944 425

1502 1152 820 452

2048 1541 1122 652

1350 981 814 451

Tabla 515 Resultados para implementaciones combinacionales en la familia Virtex

Hasta 24 bits el divisor sin restauracioacuten y SRT base-2 muestran los mejores resultados

respecto del retardo para tamantildeo de operandos mayores SRT resto carry-save

(srt_cs_L) SRT base-16 y SRT base-4 son las mejores opciones Respecto del aacuterea

SRT base-2 y non-restoring son siempre las mejores alternativas Por el contrario la

divisioacuten por restauracioacuten y SRT base-16 poseen las peores caracteriacutesticas Los mejores

resultados en aacuterea x retardo (sltce x ns) lo poseen SRT base-2 hasta 24 bits y SRT

base-4 para operandos de mayor tamantildeo

230

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La Tabla 516 muestra los resultados para la familia Virtex II Los circuitos

implementados son los mismos que se han descrito anteriormente Se han quitado los

valores correspondientes a restoring y srt_cs_ad dado sus pobres resultados La

arquitectura propuesta en la seccioacuten 5446 es decir SRT con resto representado en

carry-save (srt_cs_L) posee la mejor performance seguido por SRT base 16 (srt_r16) La

mejora en el retardo respecto de la divisioacuten sin restauracioacuten es de hasta un 425

Respecto del aacuterea como en Virtex SRT base-2 y non-restoring son los que menos

recursos necesitan Los mejores resultados en la meacutetrica aacuterea x retardo (siquestce x ns) lo

posee SRT base-4

srt_

r8

CO

3 3 vgt

N P

56 48 40 32 24 16 56 48 40 32 24 16 56 48 40 32 24 16

Aacuterea

slices

2508 1916 1399 1026 652 334

4237 3429 2685 2004 1388 834

3467 2545 1802 1186 698 338

LUTs

4408+1 3324+1 2384+1 1744+1 1068+1 536+1

6469+196 5147+168 3953+140 2887+112

1949+84 1139+56 3802+56 2874+48 2074+40 1402+32 858+24 442+16

Delay total

2669 1902 1527 1290

898 545

2199 1739 1443 1096 797 530

1748 1520 1228 997 748 504

logic 1459 1221 951 771 530 330

1200 995 785 627 445 289

1041 925 746 626 456 320

route

1210 681 576 519 368 215 999 745 658 470 351 241 707 595 482 371 292 184

Non

-Res

tori

ng

tiacute CO

5 (O

N

P

56 48 40 32 24 16 56 48 40 32 24 16 56 48 40 32 24 16

Aacuterea

slices

1680 1248

880 576 336 160

1653 1225 861 561 325 153

3417 2545

921 609 361 177

LUTs

3303 2447 1719 1119 647 303

3306+2 2448+2 1720+2 1120+2 648+2

304 3498+1 2614+1 1858+1 1230+1 730+1 358+1

Delay

total

3040 2449 1755 1232 824 501

2947 2358 1788 1314 891 475

2316 1943 1506 1144

825 498

logic

2052 1573 1202 854 564 331

2013 1590 1190 845 548 327

1601 1285 1012 760 539 334

route

988 876 552 379 260 170 935 768 598 469 343 148 715 659 495 383 286 164

Tabla 516 Resultados para implementaciones combinacionales en la familia Virtex II

El retardo total en funcioacuten del tamantildeo de los datos en Virtex se graacutefica en la Figura

538 en tanto la Figura 539 hace lo propio con Virtex II Finalmente la Figura 540

representa el aacuterea en slices en funcioacuten del tamantildeo de los operandos para el dispositivo

Virtex II Cabe aclarar que el aacuterea en los dispositivos Virtex es praacutecticamente el mismo

que en Virtex II

231

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

mdashmdash rest mdashbullmdash nr -xmdash srt_r4 -5Kmdash srt_r8

mdashimdashsrt_cs_y1 mdashmdash srt_cs_l

srt_r2

--srt_r16

16 24 32 40

Figura 538 Retardo de los divisores en funcioacuten del tamantildeo de datos en Vitex

Figura 539 Retardo de divisores en funcioacuten del tamantildeo de datos en Virtex II

232

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

16 24 32 40 48 56

Figura 540 Aacuterea de los divisores en Virtex y Virtex II

5572 Resultados en implementaciones segmentadas

Los siguientes circuitos fueron segmentados con diferentes granularidades divisioacuten sin

restauracioacuten SRT base-2 SRT base-2 usando SRL SRT base-4 y SRT con resto

representado en carry-save La Tabla 517 muestra el aacuterea expresada en sices la cantidad

de registros (flip-JIops y SRL las LUTs configuradas como shift registers) y el maacuteximo

ancho de banda en MHz para diferentes divisores de 32 bits y diferentes

profundidades loacutegicas LD (la cantidad de pasos de divisioacuten entre bancos de registros

consecutivos) en dispositivos Virtex La Tabla 518 hace lo propio para Virtex II

Las diferentes arquitecturas de divisores muestran resultados similares en cuanto a la

mejora en la velocidad vs el incremento en aacuterea como lo muestra la Figura 541 para

los dispositivos Virtex II

La divisioacuten SRT en base-4 exhibe los mejores resultados en ambas familias SRT con

resto en carry-save muestra muy pobres resultados tanto en aacuterea como en velocidad en

tanto la divisioacuten sin restauracioacuten reporta valores muy buenos Una arquitectura con maacutexima

segmentacioacuten (LD = 1) acelera el sistema hasta en maacutes de 20 veces respecto de una

implementacioacuten totalmente combinacional (LD = 32) con un incremento en el aacuterea menor

a tres veces

233

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

rrgt

i

2

3

4

5

6

7

8

11

12

16

32

C

33

16

11

8

7

6

5

4 3

3

2

1

Non-Restoring slices

1968

1256

1066

943

905

866

822

779

738

740

697

656

F F

2705

1328

933

688

617

538

454

368

289

292

208

128

Mhz

1017

559

495

345

334

253

225

200

156

144

108

56

SRT radix 2 SRL slices

1747

1169

1012

915

888

858

825

786

725

728

675

625

FF

2274

1152

835

641

583

521

455

385 321

327

224

128

srl

88

52

48

40

40

36

28

32

-

-

-

-

Mhz

1117

538

496

343

325

264

239

202

147

136

102

52

SRT radix 4 slices

-1288

-967

907

-835

-782

736

752

FF

-1265

-632

-508

-372

-315

222

226

srl

-39

-30

-36

-12

-

-

-

-

Mhz

626

-394

-313

-217

-162

106

53

SRT carrysave slices

3356

2257

1939

1745

1689

1629

1566

1508

1456

1462

1355

1251

F F

3298

1647

1164

871

780

685

586

483

386

392

256

147

srl

90

52

48

40

40

36

28

16

-

-

-

Mhz

791

483

431

337

307

284

249

200

168

154

112

59

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

Tn

i

2

3

4

5

6

7

8

11

12

16

32

C

33

16

11

8

7

6

5

4

3

3

2

1

Non-Restoring

slices

2000

1286

1067

943

908

869

827

779

738

748

697

656

F F

2705

1328

933

688

617

538

454

368

289

292

208

128

Mhz

1828

940

798

554

501

421

362

301

239

221

159

80

SRT radix-2

slices

1720

1171

1014

916

891

861

828

788

757

763

722

756

FF

2244

1152

835

641

583

521

455

385

321

327

255

353

srl

90

56

48

48

40

36

28

32

~

-

-

-

Mhz

1822

857

773

514

508

436

374

288

240

223

159

84

SRT radix-4

slices

-

1305

-

988

-

919

-

849

-

751

768

849

FF

-

1265

-

631

-

508

-

414

-

222

226

414

srl

-

39

-

30

-

36

-

12

-

-

-

Mhz

-

1185

-

505

-

474

-

301

-

233

171

89

SRT carry-save

slices

3356

2257

1939

1745

1689

1629

1566

1508

1456

1462

1355

1251

F F

3298

1647

1164

871

780

685

586

483

386

392

256

147

srl

90

52

48

40

40

36

28

16

Mhz

1195

698

710

480

507

530

419

320

271

283

191

100

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

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

140-r

120-

100-

^ SOshyIS c gt 60 -ro agt O

4 0 -

20 -

0 -

(mdashDmdash delay mdashbullmdash aacuterea) nonrest (mdashomdash delay mdashbullmdash aacuterea) srt_r2 (mdashamdashdelay mdashbullmdash aacuterea) srt_r4 (mdashDmdash delay mdashbullmdasharea)srt_

o i

12 I

16 T -

20 - 1 -

24 -rmdash 28

mdash r 32

3200

-2400

-1600

800

Figura 541 Aacuterea y retardo en funcioacuten de la profundidad loacutegica para divisores de 32 bits en Virtex II

5573 Resultados en implementaciones secuenciales

La Tabla 519 muestra los resultados para las implementaciones iterativas en Virtex en

tanto que la Tabla 520 hace lo propio para Virtex II Se muestran la cantidad de bits

calculados en cada ciclo de reloj (G) la cantidad total de ciclos utilizados (C) el aacuterea

en slices y la cantidad de registros utilizados Luego el periodo y la maacutexima frecuencia

de funcionamiento Finalmente la latencia en ns (L = periodo de reloj x cantidad de

ciclos de reloj necesarios) y el aacuterea x latencia (AxL) en ns x slices

Cuando G crece la latencia decrece a expensa de mayor aacuterea La mejor relacioacuten aacuterea X

latencia se obtiene para G = 2 Los mejores resultados en cuanto a la latencia los

ofrece SRT base-4 en ambas familias En la Figura 542 se muestra los resultados de

latencia para los diferentes circuitos secuenciales en tanto que en la Figura 543 se

muestra la relacioacuten aacuterea x latencia

235

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

o Z

ti oo

oo

ti r-gt oo H

3 oo

G

1 2

4

8

1

2

4

8

2

4

8

4

8

1

2

4

8

C

32

16

8

4

32

16

8

4

16

8

4

8

4

32

16

8

4

slices

113

124

155

219

135

139

169

229

134

169

240

336

603

179

210

282

426

FF

203

202

200

196

240

236

236

236

221

221

222

255

294

269

267

267

267

P(ns)

89 137

238

449

80

134

241

479

127

219

412

230

419

119

177 299

525

F(MHz)

1120

728

421

223

1246

745

415

209

788

457

243

435

239

838

566

334

190

L(ns)

2857

2198

1902

1796

2569

2148

1930

1917

2029

1752

1646

1839

1675

3820

2826

2393

2102

AxL

32280

27258

29480

39331

34677

29864

32612

43902

27192

29607

39504

61786

100974

68375

59338

67481

89538

Tabla 519 Resultados implementaciones iterativas en Virtex

w

5 o Z

1 oo

OO

OO H

oo

G

1

2

4

8

1

2

4

8

2

4

8

4

8

1

2

4

8

C

32

16

8

4

32

16

8

4

16

8

4

8

4

32

16

8

4

slices

113

124

155

219

135

139

169

229

134

169

240

336

603

179

210

282

426

FF

203

202

200

196

240

236

236

236

221

221

222

255

294

269

267

267

267

P(ns)

89

137

238

449

80

134

241

479

127

219

412

230

419

119

177

299

525

F(MHz)

1120

728

421

223

1246

745

415

209

788

457

243

435

239

838

566

334

190

L(ns)

2857

2198

1902

1796

2569

2148

1930

1917

2029

1752

1646

1839

1675

3820

2826

2393

2102

AxL

32280

27258

29480

39331

34677

29864

32612

43902

27192

29607

39504

61786

100974

68375

59338

67481

89538

Tabla 520 Resultados implementaciones iterativas en Virtex II

236

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

Figura 542 Latencia para los diferentes circuitos secuenciales en Virtex II

800

600

400

200

Latencia x Aacuterea (ns x slices)

v - CM bull CO

3 3 3 3 c i c i c i c i gt gt gt gt

T3 TJ T3 O

deg1 CM i bulle

vgt

deg] CM ^1 bullc co

deg] CM i bullK CO

degi CM i bulle (0

deg1 bull

bulldegl bulle co

deg1 bull

bulldegl tiacute (0

deg1 bull

bulll t CO

deg1 CO

I

srt

deg1 en

1

srt

T - CM 00

degi deg1 deg1 deg1 co co co co

degl degl degl degl bull e t t - e co ltgt co co

Figura 543 Relacioacuten aacuterea x latencia en circuitos secuenciales en Virtex II

5574 Comparacioacuten de resultados en aacuterea y velocidad

Se comparan en esta seccioacuten los resultados obtenidos respecto de recientes

contribuciones asiacute como la relacioacuten de retardo y aacuterea entre las arquitecturas

combinacionales segmentadas y secuenciales

Trabajos previos Diferentes implementaciones de los algoritmos SRT fueron

presentadas recientemente En [Beu02] los multiacuteplicadores dedicados presentes en

237

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Virtex II son utilizados para implementar divisores SRT en base-2 -4 y -8 Se utiliza

para esto un generador descrito en C++ que produce coacutedigo VHDL sintetizable

|Lee03] presenta un SRT base-8 con diacutegitos miacutenimamente redundantes ademaacutes

resultados previos en un SRT base-4 son sentildealados En [Wan03] divisores SRT base

2 4 y 8 son implementados iterativamente totalmente combinacionales y totalmente

segmentados En [Wan03] se utilizan generadores de moacutedulos descritos en JHDL

En la Figura 544 se muestran las implementaciones presentadas en la seccioacuten 544

comparadas con los trabajos anteriores De esta tesis se muestran las

implementaciones combinacionales de SRT base-2 -4 -16 con resto en complemento

a dos (srt_r2 srt_A srt_rG) y el SRT base-2 con resto representado en carry-save

(srt_cs_L) Adicionalmente los resultados de la implementaciones de [Lee03] del SRT

base-4 y base-8 (J_A y iquest_r8) el mejor resultado de [Beu02] un SRT base-8 que utiliza

bloques multiplicadores dedicados de Virtex II muiquestfl8xl8 (b_r) y finalmente la

implementacioacuten combinacional de divisores SRT base-2 y base-4 de 24 bits presentada

en [Wan] (ngt_r2 iigt_r4) completan la figura

^ - ^ ^ s r t j r i -laquomdashsrt_r4 mdash - s r t j 1 6 ~

i mdash-srt_cs_L mdash5Kmdash I_r8 mdashbullmdashI_r4

mdashImdashb_r8 bull w r2 bull w r4

16 24 32 40 48 56 Operand size (bits)

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

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La Figura 545 muestra la relacioacuten velocidad-latencia-aacuterea para los divisores de 32 bits

presentados en esta seccioacuten Se muestran los circuitos combinacionales (array) las

versiones secuenciales sequentiat) y dos de las arquitecturas segmentadas (pipeSKTr2

pipeSKTriacute)

Como es de esperar las implementaciones secuenciales son las que menos aacuterea

requieren mientras que las implementaciones segmentadas son las de menor retardo

con relativamente baja penalidad en aacuterea pero a expensas de un retardo inicial Por

uacuteltimo la latencia miacutenima de las implementaciones combinacionales se logra a

expensas de un alto costo en aacuterea

Figura 545 Relacioacuten retardo - latencia - aacuterea par las diferentes arquitecturas de divisores fraccionarios

239

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

558 Resultados del consumo para divisores de nuacutemeros fraccionarios

El consumo fue medido en un dispositivo Virtex XCV800hq240-6 montada sobre

una tarjeta de prototipo de Xilinx AFX PQ240-100 utilizando el arreglo experimental

y metodologiacutea descritas en el Apeacutendice B Los circuitos son descritos y

implementados tal lo resentildeado en la seccioacuten 547 es decir usando descripcioacuten VHDL

instanciando cuando es necesario primitivas de bajo nivel Se utilizoacute el entorno de

desarrollo Xilinx ISE 61 [Xil03d] y XST (Xilinx Synthesis Technologies) para la siacutentesis

La misma asignacioacuten de patas preservar la jerarquiacutea optimizacioacuten por velocidad y

restricciones de tiempo son parte de la estrategia de disentildeo

Al igual que con la divisioacuten nuacutemeros enteros el consumo fue dividido en consumo

estaacutetico dinaacutemico y off-chip Se han utilizado para la medicioacuten de los circuitos tres

secuencias diferentes avgjog max_tog y min_tog) ingresadas a traveacutes de un generador

de patrones [Tek04b] Las salidas estaacuten conectadas a un analizador loacutegico [Tek04a]

5581 Resultados en circuitos combinacionales

La Figura 547 representa el consumo de potencia expresado en mWMHz para

diferentes secuencias de vectores con divisores de 16 bits en tanto la Figura 547 hace

lo propio para operandos de 32 bits

Para operandos de 16 bits el divisor SRT base-2 muestra los mejores resultados en

promedio un 185 menos que el divisor sin restauracioacuten (non-restoring) y 71

respecto del divisor SRT con resto carry-save

bull Onr i resl Dsrt_r2 Dsrt_r4 iexcl iexcl Msrt_r8 EJsrt_r16 Bsi-Lcs j

Min_tog Maxjog Avg_tog

Figura 546 Consumo dinaacutemico en mWMHz para divisores de 16 bits

240

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

Para el caso de los divisores de 32 bits SRT base-2 y SRT base-4 son las mejores

opciones SRT base-2 mejora hasta un 512 respecto del divisor sin restauracioacuten y

hasta un 78 respecto del divisor SRT con resto carry-save Finalmente se muestra la

relacioacuten aacuterea-retardo-consumo en la Figura 548 Los divisores SRT base-2 (srt_r2)

SRT base-4 (srt_rf) y sin restauracioacuten (raquo) ofrecen la mejores figuras en ATP

Analizando la relacioacuten aacuterea x retardo x consumo se observa al divisor SRT base-2

como la mejor opcioacuten seguida del SRT base-4

I s n r bull rest bull srt_r2 D srt_r4 1 bull s rt_r8 El s rt_r16 bull s rt_cs

Mn_tog Maxjog Avgjog

Figura 547 Consumo dinaacutemico en mWMHz para divisores de 32 bits

Figura 548 Area-Time-Power para divisores de 32 bits con la secuencia ayg_tog

241

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

5582 Resultados en circuitos segmentados

Para medir y cuantificar la reduccioacuten de consumo debido a la segmentacioacuten en los

circuitos divisores se construyeron versiones segmentadas de los circuitos sin

restauracioacuten (laquo) SRT base-2 y base-4 con resto en complemento a dos (srt_2 srt_rf) y

SRT base-2 con resto en carry-save (srt_cs) Los resultados en aacuterea y velocidad se

muestran en la seccioacuten 5472

0 4 8 12 16 20 24 28 32

Figura 549 Consumo dinaacutemico (mWMHz) con respecto a la profundidad loacutegica para los divisores SRT base-2 con resto en complemento a dos

Figura 550 Consumo dinaacutemico (mWMHz) con respecto a la profundidad loacutegica para los diferentes divisores segmentados y la secuencia de prueba avg_tog

242

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La Figura 549 presenta el consumo dinaacutemico con respecto a la profundidad loacutegica

para la implementacioacuten de los divisores SRT base-2 con resto en complemento a dos

En la figura se puede apreciar que la relacioacuten del consumo respecto de la profundidad

loacutegica es similar para los diferentes patrones de entrada decrece praacutecticamente de

forma lineal con la profundidad loacutegica (LD) Cabe destacar la baja influencia de la

corriente de sincronizacioacuten en el consumo dinaacutemico

Cuando maacutes etapas aacuteamppipelim se agregan menos glitches se producen y el consumo se

reduce Esta reduccioacuten en la actividad hace menos importante la arquitectura elegida

de hecho las diferentes arquitecturas de divisores poseen similares figuras en el

consumo respecto de la profundidad loacutegica como lo muestra la Figura 550

0 4 8 12 16 20 24 28 32

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

Una arquitectura totalmente segmentada (LD = 1) ahorra hasta un 93 del consumo

dinaacutemico respeto de una arquitectura totalmente combinacional (LD = 32) Esto es

una arquitectura combinacional consume hasta doce veces maacutes que una arquitectura

totalmente segmentada

Finalmente en la Figura 551 se puede ver el consumo aacuterea y retardo normalizados

respecto de la profundidad loacutegica (LD) Se destaca la linealidad del retardo asiacute como

del consumo respecto de la profundidad loacutegica y el relativamente baja penalidad en

aacuterea de esta teacutecnica

243

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

5583 Resultados en circuitos iterativos

Los resultados en el consumo de las implementaciones iterativas en Virtex se pueden

ver en la Figura 552 La graacutefica muestra el consumo energiacutea promedio para llevar a

cabo una operacioacuten expresado en njoules para divisores de 32 bits Se muestra por

separado el consumo de sincronizacioacuten y el debido a la ruta de datos El consumo

debido a la sincronizacioacuten decrece a medida que G (bits calculados a la vez) crece

principalmente debido a la menor cantidad de ciclos necesarios De manera opuesta el

consumo de la ruta de datos aumenta a medida que crece G debido al aumento de los

glitches El valor oacuteptimo de G desde el punto de vista del consumo es 4 excepto para

SRT con resto en carry-save (srt_cs)

nr_g1 nr_g2 nr_g4 nr_g8

srt_r2_g1 srt_r2_g2 srt_r2_g4 srt_r2_g8

srt_r4_g2 srt_r4_g4 srt_r4_g8

srt_r16_g4 srt_r16_g8

srt_cs_g1 srt_cs_g2 srt_cs_g4 srt_cs_g8

Figura 552 Consumo de energiacutea tanto de sincronizacioacuten como de la ruta de datos para los divisores secuenciales de 32 bits

La divisioacuten sin restauracioacuten con G=4 (nr_g4) muestra los consumos maacutes bajos asiacute

como SRT base-2 con G=4 (srt_r2_g4) y SRT base-4 con G=4 (srt_r4_gf) los que

poseen consumos de energiacutea similares

244

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

Una observacioacuten importante es que el valor de G determina la figura del consumo con

mayor importancia que el algoritmo aplicado En SRT base-2 con G=4 existe un

ahorro del 51 de energiacutea respecto a G=l Por otra parte el ahorro de energiacutea

respecto de las implementaciones combinacionales son muy significativas el circuito

anterior consume un 85 menos que SRT base-2 89 menos que el algoritmo sin

restauracioacuten y 94 respecto al SRT con resto en carry save

5584 Comparaciones arquitecturales en el consumo

La Figura 553 muestra aacuterea retardo y consumo para algunos de los circuitos

divisores de 32 bits implementados en esta seccioacuten Se muestran los circuitos

combinacionales (array) los circuitos segmentados SRT base-2 y base-4 para las todas

profundidades loacutegicas (pipe_SRT2 y pipe_SRT4) y las arquitecturas secueacutenciales

(iterativi)

Figura 553 Aacuterea retardo y consumo (ATP) para diferentes algoritmos divisioacuten y arquitecturas secueacutenciales combinacionales y segmentadas

Las arquitecturas combinacionales poseen la menor latencia a expensa de un mayor

aacuterea y una excesiva disipacioacuten de potencia Las arquitecturas segmentadas (pipemeacute)

ofrecen el mayor caudal de trabajo (fhroughput) con un relativamente bajo incremento

245

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

en aacuterea respecto de la implementacioacuten combinacional y una buena figura de consumo

pero con una latencia inicial muy grande Finalmente las implementaciones

secuenciacuteales tienen un aacuterea mucho menor un retardo que no duplica al de las

arquitecturas secuenciales y un reducido consumo

559 Conclusiones de la divisioacuten de nuacutemeros fraccionarios

En esta seccioacuten se han presentado arquitecturas desarrolladas para la divisioacuten de

nuacutemeros fraccionarios (orientadas a la divisioacuten de mantisas en punto flotante)

analizado el consumo para diferentes formas de implementacioacuten

Los circuitos fueron implementados en VHDL instanciando componentes de bajo

nivel cuando fue necesario Implementaciones completamente combinacionales con

diferentes grados de segmentacioacuten y secuenciales con diferentes granularidades fueron

construidos y medido el consumo

Para implementaciones combinacionales el algoritmo SRT base-2 tiene la mejor figura

en aacuterea retardo y consumo reduciendo este uacuteltimo hasta en un 51 el consumo

respecto del tradicional algoritmo de divisioacuten sin restauracioacuten y un 93 respecto del

SRT base-2 con resto representado en carry-save

Las arquitecturas segmentadas ofrecen caracteriacutesticas importantes para la reduccioacuten de

consumo Las medidas muestran una reduccioacuten de hasta un 93 del consumo

dinaacutemico en una arquitectura totalmente segmentada respecto de una totalmente

combinacional Esta mejora es obtenida con un relativamente pequentildeo impacto en el

aumento de aacuterea

Las implementaciones secuenciales usan menos recursos con una relativamente

pequentildea penalidad en la latencia pero una importante reduccioacuten en el consumo

llegando hasta un 89 respecto a una implementacioacuten totalmente combinacional

Una observacioacuten importante en las implementaciones secuenciales es que la cantidad

de bits calculado por ciclos de reloj (G) es maacutes determinante en el consumo que el

algoritmo utilizado Arquitecturas con G = 4 muestra el mejor consumo y mejor

relacioacuten aacuterea x retardo x consumo en tanto los circuitos con G = 2 optimizan la

relacioacuten aacuterea x retardo Los algoritmos sin-restauracioacuten y SRT base-2 obtienen los

mejores resultados

246

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

56 Conclusiones del Capiacutetulo

En este capiacutetulo se han examinado alternativas a nivel algoriacutetmico para diferentes

bloques aritmeacuteticos Se han analizado la multiplicacioacuten modular la suma de alta

velocidad la divisioacuten entera y por uacuteltimo la divisioacuten de nuacutemeros fraccionarios Se

pueden deducir algunos consejos y conclusiones generales derivados de los

experimentos los que se resumen a continuacioacuten

bull El nivel algoriacutetmico es una interesante fuente de reduccioacuten de consumo en

los ejemplos descritos en esta seccioacuten queda claro que se trata de reducciones

del orden del 50 en el consumo debido a la correcta seleccioacuten de un

algoritmo

bull Las meacutetricas de aacuterea y velocidad no son suficientes para calificar a priori la

calidad del algoritmo respecto del consumo Existen caracteriacutesticas maacutes sutiles

a tener en cuenta como son la capacidad de producir o no movimientos

espurios (glitches) dentro de la ruta de datos

bull Es sencillo encontrar ejemplos que contradicen la regla empiacuterica El circuito

maacutes raacutepido es el que menos consume y tambieacuten el que menos aacuterea menos

consume A la hora de evaluar algoritmos para bloques aritmeacuteticos la cuenta

de transiciones en una simulacioacuten postplace amp route es maacutes efectiva

bull La representacioacuten de los datos usados por el algoritmo asiacute como la

correlacioacuten de datos que se producen dentro de la ruta de datos son muy

relevantes Por ejemplo en la divisioacuten de enteros el algoritmo non-restontildeng

genera alternativamente restos intermedios muy pequentildeos positivos y

negativos los que al ser representados en complemento a dos generan gran

actividad

bull Existe un efecto directo sobre el consumo que poseen la complejidad y la

precisioacuten de los algoritmos Un divisor de 3232 bits consume alrededor de

cuatro veces maacutes que el homologo que divide 1616 bits Esto conduce a la

recomendacioacuten de evitar sobredimensionar la ruta de datos

bull La regularidad y modularidad de los algoritmos son caracteriacutesticas altamente

deseables para la segmentacioacuten y la secuencializacioacuten de los algoritmos dos

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

bull La aplicacioacuten de la segmentacioacuten ofrece importantes reducciones de consumo

cuando se tienen grandes lotes de operaciones a realizar La reduccioacuten

depende del tamantildeo de la ruta de datos y los niveles de segmentacioacuten

Reducciones superiores al 80 son corrientes en esta teacutecnica

bull Las implementaciones secuenciales usan menos recursos con una

relativamente pequentildea penalidad en la latencia Es muy importante la

regularidad del algoritmo para reducir la complejidad de la ruta de datos asiacute

como la maacutequina de estados que la controla Las reducciones de consumo

pueden superar el 80

bull En las implementaciones secuenciales aumenta el consumo de sincronizacioacuten

por ello la secuencializacioacuten oacuteptima (cantidad de etapas por ciclo de reloj)

desde el punto de vista del consumo depende del algoritmo Por ejemplo para

divisores de 32 bits cuatro etapas de caacutelculo por ciclo de reloj ofrecen el

miacutenimo consumo

Ademaacutes producto de los diferentes experimentos llevados a cabo en este capiacutetulo

surgen ciertas conclusiones particulares para cada bloque aritmeacutetico las que se detallan

a continuacioacuten

De la multiplicacioacuten modulan

bull Para calcular e mdashy mod m donde m pertenece a un conjunto conocido de

valores el algoritmo de Montgomery muestra la mejor figura de consumo

(tambieacuten aacuterea y retardo) Si solo se quiere 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)

bull 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)

bull 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

248

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

De la suma cany-skip

bull La teacutecnica de sumador carry skip resulta muy interesante para ser aplicada en

FPGAs para operandos largos Una implementacioacuten cuidadosa para sumadores

con operandos de 1024 bits puede aumentar en un factor de 6 la velocidad con

un incremento del aacuterea menor del 50 respecto a la implementacioacuten por

defecto en FPGA

bull El mecanismo de caacutelculo del acarreo en el algoritmo carry skip genera menos

glitches que el algoritmo ripple carry tradicional producto de una menor

propagacioacuten del acarreo y consecuentemente se puede prever menos consumo

El resultado en el consumo resulto ser peor para el carry skip El error en el

razonamiento parte del hecho de que el caacutelculo del 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 en este ejemplo

De la divisioacuten entera

bull Los resultados en aacuterea y velocidad favorecen claramente a la divisioacuten sin

restauracioacuten (nonrestoring) El algoritmo con restauracioacuten (restoring) ocupa el

doble de aacuterea y necesita alrededor del 50 maacutes de tiempo que el algoritmo sin

restauracioacuten

bull Siacuten embargo los resultados en el consumo son claramente favorables al

algoritmo de divisioacuten con restauracioacuten Este efecto se refuerza cuando el

tamantildeo del divisor es mayor a laquo2 bits siendo n el tamantildeo del dividendo

bull Para la divisioacuten de nuacutemeros de 32 bits el algoritmo sin restauracioacuten consume

ocho veces maacutes que el algoritmo con restauracioacuten en tanto el consumo medio

para la divisioacuten de 32 bits por 16 bits en non-restoring es solo alrededor del 20

superior al algoritmo de divisioacuten con restauracioacuten

Divisioacuten de Nuacutemeros Fraccionarios

bull Para implementaciones combinacionales el algoritmo SRT base-2 tiene la mejor

figura en aacuterea-retardo y consumo reduciendo este uacuteltimo hasta en un 51 el

249

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

consumo respecto del tradicional algoritmo de divisioacuten sin restauracioacuten y un 93

respecto del SRT base-2 con resto representado en carry-save (el maacutes veloz)

bull Las arquitecturas segmentadas ofrecen caracteriacutesticas importantes para la

reduccioacuten de consumo Las medidas muestran una reduccioacuten de hasta un 93

del consumo dinaacutemico en una arquitectura totalmente segmentada respecto de

una totalmente combinacional Esta mejora es obtenida con un relativamente

pequentildeo impacto en el aumento de aacuterea

bull Las implementaciones secuenciales usan menos recursos con una relativamente

pequentildea penalidad en la latencia pero una importante reduccioacuten en el

consumo llegando hasta un 89 respecto a una implementacioacuten totalmente

combinacional

bull Una observacioacuten importante en las implementaciones secuenciales es que la

cantidad de bits calculado por ciclos de reloj (G) es maacutes determinante en el

consumo que el algoritmo utilizado Arquitecturas con G = 4 muestra el mejor

consumo y mejor relacioacuten aacuterea x retardo x consumo en tanto los circuitos con

G = 2 optimizan la relacioacuten aacuterea x retardo Los algoritmos sin-restauracioacuten y

SRT base-2 obtienen los mejores resultados

250

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

57 Referencias de Capiacutetulo

[Beu02] J-L Beauchat and A Tisserand Small Multiplier-Based Multiplication and Divisioacuten Operators 12th Conference on Field Programmable Logic and Applications pp 513-522 September 2002

[Bla99] IBlake GSeroussi and NSmart Elliptic Curves in Cryptography Cambridge Universiiy Press 1999

[Blu99] TBlum and CPaar Montgomery Modular Exponentiacuteatiacuteon and Reconfigurable Hardware 14th IEEE Symposium on Computer Arithmetic Adelaide Australia April 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

(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 Univ Carlos III Nov 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

[Des02] J-P Deschamps Siacutentesis de Circuitos Digitales un enfoque algoriacutetmico Thomson - Paraninfo 2002

[Erc04] Milos D Ercegovac and Tomas Lang Digital arithmetic Morgan Kaufmann cop San Francisco California 2004

[Erc94] M D Ercegovac and T Lang Divisioacuten and Square-Root Algorithms Digit-Recurrence Algorithms and Implementations Kluwer Academic press 1994

[FisOl] VFisher and MDrutarovsky Scalable RSA Processor in Reconfigurable Hardware - a SoC Building Block XVI Conference on Design of Circuits and Integrated Systems Porto pp 327 - 332 November 2001

[FpgOl] FPGA Express page Synopsis inc wwwsynopsyscomproductsfpga fpga_expresshtm 2001

[HauOO] Scott Hauck Member IEEE Matthew M Hosler and Thomas W Fry high-Performance Carry Chains for FPGAs IEEE Transactions on Very Large Scale Integratiacuteon (VLSI) Systems Vol8 No2 April 2000

251

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

[Kan98] V Kantabutra P Corsonello S Pera and M Iachino Efficient Practiacutecal Adder for FPGA Circuit Cellar issue 148 pp42 - 48 October 2002

[Kor02] Israel Koren Computer Arithmetic Algorithms - second edition AJLPeters 2002 f bull

[Lee03] BR Lee and N Burgess Improved Small Multiplier Based Multiacuteplication Squaring and Divisioacuten 11 th Annual IEEE symposium on Field-Programmable Custom Computing Machines (FCCM2003) Napa California April 2003

[Lei95] J Leiten J van Meerbegen and J Jess Analisys and Reductiacuteon of Glitches in Synchronous Networks Proceedings ofEuropean Design and Test Conference EDampTC 1995 pp1461-1464 New York IEEE Press 1995

[ManOl] D Manila M Loacutepez-Vallejo and A Rojo Hardware - Software Co-design of a Cryptographic Application XVI Conference on Design of Circuits and Integrated Systems (DCIS01) Porto Portugal pp 100 - 105 November 2001

[Men96] A Menezes P van Oorschot and S Vanstone A Handbook of Applied Cryptography CRC Press 1996

|Mon95] P Montgomery Modular multiacuteplication without trial divisioacuten Mathematics ofComputation vol44 pp 519 - 521 April 1895

[Mus95] E Mussol and J Cortadella Low-Power Array Multiplier with Transition-Retaining Banders Proceedings Fifth International Workshop on Power and Timing Modeling Optimi^ation and Simulation (PATMOS95) pp 227-235 Oldenburg October 1995

[ObeOl] SFOberman and MFlynn Advanced Computer Arithmetic Design Wiley 2001

[Obe97] SF Oberman and MJ Flynn Divisioacuten algorithms and implementations IEEE Transactions on Computen 46(8)833-854 August 1997

[ParOO] B Parhami Computer Arithmetic Algorithms and Hardware Designs Oxford University Press 2000

[Par03] Xilinx Inc Development System Reference Guide chapter 10 PAR (Place amp Route) 2003

Ped96] M Pedram Power Minimization in IC Design Principies and Applications ACM Transaction on Design Automation of Electronic Systems voll ndegl pp3-56 January 1996

pRab96] JMRabaey Digital Integrated Circuits Prentice Hall 1996

[Riv78] R Rivest A Shamir and L Adleman A Method for Obtaining Digital Signatures and Public-Key Cryptosystems Communications of the ACM vol21 no2 pp120-126 February 1978

[Rob58] J E Robertson A New Class of Digital Divisioacuten Methods IREacute transaction on Electronic Computen Vol 7 pp 218-222 September 1958

252

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

[She92] A Shen A Gosh S Devadas and K Keutzer On average Power Dissipation and Random Pattern Testability of CMOS Combinational Logic Networks Proceeding of International Conference on Computer Aided Design (ICCAD-92) pp402-407 IEEE Press 1992

[Sod96] P Soderquist and M Leeser Aacuterea and Performance Tradeoffs in Floating-Point Divide and Square-Root Implementations ACM Computing Surveys Vol 28 No 3 September 1996

[Sut03] Sutter G Todorovich E Lopez-Buedo S and Boemo E Logic Depth Power and Pipeline Granularity Updated Results on XC4K and Virtex FPGAs III Workshop on ~Reconfigurable Computing and Applications JCRA03 Madrid Spain Sept 2003

[Sweoacutel] Sweeney High Speed Arithmetic in Binary Computers Proceedings oIRE Vol 49 pp 91-1031961

[Tek04a] Tektronix inc TLA 700 Series Logic Analyzer User Manual available at wwwtektronixcom 2004

[Tek04b] Tektronix inc TLA7PG2 Pattern Generator Module User Manual available at wwwtektronixcom 2004

[Toc58] K D Tocher Techniques of multiplication and divisioacuten for automatic binary computers Quarterly Journal ojMechantes and Applied Mathematics Vol 11 pp 364-3841958

[TodOO] E Todorovich G Sutter N Acosta E Boemo and S Loacutepez-Buedo End-user low-power alternatdves at topological and physical leveacuteis Some examples on FPGAs Proceedings of XV Conference on Design of Circuit and Integrated Systems (DCIS2000) Montpellier France Nov 2000

[Wan03] X Wang and BE Nelson Tradeoffs of Designing Floating Point Divisioacuten and Square Root on Virtex FPGAs 11 th Annual IEEE symposium on Field-Programmable Custom Computing Machines (FCCM2003) Napa California USA April 2003

[XIacute199] Xilinx Inc XC4000E and XC4000X Series Field Programmable Gate Arrays Product Specification (Versioacuten 16) available at httpwww xilinxcom May 1999

[XilOO] Xilinx Inc Logicore Pipelined Divider V20 available at wwwxilinxcom June 302000

[XilOOb] Xilinx Inc Software Manuals and documentation for Foundation Series 31i httptoolboxxilinxcomdocsan3_li 2000

[XilOl] Xilinx inc Spartan-II 25V FPGA Family Functional Description available at httpwww xilinxcom March 2001

[XU02a] Xilinx inc Xilinx Synthesis Technology (XST) User Guide V221 Distributed with ISE 512002 available atwwwxilinxcom

253

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

[Xil02b] Xilinx inc Constraints Guide - ISE51 section 2-142-15 Relative Location (RLOC) and Relationally Placed Macros (RPMs) available at httpwww xilinxcom 2002

[Xil03a] Xilinx inc Carry Logic in Virtex and Spartan-II The Programmable Logic Data Book available on the Xilinx web site httpsupportxilinxcom 2003

[Xil03b] Xilinx inc Xilinx ISE 51 documentation Online Software Manuals available at supportxilinxcom 2003

[Xil03c] Xilinx Inc Librarles Guide for Xilinx ISE 61 available at wwwxilinxcom 2003

[Xil03d] Xilinx Inc Xilinx ISE 6 Online Software Manuals available at wwwxilinxcom 2003

|Xil03e] Xilinx Inc XST (Xilinx Synthesis Technologies) User Guide 40 distributed with ISE 6X available at wwwxilinxcom June 2003

[Xin98] SXing and WWHYu FPGA Adders Performance Evaluation and Optimal Design IEEE Design ltamp Test of Computen pp 24 mdash 29 January -March 1998

pCpo02] Xpower Xpower gettiacuteng started Releacutease versioacuten 4203Iacute 2002 available at supportxilinxcom

poundKpo04] Xpower Xpower gettiacuteng started Releacutease versioacuten 6203Iacute 2004 available at supportxilinxcom

254

Capiacutetulo 6 Conclusiones y Futuros Trabajos

Se resumen en este capiacutetulo las principales conclusiones aportes generados los

futuros trabajos que se desprenden de eacutesta tesis y las publicaciones generadas Para

finalizar se seleccionan las principales recomendaciones de reduccioacuten de consumo a

nivel del disentildeador

61 Conclusiones y Aportaciones

Se han presentado experimentos sobre varias generaciones de dispositivos del

fabricante Xilinx (XC4000 Virtex y Virtex II) Estos dispositivos comparten la

estructura baacutesica de LUTs de 4 entradas aunque tecnoloacutegicamente presentan 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 son aplicables a otras Eacutesta tesis y las conclusiones que se detallan maacutes

adelante se basa en medidas experimentales a maacutes de 600 circuitos

Las teacutecnicas resentildeadas durante esta tesis tratan de reducir el consumo siguiendo

ciertos temas recurrentes como son el balance aacuterea y velocidad para reducir consumo

evitar derroches aprovechar la localidad de los datos y la reduccioacuten de la actividad

espuria Por otra parte 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 en el consumo de potencia

255

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

611 Recomendaciones para la reduccioacuten de consumo en FSMs

Los experimentos descritos en el capiacutetulo 4 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 miacutenimo de la maacutequina de

estados Existen innumerables programas (mayoritariamente de libre distribucioacuten) para

la minimizacioacuten de estados pero un disentildeo cuidadoso los hace prescindibles

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 indirecta para la determinar la

mejor codificacioacuten desde el punto de vista del consumo (seccioacuten 42)

Para maacutequinas 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 Respecto de las

maacutequinas grandes (maacutes de dieciseacuteis estados) las teacutecnicas de particionamiento de

maacutequinas de estado son una alternativa viable La condicioacuten para que este meacutetodo

obtenga 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 (inferior

al 5) Para ejemplos concretos se han logrado disminuciones de hasta el 57 del

consumo (seccioacuten 43)

612 Observaciones y consejos a nivel topoloacutegico

Durante el capiacutetulo 3 se han presentado experimentos con el objeto de determinar

relaciones en el consumo y consejos a nivel usuario Adicionalmente en el capiacutetulo

5 dentro del estudio de bloques aritmeacuteticos se han analizado diversas alternativas

topoloacutegicas Las conclusiones maacutes sobresalientes entres otros son

Relacioacuten velocidad-consumo

bull Para una topologiacutea dada el circuito con maacutexima frecuencia de

funcionamiento normalmente implica el mejor circuito en teacutermino de

256

Capiacutetulo 6 Conclusiones y Aportes

consumo Esta optimizacioacuten se puede obtener de manera gratuita por

ejemplo usando emplazado y rutado repetitivo (RPR - Repetitivo Plaeement ltamp

Routiniquest) o ajustando las opciones de optimizacioacuten Siguen siendo vaacutelidos los

experimentos de [Boe96] sobre XC3K (seccioacuten 3222)

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 (seccioacuten 3221)

bull La relacioacuten entre aacuterea y consumo no es nada clara como sucede en los

circuitos basados en celdas oacute en el caso de las maacutequinas de estados Algunas

teacutecnicas que ganan velocidad a expensas de mayor utilizacioacuten de recursos (por

ejemplo duplicar hardware para disminuir fan-out) son argumentos en este

sentido (seccioacuten 3224)

Efecto de la conmutatividad

bull Se prueba a traveacutes de diferentes ejemplos que bajo ciertas condiciones el

hecho de permutar las entradas tiene un fuerte impacto en la reduccioacuten

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 (seccioacuten 34)

Las causas de este desbalance en el consumo puede ser un disentildeo singular o la

implementacioacuten irregular que se genera al mapear un disentildeo en una FPGA

esto produce que los glitcbes generados en una secuencia de operaciones no

sean iguales al permutar las entradas Otra causa es el uso de liacuteneas globales

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 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 el mejor orden de entrada

de los operandos para estos casos

257

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Segmentacioacuten

bull La principal observacioacuten es que la segmentacioacuten disminuye notablemente el

consumo en el caso de la familia 4K una segmentacioacuten intermedia (2-4

LUTs de profundidad loacutegica) es lo ideal en tanto que para la familias Virtex y

Virtex II una segmentacioacuten cercana al maacuteximo posible (1-2 LUTs) resulta ser

la mejor opcioacuten

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 (seccioacuten 34)

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 (seccioacuten 342 y 343)

Registros a la Entrada y 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-faradios 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 (Seccioacuten 35)

bull En el caso de la eleccioacuten del tipo aacutetjlip-jlop para registrar las salidas entre los

disponibles en los sicesCLBs y los de los IOBs existe una gran diferencia

desde el punto de vista del consumo En el caso de la familia XC4K 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 a ser un 40 superior Para Virtex II la influencia es

algo menor en torno al 9 (Seccioacuten 35)

258

Capiacutetulo 6 Conclusiones y Aportes

Implementaaacuteones secuenaacuteales

bull La secuencializacioacuten de los algoritmos se asocia al ahorro de aacuterea En FPGAs

esta afirmacioacuten no solo es verdad sino que ademaacutes la penalidad en la latencia

suele ser bastante reducida (en el orden del 20 ) Es muy importante la

regularidad del algoritmo para reducir la complejidad de la ruta de datos y la

maacutequina de estados Las reducciones de consumo pueden superar el 80

(seccioacuten 5583)

bull En las implementaciones secuenciales aumenta el consumo de sincronizacioacuten

Por ello la secuencializacioacuten oacuteptima (cantidad de etapas por ciclo de reloj)

desde el punto de vista del consumo depende del algoritmo Por ejemplo

para divisores de 32 bits cuatro etapas de caacutelculo por ciclo de reloj ofrecen el

miacutenimo consumo (seccioacuten 5583)

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 FPGAs

bull La teacutecnica maacutes simple de implementar y que mejores resultados ofrece tanto

en XC4K como en Virtex y Virtex II es la inhabilitacioacuten de registros con la

sentildeal CE La opcioacuten de utilizar puertas ANDs es otra alternativa simple de

utilizar que ademaacutes reporta buenos resultados

bull 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 (seccioacuten 3621)

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 (seccioacuten 3624)

bull Debido a la gran cantidad de registros distribuidos en la FPGA la

implementacioacuten de estas teacutecnicas de inhabilitacioacuten poseen un escaso (a veces

nulo) impacto en el aacuterea y velocidad (seccioacuten 363)

259

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

613 Resultados a nivel algoriacutetmico

Durante el capiacutetulo 5 se examinaron algunas alternativas a nivel algoriacutetmico Por un

lado se examinan las opciones para la multiplicacioacuten modular operacioacuten central en los

caacutelculos criptograacuteficos luego se presentoacute un experimento cuyos resultados no fueron

los esperados desde el punto de vista del consumo (la suma por el algoritmo de carry-

skip) Por uacuteltimo se analizoacute la operacioacuten de divisioacuten tanto para operandos naturales

como para fraccionarios

bull El nivel algoriacutetmico es una interesante fuente de reduccioacuten de consumo en

los ejemplos estudiados en el capiacutetulo 5 queda claro que se trata de

reducciones del orden del 50 en el consumo debido a la correcta seleccioacuten

de un algoritmo

bull Las meacutetricas de aacuterea y velocidad no son suficientes para calificar la calidad del

algoritmo respecto del consumo Existen caracteriacutesticas maacutes sutiles a tener en

cuenta como son la capacidad de producir o no movimientos espurios

(glitchei) dentro de la ruta de datos (seccioacuten 5432)

bull La representacioacuten de los datos usados por el algoritmo asiacute como la

correlacioacuten de datos que se producen dentro de la ruta de datos son muy

relevantes Por ejemplo en la divisioacuten de enteros el algoritmo non-nstoring

genera alternativamente restos intermedios muy pequentildeos positivos y

negativos los que al ser representados en complemento a dos generan gran

actividad (seccioacuten 5432)

bull Existe un efecto directo sobre el consumo que poseen la complejidad y la

precisioacuten de los algoritmos Un divisor de 3232 bits consume alrededor de

cuatro veces maacutes que el homologo que divide 1616 bits (seccioacuten 5581)

bull La regularidad y modularidad de los algoritmos son caracteriacutesticas altamente

deseables para la segmentacioacuten y la secuencializacioacuten de los algoritmos dos

teacutecnicas muy importantes de cara a la reduccioacuten de consumo

bull La aplicacioacuten de la segmentacioacuten sobre los algoritmos ofrece importantes

reducciones de consumo cuando se tienen un flujo continuo de datos La

reduccioacuten depende del tamantildeo de la ruta de datos y los niveles de

260

Capiacutetulo 6 Conclusiones y Aportes

segmentacioacuten Reducciones superiores al 80 son corrientes en esta teacutecnica

(seccioacuten 5582)

bull Las implementaciones secuenciales usan menos recursos con una

relativamente pequentildea penalidad en la latencia Es muy importante la

regularidad del algoritmo para reducir la complejidad de la ruta de datos y la

maacutequina de estados Las reducciones de consumo pueden superar el 80

(seccioacuten 5583)

bull En las implementaciones secuenciales aumenta el consumo de sincronizacioacuten

por ello la secuencializacioacuten oacuteptima (cantidad de etapas por ciclo de reloj)

desde el punto de vista del consumo depende del algoritmo y la complejidad

de la ruta de datos (seccioacuten 5583)

614 Bloques aritmeacuteticos

Los resultados del capiacutetulo 5 brindan ciertas conclusiones particulares para cada

bloque aritmeacutetico las que se detallan a continuacioacuten

Multiplicaaacuteoacuten modular

bull Para calcular e =jx mod m donde m pertenece a un conjunto conocido de

valores el algoritmo de Montgomery muestra la mejor figura de consumo

(tambieacuten aacuterea y retardo) Si soacutelo se quiere calcular = xy mod m la versioacuten

combinacional del algoritmo de multiplicacioacuten y reduccioacuten es mejor que la del

algoritmo de sumas y desplazamientos (seccioacuten 5234)

bull 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 del 54 en el caso secuencial (seccioacuten 5235)

bull 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 (seccioacuten 5252)

Suma carry-skip

m La teacutecnica de sumador carry skip resulta muy interesante para ser aplicada en

FPGAs para operandos largos (a partir de 64 bits) Una implementacioacuten

261

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

cuidadosa para sumadores de 1024 bits puede superar el 500 de aumento

en la velocidad con un incremento del aacuterea menor del 50 respecto a la

implementacioacuten por defecto en FPGA Los resultados en el consumo sin

embargo son mejores para el ripple carry tradicional (seccioacuten 53)

Divisioacuten entera

m Los resultados en aacuterea y velocidad favorecen claramente a la divisioacuten sin

restauracioacuten (nonrestoritig) El algoritmo con restauracioacuten (restoring) 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 Este efecto se refuerza

cuando el tamantildeo del divisor es mayor a raquo2 bits siendo laquo el tamantildeo del

dividendo (seccioacuten 54)

bull 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-restoring es soacutelo alrededor del

20 superior al algoritmo de divisioacuten con restauracioacuten (seccioacuten 5431)

Divisioacuten de Nuacutemeros Fraccionarios

bull Para implementaciones combinacionales el algoritmo SRT base-2 tiene la

mejor figura en aacuterea-retardo y consumo reduciendo este uacuteltimo hasta en un 51

el consumo respecto del tradicional algoritmo de divisioacuten sin restauracioacuten y

un 93 respecto del SRT base-2 con resto representado en carry-save (el maacutes

veloz) (seccioacuten 5571 y 5581)

bull Las arquitecturas segmentadas ofrecen caracteriacutesticas importantes para la

reduccioacuten de consumo Las medidas muestran una reduccioacuten de hasta un 93

del consumo dinaacutemico en una arquitectura totalmente segmentada respecto de

una totalmente combinadonal Esta mejora es obtenida a expensas de triplicar

el aacuterea (seccioacuten 5582)

bull Las implementaciones secuenciales usan menos recursos con una relativamente

pequentildea penalidad en la latencia pero una importante reduccioacuten en el

consumo llegando hasta un 89 respecto a una implementacioacuten totalmente

combinadonal (secdoacuten 5583)

262

Capiacutetulo 6 Conclusiones y Aportes

bull Una observacioacuten importante en las implementaciones secuenciales es que la

cantidad de bits calculado por ciclos de reloj (G) es maacutes determinante en el

consumo que el algoritmo utilizado Arquitecturas con G = 4 muestra el mejor

consumo y mejor relacioacuten aacuterea x retardo x consumo en tanto los circuitos con

G = 2 optimizan la relacioacuten aacuterea x retardo Los algoritmos sin-restauracioacuten y

SRT base-2 obtienen los mejores resultados (seccioacuten 5583)

615 Conclusiones sobre la herramientas de estimacioacuten de consumo

Paralelamente a las mediciones en los arreglos experimentales se ha realizado la

estimacioacuten del consumo con la herramienta XPOWER Ante todo hay que destacar

que es un proceso lento que requiere varios gigabytes de ficheros intermedios que

implica una simulacioacuten post-place ltiquestr route y un posterior anaacutelisis con la herramienta

Esto lo convierte en muchos casos en un meacutetodo impraacutectico El apeacutendice F muestra

la forma de utilizacioacuten de la herramienta

Los resultados observados para circuitos secuenciales son bastante aceptables

(secciones 3342 y 5331) coincidiendo las arquitecturas que maacutes consumen con la

estimacioacuten aunque no en un porcentaje constante Para el caso del anaacutelisis de la

segmentacioacuten (seccioacuten 3422) los resultados fueron bastante decepcionantes no

coincidiendo las figuras del consumo medido con el estimado

En el flujo de disentildeo normal se deberiacutea poder generar automaacuteticamente la actividad

del circuito ahorraacutendose horas de simulacioacuten gigabytes de datos intermedios y

buacutesqueda de patrones de entrada significativos (En la liacutenea de la investigacioacuten de

[Tod04]) No obstante resulta interesante esta herramienta no para la estimacioacuten de

un sistema completo sino para la caracterizacioacuten de bloques aritmeacuteticos particulares

donde tanto el tiempo de simulacioacuten como la generacioacuten de los vectores de prueba

podriacutean ser acotados

263

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

62 Trabajos futuros

Como se ha mencionado anteriormente el objetivo general de este trabajo es dar

soluciones en el disentildeo de bajo consumo en FPGAs Dado que eacutesta es una meta

extremadamente ambiciosa se ha reducido la cantidad de experimentos y evaluacioacuten

de teacutecnicas llevadas a cabo La ampliacioacuten de estos experimentos y estudios implica

posiblemente varios temas de tesis Las liacuteneas de trabajos que se desprenden incluiriacutean

entre otras

Estudio de bloques aritmeacuteticos complejos Si bien las dos operaciones

fundamentales en el procesamiento de sentildeal (suma y multiplicacioacuten) estaacuten muy

estudiadas desde el punto de vista del consumo (la divisioacuten se ha estudiado aquiacute) seriacutea

uacutetil estudiar otras primitivas de gran aplicacioacuten como son la exponenciacioacuten y la raiacutez

cuadrada Otro aspecto importante es el procesamiento digital de la sentildeal y las

muacuteltiples variables que afectan al consumo en filtros transformadas y otros bloques

de procesamiento Tambieacuten el tratamiento con operandos grandes (maacutes de 128 bits)

por sus aplicaciones en criptografiacutea y de las operaciones en punto flotante merecen

gran intereacutes

Generacioacuten de cores de bajo consumo Este punto estaacute iacutentimamente ligado con el

anterior aunque con matices propios Los cores facilitados por los fabricantes de silicio

y otros proveedores independientes de IPs (intelectual properties) auacuten no proveen

caracteriacutesticas de bajo consumo Es por tanto uacutetil generar cores parametrizables

optimizados en consumo de las operaciones maacutes frecuentes y demandadas Ademaacutes

seriacutea deseable que se provea la caracterizacioacuten de la disipacioacuten de potencia de modo

de permitir estimar a nivel de bloques el consumo total de una aplicacioacuten

Estudio de microprocesadores (flP) embebidos Cada vez maacutes la loacutegica

programable tiende a solucionar sistemas completos (SoC - System on a Chtp) donde la

integracioacuten de un microprocesador es esencial Esta caracteriacutestica genera dos aacutereas

Importantes de estudio por un lado la generacioacuten de cores de microprocesadores de

bajo consumo y por otro compiladores que generan coacutedigo de bajo consumo para

estos [iP

Taxonomiacutea de las teacutecnicas de reduccioacuten de consumo en FPGAs Como

resultado final se deberiacutea generar una taxonomiacutea general de las teacutecnicas para reducir el

consumo donde el disentildeador pueda consultar dependiendo del dominio de

264

Capiacutetulo 6 Conclusiones y Aportes

aplicacioacuten que teacutecnicas se deberiacutean aplicar para lograr optimizaciones de consumo

Varias alternativas se han evaluado aquiacute aunque se deberiacutea ampliar este estudio a

teacutecnicas de precomputacioacuten representacioacuten y codificacioacuten de los datos y

programacioacuten (scbeduiniquest) para el manejo dinaacutemico del consumo

Herramientas de siacutentesis para bajo consumo Los sintetizadores tradicionalmente

han optimizado en aacuterea y velocidad La siacutentesis de bajo consumo estaacute presente en

herramientas para ASICs pero no en FPGAs En base a algunos resultados obtenidos

aquiacute y otros publicados recientemente se podriacutea incorporar caracteriacutesticas de siacutentesis

para bajo consumo

Herramientas de estimacioacuten de alto nivel Las herramientas de estimacioacuten de

consumo actuales parten de la descripcioacuten del circuito y una simulacioacuten post-layout del

mismo Al margen de su relativa precisioacuten son por cierto lentas de ejecutar seriacutea uacutetil

contar con versiones que permitan estimar el consumo a un mayor nivel de

abstraccioacuten

Estudio de la interaccioacuten con bloques embebidos Los dispositivos actuales

integran bloques de memoria multiplicadores y microprocesadores con una clara

tendencia a incrementarse la cantidad y variedad de bloques especiacuteficos Resulta de

intereacutes investigar sus caracteriacutesticas de consumo y maacutes auacuten desarrollar meacutetodos para

integrarlos en disentildeos de bajo consumo Es decir estudiar cuando y de que forma

conviene utilizarlos

63 Publicaciones relacionadas con eacuteste trabajo

Se han generado artiacuteculos relativos a partes de este trabajo en diferentes congresos y

medios de divulgacioacuten sobre FPGAs y disentildeo electroacutenico Las publicaciones maacutes

relevantes son las siguientes

bull G Sutter GBioul J-P Deschamps and EBoemo Power Aware Dividers in

FPGA Lecture Notes in Computer Science (LNCS) Vol 3254 pp 574 - 584

Berliacuten Springer-Verlag 2004

bull G Sutter GBioul and J-P Deschamps Comparative Study of SRT-

Dividers in FPGA Lecture Notes in Computer Science (LNCS) Vol3203

pp 209 - 220 Berliacuten Springer-Verlag 2004

265

uam
Nota

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

bull 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 2002

bull E Todorovich M Gilabert G Sutter S Lopez-Buedo and E Boemo A

Tool for Activity Estimation in FPGAs Lecture Notes in Computer Science

Vol2438 pp340-349 Berliacuten Springer-Verlag 2002

bull G Sutter E Todorvich S Loacutepez- Buedo and E Boemo FSM

Decomposition for Low Power in FPGA Lecture Notes in Computer Science

Vol2438 pp350-359 Berliacuten Springer-Verlag 2002

Ademaacutes se han presentado otros resultados parciales en

bull G Sutter E Todorovich E Boemo Design of Power Aware FPGA-based

Systems IVJCRA pp 81-90 Barcelona Spain September 2004

bull J-P Deschamps and G Sutter Multiplication in a Finite Extensioacuten Ring

XVIII Conference on Design ofdrcuits and Integrated Systems (DCIS 2003) Ciudad

Real Spain November 2003

bull E Boemo and G Sutter Permutacioacuten de los Datos de Entradas como

Estrategia de Disentildeo de Bajo Consumo Algunos Ejemplos en FPGAs iTJ

JCRA 03 pp 225- 232 Madrid Spain September 2003

bull Sutter G Todorovich E Loacutepez-Buedo S and Boemo E Logic Depth

Power and Pipeline Granularity Updated Results on XC4K and Virtex

FPGAs IIIJCRA pp 201-207 Madrid Spaiacuten September 2003

bull Bioul G Deschamps J-P Sutter G Efficient FPGA implementation of

Carry Skip Adders Jomadas de Computacioacuten Reconfigurabley Aplicaciones pp 81-

90 Madrid Spain September 2003

bull E Todorovich G Sutter and E Boemo Estimacioacuten de Actividad para

FPGA Basada en una Teacutecnica Estadiacutestica Ul Jomadas de Computacioacuten

Rjiconfigurabley Aplicaciones pp 217-224 Madrid Spain September 2003

bull J-P Deschamps and G Sutter FPGA Implementation of Modular

Multipliers XVII Conference on Design of Circuits and Integrated Systems (DCIS

2002) pp 107-112 (ISBN 84-8102-311-6) Santander November 19-222002

266

Capiacutetulo 6 Conclusiones y Aportes

bull G Sutter and J-P Deschamps Multiplicadores modulares II Jomadas sobre

Computacioacuten Reconfigurable y Aplicaciones (fCRA 2002) Almuntildeecar (Granada)

Spain pp 209-214 (ISBN 84-699-9448-4) sept de 2002

bull G Sutter and E Boemo Low Power Finite state machines in FPGA Bynary

vs One hot encoding VIII Workshop IBERCHIP Guadalajara Meacutexico 3-5

April 2002

bull G Sutter E Todorovich and E Boemo Metodologiacutea para la Reduccioacuten de

Consumo en Circuitos Integrados Reprogramables JZT Workshop de

Investigadores de Ciencias de la Computacioacuten (WICC 2001) San Luis Argentina

Agosto 2001

bull E Todorovich G Sutter N Acosta E Boemo and S Loacutepez-Buedo

Relacioacuten entre Velocidad y Consumo en FPGAs VU Workshop de

IBERCHIP Montevideo Uruguay 21-23 marzo 2001

bull G Sutter E Todorovich E Boemo and S Loacutepez-Buedo Propiedad

Conmutativa y Disentildeo de Bajo Consumo Algunos Ejemplos en FPGAs

VII Workshop de IBERCHIP Montevideo Uruguay 21-23 marzo 2001

bull 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 of Circuits and Integrated Systems

(DCIS2000) Le Corum Montpellier France November 21-242000

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

64 Reglas empiacutericas pata el disentildeo de bajo consumo en

FPGAs

A modo de resumen final de los resultados de esta tesis se presentan estas seis simples

reglas empiacutericas que deberiacutea seguir un disentildeador de sistemas de bajo consumo basados

en tecnologiacutea FPGA Aquiacute se seleccionan aquellas reglas de aplicacioacuten inmediata por

parte del disentildeador

1 N o sobredimensionar la capacidad de caacutelculo asiacute como la ruta de datos

Operar a maacutes frecuencia de la necesaria implica un crecimiento lineal con el consumo

ademaacutes exigir gran capacidad de caacutelculo puede implicar desechar arquitecturas

secuenciales u otras teacutecnicas maacutes afines a la reduccioacuten de consumo Por otro lado el

tamantildeo de la ruta de datos puede implicar aumentos con oacuterdenes mayores que dos en

el consumo Por ejemplo la multiplicacioacuten de 3232 bits consume al menos cuatro

veces maacutes que uno de 1616 lo mismo sucede para la divisioacuten de nuacutemeros

fraccionarios

2 Reducir la profundidad loacutegica a un maacuteximo de 2-3 LUTs en circuito de gran

actividad Los glitches son la principal fuente en el consumo la manera maacutes directa

de reducirlo en FPGAs es a traveacutes de la segmentacioacuten en caso de tener lotes de datos

que procesar o bien sequencializando la ruta de datos Para aplicar efectivamente estas

teacutecnicas la regularidad de la ruta de datos es fundamental

2a Uso de la segmentacioacuten Es la teacutecnica maacutes adecuada cuando se trabaja con

grandes lotes de datos La reduccioacuten del consumo suele ser incluso proporcional al

aumento de velocidad del algoritmo La penalidad en aacuterea suele ser despreciable

dada la abundancia de registros distribuidos en la FPGA

2b Uso de arquitecturas secuenciales La secuencializacioacuten de los algoritmos

se asocia al ahorro de aacuterea En FPGAs esta afirmacioacuten no solo es verdad sino que

ademaacutes la penalidad en la latencia suele ser bastante reducida En las

implementaciones secuenciales aumenta el consumo de sincronizacioacuten por ello la

secuencializacioacuten oacuteptima (cantidad de etapas por ciclo de reloj) desde el punto de

vista del consumo depende del algoritmo

3 Desactivar partes inactivas del disentildeo En sistemas complejos partes del disentildeo

suelen no estar produciendo datos efectivos Desactivar esas partes es fundamental de

268

Capiacutetulo 6 Conclusiones y Aportes

cara a evitar el derroche de consumo Utilizar las sentildeales de habilitacioacuten CE (chip-

enable) de los registros para frenar los datos oacute el uso de puertas ANDs brinda

importantes posibilidades de ahorro en el consumo con impacto casi nulo en aacuterea y

velocidad En las familias de FPGAs maacutes modernas (Virtex II spartan 3 etc) los

muacuteltiples aacuterboles de reloj y los multiplexores de reloj permiten implementar faacutecilmente

teacutecnicas tipo gated dock

4 Explorar y explotar el nivel algoriacutetmico El disentildeo de los algoritmos posee una

de las fuentes maacutes directas de ahorro de energiacutea La regularidad y modularidad de los

algoritmos son caracteriacutesticas altamente deseables para la segmentacioacuten y la

secuencializacioacuten de los algoritmos dos teacutecnicas muy importantes de cara a la

reduccioacuten de consumo

Definitivamente las meacutetricas de aacuterea y velocidad no son suficientes para calificar la

calidad del algoritmo respecto del consumo Existen caracteriacutesticas maacutes sutiles a tener

en cuenta como son la capacidad de producir o no movimientos espurios (glitches)

dentro de la ruta de datos esta en general producida por la correlacioacuten de datos que se

generan

5 Registrar siempre que sea posible Es importante registrar siempre que sea

posible tanto las entradas como las salidas Maacutes aun en las sentildeales de salida es

conveniente registrar cerca de la loacutegica que produce el dato de salida usando FF en

los slices en vez de los registros asociados a las patas No soacutelo se evita la activad en las

liacuteneas que conectan la loacutegica con los IOBs sino que sobre todo se evita la actividad en

los buffers que transforman la sentildeal de la tensioacuten del core a la de las patas Cabe recordar

que la alimentacioacuten del core de los dispositivos modernos es menor que en la periferia

6 En el disentildeo de maacutequinas de estados cuidar la codificacioacuten y eventualmente

particionar Para maacutequinas de estados pequentildeas hasta 8 estados utiEzar codificaciones

densas (binarias) Para maacutequinas con maacutes de 15 estados utilizar one-hot Eventualmente

para maacutequina de estados grandes (maacutes de 12 estados) cuando se pueda realizar una

particioacuten con poca probabilidad de cambios entre ellas utilizar particioacuten de maacutequinas

de estados Como caso especial de maacutequinas de estados los contadores con

codificaciones tipo gray son una buena opcioacuten de bajo consumo siempre que no se

deba utilizar decodificaciones extras de las salidas

269

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

270

Apeacutendice A

Placa de prueba familia XC4K

A1 Introduccioacuten

Durante el desarrollo de esta tesis se ha utilizado una placa de prueba para dar soporte

a distintos circuitos que se han desarrollando Se ha utilizado una placa desarrollada

por SLopez-Buedo [Lop97] La correcta funcionalidad de los circuitos fue

comprobada mediacuteante el uso de un analizador loacutegico [TekOO] y adicionalmente se

mide el consumo indirectamente mediante la utilizacioacuten de voltiacutemetro y amperiacutemetro

A2 Caracteriacutesticas de la placa de prueba

Las dos principales caracteriacutesticas de disentildeo son por un lado que esta dotada de

conectores especialmente dedicados para acoplar el analizador loacutegico y por otro la

inclusioacuten de una segunda FPGA para ser utilizada como generador de vectores de test

para los circuitos que se analizan

La placa se componen deun generador de vectores de prueba implementado en una

FPGA del tipo Xilinx XC3K (se utilizaron concretamente los dispositivos Xilinx

XC3120PC84-3 y XC3130PC84-5) Tras eacutesta se situacutea un primer banco de 24

conectores maacutes uno de reloj cuyo objetivo es poder monitorear estos vectores de

prueba permitiendo el acoplamiento directo de un los conectores del analizador

loacutegico usado el Tektronix TLA704 [TekOO] Eacutestos pasan a continuacioacuten a la FPGA de

prueba una Xilinx XC4000 en encapsulado PLCC84 Por uacuteltimo un segundo banco

de conectores igual al primero permite observar los resultados

271

Teacutecnicas pata la Reduccioacuten de Consumo en FPGAs

La configuracioacuten de las FPGAs de prueba se hace mediante cable de download (en

particular se utiliza el Xilinx Xchecker [XCH99]) mientras que la FPGA generadora

de vectores de prueba se configura mediante una EPROM serie (Atmel AT17C128)

La diferencia en el modo de programacioacuten estriba en la diferente cantidad de veces

que se han de reprogramar cada FPGA Por un lado es de esperar que la generacioacuten

de patrones de test se reconfiguren una uacutenica vez (o unas pocas) para cada

experimento Por el contrario la FPGA de prueba va a necesitar ser reconfigurada en

gran cantidad de ocasiones

Pod

D0_7 D0_6 D0_5 D0_4 D0_3 D0_2 D0_1 D0_0

Dl_7 Dl_6 Dl_5 Dl_4 Dl_3 Dl_2 Dl_l D1_0

D2_7 D2_6 D2_5 D2_4 D2_3 D2_2 D2_l D2_0

XC3120

25 26 27 28 29 30 34 35

36 37 39 40 44 45 46 47

48 49 52 53 56 57

bull 58 59

XC4000

18 17 16 15 14 10 9 8

7 6 5 4 3 83 84 81

82 79 80 77 78 70 69 68

Pod

02_7 02_6 02_5 02_4 02_3 02^2 02_1 O2_0

02_7 02_6 02_5 02_4 02_3 02_2 02_1 O2_0

02_7 02_6 02_5 02_4 02_3 02_2 02_1 O2_0

XC4000

25 24 27 26 29 28 36 35

37 38 39 40 44 45 46 47

48 49 50 51 56 57 58 59

Tabla Al Conexiones del analizador en la placas de prueba

En la Tabla Al se muestran los pines de conexioacuten al analizador loacutegico la tabla A2

muestra la asignacioacuten de pines para el cable de programacioacuten download) del dispositivo

XC4K y la asignacioacuten de botones y conmutadores de la XC3K

272

Conmutadores y Botones

Apeacutendice A Placa de pruebas familia XC4K

Conector de download Elemento

switch 1 switch 2 switch 3 switch 4

Botoacuten 1 Botoacuten 2

Botoacuten Reset

Pin XC3000

83 84 81 82

75 76

Rst_fpga

Pin conector

1 2 3 4 5 6 7 8 9

VCC GND NC

CCLK DONE

DIN _PROG _JNIT

NC

Tabla A2 Conexiones del cable de programacioacuten y botones

A3 Dispositivos utilizados

Se han utilizado en este arreglo experimental 3 dispositivos de la familia XC4K Ellos

son XC4003PC84-4 XC4005PC84-4 y una XC4010PC84-4 El resumen de los

recursos de cada dispositivo se puede ver en la tabla A3

Dispositivo

XC4003 XC4005 XC4010

Puertas equivalente

3000 5000 10000

Matriz CLBs

10x10 14x14 20x20

Total CLBs

100 196 400

Cantidad de Fltp-Fkps

360 616 1120

Maacutexima cantidad ES

80 112 160

Tabla A3 Recursos de los dispositivos de la serie XC4K utilizados en las mediciones

273

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Seleccioacuten de secuencia

Conector BNC del Reloj

Conectores analizador loacutegico Vectores de test

Conectores analizador loacutegico

resultados

Led Configuracioacuten

XC4K

fv V

Xilinx3K

Series

FPGA

Xilinx4K

Series

FPGA

fll DO I f DI I f D2

I QQ I I Oiacute I I 02

N D [O] I I -

Reset

EPROM Serie para configuracioacuten XC3k

Conectores alimentacioacuten general

Led configuracioacuten XC3K

Conector alimentacioacuten FPGA de prueba

Conector Cable Download

Figura Al Esquema de la placa de prueba de la familia XC4000

A4 Conexioacuten de la placa de pruebas

Como se mencionoacute anteriormente la placa posee alimentacioacuten separada para el

generador de vectores de test asiacute como para el circuito a medir Una fuente de

alimentacioacuten doble alimenta por separado cada parte de la placa Sobre la FPGA a

medir se colocan los elementos de medicioacuten (voltiacutemetro y amperiacutemetro) Figura A2

Se conectan ademaacutes el generador de reloj (Metrix GX245) el analizador loacutegico y el

cable de programacioacuten conectado al puerto serie del PC Qiacutecheckei)

274

Apeacutendice A Placa de pruebas familia XC4K

Al generador de frecuencia

Al analizador loacutegico

Cable download al ordenador

ni oo II - 61 H na I

o o

o 0

Fuente regulada de 5 Voltios

Amperiacutemetro

Fuente regulada 5V

Voltiacutemetro

Figura A2 Esquema de conexioacuten del arreglo experimental en XC4K

Figura A3 Fotografiacutea del arreglo experimental para XC4K

275

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

A5 Meacutetodo de medicioacuten de consumo

La teacutecnica utilizada en este trabajo para aislar las distintas componentes del consumo

fue propuesta en [Boe96] Otra alternativa puede verse en [Men99] Seguacuten [Boe96] la

componente estaacutetica se puede medir dejando las entradas de la parte combinatoria

fijas sin actividad en el reloj luego de haber configurado la FPGA Para aislar la

componente externa de consumo el circuito se mide dos veces Primero en

condiciones normales de operacioacuten luego deshabilitando los buffers de tres estados en

las salidas De esta manera la componente qff-chip se puede aproximar mediacuteante la

diferencia entre estos dos resultados

Consumo Estaacutetico

(Stafiacutec Power)

Consumo Externo

(Off-chip power)

Consumo de

Sincronizacioacuten

(Synchroniyation

power)

Consumo

Dinaacutemico

(Dynamic Power)

El circuito es configurado pero no se le conectan estiacutemulos ni sentildeal de

reloj El resto de elementos externos que requiere la FPGA quedan

conectados

Para aislar la componente externa se mide dos veces Primero en

condiciones normales de operacioacuten luego deshabilitando los buffers de

tres estados en las salidas La componente off-chip se aproxima

mediante la diferencia entre estos dos valores

Un dato constante (por ejemplo todas las entradas a cero) es usado

como entrada al circuito mientras el reloj es aplicado De esta manera

no existiraacute actividad en el circuito ya que no hay cambios en los datos

mientras el reloj seraacute el uacutenico elemento que consume Cabe sentildealar que

las FPGAs usan multiplexores para emular el efecto de la habilitacioacuten

de reloj (dock etiableacute) como consecuencia el uso del pin dock enable de

del CLB no interrumpe realmente la alimentacioacuten de reloj a los flip-

flops

Surge de restar al consumo total el consumo estaacutetico y externo Dada

la linealidad del consumo respecto de la frecuencia el circuito se mide a

diferentes velocidades de reloj para minimizar los errores

Tabla A4 Componentes del consumo y forma de medicioacuten en XC4K

Finalmente para que quede solamente la potencia dinaacutemica de la parte combinatoria

resta aislar la potencia de sincronizacioacuten que se puede calcular como diferencia

midiendo el consumo con el circuito sin actividad en las entradas mientras opera la

276

Apeacutendice A Placa de pruebas familia XC4K

sentildeal de reloj normalmente de manera que soacutelo el aacuterbol de reloj tenga actividad Esta

teacutecnica de medicioacuten de la corriente de sincronizacioacuten solo es aplicable a bloques que

no tengan realimentaciones de registros internos Por ello es que no se utiliza en las

maacutequinas de estado En la tabla A4 se resumen estos conceptos

Respecto al consumo off-chip todos los circuitos a medir se implementan con buffers tri-

estados en las patas de salida Al margen cada pata de salida tiene una carga producto

del analizador loacutegico menor de 3 pf [TekOO]

La componente utilizada para realizar comparaciones y optimizaciones es la dinaacutemica

ya que es la que es susceptible de ser optimizada por el disentildeador Eventualmente

puede ser importante en las comparaciones revisar la componente de sincronizacioacuten

(la que depende del reloj) que se veraacute afectada por decisiones arquitecturales y

topoloacutegicas La componente estaacutetica y off-chip suele quedar fuera del espacio de disentildeo

dado que la primera depende de caracteriacutesticas tecnoloacutegicas y la segunda de cuestiones

de interaccioacuten con otros sistemas o el mundo exterior

Error en la medicioacuten

Los voltiacutemetros y amperiacutemetros utilizados (Fluke 175 [Flu02]) para el caacutelculo de la

potencia tienen la siguiente precisioacuten Como voltiacutemetro de corriente continua y en el

rango utilizado 015 de la lectura en tanto que como amperiacutemetro el 1 La

potencia medida como I x V por tanto tiene una precisioacuten del orden del 1

A6 Generador de vectores

En este arreglo experimental se utilizan diferentes configuraciones para la FPGA que

realiza la generacioacuten de patrones (la XC3K) dependiendo de los vectores necesarios

La configuracioacuten del generador de vectores de test se lleva a cabo a traveacutes de la

programacioacuten de una EEPROM serial una AT17C128

En la figura A4 se muestra el esquema de un generador utilizado para comprobar la

relacioacuten de consumo P(AxB) vs P(BxA) en multiplicadores En este generador se

puede elegir entre secuencias aleatorias y secuencias de maacutexima conmutacioacuten el orden

de salida y la frecuencia relativo de los operandos

277

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

COUNT_O[20]

Contador 6 bi

IacuteIKJH

ClOCX

COUNTER

CONT_A[60]

ojxrrpt] CONT_B[60]

CONT_B[30]-tepai

ROM Max Ton 2 mdash-RT5fiI

MUX

Figura A4 Esquema de un generador de patrones en las XC3K

278

Apeacutendice A Placa de pruebas familia XC4K

A7 Referencias del apeacutendice

[TekOl] Tektronix inc TLA 704 Logic Analyzer user Guide Available at wwwtektronixcom 2001

[Lop97] S Lopez-Buedo Teacutecnicas de disentildeo de Alta Velocidad y Bajo Consumo Memoria Proyecto Fin de Carrera ETSI Tekcomunicaaacuteoacuten - Universidad Politeacutecnica de Madrid Septiembre 1997

[Xch99] Xchecker Xilinx download cable Hardware User Guide XChecker Cable httptoolboxxilinxcomdocsan3_li

[Boe96] E Boemo Contribution to the Design of Fine-grain Pipelined VLSI Arrays Tesis doctoral ETSI Telecomunicacioacuten Universidad Politeacutecnica de Madrid Madrid Spain 1996

[Men99] L Mengiacutebar M Garda D Martiacuten and L Entrena Experiments in FPGA Characterization for Low-power Design Proceedings of XIV Conference on Design of Circuits and Integrated Systems (DCIS99) Palma de Mallorca November 1999

[Flu02] Fluke Ibeacuterica Multiacutemetros digitales de la serie 170 avilable at httpwwwflukees 2002

279

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

i

280

Apeacutendice B

Placa de prueba AFX (Virtex)

Bl Introduccioacuten

Para llevar a cabo los experimentos con FPGAs de la familia Virtex se empleoacute una

tarjeta de prototipado disentildeada y distribuida por Xilinx la AFX PQ240-100 [Xil99a]

Esta tarjeta posee la ventaja de ser muy simple y praacutecticamente no tener componentes

adicionales que pudiesen interferir con las medidas de consumo En esta placa se

puede montar cualquier FPGA de la familia Virtex de 25 V con encapsulado PQ240

Figura Bl Detalle de la placa de prototipado AFX

281

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

B2 Caracteriacutesticas de la placa de prueba AFX

En la figura Bl se puede ver una fotografiacutea extraiacuteda de las notas teacutecnicas de Xilinx

Baacutesicamente la tarjeta tiene unos conectores tipo bananas de alimentacioacuten (1) un

suntildetch de conexioacuten (2) aacuterea conpines conectados a las patas de la FPGA (3) para poder

monitorizar y excitar el circuito un zoacutecalo para una EPROM de configuracioacuten (5) un

conector para programar la FPGA(6) zoacutecalos para cuatro osciladores (9) (uno por

cada liacutenea global de reloj en Virtex) cuatro LEDs (10) jumpers de configuracioacuten (7 y 8)

(principalmente seleccioacuten de tensiones en los bancos de ES y modo de

configuracioacuten M0 MI y M2) y por uacuteltimo un aacuterea de prototipado (12) A la placa se

le han soldado (en la zona 4) conectores para facilitar la conexioacuten y desconexioacuten del

generador de patrones y el analizador loacutegico

Para programarla se utiliza cualquier cable de los provistos por Xilinx (por ejemplo

Paralell Cable III oacute IV [XUuml03]) En este caso se utiliza una interfaz ad hoc descrita en

[Lop03] que se maneja a traveacutes de JBIacutets La interfaz se basa en el modo bidireccional

de funcionamiento del puerto paralelo de esta manera se puede hacer readbacks de 8

bits en paralelo de una manera muy sencilla Figura B2 y B3

Figura B2 Fotografiacutea de la tarjeta AFX

282

Apeacutendice B Placa de Pruebas AEX para Virtex

Figura B3 Detalle de la interfaz con el puerto paralelo de la tarjeta AFX

B3 Dispositivos Virtex utilizados

Los dispositivos utilizados con esta placa son una XCV50PQ240-4 (un arreglo de

16x24 CLBs 768 slices 57906 puertas equivalentes) y una XCV800PQ240-4 [XilOlb]

(56x84 CLBs 9408 slices 888439 puertas equivalentes) fundamentalmente esta uacuteltima

FPGA se ha utilIacute2ado para la mayor parte de las medidas

B4 Conexioacuten de la placa de pruebas

Las FPGAs de la familia Virtex se alimentan con 25 V el core del circuito en tanto que

la periferia se alimenta con 33 V Una fuente de alimentacioacuten doble alimenta por

separado cada parte de la placa con las tensiones correspondientes En el arreglo

experimental se controlan-ambas tensiones y la corriente del core ya que en general se

estudia el consumo dinaacutemico del core aislaacutendose en el caacutelculo tambieacuten el consumo de

la periferia En la figura D3 se observa una fotografiacutea del arreglo experimental

Para la excitacioacuten de los circuitos se utiliza un generador de vectores de prueba

TLA7PG2 de la empresa Tektronix [Tek02] La sentildeal de reloj para los circuitos se

obtiene igualmente de este generador Para comprobar los resultados se utiliza un

analizador loacutegico TLA704 de la misma empresa [TekOl]

283

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

A la placa se han conectado 64 bits de entrada (procedente del generador de vectores

de tesi) La tabla Bl muestra los detalles de la asignacioacuten aacuteamppines Un total de 64 patas

de salida de la FPGA se conectaron al analizador loacutegico cuya asignacioacuten de patas se

puede ver en la tabla B2

Pin

5

6

9

13

17

21

25

26

AO

A0_0

A0_1

A0Jiquest

A0_3

A0_4

A0_5

A0_6

A0_7

Pin

3

4

7

12

20

24

27

28

Al

A1_0

Al_l

Al_2

Al_3

Al_4

Al_5

Al_6

Al_7

Pin

33

34

38

41

46

49

53

57

B0

BOJ)

B0_1

B0_2

B0_3

B0_4

B0_5

B0_6

B0_7

Pin

31

35

36

40

48

52

55

56

Bl

B1_0

Bl_l

Bl_2

Bl_3

Bl_4

Bl_5

Bl_6

Bl_7

Pin

186

189

193

194

201

202

205

206

CO

C0_0

C0_1

C0_2

C0_3

C0_4

C0_5

C0_6

C0_7

Pin

187

188

192

195

199

200

207

208

Cl

C1_0

Cl_l

Cl_2

CIJi

Cl_4

Cl_5

Cl_6

Cl_7

Pin

217

218

221

222

229

230

234

237

DO

D0_0

D0_1

D0_2

D0_3

D0_4

D0_5

D0_6

D0_7

Pin

215

216

220

224

228

232

235

236

DI

D1_0

Dl_l

Dl_2

Dl_3

Dl_4

Dl_5

Dl_6

Dl_7

Tabla Bl Conexiones del generador de patrones a la FPGA

Pin

5

6

9

13

17

21

25

26

A0

A0_0

A0_1

A0_2

A0_3

A0_4

A0_5

A0_6

A0_7

Pin

3

4

7

12

20

24

27

28

Al

A1_0

Al_l

Al_2

Al_3

Al_4

Al_5

Al_6

Al_7

Pin

33

34

38

41

46

49

53

57

B0

BOJ)

B0_1

B0_2

B0_3

B0_4

B0_5

BOJ)

B0_7

Pin

31

35

36

40

48

52

55

56

Bl

B1J)

Bl_l

Bl_2

Bl_3

Bl_4

Bl_5

B1J5

Bl_7

Pin

186

189

193

194

201

202

205

206

CO

C0_0

C0_1

C0_2

COJi

C0_4

C0_5

C0J5

C0_7

Pin

187

188

192

195

199

200

207

208

Cl

C1J)

Cl_l

Cl_2

Cl_3

Cl_4

Cl_5

Cl_6

Cl_7

Pin

217

218

221

222

229

230

234

237

DO

D0J)

D0_1

D0J2

D0_3

D0_4

D0_5

D0_6

D0_7

Pin

215

216

220

224

228

232

235

236

DI

D1_0

Dl_l

D1Jiquest

Dl_3

Dl_4

Dl_5

Dl_6

Dl_7

Tabla B2 Conexiones del generador de la FPGA al analizador loacutegico

284

Apeacutendice B Placa de Pruebas AFX para Virtex

Figura B4 Fotografiacutea del arreglo experimental placa AFX

B5 Metodologiacutea de medicioacuten de consumo

La metodologiacutea de medicioacuten es similar a la descrita en el apeacutendice A4 solo que aquiacute

se tiene en cuenta el hecho de que la periferia del circuito se alimenta a 33 V en tanto

que el core del circuito se alimenta con 25 V A consecuencia de lo antedicho el

consumo externo (pff-chip powef) depende de la tensioacuten de 33 V teniendo una

influencia despreciable sobre el consumo de 25V Se realizaron pruebas para

comprobar esta uacuteltima afirmacioacuten construyendo circuitos con buffers tri-estados en las

salidas y comprobando el consumo sobre la alimentacioacuten del core con los buffers

conectados y desconectados respectivamente En la tabla B3 se resumen las

componentes del consumo

285

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Consumo Estaacutetico

(StaticPower)

Consumo Externo

(Off-chippower)

Consumo de

Sincronizacioacuten

(Synchroniaption power)

Consumo Dinaacutemico

(DynamicPoiver)

El circuito es configurado pero no se le conectan estiacutemulos ni sentildeal de

reloj El resto de elementos externos que requiere la FPGA quedan

conectados Se obtiene consumo estaacutetico tanto en la alimentacioacuten del

core como en la de la periferia

El consumo externo estaacute soportado por la alimentacioacuten de la periferia

con lo que rentaacutendole el consumo estaacutetico se obtiene la componente

off-cbip

Un dato constante es usado como entrada al circuito mientras el reloj

es aplicado por tanto solo el reloj produce consumo Si no se utilizan

FF en los IOBs solo se notaraacute consumo sobre la alimentacioacuten del core

sino en ambas alimentaciones

Surge de restarle al consumo total de la alimentacioacuten del core su

consumo estaacutetico Los IOBs contienen FF y un miacutenimo de loacutegica la

que se trata de evitar de usar para no influir en las medidas

Tabla B3 Componentes del consumo y forma de medicioacuten en Virtex

Para obtener el consumo dinaacutemico solo bastaraacute con medir el consumo sobre la

alimentacioacuten del core retaacutendole el consumo estaacutetico Por tanto el voltiacutemetro y

amperiacutemetro (Fluke 175 [Flu02]) se colocan sobre la liacutenea de alimentacioacuten de 25V

No obstante se controla la tensioacuten de 33 V para evitar errores en las medidas

El error en la medicioacuten es similar al expresado en la seccioacuten A51 ya que se utiliza un

instrumental similar En el rango utilizado el voltiacutemetro posee un error 015 de la

lectura en tanto que el amperiacutemetro el 1

286

Apeacutendice B Placa de Pruebas AFX para Virtex

B6 Referencias del apeacutendice

[Flu02] Fluke Ibeacuterica Multiacutemetros digitales de la serie 170 available at httpwwwflukees 2002

[Lop03] Sergio Loacutepez-Buedo Teacutecnicas de Verificacioacuten Teacutermica para Arquitecturas Dinaacutemicamente Reconfigurables Tesis doctoral Departamento de Ingenieriacutea Informaacutetica Universidad Autoacutenoma de Madrid julio 2003

[TekOl] Tektronix inc TLA 704 Logic Analyzer user Guide available at wwwtektronixcom

[Tek02] Tektronix inc TLA7PG2 Pattern Generator Module available at wwwtektronixcom

|Xil01] Xilinx inc Virtextrade 25 V Field Programmable Gate Arrays Product Specification Data Sheet DS003-1 (v25 ) April 2 2001 Available at wwwxilinxcom

[XIacute103] Xilinx Inc Xilinx Parallel Cable IV Advance Product Specification Data Sheet DS097 (vi 4) March 2002 available at hrtp toolboxxilinxcomdocsan

[XU99] Xilinx inc Xilinx Prototype Platforms User Guide for Virtex and Virtex-E Series FPGAs Data Sheet DS020 (vll) December 1999 Available at wwwxilinxcom

287

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

288

Apeacutendice C

Placa de prueba para VIRTEXII

Cl Introduccioacuten

Las medidas de consumo sobre la familia Virtex II se llevaron a cabo sobre una tarjeta

de prototipado disentildeada y distribuida por Xilinx denominada Virtex-IIprototypeplatform

[XIacute103]

Si bien esta tarjeta es maacutes compleja que la descrita en el apeacutendice B y al margen de

tener componentes adicionales (FPGA de servicio PROMs etc) que consumen

corriente eacutestas se alimentan por una conexioacuten separada con lo que las mediciones se

pueden llevar a cabo sin inconvenientes En esta placa se puede montar cualquier

FPGA de la familia Virtex II de 15 V con encapsulado FG676 [XIacute104]

La tarjeta de prototipado para Virtex II contiene dos FPGAs una es el dispositivo a

medir (DUT - Device Under Test) y una FPGA de servicio El DUT puede ser

programada por una PROM viacutea el conector a tal efecto socket PROM) o utilizando

uno de los dos conectores auxiliares a traveacutes de cualquier sistema de configuracioacuten de

Xilinx como MultiUNX cable [Mul03] Parallel Cable HI [ParOO] Parallel Cable IV

[Par04] oacute System ACE [AceOl]

La FPGA de servicio es una matriz de interconexioacuten que controla el rutado para todas

las sentildeales de configuracioacuten en la placa Esto permite evitarse jumpers y switches para

controlar la placa Una PROM serie XC18V01 configura la FPGA de servicio Ni la

FPGA de servicio si su PROM son parte de la cadena de configuracioacuten

289

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

HSWAPEN (OWOFF)

I CLKDOUBLE I ClxUraUaDipSviMi

IQUumlDDDDDGGDDI

Clock Generalor

FfBqucnsySoIsct gS-SOMHr

IrJTACConlfd O

0FP3A 1PROM Z FPOUPRCU 3 P R D H J F P G A 4FEEDTHROUGH

O Ccnfanralpii Ma da 2

2ConfaiTalOTMxfa a IRS1ER SERIAL (PRC(I| 1 UASIER SERIAL (UPST REAll) 2 IWSTER SELECt IUP (PFOTl 1IIASTER SELECTIMP UPSIPtaiU) 4-SWIacuteSBW KJIAG B SELECT LWP rEXIERlIAL

O CWpSded

ToUpalroauBoBid JTO3 SHeacutectTEp

JTAG TCKTMSTDtTDO RaijflsYScraacutet B0D7CCLK

Service FPGA

Pragraintilde

Hiacuteatfcifa-FTOU Pit^hterBoatd

SPROM (VQ44 Socket)

LVCMCS20SC LVCM0S2OSC 5MB

JTAG SdodMi la Ucwnaticain Uoal

Tan User Raacutesela ItWl t^EtawAlnil iexclpoundf T3IacuteVBATT IED-UU)

Pcwar Buacutea and Switchaa

To l^sltum Borniacute

O r-O mdashOVECJa

E 3 - Swilch -ltJVCCOJraquo mdash^Sv-raquo 0nOIK)n ^ -QvOTJa

jvca

Ta DMmunsm Ebaid VCCO

VCC IrealPowa- USllS-OIlaquo210t

Figura Cl Diagrama de bloques de la placa de prototipado para Virtex II [XIacute103]

C2 Caracteriacutesticas de la placa de prueba para Virtex II

La figura Cl muestra un diagrama de bloques de la placa de pruebas en tanto la

figura C2 es una fotografiacutea detallada extraiacuteda de las notas de aplicacioacuten de Xilinx Los

elementos maacutes destacables de la placa son Interruptor de corriente (1) posee tres

posiciones conecta la corriente a la placa viacutea los reguladores de tensioacuten ubicados en la

parte inferior de la placa desconecta o conecta la alimentacioacuten viacutea los bornes de

alimentacioacuten separados (2) Conector de programacioacuten (3) se puede utilizar

MultiUNX oacute Paralkl Cable III Selector de frecuencia para el reloj interno (4) Selector

290

Apeacutendice C Placa de Pruebas Virtex II

para el modo de programacioacuten de la DUT (5) los conectores 5a 5b son para system

ACE [AceOl] en tanto 5c y 5d son conectores de interfase para los modos de

programacioacuten select-map oacute slave-serial Control de la cadena JTAG (6) Control del chip

select (7) asigna un nuacutemero entre 0 y 3 para el DUT en la cadena de chip-sekct Conector

para la EPROM del usuario (8) acepta las memorias de la serie XC17V01-V04 y

XC18V01-V04 con empaquetado VQ44 FPGA de servicio (11) se configura con una

EPROM propia que no estaacute en la cadena de JTAG principal viacutea el conector especiacutefico

(9) Conexiones para osciladores externos (15) Conexioacuten para generadores de onda

extemos (16) Socket para la FPGA a medir (19) las patas para ingresar y sacar datos

estaacuten mapeadas en la zona de conexiones (20) alliacute se pueden soldar conectores para

utilizar generador de patrones y analizador loacutegico Posee leds programables por el

usuario (21) e interruptores de reset y programacioacuten (2223) Led de inicializacioacuten (jmt)

y finalizacioacuten de la configuracioacuten (directo de la pata done) (24 y 25)

Figura C2 Detalle de la placa de prototipado para Virtex II [XUuml03]

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

C3 Dispositivos Virtex II utilizados

En esta placa se pueden conectar dispositivos Virtex II con encapsulado FG676 Las

combinaciones de encapsulado y dispositivo de las hojas de datos de Virtex II [XU04]

indican que existen tres dispositivos con este encapsulado XC2V1500 XC2V2000 y

XC2V3000 con 152 y 3 millones de puertas equivalentes respectivamente

Los dispositivos disponibles para esta tesis son una XC2V1500FG676-6 (una matriz

de 48 x 40 CLB 7680 slices 48 BlockRAMs y 48 multiplicadores) y una

XC2V3000FG676-6 (64 x 56 CLB 14336 slices 96 BlockRAMs y 96

multiplicadores) Para las medidas de eacutesta tesis se utiliza mayoritariamente el primer

dispositivo

C4 Conexioacuten de la placa de pruebas

Las FPGAs de la familia Virtex II utilizada alimenta el core del circuito a 15 V

(Vccint) la periferia a 33 V (Vccout) en tanto que la tensioacuten auxiliar depende del

estaacutendar de salida En este caso se utiliza LVTTL y por ende se alimenta con 33 V

(Vccaux) Adicionalmente la placa posee una alimentacioacuten de 33 V para la FPGA de

servicio las memorias EPROMs y demaacutes circuitos de la placa

Dos fuentes de alimentacioacuten dobles alimentan por separado cada parte de la placa con

las tensiones correspondientes En el arreglo experimental se controlan todas las

tensiones y las corrientes del core periferia y auxiliar Por lo general el consumo

dinaacutemico del core obviaacutendose el resto de las corrientes En la figura C4 se observa una

fotografiacutea del arreglo experimental

Para la excitacioacuten de los circuitos se utiliza un generador de vectores de test

TLA7PG2 de la empresa Tektronix [Tek02] la sentildeal de reloj para los circuitos se

obtiene igualmente de este generador Para comprobar los resultados se utiliza un

bullanalizador loacutegico TLA704 de la misma empresa [TekOl]

292

Apeacutendice C Placa de Pruebas Virtex II

Figura C4 Fotografiacutea del arreglo experimental placa Virtex II

C5 Metodologiacutea de medicioacuten de consumo

La metodologiacutea de medicioacuten es similar a la expresada en los apeacutendices A y B solo que

aquiacute se tiene en cuenta el hecho de que la periferia y la tensioacuten auxiliar del circuito se

alimenta a 33 V en tanto que el core del circuito se alimenta con 15 V Como

consecuencia el consumo externo (off-chip pomr) seraacute alimentado por la tensioacuten de

33 V (Vccaux y Vccout) teniendo una influencia despreciable sobre el consumo del

core (15V) Se realizaron pruebas para comprobar esta uacuteltima afirmacioacuten En la tabla

Cl se resumen las componentes del consumo

293

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Consumo Estaacutetico

(Static Power)

Consumo Externo

(Off-chtppower)

Consumo de

Sincronizacioacuten

(Synchroniyation power)

Consumo Dinaacutemico

(Dynamic Power)

El circuito es configurado pero no se le conectan estiacutemulos ni sentildeal de

reloj El resto de elementos externos que requiere la FPGA quedan

conectados Se obtiene consumo estaacutetico tanto en la alimentacioacuten del

core (Vccint) como en la de la periferia (Vccout y Vccaux)

El consumo externo estaacute soportado por la alimentacioacuten de la periferia y

la auxiliar con lo que rentaacutendole el consumo estaacutetico de cada

componente se obtiene la componente off-chip

Un dato constante es usado como entrada al circuito mientras el reloj

es aplicado por tanto solo el reloj produce consumo Si no se utilizan

FF en los IOBs solo se notaraacute consumo sobre la alimentacioacuten del core

sino en ambas alimentaciones

Surge de restarle al consumo total de la alimentacioacuten del core su

consumo estaacutetico Los IOBs contienen FF y un miacutenimo de loacutegica la

que se trata de evitar su utilizacioacuten para no influir en las medidas

Tabla Cl Componentes del consumo y forma de medicioacuten en Virtex II

Para obtener el consumo dinaacutemico solo basta con medir el consumo sobre la

alimentacioacuten del core restaacutendole el consumo estaacutetico de esa alimentacioacuten Por tanto el

voltiacutemetro y amperiacutemetro se colocan sobre la liacutenea de 15V No obstante se controlan

la tensioacuten y corriente sobre las alimentaciones de 33 V ya queen ciertos experimentos

se mide el consumo sobre Vccout y Vccaux

Respecto al error en las medidas al igual que en los arreglos experimentales del

Apeacutendices A y B el error del voltiacutemetros en el rango utilrzado es del 015 de la

lectura en tanto que en los amperiacutemetros el error llega al 1 El error en la potencia

calculado como el producto I x V es del orden del 1

294

Apeacutendice C Placa de Pruebas Virtex II

C6 Referencias del apeacutendice

[AceOl] Eric Thacker Xilinx Inc System Ace Configuration Solution for Xilinx FPGAs White Paper 151 (v10) Available at wwwxilinxcom September 2001

[Mul03] Xilinx inc Getting Started with the MultiLINX Cable Xilinx Application Note XAPP168 (v21) April 292003

[ParOO] Xilinx inc Hardware User Guide Chapter 1 Cable Hardware - Parallel Cable III Xilinx Foundation documentation Ver 31 Available at httptoolboxwwwxilinxcomdocsan3_li 2000

[Par04] Xilinx inc Xilinx Parallel Cable IV Data Sheet DS097 (v20) January 2004 Available at wwwxilinxcom

[TekOl] Tektronix inc TLA 704 Logic Analyzer Family user Guide versioacuten 41 2001 available at wwwtektronixcom

|Tek02] Tektronix inc TLA7PG2 Pattern Generator Module Instruccioacuten Manual 2002 Available at wwwtektronixcom

[XIacute103] Xilinx inc Virtex II Prototipe platform user guide UG015 v11 January 2003 Available at wwwxilinxcom

[XIacute104] Xilinx Inc Virtex-II Platform FPGAs Complete Data Sheet Data sheet DS031 (v33) June 2004 Available at httpwwwxilinxcom

295

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

296

Apeacutendice D

Traductor Kiss2VHDL

Dl Introduccioacuten

Se describe aquiacute la herramienta software construida para la realizacioacuten de los

experimentos de consumo con diferentes codificaciones en maacutequinas de estados

finitos (Capiacutetulo 4) Como proacutelogo se describen el formato de especificacioacuten de

maacutequinas de estado KISS2 [Sen92] y los grupos de bancos de pruebas (benchmarks tests)

MCNC |Lis88] y PREP [PreOO]

D2 El formato KISS

El formato KISS se origino con el programa de minimizacioacuten de funciones loacutegicas de

dos niveles usados para PLAs llamado espresso [Bra94] El formato evolucionoacute para dar

soporte a las maacutequinas de estado finitos (llamado KISS2) y se ha extendido su

utilizacioacuten en muacuteltiples herramientas de asignacioacuten y minimizacioacuten de estados

En KISS2 cada estado es simboacutelico dado un estado y un vector de bits de entrada la

tabla de transicioacuten indica el proacuteximo estado en forma simboacutelica y el vector de bits de

salida Las condiciones externas sin importancia don t cari) se indican a traveacutes de no

escribir la transicioacuten (es decir no se escribe la combinacioacuten estado actual-combinacioacuten

de entrada) Otra alternativa es escribir que no importa el estado de un bit de entrada

o salida y para ello se utiliza el caraacutecter - es decir Iacutendica que puede ser

indiferentemente 0 oacute 1

Los archivos KISS2 son en texto plano El caraacutecter da inicio a un comentario hasta

el fin de liacutenea (hasta el caraacutecter salto de liacutenea) Las siguientes palabras claves son

reconocidas donde [d] indica un nuacutemero decimal y [s] una cadena de texto

297

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

i [d] Especifica la cantidad de variables de entrada

bullo [d] Especifica la cantidad de variables de salida

p [d] Especifica la cantidad de reglas (opcional)

s [d] Especifica la cantidad de estados (opcional)

r [s] Especifica el estado de reset (opcional)

Luego se colocan las reglas en la tabla de estados donde current_state y next_state

son nombres simboacutelico que representan estados e input y output son los vectores de

bits de la entrada y salida respectivamente

inputs cuaent_state next_state outputs

e o end marcan el fin de la desscripcioacuten

Un primer ejemplo Un diagrama de transicioacuten de estados (STG) de una maacutequina de

estados con un bit de entrada y otro de salida tres estados 6 reglas Las palabras claves

correspondientes a la cantidad de estados y reglas son opcionales y no se han descrito

en este ejemplo

i 1

0 1 0 stO 1 stO 0 stl 1 stl 0 st2 1 st2 e

stO stl st2 stl stO stl

Figura Dl Un primer ejemplo de descripcioacuten KISS2

Segundo ejemplo Cada posicioacuten en la columna de variables de entrada o salida

indica una variable del mundo exterior En las entradas los 0 indican teacuterminos

complementados en tanto que los V teacuterminos directos El caraacutecter mdash que la variable

no estaacute presente (don t cari)

298

Apeacutendice D Traductor K1SS2VHDL

bull i 2 0 2 p 15 s 5 r si 11 si 0- si 10 si 00 s2 1- s2 01 s2 1- s3 0- s3 10 s4 01 s4 00 s4 11 s4 1- s5 00 s5 01 s5 end

s2 s2 s5 s3 s3 s4 s4 s5 si si s5 s5 si s3 s3

11 00 00 -1 10 -1 00 11 11 -1 11 0--0 10 1-

Figura D2 Ejemplo de grafo de transicioacuten de estados y su correspondiente especificacioacuten en KISS2

D3 Bancos de pruebas (Benchmarks)

Para medir y comparar consumo en maacutequinas de estado se han utilizados los circuitos

bancos de prueba del MCNC [Lis88] y los del consorcio PREP [PreOO]

MCNC Benchmarks El banco de pruebas para siacutentesis loacutegica y optimizacioacuten logic

synthesis and optimi^ation benchmarks) es distribuido por el Centro de microelectroacutenica de

Carolina del Norte (Microelectronics Center of North Carolina) e incluye los

conjuntos de bancos de prueba ISCAS85 e ISCAS89 El primer informe de gran

difusioacuten (versioacuten 20) data de 1988 [Lis88] y ha sido ampliado en la versioacuten 30

[Yan91] siendo eacutesta uacuteltima la versioacuten utilizada en esta tesis

El conjunto de circuitos de prueba esta divido en cuatro categoriacuteas fundamentales

Maacutequinas de estado en formato KISS2 Loacutegica secuencial multinivel en extended

BLIF (Berkeley Logic Interchange Formai) o SLIF Structure Logic Interchange Formai) Loacutegica

combinacional multinivel en extended BLIF o SLIF Por uacuteltima loacutegica de dos niveles

en Berkey PLA format (Como KISS pero sin estados) o SLIF Se puede conseguir en la

direccioacuten ftpmcncmcncorg directorio pubbenchmark LGSynth91

299

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

PREP Benchmarks El consorcio de compantildeiacuteas de electroacutenica programable

(Programmable Electronics Performance Company - PREP ) se creo con el aacutenimo de generar

una serie de pruebas que midiesen las prestaciones en FPGAs y otros dispositivos

programables De los nueve circuitos que distribuye la versioacuten 13 nos interesan los

circuitos 3 y 4 que implementan maacutequinas de estados (de 8 y 16 estados

respectivamente)

Actualmente el consorcio PREP se ha disuelto pero se pueden conseguir los circuitos

en VHDL o Verilog en una implementacioacuten de Symplicity [Syn88] o bien desde la

paacutegina web del proyecto httpwwwpreporg

D3 Traductor Eiss2VHDL

El programa Kiss2VHDL codifica los estados de la maacutequina que se ingresa en

formato KISS2 seguacuten los paraacutemetros ingresados y genera dos ficheros VHDL Uno

con la entidad de la maacutequina de estados y un top-level que instancia la maacutequina de

estados y agrega buffers de tercer estado en las patas del circuito

Modo de uso Kiss2VHDL [options] pnput]

-n No state Encoding Only transform K3SS into VHDL -h print help message -e option specify encoding option

r random encoding

h one hot encoding V two hot encoding o output dominant algorithm (default) out-oriented

pnput] file to be processed (default stdin)

El programa esta escrito en C posee un analizador sintaacutectico (parser) para transformar

el fichero KISS2 leiacutedo en una representacioacuten de diagrama (o grafo) de transicioacuten de

estados Posee rutinas para la asignacioacuten de estados y funciones para la escritura del

coacutedigo VHDL

A continuacioacuten se muestra el ejemplo de la traduccioacuten del ejemplo de la figura C2 con

codificacioacuten One Hot en coacutedigo VHDL

300

Apeacutendice D Traductor KISS2VHDL

mdash MEALY machine

mdash generado por el traductor kiss2vhdl

library ieee use ieeestd_logic_1164all library SYNOPSYS use SYNOPSYSattributesall

entity ejemplo is port(clk rst in std_logic

i in std_logic_vector (1 downto 0) o out std_logic_vector (1 downto 0) )

end ejemplo

architecture behave of ejemplo is type state is ( si s2 s5 s3 s4) attribute enum_encoding of state type is

10000 amp 01000 S 00100 amp 00010 S 00001

mdash si mdash s2 mdash s5 mdash s3 -- s4

signal machine next_state state signal o_i std_logic_vector (1 downto 0)

begin

mdash Sincronization state_machine process (rst clk) begin

if rst = 1 then machine lt= si

elsif rising_edge(clk) then machine lt= next_state

end if end process state_machine

next_state_process process (machine i) begin case machine is when si =gt

if i = 11 then next_state lt= s2 o_i lt= 11

elsif i(l) = 0 then next_state lt= s2 o_i lt= 00

elsif i = 10 then next_state lt= s5 o_i lt= 00

else next_state lt= si o_i lt= (others =gt X)

end if when s2 =gt

if i = 00 then next_state lt= s3 o_i lt= -1

elsif i(l) = 1 then

301

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

next_sta te lt= s3 o_i lt= 10

e l s i f i = 01 then next_sta te lt= s4 o_i ltlaquo - 1

e l se next_state lt= s2 o_i lt= (others =gt X )

end if when s5 =gt

i f i ( l ) = 1 then next_state lt= si o_i lt= -0

elsif i = 00 then next_state lt-= s3 o_i lt= 10

elsif i = 01 then next_state ltlaquo s3 o_i lt= 1-

else next_state lt= s5 o_i lt= (others =gt X)

end if when s3 =gt

if i(l) = 1 then next_state lt= s4 o_i lt= 00

elsif i(l) = 0 then next_state lt= s5 o_i lt= 11

else next_state lt= s3 o_i lt= (others =gt X)

end if when s4 =gt

if i = 10 then next_state lt= si o_i lt= 11

elsif i = 01 then next_state lt= si o_i lt= -1

elsif i = 00 then next_state lt= s5 o_i lt= 11

elsif i = 11 then next_state lt= s5 o_i lt= 0-

else next_state lt= s4 o_i lt= (others =gt X)

end if when others =gt

next_state lt= si o_i lt= (others =gt X)

end casa end process next_state_process

o lt~ o_i end behave

302

Apeacutendice D Traductor K3SS2VHDL

D4 Referencias del Apeacutendice

[Syn98] Synplicity Inc Synplify User Guide Releacutease 50 PREP VHDL Benchmark Examples August 1998 httpwwwsynplicitycom

[Lis88] Bob Lisanke Logic synthesis and optimization benchmarks Technical report MCNC Research Triangle Park North Carolina December 1988

[PreOO] Programmable Electronics Performance Corporation (PREP) Benchmarks (Programmable Electronics Performance Company) see httpwwwpreporg

[Sen92] E M Sentovich K J Singh L Lavagno C Moon R Murgai A Saldanha P R Stephan R K Brayton and A Sangiovanni-Vincentelli SIS A System for Sequential Circuit Synthesis Technical Report Memoraacutendum No UCBEKLMP241 Univ of California Berkeley 1992

[Bra84] Robert K Brayton Gary D Hachtel Curtiacutes T McMullen and Alberto L Sangiovanni-Vincentelli Logic Minimization Algorithms for VLSI Synthesis KluiverAcademicPublishers 1984

[Yan91] Saeyang Yang Logic Synthesis and Optimization Benchmarks User Guide Versioacuten 30 Technical report MCNC Research Triangle Park North Carolina January 1991

303

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

304

Apeacutendice E

Particionador de maacutequinas de estado Patt_FSM

El Introduccioacuten

El programa Part_FSM es un programa C++ para la particioacuten de maacutequinas de

estados Como entrada acepta maacutequina de estados descritas en formato KISS2 [Sen92]

(apeacutendice D) generando como resultado la particioacuten de la maacutequina de estados seguacuten

lo expresado en la seccioacuten 44 En primer lugar lee la maacutequina de estados y la

transforma en una representacioacuten interna de grafo de transicioacuten de estados (STG -

State Transitioti Grapuuml) luego le calcula la probabilidad estaacutetica Maacutes tarde se aplica el

algoritmo de particioacuten de maacutequinas de estado para por uacuteltimo generar el coacutedigo

VHDL de la maacutequina de estados particionada El programa acepta paraacutemetros para

especificar el tipo de arquitectura (arquitectura Ij II seguacuten la seccioacuten 434) u ortogonal

(seccioacuten 433) ademaacutes del tipo de meacutetodo de bloqueo necesario

E2 Estructuras de datos

La principal estructura de datos es el grafo de transicioacuten de estados (STG mdash State

Transitioti Grapuuml) donde se almacena la maacutequina de estado La estructura baacutesica es el

estado (stateacute) y la transicioacuten entre estados (transition) (la declaracioacuten de la parte privada

de las clase se puede ver en la figura Dl) luego el STG es un arreglo de estados Otra

estructura importante es la particioacuten (partition) que almacena en dos arreglos los

estados de cada submaacutequina de estados

305

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

E3 Caacutelculo de probabilidad estaacutetica

La probabilidad estaacutetica se calcula tal lo expresado en la seccioacuten 435 A medida que

se leen las liacuteneas que implican transiciones en el coacutedigo KISS2 se cargan en el grafo

de transicioacuten de estados y se asignan las probabilidades a los arcos La probabilidad

condicional de transicioacuten de un arco hacia otro si se considera equiprobabilidad de las

entradas es tan simple como dividir la proporcioacuten de combinaciones que generan la

transicioacuten respecto del total

En la Figura 416 se puede observar un ejemplo de caacutelculo de probabilidades Se

puede ver en la Figura 416b las probabilidades calculadas Por otra parte en el

ejemplo de la Figura E3 todas las probabilidades de transicioacuten son de 05

class state private

int present_state int no_of_fanout int no_of_fanin int inputs float steady_state_probability transition init ptr vectorltintgt fanin_states vectorlttransitiongt fanin_edges

public

c lass t r a n s i t i o n p r iva t e

i n t nextstatenum char inpu t_b i t s char ou tpu t_b i t s s t a t e nex t_s ta te f loa t t r ans i t i on_p robab i l i t y t r a n s i t i o n nex t_ t r ans i t ion

publ ic

Figura E l Declaracioacuten de la parte privada de las clases state y transition

Para resolver el sistema de n ecuaciones y asiacute obtener la probabilidad estaacutetica se

implementa un algoritmo iterativo para el caacutelculo Una vez obtenido la probabilidad

estaacutetica para cada estado se procede a calcular la probabilidad de transicioacuten que surge

306

Apeacutendice E Partiacutedonador de Maacutequinas de Estados

de multiplicar la probabilidad estaacutetica de cada estado origen por la probabilidad de

dicha transicioacuten Una vez obtenido un grafo con la informacioacuten que muestra la Figura

416C y la Figura 416d se procede a invocar al algoritmo de particioacuten

E4 Particioacuten de la maacutequina de estados

El criterio para la divisioacuten de la maacutequina de estados es la minimizacioacuten de la

probabilidad de transiciones entre las maacutequinas de estados es decir

min( 2 ] p(ij)) V e TlAj e UB dondep(iquestiexcl) es la probabilidad de transicioacuten de

la maacutequina original y IIA = Sai Sa2 bull bull -San y UumlB = Sbi Sb2 bull bull Sbmson las

particiones generadas

Existe otro criterio extra dentro del algoritmo que es la diferencia de cardinalidad de

las dos particiones siendo esta un paraacutemetro Las pruebas empiacutericas sobre las

arquitecturas disentildeadas muestran que los mejores resultados se logran con la misma

cantidad de estados en las submaacutequinas no obstante es un paraacutemetro por si se desea

implementar sobre otra arquitectura

Se ha implementado un algoritmo de backtracking (que explora todas las

combinaciones posibles) con funciones de poda para reducir el tiempo de caacutelculo No

fue necesario desarrollar una heuriacutestica para resolver el problema ya que la buacutesqueda

exhaustiva resuelve el peor caso presentado dentro del banco de pruebas del

MCNC91 [Lis88]iexclYan91] en unos pocos segundos En la figura E2 se puede observar

el coacutedigo para la generacioacuten de las particiones

307

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

coacutedigo del algoritmo de particioacuten void pa r t i t i one r (state STG pa r t i t i on P f loa t SminDist i n t n_state

i n t t o t_s t i n t maxjst f loa t ac tua l jd i s t i n t n_P0 i n t n_Pl) i n t numEdges f loa t growjdist

i f (n_state lt t o t j s t ) s i no se han asignado todos los estados asigno n_state a suacutebconj (particioacuten) 0 i f (n_P0 lt maxjst) siempre que no me pase del limite

growjdist = aurrentojdistance(P STG numEdges n j s t a t e 0 ) i f ((growjdist + actual jd is t ) lt minDist)

P-gtput(njstate 0) partioner(STGP minDist njs tate+1

t o t j s t maxjst (growjdist+actual_dist)n_PO+l n_Pl) P-gtdel_last(0)

asigno njstate a subconj (particioacuten) 1 i f (n_Pl lt maxjst) siempre que no se pase del limite

growjdist = aumentojdistance(PSTGnumEdgesnjstate1) i f ((growjdist+actualjdist) lt minDist)

P-gtput (njstate 1) partitioner(STG P minDistn_state+l

t o t j s t maxjst (growjdist+actualjdist)n_P0n_Pl + 1) P-gtdel_las t ( l )

else s e han asignado todos los estados

f loa t pd = partitionjdistance(PSTGnumEdges) i f ( pd lt minDist) si es la major sssolucioacuten se guarda

minDist = pd P-gtprint_parti t ion () i f (minP = NULL) delete (minP) minP = P-gtcopy()

Figura E2 Coacutedigo para la particioacuten de maacutequinas de estados

308

Apeacutendice E Partiacutecionador de Maacutequinas de Estados

E5 Generacioacuten del coacutedigo VHDL

Una vez realizada la particioacuten de la maacutequina de estados se genera el coacutedigo VHDL El

generador de coacutedigo tiene en cuenta los paraacutemetros que se han ingresado para generar

el coacutedigo correspondiente Se puede generar la arquitectura I o arquitectura II elegir el

tipo de bloqueo de los datos entre puertas ANDs hatches y buffers de tercer estado y

ademaacutes el tipo de codificacioacuten de las submaacutequinas

A continuacioacuten se muestran un ejemplo en base al circuito dk27 del MCNC que se

puede ver en la figura E3 En la figura E4 se muestra el coacutedigo KISS2 que se utiliza

como entrada al programa y la salida por pantalla con la informacioacuten de la

probabilidad calculada que exhibe la herramienta La figura E5 muestra la

informacioacuten que brinda la herramienta respecto de la particioacuten realizada Maacutes adelante

la figura D6 muestra graacuteficamente los datos de la particioacuten

Figura E3 Diagrama de-transicioacuten de estados de la maacutequina de estados DK27

309

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

bullmodel dk27 bull i 1 0 2

p 14

s 7 bull r stO 0 stO st6 0 st2 st5 0 st3 st5 0 st4 st6 0 st5 stO 0 st6 stO 0 stl st5 1 st6 st2 1 st5 st2 1 st4 st6 1 stl st6 1 stO st4 1 st2 st3 1 st3 stl end

00 00 00 00 10 01 00 01 10 10 10 00 00 00

Reading Design dk27 Finished reading successfully Model Ntildeame dk27 Number of states 7 Nurriber of Inputs 1 Number of Outputs 2 Number of transitions 14 Reset State 0

Steady State probabilities stO mdash gt 025 stl mdash gt 00357143 st2 mdash gt 025 st3 mdash gt 00714286 st4 mdash gt 00714286 st5 mdash gt 0142857 st6 mdash gt 01785710142857

Transitions probabilities stOmdashgtst6 stOmdash-gtst4 stlmdashgtst5 stlmdashgtst6 st2~gtst5 st2mdashgtst3 st3mdashgtst5 st3mdashgtstl st4~gtst6 st4mdashgtst6 st5mdashgtst0 st5~gtst2 st6~gtst0 st6~gtst2

0125 0125 00178571 00178571 0125 0125 00357143 00357143 00357143 00357143 00714286 00714286 00892857 00892857

Figura E4 a) Coacutedigo K3SS2 de entrada b) Informacioacuten de la herramienta con

las probabilidades calculadas

Time elapsed (seconds) 0 Time elapsed (docks) 230 (CLOCKS_PER_SEC 1000)

Detail of Partitions Number of States original FSM 7 Size Partition 0 3 Size Partition 1 4 States Partition 0 stO st4 st6 States Partition 1 stl st2 st3 st5

Transitions of Partition 0 to Partition 1 Edge st6 -gt st2 Prob00892857 Total probabilities of transition partO to partiacute 00892857

Transitions of Partition 1 to Partition 0 Edge stl -gt st6 Prob00178571 Edge st5 -gt stO Prob00714286 Total probabilities of transition partO to partiacute 00892857

Figura E5 Informacioacuten de las particiones generadas

310

Apeacutendice E Paruumlcionador de Maacutequinas de Estados

Figura E6 Particioacuten generada para el circuito dk27

Por uacuteltimo se muestra el coacutedigo VHDL para el circuito dk27 con la arquitectura I latches para bloquear los datos y buffers tri-estados para las salidas En la estructura se reconocen cuatro procesos buf_tri_output que genera buffers de tercer estado para las salidas state_machine para la inferencia de registros blockingjatches para inferir los latches de las entradas next_state_proces_a y next_state_proces_a son los bloques combinacionales de las submaacutequinas de estado Por uacuteltimo ouiput_process para generar el multiplexor de la salida

mdash Partitioned FSM generated by part_FSM mdash Design dk27kiss2 mdash Number of States 7 mdash Partition 0 0 4 6 mdash Partition 1 1 2 3 5

library ieee use ieeestd_logic_1164all

entity dk27 is port(clk rst tri in std_logic

i in std_logic_vector (O downto 0) o out std_logic_vector (1 downto 0) )

end dk27

architecture behave of dk27 is

type state is ( stO stl st2 st3) attribute enum_encoding of state type is

1000 amp mdash P0 0 mdash Pl 1 0100 S -- P0 4 mdash Pl 2

311

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

0010 amp mdash PO 6 mdash Pl 3 0001 mdash Pl 5

mdash Internal signal declarations signal next_a next_b machine machine_a machine_b state signal activeFSM_a activeFSM_b std_logic signal activeFSM std_logic signal inp_a inp_b std_logic_vector (0 downto 0) signal o_i_a o_i_b std_logic_vector (1 downto 0) signal sal std_logic_vector (1 downto 0)

begin

mdash Output Trlestate Buffer buf_tri_output process (trisal) begin

if tri = l1 then o lt= sal

else o lt= others =gt Z

end if end process buf_tri_output

mdash Sincronization state_machine process (rst clk) begin if rst = 1 then

machine lt= stO elsif rising_edge(clk) then

if activeFSM = 0 then machine lt= next_a activeFSM lt= activeFSM_a

else machine lt= next_b activeFSM lt= activeFSM_b

end if end if end process state_machine

mdash Inputs Latches states and inputs blocking_latches process (activeFSM machine i) begin

if activeFSM = 0 then inp_a lt= i machine_a lt= machine

else inp_b lt= i machine_b lt= machine

end if end process input_latches

next_state_process_a process (machine_a inp_a) begin case machine a is

312

Apeacutendice E Partiacutecionador de Maacutequinas de Estados

when stO =gt mdashstO if inp_a = 0 then

next_a lt= st2 mdash st6 activeFSM_a lt= 0 o_i_a lt= 00

elsif inp_a = 1 then next_a lt= stl mdash st4 activeFSM_a lt= 0 o_i_a lt= 00

else next_a lt= stO mdash stO activeFSM_a lt= 0 o_i_a lt= (others =gt X)

end if when stl =gt mdashst4

if inp_a = 0 then next_a lt= st2 mdash st6 activeFSM_a lt= 0 o_i_a lt= 00

elsif inp_a = 1 then next_a lt= st2 mdash st6 activeFSM_a lt= 0 o_i_a lt= 10

else next_a lt= stl mdash st4 activeFSM_a lt= 0 o_i_a lt= (others =gt X)

end if when st2 =gt mdashst6

if inp_a = 0 then next_a lt= stO mdash stO activeFSM_a lt= 0 o_i_a lt= 01

elsif inp_a = 1 then next_a lt= stl mdash st2 activeFSM_a lt= 1 o_i_a lt= 01

else next_a lt= st2 mdash st6 activeFSM_a lt= 0 o_i_a lt= (others =gt X)

end if when others =gt

next_a lt= stO mdash reset state activeFSM_a lt= 0 o_i_a lt= (others =gt X)

end case end process next_state_process_a

next_state_process_b process (machine_b inp_b) begin case machine_b i s when stO =gt mdash s t l

i f inp_b = 0 then

313

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

next_b lt= st3 mdash st5 activeFSM_b lt= l o_i_b lt= 00

elsif inp_b = 1 then next_b lt= st2 mdash st6 activeFSM_b lt= 0 o_i_b lt= 10

else next_b lt= stO mdash stl activeFSM_b lt= 1

o_i_b lt= (others =gt X) end if

when stl =gt mdash s t 2 if inp_b = 0 then

next_b lt= st3 mdash st5 activeFSM_b lt= l1 o_i_b lt= 00

elsif inp_b = 1 then next_b lt= st2 mdash st3 activeFSM_b lt= bull1bull o_i_b lt= 00

else next_b lt= stl mdash st2 activeFSM_b lt= 1 o_i_b lt= (others =gt X)

end if when st2 =gt mdash s t 3

if inp_b = 0 then next_b lt= st3 mdash st5 activeFSM_b lt= 1 o_i_b lt= 00

elsif inp_b = 1 then next_b lt= stO mdash stl activeFSM_b lt= 1 o_i_b lt= 00

else next_b lt= st2 mdash st3 activeFSM_b lt= l1 o_i_b lt= (others =gt X)

end if when st3 =gt mdashst5

if inp_b = 0 then next_b lt= stO mdash stO activeFSM_b lt= 0 o_i_b lt= 10

elsif inp_b = 1 then next_b lt= stl mdash st2 activeFSM_b lt= 1 o_i_b lt= 10

else next_b lt= s t 3 mdash st5 activeFSM_b lt= 1

o_i_b lt= (others =gt X ) end if

314

Apeacutendice E Partiacutecionador de Maacutequinas de Estados

when others =gt next_b lt= stO mdash reset state activeFSM_b lt= l1 o_i_b lt= (others =gt X)

end case end process next_state_process_b

mdash select the output (multiplexor) output_process process (activeFSM o_i_a o_i_b) begin

if activeFSM = 0 then sal lt= o_i_a

else sal lt= o_i_b

end if end process output_process end behave

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

316

Apeacutendice F

Utilizacioacuten de la herramienta de estimacioacuten de consumo Xpower

Fl Introduccioacuten

Xilinx incorpora desde la versioacuten 41 de su software de disentildeo ISE (Jntegrated Software

Enviromenf) la herramienta de estimacioacuten de consumo XPower [Xpo04] Xpower es

una herramienta de anaacutelisis de consumo post Place ltiquestr Route para FPGAs (y post-fit en

CPLDs) donde se puede analizar interactivamente el consumo Incluye una

herramienta con interfaz graacutefica (GUI - Grafical User Interfaceacute) denominada Xpower y

una aplicacioacuten de proceso por lotes (batcb) Xpwr

Esta herramienta utiliza como entrada ficheros de simulacioacuten con formato VCD

(Valueacute Change Dump) creados con la herramienta Modelsim [Men04] para calcular los

estiacutemulos en cada nodo del circuito La informacioacuten final es presentada en formato

HTML o texto plano ASCII Seguacuten Xilinx Xpower estima el consumo con una

precisioacuten + -10

F2 Uso de Xpower con FPGAs

Xpower se puede invocar desde el entorno ISE donde se carga el archivo NCD

(Native Circuit Description) conteniendo el disentildeo opcionalmente el fichero PCF

(PhysicalConstraintsFile) con las restricciones del usuario oacute las generadas por el mappery

ffr m

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

por uacuteltimo los datos de una simulacioacuten previa Se pueden ademaacutes agregar la tensioacuten

de alimentacioacuten y la temperatura ambiente

La opcioacuten de utilizar la interfaz graacutefica (figura Fl) es uacutetil por el corto tiempo de

aprendizaje no obstante para realizar muacuteltiples mediciones y comparaciones la

herramienta de procesamiento por lotes (Xpwr) es maacutes adecuada

En vez de colocar los datos de simulacioacuten se puede colocar expliacutecitamente la

actividad que uno cree conveniente en cada nodo oacute bien colocar valores por defecto

(12 de actividad) o estimar los valores de actividad Estiacutemate Activity Rates en el

menuacute Tools) Ninguna de eacutestas alternativas es aconsejable dado que los valores de

resultado que brinda no tienen nada que ver con la actividad real ya que no se tiene en

cuenta la tremenda influencia de los glitches en las FPGAs Por ejemplo en un

multiplicador de 16 bits pueden existir nodos internos permutando maacutes de 8 veces la

frecuencia de reloj mientras que otros nodos solo tienen una actividad del 5

respecto de la sentildeal de reloj

F21 Generacioacuten del fichero VCD

El fichero que recoge los movimientos del circuito se llama VCD (yalue Change Dump

mdash Volcado del cambio de valores) El fichero VCD automatiza la anotacioacuten del

movimiento de las sentildeales Normalmente se parte de un testbench significativo del

funcionamiento del circuito del cual se extraen los movimientos de los datos internos

Los simuladores soportados por Xpower son el Model Technology ModelSim

iexclMod04] (en sus versiones XE PE and SE) y Cadenee Verilog XL Cadenee NC-

Verilog Cadenee NC-VHDL Cadenee NC-SIM [Cad04] En esta seccioacuten solo se

aborda el uso de Modelsim

La lista completa de los comandos para el fichero VCD se puede ver en [Mod03b]

Los comandos necesarios en el flujo VHDL es el ingreso de forma interactiva o bien

en un fichero de comandos (do file) de los siguientes comandos (estos comandos se

pueden utilizar en un flujo Verilog)

ved file my_designvcd

ved add testbenchuut

Los comandos anteriores generan un fichero VCD llamado my_designvcd

Asumiendo que el nombre de la entidad del banco de pruebas es testbench y que el

318

Apeacutendice F Uso de la herramienta XPOWER

nombre de instancia de la unidad a simular es uut unit under test) la segunda liacutenea de

comandos indica agregar todas las sentildeales al archivo VCD

Se puede agregar el modificador - r al comando ved add para agregar todas las

sentildeales en un nivel de loacutegica mayor que uno (que es el valor por defecto) El uso del

modificador mdashr puede aumentar considerablemente el tamantildeo del fichero de

simulacioacuten pero naturalmente seraacute mucho maacutes preciso

A partir de la versioacuten 61 del entorno de desarrollo del ISE [Ise03] se incorpora la

opcioacuten de generar automaacuteticamente el fichero VCD para un testbench En las

propiedades de la simulacioacuten post place ltamp ntildeute se agrega esta opcioacuten para cualquier

testbench ya sea Verilog o VHDL

El tamantildeo de los ficheros generados suelen se muy grandes dependiendo baacutesicamente

del tiempo de simulacioacuten y el tamantildeo del circuito Simular un multiplicador de 32x32

bits con datos de entrada cada 100 ns durante 4 jas (40 multiplicaciones) requiere

unos 13 MB Es faacutecil de imaginar que simular el orden de segundos en un disentildeo

medio ocuparaacute en el orden de los GB El tiempo de simulacioacuten es un tema nada

despreciable para disentildeos grandes con bancos de pruebas importantes

Z XilmKXPowcr-[top anrfspwr] P f f a Sft Vfcw Totfa Wndw Me

| |csaK- raquo - l|s|g[laquo-1iquestUf bull gt t ^

Vofcapo tf Cuncnt (bull Powat ft |iquestd

PfrWlraquo

DWMTWC

OVtwme Qtffttcert

B jraquo n laquoa

ZOO amp-gt SSIacute-

JJfci

f 3 iquest 3 DataView

ffid Oockiacute

| eacute E3 Irputi I Eacute-EJ Icsfc i BJCD otputt I ffi pound3 Sfcntildealt I B 3 Ropcrt Viom

laquo-PovlaquoR^poit(HTML)

=l

Releacutease 62031 - XPover SofcvareVerslonG3lo Copyright (c) 1S9S-2004 Xlllnx Inc All righea reserved Design cop_ands Preferences cop_and3pcpound VCD Ti le EXproj_I3E_di3ablingCLK_newgace_clfc_VII_X6 cop_ands 1 ved Pare 2vl500iacuteg676-6 Daca versioacuten ADVANCEDvl0107-31-02

Pover auaanary I(mA) P(raU)

Total estlaaced pover consuapcion

Vcelnc lSOVi Vccaux 330V Vcco33 330V

Outpucs Vcco33 Logic

Signaacuteis Cloefcs inputs

Quiescent Vecint 150V

143 100

215 330

iacutel

~Ii

a BAPNINCPower90 - Canc change acclvicy race of nec S_23 co 00 of elkmdashBDTGP HARNINGPower90 - Canc change acclvicy race of nec S_24 to 00 of clk_BUFGP VAFNINGPover9D - Canc change acclvicy race of nec S_25 co 00 of elfc_B0TGP BABNXNGPower90 - Canc change acclvicy race of nec S_26 co 00 of clk_BuTGP WARNINGPower90 - Canc change acclvicy cace of nec S_27 co 00 of clk_B0TGP

fortfefeptwtiEr ^- bullbull gt bull iexclwiquestihamp^^vmvmm

Figura Fl Aspecto de la interfaz graacutefica Xpower

319

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

F22 Uso de la interfaz graacutefica Xpower

Se puede invocar independientemente (stand alone modeacute) en cuyo caso se deberaacute cargar

posteriormente el disentildeo oacute desde el entorno ISE En este uacuteltimo caso se cargaraacute el

fichero NCD y PCF correspondiente al disentildeo activo De existir un fichero VCD con

el mismo nombre del disentildeo se cargaraacute tambieacuten los movimientos alliacute descritos Si no

se ha cargado el fichero VCD se lo puede cargar desde la barra de menuacutes file -^ open

simulationfile

Otra opcioacuten para introducir los movimientos es cargar un fichero XML extended

markup Language) con un resumen de los movimientos de cada sentildeal y otras

informaciones como tensioacuten de alimentacioacuten temperatura ambiente etc file -^ open

settingsfile Este fichero que resume la actividad en cada nodo es generado por una

previa ejecucioacuten de Xpower file -^ save settingsfile as

Otros datos que se pueden agregar interactivamente son la tensioacuten de alimentacioacuten la

capacidad de la bateriacutea la temperatura ambiente cambiar el empaquetado y agregar

ventilacioacuten Finalmente se pueden ver los informes en formato texto o HTML

presionado en report vieiif Al margen de la visualizacioacuten en la ventana a tal efecto

generaraacute un fichero en texto plano con la extensioacuten xpw (o en formato html) en el

directorio de trabajo del proyecto de Xilinx

El tipo de reporte puede ser seleccionado entre los tipos standard detaikd oacute advanced) a

traveacutes del menuacute edit bull$ preferences En el modo advanced informaraacute la corriente y

potencia maacutexima de cada fuente de alimentacioacuten asiacute como la corriente estaacutetica

Informacioacuten de la corriente maacutexima disipable por el dispositivo dependiendo de las

condiciones de temperatura ambiente y refrigeracioacuten antes suministradas Tambieacuten

informaraacute las sentildeales elementos de loacutegica entradas y salidas que maacutes consumen (la

cantidad se define en las preferencias)

F23 Uso de la liacutenea de comando Xpwr

La herramienta de liacutenea de comandos Xpwr es uacutetil a la hora de sistematizar medidas

repetitivas con procesos por lotes El ejecutable estaacute en la carpeta de instalacioacuten de

Xilinx Ejecutando xprw - h se obtiene la lista de comandos (Figura F2) Un ejemplo

de liacutenea de comando utilizado en estaacute tesis es

xpwr my_designncd my_designpcf -v -a -s my_designvcd -o reportpwr

320

Apeacutendice F Uso de la herramienta XPOWER

Comando

-v[-a]

-1 ltlimitgt

-x ltuserdatagt

-wx ltuserdatagt

-s ltsimdatagt

-tb ltnumgt [unit]

-o ltreportfilegt

^t lttclscriptgt

Accioacuten

Modo verboso [-a] avanzado

Nuacutemero maacuteximo de lineas en el reporte

Lectura de un fichero XML previamente guardado

Grabar un fichero de movimientos XML

Especifica el fichero de simulacioacuten (fichero VCD)

Unidades en el fichero de reportes basados en tiempo

Las unidades son ps (por defecto) ns fs y us

Especifica el nombre del fichero de salida

Especifica un script TCL para aplicar los settiacutengs

Figura F2 Opciones en la herramienta de linea de comando Xpwr

F3 Scripts para el uso del Xpower

En el punto F22 se mencionoacute la utilizacioacuten de la herramienta de liacutenea de comandos

xpwr y sus opciones de liacutenea de comando No obstante es uacutetil no solo invocar a la

herramienta Xpwr sino tambieacuten a las herramientas de xilinx para generar un modelo

simulable del disentildeo y al simulador (en este caso modelsim) para generar de forma

automaacutetica el (los) fichero(s) VCD Tambieacuten dependiendo del caso se puede llegar a

independizar totalmente del entorno ISE e invocar a las herramientas de

implementacioacuten de las FPGAs desde liacutenea de comandos

F31 Scriacuteptpata la implementacioacuten del disentildeo

La implementacioacuten de un disentildeo implica llamar al sintetizador (en este caso XST

[Xst03]) luego al ngdbuild [Ngd04] que traduce los ficheros EDIF y NGC en un

fichero NGD con el disentildeo Posteriormente el map [map04] traduce el NGD en

componentes especiacuteficos del dispositivo Mas tarde la herramienta par [Par04] realiza

el emplazado y rutado La herramienta trce [Trc04] realiza un anaacutelisis estaacutetico de

tiempos generando un fichero con extensioacuten twr y por uacuteltimo bitgen [Bit04] genera el

fichero bit para programar el dispositivo

El script de la figura F3 espera como paraacutemetros el nombre del disentildeo asiacute como el

dispositivo donde se ha de implementar Por ejemplo

implement my_design xc2vl500-fg676-6

321

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Script

x s t

1implement (1 es

- i n t s t y l e i s e - i f r ngdbuild - i n t s t y l e ise map - i n t s t y l e i s e -p lncd lngd lpcf p a r

t r c e -w - i n t s t y l e i s e -- i n t s t y l e i s e -e

bi tgen - i n t s t y l e i s e -

nombre disentildeo

i projnav1 -dd l_ngo -2 -cm aacuterea

ol s td - t 1 1 3 - 1 3 -xml 1 f lut lncd

2 dispositivo)

x s t

i

-k

-ofn -p 2 4 - c

lsyr lngc 1 100 - t x

ncd lncd lpcf 1 ncd --o ltwr

ngd off -o

lpcpound

Figura F3 Script de implementacioacuten de un disentildeo

F32 Script pasa la simulacioacuten y generacioacuten del fichero VCD

Para realizar la simulacioacuten post place amp route primero se debe generar el fichero de

simulacioacuten con la herramienta netgen |Net04] (en antiguas versiones eran 3

herramientas separadas ngd2ver ngd2vbdly ngdannoacute) El modelo de simulacioacuten generado

puede ser VHDL o Verilog y adicionalmente esta herramienta genera un fichero SDF

(Standard Deay Formaiacute) necesario en la simulacioacuten place amp route Desde el punto de vista

teoacuterico da lo mismo simular el modelo VHDL o Verilog sin embargo se han

encontrado diferencias en los resultados en las uacuteltimas versiones del software El

ejemplo de la figura F4 genera el modelo de simulacioacuten Verilog

Script 2 gen_vcd (1 es el nombre disentildeo)

netgen - i n t s t y l e i s e - s 4 -pcf lpcf -ngm lngm -w -ofmt ve r i log -sim lncd l_timesimv cmd C vsim s c r ip t_s imdo xpwr lncd lpcf -v -a - s l_lvcd -o l_lpwr -wx l_lxml

xpwr lncd lpcf -v -a - s l_nvcd -o l_npwr -wx l_nxml

Figura F4 Script de simulacioacuten e invocacioacuten a xpwr

Tras esto se debe invocar al simulador con el comando vsim [Mod04] con un fichero

de comandos para el simulador (extensioacuten do) Un ejemplo de script para el simulador

se muestra en la Figura F5 El ejemplo carga primero xxvpackage en VHDL luego el

modelo del disentildeo postplaced route (en verilog la carga del fichero SDF es imphcita en

tanto que en VHDL se debe hacer expliacutecitamente) y por uacuteltimo se carga un fichero

322

Apeacutendice F Uso de la herramienta XPOWER

testbench en VHDL El comando vsim carga la simulacioacuten con precisioacuten de 1 ps El

archivo de testbench del ejemplo lee ficheros de textos que estimulan el circuito por ello

a continuacioacuten se hace una llamada a la liacutenea de comando [cmd) para copiar un fichero

de texto al directorio actual Luego se define el fichero VCD y se agregan las sentildeales

para luego simular hasta el final El ejemplo continua reiniciando la simulacioacuten y

ejecutando nuevamente el ciclo con otro grupo de valores

Una vez ejecutado el simulador y generado el (los) fichero(s) VCD se puede invocar el

xpwr con las opciones descritas en F23

Scriacutept3 scriacutept_simdo (escriacuteptpara modelsim)

vcom

vlog

vlog

vcom

vsim

exec

ved

ved lt

run

-93 -explicit mipack vhd

CXilinxverilogsrcglblv

design_timesimv

-93 -explicit mi_test vhd

i

-t Ips +maxdelays -L simprims_ver -lib work testbench glbl

cmd c copy Wtestl

file design_lvcd

add testbenchuut

-all

restart -f

exec

ved

ved

run

quit

cmd c copy test2

file design_2vcd

add testbenchuut

-all

-forceacute

txt test

txt test

txt

txt

Figura F5 Script para el simulador

F4 Cometarios y conclusiones

La herramienta de estimacioacuten de consumo Xpower brinda una interesante viacutea para la

estimacioacuten del consumo no obstante desde el punto de vista praacutectico en disentildeos

industriales plantea varios inconvenientes Para un disentildeo normal del orden de milloacuten

de puertas simulado por algunos milisegundos de tiempo real puede requerir tiempos

de simulacioacuten del orden de horas y ficheros VCDs de decenas de Gigabytes Antildeadido a

esto realizar un testbench de un circuito complejo lo suficientemente representativo de

323

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

la actividad media puede ser una tarea excesivamente complicada En esta liacutenea existen

trabajos para poder predecir la actividad de circuitos complejos [Tod04] y de este

modo evitarse el tiempo de disentildeo de testbenches significativos las horas de simulacioacuten

y los Gigabytes de datos intermedios

Otro aspecto a destacar de esta herramienta es que es una herramienta en constante

evolucioacuten y se puede observar que los datos informados por la herramienta sufren

importantes cambios de versioacuten a versioacuten En esta tesis se ha evaluado la herramienta

desde la versioacuten 41 del ISE [Xpo02] con modelsim 56 [ModOl] hasta la 62 [Xpo04]

con modelsim 58 [Mod04] pasando por todas las intermedias y midiendo datos

concretamente con la que acompantildea a la versioacuten 52 [Xpo03a] (modelsim 57

|Mod03]) observaacutendose importantes diferencias en los resultados

Maacutes aun en la uacuteltima versioacuten del software evaluada [Xpo04] se han encontrado

diferencias en los resultados generando modelos post place ltiquestr route en VHDL o

Verilog

A lo largo de esta tesis se presentaron algunos resultados comparativos con

mediciones realizadas con los arreglos experimentales de los apeacutendices B y C

utilizando los mismos valores de excitacioacuten con resultados bastante dispares Una

evaluacioacuten definitiva necesita de maacutes casos de estudio

324

Apeacutendice F Uso de la herramienta XPOWER

F5 Referencias del apeacutendice

[Bit04] Xilinx inc Development System Reference Guide veroacuteX Chapter 15 BitGen January 2004 available at wwwxilinxcom

[Ise03] Xilinx inc ISE Integrated Development Environment ver 61 Whats New in Xilinx ISE 61i 2003 available at wwwxilinxcom

[Map04] Xilinx inc Development System Reference Guide ver6X Chapter 8 MAP January 2004 available at wwwxilinxcom

[Mod02] Model Technologies ModelSimreg SE Users Manual Versioacuten 56e October 2002 available at wwwmodelcom

[Mod03a] Model Technologies ModelSimreg SE Users Manual Versioacuten 57d May 2003 available at wwwmodelcom

[Mod03b] Model Technologies ModelSim SE Users Manual Ver57d chapt 15 -Valueacute Change Dump (VCD) Files May 03 available at wwwmodelcom

[Mod04] Model Technologies ModelSimreg SE Users Manual Versioacuten 58c March 2004 available at wwwmodelcom

[Net04] Xilinx inc Development System Reference Guide veroacuteX Chapter 23 NetGen January 2004 available atwwwxilinxcom

[Ngd04] Xilinx inc Development System Reference Guide ver6X Chapter 6 NGDBuild January 2004 available atwwwxilinxcom

[Par04] Xilinx inc Development System Reference Guide ver6X Chapter 10 PAR January 2004 available at wwwxilinxcom

[Tod04] E Todorovich E Boemo F Cardells J Valls Power Analysis and Estimation Tool integrated with XPOWER Tivelfth ACM International Symposium on Field-Programmabk GateArrays (FPGA04) February 2004

[Tra04] Xilinx inc Development System Reference Guide veroacuteX Chapter 13 TRACE January 2004 available atwwwxilinxcom

[Xil03b] Xilinx Inc XST (Xilinx Synthesis Technologies) User Guide 40 distributed with ISE 6X available at wwwxilinxcom June 2003

[Xpo02] Xpower Xpower getting started Releacutease versioacuten 4203Iacute 2002 available at supportxiIinxcom

[Xpo03] Xpower Xpower getting started Releacutease versioacuten 5103i 2003 available at supportxilinxcom

[Xpo04] Xpower Xpower getting started Releacutease versioacuten 6203Iacute 2004 available at supportxilinxcom

325

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

326

  • RESUMEN
  • SUMMARY
  • AGRADECIMIENTOS
  • IacuteNDICE
  • LISTA DE FIGURAS
  • LISTA DE TABLAS
  • LISTA DE ACROacuteNIMOS
  • ANGLICISMOS BARBARISMOS NEOLOGISMOS Y OTROS DEFECTOS
  • CAP 1 INTRODUCCIOacuteN Y MOTIVACIOacuteN
    • 11 Reduccioacuten y estimacioacuten del consumo
    • 12 Marco tecnoloacutegico
    • 13 Seleccioacuten de teacutecnicas de reduccioacuten de consumo
    • 14 Objetivos de esta tesis
    • 15 Organizacioacuten y lectura de esta tesis
    • 16 Referencias del capiacutetulo
      • CAP 2 CONSUMO EN CIRCUITOS CMOS Y SU EFECTO EN FPGAS
        • 21 Consumo en circuitos CMOS
        • 22 Espacio de disentildeo para bajo consumo
        • 23 Temas destacados en el disentildeo para bajo consumo
        • 24 Nivel de proceso y tecnologiacutea
        • 25 Nivel de implementacioacuten
        • 26 nivel de arquitectura y sistema
        • 27 Nivel algoriacutetmico
        • 28 Nivel sistema
        • 29 Otros conceptos en el tratamiento del consumo
        • 210 Desglose del consumo en FPGAs
        • 211 Resumen del capiacutetulo
        • 212 Referencias del capiacutetulo
          • CAP 3 EXPERIMENTOS SOBRE BAJO CONSUMO
            • 31 Experimentos generales
            • 32 Relacioacuten entre velocidad y consumo en FPGAs
            • 33 Conmutacioacuten de los datos de entrada
            • 34 Efecto de la segmentacioacuten en el consumo
            • 35 Observaciones en la disminucioacuten del consumo registrando las entradas y salidas
            • 36 Reduccioacuten del consumo por deshabilitacioacuten de partes inactivas del circuito
            • 37 Conclusiones y recomendaciones a nivel disentildeador
            • 38 Referencias del capiacutetulo
              • CAP 4 REDUCCIOacuteN DE CONSUMO EN MAacuteQUINAS DE ESTADO
                • 41 Estrategias para reduccioacuten de consumo en maacutequinas de estados
                • 42 Experimentos sobre codificacioacuten de maacutequinas de estados en FPGAs
                • 43 Particioacuten de maacutequinas de estado en FPGAs
                • 44 Recomendaciones para la reduccioacuten de consumo en maacutequinas de estado
                • 45 Referencias del capiacutetulo
                  • CAP 5 EXPERIMENTOS SOBRE BLOQUES ARITMEacuteTICOS
                    • 51 Introduccioacuten
                    • 52 Multiplicacioacuten modular
                    • 53 Sumadores de alta velocidad
                    • 54 Algoritmos y arquitecturas para l divisioacuten entera
                    • 55 Algoritmos y arquitecturas para la divisioacuten de nuacutemeros fraccionarios
                    • 56 Conclusiones del capiacutetulo
                    • 57 Referencias del capiacutetulo
                      • CAP 6 CONCLUSIONES Y FUTUROS TRABAJOS
                        • 61 Conclusiones y aportaciones
                        • 62 Trabajos futuros
                        • 63 Publicaciones relacionadas con este trabajo
                        • 64 Reglas empiacutericas para el disentildeo de bajo consumo en FPGAs
                          • APEacuteNDICE A PLACA DE PRUEBA FAMILIA XC4K
                          • APEacuteNDICE B PLACA DE PRUEBA AFX (Virtex)
                          • APEacuteNDICE C PLACA DE PRUEBA PARA VIRTEX II
                          • APEacuteNDICE D TRADUCTOR KISS2VHDL
                          • APEacuteNDICE E PARTICIONADOR DE MAacuteQUINAS DE ESTADO PART_FSM
                          • APEacuteNDICE F UTILIZACIOacuteN DE LA HERRAMIENTA DE ESTIMACIOacuteN DE CONSUMO XPOWER
Page 2: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral

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

uam
Nota

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

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

compleja (tablas Qsel mucho mayores y productos q(i+1)d maacutes complejos)

Valores de base grandes (mayores que 16 K=4) son impracticas en las FPGAs

actuales

bull Representacioacuten del cociente La representacioacuten en base 2k usa un sistema

representacioacuten redundante de diacutegitos con signo para asegurarse que la

determinacioacuten del digito del cociente solo se basa en los algunos de los diacutegitos maacutes

significativos nr y nd del residuo y el divisor respectivamente En un sistema de

representacioacuten no redundante los diacutegitos en base r se representan con exactamente

r diacutegitos cociente 0 1 r En un sistema redundante se utilizan maacutes de r

valores La representacioacuten de los diacutegitos tienen la forma -a - a + 1 -1 0 1

a-1 a es decir un conjunto simeacutetrico y consecutivo de valores enteros con

un diacutegito maacuteximo a Para ser un sistema redundante a debe cumplir la relacioacuten

a gt r2 El grado de redundancia se mide por el factor de redundancia [redundancy

factor) definido como p = a (r-1) En sistema para a = I r 2 | es conocido como

redundante miacutenimo (minimally redundante mientras que con a = r-1 (y por tanto p =

1) es llamado redundante maacuteximo (maximally redundant) Si a gt r- y p gt 1 el

conjunto de diacutegitos es conocido como sobre redundante (pver-redundani) Por

ejemplo para la representacioacuten en base-4 el conjunto de diacutegitos miacutenimo es -2-1

01 2 (a = 2p= 23) el redundante maacuteximo es -3-2 2 3 (a = 3p= 33)

y el sobre redundante es -4-3 3 4 (a = 4 p = 43) Mayores valores de a

conducen a selecciones maacutes simples de cociente (menores valores de nr + nd para

direccionar la tabla Qsel) En esta seccioacuten solo se utiliza RAM distribuida (basada en

LUTs dentro de los slices) para la implementacioacuten de las tablas de seleccioacuten Los

bloques especiacuteficos de RAM (llamados BRAM en Virtex and Virtex II) pueden ser

utilizados para generar las tablas Qsel

Representacioacuten del residuo w(j) Tradicionalmente en tecnologiacuteas VLSI se

utilizan representaciones redundantes tipo carry-save con el objetivo de acelerar la

resta rwltj)-q(iexcl+i)D La utilidad de esta teacutecnica en FPGAs es relativa donde la loacutegica

dedicada de acarreo hace que los sumadores tradicionales tipo ripple-carry sean maacutes

eficientes para pequentildeos y medianos tamantildeos de datos tanto para la suma como

para la resta En esta seccioacuten se analizan sistemas no-redundantes (complemento a

dos) y redundantes carry-save)

210

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

554 Implementaciones combinacionales en FPGAs para nuacutemeros

fraccionarios

En eacutesta seccioacuten se describen los detalles en la implementacioacuten de divisores para

nuacutemeros fraccionarios Primero los algoritmos con y sin restauracioacuten y luego los

algoritmos SRT base-2 -4 -8 -16 con resto en complemento a dos Finalmente se

examina una implementacioacuten original del algoritmo SRT base 2 con resto en formato

carry-save

5541 Algoritmo con restauracioacuten y sin restauracioacuten

La divisioacuten de enteros como se mencionoacute trata fundamentalmente con los algoritmos

con y sin restauracioacuten Ajustar estos algoritmos para operandos fraccionarios es trivial

El arquitectura de divisioacuten con restauracioacuten implementada con el algoritmo

representado en la Figura 517 necesita) celdas restontildeng_division_step Cada una de ellas

necesita un restador de (laquo+l)-bit y un muldplexor 2 a 1 de laquo-bit esto quiere decir que

necesita (raquo+l) slices y un retardo de 2Tbdquoiexcl + nTmax^ + Tbdquot Entonces un divisor de n-

bits con p-bits de precisioacuten tiene un aacuterea y retardo de

Cmpoundnp) = p(Cmt_iquestlaquogt_p(iexcl)) =p(n+V) =pn+p slices

Tmnp) iexclp( TmtjK_laquopn) + T) = 2pTh +ptiTmiexcllx + 2pTsct

El algoritmo sin restauracioacuten implementado en Virtex oacute Virtex II es maacutes eficiente La

celda nonrestontildeng_division_cell se implementa con p (raquo+l)-bits sumador-restador Cada

celda necesita n2+1 slices y tiene un retado de Tbdquoi + Si se requiere el resto

final un sumador condicional (raquo2 slices) seraacute necesario para ajustar el resto cuando

sea negativo Aacuterea y retardo el algoritmo sin restauracioacuten

CbdquoAacuteflp) = pCbdquomr_jltp(n)) + CndtddM =Mlaquo2+iacute)+ fi2 = pn2 +p + n2 suumlces

TbdquoArtp)ampp (rwulepW+Ta^+TcoriacutejtaacuteJd+Tnt = (p+l)Tbdquofplusmnp (tl+ 1)Taiexcllx+(n+)TBtt

5542 Algoritmo SRT base 2 resto complemento a dos

En eacutesta implementacioacuten en base 2 se utiliza para la representacioacuten del residuo el

complemento a la base Esto permite que la tabla Qsel sea trivial (de hecho no existe)

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

ya que se puede utilizar los dos bits de mayor peso para determinar la operacioacuten a

realizar (Tabla 511)

W(nn-1) =

srn(l0)

0 0

01

10

11

Valor Residuo

0 lt r lt 12

12 lt r lt 1

-1 lt r lt -12

-12 lt r lt 0

Operacioacuten a

Realizar

Nada

Restar Divisor

Sumar Divisor

Nada

Diacutegito

resultado Q(i)

0

1

-1

0

Tabla 511 Operaciones a realizar por el SRT en base 2

De este modo se pueden integran Qsel el multiplicador (solo multiplica por 1 0 o -1)

y el restador de la Figura 523 en una uacutenica celda srt_b2_division_step Esta celda ocupa

(raquo+)2 slices (laquo+1 ya que se opera con un bit maacutes de precisioacuten que el tamantildeo de los

operandos) El contenido de un slice de la celda srt_b2_division_step se puede ver en la

figura 54 El valor carry(-l) se carga con la sentildeal srn(0)

srn(1) sm(0) d(iexcl+1) w(i+1)

srn(1) srn(0) d(i) w(i)

carry(i+1)

n_w(i+1)

n_w(i)

carry(i-1)

Figura 524 Arquitectura de la celda srt_r2_division_step para el algoritmo SRT en base 2

212

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La funcioacuten loacutegica a realizar por la LUT (g(i)) es la descrita en la Tabla 512 Para el

primer caso srn = 00 se pasa el operando W directo en el segundo (srn = 01) al

realizar la suma se realiza la operacioacuten W copy D como en la suma normal En el tercer

caso (srn = 10) al realizar la resta con lo que se calcula not(W copy D) ademaacutes en el

carry(-l) se ingresa 1 En el uacuteltimo caso (srn = 11) se debe dejar el operando W

directo pero dado que la entrada carry(l) = srn(0) = 1 la funcioacuten g(i) computa la

operacioacuten not(w) Se puede observar que esto ultimo funciona por un lado la salida de

la puerta XOR calcularaacute not(w) copy 1 = w y por otro la salida carry(y) seraacute siempre uno

dado que el multiplexor de acarreo realizaraacute la funcioacuten not(not(w))w+not(w) 1 = 1

El retardo de la celda restoring_division_step seraacute Tm_gtitp_r2IacuteJi) mdash Tkt + (n+l)TmuXy

Ope

rand

o

W D

irec

to

Sum

a

W +

D

si sO d W(j) g(i)

0 0 0 0 iexclOacute

0 0 0 1 -i

0 0 1 0 0

o o i i i

i

Res

ta

W-D

Nie

ga W

si sO d W(j) g(i)

I O O O aso I O O I i3f 1 0 1 0 laquo1

1 0 1 1 0

1 1 0 0 1

1 1 0 1 0

1 1 1 0 1

1 1 1 1 0

Tabla 512 Funcioacuten loacutegica implementada en la celda S_R_Nada del algoritmo SRT base 2

La arquitectura del divisor SRT base 2 se puede ver en la Figura 525 Las celdas

srt_r2_division_step realizan la multiplicacioacuten y resta antes descrita y da como salida el

nuevo resto W(i+1) y el digito qreg del cociente (representado con dos bits y

correspondientes a los bits n-1 y n-2 del resto W(i) de entrada)

La celda cond_adder es un sumador condicional de raquo bits que se utiliza en le caso que el

uacuteltimo resto parcial fuese negativo La sentildeal adjust es simplemente el bit de signo del

uacuteltimo resto El aacuterea y retardos son los ya descritos

La celda converter realiza la operacioacuten de transformar los diacutegitos q(i) e -1 0 1 en

binario puro Adicionalmente resta uno en caso que se deba realizar el ajuste en el

resto en aquellos casos que el uacuteltimo resto w(p) hubiese sido negativo Baacutesicamente lo

213

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

que implementa es un restador que suma el complemento maacutes uno Esta suma de uno

se realiza a traveacutes del carry(-l) el que es a su vez se conecta a la sentildeal que informa si ha

habido ajuste adjust)

El aacuterea necesaria esp2 slices y el tiempo es similar que el de un sumadorrestador La

funcioacuten loacutegica implementada por cada LUT es not(q(i)(0) copy q(i)(l)) la sentildeal que debe

entrar en el muxcy es q(l)(0)

01 W(0)(n0) = 0 ampX OampD

i_t q(-D

Q(0p)

pound altn w _ d

y division_step ^ n w

W(1)(n-1n-2) |w(1)(n0)

iacutel W(1)(n-10)amp0

pound 5fn w bdquo d

y division_step 9 n w

~|w(2)(n0)

W(p-1)(n-1n-2) W(p-1)(n-10)amp0 iacutel pound

5tn w bdquo d y division_step q n w

W(p)(n)

adjust

A W(p)(n0)p

(m+1 )-biexclt cond_adder

1 r(p)

Figura 525 Esquema para el divisor SRT base 2

El aacuterea total corresponde ap celdas srt_r2_divisioti_step (pound(laquo+1)2 slices) un sumador

condicional Qi2) y una celda ajuste (p2) El camino criacutetico pasa por los p

srt_r2_divmon_step y por el condiriacuteonal_adder siendo similar al divisor sin restauracioacuten

214

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La diferencia es que los tiempos de conexioacuten son maacutes lentos productos del mayor fan-

out de las conexiones

C[np) =p(n+1)iexcl2 + n 2 + p 2 = (pn+n+2p)2 slices

T(tip) =pTbdquo +ptmmnm + tiexcllaquo + max(p+nJrV)tauxv + n+V)tmaXy

Un aspecto interesante en esta implementacioacuten es la potencial reduccioacuten consumo

debido a la menor actividad ya que en promedio el 50 de las veces no se realiza ni

suma ni resta

5543 Algoritmo SRT base 4 resto complemento a dos

En eacutesta implementacioacuten en base 4 se utiliza para la representacioacuten del residuo el

complemento a la base La tabla Qsel utiliza 5 bits para determinar el cociente en el

rango -3-2-1 0 1 2 3 (seguacuten PD-plot [ParOO]) Para codificar el cociente se

utilizan 3 bits en formato signo-valor absoluto (SVA) El primer bit del cociente (el

signo) s_r_n(2) se determina por el primer bit del resto W(n+2) y se utiliza la loacutegica

invertida (1 positivo 0 negativo) El modulo del cociente se obtiene en funcioacuten de los

siguientes 3 bits del resto W(n+ln-l) a excepcioacuten del caso 011 donde se consulta el

bit n-1 del dividendo para decidir El cociente se codifica seguacuten lo expresado en la

Tabla 513

Bits del Resto

W(n+2n-l)-d(n-l)

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1 - 0

0 0 1 1 - 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

Qi binario

1 0 0

1 0 1

1 1 0

1 1 0

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

Qi decimal

0

1

2

2

3

3

3

3

3

Tabla 513 Seleccioacuten de

Bits del Resto

W(n+ln-l)-d(n-l)

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1 - 0

1 0 1 1 - 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

Qi binario

0 0 0

0 0 1

0 1 0

0 1 0

0 1 1

0 1 1

0 1 1

0 1 1

0 1 1

Qi decimal

-0

-1

-2

-2

-3

-3

-3

-3

-3

diacutegito Qi en el SRT en base 4

215

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Para la multiplicacioacuten se utiliza las puertas mul_and que acompantildean a cada LUT para

llevar acabo la multiplicacioacuten eficiente por dos bits Esto permite realizar la

multiplicacioacuten praacutecticamente con el mismo costo en aacuterea que un multiplexor 2-1 de n

bits Requiere n2 + 1 slices para multiplicar un natural binario de n nits por otro de 2

bits El retardo es similar al de un sumador de raquo+2 bits es decir Tmbdquomu mdash tki +

(n+1)tgt wux-g + tm i T txoiZ

carry(i)

carry(i-1)

Figura 526 Celda para el caacutelculo de x(n0) x srn(l0)

raquo out(iexcl)

El esquema del divisor SRT base 4 se puede ver en la Figura 528 mientras que la

celda srt_r4_division_step se muestra en la Figura 527 La celda srt_division_step_r4

necesita 3 LUTs para la funcioacuten Qsel es decir 2 slices el multiplicador (laquo+2)2 slicer y

el sumador condicional (raquo+2)2 slices Con lo que el costo total Ceacuteiexcl^_itiexclgt_rf= n+4 slices

w(n+20) d(n+20) w(n+2n-1)

i_ Qsel

q(2)laquo-q(Dlaquo-q(tgt)lt- n+2 X 2 bits multiplier

q(2) = sign

w_q(n+40)

w_q(n+20) plusmn w_q(n+20) X

iacute n+2 bits adder substractor

T Figura 527 Celda Division_step_r4 para el divisor SRT base 4 con resto en complemento a dos

216

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

El retardo estaraacute constituido por tiempo de Qsel maacutes el retardo de la multiplicacioacuten y

el tiempo de ejecucioacuten de la suma_resta Ademaacutes el caacutelculo de Qsel se realiza con un

slke configurado como una funcioacuten de 5 entradas (usando MuxF5) para el bit srn(0)

El bit srn(l) se calcula con una LUT normal mientras que el bit srn(2) -el del signo

no- necesita calcularlo es W(n+2) Luego el retardo es

W(0)(n0) = 00amp X amp 0

Q(0p)

i f w diexclviexclsion_step

n w

i |w(1)(n+20)

W(1)(n0)amp00 pound w division_step

n w | W(2)(n+20)

qq(-p2-1) i W(p2-1)(n0)amp00 pound division_step

n w

W(p2)(n+2)

adjust

|w(p2)(njiquest

remainder

Figura 528 Divisor SRT base 4 con resto en complemento a la base

iquest] (n+1)-bitcond_adder

000amp D

Celda converter

El conversor de diacutegitos en SVA en base 4 de un diacutegito (2 diacutegitos binarios) a binario

complemento a dos se puede mapear eficientemente en la estructura de la FPGA La

Figura 529 muestra el contenido de un slke que implementa la conversioacuten de un digito

217

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

SVA en 2 bits La entrada carry(-1) se alimentaraacute de la sentildeal adjust que sumaraacute uno

cuando no se deba ajustar y cero en caso contrario

El signo de diacutegito SVA ( qqreg(2) ) se ingresa en la entrada complementada del

MUXCY La eficiente implementacioacuten de esta conversioacuten depende de que la sentildeal

qq(i)(2) se haya codificado con loacutegica invertida es decir (0-negativo I-positivo) La

funcioacuten o(2i) = not (qqreg(0)) y o(2i+l) = not (qq(i)(l))

carry(2iexcl+1)

qq(i)(1)

qq(iexcl)(2)

qq(i)(o)

qq(iexcl)(2)

tD- q(2iexcl+1)

3$gt- q(2iexcl)

carry(2i-1)

Figura 529 Contenido del sliacutece perteneciente a la celda converter para el divisor SRT base 4

Justificacioacuten de la eleccioacuten del conjunto de cocientes

Estas son algunas de las ventajas en el conjunto redundante maacuteximo es decir

Qi e -3 3 en vez de miacutenimo redundante Qi e -2 2 en la implementacioacuten en

FPGAs

bull El producto Wq(i) si bien es maacutes simple en el segundo caso solo un multiplexor

2-1 de raquo+2 bits ocupa lo mismo que el multiplicador por 2x(laquo+2) bits El retardo

en el primer caso es Tbdquo contra Tbdquoi + (n+2)TmttXV en el segundo caso

bull Como contrapartida la tabla Qsel es mucho maacutes simple en el caso de utilizar amdash3

La funcioacuten Qsel en la representacioacuten redundante miacutenima usa 5 bits del resto y 4 del

divisor El aacuterea y retardo de Qsel para la representacioacuten redundante miacutenima son 3

218

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

slices y 2Tiut+Tnit respectivamente versus 2 slkes y Tibdquoiexcl para la representacioacuten

redundante maacutexima

raquo La conversioacuten final a binario se puede hacer eficientemente si se utiliza loacutegica

invertida en la representacioacuten del signo de los diacutegitos del cociente

5544 Algoritmo SRT base 8 resto complemento a dos

En la implementacioacuten en base 8 se utiliza para la representacioacuten del residuo el

complemento a la base La tabla Qsel utiliza 9 bits para determinar el cociente en el

rango -7 0 7 (seguacuten PD-plot de la Figura 530) Para codificar el cociente

se utilizan 4 bits en formato signo-valor absoluto (SVA) El primer bit del cociente (el

signo) s_r_n(3) se determina por el primer bit del resto W(n+3) y se utiliza la loacutegica

invertida (1 positivo 0 negativo) El modulo del cociente se obtiene en funcioacuten de los

siguientes 3 bits del resto W(n+3n-2) y tres bits del divisor D(n-2n-4)

Figura 530 PD-Plot para SRT base 8 con cociente en el rango -7 -6 -5 -1 0 1 6 7

219

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

La celda srt_division_step_r8 es similar a la de base 4 (Figura 527) solo que la

multiplicacioacuten es por 3 bits y la tabla Qsel tiene 9 bits de entrada y 4 de salida (signo

maacutes 3 bits) La celda converter para base 8 es similar que en el caso de base 4 solo que

se utilizan 3 LUTs por cada diacutegito Por tanto aacuterea y retardo es

C^jiexcll_ji^_rs= 32raquo + 22 slices

Tmjiiexcliacute_fttp_tsmdash 1-Tiui + (n+3)Tmuxy + 6Tmiexcl

El circuito como en base-2 y base-4 necesita un sumador condicional para el ajuste

del resto (n2+1 slices) y un conversor a complemento a dos ((iquestgt+l)2 slices) Por tanto

el aacuterea y el retardo del SRT base 8 son

Csrt_rs(fJjp) mdash plb(Ciiexclvjttp_A$) + CnmUJJaQl) + Cmpaiacutetr

=p3(32n+22)+gtj2+(p+V)2+l =pn2 + n2 + 476p + 2 slices

Ttrt_rs(Jp) ~p3-(Fltliexcli_ftip_r8(n)+Tbdquot)+TaibdquoJ_piexclJa(tIacute)+Tbdquoet

= (J3p+)Tiu(plusmn(pn3+n+2)Tbdquomv+(J3p+)Tbdquobdquo

5545 Algoritmo SRT base 16 resto complemento a dos

En la implementacioacuten en base 16 se utiliza para la representacioacuten del residuo el

complemento a la base La tabla Qsel utiliza 12 bits para determinar el cociente en el

rango -15 0 15 (seguacuten PD-plot de la Figura 531) Para codificar el cociente

se utilizan 5 bits en formato signo-valor absoluto (SVA) El primer bit del cociente (el

signo) s_jr_n(5) se determina por el primer bit del resto W(n+5) y se utiliza la loacutegica

invertida (1 positivo 0 negativo) El moacutedulo del cociente se obtiene en funcioacuten de los

siguientes 6 bits del resto W(n+2n-4) y cuatro bits del divisor D(n-2n-6) Un total de

268 LUTs dentro de 141 slices son necesarios para la tabla Qsel en Virtex y 221 LUTs

en 181 slices en Virtex II La diferencia entre las familias de FPGA son debido a la

disponibilidad de los multiplexores dedicados muxF7y muxF8 en Virtex II

La celda division_step_r16 es similar al caso base 4 y 8 solo que la multiacuteplicacioacuten es por

4 bits y la tabla Qsel tiene 12 bits de entrada y 5 de salida (signo maacutes 4 bits) La celda

converter es tambieacuten es similar a las anteriores solo que se utilizan 4 LUTs por cada

diacutegito Por tanto Ca^ipyK = 2raquo + 144 slices y TJIacute^^M = 8Tbdquo + (n+4)Tm^ + 6Tk

220

IZZ

_ lt bullstfrt mdash V o i

fl~ st oSwei p ira ajirarooo uoo 91 asijq XHS vivd Iacute O J J - Q iquest Igg BJnSij

miro Huiro n-ioi-o uoovo 10HT0 l-OOH-O lOIOH) WOOrO

n-iro wuo n-oro moro P onro 001ro otero 0001 o

OOOOO

soDOaunoB sanbojq ajqos sojusurcradxg g oirajdir)

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Como en los casos anteriores un sumador condicional de (laquo+1) bits es necesario si se

necesita el resto asiacute como la celda converter para el cociente La implementacioacuten

completa pues tiene

C^_rf iacute(laquo^)=)4(Q^^_rfiacute(raquo))+Cw^^raquo)+C1^ltr =p4(2n+150)+n2+p2+2

=gtlaquo2+raquo2+36gt+2 slices

Trt_r16 np) ~pAr(Taacutehjl^_r16n)+Tbdquo^)+TaiexclbdquoJ_Jddn(n)+Tbdquoi

= ltp+VgtThl+(pnA+n+2)Ta^+ltJ4p+)Tlll

5546 Algoritmo SRT base 2 resto catty-save

En eacutesta implementacioacuten en base 2 se utiliza para la representacioacuten del resto o residuo

en formato carry-save El diagrama de bloques del divisor se puede ver en la Figura

532 Para la implementacioacuten de la celda division_step se analizan dos alternativas

diferentes

La primera aproximacioacuten para la celda division_step es la que se sugiere en la Figura

533 donde se utiliza un sumador de 3 bits para componer la cabecera del resto

parcial y una tabla de look-up para obtener las sentildeales q_Jgtos y q^neg que codifican el

digito seleccionado

En la bibliografiacutea iexclPar00][Erce04] se sugiere la necesidad de sumar los 4 bits de mayor

peso para direccionar la tabla de seleccioacuten de cocientes No obstante en eacutesta tesis se ha

probado empiacutericamente que 3 bits son suficientes Los valores que calcula la tabla Qsel

se pueden ver en la Tabla 514

Por otra parte el multiacuteplexor de la Figura 523a y el sumador carry-save se puede

integrar en una sola LUT utilizando las puertas xorcy y el muxcy Por cuestiones del

rutado interno del slice solo se puede integrar la suma de un diacutegito en cada uno de

ellos En siacutentesis la celda tiene un aacuterea y retardo de

Cbdquon_t_fuiiquest mdash n + 4 slices

TalLfs^id = 3Tlut + 2gtTmuxf + 2Tbdquot + 2Txor

222

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

Como en las implementaciones descritas anteriormente es necesario agregar un

sumador condicional para el ajuste del resto y un conversor de diacutegitos con signo

magnitud a complemento a dos Con esto la primera versioacuten del divisor SRT con

carry-save (usando un sumador) tendraacute un aacuterea y retardo de

Ciexclrt_fjiljlp) ~pCctll_fs1-Sf CamJ_1JJer+ Cnnvcrtcr -ptl + Ap + fi2 + 1 + raquo 2 + l

= (p+iacute)n +4p+2 slices

Tirt_r_fdaacutenp) ~p(Tlaquo_ai + Tbdquoe) + 2Tlaquo+ Tajj+ Tabdquoj_jjj

= (3gt+2)Tbdquo+ (2n+3p+2) + 2jampTlaquor+(3p+2)

Q(0p)

(p+1)-bit subtracter

X

i i q_pos u v

diexclvision_step q_neg u- V

^ ^ q_pos u v

diexclvision_step q_neg u- v

i i q_pos u v

division_step q_neg u- v

EZI (m+1)-bitadder

r(p)(n0) I r(p)(n) I _

adjust ^ (m)-bit cond_adder

T remainder

Figura 532 Arquitectura del SRT en base 2 con el resto en formato carry-save

223

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

u(n+1n-1) v(n+1n-1)

q_pos laquo

q_negltc

u1

0

1 (tn+1)-bitCSA

0

1

T Figura 533 Celda baacutesica del divisor SRT en base 2 con resto en formato cany-save

Valor

U(n+ln-n + V(bdquo+in-iacute)

000

001

010

011

100

101

110

111

Min valor

u+v

000xxx

001xxx

010xxx

011xxx

100xxx

101xxx

110xxx

l l lxx x

Max valor

u+v

001xxx

010xxx

011xxx

100xxx

101xxx

110xxx

l l lxx x

000xxx

Min decimal

0

y2

1

1 Vi

-2

- 1

-1

-Va

Max decimal

yraquo

i

1 Vi

-2

-1 Vi

-1

-Vi

0

Diacutegito elegido

1(10)

1(10)

1(10)

-1 (01)

-1 (01)

-1 (01)

-1 (01)

0(00)

Tabla 514 Tabla Qsel para el SRT base 2 con cany-save

224

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

J gt - gt V(m)

gt u(3)

E gt - gt V(2)

gt u(2)

pound gt gt V(1)

gt u(1)

gt v(0)

Figura 534 Implementacioacuten en FPGA de la celda baacutesica del divisor SRT en base 2 con resto en formato carty-save

La segunda versioacuten optimiza la seleccioacuten del diacutegito Q(i) remplazando la suma y la

seleccioacuten de 3 bits por una tabla de look-up (Figura 535) Dado que como se

mencionoacute anteriormente solo bastan sumar 3 bits de u y v la tabla para q_pos y q_neg

solo seraacute de 6 bits esto se puede implementar con 8 LUTS (4 slices) usando ademaacutes los

multiplexores muxF5 y muxF6 Esto proporciona un aacuterea y retardo para la celda

cell_cs_lut aacutet

Cttn_ajut = n + 4 slices

Tctttjsjut 21ttt + Imuxoacute + iacuteitit + lxor~ ~gtlkt + Tbdquoi + l^iacutexor

Por tanto el SRT con resto en carry-save y Qsel implementado completamente con

LUTS (sri_cs_L) tiene un costo en aacuterea y tiempo de

Cuutj (raquogt) mdashp-Cau+ Cabdquo_1jdtr+ Cabdquomiacuteir= (p+l)n + 4 ^ + 1 slices

_

u(n+1n-1) v(n-1n-1)

Qsel Table

q_pos-laquoLneg-

b(mj = 0-u(m-1)-v(m-1) bull

q_pos

v(1)-

q_pos-

V A shy

CUDOS bull

q_neg-b(0)-

LUT 0 1 7 ^ 7 t

LUT 0 1 i ^

LUT

2LUTs

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Tsrt_a_L(ttp) mdashp-(Tbdquo+ Tbdquo1) +2rbdquo+ TbdquoJJ+ Tabdquoi_fidd

= (3p+2)n+ (2n+2)Tm^+pTiar+ (2p+2)Tbdquod

Importante el hecho de que tanto Taii_ft_piexclu como Tttii_tsjut son constantes de modo que

el tiempo de computacioacuten depende de la precisioacutenraquo (y nif ngtp) y no solo del ancho

de los datos n

u(nn-2) v(nn-2)

LA -Qsel

(4 Slices)

q_poslaquo-q_neglt-

i 0

1 0

i

b

1 (n+1)-bitCSA

V f u T V

Figura 535 Celda de divisioacuten SRT con resto en carry-save (2da versioacuten)

555 Arquitecturas segmentadas

Para aumentar la velocidad la segmentacioacuten pipelinin^ es una teacutecnica altamente

efectiva sobre todo cuando se trata con lotes grandes de operaciones En esta teacutecnica

cada LD etapas de divisioacuten division_step sucesivas se agrega una etapa de elementos de

almacenamiento (registros de segmentacioacuten) Figura 536 De este modo el camino

criacutetico se reduce y consecuentemente se puede aumentar la frecuencia de operacioacuten

(maacutes detalles de la segmentacioacuten en la seccioacuten 34)

Se han llevado a cabo la segmentacioacuten para los divisores sin restauracioacuten (non-restoriniquest)

SRT base 2 y base 4 con resto en complemento a la base y finalmente SRT con resto

en carry-save Se utiliza la denominacioacuten de LD (Logc Deptfi) para denominar la cantidad

maacutexima de pasos de divisioacuten diviuacuteon_step entre bancos de registros sucesivos Las

celdas division_step para cada implementacioacuten son las descritas en 5441 5442

5443 y 5446 respectivamente

226

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

reg

reg

v v

q(-1)

W(0) = X

i pound

q(-2)

q(-p)

gtreg

division_step 0

I register

| W ( 1 ) ^

division_step 1

I register

| W(2) f

register

q(-p+1) fw(-p+1) |T

division_step pk+1

v v converter

sign(W(-p))

C J )

T adjust

W(-p)

f conditional adder

Q(0p) T

register

mdash gt register

register

remainder

Figura 536 Arquitectura segmentada de un divisor SRT con LD = 1

Para la implementacioacuten de las etapas de registros se utilizan los flip-jlops distribuidos en

los slices Adicionalmente los registros de deskewing pueden ser implementado usando

registros de desplazamientos implementados en LUT llamados SRL16 (Shift Registers

in LUT) Los registros de desplazamiento basados en tablas de look-up permiten

comprimir 16 shifi-registers en una sola LUT La teacutecnica de pipelining tiene pues un bajo

impacto en aacuterea dados los registros distribuidos dentro de los slices y de las

caracteriacutesticas de SRL16 de las LUTs Ademaacutes como fue descrito anteriormente la

227

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

segmentacioacuten tiene un fuerte impacto en la reduccioacuten del consumo por la eliminacioacuten

de las transiciones espurias (glitches)

556 Circuitos Secuenciales

Para la reduccioacuten del aacuterea la principal teacutecnica es secuencializar (al menos

parcialmente) la ejecucioacuten del algoritmo de divisioacuten La arquitectura general agrega

una maacutequina de estados que controla la ruta de datos compuesta por g etapas de

divisioacuten consecutivas y los registros correspondientes para almacenar los valores

intermedios (Figura 537)

-gt Q_en n r p n State I = P r-en

W(n1)amp00laquo4l0-degampX(n10)

_ _ r t l 7 D(n-10)

i div_en I

_Jt I L l-gt div_en m u x - s

Machine -gt rna_en -gt fr_en

- gt end

sh en

iquest Partial remainder

q(0)

r pr-bit Shift Register

I b Divider Reg

00amp D

- division_step(0) m fc_f

q(9-1) diexclvision_step(g-1)

rna en-

Remainder not_adj

Q en mdashgt

converter

I adjust = Wp(n+1)

n_T | Q(P-10)

cond_adder

E ^uotient Register f r - e n ^Final remainder reg

| R(n-10)

Figura 537 Arquitectura secuencial del algoritmo de divisioacuten SRT

En cada ciclo de reloj el circuito genera gr bits mientras un ciclo extra es necesario

para calcular el resto Con esto se necesitan pl(gr) ciclos para el caacutelculo completo con

228

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

un ciclo extra para un eventual ajuste del resto El valor p se refiere a la precisioacuten en

bits requerida g a la cantidad de etapas de divisioacuten division_step y r a la base del divisor

Las Iacutemplementaciones secuenciales de estos circuitos son atractivas tambieacuten desde el

punto de vista del consumo La menor profundidad loacutegica producida por los registros

a cada ciclo de reloj reduce las transiciones espurias aunque como contrapartida existe

un mayor consumo de sincronizacioacuten debido a la maacutequina de estados y los registros

intermedios

557 Resultados en aacuterea y velocidad para los divisores para nuacutemeros

fraccionarios

Primero se presentan los resultados respecto al aacuterea y la velocidad para dispositivos

Virtex y Virtex II Si bien el objetivo es la reduccioacuten de consumo la cuidadosa

implementacioacuten de los circuitos ha dado interesantes resultados tanto en aacuterea como en

velocidad

Los circuitos descritos en las secciones 544 545 y 546 han sido implementados en

Virtex (XCV800hq240-6) y en Virtex II (XC2V1000bg575-6) Los circuitos son

descritos en VHDL instanciando cuando es necesario primitivas de bajo nivel como

LUTs muxcy xorcy etc [Xil03c] Se utilizo el entorno de desarrollo Xilinx ISE 61

iexclXil03d] y XST (Xilinx Synthesis Technologiei) [Xil03e] para la siacutentesis La misma

asignacioacuten de patas la opcioacuten de preservar la jerarquiacutea (keep hierarchy) optimizacioacuten

por velocidad y restricciones de tiempo timing constraini) son parte de la estrategia de

disentildeo

La mayor diferencia entre las Iacutemplementaciones en las familias Virtex y Virtex II se

observan en el retardo del rutado En Virtex la relacioacuten loacutegica-rutado en el peor

camino es en promedio (55 45) mientras que en Virtex II dicha relacioacuten es (63

37) Otra diferencia se debe a las conexiones raacutepidas entre slices que conectan los

multiplexores muxF7 y muxF8 presentes en Virtex II que permiten implementar

grandes bloques combinaciones de forma maacutes eficiente Asiacute las tablas de seleccioacuten

(Qsel) grandes presentes en base-8 y base-16 se implementan maacutes raacutepido y requieren

menos aacuterea

229

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

5571 Resultados en implementaciones combinacionales

La Tabla 515 muestra para el dispositivo Virtex el aacuterea (en LUTs y sices) y los retados

(total debido a la loacutegica y debido al rutado) expresados en ns En la cantidad de LUTs

(por ej 2420+12) se expresa por separado las utilizadas para la loacutegica y las que son solo

empleadas para rutar Los circuitos son los descritos en la seccioacuten 544 divisioacuten con

restauracioacuten y sin restauracioacuten rest nonresl) SRT base-2 base-4 base-8 y base-16 con

resto en complemento a dos (srf_r2 srt_r4 srt_r8 srt_16) y finalmente los dos

divisores SRT base-2 con resto representado en carry-save (con sumadores srt_cs_ad y

con tablas de look-up srt_cs_J^iexcl

Non

Res

t R

est

2 Vi

5 Vi

N

P

40 32 24 16 40 32 24 16 40 32 24 16 40 32 24 16

Aacuterea

slices

880 576 336 160

1640 1056 600 272 861 561 325 153 940 624 372 184

LUTs

1719 1119 647 303

3279 2111 1199 543

1720 1120 648 304

1936 1245 741 344

Retardo

total

2517 1806 1187 688

3291 2383 1584 915

2932 1981 1255 692

2437 1878 1257 824

loacutegica

1292 933 625 378

1464 1082 745 442

1243 908 608 370

1147 873 634 398

lutado

1225 873 562 309

1827 1301 838 473

1688 1073 646 322

1290 1005 623 426

oo

OS

VO

Vi

-o Vi

V)

1) Vi

N

P

40 32 24 16 40 32 24 16 40 32 24 16 40 32 24 16

Aacuterea

slices

1112 804 487 243

2258 1666 1137 676

1802 1186 698 338

1779 1183 695 335

LUTs

2420+12 1774+10

1089+7 584+4

4561+44 3358+35 2289+25 1390+16 2172+1 1461+1 901+1 439+1

2072+40 1400+32 856+24 440+16

Retardo

total

2773 2246 1546 839

2457 1911 1384 818

3369 2592 1928 1196 2386 1792 1414 879

loacutegica

1011 830 602

414 955 759 564 366

1321 1050 806 546

1035 811 599 428

rutado

1761 1416 944 425

1502 1152 820 452

2048 1541 1122 652

1350 981 814 451

Tabla 515 Resultados para implementaciones combinacionales en la familia Virtex

Hasta 24 bits el divisor sin restauracioacuten y SRT base-2 muestran los mejores resultados

respecto del retardo para tamantildeo de operandos mayores SRT resto carry-save

(srt_cs_L) SRT base-16 y SRT base-4 son las mejores opciones Respecto del aacuterea

SRT base-2 y non-restoring son siempre las mejores alternativas Por el contrario la

divisioacuten por restauracioacuten y SRT base-16 poseen las peores caracteriacutesticas Los mejores

resultados en aacuterea x retardo (sltce x ns) lo poseen SRT base-2 hasta 24 bits y SRT

base-4 para operandos de mayor tamantildeo

230

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La Tabla 516 muestra los resultados para la familia Virtex II Los circuitos

implementados son los mismos que se han descrito anteriormente Se han quitado los

valores correspondientes a restoring y srt_cs_ad dado sus pobres resultados La

arquitectura propuesta en la seccioacuten 5446 es decir SRT con resto representado en

carry-save (srt_cs_L) posee la mejor performance seguido por SRT base 16 (srt_r16) La

mejora en el retardo respecto de la divisioacuten sin restauracioacuten es de hasta un 425

Respecto del aacuterea como en Virtex SRT base-2 y non-restoring son los que menos

recursos necesitan Los mejores resultados en la meacutetrica aacuterea x retardo (siquestce x ns) lo

posee SRT base-4

srt_

r8

CO

3 3 vgt

N P

56 48 40 32 24 16 56 48 40 32 24 16 56 48 40 32 24 16

Aacuterea

slices

2508 1916 1399 1026 652 334

4237 3429 2685 2004 1388 834

3467 2545 1802 1186 698 338

LUTs

4408+1 3324+1 2384+1 1744+1 1068+1 536+1

6469+196 5147+168 3953+140 2887+112

1949+84 1139+56 3802+56 2874+48 2074+40 1402+32 858+24 442+16

Delay total

2669 1902 1527 1290

898 545

2199 1739 1443 1096 797 530

1748 1520 1228 997 748 504

logic 1459 1221 951 771 530 330

1200 995 785 627 445 289

1041 925 746 626 456 320

route

1210 681 576 519 368 215 999 745 658 470 351 241 707 595 482 371 292 184

Non

-Res

tori

ng

tiacute CO

5 (O

N

P

56 48 40 32 24 16 56 48 40 32 24 16 56 48 40 32 24 16

Aacuterea

slices

1680 1248

880 576 336 160

1653 1225 861 561 325 153

3417 2545

921 609 361 177

LUTs

3303 2447 1719 1119 647 303

3306+2 2448+2 1720+2 1120+2 648+2

304 3498+1 2614+1 1858+1 1230+1 730+1 358+1

Delay

total

3040 2449 1755 1232 824 501

2947 2358 1788 1314 891 475

2316 1943 1506 1144

825 498

logic

2052 1573 1202 854 564 331

2013 1590 1190 845 548 327

1601 1285 1012 760 539 334

route

988 876 552 379 260 170 935 768 598 469 343 148 715 659 495 383 286 164

Tabla 516 Resultados para implementaciones combinacionales en la familia Virtex II

El retardo total en funcioacuten del tamantildeo de los datos en Virtex se graacutefica en la Figura

538 en tanto la Figura 539 hace lo propio con Virtex II Finalmente la Figura 540

representa el aacuterea en slices en funcioacuten del tamantildeo de los operandos para el dispositivo

Virtex II Cabe aclarar que el aacuterea en los dispositivos Virtex es praacutecticamente el mismo

que en Virtex II

231

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

mdashmdash rest mdashbullmdash nr -xmdash srt_r4 -5Kmdash srt_r8

mdashimdashsrt_cs_y1 mdashmdash srt_cs_l

srt_r2

--srt_r16

16 24 32 40

Figura 538 Retardo de los divisores en funcioacuten del tamantildeo de datos en Vitex

Figura 539 Retardo de divisores en funcioacuten del tamantildeo de datos en Virtex II

232

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

16 24 32 40 48 56

Figura 540 Aacuterea de los divisores en Virtex y Virtex II

5572 Resultados en implementaciones segmentadas

Los siguientes circuitos fueron segmentados con diferentes granularidades divisioacuten sin

restauracioacuten SRT base-2 SRT base-2 usando SRL SRT base-4 y SRT con resto

representado en carry-save La Tabla 517 muestra el aacuterea expresada en sices la cantidad

de registros (flip-JIops y SRL las LUTs configuradas como shift registers) y el maacuteximo

ancho de banda en MHz para diferentes divisores de 32 bits y diferentes

profundidades loacutegicas LD (la cantidad de pasos de divisioacuten entre bancos de registros

consecutivos) en dispositivos Virtex La Tabla 518 hace lo propio para Virtex II

Las diferentes arquitecturas de divisores muestran resultados similares en cuanto a la

mejora en la velocidad vs el incremento en aacuterea como lo muestra la Figura 541 para

los dispositivos Virtex II

La divisioacuten SRT en base-4 exhibe los mejores resultados en ambas familias SRT con

resto en carry-save muestra muy pobres resultados tanto en aacuterea como en velocidad en

tanto la divisioacuten sin restauracioacuten reporta valores muy buenos Una arquitectura con maacutexima

segmentacioacuten (LD = 1) acelera el sistema hasta en maacutes de 20 veces respecto de una

implementacioacuten totalmente combinacional (LD = 32) con un incremento en el aacuterea menor

a tres veces

233

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

rrgt

i

2

3

4

5

6

7

8

11

12

16

32

C

33

16

11

8

7

6

5

4 3

3

2

1

Non-Restoring slices

1968

1256

1066

943

905

866

822

779

738

740

697

656

F F

2705

1328

933

688

617

538

454

368

289

292

208

128

Mhz

1017

559

495

345

334

253

225

200

156

144

108

56

SRT radix 2 SRL slices

1747

1169

1012

915

888

858

825

786

725

728

675

625

FF

2274

1152

835

641

583

521

455

385 321

327

224

128

srl

88

52

48

40

40

36

28

32

-

-

-

-

Mhz

1117

538

496

343

325

264

239

202

147

136

102

52

SRT radix 4 slices

-1288

-967

907

-835

-782

736

752

FF

-1265

-632

-508

-372

-315

222

226

srl

-39

-30

-36

-12

-

-

-

-

Mhz

626

-394

-313

-217

-162

106

53

SRT carrysave slices

3356

2257

1939

1745

1689

1629

1566

1508

1456

1462

1355

1251

F F

3298

1647

1164

871

780

685

586

483

386

392

256

147

srl

90

52

48

40

40

36

28

16

-

-

-

Mhz

791

483

431

337

307

284

249

200

168

154

112

59

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

Tn

i

2

3

4

5

6

7

8

11

12

16

32

C

33

16

11

8

7

6

5

4

3

3

2

1

Non-Restoring

slices

2000

1286

1067

943

908

869

827

779

738

748

697

656

F F

2705

1328

933

688

617

538

454

368

289

292

208

128

Mhz

1828

940

798

554

501

421

362

301

239

221

159

80

SRT radix-2

slices

1720

1171

1014

916

891

861

828

788

757

763

722

756

FF

2244

1152

835

641

583

521

455

385

321

327

255

353

srl

90

56

48

48

40

36

28

32

~

-

-

-

Mhz

1822

857

773

514

508

436

374

288

240

223

159

84

SRT radix-4

slices

-

1305

-

988

-

919

-

849

-

751

768

849

FF

-

1265

-

631

-

508

-

414

-

222

226

414

srl

-

39

-

30

-

36

-

12

-

-

-

Mhz

-

1185

-

505

-

474

-

301

-

233

171

89

SRT carry-save

slices

3356

2257

1939

1745

1689

1629

1566

1508

1456

1462

1355

1251

F F

3298

1647

1164

871

780

685

586

483

386

392

256

147

srl

90

52

48

40

40

36

28

16

Mhz

1195

698

710

480

507

530

419

320

271

283

191

100

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

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

140-r

120-

100-

^ SOshyIS c gt 60 -ro agt O

4 0 -

20 -

0 -

(mdashDmdash delay mdashbullmdash aacuterea) nonrest (mdashomdash delay mdashbullmdash aacuterea) srt_r2 (mdashamdashdelay mdashbullmdash aacuterea) srt_r4 (mdashDmdash delay mdashbullmdasharea)srt_

o i

12 I

16 T -

20 - 1 -

24 -rmdash 28

mdash r 32

3200

-2400

-1600

800

Figura 541 Aacuterea y retardo en funcioacuten de la profundidad loacutegica para divisores de 32 bits en Virtex II

5573 Resultados en implementaciones secuenciales

La Tabla 519 muestra los resultados para las implementaciones iterativas en Virtex en

tanto que la Tabla 520 hace lo propio para Virtex II Se muestran la cantidad de bits

calculados en cada ciclo de reloj (G) la cantidad total de ciclos utilizados (C) el aacuterea

en slices y la cantidad de registros utilizados Luego el periodo y la maacutexima frecuencia

de funcionamiento Finalmente la latencia en ns (L = periodo de reloj x cantidad de

ciclos de reloj necesarios) y el aacuterea x latencia (AxL) en ns x slices

Cuando G crece la latencia decrece a expensa de mayor aacuterea La mejor relacioacuten aacuterea X

latencia se obtiene para G = 2 Los mejores resultados en cuanto a la latencia los

ofrece SRT base-4 en ambas familias En la Figura 542 se muestra los resultados de

latencia para los diferentes circuitos secuenciales en tanto que en la Figura 543 se

muestra la relacioacuten aacuterea x latencia

235

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

o Z

ti oo

oo

ti r-gt oo H

3 oo

G

1 2

4

8

1

2

4

8

2

4

8

4

8

1

2

4

8

C

32

16

8

4

32

16

8

4

16

8

4

8

4

32

16

8

4

slices

113

124

155

219

135

139

169

229

134

169

240

336

603

179

210

282

426

FF

203

202

200

196

240

236

236

236

221

221

222

255

294

269

267

267

267

P(ns)

89 137

238

449

80

134

241

479

127

219

412

230

419

119

177 299

525

F(MHz)

1120

728

421

223

1246

745

415

209

788

457

243

435

239

838

566

334

190

L(ns)

2857

2198

1902

1796

2569

2148

1930

1917

2029

1752

1646

1839

1675

3820

2826

2393

2102

AxL

32280

27258

29480

39331

34677

29864

32612

43902

27192

29607

39504

61786

100974

68375

59338

67481

89538

Tabla 519 Resultados implementaciones iterativas en Virtex

w

5 o Z

1 oo

OO

OO H

oo

G

1

2

4

8

1

2

4

8

2

4

8

4

8

1

2

4

8

C

32

16

8

4

32

16

8

4

16

8

4

8

4

32

16

8

4

slices

113

124

155

219

135

139

169

229

134

169

240

336

603

179

210

282

426

FF

203

202

200

196

240

236

236

236

221

221

222

255

294

269

267

267

267

P(ns)

89

137

238

449

80

134

241

479

127

219

412

230

419

119

177

299

525

F(MHz)

1120

728

421

223

1246

745

415

209

788

457

243

435

239

838

566

334

190

L(ns)

2857

2198

1902

1796

2569

2148

1930

1917

2029

1752

1646

1839

1675

3820

2826

2393

2102

AxL

32280

27258

29480

39331

34677

29864

32612

43902

27192

29607

39504

61786

100974

68375

59338

67481

89538

Tabla 520 Resultados implementaciones iterativas en Virtex II

236

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

Figura 542 Latencia para los diferentes circuitos secuenciales en Virtex II

800

600

400

200

Latencia x Aacuterea (ns x slices)

v - CM bull CO

3 3 3 3 c i c i c i c i gt gt gt gt

T3 TJ T3 O

deg1 CM i bulle

vgt

deg] CM ^1 bullc co

deg] CM i bullK CO

degi CM i bulle (0

deg1 bull

bulldegl bulle co

deg1 bull

bulldegl tiacute (0

deg1 bull

bulll t CO

deg1 CO

I

srt

deg1 en

1

srt

T - CM 00

degi deg1 deg1 deg1 co co co co

degl degl degl degl bull e t t - e co ltgt co co

Figura 543 Relacioacuten aacuterea x latencia en circuitos secuenciales en Virtex II

5574 Comparacioacuten de resultados en aacuterea y velocidad

Se comparan en esta seccioacuten los resultados obtenidos respecto de recientes

contribuciones asiacute como la relacioacuten de retardo y aacuterea entre las arquitecturas

combinacionales segmentadas y secuenciales

Trabajos previos Diferentes implementaciones de los algoritmos SRT fueron

presentadas recientemente En [Beu02] los multiacuteplicadores dedicados presentes en

237

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Virtex II son utilizados para implementar divisores SRT en base-2 -4 y -8 Se utiliza

para esto un generador descrito en C++ que produce coacutedigo VHDL sintetizable

|Lee03] presenta un SRT base-8 con diacutegitos miacutenimamente redundantes ademaacutes

resultados previos en un SRT base-4 son sentildealados En [Wan03] divisores SRT base

2 4 y 8 son implementados iterativamente totalmente combinacionales y totalmente

segmentados En [Wan03] se utilizan generadores de moacutedulos descritos en JHDL

En la Figura 544 se muestran las implementaciones presentadas en la seccioacuten 544

comparadas con los trabajos anteriores De esta tesis se muestran las

implementaciones combinacionales de SRT base-2 -4 -16 con resto en complemento

a dos (srt_r2 srt_A srt_rG) y el SRT base-2 con resto representado en carry-save

(srt_cs_L) Adicionalmente los resultados de la implementaciones de [Lee03] del SRT

base-4 y base-8 (J_A y iquest_r8) el mejor resultado de [Beu02] un SRT base-8 que utiliza

bloques multiplicadores dedicados de Virtex II muiquestfl8xl8 (b_r) y finalmente la

implementacioacuten combinacional de divisores SRT base-2 y base-4 de 24 bits presentada

en [Wan] (ngt_r2 iigt_r4) completan la figura

^ - ^ ^ s r t j r i -laquomdashsrt_r4 mdash - s r t j 1 6 ~

i mdash-srt_cs_L mdash5Kmdash I_r8 mdashbullmdashI_r4

mdashImdashb_r8 bull w r2 bull w r4

16 24 32 40 48 56 Operand size (bits)

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

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La Figura 545 muestra la relacioacuten velocidad-latencia-aacuterea para los divisores de 32 bits

presentados en esta seccioacuten Se muestran los circuitos combinacionales (array) las

versiones secuenciales sequentiat) y dos de las arquitecturas segmentadas (pipeSKTr2

pipeSKTriacute)

Como es de esperar las implementaciones secuenciales son las que menos aacuterea

requieren mientras que las implementaciones segmentadas son las de menor retardo

con relativamente baja penalidad en aacuterea pero a expensas de un retardo inicial Por

uacuteltimo la latencia miacutenima de las implementaciones combinacionales se logra a

expensas de un alto costo en aacuterea

Figura 545 Relacioacuten retardo - latencia - aacuterea par las diferentes arquitecturas de divisores fraccionarios

239

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

558 Resultados del consumo para divisores de nuacutemeros fraccionarios

El consumo fue medido en un dispositivo Virtex XCV800hq240-6 montada sobre

una tarjeta de prototipo de Xilinx AFX PQ240-100 utilizando el arreglo experimental

y metodologiacutea descritas en el Apeacutendice B Los circuitos son descritos y

implementados tal lo resentildeado en la seccioacuten 547 es decir usando descripcioacuten VHDL

instanciando cuando es necesario primitivas de bajo nivel Se utilizoacute el entorno de

desarrollo Xilinx ISE 61 [Xil03d] y XST (Xilinx Synthesis Technologies) para la siacutentesis

La misma asignacioacuten de patas preservar la jerarquiacutea optimizacioacuten por velocidad y

restricciones de tiempo son parte de la estrategia de disentildeo

Al igual que con la divisioacuten nuacutemeros enteros el consumo fue dividido en consumo

estaacutetico dinaacutemico y off-chip Se han utilizado para la medicioacuten de los circuitos tres

secuencias diferentes avgjog max_tog y min_tog) ingresadas a traveacutes de un generador

de patrones [Tek04b] Las salidas estaacuten conectadas a un analizador loacutegico [Tek04a]

5581 Resultados en circuitos combinacionales

La Figura 547 representa el consumo de potencia expresado en mWMHz para

diferentes secuencias de vectores con divisores de 16 bits en tanto la Figura 547 hace

lo propio para operandos de 32 bits

Para operandos de 16 bits el divisor SRT base-2 muestra los mejores resultados en

promedio un 185 menos que el divisor sin restauracioacuten (non-restoring) y 71

respecto del divisor SRT con resto carry-save

bull Onr i resl Dsrt_r2 Dsrt_r4 iexcl iexcl Msrt_r8 EJsrt_r16 Bsi-Lcs j

Min_tog Maxjog Avg_tog

Figura 546 Consumo dinaacutemico en mWMHz para divisores de 16 bits

240

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

Para el caso de los divisores de 32 bits SRT base-2 y SRT base-4 son las mejores

opciones SRT base-2 mejora hasta un 512 respecto del divisor sin restauracioacuten y

hasta un 78 respecto del divisor SRT con resto carry-save Finalmente se muestra la

relacioacuten aacuterea-retardo-consumo en la Figura 548 Los divisores SRT base-2 (srt_r2)

SRT base-4 (srt_rf) y sin restauracioacuten (raquo) ofrecen la mejores figuras en ATP

Analizando la relacioacuten aacuterea x retardo x consumo se observa al divisor SRT base-2

como la mejor opcioacuten seguida del SRT base-4

I s n r bull rest bull srt_r2 D srt_r4 1 bull s rt_r8 El s rt_r16 bull s rt_cs

Mn_tog Maxjog Avgjog

Figura 547 Consumo dinaacutemico en mWMHz para divisores de 32 bits

Figura 548 Area-Time-Power para divisores de 32 bits con la secuencia ayg_tog

241

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

5582 Resultados en circuitos segmentados

Para medir y cuantificar la reduccioacuten de consumo debido a la segmentacioacuten en los

circuitos divisores se construyeron versiones segmentadas de los circuitos sin

restauracioacuten (laquo) SRT base-2 y base-4 con resto en complemento a dos (srt_2 srt_rf) y

SRT base-2 con resto en carry-save (srt_cs) Los resultados en aacuterea y velocidad se

muestran en la seccioacuten 5472

0 4 8 12 16 20 24 28 32

Figura 549 Consumo dinaacutemico (mWMHz) con respecto a la profundidad loacutegica para los divisores SRT base-2 con resto en complemento a dos

Figura 550 Consumo dinaacutemico (mWMHz) con respecto a la profundidad loacutegica para los diferentes divisores segmentados y la secuencia de prueba avg_tog

242

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La Figura 549 presenta el consumo dinaacutemico con respecto a la profundidad loacutegica

para la implementacioacuten de los divisores SRT base-2 con resto en complemento a dos

En la figura se puede apreciar que la relacioacuten del consumo respecto de la profundidad

loacutegica es similar para los diferentes patrones de entrada decrece praacutecticamente de

forma lineal con la profundidad loacutegica (LD) Cabe destacar la baja influencia de la

corriente de sincronizacioacuten en el consumo dinaacutemico

Cuando maacutes etapas aacuteamppipelim se agregan menos glitches se producen y el consumo se

reduce Esta reduccioacuten en la actividad hace menos importante la arquitectura elegida

de hecho las diferentes arquitecturas de divisores poseen similares figuras en el

consumo respecto de la profundidad loacutegica como lo muestra la Figura 550

0 4 8 12 16 20 24 28 32

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

Una arquitectura totalmente segmentada (LD = 1) ahorra hasta un 93 del consumo

dinaacutemico respeto de una arquitectura totalmente combinacional (LD = 32) Esto es

una arquitectura combinacional consume hasta doce veces maacutes que una arquitectura

totalmente segmentada

Finalmente en la Figura 551 se puede ver el consumo aacuterea y retardo normalizados

respecto de la profundidad loacutegica (LD) Se destaca la linealidad del retardo asiacute como

del consumo respecto de la profundidad loacutegica y el relativamente baja penalidad en

aacuterea de esta teacutecnica

243

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

5583 Resultados en circuitos iterativos

Los resultados en el consumo de las implementaciones iterativas en Virtex se pueden

ver en la Figura 552 La graacutefica muestra el consumo energiacutea promedio para llevar a

cabo una operacioacuten expresado en njoules para divisores de 32 bits Se muestra por

separado el consumo de sincronizacioacuten y el debido a la ruta de datos El consumo

debido a la sincronizacioacuten decrece a medida que G (bits calculados a la vez) crece

principalmente debido a la menor cantidad de ciclos necesarios De manera opuesta el

consumo de la ruta de datos aumenta a medida que crece G debido al aumento de los

glitches El valor oacuteptimo de G desde el punto de vista del consumo es 4 excepto para

SRT con resto en carry-save (srt_cs)

nr_g1 nr_g2 nr_g4 nr_g8

srt_r2_g1 srt_r2_g2 srt_r2_g4 srt_r2_g8

srt_r4_g2 srt_r4_g4 srt_r4_g8

srt_r16_g4 srt_r16_g8

srt_cs_g1 srt_cs_g2 srt_cs_g4 srt_cs_g8

Figura 552 Consumo de energiacutea tanto de sincronizacioacuten como de la ruta de datos para los divisores secuenciales de 32 bits

La divisioacuten sin restauracioacuten con G=4 (nr_g4) muestra los consumos maacutes bajos asiacute

como SRT base-2 con G=4 (srt_r2_g4) y SRT base-4 con G=4 (srt_r4_gf) los que

poseen consumos de energiacutea similares

244

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

Una observacioacuten importante es que el valor de G determina la figura del consumo con

mayor importancia que el algoritmo aplicado En SRT base-2 con G=4 existe un

ahorro del 51 de energiacutea respecto a G=l Por otra parte el ahorro de energiacutea

respecto de las implementaciones combinacionales son muy significativas el circuito

anterior consume un 85 menos que SRT base-2 89 menos que el algoritmo sin

restauracioacuten y 94 respecto al SRT con resto en carry save

5584 Comparaciones arquitecturales en el consumo

La Figura 553 muestra aacuterea retardo y consumo para algunos de los circuitos

divisores de 32 bits implementados en esta seccioacuten Se muestran los circuitos

combinacionales (array) los circuitos segmentados SRT base-2 y base-4 para las todas

profundidades loacutegicas (pipe_SRT2 y pipe_SRT4) y las arquitecturas secueacutenciales

(iterativi)

Figura 553 Aacuterea retardo y consumo (ATP) para diferentes algoritmos divisioacuten y arquitecturas secueacutenciales combinacionales y segmentadas

Las arquitecturas combinacionales poseen la menor latencia a expensa de un mayor

aacuterea y una excesiva disipacioacuten de potencia Las arquitecturas segmentadas (pipemeacute)

ofrecen el mayor caudal de trabajo (fhroughput) con un relativamente bajo incremento

245

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

en aacuterea respecto de la implementacioacuten combinacional y una buena figura de consumo

pero con una latencia inicial muy grande Finalmente las implementaciones

secuenciacuteales tienen un aacuterea mucho menor un retardo que no duplica al de las

arquitecturas secuenciales y un reducido consumo

559 Conclusiones de la divisioacuten de nuacutemeros fraccionarios

En esta seccioacuten se han presentado arquitecturas desarrolladas para la divisioacuten de

nuacutemeros fraccionarios (orientadas a la divisioacuten de mantisas en punto flotante)

analizado el consumo para diferentes formas de implementacioacuten

Los circuitos fueron implementados en VHDL instanciando componentes de bajo

nivel cuando fue necesario Implementaciones completamente combinacionales con

diferentes grados de segmentacioacuten y secuenciales con diferentes granularidades fueron

construidos y medido el consumo

Para implementaciones combinacionales el algoritmo SRT base-2 tiene la mejor figura

en aacuterea retardo y consumo reduciendo este uacuteltimo hasta en un 51 el consumo

respecto del tradicional algoritmo de divisioacuten sin restauracioacuten y un 93 respecto del

SRT base-2 con resto representado en carry-save

Las arquitecturas segmentadas ofrecen caracteriacutesticas importantes para la reduccioacuten de

consumo Las medidas muestran una reduccioacuten de hasta un 93 del consumo

dinaacutemico en una arquitectura totalmente segmentada respecto de una totalmente

combinacional Esta mejora es obtenida con un relativamente pequentildeo impacto en el

aumento de aacuterea

Las implementaciones secuenciales usan menos recursos con una relativamente

pequentildea penalidad en la latencia pero una importante reduccioacuten en el consumo

llegando hasta un 89 respecto a una implementacioacuten totalmente combinacional

Una observacioacuten importante en las implementaciones secuenciales es que la cantidad

de bits calculado por ciclos de reloj (G) es maacutes determinante en el consumo que el

algoritmo utilizado Arquitecturas con G = 4 muestra el mejor consumo y mejor

relacioacuten aacuterea x retardo x consumo en tanto los circuitos con G = 2 optimizan la

relacioacuten aacuterea x retardo Los algoritmos sin-restauracioacuten y SRT base-2 obtienen los

mejores resultados

246

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

56 Conclusiones del Capiacutetulo

En este capiacutetulo se han examinado alternativas a nivel algoriacutetmico para diferentes

bloques aritmeacuteticos Se han analizado la multiplicacioacuten modular la suma de alta

velocidad la divisioacuten entera y por uacuteltimo la divisioacuten de nuacutemeros fraccionarios Se

pueden deducir algunos consejos y conclusiones generales derivados de los

experimentos los que se resumen a continuacioacuten

bull El nivel algoriacutetmico es una interesante fuente de reduccioacuten de consumo en

los ejemplos descritos en esta seccioacuten queda claro que se trata de reducciones

del orden del 50 en el consumo debido a la correcta seleccioacuten de un

algoritmo

bull Las meacutetricas de aacuterea y velocidad no son suficientes para calificar a priori la

calidad del algoritmo respecto del consumo Existen caracteriacutesticas maacutes sutiles

a tener en cuenta como son la capacidad de producir o no movimientos

espurios (glitches) dentro de la ruta de datos

bull Es sencillo encontrar ejemplos que contradicen la regla empiacuterica El circuito

maacutes raacutepido es el que menos consume y tambieacuten el que menos aacuterea menos

consume A la hora de evaluar algoritmos para bloques aritmeacuteticos la cuenta

de transiciones en una simulacioacuten postplace amp route es maacutes efectiva

bull La representacioacuten de los datos usados por el algoritmo asiacute como la

correlacioacuten de datos que se producen dentro de la ruta de datos son muy

relevantes Por ejemplo en la divisioacuten de enteros el algoritmo non-restontildeng

genera alternativamente restos intermedios muy pequentildeos positivos y

negativos los que al ser representados en complemento a dos generan gran

actividad

bull Existe un efecto directo sobre el consumo que poseen la complejidad y la

precisioacuten de los algoritmos Un divisor de 3232 bits consume alrededor de

cuatro veces maacutes que el homologo que divide 1616 bits Esto conduce a la

recomendacioacuten de evitar sobredimensionar la ruta de datos

bull La regularidad y modularidad de los algoritmos son caracteriacutesticas altamente

deseables para la segmentacioacuten y la secuencializacioacuten de los algoritmos dos

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

bull La aplicacioacuten de la segmentacioacuten ofrece importantes reducciones de consumo

cuando se tienen grandes lotes de operaciones a realizar La reduccioacuten

depende del tamantildeo de la ruta de datos y los niveles de segmentacioacuten

Reducciones superiores al 80 son corrientes en esta teacutecnica

bull Las implementaciones secuenciales usan menos recursos con una

relativamente pequentildea penalidad en la latencia Es muy importante la

regularidad del algoritmo para reducir la complejidad de la ruta de datos asiacute

como la maacutequina de estados que la controla Las reducciones de consumo

pueden superar el 80

bull En las implementaciones secuenciales aumenta el consumo de sincronizacioacuten

por ello la secuencializacioacuten oacuteptima (cantidad de etapas por ciclo de reloj)

desde el punto de vista del consumo depende del algoritmo Por ejemplo para

divisores de 32 bits cuatro etapas de caacutelculo por ciclo de reloj ofrecen el

miacutenimo consumo

Ademaacutes producto de los diferentes experimentos llevados a cabo en este capiacutetulo

surgen ciertas conclusiones particulares para cada bloque aritmeacutetico las que se detallan

a continuacioacuten

De la multiplicacioacuten modulan

bull Para calcular e mdashy mod m donde m pertenece a un conjunto conocido de

valores el algoritmo de Montgomery muestra la mejor figura de consumo

(tambieacuten aacuterea y retardo) Si solo se quiere 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)

bull 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)

bull 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

248

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

De la suma cany-skip

bull La teacutecnica de sumador carry skip resulta muy interesante para ser aplicada en

FPGAs para operandos largos Una implementacioacuten cuidadosa para sumadores

con operandos de 1024 bits puede aumentar en un factor de 6 la velocidad con

un incremento del aacuterea menor del 50 respecto a la implementacioacuten por

defecto en FPGA

bull El mecanismo de caacutelculo del acarreo en el algoritmo carry skip genera menos

glitches que el algoritmo ripple carry tradicional producto de una menor

propagacioacuten del acarreo y consecuentemente se puede prever menos consumo

El resultado en el consumo resulto ser peor para el carry skip El error en el

razonamiento parte del hecho de que el caacutelculo del 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 en este ejemplo

De la divisioacuten entera

bull Los resultados en aacuterea y velocidad favorecen claramente a la divisioacuten sin

restauracioacuten (nonrestoring) El algoritmo con restauracioacuten (restoring) ocupa el

doble de aacuterea y necesita alrededor del 50 maacutes de tiempo que el algoritmo sin

restauracioacuten

bull Siacuten embargo los resultados en el consumo son claramente favorables al

algoritmo de divisioacuten con restauracioacuten Este efecto se refuerza cuando el

tamantildeo del divisor es mayor a laquo2 bits siendo n el tamantildeo del dividendo

bull Para la divisioacuten de nuacutemeros de 32 bits el algoritmo sin restauracioacuten consume

ocho veces maacutes que el algoritmo con restauracioacuten en tanto el consumo medio

para la divisioacuten de 32 bits por 16 bits en non-restoring es solo alrededor del 20

superior al algoritmo de divisioacuten con restauracioacuten

Divisioacuten de Nuacutemeros Fraccionarios

bull Para implementaciones combinacionales el algoritmo SRT base-2 tiene la mejor

figura en aacuterea-retardo y consumo reduciendo este uacuteltimo hasta en un 51 el

249

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

consumo respecto del tradicional algoritmo de divisioacuten sin restauracioacuten y un 93

respecto del SRT base-2 con resto representado en carry-save (el maacutes veloz)

bull Las arquitecturas segmentadas ofrecen caracteriacutesticas importantes para la

reduccioacuten de consumo Las medidas muestran una reduccioacuten de hasta un 93

del consumo dinaacutemico en una arquitectura totalmente segmentada respecto de

una totalmente combinacional Esta mejora es obtenida con un relativamente

pequentildeo impacto en el aumento de aacuterea

bull Las implementaciones secuenciales usan menos recursos con una relativamente

pequentildea penalidad en la latencia pero una importante reduccioacuten en el

consumo llegando hasta un 89 respecto a una implementacioacuten totalmente

combinacional

bull Una observacioacuten importante en las implementaciones secuenciales es que la

cantidad de bits calculado por ciclos de reloj (G) es maacutes determinante en el

consumo que el algoritmo utilizado Arquitecturas con G = 4 muestra el mejor

consumo y mejor relacioacuten aacuterea x retardo x consumo en tanto los circuitos con

G = 2 optimizan la relacioacuten aacuterea x retardo Los algoritmos sin-restauracioacuten y

SRT base-2 obtienen los mejores resultados

250

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

57 Referencias de Capiacutetulo

[Beu02] J-L Beauchat and A Tisserand Small Multiplier-Based Multiplication and Divisioacuten Operators 12th Conference on Field Programmable Logic and Applications pp 513-522 September 2002

[Bla99] IBlake GSeroussi and NSmart Elliptic Curves in Cryptography Cambridge Universiiy Press 1999

[Blu99] TBlum and CPaar Montgomery Modular Exponentiacuteatiacuteon and Reconfigurable Hardware 14th IEEE Symposium on Computer Arithmetic Adelaide Australia April 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

(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 Univ Carlos III Nov 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

[Des02] J-P Deschamps Siacutentesis de Circuitos Digitales un enfoque algoriacutetmico Thomson - Paraninfo 2002

[Erc04] Milos D Ercegovac and Tomas Lang Digital arithmetic Morgan Kaufmann cop San Francisco California 2004

[Erc94] M D Ercegovac and T Lang Divisioacuten and Square-Root Algorithms Digit-Recurrence Algorithms and Implementations Kluwer Academic press 1994

[FisOl] VFisher and MDrutarovsky Scalable RSA Processor in Reconfigurable Hardware - a SoC Building Block XVI Conference on Design of Circuits and Integrated Systems Porto pp 327 - 332 November 2001

[FpgOl] FPGA Express page Synopsis inc wwwsynopsyscomproductsfpga fpga_expresshtm 2001

[HauOO] Scott Hauck Member IEEE Matthew M Hosler and Thomas W Fry high-Performance Carry Chains for FPGAs IEEE Transactions on Very Large Scale Integratiacuteon (VLSI) Systems Vol8 No2 April 2000

251

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

[Kan98] V Kantabutra P Corsonello S Pera and M Iachino Efficient Practiacutecal Adder for FPGA Circuit Cellar issue 148 pp42 - 48 October 2002

[Kor02] Israel Koren Computer Arithmetic Algorithms - second edition AJLPeters 2002 f bull

[Lee03] BR Lee and N Burgess Improved Small Multiplier Based Multiacuteplication Squaring and Divisioacuten 11 th Annual IEEE symposium on Field-Programmable Custom Computing Machines (FCCM2003) Napa California April 2003

[Lei95] J Leiten J van Meerbegen and J Jess Analisys and Reductiacuteon of Glitches in Synchronous Networks Proceedings ofEuropean Design and Test Conference EDampTC 1995 pp1461-1464 New York IEEE Press 1995

[ManOl] D Manila M Loacutepez-Vallejo and A Rojo Hardware - Software Co-design of a Cryptographic Application XVI Conference on Design of Circuits and Integrated Systems (DCIS01) Porto Portugal pp 100 - 105 November 2001

[Men96] A Menezes P van Oorschot and S Vanstone A Handbook of Applied Cryptography CRC Press 1996

|Mon95] P Montgomery Modular multiacuteplication without trial divisioacuten Mathematics ofComputation vol44 pp 519 - 521 April 1895

[Mus95] E Mussol and J Cortadella Low-Power Array Multiplier with Transition-Retaining Banders Proceedings Fifth International Workshop on Power and Timing Modeling Optimi^ation and Simulation (PATMOS95) pp 227-235 Oldenburg October 1995

[ObeOl] SFOberman and MFlynn Advanced Computer Arithmetic Design Wiley 2001

[Obe97] SF Oberman and MJ Flynn Divisioacuten algorithms and implementations IEEE Transactions on Computen 46(8)833-854 August 1997

[ParOO] B Parhami Computer Arithmetic Algorithms and Hardware Designs Oxford University Press 2000

[Par03] Xilinx Inc Development System Reference Guide chapter 10 PAR (Place amp Route) 2003

Ped96] M Pedram Power Minimization in IC Design Principies and Applications ACM Transaction on Design Automation of Electronic Systems voll ndegl pp3-56 January 1996

pRab96] JMRabaey Digital Integrated Circuits Prentice Hall 1996

[Riv78] R Rivest A Shamir and L Adleman A Method for Obtaining Digital Signatures and Public-Key Cryptosystems Communications of the ACM vol21 no2 pp120-126 February 1978

[Rob58] J E Robertson A New Class of Digital Divisioacuten Methods IREacute transaction on Electronic Computen Vol 7 pp 218-222 September 1958

252

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

[She92] A Shen A Gosh S Devadas and K Keutzer On average Power Dissipation and Random Pattern Testability of CMOS Combinational Logic Networks Proceeding of International Conference on Computer Aided Design (ICCAD-92) pp402-407 IEEE Press 1992

[Sod96] P Soderquist and M Leeser Aacuterea and Performance Tradeoffs in Floating-Point Divide and Square-Root Implementations ACM Computing Surveys Vol 28 No 3 September 1996

[Sut03] Sutter G Todorovich E Lopez-Buedo S and Boemo E Logic Depth Power and Pipeline Granularity Updated Results on XC4K and Virtex FPGAs III Workshop on ~Reconfigurable Computing and Applications JCRA03 Madrid Spain Sept 2003

[Sweoacutel] Sweeney High Speed Arithmetic in Binary Computers Proceedings oIRE Vol 49 pp 91-1031961

[Tek04a] Tektronix inc TLA 700 Series Logic Analyzer User Manual available at wwwtektronixcom 2004

[Tek04b] Tektronix inc TLA7PG2 Pattern Generator Module User Manual available at wwwtektronixcom 2004

[Toc58] K D Tocher Techniques of multiplication and divisioacuten for automatic binary computers Quarterly Journal ojMechantes and Applied Mathematics Vol 11 pp 364-3841958

[TodOO] E Todorovich G Sutter N Acosta E Boemo and S Loacutepez-Buedo End-user low-power alternatdves at topological and physical leveacuteis Some examples on FPGAs Proceedings of XV Conference on Design of Circuit and Integrated Systems (DCIS2000) Montpellier France Nov 2000

[Wan03] X Wang and BE Nelson Tradeoffs of Designing Floating Point Divisioacuten and Square Root on Virtex FPGAs 11 th Annual IEEE symposium on Field-Programmable Custom Computing Machines (FCCM2003) Napa California USA April 2003

[XIacute199] Xilinx Inc XC4000E and XC4000X Series Field Programmable Gate Arrays Product Specification (Versioacuten 16) available at httpwww xilinxcom May 1999

[XilOO] Xilinx Inc Logicore Pipelined Divider V20 available at wwwxilinxcom June 302000

[XilOOb] Xilinx Inc Software Manuals and documentation for Foundation Series 31i httptoolboxxilinxcomdocsan3_li 2000

[XilOl] Xilinx inc Spartan-II 25V FPGA Family Functional Description available at httpwww xilinxcom March 2001

[XU02a] Xilinx inc Xilinx Synthesis Technology (XST) User Guide V221 Distributed with ISE 512002 available atwwwxilinxcom

253

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

[Xil02b] Xilinx inc Constraints Guide - ISE51 section 2-142-15 Relative Location (RLOC) and Relationally Placed Macros (RPMs) available at httpwww xilinxcom 2002

[Xil03a] Xilinx inc Carry Logic in Virtex and Spartan-II The Programmable Logic Data Book available on the Xilinx web site httpsupportxilinxcom 2003

[Xil03b] Xilinx inc Xilinx ISE 51 documentation Online Software Manuals available at supportxilinxcom 2003

[Xil03c] Xilinx Inc Librarles Guide for Xilinx ISE 61 available at wwwxilinxcom 2003

[Xil03d] Xilinx Inc Xilinx ISE 6 Online Software Manuals available at wwwxilinxcom 2003

|Xil03e] Xilinx Inc XST (Xilinx Synthesis Technologies) User Guide 40 distributed with ISE 6X available at wwwxilinxcom June 2003

[Xin98] SXing and WWHYu FPGA Adders Performance Evaluation and Optimal Design IEEE Design ltamp Test of Computen pp 24 mdash 29 January -March 1998

pCpo02] Xpower Xpower gettiacuteng started Releacutease versioacuten 4203Iacute 2002 available at supportxilinxcom

poundKpo04] Xpower Xpower gettiacuteng started Releacutease versioacuten 6203Iacute 2004 available at supportxilinxcom

254

Capiacutetulo 6 Conclusiones y Futuros Trabajos

Se resumen en este capiacutetulo las principales conclusiones aportes generados los

futuros trabajos que se desprenden de eacutesta tesis y las publicaciones generadas Para

finalizar se seleccionan las principales recomendaciones de reduccioacuten de consumo a

nivel del disentildeador

61 Conclusiones y Aportaciones

Se han presentado experimentos sobre varias generaciones de dispositivos del

fabricante Xilinx (XC4000 Virtex y Virtex II) Estos dispositivos comparten la

estructura baacutesica de LUTs de 4 entradas aunque tecnoloacutegicamente presentan 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 son aplicables a otras Eacutesta tesis y las conclusiones que se detallan maacutes

adelante se basa en medidas experimentales a maacutes de 600 circuitos

Las teacutecnicas resentildeadas durante esta tesis tratan de reducir el consumo siguiendo

ciertos temas recurrentes como son el balance aacuterea y velocidad para reducir consumo

evitar derroches aprovechar la localidad de los datos y la reduccioacuten de la actividad

espuria Por otra parte 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 en el consumo de potencia

255

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

611 Recomendaciones para la reduccioacuten de consumo en FSMs

Los experimentos descritos en el capiacutetulo 4 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 miacutenimo de la maacutequina de

estados Existen innumerables programas (mayoritariamente de libre distribucioacuten) para

la minimizacioacuten de estados pero un disentildeo cuidadoso los hace prescindibles

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 indirecta para la determinar la

mejor codificacioacuten desde el punto de vista del consumo (seccioacuten 42)

Para maacutequinas 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 Respecto de las

maacutequinas grandes (maacutes de dieciseacuteis estados) las teacutecnicas de particionamiento de

maacutequinas de estado son una alternativa viable La condicioacuten para que este meacutetodo

obtenga 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 (inferior

al 5) Para ejemplos concretos se han logrado disminuciones de hasta el 57 del

consumo (seccioacuten 43)

612 Observaciones y consejos a nivel topoloacutegico

Durante el capiacutetulo 3 se han presentado experimentos con el objeto de determinar

relaciones en el consumo y consejos a nivel usuario Adicionalmente en el capiacutetulo

5 dentro del estudio de bloques aritmeacuteticos se han analizado diversas alternativas

topoloacutegicas Las conclusiones maacutes sobresalientes entres otros son

Relacioacuten velocidad-consumo

bull Para una topologiacutea dada el circuito con maacutexima frecuencia de

funcionamiento normalmente implica el mejor circuito en teacutermino de

256

Capiacutetulo 6 Conclusiones y Aportes

consumo Esta optimizacioacuten se puede obtener de manera gratuita por

ejemplo usando emplazado y rutado repetitivo (RPR - Repetitivo Plaeement ltamp

Routiniquest) o ajustando las opciones de optimizacioacuten Siguen siendo vaacutelidos los

experimentos de [Boe96] sobre XC3K (seccioacuten 3222)

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 (seccioacuten 3221)

bull La relacioacuten entre aacuterea y consumo no es nada clara como sucede en los

circuitos basados en celdas oacute en el caso de las maacutequinas de estados Algunas

teacutecnicas que ganan velocidad a expensas de mayor utilizacioacuten de recursos (por

ejemplo duplicar hardware para disminuir fan-out) son argumentos en este

sentido (seccioacuten 3224)

Efecto de la conmutatividad

bull Se prueba a traveacutes de diferentes ejemplos que bajo ciertas condiciones el

hecho de permutar las entradas tiene un fuerte impacto en la reduccioacuten

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 (seccioacuten 34)

Las causas de este desbalance en el consumo puede ser un disentildeo singular o la

implementacioacuten irregular que se genera al mapear un disentildeo en una FPGA

esto produce que los glitcbes generados en una secuencia de operaciones no

sean iguales al permutar las entradas Otra causa es el uso de liacuteneas globales

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 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 el mejor orden de entrada

de los operandos para estos casos

257

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Segmentacioacuten

bull La principal observacioacuten es que la segmentacioacuten disminuye notablemente el

consumo en el caso de la familia 4K una segmentacioacuten intermedia (2-4

LUTs de profundidad loacutegica) es lo ideal en tanto que para la familias Virtex y

Virtex II una segmentacioacuten cercana al maacuteximo posible (1-2 LUTs) resulta ser

la mejor opcioacuten

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 (seccioacuten 34)

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 (seccioacuten 342 y 343)

Registros a la Entrada y 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-faradios 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 (Seccioacuten 35)

bull En el caso de la eleccioacuten del tipo aacutetjlip-jlop para registrar las salidas entre los

disponibles en los sicesCLBs y los de los IOBs existe una gran diferencia

desde el punto de vista del consumo En el caso de la familia XC4K 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 a ser un 40 superior Para Virtex II la influencia es

algo menor en torno al 9 (Seccioacuten 35)

258

Capiacutetulo 6 Conclusiones y Aportes

Implementaaacuteones secuenaacuteales

bull La secuencializacioacuten de los algoritmos se asocia al ahorro de aacuterea En FPGAs

esta afirmacioacuten no solo es verdad sino que ademaacutes la penalidad en la latencia

suele ser bastante reducida (en el orden del 20 ) Es muy importante la

regularidad del algoritmo para reducir la complejidad de la ruta de datos y la

maacutequina de estados Las reducciones de consumo pueden superar el 80

(seccioacuten 5583)

bull En las implementaciones secuenciales aumenta el consumo de sincronizacioacuten

Por ello la secuencializacioacuten oacuteptima (cantidad de etapas por ciclo de reloj)

desde el punto de vista del consumo depende del algoritmo Por ejemplo

para divisores de 32 bits cuatro etapas de caacutelculo por ciclo de reloj ofrecen el

miacutenimo consumo (seccioacuten 5583)

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 FPGAs

bull La teacutecnica maacutes simple de implementar y que mejores resultados ofrece tanto

en XC4K como en Virtex y Virtex II es la inhabilitacioacuten de registros con la

sentildeal CE La opcioacuten de utilizar puertas ANDs es otra alternativa simple de

utilizar que ademaacutes reporta buenos resultados

bull 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 (seccioacuten 3621)

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 (seccioacuten 3624)

bull Debido a la gran cantidad de registros distribuidos en la FPGA la

implementacioacuten de estas teacutecnicas de inhabilitacioacuten poseen un escaso (a veces

nulo) impacto en el aacuterea y velocidad (seccioacuten 363)

259

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

613 Resultados a nivel algoriacutetmico

Durante el capiacutetulo 5 se examinaron algunas alternativas a nivel algoriacutetmico Por un

lado se examinan las opciones para la multiplicacioacuten modular operacioacuten central en los

caacutelculos criptograacuteficos luego se presentoacute un experimento cuyos resultados no fueron

los esperados desde el punto de vista del consumo (la suma por el algoritmo de carry-

skip) Por uacuteltimo se analizoacute la operacioacuten de divisioacuten tanto para operandos naturales

como para fraccionarios

bull El nivel algoriacutetmico es una interesante fuente de reduccioacuten de consumo en

los ejemplos estudiados en el capiacutetulo 5 queda claro que se trata de

reducciones del orden del 50 en el consumo debido a la correcta seleccioacuten

de un algoritmo

bull Las meacutetricas de aacuterea y velocidad no son suficientes para calificar la calidad del

algoritmo respecto del consumo Existen caracteriacutesticas maacutes sutiles a tener en

cuenta como son la capacidad de producir o no movimientos espurios

(glitchei) dentro de la ruta de datos (seccioacuten 5432)

bull La representacioacuten de los datos usados por el algoritmo asiacute como la

correlacioacuten de datos que se producen dentro de la ruta de datos son muy

relevantes Por ejemplo en la divisioacuten de enteros el algoritmo non-nstoring

genera alternativamente restos intermedios muy pequentildeos positivos y

negativos los que al ser representados en complemento a dos generan gran

actividad (seccioacuten 5432)

bull Existe un efecto directo sobre el consumo que poseen la complejidad y la

precisioacuten de los algoritmos Un divisor de 3232 bits consume alrededor de

cuatro veces maacutes que el homologo que divide 1616 bits (seccioacuten 5581)

bull La regularidad y modularidad de los algoritmos son caracteriacutesticas altamente

deseables para la segmentacioacuten y la secuencializacioacuten de los algoritmos dos

teacutecnicas muy importantes de cara a la reduccioacuten de consumo

bull La aplicacioacuten de la segmentacioacuten sobre los algoritmos ofrece importantes

reducciones de consumo cuando se tienen un flujo continuo de datos La

reduccioacuten depende del tamantildeo de la ruta de datos y los niveles de

260

Capiacutetulo 6 Conclusiones y Aportes

segmentacioacuten Reducciones superiores al 80 son corrientes en esta teacutecnica

(seccioacuten 5582)

bull Las implementaciones secuenciales usan menos recursos con una

relativamente pequentildea penalidad en la latencia Es muy importante la

regularidad del algoritmo para reducir la complejidad de la ruta de datos y la

maacutequina de estados Las reducciones de consumo pueden superar el 80

(seccioacuten 5583)

bull En las implementaciones secuenciales aumenta el consumo de sincronizacioacuten

por ello la secuencializacioacuten oacuteptima (cantidad de etapas por ciclo de reloj)

desde el punto de vista del consumo depende del algoritmo y la complejidad

de la ruta de datos (seccioacuten 5583)

614 Bloques aritmeacuteticos

Los resultados del capiacutetulo 5 brindan ciertas conclusiones particulares para cada

bloque aritmeacutetico las que se detallan a continuacioacuten

Multiplicaaacuteoacuten modular

bull Para calcular e =jx mod m donde m pertenece a un conjunto conocido de

valores el algoritmo de Montgomery muestra la mejor figura de consumo

(tambieacuten aacuterea y retardo) Si soacutelo se quiere calcular = xy mod m la versioacuten

combinacional del algoritmo de multiplicacioacuten y reduccioacuten es mejor que la del

algoritmo de sumas y desplazamientos (seccioacuten 5234)

bull 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 del 54 en el caso secuencial (seccioacuten 5235)

bull 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 (seccioacuten 5252)

Suma carry-skip

m La teacutecnica de sumador carry skip resulta muy interesante para ser aplicada en

FPGAs para operandos largos (a partir de 64 bits) Una implementacioacuten

261

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

cuidadosa para sumadores de 1024 bits puede superar el 500 de aumento

en la velocidad con un incremento del aacuterea menor del 50 respecto a la

implementacioacuten por defecto en FPGA Los resultados en el consumo sin

embargo son mejores para el ripple carry tradicional (seccioacuten 53)

Divisioacuten entera

m Los resultados en aacuterea y velocidad favorecen claramente a la divisioacuten sin

restauracioacuten (nonrestoritig) El algoritmo con restauracioacuten (restoring) 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 Este efecto se refuerza

cuando el tamantildeo del divisor es mayor a raquo2 bits siendo laquo el tamantildeo del

dividendo (seccioacuten 54)

bull 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-restoring es soacutelo alrededor del

20 superior al algoritmo de divisioacuten con restauracioacuten (seccioacuten 5431)

Divisioacuten de Nuacutemeros Fraccionarios

bull Para implementaciones combinacionales el algoritmo SRT base-2 tiene la

mejor figura en aacuterea-retardo y consumo reduciendo este uacuteltimo hasta en un 51

el consumo respecto del tradicional algoritmo de divisioacuten sin restauracioacuten y

un 93 respecto del SRT base-2 con resto representado en carry-save (el maacutes

veloz) (seccioacuten 5571 y 5581)

bull Las arquitecturas segmentadas ofrecen caracteriacutesticas importantes para la

reduccioacuten de consumo Las medidas muestran una reduccioacuten de hasta un 93

del consumo dinaacutemico en una arquitectura totalmente segmentada respecto de

una totalmente combinadonal Esta mejora es obtenida a expensas de triplicar

el aacuterea (seccioacuten 5582)

bull Las implementaciones secuenciales usan menos recursos con una relativamente

pequentildea penalidad en la latencia pero una importante reduccioacuten en el

consumo llegando hasta un 89 respecto a una implementacioacuten totalmente

combinadonal (secdoacuten 5583)

262

Capiacutetulo 6 Conclusiones y Aportes

bull Una observacioacuten importante en las implementaciones secuenciales es que la

cantidad de bits calculado por ciclos de reloj (G) es maacutes determinante en el

consumo que el algoritmo utilizado Arquitecturas con G = 4 muestra el mejor

consumo y mejor relacioacuten aacuterea x retardo x consumo en tanto los circuitos con

G = 2 optimizan la relacioacuten aacuterea x retardo Los algoritmos sin-restauracioacuten y

SRT base-2 obtienen los mejores resultados (seccioacuten 5583)

615 Conclusiones sobre la herramientas de estimacioacuten de consumo

Paralelamente a las mediciones en los arreglos experimentales se ha realizado la

estimacioacuten del consumo con la herramienta XPOWER Ante todo hay que destacar

que es un proceso lento que requiere varios gigabytes de ficheros intermedios que

implica una simulacioacuten post-place ltiquestr route y un posterior anaacutelisis con la herramienta

Esto lo convierte en muchos casos en un meacutetodo impraacutectico El apeacutendice F muestra

la forma de utilizacioacuten de la herramienta

Los resultados observados para circuitos secuenciales son bastante aceptables

(secciones 3342 y 5331) coincidiendo las arquitecturas que maacutes consumen con la

estimacioacuten aunque no en un porcentaje constante Para el caso del anaacutelisis de la

segmentacioacuten (seccioacuten 3422) los resultados fueron bastante decepcionantes no

coincidiendo las figuras del consumo medido con el estimado

En el flujo de disentildeo normal se deberiacutea poder generar automaacuteticamente la actividad

del circuito ahorraacutendose horas de simulacioacuten gigabytes de datos intermedios y

buacutesqueda de patrones de entrada significativos (En la liacutenea de la investigacioacuten de

[Tod04]) No obstante resulta interesante esta herramienta no para la estimacioacuten de

un sistema completo sino para la caracterizacioacuten de bloques aritmeacuteticos particulares

donde tanto el tiempo de simulacioacuten como la generacioacuten de los vectores de prueba

podriacutean ser acotados

263

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

62 Trabajos futuros

Como se ha mencionado anteriormente el objetivo general de este trabajo es dar

soluciones en el disentildeo de bajo consumo en FPGAs Dado que eacutesta es una meta

extremadamente ambiciosa se ha reducido la cantidad de experimentos y evaluacioacuten

de teacutecnicas llevadas a cabo La ampliacioacuten de estos experimentos y estudios implica

posiblemente varios temas de tesis Las liacuteneas de trabajos que se desprenden incluiriacutean

entre otras

Estudio de bloques aritmeacuteticos complejos Si bien las dos operaciones

fundamentales en el procesamiento de sentildeal (suma y multiplicacioacuten) estaacuten muy

estudiadas desde el punto de vista del consumo (la divisioacuten se ha estudiado aquiacute) seriacutea

uacutetil estudiar otras primitivas de gran aplicacioacuten como son la exponenciacioacuten y la raiacutez

cuadrada Otro aspecto importante es el procesamiento digital de la sentildeal y las

muacuteltiples variables que afectan al consumo en filtros transformadas y otros bloques

de procesamiento Tambieacuten el tratamiento con operandos grandes (maacutes de 128 bits)

por sus aplicaciones en criptografiacutea y de las operaciones en punto flotante merecen

gran intereacutes

Generacioacuten de cores de bajo consumo Este punto estaacute iacutentimamente ligado con el

anterior aunque con matices propios Los cores facilitados por los fabricantes de silicio

y otros proveedores independientes de IPs (intelectual properties) auacuten no proveen

caracteriacutesticas de bajo consumo Es por tanto uacutetil generar cores parametrizables

optimizados en consumo de las operaciones maacutes frecuentes y demandadas Ademaacutes

seriacutea deseable que se provea la caracterizacioacuten de la disipacioacuten de potencia de modo

de permitir estimar a nivel de bloques el consumo total de una aplicacioacuten

Estudio de microprocesadores (flP) embebidos Cada vez maacutes la loacutegica

programable tiende a solucionar sistemas completos (SoC - System on a Chtp) donde la

integracioacuten de un microprocesador es esencial Esta caracteriacutestica genera dos aacutereas

Importantes de estudio por un lado la generacioacuten de cores de microprocesadores de

bajo consumo y por otro compiladores que generan coacutedigo de bajo consumo para

estos [iP

Taxonomiacutea de las teacutecnicas de reduccioacuten de consumo en FPGAs Como

resultado final se deberiacutea generar una taxonomiacutea general de las teacutecnicas para reducir el

consumo donde el disentildeador pueda consultar dependiendo del dominio de

264

Capiacutetulo 6 Conclusiones y Aportes

aplicacioacuten que teacutecnicas se deberiacutean aplicar para lograr optimizaciones de consumo

Varias alternativas se han evaluado aquiacute aunque se deberiacutea ampliar este estudio a

teacutecnicas de precomputacioacuten representacioacuten y codificacioacuten de los datos y

programacioacuten (scbeduiniquest) para el manejo dinaacutemico del consumo

Herramientas de siacutentesis para bajo consumo Los sintetizadores tradicionalmente

han optimizado en aacuterea y velocidad La siacutentesis de bajo consumo estaacute presente en

herramientas para ASICs pero no en FPGAs En base a algunos resultados obtenidos

aquiacute y otros publicados recientemente se podriacutea incorporar caracteriacutesticas de siacutentesis

para bajo consumo

Herramientas de estimacioacuten de alto nivel Las herramientas de estimacioacuten de

consumo actuales parten de la descripcioacuten del circuito y una simulacioacuten post-layout del

mismo Al margen de su relativa precisioacuten son por cierto lentas de ejecutar seriacutea uacutetil

contar con versiones que permitan estimar el consumo a un mayor nivel de

abstraccioacuten

Estudio de la interaccioacuten con bloques embebidos Los dispositivos actuales

integran bloques de memoria multiplicadores y microprocesadores con una clara

tendencia a incrementarse la cantidad y variedad de bloques especiacuteficos Resulta de

intereacutes investigar sus caracteriacutesticas de consumo y maacutes auacuten desarrollar meacutetodos para

integrarlos en disentildeos de bajo consumo Es decir estudiar cuando y de que forma

conviene utilizarlos

63 Publicaciones relacionadas con eacuteste trabajo

Se han generado artiacuteculos relativos a partes de este trabajo en diferentes congresos y

medios de divulgacioacuten sobre FPGAs y disentildeo electroacutenico Las publicaciones maacutes

relevantes son las siguientes

bull G Sutter GBioul J-P Deschamps and EBoemo Power Aware Dividers in

FPGA Lecture Notes in Computer Science (LNCS) Vol 3254 pp 574 - 584

Berliacuten Springer-Verlag 2004

bull G Sutter GBioul and J-P Deschamps Comparative Study of SRT-

Dividers in FPGA Lecture Notes in Computer Science (LNCS) Vol3203

pp 209 - 220 Berliacuten Springer-Verlag 2004

265

uam
Nota

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

bull 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 2002

bull E Todorovich M Gilabert G Sutter S Lopez-Buedo and E Boemo A

Tool for Activity Estimation in FPGAs Lecture Notes in Computer Science

Vol2438 pp340-349 Berliacuten Springer-Verlag 2002

bull G Sutter E Todorvich S Loacutepez- Buedo and E Boemo FSM

Decomposition for Low Power in FPGA Lecture Notes in Computer Science

Vol2438 pp350-359 Berliacuten Springer-Verlag 2002

Ademaacutes se han presentado otros resultados parciales en

bull G Sutter E Todorovich E Boemo Design of Power Aware FPGA-based

Systems IVJCRA pp 81-90 Barcelona Spain September 2004

bull J-P Deschamps and G Sutter Multiplication in a Finite Extensioacuten Ring

XVIII Conference on Design ofdrcuits and Integrated Systems (DCIS 2003) Ciudad

Real Spain November 2003

bull E Boemo and G Sutter Permutacioacuten de los Datos de Entradas como

Estrategia de Disentildeo de Bajo Consumo Algunos Ejemplos en FPGAs iTJ

JCRA 03 pp 225- 232 Madrid Spain September 2003

bull Sutter G Todorovich E Loacutepez-Buedo S and Boemo E Logic Depth

Power and Pipeline Granularity Updated Results on XC4K and Virtex

FPGAs IIIJCRA pp 201-207 Madrid Spaiacuten September 2003

bull Bioul G Deschamps J-P Sutter G Efficient FPGA implementation of

Carry Skip Adders Jomadas de Computacioacuten Reconfigurabley Aplicaciones pp 81-

90 Madrid Spain September 2003

bull E Todorovich G Sutter and E Boemo Estimacioacuten de Actividad para

FPGA Basada en una Teacutecnica Estadiacutestica Ul Jomadas de Computacioacuten

Rjiconfigurabley Aplicaciones pp 217-224 Madrid Spain September 2003

bull J-P Deschamps and G Sutter FPGA Implementation of Modular

Multipliers XVII Conference on Design of Circuits and Integrated Systems (DCIS

2002) pp 107-112 (ISBN 84-8102-311-6) Santander November 19-222002

266

Capiacutetulo 6 Conclusiones y Aportes

bull G Sutter and J-P Deschamps Multiplicadores modulares II Jomadas sobre

Computacioacuten Reconfigurable y Aplicaciones (fCRA 2002) Almuntildeecar (Granada)

Spain pp 209-214 (ISBN 84-699-9448-4) sept de 2002

bull G Sutter and E Boemo Low Power Finite state machines in FPGA Bynary

vs One hot encoding VIII Workshop IBERCHIP Guadalajara Meacutexico 3-5

April 2002

bull G Sutter E Todorovich and E Boemo Metodologiacutea para la Reduccioacuten de

Consumo en Circuitos Integrados Reprogramables JZT Workshop de

Investigadores de Ciencias de la Computacioacuten (WICC 2001) San Luis Argentina

Agosto 2001

bull E Todorovich G Sutter N Acosta E Boemo and S Loacutepez-Buedo

Relacioacuten entre Velocidad y Consumo en FPGAs VU Workshop de

IBERCHIP Montevideo Uruguay 21-23 marzo 2001

bull G Sutter E Todorovich E Boemo and S Loacutepez-Buedo Propiedad

Conmutativa y Disentildeo de Bajo Consumo Algunos Ejemplos en FPGAs

VII Workshop de IBERCHIP Montevideo Uruguay 21-23 marzo 2001

bull 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 of Circuits and Integrated Systems

(DCIS2000) Le Corum Montpellier France November 21-242000

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

64 Reglas empiacutericas pata el disentildeo de bajo consumo en

FPGAs

A modo de resumen final de los resultados de esta tesis se presentan estas seis simples

reglas empiacutericas que deberiacutea seguir un disentildeador de sistemas de bajo consumo basados

en tecnologiacutea FPGA Aquiacute se seleccionan aquellas reglas de aplicacioacuten inmediata por

parte del disentildeador

1 N o sobredimensionar la capacidad de caacutelculo asiacute como la ruta de datos

Operar a maacutes frecuencia de la necesaria implica un crecimiento lineal con el consumo

ademaacutes exigir gran capacidad de caacutelculo puede implicar desechar arquitecturas

secuenciales u otras teacutecnicas maacutes afines a la reduccioacuten de consumo Por otro lado el

tamantildeo de la ruta de datos puede implicar aumentos con oacuterdenes mayores que dos en

el consumo Por ejemplo la multiplicacioacuten de 3232 bits consume al menos cuatro

veces maacutes que uno de 1616 lo mismo sucede para la divisioacuten de nuacutemeros

fraccionarios

2 Reducir la profundidad loacutegica a un maacuteximo de 2-3 LUTs en circuito de gran

actividad Los glitches son la principal fuente en el consumo la manera maacutes directa

de reducirlo en FPGAs es a traveacutes de la segmentacioacuten en caso de tener lotes de datos

que procesar o bien sequencializando la ruta de datos Para aplicar efectivamente estas

teacutecnicas la regularidad de la ruta de datos es fundamental

2a Uso de la segmentacioacuten Es la teacutecnica maacutes adecuada cuando se trabaja con

grandes lotes de datos La reduccioacuten del consumo suele ser incluso proporcional al

aumento de velocidad del algoritmo La penalidad en aacuterea suele ser despreciable

dada la abundancia de registros distribuidos en la FPGA

2b Uso de arquitecturas secuenciales La secuencializacioacuten de los algoritmos

se asocia al ahorro de aacuterea En FPGAs esta afirmacioacuten no solo es verdad sino que

ademaacutes la penalidad en la latencia suele ser bastante reducida En las

implementaciones secuenciales aumenta el consumo de sincronizacioacuten por ello la

secuencializacioacuten oacuteptima (cantidad de etapas por ciclo de reloj) desde el punto de

vista del consumo depende del algoritmo

3 Desactivar partes inactivas del disentildeo En sistemas complejos partes del disentildeo

suelen no estar produciendo datos efectivos Desactivar esas partes es fundamental de

268

Capiacutetulo 6 Conclusiones y Aportes

cara a evitar el derroche de consumo Utilizar las sentildeales de habilitacioacuten CE (chip-

enable) de los registros para frenar los datos oacute el uso de puertas ANDs brinda

importantes posibilidades de ahorro en el consumo con impacto casi nulo en aacuterea y

velocidad En las familias de FPGAs maacutes modernas (Virtex II spartan 3 etc) los

muacuteltiples aacuterboles de reloj y los multiplexores de reloj permiten implementar faacutecilmente

teacutecnicas tipo gated dock

4 Explorar y explotar el nivel algoriacutetmico El disentildeo de los algoritmos posee una

de las fuentes maacutes directas de ahorro de energiacutea La regularidad y modularidad de los

algoritmos son caracteriacutesticas altamente deseables para la segmentacioacuten y la

secuencializacioacuten de los algoritmos dos teacutecnicas muy importantes de cara a la

reduccioacuten de consumo

Definitivamente las meacutetricas de aacuterea y velocidad no son suficientes para calificar la

calidad del algoritmo respecto del consumo Existen caracteriacutesticas maacutes sutiles a tener

en cuenta como son la capacidad de producir o no movimientos espurios (glitches)

dentro de la ruta de datos esta en general producida por la correlacioacuten de datos que se

generan

5 Registrar siempre que sea posible Es importante registrar siempre que sea

posible tanto las entradas como las salidas Maacutes aun en las sentildeales de salida es

conveniente registrar cerca de la loacutegica que produce el dato de salida usando FF en

los slices en vez de los registros asociados a las patas No soacutelo se evita la activad en las

liacuteneas que conectan la loacutegica con los IOBs sino que sobre todo se evita la actividad en

los buffers que transforman la sentildeal de la tensioacuten del core a la de las patas Cabe recordar

que la alimentacioacuten del core de los dispositivos modernos es menor que en la periferia

6 En el disentildeo de maacutequinas de estados cuidar la codificacioacuten y eventualmente

particionar Para maacutequinas de estados pequentildeas hasta 8 estados utiEzar codificaciones

densas (binarias) Para maacutequinas con maacutes de 15 estados utilizar one-hot Eventualmente

para maacutequina de estados grandes (maacutes de 12 estados) cuando se pueda realizar una

particioacuten con poca probabilidad de cambios entre ellas utilizar particioacuten de maacutequinas

de estados Como caso especial de maacutequinas de estados los contadores con

codificaciones tipo gray son una buena opcioacuten de bajo consumo siempre que no se

deba utilizar decodificaciones extras de las salidas

269

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

270

Apeacutendice A

Placa de prueba familia XC4K

A1 Introduccioacuten

Durante el desarrollo de esta tesis se ha utilizado una placa de prueba para dar soporte

a distintos circuitos que se han desarrollando Se ha utilizado una placa desarrollada

por SLopez-Buedo [Lop97] La correcta funcionalidad de los circuitos fue

comprobada mediacuteante el uso de un analizador loacutegico [TekOO] y adicionalmente se

mide el consumo indirectamente mediante la utilizacioacuten de voltiacutemetro y amperiacutemetro

A2 Caracteriacutesticas de la placa de prueba

Las dos principales caracteriacutesticas de disentildeo son por un lado que esta dotada de

conectores especialmente dedicados para acoplar el analizador loacutegico y por otro la

inclusioacuten de una segunda FPGA para ser utilizada como generador de vectores de test

para los circuitos que se analizan

La placa se componen deun generador de vectores de prueba implementado en una

FPGA del tipo Xilinx XC3K (se utilizaron concretamente los dispositivos Xilinx

XC3120PC84-3 y XC3130PC84-5) Tras eacutesta se situacutea un primer banco de 24

conectores maacutes uno de reloj cuyo objetivo es poder monitorear estos vectores de

prueba permitiendo el acoplamiento directo de un los conectores del analizador

loacutegico usado el Tektronix TLA704 [TekOO] Eacutestos pasan a continuacioacuten a la FPGA de

prueba una Xilinx XC4000 en encapsulado PLCC84 Por uacuteltimo un segundo banco

de conectores igual al primero permite observar los resultados

271

Teacutecnicas pata la Reduccioacuten de Consumo en FPGAs

La configuracioacuten de las FPGAs de prueba se hace mediante cable de download (en

particular se utiliza el Xilinx Xchecker [XCH99]) mientras que la FPGA generadora

de vectores de prueba se configura mediante una EPROM serie (Atmel AT17C128)

La diferencia en el modo de programacioacuten estriba en la diferente cantidad de veces

que se han de reprogramar cada FPGA Por un lado es de esperar que la generacioacuten

de patrones de test se reconfiguren una uacutenica vez (o unas pocas) para cada

experimento Por el contrario la FPGA de prueba va a necesitar ser reconfigurada en

gran cantidad de ocasiones

Pod

D0_7 D0_6 D0_5 D0_4 D0_3 D0_2 D0_1 D0_0

Dl_7 Dl_6 Dl_5 Dl_4 Dl_3 Dl_2 Dl_l D1_0

D2_7 D2_6 D2_5 D2_4 D2_3 D2_2 D2_l D2_0

XC3120

25 26 27 28 29 30 34 35

36 37 39 40 44 45 46 47

48 49 52 53 56 57

bull 58 59

XC4000

18 17 16 15 14 10 9 8

7 6 5 4 3 83 84 81

82 79 80 77 78 70 69 68

Pod

02_7 02_6 02_5 02_4 02_3 02^2 02_1 O2_0

02_7 02_6 02_5 02_4 02_3 02_2 02_1 O2_0

02_7 02_6 02_5 02_4 02_3 02_2 02_1 O2_0

XC4000

25 24 27 26 29 28 36 35

37 38 39 40 44 45 46 47

48 49 50 51 56 57 58 59

Tabla Al Conexiones del analizador en la placas de prueba

En la Tabla Al se muestran los pines de conexioacuten al analizador loacutegico la tabla A2

muestra la asignacioacuten de pines para el cable de programacioacuten download) del dispositivo

XC4K y la asignacioacuten de botones y conmutadores de la XC3K

272

Conmutadores y Botones

Apeacutendice A Placa de pruebas familia XC4K

Conector de download Elemento

switch 1 switch 2 switch 3 switch 4

Botoacuten 1 Botoacuten 2

Botoacuten Reset

Pin XC3000

83 84 81 82

75 76

Rst_fpga

Pin conector

1 2 3 4 5 6 7 8 9

VCC GND NC

CCLK DONE

DIN _PROG _JNIT

NC

Tabla A2 Conexiones del cable de programacioacuten y botones

A3 Dispositivos utilizados

Se han utilizado en este arreglo experimental 3 dispositivos de la familia XC4K Ellos

son XC4003PC84-4 XC4005PC84-4 y una XC4010PC84-4 El resumen de los

recursos de cada dispositivo se puede ver en la tabla A3

Dispositivo

XC4003 XC4005 XC4010

Puertas equivalente

3000 5000 10000

Matriz CLBs

10x10 14x14 20x20

Total CLBs

100 196 400

Cantidad de Fltp-Fkps

360 616 1120

Maacutexima cantidad ES

80 112 160

Tabla A3 Recursos de los dispositivos de la serie XC4K utilizados en las mediciones

273

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Seleccioacuten de secuencia

Conector BNC del Reloj

Conectores analizador loacutegico Vectores de test

Conectores analizador loacutegico

resultados

Led Configuracioacuten

XC4K

fv V

Xilinx3K

Series

FPGA

Xilinx4K

Series

FPGA

fll DO I f DI I f D2

I QQ I I Oiacute I I 02

N D [O] I I -

Reset

EPROM Serie para configuracioacuten XC3k

Conectores alimentacioacuten general

Led configuracioacuten XC3K

Conector alimentacioacuten FPGA de prueba

Conector Cable Download

Figura Al Esquema de la placa de prueba de la familia XC4000

A4 Conexioacuten de la placa de pruebas

Como se mencionoacute anteriormente la placa posee alimentacioacuten separada para el

generador de vectores de test asiacute como para el circuito a medir Una fuente de

alimentacioacuten doble alimenta por separado cada parte de la placa Sobre la FPGA a

medir se colocan los elementos de medicioacuten (voltiacutemetro y amperiacutemetro) Figura A2

Se conectan ademaacutes el generador de reloj (Metrix GX245) el analizador loacutegico y el

cable de programacioacuten conectado al puerto serie del PC Qiacutecheckei)

274

Apeacutendice A Placa de pruebas familia XC4K

Al generador de frecuencia

Al analizador loacutegico

Cable download al ordenador

ni oo II - 61 H na I

o o

o 0

Fuente regulada de 5 Voltios

Amperiacutemetro

Fuente regulada 5V

Voltiacutemetro

Figura A2 Esquema de conexioacuten del arreglo experimental en XC4K

Figura A3 Fotografiacutea del arreglo experimental para XC4K

275

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

A5 Meacutetodo de medicioacuten de consumo

La teacutecnica utilizada en este trabajo para aislar las distintas componentes del consumo

fue propuesta en [Boe96] Otra alternativa puede verse en [Men99] Seguacuten [Boe96] la

componente estaacutetica se puede medir dejando las entradas de la parte combinatoria

fijas sin actividad en el reloj luego de haber configurado la FPGA Para aislar la

componente externa de consumo el circuito se mide dos veces Primero en

condiciones normales de operacioacuten luego deshabilitando los buffers de tres estados en

las salidas De esta manera la componente qff-chip se puede aproximar mediacuteante la

diferencia entre estos dos resultados

Consumo Estaacutetico

(Stafiacutec Power)

Consumo Externo

(Off-chip power)

Consumo de

Sincronizacioacuten

(Synchroniyation

power)

Consumo

Dinaacutemico

(Dynamic Power)

El circuito es configurado pero no se le conectan estiacutemulos ni sentildeal de

reloj El resto de elementos externos que requiere la FPGA quedan

conectados

Para aislar la componente externa se mide dos veces Primero en

condiciones normales de operacioacuten luego deshabilitando los buffers de

tres estados en las salidas La componente off-chip se aproxima

mediante la diferencia entre estos dos valores

Un dato constante (por ejemplo todas las entradas a cero) es usado

como entrada al circuito mientras el reloj es aplicado De esta manera

no existiraacute actividad en el circuito ya que no hay cambios en los datos

mientras el reloj seraacute el uacutenico elemento que consume Cabe sentildealar que

las FPGAs usan multiplexores para emular el efecto de la habilitacioacuten

de reloj (dock etiableacute) como consecuencia el uso del pin dock enable de

del CLB no interrumpe realmente la alimentacioacuten de reloj a los flip-

flops

Surge de restar al consumo total el consumo estaacutetico y externo Dada

la linealidad del consumo respecto de la frecuencia el circuito se mide a

diferentes velocidades de reloj para minimizar los errores

Tabla A4 Componentes del consumo y forma de medicioacuten en XC4K

Finalmente para que quede solamente la potencia dinaacutemica de la parte combinatoria

resta aislar la potencia de sincronizacioacuten que se puede calcular como diferencia

midiendo el consumo con el circuito sin actividad en las entradas mientras opera la

276

Apeacutendice A Placa de pruebas familia XC4K

sentildeal de reloj normalmente de manera que soacutelo el aacuterbol de reloj tenga actividad Esta

teacutecnica de medicioacuten de la corriente de sincronizacioacuten solo es aplicable a bloques que

no tengan realimentaciones de registros internos Por ello es que no se utiliza en las

maacutequinas de estado En la tabla A4 se resumen estos conceptos

Respecto al consumo off-chip todos los circuitos a medir se implementan con buffers tri-

estados en las patas de salida Al margen cada pata de salida tiene una carga producto

del analizador loacutegico menor de 3 pf [TekOO]

La componente utilizada para realizar comparaciones y optimizaciones es la dinaacutemica

ya que es la que es susceptible de ser optimizada por el disentildeador Eventualmente

puede ser importante en las comparaciones revisar la componente de sincronizacioacuten

(la que depende del reloj) que se veraacute afectada por decisiones arquitecturales y

topoloacutegicas La componente estaacutetica y off-chip suele quedar fuera del espacio de disentildeo

dado que la primera depende de caracteriacutesticas tecnoloacutegicas y la segunda de cuestiones

de interaccioacuten con otros sistemas o el mundo exterior

Error en la medicioacuten

Los voltiacutemetros y amperiacutemetros utilizados (Fluke 175 [Flu02]) para el caacutelculo de la

potencia tienen la siguiente precisioacuten Como voltiacutemetro de corriente continua y en el

rango utilizado 015 de la lectura en tanto que como amperiacutemetro el 1 La

potencia medida como I x V por tanto tiene una precisioacuten del orden del 1

A6 Generador de vectores

En este arreglo experimental se utilizan diferentes configuraciones para la FPGA que

realiza la generacioacuten de patrones (la XC3K) dependiendo de los vectores necesarios

La configuracioacuten del generador de vectores de test se lleva a cabo a traveacutes de la

programacioacuten de una EEPROM serial una AT17C128

En la figura A4 se muestra el esquema de un generador utilizado para comprobar la

relacioacuten de consumo P(AxB) vs P(BxA) en multiplicadores En este generador se

puede elegir entre secuencias aleatorias y secuencias de maacutexima conmutacioacuten el orden

de salida y la frecuencia relativo de los operandos

277

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

COUNT_O[20]

Contador 6 bi

IacuteIKJH

ClOCX

COUNTER

CONT_A[60]

ojxrrpt] CONT_B[60]

CONT_B[30]-tepai

ROM Max Ton 2 mdash-RT5fiI

MUX

Figura A4 Esquema de un generador de patrones en las XC3K

278

Apeacutendice A Placa de pruebas familia XC4K

A7 Referencias del apeacutendice

[TekOl] Tektronix inc TLA 704 Logic Analyzer user Guide Available at wwwtektronixcom 2001

[Lop97] S Lopez-Buedo Teacutecnicas de disentildeo de Alta Velocidad y Bajo Consumo Memoria Proyecto Fin de Carrera ETSI Tekcomunicaaacuteoacuten - Universidad Politeacutecnica de Madrid Septiembre 1997

[Xch99] Xchecker Xilinx download cable Hardware User Guide XChecker Cable httptoolboxxilinxcomdocsan3_li

[Boe96] E Boemo Contribution to the Design of Fine-grain Pipelined VLSI Arrays Tesis doctoral ETSI Telecomunicacioacuten Universidad Politeacutecnica de Madrid Madrid Spain 1996

[Men99] L Mengiacutebar M Garda D Martiacuten and L Entrena Experiments in FPGA Characterization for Low-power Design Proceedings of XIV Conference on Design of Circuits and Integrated Systems (DCIS99) Palma de Mallorca November 1999

[Flu02] Fluke Ibeacuterica Multiacutemetros digitales de la serie 170 avilable at httpwwwflukees 2002

279

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

i

280

Apeacutendice B

Placa de prueba AFX (Virtex)

Bl Introduccioacuten

Para llevar a cabo los experimentos con FPGAs de la familia Virtex se empleoacute una

tarjeta de prototipado disentildeada y distribuida por Xilinx la AFX PQ240-100 [Xil99a]

Esta tarjeta posee la ventaja de ser muy simple y praacutecticamente no tener componentes

adicionales que pudiesen interferir con las medidas de consumo En esta placa se

puede montar cualquier FPGA de la familia Virtex de 25 V con encapsulado PQ240

Figura Bl Detalle de la placa de prototipado AFX

281

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

B2 Caracteriacutesticas de la placa de prueba AFX

En la figura Bl se puede ver una fotografiacutea extraiacuteda de las notas teacutecnicas de Xilinx

Baacutesicamente la tarjeta tiene unos conectores tipo bananas de alimentacioacuten (1) un

suntildetch de conexioacuten (2) aacuterea conpines conectados a las patas de la FPGA (3) para poder

monitorizar y excitar el circuito un zoacutecalo para una EPROM de configuracioacuten (5) un

conector para programar la FPGA(6) zoacutecalos para cuatro osciladores (9) (uno por

cada liacutenea global de reloj en Virtex) cuatro LEDs (10) jumpers de configuracioacuten (7 y 8)

(principalmente seleccioacuten de tensiones en los bancos de ES y modo de

configuracioacuten M0 MI y M2) y por uacuteltimo un aacuterea de prototipado (12) A la placa se

le han soldado (en la zona 4) conectores para facilitar la conexioacuten y desconexioacuten del

generador de patrones y el analizador loacutegico

Para programarla se utiliza cualquier cable de los provistos por Xilinx (por ejemplo

Paralell Cable III oacute IV [XUuml03]) En este caso se utiliza una interfaz ad hoc descrita en

[Lop03] que se maneja a traveacutes de JBIacutets La interfaz se basa en el modo bidireccional

de funcionamiento del puerto paralelo de esta manera se puede hacer readbacks de 8

bits en paralelo de una manera muy sencilla Figura B2 y B3

Figura B2 Fotografiacutea de la tarjeta AFX

282

Apeacutendice B Placa de Pruebas AEX para Virtex

Figura B3 Detalle de la interfaz con el puerto paralelo de la tarjeta AFX

B3 Dispositivos Virtex utilizados

Los dispositivos utilizados con esta placa son una XCV50PQ240-4 (un arreglo de

16x24 CLBs 768 slices 57906 puertas equivalentes) y una XCV800PQ240-4 [XilOlb]

(56x84 CLBs 9408 slices 888439 puertas equivalentes) fundamentalmente esta uacuteltima

FPGA se ha utilIacute2ado para la mayor parte de las medidas

B4 Conexioacuten de la placa de pruebas

Las FPGAs de la familia Virtex se alimentan con 25 V el core del circuito en tanto que

la periferia se alimenta con 33 V Una fuente de alimentacioacuten doble alimenta por

separado cada parte de la placa con las tensiones correspondientes En el arreglo

experimental se controlan-ambas tensiones y la corriente del core ya que en general se

estudia el consumo dinaacutemico del core aislaacutendose en el caacutelculo tambieacuten el consumo de

la periferia En la figura D3 se observa una fotografiacutea del arreglo experimental

Para la excitacioacuten de los circuitos se utiliza un generador de vectores de prueba

TLA7PG2 de la empresa Tektronix [Tek02] La sentildeal de reloj para los circuitos se

obtiene igualmente de este generador Para comprobar los resultados se utiliza un

analizador loacutegico TLA704 de la misma empresa [TekOl]

283

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

A la placa se han conectado 64 bits de entrada (procedente del generador de vectores

de tesi) La tabla Bl muestra los detalles de la asignacioacuten aacuteamppines Un total de 64 patas

de salida de la FPGA se conectaron al analizador loacutegico cuya asignacioacuten de patas se

puede ver en la tabla B2

Pin

5

6

9

13

17

21

25

26

AO

A0_0

A0_1

A0Jiquest

A0_3

A0_4

A0_5

A0_6

A0_7

Pin

3

4

7

12

20

24

27

28

Al

A1_0

Al_l

Al_2

Al_3

Al_4

Al_5

Al_6

Al_7

Pin

33

34

38

41

46

49

53

57

B0

BOJ)

B0_1

B0_2

B0_3

B0_4

B0_5

B0_6

B0_7

Pin

31

35

36

40

48

52

55

56

Bl

B1_0

Bl_l

Bl_2

Bl_3

Bl_4

Bl_5

Bl_6

Bl_7

Pin

186

189

193

194

201

202

205

206

CO

C0_0

C0_1

C0_2

C0_3

C0_4

C0_5

C0_6

C0_7

Pin

187

188

192

195

199

200

207

208

Cl

C1_0

Cl_l

Cl_2

CIJi

Cl_4

Cl_5

Cl_6

Cl_7

Pin

217

218

221

222

229

230

234

237

DO

D0_0

D0_1

D0_2

D0_3

D0_4

D0_5

D0_6

D0_7

Pin

215

216

220

224

228

232

235

236

DI

D1_0

Dl_l

Dl_2

Dl_3

Dl_4

Dl_5

Dl_6

Dl_7

Tabla Bl Conexiones del generador de patrones a la FPGA

Pin

5

6

9

13

17

21

25

26

A0

A0_0

A0_1

A0_2

A0_3

A0_4

A0_5

A0_6

A0_7

Pin

3

4

7

12

20

24

27

28

Al

A1_0

Al_l

Al_2

Al_3

Al_4

Al_5

Al_6

Al_7

Pin

33

34

38

41

46

49

53

57

B0

BOJ)

B0_1

B0_2

B0_3

B0_4

B0_5

BOJ)

B0_7

Pin

31

35

36

40

48

52

55

56

Bl

B1J)

Bl_l

Bl_2

Bl_3

Bl_4

Bl_5

B1J5

Bl_7

Pin

186

189

193

194

201

202

205

206

CO

C0_0

C0_1

C0_2

COJi

C0_4

C0_5

C0J5

C0_7

Pin

187

188

192

195

199

200

207

208

Cl

C1J)

Cl_l

Cl_2

Cl_3

Cl_4

Cl_5

Cl_6

Cl_7

Pin

217

218

221

222

229

230

234

237

DO

D0J)

D0_1

D0J2

D0_3

D0_4

D0_5

D0_6

D0_7

Pin

215

216

220

224

228

232

235

236

DI

D1_0

Dl_l

D1Jiquest

Dl_3

Dl_4

Dl_5

Dl_6

Dl_7

Tabla B2 Conexiones del generador de la FPGA al analizador loacutegico

284

Apeacutendice B Placa de Pruebas AFX para Virtex

Figura B4 Fotografiacutea del arreglo experimental placa AFX

B5 Metodologiacutea de medicioacuten de consumo

La metodologiacutea de medicioacuten es similar a la descrita en el apeacutendice A4 solo que aquiacute

se tiene en cuenta el hecho de que la periferia del circuito se alimenta a 33 V en tanto

que el core del circuito se alimenta con 25 V A consecuencia de lo antedicho el

consumo externo (pff-chip powef) depende de la tensioacuten de 33 V teniendo una

influencia despreciable sobre el consumo de 25V Se realizaron pruebas para

comprobar esta uacuteltima afirmacioacuten construyendo circuitos con buffers tri-estados en las

salidas y comprobando el consumo sobre la alimentacioacuten del core con los buffers

conectados y desconectados respectivamente En la tabla B3 se resumen las

componentes del consumo

285

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Consumo Estaacutetico

(StaticPower)

Consumo Externo

(Off-chippower)

Consumo de

Sincronizacioacuten

(Synchroniaption power)

Consumo Dinaacutemico

(DynamicPoiver)

El circuito es configurado pero no se le conectan estiacutemulos ni sentildeal de

reloj El resto de elementos externos que requiere la FPGA quedan

conectados Se obtiene consumo estaacutetico tanto en la alimentacioacuten del

core como en la de la periferia

El consumo externo estaacute soportado por la alimentacioacuten de la periferia

con lo que rentaacutendole el consumo estaacutetico se obtiene la componente

off-cbip

Un dato constante es usado como entrada al circuito mientras el reloj

es aplicado por tanto solo el reloj produce consumo Si no se utilizan

FF en los IOBs solo se notaraacute consumo sobre la alimentacioacuten del core

sino en ambas alimentaciones

Surge de restarle al consumo total de la alimentacioacuten del core su

consumo estaacutetico Los IOBs contienen FF y un miacutenimo de loacutegica la

que se trata de evitar de usar para no influir en las medidas

Tabla B3 Componentes del consumo y forma de medicioacuten en Virtex

Para obtener el consumo dinaacutemico solo bastaraacute con medir el consumo sobre la

alimentacioacuten del core retaacutendole el consumo estaacutetico Por tanto el voltiacutemetro y

amperiacutemetro (Fluke 175 [Flu02]) se colocan sobre la liacutenea de alimentacioacuten de 25V

No obstante se controla la tensioacuten de 33 V para evitar errores en las medidas

El error en la medicioacuten es similar al expresado en la seccioacuten A51 ya que se utiliza un

instrumental similar En el rango utilizado el voltiacutemetro posee un error 015 de la

lectura en tanto que el amperiacutemetro el 1

286

Apeacutendice B Placa de Pruebas AFX para Virtex

B6 Referencias del apeacutendice

[Flu02] Fluke Ibeacuterica Multiacutemetros digitales de la serie 170 available at httpwwwflukees 2002

[Lop03] Sergio Loacutepez-Buedo Teacutecnicas de Verificacioacuten Teacutermica para Arquitecturas Dinaacutemicamente Reconfigurables Tesis doctoral Departamento de Ingenieriacutea Informaacutetica Universidad Autoacutenoma de Madrid julio 2003

[TekOl] Tektronix inc TLA 704 Logic Analyzer user Guide available at wwwtektronixcom

[Tek02] Tektronix inc TLA7PG2 Pattern Generator Module available at wwwtektronixcom

|Xil01] Xilinx inc Virtextrade 25 V Field Programmable Gate Arrays Product Specification Data Sheet DS003-1 (v25 ) April 2 2001 Available at wwwxilinxcom

[XIacute103] Xilinx Inc Xilinx Parallel Cable IV Advance Product Specification Data Sheet DS097 (vi 4) March 2002 available at hrtp toolboxxilinxcomdocsan

[XU99] Xilinx inc Xilinx Prototype Platforms User Guide for Virtex and Virtex-E Series FPGAs Data Sheet DS020 (vll) December 1999 Available at wwwxilinxcom

287

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

288

Apeacutendice C

Placa de prueba para VIRTEXII

Cl Introduccioacuten

Las medidas de consumo sobre la familia Virtex II se llevaron a cabo sobre una tarjeta

de prototipado disentildeada y distribuida por Xilinx denominada Virtex-IIprototypeplatform

[XIacute103]

Si bien esta tarjeta es maacutes compleja que la descrita en el apeacutendice B y al margen de

tener componentes adicionales (FPGA de servicio PROMs etc) que consumen

corriente eacutestas se alimentan por una conexioacuten separada con lo que las mediciones se

pueden llevar a cabo sin inconvenientes En esta placa se puede montar cualquier

FPGA de la familia Virtex II de 15 V con encapsulado FG676 [XIacute104]

La tarjeta de prototipado para Virtex II contiene dos FPGAs una es el dispositivo a

medir (DUT - Device Under Test) y una FPGA de servicio El DUT puede ser

programada por una PROM viacutea el conector a tal efecto socket PROM) o utilizando

uno de los dos conectores auxiliares a traveacutes de cualquier sistema de configuracioacuten de

Xilinx como MultiUNX cable [Mul03] Parallel Cable HI [ParOO] Parallel Cable IV

[Par04] oacute System ACE [AceOl]

La FPGA de servicio es una matriz de interconexioacuten que controla el rutado para todas

las sentildeales de configuracioacuten en la placa Esto permite evitarse jumpers y switches para

controlar la placa Una PROM serie XC18V01 configura la FPGA de servicio Ni la

FPGA de servicio si su PROM son parte de la cadena de configuracioacuten

289

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

HSWAPEN (OWOFF)

I CLKDOUBLE I ClxUraUaDipSviMi

IQUumlDDDDDGGDDI

Clock Generalor

FfBqucnsySoIsct gS-SOMHr

IrJTACConlfd O

0FP3A 1PROM Z FPOUPRCU 3 P R D H J F P G A 4FEEDTHROUGH

O Ccnfanralpii Ma da 2

2ConfaiTalOTMxfa a IRS1ER SERIAL (PRC(I| 1 UASIER SERIAL (UPST REAll) 2 IWSTER SELECt IUP (PFOTl 1IIASTER SELECTIMP UPSIPtaiU) 4-SWIacuteSBW KJIAG B SELECT LWP rEXIERlIAL

O CWpSded

ToUpalroauBoBid JTO3 SHeacutectTEp

JTAG TCKTMSTDtTDO RaijflsYScraacutet B0D7CCLK

Service FPGA

Pragraintilde

Hiacuteatfcifa-FTOU Pit^hterBoatd

SPROM (VQ44 Socket)

LVCMCS20SC LVCM0S2OSC 5MB

JTAG SdodMi la Ucwnaticain Uoal

Tan User Raacutesela ItWl t^EtawAlnil iexclpoundf T3IacuteVBATT IED-UU)

Pcwar Buacutea and Switchaa

To l^sltum Borniacute

O r-O mdashOVECJa

E 3 - Swilch -ltJVCCOJraquo mdash^Sv-raquo 0nOIK)n ^ -QvOTJa

jvca

Ta DMmunsm Ebaid VCCO

VCC IrealPowa- USllS-OIlaquo210t

Figura Cl Diagrama de bloques de la placa de prototipado para Virtex II [XIacute103]

C2 Caracteriacutesticas de la placa de prueba para Virtex II

La figura Cl muestra un diagrama de bloques de la placa de pruebas en tanto la

figura C2 es una fotografiacutea detallada extraiacuteda de las notas de aplicacioacuten de Xilinx Los

elementos maacutes destacables de la placa son Interruptor de corriente (1) posee tres

posiciones conecta la corriente a la placa viacutea los reguladores de tensioacuten ubicados en la

parte inferior de la placa desconecta o conecta la alimentacioacuten viacutea los bornes de

alimentacioacuten separados (2) Conector de programacioacuten (3) se puede utilizar

MultiUNX oacute Paralkl Cable III Selector de frecuencia para el reloj interno (4) Selector

290

Apeacutendice C Placa de Pruebas Virtex II

para el modo de programacioacuten de la DUT (5) los conectores 5a 5b son para system

ACE [AceOl] en tanto 5c y 5d son conectores de interfase para los modos de

programacioacuten select-map oacute slave-serial Control de la cadena JTAG (6) Control del chip

select (7) asigna un nuacutemero entre 0 y 3 para el DUT en la cadena de chip-sekct Conector

para la EPROM del usuario (8) acepta las memorias de la serie XC17V01-V04 y

XC18V01-V04 con empaquetado VQ44 FPGA de servicio (11) se configura con una

EPROM propia que no estaacute en la cadena de JTAG principal viacutea el conector especiacutefico

(9) Conexiones para osciladores externos (15) Conexioacuten para generadores de onda

extemos (16) Socket para la FPGA a medir (19) las patas para ingresar y sacar datos

estaacuten mapeadas en la zona de conexiones (20) alliacute se pueden soldar conectores para

utilizar generador de patrones y analizador loacutegico Posee leds programables por el

usuario (21) e interruptores de reset y programacioacuten (2223) Led de inicializacioacuten (jmt)

y finalizacioacuten de la configuracioacuten (directo de la pata done) (24 y 25)

Figura C2 Detalle de la placa de prototipado para Virtex II [XUuml03]

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

C3 Dispositivos Virtex II utilizados

En esta placa se pueden conectar dispositivos Virtex II con encapsulado FG676 Las

combinaciones de encapsulado y dispositivo de las hojas de datos de Virtex II [XU04]

indican que existen tres dispositivos con este encapsulado XC2V1500 XC2V2000 y

XC2V3000 con 152 y 3 millones de puertas equivalentes respectivamente

Los dispositivos disponibles para esta tesis son una XC2V1500FG676-6 (una matriz

de 48 x 40 CLB 7680 slices 48 BlockRAMs y 48 multiplicadores) y una

XC2V3000FG676-6 (64 x 56 CLB 14336 slices 96 BlockRAMs y 96

multiplicadores) Para las medidas de eacutesta tesis se utiliza mayoritariamente el primer

dispositivo

C4 Conexioacuten de la placa de pruebas

Las FPGAs de la familia Virtex II utilizada alimenta el core del circuito a 15 V

(Vccint) la periferia a 33 V (Vccout) en tanto que la tensioacuten auxiliar depende del

estaacutendar de salida En este caso se utiliza LVTTL y por ende se alimenta con 33 V

(Vccaux) Adicionalmente la placa posee una alimentacioacuten de 33 V para la FPGA de

servicio las memorias EPROMs y demaacutes circuitos de la placa

Dos fuentes de alimentacioacuten dobles alimentan por separado cada parte de la placa con

las tensiones correspondientes En el arreglo experimental se controlan todas las

tensiones y las corrientes del core periferia y auxiliar Por lo general el consumo

dinaacutemico del core obviaacutendose el resto de las corrientes En la figura C4 se observa una

fotografiacutea del arreglo experimental

Para la excitacioacuten de los circuitos se utiliza un generador de vectores de test

TLA7PG2 de la empresa Tektronix [Tek02] la sentildeal de reloj para los circuitos se

obtiene igualmente de este generador Para comprobar los resultados se utiliza un

bullanalizador loacutegico TLA704 de la misma empresa [TekOl]

292

Apeacutendice C Placa de Pruebas Virtex II

Figura C4 Fotografiacutea del arreglo experimental placa Virtex II

C5 Metodologiacutea de medicioacuten de consumo

La metodologiacutea de medicioacuten es similar a la expresada en los apeacutendices A y B solo que

aquiacute se tiene en cuenta el hecho de que la periferia y la tensioacuten auxiliar del circuito se

alimenta a 33 V en tanto que el core del circuito se alimenta con 15 V Como

consecuencia el consumo externo (off-chip pomr) seraacute alimentado por la tensioacuten de

33 V (Vccaux y Vccout) teniendo una influencia despreciable sobre el consumo del

core (15V) Se realizaron pruebas para comprobar esta uacuteltima afirmacioacuten En la tabla

Cl se resumen las componentes del consumo

293

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Consumo Estaacutetico

(Static Power)

Consumo Externo

(Off-chtppower)

Consumo de

Sincronizacioacuten

(Synchroniyation power)

Consumo Dinaacutemico

(Dynamic Power)

El circuito es configurado pero no se le conectan estiacutemulos ni sentildeal de

reloj El resto de elementos externos que requiere la FPGA quedan

conectados Se obtiene consumo estaacutetico tanto en la alimentacioacuten del

core (Vccint) como en la de la periferia (Vccout y Vccaux)

El consumo externo estaacute soportado por la alimentacioacuten de la periferia y

la auxiliar con lo que rentaacutendole el consumo estaacutetico de cada

componente se obtiene la componente off-chip

Un dato constante es usado como entrada al circuito mientras el reloj

es aplicado por tanto solo el reloj produce consumo Si no se utilizan

FF en los IOBs solo se notaraacute consumo sobre la alimentacioacuten del core

sino en ambas alimentaciones

Surge de restarle al consumo total de la alimentacioacuten del core su

consumo estaacutetico Los IOBs contienen FF y un miacutenimo de loacutegica la

que se trata de evitar su utilizacioacuten para no influir en las medidas

Tabla Cl Componentes del consumo y forma de medicioacuten en Virtex II

Para obtener el consumo dinaacutemico solo basta con medir el consumo sobre la

alimentacioacuten del core restaacutendole el consumo estaacutetico de esa alimentacioacuten Por tanto el

voltiacutemetro y amperiacutemetro se colocan sobre la liacutenea de 15V No obstante se controlan

la tensioacuten y corriente sobre las alimentaciones de 33 V ya queen ciertos experimentos

se mide el consumo sobre Vccout y Vccaux

Respecto al error en las medidas al igual que en los arreglos experimentales del

Apeacutendices A y B el error del voltiacutemetros en el rango utilrzado es del 015 de la

lectura en tanto que en los amperiacutemetros el error llega al 1 El error en la potencia

calculado como el producto I x V es del orden del 1

294

Apeacutendice C Placa de Pruebas Virtex II

C6 Referencias del apeacutendice

[AceOl] Eric Thacker Xilinx Inc System Ace Configuration Solution for Xilinx FPGAs White Paper 151 (v10) Available at wwwxilinxcom September 2001

[Mul03] Xilinx inc Getting Started with the MultiLINX Cable Xilinx Application Note XAPP168 (v21) April 292003

[ParOO] Xilinx inc Hardware User Guide Chapter 1 Cable Hardware - Parallel Cable III Xilinx Foundation documentation Ver 31 Available at httptoolboxwwwxilinxcomdocsan3_li 2000

[Par04] Xilinx inc Xilinx Parallel Cable IV Data Sheet DS097 (v20) January 2004 Available at wwwxilinxcom

[TekOl] Tektronix inc TLA 704 Logic Analyzer Family user Guide versioacuten 41 2001 available at wwwtektronixcom

|Tek02] Tektronix inc TLA7PG2 Pattern Generator Module Instruccioacuten Manual 2002 Available at wwwtektronixcom

[XIacute103] Xilinx inc Virtex II Prototipe platform user guide UG015 v11 January 2003 Available at wwwxilinxcom

[XIacute104] Xilinx Inc Virtex-II Platform FPGAs Complete Data Sheet Data sheet DS031 (v33) June 2004 Available at httpwwwxilinxcom

295

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

296

Apeacutendice D

Traductor Kiss2VHDL

Dl Introduccioacuten

Se describe aquiacute la herramienta software construida para la realizacioacuten de los

experimentos de consumo con diferentes codificaciones en maacutequinas de estados

finitos (Capiacutetulo 4) Como proacutelogo se describen el formato de especificacioacuten de

maacutequinas de estado KISS2 [Sen92] y los grupos de bancos de pruebas (benchmarks tests)

MCNC |Lis88] y PREP [PreOO]

D2 El formato KISS

El formato KISS se origino con el programa de minimizacioacuten de funciones loacutegicas de

dos niveles usados para PLAs llamado espresso [Bra94] El formato evolucionoacute para dar

soporte a las maacutequinas de estado finitos (llamado KISS2) y se ha extendido su

utilizacioacuten en muacuteltiples herramientas de asignacioacuten y minimizacioacuten de estados

En KISS2 cada estado es simboacutelico dado un estado y un vector de bits de entrada la

tabla de transicioacuten indica el proacuteximo estado en forma simboacutelica y el vector de bits de

salida Las condiciones externas sin importancia don t cari) se indican a traveacutes de no

escribir la transicioacuten (es decir no se escribe la combinacioacuten estado actual-combinacioacuten

de entrada) Otra alternativa es escribir que no importa el estado de un bit de entrada

o salida y para ello se utiliza el caraacutecter - es decir Iacutendica que puede ser

indiferentemente 0 oacute 1

Los archivos KISS2 son en texto plano El caraacutecter da inicio a un comentario hasta

el fin de liacutenea (hasta el caraacutecter salto de liacutenea) Las siguientes palabras claves son

reconocidas donde [d] indica un nuacutemero decimal y [s] una cadena de texto

297

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

i [d] Especifica la cantidad de variables de entrada

bullo [d] Especifica la cantidad de variables de salida

p [d] Especifica la cantidad de reglas (opcional)

s [d] Especifica la cantidad de estados (opcional)

r [s] Especifica el estado de reset (opcional)

Luego se colocan las reglas en la tabla de estados donde current_state y next_state

son nombres simboacutelico que representan estados e input y output son los vectores de

bits de la entrada y salida respectivamente

inputs cuaent_state next_state outputs

e o end marcan el fin de la desscripcioacuten

Un primer ejemplo Un diagrama de transicioacuten de estados (STG) de una maacutequina de

estados con un bit de entrada y otro de salida tres estados 6 reglas Las palabras claves

correspondientes a la cantidad de estados y reglas son opcionales y no se han descrito

en este ejemplo

i 1

0 1 0 stO 1 stO 0 stl 1 stl 0 st2 1 st2 e

stO stl st2 stl stO stl

Figura Dl Un primer ejemplo de descripcioacuten KISS2

Segundo ejemplo Cada posicioacuten en la columna de variables de entrada o salida

indica una variable del mundo exterior En las entradas los 0 indican teacuterminos

complementados en tanto que los V teacuterminos directos El caraacutecter mdash que la variable

no estaacute presente (don t cari)

298

Apeacutendice D Traductor K1SS2VHDL

bull i 2 0 2 p 15 s 5 r si 11 si 0- si 10 si 00 s2 1- s2 01 s2 1- s3 0- s3 10 s4 01 s4 00 s4 11 s4 1- s5 00 s5 01 s5 end

s2 s2 s5 s3 s3 s4 s4 s5 si si s5 s5 si s3 s3

11 00 00 -1 10 -1 00 11 11 -1 11 0--0 10 1-

Figura D2 Ejemplo de grafo de transicioacuten de estados y su correspondiente especificacioacuten en KISS2

D3 Bancos de pruebas (Benchmarks)

Para medir y comparar consumo en maacutequinas de estado se han utilizados los circuitos

bancos de prueba del MCNC [Lis88] y los del consorcio PREP [PreOO]

MCNC Benchmarks El banco de pruebas para siacutentesis loacutegica y optimizacioacuten logic

synthesis and optimi^ation benchmarks) es distribuido por el Centro de microelectroacutenica de

Carolina del Norte (Microelectronics Center of North Carolina) e incluye los

conjuntos de bancos de prueba ISCAS85 e ISCAS89 El primer informe de gran

difusioacuten (versioacuten 20) data de 1988 [Lis88] y ha sido ampliado en la versioacuten 30

[Yan91] siendo eacutesta uacuteltima la versioacuten utilizada en esta tesis

El conjunto de circuitos de prueba esta divido en cuatro categoriacuteas fundamentales

Maacutequinas de estado en formato KISS2 Loacutegica secuencial multinivel en extended

BLIF (Berkeley Logic Interchange Formai) o SLIF Structure Logic Interchange Formai) Loacutegica

combinacional multinivel en extended BLIF o SLIF Por uacuteltima loacutegica de dos niveles

en Berkey PLA format (Como KISS pero sin estados) o SLIF Se puede conseguir en la

direccioacuten ftpmcncmcncorg directorio pubbenchmark LGSynth91

299

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

PREP Benchmarks El consorcio de compantildeiacuteas de electroacutenica programable

(Programmable Electronics Performance Company - PREP ) se creo con el aacutenimo de generar

una serie de pruebas que midiesen las prestaciones en FPGAs y otros dispositivos

programables De los nueve circuitos que distribuye la versioacuten 13 nos interesan los

circuitos 3 y 4 que implementan maacutequinas de estados (de 8 y 16 estados

respectivamente)

Actualmente el consorcio PREP se ha disuelto pero se pueden conseguir los circuitos

en VHDL o Verilog en una implementacioacuten de Symplicity [Syn88] o bien desde la

paacutegina web del proyecto httpwwwpreporg

D3 Traductor Eiss2VHDL

El programa Kiss2VHDL codifica los estados de la maacutequina que se ingresa en

formato KISS2 seguacuten los paraacutemetros ingresados y genera dos ficheros VHDL Uno

con la entidad de la maacutequina de estados y un top-level que instancia la maacutequina de

estados y agrega buffers de tercer estado en las patas del circuito

Modo de uso Kiss2VHDL [options] pnput]

-n No state Encoding Only transform K3SS into VHDL -h print help message -e option specify encoding option

r random encoding

h one hot encoding V two hot encoding o output dominant algorithm (default) out-oriented

pnput] file to be processed (default stdin)

El programa esta escrito en C posee un analizador sintaacutectico (parser) para transformar

el fichero KISS2 leiacutedo en una representacioacuten de diagrama (o grafo) de transicioacuten de

estados Posee rutinas para la asignacioacuten de estados y funciones para la escritura del

coacutedigo VHDL

A continuacioacuten se muestra el ejemplo de la traduccioacuten del ejemplo de la figura C2 con

codificacioacuten One Hot en coacutedigo VHDL

300

Apeacutendice D Traductor KISS2VHDL

mdash MEALY machine

mdash generado por el traductor kiss2vhdl

library ieee use ieeestd_logic_1164all library SYNOPSYS use SYNOPSYSattributesall

entity ejemplo is port(clk rst in std_logic

i in std_logic_vector (1 downto 0) o out std_logic_vector (1 downto 0) )

end ejemplo

architecture behave of ejemplo is type state is ( si s2 s5 s3 s4) attribute enum_encoding of state type is

10000 amp 01000 S 00100 amp 00010 S 00001

mdash si mdash s2 mdash s5 mdash s3 -- s4

signal machine next_state state signal o_i std_logic_vector (1 downto 0)

begin

mdash Sincronization state_machine process (rst clk) begin

if rst = 1 then machine lt= si

elsif rising_edge(clk) then machine lt= next_state

end if end process state_machine

next_state_process process (machine i) begin case machine is when si =gt

if i = 11 then next_state lt= s2 o_i lt= 11

elsif i(l) = 0 then next_state lt= s2 o_i lt= 00

elsif i = 10 then next_state lt= s5 o_i lt= 00

else next_state lt= si o_i lt= (others =gt X)

end if when s2 =gt

if i = 00 then next_state lt= s3 o_i lt= -1

elsif i(l) = 1 then

301

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

next_sta te lt= s3 o_i lt= 10

e l s i f i = 01 then next_sta te lt= s4 o_i ltlaquo - 1

e l se next_state lt= s2 o_i lt= (others =gt X )

end if when s5 =gt

i f i ( l ) = 1 then next_state lt= si o_i lt= -0

elsif i = 00 then next_state lt-= s3 o_i lt= 10

elsif i = 01 then next_state ltlaquo s3 o_i lt= 1-

else next_state lt= s5 o_i lt= (others =gt X)

end if when s3 =gt

if i(l) = 1 then next_state lt= s4 o_i lt= 00

elsif i(l) = 0 then next_state lt= s5 o_i lt= 11

else next_state lt= s3 o_i lt= (others =gt X)

end if when s4 =gt

if i = 10 then next_state lt= si o_i lt= 11

elsif i = 01 then next_state lt= si o_i lt= -1

elsif i = 00 then next_state lt= s5 o_i lt= 11

elsif i = 11 then next_state lt= s5 o_i lt= 0-

else next_state lt= s4 o_i lt= (others =gt X)

end if when others =gt

next_state lt= si o_i lt= (others =gt X)

end casa end process next_state_process

o lt~ o_i end behave

302

Apeacutendice D Traductor K3SS2VHDL

D4 Referencias del Apeacutendice

[Syn98] Synplicity Inc Synplify User Guide Releacutease 50 PREP VHDL Benchmark Examples August 1998 httpwwwsynplicitycom

[Lis88] Bob Lisanke Logic synthesis and optimization benchmarks Technical report MCNC Research Triangle Park North Carolina December 1988

[PreOO] Programmable Electronics Performance Corporation (PREP) Benchmarks (Programmable Electronics Performance Company) see httpwwwpreporg

[Sen92] E M Sentovich K J Singh L Lavagno C Moon R Murgai A Saldanha P R Stephan R K Brayton and A Sangiovanni-Vincentelli SIS A System for Sequential Circuit Synthesis Technical Report Memoraacutendum No UCBEKLMP241 Univ of California Berkeley 1992

[Bra84] Robert K Brayton Gary D Hachtel Curtiacutes T McMullen and Alberto L Sangiovanni-Vincentelli Logic Minimization Algorithms for VLSI Synthesis KluiverAcademicPublishers 1984

[Yan91] Saeyang Yang Logic Synthesis and Optimization Benchmarks User Guide Versioacuten 30 Technical report MCNC Research Triangle Park North Carolina January 1991

303

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

304

Apeacutendice E

Particionador de maacutequinas de estado Patt_FSM

El Introduccioacuten

El programa Part_FSM es un programa C++ para la particioacuten de maacutequinas de

estados Como entrada acepta maacutequina de estados descritas en formato KISS2 [Sen92]

(apeacutendice D) generando como resultado la particioacuten de la maacutequina de estados seguacuten

lo expresado en la seccioacuten 44 En primer lugar lee la maacutequina de estados y la

transforma en una representacioacuten interna de grafo de transicioacuten de estados (STG -

State Transitioti Grapuuml) luego le calcula la probabilidad estaacutetica Maacutes tarde se aplica el

algoritmo de particioacuten de maacutequinas de estado para por uacuteltimo generar el coacutedigo

VHDL de la maacutequina de estados particionada El programa acepta paraacutemetros para

especificar el tipo de arquitectura (arquitectura Ij II seguacuten la seccioacuten 434) u ortogonal

(seccioacuten 433) ademaacutes del tipo de meacutetodo de bloqueo necesario

E2 Estructuras de datos

La principal estructura de datos es el grafo de transicioacuten de estados (STG mdash State

Transitioti Grapuuml) donde se almacena la maacutequina de estado La estructura baacutesica es el

estado (stateacute) y la transicioacuten entre estados (transition) (la declaracioacuten de la parte privada

de las clase se puede ver en la figura Dl) luego el STG es un arreglo de estados Otra

estructura importante es la particioacuten (partition) que almacena en dos arreglos los

estados de cada submaacutequina de estados

305

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

E3 Caacutelculo de probabilidad estaacutetica

La probabilidad estaacutetica se calcula tal lo expresado en la seccioacuten 435 A medida que

se leen las liacuteneas que implican transiciones en el coacutedigo KISS2 se cargan en el grafo

de transicioacuten de estados y se asignan las probabilidades a los arcos La probabilidad

condicional de transicioacuten de un arco hacia otro si se considera equiprobabilidad de las

entradas es tan simple como dividir la proporcioacuten de combinaciones que generan la

transicioacuten respecto del total

En la Figura 416 se puede observar un ejemplo de caacutelculo de probabilidades Se

puede ver en la Figura 416b las probabilidades calculadas Por otra parte en el

ejemplo de la Figura E3 todas las probabilidades de transicioacuten son de 05

class state private

int present_state int no_of_fanout int no_of_fanin int inputs float steady_state_probability transition init ptr vectorltintgt fanin_states vectorlttransitiongt fanin_edges

public

c lass t r a n s i t i o n p r iva t e

i n t nextstatenum char inpu t_b i t s char ou tpu t_b i t s s t a t e nex t_s ta te f loa t t r ans i t i on_p robab i l i t y t r a n s i t i o n nex t_ t r ans i t ion

publ ic

Figura E l Declaracioacuten de la parte privada de las clases state y transition

Para resolver el sistema de n ecuaciones y asiacute obtener la probabilidad estaacutetica se

implementa un algoritmo iterativo para el caacutelculo Una vez obtenido la probabilidad

estaacutetica para cada estado se procede a calcular la probabilidad de transicioacuten que surge

306

Apeacutendice E Partiacutedonador de Maacutequinas de Estados

de multiplicar la probabilidad estaacutetica de cada estado origen por la probabilidad de

dicha transicioacuten Una vez obtenido un grafo con la informacioacuten que muestra la Figura

416C y la Figura 416d se procede a invocar al algoritmo de particioacuten

E4 Particioacuten de la maacutequina de estados

El criterio para la divisioacuten de la maacutequina de estados es la minimizacioacuten de la

probabilidad de transiciones entre las maacutequinas de estados es decir

min( 2 ] p(ij)) V e TlAj e UB dondep(iquestiexcl) es la probabilidad de transicioacuten de

la maacutequina original y IIA = Sai Sa2 bull bull -San y UumlB = Sbi Sb2 bull bull Sbmson las

particiones generadas

Existe otro criterio extra dentro del algoritmo que es la diferencia de cardinalidad de

las dos particiones siendo esta un paraacutemetro Las pruebas empiacutericas sobre las

arquitecturas disentildeadas muestran que los mejores resultados se logran con la misma

cantidad de estados en las submaacutequinas no obstante es un paraacutemetro por si se desea

implementar sobre otra arquitectura

Se ha implementado un algoritmo de backtracking (que explora todas las

combinaciones posibles) con funciones de poda para reducir el tiempo de caacutelculo No

fue necesario desarrollar una heuriacutestica para resolver el problema ya que la buacutesqueda

exhaustiva resuelve el peor caso presentado dentro del banco de pruebas del

MCNC91 [Lis88]iexclYan91] en unos pocos segundos En la figura E2 se puede observar

el coacutedigo para la generacioacuten de las particiones

307

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

coacutedigo del algoritmo de particioacuten void pa r t i t i one r (state STG pa r t i t i on P f loa t SminDist i n t n_state

i n t t o t_s t i n t maxjst f loa t ac tua l jd i s t i n t n_P0 i n t n_Pl) i n t numEdges f loa t growjdist

i f (n_state lt t o t j s t ) s i no se han asignado todos los estados asigno n_state a suacutebconj (particioacuten) 0 i f (n_P0 lt maxjst) siempre que no me pase del limite

growjdist = aurrentojdistance(P STG numEdges n j s t a t e 0 ) i f ((growjdist + actual jd is t ) lt minDist)

P-gtput(njstate 0) partioner(STGP minDist njs tate+1

t o t j s t maxjst (growjdist+actual_dist)n_PO+l n_Pl) P-gtdel_last(0)

asigno njstate a subconj (particioacuten) 1 i f (n_Pl lt maxjst) siempre que no se pase del limite

growjdist = aumentojdistance(PSTGnumEdgesnjstate1) i f ((growjdist+actualjdist) lt minDist)

P-gtput (njstate 1) partitioner(STG P minDistn_state+l

t o t j s t maxjst (growjdist+actualjdist)n_P0n_Pl + 1) P-gtdel_las t ( l )

else s e han asignado todos los estados

f loa t pd = partitionjdistance(PSTGnumEdges) i f ( pd lt minDist) si es la major sssolucioacuten se guarda

minDist = pd P-gtprint_parti t ion () i f (minP = NULL) delete (minP) minP = P-gtcopy()

Figura E2 Coacutedigo para la particioacuten de maacutequinas de estados

308

Apeacutendice E Partiacutecionador de Maacutequinas de Estados

E5 Generacioacuten del coacutedigo VHDL

Una vez realizada la particioacuten de la maacutequina de estados se genera el coacutedigo VHDL El

generador de coacutedigo tiene en cuenta los paraacutemetros que se han ingresado para generar

el coacutedigo correspondiente Se puede generar la arquitectura I o arquitectura II elegir el

tipo de bloqueo de los datos entre puertas ANDs hatches y buffers de tercer estado y

ademaacutes el tipo de codificacioacuten de las submaacutequinas

A continuacioacuten se muestran un ejemplo en base al circuito dk27 del MCNC que se

puede ver en la figura E3 En la figura E4 se muestra el coacutedigo KISS2 que se utiliza

como entrada al programa y la salida por pantalla con la informacioacuten de la

probabilidad calculada que exhibe la herramienta La figura E5 muestra la

informacioacuten que brinda la herramienta respecto de la particioacuten realizada Maacutes adelante

la figura D6 muestra graacuteficamente los datos de la particioacuten

Figura E3 Diagrama de-transicioacuten de estados de la maacutequina de estados DK27

309

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

bullmodel dk27 bull i 1 0 2

p 14

s 7 bull r stO 0 stO st6 0 st2 st5 0 st3 st5 0 st4 st6 0 st5 stO 0 st6 stO 0 stl st5 1 st6 st2 1 st5 st2 1 st4 st6 1 stl st6 1 stO st4 1 st2 st3 1 st3 stl end

00 00 00 00 10 01 00 01 10 10 10 00 00 00

Reading Design dk27 Finished reading successfully Model Ntildeame dk27 Number of states 7 Nurriber of Inputs 1 Number of Outputs 2 Number of transitions 14 Reset State 0

Steady State probabilities stO mdash gt 025 stl mdash gt 00357143 st2 mdash gt 025 st3 mdash gt 00714286 st4 mdash gt 00714286 st5 mdash gt 0142857 st6 mdash gt 01785710142857

Transitions probabilities stOmdashgtst6 stOmdash-gtst4 stlmdashgtst5 stlmdashgtst6 st2~gtst5 st2mdashgtst3 st3mdashgtst5 st3mdashgtstl st4~gtst6 st4mdashgtst6 st5mdashgtst0 st5~gtst2 st6~gtst0 st6~gtst2

0125 0125 00178571 00178571 0125 0125 00357143 00357143 00357143 00357143 00714286 00714286 00892857 00892857

Figura E4 a) Coacutedigo K3SS2 de entrada b) Informacioacuten de la herramienta con

las probabilidades calculadas

Time elapsed (seconds) 0 Time elapsed (docks) 230 (CLOCKS_PER_SEC 1000)

Detail of Partitions Number of States original FSM 7 Size Partition 0 3 Size Partition 1 4 States Partition 0 stO st4 st6 States Partition 1 stl st2 st3 st5

Transitions of Partition 0 to Partition 1 Edge st6 -gt st2 Prob00892857 Total probabilities of transition partO to partiacute 00892857

Transitions of Partition 1 to Partition 0 Edge stl -gt st6 Prob00178571 Edge st5 -gt stO Prob00714286 Total probabilities of transition partO to partiacute 00892857

Figura E5 Informacioacuten de las particiones generadas

310

Apeacutendice E Paruumlcionador de Maacutequinas de Estados

Figura E6 Particioacuten generada para el circuito dk27

Por uacuteltimo se muestra el coacutedigo VHDL para el circuito dk27 con la arquitectura I latches para bloquear los datos y buffers tri-estados para las salidas En la estructura se reconocen cuatro procesos buf_tri_output que genera buffers de tercer estado para las salidas state_machine para la inferencia de registros blockingjatches para inferir los latches de las entradas next_state_proces_a y next_state_proces_a son los bloques combinacionales de las submaacutequinas de estado Por uacuteltimo ouiput_process para generar el multiplexor de la salida

mdash Partitioned FSM generated by part_FSM mdash Design dk27kiss2 mdash Number of States 7 mdash Partition 0 0 4 6 mdash Partition 1 1 2 3 5

library ieee use ieeestd_logic_1164all

entity dk27 is port(clk rst tri in std_logic

i in std_logic_vector (O downto 0) o out std_logic_vector (1 downto 0) )

end dk27

architecture behave of dk27 is

type state is ( stO stl st2 st3) attribute enum_encoding of state type is

1000 amp mdash P0 0 mdash Pl 1 0100 S -- P0 4 mdash Pl 2

311

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

0010 amp mdash PO 6 mdash Pl 3 0001 mdash Pl 5

mdash Internal signal declarations signal next_a next_b machine machine_a machine_b state signal activeFSM_a activeFSM_b std_logic signal activeFSM std_logic signal inp_a inp_b std_logic_vector (0 downto 0) signal o_i_a o_i_b std_logic_vector (1 downto 0) signal sal std_logic_vector (1 downto 0)

begin

mdash Output Trlestate Buffer buf_tri_output process (trisal) begin

if tri = l1 then o lt= sal

else o lt= others =gt Z

end if end process buf_tri_output

mdash Sincronization state_machine process (rst clk) begin if rst = 1 then

machine lt= stO elsif rising_edge(clk) then

if activeFSM = 0 then machine lt= next_a activeFSM lt= activeFSM_a

else machine lt= next_b activeFSM lt= activeFSM_b

end if end if end process state_machine

mdash Inputs Latches states and inputs blocking_latches process (activeFSM machine i) begin

if activeFSM = 0 then inp_a lt= i machine_a lt= machine

else inp_b lt= i machine_b lt= machine

end if end process input_latches

next_state_process_a process (machine_a inp_a) begin case machine a is

312

Apeacutendice E Partiacutecionador de Maacutequinas de Estados

when stO =gt mdashstO if inp_a = 0 then

next_a lt= st2 mdash st6 activeFSM_a lt= 0 o_i_a lt= 00

elsif inp_a = 1 then next_a lt= stl mdash st4 activeFSM_a lt= 0 o_i_a lt= 00

else next_a lt= stO mdash stO activeFSM_a lt= 0 o_i_a lt= (others =gt X)

end if when stl =gt mdashst4

if inp_a = 0 then next_a lt= st2 mdash st6 activeFSM_a lt= 0 o_i_a lt= 00

elsif inp_a = 1 then next_a lt= st2 mdash st6 activeFSM_a lt= 0 o_i_a lt= 10

else next_a lt= stl mdash st4 activeFSM_a lt= 0 o_i_a lt= (others =gt X)

end if when st2 =gt mdashst6

if inp_a = 0 then next_a lt= stO mdash stO activeFSM_a lt= 0 o_i_a lt= 01

elsif inp_a = 1 then next_a lt= stl mdash st2 activeFSM_a lt= 1 o_i_a lt= 01

else next_a lt= st2 mdash st6 activeFSM_a lt= 0 o_i_a lt= (others =gt X)

end if when others =gt

next_a lt= stO mdash reset state activeFSM_a lt= 0 o_i_a lt= (others =gt X)

end case end process next_state_process_a

next_state_process_b process (machine_b inp_b) begin case machine_b i s when stO =gt mdash s t l

i f inp_b = 0 then

313

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

next_b lt= st3 mdash st5 activeFSM_b lt= l o_i_b lt= 00

elsif inp_b = 1 then next_b lt= st2 mdash st6 activeFSM_b lt= 0 o_i_b lt= 10

else next_b lt= stO mdash stl activeFSM_b lt= 1

o_i_b lt= (others =gt X) end if

when stl =gt mdash s t 2 if inp_b = 0 then

next_b lt= st3 mdash st5 activeFSM_b lt= l1 o_i_b lt= 00

elsif inp_b = 1 then next_b lt= st2 mdash st3 activeFSM_b lt= bull1bull o_i_b lt= 00

else next_b lt= stl mdash st2 activeFSM_b lt= 1 o_i_b lt= (others =gt X)

end if when st2 =gt mdash s t 3

if inp_b = 0 then next_b lt= st3 mdash st5 activeFSM_b lt= 1 o_i_b lt= 00

elsif inp_b = 1 then next_b lt= stO mdash stl activeFSM_b lt= 1 o_i_b lt= 00

else next_b lt= st2 mdash st3 activeFSM_b lt= l1 o_i_b lt= (others =gt X)

end if when st3 =gt mdashst5

if inp_b = 0 then next_b lt= stO mdash stO activeFSM_b lt= 0 o_i_b lt= 10

elsif inp_b = 1 then next_b lt= stl mdash st2 activeFSM_b lt= 1 o_i_b lt= 10

else next_b lt= s t 3 mdash st5 activeFSM_b lt= 1

o_i_b lt= (others =gt X ) end if

314

Apeacutendice E Partiacutecionador de Maacutequinas de Estados

when others =gt next_b lt= stO mdash reset state activeFSM_b lt= l1 o_i_b lt= (others =gt X)

end case end process next_state_process_b

mdash select the output (multiplexor) output_process process (activeFSM o_i_a o_i_b) begin

if activeFSM = 0 then sal lt= o_i_a

else sal lt= o_i_b

end if end process output_process end behave

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

316

Apeacutendice F

Utilizacioacuten de la herramienta de estimacioacuten de consumo Xpower

Fl Introduccioacuten

Xilinx incorpora desde la versioacuten 41 de su software de disentildeo ISE (Jntegrated Software

Enviromenf) la herramienta de estimacioacuten de consumo XPower [Xpo04] Xpower es

una herramienta de anaacutelisis de consumo post Place ltiquestr Route para FPGAs (y post-fit en

CPLDs) donde se puede analizar interactivamente el consumo Incluye una

herramienta con interfaz graacutefica (GUI - Grafical User Interfaceacute) denominada Xpower y

una aplicacioacuten de proceso por lotes (batcb) Xpwr

Esta herramienta utiliza como entrada ficheros de simulacioacuten con formato VCD

(Valueacute Change Dump) creados con la herramienta Modelsim [Men04] para calcular los

estiacutemulos en cada nodo del circuito La informacioacuten final es presentada en formato

HTML o texto plano ASCII Seguacuten Xilinx Xpower estima el consumo con una

precisioacuten + -10

F2 Uso de Xpower con FPGAs

Xpower se puede invocar desde el entorno ISE donde se carga el archivo NCD

(Native Circuit Description) conteniendo el disentildeo opcionalmente el fichero PCF

(PhysicalConstraintsFile) con las restricciones del usuario oacute las generadas por el mappery

ffr m

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

por uacuteltimo los datos de una simulacioacuten previa Se pueden ademaacutes agregar la tensioacuten

de alimentacioacuten y la temperatura ambiente

La opcioacuten de utilizar la interfaz graacutefica (figura Fl) es uacutetil por el corto tiempo de

aprendizaje no obstante para realizar muacuteltiples mediciones y comparaciones la

herramienta de procesamiento por lotes (Xpwr) es maacutes adecuada

En vez de colocar los datos de simulacioacuten se puede colocar expliacutecitamente la

actividad que uno cree conveniente en cada nodo oacute bien colocar valores por defecto

(12 de actividad) o estimar los valores de actividad Estiacutemate Activity Rates en el

menuacute Tools) Ninguna de eacutestas alternativas es aconsejable dado que los valores de

resultado que brinda no tienen nada que ver con la actividad real ya que no se tiene en

cuenta la tremenda influencia de los glitches en las FPGAs Por ejemplo en un

multiplicador de 16 bits pueden existir nodos internos permutando maacutes de 8 veces la

frecuencia de reloj mientras que otros nodos solo tienen una actividad del 5

respecto de la sentildeal de reloj

F21 Generacioacuten del fichero VCD

El fichero que recoge los movimientos del circuito se llama VCD (yalue Change Dump

mdash Volcado del cambio de valores) El fichero VCD automatiza la anotacioacuten del

movimiento de las sentildeales Normalmente se parte de un testbench significativo del

funcionamiento del circuito del cual se extraen los movimientos de los datos internos

Los simuladores soportados por Xpower son el Model Technology ModelSim

iexclMod04] (en sus versiones XE PE and SE) y Cadenee Verilog XL Cadenee NC-

Verilog Cadenee NC-VHDL Cadenee NC-SIM [Cad04] En esta seccioacuten solo se

aborda el uso de Modelsim

La lista completa de los comandos para el fichero VCD se puede ver en [Mod03b]

Los comandos necesarios en el flujo VHDL es el ingreso de forma interactiva o bien

en un fichero de comandos (do file) de los siguientes comandos (estos comandos se

pueden utilizar en un flujo Verilog)

ved file my_designvcd

ved add testbenchuut

Los comandos anteriores generan un fichero VCD llamado my_designvcd

Asumiendo que el nombre de la entidad del banco de pruebas es testbench y que el

318

Apeacutendice F Uso de la herramienta XPOWER

nombre de instancia de la unidad a simular es uut unit under test) la segunda liacutenea de

comandos indica agregar todas las sentildeales al archivo VCD

Se puede agregar el modificador - r al comando ved add para agregar todas las

sentildeales en un nivel de loacutegica mayor que uno (que es el valor por defecto) El uso del

modificador mdashr puede aumentar considerablemente el tamantildeo del fichero de

simulacioacuten pero naturalmente seraacute mucho maacutes preciso

A partir de la versioacuten 61 del entorno de desarrollo del ISE [Ise03] se incorpora la

opcioacuten de generar automaacuteticamente el fichero VCD para un testbench En las

propiedades de la simulacioacuten post place ltamp ntildeute se agrega esta opcioacuten para cualquier

testbench ya sea Verilog o VHDL

El tamantildeo de los ficheros generados suelen se muy grandes dependiendo baacutesicamente

del tiempo de simulacioacuten y el tamantildeo del circuito Simular un multiplicador de 32x32

bits con datos de entrada cada 100 ns durante 4 jas (40 multiplicaciones) requiere

unos 13 MB Es faacutecil de imaginar que simular el orden de segundos en un disentildeo

medio ocuparaacute en el orden de los GB El tiempo de simulacioacuten es un tema nada

despreciable para disentildeos grandes con bancos de pruebas importantes

Z XilmKXPowcr-[top anrfspwr] P f f a Sft Vfcw Totfa Wndw Me

| |csaK- raquo - l|s|g[laquo-1iquestUf bull gt t ^

Vofcapo tf Cuncnt (bull Powat ft |iquestd

PfrWlraquo

DWMTWC

OVtwme Qtffttcert

B jraquo n laquoa

ZOO amp-gt SSIacute-

JJfci

f 3 iquest 3 DataView

ffid Oockiacute

| eacute E3 Irputi I Eacute-EJ Icsfc i BJCD otputt I ffi pound3 Sfcntildealt I B 3 Ropcrt Viom

laquo-PovlaquoR^poit(HTML)

=l

Releacutease 62031 - XPover SofcvareVerslonG3lo Copyright (c) 1S9S-2004 Xlllnx Inc All righea reserved Design cop_ands Preferences cop_and3pcpound VCD Ti le EXproj_I3E_di3ablingCLK_newgace_clfc_VII_X6 cop_ands 1 ved Pare 2vl500iacuteg676-6 Daca versioacuten ADVANCEDvl0107-31-02

Pover auaanary I(mA) P(raU)

Total estlaaced pover consuapcion

Vcelnc lSOVi Vccaux 330V Vcco33 330V

Outpucs Vcco33 Logic

Signaacuteis Cloefcs inputs

Quiescent Vecint 150V

143 100

215 330

iacutel

~Ii

a BAPNINCPower90 - Canc change acclvicy race of nec S_23 co 00 of elkmdashBDTGP HARNINGPower90 - Canc change acclvicy race of nec S_24 to 00 of clk_BUFGP VAFNINGPover9D - Canc change acclvicy race of nec S_25 co 00 of elfc_B0TGP BABNXNGPower90 - Canc change acclvicy race of nec S_26 co 00 of clk_BuTGP WARNINGPower90 - Canc change acclvicy cace of nec S_27 co 00 of clk_B0TGP

fortfefeptwtiEr ^- bullbull gt bull iexclwiquestihamp^^vmvmm

Figura Fl Aspecto de la interfaz graacutefica Xpower

319

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

F22 Uso de la interfaz graacutefica Xpower

Se puede invocar independientemente (stand alone modeacute) en cuyo caso se deberaacute cargar

posteriormente el disentildeo oacute desde el entorno ISE En este uacuteltimo caso se cargaraacute el

fichero NCD y PCF correspondiente al disentildeo activo De existir un fichero VCD con

el mismo nombre del disentildeo se cargaraacute tambieacuten los movimientos alliacute descritos Si no

se ha cargado el fichero VCD se lo puede cargar desde la barra de menuacutes file -^ open

simulationfile

Otra opcioacuten para introducir los movimientos es cargar un fichero XML extended

markup Language) con un resumen de los movimientos de cada sentildeal y otras

informaciones como tensioacuten de alimentacioacuten temperatura ambiente etc file -^ open

settingsfile Este fichero que resume la actividad en cada nodo es generado por una

previa ejecucioacuten de Xpower file -^ save settingsfile as

Otros datos que se pueden agregar interactivamente son la tensioacuten de alimentacioacuten la

capacidad de la bateriacutea la temperatura ambiente cambiar el empaquetado y agregar

ventilacioacuten Finalmente se pueden ver los informes en formato texto o HTML

presionado en report vieiif Al margen de la visualizacioacuten en la ventana a tal efecto

generaraacute un fichero en texto plano con la extensioacuten xpw (o en formato html) en el

directorio de trabajo del proyecto de Xilinx

El tipo de reporte puede ser seleccionado entre los tipos standard detaikd oacute advanced) a

traveacutes del menuacute edit bull$ preferences En el modo advanced informaraacute la corriente y

potencia maacutexima de cada fuente de alimentacioacuten asiacute como la corriente estaacutetica

Informacioacuten de la corriente maacutexima disipable por el dispositivo dependiendo de las

condiciones de temperatura ambiente y refrigeracioacuten antes suministradas Tambieacuten

informaraacute las sentildeales elementos de loacutegica entradas y salidas que maacutes consumen (la

cantidad se define en las preferencias)

F23 Uso de la liacutenea de comando Xpwr

La herramienta de liacutenea de comandos Xpwr es uacutetil a la hora de sistematizar medidas

repetitivas con procesos por lotes El ejecutable estaacute en la carpeta de instalacioacuten de

Xilinx Ejecutando xprw - h se obtiene la lista de comandos (Figura F2) Un ejemplo

de liacutenea de comando utilizado en estaacute tesis es

xpwr my_designncd my_designpcf -v -a -s my_designvcd -o reportpwr

320

Apeacutendice F Uso de la herramienta XPOWER

Comando

-v[-a]

-1 ltlimitgt

-x ltuserdatagt

-wx ltuserdatagt

-s ltsimdatagt

-tb ltnumgt [unit]

-o ltreportfilegt

^t lttclscriptgt

Accioacuten

Modo verboso [-a] avanzado

Nuacutemero maacuteximo de lineas en el reporte

Lectura de un fichero XML previamente guardado

Grabar un fichero de movimientos XML

Especifica el fichero de simulacioacuten (fichero VCD)

Unidades en el fichero de reportes basados en tiempo

Las unidades son ps (por defecto) ns fs y us

Especifica el nombre del fichero de salida

Especifica un script TCL para aplicar los settiacutengs

Figura F2 Opciones en la herramienta de linea de comando Xpwr

F3 Scripts para el uso del Xpower

En el punto F22 se mencionoacute la utilizacioacuten de la herramienta de liacutenea de comandos

xpwr y sus opciones de liacutenea de comando No obstante es uacutetil no solo invocar a la

herramienta Xpwr sino tambieacuten a las herramientas de xilinx para generar un modelo

simulable del disentildeo y al simulador (en este caso modelsim) para generar de forma

automaacutetica el (los) fichero(s) VCD Tambieacuten dependiendo del caso se puede llegar a

independizar totalmente del entorno ISE e invocar a las herramientas de

implementacioacuten de las FPGAs desde liacutenea de comandos

F31 Scriacuteptpata la implementacioacuten del disentildeo

La implementacioacuten de un disentildeo implica llamar al sintetizador (en este caso XST

[Xst03]) luego al ngdbuild [Ngd04] que traduce los ficheros EDIF y NGC en un

fichero NGD con el disentildeo Posteriormente el map [map04] traduce el NGD en

componentes especiacuteficos del dispositivo Mas tarde la herramienta par [Par04] realiza

el emplazado y rutado La herramienta trce [Trc04] realiza un anaacutelisis estaacutetico de

tiempos generando un fichero con extensioacuten twr y por uacuteltimo bitgen [Bit04] genera el

fichero bit para programar el dispositivo

El script de la figura F3 espera como paraacutemetros el nombre del disentildeo asiacute como el

dispositivo donde se ha de implementar Por ejemplo

implement my_design xc2vl500-fg676-6

321

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Script

x s t

1implement (1 es

- i n t s t y l e i s e - i f r ngdbuild - i n t s t y l e ise map - i n t s t y l e i s e -p lncd lngd lpcf p a r

t r c e -w - i n t s t y l e i s e -- i n t s t y l e i s e -e

bi tgen - i n t s t y l e i s e -

nombre disentildeo

i projnav1 -dd l_ngo -2 -cm aacuterea

ol s td - t 1 1 3 - 1 3 -xml 1 f lut lncd

2 dispositivo)

x s t

i

-k

-ofn -p 2 4 - c

lsyr lngc 1 100 - t x

ncd lncd lpcf 1 ncd --o ltwr

ngd off -o

lpcpound

Figura F3 Script de implementacioacuten de un disentildeo

F32 Script pasa la simulacioacuten y generacioacuten del fichero VCD

Para realizar la simulacioacuten post place amp route primero se debe generar el fichero de

simulacioacuten con la herramienta netgen |Net04] (en antiguas versiones eran 3

herramientas separadas ngd2ver ngd2vbdly ngdannoacute) El modelo de simulacioacuten generado

puede ser VHDL o Verilog y adicionalmente esta herramienta genera un fichero SDF

(Standard Deay Formaiacute) necesario en la simulacioacuten place amp route Desde el punto de vista

teoacuterico da lo mismo simular el modelo VHDL o Verilog sin embargo se han

encontrado diferencias en los resultados en las uacuteltimas versiones del software El

ejemplo de la figura F4 genera el modelo de simulacioacuten Verilog

Script 2 gen_vcd (1 es el nombre disentildeo)

netgen - i n t s t y l e i s e - s 4 -pcf lpcf -ngm lngm -w -ofmt ve r i log -sim lncd l_timesimv cmd C vsim s c r ip t_s imdo xpwr lncd lpcf -v -a - s l_lvcd -o l_lpwr -wx l_lxml

xpwr lncd lpcf -v -a - s l_nvcd -o l_npwr -wx l_nxml

Figura F4 Script de simulacioacuten e invocacioacuten a xpwr

Tras esto se debe invocar al simulador con el comando vsim [Mod04] con un fichero

de comandos para el simulador (extensioacuten do) Un ejemplo de script para el simulador

se muestra en la Figura F5 El ejemplo carga primero xxvpackage en VHDL luego el

modelo del disentildeo postplaced route (en verilog la carga del fichero SDF es imphcita en

tanto que en VHDL se debe hacer expliacutecitamente) y por uacuteltimo se carga un fichero

322

Apeacutendice F Uso de la herramienta XPOWER

testbench en VHDL El comando vsim carga la simulacioacuten con precisioacuten de 1 ps El

archivo de testbench del ejemplo lee ficheros de textos que estimulan el circuito por ello

a continuacioacuten se hace una llamada a la liacutenea de comando [cmd) para copiar un fichero

de texto al directorio actual Luego se define el fichero VCD y se agregan las sentildeales

para luego simular hasta el final El ejemplo continua reiniciando la simulacioacuten y

ejecutando nuevamente el ciclo con otro grupo de valores

Una vez ejecutado el simulador y generado el (los) fichero(s) VCD se puede invocar el

xpwr con las opciones descritas en F23

Scriacutept3 scriacutept_simdo (escriacuteptpara modelsim)

vcom

vlog

vlog

vcom

vsim

exec

ved

ved lt

run

-93 -explicit mipack vhd

CXilinxverilogsrcglblv

design_timesimv

-93 -explicit mi_test vhd

i

-t Ips +maxdelays -L simprims_ver -lib work testbench glbl

cmd c copy Wtestl

file design_lvcd

add testbenchuut

-all

restart -f

exec

ved

ved

run

quit

cmd c copy test2

file design_2vcd

add testbenchuut

-all

-forceacute

txt test

txt test

txt

txt

Figura F5 Script para el simulador

F4 Cometarios y conclusiones

La herramienta de estimacioacuten de consumo Xpower brinda una interesante viacutea para la

estimacioacuten del consumo no obstante desde el punto de vista praacutectico en disentildeos

industriales plantea varios inconvenientes Para un disentildeo normal del orden de milloacuten

de puertas simulado por algunos milisegundos de tiempo real puede requerir tiempos

de simulacioacuten del orden de horas y ficheros VCDs de decenas de Gigabytes Antildeadido a

esto realizar un testbench de un circuito complejo lo suficientemente representativo de

323

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

la actividad media puede ser una tarea excesivamente complicada En esta liacutenea existen

trabajos para poder predecir la actividad de circuitos complejos [Tod04] y de este

modo evitarse el tiempo de disentildeo de testbenches significativos las horas de simulacioacuten

y los Gigabytes de datos intermedios

Otro aspecto a destacar de esta herramienta es que es una herramienta en constante

evolucioacuten y se puede observar que los datos informados por la herramienta sufren

importantes cambios de versioacuten a versioacuten En esta tesis se ha evaluado la herramienta

desde la versioacuten 41 del ISE [Xpo02] con modelsim 56 [ModOl] hasta la 62 [Xpo04]

con modelsim 58 [Mod04] pasando por todas las intermedias y midiendo datos

concretamente con la que acompantildea a la versioacuten 52 [Xpo03a] (modelsim 57

|Mod03]) observaacutendose importantes diferencias en los resultados

Maacutes aun en la uacuteltima versioacuten del software evaluada [Xpo04] se han encontrado

diferencias en los resultados generando modelos post place ltiquestr route en VHDL o

Verilog

A lo largo de esta tesis se presentaron algunos resultados comparativos con

mediciones realizadas con los arreglos experimentales de los apeacutendices B y C

utilizando los mismos valores de excitacioacuten con resultados bastante dispares Una

evaluacioacuten definitiva necesita de maacutes casos de estudio

324

Apeacutendice F Uso de la herramienta XPOWER

F5 Referencias del apeacutendice

[Bit04] Xilinx inc Development System Reference Guide veroacuteX Chapter 15 BitGen January 2004 available at wwwxilinxcom

[Ise03] Xilinx inc ISE Integrated Development Environment ver 61 Whats New in Xilinx ISE 61i 2003 available at wwwxilinxcom

[Map04] Xilinx inc Development System Reference Guide ver6X Chapter 8 MAP January 2004 available at wwwxilinxcom

[Mod02] Model Technologies ModelSimreg SE Users Manual Versioacuten 56e October 2002 available at wwwmodelcom

[Mod03a] Model Technologies ModelSimreg SE Users Manual Versioacuten 57d May 2003 available at wwwmodelcom

[Mod03b] Model Technologies ModelSim SE Users Manual Ver57d chapt 15 -Valueacute Change Dump (VCD) Files May 03 available at wwwmodelcom

[Mod04] Model Technologies ModelSimreg SE Users Manual Versioacuten 58c March 2004 available at wwwmodelcom

[Net04] Xilinx inc Development System Reference Guide veroacuteX Chapter 23 NetGen January 2004 available atwwwxilinxcom

[Ngd04] Xilinx inc Development System Reference Guide ver6X Chapter 6 NGDBuild January 2004 available atwwwxilinxcom

[Par04] Xilinx inc Development System Reference Guide ver6X Chapter 10 PAR January 2004 available at wwwxilinxcom

[Tod04] E Todorovich E Boemo F Cardells J Valls Power Analysis and Estimation Tool integrated with XPOWER Tivelfth ACM International Symposium on Field-Programmabk GateArrays (FPGA04) February 2004

[Tra04] Xilinx inc Development System Reference Guide veroacuteX Chapter 13 TRACE January 2004 available atwwwxilinxcom

[Xil03b] Xilinx Inc XST (Xilinx Synthesis Technologies) User Guide 40 distributed with ISE 6X available at wwwxilinxcom June 2003

[Xpo02] Xpower Xpower getting started Releacutease versioacuten 4203Iacute 2002 available at supportxiIinxcom

[Xpo03] Xpower Xpower getting started Releacutease versioacuten 5103i 2003 available at supportxilinxcom

[Xpo04] Xpower Xpower getting started Releacutease versioacuten 6203Iacute 2004 available at supportxilinxcom

325

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

326

  • RESUMEN
  • SUMMARY
  • AGRADECIMIENTOS
  • IacuteNDICE
  • LISTA DE FIGURAS
  • LISTA DE TABLAS
  • LISTA DE ACROacuteNIMOS
  • ANGLICISMOS BARBARISMOS NEOLOGISMOS Y OTROS DEFECTOS
  • CAP 1 INTRODUCCIOacuteN Y MOTIVACIOacuteN
    • 11 Reduccioacuten y estimacioacuten del consumo
    • 12 Marco tecnoloacutegico
    • 13 Seleccioacuten de teacutecnicas de reduccioacuten de consumo
    • 14 Objetivos de esta tesis
    • 15 Organizacioacuten y lectura de esta tesis
    • 16 Referencias del capiacutetulo
      • CAP 2 CONSUMO EN CIRCUITOS CMOS Y SU EFECTO EN FPGAS
        • 21 Consumo en circuitos CMOS
        • 22 Espacio de disentildeo para bajo consumo
        • 23 Temas destacados en el disentildeo para bajo consumo
        • 24 Nivel de proceso y tecnologiacutea
        • 25 Nivel de implementacioacuten
        • 26 nivel de arquitectura y sistema
        • 27 Nivel algoriacutetmico
        • 28 Nivel sistema
        • 29 Otros conceptos en el tratamiento del consumo
        • 210 Desglose del consumo en FPGAs
        • 211 Resumen del capiacutetulo
        • 212 Referencias del capiacutetulo
          • CAP 3 EXPERIMENTOS SOBRE BAJO CONSUMO
            • 31 Experimentos generales
            • 32 Relacioacuten entre velocidad y consumo en FPGAs
            • 33 Conmutacioacuten de los datos de entrada
            • 34 Efecto de la segmentacioacuten en el consumo
            • 35 Observaciones en la disminucioacuten del consumo registrando las entradas y salidas
            • 36 Reduccioacuten del consumo por deshabilitacioacuten de partes inactivas del circuito
            • 37 Conclusiones y recomendaciones a nivel disentildeador
            • 38 Referencias del capiacutetulo
              • CAP 4 REDUCCIOacuteN DE CONSUMO EN MAacuteQUINAS DE ESTADO
                • 41 Estrategias para reduccioacuten de consumo en maacutequinas de estados
                • 42 Experimentos sobre codificacioacuten de maacutequinas de estados en FPGAs
                • 43 Particioacuten de maacutequinas de estado en FPGAs
                • 44 Recomendaciones para la reduccioacuten de consumo en maacutequinas de estado
                • 45 Referencias del capiacutetulo
                  • CAP 5 EXPERIMENTOS SOBRE BLOQUES ARITMEacuteTICOS
                    • 51 Introduccioacuten
                    • 52 Multiplicacioacuten modular
                    • 53 Sumadores de alta velocidad
                    • 54 Algoritmos y arquitecturas para l divisioacuten entera
                    • 55 Algoritmos y arquitecturas para la divisioacuten de nuacutemeros fraccionarios
                    • 56 Conclusiones del capiacutetulo
                    • 57 Referencias del capiacutetulo
                      • CAP 6 CONCLUSIONES Y FUTUROS TRABAJOS
                        • 61 Conclusiones y aportaciones
                        • 62 Trabajos futuros
                        • 63 Publicaciones relacionadas con este trabajo
                        • 64 Reglas empiacutericas para el disentildeo de bajo consumo en FPGAs
                          • APEacuteNDICE A PLACA DE PRUEBA FAMILIA XC4K
                          • APEacuteNDICE B PLACA DE PRUEBA AFX (Virtex)
                          • APEacuteNDICE C PLACA DE PRUEBA PARA VIRTEX II
                          • APEacuteNDICE D TRADUCTOR KISS2VHDL
                          • APEacuteNDICE E PARTICIONADOR DE MAacuteQUINAS DE ESTADO PART_FSM
                          • APEacuteNDICE F UTILIZACIOacuteN DE LA HERRAMIENTA DE ESTIMACIOacuteN DE CONSUMO XPOWER
Page 3: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral

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

uam
Nota

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

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

compleja (tablas Qsel mucho mayores y productos q(i+1)d maacutes complejos)

Valores de base grandes (mayores que 16 K=4) son impracticas en las FPGAs

actuales

bull Representacioacuten del cociente La representacioacuten en base 2k usa un sistema

representacioacuten redundante de diacutegitos con signo para asegurarse que la

determinacioacuten del digito del cociente solo se basa en los algunos de los diacutegitos maacutes

significativos nr y nd del residuo y el divisor respectivamente En un sistema de

representacioacuten no redundante los diacutegitos en base r se representan con exactamente

r diacutegitos cociente 0 1 r En un sistema redundante se utilizan maacutes de r

valores La representacioacuten de los diacutegitos tienen la forma -a - a + 1 -1 0 1

a-1 a es decir un conjunto simeacutetrico y consecutivo de valores enteros con

un diacutegito maacuteximo a Para ser un sistema redundante a debe cumplir la relacioacuten

a gt r2 El grado de redundancia se mide por el factor de redundancia [redundancy

factor) definido como p = a (r-1) En sistema para a = I r 2 | es conocido como

redundante miacutenimo (minimally redundante mientras que con a = r-1 (y por tanto p =

1) es llamado redundante maacuteximo (maximally redundant) Si a gt r- y p gt 1 el

conjunto de diacutegitos es conocido como sobre redundante (pver-redundani) Por

ejemplo para la representacioacuten en base-4 el conjunto de diacutegitos miacutenimo es -2-1

01 2 (a = 2p= 23) el redundante maacuteximo es -3-2 2 3 (a = 3p= 33)

y el sobre redundante es -4-3 3 4 (a = 4 p = 43) Mayores valores de a

conducen a selecciones maacutes simples de cociente (menores valores de nr + nd para

direccionar la tabla Qsel) En esta seccioacuten solo se utiliza RAM distribuida (basada en

LUTs dentro de los slices) para la implementacioacuten de las tablas de seleccioacuten Los

bloques especiacuteficos de RAM (llamados BRAM en Virtex and Virtex II) pueden ser

utilizados para generar las tablas Qsel

Representacioacuten del residuo w(j) Tradicionalmente en tecnologiacuteas VLSI se

utilizan representaciones redundantes tipo carry-save con el objetivo de acelerar la

resta rwltj)-q(iexcl+i)D La utilidad de esta teacutecnica en FPGAs es relativa donde la loacutegica

dedicada de acarreo hace que los sumadores tradicionales tipo ripple-carry sean maacutes

eficientes para pequentildeos y medianos tamantildeos de datos tanto para la suma como

para la resta En esta seccioacuten se analizan sistemas no-redundantes (complemento a

dos) y redundantes carry-save)

210

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

554 Implementaciones combinacionales en FPGAs para nuacutemeros

fraccionarios

En eacutesta seccioacuten se describen los detalles en la implementacioacuten de divisores para

nuacutemeros fraccionarios Primero los algoritmos con y sin restauracioacuten y luego los

algoritmos SRT base-2 -4 -8 -16 con resto en complemento a dos Finalmente se

examina una implementacioacuten original del algoritmo SRT base 2 con resto en formato

carry-save

5541 Algoritmo con restauracioacuten y sin restauracioacuten

La divisioacuten de enteros como se mencionoacute trata fundamentalmente con los algoritmos

con y sin restauracioacuten Ajustar estos algoritmos para operandos fraccionarios es trivial

El arquitectura de divisioacuten con restauracioacuten implementada con el algoritmo

representado en la Figura 517 necesita) celdas restontildeng_division_step Cada una de ellas

necesita un restador de (laquo+l)-bit y un muldplexor 2 a 1 de laquo-bit esto quiere decir que

necesita (raquo+l) slices y un retardo de 2Tbdquoiexcl + nTmax^ + Tbdquot Entonces un divisor de n-

bits con p-bits de precisioacuten tiene un aacuterea y retardo de

Cmpoundnp) = p(Cmt_iquestlaquogt_p(iexcl)) =p(n+V) =pn+p slices

Tmnp) iexclp( TmtjK_laquopn) + T) = 2pTh +ptiTmiexcllx + 2pTsct

El algoritmo sin restauracioacuten implementado en Virtex oacute Virtex II es maacutes eficiente La

celda nonrestontildeng_division_cell se implementa con p (raquo+l)-bits sumador-restador Cada

celda necesita n2+1 slices y tiene un retado de Tbdquoi + Si se requiere el resto

final un sumador condicional (raquo2 slices) seraacute necesario para ajustar el resto cuando

sea negativo Aacuterea y retardo el algoritmo sin restauracioacuten

CbdquoAacuteflp) = pCbdquomr_jltp(n)) + CndtddM =Mlaquo2+iacute)+ fi2 = pn2 +p + n2 suumlces

TbdquoArtp)ampp (rwulepW+Ta^+TcoriacutejtaacuteJd+Tnt = (p+l)Tbdquofplusmnp (tl+ 1)Taiexcllx+(n+)TBtt

5542 Algoritmo SRT base 2 resto complemento a dos

En eacutesta implementacioacuten en base 2 se utiliza para la representacioacuten del residuo el

complemento a la base Esto permite que la tabla Qsel sea trivial (de hecho no existe)

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

ya que se puede utilizar los dos bits de mayor peso para determinar la operacioacuten a

realizar (Tabla 511)

W(nn-1) =

srn(l0)

0 0

01

10

11

Valor Residuo

0 lt r lt 12

12 lt r lt 1

-1 lt r lt -12

-12 lt r lt 0

Operacioacuten a

Realizar

Nada

Restar Divisor

Sumar Divisor

Nada

Diacutegito

resultado Q(i)

0

1

-1

0

Tabla 511 Operaciones a realizar por el SRT en base 2

De este modo se pueden integran Qsel el multiplicador (solo multiplica por 1 0 o -1)

y el restador de la Figura 523 en una uacutenica celda srt_b2_division_step Esta celda ocupa

(raquo+)2 slices (laquo+1 ya que se opera con un bit maacutes de precisioacuten que el tamantildeo de los

operandos) El contenido de un slice de la celda srt_b2_division_step se puede ver en la

figura 54 El valor carry(-l) se carga con la sentildeal srn(0)

srn(1) sm(0) d(iexcl+1) w(i+1)

srn(1) srn(0) d(i) w(i)

carry(i+1)

n_w(i+1)

n_w(i)

carry(i-1)

Figura 524 Arquitectura de la celda srt_r2_division_step para el algoritmo SRT en base 2

212

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La funcioacuten loacutegica a realizar por la LUT (g(i)) es la descrita en la Tabla 512 Para el

primer caso srn = 00 se pasa el operando W directo en el segundo (srn = 01) al

realizar la suma se realiza la operacioacuten W copy D como en la suma normal En el tercer

caso (srn = 10) al realizar la resta con lo que se calcula not(W copy D) ademaacutes en el

carry(-l) se ingresa 1 En el uacuteltimo caso (srn = 11) se debe dejar el operando W

directo pero dado que la entrada carry(l) = srn(0) = 1 la funcioacuten g(i) computa la

operacioacuten not(w) Se puede observar que esto ultimo funciona por un lado la salida de

la puerta XOR calcularaacute not(w) copy 1 = w y por otro la salida carry(y) seraacute siempre uno

dado que el multiplexor de acarreo realizaraacute la funcioacuten not(not(w))w+not(w) 1 = 1

El retardo de la celda restoring_division_step seraacute Tm_gtitp_r2IacuteJi) mdash Tkt + (n+l)TmuXy

Ope

rand

o

W D

irec

to

Sum

a

W +

D

si sO d W(j) g(i)

0 0 0 0 iexclOacute

0 0 0 1 -i

0 0 1 0 0

o o i i i

i

Res

ta

W-D

Nie

ga W

si sO d W(j) g(i)

I O O O aso I O O I i3f 1 0 1 0 laquo1

1 0 1 1 0

1 1 0 0 1

1 1 0 1 0

1 1 1 0 1

1 1 1 1 0

Tabla 512 Funcioacuten loacutegica implementada en la celda S_R_Nada del algoritmo SRT base 2

La arquitectura del divisor SRT base 2 se puede ver en la Figura 525 Las celdas

srt_r2_division_step realizan la multiplicacioacuten y resta antes descrita y da como salida el

nuevo resto W(i+1) y el digito qreg del cociente (representado con dos bits y

correspondientes a los bits n-1 y n-2 del resto W(i) de entrada)

La celda cond_adder es un sumador condicional de raquo bits que se utiliza en le caso que el

uacuteltimo resto parcial fuese negativo La sentildeal adjust es simplemente el bit de signo del

uacuteltimo resto El aacuterea y retardos son los ya descritos

La celda converter realiza la operacioacuten de transformar los diacutegitos q(i) e -1 0 1 en

binario puro Adicionalmente resta uno en caso que se deba realizar el ajuste en el

resto en aquellos casos que el uacuteltimo resto w(p) hubiese sido negativo Baacutesicamente lo

213

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

que implementa es un restador que suma el complemento maacutes uno Esta suma de uno

se realiza a traveacutes del carry(-l) el que es a su vez se conecta a la sentildeal que informa si ha

habido ajuste adjust)

El aacuterea necesaria esp2 slices y el tiempo es similar que el de un sumadorrestador La

funcioacuten loacutegica implementada por cada LUT es not(q(i)(0) copy q(i)(l)) la sentildeal que debe

entrar en el muxcy es q(l)(0)

01 W(0)(n0) = 0 ampX OampD

i_t q(-D

Q(0p)

pound altn w _ d

y division_step ^ n w

W(1)(n-1n-2) |w(1)(n0)

iacutel W(1)(n-10)amp0

pound 5fn w bdquo d

y division_step 9 n w

~|w(2)(n0)

W(p-1)(n-1n-2) W(p-1)(n-10)amp0 iacutel pound

5tn w bdquo d y division_step q n w

W(p)(n)

adjust

A W(p)(n0)p

(m+1 )-biexclt cond_adder

1 r(p)

Figura 525 Esquema para el divisor SRT base 2

El aacuterea total corresponde ap celdas srt_r2_divisioti_step (pound(laquo+1)2 slices) un sumador

condicional Qi2) y una celda ajuste (p2) El camino criacutetico pasa por los p

srt_r2_divmon_step y por el condiriacuteonal_adder siendo similar al divisor sin restauracioacuten

214

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La diferencia es que los tiempos de conexioacuten son maacutes lentos productos del mayor fan-

out de las conexiones

C[np) =p(n+1)iexcl2 + n 2 + p 2 = (pn+n+2p)2 slices

T(tip) =pTbdquo +ptmmnm + tiexcllaquo + max(p+nJrV)tauxv + n+V)tmaXy

Un aspecto interesante en esta implementacioacuten es la potencial reduccioacuten consumo

debido a la menor actividad ya que en promedio el 50 de las veces no se realiza ni

suma ni resta

5543 Algoritmo SRT base 4 resto complemento a dos

En eacutesta implementacioacuten en base 4 se utiliza para la representacioacuten del residuo el

complemento a la base La tabla Qsel utiliza 5 bits para determinar el cociente en el

rango -3-2-1 0 1 2 3 (seguacuten PD-plot [ParOO]) Para codificar el cociente se

utilizan 3 bits en formato signo-valor absoluto (SVA) El primer bit del cociente (el

signo) s_r_n(2) se determina por el primer bit del resto W(n+2) y se utiliza la loacutegica

invertida (1 positivo 0 negativo) El modulo del cociente se obtiene en funcioacuten de los

siguientes 3 bits del resto W(n+ln-l) a excepcioacuten del caso 011 donde se consulta el

bit n-1 del dividendo para decidir El cociente se codifica seguacuten lo expresado en la

Tabla 513

Bits del Resto

W(n+2n-l)-d(n-l)

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1 - 0

0 0 1 1 - 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

Qi binario

1 0 0

1 0 1

1 1 0

1 1 0

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

Qi decimal

0

1

2

2

3

3

3

3

3

Tabla 513 Seleccioacuten de

Bits del Resto

W(n+ln-l)-d(n-l)

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1 - 0

1 0 1 1 - 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

Qi binario

0 0 0

0 0 1

0 1 0

0 1 0

0 1 1

0 1 1

0 1 1

0 1 1

0 1 1

Qi decimal

-0

-1

-2

-2

-3

-3

-3

-3

-3

diacutegito Qi en el SRT en base 4

215

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Para la multiplicacioacuten se utiliza las puertas mul_and que acompantildean a cada LUT para

llevar acabo la multiplicacioacuten eficiente por dos bits Esto permite realizar la

multiplicacioacuten praacutecticamente con el mismo costo en aacuterea que un multiplexor 2-1 de n

bits Requiere n2 + 1 slices para multiplicar un natural binario de n nits por otro de 2

bits El retardo es similar al de un sumador de raquo+2 bits es decir Tmbdquomu mdash tki +

(n+1)tgt wux-g + tm i T txoiZ

carry(i)

carry(i-1)

Figura 526 Celda para el caacutelculo de x(n0) x srn(l0)

raquo out(iexcl)

El esquema del divisor SRT base 4 se puede ver en la Figura 528 mientras que la

celda srt_r4_division_step se muestra en la Figura 527 La celda srt_division_step_r4

necesita 3 LUTs para la funcioacuten Qsel es decir 2 slices el multiplicador (laquo+2)2 slicer y

el sumador condicional (raquo+2)2 slices Con lo que el costo total Ceacuteiexcl^_itiexclgt_rf= n+4 slices

w(n+20) d(n+20) w(n+2n-1)

i_ Qsel

q(2)laquo-q(Dlaquo-q(tgt)lt- n+2 X 2 bits multiplier

q(2) = sign

w_q(n+40)

w_q(n+20) plusmn w_q(n+20) X

iacute n+2 bits adder substractor

T Figura 527 Celda Division_step_r4 para el divisor SRT base 4 con resto en complemento a dos

216

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

El retardo estaraacute constituido por tiempo de Qsel maacutes el retardo de la multiplicacioacuten y

el tiempo de ejecucioacuten de la suma_resta Ademaacutes el caacutelculo de Qsel se realiza con un

slke configurado como una funcioacuten de 5 entradas (usando MuxF5) para el bit srn(0)

El bit srn(l) se calcula con una LUT normal mientras que el bit srn(2) -el del signo

no- necesita calcularlo es W(n+2) Luego el retardo es

W(0)(n0) = 00amp X amp 0

Q(0p)

i f w diexclviexclsion_step

n w

i |w(1)(n+20)

W(1)(n0)amp00 pound w division_step

n w | W(2)(n+20)

qq(-p2-1) i W(p2-1)(n0)amp00 pound division_step

n w

W(p2)(n+2)

adjust

|w(p2)(njiquest

remainder

Figura 528 Divisor SRT base 4 con resto en complemento a la base

iquest] (n+1)-bitcond_adder

000amp D

Celda converter

El conversor de diacutegitos en SVA en base 4 de un diacutegito (2 diacutegitos binarios) a binario

complemento a dos se puede mapear eficientemente en la estructura de la FPGA La

Figura 529 muestra el contenido de un slke que implementa la conversioacuten de un digito

217

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

SVA en 2 bits La entrada carry(-1) se alimentaraacute de la sentildeal adjust que sumaraacute uno

cuando no se deba ajustar y cero en caso contrario

El signo de diacutegito SVA ( qqreg(2) ) se ingresa en la entrada complementada del

MUXCY La eficiente implementacioacuten de esta conversioacuten depende de que la sentildeal

qq(i)(2) se haya codificado con loacutegica invertida es decir (0-negativo I-positivo) La

funcioacuten o(2i) = not (qqreg(0)) y o(2i+l) = not (qq(i)(l))

carry(2iexcl+1)

qq(i)(1)

qq(iexcl)(2)

qq(i)(o)

qq(iexcl)(2)

tD- q(2iexcl+1)

3$gt- q(2iexcl)

carry(2i-1)

Figura 529 Contenido del sliacutece perteneciente a la celda converter para el divisor SRT base 4

Justificacioacuten de la eleccioacuten del conjunto de cocientes

Estas son algunas de las ventajas en el conjunto redundante maacuteximo es decir

Qi e -3 3 en vez de miacutenimo redundante Qi e -2 2 en la implementacioacuten en

FPGAs

bull El producto Wq(i) si bien es maacutes simple en el segundo caso solo un multiplexor

2-1 de raquo+2 bits ocupa lo mismo que el multiplicador por 2x(laquo+2) bits El retardo

en el primer caso es Tbdquo contra Tbdquoi + (n+2)TmttXV en el segundo caso

bull Como contrapartida la tabla Qsel es mucho maacutes simple en el caso de utilizar amdash3

La funcioacuten Qsel en la representacioacuten redundante miacutenima usa 5 bits del resto y 4 del

divisor El aacuterea y retardo de Qsel para la representacioacuten redundante miacutenima son 3

218

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

slices y 2Tiut+Tnit respectivamente versus 2 slkes y Tibdquoiexcl para la representacioacuten

redundante maacutexima

raquo La conversioacuten final a binario se puede hacer eficientemente si se utiliza loacutegica

invertida en la representacioacuten del signo de los diacutegitos del cociente

5544 Algoritmo SRT base 8 resto complemento a dos

En la implementacioacuten en base 8 se utiliza para la representacioacuten del residuo el

complemento a la base La tabla Qsel utiliza 9 bits para determinar el cociente en el

rango -7 0 7 (seguacuten PD-plot de la Figura 530) Para codificar el cociente

se utilizan 4 bits en formato signo-valor absoluto (SVA) El primer bit del cociente (el

signo) s_r_n(3) se determina por el primer bit del resto W(n+3) y se utiliza la loacutegica

invertida (1 positivo 0 negativo) El modulo del cociente se obtiene en funcioacuten de los

siguientes 3 bits del resto W(n+3n-2) y tres bits del divisor D(n-2n-4)

Figura 530 PD-Plot para SRT base 8 con cociente en el rango -7 -6 -5 -1 0 1 6 7

219

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

La celda srt_division_step_r8 es similar a la de base 4 (Figura 527) solo que la

multiplicacioacuten es por 3 bits y la tabla Qsel tiene 9 bits de entrada y 4 de salida (signo

maacutes 3 bits) La celda converter para base 8 es similar que en el caso de base 4 solo que

se utilizan 3 LUTs por cada diacutegito Por tanto aacuterea y retardo es

C^jiexcll_ji^_rs= 32raquo + 22 slices

Tmjiiexcliacute_fttp_tsmdash 1-Tiui + (n+3)Tmuxy + 6Tmiexcl

El circuito como en base-2 y base-4 necesita un sumador condicional para el ajuste

del resto (n2+1 slices) y un conversor a complemento a dos ((iquestgt+l)2 slices) Por tanto

el aacuterea y el retardo del SRT base 8 son

Csrt_rs(fJjp) mdash plb(Ciiexclvjttp_A$) + CnmUJJaQl) + Cmpaiacutetr

=p3(32n+22)+gtj2+(p+V)2+l =pn2 + n2 + 476p + 2 slices

Ttrt_rs(Jp) ~p3-(Fltliexcli_ftip_r8(n)+Tbdquot)+TaibdquoJ_piexclJa(tIacute)+Tbdquoet

= (J3p+)Tiu(plusmn(pn3+n+2)Tbdquomv+(J3p+)Tbdquobdquo

5545 Algoritmo SRT base 16 resto complemento a dos

En la implementacioacuten en base 16 se utiliza para la representacioacuten del residuo el

complemento a la base La tabla Qsel utiliza 12 bits para determinar el cociente en el

rango -15 0 15 (seguacuten PD-plot de la Figura 531) Para codificar el cociente

se utilizan 5 bits en formato signo-valor absoluto (SVA) El primer bit del cociente (el

signo) s_jr_n(5) se determina por el primer bit del resto W(n+5) y se utiliza la loacutegica

invertida (1 positivo 0 negativo) El moacutedulo del cociente se obtiene en funcioacuten de los

siguientes 6 bits del resto W(n+2n-4) y cuatro bits del divisor D(n-2n-6) Un total de

268 LUTs dentro de 141 slices son necesarios para la tabla Qsel en Virtex y 221 LUTs

en 181 slices en Virtex II La diferencia entre las familias de FPGA son debido a la

disponibilidad de los multiplexores dedicados muxF7y muxF8 en Virtex II

La celda division_step_r16 es similar al caso base 4 y 8 solo que la multiacuteplicacioacuten es por

4 bits y la tabla Qsel tiene 12 bits de entrada y 5 de salida (signo maacutes 4 bits) La celda

converter es tambieacuten es similar a las anteriores solo que se utilizan 4 LUTs por cada

diacutegito Por tanto Ca^ipyK = 2raquo + 144 slices y TJIacute^^M = 8Tbdquo + (n+4)Tm^ + 6Tk

220

IZZ

_ lt bullstfrt mdash V o i

fl~ st oSwei p ira ajirarooo uoo 91 asijq XHS vivd Iacute O J J - Q iquest Igg BJnSij

miro Huiro n-ioi-o uoovo 10HT0 l-OOH-O lOIOH) WOOrO

n-iro wuo n-oro moro P onro 001ro otero 0001 o

OOOOO

soDOaunoB sanbojq ajqos sojusurcradxg g oirajdir)

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Como en los casos anteriores un sumador condicional de (laquo+1) bits es necesario si se

necesita el resto asiacute como la celda converter para el cociente La implementacioacuten

completa pues tiene

C^_rf iacute(laquo^)=)4(Q^^_rfiacute(raquo))+Cw^^raquo)+C1^ltr =p4(2n+150)+n2+p2+2

=gtlaquo2+raquo2+36gt+2 slices

Trt_r16 np) ~pAr(Taacutehjl^_r16n)+Tbdquo^)+TaiexclbdquoJ_Jddn(n)+Tbdquoi

= ltp+VgtThl+(pnA+n+2)Ta^+ltJ4p+)Tlll

5546 Algoritmo SRT base 2 resto catty-save

En eacutesta implementacioacuten en base 2 se utiliza para la representacioacuten del resto o residuo

en formato carry-save El diagrama de bloques del divisor se puede ver en la Figura

532 Para la implementacioacuten de la celda division_step se analizan dos alternativas

diferentes

La primera aproximacioacuten para la celda division_step es la que se sugiere en la Figura

533 donde se utiliza un sumador de 3 bits para componer la cabecera del resto

parcial y una tabla de look-up para obtener las sentildeales q_Jgtos y q^neg que codifican el

digito seleccionado

En la bibliografiacutea iexclPar00][Erce04] se sugiere la necesidad de sumar los 4 bits de mayor

peso para direccionar la tabla de seleccioacuten de cocientes No obstante en eacutesta tesis se ha

probado empiacutericamente que 3 bits son suficientes Los valores que calcula la tabla Qsel

se pueden ver en la Tabla 514

Por otra parte el multiacuteplexor de la Figura 523a y el sumador carry-save se puede

integrar en una sola LUT utilizando las puertas xorcy y el muxcy Por cuestiones del

rutado interno del slice solo se puede integrar la suma de un diacutegito en cada uno de

ellos En siacutentesis la celda tiene un aacuterea y retardo de

Cbdquon_t_fuiiquest mdash n + 4 slices

TalLfs^id = 3Tlut + 2gtTmuxf + 2Tbdquot + 2Txor

222

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

Como en las implementaciones descritas anteriormente es necesario agregar un

sumador condicional para el ajuste del resto y un conversor de diacutegitos con signo

magnitud a complemento a dos Con esto la primera versioacuten del divisor SRT con

carry-save (usando un sumador) tendraacute un aacuterea y retardo de

Ciexclrt_fjiljlp) ~pCctll_fs1-Sf CamJ_1JJer+ Cnnvcrtcr -ptl + Ap + fi2 + 1 + raquo 2 + l

= (p+iacute)n +4p+2 slices

Tirt_r_fdaacutenp) ~p(Tlaquo_ai + Tbdquoe) + 2Tlaquo+ Tajj+ Tabdquoj_jjj

= (3gt+2)Tbdquo+ (2n+3p+2) + 2jampTlaquor+(3p+2)

Q(0p)

(p+1)-bit subtracter

X

i i q_pos u v

diexclvision_step q_neg u- V

^ ^ q_pos u v

diexclvision_step q_neg u- v

i i q_pos u v

division_step q_neg u- v

EZI (m+1)-bitadder

r(p)(n0) I r(p)(n) I _

adjust ^ (m)-bit cond_adder

T remainder

Figura 532 Arquitectura del SRT en base 2 con el resto en formato carry-save

223

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

u(n+1n-1) v(n+1n-1)

q_pos laquo

q_negltc

u1

0

1 (tn+1)-bitCSA

0

1

T Figura 533 Celda baacutesica del divisor SRT en base 2 con resto en formato cany-save

Valor

U(n+ln-n + V(bdquo+in-iacute)

000

001

010

011

100

101

110

111

Min valor

u+v

000xxx

001xxx

010xxx

011xxx

100xxx

101xxx

110xxx

l l lxx x

Max valor

u+v

001xxx

010xxx

011xxx

100xxx

101xxx

110xxx

l l lxx x

000xxx

Min decimal

0

y2

1

1 Vi

-2

- 1

-1

-Va

Max decimal

yraquo

i

1 Vi

-2

-1 Vi

-1

-Vi

0

Diacutegito elegido

1(10)

1(10)

1(10)

-1 (01)

-1 (01)

-1 (01)

-1 (01)

0(00)

Tabla 514 Tabla Qsel para el SRT base 2 con cany-save

224

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

J gt - gt V(m)

gt u(3)

E gt - gt V(2)

gt u(2)

pound gt gt V(1)

gt u(1)

gt v(0)

Figura 534 Implementacioacuten en FPGA de la celda baacutesica del divisor SRT en base 2 con resto en formato carty-save

La segunda versioacuten optimiza la seleccioacuten del diacutegito Q(i) remplazando la suma y la

seleccioacuten de 3 bits por una tabla de look-up (Figura 535) Dado que como se

mencionoacute anteriormente solo bastan sumar 3 bits de u y v la tabla para q_pos y q_neg

solo seraacute de 6 bits esto se puede implementar con 8 LUTS (4 slices) usando ademaacutes los

multiplexores muxF5 y muxF6 Esto proporciona un aacuterea y retardo para la celda

cell_cs_lut aacutet

Cttn_ajut = n + 4 slices

Tctttjsjut 21ttt + Imuxoacute + iacuteitit + lxor~ ~gtlkt + Tbdquoi + l^iacutexor

Por tanto el SRT con resto en carry-save y Qsel implementado completamente con

LUTS (sri_cs_L) tiene un costo en aacuterea y tiempo de

Cuutj (raquogt) mdashp-Cau+ Cabdquo_1jdtr+ Cabdquomiacuteir= (p+l)n + 4 ^ + 1 slices

_

u(n+1n-1) v(n-1n-1)

Qsel Table

q_pos-laquoLneg-

b(mj = 0-u(m-1)-v(m-1) bull

q_pos

v(1)-

q_pos-

V A shy

CUDOS bull

q_neg-b(0)-

LUT 0 1 7 ^ 7 t

LUT 0 1 i ^

LUT

2LUTs

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Tsrt_a_L(ttp) mdashp-(Tbdquo+ Tbdquo1) +2rbdquo+ TbdquoJJ+ Tabdquoi_fidd

= (3p+2)n+ (2n+2)Tm^+pTiar+ (2p+2)Tbdquod

Importante el hecho de que tanto Taii_ft_piexclu como Tttii_tsjut son constantes de modo que

el tiempo de computacioacuten depende de la precisioacutenraquo (y nif ngtp) y no solo del ancho

de los datos n

u(nn-2) v(nn-2)

LA -Qsel

(4 Slices)

q_poslaquo-q_neglt-

i 0

1 0

i

b

1 (n+1)-bitCSA

V f u T V

Figura 535 Celda de divisioacuten SRT con resto en carry-save (2da versioacuten)

555 Arquitecturas segmentadas

Para aumentar la velocidad la segmentacioacuten pipelinin^ es una teacutecnica altamente

efectiva sobre todo cuando se trata con lotes grandes de operaciones En esta teacutecnica

cada LD etapas de divisioacuten division_step sucesivas se agrega una etapa de elementos de

almacenamiento (registros de segmentacioacuten) Figura 536 De este modo el camino

criacutetico se reduce y consecuentemente se puede aumentar la frecuencia de operacioacuten

(maacutes detalles de la segmentacioacuten en la seccioacuten 34)

Se han llevado a cabo la segmentacioacuten para los divisores sin restauracioacuten (non-restoriniquest)

SRT base 2 y base 4 con resto en complemento a la base y finalmente SRT con resto

en carry-save Se utiliza la denominacioacuten de LD (Logc Deptfi) para denominar la cantidad

maacutexima de pasos de divisioacuten diviuacuteon_step entre bancos de registros sucesivos Las

celdas division_step para cada implementacioacuten son las descritas en 5441 5442

5443 y 5446 respectivamente

226

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

reg

reg

v v

q(-1)

W(0) = X

i pound

q(-2)

q(-p)

gtreg

division_step 0

I register

| W ( 1 ) ^

division_step 1

I register

| W(2) f

register

q(-p+1) fw(-p+1) |T

division_step pk+1

v v converter

sign(W(-p))

C J )

T adjust

W(-p)

f conditional adder

Q(0p) T

register

mdash gt register

register

remainder

Figura 536 Arquitectura segmentada de un divisor SRT con LD = 1

Para la implementacioacuten de las etapas de registros se utilizan los flip-jlops distribuidos en

los slices Adicionalmente los registros de deskewing pueden ser implementado usando

registros de desplazamientos implementados en LUT llamados SRL16 (Shift Registers

in LUT) Los registros de desplazamiento basados en tablas de look-up permiten

comprimir 16 shifi-registers en una sola LUT La teacutecnica de pipelining tiene pues un bajo

impacto en aacuterea dados los registros distribuidos dentro de los slices y de las

caracteriacutesticas de SRL16 de las LUTs Ademaacutes como fue descrito anteriormente la

227

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

segmentacioacuten tiene un fuerte impacto en la reduccioacuten del consumo por la eliminacioacuten

de las transiciones espurias (glitches)

556 Circuitos Secuenciales

Para la reduccioacuten del aacuterea la principal teacutecnica es secuencializar (al menos

parcialmente) la ejecucioacuten del algoritmo de divisioacuten La arquitectura general agrega

una maacutequina de estados que controla la ruta de datos compuesta por g etapas de

divisioacuten consecutivas y los registros correspondientes para almacenar los valores

intermedios (Figura 537)

-gt Q_en n r p n State I = P r-en

W(n1)amp00laquo4l0-degampX(n10)

_ _ r t l 7 D(n-10)

i div_en I

_Jt I L l-gt div_en m u x - s

Machine -gt rna_en -gt fr_en

- gt end

sh en

iquest Partial remainder

q(0)

r pr-bit Shift Register

I b Divider Reg

00amp D

- division_step(0) m fc_f

q(9-1) diexclvision_step(g-1)

rna en-

Remainder not_adj

Q en mdashgt

converter

I adjust = Wp(n+1)

n_T | Q(P-10)

cond_adder

E ^uotient Register f r - e n ^Final remainder reg

| R(n-10)

Figura 537 Arquitectura secuencial del algoritmo de divisioacuten SRT

En cada ciclo de reloj el circuito genera gr bits mientras un ciclo extra es necesario

para calcular el resto Con esto se necesitan pl(gr) ciclos para el caacutelculo completo con

228

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

un ciclo extra para un eventual ajuste del resto El valor p se refiere a la precisioacuten en

bits requerida g a la cantidad de etapas de divisioacuten division_step y r a la base del divisor

Las Iacutemplementaciones secuenciales de estos circuitos son atractivas tambieacuten desde el

punto de vista del consumo La menor profundidad loacutegica producida por los registros

a cada ciclo de reloj reduce las transiciones espurias aunque como contrapartida existe

un mayor consumo de sincronizacioacuten debido a la maacutequina de estados y los registros

intermedios

557 Resultados en aacuterea y velocidad para los divisores para nuacutemeros

fraccionarios

Primero se presentan los resultados respecto al aacuterea y la velocidad para dispositivos

Virtex y Virtex II Si bien el objetivo es la reduccioacuten de consumo la cuidadosa

implementacioacuten de los circuitos ha dado interesantes resultados tanto en aacuterea como en

velocidad

Los circuitos descritos en las secciones 544 545 y 546 han sido implementados en

Virtex (XCV800hq240-6) y en Virtex II (XC2V1000bg575-6) Los circuitos son

descritos en VHDL instanciando cuando es necesario primitivas de bajo nivel como

LUTs muxcy xorcy etc [Xil03c] Se utilizo el entorno de desarrollo Xilinx ISE 61

iexclXil03d] y XST (Xilinx Synthesis Technologiei) [Xil03e] para la siacutentesis La misma

asignacioacuten de patas la opcioacuten de preservar la jerarquiacutea (keep hierarchy) optimizacioacuten

por velocidad y restricciones de tiempo timing constraini) son parte de la estrategia de

disentildeo

La mayor diferencia entre las Iacutemplementaciones en las familias Virtex y Virtex II se

observan en el retardo del rutado En Virtex la relacioacuten loacutegica-rutado en el peor

camino es en promedio (55 45) mientras que en Virtex II dicha relacioacuten es (63

37) Otra diferencia se debe a las conexiones raacutepidas entre slices que conectan los

multiplexores muxF7 y muxF8 presentes en Virtex II que permiten implementar

grandes bloques combinaciones de forma maacutes eficiente Asiacute las tablas de seleccioacuten

(Qsel) grandes presentes en base-8 y base-16 se implementan maacutes raacutepido y requieren

menos aacuterea

229

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

5571 Resultados en implementaciones combinacionales

La Tabla 515 muestra para el dispositivo Virtex el aacuterea (en LUTs y sices) y los retados

(total debido a la loacutegica y debido al rutado) expresados en ns En la cantidad de LUTs

(por ej 2420+12) se expresa por separado las utilizadas para la loacutegica y las que son solo

empleadas para rutar Los circuitos son los descritos en la seccioacuten 544 divisioacuten con

restauracioacuten y sin restauracioacuten rest nonresl) SRT base-2 base-4 base-8 y base-16 con

resto en complemento a dos (srf_r2 srt_r4 srt_r8 srt_16) y finalmente los dos

divisores SRT base-2 con resto representado en carry-save (con sumadores srt_cs_ad y

con tablas de look-up srt_cs_J^iexcl

Non

Res

t R

est

2 Vi

5 Vi

N

P

40 32 24 16 40 32 24 16 40 32 24 16 40 32 24 16

Aacuterea

slices

880 576 336 160

1640 1056 600 272 861 561 325 153 940 624 372 184

LUTs

1719 1119 647 303

3279 2111 1199 543

1720 1120 648 304

1936 1245 741 344

Retardo

total

2517 1806 1187 688

3291 2383 1584 915

2932 1981 1255 692

2437 1878 1257 824

loacutegica

1292 933 625 378

1464 1082 745 442

1243 908 608 370

1147 873 634 398

lutado

1225 873 562 309

1827 1301 838 473

1688 1073 646 322

1290 1005 623 426

oo

OS

VO

Vi

-o Vi

V)

1) Vi

N

P

40 32 24 16 40 32 24 16 40 32 24 16 40 32 24 16

Aacuterea

slices

1112 804 487 243

2258 1666 1137 676

1802 1186 698 338

1779 1183 695 335

LUTs

2420+12 1774+10

1089+7 584+4

4561+44 3358+35 2289+25 1390+16 2172+1 1461+1 901+1 439+1

2072+40 1400+32 856+24 440+16

Retardo

total

2773 2246 1546 839

2457 1911 1384 818

3369 2592 1928 1196 2386 1792 1414 879

loacutegica

1011 830 602

414 955 759 564 366

1321 1050 806 546

1035 811 599 428

rutado

1761 1416 944 425

1502 1152 820 452

2048 1541 1122 652

1350 981 814 451

Tabla 515 Resultados para implementaciones combinacionales en la familia Virtex

Hasta 24 bits el divisor sin restauracioacuten y SRT base-2 muestran los mejores resultados

respecto del retardo para tamantildeo de operandos mayores SRT resto carry-save

(srt_cs_L) SRT base-16 y SRT base-4 son las mejores opciones Respecto del aacuterea

SRT base-2 y non-restoring son siempre las mejores alternativas Por el contrario la

divisioacuten por restauracioacuten y SRT base-16 poseen las peores caracteriacutesticas Los mejores

resultados en aacuterea x retardo (sltce x ns) lo poseen SRT base-2 hasta 24 bits y SRT

base-4 para operandos de mayor tamantildeo

230

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La Tabla 516 muestra los resultados para la familia Virtex II Los circuitos

implementados son los mismos que se han descrito anteriormente Se han quitado los

valores correspondientes a restoring y srt_cs_ad dado sus pobres resultados La

arquitectura propuesta en la seccioacuten 5446 es decir SRT con resto representado en

carry-save (srt_cs_L) posee la mejor performance seguido por SRT base 16 (srt_r16) La

mejora en el retardo respecto de la divisioacuten sin restauracioacuten es de hasta un 425

Respecto del aacuterea como en Virtex SRT base-2 y non-restoring son los que menos

recursos necesitan Los mejores resultados en la meacutetrica aacuterea x retardo (siquestce x ns) lo

posee SRT base-4

srt_

r8

CO

3 3 vgt

N P

56 48 40 32 24 16 56 48 40 32 24 16 56 48 40 32 24 16

Aacuterea

slices

2508 1916 1399 1026 652 334

4237 3429 2685 2004 1388 834

3467 2545 1802 1186 698 338

LUTs

4408+1 3324+1 2384+1 1744+1 1068+1 536+1

6469+196 5147+168 3953+140 2887+112

1949+84 1139+56 3802+56 2874+48 2074+40 1402+32 858+24 442+16

Delay total

2669 1902 1527 1290

898 545

2199 1739 1443 1096 797 530

1748 1520 1228 997 748 504

logic 1459 1221 951 771 530 330

1200 995 785 627 445 289

1041 925 746 626 456 320

route

1210 681 576 519 368 215 999 745 658 470 351 241 707 595 482 371 292 184

Non

-Res

tori

ng

tiacute CO

5 (O

N

P

56 48 40 32 24 16 56 48 40 32 24 16 56 48 40 32 24 16

Aacuterea

slices

1680 1248

880 576 336 160

1653 1225 861 561 325 153

3417 2545

921 609 361 177

LUTs

3303 2447 1719 1119 647 303

3306+2 2448+2 1720+2 1120+2 648+2

304 3498+1 2614+1 1858+1 1230+1 730+1 358+1

Delay

total

3040 2449 1755 1232 824 501

2947 2358 1788 1314 891 475

2316 1943 1506 1144

825 498

logic

2052 1573 1202 854 564 331

2013 1590 1190 845 548 327

1601 1285 1012 760 539 334

route

988 876 552 379 260 170 935 768 598 469 343 148 715 659 495 383 286 164

Tabla 516 Resultados para implementaciones combinacionales en la familia Virtex II

El retardo total en funcioacuten del tamantildeo de los datos en Virtex se graacutefica en la Figura

538 en tanto la Figura 539 hace lo propio con Virtex II Finalmente la Figura 540

representa el aacuterea en slices en funcioacuten del tamantildeo de los operandos para el dispositivo

Virtex II Cabe aclarar que el aacuterea en los dispositivos Virtex es praacutecticamente el mismo

que en Virtex II

231

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

mdashmdash rest mdashbullmdash nr -xmdash srt_r4 -5Kmdash srt_r8

mdashimdashsrt_cs_y1 mdashmdash srt_cs_l

srt_r2

--srt_r16

16 24 32 40

Figura 538 Retardo de los divisores en funcioacuten del tamantildeo de datos en Vitex

Figura 539 Retardo de divisores en funcioacuten del tamantildeo de datos en Virtex II

232

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

16 24 32 40 48 56

Figura 540 Aacuterea de los divisores en Virtex y Virtex II

5572 Resultados en implementaciones segmentadas

Los siguientes circuitos fueron segmentados con diferentes granularidades divisioacuten sin

restauracioacuten SRT base-2 SRT base-2 usando SRL SRT base-4 y SRT con resto

representado en carry-save La Tabla 517 muestra el aacuterea expresada en sices la cantidad

de registros (flip-JIops y SRL las LUTs configuradas como shift registers) y el maacuteximo

ancho de banda en MHz para diferentes divisores de 32 bits y diferentes

profundidades loacutegicas LD (la cantidad de pasos de divisioacuten entre bancos de registros

consecutivos) en dispositivos Virtex La Tabla 518 hace lo propio para Virtex II

Las diferentes arquitecturas de divisores muestran resultados similares en cuanto a la

mejora en la velocidad vs el incremento en aacuterea como lo muestra la Figura 541 para

los dispositivos Virtex II

La divisioacuten SRT en base-4 exhibe los mejores resultados en ambas familias SRT con

resto en carry-save muestra muy pobres resultados tanto en aacuterea como en velocidad en

tanto la divisioacuten sin restauracioacuten reporta valores muy buenos Una arquitectura con maacutexima

segmentacioacuten (LD = 1) acelera el sistema hasta en maacutes de 20 veces respecto de una

implementacioacuten totalmente combinacional (LD = 32) con un incremento en el aacuterea menor

a tres veces

233

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

rrgt

i

2

3

4

5

6

7

8

11

12

16

32

C

33

16

11

8

7

6

5

4 3

3

2

1

Non-Restoring slices

1968

1256

1066

943

905

866

822

779

738

740

697

656

F F

2705

1328

933

688

617

538

454

368

289

292

208

128

Mhz

1017

559

495

345

334

253

225

200

156

144

108

56

SRT radix 2 SRL slices

1747

1169

1012

915

888

858

825

786

725

728

675

625

FF

2274

1152

835

641

583

521

455

385 321

327

224

128

srl

88

52

48

40

40

36

28

32

-

-

-

-

Mhz

1117

538

496

343

325

264

239

202

147

136

102

52

SRT radix 4 slices

-1288

-967

907

-835

-782

736

752

FF

-1265

-632

-508

-372

-315

222

226

srl

-39

-30

-36

-12

-

-

-

-

Mhz

626

-394

-313

-217

-162

106

53

SRT carrysave slices

3356

2257

1939

1745

1689

1629

1566

1508

1456

1462

1355

1251

F F

3298

1647

1164

871

780

685

586

483

386

392

256

147

srl

90

52

48

40

40

36

28

16

-

-

-

Mhz

791

483

431

337

307

284

249

200

168

154

112

59

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

Tn

i

2

3

4

5

6

7

8

11

12

16

32

C

33

16

11

8

7

6

5

4

3

3

2

1

Non-Restoring

slices

2000

1286

1067

943

908

869

827

779

738

748

697

656

F F

2705

1328

933

688

617

538

454

368

289

292

208

128

Mhz

1828

940

798

554

501

421

362

301

239

221

159

80

SRT radix-2

slices

1720

1171

1014

916

891

861

828

788

757

763

722

756

FF

2244

1152

835

641

583

521

455

385

321

327

255

353

srl

90

56

48

48

40

36

28

32

~

-

-

-

Mhz

1822

857

773

514

508

436

374

288

240

223

159

84

SRT radix-4

slices

-

1305

-

988

-

919

-

849

-

751

768

849

FF

-

1265

-

631

-

508

-

414

-

222

226

414

srl

-

39

-

30

-

36

-

12

-

-

-

Mhz

-

1185

-

505

-

474

-

301

-

233

171

89

SRT carry-save

slices

3356

2257

1939

1745

1689

1629

1566

1508

1456

1462

1355

1251

F F

3298

1647

1164

871

780

685

586

483

386

392

256

147

srl

90

52

48

40

40

36

28

16

Mhz

1195

698

710

480

507

530

419

320

271

283

191

100

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

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

140-r

120-

100-

^ SOshyIS c gt 60 -ro agt O

4 0 -

20 -

0 -

(mdashDmdash delay mdashbullmdash aacuterea) nonrest (mdashomdash delay mdashbullmdash aacuterea) srt_r2 (mdashamdashdelay mdashbullmdash aacuterea) srt_r4 (mdashDmdash delay mdashbullmdasharea)srt_

o i

12 I

16 T -

20 - 1 -

24 -rmdash 28

mdash r 32

3200

-2400

-1600

800

Figura 541 Aacuterea y retardo en funcioacuten de la profundidad loacutegica para divisores de 32 bits en Virtex II

5573 Resultados en implementaciones secuenciales

La Tabla 519 muestra los resultados para las implementaciones iterativas en Virtex en

tanto que la Tabla 520 hace lo propio para Virtex II Se muestran la cantidad de bits

calculados en cada ciclo de reloj (G) la cantidad total de ciclos utilizados (C) el aacuterea

en slices y la cantidad de registros utilizados Luego el periodo y la maacutexima frecuencia

de funcionamiento Finalmente la latencia en ns (L = periodo de reloj x cantidad de

ciclos de reloj necesarios) y el aacuterea x latencia (AxL) en ns x slices

Cuando G crece la latencia decrece a expensa de mayor aacuterea La mejor relacioacuten aacuterea X

latencia se obtiene para G = 2 Los mejores resultados en cuanto a la latencia los

ofrece SRT base-4 en ambas familias En la Figura 542 se muestra los resultados de

latencia para los diferentes circuitos secuenciales en tanto que en la Figura 543 se

muestra la relacioacuten aacuterea x latencia

235

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

o Z

ti oo

oo

ti r-gt oo H

3 oo

G

1 2

4

8

1

2

4

8

2

4

8

4

8

1

2

4

8

C

32

16

8

4

32

16

8

4

16

8

4

8

4

32

16

8

4

slices

113

124

155

219

135

139

169

229

134

169

240

336

603

179

210

282

426

FF

203

202

200

196

240

236

236

236

221

221

222

255

294

269

267

267

267

P(ns)

89 137

238

449

80

134

241

479

127

219

412

230

419

119

177 299

525

F(MHz)

1120

728

421

223

1246

745

415

209

788

457

243

435

239

838

566

334

190

L(ns)

2857

2198

1902

1796

2569

2148

1930

1917

2029

1752

1646

1839

1675

3820

2826

2393

2102

AxL

32280

27258

29480

39331

34677

29864

32612

43902

27192

29607

39504

61786

100974

68375

59338

67481

89538

Tabla 519 Resultados implementaciones iterativas en Virtex

w

5 o Z

1 oo

OO

OO H

oo

G

1

2

4

8

1

2

4

8

2

4

8

4

8

1

2

4

8

C

32

16

8

4

32

16

8

4

16

8

4

8

4

32

16

8

4

slices

113

124

155

219

135

139

169

229

134

169

240

336

603

179

210

282

426

FF

203

202

200

196

240

236

236

236

221

221

222

255

294

269

267

267

267

P(ns)

89

137

238

449

80

134

241

479

127

219

412

230

419

119

177

299

525

F(MHz)

1120

728

421

223

1246

745

415

209

788

457

243

435

239

838

566

334

190

L(ns)

2857

2198

1902

1796

2569

2148

1930

1917

2029

1752

1646

1839

1675

3820

2826

2393

2102

AxL

32280

27258

29480

39331

34677

29864

32612

43902

27192

29607

39504

61786

100974

68375

59338

67481

89538

Tabla 520 Resultados implementaciones iterativas en Virtex II

236

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

Figura 542 Latencia para los diferentes circuitos secuenciales en Virtex II

800

600

400

200

Latencia x Aacuterea (ns x slices)

v - CM bull CO

3 3 3 3 c i c i c i c i gt gt gt gt

T3 TJ T3 O

deg1 CM i bulle

vgt

deg] CM ^1 bullc co

deg] CM i bullK CO

degi CM i bulle (0

deg1 bull

bulldegl bulle co

deg1 bull

bulldegl tiacute (0

deg1 bull

bulll t CO

deg1 CO

I

srt

deg1 en

1

srt

T - CM 00

degi deg1 deg1 deg1 co co co co

degl degl degl degl bull e t t - e co ltgt co co

Figura 543 Relacioacuten aacuterea x latencia en circuitos secuenciales en Virtex II

5574 Comparacioacuten de resultados en aacuterea y velocidad

Se comparan en esta seccioacuten los resultados obtenidos respecto de recientes

contribuciones asiacute como la relacioacuten de retardo y aacuterea entre las arquitecturas

combinacionales segmentadas y secuenciales

Trabajos previos Diferentes implementaciones de los algoritmos SRT fueron

presentadas recientemente En [Beu02] los multiacuteplicadores dedicados presentes en

237

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Virtex II son utilizados para implementar divisores SRT en base-2 -4 y -8 Se utiliza

para esto un generador descrito en C++ que produce coacutedigo VHDL sintetizable

|Lee03] presenta un SRT base-8 con diacutegitos miacutenimamente redundantes ademaacutes

resultados previos en un SRT base-4 son sentildealados En [Wan03] divisores SRT base

2 4 y 8 son implementados iterativamente totalmente combinacionales y totalmente

segmentados En [Wan03] se utilizan generadores de moacutedulos descritos en JHDL

En la Figura 544 se muestran las implementaciones presentadas en la seccioacuten 544

comparadas con los trabajos anteriores De esta tesis se muestran las

implementaciones combinacionales de SRT base-2 -4 -16 con resto en complemento

a dos (srt_r2 srt_A srt_rG) y el SRT base-2 con resto representado en carry-save

(srt_cs_L) Adicionalmente los resultados de la implementaciones de [Lee03] del SRT

base-4 y base-8 (J_A y iquest_r8) el mejor resultado de [Beu02] un SRT base-8 que utiliza

bloques multiplicadores dedicados de Virtex II muiquestfl8xl8 (b_r) y finalmente la

implementacioacuten combinacional de divisores SRT base-2 y base-4 de 24 bits presentada

en [Wan] (ngt_r2 iigt_r4) completan la figura

^ - ^ ^ s r t j r i -laquomdashsrt_r4 mdash - s r t j 1 6 ~

i mdash-srt_cs_L mdash5Kmdash I_r8 mdashbullmdashI_r4

mdashImdashb_r8 bull w r2 bull w r4

16 24 32 40 48 56 Operand size (bits)

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

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La Figura 545 muestra la relacioacuten velocidad-latencia-aacuterea para los divisores de 32 bits

presentados en esta seccioacuten Se muestran los circuitos combinacionales (array) las

versiones secuenciales sequentiat) y dos de las arquitecturas segmentadas (pipeSKTr2

pipeSKTriacute)

Como es de esperar las implementaciones secuenciales son las que menos aacuterea

requieren mientras que las implementaciones segmentadas son las de menor retardo

con relativamente baja penalidad en aacuterea pero a expensas de un retardo inicial Por

uacuteltimo la latencia miacutenima de las implementaciones combinacionales se logra a

expensas de un alto costo en aacuterea

Figura 545 Relacioacuten retardo - latencia - aacuterea par las diferentes arquitecturas de divisores fraccionarios

239

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

558 Resultados del consumo para divisores de nuacutemeros fraccionarios

El consumo fue medido en un dispositivo Virtex XCV800hq240-6 montada sobre

una tarjeta de prototipo de Xilinx AFX PQ240-100 utilizando el arreglo experimental

y metodologiacutea descritas en el Apeacutendice B Los circuitos son descritos y

implementados tal lo resentildeado en la seccioacuten 547 es decir usando descripcioacuten VHDL

instanciando cuando es necesario primitivas de bajo nivel Se utilizoacute el entorno de

desarrollo Xilinx ISE 61 [Xil03d] y XST (Xilinx Synthesis Technologies) para la siacutentesis

La misma asignacioacuten de patas preservar la jerarquiacutea optimizacioacuten por velocidad y

restricciones de tiempo son parte de la estrategia de disentildeo

Al igual que con la divisioacuten nuacutemeros enteros el consumo fue dividido en consumo

estaacutetico dinaacutemico y off-chip Se han utilizado para la medicioacuten de los circuitos tres

secuencias diferentes avgjog max_tog y min_tog) ingresadas a traveacutes de un generador

de patrones [Tek04b] Las salidas estaacuten conectadas a un analizador loacutegico [Tek04a]

5581 Resultados en circuitos combinacionales

La Figura 547 representa el consumo de potencia expresado en mWMHz para

diferentes secuencias de vectores con divisores de 16 bits en tanto la Figura 547 hace

lo propio para operandos de 32 bits

Para operandos de 16 bits el divisor SRT base-2 muestra los mejores resultados en

promedio un 185 menos que el divisor sin restauracioacuten (non-restoring) y 71

respecto del divisor SRT con resto carry-save

bull Onr i resl Dsrt_r2 Dsrt_r4 iexcl iexcl Msrt_r8 EJsrt_r16 Bsi-Lcs j

Min_tog Maxjog Avg_tog

Figura 546 Consumo dinaacutemico en mWMHz para divisores de 16 bits

240

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

Para el caso de los divisores de 32 bits SRT base-2 y SRT base-4 son las mejores

opciones SRT base-2 mejora hasta un 512 respecto del divisor sin restauracioacuten y

hasta un 78 respecto del divisor SRT con resto carry-save Finalmente se muestra la

relacioacuten aacuterea-retardo-consumo en la Figura 548 Los divisores SRT base-2 (srt_r2)

SRT base-4 (srt_rf) y sin restauracioacuten (raquo) ofrecen la mejores figuras en ATP

Analizando la relacioacuten aacuterea x retardo x consumo se observa al divisor SRT base-2

como la mejor opcioacuten seguida del SRT base-4

I s n r bull rest bull srt_r2 D srt_r4 1 bull s rt_r8 El s rt_r16 bull s rt_cs

Mn_tog Maxjog Avgjog

Figura 547 Consumo dinaacutemico en mWMHz para divisores de 32 bits

Figura 548 Area-Time-Power para divisores de 32 bits con la secuencia ayg_tog

241

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

5582 Resultados en circuitos segmentados

Para medir y cuantificar la reduccioacuten de consumo debido a la segmentacioacuten en los

circuitos divisores se construyeron versiones segmentadas de los circuitos sin

restauracioacuten (laquo) SRT base-2 y base-4 con resto en complemento a dos (srt_2 srt_rf) y

SRT base-2 con resto en carry-save (srt_cs) Los resultados en aacuterea y velocidad se

muestran en la seccioacuten 5472

0 4 8 12 16 20 24 28 32

Figura 549 Consumo dinaacutemico (mWMHz) con respecto a la profundidad loacutegica para los divisores SRT base-2 con resto en complemento a dos

Figura 550 Consumo dinaacutemico (mWMHz) con respecto a la profundidad loacutegica para los diferentes divisores segmentados y la secuencia de prueba avg_tog

242

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

La Figura 549 presenta el consumo dinaacutemico con respecto a la profundidad loacutegica

para la implementacioacuten de los divisores SRT base-2 con resto en complemento a dos

En la figura se puede apreciar que la relacioacuten del consumo respecto de la profundidad

loacutegica es similar para los diferentes patrones de entrada decrece praacutecticamente de

forma lineal con la profundidad loacutegica (LD) Cabe destacar la baja influencia de la

corriente de sincronizacioacuten en el consumo dinaacutemico

Cuando maacutes etapas aacuteamppipelim se agregan menos glitches se producen y el consumo se

reduce Esta reduccioacuten en la actividad hace menos importante la arquitectura elegida

de hecho las diferentes arquitecturas de divisores poseen similares figuras en el

consumo respecto de la profundidad loacutegica como lo muestra la Figura 550

0 4 8 12 16 20 24 28 32

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

Una arquitectura totalmente segmentada (LD = 1) ahorra hasta un 93 del consumo

dinaacutemico respeto de una arquitectura totalmente combinacional (LD = 32) Esto es

una arquitectura combinacional consume hasta doce veces maacutes que una arquitectura

totalmente segmentada

Finalmente en la Figura 551 se puede ver el consumo aacuterea y retardo normalizados

respecto de la profundidad loacutegica (LD) Se destaca la linealidad del retardo asiacute como

del consumo respecto de la profundidad loacutegica y el relativamente baja penalidad en

aacuterea de esta teacutecnica

243

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

5583 Resultados en circuitos iterativos

Los resultados en el consumo de las implementaciones iterativas en Virtex se pueden

ver en la Figura 552 La graacutefica muestra el consumo energiacutea promedio para llevar a

cabo una operacioacuten expresado en njoules para divisores de 32 bits Se muestra por

separado el consumo de sincronizacioacuten y el debido a la ruta de datos El consumo

debido a la sincronizacioacuten decrece a medida que G (bits calculados a la vez) crece

principalmente debido a la menor cantidad de ciclos necesarios De manera opuesta el

consumo de la ruta de datos aumenta a medida que crece G debido al aumento de los

glitches El valor oacuteptimo de G desde el punto de vista del consumo es 4 excepto para

SRT con resto en carry-save (srt_cs)

nr_g1 nr_g2 nr_g4 nr_g8

srt_r2_g1 srt_r2_g2 srt_r2_g4 srt_r2_g8

srt_r4_g2 srt_r4_g4 srt_r4_g8

srt_r16_g4 srt_r16_g8

srt_cs_g1 srt_cs_g2 srt_cs_g4 srt_cs_g8

Figura 552 Consumo de energiacutea tanto de sincronizacioacuten como de la ruta de datos para los divisores secuenciales de 32 bits

La divisioacuten sin restauracioacuten con G=4 (nr_g4) muestra los consumos maacutes bajos asiacute

como SRT base-2 con G=4 (srt_r2_g4) y SRT base-4 con G=4 (srt_r4_gf) los que

poseen consumos de energiacutea similares

244

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

Una observacioacuten importante es que el valor de G determina la figura del consumo con

mayor importancia que el algoritmo aplicado En SRT base-2 con G=4 existe un

ahorro del 51 de energiacutea respecto a G=l Por otra parte el ahorro de energiacutea

respecto de las implementaciones combinacionales son muy significativas el circuito

anterior consume un 85 menos que SRT base-2 89 menos que el algoritmo sin

restauracioacuten y 94 respecto al SRT con resto en carry save

5584 Comparaciones arquitecturales en el consumo

La Figura 553 muestra aacuterea retardo y consumo para algunos de los circuitos

divisores de 32 bits implementados en esta seccioacuten Se muestran los circuitos

combinacionales (array) los circuitos segmentados SRT base-2 y base-4 para las todas

profundidades loacutegicas (pipe_SRT2 y pipe_SRT4) y las arquitecturas secueacutenciales

(iterativi)

Figura 553 Aacuterea retardo y consumo (ATP) para diferentes algoritmos divisioacuten y arquitecturas secueacutenciales combinacionales y segmentadas

Las arquitecturas combinacionales poseen la menor latencia a expensa de un mayor

aacuterea y una excesiva disipacioacuten de potencia Las arquitecturas segmentadas (pipemeacute)

ofrecen el mayor caudal de trabajo (fhroughput) con un relativamente bajo incremento

245

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

en aacuterea respecto de la implementacioacuten combinacional y una buena figura de consumo

pero con una latencia inicial muy grande Finalmente las implementaciones

secuenciacuteales tienen un aacuterea mucho menor un retardo que no duplica al de las

arquitecturas secuenciales y un reducido consumo

559 Conclusiones de la divisioacuten de nuacutemeros fraccionarios

En esta seccioacuten se han presentado arquitecturas desarrolladas para la divisioacuten de

nuacutemeros fraccionarios (orientadas a la divisioacuten de mantisas en punto flotante)

analizado el consumo para diferentes formas de implementacioacuten

Los circuitos fueron implementados en VHDL instanciando componentes de bajo

nivel cuando fue necesario Implementaciones completamente combinacionales con

diferentes grados de segmentacioacuten y secuenciales con diferentes granularidades fueron

construidos y medido el consumo

Para implementaciones combinacionales el algoritmo SRT base-2 tiene la mejor figura

en aacuterea retardo y consumo reduciendo este uacuteltimo hasta en un 51 el consumo

respecto del tradicional algoritmo de divisioacuten sin restauracioacuten y un 93 respecto del

SRT base-2 con resto representado en carry-save

Las arquitecturas segmentadas ofrecen caracteriacutesticas importantes para la reduccioacuten de

consumo Las medidas muestran una reduccioacuten de hasta un 93 del consumo

dinaacutemico en una arquitectura totalmente segmentada respecto de una totalmente

combinacional Esta mejora es obtenida con un relativamente pequentildeo impacto en el

aumento de aacuterea

Las implementaciones secuenciales usan menos recursos con una relativamente

pequentildea penalidad en la latencia pero una importante reduccioacuten en el consumo

llegando hasta un 89 respecto a una implementacioacuten totalmente combinacional

Una observacioacuten importante en las implementaciones secuenciales es que la cantidad

de bits calculado por ciclos de reloj (G) es maacutes determinante en el consumo que el

algoritmo utilizado Arquitecturas con G = 4 muestra el mejor consumo y mejor

relacioacuten aacuterea x retardo x consumo en tanto los circuitos con G = 2 optimizan la

relacioacuten aacuterea x retardo Los algoritmos sin-restauracioacuten y SRT base-2 obtienen los

mejores resultados

246

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

56 Conclusiones del Capiacutetulo

En este capiacutetulo se han examinado alternativas a nivel algoriacutetmico para diferentes

bloques aritmeacuteticos Se han analizado la multiplicacioacuten modular la suma de alta

velocidad la divisioacuten entera y por uacuteltimo la divisioacuten de nuacutemeros fraccionarios Se

pueden deducir algunos consejos y conclusiones generales derivados de los

experimentos los que se resumen a continuacioacuten

bull El nivel algoriacutetmico es una interesante fuente de reduccioacuten de consumo en

los ejemplos descritos en esta seccioacuten queda claro que se trata de reducciones

del orden del 50 en el consumo debido a la correcta seleccioacuten de un

algoritmo

bull Las meacutetricas de aacuterea y velocidad no son suficientes para calificar a priori la

calidad del algoritmo respecto del consumo Existen caracteriacutesticas maacutes sutiles

a tener en cuenta como son la capacidad de producir o no movimientos

espurios (glitches) dentro de la ruta de datos

bull Es sencillo encontrar ejemplos que contradicen la regla empiacuterica El circuito

maacutes raacutepido es el que menos consume y tambieacuten el que menos aacuterea menos

consume A la hora de evaluar algoritmos para bloques aritmeacuteticos la cuenta

de transiciones en una simulacioacuten postplace amp route es maacutes efectiva

bull La representacioacuten de los datos usados por el algoritmo asiacute como la

correlacioacuten de datos que se producen dentro de la ruta de datos son muy

relevantes Por ejemplo en la divisioacuten de enteros el algoritmo non-restontildeng

genera alternativamente restos intermedios muy pequentildeos positivos y

negativos los que al ser representados en complemento a dos generan gran

actividad

bull Existe un efecto directo sobre el consumo que poseen la complejidad y la

precisioacuten de los algoritmos Un divisor de 3232 bits consume alrededor de

cuatro veces maacutes que el homologo que divide 1616 bits Esto conduce a la

recomendacioacuten de evitar sobredimensionar la ruta de datos

bull La regularidad y modularidad de los algoritmos son caracteriacutesticas altamente

deseables para la segmentacioacuten y la secuencializacioacuten de los algoritmos dos

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

bull La aplicacioacuten de la segmentacioacuten ofrece importantes reducciones de consumo

cuando se tienen grandes lotes de operaciones a realizar La reduccioacuten

depende del tamantildeo de la ruta de datos y los niveles de segmentacioacuten

Reducciones superiores al 80 son corrientes en esta teacutecnica

bull Las implementaciones secuenciales usan menos recursos con una

relativamente pequentildea penalidad en la latencia Es muy importante la

regularidad del algoritmo para reducir la complejidad de la ruta de datos asiacute

como la maacutequina de estados que la controla Las reducciones de consumo

pueden superar el 80

bull En las implementaciones secuenciales aumenta el consumo de sincronizacioacuten

por ello la secuencializacioacuten oacuteptima (cantidad de etapas por ciclo de reloj)

desde el punto de vista del consumo depende del algoritmo Por ejemplo para

divisores de 32 bits cuatro etapas de caacutelculo por ciclo de reloj ofrecen el

miacutenimo consumo

Ademaacutes producto de los diferentes experimentos llevados a cabo en este capiacutetulo

surgen ciertas conclusiones particulares para cada bloque aritmeacutetico las que se detallan

a continuacioacuten

De la multiplicacioacuten modulan

bull Para calcular e mdashy mod m donde m pertenece a un conjunto conocido de

valores el algoritmo de Montgomery muestra la mejor figura de consumo

(tambieacuten aacuterea y retardo) Si solo se quiere 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)

bull 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)

bull 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

248

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

De la suma cany-skip

bull La teacutecnica de sumador carry skip resulta muy interesante para ser aplicada en

FPGAs para operandos largos Una implementacioacuten cuidadosa para sumadores

con operandos de 1024 bits puede aumentar en un factor de 6 la velocidad con

un incremento del aacuterea menor del 50 respecto a la implementacioacuten por

defecto en FPGA

bull El mecanismo de caacutelculo del acarreo en el algoritmo carry skip genera menos

glitches que el algoritmo ripple carry tradicional producto de una menor

propagacioacuten del acarreo y consecuentemente se puede prever menos consumo

El resultado en el consumo resulto ser peor para el carry skip El error en el

razonamiento parte del hecho de que el caacutelculo del 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 en este ejemplo

De la divisioacuten entera

bull Los resultados en aacuterea y velocidad favorecen claramente a la divisioacuten sin

restauracioacuten (nonrestoring) El algoritmo con restauracioacuten (restoring) ocupa el

doble de aacuterea y necesita alrededor del 50 maacutes de tiempo que el algoritmo sin

restauracioacuten

bull Siacuten embargo los resultados en el consumo son claramente favorables al

algoritmo de divisioacuten con restauracioacuten Este efecto se refuerza cuando el

tamantildeo del divisor es mayor a laquo2 bits siendo n el tamantildeo del dividendo

bull Para la divisioacuten de nuacutemeros de 32 bits el algoritmo sin restauracioacuten consume

ocho veces maacutes que el algoritmo con restauracioacuten en tanto el consumo medio

para la divisioacuten de 32 bits por 16 bits en non-restoring es solo alrededor del 20

superior al algoritmo de divisioacuten con restauracioacuten

Divisioacuten de Nuacutemeros Fraccionarios

bull Para implementaciones combinacionales el algoritmo SRT base-2 tiene la mejor

figura en aacuterea-retardo y consumo reduciendo este uacuteltimo hasta en un 51 el

249

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

consumo respecto del tradicional algoritmo de divisioacuten sin restauracioacuten y un 93

respecto del SRT base-2 con resto representado en carry-save (el maacutes veloz)

bull Las arquitecturas segmentadas ofrecen caracteriacutesticas importantes para la

reduccioacuten de consumo Las medidas muestran una reduccioacuten de hasta un 93

del consumo dinaacutemico en una arquitectura totalmente segmentada respecto de

una totalmente combinacional Esta mejora es obtenida con un relativamente

pequentildeo impacto en el aumento de aacuterea

bull Las implementaciones secuenciales usan menos recursos con una relativamente

pequentildea penalidad en la latencia pero una importante reduccioacuten en el

consumo llegando hasta un 89 respecto a una implementacioacuten totalmente

combinacional

bull Una observacioacuten importante en las implementaciones secuenciales es que la

cantidad de bits calculado por ciclos de reloj (G) es maacutes determinante en el

consumo que el algoritmo utilizado Arquitecturas con G = 4 muestra el mejor

consumo y mejor relacioacuten aacuterea x retardo x consumo en tanto los circuitos con

G = 2 optimizan la relacioacuten aacuterea x retardo Los algoritmos sin-restauracioacuten y

SRT base-2 obtienen los mejores resultados

250

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

57 Referencias de Capiacutetulo

[Beu02] J-L Beauchat and A Tisserand Small Multiplier-Based Multiplication and Divisioacuten Operators 12th Conference on Field Programmable Logic and Applications pp 513-522 September 2002

[Bla99] IBlake GSeroussi and NSmart Elliptic Curves in Cryptography Cambridge Universiiy Press 1999

[Blu99] TBlum and CPaar Montgomery Modular Exponentiacuteatiacuteon and Reconfigurable Hardware 14th IEEE Symposium on Computer Arithmetic Adelaide Australia April 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

(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 Univ Carlos III Nov 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

[Des02] J-P Deschamps Siacutentesis de Circuitos Digitales un enfoque algoriacutetmico Thomson - Paraninfo 2002

[Erc04] Milos D Ercegovac and Tomas Lang Digital arithmetic Morgan Kaufmann cop San Francisco California 2004

[Erc94] M D Ercegovac and T Lang Divisioacuten and Square-Root Algorithms Digit-Recurrence Algorithms and Implementations Kluwer Academic press 1994

[FisOl] VFisher and MDrutarovsky Scalable RSA Processor in Reconfigurable Hardware - a SoC Building Block XVI Conference on Design of Circuits and Integrated Systems Porto pp 327 - 332 November 2001

[FpgOl] FPGA Express page Synopsis inc wwwsynopsyscomproductsfpga fpga_expresshtm 2001

[HauOO] Scott Hauck Member IEEE Matthew M Hosler and Thomas W Fry high-Performance Carry Chains for FPGAs IEEE Transactions on Very Large Scale Integratiacuteon (VLSI) Systems Vol8 No2 April 2000

251

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

[Kan98] V Kantabutra P Corsonello S Pera and M Iachino Efficient Practiacutecal Adder for FPGA Circuit Cellar issue 148 pp42 - 48 October 2002

[Kor02] Israel Koren Computer Arithmetic Algorithms - second edition AJLPeters 2002 f bull

[Lee03] BR Lee and N Burgess Improved Small Multiplier Based Multiacuteplication Squaring and Divisioacuten 11 th Annual IEEE symposium on Field-Programmable Custom Computing Machines (FCCM2003) Napa California April 2003

[Lei95] J Leiten J van Meerbegen and J Jess Analisys and Reductiacuteon of Glitches in Synchronous Networks Proceedings ofEuropean Design and Test Conference EDampTC 1995 pp1461-1464 New York IEEE Press 1995

[ManOl] D Manila M Loacutepez-Vallejo and A Rojo Hardware - Software Co-design of a Cryptographic Application XVI Conference on Design of Circuits and Integrated Systems (DCIS01) Porto Portugal pp 100 - 105 November 2001

[Men96] A Menezes P van Oorschot and S Vanstone A Handbook of Applied Cryptography CRC Press 1996

|Mon95] P Montgomery Modular multiacuteplication without trial divisioacuten Mathematics ofComputation vol44 pp 519 - 521 April 1895

[Mus95] E Mussol and J Cortadella Low-Power Array Multiplier with Transition-Retaining Banders Proceedings Fifth International Workshop on Power and Timing Modeling Optimi^ation and Simulation (PATMOS95) pp 227-235 Oldenburg October 1995

[ObeOl] SFOberman and MFlynn Advanced Computer Arithmetic Design Wiley 2001

[Obe97] SF Oberman and MJ Flynn Divisioacuten algorithms and implementations IEEE Transactions on Computen 46(8)833-854 August 1997

[ParOO] B Parhami Computer Arithmetic Algorithms and Hardware Designs Oxford University Press 2000

[Par03] Xilinx Inc Development System Reference Guide chapter 10 PAR (Place amp Route) 2003

Ped96] M Pedram Power Minimization in IC Design Principies and Applications ACM Transaction on Design Automation of Electronic Systems voll ndegl pp3-56 January 1996

pRab96] JMRabaey Digital Integrated Circuits Prentice Hall 1996

[Riv78] R Rivest A Shamir and L Adleman A Method for Obtaining Digital Signatures and Public-Key Cryptosystems Communications of the ACM vol21 no2 pp120-126 February 1978

[Rob58] J E Robertson A New Class of Digital Divisioacuten Methods IREacute transaction on Electronic Computen Vol 7 pp 218-222 September 1958

252

Capiacutetulo 5 Experimentos sobre bloques aritmeacuteticos

[She92] A Shen A Gosh S Devadas and K Keutzer On average Power Dissipation and Random Pattern Testability of CMOS Combinational Logic Networks Proceeding of International Conference on Computer Aided Design (ICCAD-92) pp402-407 IEEE Press 1992

[Sod96] P Soderquist and M Leeser Aacuterea and Performance Tradeoffs in Floating-Point Divide and Square-Root Implementations ACM Computing Surveys Vol 28 No 3 September 1996

[Sut03] Sutter G Todorovich E Lopez-Buedo S and Boemo E Logic Depth Power and Pipeline Granularity Updated Results on XC4K and Virtex FPGAs III Workshop on ~Reconfigurable Computing and Applications JCRA03 Madrid Spain Sept 2003

[Sweoacutel] Sweeney High Speed Arithmetic in Binary Computers Proceedings oIRE Vol 49 pp 91-1031961

[Tek04a] Tektronix inc TLA 700 Series Logic Analyzer User Manual available at wwwtektronixcom 2004

[Tek04b] Tektronix inc TLA7PG2 Pattern Generator Module User Manual available at wwwtektronixcom 2004

[Toc58] K D Tocher Techniques of multiplication and divisioacuten for automatic binary computers Quarterly Journal ojMechantes and Applied Mathematics Vol 11 pp 364-3841958

[TodOO] E Todorovich G Sutter N Acosta E Boemo and S Loacutepez-Buedo End-user low-power alternatdves at topological and physical leveacuteis Some examples on FPGAs Proceedings of XV Conference on Design of Circuit and Integrated Systems (DCIS2000) Montpellier France Nov 2000

[Wan03] X Wang and BE Nelson Tradeoffs of Designing Floating Point Divisioacuten and Square Root on Virtex FPGAs 11 th Annual IEEE symposium on Field-Programmable Custom Computing Machines (FCCM2003) Napa California USA April 2003

[XIacute199] Xilinx Inc XC4000E and XC4000X Series Field Programmable Gate Arrays Product Specification (Versioacuten 16) available at httpwww xilinxcom May 1999

[XilOO] Xilinx Inc Logicore Pipelined Divider V20 available at wwwxilinxcom June 302000

[XilOOb] Xilinx Inc Software Manuals and documentation for Foundation Series 31i httptoolboxxilinxcomdocsan3_li 2000

[XilOl] Xilinx inc Spartan-II 25V FPGA Family Functional Description available at httpwww xilinxcom March 2001

[XU02a] Xilinx inc Xilinx Synthesis Technology (XST) User Guide V221 Distributed with ISE 512002 available atwwwxilinxcom

253

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

[Xil02b] Xilinx inc Constraints Guide - ISE51 section 2-142-15 Relative Location (RLOC) and Relationally Placed Macros (RPMs) available at httpwww xilinxcom 2002

[Xil03a] Xilinx inc Carry Logic in Virtex and Spartan-II The Programmable Logic Data Book available on the Xilinx web site httpsupportxilinxcom 2003

[Xil03b] Xilinx inc Xilinx ISE 51 documentation Online Software Manuals available at supportxilinxcom 2003

[Xil03c] Xilinx Inc Librarles Guide for Xilinx ISE 61 available at wwwxilinxcom 2003

[Xil03d] Xilinx Inc Xilinx ISE 6 Online Software Manuals available at wwwxilinxcom 2003

|Xil03e] Xilinx Inc XST (Xilinx Synthesis Technologies) User Guide 40 distributed with ISE 6X available at wwwxilinxcom June 2003

[Xin98] SXing and WWHYu FPGA Adders Performance Evaluation and Optimal Design IEEE Design ltamp Test of Computen pp 24 mdash 29 January -March 1998

pCpo02] Xpower Xpower gettiacuteng started Releacutease versioacuten 4203Iacute 2002 available at supportxilinxcom

poundKpo04] Xpower Xpower gettiacuteng started Releacutease versioacuten 6203Iacute 2004 available at supportxilinxcom

254

Capiacutetulo 6 Conclusiones y Futuros Trabajos

Se resumen en este capiacutetulo las principales conclusiones aportes generados los

futuros trabajos que se desprenden de eacutesta tesis y las publicaciones generadas Para

finalizar se seleccionan las principales recomendaciones de reduccioacuten de consumo a

nivel del disentildeador

61 Conclusiones y Aportaciones

Se han presentado experimentos sobre varias generaciones de dispositivos del

fabricante Xilinx (XC4000 Virtex y Virtex II) Estos dispositivos comparten la

estructura baacutesica de LUTs de 4 entradas aunque tecnoloacutegicamente presentan 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 son aplicables a otras Eacutesta tesis y las conclusiones que se detallan maacutes

adelante se basa en medidas experimentales a maacutes de 600 circuitos

Las teacutecnicas resentildeadas durante esta tesis tratan de reducir el consumo siguiendo

ciertos temas recurrentes como son el balance aacuterea y velocidad para reducir consumo

evitar derroches aprovechar la localidad de los datos y la reduccioacuten de la actividad

espuria Por otra parte 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 en el consumo de potencia

255

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

611 Recomendaciones para la reduccioacuten de consumo en FSMs

Los experimentos descritos en el capiacutetulo 4 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 miacutenimo de la maacutequina de

estados Existen innumerables programas (mayoritariamente de libre distribucioacuten) para

la minimizacioacuten de estados pero un disentildeo cuidadoso los hace prescindibles

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 indirecta para la determinar la

mejor codificacioacuten desde el punto de vista del consumo (seccioacuten 42)

Para maacutequinas 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 Respecto de las

maacutequinas grandes (maacutes de dieciseacuteis estados) las teacutecnicas de particionamiento de

maacutequinas de estado son una alternativa viable La condicioacuten para que este meacutetodo

obtenga 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 (inferior

al 5) Para ejemplos concretos se han logrado disminuciones de hasta el 57 del

consumo (seccioacuten 43)

612 Observaciones y consejos a nivel topoloacutegico

Durante el capiacutetulo 3 se han presentado experimentos con el objeto de determinar

relaciones en el consumo y consejos a nivel usuario Adicionalmente en el capiacutetulo

5 dentro del estudio de bloques aritmeacuteticos se han analizado diversas alternativas

topoloacutegicas Las conclusiones maacutes sobresalientes entres otros son

Relacioacuten velocidad-consumo

bull Para una topologiacutea dada el circuito con maacutexima frecuencia de

funcionamiento normalmente implica el mejor circuito en teacutermino de

256

Capiacutetulo 6 Conclusiones y Aportes

consumo Esta optimizacioacuten se puede obtener de manera gratuita por

ejemplo usando emplazado y rutado repetitivo (RPR - Repetitivo Plaeement ltamp

Routiniquest) o ajustando las opciones de optimizacioacuten Siguen siendo vaacutelidos los

experimentos de [Boe96] sobre XC3K (seccioacuten 3222)

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 (seccioacuten 3221)

bull La relacioacuten entre aacuterea y consumo no es nada clara como sucede en los

circuitos basados en celdas oacute en el caso de las maacutequinas de estados Algunas

teacutecnicas que ganan velocidad a expensas de mayor utilizacioacuten de recursos (por

ejemplo duplicar hardware para disminuir fan-out) son argumentos en este

sentido (seccioacuten 3224)

Efecto de la conmutatividad

bull Se prueba a traveacutes de diferentes ejemplos que bajo ciertas condiciones el

hecho de permutar las entradas tiene un fuerte impacto en la reduccioacuten

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 (seccioacuten 34)

Las causas de este desbalance en el consumo puede ser un disentildeo singular o la

implementacioacuten irregular que se genera al mapear un disentildeo en una FPGA

esto produce que los glitcbes generados en una secuencia de operaciones no

sean iguales al permutar las entradas Otra causa es el uso de liacuteneas globales

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 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 el mejor orden de entrada

de los operandos para estos casos

257

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Segmentacioacuten

bull La principal observacioacuten es que la segmentacioacuten disminuye notablemente el

consumo en el caso de la familia 4K una segmentacioacuten intermedia (2-4

LUTs de profundidad loacutegica) es lo ideal en tanto que para la familias Virtex y

Virtex II una segmentacioacuten cercana al maacuteximo posible (1-2 LUTs) resulta ser

la mejor opcioacuten

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 (seccioacuten 34)

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 (seccioacuten 342 y 343)

Registros a la Entrada y 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-faradios 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 (Seccioacuten 35)

bull En el caso de la eleccioacuten del tipo aacutetjlip-jlop para registrar las salidas entre los

disponibles en los sicesCLBs y los de los IOBs existe una gran diferencia

desde el punto de vista del consumo En el caso de la familia XC4K 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 a ser un 40 superior Para Virtex II la influencia es

algo menor en torno al 9 (Seccioacuten 35)

258

Capiacutetulo 6 Conclusiones y Aportes

Implementaaacuteones secuenaacuteales

bull La secuencializacioacuten de los algoritmos se asocia al ahorro de aacuterea En FPGAs

esta afirmacioacuten no solo es verdad sino que ademaacutes la penalidad en la latencia

suele ser bastante reducida (en el orden del 20 ) Es muy importante la

regularidad del algoritmo para reducir la complejidad de la ruta de datos y la

maacutequina de estados Las reducciones de consumo pueden superar el 80

(seccioacuten 5583)

bull En las implementaciones secuenciales aumenta el consumo de sincronizacioacuten

Por ello la secuencializacioacuten oacuteptima (cantidad de etapas por ciclo de reloj)

desde el punto de vista del consumo depende del algoritmo Por ejemplo

para divisores de 32 bits cuatro etapas de caacutelculo por ciclo de reloj ofrecen el

miacutenimo consumo (seccioacuten 5583)

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 FPGAs

bull La teacutecnica maacutes simple de implementar y que mejores resultados ofrece tanto

en XC4K como en Virtex y Virtex II es la inhabilitacioacuten de registros con la

sentildeal CE La opcioacuten de utilizar puertas ANDs es otra alternativa simple de

utilizar que ademaacutes reporta buenos resultados

bull 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 (seccioacuten 3621)

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 (seccioacuten 3624)

bull Debido a la gran cantidad de registros distribuidos en la FPGA la

implementacioacuten de estas teacutecnicas de inhabilitacioacuten poseen un escaso (a veces

nulo) impacto en el aacuterea y velocidad (seccioacuten 363)

259

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

613 Resultados a nivel algoriacutetmico

Durante el capiacutetulo 5 se examinaron algunas alternativas a nivel algoriacutetmico Por un

lado se examinan las opciones para la multiplicacioacuten modular operacioacuten central en los

caacutelculos criptograacuteficos luego se presentoacute un experimento cuyos resultados no fueron

los esperados desde el punto de vista del consumo (la suma por el algoritmo de carry-

skip) Por uacuteltimo se analizoacute la operacioacuten de divisioacuten tanto para operandos naturales

como para fraccionarios

bull El nivel algoriacutetmico es una interesante fuente de reduccioacuten de consumo en

los ejemplos estudiados en el capiacutetulo 5 queda claro que se trata de

reducciones del orden del 50 en el consumo debido a la correcta seleccioacuten

de un algoritmo

bull Las meacutetricas de aacuterea y velocidad no son suficientes para calificar la calidad del

algoritmo respecto del consumo Existen caracteriacutesticas maacutes sutiles a tener en

cuenta como son la capacidad de producir o no movimientos espurios

(glitchei) dentro de la ruta de datos (seccioacuten 5432)

bull La representacioacuten de los datos usados por el algoritmo asiacute como la

correlacioacuten de datos que se producen dentro de la ruta de datos son muy

relevantes Por ejemplo en la divisioacuten de enteros el algoritmo non-nstoring

genera alternativamente restos intermedios muy pequentildeos positivos y

negativos los que al ser representados en complemento a dos generan gran

actividad (seccioacuten 5432)

bull Existe un efecto directo sobre el consumo que poseen la complejidad y la

precisioacuten de los algoritmos Un divisor de 3232 bits consume alrededor de

cuatro veces maacutes que el homologo que divide 1616 bits (seccioacuten 5581)

bull La regularidad y modularidad de los algoritmos son caracteriacutesticas altamente

deseables para la segmentacioacuten y la secuencializacioacuten de los algoritmos dos

teacutecnicas muy importantes de cara a la reduccioacuten de consumo

bull La aplicacioacuten de la segmentacioacuten sobre los algoritmos ofrece importantes

reducciones de consumo cuando se tienen un flujo continuo de datos La

reduccioacuten depende del tamantildeo de la ruta de datos y los niveles de

260

Capiacutetulo 6 Conclusiones y Aportes

segmentacioacuten Reducciones superiores al 80 son corrientes en esta teacutecnica

(seccioacuten 5582)

bull Las implementaciones secuenciales usan menos recursos con una

relativamente pequentildea penalidad en la latencia Es muy importante la

regularidad del algoritmo para reducir la complejidad de la ruta de datos y la

maacutequina de estados Las reducciones de consumo pueden superar el 80

(seccioacuten 5583)

bull En las implementaciones secuenciales aumenta el consumo de sincronizacioacuten

por ello la secuencializacioacuten oacuteptima (cantidad de etapas por ciclo de reloj)

desde el punto de vista del consumo depende del algoritmo y la complejidad

de la ruta de datos (seccioacuten 5583)

614 Bloques aritmeacuteticos

Los resultados del capiacutetulo 5 brindan ciertas conclusiones particulares para cada

bloque aritmeacutetico las que se detallan a continuacioacuten

Multiplicaaacuteoacuten modular

bull Para calcular e =jx mod m donde m pertenece a un conjunto conocido de

valores el algoritmo de Montgomery muestra la mejor figura de consumo

(tambieacuten aacuterea y retardo) Si soacutelo se quiere calcular = xy mod m la versioacuten

combinacional del algoritmo de multiplicacioacuten y reduccioacuten es mejor que la del

algoritmo de sumas y desplazamientos (seccioacuten 5234)

bull 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 del 54 en el caso secuencial (seccioacuten 5235)

bull 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 (seccioacuten 5252)

Suma carry-skip

m La teacutecnica de sumador carry skip resulta muy interesante para ser aplicada en

FPGAs para operandos largos (a partir de 64 bits) Una implementacioacuten

261

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

cuidadosa para sumadores de 1024 bits puede superar el 500 de aumento

en la velocidad con un incremento del aacuterea menor del 50 respecto a la

implementacioacuten por defecto en FPGA Los resultados en el consumo sin

embargo son mejores para el ripple carry tradicional (seccioacuten 53)

Divisioacuten entera

m Los resultados en aacuterea y velocidad favorecen claramente a la divisioacuten sin

restauracioacuten (nonrestoritig) El algoritmo con restauracioacuten (restoring) 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 Este efecto se refuerza

cuando el tamantildeo del divisor es mayor a raquo2 bits siendo laquo el tamantildeo del

dividendo (seccioacuten 54)

bull 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-restoring es soacutelo alrededor del

20 superior al algoritmo de divisioacuten con restauracioacuten (seccioacuten 5431)

Divisioacuten de Nuacutemeros Fraccionarios

bull Para implementaciones combinacionales el algoritmo SRT base-2 tiene la

mejor figura en aacuterea-retardo y consumo reduciendo este uacuteltimo hasta en un 51

el consumo respecto del tradicional algoritmo de divisioacuten sin restauracioacuten y

un 93 respecto del SRT base-2 con resto representado en carry-save (el maacutes

veloz) (seccioacuten 5571 y 5581)

bull Las arquitecturas segmentadas ofrecen caracteriacutesticas importantes para la

reduccioacuten de consumo Las medidas muestran una reduccioacuten de hasta un 93

del consumo dinaacutemico en una arquitectura totalmente segmentada respecto de

una totalmente combinadonal Esta mejora es obtenida a expensas de triplicar

el aacuterea (seccioacuten 5582)

bull Las implementaciones secuenciales usan menos recursos con una relativamente

pequentildea penalidad en la latencia pero una importante reduccioacuten en el

consumo llegando hasta un 89 respecto a una implementacioacuten totalmente

combinadonal (secdoacuten 5583)

262

Capiacutetulo 6 Conclusiones y Aportes

bull Una observacioacuten importante en las implementaciones secuenciales es que la

cantidad de bits calculado por ciclos de reloj (G) es maacutes determinante en el

consumo que el algoritmo utilizado Arquitecturas con G = 4 muestra el mejor

consumo y mejor relacioacuten aacuterea x retardo x consumo en tanto los circuitos con

G = 2 optimizan la relacioacuten aacuterea x retardo Los algoritmos sin-restauracioacuten y

SRT base-2 obtienen los mejores resultados (seccioacuten 5583)

615 Conclusiones sobre la herramientas de estimacioacuten de consumo

Paralelamente a las mediciones en los arreglos experimentales se ha realizado la

estimacioacuten del consumo con la herramienta XPOWER Ante todo hay que destacar

que es un proceso lento que requiere varios gigabytes de ficheros intermedios que

implica una simulacioacuten post-place ltiquestr route y un posterior anaacutelisis con la herramienta

Esto lo convierte en muchos casos en un meacutetodo impraacutectico El apeacutendice F muestra

la forma de utilizacioacuten de la herramienta

Los resultados observados para circuitos secuenciales son bastante aceptables

(secciones 3342 y 5331) coincidiendo las arquitecturas que maacutes consumen con la

estimacioacuten aunque no en un porcentaje constante Para el caso del anaacutelisis de la

segmentacioacuten (seccioacuten 3422) los resultados fueron bastante decepcionantes no

coincidiendo las figuras del consumo medido con el estimado

En el flujo de disentildeo normal se deberiacutea poder generar automaacuteticamente la actividad

del circuito ahorraacutendose horas de simulacioacuten gigabytes de datos intermedios y

buacutesqueda de patrones de entrada significativos (En la liacutenea de la investigacioacuten de

[Tod04]) No obstante resulta interesante esta herramienta no para la estimacioacuten de

un sistema completo sino para la caracterizacioacuten de bloques aritmeacuteticos particulares

donde tanto el tiempo de simulacioacuten como la generacioacuten de los vectores de prueba

podriacutean ser acotados

263

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

62 Trabajos futuros

Como se ha mencionado anteriormente el objetivo general de este trabajo es dar

soluciones en el disentildeo de bajo consumo en FPGAs Dado que eacutesta es una meta

extremadamente ambiciosa se ha reducido la cantidad de experimentos y evaluacioacuten

de teacutecnicas llevadas a cabo La ampliacioacuten de estos experimentos y estudios implica

posiblemente varios temas de tesis Las liacuteneas de trabajos que se desprenden incluiriacutean

entre otras

Estudio de bloques aritmeacuteticos complejos Si bien las dos operaciones

fundamentales en el procesamiento de sentildeal (suma y multiplicacioacuten) estaacuten muy

estudiadas desde el punto de vista del consumo (la divisioacuten se ha estudiado aquiacute) seriacutea

uacutetil estudiar otras primitivas de gran aplicacioacuten como son la exponenciacioacuten y la raiacutez

cuadrada Otro aspecto importante es el procesamiento digital de la sentildeal y las

muacuteltiples variables que afectan al consumo en filtros transformadas y otros bloques

de procesamiento Tambieacuten el tratamiento con operandos grandes (maacutes de 128 bits)

por sus aplicaciones en criptografiacutea y de las operaciones en punto flotante merecen

gran intereacutes

Generacioacuten de cores de bajo consumo Este punto estaacute iacutentimamente ligado con el

anterior aunque con matices propios Los cores facilitados por los fabricantes de silicio

y otros proveedores independientes de IPs (intelectual properties) auacuten no proveen

caracteriacutesticas de bajo consumo Es por tanto uacutetil generar cores parametrizables

optimizados en consumo de las operaciones maacutes frecuentes y demandadas Ademaacutes

seriacutea deseable que se provea la caracterizacioacuten de la disipacioacuten de potencia de modo

de permitir estimar a nivel de bloques el consumo total de una aplicacioacuten

Estudio de microprocesadores (flP) embebidos Cada vez maacutes la loacutegica

programable tiende a solucionar sistemas completos (SoC - System on a Chtp) donde la

integracioacuten de un microprocesador es esencial Esta caracteriacutestica genera dos aacutereas

Importantes de estudio por un lado la generacioacuten de cores de microprocesadores de

bajo consumo y por otro compiladores que generan coacutedigo de bajo consumo para

estos [iP

Taxonomiacutea de las teacutecnicas de reduccioacuten de consumo en FPGAs Como

resultado final se deberiacutea generar una taxonomiacutea general de las teacutecnicas para reducir el

consumo donde el disentildeador pueda consultar dependiendo del dominio de

264

Capiacutetulo 6 Conclusiones y Aportes

aplicacioacuten que teacutecnicas se deberiacutean aplicar para lograr optimizaciones de consumo

Varias alternativas se han evaluado aquiacute aunque se deberiacutea ampliar este estudio a

teacutecnicas de precomputacioacuten representacioacuten y codificacioacuten de los datos y

programacioacuten (scbeduiniquest) para el manejo dinaacutemico del consumo

Herramientas de siacutentesis para bajo consumo Los sintetizadores tradicionalmente

han optimizado en aacuterea y velocidad La siacutentesis de bajo consumo estaacute presente en

herramientas para ASICs pero no en FPGAs En base a algunos resultados obtenidos

aquiacute y otros publicados recientemente se podriacutea incorporar caracteriacutesticas de siacutentesis

para bajo consumo

Herramientas de estimacioacuten de alto nivel Las herramientas de estimacioacuten de

consumo actuales parten de la descripcioacuten del circuito y una simulacioacuten post-layout del

mismo Al margen de su relativa precisioacuten son por cierto lentas de ejecutar seriacutea uacutetil

contar con versiones que permitan estimar el consumo a un mayor nivel de

abstraccioacuten

Estudio de la interaccioacuten con bloques embebidos Los dispositivos actuales

integran bloques de memoria multiplicadores y microprocesadores con una clara

tendencia a incrementarse la cantidad y variedad de bloques especiacuteficos Resulta de

intereacutes investigar sus caracteriacutesticas de consumo y maacutes auacuten desarrollar meacutetodos para

integrarlos en disentildeos de bajo consumo Es decir estudiar cuando y de que forma

conviene utilizarlos

63 Publicaciones relacionadas con eacuteste trabajo

Se han generado artiacuteculos relativos a partes de este trabajo en diferentes congresos y

medios de divulgacioacuten sobre FPGAs y disentildeo electroacutenico Las publicaciones maacutes

relevantes son las siguientes

bull G Sutter GBioul J-P Deschamps and EBoemo Power Aware Dividers in

FPGA Lecture Notes in Computer Science (LNCS) Vol 3254 pp 574 - 584

Berliacuten Springer-Verlag 2004

bull G Sutter GBioul and J-P Deschamps Comparative Study of SRT-

Dividers in FPGA Lecture Notes in Computer Science (LNCS) Vol3203

pp 209 - 220 Berliacuten Springer-Verlag 2004

265

uam
Nota

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

bull 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 2002

bull E Todorovich M Gilabert G Sutter S Lopez-Buedo and E Boemo A

Tool for Activity Estimation in FPGAs Lecture Notes in Computer Science

Vol2438 pp340-349 Berliacuten Springer-Verlag 2002

bull G Sutter E Todorvich S Loacutepez- Buedo and E Boemo FSM

Decomposition for Low Power in FPGA Lecture Notes in Computer Science

Vol2438 pp350-359 Berliacuten Springer-Verlag 2002

Ademaacutes se han presentado otros resultados parciales en

bull G Sutter E Todorovich E Boemo Design of Power Aware FPGA-based

Systems IVJCRA pp 81-90 Barcelona Spain September 2004

bull J-P Deschamps and G Sutter Multiplication in a Finite Extensioacuten Ring

XVIII Conference on Design ofdrcuits and Integrated Systems (DCIS 2003) Ciudad

Real Spain November 2003

bull E Boemo and G Sutter Permutacioacuten de los Datos de Entradas como

Estrategia de Disentildeo de Bajo Consumo Algunos Ejemplos en FPGAs iTJ

JCRA 03 pp 225- 232 Madrid Spain September 2003

bull Sutter G Todorovich E Loacutepez-Buedo S and Boemo E Logic Depth

Power and Pipeline Granularity Updated Results on XC4K and Virtex

FPGAs IIIJCRA pp 201-207 Madrid Spaiacuten September 2003

bull Bioul G Deschamps J-P Sutter G Efficient FPGA implementation of

Carry Skip Adders Jomadas de Computacioacuten Reconfigurabley Aplicaciones pp 81-

90 Madrid Spain September 2003

bull E Todorovich G Sutter and E Boemo Estimacioacuten de Actividad para

FPGA Basada en una Teacutecnica Estadiacutestica Ul Jomadas de Computacioacuten

Rjiconfigurabley Aplicaciones pp 217-224 Madrid Spain September 2003

bull J-P Deschamps and G Sutter FPGA Implementation of Modular

Multipliers XVII Conference on Design of Circuits and Integrated Systems (DCIS

2002) pp 107-112 (ISBN 84-8102-311-6) Santander November 19-222002

266

Capiacutetulo 6 Conclusiones y Aportes

bull G Sutter and J-P Deschamps Multiplicadores modulares II Jomadas sobre

Computacioacuten Reconfigurable y Aplicaciones (fCRA 2002) Almuntildeecar (Granada)

Spain pp 209-214 (ISBN 84-699-9448-4) sept de 2002

bull G Sutter and E Boemo Low Power Finite state machines in FPGA Bynary

vs One hot encoding VIII Workshop IBERCHIP Guadalajara Meacutexico 3-5

April 2002

bull G Sutter E Todorovich and E Boemo Metodologiacutea para la Reduccioacuten de

Consumo en Circuitos Integrados Reprogramables JZT Workshop de

Investigadores de Ciencias de la Computacioacuten (WICC 2001) San Luis Argentina

Agosto 2001

bull E Todorovich G Sutter N Acosta E Boemo and S Loacutepez-Buedo

Relacioacuten entre Velocidad y Consumo en FPGAs VU Workshop de

IBERCHIP Montevideo Uruguay 21-23 marzo 2001

bull G Sutter E Todorovich E Boemo and S Loacutepez-Buedo Propiedad

Conmutativa y Disentildeo de Bajo Consumo Algunos Ejemplos en FPGAs

VII Workshop de IBERCHIP Montevideo Uruguay 21-23 marzo 2001

bull 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 of Circuits and Integrated Systems

(DCIS2000) Le Corum Montpellier France November 21-242000

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

64 Reglas empiacutericas pata el disentildeo de bajo consumo en

FPGAs

A modo de resumen final de los resultados de esta tesis se presentan estas seis simples

reglas empiacutericas que deberiacutea seguir un disentildeador de sistemas de bajo consumo basados

en tecnologiacutea FPGA Aquiacute se seleccionan aquellas reglas de aplicacioacuten inmediata por

parte del disentildeador

1 N o sobredimensionar la capacidad de caacutelculo asiacute como la ruta de datos

Operar a maacutes frecuencia de la necesaria implica un crecimiento lineal con el consumo

ademaacutes exigir gran capacidad de caacutelculo puede implicar desechar arquitecturas

secuenciales u otras teacutecnicas maacutes afines a la reduccioacuten de consumo Por otro lado el

tamantildeo de la ruta de datos puede implicar aumentos con oacuterdenes mayores que dos en

el consumo Por ejemplo la multiplicacioacuten de 3232 bits consume al menos cuatro

veces maacutes que uno de 1616 lo mismo sucede para la divisioacuten de nuacutemeros

fraccionarios

2 Reducir la profundidad loacutegica a un maacuteximo de 2-3 LUTs en circuito de gran

actividad Los glitches son la principal fuente en el consumo la manera maacutes directa

de reducirlo en FPGAs es a traveacutes de la segmentacioacuten en caso de tener lotes de datos

que procesar o bien sequencializando la ruta de datos Para aplicar efectivamente estas

teacutecnicas la regularidad de la ruta de datos es fundamental

2a Uso de la segmentacioacuten Es la teacutecnica maacutes adecuada cuando se trabaja con

grandes lotes de datos La reduccioacuten del consumo suele ser incluso proporcional al

aumento de velocidad del algoritmo La penalidad en aacuterea suele ser despreciable

dada la abundancia de registros distribuidos en la FPGA

2b Uso de arquitecturas secuenciales La secuencializacioacuten de los algoritmos

se asocia al ahorro de aacuterea En FPGAs esta afirmacioacuten no solo es verdad sino que

ademaacutes la penalidad en la latencia suele ser bastante reducida En las

implementaciones secuenciales aumenta el consumo de sincronizacioacuten por ello la

secuencializacioacuten oacuteptima (cantidad de etapas por ciclo de reloj) desde el punto de

vista del consumo depende del algoritmo

3 Desactivar partes inactivas del disentildeo En sistemas complejos partes del disentildeo

suelen no estar produciendo datos efectivos Desactivar esas partes es fundamental de

268

Capiacutetulo 6 Conclusiones y Aportes

cara a evitar el derroche de consumo Utilizar las sentildeales de habilitacioacuten CE (chip-

enable) de los registros para frenar los datos oacute el uso de puertas ANDs brinda

importantes posibilidades de ahorro en el consumo con impacto casi nulo en aacuterea y

velocidad En las familias de FPGAs maacutes modernas (Virtex II spartan 3 etc) los

muacuteltiples aacuterboles de reloj y los multiplexores de reloj permiten implementar faacutecilmente

teacutecnicas tipo gated dock

4 Explorar y explotar el nivel algoriacutetmico El disentildeo de los algoritmos posee una

de las fuentes maacutes directas de ahorro de energiacutea La regularidad y modularidad de los

algoritmos son caracteriacutesticas altamente deseables para la segmentacioacuten y la

secuencializacioacuten de los algoritmos dos teacutecnicas muy importantes de cara a la

reduccioacuten de consumo

Definitivamente las meacutetricas de aacuterea y velocidad no son suficientes para calificar la

calidad del algoritmo respecto del consumo Existen caracteriacutesticas maacutes sutiles a tener

en cuenta como son la capacidad de producir o no movimientos espurios (glitches)

dentro de la ruta de datos esta en general producida por la correlacioacuten de datos que se

generan

5 Registrar siempre que sea posible Es importante registrar siempre que sea

posible tanto las entradas como las salidas Maacutes aun en las sentildeales de salida es

conveniente registrar cerca de la loacutegica que produce el dato de salida usando FF en

los slices en vez de los registros asociados a las patas No soacutelo se evita la activad en las

liacuteneas que conectan la loacutegica con los IOBs sino que sobre todo se evita la actividad en

los buffers que transforman la sentildeal de la tensioacuten del core a la de las patas Cabe recordar

que la alimentacioacuten del core de los dispositivos modernos es menor que en la periferia

6 En el disentildeo de maacutequinas de estados cuidar la codificacioacuten y eventualmente

particionar Para maacutequinas de estados pequentildeas hasta 8 estados utiEzar codificaciones

densas (binarias) Para maacutequinas con maacutes de 15 estados utilizar one-hot Eventualmente

para maacutequina de estados grandes (maacutes de 12 estados) cuando se pueda realizar una

particioacuten con poca probabilidad de cambios entre ellas utilizar particioacuten de maacutequinas

de estados Como caso especial de maacutequinas de estados los contadores con

codificaciones tipo gray son una buena opcioacuten de bajo consumo siempre que no se

deba utilizar decodificaciones extras de las salidas

269

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

270

Apeacutendice A

Placa de prueba familia XC4K

A1 Introduccioacuten

Durante el desarrollo de esta tesis se ha utilizado una placa de prueba para dar soporte

a distintos circuitos que se han desarrollando Se ha utilizado una placa desarrollada

por SLopez-Buedo [Lop97] La correcta funcionalidad de los circuitos fue

comprobada mediacuteante el uso de un analizador loacutegico [TekOO] y adicionalmente se

mide el consumo indirectamente mediante la utilizacioacuten de voltiacutemetro y amperiacutemetro

A2 Caracteriacutesticas de la placa de prueba

Las dos principales caracteriacutesticas de disentildeo son por un lado que esta dotada de

conectores especialmente dedicados para acoplar el analizador loacutegico y por otro la

inclusioacuten de una segunda FPGA para ser utilizada como generador de vectores de test

para los circuitos que se analizan

La placa se componen deun generador de vectores de prueba implementado en una

FPGA del tipo Xilinx XC3K (se utilizaron concretamente los dispositivos Xilinx

XC3120PC84-3 y XC3130PC84-5) Tras eacutesta se situacutea un primer banco de 24

conectores maacutes uno de reloj cuyo objetivo es poder monitorear estos vectores de

prueba permitiendo el acoplamiento directo de un los conectores del analizador

loacutegico usado el Tektronix TLA704 [TekOO] Eacutestos pasan a continuacioacuten a la FPGA de

prueba una Xilinx XC4000 en encapsulado PLCC84 Por uacuteltimo un segundo banco

de conectores igual al primero permite observar los resultados

271

Teacutecnicas pata la Reduccioacuten de Consumo en FPGAs

La configuracioacuten de las FPGAs de prueba se hace mediante cable de download (en

particular se utiliza el Xilinx Xchecker [XCH99]) mientras que la FPGA generadora

de vectores de prueba se configura mediante una EPROM serie (Atmel AT17C128)

La diferencia en el modo de programacioacuten estriba en la diferente cantidad de veces

que se han de reprogramar cada FPGA Por un lado es de esperar que la generacioacuten

de patrones de test se reconfiguren una uacutenica vez (o unas pocas) para cada

experimento Por el contrario la FPGA de prueba va a necesitar ser reconfigurada en

gran cantidad de ocasiones

Pod

D0_7 D0_6 D0_5 D0_4 D0_3 D0_2 D0_1 D0_0

Dl_7 Dl_6 Dl_5 Dl_4 Dl_3 Dl_2 Dl_l D1_0

D2_7 D2_6 D2_5 D2_4 D2_3 D2_2 D2_l D2_0

XC3120

25 26 27 28 29 30 34 35

36 37 39 40 44 45 46 47

48 49 52 53 56 57

bull 58 59

XC4000

18 17 16 15 14 10 9 8

7 6 5 4 3 83 84 81

82 79 80 77 78 70 69 68

Pod

02_7 02_6 02_5 02_4 02_3 02^2 02_1 O2_0

02_7 02_6 02_5 02_4 02_3 02_2 02_1 O2_0

02_7 02_6 02_5 02_4 02_3 02_2 02_1 O2_0

XC4000

25 24 27 26 29 28 36 35

37 38 39 40 44 45 46 47

48 49 50 51 56 57 58 59

Tabla Al Conexiones del analizador en la placas de prueba

En la Tabla Al se muestran los pines de conexioacuten al analizador loacutegico la tabla A2

muestra la asignacioacuten de pines para el cable de programacioacuten download) del dispositivo

XC4K y la asignacioacuten de botones y conmutadores de la XC3K

272

Conmutadores y Botones

Apeacutendice A Placa de pruebas familia XC4K

Conector de download Elemento

switch 1 switch 2 switch 3 switch 4

Botoacuten 1 Botoacuten 2

Botoacuten Reset

Pin XC3000

83 84 81 82

75 76

Rst_fpga

Pin conector

1 2 3 4 5 6 7 8 9

VCC GND NC

CCLK DONE

DIN _PROG _JNIT

NC

Tabla A2 Conexiones del cable de programacioacuten y botones

A3 Dispositivos utilizados

Se han utilizado en este arreglo experimental 3 dispositivos de la familia XC4K Ellos

son XC4003PC84-4 XC4005PC84-4 y una XC4010PC84-4 El resumen de los

recursos de cada dispositivo se puede ver en la tabla A3

Dispositivo

XC4003 XC4005 XC4010

Puertas equivalente

3000 5000 10000

Matriz CLBs

10x10 14x14 20x20

Total CLBs

100 196 400

Cantidad de Fltp-Fkps

360 616 1120

Maacutexima cantidad ES

80 112 160

Tabla A3 Recursos de los dispositivos de la serie XC4K utilizados en las mediciones

273

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Seleccioacuten de secuencia

Conector BNC del Reloj

Conectores analizador loacutegico Vectores de test

Conectores analizador loacutegico

resultados

Led Configuracioacuten

XC4K

fv V

Xilinx3K

Series

FPGA

Xilinx4K

Series

FPGA

fll DO I f DI I f D2

I QQ I I Oiacute I I 02

N D [O] I I -

Reset

EPROM Serie para configuracioacuten XC3k

Conectores alimentacioacuten general

Led configuracioacuten XC3K

Conector alimentacioacuten FPGA de prueba

Conector Cable Download

Figura Al Esquema de la placa de prueba de la familia XC4000

A4 Conexioacuten de la placa de pruebas

Como se mencionoacute anteriormente la placa posee alimentacioacuten separada para el

generador de vectores de test asiacute como para el circuito a medir Una fuente de

alimentacioacuten doble alimenta por separado cada parte de la placa Sobre la FPGA a

medir se colocan los elementos de medicioacuten (voltiacutemetro y amperiacutemetro) Figura A2

Se conectan ademaacutes el generador de reloj (Metrix GX245) el analizador loacutegico y el

cable de programacioacuten conectado al puerto serie del PC Qiacutecheckei)

274

Apeacutendice A Placa de pruebas familia XC4K

Al generador de frecuencia

Al analizador loacutegico

Cable download al ordenador

ni oo II - 61 H na I

o o

o 0

Fuente regulada de 5 Voltios

Amperiacutemetro

Fuente regulada 5V

Voltiacutemetro

Figura A2 Esquema de conexioacuten del arreglo experimental en XC4K

Figura A3 Fotografiacutea del arreglo experimental para XC4K

275

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

A5 Meacutetodo de medicioacuten de consumo

La teacutecnica utilizada en este trabajo para aislar las distintas componentes del consumo

fue propuesta en [Boe96] Otra alternativa puede verse en [Men99] Seguacuten [Boe96] la

componente estaacutetica se puede medir dejando las entradas de la parte combinatoria

fijas sin actividad en el reloj luego de haber configurado la FPGA Para aislar la

componente externa de consumo el circuito se mide dos veces Primero en

condiciones normales de operacioacuten luego deshabilitando los buffers de tres estados en

las salidas De esta manera la componente qff-chip se puede aproximar mediacuteante la

diferencia entre estos dos resultados

Consumo Estaacutetico

(Stafiacutec Power)

Consumo Externo

(Off-chip power)

Consumo de

Sincronizacioacuten

(Synchroniyation

power)

Consumo

Dinaacutemico

(Dynamic Power)

El circuito es configurado pero no se le conectan estiacutemulos ni sentildeal de

reloj El resto de elementos externos que requiere la FPGA quedan

conectados

Para aislar la componente externa se mide dos veces Primero en

condiciones normales de operacioacuten luego deshabilitando los buffers de

tres estados en las salidas La componente off-chip se aproxima

mediante la diferencia entre estos dos valores

Un dato constante (por ejemplo todas las entradas a cero) es usado

como entrada al circuito mientras el reloj es aplicado De esta manera

no existiraacute actividad en el circuito ya que no hay cambios en los datos

mientras el reloj seraacute el uacutenico elemento que consume Cabe sentildealar que

las FPGAs usan multiplexores para emular el efecto de la habilitacioacuten

de reloj (dock etiableacute) como consecuencia el uso del pin dock enable de

del CLB no interrumpe realmente la alimentacioacuten de reloj a los flip-

flops

Surge de restar al consumo total el consumo estaacutetico y externo Dada

la linealidad del consumo respecto de la frecuencia el circuito se mide a

diferentes velocidades de reloj para minimizar los errores

Tabla A4 Componentes del consumo y forma de medicioacuten en XC4K

Finalmente para que quede solamente la potencia dinaacutemica de la parte combinatoria

resta aislar la potencia de sincronizacioacuten que se puede calcular como diferencia

midiendo el consumo con el circuito sin actividad en las entradas mientras opera la

276

Apeacutendice A Placa de pruebas familia XC4K

sentildeal de reloj normalmente de manera que soacutelo el aacuterbol de reloj tenga actividad Esta

teacutecnica de medicioacuten de la corriente de sincronizacioacuten solo es aplicable a bloques que

no tengan realimentaciones de registros internos Por ello es que no se utiliza en las

maacutequinas de estado En la tabla A4 se resumen estos conceptos

Respecto al consumo off-chip todos los circuitos a medir se implementan con buffers tri-

estados en las patas de salida Al margen cada pata de salida tiene una carga producto

del analizador loacutegico menor de 3 pf [TekOO]

La componente utilizada para realizar comparaciones y optimizaciones es la dinaacutemica

ya que es la que es susceptible de ser optimizada por el disentildeador Eventualmente

puede ser importante en las comparaciones revisar la componente de sincronizacioacuten

(la que depende del reloj) que se veraacute afectada por decisiones arquitecturales y

topoloacutegicas La componente estaacutetica y off-chip suele quedar fuera del espacio de disentildeo

dado que la primera depende de caracteriacutesticas tecnoloacutegicas y la segunda de cuestiones

de interaccioacuten con otros sistemas o el mundo exterior

Error en la medicioacuten

Los voltiacutemetros y amperiacutemetros utilizados (Fluke 175 [Flu02]) para el caacutelculo de la

potencia tienen la siguiente precisioacuten Como voltiacutemetro de corriente continua y en el

rango utilizado 015 de la lectura en tanto que como amperiacutemetro el 1 La

potencia medida como I x V por tanto tiene una precisioacuten del orden del 1

A6 Generador de vectores

En este arreglo experimental se utilizan diferentes configuraciones para la FPGA que

realiza la generacioacuten de patrones (la XC3K) dependiendo de los vectores necesarios

La configuracioacuten del generador de vectores de test se lleva a cabo a traveacutes de la

programacioacuten de una EEPROM serial una AT17C128

En la figura A4 se muestra el esquema de un generador utilizado para comprobar la

relacioacuten de consumo P(AxB) vs P(BxA) en multiplicadores En este generador se

puede elegir entre secuencias aleatorias y secuencias de maacutexima conmutacioacuten el orden

de salida y la frecuencia relativo de los operandos

277

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

COUNT_O[20]

Contador 6 bi

IacuteIKJH

ClOCX

COUNTER

CONT_A[60]

ojxrrpt] CONT_B[60]

CONT_B[30]-tepai

ROM Max Ton 2 mdash-RT5fiI

MUX

Figura A4 Esquema de un generador de patrones en las XC3K

278

Apeacutendice A Placa de pruebas familia XC4K

A7 Referencias del apeacutendice

[TekOl] Tektronix inc TLA 704 Logic Analyzer user Guide Available at wwwtektronixcom 2001

[Lop97] S Lopez-Buedo Teacutecnicas de disentildeo de Alta Velocidad y Bajo Consumo Memoria Proyecto Fin de Carrera ETSI Tekcomunicaaacuteoacuten - Universidad Politeacutecnica de Madrid Septiembre 1997

[Xch99] Xchecker Xilinx download cable Hardware User Guide XChecker Cable httptoolboxxilinxcomdocsan3_li

[Boe96] E Boemo Contribution to the Design of Fine-grain Pipelined VLSI Arrays Tesis doctoral ETSI Telecomunicacioacuten Universidad Politeacutecnica de Madrid Madrid Spain 1996

[Men99] L Mengiacutebar M Garda D Martiacuten and L Entrena Experiments in FPGA Characterization for Low-power Design Proceedings of XIV Conference on Design of Circuits and Integrated Systems (DCIS99) Palma de Mallorca November 1999

[Flu02] Fluke Ibeacuterica Multiacutemetros digitales de la serie 170 avilable at httpwwwflukees 2002

279

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

i

280

Apeacutendice B

Placa de prueba AFX (Virtex)

Bl Introduccioacuten

Para llevar a cabo los experimentos con FPGAs de la familia Virtex se empleoacute una

tarjeta de prototipado disentildeada y distribuida por Xilinx la AFX PQ240-100 [Xil99a]

Esta tarjeta posee la ventaja de ser muy simple y praacutecticamente no tener componentes

adicionales que pudiesen interferir con las medidas de consumo En esta placa se

puede montar cualquier FPGA de la familia Virtex de 25 V con encapsulado PQ240

Figura Bl Detalle de la placa de prototipado AFX

281

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

B2 Caracteriacutesticas de la placa de prueba AFX

En la figura Bl se puede ver una fotografiacutea extraiacuteda de las notas teacutecnicas de Xilinx

Baacutesicamente la tarjeta tiene unos conectores tipo bananas de alimentacioacuten (1) un

suntildetch de conexioacuten (2) aacuterea conpines conectados a las patas de la FPGA (3) para poder

monitorizar y excitar el circuito un zoacutecalo para una EPROM de configuracioacuten (5) un

conector para programar la FPGA(6) zoacutecalos para cuatro osciladores (9) (uno por

cada liacutenea global de reloj en Virtex) cuatro LEDs (10) jumpers de configuracioacuten (7 y 8)

(principalmente seleccioacuten de tensiones en los bancos de ES y modo de

configuracioacuten M0 MI y M2) y por uacuteltimo un aacuterea de prototipado (12) A la placa se

le han soldado (en la zona 4) conectores para facilitar la conexioacuten y desconexioacuten del

generador de patrones y el analizador loacutegico

Para programarla se utiliza cualquier cable de los provistos por Xilinx (por ejemplo

Paralell Cable III oacute IV [XUuml03]) En este caso se utiliza una interfaz ad hoc descrita en

[Lop03] que se maneja a traveacutes de JBIacutets La interfaz se basa en el modo bidireccional

de funcionamiento del puerto paralelo de esta manera se puede hacer readbacks de 8

bits en paralelo de una manera muy sencilla Figura B2 y B3

Figura B2 Fotografiacutea de la tarjeta AFX

282

Apeacutendice B Placa de Pruebas AEX para Virtex

Figura B3 Detalle de la interfaz con el puerto paralelo de la tarjeta AFX

B3 Dispositivos Virtex utilizados

Los dispositivos utilizados con esta placa son una XCV50PQ240-4 (un arreglo de

16x24 CLBs 768 slices 57906 puertas equivalentes) y una XCV800PQ240-4 [XilOlb]

(56x84 CLBs 9408 slices 888439 puertas equivalentes) fundamentalmente esta uacuteltima

FPGA se ha utilIacute2ado para la mayor parte de las medidas

B4 Conexioacuten de la placa de pruebas

Las FPGAs de la familia Virtex se alimentan con 25 V el core del circuito en tanto que

la periferia se alimenta con 33 V Una fuente de alimentacioacuten doble alimenta por

separado cada parte de la placa con las tensiones correspondientes En el arreglo

experimental se controlan-ambas tensiones y la corriente del core ya que en general se

estudia el consumo dinaacutemico del core aislaacutendose en el caacutelculo tambieacuten el consumo de

la periferia En la figura D3 se observa una fotografiacutea del arreglo experimental

Para la excitacioacuten de los circuitos se utiliza un generador de vectores de prueba

TLA7PG2 de la empresa Tektronix [Tek02] La sentildeal de reloj para los circuitos se

obtiene igualmente de este generador Para comprobar los resultados se utiliza un

analizador loacutegico TLA704 de la misma empresa [TekOl]

283

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

A la placa se han conectado 64 bits de entrada (procedente del generador de vectores

de tesi) La tabla Bl muestra los detalles de la asignacioacuten aacuteamppines Un total de 64 patas

de salida de la FPGA se conectaron al analizador loacutegico cuya asignacioacuten de patas se

puede ver en la tabla B2

Pin

5

6

9

13

17

21

25

26

AO

A0_0

A0_1

A0Jiquest

A0_3

A0_4

A0_5

A0_6

A0_7

Pin

3

4

7

12

20

24

27

28

Al

A1_0

Al_l

Al_2

Al_3

Al_4

Al_5

Al_6

Al_7

Pin

33

34

38

41

46

49

53

57

B0

BOJ)

B0_1

B0_2

B0_3

B0_4

B0_5

B0_6

B0_7

Pin

31

35

36

40

48

52

55

56

Bl

B1_0

Bl_l

Bl_2

Bl_3

Bl_4

Bl_5

Bl_6

Bl_7

Pin

186

189

193

194

201

202

205

206

CO

C0_0

C0_1

C0_2

C0_3

C0_4

C0_5

C0_6

C0_7

Pin

187

188

192

195

199

200

207

208

Cl

C1_0

Cl_l

Cl_2

CIJi

Cl_4

Cl_5

Cl_6

Cl_7

Pin

217

218

221

222

229

230

234

237

DO

D0_0

D0_1

D0_2

D0_3

D0_4

D0_5

D0_6

D0_7

Pin

215

216

220

224

228

232

235

236

DI

D1_0

Dl_l

Dl_2

Dl_3

Dl_4

Dl_5

Dl_6

Dl_7

Tabla Bl Conexiones del generador de patrones a la FPGA

Pin

5

6

9

13

17

21

25

26

A0

A0_0

A0_1

A0_2

A0_3

A0_4

A0_5

A0_6

A0_7

Pin

3

4

7

12

20

24

27

28

Al

A1_0

Al_l

Al_2

Al_3

Al_4

Al_5

Al_6

Al_7

Pin

33

34

38

41

46

49

53

57

B0

BOJ)

B0_1

B0_2

B0_3

B0_4

B0_5

BOJ)

B0_7

Pin

31

35

36

40

48

52

55

56

Bl

B1J)

Bl_l

Bl_2

Bl_3

Bl_4

Bl_5

B1J5

Bl_7

Pin

186

189

193

194

201

202

205

206

CO

C0_0

C0_1

C0_2

COJi

C0_4

C0_5

C0J5

C0_7

Pin

187

188

192

195

199

200

207

208

Cl

C1J)

Cl_l

Cl_2

Cl_3

Cl_4

Cl_5

Cl_6

Cl_7

Pin

217

218

221

222

229

230

234

237

DO

D0J)

D0_1

D0J2

D0_3

D0_4

D0_5

D0_6

D0_7

Pin

215

216

220

224

228

232

235

236

DI

D1_0

Dl_l

D1Jiquest

Dl_3

Dl_4

Dl_5

Dl_6

Dl_7

Tabla B2 Conexiones del generador de la FPGA al analizador loacutegico

284

Apeacutendice B Placa de Pruebas AFX para Virtex

Figura B4 Fotografiacutea del arreglo experimental placa AFX

B5 Metodologiacutea de medicioacuten de consumo

La metodologiacutea de medicioacuten es similar a la descrita en el apeacutendice A4 solo que aquiacute

se tiene en cuenta el hecho de que la periferia del circuito se alimenta a 33 V en tanto

que el core del circuito se alimenta con 25 V A consecuencia de lo antedicho el

consumo externo (pff-chip powef) depende de la tensioacuten de 33 V teniendo una

influencia despreciable sobre el consumo de 25V Se realizaron pruebas para

comprobar esta uacuteltima afirmacioacuten construyendo circuitos con buffers tri-estados en las

salidas y comprobando el consumo sobre la alimentacioacuten del core con los buffers

conectados y desconectados respectivamente En la tabla B3 se resumen las

componentes del consumo

285

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Consumo Estaacutetico

(StaticPower)

Consumo Externo

(Off-chippower)

Consumo de

Sincronizacioacuten

(Synchroniaption power)

Consumo Dinaacutemico

(DynamicPoiver)

El circuito es configurado pero no se le conectan estiacutemulos ni sentildeal de

reloj El resto de elementos externos que requiere la FPGA quedan

conectados Se obtiene consumo estaacutetico tanto en la alimentacioacuten del

core como en la de la periferia

El consumo externo estaacute soportado por la alimentacioacuten de la periferia

con lo que rentaacutendole el consumo estaacutetico se obtiene la componente

off-cbip

Un dato constante es usado como entrada al circuito mientras el reloj

es aplicado por tanto solo el reloj produce consumo Si no se utilizan

FF en los IOBs solo se notaraacute consumo sobre la alimentacioacuten del core

sino en ambas alimentaciones

Surge de restarle al consumo total de la alimentacioacuten del core su

consumo estaacutetico Los IOBs contienen FF y un miacutenimo de loacutegica la

que se trata de evitar de usar para no influir en las medidas

Tabla B3 Componentes del consumo y forma de medicioacuten en Virtex

Para obtener el consumo dinaacutemico solo bastaraacute con medir el consumo sobre la

alimentacioacuten del core retaacutendole el consumo estaacutetico Por tanto el voltiacutemetro y

amperiacutemetro (Fluke 175 [Flu02]) se colocan sobre la liacutenea de alimentacioacuten de 25V

No obstante se controla la tensioacuten de 33 V para evitar errores en las medidas

El error en la medicioacuten es similar al expresado en la seccioacuten A51 ya que se utiliza un

instrumental similar En el rango utilizado el voltiacutemetro posee un error 015 de la

lectura en tanto que el amperiacutemetro el 1

286

Apeacutendice B Placa de Pruebas AFX para Virtex

B6 Referencias del apeacutendice

[Flu02] Fluke Ibeacuterica Multiacutemetros digitales de la serie 170 available at httpwwwflukees 2002

[Lop03] Sergio Loacutepez-Buedo Teacutecnicas de Verificacioacuten Teacutermica para Arquitecturas Dinaacutemicamente Reconfigurables Tesis doctoral Departamento de Ingenieriacutea Informaacutetica Universidad Autoacutenoma de Madrid julio 2003

[TekOl] Tektronix inc TLA 704 Logic Analyzer user Guide available at wwwtektronixcom

[Tek02] Tektronix inc TLA7PG2 Pattern Generator Module available at wwwtektronixcom

|Xil01] Xilinx inc Virtextrade 25 V Field Programmable Gate Arrays Product Specification Data Sheet DS003-1 (v25 ) April 2 2001 Available at wwwxilinxcom

[XIacute103] Xilinx Inc Xilinx Parallel Cable IV Advance Product Specification Data Sheet DS097 (vi 4) March 2002 available at hrtp toolboxxilinxcomdocsan

[XU99] Xilinx inc Xilinx Prototype Platforms User Guide for Virtex and Virtex-E Series FPGAs Data Sheet DS020 (vll) December 1999 Available at wwwxilinxcom

287

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

288

Apeacutendice C

Placa de prueba para VIRTEXII

Cl Introduccioacuten

Las medidas de consumo sobre la familia Virtex II se llevaron a cabo sobre una tarjeta

de prototipado disentildeada y distribuida por Xilinx denominada Virtex-IIprototypeplatform

[XIacute103]

Si bien esta tarjeta es maacutes compleja que la descrita en el apeacutendice B y al margen de

tener componentes adicionales (FPGA de servicio PROMs etc) que consumen

corriente eacutestas se alimentan por una conexioacuten separada con lo que las mediciones se

pueden llevar a cabo sin inconvenientes En esta placa se puede montar cualquier

FPGA de la familia Virtex II de 15 V con encapsulado FG676 [XIacute104]

La tarjeta de prototipado para Virtex II contiene dos FPGAs una es el dispositivo a

medir (DUT - Device Under Test) y una FPGA de servicio El DUT puede ser

programada por una PROM viacutea el conector a tal efecto socket PROM) o utilizando

uno de los dos conectores auxiliares a traveacutes de cualquier sistema de configuracioacuten de

Xilinx como MultiUNX cable [Mul03] Parallel Cable HI [ParOO] Parallel Cable IV

[Par04] oacute System ACE [AceOl]

La FPGA de servicio es una matriz de interconexioacuten que controla el rutado para todas

las sentildeales de configuracioacuten en la placa Esto permite evitarse jumpers y switches para

controlar la placa Una PROM serie XC18V01 configura la FPGA de servicio Ni la

FPGA de servicio si su PROM son parte de la cadena de configuracioacuten

289

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

HSWAPEN (OWOFF)

I CLKDOUBLE I ClxUraUaDipSviMi

IQUumlDDDDDGGDDI

Clock Generalor

FfBqucnsySoIsct gS-SOMHr

IrJTACConlfd O

0FP3A 1PROM Z FPOUPRCU 3 P R D H J F P G A 4FEEDTHROUGH

O Ccnfanralpii Ma da 2

2ConfaiTalOTMxfa a IRS1ER SERIAL (PRC(I| 1 UASIER SERIAL (UPST REAll) 2 IWSTER SELECt IUP (PFOTl 1IIASTER SELECTIMP UPSIPtaiU) 4-SWIacuteSBW KJIAG B SELECT LWP rEXIERlIAL

O CWpSded

ToUpalroauBoBid JTO3 SHeacutectTEp

JTAG TCKTMSTDtTDO RaijflsYScraacutet B0D7CCLK

Service FPGA

Pragraintilde

Hiacuteatfcifa-FTOU Pit^hterBoatd

SPROM (VQ44 Socket)

LVCMCS20SC LVCM0S2OSC 5MB

JTAG SdodMi la Ucwnaticain Uoal

Tan User Raacutesela ItWl t^EtawAlnil iexclpoundf T3IacuteVBATT IED-UU)

Pcwar Buacutea and Switchaa

To l^sltum Borniacute

O r-O mdashOVECJa

E 3 - Swilch -ltJVCCOJraquo mdash^Sv-raquo 0nOIK)n ^ -QvOTJa

jvca

Ta DMmunsm Ebaid VCCO

VCC IrealPowa- USllS-OIlaquo210t

Figura Cl Diagrama de bloques de la placa de prototipado para Virtex II [XIacute103]

C2 Caracteriacutesticas de la placa de prueba para Virtex II

La figura Cl muestra un diagrama de bloques de la placa de pruebas en tanto la

figura C2 es una fotografiacutea detallada extraiacuteda de las notas de aplicacioacuten de Xilinx Los

elementos maacutes destacables de la placa son Interruptor de corriente (1) posee tres

posiciones conecta la corriente a la placa viacutea los reguladores de tensioacuten ubicados en la

parte inferior de la placa desconecta o conecta la alimentacioacuten viacutea los bornes de

alimentacioacuten separados (2) Conector de programacioacuten (3) se puede utilizar

MultiUNX oacute Paralkl Cable III Selector de frecuencia para el reloj interno (4) Selector

290

Apeacutendice C Placa de Pruebas Virtex II

para el modo de programacioacuten de la DUT (5) los conectores 5a 5b son para system

ACE [AceOl] en tanto 5c y 5d son conectores de interfase para los modos de

programacioacuten select-map oacute slave-serial Control de la cadena JTAG (6) Control del chip

select (7) asigna un nuacutemero entre 0 y 3 para el DUT en la cadena de chip-sekct Conector

para la EPROM del usuario (8) acepta las memorias de la serie XC17V01-V04 y

XC18V01-V04 con empaquetado VQ44 FPGA de servicio (11) se configura con una

EPROM propia que no estaacute en la cadena de JTAG principal viacutea el conector especiacutefico

(9) Conexiones para osciladores externos (15) Conexioacuten para generadores de onda

extemos (16) Socket para la FPGA a medir (19) las patas para ingresar y sacar datos

estaacuten mapeadas en la zona de conexiones (20) alliacute se pueden soldar conectores para

utilizar generador de patrones y analizador loacutegico Posee leds programables por el

usuario (21) e interruptores de reset y programacioacuten (2223) Led de inicializacioacuten (jmt)

y finalizacioacuten de la configuracioacuten (directo de la pata done) (24 y 25)

Figura C2 Detalle de la placa de prototipado para Virtex II [XUuml03]

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

C3 Dispositivos Virtex II utilizados

En esta placa se pueden conectar dispositivos Virtex II con encapsulado FG676 Las

combinaciones de encapsulado y dispositivo de las hojas de datos de Virtex II [XU04]

indican que existen tres dispositivos con este encapsulado XC2V1500 XC2V2000 y

XC2V3000 con 152 y 3 millones de puertas equivalentes respectivamente

Los dispositivos disponibles para esta tesis son una XC2V1500FG676-6 (una matriz

de 48 x 40 CLB 7680 slices 48 BlockRAMs y 48 multiplicadores) y una

XC2V3000FG676-6 (64 x 56 CLB 14336 slices 96 BlockRAMs y 96

multiplicadores) Para las medidas de eacutesta tesis se utiliza mayoritariamente el primer

dispositivo

C4 Conexioacuten de la placa de pruebas

Las FPGAs de la familia Virtex II utilizada alimenta el core del circuito a 15 V

(Vccint) la periferia a 33 V (Vccout) en tanto que la tensioacuten auxiliar depende del

estaacutendar de salida En este caso se utiliza LVTTL y por ende se alimenta con 33 V

(Vccaux) Adicionalmente la placa posee una alimentacioacuten de 33 V para la FPGA de

servicio las memorias EPROMs y demaacutes circuitos de la placa

Dos fuentes de alimentacioacuten dobles alimentan por separado cada parte de la placa con

las tensiones correspondientes En el arreglo experimental se controlan todas las

tensiones y las corrientes del core periferia y auxiliar Por lo general el consumo

dinaacutemico del core obviaacutendose el resto de las corrientes En la figura C4 se observa una

fotografiacutea del arreglo experimental

Para la excitacioacuten de los circuitos se utiliza un generador de vectores de test

TLA7PG2 de la empresa Tektronix [Tek02] la sentildeal de reloj para los circuitos se

obtiene igualmente de este generador Para comprobar los resultados se utiliza un

bullanalizador loacutegico TLA704 de la misma empresa [TekOl]

292

Apeacutendice C Placa de Pruebas Virtex II

Figura C4 Fotografiacutea del arreglo experimental placa Virtex II

C5 Metodologiacutea de medicioacuten de consumo

La metodologiacutea de medicioacuten es similar a la expresada en los apeacutendices A y B solo que

aquiacute se tiene en cuenta el hecho de que la periferia y la tensioacuten auxiliar del circuito se

alimenta a 33 V en tanto que el core del circuito se alimenta con 15 V Como

consecuencia el consumo externo (off-chip pomr) seraacute alimentado por la tensioacuten de

33 V (Vccaux y Vccout) teniendo una influencia despreciable sobre el consumo del

core (15V) Se realizaron pruebas para comprobar esta uacuteltima afirmacioacuten En la tabla

Cl se resumen las componentes del consumo

293

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Consumo Estaacutetico

(Static Power)

Consumo Externo

(Off-chtppower)

Consumo de

Sincronizacioacuten

(Synchroniyation power)

Consumo Dinaacutemico

(Dynamic Power)

El circuito es configurado pero no se le conectan estiacutemulos ni sentildeal de

reloj El resto de elementos externos que requiere la FPGA quedan

conectados Se obtiene consumo estaacutetico tanto en la alimentacioacuten del

core (Vccint) como en la de la periferia (Vccout y Vccaux)

El consumo externo estaacute soportado por la alimentacioacuten de la periferia y

la auxiliar con lo que rentaacutendole el consumo estaacutetico de cada

componente se obtiene la componente off-chip

Un dato constante es usado como entrada al circuito mientras el reloj

es aplicado por tanto solo el reloj produce consumo Si no se utilizan

FF en los IOBs solo se notaraacute consumo sobre la alimentacioacuten del core

sino en ambas alimentaciones

Surge de restarle al consumo total de la alimentacioacuten del core su

consumo estaacutetico Los IOBs contienen FF y un miacutenimo de loacutegica la

que se trata de evitar su utilizacioacuten para no influir en las medidas

Tabla Cl Componentes del consumo y forma de medicioacuten en Virtex II

Para obtener el consumo dinaacutemico solo basta con medir el consumo sobre la

alimentacioacuten del core restaacutendole el consumo estaacutetico de esa alimentacioacuten Por tanto el

voltiacutemetro y amperiacutemetro se colocan sobre la liacutenea de 15V No obstante se controlan

la tensioacuten y corriente sobre las alimentaciones de 33 V ya queen ciertos experimentos

se mide el consumo sobre Vccout y Vccaux

Respecto al error en las medidas al igual que en los arreglos experimentales del

Apeacutendices A y B el error del voltiacutemetros en el rango utilrzado es del 015 de la

lectura en tanto que en los amperiacutemetros el error llega al 1 El error en la potencia

calculado como el producto I x V es del orden del 1

294

Apeacutendice C Placa de Pruebas Virtex II

C6 Referencias del apeacutendice

[AceOl] Eric Thacker Xilinx Inc System Ace Configuration Solution for Xilinx FPGAs White Paper 151 (v10) Available at wwwxilinxcom September 2001

[Mul03] Xilinx inc Getting Started with the MultiLINX Cable Xilinx Application Note XAPP168 (v21) April 292003

[ParOO] Xilinx inc Hardware User Guide Chapter 1 Cable Hardware - Parallel Cable III Xilinx Foundation documentation Ver 31 Available at httptoolboxwwwxilinxcomdocsan3_li 2000

[Par04] Xilinx inc Xilinx Parallel Cable IV Data Sheet DS097 (v20) January 2004 Available at wwwxilinxcom

[TekOl] Tektronix inc TLA 704 Logic Analyzer Family user Guide versioacuten 41 2001 available at wwwtektronixcom

|Tek02] Tektronix inc TLA7PG2 Pattern Generator Module Instruccioacuten Manual 2002 Available at wwwtektronixcom

[XIacute103] Xilinx inc Virtex II Prototipe platform user guide UG015 v11 January 2003 Available at wwwxilinxcom

[XIacute104] Xilinx Inc Virtex-II Platform FPGAs Complete Data Sheet Data sheet DS031 (v33) June 2004 Available at httpwwwxilinxcom

295

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

296

Apeacutendice D

Traductor Kiss2VHDL

Dl Introduccioacuten

Se describe aquiacute la herramienta software construida para la realizacioacuten de los

experimentos de consumo con diferentes codificaciones en maacutequinas de estados

finitos (Capiacutetulo 4) Como proacutelogo se describen el formato de especificacioacuten de

maacutequinas de estado KISS2 [Sen92] y los grupos de bancos de pruebas (benchmarks tests)

MCNC |Lis88] y PREP [PreOO]

D2 El formato KISS

El formato KISS se origino con el programa de minimizacioacuten de funciones loacutegicas de

dos niveles usados para PLAs llamado espresso [Bra94] El formato evolucionoacute para dar

soporte a las maacutequinas de estado finitos (llamado KISS2) y se ha extendido su

utilizacioacuten en muacuteltiples herramientas de asignacioacuten y minimizacioacuten de estados

En KISS2 cada estado es simboacutelico dado un estado y un vector de bits de entrada la

tabla de transicioacuten indica el proacuteximo estado en forma simboacutelica y el vector de bits de

salida Las condiciones externas sin importancia don t cari) se indican a traveacutes de no

escribir la transicioacuten (es decir no se escribe la combinacioacuten estado actual-combinacioacuten

de entrada) Otra alternativa es escribir que no importa el estado de un bit de entrada

o salida y para ello se utiliza el caraacutecter - es decir Iacutendica que puede ser

indiferentemente 0 oacute 1

Los archivos KISS2 son en texto plano El caraacutecter da inicio a un comentario hasta

el fin de liacutenea (hasta el caraacutecter salto de liacutenea) Las siguientes palabras claves son

reconocidas donde [d] indica un nuacutemero decimal y [s] una cadena de texto

297

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

i [d] Especifica la cantidad de variables de entrada

bullo [d] Especifica la cantidad de variables de salida

p [d] Especifica la cantidad de reglas (opcional)

s [d] Especifica la cantidad de estados (opcional)

r [s] Especifica el estado de reset (opcional)

Luego se colocan las reglas en la tabla de estados donde current_state y next_state

son nombres simboacutelico que representan estados e input y output son los vectores de

bits de la entrada y salida respectivamente

inputs cuaent_state next_state outputs

e o end marcan el fin de la desscripcioacuten

Un primer ejemplo Un diagrama de transicioacuten de estados (STG) de una maacutequina de

estados con un bit de entrada y otro de salida tres estados 6 reglas Las palabras claves

correspondientes a la cantidad de estados y reglas son opcionales y no se han descrito

en este ejemplo

i 1

0 1 0 stO 1 stO 0 stl 1 stl 0 st2 1 st2 e

stO stl st2 stl stO stl

Figura Dl Un primer ejemplo de descripcioacuten KISS2

Segundo ejemplo Cada posicioacuten en la columna de variables de entrada o salida

indica una variable del mundo exterior En las entradas los 0 indican teacuterminos

complementados en tanto que los V teacuterminos directos El caraacutecter mdash que la variable

no estaacute presente (don t cari)

298

Apeacutendice D Traductor K1SS2VHDL

bull i 2 0 2 p 15 s 5 r si 11 si 0- si 10 si 00 s2 1- s2 01 s2 1- s3 0- s3 10 s4 01 s4 00 s4 11 s4 1- s5 00 s5 01 s5 end

s2 s2 s5 s3 s3 s4 s4 s5 si si s5 s5 si s3 s3

11 00 00 -1 10 -1 00 11 11 -1 11 0--0 10 1-

Figura D2 Ejemplo de grafo de transicioacuten de estados y su correspondiente especificacioacuten en KISS2

D3 Bancos de pruebas (Benchmarks)

Para medir y comparar consumo en maacutequinas de estado se han utilizados los circuitos

bancos de prueba del MCNC [Lis88] y los del consorcio PREP [PreOO]

MCNC Benchmarks El banco de pruebas para siacutentesis loacutegica y optimizacioacuten logic

synthesis and optimi^ation benchmarks) es distribuido por el Centro de microelectroacutenica de

Carolina del Norte (Microelectronics Center of North Carolina) e incluye los

conjuntos de bancos de prueba ISCAS85 e ISCAS89 El primer informe de gran

difusioacuten (versioacuten 20) data de 1988 [Lis88] y ha sido ampliado en la versioacuten 30

[Yan91] siendo eacutesta uacuteltima la versioacuten utilizada en esta tesis

El conjunto de circuitos de prueba esta divido en cuatro categoriacuteas fundamentales

Maacutequinas de estado en formato KISS2 Loacutegica secuencial multinivel en extended

BLIF (Berkeley Logic Interchange Formai) o SLIF Structure Logic Interchange Formai) Loacutegica

combinacional multinivel en extended BLIF o SLIF Por uacuteltima loacutegica de dos niveles

en Berkey PLA format (Como KISS pero sin estados) o SLIF Se puede conseguir en la

direccioacuten ftpmcncmcncorg directorio pubbenchmark LGSynth91

299

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

PREP Benchmarks El consorcio de compantildeiacuteas de electroacutenica programable

(Programmable Electronics Performance Company - PREP ) se creo con el aacutenimo de generar

una serie de pruebas que midiesen las prestaciones en FPGAs y otros dispositivos

programables De los nueve circuitos que distribuye la versioacuten 13 nos interesan los

circuitos 3 y 4 que implementan maacutequinas de estados (de 8 y 16 estados

respectivamente)

Actualmente el consorcio PREP se ha disuelto pero se pueden conseguir los circuitos

en VHDL o Verilog en una implementacioacuten de Symplicity [Syn88] o bien desde la

paacutegina web del proyecto httpwwwpreporg

D3 Traductor Eiss2VHDL

El programa Kiss2VHDL codifica los estados de la maacutequina que se ingresa en

formato KISS2 seguacuten los paraacutemetros ingresados y genera dos ficheros VHDL Uno

con la entidad de la maacutequina de estados y un top-level que instancia la maacutequina de

estados y agrega buffers de tercer estado en las patas del circuito

Modo de uso Kiss2VHDL [options] pnput]

-n No state Encoding Only transform K3SS into VHDL -h print help message -e option specify encoding option

r random encoding

h one hot encoding V two hot encoding o output dominant algorithm (default) out-oriented

pnput] file to be processed (default stdin)

El programa esta escrito en C posee un analizador sintaacutectico (parser) para transformar

el fichero KISS2 leiacutedo en una representacioacuten de diagrama (o grafo) de transicioacuten de

estados Posee rutinas para la asignacioacuten de estados y funciones para la escritura del

coacutedigo VHDL

A continuacioacuten se muestra el ejemplo de la traduccioacuten del ejemplo de la figura C2 con

codificacioacuten One Hot en coacutedigo VHDL

300

Apeacutendice D Traductor KISS2VHDL

mdash MEALY machine

mdash generado por el traductor kiss2vhdl

library ieee use ieeestd_logic_1164all library SYNOPSYS use SYNOPSYSattributesall

entity ejemplo is port(clk rst in std_logic

i in std_logic_vector (1 downto 0) o out std_logic_vector (1 downto 0) )

end ejemplo

architecture behave of ejemplo is type state is ( si s2 s5 s3 s4) attribute enum_encoding of state type is

10000 amp 01000 S 00100 amp 00010 S 00001

mdash si mdash s2 mdash s5 mdash s3 -- s4

signal machine next_state state signal o_i std_logic_vector (1 downto 0)

begin

mdash Sincronization state_machine process (rst clk) begin

if rst = 1 then machine lt= si

elsif rising_edge(clk) then machine lt= next_state

end if end process state_machine

next_state_process process (machine i) begin case machine is when si =gt

if i = 11 then next_state lt= s2 o_i lt= 11

elsif i(l) = 0 then next_state lt= s2 o_i lt= 00

elsif i = 10 then next_state lt= s5 o_i lt= 00

else next_state lt= si o_i lt= (others =gt X)

end if when s2 =gt

if i = 00 then next_state lt= s3 o_i lt= -1

elsif i(l) = 1 then

301

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

next_sta te lt= s3 o_i lt= 10

e l s i f i = 01 then next_sta te lt= s4 o_i ltlaquo - 1

e l se next_state lt= s2 o_i lt= (others =gt X )

end if when s5 =gt

i f i ( l ) = 1 then next_state lt= si o_i lt= -0

elsif i = 00 then next_state lt-= s3 o_i lt= 10

elsif i = 01 then next_state ltlaquo s3 o_i lt= 1-

else next_state lt= s5 o_i lt= (others =gt X)

end if when s3 =gt

if i(l) = 1 then next_state lt= s4 o_i lt= 00

elsif i(l) = 0 then next_state lt= s5 o_i lt= 11

else next_state lt= s3 o_i lt= (others =gt X)

end if when s4 =gt

if i = 10 then next_state lt= si o_i lt= 11

elsif i = 01 then next_state lt= si o_i lt= -1

elsif i = 00 then next_state lt= s5 o_i lt= 11

elsif i = 11 then next_state lt= s5 o_i lt= 0-

else next_state lt= s4 o_i lt= (others =gt X)

end if when others =gt

next_state lt= si o_i lt= (others =gt X)

end casa end process next_state_process

o lt~ o_i end behave

302

Apeacutendice D Traductor K3SS2VHDL

D4 Referencias del Apeacutendice

[Syn98] Synplicity Inc Synplify User Guide Releacutease 50 PREP VHDL Benchmark Examples August 1998 httpwwwsynplicitycom

[Lis88] Bob Lisanke Logic synthesis and optimization benchmarks Technical report MCNC Research Triangle Park North Carolina December 1988

[PreOO] Programmable Electronics Performance Corporation (PREP) Benchmarks (Programmable Electronics Performance Company) see httpwwwpreporg

[Sen92] E M Sentovich K J Singh L Lavagno C Moon R Murgai A Saldanha P R Stephan R K Brayton and A Sangiovanni-Vincentelli SIS A System for Sequential Circuit Synthesis Technical Report Memoraacutendum No UCBEKLMP241 Univ of California Berkeley 1992

[Bra84] Robert K Brayton Gary D Hachtel Curtiacutes T McMullen and Alberto L Sangiovanni-Vincentelli Logic Minimization Algorithms for VLSI Synthesis KluiverAcademicPublishers 1984

[Yan91] Saeyang Yang Logic Synthesis and Optimization Benchmarks User Guide Versioacuten 30 Technical report MCNC Research Triangle Park North Carolina January 1991

303

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

304

Apeacutendice E

Particionador de maacutequinas de estado Patt_FSM

El Introduccioacuten

El programa Part_FSM es un programa C++ para la particioacuten de maacutequinas de

estados Como entrada acepta maacutequina de estados descritas en formato KISS2 [Sen92]

(apeacutendice D) generando como resultado la particioacuten de la maacutequina de estados seguacuten

lo expresado en la seccioacuten 44 En primer lugar lee la maacutequina de estados y la

transforma en una representacioacuten interna de grafo de transicioacuten de estados (STG -

State Transitioti Grapuuml) luego le calcula la probabilidad estaacutetica Maacutes tarde se aplica el

algoritmo de particioacuten de maacutequinas de estado para por uacuteltimo generar el coacutedigo

VHDL de la maacutequina de estados particionada El programa acepta paraacutemetros para

especificar el tipo de arquitectura (arquitectura Ij II seguacuten la seccioacuten 434) u ortogonal

(seccioacuten 433) ademaacutes del tipo de meacutetodo de bloqueo necesario

E2 Estructuras de datos

La principal estructura de datos es el grafo de transicioacuten de estados (STG mdash State

Transitioti Grapuuml) donde se almacena la maacutequina de estado La estructura baacutesica es el

estado (stateacute) y la transicioacuten entre estados (transition) (la declaracioacuten de la parte privada

de las clase se puede ver en la figura Dl) luego el STG es un arreglo de estados Otra

estructura importante es la particioacuten (partition) que almacena en dos arreglos los

estados de cada submaacutequina de estados

305

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

E3 Caacutelculo de probabilidad estaacutetica

La probabilidad estaacutetica se calcula tal lo expresado en la seccioacuten 435 A medida que

se leen las liacuteneas que implican transiciones en el coacutedigo KISS2 se cargan en el grafo

de transicioacuten de estados y se asignan las probabilidades a los arcos La probabilidad

condicional de transicioacuten de un arco hacia otro si se considera equiprobabilidad de las

entradas es tan simple como dividir la proporcioacuten de combinaciones que generan la

transicioacuten respecto del total

En la Figura 416 se puede observar un ejemplo de caacutelculo de probabilidades Se

puede ver en la Figura 416b las probabilidades calculadas Por otra parte en el

ejemplo de la Figura E3 todas las probabilidades de transicioacuten son de 05

class state private

int present_state int no_of_fanout int no_of_fanin int inputs float steady_state_probability transition init ptr vectorltintgt fanin_states vectorlttransitiongt fanin_edges

public

c lass t r a n s i t i o n p r iva t e

i n t nextstatenum char inpu t_b i t s char ou tpu t_b i t s s t a t e nex t_s ta te f loa t t r ans i t i on_p robab i l i t y t r a n s i t i o n nex t_ t r ans i t ion

publ ic

Figura E l Declaracioacuten de la parte privada de las clases state y transition

Para resolver el sistema de n ecuaciones y asiacute obtener la probabilidad estaacutetica se

implementa un algoritmo iterativo para el caacutelculo Una vez obtenido la probabilidad

estaacutetica para cada estado se procede a calcular la probabilidad de transicioacuten que surge

306

Apeacutendice E Partiacutedonador de Maacutequinas de Estados

de multiplicar la probabilidad estaacutetica de cada estado origen por la probabilidad de

dicha transicioacuten Una vez obtenido un grafo con la informacioacuten que muestra la Figura

416C y la Figura 416d se procede a invocar al algoritmo de particioacuten

E4 Particioacuten de la maacutequina de estados

El criterio para la divisioacuten de la maacutequina de estados es la minimizacioacuten de la

probabilidad de transiciones entre las maacutequinas de estados es decir

min( 2 ] p(ij)) V e TlAj e UB dondep(iquestiexcl) es la probabilidad de transicioacuten de

la maacutequina original y IIA = Sai Sa2 bull bull -San y UumlB = Sbi Sb2 bull bull Sbmson las

particiones generadas

Existe otro criterio extra dentro del algoritmo que es la diferencia de cardinalidad de

las dos particiones siendo esta un paraacutemetro Las pruebas empiacutericas sobre las

arquitecturas disentildeadas muestran que los mejores resultados se logran con la misma

cantidad de estados en las submaacutequinas no obstante es un paraacutemetro por si se desea

implementar sobre otra arquitectura

Se ha implementado un algoritmo de backtracking (que explora todas las

combinaciones posibles) con funciones de poda para reducir el tiempo de caacutelculo No

fue necesario desarrollar una heuriacutestica para resolver el problema ya que la buacutesqueda

exhaustiva resuelve el peor caso presentado dentro del banco de pruebas del

MCNC91 [Lis88]iexclYan91] en unos pocos segundos En la figura E2 se puede observar

el coacutedigo para la generacioacuten de las particiones

307

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

coacutedigo del algoritmo de particioacuten void pa r t i t i one r (state STG pa r t i t i on P f loa t SminDist i n t n_state

i n t t o t_s t i n t maxjst f loa t ac tua l jd i s t i n t n_P0 i n t n_Pl) i n t numEdges f loa t growjdist

i f (n_state lt t o t j s t ) s i no se han asignado todos los estados asigno n_state a suacutebconj (particioacuten) 0 i f (n_P0 lt maxjst) siempre que no me pase del limite

growjdist = aurrentojdistance(P STG numEdges n j s t a t e 0 ) i f ((growjdist + actual jd is t ) lt minDist)

P-gtput(njstate 0) partioner(STGP minDist njs tate+1

t o t j s t maxjst (growjdist+actual_dist)n_PO+l n_Pl) P-gtdel_last(0)

asigno njstate a subconj (particioacuten) 1 i f (n_Pl lt maxjst) siempre que no se pase del limite

growjdist = aumentojdistance(PSTGnumEdgesnjstate1) i f ((growjdist+actualjdist) lt minDist)

P-gtput (njstate 1) partitioner(STG P minDistn_state+l

t o t j s t maxjst (growjdist+actualjdist)n_P0n_Pl + 1) P-gtdel_las t ( l )

else s e han asignado todos los estados

f loa t pd = partitionjdistance(PSTGnumEdges) i f ( pd lt minDist) si es la major sssolucioacuten se guarda

minDist = pd P-gtprint_parti t ion () i f (minP = NULL) delete (minP) minP = P-gtcopy()

Figura E2 Coacutedigo para la particioacuten de maacutequinas de estados

308

Apeacutendice E Partiacutecionador de Maacutequinas de Estados

E5 Generacioacuten del coacutedigo VHDL

Una vez realizada la particioacuten de la maacutequina de estados se genera el coacutedigo VHDL El

generador de coacutedigo tiene en cuenta los paraacutemetros que se han ingresado para generar

el coacutedigo correspondiente Se puede generar la arquitectura I o arquitectura II elegir el

tipo de bloqueo de los datos entre puertas ANDs hatches y buffers de tercer estado y

ademaacutes el tipo de codificacioacuten de las submaacutequinas

A continuacioacuten se muestran un ejemplo en base al circuito dk27 del MCNC que se

puede ver en la figura E3 En la figura E4 se muestra el coacutedigo KISS2 que se utiliza

como entrada al programa y la salida por pantalla con la informacioacuten de la

probabilidad calculada que exhibe la herramienta La figura E5 muestra la

informacioacuten que brinda la herramienta respecto de la particioacuten realizada Maacutes adelante

la figura D6 muestra graacuteficamente los datos de la particioacuten

Figura E3 Diagrama de-transicioacuten de estados de la maacutequina de estados DK27

309

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

bullmodel dk27 bull i 1 0 2

p 14

s 7 bull r stO 0 stO st6 0 st2 st5 0 st3 st5 0 st4 st6 0 st5 stO 0 st6 stO 0 stl st5 1 st6 st2 1 st5 st2 1 st4 st6 1 stl st6 1 stO st4 1 st2 st3 1 st3 stl end

00 00 00 00 10 01 00 01 10 10 10 00 00 00

Reading Design dk27 Finished reading successfully Model Ntildeame dk27 Number of states 7 Nurriber of Inputs 1 Number of Outputs 2 Number of transitions 14 Reset State 0

Steady State probabilities stO mdash gt 025 stl mdash gt 00357143 st2 mdash gt 025 st3 mdash gt 00714286 st4 mdash gt 00714286 st5 mdash gt 0142857 st6 mdash gt 01785710142857

Transitions probabilities stOmdashgtst6 stOmdash-gtst4 stlmdashgtst5 stlmdashgtst6 st2~gtst5 st2mdashgtst3 st3mdashgtst5 st3mdashgtstl st4~gtst6 st4mdashgtst6 st5mdashgtst0 st5~gtst2 st6~gtst0 st6~gtst2

0125 0125 00178571 00178571 0125 0125 00357143 00357143 00357143 00357143 00714286 00714286 00892857 00892857

Figura E4 a) Coacutedigo K3SS2 de entrada b) Informacioacuten de la herramienta con

las probabilidades calculadas

Time elapsed (seconds) 0 Time elapsed (docks) 230 (CLOCKS_PER_SEC 1000)

Detail of Partitions Number of States original FSM 7 Size Partition 0 3 Size Partition 1 4 States Partition 0 stO st4 st6 States Partition 1 stl st2 st3 st5

Transitions of Partition 0 to Partition 1 Edge st6 -gt st2 Prob00892857 Total probabilities of transition partO to partiacute 00892857

Transitions of Partition 1 to Partition 0 Edge stl -gt st6 Prob00178571 Edge st5 -gt stO Prob00714286 Total probabilities of transition partO to partiacute 00892857

Figura E5 Informacioacuten de las particiones generadas

310

Apeacutendice E Paruumlcionador de Maacutequinas de Estados

Figura E6 Particioacuten generada para el circuito dk27

Por uacuteltimo se muestra el coacutedigo VHDL para el circuito dk27 con la arquitectura I latches para bloquear los datos y buffers tri-estados para las salidas En la estructura se reconocen cuatro procesos buf_tri_output que genera buffers de tercer estado para las salidas state_machine para la inferencia de registros blockingjatches para inferir los latches de las entradas next_state_proces_a y next_state_proces_a son los bloques combinacionales de las submaacutequinas de estado Por uacuteltimo ouiput_process para generar el multiplexor de la salida

mdash Partitioned FSM generated by part_FSM mdash Design dk27kiss2 mdash Number of States 7 mdash Partition 0 0 4 6 mdash Partition 1 1 2 3 5

library ieee use ieeestd_logic_1164all

entity dk27 is port(clk rst tri in std_logic

i in std_logic_vector (O downto 0) o out std_logic_vector (1 downto 0) )

end dk27

architecture behave of dk27 is

type state is ( stO stl st2 st3) attribute enum_encoding of state type is

1000 amp mdash P0 0 mdash Pl 1 0100 S -- P0 4 mdash Pl 2

311

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

0010 amp mdash PO 6 mdash Pl 3 0001 mdash Pl 5

mdash Internal signal declarations signal next_a next_b machine machine_a machine_b state signal activeFSM_a activeFSM_b std_logic signal activeFSM std_logic signal inp_a inp_b std_logic_vector (0 downto 0) signal o_i_a o_i_b std_logic_vector (1 downto 0) signal sal std_logic_vector (1 downto 0)

begin

mdash Output Trlestate Buffer buf_tri_output process (trisal) begin

if tri = l1 then o lt= sal

else o lt= others =gt Z

end if end process buf_tri_output

mdash Sincronization state_machine process (rst clk) begin if rst = 1 then

machine lt= stO elsif rising_edge(clk) then

if activeFSM = 0 then machine lt= next_a activeFSM lt= activeFSM_a

else machine lt= next_b activeFSM lt= activeFSM_b

end if end if end process state_machine

mdash Inputs Latches states and inputs blocking_latches process (activeFSM machine i) begin

if activeFSM = 0 then inp_a lt= i machine_a lt= machine

else inp_b lt= i machine_b lt= machine

end if end process input_latches

next_state_process_a process (machine_a inp_a) begin case machine a is

312

Apeacutendice E Partiacutecionador de Maacutequinas de Estados

when stO =gt mdashstO if inp_a = 0 then

next_a lt= st2 mdash st6 activeFSM_a lt= 0 o_i_a lt= 00

elsif inp_a = 1 then next_a lt= stl mdash st4 activeFSM_a lt= 0 o_i_a lt= 00

else next_a lt= stO mdash stO activeFSM_a lt= 0 o_i_a lt= (others =gt X)

end if when stl =gt mdashst4

if inp_a = 0 then next_a lt= st2 mdash st6 activeFSM_a lt= 0 o_i_a lt= 00

elsif inp_a = 1 then next_a lt= st2 mdash st6 activeFSM_a lt= 0 o_i_a lt= 10

else next_a lt= stl mdash st4 activeFSM_a lt= 0 o_i_a lt= (others =gt X)

end if when st2 =gt mdashst6

if inp_a = 0 then next_a lt= stO mdash stO activeFSM_a lt= 0 o_i_a lt= 01

elsif inp_a = 1 then next_a lt= stl mdash st2 activeFSM_a lt= 1 o_i_a lt= 01

else next_a lt= st2 mdash st6 activeFSM_a lt= 0 o_i_a lt= (others =gt X)

end if when others =gt

next_a lt= stO mdash reset state activeFSM_a lt= 0 o_i_a lt= (others =gt X)

end case end process next_state_process_a

next_state_process_b process (machine_b inp_b) begin case machine_b i s when stO =gt mdash s t l

i f inp_b = 0 then

313

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

next_b lt= st3 mdash st5 activeFSM_b lt= l o_i_b lt= 00

elsif inp_b = 1 then next_b lt= st2 mdash st6 activeFSM_b lt= 0 o_i_b lt= 10

else next_b lt= stO mdash stl activeFSM_b lt= 1

o_i_b lt= (others =gt X) end if

when stl =gt mdash s t 2 if inp_b = 0 then

next_b lt= st3 mdash st5 activeFSM_b lt= l1 o_i_b lt= 00

elsif inp_b = 1 then next_b lt= st2 mdash st3 activeFSM_b lt= bull1bull o_i_b lt= 00

else next_b lt= stl mdash st2 activeFSM_b lt= 1 o_i_b lt= (others =gt X)

end if when st2 =gt mdash s t 3

if inp_b = 0 then next_b lt= st3 mdash st5 activeFSM_b lt= 1 o_i_b lt= 00

elsif inp_b = 1 then next_b lt= stO mdash stl activeFSM_b lt= 1 o_i_b lt= 00

else next_b lt= st2 mdash st3 activeFSM_b lt= l1 o_i_b lt= (others =gt X)

end if when st3 =gt mdashst5

if inp_b = 0 then next_b lt= stO mdash stO activeFSM_b lt= 0 o_i_b lt= 10

elsif inp_b = 1 then next_b lt= stl mdash st2 activeFSM_b lt= 1 o_i_b lt= 10

else next_b lt= s t 3 mdash st5 activeFSM_b lt= 1

o_i_b lt= (others =gt X ) end if

314

Apeacutendice E Partiacutecionador de Maacutequinas de Estados

when others =gt next_b lt= stO mdash reset state activeFSM_b lt= l1 o_i_b lt= (others =gt X)

end case end process next_state_process_b

mdash select the output (multiplexor) output_process process (activeFSM o_i_a o_i_b) begin

if activeFSM = 0 then sal lt= o_i_a

else sal lt= o_i_b

end if end process output_process end behave

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

316

Apeacutendice F

Utilizacioacuten de la herramienta de estimacioacuten de consumo Xpower

Fl Introduccioacuten

Xilinx incorpora desde la versioacuten 41 de su software de disentildeo ISE (Jntegrated Software

Enviromenf) la herramienta de estimacioacuten de consumo XPower [Xpo04] Xpower es

una herramienta de anaacutelisis de consumo post Place ltiquestr Route para FPGAs (y post-fit en

CPLDs) donde se puede analizar interactivamente el consumo Incluye una

herramienta con interfaz graacutefica (GUI - Grafical User Interfaceacute) denominada Xpower y

una aplicacioacuten de proceso por lotes (batcb) Xpwr

Esta herramienta utiliza como entrada ficheros de simulacioacuten con formato VCD

(Valueacute Change Dump) creados con la herramienta Modelsim [Men04] para calcular los

estiacutemulos en cada nodo del circuito La informacioacuten final es presentada en formato

HTML o texto plano ASCII Seguacuten Xilinx Xpower estima el consumo con una

precisioacuten + -10

F2 Uso de Xpower con FPGAs

Xpower se puede invocar desde el entorno ISE donde se carga el archivo NCD

(Native Circuit Description) conteniendo el disentildeo opcionalmente el fichero PCF

(PhysicalConstraintsFile) con las restricciones del usuario oacute las generadas por el mappery

ffr m

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

por uacuteltimo los datos de una simulacioacuten previa Se pueden ademaacutes agregar la tensioacuten

de alimentacioacuten y la temperatura ambiente

La opcioacuten de utilizar la interfaz graacutefica (figura Fl) es uacutetil por el corto tiempo de

aprendizaje no obstante para realizar muacuteltiples mediciones y comparaciones la

herramienta de procesamiento por lotes (Xpwr) es maacutes adecuada

En vez de colocar los datos de simulacioacuten se puede colocar expliacutecitamente la

actividad que uno cree conveniente en cada nodo oacute bien colocar valores por defecto

(12 de actividad) o estimar los valores de actividad Estiacutemate Activity Rates en el

menuacute Tools) Ninguna de eacutestas alternativas es aconsejable dado que los valores de

resultado que brinda no tienen nada que ver con la actividad real ya que no se tiene en

cuenta la tremenda influencia de los glitches en las FPGAs Por ejemplo en un

multiplicador de 16 bits pueden existir nodos internos permutando maacutes de 8 veces la

frecuencia de reloj mientras que otros nodos solo tienen una actividad del 5

respecto de la sentildeal de reloj

F21 Generacioacuten del fichero VCD

El fichero que recoge los movimientos del circuito se llama VCD (yalue Change Dump

mdash Volcado del cambio de valores) El fichero VCD automatiza la anotacioacuten del

movimiento de las sentildeales Normalmente se parte de un testbench significativo del

funcionamiento del circuito del cual se extraen los movimientos de los datos internos

Los simuladores soportados por Xpower son el Model Technology ModelSim

iexclMod04] (en sus versiones XE PE and SE) y Cadenee Verilog XL Cadenee NC-

Verilog Cadenee NC-VHDL Cadenee NC-SIM [Cad04] En esta seccioacuten solo se

aborda el uso de Modelsim

La lista completa de los comandos para el fichero VCD se puede ver en [Mod03b]

Los comandos necesarios en el flujo VHDL es el ingreso de forma interactiva o bien

en un fichero de comandos (do file) de los siguientes comandos (estos comandos se

pueden utilizar en un flujo Verilog)

ved file my_designvcd

ved add testbenchuut

Los comandos anteriores generan un fichero VCD llamado my_designvcd

Asumiendo que el nombre de la entidad del banco de pruebas es testbench y que el

318

Apeacutendice F Uso de la herramienta XPOWER

nombre de instancia de la unidad a simular es uut unit under test) la segunda liacutenea de

comandos indica agregar todas las sentildeales al archivo VCD

Se puede agregar el modificador - r al comando ved add para agregar todas las

sentildeales en un nivel de loacutegica mayor que uno (que es el valor por defecto) El uso del

modificador mdashr puede aumentar considerablemente el tamantildeo del fichero de

simulacioacuten pero naturalmente seraacute mucho maacutes preciso

A partir de la versioacuten 61 del entorno de desarrollo del ISE [Ise03] se incorpora la

opcioacuten de generar automaacuteticamente el fichero VCD para un testbench En las

propiedades de la simulacioacuten post place ltamp ntildeute se agrega esta opcioacuten para cualquier

testbench ya sea Verilog o VHDL

El tamantildeo de los ficheros generados suelen se muy grandes dependiendo baacutesicamente

del tiempo de simulacioacuten y el tamantildeo del circuito Simular un multiplicador de 32x32

bits con datos de entrada cada 100 ns durante 4 jas (40 multiplicaciones) requiere

unos 13 MB Es faacutecil de imaginar que simular el orden de segundos en un disentildeo

medio ocuparaacute en el orden de los GB El tiempo de simulacioacuten es un tema nada

despreciable para disentildeos grandes con bancos de pruebas importantes

Z XilmKXPowcr-[top anrfspwr] P f f a Sft Vfcw Totfa Wndw Me

| |csaK- raquo - l|s|g[laquo-1iquestUf bull gt t ^

Vofcapo tf Cuncnt (bull Powat ft |iquestd

PfrWlraquo

DWMTWC

OVtwme Qtffttcert

B jraquo n laquoa

ZOO amp-gt SSIacute-

JJfci

f 3 iquest 3 DataView

ffid Oockiacute

| eacute E3 Irputi I Eacute-EJ Icsfc i BJCD otputt I ffi pound3 Sfcntildealt I B 3 Ropcrt Viom

laquo-PovlaquoR^poit(HTML)

=l

Releacutease 62031 - XPover SofcvareVerslonG3lo Copyright (c) 1S9S-2004 Xlllnx Inc All righea reserved Design cop_ands Preferences cop_and3pcpound VCD Ti le EXproj_I3E_di3ablingCLK_newgace_clfc_VII_X6 cop_ands 1 ved Pare 2vl500iacuteg676-6 Daca versioacuten ADVANCEDvl0107-31-02

Pover auaanary I(mA) P(raU)

Total estlaaced pover consuapcion

Vcelnc lSOVi Vccaux 330V Vcco33 330V

Outpucs Vcco33 Logic

Signaacuteis Cloefcs inputs

Quiescent Vecint 150V

143 100

215 330

iacutel

~Ii

a BAPNINCPower90 - Canc change acclvicy race of nec S_23 co 00 of elkmdashBDTGP HARNINGPower90 - Canc change acclvicy race of nec S_24 to 00 of clk_BUFGP VAFNINGPover9D - Canc change acclvicy race of nec S_25 co 00 of elfc_B0TGP BABNXNGPower90 - Canc change acclvicy race of nec S_26 co 00 of clk_BuTGP WARNINGPower90 - Canc change acclvicy cace of nec S_27 co 00 of clk_B0TGP

fortfefeptwtiEr ^- bullbull gt bull iexclwiquestihamp^^vmvmm

Figura Fl Aspecto de la interfaz graacutefica Xpower

319

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

F22 Uso de la interfaz graacutefica Xpower

Se puede invocar independientemente (stand alone modeacute) en cuyo caso se deberaacute cargar

posteriormente el disentildeo oacute desde el entorno ISE En este uacuteltimo caso se cargaraacute el

fichero NCD y PCF correspondiente al disentildeo activo De existir un fichero VCD con

el mismo nombre del disentildeo se cargaraacute tambieacuten los movimientos alliacute descritos Si no

se ha cargado el fichero VCD se lo puede cargar desde la barra de menuacutes file -^ open

simulationfile

Otra opcioacuten para introducir los movimientos es cargar un fichero XML extended

markup Language) con un resumen de los movimientos de cada sentildeal y otras

informaciones como tensioacuten de alimentacioacuten temperatura ambiente etc file -^ open

settingsfile Este fichero que resume la actividad en cada nodo es generado por una

previa ejecucioacuten de Xpower file -^ save settingsfile as

Otros datos que se pueden agregar interactivamente son la tensioacuten de alimentacioacuten la

capacidad de la bateriacutea la temperatura ambiente cambiar el empaquetado y agregar

ventilacioacuten Finalmente se pueden ver los informes en formato texto o HTML

presionado en report vieiif Al margen de la visualizacioacuten en la ventana a tal efecto

generaraacute un fichero en texto plano con la extensioacuten xpw (o en formato html) en el

directorio de trabajo del proyecto de Xilinx

El tipo de reporte puede ser seleccionado entre los tipos standard detaikd oacute advanced) a

traveacutes del menuacute edit bull$ preferences En el modo advanced informaraacute la corriente y

potencia maacutexima de cada fuente de alimentacioacuten asiacute como la corriente estaacutetica

Informacioacuten de la corriente maacutexima disipable por el dispositivo dependiendo de las

condiciones de temperatura ambiente y refrigeracioacuten antes suministradas Tambieacuten

informaraacute las sentildeales elementos de loacutegica entradas y salidas que maacutes consumen (la

cantidad se define en las preferencias)

F23 Uso de la liacutenea de comando Xpwr

La herramienta de liacutenea de comandos Xpwr es uacutetil a la hora de sistematizar medidas

repetitivas con procesos por lotes El ejecutable estaacute en la carpeta de instalacioacuten de

Xilinx Ejecutando xprw - h se obtiene la lista de comandos (Figura F2) Un ejemplo

de liacutenea de comando utilizado en estaacute tesis es

xpwr my_designncd my_designpcf -v -a -s my_designvcd -o reportpwr

320

Apeacutendice F Uso de la herramienta XPOWER

Comando

-v[-a]

-1 ltlimitgt

-x ltuserdatagt

-wx ltuserdatagt

-s ltsimdatagt

-tb ltnumgt [unit]

-o ltreportfilegt

^t lttclscriptgt

Accioacuten

Modo verboso [-a] avanzado

Nuacutemero maacuteximo de lineas en el reporte

Lectura de un fichero XML previamente guardado

Grabar un fichero de movimientos XML

Especifica el fichero de simulacioacuten (fichero VCD)

Unidades en el fichero de reportes basados en tiempo

Las unidades son ps (por defecto) ns fs y us

Especifica el nombre del fichero de salida

Especifica un script TCL para aplicar los settiacutengs

Figura F2 Opciones en la herramienta de linea de comando Xpwr

F3 Scripts para el uso del Xpower

En el punto F22 se mencionoacute la utilizacioacuten de la herramienta de liacutenea de comandos

xpwr y sus opciones de liacutenea de comando No obstante es uacutetil no solo invocar a la

herramienta Xpwr sino tambieacuten a las herramientas de xilinx para generar un modelo

simulable del disentildeo y al simulador (en este caso modelsim) para generar de forma

automaacutetica el (los) fichero(s) VCD Tambieacuten dependiendo del caso se puede llegar a

independizar totalmente del entorno ISE e invocar a las herramientas de

implementacioacuten de las FPGAs desde liacutenea de comandos

F31 Scriacuteptpata la implementacioacuten del disentildeo

La implementacioacuten de un disentildeo implica llamar al sintetizador (en este caso XST

[Xst03]) luego al ngdbuild [Ngd04] que traduce los ficheros EDIF y NGC en un

fichero NGD con el disentildeo Posteriormente el map [map04] traduce el NGD en

componentes especiacuteficos del dispositivo Mas tarde la herramienta par [Par04] realiza

el emplazado y rutado La herramienta trce [Trc04] realiza un anaacutelisis estaacutetico de

tiempos generando un fichero con extensioacuten twr y por uacuteltimo bitgen [Bit04] genera el

fichero bit para programar el dispositivo

El script de la figura F3 espera como paraacutemetros el nombre del disentildeo asiacute como el

dispositivo donde se ha de implementar Por ejemplo

implement my_design xc2vl500-fg676-6

321

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

Script

x s t

1implement (1 es

- i n t s t y l e i s e - i f r ngdbuild - i n t s t y l e ise map - i n t s t y l e i s e -p lncd lngd lpcf p a r

t r c e -w - i n t s t y l e i s e -- i n t s t y l e i s e -e

bi tgen - i n t s t y l e i s e -

nombre disentildeo

i projnav1 -dd l_ngo -2 -cm aacuterea

ol s td - t 1 1 3 - 1 3 -xml 1 f lut lncd

2 dispositivo)

x s t

i

-k

-ofn -p 2 4 - c

lsyr lngc 1 100 - t x

ncd lncd lpcf 1 ncd --o ltwr

ngd off -o

lpcpound

Figura F3 Script de implementacioacuten de un disentildeo

F32 Script pasa la simulacioacuten y generacioacuten del fichero VCD

Para realizar la simulacioacuten post place amp route primero se debe generar el fichero de

simulacioacuten con la herramienta netgen |Net04] (en antiguas versiones eran 3

herramientas separadas ngd2ver ngd2vbdly ngdannoacute) El modelo de simulacioacuten generado

puede ser VHDL o Verilog y adicionalmente esta herramienta genera un fichero SDF

(Standard Deay Formaiacute) necesario en la simulacioacuten place amp route Desde el punto de vista

teoacuterico da lo mismo simular el modelo VHDL o Verilog sin embargo se han

encontrado diferencias en los resultados en las uacuteltimas versiones del software El

ejemplo de la figura F4 genera el modelo de simulacioacuten Verilog

Script 2 gen_vcd (1 es el nombre disentildeo)

netgen - i n t s t y l e i s e - s 4 -pcf lpcf -ngm lngm -w -ofmt ve r i log -sim lncd l_timesimv cmd C vsim s c r ip t_s imdo xpwr lncd lpcf -v -a - s l_lvcd -o l_lpwr -wx l_lxml

xpwr lncd lpcf -v -a - s l_nvcd -o l_npwr -wx l_nxml

Figura F4 Script de simulacioacuten e invocacioacuten a xpwr

Tras esto se debe invocar al simulador con el comando vsim [Mod04] con un fichero

de comandos para el simulador (extensioacuten do) Un ejemplo de script para el simulador

se muestra en la Figura F5 El ejemplo carga primero xxvpackage en VHDL luego el

modelo del disentildeo postplaced route (en verilog la carga del fichero SDF es imphcita en

tanto que en VHDL se debe hacer expliacutecitamente) y por uacuteltimo se carga un fichero

322

Apeacutendice F Uso de la herramienta XPOWER

testbench en VHDL El comando vsim carga la simulacioacuten con precisioacuten de 1 ps El

archivo de testbench del ejemplo lee ficheros de textos que estimulan el circuito por ello

a continuacioacuten se hace una llamada a la liacutenea de comando [cmd) para copiar un fichero

de texto al directorio actual Luego se define el fichero VCD y se agregan las sentildeales

para luego simular hasta el final El ejemplo continua reiniciando la simulacioacuten y

ejecutando nuevamente el ciclo con otro grupo de valores

Una vez ejecutado el simulador y generado el (los) fichero(s) VCD se puede invocar el

xpwr con las opciones descritas en F23

Scriacutept3 scriacutept_simdo (escriacuteptpara modelsim)

vcom

vlog

vlog

vcom

vsim

exec

ved

ved lt

run

-93 -explicit mipack vhd

CXilinxverilogsrcglblv

design_timesimv

-93 -explicit mi_test vhd

i

-t Ips +maxdelays -L simprims_ver -lib work testbench glbl

cmd c copy Wtestl

file design_lvcd

add testbenchuut

-all

restart -f

exec

ved

ved

run

quit

cmd c copy test2

file design_2vcd

add testbenchuut

-all

-forceacute

txt test

txt test

txt

txt

Figura F5 Script para el simulador

F4 Cometarios y conclusiones

La herramienta de estimacioacuten de consumo Xpower brinda una interesante viacutea para la

estimacioacuten del consumo no obstante desde el punto de vista praacutectico en disentildeos

industriales plantea varios inconvenientes Para un disentildeo normal del orden de milloacuten

de puertas simulado por algunos milisegundos de tiempo real puede requerir tiempos

de simulacioacuten del orden de horas y ficheros VCDs de decenas de Gigabytes Antildeadido a

esto realizar un testbench de un circuito complejo lo suficientemente representativo de

323

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

la actividad media puede ser una tarea excesivamente complicada En esta liacutenea existen

trabajos para poder predecir la actividad de circuitos complejos [Tod04] y de este

modo evitarse el tiempo de disentildeo de testbenches significativos las horas de simulacioacuten

y los Gigabytes de datos intermedios

Otro aspecto a destacar de esta herramienta es que es una herramienta en constante

evolucioacuten y se puede observar que los datos informados por la herramienta sufren

importantes cambios de versioacuten a versioacuten En esta tesis se ha evaluado la herramienta

desde la versioacuten 41 del ISE [Xpo02] con modelsim 56 [ModOl] hasta la 62 [Xpo04]

con modelsim 58 [Mod04] pasando por todas las intermedias y midiendo datos

concretamente con la que acompantildea a la versioacuten 52 [Xpo03a] (modelsim 57

|Mod03]) observaacutendose importantes diferencias en los resultados

Maacutes aun en la uacuteltima versioacuten del software evaluada [Xpo04] se han encontrado

diferencias en los resultados generando modelos post place ltiquestr route en VHDL o

Verilog

A lo largo de esta tesis se presentaron algunos resultados comparativos con

mediciones realizadas con los arreglos experimentales de los apeacutendices B y C

utilizando los mismos valores de excitacioacuten con resultados bastante dispares Una

evaluacioacuten definitiva necesita de maacutes casos de estudio

324

Apeacutendice F Uso de la herramienta XPOWER

F5 Referencias del apeacutendice

[Bit04] Xilinx inc Development System Reference Guide veroacuteX Chapter 15 BitGen January 2004 available at wwwxilinxcom

[Ise03] Xilinx inc ISE Integrated Development Environment ver 61 Whats New in Xilinx ISE 61i 2003 available at wwwxilinxcom

[Map04] Xilinx inc Development System Reference Guide ver6X Chapter 8 MAP January 2004 available at wwwxilinxcom

[Mod02] Model Technologies ModelSimreg SE Users Manual Versioacuten 56e October 2002 available at wwwmodelcom

[Mod03a] Model Technologies ModelSimreg SE Users Manual Versioacuten 57d May 2003 available at wwwmodelcom

[Mod03b] Model Technologies ModelSim SE Users Manual Ver57d chapt 15 -Valueacute Change Dump (VCD) Files May 03 available at wwwmodelcom

[Mod04] Model Technologies ModelSimreg SE Users Manual Versioacuten 58c March 2004 available at wwwmodelcom

[Net04] Xilinx inc Development System Reference Guide veroacuteX Chapter 23 NetGen January 2004 available atwwwxilinxcom

[Ngd04] Xilinx inc Development System Reference Guide ver6X Chapter 6 NGDBuild January 2004 available atwwwxilinxcom

[Par04] Xilinx inc Development System Reference Guide ver6X Chapter 10 PAR January 2004 available at wwwxilinxcom

[Tod04] E Todorovich E Boemo F Cardells J Valls Power Analysis and Estimation Tool integrated with XPOWER Tivelfth ACM International Symposium on Field-Programmabk GateArrays (FPGA04) February 2004

[Tra04] Xilinx inc Development System Reference Guide veroacuteX Chapter 13 TRACE January 2004 available atwwwxilinxcom

[Xil03b] Xilinx Inc XST (Xilinx Synthesis Technologies) User Guide 40 distributed with ISE 6X available at wwwxilinxcom June 2003

[Xpo02] Xpower Xpower getting started Releacutease versioacuten 4203Iacute 2002 available at supportxiIinxcom

[Xpo03] Xpower Xpower getting started Releacutease versioacuten 5103i 2003 available at supportxilinxcom

[Xpo04] Xpower Xpower getting started Releacutease versioacuten 6203Iacute 2004 available at supportxilinxcom

325

Teacutecnicas para la Reduccioacuten de Consumo en FPGAs

326

  • RESUMEN
  • SUMMARY
  • AGRADECIMIENTOS
  • IacuteNDICE
  • LISTA DE FIGURAS
  • LISTA DE TABLAS
  • LISTA DE ACROacuteNIMOS
  • ANGLICISMOS BARBARISMOS NEOLOGISMOS Y OTROS DEFECTOS
  • CAP 1 INTRODUCCIOacuteN Y MOTIVACIOacuteN
    • 11 Reduccioacuten y estimacioacuten del consumo
    • 12 Marco tecnoloacutegico
    • 13 Seleccioacuten de teacutecnicas de reduccioacuten de consumo
    • 14 Objetivos de esta tesis
    • 15 Organizacioacuten y lectura de esta tesis
    • 16 Referencias del capiacutetulo
      • CAP 2 CONSUMO EN CIRCUITOS CMOS Y SU EFECTO EN FPGAS
        • 21 Consumo en circuitos CMOS
        • 22 Espacio de disentildeo para bajo consumo
        • 23 Temas destacados en el disentildeo para bajo consumo
        • 24 Nivel de proceso y tecnologiacutea
        • 25 Nivel de implementacioacuten
        • 26 nivel de arquitectura y sistema
        • 27 Nivel algoriacutetmico
        • 28 Nivel sistema
        • 29 Otros conceptos en el tratamiento del consumo
        • 210 Desglose del consumo en FPGAs
        • 211 Resumen del capiacutetulo
        • 212 Referencias del capiacutetulo
          • CAP 3 EXPERIMENTOS SOBRE BAJO CONSUMO
            • 31 Experimentos generales
            • 32 Relacioacuten entre velocidad y consumo en FPGAs
            • 33 Conmutacioacuten de los datos de entrada
            • 34 Efecto de la segmentacioacuten en el consumo
            • 35 Observaciones en la disminucioacuten del consumo registrando las entradas y salidas
            • 36 Reduccioacuten del consumo por deshabilitacioacuten de partes inactivas del circuito
            • 37 Conclusiones y recomendaciones a nivel disentildeador
            • 38 Referencias del capiacutetulo
              • CAP 4 REDUCCIOacuteN DE CONSUMO EN MAacuteQUINAS DE ESTADO
                • 41 Estrategias para reduccioacuten de consumo en maacutequinas de estados
                • 42 Experimentos sobre codificacioacuten de maacutequinas de estados en FPGAs
                • 43 Particioacuten de maacutequinas de estado en FPGAs
                • 44 Recomendaciones para la reduccioacuten de consumo en maacutequinas de estado
                • 45 Referencias del capiacutetulo
                  • CAP 5 EXPERIMENTOS SOBRE BLOQUES ARITMEacuteTICOS
                    • 51 Introduccioacuten
                    • 52 Multiplicacioacuten modular
                    • 53 Sumadores de alta velocidad
                    • 54 Algoritmos y arquitecturas para l divisioacuten entera
                    • 55 Algoritmos y arquitecturas para la divisioacuten de nuacutemeros fraccionarios
                    • 56 Conclusiones del capiacutetulo
                    • 57 Referencias del capiacutetulo
                      • CAP 6 CONCLUSIONES Y FUTUROS TRABAJOS
                        • 61 Conclusiones y aportaciones
                        • 62 Trabajos futuros
                        • 63 Publicaciones relacionadas con este trabajo
                        • 64 Reglas empiacutericas para el disentildeo de bajo consumo en FPGAs
                          • APEacuteNDICE A PLACA DE PRUEBA FAMILIA XC4K
                          • APEacuteNDICE B PLACA DE PRUEBA AFX (Virtex)
                          • APEacuteNDICE C PLACA DE PRUEBA PARA VIRTEX II
                          • APEacuteNDICE D TRADUCTOR KISS2VHDL
                          • APEacuteNDICE E PARTICIONADOR DE MAacuteQUINAS DE ESTADO PART_FSM
                          • APEacuteNDICE F UTILIZACIOacuteN DE LA HERRAMIENTA DE ESTIMACIOacuteN DE CONSUMO XPOWER
Page 4: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 5: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 6: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 7: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 8: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 9: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 10: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 11: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 12: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 13: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 14: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 15: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 16: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 17: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 18: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 19: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 20: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 21: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 22: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 23: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 24: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 25: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 26: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 27: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 28: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 29: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 30: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 31: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 32: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 33: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 34: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 35: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 36: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 37: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 38: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 39: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 40: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 41: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 42: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 43: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 44: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 45: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 46: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 47: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 48: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 49: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 50: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 51: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 52: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 53: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 54: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 55: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 56: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 57: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 58: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 59: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 60: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 61: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 62: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 63: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 64: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 65: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 66: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 67: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 68: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 69: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 70: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 71: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 72: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 73: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 74: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 75: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 76: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 77: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 78: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 79: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 80: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 81: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 82: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 83: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 84: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 85: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 86: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 87: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 88: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 89: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 90: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 91: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 92: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 93: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 94: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 95: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 96: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 97: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 98: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 99: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 100: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 101: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 102: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 103: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 104: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 105: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 106: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 107: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 108: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 109: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 110: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 111: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 112: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 113: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 114: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 115: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 116: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 117: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 118: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 119: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 120: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 121: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 122: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 123: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 124: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 125: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 126: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 127: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 128: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 129: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 130: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 131: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 132: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 133: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 134: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 135: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 136: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 137: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 138: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 139: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 140: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 141: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 142: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 143: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 144: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 145: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 146: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 147: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 148: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 149: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 150: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 151: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 152: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 153: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 154: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 155: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 156: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 157: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 158: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 159: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 160: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 161: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 162: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 163: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 164: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 165: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 166: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 167: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 168: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 169: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 170: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 171: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 172: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 173: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 174: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 175: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 176: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 177: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 178: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 179: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 180: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 181: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 182: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 183: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 184: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 185: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 186: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 187: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 188: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 189: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 190: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 191: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 192: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 193: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 194: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 195: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 196: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 197: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 198: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 199: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 200: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 201: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 202: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 203: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 204: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 205: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 206: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 207: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 208: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 209: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 210: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 211: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 212: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 213: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 214: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 215: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 216: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 217: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 218: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 219: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 220: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 221: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 222: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 223: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 224: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 225: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 226: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 227: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 228: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 229: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 230: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 231: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 232: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 233: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 234: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 235: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 236: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 237: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 238: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 239: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 240: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 241: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 242: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 243: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 244: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 245: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 246: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 247: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 248: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 249: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 250: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 251: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 252: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 253: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 254: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 255: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 256: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 257: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 258: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 259: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 260: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 261: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 262: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 263: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 264: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 265: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 266: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 267: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 268: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 269: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 270: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 271: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 272: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 273: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 274: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 275: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 276: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 277: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 278: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 279: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 280: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 281: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 282: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 283: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 284: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 285: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 286: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 287: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 288: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 289: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 290: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 291: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 292: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 293: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 294: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 295: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 296: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 297: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 298: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 299: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 300: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 301: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 302: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 303: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 304: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 305: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 306: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 307: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 308: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 309: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 310: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 311: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 312: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 313: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 314: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 315: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 316: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 317: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 318: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 319: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 320: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 321: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 322: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 323: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 324: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 325: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 326: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 327: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 328: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 329: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 330: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 331: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 332: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 333: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 334: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 335: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 336: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 337: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 338: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 339: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 340: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 341: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 342: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 343: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 344: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 345: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 346: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 347: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 348: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 349: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 350: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 351: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 352: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 353: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 354: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 355: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 356: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 357: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 358: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 359: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 360: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 361: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 362: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 363: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 364: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral
Page 365: Aportes a la Reducción de Consumo en FPGAs Tesis Doctoral