Εκτός του ότι υπάρχει εδώ το τι είναι το cache αλλά και το dalvik cache βρήκα ένα ωραίο κομμάτι από κάποιο άρθρο που εξηγά για κάποιον άσχετο τί είναι ακριβώς η μνήμη Cache με ένα πολύ πιο απλό τρόπο.
Ας υποθέσουμε πως η RAM είναι μια βιβλιοθήκη πανεπιστημίου, ο επεξεργαστής είναι ένας διδακτορικός φοιτητής, και πως υπάρχει ένας βιβλιοθηκάριος.
Ας πούμε πως ο φοιτητής χρειάζεται να δει κάτι σε ένα βιβλίο για την ανατομία. Το ζητάει στον βιβλιοθηκάριο, ο βιβλιοθηκάριος το ψάχνει στα ράφια και του το φέρνει.
Η όλη διαδικασία, το πήγαινε-έλα και η αναζήτηση, παίρνει κάποιο χρόνο, μερικά λεπτά. Όταν ο φοιτητής επιστρέψει το βιβλίο, ο βιβλιοθηκάριος το πηγαίνει στη θέση του, που επίσης έχει κάποιο κόστος σε χρόνο.
Το πρόβλημα είναι πως, αν σε μισή ώρα ο φοιτητής χρειαστεί ξανά το βιβλίο της ανατομίας, όλη η διαδικασία πρέπει να επαναληφθεί αυτούσια, και χάνεται πολύς χρόνος.
Ας πούμε τώρα πως ο βιβλιοθηκάριος έχει ένα ραφάκι κάτω από τον πάγκο, που χωράει 10 βιβλία, το οποίο συμβολίζει τη μνήμη cache.
Την πρώτη φορά που ο φοιτητής θα χρειαστεί το βιβλίο της ανατομίας, ο βιβλιοθηκάριος θα πρέπει να το βρει ανάμεσα στα εκατοντάδες χιλιάδες βιβλία της. Μόλις όμως ο φοιτητής το επιστρέψει, ο βιβλιοθηκάριος το βάζει στο ραφάκι.
Την επόμενη φορά που ο φοιτητής θα χρειαστεί ξανά το βιβλίο της ανατομίας, ο βιβλιοθηκάριος κοιτάζει στο ραφάκι, το βρίσκει εκεί, και το δίνει άμεσα, χωρίς να χάνεται τόσος χρόνος.
Μάλιστα, αν ο βιβλιοθηκάριος είναι τσίφτης και ατσίδας, μπορεί να ξέρει πως ο φοιτητής που ζήτησε το βιβλίο της ανατομίας, είναι πολύ πιθανό να χρειαστεί αμέσως μετά ένα βιβλίο πχ χειρουργικής.
Οπότε, όσο ο φοιτητής ασχολείται με το βιβλίο της ανατομίας, ο βιβλιοθηκάριος πηγαίνει και φέρνει το βιβλίο χειρουργικής, για να το έχει έτοιμο στο ραφάκι του.
Μόλις ο φοιτητής επιστρέψει το βιβλίο της ανατομίας και ζητήσει αυτό της χειρουργικής, το παίρνει άμεσα, και έχει χαθεί μηδέν χρόνος.
Αυτή είναι σε αδρές γραμμές η λειτουργία της cache. Περιέχει τις πληροφορίες που μόλις χρησιμοποίησε ο επεξεργαστής, καθώς και αυτές που θα χρειαστεί στο μέλλον, ώστε να έχει όσο γίνεται πιο γρήγορη πρόσβαση σε αυτές.
Το να βρει ο επεξεργαστής την πληροφορία που θέλει στην Cache ονομάζεται Cache Hit, αλλιώς είναι Cache Miss. Με τη χρήση περίπλοκων αλγορίθμων, σε συνδυασμό με τον κώδικα του προγράμματος, η επόμενη πληροφορία που θα χρειαστεί ο επεξεργαστής προβλέπεται σωστά σε ποσοστό μέχρι και 95%.
Μάλιστα, για τη βέλτιστη ταχύτητα, κάθε σύγχρονος επεξεργαστής έχει πολλαπλές βαθμίδες μνήμης cache. Είναι σαν ο βιβλιοθηκάριος, εκτός από το ραφάκι, να έχει ένα έπιπλο ακριβώς πίσω του που χωράει 50 βιβλία, και ένα έπιπλο λίγο παραπίσω που να χωράει 200 βιβλία.
Έτσι, σε περίπτωση που δεν βρεθεί στην πιο γρήγορη αλλά και πιο μικρή "Level 1" (L1) Cache η πληροφορία που χρειάζεται, να έχει το περιθώριο να ψάξει στην μεγαλύτερη και πιο αργή Level 2 (L2 cache) ή και την ακόμα μεγαλύτερη και ακόμα πιο αργή Level 3 (L3 cache).
Ελπίζω να βοήθησα
Πηγή
Ας υποθέσουμε πως η RAM είναι μια βιβλιοθήκη πανεπιστημίου, ο επεξεργαστής είναι ένας διδακτορικός φοιτητής, και πως υπάρχει ένας βιβλιοθηκάριος.
Ας πούμε πως ο φοιτητής χρειάζεται να δει κάτι σε ένα βιβλίο για την ανατομία. Το ζητάει στον βιβλιοθηκάριο, ο βιβλιοθηκάριος το ψάχνει στα ράφια και του το φέρνει.
Η όλη διαδικασία, το πήγαινε-έλα και η αναζήτηση, παίρνει κάποιο χρόνο, μερικά λεπτά. Όταν ο φοιτητής επιστρέψει το βιβλίο, ο βιβλιοθηκάριος το πηγαίνει στη θέση του, που επίσης έχει κάποιο κόστος σε χρόνο.
Το πρόβλημα είναι πως, αν σε μισή ώρα ο φοιτητής χρειαστεί ξανά το βιβλίο της ανατομίας, όλη η διαδικασία πρέπει να επαναληφθεί αυτούσια, και χάνεται πολύς χρόνος.
Ας πούμε τώρα πως ο βιβλιοθηκάριος έχει ένα ραφάκι κάτω από τον πάγκο, που χωράει 10 βιβλία, το οποίο συμβολίζει τη μνήμη cache.
Την πρώτη φορά που ο φοιτητής θα χρειαστεί το βιβλίο της ανατομίας, ο βιβλιοθηκάριος θα πρέπει να το βρει ανάμεσα στα εκατοντάδες χιλιάδες βιβλία της. Μόλις όμως ο φοιτητής το επιστρέψει, ο βιβλιοθηκάριος το βάζει στο ραφάκι.
Την επόμενη φορά που ο φοιτητής θα χρειαστεί ξανά το βιβλίο της ανατομίας, ο βιβλιοθηκάριος κοιτάζει στο ραφάκι, το βρίσκει εκεί, και το δίνει άμεσα, χωρίς να χάνεται τόσος χρόνος.
Μάλιστα, αν ο βιβλιοθηκάριος είναι τσίφτης και ατσίδας, μπορεί να ξέρει πως ο φοιτητής που ζήτησε το βιβλίο της ανατομίας, είναι πολύ πιθανό να χρειαστεί αμέσως μετά ένα βιβλίο πχ χειρουργικής.
Οπότε, όσο ο φοιτητής ασχολείται με το βιβλίο της ανατομίας, ο βιβλιοθηκάριος πηγαίνει και φέρνει το βιβλίο χειρουργικής, για να το έχει έτοιμο στο ραφάκι του.
Μόλις ο φοιτητής επιστρέψει το βιβλίο της ανατομίας και ζητήσει αυτό της χειρουργικής, το παίρνει άμεσα, και έχει χαθεί μηδέν χρόνος.
Αυτή είναι σε αδρές γραμμές η λειτουργία της cache. Περιέχει τις πληροφορίες που μόλις χρησιμοποίησε ο επεξεργαστής, καθώς και αυτές που θα χρειαστεί στο μέλλον, ώστε να έχει όσο γίνεται πιο γρήγορη πρόσβαση σε αυτές.
Το να βρει ο επεξεργαστής την πληροφορία που θέλει στην Cache ονομάζεται Cache Hit, αλλιώς είναι Cache Miss. Με τη χρήση περίπλοκων αλγορίθμων, σε συνδυασμό με τον κώδικα του προγράμματος, η επόμενη πληροφορία που θα χρειαστεί ο επεξεργαστής προβλέπεται σωστά σε ποσοστό μέχρι και 95%.
Μάλιστα, για τη βέλτιστη ταχύτητα, κάθε σύγχρονος επεξεργαστής έχει πολλαπλές βαθμίδες μνήμης cache. Είναι σαν ο βιβλιοθηκάριος, εκτός από το ραφάκι, να έχει ένα έπιπλο ακριβώς πίσω του που χωράει 50 βιβλία, και ένα έπιπλο λίγο παραπίσω που να χωράει 200 βιβλία.
Έτσι, σε περίπτωση που δεν βρεθεί στην πιο γρήγορη αλλά και πιο μικρή "Level 1" (L1) Cache η πληροφορία που χρειάζεται, να έχει το περιθώριο να ψάξει στην μεγαλύτερη και πιο αργή Level 2 (L2 cache) ή και την ακόμα μεγαλύτερη και ακόμα πιο αργή Level 3 (L3 cache).
Ελπίζω να βοήθησα
Πηγή