lunes, 28 de mayo de 2012

Resumen de las practicas del tema 4


Unidad de Control.
En esta práctica el objetivo central era comprender como funcionaba la ALU, la gestión de los buses y la forma en la que interactúan los diferentes componentes.
En las practicas se nos proponía una serie de instrucciones diferentes para codificarlas en hexadecimal, posteriormente realizar la secuencia para ejecutar dichas instrucciones y por ultimo comprobar, con ayuda del software logisim y el circuito proporcionado en el Campus Virtual ,que la secuencia que hemos realizado con anterioridad estaba correcta y no creamos ningún conflicto con el uso del Bus.
A la hora de realizar la secuencia tenemos que mucha atención con el uso que le damos al bus y no intentar trasmitir dos datos diferentes al mismo tiempo por el bus ya que eso ocasionaría graves errores.
Para realizar todo el resumen utilizare la primera instrucción que nos plantean como ejemplo, todas las demás instrucciones variarían según la codificación que tengan y según la función que hagan habrá que hacer el seguimiento acorde a su función.
La instrucción que utilizaremos será la ADD $t0, $t1, $t2.  Para la codificación de la instrucción utilizaremos el siguiente esquema que nos dice cuantos bits tenemos que dedicar a cada parte de la operación. Para la instrucción ADD se seguirá el siguiente esquema.
De tal manera habrá que sustituir según el valor que tengan nuestros registros en los correspondientes. Una vez tenemos todo el numero en binario agrupamos los bits de 4 en 4 para que nos dé el numero en hexadecimal que sería el 0x012A4020.
Para la realización del seguimiento tenemos que usar el esquema proporcionado en el Campus virtual.
 
 La secuencia se podría dividir en tres apartados, el primer apartado corresponde a la lectura de la instrucción, la segunda fase es la fase de la decodificación y por ultimo seria la fase de ejecución. En la fase de decodificación solo se puede descodificar la señal y no se pueden ejecutar varias acciones a la vez en el mismo ciclo.
A partir de ahora cuando nos refiramos a los ciclos estaremos haciendo referencia a todas las señales y operaciones que se pueden hacer en un solo ciclo de reloj.
Primero para leer la instrucción tendremos que pasar la dirección de PC hasta MAR, posteriormente leer en la memoria principal la dirección que está en MAR y llevarlo hasta MBR, en este paso también incrementaremos el contador PC en 4. El siguiente paso sería pasar el contenido de MBR hasta RI, todo esto sería la fase de lectura de instrucción y después tendríamos la fase de decodificación en la que se decodifica la instrucción que está en RI. Todo esto visto en ciclos quedaría de esta manera:

C1:
MAR ← PC
T4,C1
C2:
MBR Ml(MAR)
Td,L,C2

PC PC+4
C4
C3:
RI MBR
T3,C6
C4:
Decodificación



Después de la decodificación se pasaría a la fase de ejecución que sería propia de cada instrucción y en nuestro caso habría que pasar el registro $t1 y el registro $t2 a la ALU para llevar a cabo la operación y el resultado tendríamos que almacenarlo en $t0, todo esto visto en ciclos quedaría de la siguiente forma:

C5:
ALU $t1
RA=01001,MA=0

ALU $t2
RB=01010,MB=0

$t0 ALU
OP=Suma,T5,RC=01000,SC

RE ALU
C8
Una vez tenemos la secuencia realizada procedemos a comprobar el correcto funcionamiento con el software y el esquema proporcionado. La realización es simple y sirve para ver de una manera directa que lo que hemos realizado en teoría si lo llevamos a la práctica se cumple sin ningún error.
Una vez hecho todo el proceso y verificado que realmente siguiendo los pasos que hemos descrito en la secuencia escrita con anterioridad, habría que repetir el proceso con cada una de las instrucciones hasta terminar  la práctica completa.
.

No hay comentarios:

Publicar un comentario