GR20170200042U - Retention data rocessing via cache memory - Google Patents
Retention data rocessing via cache memory Download PDFInfo
- Publication number
- GR20170200042U GR20170200042U GR20170200042U GR20170200042U GR20170200042U GR 20170200042 U GR20170200042 U GR 20170200042U GR 20170200042 U GR20170200042 U GR 20170200042U GR 20170200042 U GR20170200042 U GR 20170200042U GR 20170200042 U GR20170200042 U GR 20170200042U
- Authority
- GR
- Greece
- Prior art keywords
- cache
- data
- entry
- retention
- dedicated
- Prior art date
Links
- 230000014759 maintenance of location Effects 0.000 title claims abstract description 49
- 230000015654 memory Effects 0.000 title claims abstract description 37
- 238000013500 data storage Methods 0.000 claims abstract description 32
- 238000004891 communication Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000012546 transfer Methods 0.000 claims abstract description 20
- 239000000523 sample Substances 0.000 claims description 13
- 239000000969 carrier Substances 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Abstract
Description
ΔΙΑΧΕΙΡΙΣΗ ΔΕΔΟΜΕΝΩΝ ΣΥΓΚΡΑΤΗΣΗΣ ΜΕΣΩ ΚΡΥΦΗΣ ΜΝΗΜΗΣ MANAGING RETENTION DATA THROUGH CACHE
Αυτή η δημοσιοποίηση σχετίζεται με το πεδίο των συστημάτων επεξεργασίας δεδομένων. Πιο συγκεκριμένα, η παρούσα δημοσιοποίηση σχετίζεται με συστήματα επεξεργασίας δεδομένων που ενσωματώνουν μια κρυφή μνήμη και χρησιμοποιούν δεδομένα συγκράτησης που σχετίζονται με εγγραφές κρυφής μνήμης για τον έλεγχο της συγκράτησης εγγραφών κρυφής μνήμης εντός της κρυφής μνήμης. This disclosure relates to the field of data processing systems. More particularly, the present disclosure relates to data processing systems that incorporate a cache and use retention data associated with cache entries to control the retention of cache entries within the cache.
Είναι γνωστή η παροχή συστημάτων επεξεργασίας δεδομένων με ιεραρχίες κρυφής μνήμης για τη βελτίωση της ταχύτητας και της αποτελεσματικότητας της επεξεργασίας δεδομένων. Στα πλαίσια τέτοιων ιεραρχιών κρυφής μνήμης είναι γνωστή, για παράδειγμα, η παροχή μεμονωμένων, αποκλειστικών μικρών κρυφών μνημών κοντά σε έναν πυρήνα επεξεργαστή με μια ή περισσότερες μεγαλύτερες κοινόχρηστες κρυφές μνήμες σε ένα επίπεδο μακρύτερα από τους πυρήνες του επεξεργαστή και οι οποίες χρησιμοποιούνται από κοινού ανάμεσα στους πυρήνες του επεξεργαστή. Στα πλαίσια τέτοιων ιεραρχιών κρυφής μνήμης, είναι δυνατή η αποθήκευση μιας μεμονωμένης εγγραφής κρυφής μνήμης εντός των μικρών κρυφών μνημών χαμηλού επίπεδου κοντά στους πυρήνες του επεξεργαστή και/ή εντός των μεγαλύτερων κρυφών μνημών υψηλότερου επίπεδου μακρύτερα από και οι οποίες χρησιμοποιούνται από κοινού ανάμεσα στους πυρήνες του επεξεργαστή. Για να διατηρηθεί η συμφωνία μεταξύ των διαφόρων αντιγράφων μιας εγγραφής κρυφής μνήμης η οποία μπορεί να αποθηκεύεται σε διαφορετικά τμήματα της ιεραρχίας κρυφής μνήμης και σε μια κύρια μνήμη, είναι γνωστή η παροχή μηχανισμών συμφωνίας κρυφών μνημών συμπεριλαμβανομένου ενός ή περισσότερων φίλτρων έρευνας, τα οποία έχουν τη δυνατότητα να υποδεικνύουν ποιες εγγραφές κρυφής μνήμης αποθηκεύονται σε ποια τμήματα μιας ιεραρχίας κρυφής μνήμης ή ενός συστήματος μνήμης. It is known to provide data processing systems with cache hierarchies to improve the speed and efficiency of data processing. Within such cache hierarchies it is known, for example, to provide individual, dedicated small caches close to a processor core with one or more larger shared caches at a level further away from the processor cores and which are shared between processor cores. Within such cache hierarchies, it is possible to store a single cache entry within the small low-level caches close to the processor cores and/or within the larger, higher-level caches further away from and shared among the processor cores processor. To maintain agreement between different copies of a cache entry which may be stored in different parts of the cache hierarchy and in a main memory, it is known to provide cache agreement mechanisms including one or more lookup filters, which have the ability to indicate which cache entries are stored in which parts of a cache hierarchy or memory system.
Τουλάχιστον ορισμένες υλοποιήσεις της παρούσας δημοσιοποίησης παρέχουν μια διάταξη για την επεξεργασία δεδομένων, η οποία περιλαμβάνει: At least some embodiments of the present disclosure provide a provision for processing data, which includes:
μια πρώτη κρυφή μνήμη, a first cache,
μια δεύτερη κρυφή μνήμη, με την εν λόγω πρώτη κρυφή μνήμη να επικοινωνεί με την εν λόγω δεύτερη κρυφή μνήμη μέσω μιας διασύνδεσης επικοινωνίας, a second cache, said first cache communicating with said second cache via a communication interface;
ένα φίλτρο έρευνας που βρίσκεται μαζί με την εν λόγω δεύτερη κρυφή μνήμη σε μια πλευρά της εν λόγω διασύνδεσης επικοινωνίας και εξυπηρετεί την ιχνηλάτηση των εγγραφών κρυφής μνήμης που αποθηκεύονται στην εν λόγω πρώτη κρυφή μνήμη σε μια άλλη πλευρά της εν λόγω διασύνδεσης επικοινωνίας, με το εν λόγω φίλτρο έρευνας να περιλαμβάνει ένα κύκλωμα αποθήκευσης δεδομένων συγκράτησης για την αποθήκευση δεδομένων συγκράτησης για τον έλεγχο συγκράτησης των εγγραφών κρυφής μνήμης εντός τουλάχιστον της εν λόγω δεύτερης κρυφής μνήμης, και a search filter co-located with said second cache on one side of said communication interface and serving to track cache entries stored in said first cache on another side of said communication interface, with said search filter including a retention data storage circuit for storing retention data for checking retention of cache entries within at least said second cache, and
κύκλωμα μεταφοράς δεδομένων συγκράτησης hold data transfer circuit
για τη μεταφορά δεδομένων συγκράτησης για μια εγγραφή κρυφής μνήμης από την εν λόγω δεύτερη κρυφή μνήμη στο εν λόγω κύκλωμα αποθήκευσης δεδομένων συγκράτησης όταν η εν λόγω εγγραφή κρυφής μνήμης μεταφέρεται από την εν for transferring hold data for a cache entry from said second cache to said hold data storage circuit when said cache entry is transferred from said
λόγω δεύτερη κρυφή μνήμη στην εν λόγω πρώτη κρυφή μνήμη, και due second cache to said first cache, and
για τη μεταφορά των εν λόγω δεδομένων συγκράτησης για την εν λόγω εγγραφή κρυφής μνήμης από το εν λόγω κύκλωμα αποθήκευσης δεδομένων συγκράτησης στην εν λόγω δεύτερη κρυφή μνήμη όταν η εν λόγω εγγραφή κρυφής μνήμης μεταφέρεται από την εν λόγω πρώτη κρυφή μνήμη στην εν λόγω δεύτερη κρυφή μνήμη. for transferring said hold data for said cache entry from said hold data storage circuit to said second cache when said cache entry is transferred from said first cache to said second cache .
Τουλάχιστον ορισμένες υλοποιήσεις της παρούσας δημοσιοποίησης παρέχουν μια διάταξη για την επεξεργασία δεδομένων, η οποία περιλαμβάνει: At least some embodiments of the present disclosure provide a provision for processing data, which includes:
μέσα πρώτης κρυφής μνήμης για την αποθήκευση εγγραφών κρυφής μνήμης, first cache media for storing cache entries,
μέσα δεύτερης κρυφής μνήμης για την αποθήκευση εγγραφών κρυφής μνήμης, με τα εν λόγω μέσα πρώτης κρυφής μνήμης να επικοινωνούν με τα εν λόγω μέσα δεύτερης κρυφής μνήμης μέσω μιας διασύνδεσης επικοινωνίας, second cache means for storing cache entries, said first cache means communicating with said second cache means via a communication interface;
μέσα φίλτρου έρευνας για την πραγματοποίηση χειρισμών έρευνας κρυφής μνήμης και τα οποία βρίσκονται μαζί με τα εν λόγω μέσα δεύτερης κρυφής μνήμης σε μια πλευρά της εν λόγω διασύνδεσης επικοινωνίας και εξυπηρετούν για την ιχνηλάτηση των εγγραφών κρυφής μνήμης που αποθηκεύονται στα εν λόγω μέσα πρώτης κρυφής μνήμης σε μια άλλη πλευρά της εν λόγω διασύνδεσης επικοινωνίας, με τα εν λόγω μέσα φίλτρου έρευνας να περιλαμβάνουν μέσα αποθήκευσης δεδομένων συγκράτησης για την αποθήκευση δεδομένων συγκράτησης για τον έλεγχο συγκράτησης των εγγραφών κρυφής μνήμης εντός τουλάχιστον των εν λόγω μέσων δεύτερης κρυφής μνήμης, και probe filter means for performing cache probe operations and located together with said second cache means on one side of said communication interface and serving to trace cache entries stored in said first cache means to another side of said communication interface, said probe filter means including retention data storage means for storing retention data for checking retention of cache entries within at least said second cache means, and
μέσα μεταφοράς δεδομένων συγκράτησης retention data carriers
για τη μεταφορά δεδομένων συγκράτησης για μια εγγραφή κρυφής μνήμης από τα εν λόγω μέσα δεύτερης κρυφής μνήμης στα εν λόγω μέσα πρώτης κρυφής μνήμης όταν η εν λόγω εγγραφή κρυφής μνήμης μεταφέρεται από τα εν λόγω μέσα δεύτερης κρυφής μνήμης στα εν λόγω μέσα πρώτης κρυφής μνήμης, και για τη μεταφορά των εν λόγω δεδομένων συγκράτησης για την εν λόγω εγγραφή κρυφής μνήμης από τα μέσα αποθήκευσης δεδομένων συγκράτησης στα εν λόγω μέσα δεύτερης κρυφής μνήμης όταν η εν λόγω εγγραφή κρυφής μνήμης μεταφέρεται από τα εν λόγω μέσα πρώτης κρυφής μνήμης στα εν λόγω μέσα δεύτερης κρυφής μνήμης. for transferring hold data for a cache entry from said second cache media to said first cache media when said cache entry is transferred from said second cache media to said first cache media, and for transferring said retention data for said cache entry from said retention data storage media to said second cache media when said cache entry is transferred from said first cache media to said second cache media memory.
Τουλάχιστον ορισμένες υλοποιήσεις της παρούσας δημοσιοποίησης παρέχουν μια μέθοδο επεξεργασίας δεδομένων η οποία περιλαμβάνει: At least some embodiments of the present disclosure provide a data processing method comprising:
την αποθήκευση εγγραφών κρυφής μνήμης εντός της πρώτης κρυφής μνήμης, storing cache entries within the first cache;
την αποθήκευση εγγραφών κρυφής μνήμης εντός της δεύτερης κρυφής μνήμης, storing cache entries within the second cache;
την επικοινωνία μεταξύ της εν λόγω πρώτης κρυφής μνήμης και της εν λόγω δεύτερης μνήμης μέσω μιας διασύνδεσης επικοινωνίας, communicating between said first cache and said second memory via a communication interface;
την πραγματοποίηση χειρισμών έρευνας κρυφής μνήμης με ένα φίλτρο έρευνας που βρίσκεται μαζί με την εν λόγω δεύτερη κρυφή μνήμη σε μια πλευρά της εν λόγω διασύνδεσης επικοινωνίας και την εξυπηρέτηση ιχνηλάτησης των εγγραφών κρυφής μνήμης που αποθηκεύονται στην εν λόγω πρώτη κρυφή μνήμη σε μια πλευρά της εν λόγω διασύνδεσης επικοινωνίας, με το εν λόγω φίλτρο έρευνας να περιλαμβάνει ένα κύκλωμα αποθήκευσης δεδομένων συγκράτησης για την αποθήκευση δεδομένων συγκράτησης για τον έλεγχο της συγκράτησης των εγγραφών κρυφής μνήμης εντός τουλάχιστον της εν λόγω δεύτερης κρυφής μνήμης, και performing cache lookup operations with a lookup filter co-located with said second cache on one side of said communication interface and serving to trace cache entries stored in said first cache on one side of said communication interface, said probe filter including a retention data storage circuit for storing retention data for controlling retention of cache entries within at least said second cache, and
τη μεταφορά δεδομένων συγκράτησης για μια εγγραφή κρυφής μνήμης από την εν λόγω δεύτερη κρυφή μνήμη στο εν λόγω κύκλωμα αποθήκευσης δεδομένων συγκράτησης όταν η εν λόγω εγγραφή κρυφής μνήμης μεταφέρεται από την εν λόγω δεύτερη κρυφή μνήμη στην εν λόγω πρώτη κρυφή μνήμη, και transferring hold data for a cache entry from said second cache to said hold data storage circuit when said cache entry is transferred from said second cache to said first cache, and
τη μεταφορά των εν λόγω δεδομένων συγκράτησης για την εν λόγω εγγραφή κρυφής μνήμης από το κύκλωμα αποθήκευσης δεδομένων συγκράτησης στην εν λόγω δεύτερη κρυφή μνήμη όταν η εν λόγω εγγραφή κρυφής μνήμης μεταφέρεται από την εν λόγω πρώτη κρυφή μνήμη στην εν λόγω δεύτερη κρυφή μνήμη. transferring said hold data for said cache entry from said hold data storage circuit to said second cache when said cache entry is transferred from said first cache to said second cache.
Θα περιγραφούν τώρα παραδείγματα υλοποιήσεων, μόνο υπό τύπο παραδείγματος, αναφορικά με τα συνοδευτικά σχεδιαγράμματα στα οποία: Exemplary embodiments will now be described, by way of example only, with reference to the accompanying drawings in which:
Το Σχήμα 1 απεικονίζει σχηματικά ένα σύστημα επεξεργασίας δεδομένων που περιλαμβάνει μια ιεραρχία κρυφής μνήμης, Figure 1 schematically illustrates a data processing system that includes a cache hierarchy,
Το Σχήμα 2 είναι ένα διάγραμμα βαθμιδών που απεικονίζει σχηματικά το χειρισμό όταν μια εγγραφή κρυφής μνήμης μεταφέρεται από μια δεύτερη αποκλειστική κρυφή μνήμη σε μια πρώτη αποκλειστική κρυφή μνήμη, Figure 2 is a flowchart schematically illustrating the handling when a cache entry is transferred from a second dedicated cache to a first dedicated cache;
Το Σχήμα 3 είναι ένα διάγραμμα βαθμιδών που απεικονίζει σχηματικά την επεξεργασία όταν μια εγγραφή κρυφής μνήμης μεταφέρεται από την πρώτη αποκλειστική κρυφή μνήμη στη δεύτερη αποκλειστική κρυφή μνήμης, Figure 3 is a flowchart schematically illustrating the processing when a cache entry is transferred from the first dedicated cache to the second dedicated cache;
Το Σχήμα 4 είναι ένα διάγραμμα βαθμιδών που απεικονίζει σχηματικά τον ορισμό μιας τιμής συγκράτησης που σχετίζεται με μια κρυφή μνήμη, και Figure 4 is a block diagram schematically illustrating the definition of a hold value associated with a cache, and
Το Σχήμα 5 απεικονίζει σχηματικά ένα περαιτέρω παράδειγμα υλοποίησης ενός συστήματος επεξεργασίας δεδομένων που περιλαμβάνει μια ιεραρχία κρυφής μνήμης. Figure 5 schematically illustrates a further example implementation of a data processing system including a cache hierarchy.
Το Σχήμα 1 απεικονίζει σχηματικά ένα σύστημα επεξεργασίας δεδομένων 2 που περιλαμβάνει ένα πλήθος πυρήνων επεξεργαστή 4, 6 κάθε ένας από τους οποίους έχει μια συσχετισμένη πρώτη αποκλειστική κρυφή μνήμη 8, 10. Οι πρώτες αποκλειστικές κρυφές μνήμες 8, 10 επικοινωνούν μέσω μιας διασύνδεσης επικοινωνίας 12, όπως για παράδειγμα, μια διασύνδεση συμφωνίας που χρησιμοποιεί ένα πρωτόκολλο πρόσβασης σύμφωνης μνήμης (π.χ. χρησιμοποιώντας ένα σύμφωνο πρωτόκολλο αρχιτεκτονικής), με μια δεύτερη αποκλειστική κρυφή μνήμη 14, η οποία στο παρόν παράδειγμα υλοποίησης χρησιμοποιείται από κοινού από τους πυρήνες επεξεργαστή 4, 6 και τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Μια κύρια μνήμη 16 παρέχει δεδομένα τόσο στη δεύτερη αποκλειστική κρυφή μνήμη 14 όσο και, μέσω μιας διαδρομής παράκαμψης, απευθείας σε οποιαδήποτε από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10 όταν αυτές πραγματοποιούν μια φόρτωση δεδομένων μιας εγγραφής κρυφής μνήμης η οποία δε βρίσκεται εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14 (μια αστοχία εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14). Θα εκτιμηθεί ότι σε άλλα παραδείγματα υλοποιήσεων, οι πρώτες αποκλειστικές κρυφές μνήμες 8, 10 και η δεύτερη αποκλειστική κρυφή μνήμη 14 δε χρειάζεται να είναι αποκλειστικές και μπορούν αντίθετα να είναι μη αποκλειστικές ή ψευδώς αποκλειστικές. Figure 1 schematically illustrates a data processing system 2 comprising a plurality of processor cores 4, 6 each of which has an associated first dedicated cache 8, 10. The first dedicated caches 8, 10 communicate via a communication interface 12, such as, for example, an agreement interface using a conformal memory access protocol (eg using a conformal architecture protocol), with a second dedicated cache 14, which in the present example embodiment is shared by the processor cores 4, 6 and the first dedicated caches 8, 10. A main memory 16 supplies data both to the second dedicated cache 14 and, via a bypass path, directly to any of the first dedicated caches 8, 10 when they perform a data load of a cache entry that is not within the second exclusive cache memory 14 (a miss within the second dedicated cache 14). It will be appreciated that in other example implementations, the first exclusive caches 8, 10 and the second exclusive cache 14 need not be exclusive and may instead be non-exclusive or pseudo-exclusive.
Στο παράδειγμα υλοποίησης του Σχήματος 1, οι πρώτες αποκλειστικές κρυφές μνήμες 8, 10 και η δεύτερη αποκλειστική κρυφή μνήμη 14 λειτουργούν με έναν αποκλειστικό τρόπο σύμφωνα με τον οποίο μια δεδομένη εγγραφή κρυφής μνήμης αποθηκεύεται εντός μιας, αλλά όχι και των δύο, είτε της δεύτερης αποκλειστικής κρυφής μνήμης 14 ή μιας από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Μπορεί να είναι ότι μια εγγραφή κρυφής μνήμης χρησιμοποιείται από κοινού και αποθηκεύεται και στις δύο αποκλειστικές κρυφές μνήμες 8, 10, αλλά δε θα αποθηκεύεται ταυτόχρονα και εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14. Παρόμοια, όταν μια εγγραφή κρυφής μνήμης αποθηκεύεται εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14, δε θα αποθηκεύεται εντός οποιασδήποτε από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Θα εκτιμηθεί ότι είναι δυνατοί και άλλοι τρόποι λειτουργίας ιεραρχιών κρυφής μνήμης, όπως οι περιεκτικοί τρόποι λειτουργίας ή οι μερικώς αποκλειστικοί τρόποι λειτουργίας. Οι παρούσες τεχνικές μπορούν να εφαρμόζονται σε ένα μεγάλο εύρος διαφορετικών τύπων ιεραρχίας κρυφής μνήμης και δεν περιορίζονται σε εφαρμογή σε ιεραρχίες κρυφής μνήμης που λειτουργούν με αυστη ρά αποκλειστικό τρόπο . In the example embodiment of Figure 1, the first dedicated caches 8, 10 and the second dedicated cache 14 operate in a dedicated manner whereby a given cache entry is stored within one, but not both, of either the second dedicated cache 14 or one of the first dedicated caches 8, 10. It may be that a cache entry is shared and stored in both dedicated caches 8, 10, but will not be simultaneously stored in the second dedicated cache 14. Similarly, when a cache entry is stored within the second exclusive cache 14, it will not be stored within any of the first exclusive caches 8, 10. It will be appreciated that other modes of operation of cache hierarchies are possible, such as inclusive modes mode or the partially exclusive modes of operation. The present techniques can be applied to a wide range of different types of cache hierarchies and are not limited in application to cache hierarchies that operate in a strictly exclusive manner.
Ένα φίλτρο έρευνας 18 συνδέεται με τη δεύτερη αποκλειστική κρυφή μνήμη 14 στην ίδια πλευρά της διασύνδεσης επικοινωνίας 12 με τη δεύτερη αποκλειστική κρυφή μνήμη 14. Το φίλτρο έρευνας 18 εξυπηρετεί την ιχνηλάτηση των εγγραφών κρυφής μνήμης που αποθηκεύονται εντός των πρώτων αποκλειστικών κρυφών μνημών 8, 10, ώστε όταν πρόκειται να πραγματοποιηθεί μια πρόσβαση στη μνήμη, είναι δυνατή η πραγματοποίηση ενός ελέγχου χρησιμοποιώντας το φίλτρο έρευνας 14 κατά πόσο μια εγγραφή κρυφής μνήμης αποθηκεύεται εντός οποιοσδήποτε από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10 χωρίς ανάγκη αποστολής ενός αιτήματος έρευνας μέσω της διασύνδεσης επικοινωνίας 12 σε αυτές τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Το φίλτρο έρευνας 18 περιλαμβάνει διαφορετικούς τύπους αποθηκευτικού χώρου δεδομένων συμπεριλαμβανομένων των κυκλωμάτων αποθήκευσης δεδομένων ετικέτας, των κυκλωμάτων αποθήκευσης δεδομένων συγκράτησης και των κυκλωμάτων αποθήκευσης δεδομένων συμφωνίας. A probe filter 18 is connected to the second dedicated cache 14 on the same side of the communication interface 12 as the second dedicated cache 14. The probe filter 18 serves to trace the cache entries stored within the first dedicated caches 8, 10, so that when a memory access is to be made, it is possible to perform a check using the probe filter 14 whether a cache entry is stored within any of the first dedicated caches 8, 10 without the need to send a probe request over the communication interface 12 in these first dedicated caches 8, 10. The search filter 18 includes different types of data storage including tag data storage circuits, hold data storage circuits, and agreement data storage circuits.
Το κύκλωμα αποθήκευσης δεδομένων ετικέτας αποθηκεύει δεδομένα ετικέτας ενδεικτικά των διευθύνσεων μνήμης των αντίστοιχων εγγραφών κρυφής μνήμης που αποθηκεύονται εντός των πρώτων αποκλειστικών κρυφών μνημών 8, 10. Το κύκλωμα αποθήκευσης δεδομένων συμφωνίας αποθηκεύει δεδομένα συμφωνίας για την ιχνηλάτηση της κατάστασης συμφωνίας των εγγραφών που αποθηκεύονται εντός των πρώτων αποκλειστικών κρυφών μνημών 8, 10, όπως κατά πόσο μια εγγραφή κρυφής μνήμης εντός μιας συγκεκριμένης πρώτης αποκλειστικής κρυφής μνήμης 8, 10 αποθηκεύεται σε μια τροποποιημένη, αποκλειστική, κοινόχρηστη ή άκυρη κατάσταση (π.χ. σύμφωνα με τα πρωτόκολλα συμφωνίας MESI). Το φίλτρο έρευνας 18 περαιτέρω περιλαμβάνει ένα κύκλωμα αποθήκευσης δεδομένων συγκράτησης που αποθηκεύει τα δεδομένα συγκράτησης για τον έλεγχο της συγκράτησης των εγγραφών κρυφής μνήμης εντός τουλάχιστον της δεύτερης αποκλειστικής κρυφής μνήμης 14. Εφόσον τα δεδομένα συγκράτησης και τα δεδομένα συμφωνίας σχετίζονται με συγκεκριμένες εγγραφές κρυφής μνήμης, τα δεδομένα ετικέτας μπορούν να χρησιμοποιούνται ώστε να υποδεικνύουν τη συγκεκριμένη εμπλεκόμενη εγγραφή κρυφής μνήμης και συνεπώς τα δεδομένα συγκράτησης και τα δεδομένα συμφωνίας αποθηκεύονται εντός του φίλτρου έρευνας 18 για κάθε εγγραφή δεδομένων ετικέτας που αντιστοιχεί σε μια εγγραφή κρυφής μνήμης. The tag data storage circuit stores tag data indicative of the memory addresses of the corresponding cache entries stored within the first dedicated caches 8, 10. The agreement data storage circuit stores agreement data for tracking the agreement status of the entries stored within the first of exclusive caches 8, 10, such as whether a cache entry within a particular first exclusive cache 8, 10 is stored in a modified, exclusive, shared, or invalid state (eg, according to MESI agreement protocols). The search filter 18 further includes a retention data storage circuit that stores the retention data for controlling the retention of cache entries within at least the second dedicated cache memory 14. Since the retention data and agreement data are associated with particular cache entries, the tag data may be used to indicate the particular cache entry involved, and thus hold data and match data are stored within the lookup filter 18 for each tag data entry corresponding to a cache entry.
Όπως εικονίζεται στο Σχήμα 1, κάθε εγγραφή κρυφής μνήμης εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14 ενσωματώνει δεδομένα συγκράτησης τα οποία σχετίζονται με αυτή την εγγραφή κρυφής μνήμης. Αυτά τα δεδομένα συγκράτησης εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14 χρησιμοποιούνται από ένα κύκλωμα έξωσης 22 για τον έλεγχο της επιλογής μιας υποψήφιας εγγραφής κρυφής μνήμης όταν μια εγγραφή κρυφής μνήμης πρέπει να εξωθηθεί από τη δεύτερη αποκλειστική κρυφή μνήμη 14 ώστε να παράσχει χώρο για μια νέα εγγραφή κρυφής μνήμης που πρόκειται να αποθηκευτεί στη δεύτερη αποκλειστική κρυφή μνήμη 14. Τα δεδομένα συγκράτησης μπορούν να πάρουν ένα πλήθος διαφορετικών μορφών, όπως η ιχνηλάτηση δεδομένων πόσο πρόσφατα πραγματοποιήθηκε πρόσβαση σε μια εγγραφή κρυφής μνήμης, π.χ. με τη χρήση ενός αλγορίθμου έξωσης όπως ένας αλγόριθμος έξωσης της παλαιότερα χρησιμοποιούμενης. Ένα άλλο παράδειγμα μορφής δεδομένων συγκράτησης μπορεί να είναι δεδομένα τα οποία είναι ενδεικτικά κατά πόσο μια δεδομένη εγγραφή κρυφής μνήμης έχει φορτωθεί από τη δεύτερη αποκλειστική κρυφή μνήμη 14 σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Όταν ένας από τους πυρήνες επεξεργαστή 4, 6, ζητά τη φόρτωση δεδομένων που περιλαμβάνονται εντός μιας εγγραφής κρυφής μνήμης (γραμμή κρυφής μνήμης) η οποία δεν έχει προηγουμένως μεταφερθεί από την κύρια μνήμη 16, η εμπλεκόμενη εγγραφή κρυφής μνήμης παρακάμπτει την αποθήκευση εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14 και φορτώνεται απευθείας στην πρώτη αποκλειστική κρυφή μνήμη 8, 10 η οποία τη ζήτησε. Τα δεδομένα συγκράτησης που σχετίζονται με αυτή την εγγραφή κρυφής μνήμης ορίζονται να υποδηλώνουν ότι δεν έχουν υποβληθεί σε μια φόρτωση από τη δεύτερη αποκλειστική κρυφή μνήμη 14 σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Τα δεδομένα συγκράτησης για αυτή την εγγραφή κρυφής μνήμης που έχουν φορτωθεί απευθείας σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10 αποθηκεύονται εντός του κυκλώματος αποθήκευσης δεδομένων συγκράτησης 18. Η εγγραφή εντός του φίλτρου έρευνας 18 για την εμπλεκόμενη εγγραφή κρυφής μνήμης περιλαμβάνει μια ετικέτα ενδεικτική της διεύθυνσης μνήμης για αυτή την εγγραφή κρυφής μνήμης (και η οποία επιτρέπει την αναγνώριση της εγγραφής κρυφής μνήμης) όπως και των δεδομένων συγκράτησης και των δεδομένων συμφωνίας. Τα δεδομένα συγκράτησης για τις εγγραφές κρυφής μνήμης εντός των πρώτων αποκλειστικών κρυφών μνημών 8, 10 αποθηκεύονται εντός του κυκλώματος αποθήκευσης δεδομένων συγκράτησης του φίλτρου έρευνας 18 στην ίδια πλευρά της διασύνδεσης επικοινωνίας 12 με τη δεύτερη αποκλειστική κρυφή μνήμη 14 και δε μεταφέρονται μέσω της διασύνδεσης επικοινωνίας 12 προς τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10 και ούτε αποθηκεύονται σε αυτές. Αυτό εξοικονομεί χώρο αποθήκευσης εντός των πρώτων αποκλειστικών κρυφών μνημών 8, 10 και μειώνει την επιβάρυνση επικοινωνίας και την πολυπλοκότητα της ίδιας της διασύνδεσης επικοινωνίας 12 εφόσον δεν είναι πια υπεύθυνη για τη μεταφορά των δεδομένων συγκράτησης προς και από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. As illustrated in Figure 1, each cache entry within the second dedicated cache 14 incorporates hold data associated with that cache entry. This hold data within the second exclusive cache 14 is used by an eviction circuit 22 to control the selection of a candidate cache entry when a cache entry must be evicted from the second exclusive cache 14 to make room for a new entry cache to be stored in the second dedicated cache 14. The retention data can take a number of different forms, such as tracking data on how recently a cache entry was accessed, e.g. by using an eviction algorithm such as an eviction algorithm previously used. Another example of a form of hold data may be data indicative of whether a given cache entry has been loaded from the second dedicated cache 14 into one of the first dedicated caches 8, 10. When one of the processor cores 4, 6, requests to load data contained within a cache entry (cache line) that has not previously been moved from main memory 16, the cache entry involved bypasses storage within the second dedicated cache 14 and is loaded directly into the first exclusive cache 8, 10 which requested it. The hold data associated with this cache entry is set to indicate that it has not undergone a load from the second dedicated cache 14 to one of the first exclusive caches 8, 10. The hold data for this cache entry which have been loaded directly into one of the first dedicated caches 8, 10 are stored within the data hold circuit 18. The entry within the search filter 18 for the cache entry involved includes a tag indicative of the memory address for that cache entry ( and which allows recognition of the cache entry) as well as hold data and agreement data. The hold data for the cache entries within the first dedicated caches 8, 10 is stored within the hold data storage circuit of the search filter 18 on the same side of the communication interface 12 as the second dedicated cache 14 and is not transferred through the communication interface 12 to the first exclusive caches 8, 10 and are not stored in them either. This saves storage space within the first dedicated caches 8 , 10 and reduces the communication overhead and complexity of the communication interface 12 itself since it is no longer responsible for transferring the hold data to and from the first dedicated caches 8 , 10 .
Όταν μια εγγραφή κρυφής μνήμης εξωθείται από μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10 (με τη χρήση των δικών τους μηχανισμών έξωσης και αλγορίθμων έξωσης), επιστρέφεται στη δεύτερη αποκλειστική κρυφή μνήμη 14. Εάν η εμπλεκόμενη εγγραφή κρυφής μνήμης είχε προηγουμένως φορτωθεί απευθείας από την κύρια μνήμη 16 στην πρώτη αποκλειστική κρυφή μνήμη 8, 10 στην οποία χρειαζόταν, κατά την επιστροφή της στη δεύτερη αποκλειστική κρυφή μνήμη τα δεδομένα συγκράτησής της θα υποδηλώνουν ακόμη ότι μέχρι στιγμής δεν έχει φορτωθεί από τη δεύτερη αποκλειστική κρυφή μνήμη 14 σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Κατόπιν, εάν πριν την έξωση αυτής της εγγραφής κρυφής μνήμης από τη δεύτερη αποκλειστική κρυφή μνήμη 14, πραγματοποιηθεί μια περαιτέρω φόρτωση δεδομένων εντός αυτής της εγγραφής κρυφής μνήμης από έναν από τους πυρήνες επεξεργαστή 4, 6, τότε η εμπλεκόμενη εγγραφή κρυφής μνήμης θα φορτωθεί και πάλι στην κατάλληλη από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10 από τη δεύτερη αποκλειστική κρυφή μνήμη 14 και όχι από την κύρια μνήμη 16. Όταν πραγματοποιηθεί μια τέτοια περαιτέρω φόρτωση, τα δεδομένα συγκράτησης για αυτή την εγγραφή κρυφής μνήμης επιση μαίνονται ώστε να υποδηλώνουν ότι η εμπλεκόμενη εγγραφή κρυφής μνήμης έχει υποβληθεί σε μια φόρτωση από τη δεύτερη αποκλειστική κρυφή μνήμη 14 σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. When a cache entry is evicted from one of the first exclusive caches 8, 10 (using their own eviction mechanisms and eviction algorithms), it is returned to the second exclusive cache 14. If the cache entry involved was previously loaded directly from main memory 16 to the first dedicated cache 8, 10 in which it was needed, on its return to the second dedicated cache its hold data will still indicate that it has not yet been loaded from the second dedicated cache 14 into one of the first exclusive caches 8, 10. Then, if prior to evicting this cache entry from the second exclusive cache 14, a further load of data into this cache entry by one of the processor cores 4, 6 takes place, then the involved cache entry will be reloaded into the appropriate one of the first exclusive caches 8, 10 from second exclusive cache 14 and not from main memory 16. When such a further load occurs, the hold data for that cache entry is marked to indicate that the cache entry involved has undergone a load from the second exclusive cache memory 14 in one of the first dedicated caches 8, 10.
Έχει βρεθεί ότι υπάρχει συσχέτιση μεταξύ της χρησιμότητας συγκράτησης μιας εγγραφής κρυφής μνήμης εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14 και κατά πόσο αυτή η εγγραφή κρυφής μνήμης έχει υποβληθεί προηγουμένως ή όχι σε μια φόρτωση από τη δεύτερη αποκλειστική κρυφή μνήμη 14 σε οποιαδήποτε από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. It has been found that there is a correlation between the utility of holding a cache entry within the second exclusive cache 14 and whether or not that cache entry has previously been subjected to a load from the second exclusive cache 14 to any of the first exclusive caches memories 8, 10.
Εάν μια εγγραφή κρυφής μνήμης φορτωθεί απευθείας από την κύρια μνήμη 16 σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10, εξωθηθεί στη δεύτερη αποκλειστική κρυφή μνήμη 14 και στη συνέχεια δε φορτωθεί και πάλι από αυτή τη δεύτερη αποκλειστική κρυφή μνήμη 14 σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10, τότε είναι πιθανό να είναι χαμηλής εν δυνάμει χρησιμότητας η συγκράτηση αυτής της εγγραφής κρυφής μνήμης εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14. Αντίθετα, μια εγγραφή κρυφής μνήμης η οποία εξωθείται από μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10 προς τη δεύτερη αποκλειστική κρυφή μνήμη 14 και στη συνέχεια φορτώνεται και πάλι από τη δεύτερη αποκλειστική κρυφή μνήμη 14 σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10 είναι πιθανό να έχει υψηλή πιθανότητα επαναχρησιμοποίησης και κατά συνέπεια πιθανό να αξίζει η συγκράτησή της (η μη έξωσή της) εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14. Το κύκλωμα έξωσης 22 χρησιμοποιεί κατά συνέπεια την τιμή των δεδομένων συγκράτησης που είναι ενδεικτική κατά πόσο μια εγγραφή κρυφής μνήμης έχει φορτωθεί ή όχι από τη δεύτερη αποκλειστική κρυφή μνήμη 14 σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10 στα πλαίσια του προσδιορισμού της εγγραφής κρυφής μνήμης η οποία θα πρέπει να επιλέγεται ως υποψήφια εγγραφή κρυφής μνήμης προς έξωση από τη δεύτερη αποκλειστική κρυφή μνήμη 14 όταν απαιτείται περισσότερος χώρος εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14 ώστε να συγκροτούνται οι εγγραφές κρυφής μνήμης που είναι πιθανότερο να επαναχρησιμοποιηθούν. If a cache entry is loaded directly from main memory 16 into one of the first dedicated caches 8, 10, pushed to the second dedicated cache 14, and then not loaded again from this second dedicated cache 14 into one of the first exclusive caches 8, 10, then it is likely to be of little potential utility to hold that cache entry within the second exclusive cache 14. Conversely, a cache entry that is evicted from one of the first exclusive caches 8 , 10 to the second exclusive cache 14 and then loaded again from the second exclusive cache 14 into one of the first exclusive caches 8, 10 is likely to have a high probability of reuse and thus likely to be worth holding ( its non-eviction) within the second exclusive cache 14. The eviction circuit 22 therefore uses the of the retention data indicative of whether or not a cache entry has been loaded from the second exclusive cache 14 into one of the first exclusive caches 8, 10 in determining which cache entry should be selected as candidate cache entry to evict from the second dedicated cache 14 when more space is required within the second dedicated cache 14 to accommodate the cache entries that are most likely to be reused.
Το κύκλωμα μεταφοράς των δεδομένων συγκράτησης 20 συσχετίζεται με τη δεύτερη αποκλειστική κρυφή μνήμη 14 και το φίλτρο έρευνας 18 και εξυπηρετεί στη μεταφορά των δεδομένων μεταφοράς για μια εγγραφή κρυφής μνήμης στο κύκλωμα αποθήκευσης δεδομένων συγκράτησης του φίλτρου έρευνας 18 όταν αυτή η εγγραφή κρυφής μνήμης μεταφέρεται από τη δεύτερη αποκλειστική κρυφή μνήμη 14 σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Όταν η εγγραφή κρυφής μνήμης επιστρέφεται από την πρώτη αποκλειστική κρυφή μνήμη 8, 10 συγκροτώντας αυτή την εγγραφή κρυφής μνήμης στη δεύτερη αποκλειστική κρυφή μνήμη 14, τότε το κύκλωμα μεταφοράς δεδομένων συγκράτησης εξυπηρετεί στην επιστροφή των δεδομένων συγκράτησης που σχετίζονται με αυτή την εγγραφή κρυφής μνήμης στη δεύτερη αποκλειστική κρυφή μνήμη 14 όπου αποθηκεύεται σε συσχέτιση με την εγγραφή κρυφής μνήμης 14. Το κύκλωμα μεταφοράς δεδομένων συγκράτησης 20 είναι υπεύθυνο να τη μεταφορά των δεδομένων συγκράτησης προς και από το κύκλωμα αποθήκευσης δεδομένων συγκράτησης εντός του φίλτρου έρευνας 18 καθώς οι αντίστοιχες εγγραφές κρυφής μνήμης μεταφέρονται διαμέσου της διασύνδεσης επικοινωνίας 12 προς και από μια κατάλληλη από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Όταν μια εγγραφή κρυφής μνήμης φορτώνεται απευθείας από την κύρια μνήμη 16 μέσω της διαδρομής παράκαμψης σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10, μια τιμή συγκράτησης για αυτή την εγγραφή κρυφής μνήμης ορίζεται εκείνη τη χρονική στιγμή και αποθηκεύεται από το κύκλωμα μεταφοράς δεδομένων συγκράτησης στη συσχετισμένη εγγραφή εντός του φίλτρου έρευνας για την εγγραφή κρυφής μνήμης η οποία έχει φορτωθεί στην κατάλληλη από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Σε αυτή την περίπτωση τα δεδομένα συγκράτησης δε μεταφέρονται από τη δεύτερη αποκλειστική κρυφή μνήμη 14, αλλά ορίζονται απευθείας εντός του κυκλώματος αποθήκευσης δεδομένων συγκράτησης του φίλτρου έρευνας 18. Όταν αυτή η εγγραφή κρυφής μνήμης εξωθείται από την πρώτη αποκλειστική κρυφή μνήμη 8, 10 στην οποία συγκρατείται προς τη δεύτερη αποκλειστική κρυφή μνήμη 14, τότε το κύκλωμα μεταφοράς δεδομένων συγκράτησης 20 μεταφέρει τα δεδομένα συγκράτησής του στην εγγραφή εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14. The hold data transfer circuit 20 is associated with the second dedicated cache 14 and the search filter 18 and serves to transfer the transfer data for a cache entry to the hold data storage circuit of the search filter 18 when that cache entry is transferred from the second exclusive cache 14 in one of the first exclusive caches 8, 10. When the cache entry is returned from the first exclusive cache 8, 10 by building this cache entry in the second exclusive cache 14, then the data transfer circuit retention circuit serves to return the retention data associated with this cache entry to the second dedicated cache 14 where it is stored in association with the cache entry 14. The retention data transfer circuit 20 is responsible for transferring the retention data to and from the data storage circuit retention within search filter 18 as the corresponding cache entries are transferred via communication interface 12 to and from an appropriate one of the first dedicated caches 8, 10. When a cache entry is loaded directly from main memory 16 via the bypass path to one of the first dedicated caches 8, 10, a hold value for that cache entry is set at that time and stored by the hold data transfer circuit in the associated entry within the lookup filter for the cache entry loaded in appropriate from the first exclusive caches 8, 10. In this case the hold data is not transferred from the second exclusive cache 14, but is set directly within the hold data storage circuit of the search filter 18. When this cache entry is pushed from the first dedicated cache 8, 10 in which it is held to the second dedicated cache 14 , then the hold data transfer circuit 20 transfers its hold data to the write within the second dedicated cache 14 .
Το Σχήμα 2 είναι ένα διάγραμμα ροής το οποίο απεικονίζει σχηματικά τη διαδικασία μεταφοράς μιας εγγραφής κρυφής μνήμης από τη δεύτερη αποκλειστική κρυφή μνήμη 14 σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Στο βήμα 24 η επεξεργασία περιμένει μέχρι να υπάρξει μια εγγραφή κρυφής μνήμης για μεταφορά από τη δεύτερη αποκλειστική κρυφή μνήμη 14 στην πρώτη αποκλειστική κρυφή μνήμη 8, 10. Αυτή η συνθήκη ικανοποιείται όταν υπάρχει μια επιτυχής ανάγνωση κρυφής μνήμης εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14 μετά από μια ανεπιτυχή ανάγνωση κρυφής μνήμης εντός της κατάλληλης από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Όταν προσδιορίζεται η ανάγκη πραγματοποίησης μιας μεταφοράς στο βήμα 24, η επεξεργασία προχωρά στο βήμα 26 στο οποίο η τιμή των δεδομένων συγκράτησης για την προς μεταφορά εγγραφή κρυφής μνήμης διαβάζεται από τη δεύτερη αποκλειστική κρυφή μνήμη 14. Το βήμα 28 γράφει στη συνέχεια την τιμή των δεδομένων συγκράτησης που διαβάστηκε στο βήμα 26 στο κύκλωμα αποθήκευσης δεδομένων συγκράτησης εντός του φίλτρου έρευνας 18 και σχετίζεται με την τιμή ετικέτας που συγκρατείται από το φίλτρο έρευνας 18 το οποίο πρέπει να ιχνηλατεί την παρουσία της εγγραφής κρυφής μνήμης εντός της πρώτης αποκλειστικής κρυφής μνήμης 8, 10 στην οποία πρόκειται να μεταφερθεί. Το βήμα 30 γράφει την εγγραφή κρυφής μνήμης μέσω της διασύνδεσης επικοινωνίας 12 στην πρώτη αποκλειστική κρυφή μνήμη 8, 10. Το βήμα 32 ακυρώνει την εγγραφή κρυφής μνήμης εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14 σύμφωνα με τον αποκλειστικό τρόπο λειτουργίας αυτού του παραδείγματος υλοποίησης. Figure 2 is a flow diagram schematically illustrating the process of transferring a cache entry from the second dedicated cache 14 to one of the first dedicated caches 8, 10. At step 24 processing waits until a cache entry is available for transfer from the second exclusive cache 14 to the first exclusive cache 8, 10. This condition is satisfied when there is a successful cache read within the second exclusive cache 14 following an unsuccessful cache read within the appropriate of the first exclusive caches 8, 10. When the need to perform a transfer is determined in step 24, processing proceeds to step 26 in which the hold data value for the cache entry to be transferred is read from the second dedicated cache 14. Step 28 writes then the value of the hold data read in step 26 in the store circuit of holding data within lookup filter 18 and is associated with the tag value held by lookup filter 18 which must track the presence of the cache entry within the first dedicated cache 8, 10 to which it is to be transferred. Step 30 writes the cache write via communication interface 12 to the first dedicated cache 8, 10. Step 32 invalidates the cache write within the second dedicated cache 14 according to the exclusive mode of this example embodiment.
Το Σχήμα 3 είναι ένα διάγραμμα ροής το οποίο απεικονίζει σχηματικά τη διαδικασία μεταφοράς μιας εγγραφής κρυφής μνήμης από μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10 στη δεύτερη αποκλειστική κρυφή μνήμη 14. Το βήμα 34 περιμένει μέχρι να υπάρξει μια εγγραφή κρυφής μνήμης προς μεταφορά από μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10 στη δεύτερη αποκλειστική κρυφή μνήμη 14. Η απαίτηση μεταφοράς μιας τέτοιας εγγραφής μπορεί να προκύπτει με μια έξωση από την πρώτη αποκλειστική κρυφή μνήμη 8, 10, όπως αυτή που προκύπτει από τη χρήση ενός μηχανισμού και μιας πολιτικής έξωσης εντός της πρώτης αποκλειστικής κρυφής μνήμης 8, 10 τα οποία μπορούν να έχουν έναν αριθμό διαφορετικών μορφών, όπως η λιγότερο εύλογα χρησιμοποιούμενη (least reasonable used ή LRU), η εξυπηρέτηση εκ περιτροπής (round robin), η τυχαία, κλπ. Όταν προσδιορίζεται μια απαίτηση πραγματοποίησης μιας μεταφοράς στο βήμα 34, η επεξεργασία συνεχίζει στο βήμα 36 στο οποίο η τιμή συγκράτησης για την προς μεταφορά εγγραφή κρυφής μνήμης διαβάζεται από το κύκλωμα αποθήκευσης τιμής συγκράτησης εντός του φίλτρου έρευνας 18 χρησιμοποιώντας την τιμή ετικέτας που σχετίζεται με την προς μεταφορά εγγραφή κρυφής μνήμης για τον προσδιορισμό της κατάλληλης τιμής δεδομένων συγκράτησης εντός του φίλτρου έρευνας 18. Το βήμα 38 γράφει την προς μεταφορά εγγραφή κρυφής μνήμης μέσω της διασύνδεσης επικοινωνίας 12 από την πρώτη αποκλειστική κρυφή μνήμη 8, 10 στη δεύτερη αποκλειστική κρυφή μνήμη 14. Η εγγραφή κρυφής μνήμης μπορεί να έχει τροποποιηθεί κατά την αποθήκευσή της στην πρώτη αποκλειστική κρυφή μνήμη 8, 10. Το βήμα 40 γράφει την τιμή συγκράτησης που διαβάστηκε στο βήμα 36 στην εγγραφή κρυφής μνήμης εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14. Το βήμα 42 εξυπηρετεί στην ακύρωση της εγγραφής κρυφής μνήμης στην πρώτη αποκλειστική κρυφή μνήμη 8, 10 σύμφωνα με τον αποκλειστικό τρόπο λειτουργίας του παραδείγματος υλοποίησης που περιγράφηκε παραπάνω. Θα εκτιμηθεί ότι ο αποκλειστικός τρόπος λειτουργίας δεν είναι απαραίτητος και άλλα παραδείγματα υλοποιήσεων μπορούν να λειτουργούν μερικώς αποκλειστικά ή περιεκτικά. Figure 3 is a flow diagram schematically illustrating the process of transferring a cache entry from one of the first dedicated caches 8, 10 to the second dedicated cache 14. Step 34 waits until there is a cache entry to transfer from one of the first exclusive caches 8, 10 to the second exclusive cache 14. The requirement to transfer such a record may result from an eviction from the first exclusive cache 8, 10, such as that resulting from the use of a mechanism and eviction policy within the first dedicated cache 8, 10 which can take a number of different forms, such as least reasonably used (LRU), round robin, random, etc. When specified a request to perform a transfer in step 34, processing continues to step 36 in which the hold value for the log to be transferred cache line is read from the hold value storage circuitry within probe filter 18 using the tag value associated with the cache entry to be transferred to determine the appropriate hold data value within probe filter 18. Step 38 writes the record to be transferred cache entry via communication interface 12 from the first exclusive cache memory 8, 10 to the second exclusive cache memory 14. The cache entry may have been modified when it was stored in the first exclusive cache memory 8, 10. Step 40 writes the value hold read in step 36 in the cache write within the second dedicated cache 14. Step 42 serves to invalidate the cache write in the first dedicated cache 8, 10 in accordance with the exclusive mode of operation of the example embodiment described above. It will be appreciated that the exclusive mode of operation is not necessary and other exemplary embodiments may operate partially exclusive or inclusive.
Το Σχήμα 4 είναι ένα διάγραμμα ροής το οποίο απεικονίζει σχηματικά τον ορισμό μιας τιμής δεδομένων συγκράτησης. Η επεξεργασία περιμένει στο βήμα 44 μέχρι να υπάρξει μια απαίτηση φόρτωσης μιας εγγραφής κρυφής μνήμης σε μια από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Μια τέτοια απαίτηση μπορεί να προκύπτει λόγω μιας ανεπιτυχούς ανάγνωσης κρυφής μνήμης εντός μιας από τις πρώτες αποκλειστικές κρυφές μνήμες 8, 10. Όταν απαιτείται μια φόρτωση, η επεξεργασία συνεχίζει στο βήμα 46 όπου πραγματοποιείται μια αναζήτηση εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14 ώστε να προσδιοριστεί κατά πόσο η εμπλεκόμενη εγγραφή κρυφής μνήμης υπάρχει ή όχι εντός της δεύτερης αποκλειστικής κρυφής μνήμης 14. Εάν υπάρχει μια επιτυχής ανάγνωση στη δεύτερη αποκλειστική κρυφή μνήμη 14, τότε η επεξεργασία συνεχίζει στο βήμα 48 στο οποίο η τιμή συγκράτησης για την εμπλεκόμενη εγγραφή κρυφής μνήμης ορίζεται ώστε να υποδηλώνει σχετική ατρωσία σε μεταγενέστερες εξώσεις από τη δεύτερη αποκλειστική κρυφή μνήμη 14. Αυτό δε σημαίνει ότι η εμπλεκόμενη εγγραφή κρυφής μνήμης δεν μπορεί να εξωθείται από τη δεύτερη αποκλειστική κρυφή μνήμη 14, αλλά ότι είναι λιγότερο πιθανή η επιλογή της για έξωση από το κύκλωμα έξωσης 22 σε σύγκριση με μια εγγραφή κρυφής μνήμης η οποία επισημαίνεται ως σχετικά ευάλωτη σε εξώσεις. Το βήμα 50 φορτώνει στη συνέχεια τη γραμμή κρυφής μνήμης από τη δεύτερη αποκλειστική κρυφή μνήμη 14 στην πρώτη αποκλειστική κρυφή μνήμη 8, 10 στην οποία συνέβη η ανεπιτυχής ανάγνωση. Ταυτόχρονα, τα δεδομένα συγκράτησης (τιμή) για την εμπλεκόμενη γραμμή κρυφής μνήμης φορτώνεται στη σχετική εγγραφή για τη γραμμή κρυφής μνήμης εντός του φίλτρου έρευνας 18. Figure 4 is a flow chart schematically illustrating the definition of a hold data value. Processing waits in step 44 until there is a request to load a cache entry into one of the first exclusive caches 8, 10. Such a request may arise due to an unsuccessful cache read within one of the first exclusive caches 8, 10. 10. When a load is required, processing continues to step 46 where a lookup is performed within the second dedicated cache 14 to determine whether or not the cache entry involved exists within the second dedicated cache 14. If there is a successful read in the second exclusive cache 14, then processing continues to step 48 in which the hold value for the cache entry involved is set to indicate relative immunity to subsequent evictions from the second exclusive cache 14. This does not mean that the cache entry involved memory cannot be pushed out of the second exclusive cache 14, but that it is less likely to be selected for eviction by eviction circuit 22 compared to a cache entry marked as relatively vulnerable to evictions. Step 50 then loads the cache line from the second dedicated cache 14 into the first dedicated cache 8, 10 in which the read failure occurred. At the same time, the hold data (value) for the cache line involved is loaded into the associated record for the cache line within the lookup filter 18.
Εάν στο βήμα 46 προσδιορίζεται ότι υπήρξε μια ανεπιτυχής ανάγνωση στη δεύτερη αποκλειστική κρυφή μνήμη 14, τότε το βήμα 52 εξυπηρετεί στον ορισμό της τιμής συγκράτησης για την προς φόρτωση γραμμή κρυφής μνήμης ώστε να υποδηλώνει μια σχετική τρωτότητα σε εξώσεις (βλέπε προηγούμενο θέμα). Το βήμα 54 φορτώνει στη συνέχεια τη γραμμή κρυφής μνήμης από την κύρια μνήμη 16 και αποθηκεύει την τιμή συγκράτησης (δεδομένα συγκράτησης) στη σχετική εγγραφή για την εμπλεκόμενη εγγραφή κρυφής μνήμης εντός του φίλτρου έρευνας 18. If it is determined in step 46 that there has been a failed read in the second dedicated cache 14, then step 52 serves to set the hold value for the cache line to be loaded to indicate a relative vulnerability to evictions (see previous topic). Step 54 then loads the cache line from main memory 16 and stores the hold value (hold data) in the associated record for the involved cache record within lookup filter 18 .
Το Σχήμα 5 απεικονίζει σχηματικά ένα επιπλέον παράδειγμα υλοποίησης ενός συστήματος επεξεργασίας δεδομένων 56 που ενσωματώνει τις παρούσες τεχνικές. Σε αυτό το παράδειγμα υλοποίησης, υπάρχουν πολλαπλές δεύτερες αποκλειστικές κρυφές μνήμες 58, 60. Κάθε μια από αυτές τις δεύτερες αποκλειστικές κρυφές μνήμες 58, 60 έχει συσχετισμένα φίλτρα έρευνας 62, 64, συσχετισμένο κύκλωμα έξωσης 66, 68 και συσχετισμένο κύκλωμα μεταφοράς δεδομένων συγκράτησης 70, 72. Οι δεύτερες αποκλειστικές κρυφές μνήμες 58, 60 επικοινωνούν μέσω μιας διασύνδεσης επικοινωνίας 74 με τις πρώτες αποκλειστικές κρυφές μνήμες 76, 78. Σε αυτό το παράδειγμα υλοποίησης υπάρχει μια μόνο πρώτη αποκλειστική κρυφή μνήμη 76, 78 συσχετισμένη με κάθε μια από τις δεύτερες αποκλειστικές κρυφές μνήμες 58, 60. Το κύκλωμα φίλτρου έρευνας 62, 64 εξυπηρετεί στην ιχνηλάτηση των εγγραφών εντός της πρώτης αποκλειστικής κρυφής μνήμης 76, 78 που συσχετίζονται με τη δεύτερη αποκλειστική κρυφή μνήμη 58, 60 με την οποία συνδέεται. Τα φίλτρα έρευνας 62, 64 περιλαμβάνουν κυκλώματα αποθήκευσης δεδομένων συγκράτησης για την αποθήκευση των δεδομένων συγκράτησης σε σχέση με τις εγγραφές κρυφής μνήμης που συγκρατούνται στη συσχετισμένη πρώτη αποκλειστική κρυφή μνήμη 76, 78 των αντίστοιχων δεύτερων αποκλειστικών κρυφών μνημών τους 58, 60. Το κύκλωμα μεταφοράς δεδομένων συγκράτησης 70, 72 εξυπηρετεί στη μεταφορά των δεδομένων συγκράτησης μεταξύ της δεύτερης αποκλειστικής κρυφής μνήμης 58, 60 και του φίλτρου έρευνας 62, 64 καθώς η αντίστοιχη εγγραφή κρυφής μνήμης μεταφέρεται διαμέσου της διασύνδεσης επικοινωνίας 74 προς και από την πρώτη αποκλειστική κρυφή μνήμη 76, 78. Figure 5 schematically illustrates an additional exemplary embodiment of a data processing system 56 incorporating the present techniques. In this example embodiment, there are multiple second dedicated caches 58, 60. Each of these second dedicated caches 58, 60 has associated search filters 62, 64, associated eviction circuitry 66, 68, and associated hold data transfer circuitry 70, 72. The second dedicated caches 58, 60 communicate via a communication interface 74 with the first dedicated caches 76, 78. In this example embodiment there is a single first dedicated cache 76, 78 associated with each of the second dedicated caches memories 58, 60. The lookup filter circuit 62, 64 serves to track entries within the first dedicated cache 76, 78 that are associated with the second dedicated cache 58, 60 with which it is connected. The search filters 62, 64 include hold data storage circuits for storing the hold data relative to the cache entries held in the associated first dedicated caches 76, 78 of their respective second dedicated caches 58, 60. The data transfer circuit hold 70, 72 serves to transfer the hold data between the second dedicated cache 58, 60 and the search filter 62, 64 as the corresponding cache entry is transferred via the communication interface 74 to and from the first dedicated cache 76, 78.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GR20170200042U GR20170200042U (en) | 2016-09-01 | 2016-09-01 | Retention data rocessing via cache memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GR20170200042U GR20170200042U (en) | 2016-09-01 | 2016-09-01 | Retention data rocessing via cache memory |
Publications (1)
Publication Number | Publication Date |
---|---|
GR20170200042U true GR20170200042U (en) | 2018-05-18 |
Family
ID=62488859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GR20170200042U GR20170200042U (en) | 2016-09-01 | 2016-09-01 | Retention data rocessing via cache memory |
Country Status (1)
Country | Link |
---|---|
GR (1) | GR20170200042U (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11194716B2 (en) | 2020-04-06 | 2021-12-07 | International Business Machines Corporation | Intelligent cache preloading |
-
2016
- 2016-09-01 GR GR20170200042U patent/GR20170200042U/en unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11194716B2 (en) | 2020-04-06 | 2021-12-07 | International Business Machines Corporation | Intelligent cache preloading |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7305522B2 (en) | Victim cache using direct intervention | |
US7305523B2 (en) | Cache memory direct intervention | |
US7669010B2 (en) | Prefetch miss indicator for cache coherence directory misses on external caches | |
US10402327B2 (en) | Network-aware cache coherence protocol enhancement | |
US7478197B2 (en) | Adaptive mechanisms for supplying volatile data copies in multiprocessor systems | |
US6088769A (en) | Multiprocessor cache coherence directed by combined local and global tables | |
US20040083341A1 (en) | Weighted cache line replacement | |
US6662276B2 (en) | Storing directory information for non uniform memory architecture systems using processor cache | |
GB2543745A (en) | An apparatus and method for operating a virtually indexed physically tagged cache | |
US10725923B1 (en) | Cache access detection and prediction | |
WO2015075673A4 (en) | Systems and methods for reducing first level cache energy by eliminating cache address tags | |
US9298624B2 (en) | Systems and methods for cache coherence protocol | |
US20110320720A1 (en) | Cache Line Replacement In A Symmetric Multiprocessing Computer | |
US10423534B2 (en) | Cache memory | |
US20200409867A1 (en) | Dataless cache entry | |
US7383398B2 (en) | Preselecting E/M line replacement technique for a snoop filter | |
WO2019152479A1 (en) | Memory structure based coherency directory cache | |
KR100851738B1 (en) | Reverse directory for facilitating accesses involving a lower-level cache | |
US8041898B2 (en) | Method, system and apparatus for reducing memory traffic in a distributed memory system | |
GR20170200042U (en) | Retention data rocessing via cache memory | |
US11200177B2 (en) | Cache retention data management | |
US20210397560A1 (en) | Cache stashing system | |
JP2022526041A (en) | Snoop filter device | |
US7519778B2 (en) | System and method for cache coherence | |
US20240045805A1 (en) | Core-aware caching systems and methods for multicore processors |