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

Cosa Fare Se i Powerbeats Pro Non Si Ricaricano nella Custodia

Cosa Fare Se i Powerbeats Pro Non Si Ricaricano nella Custodia

Se i tuoi Powerbeats Pro non si ricaricano, utilizza un

Basi della Stampa 3D: Una Checklist di Manutenzione Indispensabile

Basi della Stampa 3D: Una Checklist di Manutenzione Indispensabile

Mantenere le attrezzature in buone condizioni è fondamentale. Ecco alcuni utili suggerimenti per mantenere la tua stampante 3D in condizioni ottimali.

Canon Pixma MG5220: Scansione senza inchiostro

Canon Pixma MG5220: Scansione senza inchiostro

Come abilitare la scansione sulla Canon Pixma MG5220 quando si esaurisce l

5 Motivi per cui il tuo Laptop si surriscalda

5 Motivi per cui il tuo Laptop si surriscalda

Scopri alcune delle possibili cause per cui il tuo laptop si surriscalda, insieme a suggerimenti e trucchi per evitare questo problema e mantenere il tuo dispositivo fresco.

Come Risolvere l'Errore GeForce Now Codice 0xC272008F

Come Risolvere l'Errore GeForce Now Codice 0xC272008F

Ti stai preparando per una serata di gioco, ed è una grande serata - hai appena acquistato "Star Wars Outlaws" sul servizio di streaming GeForce Now. Scopri l

Fondamenti della Stampa 3D: Consigli di Manutenzione per la Tua Stampante 3D

Fondamenti della Stampa 3D: Consigli di Manutenzione per la Tua Stampante 3D

Mantenere le stampanti 3D è molto importante per ottenere i migliori risultati. Ecco alcuni consigli importanti da tenere a mente.

Come Trovare l'Indirizzo IP di una Stampante

Come Trovare l'Indirizzo IP di una Stampante

Hai difficoltà a scoprire quale indirizzo IP sta utilizzando la tua stampante? Ti mostreremo come trovarlo.

Come utilizzare gli AirPods con i telefoni Samsung

Come utilizzare gli AirPods con i telefoni Samsung

Se non sei sicuro se acquistare gli AirPods per il tuo telefono Samsung, questa guida può sicuramente aiutarti. La domanda più ovvia è se i due siano compatibili.

Come far funzionare Spotify nel nuovo Garmin Venu

Come far funzionare Spotify nel nuovo Garmin Venu

Scopri come configurare Spotify sul tuo Garmin Venu per ascoltare la tua musica preferita mentre ti alleni.

Risoluzione dei problemi dellapp Blink quando la fotocamera è offline

Risoluzione dei problemi dellapp Blink quando la fotocamera è offline

Scopri come risolvere i problemi dell