Εισαγωγή 2011 - Πανεπιστήμιο Μακεδονίας

Αρχιτεκτονική Υπολογιστών
Εισαγωγή
Βασικές Πηγές:
Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum,
Vrije Universiteit, Amsterdam.
Computer Architecture and Engineering, K. Asanovic, CS1/2-52,
University of Berkeley.
Αρχιτεκτονική Υπολογιστών, Ν. Κοζύρης, Εθνικό Μετσόβιο Πολυτεχνείο.
Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός, Π.
Ευριπίδου, Πανεπιστήμιο Κύπρου
Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα
Εφαρμοσμένης Πληροφορικής.
Αρχιτεκτονική Υπολογιστών
Εισαγωγή
Θεματολογία Μαθήματος
Αντικείμενο, Έμφαση, Υλικό, Αξιολόγηση
Επισκόπιση Σύγχρονων Υπολογιστών
Κύρια Συστατικά Μέρη, Παραδείγματα, Απόδοση
Τι είναι Αρχιτεκτονική Υπολογιστών;
Λογισμικό
Μεγάλο χάσμα για
να καλυφθεί σε ένα
βήμα.
Κύκλωμα
Η Αρχιτεκτονική Υπολογιστών ασχολείται με το λογικό σχεδιασμό των
βασικών επιπέδων αφαίρεσης που επιτρέπουν την αποδοτική εκτέλεση του
λογισμικού με βάση τις διαθέσιμες τεχνολογίες κατασκευής ψηφιακών
κυκλωμάτων, με έμφαση στη λειτουργία του συστήματος επεξεργαστής –
κύρια μνήμη, καθώς και την συνεργασία με τα υπόλοιπα συστατικά μέρη του
υπολογιστή. Με μια φράση, ασχολείται με το πώς εκτελείται (αποδοτικά) ένα
πρόγραμμα σε ένα υπολογιστή.
30/09/11
3
Γλώσσες, Επίπεδα Αφαίρεσης, Εικονικές Μηχανές
Μια πολυεπίπεδη μηχανή
Σύγχρονες Πολυεπίπεδες Μηχανές (1)
Εφαρμογές
Πρόγραμμα γλώσσας
υψηλού επιπέδου
Συστήματα
Προγραμματισμού
Πρόγραμμα γλώσσας
assembly
Λειτουργικά
Συστήματα
Σενάριο ή πρόγραμμα με
κλήση συστήματος
Αρχιτεκτονική
- Οργάνωση
Πρόγραμμα σε γλώσσα
μηχανής (ή συμβολική)
Μικροπρόγραμμα ή γλώσσα
μεταφοράς καταχωρητών
Ψηφιακή
Σχεδίαση
Γλώσσα περιγραφής υλικού
ή σχέδιο CAD
Υπολογιστής έξι επιπέδων. Η μέθοδος υποστήριξης και η γλώσσα
υλοποίησης σημειώνεται κάτω (δίπλα) από κάθε επίπεδο.
Σύγχρονες Πολυεπίπεδες Μηχανές (2)
Πρόγραμμα Γλώσσας Υψηλού Επιπέδου
Λογισμικό
Πρόγραμμα Γλώσσας
Μηχανής
Σύνορο
Υλικού/Λογισμικού
Πρόγραμμα Γλώσσας
Assembly
Εφαρμογή
Λειτουργικό
Σύστημα
Μεταγλωττιστής
Assembler, Linker Firmware
Επεξ. Συν. Εντολ. Σύστημα I/O
Αρχιτεκτονική
Συνόλου Εντολών
Έλεγχος και Διαδρομή Δεδομένων
Υλικό
Λογικά Διαγράμματα
Διαγράμματα Κυκλωμάτων
cslab@ntua 2007-2008
Ψηφιακή Σχεδίαση
Σχεδίαση Κυκλωμάτων
Απεικόνιση
Μικροπρόγραμμα
Γλώσσα Μεταφοράς
Καταχωρητή
Γλώσσα Περιγραφής Υλικού
6
Μορφή προγράμματος σε κάθε επίπεδο
temp = v[k];
Πρόγραμμα Γλώσσας
Υψηλού Επιπέδου
v[k] = v[k+1];
v[k+1] = temp;
Μεταγλώττιση
load $15, 0($2)
load $16, 4($2)
store $16, 0($2)
store $15, 4($2)
Πρόγραμμα Γλώσσας
Assembly
Assembly,
Συμβολομετάφραση
ISA
Πρόγραμμα Γλώσσας
Μηχανής
0000
1010
1100
0101
1001
1111
0110
1000
1100
0101
1010
0000
0110
1000
1111
1001
1010
0000
0101
1100
1111
1001
1000
0110
0101
1100
0000
1010
1000
0110
1001
1111
Διερμηνεία, Υλοποίηση
Καθορισμός Σημάτων
Ελέγχου
cslab@ntua 2007-2008
°
°
ALUOP[0:3] <= InstReg[9:11] & MASK
Register Transfer Language (RTL)
7
Αρχιτεκτονική Συνόλου Εντολών
Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture, ISA),
είναι η λογική αφαίρεση ενός υπολογιστικού συστήματος στο
επίπεδο της Γλώσσας Μηχανής (ή της Γλώσσας Assembly χωρίς τις
κλήσεις του ΛειτουργικούΣσυστήματος). Είναι το προγραμματιστικό
μοντέλο (η εικονική μηχανή) που αντιλαμβάνεται ο προγραμματιστής
που προγραμματίζει σε αυτό (το χαμηλότερο δυνατό) επίπεδο.
Περιλαμβάνει το σύνολο (ρεπερτόριο) εντολών, τις μεθόδους
διευθυνσιοδότησης (προσπέλασης μνήμης), τη διαχείριση
καταχωρητών, τη κωδικοποίηση διευθύνσεων και δεδομένων, το
μηχανισμό κλήσης ρουτινών, τη διαχείριση εισόδου/εξόδου, τη
διαχείριση των καταστάσεων και σημάτων διακοπής του
επεξεργαστή. Πρόκειται ουσιαστικά για το σύνορο μεταξύ
περιγραφής ενός υπολογιστικού συστήματος από πλευράς υλικού ή
λογισμικού.
8
cslab@ntua 2007-2008
Παράδειγμα Απλού Συνόλου
Εντολών
9
cslab@ntua 2007-2008
Παράδειγμα
Απλής
Αρχιτεκτονικής
Συνόλου
Εντολών
Μικρο-Αρχιτεκτονική
Μικροαρχιτεκτονική (Microarchitecture), είναι το αμέσως χαμηλότερο
επίπεδο, πιο συγκεκριμένο και λεπτομερές από το επίπεδο
Αρχιτεκτονικής Συνόλου Εντολών. Περιλαμβάνει τη λεπτομερή
περιγραφή του τρόπου σύνδεσης, λειτουργίας και χρονισμού των
συστατικών μερών (του υλικού), έτσι ώστε αυτά να υλοποιούν
(εκτελούν στη κυριολεξία) το σύνολο των εντολών. Δηλαδή τη πλήρη
περιγραφή του κύκλου Ανάκλησης – Εκτέλεσης όλων των εντολών
που υποστηρίζει ο υπολογιστής. Επίσης περιλαμβάνονται και θέματα
Παραλληλισμού Επιπέδου Εντολής (Instruction Level Parallelism,
ILP), δηλαδή αρχιτεκτονικές βελτιώσεις με στόχο την αύξηση της
απόδοσης του επεξεργαστή. Παραδείγματα: Διοχέτευση, Ιεραρχίες
Κρυφής Μνήμης, Υπερβαθμωτή / Πολυνηματική Εκτέλεση,
Πρόβλεψη Διακλαδώσεων, Υλικό Σελιδοποίησης κλπ.
11
cslab@ntua 2007-2008
Παράδειγμα
Απλής
ΜικροΑρχιτεκτονικής
12
cslab@ntua 2007-2008
Παράδειγμα Μικροεντολής ΑDD σε RTL
Κύκλος Μηχανής
Λειτουργία
add1
SP = MAR = SP – 1;rd
add2
Η = ΤΟS
add3
MDR = TOS = MBR + H;wr;
Ψηφιακή Λογική
H Ψηφιακή Λογική (Digital Logic Design) ασχολείται με τη σχεδίαση,
διασύνδεση και γενικότερη ολοκλήρωση των ψηφιακών (κυρίως)
κυκλωμάτων που απαιτούνται για τη λειτουργία ενός υπολογιστή.
Ειδικότερα μετατρέπει τις προδιαγραφές που ορίζει το επίπεδο
Μικροαρχιτεκτονικής σε λειτουργικές προδιαγραφές κατασκευής,
διασύνδεσης και χρονισμού συγκεκριμένων ψηφιακών κυκλωμάτων.
Δεν ασχολείται με καθ' αυτή την υλοποίηση των ψηφιακών
κυκλωμάτων αλλά παράγει σχέδια τα οποία πρέπει να είναι
υλοποιήσιμα με βάση τη τρέχουσα τεχνολογία κατασκευής ψηφιακών
κυκλωμάτων. Ξεχωρίζουμε δύο βασικές κατηγορίες κυκλωμάτων: τα
Συνδυαστικά και τα Ακολουθιακά κυκλώματα. Τα πρώτα εκτελούν
κυρίως Αριθμητικές και Λογικές πράξεις ενώ τα δεύτερα είναι
υπεύθυνα για την αποθήκευση δεδομένων (Μνήμη) και το χρονισμό.
14
cslab@ntua 2007-2008
Παράδειγμα Συνδυαστικού Κυκλώματος
Μια 1-bit
ALU.
Παράδειγμα Ακολουθιακού
Κυκλώματος
Το CK ('χρονισμός') ελέγχει την είσοδο ενώ το ΟΕ ('απομονωτής')
ελέγχει την έξοδο.
Υλικό Μαθήματος (Βιβλία)
* Tanenbaum, Structured Computer Organization
Το πιο αφαιρετικό, με ολιστική, δομημένη προσέγγιση. Επιλογή για αρχική
γνωριμία με την αρχιτεκτονική. Μειονέκτημα η .. έλλειψη λεπτομερειών. Καλή
ελληνική έκδοση.
*Stallings, Computer Organization and Architecture.
Δημοφιλές παραδοσιακό εγχειρίδιο αρχιτεκτονικής. Καλή ελληνική έκδόση.
Πολύ καλό web site με υποστήριξη για φοιτητές.
* Patterson & Hennessy, Computer Organization and Design
Το πιο πλήρες βιβλίο, κυρίως από σχεδιαστική πλευρά. Το μόνο 'μειονέκτημα' το
μέγεθος και ίσως η λεπτομέρεια στο MIPS. Πολύ καλή ελληνική έκδοση.
* Bryant, O'Hallaron, Computer Systems: A Programmer's
Perspective
Το πιο καλό προγραμματιστικά. Το μόνο 'μειονέκτημα' .. ο ΙΑ32. Επιλογή για
προγραμματισμό σε βάθος. Δεν υπάρχει στα Ελληνικά.
17
cslab@ntua 2007-2008
Υλικό Μαθήματος (Διαδίκτυο)
* Compus, httlp://compus.uom.gr
Σύνδεσμοι, ανακοινώσεις, εργασίες, συζήτηση .
* PdP Lab, http://www.it.uom.gr/teaching
Συλλογές διαδικτυακού υλικού, για διάφορα θέματα – αρκετά για αρχιτεκτονική,
προγραμματισμό και υπολογιστικά συστήματα. Εδώ συνήθως οδηγούν οι
σύνδεσμοι του Compus.
* Wikipedia
Το λήμμα computer architecture αποτελεί καλή εκκίνηση.
* Google..
18
cslab@ntua 2007-2008
Σχέδιο Μαθήματος
Εβδομάδα
1
2-5
6-9
10-13
14
Περιγραφή
Εισαγωγή
Ψηφιακή Λογική
Μικροαρχιτεκτονική
Αρχιτεκτονική Συνόλου Εντολών
Διακοπές, Παραλληλισμός
Κεφάλαια
(1,2), Α,Β
3
4
5
5, (8)
19
cslab@ntua 2007-2008
Αξιολόγηση (1)
Εξετάσεις χωρίς βιβλία και σημειώσεις. Χορηγούνται βοηθητικές
φωτοτυπίες (πχ. σχεδιάγραμμα, σύνολο εντολών).
Οδηγός ύλης και ασκήσεων το βιβλίο 'Η αρχιτεκτονική των
υπολογιστών: με δομημένη προσέγγιση', του Α. Tanenbaum,
κυρίως τα κεφάλαια 3, 4 και 5 - τμήματα από τα κεφάλαια 1, 2, 8 και
τα Παραρτήματα.
Έμφαση κυρίως στο προγραμματισμό χαμηλών επιπέδων, λιγότερο
στο σχεδιασμό κυκλωμάτων.
Χρήση εύχρηστων προσομοιωτών με οπτική διεπιφάνεια.
Παραδείγματα πραγματικών αρχιτεκτονικών (Intel) και εικονικής
μηχανής Java (JVM).
cslab@ntua 2007-2008
20
Αξιολόγηση (2)
ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ
Μην αφήσετε την ύλη να συσσωρευτεί..
Σταδιακό διάβασμα σε όλη τη διάρκεια του εξαμήνου.
Εκτύπωση διαφανειών (2/4 ανά σελίδα) και κράτημα σημειώσεων.
Απαιτούνται ΑΡΚΕΤΕΣ μέρες διαβάσματος.
ΟΧΙ αποστήθιση, κατανόηση και επίλυση πολλών ασκήσεων.
21
cslab@ntua 2007-2008
Αξιολόγηση (3)
6 σειρές ασκήσεων για εξάσκηση (οι λύσεις θα δίνονται με
καθυστέρηση). 1 σειρά άλυτων ασκήσεων (ενδεικτικά θέματα).
3 ενδιάμεσες εργασίες προαιρετικές με προφορική εξέταση και 1
μονάδα προσθετική ανά εργασία. Θα ανακοινωθούν έγκαιρα.
Επίλυση αποριών, φροντιστήριο και εργαστήριο:
Παρασκευή 10:00 – 12:00 εργ. 533
22
cslab@ntua 2007-2008
Αρχιτεκτονική Υπολογιστών
Εισαγωγή
Θεματολογία Μαθήματος
Αντικείμενο, Έμφαση, Υλικό, Αξιολόγηση
Επισκόπιση Σύγχρονων Υπολογιστών
Κύρια Συστατικά Μέρη, Παραδείγματα, Απόδοση
Το Φάσμα των Υπολογιστών
Το φάσμα των σύγχρονων υπολογιστών, οι τιμές και τυπικές
εφαρμογές τους.
Μερίδια Αγοράς Επεξεργαστών
Οργάνωση Τυπικού Προσωπικού
Υπολογιστή (PC)
motherboard
ICs
Τα βασικά συστατικά μέρη και η σύνδεσή τους.
Αρχιτεκτονική Απλού Υπολογιστή
Block
Char
Η αρχιτεκτονική (προγραμματιστικό μοντέλο ISA, λογική αφαίρεση)
ενός απλού υπολογιστή με μια CPU και δύο συσκευές I/O
Λειτουργία απλού συστήματος CPU-Μνήμης
Address Content
00..0
01100..0
MAR, MDR
PC, IR
SP, BP
FF..F
0100..0
Memory
CPU
Διαδρομές δεδομένων (όχι ελέγχου) σε μια τυπική CPU
Λογική οργάνωση = Διαχείριση Καταχωρητών, ALU, Μνήμης.
Βασικοί Καταχωρητές
Μετρητής Προγράμματος (Program Counter, PC)
Καταχωρητής Εντολών (Instruction Register, IR)
Καταχωρητής Διευθύνσεων Μνήμης (Memory Address Register, MAR)
Καταχωρητής Δεδομένων Μνήμης (Memory Data Register, MDR)
Συσσωρευτής (Accumulator, AC)
Α, Β, C... (ή Register Bank)
μηχανή στοίβας
= 1 καταχωρητής
= πολλοί καταχωρητές
= “κανένας” καταχωρητής
'Η
'Η
Δείκτης Στοίβας (Stack Pointer, SP)
Δείκτης Βάσης (Base Pointer, BP) και Offset, Index κλπ Registers
Καταχωρητής Κατάστασης (Status Register, SR)
Βήματα Ανάκλησης - Εκτέλεσης
A. Ανάκληση της εντολής που δείχνει ο Μετρητή
Προγράμματος από τη μνήμη και τοποθέτησή της στον
Καταχωρητή Εντολών
B. Τροποποίηση του Μετρητή Προγράμματος ώστε να
δείχνει την επόμενη εντολή
C. Αποκωδικοποίηση της εντολής που βρίσκεται στον
Καταχωρητή Εντολών
D. Αν η εντολή χρησιμοποιεί δεδομένα που βρίσκονται στη
μνήμη, τότε γίνεται ανάκληση των δεδομένων σε
καταχωρητή(ές) της CPU
E. Εκτέλεση της εντολής και (πιθανή) αποθήκευση του
αποτελέσματος σε καταχωρητή της CPU ή στη μνήμη
F. Επανάληψη από το βήμα Α
Διερμηνέας (1)
...
Διερμηνέας για έναν απλό επεξεργαστή με AC (σε Java).
Διερμηνέας (2)
Διερμηνέας για έναν απλό επεξεργαστή με AC (σε Java).
Παράδειγμα AC
Βήματα Ανάκλησης – Εκτέλεσης
Παράδειγμα AC
int x, y, z;
x = y + z;
Γλώσσα Υψηλού Επιπέδου
load 0xA2
add 0xA4
store 0xA0
Γλώσσα Assembly
// AC := AC + mem(0xA4)
0100 1010 0010
0110 1010 0100
0101 1010 0000
Γλώσσα Μηχανής
IR := Mem(PC); PC := PC + len(instr);
Decode (Opcode(IR));
MAR := Operand(IR);AC := MDR(MAR);
Γλώσσα Μεταφοράς Καταχωρητών
Συσχέτιση με Γλώσσα Μηχανής =
Μικροαρχιτεκτονική
Παράδειγμα Stack
Βήματα Ανάκλησης – Εκτέλεσης
Παράδειγμα Stack
int x, y, z;
x = y + z;
load 0xA2
load 0xA4
add
store 0xA0
Γλώσσα Υψηλού Επιπέδου
ή push 0xA2
ή push 0xA4
Γλώσσα Assembly
// pop, pop, add, push
ή pop 0xA0
0100 1010 0010
0100 1010 0100
0110
0101 1010 000
Γλώσσα Μηχανής
Παράδειγμα Regs
Βήματα Ανάκλησης – Εκτέλεσης
Παράδειγμα Regs
int x, y, z;
x = y + z;
Γλώσσα Υψηλού Επιπέδου
``
load A, 0xA2
load B, 0xA4
add C, A, B
store C, 0xA0
Εκδοχές Γλώσσας Assembly
load A, 0xA2
add C, A, OxA4
store C, 0xA0
0100 0000 1010 0010
0100 0001 1010 0100
0110 0010 0000 0001
0101 0000 1010 0000
add C, 0xA2, 0xA4
store C, 0xA0
add 0xA0, 0xA2,0xA4
Αντίστοιχες εντολές σε γλώσσα μηχανής;
Προβλήματα αναπαράστασης, απόδοσης;
Βασικοί Tύποι Συνόλου Εντολών
Γλώσσας Μηχανής
Μετακίνηση Δεδομένων (από/προς μνήμη/καταχωρητές)

Αριθμητικές - Λογικές Πράξεις, Συγκρίσεις

Έλεγχος ροής προγράμματος (μεταβολή PC) με συνθήκη
ή χωρίς

Κλήση ρουτίνας και Επιστροφή
-------------------------------------------------------------------------
Είσοδος - 'Εξoδος

Κατάσταση Επεξεργαστή - Διαχείριση Διακοπών

Παράδειγμα Χρήσης Εντολών:
Top 10 Intel X86 Instructions
Κατηγορία
Εντολή
Μέσο ποσοστό συνολικής εκτέλεσης
1
load
22%
2
conditional branch
20%
3
compare
16%
4
store
12%
5
add
8%
6
and
6%
7
sub
5%
8
move register-register
4%
9
call
1%
10
return
1%
Total
96%
Κινήσεις = 38% Πράξεις = 35% Διακλαδώσεις = 20% Κλήσεις = 2%
cslab@ntua 2007-2008
40
Διερμηνεία και Μικροκώδικας
Διερμηνεία (σε επίπεδο μικροαρχιτεκτονικής):
η εντολή γλώσσας μηχανής αναλύεται σε βήματα από στοιχειώδη
σήματα ελέχου που υλοποιούνται σε διαδοχικούς κύκλους μηχανής.
Κάθε βήμα είναι μια μικροεντολή και και το σύνολο των μικροεντολών
είναι ο μικροκώδικας. Όλα βρίσκονται σε μικρο-ROM.
ΥΠΕΡ
* Υλοποίηση του ίδιου συνόλου εντολών από διαφορετικό υλικό.
* Υλοποίηση σύνθετων εντολών χωρίς απαραίτητα να υπάρχει
σύνθετο υλικό (κύκλοι μηχανής).
* Τροποποίηση συνόλου εντολών χωρίς αλλαγή υλικού.
* Δομημένος / εύκολος σχεδιασμός (επίπεδο αφαίρεσης).
ΚΑΤΑ
* Κόστος απόδοσης (κύκλοι ανάκλησης εκτέλεσης μικρο-ROM )
RISC και CISC
Η Διερμηνεία στα όρια της (VAX). Ολο και πιο σύνθετο σύνολο εντολών
γλώσσας μηχανής (200-300 εντολές). Σχετικά σύντομος κώδικας γλώσσας
μηχανής αλλά πολύπλοκες-αργές εντολές.
Complex Instruction Set Computer (CISC)
Εναλλακτική ιδέα. Ένα σύνολο εντολών γλώσσας μηχανής δύο επιπέδων.
Οι βασικές, συχνά χρησιμοποιούμενες εντολές υλοποιούνται αποδοτικά
απ'ευθείας στο υλικό. Οι υπόλοιπες.. μπορούν να αναλυθούν από το
μεταγλωττιστή ή να διερμηνευτούν. Σχετικά μακροσκελής κώδικας
γλώσσας αλλά απλές-γρήγορες εντολές και δυνατότητα 'αναδιοργάνωσης'
κώδικα.
Reduced Instruction Set Computer (RISC)
Μετά από αρκετές διαμάχες.. η λύση κάπου στη μέση.
Νέος και απλός (MIPS, SPARC, PowerPC, ..) ? RISC
Παλιός και σύνθετος (Pentium, ..) ? CISC πάνω από RISC (ακόμη ένα
κρυμμένο επίπεδο αφαίρεσης..).
Αρχές Σχεδιασμού Υπολογιστών
Όλες οι βασικές εντολές εκτελούνται απ' ευθείας στο υλικό (οι
σύνθετες εντολές ίσως υλοποιούνται με μικροκώδικα).
Μεγιστοποίηση του ρυθμού υποβολής εντολών στη CPU (τεχνικές
Παραλληλίας Επιπέδου Εντολής, ILP).
Εύκολη αποκωδικοποίηση εντολών (μικρό σχετικά σύνολο από
σχετικά απλές εντολές).
Ελαχιστοποίηση προσπέλασης στη μνήμη, με ειδικές εντολές Load,
Store μιας διεύθυνσης και χρήση Ιεραρχίας Κρυφής Μνήμης.
Αφθονία όμοιων καταχωρητών (μεγάλο register file).
Παραλληλισμός όπου είναι δυνατό!!
Επίπεδα Παραλληλισμού
Επίπεδο Δεδομένων (Data Level Parallelism, DLP): ταυτόχρονη εκτέλεση
πράξεων σε ομοειδή δεδομένα, σεALU, κυλώματα ή και συνεπεξεργαστές
ειδικού σκοπού, (32/64 bits, εσωτερικό GPU).
Επίπεδο Εντολής (Instruction Level Parallelism, ILP): ταυτόχρονη εκτέλεση
διαφορετικών εντολών ενός προγράμματος (Διοχέτευση, Υπερβαθμωτή
εκτέλεση).
Επίπέδο Εργασίας (Task/Thread Level Parallelism, Multithreading):
ταυτόχρονη εκτέλεση πολλαπλών νημάτων (διεργασιών).
Επίπέδο Λειτουργίας (Functional Parallelism): ταυτόχρονη εκτέλεση
λειτουργιών (συνεπεξεργαστές GPU, DMA, I/O ..)
Επίπέδο Επεξεργαστή/Υπολογιστή (Multiprocessors, Multicomputers):
ταυτόχρονη εκτέλεση ενός ή διαφορετικών προγραμμάτων σε πολλαπλούς
επεξεργαστές (multi-cores, clusters).
Κύρια Μνήμη
Λογική Οργάνωση Διευθύνσεων
Τρείς οπτικές μιας μνήμης των 96 bit.
Κρυφή Μνήμη (Cache) (1)
Από λογική (αρχιτεκτονική) άποψη η cache είναι μεταξύ της CPU
και της Κύριας Μνήμης.
Κρυφή Μνήμη (Cache) (2)
Από φυσική (οργανωτική) άποψη, συνήθως έχουμε πολλαπλά επίπεδα
cache (L1/2/3) που βρίσκονται μέσα ή έξω από τον επεξεργαστή με
διαφορετική ταχύτητα, χωρητικότητα και λειτουργικότητα (Εντολές,
Δεδομένα).
Αρχή Τοπικότητας
Ένα πρόγραμμα έχει τη τάση να προσπελαύνει σε κάθε χρονική στιγμή
δεδομένα και εντολές σε σχετικά περιορισμένο χώρο διευθύνσεων.
Δύο ειδών τοπικότητες:
Χρονική Τοπικότητα: Αν μια θέση μνήμης προσπελαστεί μια φορά, τότε
πιθανότατα θα ξαναχρησιμοποιηθεί τις επόμενες χρονικές στιγμές.
Παράδειγμα: εντολές βρόχων επανάληψης
Χωρική Τοπικότητα: Αν μια θέση μνήμης προσπελαστεί, τότε
πιθανότατα σύντομα θα προσπελαστούν και οι γειτονικές θέσεις μνήμης
Παράδειγμα: πίνακες και άλλες δομές δεδομένων.
Χαρακτηριστικά Cache
Κόστος L1 > Kόστος L2 > Κόστος L3 > Κόστος Κύριας Μνήμης.
Ταχύτητα L1 < Ταχύτητα L2 < Ταχύτητα L3 < Ταχύτητα Κ. Μνήμης
Μέγεθος L1 < Μέγεθος L2 < Μέγεθος L3 < Μέγεθος Κ. Μνήμης
Μέγεθος Cache < 1% Μέγεθος Κύριας Μνήμης
Διαφορές με Καταχωρητές:
* Η Cache είναι διαφανής στο επίπεδο συνόλου εντολών (δεν
υπάρχουν δηλαδή ειδικές εντολές γλώσσας μηχανής).
* Η διαχείριση της Cache γίνεται από το υλικό, όχι το λογισμικό.
* Η Cache αποθηκεύει δεδομένα και εντολές.
Ιεραρχία Μνήμης
L1 Instruction/Data on chip
Εντολές καταχωρητών
*
L2 on chip package
L3 on board
*
Virtual memory
Εντολές μνήμης
*
Εντολές Ι/Ο
Μια ιεραρχία μνήμης με πέντε (ή εννέα) φυσικά επίπεδα. Τα
λογικά επίπεδα είναι τρία (σημειώνονται με *).
Δίαυλοι
Τυπικό σύστημα υπολογιστή με πολλαπλούς διαύλος.
Βus Controller: Διαιτητής Διαύλου.
Χωρικός διαχωρισμός: Δίαυλοι εσωτερικοί (της CPU), Δίαυλοι Συστήματoς: Μνήμης και Ι/Ο.
Λογικός διαχωρισμός: Δίαυλος Δεδομένων (Data Bus), Δίαυλος Διευθύνσεων (Address Bus).
Δίαυλος Ελέγχου (Control Bus)
Οικογένεια Intel (1)
Η οικογένεια CPU της Intel. Ταχύτητες ρολογιού σε MHZ,
με 1 MHZ = 1 εκ. κύκλοι/sec.
Οικογένεια Intel (2)
Ο νόμος του Moore για τα CPU chips της Intel.
Απόδοση (1)
Time = I x CPI x Clock Cycle Time
- I: Instrumentation (Ενοργάνωση: δηλαδή αρχιτεκτονική και
μεταγλωττιστής, συγκεκριμένα πρόγραμμα και δεδομένα)
- CPI: Cycles Per Instruction (μικροαρχιτεκτονική, oργάνωση)
- Clock Cycle Time: Tεχνολογία (ταχύτητα ρολογιού)
Αλληλεπιδράσεις μεταξύ Ι, CPI και Clock Cycle Time (ίσως και
αλληλοσυγκρουόμενοι στόχοι).
Για κάθε κατηγόρια εντολών: μέσος όρος κύκλων ανά εντολή
(CPI) επί το μέσο ποσοστό εντολών ανά πρόγραμμα.
54
Απόδοση (2)
FLOPs: Floating Point Operations per Second
MIPs: Million Instructions per Second
MIPs = Εντολές/Χρόνος Χ 106 ή Συχνότητα/CPI X 106
Έστω ότι έχουμε έναν επεξεργαστή που κάνει 1 πράξη κινητής
υποδιαστολής (απλής ακρίβειας) σε κάθε κύκλο ρολογιού:
Αν η συχνότητά του είναι 1GHz, τότε έχει απόδοση 1 GFLOP
Αν ολοκληρώνει 1 εντολή σε κάθε κύκλο, τότε έχει απόδοση 1000MIPs
4 x freq FLOPS < {single Core 2 @ 2.93GHz} < 8 x freq FLOPs
Εξαρτάται από την πράξη, FPADD, FPMUL, FPDIV (απλής ακριβείας).
Για σύγχρονους επεξεργαστές τουλάχιστον 12 GFLOPs/cpu
55
Απόδοση (3)
SPEC Benchmark (Μετροπρόγραμμα)
www.spec.org
Γιά κάθε πρόγραμμα i υπολόγιζει το execution ratio (ER)
ERi=(χρονος σε 300 MHz UltraSun 5_10 / Χρονος μηχανής
μέτρησης )* 100
Γεωμετρικός Μέσος των Execution Ratios n προγραμμάτων με
Γεωμετρικό Μέσο
______
SpecRatio = √Π (ERi) i=1,2,..,n
- SPEC CPU2006: 12 integer και 17 floating point εφαρμογές
- SPECThroughput, SPECJava... κλπ
56