O que é Cache? Definição, Funcionamento, Tipos e Importância

O cache armazena dados para reduzir o tempo de recuperação na próxima vez que o aplicativo ou dispositivo for acessado.

O cache é definido como um componente de hardware ou software embutido na memória de um aplicativo ou dispositivo que armazena automática e temporariamente os dados consumidos pelo usuário para reduzir o tempo de recuperação de dados na próxima vez que o aplicativo ou dispositivo for acessado. Este artigo explica esse conceito em detalhes e lista seus tipos e principais benefícios.

O que é Cache?

O cache é um componente de hardware ou software embutido na memória de um aplicativo ou dispositivo que armazena automaticamente e temporariamente os dados consumidos pelo usuário para reduzir o tempo e o esforço de recuperação de dados na próxima vez que o aplicativo ou dispositivo for acessado.

Um cache é um software ou hardware usado para armazenar temporariamente informações, geralmente dados, em um sistema de computador. É uma forma modesta de memória rápida e mais cara usada para aprimorar o desempenho de dados acessados ​​com frequência ou com frequência. Temporariamente, os dados em cache são salvos em um meio de armazenamento exclusivo para o usuário do cache e separado do armazenamento principal. A unidade central de processamento (CPU), aplicativos, navegadores da web e sistemas operacionais usam cache.

O cache é utilizado porque o armazenamento em massa ou primário não consegue atender às demandas dos usuários. O cache minimiza os tempos de acesso aos dados, reduz a latência e aprimora a entrada/saída (E/S). O método de cache aprimora o desempenho do aplicativo, pois praticamente todas as cargas de trabalho do aplicativo dependem de operações de E/S.

Os caches existem tanto no hardware quanto no software.

A CPU, que processa os dados do software em seu desktop, laptop, smartphone ou tablet, também possui seu próprio cache. Este cache da CPU é um bloco de memória compacto destinado a auxiliar a CPU na recuperação de dados acessados ​​com frequência. Ele salva as informações que a memória principal do dispositivo utiliza para executar as instruções significativamente mais rapidamente em oposição a um cenário em que teria que carregar todos os dados somente quando necessário.

Cada navegador online mantém seu próprio cache, incluindo Microsoft Edge, Google Chrome, Firefox e Safari. Um cache do navegador salva os arquivos necessários para exibir as páginas da Web acessadas pelo navegador. Isso inclui o documento HTML que define o site, guias Cascading Style Sheet (CSS), Javascript, cookies e gráficos.

Por exemplo, quando você navega na Amazon, ele recupera todas as fotos conectadas às páginas do produto que você vê HTML, arquivos de script necessários para criar os sites e dados de personalização, como suas credenciais de login e conteúdo do carrinho de compras. Se você remover o cache do navegador, os sites de varejo exigirão que você faça login novamente e reconfigure suas preferências.

Normalmente, os aplicativos também retêm seu próprio cache. Os aplicativos, como os navegadores, armazenam documentos e informações que consideram essenciais, permitindo que eles recarreguem os dados rapidamente quando necessário. Fotos, visualizações de mídia, histórico de navegação e outras preferências do usuário podem ser os tipos de dados armazenados em cache por vários aplicativos.

Como Funciona o Cache?

Os dados em um cache são normalmente armazenados em hardware com acesso imediato, como RAM (memória de acesso aleatório), e podem ser utilizados em interseção com um componente de software. O objetivo fundamental de um cache é melhorar a velocidade de recuperação de dados, eliminando a necessidade de contatar a camada de armazenamento mais lenta por trás dele. Um cache normalmente armazena uma fração dos dados temporariamente em troca de capacidade, ao contrário dos arquivos de dados, onde os dados geralmente são abrangentes e persistentes.

Quando o cliente de cache tenta recuperar dados, ele verifica primeiro o cache. Se os dados estiverem localizados no cache, eles são chamados de cache hit. A proporção de tentativas que fornecem um acerto do cache é conhecida como taxa ou proporção de acertos do cache.

Os dados que não estão localizados no cache são retirados da memória principal e colocados no cache. Isso é conhecido como falta de cache. Como isso é realizado e quais informações são expelidas do cache para criar espaço para novos dados é determinado pelos algoritmos de cache, mecanismos de cache e regulamentações do sistema.

Várias estratégias de cache controlam a operação do cache. Regras de substituição gravam operações que ignoram o cache em favor do armazenamento. Isso evita que o cache seja inundado durante períodos de E/S de gravação pesada. Essa técnica tem a desvantagem de que os dados não são armazenados em cache até que sejam lidos do armazenamento. Essa operação de leitura é, portanto, mais lenta porque os dados não foram armazenados em cache.

As políticas de cache write-through armazenam informações no cache e no armazenamento. O benefício do cache write-through é que os dados recém-gravados são sempre armazenados em cache, permitindo uma leitura rápida. No entanto, as operações de gravação não são concluídas até que as informações sejam gravadas simultaneamente no cache e no armazenamento principal. Isso pode causar atrasos nas operações de gravação.

O cache write-back é semelhante ao cache write-through, pois todas as gravações são roteadas para o cache. Por outro lado, um cache de write-back considera o processo de gravação concluído depois que as informações são armazenadas em cache. Os dados são então transferidos do cache para o sistema de armazenamento.

Agora, entenderemos como funciona um cache de hardware.

O hardware executa o cache como um bloco de memória para armazenar temporariamente os dados que provavelmente serão necessários novamente. CPUs, SSDs e HDDs geralmente têm cache baseado em hardware, enquanto navegadores e servidores da Web geralmente dependem de cache baseado em software.

Um cache consiste em uma coleção de entradas. Cada entrada contém informações relevantes, sendo uma duplicata dos dados exatos armazenados em um armazenamento de backup. Cada entrada inclui adicionalmente uma etiqueta que identifica o material no armazenamento de backup do qual é uma cópia. A marcação permite que algoritmos simultâneos orientados a cache operem em muitas camadas sem interferência de relé diferencial.

Sempre que o cliente de cache (CPU, navegador ou sistema operacional) deseja acessar dados que devem residir no armazenamento subjacente, ele examina o cache primeiro. Se for possível localizar uma entrada com um rótulo que corresponda aos dados necessários, os dados da entrada serão utilizados. Isso é chamado de acerto de cache.

Por exemplo, um navegador da web pode examinar seus caches locais em um disco para ver se ele possui um arquivo de backup local do material de um site como um determinado URL. Nesse cenário, o endereço URL é a tag, enquanto o conteúdo da página da Web são os dados. A proporção de visitas ao cache que levam a acertos do cache é chamada de taxa de acertos do cache ou taxa de acertos.

Um erro de cache é uma condição alternativa que ocorre quando o cache é examinado e nenhum item com a tag necessária é encontrado. Isso requer um acesso de dados mais caro do armazenamento de backup. Após o download dos dados necessários, eles são geralmente armazenados no cache para uso futuro.

No momento de uma falta de cache, um registro de cache atual é apagado para criar espaço para dados recém-obtidos. A política de substituição refere-se à heurística usada para determinar qual entrada substituir. Uma estratégia de substituição comum, “usado menos recentemente (LRU)”, substitui a entrada mais antiga pela que foi acessada menos recentemente.

Algoritmos de cache eficientes calculam a frequência de acertos de uso com a quantidade de material em cache e a latência e utilização de recursos para o cache e o armazenamento de backup.

Aplicações de cache de software

Os caches armazenam arquivos temporários usando componentes de hardware e software. Um cache de CPU é uma ilustração de um cache de hardware. Esta é uma pequena porção de armazenamento na CPU do computador que retém as instruções fundamentais do computador utilizadas recente ou frequentemente. Além disso, muitos programas e softwares usam seu próprio cache. Esse cache armazena brevemente dados, arquivos e instruções relevantes para um aplicativo para recuperação rápida.

Os navegadores da Web são uma excelente ilustração do cache de aplicativos. Conforme dito anteriormente, cada navegador possui seu próprio cache que retém as informações da navegação anterior para uso nas subsequentes. Se um usuário deseja revisitar um vídeo do YouTube, ele carregará mais rapidamente, pois o navegador o recuperará do armazenamento onde foi armazenado durante a última sessão.

Outras formas de tecnologia que utilizam caches são sistemas operacionais, provedores de conteúdo, mecanismos de nomes de domínio de sites, bem como bancos de dados, onde ajudam a minimizar a latência da consulta.

Projetando o sistema de cache

Em um ambiente distribuído, uma camada de cache especializada permite que aplicativos e sistemas operem livremente, sem intervenção e influência do cache, com seus próprios ciclos de vida. O cache é uma camada central que pode ser acessada por muitos sistemas, cada um com seu próprio ciclo de vida e topologia arquitetônica. Isso é particularmente importante em sistemas nos quais os nós de aplicativos podem ser ampliados e reduzidos dinamicamente.

Se o cache residir no nó idêntico ao dos aplicativos ou sistemas que o utilizam, o dimensionamento poderá comprometer a integridade do cache. Além disso, os caches locais impulsionam apenas o aplicativo local que consome os dados quando são usados. Para uma arquitetura de cache distribuído, os dados podem ser dispersos em vários servidores de cache e armazenados centralmente para a conveniência de todos os consumidores de dados.

Ao construir uma camada de cache, é essencial compreender a confiabilidade dos dados armazenados em cache. Um cache bem-sucedido tem uma alta taxa de acesso, indicando que os dados estavam lá quando foram recuperados. Uma falta de cache ocorre quando os dados solicitados estão ausentes do cache. Filtros como TTLs (tempo de vida) podem ser adicionados para garantir que os dados expirem no prazo.

Outro fator a ser examinado é se o ambiente de cache requer ou não alta disponibilidade, que os mecanismos na memória podem fornecer. Em algumas circunstâncias, uma camada na memória pode ser utilizada como uma camada de armazenamento de dados separada, em vez de armazenar em cache os dados do local principal.

Nesse caso, é crucial determinar um RTO aceitável (objetivo de tempo de recuperação, a quantidade de tempo necessária para recuperar após uma interrupção) e RPO (objetivo de ponto de recuperação, a entrada ou transação final registrada na área de recuperação).

Compreendendo os 10 tipos de cache

Vamos entender os principais tipos de cache.

1. Memória cache L1

L1 é um registrador incorporado à CPU e o tipo mais comum de memória cache. O tamanho do cache L1 varia entre 2KB e 64KB, dependendo do processador do computador, sendo bastante modesto em comparação com outros caches. As instruções necessárias da CPU são procuradas primeiro no Cache L1. Os registradores incluem acumuladores, registradores de endereço e contadores de programa, entre muitos outros.

2. Memória cache L2

O cache de nível 2, também chamado de cache secundário, geralmente é maior que o cache L1. O cache L2 pode ser incorporado na CPU ou localizado em um chip autônomo, ou coprocessador, com um barramento de sistema alternativo de alta frequência ligando o cache e a CPU. Assim, não será desacelerado pelo congestionamento do sistema principal de ônibus.

3. Memória cache L3 

O cache de nível 3 é uma memória personalizada projetada para aumentar a velocidade L1 e L2. L1 ou L2 podem ser muito mais rápidos que L3, enquanto L3 costuma ser duas vezes mais rápido que DRAM. Cada núcleo de uma CPU multicore pode ter seu próprio cache L1 e L2 e pode agrupar um cache L3. Se esse cache L3 acessar um comando, ele será geralmente promovido a um nível de cache superior a L3.

4. Cache mapeado diretamente usando MCDRAM

Um cache mapeado diretamente é um método direto: cada endereço na memória principal é convertido em precisamente um bloco de cache. O cache DRAM ou MCDRAM multicanal é um meio prático de expandir a largura de banda da memória. Atuando como um cache de memória, ele pode armazenar dinamicamente o material usado com frequência e fornecer uma largura de banda muito melhor do que a memória DDR. Quando o MCDRAM está em um estado de cache, ele funciona como um cache mapeado diretamente. Isso indica que muitos locais de memória correspondem ao mesmo local de cache.

5. Cache totalmente associativo

O mapeamento totalmente associativo é um método de mapeamento de cache que permite o mapeamento do bloco de memória principal para uma linha de cache que pode ser acessada livremente. Em uma cache com associatividade completa, qualquer endereço de memória pode ser armazenado em praticamente qualquer linha de cache. Esse tipo de memória reduz consideravelmente o número de perdas de linha de cache, sendo considerada uma implementação complicada de memória cache.

6. Cache de disco

Essa forma de armazenamento em cache produz uma cópia de todos os dados residentes na RAM que você modificar. Normalmente, a pasta inteira é salva no cache porque o computador antecipa que você pode precisar de parte das informações. Portanto, acessar um arquivo pela primeira vez pode levar muito mais tempo do que acessar um arquivo contido nele.

7. Cache persistente 

Esse cache está relacionado ao espaço de armazenamento onde os dados são preservados durante uma reinicialização ou travamento do sistema. Os backups de bateria são empregados para proteger os dados, ou os dados são transferidos para uma RAM dinâmica com um backup de bateria como uma proteção adicional contra perda de dados.

8. Cache Flash

O cache flash, também chamado de cache de unidade de estado sólido, emprega chips de memória flash NAND (uma tecnologia de armazenamento não volátil) para armazenar dados temporariamente. O cache flash responde às solicitações de dados mais rapidamente do que uma unidade de disco rígido típica ou como parte do armazenamento de backup.

9. Cache persistente

O cache persistente é um mecanismo de armazenamento no qual os dados não são perdidos após uma reinicialização ou travamento do sistema. Os backups de bateria são empregados para proteger os dados, ou os dados são transferidos para uma RAM dinâmica com um backup de bateria como uma proteção adicional contra perda de dados.

10. Cache do navegador e do aplicativo

Os navegadores da Web salvam diferentes seções de sites, incluindo imagens, JavaScript e consultas, no disco rígido. Deve-se conseguir determinar quanto espaço de armazenamento foi usado por imagens em cache se você apagar o histórico do navegador em suas configurações. Um cache para um aplicativo é idêntico a um cache da web. Ele guarda informações como códigos e arquivos na memória do aplicativo para poderem ser acessados ​​mais rapidamente na próxima vez que forem solicitados.

Importância do Cache

Muitos engenheiros de software acreditam que o armazenamento em cache é a única maneira de tornar as coisas mais rápidas. Simplificando, quando você deseja recuperar dados caros, basta armazená-los em cache, para que da próxima vez que você os procure, será mais barato. Entenderemos o porquê.

1. Melhor desempenho

A principal vantagem do armazenamento em cache é que ele melhora o desempenho do sistema. Ao salvar versões em cache dos dados do arquivo do site, seu navegador só precisa baixar o conteúdo uma vez e pode recarregar os arquivos em visitas futuras.

2. Acesso off-line

Para aumentar a velocidade, os aplicativos armazenam em cache os dados usados ​​anteriormente e regularmente. Isso não apenas torna as coisas mais rápidas, como afirmado anteriormente, mas também permite que os aplicativos funcionem “offline” em certas circunstâncias. Por exemplo, se você não tiver conectividade com a Internet, um aplicativo pode continuar funcionando usando dados armazenados em cache.

3. Eficiência do aplicativo

É muito eficiente baixar arquivos uma vez. Uma versão em cache de um arquivo evita que o aplicativo desperdice tempo, duração da bateria e outros ativos ao acessá-lo duas vezes. Em vez disso, o aplicativo só precisa baixar arquivos atualizados ou adicionados recentemente.

4. Eficiência da rede

O armazenamento em cache promove um uso mais eficaz da largura de banda da rede, diminuindo o número de “viagens” necessárias para solicitar e entregar informações. Esse impacto pode reduzir significativamente a necessidade de duplicação de implantação de infraestrutura, resultando em considerável economia de custos e vantagens econômicas para todo o ecossistema da Internet. Além disso, os provedores comerciais de cache podem operar em escala, fazendo uso considerável da infraestrutura de TI com eficiência energética compartilhada por vários clientes.

5. Melhor qualidade de serviço (QoS)

A disponibilidade de serviços de cache reduz as barreiras de entrada para provedores de conteúdo em desenvolvimento (especialmente SMBs anunciando novos serviços) e permite que essas empresas criem novos serviços ao consumidor. O cache permite que provedores de conteúdo emergentes e novos ofereçam uma experiência de usuário positiva com alta qualidade de serviço (QoS) no lançamento do produto/serviço sem fazer investimentos caros em infraestrutura, permitindo que essas empresas assumam players estabelecidos.

Conclusão

Desde a universalização dos computadores pessoais, o cache tem estado entre os componentes fundamentais que alimentam a experiência do usuário. Ele evita que os usuários reiniciem sempre que abrirem um aplicativo ou site. À medida que os aplicativos da Web se tornam cada vez mais populares, os dados armazenados temporariamente no cache podem desempenhar um papel crucial na personalização.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

quinze + 7 =

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.