E.U. de Ingeniería Técnica Informática de Oviedo. Curso 2009-2010

OBJETIVOS

El objetivo de esta asignatura es la comprensión de la estructura y funcionamiento interno de un computador. Para ello se presentan primero al alumno dos temas introductorios, que tratan de la representación binaria de la información, y del almacenamiento y manipulación de dicha información mediante circuitos digitales. Tras esta parte introductoria, se aborda el estudio del computador utilizando un modelo del mismo (modelo Von Neumann). Usando este modelo como guía se analizan cada uno de los sistemas que integran un computador, que son el sistema de memoria, la unidad central de proceso y el sistema de entrada/salida. Todos los conceptos relativos al modelo Von Neumann se estudian primero de forma teórica, y después, aplicados a una familia real de computadores, la familia PC, con especial énfasis en la explicación de cómo la unidad central de proceso ejecuta los programas. La asignatura se completa con una breve explicación de la relación entre arquitectura y sistema operativo.

PROGRAMA DE TEORÍA

Parte I: Fundamentos

1. La información digital (Duración aproximada: 9 horas)
1.1. Introducción (concepto de código binario)
1.2. Sistemas de numeración
1.3. Representación de naturales
1.4. Representación de enteros (signo-magnitud, complemento a dos, aritmética)
1.5. Representación de reales (coma fija, coma flotante)
1.6. Representación de caracteres (propiedades de los códigos alfanuméricos, códigos ASCII, ISO y Unicode)

2. Sistemas digitales (Duración aproximada: 9 horas)
2.1. Sistemas combinacionales (concepto, puertas lógicas, multiplexadores, decodificadores, síntesis de combinacionales)
2.2. Elementos básicos de memoria (biestables y registros)
2.3. Interconexión de componentes (transferencia de información, sincronización, concepto de bus y lógica triestado)
2.4. El chip de memoria (características y tecnología)

Parte II: El computador von Neumann

3. Introducción a la arquitectura von Neumann (Duración aproximada: 2 horas)
3.1. Máquina especifica frente a máquina programable (ventajas, inconvenientes y ejemplos)
3.2. Concepto de máquina programable de programa almacenado
3.3. El computador von Neumann (unidades funcionales, principios de funcionamiento, implementación en la arquitectura PC)

4. Unidad Central de Proceso (CPU) (Duración aproximada: 9 horas)
4.1. Nivel de descripción de máquina convencional (registros, modos de direccionamiento, y juegos de instrucciones, ejemplos de codificación y ejecución de programas para una CPU elemental y para la familia Intelx86)
4.2. Nivel de micromáquina (Estructura interna de la CPU elemental, diseño de la ALU, microoperaciones y señales de control, diseño de la unidad de control, breve comparación con la familia Intelx86)

5. Programación en lenguaje ensamblador (Duración aproximada: 16 horas)
5.1. Conceptos generales de ensambladores
5.2. Un ensamblador para la CPU elemental
5.3. Programación de algoritmos en ensamblador
5.4. Procedimientos y paso de parámetros

6. Rudimentos del ensamblador de la familia Intelx86 (Duración aproximada: 6 horas)
7. El sistema de memoria (Duración aproximada: 5 horas)
7.1. Concepto de espacio de direcciones y mapa de memoria
7.2. Diseño de un sistema de memoria mediante chips de memoria
7.3. Tecnología de los sistemas de memoria

8. Sistema de E/S (Duración aproximada: 8 horas)
8.1. Introducción a los dispositivos periféricos
8.2. Interfaces (concepto, estructura y funcionamiento de una interfaz genérica)
8.3. Direccionamiento de las interfaces (en mapa de memoria y en mapa separado, ejemplos)
8.4. E/S programada
8.5. Interrupciones (concepto, fases de atención a una interrupción, mecanismos de identificación y gestión de prioridad, implementación a nivel de micromáquina para la CPU elemental)
8.6. Gestión de interrupciones en la CPU elemental y en CPUs comerciales

9. Conceptos básicos de sistemas operativos (Duración aproximada: 2 horas)
9.1. Problemática de la inicialización del computador
9.2. Funciones de un sistema operativo
9.3. Mecanismos de llamada a los servicios del sistema operativo (ejemplos)

PROGRAMA DE PRÁCTICAS

Bloque 1: La información digital (2 horas)
En este bloque se trabajan conceptos relativos a sistemas de codificación de la información digital. En la primera sesión se repasan conceptos de códigos numéricos y en la segunda de códigos alfanuméricos.

Bloque 2: Simulación de circuitos digitales (5 horas)
Se diseñan mediante un simulador circuitos digitales básicos, como multiplexadores y sumadores. Después, a partir de estos circuitos se diseña la ALU de un computador.

Bloque 3: Simulación del funcionamiento de una CPU elemental (3 horas)
Se practican los conceptos relativos al funcionamiento de una CPU elemental en sus niveles de máquina convencional y micromáquina. Para ello se utiliza un simulador interactivo de dicha CPU.

Bloque 4: Programación en lenguaje ensamblador de una CPU elemental (3 horas)
Se practican los conceptos relativos a la programación en ensamblador de una CPU elemental mediante un ensamblador para ella.

Bloque 5: Programación del sistema de Entrada/Salida (3 horas)
El alumno practicará la programación de los dispositivos de entrada/salida en un computador basado en la CPU elemental

Bloque 6: Programación en ensamblador de la arquitectura Intelx86 (4 horas)
Se practican los conceptos básicos de programación en lenguaje ensamblador, tales como la programación de las estructuras básicas de control y el uso de los modos de direccionamiento para el acceso a los datos de los programas. Se utiliza para ello el ensamblador de la familia Intelx86.