GR20170200172U - An apparatus and method of handling caching of persisent data - Google Patents

An apparatus and method of handling caching of persisent data Download PDF

Info

Publication number
GR20170200172U
GR20170200172U GR20170200172U GR20170200172U GR20170200172U GR 20170200172 U GR20170200172 U GR 20170200172U GR 20170200172 U GR20170200172 U GR 20170200172U GR 20170200172 U GR20170200172 U GR 20170200172U GR 20170200172 U GR20170200172 U GR 20170200172U
Authority
GR
Greece
Prior art keywords
cache
persistent
data items
persistent data
volatile memory
Prior art date
Application number
GR20170200172U
Other languages
Greek (el)
Inventor
Nikos NIKOLERIS
Andreas Lars SANDBERG
Stephan Diestelhorst
Wei Wang
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 GR20170200172U priority Critical patent/GR20170200172U/en
Publication of GR20170200172U publication Critical patent/GR20170200172U/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory

Abstract

The apparatus comprises cache storage having a plurality of entries to cache data items associated with memory address in a non-volatile memory. The data items may comprise persistent data items and non-persistent data items. Write back control circuitry is used to control write back of the data items from the cache storage to the non-volatile memory. In addition, cache usage determination circuity is used to determine, in dependence on information indicative of capacity of a backup energy source, a subset of the plurality of entries to be used to store persistent data items. In response to an event causing the backup energy source to be used, the write back control circuitry is then arranged to initiate write back to the non-volatile memory of the persistent data items cached in the subset of the plurality of entries. By constraining the extent to which the cache storage is allowed to store persistent data items, taking into account the capacity of the backup energy source, the persistence of those data items can then be guaranteed in the event of the backup energy source being triggered, for example due to removal of the primary energy source for the apparatus.

Description

ΜΙΑ ΔΙΑΤΑΞΗ ΚΑΙ ΜΙΑ ΜΕΘΟΔΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΤΗΣ ΑΠΟΘΗΚΕΥΣΗΣ A STORAGE MANAGEMENT ARRANGEMENT AND METHOD

ΣΕ ΚΡΥΦΗ ΜΝΗΜΗ ΕΠΙΜΟΝΩΝ ΔΕΔΟΜΕΝΩΝ IN PERSISTENT DATA CACHING

ΥΠΟΒΑΘΡΟ BACKGROUND

Η παρούσα τεχνική σχετίζεται με μια διάταξη και μια μέθοδο για τη διαχείριση της αποθήκευσης σε κρυφή μνήμη επίμονων δεδομένων. The present technique relates to an arrangement and method for managing persistent data caching.

Είναι γνωστή η παροχή μιας διάταξης επεξεργασίας δεδομένων με πρόσβαση σε μια μη πτητική μνήμη στην οποία αποθηκεύονται στοιχεία δεδομένων στα οποία η διάταξη επεξεργασίας δεδομένων πραγματοποιεί χειρισμούς επεξεργασίας δεδομένων. Όντας μια μη πτητική μνήμη, το περιεχόμενο αυτής της μη πτητικής μνήμης θα επιμένει μετά τη διακοπή και επαναφορά της τροφοδοσίας του συστήματος επεξεργασίας δεδομένων, είτε λόγω μιας ελεγχόμενης επανεκκίνησης ή λόγω ενός απρόοπτου συμβάντος. Ανάλογα, η μη πτητική μνήμη θα χρησιμοποιείται συνήθως για την αποθήκευση δεδομένων που απαιτείται να είναι επίμονα (αναφέρονται στο παρόν ως επίμονα δεδομένα). It is known to provide a data processing device with access to a non-volatile memory in which data elements are stored on which the data processing device performs data processing operations. Being a non-volatile memory, the contents of this non-volatile memory will persist after the data processing system is powered down and restored, either due to a controlled restart or due to an unexpected event. Accordingly, non-volatile memory will typically be used to store data that is required to be persistent (referred to herein as persistent data).

Ωστόσο, εφόσον η μη πτητική μνήμη μπορεί να χρησιμοποιείται ως ένα φθηνότερο και μεγαλύτερο υποκατάστατο της παραδοσιακής πτητικής μνήμης όπως η DRAM (Dynamic Random Access Memory ή Δυναμική μνήμη τυχαίας προσπέλασης), ισχύει επίσης ότι τα μη επίμονα δεδομένα μπορούν να αποθηκεύονται στη μη πτητική μνήμη, ώστε να ενισχύεται η μεγάλη χωρητικότητα και το χαμηλότερο κόστος της μη πτητικής μνήμης. However, since non-volatile memory can be used as a cheaper and larger substitute for traditional volatile memory such as DRAM (Dynamic Random Access Memory), it is also true that non-persistent data can be stored in non-volatile memory, to enhance the large capacity and lower cost of non-volatile memory.

Είναι επίσης γνωστή η παροχή μιας διάταξης επεξεργασίας δεδομένων με μια κρυφή μνήμη στην οποία αποθηκεύονται προσωρινά τοπικά αντίγραφα των στοιχείων δεδομένων που ανακτώνται από τη μνήμη και εγγράφονται στη μνήμη. Αυτό μπορεί να παρέχει σημαντικά πλεονεκτήματα στην απόδοση, αλλά μπορεί να παρουσιάζει και προβλήματα όπου αυτή η κρυφή μνήμη χρησιμοποιείται για την αποθήκευση επίμονων δεδομένων, λόγω του γεγονότος ότι ο χώρος αποθήκευσης στην κρυφή μνήμη δε θα είναι συνήθως μια δομή επίμονης αποθήκευσης. It is also known to provide a data processing arrangement with a cache in which local copies of data items retrieved from memory and written to memory are temporarily stored. This can provide significant performance benefits, but can also present problems where this cache is used to store persistent data, due to the fact that the storage in the cache will not typically be a persistent storage structure.

Ανάλογα, θα ήταν επιθυμητή η παροχή ενός μηχανισμού ο οποίος αξιόπιστα και αποτελεσματικά κάνει δυνατή την αποθήκευση σε κρυφή μνήμη επίμονων δεδομένων χωρίς συμβιβασμούς στη δυνατότητα διατήρησης αυτών των δεδομένων ως επίμονα δεδομένα. Accordingly, it would be desirable to provide a mechanism that reliably and efficiently makes it possible to cache persistent data without compromising the ability to maintain that data as persistent data.

ΠΕΡΙΛΗΨΗ SUMMARY

Σε ένα πρώτο παράδειγμα διαμόρφωσης, παρέχεται μια διάταξη η οποία περιλαμβάνει: χώρο αποθήκευσης σε κρυφή μνήμη με ένα πλήθος εγγραφών σε στοιχεία δεδομένων κρυφής μνήμης που σχετίζονται με διευθύνσεις μνήμης σε μια μη πτητική μνήμη, με τα στοιχεία δεδομένων να περιλαμβάνουν στοιχεία επίμονων δεδομένων και στοιχεία μη επίμονων δεδομένων, ένα κύκλωμα ελέγχου ετερόχρονης εγγραφής για τον έλεγχο της ετερόχρονης εγγραφής των στοιχείων δεδομένων από το χώρο αποθήκευσης σε κρυφή μνήμη στη μη πτητική μνήμη και ένα κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης για τον προσδιορισμό, σε εξάρτηση πληροφοριών ενδεικτικών για τη χωρητικότητα μιας εφεδρικής πηγής ενέργειας, ενός υποσυνόλου του πλήθους εγγραφών προς χρήση για την αποθήκευση στοιχείων επίμονων δεδομένων, όπου, σε απόκριση ενός συμβάντος που προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας, το κύκλωμα ελέγχου ετερόχρονης εγγραφής διατάσσεται ώστε να ξεκινάει την ετερόχρονη εγγραφή στη μη πτητική μνήμη των στοιχείων επίμονων δεδομένων που είναι αποθηκευμένα στο εν λόγω υποσύνολο του πλήθους εγγραφών. In a first exemplary embodiment, an arrangement is provided which includes: a cache storage area with a plurality of writes to cache data items associated with memory addresses in a non-volatile memory, the data items including persistent data items and non-volatile data items; persistent data, a write-over control circuit for controlling the write-over of the data items from the cache to the non-volatile memory, and a cache usage determination circuit for determining, in dependence on information indicative of the capacity of a backup source power, a subset of the plurality of writes to be used to store persistent data items, wherein, in response to an event that causes the standby power source to be used, the asynchronous write control circuit is arranged to initiate asynchronous writing to the non-volatile memory of the persistent items data that are stored in that subset of the number of records.

Σε ένα άλλο παράδειγμα διαμόρφωσης παρέχεται μια μέθοδος διαχείρισης της αποθήκευσης σε κρυφή μνήμη επίμονων δεδομένων εντός ενός χώρου αποθήκευσης σε κρυφή μνήμη με ένα πλήθος εγγραφών σε στοιχεία δεδομένων κρυφής μνήμης που σχετίζονται με διευθύνσεις μνήμης σε μια μη πτητική μνήμη, με τα στοιχεία δεδομένων να περιλαμβάνουν στοιχεία επίμονων δεδομένων και στοιχεία μη επίμονων δεδομένων, με τη μέθοδο να περιλαμβάνει: τη χρήση ενός κυκλώματος ελέγχου ετερόχρονης εγγραφής των στοιχείων δεδομένων από το χώρο αποθήκευσης σε κρυφή μνήμη στη μη πτητική μνήμη, τον προσδιορισμό, σε εξάρτηση πληροφοριών ενδεικτικών της χωρητικότητας μιας εφεδρικής πηγής ενέργειας, ενός υποσυνόλου του πλήθους εγγραφών προς χρήση για την αποθήκευση των στοιχείων επίμονων δεδομένων και σε απόκριση ενός συμβάντος που προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας, την πρόκληση έναρξης της ετερόχρονης εγγραφής από το κύκλωμα ελέγχου ετερόχρονης εγγραφής στη μη πτητική μνήμη των στοιχείων επίμονων δεδομένων που είναι αποθηκευμένα στο εν λόγω υποσύνολο του πλήθους εγγραφών. In another exemplary embodiment, a method of managing the caching of persistent data within a cache space is provided with a plurality of writes to cache data items associated with memory addresses in a non-volatile memory, the data items comprising persistent data and non-persistent data items, the method comprising: using a control circuit to simultaneously write the data items from the cache to the non-volatile memory, determining, as a function of information indicative of the capacity of a backup power source; a subset of the plurality of writes to be used to store the persistent data items and in response to an event causing the standby power source to be used, causing the asynchronous write control circuit to initiate the asynchronous write to the non-volatile memory of the persistent data items that are i stored in said subset of the number of records.

Σε ένα ακόμη παράδειγμα διαμόρφωσης παρέχεται μια διάταξη η οποία περιλαμβάνει: μέσα αποθήκευσης σε κρυφή μνήμη με ένα πλήθος εγγραφών για την αποθήκευση σε κρυφή μνήμη στοιχείων δεδομένων που σχετίζονται με διευθύνσεις μνήμης σε μια μη πτητική μνήμη, με τα στοιχεία δεδομένων να περιλαμβάνουν στοιχεία επίμονων δεδομένων και στοιχεία μη επίμονων δεδομένων, μέσα ελέγχου ετερόχρονης εγγραφής για τον έλεγχο της ετερόχρονης εγγραφής των στοιχείων δεδομένων από τα μέσα αποθήκευσης σε κρυφή μνήμη στη μη πτητική μνήμη και μέσα προσδιορισμού χρήσης της κρυφής μνήμης για τον προσδιορισμό, σε εξάρτηση πληροφοριών ενδεικτικών της χωρητικότητας μιας εφεδρικής πηγής ενέργειας, ενός υποσυνόλου του πλήθους εγγραφών προς χρήση για την αποθήκευση των στοιχείων επίμονων δεδομένων, όπου, σε απόκριση ενός συμβάντος που προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας, τα μέσα ελέγχου ετερόχρονης εγγραφής για την έναρξη της ετερόχρονης εγγραφής στη μη πτητική μνήμη των στοιχείων επίμονων δεδομένων που αποθηκεύονται στο εν λόγω υποσύνολο του πλήθους εγγραφών. In yet another exemplary embodiment, an arrangement is provided which includes: caching means having a plurality of records for caching data items associated with memory addresses in a non-volatile memory, the data items including persistent data items, and non-persistent data elements, asynchronous write control means for controlling the asynchronous writing of the data elements from the cache storage media to the non-volatile memory, and means for determining cache usage for determining, in dependence on information indicative of the capacity of a backup power source , a subset of the plurality of writes to be used to store the persistent data items, wherein, in response to an event causing the standby power source to be used, the asynchronous write control means to initiate the asynchronous write to the non-volatile memory of the persistent data items which warehouse are in that subset of the number of records.

ΣΥΝΤΟΜΗ ΠΕΡΙΓΡΑΦΗ ΤΩΝ ΣΧΕΔΙΑΓΡΑΜΜΑΤΩΝ BRIEF DESCRIPTION OF THE DRAWINGS

Η παρούσα τεχνική θα περιγράφει περαιτέρω, μόνο μέσω παραδείγματος, αναφορικά με τις υλοποιήσεις αυτής όπως εικονίζεται στα συνοδευτικά σχεδιαγράμματα, στα οποία: The present technique will be further described, by way of example only, with respect to embodiments thereof as illustrated in the accompanying drawings, in which:

Το Σχήμα 1 είναι ένα διάγραμμα βαθμιδών το οποίο απεικονίζει ένα σύστημα επεξεργασίας δεδομένων το οποίο ενσωματώνει μια διάταξη σύμφωνα με μια υλοποίηση, Figure 1 is a block diagram illustrating a data processing system incorporating an arrangement according to one embodiment,

Το Σχήμα 2 είναι ένα διάγραμμα το οποίο απεικονίζει σε μεγαλύτερη λεπτομέρεια τμήματα που παρέχονται εντός του σημείου επιμονής της κρυφής μνήμης του Σχήματος 1 σύμφωνα με μια υλοποίηση, Figure 2 is a diagram illustrating in greater detail portions provided within the cache persistence point of Figure 1 in accordance with one embodiment;

Το Σχήμα 3 απεικονίζει σχηματικά μια υλοποίηση στην οποία το σημείο επιμονής της κρυφής μνήμης ενσωματώνεται εντός των μονάδων μνήμης που διαχειρίζονται από ένα συσχετισμένο ελεγκτή μνήμης, σύμφωνα με μια υλοποίηση, Το Σχήμα 4 είναι ένα διάγραμμα ροής το οποίο απεικονίζει τη λειτουργία του κυκλώματος προσδιορισμού χρήσης της κρυφής μνήμης του Σχήματος 1 σύμφωνα με μια υλοποίηση, Figure 3 schematically illustrates an embodiment in which the cache persistence point is embedded within the memory units managed by an associated memory controller, according to one embodiment, Figure 4 is a flow diagram illustrating the operation of the cache usage determination circuit; cache memory of Figure 1 according to one embodiment,

Το Σχήμα 5Α απεικονίζει σχηματικά μια μορφή πληροφοριών ελέγχου χρήσης η οποία μπορεί να παρέχεται σε μια υλοποίηση, ενώ τα Σχήματα 5Β και 5C απεικονίζουν τη διαδικασία εκχώρησης δεδομένων και τη διεγειρόμενη από την εφεδρική πηγή ενέργειας διαδικασία έξωσης, η οποία πραγματοποιείται σε μια υλοποίηση όταν χρησιμοποιείται το σχήμα του Σχήματος 5Α, Figure 5A schematically illustrates one form of usage control information that may be provided in one embodiment, while Figures 5B and 5C illustrate the data assignment process and backup power-triggered eviction process performed in one embodiment when the figure of Figure 5A,

Το Σχήμα 6A απεικονίζει ένα μηχανισμό που χρησιμοποιείται σε μια εναλλακτική υλοποίηση για τον προσδιορισμό των γραμμών κρυφής μνήμης που περιλαμβάνουν επίμονα δεδομένα, ενώ τα Σχήματα 6Β και 6C απεικονίζουν τη διαδικασία εκχώρησης και τη διεγειρόμενη από την εφεδρική πηγή ενέργειας διαδικασία έξωσης, η οποία μπορεί να πραγματοποιείται όταν υιοθετείται το σχήμα του Σχήματος 6Α, Figure 6A illustrates a mechanism used in an alternative embodiment to determine cache lines that include persistent data, while Figures 6B and 6C illustrate the allocation process and the backup power-triggered eviction process that may be performed when the scheme of Figure 6A is adopted,

Το Σχήμα 7 απεικονίζει έναν εναλλακτικό μηχανισμό για την παρακολούθηση των γραμμών κρυφής μνήμης εντός του χώρου αποθήκευσης της κρυφής μνήμης στις οποίες υπάρχουν επίμονα δεδομένα σύμφωνα με μια περαιτέρω υλοποίηση, και Το Σχήμα 8 απεικονίζει ένα παράδειγμα διάταξης της μη πτητικής μνήμης η οποία μπορεί να χρησιμοποιείται σε μια υλοποίηση. Figure 7 illustrates an alternative mechanism for tracking cache lines within the cache store in which data is persistent according to a further embodiment, and Figure 8 illustrates an example non-volatile memory arrangement that may be used in an implementation.

ΠΕΡΙΓΡΑΦΗ ΤΩΝ ΥΛΟΠΟΙΗΣΕΩΝ DESCRIPTION OF IMPLEMENTATIONS

Προτού εξεταστούν οι υλοποιήσεις όσον αφορά στα συνοδευτικά σχεδιαγράμματα, παρέχεται η ακόλουθη περιγραφή των υλοποιήσεων. Before considering the embodiments with respect to the accompanying drawings, the following description of the embodiments is provided.

Σύμφωνα με τις περιγραφείσες υλοποιήσεις, παρέχεται μια διάταξη η οποία έχει χώρο αποθήκευσης κρυφής μνήμης με ένα πλήθος εγγραφών για την αποθήκευση σε κρυφή μνήμη στοιχείων δεδομένων, οι οποίες συσχετίζονται με διευθύνσεις μνήμης σε μια μη πτητική μνήμη. Τα στοιχεία δεδομένων μπορεί να περιλαμβάνουν στοιχεία επίμονων δεδομένων και στοιχεία μη επίμονων δεδομένων. Οι εγγραφές μπορούν να πάρουν ένα πλήθος μορφών, όμως σε μια υλοποίηση κάθε εγγραφή περιλαμβάνει μια γραμμή κρυφής μνήμης του χώρου αποθήκευσης κρυφής μνήμης, στον οποίο είναι δυνατή η αποθήκευση ενός ή περισσότερων στοιχείων δεδομένων. Σε μια υλοποίηση, οποιαδήποτε στοιχεία δεδομένων που αποθηκεύονται σε μια συγκεκριμένη γραμμή κρυφής μνήμης θα είναι ενός τύπου και συνεπώς θα είναι στοιχεία επίμονων δεδομένων ή στοιχεία μη επίμονων δεδομένων. Η διάταξη περαιτέρω παρέχει ένα κύκλωμα ελέγχου ετερόχρονης εγγραφής για τον έλεγχο της ετερόχρονης εγγραφής των στοιχείων δεδομένων από το χώρο αποθήκευσης κρυφής μνήμης στη μη πτητική μνήμη. Ένας τέτοιος μηχανισμός δίνει τη δυνατότητα στην έκδοση ενός στοιχείου δεδομένων που τηρείται εντός του χώρου αποθήκευσης κρυφής μνήμης να είναι πιο ενημερωμένη σε σχέση με μια έκδοση που τηρείται σε μη πτητική μνήμη και για την πιο ενημερωμένη έκδοση (συχνά αναφέρεται ως ρυπαρό στοιχείο δεδομένων) να εγγράφεται και πάλι αργότερα στη μη πτητική μνήμη, για παράδειγμα κατά την εκτέλεση μιας διαδικασίας έξωσης. In accordance with the described embodiments, an arrangement is provided that has a cache storage area with a plurality of entries for caching data items associated with memory addresses in a non-volatile memory. Data elements can include persistent data elements and non-persistent data elements. The records can take a number of forms, but in one embodiment each record includes a cache line of the cache store, in which one or more data items can be stored. In one implementation, any data items stored in a particular cache line will be of one type and thus will be persistent data items or non-persistent data items. The device further provides an asynchronous write control circuit for controlling the asynchronous writing of the data items from the cache storage to the non-volatile memory. Such a mechanism enables the version of a data item held in the cache to be more up-to-date than a version held in non-volatile memory, and for the more up-to-date version (often referred to as a dirty data item) to be written and again later in non-volatile memory, for example when performing an evict procedure.

Το σύστημα στο οποίο χρησιμοποιείται η διάταξη περιλαμβάνει μια εφεδρική πηγή ενέργειας, η οποία μπορεί να παρέχει εφεδρική ισχύ στο χώρο αποθήκευσης κρυφής μνήμης και στη μη πτητική μνήμη υπό ορισμένες συνθήκες, για παράδειγμα στην περίπτωση μιας διακοπής της κύριας πηγής ενέργειας για τη διάταξη. Σύμφωνα με τις περιγραφείσες υλοποιήσεις, η διάταξη περιλαμβάνει ένα κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης για τον προσδιορισμό, σε εξάρτηση πληροφοριών ενδεικτικών της χωρητικότητας αυτής της εφεδρικής πηγής ενέργειας, ενός υποσυνόλου του πλήθους εγγραφών που πρόκειται να χρησιμοποιηθούν για την αποθήκευση στοιχείων επίμονων δεδομένων. Με μια τέτοια προσέγγιση, ο βαθμός στον οποίο επιτρέπεται στο χώρο αποθήκευσης κρυφής μνήμης να χρησιμοποιείται για την αποθήκευση στοιχείων επίμονων δεδομένων μπορεί να περιορίζεται, λαμβάνοντας υπόψη τη χωρητικότητα της εφεδρικής πηγής ενέργειας. The system in which the device is used includes a backup power source, which can provide backup power to the cache storage and non-volatile memory under certain conditions, for example in the event of a failure of the main power source for the device. In accordance with the described embodiments, the device includes a cache usage determination circuit for determining, dependent on information indicative of the capacity of this backup power source, a subset of the plurality of records to be used to store persistent data items. With such an approach, the extent to which cache storage is allowed to be used to store persistent data items can be limited, taking into account the capacity of the backup power source.

Στη συνέχεια, σε απόκριση ενός συμβάντος το οποίο προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας, το κύκλωμα ελέγχου ετερόχρονης εγγραφής διατάσσεται ώστε να ξεκινάει την ετερόχρονη εγγραφή στη μη πτητική μνήμη των στοιχείων επίμονων δεδομένων που αποθηκεύονται στο υποσύνολο του πλήθους εγγραφών. Με τον περιορισμό του αριθμού εγγραφών οι οποίες μπορούν να χρησιμοποιούνται για την αποθήκευση στοιχείων επίμονων δεδομένων λαμβάνοντας υπόψη τη χωρητικότητα της εφεδρικής πηγής ενέργειας, μπορεί συνεπώς να εξασφαλίζεται ότι θα είναι διαθέσιμη επαρκής εφεδρική ενέργεια ώστε να επιτρέπεται η ετερόχρονη εγγραφή όλων των στοιχείων επίμονων δεδομένων τα οποία ήταν αποθηκευμένα στο χώρο αποθήκευσης κρυφής μνήμης στη μη πτητική μνήμη. Συνεπώς, παρά το γεγονός ότι ο ίδιος ο χώρος αποθήκευσης κρυφής μνήμης μπορεί να είναι μη επίμονος, μπορεί να θεωρείται ως ένα σημείο επιμονής εντός του συστήματος, όσον αφορά στο γεγονός ότι μπορεί να εγγυηθεί ότι μόλις ένα στοιχείο επίμονου δεδομένου αποθηκευτεί στο χώρο αποθήκευσης κρυφής μνήμης, αυτό το στοιχείο δεδομένων μπορεί να διατηρείται με επίμονο τρόπο σε περίπτωση διακοπής της τροφοδοσίας. Then, in response to an event which causes the standby power source to be used, the asynchronous write control circuit is arranged to initiate asynchronous writing to the non-volatile memory of the persistent data items stored in the subset of the plurality of writes. By limiting the number of writes that can be used to store persistent data items taking into account the capacity of the backup power source, it can therefore be ensured that sufficient backup power will be available to allow the subsequent writing of all persistent data items that were stored in the cache storage in non-volatile memory. Therefore, although the cache store itself may be non-persistent, it can be considered a persistence point within the system in that it can guarantee that once an item of persistent data is stored in the cache store , this data element can be persisted in case of power failure.

Μια τέτοια προσέγγιση παρέχει επίσης επιπλέον πλεονεκτήματα. Για παράδειγμα, ο χώρος αποθήκευσης κρυφής μνήμης μπορεί να διαθέτει ένα μέγεθος το οποίο υπερβαίνει τον αριθμό εγγραφών τον οποίο η εφεδρική πηγή ενέργειας μπορεί να εγγυάται ότι θα έχει δυνατότητα ετερόχρονης εγγραφής στη μη πτητική μνήμη πριν την εξάντληση της χωρητικότητάς της, ενώ αντίθετα είναι δυνατός ο περιορισμός των στοιχείων επίμονων δεδομένων σε ένα υποσύνολο των διαθέσιμων εγγραφών που υπολογίστηκαν λαμβάνοντας υπόψη τη χωρητικότητα της εφεδρικής πηγής ενέργειας. Με την παροχή ενός χώρου αποθήκευσης κρυφής μνήμης μεγαλύτερης χωρητικότητας, μπορεί να παρέχονται βελτιωμένα πλεονεκτήματα όσον αφορά στην απόδοση, για παράδειγμα σε σχέση με την αποθήκευση αναγνώσεων σε κρυφή μνήμη για εφαρμογές εντός μνήμης και το συνδυασμό των μη επίμονων εγγραφών για τη διευκόλυνση της φθοράς της μη πτητικής μνήμης. Ως ένα ακόμη πλεονέκτημα, η εφεδρική πηγή ενέργειας μπορεί να γίνεται μικρότερη για ένα δεδομένο μέγεθος κρυφής μνήμης. Αυτό μπορεί να είναι χρήσιμο εφόσον τέτοιες μονάδες αποθήκευσης ενέργειας είναι συνήθως αρκετά ογκώδεις, ενώ ο ρυθμός βελτίωσης της πυκνότητας τέτοιων μονάδων αποθήκευσης ενέργειας συνήθως υπολείπεται του αντίστοιχου ρυθμού της κρυφής μνήμης (η οποία συχνά κατασκευάζεται με τη χρήση τεχνολογίας DRAM). Such an approach also provides additional advantages. For example, the cache storage may have a size that exceeds the number of writes that the backup power source can guarantee will be able to write to the non-volatile memory before its capacity is exhausted, whereas it is possible to limiting the persistent data elements to a subset of the available records calculated taking into account the capacity of the backup power source. By providing a larger cache storage capacity, improved performance benefits can be provided, for example over caching reads for in-memory applications and combining non-persistent writes to ease non-persistent wear. volatile memory. As a further advantage, the backup power source can become smaller for a given cache size. This can be useful since such energy storage units are usually quite bulky, while the rate of improvement of the density of such energy storage units usually falls short of the corresponding rate of cache memory (which is often constructed using DRAM technology).

Υπάρχει ένας αριθμός τρόπων με τους οποίους το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης μπορεί να προσδιορίζει το υποσύνολο του πλήθους εγγραφών που πρόκειται να χρησιμοποιηθούν για την αποθήκευση στοιχείων επίμονων δεδομένων. Για παράδειγμα, σε μια υλοποίηση η ένδειξη που δημιουργείται από το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης μπορεί να προσδιορίζει απευθείας τις πραγματικές εγγραφές που πρόκειται να χρησιμοποιηθούν, ενώ σε μια εναλλακτική υλοποίηση η ένδειξη που δημιουργείται από το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης μπορεί να προσδιορίζει ένα μέγιστο αριθμό εγγραφών που πρόκειται να χρησιμοποιηθούν για την αποθήκευση στοιχείων επίμονων δεδομένων, με επιπλέον πληροφορίες στη συνέχεια να χρησιμοποιούνται για τον προσδιορισμό των πραγματικών εγγραφών που χρησιμοποιούνται για την αποθήκευση των στοιχείων επίμονων δεδομένων. There are a number of ways in which the cache usage determination circuitry can determine the subset of the number of records to be used to store persistent data items. For example, in one embodiment the indication generated by the cache usage determination circuitry may directly identify the actual records to be used, while in an alternative embodiment the indication generated by the cache usage determination circuitry may identify a maximum number of records to be used to store persistent data items, with additional information then used to determine the actual records used to store the persistent data items.

Μόλις προσδιορισθεί το υποσύνολο, η διάταξη μπορεί να περιορίζει τον τρόπο με τον οποίο εκχωρούνται τα δεδομένα στην κρυφή μνήμη ώστε οποιαδήποτε στοιχεία επίμονων δεδομένων να αποθηκεύονται σε αυτό το υποσύνολο που προσδιορίστηκε, είτε αυτά τα επίμονα δεδομένα είναι “ρυπαρά” (και συνεπώς πιο ενημερωμένα από οποιαδήποτε έκδοση αυτών των δεδομένων που διατηρούνται στη μη πτητική μνήμη) είτε όχι. Εναλλακτικά, η χρήση του υποσυνόλου μπορεί να περιορίζεται ώστε τα στοιχεία επίμονων δεδομένων τα οποία θα χρειάζονται ετερόχρονη εγγραφή στη μη πτητική μνήμη, δηλ. τα στοιχεία επίμονων δεδομένων τα οποία είναι ρυπαρά, θα αποθηκεύονται σε εγγραφές του υποσυνόλου που προσδιορίστηκε. Ωστόσο, τα στοιχεία επίμονων δεδομένων τα οποία είναι "καθαρά" και συνεπώς είναι ήδη αποθηκευμένα στη μη πτητική μνήμη σε ενημερωμένη μορφή, μπορεί σε μια υλοποίηση να επιτρέπεται να αποθηκεύονται σε εγγραφές της κρυφής μνήμης εκτός αυτού του υποσυνόλου, εφόσον δε θα χρειάζεται να εγγραφούν ετερόχρονα στη μη πτητική μνήμη σε περίπτωση ενός συμβάντος που προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας. Once the subset is determined, the layout can restrict how data is allocated in the cache so that any persistent data items are stored in that specified subset, whether or not that persistent data is "dirty" (and therefore more up-to-date than any version of that data held in non-volatile memory) or not. Alternatively, the use of the subset may be limited so that persistent data items that will need to be written asynchronously to non-volatile memory, i.e. persistent data items that are dirty, will be stored in writes of the specified subset. However, persistent data items that are "clean" and thus already stored in non-volatile memory in an up-to-date form may in one implementation be allowed to be stored in cache entries outside of this subset, since they will not need to be written later in the non-volatile memory in case of an event that causes the backup power source to be used.

Μολονότι σε μια υλοποίηση, σε απόκριση ενός συμβάντος που προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας, το κύκλωμα ελέγχου ετερόχρονης εγγραφής μπορεί να διατάσσεται ώστε να εντέλλει χειρισμούς ετερόχρονης εγγραφής ώστε τα στοιχεία επίμονων δεδομένων να είναι τα πρώτα στοιχεία δεδομένων που θα εγγραφούν ετερόχρονα στη μνήμη, όμως για να επιτρέπεται μετέπειτα η ετερόχρονη εγγραφή και άλλων στοιχείων δεδομένων στη μνήμη εάν υπάρχει ακόμη διαθέσιμη χωρητικότητα στην εφεδρική πηγή ενέργειας, σε μια εναλλακτική υλοποίηση το κύκλωμα ελέγχου ετερόχρονης εγγραφής διατάσσεται ώστε να αποτρέπει την ετερόχρονη εγγραφή στη μη πτητική μνήμη των στοιχείων μη επίμονων δεδομένων. Ανάλογα, το γεγονός αυτό επιτρέπει την απώλεια των στοιχείων μη επίμονων δεδομένων σε περίπτωση μιας διακοπής ρεύματος, παρά την ετερόχρονη εγγραφή τους στη μη πτητική μνήμη όπως οι επίμονες σελίδες. Αυτό μπορεί συνεπώς να μειώνει σημαντικά τον αριθμό των χειρισμών ετερόχρονης εγγραφής που πραγματοποιούνται σε περίπτωση διακοπής ρεύματος, καταλήγοντας με αυτό τον τρόπο στην απαίτηση λιγότερης ενέργειας για τη διαχείριση των χειρισμών ετερόχρονης εγγραφής και σε μικρότερη φθορά της μη πτητικής μνήμης με την πραγματοποίηση περιττών χειρισμών ετερόχρονης εγγραφής, επιτρέποντας ταυτόχρονα ταχύτερη λήψη και επαναφορά εφεδρικών αντιγράφων δεδομένων. Συγκεκριμένα, μόνο τα στοιχεία επίμονων δεδομένων εγγράφονται ετερόχρονα, ενώ στα στοιχεία μη επίμονων δεδομένων επιτρέπεται να χαθούν, εφόσον δεν απαιτείται η επιμονή τους σε περίπτωση διακοπής ρεύματος. Although in one embodiment, in response to an event causing the backup power source to be used, the asynchronous write control circuit may be arranged to command asynchronous write operations so that the persistent data items are the first data items to be asynchronously written to memory, however, to allow other data items to be later written into the memory if there is still available capacity in the backup power source, in an alternative embodiment the write-back control circuit is arranged to prevent the non-volatile data items from being written into the non-volatile memory. Accordingly, this fact allows non-persistent data items to be lost in the event of a power failure, despite their subsequent writing to non-volatile memory like persistent pages. This can therefore significantly reduce the number of asynchronous write operations performed in the event of a power failure, thereby resulting in less power being required to manage the asynchronous write operations and less wear on non-volatile memory by performing unnecessary asynchronous write operations , while allowing for faster data backup and restore. Specifically, only persistent data items are overwritten, while non-persistent data items are allowed to be lost as long as their persistence is not required in the event of a power failure.

Επιπλέον, μια τέτοια προσέγγιση μπορεί να βοηθάει στην ασφάλεια των δεδομένων, εφόσον μπορεί να απαιτείται η ενεργή διαγραφή οποιωνδήποτε μη επίμονων δεδομένων ή τουλάχιστον η προστασία τους από ανάγνωση, σε περίπτωση διακοπής τροφοδοσίας της συσκευής ή αφαίρεσης της μη πτητικής μνήμης και σύνδεσή της σε μια άλλη μηχανή. Συγκεκριμένα, η παραπάνω προσέγγιση επιτρέπει απλά την απώλεια των μη επίμονων δεδομένων αφήνοντάς τα εντός του χώρου αποθήκευσης κρυφής μνήμης και όχι εγγράφοντάς τα ετερόχρονα στη μνήμη. Αυτό μειώνει την ποσότητα των χειρισμών καθαρισμού οι οποίοι μπορεί να απαιτούνται όσον αφορά στη μη πτητική μνήμη για την αφαίρεση κάθε στοιχείου μη επίμονων δεδομένων μετά από ένα συμβάν διακοπής τροφοδοσίας. In addition, such an approach may help with data security, as any non-persistent data may be required to be actively erased, or at least read-protected, in the event of a device power-down or non-volatile memory being removed and connected to another machine. In particular, the above approach simply allows the loss of non-persistent data by leaving it in the cache storage rather than writing it back into memory. This reduces the amount of cleanup operations that may be required in non-volatile memory to remove each non-persistent data item after a power-down event.

Σε μια υλοποίηση, το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης μπορεί να διατάσσεται ώστε να επαναπροσδιορίζει το υποσύνολο του πλήθους εγγραφών σε ορισμένα χρονικά σημεία. Για παράδειγμα, το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης μπορεί να αποκρίνεται σε ένα συμβάν διέγερσης για την εκτέλεση του προσδιορισμού του υποσυνόλου του πλήθους εγγραφών που πρόκειται να χρησιμοποιηθούν για την αποθήκευση των στοιχείων επίμονων δεδομένων. In one embodiment, the cache usage determination circuit may be arranged to redefine the subset of the plurality of entries at certain points in time. For example, the cache usage determination circuitry may be responsive to a trigger event to perform determination of the subset of the number of records to be used to store the persistent data items.

Το συμβάν διέγερσης μπορεί να πάρει ένα πλήθος μορφών, για παράδειγμα μπορεί να είναι ένα ή περισσότερα από τα εξής: μια διαδικασία φόρτωσης του λειτουργικού συστήματος στη διάταξη, παρέλευση ενός επιλεγμένου χρονικού διαστήματος από έναν προηγούμενο προσδιορισμό του υποσυνόλου του πλήθους εγγραφών που πρόκειται να χρησιμοποιηθούν για την αποθήκευση στοιχείων επίμονων δεδομένων και μια ένδειξη που λαμβάνεται από την εφεδρική πηγή ενέργειας η οποία παρέχει μια ενημερωμένη ένδειξη της χωρητικότητας. The trigger event can take a number of forms, for example it can be one or more of the following: a process of loading the operating system to the array, the passage of a selected time interval since a previously determined subset of the number of records to be used for the storage of persistent data items and a reading obtained from the backup power source which provides an updated indication of the capacity.

Με μια τέτοια προσέγγιση, ο κατάλληλος αριθμός εγγραφών που θα επιτρέπεται να χρησιμοποιείται για την αποθήκευση στοιχείων επίμονων δεδομένων μπορεί να επανεκτιμάται με το χρόνο, ώστε να λαμβάνεται υπόψη η τρέχουσα χωρητικότητα της εφεδρικής πηγής ενέργειας. Συνεπώς, με μια τέτοια προσέγγιση, είναι δυνατή η μείωση του αριθμού εγγραφών που χρησιμοποιούνται για την αποθήκευση στοιχείων επίμονων δεδομένων εφόσον η χωρητικότητα της εφεδρικής πηγής ενέργειας ελαττώνεται με το χρόνο, ώστε να εξασφαλίζεται ότι ο χώρος αποθήκευσης κρυφής μνήμης μπορεί να συνεχίζει να είναι ένα εγγυημένο σημείο επιμονής εντός του συστήματος. With such an approach, the appropriate number of records to be allowed to be used to store persistent data items can be re-evaluated over time to take into account the current capacity of the backup power source. Therefore, with such an approach, it is possible to reduce the number of writes used to store persistent data items as the capacity of the backup power source decreases over time to ensure that the cache storage space can continue to be a guaranteed persistence point within the system.

Σε μια υλοποίηση, η διάταξη περαιτέρω περιλαμβάνει ένα κύκλωμα εκχώρησης το οποίο αποκρίνεται σε ένα αίτημα από μια πηγή αιτημάτων για την εκχώρηση ενός νέου στοιχείου δεδομένων στο χώρο αποθήκευσης κρυφής μνήμης, με την εκχώρηση του εν λόγω νέου στοιχείου δεδομένων στο χώρο αποθήκευσης κρυφής μνήμης όταν το νέο στοιχείο δεδομένων είναι ένα επίμονο στοιχείο δεδομένων, με το κύκλωμα εκχώρησης να διατάσσεται ώστε να εκδίδει ένα σήμα αναγνώρισης στην πηγή αιτημάτων το οποίο επαληθεύει την επιμονή του νέου στοιχείου δεδομένων. Λόγω του γεγονότος ότι ο μέγιστος αριθμός εγγραφών εντός του χώρου αποθήκευσης κρυφής μνήμης οι οποίες επιτρέπεται να χρησιμοποιούνται για την αποθήκευση στοιχείων επίμονων δεδομένων ελέγχεται με βάση τη χωρητικότητα της εφεδρικής πηγής ενέργειας, μόλις ένα νέο επίμονο στοιχείο δεδομένων εκχωρηθεί στην κρυφή μνήμη, μπορεί να εγγυηθεί ότι το στοιχείο δεδομένων θα επιμένει και ανάλογα το σήμα αναγνώρισης μπορεί να επαληθεύει αυτή την επιμονή στην πηγή αιτημάτων. In one embodiment, the arrangement further includes an allocation circuit that responds to a request from a request source to allocate a new data item to the cache store by allocating said new data item to the cache store when the new data item is a persistent data item, with the allocation circuit arranged to issue an acknowledgment signal to the request source that verifies the persistence of the new data item. Due to the fact that the maximum number of entries within the cache storage that are allowed to be used to store persistent data items is controlled based on the capacity of the backup power source, once a new persistent data item is allocated to the cache, it can guarantee that the data item will persist and accordingly the token can verify this persistence at the request source.

Υπάρχει ένας αριθμός τρόπων με τους οποίους το κύκλωμα ελέγχου ετερόχρονης εγγραφής μπορεί να προσδιορίζει ποιες εγγραφές περιλαμβάνουν επίμονα στοιχεία δεδομένων. Σε μια υλοποίηση, η διάταξη περαιτέρω περιλαμβάνει χώρο αποθήκευσης ελέγχου για την αποθήκευση των πληροφοριών ελέγχου χρήσης που χρησιμοποιούνται για τον προσδιορισμό του υποσυνόλου του πλήθους εγγραφών που πρόκειται να χρησιμοποιηθούν για την αποθήκευση στοιχείων επίμονων δεδομένων. Στη συνέχεια, σε απόκριση ενός συμβάντος που προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας, το κύκλωμα ελέγχου ετερόχρονης εγγραφής διατάσσεται ώστε να παραπέμπει στο χώρο αποθήκευσης ελέγχου και να προσδιορίζει ποιων εγγραφών τα στοιχεία δεδομένων πρέπει να εγγραφούν ετερόχρονα στη μη πτητική μνήμη. There are a number of ways in which the asynchronous write control circuit can determine which writes contain persistent data items. In one embodiment, the arrangement further includes control storage for storing usage control information used to determine the subset of the number of records to be used to store persistent data elements. Then, in response to an event that causes the standby power source to be used, the write-back control circuit is arranged to refer to the control store and determine which registers the data items are to write back to the non-volatile memory.

Συγκεκριμένα, με την παραπομπή στο χώρο αποθήκευσης ελέγχου, το κύκλωμα ελέγχου ετερόχρονης εγγραφής μπορεί να περιορίζει τις δραστηριότητές του προς το υποσύνολο των εγγραφών που προσδιορίζεται με τη χρήση των πληροφοριών ελέγχου χρήσης. Θα εκτιμηθεί ότι στην πράξη μπορεί να μη χρειάζεται η ετερόχρονη εγγραφή του περιεχομένου όλων των εγγραφών που προσδιορίζονται από τις πληροφορίες ελέγχου χρήσης στη μη πτητική μνήμη εφόσον μια ή περισσότερες από αυτές τις εγγραφές μπορεί να μην περιλαμβάνει σε αυτό το χρονικό σημείο έγκυρα στοιχεία επίμονων δεδομένων τα οποία είναι ρυπαρά. Ωστόσο, το υποσύνολο των εγγραφών που προσδιορίστηκε από τις πληροφορίες ελέγχου χρήσης αντιπροσωπεύει το μέγιστο αριθμό εγγραφών οι οποίες μπορούν να αποθηκεύουν στοιχεία επίμονων δεδομένων και συνεπώς όταν εξασφαλίζεται ότι τα στοιχεία επίμονων δεδομένων αποθηκεύονται στη μη πτητική μνήμη με τη χρήση της εφεδρικής πηγής ενέργειας, το κύκλωμα ελέγχου ετερόχρονης εγγραφής χρειάζεται να εξετάσει μόνο αυτό το υποσύνολο εγγραφών. Specifically, by referencing the control store, the asynchronous write control circuit can limit its operations to the subset of writes identified using the usage control information. It will be appreciated that in practice it may not be necessary to retroactively write the contents of all the records identified by the usage control information to the non-volatile memory since one or more of these records may not at that point in time contain valid persistent data elements. which are pollutants. However, the subset of records identified by the usage control information represents the maximum number of records that can store persistent data items, and thus when it is ensured that the persistent data items are stored in the non-volatile memory by using the backup power source, the circuit rollback checker only needs to look at this subset of records.

Οι πληροφορίες ελέγχου χρήσης μπορούν να παίρνουν ένα πλήθος μορφών. Σε μια υλοποίηση, ο χώρος αποθήκευσης κρυφής μνήμης καταμερίζεται (τουλάχιστον λογικά) σε μια επίμονη περιοχή και μια μη επίμονη περιοχή, ενώ οι πληροφορίες ελέγχου χρήσης επιτρέπουν τον προσδιορισμό της επίμονης περιοχής. Σε μια συγκεκριμένη υλοποίηση, οι πληροφορίες ελέγχου χρήσης προσδιορίζουν μια συνοριακή διεύθυνση μεταξύ της επίμονης περιοχής και της μη επίμονης περιοχής. Usage control information can take a number of forms. In one embodiment, the cache storage is (at least logically) partitioned into a persistent area and a non-persistent area, and the usage control information allows the persistent area to be determined. In a particular embodiment, the usage control information specifies a boundary address between the persistent region and the non-persistent region.

Θα εκτιμηθεί ότι σε μια υλοποίηση η θεώρηση του χώρου αποθήκευσης κρυφής μνήμης ως καταμερισμένου σε μια επίμονη περιοχή και μια μη επίμονη περιοχή είναι μια λογική θεώρηση, ενώ η επίμονη περιοχή δε χρειάζεται να είναι μια διακριτή μοναδική φυσική περιοχή αποτελούμενη από συνεχόμενες εγγραφές κρυφής μνήμης. Πράγματι, σε μια υλοποίηση το υποσύνολο του πλήθους των εγγραφών που διαμορφώνουν την επίμονη περιοχή περιλαμβάνει ένα ή περισσότερα από τα ακόλουθα: μια ακολουθία συνεχόμενων εγγραφών εντός του χώρου αποθήκευσης κρυφής μνήμης, ένα πλήθος μη συνεχόμενων εγγραφών εντός του χώρου αποθήκευσης κρυφής μνήμης και/ή μια ακολουθία εγγραφών παρεμβαλλόμενη με εγγραφές που διαμορφώνουν τη μη επίμονη περιοχή. It will be appreciated that in one embodiment viewing the cache storage as divided into a persistent area and a non-persistent area is a reasonable consideration, and the persistent area need not be a discrete single physical area consisting of contiguous cache entries. Indeed, in one embodiment the subset of the plurality of writes that make up the persistent region includes one or more of the following: a sequence of contiguous writes within the cache store, a plurality of non-contiguous writes within the cache store, and/or a sequence of records interspersed with records that form the non-persistent region.

Σε μια υλοποίηση, το περιεχόμενο κάθε εγγραφής κρυφής μνήμης θα έχει μια συσχετισμένη διεύθυνση μνήμης και η ανάλυση τουλάχιστον ενός τμήματος αυτής της διεύθυνσης μνήμης μπορεί να χρησιμοποιείται για να προσδιοριστεί κατά πόσο αυτή η εγγραφή θεωρείται ότι βρίσκεται εντός της επίμονης περιοχής ή της μη επίμονης περιοχής. Εναλλακτικά, μια ή περισσότερες κατευθύνσεις εντός μιας συσχετιστικής ως προς ένα σύνολο κρυφής μνήμης Ν-κατευθύνσεων μπορούν να δεσμεύονται για την αποθήκευση στοιχείων επίμονων δεδομένων. In one embodiment, the content of each cache entry will have an associated memory address, and analysis of at least a portion of that memory address can be used to determine whether that entry is considered to be within the persistent region or the non-persistent region. Alternatively, one or more directions within an associative to a set of N-direction caches may be reserved for storing persistent data elements.

Σε μια περαιτέρω εναλλακτική υλοποίηση, η κρυφή μνήμη μπορεί να περιλαμβάνει μια αποκλειστική φυσική δομή για την αποθήκευση στοιχείων επίμονων δεδομένων τα οποία είναι πιο ενημερωμένα από την έκδοση που διατηρείται στη μη πτητική μνήμη, με αυτή την ξεχωριστή δομή να έχει έναν αριθμό εγγραφών ίσο με το μέγιστο αριθμό εγγραφών οι οποίες μπορούν να εγγράφονται ετεροχρονισμένα στη μη πτητική μνήμη, αναφορικά με τη χωρητικότητα της εφεδρικής πηγής ενέργειας. Καθώς η χωρητικότητα της εφεδρικής πηγής ενέργειας ελαττώνεται με το χρόνο, μια ή περισσότερες από αυτές τις εγγραφές σε αυτό τον αποκλειστικό πόρο μπορεί να εμποδίζεται από περαιτέρω χρήση ώστε να εξασφαλίζεται ότι θα συνεχίζει να ισχύει ότι ο αριθμός των εγγραφών που πρόκειται να χρησιμοποιηθούν για την αποθήκευση τέτοιων στοιχείων επίμονων δεδομένων θα λαμβάνει υπόψη την τρέχουσα χωρητικότητα της εφεδρικής πηγής ενέργειας. In a further alternative embodiment, the cache may include a dedicated physical structure for storing persistent data items that are more up-to-date than the version held in non-volatile memory, this separate structure having a number of entries equal to maximum number of records that can be written retroactively to the non-volatile memory, with respect to the capacity of the backup power source. As the capacity of the backup power source decreases over time, one or more of these writes to this dedicated resource may be blocked from further use to ensure that the number of writes to be used to store of such persistent data elements shall take into account the current capacity of the backup power source.

Σε μια εναλλακτική υλοποίηση, οι πληροφορίες ελέγχου χρήσης προσδιορίζουν ένα μέγιστο αριθμό εγγραφών οι οποίες πρόκειται να χρησιμοποιηθούν για την αποθήκευση στοιχείων επίμονων δεδομένων, ενώ αυτές οι πληροφορίες χρησιμοποιούνται σε συνδυασμό με ορισμένες πρόσθετες πληροφορίες για τον προσδιορισμό των συγκεκριμένων εγγραφών οι οποίες αποθηκεύουν στοιχεία επίμονων δεδομένων. In an alternative embodiment, the usage control information specifies a maximum number of records that are to be used to store persistent data items, and this information is used in conjunction with some additional information to determine the specific records that store persistent data items.

Για παράδειγμα, σε μια υλοποίηση, κάθε εγγραφή εντός του χώρου αποθήκευσης κρυφής μνήμης έχει μια ένδειξη επιμονής που σχετίζεται με αυτή, η οποία έχει οριστεί ώστε να προσδιορίζει ότι αυτή η εγγραφή αποθηκεύει επίμονα δεδομένα. Η διάταξη μπορεί περαιτέρω να περιλαμβάνει ένα κύκλωμα ελέγχου το οποίο εξασφαλίζει ότι σε οποιοδήποτε χρονικό σημείο ο αριθμός εγγραφών που χρησιμοποιείται για την αποθήκευση επίμονων δεδομένων είναι μικρότερος από ή ίσος με τον εν λόγω μέγιστο αριθμό. For example, in one implementation, each record within the cache store has a persistence flag associated with it, which is set to identify that record is persistently storing data. The arrangement may further include a control circuit which ensures that at any point in time the number of records used to store persistent data is less than or equal to said maximum number.

Ως μια εναλλακτική λύση, η διάταξη μπορεί περαιτέρω να περιλαμβάνει χώρο αποθήκευσης προσδιορισμού εγγραφών για τη διατήρηση πληροφοριών αναγνωριστικών για κάθε εγγραφή εντός του χώρου αποθήκευσης κρυφής μνήμης ο οποίος αποθηκεύει επίμονα δεδομένα. Και πάλι, το κύκλωμα ελέγχου μπορεί στη συνέχεια να χρησιμοποιείται ώστε να εξασφαλίζει ότι σε οποιοδήποτε χρονικό σημείο ο αριθμός εγγραφών που χρησιμοποιείται για την αποθήκευση επίμονων δεδομένων είναι μικρότερος από ή ίσος με το μέγιστο αριθμό. As an alternative, the arrangement may further include a record identification store for maintaining identifier information for each record within the cache store that stores persistent data. Again, control circuitry can then be used to ensure that at any point in time the number of records used to store persistent data is less than or equal to the maximum number.

Οι πληροφορίες αναγνωριστικών μπορεί να πάρει ένα πλήθος μορφών, όμως σε μια υλοποίηση περιλαμβάνουν μια τιμή δείκτη που χρησιμοποιείται για τον προσδιορισμό μιας συσχετισμένης εγγραφής εντός του χώρου αποθήκευσης κρυφής μνήμης. Συνεπώς, σύμφωνα με αυτή την τελευταία υλοποίηση, παρά κάθε μεμονωμένη εγγραφή να τηρεί μια ένδειξη επιμονής για να προσδιορίζει κατά πόσο το περιεχόμενό της είναι επίμονα δεδομένα ή όχι, μπορεί να τηρείται ένα ξεχωριστό σύνολο δεικτών για να προσδιορίζει τις εγγραφές εντός του χώρου αποθήκευσης κρυφής μνήμης οι οποίες αποθηκεύουν επίμονα δεδομένα. The identifier information can take a number of forms, but in one embodiment includes a pointer value used to identify an associated entry within the cache storage. Accordingly, according to this latter implementation, rather than each individual record maintaining a persistence flag to identify whether its contents are persistent data or not, a separate set of indicators may be maintained to identify records within the cache store. which store persistent data.

Σε μια υλοποίηση, το κύκλωμα εκχώρησης το οποίο αποκρίνεται σε ένα αίτημα το οποίο προκαλεί την εκχώρηση ενός νέου στοιχείου δεδομένων στο χώρο αποθήκευσης κρυφής μνήμης, μπορεί να χρησιμοποιείται για την παραπομπή στο χώρο αποθήκευσης ελέγχου κατά τον προσδιορισμό σε ποια εγγραφή κρυφής μνήμης πρόκειται να εκχωρηθεί το νέο στοιχείο δεδομένων. Με μια τέτοια προσέγγιση, όταν το νέο στοιχείο δεδομένων είναι ένα στοιχείο επίμονων δεδομένων, το νέο στοιχείο δεδομένων θα εκχωρείται σε μια εγγραφή εντός του υποσυνόλου ενός πλήθους εγγραφών όπως προσδιορίζεται από το χώρο αποθήκευσης ελέγχου. In one embodiment, the allocation circuit that responds to a request that causes a new data item to be allocated to the cache store may be used to refer to the control store when determining which cache entry to allocate the new data item. With such an approach, when the new data item is a persistent data item, the new data item will be assigned to a record within the subset of a set of records as determined by the control store.

Υπάρχει ένας αριθμός τρόπων με τους οποίους το κύκλωμα εκχώρησης μπορεί να προσδιορίζει κατά πόσο τα δεδομένα που πρόκειται να εκχωρηθούν είναι επίμονα δεδομένα ή μη επίμονα δεδομένα. Σε μια υλοποίηση το αίτημα παρέχει πληροφορίες τύπου οι οποίες υποδηλώνουν κατά πόσο το νέο στοιχείο δεδομένων είναι ένα στοιχείο επίμονων δεδομένων ή ένα στοιχείο μη επίμονων δεδομένων και ανάλογα το κύκλωμα εκχώρησης μπορεί να παραπέμπει απευθείας σε αυτές τις πληροφορίες τύπου. There are a number of ways in which the allocation circuit can determine whether the data to be allocated is persistent data or non-persistent data. In one embodiment the request provides type information that indicates whether the new data item is a persistent data item or a non-persistent data item, and accordingly the allocation circuit may refer directly to this type information.

Σε ένα παράδειγμα υλοποίησης, η διάταξη περαιτέρω περιλαμβάνει έναν ή περισσότερους πίνακες σελίδων που παρέχουν χαρακτηριστικά για σελίδες στη μη πτητική μνήμη, όπου για κάθε σελίδα τα εν λόγω χαρακτηριστικά περιλαμβάνουν ένα χαρακτηριστικό τύπου που προσδιορίζει κατά πόσο τα στοιχεία δεδομένων εντός αυτής της σελίδας είναι στοιχεία επίμονων δεδομένων ή στοιχεία μη επίμονων δεδομένων, ενώ το εν λόγω χαρακτηριστικό τύπου παρέχεται σε συσχέτιση με το αίτημα. Συνεπώς, η επίμονη ή μη επίμονη φύση των δεδομένων προσδιορίζεται σε βάση σελίδα μνήμης προς σελίδα μνήμης, ενώ οι πληροφορίες που εξάγονται αναφορικά με τον(ους) πίνακα(ες) σελίδων μπορεί να συσχετίζεται με κάθε αίτημα ώστε να είναι σαφές στο κύκλωμα εκχώρησης κατά πόσο τα δεδομένα προς εκχώρηση είναι επίμονα δεδομένα ή μη επίμονα δεδομένα. In an example embodiment, the arrangement further includes one or more page arrays that provide attributes for pages in the non-volatile memory, wherein for each page said attributes include a type attribute that identifies whether the data elements within that page are persistent elements data or non-persistent data elements, while that type attribute is provided in association with the request. Therefore, the persistent or non-persistent nature of the data is determined on a memory page-by-memory page basis, while information extracted regarding the page table(s) can be associated with each request so that it is clear to the allocation circuit whether the data to allocate is persistent data or non-persistent data.

Σε μια υλοποίηση, μπορεί να υπάρχει ένα ή περισσότερα επίπεδα κρυφής μνήμης που μεσολαβούν μεταξύ του χώρου αποθήκευσης κρυφής μνήμης και του κυκλώματος επεξεργασίας. Σε μια συγκεκριμένη υλοποίηση, για έξοδο επίμονων δεδομένων από το κύκλωμα επεξεργασίας για αποθήκευση στο χώρο αποθήκευσης κρυφής μνήμης, οι πληροφορίες του χαρακτηριστικού τύπου χρησιμοποιούνται για να προκαλούν τη λειτουργία του ενός ή των περισσότερων επίπεδων κρυφής μνήμης που μεσολαβούν σε λειτουργία ταυτόχρονης εγγραφής για τα επίμονα δεδομένα. Με μια τέτοια προσέγγιση, μπορεί να εξασφαλίζεται ότι όταν πραγματοποιείται μια λειτουργία εγγραφής από το κύκλωμα επεξεργασίας για την εγγραφή ενός στοιχείου επίμονων δεδομένων, αυτό το στοιχείο επίμονων δεδομένων θα μεταβιβάζεται στο χώρο αποθήκευσης κρυφής μνήμης χωρίς καθυστέρηση, ακόμη και εάν αποθηκεύεται σε ένα ή περισσότερα επίπεδα κρυφής μνήμης που μεσολαβούν. Ως αποτέλεσμα, θα αποθηκεύεται εντός του σημείου επιμονής του χώρου αποθήκευσης κρυφής μνήμης και συνεπώς σε αυτό το σημείο μπορεί να εγγυάται η μεταχείρισή του ως επίμονο από τη διάταξη. Συγκεκριμένα, μόλις το στοιχείο επίμονων δεδομένων αποθηκευτεί στο χώρο αποθήκευσης κρυφής μνήμης, μπορεί να εγγυάται ότι θα διατηρείται με έναν επίμονο τρόπο σε περίπτωση διακοπής ρεύματος. In one embodiment, there may be one or more cache layers that mediate between the cache store and the processing circuitry. In a particular embodiment, to output persistent data from the processing circuitry for storage in cache storage, the type attribute information is used to cause the operation of one or more cache levels that mediate a write-once operation for the persistent data . With such an approach, it can be ensured that when a write operation is performed by the processing circuit to write a persistent data item, that persistent data item will be transferred to the cache storage without delay, even if it is stored in one or more layers mediating caches. As a result, it will be stored within the persistence point of the cache storage, and thus at that point it can be guaranteed to be treated as persistent by the layout. In particular, once the persistent data item is stored in the cache storage, it can be guaranteed to be preserved in a persistent manner in the event of a power failure.

Σε μια υλοποίηση, η μη πτητική μνήμη μπορεί να περιλαμβάνει, επιπλέον του μη πτητικού χώρου αποθήκευσης, έναν πτητικό χώρο αποθήκευσης προς σύζευξη με την εφεδρική πηγή ενέργειας και λειτουργία ως μια περιοχή διευθυνσιοδοτούμενης μη πτητικής μνήμης. Σε απόκριση ενός συμβάντος που προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας, τουλάχιστον τα ρυπαρά επίμονα δεδομένα που αποθηκεύονται στον πτητικό χώρο αποθήκευσης μπορούν στη συνέχεια να αντιγράφονται στο μη πτητικό χώρο αποθήκευσης ώστε να εξασφαλίζεται η επιμονή αυτών των δεδομένων. Μια τέτοια προσέγγιση μπορεί να κάνει δυνατούς ταχύτερους χρόνους πρόσβασης σε ορισμένες υλοποιήσεις, εφόσον οι πτητικοί χώροι αποθήκευσης (π.χ. DRAM) μπορούν συνήθως να είναι ταχύτερης πρόσβασης από τους μη πτητικούς χώρους αποθήκευσης. Μπορεί επίσης να κάνει δυνατή τη μείωση του μεγέθους του μη πτητικού χώρου αποθήκευσης. In one embodiment, the non-volatile memory may include, in addition to the non-volatile storage, a volatile storage to couple to the backup power source and function as an addressable non-volatile memory area. In response to an event that causes the backup power source to be used, at least the dirty persistent data stored in the volatile storage can then be copied to the non-volatile storage to ensure the persistence of that data. Such an approach may enable faster access times in some implementations, since volatile storage (eg, DRAM) can typically be accessed faster than non-volatile storage. It can also make it possible to reduce the size of non-volatile storage.

Συγκεκριμένες υλοποιήσεις θα περιγραφούν τώρα αναφορικά με τα Σχήματα. Το Σχήμα 1 είναι ένα διάγραμμα βαθμιδών ενός συστήματος σύμφωνα με μια υλοποίηση. Το κύκλωμα επεξεργασίας 10 παρέχεται για την εκτέλεση εντολών ώστε να εκτελούνται χειρισμοί επεξεργασίας δεδομένων σε στοιχεία δεδομένων. Τα στοιχεία δεδομένων αποθηκεύονται εντός μιας μνήμης η οποία περιλαμβάνει μια μη πτητική μνήμη 25 και η οποία μπορεί προαιρετικά να περιλαμβάνει και άλλες μνήμες όπως η πτητική μνήμη 30. Λόγω της φύσης της μη πτητικής μνήμης, τα δεδομένα που διατηρούνται εντός της μη πτητικής μνήμης θα είναι επίμονα σε περίπτωση διακοπής της παροχής ενέργειας και συνεπώς η μη πτητική μνήμη συνήθως θα χρησιμοποιείται για την αποθήκευση δεδομένων που απαιτούνται να είναι επίμονα (αναφέρονται στο παρόν ως επίμονα δεδομένα). Μολονότι τα μη επίμονα δεδομένα μπορούν να αποθηκεύονται και σε άλλα τμήματα του συστήματος μνήμης εάν παρέχονται άλλα τέτοια τμήματα μνήμης, για παράδειγμα η πτητική μνήμη 30, καθώς το μέγεθος της μη πτητικής μνήμης αυξάνεται και το κόστος της μειώνεται, γίνεται πιο συνηθισμένη η χρήση και της μη πτητικής μνήμης για την αποθήκευση μη επίμονων δεδομένων. Specific embodiments will now be described with reference to the Figures. Figure 1 is a block diagram of a system according to one embodiment. Processing circuitry 10 is provided for executing instructions to perform data processing operations on data items. The data items are stored within a memory which includes a non-volatile memory 25 and which may optionally include other memories such as the volatile memory 30. Due to the nature of the non-volatile memory, the data held within the non-volatile memory will be persistent in the event of a power failure and thus non-volatile memory will typically be used to store data that is required to be persistent (referred to herein as persistent data). Although non-volatile data may be stored in other portions of the memory system if other such memory portions are provided, for example volatile memory 30, as the size of non-volatile memory increases and its cost decreases, it is becoming more common to use non-volatile memory to store non-persistent data.

Η μη πτητική μνήμη μπορεί να παίρνει ένα πλήθος μορφών και συγκεκριμένα υπάρχει ένας αριθμός τεχνολογιών μνήμης οι οποίες παρέχουν δομές μη πτητικής μνήμης. Ορισμένα παραδείγματα είναι η μνήμη αλλαγής φάσης (phase change memory ή PCM), η μαγνητική μνήμη τυχαίας πρόσβασης ροπής μεταφοράς περιστροφής (spin torque transfer magnetic random access memory ή STT-MRAM), η μνήμη τυχαίας προσπέλασης συσχετισμένων ηλεκτρονίων (correlated electron random access memory ή CeRAM), η μνήμη Flash NAND ή NOR, η μνήμη τυχαίας πρόσβασης αντίστασης (resistive random access memory ή ReRAM), κλπ. Non-volatile memory can take a number of forms, and in particular there are a number of memory technologies that provide non-volatile memory structures. Some examples are phase change memory (PCM), spin torque transfer magnetic random access memory (STT-MRAM), correlated electron random access memory or CeRAM), NAND or NOR Flash memory, resistive random access memory (ReRAM), etc.

Μπορεί συνήθως να χρησιμοποιείται ένα σύστημα κρυφής μνήμης το οποίο παρεμβάλλεται μεταξύ του κυκλώματος επεξεργασίας και του συστήματος μνήμης και μπορεί να περιλαμβάνει ένα ή περισσότερα επίπεδα κρυφής μνήμης, συμπεριλαμβανομένων των προαιρετικών επιπέδων 15 που δείχνονται στο Σχήμα 1 και η κρυφή μνήμη 20. Όπως θα εξεταστεί σε μεγαλύτερη λεπτομέρεια στο παρόν, η κρυφή μνήμη 20 διαχειρίζεται ώστε να μπορεί να ενεργεί ως σημείο επιμονής (point of persistence ή ΡοΡ) για επίμονα δεδομένα που απαιτούν εγγραφή στη μη πτητική μνήμη 25. A cache system may typically be used which is interposed between the processing circuitry and the memory system and may include one or more cache levels, including optional levels 15 shown in Figure 1 and cache 20. As will be discussed in In greater detail herein, the cache 20 is managed to act as a point of persistence (PoP) for persistent data that requires writing to the non-volatile memory 25.

Όπως δείχνεται στο Σχήμα 1, μπορεί να παρέχεται μια εφεδρική πηγή ενέργειας 35 για την παροχή εφεδρικής ενέργειας τουλάχιστον στην κρυφή μνήμη 20 και στη μη πτητική μνήμη 25 για μια χρονική περίοδο μετά από μια διακοπή της κύριας πηγής ενέργειας. Συνεπώς, όταν αφαιρείται η κύρια πηγή ενέργειας για το σύστημα, είτε σκόπιμα ή αθέλητα, η εφεδρική πηγή ενέργειας 35 μπορεί να διεγείρεται ώστε να παρέχει εφεδρική ενέργεια στην κρυφή μνήμη 20 και στη μη πτητική μνήμη 25. Όπως θα εξεταστεί στο παρόν, η χωρητικότητα που είναι διαθέσιμη από την εφεδρική πηγή ενέργειας μπορεί να χρησιμοποιείται ώστε να εξασφαλίζει ότι τα επίμονα δεδομένα τα οποία διατηρούνται εντός της κρυφής μνήμης 20 και τα οποία δεν αναπαράγονται εκείνη τη στιγμή στη μη πτητική μνήμη 25 θα μπορούν να εγγράφονται ετεροχρονισμένα στη μη πτητική μνήμη 25 ώστε να εξασφαλίζεται ότι τα επίμονα δεδομένα διατηρούνται σε μια επίμονη μορφή. As shown in Figure 1, a backup power source 35 may be provided to provide backup power to at least the cache memory 20 and the non-volatile memory 25 for a period of time after a failure of the main power source. Accordingly, when the primary power source for the system is removed, either intentionally or unintentionally, the backup power source 35 can be stimulated to provide backup power to the cache memory 20 and the non-volatile memory 25. As will be discussed herein, the capacity that is available from the backup power source can be used to ensure that persistent data held in cache 20 and not currently being replicated in non-volatile memory 25 can be retroactively written to non-volatile memory 25 so that it ensures that persistent data is kept in a persistent format.

Ωστόσο, ο βαθμός στον οποίο η κρυφή μνήμη 20 μπορεί να χρησιμοποιείται για την αποθήκευση επίμονων δεδομένων τα οποία πρέπει να εγγραφούν ετεροχρονισμένα στη μη πτητική μνήμη 25 εξαναγκάζεται να λαμβάνει υπόψη τη χωρητικότητα της εφεδρικής πηγής ενέργειας 35. Συγκεκριμένα, σε μια υλοποίηση μπορεί να παρέχεται το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης 40 το οποίο διατάσσεται ώστε να λαμβάνει τις πληροφορίες ένδειξης χωρητικότητας από την εφεδρική πηγή ενέργειας 35 οι οποίες είναι ενδεικτικές της χωρητικότητας αυτής της εφεδρικής πηγής ενέργειας. Σε απόκριση ενός ή περισσότερων συμβάντων διέγερσης, το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης διατάσσεται ώστε να χρησιμοποιεί την πλέον πρόσφατη ένδειξη χωρητικότητας που λαμβάνεται από την εφεδρική πηγή ενέργειας για τον προσδιορισμό ενός υποσυνόλου των εγγραφών εντός της κρυφής μνήμης 20 των οποίων επιτρέπεται η χρήση για την αποθήκευση επίμονων δεδομένων. Όπως θα εξεταστεί σε μεγαλύτερη λεπτομέρεια αργότερα, ως αποτέλεσμα του προσδιορισμού που πραγματοποιείται από το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης, οι πληροφορίες ελέγχου χρήσης παρέχονται στην κρυφή μνήμη 20 για τον προσδιορισμό του υποσυνόλου των εγγραφών που μπορούν να χρησιμοποιούνται για την αποθήκευση των στοιχείων επίμονων δεδομένων. Αυτές οι πληροφορίες ελέγχου χρήσης μπορούν σε μια υλοποίηση να προσδιορίζουν απευθείας τις εγγραφές οι οποίες πρόκειται να χρησιμοποιηθούν για την αποθήκευση τέτοιων επίμονων δεδομένων ή εναλλακτικά μπορεί να υποδηλώνουν ένα μέγιστο αριθμό εγγραφών οι οποίες μπορούν να χρησιμοποιούνται για την αποθήκευση τέτοιων επίμονων δεδομένων, με τις επιπλέον πληροφορίες στη συνέχεια να διατηρούνται από την κρυφή μνήμη για τον προσδιορισμό των πραγματικών εγγραφών που χρησιμοποιούνται για την αποθήκευση των επίμονων δεδομένων. However, the extent to which the cache memory 20 can be used to store persistent data to be written asynchronously to the non-volatile memory 25 is forced to consider the capacity of the backup power source 35. Specifically, in one embodiment, the cache usage determination circuit 40 which is arranged to receive the capacity indication information from the backup power source 35 which is indicative of the capacity of that backup power source. In response to one or more trigger events, the cache usage determination circuitry is arranged to use the most recent capacity indication received from the backup power source to determine a subset of the entries within cache memory 20 that are permitted to be used for persistent data storage. As will be discussed in greater detail later, as a result of the determination made by the cache usage determination circuitry, usage control information is provided to cache memory 20 to determine the subset of records that can be used to store the persistent data items. . This usage control information may in one embodiment directly identify the records that are to be used to store such persistent data, or alternatively may indicate a maximum number of records that may be used to store such persistent data, with the additional information then persisted by the cache to identify the actual records used to store the persistent data.

Σε μια υλοποίηση, η κρυφή μνήμη μπορεί να διατάσσεται ώστε οποιαδήποτε επίμονα δεδομένα που πρόκειται να αποθηκευτούν στην κρυφή μνήμη να εξαναγκάζονται ώστε να εκχωρούνται εντός του υποσυνόλου εγγραφών που προσδιορίζονται από τις πληροφορίες ελέγχου χρήσης, ανεξάρτητα από το γεγονός εάν αυτά τα επίμονα δεδομένα είναι ρυπαρά (δηλ. πιο ενημερωμένα από οποιοδήποτε αντίγραφο που τηρείται στη μη πτητική μνήμη 25) ή είναι καθαρά (δηλ. το αντίγραφο στη μη πτητική μνήμη είναι εκείνη τη στιγμή ενημερωμένο). Μια τέτοια προσέγγιση έχει την απλότητα ότι όλα τα επίμονα δεδομένα χειρίζονται με τον ίδιο τρόπο και εξαναγκάζονται σε εκχώρηση στο υποσύνολο εγγραφών που προσδιορίζεται από τις πληροφορίες ελέγχου χρήσης. Ωστόσο, σε μια εναλλακτική υλοποίηση, το σχήμα εκχώρησης μπορεί να χαλαρώνεται σε κάποιο βαθμό, ώστε τα στοιχεία επίμονων δεδομένων, τα οποία είναι καθαρά, να μην εξαναγκάζονται σε εκχώρηση εντός του υποσυνόλου εγγραφών που προσδιορίζεται με τη χρήση των πληροφοριών ελέγχου χρήσης. Ωστόσο, όλα τα ρυπαρά επίμονα δεδομένα θα εξαναγκάζονται σε εκχώρηση σε αυτό το υποσύνολο. Εφόσον τα καθαρά επίμονα δεδομένα θα είναι σε κάθε συμβάν επίμονα στο σημείο απομάκρυνσης μιας κύριας πηγής ενέργειας, δεν υπάρχει ανάγκη ετερόχρονης εγγραφής αυτών των καθαρών επίμονων δεδομένων στη μη πτητική μνήμη. Αντίθετα, μόνο τα ρυπαρά επίμονα δεδομένα πρέπει να εγγράφονται ετερόχρονα με τη διακοπή της κύριας πηγής ενέργειας και με τον εξαναγκασμό του αριθμού εγγραφών εντός της κρυφής μνήμης που μπορούν να χρησιμοποιούνται για την αποθήκευση ρυπαρών επίμονων δεδομένων, λαμβάνοντας υπόψη τη χωρητικότητα της εφεδρικής πηγής ενέργειας 35, μπορεί συνεπώς να εξασφαλίζεται ότι υπάρχει επαρκής χωρητικότητα εντός της εφεδρικής πηγής ενέργειας για την πλήρη ετερόχρονη εγγραφή στη μη πτητική μνήμη οποιωνδήποτε ρυπαρών δεδομένων υπάρχουν εντός της κρυφής μνήμης 20 κατά το χρόνο μιας διακοπής της κύριας πηγής ενέργειας. In one implementation, the cache may be ordered so that any persistent data to be cached is forced to be allocated within the subset of records identified by the usage control information, regardless of whether that persistent data is dirty ( i.e. more up-to-date than any copy held in non-volatile memory 25) or are clean (i.e. the copy in non-volatile memory is currently up-to-date). Such an approach has the simplicity that all persistent data is treated the same way and is forced into assignment to the subset of records identified by the usage control information. However, in an alternative implementation, the allocation scheme may be relaxed to some extent so that persistent data items, which are clean, are not forced into an allocation within the subset of records identified using the usage control information. However, all dirty persistent data will be forced into assignment to this subset. Since the clean persistent data will in each event be persistent at the point of removal of a primary power source, there is no need to asynchronously write this clean persistent data to the non-volatile memory. Instead, only dirty persistent data needs to be written asynchronously by interrupting the primary power source and forcing the number of writes into the cache that can be used to store dirty persistent data, taking into account the capacity of the backup power source 35, it can therefore be ensured that there is sufficient capacity within the backup power source to fully asynchronously write to the non-volatile memory any dirty data present within the cache 20 at the time of an outage of the primary power source.

Εάν καταστεί δυνατή η εκχώρηση των καθαρών επίμονων δεδομένων σε μια εγγραφή κρυφής μνήμης εκτός του προσδιορισθέντος υποσυνόλου εγγραφών, τότε σε μια υλοποίηση η κρυφή μνήμη παρατηρεί αυτά τα επίμονα δεδομένα, ώστε εάν κάποιοι χειρισμοί που πραγματοποιούνται από το κύκλωμα επεξεργασίας 10 έχουν ως αποτέλεσμα την ενημέρωση του περιεχομένου αυτής της εγγραφής κρυφής μνήμης ώστε να αντιπροσωπεύει στη συνέχεια ρυπαρά επίμονα δεδομένα, η παρουσία αυτών των ρυπαρών επίμονων δεδομένων λαμβάνεται στη συνέχεια υπόψη για να εξασφαλιστεί ότι η συνολική ποσότητα ρυπαρών επίμονων δεδομένων εντός της κρυφής μνήμης 20 δεν υπερβαίνει τη μέγιστη επιτρεπόμενη ποσότητα, όσον αφορά στη χωρητικότητα της εφεδρικής πηγής ενέργειας 35. If it is possible to allocate the clean persistent data to a cache entry outside of the specified subset of entries, then in one embodiment the cache observes this persistent data so that if any manipulations performed by processing circuitry 10 result in updating the content of this cache entry to then represent dirty persistent data, the presence of this dirty persistent data is then taken into account to ensure that the total amount of dirty persistent data within the cache 20 does not exceed the maximum allowed amount, in terms of to the capacity of the backup power source 35.

Το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης 40 μπορεί να διατάσσεται ώστε να επαναξιολογεί το υποσύνολο εγγραφών που πρόκειται να χρησιμοποιηθούν για την αποθήκευση των στοιχείων επίμονων δεδομένων με την εμφάνιση ενός ή περισσότερων συμβάντων διέγερσης. Τα συμβάντα διέγερσης μπορούν να πάρουν ένα πλήθος μορφών. Για παράδειγμα, ένα συμβάν διέγερσης μπορεί να είναι η έναρξη μιας διαδικασίας φόρτωσης του λειτουργικού συστήματος του συστήματος. Κατά το χρόνο φόρτωσης του λειτουργικού συστήματος, οι πληροφορίες ένδειξης της χωρητικότητας της εφεδρικής πηγής ενέργειας 35 θα χρησιμοποιηθούν στη συνέχεια από το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης 40 για να προσδιοριστεί το υποσύνολο των εγγραφών που πρόκειται να χρησιμοποιηθούν για την αποθήκευση των στοιχείων επίμονων δεδομένων. Με τη γήρανση του συστήματος, η χωρητικότητα της εφεδρικής πηγής ενέργειας είναι πιθανό να ελαττώνεται, ενώ μια τέτοια διαδικασία εξασφαλίζει ότι κάθε φορά που επαναφορτώνεται το λειτουργικό σύστημα του συστήματος, ο βαθμός στον οποίο είναι δυνατή η χρήση της κρυφής μνήμης 20 για την αποθήκευση επίμονων δεδομένων επαναξιολογείται λαμβάνοντας υπόψη την τρέχουσα χωρητικότητα της εφεδρικής πηγής ενέργειας. The cache usage determination circuit 40 may be arranged to re-evaluate the subset of records to be used to store the persistent data items upon the occurrence of one or more trigger events. Trigger events can take a number of forms. For example, a trigger event may be the initiation of a system operating system loading process. At operating system load time, the capacity indication information of the backup power source 35 will then be used by the cache usage determination circuit 40 to determine the subset of records to be used to store the persistent data items. As the system ages, the capacity of the backup power source is likely to decrease, and such a process ensures that each time the system operating system is reloaded, the extent to which cache memory 20 can be used to store persistent data is re-evaluated taking into account the current capacity of the backup power source.

Αντίθετα ή επιπλέον, η παρέλευση ενός επιλεγμένου χρονικού διαστήματος μπορεί να χρησιμοποιείται για την ενεργοποίηση του συμβάντος διέγερσης, ώστε η επαναξιολόγηση να πραγματοποιείται από το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης σε περιοδικά διαστήματα, για παράδειγμα μετά την παρέλευση ενός ορισμένου χρονικού διαστήματος από την εκτέλεση του τελευταίου προσδιορισμού. Επιπλέον ή εναλλακτικά, το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης μπορεί να διεγείρεται από τη λήψη μιας ενημερωμένης ένδειξης χωρητικότητας από την εφεδρική πηγή ενέργειας 35, για την πραγματοποίηση της επαναξιολόγησης του υποσυνόλου εγγραφών που πρόκειται να χρησιμοποιηθούν για την αποθήκευση στοιχείων επίμονων δεδομένων. Alternatively or additionally, the elapse of a selected time interval may be used to trigger the trigger event so that reevaluation is performed by the cache usage determination circuitry at periodic intervals, for example after a certain amount of time has elapsed since the execution of last determination. In addition or alternatively, the cache usage determination circuitry may be triggered by receiving an updated capacity indication from the backup power source 35 to effect re-evaluation of the subset of records to be used to store persistent data items.

Σε μια υλοποίηση το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης 40 μπορεί να είναι ένα αποκλειστικό κύκλωμα που σχετίζεται με την κρυφή μνήμη 20 για την αξιολόγηση των πληροφοριών ένδειξης της χωρητικότητας και την εξαγωγή των κατάλληλων πληροφοριών ελέγχου χρήσης στην κρυφή μνήμη. Εναλλακτικά, το κύκλωμα 40 μπορεί να υλοποιείται από λογισμικό που εκτελείται στο κύκλωμα επεξεργασίας 10 για τον περιοδικό υπολογισμό των πληροφοριών ελέγχου χρήσης την εξαγωγή των πληροφοριών ελέγχου χρήσης στην κρυφή μνήμη 20. In one embodiment the cache usage determination circuit 40 may be a dedicated circuit associated with the cache memory 20 for evaluating the capacity indication information and deriving the appropriate cache usage control information. Alternatively, the circuit 40 may be implemented by software running in the processing circuit 10 to periodically calculate the usage control information to retrieve the usage control information in the cache 20.

Όταν η κρυφή μνήμη 20 λαμβάνει ένα αίτημα εκχώρησης δεδομένων σε μια από τις εγγραφές της κρυφής μνήμης (σε μια υλοποίηση, κάθε εγγραφή κρυφής μνήμης είναι μια γραμμή της κρυφής μνήμης), τότε υπάρχει ένας αριθμός τρόπων με τους οποίους η κρυφή μνήμη μπορεί να προσδιορίζει κατά πόσο τα δεδομένα που πρόκειται να εκχωρηθούν σε μια εγγραφή κρυφής μνήμης είναι επίμονα δεδομένα ή μη επίμονα δεδομένα. Σε μια υλοποίηση, το κύκλωμα επεξεργασίας 10 έχει πρόσβαση σε έναν ή περισσότερους πίνακες σελίδων 45 (οι οποίοι σε ένα παράδειγμα μπορούν να αποθηκεύονται στη μνήμη), με τους πίνακες σελίδων 45 να έχουν έναν αριθμό εγγραφών 50 για την αποθήκευση πληροφοριών μετάφρασης διευθύνσεων για τις συσχετισμένες σελίδες στη μνήμη, για παράδειγμα, για να είναι δυνατή η μετάφραση των εικονικών διευθύνσεων που καθορίζονται από το κύκλωμα επεξεργασίας σε φυσικές διευθύνσεις εντός του συστήματος μνήμης. Τέτοιες εγγραφές πινάκων σελίδων μπορεί επίσης να αποθηκεύουν συσχετισμένα χαρακτηριστικά των σελίδων στη μνήμη, ενώ σε μια υλοποίηση κάθε εγγραφή περιλαμβάνει ένα bit επιμονής το οποίο προσδιορίζει κατά πόσο τα δεδομένα που αποθηκεύονται εντός αυτής της σελίδας στη μνήμη είναι επίμονα δεδομένα ή μη επίμονα δεδομένα. Σε τέτοιες υλοποιήσεις, αυτές οι πληροφορίες που εξάγονται από τον πίνακα σελίδων μπορούν να προωθούνται σε συσχέτιση με κάθε αίτημα για να προσδιοριστεί κατά πόσο το αίτημα σχετίζεται με επίμονα δεδομένα ή μη επίμονα δεδομένα. Η κρυφή μνήμη 20 μπορεί στη συνέχεια να χρησιμοποιεί αυτές τις πληροφορίες που παρέχονται σε συσχέτιση με το αίτημα για να αποφασίζει κατά πόσο τα δεδομένα πρέπει να εκχωρηθούν στο υποσύνολο εγγραφών που έχουν δεσμευτεί για επίμονα δεδομένα ή όχι. When the cache 20 receives a request to allocate data to one of the cache entries (in one implementation, each cache entry is a cache line), then there are a number of ways in which the cache can determine by whether the data to be allocated in a cache entry is persistent data or non-persistent data. In one embodiment, the processing circuit 10 has access to one or more page tables 45 (which in one example may be stored in memory), with the page tables 45 having a number of entries 50 to store address translation information for the associated pages in memory, for example, to be able to translate the virtual addresses specified by the processing circuitry into physical addresses within the memory system. Such page table entries may also store associated attributes of the pages in memory, and in one embodiment each entry includes a persistence bit that identifies whether the data stored within that memory page is persistent data or non-persistent data. In such implementations, this information extracted from the page table may be forwarded in association with each request to determine whether the request relates to persistent data or non-persistent data. The cache 20 can then use this information provided in association with the request to decide whether or not the data should be allocated to the subset of records reserved for persistent data.

Οι πίνακες σελίδων μπορούν για παράδειγμα να διαχειρίζονται από το λειτουργικό σύστημα, με το διαχειριστή μνήμης του λειτουργικού συστήματος να γνωρίζει ποιες σελίδες αποθηκεύουν επίμονα δεδομένα. Εάν η κρυφή μνήμη σημείου επιμονής 20 διαχειρίζεται από το λειτουργικό σύστημα, το λειτουργικό σύστημα θα είχε πλήρη γνώση από το bit επιμονής 52 κατά πόσο τα δεδομένα που πρόκειται να εκχωρηθούν είναι επίμονα δεδομένα ή όχι. Εάν αντίθετα η κρυφή μνήμη σημείου επιμονής διαχειρίζεται από μια εφαρμογή χρήστη, η εφαρμογή χρήστη θα έχει πλήρη γνώση ποιες σελίδες εκχωρούνται ως επίμονες, όπως οι κρυφές μνήμες που διαχειρίζονται από εφαρμογές βάσεων δεδομένων. Εάν αντίθετα η κρυφή μνήμη σημείου επιμονής διαχειρίζεται από έναν ελεγκτή υλικού, τότε ο ελεγκτής κρυφής μνήμης θα διατάσσεται ώστε να ερμηνεύει τις πληροφορίες επιμονής που παρέχονται σε συσχέτιση με το αίτημα, περίπου με τον ίδιο τρόπο όπως ερμηνεύει τις πληροφορίες που προσδιορίζουν κατά πόσο τα δεδομένα μπορούν να αποθηκεύονται σε κρυφή μνήμη ή όχι. Page tables can for example be managed by the operating system, with the operating system's memory manager knowing which pages are persistently storing data. If the persistence point cache 20 is managed by the operating system, the operating system would have full knowledge from the persistence bit 52 whether the data to be allocated is persistent data or not. If instead the persistence point cache is managed by a user application, the user application will have full knowledge of which pages are allocated as persistent, just like caches managed by database applications. If, instead, the persistence point cache is managed by a hardware controller, then the cache controller will be directed to interpret the persistence information provided in association with the request in much the same way as it interprets the information that determines whether the data can to be cached or not.

Εφόσον ο αριθμός εγγραφών εντός της κρυφής μνήμης 20 που χρησιμοποιούνται για την αποθήκευση των επίμονων δεδομένων εξαναγκάζεται να λαμβάνει υπόψη τη χωρητικότητα της εφεδρικής πηγής ενέργειας, μόλις ένα αίτημα εγγραφής από το κύκλωμα επεξεργασίας 10 οδηγήσει στην εκχώρηση επίμονων δεδομένων εγγραφής από την κρυφή μνήμη 20 σε μια γραμμή κρυφής μνήμης, μπορεί σε αυτό το σημείο να εγγυηθεί ότι τα επίμονα δεδομένα θα διατηρηθούν με έναν επίμονο τρόπο, μολονότι δεν έχουν εγγραφεί ακόμη ετερόχρονα στη μη πτητική μνήμη και ανάλογα η βεβαίωση λήψης που εκδίδεται από την κρυφή μνήμη 20 μπορεί να επαληθεύει την επιμονή αυτών των δεδομένων. Ανάλογα, η κρυφή μνήμη 20 μπορεί να προβάλλεται ως ένα σημείο επιμονής εντός του συστήματος, εφόσον τα ρυπαρά επίμονα δεδομένα που διατηρούνται σε αυτή μπορεί να εγγυάται ότι θα εγγραφούν ετερόχρονα στη μη πτητική μνήμη 25 σε περίπτωση μιας διακοπής της τροφοδοσίας του συστήματος, μέσω της χρήσης της εφεδρικής πηγής ενέργειας 35. Since the number of writes within the cache memory 20 used to store the persistent data is forced to take into account the capacity of the backup power source, once a write request from the processing circuit 10 results in the allocation of persistent write data from the cache memory 20 to a cache line, can at this point guarantee that the persistent data will be retained in a persistent manner, even though it has not yet been retroactively written to the non-volatile memory, and accordingly the acknowledgment issued by the cache 20 can verify its persistence of the data. Accordingly, cache memory 20 can be viewed as a persistence point within the system, since dirty persistent data held therein can be guaranteed to be retroactively written to non-volatile memory 25 in the event of a system power outage, through the use of the backup power source 35.

Όπως αναφέρθηκε νωρίτερα, μπορεί να υπάρχουν ένα ή περισσότερα επίπεδα παρέμβασης της κρυφής μνήμης 15 μεταξύ της κρυφής μνήμης σημείου επιμονής 20 και του κυκλώματος επεξεργασίας 10. Μολονότι αυτά τα επίπεδα παρέμβασης της κρυφής μνήμης μπορούν να λειτουργούν με τρόπο ταυτόχρονης εγγραφής ή ετερόχρονης εγγραφής, σε μια συγκεκριμένη υλοποίηση όταν ένα αίτημα εξάγεται από το κύκλωμα επεξεργασίας και προσδιορίζει τα επίμονα δεδομένα που πρόκειται να εγγραφούν στη μνήμη, ο προσδιορισμός αυτών των δεδομένων εγγραφής ως επίμονα δεδομένα μπορεί να διευθετείται ώστε να προκαλεί τη λειτουργία αυτών των επιπέδων παρέμβασης της κρυφής μνήμης με τρόπο ταυτόχρονης εγγραφής, με τρόπο ώστε ανεξάρτητα εάν αυτό το ένα ή τα περισσότερα επίπεδα κρυφής μνήμης πράγματι αποθηκεύουν στην κρυφή μνήμη τα δεδομένα, αυτά τα δεδομένα μεταδίδονται χωρίς καθυστέρηση στην κρυφή μνήμη σημείου επιμονής 20, όπου μπορούν στη συνέχεια να εκχωρούνται σε μια γραμμή κρυφής μνήμης, στο οποίο σημείο μπορεί να εγγυάται η επιμονή. As mentioned earlier, there may be one or more cache intervening layers 15 between persistence point cache 20 and processing circuitry 10. Although these cache intervening layers can operate in write-concurrent or write-over fashion, in a particular embodiment when a request is issued by the processing circuitry and identifies the persistent data to be written to memory, the identification of that write data as persistent data may be arranged to cause these cache intervention levels to operate in a concurrent write mode , such that regardless of whether this one or more cache levels actually caches the data, that data is transmitted without delay to the persistence point cache 20, where it can then be allocated to a cache line, in which point can be guaranteed by the ed oni.

Θα εκτιμηθεί ότι σε περαιτέρω υλοποιήσεις ένα ή περισσότερα από τα άλλα επίπεδα κρυφής μνήμης 15 μπορούν επίσης να έχουν πρόσβαση στην εφεδρική πηγή ενέργειας 35 σε περίπτωση διακοπής της τροφοδοσίας, ενώ σε αυτή την περίπτωση οποιαδήποτε από αυτές τις πρόσθετες κρυφές μνήμες θα μπορούσαν, εάν είναι επιθυμητό, να διευθετούνται ως μια κρυφή μνήμη σημείου επιμονής. Το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης 40 θα μπορούσε στη συνέχεια να προσδιορίζει τον αριθμό εγγραφών τις οποίες κάθε κρυφή μνήμη σημείου επιμονής θα μπορούσαν να χρησιμοποιούν για την αποθήκευση επίμονων δεδομένων ώστε ο συνολικός αριθμός εγγραφών που επιτρέπεται να χρησιμοποιούνται συλλογικά από τις κρυφές μνήμες πολλαπλών σημείων επιμονής να επιλέγεται ώστε να λαμβάνει υπόψη τη συνολική χωρητικότητα της εφεδρικής πηγής ενέργειας 35. Για παράδειγμα, σε μια υλοποίηση κάθε κρυφή μνήμη δεδομένων επιπέδου 1 μπορεί να διαθέτει μια προσωρινή μνήμη εγγραφής επίμονων δεδομένων η οποία εγγυάται ότι θα αδειάζει όλες τις εγγραφές της στη μη πτητική μνήμη σε περίπτωση διακοπής ρεύματος. It will be appreciated that in further implementations one or more of the other cache levels 15 may also access the backup power source 35 in the event of a power failure, in which case any of these additional caches could, if desired , be arranged as a persistence point cache. Cache usage determination circuitry 40 could then determine the number of entries that each persistence point cache could use to store persistent data such that the total number of entries allowed to be used collectively by the multiple persistence point caches be chosen to take into account the total capacity of the backup power source 35. For example, in one embodiment each level 1 data cache may have a persistent data write cache which is guaranteed to flush all of its writes to non-volatile memory in case of power failure.

Εξαναγκάζοντας τον τρόπο χρήσης της κρυφής μνήμης σημείου επιμονής 20 και συγκεκριμένα το βαθμό στον οποίο είναι δυνατή η χρήση των γραμμών κρυφής μνήμης της για την αποθήκευση των στοιχείων επίμονων δεδομένων λαμβάνοντας υπόψη τη χωρητικότητα της εφεδρικής πηγής ενέργειας, αυτό μπορεί να έχει ως αποτέλεσμα έναν αριθμό πλεονεκτημάτων. Πρώτα, το μέγεθος της κρυφής μνήμης 20 μπορεί να γίνεται σημαντικά μεγαλύτερο σε σχέση με το μέγεθος που θα ήταν δυνατό όταν δεν τίθενται περιορισμοί στην αποθήκευση των επίμονων δεδομένων εντός αυτής της κρυφής μνήμης, εφόσον χωρίς τους περιορισμούς που τίθενται στην κρυφή μνήμη 20 μέσω του κυκλώματος προσδιορισμού χρήσης της κρυφής μνήμης 40, θα έπρεπε να υποτεθεί ότι όλες οι εγγραφές μπορεί να αποθηκεύουν επίμονα δεδομένα και ανάλογα το μέγεθος της κρυφής μνήμης θα περιοριζόταν από τη χωρητικότητα της εφεδρικής πηγής ενέργειας. Ωστόσο, μέσω της χρήσης της τεχνικής που περιγράφηκε παραπάνω, το συνολικό μέγεθος της κρυφής μνήμης δεν περιορίζεται με αυτό τον τρόπο και ανάλογα μπορεί να παρέχεται μια πολύ μεγαλύτερη κρυφή μνήμη. Αντίθετα, η τεχνική που περιγράφηκε παραπάνω παρέχει περιορισμένο από τη χωρητικότητα σημείο επιμονής, εξασφαλίζοντας ότι τα ρυπαρά στοιχεία επίμονων δεδομένων που αποθηκεύονται εντός της κρυφής μνήμης περιορίζονται σε ένα υποσύνολο των γραμμών κρυφής μνήμης, όπου αυτό το υποσύνολο προσδιορίζεται όσον αφορά στην τρέχουσα χωρητικότητα της εφεδρικής πηγής ενέργειας. By constraining how the persistence point cache 20 is used, and in particular the extent to which its cache lines can be used to store the persistent data items while taking into account the capacity of the backup power source, this can result in a number of advantages . First, the size of the cache memory 20 can become significantly larger than the size that would be possible when no restrictions are placed on the storage of persistent data within that cache, since without the restrictions placed on the cache memory 20 by the circuit cache usage determination 40, it should be assumed that all writes may store persistent data and accordingly the size of the cache would be limited by the capacity of the backup power source. However, by using the technique described above, the total cache size is not limited in this way and a much larger cache can be provided accordingly. Instead, the technique described above provides a capacity-limited persistence point, ensuring that dirty persistent data items stored within the cache are limited to a subset of the cache lines, where that subset is defined in terms of the current capacity of the backup source energy.

Επιτρέποντας την αύξηση του μεγέθους της κρυφής μνήμης 20, αυτό μπορεί να βοηθήσει στην επίτευξη διαφόρων πλεονεκτημάτων όσον αφορά στην απόδοση, για παράδειγμα με την αποθήκευση δεδομένων ανάγνωσης σε κρυφή μνήμη για εφαρμογές εντός της μνήμης και/ή με τη δυνατότητα συγχώνευσης των μη επίμονων δεδομένων εγγραφής με σκοπό τη διευκόλυνση της φθοράς της μη πτητικής μνήμης ελαττώνοντας το συνολικό αριθμό χειρισμών εγγραφής που πραγματοποιούνται στη μη πτητική μνήμη. Αυτά τα πλεονεκτήματα μπορούν να επιτυγχάνονται, διατηρώντας ταυτόχρονα την επιμονή για τα επίμονα δεδομένα που διατηρούνται εντός της κρυφής μνήμης. By allowing the size of the cache 20 to be increased, this can help achieve various performance benefits, for example by caching read data for in-memory applications and/or by being able to merge non-persistent write data in order to ease the wear of the non-volatile memory by reducing the total number of write operations performed on the non-volatile memory. These advantages can be achieved while maintaining persistence for persistent data held within the cache.

Ως ένα ακόμη πλεονέκτημα, η εφεδρική πηγή ενέργειας μπορεί να γίνεται μικρότερη για ένα δεδομένο μέγεθος κρυφής μνήμης. Αυτό μπορεί να είναι χρήσιμο εφόσον τέτοιες μονάδες αποθήκευσης ενέργειας είναι συνήθως αρκετά ογκώδεις, ενώ ο ρυθμός βελτίωσης της πυκνότητας τέτοιων μονάδων αποθήκευσης ενέργειας συνήθως υπολείπεται του αντίστοιχου ρυθμού της κρυφής μνήμης (η οποία συχνά κατασκευάζεται με τη χρήση τεχνολογίας DRAM). As a further advantage, the backup power source can become smaller for a given cache size. This can be useful since such energy storage units are usually quite bulky, while the rate of improvement of the density of such energy storage units usually falls short of the corresponding rate of cache memory (which is often constructed using DRAM technology).

Σε μια υλοποίηση, όταν η εφεδρική πηγή ενέργειας διεγείρεται μετά από μια διακοπή ρεύματος, το κύκλωμα ετερόχρονης εγγραφής εντός της κρυφής μνήμης 20 θα εξασφαλίζει ότι οποιαδήποτε ρυπαρά επίμονα δεδομένα θα εγγράφονται ετερόχρονα στη μη πτητική μνήμη. Ωστόσο, σε μια υλοποίηση δε θα πραγματοποιηθεί κάποια ετερόχρονη εγγραφή όσον αφορά στα ρυπαρά μη επίμονα δεδομένα, ενώ αντίθετα σε αυτές τις περιπτώσεις θα επιτρέπεται η απώλεια των μη επίμονων δεδομένων. Αυτό ελαττώνει το συνολικό αριθμό των χειρισμών ετερόχρονων εγγραφών που απαιτούνται σε περίπτωση διακοπής ρεύματος, εφόσον τα πτητικά δεδομένα δε χρειάζεται να είναι επίμονα από την κρυφή μνήμη στη μη πτητική μνήμη. Αυτό έχει ως αποτέλεσμα την απαίτηση λιγότερης ενέργειας από την εφεδρική πηγή ενέργειας 35 και μικρότερη φθορά της μη πτητικής μνήμης, παρέχοντας ταυτόχρονα ταχύτερους χειρισμούς λήψης και αποκατάστασης αντιγράφων ασφαλείας. In one embodiment, when the backup power source is energized after a power failure, the asynchronous write circuit within the cache memory 20 will ensure that any dirty persistent data will be asynchronously written to the non-volatile memory. However, in one embodiment no post-write will be performed with respect to dirty non-persistent data, and instead the loss of the non-persistent data will be allowed in such cases. This reduces the total number of asynchronous write operations required in the event of a power outage, since volatile data does not need to be persisted from cache to non-volatile memory. This results in requiring less power from the backup power source 35 and less wear on the non-volatile memory, while providing faster backup and restore operations.

Περαιτέρω, μια τέτοια προσέγγιση μπορεί να βοηθά στην ασφάλεια των δεδομένων, εφόσον είναι δυνατόν οποιαδήποτε δεδομένα διατηρούνται στη μη πτητική μνήμη 25 τα οποία συσχετίζονται με πτητικές σελίδες να χρειάζεται να διαγραφούν ή τουλάχιστον να προστατευθούν από ανάγνωση, μετά από μια απενεργοποίηση της συσκευής ή μετά τη σύνδεση της μονάδας μη πτητικής μνήμης σε ένα άλλο μηχάνημα, ενώ η παραπάνω προσέγγιση όσον αφορά στην κρυφή μνήμη 20 θα ελαττώσει την ποσότητα των μη επίμονων δεδομένων τα οποία αλλιώς θα έπρεπε να υποβληθούν σε χειρισμούς καθαρισμού εντός της μη πτητικής μνήμης 25 σε τέτοιες περιπτώσεις. Further, such an approach may help with data security, since it is possible that any data held in the non-volatile memory 25 associated with volatile pages may need to be deleted, or at least read-protected, after a device shutdown or connecting the non-volatile memory unit to another machine, while the above approach with respect to cache memory 20 will reduce the amount of non-persistent data that would otherwise have to undergo cleanup operations within non-volatile memory 25 in such cases.

Το Σχήμα 2 είναι ένα διάγραμμα βαθμιδών το οποίο απεικονίζει περισσότερες λεπτομέρειες των εξαρτημάτων που παρέχονται εντός της κρυφής μνήμης σημείου επιμονής 20 του Σχήματος 1 σύμφωνα με μια υλοποίηση. Παρέχονται κρυφές μνήμες RAM 100, οι οποίες σε μια υλοποίηση μπορεί να διατάσσονται με ένα συσχετιστικό ως προς ένα σύνολο τρόπο Ν-κατευθύνσεων, όπως θα γίνει καλά κατανοητό από τα έμπειρα άτομα στην τέχνη. Σε συσχέτιση με κάθε γραμμή κρυφής μνήμης σε μια RAM δεδομένων, μπορεί να παρέχεται μια αντίστοιχη εγγραφή σε μια RAM ετικετών για τον προσδιορισμό ορισμένων πληροφοριών διευθύνσεων για τα δεδομένα που τηρούνται στην αντίστοιχη γραμμή κρυφής μνήμης, μαζί με ορισμένες πληροφορίες ελέγχου, για παράδειγμα για να προσδιοριστεί κατά πόσο το περιεχόμενο της γραμμής κρυφής μνήμης είναι έγκυρο, κατά πόσο είναι ρυπαρό, κλπ. Figure 2 is a block diagram illustrating more details of the components provided within the persistence point cache 20 of Figure 1 in accordance with one embodiment. RAM caches 100 are provided, which in one embodiment may be arranged in an associative to a set of N-directions manner, as will be well understood by those skilled in the art. In association with each cache line in a data RAM, a corresponding record in a tag RAM may be provided to specify certain address information for the data held in the corresponding cache line, together with certain control information, for example to determine whether the contents of the cache line are valid, whether they are dirty, etc.

Το κύκλωμα ελέγχου κρυφής μνήμης 105 χρησιμοποιείται για τον έλεγχο της πρόσβασης στις RAM της κρυφής μνήμης 100 και μπορεί να θεωρείται ότι περιλαμβάνει ένα κύκλωμα εκχώρησης 120 για την εκχώρηση των δεδομένων που λαμβάνονται σε σχέση με ένα αίτημα εγγραφής, ώστε αυτά τα δεδομένα να αποθηκεύονται σε μια από τις γραμμές της κρυφής μνήμης. Για ένα αίτημα ανάγνωσης, το κύκλωμα αναζήτησης (δε δείχνεται ξεχωριστά εντός του κυκλώματος ελέγχου της κρυφής μνήμης 105) μπορεί να χρησιμοποιείται για να εκτελεί μια λειτουργία αναζήτησης στις RAM της κρυφής μνήμης ώστε να προσδιορίζει κατά πόσο τα αιτηθέντα δεδομένα είναι παρόντα εντός της κρυφής μνήμης ή όχι και εάν είναι, τα αιτηθέντα δεδομένα μπορούν να επιστρέφονται στην πηγή του αιτήματος. Ωστόσο, σε περίπτωση μιας αστοχίας κρυφής μνήμης, το αίτημα μπορεί να προωθείται στο σύστημα μνήμης ώστε να ανακτά τα δεδομένα από τη μνήμη, για επιστροφή στην πηγή του αιτήματος (για παράδειγμα το κύκλωμα επεξεργασίας 10). Τέτοια δεδομένα που ανακτώνται από τη μνήμη σε περίπτωση αστοχίας κρυφής μνήμης μπορεί σε μια υλοποίηση να εκχωρούνται και στις RAM της κρυφής μνήμης 100 καθώς επιστρέφονται στο κύκλωμα επεξεργασίας 10, ώστε αυτά τα δεδομένα να έχουν στη συνέχεια ως αποτέλεσμα μια ευστοχία κρυφής μνήμης όταν πραγματοποιείται μια επακόλουθη πρόσβαση. The cache control circuit 105 is used to control access to the RAMs of the cache memory 100 and may be considered to include an allocation circuit 120 for allocating the data received in connection with a write request so that this data is stored in a from cache lines. For a read request, the lookup circuit (not shown separately within the cache control circuit 105) may be used to perform a lookup operation on the cache RAMs to determine whether the requested data is present in the cache or no and if it is, the requested data can be returned to the source of the request. However, in the event of a cache miss, the request may be forwarded to the memory system to retrieve the data from memory, for return to the source of the request (for example processing circuit 10). Such data retrieved from memory upon a cache miss may in one embodiment also be allocated to the cache RAMs 100 as it is returned to the processing circuitry 10 so that this data then results in a cache miss when a subsequent cache miss occurs. access.

Παρέχεται επίσης ένα κύκλωμα έξωσης 130, το οποίο σε μια υλοποίηση μπορεί να θεωρείται ότι περιλαμβάνει ένα κύκλωμα ελέγχου ετερόχρονης εγγραφής για την ετερόχρονη εγγραφή των στοιχείων δεδομένων από την κρυφή μνήμη στο σύστημα μνήμης με την εμφάνιση ορισμένων συμβάντων. Αυτά τα συμβάντα μπορεί να περιλαμβάνουν γενικούς χειρισμούς συντήρησης κρυφής μνήμης οι οποίοι προκαλούν την έξωση των παλαιότερων δεδομένων από τις RAM της κρυφής μνήμης ώστε να απελευθερώνεται χώρος ή μπορεί να περιλαμβάνουν συγκεκριμένους χειρισμούς έξωσης οι οποίοι εκκινούνται από το κύκλωμα εκχώρησης, όταν το κύκλωμα εκχώρησης διαπιστώσει ότι τα τρέχοντα περιεχόμενα μιας γραμμής κρυφής μνήμης πρέπει να εξαχθούν προκειμένου να δημιουργηθεί χώρος για νέα δεδομένα που πρόκειται να εκχωρηθούν σε αυτή τη γραμμή κρυφής μνήμης. Περαιτέρω, όταν μια διακοπή ρεύματος προκαλεί την εφαρμογή της εφεδρικής πηγής ενέργειας 35, το κύκλωμα έξωσης 130 χρησιμοποιείται στη συνέχεια για να προσδιορίσει τις γραμμές κρυφής μνήμης που αποθηκεύουν στοιχεία επίμονων δεδομένων, ενώ οποιαδήποτε έγκυρα και ρυπαρά επίμονα δεδομένα εντός των γραμμών κρυφής μνήμης που προσδιορίστηκαν θα εξαχθούν και πάλι στη μη πτητική μνήμη 25. Also provided is an eviction circuit 130, which in one embodiment may be considered to include a write-back control circuit for writing the data items from the cache to the memory system back-to-back upon the occurrence of certain events. These events may include general cache maintenance operations that cause older data to be evicted from cache RAMs to free up space, or they may include specific eviction operations that are initiated by the allocation circuit when the allocation circuit determines that the current contents of a cache line must be flushed out in order to make room for new data to be allocated to that cache line. Further, when a power failure causes backup power source 35 to be applied, the eviction circuit 130 is then used to identify the cache lines that store persistent data elements, and any valid and dirty persistent data within the identified cache lines will be exported back to non-volatile memory 25.

Όπως δείχνεται στο Σχήμα 2, σε μια υλοποίηση το κύκλωμα ελέγχου κρυφής μνήμης 105 μπορεί να ενσωματώνει ένα κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης 110, το οποίο υλοποιεί τη λειτουργία του κυκλώματος προσδιορισμού χρήσης της κρυφής μνήμης 40 που δείχνεται στο Σχήμα 1, και συνεπώς σε απόκριση ενός συμβάντος διέγερσης χρησιμοποιεί μια τρέχουσα ένδειξη χωρητικότητας από την εφεδρική πηγή ενέργειας για τον προσδιορισμό του μέγιστου βαθμού στον οποίο θα πρέπει να χρησιμοποιείται η κρυφή μνήμη για την αποθήκευση στοιχείων επίμονων δεδομένων και στη συνέχεια την εξαγωγή των πληροφοριών ελέγχου χρήσης οι οποίες παρέχουν μια ένδειξη του υποσυνόλου των εγγραφών προς χρήση για την αποθήκευση επίμονων δεδομένων. Σε μια υλοποίηση, αυτές οι πληροφορίες ελέγχου χρήσης αποθηκεύονται εντός του χώρου αποθήκευσης ελέγχου 115, στον οποίο είναι δυνατή η πρόσβαση στη συνέχεια τόσο από το κύκλωμα εκχώρησης 120 όσο και από το κύκλωμα έξωσης 130. As shown in Figure 2, in one embodiment the cache control circuit 105 may incorporate a cache usage determination circuit 110, which implements the operation of the cache usage determination circuit 40 shown in Figure 1, and thus in response of a trigger event uses a current capacity indication from the backup power source to determine the maximum extent to which the cache should be used to store persistent data items and then derives usage control information which provides an indication of the subset of records to use to store persistent data. In one embodiment, this usage control information is stored within control storage 115 , which is then accessible by both allocation circuitry 120 and eviction circuitry 130 .

Όταν το κύκλωμα εκχώρησης 120 προσδιορίσει ότι λήφθηκε ένα αίτημα εγγραφής το οποίο απαιτεί την εκχώρηση επίμονων δεδομένων εγγραφής σε μια γραμμή κρυφής μνήμης στις RAM της κρυφής μνήμης 100, το κύκλωμα ελέγχου 125 (το οποίο μπορεί να θεωρείται ότι αποτελεί τμήμα του κυκλώματος εκχώρησης 120) διατάσσεται ώστε να ανατρέχει στο χώρο αποθήκευσης ελέγχου 115 (και πιθανόν σε άλλες σχετικές πληροφορίες όπως οι πληροφορίες απαριθμητή οι οποίες θα περιγραφούν αργότερα αναφορικά με τα Σχήματα 6Α και 7) και να προσδιορίζει κατά πόσο υπάρχει εκείνη τη στιγμή διαθεσιμότητα για την αποθήκευση μιας άλλης γραμμής κρυφής μνήμης από επίμονα δεδομένα εντός της κρυφής μνήμης, λαμβάνοντας υπόψη τους περιορισμούς που υποδηλώνονται από τις πληροφορίες ελέγχου χρήσης. Σε αυτή την περίπτωση, τότε το κύκλωμα εκχώρησης 120 μπορεί απλά να συνεχίζει στην εκχώρηση μιας διαθέσιμης γραμμής κρυφής μνήμης για την αποθήκευση αυτών των νέων επίμονων δεδομένων. Ωστόσο, διαφορετικά, το κύκλωμα εκχώρησης μπορεί να αποστέλλει ένα σήμα στο κύκλωμα έξωσης 130 το οποίο προκαλεί την έξωση τουλάχιστον μιας γραμμής κρυφής μνήμης η οποία εκείνη τη στιγμή αποθηκεύει επίμονα δεδομένα. When the allocation circuit 120 determines that a write request has been received which requires the allocation of persistent write data to a cache line in the cache RAMs 100, the control circuit 125 (which may be considered to be part of the allocation circuit 120) is ordered to refer to control storage 115 (and possibly other relevant information such as counter information which will be described later with respect to Figures 6A and 7) and determine whether there is currently availability to store another cache line from persistent data within the cache, taking into account the constraints implied by the usage control information. In this case, then the allocation circuit 120 can simply continue to allocate an available cache line to store this new persistent data. However, alternatively, the allocation circuit may send a signal to the eviction circuit 130 which causes at least one cache line which is currently storing persistent data to be evicted.

Μολονότι εάν τα περιεχόμενα μιας γραμμής κρυφής μνήμης είναι τόσο έγκυρα όσο και ρυπαρά, η διαδικασία έξωσης που πραγματοποιείται από το κύκλωμα έξωσης θα απαιτεί την εξαγωγή των περιεχομένων της γραμμής κρυφής μνήμης στη μη πτητική μνήμη, εάν μια γραμμή κρυφής μνήμης που προσδιορίστηκε έχει περιεχόμενα τα οποία δεν είναι ρυπαρά, το κύκλωμα έξωσης μπορεί απλά να πρέπει να ακυρώσει τα περιεχόμενα της γραμμής κρυφής μνήμης και δε θα απαιτηθεί η εξαγωγή οποιωνδήποτε δεδομένων στη μη πτητική μνήμη. Although if the contents of a cache line are both valid and dirty, the eviction process performed by the eviction circuit will require the contents of the cache line to be popped into nonvolatile memory if a specified cache line has contents that are not dirty, the eviction circuit may simply need to invalidate the contents of the cache line, and it will not be required to evict any data into non-volatile memory.

Μολονότι σε μια υλοποίηση η κρυφή μνήμη σημείου επιμονής 20 μπορεί να είναι εντελώς ξεχωριστή από το σύστημα μνήμης, όπως δείχνεται στο Σχήμα 3 σε μια εναλλακτική υλοποίηση η κρυφή μνήμη σημείου επιμονής μπορεί στην πράξη να παρέχεται από μια μονάδα μνήμης εντός ενός συνόλου μονάδων μνήμης που ελέγχονται από ένα σχετικό ελεγκτή μνήμης. Συγκεκριμένα, μπορεί να παρέχεται ένα σύνολο μονάδων μνήμης 160, το οποίο σε μια υλοποίηση περιλαμβάνει ένα πλήθος βυσματωτών μονάδων μνήμης, όπως οι διπλές μονάδες μνήμης εντός γραμμής (dual inline memory modules ή DIMM). Οι ανεξάρτητες DIMM 165, 170 μπορεί να περιλαμβάνουν μη πτητική μνήμη και πράγματι πτητική μνήμη όπως η προαιρετική πτητική μνήμη 30 που δείχνεται στο Σχήμα 1. Επιπλέον, μια από τις DIMM 165 μπορεί να περιλαμβάνει μια κρυφή μνήμη ΡοΡ, για παράδειγμα μια κρυφή μνήμη DRAM. Κάθε μια από τις DIMM 165, 170 μπορεί να ελέγχεται από έναν ελεγκτή μνήμης 150, ενώ σε περιπτώσεις στις οποίες μια από τις DIMM περιλαμβάνει την κρυφή μνήμη ΡοΡ, ο ελεγκτής μνήμης μπορεί να περιλαμβάνει το χειρισμό ενός κυκλώματος ελέγχου κρυφής μνήμης που εξετάστηκε νωρίτερα αναφορικά με το Σχήμα 2. Σε μια τέτοια διάταξη, τόσο ο ελεγκτής μνήμης 150 όσο και οι διάφορες μονάδες μνήμης 160 θα έχουν πρόσβαση στην εφεδρική πηγή ενέργειας 35, ώστε σε περίπτωση μιας διακοπής της κύριας πηγής τροφοδοσίας, τα επίμονα δεδομένα από την κρυφή μνήμη ΡοΡ εντός της DIMM 165 μπορούν να εγγράφονται ετεροχρονισμένα στη μη πτητική μνήμη εντός της DIMM 170. Although in one embodiment the persistence point cache 20 may be completely separate from the memory system, as shown in Figure 3 in an alternative embodiment the persistence point cache may actually be provided by a memory unit within a set of memory units controlled from an associated memory controller. In particular, a set of memory modules 160 may be provided, which in one embodiment includes a plurality of plug-in memory modules, such as dual inline memory modules (DIMMs). The independent DIMMs 165, 170 may include non-volatile memory and indeed volatile memory such as the optional volatile memory 30 shown in Figure 1. In addition, one of the DIMMs 165 may include a PoP cache, for example a DRAM cache. Each of the DIMMs 165, 170 may be controlled by a memory controller 150, and in cases where one of the DIMMs includes PoP cache, the memory controller may include operation of a cache control circuit discussed earlier with respect to Figure 2. In such an arrangement, both the memory controller 150 and the various memory modules 160 will have access to the backup power source 35 so that in the event of an interruption of the main power source, the persistent data from the PoP cache within the DIMMs 165 can be written retroactively to non-volatile memory within DIMM 170.

Το Σχήμα 4 είναι ένα διάγραμμα ροής το οποίο απεικονίζει τα βήματα που πραγματοποιούνται από το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης 40, 110 σύμφωνα με μια υλοποίηση. Στο βήμα 200, προσδιορίζεται κατά πόσο έχει ληφθεί ένα συμβάν διέγερσης από το κύκλωμα προσδιορισμού χρήσης κρυφής μνήμης, και σε αυτή την περίπτωση τότε στο βήμα 205 το κύκλωμα προσδιορισμού χρήσης κρυφής μνήμης επαναξιολογεί τη χωρητικότητα της εφεδρικής πηγής ενέργειας με βάση τις πιο πρόσφατες πληροφορίες ένδειξης χωρητικότητας. Στη συνέχεια, στο βήμα 210 το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης προσδιορίζει το μέγιστο αριθμό γραμμών κρυφής μνήμης που μπορούν να εξαχθούν στη μη πτητική μνήμη μετά από μια μεταγωγή στην εφεδρική πηγή ενέργειας και ορίζει ανάλογα τις πληροφορίες ελέγχου χρήσης. Όπως εξετάστηκε νωρίτερα, αυτές οι πληροφορίες ελέγχου χρήσης μπορεί να προσδιορίζουν απευθείας τις πραγματικές γραμμές κρυφής μνήμης οι οποίες πρόκειται να χρησιμοποιηθούν για την αποθήκευση επίμονων δεδομένων ή μπορεί να προσδιορίζουν ένα μέγιστο αριθμό εγγραφών που μπορεί να χρησιμοποιούνται για την αποθήκευση επίμονων δεδομένων, επιτρέποντας όμως στην κρυφή μνήμη να παρακολουθεί ποιες εγγραφές χρησιμοποιούνται στην πράξη για αυτό το σκοπό. Σε μια υλοποίηση, ο μέγιστος αριθμός εγγραφών που προσδιορίστηκε στο βήμα 210 μπορεί να επιλέγεται ώστε να λαμβάνει υπόψη μια αναμενόμενη μείωση της χωρητικότητας της εφεδρικής πηγής ενέργειας κατά το διάστημα πριν το επόμενο αναμενόμενο συμβάν διέγερσης. Figure 4 is a flow diagram illustrating the steps performed by the cache usage determination circuitry 40, 110 in accordance with one embodiment. In step 200, it is determined whether a trigger event has been received by the cache usage determination circuitry, and if so then in step 205 the cache usage determination circuitry re-evaluates the capacity of the backup power source based on the latest capacity indication information . Next, in step 210 the cache usage determination circuitry determines the maximum number of cache lines that can be fetched to the non-volatile memory after a switch to the backup power source and sets the usage control information accordingly. As discussed earlier, this usage control information may directly specify the actual cache lines that are to be used to store persistent data, or may specify a maximum number of records that may be used to store persistent data, but allow the cache to memory to keep track of which records are actually used for this purpose. In one embodiment, the maximum number of entries determined in step 210 may be selected to account for an expected decrease in the capacity of the backup power source during the time before the next expected excitation event.

Το Σχήμα 5A απεικονίζει σχηματικά μια μορφή πληροφοριών ελέγχου χρήσης οι οποίες μπορούν να εξάγονται από το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης. Σε αυτή την υλοποίηση, οι πληροφορίες ελέγχου χρήσης παίρνουν τη μορφή μιας ένδειξης συνοριακής διεύθυνσης 250 (ή ένδειξη κατωφλιού) η οποία προσδιορίζει ένα διαχωρισμό μεταξύ μιας επίμονης περιοχής 260 και μιας μη επίμονης περιοχής 270. Συνεπώς, σε αυτή τη διάταξη, ο χώρος αποθήκευσης της κρυφής μνήμης θεωρείται λογικά ότι περιλαμβάνει μια επίμονη περιοχή και μια μη επίμονη περιοχή. Θα εκτιμηθεί ωστόσο ότι το Σχήμα 5Α δείχνει μόνο μια λογική όψη της κρυφής μνήμης, ενώ στην πράξη οι πραγματικές γραμμές κρυφής μνήμης που περιλαμβάνονται στην επίμονη περιοχή 260 και οι γραμμές κρυφής μνήμης που περιλαμβάνονται στη μη επίμονη περιοχή 270 μπορεί να είναι διάσπαρτες εντός της δομής του χώρου αποθήκευσης κρυφής μνήμης. Για παράδειγμα, οι διάφορες γραμμές κρυφής μνήμης που αποτελούν την επίμονη περιοχή 260 μπορεί να αποτελούν μια ακολουθία συνεχόμενων γραμμών κρυφής μνήμης, ένα πλήθος μη συνεχόμενων γραμμών κρυφής μνήμης και/ή μια ακολουθία γραμμών κρυφής μνήμης σε παρεμβολή με γραμμές κρυφής μνήμης από τη μη επίμονη περιοχή. Figure 5A schematically illustrates one form of usage control information that can be derived from the cache usage determination circuit. In this embodiment, the usage control information takes the form of a boundary address indication 250 (or threshold indication) which identifies a separation between a persistent area 260 and a non-persistent area 270. Accordingly, in this arrangement, the storage area of cache is logically considered to include a persistent region and a non-persistent region. It will be appreciated, however, that Figure 5A only shows a logical view of the cache, while in practice the actual cache lines included in the persistent area 260 and cache lines included in the non-persistent area 270 may be scattered within the structure of cache storage space. For example, the various cache lines that make up the persistent region 260 may be a sequence of contiguous cache lines, a plurality of non-contiguous cache lines, and/or a sequence of cache lines interleaved with cache lines from the non-persistent region .

Όπως αναφέρθηκε νωρίτερα, τα δεδομένα που αποθηκεύονται σε κάθε γραμμή κρυφής μνήμης θα έχουν μια συσχετισμένη διεύθυνση μνήμης, ενώ σε μια υλοποίηση η ανάλυση τουλάχιστον ενός τμήματος αυτής της διεύθυνσης μνήμης μπορεί να χρησιμοποιείται για να προσδιοριστεί, αναφορικά με τη συνοριακή διεύθυνση/διεύθυνση κατωφλιού, κατά πόσο αυτή η γραμμή κρυφής μνήμης θεωρείται ότι βρίσκεται εντός της επίμονης περιοχής ή της μη επίμονης περιοχής. Όπως θα εκτιμηθεί από τα έμπειρα άτομα στην τέχνη, σε ορισμένες δομές κρυφής μνήμης, όπως τις συσχετιστικές ως προς ένα σύνολο κρυφές μνήμες Ν-κατευθύνσεων, μόνο οι εγγραφές εντός ενός συγκεκριμένου συνόλου μπορούν να χρησιμοποιούνται για την αποθήκευση δεδομένων από μια συγκεκριμένη περιοχή διευθύνσεων μνήμης και ανάλογα μπορεί οι γραμμές κρυφής μνήμης που διαμορφώνουν την επίμονη περιοχή να κατανέμονται ανάμεσα σε έναν αριθμό συνόλων εντός της δομής κρυφής μνήμης. As mentioned earlier, the data stored in each cache line will have an associated memory address, and in one embodiment the resolution of at least a portion of that memory address can be used to determine, with respect to the boundary address/threshold address, by how much this cache line is considered to be within the persistent area or non-persistent area. As will be appreciated by those skilled in the art, in some cache structures, such as set-associative N-address caches, only entries within a particular set may be used to store data from a particular range of memory addresses and accordingly the cache lines that make up the persistent region may be distributed among a number of sets within the cache structure.

Σε μια εναλλακτική υλοποίηση, μπορεί να είναι δυνατός ο προσδιορισμός των πληροφοριών συνοριακής διεύθυνσης 250 ώστε αυτές οι πληροφορίες να μη σχετίζονται άμεσα με διευθύνσεις μνήμης, αλλά αντίθετα κάνει δυνατό τον προσδιορισμό ενός συγκεκριμένου τμήματος της κρυφής μνήμης προς χρήση για το σχηματισμό της επίμονης περιοχής. Για παράδειγμα, μπορεί να ισχύει ότι μια ή περισσότερες κατευθύνσεις εντός μιας συσχετιστικής ως προς ένα σύνολο κρυφής μνήμης Ν-κατευθύνσεων θα μπορούσαν να δεσμεύονται για την αποθήκευση επίμονων δεδομένων μέσω μιας τέτοιας προσέγγισης. Εναλλακτικά, η κρυφή μνήμη μπορεί να περιλαμβάνει μια αποκλειστική προσωρινή μνήμη για την αποθήκευση επίμονων δεδομένων εγγραφής, δηλ. ρυπαρών επίμονων δεδομένων, με τις πληροφορίες συνοριακής διεύθυνσης 250 να χρησιμοποιούνται για τον προσδιορισμό αυτής της προσωρινής μνήμης εγγραφής. Σε αυτή τη δεύτερη διάταξη, μπορεί να επιτρέπεται στα επίμονα δεδομένα ανάγνωσης, δηλ. τα δεδομένα τα οποία μόλις διαβάστηκαν από τη μη πτητική μνήμη, και ανάλογα είναι ακόμη καθαρά, να εκχωρούνται εντός της μη επίμονης περιοχής 270 της κρυφής μνήμης, εφόσον μολονότι τα δεδομένα παραμένουν καθαρά, δε χρειάζονται να υποβάλλονται σε ένα χειρισμό ετερόχρονης εγγραφής με μια διακοπή ρεύματος. In an alternative implementation, it may be possible to specify the boundary address information 250 so that this information is not directly related to memory addresses, but instead makes it possible to specify a specific portion of the cache to use to form the persistent region. For example, it may be the case that one or more directions within an associative N-direction cache set could be dedicated to persistent data storage through such an approach. Alternatively, the cache may include a dedicated buffer for storing persistent write data, i.e. dirty persistent data, with the boundary address information 250 used to identify this write cache. In this second arrangement, persistent read data, i.e., data that has just been read from non-volatile memory, and thus is still clean, may be allowed to be allocated within the non-persistent area 270 of the cache, since even though the data remain clear, they do not need to be subjected to an asynchronous write operation with a power failure.

Το Σχήμα 5Β είναι ένα διάγραμμα ροής το οποίο απεικονίζει μια διαδικασία εκχώρησης δεδομένων η οποία μπορεί να πραγματοποιείται κατά την υιοθέτηση του σχήματος του Σχήματος 5Α. Στο βήμα 280, προσδιορίζεται κατά πόσο τα δεδομένα προς εκχώρηση είναι επίμονα δεδομένα ή όχι. Όπως αναφέρθηκε νωρίτερα, αυτό μπορεί σε μια υλοποίηση να προκύπτει από δεδομένα που παρέχονται στα πλαίσια του αιτήματος, για παράδειγμα προκύπτουν από το bit επιμονής εντός της σχετικής εγγραφής του πίνακα σελίδων. Figure 5B is a flow diagram illustrating a data allocation process that may occur when adopting the scheme of Figure 5A. In step 280, it is determined whether the data to be allocated is persistent data or not. As mentioned earlier, this may in one implementation be derived from data provided in the context of the request, for example derived from the persistence bit within the relevant page table entry.

Εάν τα δεδομένα προς εκχώρηση είναι επίμονα, τότε η διαδικασία προχωράει στο βήμα 285 όπου το κύκλωμα εκχώρησης 120 εκχωρεί τα δεδομένα σε μια διαθέσιμη γραμμή κρυφής μνήμης εντός της επίμονης περιοχής 260 της κρυφής μνήμης. Όπως εξετάστηκε νωρίτερα αναφορικά με το Σχήμα 2, αυτό μπορεί να αφορά στη χρήση του κυκλώματος έξωσης για την έξωση άλλων επίμονων δεδομένων εάν απαιτείται για την απελευθέρωση χώρου για την εκχώρηση των νέων επίμονων δεδομένων, ώστε να εξασφαλίζεται ότι ο συνολικός αριθμός των γραμμών κρυφής μνήμης που χρησιμοποιούνται για την αποθήκευση των επίμονων δεδομένων δεν υπερβαίνει αυτόν που υποδεικνύεται από τις πληροφορίες ελέγχου χρήσης. If the data to be allocated is persistent, then the process proceeds to step 285 where the allocation circuit 120 allocates the data to an available cache line within the persistent area 260 of the cache. As discussed earlier with reference to Figure 2, this may involve using the eviction circuit to evict other persistent data if required to free up space to allocate the new persistent data to ensure that the total number of cache lines that used to store the persistent data does not exceed that indicated by the usage control information.

Εάν προσδιοριστεί στο βήμα 280 ότι τα δεδομένα προς εκχώρηση δεν είναι επίμονα, τότε η διαδικασία προχωράει στο βήμα 290, όπου τα δεδομένα εκχωρούνται σε μια διαθέσιμη γραμμή κρυφής μνήμης στη μη επίμονα περιοχή 270. Και πάλι, το κύκλωμα έξωσης 130 μπορεί να χρησιμοποιείται εάν απαιτείται για την έξωση άλλων δεδομένων από την κρυφή μνήμη εάν είναι απαραίτητο, ώστε να απελευθερώνεται χώρος για τη νέα εκχώρηση δεδομένων. If it is determined in step 280 that the data to be allocated is non-persistent, then the process proceeds to step 290, where the data is allocated to an available cache line in the non-persistent area 270. Again, the evict circuit 130 can be used if required to evict other data from the cache if necessary to free up space for the new data allocation.

Το Σχήμα 5C είναι ένα διάγραμμα ροής το οποίο απεικονίζει τα βήματα που πραγματοποιούνται ως αποτέλεσμα μιας διεγειρόμενης από την εφεδρική τροφοδοσία έξωσης, κατά την υιοθέτηση του σχήματος του Σχήματος 5Α. Στο βήμα 300, προσδιορίζεται κατά πόσο μια διέγερση υποδεικνύει τη χρήση της εφεδρικής τροφοδοσίας. Μόλις προσδιοριστεί ότι έχει διεγερθεί η εφεδρική τροφοδοσία, τότε η διαδικασία προχωράει στο βήμα 310, όπου προσδιορίζονται όλες οι έγκυρες και ρυπαρές γραμμές κρυφής μνήμης στην επίμονη περιοχή 260. Στη συνέχεια, στο βήμα 320, για κάθε γραμμή κρυφής μνήμης που προσδιορίστηκε, τα δεδομένα σε αυτή τη γραμμή κρυφής μνήμης μεταφέρονται στη μη πτητική μνήμη χρησιμοποιώντας την ενέργεια που παρέχεται από την εφεδρική πηγή ενέργειας 35. Figure 5C is a flow diagram illustrating the steps that occur as a result of a backup-triggered eviction, when adopting the scheme of Figure 5A. In step 300, it is determined whether a trigger indicates the use of backup power. Once it is determined that the backup power has been asserted, then the process proceeds to step 310, where all valid and dirty cache lines in persistent area 260 are determined. Then, in step 320, for each cache line determined, the data in this cache line are transferred to the non-volatile memory using the power provided by the backup power source 35.

Το Σχήμα 6Α απεικονίζει μια υλοποίηση όπου οι πληροφορίες ελέγχου χρήσης δεν προσδιορίζουν απευθείας τις γραμμές κρυφής μνήμης που σχηματίζουν την επίμονη περιοχή, αλλά αντίθετα προσδιορίζουν ένα μέγιστο αριθμό εγγραφών Μ οι οποίες μπορούν να χρησιμοποιούνται για την αποθήκευση των επίμονων δεδομένων. Ανάλογα, αυτές οι πληροφορίες μέγιστου αριθμού αποθηκεύονται εντός του χώρου αποθήκευσης ελέγχου 350, ενώ επιπλέον τηρείται ένας απαριθμητής 355 από την κρυφή μνήμη για την παρακολούθηση του αριθμού των γραμμών κρυφής μνήμης οι οποίες έχουν εκχωρηθεί για την αποθήκευση επίμονων δεδομένων. Figure 6A illustrates an embodiment where the usage control information does not directly specify the cache lines that form the persistent region, but instead specifies a maximum number of records M that can be used to store the persistent data. Accordingly, this maximum number information is stored within the control store 350, while additionally a counter 355 is maintained by the cache to track the number of cache lines that have been allocated to store persistent data.

Όπως δείχνεται στο Σχήμα 6Α, οι RAM της κρυφής μνήμης 360 περιλαμβάνουν γραμμές κρυφής μνήμης 365 μαζί με συσχετισμένες πληροφορίες ελέγχου (οι οποίες σε μια υλοποίηση μπορεί να αποθηκεύονται σε μια ξεχωριστή εγγραφή ετικέτας RAM αλλά για λόγους απλότητας δείχνονται ως τμήμα της γραμμής κρυφής μνήμης 365 στο Σχήμα 6Α). Οι πληροφορίες ελέγχου μπορεί σε μια υλοποίηση να περιλαμβάνουν ένα bit εγκυρότητας 366 το οποίο προσδιορίζει κατά πόσο τα δεδομένα που τηρούνται στη γραμμή κρυφής μνήμης είναι έγκυρα και ένα bit ρυπαρότητας 367 το οποίο προσδιορίζει κατά πόσο τα περιεχόμενα της γραμμής κρυφής μνήμης είναι ρυπαρά. Σε μια υλοποίηση, οι πληροφορίες ελέγχου επιπλέον περιλαμβάνουν ένα bit επιμονής (persistence ή Ρ) 368 του οποίου η τιμή υποδηλώνει κατά πόσο τα δεδομένα στη γραμμή κρυφής μνήμης είναι επίμονα δεδομένα ή μη επίμονα δεδομένα. Σε μια υλοποίηση, κάθε φορά που εκχωρούνταν επίμονα δεδομένα σε μια γραμμή κρυφής μνήμης, και ανάλογα ενεργοποιείται το σχετικό bit επιμονής 368, αυξάνεται ο απαριθμητής 355. Αντίθετα, κάθε φορά που μια τέτοια γραμμή κρυφής μνήμης εξωθείται από την κρυφή μνήμη, ο απαριθμητής μειώνεται. Κατά τη διάρκεια κάθε διαδικασίας εκχώρησης, ο απαριθμητής αναθεωρείται, ώστε να εξασφαλίζεται ότι ο μέγιστος αριθμός των εγγραφών Μ όπως υποδηλώνεται από τα περιεχόμενα του χώρου αποθήκευσης ελέγχου 350 δεν θα υπερβαίνεται όταν νέα επίμονα δεδομένα εκχωρούνται στην κρυφή μνήμη. As shown in Figure 6A, cache RAMs 360 include cache lines 365 along with associated control information (which in one embodiment may be stored in a separate RAM tag record but for simplicity is shown as part of cache line 365 in Figure 6A). The control information may in one implementation include a validity bit 366 that identifies whether the data held in the cache line is valid and a filth bit 367 that identifies whether the contents of the cache line are dirty. In one embodiment, the control information further includes a persistence (or P) bit 368 whose value indicates whether the data in the cache line is persistent data or non-persistent data. In one embodiment, whenever data has been persistently allocated to a cache line, and the associated persistence bit 368 is accordingly set, the counter 355 is incremented. Conversely, whenever such a cache line is evicted from the cache, the counter is decremented. During each allocation process, the counter is revised to ensure that the maximum number of M records as indicated by the contents of the control store 350 is not exceeded when new persistent data is allocated to the cache.

Αυτή η διαδικασία εκχώρησης απεικονίζεται σε μεγαλύτερη λεπτομέρεια στο διάγραμμα ροής του Σχήματος 6Β. Συγκεκριμένα, στο βήμα 380 προσδιορίζεται κατά πόσο τα δεδομένα προς εκχώρηση στην κρυφή μνήμη είναι επίμονα δεδομένα. Εάν δεν είναι, η διαδικασία απλά προχωράει στο βήμα 395 όπου τα δεδομένα εκχωρούνται σε μια διαθέσιμη γραμμή κρυφής μνήμης και το Ρ bit μηδενίζεται. This assignment process is illustrated in greater detail in the flowchart of Figure 6B. Specifically, step 380 determines whether the data to be cached is persistent data. If it is not, the process simply proceeds to step 395 where the data is allocated to an available cache line and the P bit is set to zero.

Ωστόσο, εάν τα προς εκχώρηση δεδομένα είναι επίμονα, προσδιορίζεται κατά πόσο η τιμή του απαριθμητή είναι μικρότερη από τη μέγιστη τιμή Μ. Εάν είναι, τότε η διαδικασία συνεχίζει στο βήμα 390 όπου τα δεδομένα εκχωρούνται σε μια διαθέσιμη γραμμή κρυφής μνήμης, το Ρ bit παίρνει την τιμή 1 και ο απαριθμητής αυξάνεται. Ωστόσο, εάν η τιμή του απαριθμητή είναι εκείνη τη στιγμή ίση με τη μέγιστη τιμή Μ, τότε αντί η διαδικασία να συνεχίσει στο βήμα 387, όπου εξωθείται μια υφιστάμενη γραμμή κρυφής μνήμης που αποθηκεύει επίμονα δεδομένα, και ο απαριθμητής μειώνεται. Εφεξής, η διαδικασία μπορεί να συνεχίζει στο βήμα 390 ώστε να επιτρέπει την εκχώρηση νέων δεδομένων στη γραμμή κρυφής μνήμης. However, if the data to be allocated is persistent, it is determined whether the value of the counter is less than the maximum value M. If it is, then the process continues to step 390 where the data is allocated to an available cache line, the P bit gets the value 1 and the counter is incremented. However, if the value of the counter is at that time equal to the maximum value M, then instead the process continues to step 387, where an existing cache line storing persistent data is evicted, and the counter is decremented. Thereafter, the process may continue to step 390 to allow new data to be allocated to the cache line.

Το Σχήμα 6C είναι ένα διάγραμμα ροής το οποίο απεικονίζει τη διεγειρόμενη από την εφεδρική τροφοδοσία διαδικασία έξωσης κατά την υιοθέτηση του σχήματος του Σχήματος 6Α. Όντας στο βήμα 400, προσδιορίζεται ότι η εφεδρική τροφοδοσία έχει διεγερθεί, τότε στο βήμα 405 προσδιορίζονται όλες οι έγκυρες και ρυπαρές γραμμές κρυφής μνήμης με τα Ρ bit τους ίσα με 1, και εφεξής στο βήμα 410, για κάθε γραμμή κρυφής μνήμης που προσδιορίστηκε, τα δεδομένα σε αυτή τη γραμμή κρυφής μνήμης μεταφέρονται στη μη πτητική μνήμη. Καθώς εξωθείται κάθε γραμμή κρυφής μνήμης κατά τη διάρκεια αυτής της διαδικασίας, ο απαριθμητής μειώνεται. Figure 6C is a flow diagram illustrating the backup powered ejection process when adopting the scheme of Figure 6A. Being in step 400, it is determined that the backup power has been energized, then in step 405 all valid and dirty cache lines with their P bits equal to 1 are determined, and thereafter in step 410, for each cache line determined, the data in this cache line is transferred to non-volatile memory. As each cache line is evicted during this process, the counter is decremented.

Ως μια παραλλαγή της προσέγγισης που δείχνεται στα Σχήματα 6 Α έως 6C, το bit επιμονής 368 μπορεί να διατάσσεται ώστε να παίρνει την τιμή 1 μόνο όταν τα συσχετισμένα περιεχόμενα της γραμμής κρυφής μνήμης περιέχουν επίμονα δεδομένα τα οποία είναι τόσο έγκυρα όσο και ρυπαρά, και μόνο σε αυτό το σημείο ο απαριθμητής αυξάνεται. Η προδιαγραφή του μέγιστου αριθμού εγγραφών Μ θα επιλέγεται συνήθως λαμβάνοντας υπόψη το γεγονός ότι μόνο τα έγκυρα και ρυπαρά επίμονα δεδομένα θα επισημαίνονται από το bit επιμονής. Κατά την εκτέλεση της διαδικασίας του Σχήματος 6Β κατά την εκχώρηση των δεδομένων, τότε στο βήμα 390 το Ρ bit θα παίρνει την τιμή 1 μόνο εάν τα εκχωρηθέντα δεδομένα είναι τόσο έγκυρα όσο και ρυπαρά και μόνο τότε θα αυξάνεται ο απαριθμητής. Σύμφωνα με αυτή την υλοποίηση, όταν εκχωρείται αρχικά μια γραμμή κρυφής μνήμης, μπορεί να ισχύει ότι το Ρ bit δεν έχει την τιμή 1, όμως στη συνέχεια εάν πραγματοποιηθεί ένας χειρισμός εγγραφής όσον αφορά σε μια από τις τιμές δεδομένων σε αυτή τη γραμμή κρυφής μνήμης ώστε να εξαναγκάσει το περιεχόμενο να γίνει τόσο έγκυρο όσο και ρυπαρό, τότε σε αυτό το σημείο το bit επιμονής θα πάρει την τιμή 1 και ο απαριθμητής θα αυξηθεί. Η διαδικασία που πραγματοποιείται όσον αφορά την διεγειρόμενη από την εφεδρική τροφοδοσία έξωση είναι στη συνέχεια ουσιαστικά η ίδια με αυτή που περιγράφεται αναφορικά με το Σχήμα 6C, αλλά στο βήμα 405 είναι μόνο απαραίτητος ο προσδιορισμός των γραμμών κρυφής μνήμης που έχουν το Ρ bit ίσο με 1, επειδή το Ρ bit θα έχει πάρει την τιμή 1 μόνο στις έγκυρες και ρυπαρές γραμμές κρυφής μνήμης που περιλαμβάνουν επίμονα δεδομένα. As a variation of the approach shown in Figures 6A through 6C, the persistence bit 368 can be ordered to take the value 1 only when the associated cache line contents contain persistent data that is both valid and dirty, and only at this point the counter is incremented. The specification of the maximum number of records M will usually be chosen taking into account the fact that only valid and dirty persistent data will be marked by the persistence bit. When performing the process of Figure 6B while allocating the data, then at step 390 the P bit will be set to 1 only if the allocated data is both valid and dirty and only then will the counter be incremented. According to this embodiment, when a cache line is initially allocated, it may be the case that the P bit is not set to 1, but then if a write operation is performed on one of the data values in that cache line so that to force the content to become both valid and dirty, then at this point the persistence bit will be set to 1 and the counter will be incremented. The procedure performed with respect to the backup-triggered eviction is then substantially the same as that described with respect to Figure 6C, but in step 405 it is only necessary to determine the cache lines that have the P bit equal to 1 , because the P bit will have taken the value 1 only in the valid and dirty cache lines that contain persistent data.

Το Σχήμα 7 απεικονίζει μια εναλλακτική διάταξη αυτής που δείχνεται στο Σχήμα 6Α, όπου δεν παρέχεται ένα bit επιμονής 368 σε συσχετισμό με κάθε γραμμή κρυφής μνήμης, αλλά αντίθετα παρέχεται ένας ξεχωριστός χώρος αποθήκευσης προσδιορισμού γραμμών κρυφής μνήμης 470. Σύμφωνα με αυτή την υλοποίηση, ο χώρος αποθήκευσης ελέγχου 450 προσδιορίζει το μέγιστο αριθμό εγγραφών που προορίζονται για τη χρήση αποθήκευσης επίμονων δεδομένων και εν τούτοις παρέχεται ο απαριθμητής 455. Οι RAM της κρυφής μνήμης 460 στη συνέχεια περιλαμβάνουν γραμμές κρυφής μνήμης 465 που έχουν συσχετισμένα bit εγκυρότητας και ρυπαρότητας 466, 467, αλλά όχι bit επιμονής. Αντίθετα, όποτε εκχωρούνται επίμονα δεδομένα σε μια γραμμή κρυφής μνήμης, συμπληρώνεται μια εγγραφή εντός του χώρου αποθήκευσης προσδιορισμού γραμμών κρυφής μνήμης 470 για τον προσδιορισμό της γραμμής κρυφής μνήμης η οποία αποθηκεύει τα επίμονα δεδομένα. Αυτή για παράδειγμα μπορεί να πάρει τη μορφή ενός δείκτη ο οποίος υποδεικνύει την κατάλληλη γραμμή κρυφής μνήμης ή εναλλακτικά πληροφοριών αναγνωριστικού κατεύθυνσης και συνόλου. Figure 7 illustrates an alternative arrangement to that shown in Figure 6A, where a persistence bit 368 is not provided in association with each cache line, but instead a separate cache line identification storage 470 is provided. According to this embodiment, the control storage 450 determines the maximum number of records intended to use persistent data storage and yet counter 455 is provided. Cache RAMs 460 then include cache lines 465 that have associated validity and corruption bits 466, 467, but not persistence bit. Instead, whenever persistent data is allocated to a cache line, a record is populated within the cache line specification store 470 to identify the cache line that stores the persistent data. This may for example take the form of a pointer which points to the appropriate cache line or alternatively direction and set identifier information.

Με μια τέτοια διάταξη, οι διαδικασίες εκχώρησης δεδομένων και διεγειρόμενης από την εφεδρική τροφοδοσία έξωσης είναι παρόμοιες με αυτές που εξετάστηκαν νωρίτερα αναφορικά με τα Σχήματα 6Β και 6C, με τις ακόλουθες αλλαγές. Κατά την εκτέλεση της διαδικασίας του Σχήματος 6Β, οι εγγραφές στο χώρο αποθήκευσης προσδιορισμού γραμμών κρυφής μνήμης συμπληρώνονται ενώ το Ρ bit δεν παίρνει την τιμή 1. Κατά την εκτέλεση της διαδικασίας διεγειρόμενης από την εφεδρική τροφοδοσία έξωσης του Σχήματος 6C, το βήμα 405 αντίθετα απαιτεί τον προσδιορισμό όλων των έγκυρων και ρυπαρών γραμμών κρυφής μνήμης οι οποίες δεικτοδοτούνται από μια εγγραφή στο χώρο αποθήκευσης προσδιορισμού γραμμών κρυφής μνήμης 470. With such an arrangement, the data assignment and backup-triggered eviction procedures are similar to those discussed earlier with respect to Figures 6B and 6C, with the following changes. When performing the process of Figure 6B, entries in the cache line allocation store are filled while the P bit is not set to 1. When performing the backup power-triggered evict process of Figure 6C, step 405 instead requires the determining all valid and dirty cache lines that are indexed by an entry in the cache line determination store 470;

Περαιτέρω, όπως με την παραλλαγή που εξετάστηκε νωρίτερα αναφορικά με τα Σχήματα 6Α έως 6C, είναι επίσης δυνατή η χρήση μιας παραλλαγής του Σχήματος 7 όπου μια εγγραφή πραγματοποιείται στο χώρο αποθήκευσης προσδιορισμού γραμμών κρυφής μνήμης 470 μόνο εάν μια γραμμή κρυφής μνήμης αποθηκεύει επίμονα δεδομένα τα οποία είναι τόσο έγκυρα όσο και ρυπαρά. Further, as with the variation discussed earlier with respect to Figures 6A through 6C, it is also possible to use a variation of Figure 7 where a write is made to cache line determination storage 470 only if a cache line persistently stores data which they are both valid and dirty.

Σε ένα παράδειγμα διάταξης, η μη πτητική μνήμη 25 μπορεί εάν είναι επιθυμητό να ενσωματώνει κάποιον πτητικό χώρο αποθήκευσης, όπως ο χώρος αποθήκευσης DRAM, όμως με αυτό τον πτητικό χώρο αποθήκευσης να έχει δυνατότητα να χρησιμοποιείται αποτελεσματικά ως μη πτητική μνήμη μέσω σύνδεσης με την εφεδρική πηγή ενέργειας 35. Μια τέτοια διάταξη δείχνεται στο Σχήμα 8. In one example arrangement, the non-volatile memory 25 may if desired incorporate some volatile storage, such as DRAM storage, but with such volatile storage capable of being effectively used as non-volatile memory by connecting to the backup source. energy 35. Such an arrangement is shown in Figure 8.

Όπως δείχνεται στο Σχήμα 8, σε αυτό το παράδειγμα διάταξης η διευθυνσιοδοτούμενη μνήμη διαμορφώνεται στην πράξη από χώρο αποθήκευσης DRAM 500 και αυτός συνδέεται με μη πτητικό χώρο αποθήκευσης 510 ο οποίος είναι ουσιαστικά διαφανής, όσον αφορά στο γεγονός ότι δε βρίσκεται εντός του χάρτη διευθύνσεων μνήμης και ανάλογα τα περιεχόμενά του δεν μπορούν να διευθυνσιοδοτούνται απευθείας από το κύκλωμα επεξεργασίας 10. Όταν εκχωρούνται δεδομένα στη μνήμη, αποθηκεύονται στην κατάλληλη θέση εντός του χώρου αποθήκευσης DRAM 500 (όπως υποδεικνύεται από την καθορισμένη διεύθυνση μνήμης). Περαιτέρω, εάν αυτά τα δεδομένα είναι επίμονα δεδομένα, αντιγράφονται στο μη πτητικό χώρο αποθήκευσης 510 ώστε να μπορεί να εξασφαλίζεται ότι αυτά τα δεδομένα είναι επίμονα. As shown in Figure 8, in this example arrangement the addressable memory is actually configured by DRAM storage 500 and this is connected to non-volatile storage 510 which is essentially transparent in that it is not within the memory address map and accordingly its contents are not directly addressable by processing circuitry 10. When data is allocated to memory, it is stored in the appropriate location within DRAM storage 500 (as indicated by the designated memory address). Further, if this data is persistent data, it is copied to the non-volatile storage 510 so that this data can be ensured to be persistent.

Κατά τη διάρκεια των χειρισμών που πραγματοποιούνται από το κύκλωμα επεξεργασίας, ο πίνακας σελίδων 45 (βλέπε Σχήμα 1) μπορεί να διατάσσεται ώστε να παρακολουθεί αυτές τις σελίδες στη μνήμη στις οποίες έχει πραγματοποιηθεί εγγραφή και οι οποίες θα πρέπει ανάλογα να αντιμετωπίζονται ως ρυπαρές σελίδες. Με τέτοιες πληροφορίες, σε περίπτωση διακοπής ρεύματος, η εφεδρική πηγή ενέργειας 35 μπορεί να διεγείρεται, ενώ το κύκλωμα ελέγχου που σχετίζεται με τη μη πτητική μνήμη 25 μπορεί τότε να προσδιορίζει τις ρυπαρές σελίδες και να προκαλεί την αντιγραφή αυτών των ρυπαρών σελίδων από το χώρο αποθήκευσης DRAM 500 στο μη πτητικό χώρο αποθήκευσης 510 χρησιμοποιώντας τη χωρητικότητα της εφεδρικής πηγής ενέργειας 35. During manipulations performed by the processing circuit, the page table 45 (see Figure 1) can be arranged to keep track of those pages in memory that have been written to and which should accordingly be treated as dirty pages. With such information, in the event of a power failure, the backup power source 35 can be energized, while the control circuitry associated with the non-volatile memory 25 can then identify dirty pages and cause those dirty pages to be copied from storage. DRAM 500 in non-volatile storage 510 using the capacity of backup power source 35.

Μια τέτοια προσέγγιση μπορεί να κάνει δυνατούς ταχύτερους χρόνους πρόσβασης σε ορισμένες υλοποιήσεις, εφόσον ο πτητικός χώρος αποθήκευσης (π.χ. DRAM) μπορεί συνήθως να είναι ταχύτερος στην πρόσβαση από το μη πτητικό χώρο αποθήκευσης. Περαιτέρω, εφόσον μόνο οι ρυπαρές σελίδες που περιέχουν επίμονα δεδομένα πρέπει να αντιγράφονται για ασφάλεια στο μη πτητικό χώρο αποθήκευσης σε περίπτωση διακοπής ρεύματος, το μέγεθος της εφεδρικής πηγής ρεύματος 35 μπορεί να είναι σχετικά μικρό. Επιπλέον, το μέγεθος του μη πτητικού χώρου αποθήκευσης 510 μπορεί να ελαττώνεται σημαντικά, εφόσον απαιτεί τη διατήρηση μόνο ενός αντιγράφου των επίμονων δεδομένων. Such an approach may enable faster access times in some implementations, since volatile storage (eg, DRAM) may typically be faster to access than non-volatile storage. Further, since only dirty pages containing persistent data need to be copied for safety to non-volatile storage in the event of a power failure, the size of the backup power source 35 can be relatively small. In addition, the size of the non-volatile storage space 510 can be significantly reduced since it requires maintaining only one copy of the persistent data.

Σε ένα περαιτέρω παράδειγμα διάταξης, μια βαθμίδα πτητικού χώρου αποθήκευσης (όπως ο DRAM) μπορεί να χρησιμοποιείται για να παρέχει τόσο την κρυφή μνήμη σημείου επιμονής 20 όσο και τον πτητικό χώρο αποθήκευσης 500 ο οποίος μπορεί ουσιαστικά να αντιμετωπίζεται ως μη πτητική μνήμη λόγω της σύνδεσης με την εφεδρική πηγή ενέργειας 35. Σε μια τέτοια διάταξη, ο μη πτητικός χώρος αποθήκευσης 510 μπορεί να χρησιμοποιείται τόσο ως επίμονη μνήμη όσο και ως μη επίμονη μνήμη όπως εξετάστηκε νωρίτερα, ενώ τουλάχιστον ένα τμήμα του μη πτητικού χώρου αποθήκευσης θα είναι διευθυνσιοδοτούμενο, σε αντίθεση με τη διάταξη που δείχνεται στο Σχήμα 8. In a further example arrangement, a volatile storage tier (such as DRAM) may be used to provide both the persistence point cache 20 and the volatile storage 500 which may essentially be treated as non-volatile memory due to the connection to the backup power source 35. In such an arrangement, the non-volatile storage 510 may be used as both persistent and non-volatile memory as discussed earlier, while at least a portion of the non-volatile storage will be addressable, as opposed to the arrangement shown in Figure 8.

Τμήμα της βαθμίδας του πτητικού χώρου αποθήκευσης μπορεί στη συνέχεια να χρησιμοποιείται ως επίμονη μνήμη με εφεδρική τροφοδοσία μπαταριών, με τον ίδιο τρόπο όπως εξετάστηκε νωρίτερα για αυτό η βαθμίδα χώρου αποθήκευσης DRAM 500 του Σχήματος 8 (αντιπροσωπεύοντας συνεπώς ταχύτερη μη πτητική μνήμη, εφόσον η DRAM είναι συνήθως ταχύτερη σε πρόσβαση από το μη πτητικό χώρο αποθήκευσης 510). Επιπλέον, ένα άλλο τμήμα της βαθμίδας του πτητικού χώρου αποθήκευσης μπορεί να χρησιμοποιείται ως μια κρυφή μνήμη σημείου επιμονής για τη μη πτητική μνήμη (ώστε να επιτρέπει ταχύτερη πρόσβαση, αλλά με διαφανή τρόπο). Το τμήμα του πτητικού χώρου αποθήκευσης που χρησιμοποιείται ως μνήμη με εφεδρική τροφοδοσία μπαταριών είναι ορατό στο χώρο διευθύνσεων ως ταχεία επίμονη μνήμη (σε αντίθεση με το μη πτητικό χώρο αποθήκευσης 510 ο οποίος αντιμετωπίζεται ως πιο αργή επίμονη μνήμη). Το τμήμα του πτητικού χώρου αποθήκευσης που χρησιμοποιείται ως κρυφή μνήμη σημείου επιμονής είναι διαφανές (δηλ. όχι απευθείας διευθυνσιοδοτούμενο) και μπορεί να αποθηκεύει εγγραφές στην κρυφή μνήμη από/προς τη μη πτητική μνήμη (ώστε να κάνει δυνατή ταχύτερη πρόσβαση). Η χωρητικότητα της εφεδρικής πηγής ενέργειας χρησιμοποιείται στη συνέχεια ώστε να επιτρέπει τη λήψη αντιγράφων ασφαλείας στο μη πτητικό χώρο αποθήκευσης των επίμονων ρυπαρών εγγραφών και στα δύο τμήματα του πτητικού χώρου αποθήκευσης Part of the volatile storage stage can then be used as battery-backed persistent memory, in the same way that the DRAM storage stage 500 of Figure 8 was discussed earlier for this (therefore representing faster non-volatile memory since the DRAM is typically faster to access than non-volatile storage 510). Additionally, another portion of the volatile storage tier can be used as a persistence point cache for the non-volatile memory (to allow faster access, but in a transparent manner). The portion of volatile storage that is used as battery-backed memory is visible in the address space as fast persistent memory (as opposed to non-volatile storage 510 which is treated as slower persistent memory). The portion of volatile storage used as a persistence point cache is transparent (ie not directly addressable) and can cache writes to/from non-volatile memory (to enable faster access). The backup power source capacity is then used to allow non-volatile storage to back up the persistent dirty records to both parts of the volatile storage

Μολονότι η διάταξη των υλοποιήσεων που περιγράφηκαν παραπάνω μπορεί να χρησιμοποιείται σε ένα πλήθος περιπτώσεων, ένα παράδειγμα χρήσης είναι σε σχέση με τις συσκευές “Internet of Things” (ΙοΤ) οι οποίες χρησιμοποιούν συγκομιδή ενέργειας για την παροχή της τροφοδοσίας τους. Ως αποτέλεσμα, η ενέργεια που αποθηκεύεται μπορεί να αλλάζει συνεχώς, ενώ μπορεί να εξαρτάται από την ποσότητα της ενέργειας που έχει συγκομιστεί. Οι διακοπές ρεύματος αναμένεται να συμβαίνουν πιο συχνά σε τέτοιες συσκευές λόγω της φύσης ορισμένων μορφών συγκομιδής ενέργειας, ενώ στη συσκευή ΙοΤ πρέπει να επαναφορτωθεί σωστά το λειτουργικό σύστημα με την επιστροφή της τροφοδοσίας. Χρησιμοποιώντας τις τεχνικές που περιγράφηκαν παραπάνω, μπορεί να παρέχεται ένας μηχανισμός σε τέτοιες συσκευές ώστε να εξασφαλίζεται ότι τα δεδομένα που πρέπει να διατηρούνται ως επίμονα μπορούν πράγματι να αποθηκεύονται με έναν επίμονο τρόπο. Although the arrangement of the embodiments described above may be used in a number of cases, one example of use is in connection with "Internet of Things" (IoT) devices that use energy harvesting to provide their power. As a result, the energy stored may be constantly changing, and may depend on the amount of energy harvested. Power outages are expected to occur more frequently in such devices due to the nature of some forms of energy harvesting, while in the IoT device the operating system must be properly reloaded upon power return. Using the techniques described above, a mechanism can be provided in such devices to ensure that data to be kept persistent can actually be stored in a persistent manner.

Από τις υλοποιήσεις που περιγράφονται παραπάνω, θα διαφανεί ότι αυτές οι υλοποιήσεις επιτρέπουν τη χρήση μιας κρυφής μνήμης ως ένα περιορισμένο από τη χωρητικότητα σημείο επιμονής εντός ενός συστήματος, περιορίζοντας το βαθμό στον οποίο χρησιμοποιείται η κρυφή μνήμη για την αποθήκευση επίμονων δεδομένων λαμβάνοντας υπόψη τη χωρητικότητα μιας εφεδρικής πηγής ενέργειας, εξασφαλίζοντας με αυτό τον τρόπο ότι σε περίπτωση διακοπής της κύριας πηγής τροφοδοσίας, θα υπάρχει επαρκής διαθέσιμη ενέργεια από την εφεδρική πηγή ενέργειας για την ετερόχρονη εγγραφή στη μη πτητική μνήμη οποιωνδήποτε επίμονων δεδομένων διατηρούνται εκείνη τη στιγμή εντός αυτής της κρυφής μνήμης. Αυτό επιτρέπει στην κρυφή μνήμη να γίνεται μεγαλύτερη από την περίπτωση στην οποία θα έπρεπε να εξασφαλιστεί ότι ολόκληρο το περιεχόμενο της κρυφής μνήμης θα μπορούσε να εγγραφεί ετερόχρονα στη μνήμη σε περίπτωση μιας διακοπής ρεύματος, ενώ επίσης επιτρέπει στο βαθμό στον οποίο χρησιμοποείται η κρυφή μνήμη για επίμονα δεδομένα να μεταβάλλεται με το χρόνο ώστε να λαμβάνει υπόψη τη μείωση της χωρητικότητας της εφεδρικής πηγής ενέργειας. Περαιτέρω, η εφεδρική πηγή ενέργειας μπορεί να γίνεται μικρότερη για ένα δεδομένο μέγεθος κρυφής μνήμης. From the embodiments described above, it will be apparent that these embodiments allow a cache to be used as a capacity-limited persistence point within a system, limiting the extent to which the cache is used to store persistent data by considering the capacity of a backup power source, thereby ensuring that in the event of a failure of the primary power source, there will be sufficient power available from the backup power source to retroactively write to the non-volatile memory any persistent data currently held within that cache. This allows the cache to be larger than would otherwise be required to ensure that the entire contents of the cache could be retroactively written to memory in the event of a power failure, while also allowing the extent to which the cache is used for persistent data to vary over time to take into account the reduction in capacity of the backup power source. Furthermore, the backup power source may become smaller for a given cache size.

Στην παρούσα εφαρμογή, οι λέξεις “διαμορφωμένο για...” χρησιμοποιούνται με τη σημασία ότι ένα στοιχείο μιας συσκευής έχει μια διαμόρφωση ικανή να εκτελεί τον καθορισμένο χειρισμό. Σε αυτά τα πλαίσια, μια “διαμόρφωση” σημαίνει μια διάταξη ή ένας τρόπος διασύνδεσης υλικού ή λογισμικού. Για παράδειγμα, η συσκευή μπορεί να έχει αποκλειστικό υλικό το οποίο παρέχει τον καθορισμένο χειρισμό ή ένας επεξεργαστής ή άλλη διάταξη επεξεργασίας μπορεί να προγραμματίζεται ώστε να πραγματοποιεί τη λειτουργία. Οι λέξεις “διαμορφωμένο για” δεν υπονοούν ότι το στοιχείο της συσκευής πρέπει να αλλάζει με κάποιο τρόπο ώστε να παρέχεται ο καθορισμένος χειρισμός. In the present application, the words "configured for..." are used to mean that an element of a device has a configuration capable of performing the specified operation. In these contexts, 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 operation. The words “configured for” do not imply that the device element must be changed in some way to provide the specified handling.

Μολονότι στο παρόν έχουν περιγράφει με λεπτομέρεια επεξηγηματικές υλοποιήσεις της εφεύρεσης αναφορικά με τα συνοδευτικά σχεδιαγράμματα, θα πρέπει να γίνει κατανοητό ότι η εφεύρεση δεν περιορίζεται σε αυτές τις επακριβείς υλοποιήσεις, και ότι διάφορες αλλαγές, προσθήκες και τροποποιήσεις μπορούν να πραγματοποιούνται σε αυτές από ένα άτομο έμπειρο στην τέχνη χωρίς απόκλιση από το αντικείμενο και το πνεύμα της εφεύρεσης όπως ορίζονται από τις συνημμένες αξιώσεις. Για παράδειγμα, διάφοροι συνδυασμοί των χαρακτηριστικών των εξαρτώμενων αξιώσεων θα μπορούσαν να γίνουν με τα χαρακτηριστικά των ανεξάρτητων αξιώσεων χωρίς απόκλιση από το αντικείμενο της παρούσας εφεύρεσης. Although illustrative embodiments of the invention have been described herein in detail with reference to the accompanying drawings, it should be understood that the invention is not limited to these precise embodiments, and that various changes, additions, and modifications may be made therein by a person skilled in the art. in the art without departing from the object and spirit of the invention as defined by the appended claims. For example, various combinations of the features of the dependent claims could be made with the features of the independent claims without departing from the scope of the present invention.

Claims (20)

ΑΞΙΩΣΕΙΣ 1. Μια διάταξη η οποία περιλαμβάνει:1. An arrangement which includes: ένα χώρο αποθήκευσης κρυφής μνήμης που έχει ένα πλήθος εγγραφές για την αποθήκευση σε κρυφή μνήμη στοιχείων δεδομένων που σχετίζονται με διευθύνσεις μνήμης σε μια μη πτητική μνήμη, με τα στοιχεία δεδομένων να περιλαμβάνουν στοιχεία επίμονων δεδομένων και στοιχεία μη επίμονων δεδομένων,a cache storage having a plurality of entries for caching data items associated with memory addresses in a non-volatile memory, the data items including persistent data items and non-persistent data items; ένα κύκλωμα ελέγχου ετερόχρονης εγγραφής για τον έλεγχο της ετερόχρονης εγγραφής των στοιχείων δεδομένων από το χώρο αποθήκευσης κρυφής μνήμης στη μη πτητική μνήμη, καιan asynchronous write control circuit for controlling the asynchronous writing of the data items from the cache storage to the non-volatile memory, and ένα κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης για τον προσδιορισμό, σε εξάρτηση πληροφοριών ενδεικτικών της χωρητικότητας μιας εφεδρικής πηγής ενέργειας, ενός υποσυνόλου του πλήθους εγγραφών που προορίζονται για χρήση για την αποθήκευση στοιχείων επίμονων δεδομένων,a cache usage determination circuit for determining, dependent on information indicative of the capacity of a backup power source, a subset of the plurality of records intended for use in storing persistent data items; όπου, σε απόκριση ενός συμβάντος το οποίο προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας, το κύκλωμα ελέγχου ετερόχρονης εγγραφής διατάσσεται ώστε να εκκινεί την ετερόχρονη εγγραφή στη μη πτητική μνήμη των στοιχείων επίμονων δεδομένων που είναι αποθηκευμένα στο εν λόγω υποσύνολο του πλήθους εγγραφών.wherein, in response to an event which causes the standby power source to be used, the asynchronous write control circuit is arranged to initiate the asynchronous write to the non-volatile memory of the persistent data items stored in said subset of said plurality of writes. 2. Μια διάταξη όπως αξιώνεται στην Αξίωση 1, όπου σε απόκριση του εν λόγω συμβάντος που προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας, το κύκλωμα ελέγχου ετερόχρονης εγγραφής διατάσσεται ώστε να αποτρέπει την ετερόχρονη εγγραφή στη μη πτητική μνήμη των στοιχείων μη επίμονων δεδομένων.2. An arrangement as claimed in Claim 1, wherein in response to said event causing the backup power source to be used, the asynchronous write control circuit is arranged to prevent asynchronous writing to the non-volatile memory of the non-persistent data elements. 3. Μια διάταξη όπως αξιώνεται στην Αξίωση 1, όπου το κύκλωμα προσδιορισμού χρήσης της κρυφής μνήμης αποκρίνεται σε ένα συμβάν διέγερσης για την πραγματοποίηση του προσδιορισμού του υποσυνόλου του πλήθους εγγραφών που προορίζονται για χρήση για την αποθήκευση των στοιχείων επίμονων δεδομένων.3. An arrangement as claimed in Claim 1, wherein the cache usage determination circuit is responsive to a trigger event to make the determination of the subset of the number of records intended for use in storing the persistent data items. 4. Μια διάταξη όπως αξιώνεται στην Αξίωση 3, όπου το εν λόγω συμβάν διέγερσης περιλαμβάνει ένα ή περισσότερα από τα ακόλουθα:4. An arrangement as claimed in Claim 3, wherein said stimulation event comprises one or more of the following: μια διαδικασία φόρτωσης του λειτουργικού συστήματος που πραγματοποιείται στη διάταξη,an operating system loading process performed on the device; την παρέλευση ενός επιλεγμένου χρονικού διαστήματος από έναν προηγούμενο προσδιορισμό του υποσυνόλου του πλήθους εγγραφών που προορίζονται για χρήση για την αποθήκευση των στοιχείων επίμονων δεδομένων, καιthe elapse of a selected period of time since a previously determined subset of the number of records intended for use in storing the persistent data items, and μια ένδειξη που λαμβάνεται από την εφεδρική πηγή ενέργειας η οποία παρέχει μια ενημερωμένη ένδειξη της χωρητικότητας.a reading obtained from the backup power source which provides an up-to-date indication of capacity. 5. Μια διάταξη όπως αξιώνεται στην Αξίωση 1, η οποία περαιτέρω περιλαμβάνει ένα κύκλωμα εκχώρησης το οποίο αποκρίνεται σε ένα αίτημα από μια πηγή αιτημάτων για την εκχώρηση ενός νέου στοιχείου δεδομένων στο χώρο αποθήκευση κρυφής μνήμης, με την εκχώρηση του εν λόγω στοιχείου δεδομένων στο χώρο αποθήκευσης κρυφής μνήμης όταν το νέο στοιχείο δεδομένων είναι ένα στοιχείο επίμονων δεδομένων , με το κύκλωμα εκχώρησης να διατάσσεται ώστε να εκδίδει ένα σήμα αναγνώρισης προς την πηγή αιτημάτων το οποίο επαληθεύει την επιμονή του νέου στοιχείου δεδομένων.5. An arrangement as claimed in Claim 1, further comprising an allocation circuit which responds to a request from a request source to allocate a new data item in the cache storage space, by allocating said data item to the storage space caching when the new data item is a persistent data item, the allocation circuit being arranged to issue an acknowledgment signal to the request source which verifies the persistence of the new data item. 6. Μια διάταξη όπως αξιώνεται στην Αξίωση 1, η οποία περαιτέρω περιλαμβάνει:6. An arrangement as claimed in Claim 1, further comprising: ένα χώρο αποθήκευσης ελέγχου για την αποθήκευση των πληροφοριών ελέγχου χρήσης που χρησιμοποιούνται για τον προσδιορισμό του εν λόγω υποσυνόλου από το πλήθος εγγραφών που προορίζονται για χρήση για την αποθήκευση των στοιχείων επίμονων δεδομένων,a control store for storing usage control information used to identify said subset of the plurality of records intended for use in storing the persistent data items; όπου, σε απόκριση του εν λόγω συμβάντος που προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας, το κύκλωμα ελέγχου ετερόχρονης εγγραφής διατάσσεται ώστε να παραπέμπει στο χώρο αποθήκευσης ελέγχου και να προσδιορίζει τις εγγραφές των οποίων τα στοιχεία δεδομένων τους πρέπει να εγγραφούν ετερόχρονα στη μη πτητική μνήμη.wherein, in response to said event causing use of the standby power source, the write-back control circuit is arranged to refer to the control store and identify the records whose data items are to be written back to the non-volatile memory. 7. Μια διάταξη όπως αξιώνεται στην Αξίωση 6, όπου ο χώρος αποθήκευσης κρυφής μνήμης κατατέμνεται σε μια επίμονη περιοχή και μια μη επίμονη περιοχή, ενώ οι πληροφορίες ελέγχου χρήσης επιτρέπουν τον προσδιορισμό της εν λόγω επίμονης περιοχής.7. An arrangement as claimed in Claim 6, wherein the cache storage is partitioned into a persistent area and a non-persistent area, and the usage control information enables identification of said persistent area. 8. Μια διάταξη όπως αξιώνεται στην Αξίωση 7, όπου οι εν λόγω πληροφορίες ελέγχου χρήσης προσδιορίζουν μια συνοριακή διεύθυνση μεταξύ της επίμονης περιοχής και της μη επίμονης περιοχής.8. An arrangement as claimed in Claim 7, wherein said usage control information specifies a boundary address between the persistent area and the non-persistent area. 9. Μια διάταξη όπως αξιώνεται στην Αξίωση 7, όπου το εν λόγω υποσύνολο του πλήθους εγγραφών που διαμορφώνουν την επίμονη περιοχή περιλαμβάνει ένα ή περισσότερα από τα ακόλουθα:9. An arrangement as claimed in Claim 7, wherein said subset of the plurality of records forming the persistent region comprises one or more of the following: μια ακολουθία συνεχόμενων εγγραφών εντός του χώρου αποθήκευσης κρυφής μνήμης,a sequence of contiguous writes within the cache storage, ένα πλήθος μη συνεχόμενων εγγραφών εντός του χώρου αποθήκευσης κρυφής μνήμης,a plurality of non-contiguous writes within the cache storage space; μια ακολουθία εγγραφών παρεμβαλλόμενων με τις εγγραφές που διαμορφώνουν τη μη επίμονη περιοχή.a sequence of records interleaved with the records that make up the non-persistent region. 10. Μια διάταξη όπως αξιώνεται στην Αξίωση 6, όπου οι εν λόγω πληροφορίες ελέγχου χρήσης προσδιορίζουν ένα μέγιστο αριθμό εγγραφών οι οποίες προορίζονται για χρήση για την αποθήκευση των στοιχείων επίμονων δεδομένων.10. An arrangement as claimed in Claim 6, wherein said usage control information specifies a maximum number of records intended for use in storing the persistent data items. 11. Μια διάταξη όπως αξιώνεται στην Αξίωση 10, όπου:11. An arrangement as claimed in Claim 10, wherein: κάθε εγγραφή εντός του χώρου αποθήκευσης κρυφής μνήμης έχει μια ένδειξη επιμονής συσχετισμένη με αυτή, η οποία παίρνει την τιμή 1 ώστε να προσδιορίζει ότι αυτή η εγγραφή αποθηκεύει επίμονα δεδομένα, καιeach entry within the cache store has a persistence flag associated with it, which takes the value 1 to indicate that this entry is persistently storing data, and η διάταξη περαιτέρω περιλαμβάνει ένα κύκλωμα ελέγχου το οποίο εξασφαλίζει ότι σε κάθε χρονικό σημείο ο αριθμός εγγραφών που χρησιμοποιούνται για την αποθήκευση των επίμονων δεδομένων είναι μικρότερος από ή ίσος με τον εν λόγω μέγιστο αριθμό.the arrangement further includes a control circuit which ensures that at each point in time the number of records used to store the persistent data is less than or equal to said maximum number. 12. Μια διάταξη όπως αξιώνεται στην Αξίωση 10, η οποία περαιτέρω περιλαμβάνει:12. An arrangement as claimed in Claim 10, further comprising: ένα χώρο αποθήκευσης προσδιορισμού εγγραφών για την τήρηση πληροφοριών αναγνωριστικών για κάθε εγγραφή εντός του χώρου αποθήκευσης κρυφής μνήμης που αποθηκεύει επίμονα δεδομένα, καιa record identification store for holding identifier information for each record within the cache store that stores persistent data, and η διάταξη περαιτέρω περιλαμβάνει ένα κύκλωμα ελέγχου το οποίο εξασφαλίζει ότι σε κάθε χρονικό σημείο ο αριθμός εγγραφών που χρησιμοποιούνται για την αποθήκευση των επίμονων δεδομένων είναι μικρότερος από ή ίσος με τον εν λόγω μέγιστο αριθμό.the arrangement further includes a control circuit which ensures that at each point in time the number of records used to store the persistent data is less than or equal to said maximum number. 13. Μια διάταξη όπως αξιώνεται στην Αξίωση 12, όπου οι εν λόγω πληροφορίες αναγνωριστικών περιλαμβάνουν μια τιμή δείκτη που χρησιμοποιείται για τον προσδιορισμό μιας συσχετισμένης εγγραφής εντός του χώρου αποθήκευσης κρυφής μνήμης.13. An arrangement as claimed in Claim 12, wherein said identifier information includes a pointer value used to identify an associated entry within the cache storage. 14. Μια διάταξη όπως αξιώνεται στην Αξίωση 6, η οποία περαιτέρω περιλαμβάνει:14. An arrangement as claimed in Claim 6, further comprising: ένα κύκλωμα εκχώρησης, το οποίο αποκρίνεται σε ένα αίτημα που προκαλεί την εκχώρηση ενός νέου στοιχείου δεδομένων στο χώρο αποθήκευσης κρυφής μνήμης, για παραπομπή στο χώρο αποθήκευσης ελέγχου κατά τον προσδιορισμό σε ποια εγγραφή κρυφής μνήμης πρόκειται να εκχωρηθεί το νέο στοιχείο δεδομένων, με τρόπο ώστε όταν το νέο στοιχείο δεδομένων είναι ένα στοιχείο επίμονων δεδομένων, αυτό το νέο στοιχείο δεδομένων εκχωρείται σε μια εγγραφή εντός του εν λόγω υποσυνόλου του πλήθους εγγραφών.an allocation circuit, which responds to a request causing a new data item to be allocated to the cache store, for reference to the control store when determining which cache entry to allocate the new data item to, such that when the new data item is a persistent data item, this new data item is assigned to a record within that subset of the record set. 15. Μια διάταξη όπως αξιώνεται στην Αξίωση 14, όπου το αίτημα παρέχει πληροφορίες τύπου οι οποίες υποδηλώνουν κατά πόσο το νέο στοιχείο δεδομένων είναι ένα στοιχείο επίμονων δεδομένων ή ένα στοιχείο μη επίμονων δεδομένων.15. An arrangement as claimed in Claim 14, wherein the request provides type information indicating whether the new data item is a persistent data item or a non-persistent data item. 16. Μια διάταξη όπως αξιώνεται στην Αξίωση 14, η οποία περαιτέρω περιλαμβάνει έναν ή περισσότερους πίνακες σελίδων οι οποίοι παρέχουν χαρακτηριστικά για τις σελίδες στη μη πτητική μνήμη, όπου για κάθε σελίδα τα εν λόγω χαρακτηριστικά περιλαμβάνουν ένα χαρακτηριστικό τύπου το οποίο προσδιορίζει κατά πόσο τα στοιχεία δεδομένων εντός αυτής της σελίδας είναι στοιχεία επίμονων δεδομένων ή στοιχεία μη επίμονων δεδομένων, ενώ το εν λόγω χαρακτηριστικό τόπου παρέχεται σε συσχέτιση με το εν λόγω αίτημα.16. An arrangement as claimed in Claim 14, further comprising one or more page tables which provide attributes for the pages in the non-volatile memory, wherein for each page said attributes include a type attribute which specifies whether the elements of data within this page are persistent data items or non-persistent data items, while said location attribute is provided in association with said request. 17. Μια διάταξη όπως αξιώνεται στην Αξίωση 16, η οποία περαιτέρω περιλαμβάνει: ένα ή περισσότερα επίπεδα κρυφής μνήμης που μεσολαβούν μεταξύ του χώρου αποθήκευσης κρυφής μνήμης και του κυκλώματος επεξεργασίας,17. An arrangement as claimed in Claim 16, further comprising: one or more cache layers intervening between the cache storage and processing circuitry; όπου τα επίμονα δεδομένα που εξάγονται από το κύκλωμα επεξεργασίας για αποθήκευση στο χώρο αποθήκευσης κρυφής μνήμης, οι πληροφορίες χαρακτηριστικών τύπου χρησιμοποιούνται ώστε να προκαλούν τη λειτουργία του ενός ή των περισσότερων επιπέδων παρέμβασης της κρυφής μνήμης σε λειτουργία ετερόχρονης εγγραφής για τα επίμονα δεδομένα.wherein the persistent data is output by the processing circuit for storage in the cache storage, the type attribute information is used to cause the one or more cache intervention levels to operate in a write-ahead mode for the persistent data. 18. Μια διάταξη όπως αξιώνεται στην Αξίωση 1, όπου η μη πτητική μνήμη περιλαμβάνει, επιπλέον του μη πτητικού χώρου αποθήκευσης, έναν πτητικό χώρο αποθήκευσης προς σύζευξη με την εφεδρική πηγή ενέργειας και προς λειτουργία ως μια περιοχή διευθυνσιοδοτούμενης μη πτητικής μνήμης, όπου σε απόκριση του εν λόγω συμβάντος που προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας, τουλάχιστον τα ρυπαρά επίμονα δεδομένα που αποθηκεύονται στον πτητικό χώρο αποθήκευσης αντιγράφονται στο μη πτητικό χώρο αποθήκευσης.18. An arrangement as claimed in Claim 1, wherein the non-volatile memory includes, in addition to the non-volatile storage area, a volatile storage area to be coupled to the backup power source and to function as an addressable non-volatile memory area, wherein in response to in that event that causes the backup power source to be used, at least the dirty persistent data stored in the volatile storage is copied to the non-volatile storage. 19. Μια μέθοδος διαχείρισης της αποθήκευσης των επίμονων δεδομένων σε ένα χώρο αποθήκευσης κρυφής μνήμης που έχει ένα πλήθος εγγραφών για την αποθήκευση των στοιχείων δεδομένων που συσχετίζονται με διευθύνσεις μνήμης σε μια μη πτητική μνήμη, με τα στοιχεία δεδομένων να περιλαμβάνουν στοιχεία επίμονων δεδομένων και στοιχεία μη επίμονων δεδομένων, με τη μέθοδο να περιλαμβάνει:19. A method of managing the storage of persistent data in a cache storage having a plurality of entries for storing data items associated with memory addresses in a non-volatile memory, the data items including persistent data items and non-volatile items persistent data, with the method including: τη χρήση ενός κυκλώματος ελέγχου ετερόχρονης εγγραφής για τον έλεγχο της ετερόχρονης εγγραφής των στοιχείων δεδομένων από το χώρο αποθήκευσης κρυφής μνήμης στη μη πτητική μνήμη,using an asynchronous write control circuit to control the asynchronous writing of the data items from the cache storage to the non-volatile memory; τον προσδιορισμό, σε εξάρτηση πληροφοριών ενδεικτικών της χωρητικότητας μιας εφεδρικής πηγής ενέργειας, ενός υποσυνόλου από ένα πλήθος εγγραφών προς χρήση για την αποθήκευση των στοιχείων επίμονων δεδομένων, καιdetermining, in dependence on information indicative of the capacity of a backup power source, a subset of a plurality of records to be used to store the persistent data items, and σε απόκριση ενός συμβάντος που προκαλεί τη χρήση της εφεδρικής πηγής ενέργειας, τον εξαναγκασμό εκκίνησης της ετερόχρονης εγγραφής στη μη πτητική μνήμη από το κύκλωμα ελέγχου ετερόχρονης εγγραφής των στοιχείων επίμονων δεδομένων που είναι αποθηκευμένα στο εν λόγω υποσύνολο από το πλήθος των εγγραφών.in response to an event that causes the standby power source to be used, forcing the non-volatile memory asynchronous write initiation by the asynchronous write control circuit of the persistent data items stored in said subset of said plurality of writes. 20. Μια διάταξη η οποία περιλαμβάνει:20. A provision which includes: μέσα αποθήκευσης σε κρυφή μνήμη που έχουν ένα πλήθος εγγραφών για την αποθήκευση των στοιχείων δεδομένων που συσχετίζονται με διευθύνσεις μνήμης σε μια μη πτητική μνήμη, με τα στοιχεία δεδομένων να περιλαμβάνουν στοιχεία επίμονων δεδομένων και στοιχεία μη επίμονων δεδομένων,cache storage media having a plurality of records for storing data items associated with memory addresses in a non-volatile memory, the data items including persistent data items and non-persistent data items; μέσα ελέγχου ετερόχρονης εγγραφής για τον έλεγχο της ετερόχρονης εγγραφής των στοιχείων δεδομένων από τα μέσα αποθήκευσης σε κρυφή μνήμη στη μη πτητική μνήμη, καιasynchronous write control means for controlling asynchronous writing of the data items from the cache storage media to the non-volatile memory, and μέσα προσδιορισμού χρήσης της κρυφής μνήμης για τον προσδιορισμό, σε εξάρτηση από πληροφορίες ενδεικτικές της χωρητικότητας μιας εφεδρικής πηγής ενέργειας, ενός υποσυνόλου από το πλήθος εγγραφών προς χρήση για την αποθήκευση των στοιχείων επίμονων δεδομένων,means for determining cache usage for determining, in dependence on information indicative of the capacity of a backup power source, a subset of the plurality of records to be used for storing the persistent data items; όπου, σε απόκριση ενός συμβάντος που προκαλεί τη χρήσης της εφεδρικής πηγής ενέργειας, τα μέσα ελέγχου ετερόχρονης εγγραφής για την εκκίνηση της ετερόχρονης εγγραφής στη μη πτητική μνήμη των στοιχείων επίμονων δεδομένων που αποθηκεύονται στο εν λόγω υποσύνολο από το πλήθος των εγγραφών.wherein, in response to an event causing the backup power source to be used, the asynchronous write control means for initiating the asynchronous write to the non-volatile memory of the persistent data items stored in said subset of the plurality of writes.
GR20170200172U 2017-06-28 2017-06-28 An apparatus and method of handling caching of persisent data GR20170200172U (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GR20170200172U GR20170200172U (en) 2017-06-28 2017-06-28 An apparatus and method of handling caching of persisent data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GR20170200172U GR20170200172U (en) 2017-06-28 2017-06-28 An apparatus and method of handling caching of persisent data

Publications (1)

Publication Number Publication Date
GR20170200172U true GR20170200172U (en) 2019-03-20

Family

ID=66166847

Family Applications (1)

Application Number Title Priority Date Filing Date
GR20170200172U GR20170200172U (en) 2017-06-28 2017-06-28 An apparatus and method of handling caching of persisent data

Country Status (1)

Country Link
GR (1) GR20170200172U (en)

Similar Documents

Publication Publication Date Title
US20200264980A1 (en) Apparatus and method of handling caching of persistent data
US10126964B2 (en) Hardware based map acceleration using forward and reverse cache tables
US10169232B2 (en) Associative and atomic write-back caching system and method for storage subsystem
US8688894B2 (en) Page based management of flash storage
US8606997B2 (en) Cache hierarchy with bounds on levels accessed
US7802054B2 (en) Apparatus and methods using invalidity indicators for buffered memory
US9792221B2 (en) System and method for improving performance of read/write operations from a persistent memory device
US20150347310A1 (en) Storage Controller and Method for Managing Metadata in a Cache Store
US8909870B2 (en) Cache evictions from data cache based on content of address translation table cache and address translation table
US9086991B2 (en) Solid state drive cache recovery in a clustered storage system
US11580029B2 (en) Memory system, computing system, and methods thereof for cache invalidation with dummy address space
CN111858404B (en) Method and system for address translation, and computer readable medium
US10635581B2 (en) Hybrid drive garbage collection
US10564871B2 (en) Memory system having multiple different type memories with various data granularities
US10223001B2 (en) Memory system
KR20180122969A (en) A multi processor system and a method for managing data of processor included in the system
KR20150062039A (en) Semiconductor device and operating method thereof
US9128856B2 (en) Selective cache fills in response to write misses
US10635614B2 (en) Cooperative overlay
KR20200004119A (en) Memory system and operating method thereof
KR101153688B1 (en) Nand flash memory system and method for providing invalidation chance to data pages
GR20170200172U (en) An apparatus and method of handling caching of persisent data
CN114746848B (en) Cache architecture for storage devices
US11321243B2 (en) Data storage device including a semiconductor device managing address mapping of a semiconductor memory device
US20230409472A1 (en) Snapshotting Pending Memory Writes Using Non-Volatile Memory