Os processadores em cache L1, L2 e L3 são todos feitos de SRAM?


10

Os caches do processador L1, L2 e L3 são todos feitos de SRAM? Se verdadeiro, por que L1 é mais rápido que L2 e L2 é mais rápido que L3? Não entendi essa parte quando li sobre eles.


Pergunta relacionada: Por que precisamos de vários níveis de memória cache? . Também um pouco relacionado: O que é realmente o cache multinível nos processadores? . Pelo seu comentário, vejo que você já encontrou a última pergunta.
Paul A. Clayton

Respostas:


12

Em geral , todos eles são implementados com SRAM.

(Os chips POWER e zArchitecture da IBM usam memória DRAM para L3. Isso é chamado DRAM incorporado porque é implementado no mesmo tipo de tecnologia de processo que a lógica, permitindo que a lógica rápida seja integrada no mesmo chip que a DRAM. o chip L3 usou a eDRAM; o POWER7 possui o L3 no mesmo chip que os núcleos de processamento.)

Embora eles usem SRAM, nem todos eles usam o mesmo design de SRAM. A SRAM para L2 e L3 é otimizada para tamanho (para aumentar a capacidade devido ao tamanho limitado do chip fabricável ou reduzir o custo de uma determinada capacidade), enquanto a SRAM para L1 tem mais probabilidade de ser otimizada para velocidade.

Mais importante, o tempo de acesso está relacionado ao tamanho físico do armazenamento. Com um layout bidimensional, pode-se esperar que a latência do acesso físico seja aproximadamente proporcional à raiz quadrada da capacidade. (A arquitetura de cache não uniforme explora isso para fornecer um subconjunto de cache com menor latência. As fatias L3 dos processadores Intel recentes têm um efeito semelhante; um hit na fatia local tem latência significativamente menor.) Esse efeito pode tornar um cache DRAM mais rápido. do que um cache SRAM em altas capacidades porque a DRAM é fisicamente menor.

Outro fator é que a maioria dos caches L2 e L3 usa acesso serial de tags e dados, onde a maioria dos caches L1 acessa tags e dados em paralelo. Essa é uma otimização de energia (as taxas de perda de L2 são mais altas que as taxas de perda de L1, portanto, o acesso a dados é mais provável que seja desperdiçado trabalho; o acesso a dados de L2 geralmente requer mais energia - relacionado à capacidade -; e os caches de L2 geralmente têm maior associatividade o que significa que mais entradas de dados precisariam ser lidas especulativamente). Obviamente, ter que esperar a correspondência da tag antes de acessar os dados aumentará o tempo necessário para recuperar os dados. (O acesso L2 também normalmente só começa depois que uma falta L1 é confirmada, portanto, a latência da detecção de falta L1 é adicionada à latência total de acesso de L2.)

Além disso, o cache L2 está fisicamente mais distante do mecanismo de execução. Colocar o cache de dados L1 próximo ao mecanismo de execução (para que o caso comum de ocorrência de L1 seja rápido) geralmente significa que L2 deve ser colocado mais longe.


Ótima resposta. Mas não concordo com sua afirmação de que as taxas de erro L2 são mais altas que as taxas de erro L1. À medida que avançamos mais baixo na hierarquia de memória, temos estruturas maiores que fornecem menos erros, mas com maior latência.
Harshavardhan Ramanna

@HarshavardhanRamanna Sim, o aumento de capacidade e associatividade ajuda a errar a taxa, mas os níveis mais baixos filtram os acessos (a transferência tradicional de um bloco inteiro de L2 filtra a localidade espacial de curto prazo dentro do bloco; o acerto conta apenas para um acesso em L2 enquanto o o próprio bloco provavelmente fornecerá hits em L1 para acessos adicionais). A taxa total de erros diminui (por exemplo, um L2 com uma taxa de acerto decente de 80% e um L1 com taxa de acerto de 95% obtém uma taxa de acerto total de 99%).
Paul A. Clayton
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.