Este artigo resulta, no todo ou em parte, de uma tradução do artigo «Lion Cove» na Wikipédia em inglês, na versão original. |
Lion Cove é uma arquitetura de núcleo de CPU x86 de 64 bits projetada pela Intel. O núcleo Lion Cove é usado nos processadores Core Ultra Series 2 Arrow Lake e Lunar Lake.
A Lion Cove é uma arquitetura do núcleo de desempenho destinada a fornecer alto desempenho computacional com unidades de execução inteira e vetorial mais largas, busca mais larga e frequências de núcleos aumentadas em comparação com as arquiteturas de E-core otimizadas para densidade da Intel. A Intel afirma um aumento de 14% nas instruções por ciclo (IPC) com o P-core da Lion Cove sobre a Redwood Cove. A Intel abordou o processo de design da Lion Cove com a intenção de "remover qualquer transistor do design que não contribui diretamente para a produtividade", simplificando o projeto do núcleo para se concentrar em single-threading e na eficiência da área do núcleo. Ori Lempel serviu como engenheiro principal sênior para o projeto do P-core Lion Cove.
O front-end do núcleo Lion Cove para busca, decodificação e emissão de instruções foi tornado mais largo e profundo. Existe uma decodificação de oito vias de instruções da fila de instruções, em vez da decodificação de seis vias na Redwood Cove. Da mesma forma, o motor fora de ordem da Lion Cove usa uma fila de oito vias de alocação/renomeamento, em vez da fila de seis vias da Redwood Cove. O motor fora de ordem dividiu os renomeadores e agendadores em domínios de inteiros e vetores dedicados, o que permite à Intel modificar cada um desses domínios de forma independente em projetos futuros sem exigir um redesenho completo do motor fora de ordem. Ambos esses domínios têm seu próprio acesso individual à fila de micro-operações. O tamanho maior do cache de operações e a fila mais longa beneficiam a eficiência, pois mais micro-operações sendo armazenadas no cache maior não exigem que a lógica de decodificação seja ativada novamente.
| Redwood Cove | Lion Cove | |
|---|---|---|
| Decodificação | 6 vias | 8 vias |
| Alocação/Renomeamento | 6 vias | 8 vias |
| Aposentadoria | 8 de largura | 12 de largura |
| Janelas de instruções profundas | 512 | 576 |
| Portas de execução | 12 | 18 |
| Cache de operações | 4096 entradas 8 vias |
5250 entradas 12 vias |
| Fila de operações | 144 entradas | 192 entradas |
A predição de desvio foi fortalecida no Lion Cove com o bloco de predição do núcleo sendo 8 vezes mais largo do que na Redwood Cove. O preditor de desvio em um núcleo tenta prever o resultado quando existem caminhos de código divergentes ou desvios. O cache L0 do Branch Target Buffer (BTB) da Lion Cove foi duplicado para 256 entradas para armazenar um maior número de endereços alvos para um desvio tomado que pode ser usado para ajudar a prever o próximo desvio e para diminuir o número de erros.
| Redwood Cove | Lion Cove | |
|---|---|---|
| L0 BTB | 128 | 256 |
| L1 BTB | 5K | 6K |
| L2 BTB | 12K | 12K |
A Lion Cove aumenta o número de unidades de lógica aritmética inteira (ALU) para seis. A Redwood Cove continha cinco ALUs que usavam um pipe de 256 bits de largura. O número de unidades de multiplicação de números inteiros aumentou de um para três, o que significa que o núcleo pode executar mais de uma operação de multiplicações de números inteiras por ciclo.
O design do motor vetorial da Intel na Lion Cove agora se assemelha mais ao usado pela AMD desde a Zen com quatro pipes para ponto flutuante e para a execução de vetores. Dois desses pipes lidam com multiplicações de pontos flutuantes e multiplicações-adições, enquanto os outros dois pipes lidam com adições de pontos flutuantes. O número de divisores de ponto flutuante aumentou de um para dois com a taxa de transferência melhorada. Para lidar com as instruções de ordenamento de vetores, o motor vetorial contém quatro ALUs SIMD, em vez de três na Redwood Cove.
A Lion Cove suporta instruções AVX-512, mas é desativado em gerações de processadores heterogêneos como Arrow Lake e Lunar Lake. Isto não é diferente da Golden Cove, Raptor Cove ou Redwood Cove que tinham o seu suporte ao AVX-512 desativado em todos os produtos heterogêneos que não são destinados aos servidores.
A Lion Cove introduz uma hierarquia de cache expandida com quatro níveis de cache em vez de três. Com SKUs Broadwell selecionados em 2015, a Intel adicionou uma eDRAM de 128 MB que atuou como um cache de quarto nível. No entanto, esta eDRAM não era um cache tradicional, pois foi colocada em um die separado como uma forma de memória mais lenta compartilhada entre os núcleos do CPU e dos gráficos com o objetivo de diminuir as requisições de acesso à memória. O cache L3 da Broadwell tinha a latência por ciclo três vezes menor e mais do que o triplo da largura de banda em comparação com a eDRAM dela. Em termos de adição de um novo nível de cache tradicional, a última vez que a Intel fez isso foi em 2003 com o cache L3 no Pentium 4 Extreme Edition.
| Cache | Redwood Cove | Lion Cove | |
|---|---|---|---|
| L0D | Tamanho | 48 KB | 48 KB |
| Associatividade | 12 vias | 12 vias | |
| Latência | 5 ciclos | 4 ciclos | |
| Largura de banda | 128 B/clk | 128 B/clk | |
| L0I | Tamanho | 64 KB | 64 KB |
| Associatividade | 6 vias | 16 vias | |
| Latência | ? ciclos | ? ciclos | |
| Largura de banda | 32 B/clk | 128 B/clk | |
| L1 | Tamanho | 192 KB | |
| Associatividade | 12 vias | ||
| Latência | 9 ciclos | ||
| Largura de banda | 2×64 B/clk | ||
| L2 | Tamanho | 2 MB | 2.5 / 3 MB Lunar / Arrow |
| Associatividade | 16 vias | 10 vias | |
| Latência | 16 ciclos | 17 ciclos | |
| Largura de banda | ? B/clk | 2×64 B/clk | |
| L3 | Tamanho | 4 MB | 4 MB |
| Associatividade | 12 vias | 12 vias | |
| Latência | 75 ciclos | 51 ciclos | |
| Largura de banda | 32 B/clk leitura 32 B/clk escrita |
32 B/clk leitura 32 B/clk escrita | |
Os caches L0 da Lion Cove são o que anteriormente eram conhecidos como caches de dados e instruções L1 em qualquer outra arquitetura de núcleo da CPU. Embora a Intel mantenha os maiores tamanhos de cache L0 nas arquiteturas principais recentes, elas conseguiram reduzir a latência de carga para uso em quatro ciclos, não visto desde a Skylake, em vez de cinco ciclos na Redwood Cove.
O novo cache L1 de 192 KB no núcleo Lion Cove atua como um cache de buffer de nível médio entre os caches de dados e instruções L0 dentro do núcleo e o cache L2 fora do núcleo. Ele é focado em diminuir a latência no caso de erros no cache de dados L0 em vez de precisar acessar o cache L2. O acesso a dados no cache L1 vem com uma latência de nove ciclos, que é quase metade da latência que vem com o acesso ao cache L2.
O cache L2 é importante para a arquitetura do núcleo Lion Cove, pois a dependência da Intel no cache L2 consiste em isolar os núcleos do desempenho lento do cache L3. O Lion Cove foi concebido para acomodar caches L2 configuráveis de 2,5 MB a 3 MB, dependendo do produto. A implementação do Lion Cove no Lunar Lake contém um cache L2 de 2,5 MB enquanto a variante Lion Cove no Arrow Lake contém um cache L2 de 3 MB. O cache L2 maior do Lion Cove continua a tendência da Intel de aumentar o tamanho do cache L2 para as últimas gerações de seus P-cores, como Golden Cove, Raptor Cove e Redwood Cove. A arquitetura do P-core da geração anterior Redwood Cove apresentava 2 MB de cache L2. No entanto, o aumento do tamanho do cache geralmente traz maior latência. O cache L2 do Lion Cove tem uma latência de 17 ciclos, em vez da latência de 16 ciclos do Redwood Cove. Teoricamente, o cache L2 pode fornecer uma largura de banda de 110 bytes por ciclo, mas isso foi limitado a 64 bytes por ciclo no Lunar Lake para economizar energia.
A largura de banda de leitura quando um único núcleo da Lion Cove acessa o cache L3 regressou de 16 bytes por ciclo com a Redwood Cove para 10 bytes por ciclo para a Lion Cove. Apesar desta largura de banda menor na leitura e escrita de dados, a latência da Lion Cove acessando os dados no L3 foi reduzida de 75 ciclos para 51 ciclos no Lunar Lake. No entanto, a Lion Cove no Arrow Lake sofre de latência muito maior em 84 ciclos devido a um design de barramento em anel mais longo, pois o cache L3 dele está sendo compartilhado por seus P-cores e E-cores. O cache L3 do Lunar Lake é exclusivo para seus quatro P-cores Lion Cove, enquanto seus quatro E-cores estão em uma "ilha" separada sem um cache L3.