Περιεχόμενα. 1 Αφηρημένες έννοιες και τεχνολογία υπολογιστών 20. 2 Εντολές: η γλώσσα του υπολογιστή 64. Πρόλογος 11 Πρόλογος της Ελληνικής Έκδοσης 18



Σχετικά έγγραφα
Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy

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

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

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

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Εισαγωγή Συμβόλαιο Μαθήματος

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

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

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

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

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

Chapter 4 ( ή 1 στο βιβλίο σας)

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

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

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

Φόρμα Σχεδιασμού Διάλεξης (ημ/α:15/10/07, έκδοση:0.1 ) 1. Κωδικός Μαθήματος : 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ

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

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 1 ο

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

Περιεχόμενα. Γ Τα βασικά της λογικής σχεδίασης Δ Αντιστοίχιση του ελέγχου στο υλικό Π Α Ρ Α Ρ Τ Η Μ Α Τ Α

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

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

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

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

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

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

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΑΝΤΩΝΗΣ ΠΑΣΧΑΛΗΣ

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

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

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

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

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Παράρτηµα Γ. Τα Βασικά της Λογικής Σχεδίασης. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 2. Εντολές : Η γλώσσα του υπολογιστή

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

Κεφάλαιο 4. Ο επεξεργαστής. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

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

Σχεδίαση μονάδας ελέγχου επεξεργαστή

Παραλληλισμός σε επίπεδο εντολών

ΗΥ 232. Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 1. Εισαγωγή στο μάθημα. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

Περιεχόμενα. Πρόλογος... XI. Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA Κεφάλαιο 2. Τεχνολογία VLSI Εισαγωγή Βασικές Αρχές...

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

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

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI. Μανόλης Γ.Η. Κατεβαίνης

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

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

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

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

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

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

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

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

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

Τεχνολογίες Κύριας Μνήμης

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

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

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

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

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

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος

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

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

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

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

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

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

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

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

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

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

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

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

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

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

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

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

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

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Transcript:

Περιεχόμενα Πρόλογος 11 Πρόλογος της Ελληνικής Έκδοσης 18 1 Αφηρημένες έννοιες και τεχνολογία υπολογιστών 20 1.1 Εισαγωγή 21 1.2 Κάτω από το πρόγραμμά σας 29 1.3 Κάτω από το κάλυμμα 33 1.4 Πραγματικότητα: κατασκευή ολοκληρωμένων κυκλωμάτων (chip) Pentium 4 46 1.5 Πλάνες και παγίδες 51 1.6 Συμπερασματικές παρατηρήσεις 53 1.7 Ιστορική προοπτική και πρόσθετες πηγές 54 1.8 Ασκήσεις 54 ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΣΤΟΝ ΠΡΑΓΜΑΤΙΚΟ ΚΟΣΜΟ Η Τεχνολογία των πληροφοριών για τα 4 δισεκατομμύρια που δεν τη διαθέτουν 62 2 Εντολές: η γλώσσα του υπολογιστή 64 2.1 Εισαγωγή 66 2.2 Λειτουργίες του υλικού των υπολογιστών 67 2.3 Τελεστέοι υλικού των υπολογιστών 70 2.4 Αναπαράσταση εντολών στον υπολογιστή 78 2.5 Λογικές λειτουργίες (πράξεις) 86 2.6 Εντολές λήψης αποφάσεων 90 2.7 Υποστήριξη διαδικασιών στο υλικό των υπολογιστών 97 2.8 Η επικοινωνία με τους ανθρώπους 108 2.9 Διευθυνσιοδότηση του MIPS για άμεσους τελεστέους και διευθύνσεις 32 bit 113 2.10 Μετάφραση και εκκίνηση προγράμματος 124 2.11 Πώς βελτιστοποιούν οι μεταγλωττιστές 134 2.12 Πώς δουλεύουν οι μεταγλωττιστές: εισαγωγή 139 2.13 Ένα παράδειγμα ταξινόμησης στη C που τα συνδυάζει όλα 139

6 Περιεχόμενα 2.14 Υλοποίηση μιας αντικειμενοστρεφούς γλώσσας 148 2.15 Πίνακες ή δείκτες; 148 2.16 Πραγματικότητα: εντολές τής IA-32 152 2.17 Πλάνες και παγίδες 161 2.18 Συμπερασματικές παρατηρήσεις 163 2.19 Ιστορική προοπτική και πρόσθετες πηγές 165 2.20 Ασκήσεις 166 ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΣΤΟΝ ΠΡΑΓΜΑΤΙΚΟ ΚΟΣΜΟ Βοήθεια στη διάσωση του περιβάλλοντος με δεδομένα 174 3 Αριθμητική για υπολογιστές 176 3.1 Εισαγωγή 178 3.2 Προσημασμένοι και απρόσημοι αριθμοί 178 3.3 Πρόσθεση και αφαίρεση 188 3.4 Πολλαπλασιασμός 194 3.5 Διαίρεση 201 3.6 Κινητή υποδιαστολή 207 3.7 Πραγματικότητα: κινητή υποδιαστολή στην αρχιτεκτονική IA-32 235 3.8 Πλάνες και παγίδες 238 3.9 Συμπερασματικές παρατηρήσεις 243 3.10 Ιστορική προοπτική και πρόσθετες πηγές 247 3.11 Ασκήσεις 247 ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΣΤΟΝ ΠΡΑΓΜΑΤΙΚΟ ΚΟΣΜΟ Ανακατασκευή του αρχαίου κόσμου 254 4 Αξιολόγηση και κατανόηση της απόδοσης 256 4.1 Εισαγωγή 258 4.2 Απόδοση CPU και παράγοντες που την επηρεάζουν 264 4.3 Αξιολόγηση της απόδοσης 272 4.4 Πραγματικότητα: δύο μετροπρογράμματα SPEC και η απόδοση των πρόσφατων επεξεργαστών της Intel 277 4.5 Πλάνες και παγίδες 284 4.6 Συμπερασματικές παρατηρήσεις 288 4.7 Ιστορική προοπτική και πρόσθετες πηγές 290 4.8 Ασκήσεις 290 ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΣΤΟΝ ΠΡΑΓΜΑΤΙΚΟ ΚΟΣΜΟ Ταχύτερες και ασφαλέστερες μεταφορές ανθρώπων 298

Περιεχόμενα 7 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου 300 5.1 Εισαγωγή 302 5.2 Συμβάσεις λογικής σχεδίασης 307 5.3 Κατασκευή διαδρομής δεδομένων 310 5.4 Μια απλή μέθοδος υλοποίησης 318 5.5 Μια υλοποίηση πολλών κύκλων 336 5.6 Εξαιρέσεις 358 5.7 Μικροπρογραμματισμός: απλοποίηση της σχεδίασης της μονάδας ελέγχου 364 5.8 Μια εισαγωγή στην ψηφιακή σχεδίαση με τη χρήση γλώσσας περιγραφής υλικού 364 5.9 Πραγματικότητα: η οργάνωση των πρόσφατων υλοποιήσεων του Pentium 365 5.10 Πλάνες και παγίδες 368 5.11 Συμπερασματικές παρατηρήσεις 370 5.12 Ιστορική προοπτική και πρόσθετες πηγές 371 5.13 Ασκήσεις 372 ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΣΤΟΝ ΠΡΑΓΜΑΤΙΚΟ ΚΟΣΜΟ Ενίσχυση των αναπήρων 384 6 Αύξηση της απόδοσης με διοχέτευση 386 6.1 Γενικά για τη διοχέτευση 388 6.2 Μια διαδρομή δεδομένων με διοχέτευση 402 6.3 Μονάδα ελέγχου διοχέτευσης 417 6.4 Κίνδυνοι δεδομένων και προώθηση 420 6.5 Κίνδυνοι δεδομένων και καθυστερήσεις 431 6.6 Κίνδυνοι διακλάδωσης 434 6.7 Χρήση γλώσσας περιγραφής υλικού για την περιγραφή και τη μοντελοποίηση διοχέτευσης 444 6.8 Εξαιρέσεις 445 6.9 Προηγμένη διοχέτευση: ακόμη καλύτερη απόδοση 450 6.10 Πραγματικότητα: η διοχέτευση του Pentium 4 466 6.11 Πλάνες και παγίδες 469 6.12 Συμπερασματικές παρατηρήσεις 470 6.13 Ιστορική προοπτική και πρόσθετες πηγές 472 6.14 Ασκήσεις 472 ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΣΤΟΝ ΠΡΑΓΜΑΤΙΚΟ ΚΟΣΜΟ Μαζική επικοινωνία χωρίς περιορισμούς 482

8 Περιεχόμενα 7 Μεγάλη και γρήγορη: αξιοποίηση της ιεραρχίας τής μνήμης 484 7.1 Εισαγωγή 486 7.2 Τα βασικά των κρυφών μνημών 491 7.3 Μέτρηση και βελτίωση της απόδοσης της κρυφής μνήμης 510 7.4 Εικονική μνήμη 529 7.5 Ένα κοινό πλαίσιο για ιεραρχίες μνήμης 556 7.6 Πραγματικότητα: οι ιεραρχίες μνήμης του Pentium P4 και του AMD Opteron 564 7.7 Πλάνες και παγίδες 568 7.8 Συμπερασματικές παρατηρήσεις 570 7.9 Ιστορική προοπτική και πρόσθετες πηγές 573 7.10 Ασκήσεις 574 ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΣΤΟΝ ΠΡΑΓΜΑΤΙΚΟ ΚΟΣΜΟ Διάσωση των καλλιτεχνικών θησαυρών της ανθρωπότητας 582 8 Αποθήκευση, δίκτυα, και άλλα περιφερειακά 584 8.1 Εισαγωγή 586 8.2 Αποθήκευση στο δίσκο και φερεγγυότητα 589 8.3 Δίκτυα 600 8.4 Δίαυλοι και άλλες συνδέσεις μεταξύ επεξεργαστών, μνήμης, και συσκευών εισόδου/εξόδου 601 8.5 Διασύνδεση συσκευών εισόδου/εξόδου με τον επεξεργαστή, τη μνήμη, και το λειτουργικό σύστημα 608 8.6 Μέτρα της επίδοσης εισόδου/εξόδου: παραδείγματα από συστήματα δίσκων και αρχείων 618 8.7 Σχεδίαση συστήματος εισόδου/εξόδου 622 8.8 Πραγματικότητα: μια ψηφιακή φωτογραφική μηχανή 624 8.9 Πλάνες και παγίδες 628 8.10 Συμπερασματικές παρατηρήσεις 632 8.11 Ιστορική προοπτική και πρόσθετες πηγές 633 8.12 Ασκήσεις 633 ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΣΤΟΝ ΠΡΑΓΜΑΤΙΚΟ ΚΟΣΜΟ Θεραπεία μέσω καλύτερης διάγνωσης 646 Ευρετήριο 648

Περιεχόμενα 9 Πολυεπεξεργαστές και συστοιχίες 12 9.1 Εισαγωγή 14 9.2 Προγραμματισμός πολυεπεξεργαστών 18 9.3 Πολυεπεξεργαστές συνδεδεμένοι με ένα μοναδικό δίαυλο 21 9.4 Πολυεπεξεργαστές συνδεδεμένοι μέσω δικτύου 30 9.5 Συστοιχίες 36 9.6 Τοπολογίες δικτύων 37 9.7 Πολυεπεξεργαστές σε τσιπ και πολυνημάτωση 41 9.8 Πραγματικότητα: η συστοιχία των PC του Google 45 9.9 Πλάνες και παγίδες 50 9.10 Συμπερασματικές παρατηρήσεις 53 9.11 Ιστορική προοπτική και πρόσθετες πηγές 58 9.12 Ασκήσεις 66 A Συμβολομεταφραστές, προγράμματα σύνδεσης, και ο προσομοιωτής SPIM 70 A.1 Εισαγωγή 71 A.2 Συμβολομεταφραστές 78 A.3 Προγράμματα σύνδεσης 86 A.4 Φόρτωση 87 A.5 Χρήση τής μνήμης 88 A.6 Σύμβαση κλήσης διαδικασιών 90 A.7 Εξαιρέσεις και διακοπές 101 A.8 Είσοδος και έξοδος 106 A.9 SPIM 108 A.10 Συμβολική γλώσσα του MIPS R2000 113 A.11 Συμπερασματικές παρατηρήσεις 145 A.12 Ασκήσεις 146

6 Περιεχόμενα B Τα βασικά της λογικής σχεδίασης 150 Β.1 Εισαγωγή 151 Β.2 Πύλες, πίνακες αληθείας, και λογικές εξισώσεις 152 Β.3 Συνδυαστική λογική 156 Β.4 Χρήση μιας γλώσσας περιγραφής υλικού 168 Β.5 Κατασκευή βασικής Αριθμητικής και Λογικής Μονάδας 174 Β.6 Ταχύτερη πρόσθεση: πρόβλεψη κρατουμένου 186 Β.7 Ρολόγια 195 Β.8 Στοιχεία μνήμης: φλιπ φλοπ, κυκλώματα μανδάλωσης, και καταχωρητές 197 Β.9 Στοιχεία μνήμης: SRAM και DRAM 205 Β.10 Μηχανές πεπερασμένης κατάστασης 215 Β.11 Μεθοδολογίες χρονισμού 220 Β.12 Επιτόπου προγραμματίσιμες συσκευές 225 Β.13 Συμπερασματικές παρατηρήσεις 227 Β.14 Ασκήσεις 227 Γ Αντιστοίχιση του ελέγχου στο υλικό 234 Γ.1 Εισαγωγή 235 Γ.2 Υλοποίηση συνδυαστικών μονάδων ελέγχου 236 Γ.3 Υλοποίηση ελέγχου με μηχανή πεπερασμένης κατάστασης 240 Γ.4 Υλοποίηση της συνάρτησης επόμενης κατάστασης με έναν ακολουθητή 252 Γ.5 Μετάφραση μικροπρογράμματος σε υλικό 258 Γ.6 Συμπερασματικές παρατηρήσεις 262 Γ.7 Ασκήσεις 262 Δ Μια έρευνα αρχιτεκτονικών RISC για επιτραπέζιους υπολογιστές, διακομιστές, και ενσωματωμένους υπολογιστές 264 Δ.1 Εισαγωγή 265 Δ.2 Τρόποι διευθυνσιοδότησης και μορφές εντολών 267 Δ.3 Εντολές: το υποσύνολο πυρήνα τού MIPS 271 Δ.4 Εντολές: επεκτάσεις πολυμέσων επιτραπέζιων και διακομιστών RISC 281 Δ.5 Εντολές: επεκτάσεις ψηφιακής επεξεργασίας σήματος σε ενσωματωμένους RISC 283 Δ.6 Εντολές: Συνήθεις επεκτάσεις τού πυρήνα MIPS 284 Δ.7 Εντολές αποκλειστικές στην αρχιτεκτονική MIPS64 291

Περιεχόμενα 7 Δ.8 Εντολές αποκλειστικές στην αρχιτεκτονική Alpha 293 Δ.9 Εντολές αποκλειστικές στην αρχιτεκτονική SPARC v.9 295 Δ.10 Εντολές αποκλειστικές στην αρχιτεκτονική PowerPC 299 Δ.11 Εντολές αποκλειστικές στην αρχιτεκτονική PA-RISC 2.0 300 Δ.12 Εντολές αποκλειστικές στην αρχιτεκτονική ARM 303 Δ.13 Εντολές αποκλειστικές στην αρχιτεκτονική Thumb 305 Δ.14 Εντολές αποκλειστικές στην αρχιτεκτονική SuperH 306 Δ.15 Εντολές αποκλειστικές στην αρχιτεκτονική M32R 307 Δ.16 Εντολές αποκλειστικές στην αρχιτεκτονική MIPS16 308 Δ.17 Συμπερασματικές παρατηρήσεις 311 Δ.18 Ευχαριστίες 314 Δ.19 Βιβλιογραφία 314 Ε Πρόσθετες ενότητες κεφαλαίων Α τόμου 316 1.7 Ιστορική προοπτική και πρόσθετες πηγές 317 2.12 Πώς δουλεύουν οι μεταγλωττιστές: μια εισαγωγή 328 2.14 Υλοποίηση αντικειμενοστρεφούς γλώσσας 337 2.19 Ιστορική προοπτική και πρόσθετες πηγές 350 3.10 Ιστορική προοπτική και πρόσθετες πηγές 359 4.7 Ιστορική προοπτική και πρόσθετες πηγές 370 5.7 Μικροπρογραμματισμός: απλοποίηση της σχεδίασης του ελέγχου 374 5.8 Χρήση γλώσσας περιγραφής υλικού για το σχεδιασμό και την προσομοίωση ενός επεξεργαστή 386 5.12 Ιστορική προοπτική και πρόσθετες πηγές 393 6.7 Χρήση γλώσσας περιγραφής υλικού για την περιγραφή και τη μοντελοποίηση διοχέτευσης 397 6.13 Ιστορική προοπτική και πρόσθετες πηγές 406 7.9 Ιστορική προοπτική και πρόσθετες πηγές 412 8.3 Δίκτυα 424 8.11 Ιστορική προοπτική και πρόσθετες πηγές 435 ΣΤ Σε μεγαλύτερο βάθος 446 Κεφάλαιο 1 447 Κεφάλαιο 2 449 Κεφάλαιο 3 461 Κεφάλαιο 4 467 Κεφάλαιο 7 483 Κεφάλαιο 8 484 Παράρτημα Β 487

8 Περιεχόμενα Ζ Για περισσότερη εξάσκηση 490 Κεφάλαιο 2 491 Κεφάλαιο 3 497 Κεφάλαιο 4 502 Κεφάλαιο 5 505 Κεφάλαιο 6 510 Κεφάλαιο 7 532 Κεφάλαιο 8 535 Παράρτημα Β 539 Γλωσσάρι 543 Λεξικό όρων 561

Πρόλογος Το πιο όμορφο πράγμα που μπορούμε να ζήσουμε είναι το μυστήριο. Είναι η πηγή όλης της πραγματικής τέχνης και επιστήμης. Αλβέρτος Αϊνστάϊν, What I Believe, 1930 Σχετικά με αυτό το βιβλίο Πιστεύουμε ότι η μάθηση για τους επιστήμονες και τους μηχανικούς υπολογιστών πρέπει να αντανακλά την τρέχουσα κατάσταση του επιστημονικού τομέα, καθώς και να εισάγει τις αρχές στις οποίες βασίζεται η υπολογιστική επιστήμη (computing). Νομίζουμε επίσης ότι οι αναγνώστες οποιασδήποτε ειδικότητας της υπολογιστικής πρέπει να εκτιμούν τα πρότυπα οργάνωσης που καθορίζουν τις δυνατότητες, την απόδοση, και, τελικά, την επιτυχία των υπολογιστικών συστημάτων. Η σύγχρονη τεχνολογία των υπολογιστών απαιτεί οι επαγγελματίες κάθε υπολογιστικής ειδικότητας να κατανοούν τόσο το υλικό όσο και το λογισμικό. Η αλληλεπίδραση ανάμεσα στο υλικό και το λογισμικό σε μια ποικιλία επιπέδων παρέχει επίσης ένα πλαίσιο για την κατανόηση των θεμελιωδών αρχών της υπολογιστικής. Είτε το βασικό σας ενδιαφέρον είναι το υλικό ή το λογισμικό, είτε η επιστήμη των υπολογιστών ή η επιστήμη των ηλεκτρολόγων μηχανικών, οι κεντρικές ιδέες της οργάνωσης και της σχεδίασης των υπολογιστών είναι ίδιες. Έτσι, αυτό που προσπαθούμε σε αυτό το βιβλίο είναι να δείξουμε τη σχέση ανάμεσα στο υλικό και το λογισμικό και να επικεντρωθούμε στις έννοιες που αποτελούν τη βάση των σημερινών υπολογιστών. Στο κοινό αυτού του βιβλίου περιλαμβάνονται άτομα με μικρή πείρα συμβολικής γλώσσας (assembly language) ή λογικής σχεδίασης, τα οποία πρέπει να κατανοήσουν τη βασική οργάνωση του υπολογιστή, καθώς επίσης και αναγνώστες με υπόβαθρο σε συμβολική γλώσσα ή λογική σχεδίαση που θέλουν να μάθουν πώς να σχεδιάζουν έναν υπολογιστή ή να κατανοήσουν πώς δουλεύει ένα σύστημα και γιατί αποδίδει με τον τρόπο που αποδίδει. Σχετικά με το άλλο βιβλίο Μερικοί αναγνώστες μπορεί να γνωρίζουν το βιβλίο Computer Architecture: A Quantitative Approach (Αρχιτεκτονική υπολογιστών: μια ποσοτική προσέγγιση), ευρέως γνωστό ως Hennessy και Patterson. (Αυτό το βιβλίο, με τη σειρά του, ονομάζεται Patterson και Hennessy.) Το κίνητρό μας όταν γράφαμε εκείνο το βιβλίο ήταν να περιγράψουμε τις αρχές της αρχιτεκτονικής των υπολογιστών χρησιμοποιώντας αυστηρές τεχνικές αρχές και ποσοτικούς συμβιβασμούς κόστους/απόδοσης. Χρησιμοποιήσαμε μια προσέγγιση που συνδύαζε παραδείγματα και μετρήσεις, βασισμένη σε εμπορικά συστήματα, ώστε να δημιουργήσουμε ρεαλιστικές σχεδιαστικές εμπειρίες. Ο στόχος μας ήταν να δείξουμε ότι η αρχιτεκτονική υπολογιστών θα μπορούσε να διδαχθεί με τη βοήθεια ποσοτικών με-

12 Πρόλογος θόδων αντί για μια περιγραφική προσέγγιση. Προορίζεται για τον επαγγελματία της υπολογιστικής που θα ήθελε να κατανοήσει τους υπολογιστές σε βάθος. Η πλειοψηφία των αναγνωστών αυτού του βιβλίου δε σχεδιάζουν να γίνουν αρχιτέκτονες υπολογιστών. Ωστόσο, η απόδοση των μελλοντικών συστημάτων λογισμικού θα επηρεαστεί δραματικά από το πόσο καλά κατανοούν οι σχεδιαστές λογισμικού τις βασικές τεχνικές του υλικού που λειτουργούν σε ένα σύστημα. Έτσι, οι δημιουργοί μεταγλωττιστών, οι σχεδιαστές λειτουργικών συστημάτων, οι προγραμματιστές βάσεων δεδομένων, και οι περισσότεροι άλλοι μηχανικοί λογισμικού χρειάζεται να βασιστούν σταθερά στις αρχές που παρουσιάζονται σε αυτό το βιβλίο. Αντίστοιχα, οι σχεδιαστές υλικού πρέπει να κατανοήσουν πλήρως τις επιπτώσεις της δουλειάς τους στις εφαρμογές λογισμικού. Συνεπώς, γνωρίζαμε ότι αυτό το βιβλίο έπρεπε να είναι κάτι πολύ περισσότερο από ένα υποσύνολο του υλικού τού βιβλίου Computer Architecture, και αναθεωρήσαμε το υλικό σε μεγάλη έκταση ώστε να ταιριάζει με το διαφορετικό κοινό. Ευχαριστηθήκαμε τόσο πολύ με το αποτέλεσμα, που αναθεωρήσαμε τις επόμενες εκδόσεις τού Computer Architecture ώστε να αφαιρεθεί το περισσότερο εισαγωγικό υλικό έτσι, υπάρχει πολύ λιγότερη επικάλυψη σήμερα μεταξύ των δύο βιβλίων από ό,τι στις πρώτες εκδόσεις τους. Αλλαγές στη τρίτη έκδοση Είχαμε έξι βασικούς στόχους στην τρίτη έκδοση του Οργάνωση και σχεδίαση υπολογιστών: να κάνουμε το βιβλίο να δουλεύει εξίσου καλά για αναγνώστες που ενδιαφέρονται κυρίως για το λογισμικό ή για αναγνώστες που ενδιαφέρονται κυρίως για το υλικό να βελτιώσουμε γενικά τη μέθοδο διδασκαλίας μας να ενισχύσουμε την κατανόηση της απόδοσης των προγραμμάτων να ενημερώσουμε το τεχνικό περιεχόμενο ώστε να αντανακλά αλλαγές στη βιομηχανία από τη δημοσίευση της δεύτερης έκδοσης το 1998 και να συνδέσουμε τις ιδέες του βιβλίου πιο στενά με τον πραγματικό κόσμο έξω από τη βιομηχανία των υπολογιστών. Πρώτον, ο πίνακας της επόμενης σελίδας δείχνει τις διαδρομές του υλικού και του λογισμικού μέσα στο βιβλίο. Τα Κεφάλαια 1, 4, και 7 υπάρχουν και στις δύο διαδρομές, ανεξάρτητα από την πείρα ή το ενδιαφέρον των αναγνωστών. Τα Κεφάλαια 2 και 3 πιθανόν να είναι υλικό ανασκόπησης για όσους ενδιαφέρονται για το υλικό, αλλά είναι απαραίτητα για όσους εστιάζονται στο λογισμικό, και ειδικά για τους αναγνώστες που ενδιαφέρονται να μάθουν περισσότερα σχετικά με τους μεταγλωττιστές και τις αντικειμενοστρεφείς γλώσσες προγραμματισμού. Οι πρώτες ενότητες των Κεφαλαίων 5 και 6 παρουσιάζουν κάποιες γενικές έννοιες για όσους προσανατολίζονται στο λογισμικό. Από την άλλη, αυτοί που προσανατολίζονται στο υλικό θα διαπιστώσουν ότι αυτά τα κεφάλαια παρουσιάζουν σημαντικές πληροφορίες ανάλογα με το υπόβαθρο, ίσως πρέπει επίσης να διαβάσουν πρώτα το Παράρτημα Β σχετικά με τη λογική σχεδίαση, και τις ενότητες για το μικροπρογραμματισμό και τον τρόπο χρήσης των γλωσσών περιγραφής υλικού για τον καθορισμό του ελέγχου. Το Κεφάλαιο 8 σχετικά με την είσοδο/έξοδο είναι βασικό για τους αναγνώστες που προσανατολίζονται στο λογισμικό, ενώ οι υπόλοιποι πρέπει το διαβάσουν μόνον αν το επιτρέπει ο χρόνος. Το τελευταίο κεφάλαιο σχετικά με τους πολυεπεξεργαστές και τις συστοιχίες είναι και πάλι θέμα χρόνου για τον αναγνώστη. Ακόμη και οι ιστορικές ενότητες διαθέτουν αυτή την ισορροπία στην εστίαση περιλαμβάνουν σύντομες ιστορίες γλωσσών προγραμματισμού, μεταγλωττιστών, αριθμητικού λογισμικού, λειτουργικών συστημάτων, πρωτοκόλλων δικτύων, και βάσεων δεδομένων.

Πρόλογος 13 Κεφάλαιο ή παράρτημα 1. Αφηρημένες έννοιες και τεχνολογία υπολογιστών 2. Εντολές: η γλώσσα του υπολογιστή 3. Αριθμητική για υπολογιστές Δ. Μια έρευνα αρχιτεκτονικών RISC για επιτραπέζιους υπολογιστές, διακομιστές, και ενσωματωμένους υπολογιστές 4. Αξιολόγηση και κατανόηση της απόδοσης Ενότητες 1.1 έως 1.6 1.7 (Ιστορία) 2.1 έως 2.11 2.12 (Μεταγλωττιστές) 2.13 (Ταξινόμηση C) 2.14 (Java) 2.15 έως 2.18 2.19 (Ιστορία) 3.1 έως 3.9 3.10 (Ιστορία) Δ.1 έως Δ.19 4.1 έως 4.6 4.7 (Ιστορία) B. Τα βασικά της λογικής σχεδίασης B.1 έως B.13 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου 5.1 (Επισκόπηση) 5.2 έως 5.6 5.7 (Μικροκώδικας) 5.8 (Verilog) 5.9 έως 5.11 5.12 (Ιστορία) Γ. Αντιστοίχιση του ελέγχου στο υλικό Γ.1 έως Γ.6 6.1 (Επισκόπηση) 6.2 έως 6.6 6.7 (Verilog) 6. Αύξηση της απόδοσης με διοχέτευση 6.8 έως 6.9 6.10 έως 6.12 7. Μεγάλη και γρήγορη: αξιοποίηση της ιεραρχίας τής μνήμης 8. Αποθήκευση, δίκτυα και άλλα περιφερειακά 9. Πολυεπεξεργαστές και συστοιχίες 6.13 (Ιστορία) 7.1 έως 7.8 7.9 (Ιστορία) 8.1 έως 8.2 8.3 (Δίκτυα) 8.4 έως 8.10 8.13 (Ιστορία) 9.1 έως 9.10 9.11 (Ιστορία) Προσανατολισμός σε λογισμικό Προσανατολισμός σε υλικό A. Συμβολομεταφραστές, προγράμματα σύνδεσης, και ο προσομοιωτής SPIM Οι υπολογιστές στον πραγματικό κόσμο A.1 έως A.12 Μεταξύ των Κεφαλαίων Διαβάστε με προσοχή Διαβάστε αν έχετε χρόνο Αναφορά Επισκόπηση ή ανάγνωση Διαβάστε για επιμόρφωση

14 Πρόλογος Ο επόμενος στόχος ήταν να βελτιώσουμε την παρουσίαση των ιδεών του βιβλίου, με βάση δυσκολίες που ανάφεραν αναγνώστες της δεύτερης έκδοσης. Προσθέσαμε στο βιβλίο πέντε νέα στοιχεία που βοηθούν στην κατεύθυνση αυτή. Για να κάνουμε το βιβλίο πιο κατάλληλο ως κείμενο αναφοράς, τοποθετήσαμε τους ορισμούς των νέων όρων στα περιθώρια, στη θέση που εμφανίζονται για πρώτη φορά. Ελπίζουμε ότι αυτό θα βοηθήσει τους αναγνώστες να βρίσκουν τις ενότητες όταν θέλουν να ανατρέξουν σε υλικό που έχουν ήδη διαβάσει. Μια άλλη αλλαγή ήταν η προσθήκη των ενοτήτων «Αυτοεξέταση», για να βοηθήσουν τους αναγνώστες να ελέγχουν πόσο καλά κατάλαβαν το υλικό την πρώτη φορά που το συναντούν. Μια τρίτη αλλαγή είναι ότι προστέθηκαν επιπλέον α- σκήσεις στις ενότητες «Για περισσότερη εξάσκηση». Τέταρτον, προσθέσαμε τις απαντήσεις στις ενότητες «Αυτοεξέταση» και στις ασκήσεις «Για περισσότερη εξάσκηση» ώστε να βοηθήσουμε τους αναγνώστες να δουν μόνοι τους αν κατανόησαν το υλικό, συγκρίνοντας τις απαντήσεις τους με αυτές του βιβλίου. Το τελευταίο νέο στοιχείο του βιβλίου είναι εμπνευσμένο από την «πράσινη κάρτα» (green card) του IBM System/360. Πιστεύουμε ότι θα βρείτε την Κάρτα Δεδομένων Αναφοράς τού MIPS μια χρήσιμη αναφορά όταν γράφετε προγράμματα σε συμβολική γλώσσα τού MIPS. Σας συνιστούμε να αφαιρέσετε την κάρτα από το εμπρός τμήμα του βιβλίου, να τη διπλώσετε στη μέση, και να την κρατήσετε στην τσέπη σας, ακριβώς όπως έκαναν τη δεκαετία του 1960 οι προγραμματιστές του IBM S/360. Τρίτον, οι υπολογιστές είναι τόσο πολύπλοκοι σήμερα που η κατανόηση της απόδοσης ενός προγράμματος περιλαμβάνει σε μεγάλο βαθμό την κατανόηση των υποκείμενων αρχών και της οργάνωσης ενός συγκεκριμένου υπολογιστή. Στόχος μας είναι οι αναγνώστες αυτού του βιβλίου να είναι ικανοί να κατανοήσουν την απόδοση των προγραμμάτων τους και τον τρόπο που μπορούν να τη βελτιώσουν. Για να υποστηρίξουμε αυτόν το στόχο, προσθέσαμε στο βιβλίο νέες ενότητες με το όνομα «Κατανόηση της απόδοσης του προγράμματος» σε διάφορα κεφάλαια. Αυτές οι ενότητες δίνουν συγκεκριμένα παραδείγματα του τρόπου που οι ιδέες του κεφαλαίου επηρεάζουν την απόδοση πραγματικών προγραμμάτων. Τέταρτον, στο διάστημα που πέρασε από τη δεύτερη έκδοση αυτού του βιβλίου, ο νόμος του Moore έχει προχωρήσει ώστε να έχουμε τώρα επεξεργαστές με 200 εκατομμύρια τρανζίστορ, ολοκληρωμένα κυκλώματα μνήμης DRAM με ένα δισεκατομμύριο τρανζίστορ, και ρυθμούς ρολογιού πολλών gigahertz. Τα παραδείγματα «Πραγματικότητα» έχουν ενημερωθεί και περιγράφουν τέτοια ολοκληρωμένα κυκλώματα. Αυτή η έκδοση περιλαμβάνει επίσης την αρχιτεκτονική AMD64/IA-32e, την έκδοση της μακρόβιας αρχιτεκτονικής 80x86 με διευθύνσεις 64 bit, η οποία φαίνεται να είναι η νέμεση της πιο πρόσφατης IA- 64. Αντικατοπτρίζει επίσης τη μετάβαση από τους παράλληλους διαύλους στα σειριακά δίκτυα και τους μεταγωγείς. Επόμενα κεφάλαια περιγράφουν το Google, που εμφανίστηκε μετά τη δεύτερη έκδοση, όσο αφορά την τεχνολογία των συστοιχιών και τις πρωτότυπες χρήσεις αναζήτησης που εφαρμόζει. Πέμπτον, παρόλο που πολλοί φοιτητές της επιστήμης των υπολογιστών και της τεχνολογίας των υπολογιστών απολαμβάνουν την τεχνολογία των πληροφοριών μόνο για χάρη της τεχνολογίας, μερικοί έχουν πιο αλτρουϊστικά ενδιαφέροντα. Αυτή η τελευταία ομάδα συνήθως περιέχει περισσότερες γυναίκες και μέλη μειονοτήτων με μειωμένη αντιπροσώπευση. Κατά συνέπεια, προσθέσαμε ένα νέο στοιχείο στο βιβλίο, τις δισέλιδες ενότητες «Οι υπολογιστές στον πραγματικό κόσμο», μεταξύ των κεφαλαίων. Η άποψή μας είναι ότι η τεχνολογία των πληροφοριών είναι πιο πολύτιμη για την ανθρωπότητα από τα περισσότερα

Πρόλογος 15 άλλα θέματα που μπορείτε να μελετήσετε διατηρεί την καλλιτεχνική μας κληρονομιά, βοηθάει τον Τρίτο Κόσμο, σώζει το περιβάλλον μας, αλλάζει ακόμη και πολιτικά συστήματα και έτσι παρουσιάζουμε αυτή μας την άποψη με συγκεκριμένα παραδείγματα από μη παραδοσιακές εφαρμογές. Νομίζουμε ότι οι αναγνώστες αυτών των ενοτήτων θα εκτιμήσουν την υπολογιστική κουλτούρα πέρα από την εγγενώς ενδιαφέρουσα τεχνολογία, όπως αυτοί που διαβάζουν τις ιστορικές ενότητες στο τέλος κάθε κεφαλαίου. Τέλος, τα βιβλία είναι όπως οι άνθρωποι: αυξάνονται σε μέγεθος με το χρόνο. Χρησιμοποιώντας την τεχνολογία, καταφέραμε να κάνουμε όλα τα παραπάνω και παρόλα αυτά να συρρικνώσουμε το πλήθος των σελίδων κατά εκατοντάδες σελίδες. Το κύριο μέρος του βιβλίου για τους αναγνώστες υλικού και λογισμικού βρίσκεται στο χαρτί (Τόμος Α' ελληνικής έκδοσης), αλλά ενότητες που μερικοί αναγνώστες θα εκτιμήσουν περισσότερο από άλλους βρίσκονται στο συνοδευτικό CD (Τόμος Β' ελληνικής έκδοσης). 1 Αυτή η τεχνολογία επιτρέπει επίσης στους συγγραφείς σας να παρέχουν μεγαλύτερες ιστορίες και πιο εκτεταμένες ασκήσεις χωρίς ανησυχίες σχετικά με την επέκταση του βιβλίου. Από τη στιγμή που προσθέσαμε το CD στο βιβλίο, μπορούσαμε στη συνέχεια να συμπεριλάβουμε μεγάλη ποσότητα δωρεάν λογισμικού και εκπαιδευτικών εγχειριδίων (tutorials) που πολλοί διδάσκοντες μας έχουν πει ότι θα ήθελαν να χρησιμοποιούνε στα μαθήματά τους. Υποστήριξη του διδάσκοντος Έχουμε συγκεντρώσει μεγάλη ποσότητα υλικού για να βοηθήσουμε τους καθηγητές να διδάξουν με βάση αυτό το βιβλίο. Λύσεις στις ασκήσεις, εικόνες από το βιβλίο, σημειώσεις διδασκαλίας, διαφάνειες διδασκαλίας, και άλλα υλικά είναι διαθέσιμα από τον εκδότη του πρωτοτύπου (στα αγγλικά) σε αυτούς που θα υιοθετήσουν το βιβλίο. Για περισσότερες πληροφορίες, δείτε στην τοποθεσία Ιστού: www.mkp.com/companions/1558606041 Συμπερασματικές παρατηρήσεις Αν διαβάσετε την ενότητα με τις ευχαριστίες, που ακολουθεί, θα δείτε ότι προσπαθήσαμε πάρα πολύ να διορθώσουμε λάθη. Μια και ένα βιβλίο περνάει από πολλές ανατυπώσεις, έχουμε την ευκαιρία να κάνουμε ακόμη περισσότερες διορθώσεις. Αν ανακαλύψετε κάποια επίμονα λάθη που παραμένουν, παρακαλούμε επικοινωνήστε με τον εκδότη της ελληνικής έκδοσης με ηλεκτρονικό ταχυδρομείο στη διεύθυνση errata@klidarithmos.gr ή με παραδοσιακό ταχυδρομείο χρησιμοποιώντας τη διεύθυνση που θα βρείτε στη σελίδα των πνευματικών δικαιωμάτων. Αυτό το βιβλίο είναι πραγματικά συνεργατικό, παρόλο που ένας από μας διευθύνει ένα σημαντικό πανεπιστήμιο. Μαζί προβληματιστήκαμε έντονα σχετικά με τις ιδέες και τη μέθοδο παρουσίασης, στη συνέχεια γράψαμε ξεχωριστά περίπου τα μισά κεφάλαια και καθένας επιμελήθηκε τα κείμενα που είχε γράψει ο άλλος. Ο αριθμός των σελίδων δείχνει ότι και πάλι γράψαμε σχεδόν ακριβώς τον ίδιο αριθμό σελίδων. Έτσι, μοιραζόμαστε εξίσου την ευθύνη γι αυτό που πρόκειται να διαβάσετε. 1 Δείτε σχετικά και στον Πρόλογο της Ελληνικής Έκδοσης

16 Πρόλογος Ευχαριστίες της τρίτης αμερικανικής έκδοσης Θέλουμε και πάλι να εκφράσουμε την εκτίμησή μας στον Jim Larus για την προθυμία του να συνεισφέρει την πείρα του στον προγραμματισμό συμβολικής γλώσσας, καθώς επίσης για το ότι ευχαρίστως καλεί τους αναγνώστες του βιβλίου να χρησιμοποιήσουν τον προσομοιωτή που ανέπτυξε και συντηρεί. Ο επιμελητής των ασκήσεών μας, ο Dan Sorin, ανέλαβε το Ηράκλειο έργο της προσθήκης νέων ασκήσεων και απαντήσεων. Ο Peter Ashenden εργάστηκε το ίδιο σκληρά για να συλλέξει και να οργανώσει το υλικό για το συνοδευτικό CD. Είμαστε ευγνώμονες στους πολλούς διδάσκοντες που απάντησαν στα ερωτηματολόγια του εκδότη, διάβασαν κριτικά τις προτάσεις μας, και παρακολούθησαν ομάδες εστίασης για να αναλύσουν και να ανταποκριθούν στα σχέδιά μας γι αυτή την έκδοση. Περιλαμβάνονται τα παρακάτω άτομα: Michael Anderson (University of Hartford), David Bader (University of New Mexico), Rusty Baldwin (Air Force Institute of Technology), John Barr (Ithaca College), Jack Briner (Charleston Southern University), Mats Brorsson (KTH, Sweden), Colin Brown (Franklin University), Lori Carter (Point Loma Nazarene University), John Casey (Northeastern University), Gene Chase (Messiah College), George Cheney (University of Massachusetts, Lowell), Daniel Citron (Jerusalem College of Technology, Israel), Albert Cohen (INRIA, France), Lloyd Dickman (PathScale), Jose Duato (Universidad Politécnica de Valencia, Spain), Ben Dugan (University of Washington), Derek Eager (University of Saskatchewan, Canada), Magnus Ekman (Chalmers University of Technology, Sweden), Ata Elahi (Southern Connecticut State University), Soundararajan Ezekiel (Indiana University of Pennsylvania), Ernest Ferguson (Northwest Missouri State University), Michael Fry (Lebanon Valley College, Pennsylvania), R. Gaede (University of Arkansas at Little Rock), Jean-Luc Gaudiot (University of California, Irvine), Thomas Gendreau (University of Wisconsin, La Crosse), George Georgiou (California State University, San Bernardino), Paul Gillard (Memorial University of Newfoundland, Canada), Joe Grimes (California Polytechnic State University, SLO), Max Hailperin (Gustavus Adolphus College), Jayantha Herath (St. Cloud State University, Minnesota), Mark Hill (University of Wisconsin, Madison), Michael Hsaio (Virginia Tech), Richard Hughey (University of California, Santa Cruz), Tony Jebara (Columbia University), Elizabeth Johnson (Xavier University), Peter Kogge (University of Notre Dame), Morris Lancaster (BAH), Doug Lawrence (University of Montana), David Lilja (University of Minnesota), Nam Ling (Santa Clara University, California), Paul Lum (Agilent Technologies), Stephen Mann (University of Waterloo, Canada), Diana Marculescu (Carnegie Mellon University), Margaret McMahon (U.S. Naval Academy Computer Science), Uwe Meyer-Baese (Florida State University), Chris Milner (University of Virginia), Tom Pittman (Southwest Baptist University), Jalel Rejeb (San Jose State University, California), Bill Siever (University of Missouri, Rolla), Kevin Skadron (University of Virginia), Pam Smallwood (Regis University, Colorado), K. Stuart Smith (Rocky Mountain College), William J. Taffe (Plymouth State University), Michael E. Thomodakis (Texas A&M University), Ruppa K. Thulasiram (University of Manitoba, Canada), Ye Tung (University of South Alabama), Steve VanderLeest (Calvin College), Neal R. Wagner (University of Texas at San Antonio), και Kent Wilken (University of California, Davis). Είμαστε επίσης ευγνώμονες σε αυτούς που διάβασαν προσεκτικά τα κείμενά μας κάποιοι διάβαζαν διαδοχικά κείμενα ώστε να εξαλειφθεί η πιθανότητα να παρεισφρήσουν καινούργια λάθη κατά τη διαδικασία της επιμέλειας. Περιλαμ-

Πρόλογος 17 βάνονται οι Krste Asanovic (Massachusetts Institute of Technology), Jean-Loup Baer (University of Washington), David Brooks (Harvard University), Doug Clark (Princeton University), Dan Connors (University of Colorado at Boulder), Matt Farrens (University of California, Davis), Manoj Franklin (University of Maryland College Park), John Greiner (Rice University), David Harris (Harvey Mudd College), Paul Hilfinger (University of California, Berkeley), Norm Jouppi (Hewlett-Packard), David Kaeli (Northeastern University), David Oppenheimer (University of California, Berkeley), Timothy Pinkston (University of Southern California), Mark Smotherman (Clemson University), και David Wood (University of Wisconsin, Madison). Για να μας βοηθήσουν να πετύχουμε το στόχο της δημιουργίας 70% περισσότερων ασκήσεων και λύσεων σε αυτή την έκδοση, προσλάβαμε πολλούς μεταπτυχιακούς φοιτητές που μας προτάθηκαν από τους καθηγητές τους. Τους είμαστε ευγνώμονες για τη δημιουργικότητα και την επιμονή τους: Michael Black (University of Maryland), Lei Chen (University of Rochester), Nirav Dave (Massachusetts Institute of Technology), Wael El Essawy (University of Rochester), Nikil Mehta (Brown University), Nicholas Nelson (University of Rochester), Aaron Smith (University of Texas, Austin), και Charlie Wang (Duke University). Θέλουμε να ευχαριστήσουμε ιδιαίτερα τον Mark Smotherman για την προσεκτική τελευταία ανάγνωση με σκοπό την εύρεση τεχνικών και συγγραφικών λαθών, που βελτίωσε σημαντικά την ποιότητα αυτής της έκδοσης. Επιθυμούμε να ευχαριστήσουμε την ευρύτερη οικογένεια της Morgan Kaufmann που συμφώνησε να δημοσιεύσει αυτό το βιβλίο, και πάλι κάτω από την ικανή ηγεσία της Denise Penrose. Ο Simon Crump διηύθυνε τη διαδικασία παραγωγής του βιβλίου, και ο Summer Block συντόνισε τη διαδικασία αποστολής των ερωτηματολογίων στους χρήστες και των αποκρίσεών τους. Ευχαριστούμε επίσης τους πολλούς εξωτερικούς συνεργάτες που συνεισέφεραν σε αυτή την έκδοση, και ιδιαίτερα τη Nancy Logan και την Dartmouth Publishing, Inc., που έκαναν τη στοιχειοθεσία. Οι συνεισφορές των σχεδόν 100 ανθρώπων που αναφέραμε εδώ έχουν κάνει αυτή την τρίτη έκδοση το καλύτερό μας βιβλίο μέχρι τώρα. Απολαύστε το! David A. Patterson John L. Hennessy

Πρόλογος της ελληνικής έκδοσης Το βιβλίο Οργάνωση και σχεδίαση υπολογιστών: η διασύνδεση υλικού και λογισμικού των D. A. Patterson και J. L. Hennessy αποτελεί από τη πρώτη του έκδοση το 1993 το κλασικό διδακτικό κείμενο στην οργάνωση, σχεδίαση και αρχιτεκτονική των ηλεκτρονικών υπολογιστών (δεύτερη έκδοση το 1998 και τρίτη έκδοση της οποίας την ελληνική μετάφραση κρατάτε στα χέρια σας το 2005). Στη δομή και το περιεχόμενο του βιβλίου αυτού βασίζεται η διδασκαλία σχετικών μαθημάτων σε Πανεπιστημιακά Τμήματα Πληροφορικής, Επιστήμης των Υπολογιστών, Μηχανικών Ηλεκτρονικών Υπολογιστών, και Ηλεκτρολόγων ή Ηλεκτρονικών Μηχανικών. Η εκδοτική επιτυχία του βιβλίου οφείλεται στη χρησιμότητά του τόσο στους επιστήμονες της πληροφορικής και των ηλεκτρονικών υπολογιστών που σκοπεύουν να εμβαθύνουν σε θέματα σχεδίασης υλικού όσο και σε αυτούς που ενδιαφέρονται για θέματα ανάπτυξης λογισμικού. Η βαθιά γνώση της αλληλεξάρτησης των δύο αυτών συστατικών του ηλεκτρονικού υπολογιστή αποτελεί το κλειδί για τη σχεδίαση αποδοτικών συστημάτων υλικού και λογισμικού. Η εξαιρετική προσπάθεια των συγγραφέων να ενημερώνουν κάθε νέα έκδοση του βιβλίου με τις τρέχουσες εξελίξεις στις σημαντικότερες πλευρές του υλικού και του λογισμικού, διατηρώντας και βελτιώνοντας όμως τη σαφήνειά του, τη συνοχή, και την επιστημονική του ακρίβεια, έχουν καθιερώσει το βιβλίο αυτό ως ένα από τα πλέον επιτυχημένα βιβλία ηλεκτρονικών υπολογιστών μέχρι σήμερα. Η μετάφραση και επιστημονική επιμέλεια στην ελληνική γλώσσα της πρόσφατης τρίτης αμερικανικής έκδοσης αποτέλεσε μεγάλη τιμή αλλά και πρόκληση, καθώς η ελληνική έκδοση καλείται να συγχρονίσει τη διδασκαλία της οργάνωσης και της αρχιτεκτονικής των υπολογιστών στα ελληνικά Πανεπιστήμια με την αντίστοιχη διδασκαλία διεθνώς. Έχουμε τη βεβαιότητα ότι ο στόχος αυτός θα επιτευχθεί πλήρως, λόγω της υψηλής επιστημονικής εγκυρότητας και της βαθιάς διδακτικής αξίας του βιβλίου. Το έργο της μετάφρασης και της επιστημονικής επιμέλειας στην ελληνική γλώσσα βασίστηκε στη διδασκαλία μαθημάτων οργάνωσης και αρχιτεκτονικής υπολογιστών στο Τμήμα Πληροφορικής του Πανεπιστημίου Πειραιώς, που διεξήχθη τα τελευταία πέντε χρόνια με βάση τις δύο πρώτες εκδόσεις του βιβλίου, και σε αντίστοιχες σημειώσεις διδασκαλίας. Η δίτομη ελληνική έκδοση και το συνοδευτικό CD Στην παρούσα πρώτη ελληνική έκδοση του σημαντικού αυτού επιστημονικού βιβλίου, κρίναμε απαραίτητο να συμπεριλάβουμε σε έντυπη μορφή και όλα τα τμήματά του που οι συγγραφείς μετέφεραν στο συνοδευτικό CD για λόγους μείωσης μεγέθους του αμερικανικού πρωτοτύπου. Για να είμαστε συμβατοί με

Πρόλογος της ελληνικής έκδοσης 19 το συγκεκριμένο στόχο των συγγραφέων, τα στοιχεία αυτά βρίσκονται συγκεντρωμένα στο δεύτερο ανεξάρτητο τόμο της ελληνικής έκδοσης. Έτσι, ο πρώτος τόμος περιλαμβάνει τα οκτώ κεφάλαια του αμερικανικού πρωτοτύπου, ενώ ο δεύτερος τόμος περιλαμβάνει το ένατο κεφάλαιο, όλα τα παραρτήματα, τις συμπληρωματικές ενότητες των κεφαλαίων του πρώτου τόμου, τις ενότητες «Για περισσότερη εξάσκηση», και τις ενότητες «Σε μεγαλύτερο βάθος», στοιχεία που στο πρωτότυπο βρίσκονται μόνο στο CD. Τμήματα κειμένου που επισημαίνονται με χρώμα στο σώμα του πρώτου τόμου, και πολλές φορές συνοδεύονται από το χαρακτηριστικό εικονίδιο, αποτελούν παραπομπές σε ενότητες του δεύτερου τόμου της ελληνικής έκδοσης. Στο συνοδευτικό CD της ελληνικής έκδοσης έχουμε διατηρήσει αυτούσια (στην αγγλική γλώσσα) τα αντίστοιχα τμήματα της πρωτότυπης έκδοσης, μαζί με όλο το υπόλοιπο υλικό υποστήριξης: εργαλεία λογισμικού, εκπαιδευτικά εγχειρίδια, εγχειρίδια χρήσης του λογισμικού, και πληροφορίες από το Διαδίκτυο. Ευχαριστίες Η συνεργασία με την ομάδα των εκδόσεων «Κλειδάριθμος» ήταν από την αρχή του έργου αυτού εξαιρετική και, για το λόγο αυτόν, θέλουμε να ευχαριστήσουμε τον εκδότη Γιάννη Φαλδαμή καθώς και τους Κώστα Καρανικολό, Δημήτρη Κωστάκη, Σόνια Τρακάδη, και Νίκο Πολάλη για τον ενθουσιασμό τους, τον επαγγελματισμό τους αλλά και την αφοσίωση που έδειξαν στην αρτιότητα της τελικής μορφής του δίτομου αυτού έργου. Ευχαριστίες επίσης στους Μιχάλη Ψαράκη, Γιώργο Ξενούλη, και Μίλτο Χατζημιχαήλ του Τμήματος Πληροφορικής του Πανεπιστημίου Πειραιώς, για την συμβολή τους στη τελική ανάγνωση του ολοκληρωμένου έργου, τις παρατηρήσεις, και τις διορθώσεις τους. Δημήτρης Γκιζόπουλος Πανεπιστήμιο Πειραιώς Κώστας Μασσέλος Imperial College Μετά από συνεχή χρόνια διδασκαλίας της οργάνωσης και αρχιτεκτονικής των υπολογιστών στο Τμήμα Πληροφορικής του Πανεπιστημίου Πειραιώς που βασίστηκε στις προηγούμενες αμερικανικές εκδόσεις του βιβλίου αυτού, η ελληνική μετάφραση εκπληρώνει μια υπόσχεση στους φοιτητές μου ελπίζω να το κάνει με τον καλύτερο δυνατό τρόπο. Δημήτρης Γκιζόπουλος

Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Σε ένα σημαντικό θέμα, καμία λεπτομέρεια δεν είναι μικρή. Γαλλική παροιμία