O Intel i486 possui 8 KB de cache L1. O Intel Nehalem possui um cache de instruções L1 de 32 KB e um cache de dados L1 de 32 KB por núcleo.
A quantidade de cache L1 não aumentou quase na taxa em que a taxa de clock aumentou.
Por que não?
O Intel i486 possui 8 KB de cache L1. O Intel Nehalem possui um cache de instruções L1 de 32 KB e um cache de dados L1 de 32 KB por núcleo.
A quantidade de cache L1 não aumentou quase na taxa em que a taxa de clock aumentou.
Por que não?
Respostas:
30K de texto da Wikipedia não são tão úteis quanto uma explicação de por que um cache muito grande é menos ideal. Quando o cache fica muito grande, a latência para encontrar um item no cache (levando em consideração erros de cache) começa a se aproximar da latência de procurar o item na memória principal. Não sei quais proporções os projetistas de CPU pretendem, mas acho que é algo análogo à diretriz 80-20: Você gostaria de encontrar os dados mais comuns no cache 80% das vezes, e os outros 20 % do tempo você terá que ir para a memória principal para encontrá-lo. (ou quaisquer que sejam as proporções pretendidas pelos projetistas de CPU).
EDIT: Eu tenho certeza que não chega nem perto de 80% / 20%, então substitua X e 1-X. :)
Um fator é que as buscas L1 iniciam antes que as traduções TLB sejam concluídas, a fim de diminuir a latência. Com um cache suficientemente pequeno e alto o suficiente, os bits de índice para o cache serão os mesmos entre os endereços virtuais e físicos. Isso provavelmente diminui o custo de manter a coerência da memória com um cache fisicamente indexado e com etiqueta física.
O tamanho do cache é influenciado por vários fatores:
Velocidade dos sinais elétricos (deve ser, se não a velocidade da luz, algo da mesma ordem de magnitude):
Custo econômico (circuitos em diferentes níveis de cache podem ser diferentes e determinados tamanhos de cache podem não ser úteis)
Se o tamanho do cache L1 não mudou após 64kb, é porque não valia mais. Observe também que agora existe uma "cultura" maior sobre o cache e muitos programadores escrevem códigos "compatíveis com o cache" e / ou usam instruções pré-técnicas para reduzir a latência.
Tentei uma vez criar um programa simples que estava acessando locais aleatórios em uma matriz (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, uma vez que isso era feito com muita frequência, tão simples O programa estava esgotando toda a largura de banda, deixando poucos recursos para o sistema operacional.
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 o cache foi projetado para reduzir a comunicação lenta do barramento com a RAM.
Como a velocidade do processador tem aumentado rapidamente, o cache do mesmo tamanho deve executar cada vez mais rápido para 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, espero que isso não seja lamentavelmente errado)
Do cache L1 :
O cache de nível 1, ou cache primário, está na CPU e é usado para armazenamento temporário de instruções e dados organizados em blocos de 32 bytes. O cache primário é a forma mais rápida de armazenamento. Como está embutido no chip com uma interface de estado de espera zero (atraso) para a unidade de execução do processador, seu tamanho é limitado .
A SRAM usa dois transistores por bit e pode armazenar dados sem assistência externa, desde que seja fornecida energia ao circuito. Isso é contrastado com a RAM dinâmica (DRAM), que deve ser atualizada várias vezes por segundo para manter o conteúdo dos dados.
O processador P55 MMX da Intel, lançado no início de 1997, destacou-se pelo aumento no tamanho do seu cache de Nível 1 para 32 KB. Os chips AMD K6 e Cyrix M2 lançados no final daquele ano aumentaram ainda mais a aposta, fornecendo caches de nível 1 de 64 KB. 64Kb permaneceu o tamanho padrão do cache L1, embora vários processadores com vários núcleos possam utilizá-lo de maneira diferente.
EDIT: Observe que esta resposta é de 2009 e as CPUs evoluíram enormemente nos últimos 10 anos. Se você chegou a este post, não leve todas as nossas respostas aqui muito a sério.
Na verdade, o tamanho do cache L1 é o maior gargalo de velocidade nos computadores modernos. Os tamanhos de cache L1 pateticamente minúsculos podem ser o ponto alto do preço, mas não o desempenho. O cache L1 pode ser acessado em frequências de GHz, o mesmo que nas operações do processador, ao contrário do acesso à RAM 400x mais lento. É caro e difícil de implementar no projeto bidimensional atual, no entanto, é tecnicamente factível, e a primeira empresa que faz isso com sucesso terá computadores 100 vezes mais rápidos e ainda funcionando legal, algo que produziria grandes inovações em muitos atualmente são acessíveis apenas através de configurações ASIC / FPGA caras e difíceis de programar. Algumas dessas questões estão relacionadas a questões de propriedade intelectual / propriedade intelectual e ganância corporativa que se estendem por décadas, onde um grupo insignificante e ineficaz de engenheiros é o único com acesso ao funcionamento interno, e a quem são dadas ordens marcantes para espremer o absurdo protecionista ofuscado e econômico. A pesquisa excessivamente privatizada sempre leva a uma estagnação ou limitação tecnológica (como vimos no setor aeroespacial e de automóveis pelos grandes fabricantes e em breve será farmacêutico). A regulamentação de patentes e segredos comerciais de código aberto e mais sensata que beneficia os inventores e o público (em vez dos chefes e acionistas da empresa) ajudaria muito aqui. Deveria ser um acéfalo para o desenvolvimento criar caches L1 muito maiores, e isso deveria e poderia ter sido desenvolvido décadas atrás. Estaríamos muito mais à frente nos computadores e em muitos campos científicos, se os tivéssemos. e quem recebe ordens de marcha para espremer as bobagens protecionistas ofuscadas e econômicas. A pesquisa excessivamente privatizada sempre leva a uma estagnação ou limitação tecnológica (como vimos no setor aeroespacial e de automóveis pelos grandes fabricantes e em breve será farmacêutico). A regulamentação de patentes e segredos comerciais de código aberto e mais sensata que beneficia os inventores e o público (em vez dos chefes e acionistas da empresa) ajudaria muito aqui. Deveria ser um acéfalo para o desenvolvimento criar caches L1 muito maiores, e isso deveria e poderia ter sido desenvolvido décadas atrás. Estaríamos muito mais à frente nos computadores e em muitos campos científicos, se os tivéssemos. e quem recebe ordens de marcha para espremer as bobagens protecionistas ofuscadas e econômicas. A pesquisa excessivamente privatizada sempre leva a uma estagnação ou limitação tecnológica (como vimos no setor aeroespacial e de automóveis pelos grandes fabricantes e em breve será farmacêutico). A regulamentação de patentes e segredos comerciais de código aberto e mais sensata que beneficia os inventores e o público (em vez dos chefes e acionistas da empresa) ajudaria muito aqui. Deveria ser um acéfalo para o desenvolvimento criar caches L1 muito maiores, e isso deveria e poderia ter sido desenvolvido décadas atrás. Estaríamos muito mais à frente nos computadores e em muitos campos científicos, se os tivéssemos. A pesquisa excessivamente privatizada sempre leva a uma estagnação ou limitação tecnológica (como vimos no setor aeroespacial e de automóveis pelos grandes fabricantes e em breve será farmacêutico). A regulação de patentes e segredos comerciais mais sensata e de código aberto que beneficia os inventores e o público (em vez dos chefes e acionistas da empresa) ajudaria muito aqui. Deveria ser um acéfalo para o desenvolvimento criar caches L1 muito maiores, e isso deveria e poderia ter sido desenvolvido décadas atrás. Estaríamos muito mais à frente nos computadores e em muitos campos científicos, se os tivéssemos. A pesquisa excessivamente privatizada sempre leva a uma estagnação ou limitação tecnológica (como vimos no setor aeroespacial e de automóveis pelos grandes fabricantes e em breve será farmacêutico). A regulação de patentes e segredos comerciais mais sensata e de código aberto que beneficia os inventores e o público (em vez dos chefes e acionistas da empresa) ajudaria muito aqui. Deveria ser um acéfalo para o desenvolvimento criar caches L1 muito maiores, e isso deveria e poderia ter sido desenvolvido décadas atrás. Estaríamos muito mais à frente nos computadores e em muitos campos científicos, se os tivéssemos. Deveria ser um acéfalo para o desenvolvimento criar caches L1 muito maiores, e isso deveria e poderia ter sido desenvolvido décadas atrás. Estaríamos muito mais à frente nos computadores e em muitos campos científicos, se os tivéssemos. Deveria ser um acéfalo para o desenvolvimento criar caches L1 muito maiores, e isso deveria e poderia ter sido desenvolvido décadas atrás. Estaríamos muito mais à frente nos computadores e em muitos campos científicos, se os tivéssemos.