Subsistemas de armazenamento em cache

A conexão à Internet é o link mais lento em seu computador. Por isso, o navegador (Internet Explorer, Netscape, Opera, etc.) usa o disco rígido para armazenar páginas em HTML, colocando-as em uma pasta especial. A primeira vez que você solicita uma página em HTML, o navegador a apresenta no monitor, e uma cópia também fica armazenada no disco rígido. Na próxima vez que você solicitar acesso a essa página, o navegador verifica se a data do arquivo na Internet é mais recente do que aquela armazenada no cache. Se for a mesma, o navegador usa a que está no disco rígido em vez de baixá-la da internet. Nesse caso, o sistema de memória menor, porém mais rápido, é o disco rígido e o maior, porém mais lento, a Internet.

O cache também pode ser construído diretamente em periféricos. Discos rígidos modernos vêm com memória rápida, em torno de 512 kilobytes, acoplada ao disco rígido. O computador não usa essa memória diretamente - o controlador do disco rígido, sim. Para o computador, esses chips de memória são o próprio disco. Quando o computador solicita dados do disco rígido, seu controlador verifica essa memória antes de passar às partes mecânicas do disco rígido (que é muito lento comparado à memória). Se ele encontrar no cache os dados que o computador solicitou, ele devolve os dados armazenados no cache sem acessar dados no disco em si, economizando muito tempo.

Eis um experimento que você pode fazer. Seu computador armazena em cache (no caso a memória principal) dados da unidade de disquete e você pode até mesmo ver a ação acontecendo. Acesse um arquivo grande em sua unidade de disco flexível - por exemplo, abra um arquivo de texto de 300 kilobytes em um editor de textos. Na primeira vez, a luz na unidade de disquete acenderá, e você terá que esperar. O disquete é lentíssimo, por isso levará 20 segundos para carregar o arquivo. Agora, feche o editor de textos e abra o mesmo arquivo novamente. Na segunda vez (não espere 30 minutos, nem faça muitos acessos ao disco entre as duas tentativas), a luz não vai acender e você não terá que esperar. O sistema operacional verificou o cache de memória para o disquete e encontrou o que procurava. Assim, em vez de esperar 20 segundos, os dados foram encontrados em um subsistema de memória muito mais rápido do que quando você fez a primeira tentativa (um acesso ao disquete leva 120 milisegundos, ao passo que um acesso à memória principal leva cerca de 60 nanosegundos - que é muito mais rápido). Podemos fazer o mesmo teste com o disco rígido, mas é muito mais visível na unidade de disco flexível porque ela é mais lenta.

Para dar uma idéia geral da situação, eis uma lista de um sistema normal de armazenamento em cache:

  • Cache L1: os acessos à memória são feitos em velocidade máxima do microprocessador (10 nanosegundos, 4 a 16 kilobytes de tamanho).
  • Cache L2: acesso à memória do tipo SRAM (em torno de 20 a 30 nanosegundos, 128 a 512 kilobytes de tamanho).
  • Memória principal: acesso à memória do tipo RAM (em torno de 60 nanosegundos, 128 megabytes a 2 gigabytes de tamanho).
  • Disco rígido: mecânica, lenta (cerca de 12 milisegundos, dezenas ou centenas gigabytes de tamanho).
  • Internet: lentíssima (entre 1 segundo e 3 dias, tamanho ilimitado).
Como podemos ver, o cache L1 armazena o cache L2, que armazena a memória principal, que pode ser usada para armazenar em cache os subsistemas do disco, e assim por diante.