Multinúcleo e Multiprocessadores em Chip
Um multiprocessador em chip integra vários núcleos de processador em um único die, compartilhando caches e uma interface de memória, de modo que o paralelismo em nível de thread, em vez de uma maior velocidade de clock, impulsiona o crescimento do desempenho.
Definition
Um processador multinúcleo, ou multiprocessador em chip, é um único circuito integrado contendo múltiplos núcleos de processador independentes que compartilham alguns recursos on-chip e um sistema de memória, projetado para executar múltiplos threads ou programas concorrentemente.
Scope
Este tópico aborda a organização de chips multinúcleo: contagem e heterogeneidade de núcleos, hierarquias de cache compartilhadas e privadas, interconexões on-chip e como o desempenho escala com os núcleos sob a lei de Amdahl. Ele trata da estrutura de hardware de sistemas multinúcleo. Exclui os mecanismos de coerência e consistência compartilhados com outros tópicos de memória compartilhada (memória-compartilhada-e-coerência, protocolos de coerência de cache) e o motor de núcleo único (microarquitetura do processador).
Core questions
- Por que os processadores passaram de núcleos únicos rápidos para múltiplos núcleos?
- Como os núcleos, caches e interconexão são organizados em um chip?
- Como a lei de Amdahl limita o ganho de velocidade ao adicionar núcleos?
- Quando os núcleos heterogêneos são preferíveis aos idênticos?
Key concepts
- multiprocessador em chip
- paralelismo em nível de thread
- caches compartilhadas vs. privadas
- interconexão on-chip
- contagem e escalonamento de núcleos
- núcleos heterogêneos (big.LITTLE)
- lei de Amdahl
- limites de energia e térmicos
Key theories
- Lei de Amdahl para escalonamento multinúcleo
- A fração serial de uma carga de trabalho limita o ganho de velocidade alcançável pela adição de núcleos; este limite explica por que o simples aumento da contagem de núcleos produz retornos decrescentes e motiva a redução de gargalos seriais e o uso de designs heterogêneos.
Mechanisms
Um chip multinúcleo coloca múltiplos núcleos em um único die, tipicamente com caches de primeiro nível privadas, uma cache de último nível compartilhada e uma rede ou anel on-chip conectando-os aos controladores de memória. As cargas de trabalho ganham desempenho executando threads em diferentes núcleos. Designs heterogêneos combinam núcleos grandes de alto desempenho com núcleos pequenos e eficientes, agendando o trabalho para o núcleo mais apropriado para equilibrar velocidade e energia.
Clinical relevance
O multinúcleo é o design de processador dominante hoje, de telefones a servidores, porque o escalonamento de frequência estagnou sob limites de energia. Sua ascensão transferiu o ônus do desempenho para o software paralelo: as aplicações devem ser multithreaded para se beneficiarem, tornando a concorrência uma preocupação de programação mainstream e a lei de Amdahl uma restrição prática em sistemas reais.
History
Multiprocessadores em chip de pesquisa, como o Hydra de Stanford na década de 1990, anteciparam a era multinúcleo. A quebra do escalonamento de frequência por volta de 2004–2005 impulsionou as CPUs mainstream para designs de dois e, posteriormente, de muitos núcleos. Arquiteturas heterogêneas combinando núcleos de desempenho e eficiência tornaram-se comuns mais tarde, especialmente em processadores móveis e de laptop.
Debates
- Mais núcleos versus núcleos mais fortes
- Dada uma potência e área fixas, os projetistas debatem se devem adicionar muitos núcleos mais simples, menos núcleos poderosos ou uma mistura heterogênea; a melhor escolha depende de quão paralelas são as cargas de trabalho alvo, com a lei de Amdahl favorecendo núcleos fortes quando as frações seriais são significativas.
Key figures
- Gene Amdahl
- John L. Hennessy
- David A. Patterson
- Kunle Olukotun
Related topics
Seminal works
- hennessy2019
- amdahl1967
Frequently asked questions
- Por que dobrar o número de núcleos não dobra o desempenho?
- Pela lei de Amdahl, qualquer parte de um programa que deve ser executada serialmente limita o benefício de núcleos adicionados. A comunicação, sincronização e contenção por recursos compartilhados adicionam ainda mais sobrecarga, então o ganho de velocidade real é tipicamente bem abaixo do escalonamento linear ideal.
- O que são núcleos heterogêneos (big.LITTLE)?
- Designs heterogêneos combinam núcleos grandes de alto desempenho com núcleos menores e energeticamente eficientes no mesmo chip. O sistema agenda o trabalho exigente nos núcleos grandes e o trabalho leve ou em segundo plano nos núcleos pequenos, melhorando a eficiência energética sem sacrificar o desempenho de pico.