Ασκήσεις

Θέματα για σκέψη

Υποχρεωτική άσκηση

Να γράψετε ένα πρόγραμμα σε C για να μετρήσετε την ταχύτητα του υπολογιστή ανάλογα με την ύπαρξη κρυφής μνήμης και του τρόπου πρόσβασης σε στοιχεία στη μνήμη.

Δηλώστε έναν πίνακα Ν στοιχείων της παρακάτω μορφής:

volatile int array[N];
(Ο προσδιορισμός volatile επιβάλλει στο μεταγλωττιστή να μη βελτιστοποιήσει την πρόσβαση στον πίνακα αυτό). Στη συνέχεια με τη χρήση της συνάρτησης time() χρονομετρήστε την απόδοση του προγράμματος: Δοκιμάστε το πρόγραμμα με διάφορες τιμές του Ν και με ενεργοποιημένη ή απενεργοποιημένη την κρυφή μνήμη (πρώτου ή/και δεύτερου επιπέδου) του επεξεργαστή. Καταγράψτε με ακρίβεια τα αποτελέσματα σε πίνακες και ερμηνεύστε τα ως προς το είδος και την οργάνωση της κρυφής μνήμης που θα μπορούσε (με βάση τα αποτελέσματα) να έχει ο υπολογιστής.

Σημείωση

Για να έχετε συγκρίσιμα και χρήσιμα αποτελέσματα:

Η απενεργοποίηση της κρυφής μνήμης γίνεται σε πολλούς υπολογιστές μέσω της επιλογής BIOS features setup (όταν ανάβει ο υπολογιστής). Μετά την άσκηση μην παραλείψετε να επαναφέρετε τις ρυθμίσεις στην αρχική τους κατάσταση.

Η άσκηση μπορεί να γίνει από ομάδες των τριών ατόμων το πολύ.