GR20180200176U - Delay masking action for memory access requests - Google Patents

Delay masking action for memory access requests Download PDF

Info

Publication number
GR20180200176U
GR20180200176U GR20180200176U GR20180200176U GR20180200176U GR 20180200176 U GR20180200176 U GR 20180200176U GR 20180200176 U GR20180200176 U GR 20180200176U GR 20180200176 U GR20180200176 U GR 20180200176U GR 20180200176 U GR20180200176 U GR 20180200176U
Authority
GR
Greece
Prior art keywords
memory
request
execution
memory access
requests
Prior art date
Application number
GR20180200176U
Other languages
Greek (el)
Inventor
Nikos NIKOLERIS
Andreas Lars SANDBERG
Radhika Sanjeev Jagtap
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 GR20180200176U priority Critical patent/GR20180200176U/en
Publication of GR20180200176U publication Critical patent/GR20180200176U/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
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Abstract

An apparatus comprises control circuitry to control access to a memory implemented using a memory technology providing variable access latency. The control circuitry has request handling circuitry to identify an execution context switch comprising a transition from servicing memory access requests associated with a first execution context to servicing memory access requests associated with a second execution context. At least when the execution context switch meets a predetermined condition, a delay masking action is triggered to control subsequent memory access requests associated with the second execution context, for which the required data is already stored in the memory, to be serviced with a response delay which is independent of which addresses were accessed by the memory-access requests associated with the first execution context. This can help guard against attacks which aim to exploit variation in response latency to gain insight into the addresses accessed by a victim execution context.

Description

ΛΕΙΤΟΥΡΓΙΑ ΚΑΘΥΣΤΕΡΗΣΗΣ ΣΥΓΚΑΛΥΨΗΣ ΓΙΑ ΑΙΤΗΜΑΤΑ MASK DELAY FUNCTION FOR REQUESTS

ΠΡΟΣΒΑΣΗΣ ΣΤΗ ΜΝΗΜΗ MEMORY ACCESS

ΥΠΟΒΑΘΡΟ BACKGROUND

Τεχνικό πεδίο Technical field

Η παρούσα τεχνική σχετίζεται με το πεδίο της επεξεργασίας δεδομένων. Πιο συγκεκριμένα, σχετίζεται με την πρόσβαση σε μια μνήμη η οποία υλοποιείται με τη χρήση μιας τεχνολογίας μνήμης που παρέχει μεταβλητό λανθάνοντα χρόνο πρόσβασης. The present technique relates to the field of data processing. More specifically, it relates to accessing a memory that is implemented using a memory technology that provides variable access latency.

Τεχνικό υπόβαθρο Technical background

Ορισμένοι τύποι τεχνολογιών μνήμης που χρησιμοποιούνται σε συστήματα επεξεργασίας δεδομένων μπορεί να παρέχουν ένα μεταβλητό λανθάνοντα χρόνο πρόσβασης. Συνεπώς, ορισμένες φορές τα αιτήματα πρόσβασης στη μνήμη μπορούν να εξυπηρετούνται με μεγαλύτερο λανθάνοντα χρόνο από άλλες φορές. Πιο συγκεκριμένα, με ορισμένες μορφές τεχνολογιών μνήμης ο λανθάνων χρόνος πρόσβασης μπορεί να εξαρτάται όχι μόνο από το κατά πόσο τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, αλλά ακόμη και σε περιπτώσεις στις οποίες τα απαιτούμενα δεδομένα είναι αποθηκευμένα στη μνήμη, μπορεί να υπάρχει μια διακύμανση στο λανθάνοντα χρόνο πρόσβασης ανάλογα ποια συγκεκριμένη θέση στη μνήμη αποθηκεύει τα απαιτούμενα δεδομένα και/ή ανάλογα τις προηγούμενες διευθύνσεις πρόσβασης. Certain types of memory technologies used in data processing systems may provide a variable access latency. Therefore, sometimes memory access requests can be served with higher latency than other times. More specifically, with some forms of memory technologies the access latency may depend not only on whether the required data is already stored in memory, but even in cases where the required data is stored in memory, there may be a variance in the access latency depending on which specific memory location stores the required data and/or depending on the previous access addresses.

ΠΕΡΙΛΗΨΗ SUMMARY

Τουλάχιστον ορισμένα παραδείγματα παρέχουν μια διάταξη που περιλαμβάνει: ένα κύκλωμα ελέγχου για τον έλεγχο της πρόσβασης σε μια μνήμη που υλοποιείται με τη χρήση μιας τεχνολογίας μνήμης που παρέχει μεταβλητό λανθάνοντα χρόνο πρόσβασης, με το κύκλωμα ελέγχου να περιλαμβάνει: ένα κύκλωμα διασύνδεσης για τη λήψη αιτημάτων πρόσβασης στη μνήμη για εξυπηρέτηση από τη μνήμη και την παροχή απαντήσεων στα αιτήματα πρόσβασης στη μνήμη που εξυπηρετούνται από τη μνήμη και ένα κύκλωμα διαχείρισης αιτημάτων για: τον προσδιορισμό μιας μεταγωγής πλαισίου εκτέλεσης η οποία περιλαμβάνει μια μετάβαση από την εξυπηρέτηση αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα πρώτο πλαίσιο εκτέλεσης στην εξυπηρέτηση αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα δεύτερο πλαίσιο εκτέλεσης και τουλάχιστον όταν η μεταγωγή πλαισίου εκτέλεσης ικανοποιεί μια προκαθορισμένη συνθήκη, τη διέγερση μιας λειτουργίας για τον έλεγχο των επακόλουθων αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με το δεύτερο πλαίσιο εκτέλεσης, για τα οποία τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, προς εξυπηρέτηση με μια καθυστέρηση απάντησης η οποία είναι ανεξάρτητη των διευθύνσεων στις οποίες πραγματοποιήθηκε πρόσβαση από τα αιτήματα πρόσβασης στη μνήμη που σχετίζονται με το πρώτο πλαίσιο εκτέλεσης, με την εν λόγω καθυστέρηση απάντησης να περιλαμβάνει μια καθυστέρηση μεταξύ της λήψης του αιτήματος πρόσβασης στη μνήμη από το εν λόγω κύκλωμα διασύνδεσης και της παροχής μιας απάντησης στο αίτημα πρόσβασης στη μνήμη από το εν λόγω κύκλωμα διασύνδεσης. At least some examples provide an arrangement comprising: a control circuit for controlling access to a memory implemented using a memory technology that provides variable access latency, the control circuit comprising: an interface circuit for receiving access requests in memory to be serviced by memory and providing responses to memory access requests serviced by memory, and a request management circuit for: determining an execution context switch that includes a transition from servicing memory access requests associated with a first execution context in servicing memory access requests associated with a second execution context and at least when the execution context switch satisfies a predetermined condition, triggering a function to control subsequent memory access requests associated with the second context execution frames, for which the required data is already stored in memory, to be served with a response delay that is independent of the addresses accessed by the memory access requests associated with the first execution frame, with said response delay to include a delay between the receipt of the memory access request by said interface circuit and the provision of a response to the memory access request by said interface circuit.

Τουλάχιστον ορισμένα παραδείγματα παρέχουν μια μέθοδο για τον έλεγχο της πρόσβασης σε μια μνήμη η οποία υλοποιείται με τη χρήση μιας τεχνολογίας μνήμης που παρέχει ένα μεταβλητό λανθάνοντα χρόνο πρόσβασης, με τη μέθοδο να περιλαμβάνει: τη λήψη αιτημάτων πρόσβασης στη μνήμη για εξυπηρέτηση από τη μνήμη και την παροχή απαντήσεων σε αιτήματα πρόσβασης στη μνήμη που εξυπηρετούνται από τη μνήμη, τον προσδιορισμό μιας μεταγωγής πλαισίου εκτέλεσης η οποία περιλαμβάνει μια μετάβαση από την εξυπηρέτηση αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα πρώτο πλαίσιο εκτέλεσης στην εξυπηρέτηση αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα δεύτερο πλαίσιο εκτέλεσης και τουλάχιστον όταν η μεταγωγή πλαισίου εκτέλεσης ικανοποιεί μια προκαθορισμένη συνθήκη, τη διέγερση μιας λειτουργίας καθυστέρησης συγκάλυψης για τον έλεγχο των επακόλουθων αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με το δεύτερο πλαίσιο εκτέλεσης, για τα οποία τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, προς εξυπηρέτηση με μια καθυστέρηση απάντησης η οποία είναι ανεξάρτητη των διευθύνσεων στις οποίες πραγματοποιήθηκε πρόσβαση από τα αιτήματα πρόσβασης στη μνήμη που σχετίζονται με το πρώτο πλαίσιο εκτέλεσης, με την εν λόγω καθυστέρηση απάντησης να περιλαμβάνει μια καθυστέρηση μεταξύ της λήψης του αιτήματος πρόσβασης στη μνήμη από το εν λόγω κύκλωμα διασύνδεσης και της παροχής μιας απάντησης στο αίτημα πρόσβασης στη μνήμη από το εν λόγω κύκλωμα διασύνδεσης. At least some examples provide a method for controlling access to a memory implemented using a memory technology that provides a variable access latency, the method comprising: receiving memory access requests for service from the memory and providing responses to memory access requests served by the memory, determining an execution context switch that includes a transition from serving memory access requests associated with a first execution context to serving memory access requests associated with a second context execution frame and at least when the execution frame switching satisfies a predetermined condition, triggering a masking delay function to control subsequent memory access requests associated with the second execution frame, for which the required data is already stored in memory, to service with a response delay that is independent of the addresses accessed by the memory access requests associated with the first execution frame, said response delay comprising a delay between the receipt of the memory access request by the due to an interface circuit and the provision of a response to the memory access request by said interface circuit.

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

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

Το Σχήμα 1 απεικονίζει σχηματικά ένα παράδειγμα ενός συστήματος επεξεργασίας δεδομένων που περιλαμβάνει τουλάχιστον μια διάταξη μνήμης, Figure 1 schematically illustrates an example of a data processing system including at least one memory device,

Το Σχήμα 2 απεικονίζει ένα παράδειγμα μιας διάταξης μνήμης που υλοποιείται με τη χρήση δυναμικής μνήμης τυχαίας πρόσβασης (dynamic random access memory ή DRAM), To Σχήμα 3 απεικονίζει ένα παράδειγμα μιας επίθεσης για την επίτευξη πρόσβασης σε μυστικές πληροφορίες που σχετίζονται με ένα πλαίσιο εκτέλεσης θύμα με βάση την ανάλυση της διακύμανσης του λανθάνοντα χρόνου πρόσβασης σε μια μνήμη, Figure 2 illustrates an example of a memory arrangement implemented using dynamic random access memory (DRAM), Figure 3 illustrates an example of an attack to gain access to secret information associated with a victim execution context with based on the analysis of the variation of the latency of access to a memory,

Το Σχήμα 4 δείχνει ένα παράδειγμα ενός κυκλώματος ελέγχου που έχει ένα κύκλωμα διαχείρισης αιτημάτων για τον προσδιορισμό των μεταγωγών πλαισίου εκτέλεσης και τη διέγερση μιας αντίδρασης συγκάλυψης καθυστέρησης σε απόκριση μιας μεταγωγής πλαισίου εκτέλεσης η οποία ικανοποιεί μια προκαθορισμένη συνθήκη, Figure 4 shows an example of a control circuit having a request handling circuit for determining execution frame switches and triggering a delay masking reaction in response to an execution frame switch that satisfies a predetermined condition,

Το Σχήμα 5 δείχνει ένα παράδειγμα δημιουργίας ενός αναγνωριστικού πλαισίου εκτέλεσης που σχετίζεται με αιτήματα πρόσβασης στη μνήμη, Figure 5 shows an example of creating an execution context ID associated with memory access requests,

Το Σχήμα 6 δείχνει ένα παράδειγμα χρήσης μιας ένδειξης διαχωρισμού μεταγωγής πλαισίου ως ένδειξη για την ύπαρξη μιας μεταγωγής πλαισίου εκτέλεσης, Figure 6 shows an example of using a frameswitch separation indicator as an indication of the existence of an execution frameswitch,

Το Σχήμα 7 απεικονίζει ένα παράδειγμα καθυστέρησης ενός αιτήματος ή μιας απάντησης σε ένα αίτημα πρόσβασης στη μνήμη για τη συγκάλυψη μιας πραγματικής καθυστέρησης απάντησης που σχετίζεται με την πρόσβαση στη μνήμη, Figure 7 illustrates an example of delaying a request or a response to a memory access request to mask an actual response delay associated with the memory access,

Το Σχήμα 8 δείχνει ένα παράδειγμα τοποθέτησης ετικετών σε εγγραφές κρυφής μνήμης με το αναγνωριστικό πλαισίου εκτέλεσης ώστε ένα κατάντη στοιχείο να μπορεί να προσδιορίζει ποιο πλαίσιο σχετίζεται με αιτήματα ετερόχρονης εγγραφής, και Figure 8 shows an example of tagging cache entries with the execution frame ID so that a downstream component can determine which frame is associated with asynchronous write requests, and

Το Σχήμα 9 είναι ένα διάγραμμα ροής που δείχνει μια μέθοδο προσδιορισμού κατά πόσο να πραγματοποιηθεί μια λειτουργία καθυστέρησης συγκάλυψης. Figure 9 is a flow chart showing a method of determining whether to perform a masking delay operation.

ΠΕΡΙΓΡΑΦΗ ΤΩΝ ΠΑΡΑΔΕΙΓΜΑΤΩΝ DESCRIPTION OF EXAMPLES

Μια διάταξη επεξεργασίας δεδομένων μπορεί να έχει μηχανισμούς ασφαλείας για την εξασφάλιση ότι ορισμένες μυστικές πληροφορίες είναι προσβάσιμες σε ορισμένα πλαίσια εκτέλεσης που εκτελούνται στο σύστημα επεξεργασίας δεδομένων χωρίς να είναι προσβάσιμες από άλλα πλαίσια εκτέλεσης. Γ ια παράδειγμα, ένα πλαίσιο εκτέλεσης μπορεί να σχετίζεται με ένα δεδομένο επίπεδο προνομίων και ορισμένα δεδομένα μπορεί να είναι προσβάσιμα μόνο σε ένα πλαίσιο που έχει ένα ορισμένο επίπεδο προνομίων ή υψηλότερο. Για παράδειγμα μπορούν να χρησιμοποιούνται τεχνικές προστασίας μνήμης για την ενδυνάμωση των επιθυμητών δικαιωμάτων πρόσβασης στη μνήμη. A data processing arrangement may have security mechanisms to ensure that certain secret information is accessible to certain execution frameworks running on the data processing system without being accessible by other execution frameworks. For example, an execution context may be associated with a given privilege level, and some data may only be accessible to a context that has a certain privilege level or higher. For example, memory protection techniques can be used to enforce the desired memory access rights.

Ωστόσο, έχει αναγνωριστεί ότι ο μεταβλητός λανθάνον χρόνος πρόσβασης που παρέχεται από ορισμένες μορφές τεχνολογιών μνήμης μπορεί να εκμεταλλεύεται από επιτιθέμενους για την παράκαμψη ορισμένων προστασιών ασφαλείας που παρέχονται για τον περιορισμό της πρόσβασης σε ορισμένες ευαίσθητες πληροφορίες. Γ ια παράδειγμα, το πλαίσιο εκτέλεσης του επιτιθέμενου και ένα πλαίσιο εκτέλεσης θύμα το οποίο έχει πρόσβαση σε ευαίσθητες πληροφορίες μη προσβάσιμες στον επιτιθέμενο μπορεί κάθε ένα να εκχωρεί δεδομένα σε μια δεδομένη μνήμη. Εάν το πλαίσιο θύμα πραγματοποιήσει πρώτο πρόσβαση στα δεδομένα του και στη συνέχεια μετά από μια μεταγωγή πλαισίου εκτέλεσης στο πλαίσιο του επιτιθέμενου, το πλαίσιο του επιτιθέμενου πραγματοποιεί πρόσβαση στα δεδομένα του, τότε με ορισμένες τεχνολογίες μνήμης ο λανθάνον χρόνος απάντησης στα αιτήματα πρόσβασης στη μνήμη που εκδίδονται από το πλαίσιο του επιτιθέμενου μπορεί να εξαρτάται από τις διευθύνσεις στις οποίες πραγματοποιήθηκε πρόσβαση από το πλαίσιο θύμα πριν τη μεταγωγή πλαισίου εκτέλεσης. Αυτό μπορεί να κάνει δυνατή τη συναγωγή πληροφοριών για τη λειτουργία του πλαισίου θύματος, γεγονός το οποίο θα μπορούσε να διαρρεύσει ορισμένες πληροφορίες πλευρικού καναλιού για τις μυστικές πληροφορίες. However, it has been recognized that the variable access latency provided by some forms of memory technologies can be exploited by attackers to bypass certain security protections provided to limit access to certain sensitive information. For example, the attacker's runtime and a victim's runtime that has access to sensitive information inaccessible to the attacker can each allocate data to a given memory. If the victim frame accesses its data first, and then after an execution frame switch to the attacker frame, the attacker frame accesses its data, then with some memory technologies the latency to respond to memory access requests issued from the attacker's frame may depend on the addresses accessed by the victim frame before execution frame switching. This may make it possible to infer information about the operation of the victim frame, which could leak some side-channel information about the secret information.

Μια προσέγγιση για την αντιμετώπιση τέτοιων επιθέσεων θα μπορούσε να είναι η χρήση μιας πολιτικής σταθερού λανθάνοντος χρόνου στην οποία κάθε αίτημα πρόσβασης στη μνήμη για το οποίο τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα σε μια δεδομένη μνήμη εξυπηρετείται με μια καθυστέρηση απάντησης η οποία ισούται με κάποιον προκαθορισμένο σταθερό λανθάνοντα χρόνο. Ωστόσο, αυτό μπορεί να είναι επιβλαβές στην απόδοση εφόσον συχνά ο σταθερός λανθάνον χρόνος θα έπρεπε να είναι η χειριστή περίπτωση καθυστέρησης που παρέχεται από τη διάταξη μνήμης και επομένως αυτό μπορεί να προϋποθέτει αδικαιολόγητα την καθυστέρηση μεγάλου αριθμού αιτημάτων για την επιβράδυνση της απόδοσης του συστήματος επεξεργασίας. One approach to countering such attacks could be to use a constant latency policy in which any memory access request for which the required data is already stored in a given memory is served with a response delay equal to some predefined constant latency time. However, this can be detrimental to performance since often the fixed latency should be the latency operator provided by the memory device and thus this can unreasonably require a large number of requests to be delayed to slow down the performance of the processing system.

Η διάταξη που περιγράφεται παρακάτω παρέχει ένα κύκλωμα ελέγχου για τον έλεγχο της πρόσβασης σε μια μνήμη που υλοποιείται με τη χρήση μιας τεχνολογίας μνήμης που παρέχει μεταβλητό λανθάνοντα χρόνο πρόσβασης. Γ ια παράδειγμα το κύκλωμα ελέγχου θα μπορούσε να είναι ένα τμήμα μιας διασύνδεσης ή ενός ελεγκτή μνήμης. Το κύκλωμα ελέγχου έχει ένα κύκλωμα διασύνδεσης για τη λήψη αιτημάτων πρόσβασης στη μνήμη προς εξυπηρέτηση από τη μνήμη και την παροχή απαντήσεων σε αιτήματα πρόσβασης στη μνήμη που έχουν εξυπηρετηθεί από τη μνήμη. Το κύκλωμα ελέγχου έχει επίσης ένα κύκλωμα διαχείρισης αιτημάτων για τον προσδιορισμό μιας μεταγωγής πλαισίου εκτέλεσης η οποία περιλαμβάνει μια μετάβαση από την εξυπηρέτηση αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα πρώτο πλαίσιο εκτέλεσης στην εξυπηρέτηση αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα δεύτερο πλαίσιο εκτέλεσης. Τουλάχιστον όταν η μεταγωγή πλαισίου εκτέλεσης ικανοποιεί μια προκαθορισμένη συνθήκη, το κύκλωμα διαχείρισης αιτημάτων διεγείρει μια λειτουργία συγκάλυψης καθυστέρησης για τον έλεγχο των επακόλουθων αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με το δεύτερο πλαίσιο εκτέλεσης, για τα οποία τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, προς εξυπηρέτηση με μια καθυστέρηση απάντησης η οποία είναι ανεξάρτητη των διευθύνσεων πρόσβασης από το αίτημα πρόσβασης στη μνήμη που σχετίζεται με το πρώτο πλαίσιο εκτέλεσης. Εδώ η καθυστέρηση απάντησης αναφέρεται σε μια καθυστέρηση μεταξύ της λήψης του αιτήματος πρόσβασης στη μνήμη από το κύκλωμα διασύνδεσης και της παροχής μιας απάντησης στο αίτημα πρόσβασης στη μνήμη από το κύκλωμα διασύνδεσης. The device described below provides a control circuit for controlling access to a memory implemented using a memory technology that provides variable access latency. For example the control circuit could be a part of an interface or a memory controller. The control circuit has an interface circuit for receiving memory access requests to be serviced by the memory and providing responses to memory access requests that have been serviced by the memory. The control circuit also has a request management circuit for determining an execution context switch which includes a transition from servicing memory access requests associated with a first execution context to servicing memory access requests associated with a second execution context. At least when the execution frame switch satisfies a predetermined condition, the request handling circuitry triggers a latency masking function to control subsequent memory access requests associated with the second execution frame, for which the required data is already stored in memory, to serving with a response delay which is independent of the access addresses from the memory access request associated with the first execution context. Here the response delay refers to a delay between the receipt of the memory access request by the interface circuit and the provision of a response to the memory access request by the interface circuit.

Με την παροχή ενός κυκλώματος ελέγχου το οποίο έχει τη δυνατότητα προσδιορισμού πότε συμβαίνει μια μετάβαση από την εξυπηρέτηση αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα πρώτο πλαίσιο εκτέλεσης στην εξυπηρέτηση αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα δεύτερο πλαίσιο εκτέλεσης, αυτό σημαίνει ότι δεν είναι απαραίτητη η διέγερση της λειτουργίας συγκάλυψης καθυστέρησης σε κάθε αίτημα πρόσβασης στη μνήμη. Αντίθετα η λειτουργία συγκάλυψης καθυστέρησης μπορεί να διεγείρεται τουλάχιστον όταν η μεταγωγή πλαισίου εκτέλεσης ικανοποιεί μια προκαθορισμένη συνθήκη. Αυτό μπορεί να βοηθάει στη μείωση της επιβάρυνσης στην απόδοση από την αντιμετώπιση των τύπων επιθέσεων ασφαλείας που εξετάστηκαν παραπάνω οι οποίες εκμεταλλεύονται το μεταβλητό λανθάνοντα χρόνο πρόσβασης στη μνήμη. Με τη διέγερση μιας λειτουργίας συγκάλυψης καθυστέρησης σε απόκριση μιας μεταγωγής πλαισίου εκτέλεσης που ικανοποιεί την προκαθορισμένη συνθήκη, αυτό σημαίνει ότι ο λανθάνον χρόνος που σχετίζεται με την απάντηση αιτημάτων πρόσβασης στη μνήμη μετά την αλλαγή πλαισίου εκτέλεσης δεν εξαρτάται από τις διευθύνσεις στις οποίες πραγματοποιήθηκε πρόσβαση από το αίτημα πρόσβασης στη μνήμη που σχετίζεται με το πρώτο πλαίσιο εκτέλεσης. Συνεπώς εάν το δεύτερο πλαίσιο εκτέλεσης είναι ένα πλαίσιο επιτιθέμενου και το πρώτο πλαίσιο εκτέλεσης είναι ένα πλαίσιο θύμα, ο επιτιθέμενος δεν έχει τη δυνατότητα να μάθει πληροφορίες για τις διευθύνσεις στις οποίες πραγματοποιήθηκε πρόσβαση από το πλαίσιο θύμα από την ανάλυση των καθυστερήσεων που σχετίζονται με την πρόσβαση στη μνήμη από το πλαίσιο του επιτιθέμενου. By providing a control circuit capable of determining when a transition occurs from servicing memory access requests associated with a first execution context to servicing memory access requests associated with a second execution context, this means that it is not necessary triggering the delay masking function on each memory access request. Instead the delay masking function can be triggered at least when the execution frame switching satisfies a predetermined condition. This can help reduce the performance overhead of dealing with the types of security attacks discussed above that exploit variable memory access latency. By triggering a latency masking function in response to an execution frame switch that satisfies the predefined condition, this means that the latency associated with responding to memory access requests after the execution frame switch does not depend on the addresses accessed by memory access request associated with the first execution context. Therefore if the second execution frame is an attacker frame and the first execution frame is a victim frame, the attacker is not able to learn information about the addresses accessed by the victim frame from analyzing the access delays in memory from the attacker's context.

Σε ορισμένα παραδείγματα, τουλάχιστον όταν η μεταγωγή πλαισίου εκτέλεσης ικανοποιεί την προκαθορισμένη συνθήκη, το κύκλωμα διαχείρισης απαντήσεων μπορεί να εξασφαλίζει ότι τουλάχιστον ένα επακόλουθο αίτημα πρόσβασης στη μνήμη που σχετίζεται με το δεύτερο πλαίσιο εκτέλεσης, για το οποίο τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, εξυπηρετείται με μια σταθερή καθυστέρηση απάντησης. Για παράδειγμα με μια μνήμη η οποία περιλαμβάνει πολλαπλές μονάδες αποθήκευσης (π.χ. συστοιχίες) προσβάσιμες παράλληλα, το τουλάχιστον ένα επακόλουθο αίτημα πρόσβασης στη μνήμη που διαχειρίζεται με μια σταθερή καθυστέρηση απάντησης θα μπορούσε να περιλαμβάνει τουλάχιστον ένα πρώτο αίτημα πρόσβασης στη μνήμη προς κάθε μονάδα αποθήκευσης το οποίο εξυπηρετείται μετά τη μεταγωγή πλαισίου εκτέλεσης. Ας σημειωθεί ότι το πρώτο αίτημα πρόσβασης στη μνήμη που εξυπηρετείται μετά τη μεταγωγή πλαισίου εκτέλεσης μπορεί να είναι το πρώτο αίτημα πρόσβασης στη μνήμη για το οποίο παρέχεται μια απάντηση από τη μνήμη, το οποίο μπορεί να μην είναι απαραίτητα το πρώτο αίτημα πρόσβασης στη μνήμη που λαμβάνεται από τη μνήμη μετά τη μεταγωγή πλαισίου εκτέλεσης. Ορισμένες μνήμες μπορεί να υλοποιούν μια πολιτική ποιότητας υπηρεσιών η οποία κάνει δυνατή την εξυπηρέτηση των αιτημάτων εκτός σειράς σε σχέση με τη σειρά λήψης τους. Επομένως, ορισμένες φορές το πρώτο αίτημα πρόσβασης στη μνήμη που εξυπηρετείται μετά τη μεταγωγή πλαισίου εκτέλεσης θα μπορούσε στην πραγματικότητα να είναι το δεύτερο ή τρίτο αίτημα που λήφθηκε μετά τη μεταγωγή πλαισίου εκτέλεσης, για παράδειγμα. In some examples, at least when the execution frame switch satisfies the predetermined condition, the response management circuit may ensure that at least one subsequent memory access request associated with the second execution frame, for which the required data is already stored in memory, served with a fixed response delay. For example with a memory that includes multiple storage units (eg arrays) accessed in parallel, the at least one subsequent memory access request handled with a fixed response delay could include at least one first memory access request to each unit storage which is served after execution frame switching. Note that the first memory access request served after the execution frame switch may be the first memory access request for which a memory response is provided, which may not necessarily be the first memory access request received from memory after execution frame switching. Some memories may implement a quality of service policy that makes it possible to service requests out of order relative to the order in which they were received. So sometimes the first memory access request served after the execution frame switch could actually be the second or third request received after the execution frame switch, for example.

Εξασφαλίζοντας ότι τουλάχιστον η πρώτη πρόσβαση στη μνήμη που εξυπηρετείται από μια δεδομένη μονάδα αποθήκευσης μετά τη μεταγωγή πλαισίου διαχειρίζεται με μια σταθερή καθυστέρηση απάντησης, αυτό μπορεί να κάνει δυσκολότερη για έναν επιτιθέμενο την απόκτηση πληροφοριών για τις διευθύνσεις στις οποίες πραγματοποιήθηκε πρόσβαση αμέσως πριν τη μεταγωγή πλαισίου από ένα διαφορετικό πλαίσιο εκτέλεσης. Σε ορισμένες περιπτώσεις, περισσότερα από ένα επακόλουθα αιτήματα πρόσβασης στη μνήμη προς κάθε μονάδα αποθήκευσης θα μπορούσαν να διαχειρίζονταν με μια σταθερή καθυστέρηση απάντησης. Για παράδειγμα, σε ορισμένες περιπτώσεις για τη βελτίωση της ασφάλειας η σταθερή καθυστέρηση απάντησης μπορεί να επιβάλλεται για μια ορισμένη περίοδο μετά τη μεταγωγή πλαισίου με το μέγεθος της περιόδου να ορίζεται ανάλογα το επίπεδο ασφαλείας που απαιτείται για μια δεδομένη υλοποίηση. By ensuring that at least the first memory access served by a given storage unit after a frame switch is handled with a fixed response delay, this can make it more difficult for an attacker to obtain information about the addresses accessed immediately before the frame switch by a different execution context. In some cases, more than one subsequent memory access request to each storage unit could be handled with a fixed response delay. For example, in some cases to improve security the fixed response delay may be imposed for a certain period after the frame switch with the size of the period being defined according to the level of security required for a given implementation.

Σε άλλα παραδείγματα, η καθυστέρηση απάντησης που επιβάλλεται μετά τη μεταγωγή πλαισίου εκτέλεσης μπορεί να μην απαιτείται να είναι σταθερή, αλλά θα μπορούσε να είναι κάποια τυχαία τιμή η οποία δεν εξαρτάται από κάποιο σχέδιο διευθύνσεων στις οποίες πραγματοποιήθηκε πρόσβαση πριν τη μεταγωγή πλαισίου. Εφόσον η καθυστέρηση απάντησης δε συσχετίζεται με τις διευθύνσεις στις οποίες πραγματοποιήθηκε πρόσβαση πριν το πρώτο πλαίσιο εκτέλεσης τότε αυτό αρκεί για να αποφευχθεί η δυνατότητα για τον επιτιθέμενο απόκτησης πληροφοριών για τη λειτουργία του πλαισίου θύματος με ανάλυση των χρονισμών πρόσβασης. In other examples, the response delay imposed after execution frameswitching may not be required to be constant, but could be some random value that does not depend on any pattern of addresses accessed prior to frameswitching. As long as the response delay is not correlated with the addresses accessed before the first execution frame then this is sufficient to prevent the attacker from being able to obtain information about the operation of the victim frame by analyzing the access timings.

Σε ορισμένες υλοποιήσεις, μετά τη μεταγωγή πλαισίου εκτέλεσης, το κύκλωμα διαχείρισης αιτημάτων μπορεί να ελέγχει την εξυπηρέτηση τουλάχιστον ενός επακόλουθου αιτήματος πρόσβασης στη μνήμη που σχετίζεται με το δεύτερο πλαίσιο εκτέλεσης για το οποίο τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, με μια μεταβλητή καθυστέρηση απάντησης να εξαρτάται από το μεταβλητό λανθάνοντα χρόνο πρόσβασης που παρέχεται από τη μνήμη. Συνεπώς, δεν είναι απαραίτητη η επιβολή ενός σταθερού ή τυχαίου λανθάνοντα χρόνου σε όλα τα αιτήματα. Για παράδειγμα, η λειτουργία συγκάλυψης καθυστέρησης μπορεί να επηρεάζει ένα ή περισσότερα επακόλουθα αιτήματα σε μια αρχική περίοδο μετά τη μεταγωγή πλαισίου, όμως τότε η λειτουργία συγκάλυψης καθυστέρησης θα μπορούσε να αφαιρείται (ή ορισμένα επακόλουθα αιτήματα μπορούν να μην επηρεάζονται από τη λειτουργία συγκάλυψης καθυστέρησης), όταν δεν είναι πια απαραίτητη η εξασφάλιση ότι η καθυστέρηση απάντησης για τα μεταγενέστερα αιτήματα είναι εντελώς ανεξάρτητη από τις προηγούμενες διευθύνσεις πρόσβασης. Αυτό αναγνωρίζει ότι ο κίνδυνος διαρροής πληροφοριών μπορεί να είναι ο υψηλότερος αμέσως μετά από μια μεταγωγή πλαισίου, όμως στη συνέχεια ο κίνδυνος μπορεί να μειώνεται καθώς εξυπηρετούνται περισσότερα αιτήματα από το νέο πλαίσιο, επειδή όσο μεγαλύτερος είναι ο αριθμός των αιτημάτων που εξυπηρετούνται στο νέο πλαίσιο, τόσο πιο πιθανό είναι οι χρονισμοί απάντησης να εξαρτώνται από τη δραστηριότητα του νέου πλαισίου και όχι από τη δραστηριότητα του προηγούμενου πλαισίου. In some embodiments, after the execution frame switch, the request management circuit may control the servicing of at least one subsequent memory access request associated with the second execution frame for which the required data is already stored in memory, with a variable response delay to depend on the variable access latency provided by the memory. Therefore, it is not necessary to impose a fixed or random latency on all requests. For example, the delay masking function may affect one or more subsequent requests in an initial period after the frame switch, but then the delay masking function could be removed (or some subsequent requests may not be affected by the delay masking function); when it is no longer necessary to ensure that the response delay for subsequent requests is completely independent of the previous access addresses. This recognizes that the risk of information leakage may be highest immediately after a context switch, but thereafter the risk may decrease as more requests are served from the new context, because the greater the number of requests served in the new context, the more likely it is that response timings depend on the activity of the new frame rather than the activity of the previous frame.

Γ ια παράδειγμα, το τουλάχιστον ένα επακόλουθο αίτημα πρόσβασης στη μνήμη (για το οποίο η καθυστέρηση απάντησης μπορεί να είναι μεταβλητή και ανάλογη του μεταβλητού λανθάνοντα χρόνου πρόσβασης που παρέχεται από τη μνήμη), μπορεί να είναι ένα αίτημα πρόσβασης στη μνήμη προς μια ομάδα μιας ή περισσότερων θέσεων μνήμης στις οποίες πραγματοποιήθηκε ήδη πρόσβαση από ένα άλλο αίτημα πρόσβασης στη μνήμη που εξυπηρετήθηκε μετά τη μεταγωγή πλαισίου εκτέλεσης. Σε ορισμένες μορφές μνήμης, ο μεταβλητός λανθάνον χρόνος πρόσβασης της μνήμης μπορεί να είναι τέτοιος ώστε ο λανθάνον χρόνος πρόσβασης να είναι μικρότερος όταν το αίτημα πρόσβασης στη μνήμη πραγματοποιεί πρόσβαση σε μια θέση μνήμης σε μια πρώτη κατάσταση παρά όταν το αίτημα πρόσβασης στη μνήμη πραγματοποιεί πρόσβαση σε μια θέση μνήμης σε μια δεύτερη κατάσταση, όπου μια πρόσβαση σε μια θέση μνήμης στη δεύτερη κατάσταση διεγείρει μια μετάβαση μιας αντίστοιχης ομάδας μιας ή περισσότερων θέσεων μνήμης από τη δεύτερη κατάσταση στην πρώτη κατάσταση. For example, the at least one subsequent memory access request (for which the response delay may be variable and proportional to the variable access latency provided by the memory), may be a memory access request to a group of one or more memory locations that were already accessed by another memory access request served after the execution frame switch. In some memory formats, the variable memory access latency may be such that the access latency is less when the memory access request accesses a memory location in a first state than when the memory access request accesses a memory location in a second state, wherein an access to a memory location in the second state triggers a transition of a corresponding group of one or more memory locations from the second state to the first state.

Για παράδειγμα, ορισμένες τεχνολογίες μνήμης μπορεί να απαιτούν το άνοιγμα, την ενεργοποίηση ή την αποθήκευση σε προσωρινή μνήμη μιας ομάδας θέσεων μνήμης, πριν γίνει δυνατή η ανάγνωση/εγγραφή κάποιας θέσης μνήμης σε αυτή την ομάδα. Εάν μια θέση μνήμης προς πρόσβαση δεν είναι εκείνη τη στιγμή σε μια ανοικτή/ενεργοποιημένη/αποθηκευμένη σε προσωρινή μνήμη ομάδα θέσεων μνήμης, τότε η ομάδα που περιλαμβάνει αυτή τη θέση μνήμης μπορεί να πρέπει να ανοιχθεί/ενεργοποιηθεί/αποθηκευτεί σε προσωρινή μνήμη (δηλ. μια μετάβαση από τη δεύτερη κατάσταση στην πρώτη κατάσταση), ενώ εάν μια άλλη ομάδα είναι ήδη ανοικτή/ενεργοποιημένη/αποθηκευμένη σε προσωρινή μνήμη τότε αυτή η άλλη ομάδα μπορεί να πρέπει να κλείσει/απενεργοποιηθεί ή αντί κατασταθεί στην προσωρινή μνήμη (το οποίο θα μπορούσε να απαιτεί ετερόχρονες εγγραφές στον υποκείμενο πίνακα αποθήκευσης μνήμης), δηλ. μια μετάβαση από την πρώτη κατάσταση στη δεύτερη κατάσταση. Η ομάδα θέσεων μνήμης που μεταβαίνει μεταξύ της πρώτης/δεύτερης κατάστασης ως ολόκληρη μονάδα μπορεί να αντιστοιχεί σε μια σελίδα μιας δομής DRAM, μια σειρά ενός πίνακα αποθήκευσης μνήμης ή μια ομάδα δύο ή περισσότερων σειρών, για παράδειγμα. For example, some memory technologies may require that a group of memory locations be opened, activated, or cached before any memory location in that group can be read/written. If a memory location to be accessed is not currently in an open/activated/cached memory location group, then the group containing that memory location may need to be opened/activated/cached (i.e. a transition from the second state to the first state), while if another group is already open/enabled/cached then that other group may need to be closed/disabled or cached instead (which could require retroactive writes to the underlying memory storage table), i.e. a transition from the first state to the second state. The group of memory locations that transitions between the first/second state as an entire unit may correspond to a page of a DRAM structure, a row of a memory array, or a group of two or more rows, for example.

Ένα άλλο παράδειγμα μιας τεχνολογίας μνήμης με μεταβλητή καθυστέρηση απάντησης μπορεί να είναι μια μνήμη η οποία χρησιμοποιεί μια φυσική κεφαλή ανάγνωσης που μετακινείται επάνω από ένα μέσο αποθήκευσης, π.χ. μια μονάδα περιστρεφόμενου δίσκου. Σε αυτή την περίπτωση, η απόσταση που πρέπει να καλύψει η κεφαλή (και συνεπώς ο λανθάνον χρόνος) για να φτάσει στην επιθυμητή θέση εξαρτάται από τη θέση του προηγούμενου αιτήματος ανάγνωσης και του τρέχοντος αιτήματος ανάγνωσης. Συνεπώς, οι μεταλλικοί δίσκοι (περιστρεφόμενοι δίσκοι) μπορεί ουσιαστικά να αντιστοιχούν σε συστοιχίες μιας DRAM και η τρέχουσα θέση της κεφαλής ανάγνωσης/εγγραφής μπορεί ουσιαστικά να αντιστοιχεί σε μια “ανοικτή” ομάδα θέσεων όπως εξετάζεται στο παρόν για τη DRAM. Η “πρώτη κατάσταση” θα μπορούσε να είναι μια κατάσταση όταν η απόσταση που ατταπείται να καλύψει η κεφαλή έως την επιθυμητή θέση από την τρέχουσα θέση της είναι μικρότερη από μια ορισμένη τιμή κατωφλιού, ενώ η “δεύτερη κατάσταση” θα μπορούσε να είναι μια κατάσταση όταν η απόσταση μεταξύ της τρέχουσας θέσης και της επιθυμητής θέσης είναι μεγαλύτερη από την τιμή κατωφλιού. Another example of a variable response latency memory technology may be a memory that uses a physical read head that moves over a storage medium, e.g. a turntable drive. In this case, the distance the head must travel (and thus the latency) to reach the desired position depends on the position of the previous read request and the current read request. Thus, metal disks (spinning disks) may essentially correspond to arrays of a DRAM, and the current position of the read/write head may essentially correspond to an “open” set of positions as discussed herein for DRAM. The “first state” could be a state when the distance the head needs to cover to the desired position from its current position is less than a certain threshold value, while the “second state” could be a state when the distance between the current position and the desired position is greater than the threshold value.

Για προσβάσεις σε μια ομάδα μιας ή περισσότερων θέσεων μνήμης στις οποίες έχει ήδη πραγματοποιηθεί πρόσβαση τουλάχιστον μια φορά από τη μεταγωγή πλαισίου εκτέλεσης, ο κίνδυνος χρονισμού των επιθέσεων πλευρικού καναλιού μπορεί να είναι σχετικά χαμηλός, επειδή το ήδη εξυπηρετημένο αίτημα προς την ίδια ομάδα από το δεύτερο πλαίσιο εκτέλεσης θα εξανάγκαζε την ομάδα αιτημάτων μνήμης στην πρώτη κατάσταση (ανοικτή/ενεργοποιημένη/αποθηκευμένηη σε προσωρινή μνήμη) ανεξάρτητα εάν στην ίδια ομάδα είχε πραγματοποιηθεί ή δεν είχε πραγματοποιηθεί προηγουμένως πρόσβαση στο πρώτο πλαίσιο εκτέλεσης πριν τη μεταγωγή πλαισίου εκτέλεσης. Συνεπώς, επιτρέποντας στην καθυστέρηση απάντησης να είναι μεταβλητή ανάλογα την πραγματική καθυστέρηση που επιβάλλεται από τη μνήμη για τα αιτήματα που σχετίζονται με το δεύτερο πλαίσιο εκτέλεσης τα οποία εστιάζουν σε μια ομάδα θέσεων στις οποίες έχει ήδη πραγματοποιηθεί πρόσβαση από ένα άλλο αίτημα πρόσβασης στη μνήμη στο δεύτερο πλαίσιο εκτέλεσης το οποίο έχει εξυπηρετηθεί μετά τη μεταγωγή πλαισίου εκτέλεσης, αυτό μπορεί να βελτιώνει την απόδοση χωρίς να εκθέτει το δεύτερο πλαίσιο εκτέλεσης στον κίνδυνο επίθεσης από το πρώτο πλαίσιο εκτέλεσης. For accesses to a pool of one or more memory locations that have already been accessed at least once since the execution frame switch, the risk of timing side-channel attacks can be relatively low because the already served request to the same pool from the second execution frame would force the memory request pool to the first state (open/enabled/cached) regardless of whether or not the same pool had previously been accessed in the first execution frame prior to the execution frame switch. Therefore, allowing the response delay to be variable depending on the actual memory-imposed delay for requests associated with the second execution context that focus on a group of locations that have already been accessed by another memory access request in the second execution context that has been served after execution context switching, this can improve performance without exposing the second execution context to the risk of attack by the first execution context.

Το κύκλωμα διαχείρισης αιτημάτων μπορεί να ανιχνεύει μεταγωγές πλαισίου εκτέλεσης με διάφορους τρόπους. Σε ένα παράδειγμα, το κύκλωμα διαχείρισης αιτημάτων μπορεί να ανιχνεύει μια μεταγωγή πλαισίου εκτέλεσης ότι ικανοποιεί την προκαθορισμένη συνθήκη όταν ανιχνεύεται μια ένδειξη διαχωρισμού μεταγωγής πλαισίου σε μια ροή αιτημάτων πρόσβασης στη μνήμη από το κύκλωμα διασύνδεσης. Για παράδειγμα το στοιχείο επεξεργασίας ή η διασύνδεση που είναι υπεύθυνη για τη δημιουργία ή την προώθηση/δρομολόγηση του αιτήματος πρόσβασης στη μνήμη θα μπορούσε να παρουσιάζει επιπλέον ενδείξεις διαχωρισμού όταν το στοιχείο επεξεργασίας έχει κάνει μεταγωγή από την εκτέλεση ενός πλαισίου εκτέλεσης στη μεταγωγή ενός άλλου πλαισίου εκτέλεσης, ώστε το κύκλωμα ελέγχου που σχετίζεται με τη μνήμη να μπορεί να ανιχνεύει το σημείο στο οποίο τα επακόλουθα αιτήματα πρόσβασης στη μνήμη σχετίζονται με ένα διαφορετικό πλαίσιο εκτέλεσης. Συνεπώς όταν ένα διαχωριστικό περιλαμβάνεται στη ροή των αιτημάτων πρόσβασης στη μνήμη αυτό μπορεί να ερμηνεύεται ως μια μεταγωγή πλαισίου από το κύκλωμα διαχείρισης αιτημάτων ώστε η λειτουργία συγκάλυψης καθυστέρησης να μπορεί στη συνέχεια να διεγείρεται και να εξασφαλίζει ότι τουλάχιστον ένα επακόλουθο αίτημα εξυπηρετείται με μια καθυστέρηση απάντησης η οποία είναι ανεξάρτητη από τις διευθύνσεις των προηγούμενων προσβάσεων. The request handler can detect execution frame switches in a number of ways. In one example, the request management circuit may detect an execution frame switch that satisfies the predetermined condition when a frame switch split indication is detected in a stream of memory access requests from the interface circuit. For example the processing element or the interface responsible for creating or forwarding/routing the memory access request could show additional separation indications when the processing element has switched from executing one execution frame to switching another execution frame , so that the memory-related control circuitry can detect the point at which subsequent memory access requests relate to a different execution context. Therefore when a separator is included in the stream of memory access requests this can be interpreted as a frame switch by the request handling circuit so that the delay masking function can then be excited and ensure that at least one subsequent request is served with a response delay of which is independent of the addresses of previous accesses.

Σε ορισμένες περιπτώσεις, η ένδειξη διαχωρισμού μεταγωγής πλαισίου θα μπορούσε να δημιουργείται αυτόματα από υλικό σε ένα στοιχείο επεξεργασίας ή ένα εξάρτημα συστήματος μνήμης (π.χ. διασύνδεση) με βάση μια ανίχνευση μεταγωγής πλαισίου εκτέλεσης στο στοιχείο επεξεργασίας, όπως με βάση διακοπές οι οποίες διεγείρουν μια αλλαγή πλαισίου ή αναγνωριστικά πλαισίου που σχετίζονται με την τρέχουσα αρχιτεκτονική κατάσταση του στοιχείο επεξεργασίας. Σε άλλα παραδείγματα, η ένδειξη διαχωρισμού μεταγωγής πλαισίου θα μπορούσε να δημιουργείται σε απόκριση μιας διέγερσης λογισμικού, όπως μια εντολή δημιουργίας διαχωρισμού που περιλαμβάνεται στο λογισμικό που εκτελείται στο στοιχείο επεξεργασίας της διάταξης επεξεργασίας δεδομένων. Συνεπώς, ένας προγραμματιστής ή συντάκτης λογισμικού μπορεί να αυξάνει την ασφάλεια ενός κώδικα προγράμματος συμπεριλαμβάνοντας εντολές διαχωρισμού οι οποίες διεγείρουν τη δημιουργία της ένδειξης διαχωρισμού της μεταγωγής πλαισίου, ώστε ο προγραμματιστής ή ο συντάκτης να μπορεί να εξασφαλίζει ότι ένα επακόλουθο τμήμα του προγράμματος δε θα μπορεί να αποκτά πληροφορίες για τη λειτουργία ενός παλαιότερου τμήματος του προγράμματος που προηγείται της εντολής δημιουργίας διαχωρισμού. Αλλα παραδείγματα μπορεί να υποστηρίζουν διαχωριστικά που δημιουργούνται από υλικό και λογισμικό. In some cases, the frameswitch separation indication could be generated automatically by hardware in a processing element or a memory system component (e.g., an interface) based on an execution frameswitch detection in the processing element, such as based on interrupts that trigger a frame change or frame identifiers associated with the processing element's current architectural state. In other examples, the frame switch split indication could be generated in response to a software trigger, such as a split generation command included in software executing in the processing element of the data processing device. Therefore, a programmer or software editor can increase the security of a program code by including split statements that trigger the creation of the frameswitch split flag so that the programmer or editor can ensure that a subsequent part of the program will not be able to obtains information about the operation of an older part of the program that precedes the create split command. Other examples may support hardware- and software-generated partitions.

Μια άλλη προσέγγιση μπορεί να είναι η ανίχνευση της μεταγωγής πλαισίου εκτέλεσης με βάση αναγνωριστικά πλαισίου εκτέλεσης που σχετίζονται με τουλάχιστον ένα υποσύνολο αιτημάτων πρόσβασης στη μνήμη που λαμβάνονται από το κύκλωμα διασύνδεσης. Για παράδειγμα η διάταξη μπορεί να έχει τουλάχιστον ένα στοιχείο επεξεργασίας για την έκδοση του αιτήματος πρόσβασης στη μνήμη που λαμβάνεται από το κύκλωμα διασύνδεσης και ένα δεδομένο στοιχείο επεξεργασίας μπορεί να δημιουργεί το αναγνωριστικό πλαισίου εκτέλεσης που σχετίζεται με ένα δεδομένο αίτημα πρόσβασης στη μνήμη. Για παράδειγμα ένα στοιχείο επεξεργασίας θα μπορούσε να αναθέτει στο αίτημά της πρόσβασης στη μνήμη το αναγνωριστικό του πλαισίου εκτέλεσης που εκτελείται εκείνη τη στιγμή το οποίο προκάλεσε τη δημιουργία του αιτήματος πρόσβασης στη μνήμη. Δεν είναι απαραίτητη η ανάθεση σε κάθε αίτημα πρόσβασης στη μνήμη του αναγνωριστικού πλαισίου εκτέλεσης. Γ ια παράδειγμα σε ορισμένα συστήματα το στοιχείο επεξεργασίας θα μπορούσε να παρέχει το αναγνωριστικό πλαισίου εκτέλεσης μόνο όταν υπάρχει μια αλλαγή πλαισίου εκτέλεσης και όταν λαμβάνονται αιτήματα πρόσβασης στη μνήμη τα οποία δεν προσδιορίζουν ένα αναγνωριστικό πλαισίου εκτέλεσης τότε μπορεί να υποτίθεται ότι σχετίζονται με το ίδιο πλαίσιο εκτέλεσης ως τα πλέον πρόσφατα ληφθέντα αιτήματα πρόσβασης στη μνήμη τα οποία προσδιορίζουν ένα αναγνωριστικό πλαισίου εκτέλεσης. Εναλλακτικά, σε ένα σύστημα που έχει πολλαπλά στοιχεία επεξεργασίας τότε για τη διάκριση ανάμεσα στα αιτήματα που δημιουργούνται από πολλαπλά στοιχεία επεξεργασίας (τα οποία θα μπορούσαν να είναι αναμεμιγμένα), μπορεί να είναι προτιμότερο κάθε αίτημα πρόσβασης στη μνήμη να προσδιορίζει το αναγνωριστικό πλαισίου εκτέλεσης της αντίστοιχης μεταγωγής πλαισίου η οποία δημιούργησε το αίτημα. Συνεπώς, ο ακριβής τρόπος με τον οποίο ανατίθενται αναγνωριστικά πλαισίου εκτέλεσης στα αιτήματα μπορεί να διαφέρει από υλοποίηση σε υλοποίηση. Another approach may be to detect execution frame switching based on execution frame identifiers associated with at least a subset of memory access requests received by the interface circuit. For example, the device may have at least one processing element for issuing the memory access request received from the interface circuit, and a given processing element may generate the execution context identifier associated with a given memory access request. For example a processing element could assign to its memory access request the identifier of the currently running execution context that caused the memory access request to be made. It is not necessary to assign each memory access request the execution context ID. For example on some systems the processing component could provide the execution context ID only when there is an execution context switch and when memory access requests are received which do not specify an execution context ID then they may be assumed to be related to the same execution context as the most recently received memory access requests that specify an execution context ID. Alternatively, in a system that has multiple processing elements then to distinguish between requests made by multiple processing elements (which could be mixed), it may be preferable for each memory access request to specify the execution context identifier of the corresponding frame switch that generated the request. Therefore, the exact way execution context identifiers are assigned to requests can vary from implementation to implementation.

Κάθε πλαίσιο εκτέλεσης μπορεί σε γενικές γραμμές να είναι ένα τμήμα του φορτίου εργασίας του λογισμικού που εκτελείται στη διάταξη επεξεργασίας δεδομένων. Για παράδειγμα ένα πλαίσιο εκτέλεσης θα μπορούσε να αναφέρεται σε μια ορισμένη διαδικασία ή ομάδα διαδικασιών που εκτελούνται από ένα στοιχείο επεξεργασίας ή μια εικονική μηχανή που εκτελείται από ένα δεδομένο στοιχείο επεξεργασίας ή ένα δευτερεύον τμήμα εντός μιας διαδικασίας, εφαρμογής ή εικονικής μηχανής για παράδειγμα. Ορισμένες διαδικασίες θα μπορούσαν να διαιρούνται σε τμήματα που αντιστοιχούν σε ξεχωριστά πλαίσια εκτέλεσης (π.χ. οι διάφορες καρτέλες ενός προγράμματος περιήγησης στο internet μπορεί να προστατεύονται η μια από την άλλη για λόγους ασφαλείας εκχωρώντας διαφορετικά αναγνωριστικά πλαισίου εκτέλεσης σε κάθε καρτέλα). Εναλλακτικά, σε ορισμένες περιπτώσεις πολλές διαφορετικές διαδικασίες οι οποίες δε θεωρείται ότι κινδυνεύουν από επιθέσεις μεταξύ τους θα μπορούσαν να ομαδοποιούνται σε ένα μόνο πλαίσιο εκτέλεσης που προσδιορίζεται από μια μόνο τιμή του αναγνωριστικού πλαισίου εκτέλεσης. Σε άλλα παραδείγματα, το πλαίσιο εκτέλεσης μπορεί να αναφέρεται σε μια ομάδα μιας ή περισσότερων διαδικασιών οι οποίες λειτουργούν σύμφωνα με έναν ορισμένο τρόπο ασφαλείας ή σε ένα δεδομένο επίπεδο εξαίρεσης ή επίπεδο προνομίων (π.χ. διαφορετικές διαδικασίες που εκτελούνται στο ίδιο επίπεδο προνομίων ή με τον ίδιο τρόπο ασφαλείας θα μπορούσαν να εκλαμβάνονται ως το ίδιο πλαίσιο εκτέλεσης). Επίσης, σε ορισμένες περιπτώσεις το λογισμικό που εκτελείται σε ένα δεδομένο στοιχείο επεξεργασίας θα μπορούσε το ίδιο να παρέχει ενδείξεις για τα τμήματα του φορτίου εργασίας του λογισμικού που εκτελείται τα οποία θα πρέπει να θεωρούνται ως ιδιαίτερα πλαίσια εκτέλεσης κι επομένως σε ορισμένες περιπτώσεις μπορούν να χρησιμοποιούνται αναγνωριστικά που προσδιορίζονται από λογισμικό για τη διάκριση των διαφόρων πλαισίων εκτέλεσης. Επίσης, το συγκεκριμένο στοιχείο επεξεργασίας ενός συστήματος στοιχείων πολλαπλής επεξεργασίας το οποίο εκτελεί το πλαίσιο θα μπορούσε να διαμορφώνει τμήμα του αναγνωριστικού πλαισίου εκτέλεσης, ώστε ακριβώς η ίδια διαδικασία λογισμικού όταν εκτελείται σε διαφορετικά στοιχεία επεξεργασίας υλικού του συστήματος πολλαπλής επεξεργασίας θα μπορούσε να θεωρείται ως διαφορετικά πλαίσια εκτέλεσης με σκοπό το κύκλωμα ελέγχου να προσδιορίζει κατά πόσο να εφαρμόζει τη λειτουργία συγκάλυψης καθυστέρησης μετά από μια μεταγωγή πλαισίου προς ή από το αντίστοιχο πλαίσιο εκτέλεσης. Each execution context may generally be a portion of the software workload running on the data processing device. For example an execution context could refer to a certain process or group of processes executed by a processing element or a virtual machine executed by a given processing element or subpart within a process, application or virtual machine for example. Some processes could be divided into sections corresponding to separate execution contexts (eg different tabs of an internet browser might be protected from each other for security purposes by assigning different execution context identifiers to each tab). Alternatively, in some cases several different processes that are not considered to be vulnerable to attacks from each other could be grouped into a single execution context identified by a single execution context ID value. In other examples, execution context may refer to a group of one or more processes that operate under a certain security mode or at a given exception level or privilege level (e.g., different processes running at the same privilege level or with the same security mode could be perceived as the same execution context). Also, in some cases the software running on a given processing element could itself provide indications of the parts of the software workload being run which should be considered as separate execution contexts and therefore in some cases identifiers may be used determined by software to distinguish between different execution contexts. Also, the particular processing component of a multiprocessing component system executing the frame could form part of the execution frame identifier, so that the exact same software process when executed on different hardware processing components of the multiprocessing system could be considered as different frames execution frame for the control circuit to determine whether to apply the delay masking function after a frame switch to or from the corresponding execution frame.

Συνεπώς, ένα δεδομένο στοιχείο επεξεργασίας μπορεί να παράγει το αναγνωριστικό πλαισίου εκτέλεσης που σχετίζεται με ένα δεδομένο αίτημα πρόσβασης στη μνήμη με βάση τουλάχιστον ένα από τα εξής: Accordingly, a given processing element may generate the execution context identifier associated with a given memory access request based on at least one of the following:

ένα αναγνωριστικό διαδικασίας ή ένα αναγνωριστικό χώρου διευθύνσεων που σχετίζεται με μια διαδικασία που εκτελείται στο στοιχείο επεξεργασίας, a process identifier or address space identifier associated with a process running on the processing element;

ένα αναγνωριστικό εικονικής μηχανής που σχετίζεται με μια εικονική μηχανή που εκτελείται στο στοιχείο επεξεργασίας, a virtual machine identifier associated with a virtual machine running on the processing element,

ένα αναγνωριστικό στοιχείου επεξεργασίας που σχετίζεται με το δεδομένο στοιχείο επεξεργασίας, a processing element identifier associated with the given processing element;

ένα αναγνωριστικό τρόπου ασφαλείας που προσδιορίζει έναν τρέχοντα τρόπο λειτουργίας ασφαλείας του δεδομένου στοιχείου επεξεργασίας, a security mode identifier identifying a current security mode of the given processing element;

ένα αναγνωριστικό επιπέδου εξαίρεσης που προσδιορίζει ένα τρέχον επίπεδο εξαίρεσης του δεδομένου στοιχείου επεξεργασίας, και an exception level identifier that identifies a current exception level of the given processing element, and

ένα προσδιοριζόμενο από λογισμικό αναγνωριστικό που παρέχεται από το λογισμικό που εκτελείται στο στοιχείο επεξεργασίας. a software-defined identifier provided by the software running on the processing element.

Ας σημειωθεί ότι η “μεταγωγή πλαισίου εκτέλεσης” που ανιχνεύεται από το κύκλωμα ελέγχου αναφέρεται στο σημείο στο οποίο υπάρχει μια μετάβαση μεταξύ των αιτημάτων πρόσβασης στη μνήμη που διαχειρίζονται από ένα πλαίσιο εκτέλεσης και των αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα διαφορετικό πλαίσιο εκτέλεσης. Ο χρόνος κατά τον οποίο το κύκλωμα ελέγχου προσδιορίζει τη μεταγωγή πλαισίου εκτέλεσης στη ροή των επεξεργασμένων αιτημάτων πρόσβασης στη μνήμη μπορεί να διαφέρει από το χρόνο κατά τον οποίο το αντίστοιχο στοιχείο επεξεργασίας πραγματικά έκανε μεταγωγή των εντολών πλαισίου εκτέλεσης που εκτελούνται (π.χ. το κύκλωμα ελέγχου μπορεί να μη βλέπει τη μεταγωγή πλαισίου εκτέλεσης για κάποιο χρόνο μετά την αντίστοιχη μεταγωγή στο στοιχείο επεξεργασίας). Note that the “execution context switch” detected by the control circuitry refers to the point at which there is a transition between memory access requests handled by one execution context and memory access requests associated with a different execution context. The time at which the control circuit determines the execution frame switch in the stream of processed memory access requests may differ from the time at which the corresponding processing element actually switched the executed execution frame instructions (e.g., the control may not see the execution frame switch for some time after the corresponding switch in the processing element).

Σε ορισμένα παραδείγματα υλοποιήσεων, η επιλογή της σειράς με την οποία εξυπηρετούνται τα αιτήματα πρόσβασης στη μνήμη που λαμβάνονται από το κύκλωμα διασύνδεσης μπορεί να γίνει ανεξάρτητα από το πλαίσιο εκτέλεσης που σχετίζεται με κάθε αίτημα. Για παράδειγμα, ορισμένα παραδείγματα θα μπορούσαν απλά να επιλέγουν τα αιτήματα προς εξυπηρέτηση με την ίδια σειρά με την οποία λαμβάνονται. Άλλα παραδείγματα θα μπορούσαν να είναι πιο εξελιγμένα και να επιτρέπουν την αναδιάταξη των αιτημάτων, ώστε τα αιτήματα που στοχεύουν στην ίδια ομάδα θέσεων μνήμης στη μνήμη να μπορούν να ομαδοποιούνται μαζί ώστε να μειώνεται ο λανθάνον χρόνος αυτών των προσβάσεων που στοχεύουν στην ίδια ομάδα. Σε κάθε περίπτωση, το κύκλωμα που επιλέγει τη σειρά με την οποία εξυπηρετούνται τα αιτήματα μπορεί να πρέπει επίσης να τηρεί και άλλους περιορισμούς, όπως εξαρτήσεις δεδομένων μεταξύ διαδοχικών αιτημάτων προς την ίδια διεύθυνση (τα οποία μπορεί να πρέπει να εξυπηρετούνται με την ίδια σειρά με την οποία λαμβάνονται) και πιθανόν άλλες απαιτήσεις όπως κατά πόσο τα αιτήματα σχετίζονται με μνήμη τύπου διάταξης (για την οποία η αναδιάταξη των αιτημάτων σε σύγκριση με τη σειρά με την οποία λήφθηκαν μπορεί να μην επιτρέπεται ακόμη και για αιτήματα που δεν έχουν μια εξάρτηση δεδομένων). Συνεπώς μπορεί να υπάρχει ένας αριθμός κριτηρίων για την επιλογή της σειράς με την οποία εξυπηρετούνται τα ληφθέντα αιτήματα. Εάν το πλαίσιο εκτέλεσης δε συμπεριληφθεί σε αυτή την επιλογή τότε είναι πιθανό η ακολουθία των αιτημάτων που μεταβιβάζονται στη μνήμη να περιλαμβάνει έναν αριθμό μεμονωμένων αιτημάτων κάθε ένα από τα οποία σχετίζονται με ένα διαφορετικό πλαίσιο εκτέλεσης, ώστε να υπάρχουν συχνές μεταγωγές πλαισίου εκτέλεσης κάθε φορά που υπάρχει ένα αίτημα από ένα διαφορετικό πλαίσιο αμέσως μετά από ένα αίτημα από ένα προηγούμενο πλαίσιο. Αυτό μπορεί να είναι απλούστερο να υλοποιηθεί εντός του κυκλώματος ελέγχου, ωστόσο μπορεί να έχει ως αποτέλεσμα τη συχνή διέγερση της λειτουργίας συγκάλυψης καθυστέρησης γεγονός το οποίο θα μπορούσε να έχει αρνητική επίπτωση στην απόδοση. In some example implementations, the selection of the order in which to service memory access requests received by the interface circuit may be independent of the execution context associated with each request. For example, some examples could simply select requests to service in the same order in which they are received. Other examples could be more sophisticated and allow requests to be reordered so that requests targeting the same group of memory locations in memory can be grouped together to reduce the latency of those accesses targeting the same group. In any case, the circuitry that chooses the order in which requests are served may also have to respect other constraints, such as data dependencies between successive requests to the same address (which may have to be served in the same order as which are received) and possibly other requirements such as whether the requests are related to array-type memory (for which reordering requests compared to the order in which they were received may not be allowed even for requests that do not have a data dependency). Thus there may be a number of criteria for selecting the order in which received requests are served. If execution context is not included in this option then it is possible that the sequence of requests passed to memory will contain a number of individual requests each of which is associated with a different execution context, so that there are frequent execution context switches whenever there is a request from a different context immediately following a request from a previous context. This may be simpler to implement within the control circuit, however it may result in frequent triggering of the delay masking function which could have a negative impact on performance.

Συνεπώς, σε ορισμένα παραδείγματα το κύκλωμα διαχείρισης αιτημάτων μπορεί να διατάσσεται ώστε να ομαδοποιεί όλα μαζί τα αιτήματα πρόσβασης στη μνήμη που σχετίζονται με το ίδιο πλαίσιο εκτέλεσης ως μια ομάδα αιτημάτων προς εξυπηρέτηση διαδοχικά από τη μνήμη. Το κύκλωμα διαχείρισης αιτημάτων μπορεί να διεγείρει τη λειτουργία συγκάλυψης καθυστέρησης κατά τη μεταγωγή από μια ομάδα αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με το πρώτο πλαίσιο εκτέλεσης σε μια ομάδα αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με το δεύτερο πλαίσιο εκτέλεσης τουλάχιστον όταν η μεταγωγή από το πρώτο πλαίσιο εκτέλεσης στο δεύτερο πλαίσιο εκτέλεσης ικανοποιεί την προκαθορισμένη συνθήκη. Συνεπώς, αντί της απλής παθητικής παρατήρησης πότε υπάρχει μια μεταγωγή πλαισίου εκτέλεσης μεταξύ ενός αιτήματος πρόσβασης στη μνήμη που σχετίζεται με ένα πλαίσιο εκτέλεσης και ενός αιτήματος που σχετίζεται με ένα άλλο πλαίσιο, σε ορισμένες περιπτώσεις το κύκλωμα διαχείρισης αιτημάτων μπορεί να ελέγχει ενεργά πότε υπάρχει μια τέτοια μεταγωγή πλαισίου εκτέλεσης ώστε η μεταγωγή πλαισίου εκτέλεσης προσδιορίζεται όταν το κύκλωμα διαχείρισης αιτημάτων αποφασίζει τη μεταγωγή από την εξυπηρέτηση μιας ομάδας αιτημάτων που σχετίζονται με το πρώτο πλαίσιο εκτέλεσης σε μια ομάδα αιτημάτων που σχετίζονται με το δεύτερο πλαίσιο εκτέλεσης. Αυτό μπορεί να βελτιώνει την απόδοση μειώνοντας πόσο συχνά διεγείρεται η λειτουργία συγκάλυψης καθυστέρησης. Accordingly, in some examples the request handling circuitry may be arranged to group together memory access requests associated with the same execution context as a group of requests to be serviced sequentially by memory. The request management circuit may trigger the delay masking function when switching from a group of memory access requests associated with the first execution frame to a group of memory access requests associated with the second execution frame at least when the switch from the first frame execution in the second execution frame satisfies the predefined condition. Therefore, instead of simply passively observing when there is an execution context switch between a memory access request associated with an execution context and a request associated with another context, in some cases the request management circuitry can actively control when such an execution frame switching so execution frame switching is determined when the request management circuit decides to switch from serving a group of requests associated with the first execution frame to a group of requests associated with the second execution frame. This can improve performance by reducing how often the delay masking function is triggered.

Σε προσεγγίσεις οι οποίες ομαδοποιούν μαζί αιτήματα πρόσβασης στη μνήμη από το ίδιο πλαίσιο, μπορεί να εφαρμόζεται εν τούτοις ένας αριθμός άλλων κριτηρίων για τον προσδιορισμό της σειράς με την οποία εξυπηρετούνται τα αιτήματα, όπως εξαρτήσεις δεδομένων, περιορισμοί ταξινόμησης, μνήμη τύπου διάταξης, κλπ. Συνεπώς, σε ορισμένες περιπτώσεις το κύκλωμα διαχείρισης αιτημάτων μπορεί να περιορίζεται όσον αφορά στον αριθμό των αιτημάτων που μπορούν να ομαδοποιούνται μαζί από ένα δεδομένο πλαίσιο εκτέλεσης. Εν τούτοις σε γενικές γραμμές ομαδοποιώντας μαζί τα αιτήματα από το ίδιο πλαίσιο εκτέλεσης όταν αυτό είναι δυνατό, μπορεί να βοηθά στη βελτίωση της απόδοσης. In approaches that group memory access requests from the same context together, however, a number of other criteria may be applied to determine the order in which the requests are serviced, such as data dependencies, sort constraints, layout type memory, etc. Therefore , in some cases the request handler circuit may be limited in terms of the number of requests that can be grouped together by a given execution context. However in general grouping together requests from the same execution context when possible can help improve performance.

Σε ορισμένες υλοποιήσεις το κύκλωμα διαχείρισης αιτημάτων θα μπορούσε να διεγείρει απλά τη λειτουργία συγκάλυψης καθυστέρησης μετά από οποιαδήποτε μεταγωγή πλαισίου εκτέλεσης, ανεξάρτητα εάν η μεταγωγή πλαισίου εκτέλεσης ικανοποιεί την προκαθορισμένη συνθήκη. Μολονότι είναι πιθανό ορισμένες μεταβάσεις του πλαισίου εκτέλεσης να μην κινδυνεύουν από τον τύπο της επίθεσης ασφαλείας που εξετάζεται παραπάνω, αυτή η προσέγγιση μπορεί να δίνει προτεραιότητα στην ασφάλεια έναντι της απόδοσης. Ακόμη και εάν η λειτουργία συγκάλυψης καθυστέρησης διεγείρεται για κάθε μεταγωγή πλαισίου εκτέλεσης, ορισμένες μορφές λειτουργίας συγκάλυψης καθυστέρησης μπορούν να εφαρμόζονται μόνο σε έναν ορισμένο αριθμό αιτημάτων μετά τη μεταγωγή πλαισίου εκτέλεσης ώστε κάποια απόδοση μπορεί να εξοικονομείται αποτρέποντας την προσθήκη επιπλέον καθυστερήσεων σε κάθε αίτημα μετά τη μεταγωγή πλαισίου. In some implementations the request management circuit could simply trigger the delay masking function after any execution frame switch, regardless of whether the execution frame switch satisfies the predetermined condition. While it is possible that some execution context transitions are not vulnerable to the type of security attack discussed above, this approach may prioritize security over performance. Even if the delay masking function is excited for each execution frame switch, some forms of the delay masking function can only be applied to a certain number of requests after the execution frame switch so that some performance can be saved by preventing extra delays from being added to each request after the switch framework.

Ωστόσο, σε άλλα παραδείγματα το κύκλωμα διαχείρισης αιτημάτων μπορεί να παραλείπει τη διέγερση της λειτουργίας συγκάλυψης καθυστέρησης όταν η μεταγωγή πλαισίου εκτέλεσης δεν ικανοποιεί την προκαθορισμένη συνθήκη. Συνεπώς, το κύκλωμα διαχείρισης αιτημάτων μπορεί να κρίνει κατά πόσο η συγκεκριμένη μεταγωγή πλαισίων εκτέλεσης προκαλεί έναν κίνδυνο τρωτότητας ασφαλείας. Γ ια παράδειγμα, σε ένα παράδειγμα η προκαθορισμένη συνθήκη μπορεί να είναι κατά πόσο το δεύτερο πλαίσιο εκτέλεσης είναι ένα πλαίσιο το οποίο απαγορεύεται να έχει πρόσβαση τουλάχιστον σε ορισμένα δεδομένα στα οποία είναι δυνατή η πρόσβαση από το πρώτο πλαίσιο εκτέλεσης. Γ ια παράδειγμα αυτό θα μπορούσε να προσδιορίζεται με βάση τα επίπεδα προνομίων που σχετίζονται με το πρώτο και το δεύτερο πλαίσιο εκτέλεσης αντίστοιχα. Σε ορισμένες περιπτώσεις η προκαθορισμένη συνθήκη μπορεί να είναι ότι το δεύτερο πλαίσιο εκτέλεσης είναι ένα λιγότερο προνομιακό πλαίσιο εκτέλεσης από το πρώτο πλαίσιο εκτέλεσης, ώστε ένας επιτιθέμενος που έχει χαμηλότερο επίπεδο προνομίων να μην έχει τη δυνατότητα απόκτησης πληροφοριών για τις διευθύνσεις στις οποίες πραγματοποιήθηκε πρόσβαση από ένα πιο προνομιακό πλαίσιο, το οποίο εάν το σχέδιο διευθύνσεων στο οποίο πραγματοποιήθηκε πρόσβαση από το πιο προνομιακό πρώτο πλαίσιο εκτέλεσης εξαρτιόταν από κάποια τμήματα μυστικών πληροφοριών θα μπορούσε να επιτρέπει τη συναγωγή ορισμένων τμημάτων του μυστικού από τον επιτιθέμενο. Σε άλλα συστήματα μπορεί επίσης να υπάρχουν κάποιοι μηχανισμοί ασφαλείας για την αποτροπή της πρόσβασης σε δεδομένα από ένα πιο προνομιακό πλαίσιο στα οποία είναι δυνατή η πρόσβαση από ένα λιγότερο προνομιακό πλαίσιο (π.χ. σε εφαρμογές κέντρων δεδομένων, μπορεί να είναι επιθυμητή η εκτέλεση διαφόρων εικονικών μηχανών στην ίδια υλική πλατφόρμα για την αποκλειστική πρόσβαση σε κάποια μυστικά δεδομένα στα οποία δεν είναι δυνατή η πρόσβαση από τον επόπτη που λειτουργείται από τον πάροχο της πλατφόρμας cloud). Συνεπώς, εάν παρέχονται τέτοιοι μηχανισμοί τότε μπορεί να εξετάζεται ότι η προκαθορισμένη συνθήκη θα πρέπει επίσης να ικανοποιείται όταν το δεύτερο πλαίσιο εκτέλεσης είναι μια πιο προνομιακή διαδικασία από το πρώτο πλαίσιο εκτέλεσης. Σε ορισμένες περιπτώσεις η προκαθορισμένη συνθήκη μπορεί να περιλαμβάνει ότι το δεύτερο πλαίσιο εκτέλεσης είναι ένα πλαίσιο που σχετίζεται με ένα διαφορετικό επίπεδο προνομίων από το πρώτο πλαίσιο εκτέλεσης (ώστε να είναι δυνατή η παράλειψη της λειτουργίας συγκάλυψης καθυστέρησης για μεταβάσεις μεταξύ πλαισίων στο ίδιο επίπεδο προνομίων). However, in other examples the request handling circuit may omit triggering the delay masking function when the execution frame switch does not satisfy the predetermined condition. Therefore, the request handling circuit can judge whether the particular switching of execution frames causes a security vulnerability risk. For example, in one example the predetermined condition may be whether the second execution context is a context that is prohibited from accessing at least some data that is accessible by the first execution context. For example this could be determined based on the privilege levels associated with the first and second execution contexts respectively. In some cases the default condition may be that the second execution context is a less privileged execution context than the first execution context, so that an attacker with a lower privilege level cannot obtain information about the addresses accessed by a most privileged context, which if the addressing scheme accessed by the most privileged first execution context depended on some portions of secret information could allow some portions of the secret to be deduced by the attacker. Other systems may also have some security mechanisms in place to prevent access from a more privileged context to data that can be accessed from a less privileged context (e.g. in data center applications, it may be desirable to perform various of virtual machines on the same physical platform for exclusive access to some secret data that cannot be accessed by the supervisor operated by the cloud platform provider). Accordingly, if such mechanisms are provided then it may be considered that the predetermined condition should also be satisfied when the second execution context is a more privileged process than the first execution context. In some cases the predefined condition may include that the second execution context is a context associated with a different privilege level than the first execution context (so that delay masking can be bypassed for transitions between contexts at the same privilege level).

Σε άλλα παραδείγματα, αντί να βασίζονται στο επίπεδο προνομίων, ορισμένα συστήματα μπορεί να έχουν ασφαλείς και μη ασφαλείς λειτουργίες όπου η εκτέλεση ενός πλαισίου σε μια μη ασφαλή λειτουργία δεν έχει πρόσβαση σε δεδομένα προσβάσιμα στην ασφαλή λειτουργία. Συνεπώς σε ορισμένες περιπτώσεις η προκαθορισμένη συνθήκη μπορεί να περιλαμβάνει ένα δεύτερο πλαίσιο εκτέλεσης το οποίο είναι ένα πλαίσιο που σχετίζεται με τον μη ασφαλή τομέα ενώ το πρώτο πλαίσιο εκτέλεσης σχετίζεται με τον ασφαλή τομέα, ώστε η λειτουργία συγκάλυψης καθυστέρησης να διεγείρεται με μια μεταγωγή από ένα ασφαλές πλαίσιο σε ένα λιγότερο ασφαλές πλαίσιο, αλλά να μη διεγείρεται όταν συμβαίνει μια μετάβαση προς την αντίθετη κατεύθυνση εφόσον μπορεί να μη θεωρείται σημαντική η αποτροπή απόκτησης πληροφοριών από μια ασφαλή διαδικασία για διευθύνσεις στις οποίες πραγματοποιεί πρόσβαση μια μη ασφαλής διαδικασία. In other examples, instead of being based on privilege level, some systems may have secure and non-secure modes where running a context in an insecure mode does not access data accessible in secure mode. Therefore in some cases the predetermined condition may include a second execution frame which is a frame associated with the non-secure domain while the first execution frame is associated with the secure domain so that the delay masking function is triggered by a switch from a secure context to a less secure context, but not be triggered when a transition in the opposite direction occurs since it may not be considered important to prevent a secure process from obtaining information about addresses accessed by an insecure process.

Σε άλλα παραδείγματα, η προκαθορισμένη συνθήκη θα μπορούσε να είναι κατά πόσο το πρώτο πλαίσιο εκτέλεσης είναι ένα πλαίσιο από ένα προκαθορισμένο υποσύνολο πλαισίων εκτέλεσης. Για παράδειγμα, συγκεκριμένα πλαίσια μπορούν να καθορίζονται ως αναγκαία προστασίας και κάθε πλαίσιο εκτός της λίστας των προστατευμένων πλαισίων θα μπορούσε να θεωρείται ότι δε χρειάζεται τις προστασίες που παρέχονται από τη λειτουργία συγκάλυψης καθυστέρησης. Γ ια παράδειγμα ορισμένα κρίσιμα πλαίσια εκτέλεσης μπορεί να καθορίζονται ότι απαιτούν την επιπλέον προστασία ασφαλείας κι επομένως όταν το κύκλωμα διαχείρισης αιτημάτων ανιχνεύει ένα πλαίσιο εκτέλεσης από ένα από αυτά τα κρίσιμα πλαίσια εκτέλεσης σε ένα άλλο πλαίσιο τότε μπορεί να εφαρμόζει τη λειτουργία συγκάλυψης καθυστέρησης, όμως διαφορετικά η λειτουργία συγκάλυψης καθυστέρησης θα μπορούσε να παραλείπεται για τη βελτίωση της απόδοσης. In other examples, the predetermined condition could be whether the first execution frame is a frame from a predetermined subset of execution frames. For example, specific frames can be specified as needing protection, and any frame outside the list of protected frames could be considered as not needing the protections provided by the delay masking function. For example, some critical execution frames may be specified as requiring the extra security protection, and therefore when the request handler traces an execution frame from one of these critical execution frames to another frame then it may apply delay masking, but otherwise the delay masking function could be omitted to improve performance.

Η λειτουργία συγκάλυψης καθυστέρησης μπορεί να υλοποιείται με έναν αριθμό διαφορετικών τρόπων. Σε γενικές γραμμές η λειτουργία συγκάλυψης καθυστέρησης μπορεί να είναι οποιαδήποτε λειτουργία η οποία εξασφαλίζει ότι τα επακόλουθα αιτήματα πρόσβασης στη μνήμη που σχετίζονται με το δεύτερο πλαίσιο εκτέλεσης μετά τη μεταγωγή πλαισίου, για τα οποία τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, εξυπηρετούνται με μια καθυστέρηση απάντησης η οποία είναι ανεξάρτητη από τις διευθύνσεις στις οποίες πραγματοποιήθηκε πρόσβαση από τα αιτήματα που σχετίζονται με ένα πρώτο πλαίσιο εκτέλεσης πριν τη μεταγωγή πλαισίου εκτέλεσης. Η τεχνική που εξετάζεται παραπάνω μπορεί να εφαρμόζεται σε διάφορες διατάξεις μνήμης σε ένα σύστημα επεξεργασίας δεδομένων, συμπεριλαμβανόμενης τόσο της κύριας μνήμης όσο και της κρυφής μνήμης. Για την κύρια μνήμη η οποία δε λειτουργείται ως κρυφή μνήμη, τότε κάθε αίτημα που στοχεύει μια διεύθυνση χαρτογραφημένη σε αυτή τη μνήμη θα έχει τα απαιτούμενα δεδομένα ήδη αποθηκευμένα στη μνήμη, ώστε να μην υπάρχει πιθανότητα το αίτημα πρόσβασης στη μνήμη να απαιτεί δεδομένα που δεν είναι ήδη αποθηκευμένα στην κύρια μνήμη. Αφετέρου, για μια κρυφή μνήμη τα αιτήματα πρόσβασης μπορεί να συναντούν μια επιτυχία κρυφής μνήμης ή μια αποτυχία κρυφής μνήμης, ανάλογα εάν τα απαιτούμενα δεδομένα έχουν ήδη εκχωρηθεί στην κρυφή μνήμη, γεγονός το οποίο μπορεί να εξαρτάται από τις διευθύνσεις προηγούμενης πρόσβασης. Σε περιπτώσεις όπου η μνήμη είναι μια κρυφή μνήμη και τα αιτήματα πρόσβασης στη μνήμη αποτύχουν στην κρυφή μνήμη ώστε τα απαιτούμενα δεδομένα δεν είναι ήδη αποθηκευμένα στη μνήμη, τότε ακόμη και εάν πραγματοποιηθεί η λειτουργία συγκάλυψης καθυστέρησης, η καθυστέρηση απάντησης μπορεί ωστόσο να εξαρτάται από τις διευθύνσεις στις οποίες πραγματοποιήθηκε πρόσβαση πριν τη μεταγωγή πλαισίου, εφόσον μια αποτυχία κρυφής μνήμης μπορεί να απαιτεί την προσκόμιση των δεδομένων από μια περαιτέρω κρυφή μνήμη ή από την κύρια μνήμη, ενώ ο χρόνος που απαιτείται για την εξυπηρέτηση αυτού του αιτήματος πλήρωσης γραμμής μπορεί να διαφέρει ανάλογα το βαθμό στον οποίο τα δεδομένα έχουν ήδη αποθηκευτεί στις περαιτέρω κρυφές μνήμες εντός του συστήματος μνήμης. Οι γνωστές τεχνικές, όπως η απόρριψη των κρυφών μνημών σε απόκριση μιας μεταγωγής πλαισίου εκτέλεσης ή ο τεμαχισμός της κρυφής μνήμης σε περιοχές δεσμευμένες για συγκεκριμένα πλαίσια εκτέλεσης, μπορούν να χρησιμοποιούνται για την αντιμετώπιση επιθέσεων που στοχεύουν στην εκμετάλλευση της διακύμανσης χρονισμού που προκαλείται από τα διαφορετικά επίπεδα της κρυφής μνήμης στα οποία μπορεί να έχουν εκχωρηθεί δεδομένα. Delay masking can be implemented in a number of different ways. In general the delay masking function can be any function which ensures that subsequent memory access requests associated with the second execution frame after the frame switch, for which the required data is already stored in memory, are served with a delay response which is independent of the addresses accessed by requests associated with a first execution frame prior to execution frame switching. The technique discussed above can be applied to various memory arrangements in a data processing system, including both main memory and cache memory. For main memory that is not acting as a cache, then any request that targets an address mapped to that memory will have the required data already stored in memory, so there is no chance that the memory access request will require data that is not already stored in main memory. On the other hand, for a cache access requests may meet a cache hit or a cache miss depending on whether the required data has already been allocated in the cache, which may depend on the previous access addresses. In cases where the memory is a cache and memory access requests fail the cache so that the required data is not already stored in memory, then even if the delay masking operation is performed, the response delay may still depend on the addresses which were accessed before the frame switch, since a cache miss may require the data to be served from a further cache or from main memory, and the time required to service this line fill request may vary depending on extent to which the data has already been stored in the further caches within the memory system. Known techniques, such as discarding caches in response to an execution frame switch or slicing the cache into areas reserved for specific execution frames, can be used to counter attacks aimed at exploiting the timing variation caused by the different layers of the cache that may have data allocated to it.

Αντίθετα, η λειτουργία συγκάλυψης καθυστέρησης που εξετάζεται στο παρόν προορίζεται για την αντιμετώπιση της διακύμανσης στην καθυστέρηση που σχετίζεται με τα αιτήματα πρόσβασης στη μνήμη για τα οποία τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, δηλ. αιτήματα προς μια διάταξη όχι κρυφής μνήμης για την οποία η κατάληψη της μνήμης δεν εξαρτάται από τις προηγούμενες προσβάσεις (δηλ. δεν υπάρχει έξωση όπως στις κρυφές μνήμες και εκχώρηση των δεδομένων στη μνήμη με βάση πρόσφατα σχέδια διευθύνσεων) ή τα αιτήματα τα οποία επιτυγχάνουν σε μια μνήμη που χρησιμοποιείται ως κρυφή μνήμη (αντί των αιτημάτων τα οποία καταλήγουν σε μια αποτυχία κρυφής μνήμης). In contrast, the latency masking function discussed here is intended to address the variation in latency associated with memory access requests for which the required data is already stored in memory, i.e., requests to a non-cache memory device for which memory occupancy does not depend on previous accesses (i.e. no eviction as in caches and allocation of data in memory based on recent addressing schemes) or requests that hit a memory used as a cache (instead of requests which result in a cache miss).

Σε μια μνήμη που χρησιμοποιεί μια τεχνολογία η οποία έχει θέσεις μνήμης σε μια πρώτη κατάσταση ή μια δεύτερη κατάσταση όπως εξετάζεται παραπάνω, όπου υπάρχει ένας χαμηλότερος λανθάνον χρόνος πρόσβασης όταν πραγματοποιείται ένα αίτημα για παρεμπόδιση στην πρώτη κατάσταση σε σχέση με όταν το αίτημα πρόσβασης στη μνήμη πραγματοποιεί πρόσβαση σε μια ομάδα στη δεύτερη κατάσταση, η λειτουργία συγκάλυψης καθυστέρησης θα μπορούσε σε ορισμένες περιπτώσεις να περιλαμβάνει τον έλεγχο της μνήμης για μετάβαση κάθε ομάδας που βρίσκεται εκείνη τη στιγμή στην πρώτη κατάσταση από την πρώτη κατάσταση στη δεύτερη κατάσταση. Για παράδειγμα, η λειτουργία συγκάλυψης καθυστέρησης θα μπορούσε να περιλαμβάνει το κλείσιμο ή την απενεργοποίηση μιας ή περισσότερων σελίδων ή σειρών θέσεων μνήμης ή την απαλοιφή μιας αποθηκευμένης σε προσωρινή μνήμη ομάδας θέσεων και ετερόχρονης εγγραφής της στον πίνακα αποθήκευσης. Αυτό σημαίνει ότι μετά τη μεταγωγή πλαισίου εκτέλεσης που ικανοποιεί την προκαθορισμένη συνθήκη, το επόμενο αίτημα που εξυπηρετείται μετά τη μεταγωγή πλαισίου εκτέλεσης εξυπηρετείται με έναν λανθάνοντα χρόνο που αντιστοιχεί στη δεύτερη κατάσταση. In a memory using a technology which has memory locations in a first state or a second state as discussed above, where there is a lower access latency when a request to block is made in the first state than when the memory access request makes accessing a group in the second state, the delay masking function could in some cases include checking the memory for transition of each group currently in the first state from the first state to the second state. For example, the delay masking operation could include closing or disabling one or more pages or rows of memory locations, or clearing a cached group of locations and writing it back to the storage array. This means that after the execution frame switch that satisfies the predetermined condition, the next request served after the execution frame switch is served with a latency corresponding to the second state.

Για παράδειγμα, με μια βασισμένη στη DRAM μνήμη, ο λανθάνον χρόνος που αντιστοιχεί στη δεύτερη κατάσταση θα μπορούσε να αντιστοιχεί στην καθυστέρηση που σχετίζεται με την πρόσβαση σε μια κλειστή σειρά εντός μιας συστοιχίας DRAM όπου δεν υπάρχει ήδη εκείνη τη στιγμή κάποια σειρά ανοικτή. Συνεπώς, σε ορισμένες περιπτώσεις η σταθερή καθυστέρηση που εφαρμόζεται για τουλάχιστον ορισμένα αιτήματα πρόσβασης στη μνήμη μετά τη μεταγωγή πλαισίου μπορεί να αντιστοιχεί στην καθυστέρηση πρόσβασης κλειστής συστοιχίας της DRAM. Όταν η λειτουργία συγκάλυψης καθυστέρησης περιλαμβάνει τη διέγερση κλεισίματος σελίδων θέσεων μνήμης όπως εξετάζεται παραπάνω, τότε αυτό μπορεί να σημαίνει ότι η πρώτη πρόσβαση που εξυπηρετείται σε κάθε συστοιχία μετά τη μεταγωγή πλαισίου μπορεί να έχει σταθερή καθυστέρηση (λανθάνον χρόνος δεύτερης κατάστασης) που αντιστοιχεί στη συνθήκη κλειστής συστοιχίας, όμως τότε τα επακόλουθα εξυπηρετούμενα αιτήματα που σχετίζονται με το δεύτερο πλαίσιο εκτέλεσης τα οποία πραγματοποιούν πρόσβαση στην ίδια σελίδα όπως ένα παλαιότερα εξυπηρετούμενο αίτημα που σχετίζεται με το δεύτερο πλαίσιο εκτέλεσης, θα μπορούσαν ωστόσο να εξυπηρετούνται με την καθυστέρηση ανοικτής σελίδας (λανθάνον χρόνος πρώτης κατάστασης) εάν πραγματοποιούν πρόσβαση στην ίδια σελίδα όπως ένα άλλο αίτημα που εξυπηρετήθηκε από τη μεταγωγή πλαισίου εκτέλεσης. Συνεπώς, μολονότι το κλείσιμο των σελίδων των θέσεων μνήμης (ή η μετάβαση από την πρώτη στη δεύτερη κατάσταση) μπορεί να επαρκεί για να εξασφαλιστεί ότι ο λανθάνον χρόνος απάντησης όλων των επακόλουθων αιτημάτων του δεύτερου πλαισίου εκτέλεσης είναι ανεξάρτητος από το σχέδιο διευθύνσεων στις οποίες πραγματοποιείται πρόσβαση από το πρώτο πλαίσιο εκτέλεσης, αυτό δεν απαιτεί την εξυπηρέτηση κάθε επακόλουθου αιτήματος του δεύτερου πλαισίου εκτέλεσης με μια σταθερή καθυστέρηση (εφόσον τα αιτήματα μπορούν να διαχειρίζονται ταχύτερα όταν πραγματοποιούν πρόσβαση σε μια ήδη ανοικτή σελίδα των θέσεων μνήμης), για τη βελτίωση της απόδοσης. For example, with a DRAM-based memory, the latency corresponding to the second state could correspond to the delay associated with accessing a closed row within a DRAM array where no row is already open at that time. Therefore, in some cases the fixed delay applied for at least some memory access requests after the frame switch may correspond to the closed array access delay of the DRAM. When the delay masking function involves triggering the closing of pages of memory locations as discussed above, then this can mean that the first access served on each array after the frame switch can have a constant delay (second state latency) corresponding to the closed condition array, but then subsequent served requests associated with the second execution context that access the same page as an earlier served request associated with the second execution context could still be served with the page-open delay (first-state latency ) if they access the same page as another request served by the execution context switch. Therefore, although paging memory locations (or transitioning from the first to the second state) may be sufficient to ensure that the response latency of all subsequent requests of the second execution frame is independent of the address scheme being accessed from the first execution frame, this does not require servicing each subsequent request of the second execution frame with a fixed delay (since requests can be handled faster when accessing an already open page of memory locations), to improve performance.

Εναλλακτικά, η λειτουργία συγκάλυψης καθυστέρησης θα μπορούσε να περιλαμβάνει την καθυστέρηση ενός ή και των δύο από τα εξής: (ϊ) ένα αίτημα πρόσβασης στη μνήμη που εξυπηρετείται μετά τη μεταγωγή πλαισίου εκτέλεσης ή (ϋ) μια απάντηση στο αίτημα πρόσβασης στη μνήμη που εξυπηρετήθηκε μετά τη μεταγωγή πλαισίου εκτέλεσης, διατηρώντας το αίτημα ή την απάντηση σε μια προσωρινή μνήμη καθυστερήσεων για κάποιο χρόνο για τη συγκάλυψη ενός πραγματικού λανθάνοντος χρόνου πρόσβασης που παρέχεται από τη μνήμη κατά την εξυπηρέτηση του ενός τουλάχιστον αιτήματος πρόσβασης στη μνήμη. Σε ορισμένες προσεγγίσεις αυτό θα μπορούσε να εξοικονομεί ενέργεια επειδή η λειτουργία κλεισίματος ή απενεργοποίησης σελίδων των θέσεων μνήμης μπορεί να απαιτεί την προ-φόρτιση των γραμμών σήματος εντός της δομής μνήμης γεγονός το οποίο μεταφράζεται σε επιπλέον κατανάλωση ενέργειας. Αντί του πραγματικού κλεισίματος των θέσεων εντός της μνήμης, οι ανοικτές/ενεργοποιημένες σελίδες που προκύπτουν από τα σχέδια πρόσβασης στο πρώτο πλαίσιο εκτέλεσης θα μπορούσαν να διατηρούνται ως ανοικτές κατά τη μεταγωγή στη διαχείριση αιτήματος πρόσβασης στη μνήμη που σχετίζονται με το δεύτερο πλαίσιο εκτέλεσης, αλλά μια προσωρινή μνήμη καθυστέρησης μπορεί να χρησιμοποιείται για την προσομοίωση μιας καθυστέρησης σαν οι σελίδες να είχαν κλείσει/απενεργοποιηθεί ώστε ακόμη και εάν ένα αίτημα του δεύτερου πλαισίου εκτέλεσης στοχεύει στην ίδια σελίδα στην οποία πραγματοποιείται πρόσβαση και από το πρώτο πλαίσιο εκτέλεσης, το δεύτερο πλαίσιο εκτέλεσης δεν μπορεί να προσδιορίζει από τον λανθάνοντα χρόνο απάντησης ότι το πρώτο πλαίσιο εκτέλεσης πραγματοποίησε πρόσβαση στην ίδια σελίδα της δομής μνήμης. Alternatively, the delay masking function could include delaying one or both of the following: (i) a memory access request served after the execution frame switch or (d) a response to the memory access request served after execution frame switching, keeping the request or response in a delay buffer for some time to mask an actual access latency provided by the memory while servicing the at least one memory access request. In some approaches this could save power because the operation of closing or disabling pages of memory locations may require pre-charging the signal lines within the memory structure which translates into additional power consumption. Instead of actually closing in-memory locations, open/enabled pages resulting from access plans in the first execution context could be kept open during the switch to memory access request management associated with the second execution context, but a delay buffer can be used to simulate a delay as if the pages were closed/disabled so that even if a request from the second execution framework targets the same page accessed by the first execution framework, the second execution framework cannot determine from the response latency that the first execution context accessed the same page of the memory structure.

Σε ορισμένα παραδείγματα, κατά τη διάρκεια μιας περιόδου καθυστέρησης όταν το αίτημα πρόσβασης στη μνήμη ή η απάντηση καθυστερείται στην προσωρινή μνήμη καθυστέρησης, ο διαχειριστής αιτημάτων μπορεί να ελέγχει τη μνήμη για την εξυπηρέτηση τουλάχιστον ενός άλλου αιτήματος που στοχεύει στην ίδια σελίδα στη μνήμη όπως το καθυστερημένο αίτημα πρόσβασης στη μνήμη. Για παράδειγμα, το άλλο αίτημα θα μπορούσε να είναι ένα άλλο αίτημα πρόσβασης στη μνήμη (αίτημα ανάγνωσης ή εγγραφής), ένα αίτημα ετερόχρονης εγγραφής που διεγείρει μια ετερόχρονη εγγραφή από μια κρυφή μνήμη στη μνήμη ή μια λειτουργία ανανέωσης για την ανανέωση των περιεχομένων της μνήμης σε έναν τύπο μνήμης ο οποίος απαιτεί περιοδική ανανέωση για τη διατήρηση της κατάστασής του. Αυτή η προσέγγιση μπορεί να επιτρέπει στο διαχειριστή αιτημάτων να κάνει χρήση της περιόδου καθυστέρησης (όταν ένα δεδομένο αίτημα ή μια απάντηση καθυστερείται ώστε να εξομοιώνεται η μνήμη ως πιο αργή από ότι πραγματικά εξυπηρετεί το αίτημα) για την εξυπηρέτηση ενός άλλου αιτήματος στο μεταξύ ώστε να μην είναι απαραίτητη η αναμονή μέχρι τη λήξη της προσομοιωμένης καθυστέρησης πριν την εξυπηρέτηση αυτού του άλλου αιτήματος. Αυτό μπορεί να βελτιώνει την απόδοση. In some examples, during a delay period when the memory access request or response is delayed in the delay buffer, the request manager may control the memory to service at least one other request that targets the same page in memory as the delayed one memory access request. For example, the other request could be another memory access request (a read or write request), an asynchronous write request that triggers an asynchronous write from an in-memory cache, or a refresh operation to refresh the contents of memory in a type of memory that requires periodic refresh to maintain its state. This approach can allow the request handler to use the delay period (when a given request or response is delayed to simulate memory being slower than it is actually serving the request) to service another request in the meantime so that it does not it is necessary to wait until the end of the simulated delay before servicing this other request. This can improve performance.

Μια δεδομένη διάταξη μνήμης μπορεί να εξυπηρετεί διάφορους τύπους αιτημάτων, όπως τα αιτήματα ανάγνωσης που αιτούνται την ανάγνωση δεδομένων από τη μνήμη και τα αιτήματα εγγραφής που αιτούνται την εγγραφή δεδομένων στη μνήμη. Σε γενικές γραμμές, τα αιτήματα ανάγνωσης και εγγραφής μπορεί να είναι αιτήματα τα οποία διεγείρονται άμεσα από ένα λογισμικό που εκτελείται σε ένα στοιχείο επεξεργασίας ή από ένα στοιχείο υλικού όπως μια διάταξη προ-προσκόμισης η οποία προσκομίζει από πριν δεδομένα από τη μνήμη με βάση την παρατηρηθείσα δραστηριότητα ενός δεδομένου πλαισίου εκτέλεσης που εκτελείται στο στοιχείο επεξεργασίας. Τέτοια αιτήματα μπορεί να είναι σχετικά απλά για συσχέτιση με συγκεκριμένα πλαίσια εκτέλεσης, για παράδειγμα το στοιχείο επεξεργασίας το οποίο δημιούργησε το αίτημα ανάγνωσης ή εγγραφής θα μπορούσε να τοποθετεί στα αιτήματα ετικέτες με το αναγνωριστικό του πλαισίου εκτέλεσης το οποίο εκτελείται εκείνη τη στιγμή. A given memory array can serve several types of requests, such as read requests that request data to be read from memory and write requests that request data to be written to memory. In general, read and write requests can be requests that are triggered directly by software running on a processing element or by a hardware element such as a prefetcher that prefetches data from memory based on the observed activity of a given execution context running on the processing element. Such requests can be relatively simple to associate with specific execution contexts, for example the processing component that originated the read or write request could tag the requests with the ID of the execution context currently running.

Ωστόσο, ένας άλλος τύπος αιτήματος ο οποίος μπορεί να χρειαστεί εξυπηρέτηση από τη μνήμη μπορεί να είναι ένα αίτημα ετερόχρονης εγγραφής το οποίο είναι ένα αίτημα ετερόχρονης εγγραφής δεδομένων από μια κρυφή μνήμη στη μνήμη. Σε αυτό το πλαίσιο, η μνήμη θα μπορούσε να είναι μια κρυφή μνήμη περαιτέρω επιπέδου στην οποία εγγράφονται δεδομένα από μια κρυφή μνήμη που βρίσκεται κοντύτερα στο στοιχείο επεξεργασίας ή θα μπορούσε να είναι η κύρια μνήμη που υποκαθιστά το χώρο εφεδρικής αποθήκευσης σε ένα ή περισσότερα επίπεδα κρυφής μνήμης. Με τα αιτήματα ετερόχρονης εγγραφής, ο χρονισμός κατά τον οποίο εκδίδεται το αίτημα ετερόχρονης εγγραφής μπορεί να αποσυνδέεται από το χρόνο κατά τον οποίο τα δεδομένα εγγράφηκαν στην κρυφή μνήμη από ένα στοιχείο επεξεργασίας υπό τον έλεγχο ενός δεδομένου πλαισίου εκτέλεσης. Συνεπώς, κατά το χρόνο έκδοσης του αιτήματος ετερόχρονης εγγραφής μπορεί να είναι δυσκολότερος ο προσδιορισμός του πλαισίου εκτέλεσης που σχετίζεται με το αίτημα ετερόχρονης εγγραφής. Για παράδειγμα ο χρονισμός κατά τον οποίο εκδίδεται ένα αίτημα ετερόχρονης εγγραφής μπορεί να εξαρτάται από το χρόνο έξωσης των αντίστοιχων δεδομένων από την κρυφή μνήμη, ο οποίος μπορεί να εξαρτάται από τα σχέδια επακόλουθων προσβάσεων των διευθύνσεων οι οποίες δεν έχουν καμία σχέση με το πλαίσιο εκτέλεσης το οποίο έγραψε στην πραγματικότητα αρχικά τα δεδομένα. Σε ορισμένες υλοποιήσεις, μπορεί να θεωρείται ότι εφόσον ο χρονισμός με τον οποίο εκδίδονται τα αιτήματα ετερόχρονης εγγραφής εξαρτάται πραγματικά από την πολιτική ελέγχου κρυφής μνήμης που υιοθετείται, ο οποίος μπορεί να είναι σχετικά δύσκολο να επηρεάζεται από έναν επιτιθέμενο, τότε ο κίνδυνος απόκτησης πληροφοριών από έναν επιτιθέμενο για τη λειτουργία μιας διαδικασίας θύματος, με βάση τον λανθάνοντα χρόνο πρόσβασης στη μνήμη που υφίσταται για τα αιτήματα ετερόχρονης εγγραφής ή για τα επακόλουθα αιτήματα μετά το αίτημα ετερόχρονης εγγραφής, μπορεί να είναι σχετικά χαμηλός. Συνεπώς, σε ορισμένες υλοποιήσεις το κύκλωμα διαχείρισης αιτημάτων μπορεί να μην προσπαθεί τον προσδιορισμό συγκεκριμένων πλαισίων εκτέλεσης που σχετίζονται με τα αιτήματα ετερόχρονης εγγραφής. However, another type of request that may need to be serviced by memory may be a write asynchronous request which is a request to write data asynchronously from a cache to memory. In this context, the memory could be a further-level cache into which data is written from a cache closer to the processing element, or it could be main memory that replaces the backup storage space in one or more cache levels memory. With asynchronous write requests, the timing at which the asynchronous write request is issued can be decoupled from the time at which the data was written to the cache by a processing element under the control of a given execution context. Therefore, at the time the rollback request is issued it may be more difficult to determine the execution context associated with the rollback request. For example, the timing at which an asynchronous write request is issued may depend on the time the corresponding data is evicted from the cache, which may depend on the subsequent access plans of the addresses that have nothing to do with the execution context. which actually wrote the data in the first place. In some implementations, it may be considered that since the timing at which asynchronous write requests are issued actually depends on the cache control policy adopted, which may be relatively difficult for an attacker to influence, then the risk of information being obtained by an attacker to run a victim process, based on the memory access latency experienced for asynchronous write requests or for subsequent requests after the asynchronous write request, may be relatively low. Accordingly, in some implementations the request handling circuitry may not attempt to determine specific execution contexts associated with asynchronous write requests.

Ωστόσο, σε άλλα συστήματα με μεγαλύτερη απαίτηση ασφαλείας μπορεί να είναι επιθυμητή και η αντιμετώπιση έναντι πιθανών επιθέσεων πλευρικού καναλιού που εκμεταλλεύονται τη διακύμανση του χρονισμού ενός απήματος πρόσβασης στη μνήμη που σχετίζεται με μια διαδικασία επιτιθέμενου μετά από ένα αίτημα ετερόχρονης εγγραφής το οποίο σχετίζεται με δεδομένα τα οποία αρχικά εγγράφηκαν από μια διαδικασία θύμα. Ένας αριθμός επιλογών είναι διαθέσιμος για την αντιμετώπιση τέτοιων επιθέσεων. However, in other systems with a higher security requirement it may also be desirable to counter potential side-channel attacks that exploit the variation in the timing of a memory access burst associated with an attacker process following a write asynchronous request associated with data which were originally registered by a victim process. A number of options are available to counter such attacks.

Σε ένα πρώτο παράδειγμα, το κύκλωμα διαχείρισης αιτημάτων μπορεί να προσδιορίζει ότι τα αιτήματα ετερόχρονης εγγραφής τα οποία αιτούνται την ετερόχρονη εγγραφή των αποθηκευμένων σε κρυφή μνήμη δεδομένων από μια κρυφή μνήμη στη μνήμη σχετίζονται με ένα αποκλειστικό πλαίσιο εκτέλεσης ετερόχρονης εγγραφής, ανεξάρτητο από το πλαίσιο εκτέλεσης το οποίο πραγματικά προκάλεσε την εκχώρηση των αποθηκευμένων σε κρυφή μνήμη δεδομένων στην κρυφή μνήμη. Συνεπώς, όλα τα αιτήματα ετερόχρονης εγγραφής μπορεί απλά να υποτίθεται ότι σχετίζονται με το δικό τους ειδικό πλαίσιο εκτέλεσης ώστε τα αιτήματα ετερόχρονης εγγραφής μπορούν να ομαδοποιούνται μαζί με έναν παρόμοιο τρόπο με αιτήματα από άλλα πλαίσια εκτέλεσης όπως εξετάζεται παραπάνω. Όταν υπάρχει μια μεταγωγή από τη διαχείριση μιας ομάδας αιτημάτων ετερόχρονης εγγραφής στη διαχείριση αιτημάτων από ένα πραγματικό (μη ετερόχρονης εγγραφής) πλαίσιο εκτέλεσης, το κύκλωμα διαχείρισης κυκλωμάτων μπορεί να την προσδιορίζει ως μια μεταγωγή πλαισίου εκτέλεσης η οποία ικανοποιεί την προκαθορισμένη συνθήκη κι επομένως μπορεί να διεγείρει την πραγματοποίηση της λειτουργίας συγκάλυψης καθυστέρησης. Ομαδοποιώντας μαζί τα αιτήματα ετερόχρονης εγγραφής, αυτό μπορεί να μειώνει τη συχνότητα με την οποία υπάρχουν μεταγωγές ανάμεσα στη διαχείριση ενός αιτήματος ετερόχρονης εγγραφής και στη διαχείριση ενός αιτήματος πρόσβασης στη μνήμη που σχετίζεται με ένα πραγματικό πλαίσιο εκτέλεσης, γεγονός το οποίο μπορεί να μειώνει την τρωτότητα σε επιθέσεις πλευρικού καναλιού. In a first example, the request handling circuitry may determine that write-ahead requests that request the asynchronous write of cached data from an in-memory cache are associated with a dedicated write-ahead execution context, independent of the execution context which actually caused the cached data to be allocated to the cache. Therefore, all asynchronous write requests can simply be assumed to be associated with their own specific execution context so that asynchronous write requests can be grouped together in a similar way to requests from other execution contexts as discussed above. When there is a switch from handling a pool of asynchronous write requests to handling requests from a real (non-asynchronous write) execution context, the circuit manager circuit may identify it as an execution context switch that satisfies the predefined condition and therefore may trigger performing the delay masking function. By grouping asynchronous write requests together, this can reduce the frequency with which there are switches between handling a asynchronous write request and handling a memory access request associated with a real execution context, which can reduce vulnerability to side channel attacks.

Μια άλλη προσέγγιση μπορεί να είναι ότι κάθε μεμονωμένο αίτημα ετερόχρονης εγγραφής αντιμετωπίζεται ουσιαστικά ως το δικό του πλαίσιο εκτέλεσης, ώστε κάθε μετάβαση από την εξυπηρέτηση ενός δεδομένου αιτήματος ετερόχρονης εγγραφής στην εξυπηρέτηση ενός άλλου αιτήματος (π.χ. ένα διαφορετικό αίτημα ετερόχρονης εγγραφής ή ένα αίτημα πρόσβασης στη μνήμη μη ετερόχρονης εγγραφής) αντιμετωπίζεται ως μια μεταγωγή πλαισίου εκτέλεσης. Συνεπώς, το κύκλωμα διαχείρισης αιτημάτων θα μπορούσε να εξασφαλίζει ότι μετά την εξυπηρέτηση ενός δεδομένου αιτήματος ετερόχρονης εγγραφής, μπορεί να πραγματοποιείται η λειτουργία συγκάλυψης καθυστέρησης ώστε ένα επόμενο αίτημα πρόσβασης στη μνήμη ή ένα επόμενο αίτημα ετερόχρονης εγγραφής που εξυπηρετείται από τη μνήμη, για το οποίο τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, να εξυπηρετείται με μια καθυστέρηση απόκρισης ανεξάρτητα από τη διεύθυνση που προσδιορίζεται από το δεδομένο αίτημα ετερόχρονης εγγραφής. Για παράδειγμα, η σελίδα ή η ομάδα της δομής μνήμης στην οποία πραγματοποιήθηκε πρόσβαση από το αίτημα ετερόχρονης εγγραφής θα μπορούσε να μεταβαίνει στη δεύτερη κατάσταση (π.χ. κλειστή ή απενεργοποιημένη) πριν την εξυπηρέτηση του επόμενου αιτήματος μετά το αίτημα ετερόχρονης εγγραφής, ώστε να είναι δυνατή η διασφάλιση ότι ακόμη και εάν το αίτημα ετερόχρονης εγγραφής συσχετιζόταν με μια διαδικασία θύματος ενδιαφέροντος ενός επιτιθέμενου, το επόμενο αίτημα πρόσβασης στη μνήμη του επιτιθέμενου δεν μπορεί να χρησιμοποιείται για την απόκτηση πληροφοριών σχετικά με τη διεύθυνση ετερόχρονης εγγραφής. Another approach might be that each individual asynchronous write request is essentially treated as its own execution context, so that each transition from servicing a given asynchronous write request to servicing another request (e.g. a different asynchronous write request or a non-synchronous write memory access) is treated as an execution frame switch. Accordingly, the request management circuitry could ensure that after a given write-ahead request is serviced, delay masking may be performed so that a subsequent memory access request or a subsequent memory-served write-ahead request, for which the required data is already stored in memory, be served with a response delay regardless of the address specified by the given write-back request. For example, the page or pool of the memory structure accessed by the asynchronous write request could transition to the second state (eg, closed or disabled) before servicing the next request after the asynchronous write request, so that it is possible to ensure that even if the write-back request was associated with a victim process of interest to an attacker, the attacker's subsequent memory access request cannot be used to obtain information about the write-back address.

Μια τρίτη επιλογή μπορεί να είναι για την κρυφή μνήμη η οποία αποθηκεύει τα αποθηκευμένα σε κρυφή μνήμη δεδομένα η αποθήκευση μιας ένδειξης του αναγνωριστικού πλαισίου εκτέλεσης μαζί με τα ίδια τα αποθηκευμένα σε κρυφή μνήμη δεδομένα, ώστε όταν η κρυφή μνήμη δημιουργεί ένα αίτημα ετερόχρονης εγγραφής για την ετερόχρονη εγγραφή μιας προκαθορισμένης ομάδας αποθηκευμένων σε κρυφή μνήμη δεδομένων στη μνήμη, στο αίτημα ετερόχρονης εγγραφής μπορεί να τοποθετείται μια ετικέτα με το αναγνωριστικό πλαισίου εκτέλεσης που σχετίζεται με αυτή την ομάδα αποθηκευμένων σε κρυφή μνήμη δεδομένων. Με αυτή την προσέγγιση, το κύκλωμα διαχείρισης αιτημάτων μπορεί να προσδιορίζει το πραγματικό πλαίσιο εκτέλεσης που σχετίζεται με τα αποθηκευμένα σε κρυφή μνήμη δεδομένα και να το ομαδοποιεί μαζί με τα αιτήματα από το ίδιο πλαίσιο εκτέλεσης εάν είναι απαραίτητο. Με άλλα λόγια, με αυτή την προσέγγιση το κύκλωμα διαχείρισης αιτημάτων μπορεί να αντιμετωπίζει τα αιτήματα ετερόχρονης εγγραφής με τον ίδιο τρόπο όπως εξετάζεται παραπάνω για τα συνήθη αιτήματα πρόσβασης στη μνήμη, χρησιμοποιώντας ένα αναγνωριστικό πλαισίου εκτέλεσης που προσδιορίζεται από το αίτημα για τον προσδιορισμό των μεταγωγών πλαισίου. Μολονότι αυτή η προσέγγιση μπορεί να αυξάνει τη χωρητικότητα αποθήκευσης που απαιτείται στην κρυφή μνήμη, αυτό μπορεί να μειώνει τον κίνδυνο διαρροής πληροφοριών μέσω πληροφοριών για τα σχέδια διευθύνσεων στα οποία πραγματοποιούν πρόσβαση τα αιτήματα ετερόχρονης εγγραφής. A third option might be for the cache that stores the cached data to store a pointer to the execution context ID along with the cached data itself, so that when the cache makes a write-back request for the asynchronously writing a predefined group of cached data into memory, the asynchronous write request may be tagged with the execution context ID associated with that group of cached data. With this approach, the request handler can determine the actual execution context associated with the cached data and group it together with requests from the same execution context if necessary. In other words, with this approach the request handler can treat asynchronous write requests in the same way as discussed above for normal memory access requests, using an execution frame identifier specified by the request to identify frame switches . Although this approach may increase the storage capacity required in the cache, it may reduce the risk of information leakage through address plan information accessed by asynchronous write requests.

Η τεχνική που εξετάζεται παραπάνω μπορεί να εφαρμόζεται σε ένα εύρος τεχνολογιών μνήμης, όπως η DRAM, η μη πτητική RAM (non-volatile RAM ή NVRAM) όπως η μνήμη flash ή μια μνήμη περιστρεφόμενου δίσκου ή μια άλλη μορφή τεχνολογίας μνήμης η οποία χρησιμοποιεί μια υλική κεφαλή ανάγνωσης η οποία μετακινείται επάνω στο μέσο αποθήκευσης. Είναι ιδιαίτερα χρήσιμο σε μορφές τεχνολογιών μνήμης όπου, για την πρόσβαση σε μια δεδομένη θέση μνήμης, η αντίστοιχη σελίδα, σειρά ή ομάδα σειρών της δομής μνήμης διαβάζεται σε μια προσωρινή μνήμη και στη συνέχεια οι αναγνώσεις και εγγραφές σε αυτή τη σελίδα, σειρά ή ομάδα σειρών μπορούν να εξυπηρετούνται από την προσωρινή μνήμη ταχύτερα από ένα αίτημα που απαιτεί μια διαφορετική μη αποθηκευμένη σε προσωρινή μνήμη περιοχή μνήμης. Οι DRAM και NVRAM είναι παραδείγματα αυτού, όμως θα εκτιμηθεί ότι και άλλες μορφές τεχνολογίας θα μπορούσαν να έχουν παρόμοιο μεταβλητό λανθάνοντα χρόνο ανάλογα την τρέχουσα αποθηκευμένη σε προσωρινή μνήμη/μη αποθηκευμένη σε προσωρινή μνήμη κατάσταση της θέσης μνήμης πρόσβασης. The technique discussed above can be applied to a range of memory technologies, such as DRAM, non-volatile RAM (NVRAM) such as flash memory or a spinning disk memory, or another form of memory technology that uses a hardware read head that moves onto the storage medium. It is particularly useful in forms of memory technologies where, to access a given memory location, the corresponding page, row, or group of rows of the memory structure is read into a buffer, and then the reads and writes to that page, row, or group of rows they can be served by the cache faster than a request that requires a different non-cached area of memory. DRAM and NVRAM are examples of this, but it will be appreciated that other forms of technology could have similar variable latency depending on the current cached/uncached state of the access memory location.

Το Σχήμα 1 απεικονίζει σχημαπκά ένα παράδειγμα ενός συστήματος επεξεργασίας δεδομένων 2 με έναν αριθμό στοιχείων επεξεργασίας 4, όπως οι πυρήνες επεξεργαστή, οι κεντρικές μονάδες επεξεργασίας (central processing unit ή CPU), οι μονάδες επεξεργασίας γραφικών (graphics processing unit ή GPU) ή κάθε άλλη διάταξη ικανή για την έκδοση αιτημάτων πρόσβασης σε δεδομένα από τη μνήμη. Τουλάχιστον ορισμένα από τα στοιχεία επεξεργασίας 4 μπορεί να έχουν τουλάχιστον μια κρυφή μνήμη 6 για την αποθήκευση δεδομένων σε κρυφή μνήμη από το σύστημα μνήμης για ταχύτερη πρόσβαση από το στοιχείο επεξεργασίας 4. Μπορεί να παρέχεται μια διασύνδεση 8 για τη διαχείριση της συνοχής μεταξύ των αντίστοιχων κρυφών μνημών 6 των στοιχείων επεξεργασίας 4 και επίσης τη δρομολόγηση των αιτημάτων για τις αναγνώσεις και εγγραφές δεδομένων στην κύρια μνήμη. Ένας αριθμός διατάξεων μνήμης μπορεί να παρέχεται εντός του συστήματος μνήμης όπως μια μονάδα DRAM 10 και μια μη πτητική (non-volatile ή NV) RAM 12. Θα εκτιμηθεί ότι αυτοί είναι μόλις κάποιοι από τους τύπους μνήμης που μπορούν να παρέχονται. Κάθε διάταξη μνήμης 10, 12 έχει έναν ελεγκτή μνήμης 14 που σχετίζεται με αυτή για τη διαχείριση της πρόσβασης σε αυτή τη διάταξη μνήμης. Η διασύνδεση 8 μπορεί να έχει ένα κύκλωμα ελέγχου 16 για τον έλεγχο της δρομολόγησης των αιτημάτων πρόσβασης στη μνήμη προς τους ελεγκτές μνήμης 14 και προς άλλες υποτελείς διατάξεις που δε δείχνονται στο Σχήμα 1. Σε ορισμένες περιπτώσεις η διασύνδεση 8 μπορεί να περιλαμβάνει μια κρυφή μνήμη συστήματος 18 η οποία χρησιμοποιείται από κοινού από τα στοιχεία επεξεργασίας 4 και αποθηκεύει στην κρυφή μνήμη ορισμένα δεδομένα από την κύρια μνήμη 10, 12 για ταχύτερη πρόσβαση από τα στοιχεία επεξεργασίας 4 από ότι εάν έπρεπε να προσκομίζονται από την κύρια μνήμη. Κάθε γνωστό πρωτόκολλο συνοχής μπορεί να χρησιμοποιείται από τη διασύνδεση 8 για τη διαχείριση της συνοχής ανάμεσα στις διάφορες κρυφές μνήμες. Θα εκτιμηθεί ότι το Σχήμα 1 είναι μόλις ένα παράδειγμα μιας πιθανής υλοποίησης ενός συστήματος επεξεργασίας δεδομένων και ότι μπορεί να είναι δυνατές πολλές παραλλαγές αυτής της διάταξης. Figure 1 schematically illustrates an example of a data processing system 2 with a number of processing elements 4, such as processor cores, central processing units (CPU), graphics processing units (GPU) or any other device capable of issuing data access requests from memory. At least some of the processing elements 4 may have at least one cache 6 for caching data from the memory system for faster access by the processing element 4. An interface 8 may be provided to manage coherence between the respective caches memories 6 of the processing elements 4 and also the routing of the requests for the data reads and writes to the main memory. A number of memory devices may be provided within the memory system such as a DRAM unit 10 and a non-volatile (NV) RAM 12. It will be appreciated that these are just some of the types of memory that may be provided. Each memory array 10, 12 has a memory controller 14 associated with it to manage access to that memory array. The interface 8 may have a control circuit 16 to control the routing of memory access requests to the memory controllers 14 and other slave devices not shown in Figure 1. In some cases the interface 8 may include a system cache 18 which is shared by the processing elements 4 and caches some data from the main memory 10, 12 for faster access by the processing elements 4 than if they had to be fetched from the main memory. Any known coherency protocol may be used by interface 8 to manage coherency between the various caches. It will be appreciated that Figure 1 is just one example of one possible implementation of a data processing system and that many variations of this arrangement may be possible.

Το Σχήμα 2 δείχνει ένα παράδειγμα μιας δομής μνήμης για τη μονάδα DRAM 10. Είναι δυνατή η ανεξάρτητη πρόσβαση σε πολλαπλές συστοιχίες 20 ενός ολοκληρωμένου κυκλώματος DRAM 10 κι επομένως είναι δυνατή η ταυτόχρονη εξυπηρέτηση αιτημάτων προς διαφορετικές συστοιχίες. Αυτό ονομάζεται παραλληλισμός επιπέδου συστοιχίας (banklevel parallelism). Οι συστοιχίες 20 είναι παραδείγματα μονάδων αποθήκευσης στις οποίες είναι δυνατή η παράλληλη πρόσβαση. Κάθε συστοιχία 20 έχει μια προσωρινή μνήμη σειρών 22. Κάθε συστοιχία 20 οργανώνεται σε σειρές και στήλες, ενώ η πρόσβαση στα δεδομένα μιας συστοιχίας DRAM είναι δυνατή μόνο από την προσωρινή μνήμη σειρών της συστοιχίας 22, η οποία εξυπηρετεί ως προσωρινή μνήμη για τη σειρά μνήμης τελευταίας πρόσβασης σε αυτή τη συστοιχία. Figure 2 shows an example of a memory structure for the DRAM unit 10. Multiple arrays 20 of a DRAM integrated circuit 10 can be accessed independently and thus requests to different arrays can be serviced simultaneously. This is called banklevel parallelism. Arrays 20 are examples of storage units that can be accessed in parallel. Each array 20 has a row buffer 22. Each array 20 is organized into rows and columns, while the data of a DRAM array can only be accessed from the row buffer of array 22, which serves as a buffer for the last memory row access to this array.

Οι μετέπειτα προσβάσεις στην ίδια σειρά μπορούν να εξυπηρετούνται με πρόσβαση στην προσωρινή μνήμη σειρών 22 (επιτυχία προσωρινής μνήμης σειρών), γεγονός το οποίο μειώνει τον λανθάνοντα χρόνο σε σύγκριση με την πρόσβαση στα κελιά DRAM σε άλλες σειρές. Αυτό αναφέρεται ως τοποθεσία προσωρινής μνήμης σειρών. Επομένως, η πρόσβαση DRAM έχει μεταβλητό λανθάνοντα χρόνο ανάλογα εάν: Subsequent accesses to the same row can be served by accessing row cache 22 (row cache hit), which reduces latency compared to accessing DRAM cells in other rows. This is referred to as the row cache location. DRAM access therefore has variable latency depending on whether:

1 . η επιθυμητή σειρά είναι ανοικτή, δηλ. επιτυχία προσωρινής μνήμης σειρών: μικρός λανθάνον χρόνος πρόσβασης, παράδειγμα 18+ ns 1. desired row is open, ie row cache success: low access latency, example 18+ ns

2. η συστοιχία είναι κλειστή/προ-φορτισμένη (καμία σειρά δεν είναι ανοικτή εκείνη τη στιγμή): μεσαίος λανθάνον χρόνος πρόσβασης, παράδειγμα 32+ ns 2. array is closed/pre-charged (no row open at that time): medium access latency, example 32+ ns

3. μια διαφορετική σειρά είναι ανοικτή στην ίδια συστοιχία με την επιθυμητή σειρά (γνωστό και ως διένεξη συστοιχίας): μεγάλος λανθάνον χρόνος πρόσβασης, παράδειγμα 42+ ns. 3. a different row is open on the same array as the desired row (also known as array contention): high access latency, example 42+ ns.

Μολονότι το Σχήμα 2 δείχνει ένα παράδειγμα για μια μονάδα μνήμης DRAM 10 και άλλοι τύποι μνήμης μπορεί παρομοίως να έχουν πολλαπλές παράλληλες μονάδες αποθήκευσης 20 στις οποίες είναι δυνατή η παράλληλη πρόσβαση, κάθε μια από τις οποίες έχει μια προσωρινή μνήμη 22 για την προσωρινή αποθήκευση τουλάχιστον μιας σειράς ή “σελίδας” της δομής μνήμης, ώστε η πρόσβαση σε μια δεδομένη θέση μνήμης να έχει μικρότερο λανθάνοντα χρόνο όταν η θέση μνήμης είναι σε μια πρώτη κατάσταση (αποθηκευμένη στην προσωρινή μνήμη σελίδων 22) από ότι εάν η θέση μνήμης είναι σε μια δεύτερη κατάσταση (μη αποθηκευμένη στην προσωρινή μνήμη σελίδων 22). Ας σημειωθεί ότι ο όρος “σελίδα” στα πλαίσια της DRAM ή μιας άλλης μονάδας μνήμης αναφέρεται στη μονάδα του πίνακα αποθήκευσης μνήμης η οποία μπορεί να τοποθετείται στην προσωρινή μνήμη σειρών 22 κάθε φορά. Αυτή διαφέρει από τις “σελίδες” του λειτουργικού συστήματος (operating system ή OS) οι οποίες αναφέρονται στο μέγεθος της μονάδας διευθύνσεων μνήμης (αναλυτικότητα) για την οποία διαχειρίζεται η μετάφραση διευθύνσεων, εκχώρηση μνήμης ή προστασία μνήμης. Although Figure 2 shows an example for a DRAM memory unit 10 and other types of memory may similarly have multiple parallel storage units 20 that can be accessed in parallel, each having a cache 22 for temporarily storing at least one row or “page” of the memory structure so that access to a given memory location has a lower latency when the memory location is in a first state (stored in page buffer 22) than if the memory location is in a second state (not cached page 22). It should be noted that the term "page" in the context of DRAM or another memory unit refers to the unit of the memory storage array that can be placed in the buffer 22 rows at a time. This differs from operating system (OS) “pages” which refer to the size of the memory address unit (resolution) for which address translation, memory allocation, or memory protection is managed.

Η χαρτογράφηση μιας φυσικής διεύθυνσης σε μια DRAM ή άλλες μονάδες μνήμης, μολονότι είναι συνήθως μη τεκμηριωμένη, δεν είναι μυστικό, και δε θα πρέπει να εμπιστεύεται για ασφάλεια. Η χαρτογράφηση μπορεί να ανακτάται με μετρήσεις και παραγωγικό συλλογισμό, ενώ υπάρχουν ελεύθερα διαθέσιμα εργαλεία για τη βοήθεια με αυτό. The mapping of a physical address to a DRAM or other memory modules, although usually undocumented, is not a secret, and should not be trusted for security. Mapping can be recovered by metrics and generative reasoning, and there are freely available tools to help with this.

Ο μεταβλητός λανθάνον χρόνος που εξαρτάται από την τρέχουσα κατάσταση της θέσης μνήμης στην οποία πραγματοποιήθηκε πρόσβαση και η ελεύθερα προσβάσιμη ή εικάσιμη χαρτογράφηση των φυσικών διευθύνσεων στη DRAM μπορεί να προκαλεί ορισμένα προβλήματα. Η μονάδα μνήμης 10, 12 και ο ελεγκτής μνήμης 14 μπορεί να είναι πόροι που χρησιμοποιούνται από κοινού στο επίπεδο συστήματος. Όπως με κάθε πόρο που χρησιμοποιείται από κοινού από ευαίσθητο κώδικα και πιθανώς αναξιόπιστο κώδικα (π.χ. Javascript σε ένα πρόγραμμα περιήγησης στο Internet), πρέπει να δίδεται προσοχή για την αποφυγή πλευρικών καναλιών. Οι διενέξεις συστοιχιών αποκαλύπτουν διαφορετικούς χρονισμούς και μπορούν να χρησιμοποιούνται ως ένα πλευρικό κανάλι χρονισμού. Η ανίχνευση ανοικτών σειρών σε μια σελίδα μπορεί να χρησιμοποιείται ως ένα άλλο πλευρικό κανάλι. Variable latency depending on the current state of the accessed memory location and the freely accessible or guessable mapping of physical addresses in DRAM can cause some problems. The memory unit 10, 12 and the memory controller 14 may be shared resources at the system level. As with any resource shared by sensitive and potentially untrusted code (eg, Javascript in an Internet browser), care must be taken to avoid side channels. Array conflicts expose different timings and can be used as a timing side channel. Detecting open rows on a page can be used as another side channel.

Για παράδειγμα, όπως δείχνεται στο Σχήμα 3, το πλευρικό κανάλι χρονισμού μπορεί να διαρρέει συγκεκριμένες προσβάσεις διευθύνσεων επιτρέποντας σε έναν κακόβουλο χρήστη να κατασκοπεύει έναν άλλο χρήστη ο οποίος απλά κάνει τη δουλειά του. Πρώτα ο κατάσκοπος ανακαλύπτει τις ευάλωτες διευθύνσεις της διαδικασίας θύματος. Στη συνέχεια ο κατάσκοπος μπορεί να εκχωρεί δεδομένα που βρίσκονται και αυτά στην ίδια σελίδα DRAM όπως τα ευάλωτα δεδομένα και να συμπεραίνει κατά πόσο πραγματοποιήθηκε πρόσβαση στην ευάλωτη διεύθυνση. Για παράδειγμα, η επίθεση θα μπορούσε να περιλαμβάνει τα ακόλουθα βήματα: For example, as shown in Figure 3, the timing side channel can leak certain address accesses allowing a malicious user to spy on another user who is just doing his job. First the spy discovers the vulnerable addresses of the victim process. The spy can then map data that is also on the same DRAM page as the vulnerable data and infer whether the vulnerable address was accessed. For example, the attack could include the following steps:

• δύο διαδικασίες εκχωρούν δεδομένα στην ίδια σελίδα DRAM, μολονότι ανήκουν σε διαφορετικές σελίδες OS (διεύθυνση θύμα Β1 και διεύθυνση κατασκόπου Α1) • two processes allocate data to the same DRAM page, even though they belong to different OS pages (victim address B1 and spy address A1)

• Η διαδικασία κατασκόπου (επιτιθέμενος) διαβάζει την Α2 (ή κάποια άλλη σειρά της συστοιχίας εκτός της Α1 ) • The spy (attacker) process reads A2 (or some other row of the array other than A1 )

• Η διαδικασία κατασκόπου επιτρέπει στη διαδικασία θύμα να εκτελέσει κάποια εργασία. • The spy process allows the victim process to perform some task.

• Η διαδικασία κατασκόπου στη συνέχεια διαβάζει την Α1 και μετράει τον λανθάνοντα χρόνο απάντησης για το αίτημα πρόσβασης στη μνήμη: • The spy process then reads A1 and measures the response latency for the memory access request:

ο Σε περίπτωση επιτυχίας σειράς, τότε συνάγεται ότι το θύμα πραγματοποίησε πρόσβαση στην Β1 o In the event of a series success, then it is inferred that the victim has accessed B1

ο Σε περίπτωση αποτυχίας σειράς, τότε συνάγεται ότι το θύμα δεν πραγματοποίησε πρόσβαση στην Β1. o In the event of a row failure, then it is inferred that the victim did not access B1.

Επαναλαμβάνοντας τέτοιες επιθέσεις, ο κατάσκοπος μπορεί στη συνέχεια να συνάγει πληροφορίες για τα σχέδια διευθύνσεων στις οποίες πραγματοποιεί πρόσβαση το θύμα, οι οποίες θα μπορούσαν να χρησιμοποιηθούν για τη διαρροή πληροφοριών για μυστικά δεδομένα ή να αποκτήσει πληροφορίες για τη λειτουργία της διαδικασίας θύμα οι οποίες θα μπορούσαν να χρησιμοποιηθούν για την πληροφόρηση άλλων τύπων επιθέσεων. By repeating such attacks, the spy can then infer information about the address plans accessed by the victim, which could be used to leak information about sensitive data, or obtain information about the operation of the victim process that could be used to inform other types of attacks.

Ένα άλλο παράδειγμα επίθεσης η οποία δε θα απαιτούσε την εκχώρηση δεδομένων θύματος και κατασκόπου από το OS σε φυσικά διαδοχικές διευθύνσεις θα μπορούσε να είναι ως ακολούθως: Another example of an attack that would not require the OS to assign victim and spy data to physically consecutive addresses could be as follows:

(1) Ο επιτιθέμενος προετοιμάζει την προσωρινή μνήμη σειρών πραγματοποιώντας πρόσβαση στην Α1 (ή κάποια άλλη διεύθυνση An η οποία αντιστοιχεί στη συστοιχία X), (2) ο επιτιθέμενος επιτρέπει στο θύμα την εκτέλεση, (1) The attacker initializes the array buffer by accessing A1 (or some other address An which corresponds to array X), (2) the attacker allows the victim to execute,

(3) Ο επιτιθέμενος διερευνά την προσωρινή μνήμη σειρών πραγματοποιώντας πρόσβαση στην Α1 ή στην An και πάλι ώστε να καταλάβει κατά πόσο το θύμα πραγματοποίησε πρόσβαση στην ίδια συστοιχία, συνάγοντας συνεπώς κάποιες πληροφορίες για το θύμα μέσω της θέσης πρόσβασης. (3) The attacker probes the array cache by accessing A1 or An again to understand whether the victim accessed the same array, thus inferring some information about the victim through the access location.

Το Σχήμα 4 απεικονίζει ένα παράδειγμα ενός κυκλώματος ελέγχου 14, 16 για τον έλεγχο της πρόσβασης σε μια μνήμη, το οποίο έχει τη δυνατότητα διέγερσης μιας λειτουργίας συγκάλυψης καθυστέρησης για τη συγκάλυψη των πληροφοριών καναλιού δυνατών χρονισμών οι οποίες με άλλο τρόπο μπορούν να παραχθούν από έναν επιτιθέμενο. Το κύκλωμα ελέγχου θα μπορούσε να είναι ο ελεγκτής μνήμης 14 για μια συγκεκριμένη μονάδα μνήμης ή θα μπορούσε να είναι μια λογική ελέγχου 16 εντός μιας διασύνδεσης 8 για παράδειγμα. Η μνήμη που ελέγχεται από το κύκλωμα ελέγχου θα μπορούσε να είναι μια ειδική μονάδα κύριας μνήμης όπως η DRAM 10 ή η NVRAM 12 ή μια κρυφή μνήμη 6, 18. Μολονότι οι κρυφές μνήμες παραδοσιακά υλοποιούνταν με τη χρήση τεχνολογίας SRAM (static random access memory ή στατική μνήμη τυχαίας πρόσβασης), για την οποία ο λανθάνον χρόνος πρόσβασης είναι συνήθως ίδιος για κάθε φυσική θέση αποθήκευσης του πίνακα αποθήκευσης, όσο αυξάνει η χωρητικότητα της κρυφής μνήμης τόσο αυξάνει και το ενδιαφέρον στη χρήση μνήμης DRAM για κρυφές μνήμες, ώστε ένα παρόμοιο πρόβλημα προκύπτει και στην επίθεση DRAM που εξετάζεται παραπάνω. Figure 4 illustrates an example of a control circuit 14, 16 for controlling access to a memory, which is capable of triggering a delay masking function to mask possible timing channel information that could otherwise be produced by an attacker. . The control circuit could be the memory controller 14 for a particular memory unit or it could be a control logic 16 within an interface 8 for example. The memory controlled by the control circuit could be a dedicated main memory unit such as DRAM 10 or NVRAM 12 or a cache memory 6, 18. Although cache memories have traditionally been implemented using SRAM (static random access memory or static random access memory), for which the access latency is usually the same for each physical storage location of the storage array, as the cache capacity increases, so does the interest in using DRAM for caches, so a similar problem arises and in the DRAM attack discussed above.

Το κύκλωμα ελέγχου έχει μια διασύνδεση 30 για τη λήψη των αιτημάτων πρόσβασης στη μνήμη από τα ανάντη εξαρτήματα και την παροχή απαντήσεων σε αυτά τα αιτήματα προς τα ανάντη εξαρτήματα μόλις το αίτημα εξυπηρετηθεί από τη μνήμη 10, 12. Μολονότι δε δείχνεται στο Σχήμα 4, το κύκλωμα ελέγχου μπορεί να έχει και μια κατάντη διασύνδεση για τη μετάδοση ενός επιλεγμένου αιτήματος για εξυπηρέτηση από τη μνήμη και τη λήψη της αντίστοιχης απάντησης από τη μνήμη. The control circuit has an interface 30 for receiving memory access requests from upstream components and providing responses to these requests to the upstream components once the request is serviced by memory 10, 12. Although not shown in Figure 4, the control circuitry may also have a downstream interface for transmitting a selected request for service from the memory and receiving the corresponding response from the memory.

Τα ληφθέντα αιτήματα εκχωρούνται σε μια από έναν αριθμό ουρών, για παράδειγμα μια ουρά ανάγνωσης 32 και μια ουρά εγγραφής 34, ενώ τα αιτήματα επιλέγονται από τις αντίστοιχες ουρές 32, 34 από έναν επιλογέα αιτημάτων 36 υπό τον έλεγχο του κυκλώματος διαχείρισης αιτημάτων 38. Το κύκλωμα διαχείρισης αιτημάτων 38 μπορεί να εφαρμόζει έναν αριθμό κριτηρίων τα οποία διέπουν πότε μπορούν να επιλέγονται συγκεκριμένα αιτήματα και μπορεί να ελέγχει τη σειρά με την οποία επιλέγονται τα αιτήματα. Για παράδειγμα το κύκλωμα διαχείρισης αιτημάτων 38 μπορεί να εξετάζει παράγοντες όπως οι εξαρτήσεις δεδομένων μεταξύ των αιτημάτων (δηλ. κατά πόσο προσδιορίζουν την ίδια διεύθυνση), άλλους περιορισμούς ταξινόμησης οι οποίοι επιβάλλονται από τον τύπο της περιοχής μνήμης στην οποία πραγματοποιείται πρόσβαση από το αίτημα ή από άλλες παραμέτρους ή αναγνωριστικά ταξινόμησης που προσδιορίζονται από το αίτημα, ενώ μπορεί επίσης να εξετάζει την αποτελεσματικότητα με την οποία μπορούν να ομαδοποιούνται διάφορα αιτήματα μαζί ώστε να εξασφαλίζεται πιο αποτελεσματική πρόσβαση στη μνήμη, π.χ. τα αιτήματα που στοχεύουν στην ίδια σελίδα στην DRAM 10 ή στην NVRAM 12 θα μπορούσαν να ομαδοποιούνται μαζί ώστε να είναι δυνατή η ταχύτερη διαχείρισή τους ως ομάδα σε σύγκριση με την περίπτωση στην οποία αυτά τα αιτήματα ήταν αναμεμιγμένα με άλλα αιτήματα σε διαφορετικές σελίδες. Received requests are assigned to one of a number of queues, for example a read queue 32 and a write queue 34, while requests are selected from the respective queues 32, 34 by a request selector 36 under the control of the request management circuit 38. The circuit request management 38 may apply a number of criteria governing when particular requests may be selected and may control the order in which requests are selected. For example, request management circuitry 38 may consider factors such as data dependencies between requests (ie, whether they specify the same address), other sorting constraints imposed by the type of memory area accessed by the request, or by other parameters or sort identifiers specified by the request, and may also consider the efficiency with which various requests can be grouped together to ensure more efficient memory access, e.g. requests targeting the same page in DRAM 10 or NVRAM 12 could be grouped together so that they can be handled more quickly as a group compared to the case where these requests were intermingled with other requests on different pages.

Ωστόσο, επιπλέον τέτοιων παραγόντων ο διαχειριστής αιτημάτων 38 μπορεί επίσης να εξετάζει το πλαίσιο εκτέλεσης με το οποίο σχετίζονται τα διάφορα αιτήματα. Τα Σχήματα 5 και 6 δείχνουν δύο διαφορετικούς τρόπους με τους οποίους το κύκλωμα διαχείρισης αιτημάτων 38 μπορεί να έχει δυνατότητα προσδιορισμού του πλαισίου που σχετίζεται με ένα αίτημα. Όπως δείχνεται στο Σχήμα 5, σε ορισμένες περιπτώσεις ένα από τα στοιχεία επεξεργασίας μπορεί να περιλαμβάνει ένα κύκλωμα 40 για την υλοποίηση μιας λειτουργίας δημιουργίας αναγνωριστικών πλαισίου για τη δημιουργία ενός αναγνωριστικού πλαισίου εκτέλεσης 42 προς συμπερίληψη με τα αιτήματα πρόσβασης στη μνήμη που δημιουργούνται από το στοιχείο επεξεργασίας 4. Γ ια παράδειγμα η λειτουργία δημιουργίας αναγνωριστικών πλαισίου 40 μπορεί να είναι μια λειτουργία ενός ή περισσότερων διαφορετικών αναγνωριστικών που σχετίζονται με το πλαίσιο που εκτελείται εκείνη τη στιγμή και επεξεργάζεται από το στοιχείο επεξεργασίας 4 ή με βάση τις ιδιότητες του ίδιου του στοιχείου επεξεργασίας 4 ή τις παραμέτρους που προσδιορίζονται από το λογισμικό που εκτελείται στο στοιχείο επεξεργασίας. Γ ια παράδειγμα το αναγνωριστικό πλαισίου εκτέλεσης 42 μπορεί να προκύπτει από ένα ή περισσότερα αναγνωριστικά συμπεριλαμβανομένου οποιουδήποτε συνδυασμού: However, in addition to such factors the request manager 38 may also consider the execution context to which the various requests are associated. Figures 5 and 6 show two different ways in which the request handling circuit 38 may be capable of determining the context associated with a request. As shown in Figure 5, in some cases one of the processing elements may include a circuit 40 for implementing a frame identifier generation function to generate an execution frame identifier 42 for inclusion with memory access requests generated by the processing element 4. For example the frame identifier generation operation 40 may be an operation of one or more different identifiers associated with the currently running frame being processed by the processing element 4 or based on properties of the processing element 4 itself or the parameters determined by the software running on the processing element. For example, execution context identifier 42 may result from one or more identifiers including any combination of:

Ένα αναγνωριστικό διαδικασίας (ή ένα αναγνωριστικό χώρου διευθύνσεων ASID) 44 που σχετίζεται με μια διαδικασία ή εφαρμογή λογισμικού που εκτελείται στο στοιχείο επεξεργασίας. A process identifier (or ASID address space identifier) 44 associated with a process or software application running on the processing element.

• Ένα αναγνωριστικό εικονικής μηχανής (VIMD) 46 που σχετίζεται με μια εικονική μηχανή ή ένα λειτουργικό σύστημα υπό τον έλεγχο του οποίου εκτελείται η εφαρμογή ή η διαδικασία. • A virtual machine identifier (VIMD) 46 associated with a virtual machine or operating system under which the application or process is running.

Ένα αναγνωριστικό στοιχείου επεξεργασίας (PEID) 48 που προσδιορίζει το συγκεκριμένο στοιχείο επεξεργασίας 4 το οποίο δημιουργεί το αίτημα. A processing element identifier (PEID) 48 that identifies the specific processing element 4 that is generating the request.

• Μια ένδειξη ασφαλούς/μη ασφαλούς λειτουργίας (S/NS) 50 που υποδηλώνει κατά πόσο το στοιχείο επεξεργασίας 4 το οποίο δημιούργησε το αίτημα λειτουργούσε σε ασφαλή λειτουργία ή σε μη ασφαλή λειτουργία. • A secure/non-secure mode (S/NS) indicator 50 indicating whether the processing element 4 that generated the request was operating in secure mode or in non-secure mode.

• Μια ένδειξη 52 του υφιστάμενου επιπέδου εξαίρεσης (EL) ή επιπέδου προνομίων στο οποίο λειτουργούσε το στοιχείο επεξεργασίας όταν δημιούργησε το αίτημα. • An indication 52 of the current exception level (EL) or privilege level at which the processing element was operating when it created the request.

• Ένα από λογισμικό αναγνωριστικό A 54 το οποίο μπορεί να προσδιορίζεται αυθαίρετα από ένα λογισμικό που εκτελείται στο στοιχείο επεξεργασίας ανεξάρτητα από την τρέχουσα κατάσταση λειτουργίας του στοιχείου επεξεργασίας, για παράδειγμα το προσδιοριζόμενο από λογισμικό αναγνωριστικό 54 θα μπορούσε να είναι μια τιμή γραμμένη στον καταχωρητή του στοιχείου επεξεργασίας από το λογισμικό. • A software identifier A 54 which may be arbitrarily determined by software running on the processing element regardless of the current operating state of the processing element, for example the software-defined identifier 54 could be a value written to the element's register processing by the software.

Θα εκτιμηθεί ότι μπορεί να μην είναι απαραίτητη η εξέταση όλων αυτών των αναγνωριστικών στη λειτουργία δημιουργίας αναγνωριστικών πλαισίου 40, όμως σε γενικές γραμμές με τη δημιουργία ενός αναγνωριστικού ως συνάρτηση μιας ή περισσότερων από αυτές τις ιδιότητες τότε το αναγνωριστικό πλαισίου εκτέλεσης 42 μπορεί να χαρακτηρίζει την πραγματοποίηση ενός φορτίου εργασίας λογισμικού στον επεξεργαστή ώστε να το διακρίνει από άλλα φορτία εργασίας. Προσάπτοντας το αναγνωριστικό πλαισίου εκτέλεσης 42 στα αιτήματα πρόσβασης στη μνήμη μπορεί να δίνει τη δυνατότητα στο κύκλωμα ελέγχου 14, 16 να προσδιορίζει με ποιο πλαίσιο σχετίζεται ένα δεδομένο αίτημα. It will be appreciated that it may not be necessary to consider all of these identifiers in the framework identifier generation function 40, but in general by generating an identifier as a function of one or more of these properties then the execution framework identifier 42 may characterize the implementation of a software workload to the processor to distinguish it from other workloads. Attaching the execution frame identifier 42 to memory access requests may enable the control circuit 14, 16 to determine which frame a given request is associated with.

Όπως δείχνεται στο Σχήμα 4, στα αιτήματα που εκκρεμούν στην ουρά ανάγνωσης 32 ή στην ουρά εγγραφής 34 μπορούν να τοποθετούνται τα αντίστοιχα αναγνωριστικά πλαισίου εκτέλεσης ώστε το κύκλωμα διαχείρισης αιτημάτων 38 να έχει τη δυνατότητα αναγνώρισης ενός αριθμού “εικονικών” ουρών 56 με κάθε μια να συσχετίζεται με ένα δεδομένο πλαίσιο. Θα εκτιμηθεί ότι κάθε εικονική ουρά 56 δε χρειάζεται απαραίτητα να διαμερίζεται φυσικά εντός των ουρών ανάγνωσης ή εγγραφής 32, 34 αλλά απλά θα μπορούσε να αντιστοιχεί με αυτές τις καταχωρήσεις των αντίστοιχων ουρών οι οποίες σχετίζονται με ένα δεδομένο πλαίσιο. Η από κοινού χρήση μιας φυσικής δομής ουράς μεταξύ πολλαπλών πλαισίων μπορεί να κάνει ευκολότερη την ιχνηλάτηση της σειράς των αιτημάτων και των εξαρτήσεων διευθύνσεων παρά εάν τα αιτήματα τοποθετούνταν σε φυσικά διαχωρισμένες ουρές για κάθε πλαίσιο. Εν τούτοις, ο διαχειριστής αιτημάτων 38 μπορεί να υλοποιεί εικονικές ουρές προσπαθώντας να ομαδοποιεί τα αιτήματα από το ίδιο πλαίσιο ώστε να εξυπηρετούνται διαδοχικά από τη μνήμη 10, 12, 18, ώστε να μειώνεται ο αριθμός των μεταγωγών ανάμεσα στη διαχείριση των αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα πλαίσιο και στη διαχείριση των αιτημάτων που σχετίζονται με ένα άλλο πλαίσιο. As shown in Figure 4, requests pending in the read queue 32 or the write queue 34 can be assigned the corresponding execution context identifiers so that the request management circuit 38 can identify a number of "virtual" queues 56 with each associated with a given context. It will be appreciated that each virtual queue 56 need not necessarily be physically partitioned within the read or write queues 32, 34 but could simply correspond to those entries of the respective queues associated with a given frame. Sharing a physical queue structure between multiple frames can make it easier to trace the order of requests and address dependencies than if requests were placed on physically separate queues for each frame. However, request manager 38 may implement virtual queues by attempting to group requests from the same context to be served sequentially by memory 10, 12, 18, to reduce the number of switches between handling memory access requests that related to one context and in handling requests related to another context.

Όπως δείχνεται στο Σχήμα 6, ένας άλλος τρόπος προσδιορισμού πότε συμβαίνει μια μεταγωγή πλαισίου εκτέλεσης ανάμεσα στα αιτήματα πρόσβασης στη μνήμη που διαχειρίζονται από τη μνήμη μπορεί να είναι η χρήση μιας ένδειξης διαχωρισμού μεταγωγής πλαισίου 60 η οποία μπορεί να περιλαμβάνεται σε μια ροή αιτημάτων πρόσβασης στη μνήμη για την επισήμανση του σημείου στο οποίο τα αιτήματα μετά το διαχωρισμό σχετίζονται με ένα διαφορετικό πλαίσιο εκτέλεσης με τα αιτήματα πριν το διαχωρισμό. Για παράδειγμα ο διαχωρισμός μεταγωγής πλαισίου 60 θα μπορούσε να είναι ένα αίτημα μνήμης το οποίο προσδιορίζει ένα συγκεκριμένο κωδικό αναγνωριστικού ο οποίος επισημαίνει ότι αυτό είναι ένα αίτημα διαχωρισμού παρά ένα πραγματικό προς εξυπηρέτηση αίτημα ανάγνωσης ή εγγραφής μνήμης. Εναλλακτικά αντί της παροχής ενός συγκεκριμένου αιτήματος που ανπστοιχεί στο διαχωρισμό 60, στο τελευταίο αίτημα που σχετίζεται με το παλαιότερο πλαίσιο εκτέλεσης ή στο πρώτο αίτημα που σχετίζεται με το νέο πλαίσιο εκτέλεσης θα μπορούσε να τοποθετηθεί ένας σημειωτής που να δείχνει ότι αυτό το αίτημα λειτουργεί και ως διαχωρισμός. Οι διαχωρισμοί μπορούν να δημιουργούνται υπό τον έλεγχο υλικού εντός του στοιχείου επεξεργασίας 4 όταν ανιχνεύεται μια μεταγωγή πλαισίου στο λογισμικό που εκτελείται στο στοιχείο επεξεργασίας ή θα μπορούσε να διεγείρεται υπό τον έλεγχο λογισμικού ώστε το λογισμικό να έχει σαφή δυνατότητα να αιτείται την εισαγωγή ενός διαχωρισμού μεταγωγής πλαισίου στη ροή των αιτημάτων μνήμης και να σηματοδοτεί στο κύκλωμα ελέγχου 14, 16 ότι τα αιτήματα που λαμβάνονται μετέπειτα θα σχετίζονται με ένα διαφορετικό πλαίσιο. As shown in Figure 6, another way to determine when an execution frame switch occurs between memory-managed memory access requests may be to use a frame switch break flag 60 which may be included in a stream of memory access requests to mark the point at which post-split requests are associated with a different execution context than pre-split requests. For example the frame switch allocation 60 could be a memory request which identifies a specific identifier code indicating that this is an allocation request rather than an actual serviceable memory read or write request. Alternatively instead of providing a specific request corresponding to split 60, the last request associated with the older execution context or the first request associated with the new execution context could be placed with a marker indicating that this request also acts as separation. Splits may be generated under hardware control within the processing element 4 when a frame switch is detected in the software running on the processing element or could be triggered under software control so that the software has the explicit ability to request the insertion of a frame switch split in the stream of memory requests and to signal to the control circuit 14, 16 that requests received subsequently will relate to a different context.

Ανεξάρτητα από τον τρόπο με τον οποίο σηματοδοτείται η μεταγωγή πλαισίου στο διαχειριστή αιτημάτων 38, όταν το κύκλωμα διαχείρισης αιτημάτων προσδιορίζει ότι προκύπτει μια μεταγωγή πλαισίου, κι επομένως υπάρχει μια μετάβαση από τη διαχείριση αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα πλαίσιο εκτέλεσης σε αιτήματα πρόσβασης στη μνήμη προς ένα άλλο πλαίσιο εκτέλεσης, τότε το κύκλωμα διαχείρισης αιτημάτων μπορεί να εκδίδει ένα σήμα 62 για τη διέγερση μιας λειτουργίας συγκάλυψης καθυστέρησης. Η λειτουργία συγκάλυψης καθυστέρησης θα μπορούσε να πραγματοποιείται εντός του ίδιου του κυκλώματος ελέγχου 14, 16 ή από ένα άλλο εξάρτημα του συστήματος μνήμης όπως στον ελεγκτή μνήμης 14 ή την πραγματική διάταξη αποθήκευσης 10, 12, ανάλογα τον τύπο της λειτουργίας συγκάλυψης καθυστέρησης που πραγματοποιείται. Σε ένα παράδειγμα, η λειτουργία συγκάλυψης καθυστέρησης θα μπορούσε να είναι ότι κάθε ανοικτή ή ενεργή σελίδα εντός της δομής DRAM ή NVRAM κλείνεται ή απενεργοποιείται, με την ετερόχρονη εγγραφή κάθε ανοικτής σελίδας από την προσωρινή μνήμη σειρών 22 ώστε μετά τη λειτουργία συγκάλυψης καθυστέρησης το επόμενο αίτημα πρόσβασης στη μνήμη προς κάθε συστοιχία 20 θα στοχεύει σε μια κλειστή σελίδα ώστε ο λανθάνον χρόνος πρόσβασης που σχετίζεται με την πρόσβαση σε αυτή την κλειστή σελίδα να είναι ανεξάρτητος από τις διευθύνσεις στις οποίες πραγματοποιήθηκε πρόσβαση πριν την πραγματοποίηση της λειτουργίας συγκάλυψης καθυστέρησης. Αυτό μπορεί να χρησιμοποιείται για να εξασφαλίζεται ότι οποιοδήποτε εισερχόμενο πλαίσιο δε θα μπορεί να αποκτά πληροφορίες για το σχέδιο διευθύνσεων πρόσβασης από ένα παλαιότερο πλαίσιο. Regardless of how the frame switch is signaled to the request manager 38, when the request management circuitry determines that a frame switch is occurring, and therefore there is a transition from handling memory access requests associated with an execution frame to access requests to memory to another execution context, then the request handler may issue a signal 62 to trigger a delay masking function. The delay masking operation could be performed within the control circuitry 14, 16 itself or by another component of the memory system such as in the memory controller 14 or the actual storage device 10, 12, depending on the type of delay masking operation being performed. In one example, the latency masking operation could be that each open or active page within the DRAM or NVRAM structure is closed or disabled, with each open page being written from the row buffer 22 asynchronously so that after the latency masking operation the next request memory accesses to each array 20 will target a locked page so that the access latency associated with accessing that locked page is independent of the addresses that were accessed before the latency masking operation was performed. This can be used to ensure that any incoming frame cannot acquire access address plan information from an older frame.

Εναλλακτικά, όπως δείχνεται στο Σχήμα 7 ένας άλλος τρόπος πραγματοποίησης της συγκάλυψης καθυστέρησης μπορεί να είναι η παροχή μιας προσωρινής μνήμης καθυστέρησης 68 για την προσθήκη μιας επιπλέον καθυστέρησης είτε στο αίτημα προτού αποσταλεί στη μνήμη, είτε στην απάντηση σε ένα αίτημα μνήμης που λήφθηκε από τη μνήμη προτού επιστραφεί στο ανάντη εξάρτημα το οποίο εξέδωσε το αίτημα. Μολονότι το Σχήμα 7 δείχνει καθυστερήσεις τόσο στο κανάλι αιτημάτων όσο και στο κανάλι απαντήσεων θα εκτιμηθεί ότι μπορεί να απαιτείται μόνο ένα από αυτά. Σε συστήματα στα οποία η μνήμη δεν μπορεί να εξυπηρετεί τα απήματα με διαφορετική σειρά από τη σειρά με την οποία λήφθηκαν, μπορεί να είναι αποδεκτή η καθυστέρηση του αιτήματος. Ωστόσο, σε μια μνήμη που υποστηρίζει την εκτός σειράς εξυπηρέτηση των αιτημάτων, μπορεί να είναι προτιμότερη η καθυστέρηση της απάντησης ώστε να παρέχεται μια πιο αποτελεσματική εγγύηση της καθυστέρησης συγκάλυψης για το(α) πρώτο(α) αίτημα(τα) που εξυπηρετείται (ούνται) μετά από μια μεταγωγή πλαισίου. Μπορεί να παρέχεται ένα κύκλωμα επιλογής (π.χ. ένας κριτής) 70 για την επιλογή κατά η καθυστέρηση εφαρμόζεται ή μη με βάση το σήμα διέγερσης της λειτουργίας συγκάλυψης καθυστέρησης 62 που παρέχεται από το κύκλωμα διαχείρισης αιτημάτων 38. Συνεπώς, μπορεί να παρέχεται μια επιπλέον καθυστέρηση για την εξομοίωση μιας σελίδας ως κλειστή ενώ στην πράξη είναι ανοικτή ή την εξομοίωση μιας διένεξης συστοιχιών όταν στην πράξη η επιθυμητή σειρά είναι ανοικτή ή καμία σειρά δεν είναι ανοικτή στην απαιτούμενη συστοιχία. Τέτοιες εξομοιωμένες καθυστερήσεις μπορεί να είναι χρήσιμες για τη συγκάλυψη των αποτελεσμάτων τα οποία μπορεί να διερευνώνται από τον επιτιθέμενο με βάση το χρονισμό των πλευρικών καναλιών. Κατά τη διάρκεια της καθυστέρησης ενός δεδομένου αιτήματος ή μιας δεδομένης απάντησης, ένα άλλο αίτημα προς την ίδια ανοικτή σελίδα θα μπορούσε να εξυπηρετείται στο μεταξύ, για παράδειγμα ένα άλλο αίτημα ανάγνωσης ή εγγραφής, ένα αίτημα ετερόχρονης εγγραφής ή ένα αίτημα ανανέωσης για την ανανέωση των περιεχομένων της μνήμης το οποίο μπορεί να είναι χρήσιμο για ορισμένες μορφές μνήμης όπως η DRAM η οποία απαιτεί περιοδική ανανέωση για τη διατήρηση της κατάστασής της. Alternatively, as shown in Figure 7 another way of implementing delay masking may be to provide a delay buffer 68 to add an additional delay either to the request before it is sent to memory, or to the response to a memory request received from memory. before it is returned to the upstream component that issued the request. Although Figure 7 shows delays in both the request channel and the response channel it will be appreciated that only one of them may be required. In systems where memory cannot serve requests in a different order than the order in which they were received, delaying the request may be acceptable. However, in a memory that supports out-of-order service of requests, it may be preferable to delay the response to provide a more efficient guarantee of masking delay for the first serviced request(s). after a frame switch. A selection circuit (e.g., a judge) 70 may be provided for selecting whether or not the delay is applied based on the delay masking function drive signal 62 provided by the request handling circuit 38. Accordingly, an additional delay for simulating a page as closed when it is actually open, or simulating an array conflict when in actuality the desired row is open or no row is open in the required array. Such simulated delays can be useful for obfuscating results that might be explored by an attacker based on side-channel timing. During the delay of a given request or a given response, another request to the same open page could be served in the meantime, for example another read or write request, a post-write request, or a refresh request to refresh the contents of memory which can be useful for some forms of memory such as DRAM which requires periodic refresh to maintain its state.

Δεν είναι απαραίτητη η εφαρμογή της λειτουργίας συγκάλυψης καθυστέρησης σε κάθε μια μεταγωγή πλαισίου. Αντίθετα η λειτουργία συγκάλυψης καθυστέρησης θα μπορούσε να διεγείρεται με μια ασφαλή προσαρμοστική πολιτική ώστε να είναι δυνατή η ιεραρχική ενεργοποίηση της λειτουργίας με βάση το επίπεδο εξαίρεσης του αντίστοιχου πλαισίου εκτέλεσης ή με βάση κατά πόσο το εισερχόμενο ή το εξερχόμενο πλαίσιο ικανοποιεί ορισμένες ιδιότητες. Γ ια παράδειγμα η λειτουργία συγκάλυψης καθυστέρησης θα μπορούσε να διεγείρεται με μια μεταγωγή πλαισίου από μια πιο προνομιακή διαδικασία σε μια λιγότερο προνομιακή διαδικασία ή ανάποδα αλλά μπορεί να μη χρειαζόταν να διεγείρεται με μια μεταγωγή πλαισίου μεταξύ διαδικασιών που λειτουργούν με το ίδιο επίπεδο προνομίων για παράδειγμα. Σε ορισμένα παραδείγματα, μόνο οι μεταγωγές πλαισίου από ένα πρώτο πλαίσιο εκτέλεσης ενός ελάχιστου ή ενός υψηλότερου επιπέδου κατωφλιού προνομίων θα μπορούσαν να διεγείρουν τη λειτουργία συγκάλυψης καθυστέρησης. It is not necessary to apply the delay masking function to every single frame switch. Instead the delay masking function could be motivated with a secure adaptive policy to enable hierarchical activation of the function based on the exception level of the corresponding execution frame or based on whether the incoming or outgoing frame satisfies certain properties. For example the latency masking function could be triggered by a frame switch from a more privileged process to a less privileged process or vice versa but it might not need to be triggered by a frame switch between processes running at the same privilege level for example. In some examples, only frame transitions from a first frame executing a minimum or a higher privilege threshold level could trigger the delay masking function.

Όπως δείχνεται στο Σχήμα 8, μια μορφή αιτήματος πρόσβασης στη μνήμη η οποία μπορεί να λαμβάνεται από τη διασύνδεση 30 στο κύκλωμα ελέγχου 14, 16 μπορεί να είναι ένα αίτημα ετερόχρονης εγγραφής κρυφής μνήμης 80 το οποίο δημιουργείται από μια κρυφή μνήμη (π.χ. η κρυφή μνήμη L1 , η κρυφή μνήμη L2 ή κάποια άλλη επόμενη κρυφή μνήμη 6 εντός του ίδιου του στοιχείου επεξεργασίας 4 ή η κρυφή μνήμη συστήματος 18 εντός της διασύνδεσης 8), για την ετερόχρονη εγγραφή δεδομένων τα οποία είχαν εγγράφει προηγουμένως στην κρυφή μνήμη, στην κρυφή μνήμη επόμενου επιπέδου 18 ή στην κύρια μνήμη 10, 12. Στην προσέγγιση που δείχνεται στο Σχήμα 8, κάθε θέση κρυφής μνήμης 82 μπορεί (επιπλέον των ίδιων των δεδομένων 84 και κάθε πληροφορίας ετικέτας 86) να προσδιορίζει το αναγνωριστικό πλαισίου εκτέλεσης 88 που σχετίζεται με τα αντίστοιχα δεδομένα, τα οποία μπορούν να προέρχονται από το στοιχείο επεξεργασίας 4 χρησιμοποιώντας τη λειτουργία δημιουργίας αναγνωριστικών πλαισίου 40 όπως δείχνεται στο Σχήμα 5 κατά το χρόνο εκχώρησης των αποθηκευμένων στην κρυφή μνήμη δεδομένων 84 στην κρυφή μνήμη 6, 18. Συνεπώς, όταν ο ελεγκτής κρυφής μνήμης προσδιορίζει την έξωση κάποιων δεδομένων από την κρυφή μνήμη και την ετερόχρονη εγγραφή τους στη μνήμη, στο αίτημα ετερόχρονης εγγραφής 80 μπορεί να προσάπτεται το αναγνωριστικό πλαισίου εκτέλεσης 88 το οποίο διαβάζεται από την αντίστοιχη θέση κρυφής μνήμης θύματος, ώστε ο διαχειριστής αιτημάτων 38 να μπορεί στη συνέχεια να το αντιστοιχεί με ένα αντίστοιχο από τα πλαίσια εκτέλεσης 56 ώστε να ελέγχει κατά πόσο θα πρέπει να διεγείρεται μια λειτουργία συγκάλυψης καθυστέρησης με μια μετάβαση από ένα αίτημα ετερόχρονης εγγραφής σε ένα αίτημα πρόσβασης στη μνήμη που σχετίζεται με ένα διαφορετικό πλαίσιο στο ένα το οποίο εκχώρησε αρχικά τα δεδομένα στην κρυφή μνήμη. As shown in Figure 8, one form of memory access request that may be received by interface 30 in control circuitry 14, 16 may be a cache asynchronous write request 80 that is generated by a cache (e.g., cache memory L1 , the cache memory L2 or some other subsequent cache memory 6 within the processing element 4 itself or the system cache 18 within the interface 8), for retroactively writing data previously written to the cache, to the cache next-level memory 18 or in main memory 10, 12. In the approach shown in Figure 8, each cache location 82 may (in addition to the data itself 84 and any tag information 86) identify the execution frame identifier 88 associated with the corresponding data, which can be derived from the processing element 4 using the frame ID generation function 40 as shown in Figure 5 during allocation time of cached data 84 to cache 6, 18. Accordingly, when the cache controller determines that some data is to be evicted from the cache and written back to memory, the write back request 80 may be appended with the identifier execution frame 88 which is read from the corresponding victim cache location so that the request manager 38 can then match it with a corresponding one of the execution frames 56 to control whether a latency masking function should be triggered by a transition from an asynchronous write request to a memory access request associated with a different context to the one that originally allocated the data to the cache.

Εναλλακτικά, όπως δείχνεται στο Σχήμα 4 η ουρά εγγραφής 34 μπορεί να διακρίνει την ετερόχρονη εγγραφή από άλλους τύπους αιτημάτων πρόσβασης στη μνήμη, ώστε τα αιτήματα ετερόχρονης εγγραφής να μπορούν να ομαδοποιούνται μαζί ως το δικό τους αποκλειστικό πλαίσιο ετερόχρονης εγγραφής 56-W. Συνεπώς, οι ετερόχρονες εγγραφές μπορούν να ομαδοποιούνται μαζί ως το δικό τους ειδικό πλαίσιο, ενώ όταν υπάρχει μια μετάβαση από τη διαχείριση των αιτημάτων ετερόχρονης εγγραφής (ανεξάρτητα από το πλαίσιο σχετίζεται πραγματικά με τα δεδομένα ετερόχρονης εγγραφής) στη διαχείριση αιτημάτων μη ετερόχρονης εγγραφής που σχετίζονται με ένα συγκεκριμένο πλαίσιο εκτέλεσης, τότε η λειτουργία συγκάλυψης καθυστέρησης μπορεί να διεγείρεται και να αποτρέπει την απόκτηση πληροφοριών πλευρικού καναλιού από έναν επιτιθέμενο με βάση το σχέδιο διευθύνσεων προηγούμενης πρόσβασης που χρησιμοποιείται από το πλαίσιο το οποίο εκχώρησε τα δεδομένα αρχικά στην κρυφή μνήμη πριν τη διέγερση της ετερόχρονης εγγραφής από τον ελεγκτή κρυφής μνήμης. Alternatively, as shown in Figure 4 the write queue 34 can distinguish the asynchronous write from other types of memory access requests so that the asynchronous write requests can be grouped together as their own dedicated 56-W asynchronous write frame. Therefore, asynchronous writes can be grouped together as their own special context, while there is a transition from handling asynchronous write requests (regardless of which context is actually associated with asynchronous write data) to handling non-asynchronous write requests related to a particular execution frame, then the delay masking function can be excited and prevent an attacker from obtaining side-channel information based on the previous access addressing scheme used by the frame that originally allocated the data to the cache prior to the asynchronous excitation write from the cache controller.

Μια τρίτη προσέγγιση θα μπορούσε να είναι η αντιμετώπιση κάθε μεμονωμένου αιτήματος ετερόχρονης εγγραφής ως ένα ξεχωριστό δικό του πλαίσιο ώστε για οποιαδήποτε αιτήματα ετερόχρονης εγγραφής που εξυπηρετούνται από τη μνήμη, η λειτουργία συγκάλυψης καθυστέρησης διεγείρεται πριν το αμέσως ακόλουθο αίτημα πρόσβασης στη μνήμη για την προστασία έναντι πιθανών διαρροών πληροφοριών πλευρικού καναλιού από το αίτημα ετερόχρονης εγγραφής, ώστε το πλαίσιο που σχετίζεται με το επακόλουθο αίτημα να μην μπορεί να αποκτήσει πληροφορίες για τη διεύθυνση ετερόχρονης εγγραφής γεγονός το οποίο θα μπορούσαν να εκμεταλλεύονται με άλλο τρόπο κάποιοι επιτιθέμενοι για την απόκτηση πληροφοριών για τη λειτουργία του πλαισίου το οποίο εκχώρησε αρχικά τα δεδομένα στην κρυφή μνήμη. A third approach could be to treat each individual asynchronous write request as its own separate context so that for any asynchronous write requests served by memory, the delay masking function is fired before the immediately following memory access request to protect against possible side-channel information leaks from the rollback request so that the context associated with the subsequent request cannot obtain rollback address information that could otherwise be exploited by attackers to gain information about its operation framework that originally allocated the data to the cache.

Το Σχήμα 9 είναι ένα διάγραμμα ροής το οποίο δείχνει μια μέθοδο ελέγχου της πρόσβασης στη μνήμη χρησιμοποιώντας το κύκλωμα ελέγχου 14, 16. Στο βήμα 100 το κύκλωμα διαχείρισης αιτημάτων 38 προσδιορίζει κατά πόσο έχει προσδιοριστεί μια μεταγωγή πλαισίου εκτέλεσης η οποία ικανοποιεί μια προκαθορισμένη συνθήκη. Σε ορισμένες υλοποιήσεις μια μεταγωγή πλαισίου εκτέλεσης μπορεί να προσδιορίζεται ότι έχει συμβεί κατά το χρόνο που ο διαχειριστής αιτημάτων προσδιορίζει ότι η μνήμη θα πρέπει να μετάγεται από τη διαχείριση αιτημάτων που σχετίζονται με ένα πλαίσιο στη διαχείριση αιτημάτων που σχετίζονται με ένα άλλο πλαίσιο. Κατά πόσο η μεταγωγή πλαισίου ικανοποιεί την προκαθορισμένη συνθήκη μπορεί να εξαρτάται από τις ιδιότητες του πλαισίου οι οποίες θα μπορούσαν να προκύπτουν από τα αντίστοιχα αναγνωριστικά πλαισίου εκτέλεσης, όπως το επίπεδο εξαίρεσης. Εναλλακτικά το κύκλωμα διαχείρισης αιτημάτων 38 θα μπορούσε να διατηρεί μια λίστα ορισμένων πλαισίων εκτέλεσης για τα οποία απαιτείται επιπλέον ασφάλεια, ενώ η μεταγωγή πλαισίου εκτέλεσης θα μπορούσε να προσδιορίζεται ότι ικανοποιεί την προκαθορισμένη συνθήκη εάν το πρώτο πλαίσιο εκτέλεσης (από το οποίο διαχειρίζονταν τα αιτήματα πρόσβασης στη μνήμη πριν τη μεταγωγή πλαισίου) είναι στη λίστα των πλαισίων που απαιτούν επιπλέον ασφάλεια. Figure 9 is a flow diagram showing a method of controlling memory access using control circuitry 14, 16. In step 100 request handling circuitry 38 determines whether an execution frame switch has been identified which satisfies a predetermined condition. In some implementations an execution context switch may be determined to have occurred at the time the request manager determines that memory should be switched from handling requests associated with one context to handling requests associated with another context. Whether the frame switch satisfies the predefined condition may depend on properties of the frame which could be derived from the corresponding execution frame identifiers, such as the exception level. Alternatively the request handling circuit 38 could maintain a list of certain execution frames for which additional security is required, while the execution frame switching could be determined to satisfy the predetermined condition if the first execution frame (from which the access requests were handled memory before frame switching) is on the list of frames that require extra security.

Εάν η μεταγωγή πλαισίου εκτέλεσης δεν ικανοποιεί την προκαθορισμένη συνθήκη, τότε στο βήμα 102 το κύκλωμα ελέγχου 14, 16 διεγείρει την πραγματοποίηση της λειτουργίας συγκάλυψης καθυστέρησης ώστε η καθυστέρηση απάντησης που σχετίζεται με τα επακόλουθα αιτήματα των οποίων τα απαιτούμενα δεδομένα είναι αποθηκευμένα στη σχετική μνήμη 10, 12, 18 να είναι ανεξάρτητη από τις διευθύνσεις στις οποίες πραγματοποιήθηκε πρόσβαση πριν τη μεταγωγή πλαισίου. Για παράδειγμα η λειτουργία συγκάλυψης καθυστέρησης θα μπορούσε να είναι η επιπλέον καθυστέρηση που επιβάλλεται από την προσωρινή μνήμη καθυστέρησης 68 ή θα μπορούσε να είναι μια εντολή κλεισίματος ή ανοίγματος σελίδων εντός μιας δεδομένης μνήμης ώστε το επόμενο αίτημα σε κάθε συστοιχία της μνήμης θα υφίσταται μια σταθερή καθυστέρηση που αντιστοιχεί στην καθυστέρηση όταν δε διατηρείται εκείνη τη στιγμή κάποια ανοικτή σελίδα στην προσωρινή μνήμη σειρών 22. If the execution frame switching does not satisfy the predetermined condition, then in step 102 the control circuit 14, 16 triggers the execution of the delay masking function so that the response delay associated with subsequent requests whose required data is stored in the relevant memory 10, 12, 18 to be independent of the addresses accessed prior to frame switching. For example the delay masking function could be the extra delay imposed by the delay buffer 68 or it could be an instruction to close or open pages within a given memory so that the next request to each block of memory will suffer a fixed delay which corresponds to the delay when no open page is kept at that moment in the row cache 22.

Αφετέρου, εάν η μεταγωγή πλαισίου εκτέλεσης δεν ικανοποιεί την προκαθορισμένη συνθήκη τότε στο βήμα 104 παραλείπεται η λειτουργία συγκάλυψης καθυστέρησης, ενώ σε αυτή την περίπτωση η καθυστέρηση απάντησης για τα επακόλουθα αιτήματα τα οποία στοχεύουν δεδομένα τα οποία είναι ήδη αποθηκευμένα στη μνήμη μπορεί να εξαρτάται από τις προηγούμενες διευθύνσεις στις οποίες πραγματοποίησε πρόσβαση το πρώτο πλαίσιο εκτέλεσης πριν τη μεταγωγή πλαισίου. On the other hand, if the execution frame switching does not satisfy the predetermined condition then at step 104 the delay masking operation is omitted, in which case the response delay for subsequent requests that target data already stored in memory may depend on the previous addresses accessed by the first execution frame before the frame switch.

Στην παρούσα εφαρμογή, οι λέξεις “διαμορφωμένο για...” χρησιμοποιούνται με τη σημασία ότι ένα στοιχείο μιας διάταξης έχει μια διαμόρφωση ικανή να εκτελεί την καθορισμένη λειτουργία. Σε αυτό το πλαίσιο, μια "διαμόρφωση” σημαίνει μια διάταξη ή ένας τρόπος διασύνδεσης υλικού ή λογισμικού. Για παράδειγμα, η διάταξη μπορεί να έχει αποκλειστικό υλικό το οποίο παρέχει την καθορισμένη λειτουργία ή ένας επεξεργαστής ή μια άλλη διάταξη επεξεργασίας μπορεί να προγραμματίζεται για την εκτέλεση της λειτουργίας. Οι λέξεις “διαμορφωμένο για” δεν υπονοεί ότι το στοιχείο της διάταξης πρέπει να αλλάξει με κάποιο τρόπο ώστε να παρέχει την καθορισμένη λειτουργία. 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 function. In this context, a "configuration" means a device or way of interfacing hardware or software. For example, the device may have dedicated hardware that provides the specified function, or a processor or other processing device may be programmed to perform The words “configured for” do not imply that the element of the arrangement must be changed in some way to provide the specified function.

Μολονότι στο παρόν περιγράφηκαν λεπτομερώς επεξηγηματικές υλοποιήσεις της εφεύρεσης αναφορικά με τα συνοδευτικά σχεδιαγράμματα, θα πρέπει να γίνει κατανοητό ότι η εφεύρεση δεν περιορίζεται σε αυτές τις επακριβείς υλοποιήσεις και ότι διάφορες αλλαγές και τροποποιήσεις μπορούν να πραγματοποιούνται σε αυτή από άτομα έμπειρα στην τέχνη χωρίς απόκλιση από το αντικείμενο και το πνεύμα της εφεύρεσης όπως ορίζεται από τις συνημμένες αξιώσεις. 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 and modifications may be made therein by those skilled in the art without departing from object and spirit of the invention as defined by the appended claims.

Claims (20)

ΑΞΙΩΣΕΙΣ:CLAIMS: 1 . Μια διάταξη που περιλαμβάνει:1. An arrangement that includes: ένα κύκλωμα ελέγχου για τον έλεγχο της πρόσβασης σε μια μνήμη που υλοποιείται με τη χρήση μιας τεχνολογίας μνήμης που παρέχει μεταβλητό λανθάνοντα χρόνο πρόσβασης, με το κύκλωμα ελέγχου να περιλαμβάνει:a control circuit for controlling access to a memory implemented using a memory technology that provides variable access latency, the control circuit comprising: ένα κύκλωμα διασύνδεσης για τη λήψη αιτημάτων πρόσβασης στη μνήμη για εξυπηρέτηση από τη μνήμη και την παροχή απαντήσεων σε αιτήματα πρόσβασης στη μνήμη που εξυπηρετούνται από τη μνήμη, καιan interface circuit for receiving memory access requests to be served by the memory and providing responses to memory access requests served by the memory, and ένα κύκλωμα διαχείρισης αιτημάτων για:a request management circuit for: τον προσδιορισμό μιας μεταγωγής πλαισίου εκτέλεσης η οποία περιλαμβάνει μια μετάβαση από την εξυπηρέτηση αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα πρώτο πλαίσιο εκτέλεσης στην εξυπηρέτηση αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα δεύτερο πλαίσιο εκτέλεσης, καιdetermining an execution context switch that includes a transition from servicing memory access requests associated with a first execution context to serving memory access requests associated with a second execution context, and τουλάχιστον όταν η μεταγωγή πλαισίου εκτέλεσης ικανοποιεί μια προκαθορισμένη συνθήκη, τη διέγερση μιας λειτουργίας συγκάλυψης καθυστέρησης για τον έλεγχο των επακόλουθων αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με το δεύτερο πλαίσιο εκτέλεσης, για τα οποία τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, προς εξυπηρέτηση με μια καθυστέρηση απάντησης η οποία είναι ανεξάρτητη από τις διευθύνσεις στις οποίες πραγματοποιήθηκε πρόσβαση από τα αιτήματα πρόσβασης στη μνήμη που σχετίζονται με το πρώτο πλαίσιο εκτέλεσης, με την εν λόγω καθυστέρηση απάντησης να περιλαμβάνει μια καθυστέρηση μεταξύ της λήψης του αιτήματος πρόσβασης στη μνήμη από το εν λόγω κύκλωμα διασύνδεσης και την παροχή μιας απάντησης στο αίτημα πρόσβασης στη μνήμη από το εν λόγω κύκλωμα διασύνδεσης.at least when the execution frame switch satisfies a predetermined condition, triggering a delay masking function to control subsequent memory access requests associated with the second execution frame, for which the required data is already stored in memory, to be serviced with a a response delay which is independent of the addresses accessed by the memory access requests associated with the first execution frame, said response delay including a delay between receipt of the memory access request by said circuit interface and providing a response to the memory access request from said interface circuit. 2. Η διάταξη σύμφωνα με την αξίωση 1 , στην οποία τουλάχιστον όταν η μεταγωγή πλαισίου εκτέλεσης ικανοποιεί την προκαθορισμένη συνθήκη, το κύκλωμα διαχείρισης απαντήσεων είναι διαμορφωμένο ώστε να εξασφαλίζει ότι τουλάχιστον ένα επακόλουθο αίτημα πρόσβασης στη μνήμη που σχετίζεται με το δεύτερο πλαίσιο εκτέλεσης, για το οποίο τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, εξυπηρετείται με μια σταθερή καθυστέρηση απάντησης.2. The arrangement according to claim 1, wherein at least when the execution frame switch satisfies the predetermined condition, the response management circuit is configured to ensure that at least one subsequent memory access request associated with the second execution frame, for the which the required data is already stored in memory, is served with a fixed response delay. 3. Η διάταξη σύμφωνα με την αξίωση 2, στην οποία η μνήμη περιλαμβάνει ένα πλήθος μονάδων αποθήκευσης προσβάσιμων παράλληλα, ενώ το εν λόγω τουλάχιστον ένα επακόλουθο αίτημα πρόσβασης στη μνήμη περιλαμβάνει τουλάχιστον ένα πρώτο αίτημα πρόσβασης στη μνήμη προς κάθε μονάδα αποθήκευσης που εξυπηρετείται μετά τη μεταγωγή πλαισίου εκτέλεσης.3. The arrangement according to claim 2, wherein the memory includes a plurality of storage units accessible in parallel, and said at least one subsequent memory access request includes at least one first memory access request to each storage unit served after the switch execution framework. 4. Η διάταξη σύμφωνα με την αξίωση 1, η οποία μετά τη μεταγωγή πλαισίου εκτέλεσης, το κύκλωμα διαχείρισης αιτημάτων διαμορφώνεται ώστε να ελέγχει την εξυπηρέτηση τουλάχιστον ενός από τα εν λόγω επακόλουθα αιτήματα πρόσβασης στη μνήμη που σχετίζονται με το δεύτερο πλαίσιο εκτέλεσης, για τα οποία τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, με μια μεταβλητή καθυστέρηση απάντησης να εξαρτάται από το μεταβλητό λανθάνοντα χρόνο πρόσβασης που παρέχεται από τη μνήμη.4. The arrangement according to claim 1, wherein after the execution frame switch, the request management circuit is configured to control the servicing of at least one of said subsequent memory access requests associated with the second execution frame, for which the required data is already stored in memory, with a variable response delay dependent on the variable access latency provided by the memory. 5. Η διάταξη σύμφωνα με την αξίωση 4, στην οποία ο εν λόγω μεταβλητός λανθάνον χρόνος πρόσβασης της μνήμης περιλαμβάνει ένα μικρότερο λανθάνοντα χρόνο πρόσβασης όταν το αίτημα πρόσβασης στη μνήμη πραγματοποιεί πρόσβαση σε μια θέση μνήμης σε μια πρώτη κατάσταση παρά όταν το αίτημα πρόσβασης στη μνήμη πραγματοποιεί πρόσβαση σε μια θέση μνήμης σε μια δεύτερη κατάσταση, όπου μια πρόσβαση σε μια θέση μνήμης στη δεύτερη κατάσταση διεγείρει μια μετάβαση μιας αντίστοιχης ομάδας μιας ή περισσότερων θέσεων μνήμης από τη δεύτερη κατάσταση στην πρώτη κατάσταση, και5. The arrangement according to claim 4, wherein said variable memory access latency comprises a shorter access latency when the memory access request accesses a memory location in a first state than when the memory access request accesses a memory location in a second state, wherein an access to a memory location in the second state triggers a transition of a corresponding group of one or more memory locations from the second state to the first state, and το εν λόγω τουλάχιστον ένα από τα εν λόγω επακόλουθα αιτήματα πρόσβασης στη μνήμη περιλαμβάνει ένα αίτημα πρόσβασης στη μνήμη προς μια ομάδα μιας ή περισσότερων θέσεων μνήμης στις οποίες έχει ήδη πραγματοποιήσει πρόσβαση ένα άλλο αίτημα πρόσβασης στη μνήμη που έχει εξυπηρετηθεί από τη μεταγωγή πλαισίου εκτέλεσης.said at least one of said subsequent memory access requests includes a memory access request to a group of one or more memory locations that have already been accessed by another memory access request served by the execution frame switch. 6. Η διάταξη σύμφωνα με την αξίωση 1, στην οποία το κύκλωμα διαχείρισης αιτημάτων είναι διαμορφωμένο για την ανίχνευση μιας μεταγωγής πλαισίου εκτέλεσης που ικανοποιεί την εν λόγω προκαθορισμένη συνθήκη όταν ανιχνεύεται μια ένδειξη διαχωρισμού μεταγωγής πλαισίου σε μια ροή αιτημάτων πρόσβασης στη μνήμη που λαμβάνεται από το κύκλωμα διασύνδεσης.6. The apparatus according to claim 1, wherein the request management circuit is configured to detect an execution frame switch that satisfies said predetermined condition when a frame switch split indication is detected in a stream of memory access requests received from the interconnection circuit. 7. Η διάταξη σύμφωνα με την αξίωση 1 , στην οποία το κύκλωμα διαχείρισης αιτημάτων είναι διαμορφωμένο για την ανίχνευση της εν λόγω μεταγωγής πλαισίου εκτέλεσης με βάση τα αναγνωριστικά πλαισίου εκτέλεσης που σχετίζονται με τουλάχιστον ένα υποσύνολο των αιτημάτων πρόσβασης στη μνήμη που λαμβάνονται από το κύκλωμα διασύνδεσης.7. The device according to claim 1, wherein the request management circuit is configured to detect said execution frame switching based on the execution frame identifiers associated with at least a subset of the memory access requests received by the interface circuit . 8. Η διάταξη σύμφωνα με την αξίωση 7, η οποία περιλαμβάνει τουλάχιστον ένα στοιχείο επεξεργασίας για την έκδοση των αιτημάτων πρόσβασης στη μνήμη που λαμβάνονται από το κύκλωμα διασύνδεσης, στο οποίο ένα δεδομένο στοιχείο επεξεργασίας είναι διαμορφωμένο για τη δημιουργία του αναγνωριστικού πλαισίου εκτέλεσης που σχετίζεται με ένα δεδομένο αίτημα πρόσβασης στη μνήμη με βάση τουλάχιστον ένα από τα εξής:8. The device according to claim 7, comprising at least one processing element for issuing memory access requests received from the interface circuit, wherein a given processing element is configured to generate the execution frame identifier associated with a given memory access request based on at least one of the following: ένα αναγνωριστικό διαδικασίας ή ένα αναγνωριστικό χώρου διευθύνσεων που σχετίζεται με μια διαδικασία που εκτελείται στο στοιχείο επεξεργασίας,a process identifier or address space identifier associated with a process running on the processing element; ένα αναγνωριστικό εικονικής μηχανής που σχετίζεται με μια εικονική μηχανή που εκτελείται στο στοιχείο επεξεργασίας,a virtual machine identifier associated with a virtual machine running on the processing element, ένα αναγνωριστικό στοιχείου επεξεργασίας που σχετίζεται με το δεδομένο στοιχείο επεξεργασίας,a processing element identifier associated with the given processing element; ένα αναγνωριστικό τρόπου ασφαλείας που προσδιορίζει έναν τρέχοντα τρόπο λειτουργίας ασφαλείας του δεδομένου στοιχείου επεξεργασίας,a security mode identifier identifying a current security mode of the given processing element; ένα αναγνωριστικό επιπέδου εξαίρεσης που προσδιορίζει ένα τρέχον επίπεδο εξαίρεσης του δεδομένου στοιχείου επεξεργασίας, καιan exception level identifier that identifies a current exception level of the given processing element, and ένα προσδιοριζόμενο από το λογισμικό αναγνωριστικό που παρέχεται από το λογισμικό που εκτελείται στο στοιχείο επεξεργασίας.a software-defined identifier provided by the software running on the processing element. 9. Η διάταξη σύμφωνα με την αξίωση 1 , στην οποία το κύκλωμα διαχείρισης αιτημάτων είναι διαμορφωμένο για την ομαδοποίηση των αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με το ίδιο πλαίσιο εκτέλεσης μαζί ως μια ομάδα αιτημάτων προς εξυπηρέτηση διαδοχικά από τη μνήμη και τον προσδιορισμό της μεταγωγής πλαισίου εκτέλεσης κατά τη μεταγωγή από μια ομάδα αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με το πρώτο πλαίσιο εκτέλεσης προς μια ομάδα αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με το δεύτερο πλαίσιο εκτέλεσης.9. The arrangement according to claim 1, wherein the request management circuit is configured to group memory access requests associated with the same execution context together as a group of requests to be serviced sequentially by memory and to determine context switching execution time when switching from a pool of memory access requests associated with the first execution context to a pool of memory access requests associated with the second execution context. 10. Η διάταξη σύμφωνα με την αξίωση 1 , στην οποία όταν η μεταγωγή πλαισίου εκτέλεσης δεν ικανοποιεί την εν λόγω προκαθορισμένη συνθήκη, το κύκλωμα διαχείρισης αιτημάτων είναι διαμορφωμένο για την παράλειψη της διέγερσης της εν λόγω λειτουργίας συγκάλυψης καθυστέρησης.10. The apparatus according to claim 1, wherein when the execution frame switching does not satisfy said predetermined condition, the request management circuit is configured to omit triggering said delay masking function. 11. Η διάταξη σύμφωνα με την αξίωση 1 , στην οποία η εν λόγω προκαθορισμένη συνθήκη περιλαμβάνει το δεύτερο πλαίσιο εκτέλεσης το οποίο είναι ένα πλαίσιο του οποίου η πρόσβαση απαγορεύεται σε ορισμένα τουλάχιστον δεδομένα τα οποία είναι προσβάσιμα στο πρώτο πλαίσιο εκτέλεσης.11. The arrangement according to claim 1, wherein said predetermined condition includes the second execution frame which is a frame whose access is prohibited to at least some data which is accessible in the first execution frame. 12. Η διάταξη σύμφωνα με την αξίωση 1 , στην οποία η εν λόγω προκαθορισμένη συνθήκη περιλαμβάνει το πρώτο πλαίσιο εκτέλεσης το οποίο είναι ένα πλαίσιο από ένα προκαθορισμένο υποσύνολο πλαισίων εκτέλεσης.12. The arrangement according to claim 1, wherein said predetermined condition includes the first execution frame which is a frame from a predetermined subset of execution frames. 13. Η διάταξη σύμφωνα με την αξίωση 1 , στην οποία ο εν λόγω μεταβλητός λανθάνον χρόνος πρόσβασης της μνήμης περιλαμβάνει ένα μικρότερο λανθάνοντα χρόνο πρόσβασης όταν το αίτημα πρόσβασης στη μνήμη πραγματοποιεί πρόσβαση σε μια θέση μνήμης σε μια πρώτη κατάσταση παρά όταν το αίτημα πρόσβασης στη μνήμη πραγματοποιεί πρόσβαση σε μια θέση μνήμης σε μια δεύτερη κατάσταση, όπου μια πρόσβαση σε μια θέση μνήμης στη δεύτερη κατάσταση διεγείρει μια μετάβαση μιας αντίστοιχης ομάδας μιας ή περισσότερων θέσεων μνήμης από τη δεύτερη κατάσταση στην πρώτη κατάσταση, και13. The arrangement according to claim 1, wherein said variable memory access latency comprises a shorter access latency when the memory access request accesses a memory location in a first state than when the memory access request accesses a memory location in a second state, wherein an access to a memory location in the second state triggers a transition of a corresponding group of one or more memory locations from the second state to the first state, and η εν λόγω λειτουργία συγκάλυψης καθυστέρησης περιλαμβάνει τον έλεγχο της μνήμης για τη μετάβαση τουλάχιστον μιας ομάδας μιας ή περισσότερων θέσεων μνήμης από την πρώτη κατάσταση στη δεύτερη κατάσταση.said delay masking operation includes controlling the memory to transition at least a group of one or more memory locations from the first state to the second state. 14. Η διάταξη σύμφωνα με την αξίωση 1 , στην οποία η εν λόγω λειτουργία συγκάλυψης καθυστέρησης περιλαμβάνει την καθυστέρηση ενός αιτήματος πρόσβασης στη μνήμη που εξυπηρετείται μετά τη μεταγωγή πλαισίου εκτέλεσης ή μιας απάντησης στο αίτημα πρόσβασης στη μνήμη που εξυπηρετείται μετά τη μεταγωγή πλαισίου εκτέλεσης σε μια προσωρινή μνήμη καθυστέρησης για τη συγκάλυψη ενός πραγματικού λανθάνοντα χρόνου πρόσβασης που παρέχεται από τη μνήμη κατά την εξυπηρέτηση του εν λόγω τουλάχιστον ενός αιτήματος πρόσβασης στη μνήμη.14. The arrangement according to claim 1, wherein said delay masking function comprises delaying a memory access request served after execution frame switching or a response to the memory access request served after execution frame switching to a latency buffer to mask an actual access latency provided by the memory when servicing said at least one memory access request. 15. Η διάταξη σύμφωνα με την αξίωση 14, στην οποία κατά τη διάρκεια μιας περιόδου καθυστέρησης του αιτήματος πρόσβασης στη μνήμη ή της απάντησης στην προσωρινή μνήμη καθυστέρησης, ο διαχειριστής αιτημάτων είναι διαμορφωμένος για τον έλεγχο της μνήμης για την εξυπηρέτηση τουλάχιστον ενός άλλου αιτήματος που στοχεύει μια ίδια σελίδα στη μνήμη όπως το καθυστερημένο αίτημα πρόσβασης στη μνήμη.15. The arrangement according to claim 14, wherein during a delay period of the memory access request or response to the delay buffer, the request manager is configured to control the memory to service at least one other request that targets a same page in memory as the delayed memory access request. 16. Η διάταξη σύμφωνα με την αξίωση 1 , στην οποία το κύκλωμα διαχείρισης αιτημάτων είναι διαμορφωμένο για τον προσδιορισμό ότι τα αιτήματα ετερόχρονης εγγραφής, τα οποία αιτούνται την ετερόχρονη εγγραφή των αποθηκευμένων από μια κρυφή μνήμη στη μνήμη, σχετίζονται με ένα αποκλειστικό πλαίσιο εκτέλεσης ετερόχρονης εγγραφής ανεξάρτητα από το πλαίσιο εκτέλεσης το οποίο προκάλεσε την εκχώρηση των αποθηκευμένων δεδομένων στην κρυφή μνήμη, και16. The arrangement according to claim 1, wherein the request management circuit is configured to determine that asynchronous write requests, which request the asynchronous write of caches to the memory, are associated with a dedicated asynchronous write execution context regardless of the execution context that caused the cached data to be allocated, and σε απόκριση μιας μεταγωγής πλαισίου εκτέλεσης που περιλαμβάνει μια μετάβαση από την εξυπηρέτηση αιτημάτων ετερόχρονης εγγραφής που σχετίζονται με το αποκλειστικό πλαίσιο εκτέλεσης ετερόχρονης εγγραφής στην εξυπηρέτηση αιτημάτων πρόσβασης στη μνήμη που σχετίζονται με ένα άλλο πλαίσιο εκτέλεσης, το κύκλωμα διαχείρισης αιτημάτων είναι διαμορφωμένο για την εκτέλεση της εν λόγω λειτουργίας συγκάλυψης καθυστέρησης.in response to an execution context switch involving a transition from servicing asynchronous write requests associated with the dedicated asynchronous write execution context to servicing memory access requests associated with another execution context, the request management circuitry is configured to perform the due to delay masking operation. 17. Η διάταξη σύμφωνα με την αξίωση 1, στην οποία μετά την εξυπηρέτηση ενός δεδομένου αιτήματος ετερόχρονης εγγραφής που αιτείται την ετερόχρονη εγγραφή των αποθηκευμένων σε κρυφή μνήμη δεδομένων από μια κρυφή μνήμη στη μνήμη, το κύκλωμα διαχείρισης αιτημάτων είναι διαμορφωμένο για την εκτέλεση της εν λόγω λειτουργίας συγκάλυψης καθυστέρησης ώστε ένα επόμενο αίτημα πρόσβασης στη μνήμη ή ένα επόμενο αίτημα ετερόχρονης εγγραφής που εξυπηρετείται από τη μνήμη, για το οποίο τα απαιτούμενα δεδομένα είναι ήδη αποθηκευμένα στη μνήμη, να εξυπηρετείται με μια καθυστέρηση απάντησης ανεξάρτητη από τη διεύθυνση που προσδιορίζεται από το δεδομένο αίτημα ετερόχρονης εγγραφής.17. The arrangement according to claim 1, wherein after servicing a given asynchronous write request requesting the asynchronous write of cached data from an in-memory cache, the request handling circuitry is configured to perform said delay masking operation so that a subsequent memory access request or a subsequent memory-served asynchronous write request, for which the required data is already stored in memory, is served with a response delay independent of the address specified by the given request retroactive registration. 18. Η διάταξη σύμφωνα με την αξίωση 1, η οποία περιλαμβάνει μια κρυφή μνήμη διαμορφωμένη για την αποθήκευση δεδομένων σε κρυφή μνήμη σε σχέση με ένα αναγνωριστικό πλαισίου εκτέλεσης ενός πλαισίου εκτέλεσης που αντιστοιχεί στα αποθηκευμένα σε κρυφή μνήμη δεδομένα και τη δημιουργία ενός αιτήματος ετερόχρονης εγγραφής για την ετερόχρονη εγγραφή μιας προκαθορισμένης ομάδας αποθηκευμένων σε κρυφή μνήμη δεδομένων στη μνήμη, με το αίτημα ετερόχρονης εγγραφής να προσδιορίζει το αναγνωριστικό πλαισίου εκτέλεσης που σχετίζεται με την προκαθορισμένη ομάδα αποθηκευμένων σε κρυφή μνήμη δεδομένων, και18. The apparatus according to claim 1, comprising a cache configured to cache data relative to an execution frame identifier of an execution frame corresponding to the cached data and generating a post-write request for asynchronously writing a predetermined group of cached data into memory, the asynchronous write request specifying the execution context identifier associated with the predetermined group of cached data, and το κύκλωμα διαχείρισης αιτημάτων είναι διαμορφωμένο για τον προσδιορισμό της μεταγωγής πλαισίου εκτέλεσης με βάση το αναγνωριστικό πλαισίου εκτέλεσης που σχετίζεται με το αίτημα ετερόχρονης εγγραφής.the request management circuit is configured to determine the execution frame switch based on the execution frame identifier associated with the asynchronous write request. 19. Η διάταξη σύμφωνα με την αξίωση 1, στην οποία η εν λόγω μνήμη περιλαμβάνει DRAM.19. The device according to claim 1, wherein said memory comprises DRAM. 20. Μια μέθοδος για -τον έλεγχο της πρόσβασης σε μια μνήμη που υλοποιείταιχρησιμοποιώντας μια τεχνολογία μνήμης που παρέχει μεταβλητό λανθάνοντα χρόνο -πρόσβασης, .με-ΐρ-μέθοδο να περιλαμβάνει:20. A method for controlling access to a memory implemented using a memory technology that provides variable access latency, comprising: ττ^-λήψη-6μτημάτων-πρόσβασης στη μνήμη για -την εξυπηρέτηση από τη μνιήμη κα ι τφυταροχή απαντήσεων στα αιτήματα πρόσβασης στη μνήμη που εξυπηρετούνται από πη μ^ήμη,t^-getting-memory-access-parts for -serving from memory and providing responses to memory access requests served by memory, τη^·πρησδισρισ|ΐή μιπς [ΐΓτπγιηγής πλπιπίου Εκτέλεπης η ηττηίπ περιλαμβάνΕΐ-ρκν■μΒτήβηπη ππή τη'/ rfr ιπηρέτηπη π·»/ πιτημάπιΐν πρόσβασης στη μνήμη πηυ σχετίζονται με ένα πρώτη ττλπίίτιη Εκτέλρπης στην Εξυπηρέτηση των αιτημάτων πρόπβππης πτη μνήμιρτΑΐι ανετίζηντηι | ΙΓ ή/π δεύτερη πλαίσιο εκτέλεσΓΚ. καιThe implementation of the implementation of the program includes the implementation of memory access requests related to a first step in the execution of service requests for memory access. IG and/or second frame execution. and «τουλάχιστον όταν η μεταγωγή πλαισίου εκτέλεσης ικπνηπηιεί μιπ ττρηκπΟηριπ| ιένη-σιινθήκη. τη διέγερση μιας λειτουργίας συγκάλυψης καθυστέρησης για τον έλεγχο των<ρ>ττπκ<ή>λ<η>ιιΑι.»/ αιτημάτων πρόσβασης στη μνήμη που σχετίζοντ οποίο τα απαιτούμενα δεδομένα είναι ήδη-αποθη -μια καθυστέρηση απάντησης η οποία είναι ανε πραγματοποιείται πρόσβαση από τα αιτήματα πρ πρώτο πλαίσιο εκτέλεσης, με την ev λόγω καθυ καθυστέρηση μεταξύ της λήψης του αιτήματος κύκλωμα διασύνδεσης και της παροχής μιας απά ππδ το rv λήγω ύ λ αι με το δεύτερο πλαίσιο εκτέλεσης, γιοτο κευμένα στη-μνήμηΓ^τρος εξυπηρέτηση με ξάρτητη από τις διευθύνσεις στις οποίε^-όσβασης στη μνήμη που σχετίζονται με το στέρηση απάντηοης να περιλαμβάνει μια — πρόσβασης στη μνήμη από το εν λόγω"at least when execution frame switching is performed with yeni-siintheki. triggering a delay masking function to control memory access requests related to which the required data is already-stored -a response delay which is not accessed by the requests for the first execution frame, with ev due to each delay between the receipt of the request and the provision of a request from the rv end with the second execution frame, i.o. written in-memory service with depending on the addresses at which ^-memory access related to the denial of response to include a — memory access from said ντησης στο αίτημαπτρόσβασης~στη~ρνήμηin the request for access to the information
GR20180200176U 2018-06-18 2018-06-18 Delay masking action for memory access requests GR20180200176U (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GR20180200176U GR20180200176U (en) 2018-06-18 2018-06-18 Delay masking action for memory access requests

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GR20180200176U GR20180200176U (en) 2018-06-18 2018-06-18 Delay masking action for memory access requests

Publications (1)

Publication Number Publication Date
GR20180200176U true GR20180200176U (en) 2020-02-13

Family

ID=69624680

Family Applications (1)

Application Number Title Priority Date Filing Date
GR20180200176U GR20180200176U (en) 2018-06-18 2018-06-18 Delay masking action for memory access requests

Country Status (1)

Country Link
GR (1) GR20180200176U (en)

Similar Documents

Publication Publication Date Title
Lipp et al. Nethammer: Inducing rowhammer faults through network requests
US10860215B2 (en) Delay masking action for memory access requests
US10725992B2 (en) Indexing entries of a storage structure shared between multiple threads
EP1898311B1 (en) Method and apparatus for preventing software side channel attacks
EP3121731B1 (en) Memory management method and device
US7461209B2 (en) Transient cache storage with discard function for disposable data
US8131942B2 (en) Control data modification within a cache memory
US7594042B2 (en) Effective caching mechanism with comparator coupled to programmable registers to store plurality of thresholds in order to determine when to throttle memory requests
US20100251260A1 (en) Pre-emptible context switching in a computing device
KR20090035523A (en) Avoiding cache line sharing in virtual machines
US10049048B1 (en) Method and system for using processor enclaves and cache partitioning to assist a software cryptoprocessor
US20080288789A1 (en) Reducing information leakage between processes sharing a cache
WO2006086121A2 (en) System for restricted cache access during data transfers and method thereof
CN109947666B (en) Trusted execution environment cache isolation method and device, electronic equipment and storage medium
US11061829B2 (en) Prefetch support with address space randomization
Bhattacharya et al. Advanced fault attacks in software: Exploiting the RowHammer bug
Bechtel et al. Memory-aware denial-of-service attacks on shared cache in multicore real-time systems
US11520493B2 (en) Allocation policy for shared resource accessible in both secure and less secure domains
KR102482516B1 (en) memory address conversion
JP2023526811A (en) Tag check device and method
US9507724B2 (en) Memory access processing method and information processing device
WO2008008147A2 (en) Address masking between users
GR20180200176U (en) Delay masking action for memory access requests
Huang et al. DCA: a DRAM-cache-aware DRAM controller
CN110889147B (en) Method for resisting Cache side channel attack by using filling Cache