TEMA 2º ARQUITECTURA VON-NEUMANN: UNIDADES FUNCIONALES • Arquitectura Von-Neumann. • Fases de ejecución de una instrucción. 2.1 Arquitectura Von-Neumann. La arquitectura Von-Neumann se representa: Cada bloque de la figura representa una unidad funcional con una serie de cometidos distintos a los del resto. La dirección de las flechas indica el sentido de la información en las comunicaciones entre elementos. • Memoria principal.- Su finalidad es almacenar información. Se encuentra dividida en celdas, almacenando en cada una de ellas 1 bit. En esta memoria estará almacenado (cargado) el programa que un momento dado se está ejecutando, además de todos los datos con los que opera dicho programa, asÃ− como los resultados parciales y finales que se produzcan a lo largo de la ejecución del programa. En los ordenadores actuales esta memoria es electrónica, es decir, está formada por chips. A su vez esta memoria se encuentra dividida en conjuntos de celdas o palabras, contando cada palabra 8, 16, 32, 64 bits. El acceso a cada posición o palabra se realiza mediante una dirección, por tanto cada palabra de información contenida en memoria se identifica por una sola dirección. Un bloque de memoria se puede representar por: N1 entrada de direc. que sirve para direccionar una palabra operación de lectura o escritura, 0 lee, 1 escribe. N2 dato o información que se lee o se escribe de la memoria. Se puede decir que una memoria viene definida por dos parámetros (N1 y N2) y se cumple 2nâ ¥N1, se utiliza para saber cuantos bits necesitamos. N1 da el número de direcciones que hay, sabiendo que el número de dirección es 2N1. N2 tamaño de la palabra, 8, 16, 32, 64 bits. A cada palabra una dirección. • Unidad aritmético lógica.- Sirve para realizar operaciones elementales tanto lógicas como aritméticas. Es decir, la ALU es el elemento de la arquitectura en el cuál se procesa la información. La ALU de los ordenadores personales nunca poseen la facilidad de ejecutar operaciones directamente, si estas son complejas (multiplicaciones y divisiones). Dichas operaciones se realizan con un programa especial a base de operaciones elementales cmomo pueden ser sumas y desplazamiento. Una ALU se caracteriza por el número de bits de los operandos y el número de operaciones que se pueden realizar. Tiene una entrada por cada operando, tantos canales de salida como bits haya por operando y tendrá 1 también una serie de entrada de selección que me indicará las operaciones a realizar. La velocidad de la ALU se puede incrementar añadiéndole circuitos como: • Generadores programadores. • Coprocesadores matemáticos. • Registros asociados.- Se puede definir como una memoria de carácter auxiliar de poca capacidad y muy rápida, y que a veces puede realizar por si mismo diversas operaciones como complementación, incremento-decremento o diversos desplazamientos de la información almacenada en él. Todos los trasvases de información de información que se realizan en un ordenador se llevan a cabo a través de los registros, como memoria de registros intermedia, la capacidad de los registros puede ser 8-16-32-64 bits, y el acceso a la misma puede hacerse en serie o en paralelo, un registro se puede representar. Ck es la señal de reloj que sirve para sincronizar todas las operaciones que se realizan en el registro, las operaciones sólo podrán realizarse en un instante determinado en el que el reloj este activo; por ejemplo para cargar un número: • Se da la orden de carga • Se realiza la operación de carga. ♦ Periféricos.- Son los dispositivos a través de los cuales se comunican las computadoras con las personas, los periféricos pueden ser, teclado, monitor, etc. ♦ Unidad de E/S.-Es la unidad por donde se introducen desde el exterior los datos a la computadora y también es la unidad encargada de sacar al exterior los resultados, es decir es el dispositivo que sirve de intermediario y por tanto que controla la transferencia de información entre la computadora y los periféricos. ♦ Unidad de control.- Es la encargada de generar en cada instante las señales (ordenes) adecuadas para que el resto de las unidades cumplan sus cometidos, es decir deberá activar las señales de entradas o salidas de datos o las de control de operaciones para las distintas operaciones que se deseen realizar. La unidad central de procesamiento está formada por la unidad de control (UC) y la unidad aritmético-lógica (ALU), y es la unidad “inteligente” de las computadoras. ♦ Buses.- Son las conexiones fÃ−sicas entre las distintas unidades funcionales descritas anteriormente, es decir, son los canales de información que cubren las interconexiones entre los distintos niveles, tanto internos como externos. A través de los Buses se propagan las señales fÃ−sicas que contienen la información, asÃ− como las señales de control de una unidad a otra de la computadora. • Fases de ejecución de una instrucción. Para que un computador pueda realizar un trabajo concreto hemos de proporcionarle un programa adecuado, dicho programa es una secuencia de instrucciones que la computadora debe ejecutar una a una. El programa se encontrará almacenado en la memoria principal y cada una de las instrucciones estará escrita en una o varias palabras de memoria en orden correlativo, y aunque “no necesariamente” se ejecutará una tras otra. Las fases de ejecución de una instrucción son: 1.- La U.C. envÃ−a a la memoria principal la dirección de la instrucción a ejecutar, dicha dirección se encuentra almacenada en un registro llamado contador de programa (IP), a su vez activa las señales de control necesarias para que esta le entregue la mencionada instrucción almacenándola en el registro de instrucción 2 2.- La U.C. recibe la instrucción, la analiza y en caso de necesitarlo lee los operandos de la memoria principal, con las que debe ejecutarse dicha instrucción enviando su dirección y activándolas correspondientes señales de control. 3.- A continuación se realiza la operación sobre los operandos, normalmente en la ALU, y si es necesario, se almacena el resultado de la operación en la memoria principal o en un registro. 4.- Una vez ejecutada la instrucción se incrementa el contador de programa, con lo cual se pasa a la siguiente instrucción. Primer paso Segundo paso Tercer paso *2.2 lleva la dirección de 1.2. a la memoria. El proceso anterior recibe el nombre de ciclo de instrucción, por tanto se puede resumir que las fases de una instrucción son dos: 1.- Búsqueda o captación de la instrucción. 2.- Generación de la propia instrucción. Dichas instrucciones se encuentran en lenguaje máquina. A continuación resolvemos un programa ejemplo. Supongamos una computadora con un teclado, una unidad de E/S, y una impresora como unidad de salida de datos, además el lenguaje máquina es el siguiente: -ENT.- Entrada de información, llevándola a una posición de memoria `n' que se indica en el campo de dirección de la propia instrucción ent M(m), E. -SAL.- Salida de información procedente de la memoria cuya posición señala `n' sal S, M(n). -CAR.- Carga en la ALU un dato procedente de la posición de memoria `n' car A, M(n). -MEM.- Memoriza en la posición `n' de la memoria el contenido de la ALU mem M(n), A. -SUM.- Suma el contenido de la ALU con el contenido en la posición `n' de la memoria sum A, M(n). Se pide realizar un programa, mediante esas instrucciones, que sume dos números que tenemos almacenados en las posiciones x e y. Primero se deberá confeccionar un organigrama que representa la sucesión o secuencia que va ejecutar el ordenador. Supongamos que la instrucción de la máquina se encuentra formada por 12 bits siendo las cinco primeras la instrucción que se está realizando, y las siete últimas la dirección de memoria, supongamos también que la instrucción ENT se codifica con 00100, la instrucción SAL como 00110. MEM como 00010, CAR es 00000 y SUM 11000, siendo la posición x=16, y=17, c=18, escribir el lenguaje máquina. 3 00100 0010000 00100 0010001 00000 0010000 11000 0010001 00010 0010010 00110 0010010 instrucción dirección Los pasos a seguir para la ejecución de este programa son: 1.- La U.C. capta la primera instrucción que se encuentra en la dirección indicada por el programa, el contador del programa se incrementa en uno. · La U.C. interpreta el código de dicha instrucción, es decir, el código 00100 y genera las señales de control adecuadas para que el dispositivo de entrada (teclado) lea un dato, y sea almacenado en la posición 16. 2.- La U.C. capta la siguiente instrucción (26) y el contador se incrementa en uno. · La U.C. interpreta el código de dicha instrucción, es decir, el código 00100 y genera las señales de control adecuadas para que el dispositivo de entrada (teclado) lea un dato, y sea almacenado en la posición 17. 3.- La U.C. capta la siguiente instrucción (27) y el contador se incrementa en uno. · La U.C. interpreta el código de dicha instrucción `00000' y genera la señal de control necesaria para leer el contenido de la posición de memoria 16 y almacenarlo en la ALU. 4.- La U.C. capta la siguiente instrucción (28) y el contador se incrementa en uno. · La U.C. interpreta el código de dicha instrucción `11000' y genera la señal de control necesaria para sumar el contenido de la ALU con el contenido de la posición 17. 5.- La U.C. capta la siguiente instrucción (29) y el contador se incrementa en uno. · La U.C. interpreta el código de dicha instrucción `00010' y genera la señal de control necesaria para almacenar en la posición 18 el contenido de la ALU. 6.- La U.C. capta la siguiente instrucción (30) y el contador se incrementa en uno. · La U.C. interpreta el código de dicha instrucción `00110' y genera la señal de control necesaria para llevar el contenido de la posición 18 a la impresora. Procesamiento digital de señales Tema 2º Arquitectura Von-Neumann: Unid. Funcionales Periférico 1 4 Registro de capacidad `n' Entradas de operación Salida serie Entradas en paralelo n n Salidas en paralelo Ck Entrada serie 2.2* 1.2 1.1 2 3 2 1 IP Memoria Registro de instrucciones U.C. 1 R/W acumulador OP2 5 OP1 ALU INICIO LEER E1 BLOCK MOSTRAR CARGAR SUM E2 BLOCK LEER E1 ALUE1 BLOCK Ent M(x), E1 Ent M(y), E2 Car A, M(x) Sum A, M(y) Mem M(c), A Sal S, M(c) Programa en lenguaje máquina dir. 25 Periférico 2 Periférico n Unidad de E/S Memo. 6 principal U.C. Registro ALU MEMO N1 R/W N2 ALU Bits de (si tengo 3 bits puedo selección realizar 23 operaciones) Op1 Op2 acumulador 7