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.