Ho sentito parlare di una tecnologia usata sui processori che sfruttano un ciclo di clock per compiere più di un operazione alla volta, quindi riuscendo ad essere più veloci, se ciò che ho detto è corretto, come è possibile? Grazie.

Già da molti anni l’evoluzione delle architetture interne dei
processori ha portato ad includere
varie unità logiche ed aritmetiche che possono operare
contemporaneamente e, ovviamente, vari bus interni
in grado di fornire i dati contemporaneamente a più unità.
Ciò consente
di aumentare la velocità di calcolo a parità di altri parametri.

Per comprendere come ciò possa avvenire facciamo riferimento ad un
semplice esempio.

Supponiamo che un programma debba eseguire una operazione aritmetica
del tipo:

E = A * B + C * D

Questa operazione, tradotta in istruzioni elementari del processore
(ovvero in linguaggio macchina) diventa:

1 Accedi all’operando A
2 Accedi all’operando B
3 Applica l’operazione *
4 Memorizza il risultato temporaneo in R1
5 Accedi all’operando C
6 Accedi all’operando D
7 Applica l’operazione *
8 Memorizza il risultato temporaneo in R2
9 Accedi all’operando R1
10 Accedi all’operando R2
11 Applica l’operazione +
12 Memorizza il risultato in E

I simboli A, B, C, D, E, R1 ed
R2 indicano opportune locazioni di memoria che possono contenere
valori numerici.

Supponiamo adesso che il processore sia dotato di due unità
per la moltiplicazione ed una per la somma, fra loro indipendenti.
In tal caso alcune delle operazioni possono essere svolte contemporaneamente:

1 Accedi all’operando A Accedi all’operando C
2 Accedi all’operando B Accedi all’operando D
3 Applica l’operazione * Applica l’operazione *
4 Memorizza il risultato temporaneo in R1 Memorizza il risultato temporaneo in R2
5 Accedi all’operando R1
6 Accedi all’operando R2
7 Applica l’operazione +
8 Memorizza il risultato in E

In questo caso il risultato finale può essere ottenuto in soli 8 passi contro i dodici
della sequenza precedente.

Quella mostrata nell’esempio non è l’unica tecnica per aumentare il
“grado di parallelismo” nell’esecuzione delle istruzioni di un processore.
In generale le moderne CPU utilizzano vari altri accorgimenti tendenti
ad aumentare la velocità di esecuzione dei programmi.