Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «ΣΥΣΤΗΜΑΤΑ ΚΙΝΗΤΟΥ ΚΑΙ ΔΙΑΧΥΤΟΥ


ΥΠΟΛΟΓΙΣΜΟΥ»

ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΣΔΥ62 ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ


ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ: 2017-18

Θ.Ε. ΣΔΥ62 – ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017 - 18


1η ΕΡΓΑΣΙΑ: ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ

Μέρος Α – Σχεδιασμός Ενσωματωμένων Συστημάτων 25 μονάδες


Μελετήστε τη δημοσιευμένη εργασία με τίτλο «Power Struggles: Revisiting the RISC vs. CISC
Debate on Contemporary ARM and x86 Architectures» (αρχείο GE1_question1) και
απαντήστε στα παρακάτω ερωτήματα.

Ερώτημα 1
Να περιγράψετε εν συντομία τα κύρια χαρακτηριστικά των εντολών (operations) των
αρχιτεκτονικών ARM και x86. (< 200 λέξεις)

[10 μονάδες]

Ενδεικτική απάντηση
Τα κύρια χαρακτηριστικά των εντολών των επεξεργαστών ARM είναι τα παρακάτω:

 Οι εντολές είναι απλές


 Η κάθε εντολής εκτελεί μια λειτουργία
 Η κάθε εντολή εκτελείται σε έναν κύκλο ρολογιού
 Το ρεπερτόριο του συνόλου εντολών είναι μικρό
 Υποστηρίζει διοχέτευση (pipeline)
 Μικρός αριθμός τρόπων διευθυνσιοδότησης

Τα κύρια χαρακτηριστικά των εντολών των επεξεργαστών x86 είναι τα παρακάτω:

 Οι εντολές είναι πιο περίπλοκες


 Οι εντολές μπορεί να εκτελεστούν σε περισσότερους από έναν κύκλο ρολογιού
 Υποστηρίζουν πολλαπλές λειτουργίες
 Το ρεπερτόριο του συνόλου εντολών είναι μεγάλο
 Υποστηρίζεται η κρυπτογράφηση
 Υποστηρίζει το χειρισμό χαρακτήρων
 Υποστηρίζουν υπερβατικές συναρτήσεις

Ερώτημα 2
Να παρουσιάσετε και να αναλύσετε τις επιδόσεις (performance analysis) των επεξεργαστών
Atom και Cortex-A8. (< 200 λέξεις)
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΣΔΥ62
"ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ"
ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ: 2017-18

[15 μονάδες]

Ενδεικτική Απάντηση
Τα τεχνικά χαρακτηριστικά των δύο επεξεργαστών παρουσιάζονται παρακάτω:

Αρχιτεκτονική Αtom Cortex-A8


Επεξεργαστής N450 OMAP3530
Αριθμός πυρήνων 1 1
Ταχύτητα 1,66 GΗz 0,6 GHz
L1 data 24 KB 16 KB
L1 inst 32 KB 16 KB
L2 512 KB 256 KB
Μνήμη 1 GB 256 MB
Τεχνολογία 45 nm 65 nm

Όσον αφορά την ανάλυση των επιδόσεων ισχύουν τα παρακάτω:

1) Οι χρόνοι εκτέλεσης των μετροπρογραμμάτων στον Cortex-A8 είναι αισθητά μεγαλύτεροι


από τους αντίστοιχους στον Atom. Η αναλογία των χρόνων εκτέλεσης κυμάνθηκε από 3,4
έως 4,2 ανάλογα με το είδος των μετροπρογραμμάτων που χρησιμοποιήθηκε. Το ελάχιστο
χάσμα μεταξύ των επεξεργαστών είναι 2x και το μέγιστο χάσμα είναι 997x. Αυτό οφείλεται
εξαιτίας της διαφοράς στη συχνότητα και στις αρχιτεκτονικές των επεξεργαστών.

2) Το πλήθος των απαιτούμενων κύκλων ρολογιού ανά εντολή είναι παρόμοιο. Η σχέση
μεταξύ του Cortex-A8 και Atom είναι περίπου 1,5x μια και οι δύο επεξεργαστές εκτελούν με
in-order τρόπο τις εντολές τους.

3) Ο αριθμός εντολών ανά κύκλο ρολογιού είναι 3,4 στον Cortex-A8 και 2,1 στον Atom.

4) Τα μεγέθη του μίγματος εντολών είναι παρόμοια παρουσιάζοντας παρόμοια πυκνότητα


ενώ οι εντολές στον Atom είναι σημαντικά πιο μικρές (25%) σε σχέση με τον ARM. Τα
μετροπρογράμματα με πολύπλοκες εντολές στον Atom έχουν εντολές με μεγαλύτερη
πολυπλοκότητα κωδικοποίησης. Η απουσία των εντολών κινητ'ης υποδιαστολής στον
Cortex-A8 οδηγεί σε εντολές μεγαλύτερης πολυπλοκότητας ενώ στον Atom παρουσιάζoνται
σύντομες και απλές εντολές.

5) Η μικροαρχιτεκτονική παίζει σημαντικό ρόλο. Παρόλο που το πλήθος των εντολών


μεταξύ των δύο επεξεργαστών είναι παρόμοιο, η δυνατότητα καλύτερης πρόβλεψης
κλάδων και η μεγαλύτερη λανθάνουσα μνήμη επιτρέπουν στον Atom καλύτερα επίπεδα
απόδοσης.

6) Ο Cortex-A8 καταναλώνει σχεδόν διπλάσια επίπεδα ενέργειας σε σχέση με τονAtom για


τα ίδια μετροπρογράμματα.

ΟΝΟΜΑΤΕΠΩΝΥΜΟ:
ΤΜΗΜΑ ΣΔΥ62-HLE
1η ΕΡΓΑΣΙΑ 2
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΣΔΥ62
"ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ"
ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ: 2017-18

Μέρος Β –Σύνολα Εντολών 50 μονάδες


Ερώτημα 1
Να γραφεί ο κώδικας σε συμβολική γλώσσα του ARM για την υλοποίηση της παρακάτω
συνθήκης.

if (a > b) {

x = 2c;

y = d + e/2;

else {

x = 2d/e;

[25 μονάδες]

Ενδεικτική Απάντηση
Αρχικά θα ορίσουμε κάποιους καταχωρητές για τις μεταβλητές. Έστω ότι οι καταχωρητές r0,
r1, r2 και r3 χρησιμοποιούνται για τη προσωρινή αποθήκευση των μεταβλητών και ο r4 για
τις διευθύνσεις των μεταβλητών.
ADR r4,a Πάρε τη διεύθυνση της μεταβλητής a
LDR r0,[r4] Φόρτωσε την τιμή της a στον καταχωρητή r0
ADR r4,b Πάρε τη διεύθυνση της μεταβλητής b
LDR r1,[r4] Φόρτωσε την τιμή της b στον καταχωρητή r1
CMP r1,r0 Κάνε τη σύγκριση μεταξύ της a και της b
BGE ENDIF Διακλάδωσε στην ετικέτα ENDIF
ADR r4,c Πάρε τη διεύθυνση της μεταβλητής c
LDR r0,[r4] Φόρτωσε την τιμή της c στον καταχωρητή r0
MUL r0, r0, #2 Υπολόγισε την τιμή 2c και αποθήκευσε την στο r0
ADR r4,d Πάρε τη διεύθυνση της μεταβλητής e
LDR r1,[r4] Φόρτωσε την τιμή της d στον καταχωρητή r1
ADR r4,e Πάρε τη διεύθυνση της μεταβλητής e
LDR r2,[r4] Φόρτωσε την τιμή της e στον καταχωρητή r2
MOV r2, r2, LSR #1 Διαίρεσε το e με το 2
ADD r3,r1,r2 Πρόσθεσε το d και το e/2 και αποθήκευσε στον r3
STR r0,[r3] Αποθήκευσε τη y
ENDIF ADR r4,d Πάρε τη διεύθυνση της μεταβλητής d
LDR r1,[r4] Φόρτωσε την τιμή της d στον καταχωρητή r1
MUL r1, r1, #2 Υπολόγισε την τιμή 2d και αποθήκευσε την στο r1
ADR r4,e Πάρε τη διεύθυνση της μεταβλητής e
LDR r2,[r4] Φόρτωσε την τιμή της e στον καταχωρητή r2
ΟΝΟΜΑΤΕΠΩΝΥΜΟ:
ΤΜΗΜΑ ΣΔΥ62-HLE
1η ΕΡΓΑΣΙΑ 3
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΣΔΥ62
"ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ"
ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ: 2017-18

SUBTR SUBS r1, r1, r2 Κάνε την αφαίρεση 2d-e και αποθήκευσε την στο r1
ADD r0, r0, #1 Αύξησε το r0 κατά ένα
BHI SUBTR Αφαίρεσε όσο το r1 είναι μεγαλύτερο του r2
ADR r4,x Πάρε τη διεύθυνση της μεταβλητής x
END STR r0,[r4] Αποθήκευσε στη μεταβλητή x 2d/e

Ερώτημα 2
Να γραφεί ο κώδικας σε συμβολική γλώσσα του ARM μορφής Thumb2 για την υλοποίηση
του παρακάτω βρόχου.

for (i = 0; i < 16; i++)


z[i] = a[i]*b[i];

[25 μονάδες]

Ενδεικτική Απάντηση
Ένας τρόπος για την επίλυση αυτού του ερωτήματος είναι να γραφεί ο κώδικας σε ARM7
και μετά κάθε εντολή να αντικατασταθεί από την αντίστοιχη μορφής Thumb2. Ο κώδικας σε
ARM7 υπάρχει στην 1 ΓΕ του έτους 2013-2014 (ερώτημα 2Γ). Αρχικά θα ορίσουμε κάποιους
καταχωρητές για τις μεταβλητές. Έστω ότι ο καταχωρητής r0 χρησιμοποιείται για το δείκτη
i, ο καταχωρητής r2 για το πίνακα z, ο r4 για το πίνακα a και ο καταχωρητής r6 για το πίνακα
b. Επίσης θα χρησιμοποιήσουμε τους καταχωρητές r5 και r7 για τα στοιχεία των πινάκων a
και b αντίστοιχα.

MOV r0,#0 Αρχικοποίηση του δείκτη i στον καταχωρητή r0, θέσε 0


ADR r2,z Πάρε τη διεύθυνση βάσης του πίνακα z
ADR r4, a Πάρε τη διεύθυνση βάσης του πίνακα a
ADR r6, b Πάρε τη διεύθυνση βάσης του πίνακα b
LOOP CMP r0,#15 Σύγκρινε τον δείκτη i με τον αριθμό 15 (i<15)
BGE LOOPEND Εάν i≥15 διακλάδωσε
LDR r5,[r4, #4] Φόρτωσε την τιμή του στοιχείου a[i] και έπειτα αύξησε τον
πίνακα στο επόμενο στοιχείο
LDR r7,[r6, #4] Φόρτωσε την τιμή του στοιχείου b[i] και έπειτα αύξησε τον
πίνακα στο επόμενο στοιχείο
MUL r5,r5,r7 Υπολόγισε το γινόμενο a[i] * b[i]
STR r5,[r2, #4] Αποθήκευσε το αποτέλεσμα στον πίνακα z[i] και αύξησε την
τιμή για την επόμενη θέση
ADD r0,r0,#1 Αύξησε την τιμή του δείκτη i κατά μια θέση
BLT LOOP Πήγαινε στη θέση LOOP
LOOPEND MOV r0,r0 Τερματισμός

ΟΝΟΜΑΤΕΠΩΝΥΜΟ:
ΤΜΗΜΑ ΣΔΥ62-HLE
1η ΕΡΓΑΣΙΑ 4
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΣΔΥ62
"ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ"
ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ: 2017-18

Μέρος Γ – Συνεπεξεργαστές 25 μονάδες


Μελετήστε τη δημοσιευμένη εργασία με τίτλο «ARMHEx: A hardware extension for DIFT on
ARM-based SoCs» (αρχείο GE1_question3) και απαντήστε στo παρακάτω.

Ερώτημα 1
Να σχεδιάσετε και να περιγράψετε με συντομία την προσέγγιση του συνεπεξεργαστή
ARMHEx. (< 200 λέξεις)

[15 μονάδες]

Ενδεικτική Απάντηση
Ο συνεπεξεργαστής ARMHEx είναι υπεύθυνος για τη προστασία ενάντια στην μη
εξουσιοδοτημένη πρόσβαση και την ακεραιότητα των δεδομένων. Το μοντέλο χρήσης του
συνεπεξεργαστή ARMHEx φαίνεται στη παρακάτω εικόνα.

Ο συνεπεξεργαστής αυτός είναι υλοποιημένος σε επαναδιαμορφώσιμη λογική και


χρησιμοποιεί δυναμική ανίχνευση ροής δεδομένων (DIFT) με σκοπό: 1) τη παρακολούθηση
της πληροφορίας κατά τη διάρκεια της εκτέλεσης ενός προγράμματος για τη πρόληψη και
εμπόδιση επιθέσεων από το εκτελούμενο πρόγραμμα και 2) τη παρεμπόδιση της
πρόσβασης (εγγραφή και ανάγνωση) από μη ασφαλή κανάλια επικοινωνίας μεταξύ της CPU
και του ARMHEx. Αποδοτική υλοποίηση του συστήματος σημαίνει επικοινωνία μεταξύ του
ARMHEx και του DIFT με μικρή χρονική επιβάρυνση. Ο συνεπεξεργαστής ARMHEx
προγραμματίζεται με assembly. Οι πληροφορίες που απαιτεί ο ARMHEx είναι οι παρακάτω:

1) Τιμή μετρητή προγράμματος

2) Κωδικοποίηση εντολής

3) Λειτουργίες load/store διευθύνσεων στη μνήμη

ΟΝΟΜΑΤΕΠΩΝΥΜΟ:
ΤΜΗΜΑ ΣΔΥ62-HLE
1η ΕΡΓΑΣΙΑ 5
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΣΔΥ62
"ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ"
ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ: 2017-18

Ερώτημα 2
Να εξηγήσετε τη λειτουργία του στοιχείου CoreSight. (< 200 λέξεις)

[10 μονάδες]

Ενδεικτική Απάντηση
Το στοιχείο CoreSight είναι ένα σύνολο από IP υλισμικού που χρησιμοποιείται για τη
παρακολούθηση της εκτέλεσης λογισμικού και περιέχεται σε έναν επεξεργαστη Zynq της
Xilinx. Πιο συγκεκριμένα χρησιμοποιείται για απασφαλμάτωση (debugging) και την
ανάλυση προφίλ (profiling) κατά την εκτέλεση του λογισμικού ή της λειτουργίας της CPU. Το
σχήμα του στοιχείου αυτού φαίνεται στη παρακάτω εικόνα.

Tα κυριότερα στοιχεία του CoreSight είναι τα παρακάτω:

1) Source: To Program Trace Microcell (1) δημιουργεί ίχνη κατά την εκτέλεση του
προγράμματος στις εντολές εκείνες που προκαλούν μεταβολή στη ροή του προγράμματος,
όπως, έμμεσοι ή άμεσοι κλάδοι με ή χωρίς συνθήκη, εξαιρέσεις και κάθε εντολή η οποία
αλλάζει την κατάσταση εκτέλεσης ή ασφάλειας του επεξεργαστή.

2) Link: Τα στοιχεία Funnel (2) και Replicator (3) περιέχονται στον επεξεργαστή Zynq και
μεταφέρουν τα ίχνη από τα source στα sink. Το Funnel συνενώνει τα ίχνη που έλαβε από
πολλαπλές πηγές (sources) σε ένα ενιαίο. Ο Replicator διπλασιάζει το ίχνος που στέλνει το
Funnel και το προωθεί προς τα στοιχεία του sink.

3) Sink: Τα ίχνη μεταδίδονται σε δύο υποστοιχεία (components). Στον Embedded Trace


Buffer που είναι μια μικρή ενδιάμεση μνήμη (4 ΚΒ) στην οποία τα ίχνη αποθηκεύονται και
στην μονάδα Trace Port Interface Unit (4) η οποία τα προωθεί στο στοιχείο
επαναδιαμορφώσιμης λογικής.

ΟΝΟΜΑΤΕΠΩΝΥΜΟ:
ΤΜΗΜΑ ΣΔΥ62-HLE
1η ΕΡΓΑΣΙΑ 6

You might also like