Hyperthreading - 13/11/2002

Este é o Disque Piropo de quarta-feira, treze de novembro. Obrigado por estar conosco. Hoje vamos falar de hyperthreading, uma tecnologia revolucionária que permite a máquinas com um único processador se comportarem como se tivessem dois. Um programa é uma sucessão de tarefas, ou rotinas. Nos aplicativos tradicionais elas eram executadas uma após a outra: primeiro digitava-se o texto, depois formatava-se e finalmente corrigia-se a ortografia. Nos aplicativos multilineares modernos elas podem ser executadas simultaneamente. O Word, por exemplo, é capaz de corrigir erros de digitação enquanto você continua acrescentando texto, além de formatar o documento, tudo ao mesmo tempo. Para executar mais de uma tarefa simultaneamente usa-se dois recursos. As máquinas convencionais, com uma única CPU, adotam o esquema denominado "fatias de tempo" ("time slices"), parecido com aquele usado pelos malabaristas que jogam para cima dez objetos e os vão passando de uma mão para a outra, lançando-os novamente para o alto sem deixar nenhum cair. Parece que estão segurando todos ao mesmo tempo, quando na verdade manejam um de cada vez. Na multitarefa tipo time slice, o sistema operacional entrega o "foco" a uma tarefa, à qual cede alguns milhares de ciclos de máquina, enquanto as demais esperam. Em seguida, aquela tarefa é "congelada" e o foco passa para a seguinte, que recebe sua fatia de tempo, e assim sucessivamente. As tarefas são executadas uma de cada vez, mas a passagem de uma para a outra e o retorno à primeira são feitos tão rapidamente que tem-se a impressão que a execução é simultânea. - A outra maneira de executar tarefas simultaneamente exige máquinas "multiprocessadas", cujas placas-mãe abrigam mais de uma CPU. Nelas, as tarefas são executadas efetivamente ao mesmo tempo, cada uma em sua CPU, gerenciadas pelo sistema operacional. Alguns microprocessadores adotam a chamada "arquitetura superescalar", com mais de uma unidade de processamento de dados no interior da mesma CPU. Cada unidade constitui uma "pipeline". A tecnologia hyperthreading fará com que cada pipeline funcione como um microprocessador independente. O resultado disso é que a máquina se comporta como se ostentasse duas CPUs e tenha um desempenho equivalente ao das máquinas multiprocessadas. Se você não sabia o que é hypertreading, prepare-se: vai ouvir falar muito dela nos próximos dias. Boa sorte e até o próximo DisquePiropo