Sei sulla pagina 1di 30

TECNOLGICO DE ESTUDIOS SUPERIORES DE COACALCO

Protocolo de investigacin de: El ciclo de instruccin

Para exposicin PRESENTA


WENDY YANETH GARRIDO GUERRERO ETIENNE COZART VAZQUEZ

MIRIAM ARACELI UGALDE MARTNEZ


GUADALUPE MALDONADO LARIOS

COACALCO DE BERRIOZABAL, MX. SEPTIEMBRE, 2013

2.3 EL CICLO DE INSTRUCCIN

2.3.1 Ciclo Fetch-Decode-Execute

2.3.2 Segmentacin de instrucciones 2.3.3 Conjunto de instrucciones: Caractersticas y funciones 2.3.4 Modos de direccionamiento y formatos

2.3 EL CICLO DE INSTRUCCIN

Un ciclo de instruccin (tambin llamado ciclo de traer y ejecutar) es el perodo de tiempo durante el cual un ordenador lee y procesa una instruccin de lenguaje mquina de su memoria o la secuencia de acciones que la unidad central (CPU) funciona para ejecutar cada instruccin de cdigo de mquina en un programa.

Los procesadores son mquinas secuenciales, es decir, su funcionamiento se basa en ejecutar una tras otra las instrucciones contenidas en memoria. Estas instrucciones, se encuentran contenidas en memoria representadas en 0 y 1.

El ciclo de instruccin podemos dividirlo en tres partes: 1. Tomar la siguiente instruccin (fetch). 2. Decodificar la instruccin. 3. Ejecutar la instruccin.

INICIO

2.3.1 Ciclo

Tomar la siguiente instruccin (fetch).


El procesador siempre tiene su registro PC(Contador de Programa) apuntando a la direccin de memoria de la siguiente instruccin a ejecutar. Durante esta fase el procesador extrae la instruccin de la memoria apuntada por el PC volcando el contenido de este registro al bus de direcciones y pidiendo una operacin de lectura a la memoria. Simultneamente a esta peticin, el PC se incrementar en una unidad para apuntar a la siguiente instruccin o bien al primer operando de la instruccin extrada si esta lo tuviera. Cuando la memoria est preparada para atendr la peticin, vuelca el contenido de la direccin pedida al bus de datos de donde el procesador recoge el cdigo de operacin y lo coloca en un registro especial llamado Registro de Instruccin (IR).

Decodificar la instruccin.
Una vez tiene el cdigo de operacin alojado en el IR, el procesador decodifica ste para saber de qu instruccin se trata y obtiene los parmetros de la memoria (si los tuviera), incrementando el PC en una unidad por cada parmetro extrado.

Ejecutar la instruccin
Llegado a este paso, el procesador ya sabe de qu instruccin se trata y los parmetros que necesita, luego simplemente la ejecuta de la forma apropiada. Al finalizar este paso finaliza una iteracin del ciclo de instruccin, volveremos al fetch de la siguiente instruccin y as sucesivamente.

CDIGO EJEMPLO DE UN CICLO


UINT32 Z80::ejecutaZ80(UINT32 ciclos){ z80.ciclosRestantes += ciclos; do { ejecutaInst(mem->readMem(_PC++)); } while (z80.ciclosRestantes > 0);

return z80.ciclosEjecutados;
} La fase de fetch se resuelve en mem->readMem(_PC++) La rutina ejecutaInst es la que se encarga de decodificar y ejecutar la instruccin.

Las instrucciones se ejecutan ntegramente (no se puede ejecutar media instruccin o tres cuartos), as que es muy posible que se ejecuten ms ciclos de los que se han pedido. Por ejemplo, si pedimos ejecutar 5 ciclos y en el programa tenemos una instruccin de 3 y otra de 6 ciclos realmente ejecutar 9. Por este motivo se guarda en ciclosRestantes los ciclos a ejecutar sumados a los que quedaban de la anterior ejecucin (estos sern un nmero negativo) de modo que si en la anterior ejecucin nos pasamos en 4 ciclos y en esta le pedimos ejecutar 7 pues realmente intente ejecutar solo la diferencia, es decir, 3 ciclos.

INICIO

2.3.2 Segmentacin de instrucciones

La segmentacin se conoce como "pipelining", esto responde a que como una tubera, en un extremo se aceptan nuevas entradas antes de que algunas entradas aceptadas con anterioridad aparezcan como salidas en el otro extremo. La idea principal es que las instrucciones utilizan recursos distintos en distintas etapas de su ejecucin, por lo tanto, es posible ejecutar simultneamente mltiples instrucciones, si stas se encuentran TODAS en distintas etapas de Ejecucin.

Cmo se ejecuta la Segmentacin?


Buscar Instruccin o Fetch (IF): leer la supuesta siguiente instruccin desde un buffer. Decodificar Instruccin (DI): determinar cdigo de operacin y los campos de operando. Calcular operandos (CO): clculo de la direccin efectiva de cada operando fuente.

Bsqueda de Operandos (FO): obtener los operandos desde memoria.


Ejecutar Instruccin (EI): realizar la operacin indicada y almacenar el resultado en la posicin de operando destino. Escribir Operando (WO): almacenar resultado en memoria.

Es recomendable recordar los siguientes puntos, antes de comenzar con el pipelining:


En cada ciclo se inicia la ejecucin de una instruccin. Existen mltiples instrucciones en ejecucin, en distintas etapas. Es posible iniciar la ejecucin de una instruccin en cada ciclo de reloj.

Adems, es necesario tener en cuenta que: La segmentacin no mejora la latencia individual (ejecucin de instrucciones en el mismo tiempo que si se hicieran en forma secuencial), mejora el through-put global (se realiza ms trabajo en menor tiempo. Las instrucciones individuales siguen demorando lo mismo.
Si las etapas estn desbalanceadas la mejora a conseguir se reduce.

EJEMPLO
Una lavandera en la cual se realiza el proceso de lavado secuencialmente, este proceso tarda 6 horas para cuatro cargas de lavado.

Ahora, si el proceso de lavado es segmentado, es decir, se utiliza un equipo cada vez, sin mantenerlos ociosos, el tiempo para las mismas cuatro cargas se reduce a 3.5 horas.20

INICIO

2.3.3 Conjunto de instrucciones: Caractersticas y funciones

Podemos decir que las instrucciones son comandos que indican al CPU qu operacin ejecutar en cada momento.

Se denomina conjunto o repertorio de instrucciones a todas las posibles instrucciones para un procesador especfico.

El diseo del conjunto de instrucciones es el punto de partida de toda arquitectura de computadoras

CARACTERSTICAS

Las instrucciones se clasifican segn su funcin en:

Instrucciones de transferencia del control del programa. Permiten romper la secuencia lineal del programa y saltar a otro punto del mismo. Pueden equivaler a la instruccin GOTO que traen muchos lenguajes de programacin. Instrucciones de control. Son instrucciones especiales o de control que actan sobre el propio microprocesador. Permiten acceder a diversas funciones, como por ejemplo activar o desactivar las interrupciones, pasar rdenes al coprocesador matemtico, detener la actividad del microprocesador hasta que se produzca una interrupcin, etc.

Instrucciones de transferencia de datos. Estas instrucciones mueven datos (elementos de entrada/salida) desde la memoria hacia los registros internos del microprocesador, y viceversa. Tambin se usan para pasar datos de un registro a otro del microprocesador. Existen algunas instrucciones que permiten mover no slo un dato, sino un conjunto de hasta 64 KBytes con una sola instruccin. Instrucciones de clculo. Son instrucciones destinadas a ejecutar ciertas operaciones aritmticas, como por ejemplo sumar, restar, multiplicar o dividir, o ciertas operaciones lgicas, como por ejemplo AND , OR, as como desplazamiento y rotacin de bits.

INICIO

2.3.4 Modos de direccionamiento y formatos

Un modo de direccionamiento es un procedimiento que permite determinar un operando, o la direccin de un operando o una instruccin.

Como lo ms frecuente es especificar la direccin donde est almacenado el dato o la instruccin, se emplea siempre el trmino modo de direccionamiento.

Modos de direccionamiento
Inmediato: El operando se incluye en la propia instruccin. En el MIPS, este modo de direccionamiento se usa para el segundo operando de las instrucciones addi,ori,etc. Directo: Se indica en la instruccin la direccin del objeto. Por ejemplo el MIPS utiliza el modo relativo a un registro para las instrucciones de carga y almacenamiento.

Indirecto: Se indica una direccin en la que se encuentra la direccin del objeto. Este modo es til para el manejo de punteros. No obstante algunas arquitecturas como el MIPS no lo incluyen. Implcito: El objeto est siempre en un lugar predeterminado que depende de la instruccin. Por ejemplo en el MIPS la instruccin mult no necesita un registro destino, pues siempre deja su resultado en los registros hi y lo.

Formatos
Una instruccin es un tipo de dato especial que se almacena en la misma memoria en que se almacenan los datos y de la misma forma, por tanto es una cadena de bits. Lo importante es que estos bits estn organizados de cierta forma para almacenar la informacin que debe proveer la instruccin. Tal organizacin se denomina Formato de instruccin. Este define el tamao de la instruccin y los campos de informacin de la misma. El formato de instruccin puede ser fijo o variable. En el primero, el tamao de la instruccin es esttico, por ejemplo, siempre de 32 bits. En el segundo el tamao depende de la instruccin y puede ser de una palabra, dos o ms. Por ejemplo, el Z80 tiene formatos de 1, 2 y 3 bytes. El formato de instruccin, por lo general se organiza en campos. Cada campo posee un tipo de informacin, algunas arquitecturas, sin embargo, tienen campos compuestos y otras mezclan informacin en un mismo campo.

El formato debe contener toda la informacin de la instruccin o la forma de obtenerla:


Operacin a realizar .
Fuente(s): Dependen del tipo de operacin (unaria, binaria. La transferencia se supone unaria) .

Destino: Dnde poner el resultado. A veces implcito ( ADD A, B ; BA+B).


Secuenciamiento: Necesidad de conocer cul ser la prxima instruccin. Por lo general est implcito (mquina secuencial) pero a veces se permite cambiar el flujo de programa afectando al PC con instrucciones especficas o direccionamiento explcito.

Nominalmente, el Formato de instruccin, al cual llamaremos F, se compone de Dos partes: Identificacin de la operacin: COP o CO: Cdigo que identifica la operacin. Direccionamiento: Operandos fuentes y destino.

INICIO

1.

Stallings, William Organizacin y Arquitectura de Computadores: Diseo para Optimizar prestaciones 4 Edicin. Madrid. Espaa. Prentice Hall, 1998

2.

Silberschatz, Abraham & Galvin, Peter Sistemas Operativos 5 Edicin. Mxico. Addison Wesley Longman, 1999Patterson, David & Hennessy, John
Estructura y Diseo de Computadores. Interficie circuitera/programacin 2 Edicin. Barcelona. Espaa. Editorial Revert S.A. 2000 Apuntes de Clases: Arquitectura y Organizacin de Computadores Profesor: Javier Vidal, II - Semestre, ao 2001 Pregrado, Ingeniera Civil Informtica, Universidad de Concepcin Apuntes de Clases: Computacin y Programacin Profesor: Javier Vidal, I - Semestre, ao 1999 Pregrado, Ingeniera Civil Informtica, Universidad de Concepcin Apuntes de Clases: Organizacin y Arquitectura de Sistemas de Computacin Profesor: Yussef Farrn, I-Semestre, ao 2002 Magster, Ingeniera Civil Informtica, Universidad de Concepcin

3. 4.

5.

6.

Potrebbero piacerti anche