DESCRIPCIÓN
El objetivo primordial de este libro es familiarizar al lector con el funcionamiento de un computador, tanto desde el punto de vista externo (lenguaje máquina) como a nivel interno (funcionamiento).
El libro está organizado en dos partes: la primera, denominada "Organización del computador", versa sobre la visión de los procesadores desde un punto de vista externo, entrando en tópicos como formatos de instrucción, modos de direccionamiento, etc. ; la segunda parte, "Bloques funcionales del computador", trata sobre el funcionamiento interno de cada una de las diversas partes del ordenador como memoria, unidad aritmética, etc.;
A lo largo del libro se toman como ejemplos una serie de máquinas de diferentes tipos que abarcan un amplio espectro del mercado. Asimismo, se proponen numerosos problemas que ayudan a reflexionar sobre las ideas expuestas en cada capítulo.
ÍNDICE DE MATERIAS
PARTE I: ORGANIZACIÓN DEL COMPUTADOR
- CONCEPTOS FUNDAMENTALES
- 1.1.- Origen de los computadores
- 1.2.- Breve reseña histórica
- 1.2.1.- La era mecánica de los computadores
- 1.2.2.- La era electrónica de los computadores
- 1.2.3.- Generaciones de ordenadores
- 1.2.4.- Tendencias actuales
- 1.3.- Requisitos mínimos para la computación
- 1.4.- Máquinas de Turing
- 1.5.- Limitaciones de los computadores
- 1.6.- El modelo de Von Neumann
- 1.7.- Unidades funcionales
- 1.8.- Ejecución de las instrucciones
- 1.9.- Clasificaciones de los procesadores
- 1.10.- Concepto de arquitectura de un ordenador
- 1.11.- Niveles de estudio y descripción de un ordenador
- 1.12.- Máquinas multinivel
- 1.13.- Ejemplos de arquitecturas reales
- 1.13.1.- PDP-11
- 1.13.2.- VAX
- 1.13.3.- IBM-360/370
- 1.13.4.- HP-3000
- 1.13.5.- Z-80
- 1.13.6.- MC68000 y derivados
- 1.13.7.- i-8086 y derivados
- 1.13.8.- Arquitectura Alpha
- CUESTIONES Y PROBLEMAS
- FORMATOS DE INSTRUCCIÓN
- 2.1.- Introducción
- 2.2.- Criterios de diseño de los formatos de instrucción
- 2.3.- Número de direcciones
- 2.4.- Instrucciones con longitud variable
- 2.5.- Instrucciones con código de operación de longitud variable
- 2.5.1.- Codificación de Huffman
- 2.5.2.- Códigos de operación con extensión
- 2.6.- Ejemplos de formatos de instrucción en computadores reales
- 2.6.1.- PDP-11
- 2.6.2.- VAX
- 2.6.3.- MC68000 y derivados
- 2.6.4.- IBM-360/370
- 2.6.5.- Z-80
- 2.6.6.- i-8086 y derivados
- 2.6.7.- Arquitectura Alpha
- CUESTIONES Y PROBLEMAS
- MODOS DE DIRECCIONAMIENTO
- 3.1.- Introducción
- 3.2.- Modos de direccionamiento más usuales
- 3.2.1.- Direccionamiento implícito
- 3.2.2.- Direccionamiento inmediato (o literal)
- 3.2.3.- Direccionamiento directo por registro
- 3.2.4.- Direccionamiento directo (o absoluto)
- 3.2.5.- Direccionamiento indirecto
- 3.2.6.- Direccionamiento relativo
- 3.2.7.- Direccionamiento por base y desplazamiento
- 3.2.8.- Direccionamiento indexado
- 3.2.9.- Direccionamiento autoincremental o postincremental
- 3.2.10.- Direccionamiento autodecremental o predecremental
- 3.3.- Visión general de los modos de direccionamiento
- 3.4.- Modos de direccionamiento en ordenadores reales
- 3.4.1.- PDP-11
- 3.4.2.- VAX
- 3.4.3.- MC68000 y derivados
- 3.4.4.- i-8086 y derivados
- CUESTIONES Y PROBLEMAS
- CONJUNTOS DE INSTRUCCIONES
- 4.1.- Introducción
- 4.2.- Características generales de los conjuntos de instrucciones
- 4.3.- Tipos de instrucciones
- 4.3.1.- Instrucciones de transferencia de datos
- 4.3.2.- Instrucciones aritméticas y lógicas
- 4.4.- Instrucciones de control del flujo de programa
- 4.4.1.- Instrucciones de bifurcación
- 4.4.2.- Iteraciones
- 4.4.3.- Procedimientos
- 4.4.4.- Corrutinas
- 4.4.5.- Desvíos o excepciones (traps)
- 4.4.6.- Interrupciones
- 4.4.7.- Instrucciones de control de flujo en el VAX
- 4.5.- Relación entre el lenguaje máquina y los lenguajes de alto nivel
- 4.5.1.- Clases de variables
- 4.5.2.- Direccionamiento de estructuras de datos
- 4.6.- Características de los ordenadores RISC
- 4.7.- Bibliografía y referencias
- CUESTIONES Y PROBLEMAS
PARTE II: BLOQUES FUNCIONALES DEL COMPUTADOR
- LA MEMORIA CENTRAL
- 5.1.- Introducción
- 5.2.- Características de las memorias
- 5.3.- Jerarquía de las memorias
- 5.4.- Clasificación de las memorias por su utilización
- 5.5.- Organización de la memoria
- 5.6.- Asociaciones de memorias
- 5.6.1.- Memorias entrelazadas
- 5.7.- Ampliación del espacio de memoria direccionable
- 5.7.1.- Conmutación de bancos
- 5.7.2.- Extensión de direcciones
- 5.8.- Memorias especiales
- 5.8.1.- Colas
- 5.8.2.- Pilas
- 5.8.3.- Memorias asociativas
- 5.9.- Memorias caché
- 5.9.1.- Funciones de mapa
- 5.9.2.- Algoritmos de reemplazo
- 5.9.3.- Políticas de extracción y actualización de la memoria principal
- 5.9.4.- Tipos de faltas de bloque
- 5.9.5.- Ejemplos reales de memoria caché
- 5.10.- Bibliografía y referencias
- CUESTIONES Y PROBLEMAS
- LA UNIDAD ARITMÉTICO-LÓGICA
- 6.1.- Introducción
- 6.2.- Operaciones elementales que debe realizar la A.L.U.
- 6.3.- Circuitos para la realización de las operaciones elementales
- 6.4.- Sumadores
- 6.4.1.- Semisumador
- 6.4.2.- Sumador total
- 6.4.3.- Sumador serie
- 6.4.4.- Sumador paralelo
- 6.4.5.- Sumador con llevadas anticipadas
- 6.4.6.- Sumadores con selección de llevadas
- 6.4.7.- Sumadores condicionales
- 6.4.8.- Sumadores con ahorro de llevadas
- 6.5.- Sustracción
- 6.6.- Estructura básica de la A.L.U.
- 6.7.- Multiplicación
- 6.8.- Procesadores bit-slice
- 6.9.- Coprocesadores
- 6.10.- Bibliografía y referencias
- CUESTIONES Y PROBLEMAS
- ALGORITMOS ARITMÉTICOS
- 7.1.- Introducción
- 7.2.- Estructura física para implementar los algoritmos
- 7.3.- Multiplicación
- 7.3.1.- Multiplicación por suma y desplazamiento
- 7.3.2.- Multiplicación por el método de Robertson
- 7.3.3.- Multiplicación por el algoritmo de Booth
- 7.3.4.- Multiplicación por solapamiento de ternas
- 7.3.5.- Algoritmo de Baugh-Wooley
- 7.4.- División
- 7.4.1.- División con restauración
- 7.4.2.- División sin restauración
- 7.4.3.- División combinacional
- 7.5.- Aritmética de punto flotante
- 7.6.- Bibliografía y referencias
- CUESTIONES Y PROBLEMAS
- 8.- LA UNIDAD DE CONTROL
- 8.1.- Introducción
- 8.2.- Organización de los buses
- 8.3.- Secuencia de señales de control para la ejecución de una instrucción
- 8.4.- Métodos de implantación de la unidad de control cableada
- 8.4.1.- Método del contador de fases
- 8.4.2.- Método de los elementos de retardo
- 8.5.- Segmentación (pipe-lining)
- 8.6.- Bibliografía y referencias
- CUESTIONES Y PROBLEMAS
- MICROPROGRAMACIÓN
- 9.1.- Introducción y definiciones
- 9.2.- Modelo de Wilkes
- 9.3.- Codificación de las microinstrucciones
- 9.3.1.- Codificación por campos
- 9.3.2.- Microinstrucciones con formato múltiple
- 9.3.3.- Microprogramación a dos niveles
- 9.3.4.- Control residual
- 9.4.- Secuenciamiento en los microprogramas
- 9.4.1.- Secuenciamiento implícito
- 9.4.2.- Secuenciamiento explícito
- 9.4.3.- Microinstrucciones de bifurcación condicional
- 9.5.- Obtención de la dirección inicial
- 9.5.1.- Árbol de decodificación
- 9.5.2.- Tabla de saltos
- 9.5.3.- Memoria de traslación
- 9.6.- Hardware de la unidad de control microprogramada
- 9.7.- Ejemplo de unidad de control microprogramada
- 9.8.- Observaciones finales
- 9.9.- Bibliografía y referencias
- CUESTIONES Y PROBLEMAS
- ORGANIZACIÓN DE ENTRADA/SALIDA
- 10.1.- Introducción y definiciones
- 10.2.- Direccionamiento de los dispositivos de entrada/salida
- 10.3.- Transferencia de datos
- 10.3.1.- E/S por programa
- 10.3.2.- Acceso directo a memoria (DMA)
- 10.4.- Prioridades
- 10.4.1.- Gestión centralizada de prioridades
- 10.4.2.- Gestión distribuida de prioridades
- 10.4.3.- Gestión híbrida de prioridad
- 10.5.- Sincronización
- 10.5.1.- Encuesta para la verificación de condición (polling)
- 10.5.2.- Interrupciones
- 10.6.- Gestión de interrupciones
- 10.6.1.- Habilitación y deshabilitación de interrupciones
- 10.6.2.- Enmascarado de interrupciones
- 10.6.3.- Anidamiento de interrupciones
- 10.6.4.- Peticiones simultáneas de interrupción
- 10.6.5.- Identificación del dispositivo
- 10.6.6.- Vectorización de interrupciones
- 10.6.7.- Pasos necesarios en la atención a interrupciones
- 10.7.- Procesadores de E/S (canales)
- 10.7.1.- Tipos de canales
- 10.8.- La entrada/salida y el sistema operativo
- 10.9.- Ejemplos de organizaciones de E/S
- 10.9.1.- PDP-11
- 10.9.2.- IBM-360/370
- 10.9.3.- MC68000 y derivados
- 10.9.4.- i-8086 y derivados
- 10.9.5.- Z-80
- 10.10.- Bibliografía y referencias
- CUESTIONES Y PROBLEMAS
- BUSES E INTERFACES DE ENTRADA/SALIDA
- 11.1.- Introducción
- 11.2.- Características de los buses
- 11.3.- Niveles de especificación de un bus
- 11.4.- Conversiones entre grados de paralelismo diferentes
- 11.5.- Buses de ciclo partido
- 11.6.- Sincronización
- 11.7.- Jerarquía de los buses
- 11.7.1.- Buses internos de las pastillas
- 11.7.2.- Buses de interconexión de pastillas
- 11.7.3.- Buses de sistema
- 11.7.4.- Buses de entrada/salida
- 11.7.5.- Redes de computadores
- 11.8.- Diseño de una interfaz paralela
- 11.9.- Diseño de una interfaz serie
- 11.10.- Ejemplos de buses e interfaces
- 11.10.1.- Bus S-100
- 11.10.2.- Interfaz IEEE-488
- 11.10.3.- Interfaz RS-232-C
- 11.11.- Bibliografía y referencias
- CUESTIONES Y PROBLEMAS