Assembly/Organizzazione di sistema/Il tempo del Sistema
Anche se i computer moderni sono velocissimi, e continuano a diventare sempre più veloci, richiederanno sempre un definito valore di tempo, per portare a termine anche l'operazione più piccola. Sulle macchine di Von Neumann, come l'80x86, le operazioni sono serializzate. Questo significa che i computer eseguono comandi in un ordine stabilito. Per esempio:
I = J; I = I * 5 + 2;
In questo caso, l'operazione I = J verrà eseguita prima di I = I * 5 + 2.
Ovviamente abbiamo bisogno di un modo per stabilire quale operazione deve essere eseguita prima di una seconda.
Ovviamente in tutti i computer, le operazioni non vengono eseguite istantaneamente. Spostare il valore di J in I richiederà una certa quantità di tempo (milionesimi di secondo :-). Anche moltiplicare I per 5, addizionargli 2 e memorizzare il risultato in I richiederà tempo. Come potrai aspettarti, la seconda istruzione prenderà un po' di tempo in più (sempre milionesimi di secondo) rispetto alla prima. Se vogliamo scrivere programmi veloci (velocissimi), le domande che ci dobbiamo fare sono: "Come il processore esegue le operazioni? E come possiamo calcolare quanto tempo impiega ad eseguirle?".
La CPU è un circuito molto complesso. Senza andare troppo nei dettagli, diciamo solo che le operazioni nella CPU sono coordinate molto attentamente, o la CPU potrebbe restituire risultati sbagliati. Per assicurarsi che tutte le operazioni si svolgano al momento giusto, le CPU 80x86 utilizzano un segnale che si alterna (tra 1 e 0) chiamato system clock (clock di sistema).
![]() |
![]() |
![]() |