Este libro de texto se centra en el diseño y evaluación de arqui- Otros libros de interés s Diseño y evaluación de a tecturas de computadoras que incorporen las técnicas de au- Organización y arquitectura or mento de prestaciones actuales en el diseño del procesador o de computadoras, 7.ª ed d procesadores, la jerarquía de memoria y el sistema de E/S. William Stallings a arquitecturas de computadoras t PEArSOn PrEntiCE HAll u p Se trata de un manual que no ha sido concebido como iSBn 978-84-896-6082-3 m libro de consulta o de referencia, sino como una herramien- o c ta muy potente para el estudio autónomo y/o dirigido de los e alumnos de las titulaciones relacionadas con la informática, las d tecnologías de la información y las comunicaciones. s a r u Adaptado a los nuevos planes de estudios universitarios, es t c accesible, ameno y está escrito con un enfoque completamen- e te pedagógico (basado en la utilización de figuras ilustrativas, t i u ejemplos resueltos, casos prácticos, pruebas de autoevaluación, Organización de computadoras: q resúmenes de conceptos importantes) que surge de la experien- r un enfoque estructurado, 4.ª ed a cia de años impartiendo materias en el área de Arquitectura de Andrew S. tanenbaum e Computadores de los dos autores del libro. Además, este libro PEArSOn PrEntiCE HAll d lleva asociado un sitio web con recursos adicionales para estu- iSBn 978-97-017-0399-1 n ó diantes y profesores. i c a u Desde esta perspectiva didáctica, el libro se estructura en l a seis capítulos cuyo objetivo es el aprendizaje basado en compe- v e tencias. Estos capítulos se centran en el estudio del diseño del y procesador, la jerarquía de memoria y el sistema de E/S, el au- o mento de prestaciones del procesador, la mejora de la jerarquía ñ de memoria y del sistema de E/S, el diseño de sistemas multi- e s procesador y multicomputador y la evaluación del rendimiento i D de las arquitecturas. Beltrán Guzmán Prentice Hall es un sello editorial de Marta Beltrán Pardo Antonio Guzmán Sacristán www.pearsoneducacion.com arquitectura de componentes_cover 15mm.indd 1 24/5/10 10:37:12 Diseño y evaluación de arquitecturas de computadoras Marta Beltrán Pardo Profesora Titular de Universidad Área de Arquitectura y Tecnología de Computadores Universidad Rey Juan Carlos de Madrid Antonio Guzmán Sacristán Profesor Contratado Doctor Área de Arquitectura y Tecnología de Computadores Universidad Rey Juan Carlos de Madrid 00a-PRINCIPIOS.indd 3 10/5/10 12:14:40 Datos de catalogación bibliográfica Marta Beltrán Pardo, Antonio Guzmán Sacristán Diseño y evaluación de arquitecturas de computadoras PEARSON EDUCACIÓN, S.A., Madrid, 2010 ISBN: 978-84-8322-650-6 Materia: 004, Computadores Formato: 195 × 250 mm Páginas: 344 Todos los derechos reservados. Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra sólo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. La infracción de los derechos mencionados puede ser constitutiva de delito contra la propiedad intelectual (arts. 270 y sgts. Código penal). Diríjase a cedro (Centro Español de Derechos Reprográficos: www.cedro.org), si necesita fotocopiar o escanear algún fragmento de esta obra. DERECHOS RESERVADOS © 2010, PEARSON EDUCACIÓN, S.A. C/ Ribera del Loira, 28 28042 Madrid (España) www.pearsoneducacion.com PRENTICE HALL es un sello editorial autorizado de PEARSON EDUCACIÓN ISBN: 978-84-8322-650-6 Depósito Legal: M- Equipo editorial: Editor: Miguel Martín-Romo Técnico editorial: Esther Martín Equipo de producción: Director: José Antonio Clares Técnico: Isabel Muñoz Diseño de cubierta: Equipo de Diseño de PEARSON EDUCACIÓN, S. A. Composición: JOSUR TRATAMIENTO DE TEXTOS, S.L. Impreso por: Nota sobre enlaces a páginas web ajenas: Este libro puede incluir enlaces a sitios web gestionados por terceros y ajenos a PEARSON EDUCACIÓN S.A. que se incluyen sólo con finalidad informativa. PEARSON EDUCACIÓN S.A. no asume ningún tipo de responsabilidad por los daños y perjuicios deri- vados del uso de los datos personales que pueda hacer un tercero encargado del mantenimiento de las pá- ginas web ajenas a PEARSON EDUCACIÓN S.A. y del funcionamiento, accesibilidad o mantenimiento de los sitios web no gestionados por PEARSON EDUCACIÓN S.A. Las referencias se proporcionan en el estado en que se encuentran en el momento de publicación sin garantías, expresas o implícitas, sobre la información que se proporcione en ellas. IMPRESO EN ESPAÑA - PRINTED IN SPAIN Este libro ha sido impreso con papel y tintas ecológicos. 00a-PRINCIPIOS.indd 4 10/5/10 12:14:40 Índice Contenido Introducción 1. Definición de arquitectura de computadoras ........................................................................ XI 2. Objetivos de este libro ........................................................................................................... XII 3. Cómo usar este libro ............................................................................................................. XIV 4. Agradecimientos ................................................................................................................... XV Capítulo 1: Conceptos básicos de procesadores 1.1. Diseño de un repertorio de instrucciones .............................................................................. 2 1.1.1. Decisiones acerca del tipo de almacenamiento de operandos .................................... 3 1.1.2. Decisiones acerca de la interpretación de las direcciones de memoria y de los modos de direccionamiento soportados ................................................................................ 7 1.1.3. Otras decisiones ........................................................................................................ 11 1.1.4. Codificación del repertorio de instrucciones .............................................................. 12 1.1.5. Mejoras y optimizaciones del repertorio de instrucciones ......................................... 14 1.2. Mecanismo completo de ejecución de una instrucción .......................................................... 15 1.3. Evaluación de prestaciones de un procesador ....................................................................... 18 1.4. Diseño de procesadores secuenciales ..................................................................................... 19 1.4.1. Procesador monociclo ............................................................................................... 20 1.4.2. Procesador multiciclo ................................................................................................ 25 1.4.3. Tratamiento de excepciones en procesadores secuenciales ......................................... 33 1.5. Diseño de procesadores segmentados.................................................................................... 35 1.5.1. Conceptos básicos de segmentación .......................................................................... 36 1.5.2. Resolución de riesgos en procesadores segmentados ................................................. 40 1.5.3. Procesadores segmentados multifuncionales ............................................................. 58 1.5.4. Tratamiento de excepciones ....................................................................................... 63 REsuMEn DE DECIsIOnEs DE DIsEñO DEl REPERTORIO DE InsTRuCCIOnEs ..... 66 REsuMEn DE DECIsIOnEs DE DIsEñO DEl PROCEsADOR ........................................... 67 Procesadores secuenciales ..................................................................................................... 67 Procesadores segmentados .................................................................................................... 67 BIBlIOGRAFÍA Y lECTuRAs RECOMEnDADAs ............................................................... 68 PROBlEMAs ................................................................................................................................ 69 AuTOEVAluACIÓn .................................................................................................................... 73 Capítulo 2: Conceptos básicos de memoria y E/S 2.1. Diseño de una jerarquía de memoria básica .......................................................................... 76 2.2. Mecanismo completo de acceso a memoria .......................................................................... 79 00b-INDICE.indd 5 10/5/10 12:19:07 contenido 2.3. Evaluación de prestaciones de la jerarquía de memoria ........................................................ 81 2.4. niveles de la jerarquía de memoria ....................................................................................... 82 2.4.1. Diseño de la memoria caché ...................................................................................... 82 2.4.2. Diseño de la memoria principal ................................................................................ 100 2.4.3. Diseño de la memoria virtual .................................................................................... 104 2.5. Diseño de un sistema de E/s básico ...................................................................................... 108 2.6. Mecanismo completo de una operación de E/s ..................................................................... 110 2.7. Evaluación de prestaciones del sistema de E/s ...................................................................... 111 2.8. Buses de E/s .......................................................................................................................... 112 2.8.1. Diseño de buses de E/s .............................................................................................. 113 2.8.2. Diseño de jerarquías de buses .................................................................................... 117 2.9. Gestión del sistema de E/s .................................................................................................... 120 2.9.1. E/s programada con espera de respuesta ................................................................... 120 2.9.2. E/s con interrupciones .............................................................................................. 120 2.9.3. E/s con acceso directo a memoria ............................................................................. 126 REsuMEn DE DECIsIOnEs DE DIsEñO DE lA jERARquÍA DE MEMORIA ................ 130 Memoria caché ..................................................................................................................... 130 Memoria principal ................................................................................................................ 130 Memoria virtual .................................................................................................................... 131 Buses de E/s .......................................................................................................................... 131 Gestión E/s ........................................................................................................................... 132 BIBlIOGRAFÍA Y lECTuRAs RECOMEnDADAs ............................................................... 132 PROBlEMAs ................................................................................................................................ 133 AuTOEVAluACIÓn .................................................................................................................... 136 Capítulo 3: Técnicas de aumento de prestaciones para procesadores 3.1. Planificación dinámica de instrucciones ................................................................................ 138 3.1.1. Planificación de instrucciones de acceso a memoria .................................................. 139 3.1.2. Planificación dinámica de instrucciones centralizada ................................................ 141 3.1.3. Planificación dinámica de instrucciones distribuida .................................................. 145 3.2. Predicción dinámica de saltos ............................................................................................... 150 3.2.1. Estructuras hardware para la predicción de salto ...................................................... 151 3.2.2. Predictores de salto ................................................................................................... 161 3.3. Emisión múltiple de instrucciones ......................................................................................... 167 3.3.1. VlIW ........................................................................................................................ 167 3.3.2. superescalar estática ................................................................................................. 169 3.3.3. superescalar dinámica ............................................................................................... 172 3.4. Especulación ......................................................................................................................... 173 3.5. Multithreading ...................................................................................................................... 181 REsuMEn DE DECIsIOnEs DE DIsEñO DE TéCnICAs DE AuMEnTO DE PREsTA- CIOnEs PARA PROCEsADOREs .............................................................................................. 184 Planificación dinámica de instrucciones ................................................................................ 184 Predicción dinámica de saltos ............................................................................................... 184 00b-INDICE.indd 6 10/5/10 12:19:07 contenido Emisión múltiple de instrucciones y especulación ................................................................. 185 Paralelismo a nivel de thread ................................................................................................ 185 BIBlIOGRAFÍA Y lECTuRAs RECOMEnDADAs ............................................................... 185 PROBlEMAs ................................................................................................................................ 186 AuTOEVAluACIÓn .................................................................................................................... 190 Capítulo 4: Técnicas de aumento de prestaciones para memoria y E/S 4.1. Técnicas de optimización para la memoria caché .................................................................. 192 4.1.1. Reducción de la penalización por fallo ...................................................................... 192 4.1.2. Reducción de la tasa de fallos ................................................................................... 196 4.1.3. Reducción del tiempo de acceso ................................................................................ 200 4.2. Técnicas de optimización para la memoria principal ............................................................. 206 4.2.1. Incremento del ancho de banda ................................................................................ 207 4.3. Técnicas de optimización conjunta para todos los niveles de la jerarquía: visión global de la jerarquía de memoria ............................................................................................................ 211 4.3.1. soporte a las técnicas de optimización del procesador .............................................. 211 4.3.2. Almacenamiento local vs memoria caché .................................................................. 212 4.4. Técnicas de optimización para los buses de E/s .................................................................... 212 4.4.1. Ancho de datos y frecuencia de operación ................................................................ 212 4.4.2. número de transferencias por ciclo ........................................................................... 214 4.4.3. utilización de protocolos de comunicaciones de alto rendimiento ............................ 215 4.5. Técnicas de optimización para los dispositivos de E/s........................................................... 217 4.5.1. Optimización para los dispositivos de almacenamiento: RAID ................................ 217 4.6. Técnicas de optimización para la gestión de E/s ................................................................... 223 4.6.1. Procesador para el sistema gráfico: GPu .................................................................. 223 REsuMEn DE DECIsIOnEs DE DIsEñO DE TéCnICAs DE AuMEnTO DE PREsTA- CIOnEs PARA MEMORIA Y E/s ............................................................................................... 228 Aumento de prestaciones de la memoria caché ..................................................................... 228 Aumento de prestaciones de la memoria principal ................................................................ 228 Aumento de prestaciones de buses de E/s ............................................................................. 228 Aumento de prestaciones de dispositivos de E/s: almacenamiento ........................................ 229 Aumento de prestaciones en la gestión de E/s ....................................................................... 229 BIBlIOGRAFÍA Y lECTuRAs RECOMEnDADAs ............................................................... 229 PROBlEMAs ................................................................................................................................ 230 AuTOEVAluACIÓn .................................................................................................................... 233 Capítulo 5: Sistemas multiprocesador y multicomputador 5.1. Clasificación de arquitecturas con varios procesadores ......................................................... 236 5.1.1. Arquitecturas de memoria compartida ...................................................................... 237 5.1.2. Arquitecturas de memoria compartida-distribuida ................................................... 238 5.1.3. Arquitecturas de memoria distribuida ....................................................................... 239 00b-INDICE.indd 7 10/5/10 12:19:08 contenido 5.1.4. Arquitecturas on-chip de memoria compartida ......................................................... 240 5.1.5. Arquitecturas on-chip de memoria distribuida .......................................................... 242 5.2. Redes dentro de arquitecturas de computadoras ................................................................... 242 5.2.1. Topología .................................................................................................................. 245 5.2.2. Técnicas de conmutación .......................................................................................... 249 5.2.3. Técnicas de encaminamiento ..................................................................................... 252 5.2.3. Técnicas de control de flujo ....................................................................................... 253 5.3. Diseño de arquitecturas de memoria compartida .................................................................. 254 5.3.1. soluciones para el problema de la coherencia............................................................ 257 5.3.2. soluciones para el problema de la consistencia ......................................................... 269 5.3.3. soluciones para el problema de la sincronización ...................................................... 272 5.4. Diseño de arquitecturas de memoria compartida-distribuida................................................ 274 5.4.1. soluciones para el problema de la coherencia............................................................ 275 5.5. Diseño de arquitecturas de memoria distribuida ................................................................... 283 5.5.1. Clusters ..................................................................................................................... 283 5.5.2. Grids ......................................................................................................................... 286 REsuMEn DE DECIsIOnEs DE DIsEñO DE sIsTEMAs MulTIPROCEsADOR Y Mul- TICOMPuTADOR ....................................................................................................................... 288 Diseño de redes dentro de arquitecturas................................................................................ 288 Diseño de arquitecturas de memoria compartida .................................................................. 288 Diseño de arquitecturas de memoria compartida-distribuida................................................ 288 Diseño de arquitecturas de memoria distribuida ................................................................... 289 BIBlIOGRAFÍA Y lECTuRAs RECOMEnDADAs ............................................................... 289 PROBlEMAs ................................................................................................................................ 290 AuTOEVAluACIÓn .................................................................................................................... 296 Capítulo 6: Evaluación de prestaciones 6.1. Definición de métricas de rendimiento .................................................................................. 298 6.2. Métricas de rendimiento sencillas ......................................................................................... 299 6.3. Evaluación y comparación de rendimiento ........................................................................... 300 6.3.1. ley de Amdhal y ley de Gustafson .......................................................................... 303 6.4. Técnicas de medida y benchmarks ........................................................................................ 307 6.4.1. Técnicas de medida ................................................................................................... 308 6.4.2. Tipos de benchmark .................................................................................................. 310 6.5. Métricas de rendimiento complejas ....................................................................................... 312 6.5.1. speedup en sistemas paralelos y eficiencia ................................................................. 313 6.5.2. Escalabilidad ............................................................................................................. 315 BIBlIOGRAFÍA Y lECTuRAs RECOMEnDADAs ............................................................... 317 PROBlEMAs ................................................................................................................................ 318 AuTOEVAluACIÓn .................................................................................................................... 320 Índice analítico ......................................................................................................................... 321 00b-INDICE.indd 8 10/5/10 12:19:08