Για να υπολογιστεί ο δείκτης της γραμμής κρυφής μνήμης για μια δεδομένη διεύθυνση μνήμης, η διεύθυνση μνήμης διαιρείται με το μέγεθος της γραμμής κρυφής μνήμης. Το υπόλοιπο αυτής της διαίρεσης είναι ο δείκτης γραμμής κρυφής μνήμης. Για παράδειγμα, εάν η διεύθυνση μνήμης είναι 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.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα