I processori moderni sono sincronizzati: ogni operazione richiede un numero integrale di cicli di clock. I progettisti del processore determinano la durata di un ciclo di clock. Vi sono due considerazioni: una, la velocità dell'hardware, ad esempio misurata come ritardo di una singola porta NAND. Ciò dipende dalla tecnologia utilizzata e da compromessi come la velocità rispetto all'utilizzo di energia. È indipendente dal design del processore. Due, i progettisti decidono che la lunghezza di un ciclo di clock equivale a n ritardi di una singola porta NAND, dove n potrebbe essere 10, o 30 o qualsiasi altro valore.
Questa scelta n limita la complessità delle operazioni che possono essere elaborate in un ciclo. Ci saranno operazioni che possono essere eseguite in 16 ma non in 15 ritardi NAND. Quindi scegliere n = 16 significa che un'operazione del genere può essere eseguita in un ciclo, scegliendo n = 15 significa che non può essere eseguita.
I progettisti sceglieranno n in modo che molte operazioni importanti possano essere quasi eseguite in uno o forse due o tre cicli. n verrà scelto localmente ottimale: se si sostituisse n con n-1, la maggior parte delle operazioni sarebbe un po 'più veloce, ma alcune (quelle che necessitano davvero dei ritardi NAND completi) sarebbero più lente. Se poche operazioni rallentassero, in modo che l'esecuzione complessiva del programma sia mediamente più veloce, allora avresti scelto n-1. Potresti anche aver scelto n + 1. Ciò rende la maggior parte delle operazioni un po 'più lente, ma se si hanno molte operazioni che non possono essere eseguite entro n ritardi ma che possono essere eseguite entro n + 1 ritardi, il processore sarebbe più veloce.
Ora la tua domanda: aggiungere e sottrarre sono operazioni così comuni che vuoi essere in grado di eseguirle in un singolo ciclo. Di conseguenza, non importa che AND, OR ecc. Possano essere eseguiti più velocemente: hanno ancora bisogno di quel ciclo. Ovviamente l'unità "calcolatrice" AND, OR etc ha molto tempo per modificare i pollici, ma non è possibile evitarlo.
Nota che non è solo se un'operazione può essere eseguita entro n ritardi o NAND: un'aggiunta, ad esempio, può essere resa più veloce essendo un po 'intelligente, ancora più veloce essendo molto intelligente, ancora un po' più veloce investendo quantità straordinarie di hardware e alla fine un processore può avere una miscela di circuiti molto veloci molto costosi e un po 'più lenti ed economici, quindi c'è la possibilità di fare un'operazione abbastanza velocemente spendendo più soldi su di essa.
Ora si potrebbe fare la velocità di clock così in alto / il ciclo così breve che solo le operazioni po 'semplice esecuzione in un ciclo e tutto il resto in due o più. Molto probabilmente questo rallenterebbe il processore. Per le operazioni che richiedono due cicli, di solito c'è un sovraccarico per spostare un'istruzione incompleta da un ciclo all'altro, quindi due cicli non significano che hai il doppio del tempo per l'esecuzione. Quindi, per fare l'aggiunta in due cicli, non è possibile raddoppiare la velocità di clock.