Apparatus and method for protecting cache data from eviction during an
atomic operation. The apparatus includes a first request queue, a second
request queue, and an atomic address block. The first request queue stores
an entry for each cache access request. Each entry includes a first set of
address bits and an atomic bit. The first set of address bits represents a
first cache address associated with the cache access request and the
atomic bit indicates whether the cache access request is associated with
the atomic operation. The second request queue stores an entry for each
cache eviction request. Each entry of the second request queue includes a
second set of address bits indicating a second cache address associated
with the cache eviction request. The atomic address block prevents
eviction of a third cache address during the atomic operation on the third
cache address. During a first clock cycle the atomic address block
receives and analyzes a first set of signals representing a first entry of
the first request queue to determine whether they represent the atomic
operation. If so, the atomic address block sets a third set of address
bits to a value representative of the first cache address. During a second
clock cycle during which the atomic operation is being executed the atomic
address block receives and analyzes a second set of signals representing
the second set of address bits to determine whether the second set of
address bits represent a same cache address as the third set of address
bits. If so, the atomic address block stalls servicing of the second
request queue, thus preventing eviction of data from the cache upon which
an atomic operation is being performed.
Συσκευές και μέθοδος για τα στοιχεία κρύπτης από το απέλαση κατά τη διάρκεια μιας ατομικής λειτουργίας. Η συσκευή περιλαμβάνει μια πρώτη σειρά αναμονής αιτήματος, μια δεύτερη σειρά αναμονής αιτήματος, και έναν ατομικό φραγμό διευθύνσεων. Η πρώτη σειρά αναμονής αιτήματος αποθηκεύει μια είσοδο για κάθε αίτημα πρόσβασης κρύπτης. Κάθε είσοδος περιλαμβάνει ένα πρώτο σύνολο κομματιών διευθύνσεων και ενός ατομικού κομματιού. Το πρώτο σύνολο κομματιών διευθύνσεων αντιπροσωπεύει μια πρώτη διεύθυνση κρύπτης που συνδέεται με το αίτημα πρόσβασης κρύπτης και το ατομικό κομμάτι δείχνει εάν το αίτημα πρόσβασης κρύπτης συνδέεται με την ατομική λειτουργία. Η δεύτερη σειρά αναμονής αιτήματος αποθηκεύει μια είσοδο για κάθε αίτημα απέλαση κρύπτης. Κάθε είσοδος της δεύτερης σειράς αναμονής αιτήματος περιλαμβάνει ένα δεύτερο σύνολο κομματιών διευθύνσεων που δείχνουν μια δεύτερη διεύθυνση κρύπτης που συνδέεται με το αίτημα απέλαση κρύπτης. Ο ατομικός φραγμός διευθύνσεων αποτρέπει το απέλαση μιας τρίτης διεύθυνσης κρύπτης κατά τη διάρκεια της ατομικής λειτουργίας στην τρίτη διεύθυνση κρύπτης. Κατά τη διάρκεια ενός πρώτου κύκλου ρολογιών ο ατομικός φραγμός διευθύνσεων λαμβάνει και αναλύει ένα πρώτο σύνολο σημάτων που αντιπροσωπεύουν μια πρώτη είσοδο της πρώτης σειράς αναμονής αιτήματος για να καθορίσει εάν αντιπροσωπεύουν την ατομική λειτουργία. Σε αυτή την περίπτωση, ο ατομικός φραγμός διευθύνσεων θέτει ένα τρίτο σύνολο κομματιών διευθύνσεων σε μια αξία αντιπροσωπευτική της πρώτης διεύθυνσης κρύπτης. Κατά τη διάρκεια ενός δεύτερου κύκλου ρολογιών κατά τη διάρκεια του οποίου η ατομική λειτουργία εκτελείται ο ατομικός φραγμός διευθύνσεων λαμβάνει και αναλύει ένα δεύτερο σύνολο σημάτων που αντιπροσωπεύουν το δεύτερο σύνολο κομματιών διευθύνσεων για να καθορίσει εάν το δεύτερο σύνολο κομματιών διευθύνσεων αντιπροσωπεύει μια ίδια διεύθυνση κρύπτης με το τρίτο σύνολο κομματιών διευθύνσεων. Σε αυτή την περίπτωση, η ατομική συντήρηση στάβλων φραγμών διευθύνσεων του δεύτερου αιτήματος περιμένει στη σειρά, αποτρέποντας κατά συνέπεια το απέλαση των στοιχείων από την κρύπτη επάνω στην οποία μια ατομική λειτουργία εκτελείται.