Multifilettatura simultanea

Il multithreading simultaneo, acronimo SMT, è una tecnica per migliorare l'efficienza complessiva delle CPU superscalari con il multithreading hardware. SMT permette di eseguire più thread indipendenti e multipli per utilizzare al meglio le risorse fornite dalle moderne architetture informatiche.

Il multithreading è simile per concezione al multitasking ma è implementato a livello di thread di esecuzione nei moderni processori superscalari.

Nella progettazione dei processori, ci sono due modi per aumentare il parallelismo su chip con minori esigenze di risorse:

  1. Tecnica superscalare: che cerca di aumentare il parallelismo del livello di istruzione (ILP) eseguendo più istruzioni contemporaneamente (detto: simultaneamente); con istruzioni di dispacciamento "simultaneamente" (detto: dispacciamento di istruzioni) a più unità di esecuzione ridondanti costruite all'interno del processore.
  2. Tecnica di multithreading a livello di chip (CMT): utilizzando il parallelismo a livello di thread (TLP) per eseguire contemporaneamente istruzioni da più thread all'interno di un chip del processore.

Ci sono molti modi per sostenere più di un filo all'interno di un chip, vale a dire:

  1. Multithreading interfogliato (IMT) : emissione interlacciata di istruzioni multiple da differenti filettature, detta anche Multithreading temporale. Può essere ulteriormente suddivisa in multithreading a grana fine o multithreading a grana grossa a seconda della frequenza delle emissioni interleaved. Il multithreading a grana fine emette istruzioni per diversi thread dopo ogni ciclo, mentre il multithreading a grana grossa passa ad emettere istruzioni da un altro thread solo quando il thread in esecuzione provoca alcuni lunghi eventi di latenza (come un errore di pagina ecc.). Il multithreading a grana grossa è più comune per un minore cambio di contesto tra i thread. Per i processori con una pipeline per nucleo, il multithreading interleaved è l'unico modo possibile, perché può emettere solo fino ad un'istruzione per ciclo.
  2. Multithreading simultaneo (SMT): Rilasciare più istruzioni da più filettature in un unico ciclo. Il processore deve essere superscalare per farlo.
  3. Chip-level multiprocessing (CMP o Multi-core processor): integra due o più processori superscalari in un unico chip, ognuno dei quali esegue i thread in modo indipendente.
  4. Qualsiasi combinazione di IMT/SMT/CMP

Il fattore chiave per distinguerli è quello di guardare quante istruzioni il processore può emettere in un ciclo e quanti thread da cui provengono le istruzioni.

Esempi di moderne CPU SMT

  1. L'Intel Pentium 4 è stato il primo processore desktop moderno ad implementare il multithreading simultaneo, a partire dal modello a 3,06GHz rilasciato nel 2002, e da allora introdotto in alcuni dei suoi processori. Intel chiama la funzionalità Hyper-Threading Technology (HTT) e fornisce un motore SMT a due thread di base. Intel sostiene un miglioramento della velocità fino al 30% rispetto a un Pentium 4 non SMT altrimenti identico.
  2. Gli ultimi progetti di architettura MIPS includono un sistema SMT noto come "MIPS MT".
  3. L'IBM POWER5, annunciato nel maggio 2004, si presenta come DCM dual core, o MCM quad-core o MCM 8-core, con ogni core che include un motore SMT a due fili. L'implementazione di IBM è più sofisticata rispetto alle precedenti, perché può assegnare una priorità diversa ai vari thread, è più a grana fine, e il motore SMT può essere acceso e spento dinamicamente, per eseguire meglio quei carichi di lavoro in cui un processore SMT non aumenterebbe le prestazioni. Questa è la seconda implementazione IBM del multithreading hardware generalmente disponibile.
  4. Intel Atom, rilasciato nel 2008, è il primo prodotto Intel con SMT (commercializzato come Hyper-threading) senza supportare il riordino delle istruzioni, l'esecuzione speculativa o la ridenominazione dei registri.

Pagine correlate

Domande e risposte

D: Che cos'è il multithreading simultaneo?


R: Il multithreading simultaneo (SMT) è una tecnica per migliorare l'efficienza complessiva delle CPU superscalari con multithreading hardware. Consente l'esecuzione di più thread indipendenti per utilizzare meglio le risorse fornite dalle moderne architetture di computer.

D: Come si confronta l'SMT con il multitasking?


R: Il multithreading è simile nel concetto al multitasking, ma è implementato a livello di thread di esecuzione nei moderni processori superscalari, mentre il multitasking è implementato a livello di processo.

D: Quali sono i due modi per aumentare il parallelismo on-chip?


R: I due modi per aumentare il parallelismo sul chip sono la tecnica superscalare e il multithreading a livello di chip (CMT).

D: Quali sono i diversi tipi di multithreading a livello di chip?


R: I diversi tipi di multithreading a livello di chip includono Interleaved Multithreading (IMT), Fine-Grain Multithreading, Coarse Grain Multithreadin e Simultaneous Multithreadin (SMT).

D: Come si può distinguere tra IMT/SMT/CMP?


R: Il fattore chiave per distinguere tra IMT/SMT/CMP è osservare il numero di istruzioni che il processore può emettere in un ciclo e il numero di thread da cui provengono le istruzioni.

D: Quale tipo di processore deve essere utilizzato per l'SMT?


R: Per l'SMT, è necessario utilizzare un processore superscalare.

D: Che tipo di processore utilizza il Chip Level MultiProcessing?


R: Il Chip Level MultiProcessing utilizza processori multi-core che integrano due o più processori superscalari in un unico chip, ciascuno dei quali esegue i thread in modo indipendente.

AlegsaOnline.com - 2020 / 2023 - License CC3