Estructura Interna de Un Microprocesador Multiciclo

INSTITUTO TECNOLÓGICO DE COSTA RICA ESCUELA DE INGENIERÍA ELECTRÓNICA I semestre 2003 Página 1 de 4 Curso: Laboratorio

Views 130 Downloads 48 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

INSTITUTO TECNOLÓGICO DE COSTA RICA ESCUELA DE INGENIERÍA ELECTRÓNICA I semestre 2003 Página 1 de 4

Curso: Laboratorio de Diseño de Sistemas Digitales Prof.: Alfonso Chacón R.

Estructura interna de un microprocesador multiciclo1 Características de un micro multiciclo general (figura 1): • • • •

Una única unidad de memoria Una única ALU Uno o más registros luego de cada unidad funcional que sostiene la salida de la misma hasta que se usa el valor en un ciclo subsecuente de reloj Si las instrucciones no son de tamaño constante (como en el 8086) son necesarios varios ciclos de traída de instrucción.

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 instrucción un ciclo posterior deben guardarse en los registros adicionales.

1

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 TECNOLÓGICO DE COSTA RICA ESCUELA DE INGENIERÍA ELECTRÓNICA I semestre 2003 Página 2 de 4

El IR y el MDR se usan para guardar la salida de la memoria para una lectura de instrucción 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 leídos 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 ejecución de toda la instrucción. Por ello necesitan una señal de control propia. ¿Cuáles otros registros necesitan esto y cuáles no? Cómo las unidades de función se comparten para diferentes propósitos, es necesario añadir multiplexores. Por ejemplo, cómo se usa una única memoria para datos e instrucciones, es necesario añadir un mux para seleccionar las dos fuentes de direccionamiento posibles: el PC (para instrucciones) o ALUOut (para acceso de datos). ¿Dónde son necesarios más muxes? Es necesario determinar las unidades que necesitarán control de escritura y lectura: la ALU (para seleccionar operación), el IR (cada vez que se termina una operación y se inicia una traída de instrucción), el MDR, el banco de registros, la memoria. Para compatibilidad con 8086 es necesario añadir un registro de banderas. En la figura 2 se muestra un ejemplo de un micro con todas las señales de control y partes de hardware extras. Este es un ejemplo de un microprocesador MIPS que tiene un formato de instrucción de un solo tamaño (32 bits). El formato de instrucción de este micro es el de la tabla 1. Cómo se podrá ver, es necesario primero conocer este formato de instrucción para a partir de él determinar las necesidades de señales de control. Nota: las instrucciones de acceso de memoria en este micro se incluyen dentro de las de formato I. Tabla 1

INSTITUTO TECNOLÓGICO DE COSTA RICA ESCUELA DE INGENIERÍA ELECTRÓNICA I semestre 2003 Página 3 de 4

Figura 2

El control de este micro está centralizado. Esta es una máquina de estados que va generando las señales necesarias para ir cargando los registros con los datos obtenidos de cada etapa. Por ejemplo: una traída de instrucción o fetch. 1. Habilitar en Mux de dirección 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 tamaño variable) o si debe iniciar microrrutina de ejecución de la instrucción. Una ejemplo de una visión 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, instrucción de tipo registro, instrucciones de bifurcación, instrucciones de salto.

Figura 3

INSTITUTO TECNOLÓGICO DE COSTA RICA ESCUELA DE INGENIERÍA ELECTRÓNICA I semestre 2003 Página 4 de 4

En la rutina de fetch, los primeros pasos son independientes de la clase de instrucción. Luego vienen una serie de secuencias que dependen del código de operación de la instrucción. Cuando se completan las acciones necesarias para una instrucción, el control regresa a la primera etapa. La figura 4 ilustra la primera parte de la máquina con la generación de las señales de control para escoger los operandos en los muxes y cargar los registros en un caso específico de micro como el de la figura 2.

Figura 4

ACR/acr 18 mayo 2004