Como CPUs Modernas Predizem Eficientemente Loops de Interpretadores de Bytecode
Ao investigar o desempenho de um novo interpretador Python, o autor descobriu que CPUs modernas podem prever com eficiência saltos indiretos dentro de loops de interpretadores de bytecode. Isso é alcançado por meio de preditores de ramificação avançados, como TAGE e ITTAGE. Esses preditores mapeiam o contador de programa (PC) e seu histórico para o comportamento de execução passado, usando várias tabelas com comprimentos de histórico que aumentam geometricamente para escolher dinamicamente a melhor previsão. O autor explora a aplicação dos princípios do ITTAGE à fuzzing guiada por cobertura e à exploração do estado do programa, sugerindo que isso pode levar a uma melhor compreensão e exploração de interpretadores e programas semelhantes.
Leia mais