1. U C RELOJ ASINCRONO SINCRONO 1. UNIDAD DE CONTROL DECODIFICADOR SECUENCIADOR RI: REGISTRO DE INSTRUCCIONES PC: CONTADOR DE PROGRAMA 1
2.
3.
4. La acción básica de cualquier microprocesador, en tanto se mueve a través de la corriente de instrucciones, se puede descomponer en una serie de cuatro pasos simples, que cada instrucción en la corriente de código debe atravesar para ser ejecutada:
5. 1. Fetch: "traer" la instrucción que se va a ejecutar, de la dirección almacenada en el contador de programa. ( PC)
6. 2. Store: "almacenar" la instrucción en el registro de instrucciones y "descifrarla", incrementando la dirección en el contador de programa.
7. 3. Execute: "Ejecutar" la instrucción almacenada en el registro de instrucciones. Si la instrucción no es una instrucción de rama sino una instrucción aritmética, este proceso la envía a la ALU apropiada (ALU: Arithmetic Logic Unit – en español: Unidad Aritmético-Lógica), donde el microprocesador: a. "Lee" el contenido de los registros de entrada. b. "Agrega" el contenido de los registros de entrada.
8. 4. Write: "Escribir" los resultados de esa instrucción de la ALU nuevamente dentro del registro de destinación 3
9. En un procesador moderno, los cuatro pasos arriba descritos son repetidos una y otra vez hasta que el programa termine de ejecutarse. Éstas son, en hecho, las cuatro etapas en un "pipe" clásico del RISC (conjunto pequeño y simple de instrucciones que pueden tomar poco tiempo para ejecutarse). (Definiré el término "pipe“ como serie de etapas que cada instrucción en la corriente de código debe atravesar cuando se está ejecutando dicha corriente de código.) Aquí están las cuatro etapas en su forma abreviada, que es la más común y la que verás más a menudo: 1. Fetch (Traer) 2. Decode (Descifrar) 3. Execute (Ejecutar) 4. Write (Escribir) Cada uno de los conceptos anteriores puede ser usado para representar una fase en el "ciclo de vida" de una instrucción. Una instrucción comienza en la fase de "traer", se mueve a la fase de "descifrar", después a la fase "ejecutar", y finalmente a la fase "escribir". Cada fase toma un tiempo fijo, pero de ningún modo igual al que otra fase toma en cumplir su cometido. En la mayoría de los ejemplos de procesadores con los que trabajaremos en este artículo, las cuatro fases tomarán la misma cantidad de tiempo; éste no es generalmente el caso en procesadores del mundo real. De cualquier manera, si el procesador simple del ejemplo toma exactamente 1 nanosegundo(mil millonesima parte de un segundo) para terminar cada etapa, entonces el procesador puede acabar una instrucción cada 4 nanosegundos. 4
10. DETALLE DE LOS PASOS DEL CICLO FETCH. La dirección de PC son transferidas a MAR. La memoria lee la instrucción y la coloca en MBR, al mismo tiempo PC se incrementa +1 para prepararlo para la dirección de la siguiente instrucción. La parte del Código de operación (OP) y el bit de modo (I) son transferidos de MBR a OPR e I pero la dirección de la instrucción queda en MBR. Después t3 toma la decisión sobre el ciclo siguiente del computador F y R deben ser = para que sea un ciclo FETCH. 5