Históricamente ha habido 2 tipos de ordenadores:
- Ordenadores de programa fijo – Su función es muy específica y no se podían programar, por ejemplo las calculadoras.
- Ordenadores de programa almacenado – Se pueden programar para realizar muchas tareas diferentes, las aplicaciones se almacenan en ellos, de ahí su nombre.
Los ordenadores modernos se basan en un concepto de programa almacenado introducido por John Von Neumann. En este concepto de programa almacenado, los programas y los datos se guardan en una unidad de almacenamiento separada llamada memoria y se tratan igual. Esta novedosa idea significaba que un ordenador construido con esta arquitectura sería mucho más fácil de reprogramar.
La estructura básica es como,
También se conoce como ordenador IAS y tiene tres unidades básicas:
- La Unidad Central de Procesamiento (CPU)
- La Unidad de Memoria Principal
- El Dispositivo de Entrada/Salida
Considerémoslos en detalle.
- Unidad de control –
Una unidad de control (CU) maneja todas las señales de control del procesador. Dirige todo el flujo de entrada y salida, recupera el código para las instrucciones y controla cómo se mueven los datos por el sistema.
- Unidad Aritmética y Lógica (ALU) –
La unidad aritmética lógica es la parte de la CPU que se encarga de todos los cálculos que la CPU pueda necesitar, por ejemplo, sumas, restas, comparaciones. Realiza operaciones lógicas, operaciones de cambio de bits y operaciones aritméticas.
Figura – Estructura básica de la CPU, ilustrando la ALU - Unidad de Memoria Principal (Registros) –
- Acumulador: Almacena los resultados de los cálculos realizados por la ALU.
- Contador de Programa (PC): Mantiene un registro de la ubicación en memoria de las próximas instrucciones a tratar. El PC pasa esta próxima dirección al Registro de Dirección de Memoria (MAR).
- Registro de Dirección de Memoria (MAR): Almacena las posiciones de memoria de las instrucciones que deben ser recuperadas de la memoria o almacenadas en la misma.
- Registro de Datos de Memoria (MDR): Almacena las instrucciones obtenidas de la memoria o cualquier dato que deba ser transferido a la memoria y almacenado en ella.
- Registro de Instrucción Actual (CIR): Almacena las instrucciones obtenidas más recientemente mientras espera ser codificada y ejecutada.
- Registro del buffer de instrucciones (IBR): La instrucción que no se va a ejecutar inmediatamente se coloca en el registro del buffer de instrucciones IBR.
- Dispositivos de entrada/salida – El programa o los datos se leen en la memoria principal desde el dispositivo de entrada o el almacenamiento secundario bajo el control de la instrucción de entrada de la CPU. Los dispositivos de salida se utilizan para dar salida a la información desde un ordenador. Si algunos resultados son evaluados por el ordenador y se almacena en el ordenador, entonces con la ayuda de los dispositivos de salida, podemos presentarlo al usuario.
- Buses – Los datos se transmiten de una parte de un ordenador a otro, conectando todos los componentes internos principales a la CPU y la memoria, por medio de Buses. Tipos:
- Bus de datos: transporta los datos entre la unidad de memoria, los dispositivos de E/S y el procesador.
- Bus de direcciones: transporta la dirección de los datos (no los datos reales) entre la memoria y el procesador.
- Bus de control: transporta los comandos de control de la CPU (y las señales de estado de otros dispositivos) para controlar y coordinar todas las actividades dentro del ordenador.
Cuello de botella de Von Neumann –
Hagamos lo que hagamos para mejorar el rendimiento, no podemos obviar el hecho de que las instrucciones sólo pueden hacerse de una en una y sólo pueden llevarse a cabo de forma secuencial. Ambos factores frenan la competencia de la CPU. Esto se conoce comúnmente como el «cuello de botella de Von Neumann». Podemos dotar a un procesador Von Neumann de más caché, más memoria RAM o componentes más rápidos, pero si se quieren obtener ganancias originales en el rendimiento de la CPU, es necesario realizar una inspección influyente de la configuración de la CPU.
Esta arquitectura es muy importante y se utiliza en nuestros PC e incluso en los superordenadores.