[Advcomparch] Υλοποίηση Συνάρτησης SplitAddress στο cache.h

Konstantinos Nikas knikas at cslab.ece.ntua.gr
Wed Apr 5 14:40:59 EEST 2017


Καλησπέρα,

όπως ήδη εξήγησα σε άλλο email, το συγκεκριμένο δεν είναι "τυπικά"
σωστό. Στην πραγματικότητα, αποτελεί ένα legacy hack το οποίο δουλεύει
σωστά στην περίπτωση της non-inclusive cache, παρόλα αυτά δημιουργεί
σφάλματα αν δεν ληφθεί υπόψη στις inclusive caches (κάτι που είχε
διαφύγει στον κώδικα μας).

Ευχαριστούμε για την επισήμανση.

Κ.

2017-04-04 19:26 GMT+03:00 Babis Kardaris <bkardaris at hotmail.com>:
> Καλησπέρα,
>
> Η συνάρτηση SplitAddress στο cache.h ορίζεται ως εξής:
>
> VOID SplitAddress(const ADDRINT addr, UINT32 lineShift, UINT32
> setIndexMask, CACHE_TAG & tag, UINT32 & setIndex) const {
>      tag = addr >> lineShift;
>      setIndex = tag & setIndexMask;
>      tag = tag >> FloorLog2(L1NumSets());
> }
>
> Από ό,τι έχω καταλάβει, η παραπάνω συνάρτηση αντιστοιχίζει την διεύθυνση
> που περνάμε σαν όρισμα στο κατάλληλο block line της L1, με βάση τις
> παραμέτρους lineshift και setIndexMask, δίνοντας κατάλληλες τιμές στα
> tag και setIndex.
> Η συνάρτηση καλείται σε δυο περιπτώσεις για διεύθυνσεις που θέλουμε να
> αντιστοιχιστούν στην L1, αλλά και σε μια περίπτωση για διεύθυνση που
> θέλουμε να αντιστοιχιστεί στην L2.
> Δεδομένου ότι στον ορισμό της υπάρχει αναφορά μόνο στο L1NumSets() και
> όχι στο L2NumSets() (ανάλογα με την περίπτωση), δεν υπάρχει πρόβλημα
> όταν την καλούμε για αντιστοίχιση στην L2?
>
> Μου φάνηκε παράξενο και είπα να το ρωτήσω. Αν δεν υπάρχει κάποιο θέμα
> και δεν έχω καταλάβει αρκετά τον κώδικα, ζητώ συγγνώμη για την ταλαιπωρία.
> _______________________________________________
> Advcomparch mailing list
> Advcomparch at lists.cslab.ece.ntua.gr
> http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch



-- 
Dr. Konstantinos Nikas
Computing Systems Laboratory
School of Electrical and Computer Engineering
National Technical University of Athens

Tel: +30-210-7724159
e-mail: knikas at cslab.ece.ntua.gr
http://www.cslab.ece.ntua.gr/~knikas


More information about the Advcomparch mailing list