Multithreading: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ciampix (discussione | contributi)
Ciampix (discussione | contributi)
Riga 39:
==Fine-grained multithreading==
=== Idea di base ===
Una tipologia di mutithreadingmultithreading moltimolto spinto prevede che il processore scambi il thread in esecuzione a ogni ciclo di clock.
 
Per esempio:
Riga 46:
#Ciclo i+2 : l'istruzione h del thread C viene caricata
 
Questa tipologia di mutithreadingmultithreading 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.
Concettualmente questa tecnica è simile al multitasking preemptive presente in molti sistemi operativi. Questa analogia parte dal presupposto che ogni slot di tempo dei programmi sia posto uguale a un ciclo di clock del processore.