Numa época em que os processadores multi-nucleares estavam começando a chegar ao mercado, os softwares ainda não eram otimizados para tirar o proveito destas unidades computacionais e por isto, víamos situações “atípicas” onde sistemas com unidades single-core ofereciam até mesmo melhor performance para lidar com estas aplicações. Então, a AMD teve a brilhante idéia de desenvolver um projeto, que consistia em tratar as unidades multi-cores como uma única CPU single-core virtual. O problema é que conforme os softwares foram evoluindo para tirar proveito das unidades multi-cores, este projeto deixou de fazer sentido…
“Intel has patented a technology it calls ‘Software Defined Supercore’ (SDC) that enables software to fuse the capabilities of multiple cores to assemble a virtual ultra-wide ‘supercore’ capable of improving single-thread performance, provided that it has enough parallel work. If the technology works as it is designed to, then Intel’s future CPUs could offer an single-thread performance in select applications that can use SDC. For now this is just a patent which may, or may not become a reality.”
— by Tom’s Hardware.
Só que não: a Intel patenteou uma nova tecnologia chamada “Software Defined Supercore” (SDC), que tem como objetivo aprimorar o desempenho de um único thread unindo vários núcleos menores para que trabalhem como se fossem um único e maior. A ideia é que, em vez de buscar velocidades de clock mais altas ou construir núcleos físicos maiores, o SDC agregue o poder de processamento de vários núcleos adjacentes para executar um único fluxo de instruções.
O conceito por trás do SDC é, de certa forma, o oposto do Hyper-Threading. Enquanto o Hyper-Threading permite que um único núcleo execute dois threads simultaneamente, o SDC permite que dois ou mais núcleos executem um único thread de forma cooperativa. A tecnologia divide o fluxo de instruções em pedaços e os distribui para os núcleos “fundidos”, que trabalham em conjunto com buffers especiais e caminhos de comunicação de baixa latência para garantir a ordem correta das instruções e a transferência de dados.
Essa abordagem visa aumentar o desempenho por Watt em cargas de trabalho de thread único, uma vez que permite que o processador alcance um maior número de instruções por ciclo (IPC) sem a necessidade de aumentar a tensão ou a frequência do núcleo. Para o sistema operacional, esses núcleos fundidos aparecem como um único núcleo lógico. No entanto, a implementação bem-sucedida dessa tecnologia representa um desafio significativo em termos de software e hardware, exigindo uma sincronização cuidadosa e mensagens inter-core de latência extremamente baixa.
Surpreso? Por incrível que pareça, não! Muito pelo contrário: a partir do momento em que a Intel resolveu aposentar o suporte para a tecnologia Hyper-Threading, já considerava a possibilidade da adoção de abordagens que simplificariam ainda mais, a utilização de unidades computacionais multi-nucleares. Além do mais, elas também se baseiam (ainda) no design big.LITTLE, as quais possuem muitos núcleos econômicos que na prática, não acrescentam muito na performance geral do sistema. Então, como será feita a implementação SDC?
Não sabemos. E desta vez, nem sequer me arrisco a prever… &;-D