¿Cómo se relacionan exactamente las velocidades de reloj de las computadoras con las velocidades de operación?

0

Me preguntaba sobre esto el otro día cuando le estaba explicando binario y hexadecimal a un amigo mío y esto ocurrió. La pregunta es algo como esto:

¿Cómo se relacionan exactamente las velocidades de ejecución de instrucciones con las velocidades de reloj en las computadoras modernas?

Por ejemplo, digamos que un procesador de computadora utiliza una señal de reloj de 1 MHz. El procesador ejecutará operaciones en el borde de ese reloj (en el borde negativo si no me equivoco), pero esto no significa que se ejecutará una instrucción completa para cada ciclo de reloj.

Para tener un ejemplo más específico, si un procesador Intel x86 tiene un comando MOV BX, 45 , asumo que se necesitarán varios ciclos de reloj para completar esto, ya que el número 45 tiene que ser generado, y el registro BX tiene que ser localizado y así sucesivamente. Tal vez este podría ser un ciclo de reloj único, ya que es un valor inmediato que se transfiere a un registro, pero espero que esto explique mi pregunta. Quizás un comando JNE sería un mejor ejemplo.

Además de esto, hay un ciclo de recuperación-decodificación-ejecución que reduciría la proporción de instrucciones por reloj a menos de 1: 1, ¿es correcto? Por favor, perdóname si no entiendo bien cómo funciona esto. Estoy muy interesado en él y sé que muchos de ustedes saben bastante al respecto. Por favor, siéntase libre de arrojar algo de luz sobre mi ignorancia: D

Muchas gracias

Chris

    
pregunta user108391

1 respuesta

1
  

Supongo que se necesitarán varios ciclos de reloj para completar esto

Es bastante complicado, pero vea: enlace

Básicamente, hay tres factores a considerar para una explicación simple:

  • Ciclos por instrucción. Esto se especificará en el manual para el procesador por instrucción. Puede ser tan bajo como 1.
  • Instrucciones por ciclo. Gracias al diseño y las tuberías "superscalar", puede tener varias instrucciones en el procesamiento al mismo tiempo y potencialmente "emitir" más de una.
  • Operaciones por instrucción. Gracias a los conjuntos de instrucciones SIMD, una instrucción puede operar con muchos valores en un solo ciclo.

Las tuberías complican los tiempos de las instrucciones de "ramificación" como JNE. Puede encontrar que se necesita un ciclo para no bifurcarse y cien ciclos para tomar la bifurcación, a menos que el predictor de bifurcación haya acertado, en cuyo caso esos costos son al revés.

Los errores de caché también tardan bastante tiempo.

    
respondido por el pjc50

Lea otras preguntas en las etiquetas