Cosè lesecuzione fuori servizio?

I computer sono macchine complesse con nessuna parte più complessa della CPU. A livello di panoramica di base, sembra che la CPU dovrebbe essere relativamente semplice. Prende una serie di comandi, li elabora e quindi emette i dati. Tuttavia, questo ha poca somiglianza con il funzionamento effettivo delle moderne CPU.

Da sub-scalare a super-scalare

Le prime CPU erano esattamente come ti aspetteresti. Hanno preso le istruzioni individualmente, nell'ordine in cui sono state date loro, le hanno elaborate fino al completamento, quindi sono passate all'istruzione successiva. Le CPU di questo tipo erano sub-scalari, in grado di completare meno di un'istruzione per ciclo di clock. I progettisti di CPU hanno identificato che c'erano molte fasi diverse per il completamento di un'istruzione. Ognuna di queste fasi richiedeva hardware diverso. Ciò significava che durante l'esecuzione di una singola istruzione attraverso l'intera sequenza alla volta, alcune parti dell'hardware rimanevano inattive. In qualsiasi tipo di processore, l'hardware inattivo è hardware inutile.

Per utilizzare questo hardware inattivo, i progetti della CPU sono stati aggiornati per utilizzare un approccio a pipeline. Ciò ha ulteriormente separato l'hardware per ogni fase, ma ha consentito a tutti di essere utilizzati contemporaneamente da una serie di istruzioni. Sebbene ci volessero ancora alcuni cicli per ogni istruzione per passare attraverso la pipeline, il throughput complessivo era di un'istruzione per ciclo. Ciò ha reso le CPU scalari.

Per poter fare di più, i processori dovevano essere resi super-scalari. Per raggiungere questo obiettivo, sono state implementate più pipeline parallele.

Mantenere le pipeline alimentate con i dati

Il principale problema di prestazioni con i computer è in genere la latenza della memoria. Molte istruzioni operano sui dati e quindi i dati devono essere disponibili per l'esecuzione dell'istruzione. La domanda è: cosa fai se devi aspettare quei dati perché non sono immediatamente disponibili? Tradizionalmente, la risposta era solo quella di temporeggiare e aspettare che diventasse disponibile. Ciò lascia l'intera pipeline vuota, potenzialmente per centinaia di cicli della CPU. Le cose peggiorano ulteriormente quando due istruzioni in pipeline parallele devono attendere la memoria, poiché la prima sosterrà anche la richiesta dei dati della seconda. Sebbene la memoria cache della CPU possa aiutare a risolvere questo problema, non è ancora in grado di risolverlo. Era necessario un nuovo paradigma per risolverlo. Quel cambio di paradigma era Out Of Order Execution o OOO.

La prima fase di una pipeline consiste nel decodificare l'istruzione. Ciò significa elaborare ciò che deve essere fatto e verificare che i dati necessari per l'operazione siano disponibili. In una CPU OOO, le istruzioni decodificate vengono aggiunte a una coda. Vengono rimossi dalla coda ed effettivamente elaborati solo quando i dati di cui hanno bisogno sono disponibili. Fondamentalmente, non importa in quale ordine le istruzioni sono state aggiunte alla coda. Se un'istruzione precedente è in attesa di dati, un'istruzione più recente può andare avanti se è pronta per essere eseguita. I processori OOO possono riordinare le istruzioni che dovrebbero elaborare in base alla coda delle istruzioni imminenti e quali di queste sono pronte per l'esecuzione.

Dipendenze critiche

Questo processo presuppone due cose. Prima di tutto, che è possibile identificare e gestire in modo affidabile le vere dipendenze. In secondo luogo, è possibile gestire e identificare in modo affidabile le false dipendenze. Qual è la differenza? Bene, una vera dipendenza è una dipendenza che non può essere mitigata affatto in un sistema OOO. L'esempio più semplice è il read-after-write. Se hai un'istruzione che dovrebbe scrivere alcuni dati e un'altra che dovrebbe poi leggere quei dati, non c'è modo di poter riordinare quelle istruzioni. Devono essere completati nell'ordine in cui sono stati presentati, altrimenti otterrai dati senza senso.

Una falsa dipendenza è quella che può essere nascosta con un altro trucco intelligente. Prendiamo l'esempio di scrittura dopo lettura. A prima vista, potresti pensare di non poter sovrascrivere i dati prima di averli letti. Le cose però non sono così semplici. Cosa succede se hai un altro posto in cui puoi scrivere i nuovi dati, e poi puoi semplicemente scambiare i nuovi e vecchi dati una volta che i vecchi dati sono stati letti? Questo è il processo di ridenominazione dei registri ed è fondamentale per l'elaborazione OOO.

In genere, un set di istruzioni definisce un determinato numero di registri architetturali utilizzati nel sistema. Non puoi letteralmente rivolgerti a nessun altro. Ma cosa succede se esegui l'overprovisioning dei registri? Puoi semplicemente nasconderli per la maggior parte, usarli per archiviare dati che non avrebbero dovuto essere ancora elaborati e quindi scambiare semplicemente le etichette dei registri nascosto e architetturale quando la sequenza temporale è di nuovo corretta. In ogni momento, c'è l'esatto numero di registri architettonici, solo che non sono necessariamente sempre nello stesso posto. Un'analogia nel mondo reale sarebbe l'hot desking.

Conclusione

L'esecuzione Out Of Order è un paradigma di elaborazione in cui le istruzioni possono essere riordinate dinamicamente al momento dell'esecuzione dalla CPU. Questo viene fatto sulla base delle prime istruzioni emesse che hanno dati disponibili. Ciò significa che le istruzioni caricate nella pipeline sono sempre pronte per essere eseguite e non ci sono ritardi nell'attesa dei dati. Naturalmente, è necessario disporre di una coda sufficientemente lunga da non riempirsi di istruzioni in attesa di dati, ma questa è una sfida di implementazione. L'esecuzione di OOO si basa sulla ridenominazione dei registri per nascondere false dipendenze. Anche se queste istruzioni vengono effettivamente eseguite in modo non corretto, i registri vengono rinominati in modo tale da nascondere questo fatto al resto del computer.



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