GR20170200059U - Storage circuitry - Google Patents

Storage circuitry

Info

Publication number
GR20170200059U
GR20170200059U GR20170200059U GR20170200059U GR20170200059U GR 20170200059 U GR20170200059 U GR 20170200059U GR 20170200059 U GR20170200059 U GR 20170200059U GR 20170200059 U GR20170200059 U GR 20170200059U GR 20170200059 U GR20170200059 U GR 20170200059U
Authority
GR
Greece
Prior art keywords
storage
tag
record
cache
information
Prior art date
Application number
GR20170200059U
Other languages
Greek (el)
Inventor
Andreas Hansson
Nikos NIKOLERIS
Wendy Arnott Elsasser
Original Assignee
Arm Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Arm Limited filed Critical Arm Limited
Priority to GR20170200059U priority Critical patent/GR20170200059U/en
Publication of GR20170200059U publication Critical patent/GR20170200059U/en

Links

Abstract

Storage circuitry 64 comprises an array 32 of storage locations 34 arranged in rows and columns, a row buffer 36 comprising a plurality of entries 68 each to store information from a storage location at a corresponding column of an active row 46 of the array 32, ane comparison circuitry 70 responsive to a tag-matching command specifying a tag value 72 to compare the tag value with information stored in each of a subset of two or more entries 68 of the row buffer 36. The comparison circuitry 70 identifies which of the subset of entries, if any, is a matching entry storing information matching the tag value. This allows memory technologies such as DRAM to be used more efficiently as a set-associative cache.

Description

ΚΥΚΛΩΜΑ ΑΠΟΘΗΚΕΥΣΗΣ STORAGE CIRCUIT

             Η παρούσα τεχνική σχετίζεται με το πεδίο των κυκλωμάτων αποθήκευσης. The present technique relates to the field of storage circuits.

             Είναι διαθέσιμος ένας αριθμός τεχνολογιών για την υλοποίηση κυκλωμάτων αποθήκευσης για συστήματα επεξεργασίας δεδομένων, συμπεριλαμβανόμενων για παράδειγμα των SRAM (static random access memory ή στατική μνήμη τυχαίας προσπέλασης), DRAM (dynamic random access memory ή δυναμική μνήμη τυχαίας προσπέλασης), PRAM (phase-change random access memory ή μνήμη αλλαγής φάσης τυχαίας προσπέλασης), MRAM (magnetoresistive random access memory ή μνήμη μαγνητοαντίστασης τυχαίας προσπέλασης), κλπ. Ορισμένοι τύποι τεχνολογιών μνήμης, όπως η DRAM, παρέχουν μια μήτρα θέσεων αποθήκευσης οι οποίες οργανώνονται σε γραμμές και στήλες, ενώ η πρόσβαση σε μια δεδομένη θέσης αποθήκευσης απαιτεί την ενεργοποίηση μιας συγκεκριμένης γραμμής της μήτρας και τη μεταφορά των δεδομένων από κάθε θέση αυτής της γραμμής σε μια προσωρινή μνήμη γραμμών. Μετά την ενεργοποίηση μιας γραμμής, είναι δυνατή η πραγματοποίηση ενός αριθμού αναγνώσεων/εγγραφών σε διάφορες θέσεις της γραμμής με την ανάγνωση ή την ενημέρωση του περιεχομένου της προσωρινής μνήμης γραμμών. Είναι δυνατή η διάδοση οποιωνδήποτε ενημερώσεων της προσωρινής μνήμης γραμμών στις αντίστοιχες θέσεις αποθήκευσης στη μήτρα, ενώ όταν η γραμμή δεν απαιτείται πια, είναι δυνατό το κλείσιμο της γραμμής χρησιμοποιώντας μια εντολή προ-φόρτισης. A number of technologies are available for implementing storage circuits for data processing systems, including for example SRAM (static random access memory), DRAM (dynamic random access memory), PRAM (phase-change random access memory), MRAM (magnetoresistive random access memory), etc. Some types of memory technologies, such as DRAM, provide a matrix of storage locations that are organized in rows and columns, while accessing a given storage location requires activating a specific row of the matrix and transferring the data from each location of that row to a row buffer. After a row is activated, it is possible to perform a number of reads/writes to various positions on the row by reading or updating the contents of the row buffer. It is possible to propagate any line cache updates to the corresponding storage locations in the matrix, and when the line is no longer needed, it is possible to close the line using a preload command.

             Τουλάχιστον ορισμένα παραδείγματα παρέχουν κυκλώματα αποθήκευσης τα οποία περιλαμβάνουν: At least some examples provide storage circuits which include:

              μια μήτρα θέσεων αποθήκευσης διαταγμένων σε γραμμές και στήλες, a matrix of storage locations arranged in rows and columns,

              μια προσωρινή μνήμη γραμμών η οποία περιλαμβάνει ένα πλήθος εγγραφών, κάθε μια για την αποθήκευση πληροφοριών από μια θέση αποθήκευσης σε μια αντίστοιχη στήλη μιας ενεργής γραμμής της μήτρας, και a row buffer which includes a plurality of records, each for storing information from a storage location to a corresponding column of an active row of the matrix, and

              κυκλώματα σύγκρισης που ανταποκρίνονται σε μια εντολή ταύτισης ετικετών που προσδιορίζει μια τιμή ετικέτας για τη σύγκριση της τιμής ετικέτας με πληροφορίες αποθηκευμένες σε κάθε υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών, και για τον προσδιορισμό της εγγραφής από το εν λόγω υποσύνολο εγγραφών, εάν υπάρχει κάποια, η οποία είναι μια εγγραφή ταύτισης που αποθηκεύει πληροφορίες που ταυτίζονται με την τιμή της ετικέτας, με το εν λόγω υποσύνολο να περιλαμβάνει δύο ή περισσότερες εγγραφές της προσωρινής μνήμης γραμμών. comparison circuits responsive to a tag match instruction specifying a tag value for comparing the tag value with information stored in each subset of records of the line cache, and for determining which record from said subset of records, if any, the which is a match record that stores information that matches the value of the tag, that subset comprising two or more line cache records.

            Τουλάχιστον ορισμένα παραδείγματα παρέχουν μια διάταξη που περιλαμβάνει: το κύκλωμα αποθήκευσης που περιγράφεται παραπάνω, και At least some examples provide an arrangement comprising: the storage circuitry described above, and

            έναν ελεγκτή κρυφής μνήμης για τον έλεγχο των προσβάσεων στα δεδομένα της κρυφής μνήμης που είναι αποθηκευμένα στο κύκλωμα αποθήκευσης. a cache controller to control accesses to the cache data stored in the storage circuit.

            Τουλάχιστον ορισμένα παραδείγματα παρέχουν κυκλώματα αποθήκευσης που περιλαμβάνουν: At least some examples provide storage circuits that include:

            μια μήτρα μέσων αποθήκευσης πληροφοριών διαταγμένων σε γραμμές και στήλες, a matrix of information storage media arranged in rows and columns,

            μέσα προσωρινής αποθήκευσης πληροφοριών από μια ενεργή γραμμή της μήτρας, με τα μέσα προσωρινής αποθήκευσης να περιλαμβάνουν ένα πλήθος εγγραφών, με κάθε μια να αποθηκεύει πληροφορίες από ένα μέσο για την αποθήκευση σε μια αντίστοιχη στήλη μιας ενεργής γραμμής της μήτρας, και means for buffering information from an active row of the matrix, the buffer means comprising a plurality of records, each buffering information from a means for storage in a corresponding column of an active row of the matrix, and

            μέσα σύγκρισης, σε απόκριση μιας εντολής ταύτισης ετικετών που καθορίζει μια τιμή ετικέτας, της τιμής ετικέτας με πληροφορίες αποθηκευμένες σε κάθε μια εγγραφή από ένα υποσύνολο εγγραφών των μέσων προσωρινής αποθήκευσης, και προσδιορίζει την εγγραφή από το εν λόγω υποσύνολο εγγραφών, εάν υπάρχει κάποια, η οποία είναι μια εγγραφή ταύτισης που αποθηκεύει πληροφορίες που ταυτίζονται με την τιμή της ετικέτας, με το εν λόγω υποσύνολο να περιλαμβάνει δύο ή περισσότερες εγγραφές των μέσων προσωρινής αποθήκευσης. means for comparing, in response to a tag matching command specifying a tag value, the tag value with information stored in each record from a subset of records of the buffer media, and identifying the record from said subset of records, if any, the which is an identity record that stores information identical to the tag value, said subset comprising two or more cache media records.

            Τουλάχιστον ορισμένα παραδείγματα παρέχουν μια μέθοδο πρόσβασης σε πληροφορίες από ένα κύκλωμα αποθήκευσης το οποίο περιλαμβάνει μια μήτρα θέσεων αποθήκευσης διαταγμένων σε γραμμές και στήλες, με τη μέθοδο να περιλαμβάνει, At least some examples provide a method of accessing information from a storage circuit comprising a matrix of storage locations arranged in rows and columns, the method comprising,

            τη μεταφορά πληροφοριών από θέσεις αποθήκευσης σε μια ενεργή γραμμή της μήτρας σε μια προσωρινή μνήμη γραμμών η οποία περιλαμβάνει ένα πλήθος εγγραφών, με κάθε εγγραφή να αποθηκεύει πληροφορίες από μια θέση αποθήκευσης σε μια αντίστοιχη στήλη της ενεργής γραμμής, και transferring information from storage locations in an active row of the matrix to a row buffer that includes a plurality of records, each record storing information from a storage location in a corresponding column of the active row, and

            σε απόκριση μιας εντολής ταύτισης ετικετών που καθορίζει μια τιμή ετικέτας, τη σύγκριση της τιμής ετικέτας με πληροφορίες αποθηκευμένες σε κάθε εγγραφή από ένα υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών, και που προσδιορίζει την εγγραφή από το εν λόγω υποσύνολο εγγραφών, εάν υπάρχει κάποια, η οποία είναι μια εγγραφή ταύτισης που αποθηκεύει πληροφορίες που ταυτίζονται με την τιμή της ετικέτας, με το εν λόγω υποσύνολο να περιλαμβάνει δύο ή περισσότερες εγγραφές της προσωρινής μνήμης γραμμών. in response to a tag match command specifying a tag value, comparing the tag value with information stored in each record from a subset of the line cache records, and identifying the record from that subset of records, if any, that is a match record that stores information that matches the tag value, that subset comprising two or more line cache records.

            Περαιτέρω απόψεις, χαρακτηριστικά και πλεονεκτήματα της παρούσας τεχνικής θα διαφανούν από την ακόλουθη περιγραφή των παραδειγμάτων, η οποία θα πρέπει να διαβάζεται σε συνδυασμό με τα συνοδευτικά σχεδιαγράμματα, στα οποία: Further aspects, features and advantages of the present technique will become apparent from the following description of the examples, which should be read in conjunction with the accompanying drawings, in which:

            Το Σχήμα 1 απεικονίζει ένα παράδειγμα της λογικής λειτουργίας ενός χειρισμού αναζήτησης ετικέτας για μια συσχετιστική ως προς ένα σύνολο κρυφή μνήμη, Figure 1 illustrates an example of the logical operation of a label lookup operation for a set-associative cache,

            Το Σχήμα 2 απεικονίζει σχηματικά ένα παράδειγμα μιας βασισμένης σε DRAM μήτρας αποθήκευσης, Figure 2 schematically illustrates an example of a DRAM-based storage matrix,

            Τα Σχήματα 3 και 4 δείχνουν δύο εναλλακτικές προσεγγίσεις για έναν ελεγκτή κρυφής μνήμης για τον εντοπισμό δεδομένων προορισμού σε μια κρυφή μνήμη υλοποιημένη με τη χρήση μιας μνήμης DRAM, Figures 3 and 4 show two alternative approaches for a cache controller to locate target data in a cache implemented using a DRAM,

            Το Σχήμα 5 δείχνει ένα παράδειγμα στο οποίο η μνήμη DRAM αποθηκεύει τόσο τα δεδομένα, όσο και τις συσχετισμένες της πληροφορίες ετικέτας, στο οποίο η μνήμη DRAM υποστηρίζει μια εντολή ταύτισης ετικετών, Figure 5 shows an example in which the DRAM stores both the data and its associated tag information, in which the DRAM supports a tag matching instruction,

            Το Σχήμα 6 δείχνει ένα παράδειγμα κυκλώματος αποθήκευσης το οποίο περιλαμβάνει ένα κύκλωμα σύγκρισης για τη σύγκριση μιας τιμής ετικέτας με ένα υποσύνολο εγγραφών μιας προσωρινής μνήμης γραμμών, Figure 6 shows an example storage circuit that includes a comparator circuit for comparing a tag value to a subset of entries of a line buffer,

            Το Σχήμα 7 δείχνει διάφορα παραδείγματα διάταξης ετικετών και δεδομένων εντός μιας γραμμής κελιών αποθήκευσης, Figure 7 shows various examples of label and data layout within a row of storage cells,

            Το Σχήμα 8 δείχνει ένα παράδειγμα κυκλώματος αποθήκευσης δεδομένων το οποίο περιλαμβάνει πολλαπλές συστοιχίες κελιών αποθήκευσης, Figure 8 shows an example of a data storage circuit that includes multiple arrays of storage cells,

            Το Σχήμα 9 δείχνει ένα παράδειγμα όπου ζεύγη δεδομένων ετικετών διαιρούνται μεταξύ διαφορετικών συστοιχιών, Figure 9 shows an example where pairs of tag data are split between different arrays,

            Το Σχήμα 10 είναι ένα διάγραμμα ροής το οποίο απεικονίζει μια μέθοδο επεξεργασίας μιας εντολής ενεργοποίησης, Figure 10 is a flow chart illustrating a method of processing an activation command,

            Το Σχήμα 11 είναι ένα διάγραμμα ροής το οποίο απεικονίζει μια μέθοδο επεξεργασίας μιας εντολής ταύτισης ετικετών, Figure 11 is a flow chart illustrating a method of processing a tag matching command;

            Το Σχήμα 12 απεικονίζει τη χρήση κωδίκων ανίχνευσης σφαλμάτων, Figure 12 illustrates the use of error detection codes,

            Το Σχήμα 13 είναι ένα διάγραμμα ροής το οποίο απεικονίζει μια μέθοδο επεξεργασίας μιας εντολής εγγραφής σε προηγούμενη ευστοχία, και Figure 13 is a flow chart illustrating a method of processing a write command to a previous hit, and

            Το Σχήμα 14 είναι ένα διάγραμμα ροής το οποίο απεικονίζει μια μέθοδο επεξεργασίας μιας εντολής συγκέντρωσης ετικετών. Figure 14 is a flow chart illustrating a method of processing a tag pool command.

            Το κύκλωμα αποθήκευσης μπορεί να έχει μια προσωρινή μνήμη γραμμών για την προσωρινή αποθήκευση πληροφοριών από μια ενεργή γραμμή θέσεων αποθήκευσης κατά τη διάρκεια αναγνώσεων ή εγγραφών σε αυτή τη γραμμή. Η προσωρινή μνήμη γραμμών περιλαμβάνει έναν αριθμό εγγραφών, με κάθε εγγραφή για την αποθήκευση των πληροφοριών από μια θέση αποθήκευσης σε μια αντίστοιχη στήλη της ενεργής γραμμής. Το κύκλωμα αποθήκευσης μπορεί να διαθέτει ένα κύκλωμα σύγκρισης, το οποίο ανταποκρίνεται σε μια εντολή ταύτισης ετικετών που καθορίζει μια τιμή ετικέτας για τη σύγκριση της τιμής ετικέτας με πληροφορίες αποθηκευμένες σε κάθε εγγραφή από ένα υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών (με το υποσύνολο να περιλαμβάνει τουλάχιστον δύο εγγραφές), και για τον προσδιορισμό της εγγραφής από το εν λόγω υποσύνολο εγγραφών, εάν υπάρχει κάποια, η οποία είναι μια εγγραφή ταύτισης που αποθηκεύει πληροφορίες που ταυτίζονται με την τιμή της ετικέτας. Το γεγονός αυτό επιτρέπει την ταχύτερη εκτέλεση χειρισμών αναζήτησης ετικετών εφόσον πολλές ετικέτες μπορούν να συγκρίνονται απευθείας στην προσωρινή μνήμη γραμμών και δεν απαιτείται η μεμονωμένη ανάγνωση κάθε εγγραφής σε ένα εξωτερικό κύκλωμα για σύγκριση με την τιμή της ετικέτας. Αυτό σημαίνει ότι το κύκλωμα αποθήκευσης μπορεί να χρησιμοποιείται πιο αποτελεσματικά ως μια συσχετιστική ως προς ένα σύνολο κρυφή μνήμη, εφόσον είναι δυνατή η αναζήτηση των ετικετών ενός συνόλου θέσεων σε απόκριση μιας μόνο εντολής ταύτισης ετικετών και δεν απαιτείται ένας αριθμός ξεχωριστών χειρισμών ανάγνωσης. Το γεγονός αυτό είναι χρήσιμο εφόσον οι τεχνολογίες αποθήκευσης που χρησιμοποιούν μια προσωρινή μνήμη γραμμών μπορούν να είναι πιο αποδοτικές ως προς την επιφάνεια για μια δεδομένη ποσότητα χωρητικότητας αποθήκευσης σε σχέση με τις εναλλακτικές τεχνολογίες αποθήκευσης, με αποτέλεσμα η επίτευξη μιας πιο αποτελεσματικής χρήσης αυτού του τύπου κυκλώματος αποθήκευσης ως μια συσχετιστική ως προς ένα σύνολο κρυφή μνήμη να μπορεί να επιτρέπει την παραγωγή μεγαλύτερων κρυφών μνημών με χαμηλότερο κόστος παραγωγής. The storage circuit may have a line cache to temporarily store information from an active line of storage locations during reads or writes to that line. The row buffer contains a number of records, with each record to store the information from a storage location in a corresponding column of the active row. The storage circuit may have a comparison circuit, which is responsive to a tag match instruction that specifies a tag value to compare the tag value with information stored in each record from a subset of line cache records (with the subset including at least two records), and to determine the record from that subset of records, if any, that is a matching record that stores information that matches the tag value. This allows tag lookup operations to be performed faster since multiple tags can be compared directly in the line buffer and it is not necessary to individually read each record into an external circuit to compare against the tag value. This means that the storage circuit can be used more efficiently as a set-associative cache, since the tags of a set of locations can be looked up in response to a single tag-match command, and a number of separate read operations are not required. This is useful since storage technologies using a line cache can be more area efficient for a given amount of storage capacity than alternative storage technologies, resulting in a more efficient use of this type of circuit. storage as a set associative cache may allow larger caches to be produced at lower production costs.

            Το κύκλωμα σύγκρισης μπορεί να εκτελεί ένα πλήθος παράλληλων συγκρίσεων, με κάθε σύγκριση να συγκρίνει την τιμή ετικέτας με τις πληροφορίες σε μια αντίστοιχη εγγραφή από το εν λόγω υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών. Συνεπώς, οι αναζητήσεις ετικετών πολλαπλών εγγραφών μπορούν να είναι ταχύτερες σε σύγκριση με την αλληλοδιάδοχη μεμονωμένη ανάγνωση κάθε ετικέτας για σύγκριση με μια τιμή ετικέτας προορισμού. The comparison circuit may perform a plurality of parallel comparisons, each comparison comparing the tag value with the information in a corresponding record from that subset of line cache records. Therefore, multi-record tag lookups can be faster compared to sequentially reading each tag individually to compare against a target tag value.

            Σε ορισμένες περιπτώσεις, το κύκλωμα σύγκρισης μπορεί να συγκρίνει την τιμή ετικέτας που σχετίζεται με την εντολή ταύτισης ετικετών με ολόκληρο το περιεχόμενο κάθε εγγραφής στο υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών. Όταν το κύκλωμα αποθήκευσης χρησιμοποιείται ως κρυφή μνήμη, οι θέσεις αποθήκευσης μπορούν να εκχωρούνται σε ζεύγη, με κάθε ζεύγος να περιλαμβάνει μια θέση αποθήκευσης μιας τιμής δεδομένων αποθηκευμένης σε κρυφή μνήμη και μια άλλη θέση αποθήκευσης για την αποθήκευση μιας αντίστοιχης τιμής ετικέτας, ώστε το υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών μπορεί να είναι αυτές οι εγγραφές οι οποίες αποθηκεύουν τιμές ετικετών και όχι τιμές δεδομένων. Σε γενικές γραμμές, η τιμή μιας ετικέτας μπορεί να προσδιορίζει μέρος της διεύθυνσης της τιμής δεδομένων στην άλλη θέση του ζεύγους. Ωστόσο, η τιμή ετικέτας θα μπορούσε επίσης να προσδιορίζει και άλλες πληροφορίες ελέγχου για τον έλεγχο της αποθήκευσης των δεδομένων σε κρυφή μνήμη, π.χ. πληροφορίες κατάστασης συνάφειας, οι οποίες υποδηλώνουν κατά πόσο η αντίστοιχη τιμή δεδομένων είναι καθαρή ή μολυσμένη ή πληροφορίες ελέγχου έξωσης για τον έλεγχο της έξωσης των δεδομένων από την κρυφή μνήμη (π.χ. μια λιγότερο πρόσφατα χρησιμοποιούμενη (least recently used ή LRU) απαρίθμηση ή άλλη πληροφορία για την ιχνηλάτηση των πρόσφατων σχεδίων πρόσβασης στα αποθηκευμένα δεδομένα). Συνεπώς, σε ορισμένες υλοποιήσεις το κύκλωμα σύγκρισης μπορεί να συγκρίνει την τιμή ετικέτας που καθορίζεται από την εντολή ταύτισης ετικετών με ένα τμήμα μόνο των πληροφοριών που αποθηκεύονται σε κάθε εγγραφή του υποσυνόλου εγγραφών της προσωρινής μνήμης γραμμών. In some cases, the comparison circuit may compare the tag value associated with the tag matching instruction to the entire contents of each record in the subset of line buffer records. When the storage circuit is used as a cache, the storage locations can be allocated in pairs, each pair including a storage location for a cached data value and another storage location for storing a corresponding label value, so that the subset of records of the line cache can be those records which store tag values rather than data values. In general, the value of a tag can specify part of the address of the data value at the other location in the pair. However, the tag value could also specify other control information to control caching of the data, e.g. relevance status information, which indicates whether the corresponding data value is clean or dirty, or eviction control information to control the eviction of the data from the cache (eg, a least recently used (LRU) enumeration, or other information to track recent stored data access plans). Therefore, in some implementations the comparison circuit may compare the tag value determined by the tag matching instruction with only a portion of the information stored in each record of the subset of line cache records.

             Ένα στοιχείο αποθήκευσης διαμόρφωσης μπορεί να παρέχεται για την αποθήκευση πληροφοριών διαμόρφωσης που προσδιορίζουν τις εγγραφές της προσωρινής μνήμης γραμμών οι οποίες ανήκουν στο υποσύνολο εγγραφών προς σύγκριση με τη χρήση του κυκλώματος σύγκρισης. Το γεγονός αυτό επιτρέπει την εκχώρηση της φυσικής χωρητικότητας αποθήκευσης του κυκλώματος αποθήκευσης σε διάφορες διαμορφώσεις αποθήκευσης των τιμών ετικετών και των τιμών δεδομένων όταν το κύκλωμα αποθήκευσης χρησιμοποιείται ως κρυφή μνήμη, εφόσον το κύκλωμα σύγκρισης μπορεί να προσδιορίζει από το στοιχείο αποθήκευσης διαμόρφωσης τις εγγραφές της προσωρινής μνήμης γραμμών οι οποίες προορίζονται για την αποθήκευση τιμών ετικετών και όχι τιμών δεδομένων. Για παράδειγμα, οι πληροφορίες διαμόρφωσης θα μπορούσαν να καθορίζουν πληροφορίες ελέγχου όπως η επιθυμητή συσχετικότητα, το μέγεθος της γραμμής κρυφής μνήμης ή το μέγεθος της ετικέτας που χρησιμοποιείται από την κρυφή μνήμη, από τις οποίες θα ήταν δυνατός ο προσδιορισμός του υποσυνόλου εγγραφών από το κύκλωμα σύγκρισης. Εναλλακτικά, οι πληροφορίες διαμόρφωσης μπορούν να προσδιορίζουν ρητώς τις εγγραφές της προσωρινής μνήμης γραμμών οι οποίες πρόκειται να συγκριθούν με την τιμή ετικέτας (π.χ. χρησιμοποιώντας ένα χάρτη bit με κάθε bit να προσδιορίζει κατά πόσο μια αντίστοιχη εγγραφή θα έπρεπε να θεωρείται τμήμα του υποσυνόλου εγγραφών ή όχι). A configuration storage element may be provided to store configuration information identifying the line cache entries which belong to the subset of entries to be compared using the comparison circuit. This allows the physical storage capacity of the storage circuit to be allocated to various storage configurations of tag values and data values when the storage circuit is used as a cache, since the comparator circuit can determine from the configuration storage element the cache entries lines which are intended to store tag values rather than data values. For example, the configuration information could specify control information such as the desired associativity, the size of the cache line, or the size of the tag used by the cache, from which the subset of entries by the comparison circuit could be determined. . Alternatively, the configuration information can explicitly specify which line cache entries are to be compared to the tag value (eg, using a bitmap with each bit specifying whether a corresponding entry should be considered part of the subset records or not).

             Όταν μια εγγραφή από το εν λόγω υποσύνολο εγγραφών προσδιορίζεται ως εγγραφή ταύτισης σε απόκριση της εντολής ταύτισης ετικετών (μια “κατάσταση ευστοχίας”), μπορεί να ενεργοποιείται ένας χειρισμός ανάγνωσης ή εγγραφής για την ανάγνωση ή εγγραφή πληροφοριών που αντιστοιχούν σε μια θέση αποθήκευσης προορισμού η οποία επιλέγεται ανάλογα ποια εγγραφή της προσωρινής μνήμης γραμμών είναι η εγγραφή ταύτισης. Για παράδειγμα, η θέση αποθήκευσης προορισμού μπορεί να είναι η συζευγμένη θέση αποθήκευσης η οποία αποθηκεύει την τιμή δεδομένων που σχετίζεται με την τιμή ετικέτας που αποθηκεύεται στη θέση αποθήκευσης για την οποία ανιχνεύθηκε η ευστοχία. Για ένα χειρισμό ανάγνωσης, οι πληροφορίες που διαβάστηκαν από τη θέση αποθήκευσης προορισμού μπορούν να επιστρέφονται ως απόκριση στην εντολή ταύτισης ετικετών. When a record from said subset of records is identified as a match record in response to the tag match command (a “hit condition”), a read or write operation may be triggered to read or write information corresponding to a destination storage location that it is chosen depending on which row cache record is the matching record. For example, the destination storage location may be the associated storage location that stores the data value associated with the tag value stored in the storage location for which the hit was detected. For a read operation, the information read from the destination storage location may be returned in response to the match tags command.

             Σε ορισμένες περιπτώσεις, η θέση αποθήκευσης προορισμού μπορεί να είναι μια άλλη θέση αποθήκευσης στην ίδια γραμμή της μήτρας ως η θέση αποθήκευσης που αντιστοιχεί στην εν λόγω εγγραφή ταύτισης της προσωρινής μνήμης γραμμών. Με αυτή την προσέγγιση, κάθε ζεύγος ετικέτας-δεδομένων μπορεί να εκχωρείται εντός της ίδιας γραμμής του κυκλώματος αποθήκευσης, γεγονός το οποίο μπορεί να κάνει τον έλεγχο του χειρισμού ανάγνωσης λιγότερο σύνθετο. In some cases, the destination storage location may be another storage location on the same matrix row as the storage location corresponding to the line cache match entry in question. With this approach, each tag-data pair can be assigned within the same line of the storage circuit, which can make control of the read operation less complex.

             Εναλλακτικά, η θέση αποθήκευσης προορισμού θα μπορούσε να βρίσκεται σε διαφορετική γραμμή από τη θέση αποθήκευσης για την οποία ανιχνεύθηκε η ταύτιση. Μολονότι είναι δυνατή η παροχή ενός κυκλώματος αποθήκευσης το οποίο περιλαμβάνει μια μοναδική συστοιχία θέσεων αποθήκευσης, σε πολλές περιπτώσεις μπορούν να παρέχονται δύο ή περισσότερες συστοιχίες θέσεων αποθήκευσης, με κάθε συστοιχία να περιλαμβάνει μια μήτρα θέσεων αποθήκευσης διαταγμένων σε γραμμές και στήλες, μια προσωρινή μνήμη γραμμών και ένα κύκλωμα σύγκρισης όπως εξετάστηκε παραπάνω. Στην πράξη, μετά από μια ανάγνωση από μια ενεργή γραμμή σε μια συστοιχία, μπορεί συχνά να είναι ταχύτερη η ανάγνωση πληροφοριών από μια διαφορετική συστοιχία σε σχέση με την πραγματοποίηση μιας άλλης ανάγνωσης στην ίδια γραμμή της πρώτης συστοιχίας. Συνεπώς, για τη βελτίωση της απόδοσης σε μια υλοποίηση πολλαπλών συστοιχιών, όταν εκχωρείται ένα ζεύγος δεδομένων-ετικέτας στο κύκλωμα αποθήκευσης, μπορεί να είναι χρήσιμη η εγγραφή της τιμής δεδομένων σε μια θέση αποθήκευσης σε μια συστοιχία και της αντίστοιχης τιμής ετικέτας σε μια θέση αποθήκευσης σε μια διαφορετική συστοιχία. Συνεπώς, κατά την επεξεργασία μιας εντολής ταύτισης ετικετών, όταν προσδιορίζεται η κατάσταση ευστοχίας, η θέση αποθήκευσης προορισμού για την οποία ενεργοποιείται ο χειρισμός ανάγνωσης μπορεί να βρίσκεται σε μια διαφορετική συστοιχία από τη θέση αποθήκευσης που αντιστοιχεί στην εγγραφή ταύτισης της προσωρινής μνήμης γραμμών. Alternatively, the destination storage location could be on a different line than the storage location for which the match was detected. Although it is possible to provide a storage circuit that includes a single array of storage locations, in many cases two or more arrays of storage locations may be provided, each array including a matrix of storage locations arranged in rows and columns, a row buffer, and a comparator circuit as discussed above. In practice, after a read from an active line in an array, it can often be faster to read information from a different array than to perform another read on the same line of the first array. Therefore, to improve performance in a multi-array implementation, when a data-label pair is allocated to the storage circuit, it can be useful to write the data value to a storage location in an array and the corresponding label value to a storage location in a different array. Therefore, when processing a tag match instruction, when the success condition is determined, the target storage location for which the read handle is enabled may be in a different array than the storage location corresponding to the line cache match entry.

            Σε ορισμένα παραδείγματα, όταν προσδιορίζεται η κατάσταση ευστοχίας, το κύκλωμα σύγκρισης μπορεί να αποθηκεύει μια ένδειξη για την εγγραφή της προσωρινής μνήμης γραμμών η οποία είναι η εν λόγω εγγραφή ταύτισης σε ένα προκαθορισμένο στοιχείο αποθήκευσης. Το κύκλωμα αποθήκευσης μπορεί να έχει ένα κύκλωμα ελέγχου το οποίο να υποστηρίζει μια εντολή εγγραφής σε προηγούμενη ευστοχία, το οποίο ενεργοποιεί ένα χειρισμό εγγραφής για την εγγραφή πληροφοριών στη θέση αποθήκευσης που σχετίζεται με την εγγραφή της προσωρινής μνήμης γραμμών που προσδιορίστηκε από το εν λόγω προκαθορισμένο στοιχείο αποθήκευσης. Συχνά μετά την ανάγνωση μιας τιμής δεδομένων από μια κρυφή μνήμη μπορεί να είναι επιθυμητή η ενημέρωση τμήματος της αντίστοιχης τιμής ετικέτας (π.χ. η ενημέρωση της κατάστασης συνάφειας ή των πληροφοριών ελέγχου έξωσης που αναφέρθηκαν παραπάνω). Συνεπώς, με την καταγραφή της εγγραφής ταύτισης στο προκαθορισμένο στοιχείο αποθήκευσης, η επακόλουθη εγγραφή ετικέτας μπορεί να πραγματοποιείται χωρίς έναν ελεγκτή κρυφής μνήμης ή άλλον εξωτερικό ελεγκτή ο οποίος απαιτεί τη γνώση της ακριβούς θέσης της ετικέτας ή την επανάληψη του χειρισμού αναζήτησης ετικετών. In some examples, when the hit condition is determined, the comparison circuit may store a pointer to the line buffer record that is said matching record in a predetermined storage element. The storage circuit may have a control circuit which supports a write command to a previous hit, which activates a write operation to write information to the storage location associated with the line buffer write specified by said predetermined element storage. Often after reading a data value from a cache it may be desirable to update part of the corresponding tag value (eg, updating the relevance status or eviction control information mentioned above). Therefore, by writing the identification record to the predefined storage element, the subsequent tag write can be performed without a cache controller or other external controller that requires knowing the exact location of the tag or repeating the tag lookup operation.

            Εναλλακτικά, η ενημέρωση των πληροφοριών κατάστασης, όπως οι πληροφορίες κατάστασης συνάφειας ή οι πληροφορίες πολιτικής αντικατάστασης κρυφής μνήμης, θα μπορούσε να πραγματοποιείται σε απόκριση της ίδιας της εντολής ταύτισης ετικετών. Συνεπώς, όταν υφίσταται μια κατάσταση ευστοχίας και προσδιορίζεται μια εγγραφή ταύτισης σε απόκριση της εντολής ταύτισης ετικετών, το κύκλωμα ελέγχου μπορεί να ενημερώνει τις πληροφορίες κατάστασης σε μια θέση αποθήκευσης που επιλέγεται με βάση ποια εγγραφή της προσωρινής μνήμης γραμμών είναι η εγγραφή ταύτισης. Συνήθως η θέση αποθήκευσης που επιλέγεται μπορεί να είναι η θέση της μήτρας αποθήκευσης η οποία αντιστοιχεί στην ίδια την εγγραφή ταύτισης, αλλά θα μπορούσε επίσης να αντιστοιχεί σε μια άλλη εγγραφή της ίδιας ενεργής γραμμής. Με την ενημέρωση των πληροφοριών κατάστασης της κρυφής μνήμης σε μια ευστοχία κρυφής μνήμης σε απόκριση της εντολής ταύτισης ετικετών, αποτρέπεται η ανάγκη παροχής μιας μεμονωμένης εντολής εγγραφής από τον ελεγκτή κρυφής μνήμης στο κύκλωμα αποθήκευσης για την ενημέρωση των πληροφοριών κατάστασης. Alternatively, the update of state information, such as relevance state information or cache replacement policy information, could occur in response to the tag matching command itself. Accordingly, when a hit condition exists and a match record is identified in response to the tag match command, the control circuitry may update the status information to a storage location selected based on which line buffer record is the match record. Typically the storage location chosen may be the storage matrix location corresponding to the matching record itself, but it could also correspond to another record of the same active row. By updating the cache state information on a cache hit in response to the tag match command, the need to issue a single write command from the cache controller to the storage circuit to update the state information is avoided.

            Σε απόκριση της εντολής ταύτισης ετικετών, εάν καμία εγγραφή από το υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών δεν αποθηκεύει πληροφορίες που να ταυτίζονται με την τιμή ετικέτας (μια “κατάσταση αστοχίας”), το κύκλωμα σύγκρισης μπορεί να επιστρέφει μια ένδειξη αστοχίας. Αυτή μπορεί να εξάγεται σε έναν ελεγκτή κρυφής μνήμης ως ένδειξη ότι τα απαιτούμενα δεδομένα δεν αποθηκεύονται εκείνη τη στιγμή στην κρυφή μνήμη. Σε ορισμένες περιπτώσεις η ένδειξη αστοχίας θα μπορούσε να είναι ένα εμφανές σήμα που υποδεικνύει κατά πόσο υπήρχε μια ευστοχία ή αστοχία. Ωστόσο, αυτό θα μπορούσε να απαιτεί την παροχή ενός πρόσθετου ακροδέκτη εξόδου για την επικοινωνία του σήματος ευστοχίας/αστοχίας σε άλλα κυκλώματα. In response to the match tag command, if no record from the subset of line cache records stores information matching the tag value (a “failure condition”), the comparator may return a failure indication. This can be output to a cache checker as an indication that the required data is not currently being cached. In some cases the failure indicator could be a visible signal indicating whether there was a hit or miss. However, this could require providing an additional output pin to communicate the pass/fail signal to other circuits.

             Ωστόσο, σε ορισμένες περιπτώσεις τα δεδομένα που αποθηκεύονται στο κύκλωμα αποθήκευσης μπορούν να προστατεύονται από σφάλματα με τη χρήση κωδίκων ανίχνευσης σφαλμάτων. Ορισμένοι τύποι κωδίκων ανίχνευσης σφαλμάτων θα μπορούσαν απλά να κάνουν δυνατή την ανίχνευση των σφαλμάτων (όπως οι αντιστροφές bit που προκαλούνται από ένα πλήγμα σωματιδίου ή άλλη διατάραξη απλού συμβάντος), αλλά όχι τη διόρθωσή τους. Π.χ. κώδικες ισοτιμίας ή αθροίσματα ελέγχου θα μπορούσαν να χρησιμοποιούνται για να προσδιοριστεί πότε συνέβη μια αντιστροφή bit, αλλά όχι ποιο bit είναι το λανθασμένο bit. Εναλλακτικά, οι κώδικες ανίχνευσης σφάλματος θα μπορούσαν να είναι κώδικες διόρθωσης σφαλμάτων οι οποίοι επίσης κάνουν δυνατή τη διόρθωση ενός σφάλματος με την παροχή ορισμένων πληροφοριών που πλεονάζουν οι οποίες μπορούν να χρησιμοποιούνται για τον προσδιορισμό της σωστής τιμής δεδομένων. Οι κώδικες διόρθωσης σφαλμάτων θα μπορούσαν να είναι κώδικες ελίκωσης ή κώδικες βαθμιδών για παράδειγμα. Ο κώδικας ανίχνευσης σφαλμάτων θα μπορούσε να είναι μια ξεχωριστή τιμή από την αντίστοιχη τιμή δεδομένων ή εναλλακτικά τα δεδομένα θα μπορούσαν να κωδικοποιούνται ώστε να παρέχεται μια μόνο τιμή δεδομένων από την οποία θα είναι δυνατός ο προσδιορισμός τόσο της αρχικής τιμής δεδομένων, όσο και των πληροφοριών που προσδιορίζουν κατά πόσο υπάρχει ένα σφάλμα. However, in some cases the data stored in the storage circuit can be protected from errors by using error detection codes. Some types of error detection codes could simply make it possible to detect errors (such as bit reversals caused by a particle impact or other simple event perturbation), but not to correct them. E.g. parity codes or checksums could be used to determine when a bit reversal has occurred, but not which bit is the incorrect bit. Alternatively, the error detection codes could be error correcting codes which also make it possible to correct an error by providing some redundant information which can be used to determine the correct data value. Error correcting codes could be convolution codes or gradient codes for example. The error detection code could be a separate value from the corresponding data value, or alternatively the data could be coded to provide a single data value from which it is possible to determine both the original data value and the information determine whether an error exists.

             Σε παραδείγματα που χρησιμοποιούν κώδικες ανίχνευσης σφαλμάτων, όταν προσδιορίζεται μια αστοχία σε απόκριση της εντολής ταύτισης ετικετών, η ένδειξη αστοχίας μπορεί να περιλαμβάνει ένα προκαθορισμένο σχέδιο πληροφοριών που σχετίζονται με έναν άκυρο κώδικα ανίχνευσης σφαλμάτων. Μολονότι ο άκυρος κώδικας ανίχνευσης σφαλμάτων θα υποδήλωνε κανονικά ότι προέκυψε ένα σφάλμα στα αντίστοιχα δεδομένα, ένας ελεγκτής κρυφής μνήμης ή άλλο κύκλωμα που λαμβάνει την ένδειξη αστοχίας μπορεί να διαμορφώνεται με τέτοιο τρόπο ώστε, όταν τα δεδομένα έχουν το προκαθορισμένο σχέδιο, τότε ο άκυρος κώδικας ανίχνευσης σφαλμάτων να ερμηνεύεται όχι ως ένδειξη ενός σφάλματος, αλλά ως ένδειξη ότι η αναζήτηση ετικέτας υπέδειξε μια αστοχία. Το γεγονός αυτό κάνει δυνατή τη σηματοδότηση της κατάστασης αστοχίας με τη χρήση του καναλιού δεδομένων που χρησιμοποιείται για τους χειρισμούς ανάγνωσης, ώστε να αποτρέπει η ανάγκη παροχής ενός πρόσθετου ακροδέκτη για την επικοινωνία ενός ξεχωριστού σήματος ευστοχίας/αστοχίας. In examples using error detection codes, when a failure is determined in response to the tag matching command, the failure indication may include a predetermined pattern of information associated with an invalid error detection code. Although the invalid error detection code would normally indicate that an error has occurred in the corresponding data, a cache controller or other circuitry that receives the failure indication can be configured so that when the data has the predetermined pattern, then the invalid detection code errors should be interpreted not as an indication of an error, but as an indication that the tag lookup indicated a failure. This makes it possible to signal the failure condition using the data channel used for the read operations, thus avoiding the need to provide an additional pin to communicate a separate pass/fail signal.

            Το κύκλωμα ελέγχου του κυκλώματος αποθήκευσης μπορεί επίσης να αποκρίνεται σε μια εντολή ανάγνωσης εγγραφής-θύματος για την ανάγνωση δεδομένων από μια εγγραφή-θύμα της προσωρινής μνήμης γραμμών η οποία επιλέγεται σε εξάρτηση πληροφοριών πολιτικής αντικατάστασης κρυφής μνήμης που αποθηκεύονται στην προσωρινή μνήμη γραμμών και για την ακύρωση δεδομένων από μια θέση αποθήκευσης που σχετίζεται με την εν λόγω εγγραφή-θύμα. Σε μια αστοχία κρυφής μνήμης, εάν δεν υπάρχουν άκυρες θέσεις στο σχετικό σύνολο, τότε ίσως απαιτηθεί η εύρεση μιας βαθμίδας-θύματος για την έξωση των δεδομένων και την αντικατάστασή τους με τα νέα δεδομένα τα οποία θα μεταφερθούν από τη μνήμη. Για τον προσδιορισμό της εγγραφής η οποία θα επιλεγεί ως εγγραφή-θύμα μπορεί να απαιτηθεί η ανάγνωση των πληροφοριών πολιτικής αντικατάστασης της κρυφής μνήμης από το σχετικό σύνολο (π.χ. πληροφορίες οι οποίες υποδεικνύουν την εγγραφή η οποία χρησιμοποιήθηκε πιο παλαιά). Αντί της ανάγνωσης των πληροφοριών πολιτικής αντικατάστασης σε έναν ελεγκτή κρυφής μνήμης και στη συνέχεια του προσδιορισμού από τον ελεγκτή κρυφής μνήμης της εγγραφής που θα πρέπει να επιλεγεί ως εγγραφή-θύμα και της έκδοσης μιας επακόλουθης ανάγνωσης, το κύκλωμα ελέγχου μπορεί να υποστηρίζει την ανάλυση των πληροφοριών πολιτικής αντικατάστασης τοπικά εντός του ίδιου του κυκλώματος αποθήκευσης. Για παράδειγμα, εάν η πολιτική αντικατάστασης είναι ψευδο-λιγότερο πρόσφατα χρησιμοποιούμενης εγγραφής, η εντολή εγγραφής-θύματος μπορεί να ελέγχει το κύκλωμα ελέγχου εντός του κυκλώματος αποθήκευσης για την εγκάρσια μετακίνηση σε ένα δυαδικό δέντρο και την εύρεση του λιγότερο πρόσφατα χρησιμοποιούμενου στοιχείου, την επιστροφή των δεδομένων της βαθμίδας ώστε να είναι δυνατή η επανεγγραφή τους στη μνήμη και την ακύρωση της βαθμίδας. Με αυτό τον τρόπο είναι δυνατή η εξοικονόμηση τουλάχιστον μιας εντολής εφόσον τόσο η ανάγνωση (και η επεξεργασία) των πληροφοριών πολιτικής αντικατάστασης, όσο και η ανάγνωση των δεδομένων-θύματος μπορούν να πραγματοποιούνται εντός του κυκλώματος αποθήκευσης σε απόκριση μιας εντολής. The storage circuit control circuit may also be responsive to a read-victim-write command to read data from a line-cache victim-write selected as a function of cache-overwrite policy information stored in the line-buffer and to invalidate data from a storage location associated with that victim record. On a cache miss, if there are no invalid locations in the relevant set, then it may be necessary to find a victim tier to evict the data and replace it with the new data that will be transferred from memory. Determining which record to select as a victim record may require reading cache replacement policy information from the relevant set (eg, information indicating which record was used the oldest). Instead of reading the replacement policy information into a cache controller and then having the cache controller determine which record should be selected as the victim record and issuing a subsequent read, the control circuit may support parsing the information replacement policy locally within the storage circuit itself. For example, if the replacement policy is pseudo-least-recently-used, the write-victim instruction can control the control circuit within the storage circuit to traverse a binary tree and find the least-recently-used element, return the tier data so that it can be rewritten to memory and the tier cancelled. In this way it is possible to save at least one instruction since both the read (and processing) of the replacement policy information and the read of the victim data can be performed within the storage circuit in response to a single instruction.

            Μετά από μια έξωση από τη θέση αποθήκευσης της εγγραφής-θύματος, είναι δυνατή η έκδοση μιας επακόλουθης εντολής εγγραφής προς το κύκλωμα αποθήκευσης για την εγγραφή των δεδομένων που μεταφέρθηκαν από τη μνήμη στη θέση αποθήκευσης της εγγραφής-θύματος. Για την επιτάχυνση της διαχείρισης αυτής της εγγραφής, σε απόκριση της εντολής ανάγνωσης της εγγραφής-θύματος, το κύκλωμα ελέγχου μπορεί να αποθηκεύει μια ένδειξη για την εγγραφή της προσωρινής μνήμης γραμμών η οποία ήταν η εγγραφή-θύμα σε ένα προκαθορισμένο στοιχείο αποθήκευσης. Στη συνέχεια είναι δυνατή η χρήση μιας εντολής εγγραφής σε προηγούμενη ευστοχία, όπως εξετάστηκε παραπάνω, για την εγγραφή των δεδομένων αντικατάστασης στη θέση αποθήκευσης που σχετίζεται με την εγγραφή που προσδιορίστηκε από το προκαθορισμένο στοιχείο αποθήκευσης. Με αυτό τον τρόπο αποτρέπεται η ανάγκη ανασκόπησης και πάλι των πληροφοριών πολιτικής αντικατάστασης κατά την εγγραφή των δεδομένων αντικατάστασης στην εγγραφή-θύμα. After an eviction from the victim record storage location, a subsequent write command may be issued to the storage circuitry to write the data transferred from memory to the victim record storage location. To speed up the handling of this record, in response to the read command of the victim record, the control circuit may store a pointer to the line cache record that was the victim record in a predetermined storage element. A write to previous hit command, as discussed above, can then be used to write the replacement data to the storage location associated with the write identified by the predefined storage element. This avoids the need to review the replacement policy information again when writing the replacement data to the victim record.

            Είναι επίσης δυνατή η υλοποίηση μιας εντολής συγκέντρωσης ετικετών, η οποία θα ενεργοποιεί το κύκλωμα ελέγχου για την πραγματοποίηση ενός χειρισμού ανάγνωσης για την ανάγνωση πληροφοριών από κάθε εγγραφή από το εν λόγω υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών. Συνεπώς, σε απόκριση της εντολής συγκέντρωσης ετικετών, οι πληροφορίες ετικετών από την ενεργή γραμμή μπορούν να συγκεντρώνονται και να επιστρέφονται ταχύτερα από την περίπτωση στην οποία υπήρχε απαίτηση ξεχωριστών χειρισμών ανάγνωσης για την ανάγνωση κάθε ετικέτας αλληλοδιάδοχα. Το γεγονός αυτό μπορεί να είναι χρήσιμο για παράδειγμα ώστε να επιτρέπει σε έναν ελεγκτή κρυφής μνήμης να λαμβάνει καλύτερες αποφάσεις αντικατάστασης κατά την εκχώρηση νέων δεδομένων σε μια κρυφή μνήμη. Εφόσον το κανάλι δεδομένων μεταξύ του κυκλώματος αποθήκευσης και του ελεγκτή κρυφής μνήμης μπορεί να μην έχει τόσο εύρος όσο το συνολικό μέγεθος όλων των πληροφοριών ετικέτας στην ενεργή γραμμή, μπορούν να πραγματοποιούνται πολλαπλές μεταφορές δεδομένων αλληλοδιάδοχα σε απόκριση της εντολής συγκέντρωσης ετικετών για τη μεταφορά των πληροφοριών ετικέτας στον ελεγκτή κρυφής μνήμης σε μεγάλα τμήματα. It is also possible to implement a tag pool instruction, which will trigger the control circuitry to perform a read operation to read information from each record from that subset of line cache records. Therefore, in response to the gather tags command, tag information from the active line can be gathered and returned faster than if separate read operations were required to read each tag in succession. This can be useful, for example, to allow a cache controller to make better replacement decisions when allocating new data to a cache. Since the data channel between the storage circuit and the cache controller may not be as wide as the total size of all tag information on the active line, multiple data transfers can be performed in succession in response to the tag pool command to transfer the tag information in the cache controller in large segments.

            Η τεχνική που εξετάζεται παραπάνω μπορεί να χρησιμοποιείται για κυκλώματα αποθήκευσης που βασίζονται σε οποιαδήποτε τεχνολογία μνήμης η οποία χρησιμοποιεί μια προσωρινή μνήμη γραμμών. Ωστόσο, μπορεί να είναι ιδιαίτερα χρήσιμη για κυκλώματα αποθήκευσης που βασίζονται σε μνήμες τεχνολογίας DRAM. Η DRAM είναι μια σχετικά αποδοτική ως προς την επιφάνεια τεχνολογία μνήμης, αλλά είναι συνήθως σχετικά αργής προσπέλασης, κάνοντας δύσκολη την αποτελεσματική της χρήση ως συσχετιστική ως προς ένα σύνολο κρυφή μνήμη. Συνεπώς, η μνήμη DRAM έχει παραδοσιακά χρησιμοποιηθεί για κύρια μνήμη, αλλά όχι για κρυφή μνήμη. Με την παροχή του κυκλώματος σύγκρισης που περιγράφεται παραπάνω, η μνήμη DRAM γίνεται ελκυστικότερη για χρήση ως κρυφή μνήμη, επιτρέποντας την υλοποίηση μεγαλύτερων κρυφών μνημών με μικρότερη επιφάνεια κυκλώματος και συνεπώς χαμηλότερο κόστος παραγωγής σε σύγκριση με εναλλακτικές λύσεις όπως η μνήμη SRAM. The technique discussed above can be used for storage circuits based on any memory technology that uses a line cache. However, it can be particularly useful for storage circuits based on DRAM technology memories. DRAM is a relatively surface-efficient memory technology, but it is typically relatively slow to access, making it difficult to effectively use as a set associative cache. Therefore, DRAM has traditionally been used for main memory, but not for cache memory. By providing the comparator circuit described above, DRAM becomes more attractive for use as a cache memory, allowing larger caches to be implemented with smaller circuit area and thus lower manufacturing costs compared to alternatives such as SRAM.

            Μια διάταξη (π.χ. ένα σύστημα επεξεργασίας δεδομένων) μπορεί να περιλαμβάνει το κύκλωμα αποθήκευσης που περιγράφεται παραπάνω και έναν ελεγκτή κρυφής μνήμης για τον έλεγχο των προσβάσεων σε δεδομένα κρυφής μνήμης που αποθηκεύονται στο κύκλωμα αποθήκευσης. Σε απόκριση ενός αιτήματος πρόσβασης σε κρυφή μνήμη το οποίο προσδιορίζει μια διεύθυνση προορισμού, είτε ο ελεγκτής κρυφής μνήμης είτε το κύκλωμα αποθήκευσης μπορεί να εκδίδει την εντολή ταύτισης ετικετών η οποία προσδιορίζει μια τιμή ετικέτας που καθορίζεται ως συνάρτηση της εν λόγω διεύθυνσης προορισμού. Σε ορισμένες περιπτώσεις, η δημιουργία της εντολής ταύτισης ετικετών μπορεί να λαμβάνει χώρα στον ελεγκτή κρυφής μνήμης, ενώ στη συνέχεια ο ελεγκτής κρυφής μνήμης μπορεί να μεταδίδει μια διεύθυνση γραμμής και την τιμή ετικέτας στο κύκλωμα αποθήκευσης, το οποίο μπορεί να συγκρίνει την τιμή ετικέτας με το υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών, να ενεργοποιεί μια ανάγνωση/εγγραφή στην εγγραφή ταύτισης και στη συνέχεια να επιστρέφει τα απαιτούμενα δεδομένα ή μια ένδειξη αστοχίας για ένα σήμα αναγνώρισης ανάγνωσης ή εγγραφής για μια εγγραφή. Εναλλακτικά, ο ελεγκτής κρυφής μνήμης θα μπορούσε να εκδίδει μια διεύθυνση μνήμης στο κύκλωμα αποθήκευσης, το οποίο στη συνέχεια θα μπορούσε να αποκωδικοποιεί τη διεύθυνση γραμμής και την τιμή ετικέτας εσωτερικά και στη συνέχεια να επεξεργάζεται την εντολή ταύτισης ετικετών με παρόμοιο τρόπο με αυτόν που εξετάστηκε παραπάνω. Όταν εντοπίζεται μια ευστοχία σε απόκριση της εντολής ταύτισης ετικετών, το κύκλωμα αποθήκευσης μπορεί να εξάγει στον ελεγκτή κρυφής μνήμης τουλάχιστον ένα από τα εξής: μια τιμή δεδομένων που αντιστοιχεί σε μια θέση αποθήκευσης προορισμού διαφορετική από τη θέση αποθήκευσης που σχετίζεται με την εγγραφή ταύτισης και πληροφορίες για τον προσδιορισμό της θέσης αποθήκευσης του κυκλώματος αποθήκευσης η οποία είναι η θέση αποθήκευσης προορισμού. Στην πράξη, η απόδοση μπορεί να είναι ταχύτερη εάν το κύκλωμα αποθήκευσης εξάγει την ίδια την τιμή δεδομένων ώστε να μην υπάρχει ανάγκη για μια επακόλουθη εντολή ανάγνωσης επιπλέον της εντολής ταύτισης ετικετών. An arrangement (eg, a data processing system) may include the storage circuitry described above and a cache controller for controlling accesses to cache data stored in the storage circuitry. In response to a cache access request that specifies a destination address, either the cache controller or the storage circuitry may issue the match tag instruction that specifies a tag value determined as a function of said destination address. In some cases, the generation of the tag match instruction may occur in the cache controller, and the cache controller may then pass a line address and the tag value to the storage circuitry, which may compare the tag value with the subset of line cache records, trigger a read/write on the matching record, and then return the required data or a failure indication for a read or write acknowledgment signal for a record. Alternatively, the cache controller could issue a memory address to the storage circuit, which could then decode the line address and tag value internally and then process the tag matching instruction in a similar way to that discussed above . When a hit is detected in response to the match tag instruction, the storage circuitry may output to the cache controller at least one of the following: a data value corresponding to a destination storage location other than the storage location associated with the match record, and information to determine the storage location of the storage circuit which is the destination storage location. In practice, performance can be faster if the storage circuitry outputs the data value itself so that there is no need for a subsequent read instruction in addition to the tag matching instruction.

            Το Σχήμα 1 δείχνει τη λογική λειτουργία ενός χειρισμού αναζήτησης ετικέτας για μια συσχετιστική ως προς ένα σύνολο κρυφή μνήμη 2. Η κρυφή μνήμη 2 έχει έναν αριθμό εγγραφών κρυφής μνήμης 4 με κάθε μια να περιλαμβάνει ένα ζεύγος ετικέτας-δεδομένων, με κάθε ζεύγος να περιλαμβάνει μια τιμή δεδομένων 6 και μια τιμή ετικέτας 8 η οποία καθορίζει ένα τμήμα της διεύθυνσης μνήμης που αντιστοιχεί στην τιμή δεδομένων και προαιρετικά καθορίζει και άλλες πληροφορίες όπως οι πληροφορίες κατάστασης συνάφειας ή οι πληροφορίες ελέγχου έξωσης. Οι εγγραφές κρυφής μνήμης 4 οργανώνονται λογικά σε σύνολα 10, με κάθε ένα να περιλαμβάνει έναν ορισμένο αριθμό εγγραφών κρυφής μνήμης (π.χ. το Σχήμα 1 δείχνει μια συσχετιστική ως προς ένα σύνολο κρυφή μνήμη 4 κατευθύνσεων 2, ώστε κάθε σύνολο 10 περιλαμβάνει τέσσερις εγγραφές κρυφής μνήμης 4). Η ομάδα θέσεων σε αντίστοιχες θέσεις εντός κάθε συνόλου αναφέρεται ως μια “κατεύθυνση” 12, π.χ. η κατεύθυνση 0 περιλαμβάνει την πρώτη εγγραφή κρυφής μνήμης 4 κάθε συνόλου 10, η κατεύθυνση 1 περιλαμβάνει τη δεύτερη εγγραφή κρυφής μνήμης 4 κάθε συνόλου 10, κλπ. Figure 1 shows the logical operation of a tag lookup operation for a set-associative cache 2. Cache 2 has a number of cache entries 4 each comprising a tag-data pair, each pair comprising a data value 6 and a label value 8 which specifies a portion of the memory address corresponding to the data value and optionally specifies other information such as relevance status information or eviction control information. The cache entries 4 are logically organized into sets of 10, each containing a certain number of cache entries (e.g. Figure 1 shows a 4-way cache set associative 2 so that each set 10 contains four entries cache 4). The group of positions in corresponding positions within each set is referred to as a “direction” 12, e.g. direction 0 includes the first cache entry 4 of each set of 10, direction 1 includes the second cache entry 4 of each set of 10, etc.

            Όταν πραγματοποιείται ένας χειρισμός ανάγνωσης/εγγραφής, παρέχεται η διεύθυνση μνήμης 14 του απαιτούμενου χρησιμοποιείται ένα τμήμα δείκτη 16 της διεύθυνσης προορισμού (ή ένα hash του τμήματος δείκτη 16) για την επιλογή του συνόλου 10 για πρόσβαση, ένα τμήμα ετικέτας 18 της διεύθυνσης προορισμού 14 συγκρίνεται με τις τιμές ετικέτας 8 σε κάθε μια από τις εγγραφές 4 του δεικτοδοτούμενου συνόλου 10. Ένα σήμα ευστοχίας επιβάλλεται για την κατεύθυνση 12 που περιλαμβάνει την ετικέτα ταύτισης, ενώ η αντίστοιχη τιμή δεδομένων 6 μπορεί να διαβάζεται από την εγγραφή κρυφής μνήμης 4 στην κατεύθυνση ταύτισης 12 του δεικτοδοτούμενου συνόλου 10. Ένα τμήμα μετατόπισης 20 της διεύθυνσης προορισμού μπορεί να προσδιορίζει τη θέση των απαιτούμενων δεδομένων εντός της επιστρεφόμενης τιμής δεδομένων 6. When a read/write operation is performed, the memory address 14 of the required is provided, a pointer portion 16 of the destination address (or a hash of the pointer portion 16) is used to select the set 10 for access, a tag portion 18 of the destination address 14 is compared with the tag values 8 in each of the entries 4 of the tagged set 10. A hit signal is asserted for the direction 12 that includes the match tag, while the corresponding data value 6 can be read from the cache entry 4 in the match direction 12 of the indexed set 10. An offset portion 20 of the destination address may specify the position of the required data within the returned data value 6.

            Μολονότι το Σχήμα 1 δείχνει τη λογική λειτουργία που είναι επιθυμητή για μια συσχετιστική ως προς ένα σύνολο κρυφή μνήμη, στη φυσική υλοποίηση υλικού, αυτή μπορεί να υλοποιείται με διάφορους τρόπους, ανάλογα την τεχνολογία μνήμης που χρησιμοποιείται για την κρυφή μνήμη. Είναι σχετικά κοινή η χρήση μνήμης SRAM για μια κρυφή μνήμη, εφόσον η μνήμη SRAM μπορεί να έχει ταχεία πρόσβαση σε σύγκριση με εναλλακτικές μνήμες όπως η DRAM. Ωστόσο, όλο και πιο συχνά υπάρχει ζήτηση για σχετικά μεγάλες κρυφές μνήμες, ενώ η μνήμη SRAM μπορεί να είναι σχετικά μεγάλης έντασης ως προς την επιφάνεια κυκλώματος, γεγονός που κάνει δαπανηρή την κατασκευή μεγαλύτερων κρυφών μνημών από μνήμη SRAM. Although Figure 1 shows the logical operation desired for a set-associative cache, in the physical hardware implementation, this may be implemented in various ways depending on the memory technology used for the cache. It is relatively common to use SRAM for a cache since SRAM can be accessed quickly compared to alternative memories such as DRAM. However, increasingly there is a demand for relatively large caches, and SRAM can be relatively intensive in terms of circuit area, making it expensive to build larger SRAM caches.

             Η μνήμη DRAM μπορεί να παρέχει μια φθηνότερη τεχνολογία για χρήση σε μεγαλύτερες δομές αποθήκευσης. Το Σχήμα 2 δείχνει ένα παράδειγμα ενός βασισμένου σε μνήμη DRAM κυκλώματος αποθήκευσης 30. Το κύκλωμα αποθήκευσης 30 περιλαμβάνει μια μήτρα 32 θέσεων αποθήκευσης 34 διαταγμένων σε γραμμές και στήλες, μια προσωρινή μνήμη γραμμών 36, έναν πολυπλέκτη στηλών 38 και έναν αποκωδικοποιητή γραμμών 40. Για τη μνήμη DRAM, κάθε θέση αποθήκευσης 34 περιλαμβάνει μια ομάδα κελιών bit, με κάθε κελί bit να περιλαμβάνει έναν πυκνωτή ο οποίος μπορεί να φορτίζεται ή να εκφορτίζεται επιλεκτικά ώστε να αναπαριστά ένα 1 ή ένα 0 που αντιστοιχεί σε ένα bit της συνολικής τιμής που αναπαρίσταται από την αντίστοιχη θέση αποθήκευσης 34. Οι προσβάσεις στη μνήμη DRAM 30 πραγματοποιούνται σε δύο στάδια. Πρώτα, εκδίδεται μια εντολή ενεργοποίησης που καθορίζει μια διεύθυνση γραμμής 42. Ο αποκωδικοποιητής γραμμών 40 ενεργοποιεί την αντίστοιχη γραμμή 46, ώστε να μεταφέρει τις πληροφορίες που αποθηκεύονται σε κάθε μια από τις θέσεις αποθήκευσης 34 της αντίστοιχης γραμμής στην προσωρινή μνήμη γραμμών 36. Κατά δεύτερο, μια διεύθυνση στήλης 44 συνοδεύει την πραγματική εντολή ανάγνωσης/εγγραφής, η οποία ελέγχει τον πολυπλέκτη στηλών 38 για την επιλογή μιας εγγραφής της προσωρινής μνήμης γραμμών 36 που αντιστοιχεί στην καθορισμένη στήλη εντός της ενεργής γραμμής και είτε εξάγει τις πληροφορίες που διαβάστηκαν από αυτή την εγγραφή ως αναγνωσμένα δεδομένα είτε ενημερώνει τα δεδομένα σε αυτή την εγγραφή με βάση τα δεδομένα εγγραφής που παρέχονται με την εντολή εγγραφής. Για μια εγγραφή, εφόσον η σύνδεση μεταξύ των ενισχυτών ανίχνευσης που διαμορφώνουν την προσωρινή μνήμη γραμμών 36 και της αντίστοιχης θέσης αποθήκευσης DRAM 34 μπορεί να παραμένει ανοικτή, οι εγγραφές στην προσωρινή μνήμη γραμμών 36 μπορούν να μεταδίδονται πάλι και στην αντίστοιχη θέση αποθήκευσης 34. Πολλαπλοί χειρισμοί ανάγνωσης/εγγραφής μπορούν να πραγματοποιούνται εντός της ίδιας ενεργής γραμμής, προτού κλείσει η γραμμή με τη χρήση μιας εντολής προ-φόρτισης, η οποία κλείνει τη σύνδεση μεταξύ της προσωρινής μνήμης γραμμών 36 και της ενεργής γραμμής 46, εξασφαλίζει ότι οι θέσεις αποθήκευσης της ενεργής γραμμής 46 έχουν ενημερωθεί ώστε να αντικατοπτρίζουν οποιεσδήποτε εγγραφές στην προσωρινή μνήμη γραμμών 36 και θέτει και πάλι την προσωρινή μνήμη γραμμών 36 έτοιμη ώστε να επιλεγεί μια άλλη γραμμή ως την ενεργή γραμμή. DRAM can provide a cheaper technology for use in larger storage structures. Figure 2 shows an example of a DRAM memory based storage circuit 30. The storage circuit 30 includes a matrix 32 of storage locations 34 arranged in rows and columns, a row buffer 36, a column multiplexer 38 and a row decoder 40. For the DRAM memory, each storage location 34 includes a group of bit cells, each bit cell including a capacitor that can be selectively charged or discharged to represent a 1 or a 0 corresponding to one bit of the total value represented by corresponding storage location 34. Accesses to DRAM memory 30 are performed in two stages. First, an enable command is issued specifying a line address 42. The line decoder 40 activates the corresponding line 46 to transfer the information stored in each of the corresponding line's storage locations 34 to the line buffer 36. Second, a column address 44 accompanies the actual read/write command, which controls the column multiplexer 38 to select a record of the line buffer 36 corresponding to the specified column within the active line and either outputs the information read from that record as read data or updates the data in this record based on the record data supplied with the write command. For a write, as long as the connection between the sense amplifiers shaping the line buffer 36 and the corresponding DRAM storage location 34 can remain open, the writes to the line buffer 36 can be transmitted back to the corresponding storage location 34. Multiple Operations read/write operations can occur within the same active line, before the line is closed using a preload instruction, which closes the connection between line cache 36 and the active line 46, ensures that the active line's storage locations 46 have been updated to reflect any entries in line buffer 36 and again sets line buffer 36 ready for another line to be selected as the active line.

             Η μνήμη DRAM 30 χρησιμοποιείται συχνά ως κύρια μνήμη σε ένα σύστημα επεξεργασίας, εφόσον μπορεί να παρέχει σχετικά μεγάλη χωρητικότητα αποθήκευσης με χαμηλό κόστος, ενώ για την κύρια μνήμη η σχετικά μικρή καθυστέρηση πρόσβασης της μνήμης DRAM 30 δεν αποτελεί πρόβλημα εφόσον η κύρια μνήμη προορίζεται για μαζική εφεδρική αποθήκευση, παρά για την αποθήκευση δεδομένων για ταχεία πρόσβαση. DRAM 30 is often used as main memory in a processing system since it can provide relatively large storage capacity at low cost, while for main memory the relatively small access delay of DRAM 30 is not a problem since main memory is intended for mass backup storage, rather than storing data for quick access.

              Ωστόσο, όλο και πιο συχνά υπάρχει ζήτηση για μεγαλύτερες κρυφές μνήμες από ότι θα ήταν οικονομικό για την κατασκευή τους από μνήμη SRAM. Η μνήμη DRAM θα ήταν ελκυστική για εξοικονόμηση χρημάτων, όμως υπάρχουν ορισμένα ζητήματα απόδοσης που σχετίζονται με τη χρήση της μνήμης DRAM ως κρυφή μνήμη. However, increasingly there is a demand for larger caches than would be economical to build from SRAM. DRAM would be attractive to save money, but there are some performance issues associated with using DRAM as a cache.

Συγκεκριμένα, οι κρυφές μνήμες για να παρέχουν μια κατάλληλη ισορροπία μεταξύ επιδόσεων και απόδοσης ως προς την επιφάνεια, είναι συχνά επιθυμητή η υλοποίηση της κρυφής μνήμης ως μια συσχετιστική ως προς ένα σύνολο κρυφή μνήμη, όπως επεξηγείται στο Σχήμα 1. Ωστόσο, η υλοποίηση της αναζήτησης ετικετών για συσχετιστικές ως προς ένα σύνολο κρυφές μνήμες μπορεί να είναι δύσκολη με τη χρήση τεχνολογιών αποθήκευσης βασισμένων σε μνήμες DRAM. Τα Σχήματα 3 και 4 απεικονίζουν δύο εναλλακτικούς τρόπους στους οποίους θα ήταν δυνατή η χρήση της μνήμης DRAM για την υλοποίηση μιας συσχετιστικής ως προς ένα σύνολο κρυφής μνήμης. In particular, for caches to provide an appropriate balance between performance and throughput, it is often desirable to implement the cache as a set-associative cache, as illustrated in Figure 1. However, the lookup implementation tags for set-associative caches can be difficult using DRAM-based storage technologies. Figures 3 and 4 illustrate two alternative ways in which DRAM could be used to implement a set-associative cache.

            Όπως δείχνεται στο Σχήμα 3, μια προσέγγιση είναι η αποθήκευση της τιμής δεδομένων από κάθε ζεύγος ετικέτας-δεδομένων στη μνήμη DRAM 30, αλλά η αποθήκευση των τιμών ετικέτας σε μια ξεχωριστή δομή αποθήκευσης βασισμένη σε μνήμες SRAM 50. Συνεπώς, κατά την πρόσβαση στην κρυφή μνήμη για την απόκτηση δεδομένων για μια δεδομένη διεύθυνση, ένας ελεγκτής κρυφής μνήμης 52 εξάγει το τμήμα ετικέτας της διεύθυνσης προς την αποθήκευση ετικέτας SRAM 50 η οποία συγκρίνει την τιμή ετικέτας με τις αποθηκευμένες ετικέτες του αντίστοιχου συνόλου, προσδιορίζει κατά πόσο υπάρχει μια ευστοχία ή μια αστοχία και σε περίπτωση ευστοχίας παρέχει μια διεύθυνση στήλης στη μνήμη DRAM 30 η οποία προσδιορίζει τη θέση προορισμού DRAM που αντιστοιχεί στην ετικέτα ταύτισης. Ταυτόχρονα παρέχεται η διεύθυνση γραμμής της θέσης προορισμού DRAM από τον ελεγκτή κρυφής μνήμης 52. Συνεπώς, η μνήμη DRAM 30 μπορεί να χρησιμοποιεί τη διεύθυνση γραμμής και τη διεύθυνση στήλης για τον προσδιορισμό της απαιτούμενης θέσης αποθήκευσης και την επιστροφή των απαιτούμενων δεδομένων. Για τις εγγραφές μπορεί να πραγματοποιείται μια παρόμοια αναζήτηση της αποθήκευσης ετικετών SRAM 50, όμως σε αυτή την περίπτωση τα δεδομένα εγγραφής που παρέχονται από τον ελεγκτή κρυφής μνήμης 52 εγγράφονται στη θέση αποθήκευσης που προσδιορίζεται από τη διεύθυνση γραμμής και τη διεύθυνση στήλης. Ένα πρόβλημα με αυτή την προσέγγιση είναι ότι η μνήμη SRAM που χρησιμοποιείται για την αποθήκευση ετικετών 50 είναι ακριβή όσον αφορά στην επιφάνεια του κυκλώματος, το οποίο αποτελεί ιδιαίτερα πρόβλημα καθώς μεγαλώνει η χωρητικότητα της κρυφής μνήμης. As shown in Figure 3, one approach is to store the data value from each tag-data pair in the DRAM memory 30, but to store the tag values in a separate SRAM-based storage structure 50. Therefore, when accessing the cache to obtain data for a given address, a cache controller 52 outputs the tag portion of the address to SRAM tag storage 50 which compares the tag value with the stored tags of the corresponding set, determines whether there is a hit or a miss, and on success provides a column address in DRAM memory 30 which identifies the DRAM destination location corresponding to the match tag. At the same time the line address of the destination DRAM location is provided by the cache controller 52. Therefore, the DRAM memory 30 can use the line address and the column address to determine the required storage location and return the required data. For writes, a similar search of SRAM tag storage 50 may be performed, but in this case the write data provided by cache controller 52 is written to the storage location identified by the row address and column address. One problem with this approach is that the SRAM memory used to store tags 50 is expensive in terms of circuit area, which is especially a problem as the cache capacity grows.

            Το Σχήμα 4 δείχνει μια εναλλακτική προσέγγιση στην οποία τόσο τα δεδομένα, όσο και η ετικέτα κάθε ζεύγους ετικέτας-δεδομένων αποθηκεύονται στην ίδια τη μνήμη DRAM 30, αποτρέποντας οποιαδήποτε ανάγκη για επιπλέον αποθήκευση ετικέτας βασισμένη σε μνήμη SRAM και συνεπώς μειώνοντας την επιφάνεια του κυκλώματος. Ωστόσο, με αυτή την προσέγγιση, οι αναζητήσεις ετικετών απαιτούν από τον ελεγκτή κρυφής μνήμης την επιλογή ενός συγκεκριμένου τρόπου αναζήτησης του συνόλου, την έκδοση ενός χειρισμού ανάγνωσης που καθορίζει τη διεύθυνση γραμμής και στήλης της θέσης αποθήκευσης DRAM που αποθηκεύει την τιμή ετικέτας αυτής της κατεύθυνσης, την ανάγνωση της τιμής ετικέτας και τη σύγκριση της ετικέτας ανάγνωσης με το τμήμα ετικέτας της διεύθυνσης προορισμού για να προσδιοριστεί κατά πόσο υπάρχει μια ευστοχία ή μια αστοχία. Εάν υπάρχει μια ευστοχία, μια επακόλουθη πρόσβαση ανάγνωσης μπορεί στη συνέχεια να προσδιορίζει τη διεύθυνση γραμμής/στήλης της αντίστοιχης τιμής δεδομένων για την ετικέτα ταύτισης και στη συνέχεια τα δεδομένα επιστρέφονται. Εάν υπάρχει μια αστοχία, είναι απαραίτητη η έκδοση μιας άλλης πρόσβασης ανάγνωσης για την πρόσβαση στην επόμενη ετικέτα του δει κτοδοτού μενού συνόλου, όταν για την επόμενη ετικέτα επαναλαμβάνεται η ίδια διαδικασία όπως για την πρώτη σύγκριση ετικέτας και ούτω καθεξής μέχρι είτε να προσδιοριστεί μια ετικέτα ταύτισης είτε να προσδιοριστεί μια αστοχία για όλες τις ετικέτες στο δεικτοδοτούμενο σύνολο. Είναι δυνατή η παροχή πρόβλεψης κατεύθυνσης 54 για την ιχνηλάτηση των κατευθύνσεων με προηγούμενη πρόσβαση και την αύξηση της πιθανότητας επιλογής της σωστής κατεύθυνσης την πρώτη φορά. Ωστόσο, το υλικό πρόβλεψης της κατεύθυνσης 54 επιφέρει ένα κόστος επιφάνειας και κατανάλωσης ενέργειας, και ακόμη και εάν η πρόβλεψη κατεύθυνσης είναι σχετικά ακριβής, υπάρχουν ακόμη φορές που απαιτούνται πολλαπλές αλληλοδιάδοχες προσβάσεις ανάγνωσης ετικετών, πραγματοποιούμενες σε σειρά, ακολουθούμενες από την επακόλουθη πρόσβαση ανάγνωσης δεδομένων, η οποία επίσης είναι αλληλοδιάδοχη της προηγούμενης αναζήτησης ετικέτας. Συνεπώς, κάθε πρόσβαση κρυφής μνήμης απαιτεί τη σειριακή επεξεργασία τουλάχιστον δύο εντολών (μια εντολή ανάγνωσης ετικέτας και μια εντολή ανάγνωσης/εγγραφής), όμως ορισμένες φορές μπορεί να απαιτούνται τρεις ή περισσότερες εντολές εάν η πρώτη ανάγνωση ετικέτας δεν ταυτίζεται με την ετικέτα της διεύθυνσης προορισμού. Συνεπώς, αυτή η προσέγγιση υστερεί όσον αφορά στην απόδοση. Figure 4 shows an alternative approach in which both the data and the tag of each tag-data pair are stored in the DRAM 30 itself, obviating any need for additional SRAM-based tag storage and thus reducing circuit area. However, with this approach, tag lookups require the cache controller to choose a particular way to lookup the set, issue a read operation that specifies the row and column address of the DRAM storage location that stores the tag value of that address, reading the tag value and comparing the read tag with the tag portion of the destination address to determine whether there is a hit or miss. If there is a hit, a subsequent read access can then determine the row/column address of the corresponding data value for the match tag, and then the data is returned. If there is a failure, it is necessary to issue another read access to access the next tag in the set menu pointer, when for the next tag the same process as for the first tag comparison is repeated, and so on until either a matching tag is determined or to specify a failure for all tags in the indexed set. It is possible to provide direction prediction 54 to track previously accessed directions and increase the probability of selecting the correct direction the first time. However, the direction prediction hardware 54 incurs a cost in area and power consumption, and even if the direction prediction is relatively accurate, there are still times when multiple sequential tag read accesses are required, performed in sequence, followed by the subsequent data read access. which is also a cascade of the previous tag search. Therefore, each cache access requires the serial processing of at least two instructions (a tag read instruction and a read/write instruction), but sometimes three or more instructions may be required if the first tag read does not match the destination address tag. Therefore, this approach lags in terms of performance.

            Το Σχήμα 5 δείχνει μια διάταξη επεξεργασίας δεδομένων 60 η οποία περιλαμβάνει έναν ελεγκτή κρυφής μνήμης 62 και ένα κύκλωμα αποθήκευσης DRAM 64 για την αντιμετώπιση αυτών των ζητημάτων. Όπως στο Σχήμα 4, τόσο τα δεδομένα, όσο και οι συσχετισμένες τους ετικέτες αποθηκεύονται στη μνήμη DRAM 64, με αποτέλεσμα να μην απαιτείται ξεχωριστή αποθήκευση ετικετών βασισμένη σε μνήμη SRAM 50 όπως στο Σχήμα 3, εξοικονομώντας επιφάνεια κυκλώματος. Ωστόσο, η μνήμη DRAM 64 υποστηρίζει μια εντολή ταύτισης ετικέτας η οποία επιτρέπει την παράλληλη σύγκριση πολλαπλών ετικετών εντός της μνήμης DRAM 64 σε απόκριση μιας μόνο εντολής που εκδόθηκε από τον ελεγκτή κρυφής μνήμης 62, βελτιώνοντας την απόδοση. Για ένα χειρισμό ανάγνωσης, ο ελεγκτής κρυφής μνήμης 62 εκδίδει μια εντολή ανάγνωσης ταύτισης ετικετών και παρέχει στη μνήμη DRAM 64 μια διεύθυνση γραμμής που προσδιορίζει την απαιτούμενη γραμμή των θέσεων DRAM και μια τιμή ετικέτας για σύγκριση με τις ετικέτες που αποθηκεύονται σε αυτή τη γραμμή των θέσεων DRAM. Τόσο η διεύθυνση γραμμής όσο και η τιμή ετικέτας μπορούν να παράγονται από τον ελεγκτή κρυφής μνήμης 62 ως συνάρτηση της διεύθυνσης μνήμης προορισμού των δεδομένων για πρόσβαση. Σε απόκριση της εντολής ανάγνωσης ταύτισης ετικετών, η μνήμη DRAM 64 συγκρίνει την τιμή ετικέτας με κάθε μια από τις τιμές ετικέτας που αποθηκεύονται εντός της γραμμής που προσδιορίζεται από τη διεύθυνση γραμμής, επιστρέφει την τιμή δεδομένων που αντιστοιχεί σε μια ετικέτα ταύτισης σε περίπτωση μιας ευστοχίας και επιστρέφει μια ένδειξη αστοχίας σε περίπτωση μιας αστοχίας. Για ένα χειρισμό εγγραφής, ο ελεγκτής κρυφής μνήμης 62 εκδίδει τη διεύθυνση γραμμής, την τιμή ετικέτας και τα δεδομένα εγγραφής και πάλι η μνήμη DRAM 64 συγκρίνει την τιμή ετικέτας με κάθε μια από τις τιμές ετικέτας που αποθηκεύονται στην αντίστοιχη γραμμή, εγγράφει την τιμή δεδομένων σε μια θέση που αντιστοιχεί στην ετικέτα ταύτισης σε περίπτωση ευστοχίας, εκχωρεί την τιμή δεδομένων και την αντίστοιχή της ετικέτα σε μια νέα θέση αποθήκευσης σε περίπτωση αστοχίας και επιστρέφει μια αναγνώριση εγγραφής στον ελεγκτή κρυφής μνήμης 62. Αυτή η προσέγγιση παρέχει μια καλύτερη ισορροπία μεταξύ απόδοσης και επιφάνειας κυκλώματος και είναι ιδιαίτερα χρήσιμη για μεγαλύτερες κρυφές μνήμες όπου η μνήμη SRAM δεν είναι αποδοτική ως προς το κόστος. Figure 5 shows a data processing device 60 which includes a cache controller 62 and a DRAM storage circuit 64 to address these issues. As in Figure 4, both the data and its associated tags are stored in DRAM 64, thereby eliminating the need for separate tag storage based on SRAM 50 as in Figure 3, saving circuit area. However, DRAM 64 supports a tag matching instruction which allows multiple tags within DRAM 64 to be compared in parallel in response to a single instruction issued by cache controller 62, improving performance. For a read operation, the cache controller 62 issues a tag match read command and provides the DRAM memory 64 with a line address identifying the required line of DRAM locations and a tag value to compare with the tags stored in that line of locations. DRAM. Both the line address and the tag value may be generated by the cache controller 62 as a function of the destination memory address of the data to be accessed. In response to the tag match read command, DRAM 64 compares the tag value with each of the tag values stored within the row identified by the row address, returns the data value corresponding to a match tag on a hit, and returns a failure indication in the event of a failure. For a write operation, cache controller 62 outputs the line address, tag value and write data, and again DRAM 64 compares the tag value with each of the tag values stored in the corresponding line, writes the data value to a location corresponding to the matching label on success, assigns the data value and its corresponding label to a new storage location on failure, and returns a write acknowledgment to the cache controller 62. This approach provides a better balance between performance and footprint circuit and is particularly useful for larger caches where SRAM is not cost-effective.

            Το Σχήμα 6 δείχνει τη μνήμη DRAM 64 του Σχήματος 5 σε μεγαλύτερη λεπτομέρεια. Όπως στο Σχήμα 2, η μνήμη DRAM 64 περιλαμβάνει μια μήτρα 32 θέσεων αποθήκευσης 34, προσωρινής μνήμης γραμμών 36, πολυπλέκτη στηλών 38 και αποκωδικοποιητή γραμμών 40. Η προσωρινή μνήμη γραμμών 36 περιλαμβάνει έναν αριθμό εγγραφών 68, με κάθε εγγραφή 68 να αντιστοιχεί σε μια στήλη της μήτρας αποθήκευσης 32. Οι εντολές ανάγνωσης και εγγραφής μη ταύτισης ετικετών, μια εντολή ενεργοποίησης και μια εντολή προ-φόρτισης υποστηρίζονται με τον ίδιο τρόπο όπως περιγράφεται για το Σχήμα 2. Όταν λαμβάνεται μια εντολή ενεργοποίησης, οι πληροφορίες που αποθηκεύονται σε κάθε μια από τις θέσεις αποθήκευσης 34 της γραμμής που προσδιορίζεται από τη διεύθυνση γραμμής 42 μεταφέρονται στην προσωρινή μνήμη γραμμών 36, με κάθε εγγραφή 68 να ενημερώνεται με τις πληροφορίες από τη θέση αποθήκευσης 34 σε μια αντίστοιχη στήλη της ενεργοποιημένης γραμμής 46. Όπως υποδεικνύεται στο Σχήμα 6, ορισμένες από τις θέσεις στην ενεργή γραμμή 46 μπορεί να αποθηκεύουν τιμές ετικετών (Τ) ενώ άλλες θέσεις να αποθηκεύουν τιμές δεδομένων (D), επομένως η προσωρινή μνήμη γραμμών 68 περιλαμβάνει ένα μίγμα ετικετών και δεδομένων. Figure 6 shows the DRAM 64 of Figure 5 in greater detail. As in Figure 2, DRAM memory 64 includes a matrix of 32 storage locations 34, line buffer 36, column multiplexer 38, and line decoder 40. Line buffer 36 includes a number of records 68, with each record 68 corresponding to a column of the storage matrix 32. Tag mismatch read and write commands, an enable command, and a precharge command are supported in the same manner as described for Figure 2. When an enable command is received, the information stored in each of storage locations 34 of the line identified by line address 42 are transferred to line buffer 36, with each record 68 being updated with the information from storage location 34 in a corresponding column of enabled line 46. As indicated in Figure 6, some of locations on active line 46 may store tag values (T) while other locations store values data (D), so line buffer 68 includes a mixture of tags and data.

            Η μνήμη DRAM 64 έχει ένα κύκλωμα σύγκρισης 70 για τη σύγκριση του περιεχομένου των εγγραφών 68 της προσωρινής μνήμης γραμμών 36 με μια τιμή ετικέτας 72 που παρέχεται από τον ελεγκτή κρυφής μνήμης 62 με μια εντολή ταύτισης ετικετών. Η εντολή ταύτισης ετικετών θα μπορούσε να είναι μια εντολή ανάγνωσης ταύτισης ετικετών η οποία ενεργοποιεί μια αναζήτηση ετικέτας και μια συσχετισμένη ανάγνωση ή μια εντολή εγγραφής ταύτισης ετικετών η οποία ενεργοποιεί μια αναζήτηση ετικέτας και μια συσχετισμένη εγγραφή. Το κύκλωμα ελέγχου 74 παρέχεται ώστε να λαμβάνει εντολές που παρέχονται από τον ελεγκτή κρυφής μνήμης 62 και να ενεργοποιεί τις κατάλληλες διαδρομές ελέγχου στο υλικό της μονάδας DRAM 64 για τον έλεγχο του αποκωδικοποιητή γραμμών 40, του πολυπλέκτη στηλών 38 και των συγκριτών 70 για την πραγματοποίηση των απαιτούμενων χειρισμών. The DRAM memory 64 has a comparator circuit 70 for comparing the contents of the entries 68 of the line buffer 36 with a tag value 72 provided by the cache controller 62 with a tag match instruction. The tag match command could be a tag match read command which triggers a tag lookup and an associated read, or a tag match write command which triggers a tag lookup and an associated write. Control circuitry 74 is provided to receive commands provided by cache controller 62 and activate appropriate control paths in DRAM module hardware 64 to control row decoder 40, column multiplexer 38, and comparators 70 to perform the required manipulations.

            Συνεπώς, όταν λαμβάνεται μια εντολή ταύτισης ετικετών, το κύκλωμα ελέγχου 74 ελέγχει τους συγκριτές 70 για τη σύγκριση της ληφθείσας τιμής ετικέτας 72 με τις ετικέτες που αποθηκεύονται σε ένα υποσύνολο εγγραφών 68 της προσωρινής μνήμης γραμμών. Οι συγκρίσεις μεταξύ της ληφθείσας ετικέτας 72 και των ετικετών που αποθηκεύονται στην προσωρινή μνήμη γραμμών 36 πραγματοποιούνται παράλληλα, με αποτέλεσμα η απόδοση να είναι ταχύτερη από την περίπτωση που επεξηγείται στο Σχήμα 4 όπου οι ετικέτες συγκρίνονται αλληλοδιάδοχα. Εάν οποιαδήποτε από τις ετικέτες στην προσωρινή μνήμη γραμμών 36 ταυτίζεται με τη ληφθείσα ετικέτα 72, επιβάλλεται ένα σήμα ευστοχίας το οποίο μπορεί να ενεργοποιεί ένα χειρισμό ανάγνωσης για την ανάγνωση της αντίστοιχης τιμής δεδομένων από τη μήτρα DRAM 32 και την επιστροφή των δεδομένων στον ελεγκτή κρυφής μνήμης 62. Για παράδειγμα, στη διάταξη που δείχνεται στο Σχήμα 6, οι ετικέτες και οι τιμές δεδομένων εναλλάσσονται σε ζεύγη κι επομένως όταν προσδιορίζεται μια ευστοχία για μια δεδομένη ετικέτα, η αντίστοιχη τιμή δεδομένων μπορεί να διαβάζεται από τη γειτονική εγγραφή της προσωρινής μνήμης γραμμών 36. Εάν καμία από τις συγκριθείσες ετικέτες δεν ταυτίζεται με την καθορισμένη τιμή ετικέτας 72, επιστρέφεται μια ένδειξη αστοχίας στον ελεγκτή κρυφής μνήμης 62. Accordingly, when a tag match command is received, the control circuit 74 checks the comparators 70 to compare the received tag value 72 with the tags stored in a subset of entries 68 of the line buffer. Comparisons between the received tag 72 and the tags stored in the line buffer 36 are performed in parallel, resulting in faster performance than the case illustrated in Figure 4 where the tags are compared one after the other. If any of the tags in the line buffer 36 matches the received tag 72, a hit signal is asserted which can trigger a read operation to read the corresponding data value from the DRAM array 32 and return the data to the cache controller 62. For example, in the arrangement shown in Figure 6, tags and data values are alternated in pairs and thus when a hit is determined for a given tag, the corresponding data value can be read from the adjacent entry of line buffer 36. If none of the compared tags match the specified tag value 72 , a failure indication is returned to the cache controller 62 .

           Όπως δείχνεται στο Σχήμα 6, η διεύθυνση στήλης της εγγραφής της προσωρινής μνήμης γραμμών 68 που ταυτίζεται με την τιμή ετικέτας 72 μπορεί να αποθηκεύεται σε ένα στοιχείο αποθήκευσης 75 εντός της μονάδας DRAM 64. Το γεγονός αυτό κάνει δυνατή την ενημέρωση της ετικέτας ταύτισης από μια επακόλουθη εντολή (“εγγραφή σε προηγούμενη ευστοχία” όπως εξετάζεται παρακάτω για το Σχήμα 13) χωρίς ανάγκη για επανάληψη της αναζήτησης ετικετών ή για πληροφόρηση του ελεγκτή κρυφής μνήμης 62 σχετικά με την ταυτιζόμενη ετικέτα. Μολονότι δείχνεται ξεχωριστά στο Σχήμα 6, το στοιχεία αποθήκευσης 75 που προσδιορίζουν την προηγούμενη ετικέτα ευστοχίας θα μπορούσαν επίσης να αποτελούν τμήμα της ίδιας της προσωρινής μνήμης γραμμών 36. As shown in Figure 6, the column address of the line cache entry 68 that matches the tag value 72 may be stored in a storage element 75 within the DRAM unit 64. This allows the match tag to be updated by a subsequent command ("write to previous hit" as discussed below for Figure 13) without the need to repeat the tag lookup or to inform the cache controller 62 about the identified tag. Although shown separately in Figure 6, the storage elements 75 identifying the previous hit tag could also be part of the line buffer 36 itself.

             Ένα στοιχείο αποθήκευσης διαμόρφωσης 76 μπορεί να παρέχεται για τον έλεγχο των συγκεκριμένων εγγραφών της προσωρινής μνήμης γραμμών 36 οι οποίες συγκρίνονται με την τιμή ετικέτας 72 από τους συγκριτές 70. Αυτό κάνει δυνατή τη διαμόρφωση του ίδιου υλικού DRAM σε διάφορες εκχωρήσεις ανάλογα την επιθυμητή διαμόρφωση κρυφής μνήμης. Όπως δείχνεται στα τμήματα Α) και Β) του Σχήματος 7, οι ετικέτες και οι τιμές δεδομένων μπορούν διατάσσονται σε διάφορα σχέδια σε μια δεδομένη γραμμή, με το παράδειγμα Α) να δείχνει τις ετικέτες και τα δεδομένα να εναλλάσσονται όπως στο Σχήμα 6, ενώ το παράδειγμα Β) δείχνει όλες τις ετικέτες Τ να είναι αποθηκευμένες συνεχόμενα ακολουθούμενες από τις αντίστοιχες τιμές δεδομένων D. Συνεπώς, τα δεδομένα διαμόρφωσης 76 θα μπορούσαν να προσδιορίζουν τις εγγραφές που αποθηκεύουν τις ετικέτες και να ελέγχουν τους συγκριτές 70 για τη σύγκριση αυτών των εγγραφών με την τιμή ετικέτας 72. A configuration storage element 76 may be provided to control the particular entries of the line cache 36 which are compared to the tag value 72 by the comparators 70. This makes it possible to configure the same DRAM hardware in different allocations depending on the desired cache configuration . As shown in parts A) and B) of Figure 7, labels and data values can be arranged in various patterns on a given line, with example A) showing the labels and data alternating as in Figure 6, while the example B) shows all T tags stored contiguously followed by the corresponding D data values. Thus, the configuration data 76 could identify the records that store the tags and control the comparators 70 to compare these records with the tag value 72.

             Διαφορετικοί χρήστες μπορεί επίσης να επιθυμούν τη χρήση γραμμών κρυφής μνήμης διαφορετικού μεγέθους ή διαφορετικής συσχετικότητας. Συνεπώς, τα μεγέθη των δεδομένων και των τιμών ετικέτας θα μπορούσαν να μεταβάλλονται μεταξύ διαφορετικών περιπτώσεων χρήσης. Για παράδειγμα, ένα τμήμα 128 MB DRAM θα μπορούσε να διαμορφώνεται ως μια συσχετιστική ως προς ένα σύνολο κρυφή μνήμη 16 κατευθύνσεων με γραμμές κρυφής μνήμης 512 byte και ετικέτες 40 bit, ενώ εάν υπάρχει 1 byte πληροφοριών κατάστασης τότε αυτό μπορεί να απαιτεί 516 byte ανά ζεύγος ετικέταςδεδομένων και συνεπώς κατά προσέγγιση γραμμές 8 kB DRAM. Ωστόσο, το ίδιο τμήμα θα μπορούσε να χρησιμοποιείται ως μια συσχετιστική ως προς ένα σύνολο κρυφή μνήμη 8 κατευθύνσεων με γραμμές κρυφής μνήμης 1024 byte μέσω επαναδιαμόρφωσης των δεδομένων διαμόρφωσης 76 ώστε οι συγκριτές 70 να ταυτίζονται με ένα διαφορετικό σύνολο στοιχείων. Για παράδειγμα, καθώς οι γραμμές κρυφής μνήμης γίνονται μεγαλύτερες, μια γραμμή μπορεί να περιλαμβάνει λιγότερες ετικέτες όπως δείχνεται στο τμήμα C) του Σχήματος 7 κι επομένως οι συγκριτές 70 ίσως να μη χρειάζεται να συγκρίνουν την τιμή ετικέτας 72 με τόσες πολλές εγγραφές της προσωρινής μνήμης γραμμών 36. Different users may also wish to use cache lines of different sizes or different associativity. Therefore, the sizes of data and tag values could vary between different use cases. For example, a 128MB DRAM segment could be configured as a set-associative 16-way cache with 512-byte cache lines and 40-bit labels, while if there is 1 byte of status information then this might require 516 bytes per pair data tag and thus approximately 8 kB DRAM lines. However, the same segment could be used as a set associative 8-way cache with 1024 byte cache lines by reconfiguring the configuration data 76 so that the comparators 70 identify a different set of elements. For example, as cache lines become longer, a line may include fewer tags as shown in portion C) of Figure 7 and therefore comparators 70 may not need to compare the tag value 72 with as many line cache entries. 36.

            Σε πολλές περιπτώσεις, μπορεί να είναι πλέον πρόσφορη η διαμόρφωση της κρυφής μνήμης ώστε μια γραμμή θέσεων αποθήκευσης να αντιστοιχεί σε ένα σύνολο 10 της δομής συσχετιστικής ως προς ένα σύνολο κρυφής μνήμης. Ωστόσο, αυτό δεν είναι απαραίτητο και σε ορισμένες περιπτώσεις μια γραμμή της μήτρας DRAM 32 μπορεί να αντιστοιχεί σε πολλαπλά σύνολα 10. Σε αυτή την περίπτωση, μπορεί να χρησιμοποιείται ένα τμήμα της διεύθυνσης γραμμής 42 για την επιλογή του τμήματος της προσωρινής μνήμης γραμμών 36 που συγκρίνεται με την τιμή ετικέτας 72, ενώ τα δεδομένα διαμόρφωσης 76 μπορεί να προσδιορίζουν τις συγκεκριμένες εγγραφές που θα θεωρούνται ως το υποσύνολο εγγραφών εντός του τμήματος της προσωρινής μνήμης γραμμών 36 (εναλλακτικά, ένα τμήμα της διεύθυνσης γραμμής το οποίο προσδιορίζει το σύνολο θα μπορούσε να επιλέγει ανάμεσα σε πολλαπλά σύνολα δεδομένων διαμόρφωσης 76 τα οποία προσδιορίζουν τα διάφορα υποσύνολα εγγραφών της προσωρινής μνήμης γραμμών 68 προς σύγκριση για κάθε σύνολο εντός της ίδιας γραμμής DRAM). In many cases, it may be more convenient to configure the cache so that a line of storage locations corresponds to a set 10 of the associative structure to a cache set. However, this is not necessary, and in some cases a line of the DRAM matrix 32 may correspond to multiple sets of 10. In this case, a portion of the address line 42 may be used to select the portion of the line cache 36 that is compared with the tag value 72, while the configuration data 76 may specify the particular records to be considered as the subset of records within the line buffer portion 36 (alternatively, a portion of the line address specifying the set could choose between to multiple sets of configuration data 76 which identify the various subsets of line cache entries 68 to be compared for each set within the same DRAM line).

           Όπως δείχνεται στο Σχήμα 8, συχνά η μονάδα DRAM 64 μπορεί να περιλαμβάνει περισσότερες από μια θέσεις συστοιχιών αποθήκευσης, με κάθε συστοιχία να περιλαμβάνει ένα ξεχωριστό στιγμιότυπο μιας μήτρας DRAM 32 θέσεων αποθήκευσης διαταγμένων σε γραμμές και στήλες, μια προσωρινή μνήμη γραμμών 36, έναν πολυπλέκτη στηλών 38, έναν αποκωδικοποιητή γραμμών 40 και το κύκλωμα σύγκρισης 70 όπως εξετάστηκε παραπάνω. Το κύκλωμα ελέγχου 74 για την επεξεργασία των εισερχόμενων εντολών και την ενεργοποίηση των κατάλληλων διαδρομών σημάτων μπορεί να χρησιμοποιείται από κοινού μεταξύ των συστοιχιών. Συνεπώς, ένα τμήμα της διεύθυνσης γραμμής 42 που λαμβάνεται από τον ελεγκτή κρυφής μνήμης 62 μπορεί να επιλέγει ποια συστοιχία θα προσπελαστεί. Μολονότι το Σχέδιο 8 δείχνει ένα παράδειγμα με δύο συστοιχίες μνήμης DRAM, συχνά μπορεί να υπάρχουν περισσότερες συστοιχίες, π.χ. 4, 8 ή 16 συστοιχίες. Συνεπώς, κάθε συστοιχία μπορεί να υποστηρίζει ταύτιση ετικετών με τη χρήση του κυκλώματος σύγκρισης που περιγράφεται παραπάνω. As shown in Figure 8, often the DRAM unit 64 may include more than one storage array locations, with each array comprising a separate instance of a DRAM matrix of 32 storage locations arranged in rows and columns, a row buffer 36, a column multiplexer 38, a line decoder 40 and comparator circuit 70 as discussed above. The control circuit 74 for processing the incoming commands and activating the appropriate signal paths can be shared between the arrays. Accordingly, a portion of address line 42 received by cache controller 62 may select which array is accessed. Although Figure 8 shows an example with two DRAM arrays, there may often be more arrays, e.g. 4, 8 or 16 arrays. Therefore, each array can support tag matching using the comparator circuit described above.

            Σε μια υλοποίηση πολλαπλών συστοιχιών DRAM, μπορεί να είναι χρήσιμη η εναλλαγή των τιμών δεδομένων και των τιμών ετικετών ενός αριθμού ζευγών ετικετώνδεδομένων ανάμεσα σε αντίστοιχες γραμμές ξεχωριστών συστοιχιών όπως δείχνεται στο Σχήμα 9. Για παράδειγμα, για το ζεύγος ετικέτας-δεδομένων T0-D0, η τιμή ετικέτας ΤΟ μπορεί να αποθηκεύεται στη γραμμή χ της συστοιχίας 0, όμως η αντίστοιχη τιμή δεδομένων του D0 αποθηκεύεται στη γραμμή χ της συστοιχίας 1. Το ζεύγος ετικέταςδεδομένων T1-D1 διαιρείται με παρόμοιο τρόπο μεταξύ των συστοιχιών, όμως αυτή τη φορά η ετικέτα Τ1 αποθηκεύεται στη συστοιχία 1, ενώ τα δεδομένα D1 αποθηκεύονται στη συστοιχία 0. Αυτό είναι χρήσιμο επειδή όταν μια γραμμή είναι ενεργή και αποθηκεύεται προσωρινά στους ενισχυτές ανίχνευσης της προσωρινής μνήμης γραμμών 36, οι αναγνώσεις και εγγραφές στην προσωρινή μνήμη γραμμών 36 μπορεί να διαταράσσουν προσωρινά τις τιμές που είναι μανδαλωμένες στην προσωρινή μνήμη γραμμών 36, με αποτέλεσμα να διαρκεί κάποιο χρόνο η εξισορρόπηση του περιεχομένου της προσωρινής μνήμης γραμμών 36 προτού είναι δυνατή η πραγματοποίηση μιας άλλης πρόσβασης ανάγνωσης/εγγραφής στην ίδια γραμμή. Αυτό σημαίνει ότι μετά την πραγματοποίηση μιας ανάγνωσης/εγγραφής σε μια γραμμή μιας συστοιχίας, μπορεί να είναι ταχύτερη η πραγματοποίηση της επόμενης πρόσβασης ανάγνωσης/εγγραφής σε μια διαφορετική συστοιχία από την πραγματοποίηση της επόμενης πρόσβασης στην ίδια συστοιχία με τον πρώτο χειρισμό ανάγνωσης/εγγραφής. Με τη διαίρεση των τιμών ετικέτας και δεδομένων του ίδιου ζεύγους ετικέτας-δεδομένων, γίνεται δυνατή η καλύτερη απόδοση επειδή ο χειρισμός ανάγνωσης/εγγραφής για την τιμή δεδομένων D0, για παράδειγμα, μπορεί να πραγματοποιείται ταχύτερα στη συστοιχία 1 μετά την πρόσβαση στην ετικέτα ΤΟ στη συστοιχία 0. Συνεπώς, όταν ενεργοποιείται μια ανάγνωση/εγγραφή μετά από μια ευστοχία, η θέση αποθήκευσης προορισμού μπορεί στην πραγματικότητα να βρίσκεται σε μια διαφορετική συστοιχία. In a multi-array DRAM implementation, it may be useful to switch the data values and tag values of a number of tag-data pairs between corresponding lines of separate arrays as shown in Figure 9. For example, for the tag-data pair T0-D0, the tag value TO may be stored in line x of array 0, but the corresponding data value of D0 is stored in line x of array 1. The tag data pair T1-D1 is similarly divided between the arrays, but this time tag T1 is stored in array 1, while D1 data is stored in array 0. This is useful because when a line is active and cached in the sense amplifiers of the line buffer 36, reads and writes to the line buffer 36 can temporarily disturb the values that they are latched in the 36-line buffer, so balancing takes some time read the contents of line 36 cache before another read/write access to the same line can be made. This means that after performing a read/write on a row of an array, it may be faster to perform the next read/write access to a different array than to perform the next access to the same array as the first read/write operation. By splitting the tag and data values of the same tag-data pair, better performance is possible because the read/write operation for data value D0, for example, can be performed faster in array 1 after tag TO is accessed in array 0. Therefore, when a read/write is triggered after a hit, the target storage location may actually be on a different array.

            Με την προσέγγιση που δείχνεται στο Σχήμα 9, η αναζήτηση ετικετών μπορεί να διαιρείται σε δύο στάδια, ένα για την αναζήτηση των ετικετών στο δεικτοδοτούμενο σύνολο οι οποίες είναι αποθηκευμένες στην προσωρινή μνήμη γραμμών 36-0 της συστοιχίας 0 και ένα άλλο για την αναζήτηση των ετικετών στο δεικτοδοτούμενο σύνολο οι οποίες είναι αποθηκευμένες στην προσωρινή μνήμη γραμμών 36-1 της συστοιχίας 1. Εάν προσδιοριστεί η ετικέτα ταύτισης στη συστοιχία 0, το δεύτερο στάδιο δεν απαιτείται και στη θέση του μπορεί να πραγματοποιείται στη συνέχεια μια ανάγνωση/εγγραφή στην εγγραφή στην οποία είναι αποθηκευμένα τα δεδομένα για την ετικέτα ταύτισης. Εάν καμία ετικέτα δεν ταυτίζεται στη συστοιχία 0, πραγματοποιείται ένα δεύτερο στάδιο ταύτισης ετικετών με τη χρήση της συστοιχίας 1, ενώ εάν προσδιοριστεί εκεί μια ευστοχία τότε ενεργοποιείται ένας περαιτέρω χειρισμός ανάγνωσης/εγγραφής για τα αντίστοιχα δεδομένα στη συστοιχία 0. Εάν η τιμή ετικέτας 72 επίσης αστοχήσει στη συστοιχία 1 τότε επιστρέφεται η ένδειξη αστοχίας. Συνεπώς, ο χρονισμός των επιστραφέντων δεδομένων ανάγνωσης μπορεί να εξαρτάται από το κατά πόσο η τιμή ετικέτας 72 ταυτίζεται στην πρώτη συστοιχία ή τη δεύτερη συστοιχία (εναλλακτικά, τα δεδομένα ανάγνωσης που επιστρέφονται στον νωρίτερο χρονισμό θα μπορούσαν να αποθηκεύονται προσωρινά στη μνήμη DRAM ώστε τα δεδομένα να παρέχονται στον ελεγκτή κρυφής μνήμης 62 κατά τον ίδιο χρονισμό ανεξάρτητα από τη συστοιχία στην οποία η ετικέτα ευστοχεί). Παρ’ όλα αυτά, ανεξάρτητα εάν απαιτείται ένας ή δύο χειρισμοί αναζήτησης ετικετών, η απόδοση μπορεί να βελτιώνεται επιτρέποντας σε μια δεύτερη συστοιχία να ξεκινά έναν επακόλουθο χειρισμό μετά από ένα χειρισμό που πραγματοποιήθηκε σε μια πρώτη συστοιχία χωρίς να απαιτείται πρώτα η αναμονή για το χρόνο εξισορρόπησης της πρώτης συστοιχίας. With the approach shown in Figure 9, the tag search can be divided into two stages, one to search for the tags in the indexed set which are stored in buffer lines 36-0 of array 0, and another to search for the tags in the indexed set which are stored in buffer lines 36-1 of array 1. If the match tag is specified in array 0, the second stage is not required and instead a read/write to the register in which it is stored the data for the identification tag. If no tag is matched in array 0, a second stage of tag matching is performed using array 1, while if a hit is determined there then a further read/write operation is triggered for the corresponding data in array 0. If tag value 72 also fails on array 1 then the failure indicator is returned. Therefore, the timing of the read data returned may depend on whether the tag value 72 matches the first array or the second array (alternatively, the read data returned at the earlier timing could be cached in DRAM so that the data is are provided to the cache controller 62 at the same timing regardless of which array the tag hits). However, regardless of whether one or two label lookup operations are required, performance can be improved by allowing a second array to initiate a subsequent operation after an operation performed on a first array without first having to wait for balancing time of the first array.

            Το Σχήμα 10 δείχνει μια μέθοδο επεξεργασίας μιας εντολής ενεργοποίησης. Στο βήμα 100, η μνήμη DRAM 64 λαμβάνει μια εντολή ενεργοποίησης η οποία προσδιορίζει μια διεύθυνση γραμμής 42 από τον ελεγκτή κρυφής μνήμης 62. Στο βήμα 102 το κύκλωμα ελέγχου 72 ελέγχει τον αποκωδικοποιητή γραμμών 40 για την επιλογή της γραμμής των θέσεων αποθήκευσης 34 που αντιστοιχεί στη διεύθυνση γραμμής 42 ως η ενεργή γραμμή 46, ενώ ελέγχει την προσωρινή μνήμη γραμμών 36 για τη λήψη των πληροφοριών που είναι αποθηκευμένες στις αντίστοιχες θέσεις αποθήκευσης της ενεργής γραμμής 46. Figure 10 shows a method of processing an activation command. In step 100, the DRAM memory 64 receives an enable command specifying a row address 42 from the cache controller 62. In step 102 the control circuit 72 controls the row decoder 40 to select the row of storage locations 34 corresponding to address line 42 as the active line 46, while checking the line buffer 36 to retrieve the information stored in the corresponding storage locations of the active line 46.

            Το Σχήμα 11 δείχνει μια μέθοδο επεξεργασίας μιας εντολής ταύτισης ετικετών. Στο βήμα 110, η μνήμη DRAM 64 λαμβάνει μια εντολή ταύτισης ετικετών η οποία προσδιορίζει μια διεύθυνση γραμμής 42 και μια τιμή ετικέτας 72 από τον ελεγκτή κρυφής μνήμης 62. Η εντολή ταύτισης ετικετών μπορεί επίσης να προσδιορίζει μια παράμετρο η οποία προσδιορίζει κατά πόσο είναι μια εντολή ανάγνωσης ή εγγραφής. Στο βήμα 112, το κύκλωμα ελέγχου 74 ελέγχει το κύκλωμα σύγκρισης 70 για τη σύγκριση της τιμής ετικέτας 72 με κάθε μια εγγραφή από ένα υποσύνολο εγγραφών 68 της προσωρινής μνήμης γραμμών 36 (με το υποσύνολο εγγραφών να προσδιορίζεται από το στοιχείο αποθήκευσης διαμόρφωσης 76). Στο βήμα 114 το κύκλωμα ελέγχου προσδιορίζει κατά πόσο το κύκλωμα σύγκρισης 70 έχει εντοπίσει μια ευστοχία ή μια αστοχία. Σε περίπτωση μιας ευστοχίας, στο βήμα 116 το κύκλωμα ελέγχου 74 ενεργοποιεί ένα χειρισμό ανάγνωσης ή εγγραφής ο οποίος στοχεύει στο κελί αποθήκευσης που σχετίζεται με την εγγραφή ταυτιζόμενης ετικέτας (η οποία θα μπορούσε να είναι στην ίδια συστοιχία ή σε διαφορετική συστοιχία όπως εξετάζεται παραπάνω), ενώ η αναγνώριση ανάγνωσης δεδομένων ή εγγραφής επιστρέφεται στον ελεγκτή κρυφής μνήμης 62. Στο βήμα 118 η διεύθυνση στήλης της εγγραφής της προσωρινής μνήμης γραμμών 68 που περιέχει την ταυτιζόμενη ετικέτα αποθηκεύεται στο στοιχείο αποθήκευσης 75 για χρήση από επακόλουθους χειρισμούς ενημέρωσης ετικετών. Εάν εντοπιστεί μια αστοχία στο βήμα 114, τότε στο βήμα 120 επιστρέφεται μια ένδειξη αστοχίας στον ελεγκτή κρυφής μνήμης 62. Figure 11 shows a method of processing a tag matching command. In step 110, the DRAM memory 64 receives a tag matching instruction that specifies a line address 42 and a tag value 72 from the cache controller 62. The tag matching instruction may also specify a parameter that specifies whether it is an instruction read or write. In step 112, the control circuit 74 controls the comparison circuit 70 to compare the tag value 72 with each record from a subset of records 68 of the line buffer 36 (with the subset of records being determined by the configuration store 76). In step 114 the control circuit determines whether the comparator circuit 70 has detected a pass or a miss. In the event of a hit, in step 116 the control circuit 74 initiates a read or write operation that targets the storage cell associated with the tag record (which could be in the same array or a different array as discussed above); while the data read or write acknowledgment is returned to cache controller 62. In step 118 the column address of the row cache entry 68 containing the identified tag is stored in storage element 75 for use by subsequent tag update operations. If a failure is detected in step 114 , then a failure indication is returned to cache controller 62 in step 120 .

             Η ένδειξη αστοχίας που επιστρέφεται στο βήμα 120 θα μπορούσε να είναι ένα αποκλειστικό σήμα ευστοχίας/αστοχίας το οποίο ορίζεται στην αντίθετη τιμή από αυτή που εκπέμπεται σε μια ευστοχία. Ωστόσο, αυτό μπορεί να απαιτεί μια επιπλέον θύρα εξόδου για τη μονάδα DRAM, γεγονός το οποίο μπορεί να αποτρέπεται με τη σηματοδότηση των αστοχιών με τη χρήση αντ’ αυτού του καναλιού δεδομένων (εφόσον το κανάλι δεδομένων σε κάθε περίπτωση δε χρησιμοποιείται όταν συμβαίνει μια αστοχία κρυφής μνήμης). Σε γενικές γραμμές, θα μπορούσε να χρησιμοποιείται οποιοδήποτε προκαθορισμένο σχέδιο bit για την αναπαράσταση της αστοχίας κρυφής μνήμης, όπου αυτό το σχέδιο είναι ένα σχέδιο το οποίο δε θα μπορούσε να προκύπτει για κανονικές προσπελάσεις δεδομένων. Ένας τρόπος υλοποίησης αυτού είναι η εκμετάλλευση των κωδίκων ανίχνευσης σφαλμάτων οι οποίοι μπορεί να παρέχονται για την προστασία από σφάλματα. Όπως δείχνεται στο Σχήμα 12, κάθε τιμή δεδομένων 130 που αποθηκεύεται στη μνήμη DRAM 64 μπορεί να συσχετίζεται με έναν κώδικα ανίχνευσης σφαλμάτων 132. Μετά την ανάγνωση των δεδομένων από τη μνήμη DRAM 64, στην τιμή δεδομένων 130 μπορεί να προστίθεται ο χαρακτήρας hash με τη χρήση μιας συνάρτησης ελέγχου 134 και ο χαρακτήρας hash που προκύπτει μπορεί να συγκρίνεται με τον κώδικα ανίχνευσης σφαλμάτων 132. Εάν ο χαρακτήρας hash ταυτίζεται με τον κώδικα ανίχνευσης σφαλμάτων 132, τότε τα δεδομένα προσδιορίζονται σωστά, ενώ μια αποτυχία ταύτισης μπορεί να σηματοδοτεί ότι συνέβη ένα σφάλμα. Εάν ο κώδικας ανίχνευσης σφαλμάτων είναι ένας κώδικας διόρθωσης σφαλμάτων, τότε το σφάλμα μπορεί επίσης να διορθώνεται, π.χ. με βάση πλεονάζουσες πληροφορίες που περιλαμβάνονται στον κώδικα διόρθωσης σφαλμάτων. Συνεπώς, μια ένδειξη αστοχίας μπορεί να σηματοδοτείται στον ελεγκτή κρυφής μνήμης 62 με την επιστροφή ενός προκαθορισμένου σχεδίου bit ως την τιμή δεδομένων 130 μαζί με έναν άκυρο κώδικα ανίχνευσης σφαλμάτων 132 ο οποίος δεν ταυτίζεται με το αποτέλεσμα εφαρμογής της συνάρτησης ελέγχου 134 στο προκαθορισμένο σχέδιο bit της τιμής δεδομένων 130. Μετά τη λήψη των δεδομένων σε απόκριση μιας αναζήτησης στην κρυφή μνήμη, ο ελεγκτής κρυφής μνήμης 62 μπορεί στη συνέχεια να προσδιορίζει από το συνδυασμό του προκαθορισμένου σχεδίου bit δεδομένων 130 και του άκυρου κώδικα ανίχνευσης σφαλμάτων 132 ότι συνέβη μια αστοχία κρυφής μνήμης, χωρίς να απαιτείται μια ξεχωριστή διαδρομή σήματος για τη σηματοδότηση των αστοχιών κρυφής μνήμης. The failure indicator returned in step 120 could be a dedicated hit/miss signal set to the opposite value of that emitted on a hit. However, this may require an additional output port for the DRAM module, which can be prevented by signaling failures using the data channel instead (as long as the data channel is in any case unused when a cache failure occurs memory). In general, any predefined bit pattern could be used to represent a cache miss, where that pattern is one that could not be derived for normal data accesses. One way to accomplish this is to exploit error detection codes that may be provided to protect against errors. As shown in Figure 12, each data value 130 stored in DRAM 64 may be associated with an error detection code 132. After reading the data from DRAM 64, the data value 130 may be hashed using of a check function 134 and the resulting hash may be compared to the error detection code 132. If the hash matches the error detection code 132, then the data is correctly identified, while a failure to match may indicate that an error has occurred. If the error detection code is an error correcting code, then the error may also be corrected, e.g. based on redundant information included in the error correction code. Accordingly, a failure indication may be signaled to cache controller 62 by returning a predetermined bit pattern as data value 130 along with an invalid error detection code 132 that does not match the result of applying control function 134 to its predetermined bit pattern data value 130. After receiving the data in response to a cache lookup, the cache controller 62 can then determine from the combination of the predetermined data bit pattern 130 and the invalid error detection code 132 that a cache miss has occurred, without requiring a separate signal path to signal cache misses.

             Το Σχήμα 13 δείχνει μια μέθοδο επεξεργασίας μιας εντολής εγγραφής σε προηγούμενη ευστοχία για την ενημέρωση της τιμής ετικέτας για την οποία συνέβη μια ευστοχία σε απόκριση μιας προηγούμενης εντολής ταύτισης ετικετών. Στο βήμα 140, η μονάδα DRAM 64 λαμβάνει την εντολή εγγραφής σε προηγούμενη ευστοχία η οποία προσδιορίζει την ενημερωμένη τιμή ετικέτας προς εγγραφή στη μνήμη DRAM. Στο βήμα 142, το κύκλωμα ελέγχου 74 διαβάζει τη διεύθυνση στήλης από το στοιχείο αποθήκευσης 75, το οποίο είχε αποθηκευτεί νωρίτερα στο βήμα 118 του Σχήματος 11. Στο βήμα 144, το κύκλωμα ελέγχου 74 ενεργοποιεί ένα χειρισμό εγγραφής στην εγγραφή 68 της προσωρινής μνήμης γραμμών 36 η οποία προσδιορίζεται από τη διεύθυνση στήλης που διαβάζεται στο βήμα 144, για την εγγραφή της ενημερωμένης τιμής ετικέτας σε αυτή την εγγραφή. Αυτό θα ενεργοποιήσει επίσης μια αντίστοιχη ενημέρωση του αντίστοιχου κελιού αποθήκευσης στη μήτρα DRAM 32. Συνεπώς, με την αποθήκευση της διεύθυνσης στήλης της πιο πρόσφατα ταυτιζόμενης ετικέτας σε ένα στοιχείο αποθήκευσης 75, είναι δυνατή η πιο αποτελεσματική πραγματοποίηση μιας επακόλουθης ενημέρωσης ετικέτας. Αυτό είναι χρήσιμο για κρυφές μνήμες εφόσον σε ορισμένες υλοποιήσεις κάθε χειρισμός ανάγνωσης ή εγγραφής κρυφής μνήμης μπορεί να απαιτεί την ενημέρωση της αντίστοιχης ετικέτας (ειδικά σε κρυφές μνήμες οι οποίες χρησιμοποιούν έναν αλγόριθμο παλαιότερης χρήσης ή άλλο αλγόριθμο επιλογής θύματος για την επιλογή της προς έξωση εγγραφής μετά την εκχώρηση νέων δεδομένων με βάση παλαιό ιστορικό προσβάσεων σε κρυφή μνήμη). Figure 13 shows a method of processing a previous hit write command to update the tag value for which a hit occurred in response to a previous tag matching command. In step 140, the DRAM module 64 receives the write to previous hit command which specifies the updated tag value to write to the DRAM memory. In step 142, control circuit 74 reads the column address from storage element 75, which was previously stored in step 118 of Figure 11. In step 144, control circuit 74 enables a write operation to register 68 of line buffer 36 which is determined by the column address read in step 144, to write the updated tag value to that record. This will also trigger a corresponding update of the corresponding storage cell in the DRAM matrix 32. Thus, by storing the column address of the most recently identified tag in a storage element 75, a subsequent tag update can be performed more efficiently. This is useful for caches since in some implementations each cache read or write operation may require the corresponding tag to be updated (especially in caches that use a legacy or other victim selection algorithm to select the write to evict after allocating new data based on past cache access history).

             Εναλλακτικά, αντί της αποθήκευσης της διεύθυνσης στήλης σε μια ευστοχία στο βήμα 118, στο Σχήμα 11 το κύκλωμα ελέγχου θα μπορούσε αντίθετα να ενημερώνει τις πληροφορίες κατάστασης κρυφής μνήμης σε μια θέση αποθήκευσης που επιλέγεται με βάση την εγγραφή η οποία ήταν η εγγραφή ταύτισης της προσωρινής μνήμης γραμμών. Συνεπώς, καθώς μια προσπέλαση ευστοχεί σε μια κρυφή μνήμη, ο ελεγκτής DRAM 74 ενημερώνει και τις πληροφορίες οι οποίες αντιστοιχούν στο σύνολο και χρησιμοποιούνται για την πολιτική αντικατάστασης. Τα bit της πολιτικής αντικατάστασης θα βρίσκονταν στην ίδια γραμμή DRAM με τα ίδια τα δεδομένα, τα οποία θα ήταν παρόντα στην προσωρινή μνήμη γραμμών 36. Για παράδειγμα, εάν η πολιτική αντικατάστασης είναι ψευδο-LRU (least recently used ή λιγότερο πρόσφατα χρησιμοποιούμενη), σε μια προσπέλαση που ευστοχεί, τα αντίστοιχα bit του δυαδικού δέντρου ενημερώνονται ώστε να αντικατοπτρίζουν ότι το στοιχείο που προσπελάστηκε είναι στην MRU (most recently used ή πιο πρόσφατα χρησιμοποιούμενη). Συνεπώς, για αυτό το χαρακτηριστικό, η κρυφή μνήμη DRAM έχει κάποια επιπλέον λογική κοντά στην προσωρινή μνήμη γραμμών DRAM η οποία, σύμφωνα με την πολιτική αντικατάστασης, ενημερώνει τις πληροφορίες αντικατάστασης σε περίπτωση ευστοχίας κρυφής μνήμης. Alternatively, instead of storing the column address in a hit in step 118, in Figure 11 the control circuit could instead update the cache state information in a storage location selected based on the entry that was the cache match entry lines. Therefore, as an access hits a cache, the DRAM controller 74 also updates the information corresponding to the set used for the replacement policy. The replacement policy bits would be on the same DRAM line as the data itself, which would be present in line 36 buffer. For example, if the replacement policy is pseudo-LRU (least recently used), in an access that hits, the corresponding bits of the binary tree are updated to reflect that the accessed element is in the most recently used (MRU). Therefore, for this feature, the DRAM cache has some additional logic near the DRAM line cache which, according to the replacement policy, updates the replacement information in case of a cache miss.

             Ένα πλεονέκτημα της προσέγγισης που δείχνεται στα Σχήματα 11 και 13 είναι ότι το κύκλωμα ελέγχου 74 στην αποθήκευση DRAM δε χρειάζεται να γνωρίζει την πολιτική αντικατάστασης που χρησιμοποιείται, ενώ μπορεί να υποστηρίζει δύο ή περισσότερες διαφορετικές πολιτικές οι οποίες θα μπορούσαν να επιλέγονται από τον ελεγκτή κρυφής μνήμης. Αφετέρου, με την απευθείας ενημέρωση των πληροφοριών κατάστασης της κρυφής μνήμης σε απόκριση της εντολής ταύτισης ετικετών, απαιτούνται λιγότερες εντολές σε περίπτωση ευστοχίας κρυφής μνήμης. An advantage of the approach shown in Figures 11 and 13 is that the control circuit 74 in the DRAM storage does not need to know the replacement policy being used, and can support two or more different policies which could be selected by the cache controller. . On the other hand, by directly updating the cache state information in response to the tag match command, fewer commands are required in the event of a cache miss.

            Σε περίπτωση αστοχίας στην κρυφή μνήμη όταν δεν υπάρχουν εφεδρικές άκυρες εγγραφές, επιλέγεται μια βαθμίδα-θύμα στο σχετικό σύνολο, ενώ τα δεδομένα εξωθούνται από αυτή τη βαθμίδα και αντικαθίστανται με τη νέα βαθμίδα η οποία μεταφέρεται από την παρακάτω μνήμη. Για την επιτάχυνση τέτοιων εξώσεων και αντικαταστάσεων, μπορεί να παρέχεται ένας ειδικός τύπος εντολής ανάγνωσης (εντολή ανάγνωσης θύματος) η οποία ενεργοποιεί και διαβάζει τα δεδομένα με βάση τις πληροφορίες της πολιτικής αντικατάστασης. Για παράδειγμα, εάν η πολιτική αντικατάστασης είναι ψευδο-LRU, η εντολή ανάγνωσης θύματος διασχίζει το δυαδικό δέντρο για την εύρεση του στοιχείου LRU. Η εντολή επιστρέφει τα δεδομένα της βαθμίδας και ακυρώνει τη βαθμίδα. Μια ένδειξη της εγγραφής-θύμα μπορεί να αποθηκεύεται στη θέση στήλης της προηγούμενης ευστοχίας 75, ενώ μια εντολή εγγραφής στη θέση προηγούμενης ανάγνωσης (θύμα) εγγράφει τη βαθμίδα νέας εισαγωγής (με τον ίδιο τρόπο όπως για την εντολή εγγραφής στην προηγούμενη ευστοχία του Σχήματος 13). Συνεπώς, με αυτή την προσέγγιση, ο ελεγκτής DRAM 74 έχει μια επιπλέον εντολή η οποία μπορεί να διαβάζει μια στήλη (ετικέτα και δεδομένα) της προσωρινής μνήμης γραμμών 36, όπου η στήλη ανάγνωσης επιλέγεται σύμφωνα με τις πληροφορίες της πολιτικής αντικατάστασης οι οποίες διαβάζονται από το σχετικό υποσύνολο θέσεων της ενεργής γραμμής όπως αποθηκεύονται στην προσωρινή μνήμη γραμμών 36. In the event of a cache miss when there are no backup invalid entries, a victim tier in the relevant pool is selected, and the data is ejected from that tier and replaced with the new tier that is fetched from the memory below. To speed up such evictions and replacements, a special type of read command (victim read command) can be provided which activates and reads the data based on the replacement policy information. For example, if the replacement policy is pseudo-LRU, the read victim command traverses the binary tree to find the LRU element. The command returns the gradient data and cancels the gradient. An indication of the write-victim can be stored in the previous hit column location 75, while a write command to the read-previous location (victim) writes the new-insertion tier (in the same way as for the write command to the previous hit of Figure 13) . Therefore, with this approach, the DRAM controller 74 has an additional instruction which can read a column (label and data) of the line buffer 36, where the read column is selected according to the replacement policy information read from the relative subset of positions of the active line as stored in line buffer 36.

            Το Σχήμα 14 δείχνει μια μέθοδο επεξεργασίας μιας εντολής συγκέντρωσης ετικετών για τη διάθεση όλων των ετικετών στον ελεγκτή κρυφής μνήμης 62 από ένα δεδομένο σύνολο θέσεων αποθήκευσης, η οποία μπορεί να είναι χρήσιμη επειδή δίνει τη δυνατότητα στον ελεγκτή κρυφής μνήμης 62 να λαμβάνει πιο αξιόπιστες αποφάσεις για την εκχώρηση και έξωση κρυφής μνήμης για παράδειγμα. Στο βήμα 150 η μονάδα DRAM 64 λαμβάνει την εντολή συγκέντρωσης ετικετών (δεν είναι απαραίτητος ο προσδιορισμός μιας διεύθυνσης γραμμής εφόσον η εντολή μπορεί αυτονόητα να στοχεύει την ενεργή γραμμή που ενεργοποιήθηκε σε απόκριση μιας πρότερης εντολής ενεργοποίησης). Σε απόκριση της εντολής συγκέντρωσης ετικετών, στο βήμα 152 το κύκλωμα ελέγχου 72 ελέγχει τον πολυπλέκτη στηλών 38 για την ανάγνωση όλων των ετικετών που αποθηκεύονται στο υποσύνολο εγγραφών που προσδιορίζεται από τα δεδομένα διαμόρφωσης 76 και επιστρέφει τις αναγνωσμένες ετικέτες στον ελεγκτή κρυφής μνήμης 62. Εάν το συνδυασμένο μέγεθος των αναγνωσμένων ετικετών είναι μεγαλύτερο από το εύρος του καναλιού δεδομένων, τότε οι ετικέτες μπορούν να εξωθούνται προς τον ελεγκτή κρυφής μνήμης 62 σε πολλαπλές μεταφορές και στη συνέχεια να συναρμολογούνται στον ελεγκτή κρυφής μνήμης 62. Ο ελεγκτής κρυφής μνήμης 62 μπορεί στη συνέχεια να χρησιμοποιεί τις αναγνωσμένες ετικέτες για την εκτέλεση χειρισμών διαχείρισης κρυφής μνήμης. Figure 14 shows a method of processing a tag pool command to make all tags available to the cache controller 62 from a given set of storage locations, which can be useful because it enables the cache controller 62 to make more reliable decisions about cache allocation and eviction for example. In step 150 the DRAM module 64 receives the tag pool command (it is not necessary to specify a line address since the command can naturally target the active line that was activated in response to a previous enable command). In response to the tag collection command, in step 152 the control circuit 72 controls the column multiplexer 38 to read all the tags stored in the subset of records identified by the configuration data 76 and returns the read tags to the cache controller 62. If the combined size of the read tags is greater than the data channel width, then the tags can be pushed to the cache controller 62 in multiple transports and then assembled in the cache controller 62. The cache controller 62 can then use the read tags to perform cache management operations.

             Μολονότι το παράδειγμα που εξετάζεται παραπάνω σχετίζεται με το βασισμένο στη μνήμη DRAM κύκλωμα αποθήκευσης 64, θα εκτιμηθεί το γεγονός ότι η ίδια τεχνική μπορεί να χρησιμοποιείται για οποιαδήποτε μορφή τεχνολογίας μνήμης για την οποία χρησιμοποιείται μια προσωρινή μνήμη γραμμών 36 για την προσωρινή αποθήκευση πληροφοριών από τις θέσεις αποθήκευσης σε μια ενεργή γραμμή 46. Although the example discussed above relates to the DRAM memory-based storage circuit 64, it will be appreciated that the same technique can be used for any form of memory technology for which a line cache 36 is used to temporarily store information from the locations storage in an active line 46.

             Στην παρούσα εφαρμογή, οι λέξεις “διαμορφώνονται για ..." χρησιμοποιούνται με τη σημασία ότι ένα στοιχείο μιας διάταξης έχει μια διαμόρφωση ικανή να εκτελεί τον καθορισμένο χειρισμό. Σε αυτό το πλαίσιο, μια “διαμόρφωση” σημαίνει μια διάταξη ή ένας τρόπος διασύνδεσης υλικού ή λογισμικού. Για παράδειγμα, η διάταξη μπορεί να έχει αποκλειστικό υλικό το οποίο παρέχει τον καθορισμένο χειρισμό ή ένας επεξεργαστής ή μια άλλη συσκευή επεξεργασίας μπορεί να προγραμματίζεται για την εκτέλεση της λειτουργίας. Ο όρος “διαμορφωμένος για” δεν υπονοεί ότι το στοιχείο της διάταξης πρέπει να αλλάζεται με οποιονδήποτε τρόπο ώστε να παρέχεται ο καθορισμένος χειρισμός. In this application, the words “configured for …” are used to mean that an element of an arrangement has a configuration capable of performing the specified operation. In this context, a “configuration” means an arrangement or way of interconnecting hardware or software. For example, the device may have dedicated hardware that provides the specified operation, or a processor or other processing device may be programmed to perform the function. The term “configured for” does not imply that the component of the device must is changed in any way to provide the specified handling.

             Μολονότι στο παρόν έχουν περιγράφει σε λεπτομέρεια ενδεικτικές υλοποιήσεις της εφεύρεσης αναφορικά με τα συνοδευτικά σχεδιαγράμματα, πρέπει να γίνει κατανοητό ότι η εφεύρεση δεν περιορίζεται σε αυτές ακριβώς τις υλοποιήσεις και ότι είναι δυνατή η πραγματοποίηση διαφόρων αλλαγών και τροποποιήσεων σε αυτήν από άτομα έμπειρα στην τέχνη χωρίς απόκλιση από το αντικείμενο και το πνεύμα της εφεύρεσης όπως αυτή ορίζεται από τις συνημμένες αξιώσεις. Although exemplary embodiments of the invention have been described herein in detail with reference to the accompanying drawings, it is to be understood that the invention is not limited to these particular embodiments and that various changes and modifications may be made therein by those skilled in the art without departing from from the object and spirit of the invention as defined by the appended claims.

Claims (22)

ΑΞΙΩΣΕΙΣ 1.         Ένα κύκλωμα αποθήκευσης το οποίο περιλαμβάνει:1. A storage circuit comprising:             μια μήτρα θέσεων αποθήκευσης διαταγμένων σε γραμμές και στήλες,a matrix of storage locations arranged in rows and columns,             μια προσωρινή μνήμη γραμμών η οποία περιλαμβάνει ένα πλήθος εγγραφών, κάθε μια για την αποθήκευση πληροφοριών από μια θέση αποθήκευσης σε μια αντίστοιχη στήλη μιας ενεργής γραμμής της μήτρας, καιa row buffer which includes a plurality of entries, each for storing information from a storage location to a corresponding column of an active row of the matrix, and             ένα κύκλωμα σύγκρισης αποκρινόμενο σε μια εντολή ταύτισης ετικετών η οποία προσδιορίζει μια τιμή ετικέτας για τη σύγκριση της τιμής ετικέτας με πληροφορίες που αποθηκεύονται σε κάθε μια εγγραφή από ένα υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών και τον προσδιορισμό της εγγραφής από το εν λόγω υποσύνολο εγγραφών, εάν υπάρχει κάποια, η οποία είναι μια εγγραφή ταύτισης που αποθηκεύει πληροφορίες που ταυτίζονται με την τιμή ετικέτας, με το εν λόγω υποσύνολο να περιλαμβάνει δύο ή περισσότερες εγγραφές της προσωρινής μνήμης γραμμών.a comparison circuit responsive to a tag match command that specifies a tag value for comparing the tag value with information stored in each record from a subset of line cache records and determining which record from that subset of records if exists some, which is a match record that stores information that matches the tag value, that subset comprising two or more line cache records. 2.         Το κύκλωμα αποθήκευσης σύμφωνα με την αξίωση 1, όπου το κύκλωμα σύγκρισης είναι διαμορφωμένο ώστε να εκτελεί ένα πλήθος συγκρίσεων παράλληλα, με κάθε σύγκριση να συγκρίνει την τιμή ετικέτας με τις πληροφορίες σε μια αντίστοιχη εγγραφή από το εν λόγω υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών.2. The storage circuit of claim 1, wherein the comparison circuit is configured to perform a plurality of comparisons in parallel, each comparison comparing the tag value with the information in a corresponding record from said subset of line cache records . 3.         Το κύκλωμα αποθήκευσης σύμφωνα με οποιαδήποτε από τις αξιώσεις 1 και 2, το οποίο περιλαμβάνει ένα στοιχείο αποθήκευσης διαμόρφωσης για την αποθήκευση πληροφοριών διαμόρφωσης οι οποίες προσδιορίζουν τις εγγραφές από το πλήθος εγγραφών της προσωρινής μνήμης γραμμών οι οποίες βρίσκονται εντός του εν λόγω υποσυνόλου εγγραφών.3. The storage circuit according to any one of claims 1 and 2, which includes a configuration storage element for storing configuration information identifying the records from the plurality of line cache records that are within said subset of records. 4.         Το κύκλωμα αποθήκευσης σύμφωνα με οποιαδήποτε προηγούμενη αξίωση, το οποίο περιλαμβάνει ένα κύκλωμα ελέγχου διαμορφωμένο, σε απόκριση μιας κατάστασης ευστοχίας όταν μια εγγραφή από το εν λόγω υποσύνολο εγγραφών προσδιορίζεται ως η εν λόγω εγγραφή ταύτισης σε απόκριση της εντολής ταύτισης ετικετών, ώστε να ενεργοποιεί ένα χειρισμό ανάγνωσης ή εγγραφής για την ανάγνωση ή την εγγραφή πληροφοριών αποθηκευμένων σε μια θέση αποθήκευσης προορισμού επιλεγμένη ανάλογα το ποια εγγραφή της προσωρινής μνήμης γραμμών είναι η εγγραφή ταύτισης.4. The storage circuit according to any preceding claim, which includes a control circuit configured, in response to a hit condition when a record from said subset of records is identified as said match record in response to the tag match command, to activate a read or write operation to read or write information stored in a destination storage location selected depending on which line cache record is the matching record. 5.         Το κύκλωμα αποθήκευσης σύμφωνα με την αξίωση 4, όπου η εν λόγω θέση αποθήκευσης προορισμού είναι ακόμη μια θέση αποθήκευσης στην ίδια γραμμή της μήτρας ως η θέση αποθήκευσης που αντιστοιχεί στην εν λόγω εγγραφή ταύτισης της προσωρινής μνήμης γραμμών.5.         The storage circuit according to claim 4, wherein said destination storage location is still a storage location on the same line of the matrix as the storage location corresponding to said line cache match entry. 6.         Το κύκλωμα αποθήκευσης σύμφωνα με την αξίωση 4, το οποίο περιλαμβάνει ένα πλήθος συστοιχιών, με κάθε συστοιχία να περιλαμβάνει την εν λόγω μήτρα, την εν λόγω προσωρινή μνήμη γραμμών και το εν λόγω κύκλωμα σύγκρισης,6. The storage circuit according to claim 4, comprising a plurality of arrays, each array including said matrix, said line buffer and said comparator circuit,             όπου η εν λόγω θέση αποθήκευσης προορισμού είναι μια θέση αποθήκευσης σε μια διαφορετική συστοιχία από τη συστοιχία που περιλαμβάνει τη θέση αποθήκευσης που αντιστοιχεί στην εν λόγω εγγραφή ταύτισης της προσωρινής μνήμης γραμμών.wherein said destination storage location is a storage location in a different array than the array containing the storage location corresponding to said line cache match entry. 7.         Το κύκλωμα αποθήκευσης σύμφωνα με οποιαδήποτε από τις αξιώσεις 1 έως 4, το οποίο περιλαμβάνει ένα πλήθος συστοιχιών, με κάθε συστοιχία να περιλαμβάνει την εν λόγω μήτρα, την εν λόγω προσωρινή μνήμη γραμμών και το εν λόγω κύκλωμα σύγκρισης,7. The storage circuit according to any one of claims 1 to 4, comprising a plurality of arrays, each array comprising said matrix, said line buffer and said comparator circuit,             το οποίο περιλαμβάνει ένα κύκλωμα ελέγχου αποκρινόμενο σε μια εντολή εγγραφής για την εγγραφή μιας τιμής δεδομένων σε μια θέση αποθήκευσης σε μια συστοιχία από ένα πλήθος συστοιχιών και την εγγραφή μιας αντίστοιχης τιμής ετικέτας σε μια θέση αποθήκευσης σε μια άλλη συστοιχία από το πλήθος συστοιχιών.which includes a control circuit responsive to a write command to write a data value to a storage location in one of the plurality of arrays and to write a corresponding tag value to a storage location in another of the plurality of arrays. 8.         Το κύκλωμα αποθήκευσης σύμφωνα με οποιαδήποτε από τις προηγούμενες αξιώσεις, όπου σε απόκριση μιας κατάστασης ευστοχίας όταν μια εγγραφή από το εν λόγω υποσύνολο εγγραφών προσδιορίζεται ως η εν λόγω εγγραφή ταύτισης σε απόκριση της εντολής ταύτισης ετικετών, το κύκλωμα σύγκρισης είναι διαμορφωμένο για την αποθήκευση μιας ένδειξης του ποια εγγραφή της προσωρινής μνήμης γραμμών είναι η εν λόγω εγγραφή ταύτισης σε ένα προκαθορισμένο στοιχείο αποθήκευσης.8. The storage circuit according to any one of the preceding claims, wherein in response to a hit condition when a record from said subset of records is determined to be said match record in response to the tag match command, the comparison circuit is configured to store of an indication of which line cache record is said matching record in a predefined storage element. 9.         Το κύκλωμα αποθήκευσης σύμφωνα με την αξίωση 8, το οποίο περιλαμβάνει ένα κύκλωμα ελέγχου αποκρινόμενο σε μια εντολή εγγραφής σε προηγούμενη ευστοχία για την ενεργοποίηση ενός χειρισμού εγγραφής για την εγγραφή πληροφοριών στη θέση αποθήκευσης που σχετίζεται με την εγγραφή της προσωρινής μνήμης γραμμών που προσδιορίζεται από το εν λόγω προκαθορισμένο στοιχείο αποθήκευσης.9. The storage circuit according to claim 8, which includes a control circuit responsive to a write command in a previous hit to activate a write operation to write information to the storage location associated with the line buffer write specified by the storage preset in question. 10.       Το κύκλωμα αποθήκευσης σύμφωνα με οποιαδήποτε από τις προηγούμενες αξιώσεις, το οποίο περιλαμβάνει ένα κύκλωμα ελέγχου αποκρινόμενο σε μια κατάσταση ευστοχίας όταν μια εγγραφή από το εν λόγω υποσύνολο εγγραφών προσδιορίζεται ως η εν λόγω εγγραφή ταύτισης σε απόκριση της εντολής ταύτισης ετικετών, για την ενημέρωση των πληροφοριών κατάστασης σε μια θέση αποθήκευσης που επιλέγεται με βάση ποια εγγραφή της προσωρινής μνήμης γραμμών είναι η εν λόγω εγγραφή ταύτισης.10. The storage circuit according to any one of the preceding claims, comprising a control circuit responsive to a hit condition when a record from said subset of records is determined to be said match record in response to the tag match command, for updating of state information to a storage location selected based on which line cache record is the match record in question. 11.       Το κύκλωμα αποθήκευσης σύμφωνα με οποιαδήποτε από τις προηγούμενες αξιώσεις, όπου σε απόκριση της εντολής ταύτισης ετικετών, το κύκλωμα σύγκρισης διαμορφώνεται ώστε να επιστρέφει μια ένδειξη αστοχίας όταν καμία εγγραφή από το εν λόγω υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών δεν αποθηκεύει τις πληροφορίες που ταυτίζονται με την τιμή ετικέτας.11. The storage circuit according to any one of the preceding claims, wherein in response to the tag matching command, the comparison circuit is configured to return a failure indication when no record from said subset of line cache records stores the matching information with the tag price. 12.       Το κύκλωμα αποθήκευσης σύμφωνα με την αξίωση 11 , όπου κάθε θέση αποθήκευσης είναι διαμορφωμένη για την αποθήκευση πληροφοριών που σχετίζονται με έναν κώδικα ανίχνευσης σφαλμάτων, και12. The storage circuit according to claim 11, wherein each storage location is configured to store information associated with an error detection code, and             η εν λόγω ένδειξη αστοχίας περιλαμβάνει ένα προκαθορισμένο σχέδιο πληροφοριών που σχετίζεται με έναν άκυρο κώδικα ανίχνευσης σφαλμάτων.said failure indication includes a predetermined pattern of information associated with an invalid DTC. 13.       Το κύκλωμα αποθήκευσης σύμφωνα με οποιαδήποτε από τις προηγούμενες αξιώσεις, το οποίο περιλαμβάνει ένα κύκλωμα ελέγχου αποκρινόμενο σε μια εντολή ανάγνωσης θύματος για την ανάγνωση δεδομένων από μια εγγραφή-θύμα της προσωρινής μνήμης γραμμών η οποία επιλέγεται ανάλογα τις πληροφορίες πολιτικής αντικατάστασης κρυφής μνήμης οι οποίες αποθηκεύονται στην προσωρινή μνήμη γραμμών και την ακύρωση των δεδομένων από μια θέση αποθήκευσης που σχετίζεται με την εν λόγω εγγραφή-θύμα.13. The storage circuit according to any one of the preceding claims, which includes a control circuit responsive to a read victim command to read data from a victim write of the line cache which is selected according to the cache replacement policy information which cached rows and invalidating the data from a storage location associated with that victim record. 14.       Το κύκλωμα αποθήκευσης σύμφωνα με την αξίωση 13, όπου σε απόκριση της εν λόγω εντολής ανάγνωσης θύματος, το κύκλωμα ελέγχου είναι διαμορφωμένο ώστε να αποθηκεύει μια ένδειξη του ποια εγγραφή της προσωρινής μνήμης γραμμών είναι η εν λόγω εγγραφή-θύμα σε ένα προκαθορισμένο στοιχείο αποθήκευσης.14. The storage circuit of claim 13, wherein in response to said victim read command, the control circuit is configured to store an indication of which line cache record is said victim record in a predetermined storage element . 15.       Το κύκλωμα αποθήκευσης σύμφωνα με την αξίωση 14, το οποίο περιλαμβάνει ένα κύκλωμα ελέγχου αποκρινόμενο σε μια εντολή εγγραφής σε προηγούμενη ευστοχία για την ενεργοποίηση ενός χειρισμού εγγραφής για την εγγραφή πληροφοριών στη θέση αποθήκευση που σχετίζεται με την εγγραφή της προσωρινής μνήμης γραμμών που προσδιορίζεται από το εν λόγω προκαθορισμένο στοιχείο αποθήκευσης.15. The storage circuit according to claim 14, which includes a control circuit responsive to a write command on a previous hit to activate a write operation to write information to the storage location associated with the line buffer write specified by the storage preset in question. 16.       Το κύκλωμα αποθήκευσης σύμφωνα με οποιαδήποτε από τις προηγούμενες αξιώσεις, το οποίο περιλαμβάνει ένα κύκλωμα ελέγχου αποκρινόμενο σε μια εντολή συγκέντρωσης ετικετών για την ενεργοποίηση ενός χειρισμού ανάγνωσης για την ανάγνωση πληροφοριών από κάθε εγγραφή από το εν λόγω υποσύνολο εγγραφών της προσωρινής μνήμης γραμμών.16.       The storage circuit according to any one of the preceding claims, which includes a control circuit responsive to a tag collection command to activate a read operation to read information from each record from said subset of line cache records. 17.       Το κύκλωμα αποθήκευσης σύμφωνα με οποιαδήποτε από τις προηγούμενες αξιώσεις, όπου οι θέσεις αποθήκευσης περιλαμβάνουν θέσεις αποθήκευσης DRAM.17. The storage circuit according to any one of the preceding claims, wherein the storage locations comprise DRAM storage locations. 18.       Μια διάταξη η οποία περιλαμβάνει:18.       A provision which includes:             το κύκλωμα αποθήκευσης σύμφωνα με οποιαδήποτε από τις προηγούμενες αξιώσεις, καιthe storage circuit according to any of the preceding claims, and             έναν ελεγκτή κρυφής μνήμης για τον έλεγχο των προσβάσεων σε δεδομένα κρυφής μνήμης που αποθηκεύονται στο κύκλωμα αποθήκευσης.a cache controller to control accesses to cache data stored in the storage circuit. 19.       Η διάταξη σύμφωνα με την αξίωση 18, όπου σε απόκριση ενός αιτήματος προσπέλασης κρυφής μνήμης το οποίο προσδιορίζει μια διεύθυνση προορισμού, είτε ο ελεγκτής κρυφής μνήμης είτε το κύκλωμα αποθήκευσης είναι διαμορφωμένο για την ενεργοποίηση της εν λόγω εντολής ταύτισης ετικετών η οποία προσδιορίζει μια τιμή ετικέτας που καθορίζεται ως συνάρτηση της εν λόγω διεύθυνσης προορισμού.19. The apparatus of claim 18, wherein in response to a cache access request specifying a destination address, either the cache controller or the storage circuitry is configured to enable said tag matching instruction specifying a value tag specified as a function of said destination address. 20.       Η διάταξη σύμφωνα με την αξίωση 19, όπου σε απόκριση μιας κατάστασης ευστοχίας όταν μια εγγραφή από το εν λόγω υποσύνολο εγγραφών προσδιορίζεται ως η εν λόγω εγγραφή ταύτισης σε απόκριση της εντολής ταύτισης ετικετών, με το κύκλωμα αποθήκευσης να είναι διαμορφωμένο για την έξοδο στον εν λόγω ελεγκτή κρυφής μνήμης τουλάχιστον ενός από τα εξής:20. The apparatus according to claim 19, wherein in response to a hit condition when a record from said subset of records is determined to be said match record in response to the tag match command, the storage circuit being configured to output to said cache controller of at least one of the following:             μιας τιμής δεδομένων που αντιστοιχεί σε μια θέση αποθήκευσης προορισμού διαφορετική από τη θέση αποθήκευσης που σχετίζεται με την εγγραφή ταύτισης, και πληροφοριών για τον προσδιορισμό ποια θέση αποθήκευσης του κυκλώματος αποθήκευσης είναι η εν λόγω θέση αποθήκευσης προορισμού.of a data value corresponding to a destination storage location other than the storage location associated with the identification record, and information to determine which storage circuit storage location is said destination storage location. 21.       Ένα κύκλωμα αποθήκευσης το οποίο περιλαμβάνει:21. A storage circuit comprising:             μια μήτρα μέσων αποθήκευσης πληροφοριών διαταγμένων σε γραμμές και στήλες,a matrix of information storage media arranged in rows and columns,             μέσα για την προσωρινή αποθήκευση πληροφοριών από μια ενεργή γραμμή της μήτρας, με τα μέσα προσωρινής αποθήκευσης να περιλαμβάνουν ένα πλήθος εγγραφών, κάθε μια για την αποθήκευση πληροφοριών από ένα μέσο αποθήκευσης σε μια αντίστοιχη στήλη μιας ενεργής γραμμής της μήτρας, καιmeans for temporarily storing information from an active row of the matrix, the temporary storage means comprising a plurality of records, each for storing information from a storage medium in a corresponding column of an active row of the matrix, and               μέσα για τη σύγκριση, σε απόκριση μιας εντολής ταύτισης ετικετών η οποία προσδιορίζει μια τιμή ετικέτας, της τιμής ετικέτας με πληροφορίες που αποθηκεύονται σε κάθε εγγραφή από ένα υποσύνολο εγγραφών των μέσων προσωρινής αποθήκευσης και προσδιορισμού της εγγραφής από το εν λόγω υποσύνολο εγγραφών, εάν υπάρχει κάποια, η οποία είναι μια εγγραφή ταύτισης η οποία αποθηκεύει πληροφορίες που ταυτίζονται με την τιμή ετικέτας, με το εν λόγω υποσύνολο να περιλαμβάνει δύο ή περισσότερες εγγραφές των μέσων προσωρινής αποθήκευσης.means for comparing, in response to a tag matching command that identifies a tag value, the tag value with information stored in each record from a subset of records of the cache media and identifying the record from that subset of records, if any , which is a match record that stores information that matches the tag value, that subset comprising two or more cache media records.    22. \ Μια μέθοδος πρόσβσόης σε πληροφορίες από ένα κύκλωμα αποθήκευσρ^το οποίο ττεόι^αμβάνει μιρκμήτρα θέσεων αποθήκευσης διαταγμένων σε γραμμές^κάι στήλες, με τη μέθοδο νά^^ιλαμβάνει,22. A method of accessing information from a storage circuit which takes micrometers of storage locations arranged in rows and columns, by the method of               τη μετρκρορά πλς^οφοριών από θέσεις αποθήκευσρς'ϊίε-^ΐια ενεργή γραμμή της μήτρας σ^μια προσωρινή μνήμη νραμμών η οποία^τεβίλαμβάνει ένα πλήθος εγγραφών, με κ£βε εγγραφή να αποθηκεύει πληροφρρίες από μια θέση αποθήκευσης σε μια αντίστοιχη στήλη της ενεργής γραμμής^καιstoring multiple entries from storage locations in the active row of the matrix into a string buffer that holds a plurality of records, with each entry storing information from a storage location in a corresponding column of the active row ^and                ^ε απόκριση μιας εντρλής ταύτισης ετικεΐών^η οποία προρδίορίζει μια τιμή ετικέτας, τη^ςύγκριση της/ίίμής ετικέτας με πληροφορίες ^του σποθηκεύονται σε κάθε εγγραφή από ε^α^υτίΌσύνολο εγγραφών της προσωρινής^ΐίνήμής^νραμμών και τον προσδιορισμό πάία εγγρςιφή από το εν λόγω υποσύνολ^έγγραφών, εάν υτΤάρχει κάποια, είναι μια εγγραφή ταύτισης η^οποία αποθηκεύει τιλη^οφορίες που ταυτίζονται με'τςν τιμή ετικέτρ<Γ με το εν λόγω υποσύνολο να περιλαμβάνει δύο ή περισσότερες εγγραφές της προσωρινής μνήμης γραμμών.In response to a tag match input that specifies a tag value, comparing the tag with information stored in each record from the temporary queue record set and determining which entry is said subset of records, if any, is a matching record that stores information matching a tag value with said subset including two or more line cache records.
GR20170200059U 2016-11-29 2016-11-29 Storage circuitry GR20170200059U (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GR20170200059U GR20170200059U (en) 2016-11-29 2016-11-29 Storage circuitry

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GR20170200059U GR20170200059U (en) 2016-11-29 2016-11-29 Storage circuitry

Publications (1)

Publication Number Publication Date
GR20170200059U true GR20170200059U (en) 2018-08-29

Family

ID=63404359

Family Applications (1)

Application Number Title Priority Date Filing Date
GR20170200059U GR20170200059U (en) 2016-11-29 2016-11-29 Storage circuitry

Country Status (1)

Country Link
GR (1) GR20170200059U (en)

Similar Documents

Publication Publication Date Title
US10860495B2 (en) Storage circuitry responsive to a tag-matching command
US6339813B1 (en) Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory
US10169232B2 (en) Associative and atomic write-back caching system and method for storage subsystem
KR100962057B1 (en) Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
US7689772B2 (en) Power-performance modulation in caches using a smart least recently used scheme
US10120750B2 (en) Cache memory, error correction circuitry, and processor system
US9424195B2 (en) Dynamic remapping of cache lines
US8661179B2 (en) Cache memory architecture having reduced tag memory size and method of operation thereof
CN113961483B (en) Cache memory and method of using the same
KR100273907B1 (en) Cache array defect functional bypassing using repair mask
US10185619B2 (en) Handling of error prone cache line slots of memory side cache of multi-level system memory
US20090019306A1 (en) Protecting tag information in a multi-level cache hierarchy
JP2013196393A (en) Arithmetic processing unit and control method of arithmetic processing unit
US9524242B2 (en) Cache memory system with simultaneous read-write in single cycle
KR100297914B1 (en) Multiple Cache Directories for Snooping Devices
JP3929872B2 (en) Cache memory, processor and cache control method
US7472226B1 (en) Methods involving memory caches
EP2866148B1 (en) Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device
US7302530B2 (en) Method of updating cache state information where stores only read the cache state information upon entering the queue
US7177981B2 (en) Method and system for cache power reduction
GR20170200059U (en) Storage circuitry
US7788443B2 (en) Transparent multi-hit correction in associative memories
CN101419543B (en) Method and system for predicting access position of high-speed register
KR20200112435A (en) Cache memory, memroy system including the same and operating method thereof
JPH0773106A (en) Cache memory