1. Perspectiva general y sincronización Veremos dos realizaciones

Anuncio
1. Perspectiva general y sincronización
Veremos dos realizaciones (estructuras) diferentes (monociclo y
multiciclo) de la arquitectura MIPS.
Se utilizará un subconjunto del repertorio de instrucciones:
- De acceso a memoria: lw y sw.
- Aritmético-lógicas: add, sub, and, or y slt.
- De salto: beq (condicional) y j (incondicional).
1
Veremos:
- La construcción paso a paso del camino de datos.
Utilizaremos los componentes combinacionales y secuenciales
necesarios y conectados de forma que se puedan realizar las
transformaciones de datos necesarias para cada instrucción.
- La definición de la unidad de control.
La haremos mediante los valores de las señales de control
necesarios en cada ciclo de reloj para ejecutar cada uno de los
pasos de una instrucción.
2
Perspectiva general de la realización
Gran parte de las transformaciones de datos necesarias es
común a todas las instrucciones, con la excepción del salto
incondicional.
(1) Los dos primeros pasos son idénticos:
- Leer de memoria la instrucción que está en la dirección
contenida en el registro contador de programa (PC).
- Leer uno o dos registros (de propósito general), especificados en
la instrucción.
3
(2) A continuación, la transformación de datos depende del tipo de
instrucción, aunque en todas ellas se utiliza la ALU:
- De acceso a memoria: para calcular la dirección del operando
en memoria.
- Aritmético-lógicas: para ejecutar la operación.
- De salto (condicional): para comparar los registros.
4
(3) Son distintas las transformaciones de datos necesarias para
finalizar la ejecución de los diferentes tipos de instrucciones:
- De acceso a memoria: lectura o escritura de un dato en
memoria.
- Aritmético-lógicas: escribir en un registro el resultado de la
operación.
- De salto: cambiar, según la comparación, el contenido del
contador de programa.
5
La siguiente figura muestra la estructura general del camino de
datos según lo que acabamos de ver:
En el resto del tema completaremos esta estructura añadiendo
componentes y conexiones entre ellos.
6
Metodología de sincronización
Los componentes del camino de datos son de dos tipos:
- Combinacionales: tratan los datos.
- Secuenciales: almacenan los datos.
Los componentes secuenciales se denominan elementos de
estado, porque definen la situación en la que se encuentra el
procesador en cada instante.
La sincronización permite que se actualice correctamente el estado
del procesador.
7
Los elementos de estado tienen:
- Entrada de datos: valor del dato a escribir.
- Señal de reloj: determina cuando se escribe el dato.
- Salida de datos: valor del dato de leer (en cualquier instante).
- Señales de lectura y escritura: para especificar la operación.
Para simplificar, no se mostrará:
- La señal de reloj.
- La señal de lectura que se supone activa para todos los
elementos de estado, que se leen todo el tiempo, excepto para la
memoria de datos.
- La señal de escritura cuando el elemento de estado
correspondiente se escribe en cada ciclo de reloj.
8
Cualquier lógica combinatoria (circuito formado por componentes
combinacionales) estará siempre entre dos elementos de estado.
Î Esto quiere decir que sus datos de entrada vienen de un
elemento de estado y sus datos de salida se almacenan en un
elemento de estado.
Suponemos sincronización por flanco de subida, es decir, todos
los elementos de estado actualizan su almacenamiento en el flanco
de subida del reloj.
9
La siguiente figura muestra entre dos elementos de estado un
bloque de lógica combinatoria:
Para asegurar que los valores almacenados en el flanco activo del
reloj son válidos, el periodo del reloj debe ser suficientemente largo
como para que se obtengan las salidas en el bloque de lógica
combinatoria.
10
Esta metodología de sincronización permite que un mismo
elemento de estado sea entrada y salida para un mismo bloque
combinacional.
De esta forma, se podrá leer el contenido de un registro, enviarlo a
través de una lógica combinatoria y escribir en ese mismo registro
en el mismo ciclo de reloj.
En la estructura monociclo esto permite actualizar el valor del
contador de programa y almacenar en el banco de registros el
resultado de una operación aritmético-lógica.
11
Descargar