ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Ρολόι και Χρονισμός Χειμερινό Εξάμηνο 2009 2010
Synchronous Timing Όλα τα στοιχεία στο σύστημα ενημερώνονται ταυτόχρονα με ένα κεντρικό ρολόι Στην πραγματικότητα Clock skew Clock jitter ΗΥ220 University of Crete 2
Clock distribution, delay ΗΥ220 University of Crete 3
Plesiochronous and Asynchronous Timing i Plesiochronous o ous Timing Τα blocks έχουν ανεξάρτητα ρολόγια από ξεχωριστούς ταλαντωτές Κύκλωμα ανάκτησης ρολογιού Συχρονισμός μεταξύ διαφορετικών clock domains FIFO Asynchronous timing Αυτοχρονιζόμενα (self timed) συστήματα Δεν υπάρχει ανάγκη για κεντρικό ρολόι Υπάρχει extra «κόστος» στα κυκλώματα (handshaking) Αυξημένη πολυπλοκότητα ΗΥ220 University of Crete 4
Synchronous Timing Basics t c2q t su t hd t c2qm t clog t clogm Σε ιδανικές συνθήκες (t clk1 = t clk2 ) T clk T c2q + T clog + T su T hd T c2qm + T clogm Στις πραγματικές συνθήκες Clock skew Clock jitter ΗΥ220 University of Crete 5
Clock Skew and Jitter Clock skew (σταθερή από κύκλο σε κύκλο) Χωρική μεταβλητότητα (spatial variation) στους χρόνους άφιξης των μεταβάσεων του ρολογιού σε διαφορετικά σημεία ενός κυκλώματος Clock jitter (μεταβλητή από κύκλο σε κύκλο) Χρονική μεταβλητότητα (temporal variation) της περιόδου του ρολογιού σε ένα δεδομένο σημείο του κυκλώματος Από κύκλο σε κύκλο (cycle to cycle) t js : short term Long term t jl ΗΥ220 University of Crete 6
Positive and Negative Skew Ρολόι και δεδομένα προς την ίδια κατεύθυνση Ρολόι και δεδομένα προς αντίθετες κατευθύνσεις ΗΥ220 University of Crete 7
Positive Skew Η ακμή εκκίνησης φτάνει πρίν την ακμή άφιξης ΗΥ220 University of Crete 8
Negative Skew Η ακμή άφιξης φτάνει πρίν την ακμή εκκίνησης ΗΥ220 University of Crete 9
Clock Jitter To jitter προκαλεί μεταβλητότητα στην περίοδο Τ του ρολογιού από κύκλο σε κύκλο ΗΥ220 University of Crete 10
Combined Impact of Skew and Jitter Clock skew: T sk (δ) Clock jitter: T jt T clk T c2q + T clog + T su + T sk + 2T jt (w.c. negative skew) T hd T c2qm + T clogm T sk 2T jt (w.c. positive skew) ΗΥ220 University of Crete 11
Sources of Clock Skew and Jitter ΗΥ220 University of Crete 12
Clock Distribution Networks ΗΥ220 University of Crete 13
H Tree Clock Network ΗΥ220 University of Crete 14
More realistic H tree ΗΥ220 University of Crete 15
Τι συμβαίνει αν δε σεβαστούμε τους περιορισμούς setup και hold (πλήρως ασύγχρονη είσοδος) t setup t hold button D CLK Q CLK t aperture D Q Case I Όταν η είσοδος αλλάζει μέσα στο παράθυρο δειγματοληψίας η έξοδος μπορεί να γίνει metastable Πως παίρνουμε απόφαση για το αν αυτό που είδαμε είναι 0 ή 1 Πόσο συχνά μπορεί να συμβεί; D Q D Q??? Case III Cas se II ΗΥ220 University of Crete 16
Επικοινωνία μεταξύ δύο περιοχών με διαφορετικό ρολόϊ Eμφανίζονται τα ίδια ακριβώς προβλήματα με τη δειγματοληψία ασύγχρονων σημάτων Οι ακμές των ρολογιών αποστολέα και δέκτη βρίσκονται σε διαφορετικές θέσεις Οι αλλαγές των δεδομένων μπορεί να συμπέσουν με το παράθυρο δειγματοληψίας ΗΥ220 University of Crete 17
Metastability Κάθε δισταθές στοιχείο μνήμης έχει δύο καταστάσεις ισορροπίας (αποθηκεύει 0 ή αποθηκεύεi 1) ενώ μεταξύ τους παρεμβάλεται μια ασταθής κατάσταση Aνη έξοδος ενός flip-flop βρεθεί στην ενδιάμεση κατάσταση ισορροπίας (αστάθεια metastability) μπορεί να μείνει εκεί για αρκετό χρόνο ΗΥ220 University of Crete 18
Το metastability στον παλμογράφο Καθυστέρηση απόφασης Oscillations Πόσος χρόνος χρειάζεται για να φύγουμε από το metastability; Ή αλλιώς μετά από πόσο χρόνο θα ήμαστε ακόμη εγκλωβισμένοι; ; ΗΥ220 University of Crete 19
Κυκλώματα α συγχρονισμούσμού Οι ασύγχρονοι είσοδοι (D) αναπόφευκτοί (user interfaces, systems with different clocks interacting, etc.). Ο στόχος κάθε κυκλώματος συγχρονισμού είναι να κάνει την πιθανότητα η έξοδος του να είναι metastable όσο πιο μικρή γίνεται Φυσικά η πιθανότητα αυτή δεν μπορεί να είναι ποτέ 0. CLK D SYNC Q ΗΥ220 University of Crete 20
Mean Time Between Failure Ο μέσος χρόνος λάθους για ένα FF ΗΥ220 University of Crete 21
Κύκλωμα συγχρονισμού ενός σήματος Ενα κύκλωμα συγχρονισμού μπορεί να φτιαχθεί από δύο flip flop το ένα μετά το άλλο Υποθέσετε ότι η είσοδος D κάνει μια μετάβαση (μέσα στο απαγορευμένο παράθυρο) την ώρα που δειγματοληπτείται από το flip-flop F1 με την ανοδική ακμή του ρολογιού Για να έχουμε σφάλμα πρέπει: Το πρώτο FF να μπεί σε metastable κατάσταση με πιθανότητα PE Η κατάσταση του metastability δεν έχει εξαφανισθεί μετά από κάποιο χρόνο πριν την ακμή του FF ΗΥ220 University of Crete 22
Πως αυξάνουμε το MTBF CLK CLK D D2 Q F1 F2 Είτε προσθέτουμε και άλλα flip-flops στη σειρά μετά το F2 Eίτε προσθέτουμε ένα σήμα enable στα flip-flops flops μέσω του οποίου τα ανοίγουμε μια φορά κάθε N κύκλους ΗΥ220 University of Crete 23
Πότε τα δεδομένα δειγματοληπτούνται σωστά Επικοινωνία μεταξύ δύο διαφορετικώνν περιοχών ρολογιού C1 και C2 Ανάλογα με την απόσταση των ακμών των δύο ρολογιών τα δεδομένα μπορεί να δειγματοληπτηθούν η σωστά είτε στoν πρώτο είτε στο δεύτερο κύκλο ρολογιού τoυ δέκτη Για να είμαστε σίγουροι πρέπει η πηγή να απαγορεύεται να άλλαξει τα δεδομένα που στέλνει αν δεν παρέλθουν δύο ακμές του δέκτη Metastability t NO - Metastability ΗΥ220 University of Crete 24
Ανεξάρτητος συγχρονισμός πολλών σημάτων Όπως είδαμε πριν κάθε φορά πού ένα καινούριο δεδομένο δημιουργείται στην πηγή μπορεί να χρειαστεί περισσότερους από 1 κύκλους του ρολογιού του δέκτη ώστε να δειγματοληπτηθεί σωστά Αυτό εξαρτάται από τη χρονική απόσταση μεταξύ των ακμών της πηγής και του δέκτη Υποθέστε πως στέλνουμε δεδομένα μεγαλύτερα του 1 bit και πως τοποθετούμε κάθε γραμμή των δεδομένων στο δικό της κύκλωμα συγχρονισμού Κάθε γραμμή των δεδομένων θα συγχρονίζονταν χωριστά και ανεξάρτητα από τις άλλες Αν όλα τα σήματα άλλαζαν ταυτόχρονα πχ 1011 0100, και οι ακμές μςτων ρολογιών του δέκτη και του πομπού ήταν κοντά, τότε κάποιες γραμμές δεδομένων θα σταθεροποιούνταν στο δέκτη μετά από 1 κύκλο και κάποιες άλλες μετά από 2 κύκλους εξαιτίας του metastability. H ανομοιομορφία αυτή οφείλεται στο γεγονός ότι ο συγχρονισμός της κάθε γραμμής είναι ανεξάρτητος από τις άλλες. Έτσι δεν είμαστε σε θέση να γνωρίζουμε πότε όλα τα δεδομένα έχουν δειγματοληπτηθεί και η συνοχή των δεδομένων έχει χαθεί Λύση 1: Πρέπει να εξασφαλίσουμε ότι μόνο ένα σήμα αλλάζει τη φορά Gray codes Γίνεται ασύμφορο για πολύ μεγάλους διαδρόμους δεδομένων Λύση 2: Συμπεριφερόμαστε αλλιώς στα σήματα ελέγχου και αλλιώς στα δεδομένα Συνήθως χρησιμοποιούμενη πρακτική ΗΥ220 University of Crete 25
Συγχρονισμός δεδομένων ΛΑΘΟΣ κυκλώματα ΗΥ220 University of Crete 26
Παράδειγμα λανθασμένης συνοχής δεδομένων Τα X[0] και Χ[1] δειγματολήπτούνται από 2 ανεξάρτητους συγχρονιστές του 1 bit που δίνουν έξοδο τα Υ[0] και Υ[1] Έχουμε μια μετάβαση από 0 σε 1 και στα δύο bits του Χ Αν και η αλλαγή του Χ[0] πιάνεται από τον 1 ο κύκλο του C2, η αλλαγή του X[1] διαπιστώνεται στο 2 ο κύκλο Αυτό έχει σαν αποτέλεσμα να εμφανίζεται για ένα κύκλο η ενδιάμεση τιμή "10" στα Y[0:1] η οποία είναι λανθασμένη ΗΥ220 University of Crete 27
Mesochronous synchronization Όταν τα 2 συστήματα έχουν σχεδόν την ίδια συχνότητα (αλλά ίσως διαφορετική φάση) ΗΥ220 University of Crete 28
Συγχρονισμός πολλών σημάτων: Η λύση Τα δεδομένα εισόδου γράφονται στους καταχωρητές R0, R1,, RN οι οποίοι ελέγχονται από το ρολόι του αποστολέα Τα δεδομένα διαβάζονται από τους καταχωρητές με το ρολόι του δέκτη Ο δείκτης tail καθορίζει σε ποιο καταχωρητή θα γραφούν τα εισερχόμενα δεδομένα Ο δείκτης head καθορίζει από ποιο καταχωρητή τα δεδομένα θα διαβαστούν Ο συγχρονιστής συμπεριφέρεται σαν ουρά. Γράφουμε στην κορυφή της ουράς και διαβάζουμε από το τέλος Αν ο head δείκτης έρχεται αρκετά μετά τον tail εξασφαλίζουμε ότι θα διαβάσουμε σταθερά δεδομένα FIFO συγχρονιστής ΗΥ220 University of Crete 29
Λειτουργεία FIFO συγχρονιστή ιαθέτουμε 4 καταχωρητές Τα δεδομένα διαβάζονται πολύ μετά από όταν γραφονται οπότε οι τιμές του ς έχουν σταθεροποιηθεί Ο head δείκτης ακολουθεί τον tail υστυχώς εισάγουμε μια μη-αμελητέα καθυστέρηση στην επικοινωνία Εγγραφή του Α Ανάγνωση του Α ΗΥ220 University of Crete 30
Handshaking protocol 4 Phase handshaking (alternative: 2 phase handshaking) 1. Πομπός: στέλνει τα δεδομένα και μετά ενεργοποιεί το REQ 2. Δέκτης : μόλις λάβει το Sunc_REQ(1) ενεργοποιεί το ACK 3. Πομπός: μόλις λάβει το Sunc_ACK (1) απενεργοποιεί το REQ 4. Δέκτης : μόλις λάβει το Sunc_REQ(0) απενεργοποιεί το ACK ΗΥ220 University of Crete 31
FIFO synchronization Handshaking: αξιόπιστη λειτουργία αλλά μεγάλη καθυστέρηση η Asynchronous FIFO: buffering to rate match write/read ΗΥ220 University of Crete 32
FIFO signals need to generate empty/full signals Full: (read_ptr==write_ptr) && (old_write_ptr+1==read_ptr) t d t Empty: (read_ptr==write_ptr) && (old_read_ptr+1==write_ptr) ptr) ΗΥ220 University of Crete 33
Full/empty FIFO synchronization Read: synchronized to clk1 Write: synchronized to clk2 ΗΥ220 University of Crete 34