κεφαλαιο 3

Preview:

Citation preview

§3.1 Βασικά στοιχεία αρχιτεκτονικής μικροϋπολογιστικών συστημάτων

1

Κ.Μ.Ε

Μικροεπεξεργαστής = ολοκληρωμένο γενικού σκοπού που μπορεί να προγραμματιστεί

Η επεξεργασία των δεδομένων γίνεται σε βήματα = εντολές

εντολή= σειρά δυαδικών ψηφίων που είναι κωδικοποιημένο το είδος της εντολής

2

Κύρια μνήμη

RAM – ROM Λειτουργίες εγγραφή & ανάγνωση Βασικά χαρακτηριστικά κύριας μνήμης

Μήκος λέξης Χωρητικότητα Χρόνος προσπέλασης

3

Μήκος λέξης – χωρητικότητα – χρόνος προσπέλασης

Χρόνος που περνάει από τη στιγμή που ο μικροεπεξεργαστής ζητάει από τη μνήμη το περιεχόμενο μιας λέξης, μέχρι τη στιγμή που η μνήμη το δίνει.

Nanosecond

Συχνότητα λειτουργίας: πόσες φορές μπορούμε να προσπελάσουμε τη μνήμη στη μονάδα του χρόνου

4

5

§3.2 Αρχές λειτουργίας και αρχιτεκτονική μικροεπεξεργαστών

Μικροεπεξεργαστής ολοκληρωμένο κύκλωμα που μπορεί να προγραμματιστεί

Το πρόβλημα της σχεδίασης των ψηφιακών κυκλωμάτων μετατοπίστηκε από το υλικό στο λογισμικό

6

7

Με το συμβολισμό

RD/WR’ εννοούμε πως

με «1» είναι σήμα

ανάγνωσης και με «0» σήμα

εγγραφής

Μικροεπεξεργαστής•Αριθμητική και λογική μονάδα (Arithmetic and Logical Unit , ALU)

•Μονάδα ελέγχου (Control unit, CU)

•Καταχωρητές (registers)

8

Αριθμητική και Λογική Μονάδα Εκτελεί αριθμητικές και λογικές πράξεις Τα δεδομένα βρίσκονται σε καταχωρητές (ο

ένας ονομάζεται συσσωρευτής) Το αποτέλεσμα φυλάσσεται στο συσσωρευτή Το αποτέλεσμα επηρεάζει μια σειρά flip-flop

που λέγονται σημαίες (flags). Π.χ. μια σημαία δείχνει αν προέκυψε κρατούμενο, αν το αποτέλεσμα είναι Ο

Το σύνολο των σημαιών αποτελεί τον καταχωρητή κατάστασης

9

Πράξεις που εκτελεί η ALU

Δυαδική πρόσθεση ή αφαίρεση AND, OR, XOR Συμπλήρωμα ως προς 1 και ως προς 2 Ολίσθηση και περιστροφή (δεξιά ή αριστερά) Πολλαπλασιασμός και διαίρεση (όχι σε όλους

τους μ.Ε.)

10

Μονάδα ελέγχου

Ελέγχει και συγχρονίζει τη μεταφορά και την επεξεργασία των δεδομένων

Είσοδος clock Έξοδος σήματα χρονισμού και ελέγχου Είναι το κύριο υποσύστημα του ίδιου του μΕ

11

Καταχωρητές

Χώροι αποθήκευσης δεδομένων ή Χώροι αποθήκευσης διευθύνσεων μνήμης

Απαριθμητής προγράμματος (program counter, PC)

Καταχωρητής εντολών (Instruction Register, IR) Δείκτης στοίβας (stack pointer, SP) Καταχωρητής κατάστασης (status register, SR)

12

Απαριθμητής προγράμματος

Είναι ένας καταχωρητής διευθύνσεων που φυλάσσεται η διεύθυνση μνήμης της επόμενης προς εκτέλεση εντολής

Όταν reset=1 ο απαριθμητής προγράμματος παίρνει την τιμή οοοο (ή κάποια άλλη αρχική).

Όταν reset=0 η μονάδα ελέγχου μεταφέρει τα περιεχόμενα του απαριθμητή προγράμματος στον απομονωτή διευθύνσεων (address latch) παρέχοντας τη διεύθυνση της πρώτης προς εκτέλεση εντολής

13

Καταχωρητής εντολών

Είναι ένας καταχωρητής στον οποίο μεταφέρεται η εντολή που διαβάστηκε από τη μνήμη. Στη συνέχεια αυτή αποκωδικοποιείται για να εκτελεστεί

Οι εντολές μπορούν να έχουν μήκος 1 ή παραπάνω λέξεις Η πρώτη λέξη περιέχει τον κωδικό λειτουργίας (opcode) , δηλαδή το

είδος της εντολής που ανακαλείται Με την ανάγνωση του opcode ο μΕ είναι σε θέση να γνωρίζει πόσες

και ποιες θέσεις μνήμης καταλαμβάνει η εντολή, ποιες λειτουργίες θα εκτελεστούν, ποια σήματα θα ενεργοποιηθούν, κλπ

Κατά τη διάρκεια ανάκλησης εντολής η πρώτη λέξη μνήμης μεταφέρεται από τη μνήμη μέσω του διαδρόμου δεδομένων στον καταχωρητή εντολών. Ο απαριθμητής προγράμματος αυξάνεται κατά 1 και περιέχει πλέον τη διεύθυνση της επόμενης εντολής

Όταν φορτωθούν όλες οι λέξεις στον μΕ, εκτελείται η εντολή

14

Δείκτης στοίβας

Είναι ένας δείκτης διευθύνσεων της κορυφής της στοίβας που βρίσκεται στην κύρια μνήμη

Η στοίβα είναι μια περιοχή της μνήμης που χρησιμοποιείται κυρίως για εξυπηρέτηση κλήσεων διακοπών και υπορουτινών

15

Καταχωρητής κατάστασης

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

Σημαίες συνθήκης Μηδενισμού (Z, Zero): αν το αποτέλεσμα μιας εντολής

είναι ο, τότε Z=1 Προσήμου (S, Sign): αν το MSB μιας πράξης είναι «1»

(αρνητικός αριθμός), τότε S=1 Ισοτιμίας (P, Parity): αν το αποτέλεσμα μιας πράξης έχει

άρτιο αριθμό «1» (άρτια ισοτιμία), τότε P=1 Κρατουμένου (C, Carry): αν προέκυψε κρατούμενο (από

πρόσθεση) ή δανεικό (από αφαίρεση), τότε C=1

16

§3.3 Εντολές μικροεπεξεργαστών Εντολή = μια σειρά από δυαδικά ψηφία

αποθηκευμένα στη μνήμη Η εκτέλεση της εντολής περιλαμβάνει τρεις

φάσεις: Φάση κλήσης μεταφέρεται ο κώδικας της

επόμενης εντολής από τη θέση μνήμης που δείχνει ο μετρητής προγράμματος (PC)

Φάση αποκωδικοποίησης αν η εντολή περιέχει και άλλα byte δεδομένων, τότε μεταφέρεται από τη μνήμη και η υπόλοιπη εντολή.

Φάση εκτέλεσης εξαρτάται από την εντολή που πρόκειται να εκτελεστεί

17

18

•Τμήματα εντολής• κώδικας εντολής (opcode) με μήκος κ bits• τμήμα διευθύνσεως με μήκος τ bits

•κ+τ=μήκος εντολής•Κώδικας

• ορίζει τη λειτουργία που πρέπει να εκτελεστεί από τον μ/Ε

•Τμήμα διευθύνσεως• περιέχει τα δεδομένα της εντολής

•10111 001100101•Ρεπερτόριο εντολών(instruction set)

• σύνολο εντολών που μπορεί να εκτελέσει ο μ/Ε•2κ = ρεπερτόριο εντολών

Συμβολική γλώσσα Γλώσσα μηχανής (machine language):

ένα πρόγραμμα γραμμένο σε αριθμητική μορφή στο δυαδικό σύστημα

Συμβολική γλώσσα (assembly language):

οι εντολές γραμμένες με τρόπο συμβολικό που να θυμίζει τη λειτουργία τους

Για κάθε εντολή από το ρεπερτόριο εντολών του μ/Ε υπάρχει και η αντίστοιχη εντολή σε συμβολική γλώσσα

Συμβολομεταφραστής (assembler):

μεταφράζει ένα πρόγραμμα από συμβολική γλώσσα σε γλώσσα μηχανής

19

§3.3.3 Κύκλοι εντολής και κύκλοι μηχανής Κύκλος εντολής:

ανάκληση και εκτέλεση μιας εντολής Κύκλος μηχανής:

κάθε αναφορά στη μνήμη ή σε μονάδα Ι/Ο

20

Συνηθισμένοι κύκλοι μηχανής

Ανάκληση κώδικα (opcode fetch) Ανάγνωση από τη μνήμη (memory read) Εγγραφή στη μνήμη (memory write) Ανάγνωση Ι/Ο (I/O read) : είσοδος Εγγραφή I/O (I/O write) : έξοδος Αναγνώριση διακοπής (interrupt

acknowledge) «Άεργος» κύκλος (bus idle)

21

Κύκλοι μηχανής τυπικού μ/Ε

Κύκλος μηχανής Ι/Ο/Μ΄ RD/WR΄

Ανάκληση κώδικα 0 1

Ανάγνωση από τη μνήμη

0 1

Εγγραφή στη μνήμη 0 0

Ανάγνωση Ι/Ο: είσοδος 1 1

Εγγραφή Ι/Ο: έξοδος 1 0

Αναγνώριση διακοπής 1 X

«άεργος» κύκλος 0 X

22

§3.3.4 Είδη εντολών Εντολές μεταφοράς δεδομένων

μεταφέρουν δεδομένα μεταξύ καταχωρητών-μνήμης δεν επηρεάζουν τις σημαίες κατάστασης

Εντολές αριθμητικών πράξεων πραγματοποιούν αριθμητικές πράξεις σε δεδομένα που βρίσκονται στους

καταχωρητές και τη μνήμη η ALU εκτελεί πράξεις μόνο μεταξύ καταχωρητών του μ/Ε επηρεάζουν τις σημαίες κατάστασης

Εντολές λογικών πράξεων υλοποιούν λογικές πράξεις σε δεδομένα που βρίσκονται στους

καταχωρητές, στη μνήμη και στις σημαίες κατάστασης με μια εντολή πραγματοποιούνται ταυτόχρονα πράξεις σε περισσότερα

από 1 bits Εντολές άλματος

Αλλάζουν τη ροή εκτέλεσης (δεν εκτελούνται οι εντολές με τη σειρά) Ονομάζονται και εντολές διακλάδωσης Εντολές άλματος με συνθήκη (επηρεάζουν τα flags) και χωρίς συνθήκη

23

§3.4 Τρόποι αναφοράς στη μνήμη1. Άμεση αναφορά (immediate addressing)

Η τιμή του δεδομένου (ορίσματος) είναι αποθηκευμένη σε κάποιο τμήμα της εντολής

Και ο κωδικός και το δεδομένο (όρισμα) της εντολής καλούνται χρησιμοποιώντας το μετρητή προγράμματος.

Δεν απαιτείται επιπλέον προσπέλαση στη μνήμη (πέραν της ανάγνωσης της εντολής) για να βρεθεί το όρισμα.

Παράδειγμα: «ADD 30h» = πρόσθεσε στην τρέχουσα τιμή τον δεκαεξαδικό αριθμό 30

24

Άμεση αναφορά στη μνήμη

25

§3.4 Τρόποι αναφοράς στη μνήμη2. Απευθείας αναφορά (direct addressing)

Η διεύθυνση της μνήμης που θα βρεθεί το δεδομένο περιέχεται μέσα στην εντολή, αμέσως μετά των κωδικό.

Πλεονέκτημα: γρήγορος τρόπος αναφοράς Μειονέκτημα: ο αριθμός των λέξεων

διευθυνσιοδότησης περιορίζεται από τα bit του πεδίου διεύθυνσης της εντολής.

Παράδειγμα: «ADD [30h]» = πρόσθεσε στην τρέχουσα τιμή του συσσωρευτή την τιμή που βρίσκεται στη διεύθυνση μνήμης 30

26

Απευθείας αναφορά στη μνήμη

27

§3.4 Τρόποι αναφοράς στη μνήμη

3. Αναφορά καταχωρητών (register addressing) Το δεδομένο της εντολής περιέχεται σε έναν εσωτερικό

καταχωρητή του επεξεργαστή Παράδειγμα: «ADD A» = πρόσθεσε στην τρέχουσα τιμή

του συσσωρευτή την τιμή του καταχωρητή Α

28

Αναφορά στη μνήμη μέσω καταχωρητών

29

§3.4 Τρόποι αναφοράς στη μνήμη4. Έμμεση αναφορά μέσω καταχωρητή

(register indirect addressing) Ο κώδικας της εντολής προσδιορίζει έναν

καταχωρητή που περιέχει τη διεύθυνση που θα χρησιμοποιηθεί για την προσπέλαση του ορίσματος της μνήμης.

Παράδειγμα: «ADD [A]» = πρόσθεσε στην τρέχουσα τιμή του συσσωρευτή την τιμή που βρίσκεται στη θέση μνήμης της οποίας η διεύθυνση είναι στον καταχωρητή Α

30

Έμμεση αναφορά μέσω καταχωρητή

31

§3.5 Χαρακτηριστικά και κατηγορίες μικροεπεξεργαστών

Χαρακτηριστικά μ/Ε Συχνότητα λειτουργίας (operating frequency) Μήκος λέξης (memory length) Ρεπερτόριο εντολών (instruction set)

32

Συχνότητα λειτουργίας μ/Ε

Ρολόι για το συγχρονισμό των λειτουργιών Ημιπερίοδος:το διάστημα μεταξύ δύο διαδοχικών

εναλλαγών του σήματος Περίοδος: δύο διαδοχικές ημιπερίοδοι ή ένας κύκλος

ρολογιού. Συχνότητα: πλήθος κύκλων στη διάρκεια 1sec Συχνότητα ρολογιού = συχνότητα λειτουργίας μ/Ε “Over clocking” => λανθασμένη λειτουργία ή καταστροφή

ολοκληρωμένου μ/Ε Συχνότητα ρολογιού = πλήθος κύκλων μηχανής ανά sec Κύκλοι εντολής = περισσότεροι από 1 κύκλοι μηχανής ΆσκησηΆσκηση

33

Μήκος λέξης μ/Ε Εύρος καταχωρητών σε bitsΠαράδειγμα 1 : πρόσθεση δύο αριθμών με 16 bits από έναν μ/Ε

με τρεις καταχωρητές A,B,C των 16 bits => πρόσθεση με μία εντολή, μεταφορά αποτελέσματος στη μνήμη ή σε περιφερειακή μονάδα με μία εντολή

Α 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1

Β 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1

C 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0

34

Μήκος λέξης μ/Ε

A LSBs 1 0 1 1 1 0 0 1

B LSBs 0 1 0 1 0 1 1 1

C 1 0 0 0 1 0 0 0 0

A MSBs 1 0 1 1 1 0 0 1

B MSBs 0 1 0 1 0 1 1 1

C 1 0 0 0 1 0 0 0 1

35

Παράδειγμα 2: πρόσθεση δύο αριθμών με 16 bits από έναν μ/Ε με τρεις καταχωρητές A,B,C των 8 bits => πρόσθεση με δύο εντολές => μείωση ταχύτητας

Μήκος λέξης μ/ΕΚατηγορίες μικροεπεξεργαστών

Εύρος Δυαδική παράσταση Ακέραια τιμή

8 – μπιτοι 1111 1111 28 –1 =255

16 – μπιτοι

1111 1111 1111 1111 216 –1 =65535

32 - μπιτοι 1111 1111 1111 1111 1111 1111 1111 1111 232 –1 =4.294.967.296

36

Ρεπερτόριο εντολών Οι εντολές που μπορεί να εκτελέσει «Συμβατότητα» με παλαιότερους μ/Ε μ/Ε διευρυμένου ρεπερτορίου => CISC (Complex

Instruction Set Computers) μ/Ε μειωμένου ρεπερτορίου => RISC (Reduced

Instruction Set Computers) Αρχική αντίληψη: CISC

Πολύπλοκη σχεδίαση => καθυστέρηση εκτέλεσης εντολής Μικρό μέρος των εντολών χρησιμοποιείται συχνότατα ενώ το

μεγαλύτερο μέρος σπάνια Νέα αντίληψη: RISC

Απλοποίηση σχεδίασης Ταχύτερη εκτέλεση εντολών

37

§3.6 Οικογένειες μικροεπεξεργαστών

• Οικογένεια = σειρά μικροεπεξεργαστών που είναι κατασκευασμένοι από την ίδια εταιρεία και είναι συμβατοί μεταξύ τους

•Συμβατότητα = ένα νεότερο μέλος της οικογένειας μπορεί να εκτελέσει εντολές του αρχαιότερου μέλους.

38

§3.7 Μικροελεγκτές

Μικροελεγκτής (microcontroller) : ολοκληρωμένο κύκλωμα που περιλαμβάνει κάποιες από τις περιφερειακές συσκευές η σύνδεση και ο συγχρονισμός των οποίων καθιστά πολύπλοκο το σχεδιασμό του ολοκληρωμένου συστήματος.

Περιφερειακές μονάδες Μνήμη RAM & ROM Θύρες Ι/Ο, θύρες σειριακής & παράλληλης επικοινωνίας Μονάδα αναγνώρισης διακοπών Μετατροπείς A/D & D/A Μετρητές χρόνου – χρονιστές (timers)

39

Recommended