You are on page 1of 566
Miles J. Murdocca - Vincent P. Heuring Rutgers University University of Colorado Principios de arquitectura de computadoras . h Priticipios de arquitectura de computadoras: ‘TRaDUCCCION Ing. Fernando Szklanny Universidad de Buenos Aires Universidad Nacional de La Matanza Universidad de Morén REVISION TECNICA Ing. Elio de Maria Universidad Necional de La Matanza Universidad de Morén Universidad de Palermo Argentina + Botivia « Brasil» Colombia + Costa’ Rica * Chile » Ecuador * El Salvador + Espaita + Guaternala + Honduras * México » Nicaragua * Panamd + Paraguay + Peri + * Puerto Rico + Repibliea Dominicana * Uruguay * Venezuela 2 Amsterdam = Harlow + Londres = Menlo Parte nici» Nueva Delhi » Nuova Jersey = toy, Nueva York + Ontario + Paris Sidnoy + Singapur + Tokio + Toronto * Zurich es J. Murdocéa ~ Vincent P. Heuring: j | j Pier een Joos Muniocca, Mites MUR Principios de anquitectura de computadoras / Miles ‘Mardocca y Vincent Heuring ~ I" ed. - Buenas Aices Pearson Education, 2002. S84; 25,5 x 19,500 ‘Traducciém de: Feroando S2klanny ISBN: 987.9560.69-3 1, Heuring, Vinceat Il. Tiulo -1. Compuradoras = Arquiteetora Editor: Enrique Baumann Disetio de Tapa: Diego Linares Disefio de Interior: Adriana Mariner ‘Tradueci6n: Fernando Saklanny Correccién: Masta E. Walas Produccién: Marcela Mangacelli / Cristian Rodrigues Yabares ‘Traducido de: PRINCIPLES OF COMPUTER ARCHITECTURE, 1* Edicion by MURDOCCA, MILES, HEURING, VICENT P, published by Peatson Education, lnc, publishing as PRENTICE HALL, INC, Copyright © 2000, ISBN: 0-20-0143664-7 Edicién en espafiol publicada por: Copyright © 2002 PEARSON EDUCATION S.A. Ay, Regimiento de Patcicios 1959 (C12G6AAF), Buenos Aires, Rep. Argentina PRENTICE HALL Y PEARSON EDUCACION son marcas de propiedad de FEARSON EDUCATION S.A. ISBN: 987-9460-69-3 Primera edicién: enero de 2002 Queda hecho el depésito que dispone la ley 11.723 Esce libro no puede ser eproducide soral ni parcialmente en ninguna forma, ni por ningin media procedi- tiento, sea reprogrifico,forocopia, microfilmacién, mimeogrdfico o cualquier otro sistema mecinico,Foroqul- formitico, magnética, electrodptica, exétera. Cualquier reproduccién sin el permiso pre- vio por escrito de la editorial viola derechos reservados, es ilegal y constituye un delio, Impreso en Brasil por RR Donnelley, en el mes de enero de 2002. Rus Epiacaba 90 -Vila Arapus— 04257.170 - So Paulo SP Para Ellen, Alexandra y Nicole Para Gretchen Indice . de contenidos Prélogo 1. Introduccién 1.1 Planteo general 1.2 Una historia breve 1.3 El modelo von Neumann 1.4 El modelo de interconexi6n a través de bus 1.5 Niveles de méquina 5.1 Compatibilidad “hacia arriba” 1.5.2 Los niveles 1.6 Un sistema de computacién tipico 1.7 Organizacién de la obra 1,8 Estudio de un caso: ;Qué le ocurrié a las supercomputadoras? Resumen Para lectura posterior Problemas 2, Representacién de la informacién 2.1 Introduccién 2.2 Nimeros de punto fijo 1 Rango y precisi6n on nimeras de punto fijo 2.2.2 La ley asociativa del dlgebra no siempre funciona en la computadora 2.2.3 Sistemas de numeracién posicionales 2.2.4 Conversién entre sistemas 2.2.5 Una primera mirada a la aritmética de las computadoras 2.2.6 Niimeros signados en formato de punto fijo 2.2.7 Decimal codificado en binario 2.3 Formato de representacién en punto flotante 2.3.1 Rango y precisién en nimeros de punto flotante 2.3.2 La normalizaci6n y el esquema de bits implicitos X_PRINGIPIOS DE ARQUITECTURA DE COMPUTADORAS 2.3.3 Representacién de nimeros de punto flotante dentro de la computadora. Introduccién 2.3.4 Errores en la representaci6n de punto flotante Ejemplo 2.3.5 La norma de representacién IEEE 754 2.4 Estudio de un caso: una falla en un misil defensivo Patriot causada por una pérdida de precisién 2.5 Cédigos alfanuméricos 2.5.1 El conjunto de caracteres ASCII 2.5.2 El conjunto de caracteres EBCDIC 2.5.3 El eédigo UNICODE Resumen Para tectura posterior Problemas 3. Aritmética Introducci6n 3.2 Suma y resta en punto fijo 3.2.1 Suma y resta en la representaci6n de complemento a dos 3.2.2 Implementaci6n circuital de sumadores y restadores 3.2.3 Suma y resta en representacién de complemento a uno 3.3 Producto y cociente en punto fijo 3.3.1 Multiplicacién de mimeros sin signo 3.3.2 Divisién sin signo 3.3.3 Producto y cociente signados 3.4 Aritmética de punto flotante 3.4.1 Suma y resta en formato de punto flotante 3.4.2 Producto y cociente en formato de punto flotante 3.5 Aritmética de alto rendimiento 3.5.1 Suma de alto rendimiento 3.5.2 Producto de alto rendimiento 3.5.3 Divisi6n de alto rendimiento 3.5.4 Calculo residual Ejemplo. Sumador de alto rendimiento para palabras largas 3.6 Estudio de un caso: calculadora que utiliza el sistema decimal codificado en binario 3.6.1 La calculadora HP9100A 3.6.2 Suma y resta de némeros codificados en BCD 3.6.3 Suma y resta en BCD punto flotante, Resumen Para lectura posterior Problemas 38 4l 45 45 48 50 50 52 52 55 55 56 61 61 61 62 67 69 69 mW 13 14 14 18 16 76 2B 82 85 86 88 88 89 92 94 94 95 4, La arquitectura de programacién 99 4.1 Componentes circuitales de la arquitectura de programacién 100 4.1.1 Una revisién del modelo de bus 100 4.1.2 Memoria 101 4.1.3 La unidad central de proceso (CPU) 104 4.2 ARC, una computadora RISC 108 4.2.1 Memoria en ARC 109 4.2.2 El conjunto de instrucciones ARC 109 4.2.3 Formato del lenguaje simb6tico de ARC 112 4.2.4 Formatos de instruceién en ARC 113 4.2.5 Formatos de datos en ARC 115 4.2.6 Descripcién de las instrucciones de ARC 17 4.3 Directivas (seudo operaciones) 121 4.4 Bjemplos de programacién en lenguaje ensamblador 122 4.4.1 Variantes en las arquitecturas y en tos direccionamientos 125 4.4.2 Bficiencia de las arquitecturas de programacién 128 4.5 El acceso a la informacién en la memoria, Modos de direccionamiento 129 4.6 Acceso a subrutinas y pilas 130 4.7 Entrada y salida en lenguaje simbélico. 136 4.8 Estudio de un caso: la arquitectura de programacién de la maquina virtual Java 139 Resumen 144 Para lectura posterior 144 Problemas 45 5. Los lenguajes y la maquina 151 5.1 El proceso de compilacién 1s] 5.1.1 Los pasos de la compilacién 152 5.1.2 La especificacién del mapeo 153 5.1.3 Como convierte el compilador los tres tipos de instrucciones al cédigo ensamblador 153 5.1.4 Movimiento de datos 155 5.1.5 Instrucciones aritméticas 157 5.1.6 Control de secuencia 158 5.2 El proceso de ensamblado 160 5.2.1 El proceso de ensamblado y los ensambladores de dos pasadas 161 5.2.2 El proceso de ensamblada y la tabla de simbolos 164 5.2.3 Tareas finales del programa ensamblador 166 5.2.4 Ubicacién de programas en memoria 168 5.3 Bnlace y carga 168 5.3.1 Enlace (linking) 169 5.3.2 Carga 71 XXll_primcepios DE ARQUITECTURA DE COMPUTADORAS. Bjemplo de programacién 173 5.4 Macroinstrucciones (Macros) 5 5.5 Estudio de un caso: extensiones al juego de instrucciones - Las instrucciones SIMD Intel MMX™ y Motorola AltiVec™™ 17 $.5.1 Fundamentos 178 5.5.2 Las arquitecturas biisicas 178 5.5.3 Registros vectoriales 180 5.5.4 Operaciones de aritmética vectorial 182 5.5.5 Operaciones de comparacién de vectores 184 5.5.6 Conclusiones de los casos de estudio 185 Resumen 185, Para lectura posterior 186 Problemas 187 6. Trayecto de datos y control 191 6.1 Fundamentos de la microarquitectura 192 6.2 Una microarquitectura para ARC 193 6.2.1 El trayecto de datos 193 6.2.2 La seccién de controt 201 6.2.3 Temporizacién 208 6.2.4 El desarrollo del microprograma 205 Ejemplo 24 6.2.5 Traps e interrupciones 216 6.2.6 Nanoprogramacién 218 6.3 Control cablendo 219 Ejemplo 227 6.4 Estudio de un caso: el lenguaje de descripcién de hardware VHDL. 227 6.4.1 Antecedentes 228 6.4.2 ;Qué es VHDL? 228 6.4.3 La funcién mayoria y su descripcién en lenguaje VHDL 29 6.4.4 Sistema I6gico de nueve valores 233 Resumen 234 Para lectura posterior 234 Problemas 235 7. Memoria 243 7.1 Las jerarquias de ta memoria 243 7.2 Memoria de acceso aleatorio 245 7.3 Organizacién de un circuito integrado 246 7.3.1 Construccién de una memoria grande a partir de memorias pequefias 250 7.4 Médulos comerciales de memoria 251 inoice pé conTeminos XIII 7.5 Memoria de lectura 252 7.6 Memoria cache 254 7.6.1 Memoria cache de asignacién asociativa 256 7.6.2 Memoria cache de asignacién directa 260 7.6.3 Asignacién asociativa por conjuntos de la memoria cache 262 7.6.4 Rendimiento de la memoria cache 263 7.6.5 Tasas de acierto y tiempos de acceso 265 7.8.6 Memorias cache multinivel 267 7.6.7 Administracién de la memoria cache 268 7.7 Memoria virtual 270 7.7.1 Superposiciones (overlays) 270 7.7.2 Paginacién 2m 7.7.3 Segmentacién 274 7.7.4 Fragmentacion 216 7.7.5 Memoria virtual versus memoria cache an 7.7.6 El buffer de traducei6n anticipada (Translation Lookaside Buffer - TLB) 28 7.8 Temas avanzados 219 7.8,1 Arboles decodificadores 279 7.8.2 Decodificadores para memorias de acceso aleatorio muy grandes 280 7.8.3 Memorias de diteccionamiento por contenido (asociativas) 281 Ejemplo de disefio de una memoria: memoria RAM de doble puerto 285, 7.9 Estudio de un caso: la memoria Rambus 285 7.10 Estudio de un caso: el sistema de memoria Pentium de Intel 289 Resumen 292 Para lectura posterior 292 Problemas 293 . Entrada y salida 299 8.1 Arquitecturas de un tinico bus 300 8.1.1 Estructura de bus, protocolos y control 301 8.1.2 Frecuencias de reloj en el bus 302 8.1.3 Et bus siner6nico 302 8.1.4 El bus asincrénico 303 8.1.5 Arbitraje del bus, Maestros y esclavos 305 8.2 Arquitecturas de bus basadas en puentes 307 8.3 Metodologfas de comunicacién 309 8.3.1 Entrada-salida programada 309 8.3.2 Entrada-salida administrada por interrupciones 310 8.3.3 Acceso directo a memoria 312 8.4 Estudio de un caso: comunicaciones en Ia arquitectura Pentium de Intel 314. 8.4.1 El reloj del sistema, el reloj del bus y las velocidades de} bus 314 XUV. pruncipios DE ANQUITEETURA DE COMPUTADORAS 8.4.2 Direcciones, datos, memoria y entrada-salida 315 8.4.3 Las palabras de datos no requieren alineacién forzada 38 8.4.4 Ciclos de bus en la familia Pentium 318, 8.4.5 Ciclos de bus de lectura y escritura de memoria 316 8.4.6 El ciclo de bus de lectura por bloques (burst) 317 8.4.7 Retenci6n del bus para admitir pedidos de bus por parte de otro maestro 318 8.4.8 Velocidades de transferencia de datos 319 8.5 Almacenamiento masivo 320 8.5.1 Discos magnéticos 220 8.5.2 Cintas magnéticas 328 8.5.3 Tambores magnéticos 329 8.5.4 Discos épticos 330 Ejemplo: tiempo de transferencia de un disco rigido 332 8.6 Dispositivos de entrada 333 8.6.1 Teclados 334 8.6.2 Tabletas digitalizadoras 335 8.6.3 Ratones y trackballs 335 8.6.4 Lapices dpticos y pantallas sensibles al tacto 336 8.6.5 Palancas de control (joysticks) 337 8.7 Dispositivos de salida 338 8.7.1 Impresoras Miser 338 8.7.2 Pantallas de video 339 Resumen 342 Para lectura posterior 342 Problemas 343 9, Comunicaciones 347 9.1 Médems 347 9.2 Medios de transmisi6n 350 9.2.1 Lineas bipolares abientas 351 9.2.2 Lines de par trenzado 351 9.2.3 Cable coaxial 352 9.2.4 Fibra ptica 352 9.2.5 Sauélites 352 9.2.6 Microondas terrestres. 353 9.27 Radio 353 9.3 Arquitectura de redes: redes de érea local 354 9.3.1 El modelo OSI 354 9.3.2 Topologias 356 9.3.3 Transmisién de datos 358 {wotce OF comTENTDGS XV 9.3.4 Puentes (bridges), encaminadores (routers) y puentes de enlace (gateways) 359 9.4 Errores de comunicacién y cédigos correctores de errores 360 9.4.1 Tasa de error 360 9.4.2 Deteccién y correccién de errores 361 9.4.3 Control de redundancia vertical 367 9.4.4 Control de redundancia ciclica 368 Ejemplo: correccién de dos errores 370 9.5 Arquitectura de redes: Internet am 9.5.1 El modelo Internet 371 9.5.2 Revisi6n de puentes, encaminadores y conmutadores 376 9.6 Estudio de un caso: modo asincrénico de transferencia 378 9.6.1 Transferencia sincrénica contra transferencia asinerénica 379 9.6.2 {Qué es el modo asincrénico de transferencia? 380 9.6.3 Arquitectura de una red ATM. 381 9.6.4 Perspectivas de ATM. 383 Resumen 383 Para lectura posterior 383 Problemas 384 10. Avances en la arquitectura de computadoras 387 10.1 Andlisis cuantitativo de la ejecucién de un programa 388 10.1.1 Andlisis cuantitativo del rendimiento 390 Ejemplo: cdlculo del aumento de velocidad en un nuevo conjunto de instrucciones 301 10.2 De CISC a RISC 301 10.3 Segmentaci6n del trayecto de datos 393 10.3.1 Instrucciones aritméticas, de salto y de acceso a memoria 393 10.3.2 Segmentacién de las instrucciones 395 10.3.3 Cémo mantener ocupada la estructura 395 Bjemplo: andlisis de Ia eficiencia de una estructura segmentada 397 10.4 Superposicién de ventanas de registros 398 Ejemplo: c6digo compilado para ventanas superpuestas y saltos retardados 401 10.5 Maquinas con instrucciones nuiltiples (superescalares). El PowerPC 60t 406 10.6 Estudio de un caso: el procesador PowerPC como arquitectura superescalar 407 10.6.1 La arquitectura de programacién del PowerPC 601 407 10.6.2 La arquitectura de hardware del PowerPC 601 407 10.7 Méquinas con palabra muy larga de instruccién 410 10.8 Estudio de un caso: la arquitectura Intel |A-64 (Merced) 410 10.8.1 Antecedentes: fa arquitectura CISC 80x86 410 10.8.2. El procesador Merced: una arquitectura EPIC an 20VI_ermuceptos ce aRQUITECTURA DE COMPUTADORAS: 10.9 Arquitecturas paralelo 10.9.1 La taxonomia de Flynn 10.9.2 Redes de interconexién Ejemplo: red estrictamente no bloqueante 10.9.3 Asignacién de un algoritmo a una arquitectura paralelo 10.9.4 Paralelismo de grano fino. La arquitectura CM-1 10.9.5 Paralelismo de grano grueso: CM-5 10.10 Estudio de un caso: el procesamiento paralelo en Sega Génesis 10.10.1 La arquitectura Sega Génesis, 10.10.2 Operacién de Sega Génesis 10.0.3 Programacién de Sega Genesis Resumen Para tectura posterior Problemas A. Légica digital A.1 Introduccién A.2 L6gica combinatoria A.3 Tablas de verdad A.4 Compuertas l6gicas AA.1 Implementacién electr6nica de la Iégica AA.2Buffers de tres estados AS Propiedades del dlgebra de Boole AG Representaci6n en suma de productos y diagramas légicos A.7 La forma producto de sumas A.8 Légica positiva o légica negativa A9 La hoja de datos ‘A.10 Componentes digitales A.10.t Niveles de integracién A.10.2 Multiplexores A.10.3 Demultiplexores A.10.4 Decodificadores A.10.3 Codificadores de prioridad A.10.6 Matrices l6gicas programables Ejemplo: un sumador con arrastre serie ALL Légica secuencial A.LL.1 El circuito biestable (flip flop) $-R A112 El flip flop S-R sinerénico A.1L3 El flip flop D y la configuracién maestro-esclavo A.11A4 Flip flops J-K y T A.12Disefio de maquinas de estado 414 ANG 418 422 424 429 431 433 434 435 436 437 437 439 441 44t at 442 444 447 449 450 453 455 456 458 461 461 463 465 466 469 41 472 474 476 477 479 {Noice De conreipes XVII Ejemplo: un detector de secuencia 482 Ejemplo: un controlador para una méquina expendedora 485 A.13El modelo Mealy y el modelo Moore. 487 A.14 Registros 488 A.15 Contadores 489 Resumen 491 Para lectura posterior 491 Problemas 492 B. Simplificaci6n de circuitos légicos 499 B.1 Reducci6n de bégica combinatoria y de I6gica secuencial 499 B.2 Reduccién de las expresiones de dos niveles 499 B.2.1El método algebraico 500 B.2.2E1 método de los mapas K 501 B.2.3E1 método tabular 509 B.2.4Simplificacién légica: su efecto sobre la velocidad y laeficiencia $17 B.3 Reduccién de estados $21 B.3.1 El problema de Ia asignacién de estados 524 Ejemplo de reduccién: un detector de secuencia 526 B.3.2 Tablas de transiciones 528 Ejemplo de tabla de transiciones: un detector de mayorfa 533 Resumen 535 Para lectura posterior 535 Problemas 536 indice analitico 541 Préloga Acerca dei libro Nuestro propésito al escribir este texto es describir el funcionamiento interno de la com- putadora digital moderna a un nivel que logte desmitificar lo que ocurre dentro de esta, El nico requisito previo para ta lectura de Principios de arquitectura de computadoras €s poscer un adecuado conocimiento prictico de un tenguaje de programacién de alto ni- vel. La seleccién del material cubre temas que habitualmente forman parte de un primer curso de arquitectura de computadoras @ de organizacién de computadoras, La profun- didad y la amplitud con que se han tratado los temas tienen como propésito colocar al estudiante principiante en un camino sétido para la continuidad de sus estudios en disci- plinas relacionadas con las computadoras. Cuando se requiere crear un texto sobre arquitectura de computadoras, las solucio- nes técnicas surgen en forma natural, en tanto que las caracterfsticas organizativas se relacionan con las prestaciones mAs importantes. Entre las caracteristicas que recibie- ron mayor atencién a lo largo de este texto se incluyen la eteccidn de la arquitectura de programacién (ISA, Instruction Set Architecture), el uso de los casos de estudio y un importante desarrollo de ejemplos y ejercicios. La arquitectura de programacién Los textos que analizan los Jenguajes absolutos de programacién tienen dos criterios pa- ra el tipo de arquitectura de instrucciones a utilizar: 0 se adopta un modelo propio, o se elige uno de los tantos modelos comerciales existentes en ef mercado. La eleccién afece ta al instructor, que puede necesitar una arquitectura compatible con una plataforma de ta que dispone para los trabajos de programacién que le asigna a sus estudiantes. Para mayor complicacién, ta plataforma local puede cambiar de semestre en semestre: ayer pudo ser MIPS, hoy un Pentium, mafiana un SPARC. Los autores optaron por ambos ca- minos al adoptar como arquitectura la de programacién un subconjunte de Ia arquitectu- ra SPARC, a la que lamaron ARC (4 RISC Computer, una computadora RISC). Esta se Utiliza a lo largo del texto, siendo complementada con herramientas de programacién in- XOL_PRINCIPIOS DE ARQUITECTURA DE COMPUTADORAS dependientes de la plataforma, que permiten simular tanto la arquitectura ARC como las arquitecturas que corresponden a los procesadores Intel X86 (Pentium) o MIPS. Casos de estudio, ejemplos y ejercicios Cada capttulo contiene al menos un caso de estudio como elemento que le permite al alumno acercarse a ejemplos reales sobre el tema. Esto ubica al tema en perspectiva, lo que, a juicio de los autores, aporta al material un aire de realismo ¢ interés. Se han incorporado tantos ejemplos y ejercicios como ha sido posible para cubrir los puntos mis significativos del texto. En el sitio web que acompafia al texto se encuentran disponibles ejemplos adicionales y soluciones a los problemas. Cobertura de los temas El enfoque de este libro presenta a Ia computadora como un sistema integrado. Si se debiera elegir un subiitulo, este podria ser “Un enfoque integrado”, lo que reflejaria las relaciones de alto nivel que vinculan a tos distintos elementos entre ellos. Cada tema se cubre en el contexto de la integridad de ta méquina de la que es parte, y con la pers pectiva de determinar cémo afecta la implementacién a la conducta del sistema. Por ejemplo, la precisién finita de los ntimeros binarios se relaciona con Ia cantidad de unos que pueden sumarse a un atimero expresado en punto ftotante, antes de que el error en la representacién exceda el valor de 1, (Por esta razén, debe evitarse el uso de nime- ros de punto flotante como variables de control en rutinas tipo Lazo.) Otro ejemplo es el tema de ta vinculacign entre subrutinas, que se trata con fa expectativa de que el lec- tor pueda enfrentarse alguna vez con la necesidad de programar en el lenguaje C 0 con programas escritos en Java que invocan subrutinas escritas en otros lenguajes de alto ni- vel, como Fortran, ‘Como otro ejemplo del enfoque integrado, los conceptos de deteccién y correccién de errores se analizan en el contexto de Ia transmisin y almacenamiento masivos, an- te la perspectiva de que el lector pueda encarar aplicaciones referidas a redes (en las que los errores y las pérdidas de datos son un hecho cotidiano) 0 deba lidiar con ele- mentos de almacenamiento poco confiables, como los CD-ROM (compact disk-read only memory). La arquitectura de las computadoras impacta sobre Ja mayor parte de tas actividades que los profesionales de la computacién realizan diariamente, por lo que el enfoque in- tegrado orienta el texto hacia 1a diversidad de reas afines en las que dicho profesional debe capacitarse. Este énfasis es consecuencia de una transicién que esté ocurriendo en muchos planes de estudio de carreras de grado relacionadas con Ja computaci6n. A me~ dida que las arquitecturas de las computadoras se complican cada vez més, deben ser tratadas con niveles de abstracci6n cada vez mayores, ya que, de alguna manera, se han PROLOGO 1X1 wuelto dependientes de la tecnologia. Por esta cazén, la mayor parte del (exto trata sobre Ja arquitectura de computadoras con un enfoque de alto nivel, en tanto que los aspectos de menor nivel, dependientes de lo teenolégico, se tratan en los apéndices y en los casos de estudio, Los capitulos En el capitulo 1, “Introduccién’, se da comienzo al texto con una breve historia de la arguitectura de las computadoras, avanzando a través de las partes bésicas que las com- ponen, con lo que el estudiante termina con una visién de los sistemas de computacién desde el alto nivel. Se presenta el modelo convencional de Von Neumann, seguido por el andlisis descriptivo de una computadora tipica, Este capitulo se propone sentar las bases para permitir un andlisis mas profundo en capftulos sucesivos. Enel capitulo 2, “Representacién de la informacién”, se cubren los temas basicos relacio- nados con la representacién de datos. Se analizan las representaciones de niimeros signa- dos, a través de las convenciones de complemento a uno, complemento a dos, magnitud y signo, y representacién en exceso, Este capitulo también toma en cuenta la representacién, decimal co¢ificada en binario (BCD), utilizada habitualmente en calculadoras. Ademds, se cubre la representacién de ntimeros en formato punto flotante, incluyendo la norma TEBE 754 de uso comin en mimeros binarios. Por ultimo, también se analizan las repre- sentaciones ASCII, EBCDIC y Unicode para caracteres. En ef capitulo 3, “Ariumética’, se analizan la aritmética de computadoras y las represen- taciones avanzadas. Se estudian los procedimientos para realizar operaciones de suma, resta, producto y cociente en notacién de punto fijo. Se consideran también las represen- taciones de complemento a nueve y complemento a diez, utilizadas habitualmente en el célculo BCD, asi como las operaciones aritméticas en BCD y en punto flotante. Se desa- rrollan, ademds, los métodos requeridos para mejorar la eficiencia de estas operaciones, como la suma con arrastre anticipado, la multiplicacién matricial y Ia divisiGn a través de iteracién funcional. Para completar, se analiza brevemente la teoria de residuos, para introducir un enfoque poco convencional de alto rendimiento. En él capitulo 4, “La arquitecura de programacién”, se introducen los conceptos sobre fos componentes arquitecténicos bdsicos requeridos para Ia ejecucién de los programas. Se analizan tos conceptos de lenguaje de maquina y de ciclos biisqueda-ejecucién. Se de- talla la organizacién de la unidad central de proceso, se analizan las funciones del bus del sistema en la articulacién entre las unidades aritumético-légica, de memoria, de entrada y salida, y se detalla la estructura de la unidad de control. En el contexto de la arquitectura ARC (A RISC Computer), ligeramente basada en la arquitectura comercial SPARC, se analiza el tema de la programacién en lenguaje de 2OU_PRONCIPIOS OE AROUITECTURA DE COMPUTADORAS méquina. La arquitectura descriptiva ARC mantiene, con respecto a SPARC, los nom- bres y formatos de las instrucciones, los formatos de los datos y la sintaxis de su lengua~ Je simbélico de programacién, pero, por otra parte, presenta una gran simplificacién res- pecto de aquella. En la mayor parte del capitulo se utilizan solo 15 de fas instrucciones de SPARC, admitiendo en principio un tinico formato para datos, de 32 bits sin signo. Se analizan los formatos de instrucciones, asf como tos modos de direccionamiento. As ‘mismo se trata con distintos enfoques el manejo de subrutinas, que incluye un andlisis detallado de la transferencia de parémetros mediante el uso de una pila. En el capitulo 5, “Los lenguajes y 1a m4quina”, se relaciona el enfoque del programa- dor de un sistema de computacién con la arquitectura de la méquina, Se plantean temas de programacién del sistema, con el objetivo de colocar el lenguaje de bajo nivel a la vista del programador. El capitulo comienza con una explicacién del proceso de com- pilacién, para lo cual primero se analizan los pasos involucrados en la compilacién y luego se plantea Ia generaci6n del c6digo objeto. Se describe el proceso de traducci6n a lenguaje de maquina a través de un ensamblador (assembler) de dos etapas, agregan- do a la descripcién ejemplos de la generacién de tablas de simbolos. Se cubren tam- bién los conceptos asociadas con macros y con los procesos de vinculacién (linking) y de carga. En el capitulo 6, “Trayecto de datos y control”, se realiza el andlisis paso a paso de una unidad de control y los caminos de los datos. Se estudian fos dos métodos cominmente utilizados para las unidades de control: el del controt microprogramado y el de la unidad de control cableada. El instructor podré adoptar un método y omitir el otro, © cubrie ambos en funcién de sv disponibilidad de tiempo. Las unidades de control microprogra- madas y las unidades cableadas, utilizadas como ejemptos, implementan e! subconjunto ARC del lenguaje de programaci6n SPARC presentado en el capitulo 4, En el capitulo 7, “Memoria”, se analiza la memoria de la computadora, comenzando por Ta organizacién de una memoria de acceso al azar bisica, y continuando con conceptos avanzados como memoria virtual y cache. Se analizan los esquemas tradicionales de mapeo de memoria cache, tales como el directo y el asociativo, asi como el cache en va- rios niveles, También se tratan temas como el paginado (overlays), las politicas de reem- plazo, la segmentaci6n, 1a fragmentaci6n y el concepto de buffer de traduccién an pada (ILB, translation lookaside buffer). £n el capitulo 8, “Entrada y salida”, se cubren los métodos de acceso y comunicaciones en buses, Se analiza también la vinculacién entre buses. Ademds, trata sobre los distin- tos dispositivos de entrada-salida de uso habitual, como discos, tectados, impresoras y pantallas. PROLOED xxIN Enel capitulo 9, “Comunicaciones”, se analizan las arquitecturas de redes, con enfoques s0- bre médems, redes de area local (LAN, local area network) y redes de drea extendida (WAN, wide area network), Se plantea especial interés en el anilisis de las arquitecturas de redes, analizando en forma sencilla los protocolos que enfocan las prestaciones clave de di- has arquitecturas de redes. Se analizan en profundidad la deteccidn y ta correccién de erro- res, y se introduce, en el contexto de Internet, el esquema de protocolo TCP/IP. Enel capitulo 10, “Avances en Ia arquitectura de computadoras”, se cubren las caracte- risticas avanzadas de las arquitecturas que han aparecido o cambiado de enfoque en los Uiltimos afios. La primera parte del capitulo analiza los conceptos de la arquitectura de procesadores para las computadoras con conjunto reducido de instrucciones, mas cono- cidas como de arquitectura RISC (Reduced Instruction Set Computer) y las consecuen- cias derivadas de esta arquitectura. La dltima parte de este capitulo trata acerca de las méquinas de instruccién multiple y de palabra muy larga de instruccién (VLIW, Very Large Instruction Word). A través de un caso de estudio se hacen visibles al programa- dor las prestaciones de la arquitectura RISC, para lo cual se realiza el andlisis paso a pa- so de un programa SPARC generado por un compilador C, con explicaciones acerca del uso de registros, de pilas y de segmentacién (pipelining). El capitulo cubre también las arquitecturas distribuidas y paralelas, asf como las redes de interconexidn utilizadas en el procesamiento paralelo y en el procesamiento distribuido. En ol apéndice A, “Légica digital”, se analizan los temas asociados con légica combina- toria y secuencial, ademas de establecer la base que permita entender el disefio légico de Jos componentes analizados en el resto del texto, El apéndice A se inicia con una descrip- cidn de tablas de verdad, algebra de Boole y ecuaciones légicas. Asimismo, se describe la sintesis de circuitos légicos combinatorios, explordndose una gran cantidad de ejemplos. Se analizan los componentes de mediana escala de integracién (MSI, Medium Scale Integration), tales como multiplexores y decodificadores; se completa el andlisis con ejemplos de disefto de circuitos que utilizan componentes MSI. En este apéndice se analiza también el concepto de l6gica sincrénica, inicidndose con una introduccién de los aspectos de temporizacién de los circuitos biestables (flip- flops). Se trata, asimismo, la sintesis de circuitos Idgicos sincrdnicos, con relacién a sus diagramas de estados, sus tablas de estados y el disefio de légica sincrénica. £n el apéndice B, “Simplificacién de circuitos ldgicos”, que es un complemento del apéndice A, se cubren los métodos de reduccién de légica tanto combinatoria como se- cuencial. Se analizan los métodos de minimizacién basados en 1a simplificacién alge- braica, asf como en los diagramas de Kamangh y los métodos tabulares de Quine-Mc- Cluskey para funciones simples y miiltiples. Tambign se analizan la reduccién y la asig- nacién de estados. XXIV _PRINGIPIOS CE ARQUITECTURA OE COMPUTADORAS Ordenamiento de los capitulos El orden de los capitulos ha sido planteado de modo tal que los mismos puedan desa- rrollarse en orden numérico, aun cuando el instructor puede modificar e] ordenamien- to propnesto para adecuarlo a un programa o plan de estudios particular. La figura P.1 plantea los requisitos necesarios para establecer relaciones entre los capitulos, deta- Handose a continuacién algunas consideraciones especiales respecto de la sccuencia planteada. Capitulo 1: Introduce ‘Capitulo 2: Representacién de la informacién Capitulo 3: Aritmética fe —[ Apéndice A: Logica digital] Capitulo 4: La arquitectura| ‘Apéndiee B: Simplifieacion| de programacién de cireuitos l6gicos ‘Capftulo 5: Las lenguajes Capitulo 7: Memoria yy la méquinal I } Capitulo Capitulo 6: Trayectos Entrada y slide de datos y control 1 ‘Capitulo 9: Comunicaciones Capito 10; Avances en la rguitectura de computadoras| Figura P.1 » Requerimientos de correlatividad entre capitulos. El capftulo 2, “Representacién de la informacién”, deberia desarrollarse antes que el ca- pitulo 3, “Aritmética”, dado que este requiere de los conocimientos de representaci6n de datos. Los apéndices A, “Légica digital”, y B, “Simplificaci6n de circuitos 16gicos”, pueden omitirse si el tera de légica digital se ha desarrollado en una asignatura previa de la carrera; pero si el material no se cubre, las estructuras de algunos componentes (ta- Jes como una unidad aritmético-légica o un registro) pueden quedar en el misterio sino se desarrolla al menos el apéndice A antes que el capitulo 3. Los capitutos 4, “La arquitectura de programacién”, y 5, “Los lenguajes y la maquina”, aparecen en Ja primera mitad del texto por dos razones: (1) introducen al lector en el fun- cionamiento de una computadora a un nivel relativamente alto, el que permite un enfoque desde arriba hacia abajo (top-down) del estudio de la arquitectura de ia computadora, y (2) PAGLOGO_XXY es importante iniciar la programaci6n en lenguaje de bajo nivel en forma temprana solo si se realizan pricticas de programacién como parte del curso. El capitulo 10, “Avances en la arquitectura de computadoras”, aparece generalmente en los niveles de grado de los cursos de arquitectura; por ende, deberia desarrollarse solo si el tiempo lo permite, luego de haber desarrollado todo el contenido de los capitulos anteriores. El sitio web Acompaiiando a este texto, se ofrece un sitio web vinculado con el mismo: http: //www.pearsonedlatino.com/murdocca Este sitio contiene un conjunto de elementos de apoyo, como software y diapositivas en formato Acrobat, y una fe de erratus. Para quienes adopten el libro como texto, también se encuentran disponibles las soluciones a los problemas, as{ como problemas tipo para exdmenes con sus respectivas soluciones (aquellos docentes que deseen acceder a esta in- formacién, deberin conectarse con su representante de Prentice Hall). Herramientas de software Se provee un ensamblador y un simulador para la arquitectura ARC, asi como subcon- juntos de los lenguajes de m4quina de los procesadores MIPS y X86 (Pentium). Escri- tos como aplicaciones Java para aprovechar su portabilidad, los ensambladores y simu- ladores pueden descargarse desde el sitio web mencionado. Trasparencias Todas las figuras y tablas de Principios de arquitectura de computadoras se ban inclui- do en una presentacién de diapositivas bajo Adobe Acrobat. La versi6n gratuita de Acro- bat Reader se puede obtener en www.adobe.com. Problemas de exdmenes y soluciones Los problemas tipo y sus soluciones han sido ampliamente probados en clase. Los pro- lemas son los suficientes en cantidad como para servir en exdmenes y evaluaciones, y para ser utilizados como problemas pricticos en clases de repaso a eriterio del instructor. Los problemas tipo (que han sido incluidos con sus soluciones) y las soluciones a los pro- blemas se encuentran a disposicién del instructor que adopte el texto. (Para acceder a es- te sector del sitio web, deberé ponerse en contacto con su representante de Prentice Hall. Los autores solo requieren que este material no sea colocado en algiin otro sitio web.) 2XXV1_PRINCIPIDS DE ARQUITECTURA DE COMPUTADORAS A pesar de los mejores esfuerzos de los autores, editores, revisores, evaluadores y tra- ductores, esie libro seguramente contiene errores. Antes de informar acerca de algiin error, sirvase verificar en www,pearsonediatino.convmurdocea para ver si ya ha sido catalogado. Los errores detectados deberin ser informados a pocabugs@cs.rutgers.edu. El asunto del mensaje de correo electrénico remitido a esa direccién deberd indicar el numero del capitulo en el que se ha encontrado el error. Créditos y agradecimientos Los autores no han trabajado solos durante la creacién de este libro, por lo que agradecen profundamente el apoyo de la gran cantidad de gente que ha influido en la preparacién de este texto y en el pensamiento de los autores en general. Los autores desean agradecer, primeramente, a tos editores Paul Becker, Thomas Robbins y Eric Frank, quienes tuvie- ron el panorama y la visidn para guiar este libro y sus materiales de apoyo a lo largo de todo el trayecto que Slev6 a su concrecién, Donald Chiarulli tuvo una influencia impor- tamte sobre una edici6n temprana de este libro, el que fue probado en clase en las univers sidades de Rutgers y de Pittsburgh, Saul Levy, Donald Smith, Vidyadhar Phalke, Ajay Bakre, Jinsong Huang y Srimat Chakradhar colaboraron con la evaluacién del material en Rutgers y aportaron parte del texto, problemas y algunas aclaraciones de alto valor. Brian Davison y Shridhar Venkatanarisam trabajaron sobre la primera versiGn de las so- luciones y aportaron muchos comentarios de gran ayuda. Irving Rabinowitz aport6 una buena cantidad de problemas. Larry Greenfield hizo su aporte desde el punto de vista de un estudiante nuevo en el tema, por lo que se debe tomar en cuenta su participacién en la organizaci6n del capitulo 2, También quieren destacar su reconocimiento a Blair Gabert Bizjak por haber provisto el esqueleto para la mayor parte del material referido a redes de rea local. Ann Yasuhara aporté el texto sobre las contribuciones de Alan Turing a la ciencia de la computacién. William Waite, de la Universidad de Cotorado, Boulder, pro- porcioné buena cuntidad de los ejemplos en lenguaje de maquina. Ann Root, de la Univer- sidad de Colorado, Boulder, realiz6 un trabajo estupendo en el desarrollo de Jas herrarnien- tas de simulacién que se encuentran disponibles en el sitio web. La poblacién estudiantil de las universidades de Rutgers y Colorado sirvié como amplio campo de ensayo de! material, por lo que los autores desean reconocer su paciencia y sus recomendaciones durante la elaboracién del material para el libro. También desean hacer puiblico su agradecimiento a los revisores, quienes colabora- ron ampliamente al sugerir cambios a los manuscritos, lo que incluye a Perry Alexander (University of Cincinnati), Thomas L. Casavant (University of lowa, Electrical and Computer Engineering Department), J. Kelly Flanagan (Brigham Young Universit Dept. of Computer Science), Shelly Dalton Goggin (University of Colorado, Denver), aguas _yorvn Nikrouz Faroughi (California State University Sacramento, Computer Science Dept.), Mark Jones (Virginia Tech., Department of Electrical and Computer Engineering), Thuy T. Le (Profesor Adjunto. Electrical Engineering Dept., San Jose State University, ¢ In- vestigador Senior, High Performance Computing Group, Fujitsu America, Inc.), Gary Lippman, (Profesor, California State University Hayward, Dept. of Mathematics and Computer Science), Walid Najjar (Colorado State University, Computer Science Dept.), William Hsu (San Francisco State University), Jyh-Charn (Steven) Liu (Computer Science Dept, Texas A&M University), David B. Wortman (University of Toronto, Dept. of Computer Science), Janusz Zalerwski (University of Central Florida, Orlando, Florida, Dept. of Electrical and Computer Engineering). ‘Yo, Miles J. Murdocca quiero expresar mi reconocimiento a mis padres Dolores y Nicolas Murdocca, mi hermana Marybeth y mi hermano Mark por su aliento. Mi espo- sa Ellen y mis hijas Alexandra y Nicole han sido una fuente interminable de aliento € inspiracién. No creo haber podido encontrar la cnergfa necesaria para acometer el es- fuerzo realizado sin todo el apoyo recibido de ellos. Yo, Vincent P. Heuring, deseo agradecer el apoyo de mi esposa Gretchen, quien fue excesivamente paciente y alentadora durante todo el proceso de escritura de este libro. Existen, seguramente, més personas ¢ instituciones que han colaborado con este li- bro, tanto en forma directa como indirecta, cuyos nombres pueden haber sido omitidos en forma accidental, A esa gente y a esas instituciones, Ios autores quieren ofrecer aqui su tdcito reconocimiento y sus disculpas por la omisién de los reconocimientos explici- tos que hubiesen corespondido, Miles J. Murdocca Rutgers University murdocca@es.rutgers.edu Vincent P. Heuring University of Colorado - Boulder heuring @colorado.edu Capitulo 1 Introduccion 1.1 Planteo general El concepto de arquitectura de computadoras, enfocado desde el punto de vista de un programador, se relaciona con el comportamiento funcional de un sistema de computa- cin. Este punto de vista incluye aspectos tales como el tamaiio de los diferentes tipos de datos (por ejemplo, el uso de 16 bits para la representaci6n de enteros) y los tipos de ope- faciones que se pueden realizar (como la suma, la resta y los llamados a subrutinas). La organizacién de computadoras se refiere a las relaciones estructurales que no son visi- bles para el programador, como las interfaces hacia los dispositivos periféricos, la fre- cuencia del reloj y la tecnologia utilizada en las memorias, Este texto trata tanto de la ar- quitectura como de la organizacién, haciendo uso del término “arquitectura” para referirse en forma amplia tanto a la arquitectura como a la organizacién de la computadora. En la arquitectura de computadoras suele emplearse el concepto de niveles. La idea basica es ja de la existencia de muchos niveles, 0 enfoques, desde los cuales considerar a la computadora, los que van desde el nivel superior, en el que el usuario ejecuta pro- gramas o utiliza la computadora, al nivel inferior, consistente en transistores y cables. Entre los niveles superior e inferior existe una cantidad de niveles intermedios. Antes de analizar estos niveles presentaremos una breve historia de la computaci6n, con el objeto de obtener un enfoque claro acerca de su evolucién. 1.2 Una historia breve La existencia de dispositivos mecdnicos destinados al control de operaciones complejas se conoce al menos desde el siglo xvi, cuando ya en las cajas de msica se utilizaban ci- Jindros rotativos con clavijas en una forma similar a las de la actuatidad. Las méquinas para In realizacién de célculos, como ejemplo de elementos que no solo repiten una me- lodia predeterminada, aparecieron en el siglo siguiente, Blas Pascal (1623-1662) desarroll6 una calculadora mecénica con el objeto de cola- borar en el cdlculo de impuestos que realizaba su padre. La calculadora Pascalina, desa- 2. PRunciPios DE ARQUITECTURA DE COMPUTADORAS rrollada por Pascal, consta de ocho diales que se conectan a un tambor (véase la figura 1.1), vinculados entre ellos en una forma innovadora que provoca que uno de los diales se desplace en una posicién cuando se produce un arrastre desde un dial de menor posicién. Se coloca una ventana por encima del dial para permitir la observacién de la posici6n, en forma similar a Ia del odémetro de un auto, con la diferencia de que los diales se encuen- tran colocados horizontalmente, a la manera det dial de un teléfono rotativo. Figura 1.1 ¢ La maquina calculadara de Pascal, (Reproducida con autorizacién del Departamento de Ciencias dela Computacion, Universidad ce Manchester.) Adin existen algunas de las maquinas sumadoras de Pascal, de las que comenz6 a cons- truir en 1642. No obstante, recién alrededor del aito 1800 hubo quien agrupara los con- ceptos de control y cilculo mecénicos en una Gnica miquina que pudiese reconocerse hoy como formada por las partes basicas integrantes de una computadora. Ese alguien fue Charles Babbage. ‘A Charles Babbage (1791-1871) se lo menciona a veces como “el abuelo” de la com- putadora, mas que como “el padre” de la misma, dado que nunca construy6 una versién préctica de las maquinas que disefi6. Babbage vivid en Inglaterra en una época en la que las tablas mateméticas eran de uso comin en la navegacién y en ol trabajo cientifico. Esas tablas se computaban manualmente y, por consiguiente, contenfan gran nimero de errores, Frustrado por las imprecisiones, Bubbage se decidié a crear una méquina que re- solviera célculos a través del posicionamiento de engranajes y de su movimiento. La ma- quina que disefié permitia incluso la generacién de una plancha para impresién, lo que eliminaba los errores que podrtan producirse debido a la intervencién del tipégrafo. Las maquinas de Babbage poseian medios para la lectura de los datos de entrada, el al- ‘macenamiento de los datos, 1a produccién de los datos de salida y el control automatico de la operaci6n de la méquina. Estas son funciones bésicas que se encuentran en précti- ‘camente cualquier computadora moderna. Babbage creé un pequefio prototipo de su ma- quina diferencial, la que evaltia potinomios utilizando el método de las diferencias fini- tas. El éxito del concepto de la méquina diferencial le permitié lograr apoyo gubernamental para la maquina analitiea, mucho més grande y sofisticada, la que poseia Gapituo 1+ mroouccrin 3 ‘mecanismos para realizar bifurcaciones (toma de decisiones) y medios para programar- la empleando tarjetas perforadas, en forma similar a lo que se conoce come tejide por patrones Jacquard. Babbage discié la méquina analitica aunque nunca la construy6, dado que las toleran- ius mecinicas requeridas por su disefio no podian logrurse con la tecnologia de esa épo- ca. En 1991, el Museo de Ciencias de Londres construyé una versién de la méquina dife- rencial de Babbage, la que ain hoy puede ser observada. Pas6 més de un siglo, hasta ef comienzo de la Segunda Guerra Mundial, antes de que surgicra un nuevo avance importante en la computacién. En Inglaterra, los submarinos alemanes U-boat provocaban grandes daiios en los barcos aliados. Los U-boats recibian comunicaciones desde sus bases ubicadas en Alemania, para las que se utilizaban cédi- g0s enctiptados implementados por una maquina desarrollada por Siemens AG y cono- cida como ENIGMA. EI proceso de encriptado de la informacién ya se conocia desde mucho tiempo atrés, y hasta el presidente estadounidense Thomas Jefferson (1743-1826) habia desarrollado un antecesor de ENIGMA, sin haber Ilegado a construir la maquina, El proceso de deco- dificar la informacién encriprada era una tarea mucho més pesada, Este fue el problema que orienté los esfuerzos de Alan Turing (1912-1954) y de otros cientificos ingleses ha- cia la creacién de sistemas para descifrar cédigos. Durante la Segunda Guerra Mundial, Turing era el criptégrafo més importante de Inglaterra, siendo conocido como quien cam- bi6 el concepto de la criptografia, que pasé de ser tema para quienes se ocupaban de des- cifrar idiomas antiguos a ser un tema de y para matemticos. De Bletchley Park, Inglaterra, lugar de trabajo de Turing, surgié Colossus, una exito- sa méquina decodificadora. Su funcionamiento se basaba en la alimentacién de la maqui- na a través de una cinta de papel, cuyos datos se procesaban en valvulas de vacio, reali- zando los cflculos entre esas vélvulas de vacio y una segunda cinta de papel con la que se alimentaba a la m4quina. La programaci6n se efectuaba a través de paneles de cone- xi6n, Se desconoce la participacién de Turing en las distintas versiones de la mquina de- bido al secreto que rodeaba al proyecto, pero algunos aspectos de su vida y obra se pu- dieron ver en Ia obra Breaking the Code, que fuera puesta en escena en Londres y Nueva York sobre finales de la década de 1980, Alrededor de la misma época en que Turing desarrollaba sus esfuerzos, J. Presper Ec- kert y John Mauchly comenzaban a crear una maquina que pudiera usarse para el céleu- lo de tablas de trayectorias balisticas, para la Marina de los Estados Unidos. Et resultado de los esfuerzos de Eckert y Mauchly fue ENIAC (Electronic Numerical integrator and Computer). ENIAC estaba constituida por 18.000 valvulas de vaefo, tas que conforma- ban la seccién de célculo de la maquina. La programacién y el ingreso de los datos se rea- lizaban a través de la fijacién de elementos conmutadores (Ilaves) y del intercambio de cables. No existia el concepto de programa almacenado, ni tampoco una unidad de me- ‘moria central; no obstante, estas limitaciones no eran importantes dado que todo lo que ENIAC debfa hacer era e! cilculo de trayectorias balisticas. A pesar de no haber podido

You might also like