Вы находитесь на странице: 1из 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 4_PRINCIPIOS DE AROUTECTURA DE COMPUTADORAS. entrar en servicio hasta 1946, tuego del final de la guerra, fue considerada un modelo exi- toso y utilizada durante nueve afios. Luego del éxito de ENIAC, Eckert y Mauchly, que trabajaban en 1a Escuela Moore en la Universidad de Pennsylvania, se vincularon con John von Neumann (1903-1957), quien de- sarrollaba actividades en el Instituto de Estudios Avanzados de Princeton. En forma conjun- ta trabajaron sobre el desarrollo de una computadora de programa almacenado a la que Ila- maron EDVAC, Debido al surgimiento de un conflicto, los grupos de Pennsylvania y Princeton se separaron. El concepto de la computadora con programa almacenado, no obs- tante, prosper6; el resultado fue un modelo funcional de computadora de programa almace- nado, conocido como EDSAC, construido por Maurice Wilkes, de la Universidad de Cam- bridge, en 1947, . 1.3 El modelo von Neumann Las computadoras digitales convencionales presentan un aspecto comiin que se atribuye avon Neumann, aunque los historiadores coinciden en que el disefio en cuestién fue obra de todo el equipo. Ei modelo von Neumann consta de cinco componentes principales, tal como lo ilustra la figura 1.2. La unidad de entrada provee las instrucciones y los da- tos requeridos por el sistema, los que se almacenan en la unidad de memoria. Las ins- trucciones y los datos se procesan en la unidad aritmético-Iégien (ALU) bajo la direc- ci6n de la unidad de control. Los resultados obtenidos se envian a la unidad de salida. El conjunto constituido por las unidades aritmético-légica y de control se designa habi- tualmente bajo el nombre de unidad central de proceso (CPU). La mayoria de las com- putadoras comerciales pueden descomponerse en estas cinco unidades. Unidad de memoria { Unidad Unidad Unidas heft} aitmatica- de entrada vogice (ALD Unidad de salida ‘Unidad de control Figura 1.2 Una computadora digital segin el mode'o von Neumann. 12s flechas gruesas cepresentan ‘ulas de datos. Las flechas mds finas representan rulas de control, captruco 1 + irropucciim § El programa almacenado es el aspecto més importante del modelo von Neumann, Los programas se almacenan en la memoria de la computadora junto con los datos a procesar. Si bien en Ia actualidad podemos plantear esto como un hecho concreto, antes del desa- rrolo de las computadoras de programa almacenado, los programas se almacenaban en un medio extemno, tales como ios tableros de clavijas ~anteriormente mencionados-, cin- tas o tarjetas perforadas. En la computadora de programa almacenado, el programa pue- de manipularse como si se tratara de datos, Este concepto da origen a los compiladores y sistemas operativos, y es Ia base de la gran versatitidad de las computadoras modemas. 1.4 El modelo de interconexidn a través de bus Si bien ef modelo yon Neumann prevalece en la estructura de las actuales computadoras, el mismo ha sido modernizado. La figura 1.3 muestra e! modelo de una computadora que utiliza e) sistema de interconexién a través de lo que se denomina bus del sistema. El modelo considera que el sistema de computacidn est4 constituido por tres subconjuntos, Ja CPU, la memoria y la entrads-salida (E/S). Este refinamiento del modelo von Neu- ‘mann combina la ALU y 1a unidad de control en un solo bloque funcional, 1a CPU. Las unidades de entrada y de salida se combinan, asimismo, en una unica unidad de entrada- salida. ‘Lo més importante de este modelo es que realiza las comunicaciones entre los com- ponentes por medio de un camino compartide conocido como bus del sistema*, consti tuido a su vez por un bus de datos (que trasporta la informacién que se est trasmitien- do), un bus de direcciones (que determina hacia donde esta siendo enviada dicha informacién) y un bus de control (que describe aspectos de Ia forma en que se esté Ile- vando a cabo la mencionada trasferencia de informacién). Existe también un bus de ali- mentaci6n, que lleva energia eléctrica a los componentes. Este ultimo no figura en los esquemas pero se sobreentiende su presencia. Algunas arquitecturas pueden tener, ade- més de los anteriores, un bus de entrada-salida, Fisicamente, los buses estén constituidos por conjuntos de cables agrupados de acuer- do con su funcién. Un bus de datos de 32 bits contiene 32 cables individuales, cada uno de los cuales trasporta un bit de datos (distinguiéndolo de la informacién de direcciones o contol). En este sentido, el bus del sistema es, en realidad, un grupo de buses indivi- duales clasificados de acuerdo con su funcién, El bus de datos trasporta datos entre los componentes del sisteria. Algunos sistemas tienen buses de datos separados para el ingreso o la salida de informacién hacia o desde * M. de T: Se ha preferido mantener la denominaci6n original de bus para distinguir este conjunto de lineas ‘léctricas. a pasar del posible reemplazo por términos como barra, mazo 9 similares, utlizados para definir ‘conjuntos de cables, debido a que dicha término ya es de uso comiin en el ambiente de la computacién, la CPU, en euyo caso existirén un bus de entrada de datos y otro bus de salida de da- tos. Pero, més a menudo, un Gnico bus de datos cumple con la funcién de transportar los datos en una u otra direccién, aunque nunca en ambas direcciones en forma simulténea. | madelo de un sistema de computacién basado en un bus. (Apartado por Donald Chiaruli, Lnivarsidad de Pitsburg.] Figura 1.: Siel bus tiene ser compantido por diferentes elementos que se comunican entre si, los ele mentos deben tener identidades distintivas: direcciones. En algunas computudoras, todas las direcciones se suponen direcciones de memoria sin importar que formen parte de la memoria del sistema o que, en realidad, sean dispositivos de entrada-salida, mientras que en otras maquinas los dispositivos de entrada-salida tienen direcciones de entrada-salida separadas. (El tema del direccionamiento de entrada-salida se trata con mas detalle en el capitulo 8, “Entradas y salidas”.) La locacién o direceién de memoria identifica una celda de memoria en la que se al- macena informaci6n, tal como se utiliza la direcciGn postal para identificar el lugar en que un individuo recibe 0 envia comespondencia, Durante una operacién de lectura o escritura de memoria, el bus de dirceciones contiene la direecién de la celda de memoria en fa que debe leerse 0 escribirse el dato. Debe notarse que las expresiones “lectura” y “escritura” se plantean con respecto a la CPU: ta CPU lee datos desde la memoria y los escribe en la me- moria. Si se requiere leer un dato desde ta memoria, el bus de datos contend el valor lef- do desde la celda de memoria seleccionada. Si la informaci6n se escribiera en memoria, ol bus de datos contendria el valor del dato que se pretende almacenar en la memoria. El bus de control es algo bastante mas complejo, por lo que el andlisis de este bus que- dar4 diferido para capitulos posteriores. Por el momento, el bus de contro! puede consi- derarse como el elemento que permite Ia coordinacién del acceso a los buses de datos y de direcciones, y la orientacién de datos hacia componentes espectficos 1.5 Niveles de maquina Tal como sucede con cualquier sistema complejo, la computadora puede verse desde di- ferentes perspectivas, o niveles, que van desde el nivel superior correspondiente al usua- rio, hasta el nivel inferior, el de los transistores, Cada uno de estos distintos niveles repre- senta una abstraccién de la computadora, Probablemente, una de las razones del enorme capituto 1 + wrronuceris 7 Exito de la computadora digital es el alto grado de independencia o separaci6n existente entre los niveles de abstracci6n. Este planteo puede apreciarse facilmente: un usuario que necesita utilizar un programa procesador de texto requiere conocer muy poco o nada acerca de la programacién de la computadora que esté utilizando, En forma similar, un programador no necesita preocuparse por la estructura de los circuitos légicos que cons- tituyen la computadora. La separacién de estos niveles ha sido explotada en forma muy interesante en el desarrollo de computadoras compatibles “hacia arriba” 1.5.1 Compatibilidad “hacia arriba” La invenciGn del transistor trajo come consecuencia un ripido desarrollo de la electréni- cade computadoras, y juntamente con este desarrollo surgi6 el problema de la compati- bilidad. Los usuarios de computadoras pretendian hacer uso y aprovechar las ventajas de las méquinas mas modernas y mAs rpidas, pero cada modelo nuevo de computadora pre- sentaba una arquitectura diferente, por lo que los viejos programas no podian funcionar sobre los nuevos circuitos. El problema de la compatibilidad entre hardware y software se agudiz6 tanto que los usuarios muy a menudo dilataban la compra de m&quinas nue- vas debido al costo que significaba reescribir los programas que debfan funcionar sobre ‘estos equipos, Cuando el usuario por fin adquirfa una computadora nueva, esta podfa per- manecer instalada e indtilmente inactiva por meses, mientras se pracedfa a la reconver- sién de los conjuntos de datos y programas para adecuartos a los nuevos sistemas. En una apuesta exitosa que enfrent6 « 1a compatibilidad con el rendimiento, IBM fue pionera en el concepto de la “familia de méquinas”, aplicado en su serie 360, Las computa doras més poderosas de la misma familia podfan ejecutar los programas escritos para las méquinas menos potentes, sin modificaciones en dichos programas (compatibilidad “ha- cia arriba”). Este tipo de compatibilidad permitié que el usuario puediera avanzar hacia una maquina més rdpida y con mayores prestaciones sin tener que reescribir los progra- mas que funcionaban en las méquinas menos poderosas. 1.5.2 Los niveles La figura 1.4 muestra siete niveles dentro de la computadora, comenzando desde el nivel del usuario y descendiendo hasta el nivel de Jos transistores. A medida que se desciende desde el nivel superior, estos niveles se toman menos “abstracts” y comienza a apare- cer, cada vez miés, la estructura interna de la computadora, En los préximos puntos ana- lizaremos estos niveles. El nivel del usuario o del programa de aplicacion Este es el nivel de la computadora con el que nos encontramos mas familiarizados. En es- te nivel, el usuario interactia con la computadora por medio de la ejecucién de progra- ‘mas tales como procesadores de texto, planillas de céleulo o juegos. Aqui, el usuario ve 8 PRINCIPIOS DE AROUITECTURA DE GOMPUTADORAS ala computadora a través de los programas que en ella se ejecutan, y es poco o nada vi- sible la estructura intema correspondiente a su nivel inferior. [Nivel superior [Nivel del usuario: programas de aplicacisn Lenguajes de alto nivel Lenguaje absolutoiCédigo de maquina ‘Control microprogramado/eableado [Unidades funcionates (memoria, ALU. ee] Cireuitos légicos Nivel inferior Transistores y cables Figura 1.4 Niveles de maa en la jerarquia de un sistema, Et nivel del lenguaje de alto nivel ‘Cualquiera que haya programado una computadora en lenguajes de alto nivel, como C, Pascal, Fortran Java, ha interactuado con la computadora en este nivel. Aqui, el progra- mador solo ve el lenguaje y no ve ninguno de los detalles de los niveles inferiores de la maquina, En este nivel, el programador ve los tipos de datos y las instrucciones del len- guaje de alto nivel pero no necesita conocimiento alguno acerca de la forma en que Ia maquina configura realmente estos tipos de datos. Fs funcién del compilador el conver- tir los tipos de datos y las instrucciones desde el lenguaje de alto nivet hacia los circuitos de la computadora, Los programas escritos en lenguaje de alto nivel pueden ser recompi- lados para distintos tipos de maquina, las que (al menos es fo que se espera) funcionaran de la misma manera y entregarén los mismos resultados, independientemente de la m4- quina para la cual fueron compilados y en Ia cual se ejecutaron, Puede decirse que un pro- grama es compatible can distintos tipos de méquina si esté escrito en un lenguaje de alto nivel; esta clase de compatibilidad se conoce como compatibilidad de eédigo fuente. Ei nivel del ienguaje de maquina Tal como se ha mencionado previamente, el nivel de tos lenguajes de alto nivel tiene muy poco que ver con la maquina en Ia cual dicho lenguaje de alto nivel est siendo traducido. El compilador convierte el cédigo fuente en las verdaderas instrucciones de la méquina, a las que se suete denominar lenguaje de maquina o cédigo de maquina. Los lenguajes de alto nive! sirven al programador dado que le proveen un conjunto cierto de tipos de datos y capiTuLa 1 + wraopucciGn 9 construcciones de lenguaje, supuestamente bien pensado. Los lenguajes de maquina miran “hacia abajo” en la jerarquia, y asf alimentan las necesidades de los aspectos de bajo nivel del disefio de Ia méquina, Como resultado, los lenguajes de maquina deben tratar con cues- tiones circuitales tales como la estructura de los registros y la trasferencia de datos entre los registros. De hecho, muchas instrucciones pueden describirse en térmings de las trasferen- ccias efectuadas entre registros. El conjunto de instrucciones del lengvaje de maquina para tuna computadora dada suele denominarse juego de instrucciones de esa méquina, Por supuesto, el codigo real que utiliza Ia méquina no es més que un conjunto de ceros Y unos, a los que suele denominarse eédigo binario o lenguaje de méquina, Como puede imaginarse, la programacién en ceros y unos ¢s un proceso tedioso y factible de generar errores. Como consecuencia, uno de los primeros programas escritos para computadora fue el llamado assenrbler, que traduce esquemas nemotécnicos de un lenguaje comtin, tales co- mo MOVE Data, Acc, a sus comespondientes expresiones formadas por ceros y unos en el lenguaje de méquina, Este lenguaje, cuyas construcciones presentan una relacién uno a uno con el lenguaje de maquina, se conoce como lenguaje ensamblador (assembler). Como resultado de ta separacién de niveles, es posible tener mAquinas que difieren en la implementaci6n del nivel inferior pero que presentan el mismo conjunto de instrucciones 0 algtin subconjunto o superconjunto de un juego de instrucciones dado. Este planteo permitié que IBM disefiara una linea de productos como la serie IBM 360, que garantiza la compati- bilidad hacia arriba entre los eédigos de maquina. Un cédigo de méquina que funcione sobre una 360 Modelo 35 podrd funcionay, sin modificaciones, en una IBM Modelo $0, si el usua- rio requiriese actualizar su equipamiento hacia la méquina mas poderosa, Este tipo de com- patibilidad se conoce como “compatibilidad binaria”, dado que el cédigo binario funciona, sin modificaciones, en los distintos miembros de la favnitia, Esta particularidad fue, en gran parte, responsable del enorme éxito de Ia serie de computadoras [BM 360. Intel Corporation es otro ejemplo de compatibilidad binaria entre los integrantes de sus famitias. En este caso, los c6digos binarios escritos para el miembro inicial de una familia, ‘como et 8086, funcionarin intactas en todos los integrantes posteriores, como el 80186, el 80286, et 80386, e1 80486, y también en el mis modemo de ta familia, el procesador Pen- tium. Por supuesto, este enfoque no toma en cuenta ta existencia de otras computadoras que ofrecen a sus usuarios distintos juegos de instrucciones, lo que hace dificil el transporte del paquete de programas ya instalado en una familia de computadoras hacia otra. El nivel del control Las trasferencias entre registros -mencionadas en pérrafos anteriores~ se llevan a cabo desde la unidad de control, a través de sefiales de control que transficren la informacion entre un registro y otro, incluyendo, probabtemente, alguna Idgica circuital que pueda ‘realizar algun tipo de transformaci6n de la misma. La unidad de control interpreta las ins- trucciones de maquina una a una, lo que provoca la ocurrencia de las trasferencias entre registros 0 de alguna otra accién. 10_pruncipvos oF AROU:TECTURA DE COMPATADORAS La forma en que esto se lleva a cabo no debe ser motivo de preocupacién para el pro- gramador en lenguaje ensamblador. Los distintos integrantes de la familia de procesado- res Intel 80X86 presentan la misma conducta ante un programador en lenguaje ensam- blador, independientemente de cu‘il sea el procesador analizado. Esto se debe a que cada integrante que se incorpora a la familia se disefia para que sea capaz de ¢jecutar las ins- tnucciones originales de! 8086, adems de cualquier instrueci6n nueva que hubiese sido implementada para ese integrante de la familia en particular. Como se indica en la figura 1.4, hay diferentes formas de implementar la unidad de control. Probablemente, la forma més popular en ta actuatidad sea la de “cablear” la uni- dad de control, Esto significa que las sefiales de control que efectéan las transferencias entre registros estin generadas a partir de un bloque de componentes légicos digitales. Las unidades de control cableadas tienen como ventajas la velocidad y la cantidad de componentes, pero hasta no hace mucho eran extremadamente dificiles de diseftar y de modificar. (Estas técnicas se analizargn en detalle en el capitulo 6.) Una aproximacién algo més lenta pero més sencilla consiste en implementa las instruc- ciones como mieroprograma. Un microprograma es, en realidad, un pequefio programa es- crito en un lenguaje de nivel menor atin, e implementado en los circuitos de la maquina, cu- ya funcisn es la de interpretar las instrucciones del lenguaje de maquina. Fste microprograma suele conocerse como firmware debido aque incluye tanto hardware como software. El firm- ware se ejecuta a través de un microcontrolador, él cual ejecuta las microinstrucciones rea- les. (La técnica de microprogramacién también se explora en el capitulo 6.) El nivel de las unidades funcionales Las transferencias de registros y las demas operaciones implementadas por la unidad de control mueven informacién desde y hacia “unidades funcionales”, asf lamadas debido a que realizan cierta funcién importante para la operaci6n de ta computadora. Entre las unidades funcionales pueden incluirse los registros intemos de la CPU, la ALU y la me- moria principal de la computadora. Circuitos l6gicos, transistores y cables Los niveles mds bajos en los que puede observasse algiin resabio del funcionamiento de Jos niveles superiores de la computadora cortesponden a los niveles de los eircuitos l6gi- cos y de los transistores, Esto es asi dade que son los circuitos l6gicos los que se utilizan para construir las unidades funcionales, y porque son los transistores los que se usan para construir los circuitos légicos. Los cireuitos légicos implementan las operaciones légicas de mds bajo nivel, de las cuales depende el funcionamiento de la computadora. En el ulti- mo de los niveles, una computadora est formada por componentes eléctricos tales como transistores y cables, los que constituyen dichos circuitos I6gicos; pero, a este nivel, el fun- cionamiento de ia computadora se dispersa en términos de tensiones, corrientes, tiempos, de propagacién de las seftales, efectos cudnticos y otros temas de bajo nivel. tapiruio 1 + urrrooucetin 11 Interacciones entre niveles Las distinciones dentro de un nivel dado y entre niveles suelen confundirse en forma muy frecuente. Por ejemplo, una arquitectura nueva de computadora puede contener instrucciones de punto flotante en su implementacién més completa, pero en una imple- mentacién minima puede tener solo hardware suficiente como para ejecutar instruccio- nes con variables enteras. Las instrucciones de punto flotante se eapturan! antes de la ejecucién y se reemplazan por una secuencia de instrucciones de lenguaje de maquina que imitan o emulan esas instrucciones de punto flotante wtilizando las instrucciones de formato entero existentes. Este es et caso de aquellos microprocesadores que utilizan copracesadores de punto flotante opcionales. Los que no cuentan con el coprocesador de punto flotante emulan las instrucciones de punto flotante por medio de una serie de rutinas de punto flotante que se encuentran implementadas en el lenguaje de maquina del microprocesador y almacenadas en un circuito integrado de memoria ROM, que identifica a una memoria solo de lectura. Los puntos de vista de los lenguajes absoluto y de alto nivel son los mismos para ambas implementaciones, con excepcién de la velo- cidad de ejecucién. Es posible llevar esta emulacién al extremo de emular el juego completo de instruc- ciones de una computadora sobre otra computadora distinta. Los programas que cumnplen con esta funcién se conacen como emuladores y fueron utilizados por Apple Computer para mantener la compatibilidad del e6digo binario cuando Apple comenz6 a emplear los circuitos integrados PowerPC de Motorola en lugar de los circuitos integrados 68000, cu- yo juego de instrucciones es completamente distinto. El nivel de! lenguaje de alto nivel y los niveles del firmivare y de las unidades funcio- nales pueden estar tan entrelazados que resulte dificil identificar qué operacién se esté produciendo en qué nivel. El valor de la divisién de la arquitectura de computadoras en un conjunto de niveles jerécquicos no es tanto el de la clasificacién, que segtin acabamos de vera veces puede ser dificultosa, sino, simplemente, el de permitir ciertos enfoques en el andlisis a llevar a cabo en los capftulos que siguen. La perspectiva del programador. La arquitectura del juego de instrucciones Segiin se ha descrito en el andlisis de niveles previo, el programador que programa en len- ‘guaje de méquina tiene interés en el lenguaje y en las unidades funcionales de la maquina. Este conjunto de elementos, formado por el juego de instrucciones y las unidades funcio- nales, se conoce como arquitectura de programacién (ISA, instruction set architecture) de la computadora. 1.£l concepto se analiza en el capitulo 6. 12_PRINGIPIOS DE ARQUITECTURA DE COMPUTADORAS: {a perspectiva del arquitecto de computadoras El arquitecto de computadoras, por otra parte, observa al sistema desde todos sus niveles. El arquitecto que enfoca el diseito de una computadora estd sujeto invariablemente a requeri- mientos de rendimiento y restricciones de costos. El rendimiento puede estar especificado a partir de la velocidad de ejecucién de los programas, de fa capacidad de almacenamiento de la méquina o de una variedad de pardmetros diferentes. El costo puede estar planteado en términos monetarios, o de peso y tamaiio, o de consumo de potencia, El disefto propuesto por el arquitecto de computadoras debe intentar cumplir con las perspectivas especificadas parael rendimiento, pero sin salirse de los limites de costos establecidos, lo que normalmen- te lleva a soluciones de compromiso entre y a través de los niveles de la maquina, 1.6 Un sistema de computacidn tipico Las computadoras madernas han progresado desde los grandes monstruos de las décadas de 1950 y 1960 hasta llegar a las computadoras, mucho més pequeiias y més poderosas, que nos rodean en Ia actualidad, Aun con todos los grandes avances de la tecnologia de computadoras ocurridos en las ultimas décadas, las cinco unidades bésicas del modelo von Neumann siguen siendo visibles en las computadoras modemas. La figura 1.5 muestra la configuracién tipica de una computadora de escritorio, cuya unidad de entrada consiste en un teclado, a través del cual el usuario ingresa datos y co- mandos. Un monitor de video constituye la unidad de salida, en la que se presenta !a in- formacién en forma visual. La unidad de control y la ALU se agrupan dentro de un mi- croprocesador tinico que funciona como CPU del sistema. La unicad de memoria consta de un conjunto de circuitos individuales de memoria, asi como de unidades de disco ri- gido, de disquete y de CD-ROM. Una observaci6n del interior de la méquina permite ver que su corazén se encuentra contenido en una nica placa de circuit impreso, conocida cominmente como placa madre (motherboard), similar ala que se muestra en la figura 1.6. La placa madre con- tiene circuitos integrados, conectores para insertar placas de expansi6n, y cables que it terconectan los circuitos integrados y los conectores de expansi6n. En la figura se desta- can las secciones de entrada, salida, memoria, control y unidad aritmético-Iégica. (En capitulos posteriores se desarrollan los temas asociados.) 1.7 Organizacién de ta obra El funcionamiento interno de las computadoras se desarrolla en los capitulos siguientes. El capitulo 2 analiza la representacién de los datos, lo que provee el fundamento para to- dos los capitulos que siguen. El capitulo 3 analiza los métodos relacionados con 1a cavituto 1 + inTaopuccién 13 Unidad de disquete- Unidad de CD-ROM —— isco rigido. ‘Monitor de video Zécalos para conexidn de placas CPU (mictoprocesador debajo del disipador) Figura 1.5 + Un sistema de computacion de escritorio, implementacién del célculo aritmético. Los capitulos 4 y 5 analizan la arquitectura de programacién, lo que serviré como base para entender la interaccién entre tos compo- nentes de un sistema de computaci6n, El capitulo 6 vincula los contenidos anteriores pa- ra encarar el disefio y el anflisis de una unidad de control para la arquitectura del juego de instrucciones. in el capitulo 7 se cubre la organizacién de las unidades de memoria, asi como las técnicas de administracién de la memoria. En el capitulo 8, se tratan los te- ‘mas referidos a entrada, salida y comunicaciones. El capitulo 9 analiza aspectos avanza- dos de los sistemas de CPU tnica (que podrian tener més de wna unidad de procesamien- to). En el capftulo 10 se consideran aspectos referidos a sistemas de miiltiples CPU, tales como las llamadas arquitecturas paralelo y distribuida y las arquitecturas de redes, Por Liltimo, en los apéndices A y B se echa una mirada al disefio de circuitos tégicos digita- les, bloques fundamentales para los componentes basicos de la computadora. 14 _PRINCIPIDS DE ARQUITECTURA DE COMPUTABORAS one ne Be Figura 1.6 © Una placa made para procesador Pentium II. Fuente: TYAN Computer, http:/tyan.com.) 1.8 Estudio de un caso: zQué le ocurrié alas supercomputadoras? LiWorta de fos autores: El aporte que sigue proviene de la pagina lutp:/wwwperatogos com DeadSuper, creada por Kevin D. Kissell, kevink @acm.org, El sitio web creado por Kissell detaila docenas de proyectos de supercomputadoras que fueron quedando por el camino. (Véase la figura 1.7 2 para tener una visi6n histdrica de las primeras tecnologias de supercom- putadoras.) Una de las razones principales que han levado a las supercomputadoras a su ca- si extincién es el hecho de que las computadoras comunes de hoy en dia logran una parte sig- nificativa de la potencia de las supercomputadoras a un precio accesible para el individuo coméin, La relaci6n entre el precio de una computadora de escritorio y su rendimiento es muy favorable debido a los bajos costos logrados a través de las ventas en el mercado masivo. Da- do que las supercomputadoras no tienen acceso a ese mercado masivo, mantienen una rela- cin muy alta entre el precio y el rendimiento. El trabajo que sigue, escrito por Kissell y exteafdo de un anticulo publicado en Eleciri- cal Engineering Times, destaca las enormes inversiones que se realizan en el desarrollo de os microprocesadores de uso diario, lo que ayuda a mantener fa mencionada relacién fa- vorable entre precio y rendimiento en las computadoras de escritoria de bajo costo.) 2. Figura incluida por cortesta de la Universidad de Manchester. La historia de Manchaster Mark Ise cetalla en httpzevew.computers0.or9. Figura 1.7 ¢ La computadora Manchester University Mark | puesta en operaciOn el 21 de junio de 1948. (No debe confundirse con Harvard Mark 1, donada a la Universidad de Harvard por IBM, en agosto de 1944.) (Reproducido con autorizaciér del Departamento de Ciencias de la Computacion de la Universidad de Manchester) El final de una época dorada? Desde la construcci6n de las primeras computadoras programadas hasta mediados de la dé- cada de 1990, siempre hubo lugar en la industria de la computacién para cualquiera que ti viera alguna idea brillant, aun cuando fuese desafiante, acerca de c6mo desarroilar una maquina mas poderosa, La computacién se convirtié en estratégica durante In Segunda Guerra Mundial, y se mantuvo en tal situaciGn durante la época de ta Guerra Fria que s guié a aquella, La computacién de alto rendimiento es esencial para cualquier programa modemo de armamento nuclear, por lo que la carrera de la tecnologta de computadoras fue una consecuencia l6gica de la carrera armamentista. Si bien las computadoras poderosas son de mucho valor en una gran cantidad de sectores industriales, como las industrias del petréleo, quimica, médica, aerondutica, automotriz y de ingenieria civil, sera muy diftcil desmentir el papel de los gobiernos, y en particular el de tos laboratorios nacionales del go- biemo estadounidense, como catalizadores ¢ incubadores de las innovaciones en las tecno- logias de computadoras, La industria privada puede llegar a comprar mayor mimero de mé- quinas pero muy rara vez asumiré el riesgo de comprar una maquina cuyo mimero de serie sea de un solo digito. La desaparicién del comunismo soviético y el final de la Guerra Frfa provocaron, como consecuencia, un mundo en general més seguro y mis préspero, pero eliminaron la razén de ser de muchos mercaderes del rendimiento a cualquier precio, Junto con estos cambios geopoliticos aparecieron algunos hechos tecnolégicos y ‘econémicos que representaron problemas para los productores especializados en com- putadoras de alta tecnologia. La aparicién de los microprocesadores en lu década de 1970 planteé como punto principal la posibilidad de colocar una computadora de pro- grama almacenado en wn nico pedazo de silicio. Las presiones de la competencia, y el deseo de generar ventas mediamte la obsolescencia del producto del aio anterior, dieron comp resultado la duplicacién de la potencia de computucién de los microprocesadores cada 18 meses, segiin el enunciado de la conocida “ley de Moore”. En su camino, los di- 16 PawictPios DE AROUITECTURA DE COMPUTADORAS sefiadores de microprocesadores tomaron prestadas casi todas las argucias y téenicas uti- lizadas en el pasado por los disefiadores de supercomputadoras y mainframes: niveles jerdrquicos de almacenamiento, segmentaciones, unidades funcionales maltiples, mul- liprocesamiento, ejecucién desordenada, prediccién de saltos, procesamiento SIMD (Single Instruction, Multiple Dara), ejecuciGn especulativa. A mediados de los afios no- venta, las ideas de tos investigadores pasaban directamente de la etapa de simulaci6n a a implementacién de tos microprocesadores destinados a las computadoras de uso ma- ivo. No obstanie, debe notarse que la mayor parte de los avances logrados en el rendi- miento de los microprocesadores, en la década pasada, no llegé desde estas técnicas so- fisticadas de la arquitectura de computadoras, sino, simplemente, desde el aumento de las velocidades del reloj de los procesadores y de los crecimientos cuantitativos en los recursos de los procesadores derivados de los avances de la tecnologfa semiconductora, Alrededor de 1998, Ia CPU de la mejor computadora personal basada en Windows fun- cionaba ya a una frecuencia de reloj mayor que la de la supercomputadora mas impor- tante de la linea Cray Research en 1994. No puede sorprender entonces que las politicas de los laboratorios nacionales de los Estados Unidos se hayan desplazado desde la adquisicién de sistemas desarrollados des- de su base para tomar la forma de supercomputadoras hacia el despliegue de grandes en- sambles de sistemas producidos en masa y basados en microprocesadores, con el proyec- to ASCI como emblema de esta actividad. A la fecha de este trabajo, queda por ver si tales aglomeraciones resultarén ser lo suficientemente estables y apropiadas para el tra- bajo de produccién, pero los resultados preliminares han sido, al menos, satisfactorios. Los dias felices de las supercomputadoras basadas en tecnologias exdticas y en arquitec~ twras innovadoras bien pueden haber Hegado a su fin. Inyersién o muerte: La vida de Intel en la orilla? por Roy Wilson y Brian Fuller Santa Clara, California — Con alrededor de seiscientos millones de délares a ser utiliza- dos como inversién durante este afio, Intel Corp. se ha unido a las grandes ligas de las ‘empresas de capital empresario. Pero el nico imperativo que leva al gigunte de los mi- croprocesadores a invertir le da una influencia desproporcionada aun con respecto a esa enorme cifra, Para Intel, las inversiones de capital no son solo una fuente de ingresos; son una herramienta vital en la lucha por sobrevivi La supervivencia pareceria ser una preocupacién poco importante para la empresa de semiconductores més grande del mundo, Pero Intel, en un camino que le es totalmente propio, vive colgado en el equilibrio. Para cada nueva generaciGn de procesadores, Intel debe hacer enormes inversiones en el desarrollo de procesos, en edificios y en fabricas, una inversiGn demasiado gigante como para perderla. 3. Derechos reservados ©1998 CMP Media Inc. reproducido con autorizacion de Electronic Engineering Times. capiruio 1 + wrRoouccién_ 17 Gordon Moore, el emérito presidente de Intel, le pone la escala a la apuesta. “Una planta de investigacién y desarrollo cuesta hoy cuatrocientos millones solo en el edificio. Luego, hay que ponerle alrededor de mil millones de délares en equipamiento, Esto re- presenta una fébrica para un cuarto de micrén que puede Hlegar a producir alrededor de 5,000 obleas por semana, lo que se dice la planta utilizable mas pequefa. Para la prdxi- ‘ma generaciGn,” afirma Moore, “la inversién minima serd de dos mil millones, con entre tres y cuatro mil millones necesarios para cualquier tipo de volumen de producci6n. Nin- guna otra industria tiene una vida tan corta con inversiones tan enormes.” Gran parte de estas cifras sera gastada antes de que haya una necesidad concreta de los microprocesadores que la planta vaya a producir. En esencia, el total de los 4.000 mi- Hones por planta es una apuesta basada en la idea de que la industria absorberé un gran muimero de CPU a buen precio solo porque sean algo més ripidos que los elementos dis- ponibles actualmente. Si solo por una generacién dicha situaci6n no ocurriese (si alguien considerara, por ejemplo, que el Pentium IT es lo suficientemente rapido, gracias), los re- sultados serian impensables. “Mi pesadilla consiste en despertarme algin dia y no necesitar mayor poder de cém- puto,” dijo Moore. La arquitectura de tas computadoras trata aquellos aspectas de una computadora que son visi- btes para el pragramader, en tanto que ta organizacién de tas computaduras trata aqueltos as- pectos que se encuentran en un nivel més fisico y que no aparecen como visibles para el pra gramador. Histérlcamente, los pragramadores debian enfrentarse con cada aspecto de una Computadora: Babbage con elementos mecanicos y los programadores de ENIAC con cables y panetes de conexién, A medida que crece el nivel de sofisticacién de tas computatoras, el con- cepto de niveles de maquina aparece en forma més pronunciada, permitienda que las compu tadoras presenten conductas Internas y externas muy diferentes a la vez que se administra la complejidad en niveles estratiticados. El desarrollo individual mas significative que hace po- sible este planteo es ef cancepto de computadora de programa almacenado, que toma cuerpo enel modelo von teumann. Es el modeto von Neumann el que se ve en la mayor parte de las computadoras corrientes hoy en dia. Para lectura posterior La historia de la computacin esta llena de personalidades e hitos interesantes. Harlan Anderson ofrece un detalle corto y ameno de unos y de otros correspondientes al tltimo siglo. La obra de Charles Bashe y otros ofrece un resumen interesante acerca de las maquinas IBM. A. Bromley, ha- ce una crénica de las maquinas de Babbage. A. Ralston y E. Reilly aportan biogralias cortas de las 18_Pawcipios De ARQUITECTURA DE CoMPUTADORAS personalidades més célebres. B. Randell cubre la historia de tas computadoras digitales. Una histo- ria de la computacion, de lectura accesible, se encuentra en el sitio web hitp://vww.ifi.unizh.ch/se/ people/hoyle/Lecture/. Doron Swade, cubre una version legible del método de tas diferencias finitas tal como aparece en las maquinas de Babbage y en la versi6n de fa maquina diferencial analitica creada por et Museo de Ciencias de Londres. £! trabajo de A. Tanenbaum es uno de una cantidad de textos que popularize la nocion de niveles dentro de las maquinas. ‘Anderson, Harlan, “Dedication address for the Digital Computer Laboratory atthe University of Ilinois", 17 de abril de 1991, tal como se reproduce en: /EEE Circuits and Systems Society Newsletter, vol. 2, n®1, marzo de 1991, p.p. 3-6. Bashe, Charles J., Lyle R. Johnson, John H. Palmer y Emerson W. Pugh, i's Early Computers, The MIT Press, 1986, Bromiley, A. G., “The evolution of Babbage’s Calovlating Engines”, Annals of the History of Computing, vol. 9, 1987, p.p. 119-138. Randell, B., The Origins of Digital Computers, 3'ed., Springer-Verlag, 1982. Ralston, A. y €. 0. Reilly eds., Encyclopedia of Computer Science, 3'ed., van Nostrand Reinhold, 1998, Doron D. Swade, “Redeeming Charles Babbage’s Mechanical Computer”, en: Scientific American, vol. 268, n®2, febrero de 1993, p.p. 86-91. Tanenbaum, A., Structured Computer Organization, 4 ed., Prentice Hall, 1999. (Traduccién al espafio! disponible: Organizacién de computadoras, Prentice Hall, 2000.) Problemas 1.1 Laley de Moore, que se atribuye al creador de Intel, Gordon Moore, dice que la potencia de ‘computacién se duplica cada 18 meses por el mismo precio. Como observaci6n no relaciona- da surge que las instrucciones de punto flotante se ejecutan en forma circuital cien veces mas r4pido que cuando se las emula. Usando la ley de Moore como guia, gcuanta tiempo le llevard ala potencia de computacién crecer a punto tal que las instrucciones de punto flotante se emu- len tan rapido como sus anteriores contrapartidas en el hardware? Capitulo 2 Representacion de la informaci6n 2.1 Introduccion En los primeros dias de la computacién eran frecuentes los errores de concepto referidos a las computadoras. Uno de los mas habituales consistfa en creer que la computadora era énicamente una méquina sumadora gigante capaz de realizar operaciones aritméticas. Las computadoras tenfan capacidad para hacer mucho mds que eso, aun en aquellos primeros dias, Otro error de concepto, en contradiccién con el anterior, era el de pensar que 1acom- putadora podtia hacer “cualquier cosa”. Subemos ahora que bay ciertos problemas que re- sultan intratables, aun para la méquina més poderosa con arquitectura von Neumann. La percepcién correcta, por supuesto, esti en algtin lugar intermedio entre ambos. Hoy nos resultan familiares algunas operaciones que na son aritméticas, tales como la computacién grafica, el audio digital y aun el manejo del (ratén) mouse de la computado- ra, Independientemente del tipo de informacién que se esté manipulando, debe estar repre- sentada por patrones de unos y ceros. (También conocidos como cédigos “si-no”.) Este planteo lleva inmediatamente a la pregunta referida a como debe representarse 0 describir- se la informacién dentro de la maquina, o sea, cud dehe ser la representacién o codifica- cién de los datos. Las imégenes grificas, el audio digital o las pulsaciones sobre los boto- nes del mouse deben estar todos codificados de alguna manera sistemdtica y normalizada. Dado que es la més conocida, puede pensarse en ta representacién decimal de Ja in- formacién como a forma mas natural de dicha representacién. No obstante, el uso de e6- digos sf-no en la representacién de la informacién antecede en muchos afios a la compu- tadora, como es el caso de! e6digo Morse. Este capitulo introduce algunos de ios ejemplos de codificacién mas simples y més im- portantes: la codificacién de mimeros de punto fijo con y sin signo, la de los nmeros reales (Conocidos en la jerga de la computacién como mimeros de punto Notante), y la de los ca- racteres requeridos para la impresidn de texto. Se podri ver que en todos los casos existen diversas formas de codificar los distintos tipos de datos, algunas de ellas titiles en un con- texto dado, otras, nuis stiles en otro contexto. Asimismo, este capitulo presentard una prime- ra mirada sobre Ia aritmética de computadoras, con el objeto de entender algunos de los es- quemas de codificacién, si bien los detalles quedardn para ser tratados en el capitulo 3, ‘20_pRincrptos Of ARMUITECTURA DE COMPUTADORAS Un punto clave en ef desarrollo de un formato de representacién de informacién en una computadora es la determinacién del espacio de almacenamiento que se deberd de- dicar a cada tipo de dato. Por ejemplo, un disefiador de computadoras puede decidir re- presentar los niimeros enteros con 32 bits, e implementar una ALU que pueda realizar céilculo aritmético sobre esos conjuntos de 32 bits, y que devuelva resultados también en 32 bits. No obstante, algunos numeros pueden ser muy grandes como para ser represen- tados en 32 bits, y en otros casos, los operandos pueden representarse por 32 bits pero el resultado de una operacién ser mayor, lo que provocard una condicién de desborde*, condici6n cuyo significado se describe en el capitulo 3. Por consiguiente, se hace nece- satio tener en claro cudles son los limites a imponer sobre ta precisi6n y el rango de las ‘operaciones aritméticas derivados de la naturaleza finita de las representaciones ut das. Estas limitaciones se analizan en las secciones siguientes. 2.2 Nimeros de punto fijo En la representacién de mimeros de punto fijo™, todos los nsimeros a representar tienen exactamente la misma cantidad de digitos y la coma decimal esté siempre ubicada en el mismo lugar. Como ejemplos dentro del sistema decimal pueden plantearse los nimeros 0,23", “5,12” y “9,11”. En estos ejemplos, cada mimero tiene tres digitos y la coma de- cimal se ubica a continuacién del primero de ellos, Los ejemplos que poeden presentar- se en el sistema binario de numeracién (en el que cada digito solo puede adoptar los va- lores 0.0 1) son “11,10”, “01,10” y “00,11” en los que hay cuatro digitos y donde la coma “decimal” esté entre el segundo y el tercero de ellos. La diferencia principal entre la re- presentaci6n de ntimeros de punto fijo en el papel y la forma en que se almacenan dentro de la computadora es que, al representar mimeros en este formato, no se almacena coma decimal alguna, sino que, simplemente, se supone que ocupa un lugar determinado. Po- dria afirmarse que la coma decimal solo existe en fa mente del programador. El estudio de la representacién de ntimeros en el formato de punto fijo se inicia con el andlisis del rango y la precisiGn de esta representacién, utilizando para esto el sistema de numeracién decimal, Continda con una mirada a la naturateza de los sistemas de nume- raciGn, tales como el decimal y el binario, y a los métodos de conversién entre diferentes sistemas, Con estos fundamentos, se investigan distintas formas de representacién de mii- meros negativos expresados en formato de punto fijo, analizando, finalmente, algunas operaciones matemiticas simples que pueden realizarse con ellos. * N.de T: En muchos paises de habia hispana, suete utiizarse el término original ct idioma inglés (overttow) sin ‘raduccién alguna. “* de T: Se aceplard en este texto la nomenclatura habitual en la que se identifica como “punto” a la coma ecima), dbiendo queda clare que las mencione al punto Wo o tans se tefieren ala ubicacion de dicha ‘coma decimal GAPHTULO 2 + REPRESEWTACION DE LA WFORMAGION 21 2.2.1 Rango y precisién en ndmeros de punto fijo Una representacién de punto fijo puede caracterizarse por el range de los ntimeros que expresa (dado por la diferencia entre el niimero mayor y el menor) y por su precisién (1a distancia entre dos mimeros consecutivos en una serie numérica). Para el ejemplo plan- teado anteriormente, en el sistema de numeraci6n decimal, si se utilizan tres digitos con fa coma decimal entre el primero y el segundo, el rango de representacién varfa desde 0,00 hasta 9,99, incluyendo ios extremos, lo que se expresa como {0,00..9,99}. Lu preci- sin de la representacién es 0,01, y el error resultante puede considerarse como la mitad de la diferencia entre dos nimeros consecutivos, tales como 5,01 y 5,02, entre los que hay una diferencia de 0,01. El error, por ende, es 0,01/2 = 0,005. Esto significa que cual- quier nimero del rango 0,00 a 9,99 puede representarse en este formato con una aproxi- macién de hasta 0,005 de su valor real o preciso. Nétese de qué manera existe un compromiso entre rango y precisi cimal se coloca ala derecha del mimero, el rango pasa a ser (000..999} pero la precisin pasa a ser de 1,0. Si, en cambio, la coma decimal se coloca a la izquierda del numero re~ presentado, el rango pasa a ser [0,000..0,999} y Ia precisién pasa a valer 0,001. En cualquiera de tos casos, hay solo 10* “objetos” decimales diferemtes, cuyo rango va desde 000 2 999 o desde 0,000 hasta 0,999, en consecuencia, solo es posible repre- sentar 1000 elementos diferentes, independientemente de c6mo se administren rango y precisi6n. No hay raz6n alguna para que el rango empiece en 0, Un ndmero decimal de dos di- gitos puede tener rangos de [00.99] o de [-50..449}, o aun de [-99..0}. El apartado 2.2.6 analiza con mayor profndidad la representaci6n de los mimeros negatives. El rango y la precisién son conceptos importantes en Ia arquitectura de computadoras, debido a que ambos son elementos finitos en ta implementacién de la arquitectura, en tanto que son infinitos en ef mundo real, por le que el usuario debe tener en claro las li- mitaciones que surgen al tratar de representar informaciGn externa en el formato interno, .. Si fa coma de- 2.2.2 La ley asociativa del algebra no siempre funciona en la computadora Entre los primeros conceptos que se plantean en matemética, aparece la llamada propie- dad o ley asociativa: At(B+C)=(AFB)HC Como podré verse, la ley asociativa del dlgebra no funciona cuando se representan néme~ ros en el formato de punto fijo con represemtacién finita. Considérese una representacion de nimeros enteros en formato de punto fijo.con un solo digito decimal y la coma decimal ala derecha, con un rango de [-9..9]. En el caso en que A= 7, B=4 y C=-3, la sumade (22 _PRINGIPIOS DE ARQUITECTURA DE COMPUTADORAS. A+ (B+ O)=74+(4-3)=74 1 =8. Pero (A +B)+C=(744)-3= 11-3. El resultado intermedio, 11, jestd fuera del rango de la representacién considerada! Si bien el resulta- do final podria haber quedado dentro del rango de representacién del sistema de numera- cién, se ha producido un desborde en el resultado intermedia. Este ejemplo permite ver que, si algin resultado intermedio resulta incorrecto, el resultado final de la operacién completa también es incorrecto. Por consiguiente, surge como conclusién que la ley asociativa del dlgebra no se cumple cuando se representa la informact6n numérica en formato de punto fijo de longitud finita. Se trata de una consecuencia inevitable de esta forma de representacidn y no hay solucién prictica excepto la de detectar el desborde en el momento en el que ocurra, 0, habiendo de- tectado el desborde, repetir la operacién con una representacién que permita un rango ma- yor. (Esta dltima técnica se usa muy raramente, excepto en situaciones criticas.) 2.2.3 Sistemas de numera in posicionales Esta seccién analiza de la utilizacién de sistemas numéricos con bases arbitrarias, si bien el enfoque se concentra sobre {os sistemas mAs utilizados en las computadoras digitales, tales como el sistema binario (de base 2) y sus parientes cercanos, los sistemas octal (de base 8) y hexadecimal (de base 16). La base o rafz de un sistema de numeracién define el rango de valores posibles que pueden adoptar sus digitos. En el sistema de numeracién decimal (de base 10), los dife- rentes digitos de una cantidad numérica se representan por alguno de los 10 valores co- rrespondientes al 0, 1, 2, 3, 4, 5,6, 7, 8 y 9. ES sistema naturalmente utilizado para ta re- presentacién de niimeros en una computadora es el sistema binario, en el que se representa la informacién como un conjunto de ceros y unos. La expresi6n general que permite determinar el valor decimal de un niimero en un sis- tema de numeraci6n de base & y en formato de punto fijo es la siguiente: El valor del digito que ocupa la posicién / est representado por by. Existen en este caso 1 digitos a la izquierda de la coma fraccionai itos a su derecha, Esta forma de representaci6n de un niimero, en la que cada posicién tiene asignado un determinado va- Jor, se denomina sistema de numeracién posicional. Considérese la expresién (541,25), en la cual el subindice 10 representa la base en La que se expresa el nimero." En este caso, m= 2y k= 10: “ N. de T: €n ol casa de ndeneros axpresados en al sistema decimal, por convencién, suela oritrse el subind- ‘ce indicador de la base, sobreentendiéndose que todo nUmero asi expresado lo estd en dicho sistema decimal. CAPITULO 2 » REPRESENTACION DE LA mFORMACION 23 5x10 +4x 10'4 1x 10°42x 10" +5x 107 = = (500) + (40) + (1) +(2/10) + (5/100) = (541.25) Si en forma similar se considera el nimero binario (1010,01),, en el que a= 4, m=2y k= 2, se tiene Ux DPeOx Pet x 2 eOxMeOx 2s 1x2= = (8) + () + (2) + (0) + (0/2) + (1/4) = (10,25) Este dltimo procedimiento da una idea acerca de c6mo convertir un nimero expresado en un sistema de numeracién de base cualquiera al sistema de numeracién decimal, mediante Ja utilizacién de una representacién polinémica. Se trata de multiplicar cada digito por €l peso asignado a su posicién (potencias de dos en este ejemplo) y tuego sumar los va- lores para obtener el ntimero convertido. Si bien este método es vélido para conversiones de todo tipo de sistema, algunos sistemas plantean ciertas dificultades especiales, las que serdn desarrolladas en Ia prOxinya seoci6n. Nétese que en estos sistemas de numeraci6n posicionales se define el bit con el mayor pe- so asociado como bit mas significative (MSB, most significant bit), y el bit de menor peso como bit menos significative (LSB, least significant bit). Por conversién, el LSB es el bit a Ja derecha de la expresién numérica, en tanto que e} MSB es et bit a la izquierda de esta, 2.2.4 Conversién entre sistemas Ena seccién anterior se ha planteado un ejemplo de eémo puede convertirse un mimero expresado en el sistema de numeracién binario al sistema de numeracién decimal. La ‘conversi6n de un nimero en el sentido contrario puede ser un poco mas compleja. La for- ma més sencilla de convertir niimeros de punto fijo que contengan tanto parte entera co- ‘mo fraccionaria consiste en operar con cada una de sus partes por separado. Como ejem- plo, se planteard la conversién del nimero 23,375 al sistema binario. Se comienza por separar el mimero en sus pares entera y fraccionaria: 23,375 =23 + 0,375 Conversién de la parte entera de un niimero de punto fijo. Método de los restos Segtin Jo sugerido en la secci6n anterior, la forma polinémica general para la representa- cién de un niimero entero binario es: Bx D4 bx WA eB, x2 b,x 2” 24_pruncipios OE ARQUITECTURA DE COMPUTADORAS Si se divide al ntimero entero por dos, se obtendré: Bx Mab xIe +b, x2 con un resto de 8,, Como resultado de dividir por dos el niimero entero original se obtie~ ne el valor del primer coeficiente binario b,. Puede repetirse este proceso aplicdndolo al polinomio remanente para obtener el segundo coeficteme &,. Si se continGa aplicando el mismo procedimiento en forma iterativa, se obtendrdn todos los coeficientes b, Este pro- cedimiento forma la base del método de los restos para convertir nimeros enteros entre diferentes sistemas de numeracién. Entero Resto y a2 = 1 <— Bit menos significative x m= 0 1 <— Bit més significative QBhq = (OND, Figura 2.1 + Conversion de un nimero entero decimal al sistema de numeracién binario mediante el métogo de los restos. EI método de los restos se aplicar ahora para convertir el ntimero 23 al sistema de base 2. Como se ve en la figura 2.1, el entero se divide inicialmente por 2, lo que deja un res- tode 00 1. Eneste caso, 23/2 produce un cociente de 11 y un resto de 1. Este primer res- to es el digito (bit) menos significative del nimero convertido (el bit a la derecha del nd- mero). En el paso siguiente, se divide ahora el néimero 11 por 2, to que deja un cociemte de 5 y un resto de 1. Al dividir 5/2 se obtendré un cociente de 2 y un resto de 1. El proce- so continda hasta obtener 0 como cociente, Si se sigue dividiendo luego de obtener co- ciente nulo, solo se logrardn ceros como futuros cocientes y restos, 10 que no cambiaré el valor del niimero convertido. Los restos asi obtenidos se recogen en el orden indicado en 1a figura 2.1, para obtener la expresi6n binaria del numero convertido, lo que en este ca- so da por resultado 23 = (10111),. En general, todo numero expresado en el sistema de- cimal puede convertirse a cualquier otro sistema simplemente dividiendo el entero deci- mal reiteradamente por la base del sistema de numeraci6n al que se lo quiere converti El resultado puede verificarse mediante la conversi6n del mayor nimero binario asi obtenido al sistema decimal, mediante el método polinémico: CAPITULO 2 + REPRESEMTACION DE LA INFORMACION 25 OUD, = = 1x2 +Ox Pal x Pei x ei x= = 16404442415 = (23) Aesta altura, se ha procedido a la conversién de la parte entera del mimero 23,375 al sis- tema de numeracién binario. Conversi6n de la parte fraccionaria de un niimero de punto fijo. Método dé las multiplicaciones La conversién de la parte fraceionaria puede resolverse multiplicando sucesivamente la fraccién por dos, de acuerdo con lo que se describe a continuacién. Una fracci6n binaria se representa, en su forma general, segdn la expresién siguiente: byx2 4b xMHbgx Boa. Si se multiplica dicha expresién por 2, se obtiene: by +b, x2 +b x24... Se puede determinar asi el coeficiente b ,. Si se reitera el procedimiemto sobre la fraccién remanente, se obtendrén los sucesivos b,. Este proceso determina fa forma de convertir ni- ‘meros fraccionarios entre distintos sistemas de numeracién utilizando el método de las multiplicaciones. En el ejemplo aqui planteado (véase la figura 2.2), la fraccién inicial, 0,375, es menor que 1. Si se 1a multiptica por 2, el resultado obtenido ser menor que 2. El digito a Ta izquierda de 1a coma fraccionaria seré entonces 0 0 1. Este es el primer digito a Ja derecha de la coma fraccionaria en el niimero convertido a base 2, tal como se muestra en la figura, Se repite el proceso sobre la parte fraccionaria hasta que se obtenga una frac- ci6n nula, en cuyo caso las siguientes iteraciones solo darén por resultado ceros adiciona- Jes, 0 hasta que se haya alcanzado el limite de precision requerido por la representacién utilizada, Se recogen los digitos obteniéndose asf el resultado: 0,375 = (0,011, En este procedimiento, el multiplicador coincide con Ia base del sistema numérico de destino. En este caso, el multiplicador es 2, pero si se pretendiese realizar una conversiéa a otro sistema, como podria ser un sistema de base 3, se utilizaria 3 como multiplicador.t 1. Alernativamente, puede usarse el sistema de numeracién decimal y evitar la conversin mediante ia repre- ‘sentacion binaria de los diez dgitos decimales. Esta representacién se conoca como BCD (decimal codifica- ‘do en binario) y se la describird mas adelante, 26 _pemnciPiog Of ARQUITECTURA DE COMPUTADORAS ands significative 037s x 2 = Oi x 2 = ts as x 2 = 10 Bit menos significative (0.37549 = (0.01), Figura 2.2 « Conversién de una fraccién decimal al sistema binario por madio del método de las muikipicaciones. Puede verificarse el resultado de la conversiGn si se realiza la reconversi6n al sistema de- cimal del nimero binario ast obtenido, utilizando la representaci6n polinémica: (0,011), = Ox 244 1x27 41x 2750 40,25 + 0,125 = (0,375),9, ahora se combinan las partes entera y fraccionaria, se obtiene el resultado final: 23,375 = (10111,011), Fracciones no exactas Si bien el método de conversin funciona con todos los sistemas de numeracién, el proceso puede llegar a producir pérdidas de precisién. Por ejemplo, no todas las fracciones repre~ sentadas en el sistema de numeracién decimal pueden tener como equivalente un nimero ra- cional exacto en el sistema binario, Considérese como ejemplo Ia conversién de! niimero 0,2, al sistema binario de numeraciGn, siguiendo el procedimiento expresado, y de acuerdo con lo que se observa en la figura 2.3. En el cuarto paso de fa conversién reaparece la frac- cién 0,2, por lo que a partir de ese punto el proceso se repite en forma periédica. Para tratar de justificar la causa de esta situaci6n, considérese que cualquier fraccién exacta expresada en el sistema binario puede representarse como i/2* para ciertos valores de los enteros / y k. (Esta forma de representacién no es vélida para mimeros fracciona- rios periédicos.) En forma algebraica: 2 six SM(2* x SY) =i x SLO = j/10" En la que jes el entero ix 5*, La fracci6n no es periédica en el sistema decimal. Este con- cepto reafirma el hecho de que solo las fracciones no periédicas de un sistema de nume- racién de base b pueden presentarse como i/b* para algunos valores enteros de iy &. La condicién que debe cumplir una fraccién decimal exacta para que su equivalente binario también sea exacto es: 10 = ES* x 24) = j/2* ENTRCION OE LA UFORMACION 27 oa x 2 = 08 og x 2 = 16 Figura 2.3 © Un aémero traccionario pura en base 10 que no tiene su correspondiente forma en el sistema binario de numeracién. Donde j = i/5" y 5* debe ser factor de i, Para fracciones decimales de un sole digito, tnica- mente 0 y 0,5 dan como resultado binario una fraccién exacta (dando solo el 20% de las posibles fracciones decimates de un tinico digito); para fracciones de dos digitos, solo cumplen con la propiedad las fracciones 0,00, 0,25, 0,50 y 0,75, tas que corresponden al 4% de las posibles fracciones de dos digitos, etc. Existe una relacién entre los mimeros re- lativamente primos y las fracciones peridicas, que puede ser dil para entender cual es la raz6n por la que algunas fracciones decimales exactas no tienen una forma equivalente bi- aria que también seu exacta, D. E. Knuth, en The Art of Computer Programming, provee algunas profuadizaciones sobre el tema. Representaci6n binaria versus representaciOn decimal En tanto que 1a mayorfa de tas computadoras usan el sistema de numeracién binario pa- ra la representacién intema y el cdlcuto aritmético, algunas calculadoras y maquinas de oficina utilizan como representacién interna el sistema de numeracién decimal, con lo que no tienen los problemas de representacién mencionados. La causa principal de la uti- lizacién del sistema decimal de numeracién en las computadoras comerciales no es tan- to el problema de la precisiGn de Jos ntimeros fraccionarios sino el hecho de poder evitar los procesos de conversién decimal-binario en las unidades de entrada y salida, procesos que hist6ricamente requitieron una cantidad de tiempo importante, Representacién de numeros en los sistemas binario, octal y hexadecimal Sibien los nimeros binarios reflejan la realidad de la representacién interna de los néme- 19s tal como se utiliza en la inmensa mayoria de as computadoras, tienen como desven- taja el hecho de requerir mayor cantidad de digitos para representar un nimero dado que cualquier otro sistema de numeracién posicional. Asimismo, suele ser mas facil cometer 28_PRINGIPIOS DE AROUITECTURA DE COMPUTADORAS, errores cuando se escriben mimeros binarios debido a la gran cantidad de ceros y unos que hay que utilizar en la representaciGn. En apartados anteriores se ha mencionado a los sistemas de numeracién octal (sistema de base 8) y hexadecimal (de base 16), como sistemas vinculados al sistema de numeracién binario. Esta relacidn esta dada por el he- cho de ser estas bases potencias de dos, la menor de todas ellas. Se procederé a demos- rar que la conversiGn entre jos sistemas de numeracién binario, octal y hexadecimal es i |. ¥ que hay ventajas précticas significativas en el uso de estos sistemas para la re- presentacién de nimeros. Los niimeros binarios pueden ser considerablemente més grandes (en cantidad de di- gitos) que sus equivalentes decimales, Suele resultar practico como elemento de repre- sentacién el utilizar aquellos sistemas de numeracién cuyas bases son potencia de dos. La conversiGn entre los sistemas de numeracién de bases 2, 8 y 16 es mucho més sencilla que convertir hacia y desde el sistema decimal. Los valores utilizados para los digitos del sistema octal resultan familiares por cuanto son los primeros ocho digitos del sistema de- cimal. En cambio, para el sistema hexadecimal, se requieren seis digitos mas que los que se usan en el sistema decimal, La convenci6n habitual para la representacidn de los digi- tos adicionales (10, 11 ,12, 13, 14, 15} del sistema hexadecimal pasa por el uso de las seis primeras letras dei abecedario, sean maydsculas o mindsculas. La figura 2.4 representa los digitos utilizados coménmente en los sistemas de numeracién de bases 2, 8, 10 y 16. Al comparar la columna correspondiente al sistema binario con las columnas de los sis- temas octal y hexadecimal surge que se requicren tres bits para representar en binario ca- da uno de los digitos del sistema octal, y cuatro bits para representar en binario cada un de los 16 digitos del sistema hexadecimal, En general, se requieren k bits pura represen- tar en binario un digito del sistema de numeracién de base 2% siendo & un mimero ente- £0, por lo que el sistema de numeracién de base 8 = 2° requiere tees bits por digito, en tan- to que el sistema de numeracién de base 16 = 2* requiere cuatro bits por digito. Para conventir un nimero expresado en el sistema binario al sistema octal, se divide el mimero binario original en grupos de tres bits cada uno, empezando a partir de la coma de- cimal, completando el grupo més significative con ceros, en caso de ser necesario. Luego, cada trio de bits se convierte en forma individual al sistema octal. Para conversiones des- de el sistema binario al hexadecimal se utilizan grupos de cuatro bits. Si se pretende con- vertir cl ntimero (10110), al sistema de base 8, el procedimiento es el siguiente: (10110), = (010), (110), = (2)g (6)_ = (26), En ef caso de los dos bits de mayor peso, se agregé un cero a la izquierda para completar el trio correspondiente. Si ahora se considera la conversién det niimero binario (10110110), al sistema hexa- decimal, un procedimiento similar al anterior leva a: (10410110), = (1011), (0110), = (B),, (6g = (BO), apiruio 2 + nEPREsEwTacr6n GE LA WFORMACION 29 Binario Octal Decimal Hexadecimal (base2) (base 8) (base 10) {base 16) o ° 0 9 1 1 1 1 10 2 2 2 un 3 3 3 100 4 4 4 101 5 3 3 10 6 6 6 a i 7 7 1000 10 8 8 1001 "1 9 9 1010 2 10 A 1011 13 " B 1100 14 12 c 1108 15 3 D 1110 16 14 E a w 15 F Figura 2.4. Vslores de ls primeros 16 nimeros en los sistemas de aumeracién binavio, octal, decimal y hexadecimal, Néiese que B, en el sistema de numeracién hexadecimal, no es una variable, sino que es el digito de dicho sistema que representa al niimero once. Los métodos de conversi6n planteados pueden usarse para convertir un mimero desde cualquier sistema de numeracién a cualquier otro sistema, pero es probable que la forma de realizar una conversi6n, tal como la de convertir (513,03), a base 7, no resulte dema- siado evidente. Como ayuda en estos casos no habituales, se puede realizar la conversi6n pasando primero por el sistema de numeracién decimal, y completando luego Ia conver- sidn desde el sistema decimal a la base de destino. Como regla general, se utiliza el méto- do polinémico cuando se convierte un niimero al sistema de numeracién decimal, y se uti- lizan los métodos de multiplicacién (para nimeros fraccionarios) y de division y obtencién de restos cuando se convierte un nimero desde el sistema decimal. 2.2.5 Una primera mirada a la aritmética de las computadoras El andlisis detallado del célculo en computadoras se desarroHard en el capitulo 3. Por el momento se analizar4 emo se resuelve la suma binaria, dado que este conocimiento es necesario para la representacién de ntimeros binarios con signo. La suma binaria se rea- fiza en forma similur a la forma en que se realizan a mano las sumas en el sistema deci- mal, tal como se ilustra en la figura 2.5. Dos ntimeros binarios A y B se suman de dere- cha a izquierda, generando un bit de suma y uno de arrastre en cuda posicién binaria. Dado que los bits menos significativos de A y B pueden adoptar uno de dos valores, la su- ‘ma de la columna de las unidades permite plantear solo cuatro posibilidades: 0 +0, 0+ 1, | +0y 1+ 1, con un arrastre de 0, como se ve en la figura. El arrasire en la columna de Las uni- dades es siempre nulo, Para las columnas restantes, el arrastre que Iega desde la colum- ‘30__PRINCIPIOS DE AROUITECTURA GE COMPUTADORAS: na anterior puede ser cero 0 uno, por lo que cn cada columna pueden darse hasta ocho combinaciones de entrada, segtin lo muestra la misma figura 2.5. Amauedeenma 9 9 9 oO 1 1 1 4 ooo t 1 69 Oo 5 4 Operands [7 me ee eee ee tt Arrastee Suma Flemplas fil Arusedecmméa = 1 1 1 1 0000 Sumandod = OTL E1100 (24 Sunmdo# + 010411010 (90h Suma THOTOTIO Qe Figura 2.5 + Ejemplo de suma tinaria. Nétese que el mayor mimero que puede representarse con el formato de ocho bits de la figu- mi 2.Ses (1117 1111), = (255), ¥ que el menor ntimero a representar es (0000 0000), = (O),o- Los conjuntos de bits 1111 1111 y 0000 0000," asf como todos los patrones de bits interme- dios, representan a los ndmeros decimales correspondientes al intervalo cerrado que va desde 0 a 255, siendo todos ellos mimeros positivos. Hasta este momento se han consi- derado solo ntimeros sin signo, pero también se hace necesario admitir la representacién de ntimeros signados, para lo cual se asignaré aproximadamente la mitad de los elemen- tos antes mencionactos a la representaciGn de los némeros positivos y 1a otra mitad a los némeros negativos. La proxima seccién analiza cuatro convenciones de uso habitual en Ta representacién de mimeros binarios signados, 2.2.6 Niimeros signades en formato de punto fijo Hasta este momento solo se ha considerado la representacién de niimeros en formato de punto fijo sin signo. La situacién es bastante diferente cuando se pretende representar mi- meros signados. Existen cuatro convenciones distintas de uso habitual en la representa- ci6n de mimeros con signo: magnitud (valor absoluto) y signo, complemento a uno, com- plemento a dos y notacién excedida. Se analizarin todas ellas, de una en una, utilizando como ejemplo Ja representaci6n de mémeros enteros. Durante el andlisis, ¢l lector podré emplear como referencia la tabla 2.1, que muestra las cuatro representaciones para el ca- so de un miimero de tres bits. * NW. de T: Para mayor claridad, los nimeros binarios de més de cuatro bits se separan en grupos de a cualro (un cigito hexadecimal). Esta separacién no influye sobre el valor det nirnero; solo se utiliza para tecilitar la lectura, CAPITULO 2 + REPRESENTACION DE LA INFORMACION 31 Decimal Sinsigno Magnitud ysigao Complementoal Complementoa? Excesod 7 We - - 6 Ho - - = - 5 101 - - - - 4 100 - - - - 3 on on on ou ty 2 10 O10 010 010 m0 t 001 oO1 O01 oor 101 40 000 000 000 000 100 oO - 100 ut 000 100 tr - 101 10 U1 ou 2 - HO 101 10 O10 “3 - ML 100 101 00 4 - - - 100 000 ‘Tabla 2.1 * Repraseataciones de nimeros enteros de tres bits. Magnitud y signo La representaciGn en magnitud y signo (conocida también como de valor absolute y no) es la més habitual debido a su uso en el sistema de numeracién decimal. Un signo mas 0 un signo menos, colocado a Ia izquierda del nimero representado, indica si el né- mero en cuesti6n es positivo o negativo, tal como se acostumbra al escribir +12,,0-12,q En la representacion binaria de magnitud y signo se utiliza el bit ubicado més a la izquier- da (el de mayor valor absoluto) para representar el signo, asigndndosele valor 0 o | para representar, respectivamente, el + y el -. Los bits restantes conticnen el valor absoluto del numero. En esta convencién, las representaciones binarias de +12,, y 12, en formato de palabra de ocho bits, se traducen como: +(12),5 = (0000 1100), (12), = (1000 1100), El ndmero negative se obtiene simplemente al reemplazar, a partir de la representacién deb imero positivo, el cero del bit de signo por un uno, Nétese que en esta convencién exis- ten dos representaciones para el cero, una positiva y una negativa: 0000 0000 y 1000 0000. En el formato utilizado en el ejemplo se hace uso de ocho bits, siendo validas todas las combinaciones de esos ocho bits, por lo que existen 25 = 256 combinaciones diferen- tes, Sin emburgo, esta convencidn solo puede representar 2°— | = 255 combinaciones, da do que +0 y -0 representan el mismo niimero. ‘32_PRINGIPIOS DE ARQUITECTURA DE COMPUTADORAS En el desarrollo de! texto se hard uso de la representacidn en magnitud y signo duran- te el andlisis de las representaciones en punto flotante, en la seccién 2.3. Complemento a uno La operaci6n binaria de complemento a uno tiene una resolucién trivial; convertir en ceros todos los unos de un ntimero y convertir todos sus ceros en unos. Véase como referencia la cuarta columna de la tabla 2.1. De allf surge que en ta representucién de complemento a uno, el bit més significativo es 0 para los niimeros positives y 1 para Jos negativos, tal como ocurre en la representacién de magnitud y signo. El procedi- miento de invertir ceros por unos y unos por ceros se conoce como complementacién de la palabra, Si se vuelve a considerar la representacién de (+12),9 y (-12),,n forma- to de ocho bits, ahora usando esta convenciGn de complemento a uno, los resultados seran: (+12),9 = (0000 1100), (12), = (1111 0011), Nuevamente, debe notarse la doble representacién del cero, mediante 0000 0000 y 1111 1111, respectivamente, para +0 y -0. Como resultado, en esta convencidn también pueden repre- sentarse solo 2° — | = 255 valores numéricos a pesar de ofrecer 256 combinaciones. La representacién de complemento a uno no es de uso comtin, Esto se debe, al menos parcialmente, a la dificultad en ta realizacién de comparaciones derivada de la existencia de dos representaciones para el cero. Ofrece también una complejidad adicional en las operaciones aritméticas como la suma, lo que se analiza en el capitulo 3 Complemento a dos El complemento de un numero a dos se obtiene en forma similar a la del complemento a uno: tras invertir todos los bits de una palabra, se le suma uno al resultado obtenido, y si esa suma da por resultado un arrastre desde el bit mds significativo, el mismo se desear- ta. Si se analiza la quinta columna de la tabla 2.1, se puede observar que en la represen tacin de complemento a dos y signo, el bil més significative vuelve a ser cero para los niimeros positivos y uno para los negativos. No obstante, esta representacién no ofrece la caracteristica desafortunada vista en los dos modelos anteriores, dado que solo posee una Gnica representaci6n para el cero. Para ver que esta afirmacién es cierta, considérese la obtencién del valor negativo correspondiente al (0),,, cuyo formato es: (0), = (0000 0000), CAPITULO 2 + REPRESENTACION DE LA INFORMACION 33 El céleulo del complemento a uno de esta palabra lleva a obtener (ILI 1111}, ¥ siaes- te valor se Je suma 1, en formato de ocho bits se obtiene (0000 0000),. Asi, la represen- tacién del (-0),.= (0000 0000),. E] arrastre proveniente del bit ms significativo siempre se descarta en las operaciones de suma en complemento a dos, excepto cuando se detec- ta una situacién de desborde. Dado que hay una dnica representaci6n para el cero, y da- do que todas las combinaciones son vélidas, existen 2° = 256 ndmeros diferentes a ser re- presentados en esta convencién, Si se vuelve a considerar la representacién de los nimeros decimales +12 y -12, en formato de ocho bits, ahora con la representacién de complemento a dos y signo, el pro- cedimiento requerird comenzar con (+12),,= (0000 1100),. Si se invierte o niega el va- Jor, se obtendré (1111 0011), Si al resultado se le suma uno, se obtiene (1111 0100),, por Jo que (12), = (1111 0100), (+12), = (0000 1100), G12) 9 =U 10100), Si se considera que el cero es positivo, 1o que es razonable dado que su bit de signo es ce- 10, existen en la convencién igual cantidad de mimeros positivos y negativos. Los niimeros positivos arrancan desde cero, pero los negativos se inician en -1, por lo que el valor abso- uto del nimero mas negativo es mayor, en una Unidad, que el valor absoluto del nimero. ms positivo. EI mayor nmero positive que se puede expresar en esta convencidn es +127 y el menor mimero negativo (el neimero negativo de mayor valor absoluto) es -128, No existe, por consiguiente, ndmero positivo alguno a ser representado que pueda correspon- derse con el complemento de -128. En efecto, si se trata de obiener el complemento a dos de -128, se volverd a obtener un niimero negativo, segin puede observarse a continuacién: (-128),, = (1000 0900), OIL L111 + L = (1000 0000), La convencién de complemento a dos y signo es la representacién més utilizada en computadoras, y es la que se empleard a lo largo de este texto. Representacion excedida (desplazada) En la representacién con exceso 0 desptazamiento, los niimeros se tratan como si no tu- vieran signo, pero se los “desplaza” en su valor par medio de la resta de otro niimero co- nocido como exceso o desplazamiento. La idea es asignar el valor numérico més peque- fio, formado por todos ceros, al valor negativo del desplazamiento, y asignar los valores restantes en secuencia a medida que los patrones binartos aumentan en magnitud, Una for- 34 _Prwcipios OE ARQUITECTURA GE COMPUTADORAS ma conveniente de pensar en una representacin excedida es la de imaginar al nimero co- mo representado por Ia suma de su expresidn complemento a dos y otro niimero, al que se designa como “exceso” o “desplazamiento”. Nuevamente, puede emplearse como referen- cia la tabla 2.1, en este caso la columna de la derecha, para ejemplos de aplicacién. Si se vuelve a plantear el ejemplo de la representaci6n de (+12),9 ¥ (-12),9 en formato de ocho bits pero utilizando ahora una representaci6n en exceso 128, los dos ntimeros se obtendrin sumando 128 al némero original y determinando luego Ia versi6n binaria sin signo, Para (+12),9 se calculard (128 + 12 = 140), 10 que Hevard al patrén (1000 1100),, Para (-12),9, el cfllculo a realizar es (128 12 = 116),o, obtenigndose ahora la representa ci6n binaria (0111 0400), (412),9 = (1000 1100), 12), = (0111 0100), Nétese que no hay ningun significado numérico asociado con el valor del excesa; su efecto es simplemente el de desplazar la representacién de los némeros expresados en complemento a dos. Hay una sola representacién desplazada para el 0. dado que la representacién excedida constituye simplemente una versi6n desplazada de la representacién complemento a dos. En el caso anterior, el valor del exceso fue elegido para que tuviese el mismo formato que el ni mero negativo mas grande, lo que produce como efecto que los mimeros aparezcan ordena- dos numéticamente si se los mira en una representacién binaria no signada. Ast, el ndmero mids negative es (-128), = (0000 0000),, y el més positive es (+127)},g=(I111 LI), Esta representaciGn simplifica lus comparaciones entre ntimeros, dado que las representaciones binarias de los niimeros negativos tienen valores numéricamente menores que las represen- taciones de los ntimeros positivos, Esto se hace importante cuando se representan los expo- nentes de los niimeros en punto flotante. En este tipo de representacidn se requiere compa- rar dichos exponentes de dos cantidades para igualarlos, en caso de ser necesario, para sumar o restar. Las representaciones de punto flotante se analizardn en la seccién 2.3. 2.2.7 Decimal coditicado en binario ‘Un ndimero cualquiera puede representarse en su expresiGn de base 10 mediante codificacién binaria. Cada digito del sistema de numeracidn decimal se representa con cuatro bits, dando lugar a lo que se conoce como decimal codificado en binario (BCD, binary coded de mat. Cada digito BCD puede tomar uno de diez valores. Dado que para cada digito decimal hay 2* = 16 posibles combinaciones binarias, resulta que quedan seis combinaciones bina- rias de cuatro bits sin utilizar. En el ejemplo de la figura 2.6 se presenta un numero de cua- tro digitos decimales significativos, lo que implica la existencia de 10*= 10.000 combinacio- nes binarias validas, de las 2"° = 65.536 combinaciones que pueden formarse con 16 bits. CaPhrwuo 2 + REPRESEWTACION DE LA WFoRMAEION 35 Si bien algunas de las combinaciones binarias no se utilizan, el formato BCD se em- plea coninmente en calculadoras y en aplicaciones comerciales. Existen menos probl ‘mas cuando se representan fracciones decimales exactas en este formato, en contrapos ci6n con la representacién binaria, No hay necesidad de convertir la informacién que se ingresa en formato decimal (como en una calculadora) o de convertirlos desde un forma- to de representacién binaria a su correspondiente expresién decimal. La realizacién de operaciones aritméticas con ndmeros BCD signados puede no re- sultar obvia, Si bien el uso de representaciones de magnitud y signo es habitual en el sistema de numeracién decimal, la computadora utiliza un método diferente para la re- presentacién de niimeros decimales signados. En la representacién de complemento a nueve, los nimeros positivos se representan en la forma BCD habitual, pero el digi- to decimal mds significativo adopta un valor menor que 5 si el mimero es positive, y 5.0 mas si et niimero representado es negativo. El complemento a nueve se obtiene restando cada digito de 9, Por ejemplo, el niimecro decimal +301 se representa como 0301 (0, simplemente, como 301) tanto en las representaciones de complemento a nueve y a diez, segin se muestra en la figura 2.6a. El ndmero negativo, en com- plemento a nueve, es 9698 (figura 2.6b), y se obtiene restando de 9 cada uno de los digitos del 0301. El complemento a diez se obtiene sumando uno al complemento a nueve, por lo que la representacién de -301 en notacién de complemento a diez seré 9698 + I = 9699, tal como se ilustra en la figura 2.6c. En este modelo, los niimeros positives asumen un ran- g0 de 0 2.4999, en tanto que los niimeros negativos estén en el rango de 5000 a 9999. Se (a 2008 01k, 9000 9001, (20149 Gamrlementoa Oyo Bio Oho ig (e 1001 D110 1001 1000 e301). Complemeno as Orn “Go Ow Cho fe LOGE C110 1008 1001, 300% Complemento a 10 Dig Gy Oho Oo Figura 2.6 + Representacién BCD de los ndmeros 203 y -301 en (a) complementa a nueve, (6) complementa a 2.3 Formato de representacién en punto flotante La representacién de ntimeros en formato de punto fijo, que fuera analizada en la secci6n 2.2, ubica la coma decimal en una posici6n fija, y una cantidad fija y determinada de digitos tan- to ala inquierda como a la derecha de la coma decimal. Por consiguiente, este tipo de repre- sentacién puede requerir una gran cantidad de digitos para representar un rango de nimeros apropiado para determinada aplicacién. Por ejemplo, una computadora que deba representar 36_PRINCiPls DE ARQUITECTURA DE COMPUTADORAS niimeros de! orden del billén (millén de millones)? requerira, al menos, 40 bits a la izquier- da de la coma decimal, dado que 10'* es aproximadamente igual a 2". Si se debiera represen- tar ademas una fraccién equivalente al billonésimo, se requerirfan adicionalmente otros 40 bits a fa derecha de ta coma decimal, lo que darfa por resultado una palabra de 80 bits. En la préctica, suelen aparecer en los célculos nimeros que pueden ser mucho mayores 0 mucho menores que los mencionados, lo que requiere atin més espacio de almacenamiento en la computadora, Para manejar y almacenar ndmeros con 80 o mas bits de precisién se re- quiere una buena cantidad de hardware, y, por otra parte, las operaciones de célculo pueden Megar a resolverse més lentamente cuando se trabaja con cantidades mayores de bits. No abs- tante, también es cierto que en muchas ocasiones no se requiere una precisi6n muy fina cuan- do se trabaja con cantidades muy grandes y que, por el contrario, no se requieren nuimeros muy grandes cuando se trabaja con operandos pequefios. Como conclusién, la computadora ms eficiente puede imaginarse como aquello que soto tiene la precisién que se requicre. 2.3.1 Rango y precision en nimeros de punto flotante La representacidn de nimeros en formato de punto flotante permite representar un am- lio rango de nimeros con poca cantidad de digitos binarios; para esto, se separan los di- gitos utilizados para determinar la precisin de la representaciGn de aquellos necesarios ara representar el rango. El numero decimal de formato de punto flotante utilizado para expresar el niimero de Avogadro es +6,023 x 10% En esta representaci6n, el rango se expresa a través de una potencia de Ia base 10, 10% en este calso, y la precisién se expresa a través del mimero de punto fijo, 6,023 en este casi En la representacién de niimeros de formato de punto flotante, la parte que corresponde al valor en punto fijo se conoce habitualmente como mantisa del mimero. Asi, la repre- sentacién de punto flotante de una cantidad numérica queda determinada por un trio de elementos numéricos; el signo, el exponente y 1a mantis Ubicacién de a coma decimal > 2] BI] [5 lag 3 Signo Exponente ——-Mantisa Dos digitos Cuatro eigitos Figura 2.7 + Representaci6n de un nimero decimal en formato de punto fiatante, 2, Debe tenerse en cuenta queen la denominacion norteamericana de los nimeros, 10'2, aqui mancionado co- imo “bil6n”. se denomina “trillén”, Para los nortearnericanos, el “bitin” corrasponde a lo que en otras par- tes del mundo se conace como “mil millones” (10%) capiriuo 2 « REPAESENTACION OE LA WronMACiiN 37 El rango de fa representacién queda determinado basicamente por ta cantidad de digitos del exponente (en este ejemplo se utilizan dos digitos para la representaciGn del exponen- (c) y 1a base a la que ese exponente afecta (diez, en este caso). La precisién queda deter- minada por la cantidad de digitos de la mantisa (cuatro, en este ejemplo). Asi, el nimero completo puede representarse a través de su signo y 6 digitos, dos para el exponente y ‘cuatro para la mantisa. La figura 2.7 muestra un formato que podria utilizarse dentro de una computadora para la representacién del ntimero asi expresado, Nétese que, en este ejemplo, los digitos se empaquetan colocando primero el signo, Iuego el exponente y por ‘iltimo la mantisa. Este ordenamiento resulta préctico en las operaciones de comparacién de cantidades expresadas en et formato de punto flotante. El lector debe tener en cuenta que la coma decimal no debe almacenarse dado que ocupa siempre la misma posicién dentro de 1a mantisa, la que esté representada en formato de punto fijo. (Esta idea se ana- liza en la secci6n 2.3.2.) Si se requiere un rango mayor, y si a cambio se est dispuesto a sacrificar precisién, se pueden usar tres digitos para la parte fraccionaria y dejar entonces tres digitos dispo- nibles para el exponente, sin necesidad de aumentar la cantidad de digitos totales de la re- presentacién. Un método alternativo para aumentar el rango es el de aumentar la base del sistema de representacién, lo que incrementa la precisién de fos ntimeros mas chicos mientras disminuye la de los ntimeras més grandes. La posibilidad de plantear solucio- nes de compromiso entre rango y precisién es una de las ventajas principales de la repre- sentacin en formato de punto flotante, aun cuando reducir la precision puede provocar problemas que Ilevan al desastre, tal como se lo describe en un ejemplo planteado en la seccién 2.4, 2.3.2 La normalizacién y el esquema de bits implicitos La representaci6n de ndmeros en formato de punto flotante presenta como eventual pro- blema el hecho de que un mismo mimero puede representarse de distintas maneras, lo que complica las comparaciones y las operaciones aritméticas. Por caso, las siguientes formas numéricas son todas equivalentes: 3584.1 x 10° 3,5841 x 10? = 0,35841 x 10¢ Con el objeto de evitar el uso de representaciones multiples para el mismo numero, las representaciones de nimeros en formato de punto flotante tabajan de manera normali- zada, En este concepto, la coma decimal se desplaza a derecha 0 a izquierda y se ajusta el exponente en forma coherente con el desplazamiento de Ia coma decimal hasta ubi- carla a la izquierda del digito no nulo ms significativo, Por consiguiente, la expresién normalizada del nimero que aparece en el ejemplo anterior es la tercera, a la derecha de Jas tres. Como inconveniente, este esquema no permite representar el cero, por lo que su representaci6n debe hacerse a través de un procedimiento de excepcién. La excepcién ‘38_PRINGIPIOS DE ARQUITECTURA DE COMPUTADORAS planteada consiste en la representacién del cero a través de un mimero con mantisa to- talmente nula, Si la mantisa se representa como un niimero binario (esto es, en el sistema binario de numeracién), y si la condicién de normalizacién consiste en que la mantisa normalizada siempre comience con un I, no hay necesidad de almacenar ese 1, por lo que, efectiva- mente, la mayoria de los métodos de representaci6n de nimeros en formato de punto flo- tante proceden a no almacenar dicho bit inicial. En vez de almacenarlo, lo que se hace es “recortarlo” antes de empaquetar el ntimero para su almacenamiento, recuperéndolo at desempaquetar y Hevar e] numero a su representacién de mantisa y exponente. Como re- sultado de esta operaci6n se obtiene lugar para un bit adicional a la derecha de la manti- sa, lo que mejora la precision de la representaci6n. El bit asi eliminado se suele denomi- nar bit implicito. Por ejemplo, si en un formato determinado la mantisa luego de la normalizacién se representa como 0,11010, el pairén a ser almacenado es 1010 y el bit més significativo se trunca, se esconde, se sobreentiende. En el andlisis de la norma de representacién de punto flotante IEEE? 754 veremos que la misma representa nimeros utilizando un bit implicito. 2.3.3 Representacién de aiimeros de punto flatante dentro de la computadora. Introduccién Para ilustrar las caracteristicas importantes de la representaci6n de nimeros en formato de punto flotante se procederé a definir un formato simple de representacién. En principio, este formato puede parecer innecesariamente complicado. La mantisa se representard en formato de magnitud y signo, con un Gnico bit para representar el signo y tres digitos he- xadecimales (doce bits) como tamaiio de la representaci6n. El exponente serd un mimero de tres bits, expresado en exceso 4, con base 16. La forma normalizada de la cepresenta- ci6n tiene la coma fraccionaria ubicada a la izquierda de los tres digitos hexadecimales. Los bits que forman Ia palabra se empaquetardn de modo tal que el bit de signo que- de a la izquierda, seguido por el exponente de tres bits y, a continuacién, los tres digitos hexadecimales de la mantisa, El formato analizado no almacena ni la base del sistema de representacién ni ta coma fraccionaria. La razén fundamental para utilizar este formato aparentemente extrafio es la posibil dad que ofrece para comparar directamente dos nimeros por =, #, 2 y BM o Un némero grande ——» bY (1-5) 1-6 l- = ' Un intervalo pequefio— —b™ bs Un nimero pequeio —» BF (1-69) 1-6 \- =| ‘ ‘capfro 2 + REPRESENTACION OF LA INronMaciiN 45 Se utiliza en este caso la representacién de un mimero pequefio, en lugar de la represen- tacién correspondiente al ménimo nimero admisible, debido a que el intervalo, grande, entre cero y el primer némero representable. es un caso especial. Se propone considerar el problema de la conversién del nimero 9,375 x 10 aun forma- to de notacién cientifica utilizando el sistema binario de numeracién. Esto significa que el resultado deberia adoptar ta forma x,yy x 26. El proceso se inicia con la conversion de! valor decimal punto flotante a un formato de punto fijo. Con este objeto se desplaza la co- ‘ma decimal dos posiciones a la izquierda, lo que corresponde al exponente -2, El niime- 10 resultante es 0.09375. Mediante el método de las multiplicaciones se procede a con- vertir el mimero decimal asi obtenido at sistema binario, representandoto en punto fijo: 009375 x 2 = 0,1875 01875 x 2 0,375 0,375 x 2 0,75 0,75 x 2 1,5 05 x 2 = 10 Entonces, resulta que (0,09375),9 = (0,00011),. El dltimo paso consiste en la conversién del valor a la representaci6n normalizada de punto flotante, lo que Heva a que 0,00011 = 0,00011 x = IIx 240 2.3.5 La norma de representacién IEEE 754 Existen muchas maneras de representar néimeros en formato de punto flotante, algunas de las cuales ya han sido analizadas. Cada representaci6n tiene sus caracterfsticas propias en términos de rango, precisién y cantidad de elementos que pueden representarse. En unt esfuerzo por mejorar la portabilidad de los programas y asegurar la uniformidad en la exactitud de las operaciones en el formato de punto flotante, el [EEE desarroll6 su nor- ma IEEE 754 para la representacién de niimeros en el formato de punto flotante. Existen algunas lineas de productos anteriores a dicha norma que no la utilizan, como las compu- tadoras 1BM/370, las computadoras VAX (DEC, Digital Equipment Corporation) y la \i- nea Cray, pero précticamente todas las nuevas arquitecturas utilizan en alguna forma la estructura IEEE 754, La norma {EEE 754, tal como se la describe, debe estar asociada con un sistema de computacién, no siendo necesario que la rel En consecuencia, mientras la computadora siga respetando la norma, el soporte puede realizarse a través de una combinacién de hardware y software. 46 PRINCIPIOS GE ARQUITECTURA DE COMPUTANORAS 2.3.5.1 Formatos Hay dos formatos principates en Ia norma IEEE 754: el formato de simple precisin y el formato de doble precisién. La figura 2.10 resume ta distribuci6n de ambos forma- tos. E] formato de simple precisién requiere 32 bits, mientras que el de doble precision utiliza 64 bits. El formato de doble precisién es, simplemente, una versién mas amplia del formato de simple precisién. bie ———— Simple [Taam ae | pee” Exponenie Manisa Sign a A 6a bits, ei, Leal srs , Exponente Mantisa Figura 2.10 ¢ Formatos IEEE 754 para punto flotante simple precisidn y doble precisién. EI bit de signo se ubica en la posiciGn det bit més significativo, a la izquierda del nimero, € indica que el mimero a representar es positivo o negativo mediante un 0 o un 1, respectiva- mente. A continuacién se ubica el exponente, de ocho bits, en formato exceso 127 (no 128). Tal como se describe luego, las combinaciones 0000 0000 y III IIL se reservan para casos especiales. Pata el formato de doble precisi6n, se utiliza un exponente de 1t bits, ex- presado en exceso 1023, y se reservan las combinaciones 000-0000 0000 y 111 111 ILI. A continuaci6n, se representa la mantisa, en binario y formada por 23 bits. A la izquierda de la coma fractionaria existe un bit implicito, el que cuando se lo considera en conjun- to con la mantisa de simple precisién, constituye una palabra de 24 bits, de la forma 1 fffff...f. En este formato, el patrén filff.f representa los 23 bits de la mantisa que se almacenan. El formaio de doble precision también utiliza un bit implicito a la izquierda de la coma fraccionaria, lo que representa un valor significativo de 53 bits. En ambos formatos, el niimero se representa normalizade a menos que la estructura soporte nui- meros denormalizadas, segiin se describird mas adelante. Existen en la norma cinco tipos de nimeros que se representan. Los niimeros no nu- Jos adoptan los formatos descriptos anteriormente, La norma admite una llamada repre- sentacién “limpia” del cero, formada por la combinacién reservada 0000 0000 en el cam- po del exponente, y todos ceros en Ia mantisa, El bit de signo puede ser cero 0 uno, por To que hay dos representaciones para el cero. E1 infinito puede representarse mediante la combinacién reservada 1111 It] enelex- ponente, acompafiada por una mantisa de valor cero y el bit de signo en cero o uno. La re- presentacién del infinito se usa para manejar situaciones de desborde o para ofrecer una representaci6n valida para la divisién de un némero (distinto de cero) por cero. Si se plan- tea la cuestién de dividir cero por cero o la de dividir infinito por infinito, el resultado CAPHrULO 2 + REPRESENTACION DE LA INFORMACION 47 queda indeterminado. En este caso, la representacién NaN (not a number: no es numéri- co) presenta en el campo del exponente la combinacién reservada 1111 1111, en fa man- tisa un valor no nulo, y el bit de signo indistintamente en 0.0 1. Puede obtenerse también un NaN si se intenta calcular la rafz cuadrada de -1. ‘Tal como sucede en todas las representaciones normalizadas, existe un intervalo impor- tante entre cero y el primer nimero que puede representarse. La representacién de nime~ £08 incluidos en este intervalo se resuelve mediante la representaci6n del “cero sucio”, de- normallizado, En este caso, el bit de signo puede ser 00 1, ¢l campo del exponente contiene Ja combinaci6n reservada 0000 0000, que representa -126 en el caso de simple precisién y -1022 para doble precisién, en tanto que la mantisa contiene el valor real correspondiente a la magaitud del némero. Por lo tanto, no hay bit implicito en este formato. Nétese que la notaci6n denormulizada no es una represemaciGn no normalizada. La diferencia clave en- tre ambas palabras consiste en que para un nimero dado existe una sola representaci6n de- normalizada, en tanto que existen muchas representaciones no normalizadas. La figura 2.11 ilustra algunos ejemplos de nimeros expresados en formato de punto flotante segin Ia norma IEEE 754. Los ejemplos desde (a) hasta (h) se representan en for- mato de simple precisin y el ejemplo (i) se muestra en formato de doble precisién. El ejemplo (a) ilustra un namero cualquiera en formato de simple precisi6n. Debe notarse que la mantisaes 1,101, y que, sin embargo, solo se representa explicitamente Ia fraccién (101). El ejemplo (b) utiliza el minimo exponente en simple precisién (-126) y el ejem- plo (c) utiliza el exponente maximo en simple precisién (+127). Los ejemplos (4) y (e)ilustran las dos representaciones del cero. El ejemplo (f) repre- senta el formato del 40, Existe, asimismo, un formato alternativo para -c. El ejemplo (g) muestra un niéimero denormalizado, Nétese que si bien el nimero en si es 2, el exponen- te minimo representable sigue siendo -126. El exponente para niimeros denormalizados en simple precisi6n siempre es -126, representado por ka combinacién 0000 0000 y una man- tisa no nula. La mantisa representa directamente la magnitud del miimero. Asi se tiene que 42° = 40,01 x 2", representada por la combinacién indicada en la figura 2.11g. El ejemplo (hi) nuestra un NaN de simple precisién, Un NaN puede ser positivo 0 negati- vo. Finalmente, el ejemplo (j) replantea la representaci6n de 2", pero utilizando ahora el for- mato de doble precisiGn, La representacin corresponde a un néimero cualquicra de doble pre- cisi6n y, por ende, no hay consideraciones especiales para hacer en este caso. Notese que 2% tiene una mantisa de 1,0, por lo que la parte fraccionaria esté totalmente formada por ceros. Ademés de los formatos de simpte y doble precisi6n, existen dos formatos que se cono- cen como extendido simple y extendido doble. Los formatos extendidos no son visibles para el usuario, pero se usan con el objeto de mantener internamente una mayor precisin durante los edlculos para reducir los errores de redondeo. Estos formatos extendidos incre- ‘mentan el tamafio de los exponents y de las mantisas en una cantidad de bits que puede va- riar en funcién de la implementacién. Por ejemplo, el formato extendido simple agrega al menos tres bits al exponente y ocho a la mantisa, El formato extendido doble est4, en gene- ral, formado por 80 bits, con un exponente de 15 bits y 64 bits para la mai 48_PRINciPIas ne ARQUITECTURA DE COMPUTADDRAS Valor Patran binario Signo Exponente Manisa @ — +Llorx2s 010000100 1101 0000 0000 0000 0000 0000 () 01011276 10000 0001 ‘010 1 100 0000 0000 0000 0000 © Hox 6 LAO ‘000 0000 0000 0000 0600 0000 @ +0 0 00000000 900.0060 0000 6000 0000 0040 © 0 1 0060 0000 ‘200.0000 0000 6000 0000-0000, wo 4 0 i (900.0000 e000 4000 8000 0000 @ 42% 0 0000 0000 (010.000.0000 0000 0000 0000 a 4NN 0) TUT (011 0111 6000 0000 0060 G000 @ 4208 0 o1LoWENIN ‘0900 0000 0000 0000 0000 0000 ‘9000 000 0000 0000 000 000-0000 Figura 2.11 » Ejemplas de niimeros en formato de punto flotante, representados segin la norma IEEE 754, en formatos de simple precisién (a-h) y de doble precisidn (i). Los espacios se usan para faciltar la visuatizacién. No son parte de la representaci¢a, 2.3.5.2 Redondeo Una implementaci6n de la norma IEEE 754 debe proveer al menos un formato de simple endo los restantes formatos opcionales, Mas aiin, el resultado de cualquier operacién que se realice con niimeros expresactos en formato de punto flotante debe ser precisa en el orden de la mitad del bit menos significativo de la mantisa. Esto significa que durante el calculo pueden ser necesarios alpunos bits adicionales de precisién (bits de guarda), y que debe haber un método apropiado para redondear el resultado interme- dio al némero de bits que constituyen la mantisa, Existen cuatro formas de redondear mimeros en la norma IEEE 754, Uno de los mé- todos redondea a cero, el otro redondea a tee y el otro, hacia -c°. Por defecto, el redondeo se realiza hacia el ntimero representable mas cercano. Los casos intermedios redondean hacia el nimero cuyo digito menos significative es par. Por ejemplo, 1,01101 redondea hacia 1,0110, en tanto que 1.01111 redondea hacia 1,1000. 2.4 Estudio de un caso: una falla en un misil defensivo Patriot causada por una pérdida de precision Durante el conflicto bélico ocurrido en Ios afios 1991-1992 entre las fuerzas aliadas y el ejército iraqui, conocida como “Operacién tormenta del desierto”, tas fuerzas aliadas uti- lizaron una buse militar ubicada en Dhahran, Arabia Saudita, In que se hallaba protegida por seis barreras basadas en misiles Patriot de origen estadounidense. El sistema Patriot habia sido desarrollado originalmente para ser mévil y para funcionar solo por algunas horas, con el objeto de evitar su deteccién. El sistema Patriot rastrea ¢ intercepta ciertos tipos de objetos, como los misiles bal ticos Scud, uno de los cuales acert6 en una barraca de la marina norteamericana en Dhah- ran el 5 de febrero de 1991, como consecuencia de lo cual fallecieron 28 norteamerica- nos. El sistema Patriot fallé en el rastreo ¢ imercepcién del misil Scud que llegaba, debido a una pérdida de precisidn en la conversi6n de niimeros enteros a formato de pun- to flotante. Los sistemas de radar operan a través del envio de un tren de pulsos electromagnéti- cos y de la posterior escucha de las seftales de retorno que pudieran haber sido reflejadas por objetos ul 10 det haz enviado. Si el sistema de radar del Patriot de- tecta un objeto aéreo de su interés, por ejemplo un Scud, procede a determinar la posicién de un detector de rango (véase la figura 2.12), el que procede a estimar la posicién que ‘ocupard el objeto rastreado en el momento del préximo barrido. Este detector también permite filtrar la informacién proveniente de las afueras de los Ifmites establecidos, lo que simplifica el rastreo. La posici6n del objeto (en este caso un Scud) se valida si se lo encuentra dentro del rango establecido. La determinacién del lugar en que se produciré la préxima aparicién del misil depen- de de la velocidad del mismo, La velocidad del Scud se determina por su cambio de po- j6n con relacién al tiempo transcurrido, y el tiempo se actualiza desde el reloj interno del Patriot en intervalos de 100 ms. La velocidad se representa con un mimero de 24 bits en formato de punto Mlotante, en tanto que el tiempo se representa como un niimero ente~ ro de 24 bits. Con el objeto de predecir la siguiente aparici6n del Scud, ambos valores de- ben representarse como mimeros de 24 bits en formato de punto flotante. rados en el cat Misil era dol aleance Volidacién Area de alcance Laaccién de bisqueda vbica al misil on algin lugar dentro el haz, Sistema Misi Pateiot de radar Figura 2.12. Efecto de los errores de conversién en e: cAloulo del rango de posicién, ‘50 _eRunereios DE ARQUITECTURA DE COMPUTADORAS La conversin del tiempo desde su formato de punto fijo al formato de punto flotanie da por resuliado una pérdida de precisién que aumenta en la medida en que aumenta eb tiempo medido por el reloj interno. El error introducido por la conversién trae como re- sultado un error en el cflculo del rango de posicién, proporcional ala velocidad del ob- jetivo y del tiempo transcurrido desde el comienzo del funcionamiento del sistema. La causa del ineidente de Dhahran, luego de un funcionamiento ininterrumpido del Patriot de més de 100 horas, fue un error de desplazamiento, en el rango calculado, de 687 m, lo que a su vez provocs la fallida intercepcién del Scud. EI problema de conversién se conocfa desde al menos dos semanas antes del inci- dente mencionado, por medio de informacién entregada por Israel; pero la llegada de} nuevo software con lus correcciones no se produjo sino hasta el dia anterior al ataque, debido a la dificultad que implicaba el realizar correcciones del sistema en un ambien- te de guerra. Se podria haber adoptado como solucién transitoria al problema, hasta tanto se tuviese disponible In modificacién requerida de software, la de reiniciar fre- cuentemente el sistema y, por ende, el reloj. Dado que el personal de campo no tenia in- formacién de cudnto tiempo era mucho tiempo en el funcionamiento continuo del siste- ma, -lo que ya se sabia a partir de ta informacién entregada por Israet-, esta simple solucién no se implementé nunca. La leccién que deja este caso es que hay que estar muy atento a las limitaciones que implica confiar en operaciones con formatos de pre- cisién finita, 2.5 Cédigos alfanuméricos A diferencia de los mimeros reales, que tienen un rango infinito, existe solo una cantidad finita de caracteres representables, Por consiguiente, para representar un conjunto com- pleto de caracteres hacen falta unos pocos bits por carfcter. Se describen aqui tres repre- sentaciones habituales en la codificacién de caracteres, los cédigos alfanuméricos ASCII, EBCDIC y Unicode. 2.5.1 El conjunto de caracteres ASCII La figura 2.13 representa el conjunto de caracteres que forman el cédigo ASCIE (American Standard Code for Information Interchange), simbolizados en notacién he- xadecimal. La representacién de cada cardcter requiere 7 bits, y las 128 combinacio- nes resultantes son caracteres vilidos. Los caracteres representados por los valores he- xadecimales 00-1F y el valor 7F corresponden a caracteres especiales de control usados para la transmisién de datos, el control de impresién y otros propésitos no im- primibles. Los caracteres restantes son todos imprimibles, ¢ incluyen la representa- cidn de letras, niimeros, simbolos y el simbolo espaciador. Los digitos 0-9 aparecen en secuencia, tal como lo hacen los dos alfabetos correspondientes a las letras maytis- Ccaptruto 2 » REPRESENTACION DE LA WFoRMACHiN 51 culas y mindsculas.5 Esta organizacién simplifica el manejo de los caracteres. Para obtener el valor de un digito a partir de su representacién ASCII, se debe restar (30), de dicha representacién. Para convertir el cardcter ASCII “5°, que se encuentra en la posici6n (35),,. al mémero 5, se caleularé (35 — 30 = 5),,. Para convertir una letra ma- yuscula en su correspondiente mindscula, se le suma (20), al valor correspondiente a la mayiiscula. Por ejemplo, para convertir la letra “H”, cuya posici6n es (48), en la representacién ASCII, en la letra “h”, ubicada en la posicién (68),,, se debe calcular (48 + 20=68),,. OO NUL]10 DLE]20 SP ]30 0 [4% @ [50 P [60 ~ |7 p or son} ir per}21 1 131 1 far A [51 Q jor a [at gq 02 STX |12 DC2Z}22 * /32 2 |42 B [52 R Jez b |72 © o3 etx} 13 Dc3|23 # 133 3 |as c [53 s [6 ¢ [73 s os BOT| 14 pCa }24 § [34 4 [ad D [54 T [64 d |7a t 05 ENQ}IS NAK}25 % [35 5 [45 E [55 U [65 © |75 06 ACK} 16 SYN|26 & |36 6 [46 F [56 V [66 1/76 v 07 BEL | 17 ETB/ 27 * [37 7 [47 G 157 W lo? g 77 w 08 BS 18 CAN)28 (¢ [38 8 [48 H [58 x [6s h [78 x oo HT |19 EM |29 ) [39 9 [49 1 |s9 ¥ [69 i [7 y OALF |1ASUB/2A * [3A 4A 4 [5A Z |6A j [7A 7% oB VT |iB Esc }28 + [3B : [4B K |5B [ joR k [7B ocrr jicrs |2c * \3c < Jac L jsc \ loc 1 |7c } opcr }ipGs /20 - [3D = [4D M /SD | |6D m | 7D } OE SO }iE RS |2e . [3 > [4E N [SE * joE n [7E ~ or st jipus jor / |3F 7 Jaf o |5F _ [6F o | 7F DEL NUL Nulo FF Cambio de pagina CAN. Cancelacién SOH Comienzo de encaberla CR Retommoacomienzo de linea EM Final de medio fisico STX Comienzo de texto SO Shift out SUB Sustitucidn ETX Finde texto St Shiftin ESC Salida EOT Finde wansmision DLE Salidadel vincalo de datos FS Separaddor de archivos ENQ Consulta DCI Control de dispositive GS Separaor de grupos ACK Acuse de recibo C2 Contr de dispositive 2 RS Separador de registros BEL Campanilla DC3_ Control de dispositivo 3. US Separador de unidudes BS Retroceso C4 Control de dispositivod —- SP_—_Espacio HT Tabulaci6o horizontal ©=—--NAK Acuse negativode ecibo DEL Borrar LE Cambio de tinea SYN. Sincronismo (nactive} VI Tabulacién vertical ETB Fin de blogue de transmisién Figura 2.13 » El digo de caracteres ASCII, representado en valores hexadecimales. 5, Conta comentario, los carectores “a” y “A” son diferentas y tienen cbdigns diferentes en ta representacién ASCII Las letras mintsculas se congcen como de tipo inferior (lower case), y fas mayisculas como de tipa ‘superior (upper case). La denominacién proviene de la posiciénrelativa de fos caracteres en los sistemas dé tipogratia, Las letras mayisculas aparecen encima de las mindsculas, lo que da origen a la nomenclature de tipo superior-iferio.ér la actualidad, si bien ta tipogralfa se realiza casi siempre en forma electronica, se si {Que manteniendo la nomenclatura tradicional. 52_PRINGIPIOS GE ARQUITECTURA DE COMPUTADORAS 2.5.2 El conjunto de caracteres EBCDIC Un problema que surge en la utilizaci6n del cédigo ASCIL es su capacidad para represen- tar solo 128 caracteres, lo que plantea una limitacién en muchos teclados que ademds de fas letras mayisculas y mindsculas incluyen una buena cantidad de caracteres especi: les.* El e6digo EBCDIC (Extended Binary Coded Decimal interchange Code) ¢s un 06- digo de ocho bits utilizado ampliamente por las computadoras IBM. Dado que los carac~ teres ASCII suelen representarse en un formato de ocho bits (un cardcter por byte), agregandose a los siete bits ASCII un cero 0 un uno, el uso de EBCDIC no plantea ma- yores necesidades de espacio para el almacenamiento de caracteres en una computadora. No obstante, para la transmisién de datos en serie (véase el capitulo 8), el uso de un cO- digo de ocho bits requiere tiempos mayores que la transmisién de un c6digo de siete bits, y en este caso, el cédigo de mayor tamaiio sf establece una diferencia. El cédigo EBCDIC se representa en la figura 2.14. Se puede observar la existencia de combinaciones no utilizadas, las que pueden usarse, Ilegado el caso, para caracteres es- pecificos de alguna aplicacién. El hecho de que haya huecos en las secuencias de las le- tras maydsculas y mimisculas no genera mayores inconvenientes, dado que el manejo de los caracteres puede seguir haciéndose como en el cédigo ASCII, solo que con diferentes desplazamientos. 2.5.3 El cédigo UNICODE Los c6digos ASCII y EBCDIC sirven para soportar los conjuntos de caracteres (latinos) Sricamente dominantes en las representaciones de la computacién, Existen muchos otros conjuntos de caracteres en uso en el mundo, y no siempre es posible la conversi6n de cédigo ASCII al cédigo correspondiente al idioma X. Por consiguiente, se hizo nece- sario el surgimiento de un nuevo conjunto de caracteres, universal y normalizado, al que se conoce como Unicode, y que sirve para soportar una buena cantidad de los alfabetos que se usan en el mundo. Unicode es una norma en desarrollo, que se modifica a medida que se le incorporan los simbolos correspondientes 2 alfabetos nuevos, y a medida que los conjuntes de caracteres incorporados se van modificando y se refinan las correspondientes representaciones. En la versiGn 2.0 de Unicode se incluyen 38.885 caracteres diferentes, los que cubren los princi- pales lenguajes escritos de uso en América, Europa, Medio Oriente, Asia, India y las islas del Pacifico. * NW. de T: Los autores se refieren al c6digo ASCII de 7 bits, 0 estindar, utiizado en el idioma inglés. La limi- 1aci6n que plantean se elimina en el c6digo conocido como ASCII extendido, que con 8 bits admite represen- ‘ar 256 caracteres. De hacho, la traducci6n de esta texto no podria haberse levaca a cabo sin la uliizacién 4e los caracteres dal lenguaje espafiolincluidos dentro de los 128 caracteres adicionales aportados por el édigo extendido. STX DLE BS ACK SOH ENQ ESC BYP CAN RES SI 80 DEL SUB NL CAPITULO 2. REPRESENTACION DE LA iNFoRMACIEN $3 00 NUL ol SOH 02 STX 03 ETX 04 PF os HT 06 LC 07 DEL 08 09 04 SM 0B VT 0c FF 0D CR OE So OF ST $0 DLE ai DCL 12 pcz 13 TM 14 RES 15 NL 16 BS IL 18 CAN 19 EM 1A CC 1B CUl IC IFS 1D IGS 1B IRS IF (US 20 DS 21 SOS 22 FS 2 24 BYP 25 LE 26 ETB 27 ESC 28 29 2A SM 2B CU2 2 2D ENQ 2E ACK 2F BEL 32 SYN 37 BOT 38 39 3A 3B CU3 3c Dea 3D NAK 3E 3F SUB 40 SP 4 42 43 44 45 46 a7 a8 49 4A @ 4B 4c 4D 4E aE 30 51 32 53 34 55 56 37 58 59 SA 5B sc sD 5E oF. Ronan ee daw 60 61 2 63 64 65 66 oT 68 oo 6A 6B 6c 6D 6B oF 0 n 2 B a” 5 76 7 B D TA 78 1 2D TB TF, > 2 # @ 30 Ad cof [EO \ gia jar - fcr a [EL g2 b [az s [c2 B [F2 S g3oc last [cs c [Bs T gad jaa u [cs D [Es U ase [as v [cs & [ES Vv a of [as w [co F [ES Ww ag [a7 x |c7 G IE? x ge oh |As y [cs H [EB Y¥ go i fag z joo 4 feo z BA AA CA EA 8B AB cB EB 8c AC cc EC aD AD cD ED 8E AE cE EE 8F AF oF EF 90 BO Do y [FO 0 gi j [Bt pi {riot 92k | B2 D2 K |[F2 2 935 | BS bs L [FB 3 94 om | Ba ba M [FS 4 95 on | BS ps N [FS 5 96 0 | BG D6 0 |F6 6 97 p |B7 br p |e 7 98 oq | Bs Ds Q [FR 8 oo or [Bo po R [Po 9 9A BA DA FA | 9B BB DB FB 9c BC De FC 9D BD DD FD 98 BE DE FE oF BF, DF FF Comienzo de texio Salida del vinculo de datos PF Retroceso DS_ Seleccionar di ‘Acuse de recibo PN Actuat perforado ‘Comienzo de encabezado SM Fijar modo Consulta LC Lower Case Escape CC Cursor Control ‘Saltenr ER Acerca de cima Cancelaciéa EM End of Medium Reponer Shift In TM Tape Mark Shift Out UC Maydsculas Borrar Reemplazar Linea menor ‘VT. Tabulaciéa verical IRS Cambio de Tinea RS. Sepurador de registrosDC1_ Conuol de dispostivol BEL Campanitla Detener perforadar DC2 Console dispostive 2 SP Espacio DCA Convol de dispostivod TL Inactive CUI Usodeletiene 1 NUL Nulo GU2 Uso del cliente 2 CU3. Uso delelieme 3 SYN Synctranous tle TFS. Separador de archivos de imtercambio EOP Finde canstision FF Cambio de pigina ETB Fin del bloque de transmisién NAK Acuse negaivo de resist SMM Comienzo de mensaje normal FS. Separador de archivos SOS Co mienzode significado HT Tahulacién horizontal IGS Separador de grupo de intercambio UC Mayisculas de registro de intercambio HWS. ‘Separador de unidad de imercambio Figura 2.14 El cédigo alfanumérico EBCDIC, representado con valores hexadecimates. (54 _ PRINCIPIOS DE AROUITECTURA DE COMPUTADORAS ‘0000 NUL [0020 SP [0040 @ [0060 ~ [O80 Crt [OOAO NBS[O0cO X O0RO a 001 oH] 0021 1 | oat A }o0sL a fons) Ci food) ; | O0CI A JOORI 4 0002 STX |0022 "| 942 B | 0062 b | 0082 Cul | OGAZ ¢ |90CZ2 A |QOE2 & 0003 ETx|0023 # [0013 C |o062 ¢ | 0083 Giri /00a3 £ ]00C3 A |OOES & 004 EOT]002s s [oo D Joos: a joss Cui ooas a }oocs A fooBt 6 Dons ENG] 002s % /O04 E [0065 ¢ /otes cin] ooas y foocs A fooas a 0006 ACk|0026 & |0046 F |0066 ¥ | 0086 Cri ]ooas | }oocs & |O0ES = Goor Bet. Jaonr {0:7 G [0057 g [a7 cui Joon? § fooc7 g /ane7 ¢ og Bs |oo2s ¢ {oo H Joos: fh | 008s Cri ooas ~ loocs £ |oves @ 009 7 }6029-) /0049 1 [0069 i | 0089 Cin fooAS © | ooce & | 00H « OOOALF [002A * /OO4A J | O06A j | 008A Cis] | OGAA + | OOCA B | QOEA & coos vt |oo2B + |ooae K |O06B k | 0088 Cul }O0AB « |00CB E | OOEB & goo FE joc * Joo & fonsc 1 Joosc Get fooac + /oxce 1 | onEc coop cr 0020 - ood x foosd m foosD Cui |ooAD = | oocD { | o0eD i OVE SO [O02 . [OOK N /O06E n OO8E Cul [OQAE @ | ONCE i | OORE i OOF Si foo2F —¢ onde © [oo6F o | 00RF Cut |ocAF ~ | oOCF 7 |ooEF i a1 DLE}0030 o | 0050 P |o070 p | 0090 Cui |ooBO * | ooD0 D | OOFD ¢ art DCi }o031 a }o0s1 Q jor! q | 009 Cut }coph + |oop) NX | oF & oo12 DCz} 0032 2 |o0s2 RK [0072 +r | 0092 Cri ]ooB2 » |o0D2 d | 0oR o 0013 DC3 [0033 3 |0053 S [0073 s | 0093 Cui ]o0B3 > |00D3 O | 00F] 6 oo14 DC4 [0034 4 | 0054 T | 0074 ¢ | 0094 Cul ]ouBa * |ooDs 6 | GOFe & OOIS NAK}0035 5 0055 U {0075 u | 0095 Cit ]0oBS w |o0DS 6 | 00Rs o 0016 SYN |0036 6 | 0056 Vv |0076 v | 0096 Cui |o0ns 9 |ooDe 6 |OOFS 6 oor7 Ere }0037 7 |o0s7 w }oo77 w [0097 Cut }oo7 ° |oop7 x | oor? + Goi CAN}0038 8 |0058 X 0078 x | G09 Cri jOORR , | O0D8 @ | OOF8 o 0019 EM [0039 9 | 0059 Y |0079 y | 0092 Cui |o0B2 * ooD9 U | OOFe a OO1A SUB]003A : | 005A Z [007A z | 009A Cit |OORA 2 [OODA U | OOFA 6 OLB ESC [0038 }O0sB | |OO7B { | 0098 Ci /OOBB » /ooDB C | OOFR o OIC FS J003C < Jousc \ Joa7c | | o09C Cul | OBC 14 |oODE C | WFC & 001DGS }003D = |00sD | 007 } | GoD Cui | o9BD 172 joopD ¥ | OORD b corr RS /9035 > }onse * Joo7e ~ | O09E Cui |ooBE 34 |onDE ¥ |OOFE p corr us _|003F_? | 00sF__ | 007F DEL | O09F Cul | OOBF_, [OODF_g | Gorey NUL Nu ‘SOH Comtienzo de eneahezado Cancelacién ‘SP Espacio STK Sttof text EOT Finde taosmisin Finale medio ico DEL Borar ETX Endofien DCI Com de dispositive L Swsiucién tl Control ENQ Enquiy C2 Contol de dispositive 2 Escape FF Combio de nigina ACK Acwederenbo DCI. Control de dispositive 3 Separator de eampes CR Retarw a comienze de nea BEL Compania DC# Com! de dispositive 4 Sepereder de grupos SO Shiftout BS Rewoceso INAK Acusexegativo de recibo Scparmor de regicies St Shiftin HT Tabulacién harzonts NBS. Espacio sie inzerupeién LF Cambiodelinea ETB. Fin det bloque de wansmis Sepicador de unidades DLIE Said dl vineul de datos Sinercnismo (inactive) VT Tabulacién venical Figura 2.15 * Los primeros 256 cédigos de Unicode, con sus representaciones hexadecimates. La norma Unicode utiliza un conjunto de caracteres de 16 bits, en el que hay correspon- dencia biunivoca entre tos caracteres representados y las palabras de 16 bits. Si bien Us code soporta muchos mas caracteres que ASCII o EBCDIC, no es 1a norma de mayor im- portancia, En efecto, Ia norma Unicode de 16 bits es un subconjunto del Conjunto Universal de Caracteres ISO 10646, de 32 bits de palabra (UCS-4), Los cédigos correspondientes a los 256 primeros caracteres Unicode se muestran en Ia figura 2.15, de acuerdo con la versi6n Unicode 2.1, Nétese que los primeros 128 carac- teres coinciden con los del ASCII.

Вам также может понравиться