Βασικές αρχές συγχρονισμού Γιώργος Δημητρακόπουλος Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Φθινόπωρο 2008 ΗΥ220 1
Περιεχόμενα μαθήματος Δειγματοληψία ασύγχρονων σημάτων ή επικοινωνία μεταξύ διαφορετικών περιοχών ρολογιού Πότε τα ακολουθιακά στοιχεία μπορεί να μη λειτουργήσουν σωστά; Metastability και χρόνος αποκατάστασης Μονάδες συγχρονισμού και μέσος χρόνος μεταξύ λανθασμένων αποφάσεων Συγχρονισμός δεδομένων πολλών δυαδικών ψηφίων Φθινόπωρο 2008 ΗΥ220 2
Τι είναι ο συγχρονισμός Φθινόπωρο 2008 ΗΥ220 3
Τι συμβαίνει αν δε σεβαστούμε τους περιορισμούς setup και hold (πλήρως ασύγχρονη είσοδος) t setup t hold bu utt ton CLK D Q CLK t aperture D Q Cas se I Όταν η είσοδος αλλάζει μέσα D στο παράθυρο δειγματοληψίας Q η έξοδος μπορεί να γίνει metastable Πως παίρνουμε απόφαση για το αν αυτό που είδαμε είναι 0 ή 1 Πόσο συχνά μπορεί να συμβεί; D Q??? Ca ase II Cas se II II Φθινόπωρο 2008 ΗΥ220 4
Επικοινωνία μεταξύ δύο περιοχών με διαφορετικό ρολόϊ Eμφανίζονται τα ίδια ακριβώς προβλήματα με τη δειγματοληψία ασύγχρονων σημάτων Οι ακμές των ρολογιών αποστολέα και δέκτη βρίσκονται σε διαφορετικές θέσεις Οι αλλαγές των δεδομένων μπορεί να συμπέσουν με το παράθυρο δειγματοληψίας Φθινόπωρο 2008 ΗΥ220 5
Metastability Κάθε δισταθές στοιχείο μνήμης έχει δύο καταστάσεις ισορροπίας (αποθηκεύει 0 ή αποθηκεύεi 1) ενώ μεταξύ τους παρεμβάλεται μια ασταθής κατάσταση Aν η έξοδος ενός flip-flop βρεθεί στην ενδιάμεση κατάσταση ισορροπίας (αστάθεια metastability) μπορεί να μείνει εκεί για αρκετό χρόνο Φθινόπωρο 2008 ΗΥ220 6
Metastability σε ζευγάρι αντιστροφέων Κοινή αναπαράσταση των τάσεων V1 και V2 Φθινόπωρο 2008 ΗΥ220 7
Έξοδος από το metastability 1 2 3 Η παραμικρή παρέκκλιση από το metastable σημείο οδηγεί στην άμεση μετάβαση προς ένα σημείο ευστάθειας (χρόνος αποκατάστασης) Φθινόπωρο 2008 4 ΗΥ220 8
Xρόνος αποκαταστάσης Χρόνος αποκατάστασης Ο χρόνος αποκατάστασης της εξόδου εξαρτάται από την αρχική τιμή ΔV και από την ικανότητα οδήγησης των αντιστροφέων (τs). Όσο πιο κοντά τα V1 και V2 τόσο χειρότερα Η απόκριση έχει εκθετική συμπεριφόρά Φθινόπωρο 2008 ΗΥ220 9
Το metastability στον παλμογράφο Καθυστέρηση απόφασης Oscillations Πόσος χρόνος χρειάζεται για να φύγουμε από το metastability; Ή αλλιώς μετά από πόσο χρόνο θα ήμαστε ακόμη εγκλωβισμένοι; Φθινόπωρο 2008 ΗΥ220 10
Πιθανότητα εγκλωβισμού στο metastabilty Flips flops lands to an illegal state with ΔV(0) with some probability Αν περιμένουμε tw χρόνο μετά το metastable state τι πιθανότητα έχουμε να δούμε το ΔV να έχει πάρει τη μεγαλύτερη ή τη μικρότερη τιμή του (Τα V1 και V2 έχουν επιστρέψει στις ακραίες τιμές 0 και 1 Η πιθανότητα να θέλει περισσότερο χρόνο από tw είναι ίση με Φθινόπωρο 2008 ΗΥ220 11
Πιθανότητα εγκλωβισμού στο metastabilty - παράδειγμα Α flip-flop με τ τs = 100ps και περιμένουμε Τw = 2ns = 20τs για να φύγουμε από το metastability. Για να είμαστε στο metastability μετά από 20τs το flip-flop πρέπει να άρχισε με ένα ΔV (0) μικρότερο από exp( 20). Θεωρώντας ότι το ΔV (0) είναι ομοιόμορφα κατανεμημένο μεταξύ [0, 1] τότε η πιθανότητα να παραμείνουμε στο metastability είναι PS = exp( 20). Φθινόπωρο 2008 ΗΥ220 12
Πιθανότητα να εισέλθουμε σε metastability Η πιθανότητα μια μετάβαση της εισόδου να είναι μέσα στο παράθυρο δειγματοληψίας ισούται με το ποσοστό του παραθύρου αυτού σε σχέση με την περίοδο του ρολογιου Αν flip-flop με t ts = t th = 100 ps και περιοδος ρολογιού 2 ns τότε PE = 0.1 Φθινόπωρο 2008 ΗΥ220 13
Πιθανότητα λάθους και ρυθμός λαθών Η πιθανότητα να εισέλθουμε στο metastability επί την πιθανότητα να μην μπορέσουμε να φύγουμε από αυτό ακόμη και αν περιμένουμε ένα επιπλέον χρονικό διάστημα Ρυθμός λαθών = ρυθμός γεγονότων x P(failure) P t SETUP t HOLD ( fail ) e T C Αν συχνότητα λαθών FE τότε FailureRate = FE x P(fail) t w Φθινόπωρο 2008 ΗΥ220 14
Κυκλώματα συγχρονισμού Οι ασύγχρονοι είσοδοι (D) αναπόφευκτοί (user interfaces, systems with different clocks interacting, etc.). Ο στόχος κάθε κυκλώματος συγχρονισμού είναι να κάνει την πιθανότητα η έξοδος του να είναι metastable όσο πιο μικρή γίνεται Φυσικά η πιθανότητα αυτή δεν μπορεί να είναι ποτέ 0. CLK D SYN NC Q Φθινόπωρο 2008 ΗΥ220 15
Κύκλωμα συγχρονισμού ενός σήματος Ενα κύκλωμα συγχρονισμού μπορεί να φτιαχθεί από δύο flip flop το ένα μετά το άλλο Υποθέσετε ότι η είσοδος D κάνει μια μετάβαση (μέσα στο απαγορευμένο παράθυρο) την ώρα που δειγματοληπτείται από το flip-flop F1 με την ανοδική ακμή του ρολογιού Για να έχουμε σφάλμα πρέπει: Το F1 να μπεί σε metastable κατάσταση με πιθανότητα PE Η κατάσταση του metastability δεν έχει εξαφανισθεί μετά από κάποιο χρόνο πριν την ακμή του F2 Ο χρόνος που έχει στη διάθεση του το ενδιάμεσο σήμα D2 να φύγει από τη metastable περιοχή (να βρεθεί στην τελική τιμή 1 ή 0) είναι ίσος με TW = TC TSETUP - TPCQ Άσυγχρονη είσοδος D CLK CLK F1 D2 T c CLK F2 Q t SETUP t HOLD P ( fail ) T T C e ( T T TPCQ ) C SETUP PCQ D2 metastable Q t W t setup t pcq Φθινόπωρο 2008 ΗΥ220 16
Λάθη κυκλωμάτων συγχρονισμού - παράδειγμα CLK CLK D2 D Q Tsetup T = Thold T = TCQ T = 100ps F1 F2 και τ =100ps ενώ TC = 2ns Πρέπει να δειγματοληπτήσουμε ένα ασύγχρονο σήμα το οποίο αλλάζει κατάσταση με συχνότητα F FE = 1MHz Pe = P(Error) = (Tsetup + Thold)/Tcyc = (.1+.1)/2 = 0.1 Ps = P(NotSameSamplebyF2) = exp (- (Tc Tsetup TpCQ)/τ) = exp(-1.8/.1) = = exp(-18) = 1.5 x 10^(-8) Επομένως η πιθανότητας λάθους P(Fail) = Ps x Pe = 1.5 x 10^(-9) Ρυθμός λαθών = FE x P(Fail) = 1.5 x 10^(-3) 1 λάθος κάθε 656 seconds Μέσος χρόνος μεταξύ λαθών MTBF (Μean Τime Βεtween Failures) = 1 κάθε 11 λεπτά Φθινόπωρο 2008 ΗΥ220 17
Πως αυξάνουμε το MTBF D CLK F1 D2 CLK F2 Q Είτε προσθέτουμε και άλλα flip-flops στη σειρά μετά το F2 Eίτε προσθέτουμε ένα σήμα enable στα flip-flops μέσω του οποίου τα ανοίγουμε μια φορά κάθε N κύκλους Μ αυτόν τον τρόπο είναι σαν να αυξάνουμε το Tw (o χρόνος αποκατάσταση εξόδου από το metastability του F1) Τότε Tw = N Tc Tsetup - Tpcq Φθινόπωρο 2008 ΗΥ220 18
Πότε τα δεδομένα δειγματοληπτούνται σωστά Επικοινωνία μεταξύ δύο διαφορετικώνν περιοχών ρολογιού C1 και C2 Ανάλογα με την απόσταση των ακμών των δύο ρολογιών τα δεδομένα μπορεί να δειγματοληπτηθούν σωστά είτε στoν πρώτο είτε στο δεύτερο κύκλο ρολογιού τoυ δέκτη Για να είμαστε σίγουροι πρέπει η πηγή να απαγορεύεται να άλλαξει τα δεδομένα που στέλνει αν δεν παρέλθουν δύο ακμές του δέκτη Metastability NO - Metastability Φθινόπωρο 2008 ΗΥ220 19
Ανεξάρτητος συγχρονισμός πολλών σημάτων Όπως είδαμε πριν κάθε φορά πού ένα καινούριο δεδομένο δημιουργείται στην πηγή μπορεί να χρειαστεί περισσότερους από 1 κύκλους του ρολογιού του δέκτη ώστε να δειγματοληπτηθεί σωστά Αυτό εξαρτάται από τη χρονική απόσταση μεταξύ των ακμών της πηγής και του δέκτη Υποθέστε πως στέλνουμε δεδομένα μεγαλύτερα του 1 bit και πως τοποθετούμε κάθε γραμμή των δεδομένων στο δικό της κύκλωμα συγχρονισμού Κάθε γραμμή των δεδομένων θα συγχρονίζονταν χωριστά και ανεξάρτητα από τις άλλες Αν όλα τα σήματα άλλαζαν ταυτόχρονα πχ 1011 0100, και οι ακμές των ρολογιών του δέκτη και του πομπού ήταν κοντά, τότε κάποιες γραμμές δεδομένων θα σταθεροποιούνταν στο δέκτη μετά από 1 κύκλο και κάποιες άλλες μετά από 2 κύκλους εξαιτίας του metastability. H ανομοιομορφία αυτή οφείλεται στο γεγονός ότι ο συγχρονισμός της κάθε γραμμής είναι ανεξάρτητος από τις άλλες. Έτσι δεν είμαστε σε θέση να γνωρίζουμε πότε όλα τα δεδομένα έχουν δειγματοληπτηθεί και η συνοχή των δεδομένων έχει χαθεί Λύση 1: Πρέπει να εξασφαλίσουμε ότι μόνο ένα σήμα αλλάζει τη φορά Gray codes Γίνεται ασύμφορο για πολύ μεγάλους διαδρόμους δεδομένων Λύση 2: Συμπεριφερόμαστε αλλιώς στα σήματα ελέγχου και αλλιώς στα δεδομένα Συνήθως χρησιμοποιούμενη πρακτική Φθινόπωρο 2008 ΗΥ220 20
Παράδειγμα λανθασμένης συνοχής δεδομένων Τα X[0] και Χ[1] δειγματολήπτούνται από 2 ανεξάρτητους συγχρονιστές του 1 bit που δίνουν έξοδο τα Υ[0] και Υ[1] Έχουμε μια μετάβαση από 0 σε 1 και στα δύο bits του Χ Αν και η αλλαγή του Χ[0] πιάνεται από τον 1 ο κύκλο του C2, η αλλαγή του X[1] διαπιστώνεται στο 2 ο κύκλο Αυτό έχει σαν αποτέλεσμα να εμφανίζεται για ένα κύκλο η ενδιάμεση τιμή "10" στα Y[0:1] η οποία είναι λανθασμένη Φθινόπωρο 2008 ΗΥ220 21
Συγχρονισμός πολλών σημάτων: Η λύση Τα δεδομένα εισόδου γράφονται στους καταχωρητές R0, R1,, RN οι οποίοι ελέγχονται από το ρολόι του αποστολέα Τα δεδομένα διαβάζονται από τους καταχωρητές με το ρολόι του δέκτη Ο δείκτης tail καθορίζει σε ποιο καταχωρητή θα γραφούν τα εισερχόμενα δεδομένα Ο δείκτης head καθορίζει από ποιο καταχωρητή τα δεδομένα θα διαβαστούν Ο συγχρονιστής συμπεριφέρεται σαν ουρά. Γράφουμε στην κορυφή της ουράς και διαβάζουμε από το τέλος Αν ο head δείκτης έρχεται αρκετά μετά τον tail εξασφαλίζουμε ότι θα διαβάσουμε σταθερά δεδομένα FIFO συγχρονιστής Φθινόπωρο 2008 ΗΥ220 22
Λειτουργεία FIFO συγχρονιστή Διαθέτουμε 4 καταχωρητές Τα δεδομένα διαβάζονται πολύ μετά από όταν γραφονται οπότε οι τιμές του ς έχουν σταθεροποιηθεί Ο head δείκτης ακολουθεί τον tail Δυστυχώς εισάγουμε μια μη-αμελητέα καθυστέρηση στην επικοινωνία Εγγραφή του Α Ανάγνωση του Α Φθινόπωρο 2008 ΗΥ220 23