Um curioso projecto chamado Tailslayer contorna as limitações das memórias RAM e pode acelerar os acessos mais de 10x.
Numa altura em que tanto se fala da falta de optimização do software moderno - que faz com que computadores extremamente poderosos continuem a parecer "lentos" nas operações do dia a dia, por vezes piores até do que se tinha em computadores pré-históricos do passado - temos um projecto que mergulha de cabeça num ponto crucial: o dos tempos de acesso à memória RAM.
Para quem se interessa por conhecer o funcionamento interno de um computador, a memória RAM é vista como sendo a "memória rápida" que o computador tem. O problema é que, devido às velocidades e capacidades dos CPUs modernos, até a memória RAM já se tornou bastante lenta. Um CPU moderno pode ter que esperar cerca de 200 ciclos enquanto aguarda pela chegada de um valor lido da RAM, ou até significativamente mais, se a apanhar num mau momento. Isto porque as memórias RAM mais comuns nos PCs são memórias dinâmicas, que sofrem de um pequeno problema.
Ao contrário das memórias RAM estáticas (SRAM), que mantêm o estado dos bits - usando mais hardware por bit, e portanto, mais caras e com menor densidade - as memórias dinâmicas (DRAM) usam uma batota para manter o seu estado. Essa batota faz com que as suas células estejam permanentemente a perder a carga (e o estado), fazendo com que sejam necessários ciclos constantes de "refrescamento" para que os dados se mantenham. No passado, quando usadas com CPUs extremamente mais lentos, esses ciclos eram (comparativamente) extremamente rápidos e nem eram perceptíveis. Mas, nos CPUs actuais, esses ciclos tornam-se agora num elemento que aumenta consideravelmente o tempo que o CPU tem que passar à espera - se quiser aceder a uma célula que esteja a ser refrescada.
Para a grande maioria dos utilizadores e programas, este detalhe técnico não tem impacto significativo no dia a dia. Estamos a falar de coisas na ordem das centenas de nanosegundos, e os CPUs modernos têm memória cache que reduz ainda mais este problema. Mas, para casos específicos em que todos os nanosegundos contam, isto é algo que pode merecer atenção extra - e é aí que entra este Tailslayer.
De forma simplificada, o Tailslayer aplica o conceito de distribuir os dados na memória RAM por diferentes posições, e depois pedir a leitura simultânea dos mesmos, aceitando aquele que for mais rápido a chegar. A ideia é a de que, em vez de arriscar que os dados necessários apanhem o chip RAM no pior momento (num ciclo de refrescamento), será extremamente improvável que isso aconteça em simultâneo em dois locais diferentes da RAM.
Os testes comprovam os resultados práticos desta solução, que pode fazer com que as leituras nos piores casos possíveis (que já representam uma fracção reduzida de todas as leituras) passem de mais de 1000 ns para cxerca de 100 ns!
Note-se que isto não vai fazer com que, milagrosamente, todos os programas "lentos" passem subitamente a ficar "rápidos". Isto é algo bastante específico, que visa reduzir a latência do acesso à memória que pode ocorrer em cerca de 0.001% dos acessos. Mas, para aqueles que não se podem dar ao luxo de perder qualquer nanosegundo, isto será certamente a melhor notícia do ano até ao momento.
2026/04/11
Subscrever:
Enviar feedback (Atom)




















Sem comentários:
Enviar um comentário (problemas a comentar?)