Cosa significa GHz? Come si riferisce alla velocità del processore?

GHz significa 1 miliardo di cicli al secondo e quando si parla di processore a 2,4 GHz, di solito si intende che questa è la frequenza massima del clock di ogni core.
Un processore può, e nel mercato dei PC/smartphone di solito lo fa, avere più core che teoricamente possono avere clock diversi. AFAIK processori con core identici come i processori Intel a 2 e 4 core hanno la stessa velocità di clock per ogni core.

Ora, cosa ha a che fare questo con la velocità del processore?
Il processore sta eseguendo istruzioni che in ogni architettura di set di istruzioni e specialmente in un'architettura di calcolo di set di istruzioni complesse possono avere diversi cicli per istruzione. Ma in una specifica architettura, maggiore è la frequenza - più breve è il ciclo e si possono inserire più istruzioni al secondo, cioè più MIPS/GIPS (mega(milioni)/Giga(miliardi) di istruzioni al secondo).

È tutto qui?
No, c'è tutta una serie di altre considerazioni per confrontare diversi processori:

  • Numero di core - un processore a 2 core può fare il doppio delle istruzioni al secondo rispetto a un processore a core singolo. Questo naturalmente se l'istruzione può essere messa in parallelo (fondamentalmente non c'è relazione tra di loro come in un thread diverso o calcolo indipendente)
  • Architettura del set di istruzioni - un'architettura a 64 bit può aggiungere 2 numeri a 64 bit in una sola istruzione. un processore a 32 bit dovrà farlo in "addizione lunga" e ci vorranno alcune istruzioni per la stessa aggiunta. Un processore che può fare una divisione nell'hardware può impiegare poche decine di cicli mentre quelli che non possono farlo devono farlo con un algoritmo software che può richiedere centinaia o migliaia di cicli.
    Diverse architetture possono anche avere diversi cicli per istruzione per la stessa istruzione. Qui c'è un bel confronto: Instruction tables page on agner.org
  • La dimensione della cache della CPU - se la cache non è sufficiente il computer aspetterà che l'istruzione o i dati siano recuperati dalla RAM e la velocità del processore sarà inferiore.
  • Predicatore di ramo - i processori moderni hanno una lunga pipeline e quando si incontra un ramo (per esempio un'istruzione if, while o for) il processore prevede il risultato e carica le istruzioni successive prima che il risultato reale sia noto. Nel caso in cui la previsione sia sbagliata, la pipeline deve essere lavata e nessuna istruzione può essere eseguita.

Questo'è tutto per ora.