1. Introducción
1.1. Arquitectura von Neumann
1.2. Programación de un computador
1.3. Tecnologías de fabricación de procesadores y memorias
1.4. Parámetros característicos de un computador
1.5. Rendimiento de un computador
1.6. Problemas resueltos
1.7. Problemas propuestos
2. Representación de la información y aritmética del computador
2.1. Tipos de información: instrucciones y datos
2.2. Representación alfanumérica
2.2.1. Representación de caracteres
2.2.2. Cadenas de caracteres
2.3. Representación numérica
2.3.1. Fundamentos de la representación binaria
2.3.2. Representación en binario puro
2.3.3. Representación en signo-magnitud
2.3.5. Representación en complemento a dos
2.3.6. Representación en exceso a M
2.3.7. Representación en coma flotante
2.4. Aritmética del computador
2.4.1. Aritmética entera en complemento a dos
2.4.2. Aritmética de coma flotante
2.5. Problemas resueltos
2.6. Problemas propuestos
3. Instrucciones y direccionamiento
3.1. Tipos de instrucciones
3.2. Representación de instrucciones
3.2.1. Código de operación
3.2.2. Operandos fuente y destino
3.2.3. Referencia a la próxima instrucción
3.3. Modos de direccionamiento
3.3.1. Direccionamiento inmediato
3.3.2. Direccionamiento de registro
3.3.3. Direccionamiento indirecto de registro
3.3.4. Direccionamiento directo
3.3.5. Direccionamiento relativo
3.3.6. Direccionamiento indirecto
3.3.7. Direccionamiento implícito
3.3.8. Direccionamiento de pila
3.4. Formato de instrucciones
3.4.1. Computadores RISC y CISC
3.4.2. Formato de instrucciones del MIPS 32
3.5. Modelos de ejecución
3.6. Problemas resueltos
3.7. Problemas propuestos
4. Programación en ensamblador
4.1. Lenguaje ensamblador y programa ensamblador
4.2. La familia de procesadores MIPS
4.2.1. La arquitectura MIPS32
4.2.2. Banco de registros
4.2.3. Modelo de memoria
4.2.4. Tipos de instrucciones
4.2.5. Modos de direccionamiento
4.2.6. El coprocesador de coma flotante
4.3. El ensamblador MIPS32
4.3.1. Sintaxis básica
4.3.2. Directivas del ensamblador
4.3.3. Llamadas al sistema
4.4. Programas sencillos
4.4.1. Tipos de datos
4.4.2. Decisiones
4.4.3. Bucles
4.5. Subrutinas
4.5.1. Gestión de la pila
4.5.2. Pasos a realizar en las llamadas
4.5.3. Reglas de llamada y creación del marco de pila
4.6. Problemas resueltos
4.7. Problemas propuestos
5. El procesador
5.1. Organización y elementos del procesador
5.1.1. Registros
5.1.2. Tipos de registros
5.1.3. Unidad aritmético lógica
5.1.4. Interconexión entre los elementos del procesador
5.1.5. Conexión con la memoria
5.2. La unidad de control
5.3. Ejecución de instrucciones
5.4. Modos de ejecución
5.5. Interrupciones
5.5.1. Niveles de interrupción
5.6. Diseño de la unidad de control
5.6.1. Unidad de control cableada
5.6.2. Unidad de control microprogramada
5.7. Arranque del computador
5.8. Tiempo de ejecución de un programa
5.9. Problemas resueltos
5.10. Problemas propuestos
6. Memoria caché
6.1. Jerarquía de memoria
6.1.1. Rendimiento de la jerarquía de memoria
6.1.2. Proximidad de referencias
6.2. Tecnologías de memoria
6.3. Funcionamiento de la memoria caché
6.4. Función de correspondencia
6.4.1. Función de correspondencia directa
6.4.2. Función de correspondencia asociativa
6.4.3. Función de correspondencia asociativa por conjuntos
6.5. Rendimiento de la memoria caché
6.6. Tamaño de línea de caché
6.7. Algoritmos de reemplazo
6.8. Política de escritura
6.9. Niveles de memoria caché
6.10. Problemas resueltos
6.11. Problemas propuestos
7. Sistemas de entrada/salida
7.1. Introducción
7.2. Clasificación y tipos de periféricos
7.3. Ejemplos de periféricos utilizados para almacenamiento
7.3.1. Discos magnéticos
7.3.2. Discos de estado sólido
7.4. Módulos de entrada/salida
7.5. Instrucciones de entrada/salida
7.6. Técnicas de entrada/salida
7.6.1. Entrada/salida programada
7.6.2. Entrada/salida mediante interrupciones
7.6.3. Entrada/salida mediante DMA
7.7. Buses de un computador
7.8. Problemas resueltos
7.9. Problemas propuestos
8. Memoria virtual
8.1. Fundamentos de la memoria virtual
8.1.1. La tabla de páginas y traducción de direcciones
8.1.2. Tratamiento del fallo de página
8.1.3. Protección de memoria en sistemas con memoria virtual
8.1.4. Estructuras de tablas de páginas
8.1.5. TLB
8.1.6. Memoria virtual segmentada
8.2. Integración de la memoria virtual y la memoria caché
8.3. Problemas resueltos
8.4. Problemas propuestos
9. Guía de referencia del ensamblador MIPS32
9.1. Banco de registros
9.2. Modos de direccionamiento
9.3. Directivas del ensamblador
9.4. Llamadas al sistema
9.5. Repertorio de instrucciones
9.5.1. Instrucciones de movimiento de datos
9.5.2. Instrucciones de movimiento de datos no alineados
9.5.3. Instrucciones aritméticas del procesador
9.5.4. Instrucciones lógicas del procesador
9.5.5. Instrucciones de desplazamiento del procesador
9.5.6. Instrucciones de comparación
9.5.7. Instrucciones de ruptura de secuencia
9.5.8. Instrucciones de control del coprocesador
9.5.9. Instrucciones de tratamiento de interrupciones
9.5.10. Otras instrucciones
9.5.11. Instrucciones de movimiento de datos en coma flotante
9.5.12. Instrucciones aritméticas de coma flotante
9.5.13. Instrucciones de conversión de coma flotante
9.5.14. Instrucciones de comparación en coma flotante
9.5.15. Instrucciones de bifurcación de coma flotante
9.5.16. Instrucciones de control de la unidad de coma flotante
Índice alfabético