Προηγµένα Θέµατα Οργάνωσης Υπολογιστών 9ο εξάµηνο ΣΗΜΜΥ

Σχετικά έγγραφα
Τι είναι η Αρχιτεκτονική Υπολογιστών; Αρχιτεκτονική του συνόλου των εντολών. Οργάνωση. Hardware. 3 πλευρές του σχεδιασµού των υπολογιστών

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

Κεφάλαιο 1 Αφαιρετικότητα και Τεχνολογία Υπολογιστών (Computer Abstractions and Technology)

Τέτοιες λειτουργίες γίνονται διαμέσου του

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

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

Προχωρηµένα Θέµατα Αρχιτεκτονικής

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

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

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

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

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

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

Προχωρηµένα Θέµατα Αρχιτεκτονικής

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών. Εισαγωγή.

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

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

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

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

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

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

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

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

Τελική Εξέταση, Απαντήσεις/Λύσεις

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

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

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

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

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

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

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ

Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών

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

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

ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ

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

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

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2.

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

ΕΙΣΑΓΩΓΗ στους Η/Υ. Δρ. Β Σγαρδώνη. Τμήμα Τεχνολογίας Αεροσκαφών ΤΕΙ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ. Χειμερινό Εξάμηνο

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

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

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

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

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

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

Βασική δοµή και Λειτουργία Υπολογιστή

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

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

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

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

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

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

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

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

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

Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή

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

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

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

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ι. Κεφάλαιο 1 Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών

ΚΕΦΑΛΑΙΟ 1 ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Υλοποίηση Mικροεπεξεργαστή MIPS -16

Instruction Execution Times

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

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

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Οι τέσσερις αρχές για τον σχεδιασμό του συνόλου εντολών μιας μηχανής είναι:

Απλός επεξεργαστής (Επανάληψη)

Λογικά σύμβολα των CPU, RAM, ROM και I/O module

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

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

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

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

Υλικό Υπολογιστών (Hardware) ΜΥΥ-106 Εισαγωγή στους Η/Υ και Πληροφορική

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

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

Βασίλειος Κοντογιάννης ΠΕ19

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9

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

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

Αρχιτεκτονική Υπολογιστών. ηµήτρης Γκιζόπουλος Καθηγητής

Transcript:

Προηγµένα Θέµατα Οργάνωσης Υπολογιστών 9ο εξάµηνο ΣΗΜΜΥ ακ. έτος: 2004-2005 Νεκτάριος Κοζύρης nkoziris@cslab.ece.ntua.gr http://www.cslab.ece.ntua.gr/courses/advcomparch/ 1

Computer Architecture Vs. Computer Organization Ο όρος Computer architecture (Αρχιτεκτονική Υπολογιστών) κακώς περιορίζεται συχνά στο σχεδιασµό και την υλοποίηση του instruction set. Ακριβέστεροι Ορισµοί: Instruction set architecture: Εξυπηρετεί σαν όριο µεταξύ software και hardware. Είναι ορατή στον προγραµµατιστή σε γλώσσα assembly ή στον κατασκευαστή του compiler (registers, data types, instruction set, instruction formats, addressing modes) Η υλοποίηση ενός µηχανήµατος έχει δύο συντελεστές: Organization: συµπεριλαµβάνει το υψηλού επιπέδου σχεδιασµό των υπολογιστών όπως: το σύστηµα µνηµών, τη δοµή του διαδρόµου, το εσωτερικό της CPU το οποίο συµπεριλαµβάνει υλοποίηση των αριθµητικών, λογικών εντολών, εντολών διακλάδωσης και µεταφοράς δεδοµένων (datapath & control). Hardware: Αναφέρεται στα ειδικά χαρακτηριστικά του µηχανήµατος όπως λογικός σχεδιασµός, τεχνολογία διασύνδεσης, εξωτερικές συνδέσεις και τεχνολογία packaging. Γενικά, η Αρχιτεκτονική Υπολογιστών (Computer Architecture) αναφέρεται στα ακόλουθα τρία συστατικά: 1- Instruction set architecture 2- Organization. 3- Hardware. 2

Αρχιτεκτονική Υπολογιστών API ISA Link I/O Chan Interfaces Τεχνολογία Machine Organization Regs IR Computer Architect Εφαρµογές Measurement & Evaluation 3

Then ENIAC (1943-1946) by Mauchly and Eckert Dimension: 3 ft 8 ft 100 ft 15,000 vacuum tubes + lots of switches Memory : Twenty 10-digit decimal numbers Speed: 800 operations/sec 10 years of service more calculations than done by the entire human race up to 1946. 4

I think there is a world market for maybe five computers. Thomas Watson, Chairman of IBM, 1943 5

Now Earth Simulator (2002) by NEC Earth Simulator Center 5120 Processors (640 Gflops at peak) Dimension: Two basketball courts Memory: >20 TB ( 60 trillion bytes) Speed: 40 trillion operations/sec Cost:?? 6

Οι Γενιές του Hardware Υπολογιστών Πρώτη Γενιά, 1946-59: Vacuum Tubes, Relays, Mercury Delay Lines: ENIAC (Electronic Numerical Integrator and Computer): Πρώτος Η/Υ, 18000 vacuum tubes, 1500 relays, 5000 additions/sec. Πρώτο πρόγραµµα αποθηκευµένο σε υπολογιστή: EDSAC (Electronic Delay Storage Automatic Calculator). εύτερη Γενιά, 1959-64: ιακριτά Transistors. Τρίτη Γενιά, 1964-75: Μικρού και Μεσαίου µεγέθους Ολοκληρωµένα Κυκλώµατα. Τέταρτη Γενιά, 1975-Present: Ο Μικροϋπολογιστής. Μικροεπεξεργαστές βασισµένοι σε τεχνολογία. 7

Το Υπολογιστικό Μοντέλο Von-Neumann ιαχωρισµός της υπολογιστικής µηχανής σε συνιστώσες: Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit - CPU): Control Unit (instruction decode, sequencing of operations), Datapath (registers, arithmetic and logic unit, buses). Μνήµη (memory): Αποθήκευση εντολών και τελεστών. Είσοδος/Έξοδος (Input/Output - I/O). Η έννοια του αποθηκευµένου προγράµµατος: Εντολές από ένα σύνολο εντολών εξάγονται από τη µνήµη και εκτελούνται µία-µία. Control Input Memory - (instructions, data) Datapath registers ALU, buses Output Computer System CPU I/O Devices 8

Background Moore s Law and More Computing Power (tflops) 1,000 100 10 1 0.1 1996 ASCI Curve Moore s Law 1998 2000 2002 2004 MICROPROCESSORS 2x increase in performance every 18-24 months ( Moore s Law ) INNOVATIVE DESIGNS Specialized Computers Cellular Architectures Processors-in-Memory HTMT 9

Αύξηση της χωρητικότητας των VLSI Dynamic RAM Chips 1000000000 100000000 10000000 1000000 100000 10000 size έτος µέγεθος(mbit) 1980 0.0625 1983 0.25 1986 1 1989 4 1992 16 1996 64 1999 256 2000 1024 1000 1970 1975 1980 1985 1990 1995 2000 Year 1.55X/έτος, δηλαδή διπλασιάζεται κάθε 1.6 χρόνια 10

Trends in Microprocessor Transistors 100,000,000 10,000,000 R10000 Pentium Transistors 1,000,000 100,000 i80286 i80386 R3000 R2000 i8086 10,000 i8080 i4004 1,000 1970 1975 1980 1985 1990 1995 2000 2005 Year 11

Clock Speeds 12

CPU Clock 13

Αύξηση της Επίδοσης του Workstation- Class Microprocessors 1987-1997 1997 1200 1100 DEC Alpha 21264/600 1000 900 Performance 800 700 600 500 Integer SPEC92 Performance DEC Alpha 5/500 400 300 200 100 0 1987 SUN-4/ 260 MIPS M/120 1988 MIPS M2000 1989 IBM RS6000 1990 1991 IBM POWER 100 DEC AXP/500 HP 9000/750 1992 Year 1993 1994 DEC Alpha 4/266 1995 DEC Alpha 5/300 1996 1997 14

Microprocessor Clock Rate 15

Speed (MHz) Processor-Memory Gap 1000 Moore s Law CPU processor 60%/yr 100 10 1 processor-memory performance gap: (grows 50% / yr) DRAM memory 7%/yr 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 Time 16

Οµοίως και για το χώρο αποθήκευσης Απόκλιση µεταξύ χωρητικότητας µνήµης και ταχύτητας Η χωρητικότητα αυξήθηκε 1000 φορές από 1980 έως 1995, η ταχύτητα µόνο 2 φορές Οι µεγαλύτερες µνήµες είναι πιο αργές, ενώ οι επεξεργαστές γίνονται πιο γρήγοροι Ανάγκη µεταφοράς περισσότερων δεδοµένων παράλληλα Ανάγκη για βαθύτερες ιεραρχίες µνήµης Η παραλληλία αυξάνει το ενεργό µέγεθος κάθε επιπέδου ιεραρχίας της µνήµης, χωρίς να αυξηθεί ο χρόνος πρόσβασης 17

Τάσεις της Τεχνολογίας Integer FP 180 160 140 120 100 80 60 40 20 Sun 4 260 MIPS M/120 MIPS M2000 IBM RS6000 540 HP 9000 750 DEC alpha 0 1987 1988 1989 1990 1991 1992 18

Τάσεις στην Αρχιτεκτονική Υπολογιστών Έως το 1985: Παραλληλία σε επίπεδο bit: 4-bit -> 8 bit -> 16-bit Μέσα δεκαετίας 1980s έως µέσα δεκαετίας 1990: Παραλληλία σε επίπεδο εντολής (instruction level parallelism) Επόµενο βήµα: Παραλληλία σε επίπεδο thread 19

Eξέλιξη Παραλληλίας στους επεξεργαστές 100,000,000 Bit-level parallelism Instruction-level Thread-level (?) Transistors 10,000,000 1,000,000 100,000 i80286 R10000 Pentium i80386 R3000 R2000 i8086 10,000 i8080 i8008 i4004 1,000 1970 1975 1980 1985 1990 1995 2000 2005 20

Branch Data cache Instruction cache Bus Control Integer datapath Floatingpoint datapath ιάταξη ενός Τυπικού Μικροεπεξεργαστή : The Intel Pentium Classic 21

ιάταξη ενός Τυπικού Μικροεπεξεργαστή : The Intel Pentium Classic 22

I/O: Misc Audio/ MIDI Parallel/ serial I/O Four ISA card slots Four PCI card slots Memory Four SIMM slots Processor CPU Το σχέδιο του συστήµατος πλακετών ενός Προσωπικού Υπολογιστή (System Board Layout of a PC) (90% όλων των υπολογιστικών συστηµάτων διεθνώς). I/O: Mass Storage Two IDE connectors 23

Computer System Components Proc Caches System Bus Memory adapters I/O Buses I/O Devices: Controllers Disks Displays Keyboards NICs Networks 24

Intel 875P Chipset 25

How Fast Can You Go? Intel Pentium 4 Max Speed: >3 GHz System Bus: >800 MHz >100 M transistors Power dissipation??? 26

Low Power Cluster Architectures sensitivity to power consumption 27

Ο ρόλος του Σχεδιαστή Υπολογιστών Καθορίζει ποια χαρακτηριστικά είναι σηµαντικά για ένα νέο µηχάνηµα. Στη συνέχεια σχεδιάζει ένα µηχάνηµα που να µεγιστοποιεί την επίδοση και παράλληλη να µην υπερβαίνει τους περιορισµούς κόστους Επιµέρους χαρακτηριστικά Σχεδιασµός του instruction set Οργάνωση των λειτουργιών Λογικός σχεδιασµός και υλοποίηση (IC design, packaging, power, cooling ) 28

Περιορισµοί από την Τεχνολογία Ετήσια πρόοδος Τεχνολογία ηµιαγωγών 60% περισσότερα στοιχεία/chip 15% ταχύτερα στοιχεία Βραδύτερα καλώδια Μνήµη 60% αύξηση χωρητικότητας 3,3% µείωση του χρόνου πρόσβασης Μαγνητικοί δίσκοί 60% αύξηση χωρητικότητας 3,3% µείωση του χρόνου πρόσβασης Πλακέτες κυκλωµάτων 5% αύξηση στην πυκνότητα καλωδίων Καλώδια καµία αλλαγή 1989 1992 1995 1998 64x περισσότερα στοιχεία από το 1989 4x γρηγορότερα στοιχεία 29

Χωρητικότητα µικροεπεξεργαστών και µνηµών 100000000 10000000 1000000 100000 Moore s Law i80286 i80386 i80486 Pentium Alpha 21264 15εκατοµµύρια Pentium Pro 5,5εκατοµµύρια PowerPC 620 6,9εκατοµµύρια Alpha 21164 9,3εκατοµµύρια Sparc Ultra 5,2εκατοµµύρια 10000 i8080 i8086 i4004 1000 1970 1975 1980 1985 1990 1995 2000 Moore s Law -> 2x transistors/chip κάθε 1,5 χρόνο Year Reuters, ευτέρα 11/6/2001 : Οι µηχανικοί της Intel σχεδίασαν και κατασκεύασαν το µικρότερο και ταχύτερο transistor στον κόσµο µε µέγεθος 0,02 microns. Αυτό ανοίγει το δρόµο για µικροεπεξεργαστές 1 δισεκατοµµυρίου transistors, µε συχνότητα στα 20GHz το 2007. DRAM Chip Cycle Capacity time Έτος Μέγεθος ταχύτητα 1980 64Kb 250ns 1983 256Kb 220ns 1986 1Mb 190ns 1989 4Mb 165ns 1992 16Mb 145ns 1996 64Mb 120ns 2000 256Mb 100ns 30 2002 1Gb??ns

Τάσεις της τεχνολογίας Υπολογιστών: Ραγδαίες Αλλαγές Processor: 2X in speed every 1.5 years; 1000X performance in last decade. Memory: DRAM capacity: > 2x every 1.5 years; 1000X size in last decade. Cost per bit: Improves about 25% per year. Disk: Capacity: > 2X in size every 1.5 years. Cost per bit: Improves about 60% per year. 200X size in last decade. Expected State-of-the-art PC by end of year 2000 : Processor clock speed: 1500 MegaHertz (1.5 GigaHertz) Memory capacity: 500 MegaByte (0.5 GigaBytes) Disk capacity: 100 GigaBytes (0.1 TeraBytes) 31

Περιορισµοί από τις Εφαρµογές Οι εφαρµογές οδηγούν την «ισορροπία» των µηχανηµάτων Αριθµητικοί προσοµοιωτές Επίδοση αριθµών κινητής υποδιαστολής Bandwidth κύριας µνήµης ιεκπεραίωση λειτουργιών Ι/Ο ανά δευτερόλεπτο Επίδοση της CPU µε ακεραίους Έλεγχος ολοκληρωµένων Ι/Ο χρονισµός Επεξεργασία µέσων Χαµηλή ακρίβεια στην αριθµητική των pixel 32

Συστατικά του Hardware Πέντε είναι τα κλασσικά συστατικά στοιχεία όλων των υπολογιστών: 1. Control Unit; 2. Datapath; 3. Memory; 4. Input; 5. Output Processor Computer Processor (active) Control Unit Datapath Memory (passive) (προγράµµατα και δεδοµένα είναι ενεργά κατά την εκτέλεση) Devices Input Output Keyboard, Mouse, etc. Disk Display, Printer, etc. 33

Οργάνωση της CPU Σχεδιασµός του Datapath: υνατότητες & Επίδοση των χαρακτηριστικών των λειτουργικών µονάδων (FUs): (e.g., Registers, ALU, Shifters, Logic Units,...) Τρόποι διασύνδεσης των στοιχείων (σύνδεση διαδρόµων, multiplexors, etc.). Πώς ρέει η πληροφορία µεταξύ των στοιχείων του Η/Υ. Σχεδιασµός της Μονάδας Ελέγχου (Control Unit): Λογική και µέσα ελέγχου της ροής πληροφορίας. Έλεγχος και συντονισµός της λειτουργίας των λειτουργικών µονάδων (FUs) για την κατανόηση της Αρχιτεκτονικής τουinstruction Set Architecture που σκοπεύουµε να υλοποιήσουµε (υλοποιείται είτε µε ένα µηχάνηµα πεπερασµένων καταστάσεων (finite state) ή µε µικροπρόγραµµα). Περιγραφή του Hardware description µε µία κατάλληλη γλώσσα, πιθανώς χρησιµοποιώντας (RTN). 34

Ιεραρχία της Αρχιτεκτονικής High-Level Language Programs Υπολογιστών Software Machine Language Program Software/Hardware Boundary Hardware Logic Diagrams Circuit Diagrams Application Compiler Instr. Set Proc. Operating System Digital Design Circuit Design Layout Firmware I/O system Datapath & Control Assembly Language Programs Instruction Set Architecture Microprogram Register Transfer Notation (RTN) 35

Μορφή προγράµµατος σε κάθε επίπεδο High Level Language Program Compiler Assembly Language Program Assembler temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) Machine Language Program Machine Interpretation 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Control Signal Specification ALUOP[0:3] <= InstReg[9:11] & MASK Register Transfer Notation (RTN) 36

Ιεραρχία του Σχεδιασµού Υπολογιστών Level Name Modules Primitives Descriptive Media 1 Electronics Gates, FF s Transistors, Resistors, etc. Circuit Diagrams 2 Logic Registers, ALU s... Gates, FF s. Logic Diagrams 3 Organization Processors, Memories Registers, ALU s Register Transfer Notation (RTN) Low Level - Hardware 4 Microprogramming Assembly Language Microinstructions Microprogram Firmware 5 Assembly language OS Routines Assembly language Assembly Language programming Instructions Programs 6 Procedural Applications OS Routines High-level Language Programming Drivers.. High-level Languages Programs 7 Application Systems Procedural Construct Problem-Oriented Programs High Level - Software 37

Επεξεργασία του Instruction Set Αρχιτεκτονική (ISA) - από την πλευρά του προγραµµατιστή/µεταγλωτιστή Λειτουργική εµφάνιση προς µέσο χρήστη / προγραµµατιστή συστήµατος Opcodes, addressing modes, architected registers, IEEE floating point Υλοποίηση (µarchitecture) - από την πλευρά του σχεδιαστή επεξεργαστών Λογική δοµή και οργάνωση της αρχιτεκτονικής Pipelining, functional units, caches, physical registers Πραγµατοποίηση (Chip) - από την πλευρά του σχεδιαστή chip / συστηµάτων Φυσική δοµή της υλοποίησης Gates, cells, transistors, wires 38

CPU Machine Instruction Execution Steps Instruction Fetch Instruction Decode Operand Fetch Πάρε την εντολή από τη θέση αποθήκευσης του προγράµµατος Καθόρισε τις απαιτούµενες ενέργειες και το µέγεθος της εντολής Εντόπισε και πάρε τα δεδοµένα-τελεστές Execute Result Store Υπολόγισε την τιµή του αποτελέσµατος ή της κατάστασης Αποθήκευσε τα αποτελέσµατα για µεταγενέστερη χρήση Next Instruction Καθόρισε την επόµενη εντολή 39

Instruction Set Architecture (ISA)... τα χαρακτηριστικά ενός [υπολογιστικού] συστήµατος όπως φαίνεται από την πλευρά του προγραµµατιστή, π.χ. ηιδεατή δοµή και η λειτουργική συµπεριφορά, διαχωρισµένα από την οργάνωση της ροής δεδοµένων και τους ελέγχους του λογικού σχεδιασµού και της φυσικής υλοποίησης (as distinct from the organization of the data flows and controls the logic design, and the physical implementation). Amdahl, Blaaw, and Brooks, 1964. Η αρχιτεκτονική του συνόλου των εντολών (instruction set architecture) ασχολείται µε: Οργάνωση της προγραµµατιζόµενης αποθήκευσης (memory & registers): Συµπεριλαµβάνει το ποσό της διευθυνσιοδοτηµένης µνήµης (addressable memory) και τον αριθµό των διαθέσιµων καταχωρητών (registers). Τύποι & οµές εδοµένων: Κωδικοποιήσεις & παρουσίαση (representations). Σύνολο Εντολών (Instruction Set): Ποιες λειτουργίες προσδιορίζονται. Μορφοποίηση και κωδικοποίηση Εντολών. Τρόποι διευθυνσιοδότησης και προσπέλασης δεδοµένων και εντολών Χειρισµός Εξαιρέσεων. 40

Computer Instruction Sets Ανεξάρτητα από τον τύπο του υπολογιστή, τη δοµή της CPU, ή την οργάνωση του hardware, κάθε εντολή µηχανής πρέπει να προσδιορίζει τα ακόλουθα: Opcode: Ποια εντολή εκτελείται. Παράδειγµα: add, load και branch. Πού βρίσκονται οι τελεστές, αν υπάρχουν: Οι τελεστές µπορεί να είναι αποθηκευµένοι σε καταχωρητές της CPU, στην κύρια µνήµη, ή σε θύρες εισόδου/εξόδου. Πού τοποθετείται το αποτέλεσµα, αν υπάρχει: Μπορεί να αναφέρεται ρητά ή να υπονοείται από τον κωδικό της εντολής (opcode). Πού βρίσκεται η επόµενη εντολή: Αν δεν υπάρχουν ρητές διακλαδώσεις (branches), η προς εκτέλεση εντολή είναι η επόµενη στην ακολουθία εντολών του προγράµµατος. Σε περίπτωση εντολών jump ή branch η διεύθυνση προσδιορίζεται από αυτές. 41

Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Instruction Set Architecture (ISA) Προδιαγραφή Απαιτήσεων (Specification Requirements) Μορφοποίηση ή Κωδικοποίηση Εντολών: Πώς κωδικοποιείται; Θέση τελεστών και αποτελέσµατος (addressing modes): Πού αλλού εκτός µνήµης; Πόσοι ρητοί τελεστές; Πώς αντιστοιχίζονται (located) οι τελεστές µνήµης; Ποιοι µπορούν να βρίσκονται στη µνήµη και ποιοι όχι; Τύποι και µέγεθος δεδοµένων. Πράξεις Ποιες υποστηρίζονται ιαδοχή εντολών: Jumps, conditions, branches. Fetch-decode-execute υπονοούνται. 42

Τύποι Εντολών στο Instruction Set Operator Type Παραδείγµατα Arithmetic and logical Integer arithmetic & logical operations: add, or Data transfer Loads-stores (move on machines with memory addressing) Control Branch, jump, procedure call, & return, traps. System Operating system call, virtual memory management instructions Floating point Floating point operations: add, multiply. Decimal Decimal add, decimal multiply, decimal to character conversion String String move, string compare, string search Graphics Pixel operations, compression/ decompression operations 43

Παραδείγµατα Εντολών µετακίνησης δεδοµένων Instruction Meaning Machine MOV A,B lwz R3,A Move 16-bit data from memory loc. A to loc. B VAX11 Move 32-bit data from memory loc. A to register R3 PPC601 li $3,455 Load the 32-bit integer 455 into register $3 MIPS R3000 MOV AX,BX Move 16-bit data from register BX into register AX Intel X86 LEA.L (A0),A2 Load the address pointed to by A0 into A2 MC68000 44

Παραδείγµατα Εντολών της ALU Instruction Meaning Machine MULF A,B,C Multiply the 32-bit floating point values at mem. locations A and B, and store result in loc. C VAX11 nabs r3,r1 Store the negative absolute value of register r1 in r2 PPC601 ori $2,$1,255 Store the logical OR of register $1 with 255 into $2 MIPS R3000 SHL AX,4 Shift the 16-bit value in register AX left by 4 bits Intel X86 ADD.L D0,D1 Add the 32-bit values in registers D0, D1 and store MC68000 the result in register D0 45

Παραδείγµατα Εντολών ιακλάδωσης Instruction Meaning Machine BLBS A, Tgt Branch to address Tgt if the least significant bit at location A is set. VAX11 bun r2 Branch to location in r2 if the previous comparison PPC601 signaled that one or more values was not a number. Beq $2,$1,32 Branch to location PC+4+32 if contents of $1 and $2 MIPS R3000 are equal. JCXZ Addr Jump to Addr if contents of register CX = 0. Intel X86 BVS next Branch to next if overflow flag in CC is set. MC68000 46

Παράδειγµα Χρήσης Εντολών: Top 10 Intel X86 Instructions Κατηγορία Εντολή Μέσο ποσοστό συνολικής εκτέλεσης 1 2 3 4 5 6 7 load conditional branch compare store add and sub 22% 20% 16% 12% 8% 6% 5% 8 9 10 move register-register call return Total 4% 1% 1% 96% Παρατήρηση: Οι απλές εντολές έχουν τις µεγαλύτερες συχνότητες χρησιµοποίησης. 47

Μετρικές της επίδοσης Υπολογιστών Εφαρµογές Γλώσσα Προγραµµατισµού Execution time: Target workload, SPEC95, etc. Compiler ISA (millions) of Instructions/second MIPS (millions) of (F.P.) operations/second MFLOP/s Datapath Έλεγχος Λειτουργικές Μονάδες Transistors Καλώδια Pins Megabytes/second. Cycles/second (συχνότητα ρολογιού). Κάθε µέτρο έχει έναν σκοπό και καθένα µπορεί να χρησιµοποιηθεί λανθασµένα Each metric has a purpose, and each can be misused. 48

Αξιολόγηση της Επίδοσης των Υπολογιστών: Cycles Per Instruction (CPI) Οι περισσότεροι υπολογιστές «τρέχουν» κατά τρόπο σύγχρονο, δηλαδή ένας κύκλο της µονάδας επεξεργασίας (CPU clock) εκτελείται σε συγκεκριµένη (σταθερή) συχνότητα ρολογιού (clock rate): όπου: Clock rate = 1 / clock cycle Μία εντολή µηχανής αποτελείται από έναν αριθµό µικρολειτουργιών οι οποίες ποικίλουν σε αριθµό και πολυπλοκότητα ανάλογα µε την εντολή και την ακριβή οργάνωση και υλοποίηση της µονάδας επεξεργασίας (CPU). Μία µικρολειτουργία είναι µία στοιχειώδης λειτουργία του hardware η οποία µπορεί να εκτελεστεί σε έναν κύκλο ρολογιού. Αυτό αντιπροσωπεύει µία µικρο-εντολή σε µικροπρογραµµατιζόµενες CPUs. Παραδείγµατα: register operations: shift, load, clear, increment, ALU operations: add, subtract, etc. Εποµένως µία απλή εντολή µηχανής µπορεί να πάρει έναν ή περισσότερους κύκλους για να ολοκληρωθεί. Ο αριθµός των 49 απαιτούµενων κύκλων ονοµάζεται Cycles Per Instruction (CPI).

Μετρήσεις της Επίδοσης Υπολογιστών: Χρόνος εκτέλεσης προγράµµατος Για ένα συγκεκριµένο πρόγραµµα που έχει µεταγλωττιστεί για να εκτελείται σε ένα συγκεκριµένο µηχάνηµα A, δίνονται οι ακόλουθες παράµετροι: Ο συνολικός αριθµός εντολών του προγράµµατος. Ο µέσος αριθµός των κύκλων ανά εντολή (average CPI). Ο κύκλος ρολογιού του µηχανήµατος A Πώς µπορεί κανείς να µετρήσει την επίδοση του µηχανήµατος κατά την εκτέλεση ου προγράµµατος αυτού; ιαισθητικά το µηχάνηµα φαίνεται να έχει καλύτερη επίδοση όσο µικρότερος είναι ο συνολικός χρόνος εκτέλεσης. Εποµένως το αντίστροφο του συνολικού µετρούµενου χρόνου εκτέλεσης (execution time) είναι ένα πιθανό µέτρο της επίδοσης (performance): Performance A = 1 / Execution Time A Πώς συγκρίνονται διαφορετικά µηχανήµατα; Ποιοι παράγοντες επηρεάζουν την επίδοση; Πώς µπορεί να βελτιωθεί η επίδοση; 50

Comparing Computer Performance Using Execution Time Για να συγκρίνουµε την επίδοση 2 µηχανηµάτων A, B τα οποία εκτελούν ένα δεδοµένο πρόγραµµα: Performance A = 1 / Execution Time A Performance B = 1 / Execution Time B Αν το µηχάνηµα A είναι n φορές γρηγορότερο από το µηχάνηµα B σηµαίνει ότι: n = Performance A / Performance = B Execution Time B / Execution Time A Παράδειγµα: Για ένα δεδοµένο πρόγραµµα : Execution time στο A: Execution A = 1 second Execution time στο B: Execution B = 10 seconds Performance A / Performance B = Execution Time B / Execution Time A = 10 / 1 = 10 Η επίδοση του A είναι 10 φορές καλύτερη από την επίδοση του B όταν τρέχει το συγκεκριµένο πρόγραµµα 51

CPU Execution Time Ένα πρόγραµµα αποτελείται από έναν αριθµό εντολών Μετρούµενες σε: instructions/program Για την ολοκλήρωση µιας µέσης εντολής απαιτείται ένας αριθµός κύκλων ανά εντολή (cycles per instruction - CPI). Μετρούµενος σε: cycles/instruction Η CPU έχει σταθερό χρόνο κύκλου ρολογιού = 1/clock rate Μετρούµενο σε: seconds/cycle Ο χρόνος εκτέλεσης από τη CPU (CPU execution time) είναι το γινόµενο των 3 παραπάνω παραµέτρων: CPU CPUtime = Seconds Instructions Cycles Cycles Seconds = Program Program x x Instruction Cycle Cycle 52

CPU Execution Time: Παράδειγµα Ένα πρόγραµµα εκτελείται σε ένα συγκεκριµένο µηχάνηµα που έχει τις ακόλουθες παραµέτρους: Συνολικός αριθµός εντολών(instruction count): 10,000,000 instructions Μέσο CPI του προγράµµατος: 2.5 cycles/instruction. Συχνότητα ρολογιού της CPU: 200 MHz. Ποιος είναι ο χρόνος εκτέλεσης (execution time) του προγράµµατος: CPU CPU time time = Seconds Instructions Cycles Cycles Seconds = Program Program x x Instruction Cycle Cycle CPU time = Instruction count x CPI x Clock cycle = 10,000,000 x 2.5 x 1 / clock rate = 10,000,000 x 2.5 x 5x10-9 = 0.125 seconds 53

Παράγοντες που επηρεάζουν την επίδοση της CPU CPU CPU time time = Seconds Instructions Cycles Cycles Seconds = Program Program x x Instruction Cycle Cycle Instruction Count CPI Clock Rate Program x Compiler x x Instruction Set Architecture (ISA) x x x Οργάνωση x x Τεχνολογία x 54

Χρόνος εκτέλεσης χρόνος αριθµός κύκλοι χρόνος = x x εκτέλεσης εντολών εντολή 1 κύκλου αριθµός κύκλοι CPU κύκλοι µνήµης χρόνος + εντολών εντολή εντολή 1 κύκλου = x x αριθµός κύκλοι CPU αναφορές κύκλοι µνήµης χρόνος + x εντολών εντολή εντολή αναφορά 1 κύκλου = x x Αρχιτεκτονική του Instruction Set Τεχνολογία του Compiler Υλοποίηση της CPU Ιεραρχία Μνήµης και Cache 55

Μέτρα της Επίδοσης Υπολογιστών : MIPS (Million Instructions Per Second) Για ένα συγκεκριµένο πρόγραµµα που εκτελείται σε ένα συγκεκριµένο υπολογιστή, MIPS (millions of instructions per second) είναι ένα µέτρο του πόσα εκατοµµύρια εντολές εκτελούνται το δευτερόλεπτο: MIPS = Instruction count / (Execution Time x 10 6 ) = Instruction count / (CPU clocks x Cycle time x 10 6 ) = (Instruction count x Clock rate) / (Instruction count x CPI x 10 6 ) = Clock rate / (CPI x 10 6 ) Γρηγορότερος χρόνος εκτέλεσης συνήθως σηµαίνει γρηγορότερο MIPS: ε χρησιµοποιείται ο αριθµός των εντολών (No account for the instruction set used). Εξάρτηση από το πρόγραµµα: Κάθε µηχάνηµα δεν έχει µόνο ένα MIPS γιατί η εκτίµηση του MIPS εξαρτάται από το χρησιµοποιούµενο πρόγραµµα. Easy to abuse: Program used to get the MIPS rating is often omitted. Cannot be used to compare computers with different instruction sets. A higher MIPS rating in some cases may not mean higher performance or better execution time. i.e. due to compiler design variations. 56

Μέτρα της Επίδοσης Υπολογιστών : MFOLPS (Million FLOating (Million FLOating-Point Operations Per Second) Μία πράξη floating-point είναι πρόσθεση, αφαίρεση, πολ/σµός ή διαίρεση µεταξύ αριθµών µε παράσταση απλής ή διπλής ακρίβειας floating-point. MFLOPS, για δεδοµένο πρόγραµµα που εκτελείται σε δεδοµένο υπολογιστή, είναι ένα µέτρο των εκατοµµυρίων των πράξεων µε floating point (megaflops) ανά δευτερόλεπτο: MFLOPS = αριθµός των πράξεων floating-point / (Execution time x 10 6 ) MFLOPS είναι ένα καλύτερο µέτρο σύγκρισης µεταξύ διαφορετικών µηχανηµάτων από ότι το MIPS. Εξάρτηση από το πρόγραµµα: ιαφορετικά προγράµµατα έχουν διαφορετικά ποσοστά εντολών µε floating-point πράξεις. π.χ. Οι compilers δεν περιέχουν πράξεις µε floating- point και δίνουν µηδενικό MFLOPS. Εξαρτάται από το είδος της πράξης µε floating-point που πραγµατοποιείται στο πρόγραµµα. 57

Choosing Programs To Evaluate Performance Levels of programs or benchmarks that could be used to evaluate performance: Actual Target Workload: Full applications that run on the target machine. Real Full Program-based Benchmarks: Select a specific mix or suite of programs that are typical of targeted applications or workload (e.g SPEC95). Small Kernel Benchmarks: Key computationally-intensive pieces extracted from real programs. Examples: Matrix factorization, FFT, tree search, etc. Best used to test specific aspects of the machine. Microbenchmarks: Small, specially written programs to isolate a specific aspect of performance characteristics: Processing: integer, floating point, local memory, input/output, etc. 58

Pros Representative Types of Benchmarks Actual Target Workload Cons Very specific. Non-portable. Complex: Difficult to run, or measure. Portable. Widely used. Measurements useful in reality. Easy to run, early in the design cycle. Identify peak performance and potential bottlenecks. Full Application Benchmarks Small Kernel Benchmarks Microbenchmarks Less representative than actual workload. Easy to fool by designing hardware to run them well. Peak performance results may be a long way from real application performance 59

SPEC: System Performance Evaluation Cooperative The most popular and industry-standard set of CPU benchmarks. SPECmarks, 1989: 10 programs yielding a single number ( SPECmarks ). SPEC92, 1992: SPECInt92 (6 integer programs) and SPECfp92 (14 floating point programs). SPEC95, 1995: Eighteen new application benchmarks selected (with given inputs) reflecting a technical computing workload. SPECint95 (8 integer programs): go, m88ksim, gcc, compress, li, ijpeg, perl, vortex SPECfp95 (10 floating-point intensive programs): tomcatv, swim, su2cor, hydro2d, mgrid, applu, turb3d, apsi, fppp, wave5 Source code must be compiled with standard compiler flags. 60

SPEC95 For High-End CPUs First Quarter 2000 61

Σύγκριση Επίδοσης: : Example Από το προηγούµενο παράδειγµα: Ένα πρόγραµµα εκτελείται σε συγκεκριµένο µηχάνηµα µε τις ακόλουθες παραµέτρους: Συνολικός αριθµός εντολών: 10,000,000 instructions Μέσο CPI του προγράµµατος: 2.5 cycles/instruction. Συχνότητα ρολογιού της CPU: 200 MHz. Χρησιµοποιούµε το ίδιο πρόγραµµα µε τις εξής αλλαγές: Νέος compiler: Νέος αριθµός εντολών 9,500,000 Νέο CPI: 3.0 Γρηγορότερη υλοποίηση της CPU: Νέα συχνότητα ρολογιού = 300 MHZ Ποια είναι η επιτάχυνση (Speedup) µε τις αλλαγές αυτές; Speedup Speedup Παλιό ΠαλιόExecution Time Time I παλιό I x παλιό CPI CPI παλιό x παλιό Clock Clock cycle cycle old = = old Νέο ΝέοExecution Time Time I νέο I x νέο CPI CPI νέο x νέο Clock Clock Cycle Cycle νέο νέο Speedup = (10,000,000 x 2.5 x 5x10-9 ) / (9,500,000 x 3 x 3.33x10-9 ) = 0.125 / 0.095 = 1.32 ή 32 % γρηγορότερη µετά τις αλλαγές. 62

Τύποι Εντολών & CPI ίνεται ένα προγράµµατος µε n τύπους ή κατηγορίες εντολών µε τα ακόλουθα χαρακτηριστικά: C i = Αριθµός εντολών τύπου i CPI i = Μέσος αριθµός κύκλων/εντολή τύπου i Τότε: CPU clock cycles = n ( ) i C i i = 1 CPI 63

Τύποι εντολών & CPI: Παράδειγµα Σε Instruction Set µε 3 κατηγορίες εντολών: Κατηγορία εντολής CPI A 1 B 2 C 3 2 ακολουθίες προγραµµάτων µε τον ακόλουθο αριθµό εντολών: Αριθµός εντολών για κάθε κατηγορία εντολής Code Sequence A B C 1 2 1 2 2 4 1 1 CPU cycles στο πρόγραµµα 1 = 2 x 1 + 1 x 2 + 2 x 3 = 10 cycles CPI στο πρόγραµµα 1 = clock cycles / instruction count = 10 /5 = 2 CPU cycles στο πρόγραµµα 2 = 4 x 1 + 1 x 2 + 1 x 3 = 9 cycles CPI στο πρόγραµµα 2 = 9 / 6 = 1.5 64

Συχνότητα Εντολών & CPI ίνεται ένα προγράµµατος µε n τύπους ή κατηγορίες εντολών µε τα ακόλουθα χαρακτηριστικά : C i = Αριθµός εντολών τύπου i CPI i = Μέσος αριθµός κύκλων/εντολή τύπου i F i = Συχνότητα της εντολής τύπου i = C i / συνολικός αριθµός εντολών Τότε: CPI = n ( ) i F i i = 1 CPI 65

Συχνότητα Εντολών & CPI : Παράδειγµα σε RISC Base Machine (Reg / Reg) Op Freq Cycles CPI(i) % Time ALU 50% 1 0.5 23% Load 20% 5 1.0 45% Store 10% 3 0.3 14% Branch 20% 2 0.4 18% Typical Mix CPI = n ( ) i F i i = 1 CPI CPI = 0.5 x 1 + 0.2 x 5 + 0.1 x 3 + 0.2 x 2 = 2.2 66

Παραλλαγές Compiler, MIPS & Επίδοση: Παράδειγµα Σε Instruction Set µε 3 κατηγορίες εντολών : Κατηγορία εντολής CPI A 1 B 2 C 3 Για δεδοµένο πρόγραµµα, 2 compilers παράγουν τους ακόλουθους αριθµούς εντολών: Αριθµός εντολών (σε εκατοµµύρια) για κάθε κατηγορία εντολών Κώδικας από: A B C Compiler 1 5 1 1 Compiler 2 10 1 1 Το µηχάνηµα έχει συχνότητα 100 MHz. 67

Παραλλαγές Compiler, MIPS & Επίδοση: Παράδειγµα (Συνεχίζεται) MIPS = Clock rate / (CPI x 10 6 ) = 100 MHz / (CPI x 10 6 ) CPI = CPU execution cycles / Instructions count ( ) CPU clock cycles = i i CPU time = Instruction count x CPI / Clock rate n i= 1 CPI C Για τον compiler 1: CPI 1 = (5 x 1 + 1 x 2 + 1 x 3) / (5 + 1 + 1) = 10 / 7 = 1.43 MIP 1 = 100 / (1.428 x 10 6 ) = 70.0 CPU time 1 = ((5 + 1 + 1) x 10 6 x 1.43) / (100 x 10 6 ) = 0.10 seconds Για τον compiler 2: CPI 2 = (10 x 1 + 1 x 2 + 1 x 3) / (10 + 1 + 1) = 15 / 12 = 1.25 MIP 2 = 100 / (1.25 x 10 6 ) = 80.0 CPU time 2 = ((10 + 1 + 1) x 10 6 x 1.25) / (100 x 10 6 ) = 0.15 seconds 68