Memory Management Προηγμένες Αρχιτεκτονικές Υπολογιστών Ζέρβας Παναγίωτης Μ498

Download Report

Transcript Memory Management Προηγμένες Αρχιτεκτονικές Υπολογιστών Ζέρβας Παναγίωτης Μ498

Memory Management
Προηγμένες Αρχιτεκτονικές Υπολογιστών
Ζέρβας Παναγίωτης Μ498
Καλαντζής Γίωργος Μ503
Διδάσκοντας: Κ. Χαλάτσης
Επικοινωνία μεταξύ επεξεργαστή,
κρυφής και κύριας μνήμης

Τεχνικές για τον συνδυασμό μιας μικρής ποσότητας
γρήγορης μνήμης και μιας μεγάλης ποσότητας αργής
μνήμης=> ικανοποιητική ποσότητα μνήμης σε μια λογική
τιμή

Η μικρή , γρήγορη μνήμη ονομάζεται κρυφή (cache) και
Μέσος χρόνος απόκρισης της
μνήμης
Ο μέσος χρόνος απόκρισης για μια αίτηση προς τη μνήμη
υπολογίζεται από τη σχέση
tαπόκρισης= h*tc + (1-h)*tm.

Kαθώς το h τείνει στο 1, όλες οι αναφορές μπορούν να
ικανοποιηθούν από την κρυφή μνήμη και ο χρόνος προσπέλασης
τείνει στο c
Ο ρόλος της κρυφής μνήμης
στον υπολογιστή
Σκοπός :Χρησιμοποίηση αρχιτεκτονικών που θα
εκμεταλλεύονται στο έπακρο τις δυνατότητες της
σημερινής τεχνολογίας και θα διατηρούν το κόστος
αγοράς ενός προσωπικού υπολογιστή σε ανεκτά
επίπεδα.
Λύση : Χρησιμοποιούμε μια ταχύτατη αλλά όχι τόσο
ακριβή (λόγω μεγέθους) κρυφή μνήμη των 256 ΚΒ σε
συνδυασμό με μια πιο αργή κύρια μνήμη σε
συνδυασμό με τη χρησιμοποίηση ενός αλγορίθμου
μεταφοράς δεδομένων μεταξύ αυτών των δυο.
Τοπικότητα (locality)


Χρονική τοπικότητα
Χωρική τοπικότητα
Επίπεδα κρυφής μνήμης
Επίπεδο
Συσκευές που τη
χρησιμοποιούν
Level 1 Cache
Level 2 Cache, κύρια
μνήμη RAM, σκληρός
δίσκος / CD-ROM
Level 2 Cache
κύρια μνήμη RAM,
σκληρός δίσκος / CDROM
System RAM
σκληρός δίσκος / CDROM
Σκληρός δίσκος / CDROM
--
Ιεραρχία των μνημών (1)

Level 1 (Primary Cache)
-το chip της L1 cache είναι ενσωματωμένο μέσα στο
chip του επεξεργαστή
-ο ταχύτερος τύπος μνήμης μετά τους καταχωρητές
-η ταχύτητά της είναι ίδια περίπου με αυτή του
επεξεργαστή
-η L1 cache είναι πολύ μικρή αφού το μέγεθος της
κυμαίνεται από 8 ως 64 ΚΒ
Ιεραρχία των μνημών (2)

Level 2 (Secondary Cache)
-έχει μεγαλύτερο μέγεθος αλλά μικρότερη ταχύτητα από
την L1
-Το μέγεθός της κυμαίνεται από 64 ΚΒ ως 2 ΜΒ και
χρησιμοποιείται για την αποθήκευση των
πληροφοριών που έχουν προσπελαστεί προσφάτως
και δεν είναι αποθηκευμένες στην L1 cache
-το chip της δεν είναι ενσωματωμένο μέσα στo chip του
επεξεργαστή
-Το chip της L2 cache τοποθετείται είτε απευθείας πάνω
στη μητρική πλακέτα
Ιεραρχία των μνημών (3)

Η L2 cache αποτελείται από δυο βασικά
μέρη
-Data Store: Είναι το μέρος που αποθηκεύονται
πραγματικά οι πληροφορίες
-Tag RAM: Είναι ένα μικρό κομμάτι μνήμης που
χρησιμοποιείται για να αποθηκευτούν κομμάτια
διευθύνσεων της κύριας μνήμης τα περιεχόμενα των
οποίων βρίσκονται στην L2 cache
Ιεραρχία των μνημών (4)

Σχηματικά έχουμε :
Εκτίμηση της απόδοσης της
ιεραρχικής μνήμης
Ένας τρόπος εκτίμησης της απόδοσης της ιεραρχικής
μνήμης είναι ο μέσος χρόνος προσπέλασης της
μνήμης :
Average memory-access time= Hit time + Miss
rate*Miss Penalty
- O μέσος χρόνος προσπέλασης μπορεί να μετρηθεί
είται ως η απόλυτη τιμή του χρόνου ή σαν ο αριθμός
των κύκλων ρολογιού που η CPU περιμένει την
μνήμη.
Caches

τυπικές τιμές της ιεραρχικής μνήμης για κρυφές
μνήμες :
Τεχνικές μεταφοράς
πληροφοριών (1)

Cache Bursting
Όλες οι σύγχρονες L2 cache χρησιμοποιούν αυτό τον
τύπο μεταφοράς πληροφοριών και μάλιστα ο
χρονισμός είναι "3-1-1-1". Αυτό σημαίνει ότι η
πρώτη μεταφορά διαρκεί 3 παλμούς, ενώ οι
υπόλοιπες 1 παλμό η καθεμιά.
Τεχνικές μεταφοράς
πληροφοριών (2)

Asynchronous Cache
-Όταν μια αίτηση στέλνεται στην κρυφή μνήμη, η τελευταία
ανταποκρίνεται στην αίτηση χωρίς να λαμβάνει υπόψη της το
ρολόι του συστήματος =>μπορεί να εμφανιστούν διάφορα
προβλήματα συγχρονισμού στα πολύ γρήγορα συστήματα.
Π.χ. Σε ένα σχετικά αργό σύστημα των 33 MHz, ο χρονισμός της
κρυφής μνήμης είναι "2-1-1-1", αλλά σε ταχύτερα συστήματα
(66 MHz) ο χρονισμός πέφτει στο "3-2-2-2".
-Ο τρόπος λειτουργίας μιας ασύγχρονης κρυφής μνήμης είναι
ανάλογος με τον τρόπο λειτουργίας των ασύγχρονων FPM και
EDO.
Τεχνικές μεταφοράς
πληροφοριών (3)

Synchronous Burst Cache
-Σε κάθε χτύπο του ρολογιού μπορεί να
πραγματοποιηθεί μια μεταφορά πληροφοριών από ή
προς την κρυφή μνήμη (αν φυσικά αυτή είναι έτοιμη)
-Μπορεί ως ένα βαθμό να ικανοποιεί ταχύτερα
συστήματα χωρίς να πέφτει σημαντικά η απόδοση
-Όσο πιο γρήγορο είναι το σύστημα, τόσο ταχύτερα
chips SDRAM χρειαζόμαστε, για να μην εμφανιστούν
προβλήματα χρονισμού
Τοποθέτηση ενός μπλοκ στην
κρυφή μνήμη (1)

Συσχετιστική κρυφή μνήμη- associative
cache
Τοποθέτηση ενός μπλοκ στην
κρυφή μνήμη (2)

Σε μια συσχετιστική κρυφή μνήμη, η σειρά των
καταχωρήσεων είναι τυχαία.
(α) μνήμη με μπλοκ 4 byte (β) Συσχετιστική κρυφή μνήμη με 1024
γραμμές
Τοποθέτηση ενός μπλοκ στην
κρυφή μνήμη (3)

κρυφή μνήμη άμεσης χαρτογράφησης (directmapped cache)
(a)Κρυφή μνήμη άμεσης χαρτογράφησης με 1024 υποδοχές των 4
byte (b)Υπολογισμός ετικέτας και υποδοχής από μια διεύθυνση
των 24 bit
Τοποθέτηση ενός μπλοκ στην
κρυφή μνήμη (4)

συσχετιστική μνήμη συνόλου (set associative
cache)
Συσχετιστική κρυφή μνήμη με n καταχωρήσεις ανά υποδοχή
Πλεονεκτήματα-Μειονεκτήματα
Η κρυφή μνήμη άμεσης χαρτογράφησης είναι
απλούστερη, η κατασκευή της στοιχίζει λιγότερο και
έχει μικρότερο χρόνο προσπέλασης .
 Η συσχετιστική μνήμη έχει υψηλότερο ποσοστό
επιτυχίας για οποιονδήποτε αριθμό υποδοχών επειδή
δεν υπάρχουν ποτέ συγκρούσεις
-Κατά τη σχεδίαση ενός πραγματικού υπολογιστή,
εκτελείται μια αναλυτική προσομοίωση της κρυφής
μνήμης για να καταλήξουμε στο πόση απόδοση
αγοράζει κανείς και σε τι τιμή.

Βελτιστοποίηση μεθόδου
χαρτογράφησης


Ποσοστό Επιτυχίας (Hit Ratio): Θα πρέπει να είναι
πολύ υψηλό το ποσοστό επιτυχίας της L2 cache
Search Speed: Η ταχύτητα αναζήτησης των
περιεχομένων της L2 cache θα πρέπει να είναι όσο
το δυνατόν μεγαλύτερη
Αντικατάσταση Block σε ένα
Cache Miss


Random : Τα υποψήφια μπλοκ επιλέγονται τυχαία .
Least-recently used (LRU) : Για να μειώσουμε την
πιθανότητα της διαγραφής πληροφορίας την οποία
ίσως χρειαστεί να χρησιμοποιήσουμε σχετικά
σύντομα η προσπέλαση στα μπλοκ καταγράφεται. Το
μπλοκ που αντικαθίσταται είναι αυτό που έχει αρκετό
χρόνο να χρησιμοποιηθεί
Χειρισμός εγγραφών


διεγγραφή (write though) :όταν γράφεται μια λέξη
στην κρυφή μνήμη, γράφεται αυτόματα και στην
μνήμη. Εξασφαλίζει ότι οι καταχωρήσεις της κρυφής
μνήμης είναι πάντα ίδιες με τις αντίστοιχες
καταχωρήσεις της μνήμης .
υστεροεγγραφή (copy back) : δεν ενημερώνει τη
μνήμη οπότε αλλάζει η κρυφή μνήμη. Αντίθετα, η
μνήμη ενημερώνεται μόνον όταν η καταχώρηση
καθαρίζεται από την κρυφή μνήμη για να επιτρέψει
σε κάποια άλλη καταχώρηση να καταλάβει την
υποδοχή της.
Διαδικασία ανάγνωσης /
εγγραφής της κρυφής μνήμης
Cache Performance

Ο συνολικός χρόνος εκτέλεσης ενός προγράμματος
ισούται με:
CPU time = IC * (CPIEXECUTION +
Miss_Rate*Miss_Penalty*
Memory_Accesses/Instruction) * Clock cycle time
Miss Rate: ποσοστό αποτυχίας εύρεσης του επιθυμητού block στο
ανώτερο επίπεδο μνήμης.
Miss Penalty: χρόνος που χρειάζεται για την μεταφορά του block στο
ανώτερο επίπεδο μνήμης.
IC : σύνολο εντολών.
Memory Accesses: χρόνος εύρεσης της πρώτης λέξης του μπλοκ σε
χαμηλότερο επίπεδο μνήμης και ο χρόνος μεταφοράς όλου του μπλοκ
στο ανώτερο επίπεδο μνήμης( transfer time).
Cache Misses (1)


Αναγκαστικός (Compulsory): Η πρώτη αναζήτηση
σε ένα block δεν είναι στην cache, οπότε θα πρέπει
να το επαναφέρουμε (cold start miss ή reference
miss).
Χωρητικότητα (Capacity): H cache δεν μπορεί να
χωρέσει όλα τα block που χρειάζονται κατά την
εκτέλεση ενός προγράμματος => συμβαίνουν
capacity misses εξαιτίας των block που έχουν
διαγραφεί από την cache τα οποία τα επαναφέρουμε
αργότερα.
Cache Misses (2)

Σύγκρουση (Conflict): Αν η cache είναι set
associative ή direct mapped, είναι πιθανό δύο ή
περισσότερα block να αντιστοιχούν στην ίδια θέση
=> διώχνουμε χρήσιμα block από την cache και να
τα επαναφέρουμε αργότερα (collision miss.)
8-way :
4-way :
2-way :
1-way :
fully associative to 4-way associative
8-way associative to 4-way associative
4-way associative to 2-way associative
2-way associative to 1-way associative
Block sizes in Cache

συσχέτιση του block size και του miss penalty
- Ο σκοπός της ιεραρχικής μνήμης είναι να μειώσει τον
χρόνο εκτέλεσης, και όχι τα misses
Improving Cache-Memory
Performance



Αυξάνοντας το μέγεθος του μπλοκ δεν βελτιώνεται το
average access time
Κάνοντας την cache memory μεγαλύτερη μειώνεται η
ταχύτητα της, ριψοκινδυνεύοντας έτσι το CPU clock
rate.
Κάνοντας την cache περισσότερο associative
μειώνεται και η ταχύτητα της.
Reducing Hit times- Making
Writes faster (1)


Πρωτοχρησιμοποιήθηκε στον VAX 8800. Tags και
data διαχωρίζονται έτσι ώστε να μπορούν να
καταχωρηθούν ανεξάρτητα
Η διαφορά έγκειται στο ότι η memory access κατά την
διαδικασία σύγκρισης χρησιμοποιεί την διεύθυνση και
τα data από την προηγούμενη εγγραφή
caches οι οποίες πρέπει να είναι direct mapped
χρησιμοποιώντας μια τεχνική γνωστή ως subblock
placement. Κατά την τεχνική αυτή χωρίζουμε τα
blocks σε μικρότερα (subblocks) Κάθε subblock
περιλαμβάνει τα δεδομένα και το valid tag
Reducing Hit times- Making
Writes faster (2)



i) Tag match and valid bit already set. Το tag ήταν
αυτό στο οποίο έπρεπε να γράψουμε και τίποτα δεν
χάθηκε με το να ξανακάνουμε το valid bit ξανά 1
ii) Tag match and valid bit not set.Το tag ήταν αυτό
στο οποίο έπρεπε να γράψουμε και το αντίστοιχο bit
ήταν 0.
iii)Tag mismatch. Τώρα έχει συμβεί ένα miss το
οποίο θα αλλάξει το μέρος των data του μπλοκ =>
αρκεί να αλλαχθεί το Tag στην cache, ώστε να
περιέχονται τα σωστά δεδομένα.
Reducing Miss Penalty- Making
write misses faster
SW 512(R0), R3 ;
LW R1, 1024(R0) ;
LW R2, 512(R0) ;


M[512] <- R3
R1 <- M[1024]
R2 <- M[512]
κάθε Read Miss να περιμένει να αδειάσει ο buffer, και
μετά να εκτελείται. Mειονέκτημα αυξάνεται το read
Miss Penalty.
γίνεται έλεγχος στα δεδομένα του buffer, και αν δεν
υπάρχει σύγκρουση, να συνεχίζεται το Read Miss
Reducing Miss Penalty-Making
Read Misses Faster


Early restart : Όταν έρθει η λέξη που ζητά ο
επεξεργαστής, να την δώσουμε και να συνεχιστεί η
εκτέλεση.
Out-of-order-fetch : Απαιτούμε την εκλειπόμενη λέξη
από την μνήμη πρώτα και την στέλνουμε στην CPU
όσο το δυνατόν συντομότερα. Επιτρέπουμε την CPU
να συνεχίσει την εκτέλεση ενώ καλύπτει τις
υπολειπόμενες λέξεις στο μπλοκ (wrapped fetch).
Making Cache Hits Faster-Virtually
Addressed Caches

Το miss penalty παίζει σημαντικό ρόλο στο average
access time, αλλά το hit time επηρεάζει και το
average access time και το clock rate της CPU
Λύση :να χρησιμοποιήσουμε το φυσικό μέρος των
διευθύνσεων για να κατατάξουμε την cache ενώ
στέλνουμε τις virtual address μέσω των TLB
Μειονέκτημα :κρατάμε στην cache διπλά δεδομένα
Reducing Miss Penalty-Two Level
Caches (1)
O μέσος χρόνος προσπέλασης της μνήμης (Average
memory-access time) ισούται :
Average memory-access time = Hit timeL1 +
Miss
rateL1 ( Hit timeL2 + Miss rateL2*Miss
penaltyL2 )
Reducing Miss Penalty-Two Level
Caches (2)

σχετικός χρόνος εκτέλεσης σε σχέση με το μέγεθος
της second-level cache.
Reducing Miss Rate by Reducing
Cache Flushes-I/O (1)

Tο Ι/Ο δημιουργεί το ενδεχόμενο η CPU και τα περιφερειακά να
διαβάζουν τα
μη ανανεωμένα δεδομένα στην
περίπτωση που εφαρμόζεται η
μέθοδος write back
(cache-coherency)και
συναντάται στους
multiprocessors.
Reducing Miss Rate by Reducing
Cache Flushes-I/O (2)
Σχετικά με την εγγραφή έχουμε δυο λύσεις :


Software solution: Η λύση αυτή εγγυάται ότι κανένα
από τα block του Ι/Ο buffer , δεν υπάρχει στην cache
Hardware solution : Eλέγχεται αν οι διευθύνσεις στις
οποίες σκοπεύει η συσκευή να γράψει υπάρχουν
στην cache. Αν υπάρχουν, τότε οι σχετικές εγγραφές
της cache γίνονται invalid.
Κύρια Μνήμη RAM
Τύποι Μνήμης RAM


Στατική RAM:Διατηρεί τα περιεχόμενα
της
Δυναμική RAM:Χρησιμοποιεί κύκλωμα
αναζωογόνησης για να διατηρήσει τα
περιεχόμενα της
Σύγκριση SRAM,DRAM




Πλεονεκτήματα SRAM
Απλούστερη
Ταχύτητερη
Πλεονεκτήματα DRAM
Μικρότερο Κόστος
Μικρότερο Μέγεθος
Κατηγορίες DRAM (1)

Συμβατική DRAM

FPM (Fast PageMode) DRAM

EDO DRAM

BEDO DRAM
Κατηγοριες DRAM (2)

Συγχονη και Ασύγχρονη DRAM

DDR (Double Data Rate) SDRAM

DR (Direct Rambus) DRAM

SL (Synchronous Link) DRAM
Προσπέλαση Μνήμης και Χρόνος
Προσπέλασης (1)

Διάγραμμα χρονισμού για μια διαδικασία
ανάγνωσης απο την κύρια μνήμη
Προσπέλαση Μνήμης και Χρόνος
Προσπέλασης (2)

Διαδικασία ανάγνωσης απο μια
ασύγχρονη μνήμη DRAM
Παράμετροι της Μνήμης DRAM



Χρονισμός της μνήμης
Ταχύτητα μνήμης DRAM
Εκτίμηση ταχύτητας DRAM
Οργάνωση της Κύριας Μνήμης για
βελτίωση της απόδοσης
(a) One Word Wide
Memory Organization
CPU
CACHE
(b) Wide Memory
Organization
(c) Interleaved Memory
Organization
CPU
CPU
CACHE
MUX
CACHE
MEMORY
MEMORY
MEMORY
BANK 0
MEMORY
BANK 1
MEMORY
BANK 2
MEMORY
BANK 3
Εικονική Μνήμη (1)


Πολλές διεργασίες κάθε μια θέλει τον
δικό της address space
Πολύ δαπανηρό να δεσμεύσουμε όλο το
address space κάθε διεργασίας στη
κύρια μνήμη
Εικονική Μνήμη (2)

Αντιστοιχία εικονικής και φυσικής
μνήμης
Page Tables
Συλλογή απο Page Table Entries που
διατηρούν τις εξής πληροφορίες:
 Virtual Page Number
 Page Frame Number
 Valid Bit
 Reference Bit
 Modify Bit
 Page Protection Bits
Translation Look-aside Buffers


Ανάγκη για επιτάχυνση της μετάφρασης
απο εικονικές διευθύνσεις σε φυσικές
Χρησιμοποίηση μιας cache για τα Page
Table Entries
Οργάνωση των Page Tables (1)

Hierarchical Page Tables
Οργάνωση των Page Tables (2)
Hierarchical Page Tables:2 τρόποι πρόσβασης
 Top-down traversal
 Bottom-up traversal
Οργάνωση των Page Tables (3)

Inverted Page Tables
Οργάνωση των Page Tables (4)

Inverted Page Tables:Lookup Αλγόριθμος
Πρόσβασης