Differenze tra le versioni di "Multithreading"

m
Bot: Correzione di uno o più errori comuni
m (Bot: Correzione di uno o più errori comuni)
 
Per esempio:
#Ciclo i : l'istruzione j del thread A viene caricata
#Ciclo i+1 : l'istruzione j+1 del thread A viene caricata
#Ciclo i+2 : l'istruzione j+2 del thread A viene caricata, il caricamento provoca un cache miss con corrispondente richiesta nella memoria centrale
#Ciclo i+3 : il processore avvia l'esecuzione del thread B
#Ciclo i+4 : l'istruzione k del thread B viene caricata
#Ciclo i+5 : l'istruzione k+1 del thread B viene caricata
 
Concettualmente è una tecnica simile a quella presente nel multitasking cooperativo dei sistemi [[RTOS]], in questi sistemi operativi quando un programma deve attendere un evento volontariamente cede la priorità a un altro programma pronto all'esecuzione.
 
Per esempio:
#Ciclo i : l'istruzione j del thread A viene caricata
#Ciclo i+1 : l'istruzione k del thread B viene caricata
#Ciclo i+2 : l'istruzione h del thread C viene caricata
 
Questa tipologia di multithreading dovrebbe rimuovere la dipendenza dai dati dei singoli thread e quindi dovrebbe azzerare o comunque ridurre gli stalli della [[pipeline dati|pipeline]] dovuta alla dipendenza dai dati. Dato che ogni thread dovrebbe funzionare in modo indipendente i singoli thread eseguiranno programmi non correlati e quindi vi saranno poche probabilità che le istruzioni di un thread necessitino dei risultati elaborati da un'istruzione di un altro thread in esecuzione in quel momento.
93 448

contributi