You are on page 1of 104

Ιόνιο Πανεπιστήμιο – Τμήμα Πληροφορικής

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


2022-23

Εισαγωγή στους Υπολογιστές


(αρχές λειτουργίας και τεχνολογία)

http://mixstef.github.io/courses/csintro/

Μ.Στεφανιδάκης

Σχετικά με το μάθημα
• Εισαγωγή
• Ενότητες μαθήματος
 Αρχές λειτουργίας υπολογιστών
• Υλικό (hardware) – Αρχιτεκτονική Η/Υ
 Αλγόριθμοι – Χειρισμός δεδομένων
• Δομές δεδομένων – Λογισμικό (software)

• Βιβλία για το μάθημα


• Behrouz A. Forouzan, “Εισαγωγή στην Επιστήμη
των Υπολογιστών”,
Υπολογιστών ΚΛΕΙΔΑΡΙΘΜΟΣ, 2015.
• Καλαφατούδης, Δροσίτης, Κοίλιας, "Εισαγωγή στις
Τεχνολογίες Πληροφορίας και Επικοινωνίας",
Επικοινωνίας 1η
έκδοση, ΕΚΔΟΣΕΙΣ ΝΕΩΝ ΤΕΧΝΟΛΟΓΙΩΝ,
2011.
Ο «υπολογιστής»
• Εισαγωγή

πρόγραμμα
ελέγχου

δεδομένα δεδομένα
εισόδου σύστημα εξόδου
; επεξεργασίας

Τι σχέση έχει...

το facebook

το gaming

ένα αυτοκίνητο • Ο «Υπολογιστής» μετασχηματίζει δεδομένα
...με το διπλανό
σχήμα;
εισόδου σε δεδομένα εξόδου,
εξόδου βάσει ενός
προγράμματος ελέγχου

Η «μνήμη»
• Εισαγωγή πρόγραμμα
ελέγχου
δεδομένα
«μνήμη»
εισόδου
επεξεργασία αποθήκευση
δεδομένων δεδομένων
i
δεδομένα
Στην εξόδου
πραγματικότητα
η «μνήμη» είναι • Τα δεδομένα εισόδου και εξόδου αποθηκεύονται
μια ιεραρχία στη «μνήμη»
υποσυστημάτων
(κρυφές μνήμες,
 Μπορούν να χρησιμοποιηθούν σε επόμενη φάση
κύρια μνήμη) επεξεργασίας
 Και το πρόγραμμα ελέγχου πού βρίσκεται
αποθηκευμένο;
Το μοντέλο “von Neumann”
• Εισαγωγή

πρόγραμμα
ελέγχου
μονάδα
ελέγχου

«Μνήμη»
! δεδομένα
εισόδου
επεξεργασία
Η καινοτομία (την δεδομένων
εποχή των πρώτων
υπολογιστών): το δεδομένα
πρόγραμμα εξόδου
ελέγχου είναι
δεδομένα!
• «Υπολογιστής αποθηκευμένου προγράμματος»
 Το πρόγραμμα ελέγχου (εντολές) αποθηκεύεται μαζί με
τα δεδομένα στη μνήμη

Το πρόγραμμα ελέγχου
• Εισαγωγή • Είναι ένα σύνολο «οδηγιών»
 Περιγράφει το είδος της επεξεργασίας των
δεδομένων εισόδου
!  Κάθε «οδηγία» ονομάζεται εντολή μηχανής
Η εντολή μηχανής
διαφέρει από τις • εκτελεί μια μικρή, αυτοτελή λειτουργία
εντολές υψηλού • το πρόγραμμα (ελέγχου) αποτελείται από πολλές
επιπέδου των
γλωσσών εντολές μηχανής
προγραμματισμού

Κάθε εντολή μιας


γλώσσας
προγραμματισμού
μεταφράζεται
(μεταγλωττίζεται)
σε πολλές εντολές
μηχανής!
Εντολή Μηχανής
• Εισαγωγή • Machine Instruction
 Μικρή λειτουργία χειρισμού δεδομένων
• μεταφορά δεδομένων από/προς μνήμη
• αριθμητική πράξη μεταξύ δύο αριθμών
• έλεγχος αν ένας αριθμός είναι μηδέν...
; 
• κ.ο.κ
Οι εντολές μηχανής εκτελούνται σειριακά
Θα μπορούσε να • Η μια μετά την άλλη – από την επόμενη θέση
υλοποιηθεί ένα μνήμης
χρήσιμο
πρόγραμμα εάν
 Εξαίρεση: εντολές διακλάδωσης
δεν υπήρχαν • Εάν μια συνθήκη είναι αληθής, τότε μεταφορά της
εντολές εκτέλεσης σε διαφορετικό σημείο του
διακλάδωσης; προγράμματος (όχι στην επόμενη θέση μνήμης)
• branch (ή jump)

Χρονισμός υπολογιστικού συστήματος


• Εισαγωγή υπολογιστικό σύστημα
πρόγραμμα
ρολόι ελέγχου
μονάδα
(clock) ελέγχου

«Μνήμη»
! δεδομένα
εισόδου
επεξεργασία
Το σχήμα δεδομένων
συμπληρώνεται με
τις μονάδες δεδομένα
εισόδου-εξόδου, εξόδου
για επικοινωνία με
τον έξω κόσμο
• Χρονισμός μέσω ενός σήματος ρολογιού (clock)
 Ο «παλμός» του υπολογιστικού συστήματος
 Καθορίζει την έναρξη της επόμενης λειτουργίας
Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ)
• Εισαγωγή Central Processing Unit (CPU)
πρόγραμμα
ρολόι ελέγχου
μονάδα
(clock) ελέγχου

; δεδομένα
εισόδου
«μονοπάτι»
Τι σημαίνει όταν δεδομένων
λέμε ότι ένας
επεξεργαστής είναι δεδομένα
32-bit ή 64-bit; εξόδου
Πώς σχετίζεται με  «Μονοπάτι» δεδομένων (datapath)
το διπλανό σχήμα;
• Εκτέλεση πράξεων
 Μονάδα ελέγχου (control unit)
• Επιλογή πράξης σύμφωνα με κάθε εντολή

Τι περιέχει το μονοπάτι δεδομένων


• Εισαγωγή Central Processing Unit (CPU)
πρόγραμμα
μονάδα
ρολόι ελέγχου
ελέγχου
(clock)
δεδομένα
εισόδου
καταχωρητές
i
Οι καταχωρητές δεδομένα
παρέχουν τα εξόδου
δεδομένα εισόδου εκτέλεση
κατά την εκτέλεση πράξεων
των πράξεων.
Στους  Καταχωρητές (registers)
καταχωρητές
αποθηκεύονται • Θέσεις προσωρινής αποθήκευσης, γρήγορης
επίσης τα προσπέλασης (περιορισμένος αριθμός: 16, 32 ή 64)
αποτελέσματα των
πράξεων.
 Μονάδες εκτέλεσης αριθμητικών (και άλλων) πράξεων
Εκτέλεση εντολών: ο κύκλος μηχανής
2. Decode: Αποκωδικοποίησε
την εντολή (προετοίμασε τα 1. Fetch: Φέρε την
σήματα ελέγχου και τις πηγές επόμενη προς εκτέλεση
των δεδομένων) μονάδα εντολή από τη μνήμη
ρολόι
ελέγχου
(clock)

4. Store: Αποθήκευσεκαταχωρητές
τα αποτελέσματα (εάν δεδομένα
απαιτείται) εισόδου

; δεδομένα
3. Execute: Εκτέλεσε
Και η μεταφορά την απαιτούμενηεξόδου
δεδομένων πράξη/λειτουργία
από/προς μνήμη;
Σε ποια φάση
εκτελείται;

Σε ποια μορφή αποθηκεύονται τα δεδομένα;


• Εισαγωγή • Στη μνήμη και στους καταχωρητές
• Στις μονάδες εκτέλεσης πράξεων

• Απάντηση: σε δυαδική μορφή


 Ακολουθίες από 0 και 1
• ή αλλιώς ON/OFF, Αληθές/Ψευδές κ.ο.κ.
• Ισχύει για κάθε είδους δεδομένα
• Ακόμα και για μη αριθμητικά δεδομένα: κείμενο,
εικόνα, ήχο...
• Και οι εντολές του υπολογιστή επίσης!

• Γιατί σε δυαδική μορφή;


Η τρέχουσα τεχνολογία των υπολογιστών
• Εισαγωγή • Ηλεκτρονική
• Τεχνολογία
 Τα στοιχεία που συγκροτούν τους υπολογιστές
λειτουργούν με στάθμες τάσης ή φορά
ρεύματος
 Υλοποίηση με ημιαγωγούς
• Ψηφιακή
 Οι επιτρεπόμενες τιμές ανήκουν σε διακριτές
στάθμες
• Δυαδική
 Δύο στάθμες, ON ή OFF, ‘0’ ή ‘1’
 Τα στοιχεία που συγκροτούν τους υπολογιστές
υλοποιούν διακοπτικές λειτουργίες (ανοικτό-
κλειστό)

Γιατί ψηφιακή τεχνολογία;


• Εισαγωγή
• Τεχνολογία
Ηλεκτρονικός
Θόρυβος

ψηφιακό ψηφιακό
; στοιχείο στοιχείο

Τι θα συνέβαινε
μεταξύ δύο
αναλογικών
• Δυνατότητα αναγέννησης του αρχικού σήματος
τμημάτων (με  Όσο η παραμόρφωση δεν υπερβαίνει κάποια όρια
συνεχές πεδίο
τιμών);
 Όσο λιγότερες στάθμες επιτρέπονται, τόσο τα επιτρεπτά
όρια διακύμανσης είναι μεγαλύτερα
• Πλεονέκτημα της δυαδικής τεχνολογίας
Στάθμες ψηφιακού σήματος
• Εισαγωγή • Δυαδική λογική
• Τεχνολογία
 2 στάθμες
• V+ και V- (π.χ. 5V και 0V)
• «Τροφοδοσία» και «γείωση»
• Αναπαριστούν το λογικό 1 και 0 αντίστοιχα
 Κυματομορφές
• Η στάθμη τάσης σε ένα σημείο του κυκλώματος
στην εξέλιξη του χρόνου
i V+
Στα πρώτα
ολοκληρωμένα
λογικά κυκλώματα
η τάση
τροφοδοσίας ήταν
>15V ενώ σήμερα
βρίσκεται γύρω V-
στο 1V ιδανικά T
στην πραγματικότητα...

Γιατί δυαδική τεχνολογία;


• Εισαγωγή πηγή πύλη (gate)
καταβόθρα
• Τεχνολογία (source)
(drain)
n+ n+

p-

υπόστρωμα κανάλι
i (body) (channel)
Το τρανζίστορ
αυτό είναι τύπου • Το τρανζίστορ MOSFET
NMOS. Υπάρχει
και το
 Ο μικροσκοπικός διακόπτης των σύγχρονων
συμπληρωματικό κυκλωμάτων
PMOS.  Η θεωρία λειτουργίας του είναι γνωστή από το
1925
 ...αλλά τα πρώτα λειτουργικά κυκλώματα
κατασκευάστηκαν τη δεκαετία του 60
Ημιαγωγοί – σε δύο διαφάνειες!
• Εισαγωγή • Ημιαγωγοί
• Τεχνολογία
 Στοιχεία με κρυσταλλική δομή (πυρίτιο,
γερμάνιο...)
• Μεταξύ αγωγών και μονωτών
• Σε θερμοκρασία δωματίου και καθαρή μορφή: όχι
καλοί αγωγοί του ηλεκτρισμού
 Προσμίξεις με “ακάθαρτα” υλικά (impurities)
• “Doping”
• Προσθήκη ελεύθερων ηλεκτρονίων (donors)
– n-type
• Προσθήκη “οπών” (acceptors)
– απουσία ηλεκτρονίων
– p-type
• Τα χαρακτηριστικά αγωγιμότητας αλλάζουν!

Ημιαγωγοί – σε δύο διαφάνειες!


• Εισαγωγή • Το ενδιαφέρον σημείο (επαφής)
• Τεχνολογία
 Όταν ενώνονται ημιαγωγοί n-type και p-type
• Στο σημείο επαφής: κατάσταση ισορροπίας – μετά
+ - από την αρχική μετακίνηση ηλεκτρονίων στο p-
n + - p
+ - type, περαιτέρω ηλεκτρόνια απωθούνται

• Με ορθή πόλωση,
πόλωση και άλλα ηλεκτρόνια μπορούν να
+ - υπερπηδήσουν το εμπόδιο και να φτάσουν στο p-
- n - + -
+ -
p
+ type, οπότε παρατηρείται ροή ρεύματος

• Με ανάστροφη πόλωση,
πόλωση νέα ηλεκτρόνια δεν έχουν
+ - την ευκαιρία να φτάσουν στο p-type, οπότε δεν ρέει
n - + - p -
+ + - ρεύμα μέσω της επαφής
– την ανάστροφη πόλωση εκμεταλλεύονται τα
ηλεκτρονικά ψηφιακά κυκλώματα των
υπολογιστών
Λειτουργία του τρανζίστορ MOS(FET)
• Εισαγωγή
V+
• Τεχνολογία

n n
-
p

V-

V+

i
Το τρανζίστορ n n
σήμερα είναι αγώγιμο κανάλι
διαφορετικό (με p
πτερύγια – fins)
για να λειτουργεί V-
σωστά σε πολύ
μικρές διαστάσεις!

Η συρρίκνωση του τρανζίστορ


• Εισαγωγή
• Τεχνολογία
• Ένας σύγχρονος επεξεργαστής μπορεί να περιέχει
από 1 έως 30+ δις τρανζίστορ σε μία επιφάνεια
280-400mm2 (συχνά σε πολλαπλά επίπεδα)
• Πλεονεκτήματα
 Ταχύτερη λειτουργία
• Πιο γρήγοροι χρόνοι ON-OFF
 Μικρότερη κατανάλωση ενέργειας
• Για τον ίδιο αριθμό τρανζίστορ!
 Μεγαλύτερη ολοκλήρωση
• Μείωση κόστους παραγωγής και αύξηση λειτουργικότητας
• Τρέχουσα εμπορική τεχνολογία:
 «7nm» (όρος marketing, παλαιότερα συμβόλιζε το
εύρος της πύλης του τρανζίστορ)
 Περίπου 100εκ. τρανζίστορ/mm2
Το (μικρο)τσιπ
• Εισαγωγή
• Τεχνολογία
• Επίσημος όρος: “Ολοκληρωμένο κύκλωμα”
 Integrated Circuit (IC)
 “micro(chip)”
 όλα τα στοιχεία συνδυάζονται στο ίδιο υπόστρωμα
πυριτίου.
• Τρανζίστορ , αγωγοί
• Πυκνωτές, αντιστάσεις

Intel P4 processor
microchip (2005)
169 εκ. τρανζίστορ
90nm

• “Νόμος” του Moore (εμπειρικός)


 ο αριθμός των τρανζίστορ ανά ολοκληρωμένο κύκλωμα
διπλασιάζεται κάθε 1,5-2 χρόνια

Κατασκευή ολοκληρωμένων κυκλωμάτων


• Εισαγωγή
• Τεχνολογία • Γραμμές παραγωγής
 Φωτολιθογραφία με μάσκες
• Επικάλυψη με ειδικό φωτοανθεκτικό υλικό (photoresist)
• Έκθεση σε υπεριώδες φως (με το ανάλογο μήκος
κύματος)
• Μέσω μιας μάσκας που επιλέγει τις περιοχές
επεξεργασίας
• Απομάκρυνση photresist από επιλεγμένες περιοχές,
αφήνοντας εκτεθειμένα τα μέρη προς επεξεργασία
i  Διεργασίες στα εκτεθειμένα μέρη
Λόγω της • Οξείδωση, απόξεση, απόθεση μετάλλου, εμφύτευση
απαιτούμενης ιόντων...
ακρίβειας, μια
γραμμή
• Ταυτόχρονα σε εκατομμύρια τρανζίστορ!
παραγωγής  Επανάληψη
κοστίζει δισ. $
• Από το βήμα της μάσκας
Η αρχική επιφάνεια
• Εισαγωγή
• Τεχνολογία

SiO2 - μονωτής
Ένα λεπτό επίπεδο SiO2
σχηματίζεται με
οξείδωση σε 1000οC
p-epi – πολύ
καθαρό πυρίτιο

υπόστρωμα πυριτίου

Εφαρμογή photoresist και μάσκας


• Εισαγωγή
• Τεχνολογία μάσκα φωτολιθογραφίας
εκτεθειμένο τμήμα

Η μάσκα της
φωτολιθογραφίας είναι επικάλυψη με photoresist
διαφορετική ανά βήμα
επεξεργασίας (ανάλογα
με το επιθυμητό σχήμα).
Εφαρμογή υπεριώδους ακτινοβολίας
• Εισαγωγή
• Τεχνολογία

Στα μέρη που μένουν


εκτεθειμένα, μετά την
υπεριώδη ακτινοβολία το
photoresist γίνεται
εύπλαστο. Στη συνέχεια
αφαιρείται με χημικό
τρόπο, αφήνοντας
εκτεθειμένα μέρη για το
επόμενο βήμα
κατεργασίας.

Μετά την απόξεση


• Εισαγωγή
• Τεχνολογία

Στα μέρη που μένουν


εκτεθειμένα εφαρμόζεται
διαδικασία απόξεσης με
τη βοήθεια οξέων. Στη
συνέχεια η επιφάνεια
καθαρίζεται με
απιονισμένο νερό και
στεγνώνει με άζωτο.
Απόθεση νέων στρωμάτων SiO2
• Εισαγωγή
• Τεχνολογία
SiO2 – μονωτής για το
διαχωρισμό των τρανζίστορ
Πριν το βήμα αυτό έχει
προηγηθεί πάλι η
εφαρμογή photoresist και
μάσκας! Στο εξής η
εφαρμογή μάσκας θα
εννοείται πριν κάθε νέο
βήμα.

Doping – Υπόστρωμα τρανζίστορ


• Εισαγωγή
• Τεχνολογία
εμφύτευση ιόντων

Μέσω της εμφύτευσης με


τη βοήθεια μιας δέσμης
ιόντων, αλλάζει ο τύπος
του ημιαγωγού της
περιοχής κάτω από το
λεπτό στρώμα οξειδίου
σχηματίζοντας το
υπόστρωμα των
τρανζίστορ NMOS
(doping)
υπόστρωμα p
Doping – Υπόστρωμα τρανζίστορ
• Εισαγωγή
• Τεχνολογία
εμφύτευση ιόντων

Μέσω της εμφύτευσης με


τη βοήθεια μιας δέσμης
ιόντων, αλλάζει ο τύπος
του ημιαγωγού της
περιοχής κάτω από το
λεπτό στρώμα οξειδίου
σχηματίζοντας το
υπόστρωμα των
τρανζίστορ PMOS υπόστρωμα n
(doping)
υπόστρωμα p

Εναπόθεση polysilicon
• Εισαγωγή
• Τεχνολογία
polysilicon

Ένα σχήμα polysilicon


εναποτίθεται χημικά με
την κυκλοφορία αερίου
μίγματος πάνω από την
επιφάνεια πυριτίου
θερμαινόμενη στους
650οC. Το σχήμα
σχηματίζει τις πύλες των
τρανζίστορ και τη μεταξύ
τους διασύνδεση. Θα
ακολουθήσει doping για
να αυξηθεί η
αγωγιμότητά του.
Doping πηγής και καταβόθρας τρανζίστορ
• Εισαγωγή
• Τεχνολογία

Στη συνέχεια
σχηματίζονται οι πηγές
και καταβόθρες των
τρανζίστορ ανάλογα με
τον τύπο τους (NMOS ή n
PMOS) με εμφύτευση n
ιόντων. Δημιουργία των
σημείων επαφής για τους
αγωγούς διασύνδεσης. υπόστρωμα n

υπόστρωμα p

Doping πηγής και καταβόθρας τρανζίστορ


• Εισαγωγή
• Τεχνολογία

Στη συνέχεια
σχηματίζονται οι πηγές
και καταβόθρες των p
τρανζίστορ ανάλογα με p
τον τύπο τους (NMOS ή n
PMOS) με εμφύτευση n
ιόντων. Δημιουργία των
σημείων επαφής για τους
αγωγούς διασύνδεσης. υπόστρωμα n

υπόστρωμα p
Πρώτο επίπεδο μεταλικών συνδέσεων
• Εισαγωγή
• Τεχνολογία
μεταλλικές επαφές

Τα επίπεδα μετάλλου
δημιουργούνται με
εξάχνωση του p
μεταλλικού υλικού σε p
κενό υπό την επίδραση n
δέσμης ηλεκτρονίων. n

υπόστρωμα n

υπόστρωμα p

Διαδικασία παραγωγής
• Εισαγωγή • Στην πραγματικότητα
• Τεχνολογία
 Οι δημιουργούμενες επιφάνειες δεν είναι
απόλυτα επίπεδες – ούτε έχουν κάθετες γωνίες
• τα χαρακτηριστικά είναι πιο ακανόνιστα
 Οι αναλογίες διαστάσεων είναι διαφορετικές
• ειδικά μελετημένες για την επιθυμητή ροή
ηλεκτρονίων
 Τα επίπεδα μετάλλου είναι πολύ περισσότερα
• καταλαμβάνουν μεγάλο μέρος του ολοκληρωμένου
κυκλώματος
 Τα βήματα κατασκευής είναι πολύ
περισσότερα (40+)
• από την απλουστευμένη εικόνα που είδαμε
• οι δομές που κατασκευάζονται είναι
πολυπλοκότερες
Πράξεις με δυαδικούς αριθμούς
(λογικές πράξεις)

Εκτέλεση πράξεων
• Εισαγωγή υπολογιστικό σύστημα
πρόγραμμα
ρολόι ελέγχου
μονάδα
(clock) ελέγχου

“Μνήμη”
δεδομένα
τμήμα εισόδου
επεξεργασίας
δεδομένων
δεδομένα
; εξόδου
• Επεξεργασία: ψηφιακά δυαδικά κυκλώματα
Ποιες κατηγορίες  Εκτελούν πράξεις μεταξύ σειρών 0 και 1…
πράξεων;
 …οι οποίες αναπαριστούν δυαδικούς αριθμούς
Πράξεις με δυαδικούς αριθμούς
• Εισαγωγή
• Ο υπολογιστής μπορεί να εκτελέσει
 Λογικές πράξεις (δυαδικής λογικής)
 Αριθμητικές πράξεις
• Οι πράξεις εκτελούνται
 Σε ομάδες bits: «δυαδικούς αριθμούς»

Ψηφιακά Ηλεκτρονικά και Δυαδική Λογική


• Εισαγωγή
• Δυαδική λογική
• Η δυαδική λογική ταιριάζει με την
τεχνολογία του τρανζίστορ
 2 καταστάσεις: ON-OFF, 1-0
 Ψηφιακά ηλεκτρονικά (2 στάθμες)
• Δυαδική άλγεβρα Boole
 Λογική άλγεβρα
 Συσχέτιση με διακοπτικά κυκλώματα
• Η εργασία του Shannon (1938)

C.E.Shannon
Ποσότητες Δυαδικής Λογικής
• Εισαγωγή
• Δυαδική λογική
• Στη δυαδική λογική άλγεβρα
 Υπάρχουν 2 «ποσότητες» (σύμβολα):
• Αληθές ή 1 ή ΝΑΙ
• Ψευδές ή 0 ή ΟΧΙ
 Ένα δυαδικό ψηφίο (bit)
bit έχει τιμή 0 ή 1
• Στα ψηφιακά ηλεκτρονικά κυκλώματα:
 0 ή «χαμηλή τάση» ή «η μια φορά ρεύματος»
 1 ή «υψηλή τάση» ή «η άλλη φορά ρεύματος»

 Ανάλογα με την τεχνολογία, ένα bit


αναπαρίσταται με αντίστοιχη κατάσταση σε
ένα ηλεκτρονικό κύκλωμα

Bits & Bytes


• Εισαγωγή
• Δυαδική λογική • Bit
 H μικρότερη λογική ποσότητα - η μικρότερη
μονάδα δεδομένων - 0 ή 1.
• Byte
 Ομάδα 8 bits
 Η ελάχιστη ποσότητα που μπορεί να χειριστεί
ο υπολογιστής κατά την εκτέλεση μιας πράξης
 Μια σειρά από bytes αναπαριστά έναν δυαδικό
«αριθμό»
• Αποθήκευση: σε καταχωρητές ή στη μνήμη
Η ανατομία ενός byte
• Εισαγωγή
το περισσότερο
• Δυαδική λογική το λιγότε
σημαντικό bit σημαντι
bit

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

• Γιατί είναι αυτή η σειρά των bits;


 Γιατί το λιγότερο σημαντικό bit είναι δεξιά και
το περισσότερο σημαντικό αριστερά;
 Θα φανεί όταν μιλήσουμε για αριθμητικές
πράξεις
 Προς το παρόν, το byte είναι απλώς μια
οκτάδα bits

Πράξεις Δυαδικής Λογικής


• Εισαγωγή
• Δυαδική λογική
• Στη δυαδική λογική άλγεβρα
 Καθορίζονται λογικές πράξεις μεταξύ των
λογικών ποσοτήτων 0 και 1 (bits)
• Στα ψηφιακά ηλεκτρονικά κυκλώματα:
 Κύκλωμα δέχεται ως είσοδο την ηλεκτρική
αναπαράσταση των 0 και 1
 Και παράγει στην έξοδό του την ηλεκτρική
αναπαράσταση του αποτελέσματος μιας
λογικής πράξης
 Το κύκλωμα υλοποίησης της λογικής πράξης
ονομάζεται πύλη (gate).
Λογικές πράξεις με bits
• Εισαγωγή
• Δυαδική λογική

είσοδος μονομελής έξοδος


(1 bit) πράξη (1 bit)
(unary)

είσοδος Α
(1 bit) διμελής
έξοδος
πράξη
είσοδος Β (binary) (1 bit)

(1 bit)

Λογικές πράξεις με bits


• Εισαγωγή
• Δυαδική λογική
• Μονομελής λογική πράξη
 NOT (αντιστροφή)
• Διμελείς λογικές πράξεις
 AND (λογικό-ΚΑΙ)
 OR (λογικό-Η)
 XOR (αποκλειστικό-Η)
 κ.λ.π.
Βασικές Λογικές Πράξεις
• Εισαγωγή
• Δυαδική λογική
• Αντιστροφή (NOT)
 Αντιστροφή ενός bit

είσοδος Α
έξοδος ΝΟΤ (Α)
ή Α' ή Α
A Y
πιθανές 0 1 αντίστοιχες
τιμές τιμές εξόδου
εισόδου 1 0
Πίνακας Αλήθειας

Πώς υλοποιείται μια πύλη NOT;


• Εισαγωγή
• Δυαδική λογική
• Από το προηγούμενο μάθημα:
πύλη (gate) καταβόθρα

πηγή καταβόθρα
πύλη
(source) (drain)

πηγή
PMOS:
PMOS άγει n n σύμβολο
όταν στην πύλη
p
εφαρμόζεται ‘0’
NMOS:
NMOS άγει όταν
υπόστρωμα κανάλι στην πύλη
(body) (channel) εφαρμόζεται ‘1’

Το τρανζίστορ NMOS
Από το προηγούμενο μάθημα: ποια η
λειτουργία του;
• Εισαγωγή
• Δυαδική Λογική V+ (‘1’)

A Υ

V- (‘0’)

Η πύλη NOT (αντιστροφέας)


• Εισαγωγή
• Δυαδική Λογική V+ (‘1’)

A Y
0 1 A Υ = NOT A

1 0
V- (‘0’)

A NOT A

ο κύκλος συμβολίζει την αντιστροφή

σύμβολο πύλης NOT


Βασικές Λογικές Πράξεις
• Εισαγωγή
• Δυαδική Λογική
• Λογικό ΚΑΙ (AND)
 το αποτέλεσμα είναι 1, μόνο όταν και το Χ και
το Υ είναι 1
 0 AND X = X AND 0 = 0
 1 AND X = X AND 1 = X
Πίνακας Αλήθειας

X Y AND
0 0 0 X AND Y
X
ή
0 1 0 Y X·Y
1 0 0
σύμβολο πύλης AND
1 1 1

Παράδειγμα υλοποίησης: η πύλη NAND


V+ (‘1’)
• Εισαγωγή
• Δυαδική Λογική
A B Y
A B
0 0 1
Υ = (AB)
0 1 1
A
1 0 1
1 1 0
B
! Πίνακας Αλήθειας NAND
NAND = NOT- V- (‘0’)
AND
A
Υλοποίηση πύλης
AND: χρησιμοποι- Β
ώντας μια πύλη
NAND και μια Υ
πύλη NOT
σύμβολο πύλης NAND
Φραγή AND: για να θέσουμε σήμα στο 0
• Εισαγωγή
• Δυαδική Λογική
data in

data out
AND

control
control = 0: η έξοδος data_out είναι πάντα 0
control = 1: η έξοδος data_out ισούται με το data_in
data in

control
0 AND X = 0
1 AND X = X data out

Βασικές Λογικές Πράξεις


• Εισαγωγή
• Δυαδική Λογική
• Λογικό Ή (OR)
 το αποτέλεσμα είναι 1, όταν το Χ ή το Υ ή και
τα δύο είναι 1
 1 OR X = X OR 1 = 1
 0 OR X = X OR 0 = X

Πίνακας Αλήθειας

X Y OR
0 0 0 X X OR Y
ή
Y X+Y
0 1 1
1 0 1 σύμβολο πύλης OR
1 1 1
Παράδειγμα υλοποίησης: η πύλη NOR
• Εισαγωγή
V+ (‘1’)
• Δυαδική Λογική

A
A B Y
0 0 1 B
0 1 0 (A+B)
1 0 0 A B
! 1 1 0
NOR = NOT-OR
V- (‘0’)
Πίνακας Αλήθειας NOR
Υλοποίηση πύλης
OR: χρησιμοποι-
ώντας μια πύλη
NOR και μια πύλη
NOT
σύμβολο πύλης NOR

Συγκέντρωση σημάτων με OR
• Εισαγωγή a
• Δυαδική Λογική
y
OR

b
a
0 OR X = X
1 OR X = 1
b

Προσοχή! y
Ποτέ δεν
συνδέουμε
εξόδους
πυλών μαζί!
• Θα πρέπει ανά πάσα στιγμή όλα τα σήματα
πλην ενός να είναι 0!
Βασικές Λογικές Πράξεις
• Εισαγωγή
• Δυαδική Λογική
• Αποκλειστικό Ή (XOR)
 το αποτέλεσμα είναι 1, όταν μόνο το Χ ή μόνο
το Υ είναι 1
 1 XOR X = X XOR 1 = NOT X
 0 XOR X = X XOR 0 = X
 X XOR Y = A·B' + A'·B
Πίνακας Αλήθειας
X Y XOR
0 0 0 X X XOR Y
ή
0 1 1 Y X+Y

1 0 1 σύμβολο πύλης XOR


1 1 0

Βασικές Λογικές Πράξεις


• Εισαγωγή
• Δυαδική Λογική
• XNOR: Η συμπληρωματική συνάρτηση
της XOR
 το αποτέλεσμα είναι 1, όταν τα Χ και Υ είναι
όμοια
 συνάρτηση «ισοδυναμίας»
Πίνακας Αλήθειας

X Y XΝOR
! 0 0 1
Υλοποίηση πύλης
XNOR:
χρησιμοποιώντας 0 1 0
συνδυασμούς
άλλων πυλών 1 0 0
X xnor Y = 1 1 1
XY+X'Y'
Λογικές πράξεις σε ομάδες bits
• Λογικές Πράξεις
• Ο υπολογιστής μπορεί να εφαρμόσει
λογικές πράξεις στα δεδομένα μας
 Δεδομένα = σειρές από 0 και 1
 Όχι όμως σε μεμονωμένα bits!!
bits
 Αλλά: σε ομάδες των 8, 16, 32 ή 64 bits
ταυτόχρονα
An .. Ai .. A2 A1 A0 op (=AND, OR,XOR)
Bn .. Bi .. B2 B1 B0
Yn .. Yi .. Y2 Y1 Y0

Yi = Ai op Bi

Ο τελεστής NOT σε δυαδικούς αριθμούς


• Λογικές πράξεις

1 0
0 1
… …
1 0

! 10011000 NOT
Η “μέθοδος” του
υλικού (hardware): 01100111
πολλαπλές ίδιες
μονάδες εκτελούν
την ίδια λειτουργία
παράλληλα
• H έξοδος Yi εξαρτάται μόνο από την είσοδο Ai
Ο τελεστής AND σε δυαδικούς αριθμούς
• Λογικές πράξεις 1… 0 0

0
0

0

0… 0 1

10011000 AND
00110101
00010000

Ο τελεστής OR σε δυαδικούς αριθμούς


• Λογικές πράξεις 1… 0 0

1
0

1

0… 0 1

10011000 OR
00110101
10111101
Μάσκες
• Λογικές Πράξεις
• Για να αλλάξουμε την τιμή μεμονωμένων
bits μέσα σε μια ομάδα
 Για να θέσουμε επιλεγμένα bits σε 1
 Για να θέσουμε επιλεγμένα bits σε 0
 Για να αντιστρέψουμε επιλεγμένα bits
 Χωρίς να επηρεάζουμε τα υπόλοιπα!
• αυτά διατηρούν την τιμή τους, είτε 0 είτε 1

• Μάσκα: σειρά bits, επιλεγμένη ώστε:


Bits Εισόδου op Μάσκα → Νέα ομάδα bits
 op = AND, OR ή XOR
 Νέα ομάδα περιέχει το επιθυμητό αποτέλεσμα

Μάσκα AND: για να θέσουμε bits στο 0


• Λογικές πράξεις
• Ζητούμενο: σε λέξη των 8 bits να τεθούν
σε 0 τα 3 λιγότερο σημαντικά bits.
Λέξη: 1 0 0 1 1 0 1 0 AND
Μάσκα: 11111000
Νέα: 10011000

• Η AND μάσκα περιέχει:


 0 στα bits που θα γίνουν 0
0 AND X = 0  1 στα bits που θα παραμείνουν ως έχουν
1 AND X = X
Μάσκα OR: για να θέσουμε bits στο 1
• Λογικές πράξεις
• Ζητούμενο: σε λέξη των 8 bits να τεθούν
σε 1 τα bits 0,4 και 5.
Λέξη: 1 0 0 1 1 0 0 0 OR
Μάσκα: 00110001
Νέα: 10111001

• Η OR μάσκα περιέχει:
 1 στα bits που θα γίνουν 1
0 OR X = X  0 στα bits που θα παραμείνουν ως έχουν
1 OR X = 1

Μάσκα XOR: για να αντιστρέψουμε bits


• Λογικές πράξεις
• Ζητούμενο: σε λέξη των 8 bits να
αντιστραφούν τα bits 3,6 και 7.
Λέξη: 1 0 0 1 1 0 0 0 XOR
Μάσκα: 11001000
Νέα: 01010000

• Η XOR μάσκα περιέχει:


 1 στα bits που θα αντιστραφούν
 0 στα bits που θα παραμείνουν ως έχουν
Ολίσθηση (Shift)
• Λογικές πράξεις
• Ολίσθηση
a b c d e f g h a b c d e f g h

b c d e f g h 0 0 a b c d e f g
αριστερή ολίσθηση δεξιά ολίσθηση

Πράξεις με δυαδικούς αριθμούς


(αριθμητικές πράξεις)
Πράξεις με δυαδικούς αριθμούς
• Δυαδικοί
Αριθμοί • Ο υπολογιστής μπορεί να εκτελέσει
 Λογικές πράξεις
 Αριθμητικές πράξεις
• Οι πράξεις εκτελούνται
 Σε ομάδες bits (bytes ή πολλαπλάσιά τους)

Το Byte ως δυαδικός αριθμός


• Δυαδικοί
αριθμοί 128 64 32 16 8 4 2 1
27 26 25 24 23 22 21 20
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
το λιγότε
το περισσότερο σημαντικ
σημαντικό bit bit

1 1 1 1 0 0 1 1
! 1x128 1x64 1x32 1x16 0x8 0x4 1x2 1x1
Εάν ο αριθμός 128 + 64 + 32 + 16 + 0 + 0 + 2 + 1 =
διαθέτει
περισσότερα bits, 243 (δεκαδικό)
χρησιμοποιούμε
μεγαλύτερες  Μετατροπή από το δυαδικό στο δεκαδικό
δυνάμεις του 2 σύστημα
Μετατροπή δεκαδικού σε δυαδικό
• Δυαδικοί
αριθμοί
243 2
1 121 2
το λιγότερο 1 60 2
σημαντικό
bit 0 30 2
0 15 2
1 7 2
! 1 3 2
Προσοχή στη θέση
του περισσότερο 243 (δεκαδικό) 1 1
σημαντικού bit! = 11110011

το περισσότερ
σημαντικό bit

Δεκαεξαδικό Σύστημα
• Δυαδικοί
αριθμοί • 16 ψηφία
 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
 Αντιστοιχία με τους δεκαδικούς 0 έως 15
• Σε δυνάμεις του 16
 16n ...164 163 162 161 160
 Π.χ. 16F(hex) = 1x162 + 6x161 + 15x160
 = 256 + 96 + 15 = 367 (δεκαδικό)
• Χρήσιμο μόνο ως «συντομογραφία»
δυαδικών αριθμών
Δεκαεξαδικό Σύστημα
• Δυαδικοί
αριθμοί • Κάθε 4 δυαδικά ψηφία αντιστοιχούν σε
ένα δεκαεξαδικό ψηφίο
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F

Παράδειγμα στο δεκαεξαδικό σύστημα


• Δυαδικοί
αριθμοί
 Παράδειγμα: 1100100110010100
1100 1001 1001 0100
C 9 9 4 = C994(hex)

 Παράδειγμα: 10000101011110
0010 0001 0101 1110
2 1 5 E = 215E (hex)
• Συμπλήρωση με 0 στα αριστερά
• Δεν αλλάζει τον αριθμό, όπως ακριβώς και στο
δεκαδικό σύστημα
Δεκαεξαδικό Σύστημα
• Δυαδικοί
αριθμοί • Κάθε 4 δυαδικά ψηφία αντιστοιχούν σε
ένα δεκαεξαδικό ψηφίο
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F

Φυσικοί αριθμοί (χωρίς πρόσημο)


• Δυαδικοί
αριθμοί 0000 0
• Φυσικοί αριθμοί Με κίτρινο φαίνεται 0001 1
ο ελάχιστος αριθμός 0010 2
bits που απαιτείται 0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9

• Με n bits περιγράφονται ….. …

 Οι φυσικοί αριθμοί από 0 έως και 2n-1


Χρήση των φυσικών αριθμών
• Δυαδικοί
αριθμοί • Για αναπαράσταση
• Φυσικοί αριθμοί
 Διαφορετικών «πραγμάτων»
 Συνήθως χωρίς αριθμητική έννοια
• Απαρίθμηση
 Παρέχοντας μοναδικούς αναγνωριστικούς
αριθμούς
 Παραδείγματα
• Οι ξεχωριστές διευθύνσεις μνήμης
• Οι χαρακτήρες σε ένα αλφάβητο

• Ξανά: με n bits απαριθμούνται έως και 2n


διαφορετικά «πράγματα»

Ακέραιοι αριθμοί (με πρόσημο - signed)


• Δυαδικοί
αριθμοί • Πώς θα αναπαρασταθούν οι αρνητικοί;
αρνητικοί
• Φυσικοί αριθμοί  Για να γίνονται εύκολα οι πράξεις
• Ακέραιοι
• Όχι καλή ιδέα:
 Ξεχωριστό bit πρόσημου
Αριθμός (Ν bits)


Μέγεθος (Ν-1 bits)
(0/1)
Πρόσημο (1 bit)

 Διάστημα τιμών για αριθμούς με n bits


-(2n-1-1) έως +(2n-1-1) (για n=8, –127 ... +127)
• ένα χρήσιμο bit λιγότερο
• δυσκολία στις πράξεις
• 2 αναπαραστάσεις του 0;
Ακέραιοι αριθμοί (με πρόσημο - signed)
• Δυαδικοί
αριθμοί • Επίσης όχι καλή ιδέα:
• Φυσικοί αριθμοί
• Ακέραιοι
 Συμπλήρωμα ως προς 1
• Αντιστροφή όλων των bits του αριθμού
• Πιο σημαντικό bit: 0 για θετικούς, 1 για
αρνητικούς
 Διάστημα τιμών για αριθμούς με n bits
-(2n-1-1) έως +(2n-1-1) (γιατί;)
 Τα ίδια προβλήματα με την χρήση ξεχωριστού
bit πρόσημου

Ακέραιοι αριθμοί (με πρόσημο - signed)


• Δυαδικοί
αριθμοί • Καλή ιδέα!
• Φυσικοί αριθμοί
• Ακέραιοι
 Οι αρνητικοί αριθμοί είναι οι «συμπληρωμένοι
ως προς 2» θετικοί

• Συμπλήρωμα ως προς 2
 Τι σημαίνει «συμπλήρωμα ως προς 2»;
 Πώς υπολογίζεται;
Συμπλήρωμα ως προς 2
• Δυαδικοί
αριθμοί • Ίσο με το «συμπλήρωμα ως προς 1» + 1
• Φυσικοί αριθμοί
• Ακέραιοι
• Εμπειρικός κανόνας:
 Αντιστροφή όλων των bits εκτός από τα
δεξιότερα συνεχόμενα 0 και το πρώτο 1
αριστερά από αυτά
• Συμπλήρωμα ως προς 2: παραδείγματα
001011100  110100100
011111111  100000001
• Προσοχή στο 0000...00 και στο 1000...00

Ακέραιοι σε συμπλήρωμα ως προς 2


• Δυαδικοί
αριθμοί • Διάστημα τιμών για αριθμούς με n bits
• Φυσικοί αριθμοί -(2n-1) έως +(2n-1-1) (για n=8, –128 ... +127)
• Ακέραιοι
 Μόνο το +(2n-1) δεν μπορεί να αναπαρασταθεί

• Ευκολία στις πράξεις


 αφαίρεση = πρόσθεση του συμπληρώματος ως
προς 2
 Μία και μοναδική αναπαράσταση του 0
• Πιο σημαντικό bit: 0 για θετικούς, 1 για
αρνητικούς
 Δεν είναι όμως bit προσήμου!
Αριθμητικές πράξεις
• Αριθμητικές
πράξεις • Οι βασικές πράξεις
 Πρόσθεση
 Αφαίρεση
• Άλλες πράξεις
 Πολλαπλασιασμός
 Διαίρεση
 Επίσης:
• Τετραγωνική ρίζα, τριγωνομετρικές συναρτήσεις,
εκθετικά, λογάριθμοι κλπ..
• Υλοποίηση σε υλικό με διάφορες τεχνικές
– Π.χ με πολυώνυμα

Προσθέτοντας 2 bits
• Αριθμητικές
πράξεις

bits άθροισμα κρατούμενο

0+0 0 0
0+1 1 0
1+0 1 0
1+1 0 1
Ημιαθροιστής (half-adder)
• Αριθμητικές
πράξεις

A B S C
A
άθροισμα 0 0 0 0
B (SUM)
0 1 1 0
1 0 1 0
κρατούμενο 1 1 0 1
; (CARRY)

Αν απαιτείται
πρόσθεση αριθμών
με περισσότερα
bits;

Προσθέτοντας δυαδικούς αριθμούς


(μη προσημασμένους)

Κρατούμενο 1 1 1
Α’ Αριθμός (119) 0 1 1 1 0 1 1 1
Β’ Αριθμός ( 88) 0 1 0 1 1 0 0 0
Άθροισμα (207) 1 1 0 0 1 1 1 1

1. Αριθμοί με ίδιο μήκος (ίσος αριθμός bits)


2. Αρχίζοντας από το λιγότερο σημαντικό bit (το δεξιότερο)
3. Προσθέτουμε ζεύγη bits και μεταφέρουμε το κρατούμενο
(αν υπάρχει) προς τα αριστερά
• Το προσθέτουμε στο επόμενο ζεύγος bits
Πλήρης αθροιστής (full-adder)
• Αριθμητικές
πράξεις
• Μία από τις πιθανές υλοποιήσεις
 με δύο ημιαθροιστές

A
B άθροισμα
(SUM)
κρατούμενο
εισόδου
(Carry in)
;
Ποιος πίνακας
αλήθειας
υλοποιείται;
κρατούμενο
εξόδου
(Carry out)

Πρόσθεση αριθμών με πλήρεις αθροιστές


• Αριθμητικές
πράξεις A1 S1
B1 Πλήρης
αθροιστής Cout
Cin

A2 S2
B2 Πλήρης
αθροιστής Cout
Cin

• Πολλαπλά τμήματα πλήρη αθροιστή


 Όμως: πόσο γρήγορα διαδίδεται το
κρατούμενο; (ripple carry)
 Τεχνικές πρόβλεψης κρατουμένου (carry look-
ahead)
Προσθέτοντας δυαδικούς αριθμούς
(μη προσημασμένους)
• Υπερχείλιση
 Στον υπολογιστή το πλήθος των bits ανά αριθμό είναι
προκαθορισμένο
 Το αποτέλεσμα της πρόσθεσης θα πρέπει να χωρά στα
διαθέσιμα bits ενός καταχωρητή
 Μη προσημασμένοι αριθμοί:
• αριθμός με Ν bits  πεδίο τιμών [ 0 ... 2Ν - 1 ]
• π.χ. για αριθμούς με 8 bits, από 0 έως 255

Κρατούμενο 1 1 1 1 1 1
Α’ Αριθμός (180) 1 0 1 1 0 1 0 0
Β’ Αριθμός ( 78) 0 1 0 0 1 1 1 0
Άθροισμα (258) 1 0 0 0 0 0 0 1 0
ύπαρξη τελικού κρατουμένου = υπερχείλιση διαθέσιμος χώρος

Προσθέτοντας δυαδικούς αριθμούς


(προσημασμένους)
• Προσημασμένοι ακέραιοι
 Συμπλήρωμα ως προς 2
• Το περισσότερο σημαντικό bit υποδηλώνει το πρόσημο
• 0=θετικός, 1=αρνητικός
 αριθμός με Ν bits  πεδίο τιμών [ -2Ν-1 ...0... +2Ν-1 - 1 ]
• π.χ. για αριθμούς με 8 bits, από -128 έως +127

• Πρόσθεση
 Όπως σε μη προσημασμένους
 Τελικό κρατούμενο αγνοείται
• Πώς γίνεται τώρα ο έλεγχος υπερχείλισης;
 Αφαίρεση = πρόσθεση του συμπληρώματος ως προς 2
του αφαιρετέου
• Α – Β = Α + (-Β)
• χωρίς πρόσθετα κυκλώματα για την αφαίρεση!
Προσθέτοντας δυαδικούς αριθμούς
(προσημασμένους)

Κρατούμενο 1
Α’ Αριθμός (+17) 0 0 0 1 0 0 0 1
Β’ Αριθμός (+22) 0 0 0 1 0 1 1 0
Άθροισμα (+39) 0 0 1 0 0 1 1 1

Προσθέτοντας δυαδικούς αριθμούς


(προσημασμένους)

Κρατούμενο 1 1 1 1 1
Α’ Αριθμός (+24) 0 0 0 1 1 0 0 0
Β’ Αριθμός (-17) 1 1 1 0 1 1 1 1
Άθροισμα ( +7) 0 0 0 0 0 1 1 1

• το κρατούμενο αγνοείται
Υπερχείλιση σε προσημασμένους αριθμούς
11111111 (-1) 00000000 (0)

προσημασμένοι
αριθμοί με 8 bits

11000000 (-64) αρνητικοί θετικοί 00111111 (+63)

10000000 (-128) 01111111 (+127)

Υπερχείλιση σε προσημασμένους αριθμούς

Κρατούμενο 1 1 1 1 1 1 1
Α’ Αριθμός (+127) 0 1 1 1 1 1 1 1
Β’ Αριθμός ( +3) 0 0 0 0 0 0 1 1
Άθροισμα (-126;) 1 0 0 0 0 0 1 0

• Το άθροισμα αριθμών με ίδιο πρόσημο θα πρέπει να έχει


επίσης το ίδιο πρόσημο
 στην αντίθετη περίπτωση: υπερχείλιση
Υπερχείλιση σε προσημασμένους αριθμούς

Κρατούμενο 1 1
Α’ Αριθμός (-126) 1 0 0 0 0 0 1 0
Β’ Αριθμός ( -5) 1 1 1 1 1 0 1 0
Άθροισμα (+124;) 0 1 1 1 1 1 0 0

• Το άθροισμα αριθμών με ίδιο πρόσημο θα πρέπει να έχει


επίσης το ίδιο πρόσημο
 στην αντίθετη περίπτωση: υπερχείλιση

Κλασματικοί αριθμοί
• Δυαδικοί
αριθμοί
• Θεωρητικά
• Φυσικοί αριθμοί  Θα μπορούσαμε να επεξεργαζόμαστε
• Ακέραιοι ξεχωριστά το ακέραιο και το κλασματικό
• Κλασματικοί μέρος
• Αλλά
 Αδυναμία αναπαράστασης πολύ μεγάλων και
πολύ μικρών αριθμών
• Η λύση
 Αριθμοί κινητής υποδιαστολής (floating point)
point
 Εύκολη αναπαράσταση τόσο του
1.000.000.000.000 όσο και του
0,0000000000000001
Αριθμοί κινητής υποδιαστολής
• Δυαδικοί
αριθμοί • 3 μέρη
• Φυσικοί αριθμοί
• Ακέραιοι
 Πρόσημο (Π) (1 bit)
• Κλασματικοί • 0=+ 1=-
 Εκθέτης (Ε) (8 ή 11 bits)
• Η βάση είναι το 2 (εννοείται)
• Θετικοί και αρνητικοί εκθέτες με πλεόνασμα 127 ή 1023
(π.χ. αντί -55, Ε= -55+127 = 72! )

i  Σημαινόμενο τμήμα (Σ) (23 ή 52 bits)


Το πρότυπο που • Κανονικοποίηση: μορφή 1,xxxxxxxxxxxxx…
περιγράφεται • Το ‘1,’ εννοείται και δεν αποθηκεύεται
(IEEE 754) δεν
είναι το μόνο. Στις
εφαρμογές AI
• Τελικός αριθμός: -1Π x 1.Σ x 2E-127 (ή 2E-1023)
χρησιμοποιούνται  Ειδικοί αριθμοί: 0, ∞, NaN (Not a Number)
και μορφές με
λιγότερα bits

Πράξεις με αριθμούς κινητής υποδιαστολής


• Αριθμητικές
πράξεις • Σύνθετη διαδικασία
• Η γενική μορφή της πρόσθεσης:
1. Σύγκριση προσήμων
• αν είναι ίδια  πρόσθεση
• αλλιώς  αφαίρεση
2. Εξίσωση εκθετών
• μετακίνηση υποδιαστολής
3. Πρόσθεση ή αφαίρεση σημαινόμενων
τμημάτων
• ακέραιο και κλασματικό μέρος
4. Κανονικοποίηση αποτελέσματος
5. Έλεγχος για υπερχείλιση
Πράξεις με αριθμούς κινητής υποδιαστολής
132
Α’ αριθμός: 0 10000100 10110000000000000000000
+ 2132-127 x 1,1011 ( +25 x 1,1011 )
130
B’ αριθμός: 0 10000010 01100000000000000000000
+ 2130-127 x 1,011 ( +23 x 1,011 )

A +25 x 1,10110
+B +25 x 0,01011
= +25 x 10,00001
κανονικοποίηση +26 x 1,000001

αποτέλεσμα: 0 10000101 00000100000000000000000

Αναπαράσταση Μη Αριθμητικών Δεδομένων


(κείμενο, ήχος και εικόνα στον υπολογιστή)
Αναπαράσταση δεδομένων
• Αναπαράσταση
δεδομένων
ήχος εντολές
κείμενο αριθμοί μηχανής
εικόνα
βίντεο

συνεχείς διακριτές
(αναλογικές) ποσότητες δυαδικοί
σειρές bits
ποσότητες (σύμβολα) αριθμοί
ψηφιοποίηση αναπαράσταση κωδικοποίηση επεξεργασ

! • Ψηφιοποίηση
 Διαδικασία μετατροπής συνεχών τιμών σε διακριτά σύμβολα
Δεδομένα:
ανεξάρτητα από • Αναπαράσταση
τύπο και  Διαδικασία αντιστοίχισης συμβόλων σε δυαδικούς αριθμούς
προέλευση, στον
υπολογιστή • Κωδικοποίηση
υπάρχουν σε μία  Αποθήκευση δυαδικών αριθμών σε σειρές bits
μορφή: 0 και 1

Η ερμηνεία της αναπαράστασης


• Αναπαράσταση
δεδομένων • Κάπου στη μνήμη του υπολογιστή…
 Βρίσκεται αποθηκευμένη η σειρά bits
0100110111010001
• Πόσα σύμβολα αναπαριστά;
 Πόσα bits ανά σύμβολο;
• Ποιος ο τύπος των δεδομένων;
! • Ποια συγκεκριμένη ποσότητα συμβολίζει;
Στα ερωτήματα
αυτά μπορεί να
απαντήσει μόνο ο
• Πώς θα το χειριστεί ο υπολογιστής;
προγραμματιστής
της εφαρμογής που
χειρίζεται τα
δεδομένα!
Αναπαράσταση με δυαδικούς αριθμούς
• Αναπαράσταση
δεδομένων • Σειρά από n bits
 Δυαδικός αριθμός με n bits (n≥1) μπορεί να
αναπαραστήσει 2n διαφορετικά σύμβολα

• Μη αριθμητικά δεδομένα
 Κείμενο, εντολές μηχανής, ήχος, εικόνα…
• Σύνολο διαφορετικών αντικειμένων (συμβόλων)
συμβόλων
 Αντιστοίχιση κάθε συμβόλου σε μοναδικό
δυαδικό αριθμό
• “Αναπαράσταση”
• Η ακριβής αντιστοίχιση ορίζεται σε ένα πρότυπο
(standard)

Το απλουστευμένο μοντέλο μνήμης


• Αναπαράσταση
δεδομένων Μνήμη
μονάδα
ελέγχου
read [ 2 ]
0 07
1 22
2 3F
τμήμα 3F
επεξεργασίας 3 65
δεδομένων
… 00
; Διευθύνσεις μνήμης
Με διεύθυνση των • Πώς βλέπει ένα πρόγραμμα τη μνήμη
n bits, πόσες
διαφορετικές  Συστοιχία αποθηκευτικών θέσεων
θέσεις μνήμης
μπορούμε να
 Σε κάθε θέση αποθηκεύεται (συνήθως) 1 byte
προσπελάσουμε;  Κάθε θέση διαθέτει μοναδική διεύθυνση
• Επιλογή θέσης κατά την προσπέλαση (ανάγνωση-εγγραφή)
Το απλουστευμένο μοντέλο μνήμης
• Αναπαράσταση
δεδομένων Μνήμη
μονάδα
ελέγχου
write [ 0 ]
0 94
1 22
2 3F
τμήμα 94
επεξεργασίας 3 65
δεδομένων
… 00

Διευθύνσεις μνήμης
• Στην πραγματικότητα
 Η «μνήμη» είναι μια σύνθετη ιεραρχία πολλών
επιπέδων
 Οι μεταφορές δεδομένων δεν γίνονται σε
μεμονωμένα bytes αλλά σε πολλαπλάσιά τους

Θέματα αποθήκευσης δυαδικών αριθμών


• Αναπαράσταση
δεδομένων • Όταν για έναν δυαδικό αριθμό χρειάζονται
περισσότερα από ένα bytes για να
αποθηκευτούν τα ψηφία του

• Παράδειγμα: 3FC (hex) = 11 1111 1100


Χρειάζονται 2 bytes!
; 0000 0011 1111 1100
Πώς σχετίζεται η περισσότερο λιγότερο
σειρά σημαντικό byte σημαντικό byte
αποθήκευσης των
bytes με τα
«Ταξίδια του
• Προφανώς σε συνεχόμενες θέσεις μνήμης
Γκιούλιβερ»; Αλλά: ποιο byte αποθηκεύεται πρώτο;
Θέματα αποθήκευσης δυαδικών αριθμών
• Αναπαράσταση Μνήμη Μνήμη
δεδομένων
0 … 0 …
αποθηκεύοντας το
1 … 1 …
03FC 2 FC 2 03
00000011 11111100
3 03 3 FC
… … … …
i “little-endian” “big-endian”
Το ίδιο ισχύει και Το λιγότερο
για αριθμούς με Το περισσότερο
περισσότερα από 2 σημαντικό byte στη σημαντικό byte στη
bytes θέση μνήμης με θέση μνήμης με
μικρότερη διεύθυνση μικρότερη διεύθυνση

Αρχικές αναπαραστάσεις κειμένου


• Αναπαράσταση
δεδομένων • Οι πρώτες αναπαραστάσεις κειμένου
• Κείμενο  Στον υπολογιστή
 6-7 bits ανά χαρακτήρα
• Πόσοι διαφορετικοί χαρακτήρες;

• Μη εκτυπώσιμοι χαρακτήρες
 Χαρακτήρες ελέγχου
• Ιδιαίτερα χρήσιμοι για τις συσκευές εξόδου της εποχής
(εκτυπωτές, τηλέτυπα…)
• Νέα γραμμή (LINE FEED – LF)
• Επιστροφή κεφαλής εκτύπωσης (CARRIAGE RETURN –
CR)
• Καμπανάκι (BELL) κλπ
Κώδικας ASCII
• Αναπαράσταση
δεδομένων • Βασικό αρχικό πρότυπο αναπαράστασης
• Κείμενο κειμένου
 7 bits ανά χαρακτήρα

i
ASCII: American
Standard Code for
Information
Interchange

δεν φαίνεται όλος ο πίνακας

Κείμενο σε κώδικα ASCII


• Αναπαράσταση
δεδομένων • 7 bits ανά χαρακτήρα
• Κείμενο  128 χαρακτήρες
 Αναπαράσταση με τους αριθμούς 0…127
• Κανονικοί χαρακτήρες (εκτυπώσιμοι)
 32…47, 58…64, 91…96, 123…126 = σημεία
στίξης κ.ά. (32 = SPACE)
;  48…57 = ψηφία 0…9
Με 7 bits ανά
χαρακτήρα και
 65…90 = κεφαλαία λατινικά (Α-Ζ)
χρήση bytes, 1 bit  97…122 = πεζά λατινικά (a-z)
μένει
αχρησιμοποίητο.
Πόσοι επιπλέον
• Χαρακτήρες ελέγχου (μη εκτυπώσιμοι)
χαρακτήρες αν  0…31, 127 – πιο γνωστά: 9 (TAB), 13/10
χρησιμοποιηθεί
και το bit αυτό; (CR/LF, σήμανση “νέας γραμμής”)
Κείμενο σε κώδικα ASCII
• Αναπαράσταση
δεδομένων • Παράδειγμα
• Κείμενο

H a v e a n i c e d a y !
72 97 118 101 32 97 32 110 105 99 101 32 100 97 121 33

• Στις γλώσσες προγραμματισμού


!  “string” (συμβολοσειρά)
Εφόσον η
κωδικοποίηση  Σε γλώσσες όπως η C, το 0 (αριθμητικό)
είναι με 1 byte ανά
χαρακτήρα, δεν
συμβολίζει το τέλος του string
τίθεται θέμα  Ο υπολογιστής μπορεί να κάνει πράξεις (π.χ.
“little-” ή “big-
endian” σύγκριση) με τα strings

Επεκτάσεις κώδικα ASCII


• Αναπαράσταση
δεδομένων • Χρήση του 1 επιπλέον bit του byte
• Κείμενο  128 + 128 χαρακτήρες, αριθμοί 0…255
 0…127 αντιστοιχούν στον αρχικό ASCII
 127…255: επεκταμένα αλφάβητα
• Επέκταση αλφαβήτων (πρότυπα)
 Χαρακτήρες που δεν υπάρχουν στον ASCII
!  Διαφορετικά ανά γλώσσα! Π.χ.:
Χρησιμοποιώντας
τον ISO-8859-1
• ISO-8859-1: Δυτική Ευρώπη (Å, Ñ, Æ,ä, ø κλπ)
δεν είναι δυνατή η • ISO-8859-7: Νέα Ελληνικά
αναπαράσταση • …και πολλά άλλα πρότυπα για τις υπόλοιπες γλώσσες
των ελληνικών!
 Επίσης: μη πρότυπες λύσεις
• Για Windows, Mac ..
Κώδικας ISO-8859-7
• Αναπαράσταση
δεδομένων
• Κείμενο

[Wikipedia]

Κείμενο σε κώδικα ISO-8859-7


• Αναπαράσταση
δεδομένων • Παράδειγμα
• Κείμενο

Γ ε ι α σ ο υ !
195 229 233 225 32 243 239 245 33

• Επέκταση κώδικα ASCII


!  0…127 όπως στον ASCII
Οι
αναπαραστάσεις  128…159 πρόσθετοι χαρακτήρες ελέγχου
αλφαβήτων με 1
byte ανά  160…255 ελληνικά και σχετικά σύμβολα
χαρακτήρα έχουν
(σχεδόν)
καταργηθεί
Πρότυπο Unicode
• Αναπαράσταση
δεδομένων • Για την αναπαράσταση όλων των
• Κείμενο αλφαβήτων
 Καλύπτει ιδεογράμματα, φωνητικές
αναπαραστάσεις και διάφορα σύμβολα
(~100.000 χαρακτήρες έχουν οριστεί)
 Θεωρητικά μπορεί να καλύψει πάνω από 1 εκ.
χαρακτήρες
!
Με περισσότερα • Κάθε χαρακτήρας αναπαρίσταται με έναν
από 1 bytes ανά
χαρακτήρα τίθεται
δυαδικό αριθμό (codepoint)
θέμα σειράς  0 έως 10FFFF
αποθήκευσης των
bytes!  Χρειάζονται περισσότερα από ένα bytes για
την αποθήκευση ενός τέτοιου αριθμού

Πρότυπο Unicode
• Αναπαράσταση
δεδομένων • Το πρότυπο Unicode περιέχει επίσης
• Κείμενο  Πληροφορία ισοδύναμων ή παρόμοιων
χαρακτήρων
 Συνδυασμούς τόνων/διακριτικών και
γραμμάτων
 Οδηγίες για την ταξινόμηση των γραμμάτων
ανά γλώσσα
Ελληνικά και Unicode
• Αναπαράσταση
δεδομένων
• Κείμενο

δεν φαίνεται όλος ο πίνακας

Κείμενο σε Unicode
• Αναπαράσταση
δεδομένων • Παράδειγμα
• Κείμενο
Γ ε ι α σ ο υ !
δεκαδικό 915 949 953 945 32 963 959 965 33
δεκαεξαδικό 0393 03B5 03B9 03B1 0020 03C3 03BF 03C5 0021

Κωδικοποίηση big-endian
03 93 03 B5 03 B9 03 B1 00 20 03 C3 03 BF 03 C5 00 21

Κωδικοποίηση little-endian

93 03 B5 03 B9 03 B1 03 20 00 C3 03 BF 03 C5 03 21 00
Unicode σε κωδικοποίηση UTF-8
• Αναπαράσταση
δεδομένων
• Αναπαράσταση μεταβλητού μήκους
• Κείμενο
Unicode Κωδικοποίηση UTF-8
00…7F 0xxxxxxx
80…7FF 110xxxxx
110 10xxxxxx
10
800…FFFF 1110xxxx
1110 10xxxxxx
10 10xxxxxx
10

! 10000…10FFFF 11110xxx
11110 10xxxxxx
10 10xxxxxx
10 10xxxxxx
10

Η κωδικοποίηση
UTF-8 έχει  Το βασικό λατινικό αλφάβητο (ASCII)
επικρατήσει σε χρησιμοποιεί 1 byte ανά χαρακτήρα
όλα τα
προγράμματα που • Προς τα πίσω συμβατότητα
χειρίζονται  Τα ελληνικά, 2 bytes
κείμενα Unicode
 Αλφάβητα Άπω Ανατολής, 3+ bytes

Ήχος: Ψηφιοποίηση και Αποθήκευση


• Αναπαράσταση
δεδομένων
• Κείμενο
• Ήχος δειγματοληψία

κβάντωση

κωδικοποίηση
110110110001001
Εικόνα: από τον αναλογικό στον ψηφιακό κόσμο
• Αναπαράσταση αισθητήρες
δεδομένων φωτός
• Κείμενο
• Ήχος
• Εικόνα μετατροπή
σήματος από 1001011..
αναλογικό σε
ψηφιακό

• Φωτοευαίσθητα κύτταρα
 για τρία χρώματα (κόκκινο-πράσινο-μπλε)
• Μετατροπή σήματος σε ψηφιακή
πληροφορία

Παράδειγμα: απλή αναπαράσταση pixels με


16,7 εκ. χρώματα
1 pixel

R:144 R:193
G:128 G:164

B:118 B:179

R:201
G:174
… …
B:134

… … …

• 3 bytes/pixel (24bits): R(ed) G(reen) B(lue)


 256 στάθμες ανά συνιστώσα χρώματος
• 256x256x256 = 16.777.216 χρώματα
 εικόνες με μεγαλύτερο βάθος χρώματος
• 32 έως 48 bits
Εναλλακτικά: διανυσματικά γραφικά
• Αναπαράσταση
δεδομένων • Περιγραφή σχημάτων
• Κείμενο  Ως σύνολο ευθύγραμμων και καμπύλων
• Ήχος
τμημάτων
• Εικόνα
 Με συντεταγμένες
 Εύρεση σημείων μέσω μαθηματικού τύπου

• Εύκολη αλλαγή μεγέθους γραφικών


 Χωρίς παραμόρφωση των σχημάτων

Αναπαράσταση βίντεο
• Αναπαράσταση
δεδομένων • “Κινούμενη εικόνα” (καρέ)
• Κείμενο
• Ήχος  όπως αναπαριστούμε τις απλές εικόνες
• Εικόνα
• Βίντεο  αλλά: με χρήση συμπίεσης
• Για μείωση όγκου δεδομένων
• Γειτονικά καρέ έχουν πολλές ομοιότητες
Κωδικοποίηση εντολών μηχανής
• Αναπαράσταση
δεδομένων opcode operand1 operand2 .. operandN
• Κείμενο
• Ήχος
• Εικόνα
• Βίντεο Περιγράφει το Περιγράφουν την προέλευση των
είδος της δεδομένων εισόδου (αριθμό
• Εντολές
πράξης που θα καταχωρητή, διεύθυνση μνήμης κλπ)
Μηχανής
εκτελεστεί και τον προορισμό των δεδομένων
εξόδου (αποτέλεσμα πράξης)

Το είδος της πράξης προσδιορίζει τον


τύπο, την προέλευση και τον αριθμό
των δεδομένων που συμμετέχουν
στην πράξη !

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


(η «κεντρική» μονάδα επεξεργασίας)
Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ)
• Εισαγωγή
• ΚΜΕ
• Central Processing Unit (CPU)
 Το υπολογιστικό τμήμα ενός «πυρήνα»
(“core”)
• Εκτέλεση πράξεων στα δεδομένα
• Κύριες κατηγορίες πράξεων
 Αριθμητικές-λογικές πράξεις
 Μεταφορές δεδομένων από-προς
μνήμη/καταχωρητές
 Συγκρίσεις και διακλάδωση υπό συνθήκη
• Επιλογή επιθυμητής πράξης
 Εντολές μηχανής (σειρές από bits)
 Πρόγραμμα: ακολουθία εντολών μηχανής

Τα μέρη της ΚΜΕ (CPU)


• Εισαγωγή εντολές
από -προς σύστημα μνήμης

• ΚΜΕ
ρολόι μηχανής
μονάδα
(clock) ελέγχου

δεδομένα
εισόδου
επεξεργασία
δεδομένων
ΚΜΕ δεδομένα
εξόδου

• Επεξεργασία δεδομένων
 Καθοδήγηση από τη μονάδα ελέγχου
• Βάσει του προγράμματος εκτέλεσης (εντολών)
Επεξεργασία δεδομένων
• Εισαγωγή
• ΚΜΕ
• Ποιος εκτελεί τις πράξεις μεταξύ
δεδομένων;
 Αριθμητικές-λογικές μονάδες (ΑΛΜ)
 Διαφορετικές μονάδες για πράξεις ακεραίων
και αριθμών κινητής υποδιαστολής
• Από πού προέρχονται τα δεδομένα
εισόδου στις ΑΛΜ και πού αποθηκεύεται
το αποτέλεσμα της πράξης;
 Καταχωρητές
 Μνήμη

Καταχωρητές (registers)
• Εισαγωγή καταχωρητές
• ΚΜΕ

Αριθμητική-
Λογική
ALU
Μονάδα

• Καταχωρητές
 Αυτόνομες θέσεις αποθήκευσης μέσα στην ΚΜΕ
• Μία “λέξη” δεδομένων
 Γρήγορη προσπέλαση
 Προσωρινή αποθήκευση δεδομένων
• Δεδομένα εισόδου και εξόδου ΑΛΜ (ALU)
 Καταχωρητές γενικού σκοπού (general purpose)
Έλεγχος εκτέλεσης εντολών
• Εισαγωγή • Μονάδα ελέγχου (control unit)
• ΚΜΕ
 Εκτέλεση εντολών μηχανής
• Ποια είναι η επόμενη προς εκτέλεση
εντολή;
 Μετρητής προγράμματος (Program Counter –
PC ή Instruction Pointer – IP): καταχωρητής
ειδικού σκοπού,
σκοπού περιέχει τη διεύθυνση στη
μνήμη της επόμενης εντολής
 Κατά την εκτέλεση της τρέχουσας εντολής
αυξάνεται αυτόματα για να «δείχνει» στην
επόμενη εντολή

Επιλογή λειτουργιών εντολής μηχανής


• Εισαγωγή • Πώς επιλέγεται για κάθε εντολή η
• ΚΜΕ
λειτουργία της (π.χ. η πράξη) και τα
δεδομένα εισόδου/εξόδου της;
• Αποκωδικοποίηση εντολών μηχανής
 Στη μονάδα ελέγχου της ΚΜΕ
 Με βάση τα bits κάθε εντολής δημιουργούνται τα
σήματα ελέγχου (δηλ. επιλογής) της λειτουργίας
όλης της ΚΜΕ
Program Counter (PC)
• Εισαγωγή • Καταχωρητής διεύθυνσης
• ΚΜΕ  Ονομάζεται επίσης Instruction Pointer (IP)
 Διεύθυνση της επόμενης εντολής στη μνήμη
 Ανάκληση εντολής από μνήμη
• Αυτόματη αύξηση
 Δείχνει στην επόμενη θέση μνήμης (επόμενη
εντολή) μετά την ανάκληση της τρέχουσας
εντολής
• Ειδική περίπτωση: διακλάδωση
 Μετά από σύγκριση
 Φόρτωση του PC με διαφορετική τιμή
• Μεταφορά της ροής εκτέλεσης σε άλλο σημείο
 Υλοποίηση δομών if … then … else

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


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

σήματα ελέγχου δεδομένα εισόδου πράξεων

ΑΛΜ
εντολές ΑΛΜ
άλλες πράξεις
load- ακέραιες
πράξεις κινητής
store πράξεις
υποδιαστολής
διεύθυνση δεδομένα
μνήμης εγγραφής
μνήμη αποτελέσματα πράξεων
δεδομένων
δεδομένα
ανάγνωσης
Αρχιτεκτονική συνόλου εντολών
• Εισαγωγή
• ΚΜΕ
• Τι πρέπει να ξέρουμε για να προγραμματίσουμε
έναν επεξεργαστή (instruction set architecture –
ISA)
 Ποιες είναι οι διαθέσιμες εντολές μηχανής
 Τύποι και προέλευση δεδομένων
 Ποιους καταχωρητές χρησιμοποιούμε
 Ποιο το μοντέλο της διαθέσιμης μνήμης
• Σήμερα: επίπεδο μοντέλο,
μοντέλο ενιαίος χώρος μνήμης
ανά πρόγραμμα, από τη διεύθυνση 0 έως τη μέγιστη
δυνατή
• Πώς σχηματίζεται μια διεύθυνση μνήμης
 Πώς αντιδρά ο επεξεργαστής σε εξωτερικές
διακοπές και καταστάσεις σφάλματος

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


• Εισαγωγή • Υπολογιστές σύνθετου συνόλου εντολών
• ΚΜΕ  Complex Instruction Set Computer (CISC)
CISC
 Μεγάλο σετ εντολών (σύνθετες λειτουργίες)
 Εύκολη συγγραφή προγραμμάτων
 Πολύπλοκη ΚΜΕ

• Υπολογιστές περιορισμένου σετ εντολών


 Reduced Instruction Set Computer (RISC)
RISC
 Μικρό σύνολο απλών εντολών (απλές
λειτουργίες)
 Μεγαλύτερα προγράμματα
 Απλούστερη KME
• Μεγαλύτερη χρησιμοποίηση (παραλληλία)
Η γλώσσα assembly
• Εισαγωγή • Μνημονική αναπαράσταση των εντολών
• ΚΜΕ
μηχανής
 Αντί να γράφουμε σειρές από 0 και 1...
 Κάθε εντολή assembly αντιστοιχεί σε μία
συγκεκριμένη εντολή μηχανής
• Συγγραφή προγραμμάτων σε χαμηλό επίπεδο
 Π.χ. κώδικας αρχικοποίησης του υπολογιστή
• Ο κώδικας assembly είναι διαφορετικός ανά
επεξεργαστή
 Άλλο σετ εντολών, άλλα ονόματα καταχωρητών...
 Δεν μεταφέρεται το ίδιο πρόγραμμα assembly σε
διαφορετικό επεξεργαστή (non-portable)
• Στα παραδείγματά μας: assembly x86 (στα PCs)

Τι περιγράφουν τα bits μιας εντολής μηχανής;


• Εισαγωγή
• ΚΜΕ opcode operand1 operand2 .. operandN

Περιγράφει το Περιγράφουν την προέλευση των


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

• Το είδος της πράξης προσδιορίζει


 τον τύπο,
τύπο των δεδομένων (π.χ. ακέραιοι ή δεκαδικοί)
 την προέλευση των δεδομένων (π.χ. από
καταχωρητή ή από τη μνήμη)
 και τον αριθμό των δεδομένων που συμμετέχουν
στην πράξη
Πηγές και προορισμός δεδομένων εντολών
• Εισαγωγή • Από-προς καταχωρητές
• ΚΜΕ
mov eax,ebx ; μετακίνησε το περιεχόμενο του
; καταχωρητή ebx στον eax
• Από-προς θέσεις μνήμης
cmp eax,[intlist+edi*4] ; σύγκρινε το περιεχόμενο
;του eax με θέση μνήμης
 διεύθυνση = σταθερά + τιμή καταχωρητή*σταθερά
 εκτός από το προηγούμενο παράδειγμα, η διεύθυνση
μνήμης μπορεί να προκύψει και με άλλους συνδυασμούς!
• Από σταθερές μέσα στην εντολή
add edi,33 ; αύξησε το περιεχόμενο του
; καταχωρητή edi κατά 33
 ο αριθμός 33 βρίσκεται μέσα στα bits της εντολής

Εκτέλεση εντολών: ο κύκλος μηχανής


• Εισαγωγή
• ΚΜΕ
Fetch: Φέρε την επόμενη εντολή προς
εκτέλεση από τη μνήμη

Decode: Αποκωδικοποίησε την εντολή


(προετοίμασε τα σήματα ελέγχου και τις
για πάντα!

πηγές των δεδομένων)

Execute: Εκτέλεσε την απαιτούμενη


πράξη/λειτουργία

Store: Αποθήκευσε τα αποτελέσματα


(εάν απαιτείται)
Τα στάδια του κύκλου μηχανής
4. Αποθήκευση
λογική αποτελέσματος (store
1. Ανάκληση μνήμη διεύθυνση επόμενης εντολής
εντολής (fetch) εντολών PC
επόμενης
εντολές εντολής
καταχωρητές
αποκωδικοποίηση
2. Αποκωδικοποίηση
σήματα ελέγχου δεδομένα εισόδου πράξεων
εντολής (decode)

ΑΛΜ
εντολές ΑΛΜ
άλλες πράξεις
load- ακέραιες
πράξεις κινητής
store πράξεις
υποδιαστολής
διεύθυνση δεδομένα
μνήμης εγγραφής
μνήμη 3. Εκτέλεση
αποτελέσματα πράξεων
δεδομένων εντολής (execute)
δεδομένα
ανάγνωσης

Διακοπές και Σφάλματα


• Εισαγωγή • Ο κύκλος μηχανής επαναλαμβάνεται
• ΚΜΕ
ντετερμινιστικά και συνεχώς
 Είτε με την επόμενη εντολή είτε με την εντολή
μετά από διακλάδωση
• Εκτός αν συμβεί μια διακοπή ή ένα σφάλμα
 Διακοπή (interrupt):
(interrupt) προκαλείται από εξωτερική
συσκευή, οδηγώντας έναν ακροδέκτη εισόδου
του επεξεργαστή από 0 σε 1 (ή ανάποδα).
 Σφάλμα (exception):
(exception) κατά την εκτέλεση, λόγω
π.χ. διαίρεσης δια 0, προσπέλασης άκυρης
διεύθυνσης μνήμης κ.ά.
Αντίδραση σε διακοπές
• Εισαγωγή • Διακόπτεται το εκτελούμενο πρόγραμμα
• ΚΜΕ
 Αφού ολοκληρωθεί η τρέχουσα εντολή
• Αποθηκεύονται οι τιμές των καταχωρητών και ο
Program Counter
 Δηλαδή, η κατάσταση του προγράμματος
• Η εκτέλεση μεταβαίνει σε προκαθορισμένη για
κάθε είδους διακοπή θέση μνήμης
 Όπου το λειτουργικό σύστημα έχει τοποθετήσει
μια διακλάδωση στη ρουτίνα εξυπηρέτησης της
διακοπής (interrupt service routine – ISR)
• Με την ολοκλήρωση της ρουτίνας εξυπηρέτησης, η
εκτέλεση επιστρέφει στο πρόγραμμα που διακόπηκε
 Αφού αποκατασταθούν οι καταχωρητές

Σημαίες κατάστασης (flags)


• Εισαγωγή • Μια ομάδα bits που αναφέρουν την κατάσταση της
• ΚΜΕ
ΚΜΕ μετά την εκτέλεση μιας εντολής
 Κάθε εντολή επηρεάζει ορισμένα μόνο flags
• Τα πιο κοινά flags:
 (Z)ero flag = μηδενικό αποτέλεσμα (της
προηγούμενης πράξης)
 (S)ign flag = αρνητικό αποτέλεσμα
 (C)arry flag = ύπαρξη τελικού κρατουμένου
 ο(V)erflow flag = ένδειξη υπερχείλισης
• Άλλα flags τίθενται από το πρόγραμμα για να
ειδοποιήσουν την ΚΜΕ για μια επιλογή
 Π.χ. το (I)nterrupt flag δηλώνει αν επιτρέπουμε
διακοπές ή όχι
Διακλάδωση υπό συνθήκη και flags
• Εισαγωγή • Κάθε εντολή διακλάδωσης υπό συνθήκη εξετάζει
• ΚΜΕ
ορισμένα flags για να αποφασίσει αν θα
εκτελεστεί η διακλάδωση ή όχι
• Τα flags έχουν τεθεί από την αμέσως
προηγούμενη εντολή
• Παράδειγμα:
cmp edi,10 ; σύγκριση του περιεχομένου του
; καταχωρητή edi με το 10
; η εντολή cmp θέτει ανάλογα τα Ζ, C, S και V flags
jne again ; διακλάδωση εάν Ζ flag = 0

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


(κύρια και κρυφή μνήμη)
Η μνήμη
• Εισαγωγή • Βασικό τμήμα του υπολογιστή
• Μνήμη
 Αποθήκευση εντολών και δεδομένων
• Πρόκειται για μια ιεραρχία
υποσυστημάτων
 Κρυφές μνήμες (caches), κύρια μνήμη
 Για να καλυφθεί το κενό απόδοσης μεταξύ
γρήγορου επεξεργαστή και αργής κύριας
μνήμης

Αποθήκευση στη μνήμη


• Εισαγωγή • Μνήμη = διαδοχικές θέσεις αποθήκευσης
• Μνήμη
 Σε κάθε θέση αποθηκεύεται μια ποσότητα των
n bits (συνήθως 1 byte)
• Διευθύνσεις στη μνήμη
 Σε κάθε θέση αποθήκευσης αντιστοιχεί μία
μοναδική διεύθυνση (address)
• μη προσημασμένος δυαδικός αριθμός
• με m bits επιλέγουμε μεταξύ 2m διευθύνσεων
• Χώρος διευθύνσεων μνήμης: 0...2m - 1
 Συνολική χωρητικότητα μνήμης:
• 2m x n bits
Μοντέλο λειτουργίας μνήμης
• Εισαγωγή
• Μνήμη

Μνήμη Περιεχόμενα

Διεύθυνση 0 07
Αναγν./Εγγρ. 1 22
2 3F
Δεδομένα
3 65
… 00
Διευθύνσεις μνήμης

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


• Εισαγωγή
• Μνήμη

Μνήμη Περιεχόμενα

2
διεύθυνση 0 07
! Αναγν.
1 22
Ακόμα κι αν ΚΜΕ 2 3F
μπορούμε να
διαβάσουμε ή
δεδομένα
3 65
γράψουμε
μεμονωμένα bytes, 3F … 00
η φυσική
επικοινωνία με τη
μνήμη γίνεται σε Διευθύνσεις μνήμης
«λέξεις»
(πολλαπλά bytes)
Εγγραφή στη μνήμη
• Εισαγωγή
• Μνήμη

Μνήμη Περιεχόμενα

2
διεύθυνση 0 07
1 22
Εγγρ.
ΚΜΕ 2 99
δεδομένα
3 65
99 … 00
Διευθύνσεις μνήμης

Sneak Preview: Εικονική μνήμη


• Εισαγωγή
σύστημα μνήμης
από -προς

• ΚΜΕ λογική φυσική


ΚΜΕ διεύθυνση διεύθυνση
MMU

• Κάθε πρόγραμμα βλέπει λογικές διευθύνσεις μνήμης


 Από το 0 έως τη μέγιστη που υποστηρίζει το λειτουργικό
σύστημα
• Μετάφραση σε φυσικές διευθύνσεις μνήμης
 Από το σύστημα διαχείρισης μνήμης (memory
management unit – MMU) που συνοδεύει κάθε ΚΜΕ
• Εικονική Μνήμη (virtual memory)
 Θα την δούμε σε μεγαλύτερο εξάμηνο
Μονάδες μέτρησης χωρητικότητας μνήμης
• Εισαγωγή • 1 Byte = 8 bits
• Μνήμη
• 1 KiloByte (KB) = 210 Bytes
 1.024 Bytes
• 1 MegaByte (MB) = 210 KB = 220 Bytes
 1.048.576 Bytes
! • 1 GigaByte (GB) = 210 MB = 220 KB = 230
Προσοχή!
Μόνο η
bytes
χωρητικότητα της  1.073.741.824 Bytes
μνήμης μετράται
σε δυνάμεις του 2! • Κλπ…

Τεχνολογίες μνημών
• Εισαγωγή • Μνήμη “τυχαίας προσπέλασης”
• Μνήμη
 Random Access Memory (RAM)
 Ανάγνωση-Εγγραφή
 Στατική (SRAM)
SRAM και δυναμική (DRAM)
DRAM
• Διαφορετική μέθοδος υλοποίησης “κελιών”
(cells) μνήμης
i • SRAM:
SRAM πολύ γρήγορη – μικρότερη
“κελί” (cell):
ο χώρος
ολοκλήρωση (χρήση: κρυφή μνήμη)
αποθήκευσης ενός • DRAM:
DRAM αργότερη – μεγάλη ολοκλήρωση
bit.
(χρήση: κύρια μνήμη)
DRAM: 1

Απαιτείται περιοδική ανανέωση των δεδομένων
τρανζίστορ/κελί κάθε 16 έως 128 ms (DRAM refresh)
• Και στις δύο χάνονται τα δεδομένα με τη
SRAM: 6 διακοπή της τροφοδοσίας
τρανζίστορ/κελί
Τεχνολογίες μνημών
• Εισαγωγή • Μνήμες μόνιμης αποθήκευσης
• Μνήμη
 Διατήρηση δεδομένων χωρίς τροφοδοσία

• Μόνο για ανάγνωση


 Read Only Memory (ROM)
 Ακολουθεί το κλασσικό μοντέλο μνήμης
 Αποθήκευση κώδικα αρχικοποίησης υπολογιστή
• Αργή ανάγνωση-εγγραφή αλλά μαζική
αποθήκευση
• FLASH
• Μοιάζει με δίσκο αποθήκευσης κι όχι με το κλασικό
μοντέλο μνήμης
• Ανάγνωση-εγγραφή μπλοκ δεδομένων

Παράδειγμα: οργάνωση μνήμης DRAM


μέρος της διεύθυνσης
πολλαπλοί πίνακες
επιλέγει γραμμή
(banks) κελιών μνήμης
του πίνακα κελιών
σήματα ελέγχου
διεύθυνση

δεδομένα ανάγνωσης-εγγραφής

μέρος της διεύθυνσης


επιλέγει στήλες
του πίνακα κελιών
[Micron]
Την «παλιά εποχή»:
Απευθείας διασύνδεση ΚΜΕ – κύριας μνήμης
• Εισαγωγή
• Μνήμη Δίαυλος Διευθύνσεων
ADDR Τσιπ Μνήμης

Δίαυλος Δεδομένων
ΚΜΕ
DATA

i Δίαυλος Ελέγχου R/W


κ.ά.
Δίαυλοι:
Δίαυλοι ομάδες
αγωγών για τη • Διεύθυνση
μεταφορά
πληροφορίας.  Προς/από πού γίνεται η προσπέλαση;
• Δεδομένα
 Τα δεδομένα ανάγνωσης/εγγραφής
• Έλεγχος
 Ανάγνωση ή εγγραφή; και συγχρονισμός μεταφοράς

Η κύρια μνήμη σήμερα


• Εισαγωγή
• Μνήμη
• Υποσύστημα κύριας μνήμης
 Μεγάλες χωρητικότητες (GBs)
 Μεγάλο εύρος (bits) διαύλου μεταφοράς
• Για την ικανοποίηση των αναγκών των ΚΜΕ
• 64 και πλέον bits ανά μεταφορά
• ≥400 ΜTransfers/sec, ≥3.2 GB/s

• Ελεγκτής κύριας μνήμης


 Λόγω της πολυπλοκότητας της διασύνδεσης
• Μια ΚΜΕ δεν συνδέεται απευθείας με τη μνήμη
• Αλλά: παρεμβάλλεται ο ελεγκτής κύριας μνήμης
• Το μοντέλο προσπέλασης δεν αλλάζει
Διασύνδεση με κύρια μνήμη
• Εισαγωγή
• Μνήμη Δίαυλος Διευθύνσεων
Κύρια μνήμη

Ελεγκτής
DRAM
Δίαυλος Δεδομένων
ΚΜΕ
DRAM

Δίαυλος Ελέγχου

• Ελεγκτής κύριας μνήμης


 Μετατρέπει τις αιτήσεις ανάγνωσης-εγγραφής της
ΚΜΕ στα κατάλληλα σήματα (εντολές) προς τα
τσιπ κύριας μνήμης (DRAM)

Ιεραρχία Μνήμης
• Εισαγωγή
• Μνήμη
• Προσέγγιση της ιδανικής μνήμης
• Κρυφή μνήμη  Ο επεξεργαστής βλέπει “μνήμη”
 Με την ταχύτητα του υψηλότερου επιπέδου
 Και το μέγεθος του χαμηλότερου επιπέδου

CPU 1 κύκλος ρολογιού


καταχωρητές

Κρυφές μνήμες
0,5-5ns ~4-10 κύκλοι ρολογιού
(SRAM)

Κύρια μνήμη
50-70ns ~100 κύκλοι ρολογιού
(DRAM)
Κρυφή μνήμη (cache memory)
Κύρια Μνήμη
• Εισαγωγή 0 07
• Μνήμη
• Κρυφή μνήμη κρυφή
1 22
ΚΜΕ
μνήμη 2 99
3 65
… 00
• Μεταξύ ΚΜΕ και κύριας μνήμης
 Περιέχει ένα μέρος μόνο των περιεχομένων της κύριας
μνήμης
• Διαφορετικές θέσεις κύριας μνήμης φορτώνονται στην
ίδια θέση της κρυφής μνήμης
 Γρηγορότερη από κύρια μνήμη
 Εκμετάλλευση της τοπικότητας των προσπελάσεων
 Διαχείριση από υλικό – διαφανής στο λογισμικό!
 Σήμερα: κρυφή μνήμη σε πολλά επίπεδα (L1, L2, L3)

Η αρχή της τοπικότητας


• Εισαγωγή
• Μνήμη
• Χρονική Τοπικότητα
• Κρυφή μνήμη  Εάν προσπελαστεί μια θέση μνήμης, είναι
πολύ πιθανό να προσπελαστεί ξανά στο άμεσο
μέλλον
 Π.χ. για εντολές ενός βρόχου (loop)
• Χωρική Τοπικότητα
 Εάν προσπελαστεί μια θέση μνήμης, είναι
πολύ πιθανό να προσπελαστούν και οι
γειτονικές θέσεις στο άμεσο μέλλον
 Π.χ. συνεχόμενες εντολές προγραμμάτων
 ή δεδομένα σε πίνακες
Μπλοκ (γραμμές) κρυφής μνήμης
• Εισαγωγή •Όταν πρέπει να
• Μνήμη
μεταφερθεί μια λέξη
• Κρυφή Μνήμη ΚΜΕ
στην κρυφή μνήμη,
μεταφέρεται όλο το
μπλοκ που την περιέχει
(η λέξη και οι γειτονικές λέξεις
μπλοκ
της)

μπλοκ
•Το σύστημα κύριας
Οι σύγχρονοι μπλοκ
μνήμης έχει
επεξεργαστές κρυφή μνήμη
διαθέτουν κρυφές βελτιστοποιηθεί
μνήμες με τυπικό αρχιτεκτονικά για
μέγεθος μπλοκ ίσο μεταφορές μπλοκ
με 64 bytes Κύρια μνήμη

Ανάγνωση μέσω της κρυφής μνήμης


• Εισαγωγή 2α. Η διεύθυνση Α υπάρχε
• Μνήμη στην κρυφή μνήμη:
Επιστροφή περιεχομένου
• Κρυφή μνήμη διεύθυνσης Α (π.χ. σε 4
1. Ανάγνωση από ΚΜΕ κύκλους ρολογιού)
διεύθυνση μνήμης Α

2β. Η διεύθυνση μνήμης Α 3β. Τα δεδομένα από τη


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

Κύρια μνήμη
(DRAM)
Εγγραφή μέσω της κρυφής μνήμης
• Εισαγωγή
• Μνήμη 2α. Η διεύθυνση Α
υπάρχει στην
• Κρυφή μνήμη κρυφή μνήμη (παλιά
1. Εγγραφή στη ΚΜΕ
δεδομένα): Ενημέρωση
διεύθυνση μνήμης Α κρυφής μνήμης με νέα τιμή

2β. Η διεύθυνση Α δεν υπάρχει


στην κρυφή μνήμη:
Ανάγνωση μπλοκ που περιέχει
κρυφή
τη διεύθυνση Α μνήμη
από κύρια μνήμη 3β. Τα δεδομένα από τ
(παλιά δεδομένα!) κύρια μνήμη προωθούντ
στην κρυφή όπου εισάγε
η νέα τιμή στη διεύθυνσ
Α από ΚΜΕ

Κύρια μνήμη
(DRAM)

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


(συσκευές εισόδου-εξόδου)
Ένα τυπικό υπολογιστικό σύστημα σήμερα
CPU CPU
• Εισαγωγή core ... core
συχνά και το κρυφή
κρυφή μνήμη
μνήμη κρυφή
κρυφή μνήμη
μνήμη
σύστημα γραφικών (1ου,2
(1ου ου
,2ου επιπέδου)
ου
(1ου,2
επιπέδου) (1
ου
,2ου επιπέδου)
επιπέδου)
μέσα στον
επεξεργαστή διασυνδετικός
δίαυλος
κρυφή
κρυφή μνήμη
μνήμη
ου
(3 ου επιπέδου)
(3 επιπέδου)
οθόνη

M-bus
PCIe “north (mem bus)
σύστημα DRAM
γραφικών bridge”

SATA
USB “south σκληροί
ποντίκι, bridge” … δίσκοι,
πληκτρολόγιο, CD/DVD,
εκτυπωτές, δικτυακή
σαρωτές... σύνδεση

Είσοδος – Έξοδος στον υπολογιστή


• Εισαγωγή
• Συσκευές Ε/Ε
• Συσκευές εισόδου-εξόδου (Ε/Ε)
 Τυπικά, οτιδήποτε εκτός από ΚΜΕ και μνήμη
• Συσκευές με τελείως διαφορετικούς
μεταξύ τους ρόλους και χαρακτηριστικά
 Λειτουργία: είσοδος, έξοδος ή και τα δύο
(αποθήκευση)
 Συνεργάτης (στην άλλη άκρη): άνθρωπος ή
μηχανή
 Ρυθμός μεταφοράς δεδομένων πολύ
διαφορετικός ανά συσκευή
Είσοδος – Έξοδος στον υπολογιστή
• Εισαγωγή
• Συσκευές Ε/Ε
• Ρυθμοί μεταφοράς - παραδείγματα

Συσκευή Λειτουργία Ρυθμός (Mbps)


πληκτρολόγιο είσοδος 0,0001
ποντίκι είσοδος 0,0038
εκτυπωτής έξοδος 3,2
σύνδεση δικτύου είσοδος/έξοδος 100-1000
μαγν. δίσκος αποθήκευση 240-2565
οθόνη έξοδος 800-8000

Βασικές συσκευές Ε/Ε


• Εισαγωγή
• Συσκευές Ε/Ε
• Πληκτρολόγιο
 Είσοδος από χρήστη – κωδικοί πλήκτρων
• Οθόνη
;  Έξοδος προς χρήστη – πληροφορία pixel
Η πληροφορία σε
οθόνη διαστάσεων
1280x1024 pixels
ανανεώνεται 60
φορές/sec.
Αγνοώντας
πρόσθετες
επιβαρύνσεις, με τι
ρυθμό πρέπει να
αποστέλλεται η
πληροφορία
απεικόνισης στην
οθόνη;
Βασικές συσκευές Ε/Ε
• Εισαγωγή
• Συσκευές Ε/Ε
• Αποθηκευτικά μέσα
 Μαγνητικοί και οπτικοί δίσκοι
 Solid State Drives (SSDs)
• Είδος μνήμης με λειτουργικά
χαρακτηριστικά δίσκου
• Θεωρούνται ως δευτερεύουσα μνήμη
 Εκατοντάδες χιλιάδες φορές αργότερα από
κύρια μνήμη
 Τα δεδομένα πρέπει πρώτα να περάσουν στην
κύρια μνήμη και μετά στην ΚΜΕ

Μαγνητικοί δίσκοι
• Εισαγωγή
• Συσκευές Ε/Ε  Αποθήκευση πληροφορίας μαγνητικά στην
επιφάνεια ενός αριθμού παράλληλων δίσκων
• Ο αριθμός εξαρτάται από τον τύπο του δίσκου
 Κεφαλές ανάγνωσης-εγγραφής

• Ταυτόχρονη και ενιαία κίνηση κεφαλών


 Σύστημα ελέγχου στη συσκευή του δίσκου
• Ελεγκτής δίσκου (controller)
• “Κρύβει” τις λεπτομέρειες υλοποίησης
• Παρουσιάζει προς το λειτουργικό σύστημα τον
δίσκο ως μια ακολουθία λογικών μπλοκ
αποθήκευσης (0..Ν)
Δομή μαγνητικών δίσκων
• Εισαγωγή
• Συσκευές Ε/Ε track
sector

 Οργάνωση σε tracks και sectors


• Sector = 512 έως 4096 bytes
Πληροφορία αναγνώρισης sector
 Ταχύτητα περιστροφής
• 7.200 – 10.000 RPM

Προσπέλαση πληροφορίας στον δίσκο


• Εισαγωγή • Προσπέλαση πληροφορίας
• Συσκευές Ε/Ε
 Σε τυχαία θέση (sector) του δίσκου
 Μετάβαση κεφαλής στο επιθυμητό track
• Seek time
 Αναμονή για εμφάνιση του επιθυμητού sector
κάτω από την κεφαλή
• Rotational latency
 Ανάγνωση και μεταφορά των δεδομένων του
sector
• (Block) transfer time
 Υπενθύμιση: όλες οι κεφαλές κινούνται μαζί –
όχι ανεξάρτητα!
Solid State Drives (SSDs)
• Εισαγωγή
• Συσκευές Ε/Ε  Δεν έχουν μηχανικά μέρη
 «Δίσκοι» μνήμης μόνιμης αποθήκευσης
• Τεχνολογία FLASH
• Τα bits αποθηκεύονται μόνιμα
• Ανάγνωση και εγγραφή κατά ομάδες (σελίδες)
σελίδες
λέξεων
• Διαδικασία διαγραφής πριν την εγγραφή
– Μέγιστο όριο διαγραφών
 Το σύστημα βλέπει τη μνήμη αυτή ως “δίσκο”
• Ανάγνωση - εγγραφή σε blocks δεδομένων
• Όχι το παραδοσιακό μοντέλο διευθυνσιοδότησης
μνήμης
 Καλύτερες επιδόσεις από μαγνητικούς δίσκους

Διασύνδεση συσκευών Ε/Ε


• Εισαγωγή
• Συσκευές Ε/Ε ΚΜΕ μνήμη
• Διασύνδεση Ε/Ε
δίαυλος συστήματος
(διεύθυνση, δεδομένα, έλεγχος)
ελεγκτής
Ε/Ε

συσκευή
Ε/Ε

• Διασύνδεση στον δίαυλο του συστήματος μέσω


ενός ελεγκτή Ε/Ε (I/O controller ή adapter)
• Ο ελεγκτής αναλαμβάνει την επικοινωνία με την
πολύ αργότερη συσκευή Ε/Ε
• Για την ΚΜΕ, ο ελεγκτής δεν είναι παρά ένα
είδος «μνήμης» (διαβάζει-γράφει σε αυτόν)
Επικοινωνία συσκευών-ελεγκτή Ε/Ε
• Εισαγωγή
• Συσκευές Ε/Ε
• Πρωτόκολλο επικοινωνίας ανάλογο της
• Διασύνδεση Ε/Ε φύσης της συσκευής
 Χαρακτήρες για πληκτρολόγιο-εκτυπωτή
 Πληροφορία χρώματος για οθόνη
 Πακέτα δεδομένων για το δίκτυο
 Μεταφορά μπλοκ δεδομένων για δίσκους
• Ο ελεγκτής Ε/Ε αναλαμβάνει τη
μετάφραση μεταξύ της «γλώσσας» της
συσκευής και των αιτήσεων ανάγνωσης-
εγγραφής της ΚΜΕ

Περιφερειακοί δίαυλοι Ε/Ε


• Εισαγωγή
• Συσκευές Ε/Ε ΚΜΕ μνήμη
• Διασύνδεση Ε/Ε

ελεγκτής Περιφερειακός δίαυλος Ε/Ε


Ε/Ε

συσκευή συσκευή συσκευή


Ε/Ε Ε/Ε Ε/Ε

• Όταν η σύνδεση ελεγκτή και συσκευών Ε/Ε


i γενικεύεται
Η τοπολογία κάθε
περιφερειακού
 Δίσκοι, CD-ROM:
διαύλου μπορεί να • (S)ATA (AT-Attachment), SCSI (Small Computer System
είναι τελείως Interface)
διαφορετική  Εξωτερικές συσκευές:
• USB (Universal Serial Bus)
Χώροι διευθύνσεων για Ε/Ε
• Εισαγωγή χώρος διευθύνσεων
• Συσκευές Ε/Ε συστήματος ΚΜΕ μνήμη
read
• Διασύνδεση Ε/Ε 100

write διευθύνσεις read


μνήμης 65004 ελεγκτής
Ε/Ε

read
συσκευή
διευθύνσεις Ε/Ε
ελεγκτή Ε/Ε

διευθύνσεις
Αντιστοιχισμένη σε μνήμη
ελεγκτή Ε/Ε Ε/Ε (memory mapped I/O)
 Διευθύνσεις Ε/Ε στον χώρο
memory-mapped I/O μνήμης
 Κοινές εντολές
προσπέλασης μνήμης και
Ε/Ε (π.χ. read, write)

Χώροι διευθύνσεων για Ε/Ε


• Εισαγωγή χώρος διευθύνσεων
• Συσκευές Ε/Ε μνήμης ΚΜΕ μνήμη
read read
• Διασύνδεση Ε/Ε 100

write διευθύνσεις in
μνήμης 100 ελεγκτής
Ε/Ε

Υλοποίηση συσκευή
απομονωμένου Ε/Ε
χώρος διευθύνσεων
χώρου E/E
διευθύνσεων Ε/Ε:
in διευθύνσεις Απομονωμένη Ε/Ε
Στον δίαυλο ελεγκτή Ε/Ε  Διαφορετικές εντολές για
διασύνδεσης η προσπέλαση μνήμης και Ε/Ε
out
ΚΜΕ παράγει, διευθύνσεις
ελεγκτή Ε/Ε  Ίδια διεύθυνση =
εκτός από τη
διεύθυνση, ένα διαφορετική θέση σε μνήμη
σήμα που επιλέγει και Ε/Ε
χώρο διευθύνσεων isolated I/O
(π.χ. M/IΟ'):
Εξυπηρέτηση αιτήσεων Ε/Ε
• Εισαγωγή
• Συσκευές Ε/Ε
• Ολοκλήρωση αιτήσεων Ε/Ε
• Διασύνδεση Ε/Ε  Υπερβολικά αργή λειτουργία συσκευών…
• Αιτήσεις Ε/Ε
 …σε σχέση με την ταχύτητα της ΚΜΕ
• Η ΚΜΕ πρέπει να περιμένει!
 Πώς γίνεται αντιληπτή η ολοκλήρωση της
εξυπηρέτησης Ε/Ε;
• Στη συνέχεια: μεταφορά δεδομένων
από/προς συσκευές Ε/Ε
 Ποιος αναλαμβάνει τη μεταφορά των
δεδομένων προς/από την κύρια μνήμη;

Ανίχνευση ολοκλήρωσης αίτησης Ε/Ε


• Εισαγωγή ελεγκτής Ε/Ε
ανάγνωση
• Συσκευές Ε/Ε καταχωρητή
• Διασύνδεση Ε/Ε κατάστασης
status
• Αιτήσεις Ε/Ε ΚΜΕ
while (!status) {
// αναμονή
}
// επόμενη λειτουργία συσκευή
Ε/Ε

 Περιοδική ανάγνωση καταχωρητή κατάστασης


• Ολοκληρώθηκε η τρέχουσα αίτηση;
• Εμφανίστηκε κάποια αλλαγή κατάστασης στη
συσκευή Ε/Ε;
• Επαναληπτική διαδικασία (polling)
• Επιβάρυνση ΚΜΕ με άσκοπους κύκλους εκτέλεσης
– για μεγάλο διάστημα η κατάσταση θα παραμένει
σταθερή περιμένοντας τη συσκευή Ε/Ε
Ανίχνευση ολοκλήρωσης αίτησης Ε/Ε (2)
Ασύγχρονη ελεγκτής Ε/Ε
• Εισαγωγή ειδοποίηση
• Συσκευές Ε/Ε ΚΜΕ
intr
• Διασύνδεση Ε/Ε ΚΜΕ
• Αιτήσεις Ε/Ε

<εκτέλεση
άλλης συσκευή
JobA() { διεργασίας> Ε/Ε
… 1.  Ασύγχρονη ειδοποίηση ΚΜΕ (interrupts)
ΑίτησηΕ/Ε();
… • Ο ελεγκτής ειδοποιεί την ΚΜΕ για αλλαγή
} 2. διακοπή κατάστασης της συσκευής Ε/Ε
3.
• Στο μεταξύ η ΚΜΕ μπορεί να εκτελεί άλλη
ISR() { διεργασία
<επιστροφή στο • Η διακοπή θα προκαλέσει την εκτέλεση ρουτίνας
jobA>
εξυπηρέτησης διακοπής (interrupt service routine –
}
ISR)

Μετακίνηση δεδομένων από/προς μνήμη


• Εισαγωγή
• Συσκευές Ε/Ε ΚΜΕ μνήμη
2. Εγγραφή
• Διασύνδεση Ε/Ε bytes
• Αιτήσεις Ε/Ε
1. Ανάγνωση δίαυλος συστήματος
bytes ελεγκτής
Ε/Ε

συσκευή
Ε/Ε

• Μετά από ολοκλήρωση αίτησης Ε/Ε – υπάρχουν


έτοιμα δεδομένα από τη συσκευή
• Η ΚΜΕ επαναληπτικά διαβάζει τα δεδομένα από τον
ελεγκτή Ε/Ε και τα γράφει στη μνήμη (ή το
αντίστροφο για δεδομένα προς τη συσκευή)
• Σημαντική επιβάρυνση της ΚΜΕ!
Direct Memory Access (DMA)
ΚΜΕ μνήμη
2. Μεταφορά
• Εισαγωγή
1. Καθορισμός bytes
• Συσκευές Ε/Ε
• Διασύνδεση Ε/Ε διεύθυνσης δίαυλος συστήματος
• Αιτήσεις Ε/Ε προορισμού στη ελεγκτής
μνήμη και μήκους Ε/Ε
δεδομένων
συσκευή
Ε/Ε

• Η ΚΜΕ απλά θέτει τις παραμέτρους της μεταφοράς


 Διευθύνσεις πηγής-προορισμού, μέγεθος
δεδομένων
• Ο ελεγκτής διεκδικεί τον δίαυλο του συστήματος και
μεταφέρει τα δεδομένα απευθείας προς/από τη μνήμη
 Η ΚΜΕ μπορεί να εκτελεί άλλη διεργασία
 Πιθανή σύγκρουση στη χρήση της κύριας μνήμης,
αλλά η ΚΜΕ έχει και την κρυφή μνήμη για την
άντληση δεδομένων

Η διασύνδεση συσκευών Ε/Ε σήμερα


• Εισαγωγή
• Συσκευές Ε/Ε ΚΜΕ
• Διασύνδεση Ε/Ε
• Αιτήσεις Ε/Ε

οθόνη ελεγκτής “north μνήμη


γραφικών bridge”
“south
bridge”

ελεγκτής ελεγκτής
Ε/Ε Ε/Ε

συσκευή συσκευή συσκευή


Ε/Ε Ε/Ε Ε/Ε

• Στα σύγχρονα συστήματα οι ελεγκτές Ε/Ε δεν


συνδέονται απευθείας στον δίαυλο της ΚΜΕ
 Το μοντέλο λειτουργίας όμως παραμένει το ίδιο!
Λειτουργικά Συστήματα
(διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ);


• Εισαγωγή • Operating System (OS)
• Λογισμικό – ο «γενικός επιβλέπων» ενός
υπολογιστικού συστήματος
 Εκτέλεση προγραμμάτων εφαρμογών
 Διαχείριση υπολογιστικών πόρων
• Επεξεργαστής
• Μνήμη
• Συσκευές Ε/Ε
 Ενδιάμεσο μεταξύ χρήστη και υπολογιστή
 Παρέχει κοινές/συχνά χρησιμοποιούμενες
λειτουργίες εφαρμογών
• «Βιβλιοθήκες» (libraries) λειτουργικού συστήματος
Το Λειτουργικό Σύστημα ως μέρος του
υπολογιστή
• Εισαγωγή

υπολογιστικό
σύστημα

υλικό λογισμικό

λειτουργικό προγράμματα
σύστημα εφαρμογών

Μια άλλη απεικόνιση


• Εισαγωγή
Εφαρμογές

Υλικό

Λειτ.Σύστημα

• Το Λειτουργικό Σύστημα ως κέλυφος (shell)


μεταξύ των εφαρμογών χρήστη και του υλικού
• Οι εφαρμογές χρήστη δεν έχουν δικαιώματα
διαχείρισης του υλικού
Διαχείριση πόρων
• Εισαγωγή

Λειτουργικό
σύστημα

Διαχείριση Διαχείριση
Μνήμης ΚΜΕ

Διαχείριση Διαχείριση
Συσκευών Αρχείων

Η εξέλιξη των Λειτουργικών Συστημάτων


• Εισαγωγή • Αντίστοιχη με την εξέλιξη των υπολογιστών:
• Τα πρώτα μεγάλα συστήματα (mainframes)
 ΛΣ δέσμης (batch operating systems)
• Συστήματα με πολυπρογραμματισμό
(multiprogramming)
 ΛΣ με δυνατότητες χρονοπρογραμματισμού
• Προσωπικοί Υπολογιστές
 ΛΣ ενός χρήστη (single user operating system)
• Παράλληλα συστήματα (πολλές ΚΜΕ)
 Σύνθετα ΛΣ για κατανομή εργασίας
• Κατανεμημένα συστήματα (μέσω δικτύου)
 ΛΣ με πρόσθετες ικανότητες (συντονισμός, μηνύματα,
ασφάλεια δεδομένων..)
Μονοπρογραμματισμός
• Εισαγωγή
• Διαχείριση • Τα πρώτα χρόνια των
μνήμης υπολογιστών... Λειτουργικό
• Στη μνήμη βρίσκονται Σύστημα
 Ένα μοναδικό πρόγραμμα
 Το λειτουργικό σύστημα Πρόγραμμα:
κώδικας και
• Απλή διαχείριση μνήμης δεδομένα
 Τι θα συμβεί αν το μέγεθος
του προγράμματος είναι
μεγαλύτερο από τον μνήμη
διαθέσιμο χώρο;
 Πότε μπορεί να εκτελεστεί
άλλο πρόγραμμα;

Πολυπρογραμματισμός
• Εισαγωγή • Πολλά προγράμματα στη
• Διαχείριση μνήμη
μνήμης Λειτουργικό
• «Ταυτόχρονη» εκτέλεση Σύστημα
 Στην πραγματικότητα
εναλλαγή εκτέλεσης εντολών Πρόγραμμα1
από κάθε πρόγραμμα (υπήρχε
μόνο μια ΚΜΕ)
 Φαινομενικά τα προγράμματα Πρόγραμμα2
εκτελούνται «παράλληλα»
παράλληλα
• Οι υπολογιστικοί πόροι
πρέπει να μοιράζονται Πρόγραμμα3
μεταξύ των προγραμμάτων
 Μνήμη, ΚΜΕ, συσκευές...
 Αναγκαία η διαιτησία Πρόγραμμα4
 Ρόλος του Λειτουργικού
Συστήματος
μνήμη
Πολυπρογραμματισμός (συνέχεια)
• Εισαγωγή • Το Λειτουργικό Σύστημα διατηρεί
• Διαχείριση
μνήμης πληροφορία για κάθε εκτελούμενο
πρόγραμμα (διεργασία)
 Process Control Block (PCB) ή Task Control
Block (TCB)
• Όταν διακόπτεται η εκτέλεση:
 Αποθήκευση τιμής program counter (PC)
• Τρέχουσα διεύθυνση εκτελούμενης εντολής
 Αποθήκευση τιμών καταχωρητών
• Όταν ξεκινά πάλι η εκτέλεση:
 Αποκατάσταση αποθηκευμένων τιμών
• Το πρόγραμμα συνεχίζει την εκτέλεση από το
σημείο που διακόπηκε

Τεχνικές διαχείρισης μνήμης


• Εισαγωγή • Πώς θα εξασφαλιστεί η διαθεσιμότητα της
• Διαχείριση
μνήμης μνήμης για τα προγράμματα που
εκτελούνται «ταυτόχρονα»
• Που βρίσκεται ένα πρόγραμμα
(εντολές και δεδομένα) στη μνήμη;
 1. Χωρίς δυνατότητα εναλλαγής
• Το πρόγραμμα παραμένει συνεχώς στη μνήμη
 2. Με εναλλαγή (swapping)
• Μέρος του προγράμματος μπορεί να εναλλάσσει
θέση μεταξύ μνήμης και δίσκου κατά την εκτέλεση
• Ελευθερώνοντας χώρο μνήμης για άλλα
προγράμματα
Χωρίς εναλλαγή: διαμέριση (partitioning)
• Εισαγωγή
• Διαχείριση
• Κάθε πρόγραμμα έχει τον δικό του χώρο
μνήμης (διαμέριση) στη μνήμη
 Όλο το πρόγραμμα σε συνεχόμενες θέσεις
μνήμης
 Αντικατάσταση προγραμμάτων μετά τον
τερματισμό
 Εισαγωγή νέων
 Πιθανή δημιουργία κενών τμημάτων
 Αντιμετώπιση κενών με συμπύκνωση
(compaction)
• Αργή διαδικασία!
 Το Λ.Σ. διατηρεί λίστα χρησιμοποιούμενων
τμημάτων μνήμης

Με εναλλαγή: Σελιδοποίηση (1)


Πρόγραμμα 1

• Εισαγωγή Σελίδα 1 Κύρια μνήμη


• Διαχείριση Σελίδα 2
μνήμης Πλαίσιο 1
Πρόγραμμα 2 Πλαίσιο 2
Σελίδα 1 Πλαίσιο 3
Σελίδα 2 Πλαίσιο 4
Σελίδα 3 Πλαίσιο 5
Πρόγραμμα 3 Πλαίσιο 6

Σελίδα 1 Πλαίσιο 7

Σελίδα 2

• Κάθε πρόγραμμα χωρίζεται σε σελίδες (pages)


pages
• Η μνήμη χωρίζεται σε πλαίσια (frames)
frames
 Σελίδες και πλαίσια: ίδιο μέγεθος
 Αποδοτικότερη χρήση μνήμης (λιγότερα κενά)
 Πώς λύνεται το πρόβλημα της ανεπαρκούς μνήμης;
Σελιδοποίηση (2)
• Εισαγωγή • Οι σελίδες έχουν προκαθορισμένο μέγεθος
• Διαχείριση 
μνήμης
π.χ. 4ΚBytes
• Μπορούν να τοποθετηθούν σε οποιοδήποτε
πλαίσιο μνήμης
• Ενδεχομένως να μην βρίσκονται όλες στη μνήμη
 Ανάκληση από δίσκο όταν τις χρειαστεί το πρόγραμμα
 Σελιδοποίηση κατ’απαίτηση (demand paging)
• Πρακτικά...
 Το πρόγραμμα βλέπει διαφορετική διεύθυνση μνήμης
από την πραγματική (φυσική) του πλαισίου
 Εικονική μνήμη (virtual memory)
 Απαιτείται η τήρηση πινάκων αντιστοίχισης
διευθύνσεων
 Για τη λειτουργία της εικονικής μνήμης είναι
απαραίτητη η συνδυασμένη υποστήριξη από το υλικό
(ΚΜΕ) και το λειτουργικό σύστημα

Εικονική μνήμη: τι παρέχει το υλικό


σύστημα μνήμης
λογική φυσική
• Εισαγωγή διεύθυνση διεύθυνση
από -προς

• Διαχείριση MMU
μνήμης
ΚΜΕ
(CPU) εντολές

δεδομένα

• Ένα πρόγραμμα «βλέπει» λογικές διευθύνσεις


 Εικονική Μνήμη (virtual memory)
 Μετάφραση σε φυσικές διευθύνσεις μνήμης
 Από το σύστημα διαχείρισης μνήμης (memory
management unit – MMU)
MMU που συνοδεύει την ΚΜΕ
• Για τη μετάφραση: αναζήτηση φυσικής διεύθυνσης
σε πίνακες σελίδων (βρίσκονται στη μνήμη)
• Αποθήκευση των πιο πρόσφατων μεταφράσεων
στην ΚΜΕ
Εικονική μνήμη: τι παρέχει το Λ.Σ.
• Εισαγωγή
Κύρια μνήμη
• Διαχείριση Σελίδα 1Α
μνήμης

Σελίδα 1Β
… 2Β
πίνακας σελίδων
(διεργασία 1)
Κάθε διεργασία 2Α
έχει τους δικούς
της πίνακες Σελίδα 2Α
σελίδων!
Σελίδα 2Β
Κατά την
εναλλαγή Σελίδα 2Γ
διεργασιών … 2Γ
αλλάζει και ποιος πίνακας σελίδων
πίνακας θα (διεργασία 2) 1Α
χρησιμοποιηθεί
για τη μετάφραση
δίσκος

Σελιδοποίηση κατ’απαίτηση
• Εισαγωγή  Οι σελίδες των προγραμμάτων (κώδικας-δεδομένα)
• Διαχείριση
μνήμης βρίσκονται αρχικά μόνο στον δίσκο
 Το ΛΣ τις σημειώνει ως «απούσες»
απούσες από τη μνήμη
 Όταν προσπελαστεί μια «απούσα» σελίδα,
δημιουργείται ένα σφάλμα εκτέλεσης (page fault)...
fault
 ...και το ΛΣ τη φορτώνει σε ένα πλαίσιο στη
μνήμη
 Ενδεχομένως εκτοπίζοντας πίσω στον δίσκο μια
άλλη σελίδα από τη μνήμη
• Η τελευταία σημειώνεται ως «απούσα»
απούσα
 Page faults:
faults μεγάλο κόστος σε κύκλους αναμονής
• 1-10Mκύκλοι ρολογιού
Προγράμματα, εργασίες και διεργασίες
• Εισαγωγή • Πρόγραμμα (program)
• Διαχείριση
μνήμης  Ανενεργό σύνολο εντολών (στον δίσκο)
• Διεργασίες
• Εργασία (job)
 Πρόγραμμα που έχει επιλεγεί για εκτέλεση
 Στον δίσκο ή στη μνήμη
• Διεργασία (process)
 Πρόγραμμα υπό εκτέλεση
 Στη μνήμη
 Εκτελείται ή αναμένει για χρήση πόρων
 Μπορεί να διακοπεί οποιαδήποτε στιγμή
«παρά τη θέλησή της» από το Λ.Σ.
(προεκτοπισμός – preemption)

Χρονοδρομολόγηση (scheduling)
• Εισαγωγή • Καταστάσεις διεργασίας
• Διαχείριση
μνήμης  Έτοιμη προς εκτέλεση (ready)
• Διεργασίες  Εκτελούμενη (running)
 Σε αναμονή (waiting/blocked)
• Για τη χρήση υπολογιστικών πόρων
• Όταν πολλές διεργασίες είναι έτοιμες, ποια
θα εκτελεστεί;
 Απόφαση χρονοδρομολογητή (scheduler)
• Μέρος του Λειτουργικού Συστήματος
 Κριτήρια Επιλογής
• «Όποιος ήρθε πρώτος» (first-in first-out – FIFO)
• Χρησιμοποιώντας προτεραιότητες
• Ανάλογα με προθεσμίες (συστήματα real-time)
Ουρές διαχείρισης διεργασιών

Ουρά ετοιμότητας

προς
εκκίνηση εκτέλεση ΚΜΕ τερματισμός

ολοκλήρωση
χρονομεριδίου αίτηση που
ολοκλήρωση απαιτεί αναμονή
αίτησης (π.χ. για Ε/Ε)

Ουρά αναμονής

Συγχρονισμός διεργασιών
• Εισαγωγή • Στη χρήση διαμοιραζόμενων πόρων
• Διαχείριση
μνήμης  Οι κοινοί πόροι μπορούν να χρησιμοποιούνται
• Διεργασίες μόνο από μία διεργασία κάθε στιγμή
• Αναμονή υπολοίπων διεργασιών
• Εμφάνιση καταστάσεων σύγκρουσης
 Αδιέξοδο
 Λιμοκτονία
Αδιέξοδο
Έχει ανατεθεί Έχει ζητήσει
Διεργασία Α

Αρχείο 1 Αρχείο 2

Διεργασία Β
Έχει ζητήσει Έχει ανατεθεί

• Τα αρχεία είναι κοινόχρηστοι πόροι

Αδιέξοδο (συνέχεια)
• Εισαγωγή • Συνθήκες εμφάνισης
• Διαχείριση
μνήμης  Αμοιβαίος αποκλεισμός στη χρήση των πόρων
• Διεργασίες  Παρακράτηση περισσότερων από έναν πόρο
 Κυκλική αναμονή
• Αν επιτρέψουμε την εκτέλεση διεργασίας
μόνο εάν όλοι οι πόροι που ζητά είναι
ελεύθεροι;
 Κίνδυνος λιμοκτονίας
• Η διεργασία μπορεί να μην εκτελεστεί «ποτέ»
Διαχείριση συσκευών
• Εισαγωγή • Συσκευές εισόδου-εξόδου (Ε/Ε)
• Διαχείριση
μνήμης  Διαχείριση από ΛΣ μόνο
• Διεργασίες • Η απευθείας προσπέλαση των συσκευών Ε/Ε
• Διαχείριση
συσκευών
είναι απαγορευμένη στις εφαρμογές χρήστη
 Ρύθμιση χρήσης από διεργασίες
• Οι συσκευές Ε/Ε είναι ένα τυπικό παράδειγμα
διαμοιραζόμενων (κοινόχρηστων) πόρων
 Παρακολούθηση ολοκλήρωσης αιτήσεων Ε/Ε
• Και επανεκκίνηση των διεργασιών που
αναμένουν τα δεδομένα Ε/Ε
 Το εξειδικευμένο πρόγραμμα συστήματος που
«συνομιλεί» με τη συσκευή Ε/Ε ονομάζεται
«οδηγός» της συσκευής (device driver)

You might also like