Por que o tamanho do cache L1 não aumentou muito nos últimos 20 anos?

28

O Intel i486 tem 8 KB de cache L1. O Intel Nehalem tem 32 KB de cache de instrução L1 e 32 KB de cache de dados L1 por núcleo.

A quantidade de cache L1 não aumentou quase na taxa que o clockrate aumentou.

Por que não?

    
por eleven81 18.11.2009 / 17:45

6 respostas

13

30K de texto da Wikipedia não é tão útil quanto uma explicação de porque um cache muito grande é menos ideal. Quando o cache fica muito grande, a latência para encontrar um item no cache (fatoração de erros de cache) começa a se aproximar da latência de procurar o item na memória principal. Eu não sei a que proporções os projetistas de CPU pretendem, mas eu acho que é algo análogo à diretriz 80-20: você gostaria de encontrar seus dados mais comuns no cache 80% do tempo, e os outros 20 % do tempo você terá que ir para a memória principal para encontrá-lo. (ou qualquer que seja a proporção pretendida pelos designers da CPU).

EDIT: Tenho certeza que não está perto de 80% / 20%, então substitua X e 1-X. :)

    
por 18.11.2009 / 17:59
8

Um fator é que o L1 busca começar antes que as traduções do TLB sejam concluídas para diminuir a latência. Com um cache pequeno e alto o suficiente, os bits de índice do cache serão os mesmos entre os endereços virtual e físico. Isso provavelmente diminui o custo de manter a coerência de memória com um cache fisicamente indexado e virtualmente indexado.

    
por 26.05.2013 / 06:19
6

Eu acredito que pode ser resumido simplesmente afirmando que quanto maior o cache, mais lento será o acesso. Portanto, um cache maior simplesmente não ajuda, pois um cache é projetado para reduzir a comunicação lenta do barramento para a RAM.

Como a velocidade do processador vem aumentando rapidamente, o cache do mesmo tamanho deve ser executado mais rápido e mais rápido para poder acompanhá-lo. Portanto, os caches podem ser significativamente melhores (em termos de velocidade), mas não em termos de armazenamento.

(Eu sou um cara de software, então espero que isso não esteja errado)

    
por 18.11.2009 / 17:57
6

O tamanho do cache é influenciado por muitos fatores:

  1. Velocidade dos sinais elétricos (deve ser, se não a velocidade da luz, algo da mesma ordem de grandeza):

    • 300 metros em um microssegundo.
    • 30 centímetros em um nanossegundo.
  2. Custo econômico (circuitos em diferentes níveis de cache podem ser diferentes e determinados tamanhos de cache podem não ser valiosos)

    • A duplicação do tamanho do cache não duplica o desempenho (mesmo que a física permitisse que o tamanho funcionasse) para tamanhos pequenos, o dobro dá muito mais do que o dobro do desempenho, para tamanhos grandes o dobro do tamanho do cache quase não oferece desempenho extra.
    • Na wikipedia, você pode encontrar um gráfico mostrando, por exemplo, como unworth está criando caches maiores que 1MB (na verdade, caches maiores existem, mas você deve ter em conta que esses são núcleos de multiprocessadores).
    • Para caches L1, deve haver alguns outros gráficos (que os fornecedores não exibem) que sejam convenientes para 64 Kb como tamanho.

Se o tamanho do cache L1 não mudou depois de 64kb, é porque ele não vale mais. Observe também que agora há uma "cultura" maior sobre o cache e muitos programadores escrevem códigos "compatíveis com o cache" e / ou usam instruções de pré-busca para reduzir a latência.

Eu tentei criar um programa simples que estava acessando locais aleatórios em um array (de vários MegaBytes): esse programa quase congelou o computador porque, para cada leitura aleatória, uma página inteira era movida da RAM para o cache e, como isso era feito com muita frequência, esse programa simples estava esgotando todas as bandas, deixando muito poucos recursos para o SO.

    
por 03.01.2014 / 17:39
3

De cache L1 :

The Level 1 cache, or primary cache, is on the CPU and is used for temporary storage of instructions and data organised in blocks of 32 bytes. Primary cache is the fastest form of storage. Because it's built in to the chip with a zero wait-state (delay) interface to the processor's execution unit, it is limited in size.

SRAM uses two transistors per bit and can hold data without external assistance, for as long as power is supplied to the circuit. This is contrasted to dynamic RAM (DRAM), which must be refreshed many times per second in order to hold its data contents.

Intel's P55 MMX processor, launched at the start of 1997, was noteworthy for the increase in size of its Level 1 cache to 32KB. The AMD K6 and Cyrix M2 chips launched later that year upped the ante further by providing Level 1 caches of 64KB. 64Kb has remained the standard L1 cache size, though various multiple-core processors may utilise it differently.

    
por 18.11.2009 / 17:55
-3

Na verdade, o tamanho do cache L1 é o maior gargalo para a velocidade nos computadores modernos. Os tamanhos de cache L1 pateticamente pequenos podem ser o ponto de venda pelo preço, mas não o desempenho. O cache L1 pode ser acessado em freqüências GHz, o mesmo que as operações do processador, ao contrário do acesso RAM 400x mais lento. É caro e difícil de implementar no atual projeto bidimensional, no entanto, é tecnicamente factível, e a primeira empresa que o faz com sucesso, terá computadores 100 vezes mais rápidos e ainda funcionando legal, algo que produziria grandes inovações em muitos campos e são apenas accessbile atualmente através de configurações caras e difíceis de programar ASIC / FPGA. Algumas dessas questões têm a ver com questões proprietárias / IP e ganância corporativa que abrangem décadas, onde um grupo de engenheiros insignificante e ineficiente são os únicos com acesso ao funcionamento interno, e que recebem principalmente ordens para espremer custos Um verdadeiro absurdo protecionista ofuscado. A pesquisa excessivamente privatizada sempre leva a essa estagnação ou estrangulamento tecnológico (como vimos nos setores aeroespaciais e de automóveis pelos grandes fabricantes e que em breve será a farmacêutica). A fonte aberta e a regulamentação mais sensata sobre patentes e segredos comerciais que beneficiam os inventores e o público (e não os chefes e acionistas da empresa) ajudariam muito aqui. Deveria ser óbvio para o desenvolvimento criar caches L1 muito maiores e isso deveria e poderia ter sido desenvolvido décadas atrás. Nós estaríamos muito mais à frente em computadores e muitos campos científicos usando-os se tivéssemos.

    
por 16.06.2017 / 09:49