ΚΕΦΑΛΑΙΟ(2:(Χειρισμός(Δεδομένων(pages.cs.aueb.gr/courses/epl131/files/Κ2.pdf ·...
TRANSCRIPT
ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων
● 2.1 Αρχιτεκτονική Υπολογιστών ● 2.2 Γλώσσα Μηχανής
● 2.3 Εκτέλεση προγράμματος ● 2.4 Αριθμητικές και λογικές εντολές ● 2.5 Επικοινωνία με άλλες συσκευές ● 2.6 Άλλες αρχιτεκτονικές
Οι διαφάνειες βασίζονται σε μεγάλο βαθμό σε αυτές που συνοδεύονται με το προτεινόμενο σύγγραμμα, καθώς και στις διαφάνειες προηγούμενων ετών του κ. Κουρκουμπέτη. 1
Βασικά Στοιχεία
Αποθηκεύουμε προγράμματα και δεδομένα
ALU
2
Αρχιτεκτονική Υπολογιστών ● Κεντρική μονάδα επεξεργασίας (CPU) ή επεξεργαστής: πακεταρισμένη σε μικρά
επίπεδα τετράγωνα (5cm x5cm)
● H Κεντρική μονάδα επεξεργασίας περιέχει:
– 1. την αριθμητική και λογική μονάδα (Arithmeic Logical Unit, ALU): αποτελείται από κυκλώματα για εκτέλεση πράξεων στα δεδομένα (πρόσθεση, αφαίρεση κλπ)
– 2. τη μονάδα ελέγχου (control unit): ελέγχει και συντονίζει τις ενέργειες – 3. τους καταχωρητές (registers): για προσωρινή αποθήκευση δεδομένων στην
CPU • Γενικής χρήσης (general-‐purpose), ειδικής χρήσης (special-‐purpose)
• Για να εκτελεστεί μια πράξη με δεδομένα αποθηκευμένα στην κύρια μνήμη, η μονάδα ελέγχου πρέπει να τα μεταφέρει από τη μνήμη στους καταχωρητές γενικής χρήσης – Η ALU κάνει τις πράξεις, και μεταφέρει το αποτέλεσμα σε έναν άλλο
καταχωρητή γενικής χρήσης 3
Αρχιτεκτονική Υπολογιστών (2) – 4. την «κρυφή» ή λανθάνουσα μνήμη (cache memory): μνήμη που
βρίσκεται μέσα στην CPU • Αρκετές εκατοντάδες KB • Πολύ υψηλής ταχύτητας • Η μηχανή κρατάει στην cache αντίγραφο του τμήματος της κύριας μνήμης που χρησιμοποιείται πιο συχνά
• Αντί να γίνεται επικοινωνία καταχωρητών και κύριας μνήμης, γίνεται επικοινωνία καταχωρητών με την cache
● Αποτέλεσμα: πιο γρήγορη εκτέλεση εντολών
● O δίαυλος (bus), συνδέει την CPU με την κύρια μνήμη.
● Η Μητρική κάρτα (motherboard) περιλαμβάνει όλα τα παραπάνω.
4
3 είδη αποθηκευτικού χώρου • Μνήμη cache • Κύρια μνήμη (main memory) • Σκληρός δίσκος (HD) • Σε ταχύτητα ανάκτησης: HD < main memory < cache
• Σε μέγεθος: cache < main memory < HD
5
Πρόβλημα • Θέλουμε να ελαχιστοποιήσουμε το συνολικό χρόνο ανάκτησης δεδομένων
• Έχουμε 10 GΒ δεδομένων • Πως θα τα αναθέσουμε στην cache (500KB), main memory (1GB), HD (500GB);
• Χρόνοι ανάκτησης: – HD: 5 milli-‐sec – MM: 50 nano-‐sec – Cache: 500pico-‐sec
6
Η έννοια του αποθηκευμένου προγράμματος
● Stored-‐program concept
● Ένα πρόγραμμα είναι απλώς ένας ιδιαίτερος τύπος δεδομένων – Κάθε πρόγραμμα αποθηκεύεται στην κύρια μνήμη
● Η CPU ανακτά σειριακά τις εντολές του προγράμματος από τη μνήμη, τις αποκωδικοποιεί (καταλαβαίνει) και τις εκτελεί
7
Γλώσσα μηχανής: ορισμοί
● Γλώσσα μηχανής είναι το σύνολο όλων των εντολών μαζί με ένα σύστημα κωδικοποίησης (που κάνει τις εντολές αναγνωρίσιμες)
● Εντολή μηχανής είναι μία εντολή κωδικοποιημένη ως ακολουθία bit που αναγνωρίζεται απευθείας από τη CPU
● Χρειάζεται ένα μικρό σύνολο εντολών που να μπορεί να αναγνωρίζει η CPU
8
Φιλοσοφίες σχεδιασμού της CPU
● Υπολογιστής περιορισμένου συνόλου εντολών (Reduced Instrucion-‐set computer, RISC): – Ελάχιστο σύνολο από εντολές μηχανής, γρήγορη / αποδοτική μηχανή.
– Παραδείγματα: PowerPC, IBM και Motorola ● Υπολογιστής σύνθετου συνόλου εντολών (Complex
Instrucion-‐set computer, CISC): – Μεγάλο πλήθος σύνθετων εντολών, κάνει πιο εύκολο τον προγραμματισμό
– Παραδείγματα: Penium της Intel • Αρχικά επικράτησε η RISC, η μείωση κόστους οδήγησε σε εξάπλωση της CISC
• CISC: υψηλή κατανάλωση ισχύος • RISC: δημοφιλής σε digital TVs, κινητά, GPS,…
9
Ομάδες εντολών γλώσσας μηχανής
● Ομάδα εντολών μεταφοράς δεδομένων (data transfer): αντιγράφει δεδομένα μεταξύ CPU και κύριας μνήμης. ● LOAD: αντιγράφει δεδομένα από την μνήμη σε έναν καταχωρητή γενικής χρήσης
● STORE: αντιγράφει δεδομένα από έναν καταχωρητή γενικής χρήσης στη μνήμη
● Εντολές Ι/Ο: εντολές για επικοινωνία με μέρη του υπολογιστή εκτός CPU και κύριας μνήμης (π.χ. Σκληρός δίσκος)
● Αριθμητική και λογική ομάδα εντολών (arithmeic / logical): χρησιμοποιεί υπάρχουσες τιμές δεδομένων για να κάνει πράξεις και να υπολογίσει μία νέα τιμή δεδομένων
10
Ομάδες εντολών μηχανής (2) ● Αριθμητική και λογική ομάδα εντολών (arithmeic / logical):
● Αριθμητικές πράξεις (+ , -‐ , x , / ) ● Λογικές πράξεις: AND, OR, XOR ● SHIFT / ROTATE: Ολίσθηση περιεχομένων καταχωρητή
● Ομάδα εντολών ελέγχου (control): κατευθύνει την εκτέλεση του προγράμματος
● Εντολή άλματος JUMP (BRANCH): μετάβαση σε κάποια θέση μνήμης για εκτέλεση της εντολής που είναι αποθηκευμένη εκεί
● Υπό συνθήκη JUMP (condiional JUMP): άλμα, αν μια συνθήκη ικανοποιείται (όπως η εντολή if στην C)
● Uncondiional JUMP
11
Επικοινωνία CPU – κύριας μνήμης
Αποθηκεύουμε προγράμματα και δεδομένα
ALU
12
Πρόσθεση τιμών που είναι αποθηκευμένες στη μνήμη
Βήμα 1. Πάρε από τη μνήμη μία από τις τιμές που πρόκειται να προστεθούν και τοποθέτησέ τη σε έναν καταχωρητή.
Βήμα 2. Πάρε από τη μνήμη την άλλη τιμή και τοποθέτησέ τη σε έναν
άλλον καταχωρητή. Βήμα 3. Ενεργοποίησε το κύκλωμα της πρόσθεσης με τους
καταχωρητές που χρησιμοποιήθηκαν στα Βήματα 1 και 2 ως εισόδους και ένα διαφορετικό καταχωρητή για την αποθήκευση του αποτελέσματος.
Βήμα 4. Αποθήκευσε το αποτέλεσμα στη μνήμη. Βήμα 5. Τέλος.
Υλοποιεί την εντολή υψηλού επιπέδου x = y + z
13
Διαίρεση τιμών αποθηκευμένων στη μνήμη
Βήμα 1. ΦΟΡΤΩΣΕ (LOAD) σε έναν καταχωρητή μία τιμή από τη μνήμη. Βήμα 2. ΦΟΡΤΩΣΕ (LOAD) σε ένα διαφορετικό καταχωρητή την άλλη
τιμή από τη μνήμη. Βήμα 3. Αν η δεύτερη τιμή είναι μηδέν, ΠΗΓΑΙΝΕ (JUMP) στο Βήμα 6. Βήμα 4. Διαίρεσε το περιεχόμενο του πρώτου καταχωρητή με το
δεύτερο καταχωρητή και τοποθέτησε το αποτέλεσμα σε έναν τρίτο καταχωρητή.
Βήμα 5. ΑΠΟΘΗΚΕΥΣΕ (STORE) τα περιεχόμενα του τρίτου καταχωρητή
στη μνήμη. Βήμα 6. ΤΕΛΟΣ (STOP).
Υλοποιεί την εντολή υψηλού επιπέδου x = y ÷ z
14
H αρχιτεκτονική του Υπολογιστή
ALU
Απλή δομή για διδακτικούς λόγους
256 κυψελίδες μνήμης: 0,...255 8 bits (1 byte) για περιγραφή κάθε διεύθυνσης μνήμης 8 bits (1 byte) δεδομένων ανά κυψελίδα
16 καταχωρητές γενικής χρήσης 0, ... 15
2 καταχωρητές ειδικής χρήσης : Program Counter (PC), Instrucion Register (IR) 15
Εκτέλεση προγράμματος
● Ελέγχεται από δύο καταχωρητές ειδικής χρήσης: – Μετρητής προγράμματος (Program Counter, PC) : περιέχει την διεύθυνση μνήμης όπου βρίσκεται η επόμενη εντολή προς εκτέλεση
– Καταχωρητής εντολών (Instrucion Register, IR) ο οποίος δείχνει την τρέχουσα εντολή
● Βήματα που ελέγχονται από τη μονάδα ελέγχου: – Προσκόμιση. – Αποκωδικοποίηση. – Εκτέλεση.
16
Τα μέρη μίας εντολής μηχανής ● Αποτελείται από 16 bit (2 bytes) ● Πεδίο κωδικού λειτουργίας (op-‐code): η ακολουθία bit προσδιορίζει
ποια από τις στοιχειώδεις λειτουργίες ζητάει η εντολή – Μία λειτουργία ανά εντολή – Π.χ. LOAD, STORE, JUMP, XOR, SUM,…
● Πεδίο τελεστέων (operand) όπου η ακολουθία bit παρέχει πιο λεπτομερείς πληροφορίες σχετικά με την εντολή
– Το πλήθος των τελεστέων διαφέρει ανάλογα με το κωδικό λειτουργίας. – Π.χ. Στο LOAD περιλαμβάνει τη θέση μνήμης από όπου θα πάρουμε τα
δεδομένα και τον αριθμό του καταχωρητή όπου θα τα αντιγράψουμε – Στο SUM περιλαμβάνει τους καταχωρητές των 2 όρων του αθροίσματος
και τον αριθμό του καταχωρητή όπου πρέπει να καταγραφεί το άθροισμα – Κ.ο.κ
17
2-‐18
Παράδειγμα εντολής
A-‐19
Παράρτημα Γ: Μια Απλή Γλώσσα Μηχανής
Κωδ. Λειτ.
Τελεστέος Περιγραφή
1 R X Y Φορτώνει (LOAD) τον καταχωρητή R µε την ακολουθία bit που υπάρχει στο κελί µνήµης µε διεύθυνση XY.
2 R X Y Φορτώνει (LOAD) τον καταχωρητή R µε την ακολουθία bit XY.
3 R X Y Αποθηκεύει (STORE) την ακολουθία bit που περιέχει ο καταχωρητής R στο κελί µνήµης µε διεύθυνση XY.
4 0 R S Μετακινεί (MOVE) την ακολουθία bit που περιέχει ο καταχωρητής R στον καταχωρητή S.
A-‐20
Παράρτημα Γ: Μια Απλή Γλώσσα Μηχανής (2)
Κωδ Λειτ.
Τελεστέος Περιγραφή
5 R S T Προσθέτει (ADD) τις ακολουθίες bit των καταχωρητών S και T (σε µορφή συµπληρώµατος ως προς δύο), και τοποθετεί το αποτέλεσµα στον καταχωρητή R.
6 R S T Προσθέτει (ADD) τις ακολουθίες bit των καταχωρητών S και T (σε µορφή κινητής υποδιαστολής), και τοποθετεί το αποτέλεσµα στον καταχωρητή R.
7 R S T Εκτελεί την πράξη OR στις ακολουθίες bit των καταχωρητών S και Τ και τοποθετεί το αποτέλεσµα στον καταχωρητή R.
8 R S T Εκτελεί την πράξη AND στις ακολουθίες bit των καταχωρητών S και Τ και τοποθετεί το αποτέλεσµα στον καταχωρητή R.
A-‐21
Παράρτημα Γ: Μια Απλή Γλώσσα Μηχανής (3)
Κωδ Λειτ.
Τελεστέος Περιγραφή
9 R S T Εκτελεί την πράξη ΧOR στις ακολουθίες bit των καταχωρητών S και Τ και τοποθετεί το αποτέλεσµα στον καταχωρητή R.
A R 0 X Περιστρέφει (rotate) την ακολουθία bit του καταχωρητή R ένα bit προς τα δεξιά Χ φορές. Το bit του άκρου χαµηλής τάξης (LSB) τοποθετείται στο άκρο υψηλής τάξης (MSB).
B R X Y Μεταπηδά (JUMP) στην εντολή που βρίσκεται στο κελί µνήµης ΧΥ, αν η ακολουθία bit του R είναι ίδια µε την ακολουθία bit του καταχωρητή 0. Αλλιώς συνεχίζεται η κανονική ροή της εκτέλεσης.
C 0 0 0 Τερµατίζει (HALT) την εκτέλεση.
2-‐22
Αποκωδικοποίηση της εντολής 35A7
Αρχιτεκτονική της μηχανής μας
CPU
Register 0
Program counter
00010011
00000100
Instrucion register 0001 0000 00010001
0 1 2 3
00010011 17
Μνήμη
1 B
Register 1
…
…
1 B
4
Εντολές = 2 Βytes, άρα αρχίζουν σε ζυγές θέσεις μνήμης δεδομένα = 1 Βyte, οπουδήποτε στη μνήμη
Έστω τώρα στην θέση Μνήμης 2-‐3
Load: Φόρτωσε Τον κ/τή 0000 με τα περιχόμενα της δ/νσης μνήμης 17
23
Βήμα 1. Πάρε από τη μνήμη μία από τις τιμές που πρόκειται να προστεθούν και τοποθέτησέ τη σε έναν καταχωρητή. Βήμα 2. Πάρε από τη μνήμη την άλλη τιμή και τοποθέτησέ τη σε έναν άλλον καταχωρητή. Βήμα 3. Ενεργοποίησε το κύκλωμα της πρόσθεσης με τους καταχωρητές που χρησιμοποιήθηκαν στα Βήματα 1 και 2 ως εισόδους και ένα διαφορετικό καταχωρητή για την αποθήκευση του αποτελέσματος. Βήμα 4. Αποθήκευσε το αποτέλεσμα στη μνήμη. Βήμα 5. Τέλος
Παράδειγμα προγράμματος Κωδικοποιηµένες Εντολές Ερµηνεία
1 5 6 C Φόρτωσε στον καταχωρητη 5 την ακολουθία bit που βρίσκεται στο κελί µνήµης µε διεύθυνση 6C
1 6 6 D Φόρτωσε στον καταχωρητη 6 την ακολουθία bit που βρίσκεται στο κελί µνήµης µε διεύθυνση 6D
5 0 5 6 Πρόσθεσε τα περιεχόµενα των καταχωρητών 5 και 6 (µε δεδοµένο ότι βρίσκονται σε µορφή συµπληρώµατος ως προς δύο), και αποθήκευσε το αποτέλεσµα στον καταχωρητή 0
3 0 6 E Αποθήκευσε τα περιεχόµενα του καταχωρητή 0 στο κελί µνήµης µε διεύθυνση 6Ε
C 0 0 0 Τέλος
24
Ο κύκλος μηχανής
25
Ρόλος της CPU • Αν η εντολή είναι LOAD από τη μνήμη, η CPU:
– στέλνει κατάλληλα σήματα στη μνήμη – Περιμένει μέχρι η μνήμη να στείλει τα δεδομένα – Τοποθετεί τα δεδομένα στον αντίστοιχο καταχωρητή
• Αν η εντολή είναι αριθμητική πράξη, η CPU: – Ενεργοποιεί το κατάλληλο κύκλωμα στην ALU – Περιμένει να γίνει η εκτέλεση της πράξης – Τοποθετεί το αποτέλεσμα της πράξης στον κατάλληλο καταχωρητή
• Αφού εκτελεστεί η εντολή στον instrucion register, ξεκινά νέος κύκλος και η CPU φέρνει την επόμενη εντολή από την μνήμη
26
Αποκωδικοποίηση μιας άλλης εντολής
• JUMP: άλμα υπό συνθήκη • Αν [Κατ.0] ≠ [Κατ.2], εντολή τερματίζεται,
πηγαίνουμε στην επόμενη • Αν [Κατ.0] = [Κατ.2], η τιμή 5 8
εγγράφεται στον Program Counter
• Τι σημαίνει η εντολή Β 0 5 8 ?
JUMP
27
Παράδειγμα εκτέλεσης προγράμματος
156C Φόρτωσε στον καταχωρητη 5 το σχήμα bit που βρίσκεται στο κελί μνήμης με διεύθυνση 6C. 166D Φόρτωσε στον καταχωρητη 6 το σχήμα bit που βρίσκεται στο κελί μνήμης με διεύθυνση 6D. 5056 Πρόσθεσε τα περιεχόμενα των καταχωρητών 5 και 6 με δεδομένο ότι βρίσκονται σε μορφή συμπληρώματος ως προς δύο, και αποθήκευσε το αποτέλεσμα στον καταχωρητή 0. 306E Αποθήκευσε τα περιεχόμενα του καταχωρητή 0 στο κελί μνήμης με διεύθυνση 6Ε. C000 Τέλος.
28
Εκτέλεση του βήματος προσκόμισης (Fetch) του κύκλου μηχανής – (α)
29
Εκτέλεση του βήματος προσκόμισης (Fetch) του κύκλου μηχανής – (β)
30
Εκτέλεση του βήματος προσκόμισης (Fetch) του κύκλου μηχανής – (γ)
• Κατόπιν, γίνεται ανάλυση της εντολής 1 5 6 C που βρίσκεται στον καταχωρητή εντολών
• LOAD register 5 με περιεχόμενα της διεύθυνσης μνήμης 6 C
• Στέλνεται σήμα στην διεύθυνση μνήμης 6 C • Η διεύθυνση 6 C στέλνει τα περιεχόμενά της και αυτά φορτώνονται στον καταχωρητή 5
• Νέος κύκλος Fetch – CPU Κοιτάζει διεύθυνση μνήμης Α2 που υπάρχει στον Program Counter
– Εντολή 1 6 6 D έρχεται στον Instrucion counter – Program Counter = A4
• Κ.ο.κ 31
Παράδειγμα περιστροφής προς τα δεξιά
32
Αριθμητικές και λογικές πράξεις ● Λογικές πράξεις : AND, OR, XOR. ● Πράξεις περιστροφής (rotaion) και ολίσθησης (shi¤): ● κυκλική ολίσθηση (π.χ. Προς τα δεξιά): το δεξιότερο bit που βγαίνει εκτός byte πηγαίνει στο αριστερότερο άκρο που μένει κενό
● λογική ολίσθηση (π.χ. προς τα αριστερά): το δεξιότερο bit μένει κενό, μπαίνει 0 ● Αριστερή λογική ολίσθηση κατά 1, ισοδυναμεί με πολ/σμό επί 2)
● Αριθμητικές πράξεις: πρόσθεση, αφαίρεση, πολ/σμός, διαίρεση. – Αλλάζουν ανάλογα με το αν γίνεται για ακεραίους (π.χ. Με αναπαράσταση συμπληρώματος ως προς 2) ή για floaing-‐point
– Πολ/σμός και διαίρεση προκύπτουν με επαναλαμβανόμενες προσθέσεις και αφαιρέσεις αντίστοιχα
33
Επικοινωνία με άλλες συσκευές
• Ελεγκτής (controller): Eνδιάμεση συσκευή που χειρίζεται την επικοινωνία μεταξύ του υπολογιστή και μιας άλλης συσκευής – Εξειδικευμένοι ελεγκτές για κάθε τύπο συσκευής – Ελεγκτές γενικής χρήσης (USB και FireWire): χειρισμός διαφορετικών
ειδών συσκευών (ποντίκια, εκτυπωτές, σαρωτές, εξωτερικοί σκληροί κλπ)
• Θύρα (port): Το σημείο στο οποίο συνδέεται μια συσκευή με τον υπολογιστή
34
Ελεγκτές συνδεδεμένοι στο δίαυλο (bus) μιας μηχανής
35
Είσοδος/Έξοδος αντιστοιχισμένη στην μνήμη
• Ε/Ε αντιστοιχισμένη στη μνήμη (Memory-‐mapped Ιnput/Output): Η CPU (ΚΜΕ) επικοινωνεί με τις περιφερειακές συσκευές σαν να ήταν κελιά μνήμης
• Σε κάθε συσκευή I/O αντιστοιχίζεται μια διεύθυνση, διαφορετική από αυτές της μνήμης
• Μέσω του διαύλου, η ΚΜΕ επικοινωνεί με εντολές LOAD, STORE με τον αντίστοιχο ελεγκτή της περιφερειακής συσκευής – Μπορεί να υπάρχουν διαφορετικές εντολές στο ρεπερτόριο εντολών για επικοινωνία με διαφορετικές συσκευές 36
Επικοινωνία με Άλλες Συσκευές (2)
• Άμεση προσπέλαση μνήμης (Direct Memory Access, DMA): Προσπέλαση κύριας μνήμης από έναν ελεγκτή μέσω του διαύλου – Όταν η CPU δεν χρησιμοποιεί τον δίαυλο και αυτός είναι ελεύθερος
• Π.χ. Αν η CPU πρέπει να μεταφέρει δεδομένα από τον σκληρό δίσκο στην μνήμη: – Η CPU στέλνει τη σχετική εντολή στον ελεγκτή του σκληρού δίσκου. – Μετά συνεχίζει με κάποια άλλη λειτουργία, ενώ ο ελεγκτής μεταφέρει τα δεδομένα από το σκληρό δίσκο στην μνήμη (DMA)
– Οι υπολογιστικοί πόροι της CPU δεν ξοδεύονται κατά τη διάρκεια της (αργής) μεταφοράς δεδομένων
37
Επικοινωνία με Άλλες Συσκευές (3) • Συμφόρηση Von Neumann: Η ανεπαρκής ταχύτητα διαύλου
μειώνει την απόδοση – Ο δίαυλος είναι ένα κοινό μέσο που χρησιμοποιείται για επικοινωνία CPU-‐μνήμης, CPU-‐ελεγκτών, ελεγκτών-‐μνήμης
– Αρχιτεκτονική Von Neumann: η CPU φέρνει τις εντολές από την μνήμη μέσω του διαύλου
• Χειραψία (handshake): Η διαδικασία συντονισμού της μεταφοράς δεδομένων μεταξύ των διαφόρων στοιχείων με διαδοχική ανταλλαγή πληροφορίας
38
Επικοινωνία με Άλλες Συσκευές (4)
• Παράλληλη επικοινωνία: Πολλές διαδρομές επικοινωνίας μεταφέρουν bits ταυτόχρονα
• Σειριακή επικοινωνία: Τα bits μεταφέρονται το ένα μετά το άλλο μέσω μιας μοναδικής διαδρομής επικοινωνίας. – Π.χ. USB, FireWire, Ethernet
• Σειριακή επικοινωνία σε μακρινές αποστάσεις: – Mo-‐dem (modulator-‐demodulator): Μετατροπή των bits σε τόνους
(ακουστικές συχνότητες), μεταφορά τους πάνω από καλώδιο, επαναμετατροπή τόνων σε bits στον προορισμό
– Digital Subscriber Line (DSL)
39
Ρυθμοί Επικοινωνίας • Ταχύτητα μεταφοράς πληροφορίας (μεταξύ στοιχείων
εντός του ίδιου υπολογιστή, ή μεταξύ διαφορετικών υπολογιστών) – Μονάδα πληροφορίας: bit
• Μονάδες μέτρησης – Bps: bits ανά δευτερόλεπτο – Kbps: Kilo-‐bps (1,000 bps) – Mbps: Mega-‐bps (1,000,000 bps) – Gbps: Giga-‐bps (1,000,000,000 bps)
• Εύρος ζώνης (bandwidth): Μέγιστη διαθέσιμη ταχύτητα – Σχετίζεται με τη φέρουσα συχνότητα (carrier frequency) και με το πλήθος συχνοτήτων του τηλεπικοινωνιακού διαύλου
– Δίκτυα ευρείας ζώνης (broadband) 40
Άλλες αρχιτεκτονικές • Διεκπεραιωτική ικανότητα ή ρυθμοαπόδοση (throughput):
συνολικό ποσό εργασίας που μπορεί να εκτελέσει ένας υπολογιστής σε ένα συγκεκριμένο χρονικό διάστημα – Ή, ρυθμός διεκπεραίωσης (αριθμός εργασιών που διεκπεραιώνονται ανά μονάδα χρόνου), π.χ. Εργασίες / sec
• Τεχνολογίες για αύξηση της διεκπεραιωτικής ικανότητας: βασίζονται στον παραλληλισμό
• Διαφορετικοί “βαθμοί” παραλληλισμού – σε επίπεδο εντολής: διοχέτευση (pipelining): αλληλοεπικάλυψη βημάτων του κύκλου μηχανής (π.χ. ενώ εκτελείται μια εντολή Α, η επόμενη εντολή Β μεταφέρεται από την μνήμη προς εκτέλεση)
– παράλληλη εκτέλεση ολόκληρων “νημάτων” (threads) = τμημάτων ενός προγράμματος που μπορούν να εκτελεστούν παράλληλα (είναι ανεξάρτητα)
41
Διοχέτευση • Διοχέτευση (pipelining)= αλληλοεπικάλυψη βημάτων του κύκλου μηχανής
• Βασική διοχέτευση 5 βημάτων σε μια μηχανή τύπου RISC IF = Instrucion Fetch, ID = Instrucion Decode, EX = Execute, MEM = Memory access, WB = Register write back
– Στον 4ο κύκλο, η πρώτη εντολή είναι στο στάδιο MEM, και η τελευταία δεν έχει μπει στο pipeline
42
Παραλληλισμός σε επίπεδο νημάτων (thread)
• Σε διαφορετική κλίμακα: – Ένας διακομιστής μπορεί να εξυπηρετεί κάθε πελάτη με διαφορετικό νήμα (π.χ. Web server, database server)
– Ένα εξάρτημα στον υπολογιστή μπορεί να κάνει υπολογισμούς AI, γραφικά και φυσική σε 3 παράλληλα threads
• Πολυ-‐πύρηνες (Muli-‐core) αρχιτεκτονικές: χρησιμοποιούν εκτενώς παραλληλισμό σε επίπεδο νημάτων
43
Πολυεπεξεργαστές • Νέα τεχνολογία: Πολυ-‐πύρηνοι μικροεπεξεργαστές (muli-‐core microprocessors) – Περισσότεροι του ενός επεξεργαστές ανά τσιπ
• Απαιτεί ρητό παράλληλο προγραμματισμό (explicitly parallel programming) – Το υλικό εκτελεί πολλές εντολές ταυτόχρονα – Χρησιμοποιούνται εκτενώς τα νήματα – Ο προγραμματισμός muli-‐core είναι δύσκολος
• Προγραμματισμός (scheduling) για μέγιστη απόδοση • Εξισορρόπηση φορτίου (load balancing) μεταξύ των επεξεργαστών
• Βελτιστοποίηση επικοινωνίας (communicaion) και συγχρονισμού (synchronizaion)
44
Μονο-‐πύρηνος (single-‐core) υπολογιστής
Τα επόμενα slides απο h®p://www-‐bcf.usc.edu/~jbarbic/muli-‐core-‐15213-‐sp07.ppt
45
Πολυ-‐πύρηνες αρχιτεκτονικές
Core 1 Core 2 Core 3 Core 4
Muli-‐core CPU chip
Σημ: Όλοι οι πυρήνες μοιράζονται την ίδια μνήμη
46
Πολυ-‐πύρηνοι υπολογιστές • Δύσκολο τεχνολογικά να αυξηθεί περαιτέρω η συχνότητα του ρολογιού – Το ρολόι (clock) είναι ένας ταλαντωτής παράγει παλμούς με συγκεκριμένη συχνότητα, π.χ. 3.6GHz
– 1 Hz = 1 κύκλος / δευτερόλεπτο – Συντονίζει τις εργασίες που επιτελούνται στον υπολογιστή
• Προβλήματα υπερθέρμανσης καθώς αυξάνεται η συχνότητα του ρολογιού
• Πολλές νέες εφαρμογές είναι εκ κατασκευής πολλαπλών νημάτων (muli-‐threaded) – Γενική τάση στην αρχιτεκτονική υπολογιστών (στροφή προς περισσότερο παραλληλισμό)
47
Παράλληλες αρχιτεκτονικές • Παράλληλη επεξεργασία: ταυτόχρονη
χρήση πολλών επεξεργαστών – SISD: Καμία παράλληλη επεξεργασία – SIMD: Ίδια ακολουθία εντολών, διαφορετικά σύνολα δεδομένων (π.χ. Μοντέρνες κάρτες γραφικών)
• Κάθε επεξεργαστης εκτελεί την ίδια εργασία με διαφορετικό μέρος των δεδομένων
– MIMD: Διαφορετικές ακολουθίες εντολών, διαφορετικά σύνολα δεδομένων (muli-‐core)
• Κάθε επεξεργαστής εκτελεί ανεξάρτητες και διαφορετικές εργασίες
SI: single instrucion MI: muliple instrucion SD: single data MD: muliple data 48