Κεφάλαιο 5. Ο Μικροεπεξεργαστής: Διάδρομος Δεδομένων και Μονάδα Ελέγχου. (The Processor: Datapath and Control)

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

Download "Κεφάλαιο 5. Ο Μικροεπεξεργαστής: Διάδρομος Δεδομένων και Μονάδα Ελέγχου. (The Processor: Datapath and Control)"

Transcript

1 Κεφάλαιο 5 Ο Μικροεπεξεργαστής: Διάδρομος Δεδομένων και Μονάδα Ελέγχου (The Processor: Datapath and Control)

2 Τι έχουμε μάθει μέχρι στιγμής Καθορισμός και ανάλυση απόδοσης (Κεφ. 4): Αριθμός εντολών, αριθμός κύκλων ρολογιού για κάθε εντολή (CPI), συχνότητα (/περίοδο) ρολογιού Καθορισμός αριθμού εντολών (Κεφ. 2+3): Μεταγλωττιστής και ISA Επόμενο βήμα: Καθορισμός CPI και συχνότητας ρολογιού (Κεφ. 5): Υλοποίηση υλικού μικροεπεξεργαστή: διάδρομος δεδομένων (datapath) και μονάδα ελέγχου (control unit) 2

3 Ας προσπαθήσουμε να σχεδιάσουμε ένα απλό μικροεπεξεργαστή Είμαστε σχεδόν έτοιμοι να ξεκινήσουμε τον σχεδιασμό ενός μικροεπεξεργαστή Πρώτα, πρέπει να θυμηθούμε τις βασικές αρχές σχεδιασμού ψηφιακών κυκλωμάτων (όπως τη Δυαδική Άλγεβρα) γιανασχεδιάσουμετοalu (Παράρτημα B του βιβλίου σας) operation a 32 ALU result 32 b 32 3

4 Επανάληψη: Άλγεβρα Boole και πύλες Πρόβλημα: Θεωρήστε ένα ψηφιακό κύκλωμα με τρεις εισόδους: A, B και Γ. ΗέξοδοςΔ είναι εάντουλάχιστονμιαείσοδοςείναι ΗέξοδοςE είναι εάν ακριβώς 2 είσοδοι είναι ΗέξοδοςΖ είναι μόνο αν και οι 3 είσοδοι είναι Δείξετε τον πίνακα αληθείας για τις πιο πάνω λογικές συναρτήσεις Δείξετε τις Δυαδικές εξισώσεις για τις συναρτήσεις Σχεδιάστε μια υλοποίηση του κυκλώματος που αποτελείται μόνο από πύλες NOT, AND και OR 4

5 ALU (Αριθμητική-Λογική Μονάδα) Σχεδιάστε ένα ALU που να υποστηρίζει τις εντολές and και or Πρώτα, σχεδιάζουμε το -μπιτ ALU, το οποίο χρησιμοποιούμε στη συνέχεια για τον σχεδιασμό του 32-μπιτου ALU op α β res α β Λειτουργία (op) Αποτέλεσμα (res) Πιθανή Υλοποίηση (με Sum-of-Products): 5

6 Επανάληψη: Πολυπλέκτης (Multiplexer) Επιλέγει μία από τις εισόδους να ορίζουν την έξοδο, βάση της τιμής των σημάτων ελέγχου (control inputs) A B S C Σημείωση: ονομάζεται πολυπλέκτης 2 εισόδων (2-input MUX) παρόλο που έχει 3 εισόδους Operation Ας σχεδιάσουμε το ALU χρησιμοποιώντας ένα MUX: Operation = AND (a b) Operation = OR (a + b) a b Result 6

7 Διαφορετικές Υλοποιήσεις Δεν είναι εύκολο να αποφασιστεί ο «καλύτερος» τρόπος υλοποίησης Ο αριθμός των εισόδων των πυλών δεν πρέπει να είναι μεγάλος Τα σήματα δεν πρέπει να περνούν από μεγάλο αριθμό πυλών (κρίσιμα μονοπάτια) Γιατί είναι σημαντικά τα πιο πάνω; Επίσης, είναι σημαντικό η υλοποίηση να είναι εύκολα κατανοητή Ας δούμε ένα -bit ALU για πρόσθεση: CarryIn a b Sum c out = a b + a c in + b c in sum = a xor b xor c in CarryOut Πως θα κατασκευάσουμε ένα -bit ALU για add, and και or; Πως θα κατασκευάσουμε το 32-bit ALU; 7

8 Σχεδιασμός ενός 32-bit ALU CarryIn Operation CarryIn Operation a b CarryIn ALU CarryOut Result a a b CarryIn ALU CarryOut Result b 2 Result a2 b2 CarryIn ALU2 CarryOut Result2 CarryOut -bit ALU a3 b3 CarryIn ALU3 Result3 32-bit ALU 8

9 Αφαίρεση (a b) Τεχνική για συμπλήρωμα του 2( two's complement): απλά υπολογίζουμε το συμπλήρωμα του b και προσθέτουμε. Πως υπολογίζουμε το συμπλήρωμα; Μια έξυπνη λύση: a Binvert CarryIn Operation Result b 2 CarryOut 9

10 Προσθήκη λειτουργίας NOR Μπορούμε επίσης να υπολογίσουμε το συμπλήρωμα του a. Πως υλοποιούμε το a NOR b ; Ainvert Binvert CarryIn Operation a Result b + 2 CarryOut

11 ALU του επεξεργαστή MIPS Πρέπει να υποστηριχτεί η εντολή set-on-less-than (slt) θυμηθείτε: η slt είναι αριθμητική εντολή Δίνει εάν rs < rt και διαφορετικά Χρησιμοποιούμε αφαίρεση: (a-b) < υπονοεί a < b Πως θα συγκρίνουμε με το ; Πρέπει να υποστηριχτεί ο έλεγχος για ισότητα (equality test) (beq) Χρησιμοποιούμε αφαίρεση: (a-b) = υπονοεί a = b Χρειαζόμαστε υλικό για έλεγχο για (<, =)

12 Υποστήριξη για slt Ainvert Binvert CarryIn Operation (a b) < a < b a b + 2 Result Επομένως, είναι αρκετό να ελέγξουμε το πρόσημο του αποτελέσματος από το a-b: αν το MSB(a-b)= τότε a<b αλλιώς, a>=b Less 3 Set Παρατηρείστε ότι Set = MSB(a-b) Overflow detection -bit ALU για το MSB (3) Overflow Επίσης, προσθέτουμε λογική για ανίχνευση υπερχείλισης (overflow) 2

13 Υποστήριξη για slt (συν.) Ainvert Binvert Operation CarryIn Ainvert Binvert Operation CarryIn a a b + 2 Result b + 2 Result Less 3 Less 3 Set Overflow detection -bit ALU για το MSB (3) Overflow CarryOut ΓιαταυπόλοιπαBits (..3) 3

14 ... Υποστήριξη για slt Binvert Ainvert CarryIn Operation Διάταξη για 32-bits: a=a3,a3,, a,a b=b3,b3,, b,b Result = Result3,, Result Less=Less2= =Less3= Less=Set a b a b CarryIn ALU Less CarryOut CarryIn ALU Less CarryOut Result Result IF a-b< (= a<b) THEN Set= Result3,Result3,Result29,,Result,Result = ELSE Set= Result3,Result3,Result29,,Result,Result = a2 b2. CarryIn ALU2 Less CarryOut. CarryIn Result2 a3 CarryIn Result3 b3 ALU3 Set Less Overflow. 4

15 Διάδρομος δεδομένων vs. Σήματα ελέγχου Operation, Ainvert, Binvert: Είναι σήματα ελέγχου (control signals). Καθορίζουν την λειτουργία που θα εκτελεστεί και επιλέγουν τα κατάλληλα δεδομένα και ειδικές συνθήκες (αν υπάρχουν) Τα υπόλοιπα περιλαμβάνονται στον διάδρομο δεδομένων (datapath): τα δεδομένα (σήματα δεδομένων) περνούν και διαχειρίζονται ανάλογα από τις διάφορα λειτουργικές μονάδες (functional units) 5

16 ... Έλεγχος ισότητας (equality test) Zero = Result3 Result3 Result Result Σημείωση: zero= όταν το αποτέλεσμα είναι! Bnegate Ainvert a b a b a2 b2 CarryIn ALU Less CarryOut CarryIn ALU Less CarryOut CarryIn ALU2 Less CarryOut Operation Result Result Result2. Zero.. CarryIn.. Result3 a3 CarryIn b3 ALU3 Set Less Overflow 6

17 Οικουμενικό σύμβολο ALU (32-bit) ALU operation Σήματα ελέγχου ALU (Ainvert, Binvert, Operation(2)) Λειτουργία and or add subtract a 32 ALU 32 Zero Result Overflow slt NOR b 32 CarryOut 7

18 Σύνοψη Μπορούμε να σχεδιάσουμε ένα ALU που υλοποιεί το σύνολο εντολών του μικροεπεξεργαστή MIPS Βασική ιδέα: χρήση πολυπλέκτων για επιλογή επιθυμητής εξόδου Αποδοτική υλοποίηση αφαίρεσης χρησιμοποιώντας συμπλήρωμα του 2 Επαναχρησιμοποίηση (reuse) -bit ALU για σχεδιασμό του 32-bit ALU Σημαντικάσημείασχετικάμετουλικό Όλες οι πύλες λειτουργούν ταυτόχρονα Η ταχύτητα μια πύλης επηρεάζεται από τον αριθμό εισόδων της πύλης Η ταχύτητα ενός κυκλώματος επηρεάζεται από τον μέγιστο αριθμό αλλεπάλληλων πυλών (δηλ. το «κρίσιμο μονοπάτι» ήτο«βαθύτερο επίπεδο λογικής») Οκύριοςμαςστόχος: Κατανόηση σχεδιασμού Έξυπνεςαλλαγέςστηνοργάνωσημπορούν να βελτιώσουν την απόδοση (παρόμοιο με τη χρήση καλύτερων αλγορίθμων στην περίπτωση του σχεδιασμού λογισμικού) Αυτό το έχουμε ήδη συναντήσει για πολλαπλασιασμό, ας δούμε τι γίνεται με την πρόσθεση 8

19 Πρόβλημα: Ο αθροιστήςριπής (Ripple Carry Adder) είναι αργός Το 32-bit ALU είναιτοίδιογρήγορομετο-bit ALU; Υπάρχουν εναλλακτικοί τρόποι υλοποίησης πρόσθεσης; Δύο άκρα: αθροιστής ριπής (ο πιο αργός) και υλοποίηση με sum-of-products (το γρηγορότερο) Μπορείτε να δείτε το «κύμα» (ripple); Πως θα μπορούσαμε να το ξεφορτωθούμε; c = b c + a c +a b c 2 = b c + a c +a b c 2 = c 3 = b 2 c 2 + a 2 c 2 +a 2 b 2 c 3 = c 4 = b 3 c 3 + a 3 c 3 +a 3 b 3 c 4 = Δεν είναι δυνατό! Γιατί; 9

20 Αθροιστής Πρόβλεψης Κρατουμένου (Carry-lookahead Adder) Μια λύση «μεταξύ» των δύο άκρων Βασικό κίνητρο: Αν δεν γνωρίζαμε την τιμή του εισερχόμενου κρατούμενου (carry-in), τι θα μπορούσαμε να κάνουμε; Πότε παράγεται πάντα το κρατούμενο; g i = a i b i Πότε διαδίδεται (μεταφέρεται) το κρατούμενο; p i = a i b i Ξεφορτωθήκαμε το «κύμα»; c = g + p c c 2 = g + p c c 2 = c 3 = g 2 + p 2 c 2 c 3 = c 4 = g 3 + p 3 c 3 c 4 = Αυτό είναι δυνατό! Γιατί; 2

21 CarryIn Χρήση της αρχής της ιεραρχίας για σχεδιασμό μεγαλύτερων αθροιστών Δεν μπορούμε να υλοποιήσουμε ένα αθροιστή των 6 bit με αυτό τον τρόπο (πολύ μεγάλος) Μπορούμε να χρησιμοποιήσουμε αθροιστές ριπής με 4-bit CLA αθροιστή Ακόμη καλύτερα: χρήση της αρχής του CLA ξανά! a b a b a2 b2 a3 b3 a4 b4 a5 b5 a6 b6 a7 b7 a8 b8 a9 b9 a b a b a2 b2 a3 b3 a4 b4 a5 b5 CarryIn ALU P G CarryIn ALU P G CarryIn ALU2 P2 G2 CarryIn ALU3 P3 G3 C C2 C3 C4 pi gi ci + pi + gi + ci + 2 pi + 2 gi + 2 ci + 3 pi + 3 gi + 3 ci + 4 Result 3 Carry-lookahead unit Result4 7 Result8 Result2 5 CarryOut 2

22 ALU -- Περιληπτικά Ο κύριος μας στόχος είναι να κατανοήσουμε τον σχεδιασμό (όχι να βελτιστοποιήσουμε την απόδοση όχι σε αυτό το σημείο!) Οι πραγματικοί επεξεργαστές χρησιμοποιούν πιο εξελιγμένες τεχνικές για αριθμητική Όταν η απόδοση δεν είναι σημαντική, οι γλώσσες περιγραφής υλικού (hardware description languages) επιτρέπουν στους σχεδιαστές να αυτοματοποιήσουν την διαδικασία σχεδιασμού του υλικού (δείτε παράδειγμα πιο κάτω) 22

23 Ο Μικροεπεξεργαστής: Διάδρομος Δεδομένων και Μονάδα Ελέγχου Είμαστε έτοιμοι να δούμε την πρώτη υλοποίηση του μικροεπεξεργαστή MIPS Απλοποιημένη, περιέχει μόνο: Εντολές προσπέλασης μνήμης: lw, sw Εντολές αριθμητικής/λογικής: add, sub, and, or, slt Εντολές ελέγχου ροής: beq, j Γενική Υλοποίηση: Χρησιμοποιείται ο μετρητής προγράμματος (PC) για να παρέχει την διεύθυνση της εντολής Ανάκτηση εντολής από την μνήμη Ανάγνωση καταχωρητών Αποκωδικοποίηση εντολής για να αποφασιστεί η πράξη που θα εκτελεστεί ΟΛΕΣ οι εντολές χρησιμοποιούν το ALU, αφού διαβαστούν οι καταχωρητές (εκτός από μία εντολή, ποια;) Γιατί; προσπέλασης μνήμης; αριθμητικής/λογικής; ελέγχου ροής; 23

24 Yλοποίηση MIPS σε υψηλό επίπεδο Περιληπτική/Απλοποιημένη Μορφή: Βασικές λειτουργικές μονάδες και οι διασυνδέσεις τους 4 Add Add Data PC Address Instruction Instruction memory Register # Registers ALU Address Register # Register # Data memory Data 2 κατηγορίες λειτουργικών μονάδων: Στοιχεία που χειρίζονται τιμές δεδομένων (combinational) Στοιχεία που περιέχουν την κατάσταση/μνήμη (sequential) 24

25 Yλοποίηση MIPS σε υψηλό επίπεδο Περιληπτική/Απλοποιημένη Μορφή: Βασικές λειτουργικές μονάδες και οι διασυνδέσεις τους 4 Add Add Data PC Address Instruction Instruction memory Register # Registers ALU Address Register # Register # Data memory Data Παραβλέπει 2 σημαντικά στοιχεία: Πολυπλέκτες (MUXes) για επιλογή εισόδων Σήματα και Μονάδα ελέγχου 25

26 Επιπρόσθετες λεπτομέρειες (MUXes, Control) Branch M u x 4 Add Data Add M u x ALU operation PC Address Instruction Instruction memory Register # MemWrite Registers ALU Address Register # M Zero u Data x memory Register # RegWrite Data Mem Control 26

27 Υλοποίηση με ένα κύκλο ρολογιού Στην προηγούμενη υλοποίηση, κάθε εντολή ξεκινά να εκτελείται στην ακμή του ρολογιού (clock edge) και ολοκληρώνει την εκτέλεση της στην επόμενη ακμή του ρολογιού κάθε εντολή απαιτεί πάντα κύκλο του ρολογιού (CPI=) Αυτό απλοποιεί την κατανόηση του σχεδιασμού, αλλά δεν είναι πρακτικό, από άποψης απόδοσης. Γιατί; Μέχρι το τέλος αυτού του κεφαλαίου θα εξετάσουμε υλοποιήσεις όπου CPI> υλοποίηση με πολλαπλούς κύκλους ρολογιού (multicycle implementation) Για τώρα, θεωρήστε την υλοποίηση με ένα κύκλο ρολογιού για κάθε εντολή 27

28 Απαντήστε Ο διάδρομος δεδομένων για την υλοποίηση με ένα κύκλο ανά εντολή ΠΡΕΠΕΙ να έχει ξεχωριστή μνήμη για εντολές και δεδομένα επειδή:. Η μορφή των δεδομένων διαφέρει από αυτή των εντολών στον MIPS και άρα, χρειαζόμαστε διαφορετικές μνήμες 2. Είναι πιο οικονομικό 3. Ο επεξεργαστής λειτουργεί σε ένα κύκλο και δεν είναι δυνατόν να προσπελάσει δύο φορές σε ένα κύκλο μνήμη με μια θύρα προσπέλασης (single-ported memory) 28

29 Κατηγορίες λογικών στοιχείων Συνδυαστικά στοιχεία (Combinational), χειρίζονται τιμές δεδομένων : Οι έξοδοι τους εξαρτώνται εξ ολοκλήρου στις τρέχουσες τιμές των εισόδων Δεδομένου των ιδίων τιμών εισόδων, οι τιμές των εξόδων είναι πάντα οι ίδιες π.χ., το ALU είναι συνδυαστικό κύκλωμα Στοιχεία κατάστασης/μνήμης (State), εσωτερική μνήμη: Χαρακτηρίζουν ολοκληρωτικά την κατάσταση της μηχανής Έχουν τουλάχιστον 2 εισόδους (δεδομένα και ρολόι) και έξοδο (για δεδομένα) π.χ., μνήμη δεδομένων, μνήμη εντολών, καταχωρητές 29

30 Στοιχεία Μνήμης/Κατάστασης Χρονισμένα vs. Αχρόνιστα στοιχεία (Clocked vs. Unclocked storage elements) Χρήση ρολογιού σε συγχρονισμένη λογική (synchronous logic) πότε ενημερώνεται ένα στοιχείο που περιέχει μνήμη; Falling edge Clock period Rising edge 3

31 Ασύγχρονο στοιχείο μνήμης Ο μανδαλωτής set-reset Οι τιμές εξόδων εξαρτώνται από την τρέχουσα τιμή των εισόδων ΚΑΙ τις προηγούμενες τιμές στις εισόδους, ΌΧΙ από το ρολόι R Q S Q 3

32 Σύγχρονα στοιχεία μνήμης Μανδαλωτές (latches) και Flip-flops: Η έξοδος ισούται με την αποθηκεμένη τιμή του στοιχείου (η τιμή μπορεί να διαβαστεί ανά πάσα στιγμή) Αλλαγής της κατάστασης (τιμής) εξαρτάται από το ρολόι Μανδαλωτές: ενημερώνονται όποτε αλλάζουν οι τιμές εισόδων ΚΑΙ το ρολόι είναι ενεργοποιημένο (= asserted = high) Flip-flop: η αποθηκεμένη κατάσταση μπορεί να αλλάξει μόνο στην ακμή του ρολογιού (μεθοδολογία ακμοπυροδότησης) «λογικά ορθό», μπορεί να υπονοεί και χαμηλή τάση ηλεκτρισμού 32

33 D-latch Δύο είσοδοι: Τα δεδομένα προς αποθήκευση (D) Το σήμα του ρολογιού (C) που καθορίζει πότε μπορεί να αποθηκευτεί το D Δύο έξοδοι: Η τιμή της αποθηκεμένης κατάστασης (Q) και το συμπλήρωμά της (Q) C Q D C _ Q Q D 33

34 D flip-flop Η έξοδος αλλάξει μόνο στην ακμή του ρολογιού D D C D latch Q D C D latch Q Q Q Q C D C Q 34

35 Μεθοδολογία συγχρονισμού ρολογιού για μικροεπεξεργαστή με ένα κύκλο ρολογιού Η μεθοδολογία συγχρονισμού του ρολογιού ορίζει πότε τα διάφορα σήματα μπορούν να διαβαστούν ή/και να αποθηκευτούν, καθορίζει πότε τα δεδομένα είναι έγκυρα και έχουν σταθεροποιηθεί σε σχέση με το ρολόι (δεν θέλουμε να γράφουμε κατά τη διάρκεια της ανάγνωσης!) Χρησιμοποιούμε μεθοδολογία ακμοπυροδότησης Τυπική Εκτέλεση (σε κύκλο ρολογιού): Ανάγνωση περιεχομένων κάποιων στοιχείων μνήμης, Αποστολή τιμών μέσω συνδυαστικής λογικής, και Γράψιμο αποτελεσμάτων σε κάποια στοιχεία μνήμης State element Combinational logic State element 2 Clock cycle 35

36 Aκμοπυροδοτούμενη μεθοδολογία συγχρονισμού ρολογιού Όταν χρησιμοποιούμε ακμοπυροδότηση (θετική ή αρνητική) μπορούμε να θεωρήσουμε την πιο κάτω διάταξη. Καμία ανάδραση (feedback) κατά τη διάρκεια ενός κύκλου Γιατί; Τυπική Εκτέλεση (σε κύκλο ρολογιού): Ανάγνωση περιεχομένων κάποιων στοιχείων μνήμης, Αποστολή τιμών μέσω συνδυαστικής λογικής, και Γράψιμο αποτελεσμάτων σε κάποια στοιχεία μνήμης State element Combinational logic 36

37 Σχεδιασμός Διαδρόμου Δεδομένων Στοιχείο Διαδρόμου Δεδομένων (Datapath element) λειτουργική μονάδα που χρησιμοποιείται για την εκτέλεση ή κράτηση των δεδομένων σε ένα επεξεργαστή. Στον MIPS, περιλαμβάνει την μνήμη εντολών, την μνήμη δεδομένων, τους καταχωρητές, το ALU και κάποιους αθροιστές. Ας εξετάσουμε τις λειτουργικές μονάδες που απαιτούνται ανά κατηγορία εντολών: Διατήρηση του PC Εντολές τύπου R Εντολές Μνήμης τύπου I Εντολές Διακλάδωσης τύπου I και J 37

38 Μετρητής Προγράμματος (PC) Απαραίτητες Λειτουργικές Μονάδες: Instruction address Instruction PC Add Sum Instruction memory a. Instruction memory b. Program counter c. Adder Βήματα:. Προσκόμιση εντολής από τη μνήμη 2. Αύξηση του PC κατά 4 για να ετοιμαστεί για την επόμενη εντολή 38

39 Μετρητής Προγράμματος (PC) (συν.) Add 4 PC address Instruction memory Instruction Καθορίστε το μέγεθος του δίαυλου ( ) για κάθε γραμμή 39

40 Εντολές τύπου R (R-type) Περιλαμβάνει add, sub, and, or, slt Χειρίζεται 2 καταχωρητές για ανάγνωση και για γραφή π.χ., add $s, $t, $t2 $s καταχωρητής γραφής και $t, $t2 καταχωρητές ανάγνωσης Οι 32 καταχωρητές γενικής χρήσεως του επεξεργαστή αποθηκεύονται στο αρχείο καταχωρητών (register file) Το αρχείο καταχωρητών είναι ένα σύνολο από μπιτους καταχωρητές όπου ο κάθε ένας μπορεί να διαβαστεί ή/και να ενημερωθεί, με τον ορισμό του αντίστοιχου αριθμού του καταχωρητή στο αρχείο Το αρχείο καταχωρητών περιέχει την κατάσταση των καταχωρητών (register state) της μηχανής 4

41 Αρχείο Καταχωρητών (Register File) Σχεδιάζεται με D flip-flops register number Register register number register number 2 Write register Register file data data 2 Register... Register n 2 Register n M u x data Write data Write register number 2 Καθορίστε το μέγεθος του δίαυλου ( ) για κάθε γραμμή M u x data 2 4

42 Αρχείο Καταχωρητών CLK Reset CLK Reset register number register number 2 Write register Write data Register file Write data data register number register number 2 Write register Write data Register file Write data data για MIPS-32 για MIPS-6 42

43 Αφαιρετικότητα (Abstraction) Βεβαιωθείτε ότι καταλαβαίνεται όλη τη λεπτομέρεια που έχει αφαιρεθεί Μπορείτε εύκολα να ξεγελαστείτε ότι τα καταλαβαίνεται όλα! Select A3 B3 Select M u x C3 A B M u x 32 C A3 B3 M u x. C3. A B M u x C 43

44 Αρχείο Καταχωρητών (συν.) Σημείωση: εξακολουθούμε να χρησιμοποιούμε το «πραγματικό» ρολόι για να καθορίσουμε πότε μπορούμε να γράψουμε Write Register number n-to-2 n decoder. C D C Register n n D Register. C Register n 2 D C Register n Register data D 44

45 Εντολές τύπου R(R-type) Register numbers Data register register 2 Write register Write Data Registers data data 2 Data 4 ALU operation Zero ALU ALU result RegWrite a. Registers b. ALU Γιατί το σήμα επιλογής του ALU είναι 4-μπιτο; Μπορούμε να διαβάσουμε και να γράψουμε στον ΣΤΟN ίδιο καταχωρητή κατά τη διάρκεια ενός μόνο κύκλου; 45

46 Εντολές Μνήμης (lw, sw) lw $t, offset_value($t2) sw $t, offset_value($t2) Απαραίτητες Λειτουργικές Μονάδες: Αρχείο Καταχωρητών και ΑLU. Γιατί; Μονάδα για επέκταση πρόσημου (sign-extension) του 6- μπιτου offset σε προσημασμένη 32-μπιτη τιμή Επίσης, μνήμη δεδομένων. MemWrite Register numbers Data register register 2 Write register Write Data Registers data data 2 RegWrite Data 4 ALU operation Zero ALU ALU result Address Write data data Data memory Mem 6 Sign 32 extend a. Registers b. ALU a. Data memory unit b. Sign-extension unit 46

47 Διακλαδώσεις beq $t, $t2, branch_offset Αν $t == $t2, χρησιμοποιεί το branch_offset για να υπολογίσει την διεύθυνση της διακλάδωσης (branch target address) = τα καινούρια περιεχόμενα του PC = επόμενη εντολή προς εκτέλεση MIPS branch target address = PC+4 + branch_offset*4 Ποια λειτουργία του ALU χρειαζόμαστε για να υπολογίσουμε τη MIPS branch address; Έχουμε το PC+4 κάπου αλλού; Πρέπει να αποφασιστεί η επόμενη εντολή αναλόγως του αποτελέσματος της ισότητας (branch taken or not taken) Επομένως, ο διάδρομος δεδομένων μιας διακλάδωσης πρέπει να εκτελέσει 2 λειτουργίες: Σύγκριση περιεχομένων των καταχωρητών Υπολογισμός της διεύθυνσης της διακλάδωσης 47

48 Διακλαδώσεις (συν.) PC+4 from instruction datapath Add Sum Branch target Shift left 2 Instruction register register 2 Write register Write data Registers data data 2 4 ALU operation ALU Zero To branch control logic RegWrite 6 Sign 32 extend Πως νομίζεται ότι λειτουργεί το jump (j jump_offset); 48

49 Εντολές Μνήμης και τύπου R Instruction register register 2 Registers Write register data data 2 ALUSrc M ux 4 ALU ALU operation Zero ALU result Address MemWrite data MemtoReg M ux Write data RegWrite Write data Data memory 6 Sign 32 extend Mem 49

50 Συνδυάζοντας τα όλα Χρήση πολυπλέκτων για κατάλληλες επιλογές Αφού ολόκληρη η εντολή εκτελείται σε κύκλο, καμία μονάδα του datapath δεν μπορεί να χρησιμοποιηθεί περισσότερο από φορές ανάγκη για ξεχωριστές μνήμες για δεδομένα και εντολές Υποστήριξη εντολής j θα προστεθεί αργότερα PCSrc Add M ux 4 Add ALU result Shift left 2 PC address Instruction Instruction memory register register 2 Registers Write register Write data RegWrite data data 2 ALUSrc M ux 4 ALU ALU operation Zero ALU result Address Write data MemWrite MemtoReg data Data memory M ux 6 Sign 32 extend Mem 5

51 Υλοποίηση Μονάδας Ελέγχου Χρειαζόμαστε τώρα μια απλή μονάδα ελέγχου για να συντονίζει και να συγχρονίζει την εκτέλεση των διαφόρων εντολών Θεωρήστε μόνο τις πιο κάτω εντολές: lw, sw, beq, add, sub, or, and, slt Η εντολή j θα προστεθεί αργότερα Η μονάδα ελέγχου (control unit) χρησιμοποιείται για: Επιλογή της λειτουργίας που θα εκτελεστεί (ALU, μνήμη, κτλ.) Έλεγχο της ροής των δεδομένων (ανάθεση τιμών στα σήματα επιλογής των πολυπλέκτων) 5

52 Υλοποίηση Μονάδας Ελέγχου του ΑLU Η πληροφορία έρχεται από τα 32 bits της εντολής Παράδειγμα: add $8, $7, $8 Διάταξη Εντολής: op rs rt rd shamt funct R-type ΗλειτουργίατουALU εξαρτάται από τον τύπο της εντολής (op==arithmetic operation) και την συγκεκριμένη πράξη που δίνεται στο function code (funct==add operation) 52

53 Υλοποίηση Μονάδας Ελέγχου του ΑLU Π.χ., τι θα κάνει το ALU με την πιο κάτω εντολή; lw $, ($2) 35 2 op rs rt 6 bit offset I-type ALU Operation (για αριθμητικές εντολές): AND OR a add subtract set-on-less-than NOR b Πιο είναι το ALU operation για την εντολή lw; Γιατί ο κωδικός για αφαίρεση είναι και όχι ; ALU operation ALU CarryOut Zero Result Overflow 53

54 Οικουμενικό σύμβολο ALU (32-bit) ALU operation ALU control lines (Ainvert, Binvert, Operation(2)) Function and or add subtract slt NOR a b ALU Zero Result Overflow CarryOut 54

55 ... Θυμηθείτε το 32-bit ALU Binvert Ainvert Operation a b Ainvert Binvert + Operation CarryIn 2 -bit ALU για MSB (3) Result a b CarryIn CarryIn ALU Less CarryOut Result Less Overflow detection 3 Set Overflow a b CarryIn ALU Less CarryOut Result a Ainvert Binvert Operation CarryIn a2 b2 CarryIn ALU2 Less CarryOut Result2 Result b Less + CarryOut 2 3 -bit ALU για Bits (..3)... CarryIn a3 CarryIn Result3 b3 ALU3 Set Less Overflow 55

56 Μονάδα Ελέγχου ALU (συν.) Χρειαζόμαστε την περιγραφή του υλικού για τον υπολογισμό του 4-bit ALU control input (μέρος του controller) Δεδομένου του τύπου τα εντολής (op) = lw, sw = beq = αριθμητική εντολή function code για αριθμητική εντολή (funct) Περιγραφή με χρήση πίνακα αληθείας (δίνει με τη σειρά του την υλοποίηση σε επίπεδο δυαδικών πυλών): op ALUOp operation Funct ALU action ALU control input lw Load xxxxxx Add sw Store xxxxxx Add beq Branch equal xxxxxx Subtract R-type Add Add R-type Subtract Subtract R-type AND And R-type OR Or R-type Set on less than Set on less than Ορίζουν το ALUOp 56

57 Μονάδα Ελέγχου ALU (συν.) Για να παράγουμε τις εισόδους ελέγχου του ALU χρειαζόμαστε κατάλληλες πληροφορίες: ALUOp και το πεδίο Funct της εντολής κατάλληλη διασύνδεση των πεδίων της εντολής στο διάδρομο δεδομένων Θεωρήστε ότι το ALUOp δίνεται. Το Funct παράγεται από την εντολή Θυμηθείτε τις διάφορες διατάξεις εντολών: 3:26 25:2 2:6 5: :6 5: rs rt rd shamt funct 43 or 35 rs rt 6 bit address 3:26 25:2 2:6 5: 4 rs rt 6 bit address 3:26 25:2 2:6 5: R-type I-type: load/store I-type: branch Το Opcode είναι πάντα στη θέση 3:26 Πάντα διαβάζονται 2 καταχωρητές για R-type/branch/store: rs στη θέση 25:2 και rt στη θέση 2:6 Ο καταχωρητής βάσης (base register) για load/store είναι στο πεδίο rs (25:2): Το 6-μπιτο offset για branch/load/store είναι πάντα στη θέση 5: Ο καταχωρητής γραφής ορίζεται στο rd στη θέση 5: για R-type ή στοrt στη 2:6 για load 57

58 Ενσωμάτωση Μονάδας Ελέγχου ALU PCSrc Add M ux PC 4 address Instruction [25:2] RegWrite register Instruction [2:6] rt data ALUSrc register 2 Zero Instruction [3:] ALU M ALU Write data 2 result Instruction ux Instruction [5:] register M memory ux rd Write data Registers RegDst Instruction [5:] offset rs 6 Sign 32 extend Instruction [5:] funct Shift left 2 ALU control ALUOp Add ALU result MemWrite Address Write data μονάδα ελέγχου του ALU Data memory Mem data MemtoReg M ux 58

59 Κεντρική Μονάδα Ελέγχου Τι απομένει; Υλοποίηση των 7 σημάτων ελέγχου (όλα εκτός του ALUOp) Όνομα Σήματος Αποτέλεσμα όταν Απενεργοποιείται Αποτέλεσμα όταν Ενεργοποιείται RegDst Καταχωρητής γραφής= rt Καταχωρητής γραφής= rd RegWrite Κανένα Καταχωρητής γραφής ανανεώνεται με δεδομένα γραφής ALUSrc 2 ο όρισμα του ALU από data2 2 ο όρισμα του ALU από sing-extended offset PCSrc PC=PC+4 PC=PC (4 x offset) Mem Κανένα Ανάγνωση από μνήμη δεδομένων MemWrite Κανένα Γραφή στη μνήμη δεδομένων MemtoReg Δεδομένα για καταχωρητή γραφής από ALU Δεδομένα για καταχωρητή γραφής από μνήμη δεδομένων 59

60 Add M ux 4 Add ALU result Instruction [3 26] Control RegDst Branch Mem MemtoReg ALUOp MemWrite ALUSrc RegWrite Shift left 2 PC address Instruction [25 2] register Instruction [2 6] data register 2 Zero Instruction [3 ] ALU M ALU Write data 2 result Instruction ux Instruction [5 ] register M memory ux Write data Registers Address Write data data Data memory M ux Instruction [5 ] 6 Sign 32 extend ALU control Instruction [5 ] Memto- Reg Mem Mem Εντολή RegDst ALUSrc Reg Write Write Branch ALUOp ALUp R-format lw sw X X beq X X 6

61 ALU Μονάδα Ελέγχου σε επίπεδο πυλών Απλή συνδυαστική λογική (πίνακες αληθείας) Inputs ALUOp ALUOp ALUOp ALU control block Op5 Op4 Op3 Op2 Op Op F (5 ) F3 F2 F F Operation2 Operation Operation Operation R-format Iw sw beq Outputs RegDst ALUSrc MemtoReg RegWrite Mem MemWrite Branch ALUOp ALUOpO Τι είναι αυτό; 6

62 ALU Μονάδα Ελέγχου σε επίπεδο πυλών Απλή συνδυαστική λογική (πίνακες αληθείας) ALUOp ALUOp ALUOp ALU control block Inputs Op5 Op4 Op3 Op2 Op Op F (5 ) F3 F2 F F Operation2 Operation Operation Operation R-format Iw sw beq Outputs RegDst ALUSrc MemtoReg RegWrite Mem MemWrite Branch ALUOp ALUOpO Τι είναι αυτό; 62

63 Ροή εντολής στο διάδρομο δεδομένων Παράδειγμα : add $t, $t2, $t3 Βασικά Βήματα:. Προσκόμιση εντολής και αύξηση του PC 2. Ανάγνωση $t2(25:2) και $t3(2:6) από το αρχείο καταχωρητών, η κύρια μονάδα ελέγχου θέτει τις τιμές των σημάτων ελέγχου 3. Το ALU λειτουργεί βάση του funct προσθέτει Data και Data2 4. Το αποτέλεσμα του ALU γράφεται πίσω στο αρχείο καταχωρητών στον $t(5:) 63

64 Ροή εντολής στο διάδρομο δεδομένων Παράδειγμα : add $t, $t2, $t3 Add M ux 4 Add ALU result Instruction [3 26] Control RegDst Branch Mem MemtoReg ALUOp MemWrite ALUSrc RegWrite Shift left 2 PC address Instruction [25 2] register Instruction [2 6] data register 2 Zero Instruction [3 ] ALU M ALU Write data 2 result Instruction ux Instruction [5 ] register M memory ux Write data Registers Instruction [5 ] 6 Sign 32 extend ALU control Address Write data data Data memory M ux Instruction [5 ] 3:26 25:2 2:6 5: :6 5: $t2 $t3 $t add 64

65 Ροή εντολής στο διάδρομο δεδομένων Παράδειγμα 2: lw $t, offset($t2) Βασικά Βήματα:. Προσκόμιση εντολής και αύξηση του PC 2. Ανάγνωση $t2(25:2) απότοαρχείοκαταχωρητών, η κύρια μονάδα ελέγχου θέτει τις τιμές των σημάτων ελέγχου 3. Το ALU λειτουργεί βάση του ALUOp προσθέτει Data και offset(5:) 4. Το αποτέλεσμα του ALU είναι η διεύθυνση των δεδομένων στη μνήμη 5. Η έξοδος της μνήμης δεδομένων γράφεται στο αρχείο καταχωρητών στον $t(2:6) 65

66 Ροή εντολής στο διάδρομο δεδομένων Παράδειγμα 2: lw $t, offset($t2) Add M ux 4 Add ALU result Instruction [3 26] Control RegDst Branch Mem MemtoReg ALUOp MemWrite ALUSrc RegWrite Shift left 2 PC address Instruction [25 2] register Instruction [2 6] data register 2 Zero Instruction [3 ] ALU M ALU Write data 2 result Instruction ux Instruction [5 ] register M memory ux Write data Registers Instruction [5 ] 6 Sign 32 extend ALU control Address Write data data Data memory M ux Instruction [5 ] 3:26 25:2 2:6 5: 35 $t2 $t offset 66

67 Ροή εντολής στο διάδρομο δεδομένων Παράδειγμα 3: beq $t, $t2, offset Βασικά Βήματα:. Προσκόμιση εντολής και αύξηση του PC 2. Ανάγνωση $t2(25:2) και $t3(2:6) από το αρχείο καταχωρητών, η κύρια μονάδα ελέγχου θέτει τις τιμές των σημάτων ελέγχου 3. Το ALU λειτουργεί βάση του ALUOp αφαιρεί Data2 από Data ($t-$t<). Προσθέτει το sign-extended offset, μετατοπισμένο αριστερά (shifted left) κατά 2 θέσεις, στο PC+4 για να υπολογίσει την διεύθυνση της διακλάδωσης 4. Ενεργοποιείται το ALU zero (=) γιανααποθηκευτείη διεύθυνση διακλάδωσης στον PC 67

68 Ροή εντολής στο διάδρομο δεδομένων Παράδειγμα 3: beq $t, $t2, offset Add M ux 4 Add ALU result Instruction [3 26] Control RegDst Branch Mem MemtoReg ALUOp MemWrite ALUSrc RegWrite Shift left 2 PC address Instruction [3 ] Instruction memory Instruction [25 2] Instruction [2 6] Instruction [5 ] Instruction [5 ] M ux register register 2 Write register Write data data data 2 Registers 6 Sign 32 extend M ux ALU control ALU Zero ALU result Address Write data data Data memory M ux Instruction [5 ] 3:26 25:2 2:6 5: 4 $t $t2 offset 68

69 Oριστικοποίηση Μονάδας Ελέγχου Memto- Reg Mem Mem Εντολή RegDst ALUSrc Reg Write Write Branch ALUOp ALUp R-format lw sw X X beq X X Χρησιμοποιείστε τον πιο πάνω πίνακα για να βρείτε τον τελείως καθορισμένο πίνακα αληθείας και το αντίστοιχο λογικό διάγραμμα της κυρίως μονάδας ελέγχου Είσοδοι: Έξοδοι: 69

70 Oριστικοποίηση Μονάδας Ελέγχου Είσοδος ή Έξοδος Είσοδος Έξοδος Όνομα Σήματος R-Format lw sw beq Op5 Op4 Op3 Op2 Op Op RegDst X X ALUSrc MemtoReg X X RegWrite Mem MemWrite Branch ALUOp ALUOp2 Βλέπε Παράρτημα Γ για υλοποίηση, σε επίπεδο λογικών πυλών, με PLA 7

71 Υλοποίηση ανεξάρτητου άλματος (unconditional jump j) Παρόμοιο με το branch, στην ακρίβεια είναι πιο απλό! Jump address = 4 MSB του (PC+4) && offset*4, όπου && υποδηλώνει αλληλουχία 3:26 25: 26 bit address (offset) Εντολή 3:28 27:2 : 26 bit address (offset) Jump address 3:28 27: PC 7

72 Υλοποίηση ανεξάρτητου άλματος (unconditional jump j) Instruction [25 ] Shift Jump address [3 ] left PC + 4 [3 28] Add M ux M ux 4 Add ALU result Instruction [3 26] Control RegDst Jump Branch Mem MemtoReg ALUOp MemWrite ALUSrc RegWrite Shift left 2 x PC address Instruction [3 ] Instruction memory Instruction [25 2] Instruction [2 6] Instruction [5 ] Instruction [5 ] M ux register register 2 Write register Write data data data 2 Registers 6 Sign 32 extend M ux ALU control ALU Zero ALU result Address Write data data Data memory M ux Instruction [5 ] 72

73 Υλοποίηση ανεξάρτητου άλματος (unconditional jump j) Instruction [25 ] Shift Jump address [3 ] left PC + 4 [3 28] Add M ux M ux 4 Add ALU result Instruction [3 26] Control RegDst Jump Branch Mem MemtoReg ALUOp MemWrite ALUSrc RegWrite Shift left 2 PC address Instruction [3 ] Instruction memory Instruction [25 2] Instruction [2 6] Instruction [5 ] Instruction [5 ] M ux register register 2 Write register Write data data data 2 Registers 6 Sign 32 extend M ux ALU control ALU Zero ALU result Address Write data data Data memory M ux Instruction [5 ] 73

74 Μεθοδολογία ενός κύκλου ρολογιού Όλη η λογική είναι συνδυαστική Περιμένουμε όλα τα στοιχεία να σταθεροποιήσουν τις τιμές εξόδων τους για να πάρουμε το αποτέλεσμα Το ALU μπορεί να μην παράγει την «ορθή απάντηση» αμέσως Χρησιμοποιούμε write signals μαζί με το ρολόι για να καθορίσουμε πότε μπορούμε να γράψουμε Η περίοδος του ρολογιού ορίζεται βάση του μήκους (ή καθυστέρησης) του κρίσιμου μονοπατιού Ποια εντολή ενεργοποιεί το κρίσιμο μονοπάτι; State element Combinational logic State element 2 Clock cycle Αγνοούμε λεπτομέρειες για setup και hold χρόνο 74

75 Πρόβλημα υπολογισμού συχνότητας ρολογιού Υπολογίστε την περίοδο του ρολογιού θεωρώντας αμελητέες καθυστερήσεις, εκτός των πιο κάτω: χρόνος προσπέλασης μνήμης (2ps), ΑLU και αθροιστές (ps), χρόνος προσπέλασης αρχείου καταχωρητών (5ps) PCSrc 4 ps Add ps Add ALU result M ux Shift left 2 PC address 2ps Instruction Instruction memory register register 2 Registers Write register Write data RegWrite data data 2 5ps ALUSrc M ux 4 ALU ALU operation ps Zero ALU result Address Write data MemWrite MemtoReg data 2ps Data memory M ux 6 Sign 32 extend Mem 75

76 Λύση 76

77 Πρόβλημα αξιολόγησης απόδοσης Θεωρήστε ένα μικροεπεξεργαστή με ένα κύκλο ρολογιού ανά εντολή, με 2 υλοποιήσεις: Αμετάβλητη περίοδο ρολογιού για όλες τις εντολές (βάση της πιο αργής εντολής) Μεταβλητή περίοδο ρολογιού ανά τύπο/κατηγορία εντολής. Κάθε εντολή εκτελεί μόνο τόσο όσο χρειάζεται. Όλα τα συνιστώσα έχουν καθυστέρηση εκτός των: μονάδες μνήμης 2ps, ALU και αθροιστές ps και αρχείο καταχωρητών 5ps καθυστέρηση. Συγκρίνετε την απόδοση των 2 υλοποιήσεων, θεωρώντας το πιο κάτω φορτίο εργασίας: 25% εντολές load % εντολές store 45% εντολές ALU (αριθμητικές) 5% εντολές branch 5% εντολές jump 77

78 Λύση 78

79 Προβλήματα Σχεδιασμού με ένα κύκλο ρολογιού Πρόβλημα με ένα κύκλο ρολογιού ανά εντολή: Για την οργάνωση που έχουμε δει μέχρι στιγμής, 2/3 της περιόδου του ρολογιού σπαταλούνται άδικα για την εντολή jump, /3 σπαταλείται για εντολές τύπου R, κτλ Τι θα γινόταν αν υλοποιούσαμε μια πιο σύνθετη εντολή, όπως αυτές για αριθμητική κινητής υποδιαστολής; Θα σπαταλούμε ακόμη περισσότερο χρόνο Μια πιθανή λύση: Χρήση «μικρότερης» περιόδου ρολογιού Υλοποίηση εντολών με διαφορετικό αριθμό κύκλων ρολογιού Επομένως, οργάνωση του διαδρόμου δεδομένων του μικροεπεξεργαστή βάση «πολλαπλών κύκλων» 79

80 Διάδρομος Δεδομένων Πολλαπλών Κύκλων Θυμηθείτε τα βήματα εκτέλεσης στην μέθοδο με ένα κύκλο κάθε βήμα αντιστοιχεί τώρα σε κύκλο ρολογιού Επιτρέπει την επαναχρησιμοποίηση των λειτουργικών μονάδων κατά τη διάρκεια μιας εντολής, εφόσον αυτή γίνεται σε διαφορετικούς κύκλους του ρολογιού Το ALU χρησιμοποιείται για να υπολογίσει την διεύθυνση και να αυξήσει τον PC Η μνήμη χρησιμοποιείται για εντολές ΚΑΙ δεδομένα Προσθέτουμε νέους καταχωρητές για να κρατούν το αποτέλεσμα της κάθε λειτουργικής μονάδας PC Address Instruction register Data A Instruction or data Memory Data Memory data register Register # Registers Register # Register # B ALU ALUOut 8

81 Διάδρομος Δεδομένων Πολλαπλών Κύκλων (συν.) Στο τέλος κάθε κύκλου, τα δεδομένα που θα χρησιμοποιηθούν σε επόμενους κύκλους πρέπει να φυλαχτούν σε στοιχεία μνήμης (state elements). Αυτά αποτελούνται από: PC/Memory/Register file για διαφορετικές εντολές Επιπρόσθετοι καταχωρητές απαιτούνται για την ίδια εντολή, σε διαφορετικούς κύκλους Μη-Προσβάσιμα από τον προγραμματιστή PC Address Instruction register Data A Instruction or data Memory Data Memory data register Register # Registers Register # Register # B ALU ALUOut Ορατά/Προσβάσιμα από τον προγραμματιστή 8

82 Διάδρομος Δεδομένων Πολλαπλών Κύκλων (συν.) Σε αυτό το σχεδιασμό, μπορούν να γίνουν τα ακόλουθα σε κύκλο: Προσπέλαση Μνήμης Προσπέλαση Αρχείου Καταχωρητών (2 reads ή write) Λειτουργία ALU Επομένως, κάθε αποτέλεσμα από τα πιο πάνω πρέπει να αποθηκευτεί σε προσωρινούς καταχωρητές. Instruction register (IR) και Memory data register (MDR) (μνήμη), A και B (αρχείο καταχωρητών) και ALUOut (ALU) PC Address Instruction register Data A Instruction or data Memory Data Memory data register Register # Registers Register # Register # B ALU ALUOut 82

83 Διάδρομος Δεδομένων Πολλαπλών Κύκλων (συν.) Χρειαζόμαστε επιπρόσθετους πολυπλέκτες: Μεταξύ PC και Μνήμης ος τελεστής του ALU Επέκταση του πολυπλέκτη για τον 2 ο τελεστή του ALU Υπολείπεται υλικό για branch και jump PC Instruction Address [25 2] register M ux Memory MemData Write data Instruction [2 6] Instruction [5 ] Instruction register Instruction [5 ] Memory data register Instruction [5 ] M ux M ux register 2 Registers Write register Write data 6 Sign 32 extend data data 2 Shift left 2 A M ux B 4 M ux 2 3 Zero ALU ALU result ALUOut 83

84 Σχεδιασμός με πολλαπλούς κύκλους ρολογιού Τα σήματα ελέγχου δεν καθορίζονται άμεσα από την εντολή π.χ., τι πρέπει να κάνει το ALU για την εντολή αφαίρεσης; Θα χρησιμοποιήσουμε μηχανή πεπερασμένων καταστάσεων (finite state machine FSM) για τον σχεδιασμό της μονάδας ελέγχου Μπορεί να χρησιμοποιηθούν τα ίδια σήματα ελέγχου (της κυρίως μονάδας ελέγχου) για τον επεξεργαστή πολλαπλών κύκλων, με αυτό του επεξεργαστή ενός κύκλου; Μπορούν τα σήματα ελέγχου του ALU να μείνουν τα ίδια? 84

85 Προσθήκη σημάτων ελέγχου

86 Εντολές branch και jump 3 πιθανές πηγές για την τιμή ανανέωσης του PC Έξοδος από ALU που είναι PC+4, φυλάγεται απευθείας στον PC Έξοδος από ALU που φυλάγεται στον καταχωρητή ALUOut, περιέχει την διεύθυνση διακλάδωσης (branch) 26 λιγότερο σημαντικά bits του IR, μετατοπισμένα αριστερά κατά 2 και επεκτεινόμενα (&&) με τα 4 πιο σημαντικά bits του PC, περιέχει την διεύθυνση άλματος (jump) Έξοδος ALU (ΑLU result) Διεύθυνση Jump 2 Μ U X στον PC Διεύθυνση Branch (ΑLUOut) 86

87 Εντολές branch και jump (συν.) Πότε γράφουμε στον PC? Θυμηθείτε την υλοποίηση ενός κύκλου Ανεπιφύλακτη (unconditional) γραφή για jump ή αύξηση κατά 4, γραφή υπό συνθήκη (conditional) για branch (Branch= και ALU Zero=) Θεωρήστε το σήμα ελέγχου PCWrite, που θέτεται σε όταν έχουμε εντολή jump ή PC+4 Θεωρήστε το σήμα ελέγχου PCWriteCond, που θέτεται σε όταν έχουμε εντολή branch και ALU Zero= Τότε, Write PC = PCWrite ή (PCWriteCond και Zero) = PCWrite + PCWriteCond Zero 87

88 Διάδρομος Δεδομένων και απαραίτητα σήματα ελέγχου για πολλαπλούς κύκλους Πότε (απο) ενεργοποιείται το κάθε σήμα ελέγχου; When is each control signal asserted or de-asserted? στον PC Έξοδος ALU Διεύθυνση Jump Διεύθυνση Branch 88

89 Λειτουργία Σημάτων Ελέγχου Όνομα Σήματος Αποτέλεσμα όταν Από-ενεργοποιημένο Αποτέλεσμα όταν Ενεργοποιημένο RegDst Ο καταχωρητής γραφής είναι ο rt Ο καταχωρητής γραφής είναι ο rd RegWrite Τίποτε Ο καταχωρητής γραφής ενημερώνεται με τα δεδομένα γραφής ALUSrcΑ ος τελεστής του ALU είναι ο PC ος τελεστής του ALU είναι ο καταχωρητής A IorD PC δίνει την διεύθυνση εντολής στη μνήμη ALUOut δίνει την διεύθυνση δεδομένων στη μνήμη Mem Τίποτε Ανάγνωση από μνήμη δεδομένων MemWrite Τίποτε Γραφή στη μνήμη δεδομένων MemtoReg Δεδομένα καταχωρητή γραφής από τον ALUOut Δεδομένα καταχωρητή γραφής από τον MDR IRWrite Τίποτε Έξοδος μνήμης γράφεται στον IR PCWrite Τίποτε Γραφή στον PC. Πηγή από PCSource PCWriteCond Τίποτε Γραφή στον PC αν ALU Zero= Όνομα Σήματος Τιμή (Δυαδική) Αποτέλεσμα ALUOp ALUSrcB PCSource Πρόσθεση Αφαίρεση funct ορίζει την λειτουργία 2 η είσοδος του ALU από τον καταχωρητή B 2 η είσοδος του ALU από τον σταθερό 4 2 η είσοδος του ALU από τα 6 λιγότερα σημαντικά bits του IR, με επεκτεινόμενο πρόσημο 2 η είσοδος του ALU από τα 6 λιγότερα σημαντικά bits του IR, με επεκτεινόμενο πρόσημο και μετατοπισμένα αριστερά κατά 2 Έξοδος του ALU (PC+4) ALUOut (διεύθυνση διακλάδωσης) 26 λιγότερο σημαντικά bits του IR, μετατοπισμένα αριστερά κατά 2, επεκτεινόμενα με τα 4 σημαντικότερα bits του PC+4 (διεύθυνση άλματος) 89

90 Εντολές θεωρώντας το ISA Θεωρήστε κάθε εντολή, βάση του ISA. Παράδειγμα: Ηεντολήadd αλλάζει τα περιεχόμενα ενός καταχωρητή. Ο καταχωρητής γραφής ορίζεται από τα bits 5: της εντολής. Η εντολή καθορίζεται από τον PC. Η νέα τιμή είναι το άθροισμα («op») δύο καταχωρητών. Οι καταχωρητές ανάγνωσης ορίζονται από τα bits 25:2 και 2:6 της εντολής. Reg[Memory[PC][5:]] <= Reg[Memory[PC][25:2]] op Reg[Memory[PC][2:6]] Για να υλοποιήσουμε το πιο πάνω πρέπει να «σπάσουμε την εντολή». (παρόμοιο με την εισαγωγή προσωρινών μεταβλητών όταν προγραμματίζουμε) 9

91 Τεμαχισμός αριθμητικής εντολής Ορισμός ISA για αριθμητική εντολή: Reg[Memory[PC][5:]] <= Reg[Memory[PC][25:2]] op Reg[Memory[PC][2:6]] Μπορεί να σπάσει σε: IR <= Memory[PC] A <= Reg[IR[25:2]] B <= Reg[IR[2:6]] ALUOut <= A op B Reg[IR[5:]] <= ALUOut Μην ξεχάσετε το ακόλουθο! PC <= PC + 4 9

92 Ηβασικήιδέατηςμεθοδολογίας πολλαπλών κύκλων Ορίζουμε κάθε εντολή, βάση του ISA (επαναλάβετε το προηγούμενο παράδειγμα για άλλες εντολές!) Σπάζουμε την εντολή σε βήματα ακολουθώντας τον κανόνα ότι τα δεδομένα ρέουν διαμέσου το πολύ μίας λειτουργικής μονάδας (ισορροπία μεταξύ των διαφόρων βημάτων) Εισαγωγή νέων καταχωρητών, όπου χρειάζεται (π.χ., A, B, ALUOut, MDR) Προσπαθούμε να «γεμίσουμε» το κάθε βήμα με όση δυνατό περισσότερη εργασία (για να αποφύγουμε αχρείαστους κύκλους) και την ίδια στιγμή, να «μοιράζονται» οι εντολές όσο το δυνατό περισσότερα βήματα (ελαχιστοποιεί τη μονάδα ελέγχου, απλοποιεί την υλοποίηση) 92

93 Τεμαχισμός εντολής σε 5 βήματα εκτέλεσης. Προσκόμιση Εντολής 2. Αποκωδικοποίηση Εντολής και Προσκόμιση Καταχωρητών 3. Εκτέλεση, Υπολογισμός Διεύθυνση Μνήμης ή Ολοκλήρωση Διακλάδωσης 4. Προσπέλασης Μνήμης ή Ολοκλήρωση εντολής τύπου R 5. Αποτέλεσμα σε καταχωρητή (write-back) Τα βήματα -2 εκτελούνται για ΟΛΕΣ τις εντολές. ΟΛΕΣ ΟΙ ΕΝΤΟΛΕΣ ΕΚΤΕΛΟΥΝΤΑΙ ΜΕΤΑΞΥ 3ων -5 ΚΥΚΛΩΝ! 93

94 Βήμα : Προσκόμιση εντολής Χρησιμοποιούμε τον PC για να πάρουμε την εντολή από την μνήμη και να την αποθηκεύσουμε στον Instruction Register (IR). Αυξάνουμε τον PC κατά 4 και φυλάγουμε το αποτέλεσμα πίσω στον PC. Μπορεί να περιγραφεί χρησιμοποιώντας RTL (Register-Transfer Language) IR <= Memory[PC]; PC <= PC + 4; Μπορείτε να υπολογίσετε τις τιμές των σημάτων ελέγχου; Ποιο είναι το πλεονέκτημα από το να ανανεώνουμε τον PC σε αυτό το στάδιο; 94

95 Βήμα 2: Αποκωδικοποίηση Εντολής και Προσκόμιση Καταχωρητών Ανάγνωση καταχωρητών rs και rt Υπολογισμός της διεύθυνσης διακλάδωσης (σε περίπτωση που η εντολή είναι branch) RTL: A <= Reg[IR[25:2]]; B <= Reg[IR[2:6]]; ALUOut <= PC + (sign-extend(ir[5:]) << 2); Κανένα σήμα ελέγχου δεν θέτεται (σε ή ), βάση του τύπου της εντολής (ασχολούμαστε με την «αποκωδικοποίηση» της εντολής). ALUSrcB =, τα υπόλοιπα είναι 95

96 Βήμα 3: Εξαρτάται από τον τύπο της εντολής Το ALU εκτελεί μία από τις πιο κάτω πράξεις, βάση του τύπου της εντολής Πρόσβαση Μνήμης: R-type: ALUOut <= A + sign-extend(ir[5:]); ALUOut <= A op B; Ολοκλήρωση Branch: if (A==B) PC <= ALUOut; Ολοκλήρωση Jump: PC <= PC[3:28] && (IR[25:] >> 2); 96

97 Βήμα 4: R-type ή πρόσβαση στη μνήμη Προσπέλαση μνήμης για load ή store MDR <= Memory[ALUOut]; or Memory[ALUOut] <= B; Ολοκλήρωση εντολής R-type Reg[IR[5:]] <= ALUOut; Η γραφή εκτελείται στο τέλος του κύκλου, πάνω στην ακμή 97

98 Βήμα 5: Write-back Reg[IR[2:6]] <= MDR; Ποια εντολή χρειάζεται το πιο πάνω; 98

99 Συνοπτικά 99

100 Ερώτηση: Πόσοι κύκλοι απαιτούνται για να εκτελεστεί ο πιο κάτω κώδικας; lw $t2, ($t3) lw $t3, 4($t3) beq $t2, $t3, Label #θεωρήστε ότι δεν ισούνται add $t5, $t2, $t3 sw $t5, 8($t3) Label:... Τι συμβαίνει κατά τη διάρκεια του 8 ου κύκλου; Σε πιο κύκλο γίνεται η πρόσθεση των $t2 και $t3;

101 Μονάδα Ελέγχου για πολλαπλούς κύκλους ρολογιού Η μονάδα ελέγχου για το διάδρομο δεδομένων πολλαπλών κύκλων πρέπει να καθορίζει: Τιςτιμέςτωνσημάτωνελέγχου Επόμενο βήμα εκτέλεσης 2 τρόποι σχεδιασμού της μονάδας ελέγχου: Ως μηχανή πεπερασμένων καταστάσεων (FSM) Γραφική αναπαράσταση που οδηγεί στον πίνακα καταστάσεων πίνακα αληθείας (βάση του τύπου των flip-flops) λογικό διάγραμμα Με χρήση Μικρο-προγραμματισμού (Microprogramming) Αναπαράσταση της μονάδας ελέγχου με προγραμματισμό Χρήση πυλών, ROM, PLA, κτλ για υλοποίηση της μονάδας ελέγχου, ανεξάρτητα του τρόπου σχεδιασμού του (Παράρτημα C του βιβλίου σας)

102 Επανάληψη: Finite State Machines Finite state machines (Μηχανές Πεπερασμένων Καταστάσεων): Ένα σύνολο καταστάσεων (states) Συναρτήσεις για την επόμενη κατάσταση (next state functions), καθορίζονται από την παρούσα κατάσταση και τις εισόδους Συναρτήσεις εξόδου, καθορίζονται από την παρούσα κατάσταση και, πιθανόν, τις εισόδους Θα χρησιμοποιήσουμε μηχανές τύπου Moore (οι έξοδοι βασίζονται άμεσα μόνο στην παρούσα κατάσταση). Επομένως, τα σήματα ελέγχου ενεργοποιούνται/απενεργοποιούνται βάση της παρούσας κατάστασης 2

103 Μηχανές Mealy και Moore Moore: ΜΟΝΟ η επόμενη κατάσταση εξαρτάται άμεσα από τις τιμές των εισόδων ΚΑΙ της παρούσας κατάστασης. Οι τιμές στις εξόδους εξαρτούνται μόνο από την παρούσα κατάσταση x(t) είσοδοι C s(t+) επόμενη κατάσταση Καταχωρητής Κατάστασης s(t) παρούσα κατάσταση C2 z(t) ρολόι x(t) είσοδοι C s(t+) επόμενη κατάσταση Καταχωρητής Κατάστασης ρολόι s(t) παρούσα κατάσταση C2 z(t) Mealy: Έξοδοι ΚΑΙ επόμενη κατάσταση εξαρτούνται άμεσα από τις τιμές των εισόδων ΚΑΙ της παρούσας κατάστασης. 3

104 Υλοποίησης Μονάδας Ελέγχου για πολλαπλούς κύκλους ρολογιού Από πού ξεκινούμε; Καθορισμός # καταστάσεων και τι εκτελείται σε κάθε κατάσταση (δηλ., πως ενεργοποιούνται τα σήματα ελέγχου) Πόσες καταστάσεις χρειαζόμαστε; Η τιμή των σημάτων ελέγχου εξαρτάται από: Τοντύποτηςεντολήςπουεκτελείται(R-type, lw, sw, beq, j) Το βήμα του εκτελείται (από τα 5 πιθανά βήματα) 4

105 Υλοποίησης Μονάδας Ελέγχου για πολλαπλούς κύκλους ρολογιού (συν.) Συνήθως, σε ένα FSM τα ενεργοποιημένα σήματα παίρνουν την τιμή και τα απενεργοποιημένα είναι ή x(don t care) Για τη σωστή λειτουργία του διαδρόμου δεδομένων, τα απενεργοποιημένα σήματα είναι πάντα Πχ. IRWrite= μόνο όταν προσκομίζουμε μια καινούρια εντολή (Βήμα ). IRWrite= για τα υπόλοιπα βήματα (αλλιώς, η επόμενη εντολή θα γραφτεί στον IR προτού ολοκληρωθεί η τρέχουσα εντολή, αφού PC=PC+4 στο Βήμα. Τα σήματα επιλογής (ελέγχου) του ΜUX control θέτονται ΜΟΝΟ για τους απαραίτητους MUXes Χρησιμοποιείστε όλες τις πληροφορίες που έχουμε μέχρι στιγμής για να καθορίσετε τη μονάδα ελέγχου Σχεδιάστε το διάγραμμα πεπερασμένων καταστάσεων (bubble diagram or FSM) ή Χρησιμοποιείστε μικρο-προγραμματισμό Η υλοποίηση μπορεί να προέλθει από ένα από τα πιο πάνω 5

106 Υλοποίησης Μονάδας Ελέγχου για πολλαπλούς κύκλους ρολογιού (συν.) (Αρ. Βήματος) () (2) (3) (4) (5) FSM Controller (σε ψηλό επίπεδο) ΑΡΧΗ Instruction fetch, decode and register fetch (Βήματα +2, ίδια για όλες τις εντολές) Memory access instructions (Βήματα 3+4+5) R-type instructions (Βήματα 3+4) Branch instructions (Βήμα 3) Jump instructions (Βήμα 3) 6

107 Βήμα +2: Instruction Fetch and Decode (Αρ. Βήματος) () (2) State (Βήμα ) - Εκτελείται για ΟΛΕΣ τις εντολές - Προχωρεί πάντα στην Κατάσταση Start Instruction fetch Mem ALUSrcA = IorD = IRWrite ALUSrcB = ALUOp = PCWrite PCSource = Instruction decode/ Register fetch ALUSrcA = ALUSrcB = ALUOp = State (Βήμα 2) - Εκτελείται για ΟΛΕΣ τις εντολές - Προχωρεί σε διαφορετική κατάσταση βάση της τιμής στο Opcode (Op = 'LW') or (Op = 'SW') αποκωδικοποίηση (Op = R-type) (Op = 'BEQ') (Op = 'J') Memory-reference FSM (Figure 5.33) R-type FSM (Figure 5.34) Branch FSM (Figure 5.35) Jump FSM (Figure 5.36) 7

108 Βήμα +2: Instruction Fetch and Decode Ενεργοποιημένα σήματα Σήματα επιλογής πολυπλέκτων Start Instruction fetch Mem ALUSrcA = IorD = IRWrite ALUSrcB = ALUOp = PCWrite PCSource = Instruction decode/ Register fetch ALUSrcA = ALUSrcB = ALUOp = Τα υπόλοιπα σήματα ελέγχου είναι απενεργοποιημένα () ή don t care (x) αν είναι σήματα επιλογής πολυπλέκτη Memory-reference FSM (Figure 5.33) (Op = 'LW') or (Op = 'SW') R-type FSM (Figure 5.34) (Op = R-type) (Op = 'BEQ') Branch FSM (Figure 5.35) (Op = 'J') Jump FSM (Figure 5.36) 8

109 Εντολές Μνήμης (5 βήματα / κύκλοι) (Αρ. Βήματος) From state (3) (4) (5) State 2 (Βήμα 3) - Εκτελείται για εντολές lw και sw υπολογίζει την διεύθυνση μνήμης στον ALUOut - Προχωρεί στo State 3 για lw ήστostate5 για sw State 3 (Βήμα 4) - Εκτελείτε για lw για να φορτώσει τον MDR με τα δεδομένα μνήμης - Προχωρεί στo State 4 State 4 (Βήμα 4) - Εκτελείτε για lw για να μεταφέρει τον MDR στον κατάλληλο καταχωρητή γραφής - Επιστρέφει στo State State 5 (Βήμα 5) - Εκτελείται για sw για να αντιγράψει το περιεχόμενο του καταχωρητή A στη μνήμη - Επιστρέφει στo State (Op = 'LW') or (Op = 'SW') Memory address computation 2 ALUSrcA = ALUSrcB = ALUOp = 3 (Op = 'LW') Mem IorD = Memory access (Op = 'SW') MemWrite IorD = Memory access Memory read completion step 4 RegWrite MemtoReg = RegDst = 5 To state (Figure 5.32) 9

110 R-type Εντολές (4 βήματα / κύκλοι) From state (Αρ. Βήματος) (3) (4) State 6 (Βήμα 3) - ALUOut = A op B (op καθορίζεται από το πεδίο funct) - Προχωρεί στo State 7 State 7 (Βήμα 4) - Αποθηκεύει την έξοδο του ALU στον κατάλληλο καταχωρητή γραφής - Επιστρέφει στo State (Op = R-Type) Execution 6 ALUSrcA = ALUSrcB = ALUOp = R-type completion 7 RegDst = RegWrite MemtoReg = To state (Figure 5.32)

111 Εντολή Branch (3 βήματα / κύκλοι) (Αρ. Βήματος) (3) State 8 (Βήμα 3) - ALUOp = = A-B ALUOut περιέχει τη διεύθυνση διακλάδωσης που υπολογίστηκε στο Βήμα 2 (State ) Zero= αν A-B= - Επιστρέφει στo State 8 From state (Op = 'BEQ') ALUSrcA = ALUSrcB = ALUOp = PCWriteCond PCSource = Branch completion To state (Figure 5.32)

112 Εντολή Jump (3 βήματα / κύκλοι) (Αρ. Βήματος) (3) From state (Op = 'J') 9 Jump completion State 9 (Βήμα 3) - Αντιγράφει την διεύθυνση άλματος στον PC - Επιστρέφει στo State PCWrite PCSource = To state (Figure 5.32) 2

113 Το τελικό FSM Πόσα bits (ή flip-flops) απαιτούνται για να αναπαρασταθούν όλες οι καταστάσεις; 3

114 Το τελικό FSM Load Store R-type Branch Jump 4

115 Υλοποίηση Control logic Outputs Τι υπάρχει εδώ; Inputs PCWrite PCWriteCond IorD Mem MemWrite IRWrite MemtoReg PCSource ALUOp ALUSrcB ALUSrcA RegWrite RegDst NS3 NS2 NS NS Output Op5 Op4 Op3 Op2 Op Op Current State S3 S2 S S Next State Instruction register opcode field Input State register 5

116 Απαραίτητες λογικές συναρτήσεις Κωδικοποίηση καταστάσεων (S 3 S 2 S S ): State: (= S 3 S 2 S S ) State: (= S 3 S 2 S S ) State9: (= S 3 S 2 S S ) είναι αχρησιμοποίητες καταστάσεις Καθορισμός συναρτήσεων εξόδων (εξαρτώνται μόνο από την τρέχουσα κατάσταση): Mem = State + State3 = S 3 S 2 S S + S 3 S 2 S S = S 3 S 2 (S S ) MemWrite = State5 = S 3 S 2 S S Καθορισμός συναρτήσεων επόμενων καταστάσεων (έξοδοι flip-flop) (εξαρτώνται από την τρέχουσα κατάσταση και τα σήματα εισόδου, που είναι το opcode) NextState = State4 + State5 + State7 + State8 + State9 NextState = State NextState2 = State (Οp = lw + Op = sw ) = S 3 S 2 S S (Op 5 Op 4 Op 3 Op 2 Op Op + Op 5 Op 4 Op 3 Op 2 Op Op ) 6

117 Απαραίτητες λογικές συναρτήσεις (συν.) Καθορισμός του NS: Control logic Outputs PCWrite PCWriteCond IorD Mem MemWrite IRWrite MemtoReg PCSource ALUOp ALUSrcB ALUSrcA RegWrite RegDst Op5 Op4 Op3 Op2 Op Inputs Op Current State S3 S2 S S NS3 NS2 NS NS Next State Instruction register opcode field State register 7

118 Απαραίτητες λογικές συναρτήσεις (συν.) 8

119 Υλοποίηση με PLA Op5 PLA = Programmable Logic Array Αν επιλέξουμε μια οριζόντια ή μια κάθετη γραμμή, μπορείτε να εξηγήσετε τι αντιπροσωπεύει; Op4 Op3 Op2 Op Op S3 S2 S S PCWrite PCWriteCond IorD Mem MemWrite IRWrite MemtoReg PCSource PCSource ALUOp ALUOp ALUSrcB ALUSrcB ALUSrcA RegWrite RegDst NS3 NS2 NS NS 9

120 Υλοποίηση με PLA Op5 PLA = Programmable Logic Array Αν επιλέξουμε μια οριζόντια ή μια κάθετη γραμμή, μπορείτε να εξηγήσετε τι αντιπροσωπεύει; Op4 Op3 Op2 Op Op S3 S2 S S Μια κάθετη γραμμή καθορίζει ένα ελαχιστόρο, S 3 S 2 S S σε αυτή την περίπτωση Μια οριζόντια γραμμή καθορίζει το σήμα ελέγχου και την επόμενη κατάσταση, Mem = S 3 S 2 S S + S 3 S 2 S S PCWrite PCWriteCond IorD Mem MemWrite IRWrite MemtoReg PCSource PCSource ALUOp ALUOp ALUSrcB ALUSrcB ALUSrcA RegWrite RegDst NS3 NS2 NS NS 2

121 Υλοποίηση με ROM ROM = " Only Memory" Οι τιμές στις διάφορες θέσεις της μνήμης είναι προκαθορισμένες Μια ROM μπορεί να υλοποιήσει ένα πίνακα αληθείας Αν η διεύθυνση είναι m-bits, μπορούμε να προσπελάσουμε μέχρι και 2 m τοποθεσίες της ROM. Οι έξοδοι είναι τα περιεχόμενα (bits) της διεύθυνσης m n Είσοδοι Έξοδοι Τι τιμή έχουν το m και το n; m είναι το «ύψος» (καθορίζει τον # διευθύνσεων), και n είναι το «πλάτος» (καθορίζει το μέγεθος της λέξης δεδομένων) της ROM 2

122 Υλοποίηση με ROM (συν.) Πόσες εισόδους έχει η μονάδα ελέγχου που σχεδιάσαμε; 6 bits για opcode, 4 bits για κατάσταση = bits για τη διεύθυνση (δηλ., 2 = 24 διαφορετικές διευθύνσεις) Πόσοι έξοδοι υπάρχουν; 6 datapath-control έξοδοι, 4 bits για κατάσταση = 2 έξοδοι Η ROM είναι 2 x 2 = 2K bits (κάπως ασυνήθιστο μέγεθος! Γιατί;) Αλόγιστη σπατάλη, αφού για πολλές θέσεις οι τιμές των εξόδων είναι οι ίδιες δηλ., το opcode αγνοείται συχνά 22

123 ROM vs PLA Ο πίνακας αληθείας μπορεί να σπάσει σε δύο μέρη 4 bits καταστάσεων δίνουν 6 εξόδους, 2 4 x 6 bits για ROM bits δίνουν τα 4 bits για την επόμενη κατάσταση, 2 x 4 bits για ROM Σύνολο: 4.3K bits για ROM Το PLA είναι κατά πoλύ μικρότερο όροι (product terms) μπορούν να μοιράζονται χρειάζεται μόνο εισόδους που δίνουν ενεργοποιημένη έξοδο μπορεί να λάβει υπόψη don't cares Το μέγεθος του PLA είναι (#εισόδων #όρων) + (#εξόδων #όρων) Γιατοίδιοπαράδειγμα = (x7)+(2x7) = 5 PLA κελιά Το κάθε κελί του PLA έχει συνήθως το ίδιο μέγεθος με αυτό του κελιού της ROM (λίγο μεγαλύτερο) 23

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

Τέτοιες λειτουργίες γίνονται διαμέσου του Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: Προσκόμιση της εντολής (fetch) από τη θέση που δείχνει ο PC Ανάγνωση των περιεχομένων ενός ή δύο καταχωρητών Τέτοιες λειτουργίες γίνονται διαμέσου

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

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

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

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

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

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

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

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

Σχεδίαση μονάδας ελέγχου επεξεργαστή Σχεδίαση μονάδας ελέγχου επεξεργαστή Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 29-2 Νεκτάριος Κοζύρης nkoziris@cslab.ece.ntua.gr http://www.cslab.ece.ntua.gr/courses/comparch/ Datapath ενός

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

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

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

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

και η µονάδα ελέγχου (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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr Single Cycle Datapath http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

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

Υλοποίηση Mικροεπεξεργαστή MIPS -16 Υλοποίηση Mικροεπεξεργαστή MIPS -16 Διάδρομος Δεδομένων και Μονάδα Ελέγχου 1 Περίληψη Μνήμη RAM Εκτέλεση εντολών με πολλαπλούς κύκλους Σχεδιασμός Διαδρόμου Δεδομένων (Data Path) Καταχωρητής Εντολών (Instruction

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

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

Multi Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr Multi Cycle Datapath http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό

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

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

2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMMY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις Άσκηση 1: Διασωλήνωση

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου ΠΛΕ- 27 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου Αρης Ευθυμίου Δομή σύγχρονων υπολογιστών Κώδικας μηχανής Αρχιτεκτονικό συνόλο εντολών (InstrucDon Set Architecture ISA)

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

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

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

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

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

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη. Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης,

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

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

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

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

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 4 ο ΜΕΔ πολλαπλών κύκλων

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 4 ο ΜΕΔ πολλαπλών κύκλων Γιώργος Δημητρίου Μάθημα 4 ο ΜΕΔ πολλαπλών κύκλων Εντολή Απλού Κύκλου Μηχανής Όλες οι φάσεις του κύκλου εντολής στον ίδιο κύκλο μηχανής: Ο χρόνος από την ανάκληση μέχρι την ολοκλήρωση της εκτέλεσης (με

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

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

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

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

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

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

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

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

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

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

Σχεδίαση της Μονάδας Ελέγχου

Σχεδίαση της Μονάδας Ελέγχου ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ενότητα 5 Σχεδίαση της Μονάδας Ελέγχου Καθηγητής Αντώνης Πασχάλης 2017 Γενικές Γραμμές Σχεδίαση

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

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης. Multicycle datapath

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης. Multicycle datapath Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης lticycle path Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

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

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

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

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

Απλός επεξεργαστής (Επανάληψη) Απλός επεξεργαστής (Επανάληψη) Διάδρομος δεδομένων και μονάδα ελέγχου 4 ο κεφάλαιο Ο επεξεργαστής : Διάδρομος Δεδομένων και Έλεγχος Σε αυτό το κεφάλαιο θα μελετήσουμε την υλοποίηση του διαδρόμου δεδομένων

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

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

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

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

Pipelined Datapath, Hazards and Forwarding

Pipelined Datapath, Hazards and Forwarding Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης Pipelined Datapath, Hazards and Forwarding Άδεια Χρήσης Το παρόν εκπαιδευτικό

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

Διάλεξη 12 Καθυστερήσεις (Stalls)

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

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

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

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

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

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

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

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

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

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

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

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

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

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

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

Διάλεξη 11 Προώθηση (Forwarding)

Διάλεξη 11 Προώθηση (Forwarding) ΗΥ 3 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη Προώθηση (Forwarding) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων (HY3) Η μέχρι τώρα μικρο-αρχιτεκτονική του MIPS ID/EX PCSrc Control WB

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

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

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

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

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

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

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

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

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

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Καταχωρητές Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Καταχωρητές Παράλληλης Φόρτωσης Καταχωρητές

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

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

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

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

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

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

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

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

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) Δείγμα Τελικής Εξέτασης στο ΗΜΥ213 Διδάσκοντας: Γιώργος Ζάγγουλος Οδηγίες Διαβάστε Προσεκτικά! Αυτή η εξέταση γίνεται με

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly Αρης Ευθυμίου Το σημερινό μάθημα! Σύνταξη εντολών! Θέματα σχετικά με τη προσπέλαση, οργάνωση μνήμης διευθύνση για κάθε byte διευθύνσεις λέξεων

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

26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ

26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2009 Καταχωρητές Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Καταχωρητές Παράλληλης

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

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

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

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

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

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

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

ΗΜΥ 210: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2008

ΗΜΥ 210: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2008 ΗΜΥ-211: Εργαστήριο Σχεδιασμού Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2009 Ακολουθιακά Κυκλώματα: Μανδαλωτές (Latches), Flip-FlopsFlops και Μετρητές Ριπής Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers)

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers) ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers) ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Επίκουρος Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy) Περίληψη q Καταχωρητές Παράλληλης

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

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

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

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

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Κεφάλαιο 7 i: Καταχωρητές Περίληψη Καταχωρητές Παράλληλης Φόρτωσης Καταχωρητές Ολίσθησης Σειριακή Φόρτωση Σειριακή Ολίσθηση Καταχωρητές Ολίσθησης Παράλληλης Φόρτωσης

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

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

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

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

Ολοκληρωμένα Κυκλώματα - Φθινόπωρο 2014 Γ. Δημητρακόπουλος. Εργαστηριακή άσκηση 2

Ολοκληρωμένα Κυκλώματα - Φθινόπωρο 2014 Γ. Δημητρακόπουλος. Εργαστηριακή άσκηση 2 Ολοκληρωμένα Κυκλώματα - Φθινόπωρο 2014 Γ. Δημητρακόπουλος Εργαστηριακή άσκηση 2 Σκοπός αυτής της εργαστηριακής άσκησης είναι να σας θυμίσει (ή να σας δείξει ανάλογα με το βαθμό εξοικίωσης σας) τον τρόπο

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

Πράξεις με δυαδικούς αριθμούς

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Μηχανές Πεπερασμένων Καταστάσεων Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής ΤΕ

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 4 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 4 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων Γιώργος ηµητρίου Μάθηµα 4 ο Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων Συνολική οµή ΚΜΕ Μία ή περισσότερες µονάδες αριθµητικών και λογικών πράξεων Μονάδα ολίσθησης Φάκελος

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

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (αριθμητικές ) http://di.ionio.gr/~mistral/tp/csintro/ Αριθμοί Πράξεις με δυαδικούς αριθμούς

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

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

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

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 18: Διαδικασία Σχεδίασης Ψηφιακών Συστηµάτων - Επανάληψη

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 18: Διαδικασία Σχεδίασης Ψηφιακών Συστηµάτων - Επανάληψη ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 18: Διαδικασία Σχεδίασης Ψηφιακών Συστηµάτων - Επανάληψη ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Επίκουρος Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy) Περίληψη

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) Σάββατο, 26 Νοεμβρίου 2016 ΔΙΑΡΚΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 120 ΛΕΠΤΑ 1) Υλοποίηση

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

Διοχέτευση (Pipeline)

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

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ 1.1 Εισαγωγή...11 1.2 Τα κύρια αριθμητικά Συστήματα...12 1.3 Μετατροπή αριθμών μεταξύ των αριθμητικών συστημάτων...13 1.3.1 Μετατροπή ακέραιων

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

i Το τρανζίστορ αυτό είναι τύπου NMOS. Υπάρχει και το συμπληρωματικό PMOS. ; Τι συμβαίνει στο τρανζίστορ PMOS; Το τρανζίστορ MOS(FET)

i Το τρανζίστορ αυτό είναι τύπου NMOS. Υπάρχει και το συμπληρωματικό PMOS. ; Τι συμβαίνει στο τρανζίστορ PMOS; Το τρανζίστορ MOS(FET) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 25-6 Το τρανζίστορ MOS(FET) πύλη (gate) Ψηφιακή και Σχεδίαση πηγή (source) καταβόθρα (drai) (σχεδίαση συνδυαστικών κυκλωμάτων) http://di.ioio.gr/~mistral/tp/comparch/

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

Κεφάλαιο 6 Βελτίωση Απόδοσης με Διασωλήνωση (Enhancing Performance with Pipelining)

Κεφάλαιο 6 Βελτίωση Απόδοσης με Διασωλήνωση (Enhancing Performance with Pipelining) Κεφάλαιο 6 Βελτίωση Απόδοσης με Διασωλήνωση (Enhancing Performance with Pipelining) 1 Διασωλήνωση (Pipelining) Διασωληνώση: επικαλυπτόμενη εκτέλεση πολλαπλών εντολών σε ένα κύκλο του ρολογιού, όπως σε

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

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ.

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ. ΤΕΙ ΚΡΗΤΗΣ / ΠΑΡΑΡΤΗΜΑ ΧΑΝΙΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ mode mode(0) ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εµµανουήλ Καπαρού Επιβλέπων : ρ Μηχ Νικόλαος

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

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

Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή. 30 min κάθε «φάση»

Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή. 30 min κάθε «φάση» Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή 1. Πλυντήριο 2. Στεγνωτήριο 3. Δίπλωμα 4. αποθήκευση Σειριακή προσέγγιση για 4 φορτία = 8h 30 min κάθε «φάση» Pipelined προσέγγιση για 4 φορτία = 3.5h Το

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

Ελίνα Μακρή

Ελίνα Μακρή Ελίνα Μακρή elmak@unipi.gr Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D,

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

Μικροαρχιτεκτονική του LC3

Μικροαρχιτεκτονική του LC3 ΆδειαΧρήσης Τοπαρόνεκπαιδευτικόυλικόυπόκειταισε άδειεςχρήσηςcrea vecommons. Γιαεκπαιδευτικόυλικό,όπωςεικόνες,που υπόκειταισεάδειαχρήσηςάλλουτύπου, αυτήπρέπεινααναφέρεταιρητώς. Μικροαρχιτεκτονική του LC3

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

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 3 : Μια άποψη του κορυφαίου επιπέδου λειτουργίας και διασύνδεσης του υπολογιστή Καρβούνης Ευάγγελος Η έννοια

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

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

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

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

Έχοντας κατανοήσει την ύλη του 1ου μαθήματος ( Εισαγωγή στην Αρχιτεκτονική Η/Υ ) θα πρέπει να μπορείτε να απαντήσετε στις παρακάτω ερωτήσεις:

Έχοντας κατανοήσει την ύλη του 1ου μαθήματος ( Εισαγωγή στην Αρχιτεκτονική Η/Υ ) θα πρέπει να μπορείτε να απαντήσετε στις παρακάτω ερωτήσεις: Ερωτήσεις αυτοαξιολόγησης 1 ου μαθήματος Έχοντας κατανοήσει την ύλη του 1ου μαθήματος ( Εισαγωγή στην Αρχιτεκτονική Η/Υ ) θα πρέπει να μπορείτε να απαντήσετε στις παρακάτω ερωτήσεις: 1. Ποια η σχέση της

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

Ψηφιακή Σχεδίαση Ενότητα 10:

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

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

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

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

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

Κεφάλαιο 3. Αριθμητική Υπολογιστών Review. Hardware implementation of simple ALU Multiply/Divide Real Numbers

Κεφάλαιο 3. Αριθμητική Υπολογιστών Review. Hardware implementation of simple ALU Multiply/Divide Real Numbers Κεφάλαιο 3 Αριθμητική Υπολογιστών Review signed numbers, 2 s complement, hex/dec/bin, add/subtract, logical Hardware implementation of simple ALU Multiply/Divide Real Numbers 1 Προσημασμένοι και Απρόσημοι

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

Σχεδιασμός Ψηφιακών Συστημάτων

Σχεδιασμός Ψηφιακών Συστημάτων ΗΜΥ 2: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 27 Νοε-7 ΗΜΥ-2: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 27 Ακολουθιακά Κυκλώματα: Μανδαλωτές (Latches) και Flip-Flops Flops Διδάσκουσα:

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

Κεφάλαιο 4. Ο επεξεργαστής

Κεφάλαιο 4. Ο επεξεργαστής Κεφάλαιο 4 Ο επεξεργαστής Εισαγωγή Παράγοντες απόδοσης της CPU Πλήθος εντολών Καθορίζεται από την αρχιτεκτονική συνόλου εντολών και το μεταγλωττιστή CPI και Χρόνος κύκλου Καθορίζεται από το υλικό της CPU

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

Chapter 3 Αριθμητική Υπολογιστών

Chapter 3 Αριθμητική Υπολογιστών Chapter 3 Αριθμητική Υπολογιστών Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι. Κρήτης. Τελευταία

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Y Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3 = &A[0] = 0x0001080 &A[8]

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

Εντολές του MIPS (2)

Εντολές του MIPS (2) ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο Διάλεξη 8 η : Μηχανές Πεπερασμένων Κaταστάσεων σε FPGAs

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο Διάλεξη 8 η : Μηχανές Πεπερασμένων Κaταστάσεων σε FPGAs ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 8 η :

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

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

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

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

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

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

Εργαστήριο Ψηφιακών Κυκλωμάτων

Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Μηχανές Πεπερασμένων Καταστάσεων Χειμερινό Εξάμηνο 2009 2010 ΗΥ220 University of Crete 1 Τι είναι οι FSMs? 10 FSM Κερματοδέκτης open Μηχανισμός Αυτόματου 20 Απελευθέρωσης

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

Βασικές Σχεδίασης Υπολογιστών Αριθμητική Μονάδα Επεξεργασίας Κεφάλαιο 10

Βασικές Σχεδίασης Υπολογιστών Αριθμητική Μονάδα Επεξεργασίας Κεφάλαιο 10 Βασικές Σχεδίασης Υπολογιστών Αριθμητική Μονάδα Επεξεργασίας Κεφάλαιο 10 Chapter 10 Part 1 1 Περιεχόμενο Εισαγωγή Παράδειγμα Διαδρομής Δεδομένων Αριθμητική Λογική Μονάδα (Arithmetic Logic Uit - ALU) Μονάδα

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

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

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline) Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Μηχανές Πεπερασμένων Καταστάσεων ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 1 FSMs Οι μηχανές πεπερασμένων καταστάσεων Finite

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

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

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

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

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

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις Άσκηση 1: Σωστό/Λάθος

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

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

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

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

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 1

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 1 ΗΜΥ-211: Εργαστήριο Σχεδιασμού Ψηφιακών Συστημάτων Ακολουθιακά Κυκλώματα (συν.) Κυκλώματα που Κυκλώματα που αποθηκεύουν εξετάσαμε μέχρι τώρα πληροφορίες Ακολουθιακά Κυκλώματα: Μανδαλωτές (Latches), Flip-FlopsFlops

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Ανάλυση Ακολουθιακών Κυκλωμάτων 1

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Ανάλυση Ακολουθιακών Κυκλωμάτων 1 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Ανάλυση Ακολουθιακών Κυκλωμάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Ανάλυση Ακολουθιακών Κυκλωμάτων Ανάλυση: Ο καθορισμός μιας κατάλληλης περιγραφής η οποία επιδεικνύει

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

Σχεδιασμός Ψηφιακών Συστημάτων

Σχεδιασμός Ψηφιακών Συστημάτων ΗΜΥ 2: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 28 Νοε-8 ΗΜΥ-2: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 28 Ανάλυση Ακολουθιακών Κυκλωμάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου

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