Así es como tu CPU ejecuta las instrucciones que le da el software

Así es como tu CPU ejecuta las instrucciones que le da el software

Redacción

Una CPU lo que hace es ejecutar las instrucciones de un programa situado en una memoria. Pero, ¿sabíais que todos siguen las mismas normas generales? Todos siguen el mismo ciclo de instrucción, el cual se divide en tres etapas diferenciadas llamadas Fetch, Decode y Execute, las cuales se traducen como captación, descodificación y ejecución. Os explicamos cómo funcionan estas etapas y cómo se organizan.

Con tal de simplificar y hacer más entendible los conceptos explicados en este artículo hemos decidido describir un procesador sumamente simple para los tiempos que corren, por lo que en este artículo veréis una explicación de lo que son los ciclos de instrucción de manera generalizada que se puede aplicar desde los primeros procesadores de 8 bits a los más complejos que hay hoy en día.

Obviamente, los actuales procesadores, los más avanzados, cuentan con tecnologías mucho más complejas y avanzadas que imprimen más potencia que los modelos de hace algunas décadas pero que, en el fondo, su manera de trabajar está inspirada en lo que os contaremos a continuación.

 

Así funciona el ciclo de instrucción del procesador

Ciclo Instrucción Unidad Control

Los procesadores no son diferentes desde cierto punto de vista a un motor de combustión, los cuales siempre realizan un proceso continuo de explosión del combustible en diferentes etapas, ya sean de 2 tiempos o de 4 tiempos. El motivo de ello es que los procesadores funcionan en tres etapas distintas en su versión más simple que son las siguientes y que, de manera general, podemos entender que son invariables de cualquier modelo que se vende en el mercado.

  • Fetch o Captación: En la que la instrucción es captada desde la memoria RAM y copiada a dentro del procesador.
  • Decode o Descodificacion: En la que la instrucción previamente captada es descodificada y enviada a las unidades de ejecución.
  • Execute o Ejecución: Donde la instrucción es resuelta y el resultado escrito en los registros internos del procesador o en una dirección de memoria de la RAM.

Estas tres etapa se cumplen en todo procesador, existe una cuarta etapa que es la de Write-Back que es cuando las unidades de ejecución escriben el resultado, peor normalmente esto se cuenta dentro de la etapa de ejecución del ciclo de instrucción.

 

Primera etapa del ciclo de instrucción: Fetch

Fetch Process

La primera etapa del ciclo de instrucción se encarga de captar las instrucciones que hay en la memoria RAM asignada al procesador a través de una serie de unidades y registros que son las siguientes. Es en esa memoria donde se encuentra la información que la CPU debe procesar por lo que ese primera paso tiene que ver con recolectarla, con leerla para comenzar las operaciones.

  1. Program Counter o Contador de Programa: El cual apunta a la siguiente línea de memoria donde se encuentra la siguiente instrucción del procesador. Se incrementa en 1 su valor cada vez que se termina un ciclo completo de instrucción o cuando una instrucción de salto cambia el valor del contador de programa.
  2. Memory Address Register o registro de direccionamiento de memoria: El MAR copia el contenido del PC y lo envía a la RAM a través de los pines de direccionamiento de la CPU, los cuales están cableados con los pines de direccionamiento de la propia memoria RAM.
  3. Memory Data Register o registro de datos a memoria : En el caso que la CPU tenga que realizar una lectura a memoria, lo que hace el MDR es copiar el contenido de esa dirección de memoria a un registro interno de la CPU, el cual es un registro temporal de paso antes de que su contenido sea copiado al Instruction Register. El MDR al contrario del MAR esta conectado a los pines de datos de la RAM y no a los de direccionamiento y en el caso de que se trate de una instrucción de escritura el contenido de lo que se quiere escribir en la RAM también se escribe en el MDR
  4. Instruction Register o Registro de Instrucción: La parte final de la etapa de captación o fetch es la escritura de la instrucción en el registro de instrucción, del cual la unidad de control del procesador copiará su contenido para la segunda etapa del ciclo de instrucción.

Estas 4 sub-etapas ocurren en todos los procesadores sea cual sea su utilidad, arquitectura y compatibilidad binaria o lo que llamamos ISA. Por lo que es aplicable a prácticamente cualquier modelo que os podáis encontrar en el mercado. Eso sí, en muchos casos variarán las tecnologías utilizadas u otros componentes que entran a formar parte de este proceso para agilizar trabajos mucho más específicos.

 

La unidad de control

Control Unit

La unidad de control es la pieza más compleja que existe en un procesador y sus tareas son las siguientes que os detallamos aquí debajo. Como en todos los casos, se trata de un conjunto de mínimos, que son esenciales:

  • Se encarga de coordinar el movimiento y el orden en que de los datos que se mueven dentro y fuera del procesador, así de las diferentes subunidades que se encargan de ello.
  • En general se considera que las unidades de la etapa de captación o Fetch forman parte del hardware que llamamos unidad de control y dicho hardware es llamado también el Front-End de un procesador.
  • Interpreta las instrucciones y las envía a las diferentes unidades de ejecución a las que está conectado.
  • Está comunicado a las las diferentes ALUs y unidades de ejecución del procesador que actúan
  • Se encarga de captar y descodificar las instrucciones, sino también de escribir los resultados en los registros, caches o en la dirección correspondiente de la RAM.

Opcode-Mode-Adress

La unidad de control lo que hace es descodificar las instrucciones y esto lo hace porque cada instrucción en realidad no deja de ser una especie de oración en donde primero va el verbo y luego el objeto directo u objeto sobre el que se hace la acción. El sujeto se acaba eliminando en este lenguaje interno de los ordenadores por el hecho que se sobrentiende que es el propio ordenador el que lo ejecuta, así pues cada cantidad de bits es una oración donde los primeros 1 y 0 corresponden a la acción y los que vienen a continuación es el dato o la localización del dato que se quiere manipular.

 

La segunda etapa: Decode

Decodificación Instrucciones

Hay diferentes tipos de instrucciones y no todas hacen lo mismo, por lo que dependiendo del tipo de instrucción necesitamos saber hacía que unidades de ejecución se van a enviar y la manera más clásica de hacerlo es a través de lo que llamamos un descodificador, el cual toma cada instrucción, la divide internamente según el opcode o instrucción y el dato o la dirección de memoria donde se encuentra este.

Por ejemplo en el diagrama de arriba tenemos el diagrama de un procesador de solo 8 instrucciones, las cuales se pueden codificar en solo 3 bits. Cada una de las instrucciones una vez descodificadas se envían a las diferentes unidades de ejecución que las resolverán.

Este ciclo de instrucción es el más complejo de todo y el que define el tipo de arquitectura. Dependiendo si tenemos un conjunto de instrucciones reducido o complejo esto afectará a la naturaleza de la unidad de control, dependiendo del formato de la instrucción o de cuantas se procesen al mismo tiempo la fase de descodificación y por tanto la unidad de control tendrá una naturaleza u otra.

La forma más fácil de visualizar lo que ocurre es pensar en las instrucciones como trenes circulando a través de una compleja red ferroviaria y la unidad de control dirigiéndolos a una estación termino, la cual es la unidad de ejecución que se encargará de resolver la instrucción.

 

Tercera etapa: Execute

1 bit ALU

La última etapa es la de la ejecución de las instrucciones, en esta étapa las instrucciones son resueltas, pero no todos los tipos de instrucción se resuelven de la misma forma, ya que la forma de utilizar el hardware dependerá de la función de cada una de ellas, en general tenemos cuatro tipos de instrucciones:

  • Instrucciones de movimiento de bits: En el cual se manipula el orden de los bits que contienen el dato.
  • Instrucciones aritméticas: Donde se realizan operaciones matemáticas y también lógicas, estas se solucionan en las llamadas ALU o unidades aritmético-logicas
  • Instrucciones de salto: En la que se cambia la siguiente el valor del contador de programa, lo que permite utilizar el código de manera recursiva.
  • Instrucciones a memoria: Son con las que el procesador lee y escribe la información de la memoria del sistema.

El otro punto son los formatos de la instrucción, ya que una instrucción se puede aplicar a un dato, escalar o a varios datos al mismo tiempo, lo que conocemos como SIMD. Para terminar y dependiendo del formato de los datos, hay diferentes tipos de ALU para la ejecución de las instrucciones aritméticas, por ejemplo tenemos unidades de enteros y en coma flotante como unidades diferenciadas a día de hoy.

Una vez la instrucción ha sido terminada se escribe el resultado sobre una dirección de memoria en concreto y se pasa a ejecutar la siguiente, algunas instrucciones no manipulan los valores de memoria sino ciertos registros. Así pues el registro del contador de programa es modificado por las instrucciones de salto, si queremos leer o escribir un dato entonces se manipulan los registros MAR y MDR.

 

¿Todos los procesadores funcionan de la misma manera?

La respuesta corta a esta pregunta es que sí, pero cuando hablamos de procesadores de PC. Existen otros tipos de procesadores, como los RISC-V y ARM que utilizan sus propios métodos para ejecutar las instrucciones que les llegan de los programas, pero en líneas generales, cuando hablamos de procesadores de PC –AMD o Intel–, funcionan de la manera que os hemos contado aquí, siempre.

Con ligeras excepciones pero como norma general, todo lo que tenéis en este artículo os servirá para comprender mejor cuál es el flujo de la información y cómo se procesa la información y los datos cada vez que hacéis uso de un componente que es el cerebro de todo el sistema. Ahora pensad a la velocidad que lo hace todo y cómo de increíble es que hayamos alcanzo los niveles de computación en los que nos movemos ahora mismo y que eran impensables hace apenas 20 años.

¡Sé el primero en comentar!
Logo hardzone.es
Navega gratis con publicidad…

Navegar por testdevelocidad.es con publicidad personalizada, seguimiento y cookies de forma gratuita. i

Para ello, nosotros y nuestros socios i necesitamos tu consentimiento i para el tratamiento de datos personales i para los siguientes fines:

Las cookies, los identificadores de dispositivos o los identificadores online de similares características (p. ej., los identificadores basados en inicio de sesión, los identificadores asignados aleatoriamente, los identificadores basados en la red), junto con otra información (p. ej., la información y el tipo del navegador, el idioma, el tamaño de la pantalla, las tecnologías compatibles, etc.), pueden almacenarse o leerse en tu dispositivo a fin de reconocerlo siempre que se conecte a una aplicación o a una página web para una o varias de los finalidades que se recogen en el presente texto.

La mayoría de las finalidades que se explican en este texto dependen del almacenamiento o del acceso a la información de tu dispositivo cuando utilizas una aplicación o visitas una página web. Por ejemplo, es posible que un proveedor o un editor/medio de comunicación necesiten almacenar una cookie en tu dispositivo la primera vez que visite una página web a fin de poder reconocer tu dispositivo las próximas veces que vuelva a visitarla (accediendo a esta cookie cada vez que lo haga).

La publicidad y el contenido pueden personalizarse basándose en tu perfil. Tu actividad en este servicio puede utilizarse para crear o mejorar un perfil sobre tu persona para recibir publicidad o contenido personalizados. El rendimiento de la publicidad y del contenido puede medirse. Los informes pueden generarse en función de tu actividad y la de otros usuarios. Tu actividad en este servicio puede ayudar a desarrollar y mejorar productos y servicios.

La publicidad que se presenta en este servicio puede basarse en datos limitados, tales como la página web o la aplicación que esté utilizando, tu ubicación no precisa, el tipo de dispositivo o el contenido con el que está interactuando (o con el que ha interactuado) (por ejemplo, para limitar el número de veces que se presenta un anuncio concreto).

  • Un fabricante de automóviles quiere promocionar sus vehículos eléctricos a los usuarios respetuosos con el medioambiente que viven en la ciudad fuera del horario laboral. La publicidad se presenta en una página con contenido relacionado (como un artículo sobre medidas contra el cambio climático) después de las 18:30 h a los usuarios cuya ubicación no precisa sugiera que se encuentran en una zona urbana.
  • Un importante fabricante de acuarelas quiere realizar una campaña publicitaria en Internet para dar a conocer su última gama de acuarelas con la finalidad de llegar tanto a artistas aficionados como a profesionales y, a su vez, se evite mostrar el anuncio junto a otro contenido no relacionado (por ejemplo, artículos sobre cómo pintar una casa). Se detectará y limitará el número de veces que se ha presentado el anuncio a fin de no mostrarlo demasiadas veces.

La información sobre tu actividad en este servicio (por ejemplo, los formularios que rellenes, el contenido que estás consumiendo) puede almacenarse y combinarse con otra información que se tenga sobre tu persona o sobre usuarios similares(por ejemplo, información sobre tu actividad previa en este servicio y en otras páginas web o aplicaciones). Posteriormente, esto se utilizará para crear o mejorar un perfil sobre tu persona (que podría incluir posibles intereses y aspectos personales). Tu perfil puede utilizarse (también en un momento posterior) para mostrarte publicidad que pueda parecerte más relevante en función de tus posibles intereses, ya sea por parte nuestra o de terceros.

  • En una plataforma de redes sociales has leído varios artículos sobre cómo construir una casa en un árbol Esta información podría añadirse a un perfil determinado para indicar tuinterés en el contenido relacionado con la naturaleza, así como en los tutoriales de bricolaje (con el objetivo de permitir la personalización del contenido, de modo que en el futuro, por ejemplo, se te muestren más publicaciones de blogs y artículos sobre casas en árboles y cabañas de madera).
  • Has visualizado tres vídeos sobre la exploración espacial en diferentes aplicaciones de televisión. Una plataforma de noticias sin relación con las anteriores y con la que no has tenido contacto en el pasado crea un perfil basado en esa conducta de visualización marcando la exploración del espacio como un tema de tu posible interés para para otros vídeos.

El contenido que se te presenta en este servicio puede basarse en un perfilde personalización de contenido que se haya realizado previamente sobre tu persona, lo que puede reflejar tu actividad en este u otros servicios (por ejemplo, los formularios con los que interactúas o el contenido que visualizas), tus posibles intereses y aspectos personales. Un ejemplo de lo anterior sería la adaptación del orden en el que se te presenta el contenido, para que así te resulte más sencillo encontrar el contenido (no publicitario) que coincida con tus intereses.

  • Has leído unos artículos sobre comida vegetariana en una plataforma de redes sociales. Posteriormente has usado una aplicación de cocina de una empresa sin relación con la anterior plataforma. El perfil que se ha creado sobre tu persona en la plataforma de redes sociales se utilizará para mostrarte recetas vegetarianas en la pantalla de bienvenida de la aplicación de cocina.
  • Has visualizado tres vídeos sobre remo en páginas web diferentes. Una plataforma de video, no relacionada con la página web en la que has visualizado los vídeos sobre remo, pero basandose en el perfil creado cuando visistaste dicha web, podrá recomendarte otros 5 vídeos sobre remo cuando utilices la plataforma de video a través de tu televisor .

La información sobre qué publicidad se te presenta y sobre la forma en que interactúas con ella puede utilizarse para determinar lo bien que ha funcionado un anuncio en tu caso o en el de otros usuarios y si se han alcanzado los objetivos publicitarios. Por ejemplo, si has visualizado un anuncio, si has hecho clic sobre el mismo, si eso te ha llevado posteriormente a comprar un producto o a visitar una página web, etc. Esto resulta muy útil para comprender la relevancia de las campañas publicitarias./p>

  • Has hecho clic en un anuncio en una página web/medio de comunicación sobre descuentos realizados por una tienda online con motivo del “Black Friday” online y posteriormente has comprado un producto. Ese clic que has hecho estará vinculado a esa compra. Tu interacción y la de otros usuarios se medirán para saber el número de clics en el anuncio que han terminado en compra.
  • Usted es una de las pocas personas que ha hecho clic en un anuncio que promociona un descuento por el “Día de la madre”de una tienda de regalos en Internet dentro de la aplicación de una web/medio de comunicación. El medio de comunicación quiere contar con informes para comprender con qué frecuencia usted y otros usuarios han visualizado o han hecho clic en un anuncio determinado dentro de la aplicación y, en particular, en el anuncio del “Día de la madre” para así ayudar al medio de comunicación y a sus socios (por ejemplo, las agencias de publicidad) a optimizar la ubicación de los anuncios.

La información sobre qué contenido se te presenta y sobre la forma en que interactúas con él puede utilizarse para determinar, por ejemplo, si el contenido (no publicitario) ha llegado a su público previsto y ha coincidido con sus intereses. Por ejemplo, si hasleído un artículo, si has visualizado un vídeo, si has escuchado un “pódcast” o si has consultado la descripción de un producto, cuánto tiempo has pasado en esos servicios y en las páginas web que has visitado, etc. Esto resulta muy útil para comprender la relevancia del contenido (no publicitario) que se te muestra.

  • Has leído una publicación en un blog sobre senderismo desde la aplicación móvil de un editor/medio de comunicación y has seguido un enlace a una publicación recomendada y relacionada con esa publicación. Tus interacciones se registrarán para indicar que la publicación inicial sobre senderismo te ha resultado útil y que la misma ha tenido éxito a la hora de ganarse tu interés en la publicación relacionada. Esto se medirá para saber si deben publicarse más contenidos sobre senderismo en el futuro y para saber dónde emplazarlos en la pantalla de inicio de la aplicación móvil.
  • Se te ha presentado un vídeo sobre tendencias de moda, pero tu y otros usuarios habéis dejado de visualizarlo transcurridos unos 30 segundos. Esta información se utilizará para valorar la duración óptima de los futuros vídeos sobre tendencias de moda.

Se pueden generar informes basados en la combinación de conjuntos de datos (como perfiles de usuario, estadísticas, estudios de mercado, datos analíticos) respecto a tus interacciones y las de otros usuarios con el contenido publicitario (o no publicitario) para identificar las características comunes (por ejemplo, para determinar qué público objetivo es más receptivo a una campaña publicitaria o a ciertos contenidos).

  • El propietario de una librería que opera en Internet quiere contar con informes comerciales que muestren la proporción de visitantes que han visitado su página y se han ido sin comprar nada o que han consultado y comprado la última autobiografía publicada, así como la edad media y la distribución de género para cada uno de los dos grupos de visitantes. Posteriormente, los datos relacionados con la navegación que realizas en su página y sobre tus características personales se utilizan y combinan con otros datos para crear estas estadísticas.
  • Un anunciante quiere tener una mayor comprensión del tipo de público que interactúa con sus anuncios. Por ello, acude a un instituto de investigación con el fin de comparar las características de los usuarios que han interactuado con el anuncio con los atributos típicos de usuarios de plataformas similares en diferentes dispositivos. Esta comparación revela al anunciante que su público publicitario está accediendo principalmente a los anuncios a través de dispositivos móviles y que es probable que su rango de edad se encuentre entre los 45 y los 60 años.

La información sobre tu actividad en este servicio, como tu interacción con los anuncios o con el contenido, puede resultar muy útil para mejorar productos y servicios, así como para crear otros nuevos en base a las interacciones de los usuarios, el tipo de audiencia, etc. Esta finalidad específica no incluye el desarrollo ni la mejora de los perfiles de usuario y de identificadores.

  • Una plataforma tecnológica que opera con un proveedor de redes sociales observa un crecimiento en los usuarios de aplicaciones móviles y se da cuenta de que, en funciónde sus perfiles, muchos de ellos se conectan a través de conexiones móviles. La plataforma utiliza una tecnología nueva para mostrar anuncios con un formato óptimo para los dispositivos móviles y con un ancho de banda bajo a fin de mejorar su rendimiento.
  • Un anunciante está buscando una forma de mostrar anuncios en un nuevo tipo de dispositivo. El anunciante recopila información sobre la forma en que los usuarios interactúan con este nuevo tipo de dispositivo con el fin de determinar si puede crear un nuevo mecanismo para mostrar la publicidad en ese tipo de dispositivo.

El contenido que se presenta en este servicio puede basarse en datos limitados, como por ejemplo la página web o la aplicación que esté utilizando, tu ubicación no precisa, el tipo de dispositivo o el contenido con el que estás interactuando (o con el que has interactuado) (por ejemplo, para limitar el número de veces que se te presenta un vídeo o un artículo en concreto).

  • Una revista de viajes, para mejorar las experiencias de viaje en el extranjero, ha publicado en su página web un artículo sobre nuevos cursos que ofrece una escuela de idiomas por Internet. Las publicaciones del blog de la escuela se insertan directamente en la parte inferior de la página y se seleccionan en función de la ubicación no precisa del usuario (por ejemplo, publicaciones del blog que explican el plan de estudios del curso para idiomas diferentes al del país en el que este te encuentras).
  • Una aplicación móvil de noticias deportivas ha iniciado una nueva sección de artículos sobre los últimos partidos de fútbol. Cada artículo incluye vídeos alojados por una plataforma de streaming independiente que muestra los aspectos destacados de cada partido. Si adelantas un vídeo, esta información puede utilizarse para determinar que el siguiente vídeo a reproducir sea de menor duración.

Se puede utilizar la localización geográfica precisa y la información sobre las características del dispositivo

Al contar con tu aprobación, tu ubicación exacta (dentro de un radio inferior a 500 metros) podrá utilizarse para apoyar las finalidades que se explican en este documento.

Con tu aceptación, se pueden solicitar y utilizar ciertas características específicas de tu dispositivo para distinguirlo de otros (por ejemplo, las fuentes o complementos instalados y la resolución de su pantalla) en apoyo de las finalidades que se explican en este documento.

O sin publicidad desde 1,67€ al mes

Por solo 1,67€ al mes, disfruta de una navegación sin interrupciones por toda la red del Grupo ADSLZone: adslzone.net, movilzona.es, testdevelocidad.es, lamanzanamordida.net, hardzone.es, softzone.es, redeszone.net, topesdegama.com y más. Al unirte a nuestra comunidad, no solo estarás apoyando nuestro trabajo, sino que también te beneficiarás de una experiencia online sin publicidad ni cookies de seguimiento.