Tamanho do cache, o que o limita e quais soluções existem para o futuro?

Desde o antediluviano 486 de Intel que os caches estão nas CPUs dos nossos PCs. Vimo-los de diferentes capacidades, organizações e capacidades e são fundamentais para o bom desempenho de um processador contemporâneo, a ponto de serem uma peça indispensável dentro deles. Mas eles vêm em pequenas quantidades, o que nos leva a nos perguntar: o que é que impede os fabricantes de colocar um tamanho de cache maior em seus processadores?

Se você olhar para o alto desempenho CPU mercado, então você verá a variedade de processadores POWER da IBM que por anos usaram grandes quantidades de DRAM como cache, como o POWER9 com 120 MB de cache L3.

Tamanho do cache, o que o limita

Mas o recente lançamento das GPUs RX 6000 com sua memória Cache de 128 MB nos fez questionar qual é a limitação quando se trata de colocar grandes quantidades de memória como caches dentro dos processadores.

Primeira limitação no tamanho do cache: espaço

Processador Render Genérico

A limitação mais óbvia tem a ver com o espaço disponível no chip, o cache, como outro componente, ocupa espaço no chip e não apenas o cache, mas também as interfaces para ele e os mecanismos de coerência que o fazem conter as informações apropriadas o tempo todo.

Por isso, apesar de em cada nó de manufatura que aparece, é a SRAM que mais diminui seu tamanho, o cache não o faz porque traz consigo um hardware lógico adicional que ocupa um espaço importante no processador.

Segunda limitação do tamanho do cache: velocidade

Microscópio de Cache

O cache é muito mais rápido do que RAM para que ele possa responder às solicitações de dados com muito mais rapidez, mas tem uma série de problemas que afetam o desempenho:

  • Se um dado não estiver em um nível de cache, um cache perdido é produzido, o que resulta em vários ciclos de clock sem que o processador não faça nada; a melhor maneira de evitar isso é aumentar o tamanho dos caches.
  • O tempo de pesquisa em todos os caches, incluindo os caches perdidos, não pode ser igual ou superior ao tempo que o processador levaria para solicitar a RAM.

A CPU não é quem procura os dados no cache, mas este processo é feito pelo controlador do cache, se o cache for muito grande, o controlador de cache demorará muito mais para encontrar os dados . Em sistemas multicore, um cache privado é mantido com seu controlador de cache para cada núcleo muito pequeno e são muito fáceis de navegar. A ideia é que, se um cache for muito grande, ele adiciona ciclos de clock adicionais e isso é prejudicial ao desempenho.

Soluções para o problema de tamanho do cache

Processador Intel

Escolhemos as mais claras que veremos no futuro para aumentar a capacidade de armazenamento dos caches, não são as únicas soluções existentes, mas o mais viável que acabamos vendo implementados em processadores futuros.

Compressão de dados em cache para ganhar capacidade

CD de cache

Uma das soluções em relação ao tamanho do cache é o cache no mundo , ou seja, os dados incluídos no cache são comprimidos e servidos ao processador por meio de uma unidade de descompressão de dados de hardware, o que significa que, no nível de capacidade, a memória cache poderia armazenar mais dados dentro dela sem aumentar seu tamanho físico.

A compensação de um mecanismo de compressão-descompressão é que isso adiciona tempo extra a todo o processo de pesquisa de dados, por isso só faz sentido se você evitar a perda de cache e permitir que você encontre os dados que está procurando no cache em vez de tem que ir para a RAM para encontrá-lo.

Monte o cache não dentro, mas em cima do processador

SRAM 3DIC

Outra solução para o "problema" do tamanho do cache é coloque o cache de último nível em cima do processador . A ideia é fazer uso da tecnologia TSV, para ter um chip de memória SRAM quase do tamanho do processador e com grande capacidade de armazenamento.

A contrapartida é que duas fichas empilhadas gerar uma alta temperatura e evitar o uso de altas velocidades de clock , portanto, o desempenho final do processador pode ser afetado em comparação com uma configuração tradicional.