Σχεδίαση υψηλών επιδόσεων pipelining παράλληλη επεξεργασία

Σχετικά έγγραφα
HY220 Pipelines and FSMs Χειμεριν Χειμερι ό Εξ άμη Εξ ν άμη ο

Xρονισμός ψηφιακών κυκλωμάτων

Κυκλώματα αποθήκευσης με ρολόι

CLK CLK D Q D Q. Όταν η είσοδος αλλάζει μέσα D στο παράθυρο δειγματοληψίας Q η έξοδος μπορεί να γίνει

Pipelining και Παράλληλη Επεξεργασία

Χρονισμός ψηφιακών κυκλωμάτων

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

HY330 Ψηφιακά Κυκλώματα - Εισαγωγή στα Συστήματα VLSI. 1 ΗΥ330 - Διάλεξη 7η - Ακολουθιακά Κυκλώματα

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

Ολοκληρωμένα Κυκλώματα

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Καταχωρητές και Μετρητές 2. Επιμέλεια Διαφανειών: Δ.

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

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

Κεφάλαιο 10 ο. Γ. Τσιατούχας. VLSI Systems and Computer Architecture Lab. Ακολουθιακή Λογική 2

Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές. Χειμερινό Εξάμηνο

Μετρητής Ριπής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 9 ης. εργαστηριακής άσκησης: ΑΦΡΟΔΙΤΗ ΤΟΥΦΑ Α.Μ.:

Χρονική ανάλυση και χρονισμός ψηφιακών κυκλωμάτων

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

Κεφάλαιο 7 ο. Γ. Τσιατούχας. VLSI Technology and Computer Architecture Lab. Ακολουθιακή Λογική 2

Θέματα χρονισμού σε φλιπ-φλοπ και κυκλώματα VLSI

Ελίνα Μακρή

Δημοκρίτειο Πανεπιστήμιο Θράκης Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών. Συστήματα VLSI. Πρόοδος Άνοιξη 2018

What we should learn. Συστήματα VLSI 2

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Ακολουθιακή Λογική. Επιμέλεια Διαφανειών: Δ.

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

7 η διάλεξη Ακολουθιακά Κυκλώματα

Σχεδίαση CMOS Ψηφιακών Ολοκληρωμένων Κυκλωμάτων

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

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

Ενότητα ΑΡΧΕΣ ΑΚΟΛΟΥΘΙΑΚΗΣ ΛΟΓΙΚΗΣ LATCHES & FLIP-FLOPS

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

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

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 2ο ΚΑΤΑΧΩΡΗΤΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

HY333 Εργαστηριακή Σχεδίαση Ψηφιακών Κυκλωμάτων με εργαλεία Ηλεκτρονικού Σχεδιαστικού Αυτοματισμού.

Χριστοφορίδης Ιωάννης Ραφαήλ 368

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

Στο σχήμα 3.1 δίνεται μια μονάδα επεξεργασίας δεδομένων σταθερής υποδιαστολής που εκτελεί οποιαδήποτε από τις κάτωθι εντολές σε ένα κύκλο ρολογιού.

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Ελίνα Μακρή

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

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

Ακολουθιακό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται από τις τιμές εισόδου ΚΑΙ από την προηγούμενη κατάσταση του κυκλώματος

Ακολουθιακό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται από τις τιμές εισόδου ΚΑΙ από την προηγούμενη κατάσταση του κυκλώματος

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

Καθυστέρηση στατικών πυλών CMOS

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

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

Σύγχρονα ακολουθιακά κυκλώματα. URL:

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 9: Εισαγωγή στην Ομοχειρία (Pipelining - Διοχέτευση) Μανόλης Γ.Η.

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

ΗΥ220: Εργαστήριο σχεδίασης ψηφιακών κυκλωμάτων Χριστόφορος Κάχρης

Τεχνικές σχεδιασμού μονοπατιών ολίσθησης

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

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

Σχεδίαση κυκλωμάτων ακολουθιακής λογικής

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

ΑΣΚΗΣΗ 10 ΣΥΓΧΡΟΝΟΙ ΑΠΑΡΙΘΜΗΤΕΣ

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

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

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

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

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

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης Θέμα 1ο (3 μονάδες)

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

Οργάνωση της φυσικής δομής του ολοκληρωμένου κυκλώματος

Αποκωδικοποιητές Μνημών

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

7.1 Θεωρητική εισαγωγή

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

ΑΣΚΗΣΗ 8 ΚΑΤΑΧΩΡΗΤΕΣ - REGISTERS

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

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ (Τ.Ε.Ι.) ΚΡΗΤΗΣ Τµήµα Εφαρµοσµένης Πληροφορικής & Πολυµέσων. Ψηφιακή Σχεδίαση. Κεφάλαιο 5: Σύγχρονη Ακολουθιακή

Α. ΣΚΟΔΡΑΣ ΠΛΗ21 ΟΣΣ#2. 14 Δεκ 2008 ΠΑΤΡΑ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ 2008 Α. ΣΚΟΔΡΑΣ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ ΜΕΛΕΤΗΣ

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

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

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

8.1 Θεωρητική εισαγωγή

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

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Μετρητής Ριπής (Ripple Counter) Μετρητές (Counters) Μετρητής Ριπής (συν.

Επιβεβαίωση ορθής λειτουργίας απλών ψηφιακών κυκλωμάτων

7 η Θεµατική Ενότητα : Καταχωρητές, Μετρητές και Μονάδες Μνήµης

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

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

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

Μικροηλεκτρονική - VLSI

Κ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ ΠΑΤΡΑ

Κεφάλαιο 6. Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα

9. ΚΑΤΑΧΩΡΗΤΕΣ (REGISTERS)

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

Transcript:

Σχεδίαση υψηλών επιδόσεων pipelining παράλληλη επεξεργασία Γιώργος Δημητρακόπουλος Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Φθινόπωρο 2008 ΗΥ220 1

Περιεχόμενα μαθήματος Ρυθμός εκτέλεσης εργασιών (throughput) Καθυστέρηση ολοκλήρωσης μίας εργασίας (latency) Άυξηση απόδοσης Παράλληλες εργασίες pipeline parallel processing Σωστή τοποθέτηση pipeline καταχωρητών Φθινόπωρο 2008 ΗΥ220 2

Πόση δουλειά εκτελούμε Εκτελούμε μία εργασία κάθε Tc (ως εργασία ορίζουμε τη λειτουργία της συνδυαστικής λογική CL) Πως μπορούμε να μειώσουμε την καθυστέρηση; Πως θα μπορούσαμε στον ίδιο χρόνο να ολοκληρώνουμε περισσότερες εργασίες; CLK CLK Q1 C L D2 (a) R1 R2 T c CLK Q1 D2 (b) T c t pcq + t pd + t setup Φθινόπωρο 2008 ΗΥ220 3

Απάντηση Εκτελώντας εργασίες παράλληλα Πολλαπλασιάζοντας τις μονάδες μας επιτρέποντας να εκτελούν πολλές εργασίες στον ίδιο χρόνο Παράλληλη επεξεργασία Χωρίζοντας την εργασία σε πολλά επιμέρους στάδια και εκτελώντας κάθενα από τα μικρά στάδια παράλληλα Η δουλεία προχωραεί σαν γραμμή συναρμολόγησης εργοστασίου (Την ώρα που μπαίνουν οι πόρτες σε ένα αυτοκίνητο, εκείνη τη στιγμή μπαίνουν οι ρόδες σε αυτό που είχε βγει από το εργοστάσιο λίγο πιο πρίν κοκ...) Pipelining Φθινόπωρο 2008 ΗΥ220 4

Παράδειγμα Η εργασία που θέλουμε να εκτελέσουμε είναι να ψήσουμε ΠΟΛΛΑ κουλουράκια Χρειαζόμαστε 5 λεπτά για να πλάσουμε όσα χωράνε στο ταψί και 15 λεπτά για να τα ψήσουμε Αν τα κάναμε το ένα μετά το άλλο σειριακά θα βγάζαμε ένα ταψί κουλουράκια κάθε 20λεπτά Το πρώτο στο λεπτό 20 το δεύτερο στο 40 κ.ο.κ... Πως θα το κάνουμε πιο γρήγορα? Πρέπει να κάνουμε κάποιες δουλείες παράλληλα Φθινόπωρο 2008 ΗΥ220 5

Παράλληλες εργασίας Λύση 1η: Αποφασίζουμε να χρησιμοποιήσουμε τις ικανότητες και το φούρνο ενός φίλου Στον ίδιο χρόνο θα έχουμε διπλάσιο αριθμό από κουλουράκια εφόσον θα έχουμε 2 ταψιά έτοιμα κάθε 20 λεπτά first tray 0 5 10 15 20 25 30 35 40 45 50 Spatial Parallelism Tray 1 Tray 2 Tray 3 Tray 4 Ben 1 Ben 1 Alyssa 1 Alyssa 1 Ben 2 Ben 2 Alyssa 2 Alyssa 2 Time Roll Bake Legend Φθινόπωρο 2008 ΗΥ220 6

Pipeline Λύση 2η: Αποφασίζουμε να αγοράσουμε ένα δεύτερο ταψί και να μην ενοχλήσουμε κανένα φίλο μας Την ώρα που το ένα ταψί είναι στο φούρνο εμείς δεν καθόμαστε αλλά γεμίζουμε το άλλο με το νέο σετ από κουλουράκια Έτσι την ώρα που θα ετοιμαστεί το πρώτο ταψί εμείς χωρίς καθυστέρηση ρίχνουμε στο φούρνο το δεύτερο το οποίο θα είναι έτοιμο στο 35ο λεπτό (στο 20ο μπήκε + 15 λεπτά το ψήσιμο) αντί στο 40ο. Το επόμενο θα είναι έτοιμο στο 50ο λεπτό Σε κάθε περίπτωση εμείς δεν περιμένουμε και αρχίζουμε να πλάθουμε για να γεμίσουμε το νέο ταψί μόλις βγει κάποιο από το φούρνο first tray 0 5 10 15 20 25 30 35 40 45 50 Temporal Parallelism Tray 1 Tray 2 Tray 3 Ben 1 Ben 1 Ben 2 Ben 2 Ben 3 Ben 3 Time Φθινόπωρο 2008 ΗΥ220 7

Latency Throughput ορισμοί Throughput ενός συστήματος είναι ο αριθμός των εργασιών που ένα σύστημα μπορεί να διεκπεραιώσει στη μονάδα τού χρόνου. Για παράδειγμα αν έχουμε ένα πολλαπλασιαστή ο οποίος εκτελεί ένα πολλαπλασιασμό κάθε 10 nsec τότε λέμε πως το throughput του πολλαπλασιαστή είναι 100 Megaλειτουργίες το δευτερόλεπτο (ΜΟps). Latency ενός συστήματος είναι ο χρόνος που απαιτείται ώστε το σύστημα να ολοκληρώσει μία εργασία. Για παράδειγμα στον πολλαπλασιαστή ένας πολλαπλασιασμός ολοκληρώνεται μετά από 10nsec από τη στιγμή που οι είσοδοι στον πολλαπλασιαστή έχουν σταθεροποιηθεί. Επομένως το latency του πολλαπλασιασμού είναι 10nsec. Φθινόπωρο 2008 ΗΥ220 8

Latency throughput ψησίματος Ψήνουμε τα κουλουράκια μόνοι μας Latency: 20 λεπτά για το κάθε ταψί (χρόνος προετοιμασίας + ψησίματος) Τhroughput: 1 ταψί κάθε 20 λεπτά. Αν το ταψί είχε 50 κουλουράκια τότε ο ρυθμός παραγωγής είναι 150 κουλουράκια την ώρα ή περίπου 0,042 κουλουράκια το δευτερόλεπτο Χρησιμοποιούμε δύο φούρνους και δύο ταψιά (παράλληλη επεξεργασία) Latency: 20 λεπτά για το κάθε ταψί (χρόνος προετοιμασίας + ψησίματος) Τhroughput: 2 ταξιά κάθε 20 λεπτά. Αν το ταψί είχε 50 κουλουράκια τότε ο ρυθμός παραγωγής είναι 300 κουλουράκια την ώρα ή περίπου 0,084 κουλουράκια το δευτερόλεπτο Χρησιμοποιούμε 2 ταψιά και 1 φούρνο ενώ επικαλύπτουμε χρονικά την προετοιμασία με το ψήσιμο Latency: 20 λεπτά για το κάθε ταψί (χρόνος προετοιμασίας + ψησίματος0) Throughput: (αφού βγάλουμε το πρώτο ταψί)1 ταψί κάθε 15 λεπτά. Αν το ταψί είχε 50 κουλουράκια τότε ο ρυθμός παραγωγής είναι 200 κουλουράκια την ώρα ή περίπου 0,055 κουλουράκια το δευτερόλεπτο Φθινόπωρο 2008 ΗΥ220 9

Latency throughput ψησίματος Ψήνουμε τα κουλουράκια μόνοι μας Latency: 20 λεπτά για το κάθε ταψί (χρόνος προετοιμασίας + ψησίματος) Τhroughput: 1 ταψί κάθε 20 λεπτά. Αν το ταψί είχε 50 κουλουράκια τότε ο ρυθμός παραγωγής είναι 150 κουλουράκια την ώρα ή περίπου 0,042 κουλουράκια το δευτερόλεπτο Χρησιμοποιούμε δύο φούρνους και δύο ταψιά (παράλληλη επεξεργασία) Latency: 20 λεπτά για το κάθε ταψί (χρόνος προετοιμασίας + ψησίματος) Τhroughput: 2 ταξιά κάθε 20 λεπτά. Αν το ταψί είχε 50 κουλουράκια τότε ο ρυθμός παραγωγής είναι 300 κουλουράκια την ώρα ή περίπου 0,084 κουλουράκια το δευτερόλεπτο Χρησιμοποιούμε 2 ταψιά και 1 φούρνο ενώ επικαλύπτουμε χρονικά την προετοιμασία με το ψήσιμο Latency: 20 λεπτά για το κάθε ταψί (χρόνος προετοιμασίας + ψησίματος0) Throughput: (αφού βγάλουμε το πρώτο latency)1 ταψί κάθε 15 λεπτά. Αν το ταψί είχε 50 κουλουράκια τότε ο ρυθμός παραγωγής είναι 200 κουλουράκια την ώρα ή περίπου 0,055 κουλουράκια το δευτερόλεπτο Φθινόπωρο 2008 ΗΥ220 10

Αρχικό κύκλωμα a[n] x[i] = a[i]*b[i] + c[i]+1 Tc b[n] c[n] Input Regs +1 + Η περίοδος Τc ανάλογη της καθυστέρησης ενός πολλαπλασιαστή και ενός αθροιστή + επιβάρυνση από καταχωρητές Τc > Tdcq + Tmult + Tadd + Tsetup x[n] Output Reg Input Regs Output Reg a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7] x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] Latency = Tc Throughput = 1/Tc Πως μπορούμε να βελτιώσουμε τα χαρακτηριστικά του κυκλώματος pipelining parallel processing Φθινόπωρο 2008 ΗΥ220 11

Pipelined λύση T A B C D pipeline καταχωρητές T/4 T/4 T/4 T/4 A B C D Χώρισε την εργασία που εκτελείτε σε επιμέρους μικρότερες υπο-εργασίες Κάθε υπο-εργασία περιμένουμε να χρειάζεται αρκετά λιγότερο χρόνο από τη συνολική εργασία. Στην ιδανική περίπτωση αν η συνολική εργασία απαιτούσε Τ μονάδες χρόνου θα θέλαμε κάθε υποεργασία (έστω Ν στο σύνολο) να απαιτεί Τ/Ν μονάδες χρόνου Διαχώρισε τις υπο-εργασίες με pipeline καταχωρητές. Κάθε τέτοιος καταχωρητής μεταξύ δύο υπο-εργασιών Α και Β αποθηκεύει το αποτέλεσμα του Α και το τροφοδοτεί στον επόμενο κύκλο στο Β. Έτσι την ώρα που μια δουλειά ολοκληρώνεται στο στάδιο Β η επόμενη επεξεργάζεται στο στάδιο Α. Η δουλειά των υπο-εργασιών επικαλύπτεται χρονικά Στην ιδανική περίπτωση το latency δεν αλλάζει αφού τώρα απαιτούνται N κύκλοι για ολοκληρωθεί η συνολική εργασία ενώ η διάρκεια του κάθε κύκλου αρκεί να είναι Τ/Ν όσο η καθυστέρηση της κάθε υπο-εργασίας. Το throughput έχει γίνει N φορές καλύτερο γιατί λόγω της επικάλυψης των υποεργασιών Φθινόπωρο 2008 ΗΥ220 12

Ροή δεδομένων στο pipeline t t+1 t+2 t+3 t+4 t+5 t+6 Είσοδος 1 A B C D Είσοδος 2 A B C D Είσοδος 3 A B C D Είσοδος 4 A B C D Επικαλύπτουμε χρονικά τη λειτουργία των 4 υπο-εργασιών σε 4 διαφορετικές εισόδους Στο κύκλο t+3 το στάδιο D επεξεργάζεται την είσοδο 1, το στάδιο C την είσοδο 2, το στάδιο B την είσοδο 3 και το στάδιο A την είσοδο 4 Από τον κύκλο t+4 και μετά βλέπουμε να ολοκληρώνεται η επεξεργασία μίας νέας εισόδου κάθε κύκλο ρολογιού Λόγω των pipeline καταχωρητών ο νέος κύκλος ίσος με Τ/4 Τhroughput = 1 εργασία κάθε T/4 δηλαδή 4/T εργασίες στη μονάδα του χρόνου Φθινόπωρο 2008 ΗΥ220 13

Παράδειγμα pipeline a[n] b[n] Tc Αρχική εκδοχή c[n] +1 Pipeline καταχωρητές + Output Reg a[0], b[0], c[0] a[1], b[1], c[1] a[2], b[2], c[2] a[3], b[3], c[3] x[0] x[1] x[2] x[3] ~Tc/2 Pipelined εκδοχή Λόγω των pipeline καταχωρητών η μικρότερη περίοδος ρολογιού ελαττώθηκε σε TdcQ + Tmult + Tsetup ~ Tc(old)/2 Την ώρα που ο αθροιστής υπολογίζει το x[1] ο πολλαπλασιαστής και ο αυξήτης του προηγούμενου σταδίου υπολογίζουν τα α[2]*b[2] και c[2]+1 Επικάλυψη των λειτουργιών στο χρόνο a[0] a[1] a[2] a[3] a[0]*b[0] a[1]*b[1] a[2]*b[2] a[3]*b[3] c[0]+1 c[1]+1 c[2]+1 c[3]+1 x[0] x[1] x[2] x[3] Φθινόπωρο 2008 ΗΥ220 14

Επιβάρυνση από τους επιπλέον καταχωρητές a[n] ΤMULT = 5 ns TADD = 2 ns TINC = 1 ns b[n] c[n] +1 + Output Reg TSETUP= 0.4 ns TDCQ = 0.3ns Pipeline καταχωρητές To χειρότερο μονοπάτι στο πρώτο στάδιο ΤCYCLE > TDCQ + TMULT + TSETUP = 0.3 + 5 + 0.4 = 5.7 ns Επιβάρυνση καταχωρητών = Χρόνος λόγω καταχωρητών / Συνολικός χρόνος = 0.7 ns / 5.7 = 12% Στην αρχική εκδοχή (χωρίς pipeline καταχωρητές) Συνολικός χρόνος = 7.7 ns (TDCQ + TMULT + ΤADD +TSETUP ) Επιβάρυνση καταχωρητών εισόδου/εξόδου = 0.7/7.7 = 9% H προσθήκη επιπλέον σταδίων καταχωρητών δεν είναι πάντα δωρεάν Φθινόπωρο 2008 ΗΥ220 15

Τοποθέτηση pipeline καταχωρητών X i A A(X i ) C C( A(X i ), B(X i, Y i ) ) C( A(X i-1 ), B(X i-1, Y i-1 ) ) B Αρχικό κύκλωμα Y i B(X i, Y i ) A(X i ) A(X i-1 ) C( A(X i-1 ), B(X i, Y i-1 ) ) X i A C ΛΑΘΟΣ!!! Y i Y i-1 B Είσοδοι που ανήκουν σε διαφορετικούς κύκλους μπλέκονται B(X i, Y i-1 ) Αφελής τοποθέτηση καταχωρητών Φθινόπωρο 2008 ΗΥ220 16

Τοποθέτηση καταχωρητών: Πού είναι το λάθος; X i A C 2 καταχωρητές 1 καταχωρητή 2 καταχωρητές Y i B Διαφορετικά μονοπάτια συναντούν διαφορετικό πλήθος από καταχωρητές στη διαδρομή τους προς την έξοδο Μια σωστά pipelined λύση αυτό πρέπει να το απαγορεύει Φθινόπωρο 2008 ΗΥ220 17

Ορθή τοποθέτηση pipeline καταχωρητών Ζωγραφίστε το κύκλωμα σας επίπεδο-προς-επίπεδο Aν θέλετε να διαχωρίσετε με pipeline καταχωρητές τα επίπεδα k και k-1 τότε τοποθετήστε καταχωρητές σε ΟΛΕΣ τις γραμμές που πηγαίνουν μπροστά (από το επίπεδο k-1 στο k) Στο τέλος όλα τα μονοπάτια από οποιαδήποτε είσοδο σε οποιαδήποτε έξοδο πρέπει να διέρχονται από το ίδιο πλήθος καταχωρητών Σκοπός σας πάντα πρέπει να είναι η απομόνωση του κομματιού με τη μεγαλύτερη καθυστέρηση Oι μπλε γραμμές δείχνουν τα σωστά σημεία για την τοποθέτηση pipeline καταχωρητών Φθινόπωρο 2008 ΗΥ220 18

Παραδείγματα X i A 5ns C 4ns X i A 5ns C 4ns Y i B 3ns Y i B 3ns Worst case delay = 7ns + FF-overhead Latency=2 cycles Throughput= 1/7ns Worst case delay = 7ns + FF-overhead Latency=2 cycles Throughput= 1/7ns X i A 5ns C 4ns X i A 5ns C 4ns Y i B 3ns Y i B 3ns Worst case delay = 8ns + FF-overhead Latency=2 cycles Throughput= 1/8ns Worst case delay = 5ns + FF-overhead Latency=3 cycles Throughput= 1/5ns Φθινόπωρο 2008 ΗΥ220 19

Περαιτέρω βελτίωση της απόδοσης X i A 5ns C 4ns Y i B 3ns Διάσπαση της συνδιαστικής λογικής σε επιμέρους pipeline σταδια Προσοχή!!! Μπορεί να χρειάζονται και επιπλέον καταχωρητές σε άλλους κόμβους ώστε να εξισσοροπηθεί η καθυστέρηση από την είσοδο προς την έξοδος Οταν αυτό δε μπορεί να συμβεί...επικάλυψη λειτουργιών με χρήση παράλληλων μονάδων Φθινόπωρο 2008 ΗΥ220 20

Παράλληλες μονάδες με χρονική επικάλυψη Μπορούμε να «εξομοιώσουμε» την pipelined λειτουργία ενός αργού κυκλώματος. Αν για παράδειγμα η χειρότερη καθυστέρηση για μια συνδιαστική λογική είναι T και εμείς θέλουμε όλο το κύκλωμα να λειτουργεί σε Τ/2 μπορούμε να το πετύχουμε χωρίς να την σπασουμε σε pipeline στάδια. Χρησιμοποιούμε δύο αντίγραφα της ίδιας μονάδας και λειτουργούμε το καθένα διαδοχικά κάθε δύο κύκλους ρολογιού (2 x T/2 = T). Έτσι προλαβαίνει να ολοκληρώσει την εργασία της και εμείς παίρνουμε μία έξοδο κάθε Τ/2 (τη μία απο τη μία μονάδα και την άλλη από τη δεύτερη μονάδα) X i T nsec R1 1 R0 T nsec 0 Enable Clock Φθινόπωρο 2008 ΗΥ220 21

Παράλληλες μονάδες με χρονική επικάλυψη - παράδειγμα H πάνω και η κάτω μονάδα ενεργοποιούνται στις μονές και στις ζυγές ακμές του ρολογιού εναλλάξ Στην έξοδος ένα αποτέλεσμα κάθε Τ/2 nsec (θεωρώντας τα flip-flop ιδανικά) παρ ότι κάθε μονάδα απαιτεί Τ nsec για να ολοκληρώσει τον υπολογισμό Συμπεριφορά ίδια με αυτή του pipeline Clock Enable R1 R0 Enable X i T/2 nsec R1 [0] Clock T nsec R1 1 R0 T nsec 0 T nsec R1 [1] R0 [-1] R0 [0] R0 [1] R1 [-1] R0 [-1] R1 [0] R0 [0] R1 [1] Φθινόπωρο 2008 ΗΥ220 22

Περίληψη Η βελτίωση της απόδοσης (Throughput) απαιτεί το χωρισμό του κυκλώματος σε pipeline στάδια Χώρισε το πρόβλημα σε υπο-προβλήματα. Αντιμετώπισε τη λύση του καθενός σαν τη γραμμή παραγωγής ενός εργοστασίου. Το αποτέλεσμα κάθε υπο-μονάδας περνάει στην επόμενη ενώ συνεχώς καταφθάνουν νέα εξαρτήματα Η χρονική επικάλυψη των υπο-προβλημάτων βελτιώνει το throughput H υλοποίηση του pipeline απαιτεί τη χρήση επιπλέον καταχωρητών Η τοποθέτηση τους απαιτεί προσοχή ώστε όλα τα μονοπάτια από την είσοδο στην έξοδο να διέρχονται από τον ίδιο αριθμό από καταχωρητές Η λειτουργία του pipeline μπορεί να προσομοιωθεί με τη χρήση παράλληλων μονάδων που λειτουργούν ενναλακτικά Φθινόπωρο 2008 ΗΥ220 23