La máquina de von Neumann

En 1946, von Neumann y sus colegas empezaron, en el Instituto para Estudios Avanzados de Princeton el diseño de un nuevo computador de programa almacenado, que IAS. El computador IAS, no completado hasta 1952, es el prototipo de toda una subsecuencia de computadores de uso general.

 

 

 

Esta estructura fue esbozada en la primera proposición de von Neumann, que merece la pena mencionada en este momento (VONM45):

2.2 Primero: Como el dispositivo es principalmente un computador, tendrá que realizar las operaciones aritméticas elementales muy frecuentemente. Estas son la suma, la resta, la multiplicación y la división: +, -, x , /. Es por tanto razonable, que contenga elementos especializados sólo en estas operaciones.

Debe observarse, sin embargo, que aunque este principio parece consistente, la manera específica de cómo se aplica requiere un examen cuidadoso... En cualquier caso, tendrá que existir la parte de aritmética central que constituirá la primera parte especifica: CA.

2.3 Segundo: El control lógico del dispositivo, es decir, la secuenciación adecuada de las operaciones debe ser realizado eficientemente por un órgano de control central. Si el dispositivo tiene que ser versátil, es decir, lo más cercano posible a servir para todo uso, entonces hay que hacer una distinción entre las instrucciones específicas que se dan y definir un problema particular, y los órganos de control general que se ocupan de que se lleven a cabo estas instrucciones - sean cuales sean -. Las primeras deben almacenarse en algún lugar; las otras deben representarse definiendo partes operativas del dispositivo. Con el control central nos referimos sólo a esta última función, y los órganos que la realizan forman la segunda parte especifica: CC.

2.4 Tercero: Cualquier dispositivo que realice secuencias largas y complicadas de operaciones (concretamente de cálculo) debe tener una memoria considerable...

(b) Las instrucciones que gobiernan un problema complicado pueden constituir un material considerable, sobre todo si el código es circunstancial (lo cual ocurre en la mayoría de las situaciones). Este material debe tenerse en cuenta...

En cualquier caso, la memoria total es la tercera parte específica del dispositivo: M.

2.6 Las tres partes específicas CA, CC (juntas C) y M corresponden a las neuronas asociativas del sistema nervioso humano. Queda por discutir los equivalentes a las neuronas sensoriales o aferentes y las motoras o eferentes. Estos son los órganos del dispositivo de entrada y salida...

El dispositivo tiene que estar dotado con la habilidad de mantener contacto de entrada y salida (sensorial y motor) con medios específicos de este tipo (cf. 1.2): el medio será llamado el medio de grabación exterior del dispositivo: R...

2.7 Cuarto: El dispositivo tiene que tener órganos para transferir...información a partir de R a sus partes especificas C y M. Estos órganos forman su entrada, la cuarta parte específica: 1. Veremos que lo mejor es hacer todas las transferencias a partir de R (mediante I) hasta M y nunca directamente a partir de C...

 

ORGANIZACIÓN DE UN SISTEMA DE COMPUTADORA BASICO.

Cada computadora contiene cinco elementos o unidades esenciales. La unidad aritmética lógica (ALU, por sus siglas en inglés), la unidad de memoria, la unidad de control, la unidad de entra y la unidad de salida. La interconexión básica de estas unidades se muestra en la siguiente figura 13-2. Las flechas en este diagrama indican la dirección en la cual fluyen los datos, información o señales de control. Se usan dos flechas de diferentes tamaños; las flechas mayores represen tan datos o información que consisten en un número relativamente grande de líneas paralelas líneas menores representan señales de control que, por lo general, son sólo una o unas cuantas líneas. Las diversas flechas también se enumeran para permitir un fácil acceso a ellas en las descripciones que siguen.

Unidad aritmética lógica La ALU es el área de la computadora en la cual se realizan operaciones aritméticas y lógicas con datos. El tipo de operación que se realizará se determina; por medio de la unidad de control (flecha 1). Los datos que serán utilizados por la ALU pueden provenir de la unidad de memoria (flecha 2) o de la unidad de entrada (flecha 3). Lo resultados de operaciones realizadas en la ALU pueden transferirse a la unidad de memoria para ser almacenados (flecha 4) o a la unidad de salida (flecha 5).

Unidad de memoria La memoria almacena grupos de dígitos (palabras) binarios que pueden representar instrucciones (programa) que la computadora ejecutará y los datos que serán operados por el programa. La memoria también sirve como almacenamiento de resultados intermedios y finales de operaciones aritméticas (flecha 4). La operación de la memoria es controlada por la unidad de control (flecha 6), que indica una operación de lectura de escritura. Una localidad dada en la memoria se accede por la unidad de control, la cual, proporciona el código de dirección adecuado (flecha 7). Puede escribirse información en la memoria de la ALU o de la unidad de entrada (flecha 8), una vez mas bajo el mando de la unidad de control. Puede leerse información de la memoria de la ALU (flecha 2) o de la unidad de entrada (flecha 9).

 

Unidad de entrada Esta unidad consta de todos los dispositivos que se usan para almacenar información y datos que son externos a la computadora y colocarlos en la unidad de memoria (flecha 8) o la ALU (flecha 3). La unidad de control determina hacia dónde se envía la información de entrada (flecha 10). La unidad de control se utiliza para meter el programa y los datos en la unidad de memoria antes de poner en marcha la computadora. Esta unidad se usa asimismo para introducir datos en la ALU desde un dispositivo externo durante la ejecución de un programa. Algunos de los dispositivos de entrada comunes son los teclados, disquetera, unidad de CD, lectoras de tarjetas perforadas, unidades de disco magnético, unidades de cinta magnética y convertidores de analógico a digital (ADC).

Unidad de salida Esta unidad consta de los dispositivos que se usan para transferir datos e información de la computadora al "mundo exterior". Los dispositivos de salida son dirigidos por la unidad de control (flecha 12) y pueden recibir datos de la memoria la (flecha 9) o de la ALU (flecha 5), los cuales después se colocan en forma adecuada para su uso externo. Algunos ejemplos de dispositivos de salida comunes son dispositivos de exhibición LED, luces indicadoras, impresoras, unidades de disco o cinta, monitores de video y convertidores de digital a analógico (DAC).

Conforme la computadora ejecuta su programa, generalmente tiene resultados de señales de control que debe presentar al mundo exterior. Por ejemplo, un sistema de computación podría tener una impresora de líneas como dispositivo de salida. Aquí, la computadora envía señales para imprimir los resultados en papel. Una microcomputadora podría exhibir sus resultados en luces indicadoras o en dispositivos de exhibición LED.

Interfaces Los componentes que constituyen las unidades de entrada y salida se llaman periféricos, porque están en el exterior del resto de la computadora. El aspecto más importante de los periféricos incluye interfaces. La interfase con la computadora se define específicamente como transmisión de información digital entre una computadora y sus periféricos en una forma compatible y sincronizada.

Muchos dispositivos de entrada y salida no tienen compatibilidad con la computadora debido a diferencias en características tales como velocidad de funcionamiento, formato de datos (por ejemplo, BCD, ASCII, binario) modo de transmisión de datos (por ejemplo, en serie o en paralelo) y nivel de las señales lógicas. Esos dispositivos de E/S requieren circuitos especiales de interfase que les permiten comunicarse con las secciones de control, memoria y ALU del sistema de la computadora. Un ejemplo común es el monitor, que puede funcionar como dispositivo de entrada o de salida. El monitor transmite y recibe datos en serie (un bit a la vez), mientras que la mayor parte de las computadoras manejan los datos en paralelo. Por lo tanto, un monitor requiere circuitos de interfase para enviar o recibir datos de la computadora.

Unidad de control La función de la unidad de control ahora debe ser obvia. Dirige la operación de todas las otras unidades ofreciendo señales de temporización y control. En cierto sentido, la unidad de control es como el director de una orquesta, quien es el responsable de mantener a cada uno de los miembros de la orquesta en sincronización adecuada. Esta unidad contiene circuitos lógicos y de temporización que generan las señales adecuadas que se necesitan para ejecutar cada instrucción en un programa.

 

 

 

 

La unidad de control extrae una instrucción de la memoria, mediante el envío de una dirección (flecha 7) y un comando de lectura (flecha 6) a la unidad de memoria. La palabra de instrucción almacenada en la localidad de la memoria se transfiere después a la unidad de control (flecha 11). Esta palabra de instrucción, la cual está en alguna forma de código binario es decodificada después por los circuitos lógicos de la unidad de control para determinar qué instrucción es solicitada, la unidad de control utiliza esta información para generar las señales necesarias para ejecutar la instrucción.

Esta secuencia de búsqueda y acarreo de un código de instrucción y luego la ejecución de la operación indicada, la repite una y otra vez la unidad de control. Esta secuencia repetitiva de búsqueda y ejecución continúa hasta que se apaga la computadora o hasta que la unidad de control recibe y carga una instrucción que le ordena se detenga.

Entonces, como vemos, la computadora continúa efectuando las mismas operaciones básicas una y otra vez: búsqueda, ejecución, búsqueda, ejecución, etcétera. Por supuesto, los diversos ciclos de ejecución serán distintos para cada tipo de instrucción, conforme la unidad de control envía señales diferentes a las otras unidades para ejecutar la instrucción particular.

 

 

Unidad central de proceso (CPU) En la figura 1 la ALU y la unidad de control se muestran combinadas en la llamada unidad de o (CPU). Lo anterior se hace comúnmente para separar los cerebros de la computadora de otras unidades. En una microcomputadora la CPU es usualmente un solo microcircuito el microprocesador o a lo más el microprocesador con uno o dos microcircuitos adicionales.

ELEMENTOS BÁSICOS DE LA MICROCOMPUTADORA

Es importante entender la diferencia entra la microcomputadora (Mc) y el microprocesador Una microcomputadora contiene varios elementos, donde el microprocesador es el más importante de todos ellos. Generalmente el microprocesador es un solo CI que contiene toda la de las unidades de control y aritmética lógica - en otras palabras, la CPU (unidad de procesamiento) de la microcomputadora. Es común referirse al microprocesador MPU (unidad microprocesadora) ya qué es la CPU (unidad central de proceso) de la computadora. Lo anterior se ilustra en la figura 13-4, donde se muestran los elementos de una microcomputadora.

La unidad de memoria muestra dispositivos RAM y ROM. La sección de la RAM consta o más circuitos LSI conectados para ofrecer la capacidad de memoria diseñada. Esta sección de la memoria se utiliza para almacenar programas y datos, los cuales cambiarán con frecuencia durante el curso de la operación. Es también usada para almacenar resultados finales e intermedios de operaciones llevadas a cabo durante la ejecución de un programa.

La sección de la ROM consta de uno o más circuitos ROM para almacenar instrucciones que no varían. Por ejemplo, almacena un programa que ocasiona que la mC monitoreen continuamente un teclado o bien podría almacenar una tabla de códigos ASCII que se necesitan exhibir la información en un monitor o a una impresora

.

Las secciones de entrada y salida contienen los circuitos de interfase que se necesitan para permitir que los periféricos se comuniquen adecuadamente con el resto de la computadora. En algunos casos estos dispositivos son microcircuitos diseñados por el fabricante del MPU para sincronizar su MPU con dispositivos E/S. En otros casos los circuitos de interfase pueden ser tan simples como un registro.

El microprocesador (MPU) El MPU es el corazón de cualquier computadora. Realiza muchas funciones, entre las cuales se incluyen:

1. Proporcionar las señales de control y temporización para todos los elementos de la microcomputadora.

2. Extraer las instrucciones y los datos de la memoria.

3. Transferir los datos a y desde la memoria y los dispositivos de entrada/salida.

4. Instrucciones para decodificar.

5. Ejecutar las operaciones aritméticas y lógicas invocadas por las instrucciones.

6. Responder a las señales de control generadas en entrada/salida tales como

REINICIO e INICIO.

 

El MPU contiene toda la circuitería lógica necesaria para llevar a cabo las funciones anteriores pero, en general, no existe manera de tener acceso a la lógica interna. En lugar de ello, podemos controlar lo que ocurre dentro del MPU mediante un programa formado por varias instrucciones, mismo que se coloca en la memoria para que el MPU lo ejecute. Esto es lo que hace el MPU tan versátil y flexible - cuando deseamos cambiar su operación, sólo cambiamos los programas almacenados en la RAM (software) o grabados en la ROM (firmware) en vez de cambiar la electrónica (hardware).

La lógica interna del MPU es muy compleja, pero puede considerarse como conformada por tres secciones básicas: la sección de control y temporización, la sección de registros y la ALU.

( Principales áreas funcionales de un Microcircuito).

Aunque existen interacciones bien definidas entre estas tres secciones, cada una tiene funciones específicas.

La función principal de la sección de control y temporización es traer de la memoria y decodificar (interpretar) las instrucciones que están en la memoria y que forman parte de un programa para después generar las señales de control necesarias para ejecutar las instrucciones. Esta sección también genera las señales de control y temporización (por ejemplo, R/W, reloj) para la RAM, ROM y dispositivos E/S externos.

La sección de registros contiene varios registros (dentro del MPU) cada uno tiene una función especial. El más importante de todos ellos es el contador del programa (PC), el cual mantiene la dirección donde se encuentra la siguiente instrucción que se extraerá de la memoria. Usaremos las siglas PC en la siguiente descripción de la ejecución de un programa. Los demás registros del MPU se emplean para realizar funciones tales como guardar los códigos correspondientes a las instrucciones mientras éstas son decodificadas, retener los datos que constituyen los operandos con los que trabaja la ALU, almacenar las direcciones donde se encuentran los datos en la memoria y varias funciones más de conteo y almacenamiento con propósitos generales.

La ALU efectúa una gran variedad de operaciones aritméticas y lógicas. Estas siempre la incluyen la adición y la sustracción, y las operaciones lógicas AND, OR, EX-OR, corrimiento, incremento y decremento. Los MPU mas avanzados tienen ALU s que realizan operaciones de multiplicación y división. Durante la operación de la microcomputadora, las operaciones que la ALU realiza se llevan a cabo bajo el control de la sección de control y temporización la cual, claro está, hace lo que le indican los códigos de instrucción que trae la memoria.

 

El sistema de canales/Buses

La uC tiene tres canales que transportan toda la información y señales implicadas en la operación del sistema. Estos canales conectan el microprocesador (CPU) a cada uno de los elementos de memoria y E/S, de manera que los datos y la información puedan fluir entre la CPU y cualquiera de estos otros elementos. En otras palabras, la CPU continuamente está involucrada en el envío o recepción de información hacia o desde una localidad en la memoria, un dispositivo de entrada o un dispositivo de salida.

En la uC, todas las transferencias de información se dirige a la CPU. Cuando la CPU envía datos de otros elementos de la computadora, a ésta se le llama operación de escritura y la CPU escribe en elemento seleccionado. Cuando la CPU recibe datos de otro elemento se le llama operación de lectura y la CPU lee del elemento seleccionado. Es muy importante entender que los términos "lectura" y "escritura" siempre se refieren a la operación realizada por la CPU.

Los canales implicados en todas las transferencias de datos tienen funciones que describen como sigue:

Canal de direcciones: Este es un canal unidireccional. debido a que la información fluye en una sola dirección, de la CPU a la memoria o a elementos E/,S. La CPU sólo puede colocar niveles lógicos en las líneas del canal de direcciones, con lo cual se generan 216= 65,536 posibles direcciones. Cada una de estas direcciones corresponde a una localidad de la memoria o a un elemento E/S. Por ejemplo, la dirección 20A0 16 podría ser una localidad en una RAM o en una ROM donde se almacena una palabra de 8 bits, o podría ser un registro de memoria intermedia (buffer) de 8 bit que es parte de un circuito de interfase para una terminal de un monitor.

Cuando la CPU desea comunicarse (leer o escribir) con cierta localidad de la memoria o dispositivo E/S, coloca el código de dirección de 16 bits adecuado en sus salida de dirección, A0 a A15 y en el canal de direcciones.

Estos bits de direcciones después se codifican para seleccionar la localidad de memoria deseada o dispositivo E/S. En general el proceso de decodificador requiere de una circuitería, la cual no se muestra en el diagrama.

Canales de datos: Este es un canal bidireccional pues los datos pueden fluir hacia o desde la CPU. Las ocho terminales de datos de la CPU, D0 a D7, pueden ser entradas o salidas, dependiendo de si la CPU realiza una operación de lectura o de escritura. Durante una operación de lectura actúan como entradas y reciben datos que se han colocado en el canal de datos para la memoria o elemento de E/S seleccionados por el código de direcciones en el canal de direcciones. Durante una operación de escritura las terminales de datos de la CPU actúan como salida y colocan datos en el canal respectivo, que después se envían a la memoria seleccionada o elementos de E/S. En todos los casos, las palabras de datos transmitidas tienen 8 bits de longitud debido a que la CPU maneja palabras de datos des bits, convirtiendo a esta computadora en una uC de 8 bits.

Canal de control. Este es el conjunto de señales que se usa para sincronizar las actividades de los elementos separados de la uC. Algunas de estas señales, como RD y WR, son señales que la CPU envía a los otros elementos para indicarles que tipo de operación se está realizando en ese momento. Los elementos E/S pueden enviar señales de control a la CPU. Un ejemplo de esto es la entrada de reiniciación (RES) de la CPU la cual, cuando se lleva a BAJA, ocasiona que la CPU regrese a cierto estado inicial. Otro ejemplo es la entrada de interrupción de la CPU, que es utilizada para dispositivos de E/S para captar la atención de la CPU cuando realiza otras tareas.

 

PROCESADOR

Canal/Bus de direcciones

Canal/Bus de datos

8086

20

16

8088

20

8

80186

20

16

80188

20

8

80286

24

16

80386 SX

32

16

80386 DX

32

32

80486 DX

32

32

80486 SX

32

32

PENTIUM

32

64

PENTIUM PRO

32

64

Puertos de E/S Durante la ejecución de un programa, la CPU constantemente lee de, o escribe en la memoria El programa puede solicitar también a la CPU leer de uno de los dispositivos de entrada o bien escribir en uno del os dispositivos de salida Aunque el diagrama de la uC de 8 bits en la figura anterior sólo muestra un dispositivo de entrada y uno de salida, puede haber cualquier número de estos conectado al sistema de canales de la uC. Cada dispositivo de E/S se conecta normalmente al sistema de canales de la uC a través 0e algún tipo de información puedan fluir entre la CPU y cualquiera de estos otros elementos. En otras palabras, la CPU continuamente está involucrada en el envío o recepción de información hacia o desde una localidad en la memoria, un dispositivo de entrada o un dispositivo de salida.