GR20170200061U - An apparatus for transferring data between address ranges in memory - Google Patents

An apparatus for transferring data between address ranges in memory Download PDF

Info

Publication number
GR20170200061U
GR20170200061U GR20170200061U GR20170200061U GR20170200061U GR 20170200061 U GR20170200061 U GR 20170200061U GR 20170200061 U GR20170200061 U GR 20170200061U GR 20170200061 U GR20170200061 U GR 20170200061U GR 20170200061 U GR20170200061 U GR 20170200061U
Authority
GR
Greece
Prior art keywords
data
transfer
memory
address
controller
Prior art date
Application number
GR20170200061U
Other languages
Greek (el)
Inventor
Nikos NIKOLERIS
Andreas Lars SANDBERG
David Hennah Mansell
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 GR20170200061U priority Critical patent/GR20170200061U/en
Publication of GR20170200061U publication Critical patent/GR20170200061U/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

An apparatus is provided for transferring data between address ranges in memory. The apparatus comprises a data transfer controller, that is responsive to a data transfer request received by the apparatus from a processing element, to perform a transfer operation to transfer data from at least one source address range in memory to at least one destination address range in the memory. A redirect controller is then arranged, whilst the transfer operation is being performed, to intercept an access request that specifies a target address within a target address range, and to perform a memory redirection operation so as to cause the access request to be processed without awaiting completion of the transfer operation. Via such an approach, the apparatus can effectively hide from the source of the access request the fact that the transfer operation is in progress, and hence the transfer operation can be arranged to occur in the background, and in a manner that is transparent to the software executing on the source that has issued the access request.

Description

ΜΙΑ ΔΙΑΤΑΞΗ ΚΑΙ MIA ΜΕΟΟΑΟ&- ΓΙΑ ΤΗ ΜΕΤΑΦΟΡΑ ΔΕΔΟΜΕΝΩΝ AN ARRANGEMENT AND MEASURES FOR THE TRANSFER OF DATA

ΜΕΤΑΞΥ ΠΕΡΙΟΧΩΝ ΔΙΕΥΘΥΝΣΕΩΝ ΣΤΗ ΜΝΗΜΗ BETWEEN ADDRESS AREAS IN MEMORY

Η παρούσα τεχνική σχετίζεται με μια διάταξη και μια μέθοδο για τη μεταφορά δεδομένων μεταξύ περιοχών διευθύνσεων στη μνήμη. The present technique relates to an arrangement and method for transferring data between address ranges in memory.

Στα συστήματα επεξεργασίας δεδομένων, μπορεί να προκύψουν περιπτώσεις στις οποίες είναι επιθυμητή η μετακίνηση βαθμιδών δεδομένων μεταξύ διαφόρων φυσικών θέσεων στη μνήμη. Για παράδειγμα, συχνά το σύστημα μνήμης διατάσσεται σαν μια σειρά σελίδων, ενώ μπορεί να είναι επιθυμητή η μεταφορά δεδομένων από μια σελίδα σε μια άλλη σελίδα, η συγχώνευση πολλών μικρότερων σελίδων σε μια μεγαλύτερη σελίδα, κλπ. In data processing systems, situations may arise in which it is desirable to move tiers of data between different physical locations in memory. For example, often the memory system is arranged as a series of pages, while it may be desirable to transfer data from one page to another page, merge several smaller pages into one larger page, etc.

Συχνά, το λειτουργικό σύστημα που εκτελείται σε έναν επεξεργαστή εντός του συστήματος μπορεί να χρησιμοποιείται για τη διαχείριση της μεταφοράς των δεδομένων μεταξύ των διαφόρων φυσικών θέσεων στη μνήμη. Ωστόσο, η διαδικασία μεταφοράς των δεδομένων υπό έναν τέτοιο έλεγχο λογισμικού μπορεί να διαρκέσει μια σημαντική χρονική περίοδο. Αυτό δεν καταναλώνει μόνο σημαντικούς πόρους επεξεργαστή, αλλά απαιτεί και τη λήψη μέτρων κατά τη διάρκεια αυτής της περιόδου τα οποία θα εξασφαλίζουν ότι κάθε απόπειρα πρόσβασης στα δεδομένα η οποία υπόκειται στη λειτουργία μεταφοράς δε θα δίνει αφορμή για ανακολουθίες στα δεδομένα. Συχνά αυτό μπορεί να απαιτεί τη φραγή των προσβάσεων εγγραφής μέχρι να ολοκληρωθεί η λειτουργία μεταφοράς. Often, the operating system running on a processor within the system can be used to manage the transfer of data between various physical locations in memory. However, the process of transferring the data under such software control can take a significant period of time. This not only consumes significant processor resources, but also requires measures to be taken during this period to ensure that any attempt to access data subject to the transfer operation will not give rise to data inconsistencies. Often this may require blocking write accesses until the transfer operation is complete.

Επιπρόσθετα, κατά την εκτέλεση τέτοιων εργασιών μεταφοράς δεδομένων υπό τον έλεγχο του λειτουργικού συστήματος, η διαδικασία συνήθως απαιτεί πολλαπλές λειτουργίες διαχείρισης της μνήμης, οι οποίες επίσης μπορούν να δώσουν αφορμή για ζητήματα απόδοσης λόγω του χρόνου που απαιτείται για την πραγματοποίηση αυτών των λειτουργιών διαχείρισης της μνήμης. Additionally, when performing such data transfer operations under the control of the operating system, the process typically requires multiple memory management operations, which can also give rise to performance issues due to the time required to perform these memory management operations. .

Θα ήταν συνεπώς επιθυμητή η παροχή ενός βελτιωμένου μηχανισμού διαχείρισης της μεταφοράς δεδομένων μεταξύ περιοχών διευθύνσεων στη μνήμη. It would therefore be desirable to provide an improved mechanism for managing the transfer of data between memory address ranges.

Σε ένα πρώτο παράδειγμα διαμόρφωσης, παρέχεται μια διάταξη, η οποία περιλαμβάνει: έναν ελεγκτή μεταφοράς δεδομένων, που ανταποκρίνεται σε ένα αίτημα μεταφοράς δεδομένων που λαμβάνεται από τη διάταξη από ένα στοιχείο επεξεργασίας, για την πραγματοποίηση μιας λειτουργίας μεταφοράς για τη μεταφορά δεδομένων από τουλάχιστον μια περιοχή διευθύνσεων προέλευσης στη μνήμη σε τουλάχιστον μια περιοχή διευθύνσεων προορισμού στη μνήμη, και έναν ελεγκτή ανακατευθυνσης διαταγμενο, κατά In a first exemplary embodiment, an apparatus is provided, comprising: a data transfer controller, responsive to a data transfer request received by the apparatus from a processing element, for performing a transfer operation to transfer data from at least one area of source addresses in memory to at least one area of destination addresses in memory, and a redirection controller arranged, v

την εκτέλεση της λειτουργίας, για την αναχαίτιση ενός αιτήματος πρόσβασης το οποίο καθορίζει μια διεύθυνση προορισμού εντός μιας περιοχής διευθύνσεων προορισμού και την εκτέλεση μιας λειτουργίας ανακατεύθυνσης μνήμης, ώστε να προκαλείται η επεξεργασία του εν λόγω αιτήματος πρόσβασης χωρίς να αναμένεται ολοκλήρωση της λειτουργίας μεταφοράς. performing the operation to intercept an access request that specifies a destination address within a destination address range and performing a memory redirection operation to cause said access request to be processed without waiting for the transfer operation to complete.

Σε ένα περαιτέρω παράδειγμα διαμόρφωσης, παρέχεται ένα σύστημα το οποίο περιλαμβάνει: ένα πλήθος στοιχείων επεξεργασίας, μια διασύνδεση συνδεδεμένη με το εν λόγω πλήθος στοιχείων επεξεργασίας και για τον έλεγχο της πρόσβασης σε μια μνήμη από το εν λόγω πλήθος στοιχείων επεξεργασίας, με τη διασύνδεση να έχει μια μηχανή μεταφοράς διαμορφωμένη από μια διάταξη σύμφωνα με το πρώτο παράδειγμα διαμόρφωσης, για την εκτέλεση μιας λειτουργίας μεταφοράς για λογαριασμό ενός από τα στοιχεία επεξεργασίας με σκοπό τη μεταφορά δεδομένων από τουλάχιστον μια περιοχή διευθύνσεων προέλευσης σε τουλάχιστον μια περιοχή διευθύνσεων προορισμού, δίνοντας ταυτόχρονα τη δυνατότητα συνέχισης της επεξεργασίας των αιτημάτων πρόσβασης που εκδίδονται από το πλήθος των στοιχείων επεξεργασίας όσον αφορά στα δεδομένα τα οποία υπόκεινται στη λειτουργία μεταφοράς κατά την εκτέλεση της λειτουργίας μεταφοράς. In a further exemplary embodiment, a system is provided comprising: a plurality of processing elements, an interface connected to said plurality of processing elements and for controlling access to a memory by said plurality of processing elements, the interface having a transfer engine configured by an arrangement according to the first exemplary embodiment, for performing a transfer operation on behalf of one of the processing elements for the purpose of transferring data from at least one source address range to at least one destination address range while enabling continuation the processing of access requests issued by the plurality of processing elements with respect to the data subject to the transfer function during the execution of the transfer function.

Σε ένα ακόμη περαιτέρω παράδειγμα διαμόρφωσης, παρέχεται μια μέθοδος μεταφοράς δεδομένων μεταξύ περιοχών διευθύνσεων στη μνήμη, η οποία περιλαμβάνει: σε απόκριση ενός αιτήματος μεταφοράς δεδομένων που λαμβάνεται από ένα στοιχείο επεξεργασίας, τη χρήση ενός ελεγκτή μεταφοράς δεδομένων για την εκτέλεση μιας λειτουργίας μεταφοράς για τη μεταφορά δεδομένων από τουλάχιστον μια περιοχή διευθύνσεων προέλευσης στη μνήμη σε τουλάχιστον μια περιοχή διευθύνσεων προορισμού στη μνήμη, και κατά τη διάρκεια εκτέλεσης της λειτουργίας μεταφοράς, την αναχαίτιση ενός αιτήματος πρόσβασης το οποίο καθορίζει μια διεύθυνση προορισμού εντός μιας περιοχής διευθύνσεων προορισμού και την εκτέλεση μιας λειτουργίας ανακατεύθυνσης μνήμης ώστε να προκαλέσει την επεξεργασία του εν λόγω αιτήματος πρόσβασης χωρίς να αναμένεται ολοκλήρωση της λειτουργίας μεταφοράς. In a still further exemplary embodiment, a method of transferring data between address ranges in memory is provided, comprising: in response to a data transfer request received from a processing element, using a data transfer controller to perform a transfer operation to transfer data from at least one source address range in memory to at least one destination address range in memory, and during execution of the transfer operation, intercepting an access request that specifies a destination address within a destination address range and performing a memory redirection operation to cause that access request to be processed without waiting for the transfer operation to complete.

Σε ένα ακόμη περαιτέρω παράδειγμα διαμόρφωσης, παρέχεται μια διάταξη, η οποία περιλαμβάνει: μέσα ελέγχου μεταφοράς δεδομένων για την εκτέλεση, σε απόκριση ενός αιτήματος μεταφοράς δεδομένων που λαμβάνεται από τη διάταξη από ένα στοιχείο επεξεργασίας, μιας λειτουργίας μεταφοράς για τη μεταφορά δεδομένων από τουλάχιστον μια περιοχή διευθύνσεων προέλευσης στη μνήμη σε τουλάχιστον μια περιοχή διευθύνσεων προορισμού στη μνήμη και μέσα ελέγχου ανακατεύθυνσης για την αναχαίτιση, κατά την εκτέλεση της λειτουργίας μεταφοράς, ενός αιτήματος πρόσβασης το οποίο προσδιορίζει μια διεύθυνση προορισμού εντός μιας περιοχής διευθύνσεων προορισμού και την εκτέλεση μιας λειτουργίας ανακατεύθυνσης μνήμης ώστε να προκαλείται η επεξεργασία του εν λόγω αιτήματος πρόσβασης χωρίς να αναμένεται η ολοκλήρωση της λειτουργίας μεταφοράς. In a still further exemplary embodiment, an arrangement is provided, comprising: data transfer control means for performing, in response to a data transfer request received by the arrangement from a processing element, a transfer operation for transferring data from at least one area source addresses in memory to at least one destination address range in memory and redirection control means for intercepting, during execution of the transfer operation, an access request specifying a destination address within a destination address range and performing a memory redirection operation to causes the access request in question to be processed without waiting for the transfer operation to complete.

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

Το Σχήμα 1 είναι ένα διάγραμμα βαθμιδών ενός συστήματος σύμφωνα με μια υλοποίηση, Figure 1 is a block diagram of a system according to one embodiment,

Το Σχήμα 2 είναι ένα διάγραμμα βαθμιδών το οποίο απεικονίζει με μεγαλύτερη λεπτομέρεια τη μηχανή μεταφοράς δεδομένων του Σχήματος 1 σύμφωνα με μια υλοποίηση, Figure 2 is a block diagram illustrating in greater detail the data transfer engine of Figure 1 in accordance with one embodiment;

Το Σχήμα 3 απεικονίζει σχηματικά πληροφορίες οι οποίες μπορεί να διατηρούνται εντός των καταχωρητών ελέγχου του Σχήματος 2 σύμφωνα με μια υλοποίηση, Figure 3 schematically illustrates information that may be held within the control registers of Figure 2 in accordance with one embodiment,

Τα Σχήματα 4Α και 4Β είναι διαγράμματα ροής τα οποία απεικονίζουν βήματα στα πλαίσια του συστήματος του Σχήματος 1 σύμφωνα με μια υλοποίηση με σκοπό τη μεταφορά δεδομένων από τουλάχιστον μια περιοχή διευθύνσεων προέλευσης στη μνήμη σε τουλάχιστον μια περιοχή διευθύνσεων προορισμού στη μνήμη, Figures 4A and 4B are flowcharts illustrating steps within the system of Figure 1 according to one embodiment for transferring data from at least one source address range in memory to at least one destination address range in memory;

Τα Σχήματα 5Α, 5Β και 5C είναι διαγράμματα ροής τα οποία απεικονίζουν τρεις διαφορετικούς μηχανισμούς οι οποίοι μπορούν να χρησιμοποιούνται για την υλοποίηση του βήματος 245 του Σχήματος 4Β, Figures 5A, 5B and 5C are flowcharts illustrating three different mechanisms that may be used to implement step 245 of Figure 4B;

Τα Σχήματα 6Α έως 6C απεικονίζουν σχηματικά τη χρήση της μηχανής μεταφοράς δεδομένων μιας υλοποίησης (αναφέρεται σε αυτά τα σχήματα ως μηχανή αντιγραφής) για ένα παράδειγμα περίπτωσης όπου δύο περιοχές διευθύνσεων προέλευσης συγχωνεύονται σε μια μόνο, μεγαλύτερη περιοχή διευθύνσεων προορισμού, Figures 6A through 6C schematically illustrate the use of one embodiment's data transfer engine (referred to in these figures as a copy engine) for an example case where two source address ranges are merged into a single, larger destination address range;

Το Σχήμα 7 απεικονίζει σχηματικά τον τρόπο με τον οποίο μια δεσμευμένη περιοχή διευθύνσεων εντός του χώρου διευθύνσεων μνήμης μπορεί να συσχετίζεται με τη μηχανή μεταφοράς δεδομένων σύμφωνα με μια υλοποίηση, και Figure 7 schematically illustrates how a reserved address region within the memory address space may be associated with the data transfer engine in accordance with one embodiment, and

Το Σχήμα 8 απεικονίζει ένα σύστημα σύμφωνα με μια εναλλακτική υλοποίηση, όπου χρησιμοποιείται μια διαμόρφωση ανομοιόμορφης πρόσβασης μνήμης (non-uniform memory access ή NUMA) και παρέχονται πολλές μηχανές μεταφοράς δεδομένων για τη διαχείριση των λειτουργιών μεταφοράς δεδομένων. Figure 8 illustrates a system according to an alternative embodiment where a non-uniform memory access (NUMA) configuration is used and multiple data transfer engines are provided to manage data transfer operations.

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

Σε ένα παράδειγμα υλοποίησης, παρέχεται μια διάταξη η οποία περιλαμβάνει έναν ελεγκτή μεταφοράς δεδομένων και έναν ελεγκτή ανακατεύθυνσης. Ο ελεγκτής μεταφοράς δεδομένων ανταποκρίνεται σε ένα αίτημα μεταφοράς δεδομένων που λαμβάνεται από τη διάταξη από ένα στοιχείο επεξεργασίας, για την εκτέλεση μιας λειτουργίας μεταφοράς για τη μεταφορά δεδομένων από τουλάχιστον μια περιοχή διευθύνσεων προέλευσης στη μνήμη σε τουλάχιστον μια περιοχή διευθύνσεων προορισμού στη μνήμη. Η(οι) περιοχή(ές) διευθύνσεων προέλευσης και η(οι) περιοχή(ές) διευθύνσεων προορισμού μπορούν να προσδιορίζονται με έναν αριθμό τρόπων, όμως σε μια υλοποίηση παρέχονται ως πληροφορίες εντός του αιτήματος μεταφοράς δεδομένων που λαμβάνεται από το στοιχείο επεξεργασίας. In an example implementation, an arrangement is provided which includes a data transfer controller and a redirection controller. The data transfer controller responds to a data transfer request received by the device from a processing element to perform a transfer operation to transfer data from at least one source address range in memory to at least one destination address range in memory. The source address range(s) and destination address range(s) can be specified in a number of ways, but in one embodiment they are provided as information within the data transfer request received by the processing element.

Ο ελεγκτής ανακατεύθυνσης διατάσσεται στη συνέχεια, κατά την εκτέλεση της λειτουργίας μεταφοράς, για την αναχαίτιση ενός αιτήματος πρόσβασης το οποίο προσδιορίζει μια διεύθυνση προορισμού εντός μιας περιοχής διευθύνσεων προορισμού και την εκτέλεση μιας λειτουργίας ανακατεύθυνσης μνήμης ώστε να προκαλείται η επεξεργασία του αιτήματος πρόσβασης χωρίς να αναμένεται η ολοκλήρωση της λειτουργίας μεταφοράς. The redirection controller is then ordered, during the transfer operation, to intercept an access request that specifies a destination address within a destination address range and perform a memory redirection operation to cause the access request to be processed without waiting for the completion of transfer operation.

Με μια τέτοια προσέγγιση, ορισμένα αιτήματα πρόσβασης μπορούν να αναχαιτίζονται από τη διάταξη της παραπάνω υλοποίησης και να υποβάλλονται σε μια λειτουργία ανακατεύθυνσης μνήμης με σκοπό να προκαλείται η επεξεργασία αυτών των αιτημάτων πρόσβασης μολονότι η λειτουργία μεταφοράς δεν έχει ακόμη ολοκληρωθεί. Η διάταξη μπορεί συνεπώς, στην πράξη, να αποκρύπτει από την προέλευση ενός τέτοιου αιτήματος πρόσβασης το γεγονός ότι υπάρχει μια λειτουργία μεταφοράς σε εξέλιξη. Από την άποψη της προέλευσης του αιτήματος πρόσβασης, η λειτουργία μεταφοράς πραγματοποιείται στο υπόβαθρο και μπορεί να διατάσσεται ώστε να είναι διαφανής σε λογισμικό που εκτελείται σε αυτή την προέλευση. Τα αιτήματα πρόσβασης που εκδίδονται από μια τέτοια προέλευση, τα οποία προσδιορίζουν μια διεύθυνση εντός της περιοχής διευθύνσεων προορισμού, δεν εμποδίζονται ενώ η λειτουργία μεταφοράς είναι σε εξέλιξη, βελτιώνοντας σημαντικά με αυτό τον τρόπο την απόδοση. With such an approach, some access requests may be intercepted by the arrangement of the above implementation and subjected to a memory redirection operation in order to cause these access requests to be processed even though the transfer operation has not yet completed. The arrangement may therefore, in practice, hide from the origin of such an access request the fact that there is a transfer operation in progress. From the perspective of the origin of the access request, the transfer operation occurs in the background and can be ordered to be transparent to software running on that origin. Access requests issued by such a source that specify an address within the destination address range are not blocked while the transfer operation is in progress, thereby significantly improving performance.

Η περιοχή διευθύνσεων προορισμού μπορεί να προσδιορίζεται με έναν αριθμό τρόπων, όμως σε μια υλοποίηση το σύστημα στο οποίο χρησιμοποιείται η διάταξη, είναι διατεταγμένη ώστε, κατά τη διάρκεια της λειτουργίας μεταφοράς, οποιαδήποτε αιτήματα πρόσβασης εκδίδονται σε σχέση με δεδομένα που υπόκεινται σε αυτή τη λειτουργία μεταφοράς θα προσδιορίζουν διευθύνσεις προορισμού οι οποίες βρίσκονται εντός της περιοχής διευθύνσεων προορισμού και ανάλογα θα αναχαιτίζονται από τον ελεγκτή ανακατεύθυνσης και θα υποβάλλονται στη λειτουργία ανακατεύθυνσης μνήμης. The destination address range may be specified in a number of ways, but in one embodiment the system in which the device is used is arranged so that, during the transfer operation, any access requests are issued with respect to data subject to that transfer operation they will identify destination addresses that are within the destination address range and will accordingly be intercepted by the redirection controller and subjected to the memory redirection function.

Σε μια υλοποίηση, η διάταξη περιλαμβάνει περαιτέρω έναν ελεγκτή διευθέτησης διαταγμένο ώστε να λαμβάνει το αίτημα μεταφοράς δεδομένων και να εκδίδει ένα σήμα ελέγχου το οποίο εξαναγκάζει τα αιτήματα πρόσβασης που εκδίδονται ενώ εκτελείται η λειτουργία μεταφοράς και τα οποία σχετίζονται με τα δεδομένα που μεταφέρονται από τη λειτουργία μεταφοράς, για τον προσδιορισμό μιας διεύθυνσης εντός της περιοχής διευθύνσεων προορισμού ως διεύθυνση προορισμού. Το σήμα ελέγχου μπορεί να πάρει έναν αριθμό μορφών. Για παράδειγμα, ο ελεγκτής διευθέτησης μπορεί ο ίδιος να ενημερώνει απευθείας τις δομές μετάφρασης διευθύνσεων οι οποίες χρησιμοποιούνται για τον καθορισμό των διευθύνσεων για τα αιτήματα πρόσβασης, για παράδειγμα πίνακες σελίδων στη μνήμη, ώστε τα αιτήματα πρόσβασης που εκδίδονται κατά την εκτέλεση της λειτουργίας μεταφοράς και τα οποία σχετίζονται με τα δεδομένα που μεταφέρονται από τη λειτουργία μεταφοράς, θα προσδιορίζουν διευθύνσεις εντός της περιοχής διευθύνσεων προορισμού. Στις περιπτώσεις στις οποίες τα διάφορα στοιχεία επεξεργασίας εντός του συστήματος τα οποία μπορούν να εκδίδουν αιτήματα πρόσβασης στο αντίστοιχο τμήμα της μνήμης, χρησιμοποιούν συσχετισμένους χώρους αποθήκευσης μετάφρασης διευθύνσεων (για παράδειγμα, προσωρινές μνήμες παράβλεψης μετάφρασης (translation lookaside buffers ή TLB)) για την προσωρινή αποθήκευση δεδομένων μετάφρασης διευθύνσεων που χρησιμοποιούνται από αυτά τα στοιχεία επεξεργασίας, ο ελεγκτής διευθέτησης μπορεί επίσης να εκδίδει σήματα ελέγχου που να προκαλούν την ακύρωση των σχετικών τμημάτων αυτών των αποθηκευτικών χώρων μετάφρασης διευθύνσεων, τα οποία για παράδειγμα θα εξασφαλίζουν ότι αντ’ αυτού θα γίνεται αναφορά στους ενημερωμένους πίνακες σελίδων την επόμενη φορά που θα εκδίδεται μια πρόσβαση σχετικά με τη σχετική περιοχή διευθύνσεων. In one embodiment, the arrangement further includes a settlement controller arranged to receive the data transfer request and issue a control signal which forces access requests issued while the transfer operation is in progress and which are related to the data transferred by the operation transport, to specify an address within the destination address range as the destination address. The control signal can take a number of forms. For example, the settlement controller may itself directly update address translation structures that are used to determine the addresses for access requests, for example page tables in memory, so that access requests issued during transfer operation execution and associated with the data transferred by the transfer function, will specify addresses within the destination address range. In cases where the various processing elements within the system that can issue access requests to the corresponding portion of memory use associated address translation stores (for example, translation lookaside buffers (TLBs)) for temporary storage address translation data used by these processing elements, the settlement controller may also issue control signals to cause relevant portions of these address translation stores to be invalidated, which would, for example, ensure that the updated page tables the next time an access is issued about the relevant address range.

Σε μια εναλλακτική υλοποίηση, ο ελεγκτής διευθέτησης μπορεί να μην αναλαμβάνει ο ίδιος τέτοιες εργασίες και αντ’ αυτού το σήμα ελέγχου μπορεί να λαμβάνει τη μορφή ενός σήματος αναγνώρισης που επιστρέφεται στο στοιχείο επεξεργασίας που εξέδωσε το αίτημα μεταφοράς δεδομένων, με το στοιχείο επεξεργασίας να διατάσσεται ώστε να ανταποκρίνεται στο σήμα αναγνώρισης για την εκτέλεση των εργασιών που περιγράφηκαν παραπάνω. Συνεπώς, για παράδειγμα, αυτό το στοιχείο επεξεργασίας μπορεί να ενημερώνει τους πίνακες σελίδων στη μνήμη ώστε τα μετέπειτα αιτήματα πρόσβασης που εκδίδονται όσον αφορά στα δεδομένα που μεταφέρονται να αντιστοιχούνται σε διευθύνσεις εντός της περιοχής διευθύνσεων προορισμού και μπορεί επιπλέον να ακυρώνει τις σχετικές εγγραφές στο δικό του χώρο αποθήκευσης μετάφρασης διευθύνσεων και να μεταδίδει ένα σήμα σε άλλα στοιχεία επεξεργασίας στο σύστημα ώστε να εξασφαλίζει ότι θα ακυρώνουν και αυτά τα σχετικά τμήματα των τοπικών τους χώρων αποθήκευσης μετάφρασης διευθύνσεων. In an alternative embodiment, the settlement controller may not perform such tasks itself, and instead the control signal may take the form of an acknowledgment signal returned to the processing element that issued the data transfer request, with the processing element being ordered to to respond to the identification signal to perform the tasks described above. Thus, for example, this processing element can update the page tables in memory so that subsequent access requests issued with respect to the transferred data are mapped to addresses within the destination address space, and it can additionally invalidate the relevant entries in its address translation store and broadcast a signal to other processing elements in the system to ensure that they also invalidate those relevant portions of their local address translation stores.

Η περιοχή διευθύνσεων προορισμού μπορεί να λαμβάνει έναν αριθμό μορφών. Μπορεί για παράδειγμα να διατάσσεται ώστε να είναι η εν λόγω τουλάχιστον μια περιοχή διευθύνσεων προέλευσης, ενώ σε μια άλλη υλοποίηση μπορεί να διατάσσεται ώστε να είναι η εν λόγω τουλάχιστον μια περιοχή διευθύνσεων προορισμού. Ως μια περαιτέρω εναλλακτική, η περιοχή διευθύνσεων προορισμού μπορεί να είναι μια αποκλειστική περιοχή διευθύνσεων που συσχετίζεται με τη διάταξη. Στην περίπτωση στην οποία η περιοχή διευθύνσεων προορισμού είναι η εν λόγω τουλάχιστον μια περιοχή διευθύνσεων προορισμού, τότε το σήμα ελέγχου που εκδίδεται από τον ελεγκτή διευθέτησης θα προκαλεί την ενημέρωση των σχετικών δομών μετάφρασης διευθύνσεων πριν την εκτέλεση της λειτουργίας μεταφοράς, ώστε οποιαδήποτε αιτήματα πρόσβασης εκδίδονται κατά την εκτέλεση της λειτουργίας μεταφοράς και σχετίζονται με τα δεδομένα που μεταφέρονται, θα υποδεικνύουν μια διεύθυνση εντός της περιοχής διευθύνσεων προορισμού και σε αυτή τη βάση θα αναχαιτίζονται από τον ελεγκτή ανακατεύθυνσης. Εάν εναλλακτικά η περιοχή διευθύνσεων προορισμού επιλέγεται να είναι η εν λόγω τουλάχιστον μια περιοχή διευθύνσεων προέλευσης, τότε οι σχετικές δομές μετάφρασης διευθύνσεων μπορεί να μην ενημερώνονται πριν την έναρξη της λειτουργίας μεταφοράς, ώστε οποιαδήποτε αιτήματα πρόσβασης εκδίδονται κατά την εκτέλεση της λειτουργίας μεταφοράς θα εκδίδονται σε διευθύνσεις εντός της περιοχής διευθύνσεων προέλευσης και ανάλογα θα αναχαιτίζονται από τον ελεγκτή ανακατεύθυνσης. Μόλις ολοκληρωθεί η λειτουργία μεταφοράς, τότε οι δομές διαχείρισης μνήμης μπορεί να ενημερώνονται ώστε οι μετέπειτα προσβάσεις στα σχετικά δεδομένα θα υποδεικνύουν διευθύνσεις εντός της περιοχής διευθύνσεων προορισμού. The destination address range can take a number of formats. For example, it may be ordered to be said at least one source address range, while in another embodiment it may be ordered to be said at least one destination address range. As a further alternative, the destination address range may be a dedicated address range associated with the layout. In the event that the destination address range is said at least one destination address range, then the control signal issued by the settlement controller shall cause the relevant address translation structures to be updated prior to performing the transfer operation so that any access requests are issued in accordance with performing the transfer operation and related to the data being transferred will point to an address within the destination address range and on that basis will be intercepted by the redirect controller. If alternatively the destination address range is chosen to be said at least one source address range, then the relevant address translation structures may not be updated before the transfer operation begins, so that any access requests issued during the transfer operation will be issued to addresses within the source address range and will be intercepted by the redirect controller accordingly. Once the transfer operation is complete, then the memory management structures may be updated so that subsequent accesses to the relevant data will point to addresses within the destination address range.

Στο παράδειγμα στο οποίο χρησιμοποιείται μια αποκλειστική περιοχή διευθύνσεων που σχετίζεται με τη διάταξη, τότε πριν την εκτέλεση της λειτουργίας μεταφοράς, ενημερώνονται οι σχετικές δομές μετάφρασης διευθύνσεων ώστε οποιαδήποτε αιτήματα προσβάσεων που εκδίδονται όσον αφορά στα δεδομένα που μεταφέρονται, κατά την εκτέλεση της λειτουργίας μεταφοράς, θα εκδίδονται σε διευθύνσεις εντός της αποκλειστικής περιοχής διευθύνσεων της διάταξης. Σε μια τέτοια διάταξη, μπορεί να διατάσσεται ότι ο ελεγκτής ανακατεύθυνσης θα λαμβάνει μόνο αιτήματα πρόσβασης τα οποία προσδιορίζουν μια διεύθυνση εντός αυτής της αποκλειστικής περιοχής διευθύνσεων και συνεπώς δε χρειάζεται να καθοριστεί κατά πόσο απαιτείται η αναχαίτιση ή μη ενός αιτήματος πρόσβασης. Συγκεκριμένα, κάθε αίτημα πρόσβασης που λαμβάνει ο ελεγκτής ανακατεύθυνσης κατά την εκτέλεση της λειτουργίας μεταφοράς θα αντιμετωπίζεται ως αναχαιτισμένο και συνεπώς θα υποβάλλεται στη λειτουργία ανακατεύθυνσης μνήμης. Μόλις ολοκληρώνεται η λειτουργία μεταφοράς, τότε οι δομές μετάφρασης διευθύνσεων μπορούν να ενημερώνονται και πάλι ώστε οποιεσδήποτε μετέπειτα προσβάσεις όσον αφορά στα σχετικά δεδομένα θα υποδεικνύουν διευθύνσεις εντός της περιοχής διευθύνσεων προορισμού. In the example where a dedicated array-related address range is used, then prior to performing the transfer operation, the relevant address translation structures are updated so that any access requests issued with respect to the data being transferred, while performing the transfer operation, will are issued to addresses within the array's exclusive address range. In such a provision, it may be directed that the redirect controller will only receive access requests that specify an address within that exclusive address range, and thus need not determine whether or not an access request needs to be intercepted. Specifically, any access request received by the redirection controller while performing the transfer operation will be treated as intercepted and thus submitted to the memory redirection operation. Once the transfer operation is complete, then the address translation structures can be updated again so that any subsequent accesses to the associated data will point to addresses within the destination address range.

Υπάρχει ένας αριθμός τρόπων με τους οποίους μπορεί να εκτελείται η λειτουργία ανακατεύθυνσης μνήμης από τον ελεγκτή ανακατεύθυνσης. Σε ένα πρώτο παράδειγμα υλοποίησης, ο ελεγκτής ανακατεύθυνσης διατάσσεται ώστε να εκτελεί την εν λόγω λειτουργία ανακατεύθυνσης μνήμης ώστε: όταν το αναχαιτισμένο αίτημα πρόσβασης είναι ένα αίτημα πρόσβασης για ανάγνωση, η διεύθυνση προορισμού αντιστοιχείται σε μια αντίστοιχη διεύθυνση προέλευσης εντός της εν λόγω τουλάχιστον μιας περιοχής διευθύνσεων προέλευσης ώστε να προκαλείται η εκτέλεση μιας λειτουργίας ανάγνωσης από την εν λόγω αντίστοιχη διεύθυνση προέλευσης, ενώ όταν το αναχαιτισμένο αίτημα πρόσβασης είναι ένα αίτημα πρόσβασης για εγγραφή, η διεύθυνση προορισμού αντιστοιχείται σε μια αντίστοιχη διεύθυνση προέλευσης εντός της εν λόγω τουλάχιστον μιας περιοχής διευθύνσεων προέλευσης και σε μια αντίστοιχη διεύθυνση προορισμού εντός της εν λόγω τουλάχιστον μιας περιοχής διευθύνσεων προορισμού ώστε να προκαλείται η εκτέλεση μιας λειτουργίας εγγραφής τόσο στην αντίστοιχη διεύθυνση προέλευσης, όσο και στην αντίστοιχη διεύθυνση προορισμού. Μια τέτοια προσέγγιση εξασφαλίζει ότι η αρχική έκδοση των δεδομένων και η αντιγραμμένη έκδοση που δημιουργείται εντός της τουλάχιστον μιας περιοχής διευθύνσεων προορισμού παραμένουν σε συγχρονισμό, αλλά επαναλαμβάνουν τις λειτουργίες εγγραφής. Παρ’ όλα αυτά, ο επίφορτος αυτής της προσέγγισης είναι πιθανό να είναι μικρός εάν οι εν λόγω περιοχές διευθύνσεων δε χρησιμοποιούνται υπερβολικά και ανάλογα τα περιστατικά τέτοιων αιτημάτων πρόσβασης για εγγραφή κατά την περίοδο εκτέλεσης της λειτουργίας μεταφοράς θα είναι λίγα. There are a number of ways in which the memory redirection function can be performed by the redirection controller. In a first exemplary embodiment, the redirection controller is arranged to perform said memory redirection function such that: when the intercepted access request is a read access request, the destination address is mapped to a corresponding source address within said at least one address range source address to cause a read operation to be performed by said corresponding source address, and when the intercepted access request is a write access request, the destination address is mapped to a corresponding source address within said at least one source address range and to a corresponding destination address within said at least one destination address range to cause a write operation to be performed on both the corresponding source address and the corresponding destination address. Such an approach ensures that the original version of the data and the copied version created within the at least one destination address range remain in sync, but repeat the write operations. However, the overhead of this approach is likely to be small if the address ranges in question are not overused and accordingly the incidence of such write access requests during the run of the transfer function will be few.

Σε μια εναλλακτική υλοποίηση, ο εν λόγω ελεγκτής μεταφοράς δεδομένων διατάσσεται ώστε να διατηρεί ένα αρχείο προόδου της λειτουργίας μεταφοράς, ενώ ο ελεγκτής ανακατεύθυνσης διατάσσεται ώστε να εκτελεί τη λειτουργία ανακατεύθυνσης μνήμης με τρόπο ώστε: όταν η διεύθυνση προορισμού του αναχαιτισμένου αιτήματος πρόσβασης σχετίζεται με μια διεύθυνση της οποίας τα δεδομένα πρέπει ακόμη να μεταφερθούν από τη λειτουργία μεταφοράς, η διεύθυνση προορισμού αντιστοιχείται σε μια αντίστοιχη διεύθυνση προέλευσης ώστε να προκαλείται η εκτέλεση μιας πρόσβασης σε αυτή την αντίστοιχη διεύθυνση προέλευσης, ενώ όταν η διεύθυνση προορισμού του αναχαιτισμένου αιτήματος πρόσβασης σχετίζεται με μια διεύθυνση της οποίας τα δεδομένα έχουν ήδη μεταφερθεί από τη λειτουργία μεταφοράς, η διεύθυνση προορισμού αντιστοιχείται σε μια αντίστοιχη διεύθυνση προορισμού ώστε να προκαλείται η εκτέλεση μιας πρόσβασης σε αυτή την αντίστοιχη διεύθυνση προορισμού. Μια τέτοια προσέγγιση απαιτεί την επιτήρηση από τον ελεγκτή ανακατεύθυνσης των πληροφοριών που διατηρούνται από τον ελεγκτή μεταφοράς δεδομένων σχετικά με την πρόοδο που πραγματοποιείται με τη λειτουργία μεταφοράς, ώστε να αποφασίζεται ο τρόπος επεξεργασίας του αναχαιτισμένου αιτήματος πρόσβασης, αλλά αποτρέπει την απαίτηση επανάληψης της λειτουργίας εγγραφής όπου το αναχαιτισμένο αίτημα πρόσβασης είναι ένα αίτημα εγγραφής. Συχνά, η λειτουργία μεταφοράς εκτελείται αλληλοδιάδοχα όσον αφορά στις διευθύνσεις εντός της(ων) περιοχής(ών) διευθύνσεων προέλευσης και ανάλογα οι πληροφορίες κατάστασης που απαιτούνται για τον προσδιορισμό των δεδομένων τα οποία έχουν μεταφερθεί και των δεδομένων που απομένει να μεταφερθούν είναι σχετικά λίγες. In an alternative embodiment, said data transfer controller is arranged to maintain a progress file of the transfer operation, while the redirection controller is arranged to perform the memory redirection operation such that: when the destination address of the intercepted access request is associated with an whose data has yet to be transferred by the transfer function, the destination address is mapped to a corresponding source address to cause an access to be performed at that corresponding source address, whereas when the destination address of the intercepted access request is associated with an address of whose data has already been transferred by the transfer function, the destination address is mapped to a corresponding destination address to cause an access to that corresponding destination address to be performed. Such an approach requires the redirect controller to monitor the information maintained by the data transfer controller about the progress being made with the transfer operation to decide how to process the intercepted access request, but avoids the requirement to retry the write operation where the intercepted access request is a registration request. Often, the transfer operation is performed sequentially with respect to addresses within the source address range(s), and accordingly the status information required to determine what data has been transferred and what data remains to be transferred is relatively small.

Σε μια ακόμη περαιτέρω εναλλακτική υλοποίηση, ο ελεγκτής μεταφοράς δεδομένων μπορεί να διατάσσεται ώστε να διατηρεί ένα αρχείο προόδου της λειτουργίας μεταφοράς, ενώ ο ελεγκτής ανακατεύθυνσης διατάσσεται ώστε να εκτελεί τη λειτουργία ανακατεύθυνσης μνήμης με τρόπο ώστε: όταν η διεύθυνση προορισμού του αναχαιτισμένου αιτήματος πρόσβασης σχετίζεται με μια διεύθυνση της οποίας τα δεδομένα απομένει να μεταφερθούν από τη λειτουργία μεταφοράς, ο ελεγκτής μεταφοράς δεδομένων διατάσσεται ώστε να εκκινεί τη μεταφορά μιας βαθμίδας δεδομένων η οποία περιλαμβάνει τα δεδομένα που συσχετίζονται με τη διεύθυνση προορισμού, πριν την επεξεργασία του αναχαιτισμένου αιτήματος πρόσβασης, και όταν η διεύθυνση προορισμού του αναχαιτισμένου αιτήματος πρόσβασης σχετίζεται με μια διεύθυνση της οποίας τα δεδομένα έχουν ήδη μεταφερθεί από τη λειτουργία μεταφοράς, η διεύθυνση προορισμού αντιστοιχείται με μια αντίστοιχη διεύθυνση η οποία είναι μια από την αντίστοιχη διεύθυνση προέλευσης και την αντίστοιχη διεύθυνση προορισμού, ώστε να προκαλείται η εκτέλεση μιας πρόσβασης σε αυτή την αντίστοιχη διεύθυνση. In a still further alternative embodiment, the data transfer controller may be arranged to maintain a progress file of the transfer operation, while the redirection controller is arranged to perform the memory redirection operation such that: when the destination address of the intercepted access request is associated with an address whose data remains to be transferred by the transfer function, the data transfer controller is ordered to initiate the transfer of a data tier that includes the data associated with the destination address, before processing the intercepted access request, and when the destination address of the intercepted access request is related to an address whose data has already been transferred by the transfer function, the destination address is matched with a corresponding address which is one of the corresponding source address and the corresponding the destination to cause an access to that corresponding address to be performed.

Σε μια υλοποίηση, όταν η διεύθυνση προορισμού του αναχαιτισμένου αιτήματος πρόσβασης σχετίζεται με μια διεύθυνση της οποίας τα δεδομένα έχουν ήδη μεταφερθεί από τη λειτουργία μεταφοράς, η διεύθυνση προορισμού αντιστοιχείται στην αντίστοιχη διεύθυνση προορισμού, εφόσον υποτίθεται ότι η πλέον ενημερωμένη έκδοση θα διατηρείται εντός της περιοχής διευθύνσεων προορισμού. Ωστόσο, σε μια εναλλακτική υλοποίηση, θα μπορούσε να χρησιμοποιηθεί ένα αντίγραφο στο μηχανισμό εγγραφής όπου, όταν εκτελείται μια λειτουργία εγγραφής, τα αρχικά δεδομένα στη διεύθυνση προέλευσης αντιγράφονται στη διεύθυνση προορισμού και στη συνέχεια πραγματοποιείται η εγγραφή στα δεδομένα στη διεύθυνση προέλευσης. Σε αυτό το σενάριο, θα ήταν κατάλληλη, όταν η διεύθυνση προορισμού του αναχαιτισμένου αιτήματος πρόσβασης σχετίζεται με μια διεύθυνση της οποίας τα δεδομένα έχουν ήδη μεταφερθεί από τη λειτουργία μεταφοράς, η αντιστοίχιση της διεύθυνσης προορισμού με την αντίστοιχη διεύθυνση προέλευσης. Για τις ακόλουθες αναλύσεις, θα υποτεθεί ότι η διεύθυνση προορισμού αντιστοιχείται στη διεύθυνση προορισμού σύμφωνα με την πρώτη επιλογή που εξετάστηκε παραπάνω. In one embodiment, when the destination address of the intercepted access request is associated with an address whose data has already been transferred by the transport function, the destination address is mapped to the corresponding destination address, since the most up-to-date version is assumed to be kept within the address range destination. However, in an alternative implementation, a copy to write mechanism could be used where, when a write operation is performed, the original data at the source address is copied to the destination address and then the data at the source address is written to. In this scenario, it would be appropriate, when the destination address of the intercepted access request is associated with an address whose data has already been transferred by the transfer function, to map the destination address to the corresponding source address. For the following analyses, it will be assumed that the destination address corresponds to the destination address according to the first option discussed above.

Υπάρχει ένας αριθμός τρόπων στους οποίους το αναχαιτισμένο αίτημα πρόσβασης μπορεί να επεξεργάζεται όταν σχετίζεται με δεδομένα που απομένουν να μεταφερθούν, μετά την εκκίνηση της μεταφοράς μιας βαθμίδας δεδομένων η οποία περιλαμβάνει τα δεδομένα που σχετίζονται με τη διεύθυνση προορισμού. Για παράδειγμα, σε μια υλοποίηση, το αίτημα πρόσβασης μπορεί να καθυστερείται προσωρινά κατά τη μεταφορά αυτής της βαθμίδας δεδομένων, το αρχείο προόδου ενημερώνεται στη συνέχεια ώστε να υποδηλώνει ότι τα δεδομένα έχουν μεταφερθεί και στη συνέχεια το αίτημα πρόσβασης επεξεργάζεται, αντιστοιχώντας τη διεύθυνση προορισμού σε μια αντίστοιχη διεύθυνση προορισμού. Ωστόσο, η απόδοση μπορεί να βελτιώνεται συγχωνεύοντας πραγματικά την επεξεργασία του αιτήματος πρόσβασης με τη μεταφορά της βαθμίδας δεδομένων. Για παράδειγμα, η μεταφορά της βαθμίδας δεδομένων θα περιλαμβάνει την ανάγνωση της βαθμίδας δεδομένων από τον ελεγκτή μεταφοράς δεδομένων από τη σχετική περιοχή διευθύνσεων προέλευσης και στη συνέχεια την εγγραφή αυτών των δεδομένων στη σχετική περιοχή διευθύνσεων προορισμού. Σε περίπτωση που το αίτημα πρόσβασης είναι ένα αίτημα πρόσβασης για ανάγνωση, τότε μετά την ανάγνωση των δεδομένων, τα απαιτούμενα δεδομένα για το αίτημα πρόσβασης μπορούν να λαμβάνονται απευθείας από τη βαθμίδα δεδομένων ανάγνωσης και να επιστρέφονται με σκοπό την επεξεργασία του αιτήματος πρόσβασης. Παρόμοια, εάν το αίτημα πρόσβασης είναι ένα αίτημα πρόσβασης για εγγραφή, τότε μετά την ανάγνωση της βαθμίδας δεδομένων, τα δεδομένα εγγραφής που προσδιορίζονται από το αίτημα πρόσβασης για εγγραφή μπορούν να συγχωνεύονται στα αναγνωσμένα δεδομένα, με τα ενοποιημένα συγχωνευμένα δεδομένα να εγγράφονται στη συνέχεια στην περιοχή διευθύνσεων προορισμού, έχοντας ως αποτέλεσμα την επεξεργασία με αυτό τον τρόπο του αιτήματος πρόσβασης για εγγραφή κατά την εκτέλεση της μεταφοράς της βαθμίδας δεδομένων από την αντίστοιχη περιοχή διευθύνσεων προέλευσης στη σχετική περιοχή διευθύνσεων προορισμού. There are a number of ways in which the intercepted access request can be processed when it relates to data that remains to be transferred, after the transfer of a data tier that includes the data associated with the destination address has been initiated. For example, in one implementation, the access request may be temporarily delayed while transferring this layer of data, the progress file is then updated to indicate that the data has been transferred, and then the access request is processed, mapping the destination address to a corresponding destination address. However, performance can be improved by actually merging the processing of the access request with the transport of the data tier. For example, transferring the data tier would involve the data transfer controller reading the data tier from the relevant source address range and then writing that data to the relevant destination address range. In case the access request is a read access request, then after the data is read, the required data for the access request can be obtained directly from the read data tier and returned for the purpose of processing the access request. Similarly, if the access request is a write access request, then after the data tier is read, the write data identified by the write access request can be merged into the read data, with the merged merged data then written to the area destination addresses, thereby processing the write access request when performing the transfer of the data tier from the respective source address range to the relevant destination address range.

Σε μια υλοποίηση, η διάταξη μπορεί περαιτέρω να περιλαμβάνει χώρους αποθήκευσης ελέγχου για την αποθήκευση των πληροφοριών ελέγχου που χρησιμοποιούνται για τον έλεγχο της απόδοσης της λειτουργίας μεταφοράς από τον ελεγκτή μεταφοράς δεδομένων, με το χώρο αποθήκευσης ελέγχου να αποθηκεύει μια ένδειξη της εν λόγω τουλάχιστον μιας περιοχής διευθύνσεων προέλευσης, μια ένδειξη της εν λόγω τουλάχιστον μιας περιοχής διευθύνσεων προορισμού και δεδομένα ένδειξης προόδου τα οποία προσδιορίζουν την πρόοδο της λειτουργίας μεταφοράς. Εάν είναι επιθυμητό, μπορούν να τηρούνται και επιπλέον πληροφορίες. Για παράδειγμα, μπορούν να χρησιμοποιούνται δεδομένα ελέγχου ως ένδειξη ενός συγκεκριμένου τύπου αιτήματος πρόσβασης για ανάγνωση το οποίο θα πρέπει να χρησιμοποιείται κατά την ανάγνωση των δεδομένων από την περιοχή διευθύνσεων προέλευσης (όπως θα εξεταστεί σε μεγαλύτερη λεπτομέρεια αργότερα, αυτό μπορεί να βελτιώνει το βαθμό αξιοποίησης της κρυφής μνήμης προκαλώντας την ακύρωση των αποθηκευμένων στην κρυφή μνήμη αντιγράφων δεδομένων στην περιοχή προέλευσης) ή μια έγκυρη σημαία ή άλλο παρόμοιο στοιχείο μπορεί να χρησιμοποιείται ως υπόδειξη των εγγραφών των οποίων το περιεχόμενο σχετίζεται με μια λειτουργία μεταφοράς η οποία δεν έχει ολοκληρωθεί ακόμη. Με την ολοκλήρωση της λειτουργίας μεταφοράς, η σχετική έγκυρη σημαία μπορεί στη συνέχεια να απαλείφεται, ως ένδειξη ότι η εγγραφή μπορεί να επαναχρησιμοποιείται για ένα μετέπειτα αίτημα μεταφοράς δεδομένων. In one embodiment, the arrangement may further include control stores for storing control information used to control the performance of the transfer operation by the data transfer controller, the control store storing an indication of said at least one area source addresses, an indication of said at least one destination address range, and progress indicator data which identifies the progress of the transfer operation. If desired, additional information can also be kept. For example, control data can be used to indicate a specific type of read access request that should be used when reading data from the source address space (as discussed in more detail later, this can improve the utilization of cache causing cached copies of data in the source area to be invalidated) or a valid flag or other similar element may be used to indicate the records whose content is related to a transfer operation that has not yet completed. Upon completion of the transfer operation, the associated valid flag may then be cleared, indicating that the record may be reused for a subsequent data transfer request.

Όπως αναφέρθηκε νωρίτερα, σε ορισμένες υλοποιήσεις η περιοχή διευθύνσεων προορισμού μπορεί να είναι είτε η εν λόγω τουλάχιστον μια περιοχή διευθύνσεων προέλευσης, είτε η εν λόγω τουλάχιστον μια περιοχή διευθύνσεων προορισμού. Σε μια υλοποίηση, ο ελεγκτής ανακατεύθυνσης μπορεί να διατάσσεται ώστε να λαμβάνει όλα τα αιτήματα πρόσβασης που εκδίδονται στη μνήμη ενώ είναι σε εξέλιξη η λειτουργία μεταφοράς και να καθορίζει ποια από αυτά τα αιτήματα πρόσβασης θα πρέπει να αναχαιτίζονται, ενώ σε άλλες υλοποιήσεις ο ελεγκτής ανακατεύθυνσης μπορεί να λαμβάνει μόνο ένα υποσύνολο των αιτημάτων, με τη διασύνδεση να καθορίζει ποιο υποσύνολο πρόκειται να λάβει ο ελεγκτής ανακατεύθυνσης. Σε μια υλοποίηση ο ελεγκτής ανακατεύθυνσης μπορεί να διατάσσεται, κατά την εκτέλεση της λειτουργίας μεταφοράς, ώστε να αναφέρεται στο χώρο αποθήκευσης ελέγχου για να καθοριστεί κατά πόσο ένα αίτημα πρόσβασης που έχει ληφθεί πρόκειται να αναχαιτιστεί και συνεπώς να υποβληθεί στη λειτουργία ανακατεύθυνσης μνήμης. As mentioned earlier, in some implementations the destination address range can be either said at least one source address range, or said at least one destination address range. In one implementation, the redirection controller may be ordered to receive all access requests issued to memory while the transfer operation is in progress and determine which of those access requests should be intercepted, while in other implementations the redirection controller may to receive only a subset of the requests, with the interface determining which subset the redirect controller is to receive. In one implementation the redirection controller may be ordered, during the execution of the transfer operation, to refer to the control store to determine whether a received access request is to be intercepted and thus submitted to the memory redirection operation.

Συγκεκριμένα, μέσω μιας τέτοιας προσέγγισης, ο ελεγκτής ανακατεύθυνσης μπορεί να ανιχνεύει πότε η διεύθυνση που καθορίζεται από ένα αίτημα πρόσβασης εμπίπτει στην τουλάχιστον μια περιοχή διευθύνσεων προορισμού (όπου η τουλάχιστον μια περιοχή διευθύνσεων προορισμού χρησιμοποιείται ως η περιοχή διευθύνσεων προορισμού) ή στην τουλάχιστον μια περιοχή διευθύνσεων προέλευσης (όπου η τουλάχιστον μια περιοχή διευθύνσεων προέλευσης χρησιμοποιείται ως η περιοχή διευθύνσεων προορισμού) και ανάλογα μπορεί να ανιχνεύει ποια αιτήματα πρόσβασης πρέπει να αναχαιτιστούν. In particular, through such an approach, the redirect controller can detect when the address specified by an access request falls into at least one destination address range (where the at least one destination address range is used as the destination address range) or the at least one address range source address range (where at least one source address range is used as the destination address range) and accordingly can detect which access requests should be intercepted.

Σε περίπτωση όπου η περιοχή διευθύνσεων προορισμού είναι μια αποκλειστική περιοχή διευθύνσεων που σχετίζεται με τη διάταξη, τότε δεν απαιτείται ένας τέτοιος έλεγχος, εφόσον ο ελεγκτής ανακατεύθυνσης μπορεί να διατάσσεται ώστε τα μόνο αιτήματα πρόσβασης που λαμβάνει να είναι τα αιτήματα πρόσβασης που προσδιορίζουν διευθύνσεις που σχετίζονται με την αποκλειστική περιοχή διευθύνσεων της διάταξης και θα εκτελεί τη λειτουργία ανακατεύθυνσης μνήμης για όλα αυτά τα αιτήματα πρόσβασης που έχουν ληφθεί. Ο χώρος αποθήκευσης ελέγχου μπορεί στη συνέχεια να αναφέρεται κατά την εκτέλεση της λειτουργίας ανακατεύθυνσης μνήμης με σκοπό να καθορίζει τον τρόπο ανακατεύθυνσης του αιτήματος πρόσβασης, ανάλογα την τεχνική ανακατεύθυνσης μνήμης που χρησιμοποιείται. In the case where the destination address range is an exclusive address range associated with the provisioning, then no such check is required, since the redirect controller can be provisioned so that the only access requests it receives are access requests that specify addresses associated with the array's exclusive address space and will perform the memory redirection function for all such received access requests. The control store can then be referenced when performing the memory redirection operation to determine how to redirect the access request, depending on the memory redirection technique being used.

Σε μια υλοποίηση, το στοιχείο επεξεργασίας διατάσσεται ώστε να υλοποιεί τη μετάφραση εικονικών διευθύνσεων σε αντίστοιχες φυσικές διευθύνσεις και έχει πρόσβαση σε ένα χώρο αποθήκευσης μετάφρασης διευθύνσεων για την αποθήκευση δεδομένων μετάφρασης διευθύνσεων που χρησιμοποιούνται για τη μετατροπή μιας εικονικής διεύθυνσης σε μια φυσική διεύθυνση εντός μιας σελίδας της εν λόγω μνήμης, με τα εν λόγω δεδομένα μετάφρασης διευθύνσεων να προκύπτουν από πληροφορίες περιγραφέα που αποθηκεύονται σε πίνακες σελίδων εντός της εν λόγω μνήμης, ενώ το αίτημα μεταφοράς δεδομένων εκδίδεται με σκοπό τη μεταφορά δεδομένων από τουλάχιστον μια σελίδα προέλευσης σε τουλάχιστον μια σελίδα προορισμού εντός της μνήμης. Η μετανάστευση δεδομένων από μια ή περισσότερες σελίδες προέλευσης σε μια ή περισσότερες σελίδες προορισμού εντός της μνήμης μπορεί να πραγματοποιείται για έναν αριθμό λόγων εντός των συστημάτων που υλοποιούν εικονική διευθυνσιοδότηση. Για παράδειγμα, μπορεί να είναι επιθυμητή η μετανάστευση ενός αριθμού μη συνεχόμενων σελίδων στη φυσική μνήμη σε μια περιοχή φυσικής μνήμης όπου μπορούν να συγχωνεύονται και να σχηματίζουν μια μεγαλύτερη, συνεχή, φυσική σελίδα (η οποία θα αναφέρεται στο παρόν ως λειτουργία συγκέντρωσης). Εναλλακτικά, μπορεί να είναι επιθυμητή η διαίρεση μιας μεγαλύτερης σελίδας σε έναν αριθμό μικρότερων σελίδων (αναφέρεται ως λειτουργία διασποράς στο παρόν). Η μετανάστευση δεδομένων μπορεί να πραγματοποιείται και για άλλους λόγους, για παράδειγμα η ενεργοποιούμενη μετανάστευση δεδομένων ECC (Error Correction Code ή Κώδικας διόρθωσης σφαλμάτων), η μετανάστευση δεδομένων σε συστήματα μη ομοιόμορφης πρόσβασης μνήμης (non-uniform memory access ή NUMA), κλπ. In one embodiment, the processing element is arranged to implement the translation of virtual addresses to corresponding physical addresses and has access to an address translation store to store address translation data used to translate a virtual address to a physical address within a page of said memory, said address translation data being derived from descriptor information stored in page tables within said memory, and the data transfer request being issued for the purpose of transferring data from at least one source page to at least one destination page within memory. Migration of data from one or more source pages to one or more destination pages in memory can occur for a number of reasons within systems that implement virtual addressing. For example, it may be desirable to migrate a number of non-contiguous pages in physical memory to an area of physical memory where they can be merged to form a larger, contiguous, physical page (referred to herein as a pooling operation). Alternatively, it may be desirable to split a larger page into a number of smaller pages (referred to as a spread operation herein). Data migration can also be done for other reasons, for example ECC (Error Correction Code) enabled data migration, data migration in non-uniform memory access (NUMA) systems, etc.

Στα πλαίσια τέτοιων υλοποιήσεων που χρησιμοποιούν εικονική διευθυνσιοδότηση, είναι επιθυμητή η λήψη μέτρων για τον ενεργό έλεγχο του περιεχομένου των πινάκων σελίδων εντός της μνήμης κατά την εκτέλεση της λειτουργίας μεταφοράς και την ακύρωση ορισμένων εγγραφών στο χώρο αποθήκευσης μετάφρασης διευθύνσεων ώστε να εξασφαλίζεται ότι γίνεται αναφορά σε αυτούς τους ενημερωμένους πίνακες σελίδων για μετέπειτα αιτήματα πρόσβασης που εκδίδονται κατά τη διάρκεια της λειτουργίας μεταφοράς. Για παράδειγμα, σε μια υλοποίηση στην οποία η περιοχή διευθύνσεων προορισμού επιλέγεται ώστε να περιλαμβάνει την εν λόγω τουλάχιστον μια περιοχή διευθύνσεων προορισμού, ο ελεγκτής διευθέτησης μπορεί να διατάσσεται, προτού ο ελεγκτής μεταφοράς δεδομένων εκτελέσει την εν λόγω λειτουργία μεταφοράς, ώστε να εκδίδει ένα σήμα ελέγχου και να προκαλεί την ενημέρωση των πινάκων σελίδων εντός της εν λόγω μνήμης ώστε οι εικονικές διευθύνσεις που μεταφράστηκαν σε φυσικές διευθύνσεις εντός της εν λόγω τουλάχιστον μιας περιοχής διευθύνσεων προέλευσης θα μεταφράζονται αντ’ αυτού σε φυσικές διευθύνσεις εντός της εν λόγω τουλάχιστον μιας περιοχής διευθύνσεων προορισμού, με τον ελεγκτή διευθέτησης να εκδίδει περαιτέρω ένα σήμα ελέγχου που προκαλεί την ακύρωση εντός του χώρου αποθήκευσης μετάφρασης διευθύνσεων οποιωνδήποτε εγγραφών που παρέχουν δεδομένα μετάφρασης διευθύνσεων για τα δεδομένα που θα υποβληθούν στη λειτουργία μεταφοράς. In such implementations using virtual addressing, it is desirable to take steps to actively check the contents of the in-memory page tables during the transfer operation and to invalidate certain entries in the address translation store to ensure that they are referenced the updated page tables for subsequent access requests issued during the transfer operation. For example, in an embodiment in which the destination address range is selected to include said at least one destination address range, the settlement controller may be ordered, before the data transfer controller performs said transfer operation, to issue a control signal and causing the page tables within said memory to be updated so that virtual addresses that were translated to physical addresses within said at least one source address range will instead be translated to physical addresses within said at least one destination address range, with the settlement controller to further issue a control signal that causes any records providing address translation data for the data to be subjected to the transfer operation to be invalidated within the address translation store.

Με τη λήψη τέτοιων μέτρων, μπορεί να εξασφαλίζεται ότι οι ληγμένες πληροφορίες στο χώρο αποθήκευσης μετάφρασης διευθύνσεων δε θα χρησιμοποιούνται για μετέπειτα αιτήματα πρόσβασης που εκδίδονται όσον αφορά στα δεδομένα τα οποία υποβάλλονται στη λειτουργία μεταφοράς και αντίθετα ότι θα γίνεται αναφορά στους ενημερωμένους πίνακες σελίδων, ως αποτέλεσμα των οποίων οποιαδήποτε τέτοια αιτήματα πρόσβασης θα καθορίζουν διευθύνσεις εντός της τουλάχιστον μιας περιοχής διευθύνσεων προορισμού και ανάλογα θα αναχαιτίζονται από τον ελεγκτή ανακατεύθυνσης. By taking such measures, it can be ensured that the expired information in the address translation store will not be used for subsequent access requests issued for the data submitted to the transfer operation and instead will be referenced in the updated page tables, as a result of which any such access requests will specify addresses within at least one destination address range and will accordingly be intercepted by the redirect controller.

Όπως αναφέρθηκε νωρίτερα, σε μια υλοποίηση, ο ελεγκτής διευθέτησης μπορεί να εκδίδει σήματα ελέγχου ώστε να ενημερώνει απευθείας τους πίνακες σελίδων και/ή να προκαλεί άμεσα την ακύρωση των σχετικών εγγραφών στο χώρο αποθήκευσης μετάφρασης διευθύνσεων. Ωστόσο, σε μια εναλλακτική υλοποίηση το(α) σήμα(τα) ελέγχου που εκδίδεται(ονται) από τον ελεγκτή διευθέτησης μπορεί(ούν) να λαμβάνει(ουν) τη μορφή ενός σήματος αναγνώρισης που επιστρέφεται στο στοιχείο επεξεργασίας που εξέδωσε το αίτημα μεταφοράς δεδομένων, με αυτό το στοιχείο επεξεργασίας να αποκρίνεται σε ένα τέτοιο σήμα επιβεβαίωσης για την πραγματοποίηση της απαιτούμενης ενημέρωσης στους πίνακες σελίδων στη μνήμη και την ακύρωση των σχετικών εγγραφών στο χώρο αποθήκευσης μετάφρασης διευθύνσεών του. Σε συστήματα στα οποία παρέχονται πολλά στοιχεία επεξεργασίας τα οπαία μπορούν να έχουν πρόσβαση στη μνήμη, αυτό το στοιχείο επεξεργασίας μπορεί επίσης να εκπέμπει ένα σήμα στα άλλα στοιχεία επεξεργασίας το οποίο τα εξαναγκάζει να ακυρώνουν τις σχετικές εγγραφές στους τοπικούς τους χώρους αποθήκευσης μετάφρασης διευθύνσεων. As mentioned earlier, in one embodiment, the settlement controller may issue control signals to directly update the page tables and/or directly cause the corresponding entries in the address translation store to be invalidated. However, in an alternative embodiment the control signal(s) issued by the settlement controller may take the form of an acknowledgment signal returned to the processing element that issued the data transfer request, with that processing element responding to such an acknowledgment signal to effect the required update to the in-memory page tables and cancel the associated entries in its address translation store. In systems where multiple processing elements are provided that can access memory, that processing element can also issue a signal to the other processing elements that causes them to invalidate the relevant entries in their local address translation stores.

Μολονότι είναι δυνατή η έκδοση ξεχωριστών σημάτων ελέγχου από τον ελεγκτή διευθέτησης που προκαλούν την ενημέρωση των πινάκων σελίδων και την ακύρωση των σχετικών εγγραφών εντός του χώρου αποθήκευσης μετάφρασης διευθύνσεων, σε μια υλοποίηση είναι δυνατή η έκδοση ενός μοναδικού σήματος ελέγχου που προκαλεί την πραγματοποίηση και των δύο βημάτων. Although it is possible to issue separate control signals from the settlement controller that cause the page tables to be updated and the associated entries within the address translation store to be invalidated, in one implementation it is possible to issue a single control signal that causes both to occur steps.

Όπως αναφέρθηκε νωρίτερα, σε μια εναλλακτική υλοποίηση στην οποία η(οι) περιοχή (ές) διευθύνσεων προέλευσης χρησιμοποιείται(ούνται) για τις διευθύνσεις προορισμού, τότε είναι δυνατή η καθυστέρηση της ενημέρωσης των πινάκων σελίδων και η ακύρωση των σχετικών εγγραφών του χώρου αποθήκευσης μετάφρασης διευθύνσεων μέχρι να ολοκληρωθεί η λειτουργία μεταφοράς. As mentioned earlier, in an alternative implementation in which the source address range(s) is (are) used for the destination addresses, then it is possible to delay the update of the page tables and invalidate the associated address translation store entries until the transfer operation is complete.

Οι υλοποιήσεις που περιγράφονται παραπάνω μπορούν να παρέχουν σημαντικά πλεονεκτήματα απόδοσης σε σύγκριση με την προηγούμενη, ελεγχόμενη από το λειτουργικό σύστημα μετανάστευση των δεδομένων στη φυσική μνήμη. Συγκεκριμένα, στις υλοποιήσεις που περιγράφονται παραπάνω στις οποίες η τουλάχιστον μια περιοχή διευθύνσεων προορισμού ή η τουλάχιστον μια περιοχή διευθύνσεων προέλευσης χρησιμοποιείται ως μια περιοχή διευθύνσεων προορισμού, η ακύρωση των σχετικών εγγραφών εντός του χώρου αποθήκευσης μετάφρασης διευθύνσεων (ο οποίος μπορεί να είναι για παράδειγμα μια προσωρινή μνήμη παράβλεψης μετάφρασης (translation lookaside buffer ή TLB)) χρειάζεται να συμβεί μόνο μια φορά κατά την εκτέλεση της διαδικασίας μεταφοράς δεδομένων. Σε αντίθεση, όταν υιοθετείται η γνωστή, ελεγχόμενη από το λειτουργικό σύστημα προσέγγιση, οι πίνακες σελίδων στη μνήμη θα ενημερώνονταν αρχικά απλά για την αλλαγή των δικαιωμάτων πρόσβασης για την περιοχή διευθύνσεων προέλευσης σε ανάγνωση μόνο, αλλά χωρίς αλλαγή της αντιστοίχισης διευθύνσεων, και ταυτόχρονα η σχετική περιοχή διευθύνσεων εντός των δομών TLB θα ακυρωνόταν ώστε να εξασφαλίζεται ότι θα πραγματοποιείται αναφορά στις ενημερωμένες πληροφορίες πινάκων σελίδων. Μια τέτοια προσέγγιση θα εξασφάλιζε ότι οποιεσδήποτε προσβάσεις εγγραφής που εκδίδονται κατά τη διάρκεια της λειτουργίας μεταφοράς δεδομένων υπό έλεγχο λογισμικού, θα εμποδίζονταν. Με την ολοκλήρωση της λειτουργίας μεταφοράς, οι πίνακες σελίδων θα ενημερώνονταν και πάλι, αυτή τη φορά ώστε να υποδεικνύουν τις περιοχές διευθύνσεων προορισμού και να απομακρύνουν τον περιορισμό ανάγνωσης μόνο και πάλι αυτό θα απαιτούσε την ακύρωση της σχετικής περιοχής διευθύνσεων εντός τη δομής TLB ώστε να εξασφαλίζεται ότι θα πραγματοποιείται αναφορά στο ενημερωμένο περιεχόμενο των πινάκων σελίδων. The implementations described above can provide significant performance advantages over prior operating system-controlled migration of data to physical memory. In particular, in the embodiments described above in which the at least one destination address range or the at least one source address range is used as a destination address range, invalidating the associated entries within the address translation store (which may be, for example, a temporary translation lookaside buffer (TLB)) need only occur once during the execution of the data transfer process. In contrast, when the familiar operating system-controlled approach is adopted, the in-memory page tables would initially be updated simply to change the access rights for the source address range to read-only, but without changing the address mapping, and at the same time the associated address range within the TLB structures would be invalidated to ensure that the updated page table information is referenced. Such an approach would ensure that any write accesses issued during the software-controlled data transfer operation would be blocked. Upon completion of the transfer operation, the page tables would again be updated, this time to indicate the destination address ranges and remove the read-only restriction, again this would require invalidating the relevant address range within the TLB structure to ensure that a reference will be made to the updated content of the page tables.

Οι ακυρώσεις TLB μπορεί να προκαλούν σημαντικά ζητήματα απόδοσης. Για παράδειγμα, συμβαίνει συχνά να υπάρχουν πολλά στοιχεία επεξεργασίας στο σύστημα και η ακύρωση TLB πρέπει να πραγματοποιείται όσον αφορά σε κάθε τέτοιο στοιχείο επεξεργασίας μέσω της χρήσης μιας κατάλληλης λειτουργίας εκπομπής. Περαιτέρω, κάθε στοιχείο επεξεργασίας το οποίο στη συνέχεια απαιτεί τη χρήση της περιοχής θα πρέπει να εκτελεί μια νέα διαδικασία βάδισης στους πίνακες σελίδων για την ανακάλυψη της νέας μετάφρασης, ενώ οι βαδίσεις στους πίνακες σελίδων αυξάνουν σημαντικά τον λανθάνοντα χρόνο των προσβάσεων στη μνήμη που αστοχούν στην TLB, εφόσον απαιτούν πολλαπλές εξαρτώμενες προσβάσεις μνήμης στους πίνακες σελίδων οι οποίες πρέπει να διατάσσονται σειριακά για να είναι δυνατή η εξυπηρέτηση του αιτήματος πρόσβασης. Συνεπώς, είναι δυνατή η επίτευξη σημαντικών πλεονεκτημάτων απόδοσης με τη μείωση του αριθμού ακυρώσεων TLB που απαιτούνται κατά τη διάρκεια μιας τέτοιας λειτουργίας μετανάστευσης σελίδων. TLB cancellations can cause significant performance issues. For example, it is often the case that there are many processing elements in the system, and TLB cancellation must be performed with respect to each such processing element through the use of an appropriate broadcast function. Furthermore, each processing element that subsequently requires the use of the region must perform a new page-table walk to discover the new translation, and page-table walks significantly increase the latency of memory accesses that fail to TLB, since they require multiple dependent memory accesses to the page tables that must be serialized to service the access request. Therefore, significant performance benefits can be achieved by reducing the number of TLB cancellations required during such a page migration operation.

Σε μια υλοποίηση, με την ολοκλήρωση της λειτουργίας μεταφοράς, αποτρέπεται η αναχαίτιση ενός μετέπειτα αιτήματος πρόσβασης από τον ελεγκτή ανακατεύθυνσης το οποίο προσδιορίζει μια διεύθυνση προορισμού εντός της περιοχής διευθύνσεων προορισμού. Στις υλοποιήσεις που περιγράφονται παραπάνω, στις οποίες η τουλάχιστον μια περιοχή διευθύνσεων προορισμού χρησιμοποιείται ως η περιοχή διευθύνσεων προορισμού, θα σημειωθεί ότι σε αυτό το σημείο δεν απαιτούνται περαιτέρω βήματα, εφόσον οι πίνακες σελίδων θα έχουν ήδη ενημερωθεί ώστε να υποδεικνύουν τη(ις) σωστή(ές) περιοχή(ές) διευθύνσεων και ανάλογα μόλις απαγορευτεί ο μηχανισμός αναχαίτισης του ελεγκτή ανακατεύθυνσης, οι προσβάσεις θα κατευθύνονται φυσικά στη σωστή θέση εντός της φυσικής μνήμης. In one implementation, upon completion of the transfer operation, a subsequent access request is prevented from being intercepted by the redirect controller that specifies a destination address within the destination address range. In the implementations described above in which the at least one destination address range is used as the destination address range, it will be noted that no further steps are required at this point since the page tables will already have been updated to indicate the correct ( s) address range(s) and accordingly once the redirect controller's interception mechanism is disabled, accesses will naturally be directed to the correct location within physical memory.

Σε πολλά συστήματα, τα στοιχεία επεξεργασίας έχουν συσχετισμένες δομές κρυφής μνήμης για την αποθήκευση σε κρυφή μνήμη δεδομένων στα οποία έχει πραγματοποιηθεί πρόσβαση στη μνήμη, ενώ χρησιμοποιείται ένα πρωτόκολλο συνοχής κρυφής μνήμης το οποίο εξασφαλίζει τη συνοχή μεταξύ των αποθηκευμένων σε κρυφή μνήμη δεδομένων και των αποθηκευμένων στη μνήμη δεδομένων. Το πρωτόκολλο συνοχής κρυφής μνήμης μπορεί στη συνέχεια να χρησιμοποιείται σε σχέση με αιτήματα πρόσβασης που εκδίδονται από τον ελεγκτή μεταφοράς δεδομένων κατά τη διάρκεια εκτέλεσης της λειτουργίας μεταφοράς ώστε να εξασφαλίζεται η πρόσβαση σε μια πλέον ενημερωμένη έκδοση δεδομένων τα οποία προσδιορίζονται από τα εν λόγω αιτήματα πρόσβασης από τον ελεγκτή μεταφοράς δεδομένων. In many systems, processing elements have associated cache structures to cache data that has been accessed in memory, and a cache coherency protocol is used to ensure consistency between cached data and data stored in data memory. The cache coherency protocol may then be used in connection with access requests issued by the data transfer controller during execution of the transfer operation to ensure access to a more up-to-date version of data identified by said access requests from the data transfer controller.

Οι λειτουργίες μετανάστευσης δεδομένων που περιγράφονται παραπάνω μπορούν να οδηγήσουν σε μη αποτελεσματική χρησιμοποίηση του χώρου αποθήκευσης κρυφής μνήμης, εφόσον μπορεί να έχει ως αποτέλεσμα την αποθήκευση σε κρυφή μνήμη των ίδιων δεδομένων τόσο για την(ις) περιοχή(ές) διευθύνσεων προέλευσης, όσο και για την(ις) περιοχή(ές) διευθύνσεων προορισμού. Ωστόσο, σε μια υλοποίηση ο ελεγκτής μεταφοράς δεδομένων μπορεί να διατάσσεται ώστε να απελευθερώνει χώρο εντός τέτοιων δομών κρυφής μνήμης κατά την εκτέλεση της λειτουργίας μεταφοράς δεδομένων. Συγκεκριμένα, ο ελεγκτής μεταφοράς δεδομένων μπορεί να διατάσσεται, κατά την έκδοση αιτημάτων πρόσβασης για ανάγνωση και την εκτέλεση της λειτουργίας μεταφοράς, ώστε να διαβάζει τα δεδομένα εντός της εν λόγω τουλάχιστον μιας περιοχής διευθύνσεων προέλευσης, για τη χρήση ενός καθορισμένου τύπου αιτήματος πρόσβασης για ανάγνωση το οποίο προκαλεί την ακύρωση οποιωνδήποτε αποθηκευμένων σε κρυφή μνήμη αντιγράφων αυτών των δεδομένων κατά την εφαρμογή του πρωτοκόλλου συνοχής κρυφής μνήμης. The data migration operations described above can result in inefficient use of cache storage space, as it can result in the same data being cached for both the source address range(s) and the destination address range(s). However, in one embodiment the data transfer controller may be arranged to free space within such cache structures when performing the data transfer operation. In particular, the data transfer controller may be directed, when issuing read access requests and performing the transfer operation, to read the data within said at least one source address range, to use a specified type of read access request the which causes any cached copies of this data to be invalidated when implementing the cache coherency protocol.

Σε μια συγκεκριμένη υλοποίηση, ο καθορισμένος τύπος αιτήματος πρόσβασης για ανάγνωση είναι ένα αίτημα αποκλειστικής πρόσβασης για ανάγνωση. Όταν εκδίδεται ένα τέτοιο αίτημα αποκλειστικής πρόσβασης για ανάγνωση, τότε ένα κύκλωμα συνοχής κρυφής μνήμης εντός του συστήματος θα εκτελεί λειτουργίες συνοχής όσον αφορά στις σχετικές δομές κρυφής μνήμης με σκοπό τον προσδιορισμό της πλέον ενημερωμένης έκδοσης των δεδομένων (εάν κάποια δομή κρυφής μνήμης τηρεί μια έκδοση των δεδομένων η οποία είναι πιο ενημερωμένη από την έκδοση στη μνήμη), με αυτή την έκδοση των δεδομένων να επιστρέφεται στον ελεγκτή μεταφοράς δεδομένων. Περαιτέρω, το πρωτόκολλο συνοχής κρυφής μνήμης θα απαιτεί την ακύρωση κάθε αντιγράφου αποθηκευμένου στην κρυφή μνήμη και ανάλογα μια τέτοια διαδικασία θα απελευθερώνει φυσικά χώρο από οποιεσδήποτε δομές κρυφής μνήμης τηρούν ένα αντίγραφο των δεδομένων στη διεύθυνση προέλευσης. In a particular implementation, the specified type of read access request is a read-only access request. When such a read-only access request is issued, then a cache coherency circuit within the system will perform coherency operations on the relevant cache structures to determine the most up-to-date version of the data (if any cache structure holds a version of data that is more up-to-date than the version in memory), with that version of the data being returned to the data transfer controller. Further, the cache coherency protocol will require that each cached copy be invalidated, and accordingly such a process will naturally free space from any cache structures holding a copy of the data at the source address.

Αυτή η διαδικασία μπορεί να είναι ιδιαίτερα επωφελής σε συστήματα στα οποία παρέχονται πολλαπλά στοιχεία επεξεργασίας, κάθε ένα από τα οποία έχει τη δική του συσχετισμένη δομή κρυφής μνήμης ή δομές κρυφής μνήμης, εφόσον επωφελούμενες από τους κανόνες του πρωτοκόλλου συνοχής κρυφής μνήμης, πολλές από αυτές τις δομές κρυφής μνήμης μπορεί να ακυρώνουν κάθε αντίγραφο των δεδομένων το οποίο έχουν αποθηκεύσει στην κρυφή μνήμη σε συσχετισμό με την περιοχή διευθύνσεων προέλευσης, παρέχοντας συνεπώς σημαντικά οφέλη σε σχέση με το βαθμό χρησιμοποίησης της κρυφής μνήμης. This process can be particularly beneficial in systems where multiple processing elements are provided, each of which has its own associated cache structure or cache structures, since by benefiting from the rules of the cache coherency protocol, many of these cache structures may invalidate each copy of the data they have cached in association with the source address range, thereby providing significant cache utilization benefits.

Η λειτουργία μεταφοράς που εκτελείται από τον ελεγκτή μεταφοράς δεδομένων μπορεί να λαμβάνει έναν αριθμό μορφών, αλλά σε μια υλοποίηση χρησιμοποιείται για να εκτελεί έναν από τους ακόλουθους τύπους μεταφοράς δεδομένων: μια συγκέντρωση δεδομένων από πολλές περιοχές διευθύνσεων προέλευσης σε μια μοναδική περιοχή διευθύνσεων προορισμού, μια διασπορά δεδομένων από μια μοναδική περιοχή διευθύνσεων προέλευσης σε πολλές περιοχές διευθύνσεων προορισμού ή μια μεταφορά δεδομένων από μια περιοχή διευθύνσεων προέλευσης σε μια περιοχή διευθύνσεων προορισμού ίδιου μεγέθους. The transfer operation performed by the data transfer controller can take a number of forms, but in one implementation it is used to perform one of the following types of data transfer: a pooling of data from multiple source address ranges into a single destination address range, a spread of data from a single source address range to multiple destination address ranges, or a transfer of data from a source address range to a destination address range of the same size.

Επιπλέον, η λειτουργία μεταφοράς μπορεί να περιλαμβάνει μια λειτουργία μετακίνησης ή μια λειτουργία αντιγραφής. Σύμφωνα με μια λειτουργία αντιγραφής, τα δεδομένα αντιγράφονται από την τουλάχιστον μια περιοχή διευθύνσεων προέλευσης στην τουλάχιστον μια περιοχή διευθύνσεων προορισμού, αλλά τα δεδομένα στην περιοχή διευθύνσεων προέλευσης επίσης διατηρούνται ως έγκυρα. Σύμφωνα με μια λειτουργία μετακίνησης, τα δεδομένα μεταφέρονται από την τουλάχιστον μια περιοχή διευθύνσεων προέλευσης στην τουλάχιστον μια περιοχή διευθύνσεων προορισμού, ενώ τα δεδομένα στην τουλάχιστον μια περιοχή διευθύνσεων προέλευσης ακυρώνονται (για παράδειγμα με την έκδοση ξεχωριστών εντολών διαγραφής εάν απαιτείται). In addition, the transfer function may include a move function or a copy function. According to a copy operation, data is copied from the at least one source address range to the at least one destination address range, but the data in the source address range is also kept as valid. According to a move operation, data is moved from the at least one source address range to the at least one destination address range, while the data in the at least one source address range is invalidated (for example by issuing separate delete commands if required).

Σε μια υλοποίηση, η διάταξη που περιγράφεται παραπάνω μπορεί να χρησιμοποιείται εντός μιας διασύνδεσης ενός συστήματος. Συγκεκριμένα, μπορεί να παρέχεται ένα σύστημα το οποίο περιλαμβάνει: ένα πλήθος στοιχείων επεξεργασίας και μια διασύνδεση συνδεδεμένη με το εν λόγω πλήθος στοιχείων επεξεργασίας και για τον έλεγχο της πρόσβασης σε μια μνήμη από το εν λόγω πλήθος στοιχείων επεξεργασίας, με τη διασύνδεση να έχει μια μηχανή μεταφοράς διαμορφωμένη από μια διάταξη σύμφωνα με τις υλοποιήσεις που περιγράφονται παραπάνω, για την εκτέλεση μιας λειτουργίας μεταφοράς για λογαριασμό ενός από τα στοιχεία επεξεργασίας με σκοπό τη μεταφορά δεδομένων από τουλάχιστον μια περιοχή διευθύνσεων προέλευσης σε τουλάχιστον μια περιοχή διευθύνσεων προορισμού, επιτρέποντας ταυτόχρονα τη συνέχιση της επεξεργασίας των αιτημάτων πρόσβασης που έχουν εκδοθεί από το πλήθος στοιχείων επεξεργασίας όσον αφορά στα δεδομένα τα οποία υποβάλλονται στη λειτουργία μεταφοράς κατά την εκτέλεση της λειτουργία μεταφοράς. In one embodiment, the arrangement described above may be used within a system interface. In particular, a system may be provided which includes: a plurality of processing elements and an interface connected to said plurality of processing elements and for controlling access to a memory by said plurality of processing elements, the interface having a machine transfer configured by an arrangement according to the embodiments described above, for performing a transfer operation on behalf of one of the processing elements for the purpose of transferring data from at least one source address range to at least one destination address range while allowing processing to continue of the access requests issued by the plurality of processing elements with respect to the data submitted to the transfer operation during the execution of the transfer operation.

Συνεπώς, η μηχανή μεταφοράς παρέχει ένα μηχανισμό υλικού εντός της διασύνδεσης στον οποίο τα στοιχεία επεξεργασίας μπορούν να αποφορτώνουν αιτήματα μεταφοράς δεδομένων, με αυτή τη μηχανή μεταφοράς να έχει τη δυνατότητα εκτέλεσης της απαιτούμενης λειτουργίας μεταφοράς στο παρασκήνιο με έναν τρόπο ο οποίος είναι διαφανής στο λογισμικό που εκτελείται στα στοιχεία επεξεργασίας. Συγκεκριμένα, είναι ωστόσο δυνατή η επεξεργασία των μετέπειτα αιτημάτων πρόσβασης που εκδίδονται από οποιοδήποτε στοιχείο επεξεργασίας όσον αφορά στα δεδομένα τα οποία υποβάλλονται στη λειτουργία μεταφοράς χωρίς να αναμένεται η ολοκλήρωση της λειτουργίας μεταφοράς, με την αναχαίτιση τέτοιων αιτημάτων πρόσβασης από τον ελεγκτή ανακατεύθυνσης της μηχανής μεταφοράς και την εκτέλεση της συσχετισμένης λειτουργίας ανακατεύθυνσης μνήμης με σκοπό την επεξεργασία αυτών των αιτημάτων πρόσβασης. Accordingly, the transfer engine provides a hardware mechanism within the interface to which processing elements can offload data transfer requests, with this transfer engine having the ability to perform the required transfer operation in the background in a manner that is transparent to the software that is performed on the processing elements. In particular, it is however possible to process subsequent access requests issued by any processing element with respect to data submitted to the transport operation without waiting for the transport operation to complete, by intercepting such access requests by the transport engine's redirection controller, and executing the associated memory redirection function in order to process these access requests.

Όταν η μηχανή μεταφοράς χρησιμοποιείται εντός της διασύνδεσης με τον τρόπο που περιγράφεται παραπάνω, μπορεί να διατάσσεται ώστε να αποκρίνεται και σε άλλα σήματα εισόδου για τον έλεγχο της εκτέλεσης της λειτουργίας μεταφοράς. Για παράδειγμα, η διασύνδεση θα έχει ένα ορισμένο μέγιστο εύρος ζώνης, ενώ θα δρομολογείται και άλλη κίνηση μέσω της διασύνδεσης κατά το χρόνο εκτέλεσης της λειτουργίας μεταφοράς από τη μηχανή μεταφοράς. Η εκτέλεση της λειτουργίας μεταφοράς απαιτεί την έκδοση ενός αριθμού αιτημάτων πρόσβασης για ανάγνωση και εγγραφής από τη μηχανή μεταφοράς με σκοπό την ανάγνωση των δεδομένων από τη μνήμη και την εγγραφή των δεδομένων και πάλι στη μνήμη και αυτό μπορεί να έχει επίπτωση στο εύρος ζώνης που είναι διαθέσιμο για άλλες λειτουργίες. Ωστόσο, σε μια υλοποίηση η μηχανή μεταφοράς μπορεί να διατάσσεται ώστε να αποκρίνεται σε μια ένδειξη χρήσης του εύρους ζώνης εντός της διασύνδεσης για την επιβράδυνση της εκτέλεσης της λειτουργίας μεταφοράς. Συνεπώς, κατά τη διάρκεια περιόδων με μεγάλη κίνηση ή περιόδων εκτέλεσης λειτουργιών ευαίσθητων στο λανθάνοντα χρόνο, η μηχανή μεταφοράς μπορεί να διατάσσεται ώστε να επιβραδύνει την εκτέλεση της λειτουργίας μεταφοράς και να κάνει μικρότερη χρήση του εύρους ζώνης, απελευθερώνοντας συνεπώς εύρος ζώνης για χρήση από άλλες λειτουργίες. Εφόσον η λειτουργία μεταφοράς εκτελείται ως μια εργασία υπόβαθρου και δεν απαιτεί τη φραγή των μετέπειτα αιτημάτων πρόσβασης, η αύξηση του χρόνου που απαιτείται για την εκτέλεση της λειτουργίας μεταφοράς όταν αυτή επιβραδύνεται με έναν τέτοιο τρόπο, δε γίνεται προβληματική. Συνεπώς, η περιγραφείσα τεχνική παρέχει σημαντικά βελτιωμένη ευελιξία, εφόσον η λειτουργία μεταφοράς μπορεί να εκτελείται ως μια εργασία υπόβαθρου λαμβάνοντας υπόψη τις απαιτήσεις άλλων λειτουργιών που εκτελούνται εντός του συστήματος, και συγκεκριμένα το εύρος ζώνης εντός της διασύνδεσης που απαιτείται από τέτοιες λειτουργίες. When the transfer engine is used within the interface in the manner described above, it can be arranged to respond to other input signals to control the execution of the transfer function. For example, the interface will have a certain maximum bandwidth, and other traffic will be routed through the interface at runtime of the transport operation by the transport engine. Running the transfer operation requires a number of read and write access requests to be issued by the transfer engine in order to read data from memory and write data back to memory and this can impact the bandwidth available for other functions. However, in one embodiment the transport engine may be arranged to respond to an indication of bandwidth usage within the interface to slow down the execution of the transport operation. Therefore, during periods of heavy traffic or periods of running latency-sensitive operations, the transport engine can be ordered to slow down the execution of the transport operation and make less use of bandwidth, thereby freeing up bandwidth for use by other operations . Since the transfer operation is performed as a background task and does not require subsequent access requests to be blocked, the increase in time required to execute the transfer operation when it is slowed down in such a way does not become problematic. Therefore, the described technique provides significantly improved flexibility since the transfer function can be performed as a background task taking into account the requirements of other functions performed within the system, in particular the bandwidth within the interface required by such functions.

Σε μια υλοποίηση, σε περιπτώσεις στις οποίες κάθε μια από πολλές ξεχωριστές μνήμες συσχετίζεται με μια διασύνδεση, μπορεί να χρησιμοποιείται ένα σύστημα τύπου NUMA. Ανάλογα, το σύστημα σε μια τέτοια διάταξη μπορεί να περιλαμβάνει επιπλέον: μια επιπλέον διασύνδεση συνδεδεμένη με την εν λόγω διασύνδεση και για τον έλεγχο της πρόσβασης σε μια επιπλέον μνήμη από το εν λόγω πλήθος στοιχείων επεξεργασίας, με την επιπλέον διασύνδεση να έχει μια επιπλέον μηχανή μεταφοράς διαμορφωμένη από μια διάταξη όπως αξιώνεται σε οποιαδήποτε προηγούμενη αξίωση, για την εκτέλεση μιας λειτουργίας μεταφοράς για λογαριασμό ενός από τα στοιχεία επεξεργασίας με σκοπό τη μεταφορά δεδομένων από τουλάχιστον μια περιοχή διευθύνσεων προέλευσης σε τουλάχιστον μια περιοχή διευθύνσεων προορισμού, επιτρέποντας ταυτόχρονα τη συνέχιση της επεξεργασίας των αιτημάτων πρόσβασης που εκδίδονται από το πλήθος των στοιχείων επεξεργασίας όσον αφορά στα δεδομένα τα οποία υποβάλλονται στη λειτουργία μεταφοράς, ενώ εκτελείται η λειτουργία μεταφοράς. In one embodiment, in cases where each of several separate memories is associated with an interface, a NUMA-like system may be used. Accordingly, the system in such an arrangement may further include: an additional interface connected to said interface and for controlling access to an additional memory by said plurality of processing elements, the additional interface having an additional transfer engine configured by an arrangement as claimed in any preceding claim, for performing a transfer operation on behalf of one of the processing elements for the purpose of transferring data from at least one source address range to at least one destination address range while allowing the processing of requests to continue access rights issued by the plurality of processing elements with respect to the data submitted to the transfer operation while the transfer operation is being performed.

Συνεπώς, σε τέτοιες υλοποιήσεις, θα παρέχεται μια μηχανή μεταφοράς εντός κάθε διασύνδεσης, και συνεπώς σε συσχέτιση με κάθε μνήμη. Therefore, in such implementations, a transport engine will be provided within each interface, and thus in association with each memory.

Υπάρχει ένας αριθμός τρόπων με τους οποίους είναι δυνατός ο έλεγχος των μεμονωμένων μηχανών μεταφοράς για την εκτέλεση των απαιτούμενων λειτουργιών μεταφοράς. Σε μια υλοποίηση, χρησιμοποιείται η μηχανή μεταφοράς για τη διαχείριση της λειτουργίας μεταφοράς όταν η τουλάχιστον μια περιοχή διευθύνσεων προορισμού βρίσκεται εντός της εν λόγω μνήμης, ενώ η επιπλέον μηχανή μεταφοράς χρησιμοποιείται για τη διαχείριση της λειτουργίας μεταφοράς όταν η τουλάχιστον μια περιοχή διευθύνσεων προορισμού βρίσκεται εντός της εν λόγω επιπλέον μνήμης. There are a number of ways in which individual transfer machines can be controlled to perform the required transfer functions. In one embodiment, the transfer engine is used to manage the transfer operation when the at least one destination address range is within said memory, while the additional transfer engine is used to manage the transfer operation when the at least one destination address range is within the said extra memory.

Συνεπώς, σε μια τέτοια υλοποίηση, η μηχανή μεταφοράς που συσχετίζεται με τη μνήμη που περιλαμβάνει την τουλάχιστον μια περιοχή διευθύνσεων προορισμού χρησιμοποιείται για τη διαχείριση της λειτουργίας μεταφοράς. Ακόμη και στην περίπτωση στην οποία η τουλάχιστον μια περιοχή διευθύνσεων προέλευσης βρίσκεται εντός μιας διαφορετικής μνήμης, αυτή η μηχανή αναφοράς μπορεί εν τούτοις να εκτελεί τη λειτουργία μεταφοράς, μέσω της σύνδεσής της με την άλλη διασύνδεση ή τις διασυνδέσεις. Accordingly, in such an embodiment, the transfer engine associated with the memory comprising the at least one destination address range is used to manage the transfer operation. Even in the case where the at least one source address range is within a different memory, this reference engine can still perform the transfer function, through its connection to the other interface or interfaces.

Θα περιγραφούν τώρα συγκεκριμένες υλοποιήσεις αναφορικά με τα σχεδιαγράμματα. Το Σχήμα 1 είναι ένα διάγραμμα βαθμιδών ενός συστήματος που περιλαμβάνει μια μηχανή μεταφοράς 35 σύμφωνα με μια υλοποίηση. Το σύστημα περιλαμβάνει το πλήθος στοιχείων επεξεργασίας 10, 20 τα οποία συνδέονται μέσω μιας διασύνδεσης 30 με μια μνήμη 40. Μολονότι δείχνονται δύο στοιχεία επεξεργασίας για λόγους απλότητας, θα εκτιμηθεί το γεγονός ότι σε οποιαδήποτε συγκεκριμένη υλοποίηση μπορεί να υπάρχει ένας διαφορετικός αριθμός στοιχείων επεξεργασίας συνδεδεμένων με τη διασύνδεση. Specific embodiments will now be described with respect to the diagrams. Figure 1 is a block diagram of a system including a transport engine 35 according to one embodiment. The system includes a plurality of processing elements 10, 20 which are connected via an interface 30 to a memory 40. Although two processing elements are shown for simplicity, it will be appreciated that in any particular embodiment there may be a different number of processing elements connected to the interface.

Τα στοιχεία επεξεργασίας που δείχνονται χρησιμοποιούν σχήματα εικονικής διευθυνσιοδότησης και κατά συνέπεια οι εικονικές διευθύνσεις θα μετατρέπονται σε φυσικές διευθύνσεις εντός της μνήμης 40, ώστε όταν ένα στοιχείο επεξεργασίας εκδίδει ένα αίτημα πρόσβασης που αποσκοπεί στην προσπέλαση μιας θέσης στη μνήμη, αυτό το αίτημα πρόσβασης όπως προωθείται στη διασύνδεση 30 προσδιορίζει τη φυσική διεύθυνση της προς προσπέλαση θέσης εντός της μνήμης. Σε έναν τυπικό τρόπο, η μνήμη 40 μπορεί να οργανώνεται σε ένα πλήθος σελίδων, ενώ μπορούν να παρέχονται πίνακες σελίδων 45 εντός της μνήμης οι οποίοι περιλαμβάνουν περιγράφεις που χρησιμοποιούνται για να προσδιοριστεί ο τρόπος με τον οποίο οι εικονικές διευθύνσεις θα πρέπει να μεταφράζονται σε αντίστοιχες φυσικές διευθύνσεις. Κάθε στοιχείο επεξεργασίας 10, 20 μπορεί να έχει μια συσχετισμένη προσωρινή μνήμη παράβλεψης μετάφρασης (TLB) 15, 25 στην οποία είναι δυνατή η προσωρινή αποθήκευση των δεδομένων μετάφρασης διευθύνσεων που προκύπτουν από τους πίνακες σελίδων 45 για τη βελτίωση της ταχύτητας μετάφρασης από εικονικές σε φυσικές διευθύνσεις. Συγκεκριμένα, όταν εκδίδεται μια εικονική διεύθυνση η οποία δεν ευστοχεί στην TLB, είναι απαραίτητη η εκτέλεση μιας λειτουργίας βάδισης στους πίνακες σελίδων όσον αφορά στους πίνακες σελίδων 45 στη μνήμη 40 με σκοπό τη διαδοχική διάσχιση πολλών πινάκων σελίδων για τη δημιουργία των απαραίτητων δεδομένων μετάφρασης διευθύνσεων για αυτή την εικονική διεύθυνση. Μόλις προσδιοριστούν αυτά τα δεδομένα μετάφρασης διευθύνσεων, μπορούν να αποθηκεύονται προσωρινά εντός της τοπικής TLB. The processing elements shown use virtual addressing schemes and thus the virtual addresses will be converted to physical addresses within memory 40 so that when a processing element issues an access request intended to access a memory location, that access request as forwarded to interface 30 specifies the physical address of the memory location to be accessed. In a typical manner, memory 40 may be organized into a number of pages, and page tables 45 may be provided within the memory which include descriptors used to determine how virtual addresses should be translated to corresponding physical addresses. addresses. Each processing element 10, 20 may have an associated translation look-ahead buffer (TLB) 15, 25 in which the address translation data resulting from the page tables 45 can be cached to improve the speed of translation from virtual to physical addresses . Specifically, when a virtual address that does not fit into the TLB is issued, it is necessary to perform a page table walk operation with respect to page tables 45 in memory 40 in order to sequentially traverse multiple page tables to generate the necessary address translation data for this virtual address. Once this address translation data is determined, it can be cached within the local TLB.

Τα δεδομένα μετάφρασης διευθύνσεων που αποθηκεύονται προσωρινά στην TLB θα προσδιορίζουν συνήθως όχι μόνο τον τρόπο με τον οποίο η εικονική διεύθυνση μετατρέπεται σε μια φυσική διεύθυνση, αλλά και οποιαδήποτε συσχετισμένα χαρακτηριστικά δικαιωμάτων, όπως κατά πόσο η θέση μπορεί να διαβάζεται και να εγγράφεται, είναι μόνο για ανάγνωση, μπορεί να αποθηκεύεται σε κρυφή μνήμη, κλπ. The address translation data cached in the TLB will typically specify not only how the virtual address is translated to a physical address, but also any associated permission attributes, such as whether the location is read-only and write-only. read, can be cached, etc.

Κατά την κανονική λειτουργία, ένα ή περισσότερα από τα στοιχεία επεξεργασίας μπορεί να αποφασίζουν ότι είναι κατάλληλη η επιδίωξη μεταφοράς δεδομένων από μια ή περισσότερες σελίδες στη μνήμη σε μια ή περισσότερες άλλες σελίδες στη μνήμη, με αυτή τη λειτουργία να αναφέρεται σε γενικές γραμμές στο παρόν ως μετανάστευση δεδομένων. Για παράδειγμα, μπορεί να θεωρείται κατάλληλη η συγχώνευση πολλών μικρότερων σελίδων σε μια μεγαλύτερη σελίδα (η οποία θα αναφέρεται στο παρόν ως λειτουργία συγκέντρωσης) ή αντίθετα σε ορισμένες περιπτώσεις μπορεί να θεωρείται κατάλληλη η διαίρεση μιας μεγαλύτερης σελίδας σε πολλές μικρότερες σελίδες (αναφέρεται στο παρόν ως λειτουργία διασποράς). Εναλλακτικά, μπορεί να είναι επιθυμητή η μετακίνηση δεδομένων από μια σελίδα σε μια άλλη σελίδα. During normal operation, one or more of the processing elements may decide that it is appropriate to seek to transfer data from one or more pages in memory to one or more other pages in memory, this operation generally referred to herein as data migration. For example, it may be considered appropriate to merge several smaller pages into one larger page (referred to herein as the aggregation operation), or conversely in some cases it may be considered appropriate to split a larger page into several smaller pages (referred to herein as dispersion mode). Alternatively, it may be desirable to move data from one page to another page.

Σύμφωνα με τις υλοποιήσεις οι οποίες θα εξεταστούν λεπτομερέστερα στο παρόν, η μηχανή μεταφοράς δεδομένων 35 παρέχεται εντός της διασύνδεσης 30 για τη διαχείριση τέτοιων λειτουργιών μετανάστευσης δεδομένων. Συγκεκριμένα, η μηχανή μεταφοράς δεδομένων 35 διατάσσεται ώστε να αποκρίνεται σε ένα αίτημα μεταφοράς δεδομένων που εκδίδεται από ένα από τα στοιχεία επεξεργασίας 10, 20, για τη διαχείριση της απαιτούμενης λειτουργίας μεταφοράς για λογαριασμό αυτού του στοιχείου επεξεργασίας, αφήνοντας το στοιχείο επεξεργασίας ελεύθερο να συνεχίσει τις λειτουργίες του. Επιπλέον, η μηχανή μεταφοράς δεδομένων περιλαμβάνει έναν ελεγκτή ανακατεύθυνσης ο οποίος διατάσσεται, κατά την εκτέλεση της λειτουργίας μεταφοράς, ώστε να αναχαιτίζει ορισμένα αιτήματα πρόσβασης που εκδίδονται από τα στοιχεία επεξεργασίας 10, 20 και συγκεκριμένα τα αιτήματα πρόσβασης τα οποία πραγματοποιούνται όσον αφορά στα δεδομένα τα οποία αποτελούν το αντικείμενο της λειτουργίας μεταφοράς. Για τέτοια αιτήματα πρόσβασης, η μηχανή μεταφοράς δεδομένων εκτελεί μια λειτουργία ανακατεύθυνσης μνήμης η οποία επιτρέπει την επεξεργασία των αιτημάτων πρόσβασης χωρίς να αναμένεται η ολοκλήρωση της λειτουργίας μεταφοράς. Ανάλογα, τέτοια αιτήματα πρόσβασης μπορούν να διαχειρίζονται ασύγχρονα από την εκτέλεση της λειτουργίας μεταφοράς και συνεπώς χωρίς την ανάγκη φραγής οποιωνδήποτε τέτοιων αιτημάτων πρόσβασης. Το γεγονός αυτό μπορεί να έχει ως αποτέλεσμα σημαντικές βελτιώσεις στην απόδοση. Επιπλέον, ο μηχανισμός που χρησιμοποιείται από τη μηχανή μεταφοράς δεδομένων 30 μειώνει τον αριθμό των φορών που απαιτούνται για την ακύρωση των εγγραφών στις TLB 15, 25 κατά την εκτέλεση της λειτουργίας μεταφοράς, σε σύγκριση με τις προηγούμενες γνωστές προσεγγίσεις οι οποίες διαχειρίζονται τη διαδικασία μεταφοράς δεδομένων με λογισμικό υπό τον έλεγχο του λειτουργικού συστήματος εντός ενός από τα στοιχεία επεξεργασίας. According to the embodiments which will be discussed in more detail herein, the data transfer engine 35 is provided within the interface 30 to manage such data migration operations. Specifically, the data transfer engine 35 is arranged to respond to a data transfer request issued by one of the processing elements 10, 20, to handle the required transfer operation on behalf of that processing element, leaving the processing element free to continue the its functions. In addition, the data transfer engine includes a redirection controller which is arranged, during the execution of the transfer operation, to intercept certain access requests issued by the processing elements 10, 20 and in particular access requests made with respect to the data which are the object of the transfer function. For such access requests, the data transfer engine performs a memory redirection operation that allows access requests to be processed without waiting for the transfer operation to complete. Accordingly, such access requests can be handled asynchronously from the execution of the transport function and thus without the need to block any such access requests. This can result in significant performance improvements. In addition, the mechanism used by the data transfer engine 30 reduces the number of times required to invalidate entries in the TLBs 15, 25 when performing the transfer operation, compared to prior art approaches that manage the data transfer process. with software under the control of the operating system within one of the processing elements.

Οι τεχνικές των υλοποιήσεων που περιγράφονται μπορούν να χρησιμοποιούνται ανεξάρτητα εάν τα στοιχεία επεξεργασίας έχουν συσχετισμένες δομές κρυφής μνήμης ή όχι. Ωστόσο, όπως δείχνεται στο Σχήμα 1, τα στοιχεία επεξεργασίας 10, 20 μπορούν να έχουν μια ή περισσότερες δομές κρυφής μνήμης 50, 55 που χρησιμοποιούνται για την αποθήκευση σε κρυφή μνήμη δεδομένων που διατηρούνται στη μνήμη 40 με σκοπό τη βελτίωση της απόδοσης. Σε τέτοιες περιπτώσεις θα παρέχεται συνήθως ένα κύκλωμα συνοχής κρυφής μνήμης 60 το οποίο θα εξασφαλίζει τη διατήρηση της συνοχής μεταξύ των δεδομένων που διατηρούνται στη μνήμη και των διαφόρων αντιγράφων τα οποία μπορεί να διατηρούνται εντός των κρυφών μνημών 50, 55. Συγκεκριμένα, όταν εκδίδεται ένα αίτημα πρόσβασης από ένα από τα στοιχεία επεξεργασίας που προσδιορίζει μια φυσική διεύθυνση στη μνήμη 40, το κύκλωμα ελέγχου συνοχής κρυφής μνήμης 60 μπορεί να προσδιορίζει κατά πόσο οποιαδήποτε από τις δομές κρυφής μνήμης 50, 55 μπορεί να διατηρεί ένα αντίγραφο των δεδομένων που συσχετίζονται με αυτή τη φυσική διεύθυνση, ενώ σε αυτή την περίπτωση χρησιμοποιείται ένα κύκλωμα κατασκοπείας εντός του κυκλώματος ελέγχου συνοχής κρυφής μνήμης για την έκδοση αιτημάτων κατασκοπείας στις αντίστοιχες κρυφές μνήμης με σκοπό να προσδιοριστεί κατά πόσο υπάρχουν τα δεδομένα. Με μια τέτοια προσέγγιση, μπορεί να εξασφαλίζεται η πρόσβαση στην πλέον ενημερωμένη έκδοση των δεδομένων. Ανάλογα το πρωτόκολλο συνοχής που χρησιμοποιείται, οι κρυφές μνήμες που υποβάλλονται στις λειτουργίες κατασκοπείας μπορούν να επιστρέφουν δεδομένα στο κύκλωμα ελέγχου συνοχής κρυφής μνήμης 60 όταν προσδιορίζεται ότι τα δεδομένα που συσχετίζονται με τη διεύθυνση που καθορίζεται από το αίτημα κατασκοπείας διατηρούνται εντός της κρυφής μνήμης και/ή να προκαλούν την ακύρωση ενός αντιγράφου οποιωνδήποτε τέτοιων δεδομένων εντός της κρυφής μνήμης. Επιπλέον της εξάρτησης τέτοιων ενεργειών από το πρωτόκολλο συνοχής που χρησιμοποιείται, μπορούν επίσης να εξαρτώνται από τον τύπο του αιτήματος πρόσβασης που εκδίδεται από τα στοιχεία επεξεργασίας 10, 20. The techniques of the described embodiments can be used regardless of whether the processing elements have associated cache structures or not. However, as shown in Figure 1, processing elements 10, 20 may have one or more cache structures 50, 55 that are used to cache data held in memory 40 to improve performance. In such cases a cache coherency circuit 60 will usually be provided which will ensure that coherency is maintained between the data held in memory and the various copies which may be held within the caches 50, 55. Specifically, when a request is issued access by one of the processing elements that identifies a physical address in memory 40, the cache consistency checker 60 may determine whether any of the cache structures 50, 55 can maintain a copy of the data associated with that physical address, in which case a snoop circuit is used within the cache coherency check circuit to issue snoop requests to the respective caches to determine whether the data exists. With such an approach, access to the most up-to-date version of the data can be ensured. Depending on the coherency protocol used, caches subject to snooping operations may return data to the cache coherency check circuit 60 when it is determined that the data associated with the address specified by the snooping request is held in the cache and/or cause a cached copy of any such data to be invalidated. In addition to the dependence of such actions on the coherence protocol used, they may also depend on the type of access request issued by the processing elements 10, 20.

Σε μια υλοποίηση, όπως θα εξεταστεί αργότερα, όταν η μηχανή μεταφοράς δεδομένων 35 εκτελεί μια λειτουργία μεταφοράς για τη μετακίνηση μιας βαθμίδας δεδομένων από μια ή περισσότερες σελίδες προέλευσης σε μια ή περισσότερες σελίδες προορισμού εντός της μνήμης 40, θα εκδίδει μια σειρά αιτημάτων πρόσβασης για ανάγνωση και αιτημάτων πρόσβασης για εγγραφή με σκοπό την ανάγνωση των απαιτούμενων προς μετακίνηση δεδομένων και στη συνέχεια θα εγγράφει αυτά τα δεδομένα στις σελίδες προορισμού. Τα αιτήματα πρόσβασης που εκδίδονται από τη μηχανή μεταφοράς δεδομένων 35 θα επανεξετάζονται από το κύκλωμα ελέγχου συνοχής κρυφής μνήμης 60 με τον ίδιο τρόπο όπως τα αιτήματα πρόσβασης που εκδίδονται από τα στοιχεία επεξεργασίας 10, 20. Χρησιμοποιώντας μια συγκεκριμένη μορφή αιτήματος πρόσβασης για ανάγνωση, αυτό μπορεί να εξασφαλίζει ότι οποιαδήποτε αποθηκευμένα σε κρυφή μνήμη αντίγραφα των δεδομένων τα οποία μετακινούνται και είναι συσχετισμένα στις κρυφές μνήμες 50, 55 με την(ις) περιοχή(ές) διευθύνσεων προέλευσης, θα ακυρώνονται και συνεπώς θα απελευθερώνουν πόρους εντός της κρυφής μνήμης. Θα εκτιμηθεί ότι μόλις εκτελεστεί η λειτουργία μεταφοράς, τα δεδομένα θα παραμείνουν εντός της(ων) σελίδας(ων) προορισμού, έχοντας τη(ις) συσχετισμένη (ες) περιοχή(ές) διευθύνσεων προορισμού, και συνεπώς οποιαδήποτε αντίγραφα κρυφής μνήμης που συσχετίζονται με την περιοχή διευθύνσεων προέλευσης δε θα χρησιμοποιούνται. Συνεπώς, ακυρώνοντας αυτά τα αντίγραφα κατά τη διάρκεια της διαδικασίας μεταφοράς των δεδομένων, μπορεί να παρέχεται ένας πολύ αποτελεσματικός μηχανισμός για την απομάκρυνση των δεδομένων που πλεονάζουν από τις κρυφές μνήμες 50, 55. In one embodiment, as will be discussed later, when data transfer engine 35 performs a transfer operation to move a tier of data from one or more source pages to one or more destination pages within memory 40, it will issue a series of read access requests and write access requests to read the data required to be moved and then write that data to the landing pages. Access requests issued by the data transfer engine 35 will be reviewed by the cache coherence control circuit 60 in the same manner as access requests issued by the processing elements 10, 20. Using a specific read access request format, this can ensure that any cached copies of the data being moved and associated in the caches 50, 55 with the source address range(s) will be invalidated and thereby free resources within the cache. It will be appreciated that once the transfer operation is performed, the data will remain within the destination page(s), having the associated destination address range(s), and thus any cache copies associated with the source address range will not be used. Therefore, by invalidating these copies during the data transfer process, a very efficient mechanism can be provided for removing redundant data from caches 50 , 55 .

Το Σχήμα 2 είναι ένα διάγραμμα βαθμιδών που απεικονίζει λεπτομερέστερα τη μηχανή μεταφοράς δεδομένων 35 του Σχήματος 1, σύμφωνα με μια υλοποίηση. Παρέχεται ένας ελεγκτής διευθέτησης 100 ο οποίος διατάσσεται ώστε να λαμβάνει τα αιτήματα μεταφοράς δεδομένων από τα στοιχεία επεξεργασίας 10, 20. Με τη λήψη ενός αιτήματος μεταφοράς δεδομένων, ο ελεγκτής διευθέτησης συμπληρώνει ορισμένες πληροφορίες εντός των καταχωρητών ελέγχου 105, με αυτές τις πληροφορίες να παρέχουν στοιχεία για τη μια ή τις περισσότερες περιοχές διευθύνσεων προέλευσης από τις οποίες πρόκειται να μεταφερθούν τα δεδομένα και τη μια ή τις περισσότερες περιοχές διευθύνσεων στις οποίες πρόκειται να μεταφερθούν τα δεδομένα. Συνήθως η(οι) περιοχή(ές) διευθύνσεων προέλευσης και η(οι) περιοχή(ές) διευθύνσεων προορισμού θα προσδιορίζονται από το αίτημα μεταφοράς που εκδίδεται από το στοιχείο επεξεργασίας και αυτές οι πληροφορίες εξάγονται από το αίτημα και συμπληρώνονται εντός ενός ή περισσότερων καταχωρητών ελέγχου. Μπορούν επίσης να προσδιορίζονται επιπλέον πληροφορίες, για παράδειγμα οι οποίες προσδιορίζουν κατά πόσο η μεταφορά θα πρέπει να υλοποιεί μια αντιγραφή (όπου μετά τη μετακίνηση των δεδομένων, τα δεδομένα παραμένουν έγκυρα εντός της(ων) περιοχής(ών) διευθύνσεων προέλευσης) ή μια μετακίνηση (όπου μετά τη μεταφορά των δεδομένων, τα δεδομένα εντός της(ων) περιοχής(ών) διευθύνσεων προέλευσης ακυρώνονται). Το αίτημα μεταφοράς μπορεί επίσης να προσδιορίζει ορισμένες ακόμη πληροφορίες, για παράδειγμα κατά πόσο η συγκεκριμένη μορφή αιτήματος πρόσβασης για ανάγνωση που αναφέρθηκε νωρίτερα θα πρέπει να χρησιμοποιείται με σκοπό την υποβοήθηση στην απαλοιφή πληροφοριών που πλεονάζουν από τις κρυφές μνήμες. Figure 2 is a block diagram illustrating in more detail the data transfer engine 35 of Figure 1, according to one embodiment. A settlement controller 100 is provided which is arranged to receive the data transfer requests from the processing elements 10, 20. Upon receiving a data transfer request, the settlement controller populates certain information within the control registers 105, such information providing for the one or more source address ranges from which the data is to be transferred and the one or more address ranges to which the data is to be transferred. Typically the source address range(s) and destination address range(s) will be specified by the transfer request issued by the processing element and this information is extracted from the request and filled into one or more control registers . Additional information may also be specified, for example specifying whether the transfer should implement a copy (where after the data is moved, the data remains valid within the source address range(s)) or a move ( where after the data is transferred, the data within the source address range(s) is invalidated). The transfer request may also specify some further information, for example whether the particular form of read access request mentioned earlier should be used to help flush redundant information from caches.

Μόλις συμπληρωθούν οι σχετικές πληροφορίες εντός των καταχωρητών ελέγχου 105, ο ελεγκτής διευθέτησης μπορεί να εκδίδει ένα σήμα αναγνώρισης πίσω προς το στοιχείο επεξεργασίας, με αυτό το σήμα αναγνώρισης να είναι ένα παράδειγμα μορφής ενός σήματος ελέγχου το οποίο μπορεί να εκδίδεται από τον ελεγκτή διευθέτησης. Συγκεκριμένα, σε μια υλοποίηση το στοιχείο επεξεργασίας αποκρίνεται στη λήψη του σήματος αναγνώρισης για την ανάληψη μέτρων ενημέρωσης των σχετικών πινάκων σελίδων 45, ώστε να εξασφαλίζεται ότι κατά την εκτέλεση της λειτουργίας μεταφοράς από τη μηχανή μεταφοράς δεδομένων 35, οποιεσδήποτε εικονικές διευθύνσεις εντός της σχετικής περιοχής εικονικών διευθύνσεων θα αντιστοιχούνται με διευθύνσεις στόχου εντός μιας συγκεκριμένης περιοχής διευθύνσεων στόχου οι οποίες στη συνέχεια θα αναχαιτίζονται από τη μηχανή μεταφοράς δεδομένων. Σε ένα συγκεκριμένο παράδειγμα υλοποίησης, το στοιχείο επεξεργασίας μπορεί να διατάσσεται ώστε να τροποποιεί τους κατάλληλους πίνακες σελίδων ώστε τέτοιες εικονικές διευθύνσεις θα αντιστοιχούνται σε διευθύνσεις εντός της μιας ή των περισσότερων περιοχών διευθύνσεων προορισμού και δε θα συνεχίσουν να αντιστοιχούνται σε διευθύνσεις εντός της μιας ή των περισσότερων περιοχών διευθύνσεων προέλευσης. Όπως θα εξεταστεί λεπτομερέστερα αργότερα, ο ελεγκτής ανακατεύθυνσης 115 εντός της μηχανής μεταφοράς δεδομένων μπορεί στη συνέχεια να αναχαιτίζει οποιαδήποτε αιτήματα πρόσβασης εκδίδονται σε διευθύνσεις εντός της μιας ή των περισσότερων περιοχών διευθύνσεων προορισμού κατά τη διάρκεια της εκτέλεσης της λειτουργίας μεταφοράς δεδομένων, και να εκτελεί μια λειτουργία ανακατεύθυνσης μνήμης όσον αφορά σε τέτοια αιτήματα πρόσβασης. Once the relevant information within the control registers 105 is populated, the settlement controller may issue an acknowledgment signal back to the processing element, this acknowledgment signal being an example of a form of a control signal that may be issued by the settlement controller. In particular, in one embodiment the processing element is responsive to receiving the identification signal to take steps to update the relevant page tables 45 to ensure that when the transfer operation is performed by the data transfer engine 35, any virtual addresses within the relevant virtual area of addresses will be mapped to target addresses within a specific range of target addresses which will then be intercepted by the data transfer engine. In a particular example implementation, the processing element may be ordered to modify the appropriate page tables so that such virtual addresses will map to addresses within the one or more destination address ranges and will not continue to map to addresses within the one or more source address ranges. As discussed in more detail later, the redirection controller 115 within the data transfer engine may then intercept any access requests issued to addresses within the one or more destination address ranges during execution of the data transfer operation, and perform an memory redirection with respect to such access requests.

Επιπλέον της ενημέρωσης των πινάκων σελίδων, το στοιχείο επεξεργασίας μπορεί επίσης να ακυρώνει οποιεσδήποτε σχετικές εγγραφές εντός της τοπικής της TLB, δηλ. εγγραφές οι οποίες παρέχουν δεδομένα μετάφρασης διευθύνσεων για τη σχετική περιοχή εικονικών διευθύνσεων και επίσης θα εκπέμπει συνήθως ένα μήνυμα στα άλλα στοιχεία επεξεργασίας και θα τα εξαναγκάζει να ακυρώνουν τέτοιες εγγραφές στις τοπικές τους TLB. Με την ακύρωση των σχετικών περιεχομένων στην TLB εξασφαλίζεται ότι εάν εκδοθεί ένα αίτημα πρόσβασης από οποιοδήποτε από αυτά τα στοιχεία επεξεργασίας με τη χρήση μιας εικονικής διεύθυνσης εντός της σχετικής περιοχής εικονικών διευθύνσεων, δε θα ανιχνεύεται μια ευστοχία στην TLB και θα προκαλεί τη χρήση μιας διαδικασίας βάδισης πίνακα σελίδων, ως αποτέλεσμα της οποίας θα ανακτάται η νέα αντιστοίχιση που παρέχεται στους ενημερωμένους πίνακες σελίδων 45 και θα χρησιμοποιείται για τη μετατροπή της εικονικής διεύθυνσης σε μια φυσική διεύθυνση. Εάν είναι επιθυμητό, αυτά τα νέα δεδομένα μετάφρασης διευθύνσεων μπορούν στη συνέχεια να αποθηκεύονται προσωρινά εντός της TLB. In addition to updating the page tables, the processing element may also invalidate any relevant entries within its local TLB, i.e. entries which provide address translation data for the relevant virtual address space, and will also typically broadcast a message to the other processing elements and will force them to invalidate such writes to their local TLBs. Invalidating the associated contents in the TLB ensures that if an access request is issued by any of these processing elements using a virtual address within the associated virtual address range, a hit in the TLB will not be detected and cause a walk procedure to be used page table, as a result of which the new mapping provided in the updated page tables 45 will be retrieved and used to convert the virtual address to a physical address. If desired, this new address translation data can then be cached within the TLB.

Ως μια εναλλακτική λύση της χρήσης ενός τέτοιου σήματος αναγνώρισης προς το στοιχείο αναγνώρισης ώστε να εξαναγκάζεται το στοιχείο επεξεργασίας να αναλαμβάνει τη διαδικασία ενημέρωσης του πίνακα σελίδων και τη διαδικασία ακύρωσης της TLB, ο ελεγκτής διευθέτησης μπορεί να εκδίδει απευθείας σήματα ελέγχου προς τη μνήμη για την ενημέρωση των πινάκων σελίδων 45 και επιπλέον μπορεί να εκδίδει ένα ή περισσότερα σήματα ελέγχου που θα προκαλούν την ακύρωση των σχετικών εγγραφών στις TLB των στοιχείων επεξεργασίας 10, 20. As an alternative to using such an acknowledgment signal to the acknowledgment element to force the processing element to undertake the page table update process and the TLB invalidation process, the settlement controller can issue control signals directly to the memory for the update of page tables 45 and may additionally issue one or more control signals that will cause associated entries in the TLBs of processing elements 10, 20 to be invalidated.

Μετά τη λήψη τέτοιων μέτρων, μπορεί να ενεργοποιείται ένας ελεγκτής μεταφοράς δεδομένων 110 εντός της μηχανής μεταφοράς δεδομένων 35 ώστε να ξεκινάει η εκτέλεση της λειτουργίας μεταφοράς, χρησιμοποιώντας τις πληροφορίες που διατηρούνται στους καταχωρητές ελέγχου για τον καθορισμό των διευθύνσεων προέλευσης από τις οποίες θα διαβαστούν τα δεδομένα και των διευθύνσεων προορισμού στις οποίες αυτά τα δεδομένα θα πρέπει να εγγράφονται στη συνέχεια με σκοπό την εκτέλεση της απαιτούμενης μετανάστευσης δεδομένων εντός της μνήμης 40. Ο ελεγκτής ανακατεύθυνσης 115 συνήθως θα ενεργοποιείται ταυτόχρονα, ώστε κατά το διάστημα που ο ελεγκτής μεταφοράς δεδομένων 110 εκτελεί τη λειτουργία μεταφοράς, ο ελεγκτής ανακατεύθυνσης 115 να παρακολουθεί τα αιτήματα πρόσβασης που εκδίδονται από οποιοδήποτε από τα στοιχεία επεξεργασίας 10, 20 με σκοπό την ανίχνευση των περιπτώσεων στις οποίες αυτά τα αιτήματα πρόσβασης προσδιορίζουν διευθύνσεις εντός μιας περιοχής διευθύνσεων στόχου. Σύμφωνα με το πρότερο παράδειγμα στο οποίο οι πίνακες σελίδων ενημερώνονται πριν την πραγματοποίηση της λειτουργίας μεταφοράς ώστε να εξασφαλίζεται ότι οι σχετικές εικονικές διευθύνσεις αντιστοιχούνται σε φυσικές διευθύνσεις εντός της μιας ή των περισσότερων περιοχών διευθύνσεων προορισμού, ο ελεγκτής ανακατεύθυνσης μπορεί να παρακολουθεί για τα αιτήματα πρόσβασης που προσδιορίζουν μια φυσική διεύθυνση εντός της μιας ή των περισσότερων περιοχών διευθύνσεων προορισμού και με την ανίχνευση ενός τέτοιου αιτήματος πρόσβασης θα αναχαιτίζει αυτό το αίτημα πρόσβασης και θα εκτελεί μια λειτουργία ανακατεύθυνσης μνήμης. Η λειτουργία ανακατεύθυνσης μνήμης θα εξεταστεί λεπτομερέστερα αργότερα, αλλά στοχεύει στην εξασφάλιση ότι το αίτημα πρόσβασης θα μπορεί να επεξεργάζεται ενώ η λειτουργία μεταφοράς είναι σε εξέλιξη, εξασφαλίζοντας ταυτόχρονα ότι τα δεδομένα θα παραμένουν αμετάβλητα. After such measures have been taken, a data transfer controller 110 within the data transfer engine 35 may be activated to begin executing the transfer operation, using the information held in the control registers to determine the source addresses from which the data will be read. and the destination addresses to which this data should then be written in order to perform the required data migration within memory 40. Redirection controller 115 will typically be activated simultaneously so that while data transfer controller 110 is performing the transfer, the redirection controller 115 monitors the access requests issued by any of the processing elements 10, 20 in order to detect instances in which those access requests specify addresses within a target address range. According to the earlier example in which the page tables are updated before the transfer operation is performed to ensure that the associated virtual addresses map to physical addresses within the one or more destination address ranges, the redirect controller may monitor for access requests that specify a physical address within one or more destination address ranges and upon detection of such an access request shall intercept that access request and perform a memory redirection operation. The memory redirection function will be discussed in more detail later, but it aims to ensure that the access request can be processed while the transfer operation is in progress, while ensuring that the data remains unchanged.

Όπως δείχνεται στο Σχήμα 2, ο ελεγκτής ανακατεύθυνσης 115 θα δημιουργεί συνεπώς διευθύνσεις ανάγνωσης ή εγγραφής από ανακατεύθυνση σε απόκριση των διευθύνσεων ανάγνωσης ή εγγραφής που αναχαιτίζει. Ορισμένες από τις διευθύνσεις ανάγνωσης ή εγγραφής από ανακατεύθυνση μπορεί πράγματι να είναι οι ίδιες διευθύνσεις όπως λήφθηκαν, για παράδειγμα σε ορισμένες περιπτώσεις για ένα αναχαιτισμένο αίτημα πρόσβασης μπορεί να αποφασίζεται ότι η διεύθυνση από ανακατεύθυνση μπορεί να παραμένει η ίδια όπως η διεύθυνση που προσδιορίζεται από το αίτημα πρόσβασης. As shown in Figure 2, the redirection controller 115 will therefore generate read or write addresses from redirection in response to the read or write addresses it intercepts. Some of the redirect read or write addresses may actually be the same addresses as received, for example in some cases for an intercepted access request it may be decided that the redirect address may remain the same as the address specified by the request access.

Οι διευθύνσεις από ανακατεύθυνση προωθούνται στις ουρές φόρτωσης και αποθήκευσης 120, ενώ τα συσχετισμένα δεδομένα ανάγνωσης ή εγγραφής επίσης δρομολογούνται μέσω των ουρών φόρτωσης και αποθήκευσης όπως δείχνεται στο Σχήμα 2. Όπως επίσης δείχνεται στο Σχήμα 2, η διαδρομή των δεδομένων δεν είναι απαραίτητο να αναχαιτίζεται από τον ελεγκτή ανακατεύθυνσης 115. Addresses from redirection are forwarded to the load and store queues 120, while the associated read or write data is also routed through the load and store queues as shown in Figure 2. As also shown in Figure 2, the data path need not be intercepted by the redirect controller 115.

Υπάρχει ένας αριθμός τρόπων με τους οποίους είναι δυνατή η επεξεργασία των αιτημάτων πρόσβασης τα οποία δεν αναχαιτίζονται από τον ελεγκτή ανακατεύθυνσης. Σε ορισμένες υλοποιήσεις, τέτοια αιτήματα πρόσβασης δεν επανεξετάζονται καν από τον ελεγκτή ανακατεύθυνσης, εφόσον η διασύνδεση δε θα δρομολογεί τέτοια αιτήματα πρόσβασης στη μηχανή μεταφοράς δεδομένων. Εναλλακτικά, σε ορισμένες υλοποιήσεις ο ελεγκτής ανακατεύθυνσης μπορεί να επανεξετάζει κάθε αίτημα πρόσβασης, αλλά για οποιοδήποτε αίτημα πρόσβασης το οποίο καθορίζεται ότι δεν απαιτείται η αναχαίτισή του, αυτό το αίτημα πρόσβασης θα μπορούσε να διατάσσεται ώστε να παρακάμπτει τις ουρές φόρτωσης και αποθήκευσης 120 εφόσον ένα τέτοιο αίτημα πρόσβασης δε θα έρχεται σε διένεξη με τις περιοχές διευθύνσεων οι οποίες υποβάλλονται σε λειτουργίες μεταφοράς δεδομένων από τη μηχανή μεταφοράς δεδομένων. Σε αυτή τη δεύτερη περίπτωση, θα μπορούσε να παρέχεται ένα ξεχωριστό σύνολο θυρών στις οποίες θα ήταν στη συνέχεια δυνατή η μεταφορά οποιωνδήποτε αιτημάτων πρόσβασης από τον ελεγκτή ανακατεύθυνσης τα οποία έχει καθορίσει ότι δεν απαιτούν αναχαίτιση. There are a number of ways in which access requests that are not intercepted by the redirect controller can be processed. In some implementations, such access requests are not even reviewed by the redirect controller, since the interface will not route such access requests to the data transport engine. Alternatively, in some implementations the redirection controller may review each access request, but for any access request that is determined not to require interception, that access request could be ordered to bypass the load and store queues 120 if such access request shall not conflict with address ranges subjected to data transfer operations by the data transfer engine. In this second case, a separate set of ports could be provided to which any access requests from the redirect controller that it has determined do not require interception could then be forwarded.

Στις υλοποιήσεις που δείχνονται στο Σχήμα 2, οι ουρές φόρτωσης και αποθήκευσης 120 χρησιμοποιούνται από κοινού μεταξύ του ελεγκτή ανακατεύθυνσης 115 και του ελεγκτή μεταφοράς δεδομένων 110. Συνεπώς, ο ελεγκτής μεταφοράς δεδομένων θα εκδίδει μια σειρά διευθύνσεων ανάγνωσης και εγγραφής προς τις ουρές φόρτωσης και αποθήκευσης 110 με σκοπό να προκαλείται η ανάγνωση των απαιτούμενων δεδομένων από τις διευθύνσεις προέλευσης και στη συνέχεια η εγγραφή τους στις απαιτούμενες διευθύνσεις εγγραφής. Όπως δείχνεται στο Σχήμα 2, οι ουρές φόρτωσης και αποθήκευσης 120 μπορεί να διατηρούν μια ή περισσότερες προσωρινές μνήμες 125 στις οποίες να είναι δυνατή η προσωρινή αποθήκευση των δεδομένων που διαβάζονται από τη μνήμη κατά την εκτέλεση της λειτουργίας μεταφοράς προτού εγγραφούν και πάλι στη μνήμη. Συνεπώς τα ίδια τα δεδομένα δε χρειάζεται να επιστρέφονται στον ελεγκτή μεταφοράς δεδομένων 170, αλλά αντίθετα είναι δυνατή η προώθηση πληροφοριών προόδου για την πραγματοποιούμενη πρόοδο όσον αφορά στα διάφορα αιτήματα ανάγνωσης και εγγραφής και πάλι προς τον ελεγκτή μεταφοράς δεδομένων, ο οποίος σε μια υλοποίηση επίσης συμπληρώνει τις πληροφορίες εντός των καταχωρητών ελέγχου 105 ως ένδειξη της πραγματοποιούμενης προόδου. Για ορισμένους τύπους λειτουργίας ανακατεύθυνσης μνήμης, σε αυτές τις πληροφορίες προόδου εντός των καταχωρητών ελέγχου μπορεί να αναφέρεται ο ελεγκτής ανακατεύθυνσης 115 όταν αποφασίζεται ο τρόπος ανακατεύθυνσης μιας ληφθείσας φυσικής διεύθυνσης ενός αναχαιτισμένου αιτήματος πρόσβασης. In the implementations shown in Figure 2, the load and store queues 120 are shared between the redirection controller 115 and the data transfer controller 110. Accordingly, the data transfer controller will issue a series of read and write addresses to the load and store queues 110 in order to cause the required data to be read from the source addresses and then written to the required write addresses. As shown in Figure 2, the load and store queues 120 may maintain one or more temporary memories 125 in which data read from memory during the transfer operation can be temporarily stored before being written back to memory. Thus the data itself does not need to be returned to the data transfer controller 170, but instead progress information about the progress being made on the various read and write requests can be forwarded back to the data transfer controller, which in one implementation also completes the information within the control registers 105 as an indication of the progress being made. For some types of memory redirection operation, this progress information within the control registers may be referred to by redirection controller 115 when deciding how to redirect a received physical address of an intercepted access request.

Χρησιμοποιώντας τις δομές της ουράς φόρτωσης και αποθήκευσης 120 τόσο για τα αιτήματα πρόσβασης που τροποποιούνται επιλεκτικά από τον ελεγκτή ανακατεύθυνσης, όσο και για τα αιτήματα πρόσβασης που εκδίδονται από τον ελεγκτή μεταφοράς δεδομένων κατά την εκτέλεση της λειτουργίας μεταφοράς, είναι δυνατή η ανίχνευση και αντιμετώπιση κάθε πιθανής κατάστασης ανταγωνισμού εντός των ουρών φόρτωσης και αποθήκευσης. Υπάρχει ένας αριθμός τρόπων με τους οποίους είναι δυνατή η διάταξη της δομής των ουρών φόρτωσης και αποθήκευσης 120 για την ανίχνευση και αντιμετώπιση τέτοιων καταστάσεων ανταγωνισμού. Για παράδειγμα, σε μια υλοποίηση ο ελεγκτής μεταφοράς δεδομένων 110 μπορεί να διατάσσεται, πριν την έκδοση ενός αιτήματος ανάγνωσης προς μια διεύθυνση προέλευσης, για τη δέσμευση ενός αιτήματος εγγραφής αντικαταστάτη (χωρίς κάποια δεδομένα) προς τη διεύθυνση προορισμού σε μια εγγραφή της δομής ουράς φόρτωσης και αποθήκευσης 120. Αυτή η εγγραφή μπορεί να χρησιμοποιείται για την καθυστέρηση προσβάσεων που παρουσιάζουν διένεξη μέχρι να ολοκληρωθεί η λειτουργία μεταφοράς. Ο ελεγκτής μεταφοράς δεδομένων μπορεί στη συνέχεια να ενημερώνει την κατάσταση προόδου εντός των καταχωρητών ελέγχου 105 και να εκδίδει ένα αίτημα πρόσβασης για ανάγνωση για τη διεύθυνση προέλευσης. Μόλις η απόκριση ανάγνωσης φτάσει από τη μνήμη, ο ελεγκτής μεταφοράς δεδομένων μπορεί στη συνέχεια να εκδίδει ένα πραγματικό αίτημα εγγραφής το οποίο ενημερώνει το αίτημα αντικαταστάτη που δεσμεύτηκε νωρίτερα. Σε αυτό το σημείο, η δομή των ουρών φόρτωσης και αποθήκευσης 120 μπορεί στη συνέχεια να προωθεί το αίτημα εγγραφής προς τη μνήμη. Υιοθετώντας μια τέτοια διαδοχή, αυτό εξασφαλίζει ότι οποιοδήποτε αίτημα ανάγνωσης ή εγγραφής από ανακατεύθυνση το οποίο επικαλύπτεται με μια διεύθυνση που προσδιορίζεται σε μια εγγραφή εγγραφής αντικαταστάτη στις ουρές φόρτωσης και αποθήκευσης καθυστερείται μέχρι η εγγραφή να προωθηθεί σε μια "πραγματική" εγγραφή αφού τα δεδομένα ανάγνωσης έχουν αποκτηθεί από τη μνήμη. By using the structures of the load and store queue 120 for both the access requests selectively modified by the redirect controller and the access requests issued by the data transfer controller during the transfer operation, it is possible to detect and deal with any possible contention status within load and store queues. There are a number of ways in which the load and store queue structure 120 can be arranged to detect and deal with such race conditions. For example, in one implementation the data transfer controller 110 may be ordered, before issuing a read request to a source address, to commit a substitute write request (without any data) to the destination address in a write of the load queue structure and storage 120. This register can be used to delay conflicting accesses until the transfer operation is complete. The data transfer controller can then update the progress status within the control registers 105 and issue a read access request for the source address. Once the read response arrives from memory, the data transfer controller can then issue an actual write request that updates the proxy request that was committed earlier. At this point, the load and store queue structure 120 can then forward the write request to memory. By adopting such a sequence, this ensures that any read or write request from a redirect that overlaps with an address specified in a surrogate write record in the load and store queues is delayed until the write is forwarded to a "real" write after the read data has acquired from memory.

Μια τέτοια προσέγγιση μπορεί επίσης να παρέχει κάποια πλεονεκτήματα απόδοσης με τον τρόπο με τον οποίο επεξεργάζονται τα αιτήματα πρόσβασης. Υπό τύπον παραδείγματος, εάν εκδοθεί ένα αίτημα πρόσβασης για εγγραφή προς μια διεύθυνση εντός της περιοχής διευθύνσεων προορισμού και ο ελεγκτής ανακατεύθυνση καθορίσει ότι είναι κατάλληλη η μετάδοση αυτής της εγγραφής στη διεύθυνση προορισμού, όμως αυτή επικαλύπτεται με τον ελεγκτή μεταφοράς δεδομένων που εκτελεί μια μεταφορά όσον αφορά στη διεύθυνση προορισμού, τότε μόλις καθοριστεί ότι τα απαιτούμενα δεδομένα έχουν αναγνωστεί από τη διεύθυνση προέλευσης, αλλά δεν έχουν ακόμη εγγραφεί στη μνήμη, τα νέα δεδομένα εγγραφής από το αίτημα πρόσβασης μπορούν να συγχωνεύονται στα δεδομένα εγγραφής στην προσωρινή μνήμη 125, ώστε τα ενημερωμένα δεδομένα εγγραφής να εξάγονται στη μνήμη. Such an approach may also provide some performance benefits in the way access requests are processed. For example, if an access request is issued for a write to an address within the destination address range, and the redirection controller determines that it is appropriate to transmit that write to the destination address, but it overlaps with the data transfer controller performing a transfer with respect to at the destination address, then once it is determined that the required data has been read from the source address but not yet written to memory, the new record data from the access request can be merged into the record data in buffer 125 so that the updated record data to be exported to memory.

Το Σχήμα 3 απεικονίζει ένα παράδειγμα διάταξης πληροφοριών εντός των καταχωρητών ελέγχου 105 σύμφωνα με μια υλοποίηση. Σύμφωνα με αυτή την υλοποίηση μπορεί να παρέχεται ένα πλήθος υποδοχών 150, με κάθε υποδοχή να περιλαμβάνει έναν αριθμό πεδίων. Ένα πρώτο πεδίο 155 χρησιμοποιείται για τον προσδιορισμό μιας περιοχής προέλευσης, ενώ το πεδίο 160 χρησιμοποιείται στη συνέχεια για τον προσδιορισμό μιας αντίστοιχης περιοχής προορισμού. Μπορεί προαιρετικά να παρέχεται ένα πεδίο 165 για τον προσδιορισμό της τρέχουσας κατάστασης της μεταφοράς δεδομένων που εκτελείται όσον αφορά σε αυτή την περιοχή προέλευσης και προορισμού, ενώ μπορεί επίσης να παρέχεται ένα πεδίο σημαίας 170 για την αποθήκευση πρόσθετων πληροφοριών εάν απαιτείται. Ως ένα παράδειγμα τέτοιων πληροφοριών σημαίας, μπορεί να ορίζεται μια σημαία η οποία θα προσδιορίζει κατά πόσο τα αιτήματα πρόσβασης για ανάγνωση που συσχετίζονται με τη μεταφορά δεδομένων θα πρέπει να εκδίδονται ως αποκλειστικά αιτήματα ανάγνωσης, ώστε να προκαλούν την ακύρωση οποιωνδήποτε αποθηκευμένων σε κρυφή μνήμη αντιγράφων εντός των δομών κρυφής μνήμης 50, 55 τα οποία συσχετίζονται με την περιοχή διευθύνσεων προέλευσης. Τέλος, μπορεί να παρέχεται μια έγκυρη σημαία 175, η οποία μπορεί να ορίζεται ώστε να προσδιορίζει κατά πόσο η υποδοχή περιλαμβάνει πληροφορίες για μια έγκυρη μεταφορά δεδομένων η οποία απομένει ακόμη να ολοκληρωθεί. Figure 3 illustrates an example arrangement of information within control registers 105 in accordance with one embodiment. According to this embodiment, a plurality of slots 150 may be provided, each slot including a number of fields. A first field 155 is used to identify a source region, while field 160 is then used to identify a corresponding destination region. A field 165 may optionally be provided to identify the current status of the data transfer being performed with respect to that source and destination area, and a flag field 170 may also be provided to store additional information if required. As an example of such flag information, a flag can be set to specify whether read access requests associated with data transfer should be issued as read-only requests, so as to cause any cached copies within of the cache structures 50, 55 which are associated with the source address range. Finally, a valid flag 175 may be provided, which may be set to determine whether the socket includes information about a valid data transfer that has yet to be completed.

Σε μια υλοποίηση, κάθε μια από τις υποδοχές διατάσσεται ώστε να φιλοξενεί πληροφορίες για μια συνεχή περιοχή διευθύνσεων ενός συγκεκριμένου μεγέθους, για παράδειγμα το μικρότερο δυνατό μέγεθος σελίδας. Διατάσσοντας τις υποδοχές με αυτό τον τρόπο, αυτό μπορεί να απλοποιεί τη λογική σύγκρισης διευθύνσεων που χρησιμοποιείται από τον ελεγκτή ανακατεύθυνσης 115 όταν καθορίζει κατά πόσο ένα αίτημα πρόσβασης προσδιορίζει μια διεύθυνση η οποία βρίσκεται εντός μιας περιοχής μιας έγκυρης υποδοχής. Ωστόσο, σε μια εναλλακτική υλοποίηση μπορεί να είναι δυνατή η αναδιαμόρφωση του μεγέθους της περιοχής διευθύνσεων που συσχετίζεται με κάθε υποδοχή, στην οποία περίπτωση μπορεί να παρέχεται ένα γενικό πεδίο μεγέθους εντός των γενικών πληροφοριών κατάστασης 180 για τον προσδιορισμό των πληροφοριών μεγέθους. In one embodiment, each of the slots is arranged to accommodate information for a contiguous address range of a certain size, for example the smallest possible page size. By ordering the slots in this way, it can simplify the address comparison logic used by the redirect controller 115 when determining whether an access request specifies an address that is within a range of a valid slot. However, in an alternative implementation it may be possible to reconfigure the size of the address range associated with each slot, in which case a general size field may be provided within the general status information 180 to specify the size information.

Συνεπώς, αμιγώς υπό τύπον απεικόνισης, σε περίπτωση εκτέλεσης μιας λειτουργίας μετανάστευσης δεδομένων για τη συγχώνευση δύο σελίδων με ελάχιστο μέγεθος σελίδας σε μια μεγαλύτερη σελίδα προορισμού, μπορούν να μεταδίδονται δύο ξεχωριστές υποδοχές, η πρώτη να καλύπτει την περιοχή διευθύνσεων προέλευσης της πρώτης σελίδας προέλευσης και η δεύτερη να καλύπτει την περιοχή διευθύνσεων προέλευσης της δεύτερης σελίδας προέλευσης. Η περιοχή διευθύνσεων προορισμού που συσχετίζεται με τη μεγαλύτερη σελίδα προορισμού θα διαιρείται στη συνέχεια σε δύο υποπεριοχές, με την πρώτη υπο-περιοχή να αποθηκεύεται εντός της πρώτης υποδοχής και με τη δεύτερη υπο-περιοχή να αποθηκεύεται εντός της δεύτερης υποδοχής. Therefore, purely by way of illustration, when performing a data migration operation to merge two pages with a minimum page size into a larger destination page, two separate sockets may be transmitted, the first covering the source address range of the first source page and the second to cover the source address range of the second source page. The destination address range associated with the largest landing page will then be divided into two sub-ranges, with the first sub-range stored within the first slot and the second sub-range stored within the second slot.

Εάν είναι επιθυμητό, μπορεί επίσης να παρέχεται μια επιπλέον γενική κατάσταση 180. Για παράδειγμα, μπορεί να ορίζεται μια σημαία γενικής κατάστασης όταν ο ελεγκτής διευθέτησης 100 προσδιορίσει ότι ο ελεγκτής μεταφοράς δεδομένων μπορεί να ξεκινήσει την εκτέλεση της λειτουργίας μεταφοράς. Συγκεκριμένα, όπως εξετάστηκε νωρίτερα, υπάρχουν ορισμένα βήματα διευθέτησης που πρέπει να ολοκληρώνονται πριν ξεκινήσει η μεταφορά. Επιπλέον της διευθέτησης των περιεχομένων των καταχωρητών ελέγχου, ο ελεγκτής διευθέτησης μπορεί επιπλέον να αναμένει επιβεβαίωση από το στοιχείο επεξεργασίας ότι κάθε σχετική ενημέρωση του πίνακα σελίδων και κάθε ακύρωση TLB έχει εκτελεστεί, πριν την ενεργοποίηση της σημαίας γενικής κατάστασης η οποία επιτρέπει στον ελεγκτή μεταφοράς δεδομένων 110 να ξεκινήσει τη λειτουργία μεταφοράς. Εάν είναι επιθυμητό, μπορεί επίσης να παρέχεται μια παρόμοια σημαία δυνατότητας ανακατεύθυνσης για τον ελεγκτή ανακατεύθυνσης 115. Συνήθως ο ελεγκτής ανακατεύθυνσης θα αποκτά δυνατότητα ώστε να εκτελεί κάθε απαιτούμενη ανακατεύθυνση για τα αιτήματα πρόσβασης που εκδίδονται ενώ ο ελεγκτής μεταφοράς δεδομένων διαχειρίζεται ενεργά τη λειτουργία μεταφοράς, όμως μπορεί επίσης να απαιτείται η εκτέλεση της ανακατεύθυνσης για ένα διάστημα είτε πριν την έναρξη της λειτουργίας μεταφοράς, είτε αφού ολοκληρωθεί η λειτουργία μεταφοράς, ανάλογα την περιοχή διευθύνσεων στόχου που χρησιμοποιείται από τον ελεγκτή ανακατεύθυνσης όταν προσδιορίζονται τα αιτήματα πρόσβασης προς αναχαίτιση. Για παράδειγμα, σε περιπτώσεις στις οποίες ο ελεγκτής ανακατεύθυνσης έχει διευθετηθεί για την αναχαίτιση διευθύνσεων εντός της περιοχής διευθύνσεων προορισμού, σε μια υλοποίηση θα δίνεται δυνατότητα στην ανακατεύθυνση πριν την ενημέρωση του πίνακα σελίδων και τη μετέπειτα έναρξη της λειτουργίας μεταφοράς. Αντίθετα, όταν ο ελεγκτής ανακατεύθυνσης έχει διευθετηθεί για την αναχαίτιση διευθύνσεων εντός της περιοχής διευθύνσεων προέλευσης, ο ελεγκτής ανακατεύθυνσης σε μια υλοποίηση θα παραμένει με τη δυνατότητα μέχρι να ολοκληρωθεί η λειτουργία μεταφοράς και να ενημερωθεί ο πίνακας σελίδων. If desired, an additional general status 180 may also be provided. For example, a general status flag may be set when the settlement controller 100 determines that the data transfer controller may begin performing the transfer operation. Specifically, as discussed earlier, there are a number of settlement steps that must be completed before the transfer can begin. In addition to settling the contents of the control registers, the settlement controller may additionally await confirmation from the processing element that any relevant page table updates and TLB cancellations have been performed, before setting the general status flag which enables the data transfer controller 110 to start transfer mode. If desired, a similar redirection enable flag may also be provided for the redirection controller 115. Typically the redirection controller will be enabled to perform any required redirection for access requests issued while the data transfer controller is actively managing the transfer operation, but redirection may also be required to run for a period of time either before the transfer operation begins, or after the transfer operation is complete, depending on the target address range used by the redirection controller when identifying access requests to intercept. For example, in cases where the redirect controller is arranged to intercept addresses within the destination address range, one implementation will enable redirection before updating the page table and subsequently starting the transfer operation. Conversely, when the redirect controller is arranged to intercept addresses within the source address range, the redirect controller in an implementation will remain enabled until the transfer operation is complete and the page table is updated.

Ως μια εναλλακτική λύση της παροχής μιας ξεχωριστής σημαίας δυνατότητας ανακατεύθυνσης εντός της γενικής κατάστασης 180, οι έγκυρες σημαίες 175 μπορούν για παράδειγμα να χρησιμοποιούνται για να προσδιορίζουν πότε θα πρέπει να δίνεται δυνατότητα στον ελεγκτή ανακατεύθυνσης. Σε μια τέτοια περίπτωση, θα δινόταν πάντα δυνατότητα στην ανακατεύθυνση όσο εκκρεμεί η εκτέλεση λειτουργιών αντιγραφής. As an alternative to providing a separate redirect enable flag within the general state 180, valid flags 175 can for example be used to determine when the redirect controller should be enabled. In such a case, failover would always be enabled pending copy operations.

Τα Σχήματα 4Α και 4Β παρέχουν ένα διάγραμμα ροής το οποίο απεικονίζει τη λειτουργία του συστήματος του Σχήματος 1 σύμφωνα με μια υλοποίηση, με σκοπό την υλοποίηση μιας μεταφοράς δεδομένων εντός της μνήμης 40. Στο βήμα 200, η μηχανή μεταφοράς δεδομένων 35 προσδιορίζει κατά πόσο έχει ληφθεί ένα νέο αίτημα μεταφοράς. Όταν έχει ληφθεί ένα νέο αίτημα μεταφοράς, τότε στο βήμα 205 οι καταχωρητές ελέγχου 105 συμπληρώνονται με τις περιοχές διευθύνσεων προέλευσης και προορισμού και κάθε άλλη σχετική πληροφορία, όπως εξετάστηκε νωρίτερα. Figures 4A and 4B provide a flow diagram illustrating the operation of the system of Figure 1 in accordance with one embodiment, in order to implement a data transfer within the memory 40. In step 200, the data transfer engine 35 determines whether it has been received a new transfer request. When a new transfer request has been received, then in step 205 the control registers 105 are populated with the source and destination address ranges and any other relevant information, as discussed earlier.

Σε μια υλοποίηση, η μηχανή μεταφοράς δεδομένων μπορεί να διατάσσεται ώστε να μην αποδέχεται ένα νέο αίτημα μεταφοράς ενώ εκκρεμεί ήδη ένα άλλο αίτημα μεταφοράς. Σε μια υλοποίηση, το λογισμικό του συστήματος θα διατασσόταν ώστε να εξασφαλίζει ότι οι λειτουργίες μεταφοράς θα διατάσσονται σε σειρά και θα αποτρέπεται η περίπτωση μιας τέτοιας κατάστασης, όμως σε μια εναλλακτική υλοποίηση η μηχανή μεταφοράς δεδομένων μπορεί να διατάσσεται ώστε να μην αποδέχεται ένα αίτημα μεταφοράς που παρουσιάζεται στην είσοδό της ενώ εκκρεμεί ένα άλλο αίτημα μεταφοράς. In one implementation, the data transfer engine may be ordered not to accept a new transfer request while another transfer request is already pending. In one embodiment, the system software would be arranged to ensure that transfer operations are ordered and prevent such a situation from occurring, but in an alternative embodiment the data transfer engine may be arranged not to accept a transfer request that presented at its entrance while another transfer request is pending.

Μόλις συμπληρωθούν οι καταχωρητές ελέγχου, τότε στο βήμα 210 ο ελεγκτής διευθέτησης εκδίδει και πάλι ένα σήμα αναγνώρισης προς το στοιχείο επεξεργασίας που αιτείται. Στο βήμα 215 το στοιχείο επεξεργασίας που αιτείται ενημερώνει στη συνέχεια τους πίνακες σελίδων 45 ώστε οι σχετικές εικονικές διευθύνσεις να αντιστοιχούνται στην(ις) περιοχή(ές) διευθύνσεων προορισμού και όχι στην(ις) περιοχή(ές) διευθύνσεων προέλευσης. Συγκεκριμένα, σε αυτή την υλοποίηση υποτίθεται ότι η περιοχή διευθύνσεων στόχου επιλέγεται ώστε να είναι η(οι) περιοχή(ές) διευθύνσεων προορισμού και ότι τα αιτήματα πρόσβασης που προσδιορίζουν διευθύνσεις εντός της(ων) περιοχής(ών) διευθύνσεων προορισμού θα αναχαιτίζονται από τον ελεγκτή ανακατεύθυνσης. Ωστόσο, σε άλλες υλοποιήσεις, όπως εξετάστηκε νωρίτερα, η περιοχή διευθύνσεων στόχου μπορεί αντίθετα να είναι η(οι) περιοχή(ές) διευθύνσεων προέλευσης στην οποία περίπτωση οι πίνακες σελίδων δε θα ενημερώνονται πριν την εκτέλεση της λειτουργίας μεταφοράς, αλλά αντίθετα θα ενημερώνονται μετά. Once the control registers are filled, then in step 210 the settlement controller again issues an acknowledgment signal to the requesting processing element. In step 215 the requesting processing element then updates the page tables 45 so that the relevant virtual addresses map to the destination address range(s) rather than the source address range(s). Specifically, in this implementation it is assumed that the target address range is chosen to be the destination address range(s) and that access requests specifying addresses within the destination address range(s) will be intercepted by the controller redirection. However, in other implementations, as discussed earlier, the target address range may instead be the source address range(s) in which case the page tables will not be updated before the transfer operation is performed, but instead will be updated afterwards.

Σε ορισμένες υλοποιήσεις, η μηχανή μεταφοράς δεδομένων μπορεί να προσδιορίζει την προς χρήση περιοχή διευθύνσεων στόχου ανάλογα τον τύπο της μετανάστευσης που εκτελείται. Για παράδειγμα, για μια λειτουργία συγκέντρωσης στην οποία συγχωνεύονται πολλές συνεχείς περιοχές διευθύνσεων προέλευσης σε μια συνεχή μεγαλύτερη περιοχή διευθύνσεων προορισμού, μπορεί να είναι επωφελής η χρήση της συνεχούς περιοχής διευθύνσεων προορισμού ως της περιοχής διευθύνσεων προορισμού, εφόσον με τη χρήση μιας συνεχούς περιοχής κάνει το κύκλωμα ταύτισης διευθύνσεων που χρησιμοποιείται από τον ελεγκτή ανακατεύθυνσης να προσδιορίζει σημαντικά απλούστερα κατά πόσο ένα αίτημα πρόσβασης θα πρέπει να αναχαιτίζεται. Αντίθετα, σε περίπτωση εκτέλεσης μιας λειτουργίας διασποράς για τη διασπορά δεδομένων από μια συνεχή περιοχή διευθύνσεων προέλευσης σε πολλές ασυνεχείς περιοχές διευθύνσεων προορισμού, μπορεί να είναι προτιμότερη η χρήση της μοναδικής συνεχούς περιοχής διευθύνσεων προέλευσης ως της περιοχής διευθύνσεων στόχου. In some implementations, the data transfer engine may determine the target address range to use depending on the type of migration being performed. For example, for an aggregation operation in which multiple contiguous source address ranges are merged into a larger contiguous destination address range, it may be advantageous to use the contiguous destination address range as the destination address range, since using a contiguous range makes the circuit address matching used by the redirect controller to determine significantly more simply whether an access request should be intercepted. Conversely, when performing a scatter operation to scatter data from a contiguous source address range to multiple non-contiguous destination address ranges, it may be preferable to use the single contiguous source address range as the target address range.

Επιστρέφοντας στο Σχήμα 4Α, στο βήμα 220 το στοιχείο επεξεργασίας ακυρώνει κάθε εγγραφή TLB που έχει για τις σχετικές εικονικές διευθύνσεις και επίσης εκπέμπει ένα μήνυμα στα άλλα στοιχεία επεξεργασίας να κάνουν το ίδιο. Και πάλι, αυτό υποθέτει ότι η(οι) περιοχή(ές) διευθύνσεων προορισμού χρησιμοποιείται ως η περιοχή διευθύνσεων στόχου. Σε μια υλοποίηση στην οποία χρησιμοποιείται η(οι) περιοχή (ές) διευθύνσεων προέλευσης ως περιοχή διευθύνσεων στόχου, τότε οι εγγραφές TLB δε θα ακυρώνονται πριν την εκτέλεση της λειτουργίας μεταφοράς, αλλά αντίθετα θα ακυρώνονται μετά την ολοκλήρωση της λειτουργίας μεταφοράς. Returning to Figure 4A, in step 220 the processing element invalidates any TLB entries it has for the associated virtual addresses and also broadcasts a message to the other processing elements to do the same. Again, this assumes that the destination address range(s) is being used as the target address range. In an implementation in which the source address range(s) is used as the target address range, then the TLB entries will not be invalidated before the transfer operation is performed, but instead will be invalidated after the transfer operation is completed.

Μετά τα βήματα 215 και 220, τότε η διαδικασία συνεχίζει στο βήμα 225 όπου ο ελεγκτής μεταφοράς δεδομένων ενεργοποιείται για την έναρξη της μεταφοράς των δεδομένων από τις διευθύνσεις προέλευσης στις διευθύνσεις προορισμού. After steps 215 and 220, the process then continues to step 225 where the data transfer controller is activated to begin transferring the data from the source addresses to the destination addresses.

Όπως δείχνεται στη συνέχεια στο Σχήμα 4Β, προσδιορίζεται στο βήμα 230 κατά πόσο έχει ολοκληρωθεί η λειτουργία μεταφοράς, και όσο δεν ολοκληρώνεται η λειτουργία μεταφοράς, η διαδικασία συνεχίζει στο βήμα 235, όπου προσδιορίζεται κατά πόσο έχει ληφθεί ένα νέο αίτημα πρόσβασης από τον ελεγκτή ανακατεύθυνσης 115. Η διαδικασία εκτελείται σε βρόχο στα βήματα 230 και 235 είτε μέχρι ολοκληρωθεί η λειτουργία μεταφοράς, είτε ληφθεί ένα αίτημα πρόσβασης. As shown next in Figure 4B, it is determined in step 230 whether the transfer operation has been completed, and as long as the transfer operation is not completed, the process continues to step 235, where it is determined whether a new access request has been received from the redirect controller 115 .The process loops through steps 230 and 235 until either the transfer operation completes or an access request is received.

Όταν ληφθεί ένα αίτημα πρόσβασης, ο ελεγκτής ανακατεύθυνσης προσδιορίζει στη συνέχεια στο βήμα 240 κατά πόσο η φυσική διεύθυνση που προσδιορίζεται από το αίτημα πρόσβασης εμπίπτει στην περιοχή διευθύνσεων προορισμού που προσδιορίζεται εντός των καταχωρητών ελέγχου. Εάν δεν εμπίπτει, τότε το αίτημα πρόσβασης απλά μεταδίδεται προς το σύστημα μνήμης 40 με το συνήθη τρόπο στο βήμα 250. When an access request is received, the redirect controller then determines in step 240 whether the physical address specified by the access request falls within the range of destination addresses specified within the control registers. If it does not, then the access request is simply transmitted to the memory system 40 in the usual manner at step 250.

Ωστόσο, εάν η φυσική διεύθυνση εμπίπτει στην περιοχή διευθύνσεων προορισμού στους καταχωρητές ελέγχου τότε ο ελεγκτής ανακατεύθυνσης 115 εφαρμόζει μια λειτουργία ανακατεύθυνσης μνήμης στο βήμα 245 με σκοπό τον καθορισμό της προς μετάδοση κατάλληλης φυσικής διεύθυνσης ή των φυσικών διευθύνσεων. Όπως για παράδειγμα θα εξεταστεί αργότερα αναφορικά με το Σχήμα 5Α, σύμφωνα με μια υλοποίηση της λειτουργίας ανακατεύθυνσης μνήμης, όταν λαμβάνονται αιτήματα πρόσβασης για εγγραφή, η λειτουργία ανακατεύθυνσης μνήμης μπορεί να προκαλέσει την εκτέλεση μιας εγγραφής τόσο στη διεύθυνση προέλευσης, όσο και στην αντίστοιχη διεύθυνση προορισμού, προκαλώντας την αποτελεσματική δημιουργία δύο αιτημάτων πρόσβασης στο βήμα 245 πριν τη συνέχιση της διαδικασίας στο βήμα 250. However, if the physical address falls within the destination address range in the control registers then the redirection controller 115 applies a memory redirection operation in step 245 to determine the appropriate physical address or addresses to be transmitted. As will for example be discussed later with reference to Figure 5A, according to one implementation of the memory redirection function, when write access requests are received, the memory redirection function may cause a write to be performed on both the source address and the corresponding destination address , effectively causing two access requests to be generated in step 245 before proceeding to step 250.

Μετά τη μετάδοση του αιτήματος πρόσβασης ή των αιτημάτων πρόσβασης προς τις ουρές φόρτωσης και αποθήκευσης 120 στο βήμα 250, η διαδικασία επιστρέφει στο βήμα 230. After transmitting the access request or access requests to the load and store queues 120 in step 250 , the process returns to step 230 .

Μόλις προσδιοριστεί στο βήμα 230 ότι έχει ολοκληρωθεί η λειτουργία μεταφοράς, τότε η διαδικασία συνεχίζει στο βήμα 255, όπου η σχετική υποδοχή ή οι υποδοχές στο χώρο αποθήκευσης ελέγχου ακυρώνονται και στη συνέχεια απαγορεύεται κάθε επιπλέον ανακατεύθυνση. Απενεργοποιώντας τη λειτουργία ανακατεύθυνσης του ελεγκτή ανακατεύθυνσης 115, αυτό σημαίνει ότι οποιαδήποτε μετέπειτα αιτήματα πρόσβασης που εκδίδονται προς διευθύνσεις εντός της περιοχής διευθύνσεων προορισμού θα έχουν απευθείας πρόσβαση στις σωστές διευθύνσεις στη μνήμη. Δεν απαιτείται κάποια επιπλέον ενέργεια εφόσον οι πίνακες σελίδων θα έχουν ήδη ενημερωθεί προηγουμένως στο βήμα 215 ώστε να προσδιοριστεί η σωστή αντιστοίχιση που πρέπει να χρησιμοποιηθεί μετά την ολοκλήρωση της μεταφοράς δεδομένων. Once it is determined in step 230 that the transfer operation is complete, then the process continues to step 255, where the associated slot or slots in the control store are invalidated and any further redirection is then prohibited. By disabling the redirection function of the redirection controller 115, this means that any subsequent access requests issued to addresses within the destination address range will directly access the correct addresses in memory. No additional action is required since the page tables will already have been previously updated in step 215 to determine the correct mapping to use after the data transfer is complete.

Η λειτουργία ανακατεύθυνσης μνήμης που εκτελέστηκε στο βήμα 245 μπορεί να υλοποιείται με έναν αριθμό τρόπων. Το Σχήμα 5Α απεικονίζει ένα παράδειγμα υλοποίησης. Στο βήμα 300, προσδιορίζεται κατά πόσο το αίτημα πρόσβασης είναι ένα αίτημα ανάγνωσης και εάν είναι, η διεύθυνση που προσδιορίστηκε και δόθηκε από το αίτημα πρόσβασης αντιστοιχείται σε μια αντίστοιχη διεύθυνση προέλευσης εντός της(ων) περιοχής(ών) διευθύνσεων προέλευσης. Στη συνέχεια η διαδικασία συνεχίζει στο βήμα 250 του Σχήματος 4Β. The memory redirection operation performed in step 245 can be implemented in a number of ways. Figure 5A illustrates an example embodiment. In step 300, it is determined whether the access request is a read request, and if so, the address identified and given by the access request is matched to a corresponding source address within the source address range(s). The process then continues to step 250 of Figure 4B.

Ωστόσο, εάν το αίτημα πρόσβασης δεν είναι ένα αίτημα πρόσβασης για ανάγνωση, δηλ. είναι ένα αίτημα πρόσβασης για εγγραφή, η διαδικασία συνεχίζει στο βήμα 310 όπου η εφαρμογή της λειτουργία ανακατεύθυνσης μνήμης προκαλεί την αποτελεσματική δημιουργία δύο αιτημάτων πρόσβασης. Ένα αίτημα πρόσβασης έχει μια καθορισμένη διεύθυνση η οποία αντιστοιχείται στη διεύθυνση προέλευσης, ενώ το άλλο χρησιμοποιεί τη διεύθυνση προορισμού όπως προσδιορίζεται από το αίτημα πρόσβασης που λήφθηκε στο βήμα 235. Αυτό συνεπώς εξασφαλίζει ότι οι λειτουργίες εγγραφής συμβαίνουν τόσο στην παλαιά διεύθυνση, όσο και στη νέα διεύθυνση και συνεπώς εξασφαλίζει ότι η αρχική έκδοση και το αντίγραφο παραμένουν σε συγχρονισμό. Μολονότι δημιουργεί πράγματι διπλότυπες λειτουργίες εγγραφής, η επιβάρυνση αυτής της προσέγγισης είναι πιθανά χαμηλή εάν οι περιοχές προέλευσης και προορισμού οι οποίες υποβάλλονται στη λειτουργία μεταφοράς δεδομένων δε χρησιμοποιούνται έντονα κατά την περίοδο εκτέλεσης της λειτουργίας μεταφοράς δεδομένων. Μετά το βήμα 310, η διαδικασία συνεχίζει στη συνέχεια στο βήμα 250 του Σχήματος 4Β. However, if the access request is not a read access request, i.e., it is a write access request, the process continues to step 310 where the implementation of the memory redirection function effectively causes two access requests to be generated. One access request has a specified address which corresponds to the source address, while the other uses the destination address as determined by the access request received in step 235. This therefore ensures that write operations occur at both the old address and the new one. address and thus ensures that the original version and the copy remain in sync. Although it does create duplicate write operations, the overhead of this approach is likely to be low if the source and destination regions undergoing the data transfer operation are not heavily used during the execution period of the data transfer operation. After step 310, the process then continues to step 250 of Figure 4B.

Το Σχήμα 5Β απεικονίζει μια εναλλακτική υλοποίηση για την εκτέλεση μιας λειτουργίας ανακατεύθυνσης μνήμης στο βήμα 245 του Σχήματος 4Β. Στο βήμα 320, προσδιορίζεται από τον ελεγκτή ανακατεύθυνσης 115 κατά πόσο τα δεδομένα στην καθορισμένη διεύθυνση του αιτήματος πρόσβασης έχει ήδη μεταφερθεί. Όπως εξετάστηκε νωρίτερα, σε μια υλοποίηση αυτός ο προσδιορισμός μπορεί να πραγματοποιείται από τον ελεγκτή ανακατεύθυνσης 115 αναφορικά με τα περιεχόμενα των καταχωρητών ελέγχου 105 και για παράδειγμα κοιτάζοντας στο πεδίο τρέχουσας κατάστασης 165 εντός της σχετικής υποδοχής. Εάν η καθορισμένη διεύθυνση έχει ήδη μεταφερθεί, τότε η διαδικασία συνεχίζει στο βήμα 330 όπου η καθορισμένη διεύθυνση αντιστοιχείται στη διεύθυνση προορισμού. Στην υλοποίηση που περιγράφεται στα Σχήματα 4Α και 4Β, η καθορισμένη διεύθυνση είναι ήδη η διεύθυνση προορισμού, συνεπώς στο βήμα 330 αυτή η διεύθυνση προορισμού απλά διατηρείται ως η διεύθυνση του αιτήματος πρόσβασης η οποία μεταδίδεται στο βήμα 250. Figure 5B illustrates an alternative implementation for performing a memory redirection operation in step 245 of Figure 4B. In step 320, it is determined by the redirection controller 115 whether the data at the specified address of the access request has already been transferred. As discussed earlier, in one embodiment this determination may be made by the redirection controller 115 with reference to the contents of the control registers 105 and for example by looking at the current state field 165 within the relevant slot. If the specified address has already been transferred, then the process continues to step 330 where the specified address is mapped to the destination address. In the embodiment described in Figures 4A and 4B, the specified address is already the destination address, so in step 330 this destination address is simply retained as the access request address which is transmitted in step 250.

Ωστόσο, εάν η καθορισμένη διεύθυνση δεν έχει μεταφερθεί ακόμη, η καθορισμένη διεύθυνση αντιστοιχείται στη διεύθυνση προέλευσης στο βήμα 325 πριν τη συνέχεια στο βήμα 250. Συνεπώς, σύμφωνα με αυτή την υλοποίηση, ο ελεγκτής ανακατεύθυνσης προωθεί τις προσβάσεις προς θέσεις οι οποίες δεν έχουν αντιγράφει ακόμη στη θέση προέλευσης και τις προσβάσεις προς θέσεις που έχουν αντιγράφει στη θέση προορισμού. Υποθέτοντας ότι η λειτουργία μεταφοράς δεδομένων εκτελείται αλληλοδιάδοχα όσον αφορά στις διευθύνσεις εντός της περιοχής διευθύνσεων, απαιτείται μόνο μια μικρή ποσότητα κατάστασης για την παρακολούθηση των θέσεων που έχουν αντιγράφει και αυτών που δεν έχουν αντιγράφει. However, if the specified address has not yet been moved, the specified address is mapped to the source address in step 325 before proceeding to step 250. Therefore, according to this embodiment, the redirect controller forwards accesses to locations that have not yet copied in the source location and the accesses to locations they have copied to the destination location. Assuming that the data transfer operation is performed sequentially with respect to the addresses within the address range, only a small amount of state is required to keep track of which locations have and have not.

Το Σχήμα 5C απεικονίζει μια ακόμη επιπλέον εναλλακτική υλοποίηση της λειτουργίας ανακατεύθυνσης μνήμης στο βήμα 245 του Σχήματος 4Β. Στο βήμα 340, προσδιορίζεται κατά πόσο η καθορισμένη διεύθυνση έχει ήδη αντιγράφει και εάν έχει αντιγράφει η διαδικασία συνεχίζει στο βήμα 345, το οποίο είναι ισοδύναμο με το βήμα 330 του Σχήματος 5Β που εξετάστηκε νωρίτερα. Η διαδικασία συνεχίζει μετά στο βήμα 250 στο βήμα 350 του Σχήματος 5C. Figure 5C illustrates yet another alternative implementation of the memory redirection operation in step 245 of Figure 4B. In step 340, it is determined whether the specified address has already copied, and if it has, the process continues to step 345, which is equivalent to step 330 of Figure 5B discussed earlier. The process then continues at step 250 to step 350 of Figure 5C.

Ωστόσο, εάν η καθορισμένη διεύθυνση δεν έχει αντιγράφει ακόμη, τότε στο βήμα 355 ο ελεγκτής ανακατεύθυνσης 115 επικοινωνεί με τον ελεγκτή μεταφοράς δεδομένων 110 ώστε να εκκινεί τη μεταφορά μιας βαθμίδας δεδομένων η οποία περιλαμβάνει τα δεδομένα που συσχετίζονται με την καθορισμένη διεύθυνση του αιτήματος πρόσβασης. Το μέγεθος της μεταφερθείσας βαθμίδας δεδομένων μπορεί να μεταβάλλεται ανάλογα την υλοποίηση, όμως σε μια υλοποίηση είναι μια βαθμίδα δεδομένων μεγέθους γραμμής κρυφής μνήμης, ενώ η μηχανή μεταφοράς δεδομένων διατηρεί εντός των καταχωρητών ελέγχου 105 ένα χάρτη bit των βαθμιδών δεδομένων μεγέθους γραμμής κρυφής μνήμης που έχουν αντιγράφει ώστε να προσδιορίζεται ποιες βαθμίδες έχουν αντιγράφει και ποιες όχι. However, if the specified address has not yet copied, then in step 355 the redirect controller 115 contacts the data transfer controller 110 to initiate the transfer of a data layer which includes the data associated with the specified address of the access request. The size of the transferred data tier can vary by implementation, but in one implementation it is a cache line sized data tier, while the data transfer engine maintains within the control registers 105 a bitmap of the cache line sized data tiers that have been copied to determine which ranks have copied and which have not.

Η διαδικασία συνεχίζει μετά στο βήμα 360 όπου το αίτημα πρόσβασης επεξεργάζεται στο βήμα 250. Το αίτημα πρόσβασης μπορεί να επεξεργάζεται με έναν αριθμό τρόπων. Για παράδειγμα, σε μια υλοποίηση, το αίτημα πρόσβασης μπορεί να διακόπτεται προσωρινά μέχρι την ολοκλήρωση της μεταφοράς της βαθμίδας δεδομένων που ξεκίνησε στο βήμα 355 και την ενημέρωση του χάρτη bit των βαθμιδών μεγέθους γραμμής κρυφής μνήμης που έχουν αντιγράφει. Σε αυτό το σημείο, το αίτημα πρόσβασης μπορεί στη συνέχεια να επεξεργάζεται με την υλοποίηση ενός βήματος ισοδύναμου με το βήμα 345 ώστε να μεταδίδεται το αίτημα πρόσβασης στη διεύθυνση προορισμού. The process then continues to step 360 where the access request is processed in step 250. The access request can be processed in a number of ways. For example, in one implementation, the access request may be paused until the transfer of the data tier started in step 355 is completed and the bitmap of the cache line size tiers they have copied is updated. At this point, the access request may then be processed by implementing a step equivalent to step 345 to transmit the access request to the destination address.

Ωστόσο, σε μια εναλλακτική υλοποίηση μπορεί να επιτυγχάνεται περαιτέρω εξοικονόμηση στην απόδοση συγχωνεύοντας ουσιαστικά την επεξεργασία του αιτήματος πρόσβασης με τη διαδικασία μεταφοράς βαθμιδών. Γ ια παράδειγμα, στην περίπτωση ενός αιτήματος πρόσβασης για ανάγνωση, αφού ο ελεγκτής μεταφοράς δεδομένων 110 διαβάσει τα απαραίτητα δεδομένα και πάλι στην προσωρινή μνήμη 125 των ουρών φόρτωσης και αποθήκευσης 120, το αίτημα πρόσβασης για ανάγνωση μπορεί στη συνέχεια να εξυπηρετείται χρησιμοποιώντας τα περιεχόμενα εντός της προσωρινής μνήμης χωρίς να απαιτείται η έκδοση ενός ξεχωριστού αιτήματος πρόσβασης για ανάγνωση στη μνήμη. Παρομοίως, εάν το αίτημα πρόσβασης είναι ένα αίτημα πρόσβασης για εγγραφή, μόλις τα δεδομένα διαβαστούν από τον ελεγκτή μεταφοράς δεδομένων 110 στην προσωρινή μνήμη 125, τα νέα δεδομένα εγγραφής από το αίτημα πρόσβασης για εγγραφή μπορούν να συγχωνεύονται σε αυτή τη βαθμίδα δεδομένων, πριν την εγγραφή των δεδομένων στην προσωρινή μνήμη στις θέσεις μνήμης προορισμού ώστε να ολοκληρώνεται η μεταφορά της βαθμίδας δεδομένων. However, in an alternative implementation further savings in performance can be achieved by essentially merging the access request processing with the tier transfer process. For example, in the case of a read access request, after the data transfer controller 110 has read the necessary data back into the buffer 125 of the load and store queues 120, the read access request can then be serviced using the contents within the cache without requiring a separate memory read access request to be issued. Similarly, if the access request is a write access request, once the data is read from the data transfer controller 110 into the buffer 125, the new write data from the write access request can be merged into this data tier, before the write of the buffered data to the destination memory locations to complete the data tier transfer.

Τα Σχήματα 6Α έως 6C απεικονίζουν σχηματικά ένα παράδειγμα υλοποίησης της διαδικασίας των Σχημάτων 4Α και 4Β για το παράδειγμα στο οποίο δύο μικρότερες σελίδες προέλευσης a1, a2400, 405 συγχωνεύονται σε μια μεγαλύτερη σελίδα προορισμού b 410 εντός της φυσικής μνήμης. Οι εγγραφές 415, 420 απεικονίζουν σχηματικά τις σχετικές πληροφορίες περιγραφέα εντός των πινάκων σελίδων οι οποίες εξαναγκάζουν την αντιστοίχιση της μετάφρασης εικονικών σε φυσικές διευθύνσεις στις αντίστοιχες ζώνες διευθύνσεων προέλευσης 400, 405. Όπως εικονίζεται στο Σχήμα 6Α, οι γειτονικές εγγραφές 415, 420 εικονίζουν ότι οι δύο ζώνες προέλευσης 400, 405 έχουν γειτονικές περιοχές εικονικών διευθύνσεων, ενώ σκοπός της λειτουργίας μεταφοράς δεδομένων είναι η επανάληψη της αντιστοίχισης των μη συνεχόμενων φυσικών σελίδων 400, 405 σε μια συνεχόμενη περιοχή φυσικών διευθύνσεων 410. Η μηχανή αντιγραφής απεικονίζεται σχηματικά από τη βαθμίδα 430, ενώ οι εγγραφές 435, 440 αναπαριστούν τις πληροφορίες ελέγχου που αποθηκεύονται εντός δύο υποδοχών. εντός των καταχωρητών ελέγχου 105, με κάθε υποδοχή να προσδιορίζει μια από τις περιοχές διευθύνσεων προέλευσης και ένα αντίστοιχο τμήμα της περιοχής διευθύνσεων προορισμού. Figures 6A through 6C schematically illustrate an example implementation of the process of Figures 4A and 4B for the example in which two smaller source pages a1, a2400, 405 are merged into a larger destination page b 410 within physical memory. Entries 415, 420 schematically depict the relevant descriptor information within the page tables that forces the mapping of the virtual-to-physical address translation to the respective source address zones 400, 405. As depicted in Figure 6A, adjacent entries 415, 420 depict that the two source zones 400, 405 have adjacent ranges of virtual addresses, while the purpose of the data transfer operation is to repeat the mapping of non-contiguous physical pages 400, 405 into a contiguous range of physical addresses 410. The copy machine is schematically illustrated by step 430, while entries 435, 440 represent the control information stored within two slots. within control registers 105, with each slot specifying one of the source address ranges and a corresponding portion of the destination address range.

Ανάλογα, μετά την αποθήκευση των πληροφοριών των καταχωρητών ελέγχου, η μηχανή αντιγραφής γνωρίζει τις περιοχές προέλευσης 400, 405 και την περιοχή προορισμού 410. Σε αυτό το σημείο, είναι δυνατή η ενεργοποίηση των λειτουργιών του ελεγκτή μεταφοράς δεδομένων 110 και του ελεγκτή ανακατεύθυνσης 115 ώστε να ξεκινήσει η λειτουργία μεταφοράς δεδομένων και ο έλεγχος ανακατεύθυνσης. Όπως εικονίζεται στο Σχήμα 6Β, και όπως εξετάστηκε νωρίτερα αναφορικά με το βήμα 215 του Σχήματος 4Α, οι πίνακες σελίδων θα ενημερωθούν ώστε να δημιουργείται μια νέα εγγραφή 445 η οποία αντιστοιχεί τη μεγεθυσμένη συνεχόμενη περιοχή εικονικών διευθύνσεων σε αντίστοιχες φυσικές διευθύνσεις εντός της περιοχής διευθύνσεων προορισμού 410. Όπως αναφέρθηκε νωρίτερα αναφορικά με το βήμα 220 του Σχήματος 4Α, οι σχετικές εγγραφές της TLB επίσης θα ακυρώνονται ώστε κάθε αίτημα πρόσβασης που θα εκδίδεται μετέπειτα ενώ εκτελείται η λειτουργία μεταφοράς δεδομένων, και το οποίο σχετίζεται με τα δεδομένα που μεταφέρονται, θα προκαλεί την εκτέλεση της διαδικασίας βάδισης του πίνακα σελίδων με σκοπό την απόκτηση των δεδομένων μετάφρασης διευθύνσεων που ενθυλακώνονται εντός των περιγραφέων των πινάκων σελίδων που αναπαρίστανται με την εγγραφή 445. Accordingly, after storing the control registers information, the copy engine knows the source areas 400, 405 and the destination area 410. At this point, the functions of the data transfer controller 110 and the redirection controller 115 can be activated to start the data transfer operation and redirect control. As illustrated in Figure 6B, and as discussed earlier with respect to step 215 of Figure 4A, the page tables will be updated to create a new entry 445 that maps the enlarged contiguous virtual address range to corresponding physical addresses within the destination address range 410 .As mentioned earlier with respect to step 220 of Figure 4A, the relevant TLB entries will also be invalidated so that any access request issued later while the data transfer operation is being performed, and which is related to the data being transferred, will cause the of the page table walking process to obtain the address translation data encapsulated within the page table descriptors represented by entry 445.

Όπως δείχνεται από τη γραμμή 450, οποιοδήποτε αίτημα πρόσβασης εκδίδεται το οποίο προσδιορίζει μια διεύθυνση προορισμού εντός της περιοχής διευθύνσεων προορισμού 410 θα αναχαιτίζεται από τη μηχανή αντιγραφής 430. Η μηχανή αντιγραφής θα εκτελεί στη συνέχεια τη λειτουργία ανακατεύθυνσης μνήμης ώστε να προσδιορίζεται σε ποιες φυσικές διευθύνσεις πραγματοποιείται πρόσβαση, χρησιμοποιώντας κάποια από τις προσεγγίσεις των Σχημάτων 5Α έως 5C που εξετάστηκαν νωρίτερα. Ταυτόχρονα, η διαδικασία αντιγραφής θα εκτελείται από τη μηχανή αντιγραφής, όπως υποδεικνύεται σχηματικά από το βέλος 460. Σε μια υλοποίηση, οι αποκλειστικές προσβάσεις ανάγνωσης χρησιμοποιούνται για τις λειτουργίες ανάγνωσης που εκτελούνται όσον αφορά στην περιοχή διευθύνσεων προέλευσης, με τις προσβάσεις εγγραφής να χρησιμοποιούνται στη συνέχεια για την αποθήκευση των αποτελεσμάτων στη νέα περιοχή διευθύνσεων προορισμού 410. Η χρήση των αποκλειστικών προσβάσεων ανάγνωσης ακυρώνει τα αποθηκευμένα σε κρυφή μνήμη αντίγραφα των δεδομένων που συσχετίζονται με την παλαιά περιοχή διευθύνσεων προέλευσης και συνεπώς απελευθερώνει αποτελεσματικά χώρο κρυφής μνήμης. As shown by line 450, any access request issued that specifies a destination address within the destination address range 410 will be intercepted by the copy engine 430. The copy engine will then perform the memory redirection operation to determine which physical addresses it is made to access, using some of the approaches of Figures 5A to 5C discussed earlier. At the same time, the copy process will be performed by the copy engine, as schematically indicated by arrow 460. In one embodiment, exclusive read accesses are used for read operations performed with respect to the source address space, with write accesses being used thereafter to store the results in the new destination address range 410. Using exclusive read accesses invalidates cached copies of the data associated with the old source address range and thus effectively frees up cache space.

Όπως δείχνεται στο Σχήμα 6C, μόλις ολοκληρωθεί η λειτουργία αντιγραφής, η αντιστοίχιση εντός της μηχανής αντιγραφής αποξηλώνεται, ακυρώνοντας τις σχετικές πληροφορίες ελέγχου στους καταχωρητές ελέγχου. Αυτό διακόπτει κάθε περαιτέρω αναχαίτιση αιτημάτων πρόσβασης που εκδίδονται προς διευθύνσεις προορισμού εντός της περιοχής διευθύνσεων προορισμού. Αντίθετα, τέτοια αιτήματα πρόσβασης δρομολογούνται απλά με κανονικό τρόπο προς την περιοχή διευθύνσεων προορισμού, δεδομένου ότι οι πίνακες σελίδων περιλαμβάνουν ήδη τις σωστές πληροφορίες για την παροχή αυτής της αντιστοίχισης. As shown in Figure 6C, once the copy operation is complete, the mapping within the copy machine is cleared, invalidating the associated control information in the control registers. This stops any further interception of access requests issued to destination addresses within the destination address range. Instead, such access requests are simply routed in a normal manner to the destination address range, since the page tables already contain the correct information to provide this mapping.

Στο παράδειγμα των Σχημάτων 6 Α έως 6C υποτίθεται ότι η περιοχή διευθύνσεων προορισμού χρησιμοποιείται ως περιοχή διευθύνσεων στόχου κατά τη διάρκεια της διαδικασίας αντιγραφής και συνεπώς είναι οι διευθύνσεις εντός της περιοχής διευθύνσεων προορισμού που αναχαιτίζονται από τη μηχανή αντιγραφής κατά τη διάρκεια της διαδικασίας αντιγραφής. Όπως εξετάστηκε νωρίτερα, σε μια εναλλακτική υλοποίηση η(οι) περιοχή(ές) διευθύνσεων προέλευσης θα μπορούσε(αν) αντίθετα να χρησιμοποιείται(ούνται) ως περιοχή διευθύνσεων στόχου, στην οποία περίπτωση δε θα ενημερώνονταν οι πίνακες σελίδων και οι εγγραφές TLB δε θα ακυρώνονταν, μέχρι την ολοκλήρωση της διαδικασίας αντιγραφής. In the example of Figures 6A to 6C it is assumed that the destination address range is used as the target address range during the copy process and thus it is the addresses within the destination address range that are intercepted by the copy engine during the copy process. As discussed earlier, in an alternative implementation the source address range(s) could instead be used as a target address range, in which case page tables would not be updated and TLB entries would not be invalidated , until the copy process is complete.

Σε μια ακόμη επιπλέον εναλλακτική υλοποίηση, όπως εξετάστηκε νωρίτερα, μια αποκλειστική περιοχή διευθύνσεων μπορεί να συσχετίζεται με τη μηχανή αντιγραφής 430, και αυτή η διαδικασία απεικονίζεται σχηματικά στο Σχήμα 7, και πάλι για το παράδειγμα στο οποίο δύο περιοχές διευθύνσεων προέλευσης 400, 405 συγχωνεύονται σε μια περιοχή διευθύνσεων προορισμού 410 εντός του χώρου διευθύνσεων της μνήμης. Όπως δείχνεται στο Σχήμα 7, μια αποκλειστική περιοχή διευθύνσεων 470 συσχετίζεται με τη μηχανή αντιγραφής και δε χρησιμοποιείται για κανένα άλλο σκοπό. Σύμφωνα με αυτή την υλοποίηση, όταν οι πίνακες σελίδων ενημερώνονται πριν την έναρξη της λειτουργίας αντιγραφής, αλλάζουν την αντιστοίχιση όπως υποδεικνύεται από το βήμα 1 480 στο Σχήμα 7, ώστε οι σχετικές εικονικές διευθύνσεις να αντιστοιχίζονται στην αποκλειστική περιοχή διευθύνσεων 470 και όχι στις περιοχές διευθύνσεων προέλευσης 400, 405. Διαφορετικά, η διαδικασία συνεχίζει όπως δείχνεται στα Σχήματα 6Α και 6Β, με κάθε πρόσβαση που κατευθύνεται στην περιοχή διευθύνσεων 470 να αναχαιτίζεται από τον ελεγκτή ανακατεύθυνσης και να αντιστοιχίζεται στις περιοχές διευθύνσεων προέλευσης 400, 405 ή στην περιοχή διευθύνσεων προορισμού 410 ανάλογα τα κριτήρια που εξετάστηκαν νωρίτερα αναφορικά με τα Σχήματα 5Α έως 5C. Με την ολοκλήρωση της λειτουργίας αντιγραφής, οι πίνακες σελίδων ενημερώνονται στη συνέχεια και πάλι ώστε να αλλάζουν οι αντιστοιχίσεις των εικονικών διευθύνσεων και να αντιστοιχίζονται τώρα στην περιοχή διευθύνσεων προορισμού 410 και όχι στην αποκλειστική περιοχή διευθύνσεων 470, όπως υποδεικνύεται από το βήμα 2490. In yet another alternative embodiment, as discussed earlier, a dedicated address range may be associated with copy engine 430, and this process is illustrated schematically in Figure 7, again for the example in which two source address ranges 400, 405 are merged into a destination address range 410 within the memory address space. As shown in Figure 7, a dedicated address range 470 is associated with the copier and is not used for any other purpose. According to this embodiment, when the page tables are updated before the copy operation begins, they change the mapping as indicated by step 1 480 in Figure 7 so that the associated virtual addresses are mapped to the exclusive address range 470 rather than the source address ranges 400, 405. Otherwise, the process continues as shown in Figures 6A and 6B, with any access directed to address range 470 intercepted by the redirect controller and mapped to source address ranges 400, 405 or destination address range 410 as appropriate criteria discussed earlier with respect to Figures 5A to 5C. Upon completion of the copy operation, the page tables are then updated again to change the virtual address mappings and now map to the destination address range 410 rather than the exclusive address range 470 as indicated by step 2490 .

Μολονότι η υλοποίηση που περιγράφεται αναφορικά με το Σχήμα 1 δείχνει ένα σύστημα Ομοιόμορφης πρόσβασης μνήμης (uniform memory access ή UMA), οι τεχνικές μπορούν επίσης να εφαρμόζονται όσον αφορά και σε συστήματα Μη ομοιόμορφης πρόσβασης μνήμης (non-uniform memory access ή NUMA), ένα παράδειγμα της οποίας δείχνεται στο Σχήμα 8. Σε αυτό το παράδειγμα, το σύστημα NUMA έχει δύο κόμβους NUMA 500, 510, κάθε ένας από τους οποίους χάριν απεικόνισης υποτίθεται ότι έχει δομή παρόμοια με αυτή που δείχνεται στο Σχήμα 1. Κάθε κόμβος NUMA 500, 510 έχει τη δική του συσχετισμένη μνήμη 505, 515 η οποία συνδέεται με μια αντίστοιχη διασύνδεση 520, 525. Σύμφωνα με τις περιγραφείσες υλοποιήσεις, κάθε διασύνδεση έχει τη δική της μηχανή μεταφοράς δεδομένων 530, 535, ενώ οι δύο διασυνδέσεις 520, 525 συνδέονται μέσω της διαδρομής 540. Σε μια τέτοια διάταξη, κάθε στοιχείο επεξεργασίας εντός οποιουδήποτε από τους κόμβους NUMA 500, 510 μπορεί να διατάσσεται ώστε να έχει πρόσβαση σε οποιαδήποτε από τις μεμονωμένες μνήμες 505, 515. Although the implementation described with reference to Figure 1 shows a Uniform Memory Access (UMA) system, the techniques can also be applied to Non-uniform Memory Access (NUMA) systems, a an example of which is shown in Figure 8. In this example, the NUMA system has two NUMA nodes 500, 510, each of which for the sake of illustration is assumed to have a structure similar to that shown in Figure 1. Each NUMA node 500, 510 has its own associated memory 505, 515 which is connected to a corresponding interface 520, 525. According to the described implementations, each interface has its own data transfer engine 530, 535, while the two interfaces 520, 525 are connected via the path 540. In such an arrangement, each processing element within any of the NUMA nodes 500, 510 may be arranged to access any of the individual memories 505, 515.

Όταν ένα αίτημα μεταφοράς δεδομένων εκδίδεται από ένα από τα στοιχεία επεξεργασίας, μια από τις μηχανές μεταφοράς δεδομένων 530, 535 θα αναλάβει ευθύνη για την εκτέλεση αυτής της μεταφοράς δεδομένων και τη διευθέτηση των καταχωρητών ελέγχου της ανάλογα. Σε μια υλοποίηση, στην οποία η(οι) περιοχή(ές) διευθύνσεων προορισμού χρησιμοποιείται(ούνται) ως περιοχή(ές) διευθύνσεων στόχου κατά τη διάρκεια της διαδικασίας αντιγραφής, η μηχανή μεταφοράς δεδομένων που συσχετίζεται με τη μνήμη που περιλαμβάνει την(ις) περιοχή(ές) διευθύνσεων προορισμού θα διαμορφώνεται συνήθως ώστε να διαχειρίζεται τη διαδικασία μεταφοράς δεδομένων. Ωστόσο, σε υλοποιήσεις στις οποίες η(οι) περιοχή(ές) διευθύνσεων προέλευσης χρησιμοποιείται(ούνται) ως περιοχή(ές) διευθύνσεων στόχου κατά τη διάρκεια της διαδικασίας, τότε μπορεί να είναι κατάλληλος ο ορισμός της μηχανής μεταφοράς δεδομένων που συσχετίζεται με τη μνήμη που περιλαμβάνει την(ις) περιοχή(ές) διευθύνσεων προέλευσης ως υπεύθυνης για τη διαχείριση της λειτουργίας μεταφοράς δεδομένων. Εάν η υλοποίηση που εξετάστηκε νωρίτερα αναφορικά με το Σχήμα 7 χρησιμοποιείται σε περιπτώσεις στις οποίες μια αποκλειστική περιοχή διευθύνσεων μνήμης συσχετίζεται με κάθε μηχανή μεταφοράς δεδομένων, τότε οποιαδήποτε από τις μηχανές μεταφοράς δεδομένων θα μπορούσε να διαμορφώνεται ώστε να διαχειρίζεται κάθε συγκεκριμένη διαδικασία μεταφοράς δεδομένων, ανεξάρτητα από ποια μνήμη περιλαμβάνει την(ις) περιοχή(ές) διευθύνσεων προέλευσης και ποια μνήμη περιλαμβάνει την(ις) περιοχή(ές) διευθύνσεων προορισμού. When a data transfer request is issued by one of the processing elements, one of the data transfer engines 530, 535 will take responsibility for performing that data transfer and arranging its control registers accordingly. In an embodiment, in which the destination address range(s) is(are) used as the target address range(s) during the copy process, the data transfer engine associated with the memory comprising the range(s) destination address(es) will usually be configured to handle the data transfer process. However, in implementations where the source address range(s) are used as the target address range(s) during processing, then it may be appropriate to define the data transfer engine associated with the memory that includes the source address range(s) as responsible for managing the data transfer function. If the implementation discussed earlier with respect to Figure 7 is used in cases where a dedicated memory address range is associated with each data transfer engine, then any of the data transfer engines could be configured to handle each particular data transfer process, regardless of which memory contains the source address range(s) and which memory contains the destination address range(s).

Από τις υλοποιήσεις που περιγράφηκαν παραπάνω, θα διαφανεί ότι τέτοιες υλοποιήσεις παρέχουν έναν υλικό μηχανισμό ο οποίος μπορεί να χρησιμοποιείται για τη διαχείριση λειτουργιών μετανάστευσης δεδομένων στη φυσική μνήμη. Ο υλικός μηχανισμός που χρησιμοποιήθηκε επιτρέπει στη λειτουργία μεταφοράς δεδομένων να συνεχίζει ασύγχρονα όσον αφορά σε οποιαδήποτε αιτήματα πρόσβασης επιδιώκουν την πρόσβαση στις ζώνες διευθύνσεων που επηρεάζονται, αποτρέποντας την ανάγκη φραγής κάθε τέτοιας πρόσβασης και συνεπώς βελτιώνοντας την απόδοση. Ο προτεινόμενος μηχανισμός μπορεί επίσης να μειώνει τον αριθμό των ακυρώσεων TLB που απαιτούνται κατά τη διάρκεια της διαδικασίας μεταφοράς δεδομένων, όταν συγκρίνεται με γνωστά συστήματα που εκτελούν τέτοια μετανάστευση σελίδων υπό τον έλεγχο λογισμικού χρησιμοποιώντας το λειτουργικό σύστημα του στοιχείου επεξεργασίας. Επιπλέον, οι προτεινόμενες τεχνικές μπορούν επίσης να βελτιώνουν το βαθμό χρησιμοποίησης της κρυφής μνήμης εξασφαλίζοντας ότι οι πληροφορίες που δε χρειάζονται πια στις κρυφές μνήμες ακυρώνονται κατά τη διάρκεια της διαδικασίας μεταφοράς δεδομένων. From the implementations described above, it will be apparent that such implementations provide a hardware mechanism that can be used to manage data migration operations in physical memory. The hardware mechanism used allows the data transfer operation to continue asynchronously to any access requests seeking access to the affected address ranges, preventing the need to block any such access and thereby improving performance. The proposed mechanism can also reduce the number of TLB cancellations required during the data transfer process when compared to known systems that perform such page migration under software control using the processing element's operating system. In addition, the proposed techniques can also improve cache utilization by ensuring that information no longer needed in caches is invalidated during the data transfer process.

Στην παρούσα εφαρμογή, οι λέξεις “διαμορφωμένο για...” χρησιμοποιούνται για να σημαίνουν ότι ένα στοιχείο μιας διάταξης έχει μια διαμόρφωση ικανή να εκτελεί την καθορισμένη λειτουργία. Σε αυτά τα πλαίσια, μια “διαμόρφωση” σημαίνει μια διάταξη ή ένας τρόπος διασύνδεσης από υλικό ή λογισμικό. Για παράδειγμα, η διάταξη μπορεί να έχει αποκλειστικό υλικό το οποίο παρέχει την καθορισμένη λειτουργία ή ένας επεξεργαστής ή μια άλλη διάταξη επεξεργασίας μπορεί να προγραμματίζεται ώστε να εκτελεί τη λειτουργία. Ο όρος “διαμορφωμένο για” δεν υπονοεί ότι το στοιχείο της διάταξης πρέπει να αλλάζει με κάποιο τρόπο ώστε να παρέχεται η καθορισμένη λειτουργία. 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 these contexts, a "configuration" means an arrangement or mode of interconnection of 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 function. The term “configured for” does not imply that the device element must be changed in any way to provide the specified function.

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

Claims (1)

ΑΞΙΩΣΕΙΣ 1. Μια διάταξη, η οποία περιλαμβάνει:1. An arrangement, which includes: έναν ελεγκτή μεταφοράς δεδομένων, ο οποίος αποκρίνεται σε ένα αίτημα μεταφοράς δεδομένων που λαμβάνεται από τη διάταξη από ένα στοιχείο επεξεργασίας, για την εκτέλεση μιας λειτουργίας μεταφοράς για τη μεταφορά δεδομένων από τουλάχιστον μια περιοχή διευθύνσεων προέλευσης στη μνήμη σε τουλάχιστον μια περιοχή διευθύνσεων προορισμού στη μνήμη, καιa data transfer controller, responsive to a data transfer request received by the device from a processing element, to perform a transfer operation to transfer data from at least one source address range in memory to at least one destination address range in memory; and έναν ελεγκτή ανακατεύθυνσης διαταγμένο, κατά την εκτέλεση της λειτουργίας μεταφοράς, για την αναχαίτιση ενός αιτήματος πρόσβασης το οποίο προσδιορίζει μια διεύθυνση στόχου εντός μιας περιοχής διευθύνσεων στόχου και την εκτέλεση μιας λειτουργίας ανακατεύθυνσης μνήμης ώστε να προκαλείται η επεξεργασία του εν λόγω αιτήματος πρόσβασης χωρίς να αναμένεται η ολοκλήρωση της λειτουργίας μεταφοράς.a redirection controller arranged, during execution of the transfer operation, to intercept an access request that specifies a target address within a target address range and to perform a memory redirection operation to cause said access request to be processed without waiting for the completion of transfer operation. 2. Μια διάταξη όπως αξιώνεται στην Αξίωση 1 , η οποία περιλαμβάνει επιπλέον:2. An arrangement as claimed in Claim 1, further comprising: έναν ελεγκτή διευθέτησης διαταγμένο ώστε να λαμβάνει το αίτημα μεταφοράς δεδομένων και να εκδίδει ένα σήμα ελέγχου που προκαλεί αιτήματα πρόσβασης που εκδίδονται ενώ εκτελείται η λειτουργία μεταφοράς και που συνδέεται με την μεταφορά δεδομένων από τη λειτουργία μεταφοράς, ώστε να προσδιορίσει ως την διεύθυνση στόχου μία διεύθυνση εντός της περιοχής διευθύνσεων στόχου.an arrangement controller arranged to receive the data transfer request and issue a control signal that causes access requests issued while the transfer operation is being performed and associated with the transfer of data from the transfer operation to specify as the target address an address within of the target address range. 3 - Μια διάταξη ήπ«ν αξιώνεται ατην Α£ι7.ντη 9JΛΤΓΓΥΠ η c \ι Irvyrn ιπ?.ριη%ή SinifliWfFnw ατήχηαείναι.ένα από τα-εξής:3 - A provision that is claimed in the A£i7.nd 9JLTGYP or c \i Irvyrn ip?.rii%or SinifliWfFnw is one of the following: η EV λήγηι τηιιλάχιατην μια πρριηχή &mftftwrn?mv πραέ.ΐ rtwqrthe EV ends with a previous &mftftwrn?mv prae.i rtwqr τ^εν λόγω τουλάχιστον’ μια περιοχή διευθύνσεων προορισμού, καιsaid at least one destination address range, and j nn ττορΐΓ>χή WVM ι-ιιπχρτί^Ητπι j.r -rrpi nuAAymj nn ttoriG>hi WVM i-iiphrti^Htpi j.r -rrpi nuAAym 4 Μια διάταξη όπως αξιώνεται nr ηπ·ο黣ޙ-.τΓ-π-ρπηγΓ<η>'-.ρ^ιη iWnm<η>π» ελεγκτής — ανακατεύθυνσης — διατάσσεται — ώστε··-·να — κκτελεί— την — ον λόγω — λθίτουργία ανακαιεύθηνπης μνήμης με. τρόπο ώστε;4 An order as claimed by the controller — redirection — is ordered — so that the — being due — lithiturgy of recuperating memory with. way so? όταν, το αναχαιτισμένο αίτημα, πρόσβασης sivat- άνα αίτημα πρόσβασης για ανάγνωση, η διεύθυνση στόχου αι^τιστοιχοίται σο μια αντίστοιχη διεύθυνση προέλευσης εντός της εν λόγω τουλάχιστον· μιας περιοχής διευθύνσεων προέλευσης ώστε να προκαλέσει την FV-TF) ΡΓτη JI inr ΙπτΓνηργίπ^ πνήγνίτ>Γη-|Γ ηττή την, ΓΛ; ΙήγίΛ ΠΛ/τίητπιχη Αιρύθηνπη προέλευση, καιwhen the intercepted access request is a read access request, the target address is matched to a corresponding source address within said at least one source address range to cause the FV-TF) to be disabled. >Gi-|G beat her, GL? IigiL PL/tiitpihi Airythinpi origin, and όταν τα αναχαιτισμένο αίτημα πρόσβασης· οίναι όνα αίτημα πρόσβασης για ογγραφή, η &FiSftnvm^ ίττήχηιι πνηπτπιχ^ίτηι nr |ΐι π πντίπτηιχη Kignftnvm] πρη^πντης mrrnrj. της. εν λόγω τουλάχιστον μιας περιοχης-διευθυνσεων προέλευσης και σε μια αντίστοιχη διεύθυνση προορισμού εντός της εν.λάγω τουλάχιστον μιας περιοχής διευθύνσεων προορισμού ώστε ναwhen the intercepted access request; it is only a write access request, the &FiSftnvm^ ittichii pnipptpih^itii nr |ii p pptiptihi Kignftnvm] pri^pntis mrrnrj. her. in said at least one source address range and to a corresponding destination address within said at least one destination address range so that πρΟΚΟ'-λέ'Τεί την pyrclcmi mnr IgiTtmnyini· Fwiwimr τΛιτ<η>irnnr τ<η>ν πΛΑτίιττ<η>ιν<η>ftinSAnvrm προέλευσης, όσο και προς την αντίστοιχη διεύθυνση προορισμούprOCO'-Tei the pyrclcmi mnr IgiTtmnyini; Fwiwimr tlLit<n>irnnr t<n>n PLAtiit<n<n>ftinSAnvrm of origin, as well as to the corresponding destination address & - Μια διάταξη όπως αξιώνοται σο οπβιαδήποτο από· τις αξιώσεις·-! -έως.3, ύπου ο-εν λόγω ελεγκτής μεταφοράς δεδομένων διατάσσεται ώστε να τηρεί ένα<,>αρχείο προόδου για τη λειτουργία-μεταφοράς, ονώ ο εν λόγω ελεγκτής «νακατεύθυνσης διατάσσεται ώστε να εκτελεί την εν λόγω λειτουργία ανακατεύθυνσης-μνήμης με -τρόπο (toes:& - A provision as claimed by; the claims;-! -to.3, provided said data-transfer controller is ordered to maintain a<,>progress-file for the transfer-operation, whereas said redirect-controller is ordered to perform said memory-redirection-operation by (toes: ήτπν η £ΐΓ·ήθηνίτη πτήγηη rrm ηνπχπί'τι/ηι.^νΥη πιτή|ΐπ·ιγν^ ·π·ρΛ<τβπ<τηι·| «τ^Γ-πΤητπι μ£ μια διεύθυνση της οποίας-τα δεδομένα δεν έχουν ακόμη μοταφορθοί tm& τη λειτουργία μεταφοράς, η διεύθυνση προορισμού αίΓπστοιχείται σε μια αντίστοιχη δισύθονση προέλευσης ώστε... να .προκαλεί την εκτέλεση μιας πρόσβασης σο αυτή την αντίστοιχη διεύθυνση ιτρη^Ί Ρίντης κηιitpn the £lG·ithiniti ptigii rrm hinphpi'ti/ini.^nYi piti|ip·ign^ ·p·rL<tvp<tii·| For an address whose data has not yet been mapped to the transfer operation, the destination address is mapped to a corresponding source address to cause an access to that corresponding address to be performed. ^I Rintis kii όταν η διεύθυνση προορισμού του αναχαιτισμένου αιτήματος πρόσβασης σχετίζεται με μια διεύθυνση -της οποίας τα δεδομένα· -έχουν ήδη-μεταφερθεί-από τη λειτουργία iiprnfpnp^r η ftigiSftnvrm rvnWm ηνηπτοινρίτηι nc ιιιη mm/ττη.ν<η>Χ,νΑΑ,<η>,π<η>ϊτροορίσμού ώστε να προκαλεί την -εκτέλεση μιας πρόσβασης as - αυτή την -αντίστοιχη διεύθυνση προορισμού.·when the destination address of the intercepted access request is related to an address whose data has already been transferred by the function >,port definition to cause an access to be -executed as -this -corresponding destination address.; J&" Μια διάταξη όπως αξιώνεται σε οποιαδήποτε από τις αξιώσεις 1 έως 3, όπου ο εν λόγωΡ.λργκτήΓ| iFTnrpnpr»r ΚρΚη|ΐέν<τ.ν KuirAnncmi. mrsrc \ta τηρρί run, npr^rin nrpnrtSmi γκι τη λειτουργία μεταφοράς, ενώ ο εν λόγω ελεγκτής ανακατεύθυνσης διατάσσεται-ώστε να εκτελεί την εν λόγω λειτουργία ανακατεύθυνσης-μνήμης με-.τρόπα ώστε;.An arrangement as claimed in any one of claims 1 to 3, wherein the said P.lrgtiG| said redirection controller is arranged-to perform said memory-redirection function in a-.way that?. όταν η διεύθυνση στόχου του- αναχαιτισμένου αιτήματος πρόσβασης σχετίζεται^με μια διεύθυνση της οπηΐας τη δρδηρρνη δη> ryrvnv πνήρη |iJuntpApfki mm LI| λΐ.ΙΚΙ1)()γία μεταφοράς, ο ελεγκτής μεταφοράς δεδομένων διατάσσεται ώστε να εκκινεί τη μεταφορά-μιας βαθμίδας δεδομένων η οποία περιλαμβάνει τα δεδομένα που συσχετίζονται με τη διεύθυνση στόχου, πριν-την επεξεργασία του αναχαιτισμένου αιτήματος πρόσβασης» καιwhen the target address of the intercepted access request is associated with an address of the opiate the ddrdirrn dy> ryrvnv pniri |iJuntpApfki mm LI| 1.IKI1)()for a transfer, the data transfer controller is ordered to initiate the transfer of-a data layer which includes the data associated with the target address, before-processing the intercepted access request'; and ότβν — η — διεύθυνση — στόχου — του — αναχαιτισμένου - αιτήματος _ πρόσβασης. πχρ.τίζετηι μρ. μια δικύθιινπη της πττηίπΓ τη δρ-δη|ΐρνπ ρχηιιν ήδη [ΐρτπφρρθρί rurn.rq ) ριτουργία· μεταφοράς, η διεύθυνση-στόχου -αντιστοιχείται os μια αντίστοιχη· διεύθυνση η οποία οίνοι μιαotbn — the — target — address — of — the — intercepted — access — request. phr.tisetei mr. a dicythiinpi of the pttiipG the dr-di|irnp rhiin already [irtpfrthri rurn.rq ) ritury; transport, the target address -is matched to a corresponding; address which wine a π4τή την πυτίπτηιχη irpnpl Piim5; νπι την πντίκτπιχη SiPiSftnvm-| προορισμού, ώατρ να<προκαλείεην -εκτέλεση μιας πρόσβασης σο αυτή την αντίστοιχη διεύθυνση.—irpnpl Piim5? npi the pdiktpihi SiPiSftnvm-| destination, to cause an access to that corresponding address.— 7. Μια διάταξη όπως αξιώνεται σε οποιαδήποτε προηγούμενη αξίωση, η οποία περιλαμβάνει επιπλέον:7. An arrangement as claimed in any preceding claim, further comprising: χώρο αποθήκευσης ελέγχου για την αποθήκευση πληροφοριών ελέγχου που χρησιμοποιούνται για τον έλεγχο της απόδοσης της λειτουργίας μεταφοράς από τον ελεγκτή μεταφοράς δεδομένων, με το χώρο αποθήκευσης ελέγχου να αποθηκεύει μια ένδειξη της εν λόγω τουλάχιστον μιας περιοχής διευθύνσεων προέλευσης, μια ένδειξη της εν λόγω τουλάχιστον μιας περιοχής διευθύνσεων προορισμού και δεδομένα ένδειξης προόδου τα οποία προσδιορίζουν την πρόοδο της λειτουργίας μεταφοράς.control store for storing control information used to control the performance of the transfer operation by the data transfer controller, the control store storing an indication of said at least one source address range, an indication of said at least one range destination addresses and progress indicator data which identifies the progress of the transfer operation. & - Μια διάταξη όπως αξιώνοται στην Αξίωση 7, όπου:& - An arrangement as claimed in Claim 7, wherein: η εν λύνω πεοιονύ διτηθύνσρων πτό^ριι rfvm frrrt π-ττή τη r £ή~The solution to the problem η εν λόγω -τουλάχιστον μια περιοχή διευθύνσεων προορισμού; καιthe said -at least one destination address range? and ο ελεγκτή c ανακατεύθυνιπ^ διατάσσετηι ν<η>τΛ τη Κιύρκπσ τηι- π-τ<ή>ΤηΗηπthe controller c redirection is ordered to tL the Kirkps ti- p-t ^Ρΐτοοργίπ^ μρτπΓρορός, ώστρ.. νη πνπφρρρτσι στ η χ<ν»ρο πποθήκ-Ρίντη^ έγχοιι γι η να προσδιορίζει· κατά πόσο ένα ληφθέν αίτημα πρόσβασης πρόκειται να αναχαιτιστεί -και '<m>-<ν>·™ρ<Ί>ηο-* -τη 'λπιτηυργία ανακατν^™™^ μ^ήμη^^Ritoorgip^ mrtpGroros, ostr.. ni pnpfrrci f h<n»ro ppothik-Rinti^ inghiii to determine; whether a received access request is to be intercepted -and '<m>-<n>·™r< I>o-* -the 'lpitirgia anakatn^™™^ m^imi^ 9, - Μια διάταξη όπως αξιώνεται σε οποιαδήποτε προηγούμονη αξίωση, -όπου το στοιχείο επεξεργασίας διατάσσεται ώστε , να υλοποιεί τη μετάφραση· εικοιακών -διευθύνσεων-σε σνπστηιχΓ>- rpumv-A- SicnftiWcir irm ρχρι 7ΓρΛσβσση__σρ ή, η χ/frpn ητΓηΑήιτρι^πηΓ |ΐΓτΛφρη«ης διευθύνσεων — για— ...την — αποθήκευση — δεδομένων — μετάφρασης διευθύνσεων — που χρησιμοποιούνται για τη μετατροπή μιας-εικοιακής διεύθυνσης- σε μια -φυσική διεύθυνση εντός μιας.σελίδας της εν .λόγω μνήμης, μετά εν λόγω δεδομένα μετάφρασης διευθύνσεων να προκύπτουν από .πληροφορίες περιγραφέα που αποθηκεύονται .σε , πίνακες σελίδων εντός- της εν-λόγω-μνήμης>ενώ το αίτημα-μοταφοράς δοδομόνων εκδίδοται ώστο να-μοταφόρονται τα δεδομένα από τουλάχιστον μια σελίδα προέλευσης σε τουλάχιστον μια σελίδα προορισμού εντός της μνήμης.9, - An arrangement as claimed in any preceding claim, -where the processing element is arranged to implement the translation; of home -addresses-into sfstich>- rpumv-A- SicnftiWcir irm rhri 7GrLsvssi__sr or, the x/frpn itGiAitri^piG Free addresses — for— ...the — storage of — address translation — data — used to convert a -home address- to a -physical address within a page of said memory, after said translation data addresses are derived from descriptor information stored in in-memory page tables while the data transfer request is issued to transfer data from at least one source page to at least one destination page in memory. - Μια διάταξη όπως αξιώνεται στην -Αξίωση 9 όταν οξαρτάται από την Αξίωση 2, —όπουί—- An arrangement as claimed in - Claim 9 when appended to Claim 2, —where— η εν λόγω περιοχή διευθύνσεων στήχρυ περί) Π|ιζάνει. τηΛ; cv )όγω του) άιχιστο,ν μια^περιοχή διευθύνσεων προορισμού,the said area of addresses is about) Pisani. tel? cv ) due to) undefined,n a^area of destination addresses, -Ο, ελεγκτής διευθέτησης διατάσσεται, πριν την εκτέλεση της εν. )όγω )ειτοοργ(πς μεταφοράς από τον ελεγκτή μεταφοράς δεδομένων, ώστε να εκδίδευένα σήμα .ελεγχου-και.να προκαλεί την ενημέρωση των πινάκων σελίδων εντός της cv )όγω μνήμης ωσ-rr ni rurranircr διευθύνσεις που_μετηφράστηκπν σρ φυσικές διευθύνσεις ρντά r της εν )άγω τηυΐάχιστσν μισς περιοχής διευθύνσεων .προέλευσης θα μεταφράζονται αντί αυτού σε φυσικές διευθύνσεις εντός της εν λόγω . τουλάχιστον μιας περιοχής διευθύνσεων προοριομού, με τον ελεγκτή διευθέτησης νπ εκδίδει ,επιπίέην ένπ-πήμπ. ελέγχου το οποίο. προκαλεί την ακύρωση εντός το».. χώρου αποθήκευσης μετάφρασης διευθύνσεων -οποιωνδήποτε· εγγραφών οι οποίες παρέχουν δεδομένα μετάφρασης διευθύνσεων για τα δοδομόνα που θα υποβληθούν στη λειτουργία ρθταφοράςι -- The settlement auditor is ordered, before the execution of art. )by )itorg(p.s of transfer from the data transfer controller so that a control signal is issued and causes the page tables within the cv to be updated as )by memory as-rr ni rurranircr addresses that are_translated into physical addresses rd r of the ) at least half of the source address range will be translated instead to physical addresses within that range. of at least one destination address range, with the settlement controller issuing a control which. causes the invalidation within the address translation storage of -any; records that provide address translation data for the datamons to be subjected to the rthport operation - Η-; - Μια διάταξη όπως αξιώνεται στην Αξίωση 10, όπου η διάταξη διατάσσεται ώστε να σονδέρτπι με ένπ π)ήθης στοιχείων επεΡεργπσιπς που έχουν πράσβσση στην cv )άγω.μνήμη με~κάθε στοιχείο επεξεργασίας να έχει ένα συσχετισμένο χώρο αποθήκευσης μετάφρασης διευθύνσεωνJενώ ο ελεγκτής διευθέτησης διπτάσσετσι ώστε νπ εκδίδει ένα σήμο ελέγχρυ νηι να_. προκαλεί την ακύρωση ειαός κάθε .χώρου -αποθήκευσης μετάφραοης διευθύνσεων οκοιωνδήποτο ογγραφών παρέχουν· δεδομένα μετάφρασης διευθύνσεων για τα δεδομένα που θσ υποβοηθούν στη λειτουργίπ μετοίροράςTHE-; - An arrangement as claimed in Claim 10, wherein the arrangement is arranged to be configured with processing elements having access to memory with each processing element having an associated address translation store, and the arrangement controller is arranged so that It issues a control signal. causes the invalidation of any address translation storage of any documents providing; address translation data for the data that will assist the partition function 12 - Μια,, διάταξη., όπως,, αξιώνεται στην Αξίωση 10 ή την -Αξίωση 11,· όπου μο την ολοκλήρωοη της λειτουργίας μεταφοράς, ο ελεγκτής ανακατούθυνσης αΜοτρόποται από την αναχαίτιση ενός μετεπειτα αιτήματος πρόσβασης το οποίο προσδιορίζει μια διεύθυνση στόχου εντός της περιοχής διευθύνσεων στόχου.12 - An arrangement as claimed in Claim 10 or Claim 11, wherein upon completion of the transfer operation, the redirection controller is prevented from intercepting a subsequent access request that specifies a target address within the range target addresses. 13·. - Μια διάταξη όπως αξιώνεται σε οποιαδήποτε προηγούμενη -αξίωση, όπου το στοιχοίο επεξεργασίας έχει πρόσβαση-οε . τουλάχιστον . μια δομή κρυφής μνήμης-, για -την .αποθήκευση δεδομένων σε κρυφή — μνήμη — στα οποία — πραγματοποιείται -πρόσβαση στην εν λόγω μνήμη, ένα πρωτόκολλα συνοχής κρυφής μνημης-χρησιμοποιειζαι ώστε να εξασφαλίζει. τη σονοχή μεταξύ των~αποθηκευμένων σε κρυφή-μνήμη δεδομένων,, .και ..ίων.. δεδομένων που αποθηκεύονται, στη- μνήμη, και το πρωτόκολλο -συνοχής κρυφής μνήμης χρησιμοποιείται, σε σχέση με τα αιτήματα πρόσβασης που εκδίδονται από τον ελεγκτή μεταφοράς δεδομένων κατά την εκτέλεση της, λειτουργίας μεταφοράς -ώστε να . εξασφαλίζεται ότι ο ελεγκτής μεταφοράς δεδομένων έχει πρόσβαση στην πλέον ενημερωμένη . έκδοση-δεδομένων .που13·. - An arrangement as claimed in any preceding claim, wherein the processing element has access to. at least . a cache structure-, for -the .storing of data in cache — memory — in which — that memory is accessed, a cache coherency protocol is used to ensure. the coherency between cached data, .and ..data stored in memory, and the cache coherency protocol used, in relation to access requests issued by the data transfer controller during the execution of the transport operation - so that . ensures that the data transfer controller has access to the most up-to-date . version-data .where πρησδιηριΤρ.τσι ηπή τη ρν ϊήγ™ πιτήμητη irpi^p»my-Precious 44 - Μια διΑταξη ..όπως αξιώνεται στην Αξίωση 1·3, όπου ο ελεγκτής μεταφοράς δεδομένων διατάσσεται, όταν εκδίδει αιτήματα πρόσβασης για -ανάγνωση κατά την -εκτέλεση της■λειτουργίας μεταφοράς με. -σκοπό την ανάγνωση των δεδομένων οντός της ον λόγω τουλάχιστον — μιας — περιοχής, διευθύνσεων προέλευσης, — ώστε — να χρησιμοποιεί — έναν καθορισμένο τύπο αιτήματος-πρόσβασης για ανάγνωση το οποίο προκαλεί την ακύρωση ρποιωνδήποτε απαθηκευμένων σε κρυφή μνήμη. αντιγράφων, -αυτών των δεδομένων κατά τηΐ' Εφαρμογή rrm πρωτηκΛηοιι mwnjpfc κ-ρινρή^ μνήμης- —44 - An arrangement ..as claimed in Claim 1·3, wherein the data transfer controller is arranged, when issuing access requests for -read during -execution of the ■transfer operation with. -purpose to read entity data due to at least — one — region, source addresses, — to — use — a specified type of read-access request which causes any cached ps to be invalidated. of copies, - of these data according to the Application rrm protikLeoiii mwnjpfc k-rinir^ memory- — 15.15. συνδέεται [IP. ένα πλήθος ατθίχρίων ρπ^ργηΓτίπΓ ifAfli; ύι/η ηττΛ τη rvtrnfn ή^ηι «τρή·ρπι·η me τουλάχιστον<,>μια συσχετισμένη -δομή κρυφής μνήμης, και ο ελεγκτής μεταφοράς δεδομένων διατάσσεται-ώστε να -χρησιμοποιεί τον εν λόγω καθορισμένο τόπο αιτήματος πρόσβασης γιαconnects [IP. a multitude of athichrians rp^rgiGtipG ifAfli? the rvtrnfn or at least one associated cache structure, and the data transfer controller is arranged to use said designated access request location for των εν λήγω δεδομένων στις σησχρτισμένκς δομές ^ρ^φής μ'ήμης jwrtim^Trvrr m τΛ m εν λόγω-πλήθος στοιχείων επεξεργασίας κατά την εφαρμογή του πρωτοκόλλου συνοχής κρυφής μιιήμηςof the said data in the specified memory structures jwrtim^Trvrr m τΛ m said-number of processing elements when implementing the hidden memory coherence protocol 16- - Μια-διάταξη όπως, αξιώνεται στην Αξίωση 14 ή στην Αξίωση 15, όπου ο ον λόγω καθορισμένης Timer αιτήματος πρόποσης γι η c.\,m fii,n ητην’ϊηητιιτΛ «ί«ηρπ πρόσβασης για ανάγνωση,16- - An arrangement as claimed in Claim 14 or Claim 15, wherein the being due to a specified Timer request toast for the read access time, ¥h - Μια διάταξη όπως αξιώνεται σο οποιαδήποτο προηγούμενη αξίωση^ όπου η ον λόγω λειτουργία μεταφοράς -χρησιμοποιείται για την εκτέλεση<■>ενός από τους ακόλουθους τύπους μεταφοράς δεδομένων; —¥h - An arrangement as claimed in any preceding claim^ wherein said transfer function -is used to perform<■>one of the following types of data transfer? — μια συγκέντρωση δεδομένων από — πολλές περιοχές διευθύνσεων προέλευσης σε μια μοναδική ποριοχή-διουθύνσοων προορισμού,an aggregation of data from — multiple source address ranges into a single destination address range; πολλές περιοχές διευθύνσεων προορισμού, ή,multiple destination address ranges, or, μια [ΐρτηφηρό Srftnjipvr.w nmS pirn ττρριηχή KicuftmOTcmv -rpr>glcn^ rrc pm ιτρριοχή· διευθύνσεων προορισμού ίδιου μεγέθους.a [irtiferous Srftnjipvr.w nmS pirn ttrrieh KicuftmOTcmv -rpr>glcn^ rrc pm itririo; of destination addresses of the same size. 18 — Μια, διάταξη άπην;. αξιώνεται ms οποιαδήποτε προηγούμενη αξίωση, όπου η ον λόγω λειτουργία μεταφοράς περιλαμβάνει είτε μια λειτουργία μοταιάνησης οίτο μια λειτουργία _ πνπγρπφήΓ18 — A, arrangement from?. any preceding claim is claimed, wherein said transfer function comprises either a blurring function or a 19.<1>Ένα σύστημα το οποίο περιλαμβάνει:19.<1>A system which includes: fyrc πλήθος nTni.xf:irnv.f πεξεργασιας, καιfyrc amount of nTni.xf:irnv.f processing, and μκι fiui(ri)V§F.cni πρνδκδρ.μ£νη |if. τη εν λόγ<η>Ί πλήθος στοιχείων επεξεργασίας-και για την έλεγχ<η>της πρόσβασης σε μια μνήμη από το οι» λόγω πλήθος στοιχείων επεξεργασίας, jlf. τη flmrmvSgm-| νπ ^χρι Kmpnprpfnpcirq pm ρηχ™ή [inarn/pnpAr η* τή pm όπως αξιώνεται πκ ηττηιπδήπητρ πρηηγηύ| ιρνη πξίωτυ^ γι η την cirrc^ ΓΓτη pmr 1 nrmnpyfnr μεταφοράς -για λογαριασμό ενός από τα στοιχεία Eii^bpyuulut, με οκϋϋΐΰ τη μεΤΗφδρά δεδομένων - από τουλάχιστον ·. μια περιοχή διευθύνσεων -προέλευσης σε τουλάχιστον μια περιοχή διευθύνσεων προορισμού, επιτρέποντας ταυτόχρονα τη συνέχιση της οποξεργασίας των αιτημάτων πρόσβασης που εκδίδονται από το πλήθος στοιχοίων επεξεργασίας όσον άφορά στα δεδομένα που υποβάλλονται πιη λπτουργίπ μρτπφηρπς νατά τη ftuiprairt εκτέλεσης της λ ειτουργίπς μεταφοράςmki fiui(ri)V§F.cni prndkdr.m£ni |if. the said plurality of processing elements-and for controlling access to a memory by the said plurality of processing elements, jlf. the flmrmvSgm-| Np ^hri Kmpnprpfnpcirq pm rih™or [inarn/pnpAr h* th pm as claimed by ittiipdipitr preigiu| irni pxioti^ for the cirrc^ Gti pmr 1 nrmnpyfnr transfer - on behalf of one of the Eii^bpyuulut elements, with the data meTHFdra - from at least ·. a source address range to at least one destination address range while allowing continued processing of access requests issued by the plurality of processing elements with respect to the data submitted to the transfer operation upon execution of the transfer operation 20 - Ένα. πιιπτημα-Δαης .αξιώνεται στην Αξίωση 10, όπου η μηχανή μοταφοράς αποκρίνεται σε μια ένδειξη χρήσης του εύρους ζώνης εντός της διασύνδεσης -για- την επιβράδυνση της απόδοσης της λειτουργίας μεταφοράς.20 - One. A feature is claimed in Claim 10, wherein the transport engine is responsive to an indication of bandwidth usage within the interface -to- slow down the performance of the transport function. 24η -<'>Ενα σύστημα -όπως-· αξιώνοται στην Αξίωση -19 ή την Αξίωση<1>20, tu unofo περιλαμβάνει:24th -<'>A system -as-; claimed in Claim -19 or Claim<1>20, tu unofo comprises: μια επιπλέον, διασύνδεση συνδεδεμέιη με την εν λόγω διασύνδεση και για τον έλεγχο της πρόσβασης σε μια επιπλέον μνήμη από το ev λόγω πλήθυς υ ιυιχείων αμφϊμγΐΐοίάς, με την επιπλέον διασύνδεση να εχπ ,..μιπ επιπλέον μηχανή μεταφοράς διαμορφωμένη απή.,μια διάταξη όπως— .αξιώνεται σε οποια&ήποτε — προηγούμαι αξίωση, για την εκτέλεση μιας λειτουργίας μεταφοράς· για λογαριασμό ενός από m στοιχεία επεξεργασίας με σκοπό τηan additional interface connected to said interface and for controlling access to an additional memory by ev due to a plurality of amphibious cells, the additional interface being an additional transfer engine configured by an arrangement such as— .is claimed at any&ever — i precedes a claim, to perform a transfer function; on behalf of one of m processing elements for the purpose of jj<g>rnmAnA 5ε5θ{-ίένθ)ν ι iin irrninvn SicufliWcnw TTpricl ciyrnr m τ<η>ιιΙΑνιπτ<η>υ jnn TTF. ριηχή ftgnftiwfrrnv 7rpr>npm|irm ρτητρέπηΛ/τη^ τηητήγρηνη τη σηιιήγιση τητ επρξεργαπίπς των αιτημάτων πρόσβασης παη εκδίδονται- από το πλήθος στοιχείων επεξεργασίας όσον αφορά στα δεδομένα που υποβάλλονται στη λειιυυμγίιχ μυ'ΐάψϋμΰζΤΒχτά τη,διάρκειαεκτέλεσης της λειτουργίας μεταφοράς.jj<g>rnmAnA 5e5th{-ienth)n i iin irninvn SicufliWcnw TTpricl ciyrnr m t<h>iiIAnipt<h>y jnn TTF. The root ftgnftiwfrrnv 7rpr>npm|irm rttrepL/ti^ titigrin the signification of the processing of the access requests are issued- by the number of processing elements with regard to the data submitted to the liiyymiiih my'iapsimyzTBhta, the duration of the execution of the transfer function. 23--·Ένη mWiT||in όττην; nFiftwr-rm πτην Αξΐηντη Ίλ , <Wm η ρη^ΓηΓή |ΐι:τσφσράη vnn rtl 11 Π7ΓΓ>1 ρί ΤΠ 1 VI Π ΤΠ δίπνρίηΐίτη ΤΤΙΓ l nrnniwinr ucrnmnnAr ήτ<η>»<η ■ ■■>" περιοχή διευθύνσεων προορισμού βρίσκεται .εντός■της εν λόγω μνήμης, ενώ η επιπλέον μηχανή-μεταφοράς. χρησιμοποιείται .για τη ..διαχείριση της λειτουργίας μεταφοράς όταν··η· τουλάχισταν^ια. περιοχή διευθύνσεων προορισμού βρίσκεται ειτός της ον λόγω επιπλέον μνήμης-^-23--·A mWiT||in when? nFiftwr-rm ptin Axinti Il , <Wm the ri^GiGi |ii:csfsrai vnn rtl 11 P7GG>1 r TP 1 VI P TP dipnriiti TTIG l nrnniwinr ucrnmnnAr the<n>»<n ■ ■■>" area of destination addresses is located within said memory, while the extra transfer engine is used to manage the transfer operation when the minimum destination address range is within it due to extra memory-^- 21 _ Mm μέθοδοί ιιεταωοοπτ δρδοιιένων ιιετα/Ίΐ πρ,ηιηνών διηιθήνσεων στη ανύαυ.-υ οττηίη πΓραπρβόνπ·21 _ Mm methods of evaluating active ieta/Il pre,nial judgments in the new. σε απόκριση ενός αιτήματος μεταφοράς δεδομένων που λαμβάνεται ιαιό ένα ϋ ΐυιχείΰ επεξεργασίας, χρησιμοποιώντας έναν. ελεγκτή μεταφοράς δεδομένων για την εκτέλεση μιας· λειτουργίας μεταφοράς για τη■μεταφορά δεδομένων από τουλάχιστον μια περτσχηin response to a data transfer request received by a processing device using a a data transfer controller for performing a transfer function for transferring data from at least one port MM στη μνήμη, καιin memory, and νητΛ τη Κιιγνριπ της Fifrf)cm|r της ΐριτηηργίπς ρρτπφηρά^ -ττμ> πνσχπίτιση κνός αιτήματος πρόσβασης το οποίο προσδιορίζει μια διεύθυνση στόχου εντός μιας περιοχής διευθύνσεων στόχου και την εκτέλεση μιας λειτουργίας ανακατεύθυνσης .μνήμης ώστε να προκαλείται η επεξεργασία, του εν λήγω αιτήματος πρόσβασης χωρίς·. να· αναμένεται<,>η ολοκλήρωση της λειτουργίας· μεταφοράς.(c) generating an access request specifying a target address within a target address range and performing a memory redirection operation to cause the resulting access request to be processed; without·. to; expected<,>completion of operation; transfer. 24, - Μια διάταξη» η οποία περιλαμβάνει*.24, - A provision' which includes*. μέσα -ελέγχου -της μεταφοράς δεδομένων για την εκτέλεση, σο απόκριση ενός αιτήματος μεταφοράς -δεδομένων■που— λαμβάνεται από τη διάταξη από ένα στοιχείο επεξεργασίας, μιας λειτουργίας, μεταφοράς για τη μεταφορά δεδομένων από τουλάχιστον μια τιβριοχή δίΕυθύνσεων-προέλΕυσης στη μιήμη — σο τουλάχιστον μια wcptoyj SicuOuvoceav προορισμού στη μνήμη, κανmeans of -controlling -the transfer of data to perform, in response to a -data transfer request received by the device from a processing element, of a function, transfer to transfer data from at least one array of source-addresses to the mime — at least a wcptoyj SicuOuvoceav destination in memory, can [ΐεαα χ?ι£γχου ανακαιεύθυνσης για την αναχαίτιση;κατά τη διάρκοια της οκτόλΒβης της λειτουργίας μεταφοράς, ενός αιτήματος πρόσβασης TO οποίο προσδιορίζοι μια διαύθ'Βνση renfyrm εντός μιπς πρριπχής SignftiivfFrnv πτήχηη irm .jnp; FITTP^ ρπη μιπς .λτιτηιηργίπς ανακατεήθηνιτης μνή|ΐης.··Λνΐτε .να προκπ^είται η Εποξβργασια του cv ·λόγω αιτήματος πρόσβασης χωρίς να αναμένεται η ολοκλήρωση της λειτουργίας μοταφοράς.[requirement for intercepting, during the octet of the transport operation, an access request specifying a renfyrm address within a SignftiivfFrnv type irm .jnp; Fittp.
GR20170200061U 2016-12-02 2016-12-02 An apparatus for transferring data between address ranges in memory GR20170200061U (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GR20170200061U GR20170200061U (en) 2016-12-02 2016-12-02 An apparatus for transferring data between address ranges in memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GR20170200061U GR20170200061U (en) 2016-12-02 2016-12-02 An apparatus for transferring data between address ranges in memory

Publications (1)

Publication Number Publication Date
GR20170200061U true GR20170200061U (en) 2018-10-12

Family

ID=64020673

Family Applications (1)

Application Number Title Priority Date Filing Date
GR20170200061U GR20170200061U (en) 2016-12-02 2016-12-02 An apparatus for transferring data between address ranges in memory

Country Status (1)

Country Link
GR (1) GR20170200061U (en)

Similar Documents

Publication Publication Date Title
CN108153683B (en) Apparatus and method for transferring data between address ranges in memory
CN108885583B (en) Cache memory access
US6633967B1 (en) Coherent translation look-aside buffer
US6990559B2 (en) Mechanism for resolving ambiguous invalidates in a computer system
TW591384B (en) Method and system for speculatively invalidating lines in a cache
KR100496116B1 (en) Multiprocessor apparatus
US20050188159A1 (en) Computer system supporting both dirty-shared and non dirty-shared data processing entities
US10079916B2 (en) Register files for I/O packet compression
JPH0743670B2 (en) Store-through cache management system
US20170228164A1 (en) User-level instruction for memory locality determination
US11048422B2 (en) Method, device, and computer readable storage medium for allocating access rights to data among storage processors
US20110320727A1 (en) Dynamic cache queue allocation based on destination availability
US7533223B1 (en) System and method for handling memory requests in a multiprocessor shared memory system
US20120124297A1 (en) Coherence domain support for multi-tenant environment
US20040068616A1 (en) System and method enabling efficient cache line reuse in a computer system
EP0533427A1 (en) Computer memory control system
US11086802B1 (en) Apparatus and method for routing access requests in an interconnect
US7000080B2 (en) Channel-based late race resolution mechanism for a computer system
US7669013B2 (en) Directory for multi-node coherent bus
US7725660B2 (en) Directory for multi-node coherent bus
US11841800B2 (en) Apparatus and method for handling stash requests
US10963409B2 (en) Interconnect circuitry and a method of operating such interconnect circuitry
GR20170200061U (en) An apparatus for transferring data between address ranges in memory
JP3626609B2 (en) Multiprocessor system
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system