Óõããíþìç ðïõ åðéìÝíù áëëÜ ìÞðùò ôï ãåãïíüò üôé ôá ïñßóìáôá ãñÜöïíôáé óôéò êáôÜëëçëåò èÝóåéò (Vj, Vk) ôïõ Reservation Unit üôáí åßíáé äéáèÝóéìá (êáé åðïìÝíùò äåí åðçññåÜæïíôáé áðü ôçí Üëëç åíôïëÞ ðáñüëï ðïõ ï êáôá÷ùñçôÞò åßíáé êïéíüò), áðïôåëåß register renaming??
Σύμφωνα και με τον ορισμό που υπάρχει και στο βιβλίο σας (στην παρουσίαση του αλγορίθμου Tomasulo)
"Register renaming eliminates these hazards (WAR and WAW) by renaming all destination registers..." (από την αγγλική έκδοση)
Με τον αυστηρό ορισμό λοιπόν, το διάβασμα των operands και η αποθηκευσή τους στο RS δεν αποτελεί register renaming. Αυτό που κάνεις είναι να παίρνεις κατευθείαν την τιμή του register που θες αν είναι έτοιμη, αλλιώς το σύστημα σου λέει από που πρέπει να την περιμένεις.
Αντίθετα renaming κάνεις για τους καταχωρητές προορισμού. Αν η εντολή
MUL.D F4,F0,F2
εισαχθεί στο Mult1 RS, o καταχωρητής F4 γίνεται renamed σε Mult1 και οι εντολές που ακολουθούν και χρησιμοποιούν σαν όρισμα τον F4 θα χρησιμοποιούν πια το Mult1.
Periklis Vasileiou wrote:
Συγγνώμη που επιμένω αλλά μήπως το γεγονός ότι τα ορίσματα γράφονται στις κατάλληλες θέσεις (Vj, Vk) του Reservation Unit όταν είναι διαθέσιμα (και επομένως δεν επηρρεάζονται από την άλλη εντολή παρόλο που ο καταχωρητής είναι κοινός), αποτελεί register renaming??
Advcomparch mailing list Advcomparch@lists.cslab.ece.ntua.gr http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch
advcomparch@lists.cslab.ece.ntua.gr