Módulo I (143 pags)

Estructura interna del procesador y buses de interconerconexión

  1. Introducción.
  2. El funcionamiento de un computador.
  3. El bus como estructura de interconexión.

Módulo II (84 pags)

Unidad Aritmético Lógica

  1. Estructura de una ALU de enteros
  2. Números en coma flotante: Representación IEEE754
  3. Números en coma flotante: Operaciones

Módulo III (71 pags)

Unidad de memoria

  1. Organización física de la unidad de memoria
  2. Tipos de memorias
  3. Memoria caché
  4. Memoria virtual

Módulo V

Unidad de Control

  1. Organización y funcionamiento de la UC
  2. La unidad de control cableada
  3. La unidad de control microporgramada
1

Introducción

Niveles de descripción y componentes de un computador

(26 páginas)

1. Función básica de un computador

Un computador sirve para casi cualquier cosa que pueda uno imaginarse en el uso doméstico y ajeno a ello. Sin embargo, aunque sirva para casi cualquier cosa, su función principal es algo muy concreto: Ejecutar programas, y un programa es un conjunto de uinstrucciones con sus datos (son datos e instrucciones).

Programa: Secuencia de instrucciones máquina que permite ejecutar una acción compleja
Intrucción: Acción elemental que puede ejecutar un computador

2. De la aplicación a la física

El computador a fin de cuentas tiene una tarea complicada, que se basa en poder ejecutar aplicaciones (resolver problemas concretos) partiendo de la física, el nivel de electrones. En medio de ese paso tan grande existen los niveles de abstración para descomponer el salto en capas más simples.

Abstracción: Tecnica utilizada para ocultar los detalles que no son relevantes para el porblema que se está estudiando. Es una operación mental destinada a aislar conceptualmente una propiedad o función concreta de un objeto, y pensar qué es, ignorando otras propiedades del objeto en cuestión.

3. Niveles de abstracción

Niveles de descripción de Tanenbaum. Definía que existen distintas capas en la interpretación de los lenguajes, de lo que se derivan lenguajes de alto nivel y lenguajes de bajo nivel. Y que es posible pasar de uno a otro a través de un traductor (compilador).

En cuanto al ordenador, esta distinción se hace en cuanto a los polos, Software y hardware. Lo que hay entre medio de dichos niveles son los niveles de abstracción

Código máquina: Nivel más bajo posible de software y por ende el más ligado al hardware

4. Arquitectura vs microarquitectura/estructura

5. Niveles ISA, y de organización interna/microarquitectura

Una familia de computadores corresponde a las distintas estructuras (microarquitecturas) que comparten una arquitectura común. Aunque tengan el mismo repertorio de instrucciones (ISA), los registros a los que tiene acceso el programador pueden ser distintos.

¿Teniendo dos computadores con el mismo repertorio de instrucciones, pero uno es de 32 bits, y otro de 64, sería la misma arquitectura y distinta microarquitectura?

Tienen la misma arquitectura (ISA) y diferente estructura (microarquitectura)

¿Y si cambia el tamaño de los registros no visibles para el programador?

En ese caso, además cambiaría la estructura, y sería otra familia de ordenadores.

6. Application Binary Interface

Para comenzar a definir lo que es una ABI vamos a refrescar lo que es una API. Una API (Interfaz de Programación de Aplicación), define el conjunto de protocolos. Herramientas, subrutinas, y procedimientos que se usan como bloques de construcción en nuevos programas. Si nos llevamos esta definición a bajo nivel tendríamos la ABI (Interfaz binaria de aplicación) sería la interfaz entre dos módulos de programa (Cómo llamar al SO, cómo pasarle información. Formato ejecutable/binarios, llamadas y paso de parámetros entre módulos de lenguaje de alto nivel)

API son restricciones con el código fuente, y ABI son restricciones con el código objeto

7. Arquitectura de Von Neumann

7.1. Memoria principal

7.2. ALU

7.3. Unidad de control (UC)

7.4. Dispositivos E/S

7.5. Buses

¿Cuáles eran las ventajas y desventajas del esquema de Von Neumann en su contexto histórico?

El código pasa a ser automodificable, pero se produce un cuello de boterra para acceder a la memoria