A system and method for pre-fetching data. A computer program comprising
multiple basic blocks is submitted to a processor for execution. Tables or
other data structures are associated with some or all of the basic blocks
(e.g., a table is associated with, or stores, an instruction address of a
particular basic block). During execution of a basic block, memory
locations of data elements accessed during the executions are stored in
the associated table. After a threshold number of executions, differences
between memory locations of the data elements in successive executions are
then computed. The differences are applied to the last stored memory
locations to generate estimates of the locations for the data elements for
a subsequent execution. Using the estimated locations, the data elements
can be pre-fetched before, or as, the basic block is executed.
Ένα σύστημα και μια μέθοδος για προ- τα στοιχεία. Ένα πρόγραμμα υπολογιστών που περιλαμβάνει τους πολλαπλάσιους βασικούς φραγμούς παρουσιάζεται σε έναν επεξεργαστή για την εκτέλεση. Οι πίνακες ή άλλες δομές δεδομένων συνδέονται με μερικούς ή όλους τους βασικούς φραγμούς (π.χ., ένας πίνακας συνδέεται με, ή καταστήματα, μια διεύθυνση οδηγίας ενός ιδιαίτερου βασικού φραγμού). Κατά τη διάρκεια της εκτέλεσης ενός βασικού φραγμού, οι θέσεις μνήμης των στοιχείων στοιχείων που προσεγγίζονται κατά τη διάρκεια των εκτελέσεων αποθηκεύονται στο σχετικό πίνακα. Μετά από έναν αριθμό κατώτατων ορίων εκτελέσεων, οι διαφορές μεταξύ των θέσεων μνήμης των στοιχείων στοιχείων στις διαδοχικές εκτελέσεις υπολογίζονται έπειτα. Οι διαφορές εφαρμόζονται στις τελευταίες αποθηκευμένες θέσεις μνήμης για να παραγάγουν τις εκτιμήσεις των θέσεων για τα στοιχεία στοιχείων για μια επόμενη εκτέλεση. Χρησιμοποιώντας τις κατ' εκτίμηση θέσεις, τα στοιχεία στοιχείων μπορούν να προ-προσκομιστούν πριν, ή ως, ο βασικός φραγμός εκτελείται.