Συμπίεση Δεδομένων Δοκιμής (Test Data Compression), Παν Πατρών
Test resource partitioning techniques ΑΤΕ Automatic Test Equipment (ATE) based BIST based
Έλεγχος παραγωγής γής βασισμένος σε ΑΤΕ Μεγάλος όγκος δεδομένων ελέγχου δεν επαρκεί η μνήμη των ATE συσκευών για την αποθήκευσή ή τους Μικρό bandwidth των συνδέσεων ΑΤΕ - ολοκληρωμένου για τον όγκο των δεδομένων ελέγχου που πρέπει να μεταφερθούν
Ενσωματωμένος έλεγχος BIST Built-In Self-Test (BIST) - Ενσωματωμένος αυτοέλεγχος: Οι ελάχιστες δυνατές απαιτήσεις από τον εξωτερικό ελεγκτή, αλλά με μικρή υποστήριξη (ακόμα;) για κυκλώματα τυχαίας δομής (όχι μνήμες) από τα CAD εργαλεία απουσία BIST-ready μονάδων
Test resource partitioning techniques ΑΤΕ Automatic Test Equipment (ATE) based Test data compression ή Ενσωματωμένος έλεγχος με χρήση ATE BIST based
Ενσωματωμένος έλεγχος με χρήση ΑΤΕ Τα δεδομένα ελέγχου αποθηκεύονται στην ΑΤΕ συσκευή σε συμπιεσμένη μορφή (μικρός ό όγκος και γρήγορη μεταφορά μέσω των αργών συνδέσεων ΑΤΕ SoC) Αποσυμπίεση on-chip από ένα μικρό κύκλωμα αποσυμπίεσης (decompressor ή decoder) Μικρότερη μνήμη Μικρότερο bandwidth
Τεχνικές συμπίεσης δεδομένων δοκιμής Οι κώδικες συμπίεσης μπορούν να ταξινομηθούν σε: Variable-to-fixed κώδικες Κωδικοποίηση ομάδων δυαδικών ψηφίων μεταβλητού μεγέθους σε block σταθερού μεγέθους Variable-to-variable κώδικες Κωδικοποίηση ομάδων δυαδικών ψηφίων μεταβλητού μεγέθους σε block μεταβλητού μεγέθους Fixed-to-variable κώδικες Κωδικοποίηση ομάδων δυαδικών ψηφίων σταθερού μεγέθους σε block μεταβλητού εαβληούμεγέθους Fixed-to-fixed κώδικες Κωδικοποίηση ομάδων δυαδικών ψηφίων σταθερού μεγέθους σε block σταθερού μεγέθους
Variable-to-fixed κώδικες Κώδικας run-length Ευνοεί τη συμπίεση μεγάλων ακολουθιών θώ από 0(ή 1) 3-bit run-length κώδικας 1 000 01 001 001 010 0001 011 00001 100 000001 101 0000001 110 0000000 111
Χρήση run-length κώδικα με απόσταση hamming Τα διανύσματα δοκιμής των διαφόρων κυκλωμάτων ΕΝ περιλαμβάνουν μεγάλες ακολουθίες από 0 ή 1 Την ιδιότητα αυτή έχει το διάνυσμα που ισούται με το αποτέλεσμα της bitwise πράξης XOR των δύο διανυσμάτων δοκιμής Παράδειγμα 100x10x11 10x1001x0 000010001 100 011
Διάταξη με βάση την απόσταση Ηamming Το προαναφερθέν διάνυσμα δείχνει τα σημεία στα οποία διαφέρουν τα δύο διανύσματα δοκιμής. Το πλήθος των σημείων αυτών ονομάζεται απόσταση hamming των δύο διανυσμάτων (= 2 στο παράδειγμα) Συνεπώς, ο αλγόριθμος κωδικοποίησης run-length αποτελείται λί από δύο βασικά βήματα: ιάταξη των διανυσμάτων δοκιμής με βάση την απόσταση Hamming Κωδικοποίηση των διανυσμάτων διαφορών αντί των διανυσμάτων δοκιμής
1 0 0 x 1 0 x 1 1 1 0 x 1 0 0 1 x 0 0 1 0 x 0 0 x 1 0 0 1 1 1 x 0 1 1 x Παράδειγμα 1 0 0 x 1 0 x 1 1 HD=2 1 0 x 1 0 0 1 x 0 HD=4 HD=3 0 1 0 x 0 0 x 1 0 0 1 1 1 x 0 1 1 x HD=2 HD=3 1 0 0 x 1 0 x 1 1 1 0 x 1 0 0 1 x 0 0 1 0 x 0 0 x 1 0 0 1 1 1 x 0 1 1 x 00001 0001 6 1 1 0000000 9 001 000000 + 6 21 bits
Κύκλωμα παραγωγής διανυσμάτων δοκιμής Πρώτο διάνυσμα δοκιμής Ολισθητής Προς scan αλυσίδα δ εδομένα από ΑΤΕ run-length αποκωδικοποιητής
Πιθανές αρχιτεκτονικές Χρησιμοποιώντας τον boundary-scan register ενός κοντινού core Χρησιμοποιώντας τη scan αλυσίδα ενός κοντινού core
Variable-to-variable κώδικες Κώδικας Golomb Κώδικας Golomb με m = 4
Παράδειγμα Golomb κώδικα Έστω το ακόλουθο σύνολο από διανύσματα διαφορών Η κωδικοποίησή του κατά Golomb είναι η ακόλουθη: Τ Ε =0111001 000 1000 1000 1010 010 1011 010
Fixed-to-variable κώδικες Χαρακτηριστικότερο παράδειγμα - κώδικας Huffman Τα χαρακτηριστικά του κώδικα Huffman είναι: Για τις ομάδες bit που εμφανίζονται συχνότερα χρησιμοποιούνται οι μικρότερες κωδικές λέξεις Καμία κωδική λέξη δεν αποτελεί prefix κάποιας άλλης Ο κώδικας Huffman είναι βέλτιστος κώδικας, αφού έχει αποδειχθεί ότι οδηγεί στο μικρότερο ρ μέσο μήκος κωδικών λέξεων Όταν χρησιμοποιούμε κώδικα Huffman δεν συμπιέζουμε τα διανύσματα διαφορών, αλλά τα ίδια τα διανύσματα δοκιμής
Κατασκευή του κώδικα Huffman Ο κώδικας Huffman παράγεται με τη βοήθεια ενός δέντρου, το οποίο κατασκευάζεται ξεκινώντας από τα φύλλα του Τα βήματα κατασκευής του δέντρου είναι τα εξής: Κατασκευάζουμε ένα φύλλο για κάθε ομάδα bit που θα κωδικοποιηθεί. Σε κάθε φύλλο ανατίθεται βάρος ίσο με τη συχνότητα εμφάνισης της αντίστοιχης ομάδας στα διανύσματα ελέγχου Οι δύο κόμβοι με το μικρότερο βάρος γίνονται παιδιά ενός νέου κόμβου, του οποίου το βάρος ισούται με το άθροισμα των βαρών των παιδιών του Το προηγούμενο βήμα επαναλαμβάνεται έως ότου απομείνει ένας μόνο κόμβος
Παράδειγμα block 45 δεδομένων συχνότητα 0 1 S 0 010 15 18 27 0 1 0 1 S 1 100 11 11 S S 12 S 2 110 7 1 7 2 S 0 15 0 1 S 3 111 4 7 5 S 4 000 3 S 0 10 0 1 0 1 S 5 101 2 S 1 00 S 3 4 S 4 3 S 5 2 3 S 6 001 2 S 2 01 0 1 S 7 011 1 S S 6 2 S 7 1 3 1100 S 4 1101 S 5 1110 S 6 11110 S 7 11111
Παρατηρήσεις εν υπάρχει μοναδικός κώδικας Huffman Η ανάθεση του 0 και του 1 σε κάθε ακμή του δέντρου μπορεί να γίνει με τυχαίο τρόπο εν έχει σημασία με ποια σειρά θα επιλέξουμε δύο κόμβους ίδιου βάρους Κάθε κώδικας Huffman έχει το ίδιο (ελάχιστο) μέσο μήκος κωδικών λέξεων
Fixed-to-fixed κώδικες Ομάδες bit σταθερού μήκους κωδικοποιούνται σε block σταθερού μήκους Χαρακτηριστικότερο παράδειγμα Κωδικοποίηση που βασίζεται σε πίνακες
Fixed-to-fixed κώδικες Άλλο παράδειγμα Ανατροφοδότηση (reseeding) του LFSR με νέες αρχικές καταστάσεις Μία σταθερού μήκους ομάδα που κωδικοποιείται είναι ένα ολόκληρο λ διάνυσμα δοκιμής, ενώ μία κωδική λέξη είναι μία νέα αρχική κατάσταση (seed) του LFSR H μέθοδος στηρίζεται στην ύπαρξη ενός μεγάλου αριθμού από αδιάφορους όρους (x) στα διανύσματα δοκιμής των υπό έλεγχο μονάδων ενός SoC (test cubes) Ο υπολογισμός ενός seed γίνεται μέσω της επίλυσης ενός συστήματος γραμμικών εξισώσεων (!)
Τρόποι εφαρμογής του ελέγχου με χρήση LFSR LFSR Συνδυαστικό κύκλωμα LFSR Ακολουθιακό Scan αλυσίδα κύκλωμα LFSR Phas se shift ter... Scan αλυσίδα 1 Scan αλυσίδα 2... Scan αλυσίδα n
Κωδικοποίηση test cube για συνδ. κυκλώματα (1/3) + R 1 R 2 R 3 R 4 α 1 α 2 α 3 α 4 α 1 α 4 α 1 α 2 α 3 α 1 α 3 α 4 α 1 α 4 α 1 α 2 α 1 α 2 α 3 α 4 α 1 α 3 α 4 α 1 α 4 α 1 α 2 α 3 α 4 α 1 α 2 α 3 α 4 α 1 α 3 α 4 α 1 α 4 α 1 α 2 α 3 α 2 α 3 α 4 α 1 α 2 α 3 α 4 α 1 α 3 α 4 Κωδικοποίηση η του cube 1xx0 στην πρώτη θέση του παραθύρου ρ = 1 και α 4 =0
Κωδικοποίηση test cube για συνδ. κυκλώματα (2/3) + R 1 R 2 R 3 R 4 1 α 2 α 3 0 1 1 α 2 α 3 α 3 1 1 1 α 2 α 2 α 3 1 α 3 1 1 1 α 2 α 3 α 2 α 3 1 α 3 1 1 α 2 α 3 11 α 2 α 3 α 2 α 3 11 α 3 11 Κωδικοποίηση του cube 00x1 στην τέταρτη θέση του παραθύρου
Κωδικοποίηση test cube για συνδ. κυκλώματα (3/3) Επίλυση συστήματος α 2 α 3 1 = 0 α 2 = α 3 1 α 2 = 0 α 3 1 = 0 <=> α 3 = 1 <=> α 3 = 1 1 = 1 1 = 1 1 = 1 + Έτσι: R 1 R 2 R 3 R 4 1 0 1 0 Συμβατό με το cube 1xx0 1 1 0 1 0 1 1 0 0 0. 0 1 Συμβατό με το cube 00x1.. [Koenemann 1991]
Κωδικοποίηση test cube για ακολουθ. κυκλώματα 1 x 1 0 x x 1 Scan αλυσίδα κατάσταση 1 a 2 a 2 a 2 κατάσταση 2 κατάσταση 3 κατάσταση 4 κατάσταση 5 κατάσταση 6 κατάσταση 7 a 2 a 2 a 2 a 2 a 2 a 2 a 2 a 2 a 2 a 2 a 2 a 2 7 6 5 4 3 2 1 κατάσταση στην οποία ανήκει η κάθε δυαδική έκφραση α 4 = 1 α 1 = 0 α 1 α 4 = 1 α 1 α 2 α 3 α 4 = 1 α 4 = 1 <=> α = 0 1 = 1 α 2 α 3 = 0 α 4 = 1 <=> α = 0 1 = 1 α 2 = α 3
υναμικές ανατροφοδοτήσεις Έχει δύο πλεονεκτήματα: Ο LFSR ανατροφοδοτείται όσο συχνά θέλουμε και έτσι το μέγεθός του αποσυνδέεται από το πλήθος των μη αδιάφορων όρων των test cube του κυκλώματος υναμικές ανατροφοδοτήσεις => αποφυγή κόστους shadow register για reseeding του LFSR σε έναν κύκλο Για τους λόγους αυτούς: R 1 R... 2 R k R 1 R... 2 R k-1 R k Γραμμική ανάδραση Γραμμική ανάδραση SmartBIST - IBM 2001 EDT - Mentor 2002
Ανακεφαλαίωση (1/2) Για να αρθούν οι περιορισμοί που επιβάλλουν οι ΑΤΕ συσκευές, στα σύγχρονα ολοκληρωμένα ψηφιακά συστήματα χρησιμοποιούνται τεχνικές ενσωματωμένου ελέγχου Το σύνολο δοκιμής του υπό έλεγχο κυκλώματος συμπιέζεται με τη βοήθεια κάποιου κώδικα και αποσυμπιέζεται on-chip από ένα μικρό αποκωδικοποιητή (decompressor ή decoder)
Ανακεφαλαίωση (2/2) Κατηγορίες κωδίκων: Variable-to-fixed (Run-length) Variable-to-variable (Golomb) Fixed-to-variable (Huffman) Fixed-to-fixed (LFSR seeds)