Concepto de ciclo y de los pulsos de un procesador
-
No se si es correcto el concepto de ciclo y de los pulsos de un procesador. El procesador tiene un reloj, que es el que marca el ritmo de trabajo de un procesador. Este reloj emite pulsos que marca cuando un procesador tiene que empezar a ejecutar una instruccion y cuando tiene que finalizar esa instruccion. El ciclo seria el tiempo que va entre pulso y pulso, y en cada ciclo se ejecutaria una instruccion simple.
Alla van mi dudas:
1.Este reloj este constantemente emitiendo pulsos aunque el procesador no tenga que realizar instruccion alguna?
2.Porque se le llama ciclo al tiempo que va entre pulso y pulso?
3. El pulso que determina cuando finaliza la ejecucion de una instruccion llamamemosla 1, determina a la vez la ejecucion de la siguiente instruccion?, es decir, si un procesador supongamos que tiene una velocidad de 300 mhz y por lo tanto realiza 300 millones de ciclos por segundo, el reloj de este procesador emitiria 300 millones de pulsos o 600 millones de pulsos? No se si me explico bien.Gracias
-
1.- Si
2.- Porque no son exactamente pulsos lo que se emiten, sino ondas cuadradas. Se llama ciclo al proceso completo de la onda en la cual sube y baja. El flanco (la subida o la bajada de la onda) que se tome para marcar los ciclos lo elije el diseñador del circuito.
3.- No es exactamente así. El reloj se utiliza para coordinar procesos, para saber cuándo hay que leer los datos. Las instrucciones van circulando por lo que se llama la línea de ejecución, y cada paso intermedio de esa línea interna debe realizarse en uno de estos ciclos. En el momento que indica la señal de reloj, los datos pasan de un paso intermedio al siguiente. Los procesadores modernos pueden tener muchísimos pasos en esa línea de ejecución, como el caso del prescott que creo que tiene 32 pasos. Esto no indica que se ejecute una sola instrucción cada 32 ciclos, sino que una instrucción aislada tarda 32 ciclos entre que se empieza a ejecutar y se termina de ejecutar. Lo que pasa es que cuando una instrucción ha pasado por el primer paso intermedio, deja libre ese lugar y pasa al segundo paso intermedio, y es una segunda instrucción la que se empieza a ejecutar. Por ello, las instrucciones se van ejecutando, en el caso ideal, cada ciclo.Un ejemplo con una línea de ejecución de 5 pasos:
…...................Paso A............Paso B............Paso C............Paso D............Paso E........Instrucción ejecutada
Primer ciclo:........Instrucción 1
Segundo ciclo:.....Instrucción 2....Instrucción 1
Tercer ciclo:........Instrucción 3....Instrucción 2....Instrucción 1
Cuarto ciclo:.......Instrucción 4....Instrucción 3....Instrucción 2....Instrucción 1
Quinto ciclo:.......Instrucción 5....Instrucción 4....Instrucción 3....Instrucción 2....Instrucción 1
Sexto ciclo:........Instrucción 6....Instrucción 5....Instrucción 4....Instrucción 3....Instrucción 2....Instrucción 1 ejecutada
Séptimo ciclo:......Instrucción 7....Instrucción 6....Instrucción 5....Instrucción 4....Instrucción 3....Instrucción 2 ejecutadaComo ves, al final si se ejecuta una instrucción cada ciclo, pero no se ejecutan en un ciclo de reloj. El problema de este diseño es que si necesitamos para ejecutar la instrucción 4 el resultado de la 1, tenemos el procesador parado una serie de ciclos considerable.
No se si he respondido a tus dudas, si has entendido lo que te he querido explicar...