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

κεφαλαιο 3

Embed Size (px)

Citation preview

Page 1: κεφαλαιο 3

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

1

Page 2: κεφαλαιο 3

Κ.Μ.Ε

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

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

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

2

Page 3: κεφαλαιο 3

Κύρια μνήμη

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

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

3

Page 4: κεφαλαιο 3

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

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

Nanosecond

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

4

Page 5: κεφαλαιο 3

5

Page 6: κεφαλαιο 3

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

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

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

6

Page 7: κεφαλαιο 3

7

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

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

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

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

εγγραφής

Page 8: κεφαλαιο 3

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

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

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

8

Page 9: κεφαλαιο 3

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

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

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

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

9

Page 10: κεφαλαιο 3

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

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

τους μ.Ε.)

10

Page 11: κεφαλαιο 3

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

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

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

11

Page 12: κεφαλαιο 3

Καταχωρητές

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

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

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

12

Page 13: κεφαλαιο 3

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

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

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

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

13

Page 14: κεφαλαιο 3

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

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

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

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

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

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

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

14

Page 15: κεφαλαιο 3

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

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

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

15

Page 16: κεφαλαιο 3

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

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

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

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

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

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

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

16

Page 17: κεφαλαιο 3

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

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

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

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

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

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

17

Page 18: κεφαλαιο 3

18

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

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

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

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

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

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

Page 19: κεφαλαιο 3

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

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

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

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

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

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

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

19

Page 20: κεφαλαιο 3

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

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

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

20

Page 21: κεφαλαιο 3

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

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

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

21

Page 22: κεφαλαιο 3

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

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

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

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

0 1

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

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

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

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

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

22

Page 23: κεφαλαιο 3

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

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

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

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

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

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

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

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

23

Page 24: κεφαλαιο 3

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

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

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

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

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

24

Page 25: κεφαλαιο 3

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

25

Page 26: κεφαλαιο 3

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

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

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

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

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

26

Page 27: κεφαλαιο 3

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

27

Page 28: κεφαλαιο 3

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

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

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

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

28

Page 29: κεφαλαιο 3

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

29

Page 30: κεφαλαιο 3

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

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

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

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

30

Page 31: κεφαλαιο 3

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

31

Page 32: κεφαλαιο 3

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

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

32

Page 33: κεφαλαιο 3

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

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

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

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

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

33

Page 34: κεφαλαιο 3

Μήκος λέξης μ/Ε Εύρος καταχωρητών σε 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

Page 35: κεφαλαιο 3

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

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 => πρόσθεση με δύο εντολές => μείωση ταχύτητας

Page 36: κεφαλαιο 3

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

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

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

Page 37: κεφαλαιο 3

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

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

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

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

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

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

37

Page 38: κεφαλαιο 3

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

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

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

38

Page 39: κεφαλαιο 3

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

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

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

39