Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή



Σχετικά έγγραφα
Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Οργάνωση Υπολογιστών (Ι)

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008

«ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

Αρχιτεκτονικές Συνόλου Εντολών

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο Σύντομη Επανάληψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Εντολές γλώσσας μηχανής

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

Εφαρμογές μικροελεγκτών

Κεντρική Μονάδα Επεξεργασίας

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

Αρχιτεκτονική υπολογιστών

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

Εισαγωγή στην πληροφορική -4

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

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Υλικό Υπολογιστών (Hardware) ΜΥΥ-106 Εισαγωγή στους Η/Υ και Πληροφορική

Αρχιτεκτονική υπολογιστών

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

ΑΣΚΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΓΙΑ ΤΗ ΘΕΩΡΙΑ

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 2 ο Σύντοµη Επανάληψη

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΗ

Αρχιτεκτονική Υπολογιστών

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών

Αρχιτεκτονική υπολογιστών

Τ.Ε.Ι. ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΥΝΕΡΓΑΣΤΗΚΑΝ ΡΟΚΑ ΑΦΡΟΔΙΤΗ ΣΩΤΗΡΑΚΟΥ ΣΤΑΜΑΤΙΑ ΦΕΒΡΟΥΑΡΙΟΣ 2006

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

Επίπεδο Ψηφιακής Λογικής (The Digital Logic Level)

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Παραλληλισµός Εντολών (Pipelining)

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

Βασίλειος Κοντογιάννης ΠΕ19

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

Δομή Ηλεκτρονικού υπολογιστή

Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Βασικές Έννοιες της Πληροφορικής

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 4: Ρουτίνες καθυστέρησης. [Συγγραφή ρουτίνας καθυστέρησης]

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

Βασική δοµή και Λειτουργία Υπολογιστή

Το υλικό του υπολογιστή

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Αρχιτεκτονικη υπολογιστων

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

Αρχιτεκτονική Μνήμης

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Οργάνωση Η/Υ. Γλώσσα Assembly. Τμήμα Εφαρμσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

Εισαγωγή στην Επιστήμη των Υπολογιστών

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

Οργάνωση Υπολογιστών (IΙI)

Κεφάλαιο 7. Αρχιτεκτονική υπολογιστών βασικές έννοιες

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

Transcript:

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική Λογική Μονάδα (ΑLU Arithmetic Logic Unit) Διακοπές (Interrupts) Τρόποι διευθυνσιοδότησης (Addressing Modes) Αριθμός εσωτερικών καταχωρητών (Internal Registers) Οργάνωση της μνήμης Ύπαρξη κρυφής μνήμης (Cache Memory) Τεχνική pipelining Συνεπεξεργασία (ύπαρξη μαθηματικού συνεπεξεργαστή) Παράλληλη επεξεργασία

Μπλοκ Διάγραμμα Μικροεπεξεργαστή Δίαυλος διευθύνσεων Γραμμές ελέγχου Καταχωρητής διευθύνσεων Δείκτης στοίβας Μετρητής προγράμματος Συσσωρευτής Α Καταχωρητής R1 Καταχωρητής R2 Καταχωρητής R3 Συσσωρευτής Β STATUS Καταχωρητής R4 Καταχωρητής R5 Δίαυλος δεδομένων Καταχωρητής εντολών Προσωρινός καταχωρητής Προσωρινός καταχωρητής Λογική Ελέγχου Αποκωδικοποιητής εντολών ALU

Δίαυλος Δεδομένων (Data Bus) Το εύρος του δίαυλου δεδομένων ενός μικροεπεξεργαστή μπορεί να είναι 4-bit, 8-bit, 16-bit, 32-bit ή και 64-bit. Χαρακτηρίζει το μέγιστο αριθμό ο οποίος μπορεί να μεταφερθεί ανάμεσα στις διάφορες δομικές μονάδες του μικροεπεξεργαστή. Αν ο επεξεργαστής είναι 4-bit τότε για να μεταφερθεί στη μνήμη ο αριθμός 100 (64 16 ) θα έχουμε δύο βήματα. Πρώτα θα μεταφερθεί το ένα μισό του αριθμού, π.χ. το 6 (0110 2 ) και στη συνέχεια το 4 (=0100 2 ). Αν ο δίαυλος δεδομένων ήταν 8-bit τότε η μεταφορά θα μπορούσε να γίνει σε ένα βήμα. Το ίδιο ισχύει και για τις πράξεις ανάμεσα σε αριθμούς. Όσο μεγαλύτερος είναι ο δίαυλος δεδομένων τόσο ισχυρότερος είναι ένας μικροεπεξεργαστής αλλά κοστίζει και περισσότερο.

Δίαυλος Διευθύνσεων (Address Bus) Το εύρος του δίαυλου διευθύνσεων ενός μικροεπεξεργαστή προσδιορίζει τον αριθμό των θέσεων μνήμης που μπορεί να διευθυνσιοδοτήσει. Αν ο αριθμός του δίαυλου διευθύνσεων είναι n τότε ο μικροεπεξεργαστής μπορεί να διευθυνσιοδοτήσει 2 n θέσεις μνήμης. Για παράδειγμα αν ένας επεξεργαστής μπορεί να διευθυνσιοδοτήσει 8G θέσεις μνήμης τότε ο δίαυλος διευθύνσεων αποτελείται από n=log 2 8 2 30 =33 γραμμές. Στους μικροεπεξεργαστές που χρησιμοποιούνται στη βιομηχανία και στις ηλεκτρονικές συσκευές ο δίαυλος διευθύνσεων συνήθως αποτελείται από 12 (4Κ διευθύνσεις) ως 18 (256Κ διευθύνσεις) γραμμές.

Συχνότητα λειτουργίας Η συχνότητα λειτουργίας καθορίζει το πόσο γρήγορα εκτελεί εντολές ο μικροεπεξεργαστής. Όλες οι λειτουργίες στο μικροεπεξεργαστή γίνονται συγχρονισμένα με τους παλμούς ρολογιού. Οι προηγμένοι μικροεπεξεργαστές που χρησιμοποιούνται στους υπολογιστές λειτουργούν σε συχνότητες της τάξεως των GHz. Η ταχύτητα μπορεί να εκφραστεί σε MIPS (MegaInstructions Per Second) αν και δεν αποτελεί ασφαλές κριτήριο σύγκρισης ταχύτητας ανάμεσα σε δύο μικροεπεξεργαστές. Για παράδειγμα ένας 4-bit μικροεπεξεργαστής μπορεί να εκτελεί περισσότερες MIPS από έναν 16-bit μικροεπεξεργαστή όμως για μια πράξη πρόσθεσης δύο 16-bit αριθμών θα χρειαζόταν περίπου τετραπλάσιο αριθμό εντολών.

Τύποι εντολών Κάποιοι μικροεπεξεργαστές υποστηρίζουν εντολές άλματος υπό συνθήκη ενώ κάποιοι άλλοι όχι. Επίσης μπορεί να υποστηρίζονται με εντολές διάφοροι τρόποι διευθυνσιοδότησης της μνήμης κλπ. Υπάρχουν επεξεργαστές αρχιτεκτονικής RISC (Reduced Instraction Set Computing) και επεξεργαστές αρχιτεκτονικής CISC (Complex Instruction Set Computing). Οι RISC εκτελούν εντολές πολύ γρήγορα (1 εντολή ανά κύκλο ρολογιού). Υποστηρίζουν όμως πολύ βασικές λειτουργίες. Οι CISC μπορεί να χρειάζονται περισσότερους από έναν κύκλο για την εκτέλεση εντολών όμως υποστηρίζουν πολύ περισσότερες λειτουργίες.

Αριθμητική Λογική Μονάδα Οι βασικές λειτουργίες που υποστηρίζει κάθε ALU είναι: Προσθέσεις Αφαιρέσεις (ίδιο κύκλωμα με της πρόσθεσης) Λογικές λειτουργίες (AND, OR, NOT, XOR, NAND, NOR) Ολισθήσεις (προς τα δεξιά ή τα αριστερά) Η Αριθμητική Λογική μονάδα αποτελείται αποκλειστικά από συνδυαστική λογική. Έχει δύο εισόδους και μία έξοδο οι οποίες συνδέονται με το δίαυλο δεδομένων ενώ διαθέτει επίσης δύο καταχωρητές για να συγκρατεί τα δεδομένα στις εισόδους. Το αποτέλεσμα μιας πράξης στην ALU επηρεάζει τις σημαίες (Flag bits) του μικροεπεξεργαστή όπως το κρατούμενο εξόδου (Carry), το bit του μηδενικού αποτελέσματος (Zero flag) κλπ.

Διακοπές (Interrupts) Διακοπή είναι εκείνο το χαρακτηριστικό του μικροεπεξεργαστή κατά το οποίο όταν ικανοποιηθούν κάποιες συγκεκριμένες συνθήκες τότε διακόπτεται η κανονική ροή του προγράμματος και εκτελείται ένα συγκεκριμένο τμήμα κώδικα, γνωστό ως ρουτίνα διαχείρισης της διακοπής, ενώ μετά την εξυπηρέτηση το πρόγραμμα επιστρέφει στο σημείο όπου συνέβει η διακοπή. Οι διακοπές αποτελούν πανίσχυρο χαρακτηριστικό καθώς δίνουν τη δυνατότητα στους μικροεπεξεργαστές να συνδέονται ταυτόχρονα με πολλές συσκευές. Έτσι δίνεται μια ψευδαίσθηση παράλληλης επεξεργασίας καθώς στην πραγματικότητα επειδή ο μικροεπεξεργαστής τρέχει πολύ πιο γρήγορα μπορεί με τις διακοπές να εξυπηρετήσει οποιαδήποτε συσκευή ζητήσει την προσοχή του.

Τρόποι διευθυνσιοδότησης της μνήμης Οι κυριότεροι τρόποι διευθυνσιοδότησης είναι: Άμεση διευθυνσιοδότηση: Όταν η διεύθυνση μνήμης στην οποία θέλουμε να κάνουμε προσπέλαση βρίσκεται αποθηκευμένη στην εντολή του προγράμματος. Έμμεση ή δεικτοδοτούμενη διευθυνσιοδότηση: Όταν η διεύθυνση μνήμης βρίσκεται σε συγκεκριμένο καταχωρητή. Σχετική διευθυνσιοδότηση: Όταν η διεύθυνση μνήμης βρίσκεται σε μια σχετική θέση ως προς τη διεύθυνση που δείχνει κάποιος καταχωρητής.

Εσωτερικοί καταχωρητές Ο κάθε μικροεπεξεργαστής διαθέτει πληθώρα καταχωρητών. Κάποιοι είναι διαθέσιμοι στον προγραμματιστή να αλλάξει τα δεδομένα τους ενώ κάποιοι άλλοι όχι. Συσσωρευτής (Accumulator): Ο συσσωρευτής είναι ένας από τους βασικότερους καταχωρητές. Οι πράξεις της ALU στους περισσότερους μικροεπεξεργαστές γίνονται ανάμεσα στο συσσωρευτή και σε κάποια θέση μνήμης ή σε απευθείας δεδομένα. Συσσωρευτές μπορεί να υπάρχουν και περισσότεροι του ενός κάτι που παρέχει μεγαλύτερη ευελιξία στον προγραμματισμό. Καταχωρητής εντολών (Instruction Register ΙR): Ο καταχωρητής αυτός κρατάει την εντολή που εκτελείται εκείνη τη στιγμή για όλο το χρονικό διάστημα που χρειάζεται για να εκτελεστεί.

Εσωτερικοί καταχωρητές Μετρητής Προγράμματος (Program Counter PC): Στον PC αποθηκεύεται κάθε φορά η διεύθυνση μνήμης της επόμενης εντολής που θα εκτελεστεί. Όταν ολοκληρωθεί η διαδικασία ανάκλησης της εντολής από τη μνήμη τότε η εντολή αποθηκεύεται στον IR και στον PC αποθηκεύεται η αμέσως επόμενη εντολή που θα εκτελεστεί. Ο PC αυξάνεται κάθε φορά κατά 1 εκτός και αν η εντολή που εκτελείται έχει ως αποτέλεσμα την αλλαγή των περιεχομένων του όπως π.χ. στις εντολές άλματος. Προσωρινοί καταχωρητές στις εισόδους της ALU. Οι καταχωρητές αυτοί χρησιμοποιούνται για buffering των δεδομένων εισόδου της ALU.

Εσωτερικοί καταχωρητές Καταχωρητές γενικής χρήσης (General Purpose Registers): Οι καταχωρητές χρησιμεύουν στον προγραμματιστή για αποθήκευση ενδιάμεσων αποτελεσμάτων σε διάφορες πράξεις. Έτσι αποφεύγεται η χρονοβόρα διαδικασία αποθήκευσης στη RAM και στη συνέχεια ξανά η ανάγνωσή τους για τις επόμενες πράξεις. Καταχωρητές ειδικής χρήσης (Special Function Registers): Οι καταχωρητές χρησιμεύουν στον προγραμματιστή για την υλοποίηση κάποιων ειδικών λειτουργιών. Για παράδειγμα στην δεικτοδοτούμενη διευθυνσιοδότηση κάποιος καταχωρητής κρατάει τη διεύθυνση μνήμης από την οποία θα γίνει προσπέλαση σε δεδομένα.

Εσωτερικοί καταχωρητές Καταχωρητής διευθύνσεων μνήμης (Address Register): Ο καταχωρητής αυτός κρατάει τη διεύθυνση μνήμης από την οποία θέλουμε να γίνει κάποια ανάγνωση και οδηγεί τον δίαυλο διευθύνσεων. Δείκτης στοίβας (Stack Pointer SP): Ο SP είναι ένας καταχωρητής που δείχνει τη διεύθυνση μνήμης στην οποία βρίσκεται η κορυφή της στοίβας.

Οργάνωση της μνήμης Το εύρος του δίαυλου διευθύνσεων καθορίζει το μέγεθος της εξωτερικής μνήμης που μπορεί να διασυνδεθεί. Η εξωτερική μνήμη μπορεί να αποτελείται κυρίως από κάποια RAM ενώ συνήθως χρησιμοποιείται και ROM με προαποθηκευμένο πρόγραμμα για την εκκίνηση των βασικών λειτουργιών. Στους προηγμένους μικροεπεξεργαστές των υπολογιστών συνδέεται ROM στην οποία εκεί είναι αποθηκευμένο το BIOS (Basic Input Output System) Στο BIOS βρίσκονται οι λεπτομέρειες σχετικά με τις συσκευές που είναι συνδεδεμένες στον υπολογιστή όπως πληκτρολόγια, ποντίκια, σκληροί δίσκοι, DVDs, ελεγκτές αλλά και για ρυθμίσεις του επεξεργαστή όπως συχνότητα λειτουργίας κλπ.

Οργάνωση της μνήμης Με την εφαρμογή της τροφοδοσίας ο μικροεπεξεργαστής ξεκινάει την εκτέλεση προγράμματος από τη ROM και στη συνέχεια φορτώνει στη μνήμη RAM από ROM διάφορες εξωτερικές συσκευές τα υπόλοιπα προγράμματα που μπορεί να εκτελέσει. Η μνήμη που διευθυνσιοδοτεί ο μικροεπεξεργαστής μπορεί να περιλαμβάνει τμήματα τα οποία RAM εξυπηρετούν κάποιες συγκεκριμένες χρήσεις. Η αναπαράσταση της μνήμης με όλα τα τμήματα με τις ειδικές χρήσεις που μπορεί να εξυπηρετεί ονομάζεται Χάρτης Μνήμης. Χάρτης Μνήμης Πρόγραμμα εκκίνησης RAM γενικής χρήσης Στοίβα RAM γενικής χρήσης Συσκευές Ι/Ο RAM γενικής χρήσης Σωρός Πίνακας διακοπών

Οργάνωση της μνήμης Πρόγραμμα εκκίνησης: Περιλαμβάνει τις εντολές αρχικοποίησης του μικροεπεξεργαστή ενώ επίσης στο τμήμα αυτό βρίσκεται το άνυσμα διακοπής (Reset Vector). RAM γενικής χρήσης: Το τμήμα αυτό μπορεί να χρησιμοποιηθεί για την αποθήκευση δεδομένων κατά την εκτέλεση ενός προγράμματος και για την αποθήκευση άλλων προγραμμάτων που πρέπει να εκτελέσει ο μικροεπεξεργαστής. Συσκευές Ι/Ο (Ιnput/Output): Η επικοινωνία του μικροεπεξεργαστή με εξωτερικές συσκευές μπορεί να επιτευχθεί με χαρτογράφηση της συσκευής στη μνήμη. Ο μικροεπεξεργαστής θα κάνει προσπέλαση στα δεδομένα της συσκευής σα να ήταν κανονική μνήμη.

Οργάνωση της μνήμης Στοίβα (Stack): H στοίβα αποτελεί μια περιοχή της μνήμης η οποία είναι δεσμευμένη για προσπέλαση μόνο με την τεχνική LIFO (Last In First Out). Αυτό σημαίνει ότι τα τελευταία δεδομένα που εισήλθαν στη στοίβα θα είναι αυτά που θα εξαχθούν πρώτα. 1. Η στοίβα χρησιμοποιείται από το μικροεπεξεργαστή για την αποθήκευση της διεύθυνσης επιστροφής του καταχωρητή Program Counter όταν γίνεται κλήση σε υπορουτίνα. 2. Επίσης κάποιοι compilers, όταν γίνεται κλήση σε μια υπορουτίνα με παραμέτρους, δημιουργούν αντίγραφα των παραμέτρων μέσα στην περιοχή της στοίβας. Η υπορουτίνα κάνει προσπέλαση των τιμών που υπάρχει στη στοίβα αποθηκεύοντας σε νέες θέσεις μνήμης τυχόν αλλαγές που μπορεί να υπάρξουν με αποτέλεσμα οι αρχικές θέσεις μνήμης που περιείχαν τις μεταβλητές πριν την κλήση να παραμείνουν αμετάβλητες.

Οργάνωση της μνήμης Στοίβα (Stack): 3. Επίσης η στοίβα μπορεί να χρησιμοποιηθεί από τον προγραμματιστή για την αποθήκευση ενδιάμεσων αποτελεσμάτων πράξεων ή άλλων δεδομένων. Αποφεύγεται έτσι η χρήση επιπλέον θέσεων μνήμης κάτι που συντελεί τόσο στην οικονομία της RAM όσο και σε ένα πιο ευανάγνωστο πρόγραμμα καθώς δε χρειάζεται να θυμάται ο προγραμματιστής για ποιο λόγο κάνει χρήση κάθε φορά μια διεύθυνση μνήμης. Ο καταχωρητής που δείχνει την κορυφή της στοίβας είναι ο δείκτης στοίβας (Stack Pointer) ο οποίος αυξάνεται κάθε φορά που γίνεται μια προσθήκη τιμής (Push) και μειώνεται κάθε φορά που γίνεται μια εξαγωγή τιμής (Pop).

Οργάνωση της μνήμης Σωρός (Heap): Ο σωρός είναι μια περιοχή της μνήμης από διαδοχικές θέσεις στις οποίες μπορεί να αποθηκεύονται δυναμικές μεταβλητές. Κατά την εκτέλεση ενός προγράμματος οι δυναμικές μεταβλητές παίρνουν κάποιες τιμές, εξάγουν κάποια αποτελέσματα και μετά καταστρέφονται για να πάρουν τη θέση τους άλλες. Έτσι επιτυγχάνεται οικονομία στη χρήση της RAM. Για παράδειγμα, ύπαρξη τμήματος σωρού στη μνήμη απαιτεί μια εντολή δέσμευσης μνήμης (memory allocation malloc() στη γλώσσα C). Η εντολή αυτή δεσμεύει ένα τμήμα του σωρού (αναλόγως της παραμέτρου) και επιστρέφει έναν δείκτη (pointer) που αναφέρεται στην αρχή αυτού του τμήματος. Κάθε προσπέλαση σε αυτό το τμήμα μνήμης πραγματοποιείται με αυξομειώσεις της τιμής του καταχωρητή δείκτη. Αυτό το κάνει ένας προγραμματιστής για γρηγορότερη πρόσβαση στη μνήμη.

Οργάνωση της μνήμης Πίνακας διακοπών (Interrupt Vector Table): O πίνακας διακοπών στην ουσία αποτελεί έναν τμήμα της μνήμης όπου εκεί περιλαμβάνονται οι διευθύνσεις μνήμης που θα πάει για να εκτελέσει εντολές ο μικροεπεξεργαστής όταν σηματοδοτηθούν διακοπές. Ανάλογα το είδος της διακοπής μπορεί να υπάρχει και διαφορετική διεύθυνση.

Ύπαρξη κρυφής μνήμης (cache memory) H κρυφή μνήμη είναι μια μνήμη η οποία συνήθως βρίσκεται ενσωματωμένη στο μικροεπεξεργαστή και είναι πολύ πιο γρήγορη από τη μνήμη RAM. Όταν ο μικροεπεξεργαστής ανακαλεί μια εντολή από τη RAM και την αποθηκεύσει στον ΙR τότε εκτός από αυτή την εντολή διαβάζει από τη RAM αρκετές από τις επόμενες και τις αποθηκεύει στην κρυφή μνήμη. Όταν αναζητήσει την επόμενη εντολή προς εκτέλεση πρώτα την αναζητεί στην cache και αν δεν βρίσκεται εκεί τότε την αναζητεί στη RAM πραγματοποιώντας ολόκληρο τον κύκλο ανάκλησης της εντολής. Όσο μεγαλύτερη είναι η cache τόσες περισσότερες πιθανότητες έχει να περιλαμβάνει την επόμενη εντολή προς εκτέλεση. Όσο περισσότερες επιτυχίες έχει η cache τόσο πιο γρήγορα εκτελείται ένα πρόγραμμα. Η επιτυχία ή η αποτυχία εξαρτάται και από τον προγραμματιστή καθώς αν υπάρχουν πολλές εντολές άλματος τότε η cache είναι καταδικασμένη να αποτυγχάνει συχνά.

Τεχνική pipelining (διοχέτευσης/κατανομών) Η τεχνική pipelining είναι μια τεχνική με την οποία μπορούν να παραλληλιστούν κάποιες επαναληπτικές διαδικασίες με στόχο την επιτάχυνση της εκτέλεσής τους. Ας υποθέσουμε ότι ένας μικροεπεξεργαστής πρέπει να εκτελέσει τις παρακάτω λειτουργίες: 1. Ανάγνωση των περιεχομένων x από μία θέση μνήμης RAM και αποθήκευση σε εσωτερικό καταχωρητή R1. 2. Πολλαπλασιασμός των περιεχομένων x (R1) με το 16. 3. Άθροιση του αποτελέσματος στον συσσωρευτή. για 10 θέσεις της μνήμης RAM.

Τεχνική pipelining (διοχέτευσης/κατανομών) Ένας μικροεπεξεργαστής χωρίς pipelining εκτελεί ως εξής: Βήμα 1.1: Ανάγνωση της 1ης θέσης μνήμης της RAM Βήμα 1.2: Εκτέλεση 1ου πολλαπλασιασμού Βήμα 1.3: 1η άθροιση στο συσσωρευτή Βήμα 2.1: Ανάγνωση της 2ης θέσης μνήμης της RAM Βήμα 2.2: Εκτέλεση 2ου πολλαπλασιασμού Βήμα 2.3: 2η άθροιση στο συσσωρευτή...κ.ο.κ... Για την ολοκλήρωση των εντολών θα χρειαστεί 30 βήματα.

Τεχνική pipelining (διοχέτευσης/κατανομών) Ένας επεξεργαστής χρησιμοποιώντας pipelining εκτελεί ως εξής: Βήμα 1: Ανάγνωση της 1ης θέσης μνήμης της RAM Βήμα 2: Εκτέλεση 1ου πολλαπλασιασμού Ανάγνωση της 2ης θέσης μνήμης της RAM Βήμα 3: 1η Άθροιση στο συσσωρευτή Εκτέλεση 2ου πολλαπλασιασμού Ανάγνωση της 3ης θέσης μνήμης της RAM Βήμα 4: 2η Άθροιση στο συσσωρευτή Εκτέλεση 3ου πολλαπλασιασμού Ανάγνωση της 4ης θέσης μνήμης της RAM Βήμα 5: 3η Άθροιση στο συσσωρευτή Εκτέλεση 4ου πολλαπλασιασμού Ανάγνωση της 5ης θέσης μνήμης της RAM...κ.ο.κ... Έτσι θα χρειαστεί κάτι περισσότερο από 10 βήματα για την εκτέλεση της παραπάνω διαδικασίας. Με την τεχνική pipelining ο μικροεπεξεργαστής εκμεταλλεύεται ταυτόχρονα όλο το hardware ξεκινώντας μια νέα διαδικασία πριν ολοκληρωθεί η προηγούμενη.

Συνεπεξεργασία Μερικοί μικροεπεξεργαστές διαθέτουν ενσωματωμένους συνεπεξεργαστές για επιτάχυνση κάποιων πράξεων. Για παράδειγμα ο επεξεργαστής 8088 περιείχε τον 8087 ο οποίος μπορούσε να πραγματοποιήσει πράξεις πολύ γρήγορα (όπως υπολογισμούς τριγωνομετρικών αριθμών) που διαφορετικά ο κύριως επεξεργαστής θα αναλωνόταν με αρκετούς κύκλους καθυστερώντας. Κάποιοι DSP σήμερα διαθέτουν συνεπεξεργαστές για επιτάχυνση πολύπλοκων αλλά και ειδικών υπολογισμών όπως για παράδειγμα κατά την υλοποίηση επαναληπτικών αλγορίθμων συνέλιξης ή για την υποστήριξη πράξεων με αριθμούς κινητής υποδιαστολής (κλασματικούς αριθμούς) κλπ.

Παράλληλη επεξεργασία Μερικοί μικροεπεξεργαστές έχουν τη δυνατότητα να παραλληλίσουν κάποιους υπολογσιμούς με σκοπό την επιτάχυνση της εξαγωγής του αποτελέσματος. Για παράδειγμα έχουμε την παρακάτω πρόσθεση: 10 +8 3 +4 Ένας κοινός μικροεπεξεργαστές θα έκανε την πρόσθεση σειριακά και θα χρειαζόταν στην καλύτερη περίπτωση χρόνο για 3 αθροίσεις. Ένας προηγμένος επεξεργαστής θα μπορούσε να διαθέτει δύο αθροιστές οπότε καταφέρνει στην καλύτερη περίπτωση χρόνο για 2 αθροίσεις. Κοινός επεξεργαστής Βήμα 1: 10 +8 = 18 Βήμα 2: 3 +4 = 1 Βήμα 3: 18+1 = 19 Προηγμένος επεξεργαστής Βήμα 1: 10 +8 = 18, 3 +4 = 1 Βήμα 2: 18+1 = 19