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.
Agli albori dell'informatica, le CPU erano macchine puramente sequenziali. Ciò ha contribuito a mantenere i progetti semplici. Tuttavia, ha anche limitato le prestazioni. Molti processi dovranno richiedere dati dalla RAM di sistema o dal disco rigido. Sebbene la RAM di sistema sia veloce, non è ancora veloce come la CPU, lasciandola inattiva, in attesa di dati fino a quando la risposta non ritorna dalla RAM. La situazione è ancora peggiore per i dati richiesti dal disco rigido, un dispositivo di archiviazione molto più lento della RAM. Qui la CPU può rimanere inattiva per periodi significativi, in attesa di una risposta. Sfortunatamente, con i processori sequenziali, questo problema è semplicemente inevitabile.
Per fortuna, le CPU moderne non sono più sequenziali. Offrono molte funzionalità avanzate, come l'esecuzione fuori ordine e più thread. L'esecuzione fuori ordine consente alla CPU di analizzare le istruzioni imminenti e riordinarle per massimizzare l'efficienza. Il multi-threading consente alla CPU di avere numerosi thread o processi diversi in esecuzione.
Oltre ad avere più core, la CPU non può eseguirne più di uno alla volta. Può, tuttavia, farlo sembrare passando da uno all'altro regolarmente per garantire che ciascuno ottenga una quantità apprezzabile di tempo di CPU costante. Il processo di passaggio da un thread all'altro è chiamato cambio di contesto.
Come funziona un cambio di contesto?
Un cambio di contesto è costituito da due parti, che escludono il thread precedente e attivano quello nuovo. Per modificare il vecchio thread, la CPU deve salvare il suo stato attuale in un Process Control Block o switch frame. Questo include i valori di tutti i registri della CPU rilevanti e consiste sempre nel valore del program counter. Una volta che il thread è stato archiviato, è possibile aggiungere un handle a una coda pronta per consentirne il ripristino quando necessario.
Passare al thread seguente è lo stesso processo al contrario. Un thread viene selezionato dalla coda dei pronti, a seconda della ponderazione. In alternativa, può essere scelto da un interrupt che indica che un evento su cui il thread era in attesa è ora pronto o completo. I dati per il thread vengono quindi copiati nei registri corretti e il thread viene ripristinato. A questo punto, il nuovo thread è pronto per continuare l'operazione da dove si era interrotto.
Impatto sulle prestazioni
Il processo di lettura e scrittura dei dati durante l'attivazione o la disattivazione di un thread richiede un po' di tempo, anche se non molto, poiché la memoria utilizzata è tipicamente ad alta velocità. Ci sono, tuttavia, ulteriori costi di prestazione. Quando si cambia thread, i dati nelle cache e nei buffer della CPU dal thread precedente potrebbero non essere rilevanti per il nuovo thread. Ciò può portare a un aumento significativo del TLB ( Translation Lookaside Buffer ) e dei cache miss.
Questo effetto non è significativo se i due thread sono stati generati dallo stesso processo, poiché è probabile che condividano considerevoli elementi di memoria. Il TLB deve essere svuotato completamente quando si passa da un thread all'altro da metodi diversi. Ciò porta a una percentuale di errori TLB del 100%, mentre anche la percentuale di riscontri della cache della CPU è significativamente ridotta.
Sebbene le CPU offrano il supporto hardware per il cambio di contesto, i sistemi operativi in genere non lo utilizzano. Il cambio di contesto hardware non è consapevole della rilevanza dei dati. Pertanto necessita di archiviare e ripristinare tutti i registri, aumentando il tempo impiegato e lo spazio di archiviazione richiesto.
Inoltre, il cambio di contesto hardware non memorizza i dati dai registri in virgola mobile, funzionalità che potrebbe essere necessaria. Il cambio di contesto software è, quindi, generalmente utilizzato. Consente di conservare i dati di tutti i registri, inclusi i registri a virgola mobile. I cambi di contesto software hanno una comprensione della pertinenza dei dati. Ciò significa che può scegliere quali archiviare secondo necessità.
Conclusione
Un cambio di contesto è un processo mediante il quale una CPU moderna cambia il thread in esecuzione. Il processo prevede la memorizzazione dei dati rilevanti del thread corrente e il ripristino dei dati pertinenti del nuovo thread. Il cambio di contesto comporta un costo in termini di prestazioni correlato al tempo necessario per eseguire il passaggio e l'aumento del tasso di cache e TLB mancati poiché questi non vengono archiviati. I cambi di contesto si verificano per garantire che tutti i thread dispongano di una buona riserva di tempo della CPU o a causa di un interrupt che indica che un evento su cui la linea era in attesa è completo.
Scopri come configurare Spotify sul tuo Garmin Venu per ascoltare la tua musica preferita mentre ti alleni.
Scopri come risolvere i problemi dell
Scopri le differenze tra S Pen e Apple Pencil, due accessori per disegnare e prendere appunti, analizzando design, prestazioni e costi.
Scopri tutto su cosa è WPS e come funziona, insieme ai suoi vantaggi e svantaggi.
Scopri come risolvere il problema della tua TV Samsung che non salva le impostazioni dell
Guida dettagliata su come acquisire screenshot a schermo intero e parziale su Chromebook. Segui questi passaggi per facilitare la tua esperienza.
Se si è verificato un errore durante l
Per ottenere i migliori risultati nella stampa 3D, ecco cosa devi sapere sul TPU e i suoi utilizzi.
Il blocco dello scorrimento è un tasto sulla maggior parte delle tastiere, sebbene raramente venga utilizzato. Scopri come funziona e la sua utilità nei moderni software.
Scopri se è possibile aggiornare la memoria del tuo Chromebook e quali sono le migliori opzioni per ottimizzare le prestazioni del dispositivo.