Sei sulla pagina 1di 14

Instituto Tecnolgico de Minatitln

Equipo 2 Integrantes

Samuel Hiplito Rocha Garca Johan Culebro Reyes Efran de Jess Nandez Aguilar Luis Enrique Martnez Ruiz Sergio Cruz de la Cruz Mendoza Omar Nathanael Torres Torres
Carrera

Ingeniera en Sistemas Computacionales


Nivel

5 Semestre
Materia

Arquitectura de Computadoras
Profesor

Claudia del Carmen Pavn Nez


Tema

El ciclo de instruccin

Mircoles 07 de Noviembre del 2012

El Ciclo de Instruccin
Introduccin
Un ciclo de instruccin es el perodo que tarda la unidad central de proceso (CPU) en ejecutar una instruccin de lenguaje mquina. Tambin se le conoce como ciclo de fetch-decode-execute en ingls. Comprende una secuencia de acciones 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, por lo tanto, un ciclo de instruccin est formado por uno o ms ciclos mquina. Para que cualquier sistema de proceso de datos basado en microprocesador (como un ordenador) o micro-controlador (como un reproductor de MP3) realice una tarea, primero debe buscar cada instruccin en la memoria principal y luego ejecutarla.

Secuencia de acciones del ciclo de instruccin


Podemos descomponer el procesamiento de instrucciones en dos etapas: Bsqueda y Ejecucin. Habitualmente son cuatro los eventos o pasos que se llevan a cabo en cada ciclo de instruccin. 1. Buscar instruccin en la memoria 2. Decodificar la instruccin 3. Ejecutar la instruccin 4. Almacenar o guardar resultados

Ciclo de Bsqueda

Ciclo de Ejecucin

1.- Buscar la instruccin en la memoria principal


Se vuelca el valor del contador de programa (un registro del procesador que indica la posicin en que se encuentra el procesador en su secuencia de instrucciones) sobre el bus de direcciones, el cual es un canal del microprocesador totalmente independiente donde se establece la direccin de memoria de los datos en trnsito. Entonces la CPU pasa la instruccin de la memoria principal a travs del bus de datos (encargado de mover la informacin por los componentes de hardware del sistema de computacin) 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 instrucciones interpreta e implementa la instruccin. El Registro de Instruccin (IR, Instruction Register) 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. 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.

Fetch Indirecto o Ciclo Indirecto


Ya se ha visto que la ejecucin de una instruccin puede requerir invocar uno o ms datos u operandos que se encuentran en la memoria. Cada uno de estos datos deber ser extrado de la memoria mediante un fetch. Sin embargo, es frecuente que la instruccin a ejecutar especifique direccionamiento indirecto para extraer un operando, lo cual implicar el uso de un acceso a memoria adicional. Se puede ver al fetch de direccionamiento indirecto como un subciclo ms en el ciclo de instruccin:

Una vez que se hace un fetch de una instruccin, los especificadores de los operandos deben ser identificados. Cada operando que se encuentra en memoria es extrado de la misma mediante un fetch, pero es posible que se requiera realizar un acceso indirecto a memoria. Es importante aclarar que no se requiere acceder la memoria (realizar un fetch) cuando los operandos de la instruccin se encuentran ya en los registros del CPU. Una vez que la instruccin es ejecutada, es posible que se requiera almacenar el resultado en la memoria principal.

Flujo de datos en el Ciclo Fetch La figura muestra el flujo de datos durante este ciclo. El registro PC contiene la direccin de la localidad de la memoria en la que se encuentra la siguiente instruccin a extraer. Esta direccin es almacenada en el registro MAR y puesta en el bus de direcciones. La unidad de control solicita una lectura de memoria (leer o extraer la instruccin que se encuentra en esa direccin), el resultado de la lectura es puesto en el bus de datos y copiado en el registro MBR y, de ah, la instruccin es depositada en el registro IR. Mientras tanto, el registro PC es incrementado en una unidad como paso de preparacin para el siguiente fetch de instruccin.

Flujo de Datos en el Ciclo de Direccionamiento Indirecto Una vez finalizado el ciclo fetch, la unidad de control examina el contenido del registro IR para determinar si contiene un especificador de operando que use direccionamiento indirecto. S ste es el caso, se ejecuta un ciclo de direccionamiento indirecto. Como se puede ver en la figura, ste es un ciclo sencillo. Los N bits menos significativos (bits a la derecha), los cuales contienen la referencia a memoria, son transferidos al registro MAR y de ah al bus de direcciones. Entonces, la unidad de control solicita una lectura a memoria para obtener la direccin deseada del operando y depositarla en el registro MBR.

Flujo de datos en el Ciclo de Ejecucin Los ciclos de fetch y de direccionamiento indirecto son simples y predecibles. El ciclo de ejecucin toma una de muchas formas posibles, dependiendo de qu instruccin se encuentre en el registro IR. Este ciclo puede involucrar la transferencia entre registros, leer o escribir en la memoria o en el bus de Entrada/Salida, y/o el uso de la ALU. Flujo de datos en el Ciclo de Interrupcin Tal los ciclos fetch y direccionamiento indirecto, el ciclo de interrupcin es simple y predecible (ver la Figura 5.5). El contenido del registro PC debe ser grabado o respaldado para que el CPU pueda reanudar su actividad normal despus de haber procesado la interrupcin. Entonces, el contenido del PC es transferido al registro MBR para subsecuentemente ser almacenado (escrito) en la memoria. La localidad de memoria especial reservada para este propsito es cargada por la unidad de control en el registro MAR. Podra ser, por ejemplo, el registro apuntador a stack. El registro PC es cargado con la direccin de la rutina de la interrupcin. Como resultado, el siguiente ciclo de instruccin iniciar extrayendo la instruccin apropiada, la cual no es sino la primera instruccin de la rutina correspondiente a la interrupcin recibida.

Conjunto De Instrucciones
Un conjunto de instrucciones, juego de instrucciones o ISA (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. Existen principalmente de 3 tipos: 1. CISC (Complex Instruction Set Computer) 2. RISC (Reduced Instruction Set Computer) 3. SISC (Simple Instruction Set Computing)

Arquitectura CISC
Del ingls Complex Instruction Set Computer, se refiere a la conexin permanente del procesador con las instrucciones complejas, difciles de crear a partir de las instrucciones de base. Intel fue el creador de CISC en 1971 del primer microchip que permitira el nacimiento de la informtica personal. Ms concretamente, sera en 1972 cuando aparecera el 8080, primer chip capaz de procesar 8 bits, suficiente para representar nmeros y letras. Con la posibilidad de colocar todos los circuitos en un solo chip y la capacidad de manejar nmero y letras nacera la cuarta generacin de ordenadores, la de los conocidos como PC u ordenadores personales. El diseo de esta arquitectura estuvo orientado por las condiciones de mercado de aquella poca y muy especialmente por la limitacin en oferta y precio de la memoria de acceso aleatorio del ordenador, la RAM. As pues, muchas de las decisiones tomadas con relacin al diseo del chip tenan como objetivo minimizar los requerimientos de memoria que se hicieran al ordenador. Una forma de reducir la necesidad de memoria era simplificando el software e incrementando la complejidad del procesador, lo cual si bien iba en detrimento del rendimiento global del sistema era una solucin mucho mejor que tener que aadir ms RAM. La arquitectura CISC es especialmente popular en procesadores de tipo 80x86. Este tipo de arquitectura tiene un costo elevado a causa de las funciones avanzadas impresas en la silicona.

Las instrucciones son de longitud diversa, y a veces requieren ms de un ciclo de reloj. Dado que los procesadores basados en la arquitectura CISC slo pueden procesar una instruccin a la vez, el tiempo de procesamiento es una funcin del tamao de la instruccin. Hasta finales de la dcada de los 70 se pretenda reducir el coste del hardware, mediante el uso de complejos juegos de instrucciones basados en la microprogramacin. En esta poca el tiempo de acceso a Memoria Principal era muy superior al de decodificacin y procesamiento de las instrucciones, debido al uso de los circuitos integrados. Para paliar ese desequilibrio se disminuy el empleo de la Memoria Principal y se aument el del procesador, creando as los juegos de instrucciones complejos o CISC. Otros aspectos ventajosos son: el abaratamiento del hardware, la facilitacin del diseo de los Compiladores, y la disminucin del tamao de los programas. Historia y evolucin de CISC La microprogramacin es una caracterstica importante y esencial de casi todas las arquitecturas CISC, podramos mencionar por ejemplo: Intel 8086, 8088, 80286, 80386, 80486. Motorola 68000, 68010, 68020, 68030, 6840. La microprogramacin significa que cada instruccin de mquina es interpretada por un microprograma localizado en una memoria en el circuito integrado del procesador. En la dcada de los sesentas la microprogramacin, por sus caractersticas, era la tcnica ms apropiada para las tecnologas de memorias existentes en esa poca y permita desarrollar tambin procesadores con compatibilidad ascendente. En consecuencia, los procesadores se dotaron de poderosos conjuntos de instrucciones. Las instrucciones compuestas son decodificadas internamente y ejecutadas con una serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren de varios ciclos reloj (al menos uno por microinstruccin).

RISC
Del ingls Reduced Instruction Set Computer, es un tipo de diseo de CPU generalmente utilizado en micro-procesadores o micro-controladores con las siguientes caractersticas fundamentales: Instrucciones de tamao fijo y presentado en un reducido nmero de formatos. Slo las instrucciones de carga y almacenamiento acceden a la memoria de datos. Adems estos procesadores suelen disponer de muchos registros de propsito general. El objetivo de disear mquinas con esta arquitectura es posibilitar la segmentacin y el paralelismo en la ejecucin de instrucciones y reducir los accesos a memoria. Las mquinas RISC protagonizan la tendencia actual de construccin de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM y SPARC son ejemplos de algunos de ellos. RISC es una filosofa de diseo de CPU para computadora que est a favor de conjuntos de instrucciones pequeas y simples que toman menor tiempo para ejecutarse. El tipo de procesador ms comnmente utilizado en equipos de escritorio, el x86, est basado en CISC en lugar de RISC, aunque las versiones ms nuevas traducen instrucciones basadas en CISC x86 a instrucciones ms simples basadas en RISC para uso interno antes de su ejecucin. Caractersticas Incrementar el tamao del conjunto de registros. Mayor velocidad en la ejecucin de instrucciones. Implementar medidas para aumentar el paralelismo interno. Aadir cachs enormes. Aadir otras funcionalidades, como E/S y relojes para mini controladores. Construir los chips en lneas de produccin antiguas que de otra manera no seran utilizables. No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo de energa o de tamao limitado.

Arquitectura RISC Buscando aumentar la velocidad del procesamiento se descubri en base a experimentos que, con una determinada arquitectura de base, la ejecucin de programas compilados directamente con microinstrucciones y residentes en memoria externa al circuito integrado resultaban ser ms eficientes, gracias a que el tiempo de acceso de las memorias se fue decrementando conforme se mejoraba su tecnologa de encapsulado. Debido a que se tiene un conjunto de instrucciones simplificado, stas se pueden implantar por hardware directamente en la CPU, lo cual elimina el micro-cdigo y la necesidad de decodificar instrucciones complejas. La arquitectura RISC funciona de modo muy diferente a la CISC, su objetivo no es ahorrar esfuerzos externos por parte del software con sus accesos a la RAM, sino facilitar que las instrucciones sean ejecutadas lo ms rpidamente posible. La forma de conseguirlo es simplificando el tipo de instrucciones que ejecuta el procesador. As, las instrucciones ms breves y sencillas de un procesador RISC son capaces de ejecutarse mucho ms aprisa que las instrucciones ms largas y complejas de un chip CISC. Sin embargo, este diseo requiere de mucha ms RAM y de una tecnologa de compilador ms avanzada. Los comandos que incorpora el chip RISC en su ROM constan de varias instrucciones pequeas que realizan una sola tarea. Las aplicaciones son aqu las encargadas de indicar al procesador qu combinacin de estas instrucciones debe ejecutar para completar una operacin mayor. Adems, los comandos de RISC son todos del mismo tamao y se cargan y almacenan del mismo modo. Al ser estas instrucciones pequeas y sencillas, no necesitan ser descodificadas en instrucciones menores como en el caso de los chips CISC, pues ya constituyen en s unidades descodificadas. Por ello, el procesador RISC no gasta tiempo verificando el tamao del comando, en descodificarlo ni en averiguar cmo cargarlo y guardarlo. El procesador RISC puede adems ejecutar hasta 10 comandos a la vez pues el compilador del software es el que determina qu comandos son independientes y por ello es posible ejecutar varios a la vez. Y al ser los comandos del RISC ms sencillos, la circuitera por la que pasan tambin es ms sencilla. Estos comandos pasan por menos transistores, de forma que se ejecutan con ms rapidez. Para ejecutar una sola instruccin normalmente les basta con un ciclo de reloj.

SISC
Del ingls 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. Los microprocesadores SISC nunca han logrado amenazar el amplio dominio de los procesadores CISC en los ordenadores personales, debido a su popularidad y al aumento constante en la capacidad de procesamiento de los mismos. Por lo tanto, el uso de RISC y SISC sigue limitado a necesidades muy especficas de procesamiento, como en los procesadores DSP. El SISC extiende el concepto de arquitectura RISC en la mayor medida. Bsicamente, el SISC implementa una nica pero muy potente instruccin. El resultado es un sistema flexible, de bajo costo, procesador que supera muchos de los diseos que contienen decenas de miles de otras ms transistores. Dado que slo hay una sola instruccin, se consigue una reduccin de complejidad del procesador considerable. El SISC opera sin tubera de instruccin y sin cach de instrucciones. Estos elementos, que aaden costes y complejidad a otros procesadores, son completamente innecesarios en el SISC: la "siguiente" instruccin siempre es la misma que la anterior. No hay necesidad de obtener un cdigo de operacin y no hay necesidad de descodificar uno. Cada ciclo es un ciclo de ejecucin en el SISC. Y sin cdigos de operacin para ir a buscar, tampoco hay necesidad de un registro de instrucciones o contador de programa, lo que simplifica an ms el diseo. La elegancia del procesador SISC est compuesta por nica instruccin multiuso: INC A. Esta instruccin, la nica disponible en el SISC, aade uno a los contenidos del acumulador y almacena el resultado en el acumulador. El valor de este enfoque se hace evidente cuando se considera que los dos operandos son implicados por la instruccin en s, como es el destino. Por consiguiente, no se requiere ciclo de memoria, nunca. Esto conduce al sorprendente resultado de que el SISC puede funcionar sin memoria en absoluto, una conclusin a la que han verificado experimentalmente. El ahorro en los circuitos de gestin de memoria, RAM de control, y los propios dispositivos de memoria son sustanciales. Puede ser el SISC ventaja segunda mayor tiene sobre otros diseos ms tradicionales.

El lenguaje mquina
El lenguaje mquina est construido a partir de los estados discretos o instrucciones. En la arquitectura de procesamiento, una instruccin dada puede especificar: Registros para operaciones aritmticas, de direccionamiento o de control. Ubicaciones particulares de memoria. Modos de direccionamiento para interpretar operandos. Las operaciones ms complejas se construyen a partir de estas, que (en una mquina Von Neumann) se ejecutan secuencialmente, o segn el control de flujo. Muchas o pocas de las operaciones disponibles incluidas en la mayora de conjuntos son:

Desplazamiento o Establecer un registro a un valor constante o Mover datos desde una posicin de memoria a un registro y viceversa. Esto se realiza para obtener datos para operaciones matemticas y su almacenamiento. o Leer y escribir datos desde dispositivos de hardware Operaciones matemticas o Sumar, restar, multiplicar o dividir dos registros y colocar el resultado en alguno. o Realizar operaciones bit a bit, teniendo el AND y el OR de cada bit en un par de registros, o el NOT de cada bit en un registro. o Comparar dos valores que se encuentren en registros(por ejemplo, si son iguales o si uno es mayor que otro) Afectan al flujo de programa o Saltar a otra posicin del programa y ejecutar instrucciones all. o Saltar a otra posicin si se cumple cierta condicin o Saltar a otra posicin, pero salvando la posicin actual para poder volver a realizar una llamada.

Instrucciones complejas Algunos ordenadores incluyen instrucciones "complejas". Dichas instrucciones pueden tomar muchas instrucciones en otros equipos. Estas se caracterizan por instrucciones que necesitan varios pasos, como el control de mltiples unidades funcionales. Algunos ejemplos son: Ahorro de registros en la pila Mover grandes bloques de memoria Complejas operaciones and/or con aritmtica de coma flotante, tales como el seno o la raz cuadrada. Instrucciones que combinan ALU con un operando de la memoria mas que de registros. Un tipo complejo de la instruccin que ha llegado a ser particularmente popular recientemente es SIMD (Single Instruction, Multiple Data), una operacin que realice la misma operacin aritmtica en pedazos mltiples de datos al mismo tiempo. SIMD tienen la capacidad de manipular vectores y matrices grandes en tiempo mnimo. Las instrucciones de SIMD permiten la paralelizacin fcil de los algoritmos implicados comnmente en sonido, imagen, y el proceso video. Varias implementaciones de SIMD se han trado al mercado bajo nombres comerciales tales como MMX, 3DNow! y AltiVec. Historia de los sistemas de instruccin El diseo de sistemas de instruccin es una edicin compleja. Haba dos etapas en la historia para el microprocesador. El primer era el CISC (ComplexInstruction Set Computer) que tena muchas instrucciones diferentes. En los aos 70 IBM hicieron la investigacin y encontraron que muchas instrucciones en el sistema podran ser eliminadas. El resultado era el RISC (ReducedInstruction Set Computer), una arquitectura que utiliza un sistema ms pequeo de instrucciones. Un conjunto de instruccin ms simple puede ofrecer el potencial para velocidades ms altas, tamao reducido del procesador, y consumo de energa reducido. Sin embargo, un conjunto ms complejo puede optimizar operaciones comunes, mejorar memoria/eficiencia de cache, o simplificar la programacin.

Implementacin del conjunto de instrucciones


Cualquier conjunto de instrucciones se puede implementar de varias maneras. Todas las maneras de implementar un conjunto de instrucciones dan el mismo modelo programado, y todas pueden hacer funcionar los mismos ejecutables binarios. Las varias maneras de implementar un conjunto de instrucciones dan diversas compensaciones entre el coste, el funcionamiento, el consumo de energa y el tamao. Al disear micro-arquitecturas, los ingenieros usaron bloques de circuitos electrnicos duramente-conectados (diseado a menudo por separado) por ejemplo, los multiplexores, los contadores, los registros, ALUs, etc. Un cierto tipo del lenguaje de transferencia de registros es a menudo usado para describir la codificacin y la secuencia de cada instruccin de ISA usando esta micro-arquitectura fsica. Hay tambin algunos nuevos diseos de CPU que compilan el conjunto de instruccin a una RAM escribible o FLASH dentro de la CPU (tal como el procesador Recursiv y el ImsysCjip), o FPGA (computacin reconfigurable). Western Digital MCP-1600 es un ejemplo antiguo, usando una ROM dedicada, separada del micro-cdigo. ISA se puede tambin emular en software por un intrprete. Naturalmente, debido a la interpretacin de overhead, es ms lento que ejecutar programas directamente sobre el hardware emulado. Hoy, es prctica para los vendedores de nuevos ISAs o micro-arquitectura poner emuladores del software a disposicin de los desarrolladores de programas informticos antes de que la implementacin del hardware est lista. Los detalles de la implementacin tienen una influencia fuerte en las instrucciones particulares seleccionadas para el conjunto de instruccin. Por ejemplo, muchas implementaciones de la instruccin pipline permiten solamente una carga de memoria (load) o almacn en memoria (store) por instruccin, llevando a la arquitectura carga-almacena (RISC). Por otro ejemplo, algunas maneras de implementar la instruccin pipline llevaron a una ranura de retardo. La demanda de procesamiento de seal digital de alta velocidad ha empujado en el sentido contrario, forzando la implementacin de instruccin de manera particular. Por ejemplo, para realizar los filtros digitales es bastante insuficiente, la instruccin del MAC en un procesador tpico de seal digital (DSP) se debe implementar usando una arquitectura de Harvard que pueda traer una instruccin y dos palabras de datos simultneamente, y requiere un solo ciclo.

Potrebbero piacerti anche