Προγραμματισμός

Γνώση Υπολογιστών >> Προγραμματισμός >  >> C /C + + Προγραμματισμός

Τι είναι η απευθείας χαρτογράφηση και λειτουργία;

Η απευθείας αντιστοίχιση είναι ένας σχεδιασμός της κρυφής μνήμης όπου κάθε διεύθυνση μνήμης αντιστοιχίζεται σε μια συγκεκριμένη γραμμή κρυφής μνήμης. Αυτό σημαίνει ότι υπάρχει μόνο μία πιθανή θέση κρυφής μνήμης για κάθε διεύθυνση μνήμης. Η άμεση αντιστοίχιση είναι απλή στην εφαρμογή και έχει χαμηλή επιβάρυνση υλικού, αλλά μπορεί να οδηγήσει σε διενέξεις κρυφής μνήμης εάν αντιστοιχιστούν πολλές διευθύνσεις μνήμης στην ίδια γραμμή κρυφής μνήμης.

Για να υπολογιστεί ο δείκτης της γραμμής κρυφής μνήμης για μια δεδομένη διεύθυνση μνήμης, η διεύθυνση μνήμης διαιρείται με το μέγεθος της γραμμής κρυφής μνήμης. Το υπόλοιπο αυτής της διαίρεσης είναι ο δείκτης γραμμής κρυφής μνήμης. Για παράδειγμα, εάν η διεύθυνση μνήμης είναι 0x100 και το μέγεθος της γραμμής προσωρινής μνήμης είναι 16 byte, τότε ο δείκτης της γραμμής προσωρινής μνήμης είναι 4.

Η συνάρτηση άμεσης αντιστοίχισης αντιστοιχίζει μια διεύθυνση μνήμης σε ένα ευρετήριο γραμμής κρυφής μνήμης σύμφωνα με τον ακόλουθο τύπο:

```

cacheLineIndex =memoryAddress mod cacheLineSize

```

Οπου:

* cacheLineIndex είναι το ευρετήριο της γραμμής κρυφής μνήμης

* memoryAddress είναι η διεύθυνση μνήμης

* cacheLineSize είναι το μέγεθος της γραμμής της κρυφής μνήμης

Ακολουθεί ένα παράδειγμα για το πώς λειτουργεί η απευθείας χαρτογράφηση. Σκεφτείτε μια κρυφή μνήμη με μέγεθος γραμμής κρυφής μνήμης 16 byte. Ο παρακάτω πίνακας δείχνει τις διευθύνσεις μνήμης που αντιστοιχίζονται σε κάθε ευρετήριο γραμμής κρυφής μνήμης:

| Ευρετήριο γραμμής προσωρινής μνήμης | Διευθύνσεις μνήμης |

|---|---|

| 0 | 0x000, 0x010, 0x020, ..., 0x0F0 |

| 1 | 0x100, 0x110, 0x120, ..., 0x1F0 |

| 2 | 0x200, 0x210, 0x220, ..., 0x2F0 |

| 3 | 0x300, 0x310, 0x320, ..., 0x3F0 |

| ... | ... |

Τώρα, ας πούμε ότι θέλουμε να αποκτήσουμε πρόσβαση στη διεύθυνση μνήμης 0x123. Για να υπολογίσουμε τον δείκτη της γραμμής κρυφής μνήμης για αυτήν τη διεύθυνση, διαιρούμε το 0x123 με το 16. Το υπόλοιπο αυτής της διαίρεσης είναι 3. Επομένως, ο δείκτης γραμμής προσωρινής μνήμης για τη διεύθυνση μνήμης 0x123 είναι 3.

Σύμφωνα με τον παραπάνω πίνακα, το ευρετήριο της γραμμής προσωρινής μνήμης 3 αντιστοιχίζεται στις διευθύνσεις μνήμης 0x300, 0x310, 0x320, ..., 0x3F0. Επομένως, η διεύθυνση μνήμης 0x123 αντιστοιχίζεται στη γραμμή κρυφής μνήμης που περιέχει τις διευθύνσεις μνήμης 0x300, 0x310, 0x320, ..., 0x3F0.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα