mi sono imbattuto in questo estratto oggi:Perché le operazioni bit a bit erano leggermente più veloci delle operazioni di addizione/sottrazione su microprocessori precedenti?
Sulla maggior parte dei microprocessori più anziani, operazioni bit per bit sono leggermente più veloce di addizione e sottrazione operazioni e di solito significativamente più veloce di moltiplicazione e divisione operazioni. Nelle architetture moderne, questo non è il caso: le operazioni bit a bit sono in genere alla stessa velocità dell'addizione (sebbene ancora più veloce della moltiplicazione).
Sono curioso di sapere perché le operazioni bit a bit erano leggermente più veloci delle operazioni di addizione/sottrazione su microprocessori precedenti.
Tutto quello che posso pensare che causerebbe la latenza è che i circuiti per implementare addizione/sottrazione dipendono da diversi livelli di porte logiche (additori paralleli e quant'altro), mentre le operazioni bit a bit hanno implementazioni circuitali molto più semplici. È questa la ragione?
So che le operazioni aritmetiche e bit a bit vengono eseguite all'interno di un clock-clo su processori moderni, ma parlando puramente del tempo di propagazione per il circuito, la latenza è ancora teoricamente presente nei processori moderni?
Infine, ho avuto una domanda concettuale C circa l'esecuzione dell'operazione di spostamento bit a bit:
unsigned x = 1;
x <<= 5;
unsigned y = 0;
y += 32;
Sia x
e y
dovrebbe contenere il valore 32
, ma c'è voluto turni separati a sinistra per ottenere x
a quel valore (come in sono gli spostamenti bit a bit implementati tramite pipe)? Per chiarire, sto chiedendo esclusivamente il comportamento del circuito, non il numero di cicli di clock.
Il primo esempio restituisce zero, ma probabilmente era un errore di battitura. Il resto della tua domanda è specifico dell'hardware e probabilmente off-topic qui. –
@ 500 Penso che sia importante conoscere il funzionamento di un processore in modo da poter capire meglio come funziona il codice di alto livello. – kjprice
@kjprice: abbastanza giusto, noterete che non ho votato per chiudere. –