Non ha risposto nel post di @ Majenko: Sì, con un orologio a 8 MHz, ogni riga impiegherà il doppio del tempo. A meno che la linea non aspetti qualcosa che non è guidato dall'orologio, ad esempio un ingresso esterno.
Oltre alla risposta di @ Majenko, una CPU ha un orologio per garantire che le istruzioni siano complete, prima che inizi il passaggio successivo. Una CPU è composta da molti transistor (ho trovato un riferimento che indicava che l'AtMega era nell'intervallo di milioni bassi, dare o prendere un ordine di grandezza).
Durante un ciclo, l'elettricità scorre attraverso il chip, attivando / disattivando i transistor, i cui risultati accenderanno / spegneranno più transistor e così via lungo la linea. Mentre ciò sta accadendo, alcune parti del chip hanno un valore "sbagliato" - puoi pensare che questo sia a metà strada attraverso un calcolo (hai aggiunto la colonna di una e la colonna 10 e stai per iniziare sul Colonna 100s). Non vuoi che ciò influisca sul mondo esterno, quindi (per esempio) i tuoi pin di output sono bloccati - mantenuti a qualunque valore siano - fino a quando l'istruzione è completa. Il tempo necessario per completare un'istruzione varia, ma il produttore elabora l'istruzione più lenta nelle peggiori circostanze.
Per AtMega (che è il chip su Arduino), Atmel (che ha progettato il chip) ha dichiarato che questo è 1 / 20.000.000 di secondo - questo è 20MHz.
Si noti che non tutti i microprocessori eseguono tutte le loro istruzioni con 1 istruzione per ciclo - alcune istruzioni potrebbero richiedere 1, o 2 o 10 cicli. Il pipelining rende le cose ancora più complicate - un processore potrebbe svolgere un po 'del lavoro (ad esempio recuperare l'istruzione successiva) in un ciclo, eseguirlo nel successivo - ma mentre esegue l'istruzione 1, può anche recuperare l'istruzione successiva. Per fare questo, potrebbe essere necessario indovinare quale istruzione verrà dopo (nel caso dell'equivalente in codice macchina di un "goto" - tale è usato per i loop), e se indovina, deve far fronte quello; butta via le istruzioni recuperate e recupera quella successiva, perdendo un ciclo.
La pagina Wikipedia sul pipelining delle istruzioni mostra un esempio di pipelining di un chip RISC in 5 fasi: recupero delle istruzioni, decodifica delle istruzioni, esecuzione, accesso alla memoria e riscrittura. Quindi, puoi avere 5 istruzioni in una fase dell'esecuzione, sovrapposte. Fino alla fase di "riscrittura", le istruzioni non hanno alcun effetto reale. Puoi pensare a questo come a una catena di montaggio: ci vogliono 7 minuti per mettere insieme un widget, ma può essere suddiviso in 5 fasi, la fase più lunga impiega 2 minuti. Una volta ogni due minuti, ciascun widget parzialmente completato viene spostato dalla linea di assemblaggio alla stazione successiva. Ottieni un widget ogni due minuti - L'orologio può spuntare solo il passo più lento. Se si espelle il widget più velocemente, il "collo di bottiglia" farà accodare sempre più widget.