Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι...

54
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education Αρχιτεκτονική Υπολογιστών Εισαγωγή Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic, CS1/2-52, University of Berkeley. Αρχιτεκτονική Υπολογιστών, Ν. Κοζύρης, Εθνικό Μετσόβιο Πολυτεχνείο. Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός, Π. Ευριπίδου, Πανεπιστήμιο Κύπρου Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.

Transcript of Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι...

Page 1: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

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

Εισαγωγή

Βασικές Πηγές:

Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam.

Computer Architecture and Engineering, K. Asanovic, CS1/2-52, University of Berkeley.

Αρχιτεκτονική Υπολογιστών, Ν. Κοζύρης, Εθνικό Μετσόβιο Πολυτεχνείο.

Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός, Π. Ευριπίδου, Πανεπιστήμιο Κύπρου

Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.

Page 2: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

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

Εισαγωγή

Θεματολογία ΜαθήματοςΑντικείμενο, Έμφαση, Υλικό, Αξιολόγηση

Ιστορικά ΣτοιχείαΕξέλιξη των Υπολογιστών – Αρχιτεκτονική

Επισκόπιση Σύγχρονων ΥπολογιστώνΚύρια Συστατικά Μέρη, Παραδείγματα, Απόδοση

Page 3: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

02/10/10

CS252-s06, Lec 01-intro

3

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

Λογισμικό

Κύκλωμα

Μεγάλο χάσμα για να καλυφθεί σε ένα βήμα.

Η Αρχιτεκτονική Υπολογιστών ασχολείται με το λογικό σχεδιασμό των βασικών επιπέδων αφαίρεσης που επιτρέπουν την αποδοτική εκτέλεση του λογισμικού με βάση τις διαθέσιμες τεχνολογίες κατασκευής ψηφιακών κυκλωμάτων, με έμφαση στη λειτουργία του συστήματος επεξεργαστής – κύρια μνήμη, καθώς και την συνεργασία με τα υπόλοιπα συστατικά μέρη του υπολογιστή. Με μια φράση, ασχολείται με το πώς εκτελείται (αποδοτικά) ένα πρόγραμμα σε ένα υπολογιστή.

Page 4: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Γλώσσες, Επίπεδα Αφαίρεσης, Εικονικές Μηχανές

Μια πολυεπίπεδη μηχανή

Page 5: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Σύγχρονες Πολυεπίπεδες Μηχανές (1)

Υπολογιστής έξι επιπέδων. Η μέθοδος υποστήριξης και η γλώσσα υλοποίησης σημειώνεται κάτω (δίπλα) από κάθε επίπεδο.

Αρχιτεκτονική- Οργάνωση

ΣυστήματαΠρογραμματισμού

Λειτουργικά Συστήματα

Εφαρμογές Πρόγραμμα γλώσσας υψηλού επιπέδου

Πρόγραμμα γλώσσαςassembly

Σενάριο ή πρόγραμμα με κλήση συστήματος

Πρόγραμμα σε γλώσσα μηχανής (ή συμβολική)

Μικροπρόγραμμα ή γλώσσαμεταφοράς καταχωρητών

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

Γλώσσα περιγραφής υλικού ή σχέδιο CAD

Page 6: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

6

Σύγχρονες Πολυεπίπεδες Μηχανές (2)

Σύστημα I/OΕπεξ. Συν. Εντολ.

ΜεταγλωττιστήςAssembler, Linker

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

Εφαρμογή

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

Σχεδίαση Κυκλωμάτων

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

Firmware

Έλεγχος και Διαδρομή Δεδομένων

Απεικόνιση

Λογισμικό

Υλικό

ΣύνοροΥλικού/Λογισμικού

Πρόγραμμα Γλώσσας Υψηλού Επιπέδου

Πρόγραμμα Γλώσσας Assembly

Μικροπρόγραμμα

Γλώσσα Μεταφοράς Καταχωρητή

Λογικά Διαγράμματα

Διαγράμματα Κυκλωμάτων

Πρόγραμμα Γλώσσας Μηχανής

Γλώσσα Περιγραφής Υλικού

Page 7: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

7

Μορφή προγράμματος σε κάθε επίπεδο

Πρόγραμμα Γλώσσας Υψηλού Επιπέδου

Πρόγραμμα Γλώσσας Assembly

Πρόγραμμα Γλώσσας Μηχανής

Καθορισμός Σημάτων Ελέγχου

Μεταγλώττιση

Assembly, Συμβολομετάφραση

Διερμηνεία, Υλοποίηση

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)

0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111

°°

ALUOP[0:3] <= InstReg[9:11] & MASK

Register Transfer Language (RTL)

ISA

Page 8: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

8

Βασικές Έννοιες

Λογική Αφαίρεση (Logical Abstraction)

Εικονική / Ιδεατή Μηχανή (Virtual Machine)

Γλώσσα (Language)

Διεπαφή / Διεπιφάνεια (Interface)

Μεταγλώττιση (Compilation)

Διερμηνεία (Interpretation)

Συμβολομετάφραση (Assembly)

* Διαλεκτική Διαδικασία (Hardware/Software Co-design)

* Εξελικτική Διαδικασία (Backward Compatibility)

* Λογική Ισοδυναμία Υλικού - Λογισμικού

Page 9: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

9

Υλικό Μαθήματος (Βιβλία)* 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. Επιλογή για προγραμματισμό σε βάθος. Δεν υπάρχει στα Ελληνικά.

Page 10: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

10

Υλικό Μαθήματος (Διαδίκτυο)

* Compus, httlp://compus.uom.grΣύνδεσμοι, ανακοινώσεις, εργασίες, συζήτηση .

* PdP Lab, http://www.it.uom.gr/teachingΣυλλογές διαδικτυακού υλικού, για διάφορα θέματα – αρκετά για αρχιτεκτονική, προγραμματισμό και υπολογιστικά συστήματα. Εδώ συνήθως οδηγούν οι σύνδεσμοι του Compus.

* WikipediaΤο λήμμα computer architecture αποτελεί καλή εκκίνηση.

* Google..

Page 11: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

11

Σχέδιο Μαθήματος

Εβδομάδα Περιγραφή Κεφάλαια

1 Εισαγωγή (1,2), Α,Β

2-5 Ψηφιακή Λογική 3

6-9 Μικροαρχιτεκτονική 4

10-13 Αρχιτεκτονική Συνόλου Εντολών 5

14 Διακοπές, Παραλληλισμός 5, (8)

Page 12: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

12

Αξιολόγηση (1)Εξετάσεις χωρίς βιβλία και σημειώσεις. Χορηγούνται βοηθητικές φωτοτυπίες (πχ. σχεδιάγραμμα, σύνολο εντολών).

Οδηγός ύλης και ασκήσεων το βιβλίο 'Η αρχιτεκτονική των υπολογιστών: με δομημένη προσέγγιση', του Α. Tanenbaum, κυρίως τα κεφάλαια 3, 4 και 5 - τμήματα από τα κεφάλαια 1, 2, 8 και τα Παραρτήματα.

Έμφαση κυρίως στο προγραμματισμό χαμηλών επιπέδων, λιγότερο στο σχεδιασμό κυκλωμάτων.

Χρήση εύχρηστων προσομοιωτών με οπτική διεπιφάνεια.

Παραδείγματα πραγματικών αρχιτεκτονικών (Intel) και εικονικής μηχανής Java (JVM).

Page 13: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

13

Αξιολόγηση (2)

ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ

Μην αφήσετε την ύλη να συσσωρευτεί..

Σταδιακό διάβασμα σε όλη τη διάρκεια του εξαμήνου.

Εκτύπωση διαφανειών (2/4 ανά σελίδα) και κράτημα σημειώσεων.

Απαιτούνται ΑΡΚΕΤΕΣ μέρες διαβάσματος.

ΟΧΙ αποστήθιση, κατανόηση και επίλυση πολλών ασκήσεων.

Page 14: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

14

Αξιολόγηση (3)

5 ή 6 σειρές ασκήσεων για εξάσκηση (οι λύσεις θα δίνονται με καθυστέρηση).

3 ενδιάμεσες εργασίες προαιρετικές με προφορική εξέταση και 1 μονάδα προσθετική ανά εργασία. Θα ανακοινωθούν έγκαιρα.

Επίλυση αποριών, φροντιστήριο και εργαστήριο:

Τρίτη 12:00-14:00 και Παρασκευή 10:00 – 12:00 εργ. 534

Page 15: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

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

Εισαγωγή

Θεματολογία ΜαθήματοςΑντικείμενο, Έμφαση, Υλικό, Αξιολόγηση

Ιστορικά ΣτοιχείαΕξέλιξη των Υπολογιστών – Αρχιτεκτονική

Επισκόπιση Σύγχρονων ΥπολογιστώνΚύρια Συστατικά Μέρη, Παραδείγματα, Απόδοση

Page 16: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Γενιές Υπολογιστών0: Μηχανικοί Υπολογιστές (1642 – 1945) Υπολογισμοί χωρίς υπολογιστές

1: Λυχνίες Κενού (1945 – 1955) Σπάνιο, πανάκριβο, δύσχρηστο υλικό (1945) 2: Στερεοί Ημιαγωγοί-Transistors (1955 – 1965) Επινόηση διερμηνείας και μικροπρογραμματισμού (1955) Πρώτα λειτουργικά συστήματα (1960)

3: Ολοκληρωμένα Κυκλώματα (1965 – 1980) Ανάπτυξη του μικροκώδικα και λειτουργικών συστημάτων (1970) Πρώτοι μικροπεξεργαστές (1975) 4: Ολοκλήρωση Υψηλής Κλίμακας-VLSI (1980 – ?) Πρώτοι προσωπικοί υπολογιστές (1981)

Περιορισμός του μικροπρογραμματισμού (1985) Άφθονο, φθηνό, εύχρηστο υλικό (2000)

Page 17: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Ορόσημα Αρχιτεκτονικής Υπολογιστών (1)

Page 18: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Ορόσημα Αρχιτεκτονικής Υπολογιστών (2)

Page 19: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

02/10/10

CS252-s06, Lec 01-intro

19

Οι Υπολογιστές τότε…

EDSAC, University of Cambridge, UK, 1949

Page 20: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Πρώτη Γενιά

Λυχνίες και πρώτα transistor.Μοντέλο Von Neumann: Κοινή αποθήκευση δεδομένων και προγράμματος.Μοντέλο Harvard: Ξεχωριστή αποθήκευση δεδομένων και προγράμματος.

Harvard

VonNeumann

Page 21: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Δεύτερη Γενιά

Ολοκληρωμένα Κυκλώματα (ICs)Κοινός Δίαυλος PDP-8.

Πρώτα λειτουργικά συστήματαΠρώτος μικροπρογραμματισμός (μικροαρχιτεκτονική).

Page 22: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Τρίτη Γενιά

Ολοκλήρωση Υψηλής Κλίμακας (LSI)Τα συστήματα IBM 360: Πρώτη σειρά με κοινή Εικονική Μηχανή.

Πολυπρογραμματισμός.Εξάπλωση μικροπρογραμματισμού.

Πρώτος μικρο-επεξεργαστής (της οικογένειας επεξεργαστών της Intel).

Page 23: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Τέταρτη Γενιά

Ολοκλήρωση Πολύ Υψηλής Κλίμακας (VLSI).Πρώτος Προσωπικός Υπολογιστής (ΙΒΜ PC) και η πρώτη Ανοικτή Αρχιτεκτονική (συμβατότητα).Πρώτο Λειτουργικό Σύστημα σε δισκέτα (Miscrosoft MS-DOS) και άνθηση της Ανεξάρτητης Ανάπτυξης Λογισμικού (3rd parties).VLSI: αυτοματοποιημένη παραγωγή, φθηνό υλικό.Σταδιακή ενίσχυση των προσωπικών υπολογιστών και αντίστοιχη εξάλειψη των μεγάλων-κλειστών συστημάτων.Δίκτυα: ενίσχυση της δια-λειτουργικότητας και της ανάγκης για συμβατότητα σε ανώτερα επίπεδα εικονικών μηχανών.

Page 24: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Νόμος του Moore (1)

(Kυρίως) Τρίτη, τέταρτη Γενιά (LSI, VLSI). Ο νόμος του Moore προβλέπει ετήσια αύξηση 60% στον αριθμό transistors μέσα σε ένα chip. Το γράφημα αφορά πυκνότητα μνήμης σε bits.

Page 25: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

25

Νόμος του Moore (2)

Επεξεργαστής:2X ταχύτητα κάθε 1.5 έτος. ~1000X απόδοση τη τελευταία 10ετία.

Μνήμη:DRAM χωρητικότητα: > 2x κάθε 1.5 έτος.~1000X χωρητικότητα τη τελευταία 10ετία.Κόστος ανά bit: πέφτει κατά 25% το χρόνο.

Δίσκος:Χωρητικότητα: > 2X κάθε 1.5 έτος.Κόστος ανά bit: πέφτει κατά 60% το χρόνο.200X χωρητικότητα τη τελευταία 10ετία.

Page 26: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

02/10/10

CS252-s06, Lec 01-intro

26

..και οι Υπολογιστές Τώρα

QuickTime and aᆰTIFF (Uncompressed) decompressor

are needed to see this picture.

QuickTime and aᆰTIFF (Uncompressed) decompressorare needed to see this picture.

QuickTime and aᆰTIFF (Uncompressed) decompressor

are needed to see this picture.QuickTime and aᆰ

TIFF (Uncompressed) decompressorare needed to see this picture.

Robots

SupercomputersAutomobiles

Laptops

Set-top boxes

Games

Smart phones

Servers

Media Players

Sensor Nets

Routers

Cameras

Page 27: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Το Φάσμα των Υπολογιστών

Το φάσμα των σύγχρονων υπολογιστών, οι τιμές και τυπικές εφαρμογές τους.

Page 28: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Μερίδια Αγοράς Επεξεργαστών

Page 29: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

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

Εισαγωγή

Θεματολογία ΜαθήματοςΑντικείμενο, Έμφαση, Υλικό, Αξιολόγηση

Ιστορικά ΣτοιχείαΕξέλιξη των Υπολογιστών – Αρχιτεκτονική

Επισκόπιση Σύγχρονων ΥπολογιστώνΚύρια Συστατικά Μέρη, Παραδείγματα, Απόδοση

Page 30: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Οργάνωση Τυπικού Προσωπικού Υπολογιστή (PC)

Τα βασικά συστατικά μέρη και η σύνδεσή τους.

motherboard

ICs

Page 31: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

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

Η αρχιτεκτονική (προγραμματιστικό μοντέλο ISA, λογική αφαίρεση) ενός απλού υπολογιστή με μια CPU και δύο συσκευές I/O

Block Char

Page 32: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Λειτουργία απλού συστήματος CPU-Μνήμης

Διαδρομές δεδομένων (όχι ελέγχου) σε μια τυπική CPUΛογική οργάνωση = Διαχείριση Καταχωρητών, ALU, Μνήμης.

MAR, MDR

PC, IR

SP, BP

Memory

00..0

FF..F

01100..0

0100..0

Address Content

CPU

Page 33: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Βασικοί Καταχωρητές Μετρητής Προγράμματος (Program Counter, PC)

Καταχωρητής Εντολών (Instruction Register, IR)

Καταχωρητής Διευθύνσεων Μνήμης (Memory Address Register, MAR)

Καταχωρητής Δεδομένων Μνήμης (Memory Data Register, MDR)

Δείκτης Στοίβας (Stack Pointer, SP)

Δείκτης Βάσης (Base Pointer, BP) και Offset, Index κλπ Registers

Συσσωρευτής (Accumulator, AC) = 1 καταχωρητής

Ή Α, Β, C... (ή Register Bank) = πολλοί καταχωρητές

Ή μηχανή στοίβας = “κανένας” καταχωρητής

Καταχωρητής Κατάστασης (Status Register, SR)

Page 34: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Βήματα Ανάκλησης - Εκτέλεσης

A. Ανάκληση της εντολής που δείχνει ο Μετρητή Προγράμματος από τη μνήμη και τοποθέτησή της στον Καταχωρητή Εντολών

B. Τροποποίηση του Μετρητή Προγράμματος ώστε να δείχνει την επόμενη εντολή

C. Αποκωδικοποίηση της εντολής που βρίσκεται στον Καταχωρητή Εντολών

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

E. Εκτέλεση της εντολής και (πιθανή) αποθήκευση του αποτελέσματος σε καταχωρητή της CPU ή στη μνήμη

F. Επανάληψη από το βήμα Α

Page 35: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Διερμηνέας (1)

Διερμηνέας για έναν απλό υπολογιστή (σε Java).

. . .

Page 36: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Διερμηνέας (2)

Διερμηνέας για έναν απλό υπολογιστή (σε Java).

Page 37: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Βασικοί Tύποι Συνόλου Εντολών Γλώσσας Μηχανής

Μετακίνηση Δεδομένων (από/προς μνήμη/καταχωρητές) Αριθμητικές - Λογικές Πράξεις, Συγκρίσεις Έλεγχος ροής προγράμματος (μεταβολή PC) με συνθήκη

ή χωρίς Κλήση ρουτίνας και Επιστροφή

-------------------------------------------------------------------------- Είσοδος - 'Εξoδος Κατάσταση Επεξεργαστή - Διαχείριση Διακοπών

Page 38: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

38

Παράδειγμα Χρήσης Εντολών: Top 10 Intel X86 Instructions

Κατηγορία Μέσο ποσοστό συνολικής εκτέλεσης12345678910

Εντολήloadconditional branchcomparestoreaddandsubmove register-registercallreturnTotal

Κινήσεις = 38% Πράξεις = 35% Διακλαδώσεις = 20% Κλήσεις = 2%

22%20%16%12%8%6%5%4%1%1%96%

Page 39: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Διερμηνεία και Μικροκώδικας

Διερμηνεία (σε επίπεδο μικροαρχιτεκτονικής): η εντολή γλώσσας μηχανής αναλύεται σε βήματα από στοιχειώδη σήματα ελέχου που υλοποιούνται σε διαδοχικούς κύκλους μηχανής. Κάθε βήμα είναι μια μικροεντολή και και το σύνολο των μικροεντολών είναι ο μικροκώδικας. Όλα βρίσκονται σε μικρο-ROM.

ΥΠΕΡ* Υλοποίηση του ίδιου συνόλου εντολών από διαφορετικό υλικό.* Υλοποίηση σύνθετων εντολών χωρίς απαραίτητα να υπάρχει σύνθετο υλικό (κύκλοι μηχανής).* Τροποποίηση συνόλου εντολών χωρίς αλλαγή υλικού.* Δομημένος / εύκολος σχεδιασμός (επίπεδο αφαίρεσης).

ΚΑΤΑ* Κόστος απόδοσης (κύκλοι ανάκλησης εκτέλεσης μικρο-ROM )

Page 40: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

RISC και CISC Η Διερμηνεία στα όρια της (VAX). Ολο και πιο σύνθετο σύνολο εντολών γλώσσας μηχανής (200-300 εντολές). Σχετικά σύντομος κώδικας γλώσσας μηχανής αλλά πολύπλοκες-αργές εντολές.Complex Instruction Set Computer (CISC)

Εναλλακτική ιδέα. Ένα σύνολο εντολών γλώσσας μηχανής δύο επιπέδων. Οι βασικές, συχνά χρησιμοποιούμενες εντολές υλοποιούνται αποδοτικά απ'ευθείας στο υλικό. Οι υπόλοιπες.. μπορούν να αναλυθούν από το μεταγλωττιστή ή να διερμηνευτούν. Σχετικά μακροσκελής κώδικας γλώσσας αλλά απλές-γρήγορες εντολές και δυνατότητα 'αναδιοργάνωσης' κώδικα.Reduced Instruction Set Computer (RISC)

Μετά από αρκετές διαμάχες.. η λύση κάπου στη μέση.Νέος και απλός (MIPS, SPARC, PowerPC, ..) ? RISCΠαλιός και σύνθετος (Pentium, ..) ? CISC πάνω από RISC (ακόμη ένα κρυμμένο επίπεδο αφαίρεσης..).

Page 41: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

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

Όλες οι βασικές εντολές εκτελούνται απ' ευθείας στο υλικό (οι σύνθετες εντολές ίσως υλοποιούνται με μικροκώδικα).

Μεγιστοποίηση του ρυθμού υποβολής εντολών στη CPU (τεχνικές Παραλληλίας Επιπέδου Εντολής, ILP).

Εύκολη αποκωδικοποίηση εντολών (μικρό σχετικά σύνολο από σχετικά απλές εντολές).

Ελαχιστοποίηση προσπέλασης στη μνήμη, με ειδικές εντολές Load, Store μιας διεύθυνσης.

Αφθονία όμοιων καταχωρητών (μεγάλο register file).

Page 42: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Επίπεδα Παραλληλισμού Επίπεδο Δεδομένων (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): ταυτόχρονη εκτέλεση ενός ή διαφορετικών προγραμμάτων σε πολλαπλούς επεξεργαστές.

Page 43: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Κύρια ΜνήμηΛογική Οργάνωση Διευθύνσεων

Τρείς οπτικές μιας μνήμης των 96 bit.

Page 44: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Κρυφή Μνήμη (Cache) (1)

Από λογική (αρχιτεκτονική) άποψη η cache είναι μεταξύ της CPU και της Κύριας Μνήμης.

Page 45: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Κρυφή Μνήμη (Cache) (2)

Από φυσική (οργανωτική) άποψη, συνήθως έχουμε πολλαπλά επίπεδα cache (L1/2/3) που βρίσκονται μέσα ή έξω από τον επεξεργαστή με διαφορετική ταχύτητα, χωρητικότητα και λειτουργικότητα (Εντολές, Δεδομένα).

Page 46: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

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

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

Δύο ειδών τοπικότητες:

Χρονική Τοπικότητα: Αν μια θέση μνήμης προσπελαστεί μια φορά, τότεπιθανότατα θα ξαναχρησιμοποιηθεί τις επόμενες χρονικές στιγμές. Παράδειγμα: εντολές βρόχων επανάληψης

Χωρική Τοπικότητα: Αν μια θέση μνήμης προσπελαστεί, τότεπιθανότατα σύντομα θα προσπελαστούν και οι γειτονικές θέσεις μνήμης.Παράδειγμα: πίνακες και άλλες δομές δεδομένων.

Page 47: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Χαρακτηριστικά Cache

Κόστος L1 > Kόστος L2 > Κόστος L3 > Κόστος Κύριας Μνήμης.Ταχύτητα L1 < Ταχύτητα L2 < Ταχύτητα L3 < Ταχύτητα Κ. ΜνήμηςΜέγεθος L1 < Μέγεθος L2 < Μέγεθος L3 < Μέγεθος Κ. Μνήμης

Μέγεθος Cache < 1% Μέγεθος Κύριας Μνήμης

Διαφορές με Καταχωρητές:

* Η Cache είναι διαφανής στο επίπεδο συνόλου εντολών (δεν υπάρχουν δηλαδή ειδικές εντολές γλώσσας μηχανής).* Η διαχείριση της Cache γίνεται από το υλικό, όχι το λογισμικό.* Η Cache αποθηκεύει δεδομένα και εντολές.

Page 48: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Ιεραρχία Μνήμης

Μια ιεραρχία μνήμης με πέντε (ή εννέα) φυσικά επίπεδα. Τα λογικά επίπεδα είναι τρία (σημειώνονται με *).

Virtual memory

*

*

*

Εντολές καταχωρητών

Εντολές μνήμης

Εντολές Ι/Ο

L1 Instruction/Data on chip

L2 on chip package

L3 on board

Page 49: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Δίαυλοι

Τυπικό σύστημα υπολογιστή με πολλαπλούς διαύλους.Δίαυλοι εσωτερικοί (της CPU).

Δύο κύριοι δίαυλοι συστήματις: Μνήμης και Ι/Ο.Βus Controller: Διαιτητής.

Page 50: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Οικογένεια Intel (1)

Η οικογένεια CPU της Intel. Ταχύτητες ρολογιού σε MHZ, με 1 MHZ = 1 εκ. κύκλοι/sec.

Page 51: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0

Οικογένεια Intel (2)

Ο νόμος του Moore για τα CPU chips της Intel.

Page 52: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

52

Απόδοση (1) Time = I x CPI x Clock Cycle Time

- I: Instrumentation (Ενοργάνωση: δηλαδή αρχιτεκτονική και μεταγλωττιστής, συγκεκριμένα πρόγραμμα και δεδομένα)

- CPI: Cycles Per Instruction (μικροαρχιτεκτονική, oργάνωση)

- Clock Cycle Time: τεχνολογία (ταχύτητα ρολογιού)

Αλληλεπιδράσεις μεταξύ Ι, CPI και Clock Cycle Time (ίσως και αλληλοσυγκρουόμενοι στόχοι).

Για κάθε κατηγόρια εντολών: μέσος όρος κύκλων ανά εντολή(CPI) επί το μέσο ποσοστό εντολών ανά πρόγραμμα.

Page 53: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

53

Απόδοση (2)FLOPs: Floating Point Operations per Second

MIPs: Million Instructions per Second

MIPs = Εντολές/Χρόνος Χ 106 ή Συχνότητα/CPI X 106

4 x freq FLOPS < {single Core 2 @ 2.93GHz} < 8 x freq FLOPs

Εξαρτάται από την πράξη, FPADD, FPMUL, FPDIV (απλής ακριβείας).

Για σύγχρονους επεξεργαστές τουλάχιστον 12 GFLOPs/cpu

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

Αν η συχνότητά του είναι 1GHz, τότε έχει απόδοση 1 GFLOP

Αν ολοκληρώνει 1 εντολή σε κάθε κύκλο, τότε έχει απόδοση 1000MIPs

Page 54: Αρχιτεκτονική Υπολογιστών · 02/10/10 CS252-s06, Lec 01-intro 3 Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα

cslab@ntua 2007-2008

54

SPEC Benchmark (Μετροπρόγραμμα)www.spec.org

Γιά κάθε πρόγραμμα i υπολόγιζει το execution ratio (ER)

ERi=(χρονος σε 300 MHz UltraSun 5_10 / Χρονος μηχανής μέτρησης )* 100

Γεωμετρικός Μέσος των Execution Ratios n προγραμμάτων με Γεωμετρικό Μέσο ______ SpecRatio = √Π (ER

i) i=1,2,..,n

- SPEC CPU2006: 12 integer και 17 floating point εφαρμογές- SPECThroughput, SPECJava... κλπ

Απόδοση (3)