View Single Post
Old 26-08-2016, 15:09   #36
Yrbaf
Senior Member
 
Iscritto dal: Dec 2015
Messaggi: 6208
Quote:
Originariamente inviato da lucusta Guarda i messaggi
HT non è un SMT, ma un consequenziatore di thread.
non processi 2 threads simultaneamente per ogni clock, ma ne fai, al massimo, 2 per per quanti clock sono necessari per eseguire l'intera pipeline, per ciclo di pipeline.
e enormemente diverso, sopratutto quando hai threads che riempono per intero una pipeline (e quindi non hai spazio, nello stesso ciclo di pipeline, di accodarne un'altro).
SMT, in queste implementazioni, possono eseguire un minimo di 2 threads completi e che occuperebbero per intero le pipeline a più threads a ciclo (utilizzando gli stadi vuoti delle pipeline).
un thread riempe la pipeline quando il dato ottenuto nel primo stadio e' ancora necessario per finire l'esecuzione dello stesso thread utilizzandolo congiuntamente anche nell'ultimo stadio, e quindi impossibile da cancellare.

per essere piu' chiari:
http://cfile8.uf.tistory.com/image/2...4D9A73811151FD
http://image.slidesharecdn.com/10-in...?cb=1335624867
questo e' HT nella sua prima implementazione.
oggi invece hai duplicata l'intera catena, e congiuntamente hai la replica dei primi due logici per ogni ALU, permettendoti di operare anche HT.
HT era il modo di massimizzare le pipeline, aumentando cosi' il rendimento;
SMT invece utilizza la forza bruta (raddoppio delle risorse) per massimizzare l'IPC, che diversamente non avrebbe modo di essere incrementato su una ISA ormai ben radicata ed esplorata, limitata da entrambe le parti da brevetti.
Ok vedo che sai cosa è HT, però non sai cosa è SMT o pensi sia di più di quello che deve essere e classifichi HT solo una implementazione parziale.

Ripeto i testi sacri riportano le cpu Intel con HT come cpu di tipo SMT e questo già al tempo di P4 (ora lo dicono degli i7 ma se prendi vecchie edizioni parlano del P4 come di una cpu con multithreading sotto il marchio commerciale HT).

SMT non è altro che il multithreading hw applicato ad un processore superscalare.

Quote:
Originariamente inviato da Piedone1113 Guarda i messaggi
Credo che si confonda con la prima implementazione di HT su P4.
I Th simultanei dovevano essere generati dallo stesso processo, quindi accodati tra loro affinchè funzionassero, limitazione che SMT classico non aveva, che appunto nei p4 era implementato in modo semplicistico.
Questo mi suona strano, come può una cpu distinguere tra thread e processi (salvo l'uso dei microthread come su Mips con i ThreadContext).

Tratto dal Tanenbaum del 2005:
Quote:

Intel calls the implementation of multithreading used in the Pentium 4 hyperthreading.
The basic idea is to allow two threads (or possibly processes, since the CPU cannot tell what is a thread and what is a process) to run at once. To the operating system, a hyperthreaded Pentium 4 chip looks like a dual processor in which both CPUs share a common cache and main memory. The operating system schedules the threads independently. If two applications are running at the same time, the operating system can run each one at the same time.

Ultima modifica di Yrbaf : 26-08-2016 alle 15:21.
Yrbaf è offline   Rispondi citando il messaggio o parte di esso
 
1