O bottleneck von Neumann é uma limitação na produção causada pela arquitetura padrão dos computadores pessoais.
O termo é nomeado para John von Neumann, que desenvolveu a teoria por trás da arquitetura dos computadores modernos. Computadores anteriores eram alimentados com programas e dados para processamento enquanto eles estavam rodando. Von Neumann surgiu com a idéia por trás do computador do programa armazenado, nosso modelo padrão, que também é conhecido como a arquitetura von Neumann. Na arquitetura von Neumann, programas e dados são mantidos na memória; o processador e a memória são separados e os dados se movimentam entre os dois. Nessa configuração, a latência é inevitável.
Outras vezes, nos últimos anos, a velocidade do processador aumentou significativamente. As melhorias na memória, por outro lado, têm sido na maior parte em densidade - a capacidade de armazenar mais dados em menos espaço - em vez de taxas de transferência. Como as velocidades aumentaram, o processador passou uma quantidade crescente de tempo ocioso, esperando que os dados fossem buscados na memória. Não importa quão rápido um determinado processador possa funcionar, na verdade ele está limitado à taxa de transferência permitida pelo gargalo de gargalo. Muitas vezes, um processador mais rápido apenas significa que ele passará mais tempo ocioso.
O gargalo do von Neumann tem sido frequentemente considerado um problema que só pode ser superado através de mudanças significativas nas arquiteturas do computador ou do processador.
Problemas para superar o gargalo do von Neumann incluem:
- Caching -- o armazenamento de dados usados frequentemente em uma área especial (geralmente RAM), de modo que seja mais acessível do que se fosse armazenado na memória principal.
- Prefetching -- movendo alguns dados para o cache antes que sejam solicitados para acelerar o acesso no caso de uma solicitação.
- Multithreading -- gerenciando várias solicitações simultaneamente em threads separados.
- Novos tipos de RAM (memória de acesso aleatório) -- por exemplo, DDR SDRAM, que ativa a saída tanto na borda ascendente quanto na descendente do relógio do sistema ao invés de apenas na borda ascendente, para uma saída potencialmente dupla.
- RAMBUS -- um subsistema de memória composto pela RAM, o controlador de RAM e o barramento (caminho) que conecta a RAM ao microprocessador e dispositivos no computador que o utilizam.
- Processamento em memória (PIM), que integra um processador e memória em um único microchip.
Ver também: taxa de transferência de dados, largura de banda, disco rígido, instrução, entrada/saída (I/O), memória somente leitura (ROM), Guia Rápido para RAM