Tema 1 - Introducción a los Computadores

Conceptos Básicos


🔵
Arquitectura → Arquitectura de repertorio de instrucciones (ISA)
La arquitectura de un ordenador son aquellas características visibles a nivel de programación en ensamblador. Las decisiones sobre la arquitectura tienen un impacto directo en la lógica de programación.
Cuestiones que debe cumplir un aspecto de la arquitectura
  • Es algo que el programador debe conocer
    • Tamaño del bus
  • Existe una instrucción en ensamblador
    • Repertorio de instrucciones
  • Influye en la codificación de los datos
    • Big-endian/little-endian
  • Es una característica que puede ser compartida por ordenadores de la misma familia
  • Es una característica que se mantiene a lo largo de varias versiones de ordenadores durante varios años

Ejemplos
  • Repertorio de instrucciones
  • Tamaño de los buses de datos
  • Modos de direccionamiento
🔵
Organización → Microarquitectura
La organización hace referencia a las características del ordenador que no son relevantes para la programación. Estas características pueden variar sin alterar la programación en ensamblador.
Cuestiones que debe cumplir un aspecto de la organización
  • Tiene que ver con la implementación
    • Método que usa para resolver la operación mul
  • Es invisible/inaccesible desde el punto de vista del programador
    • La memoria del disco duro está almacenada en un CD, un USB, o en un disco de estado sólido
  • Es algo específico de un computador, que no tienen porqué ser compartido por computadores de la misma familia
    • El tipo de componentes conectados al ordenador: tipo de ratón, tipo de disco duro
  • Tiene que ver con señales de control o con el sistema operativo

Ejemplos
  • Señales lógicas de los buses de control
  • Tipo de disco duro (magnético/estado sólido)
  • Tipo de memoria
  • Memoria caché
  • Tipo de ratón (mecánico/óptico)

Modelo de Computador


Unidades Funcionales

ℹ️
Las operaciones que realiza un computador fueron definidas en los años 60 por la arquitectura Von Neumann. Esta arquitectura dividia las partes que debía tener un ordenador en 4 unidades básicas.
Almacenamiento (Drive/RAM)
La unidad de almacenamiento está representada por: Discos duros, USB, CD, RAM, Chaché, etc…
 
Esta unidad se utiliza para almacenar los datos generador por el computador para porder ser usados posteriormente.
 
Para acceder a estos datos se utilizan direcciones de memoria, cada espacio en el dispositivo de almacenamiento esta identificado con una dirección única
 
Existe cierta prioridad a la hora de acceder a estas unidades de almacenamiento. La memoria RAM, es conocida como la memoria principal debido a su rápido acceso, se usa para almacenar los datos que vamos a usar en el corto plazo. Las memorias externas o discos duros son conocidos como memoria secundaria, dado que estos datos no son accedidos regularmente durante la ejecución de un programa por su lentitud de acceso
 
Procesamiento (CPU)
La unidad de procesamiento está representada fundamentalmente por la CPU (Central Processing Unit)
 
Este componente es el encargado de ejecutar instrucciones, para ello dispone de acceso al resto de unidades para poder hacer uso de sus funciones o de su información a través de los buses de sistema
 
Esta unidad esta implementada en un circuito integrado o chip
 
Movimiento (Buses)
La unidad de movimiento está representada por los buses de comunicación de los cuales el computador hace uso de los diferentes buses disponibles para transmitir la información entre el resto de unidades
 
Los buses del computador se agrupan en lo que se conoce como el Bus de Sistema, el cual está formado por los siguientes buses:
  • Bus de datos: Transporta los datos que se transfieren entre los distintos elementos del computador
  • Bus de direcciones: Transporta las direcciones de memoria a las que se desea acceder para leer o escribir
  • Bus de control: Transporta las señales de control necesarias para coordinar la actividad de los diferentes componentes
 
Control (I/O)
La unidad de control se usa como interfaz entre el procesador, y los periféricos
 

Microprocesadores (CPUs)


ℹ️
El microprocesador es el circuito integrado o chip que se corresponde con la CPU (Central Processing Unit)
 
Esta unidad es la encargada de coordinar las funciones del resto de componentes del ordenador y también se encarga de realizar todos los cálculos.
 
La CPU a su vez se puede dividir en dos partes
  • La Unidad de Tratamiento se encarga de las operaciones aritmetico-lógicas
  • La Unidad de Control se encarga de gestionar las señales de control

Unidad de Tratamiento

ℹ️
El objetivo principal de esta unidad es procesar los datos. Esta unidad no tema decisiones, solo se dedica a resolver operaciones aritmetico-lógicas, dado que esta unidad depende de la señal revida de la Unidad de Control para saber que operacion debe realizar
 
Esta unidad está compuesta principalmente por el banco de registros y la ALU
🗄️
El Banco de Registros está formado por un conjunto de registros los cuales son espacios de memoria de acceso inmediato y de espacio limitado
 
La capacidad de un registro esta muy relacionado con el tamaño de palabra (word) de la arquitectura utilizada (8-bits, 16-bits, 32-bits, …)
🧮
La ALU (Aritmetic-Logic Unit) es un circuito combinacional capaz de realizar operaciones sencillas
 
Las operaciones que la ALU es capaz de resover son:
  • Operaciones aritméticas (suma, resta, multiplicación, división, …)
  • Operaciones lógicas (comparación, negación, …)
  • Otras operaciones (desplazamiento de bits, …)

Unidad de Control

ℹ️
La Unidad de Control (UC) controla al resto de componentes del ordenador mandando señales que permiten controlar el estado o las acciones que deben realizar
 
Esta unidad se encarga principalmente de decodificar la instrucción para mandar las señales adecuadas al resto de componentes
 
Esta unidad hace uso de dos registros en su funcionamiento
  • El registro de programa (PC) que almacena la dirección de la siguiente instrucción que debe ejecutar
  • El registro de instrucción (IC) que almacena la instrucción que se está ejecutando actualmente para que los distintos componentes puedan acceder a sus operando y mantener activas las señales de control
También contiene en su interior un registro de estado
 
Esta unidad trabaja en un bucle infinito controlado por el reloj, el cual se utiliza para sincronizar los diferentes componentes para que estos actuen en cada flanco de reloj. Las instrucciones que se realizan en un ciclo de reloj se llaman uniciclo, aquellas que ocupan más ciclos se conocen como multiciclo
 
Adicionalmete, esta unidad resuelve situaciones excepcionales como confictos o interrupciones

Los Primeros Microprocesadores

Los primeros microprocesadores fueron inventados en 1971, y contaban con un buses de
4 bits. Estos eran principalmente diseñados para calculadoras
  • Intel 4004
  • TMS-1000
El Intel 8008 (1972) fue el primer microprocesador de 8 bits. Posteriormente aparecieron: Motorola 6800, MOS 6502, Zilog Z80
El primer procesador de 16 bits fue el Intel 8086 el cual dio inicio a la arquitectura x86
El primer microprocesador con 32 bits fue el Motorola 68000 (1979), este es considerado un híbrido ya que su ancho de palabra era de 32-bits mientras que el tamaño del bus de direcciones era de 24-bits

Microprocesadores Actuales

ℹ️
Durante los años 90 se comenzaron a introducir elementos y técnica adicionales en los microprocesadores:
Memorias Caché
Memoria de acceso intermedio entre los registros y la memoria principal (RAM) que nos permite acceder a información reciente
Cooprocesadores para operaciones con coma flotante
Circuitos especialozados en operaciones en coma flotante
Buffers adicionales
Buffers que permiten predecir el resultado de un salto condicional o una lectura ancticipada de la siguiente instrucción
Procesadores superescalares
Contienen réplicas de algunas unidades como la ALU lo que parmite realizar varias operaciones simultaneamente
Segmentación del camino de datos
Permite que se solapen dos instrucciones en diferentes fases del camino de datos para ahorrar tiempo
ℹ️
A partir de los 2000, hemos visto aparecer procesadores de 64 bits
💡
Dado que no se puede incrementar infinitamente la frecuencia del reloj, han aparecido otras mejoras como los procesadores multihilo o los multinúclceo