Procesamientos digitales de señales. Arquitectura Von-Neumann

Anuncio
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
Descargar