Αρχιτεκτονική Υπολογιστών — Πρόοδος 2025¶
Μεταγραφή από το Arch_25.pdf, χειρόγραφο αντίγραφο των ασκήσεων της προόδου.
Arch_25.pdf¶
Σημείωση: η φωτογραφία περιέχει χειρόγραφες απαντήσεις φοιτητή.
Άσκ. 1
li t0, 0xABCD9876
sw t0, 100(x0)
lb s0, 101(x0)
Τι θα αποθηκευτεί στο s0 αν ακολουθούμε little endian;
Άσκ. 2
addi t0, t0, -4
Γράψτε την εντολή σε 16-δική μορφή
[Σχήμα: πίνακας πεδίων μορφής εντολής με στήλες imm | rs1 | funct3 | rd | opcode, χωρίς τιμές]
Άσκ. 3
2GHz.
| Α | Β | Γ | Δ | |
|---|---|---|---|---|
| IC | 10 | 8 | 2 | 4 |
| CPI | 1 | 2 | 4 | 3 |
\(T_c = ?\)
Άσκ. 4
Στον καταχωρητή x6 έχουμε την τιμή 10
loop: beq x6, x0, done
addi x6, x6, -1
addi x5, x5, 2
jal x0, loop
done:
Πόσες εντολές εκτελούνται;
Άσκ. 5
| A | B | C | |
|---|---|---|---|
| IC | 50% | 20% | 30% |
| CPI | 2 | 1 | 3 |
Βρείτε νέο \(\text{CPI}_C\) ώστε να τρέχει στον υποδιπλάσιο χρόνο.
Άσκ. 6
addi t0, s3, 64
lw t1, 0(t0)
\(A[256]\) ισχύει \(A[i] = 4 \cdot i\) στο s3 είναι η βάση του A.
Ποια είναι η τιμή του t1;
Άσκ. 7
add x5
add x6
add x20
add x10
[Σχήμα: αγκύλη που ομαδοποιεί τις τέσσερις εντολές, με σημείωση «φύλλο»]
Πόσους καταχωρητές πρέπει να αποθηκεύσουμε;
Άσκ. 8
\(E_1\): 2GHz 1.0V t \(E_2\): 1.8GHz 1.1V t
Ποιός καταναλώνει περισσότερη ενέργεια;
Άσκ. 9
add x30, x28, x29
slli x30, x30, 2
add x3, x30, x11
lw x30, 0(x3)
sw x30, 16(x10)
Διαλέξτε από τα πολλαπλής τι κάνει το πρόγραμμα
- [ ] \(A[4] = B[i+j]\)
[Λείπει από τη φωτογραφία: οι υπόλοιπες επιλογές πολλαπλής επιλογής του ερωτήματος 9]
Άσκ. 10
Δύο ερωτήματα σύντομης ανάπτυξης.
1) Γιατί χρησιμοποιούμε 5 bit για τους καταχωρητές rs1, rs2, rd;
2) Πείτε συνοπτικά για ποιόν λόγο μας περιορίζουν οι εντολές τύπου S, I και να αναφέρετε πως το επιλύουμε.
Λύσεις (🟡 community)
Κατάσταση: 🟡 community Πηγή: λυμένο χειρόγραφο αντίγραφο της προόδου (Arch_25.pdf)· η προέλευση των λύσεων δεν αναγράφεται
Προσοχή
Η προέλευση των λύσεων δεν αναγράφεται στο αρχείο· η κατάταξη ως community βασίζεται στο ότι πρόκειται για χειρόγραφο λυμένο αντίγραφο και όχι για επίσημο κλειδί. Άσκ. 2–9: η αρχική σημείωση αναφέρει ότι οι ασκήσεις 2–9 ήταν πολλαπλής επιλογής, αλλά το κείμενο δεν περιέχει τις επιλογές· δεν μπορεί να ελεγχθεί ότι οι απαντήσεις (π.χ. «άλλο» στην Άσκ. 5) είναι μεταξύ των επιλογών. Άσκ. 8: η αιτιολόγηση γράφει ότι οι δύο επεξεργαστές έχουν «ίδιο χρόνο εκτέλεσης» και στη συνέχεια «T2 > T1»· η αιτιολόγηση είναι εσωτερικά ασυνεπής, ενώ το τελικό συμπέρασμα (E2) συμφωνεί με P ∝ f·V².
Λύσεις — Αρχιτεκτονική Υπολογιστών — Πρόοδος 2025¶
Arch_25.pdf¶
Λυμένες ασκήσεις Προόδου arch
| Άσκ. 1 |
li t0, 0xABCD9876
sw t0, 100(x0)
lb s0, 101(x0)
Ο αριθμός 0xABCD9876 είναι αρνητικός. Επομένως όταν κάνουμε load byte έχουμε το 0xFFFFFF98. Το 0x98 προκύπτει επειδή έχουμε little endian.
Σωστή απάντηση: 0xFFFFFF98
| Άσκ. 2 |
addi t0, t0, -4
Η addi είναι της μορφής I.
| imm | rs1 | funct3 | rd | opcode |
|---|---|---|---|---|
| 111111111100 | 00101 | 000 | 00101 | 0010011 |
\(\text{imm} \rightarrow\) βάζουμε το \(-4\) σε συμπλήρωμα ως προς 2.
\(\text{rs1}, \text{rd} \rightarrow\) το t0 είναι το x5, επομένως βάζουμε το 5 (00101).
\(\text{opcode}, \text{f3} \rightarrow\) βλέπουμε απ' την κάρτα
Χωρίζουμε σε τετράδες για μετατροπή στο 16-δικό.
1111 1111 1100 0010 1000 0010 1001 0011
Σωστή απάντηση: 0xFFC28293
| Άσκ. 3 | 2GHz.
| Α | Β | Γ | Δ | |
|---|---|---|---|---|
| IC | 10 | 8 | 2 | 4 |
| CPI | 1 | 2 | 4 | 3 |
\(T_c = ?\)
Σωστή απάντηση: \(T_c = 23\text{ sec}\)
| Άσκ. 4 | Στον καταχωρητή x6 έχουμε την τιμή 10
loop: beq x6, x0, done
addi x6, x6, -1
addi x5, x5, 2
jal x0, loop
done:
Το loop συνεχίζει μέχρι να μηδενιστεί το x6 που έχει τιμή 10. Σε κάθε loop το x6 μειώνεται κατά 1. Επομένως το loop θα τρέξει 10 φορές.
10 φορές \(\times\) 4 εντολές του loop \(= 40\)
συν την πρώτη εντολή beq για έλεγχο της συνθήκης ότι \(x6 = 0\).
Σωστή απάντηση: 41 εντολές
| Άσκ. 5 | | | A | B | C | |---|---|---|---| | IC | 50% | 20% | 30% | | CPI | 2 | 1 | 3 |
Βρείτε νέο \(\text{CPI}_C\) ώστε να τρέχει στον υποδιπλάσιο χρόνο.
\(CPI = 2 \cdot 0{,}5 + 1 \cdot 0{,}2 + 3 \cdot 0{,}3 = 2{,}1\)
Θέλω το νέο CPI να 'ναι \(CPI' = \frac{CPI}{2} = 1{,}05\) άτοπο.
Καθώς \(\rightarrow CPI_A \cdot IC_A + CPI_B \cdot IC_B = 1{,}2 > 1{,}05\)
Άρα ακόμα και μηδενικό \(\text{CPI}_C\) να είχαμε, δεν είναι δυνατό να φτάσουμε τον υποδιπλάσιο χρόνο.
Σωστή απάντηση: άλλο
| Άσκ. 6 |
addi t0, s3, 64
lw t1, 0(t0)
ισχύει \(A[i] = 4 \cdot i\)
στο s3 είναι η βάση του A.
Ποια είναι η τιμή του t1;
Με την πρώτη εντολή, το t0 έχει ως περιεχόμενο τη δ/νση βάσης \(+ 64\) άρα:
\(\&A + 64 = \&A + 16 \cdot 4 = \&A[16]\).
Μετά κάναμε load στο t1 το \(A[16] = 4 \cdot 16 = 64\)
Σωστή απάντηση: 64
| Άσκ. 7 |
add x5
add x6
add x20
add x10
Πόσους καταχωρητές πρέπει να αποθηκεύσουμε;
Στα φύλλα, κρατάω μόνο τους καταχωρητές s. Εδώ έχουμε μόνο τον x20.
Σωστή απάντηση: 1 καταχωρητή
| Άσκ. 8 |
\(E_1\): 2GHz 1.0V t
\(E_2\): 1.8GHz 1.1V t
Ποιός καταναλώνει περισσότερη ενέργεια;
\(E = P \cdot t\), έχουν ίδιο χρόνο εκτέλεσης (+φορτίο)
\(P = \text{φορτίο} \cdot f \cdot V^2\)
Ο \(E_2\) καταναλώνει περισσότερη ενέργεια καθώς \(T_2 > T_1\) και η τάση βρίσκεται στο τετράγωνο.
| Άσκ. 9 |
add x30, x28, x29
slli x30, x30, 2
add x3, x30, x11
lw x30, 0(x3)
sw x30, 16(x10)
\(A[4] = B[i+j]\)
add x30, x28, x29 # x30 = x28 + x29
slli x30, x30, 2 # x30 = 4(i+j)
add x3, x30, x11 # x3 = &B[i+j]
lw x30, 0(x3) # x30 = B[i+j]
sw x30, 16(x10) # x10 + 16 = &A + 4*4 = &A[4]
Σωστή απάντηση: \(A[4] = B[i+j]\)
| Άσκ. 10 | Δύο ερωτήματα σύντομης ανάπτυξης.
1) Γιατί χρησιμοποιούμε 5 bit για τους καταχωρητές rs1, rs2, rd;
Γιατί έχουμε 32 καταχωρητές. Για να μπορούμε να απευθυνθούμε σε όλους θέλουμε \(\log_2 32 = 5\text{ bit}\).
2) Πείτε συνοπτικά για ποιόν λόγο μας περιορίζουν οι εντολές τύπου S, I και να αναφέρετε πως το επιλύουμε.
Έχουμε 12 bit immediate και επομένως δεν μπορούμε να αναπαραστήσουμε μεγάλες τιμές.
Για imm μεγαλύτερο των 12 bit χρησιμοποιούμε τις δύο εντολές:
1) lui \(\rightarrow\) load upper immediate
2) addi \(\rightarrow\) add immediate
Η πρώτη άσκηση ήταν με συμπλήρωση κενού χωρίς αρνητική βαθμολόγηση. Αν η απάντηση ήταν σωστή αλλά το πρόσημο είχε βρεθεί λάθος, θα έδινε 0,5/1.
Οι ασκήσεις 2-9 ήταν πολλαπλής με αρνητική βαθμολόγηση -0,3. Για να ήταν σωστές, έπρεπε να έχουν κατάλληλη αιτιολόγηση.
Η τελευταία ήθελε σύντομη ανάπτυξη και δεν είχε αρνητική βαθμολογία.