Additional memory hardware in a computer system which is distinct in
function from the main memory system architecture permits the storage and
retrieval of prefetch addresses and allows the compiler to more
efficiently generate prefetch instructions for execution while traversing
pointer-based or recursive data structures. The additional memory hardware
makes up a content addressable memory (CAM) or a hash table/array memory
that is relatively close in cycle time to the CPU and relatively small
when compared to the main memory system. The additional CAM hardware
permits the compiler to write data access loops which remember the
addresses for each node visited while traversing the linked data structure
by providing storage space to hold a prefetch address or a set of prefetch
addresses. Since the additional CAM is separate from the main memory
system and acts as an alternate cache for holding the prefetch addresses,
it prevents the overwriting of desired information in the regular cache
and thus leaves the regular cache unpolluted. Furthermore, rather than
having the addresses for the entire memory system stored in the CAM, only
the addresses to those data nodes traversed along the pointer-based data
structure are stored and thus remembered, which allows the size of the CAM
to remain relatively small and access to the CAM by the CPU, relatively
fast.
De extra geheugenhardware in een computersysteem dat in functie van de architectuur verschillend is van het hoofdgeheugensysteem laat de opslag en de herwinning van prefetchadressen toe en staat de compiler toe om prefetch instructies voor uitvoering efficiƫnter te produceren terwijl het oversteken van op wijzer-gebaseerde of recursieve gegevensstructuren. De extra geheugenhardware maakt omhoog een inhouds adresseerbaar geheugen (CAM) of een haktafel/seriegeheugen dat in cyclustijd aan cpu wanneer vergeleken bij het hoofdgeheugensysteem vrij dicht en vrij klein is. De extra CAM hardware laat de compiler toe om de lijnen van de gegevenstoegang te schrijven die de adressen voor elke knoop herinneren die terwijl het oversteken van de verbonden gegevensstructuur door opslagruimte te verstrekken wordt bezocht om een prefetchadres of een reeks prefetchadressen te bevatten. Aangezien extra CAM afzonderlijk van het hoofdgeheugensysteem is en als afwisselend geheim voorgeheugen voor het houden van de prefetchadressen dienst doet, verhindert het het beschrijven van gewenste informatie in het regelmatige geheime voorgeheugen en verlaat zo het regelmatige geheime voorgeheugen niet verontreinigd. Voorts eerder dan het hebben van de adressen voor het volledige geheugensysteem dat in CAM wordt opgeslagen, slechts worden de toespraken aan die gegevensknopen die langs de op wijzer-gebaseerde gegevensstructuur zijn overgestoken opgeslagen en zo herinnerd, die de grootte van CAM om en toegang tot CAM door cpu vrij klein verleent te blijven, vrij snel.