Segmentación de cauce y procesadores segmentados
Transcripción
Segmentación de cauce y procesadores segmentados
XV Presentación.................................................................................... Prólogo Capítulo 1. XIX Introducción: 1.1. 1.2. de prestaciones. ............................... 1 3 1.1.1. 1.1.2. 3 8 Niveles de descripción de un computador .................................. Definición de Arquitectura del Computador. ................................ Evolución y prestaciones de las arquitecturas en las arquitecturas Clasificaciones de un computador ............................... 25 31 ..................................... 34 36 37 Conjuntos de programas de prueba ........................................ Mejoradeprestaciones ................................................... El coste de un computador ................................................ Ejerciciosyproblemas Bibliografía paralelas. 14 16 21 25 ............................................... de las arquitecturas Evaluación de prestaciones 1.4.1. 1.4.2. 1.4.3. 11 ...................................... Un modelo sencillo de prestaciones: tiempo de CPU de un programa. .......... Consecuencias de la--evolución prevista en la tecnología. ..................... Consecuencias de la evolución de las aplicaciones y los mercados. ............. El paralelismo 1.3.1. 1.4. e incremento Elconceptodearquitectura...................................................... 1.2.1. 1.2.2. 1.2.3. 1.3. paralelismo 40 ................................................................ 41 ....................................................................... PARTE I PROCESADO RES PARALELOS Capítulo 2. Segmentación de cauce y procesadores segmentados 47 ................................... 2.1. Introducción: definición y notas históricas ......................................... 2.2. Principios de la segmentación y mejora de prestaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Diseño de un procesador segmentado. gestión de riesgos de datos, control y estructurales. 2.3.1. Soluciones para las dependencias de datos de tipo RAW ...................... 2.3.2. Implementación de las instrucciones de salto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.3. Implementación de las instrucciones de acceso a memoria. . . . . . . . . . . . . . . . . . . . . 2.4. El espacio de diseño de los procesadores segmentados .............................. 2.5. Optimización de cauces funcionales .............................................. 2.5.1. Ejemplos de unidades funcionales segmentadas ~.... 2.5.2. Diseño de una unidad de control para un cauce segmentado .................. 2.6. Interrupcionesenunprocesadorsegmentado ...................................... 2.7. La familia deprocesadoresARM ................................................. 49 50 53 Ejerciciosyproblemas 98 Bibliografía ............................................................... ....................................................................... 56 59 64 67 74 75 80 87 92 99 @ ITES-Paraninfo VIII I Contenido Capítulo 3. Procesadores superescalares (1):microarquitecturas y principios de funcionamiento. 3.1. Introducción: definición y notas históricas ......................................... 3.2. Paralelismo entre instrucciones (ILP) y paralelismo de la máquina. . . . . . . . . . . . . . . . . . . . 3.3. Procesamientosuperescalardeinstrucciones ... 103 107 108 3.3.1. Decodificación paralela y predecodificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2. Emisióndeinstrucciones ................................................. 3.3.3. Renombramientoderegistros ............................................. 3.3.4. Mantenimiento de la consistencia. Buffer de reordenamiento .................. 3.4. Procesamiento de las instrucciones de salto ........................................ 113 116 129 138 3.4.1. Alternativas para la gestión de los saltos condicionales. . . . . . . . . . . . . . . . . . . . . . . 3.4.1.1. Alternativas para la predicción de saltos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1.2. Ramificaciónmulticamino :............. 149 3.4.2. Instruccionesdeejecucióncondicional...................................... 163 Ejerciciosyproblemas 171 ....................................................................... Procesadores superescalares (11):implementaciones 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 174 .................................... 177 Introducción .................................................................. LasmicroarquitecturasP6yP7deIntel ........................................... LosprocesadoresPowerPC...................................................... ProcesadoresMIPSR1xOOO ...................................................... ProcesadoresUltraSPARC ....................................................... ProcesadoresAlpha ............................................................ Conclusiones .................................................................. Ejerciciosyproblemas Bibliografía Capítulo 179 182 202 206 210 216 221 ............................................................... 224 ....................................................................... 225 5. ProcesadoresVLIW ................................................................. 229 5.1. Introducción: motivación, definiciones y notas históricas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Aprovechamientodel paralelismoen las arquitecturasVLIW """""""""""" 5.2.1. Desenrollado de bucles ................................................... 5.2.2. Segmentación software ................................................... 5.2.3. Planificación de trazas 5.3. Recursosdeapoyoalcompilador ................ ................................................ 231 236 237 240 242 249 5.3.1. Operaciones con predicado ............................................... 5.3.2. Recursos para preservar el comportamiento frente a las excepciones. . . . . . . . . . . . 5.3.3. Recursos para la especulación en los accesos a memoria. . . . . . . . . . . . . . . . . . . . . . 250 254 256 5.4. Ejemplos de procesadores VLIW y perspectivas futuras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.1. ElprocesadorItanium2 .................................................. 5.4.2. Los procesadores de Transmeta ............................................ 5.4.3. Perspectivas de losprocesadores ILP ....................................... 257 Ejerciciosyproblemas 273 Bibliografía @ 150 163 164 ............................................................... ITES-Paraninfo ....................................................................... """'" Capítu 146 3.5. Interrupcionesenunprocesadorsuperescalar...................................... Bibliografía Capítulo 4. . . . . . . 101 258 264 269 275 Capítl ~ Contenido 101 Capítulo 6. 103 107 108 Procesadoresvectoriales I IXI ............................................................. 277 Introducción: motivación, definiciones y notas históricas. . . . . . . . . . . . . . . . . . . . . . . . . . . . Arquitecturavectorialyprestaciones ............................................. El sistema de memoria en los procesadores vectoriales .............................. Medidas de rendimiento en los procesadores vectoriales ............................ Eficienciadelprocesamientovectorial ............................................ 6.6. Ejemplode procesadorvectorial:EarthSimulator................................... 279 283 289 295 301 308 Ejerciciosyproblemas 311 6.1. 6.2. 6.3. 6.4. 6.5. 113 116 129 138 146 Bibliografía ............................................................... ....................................................................... 312 149 PARTE 11 150 163 163 164 171 174 177 179 182 202 206 no ~16 COMPUTADORES Capítulo 7. PARALELOS ............ 315 .................................. 317 Niveles y tipos de paralelismo implementados en la arquitectura. . . . . . . . . . . . . . Niveles y tipos de paralelismo implícito en una aplicación. . . . . . . . . . . . . . . . . . . . Unidades de ejecución: instrucciones, hebras y procesos. . . . . . . . . . . . . . . . . . . . . . Relación entre paralelismo implícito, explícito y arquitecturas paralelas. . . . . . . . . Detección, utilización, implementación y extracción del paralelismo. . . . . . . . . . . . 317 317 319 320 321 Introducción: computadores paralelos, programación paralela y prestaciones. 7.1. Arquitecturas paralelas y niveles de paralelismo. 7.1.1. 7.1.2. 7.1.3. 7.1.4. 7.1.5. 7.2. Motivación al estudio de computadores paralelos. ................................. 322 7.2.1. Aplicaciones que requieren computadores paralelos. . . . . . . . . . . . . . . . . . . . . . . . . . 322 7.2.2. Accesibilidad al hardware y al software para computadores paralelos. . . . . . . . . . 325 7.2.3. Estudio de diferentes facetas de la arquitectura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 ~24 7.3. Espacio de diseño. Clasificación y estructura general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 333 7.3.1. Clasificación ............................................................ 344 7.3.2. Convergencia ........................................................... ~25 7.4. Programación paralela ~21 :29 .31 136 ~7 40 42 409 50 54 56 ,7 ;8 ;4 ;9 '3 '5 345 ....................................................... 7.4.1. Punto de partida ................. 7.4.2. Modosdeprogramación ;........................ 7.4.3. Herramientas para obtener programas paralelos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliotecas de funciones para programación paralela. . . . . . . . . . . . . . . . . . . . . . . . . Lenguajes paralelos y directivas del compilador ............................. Compiladoresparalelos .................................................. 7.4.4. Alternativas de comunicación ............................................. 7.4.5. Estilosdeprogramación .................................................. 346 347 349 350 350 351 352 356 356 357 358 Paso de mensajes ....................................................... Variables compartidas .................................................... Paralelismo de datos ..................................................... 7.4.6. Alternativas para crear y terminar procesos o hebras. . . . . . . . . . . . . . . . . . . . . . 7.4.7. Estructurasdeprogramasparalelos ........................................ . 359 362 Dueño-esclavo (master-slave),o granja de tareas (task-farming) . . . . . . . . . . . . . . . . . . 362 Paralelismo de datos o descomposición de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 Divideyvencerás(divideandconquer) . 364 365 Segmentada(Pipeline),oflujodedatos ..................................... 7.4.8. Procesodeparalelización ................................................. 366 @ ITES-Paraninfo ;. H I Contenido Descomposiciónentareas Asignar tareas a procesos o hebras Escribirelcódigoparalelo Evaluacióndeprestaciones 7.4.9. Ejemplo: paralelizar 367 368 ,370 370 el cálculo del número n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Descomposiciónentareas Asignar tareas a procesos o hebras Escribirelcódigoparalelo:versiónMPI VersióndecódigoOpenMP 7.5. Capítulo 8. 371 371 372 373 374 Prestacionesencomputadoresparalelos 376 7.5.1. 7.5.2. Benchmarkencomputadoresparalelos Ganancia en prestaciones. Escalabilidad 378 382 Gananciaenvelocidad 382 LeydeAmdahl Gananciaescalable.LeydeGustafson Eficiencia Funcióndeisoeficiencia 385 386 387 388 Ejerciciosyproblemas 389 Bibliografía 391 Sistemas de comunicación en computadores paralelos. ................................. 8.1. Clasificación de sistemas de comunicación para computadores. 8.2. Notahistórica ................................................................. ...................... 393 395 396 397 398 398 . . . . . . . . . . 398 8.3. Estructura general del sistema de comunicación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 8.4. Estructura y funcionamiento de la interfaz de red. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 407 8.4.1. Tareasdelainterfazdered................................................ 8.2.1. 8.2.2. 8.2.3. 8.2.4. RedesWAN ............................................................. RedesLAN ............................................................. RedesSAN ............................................................. Redes diseñadas o implementadas a medida para sistemas paralelos. : 8.4.1.1. Almacenamiento (buffer) de salida y de entrada de paquetes. . . . . . . . . . 8.4.1.2. Formateodelpaquete ............................................ 8.4.1.3. Copia y almacenamiento de datos ................................. GestióndedispositivosdeE/S .................................... Optimización del manejador del hardware de una interfaz . . . . . . . . . . . . Alternativas para implementar manejadores de red. . . . . . . . . . . . . . . . . . 8.4.1.4. Protección en multiprogramación. Traducción de direcciones virtuales afísicas ........................................................ 8.4.1.5. Control de flujo ................................................. 8.4.1.6. Dirección física, encaminamiento y reconfiguración .................. 8.4.2. Ubicación de la interfaz respecto al procesador .............................. Enelprocesador......................................................... Conexiónalacaché ...................................................... Conexiónalbusdelsistemaosimilar....................................... Conexión al bus de E/S ............... 408 408 410 410 413 414 417 418 419 419 419 420 420 420 8.5. Estructura y funcionamiento de la red de interconexión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 @ ITES-Paraninfo Ca~ .... Contenido I XI I 8.5.1. Conmutador ............................................................ 8.5.2. Enlacesycanales ........................................................ 8.6. Prestaciones generales del sistema de comunicación. 8.6.1. 8.6.2. Funcionalidad Ejerciciosyproblemas Bibliografía ............................... Prestacionesextremo-a-extremo ........................................... Prestaciones globales ..................................................... 8.6.3. Medidasdeprestacionesadicionales 8.6.4. 421 424 """"""""""""""""""'" del sistema de comurÜcación. Servicios de comunicación colectivos. 426 427 431 434 436 438 ............................................................... 438 ....................................................................... Capítulo9. Redes de interconexión para computadores paralelos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 9.1. Espacio de diseño en redes de interconexión. Niveles de servicios. . . . . . . . . . . . . . . . . . . . 9.2. Topología y clasificación de redes ................................................ 9.2.1. Redesestáticas .......................................................... 9.2.1.1. Tipos de redes estrictamente ortogonales ........................... 9.2.1.2. Distancia mínima entre conmutadores de la red. . . . . . . . . . . . . . . . . . . . . Distancia mínima en mallas :................................. Distancia mínima en toros unidireccionales ......................... Distancia mínima en toros bidireccionales . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.1.3. Encaminamiento ................................................ 9.3. 443 447 450 452 453 453 454 454 456 9.2.2. Redesdinámicas......................................................... 9.2.3. Redesbloqueantes ....................................................... Redomega.............................................................. Redmariposa '............................................. Redcubomultietapa ..................................................... Red línea base ........................................................... Redbaraje .............................................................. 456 459 459 460 460 461 461 9.2.4. 9.2.5. Semejanza entre redes .................................................... Prestaciones............................................................. 463 465 9.2.5.1. Prestaciones para topologías estáticas ortogonales ................... 9.2.5.2. Prestaciones para topologías dinámicas bloqueantes ................. Técnicasdeconmutación........................................................ 466 467 9.3.1. 9.3.2. 9.3.3. 9.3.4. 9.3.5. 471 472 474 475 477 468 Almacenamientoyreenvío................................................ Conmutación vermiforme (wormhole)....................................... Conmutación virtual cut-through ........................................... Conmutación de circuitos ................................................. Canalesvirtuales ........................................................ 9.4. Control de flujo ................................................................ 479 9.4.1. Control de flujo físico .................................................... 9.4.2. Control de flujo de conmutación ........................................... 9.4.3. Control de flujo extremo-a-extremo ........................................ 9.5. Encaminamiento ............................................................... 481 482 484 485 9.5.1. Espaciodediseño........................................................ Funcionalidad '................ Selección del camino concreto de entre los que ofrece la topología. ............. 486 486 486 @ ITES-Paraninfo XII I Contenido Decisión de encaminamiento .............................................. Implementación ......................................................... Canales de salida candidatos y número de caminos alternativos. . . . . . . . . . . . . . . 9.5.2. Encaminamiento en un anillo unidireccional ................................ 9.5.3. Tratamiento de interbloqueos ............................................. 9.5.4. Encaminamiento ordenado por dimensión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.5.5. Encaminamiento de cambio de dirección (turn-model) . . . . . . . . . . . . . . . . . . . . . . . . . 9.5.6. Algoritmos de encaminamiento en redes mariposa unidireccionales y similares. . 9.5.7. Algoritmosdeencaminamientoup-down .................................... 9.5.8. Encaminamiento up-down en redes tipo mariposa bidireccionales ............. 9.5.9. Encaminamiento up-down en redes irregulares. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.5.10. Algoritmos adaptativos con canales de escape. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejerciciosyproblemas Bibliografía 10.1. Mantenimiento 519 521 .................................................................. de coherencia en el sistema de memoria. 491 492 497 501 505 508 510 511 513 516 ............................................................... ....................................................................... Capítulo 10. Multiprocesadores 487 489 489 . . . . . . . . . . . .. . . . . . . . . . . . . . . . 523 10.1.1. Problema de coherencia y espacio de diseño. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 530 10.1.2. Protocolos de coherencia basados en espionaje (snoopy) ....................... 10.1.2.1. Protocolo de invalidación de tres estados (MSI) . . . . . . . . . . . . . . . . . . . . . . 530 530 Posibles estados de un bloque ..................................... Transferencias que puede generar un nodo con caché . . . . . . . . . . . . . . . . . 531 531 Transiciones de estado de un bloque ............................... 534 10.1.2.2. Protocolo de invalidación de cuatro estados (MESI) .................. Apén 534 Posibles estados de un bloque ..................................... Transferencias que puede generar un nodo con caché . . . . . . . . . . . . . . . . . 534 535 Transiciones de estado de un bloque ............................... 10.1.3. Protocolos de coherencia basados en directorios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 10.1.3.1. Ejemplo de protocolo de coherencia basado en directorio. ............ 538 Estados de un bloque en cachés y en el directorio. . . . . . . . . . . . . . . . . . . . Transferencias generadas por el protocolo de coherencia. . . . . . . . . . . . . . Secuencia de paquetes generados por el protocolo de coherencia y transiciones entre estados ....................................... 539 539 541 . . . . . . . . . . . . . . . . . . . . . . . . 547 Directoriodevectordebitscompleto . 547 Directorio de vector de bits asignados a grupos. . . . . . . . . . . . . . . . . . . . . . 548 548 Directoriolimitado .............................................. 549 Directorioencadenado ........................................... 10.1.3.2. Alternativas de organización del directorio. 10.2. Consistencia de memoria ,........................... 10.2.1. Consistenciasecuencial................................................... 550 554 555 10.2.1.1. Consideracionessobreelhardware ................................ 559 10.2.1.2. Consideraciones sobre el software ................................. 10.2.1.3. Reducción de la penalización por acceso a memoria. . . . . . . . . . . . . . . . . . 559 561 10.2.2. Modelosrelajadosdeconsistencia.......................................... Modelos en los que las lecturas adelantan escrituras. . . . . . . . . . . . . . . . . . . . . . . . . . 562 @ ITES-Paraninfo Índic ... Contenido I KIII I Modelos en los que las lecturas adelantan escrituras y las escrituras adelantan escrituras ............................................................... 563 Modelos que permiten cualquier reordenación entre escrituras y lecturas. . . . . . . 563 10.3. Sincronización ................................................................. 567 10.3.1. Soportehardware........................................................ 10.3.2. Cerrojos ................................................................ 569 573 Cerrojos simples ......................................................... Cerrojos con etiqueta ..................................................... Cerrojos basados encolas ................................................. Prestaciones de diferentes implementaciones de cerrojos. 10.3.3. Barreras ................................................................ 575 579 580 581 ..................... Barreras centralizadas .................................................... Barreras en árbol ........................................................ Prestaciones............................................................. Ejerciciosyproblemas Bibliografía ApéndiceA. Índiceanalítico ............................................................... ....................................................................... 582 582 584 586 587 589 El sistema de memoria .............................................................. 591 Al. A2. A3. AA. Accesoalsistemadememoria ................................................... Los circuitos de memoria ....................................................... Interconexión entre procesador y memoria ........................................ Optimizacióndelusodelacaché................................................. AA.1. Reduccióndelosfallosdecaché ........................................... AA.2. Reduccióndelapenalizaciónporfallo...................................... AA.3. Reducción del tiempo de acceso acaché .................................... Ejercicios y problemas ............................................................... 592 594 604 610 Bibliografía 624 ....................................................................... ................................................................................. 612 619 619 623 627 I .J @ ITES-Paraninfo