Ir al contenido principal

Ciclo Fetch Decode Execute

El encargado de ejecutar un programa en una computadora u otro sistema computacional es el CPU, lo realiza siguiendo el llamado ciclo Fetch Decode Execute, con este ciclo se ejecutan todas las tareas que una computadora puede realizar.
Este ciclo tiene algunas variantes y conforme ha avanzado el tiempo y la tecnología ha sufrido algunos cambios, pero el ciclo básico se conforma de las siguientes etapas:
  • Traer la instrucción: Se obtiene la instrucción desde memoria y se almacena en el registro del CPU para instrucciones.
  • Decodificar la instrucción: Se identifica el modo de direccionamiento de la instrucción y la ubicación de los datos a tratar, ya sea de memoria, registro o instrucción directamente.
  • Carga de Parámetros: Se ejecuta la lectura, cargando todos los datos identificados en el paso anterior.
  • Ejecutar: Se ejecuta la instrucción ya configurada, realiza la tarea indicada, ya sea una suma, resta, almacenar información, extraer información etc.
  • Almacenar: Se almacena el resultado obtenido de ejecutar la instrucción, por ejemplo, el resultado de una suma o un índice (Número) como resultado de éxito de almacenar u obtener información de un archivo, entre otros.
  • Actualizar PC: Esta etapa es la de actualizar el registro PC (Program Counter) que contiene la siguiente dirección a ejecutar.

Evidentemente al ser un ciclo estas etapas se repiten constantemente durante el funcionamiento de la computadora.
Se debe considerar que el ciclo expuesto anteriormente es muy básico. Como se mencionaba hoy en día estos ciclos han tenido algunas alteraciones y optimizado de gran manera, como se sabe los sistemas de hoy en día son multitareas, lo cual conlleva a una alteración en este ciclo, además de las diferentes técnicas para reducir el tiempo de ejecución de instrucciones con temas de concurrencia y paralelismo en los procesadores modernos.

El ciclo expuesto nos muestra un poco la forma en la que las computadoras funcionan, todo el proceso que conlleva ejecutar una instrucción que puede parecer muy simple, además este ciclo básico permite darse una idea de cómo ha evolucionado los procesadores y las técnicas para reducir el tiempo de ejecución dado que los sistemas actuales ejecutan de forma simultánea muchas veces este ciclo, siendo este modificado y más eficiente.

Referencias:
Scribd. (2017). Ciclo Fetch. [online] Disponible en: https://es.scribd.com/doc/30420235/Ciclo-Fetch#fullscreen&from_embed [Consultado 21 Oct. 2017].

Comentarios

Entradas populares de este blog

Importancia de los Sistemas Numéricos en la Computación

Un sistema de numeración se define como un conjunto de símbolos y reglas que permiten representar datos numéricos. Además, los sistemas numéricos modernos se caracterizan por ser posicionales, ya que un símbolo tiene un peso según en la posición que se encuentre en la cifra numérica. Existen distintos sistemas numéricos modernos, los más comunes son: ·          Sistema Decimal : 0-1-2-3-4-5-6-7-8-9, (Diez símbolos) ·          Sistema Binario : 0-1, (Dos símbolos) ·          Sistema Octal : 0-1-2-3-4-5-6-7, (Ocho símbolos) ·          Sistema Hexadecimal : 0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F, (Dieciséis Símbolos) Todos los sistemas mencionados anteriormente tienen reglas y relaciones que permiten la realización de las operaciones básica que conocemos como la suma, resta, multiplicación, división. L...

Estructuras de Control en Ensamblador

En los lenguajes de alto nivel disponemos de estructuras de control como “if” o “else” que nos permiten dar sentido a nuestro código , pero estas estructuras no están presentes en un lenguaje de bajo nivel como el ensamblador o no de la misma forma, como se detalla a continuación. Estructuras Condicionales: Estos tipos son los if, if-else, elif, switch, los más comunes en los lenguajes de alto nivel y los más utilizados. Estas estructuras no están del todo ausentes en lenguaje ensamblador, ya que al fin y al cabo estas instrucciones se convierten a ensamblador, en ensamblador se cuenta con instrucciones como CMP o TEST(Para comparar o evaluar) en el caso de ARM y sus equivalentes en las demás arquitecturas de procesadores. Para poder crear los condicionales se debe utilizar una combinación de estas (CMP, TEST, ...) junto con las instrucciones de Branch, Jump, etc según corresponda. Ejemplos If Else: If Else en Lenguaje C If Else en Lenguaje Ensamblador Estructuras...