Organización de computadoras :

Tanenbaum, Andrew S. 1944-

Organización de computadoras : un enfoque estructurado / Andrew S. Tanenbaum. - 2da. en inglés, 1ra. en español. - México : Prentice Hall, 1985. - 507 p.

CONTENIDO
PREFACIO XII
1 INTRODUCCION 1
1.1. LENGUAJES, NIVELES Y MAQUINAS VIRTUALES 4
1.2. MAQUINAS MULTINIVEL ACTUALES 5
1.3. EVOLUCION HISTORICA DE LAS MAQUINAS MULTINIVEL 8
1.4. HARDWARE, SOFTWARE Y MAQUINAS MULTINIVEL 11
1.5. PROCESOS 14
1.6. PLAN DEL LIBRO 17
2. ORGANIZACION DE LAS COMPUTADORAS 21
2.1. PROCESADORES 21
2.1.1. Ejecución de las instrucciones 22
2.1.2. Ejecución de instrucciones en paralelo 25
2.1.3. Clasificación de los procesadores 27
2.2. MEMORIA 29
2.2.1. Bits 29
2.2.2. Direcciones de memoria 30
2.2.3. Metabits 31
2.2.4. Memoria secundaria 33
2.3. ENTRADA/SALIDA 38
2.3.1. Dispositivos de E/S 38
2.3.2. Procesadores de E/S 39
2.3.3. Codificación de los caracteres 39
2.3.4. Códigos para corrección de errores 40
2.3.5. Códigos dependientes de la frecuencia 43
2.4. REDES DE COMPUTADORAS Y SISTEMAS DISTRIBUIDOS 47
2.4.1. Redes de ámbito extenso 47
2.4.2. Telecomunicación 50
2.4.3. Redes locales 55
2.4.4. Sistemas distribuidos 57
2.5. RESUMEN 58
3. EL NIVEL DE LOGICA DIGITAL 63
3.1. COMPUERTAS PUERTAS Y ALGEBRA BOOLEANA 63
3.1.1. Compuertas puertas 64
3.1.2. Algebra booleana 66
3.1.3. Realización de funciones booleanas 69
3.1.4. Equivalencia entre circuitos 71
3.2. CIRCUITOS BASICOS DE LA LOGICA DIGITAL 74
3.2.1. Circuitos integrados 74
3.2.2. Circuitos combinacionales 78
3.2.3. Circuitos aritméticos 84
3.2.4. Relojes 87
3.3. MEMORIA 90
3.3.1. Biestables 90
3.3.2. Biestables accionados por flanco y registros 93
3.3.3. Organización de las memorias 96
3.3.4. Propiedades de las memorias 99
3.4. MICROPROCESADORES Y MICROCOMPUTADORAS 102
3.4.1. Pastillas de microprocesador 102
3.4.2. Buses de microcomputadora 103
3.4.3. El microprocesador Z80 106
3.4.4. El microprocesador 68000 112
1.5 INTERCONEXION 115
1.5.1. Chips pastillas de E/S 115
3.5.2. Descodificación de direcciones 117
3.5.3. Un ejemplo de microcomputadora 120
3.6. RESUMEN 122
4. EL NIVEL DE MICROPROGRAMACION 127
4.1. REPASO SOBRE EL NIVEL DE LOGICA DIGITAL 128
4.1.1. Registros 128
4.1.2. Buses conductores 129
4.1.3. Multiplexores y descodificadores 131
4.1.4. Unidades aritméticas y lógicas y desplazadores 132
4.1.5. Relojes 133
4.1.6. Memoria principal 134
4.1.7. Encapsulado de los componentes 135
4.2. UN EJEMPLO DE MICRO ARQUITECTURA 137
4.2.1. La ruta de datos 137
4.2.2. Microinstrucciones 139
4.2.3. Cronología de las microinstrucciones 141
4.2.4. Secuenciamiento de las microinstrucciones 144
4.3. UN EJEMPLO DE MACROARQUITECTURA 146
4.3.1. Pilas 146
4.3.2. El juego de macroinstrucciones 152
4.4. UN EJEMPLO DE MICROPROGRAMA 154
4.4.1. El lenguaje microensamblador 154
4.4.2. El ejemplo de microprograma 156
4.4.3. Observaciones sobre el microprograma 160
4.4.4. Perspectivas 161
4.5. EL DISEÑO DEL NIVEL DE MICROPROGRAMACION 162
4.5.1. Microprogramación horizontal frente a microprogramación vertical 162
4.5.2. Nanoprogramación 170
4.5.3. Mejora del rendimiento 171
4.6. NIVEL DE MICROPROGRAMACIÓN DE LA 370/125 DE IBM 176
4.6.1. Microarquitectura de la 370/125 de IBM 177
4.6.2. Microinstrucciones de la 3125 de IBM 181
4.7. NIVEL DE MICROPROGRAMACIÓN DE LA PDP-11/60 184
4.7.1. Microarquitectura de la PDP-11/60 184
4.7.2. Microinstrucciones de la PDP-11/60 187
4.8. RESUMEN 192
5. EL NIVEL DE MAQUINA CONVENCIONAL 197
5.1. EJEMPLOS DE NIVEL DE MAQUINA CONVENCIONAL 197
5.1.1. El Sistema/370 de IBM 198
5.1.2. La PDP-11 de DEC 204
5.1.3. La 68000 de Motorola 207
5.1.4. La Z80 de Zilog 211
5.2. FORMATOS DE INSTRUCCION 218
5.2.1. Criterios de diseño de formatos de instrucción 220
5.2.2. Códigos de operación con extensión 221
5.2.3. Ejemplos de formatos de instrucción 224
5.3. DIRECCIONAMIENTO 232
5.3.1. Direccionamiento inmediato 233
5.3.2. Direccionamiento directo 233
5.3.3. Direccionamiento de registros 234
5.3.4. Direccionamiento indirecto 235
5.3.5. Indexación 237
5.3.6. Direccionamiento por registros de base 239
5.3.7. Direccionamiento de pila 241
5.3.8. Direccionamiento en la PDP-11 y la 68000 248
5.3.9. Descripción sobre los modos de direccionamiento 252
5.4. TIPOS DE INSTRUCCIONES 254
5.4.1. Instrucciones de movimiento de datos 254
5.4.2. Operaciones binarias 256
5.4.3. Operaciones unarias 258
5.4.4. Comparaciones y saltos condicionales 261
5.4.5. Instrucciones de llamada a procedimiento 263
5.4.6. Control de iteraciones (bucles) 264
5.4.7. Entrada/salida 266
5.5. FLUJO DE CONTROL 270
5.5.1. Flujo de control secuencial y saltos 270
5.5.2. Procedimientos 271
5.5.3. Corrutinas 279
5.5.4. Desvíos 287
5.5.5. Interrupciones 288
5.6. RESUMEN 295
6. EL NIVEL DE MÁQUINA DEL SISTEMA OPERATIVO 300
6.1. REALIZACION DEL NIVEL DE MAQUINA DEL SISTEMA OPERATIVO 300
5. EL NIVEL DE MAQUINA CONVENCIONAL 197
5.1. EJEMPLOS DE NIVEL DE MAQUINA CONVENCIONAL 197
5.1.1. El Sistema/370 de IBM 198
5.1.2. La PDP-11 de DEC 204
5.1.3. La 68000 de Motorola 207
5.1.4. La Z80 de Zilog 211
5.2. FORMATOS DE INSTRUCCION 218
5.2.1. Criterios de diseño de formatos de instrucción 220
5.2.2. Códigos de operación con extensión 221
5.2.3. Ejemplos de formatos de instrucción 224
5 5.3. DIRECCIONAMIENTO 232
5.3.1. Direccionamiento inmediato 233
5.3.2. Direccionamiento directo 233
5.3.3. Direccionamiento de registros 234
5.3.4. Direccionamiento indirecto 235
5.3.5. Indexación 237
5.3.6. Direccionamiento por registros de base 239
5.3.7. Direccionamiento de pila 241
5.3.8. Direccionamiento en la PDP-11 y la 68000 248
5.3.9. Descripción sobre los modos de direccionamiento 252
5.4. TIPOS DE INSTRUCCIONES 254
5.4.1. Instrucciones de movimiento de datos 254
5.4.2. Operaciones binarias 256
5.4.3. Operaciones unarias 258
5.4.4. Comparaciones y saltos condicionales 261
5.4.5. Instrucciones de llamada a procedimiento 263
5.4.6. Control de iteraciones (bucles) 264
5.4.7. Entrada/salida 266
5.5. FLUJO DE CONTROL 270
5.5.1. Flujo de control secuencial y saltos 270
5.5.2. Procedimientos 271
5.5.3. Corrutinas 279
5.5.4. Desvíos 287
5.5.5. Interrupciones 288
5.6. RESUMEN 295
6 EL NIVEL DE MAQUINA DEL SISTEMA OPERATIVO 300
6.1. REALIZACION DEL NIVEL DE MAQUINA DEL SISTEMA OPERATIVO 300
6.2. INSTRUCCIONES VIRTUALES DE ENTRADA/SALIDA 303
6.2.1. Archivos (ficheros) secuenciales 304
6.2.2. Archivos (ficheros) de acceso aleatorio 306
6.2.3. Realización de las instrucciones virtuales de E/S 307
6.2.4. Instrucciones de manejo de catálogo 312
6.2.5. E/S virtual de la IBM 370 314
6.2.6. E/S virtual en el sistema UNIX 318
6.2.7. E/S virtual del CP/M 324
6.3. INSTRUCCIONES VIRTUALES USADAS EN EL PROCESAMIENTO PARALELO 328
6.3.1. Creación de procesos 328
6.3.2. Condiciones de carrera 330
6.3.3. Sincronización de procesos mediante semáforos 334
6.4. MEMORIA VIRTUAL 338
6.4.1. Paginación 339
6.4.2. Realización de la paginación 341
6.4.3. Carga de páginas por petición y conjunto de trabajo 347
6.4.4. Política de sustitución de páginas 349
6.4.5. Tamaño de página y fragmentación 351
6.4.6. Memoria cache (antememoria) 353
6.4.7. Segmentación 355
6.4.8. La memoria virtual del MULTICS 359
6.4.9. Memoria virtual de la IBM 370 364
6.4.10. Memoria virtual de la PDP-11 365
6.4.11. Memoria virtual de la 68000 371
6.5. LENGUAJES DE CONTROL DE TRABAJOS 375
6.6. RESUMEN 378
7. EL NIVEL DEL LENGUAJE ENSAMBLADOR 384
7.1. INTRODUCCION AL LENGUAJE ENSAMBLADOR 385
7.1.1. ¿Qué es un lenguaje ensamblador? 385
7.1.2. Formato de una sentencia en lenguaje ensamblador 387
7.1.3. Comparación entre el lenguaje ensamblador y los lenguajes orientados a problemas 389
7.1.4. Pulido de programas 390
7.2. EL PROCESO DE ENSAMBLAJE 392
7.2.1. Ensambladores de dos pasadas 393
7.2.2. La primera pasada 394
7.2.3. La segunda pasada 398
7.2.4. La tabla de símbolos 400
7.3. MACROS 401
7.3.1. Definición, llamada y expansión (desarrollo) de una macro 403
7.3.2. Macros con parámetros 405
7.3.3. Realización de macros en un ensamblador 406
7.4. MONTAJE (LINKING) Y CARGA (LOADING) 407
7.4.1. Tareas realizadas por el montador (linker) 409
7.4.2. Estructura de un módulo objeto 412
7.4.3. Tiempo de ligadura y reubicación dinámica 414
7.4.4. Enlace dinámico 417
8.1. METODOS PARA LA REALIZACION DE NUEVOS NIVELES 423
8.1.1. Interpretación 423
8.1.2. Traducción 425
8.1.3. Extensión por procedimientos 429
8.2. ESTRATEGIAS DE DISEÑO DE MAQUINAS MULTINIVEL 429
8.2.1. Diseño de arriba a abajo 430
8.2.2. Diseño de abajo a arriba 432
8.2.3. Diseño del centro a afuera 435
8.3. TRANSPORTABILIDAD DE PROGRAMAS 435
8.3.1. Lenguaje universal de programación 436
8.3.2. El método de la fuerza bruta 438
8.3.3. LOCUN 439
8.3.4. Lenguaje de máquina abstracta 442
8.3.5. Compiladores portátiles 444
8.3.6. Emulación 445
8.4. MAQUINAS AUTOVIRTUALES 446
8.4.1. El sistema IBM VM/370 447
8.4.2. Objetivos de las máquinas autovirtuales 449
8.4.3. Realización de una máquina autovirtual 452
8.5. LA INTERFAZ COMPILADOR-INTERPRETE 459
8.5.1. Interfaces de alto nivel 460
8.5.2. Explicación sobre las interfaces de alto nivel 462
8.6. RESUMEN 465
7.5. RESUMEN 419
8. MAQUINAS MULTINIVEL 423
9. LECTURAS RECOMENDADAS Y BIBLIOGRAFIA 467
9.1. SUGERENCIAS PARA LECTURA POSTERIOR 467
9.1.1. Introducción y temas generales 467
9.1.2. Organización de computadoras 468
9.1.3. El nivel de lógica digital 469
9.1.4. El nivel de microprogramación 470
9.1.5. El nivel de máquina convencional 471
9.1.6. El nivel de máquina del sistema operativo 471
9.1.7. El nivel del lenguaje ensamblador 472
9.1.8. Máquinas multinivel 473
9.1.9. Números binarios y aritmética 474
9.2. BIBLIOGRAFIA POR ORDEN ALFABETICO 475
A. NUMEROS BINARIOS 481
A.1. NUMEROS DE PRECISION FINITA 481
A.2. SISTEMAS DE NUMERACION 483
A.3. CONVERSION DE UNA BASE A OTRA 486
A.4. NUMEROS BINARIOS NEGATIVOS 488
A.5. ARITMETICA BINARIA 490
B. NUMEROS EN PUNTO FLOTANTE 493
INDICE ANALITICO 499

0138544891


ARQUITECTURA DE COMPUTADORAS
MICROPROGRAMACION
LOGICA DIGITAL
MEMORIAS
CIRCUITOS DIGITALES
BUSES
LENGUAJE ENSAMBLADOR
RISC
ARQUITECTURA EN PARALELO

004.31/.33 T155 1985