Resumo
- O SMT permite emitir no mesmo ciclo instruções de vários contextos independentes sobre os recursos de um único núcleo superescalar largo. Usa paralelismo entre threads para ocupar folgas; não cria núcleos físicos.
- Os números de 1995 eram resultados de vazão de uma simulação específica, baseada no Alpha 21164 ampliado, com até oito contextos e cargas SPEC92 multiprogramadas. Não prometiam acelerar um único thread nem garantir justiça, energia, segurança ou superioridade universal.
Quando largura vira ociosidade
Um núcleo superescalar precisa encontrar várias instruções prontas a cada ciclo. Dependências, desvios e faltas de cache reduzem essa oferta. Dean Tullsen, Susan Eggers e Henry Levy chamaram de desperdício horizontal os espaços não preenchidos num ciclo ativo e de desperdício vertical os ciclos sem emissão. O trabalho apresentado na ISCA de 1995 manteve vários estados de thread disponíveis, permitindo que instruções de programas diferentes ocupassem unidades livres ao mesmo tempo.
Essa formulação separa conceitos. Paralelismo em nível de instrução fica dentro de um thread; paralelismo em nível de thread traz fluxos independentes. Contextos de hardware preservam estado, mas compartilham filas, unidades, caches e preditores. Um processador multicore separa fisicamente mais recursos. Oito contextos SMT não são oito núcleos.
O alcance da experiência de 1995
O primeiro estudo simulou uma máquina inspirada no Alpha 21164 de 300 MHz e mais larga. Uma configuração típica tinha dez unidades funcionais, emissão máxima de oito instruções por ciclo e até oito contextos. Programas SPEC92 distintos foram reunidos para medir vazão bruta, sem atribuir o resultado à sincronização ou paralelização de um aplicativo.
Os autores também compilaram os programas para bom desempenho em um thread, evitando uma base artificialmente fraca. Nos modelos avaliados, os ganhos ficaram entre 3,2 e 4,2 vezes o superescalar largo, com máximo de 6,3 instruções por ciclo. A síntese apontou até quatro vezes sua vazão e duas vezes a do multithreading de granularidade fina, sob aquelas condições.
Isso mede trabalho total, não o tempo de uma tarefa isolada. Frequência, largura, memória, energia e mistura de programas limitam qualquer transferência direta para outra máquina.
Compartilhar exige uma política
Quando vários threads querem os mesmos espaços, o árbitro passa a determinar o comportamento. O artigo comparou prioridade estrita e políticas mais justas. A vazão total podia permanecer próxima enquanto o progresso individual mudava muito. Em um teste com oito threads, o programa de menor prioridade rodou a apenas 55% da velocidade do mais favorecido. Até este perdeu cerca de 35% devido a caches, TLBs e preditores compartilhados.
Fetch, filas, registradores, unidades e banda de memória formam a superfície de controle. Uma média melhor pode coexistir com cauda de latência pior ou progresso imprevisível para um serviço.
Tornar a ideia implementável
Em 1996, Tullsen, Eggers, Joel Emer, Levy, Jack Lo e Rebecca Stamm descreveram uma organização mais plausível como extensão de um superescalar convencional. A seleção ICOUNT favorecia threads com menos instruções já presentes, reduzindo a chance de um contexto dominar a janela. O modelo chegou a 5,4 instruções por ciclo e 2,5 vezes a vazão de um superescalar comparável com oito threads, com menos de 2% de perda em um único thread.
O relatório de 1997 acrescentou SPEC95 e SPLASH-2: aproximadamente 6,2 IPC em multiprogramação e 6,1 em programas paralelos com oito threads, documentando conflitos de cache, TLB e previsão. A comparação com um multiprocessador em chip modelado revelou a troca: compartilhamento dinâmico recupera recursos dispersos; partição estática oferece outro limite de isolamento.
Crédito coletivo e legado exato
A página da Universidade de Washington lista Eggers e Levy como docentes, Tullsen e Lo como estudantes, e Emer e Stamm como colaboradores da Digital Equipment Corporation. Eggers foi decisiva, mas não uma inventora solitária. Mais tarde, a Intel comercializou o princípio como Hyper-Threading. O artigo de 1995 recebeu o reconhecimento Test of Time da ISCA em 2010; Eggers recebeu o Eckert-Mauchly Award de 2018 por contribuições ao SMT e ao compartilhamento e coerência multiprocessador.
Os prêmios demonstram influência, não vantagem universal. A conclusão durável é que SMT transforma oportunidade ociosa em capacidade compartilhada e disputada. Seu valor depende da máquina, dos vizinhos e da métrica.
Fontes
- Artigo da ISCA de 1995
- SMT implementável, 1996
- Relatório da UW de 1997
- De paralelismo entre threads a paralelismo entre instruções
- Projeto SMT da Universidade de Washington
- Página de Susan Eggers
- Test of Time da ISCA de 2010
- Anúncio da ISCA de 2018
- Registro ACM do Eckert-Mauchly
- DOI do artigo de 1995
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance
