Abrir
Fechar

Qual cache está dividida em duas partes. O que significa cache do processador, qual é a diferença entre L1, L2, L3. Embalagem e desembalagem

Os chips da maioria dos computadores desktop modernos têm quatro núcleos, mas os fabricantes de chips já anunciaram planos de migrar para seis núcleos, e processadores de 16 núcleos ainda não são incomuns para servidores de última geração hoje.

Quanto mais núcleos houver, maior será o problema de distribuição de memória entre todos os núcleos enquanto trabalham juntos ao mesmo tempo. Com o aumento do número de núcleos, é cada vez mais benéfico minimizar o tempo perdido no gerenciamento dos núcleos durante o processamento de dados - porque a velocidade de troca de dados fica atrás da velocidade do processador e do processamento de dados na memória. Você pode acessar fisicamente o cache rápido de outra pessoa ou pode acessar o seu próprio cache lento, mas economizando tempo de transferência de dados. A tarefa é complicada pelo fato de que a quantidade de memória solicitada pelos programas não corresponde claramente à quantidade de memória cache de cada tipo.

Fisicamente, apenas uma quantidade muito limitada de memória pode ser colocada o mais próximo possível do processador - o cache L1 do processador, cujo volume é extremamente insignificante. Daniel Sanchez, Po-An Tsai e Nathan Beckmann, pesquisadores do Laboratório de Ciência da Computação e Inteligência Artificial do Instituto de Tecnologia de Massachusetts, ensinaram um computador a configurar diferentes tipos de memória para uma hierarquia flexível de programas em tempo real. O novo sistema, denominado Jenga, analisa as necessidades volumétricas e a frequência de acesso do programa à memória e redistribui a potência de cada um dos 3 tipos de cache do processador em combinações que proporcionam maior eficiência e economia de energia.


Para começar, os pesquisadores testaram o aumento de desempenho ao combinar memória estática e dinâmica ao trabalhar em programas para um processador de núcleo único e obtiveram uma hierarquia primária - quando é melhor usar qual combinação. De 2 tipos de memória ou de um. Dois parâmetros foram avaliados: atraso do sinal (latência) e consumo de energia durante a operação de cada programa. Aproximadamente 40% dos programas começaram a funcionar pior com uma combinação de tipos de memória, o restante melhor. Depois de registrar quais programas “gostam” de desempenho misto e quais gostam de tamanho de memória, os pesquisadores construíram seu sistema Jenga.

Eles testaram virtualmente 4 tipos de programas em um computador virtual com 36 núcleos. Programas testados:

  • omnet - Objective Modular Network Testbed, biblioteca de simulação C e plataforma de ferramentas de simulação de rede (azul na imagem)
  • mcf - Meta Content Framework (cor vermelha)
  • astar - software de exibição de realidade virtual (verde)
  • bzip2 - arquivador (cor roxa)


A imagem mostra onde e como os dados de cada programa foram processados. As letras indicam onde cada aplicação é executada (uma por quadrante), as cores indicam onde seus dados estão localizados e o sombreado indica o segundo nível da hierarquia virtual, quando presente.

Níveis de cache

O cache da CPU é dividido em vários níveis. Para processadores universais - até 3. A memória mais rápida é o cache de primeiro nível - cache L1, pois está localizado no mesmo chip do processador. Consiste em um cache de instruções e um cache de dados. Alguns processadores sem cache L1 não podem funcionar. O cache L1 opera na frequência do processador e pode ser acessado a cada ciclo de clock. Muitas vezes é possível realizar múltiplas operações de leitura/gravação simultaneamente. O volume geralmente é pequeno - não mais que 128 KB.

O cache de segundo nível, L2, interage com o cache L1. É o segundo mais rápido. Geralmente está localizado no chip, como L1, ou próximo ao núcleo, como em um cartucho de processador. Em processadores mais antigos, um conjunto de chips na placa-mãe. Volume de cache L2 de 128 KB a 12 MB. Nos processadores multi-core modernos, o cache de segundo nível, localizado no mesmo chip, é uma memória separada - com um tamanho total de cache de 8 MB, cada núcleo representa 2 MB. Normalmente, a latência do cache L2 localizado no chip principal é de 8 a 20 ciclos de clock do núcleo. Em tarefas que envolvem numerosos acessos a uma área limitada de memória, por exemplo, um SGBD, sua utilização plena aumenta dez vezes a produtividade.

O cache L3 geralmente é ainda maior, embora um pouco mais lento que o cache L2 (devido ao fato de o barramento entre L2 e L3 ser mais estreito que o barramento entre L1 e L2). L3 geralmente está localizado separadamente do núcleo da CPU, mas pode ser grande - mais de 32 MB. O cache L3 é mais lento que os caches anteriores, mas ainda mais rápido que a RAM. Em sistemas multiprocessadores é de uso comum. O uso de um cache de terceiro nível justifica-se em uma gama muito restrita de tarefas e pode não apenas não proporcionar um aumento no desempenho, mas, pelo contrário, levar a uma diminuição geral no desempenho do sistema.

Desativar o cache de segundo e terceiro níveis é mais útil em problemas matemáticos quando a quantidade de dados é menor que o tamanho do cache. Nesse caso, você pode carregar todos os dados no cache L1 de uma só vez e depois processá-los.


Jenga reconfigura periodicamente as hierarquias virtuais no nível do sistema operacional para minimizar a troca de dados, levando em consideração as limitações de recursos e o comportamento do aplicativo. Cada reconfiguração consiste em quatro etapas.

Jenga distribui dados não apenas dependendo de quais programas estão sendo despachados - aqueles que amam memória grande de velocidade única ou aqueles que amam a velocidade de caches mistos, mas também dependendo da proximidade física das células de memória dos dados que estão sendo processados. Independentemente do tipo de cache que o programa exige por padrão ou por hierarquia. O principal é minimizar o atraso do sinal e o consumo de energia. Dependendo de quantos tipos de memória o programa “gosta”, Jenga modela a latência de cada hierarquia virtual com um ou dois níveis. As hierarquias de dois níveis formam uma superfície, as hierarquias de nível único formam uma curva. Jenga então projeta o atraso mínimo nas dimensões de VL1, resultando em duas curvas. Finalmente, Jenga usa essas curvas para selecionar a melhor hierarquia (ou seja, tamanho VL1).

Usar Jenga teve um efeito notável. O chip virtual de 36 núcleos começou a funcionar 30% mais rápido e consumiu 85% menos energia. Claro, por enquanto Jenga é apenas uma simulação de um computador funcionando e levará algum tempo até que você veja exemplos reais desse cache e até mesmo antes que os fabricantes de chips o adotem se gostarem da tecnologia.

Configuração de uma máquina nuclear convencional 36

  • Processadores. 36 núcleos, x86-64 ISA, 2,4 GHz, OOO semelhante a Silvermont: 8B de largura
    ifetch; bpred de 2 níveis com BHSRs de 512×10 bits + PHT de 1024×2 bits, decodificação/emissão/renomeação/confirmação de 2 vias, IQ e ROB de 32 entradas, LQ de 10 entradas, SQ de 16 entradas; 371 pJ/instrução, 163 mW/potência estática do núcleo
  • Caches L1. 32 KB, conjunto associativo de 8 vias, dados divididos e caches de instruções,
    Latência de 3 ciclos; 15/33 pJ por acerto/erro
  • Serviço de pré-buscadores. Pré-buscadores de fluxo de 16 entradas modelados e validados em relação a
    Nehalem
  • Caches L2. 128 KB privados por núcleo, conjunto associativo de 8 vias, inclusivo, latência de 6 ciclos; 46/93 pJ por acerto/erro
  • Modo coerente. Bancos de diretórios de latência de 6 ciclos e 16 vias para Jenga; diretórios L3 em cache para outros
  • NoC global. Malha 6×6, flits e links de 128 bits, roteamento XY, roteadores em pipeline de 2 ciclos, links de 1 ciclo; 63/71 pJ por roteador/link flit traversal, 12/4mW roteador/link potência estática
  • Memória estática bloqueia SRAM. 18 MB, um banco de 512 KB por bloco, zcache de 4 vias e 52 candidatos, latência de banco de 9 ciclos, particionamento Vantage; 240/500 pJ por acerto/erro, 28 mW/potência estática do banco
  • DRAM empilhada multicamadas. 1152 MB, um cofre de 128 MB por 4 blocos, Alloy com MAP-I DDR3-3200 (1600 MHz), barramento de 128 bits, 16 classificações, 8 bancos/classificação, buffer de linha de 2 KB; 4,4/6,2 nJ por acerto/erro, 88 mW/potência estática do cofre
  • Memória principal. 4 canais DDR3-1600, barramento de 64 bits, 2 classificações/canal, 8 bancos/classificação, buffer de linha de 8 KB; 20 nJ/acesso, potência estática de 4 W
  • Temporizações DRAM. tCAS=8, tRCD=8, tRTP=4, tRAS=24, tRP=8, tRRD=4, tWTR=4, tWR=8, tFAW=18 (todas as temporizações em tCK; DRAM empilhada tem metade do tCK como memória principal )

Memória cache ou como é chamada de memória buffer do disco rígido. Se você não sabe o que é, teremos prazer em responder a esta pergunta e informá-lo sobre todos os recursos disponíveis. Este é um tipo especial de RAM que atua como um buffer para armazenar dados lidos anteriormente, mas ainda não transmitidos, para processamento posterior, bem como para armazenar informações que o sistema acessa com mais frequência.

A necessidade de armazenamento em trânsito surgiu devido à diferença significativa entre o rendimento do sistema do PC e a velocidade de leitura dos dados do drive. A memória cache também pode ser encontrada em outros dispositivos, nomeadamente em placas de vídeo, processadores, placas de rede e outros.

Qual é o volume e o que isso afeta?

O volume do buffer merece atenção especial. Freqüentemente, os HDDs são equipados com caches de 8, 16, 32 e 64 MB. Ao copiar arquivos grandes, entre 8 e 16 MB haverá uma diferença significativa no desempenho, mas entre 16 e 32 é menos perceptível. Se você escolher entre 32 e 64, quase não haverá nenhum. É preciso entender que o buffer costuma sofrer cargas pesadas e, neste caso, quanto maior, melhor.

Os discos rígidos modernos usam 32 ou 64 MB e dificilmente podem ser encontrados em qualquer lugar hoje. Para um usuário comum, o primeiro e o segundo valores serão suficientes. Além disso, o desempenho também é afetado pelo tamanho do cache integrado ao sistema. É isso que aumenta o desempenho do disco rígido, especialmente com RAM suficiente.

Ou seja, em teoria, quanto maior o volume, melhor o desempenho e mais informações podem ficar no buffer e não carregar o disco rígido, mas na prática tudo é um pouco diferente, e o usuário médio, exceto em casos raros, não notará muita diferença. Claro, é recomendável escolher e comprar dispositivos de maior tamanho, o que melhorará significativamente o desempenho do seu PC. No entanto, isto só deverá ser feito se as capacidades financeiras o permitirem.

Propósito

Ele foi projetado para ler e gravar dados, mas em unidades SCSI, em casos raros, é necessária permissão para gravar o cache, pois por padrão o cache de gravação está desabilitado. Como já dissemos, o volume não é o fator decisivo para melhorar a eficiência operacional. Para aumentar o desempenho do disco rígido, é mais importante organizar a troca de informações com o buffer. Além disso, também é totalmente afetado pelo funcionamento da eletrônica de controle, prevenção de ocorrências, etc.

A memória buffer armazena os dados usados ​​com mais frequência, enquanto o volume determina a capacidade dessas informações armazenadas. Devido ao seu grande tamanho, o desempenho do disco rígido aumenta significativamente, pois os dados são carregados diretamente do cache e não requerem leitura física.

A leitura física é o acesso direto do sistema ao disco rígido e seus setores. Esse processo é medido em milissegundos e leva bastante tempo. Ao mesmo tempo, o HDD transfere dados mais de 100 vezes mais rápido do que quando solicitado pelo acesso físico ao disco rígido. Ou seja, permite que o dispositivo opere mesmo se o barramento host estiver ocupado.

Vantagens principais

A memória buffer tem uma série de vantagens, a principal delas é o processamento rápido de dados, que leva um tempo mínimo, enquanto o acesso físico aos setores da unidade requer um certo tempo até que a cabeça do disco encontre a seção de dados necessária e comece para lê-lo. Além disso, discos rígidos com maior armazenamento podem aliviar significativamente o processador do computador. Conseqüentemente, o processador é usado minimamente.

Também pode ser chamado de acelerador completo, já que a função de buffer faz com que o disco rígido funcione com muito mais eficiência e rapidez. Mas hoje, com o rápido desenvolvimento da tecnologia, está perdendo seu antigo significado. Isso se deve ao fato de a maioria dos modelos modernos possuir 32 e 64 MB, o que é suficiente para o funcionamento normal do drive. Conforme mencionado acima, você pode pagar a diferença somente quando a diferença de custo corresponder à diferença de eficiência.

Por fim, gostaria de dizer que a memória buffer, não importa qual seja, melhora o desempenho de um determinado programa ou dispositivo somente se os mesmos dados forem acessados ​​repetidamente, cujo tamanho não seja maior que o tamanho do cache. Se o trabalho do seu computador envolve programas que interagem ativamente com arquivos pequenos, você precisa de um HDD com maior armazenamento.

Como descobrir o tamanho atual do cache

Tudo que você precisa fazer é baixar e instalar o programa gratuito HDTune. Após o lançamento, vá até a seção “Informações” e na parte inferior da janela você verá todos os parâmetros necessários.


Se você estiver comprando um aparelho novo, todas as características necessárias podem ser encontradas na caixa ou nas instruções anexas. Outra opção é procurar na Internet.

Cache é uma memória embutida no processador na qual são gravados os dados (comandos) da RAM usados ​​​​com mais frequência, o que acelera significativamente o trabalho.

Tamanho do cache L1 (de 8 a 128 KB)
Tamanho do cache de nível 1.
O cache de nível 1 é um bloco de memória de alta velocidade localizado diretamente no núcleo do processador.
Os dados extraídos da RAM são copiados para ele.

O armazenamento de instruções principais melhora o desempenho do processador devido à velocidade de processamento de dados mais rápida (o processamento do cache é mais rápido do que da RAM).

A capacidade do cache de primeiro nível é pequena e chega a quilobytes.
Normalmente, os modelos de processador “antigos” possuem um cache L1 maior.
Para modelos multi-core, é indicada a quantidade de memória cache L1 para um núcleo.

Tamanho do cache L2 (de 128 a 12.288 KB)
Tamanho do cache de nível 2.
O cache L2 é um bloco de memória de alta velocidade que executa as mesmas funções do cache L1 (consulte "Capacidade do cache L1"), mas possui velocidade menor e maior capacidade.

Se você estiver escolhendo um processador para tarefas que consomem muitos recursos, será preferível um modelo com grande cache L2.
Para processadores multi-core, a quantidade total de memória cache de segundo nível é indicada.

Tamanho do cache L3 (de 0 a 16.384 KB)
Tamanho do cache de nível 3.
O cache L3 integrado, combinado com um barramento de sistema rápido, forma um canal de troca de dados de alta velocidade com a memória do sistema.

Via de regra, apenas CPUs para soluções de servidor ou edições especiais de processadores “desktop” são equipadas com memória cache de terceiro nível.

Por exemplo, linhas de processadores como Intel Pentium 4 Extreme Edition, Xeon DP, Itanium 2, Xeon MP e outras possuem memória cache de terceiro nível.

Twin BiCS FLASH - nova tecnologia de memória flash 3D

Em 11 de dezembro de 2019, no IEEE International Electronic Devices Meeting (IEDM), a TOKYO-Kioxia Corporation anunciou a tecnologia de memória flash 3D - Twin BiCS FLASH.

Driver AMD Radeon Software Adrenalin Edition 2020 19.12.2 WHQL (adicionado)

Em 10 de dezembro, a AMD apresentou o mega driver Radeon Software Adrenalin 2020 Edition 19.12.2 WHQL.

Atualização cumulativa do Windows 10 1909 KB4530684

Em 10 de dezembro de 2019, a Microsoft lançou a atualização cumulativa KB4530684 (Build 18363.535) para a atualização de novembro de 2019 do Windows 10 (versão 1909) em processadores x86, x64 (amd64), ARM64 e Windows Server 2019 (1909) para sistemas baseados em x64.

Driver NVIDIA Game Ready GeForce 441.66 WHQL

O driver NVIDIA GeForce Game Ready 441.66 WHQL inclui suporte para MechWarrior 5: Mercenaries e Detroit: Become Human, e também adiciona suporte G-SYNC para monitores MSI MAG251RX e ViewSonic XG270.

Qual a importância do cache L3 para processadores AMD?

Na verdade, faz sentido equipar os processadores multi-core com memória dedicada que será partilhada por todos os núcleos disponíveis. Nessa função, um cache rápido de terceiro nível (L3) pode acelerar significativamente o acesso aos dados solicitados com mais frequência. Então os núcleos, se possível, não terão que acessar a memória principal (RAM) lenta.

Pelo menos em teoria. Recentemente AMD anunciou o processador Athlon II X4, que é um modelo Phenom II X4 sem cache L3, sugerindo que não é tão necessário. Decidimos comparar diretamente dois processadores (com e sem cache L3) para testar como o cache afeta o desempenho.

Clique na imagem para ampliar.

Como funciona o cache?

Antes de mergulharmos nos testes, é importante entender alguns princípios básicos. O princípio de funcionamento do cache é bastante simples. O cache armazena os dados o mais próximo possível dos núcleos de processamento do processador para reduzir as solicitações da CPU para memórias mais distantes e lentas. Nas plataformas de desktop modernas, a hierarquia de cache inclui até três níveis que precedem o acesso à RAM. Além disso, os caches do segundo e, em particular, do terceiro nível servem não apenas para armazenar dados em buffer. Seu objetivo é evitar que o barramento do processador fique sobrecarregado quando os núcleos precisarem trocar informações.

Acertos e erros

A eficácia das arquiteturas de cache é medida pela taxa de acertos. As solicitações de dados que podem ser atendidas pelo cache são consideradas ocorrências. Se esse cache não contiver os dados necessários, a solicitação será repassada ao longo do pipeline de memória e uma falha será contada. É claro que os erros levam a mais tempo necessário para obter informações. Como resultado, “bolhas” (ociosos) e atrasos aparecem no pipeline de computação. Os hits, pelo contrário, permitem manter o desempenho máximo.

Entrada de cache, exclusividade, coerência

As políticas de substituição determinam como o cache é liberado para novas entradas. Como os dados gravados no cache devem eventualmente aparecer na memória principal, os sistemas podem fazê-lo ao mesmo tempo que gravam no cache (write-through) ou podem marcar as áreas de dados como "sujas" (write-back) e gravar em memória quando é despejado do cache.

Dados em diversos níveis de cache podem ser armazenados de forma exclusiva, ou seja, sem redundância. Então você não encontrará as mesmas linhas de dados em duas hierarquias de cache diferentes. Ou os caches podem funcionar de forma inclusiva, ou seja, é garantido que os níveis de cache inferiores contenham dados presentes nos níveis de cache superiores (mais próximos do núcleo do processador). O AMD Phenom usa um cache L3 exclusivo, enquanto a Intel segue uma estratégia de cache inclusiva. Os protocolos de coerência garantem a integridade e a atualização dos dados em diferentes núcleos, níveis de cache e até mesmo processadores.

Tamanho da memória cache

Um cache maior pode conter mais dados, mas tende a aumentar a latência. Além disso, um cache grande consome um número considerável de transistores do processador, por isso é importante encontrar um equilíbrio entre o orçamento do transistor, o tamanho do die, o consumo de energia e o desempenho/latência.

Associatividade

As entradas na RAM podem ser mapeadas diretamente para o cache, ou seja, existe apenas uma posição de cache para uma cópia dos dados da RAM, ou podem ser associativas de n vias, ou seja, existem n locais possíveis no cache onde isso dados podem ser armazenados. Graus mais altos de associatividade (até caches totalmente associativos) proporcionam maior flexibilidade de armazenamento em cache porque os dados existentes no cache não precisam ser reescritos. Em outras palavras, um alto grau n de associatividade garante uma taxa de acerto mais alta, mas também aumenta a latência porque leva mais tempo para verificar se há acerto em todas essas associações. Normalmente, o maior grau de associação é razoável para o último nível de cache, uma vez que a capacidade máxima está disponível lá, e a busca por dados fora desse cache fará com que o processador acesse a RAM lenta.

Aqui estão alguns exemplos: Core i5 e i7 usam 32 KB de cache L1 com associatividade de 8 vias para dados e 32 KB de cache L1 com associatividade de 4 vias para instruções. É compreensível que a Intel queira que as instruções estejam disponíveis mais rapidamente e que o cache de dados L1 tenha uma taxa de acerto máxima. O cache L2 nos processadores Intel possui associatividade de 8 vias, e o cache L3 da Intel é ainda mais inteligente, pois implementa associatividade de 16 vias para maximizar os acessos.

No entanto, a AMD está seguindo uma estratégia diferente com os processadores Phenom II X4, que usam cache L1 associativo bidirecional para reduzir a latência. Para compensar possíveis perdas, a capacidade do cache foi duplicada: 64 KB para dados e 64 KB para instruções. O cache L2 possui associatividade de 8 vias, como o design da Intel, mas o cache L3 da AMD opera com associatividade de 48 vias. Mas a decisão de escolher uma arquitetura de cache em detrimento de outra não pode ser avaliada sem considerar toda a arquitetura da CPU. É bastante natural que os resultados dos testes tenham significado prático, e nosso objetivo era precisamente um teste prático de toda essa complexa estrutura de cache multinível.

Todo processador moderno possui um cache dedicado que armazena instruções e dados do processador, prontos para uso quase que instantaneamente. Este nível é comumente referido como cache de Nível 1 ou L1 e foi introduzido pela primeira vez nos processadores 486DX. Recentemente, os processadores AMD tornaram-se padrão com cache L1 de 64 KB por núcleo (para dados e instruções), e os processadores Intel usam cache L1 de 32 KB por núcleo (também para dados e instruções).

O cache L1 apareceu pela primeira vez nos processadores 486DX, após o que se tornou um recurso integrante de todas as CPUs modernas.

O cache de segundo nível (L2) apareceu em todos os processadores após o lançamento do Pentium III, embora as primeiras implementações dele em embalagens tenham ocorrido no processador Pentium Pro (mas não no chip). Os processadores modernos são equipados com até 6 MB de cache L2 no chip. Via de regra, esse volume é dividido entre dois núcleos em um processador Intel Core 2 Duo, por exemplo. As configurações L2 típicas fornecem 512 KB ou 1 MB de cache por núcleo. Processadores com cache L2 menor tendem a ter preços mais baixos. Abaixo está um diagrama das primeiras implementações de cache L2.

O Pentium Pro tinha cache L2 na embalagem do processador. Nas gerações subsequentes do Pentium III e Athlon, o cache L2 foi implementado através de chips SRAM separados, o que era muito comum naquela época (1998, 1999).

O anúncio subsequente de uma tecnologia de processo de até 180 nm permitiu aos fabricantes finalmente integrar o cache L2 na matriz do processador.


Os primeiros processadores dual-core simplesmente usaram designs existentes que incluíam duas matrizes por pacote. A AMD introduziu um processador dual-core em um chip monolítico, adicionou um controlador de memória e um switch, e a Intel simplesmente montou dois chips single-core em um pacote para seu primeiro processador dual-core.


Pela primeira vez, o cache L2 começou a ser compartilhado entre dois núcleos de computação nos processadores Core 2 Duo. A AMD foi além e criou seu primeiro Phenom quad-core do zero, e a Intel novamente usou um par de matrizes, desta vez duas matrizes Core 2 dual-core, em seu primeiro processador quad-core para reduzir custos.

O cache de terceiro nível existe desde os primeiros dias do processador Alpha 21165 (96 KB, processadores introduzidos em 1995) ou IBM Power 4 (256 KB, 2001). No entanto, em arquiteturas baseadas em x86, o cache L3 apareceu pela primeira vez com os modelos Intel Itanium 2, Pentium 4 Extreme (Gallatin, ambos processadores em 2003) e Xeon MP (2006).

As primeiras implementações simplesmente forneceram outro nível na hierarquia de cache, embora as arquiteturas modernas usem o cache L3 como um buffer grande e compartilhado para transferência de dados entre núcleos em processadores multinúcleo. Isto é enfatizado pelo alto grau n de associatividade. É melhor procurar dados um pouco mais no cache do que acabar com uma situação em que vários núcleos usam acesso muito lento à RAM principal. A AMD introduziu pela primeira vez o cache L3 em um processador de desktop com a já mencionada linha Phenom. O Phenom X4 de 65 nm continha 2 MB de cache L3 compartilhado, e o moderno Phenom II X4 de 45 nm já possui 6 MB de cache L3 compartilhado. Os processadores Intel Core i7 e i5 usam 8 MB de cache L3.

Os processadores quad-core modernos possuem caches L1 e L2 dedicados para cada núcleo, bem como um grande cache L3 compartilhado por todos os núcleos. O cache L3 compartilhado também permite a troca de dados nos quais os núcleos podem trabalhar em paralelo.


Um dos fatores importantes que aumentam o desempenho do processador é a presença de memória cache, ou melhor, seu volume, velocidade de acesso e distribuição entre níveis.

Há já algum tempo que quase todos os processadores estão equipados com este tipo de memória, o que mais uma vez comprova a utilidade da sua presença. Neste artigo falaremos sobre a estrutura, níveis e finalidade prática da memória cache, como uma característica muito importante do processador.

O que é memória cache e sua estrutura

A memória cache é uma memória ultrarrápida usada pelo processador para armazenar temporariamente os dados acessados ​​com mais frequência. É assim que podemos descrever brevemente esse tipo de memória.

A memória cache é construída em flip-flops, que, por sua vez, consistem em transistores. Um grupo de transistores ocupa muito mais espaço do que os mesmos capacitores que compõem a RAM. Isto acarreta muitas dificuldades na produção, bem como limitações de volume. É por isso que a memória cache é uma memória muito cara, embora tenha volumes insignificantes. Mas dessa estrutura vem a principal vantagem dessa memória - a velocidade. Como os flip-flops não precisam de regeneração e o tempo de atraso da porta na qual estão montados é pequeno, o tempo para mudar o flip-flop de um estado para outro ocorre muito rapidamente. Isso permite que a memória cache opere nas mesmas frequências dos processadores modernos.

Além disso, um fator importante é o posicionamento da memória cache. Ele está localizado no próprio chip do processador, o que reduz significativamente o tempo de acesso. Anteriormente, a memória cache de alguns níveis estava localizada fora do chip do processador, em um chip SRAM especial em algum lugar da placa-mãe. Agora, quase todos os processadores possuem memória cache localizada no chip do processador.

Para que é usado o cache do processador?

Conforme mencionado acima, o principal objetivo da memória cache é armazenar dados que são frequentemente usados ​​pelo processador. O cache é um buffer no qual os dados são carregados e, apesar de seu pequeno tamanho (cerca de 4 a 16 MB) em processadores modernos, fornece um aumento significativo de desempenho em qualquer aplicativo.

Para entender melhor a necessidade de memória cache, vamos imaginar organizar a memória de um computador como se fosse um escritório. A RAM será um gabinete com pastas que o contador acessa periodicamente para recuperar grandes blocos de dados (ou seja, pastas). E a mesa será uma memória cache.

Há elementos que são colocados na mesa do contador, aos quais ele se refere diversas vezes em uma hora. Por exemplo, podem ser números de telefone, alguns exemplos de documentos. Esses tipos de informações ficam localizados diretamente na mesa, o que, por sua vez, aumenta a velocidade de acesso a elas.

Da mesma forma, os dados podem ser adicionados desses grandes blocos de dados (pastas) à tabela para uso rápido, por exemplo, um documento. Quando este documento não é mais necessário, ele é colocado de volta no gabinete (na RAM), limpando assim a tabela (memória cache) e liberando esta tabela para novos documentos que serão utilizados no próximo período de tempo.

Também com a memória cache, se houver algum dado com maior probabilidade de ser acessado novamente, esses dados da RAM serão carregados na memória cache. Muitas vezes, isso acontece através do co-carregamento dos dados que têm maior probabilidade de serem usados ​​após os dados atuais. Ou seja, existem suposições sobre o que será utilizado “depois”. Estes são os princípios operacionais complexos.

Níveis de cache do processador

Os processadores modernos estão equipados com um cache, que geralmente consiste em 2 ou 3 níveis. Claro que existem exceções, mas muitas vezes é esse o caso.

Em geral, podem existir os seguintes níveis: L1 (primeiro nível), L2 (segundo nível), L3 (terceiro nível). Agora um pouco mais de detalhes sobre cada um deles:

O cache de primeiro nível (L1) é o nível de memória cache mais rápido que funciona diretamente com o núcleo do processador. Graças a essa interação estreita, esse nível tem o menor tempo de acesso e opera em frequências próximas ao processador. É um buffer entre o processador e o cache de segundo nível.

Consideraremos os volumes em um processador Intel Core i7-3770K de alto desempenho. Este processador está equipado com cache L1 de 4x32 KB 4 x 32 KB = 128 KB. (32 KB por núcleo)

Cache de segundo nível (L2) – o segundo nível é maior que o primeiro, mas como resultado, possui “características de velocidade” mais baixas. Conseqüentemente, serve como um buffer entre os níveis L1 e L3. Se olharmos novamente para nosso exemplo Core i7-3770 K, o tamanho da memória cache L2 é 4x256 KB = 1 MB.

Cache de terceiro nível (L3) – o terceiro nível, novamente, é mais lento que os dois anteriores. Mas ainda é muito mais rápido que a RAM. O tamanho do cache L3 no i7-3770K é de 8 MB. Se os dois níveis anteriores forem compartilhados por cada núcleo, esse nível será comum a todo o processador. O número é bastante sólido, mas não exorbitante. Já que, por exemplo, para processadores da série Extreme como o i7-3960X, são 15 MB, e para alguns novos processadores Xeon, mais de 20.

we-it.net

Para que é usado o cache e quanto é necessário?

Não estamos falando de dinheiro, mas de memória cache do processador e muito mais. Os comerciantes fizeram outro fetiche comercial com a capacidade de memória cache, especialmente com o cache dos processadores centrais e discos rígidos (placas de vídeo também têm, mas ainda não conseguiram). Portanto, há um processador XXX com cache L2 de 1 MB e exatamente o mesmo processador XYZ com cache de 2 MB. Adivinha qual é melhor? Ah - não faça isso imediatamente!

A memória cache é um buffer que armazena o que pode e/ou precisa ser adiado para depois. O processador está trabalhando e surgem situações em que dados intermediários precisam ser armazenados em algum lugar. Bem, claro, no cache! - afinal, é muito mais rápido que a RAM, porque... ele está na própria matriz do processador e geralmente funciona na mesma frequência. E então, depois de algum tempo, ele irá pescar esses dados de volta e processá-los novamente. Grosso modo, é como um classificador de batatas em uma esteira rolante, que, toda vez que se depara com algo que não seja batata (cenoura), joga em uma caixa. E quando está cheio, ele se levanta e leva para a sala ao lado. Neste momento, o transportador fica parado e é observado tempo de inatividade. O volume da caixa é o cache nesta analogia. E quanto é necessário - 1 MB ou 12? É claro que se o volume for pequeno, você terá que gastar muito tempo na remoção e será simples, mas depois de um certo volume, aumentá-lo ainda mais não renderá nada. Bem, o classificador terá uma caixa para 1000 kg de cenouras - mas ele não terá tanto durante todo o seu turno e isso não o tornará DUAS VEZES MAIS RÁPIDO! Há mais uma sutileza - um cache grande pode causar um aumento nos atrasos no acesso a ele, em primeiro lugar, e ao mesmo tempo aumenta a probabilidade de erros nele, por exemplo, durante o overclock - em segundo lugar. (Você pode ler sobre COMO determinar a estabilidade/instabilidade de um processador neste caso e descobrir que o erro ocorre em seu cache e testar L1 e L2 aqui.) Em terceiro lugar, o cache consome uma quantidade razoável de área do chip e o orçamento de transistor do circuito do processador. O mesmo se aplica à memória cache dos discos rígidos. E se a arquitetura do processador for forte, ele terá um cache de 1.024 KB ou mais, exigido em muitos aplicativos. Se você tiver um HDD rápido, 16 MB ou até 32 MB são apropriados. Mas nenhuma quantidade de 64 MB de cache o tornará mais rápido se for um acabamento chamado versão verde (Green WD) com velocidade de 5900 em vez dos 7200 exigidos, mesmo que este último tenha 8 MB. Então os processadores Intel e AMD usam esse cache de maneira diferente (de modo geral, a AMD é mais eficiente e seus processadores costumam se sentir confortáveis ​​com valores menores). Além disso, a Intel possui um cache compartilhado, mas a AMD o possui individualmente para cada núcleo. O cache L1 mais rápido nos processadores AMD é de 64 KB para dados e instruções, o dobro do da Intel. O cache L3 de terceiro nível geralmente está presente em processadores de ponta, como o AMD Phenom II 1055T X6 Socket AM3 2,8 GHz ou o concorrente Intel Core i7-980X. Em primeiro lugar, os jogos adoram grandes volumes de cache. E muitos aplicativos profissionais NÃO gostam de cache (veja. Computador para renderização, edição de vídeo e aplicações profissionais). Mais precisamente, aqueles que são mais exigentes geralmente lhe são indiferentes. Mas o que você definitivamente não deveria fazer é escolher um processador com base no tamanho do cache. O antigo Pentium 4 em suas últimas manifestações tinha 2 MB de cache em frequências operacionais bem acima de 3 GHz - compare seu desempenho com o barato Celeron E1*** dual-core, operando em frequências de cerca de 2 GHz. Ele não deixará pedra sobre pedra do velho. Um exemplo mais relevante é o E8600 dual-core de alta frequência, que custa quase US$ 200 (aparentemente devido ao cache de 6 MB) e o Athlon II X4-620 2,6 GHz, que possui apenas 2 MB. Isso não impede que Athlone destrua seu concorrente.

Como você pode ver nos gráficos, nenhum cache pode substituir núcleos adicionais em programas complexos ou em jogos que exigem muito processador. O Athlon com 2 MB de cache (vermelho) supera facilmente o Cor2Duo com 6 MB de cache, mesmo em uma frequência mais baixa e quase pela metade do custo. Além disso, muita gente esquece que o cache está presente nas placas de vídeo, pois, de modo geral, elas também possuem processadores. Um exemplo recente é a placa de vídeo GTX460, onde eles conseguem não só cortar o barramento e a capacidade de memória (que o comprador vai adivinhar) - mas também o cache de shader, respectivamente, de 512Kb para 384Kb (que o comprador NÃO vai adivinhar). ). E isto também irá adicionar a sua contribuição negativa para a produtividade. Também será interessante descobrir a dependência do desempenho no tamanho do cache. Vamos examinar a rapidez com que ele cresce com o aumento do tamanho do cache usando o exemplo do mesmo processador. Como você sabe, os processadores das séries E6***, E4*** e E2*** diferem apenas no tamanho do cache (4, 2 e 1 MB cada, respectivamente). Operando na mesma frequência de 2.400 MHz, eles apresentam os seguintes resultados.

Como você pode ver, os resultados não são muito diferentes. Direi mais - se fosse usado um processador com capacidade de 6 MB, o resultado teria aumentado um pouco mais, porque processadores atingem a saturação. Mas para modelos com 512Kb a queda seria perceptível. Ou seja, 2MB são suficientes até para jogos. Resumindo, podemos tirar a seguinte conclusão - o cache é bom quando JÁ existe muito de todo o resto. É ingênuo e estúpido alterar a velocidade do disco rígido ou o número de núcleos do processador para o tamanho do cache pelo mesmo custo, porque mesmo a caixa de classificação mais espaçosa não substituirá outro classificador. por exemplo, o Pentium Dual-Core em uma revisão inicial do processo de 65 nm tinha 1 MB de cache para dois núcleos (série E2160 e similares), e a revisão posterior de 45 nm da série E5200 ainda tem 2 MB, todas as outras coisas sendo iguais ( e o mais importante - PREÇO). Claro, você deve escolher o último.

compua.com.ua

O que é um cache, por que é necessário e como funciona?

Qual é o lugar mais sujo de um computador? Você acha que é uma cesta? Pastas de usuário? Sistema de refrigeração? Você adivinhou errado! O lugar mais sujo é o cache! Afinal, é preciso limpá-lo constantemente!

Na verdade, existem muitos caches em um computador e eles não servem como depósito de lixo, mas como aceleradores de equipamentos e aplicativos. De onde eles tiraram a reputação de serem uma “rampa de lixo do sistema”? Vamos descobrir o que é um cache, o que é, como funciona e por que precisa ser limpo de vez em quando.

Um cache ou memória cache é um armazenamento especial de dados usados ​​com frequência, que é acessado dezenas, centenas e milhares de vezes mais rápido que a RAM ou outra mídia de armazenamento.

Aplicativos (navegadores da web, reprodutores de áudio e vídeo, editores de banco de dados, etc.), componentes do sistema operacional (cache de miniaturas, cache DNS) e hardware (cache da CPU L1-L3, framebuffer gráfico) possuem seu próprio chip de memória cache, buffers de armazenamento). . É implementado de diferentes maneiras - em software e hardware.

  • Um cache de programa é simplesmente uma pasta ou arquivo separado no qual são carregados, por exemplo, imagens, menus, scripts, conteúdo multimídia e outros conteúdos de sites visitados. É nesta pasta que o navegador entra pela primeira vez quando você reabre uma página da web. Paginar algum conteúdo do armazenamento local acelera seu carregamento e reduz o tráfego de rede.

  • Em dispositivos de armazenamento (em particular, discos rígidos), o cache é um chip de RAM separado com capacidade de 1 a 256 Mb, localizado na placa eletrônica. Recebe informações lidas da camada magnética e ainda não carregadas na RAM, bem como dados mais solicitados pelo sistema operacional.

  • Um processador central moderno contém 2 a 3 níveis principais de memória cache (também chamada de memória de acesso ultra-aleatório), localizados na forma de módulos de hardware no mesmo chip. O mais rápido e menor em tamanho (32-64 Kb) é o cache Nível 1 (L1) - ele opera na mesma frequência do processador. L2 ocupa uma posição média em velocidade e capacidade (de 128 Kb a 12 Mb). E L3 é o mais lento e volumoso (até 40 Mb), e está ausente em alguns modelos. A velocidade do L3 é baixa apenas em relação aos seus irmãos mais rápidos, mas também é centenas de vezes mais rápida que a RAM mais produtiva.

A memória flash do processador é usada para armazenar dados constantemente usados, bombeados da RAM e instruções de código de máquina. Quanto maior, mais rápido é o processador.

Hoje, três níveis de cache não são mais o limite. Com o advento da arquitetura Sandy Bridge, a Intel implementou um cache adicional L0 (destinado a armazenar microinstruções descriptografadas) em seus produtos. E as CPUs de maior desempenho também possuem um cache de quarto nível, feito na forma de um chip separado.

Esquematicamente, a interação dos níveis de cache L0-L3 é assim (usando o Intel Xeon como exemplo):

Na linguagem humana sobre como tudo funciona

Para entender como funciona a memória cache, vamos imaginar uma pessoa trabalhando em uma mesa. As pastas e documentos que ele utiliza constantemente ficam sobre a mesa (na memória cache). Para acessá-los, basta esticar a mão.

Os papéis de que ele precisa com menos frequência são armazenados nas prateleiras próximas (na RAM). Para pegá-los, você precisa se levantar e caminhar alguns metros. E aquilo com que uma pessoa não trabalha atualmente é arquivado (gravado no disco rígido).

Quanto maior a mesa, mais documentos caberão nela, o que significa que o trabalhador poderá acessar rapidamente uma quantidade maior de informações (quanto maior a capacidade do cache, mais rápido o programa ou dispositivo funciona, em teoria).

Às vezes ele comete erros - mantém em sua mesa papéis que contêm informações incorretas e os utiliza em seu trabalho. Como resultado, a qualidade do seu trabalho diminui (erros de cache levam ao mau funcionamento de programas e hardware). Para corrigir a situação, o funcionário deve jogar fora os documentos com erros e colocar os corretos no lugar (limpar a memória cache).

A tabela possui uma área limitada (a memória cache tem capacidade limitada). Às vezes pode ser expandido, por exemplo, movendo uma segunda tabela, e às vezes não (o tamanho do cache pode ser aumentado se tal possibilidade for fornecida pelo programa; o cache de hardware não pode ser alterado, pois é implementado em hardware) .

Outra maneira de acelerar o acesso a mais documentos do que a mesa pode acomodar é fazer com que um assistente entregue os papéis do funcionário na prateleira (o sistema operacional pode alocar parte da RAM não utilizada para armazenar em cache os dados do dispositivo). Mas ainda é mais lento do que tirá-los da mesa.

Os documentos em mãos devem ser relevantes para as tarefas atuais. O próprio funcionário deve monitorar isso. Você precisa colocar as coisas em ordem regularmente (a remoção de dados irrelevantes da memória cache recai sobre os ombros dos aplicativos que os utilizam; alguns programas têm uma função de limpeza automática de cache).

Caso um funcionário se esqueça de manter a ordem no local de trabalho e de manter a documentação em dia, ele pode traçar para si mesmo um cronograma de limpeza de mesa e usá-lo como lembrete. Como último recurso, confie isso a um assistente (se um aplicativo dependente da memória cache ficar mais lento ou baixar dados irrelevantes com frequência, use ferramentas de limpeza de cache de acordo com uma programação ou execute essa manipulação manualmente a cada poucos dias).

Na verdade, encontramos “funções de cache” em todos os lugares. Isso inclui comprar mantimentos para uso futuro e diversas ações que realizamos de passagem, ao mesmo tempo, etc. Essencialmente, isso é tudo o que nos poupa de complicações e movimentos desnecessários, agiliza nossa vida e facilita nosso trabalho. O computador faz o mesmo. Resumindo, se não houvesse cache, funcionaria centenas e milhares de vezes mais devagar. E provavelmente não gostaríamos disso.

f1comp.ru

Cache, cache, dinheiro - memória. Para que é usada a memória cache? Impacto do tamanho e da velocidade do cache no desempenho.

Cache - memória (cache, cash, buffer - eng.) - usada em dispositivos digitais como área de transferência de alta velocidade. A memória cache pode ser encontrada em dispositivos de computador, como discos rígidos, processadores, placas de vídeo, placas de rede, unidades de CD e muitos outros.

O princípio operacional e a arquitetura do cache podem variar bastante.

Por exemplo, o cache pode servir como uma área de transferência normal. O dispositivo processa os dados e os transfere para um buffer de alta velocidade, onde o controlador transmite os dados para a interface. Esse cache é projetado para evitar erros, verificar a integridade dos dados de hardware ou codificar o sinal do dispositivo em um sinal compreensível para a interface, sem atrasos. Este sistema é usado, por exemplo, em unidades de CD/DVD.

Em outro caso, o cache pode servir para armazenar código usado com frequência e, assim, acelerar o processamento de dados. Ou seja, o dispositivo não precisa calcular ou consultar novamente os dados, o que levaria muito mais tempo do que lê-los no cache. Neste caso, o tamanho e a velocidade do cache desempenham um papel muito importante.


Essa arquitetura é encontrada com mais frequência em discos rígidos, unidades SSD e unidades centrais de processamento (CPUs).

Quando os dispositivos estão operando, firmware especial ou programas despachantes podem ser carregados no cache, o que funcionaria mais lentamente com ROM (memória somente leitura).

A maioria dos dispositivos modernos usa um tipo misto de cache, que pode servir como área de transferência e armazenar códigos usados ​​com frequência.

Existem diversas funções muito importantes implementadas para o cache dos processadores e chips de vídeo.

Combinando unidades de execução. Unidades centrais de processamento e processadores de vídeo geralmente usam um cache compartilhado rápido entre núcleos. Assim, se um núcleo processou informações e está no cache, e um comando é recebido para a mesma operação, ou para trabalhar com esses dados, então os dados não serão processados ​​​​pelo processador novamente, mas serão retirados do cache para processamento posterior. O kernel será descarregado para processar outros dados. Isso aumenta significativamente o desempenho em cálculos semelhantes, mas complexos, especialmente se o cache for grande e rápido.

O cache compartilhado também permite que os núcleos trabalhem diretamente com ele, ignorando a RAM lenta.

Cache para instruções. Existe um cache L1 compartilhado e muito rápido para instruções e outras operações, ou um cache dedicado para elas. Quanto mais instruções armazenadas em um processador, maior será o cache de instruções necessário. Isso reduz a latência da memória e permite que o bloco de instruções funcione de forma quase independente. Quando está cheio, o bloco de instruções começa a ficar ocioso periodicamente, o que diminui a velocidade do cálculo.

Outras funções e recursos.

Vale ressaltar que nas CPUs (unidades centrais de processamento) é utilizada a correção de erros de hardware (ECC), pois um pequeno erro no cache pode levar a um erro contínuo durante o processamento posterior desses dados.

Na CPU e GPU existe uma hierarquia de cache que permite separar dados para núcleos individuais e gerais. Embora quase todos os dados do cache de segundo nível ainda sejam copiados para o terceiro nível geral, mas nem sempre. O primeiro nível de cache é o mais rápido e cada nível subsequente é mais lento, mas maior em tamanho.

Para processadores, três ou menos níveis de cache são considerados normais. Isso permite um equilíbrio entre velocidade, tamanho do cache e dissipação de calor. É difícil encontrar mais de dois níveis de cache em processadores de vídeo.

Tamanho do cache, impacto no desempenho e outras características.

Naturalmente, quanto maior o cache, mais dados ele pode armazenar e processar, mas há um problema sério aqui.

Um cache grande significa um grande orçamento de transistores. Em unidades de processamento de servidor (CPUs), o cache pode usar até 80% do orçamento do transistor. Em primeiro lugar, isto afecta o custo final e, em segundo lugar, o consumo de energia e a dissipação de calor aumentam, o que não é comparável ao aumento da produtividade em vários por cento.