An apparatus and methods for optimizing prefetch performance. Logical ones
are shifted into the bits of a shift register from the left for each
instruction address prefetched. As instruction addresses are fetched by
the processor, logical zeros are shifted into the bit positions of the
shift register from the right. Once initiated, prefetching continues until
a logical one is stored in the nth-bit of the shift register. Detection of
this logical one in the n-th bit causes prefetching to cease until a
prefetched instruction address is removed from the prefetched instruction
address register and a logical zero is shifted back into the n-th bit of
the shift register. Thus, autonomous prefetch agents are prevented from
prefetching too far ahead of the current instruction pointer resulting in
wasted memory bandwidth and the replacement of useful instruction in the
instruction cache.
Un matériel et méthodes pour optimiser l'exécution de prefetch. Les logiques sont décalés dans le peu d'un registre à décalage de la gauche pour chaque adresse d'instruction prefetched. Pendant que des adresses d'instruction sont cherchées par le processeur, des zéros logiques sont décalés dans les positions de peu du registre à décalage de la droite. Une fois que lancé, prefetching continue jusqu'à ce que logique soit stocké dans le nième-peu du registre à décalage. La détection de celle-ci logique dans le nième peu cause prefetching à cesser jusqu'à ce qu'a prefetched l'adresse d'instruction soit enlevé du prefetched le registre d'adresse d'instruction et un zéro logique est décalé de nouveau dans le nième peu du registre à décalage. Ainsi, des agents autonomes de prefetch sont empêchés de prefetching trop loin en avant de l'indicateur d'instruction courant ayant pour résultat la largeur de bande gaspillée de mémoire et du remplacement de l'instruction utile dans la cachette d'instruction.