Estou tentando entender por que certas memórias de cache da CPU são mais rápidas que outras. Ao comparar a memória cache com algo como a memória principal, existem diferenças no tipo de memória (SRAM x DRAM) e problemas de localidade (no chip versus necessidade de atravessar um barramento de memória) que podem afetar a velocidade de acesso. Mas L1 e L2 geralmente estão no mesmo chip, ou pelo menos no mesmo dado, e acho que são o mesmo tipo de memória. Então, por que o L1 é mais rápido?
14
Respostas:
Não, eles não são o mesmo tipo de RAM, mesmo estando no mesmo chip que usa o mesmo processo de fabricação.
De todos os caches, o cache L1 precisa ter o tempo de acesso mais rápido possível (menor latência), em relação à quantidade de capacidade necessária para fornecer uma taxa de "acerto" adequada. Portanto, ele é construído usando transistores maiores e faixas metálicas mais amplas, trocando espaço e energia por velocidade. Os caches de nível superior precisam ter capacidades mais altas, mas podem ser mais lentos, portanto, usam transistores menores que são compactados com mais força.
fonte
L1 é geralmente usado como armazenamento para instruções decodificadas, enquanto L2 é um cache geral para um único núcleo. Quanto mais baixo o cache, menor o tamanho e mais rápido o tamanho geralmente. Como regra geral para processadores de PC:
Cache L1: acesso ao ciclo de 2-3 horas
Cache L2: ~ 10 acessos de ciclo de relógio
Cache L3: ~ 20-30 acesso ao ciclo do relógio
Cite aqui da resposta "Pinhedd".
fonte
Existem várias razões pelas quais a velocidade é inversamente proporcional ao tamanho. A primeira que vem à mente é a dominação física dos condutores, onde a propagação do sinal é limitada a algum fator da velocidade da luz. Uma operação pode levar o tempo necessário para que um sinal elétrico percorra a maior distância dentro do bloco de memória e vice-versa. Outro motivo relacionado é a separação dos domínios do relógio. Cada CPU executa seu próprio gerador de clock, o que permite que a CPU seja executada em relógios de vários GHz. O cache de nível 1 é executado e é sincronizado com o relógio da CPU, que é o mais rápido do sistema. O cache de nível 2, por outro lado, deve atender a muitas CPUs e está sendo executado em um domínio de clock diferente (mais lento). Não apenas o relógio L2 mais lento (bloco maior), mas cruzar o limite do domínio do relógio adiciona outro atraso. É claro que existem os problemas de fan-out (já mencionados).
fonte
Além das características inerentes ao desempenho, a localidade também tem um papel (L1 está mais próximo da CPU). De acordo com o que todo programador deve saber sobre memória :
fonte