2. Τεχνολογία επεξεργαστών

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "2. Τεχνολογία επεξεργαστών"

Transcript

1 Κεφάλαιο 2: Τεχνολογία επεξεργαστών Τεχνολογία επεξεργαστών 2.1 Επιλογές στη σχεδίαση επεξεργαστών Η κεντρική μονάδα επεξεργασίας (Central Processing Unit CPU) ή επεξεργαστής αποτελεί την καρδιά ενός υπολογιστικού συστήματος. Με την γενίκευση της χρήσης των παράλληλων συστημάτων μέσα σε ένα chip, ένας επεξεργαστής μπορεί πλέον να αποτελείται από πολλούς μικρότερους επεξεργαστές που για λόγους αποφυγής της σύγχυσης αποκαλούνται πυρήνες. Σκοπός της CPU είναι η εκτέλεση των εντολών του προγράμματος και του λειτουργικού συστήματος, δηλαδή η εκτέλεση των πράξεων αριθμητικής και λογικής (AND OR, XOR, κλπ), οι μετακινήσεις δεδομένων από και προς τη μνήμη, ο έλεγχος ροής του προγράμματος (προσκόμιση επόμενης εντολής, εκτέλεση αλμάτων) και η εξυπηρέτηση των διακοπών. Ο απλός επεξεργαστής (ή ο «πυρήνας») περιέχει διάφορες λειτουργικές μονάδες, όπως, τη μονάδα ακέραιων αριθμητικών πράξεων (Arithmetic Logical Unit ALU), τη μονάδα εκτέλεσης πράξεων κινητής υποδιαστολής (Floating point unit FPU) τη λογικό κύκλωμα αποκωδικοποίησης των εντολών και του ελέγχου της ροής του προγράμματος (Control Unit), και την τοπική μνήμη (καταχωρητές και cache). Το λογικό διάγραμμα ενός απλού επεξεργαστή ή ενός πυρήνα ενός πολυπήρνου επεξεργαστή φαίνεται στο Σχήμα 8. Η σχεδίαση ενός επεξεργαστή καθορίζεται από τα τρία παρακάτω χαρακτηριστικά: (α) Σχεδίαση της εσωτερικής μνήμης. Η εσωτερική μνήμη αποτελείται από μια ιεραρχία μνημών που περιλαμβάνει 1. τους καταχωρητές (registers), 2. την cache επιπέδου 1 (L1 cache), 3. την cache επιπέδου 2 (L2 cache), 4. και (συχνά) την cache επιπέδου 3 (L3 cache). Οι καταχωρητές είναι ταχύτατες μνήμες που υλοποιούνται με πύλες τύπου flip-flop (latches) και έχουν χρόνο προσπέλασης μικρότερο από τον κύκλο του ρολογιού. Τροφοδοτούν τη μονάδα αριθμητικών πράξεων σταθερής αλλά και κινητής υποδιαστολής και μπορούν να φορτωθούν από την κύρια μνήμη (load) ή να αποθηκευτούν στην κύρια μνήμη (store). Ωστόσο οι καταχωρητές δεν είναι η μόνη επιλογή για την εσωτερική μνήμη ενός επεξεργαστή. Άλλες επιλογές, αν και όχι πλέον δημοφιλείς, είναι η αρχιτεκτονική σωρού και η αρχιτεκτονική βασισμένη στον συσσωρευτή. Αυτές τις επιλογές θα μελετήσουμε στο Εδάφιο Η κρυφή μνήμη cache υλοποείται σε διάφορα επίπεδα. Τα μικρότερα επίπεδα έχουν μικρότερο μέγεθος (σε bytes) και μεγαλύτερη ταχύτητα προσπέλασης. Όσο ανεβαίνουμε επίπεδα μεγαλώνει το μέγεθος της cache και μικραίνει η ταχύτητά της. Την λειτουργία της cache θα μελετήσουμε στο Κεφάλαιο 3.

2 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 22 (β) Επιλογή του συνόλου των εντολών. Το σύνολο των εντολών που υλοποιεί ένας επεξεργαστής είναι ένα κομβικό στοιχείο καθώς χαρακτηρίζει την αρχιτεκτονική του επεξεργαστή από απόψεως πολυπλοκότητας. Οι συμβατικοί επεξεργαστές όπως οι Intel Core, ανήκουν στην οικογένεια των λεγόμενων υπολογιστών με πολύπλοκο σύνολο εντολών (Complex Instruction Set Computers - CISC). Οι επεξεργαστές αυτοί χρησιμοποιούν μικροπρογραμματισμό και έχουν εντολές που εκτελούνται σε διάφορους κύκλους μηχανής. Έτσι π.χ. άλλες εντολές εκτελούνται σε 1 κύκλο και άλλες παίρνουν 20 κύκλους για να εκτελεστούν. Οι επεξεργαστές με μειωμένο σύνολο εντολών (Reduced Instruction Set Computers - RISC) έχουν μικρό αριθμό κύκλων μηχανής για όλες τις εντολές, δηλαδή 1 με 2 κύκλους ανά εντολή και δε χρησιμοποιούν μικροπρογραμματισμό. Τέτοιοι επεξεργαστές είναι για παράδειγμα, ο ARM (χρησιμοποιείται σε κινητά τηλέφωνα και tablets), η σειρά POWER6 και 7 της IBM (χρησιμοποιείται σε υπολογιστές IBM, Apple και σε παιχνιδομηχανές), οι επεξεργαστές MIPS (χρησιμοποιούνται στους υπολογιστές SGI και σε παιχνιδομηχανές), οι επεξεργαστές SPARC της Oracle και Fujitsu, οι επεξεργαστές SuperH της Hitachi, κλπ. Οι επεξεργαστές RISC έχουν εν γένει ταχύτερο κύκλο μηχανής από τους αντίστοιχους CISC.και θα τους μελετήσουμε λεπτομερέστερα στο Εδάφιο (γ) Χρήση pipelining και παραλληλισμού. Το pipelining αποτελεί βασικό συστατικό των επεξεργαστών. Χρησιμοποιείται τόσο στην εκτέλεση των εντολών όσο και στις πράξεις κινητής υποδιαστολής. Εκεί που υπάρχει διαφοροποίηση, και συνεπώς δυνατότητα επιλογής, είναι στο πόσες pipeline διαθέτει ένας επεξεργαστής και με ποιο τρόπο είναι οργανωμένες. Οι επεξεργαστές με πολλαπλές pipelines καλούνται superscalar ή VLIW (Very Long Instruction Word). Στην περίπτωση superscalar το υλικό αποφασίζει την δρομολόγηση πολλαπλών εντολών στις διάφορες pipeline, ενώ στην αρχιτεκτονική VLIW ο μεταφραστής είναι υπεύθυνος για το «πακετάρισμα» πολλαπλών εντολών προς ταυτόχρονη εκτέλεση στις διάφορες pipeline. Το θέμα του pipelining θα μας απασχολήσει στο Κεφάλαιο 4. Επί πλέον, η παράλληλη επεξεργασία τα τελευταία χρόνια αποτελεί το νέο μεγάλο κεφάλαιο στην αρχιτεκτονική των επεξεργαστών. Οι περισσότεροι μοντέρνοι επεξεργαστές περιέχουν πολλαπλούς πυρήνες που μπορεί ο καθένας να περιέχει πολλαπλές pipeline. Το αντικείμενο της παράλληλης επεξεργασίας θα μας απασχολήσει στα Κεφάλαια 6-9.

3 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 23 Bus Level 2 Cache Instruction Fetch Control Unit Instruction Decode Μικρο-κώδικας Δρομολόγηση εντολών Store Load ALU FPU Level 1 Cache Καταχωρητές Σχήμα 8: Λογικό διάγραμμα ενός απλού επεξεργαστή (ή ενός πυρήνα ενός πολυπύρηνου επεξεργαστή) Αρχιτεκτονική εσωτερικής μνήμης. Ένα από τα πιο σημαντικά στοιχεία ενός επεξεργαστή είναι το είδος της εσωτερικής μνήμης που έχει. Υπάρχουν τρεις βασικές επιλογές: 1. Αρχιτεκτονική σωρού (stack). Σ' αυτή την επιλογή οι τελεστές μιας πράξης (πχ. ADD) βρίσκονται σε μια μνήμη τύπου σωρού. Ο σωρός αυτός αποτελείται από καταχωρητές μέσα στον επεξεργαστή και τροφοδοτείται από την μνήμη με τις εντολές push και pop. 2. Αρχιτεκτονική βασισμένη σε συσσωρευτή (accumulator). Σ' αυτήν την επιλογή υπονοείται ότι ένας τελεστής είναι πάντα ο συσσωρευτής. Έτσι π.χ. η εντολή ADD χρειάζεται μόνο μια παράμετρο: τον άλλο τελεστή που θα προστεθεί στον συσσωρευτή. Ο άλλος τελεστής βρίσκεται συνήθως σε μια θέση μνήμης. Η αρχιτεκτονική αυτή χρησιμοποιείταν στο παρελθόν όταν δεν υπήρχε αρκετός χώρος στο chip για πολλούς καταχωρητές. 3. Αρχιτεκτονική καταχωρητών γενικού σκοπού (general purpose registers). Σ' αυτήν την επιλογή δεν υπάρχουν υπονοούμενοι τελεστές στις πράξεις. Υπάρχουν ωστόσο δύο παραλλαγές της αρχιτεκτονικής:

4 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 24 (α) η αρχιτεκττονική register-memory που επιτρέπει ο ένας τελεστής σε μια πράξη να είναι θέση μνήμης ενώ ο άλλος είναι καταχωρητής και (β) η αρχιτεκτονική register-register (ή load-store) όπου υποχρεωτικά όλοι οι τελεστές των πράξεων να είναι μόνο καταχωρητές. Η προσπέλαση στη μνήμη γίνεται μόνο με τις εντολές LOAD, STORE Αυτή είναι και η επιλογή που έχει κυριαρχήσει σήμερα. Ο Πίνακας 4 δείχνει ένα παράδειγμα εκτέλεσης της πράξης C=A+B σύμφωνα με τις τέσσερεις παραπάνω αρχιτεκτονικές (1, 2, 3α, 3β). Οι πρώτοι υπολογιστές ήταν βασισμένοι στο μοντέλο της σωρού. Από το 1980 και μετά ωστόσο έχει κυριαρχήσει το μοντέλο των καταχωρητών και συγκεκριμένα η αρχιτεκτονική load-store. Πίνακας 4. Οι κώδικες που εκτελούν την πράξη C=A+B σε τέσσερεις διαφορετικές αρχιτεκτονικές εσωτερικής μνήμης επεξεργαστών. Σωρός Συσσωρευτής Καταχωρητές (register-memory) Καταχωρητές (register-register) PUSH A LOAD A LOAD R1, A LOAD R1, A PUSH B ADD B ADD R1, B LOAD R2, B ADD STORE C STORE C, R1 ADD R3, R2, R1 POP C STORE C, R3 Οι λόγοι για τους οποίους κυριάρχησαν οι καταχωρητές στην αρχιτεκτονική είναι οι εξής: (α) Οι καταχωρητές είναι ταχύτεροι από τη μνήμη. Προφανώς, ακόμη και οι αρχιτεκτονικές load/store απαιτούν πρόσβαση στη μνήμη με την εκτέλεση εντολών load για να φορτωθούν τα δεδομένα στους καταχωρητές την πρώτη φορά. Ωστόσο, αφού φορτωθούν τα δεδομένα μπορούν πλέον να χρησιμοποιούνται πολλές φορές στις πράξεις χωρίς να χρειάζεται ξανά πρόσβαση στη μνήμη. Τυπικά η πρόσβαση στη μνήμη απαιτεί 5-10 κύκλους μηχανής ενώ η πρόσβαση σε ένα καταχωρητή απαιτεί 1 κύκλο. Έτσι με την αρχιτεκτονική register-register, για παράδειγμα, την πρώτη φορά γίνεται πρόσβαση στη μνήμη με κόστος 5-10 κύκλους για το φόρτωμα της μεταβλητής A στον καταχωρητή R1, αλλά από εκεί και πέρα κάθε φορά που θέλουμε να χρησιμοποιήσουμε τη μεταβλητή A θα χρησιμοποιούμε τον R1, η πρόσβαση του οποίου κοστίζει μόλις ένα κύκλο μηχανής. (β) Οι μεταφραστές μπορούν να χειριστούν τους καταχωρητές πιο ευέλικτα απ' ότι την μνήμη σωρού. Για παράδειγμα, αν οι τιμές των παραμέτρων της πράξης (A*B)- (C*D) βρίσκονται σε καταχωρητές τότε οι δύο πολλαπλασιασμοί μπορούν να γίνουν με οποιαδήποτε σειρά πριν από την αφαίρεση κι αυτό μπορεί να βολεύει για λόγους θέσης των τελεστών. Αν π.χ. οι τιμές C, D βρίσκονται ήδη σε δύο

5 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 25 καταχωρητές του επεξεργαστή ενώ οι τιμές A, B βρίσκονται ακόμα στην κύρια μνήμη συμφέρει να κάνουμε πρώτα την πράξη C*D ενώ ταυτόχρονα οι τιμές A, B φορτώνονται από τη μνήμη σε άλλους καταχωρητές κερδίζοντας έτσι χρόνο. Ένας άλλος λόγος που προτιμούνται οι καταχωρητές είναι το pipelining που θα μελετήσουμε αργότερα. (γ) Το πιο σημαντικό πλεονέκτημα των καταχωρητών είναι ότι μπορούν να φυλάσσουν κάποιες μεταβλητές ενός προγράμματος μειώνοντας έτσι την κυκλοφορία μεταξύ μνήμης και επεξεργαστή, αυξάνοντας την ταχύτητα του προγράμματος αφού η προσπέλαση στη μνήμη είναι πιο αργή από την προσπέλαση σε ένα καταχωρητή. Οι σχεδιαστές μεταφραστών θα ήθελαν όλοι οι καταχωρητές ενός επεξεργαστή να είναι γενικού σκοπού για να μπορούν να δεσμεύουν κάθε μεταβλητή στο πρόγραμμα με ένα καταχωρητή. Παλιότερες αρχιτεκτονικές (π.χ. ο 8086) διέθεταν πολύ λίγους επεξεργαστές γενικού σκοπού (π.χ. ο AX) ενώ είχαν πολλούς επεξεργαστές δεσμευμένους σε ειδικές εργασίες (π.χ. o SP ήταν ο stack pointer, ο CS ήταν ο δείκτης στο code segment, ο DS στο data segment, κλπ). Οι σημερινοί επεξεργαστές έχουν πολλούς καταχωρητές γενικού σκοπού (π.χ. πάνω από 100). Πόσοι καταχωρητές χρειάζονται; Η απάντηση εξαρτάται από πόσους χρησιμοποιεί ο μεταφραστής αλλά ο κανόνας είναι ότι, από πλευράς μεταφραστών, όσο περισσότεροι τόσο καλύτερα. Οι περισσότεροι μεταφραστές χρησιμοποιούν κάποιους καταχωρητές για αριθμητικές πράξεις, κάποιους άλλους για πέρασμα παραμέτρων, και τέλος κάποιους για φύλαγμα global μεταβλητών. Από πλευράς αρχιτεκτονικής φυσικά υπάρχει περιορισμένος χώρος πάνω στο chip και δεν μπορεί ο επεξεργαστής να αποτελείται μόνο από καταχωρητές, χρειάζεται χώρο για λογικά/αριθμητικά κυκλώματα, κυκλώματα αποκωδικοποίησης εντολών, μνήμη cache, κλπ. Οι μοντέρνοι επεξεργαστές που χρησιμοποιούν αρχιτεκτονική καταχωρητών κατατάσσονται σε κατηγορίες ανάλογα με το πόσους τελεστές μνήμης μπορεί να έχει μια αριθμητική εντολή (εντολή ALU). Ο Πίνακας 5 δείχνει τις βασικές κατηγορίες και κάποια συγκεκριμένα παραδείγματα επεξεργαστών. Πίνακας 5. Συνδυασμοί αριθμού τελεστών από τη μνήμη και συνολικού αριθμού τελεστών σε μια εντολή πράξης (εντολή ALU). Αριθμός κλήσεων μνήμης ανά εντολή Μέγιστος αριθμός τελεστών ανά εντολή Παραδείγματα επεξεργαστών 0 3 SPARC, MIPS, PowerPC, DEC-Alpha 1 2 Intel 80x86, Motorola VAX 3 3 VAX

6 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 26 Οι επεξεργαστές με 0 κλήσεις στη μνήμη καλούνται όπως είδαμε επεξεργαστές τύπου register-register ή load-store. Τα πλεονεκτήματα αυτής της αρχιτεκτονικής είναι η απλή αποκωδικοποίηση των εντολών. Συχνά οι εντολές αυτών των αρχιτεκτονικών παίρνουν τον ίδιο αριθμό κύκλων μηχανής για να εκτελεστούν. Αυτό απλοποιεί πολύ τα πράγματα και όσον αφορά το pipelining όσο και το σχεδιασμό μεταφραστών. Το κυριότερο μειονέκτημα είναι ο μεγαλύτερος αριθμός εντολών που χρειάζονται για να εκτελέσουν ένα πρόγραμμα σε σχέση με τον αριθμό εντολών που χρησιμοποιεί μια αρχιτεκτονική με κλήση της μνήμης για να εκτελέσει το ίδιο πρόγραμμα. Οι επεξεργαστές με 1 κλήση στη μνήμη και 2 τελεστές καλούνται επεξεργαστές τύπου register-memory. Το πλεονέκτημα των επεξεργαστών αυτών είναι ότι τα δεδομένα της μνήμης μπορούν να προσπελασθούν άμεσα χωρίς LOAD. Το μειονέκτημα είναι ότι οι εντολές δεν έχουν τον ίδιο αριθμό κύκλων μηχανής πράγμα που δυσκολεύει τόσο την αποκωδικοποίηση όσο και το pipelining. Οι επεξεργαστές με ίδιο αριθμό κλήσεων στη μνήμη και αριθμό τελεστών (2,2) ή (3,3) καλούνται επεξεργαστές memory-memory. Αυτή είναι μια αρχιτεκτονική επιλογή που δεν χρησιμοποιείται πλέον αλλά είχε χρησιμοποιηθεί στο παρελθόν (VAX). Εκτός του ότι η αρχιτεκτονική αυτή έχει μεγάλες διαφορές στον αριθμό κύκλων ανά εντολή έχει και μοιραία πολλές κλήσεις στη μνήμη και έτσι δημιουργείται κυκλοφοριακή συμφόρηση στη γραμμή επικοινωνίας μεταξύ επεξεργαστή και μνήμης Κλήσεις διευθύνσεων μνήμης (memory addressing). Οι μεταβλητές που χρησιμοποιούνται σε ένα πρόγραμμα φυλάσσονται σε κάποιο είδος μνήμης (κύρια μνήμη και καταχωρητές). Οι πιο συνηθισμένοι τρόποι κλήσης της μνήμης φαίνονται στον Πίνακας 6. Βλέπουμε ότι ορισμένοι από αυτούς τους τρόπους είναι αρκετά πολύπλοκοι και απαιτούν κάποιες πράξεις για να προσδιοριστεί ακριβώς ποια διεύθυνση μνήμης καλείται. Είναι προφανές ότι για παράδειγμα, ο άμεσος τρόπος (immediate) είναι ο ταχύτερος από όλους ενώ αρκετά ταχύς είναι και ο τρόπος του καταχωρητή (register). Αντίθετα, ο τρόπος της έμμεσης μνήμης (memory indirect) είναι από τους πιο αργούς, αφού απαιτεί δύο κλήσεις στην κύρια μνήμη. Πίνακας 6. Οι πιο συνηθισμένοι τρόποι κλήσης της μνήμης, χρησιμοποιώντας το παράδειγμα της πρόσθεσης. Οι τρόποι αυτοί προέρχονται από πραγματικούς επεξεργαστές του εμπορίου. Τρόπος κλήσης Παράδειγμα εντολής Λειτουργία Register ADD R4, R3 reg[r4] reg[r4] + reg[r3] (καταχωρητής) Immediate ADD R4, 5 reg[r4] reg[r4] + 5 (άμεσος) Displacement (μετατόπιση) ADD R4, 100(R1) reg[r4] reg[r4] + mem[reg[r1]+100] Register deferred (έμμεσος καταχωρητής) ADD R4, (R1) reg[r4] reg[r4] + mem[reg[r1]] Indexed ADD R3, (R1+R2) reg[r3] reg[r3] +

7 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 27 (με δείκτη) mem[reg[r1] +reg[r2]] Direct(άμεση μνήμη) ADD R1, (587) reg[r1] reg[r1] + mem[587] Memory indirect (έμμεση μνήμη) Autoincrement (αυτο-αύξηση) Autodecrement (αυτο-μείωση) Scaled (κλιμακούμενος) ADD reg[r1] reg[r1] + mem[mem[reg[r3]]] ADD R1, (R2)+ reg[r1] reg[r1] + mem[reg[r2]] reg[r2] reg[r2] + d ADD R1, -(R2) reg[r2] reg[r2] d reg[r1] reg[r1] + mem[reg[r2]] ADD R1, reg[r1] reg[r1] + 100(R2)[R3] mem[100+reg[r2] +reg[r3]*d] Η υποστήριξη όλων αυτών των τρόπων κλήσης επιβαρύνει σημαντικά την πολυπλοκότητα του επεξεργαστή. Το πλεονέκτημα είναι η μείωση του αριθμού των εντολών που απαιτούνται σε ορισμένες περιπτώσεις για να γίνει πρόσβαση στα δεδομένα. Όπως δείχνει ο Πίνακας 7 για τρία διαφορετικού τύπου προγράμματα που τρέχουν στον επεξεργαστή του VAX, η συχνότητα χρήσης κάποιων τρόπων κλήσης της μνήμης είναι πολύ μικρότερη από κάποιους άλλους. Ο άμεσος τρόπος (immediate) και η μετατόπιση (displacement) είναι οι πιο συχνοί τρόποι ενώ αντίθετα τρόποι όπως με δείκτη (indexed) ή με αυτο-αύξηση / αυτομείωση (autoincrement / autodecrement) δεν χρησιμοποιούνται καθόλου. Πίνακας 7. Η συχνότητα χρησιμοποίησης των διάφορων τρόπων κλήσης μνήμης στην αρχιτεκτονική του VAX για τρία τυπικά προγράμματα (Tex, spice, gcc). Είναι σαφής η διαφοροποίηση στη συχνότητα χρήσης των τρόπων αυτών η οποία είναι αντιστρόφως ανάλογη της πολυπλοκότητάς τους. Προγράμματα TeX (πρόγραμμα επεξεργασίας κειμένου) Spice (πρόγραμμα εξομοίωσης ηλεκτρονικών κυκλωμάτων) Gcc (μεταφραστής C) Memory indirect 1% 6% 1% Scaled 0% 16% 6% Register deferred 24% 24% 11% Immediate 43% 43% 39%

8 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 28 Displacement 32% 55% 60% Είδη εντολών. Οι κυριότερες κατηγορίες εντολών σε ένα μοντέρνο επεξεργαστή φαίνονται στον Πίνακας 8. Η χρήση αυτών των εντολών εξαρτάται από την αρχιτεκτονική αλλά γενικά, οι πιο απλές εντολές έχουν τη μεγαλύτερη συχνότητα χρήσης όπως φαίνεται και στον Πίνακα 2-6 όπου το SPECint92 benchmark δοκιμάστηκε πάνω σε επεξεργαστή τύπου Intel 80x86. Τύπος εντολής Αριθμητική λογική Μεταφοράς δεδομένων Ελέγχου Συστήματος Επεξεργασία Συμβολοσειρών Γραφικά Πίνακας 8. Κατηγορίες εντολών και παραδείγματα. Παράδειγμα add, subtract, and, or, κλπ load, store, move, κλπ branch, jump, return, call, trap κλήσης λειτουργικού συστήματος, εικονική μνήμη, κλπ string move, string compare, string search, κλπ pixel operations Είναι σαφές ότι η βελτίωση της ταχύτητας ενός επεξεργαστή βασίζεται στη βελτίωση της ταχύτητας εκτέλεσης των πιο συχνών εντολών. Επομένως πρέπει να δοθεί έμφαση στην βελτίωση της ταχύτητας των εντολών του Πίνακας 9. Πίνακας 9. Οι δέκα πιο συχνές εντολές στο benchmark SPECint92. Σειρά συχνότητας Εντολή 80x86 Ποσοστό επί συνόλου εντολών 1 load 22% 2 conditional branch 20% 3 compare 16% 4 store 12% 5 add 8% 6 and 6% 7 sub 5% 8 move register-register 4% 9 call 1% 10 return 1% Σύνολο 96% Ειδικά για τις εντολές ελέγχου χρειάζεται ειδική ανάλυση γιατί αυτές αλλάζουν τη ροή του προγράμματος. Θα τις χωρίσουμε σε 4 κατηγορίες με τις αντίστοιχες συχνότητες χρησιμοποίησης όπως παρακάτω

9 Κεφάλαιο 2: Τεχνολογία επεξεργαστών Άλματα χωρίς συνθήκη (jumps) 5% 2. Άλματα υπό συνθήκη (conditional jumps) 85% 3. Κλήσεις υπορουτινών (procedure calls) 5% 4. Επιστροφές υπορουτινών (procedure returns) 5% Τα άλματα υπό συνθήκη είναι με διαφορά η πιο συχνή κατηγορία εντολών ελέγχου ροής του προγράμματος. Τα άλματα υπό συνθήκη ορίζονται συνήθως σε σχέση με τον Μετρητή Εντολών (Program Counter). Με άλλα λόγια η εντολή που θα εκτελεστεί μετά το άλμα ορίζεται σαν offset σε σχέση με τον PC. Πειράματα έχουν δείξει ότι το 75% των jumps είναι προς τα εμπρός και ότι ο στόχος δεν απέχει συνήθως πάνω από 100 εντολές από την εντολή άλματος. Αυτό σημαίνει ότι τουλάχιστον 8 bits πρέπει να χρησιμοποιηθούν για να ορίσουν τον στόχο του άλματος σε σχέση με τον PC. Πιο πολλά bits θα επιβαρύνουν το μέγεθος της εντολής χωρίς ουσιαστικό κέρδος αφού σπάνια θα εμφανίζεται άλμα μεγαλύτερο από 256 εντολές. Στις σπάνιες αυτές περιπτώσεις μπορεί να χρησιμοποιούνται ειδικές εντολές (far jump) που μπορούν να χρησιμοποιούν την κύρια μνήμη για την αποθήκευση της διεύθυνσης του στόχου. Οι επιστροφή από κλήση μιας υπορουτίνας (εντολή return) σε αντίθεση με τις εντολές call και jump, δεν έχει προκαθορισμένο στόχο, δηλαδή δεν ξέρουμε πριν τρέξει το πρόγραμμα ποια εντολή θα εκτελεστεί μετά το άλμα. Η επιστροφή γίνεται στην επόμενη εντολή που κάλεσε την ρουτίνα και επομένως η διεύθυνσή της γίνεται γνωστή μόνο την ώρα που τρέχει το πρόγραμμα (run-time). Σε αυτές τις περιπτώσεις γίνεται συνήθως χρήση κάποιου καταχωρητή που φυλάσσει τη διεύθυνση επιστροφής. Τα άλματα που χρησιμοποιούν καταχωρητές για τη διεύθυνση του στόχου λέγονται register-indirect jumps και χρησιμοποιούνται επίσης και στις παρακάτω περιπτώσεις στις εντολές case (ή switch) στις δυναμικές βιβλιοθήκες (dynamic shared libraries) οι οποίες φορτώνονται μόνο εφόσον κληθούν στις εικονικές συναρτήσεις (virtual functions) που χρησιμοποιούνται σε αντικειμενοστραφείς γλώσσες όπως η C++. Η διαχείριση ενός άλματος υπό συνθήκη γίνεται με τρεις βασικές μεθόδους οι οποίες περιγράφονται παρακάτω μαζί με τα βασικά πλεονεκτήματα και μειονεκτήματά τους. (α) Χρήση ενός ή περισσότερων bit συνθήκης (condition code). Στην μέθοδο αυτή εκτελούνται δύο εντολές, μια σύγκριση και ένα άλμα το οποίο εξαρτάται από το αποτέλεσμα της σύγκρισης. Ανάλογα με το αποτέλεσμα της σύγκρισης γίνονται set ή reset διάφορα bits στην μονάδα επεξεργασίας. Τα bits αυτά αποτελούν τον κώδικα της συνθήκης (condition code CC) που δηλώνει μεγαλύτερο, ίσο, μικρότερο, μικρότεροίσο, άνισο, μεγαλύτερο-ίσο, κλπ. Τα μειονεκτήματα της μεθόδου είναι ότι το CC προσθέτει ένα ή περισσότερα bits κατάστασης στον επεξεργαστή και επίσης η σειρά

10 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 30 εκτέλεσης των εντολών περιορίζεται αφού η μια εντολή περνάει στην άλλη πληροφορία μέσα από το CC. (β) Χρήση καταχωρητή (condition register). Στην μέθοδο αυτή εκτελούνται πάλι δύο εντολές, μια σύγκριση και ένα άλμα αν η σύγκριση πετύχει. Το αποτέλεσμα της σύγκρισης (συνήθως η διαφορά μεταξύ δύο αριθμών) ελέγχεται από ένα καταχωρητή με την εντολή test. Η μέθοδος αυτή είναι αρκετά απλή και δεν προσθέτει πολυπλοκότητα στο υλικό. Το βασικότερο μειονέκτημα είναι ότι καταναλίσκεται ένας καταχωρητής για το σκοπό αυτό. (γ) Σύγκριση και άλμα σε μια εντολή (compare and branch). Το άλμα γίνεται πιο γρήγορα αλλά υλοποιείται με πιο περίπλοκο υλικό (hardware) πράγμα που μπορεί να είναι ανεπιθύμητο. Συνήθως οι εντολές σύγκρισης που υλοποιούνται είναι πολύ απλές και λίγες σε αριθμό γι τον παραπάνω ακριβώς λόγο Επιλογές στη σχεδίαση του συνόλου των εντολών (instruction set) Μια από τις σημαντικότερες επιλογές στην σχεδίαση ενός επεξεργαστή είναι η επιλογή του συνόλου των εντολών που εκτελούνται απ' ευθείας από το υλικό. Υπάρχουν δύο βασικές επιλογές: οι επεξεργαστές πολύπλοκου συνόλου εντολών (Complex Instruction Set Computers: CISC) και οι επεξεργαστές μειωμένου συνόλου εντολών (Reduced Instruction Set Computers: RISC). Στα επόμενα εδάφια θα μελετήσουμε με λεπτομέρεια τις δύο αυτές φιλοσοφίες σχεδίασης. Εδώ θα μελετήσουμε τα συγκριτικά πλεονεκτήματα και μειονεκτήματα της κάθε προσέγγισης,, θα δούμε ποιες σχεδιαστικές επιλογές υπάρχουν, και θα παρουσιάσουμε ποσοτικές μετρήσεις που είναι εν πολλοίς ανεξάρτητες από το σύνολο των εντολών που χρησιμοποιούνται Επεξεργαστές Πολύπλοκου συνόλου εντολών (Complex Instruction Set Computers: CISC) Από τα πρώτα χρόνια της ιστορίας των υπολογιστών πολλοί σχεδιαστές επιζητούσαν να γεφυρώσουν το σημασιολογικό χάσμα μεταξύ των γλωσσών υψηλού επιπέδου, στην οποία οι προγραμματιστές γράφουν τα προγράμματά τους, και της γλώσσας μηχανής, δηλαδή του συνόλου των εντολών που εκτελεί ένας επεξεργαστής. Οι εντολές υψηλού επιπέδου είναι σημασιολογικά πιο «πυκνές» αφού μια τέτοια εντολή τυπικά αναλύεται σε πολλές εντολές μηχανής. Για παράδειγμα, θεωρείστε την παρακάτω απλή εντολή σε γλώσσα C, όπου ο πίνακας x περιέχει ακεραίους 32 bit (= 4 byte): x[i] = x[i-1] + 2; Η εντολή αυτή, ανάλογα με την αρχιτεκτονική του επεξεργαστή, μπορεί να αναλυθεί σε 5 έως και 10 εντολές μηχανής. Πχ, αν ακολουθηθεί το μοντέλο load-store η εντολή αυτή θα έσπαζε στο εξής παρακάτω πρόγραμμα γλώσσας μηχανής: LOAD R1, i ;Φόρτωσε το i στον καταχωρητή R1 SUB R2, R1, #1 ;R2 = i-1 LOAD R3, x ;Φόρτωσε τον δείκτη της αρχής του ;πίνακα x στον R3

11 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 31 MUL R2, R2, #4 ;R2 = 4*(i-1) ADD R4, R3, R2 ;R4 = x+4*(i-1) LOAD R5, (R4) ;R5 = MEM[x+4*(i-1)] = x[i-1] ADD R6, R5, #2 ;R6 = x[i-1]+2 MUL R1, R1, #4 ;R1 = 4*i ADD R7, R3, R1 ;R7 = x+4*i STOR (R7), R6 ;MEM[x+4*i] = x[i-1]+2 Το σημασιολογικό χάσμα γίνεται αμέσως εμφανές. Έτσι πολλοί σχεδιαστές αποφάσισαν υλοποιήσουν όσο το δυνατόν περισσότερες λειτουργίες πάνω στο υλικό (hardware), δηλαδή να δώσουν στον επεξεργαστή ένα πλούσιο ρεπερτόριο εντολών το οποίο θεωρείτο ότι θα βελτίωνε την απόδοση του συνολικού συστήματος. Ο κύριος λόγος ήταν το γεγονός ότι το υλικό είναι γρηγορότερο από το λογισμικό και επομένως συμφέρει να υλοποιηθεί κάποια πράξη σε υλικό παρά σε λογισμικό. Η σχεδιαστική φιλοσοφία των απλών συνόλων εντολών (RISC) που θα μελετήσουμε παρακάτω και είναι αντίθετη με το CISC, δημιούργησε επανάσταση στην αρχιτεκτονική των υπολογιστών τη δεκαετία του Ωστόσο, οι αρχιτεκτονικές επεξεργαστών με πλούσιο σύνολο εντολών δεν έπαψαν ποτέ να υπάρχουν και μάλιστα τις βρίσκουμε σήμερα στους δημοφιλείς επεξεργαστές της οικογένειας x86 (IA32) της Intel οι οποίοι κυριαρχούν στους περισσότερους υπολογιστές γραφείου (desktop) αλλά και σε πολλούς φορητούς υπολογιστές (laptop). Μια άλλη αρχιτεκτονική που ακολουθεί σήμερα τη φιλοσοφία CISC είναι η Z/Architecture της IBM που χρησιμοποιείται στα IBM mainframes. Τα σημαντικότερα χαρακτηριστικά των αρχιτεκτονικών CISC είναι: 1. Μεγάλο ρεπερτόριο εντολών που συνήθως περιέχει περισσότερες από 400 εντολές. 2. Οι εντολές έχουν διαφορετικά μήκη (πλήθος bytes) και διαφορετικό αριθμό δεδομένων: άλλες μπορεί να χρησιμοποιούν ένα τελεστή, άλλες δύο, άλλες τρεις, και άλλες κανένα. Αυτό έχει δύο βασικές συνέπες: (α) απαιτείται η χρήση μικροκώδικα (microcode). Ο μικροκώδικας αναλύει την εντολή μηχανής σε μικρότερες «μικροεντολές» οι οποίες ελέγχουν της ροή της πληροφορίας μέσα στον επεξεργαστή ρθυμίζοντας τα κατάλληλα flags. Ο μικροκώδικας φυλάσσεται εσωτερικά στο chip του επεξεργαστή σε ειδική μνήμη μόνο ανάγνωσης (ROM). Αυτό ωστόσο δημιουργεί μια μικρή καθυστέρηση στην εκτέλεση των εντολών καθώς η προσπέλαση της ROM απαιτεί κάποιο χρόνο. Επί πλέον, ο μικροκώδικας ως πρόγραμμα είναι επιρρεπής σε σφάλματα. (β) τη σχεδίαση της pipeline εντολών δυσχεραίνεται αρκετά καθώς οι εντολές δεν έχουν το ίδιο πλήθος φάσεων: κάποιες έχουν πολύ περισσότερες φάσεις από κάποιες άλλες. 3. Η χρήση πολλών διαφορετικών μεθόδων κλήσεως της μνήμης (π.χ. υλοποιείται όλος ο Πίνακας 6). 4. Η υλοποίηση πολύπλοκων εντολών, πχ μαζική μετακίνηση καταχωρητών από και προς τη μνήμη ή από και πρός άλλους καταχωρητές, εντολές SIMD επεξεργασία πολυμέσων, κλπ. 5. Η χρήση συγκριτικά λιγότερων καταχωρητών σε σχέση με αρχιτεκτονικές RISC της ίδιας γενιάς.

12 Κεφάλαιο 2: Τεχνολογία επεξεργαστών Επεξεργαστές Μειωμένου συνόλου εντολών (Reduced Instruction Set Computers: RISC) Το RISC πρωτοεμφανίστηκε στις αρχές της δεκαετίας του '80 όταν οι ερευνητές άρχισαν να επανεξετάζουν τη σκοπιμότητα των μεγάλων συνόλων εντολών. Όπως φαίνεται και στον Πίνακας 9 μόνο ένα μικρό μέρος του συνόλου των εντολών χρησιμοποιείται στην πραγματικότητα πάνω από το 1% του χρόνου. Παρομοίως, ο Πίνακας 7 μας δείχνει ότι από τις περίπου 10 μεθόδους κλήσεως της μνήμης τελικά περίπου 3 ή 4 χρησιμοποιούνται στην πράξη ενώ οι υπόλοιπες είναι ιδιαίτερα σπάνιες. Επί πλέον πρέπει κανείς να λάβει υπ' όψη του ότι όσο πιο πολλές λειτουργίες εκτελεί το υλικό τόσο πιο αργό γίνεται αφού αυξάνει το λεγόμενο κρίσιμο μονοπάτι. Το κρίσιμο μονοπάτι δεν είναι τίποτα άλλο από την μεγαλύτερη αλυσίδα τρανζίστορς μέσα σε ένα chip τα οποία τροφοδοτούν το ένα το άλλο. Η περίοδος του ρολογιού πρέπει να είναι μεγαλύτερη από το χρόνο που χρειάζεται να σταθεροποιηθεί η μεγαλύτερη αλυσίδα τρανζίστορ όσο μικρές κι αν είναι οι υπόλοιπες αλυσίδες. Όσο πιο πολλά τα τρανζίστορς στην αλυσίδα τόσο πιο αργό είναι και το συνολικό κύκλωμα. Προσθέτοντας λοιπόν υλικό στο κύκλωμα καταφέρνουμε να επιβαρύνουμε το κρίσιμο μονοπάτι. Τίθεται λοιπόν το ερώτημα: "Ποιος ο λόγος να υλοποιηθούν όλες αυτές οι περίπλοκες εντολές και όλοι οι περίπλοκοι τρόποι κλήσεως της μνήμης, και μάλιστα με κόστος στην ταχύτητα του επεξεργαστή;" Η φιλοσοφία του RISC λέει ότι είναι καλύτερα να υλοποιηθούν μόνο οι βασικές εντολές και οι συνηθέστεροι τρόποι κλήσεως της μνήμης με αποτέλεσμα το κρίσιμο μονοπάτι να γίνει όσο μικρότερο γίνεται και άρα ο επεξεργαστής να γίνει όσο ταχύτερος γίνεται. Το κόστος είναι ότι όταν θα χρειαστεί να εκτελεστεί μια πολύπλοκη εντολή ή ένας πολύπλοκος τρόπος κλήσεως της μνήμης θα χρειαστεί να εκτελεστούν περισσότερες εντολές απ' ότι στην περίπτωση CISC. Πλην όμως αυτές οι περιπτώσεις είναι σπάνιες και το κέρδος που θα έχουμε αποκομίσει από την αύξηση της ταχύτητας του επεξεργαστή υπερκαλύπτει αυτό το κόστος. Ένα ακόμα σημαντικό πλεονέκτημα των RISC επεξεργαστών πέρα από την ταχύτητά τους είναι και το γεγονός ότι έχουν περισσότερο ελεύθερο χώρο στο chip, σε σχέση με τους επεξεργαστές τύπου CISC, για να χρησιμοποιηθεί για αποθήκευση δεδομένων (καταχωρητές και μνήμες cache διαφόρων επιπέδων). Επίσης, όπως είδαμε, η πολυπλοκότητα των εντολών CISC απαιτεί τη χρήση μικροκώδικα για την υλοποίησή τους και όλα τα μικροπρογράμματα φυλάσσονται σε ROM. Ένας επεξεργαστής RISC, λόγω απλότητας των εντολών, δεν περιέχει μικροκώδικα αλλά χρησιμοποιεί καλωδιωμένη λογική (πύλες και latches) που είναι ταχύτερη από την ROM. Τέλος, σε ένα επεξεργαστή RISC όλες οι εντολές εκτελούνται σε ένα ή δύο κύκλους (φάση EXE), πράγμα που διευκολύνει πολύ την τμηματοποίηση των εντολών σε ομοιόμορφες φάσεις με στόχο τη χρήση pipelining για την επιτάχυνση της εκτέλεσής τους. Στους επεξεργαστές CISC άλλες εντολές εκτελούνται σε 1 κύκλο και άλλες σε 20 ή 30. Αυτή η ποικιλία πολυπλοκότητας των εντολών δυσχεραίνει πολύ την τμηματοποίησή τους σε ομοιόμορφες φάσεις και κάνει το pipelining πρακτικά αδύνατο.

13 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 33 Ο Πίνακας 10 συνοψίζει τις βασικές αρχιτεκτονικές διαφορές μεταξύ των φιλοσοφιών CISC και RISC. Πίνακας 10. Χαρακτηριστικά των αρχιτεκτονικών RISC και CISC. Αρχιτεκτονικά Χαρακτηριστικά Μέγεθος συνόλου εντολών και κωδικοποίηση εντολών Υπολογιστές CISC Μεγάλο σύνολο εντολών (π.χ. 400 εντολές). Οι εντολές δεν έχουν το ίδιο μήκος το οποίο κυμαίνεται από 16 έως 64 bits. Τρόποι κλήσης μνήμης 12 έως έως 5. Καταχωρητές γενικού Λιγότεροι καταχωρητές σκοπού γενικού σκοπού (πχ. 8-24) Cache Είτε μια κοινή cache επιπέδου 1 για εντολές και δεδομένα είτε διαφορετική για δεδομένα και διαφορετική για εντολές. Η μοντέρνα τάση είναι προς την δεύτερη επιλογή Μεταβλητός από εντολή σε εντολή (από 1 έως 20). Υπολογιστές RISC Μικρό σύνολο εντολών (π.χ εντολές). Οι εντολές έχουν το ίδιο μήκος και βασίζονται στη χρήση καταχωρητών. Περισσότεροι καταχωρητές γενικού σκοπού (πχ ). Διαφορετική cache επιπέδου 1 για δεδομένα και διαφορετική για εντολές Αριθμός κύκλων μηχανής ανά εντολή 1 κύκλος ανά εντολή για τις περισσότερες εντολές και ίσως 2 κύκλοι για λίγες εντολές. Κύκλωμα ελέγχου ROM με μικροκώδικα. Καλωδιωμένη λογική. Pipelining Δυσκολότερο Ευκολότερο Περίοδος κύκλου ρολογιού Λίγο μεγαλύτερος λόγω βεβαρυμένου κρίσιμου μονοπατιού Μικρότερος κύκλος σε σχέση με το CISC (για ίδιας τεχνολογίας chip) 2.2 Επεξεργαστές Superscalar, VLIW και Vector Επεξεργαστές τύπου Superscalar Οι επεξεργαστές scalar εκτελούν μόνο μια εντολή κάθε φορά. Σε αντίθεση, οι επεξεργαστές superscalar έχουν τη δυνατότητα εκτέλεσης πολλαπλών εντολών μέσα σε ένα κύκλο. Για να επιτευχθεί αυτό χρησιμοποιείται η μέθοδος pipelining στον κύκλο εκτέλεσης των εντολών σε συνδυασμό με το γεγονός ότι υπάρχουν πολλές pipelines εντολών μέσα σε ένα τέτοιο επεξεργαστή. Όπως θα δούμε με λεπτομέρεια στο Κεφάλαιο 4.1 το pipelining βασίζεται στον τεμαχισμό της εκτέλεσης μιας εντολής σε φάσεις. Η πιο συνηθισμένη κατάτμηση είναι σε 5 φάσεις:

14 Κεφάλαιο 2: Τεχνολογία επεξεργαστών Φάση IF = προσκόμιση εντολής (Instruction Fetch) 2. Φάση ID = αποκωδικοποίηση / ανάγνωση καταχωρητών (Instruction decode / register fetch) 3. Φάση EX = εκτέλεση (Execution) 4. Φάση MEM = πρόσβαση στη μνήμη / ολοκλήρωση αλμάτων (Memory access) 5. Φάση WB = εγγραφή καταχωρητών / μνήμης (Write back) Η pipeline εντολών ενός επεξεργαστή scalar εκτελεί ταυτόχρονα διαφορετικές εντολές σε διαφορετικές φάσεις όπως φαίνεται στο παρακάτω σχήμα. Έτσι, ενώ χωρίς pipelining θα εκτελείταν μια εντολή κάθε 5 κύκλους μηχανής, με τη χρήση pipelining ολοκληρώνεται μια εντολή κάθε 1 κύκλο (από τον κύκλο 5 και μετά). Κύκλοι μηχανής Εντολή 1 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή 5 Η ιδέα του superscalar βασίζεται στην παρατήρηση ότι σε πολλά προγράμματα υπάρχει αρκετή ελευθερία στη σειρά εκτέλεσης των εντολών. Έτσι π.χ. στην παρακάτω γραμμή κώδικα υψηλού επιπέδου E = (A*B) + (C*D) οι πράξεις (A*B) και (C*D)μπορούν να εκτελεστούν με οποιαδήποτε σειρά, ή ακόμα και ταυτόχρονα. Φυσικά η πράξη της πρόσθεσης στην παραπάνω εντολή θα πρέπει να έπεται των πολλαπλασιασμών και άρα δεν μπορεί να εκτελεστεί ταυτόχρονα με αυτούς. Πιο συγκεκριμένα ο παραπάνω κώδικας αντιστοιχεί στο εξής πρόγραμμα γλώσσας μηχανής: Ε1: LOAD R1,A Ε2: LOAD R2,B Ε3: MUL R3,R1,R2 ;R3 = A*B Ε4: LOAD R4,C Ε5: LOAD R5,D Ε6: MUL R6,R4,R5 ;R6 = C*D Ε7: ADD R7,R3,R6 ;R7 = (A*B) + (C*D) Ε8: STOR E,R7

15 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 35 Ένας κατάλληλα σχεδιασμένος επεξεργαστής τύπου superscalar μπορεί να εντοπίσει εντολές που μπορούν να εκτελεστούν ταυτόχρονα και να τις εκτελέσει στις πολλαπλές pipeline εντολών που διαθέτει. Στο Σχήμα 9 δίνεται ένα πιθανό χρονοδιάγραμμα εκτέλεσης των παραπάνω εντολών σε ένα επεξεργαστή supersclar με δύο pipeline εντολών. Προσέξτε ότι η εντολή Ε3 πρέπει να έπεται των εντολών Ε1, Ε2 διότι χρησιμοποιεί τα αποτελέσματά τους, δηλαδή τους καταχωρητές R1, R2. Έτσι η Ε3 αρχίζει να εκτελείται στον κύκλο 2, δηλαδή ένα κύκλο μετά τις R1, R2 ώστε αυτές να προλάβουν να εκτελέσουν τη φάση EX στον κύκλο 3 πριν από την φάση EX της Ε3 που εκτελείται στον κύκλο 5. Επίσης, η εντολή Ε6 πρέπει να αρχίσει να εκτελείται μετά από τις Ε4, Ε5, διότι χρησιμοποιεί τους καταχωρητές R4, R5 που ενημερώνονται από αυτές η εντολή Ε7 πρέπει να αρχίσει να εκτελείται μετά από την Ε6, διότι χρησιμοποιεί τον καταχωρητή R6 που ενημερώνεται από αυτή η εντολή Ε8 πρέπει να αρχίσει να εκτελείται μετά από την Ε7, διότι χρησιμοποιεί τον καταχωρητή R7 που ενημερώνεται από αυτή Οι εξαρτήσεις μεταξύ των εντολών επειδή τα δεδομένα ενημερώνονται (γράφονται - write) από τη μια εντολή και διαβάζονται (read) από την άλλη είναι κεφαλαιώδους σημασίας για την σχεδίαση πολλαπλών pipelines αλλά και για την ορθή παραλληλοποίηση του κώδικα όπως θα δούμε παρακάτω. Η συγκεκριμένη εξάρτηση καλείται Read-After-Write (RAW) ωστόσο υπάρχουν και άλλοι τύποι εξαρτήσεων όπως Write After Read (WAR) και Write After Write (WAW). Η ανάλυση των εξαρτήσεων δεδομένων θα μελετηθεί λεπτομερώς στο Κεφάλαιο 9. Στην περίπτωση του επεξεργαστή superscalar το υλικό αναλαμβάνει να ανιχνεύσει τις εξαρτήσεις δεδομένων και να μεριμνήσει ώστε να μην αρχίσει να εκτελείται μια εντολή X η οποία εξαρτάται από μια εντολή Υ, αν δεν έχει αρχίσει να εκτελείται πρώτα η Y. Στο Σχήμα 9 βλέπουμε ότι με τον τρόπο αυτό δημιουργούνται κενά στη στη σειρά εκτέλεσης των εντολών. Θα ήταν καλό αν μπορούσαμε να εκμεταλλευτούμε αυτά τα κενά εκτελώντας κάποιες άλλες εντολές που δεν εξαρτώνται από τις τρέχουσες. Μερικές φορές ωστόσο αυτό δεν είναι εφικτό και τα κενά παραμένουν αχρησιμοποίητα (δεν εκτελείται τίποτα) αφήνοντας αδρανή μια από τις δύο pipelines. Έτσι δεν γίνεται πλήρης εκμετάλλευση των δυνατοτήτων του συστήματος. Κύκλοι μηχανής Ε1: LOAD R1,A Ε2: LOAD R2,B Ε3: MUL R3,R1,R2 Κάτι άλλο... ή τίποτα

16 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 36 Ε4: LOAD R4,C Ε5: LOAD R5,D Ε6: MUL R6,R4,R5 Κάτι άλλο... ή τίποτα Ε7: ADD R7,R3,R6 Κάτι άλλο... ή τίποτα Ε8: STOR E,R7 Κάτι άλλο... ή τίποτα Σχήμα 9. Η εκτέλεση των εντολών σε ένα επεξεργαστή superscalar με 2 pipelines. Η εκτέλεση γίνεται με τη σειρά που οι εντολές εμφανίζονται στο πρόγραμμα assembly (in-order execution). Το πρόβλημα προκύπτει (εν μέρει) επειδή επιμένουμε οι εντολές να εκτελούνται με τη σειρά που εμφανίζονται στο πρόγραμμα assembly (in-order execution), δηλαδή με τη σειρά Ε1, Ε2, Ε3, Ε4, Ε5, Ε6, Ε7, Ε8. Μια λύση θα ήταν η εκτέλεση εντολών εκτός σειράς (out-of-order execution). Παρατηρούμε για παράδειγμα ότι μπορούμε να ξεκινήσουμε την εκτέλεση των 4 loads (Ε1, Ε2, Ε4, Ε5) σε δύο κύκλους ανά ζεύγη καθώς είναι ανεξάρτητες εντολές μεταξύ τους. Κατόπιν μπορούμε να ξενικήσουμε την εκτέλεση των δύο πολλαλπασιασμών (Ε3, Ε6) μαζί σε ένα κύκλο. Τέλος ξενικάμε την εκτέλεση των E7, E8 σε δύο διαφορετικούς κύκλους καθώς η δεύτερη εξαρτάται από την πρώτη. Αυτή η εκτέλεση των εντολών εκτός σειράς φαίνεται στο Σχήμα 1Σχήμα 10. Βλέπουμε ότι έχουμε 2 αντί για 4 κενούς κύκλους και επίσης το πρόγραμμα τελειώνει σε 9 αντί για 10 κύκλους, γίνεται δηλαδή καλύτερη εκμετάλλευση των δύο pipelines. Κύκλοι μηχανής Ε1: LOAD R1,A Ε2: LOAD R2,B Ε4: LOAD R4,C Ε5: LOAD R5,D Ε3: MUL R3,R1,R

17 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 37 Ε6: MUL R6,R4,R5 Ε7: ADD R7,R3,R6 Κάτι άλλο... ή τίποτα Ε8: STOR E,R7 Κάτι άλλο... ή τίποτα Σχήμα 10. Η εκτέλεση των εντολών σε ένα επεξεργαστή superscalar με 2 pipelines. Η εκτέλεση γίνεται εκτός σειράς εμφάνισής τους στο πρόγραμμα assembly (out-of-order execution). Οι επεξεργαστές superscalar με εκτέλεση εκτός σειράς καλούνται αλλιώς και δυναμικοί. Οι περισσότεροι δυναμικοί superscalar επεξεργαστές προχωρούν ακόμη πιο επιθετικά αρχίζοντας να εκτελούν ταυτόχρονα ή και με τη λάθος ακόμη σειρά εντολές που εξαρτώνται η μια από την άλλη αλλά μεριμνούν ώστε να γίνεται έλεγχος εξάρτησης πριν γραφτούν τα τελικά αποτελέσματα της εντολής. Για το πετύχουν αυτό η κάθε pipeline χωρίζεται σε δύο λογικές ενότητες: Το Front-End που περιλαμβάνει τις φάσεις προσκόμισης και αποκωδικοποίησης των εντολών (IF + ID) Το Back-End που περιλαμβάνει τις φάσεις εκτέλεσης, προσπέλασης στη μνήμη και εγγραφής του αποτελέσματος (EX, MEM, WB) Η προσκόμιση και αποκωδικοποίηση των εντολών (δηλαδή να μπει μια εντολή στο Front- End) μπορεί να γίνει εκτός σειράς, ασχέτως αν οι εντολές εξαρτώνται μεταξύ τους, καθώς δεν γίνεται εκτέλεση και δεν παράγεται κανένα αποτέλεσμα οπότε δεν υπάρχει παραβίαση της λογικής του προγράμματος. Κατόπιν, οι εντολές μπαίνουν σε έναν buffer επαναδιάταξης της σειράς (Re-Order Buffer ROB) απ όπου οι εντολές αναχωρούν για το Back-End αφού γίνει βέλτιστη κατά το δυνατό επαναδιάταξή τους. Στο τέλος του Back- End η φάση Write-Back ονομάζεται πλέον Commit διότι καταχωρεί αμετάκλητα τα αποτελέσματα στη μνήμη ή στους τελικούς αποδέκτες καταχωρητές. Η φάση Commit αλλά και η φάση EX πρέπει να σχεδιαστούν κατάλληλα ώστε να γίνονται σεβαστές οι εξαρτήσεις μεταξύ των εντολών και να αποφεύγονται χαμένοι κύκλοι λόγω αλμάτων. Η αποφυγή των χαμένων κύκλων λόγω αλμάτων και των σφάλματα της pipeline λόγω εξάρτησης των δεδομένων μελετώνται λεπτομερώς στο Κεφάλαιο 4. Οι εκτός σειράς (δυναμικοί) επεξεργαστές superscalar είναι σαφώς πιο πολύπλοκοι στην σχεδίαση (έως και 30%) από τους εντός σειράς (στατικούς) superscalar καθώς το υλικό καλείται να αναδιατάξει τη σειρά των εντολών σεβόμενο ταυτόχρονα τις εξαρτήσεις. Οι σημαντικότεροι παράγοντες που επηρεάζουν και συχνά περιορίζουν την ταχύτητα ενός επεξεργαστή superscalar με n pipelines είναι οι παρακάτω: 1. Για να επιτευχθεί 100% χρήση όλων των pipelines για όλους τους κύκλους πρέπει πάντα να βρίσκονται n εντολές που μπορούν να αρχίσουν να εκτελούνται ταυτόχρονα. Αυτό σημαίνει ότι πρέπει να ανακαλύψουμε μεγάλο παραλληλισμό σε επίπεδο

18 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 38 εντολών (Instruction Level Parallelism ILP) πράγμα που δεν εξαρτάται από τον σχεδιαστή του επεξεργαστή αλλά από το πρόγραμμα. Για το λόγο αυτό σήμερα δεν υπάρχουν επεξεργαστές superscalar με περισσότερες από n=6 pipelines αν και υπάρχουν σχέδια για n=8 ακόμη και για n=16. Η σχεδιαστική τάση που κυριαρχεί δεν είναι στην αύξηση του πλήθους των pipelines. 2. Η χρήση πολλών n μονάδων εκτέλεσης (ALU ή FPU) δημικουργεί n 2 μονοπάτια ανάμεσά τους. Κάποια από αυτά τα μονοπάτια θα είναι μεγάλα σε μήκος οπότε και τα αντίστοιχα καλώδια θα είναι μακριά. Ωστόσο το μεγάλο μήκος των καλωδιώσεων εντός του chip προκαλεί μείωση στη συχνότητα του ρολογιού και πρέπει να αποφεύγεται. 3. Το σπάσιμο των φάσεων της pipeline σε μικρότερες φάσεις, δηλαδή η αύξηση του βάθους της pipeline, δημιουργεί θεωρητικά ταχύτερες pipelines αφού οι φάσεις είναι «λεπτότερες» και συνεπώς ο χρόνος του κύκλου ρολογιού που θα χωράει τις φάσεις είναι μικρότερος. Ωστόσο οι εντολές αλμάτων υπό συνθήκη δημιουργούν αλλαγή στη ροή του προγράμματος η οποία γίνεται γνωστή στο μέσο της εκτέλεσης της εντολής και αν το άλμα εκτελεστεί απαιτείται καθαρισμός της pipeline και επανεκκίνησή της. Αυτό αποτελεί χάσιμο πολλών κύκλων που είναι περισσότεροι όσο πιο βαθιά είναι η pipeline. Έτσι η σχεδιαστική τάση είναι προς τη μείωση των φάσεων της pipeline. Aπό τις παλαιότερες pipeline με 31 φάσεις (Pentium D) φθάσαμε σήμερα στις pipelines της αρχιτεκτονικής Intel Core με 14 φάσεις. Οι επεξεργαστές superscalar εντός-σειράς είναι πρόγονοι των επεξεργαστών superscalar εκτός-σειράς. Σήμερα, οι επεξεργαστές υψηλών επιδόσεων είναι τύπου εκτός-σειράς. To πλεονέκτημα ταχύτητας του ρλογιού που έχουν οι εντός-σειράς λόγω μικρότερης πολυπλοκότητας του υλικού έχει αντισταθμιστεί από το γεγονός ότι η συχνότητα του ρολογιού δεν αυξάνει πλέον σημαντικά κυρίως λόγω της ενέργειας (θερμότητας) που παράγεται. Επί πλέον ο νόμος του Moore, δηλαδή το φαινόμενο ότι το πλήθος των τρανζίστορ στο chip αυξάνει εκθετικά, έκανε την πολυπλοκότητα των εκτός-σειράς να μην είναι πλέον απαγορευτική. Έτσι έχουν κυριαρχήσει σήμερα. Περαιτέρω αύξηση της ταχύτητας μπορεί να επιτευχθεί με την χρήση πολλών επεξεργαστών μέσα στο chip, δηλαδή η χρήση πολλαπλών πυρήνων. Το θέμα του παραλληλισμού των επεξεργαστών θα μας απασχολήσει στα επόμενα κεφάλαια Η αρχιτεκτονική VLIW Η αρχιτεκτονική VLIW (Very Long Instruction Word) είναι μια εναλλακτική επιλογή για το σχεδιασμό ενός επεξεργαστή που μπορεί να εκτελεί πολλές εντολές σε ένα κύκλο μηχανής. Το μέγεθος της εντολής μιας μηχανής VLIW είναι πολύ μεγάλο (π.χ bits) και ουσιαστικά περιέχει πολλές εντολές σε ένα πακέτο. Ποιο είναι το πλεονέκτημα αυτής της τεχνικής έναντι της αρχιτεκτονικής superscalar; Απλά η απόφαση για το ποιες εντολές θα εκτελεστούν ταυτόχρονα αφήνεται αποκλειστικά στον μεταφραστή ο οποίος είναι υποχρεωμένος να πακετάρει πολλές εντολές μαζί σε μια μεγάλη υπερεντολή. Σε αντίθεση ο επεξεργαστής τύπου superscalar θα ελέγξει τις εντολές που του δίνονται για να αποφασίσει με χρήση κατάλληλου υλικού (hardware) ενώ τρέχει το πρόγραμμα ποιες μπορούν να εκτελεστούν παράλληλα. Η επιλογή VLIW μειώνει τις απαιτήσεις σε υλικό αλλά αυξάνει

19 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 39 τις αντίστοιχες σε λογισμικό. Ο παρακάτω πίνακας συνοψίζει τις ομοιότητες και τις διαφορές μεταξύ των επεξεργαστών superscalar και VLIW. Superscalar Πολλές εντολές σε ένα κύκλο μηχανής Υλικό με απαιτήσεις Η επιλογή για ποιες εντολές θα εκτελεστούν παράλληλα στον ίδιο κύκλο αποφασίζεται δυναμικά (κατά τη διάρκεια της εκτέλεσης) από τον επεξεργαστή VLIW Πολλές εντολές σε ένα κύκλο μηχανής Λογισμικό με απαιτήσεις Η επιλογή για ποιες εντολές θα εκτελεστούν παράλληλα στον ίδιο κύκλο αποφασίζεται από τον μεταφραστή κατά τη διάρκεια της μετάφρασης Το αρχιτεκτονικό στυλ VLIW, το οποίο κάνει τους επεξεργαστές ταχύτερους με την ανάδειξη του Παραλληλισμού στο Επίπεδο των Εντολών (ILP) χρησιμοποιείται εδώ και πολλά χρόνια στους Ψηφιακούς Επεξεργαστές Σήματος (Digital Signal Processors DSP). Αυτοί είναι ειδικοί επεξεργαστές που χρησιμοποιούνται κυρίως σε εφαρμογές επεξεργασίας σήματος και εικόνας (π.χ. στην ψηφιακή επεξεργασία ήχου / φωνής, στις ψηφιακές τηλεπικοινωνίες, στα ραντάρ, στην ψηφιακή τηλεόραση, κλπ). Το VLIW είναι η λογική εξέλιξη του RISC με την πρόσθεση του Παραλληλισμού σε Επίπεδο Εντολών (ILP) στον επεξεργαστή. Το ILP είναι μια σειρά από τεχνικές οι οποίες επιταχύνουν την εκτέλεση ενός προγράμματος εκτελώντας παράλληλα διάφορες εντολές τύπου RISC, όπως load/store, πράξεις ακέραιας αριθμητικής (integer), ή πράξεις κινητής υποδιαστολής (floating point). Αυτές οι πράξεις λαμβάνονται από μια ακολουθία σειριακών εντολών όπως αυτές που θα γράφαμε για ένα συμβατικό επεξεργαστή. Μόλις στο τελευταίο επίπεδο της μετάφρασης ο μεταφραστής (compiler) αναθέτει τις εντολές αυτές σε γκρουπ τα οποία θα εκτελεστούν ταυτόχρονα από το υλικό του επεξεργαστή VLIW. Έτσι λοιπόν ο μεταφραστής είναι υπεύθυνος για την εξαγωγή του παραλληλισμού μέσα από το πρόγραμμα χωρίς ο προγραμματιστής να χρειάζεται να κοπιάσει ιδιαίτερα γι' αυτό το σκοπό. Μάλιστα στον προγραμματιστή η όλη διαδικασία είναι διαφανής καθώς δεν έχει έλεγχο στο πώς ομαδοποιούνται οι εντολές ούτε γνωρίζει ακριβώς ποιες είναι οι ομάδες που δημιουργήθηκαν από το μεταφραστή, εκτός φυσικά, αν μελετήσει λεπτομερώς τον κώδικα μηχανής που παράγεται. Βέβαια ο προχωρημένος προγραμματιστής μπορεί να γνωρίζει τον αλγόριθμο με τον οποίο ο μεταφραστής ομαδοποιεί τις εντολές και έτσι μπορεί να τροποποιήσει το πρόγραμμά του ώστε να δώσει στον μεταφραστή την ευκαιρία να επιτύχει μεγαλύτερα ποσοστά παραλληλισμού. Τονίζουμε τη διαφορά μεταξύ του κρυμμένου παραλληλισμού (latent parallelism) ο οποίος είναι εγγενής στον κώδικα και του παραλληλισμού που εξάγεται στην πράξη με τον συγκεκριμένο μεταφραστή. Τη στιγμή που ο μεταφραστής αντιστοιχεί σε ένα συγκεκριμένο υλικό ομαδοποιεί τις εντολές με τον καλύτερο δυνατό τρόπο έτσι ώστε να εξάγει τον μεγαλύτερο παραλληλισμό γι' αυτό το υλικό. Αν π.χ. το υλικό περιέχει μόνο 2 ακέραιους αθροιστές, ο μεταφραστής δεν έχει νόημα να τοποθετήσει πάνω από 2 ακέραιες προσθέσεις στην ίδια ομάδα. Ενδεχομένως ο κώδικας να έχει 3 ή 4 ακέραιες προσθέσεις που θα μπορούσαν να εκτελεστούν παράλληλα (κρυμμένος παραλληλισμός) αλλά ο

20 Κεφάλαιο 2: Τεχνολογία επεξεργαστών 40 μέγιστος πραγματικός παραλληλισμός είναι μόνο 2 ακέραιες προσθέσεις λόγω των δεσμεύσεων του υλικού. Το υλικό για την εκμετάλλευση του παραλληλισμού σε επίπεδο εντολών (ILP) Το υλικό ενός επεξεργαστή VLIW μπορεί να προσφέρει παραλληλισμό με διάφορους τρόπους: (α) χρησιμοποιώντας πολλές αριθμητικές / λογικές μονάδες (ALU) ή μονάδες κινητής υποδιαστολής (FPU) οι οποίες μπορούν να εκτελούν ταυτόχρονα και ανεξάρτητα πράξεις. (β) χρησιμοποιώντας πολλές τράπεζες καταχωρητών (register files) όπου η κάθε μια τράπεζα τροφοδοτεί και μια διαφορετική αριθμητική μονάδα. Με τον τρόπο αυτό προσφέρεται μεγαλύτερο εύρος ζώνης δεδομένων (data bandwidth) μεταξύ των καταχωρητών και των αριθμητικών μονάδων ώστε να διευκολύνεται η παράλληλη εκτέλεση των πράξεων. (γ) χρησιμοποιώντας pipelining για την επιτάχυνση των πράξεων σε αριθμητικές μονάδες. Το pipelining χρησιμοποιείται συνήθως στις μονάδες κινητής υποδιαστολής και γενικότερα σε όσες αριθμητικές μονάδες οι πράξεις απαιτούν πάνω από ένα κύκλο μηχανής για να εκτελεστούν. Όλα τα παραπάνω διευκολύνουν την εκμετάλλευση του παραλληλισμού σε επίπεδο εντολών. Για παράδειγμα στο Σχήμα 11 φαίνεται το υλικό ενός επεξεργαστή VLIW το οποίο επιτρέπει την παράλληλη εκτέλεση τεσσάρων ειδών εντολών: μιας πράξης κινητής υποδιαστολής, δύο πράξεων ακέραιας αριθμητικής και μιας εντολής ελέγχου ή μεταφοράς στην μνήμη (load/store). Θεωρήστε το παρακάτω κομμάτι (ψευδο)κώδικα ο οποίος είναι σειριακά γραμμένος από έναν προγραμματιστή και έχει ως εξής: E1: ADD R2,R4,R5 E2: STOR [addr1],r2 E3: FMUL F5,F2,F7 E4: FMUL F2,F2,F8 E5: ADD R4,R12,R17 E6: ADD R5,R12,R20 E7: ADD R7,R4,R5 E8: STOR [addr2],r7

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

Διαβάστε περισσότερα

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

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

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

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι

Διαβάστε περισσότερα

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

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

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

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ι Γ. Τσιατούχας 2 ο Κεφάλαιο ιάρθρωση 1. Οργάνωση της 2. εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονικές Συνόλου Εντολών Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ο

Διαβάστε περισσότερα

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

Παραλληλισμός σε επίπεδο εντολών Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

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

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εντολές γλώσσας μηχανής Εντολές γλώσσας μηχανής Στον υπολογιστή MIPS η εντολή πρόσθεσε τα περιεχόμενα των καταχωρητών 17 και 20 και τοποθέτησε το αποτέλεσμα στον καταχωρητή 9 έχει την μορφή: 00000010001101000100100000100000 Πεδία

Διαβάστε περισσότερα

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Τι

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

Διαβάστε περισσότερα

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

Κεντρική Μονάδα Επεξεργασίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

Διαβάστε περισσότερα

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή Εισαγωγή Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ Σκοπός του εργαστηρίου είναι να γνωρίσουµε την εσωτερική δοµή και αρχιτεκτονική της κεντρικής µονάδας επεξεργασίας, να κατανοήσουµε τον τρόπο µε τον οποίο λειτουργεί

Διαβάστε περισσότερα

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

Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

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

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Η υπολογιστική

Διαβάστε περισσότερα

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

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

Διαβάστε περισσότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

Δομή Ηλεκτρονικού υπολογιστή

Δομή Ηλεκτρονικού υπολογιστή Δομή Ηλεκτρονικού υπολογιστή Η κλασσική δομή του μοντέλου που πρότεινε το 1948 ο Von Neumann Κεντρική Μονάδα Επεξεργασίας Είσοδος Αποθήκη Αποθήκη - Έξοδος Εντολών Δεδομένων Κλασσικό μοντέλο Von Neumann

Διαβάστε περισσότερα

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

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

Διαβάστε περισσότερα

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 Αρης Ευθυμίου Το σημερινό μάθημα! Λυση του lab02! Αρχιτεκτονική ARM σε τι μοιάζει και σε τι διαφέρει από τον MIPS! Αρχιτεκτονική x86 μια γρήγορη ματιά στη

Διαβάστε περισσότερα

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

Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΑΚΑ ΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture-ISA) 1 Ένας υπολογιστής

Διαβάστε περισσότερα

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

Προχωρηµένα Θέµατα Αρχιτεκτονικής Προχωρηµένα Θέµατα Αρχιτεκτονικής Μάθηµα 2 ο : Instruction Set Principles and Examples Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 1 Σχεδιασµός Συνόλου Εντολών Θέµατα που θα συζητηθούν ιαφορετικές επιλογές

Διαβάστε περισσότερα

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 6-7 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

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

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών Ενότητα 3: Χειρισμός δεδομένων, 2ΔΩ Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Θεόδωρος Τσιλιγκιρίδης Μαθησιακοί Στόχοι Η Ενότητα 3 διαπραγματεύεται θέματα

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Γιώργος Δημητρίου Ενότητα 7 η : Στατική Δρομολόγηση Εντολών (Επεξεργαστές VLIW) Εκμετάλλευση ILP Περιορισμοί στη δυναμική δρομολόγηση εντολών: Μέγεθος παραθύρου εντολών Αριθμός φυσικών καταχωρητών Αποτυχία

Διαβάστε περισσότερα

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw. ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΡ ΙΟ ΥΠΟΛΟΟ ΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua. gr ΑΡΧΙΤΕΚΤΟΝΙΚΗ

Διαβάστε περισσότερα

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Η επεξεργασία των δεδομένων ακολουθεί μια στερεότυπη διαδρομή: τα δεδομένα εισάγονται στο υπολογιστικό σύστημα, υφίστανται μια ορισμένη επεξεργασία και

Διαβάστε περισσότερα

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

Εισαγωγή στην πληροφορική -4 Εισαγωγή στην πληροφορική 6 (, 64) bits Μνήµη Θέση (κύτταρο cell) µνήµης, χωράει λέξεις (words) εντολές (πρόγραµµα), αριθµοί (δεδοµένα) Αριθµοί: δυαδική (binary) αναπαράσταση = = = 4 = 4 = 5 = 7 Εισαγωγή

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων Εισαγωγή στην Αρχιτεκτονική Υπολογιστών Γλώσσα Μηχανής Εκτέλεση προγράμματος Αριθμητικές και λογικές εντολές Παράδειγμα: μια απλή Γλώσσα Μηχανής Επικοινωνία με άλλες συσκευές

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Γιώργος Δημητρίου Ενότητα 2 η : Σύνολα Εντολών Ιστορική Αναδρομή Από τις πρώτες εντολές υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Στοίβας Συσσωρευτή Επέκταση συσσωρευτή Καταχωρητών γενικού σκοπού Καταχωρητή-Μνήμης

Διαβάστε περισσότερα

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Παραλληλισµός Εντολών (Pipelining)

Παραλληλισµός Εντολών (Pipelining) ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Παραλληλισµός Εντολών (Pipelining) Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapter 3: Section 3.4,

Διαβάστε περισσότερα

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις Αρης Ευθυμίου Κόστος διακλαδώσεων Οι διακλαδώσεις έχουν σχετικά μεγάλο κόστος χρόνου Τουλάχιστον ένας κύκλος

Διαβάστε περισσότερα

Θέματα Μεταγλωττιστών

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 9 η : Θέματα Δρομολόγησης Εντολών ILP Παραλληλισμός επιπέδου εντολής Εξαρτήσεις δεδομένων Εξαρτήσεις ελέγχου (διαδικασιακές) Με διαθέσιμους πόρους, οι εντολές μπορούν να εκτελεστούν

Διαβάστε περισσότερα

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

Διαβάστε περισσότερα

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

Διαβάστε περισσότερα

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Συστήματα σε Ολοκληρωμένα Κυκλώματα Συστήματα σε Ολοκληρωμένα Κυκλώματα Κεφάλαιο 4: Αρχιτεκτονική των Embedded Μικροεπεξεργαστών Διδάσκων: Καθηγητής Οδυσσέας Κουφοπαύλου Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών ΕΙΣΑΓΩΓΗ Παρουσιάζεται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2011-12 Εικονική (και ο ρόλος της στην ιεραρχία μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Ιεραρχία η νέα τάση: [2011]

Διαβάστε περισσότερα

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 6ο μάθημα: χρονοπρογραμματισμός, αλγόριθμος Tomasulo, εικασία Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου InstrucDon- Level

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράμματος 2.4 Αριθμητικές και λογικές εντολές 2.5 Επικοινωνία με άλλες συσκευές 2.6 Άλλες αρχιτεκτονικές

Διαβάστε περισσότερα

Κεφάλαιο 4: Pipelining 75

Κεφάλαιο 4: Pipelining 75 Κεφάλαιο 4: Pipelining 75 4. Pipelining Το pipelining (στα ελληνικά ορισμένες φορές καλείται σωλήνωση αλλά θα αποφύγουμε τη χρήση αυτού του όρου εδώ) είναι η λειτουργία κατά την οποία η εκτέλεση μιας διαδικασίας

Διαβάστε περισσότερα

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

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΜΑΘΗΜΑ 3 ο ΛΕΙΤΟΥΡΓΙΚΗ ΔΟΜΗ ΥΠΟΛΟΓΙΣΤΗ ΒΑΣΙΚΗ ΜΟΝΑΔΑ ΜΝΗΜΗ & CPU Λειτουργική Δομή Αρχιτεκτονική Von Neumann Όλοι οι υπολογιστές ακολουθούν την αρχιτεκτονική κατά Von-Neumann

Διαβάστε περισσότερα

Οργάνωση Η/Υ. Γλώσσα Assembly. Τμήμα Εφαρμσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

Οργάνωση Η/Υ. Γλώσσα Assembly. Τμήμα Εφαρμσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου Οργάνωση Η/Υ Γλώσσα Assembly Τμήμα Εφαρμσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου Δομή του TRN KME Μνήμη Διάδρομος Δεδομένων Διάδρομος Διευθύνσεων Διάδρομος Ελέγχου Μονάδα

Διαβάστε περισσότερα

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

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΩΤΑΠΑΝΤΗΣΕΙΣ Κεφάλαιο 1: Υλικό Υπολογιστών (Hardware) 1.1: Το υπολογιστικό σύστημα ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 1. Τι αντιλαμβάνεστε με τον όρο υλικό (hardware); [σελ. 8] Τα φυσικά μέρη που μπορούμε να δούμε και να αγγίξουμε

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 2: Καταχωρητές, HelloWorld σε 8086, emu8086 emulator Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Μαθηµα 2 ηµήτρης Λιούπης 1 Intel SA-1110 µc StrongARM core. System-on-Chip. Εξέλιξη των SA-110 και SA-1100. 2 ARM cores ARM: IP (intellectual

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 5ο μάθημα:αρχές, ιδιότητες αρχιτεκτονικού συνόλου εντολών (ISA) Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Εσωτερική αποθήκευση

Διαβάστε περισσότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ιεραρχία συχνά και το

Διαβάστε περισσότερα

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

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ 1. Εισαγωγή Η λειτουργία της CPU καθορίζεται από τις εντολές που εκτελεί, και που ονομάζονται εντολές μηχανής (machine instructions) ή εντολές υπολογιστή (computer

Διαβάστε περισσότερα

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος Προηγμένοι Μικροεπεξεργαστές Έλεγχος Ροής Προγράμματος Control Flow εντολές Jump related JMP Jcc (JZ, JNZ, JB, JNB etc) JCXZ, JECXZ LOOP LOOPE, LOOPNE Procedure related CALL RET INT IRET INTO ENTER LEAVE

Διαβάστε περισσότερα

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ρχιτεκτονική Υπολογιστών 2016-17 Εικονική Μνήμη (και ο ρόλος της στην ιεραρχία μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Δευτερεύουσα μνήμη

Διαβάστε περισσότερα

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

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 2 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Καθυστερήσεις και Εκκενώσεις Εντολών

Διαβάστε περισσότερα

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό. Ερωτήσεις θεωρίας MY Μέρος Α. Υλικό. 1. Η μνήμη ROM είναι συνδυαστικό ή ακολουθιακό κύκλωμα; 2. α) Να σχεδιαστεί μία μνήμη ROM που να δίνει στις εξόδους της το πλήθος των ημερών του μήνα, ο αριθμός του

Διαβάστε περισσότερα

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 2 ο Σύνολα Εντολών Οι εντολές που εκτελεί ο κάθε επεξεργαστής (ή οικογένεια επεξεργαστών) MIPS ARM SPARC PowerPC IA-32 Αρχιτεκτονικές συνόλου εντολών Βασικές Έννοιες Εντολές μηχανής

Διαβάστε περισσότερα

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 9 : Ομάδες Εντολών: Ιδιότητες και Λειτουργίες Φώτης Βαρζιώτης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα Τμήμα Μηχανικών

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Για βελτίωση της απόδοσης

Διαβάστε περισσότερα

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

ΑΣΚΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΓΙΑ ΤΗ ΘΕΩΡΙΑ ΑΣΚΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΓΙΑ ΤΗ ΘΕΩΡΙΑ Άσκηση 1 Ένας επεξεργαστής (ΚΜΕ) υποστηρίζει 371 εντολές. Πόσα bit θα πρέπει να είναι ο καταχωρητής εντολής (ελάχιστη τιμή); (α) 4 bit (β) 16 bit (γ) 1 bit (δ)

Διαβάστε περισσότερα

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών Αρης Ευθυμίου Το σημερινό μάθημα Προσκόμιση (fetch) πολλαπλές εντολές ανά κύκλο Μετονομασία καταχωρητών

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath O επεξεργαστής: Η δίοδος δεδοµένων (path) και η µονάδα ελέγχου (control) Σχεδίαση path 4 κατηγορίες εντολών: Αριθµητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη µνήµη (lw, sw) I

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 6: Ασκήσεις Εξαμήνου Μέρος Β Νοέμβριος 2016 Στην άσκηση αυτή θα μελετήσουμε την εκτέλεση ενός

Διαβάστε περισσότερα

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αρχιτεκτονική Eckert-von Neumann εισόδου μεταφορά δεδομένων από έξω προς τον Η/Υ εξόδου μεταφορά δεδομένων από τον Η/Υ προς τα έξω ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Κύκλος Μηχανής κεντρικός έλεγχος/πράξεις

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 7: Αποκωδικοποίηση Εντολής x86 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 4 : Κρυφή Μνήμη Καρβούνης Ευάγγελος Δευτέρα, 30/11/2015 Χαρακτηριστικά Θέση Χωρητικότητα Μονάδα Μεταφοράς

Διαβάστε περισσότερα

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ε Ρ Γ Α Σ Τ ΗΡ ΙΟ Υ ΠΟΛΟΓΙΣ Τ Ι Κ Ω Ν Σ Υ Σ Τ ΗΜΑΤΩΝ w w w. c s l ab.

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) Δευτέρα, 3 Νοεμβρίου 25 ΔΙΑΡΚΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 3 ΛΕΠΤΑ Για πλήρη

Διαβάστε περισσότερα

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

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

Διαβάστε περισσότερα

Θέµατα Φεβρουαρίου

Θέµατα Φεβρουαρίου Θέµατα Φεβρουαρίου 2-2 cslab@ntua 2- Θέµα ο (3%): Έστω η παρακάτω ακολουθία εντολών που χρησιµοποιείται για την αντιγραφ από µια θέση µνµης σε µια άλλη (memory-to-memory copy): lw $2, ($) sw $2, 2($) i)

Διαβάστε περισσότερα

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Εισαγωγή Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Σκοπός του εργαστηρίου είναι να κατανοήσουµε τους τρόπους προσπέλασης της µνήµης (µέθοδοι διευθυνσιοδότησης) σε ένα υπολογιστικό σύστηµα. Η Μνήµη 1 Ψηφιακή Λογική 4

Διαβάστε περισσότερα

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

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης! Single-cyle υλοποίηση: Διάρκεια κύκλου ίση με τη μεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαμηλή απόδοση! Αντιβαίνει με αρχή: Κάνε την πιο απλή περίπτωση γρήγορη (ίσως και εις βάρος των πιο «σύνθετων»

Διαβάστε περισσότερα

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 10ο μάθημα: Ορια παραλληλίας επιπέδου εντολής και πολυνηματικοί επεξεργαστές Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Ορια

Διαβάστε περισσότερα

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

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

Διαβάστε περισσότερα

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Διοχέτευση

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Διοχέτευση Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Διοχέτευση Αρης Ευθυμίου Το σημερινό μάθημα Υπόβαθρο: Διοχέτευση (Pipelining) Βασική οργάνωση Δομικοί κίνδυνοι Κίνδυνοι δεδομένων (hazards): RAW, WAR, WAW Stall

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory) ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

Διαβάστε περισσότερα

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

Υλικό Υπολογιστών (Hardware) ΜΥΥ-106 Εισαγωγή στους Η/Υ και Πληροφορική Υλικό Υπολογιστών (Hardware) ΜΥΥ-106 Εισαγωγή στους Η/Υ και Πληροφορική Κύρια μέρη υπολογιστή Υπάρχουν διάφορα είδη υπολογιστών προσωπικοί (επιτραπέζιοι, φορητοί,...), ενσωματωμένοι, εξυπηρετητές (servers)

Διαβάστε περισσότερα

9. Συστολικές Συστοιχίες Επεξεργαστών

9. Συστολικές Συστοιχίες Επεξεργαστών Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΗΥ222)

Λειτουργικά Συστήματα (ΗΥ222) Λειτουργικά Συστήματα (ΗΥ222) Διάλεξη 7: Εισαγωγή στην Ιδεατή Μνήμη - Τμηματοποίηση Η Ευτυχισμένη Κοινωνία των Διεργασιών 2 Πολλαπλές χαρούμενες διεργασίες στο σύστημα Και αν το Visual Studio χρειαστεί

Διαβάστε περισσότερα

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Intel x86 ISA Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ RISC vs. CISC Η assembly των επεξεργαστών ARM, SPARC (Sun), και Power (IBM) είναι όμοιες

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ Γιώργος Δημητρίου Μάθημα 6 ο ΠΜΣ Εφαρμοσμένη Πληροφορική ΕΝΤΟΛΗ ΑΠΛΟΥ ΚΥΚΛΟΥ ΜΗΧΑΝΗΣ Όλες οι φάσεις του κύκλου εντολής στον ίδιο κύκλο μηχανής: Ο χρόνος από την ανάκληση μέχρι

Διαβάστε περισσότερα