Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Figura 1
Al final de cada ciclo, todos los datos usados en ciclos de reloj subsecuentes deben almacenarse en un registro. Los datos usados por instrucciones subsecuentes deben guardarse en alguno de los registros visibles para el programador (i.e., el banco de registros, el PC o la memoria). Los datos usados por la misma instruccin un ciclo posterior deben guardarse en los registros adicionales.
Tomado de: Hennessy, D. A., y Patterson, J. L. Computer Organization and Design. The Hardware Software Interface. 2 ed. San Francisco, CA: Morgan Kauffman. 1998. 377-410
INSTITUTO TECNOLGICO DE COSTA RICA ESCUELA DE INGENIERA ELECTRNICA I semestre 2003 Pgina 2 de 4
El IR y el MDR se usan para guardar la salida de la memoria para una lectura de instruccin y una lectura de datos, respectivamente. Se usan dos registros separados porque ambos datos pueden necesitarse durante el mismo ciclo. Los registros A y B sostienen los valores de los operandos ledos del banco de registros. El registro ALUOut sostiene la salida de la ALU Algunos de estos registros, como el IR, necesitan mantenerse a lo largo de la ejecucin de toda la instruccin. Por ello necesitan una seal de control propia. Cules otros registros necesitan esto y cules no? Cmo las unidades de funcin se comparten para diferentes propsitos, es necesario aadir multiplexores. Por ejemplo, cmo se usa una nica memoria para datos e instrucciones, es necesario aadir un mux para seleccionar las dos fuentes de direccionamiento posibles: el PC (para instrucciones) o ALUOut (para acceso de datos). Dnde son necesarios ms muxes? Es necesario determinar las unidades que necesitarn control de escritura y lectura: la ALU (para seleccionar operacin), el IR (cada vez que se termina una operacin y se inicia una trada de instruccin), el MDR, el banco de registros, la memoria. Para compatibilidad con 8086 es necesario aadir un registro de banderas. En la figura 2 se muestra un ejemplo de un micro con todas las seales de control y partes de hardware extras. Este es un ejemplo de un microprocesador MIPS que tiene un formato de instruccin de un solo tamao (32 bits). El formato de instruccin de este micro es el de la tabla 1. Cmo se podr ver, es necesario primero conocer este formato de instruccin para a partir de l determinar las necesidades de seales de control. Nota: las instrucciones de acceso de memoria en este micro se incluyen dentro de las de formato I.
Tabla 1
INSTITUTO TECNOLGICO DE COSTA RICA ESCUELA DE INGENIERA ELECTRNICA I semestre 2003 Pgina 3 de 4
Figura 2
El control de este micro est centralizado. Esta es una mquina de estados que va generando las seales necesarias para ir cargando los registros con los datos obtenidos de cada etapa. Por ejemplo: una trada de instruccin o fetch. 1. Habilitar en Mux de direccin para que PC dirija la memoria 2. Habilitar carga de IR. IR = Memory [PC] 3. Incrementar PC. PC= PC+2 4. Decidir si es necesario otro fetch (instrucciones de tamao variable) o si debe iniciar microrrutina de ejecucin de la instruccin. Una ejemplo de una visin de alto nivel de la FSM de control es la de la figura 3. Como se ve en la tabla 1, este micro que tiene categorizadas sus instrucciones en: operaciones de acceso a memoria, instruccin de tipo registro, instrucciones de bifurcacin, instrucciones de salto.
Figura 3
INSTITUTO TECNOLGICO DE COSTA RICA ESCUELA DE INGENIERA ELECTRNICA I semestre 2003 Pgina 4 de 4
En la rutina de fetch, los primeros pasos son independientes de la clase de instruccin. Luego vienen una serie de secuencias que dependen del cdigo de operacin de la instruccin. Cuando se completan las acciones necesarias para una instruccin, el control regresa a la primera etapa. La figura 4 ilustra la primera parte de la mquina con la generacin de las seales de control para escoger los operandos en los muxes y cargar los registros en un caso especfico de micro como el de la figura 2.
Figura 4