16Κ είναι ο συνολικός αριθμός bits για τους πίνακες BHT και PHT.Στο ερώτημα Δ της δεύτερης άσκησης θα πρέπει να προσομοιώσουμε έναν Local-History two-level predictor.Οπότε έχω κάποιες απορίες για το πώς μπορούμε να υπολογίζουμε το historySize. α) Το συνολικό μέγεθος που είναι 16K αναφέρεται στο συνολικό αριθμό απο bits που περιέχουν οι πίνακες BHT, PHT ή είναι ένα μέγεθος εγγραφών ;
Έχεις δίκιο για το μπέρδεμα αυτό. Η ίδια απορία τέθηκε και στο μάθημα την προηγούμενη βδομάδα. Όπως είπα και εκεί πρόκειται για ένα λάθος δικό μας (το οποίο μεταφέρθηκε και στην εκφώνηση της άσκησης χωρίς να το καταλάβουμε μέχρι πρόσφατα).β) Απο ότι έχω καταλάβει στον χρειαζόμαστε log2(N) bits απο τον PC όπου Ν το μέγεθος του BHT για τον προσπελάσουμε. Ο BHT περιέχει το history, κάποια bits δηλαδή των οποίων το πλήθος είναι το ζητούμενο(historySize). Οπότε με βάση το νουμερο του index του BHT και το περιεχόμενο αυτής της θέσης θα πρέπει να δημιουργήσουμε ένα νέο index για να προσπελάσουμε τον PHT. Τώρα όμως ο PHT είναι fixed στα 1024 οπότε θέλουμε log2(1024) = 10bits για να τον προσπελάσουμε..και εδώ αρχίζει το μπέρδεμα. Το bits για κάποιο index του BHT σύμφωνα με την άσκηση είναι log2(1024) = 10 ή log2(2048) = 11 bits αντίστοιχα. Πώς λοιπόν απο αυτά τα 10 ή 11 bits θα προσθέσουμε και κάτι άλλο που είναι το μέγεθος του history register που θα μας δώσει αποτέλεσμα 10 για να προσπελάσουμε τον PHT ; Ενναλακτικά στο παραπάνω μήπως εννοούμε οτι 16K μέγεθος hardware σημαίνει 8 set απο PHT tables με 1024*2 = 2048 ο καθένας οπότε 2048*8 = 16K bits άρα θέλουμε log2(8) = 3 bits + 10 bits = 13 bits για να προσπελάσουμε τον PHT οπότε το history size θα είναι στην μια περίπτωση που το l1 εχει 10bit index θα είναι 3 bit και στην άλλη περίπτωση που έχουμε 11bit index θα είναι 2 για να έχουμε πάντα άθροισμα 13 ;