Ensamblador X86   Parte 4 Ciclo de Fetch

Ensamblador X86 Parte 4 Ciclo de Fetch

Introducción al Ciclo de Ejecución en Procesadores

Conceptos Básicos del Ciclo de Reloj

  • Un procesador opera en ciclos de reloj, donde todos los registros involucrados necesitan este ciclo para determinar sus acciones en momentos específicos.

Fases del Ciclo de Ejecución

  • El ciclo de ejecución se divide en dos fases: búsqueda y ejecución. La fase de búsqueda se encarga de localizar la instrucción en la memoria.
  • La fase de ejecución incluye tres tareas: identificar el tipo de instrucción (suma, resta, etc.), ejecutar la instrucción y almacenar los resultados ya sea en memoria principal o registros.

Ejemplo Práctico con el Contador de Programa

  • Se introduce el registro PC (contador de programa), que almacena automáticamente la dirección de memoria a ejecutar. Por defecto, inicia en 0.
  • Al ejecutarse una instrucción desde la dirección 0, el PC incrementa para buscar la siguiente instrucción.

Tamaño y Ancho de Palabra

  • El tamaño del ancho de palabra afecta cómo se almacenan las instrucciones; por ejemplo, si es 64 bits, puede requerir múltiples filas para una sola instrucción.
  • En arquitecturas específicas, el PC debe aumentar proporcionalmente al tamaño requerido para acceder a las siguientes instrucciones.

Interacción con Memoria

  • Para leer una dirección específica, se utiliza un registro intermedio llamado MAR (Memory Address Register), que actúa como caché.
  • La unidad de control envía información a la memoria indicando si desea leer o escribir datos. Esto implica un tiempo necesario para que la memoria responda.

Proceso Finalizando Lectura

  • Una vez que se recibe el dato solicitado desde la memoria, este pasa por un registro conocido como MDR (Memory Data Register).

Registro de Instrucción y Fases de Ejecución

Proceso de Copia y Registro

  • Se menciona el registro de instrucción, también conocido como Gervais, que se envía para hacer una copia. Esto es crucial para evitar errores al solicitar datos a la memoria.
  • La importancia del registro intermedio se destaca, ya que las micro operaciones internas de la CPU dependen del tipo de operación a realizar.

Fase de Ejecución

  • En la fase de ejecución, se utiliza un registro especial llamado "registro de fase III", cuyo número varía según el fabricante.
  • La primera tarea en esta fase es codificar la instrucción; diferentes tipos requieren distintas micro operaciones.

Unidad de Control y Operaciones

  • Un bloque electrónico en la unidad de control lee el código de operación para determinar qué acción realizar. Por ejemplo, si la instrucción es una multiplicación.
  • La unidad de control identifica los registros involucrados en la operación (por ejemplo, multiplicar el registro X por 3).

Conexiones y Datos

  • Se utilizan multiplexores para dirigir los datos hacia los registros correctos durante las operaciones.
  • El dato 1 proviene del registro X y el dato 2 es el número 3; ambos son necesarios para completar la multiplicación.

Almacenamiento del Resultado

  • Los resultados pueden almacenarse en un registro o enviarse a la memoria principal. Sin embargo, algunas instrucciones implican almacenamiento implícito en registros específicos.
  • En este caso particular, el resultado se almacena directamente en el registro AX tras realizar la multiplicación.

Finalización del Ciclo

  • Una vez almacenado el resultado, se concluye el ciclo de ejecución y se incrementa el valor del contador programático (PC).
  • Es importante coordinar todos los registros mediante señales sincronizadas para asegurar un funcionamiento adecuado durante las lecturas y escrituras.

Consideraciones Técnicas

  • Todos los registros son flip-flops que requieren señales específicas para operar correctamente; esto implica una gestión cuidadosa por parte de la unidad de control.

¿Cómo funcionan los ciclos de reloj en una CPU?

Ciclos de Reloj y Ejecución

  • La CPU opera en ciclos de reloj, donde todos los registros involucrados necesitan este ciclo para ejecutar instrucciones correctamente. Sin el momento adecuado, no se pueden enviar o recibir datos.
  • Un ejemplo práctico es la multiplicación de un valor en un registro con uno en memoria. Este proceso requiere que la CPU acceda a la memoria para obtener el dato necesario.

Microinstrucciones y Procesos Complejos

  • Las microinstrucciones alteran el flujo normal al requerir acceso a la memoria, lo que implica una serie más compleja de procesos comparado con operaciones simples.
  • Los procesadores complejos requieren más electrónica para gestionar adecuadamente todos sus componentes, a diferencia de los procesadores RISC que simplifican estas operaciones.

Comparación entre Procesadores RISC y CISC

  • En arquitecturas RISC, las instrucciones son más directas: cargar datos desde una dirección específica a un registro es un proceso sencillo sin múltiples pasos intermedios.
Video description

La ejecución de las instrucciones en un procesador lleva un cierto orden, en este episodio hablaremos de este proceso conocido como ciclo de Fetch. Codigo fuente: https://github.com/codeneomatrix/ensamblador/tree/master/curso_ensamblador_2020 linktree: https://linktr.ee/neomatrix Podcast: https://anchor.fm/neomatrixcode Médium: https://medium.com/nabucodonosor-editorial Libro Ensamblador x86: https://nabucodonosor.app/book/ENSAMBLADOR_X86