5 votos

¿Cómo puede el número de ciclos de reloj necesarios para completar una instrucción en un procesador canalizado menos tiempo?

Yo no soy nuevo en la arquitectura de la pc, pero solo tengo la experiencia académica con la micro-arquitectura de la aplicación.

He escuchado y leído muchas veces, pero nunca realmente molesta a entender la declaración: Algunas instrucciones completas en 1 o 2 ciclos de reloj, mientras más complejo de instrucciones dicen entero o de punto flotante completa en 2, 4, 6 ciclos de reloj, etc o cargar/almacenar en 80-100 ciclos de reloj debido a la lentitud de la memoria.

Ahora estoy seguro de que la mayoría de los procesadores sea incrustado o de escritorio tienen pocas etapas de tuberías de 5 etapas hasta 30 etapas. Por lo que la latencia para cada instrucción debe ser igual a la canalización de la profundidad o número de canalización de las etapas. También, el rendimiento de una única canalización escalar procesador puede tener un máximo de 1 IPC (Instrucciones por ciclo). Pero ¿cómo es posible que las instrucciones de acabado en 1, 2 o 4 ciclos de reloj de un procesador con 10 o de la etapa 12 de la etapa de canalización ? Alguien puede explicar a mí que ?

PS: lo Único que puedo entender es que tal vez algunas etapas están marcadas como un Multi-etapa del Ciclo de como se hace habitualmente durante la STA y el momento de cierre. Y que ellos están tratando de decir que la ejecución de la instrucción se lleva a 1cc, 2cc, 4cc etc. en particular Multi-etapa del ciclo ?

3voto

Alex Andronov Puntos 178

En general, la ejecución de la instrucción se mide el tiempo de no a partir de cuando entra en la tubería para cuando sale, sino desde el momento en que pasa por un punto arbitrario en la tubería a la hora de la próxima instrucción pasa de ese punto. Si no hay ninguna instrucción tarda más que, por ejemplo, 20 ciclos para hacer su camino a través de la tubería, medir el tiempo de una secuencia de instrucciones para pasar a través de algunos arbitraria del estado producirá un resultado que dentro de 20 ciclos de el tiempo real requerido para ejecutar la secuencia completa de principio a fin. Ya que los programadores son generalmente mucho menos interesado en el momento de ejecutar una sola instrucción, que en el tiempo que se requiere para ejecutar secuencias que contiene muchas instrucciones (a menudo miles, si no es que más), generalmente sólo de atención acerca de la canalización en los casos donde puede agregar un no-constante costo para el tiempo total de ejecución (por ejemplo, si se repite la ejecución de una secuencia de instrucciones agregará una tubería de puesto de cada vez).

2voto

Karthik Bala Puntos 61

La longitud de la tubería es sólo el retardo entre la entrada y la salida.

Ciclos para la finalización es la cantidad de tiempo que se necesita por la operación.

Este no es el mismo, uno es "retrasar" el otro es la "velocidad". Por lo que es perfectamente posible tener la tubería y los múltiples ciclos por instrucción en cualquier proporción.

Supongamos que usted tiene un pipeline de 5 etapas y la necesidad de 3 ciclos por instrucción. Esto significa que los próximos dos ciclos después de aplicar una entrada de la unidad no está preparado para aceptar la entrada de nuevo. Además de eso, hay un retraso de 5 ciclos a causa de la tubería. Por lo tanto, lleva 8 ciclos de la aplicación de la entrada hasta que el resultado está disponible. Pero en cuanto a rendimiento sólo 3 ciclos por operación son necesarios. I. e. aunque el primer resultado no está completamente terminado, en el 3er ciclo nuevo de entrada puede ser aceptado y el cómputo se inicia (y los resultados se obtiene 8 ciclos más adelante).

Con una tubería que están haciendo las cosas en paralelo (en el costo de retraso), a los que de otra manera a la serie (más ciclos por operación).

2voto

Louise Puntos 16

Tener una instrucción que puede proceder a través de todas las etapas de pipeline (Buscar -> Descodificar -> ...) en uno o dos ciclos de reloj que parece imposible para mí. El "tiempo de ejecución", como usted ha citado es, probablemente, algún tipo de jerga.

La mejor supongo que se puede hacer sin ser capaz de ver todo el contexto de la declaración de que los rompecabezas, es que estos números representan el "estancamiento" de la tubería cuando la instrucción de algún tipo que se ejecuta. La otra manera de decirlo es que este número representa el rendimiento teórico de la tubería si sólo las instrucciones de este tipo podría ser ejecutado.

Por ejemplo:

  • Si las únicas instrucciones que se suministra a la tubería podría Moverse Entre los Registros, el rendimiento de la tubería sería igual a 1 - en cada ciclo de reloj la instrucción se completa.
  • Si la única instrucción que se suministra a la tubería de Carga De la Memoria, el rendimiento de la tubería sería igual a \$\frac{1}{100}\$ (suponiendo que esta instrucción puestos de la tubería de 100 ciclos de reloj).

En los modernos sistemas de canalización de Cpu no hay mucho uso a la materia prima "la ejecución de la instrucción del tiempo" a solas. El empleo de multi-nivel de almacenamiento en caché, fuera de la orden de ejecución, de predicción de ramificación y muchos más, complica el análisis y mitigar la pena de estancamiento de una sola tubería. A veces esta pena puede ser reducida a cero.

Sí, el origen de este estancamiento de la tubería es el hecho de que algunas instrucciones pueden tener "multi-ciclo" las etapas. Sin embargo, el uso de "multi-ciclo" en este contexto no es siempre la misma, como el uso de "multi-ciclo" en el contexto de STA herramientas. La canalización de multi-etapa del ciclo puede ser una combinatoria de la etapa que lleva pocos ciclos de reloj (en cuyo caso se debe también definirse como el multi-ciclo de STA herramientas), o puede ser un proceso secuencial de la etapa que requiere más de un solo ciclo de reloj para completar (en cuyo caso es preciso conocer el tiempo como una sola etapa del ciclo).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X