Relação entre RAM e largura de banda VRAM e sua latência

Relação entre RAM e largura de banda VRAM

Quando se trata de medir o desempenho de RAM e VRAM, normalmente falamos sobre dois parâmetros de desempenho, que são largura de banda e latência. Mas qual é a relação entre essas duas características e podemos classificá-las como constantes?

Um dos problemas com as especificações técnicas é que elas tendem a dar aos dados um desempenho de 100% em perfeitas condições. No caso da memória, isso não acontece, pois nem todos os dados estão na mesma latência e a largura de banda nunca chega a 100%.

Mais largura de banda não significa menos latência

Largura de banda

Entendemos como latência entre uma unidade de processamento e sua memória associada, o tempo que leva para receber uma informação solicitada ou para receber o sinal de que uma alteração foi feita na memória. Portanto, a latência é realmente uma forma de medir o tempo.

Em vez disso, a largura de banda é a quantidade de dados transmitidos a cada segundo, portanto, é uma taxa de velocidade. Então, por lógica direta, podemos chegar a pensar que em uma velocidade maior quando estamos procurando por dados, em menos tempo o CPU, GPU ou qualquer outra unidade de processamento obterá os dados.

A realidade é que este não é o caso, aliás, há a peculiaridade de que quanto mais largura de banda uma memória tem, geralmente ela tem mais latência em relação às outras. Esse fenômeno tem uma explicação, que é o que explicaremos nas próximas seções deste artigo.

A pesquisa de dados adiciona latência

Liberar RAM

Quase todas as unidades de processamento hoje têm uma hierarquia de caches, na qual o processador perguntará a cada um deles antes de acessar a RAM. Isso ocorre porque a latência direta entre o processador e a RAM é grande o suficiente para resultar em perda de desempenho em relação ao processador ideal.

Imagine que você está procurando por um produto específico, a primeira coisa que você faz é olhar na loja local, depois em uma loja um pouco maior e, finalmente, em uma loja de departamentos. a visita a cada estabelecimento não é feita de imediato, mas requer tempo de deslocamento. A mesma coisa acontece na hierarquia de cache, isso é chamado de “falha de cache” para que possamos resumir o tempo da seguinte forma:

Tempo de pesquisa = Pesquisa tempo no primeiro cache + período de perda do cache + ... tempo de pesquisa no último cache.

Se o tempo de pesquisa do cache for maior do que o tempo que leva para ir para a RAM principal, o sistema de cache será mal projetado em um processador, pois desafia a finalidade para a qual o cache teria sido criado.

Agora, o problema da latência é mais complexo, pois ao tempo de acesso adicionado pela busca do cache temos que adicionar a latência que é adicionada para buscar os dados na RAM se não for encontrado na RAM. Com que problemas podemos nos encontrar? Bem, por exemplo, todos os canais de memória estão ocupados e a contenção é criada, o que ocorre quando a RAM ocupou canais de memória e está recebendo ou entregando outros dados.

Como a latência afeta a largura de banda?

Curva Latência Ancho de Banda

Conforme visto no gráfico, a latência não é a mesma para toda a largura de banda da memória.

  • Região constante: A latência permanece constante em 40% da largura de banda sustentada.
  • Região linear: Entre 40 e 80% da largura de banda sustentada, a latência aumenta linearmente. Isso ocorre devido ao fato de haver uma supersaturação de solicitações à memória que se acumularam no final devido à contenção.
  • Região exponencial: Nos últimos 20% da seção de largura de banda, a latência dos dados cresce exponencialmente, todos os pedidos de memória que não puderam ser resolvidos no período anterior se acumulam nesta parte, criando contendas entre eles.

Este fenômeno tem uma explicação muito simples, os primeiros pedidos de memória que são respondidos são aqueles que são encontrados primeiro, a maioria deles estão no cache quando esta tem uma cópia, mas os que não estão no cache se acumulam. Uma das diferenças entre caches e RAM é que o primeiro pode suportar vários acessos simultâneos, mas quando a busca por dados ocorre na RAM a latência é muito maior.

Temos a tendência de imaginar a RAM como uma espécie de torrente de água na qual os dados não param de circular na velocidade especificada, quando a RAM não vai realmente mover os dados a menos que tenha uma solicitação para isso. Em outras palavras, a latência afeta a taxa de transferência e, portanto, a largura de banda.

Maneiras de reduzir a latência

3DIC

Uma vez que sabemos que a contenção no acesso aos dados cria latência e isso afeta a largura de banda, temos que pensar em soluções. O mais claro é o fato de aumentar o número de canais de memória com RAM, justamente essa é uma das chaves pela qual a memória HBM tem menor latência de acesso que GDDR6, já que 8 canais de memória permitem menos contenção do que com 2 canais de GDDR6.

A melhor maneira de reduzir a latência seria criar memória tão próxima do processador quanto um cache, mas é impossível criar RAM com capacidade de armazenamento suficiente para ser totalmente funcional. Podemos colocar um chip de memória e conectá-lo via TSV, mas desde que a memória fique tão perto para evitar o afogamento térmico e com isso a largura de banda efetiva.

Nesse caso, como a latência afeta a largura de banda, devido à proximidade entre a memória e o processador, o efeito da latência na memória seria muito menor. A compensação de implementar uma CPU ou GPU com 3DIC? Isso dobraria os custos do PC e o processo de fabricação mais complexo faria com que menos unidades chegassem até nós, logo mais escassez e, portanto, preços ainda mais caros.