Multithreading simultâneo, acrônimo SMT, é uma técnica para melhorar a eficiência geral das CPUs superscalares com multithreading de Hardware. SMT permite múltiplas roscas independentes de execução para melhor utilizar os recursos fornecidos pelas modernas arquiteturas de computadores.

Multithreading é semelhante em conceito a multitarefa, mas é implementado no nível de execução em nível de fio em processadores modernos superscalar.

No projeto do processador, há duas maneiras de aumentar o paralelismo no chip com menos necessidade de recursos:

  1. Técnica Superscalar: que tenta aumentar o paralelismo de nível de instrução (ILP) executando múltiplas instruções ao mesmo tempo (denominado: simultaneamente); por instruções de despacho "simultâneas" (denominado: despacho de instruções) para múltiplas unidades de execução redundantes construídas dentro do processador.
  2. Técnica de multithreading de nível de chip (CMT): usando o paralelismo de nível de rosca (TLP) a fim de executar instruções de múltiplas roscas dentro de um chip processador ao mesmo tempo.

Há muitas maneiras de suportar mais de uma rosca dentro de um chip, a saber:

  1. Multithreading Interleaved (IMT) : Edição intercalada de múltiplas instruções de diferentes fios, também conhecida como Multithreading Temporal. Pode ser ainda dividido em multithreading de grão fino ou multithreading de grão grosso, dependendo da freqüência das questões intercaladas. A multi-tarefa de grão fino emite instruções para diferentes roscas após cada ciclo, enquanto a multi-tarefa de grão grosso só muda para emitir instruções de outra rosca quando a rosca atual de execução causa alguns eventos de latência longa (como falha de página, etc.). A multi-tarefa de grãos grossos é mais comum para menos comutação de contexto entre as roscas. Para processadores com um duto por núcleo, a única maneira possível é a multi-tarefa intercalada, pois ela só pode emitir até uma instrução por ciclo.
  2. Multithreading simultâneo (SMT): Emitir instruções múltiplas a partir de múltiplas roscas em um ciclo. O processador deve ser super-escalar para fazer isso.
  3. Multiprocessamento a nível de chip (CMP ou Multi-core processor): integra dois ou mais processadores superscalar em um chip, cada um executa os fios de forma independente.
  4. Qualquer combinação de IMT/SMT/CMP

O fator chave para distingui-los é olhar quantas instruções o processador pode emitir em um ciclo e quantas roscas de onde vêm as instruções.