[Advcomparch] Απορίες πάνω στα θέματα της εαρινής του 2013

Konstantinos Nikas knikas at cslab.ece.ntua.gr
Mon Sep 8 14:44:15 EEST 2014


Καλησπέρα,

>
> Στο θέμα 2ο της εαρινής του 2013 όταν δυο επεξεργαστές έχουν το ίδιο block
> σε κατάσταση shared και το ζητήσει ένας τρίτος, κατάσταση που συμβαίνει για
> την πρόσβαση P3: read 0x00000000, τότε υποθέτουμε ότι ένας από τους άλλους
> δυο θα στείλει το block στον P3?

Η εκφώνηση είναι σαφής και ορίζει ότι το πρωτόκολλο χρησιμοποιεί
cache-to-cache transfers.

> Κι αν ναι, αυτός που θα το στείλει επιλέγεται στην τύχη?

Στη συγκεκριμένη περίπτωση ναι (ή ότι άλλο θέλετε να υποθέσετε).

> Επίσης, στην ίδια περίπτωση θα έχουμε μεταφορά προς τη
> μνήμη?

Εφόσον η κύρια μνήμη είναι updated, για ποιό λόγο να ενημερωθεί ξανά;


> Όταν κάνουμε miss τότε θέλουμε 8 κύκλους για να φέρουμε το δεδομένο στη
> μνήμη. Μέσα σε αυτούς τους 8 κύκλους θεωρούμε ότι γίνεται και η ανάγνωση του
> δεδομένου από τον επεξεργαστή ή, όπως λέγαμε και στο 5ο εξάμηνο,
> ξαναεκτελείται η εντολή μετά την μεταφορά και κάνει hit, οπότε θέλουμε
> συνολικά 8+1 κύκλους?

Στο συγκεκριμένο θέμα θεωρούμε ότι οι 2 κύκλοι του BusRdX/BusRd
περιέχουν και το access (το οποίο οδηγεί σε miss και άρα σε bus
transaction). Είναι αλήθεια ότι δεν ήταν πολύ καλά ορισμένο και δόθηκε
διευκρίνιση. Σε άλλα θέματα, η περιγραφή είναι καλύτερη.

Επομένως το miss παίρνει τουλάχιστον 2 κύκλους. Η συνολική διάρκεια
εξαρτάται από το τι πρέπει να κάνεις με δεδομένα κτλ.

> Όταν δυο διαφορετικά blocks της μνήμης μας κάνουν map στο ίδιο
> cache-line τότε το ένα δεν μπορεί να ακυρώσει το άλλο, ε?

Νομίζω ότι σε αυτό δεν χρειάζεται να απαντήσω.

Κ.


-- 
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