Cuando nosotros recibimos una instrucción que debemos cumplir, se produce todo un proceso interno del que pocas veces somos conscientes. Nuestro organismo está habituado a recibir información por los sentidos, como el caso de una instrucción, procesarla a través de nuestro sistema nervioso central y producir una respuesta, como el caso de cumplir con una instrucción.
La pregunta clave que nos hacemos en esta unidad es ¿cómo es posible que una máquina sea capaz de ejecutar instrucciones? ¿Cuál es el proceso que tiene lugar para que un conjunto de dispositivos inertes puedan ejecutar instrucciones dadas?
Llamamos arquitectura de un computador a los elementos fundamentales que lo forman y que le permiten la ejecución de instrucciones y la relación que se establece entre ellos. La arquitectura Von Neumann está basada en la solución que propuso este matemático-físico al problema del diseño de un computador en los años 40-50, época en la que se desarrollaron los primeros computadores. Esta idea ha tenido una influencia enorme en el desarrollo de los ordenadores y sigue siendo el principio de funcionamiento de los que utilizamos hoy en día. ¿Cuáles son estas partes que definen la arquitectura Von Neumann?
El elemento principal es la unidad central de proceso (CPU). Podemos pensar que es el procesador de nuestro sistema. La CPU está formada por algunas partes importantes que son:
|
ALU |
Unidad aritmético lógica |
Puede realizar operaciones matemáticas con los datos. |
|
|
Unidad de control |
UC (CU) |
Es la que se encarga de ejecutar realmente las operaciones que requiere cada instrucción. |
|
|
Contador de programa |
CP (PC) |
Contiene la dirección de la siguiente instrucción que se va a ejecutar. |
|
|
Decodificador |
Decodificador (Decoder) |
Es la parte de la CPU que sabe interpretar que es lo que significa cada instrucción. |
|
|
Registros |
A,B…, RB (BR) , RI (IR), RDM (MAR) |
Sirven para almacenar pequeños datos de forma temporal mientras se ejecutan las instrucciones. |
Como ya se explicó, el hardware del ordenador por sí solo no realiza ninguna tarea, salvo la de ejecutar programas (software) que se encuentran almacenados de forma permanente en los dispositivos de almacenamiento como, por ejemplo, el disco duro.
Los programas son conjuntos de instrucciones que, cuando el usuario lo pide, la CPU tiene que ejecutar una detrás de otra.
Así que, cuando es necesario ejecutar un conjunto de instrucciones porque alguien lo solicita, ¿dónde se encuentran estas instrucciones? Pues lo acabamos de decir, en el disco duro. Pero acordándonos del ejemplo de la biblioteca, la CPU quiere acercar las instrucciones que tiene que ejecutar (su trabajo) hasta un lugar donde pueda acceder a ellos más rápidamente. Este lugar en el ordenador es la memoria RAM (o también la memoria Caché, todavía más rápida).
Digamos, por tanto, que lo que hace la CPU es traer una copia de las instrucciones que tiene que ejecutar que están en el disco duro hasta una memoria mucho más rápida. Esta memoria es la que está representada a la derecha en el esquema anterior.
Como la memoria es muy grande, la CPU necesita organizarla de alguna forma para encontrar los datos que almacena en ella. Para eso se divide la memoria en pequeñas celdas, cada una de las cuales guarda una cantidad pequeña de información, como puede ser una instrucción o algún dato.
A cada una de las celdas le asigna una dirección, de forma que sabe dónde buscar o colocar los datos guiándose por estas direcciones. A esta forma de acceder a los datos que hay colocados en la memoria por medio de las direcciones se le llama direccionamiento.
Las direcciones son números consecutivos que se representan normalmente en hexadecimal.
Fíjate bien que para que el procesador pueda acceder a lo que haya en la memoria necesita dos buses (conjunto de líneas por donde viaja la información). Uno de direcciones, para avisar a la memoria de qué dirección es la que se quiere y otro de datos para sacar o colocar la información en la dirección que se indique con el bus de direcciones.

Vale, supongamos que algún usuario selecciona un programa del escritorio para ejecutarlo. En ese momento la CPU lo busca en el disco duro y hace una copia de sus instrucciones en la memoria que va a manejar. Las deja colocadas a partir de una dirección en una zona vacía de la memoria, por ejemplo, a partir de la dirección EC00.

Ya está todo preparado para comenzar. Las instrucciones del programa ya están en la memoria y el contador de programa tiene la dirección de la siguiente instrucción a ejecutar. Ahora comienza el ciclo Fetch-Decode-Execute (Obtener la instrucción-Decodificación-Ejecución)
