viernes, 17 de mayo de 2013

FAQ Tema 4


1- ¿Qué es una Unidad de Control?
Una unidad de control se encarga de controlar la ejecución y los procesos internos de la CPU. Esto significa generar las señales de control necesarias para llevar a cabo la ejecución de las instrucciones.

2- ¿Cómo se generan las señales para cada instrucción?
Dependiendo de si la UC es cableada o almacenada, se usan circuitos combinacionales, usando puertas lógicas para generar las señales según la instrucción a tratar, o bien, se leen de una memoria de control todas las señales a activar en caso de que sea almacenada.
Sin embargo las señales en las prácticas las generaremos NOSOTROS. Esto lo hacemos así ya que el temario está enfocado más a qué señales generar, en vez de en la implementación de la unidad de control.

3- ¿Qué clase de CPU de ejemplo estamos tratando en este tema?
Es una CPU basada en la estructura del MIPS y tiene las siguientes características:
                     Computador de 32 bits
                     La memoria se accede por bytes
                     Un ciclo de lectura y escritura
                     Banco de 32 registros R0..R31
                     Asumir como en el MIPS R0 = 0 y SP = R29
                     Registros temporales RT1, RT2, RT3
                     Registros de control y estado: MAR, MBR, PC, RE, RI

4- ¿Cuál es el esquema de la CPU que usaremos en el tema?



5- ¿Por qué existen diferentes modos de ejecución?
Esto es así para proteger de la ejecución de instrucciones que puedan ser usadas con malas intenciones y así comprometer la seguridad del sistema. Para ello existe el modo usuario, que prohíbe la ejecución de dichas instrucciones las cuales solo debería poder ejecutar el sistema operativo que gobierna el equipo. Cuando la CPU no impone restricciones en la ejecución de instrucciones, se dice que está en modo supervisor o núcleo.

6- ¿Hay que añadir el ciclo de captación (FETCH) en todas y cada una de las instrucciones?
Sí, constituye una parte imprescindible en la ejecución de instrucciones como la decodificación y propia ejecución. Este ciclo es muy metódico e idéntico para todas las instrucciones, se deben de generar unas señales que permitan buscar el código de instrucción en memoria, su carga en RI y la preparación de PC para el ciclo de instrucción siguiente.

7- ¿Qué nomenclatura debemos utilizar al realizar la secuencia de acciones y señales?
La nomenclatura a utilizar no es lo importante, cada persona puede usar una diferente si así lo cree necesario, lo importante es que quede clara y el resto de personas puedan comprender que es lo que quiere realizar y en qué momento.

Un posible ejemplo de nomenclatura podría ser:

1 a)
1 b)
2 a)
2 b)

Otra posible puede ser:

S1)
    )
S2)
     )
S3)
    )

Tal como puede verse en ambas, se indica el número del ciclo y se diferencia si es de bajada o subida.

8- Pero, ¿es importante diferenciar entre ciclo de bajada y de subida?
Es fundamental que se comience a hacer la diferenciación cuanto antes. En un mismo ciclo no pasa todo a la vez, sino que la CPU diferencia entre flanco de bajada y flanco de subida y dependiendo de qué componentes sea, les dará la señal en un momento o en otro.

Por convenio, se ha establecido que preparemos todo en el flanco de bajada y se realice la captación en el flanco de subida.

9- ¿Por qué copiamos el registro RI en RT2/RT1 en el caso de una instrucción de tipo I?
En las instrucciones de tipo I, como por ejemplo ADDi, los últimos 16 bits contienen el numero inmediato, por lo que si copiamos tan solo los últimos 16 bits y rellenamos los 16 primeros con ceros, tendremos el número que necesitamos y lo podremos copiar directamente desde RI sin necesidades de pasos intermedios.

Ejemplo de cómo copiamos solo los últimos 16 bits:

Una vez en RT1/RT2 se podrá hacer cualquier operación ya con la ALU.



10- ¿Cuándo es más eficiente una instrucción que otra?
La eficiencia en las instrucciones se miden en forma de ciclos, es decir, si queremos comparar dos instrucciones que hacen lo mismo la que tarde menos ciclos de reloj, será la más eficiente, siempre y cuando resuelva de forma correcta lo que se pide.