Vous êtes sur la page 1sur 9

2.3.

Ciclo de Instruccin

2.3.1. Ciclo Fetch-De-code-Execute Un ciclo de instruccin (tambin llamado ciclo de fetch-and-execute o ciclo de fetch-decode-execute en ingls) es el perodo que tarda la unidad central de proceso (CPU) en ejecutar una instruccin de lenguaje mquina. Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para ejecutar cada instruccin en un programa. Cada instruccin del juego de instrucciones de una CPU puede requerir diferente nmero de ciclos de instruccin para su ejecucin. Un ciclo de instruccin est formado por uno o ms ciclos mquina. Para que cualquier sistema de proceso de datos basado en microprocesador (por ejemplo un ordenador) o microcontrolador (por ejemplo un reproductor de MP3) realice una tarea (programa) primero debe buscar cada instruccin en la memoria principal y luego ejecutarla. Habitualmente son cuatro los eventos o pasos que se llevan a cabo en cada ciclo de instruccin, los cuales son: 1. Buscar la instruccin en la memoria principal Se vuelca el valor del contador de programa sobre el bus de direcciones. Entonces la CPU pasa la instruccin de la memoria principal a travs del bus de datos al Registro de Datos de Memoria(MDR). A continuacin el valor del MDR es colocado en el Registro de Instruccin Actual (CIR), un circuito que guarda la instruccin temporalmente de manera que pueda ser decodificada y ejecutada. 2. Decodificar la instruccin El decodificador de instruccin interpreta e implementa la instruccin. El registro de instruccin (IR) mantiene la instruccin en curso mientras el contador de programa (PC, program counter) guarda la direccin de memoria de la siguiente instruccin a ser ejecutada.

Recogida de datos desde la memoria principal Se accede al banco de registros por los operandos (solo si es necesario) Se calcula el valor del operando inmediato con extensin de signo (solo si es necesario)

Tambin se lee la direccin efectiva de la memoria principal si la instruccin tiene una direccin indirecta, y se recogen los datos requeridos de la memoria principal para ser procesados y colocados en los registros de datos.

3. Ejecutar la instruccin A partir del registro de instruccin, los datos que forman la instruccin son decodificados por la unidad de control. sta interpreta la informacin como una secuencia de seales de control que son enviadas a las unidades funcionales relevantes de la CPU para realizar la operacin requerida por la instruccin. 4. Almacenar o guardar resultados El resultado generado por la operacin es almacenado en la memoria principal o enviado a un dispositivo de salida dependiendo de la instruccin. Basndose en los resultados de la operacin, el contador de programa se incrementa para apuntar a la siguiente instruccin o se actualiza con una direccin diferente donde la prxima instruccin ser recogida. 2.3.2. Segmentacin de Instruccin Pipelining o Segmentacin de Instrucciones La segmentacin de instrucciones es similar al uso de una cadena de montaje en una fbrica de manufacturacin. En las cadenas de montaje, el producto pasa a travs de varias etapas deproduccin antes de tener el producto terminado. Cada etapa o segmento de la cadena est especializada en un rea especfica de la lnea de produccin y lleva a cabo siempre la misma actividad. Esta tecnologa es aplicada en el diseo de procesadores eficientes. A estos procesadores se les conoce como pipeline processors. Un pipeline processor est compuesto por una lista de segmentos lineales y secuenciales en donde cada segmento lleva a cabo una tarea o un grupo de tareas computacionales. Puede ser representado grficamente en dos dimensiones, en donde en el eje vertical encontramos los segmentos que componen el pipeline y en el segmento horizontal representamos el tiempo

Figura 1. Diagrama notacional de un pipeline processor

Hay tres aspectos importantes que deben ser considerados en pipeline. Lo primero que debemos observar es que el trabajo es dividido en piezas que ms o menos ajustan dentro de los segmentos que componen el pipeline. Segundo, para que el pipeline trabaje de forma eficiente es necesario que las particiones de trabajo tomen aproximadamente la misma cantidad de tiempo. De no ser asi, el segmento que requiera ms tiempo (T) har que el pipeline se retrase y cada segmento requerir T unidades de tiempo para completar su trabajo. Esto quiere decir que los segmentos rpidos estarn mucho tiempo ociosos. Tercero, para que el pipeline funcione adecuadamente, deben ocurrir pocas excepciones o hazards (riesgos) que puedan causar retardos o errores en el pipeline. En caso de ocurrir errores, la instruccin tiene que ser cargada nuevamente en el pipeline y se debe reiniciar la misma instruccin que ocasion la excepcin. Como una primera aproximacin, consideremos una procesamiento de una instruccin en dos etapas o segmentos: Captacin de la instruccin Ejecucin de la instruccin La primera etapa capta una instruccin y la almacena en un buffer. Cuando la segunda etapa est libre, la primera etapa le pasa la instruccin almacenada. Mientras la segunda etapa ejecuta la instruccin, la primera etapa usa algn ciclo de memoria no utilizado para captar y almacenar la siguiente instruccin. A esto se le conoce como prebsqueda o precaptacin de instruccin. Este proceso aceler la ejecucin de instrucciones. Si las dos etapas consideradas fueran de igual duracin, el tiempo de ciclo de instruccin se reducira a la mitad. subdivisin del

2.3.3. Conjunto de instrucciones: caractersticas y funciones Un conjunto de instrucciones o repertorio de instrucciones, juego de instrucciones o ISA (del ingls Instruction Set Architecture, Arquitectura del Conjunto de Instrucciones) es una especificacin que detalla las instrucciones que una CPU de un ordenador puede entender y ejecutar, o el conjunto de todos los comandos implementados por un diseo particular de una CPU. El trmino describe los aspectos del procesador generalmente visibles a un programador, incluyendo los tipos de datos nativos, las instrucciones, los registros, la arquitectura de memoria y las interrupciones, entre otros aspectos. Existe principalmente de 3 tipos: CISC (Complex Instruction Set Computer) : CISC (del ingls Complex Instruction Set Computer, en espaol Computador con Conjunto de Instrucciones Complejas) es un modelo de arquitectura de

computadores. Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposicin a la arquitectura RISC. RISC (Reduced Instruction Set Computer): RISC (del ingls Reduced Instruction Set Computer, en espaol Computador con Conjunto de Instrucciones Reducidas) es un tipo de diseo de CPU generalmente utilizado en microprocesadores o micro controladores con las siguientes caractersticas fundamentales: 1. Instrucciones de tamao fijo y presentadas en un reducido nmero de formatos. 2. Slo las instrucciones de carga y almacenamiento acceden a la memoria de datos. Adems estos procesadores suelen disponer de muchos registros de propsito general. SISC (Simple Instruction Set Computing): SISC (Simple Instruction Set Computing) es un tipo de arquitectura de microprocesadores orientada al procesamiento de tareas en paralelo. Esto se implementa mediante el uso de la tecnologa VLSI, que permite a mltiples dispositivos de bajo costo que se utilicen conjuntamente para resolver un problema particular dividido en partes disjuntas. La arquitectura RISC es un subconjunto del SISC, centrada en la velocidad de procesamiento debido a un conjunto de instrucciones reducido. Nmero de operandos El conjunto de instrucciones puede ser clasificado por el nmero mximo de operandos explcitamente especificados en las instrucciones. (en los ejemplos que siguen, a, b y c se refieren a celdas de memoria, mientras que reg1 y sucesivos se refieren a los registros de la mquina). 0-operando, tambin llamada mquina de pila: todas las operaciones aritmticas se ejecutan en la parte superior de una o dos posiciones de la pila, push y pop son las instrucciones utilizadas para acceder a la memoria: push a, push b, add, pop c. 1-operando (mquinas de una direccin), tambin llamadas mquinas de acumulador, incluida en la mayora de las primeras computadoras y muchos microcontroladores pequeos: la mayora de instrucciones especifican un operando explcito a la derecha (un registro, una posicin de memoria, o una constante) y un operando a la izquierda: load a, add b, store c.

2-operando la mayora de las mquinas CISC y RISC entran en esta categora: CISC load a, reg1, add reg1, b; store reg1, c RISC - cargas que requieren la memoria explcita, las instrucciones seran: load a,reg1; load b,reg2; add reg1,reg2; store reg2,c 3-operando, permite una mejor reutilizacin de los datos: CISC - bien una sola instruccin: add a, b, c, o ms generalmente: move a,reg1; add reg1,b,c como la mayora de las mquinas se limitan a dos operandos de memoria. RISC - Debido a la gran cantidad de bits necesarios para codificar los tres registros, este esquema no suele estar disponible en los procesadores RISC con pequeas instrucciones de 16 bits: load a,reg1; load b,reg2; add reg1+reg2->reg3; store reg3,c; ms operandos, algunas mquinas CISC permiten una variedad de modos de direccionamiento que permiten ms de 3 operandos (registros o accesos a memoria), como el VAX "POLY", instruccin de evaluacin de polinomio. Caractersticas que debe tener un conjunto de instrucciones Las caractersticas que se pretende que tenga un conjunto de instrucciones son cuatro, principalmente:

Completo: Que se pueda realizar en un tiempo finito cualquier tarea ejecutable con un ordenador (computable o decidible). Eficiente: Que permita alta velocidad de clculo sin exigir una elevada complejidad en su UC y ALU y sin consumir excesivos recursos (memoria), es decir, debe cumplir su tarea en un tiempo razonable minimizando el uso de los recursos. Autocontenidas: Esto es, que contengan en s mismas toda la informacin necesaria para ejecutarse. Independientes: Que no dependan de la ejecucin de alguna otra instruccin.

Se puede comprobar que para que un conjunto de instrucciones sea completo solo se necesitan cuatro instrucciones: -> escritura -> mover a la izquierda una posicin y leer -> mover a la derecha una posicin y leer -> parar En esta idea se basan las arquitecturas RISC, no obstante, con este conjunto no se puede conseguir la eficiencia del repertorio de instrucciones por lo que en la prctica el conjunto suele ser ms amplio en aras de conseguir un mejor rendimiento, tanto en uso de recursos como en consumo de tiempo.

2.3.4. Modos de direccionamiento y formatos

Modos de direccionamiento Los llamados modos de direccionamiento son las diferentes maneras de especificar en informtica un operando dentro de una instruccin en lenguaje ensamblador. Un modo de direccionamiento especifica la forma de calcular la direccin de memoria efectiva de un operando mediante el uso de la informacin contenida en registros y / o constantes, contenida dentro de una instruccin de la mquina o en otra parte. Inmediato En este modo el operando es especificado en la instruccin misma. En otras palabras, una instruccin de modo inmediato tiene un campo de operando en vez de un campo de direccin. El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacin especificada en la instruccin. Las instrucciones de modo inmediato son tiles para inicializar los registros en un valor constante. Cuando el campo de direccin especifica un registro del procesador, la instruccin se dice que est en el modo de registro.

Directo El campo de operando en la instruccin contiene la direccin en memoria donde se encuentra el operando. En este modo la direccin efectiva es igual a la parte de direccin de la instruccin. El operando reside en la memoria y su direccin es dada directamente por el campo de direccin de la instruccin. En una instruccin de tipo ramificacin el campo de direccin especifica la direccin de la rama actual.

Con este tipo de direccionamiento, la direccin efectiva es contenida en la misma instruccin, tal como los valores de datos inmediatos que son contenidos en la instruccin. Un procesador de 16 bits suma la direccin efectiva al contenido del

segmento de datos previamente desplazado en 4 bits para producir la direccin fsica del operando. Indirecto El campo de operando contiene una direccin de memoria, en la que se encuentra la direccin efectiva del operando.

Absoluto El campo de operando contiene una direccin en memoria, en la que se encuentra la instruccin. Y no se cancela. De registro Sirve para especificar operandos que estn en registros.

Indirecto mediante registros El campo de operando de la instruccin contiene un identificador de registro en el que se encuentra la direccin efectiva del operando. En este modo el campo de la direccin de la instruccin da la direccin en donde la direccin efectiva se almacena en la memoria. El control localiza la instruccin de la memoria y utiliza su parte de direccin para acceder a la memoria de nuevo para leer una direccin efectiva. Unos pocos modos de direccionamiento requieren que el campo de direccin de la instruccin sea sumado al control de un registro especificado en el procesador. La direccin efectiva en este modo se obtiene del siguiente clculo: Dir. efectiva = Dir. de la parte de la instruccin + Contenido del registro del procesador...

Ejemplo: MOV A,@R0 De desplazamiento Combina el modo directo e indirecto mediante registros De pila Se utiliza cuando el operando est en memoria y en la cabecera de la pila. Este direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO), las cuales estn marcados por el fondo de la pila y el puntero de pila (*SP), El puntero de pila apunta a la ltima posicin ocupada. As, como puntero de direccionamiento usaremos el SP. El desplazamiento ms el valor del SP nos dar la direccin del objeto al que queramos hacer referencia. En ocasiones, si no existe C. de desplazamiento solo se trabajara con la cima de la pila. Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario, es mucho ms complejo que otros tipos estudiados ms arriba.

Vous aimerez peut-être aussi