Processamento de Desvios
Como dissemos várias vezes, um dos principais problemas para o processador é ter muitos erros de cache, porque a unidade de busca tem que acessar diretamente a memória RAM lenta, e assim deixar o sistema lento.Normalmente o uso da memória cache evita bem isso, mas existe uma situação típica em que o controlador de cache falha: desvios condicionais. Se no meio do programa houver uma instrução chamada JMP (“jump” ou “vá para”) mandando o programa para uma posição de memória completamente diferente, essa nova posição não será carregada na memória cache L2, fazendo com que a unidade de busca vá buscar aquela posição diretamente na memória RAM. Para resolver essa questão, o controlador de cache de processadores modernos analisa o bloco de memória carregado e sempre que encontrar uma instrução JMP lá carregará o bloco de memória para aquela posição na memória cache L2 antes que o processador alcance aquela instrução JMP.
Figura 8: Situação de desvio incondicional.
Isso é bastante fácil de implementar, o problema é que quando o programa apresenta um desvio condicional, isto é, o endereço para onde o programa deve se dirigir depende de uma condição até então desconhecida. Por exemplo, se a =< b salta para o endereço 1, ou se a > b salta para o endereço 2. Nós ilustramos esse exemplo na Figura 9. Isso resultaria em um erro de cache, porque os valores de a e b são desconhecidos e o controlador de cache estaria procurando apenas por instruções do tipo JMP. A solução: o controlador de cache carrega ambas as condições na memória cache.Mais tarde, quando o processador processar a instrução de desvio condicional, ele simplesmente descartará aquela que não foi escolhida. É melhor carregar a memória cache com dados desnecessários do que acessar diretamente a memória RAM.
Figura 9: Situação de desvio condicional.
- 2
- 2
Respostas recomendadas
Crie uma conta ou entre para comentar
Você precisa ser um usuário para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar agora