Πίσω

Δραστηριότητα 6

   Έστω ότι έχουμε δύο αρχεία: το second1.s και το second2.s, τα οποία περιέχουν τα αντίστοιχα προγράμματα:

Ο κώδικας του second1.sΟ κώδικας του second2.s
.data
.word 4,4
.text
main: LW r1,$DATA(r0)
        LW r2,$DATA +4(r0)
        SUB r3,r1,#2
        BNEZ r3,L1
        ADD r1,r0,r0
L1:   SUB r3,r2,#2
        BNEZ r3,L2
        ADD r1,r0,r0
L2:   SUB r3,r1,r2
.data
.word 4,4
.text
main: LW r1,$DATA(r0)
        LW r2,$DATA +4(r0)
        SUB r3,r1,#4
        BNEZ r3,L1
        ADD r1,r0,r0
L1:   SUB r3,r2,#4
        BNEZ r3,L2
        ADD r2,r0,r0
L2:   SUB r3,r1,r2


· Να προσδιορίσετε τους κινδύνους που προκύπτουν κατά την εκτέλεση των προγραμμάτων και να προτείνετε τρόπους αντιμετώπισης των κινδύνων.
· Να εκτελέσετε τα προγράμματα χρησιμοποιώντας το λογισμικό προσομοίωσης του DLX, Windlx, το οποίο παρατίθεται στην ιστοσελίδα:
· Να εκτελέσετε των κώδικα του παραδείγματος χρησιμοποιώντας το λογισμικό προσομοίωσης του DLX, Windlx, το οποίο παρατίθεται στην ιστοσελίδα:
http://www.gup.uni-linz.ac.at/downloads/ti3/windlx
· Να συγκρίνετε την απάντηση που δώσατε με τα αποτελέσματα από την εκτέλεση των προγραμμάτων από τον προσομοιωτή Windlx.
· Για περισσότερες λεπτομέρειες καλό θα ήταν να συμβουλευτείτε το παράρτημα Α: «Εργαλεία Προσομοίωσης του DLX».


Απάντηση δραστηριότητας 6

   Στο πρόγραμμα second1.s προκύπτει κίνδυνος δεδομένων RAW επειδή στις εντολές LW r1,$DATA(r0) και SUB r3,r1,#2 η SUB χρειάζεται την τιμή του r1 στο στάδιο ID, ενώ η LW βρίσκεται στο στάδιο MEM. Ο κίνδυνος αντιμετωπίζεται με προώθηση από το στάδιο MEM της LW στο στάδιο EX της SUB.
Από την εκτέλεση του προγράμματος second1.s παρατηρούμε:
Οι τιμές των r1, r2 είναι τέτοιες ώστε να ακολουθούνται και οι δύο διακλαδώσεις. Οι εντολές ADD δεν εκτελούνται ποτέ.
Έχουμε δύο καθυστερήσεις ενός κύκλου λόγω των εντολών διακλάδωσης: BNEZ r3,L1 και BNEZ r3,L2
για κάθε φορά που εκτελείται η ακολουθία εντολών.
Από την εκτέλεση του προγράμματος second2.s παρατηρούμε:
Στο second2.s δεν ακολουθείται καμία από τις δύο συνθήκες διακλάδωσης. Γι' αυτό το λόγο και οι καθυστερήσεις συνολικά είναι δύο λιγότερες.