Πίνακας με δημοφιλείς Μικροελεγκτές από 4-bit έως και 32-bit

Σχετικά έγγραφα
ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

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

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

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

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

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

Ποια πρόταση είναι αληθής για τον Μ/Ε 8088: Είναι Μ/Ε 16bit, LSI, 40 pins, 20 γραμμές διευθύνσεων, 8 γραμμές δεδομένων

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

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

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

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

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

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

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

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

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

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

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

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

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

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

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

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

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

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019

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

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

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

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

Ενσωµατωµένα Συστήµατα

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

Μνήμη και Προγραμματίσιμη Λογική

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

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

Ψηφιακή Λογική Σχεδίαση

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

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

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

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

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

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

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

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

Ηλεκτρονικός Υπολογιστής

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

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

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

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

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

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

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

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

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

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

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

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

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

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

ΑΝΑLOG TO DIGITAL CONVERTER (ADC)

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

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

Μικροαρχιτεκτονική του LC3

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

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

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

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

Λογικά σύμβολα των CPU, RAM, ROM και I/O module

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

WDT και Power Up timer

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

Ψηφιακή Σχεδίαση Ενότητα 11:

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

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

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

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

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

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

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

Transcript:

Στην καρδιά (ή στο μυαλό?) κάθε Ενσωματωμένου Συστήματος βρίσκεται ένας Μικροελεγκτής ή Μικροεπεξεργαστής, υπεύθυνος να υλοποιήσει την «λογική» του συστήματος. Ο Μικροελεγκτής είναι ένας απλός υπολογιστής που περιέχεται σε ένα μόνο ολοκληρωμένο κύκλωμα (IC) που ονομάζεται και chip. Όπως κάθε υπολογιστής, ακολουθεί μία σειρά εντολών, γνωστή και σαν πρόγραμμα. Κάθε εντολή προκαλεί μία πολύ μικρή ενέργεια, είτε κάποιον υπολογισμό, κάποια μεταφορά δεδομένων ή κάποια απόφαση. Ο Μικροελεγκτής μπορεί να εκτελεί κάθε εντολή εξαιρετικά γρήγορα, έτσι ώστε με βάση αυτές τις απλές εντολές να μπορούν να κατασκευαστούν πολύ πιο πολύπλοκες διαδικασίες. Ο Μικροελεγκτής έχει την ικανότητα να: Εκτελεί εντολές που υλοποιούν την λογική ή την συμπεριφορά του συστήματος. Διαβάζει μετρήσεις από το περιβάλλον. Αποθηκεύει και να επεξεργάζεται χρήσιμα δεδομένα. Εξάγει αποκρίσεις προς το περιβάλλον. Επικοινωνεί με τον χειριστή του. Πίνακας με δημοφιλείς Μικροελεγκτές από 4-bit έως και 32-bit Microcontroller Bits Pins I/O ROM RAM Extra Features TMS 1000 4 28 23 1K 64b LED Display Intel 8051 8 40 32 4K 128b 128k External memory, Boolean processing, serial port Motorola 6805 8 28 20 1K 64b PLL frequency synthesizer PIC 16F84A 8 18 13 1K 68b 1 8bit timer, low pwr consumption Atmel Atmega8 8 32 23 8K 1K 8 ADC, 3 timers, 2 int, 3 PWM PIC 24FJ64 16 28-100 24-84 64K 8K 2 UART, 2SPI, 2 I2C, 10 A/D Atmel AVR32 32 144 109 128K 32K USB, Eth, 8 ADC, 2 DAC ARM Cortex M4 32 144 123 1MB 160K 12ch DMA, USB, Eth, FPU Σπύρος Καζαρλής, Χειμώνας 2014-2015 1

Τα βασικά στοιχεία ενός Μικροελεγκτή είναι: Ο Μικροεπεξεργαστής Ένα τμήμα μνήμης για αποθήκευση του προγράμματος Ένα άλλο τμήμα μνήμης για αποθήκευση προσωρινών δεδομένων Κάποια διεπαφή με τον έξω κόσμο (μέσω θυρών εισόδου / εξόδου) Ένας τρόπος διασύνδεσης αυτών των στοιχείων (δίαυλοι διευθύνσεων και δεδομένων, μαζί με μερικές γραμμές ελέγχου) Σπύρος Καζαρλής, Χειμώνας 2014-2015 2

Υπάρχουν δύο σημαντικές παράμετροι που χαρακτηρίζουν τις CPU: Η «κλάση» (Class) της CPU: μετριέται σε bits (4, 8, 16, 32, 64 bits). Καθορίζεται από το μέγεθος των εσωτερικών καταχωρητών, το μέγεθος του εσωτερικού διαύλου δεδομένων και το μέγεθος των αριθμών που χειρίζεται η ALU. Δηλώνει την ικανότητα της CPU στην διαχείριση πληροφορίας σε μία απλή εντολή. Π.χ.: μια 8-bit CPU μπορεί να προσθέσει αριθμούς των 32-bit αλλά χρειάζεται 4 εντολές, ενώ μία 32-bit CPU χρειάζεται μόνο μία εντολή για την ίδια εργασία. Η συχνότητα λειτουργίας του ρολογιού (clock frequency): Κάθε CPU έχει ένα εσωτερικό ή εξωτερικό ρολόι, μία συσκευή που παράγει μία τετραγωνική κυματομορφή συγκεκριμένης συχνότητας. Αυτή η συχνότητα καθορίζει τον ρυθμό με τον οποίο εκτελούνται οι εσωτερικές λειτουργίες της CPU και κατ επέκταση οι εντολές του προγράμματος. Η συχνότητα ρολογιού κυμαίνεται από 4 KHz έως 4 GHz. Π.χ.: μία CPU χρονισμένη στα 100 MHz είναι 100 φορές ταχύτερη απ ότι η ίδια CPU χρονισμένη στο 1 MHZ. Ο καταχωρητής αποτελείται από μία σειρά flip-flops που μπορούν να αποθηκεύσουν έναν αριθμό των n-bit και μπορούν να τον μεταβάλλουν ή να τον εξάγουν από όλα τα flip-flops παράλληλα. Όταν EN=1 η 8-bit λέξη DIN7..DIN0 εγγράφεται στον καταχωρητή κατά την ακμή ανόδου του παλμού ( ). Τα περιεχόμενα του καταχωρητή μπορούν να διαβαστούν μέσω των εξόδων REG7..REG0. Οι καταχωρητές μπορούν να μηδενιστούν (reset / cleared) μέσω της γραμμής RST. Σπύρος Καζαρλής, Χειμώνας 2014-2015 3

Συσσωρευτής: βασικός καταχωρητής μέσω του οποίου πραγματοποιούνται όλες οι αριθμητικές και λογικές πράξεις στην ALU. Καταχωρητές Δεδομένων: αποθηκεύουν δεδομένα από τον συσσωρευτή ή την μνήμη και προωθούν δεδομένα προς τον συσσωρευτή ή την μνήμη. Καταχωρητές Διευθύνσεων: Κρατούν διευθύνσεις που προωθούνται προς τον δίαυλο διευθύνσεων για επιλογή θέσεων μνήμης για μεταφορά δεδομένων. Μετρητής Προγράμματος: κρατά την διεύθυνση της επόμενης εντολής που θα προσκομιστεί και θα εκτελεστεί από την CPU. Καταχωρητής Εντολής: κρατά τον κωδικό (opcode) της εντολής που πρόκειται να εκτελεστεί. Δείκτης Στοίβας: καταχωρητής διεύθυνσης που κρατάει την διεύθυνση του αντικειμένου που βρίσκεται στην κορυφή της στοίβας. Καταχωρητές Δεικτών: καταχωρητές δεδομένων που κρατούν μετατοπίσεις που προστίθενται σε διευθύνσεις μνήμης για να παράγουν διευθυνσιοδότηση μνήμης μέσω δεικτών. Data Buffer: κρατούν δεδομένα που μεταφέρονται από ή προς το Data Bus. Address Buffer: κρατά την διεύθυνση που προωθείται στον δίαυλο διευθ/σεων. Καταχωρητές Προχείρου: εσωτερικοί καταχωρητές μή προσβάσιμοι στον προγραμματιστή που χρησιμοποιούνται για προσωρινή αποθήκευση ενδιάμεσων αποτελεσμάτων. Καταχωρητής Κατάστασης: αποτελείται από έναν αριθμό σημαιών (flags) που δείχνουν ή καθορίζουν την κατάσταση της CPU. Carry Flag: κρατά το επιπλέον (n+1) bit κρατούμενου που προκύπτει από αριθμητικές ή λογικές πράξεις (κρατούμενο για προσθέσεις και δανεικό για αφαιρέσεις). Half-Carry Flag: (βοηθητικό κρατούμενο) δείχνει εάν υπήρξε κρατούμενο ανάμεσα στο χαμηλής τάξης και στο υψηλής τάξης 4μπιτο κομμάτι (nibble) του αποτελέσματος είναι χρήσιμο για αριθμητική BCD - Binary Coded Decimal. Overflow Flag: δείχνει ότι το αποτέλεσμα υπερέβη την περιοχή τιμών συμπληρώματος ως προς 2 που χρησιμοποιείται στην αναπαράσταση προσημασμένων αριθμών. Zero Flag: δείχνει ότι το αποτέλεσμα ήταν μηδέν. Negative Flag: δείχνει αν το αποτέλεσμα είναι αρνητικός αριθμός (με την αναπαράσταση συμπληρώματος ως προς 2) επομένως είναι αντίγραφο του MSB του αποτελέσματος. Interrupt Flag: καθορίζει αν οι διακοπές γίνονται αποδεκτές ή αγνοούνται από την CPU. Μηδενίζεται (=0) στην αρχή ρουτινών του πυρήνα του ΛΣ για αποφυγή διακοπών κρίσιμων διαδικασιών στου συστήματος και επαναφέρονται (=1) στο τέλος τους. Parity Flag: δείχνει εάν το αποτέλεσμα έχει μονό ή ζυγό αριθμό μονάδων (1). Προσφέρει υποστήριξη υλικού σε αλγορίθμους ελέγχου ισοτιμίας. Οι περισσότερες σημαίες μπορούν να τεθούν 0 ή 1 κατά βούληση και μπορούν να ελεγχθούν από εντολές διακλάδωσης υπό συνθήκη για να καθορίσουν την ροή του προγράμματος. Σπύρος Καζαρλής, Χειμώνας 2014-2015 4

Δίαυλος Δεδομένων (Data Bus): ένα σύνολο ψηφιακών γραμμών που χρησιμοποιούνται για την μεταφορά δεδομένων μεταξύ καταχωρητών και μνήμης. Συνήθως έχουν τον ίδιο αριθμό γραμμών με την «κλάση» της CPU. Είναι δικατευθυντικό, δηλαδή μπορεί να μεταφέρει δεδομένα και προς τις δύο κατευθύνσεις (λειτουργίες ανάγνωσης και εγγραφής). Υπάρχουν δύο τέτοιοι δίαυλοι: Εσωτερικός Δίαυλος Δεδομένων: διασυνδέει όλους τους εσωτερικούς καταχωρητές και την ALU. Εξωτερικός Δίαυλος Δεδομένων: συνδέει την CPU με την μνήμη και τις θύρες I/O. Δίαυλος Διευθύνσεων: ένα σύνολο ψηφιακών γραμμών που χρησιμοποιούνται για την μεταφορά διευθύνσεων μνήμης από την CPU προς την μνήμη και τις εξωτερικές συσκευές I/O, ώστε να προσπελάσει ένα συγκεκριμένο κελί μνήμης ή έναν καταχωρητή μίας συσκευής I/O. Ο αριθμός των γραμμών καθορίζει τον μέγιστο αριθμό θέσεων μνήμης που μπορεί να προσπελάσει η CPU. Address Lines = log 2 Maximum-Addressable-Locations Ο δίαυλος διευθύνσεων είναι μονο-κατευθυντικός. Μόνο η CPU προωθεί διευθύνσεις στον δίαυλο διευθύνσεων. Υπάρχουν δύο αρχιτεκτονικές που αφορούν τον τρόπο διασύνδεσης της μνήμης με την CPU: Αρχιτεκτονική Von Neumann-Princeton: Η μνήμη προγράμματος και η μνήμη δεδομένων χρησιμοποιούν τους ίδιους διαύλους (δεδομένων και διευθύνσεων). Von Neumann bottleneck. Πρόγραμμα και δεδομένα δεν διαχωρίζονται. Το πρόγραμμα μπορεί να μεταβάλλει τον εαυτό του σαν να ήταν δεδομένα. Αρχιτεκτονική Harvard: Η μνήμη προγράμματος και η μνήμη δεδομένων χρησιμοποιούν διαφορετικούς διαύλους δεδομένων και διευθύνσεων. Αυτό επιτυγχάνει μέγιστο ρυθμό διαμεταγωγής μέσω των διαύλων. Το πρόγραμμα δεν μπορεί να αλλάξει τον εαυτό του σαν να ήταν δεδομένα. Von Neumann-Princeton Architecture Harvard Architecture Σπύρος Καζαρλής, Χειμώνας 2014-2015 5

Αριθμητική και Λογική Μονάδα (ALU): Σύνθετο κύκλωμα που χειρίζεται όλες τις αριθμητικές και λογικές πράξεις ακεραίων. Βασικές λειτουργίες μίας ALU: Increment A A = A + 1 Decrement A A = A - 1 Add A to M A = A + M Subtract M from A A = A M AND A with M A = A AND M OR A with M A = A OR M XOR A with M A = A XOR M Shift A left A = A * 2 Shift A right A = A / 2 Rotate A left Rotate A right Complement A A = NOT A Clear A A = 0 Η σύγκριση αριθμών γίνεται μέσω αφαίρεσης A=M, A>M, A<M, A<>M Παράδειγμα απλής ALU του 1 ος bit: Είσοδοι A,B. Λειτουργίες A AND B, A OR B, NOT B, A+B+CarryIn. Σπύρος Καζαρλής, Χειμώνας 2014-2015 6

Κάθε εντολή αποτελείται από έναν αριθμό bits ή bytes που περιέχουν: 1. Τον κωδικό της εντολής (opcode): ένα κωδικό αριθμό που αναπαριστά την συγκεκριμένη λειτουργία που θα εκτελεστεί. 2. Τελεσταίους (operands): έναν αριθμό, ένα όνομα καταχωρητή, ή μία διεύθυνση που εμπλέκεται στην εκτέλεση της εντολής. 3. Παραμέτρους της εντολής. Παράδειγμα για την οικογένεια μικροελεγκτών PIC: Όλες οι εντολές έχουν ίδια μορφή που καταλαμβάνει 14 bits. Εντολή Byte-oriented με καταχωρητή 13 8 7 6 0 opcode d f ( reg num ) όταν d=0 (παράμετρος) ο αποδέκτης είναι ο καταχωρητής W όταν d=1 ο αποδέκτης είναι μία θέση μνήμης f(reg_num) είναι ένας επιλογέας θέσης μνήμης των 7 bit για τις 80 διαθέσιμες θέσεις (FRS) Παράδειγμα: 000 111 0 010 0001 W=W+Reg[33] Address Bus MAR Internal Address Bus EAR Internal Data Bus IRQ SP Interrupt Logic BX Instruction Decoding AX ALU IR H FG IP H ADR H ADR L SCR H SCR L MDR Data Bus IP IR L IP L Σπύρος Καζαρλής, Χειμώνας 2014-2015 7

MDR (Memory Data Register): είναι ο buffer που συνδέει την CPU με το Data Bus. Κάθε λέξη δεδομένων που στέλνεται στην μνήμη ή στις θύρες I/O πρώτα αποθηκεύεται στον MDR. Κάθε λέξη που εισέρχεται στην CPU επίσης πρώτα αποθηκεύεται στον MDR. MAR (Memory Address Register): ο buffer που συνδέει την CPU με το Address Bus. Κάθε διεύθυνση που εξάγεται στον δίαυλο διευθύνσεων, για να επιλέξει θέση μνήμης ή διεύθυνση θύρας I/O, πρώτα αποθηκεύεται στον MAR. IP (Instruction Pointer ή Program Counter): περιέχει την διεύθυνση μνήμης της επόμενης εντολής που θα εκτελεστεί. Ακολουθεί την εκτέλεση του προγράμματος. Αυξάνεται αυτόματα από την CPU. IR (Instruction Register): αποθηκεύει το opcode της εντολής. Μετά την αποθήκευση το opcode αποκωδικοποιείται από την Μονάδα Ελέγχου. SCR (Scratchpad Register): γενικής χρήσης προσωρινός καταχωρητής. ADR (Address Data Register): αποθηκεύει τις διευθύνσεις δεδομένων που είναι παράμετροι των εντολών (παράμετρος εντολής=διεύθυνση) EAR (Effective Address Register): αποθηκεύει την τελική διεύθυνση των δεδομένων στις περιπτώσεις Δεικτοδοτούμενης Διευθυνσιοδότησης, όπου ένας δείκτης προστίθεται σε μία διεύθυνση βάσης για να παράγει την τελική διεύθυνση των δεδομένων. Κάθε εντολή εκτελείται σε τρεις φάσεις : Προσκόμιση (fetch): η εντολή διαβάζεται από την μνήμη. Ο μετρητής προγράμματος εξάγεται στο Address Bus. Μετά από ορισμένο χρόνο (χρόνος προσπέλασης μνήμης) η μνήμη αποκρίνεται και στέλνει τα περιεχόμενα της μνήμης στο Data Bus. Η CPU διαβάζει το Data Bus και αποθηκεύει την εντολή σε εσωτερικό καταχωρητή (IR). Η διαδικασία μπορεί να επαναληφθεί για εντολές πολλαπλών byte, ώστε να διαβαστούν και οι παράμετροι της εντολής. Αποκωδικοποίηση (Decode): Η Μονάδα Ελέγχου της CPU αποκωδικοποιεί την εντολή και καθορίζει τα βήματα εκτέλεσης ή ενεργοποιεί τα κατάλληλα κυκλώματα. Εκτέλεση (Execute): για την εκτέλεση χρειάζεται ένας αριθμός βημάτων για την ολοκλήρωση της εντολής και αποθήκευση αποτελεσμάτων. Π.χ. W=W+Reg[33] 1. Τροφοδότησε την είσοδο 1 της ALU με το W 2. Τροφοδότησε την είσοδο 2 της ALU με το περιεχόμενο της μνήμης 33. 3. Τροφοδότησε την ALU με την εντολή της πρόσθεσης 4. Περίμενε να αποκριθεί η ALU 5. Πάρε το αποτέλεσμα και αποθήκευσέ το στον καταχωρητή W Σπύρος Καζαρλής, Χειμώνας 2014-2015 8

Program Counter Address Buffer CPU Data Buffer Address Bus Read Data Bus Write Memory 0000 23 0001 ED 0002 8C 0003 1A 0004 55 0005 93 0006 FB 0007 47. FFFF 81 Ο χρόνος που χρειάζεται για να ολοκληρωθεί μία ανάγνωση μνήμης ονομάζεται «Κύκλος Μηχανής» (Machine Cycle) CISC (Complex Instruction Set Computer): μία τεχνική όπου οι εντολές της CPU αντιστοιχίζονται σε ρουτίνες «μικροκώδικα» (εσωτερικές μικρο-λειτουργίες) που περιέχονται σε μνήμη ROM μέσα στην Μονάδα Ελέγχου, και αναλύονται σε μικρο-βήματα ώστε να εκτελεστούν. Οι εντολές εκτελούνται πιο αργά αλλά οι CPU σχεδιάζονται εύκολα. Οι CISC CPU έχουν πλούσια σετ εντολών που περιέχουν πολλές εντολές υψηλού επιπέδου, όπως ο πολλαπλασιασμός και η διαίρεση, ή εντολές επεξεργασίας πολυμέσων. Προγρ/τα σε γλώσσες υψηλού επιπέδου (όπως η C) μεταφράζονται σε σχετικά μικρά προγράμματα γλώσσας μηχανής. RISC (Reduced Instruction Set Computer). Η μονάδα ελέγχου της CPU κατασκευάζεται με σύνθετα ακολουθιακά ψηφιακά κυκλώματα, που είναι σχεδιασμένα να αποκρίνονται σε ένα μικρό σετ εντολών που αποτελούν την είσοδο του κυκλώματος. Οι RISC CPU έχουν μικρά σετ εντολών που αποτελούνται από λίγες και απλές εντολές, που έχουν την ίδια μορφή για εύκολη επεξεργασία. Σύνθετες λειτουργίες, όπως ο πολλλαπλασιασμός, πραγματοποιούνται με επαναλήψεις απλούστερων εντολών, όπως η πρόσθεση. Προγράμματα υψηλού επιπέδου μεταφράζονται σε μεγαλύτερα προγράμματα γλώσσας μηχανής. Οι εντολές εκτελούνται πιο γρήγορα. Σπύρος Καζαρλής, Χειμώνας 2014-2015 9

Αρχές σχεδιασμού RISC: Εκτέλεση εντολών απευθείας από το υλικό με μονάδες ελέγχου «hardwired» που αποκρίνονται σε εισερχόμενες εντολές. Μικρά σετ εντολών που περιέχουν απλές εντολές ο οποίες μπορούν εύκολα να υλοποιηθούν σαν ψηφιακά κυκλώματα. Μεγιστοποίηση ρυθμού υποβολής εντολών με υλοποίηση παράλληλων αρχιτεκτονικών προσκόμισης και εκτέλεσης εντολών (Instruction Pipelining) Εύκολη αποκωδικοποίηση των εντολών: οι εντολές έχουν όλες το ίδιο μήκος και την ίδια μορφή (opcode+operands). Περιορισμός των εντολών που προσπελαύνουν τη μνήμη (μόνο εντολές load/store προσπελαύνουν την μνήμη) Αφθονία καταχωρητών γενικής χρήσης που σχηματίζουν ένα αρχείο καταχωρητών (register file). Στους συμβατικούς μικροελεγκτές η εκτέλεση προγράμματος είναι ένας συνεχής κύκλος σειριακής προσκόμισης, αποκωδικοποίησης και εκτέλεσης εντολών. Για ένα τέτοιο επεξεργαστή ο μόνος τρόπος επιτάχυνσης της διαδικασίας είναι η αύξηση της συχνότητας του ρολογιού. Σκεφτείτε μία εναλλακτική λύση: καθώς μία εντολή εκτελείται, η επόμενη εντολή έχει ήδη προσκομιστεί. Σε αυτή την περίπτωση αυξάνεται δραματικά ο ρυθμός εκτέλεσης των εντολών χωρίς να μειωθεί ο πραγματικός χρόνος εκτέλεσης μίας εντολής. Θέτει αυστηρέ προϋποθέσεις για το είδος των εντολών: Θα πρέπει να χωρίζονται σε ισάριθμα στάδια εκτέλεσης Κάθε στάδιο πρέπει να διαρκεί ίδιο χρόνο. Αποτυγχάνει όταν το πρόγραμμα διακλαδίζεται σε άλλη θέση μνήμης. Σπύρος Καζαρλής, Χειμώνας 2014-2015 10

Οι διακοπές είναι σήματα που στέλνονται από περιφερειακές συσκευές προς την CPU. Η Π.Σ. στέλνει μία διακοπή σαν αίτηση για επικοινωνία. Η CPU σταματά προσωρινά την εκτέλεση του προγρ/τος, αποθηκεύει την κατάστασή της και καλεί μία ειδική ρουτίνα χειρισμού της διακοπής. Η ρουτίνα επικοινωνεί με την συσκευή. Με τη επιστροφή από την ρουτίνα η CPU επαναφέρει την κατάστασή της και συνεχίζει την εκτέλεση του προγράμματος. Η CPU μπορεί αν φιλτράρει ή να απενεργοποιεί τις διακοπές IRQ αλλά όχι τις ΝMI. RAM ROM CPU IRQ, NMI Control bus Peripheral Device CPU IACK Control bus Data bus Π.Σ. Τα προγράμματα των μικροελεγκτών συνήθως αποθηκεύονται σε μία μορφή μνήμης που ονομάζεται ROM Read-Only Memory. Η ROM των μικροελεγκτών συνήθως υλοποιείται ως Flash-EEPROM, μία έκδοση της EEPROM (Electronic Erasable Programmable ROM). Η ROM μπορεί να προγραμματιστεί με έναν FLASH-EEPROM programmer. Έτσι το πρόγραμμα που θα εκτελείται αποθηκεύεται μέσα στον μικροελεγκτή. Η ROM διατηρεί τα δεδομένα της με την αφαίρεση της τάσης. Τα δεδομένα του προγράμματος συνήθως αποθηκεύονται σε ένα είδος μνήμης που ονομάζεται RAM Random Access Memory. Οι μικροελεγκτές συνήθως έχουν μικρά μεγέθη RAM που υλοποιείται ως Static RAM (SRAM), συνήθως κάτω από 1K bytes. Η RAM δεν κρατά τα δεδομένα της με την αφαίρεση της τάσης. Πρέπει να σωθούν αλλού (π.χ. να μεταδοθούν σε ένα host PC) αν χρειάζεται να διατηρηθούν. Οι περισσότεροι μικροελεγκτές υλοποιούν μία επιπλέον μικρή EEPROM (μικρότερη από 1K) που χρησιμοποιείται για μακρόχρονη αποθήκευση δεδομένων σε μη-πτητική μορφή. Η EEPROM των δεδομένων διαβάζεται γρήγορα αλλά γράφεται αργά με ειδική διαδικασία. Σπύρος Καζαρλής, Χειμώνας 2014-2015 11

Υπάρχουν δύο τύποι μνήμης RAM: Static RAM - SRAM : κατασκευάζονται με κυκλώματα δύο καταστάσεων που ονομάζονται flip-flops. Απαιτούν 6 τρανζίστορς ανά bit. Κρατούν τα δεδομένα τους όσο υπάρχει τάση (πτητική). Έχουν γρήγορη απόκριση (~0.3 nsec) αλλά είναι ακριβές στην κατασκευή αναφορικά με το κόστος ανά bit. Χρησιμοποιούνται στην κατασκευή καταχωρητών, μνήμης cache και για την διατήρηση των παραμέτρων του BIOS των υπολογιστών με χρήση μπαταρίας (CMOS). Dynamic RAM DRAM : κάθε bit υλοποιείται με ένα τρανζίστορ και ένα πυκνωτή. Το bit (0 ή 1) αποθηκεύεται ως φορτίο στον πυκνωτή. Επειδή οι πυκνωτές σταδιακά εκφορτίζονται, χρειάζονται κυκλώματα ανανέωσης. Λόγω απλότητας επιτυγχάνουν μεγάλη πυκνότητα, και γι αυτό χρησιμοποιούνται ως κύρια μνήμη στα PC. Είναι πιο αργές από τις SRAM (~ 3nsec). Transistor Address Line Capacitor Bit Reading GND Τύπος Κατηγορία Διαγραφή Μεταβολή Πτητική Χρήση ROM Read Only No No No PROM Read Only No Bit No EPROM EEPROM FLASH Manly Read Mainly Read Read / Write UV Bit No Καταναλωτικά Ηλεκτρονικά Ψηφιακές συσκευές μικρής παραγωγής Πρωτότυπες συσκευές Electric Bit No BIOS Η/Υ Electric Block No BIOS Η/Υ και ψηφιακές συσκευές Σπύρος Καζαρλής, Χειμώνας 2014-2015 12

Κάθε ενσωματωμένο σύστημα έχει ένα σύνολο θυρών εισόδου / εξόδου ψηφιακές ή και αναλογικές. Οι ψηφιακές θύρες μπορεί να είναι: Παράλληλες θύρες (Parallel Ports) Σειριακές θύρες (Serial Ports) Θύρες άλλων πρωτοκόλλων επικοινωνίας (I2C, CANbus, USB, IEEE1394 Firewire, PCI, κλπ) Οι παράλληλες θύρες αποτελούνται από έναν αριθμό bits, που μπορούν να οδηγηθούν ανεξάρτητα. Συνήθως οι παράλληλες θύρες προγραμματίζονται για να συμπεριφέρονται ως είσοδοι ή έξοδοι ακόμα και ανά bit. Ο χειρισμός του γίνεται μέσω ειδικών διευθύνσεων I/O και ειδικών εντολών γλώσσας μηχανής, τόσο για τη ρύθμιση όσο και για την επικοινωνία. Οι σειριακές θύρες και οι θύρες άλλων πρωτοκόλλων μπορούν να οδηγηθούν είτε απευθείας (απαιτείται γνώση του hardware) ή μέσω ρουτινών του συστήματος που είναι διαθέσιμες στον προγραμματιστή. Σπύρος Καζαρλής, Χειμώνας 2014-2015 13