Na área da computação, cache é um dispositivo de acesso rápido, interno a um sistema, que serve de intermediário entre um operador de um processo e o dispositivo de armazenamento ao qual esse operador acede.
A vantagem principal na utilização de uma cache consiste em evitar o acesso ao dispositivo de armazenamento - que pode ser demorado -, armazenando os dados em meios de acesso mais rápidos.
-Com os avanços tecnológicos, vários tipos de cache foram desenvolvidos.
Actualmente há cache em processadores, discos rígidos, sistemas, servidores, nas placas-mãe, entre outros. Qualquer dispositivo que requeira do usuário uma solicitação/requisição a algum outro recurso, seja de rede ou local, interno ou externo a essa rede, pode requerer ou possuir de fábrica o recurso de cache.
Por ser mais caro, o recurso mais rápido não pode ser usado para armazenar todas as informações. Sendo assim, usa-se a cache para armazenar apenas as informações mais frequentemente usadas.
Nas unidades de disco também conhecidas como disco rígido ou Hard Drive (HD), também existem chips de cache nas placas electrónicas que os acompanham.
Cache em disco
O cache de disco é uma pequena quantidade de memória incluída na placa lógica do HD. Tem como principal função armazenar as últimas trilhas lidas pelo HD.
Esse tipo de cache evita que a cabeça de leitura e gravação passe várias vezes pela mesma trilha, pois como os dados estão no cache, a placa lógica pode processar a verificação de integridade a partir dali, acelerando o desempenho do HD, já que o mesmo só requisita a leitura do próximo sector assim que o último sector lido seja verificado.
Cache em níveis
Com a evolução na velocidade dos dispositivos, em particular nos processadores, o cache foi dividido em níveis, já que a demanda de velocidade a memória é tão grande que são necessários caches grandes com velocidades altíssimas de transferência e baixas latências.
Sendo muito difícil e caro construir memórias caches com essas características, elas são construídas em níveis que se diferem na relação tamanho X desempenho.
- Cache L1-Uma pequena porção de memória estática presente dentro do processador. Em alguns tipos de processador, como o Pentium 2, o L1 é dividido em dois níveis: dados e instruções (que "dizem" o que fazer com os dados). A partir do Intel 486, começou a se colocar a L1 no próprio chip [processador]. Geralmente tem entre 16KB e 128KB; hoje já encontramos processadores com até 16MB de cache.
- Cache L2- Possuindo o Cache L1 um tamanho reduzido e não apresentando uma solução ideal, foi desenvolvido o cache L2, que contém muito mais memória que o cache L1. Ela é mais um caminho para que a informação requisitada não tenha que ser procurada na lenta memória principal. Alguns processadores colocam essa cache fora do processador, por questões económicas, pois uma cache grande implica num custo grande, mas há excepções, como no Pentium II, por exemplo, cujas caches L1 e L2 estão no mesmo cartucho que está o processador.
- Cache L3- Terceiro nível de cache de memória. Inicialmente utilizado pelo AMD K6-III (por apresentar o cache L2 integrado ao seu núcleo) utilizava o cache externo presente na placa-mãe como uma memória de cache adicional. Ainda é um tipo de cache raro devido a complexidade dos processadores actuais, com suas áreas chegando a milhões de transístores por micrómetros ou picómetros de área. Ela será muito útil, é possível a necessidade futura de níveis ainda mais elevados de cache, como L4 e assim por diante.
Quando é feita a implementação da memória cache, alguns aspectos são analisados em relação a seu tamanho:
- A relação acerto/falha
- Tempo de acesso a memória principal
- O custo médio, por bit, da memória principal, da cache L1 e L2
- O tempo de acesso da cache L1 ou L2
- A natureza do programa a ser executado no momento