Cosè una barriera della memoria?

Storicamente le CPU sono state macchine perfettamente sequenziali. Questo è altamente logico e facile da capire, ma può essere un problema di prestazioni. Nel corso degli anni, sono stati apportati molti ingegnosi aggiustamenti ai progetti di CPU per ottenere il massimo delle prestazioni possibili dai wafer di silicio. Uno dei più interessanti, tuttavia, è l'esecuzione fuori ordine. Nelle CPU con esecuzione fuori ordine, le istruzioni non devono necessariamente essere eseguite nell'ordine in cui vengono emesse.

Stallo in ordine

Il principale problema di prestazioni in cui si imbatte una CPU in ordine è chiamato stallo della pipeline. Ciò accade quando un'istruzione dipende da una certa memoria, ma quella memoria non è direttamente disponibile in un registro. In questo caso, la CPU deve trovare quel valore in memoria. La cache della CPU viene controllata per prima in quanto questi sono i livelli di memoria più veloci. Se il valore non è presente, viene controllata la RAM di sistema. Durante questo periodo, la CPU deve rimanere inattiva, poiché l'istruzione dipendente dalla memoria deve essere completata in ordine prima delle istruzioni successive.

L'impatto sulle prestazioni di uno stallo della pipeline potrebbe non essere così negativo, ma può anche essere relativamente grave. Ad esempio, la cache L1 può in genere restituire un risultato nell'ordine di grandezza di 5 cicli della CPU. La cache L2 può richiedere 20 cicli, L3 circa 200 cicli e la RAM di sistema circa 400 cicli. Dato che una CPU può funzionare a circa 5 GHz, ovvero 5 miliardi di cicli di clock al secondo, anche 400 cicli non sono poi così male (0,000008%). Ma se hai molte istruzioni che devono fare riferimento ai dati più in basso nei livelli della cache, l'effetto cumulativo può causare un notevole rallentamento.

Esecuzione fuori servizio e ridenominazione dei registri

L'esecuzione fuori ordine è una tecnica che consente allo scheduler di riordinare le istruzioni nella sua coda. Attraverso questo riordino, può scegliere di dare la priorità a thread specifici rispetto ad altri. Può anche riportare le istruzioni nella coda quando hanno una dipendenza dai dati che non è stata ancora soddisfatta. Ciò impedisce il più possibile gli stalli della pipeline, riducendo al minimo i cicli di inattività.

L'esecuzione fuori ordine richiede una funzionalità chiamata ridenominazione dei registri. La CPU può accedere ai dati contenuti nei registri all'interno di un singolo ciclo. I registri vengono utilizzati per memorizzare i dati letti e scritti. È essenziale, tuttavia, garantire che il computer in generale veda tutto ciò che accade nell'ordine logico, non nell'ordine fuori servizio, ottimizzato per il ciclo della CPU. Per consentire ciò, le CPU dispongono di molti più registri logici rispetto a quelli richiesti dall'architettura della CPU.

I dati che devono essere scritti, ma hanno un'istruzione "precedente" che non è stata ancora completata, vengono inseriti in un registro di deposito. Questi dati non vengono trasferiti ad un altro registro quando l'ordine si è evaso da solo. Invece, il nome del registro aziendale viene cambiato con quello del registro in cui dovrebbe trovarsi. Questo è in qualche modo simile a preparare un dolce prima del piatto principale ma poi tenerlo in frigo fino al momento di servirlo.

Questi registri logici sono del tutto privi di indirizzo. La CPU può indirizzare realmente solo i registri logici che attualmente condividono il nome dei registri architetturali. Detto questo, la CPU ne è anche abbastanza consapevole che se altre istruzioni riordinate si basano sui dati nel registro di mantenimento logico, possono usarli piuttosto che sui dati "obsoleti" nel registro architetturale in quel particolare momento empirico.

Barriere della memoria

Una barriera di memoria, nota anche come membar, barriera di memoria o istruzione di recinzione, è un'istruzione nel codice del computer. Consente a un programmatore di imporre un vincolo di ordinamento sulle operazioni di memoria eseguite prima e dopo la barriera di memoria. La barriera di memoria ordina allo scheduler della CPU di garantire che tutte le istruzioni vengano elaborate prima di qualsiasi istruzione dopo la barriera. Questo viene fatto per garantire che le operazioni importanti siano completate nell'ordine corretto.

Generalmente, sui computer moderni, questo non dovrebbe essere necessario. L'esecuzione fuori servizio e la ridenominazione del registro sono campi consolidati e maturi. Tuttavia, una barriera di memoria può essere utile per processori meno recenti, meno sofisticati, fuori servizio o utilizzati in operazioni di memoria critiche.

Le barriere di memoria possono comportare un calo delle prestazioni. Questo perché impediscono attivamente allo scheduler della CPU di ottimizzare parti specifiche del flusso di istruzioni. Ciò aumenta la possibilità di uno stallo del gasdotto.

Conclusione

Una barriera di memoria è un'istruzione che garantisce un vincolo di ordinamento sulle operazioni di memoria. Questo è importante perché i processori di esecuzione fuori ordine possono riordinare istruzioni specifiche. Sebbene la ridenominazione del registro sia un metodo consolidato per garantire l'integrità della memoria in questo ambiente, può essere utile assicurarla manualmente.

La barriera della memoria forza lo scheduler della CPU a garantire che le istruzioni siano completate prima di qualsiasi istruzione successiva alla barriera. Ciò impedisce il riordino delle operazioni di memoria. Impedisce inoltre alla CPU di ottimizzare il flusso di istruzioni, il che può influire sulle prestazioni.



Leave a Comment

Come clonare un disco rigido

Come clonare un disco rigido

Nell'era digitale moderna, in cui i dati sono una risorsa preziosa, la clonazione di un disco rigido su Windows può essere un processo cruciale per molti. Questa guida completa

Come risolvere il problema con il caricamento del driver WUDFRd su Windows 10?

Come risolvere il problema con il caricamento del driver WUDFRd su Windows 10?

Stai riscontrando il messaggio di errore durante l'avvio del computer che dice che il driver WUDFRd non è stato caricato sul tuo computer?

Come risolvere il codice di errore NVIDIA GeForce Experience 0x0003

Come risolvere il codice di errore NVIDIA GeForce Experience 0x0003

Hai riscontrato l'esperienza NVIDIA GeForce con il codice di errore 0x0003 sul tuo desktop? Se sì, leggi il blog per scoprire come correggere questo errore in modo semplice e veloce.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Come rimuovere una GPU da un PC Windows nel 2023

Come rimuovere una GPU da un PC Windows nel 2023

Devi rimuovere la GPU dal tuo PC? Unisciti a me mentre ti spiego come rimuovere una GPU dal tuo PC in questa guida dettagliata.

Come installare ununità SSD NVMe su desktop e laptop

Come installare ununità SSD NVMe su desktop e laptop

Hai acquistato un nuovo SSD NVMe M.2 ma non sai come installarlo? Continua a leggere per sapere come installare un'unità SSD NVMe su laptop o desktop.

Cosè una bomba logica?

Cosè una bomba logica?

Una bomba logica è un incidente di sicurezza in cui un utente malintenzionato organizza un'azione ritardata. Continua a leggere per scoprire di più.

Che cosè Stuxnet?

Che cosè Stuxnet?

Stuxnet era un worm autopropagante. È stato il primo utilizzo di un'arma informatica e la prima istanza di malware.

Cosè un hacker etico?

Cosè un hacker etico?

Un hacker etico è un hacker che agisce entro i limiti della legge. Continua a leggere per saperne di più sull'argomento.

Che cosè la crittografia simmetrica?

Che cosè la crittografia simmetrica?

Ci sono molte parti diverse della crittografia. Se vuoi crittografare alcuni dati, ci sono due tipi di algoritmi che puoi usare: symmetric