Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Συνολική αρχιτεκτονική του Επεξεργαστή TMS320C6713 και προγραμματισμός σε ASSEMBLY Τμήμα.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Συνολική αρχιτεκτονική του Επεξεργαστή TMS320C6713 και προγραμματισμός σε ASSEMBLY Τμήμα."— Μεταγράφημα παρουσίασης:

1 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Συνολική αρχιτεκτονική του Επεξεργαστή TMS320C6713 και προγραμματισμός σε ASSEMBLY Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου ΕΣ 08 – Επεξεργαστές Ψηφιακών Σημάτων

2 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών ◊TMS320C6000 Programmer's Guide ◊TMS320C6000 Assembly Language Tools User's Guide ◊Code Composer Studio Tutorial ◊TMS320C6000 CPU and Instruction Set Reference Guide ◊Σημειώσεις διδάσκοντα Βιβλιογραφία Ενότητας

3 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Η ιδιομορφία της αρχιτεκτονικής των επεξεργαστών Ψ.Ε.Σ συνεπάγεται ότι η βέλτιστη αποτελεσματικότητα (μεγαλύτερη ταχύτητα εκτέλεσης προγράμματος ώστε να μπορούν να υποστηριχθούν εφαρμογές επεξεργασίας σήματος σε πραγματικό χρόνο – real time signal processing ) επιτυγχάνεται με προγραμματισμό σε ASSEMBLY. ◊Δυστυχώς ο προγραμματισμός σε ASSEMBLY είναι και χρονοβόρος αλλά και επιρρεπής σε σφάλματα. Για το σκοπό αυτό έχουν αναπτυχθεί εργαλεία βελτιστοποίησης κώδικα (code optimization) γραμμένου είτε σε γλώσσα C είτε σε γραμμική ASSEMBLY (δηλαδή ASSEMBLΥ η οποία δεν λαμβάνει υπόψη τη συγκεκριμένη αρχιτεκτονική του επεξεργαστή τον οποίο θέλουμε να προγραμματίσουμε) ◊Παρά τα ανωτέρω είναι πιθανόν σε κάποιες περιπτώσεις να χρειαστεί προγραμματισμός σε καθαρή ASSEMBLY ώστε να βελτιωθούν κάποια χρονοβόρα τμήματα κώδικα. Για το σκοπό αυτό πρέπει να υπάρχει αναλυτική γνώση τόσο των εντολών που υποστηρίζονται από το συγκεκριμένο επεξεργαστή όσο και της αρχιτεκτονικής του Εισαγωγή  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

4 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Η διαδικασία ανάπτυξης εφαρμογών σε επεξεργαστές Ψ.Ε.Σ περιλαμβάνει μια σειρά από βήματα τα οποία εμπλέκουν μια σειρά εργαλείων. Στη πρώτη φάση έχουμε επαλήθευση της πρωτότυπης εφαρμογής σε μια πλατφόρμα ταχείας πρωτοτυποποίησης (π.χ. Matlab). Στη συνέχεια ακολουθείται το διάγραμμα ροής του διπλανού σχήματος, δηλαδή: ◊Ανάπτυξη κώδικα σε C χωρίς να λαμβάνεται υπόψη καμία ιδιομορφία του επεξεργαστή. Ο κώδικας C μπορεί να δημιουργηθεί χρησιμοποιώντας το SIMULINK και το Real Time Workshop ◊Βελτιστοποίηση κώδικα C χρησιμοποιώντας εργαλεία όπως το Profile του Code Composer Studio. Αν η φάση αυτή δεν οδηγήσει στο απαιτούμενο αποτέλεσμα τότε προχωράμε σε αναγνώριση των κρισίμων τμημάτων κώδικα τα οποία και κωδικοποιούμε με γραμμική ASSEMBLY. ◊Βελτιστοποίηση του κώδικα ASSEMBLY, δηλαδή μετατροπή της γραμμικής ASSEMBLY σε προσαρμοσμένη στο συγκεκριμένο επεξεργαστή ASSEMBLY. ◊Κωδικοποίηση με καθαρή ASSEMBLY, τμημάτων κώδικα που εξακολουθούν να εκτελούνται αργά. Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

5 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Η βελτιστοποίηση κώδικα απαιτεί την πραγματοποίηση συγκρίσεων (benchmarking) για διάφορες / διάφορους: ◊Μορφές κώδικα (C, γραμμική ASSEMBLY, καθαρή ASSEMBLY) ◊Ρυθμίσεις του compiler ◊Τύπους δεδομένων προγράμματος (π.χ. short, double) ◊Κατηγορίες εντολών (fixed-point, floating- point) ◊Το βασικό εργαλείο για την πραγματοποίηση συγκρίσεων είναι το εργαλείο Profile του Code Composer Studio ◊Επιλέγουμε τις συναρτήσεις που θέλουμε να παρακολουθήσουμε και να συγκρίνουμε την επίδοση τους (κύκλοι ρολογιού) για τις διάφορες επιλογές, και εκτελούμε το πρόγραμμα μας Βελτιστοποίηση κώδικα C  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

6 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Χρησιμοποιώντας το profile tool βλέπουμε ότι η βασική συνάρτηση main_asm.c εκτελείται σε 264 κύκλους ρολογιού ενώ η συνάρτηση ASSEMBLY sum.asm εκτελείται σε 133 κύκλους ρολογιού ◊Από τα συνολικά στατιστικά βλέπουμε ότι έχουμε 40.81% του χρόνου του επεξεργαστή να δαπανάται σε NOP (No OPeration) εντολές Βελτιστοποίηση κώδικα C (II)  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

7 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Στο παράδειγμα βλέπουμε πως μπορούμε να βελτιστοποιήσουμε την ταχύτητα εκτέλεσης του προγράμματος main_asm.c χρησιμοποιώντας το optimization tool του compiler ◊Με βελτιστοποίηση σε επίπεδο καταχωρητών (βλέπε επόμενη διαφάνεια) επιτυγχάνεται μείωση των κύκλων ρολογιού για την εκτέλεση της main_asm.c σε λιγότερο από το μισό. Βελτιστοποίηση κώδικα C (IIΙ)  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

8 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Υπάρχουν τέσσερα επίπεδα βελτιστοποίησης ◊-ο0, Register, δηλαδή βελτιστοποίηση χρήσης καταχωρητών ◊-ο1, Local, όπως παραπάνω συν προσπάθεια καλύτερης χρήσιμων των δομικών μονάδων (.L,.M,.D.,S.) των δύο ΚΜΕ που έχει ο επεξεργαστής ◊-ο2, Function, όπως παραπάνω συν προσπάθεια βελτιστοποίησης κώδικα ASSEMBLY με software pipelining ◊-ο3, File, όπως παραπάνω συν απαλοιφή μη χρησιμοποιούμενων συναρτήσεων Βελτιστοποίηση κώδικα C (IV)  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

9 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Η ταχύτητα εκτέλεσης ενός προγράμματος μειώνεται όταν ο τύπος των δεδομένων (ή των συντελεστών ενός φίλτρου) είναι κινητής υποδιαστολής. ◊Μικρό κέρδος εκτέλεσης επιτυγχάνεται και με διαφοροποίηση ανάμεσα στα bit αναπαράστασης σε αριθμούς σταθερής υποδιαστολής (βλέπε παράδειγμα: short=16bit (half-word), int=32bit (word) Η επίδραση του τύπου δεδομένων  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

10 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Σε πολλές περιπτώσεις οι βελτιστοποιήσεις στον κώδικα C δεν είναι επαρκείς και χρειάζεται να πάρουμε την ‘κατάσταση στα χέρια’ μας: ◊Υπάρχουν τρεις δυνατές επιλογές: ◊Γραμμική ASSEMBLY (αρχεία.sa), ◊ASM εντολές (statements) σε κώδικα C: asm(“assembly code”) ◊Συναρτήσεις ASSEMBLY οι οποίες μπορούν να κληθούν από κώδικα C (C- callable assembly function (.asm)). Στην περίπτωση αυτή μπορούμε να βελτιστοποιήσουμε συγκεκριμένα κομμάτια κώδικα εφαρμόζοντας τεχνικές όπως παράλληλη εκτέλεση εντολών και software pipelining Assembly συναρτήσεις καλούμενες από C  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

11 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Τα ορίσματα των συναρτήσεων μεταφέρονται μέσω των καταχωρητών A4, B4, A6, B6,... με τη σειρά που δίνεται ◊Το αποτέλεσμα της κλήσης της συνάρτησης επιστρέφεται μέσω του καταχωρητή A4. ◊Η διεύθυνση επιστροφής από τον κώδικα στον οποίο έχει γίνει η κλήση της συνάρτησης δίνεται στον καταχωρητή B3. Οπότε πρέπει να δίνεται μεγάλη προσοχή να μην χρησιμοποιείται για άλλο σκοπό ο Β3 εντός της συνάρτησης ASSEMPLY ◊Ονοματολογία (βλέπε προηγ. διαφάνεια): ◊Στον κώδικα C: label (η συνάρτηση δηλώνεται ως external) ◊Στον κώδικα ASSEMBLY: _label (η συνάρτηση δηλώνεται ως global) ◊Πρόσβαση σε global μεταβλητές εντός του κώδικα ASSEMBLY:.ref _variablename Assembly συναρτήσεις καλούμενες από C (ΙΙ)  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

12 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Σκελετός assembly συναρτήσεων καλούμενων από C  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών Παράδειγμα assembly συνάρτησης καλούμενης από C Σκελετός assembly συναρτήσεων καλούμενων από C

13 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Η τεχνική software pipelining εφαρμόζεται σε συναρτήσεις ASSEMBLY και προσπαθεί να αναδιατάξει τη σειρά εκτέλεσης των εντολών ώστε να ελαχιστοποιούνται οι εντολές NOP. ◊Στο επόμενο παράδειγμα οι εντολές SUB και Β δεν περιμένουν αποτέλεσμα από την εντολή LDH (σε αντίθεση με την εντολή ADD) ούτε επηρεάζουν άμεσα την εντολή ADD, άρα μπορούν να αναδιαταχθούν πριν από αυτή με χρήση της τεχνικής delayed branch Software Pipelining  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

14 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Software Pipelining (II)  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

15 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Εκμεταλλευόμενοι το γεγονός ότι έχουμε 8 ανεξάρτητες μονάδες στον επεξεργαστή μπορούμε να εκτελέσουμε παράλληλα μέχρι και 8 εντολές. ◊Στο επόμενο παράδειγμα οι εντολές LDH και SUB μπορούν να εκτελεστούν παράλληλα (βλέπε ||) με αποτέλεσμα την επιπλέον βελτίωση της ταχύτητας εκτέλεσης σε 116 κύκλους ρολογιού Παράλληλη εκτέλεση στις δομικές μονάδες  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

16 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Αρχιτεκτονική του TMS320C67xx  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών ◊Για να γράψουμε αποδοτικό κώδικα σε καθαρή ASSEMBLY χρειάζεται να είμαστε εξοικειωμένοι με: ◊Την αρχιτεκτονική του συγκεκριμένου επεξεργαστή, καθώς και τις δυνατότητες και αδυναμίες του ◊Τους καταχωρητές των ΚΜΕ του επεξεργαστή ◊Τις δομικές μονάδες που απαρτίζουν τις ΚΜΕ ◊Το pipeline του επεξεργαστή ◊Τη διαδικασία παράλληλης εκτέλεσης εντολών ◊Το σύνολο εντολών του επεξεργαστή

17 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Αρχιτεκτονική του TMS320C67xx (II) ◊Κάθε εντολή απαρτίζεται από 32 bits. Ο διάδρομος προγράμματος έχει εύρος 256 bits (32 bits διεύθυνση) ◊Επομένως μπορούν να μεταφερθούν και να εκτελεστούν 8 εντολές (σε συνεχόμενες διευθύνσεις μνήμης) σε ένα κύκλο ρολογιού (συχνότητα επεξεργαστή 225MHz, άρα 4.8ns διάρκεια κάθε κύκλος ρολογιού. ◊Υπάρχουν 8 ανεξάρτητες μονάδες σε κάθε επεξεργαστή της σειράς TMS320C6xxx: ◊- 2 πολλαπλασιαστές ◊- 6 ALUs (Αριθμητική και Λογική Μονάδα) ◊Αποδοτικός κώδικας σημαίνει και οι 8 μονάδες να βρίσκονται διαρκώς σε εργασία. Υπάρχουν 32 συνολικά καταχωρητές στις δύο ΚΜΕ (Κεντρική Μονάδα Επεξεργασίας - Data path A and data path B) 16 σε κάθε μια (A0-A15, B0-B15) με εύρος 32 bits. Το μήκος λέξης δεδομένων είναι 32 bit (εξαίρεση αποτελεί η σειρά επεξεργαστών C64xx στην οποία έχουμε μήκος λέξης 64 bit) ενώ πρόσβαση στη μνήμη δεδομένων γίνεται μέσω διευθύνσεων από 32 bits (4GB συνολικός χώρος μνήμης).  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

18 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊H γραμμική ASSEMBLY μας δίνει τη δυνατότητα: ◊Ενδιάμεσης δυσκολίας προγραμματισμού και αποδοτικότητας όσον αφορά τον χρόνο εκτέλεσης. ◊Ο Assembler Optimizer αναλαμβάνει τις λεπτομέρειες δημιουργίας του τελικού κώδικα ASSEMBLY χρησιμοποιώντας τους σωστούς καταχωρητές και δομικές μονάδες και παραλληλοποιώντας την εκτέλεση εντολών. Γραμμική ASSEMBLY ◊O κώδικας που πρέπει να βελτιστοποιηθεί από τον Assembler Optimizer περικλείεται από τις οδηγίες (directives).proc και.endproc ◊Οι εντολές ASSEMBLY που χρησιμοποιούνται είναι οι ίδιες όπως και στην καθαρή ASSEMBLY. Απλά δεν περιλαμβάνονται καταχωρητές, δομικές μονάδες, και παραλληλοποίηση. ◊Συναρτήσεις γραμμικής ASSEMBLY καλούνται μέσω προγραμμάτων C και επομένως έχουν τους ίδιους περιορισμούς όπως και οι απλές συναρτήσεις ASSEMBLY  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

19 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Ένα πρόγραμμα σε κώδικα ASSEMBLY είναι ένα αρχείο κειμένου (ASCII text file) του οποίου κάθε γραμμή μπορεί να περιλαμβάνει έως και 7 στοιχεία: Ετικέτα (Label) Παράλληλες μπάρες (Parallel bars) Συνθήκη (Condition) Εντολή ή οδηγία (Instruction or Directive) Μονάδα εκτέλεσης (Functional unit) Ορίσματα (Operands) Σχόλια (Comments). Δομή κώδικα ASSEMBLY  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

20 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Οι ετικέτες πρέπει να ικανοποιούν τις επόμενες συνθήκες: ◊Ο πρώτος χαρακτήρας μπορεί να είναι γράμμα ή κάτω παύλα (underscore _) ακολουθούμενη από γράμμα. ◊Ο πρώτος χαρακτήρας πρέπει να βρίσκεται στην πρώτη στήλη του αρχείου (text file). ◊Μπορούν να περιλαμβάνουν μέχρι 32 αλφααριθμητικούς χαρακτήρες. Ετικέτες ◊Μια ετικέτα καθορίζει μια γραμμή κώδικα και αναπαριστά μια μεταβλητή ή διεύθυνση μνήμης η οποία περιέχει είτε μια εντολή είτε δεδομένα  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

21 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Στο συγκεκριμένο παράδειγμα οι εντολές LDH και SUB εκτελούνται παράλληλα Παράλληλες μπάρες ◊Μια εντολή η οποία εκτελείται σε παραλληλία με την προηγούμενη της δηλώνεται με παράλληλες μπάρες (||). Το σχετικό πεδίο παραμένει κενό αν η εν λόγω εντολή δεν εκτελείται παράλληλα με την προηγούμενη της  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

22 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Αν δεν υπάρχει συνθήκη πριν από μια εντολή η εντολή εκτελείται πάντοτε. ◊Στο συγκεκριμένο παράδειγμα η εντολή branch (B) εκτελείται εφόσον ο καταχωρητής A2 είναι διάφορος του μηδέν Συνθήκη ◊Πέντε καταχωρητές χρησιμοποιούνται για την εκτέλεση εντολών υπό συνθήκη: A1, A2, B0, B1, και B2.  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

23 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Οι οδηγίες (assembler directives) είναι εντολές προς τον συμβολομεταφραστή (assembler) οι οποίες καθορίζουν τη διαδικασία μετατροπής σε κώδικα μηχανής και ορίζουν τις δομές δεδομένων (σταθερές και μεταβλητές) που χρησιμοποιούνται από το πρόγραμμα. Εντολή ή οδηγία ◊Οι εντολές επεξεργαστή (processor mnemonics) είναι οι πραγματικές εντολές που εκτελούνται από το πρόγραμμα.  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

24 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Εντολή ή οδηγία (ΙΙ) ◊Στον επόμενο πίνακα δίνονται μερικά παραδείγματα οδηγιών  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

25 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Μονάδα εκτέλεσης  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών ◊Δύο ΚΜΕ (Data Paths), 1->Α και 2->Β, με τέσσερις μονάδες έκαστη: ◊Πολλαπλασιασμός (.M1,.Μ2) ◊Λογικές και Αριθμητικές πράξεις - ALU (.L1,.L2) ◊Διακλάδωση, χειρισμός bit και αριθμητικές πράξεις (.S1,.S2) ◊Ανάκληση και αποθήκευση δεδομένων και εντολών καθώς και αριθμητικές πράξεις (.D1,.D2)

26 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Ορίσματα ◊Τα ορίσματα των εντολών είναι θέσεις μνήμης ή καταχωρητές. Για τα ορίσματα ισχύουν τα παρακάτω: ◊Όλες οι εντολές απαιτούν ένα όρισμα προορισμού (destination operand) ◊Οι περισσότερες εντολές έχουν ένα ή δύο ορίσματα εισόδου ◊Το όρισμα προορισμού πρέπει να ανήκει στην ίδια KME με ένα τουλάχιστον από τα ορίσματα εισόδου ◊Ένα όρισμα εισόδου μπορεί να προέρχεται από διαφορετική ΚΜΕ στο πλαίσιο ενός μόνο Execution Packet (δηλαδή ενός συνόλου εντολών που εκτελούνται παράλληλα)  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

27 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis ◊Στο διπλανό πίνακα φαίνονται οι εντολές (για αριθμητική σταθερής υποδιαστολής – fixed point instructions) ASSEMBLY που μπορούν να εκτελεστούν σε κάθε μονάδα (.L,.M,.S,.D) της σειράς επεξεργαστών TMS320C6xxx. ◊Μπορούμε να κατηγοριοποιήσουμε τις εντολές αυτές σε τρεις κατηγορίες: ◊Αριθμητικές (Πρόσθεση / Αφαίρεση / Πολλαπλασιασμός) Παράδειγμα: ADD.L1 A3,A7,A7 ; A3+A7->A7 ◊Ανάκλησης – Αποθήκευσης Παράδειγμα: STW.D2 A1,*+A4[20] ; store A1->(A4+20) ◊Διακλάδωσης – Μετακίνησης Παράδειγμα: [A1] B.S2 Loop ; branch to Loop if A1≠0 Σύνολο εντολών για τους επεξεργαστές TMS320C6xxx  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών

28 ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Floating Point Instructions ◊Στο διπλανό πίνακα φαίνονται οι εντολές (για αριθμητική κινητής υποδιαστολής – floating point instructions) ASSEMBLY που μπορούν να εκτελεστούν σε κάθε μονάδα (.L,.M,.S,.D) της σειράς επεξεργαστών TMS320C62xx και TMS320C67xx. ◊Οι εντολές αυτές είναι κυρίως αριθμητικές δεδομένου ότι δεν υπάρχει κάποια σημαντική διαφορά ανάμεσα στις εντολές σταθερής και κινητής υποδιαστολής όσον αφορά την αποθήκευση και τη μετακίνηση διακλάδωση  Εισαγωγή  Ανάπτυξη εφαρμογών σε Επεξεργαστές ΨΕΣ  Αρχιτεκτονική του TMS320C67xx  Γραμμική ASSEMBLY  Δομή κώδικα ASSEMBLY  Σύνολο εντολών


Κατέβασμα ppt "ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Συνολική αρχιτεκτονική του Επεξεργαστή TMS320C6713 και προγραμματισμός σε ASSEMBLY Τμήμα."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google