ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ «ΟΛΟΚΛΗΡΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ» Συστηματική Σχεδίαση Αρχιτεκτονικών Αποκωδικοποιητών LDPC ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Γιώργος Αγγουράς Επιβλέπων: Βασίλειος Παλιουράς Επίκουρος Καθηγητής Πάτρα, Δεκέμβριος 2007
Ευχαριστίες Ολοκληρώνοντας την διπλωματική μου εργασία και τις σπουδές μου στο πρόγραμμα μεταπτυχιακών σπουδών «Ολοκληρωμένα Συστήματα Υλικού και Λογισμικού» θα ήθελα να εκφράσω τις ευχαριστίες μου σε όσους συνέβαλαν με τη βοήθεια τους στη προσπάθεια μου αυτή. Θα ήθελα να ευχαριστήσω τον επιβλέποντα της διπλωματικής εργασίας κ. Βασίλη Παλιουρά για τη το ενδιαφέρον του και τη βοήθειά του κατά τη διάρκεια εκπόνησης της διπλωματικής εργασίας. Επίσης, θα ήθελα να ευχαριστήσω τον Καθηγητή κ. Κ. Γκούτη και τον Καθηγητή κ. Κ. Μπερμπερίδη για τη συμμετοχή τους στην τριμελή επιτροπή. Τέλος θα ήθελα να ευχαριστήσω όλους τους καθηγητές και το προσωπικό του μεταπτυχιακού προγράμματος για την βοήθεια τους κατά τη διάρκεια της φοίτησης μου. 1
ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 1.1 Ιστορία και εφαρμογές των κωδίκων LDPC 1.2 Αναπαράσταση των κωδίκων LDPC με τον πίνακα parity check 1.3 Ο αλγόριθμος αποκωδικοποίησης message passing 1.4 Σύντομη περιγραφή και η καινοτομία της διπλωματικής εργασίας 2. Υπάρχουσες αρχιτεκτονικές αποκωδικοποιητών 2.1 Γενικά για τη σχεδίαση αρχιτεκτονικών αποκωδικοποιητών LDPC 2.2 Κλασσικές αρχιτεκτονικές αποκωδικοποίησης 2.3 Προσφάτως προταθείσες αρχιτεκτονικές αποκωδικοποίησης 3. Αρχιτεκτονική ομαδοποιημένων υπολογισμών 3.1 Η βασική αρχιτεκτονική ομαδοποιημένων υπολογισμών 3.2 Η μεθοδολογία συστηματικού σχεδιασμού 3.3 Υλοποίηση χωρίς απώλεια όρων του αλγόριθμου αποκωδικοποίησης 3.4 Υλοποίηση με απώλεια όρων του αλγόριθμου αποκωδικοποίησης 4. Αρχιτεκτονική πολλών διαύλων 4.1 Χρονοπρογραμματισμός σε αρχιτεκτονική πολλών διαύλων 4.2 Η εσωτερική αρχιτεκτονική των επεξεργαστών 4.3 Η απόδοση συναρτήσει του πλήθους των διαύλων 4.4 Συνδυασμός ομαδοποιημένων υπολογισμών πολλών διαύλων 5. Αποτελέσματα Συμπεράσματα εκτέλεσης εξομοιώσεων 5.1 Εξομοιώσεις με χρήση όλων των όρων του αλγορίθμου αποκωδικοποίησης 5.2 Εξομοιώσεις αρχιτεκτονικής ομάδων με μειωμένες διασυνδέσεις. Βιβλιογραφία Παραρτήματα Α. Κώδικες που αναπτύχθηκαν σε MATLAB Β. Οι χρησιμοποιούμενοι LDPC κώδικες 2
ΚΕΦΑΛΑΙΟ 1 Εισαγωγή 1.1 Ιστορία και εφαρμογές των κωδίκων LDPC Βασικό πρόβλημα της μετάδοσης πληροφορίας διαμέσου ενός καναλιού με θόρυβο είναι η κατασκευή ενός συστήματος κωδικοποίησης και αποκωδικοποίησης, με το οποίο να επιτυγχάνεται μετάδοση με χαμηλό επίπεδο λαθών. Ο κωδικοποιητής αντιστοιχεί για κάθε προς μετάδοση λέξη (s στο σχήμα 1.1) μία κωδική λέξη (r) από ένα σύνολο κωδικών λέξεων. Ο αποκωδικοποιητής αφού λάβει την κωδική λέξη με λάθη (r ) τα οποία έχουν εισαχθεί λόγω του θορύβου στο κανάλι επικοινωνίας προσπαθεί να διαπιστώσει ποια ήταν η αρχική κωδική λέξη που στάλθηκε. Στη συνέχεια από τη κωδική λέξη εξάγεται η αρχική προς μετάδοση λέξη (s ). ΠΗΓΗ s s' ΚΩ ΙΚΟΠΟΙΗΤΗΣ ΑΠΟΚΩ ΙΚΟΠΟΙΗΤΗΣ r r' ΚΑΝΑΛΙ ΜΕ ΘΟΡΥΒΟ σχήμα 1.1 Όσο μεγαλύτερη είναι η απόσταση μεταξύ των κωδικών λέξεων τόσο καλύτερος είναι ο κώδικας αφού θα υπάρχει και μεγαλύτερη ανοχή στο θόρυβο. Θα είναι δηλαδή δυσκολότερο για τον αποκωδικοποιητή λόγω του θορύβου να ερμηνεύσει την ληφθείσα κωδική λέξη ως κάποια άλλη. 3
Από το 1948, έχει αποδειχθεί από τον Shannon [1] ότι σε ένα κανάλι με προσθετικό γκαουσιανό θόρυβο, και με σταθερό ρυθμό μετάδοσης δεδομένων, τα λάθη μπορούν να μειωθούν σε οποιοδήποτε επίπεδο με την κατάλληλη κωδικοποίηση της πληροφορίας εάν ο ρυθμός μετάδοσης είναι μικρότερος από τη χωρητικότητα του καναλιού. Το γεγονός αυτό έχει στρέψει την έρευνα για τη βελτίωση της απόδοσης τηλεπικοινωνιακών συστημάτων στην εφεύρεση νέων πιο αποδοτικών μεθόδων κωδικοποίησης. Μία μέθοδος σχεδίασης κωδίκων προτάθηκε από τον Gallager [2] το 1963, η οποία δεν χρησιμοποιήθηκε για σχεδόν τριάντα χρόνια. Ο λόγος της μη χρησιμοποίησης είναι οι μεγάλες απαιτήσεις σε υπολογιστική ισχύ των κωδικοποιητών και αποκωδικοποιητών που χρειάζεται. Τα τελευταία χρόνια όμως οι κώδικες αυτοί, οι κώδικες Low Density Parity Check (LDPC) όπως ονομάζονται, ήρθαν πάλι το προσκήνιο με την εξέλιξη της τεχνολογίας. To Μάρτιο του 2005, οι LDPC κώδικες έγιναν standard για το DVB-S2 (Digital Video Broadcasting). Συγκεκριμένα, το DVB-S2 χρησιμοποιεί σύστημα διόρθωσης λαθών, το οποίο βασίζεται στην αλληλουχία ενός Bose-Chaudhuri- Hochquenghem κώδικα με ένα LDPC κώδικα. Η απόδοση του συστήματος θα πρέπει να απέχει μέχρι 0.7 db από το όριο Shannon. Το γεγονός της χρήσης του LDPC κώδικα για το DVB-S2, φανερώνει την καταλληλότητα των κωδικών LDPC για υλοποίηση. 1.2 Αναπαράσταση των κωδίκων LDPC με τον πίνακα parity check Οι κώδικες LDPC ανήκουν στην κατηγορία των block κωδίκων. Οι block κώδικες εισάγουν πλεονασμό με τέτοιο τρόπο, ώστε στο δέκτη, θεωρητικά, να μπορεί να γίνει αποκωδικοποίηση με μηδενική πιθανότητα λάθους. Στους block κώδικες, τα πακέτα που μεταδίδονται έχουν σταθερό μήκος αφού κάθε λέξη δεδομένων m ψηφίων μετατρέπεται σε μία codeword n ψηφίων. Οι κώδικες LDPC χαρακτηρίζονται από έναν πίνακα parity-check, ο οποίος περιέχει πολύ λιγότερα στοιχεία με την τιμή 1 από ότι με την τιμή 0. Συγκεκριμένα, ένας (n, j, k) low-density κώδικας, είναι ένας κώδικας με μήκος block n και με paritycheck πίνακα, στον οποίο κάθε στήλη περιέχει ένα πλήθος j στοιχείων με τιμή 1 και 4
κάθε γραμμή περιέχει ένα πλήθος k στοιχείων με τιμή 1. Παράδειγμα ενός paritycheck πίνακα με n=10, j=2, και k=4 είναι το εξής: 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 Οι κώδικες LDPC μπορούν να αναπαρασταθούν και με τη χρήση ενός διμερούς γραφήματος όπως παρουσιάζεται στο σχήμα 1.2. Το γράφημα του σχήματος 1.2 αντιστοιχεί στον κώδικα LDPC με πίνακα parity check αυτόν του προηγούμενου παραδείγματος. c0 c1 c2 c3 c4 b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 σχήμα 1.2 Οι κόμβοι c0 c4 ονομάζονται check nodes και αναπαριστούν τις εξισώσεις parity-check ενώ οι κόμβοι b0 b9 ονομάζονται bit (ή variable) nodes και αναπαριστούν τα σύμβολα δεδομένων. Οι κώδικες LDPC έχουν την εξής ιδιότητα (περιορισμό ελέγχου ισοτιμίας): Όλα τα ψηφία που συνδέονται σε ένα check node έχουν modulo 2 άθροισμα ίσο με το μηδέν ή ισοδύναμα έχουν αποτέλεσμα μηδέν στην πράξη XOR. 1.2 Ο αλγόριθμος αποκωδικοποίησης message passing Η παρούσα διπλωματική εργασία επικεντρώνεται σε μεθόδους σχεδίασης της αρχιτεκτονικής αποκωδικοποιητών LDPC. Για τις σχεδιασμένες αρχιτεκτονικές χρησιμοποιείται ο αλγόριθμος message-passing [2] που είναι και ο πιο κοινά χρησιμοποιούμενος αλγόριθμος στους αποκωδικοποιητές LDPC. Στον αλγόριθμο message-passing, στέλνονται μηνύματα μεταξύ των κόμβων του γραφήματος του σχήματος 1.2 και βάσει αυτών των μηνυμάτων υπολογίζονται τιμές νέων μηνυμάτων που αποστέλλονται και αυτές στη συνέχεια. 5
Ο αλγόριθμος έχει δύο φάσεις. Στη μία φάση υπολογίζονται και στέλνονται μηνύματα από τα bit nodes στα check nodes (μηνύματα Q) και στην άλλη από τα check nodes στα bit nodes (μηνύματα R). Οι εξαρτήσεις στους υπολογισμούς των μηνυμάτων μπορούν να εξαχθούν από το διμερές γράφημα του κώδικα (ή ισοδύναμα από τον πίνακα parity check). Να σημειωθεί ότι στον υπολογισμό ενός μηνύματος Q ji δεν θα συμμετέχει το μήνυμα R ij και αντίστοιχα σε αυτόν του R ij, το Q ji. Αυτό γίνεται για να μην εμφανίζεται συσχέτιση στους υπολογισμούς. Η εκτέλεση του αλγόριθμου συνεχίζεται για ένα προκαθορισμένο αριθμό επαναλήψεων. Σε κάθε επανάληψη η απόφαση του αποκωδικοποιητή σχετικά με τη σωστή τιμή της κωδικής λέξης βελτιώνεται. Ως είσοδοι στον αλγόριθμο εισάγονται αναλογικές στάθμες τιμών που αντιστοιχούν στις εξόδους του αποδιαμορφωτή του δέκτη οι οποίες ονομάζονται soft bits. Η τελική απόφαση για το bit ονομάζεται hard bit. Τα βήματα εκτέλεσης του αλγόριθμου message-passing είναι τα εξής: Αρχικοποίηση: Για k=0 όλα τα μηνύματα R ij [0] αρχικοποιούνται στη τιμή 0. Επανάληψη k: - Φάση 1: Για κάθε bit node υπολογίζονται τα μηνύματα Q ji [k] μεταξύ του συγκεκριμένου bit node και των check nodes με τα οποία συνδέεται: Q ji [k ]= λ j + γ i' C[j]\ {i} R i j [k-1] - Φάση 2: Για κάθε check node υπολογίζονται τα μηνύματα R ij [k] μεταξύ του συγκεκριμένου check node και των bit nodes με τα οποία συνδέεται: R ij [k ]= ψ -1 [ j' R[i]\ {j} ψ( Q j i [k] ) ] δ ij όπου ψ(x) = -(1/2) log(tanh(x/2)) = ψ -1 (x) και δij είναι ένας συντελεστής διόρθωσης προσήμου ο οποίος εξαρτάται από το μέγεθος του R[i] και από τα πρόσημα των όρων Q j i [ k]. Τελική επανάληψη: Το hard bit υπολογίζεται για κάθε bit node από τη σχέση: Λ j = λ j + R ij [k] i C[j] 6
1.4 Σύντομη περιγραφή και η καινοτομία της διπλωματικής εργασίας Στη διπλωματική εργασία μελετήθηκε ο σχεδιασμός και η βελτιστοποίηση αρχιτεκτονικών VLSI αποκωδικοποιητών LDPC. Πιο συγκεκριμένα μελετήθηκε η δυνατότητα απλούστευσης του πολύπλοκου δικτύου διασύνδεσης των επεξεργαστικών στοιχείων της αρχιτεκτονικής, το οποίο και αποτελεί καθοριστικό παράγοντα της πολυπλοκότητας της υλοποίησης σε υλικό των αποκωδικοποιητών LDPC. Αναπτύχθηκε συστηματικός τρόπος αντιμετώπισης του προβλήματος αυτού, ανεξαρτήτως συγκεκριμένου κώδικα LDPC. Μελετήθηκε η απόδοση και η πολυπλοκότητα αρχιτεκτονικών με παράλληλα επεξεργαστικά στοιχεία, και με πλήρες δίκτυο διασύνδεσης μεταξύ τους καθώς και απλοποιημένο. Η απλοποίηση αυτή σημαίνει την απαλοιφή κάποιων μηνυμάτων του αλγορίθμου και συνεπώς επιδείνωση της απόδοσης. Η ανάλυση δίνει μέτρο της επιδείνωσης με σκοπό την αξιολόγηση της νέας αρχιτεκτονικής. Μελετήθηκε η επίπτωση στην απόδοση, δηλαδή η μεταβολή του BER (Bit Error Rate) σε διάφορα επίπεδα θορύβου για διάφορες εναλλακτικές υλοποιήσεις του αλγόριθμου, καθώς και η επίπτωση στην καθυστέρηση αποκωδικοποίησης και το ρυθμό παραγωγής αποτελεσμάτων. Η συνεισφορά της εργασίας αυτής έγκειται στην εισαγωγή δύο νέων αρχιτεκτονικών αποκωδικοποίησης και διαφόρων παραλλαγών και συνδυασμών τους: της αρχιτεκτονικής ομαδοποιημένων υπολογισμών και της αρχιτεκτονικής πολλών διαύλων. Η οργάνωση της εργασίας έχει ως εξής: Στο κεφάλαιο 2 παρουσιάζονται συνοπτικά υπάρχουσες αρχιτεκτονικές αποκωδικοποίησης. Στο κεφάλαιο 3 παρουσιάζεται η αρχιτεκτονική ομαδοποιημένων υπολογισμών και η μεθοδολογία συστηματικού σχεδιασμού της η οποία μπορεί και να εφαρμοστεί σε οποιοδήποτε κώδικα. Επίσης παρουσιάζονται τρόποι υλοποίησης χωρίς απώλεια όρων του αλγόριθμου αποκωδικοποίησης καθώς και με απώλεια όρων. Στη δεύτερη περίπτωση υπάρχει αρνητική επίδραση στην ικανότητα αποκωδικοποίησης αλλά η πολυπλοκότητα σε υλικό και ο χρόνος εκτέλεσης είναι μικρότεροι. Στο κεφάλαιο 4 παρουσιάζεται η αρχιτεκτονική πολλών διαύλων. Δείχνεται πως γίνεται ο χρονοπρογραμματισμός των μεταφορών μηνυμάτων και των 7
υπολογισμών με πολλούς διαύλους και μελετάται η απόδοση συναρτήσει του πλήθους των διαύλων. Τέλος, παρουσιάζεται μία συνδυασμένη αρχιτεκτονική ομαδοποιημένων υπολογισμών και πολλών διαύλων. Στο κεφάλαιο 5 παρουσιάζονται διαγράμματα BER από εξομοιώσεις σε περιβάλλον MATLAB των αρχιτεκτονικών και συμπεράσματα σχετικά με τις επιδόσεις τους με διάφορους κώδικες. Τέλος, στα παραρτήματα παρουσιάζονται οι κώδικες MATLAB που αναπτύχθηκαν στα πλαίσια της διπλωματικής καθώς και οι συγκεκριμένοι κώδικες LDPC που χρησιμοποιήθηκαν κατά τις εξομοιώσεις του κεφαλαίου 5 για την εξαγωγή συμπερασμάτων. 8
ΚΕΦΑΛΑΙΟ 2 Υπάρχουσες αρχιτεκτονικές αποκωδικοποιητών 2.1 Γενικά για τη σχεδίαση αρχιτεκτονικών αποκωδικοποιητών LDPC Η επαναληπτική διαδικασία αποκωδικοποίησης του αλγόριθμου message passing που παρουσιάστηκε στο κεφάλαιο 1, περιλαμβάνει δύο βασικά βήματα: υπολογισμός μηνυμάτων και μετάδοση των υπολογισμένων μηνυμάτων. Ο βαθμός της πολυπλοκότητας της υλοποίησης εξαρτάται από τον τρόπο που γίνεται η μετάδοση των μηνυμάτων σε σχέση με τη διαδικασία υπολογισμού τους. Ο μηχανισμός της επικοινωνίας μεταξύ των μηνυμάτων ορίζεται από το διμερή γράφο του κώδικα. Η πολυπλοκότητα των υπολογισμών είναι μικρή, αλλά η έλλειψη κανονικότητας στη δομή του μηχανισμού επικοινωνίας μεταξύ των κόμβων, που χαρακτηρίζει τους κώδικες LDPC, αυξάνει την πολυπλοκότητα καθώς για να υπάρξει αποτελεσματική δρομολόγηση των διαύλων επικοινωνίας στα VLSI κυκλώματα χρειάζονται κανονικά και δομημένα κυκλώματα. Επίσης οι πολύπλοκες διασυνδέσεις που απαιτούνται μειώνουν τη δυνατότητα παράλληλης υλοποίησης ενώ αυξάνουν και τις απαιτήσεις σε μνήμη στις περιπτώσεις της σειριακής υλοποίησης. Στην επόμενη παράγραφο παρουσιάζονται μερικές από τις υπάρχουσες και μερικές από τις προσφάτως προταθείσες αρχιτεκτονικές αποκωδικοποίησης που περιέχουν βελτιστοποιήσεις που αντιμετωπίζουν τα προβλήματα υλοποίησης των αποκωδικοποιητών LDPC. 9
2.2 Κλασσικές αρχιτεκτονικές αποκωδικοποίησης Αρχιτεκτονική Hardware-Sharing: Αποτελείται από ένα μικρό αριθμό από bit nodes, ένα μικρό αριθμό από check nodes και από μία μονάδα μνήμης, κατάλληλα οργανωμένη [4]. Ο αριθμός των nodes που χρησιμοποιούνται στην αρχιτεκτονική είναι μικρός σε σχέση με τις διαστάσεις του πίνακα parity check, ο οποίος χαρακτηρίζει το συγκεκριμένο κώδικα LDPC. Το πλεονέκτημα της Hardware-Sharing αρχιτεκτονικής είναι η εξοικονόμηση χώρου. Το γεγονός αυτό οφείλεται στο ότι είναι κατά πολύ μειωμένος ο αριθμός των bit και check nodes. Το μεγαλύτερο ποσοστό της επιφάνειας του αποκωδικοποιητή το καταλαμβάνει η μονάδα μνήμης και η μονάδα ελέγχου. Βέβαια, η αρχιτεκτονική έχει το μειονέκτημα της μικρής ταχύτητας αποκωδικοποίησης, σε σχέση με την παράλληλη αρχιτεκτονική που παρουσιάζεται στη συνέχεια. Το γεγονός αυτό οφείλεται στο ότι ο υπολογισμός των τιμών των μηνυμάτων, κατά την αποκωδικοποίηση, γίνεται κατά τμήματα. Δεν είναι δυνατόν να υπολογιστούν όλα τα μηνύματα παράλληλα, αφού ο αριθμός των bit nodes και των check nodes είναι περιορισμένος. Προφανώς η αρχιτεκτονική Hardware-Sharing είναι κατάλληλη για εφαρμογές όπου το κρίσιμο μέγεθος είναι η επιφάνεια, ενώ δεν υπάρχουν απαιτήσεις σε ταχύτητα. Παράλληλη αρχιτεκτονική Στην παράλληλη αρχιτεκτονική όλοι οι bit nodes και οι check nodes υλοποιούνται ένας προς ένας [4]. Αρκεί μόνο ενός κύκλος ρολογιού για να υπολογιστούν όλα τα bit-to-check μηνύματα και να σταλούν στους check nodes, ώστε στον επόμενο κύκλο να υπολογιστούν όλα τα check-to-bit μηνύματα κ.ο.κ. Μέσα σε δύο μόνο κύκλους ρολογιού, ολοκληρώνεται μία επανάληψη του αλγόριθμου Message-Passing. Το βασικό μειονέκτημα της αρχιτεκτονικής είναι η μεγάλη επιφάνεια, αφού απαιτεί την υλοποίηση σε υλικό όλων των bit nodes και όλων των check nodes, καθώς και τη διασύνδεση μεταξύ τους. 10
Όσον αφορά στη μονάδα ελέγχου, η πολυπλοκότητά της είναι μειωμένη σε σχέση με την αρχιτεκτονική Hardware-Sharing, αφού στη συγκεκριμένη περίπτωση η ανταλλαγή μηνυμάτων γίνεται μέσω καλωδίων, με αποτέλεσμα να μην απαιτείται η πολύπλοκη διευθυνσιοδότηση κάποιας μονάδας μνήμης. Η παράλληλη αρχιτεκτονική είναι κατάλληλη για εφαρμογές όπου η ταχύτητα είναι το κρίσιμο μέγεθος, ενώ οι απαιτήσεις για μικρή επιφάνεια δεν είναι καθοριστικής σημασίας. High-throughput low-density parity-check decoder architectures Στην εργασία αυτή [5] παρουσιάζονται δύο τρόποι δρομολόγησης της αποκωδικοποίησης και οι αντίστοιχες σειριακές αρχιτεκτονικές που παράγονται από αυτές. Χρησιμοποιούνται κώδικες είτε με τυχαία παραχθέντες πίνακες parity-check είτε με πίνακες που χρησιμοποιούν γεωμετρικές ιδιότητες. Και οι δύο τρόποι δρομολόγησης έχουν μικρή υπολογιστική πολυπλοκότητα. Με το χρησιμοποιούμενο τρόπο αποκωδικοποίησης μειώνονται οι απαιτήσεις σε μνήμη, η οποία και εξαρτάται μόνο από τον αριθμό των bits σε κάθε block και όχι από τον αριθμό των ακμών του διμερούς γράφου. High-Throughput LDPC Decoders Στην αρχιτεκτονική που προτείνεται σε αυτήν την εργασία [3] χρησιμοποιούνται βελτιστοποιήσεις σε τρία επίπεδα του συστήματος: στη σχεδίαση του κώδικα, στον αλγόριθμο αποκωδικοποίησης και στην αρχιτεκτονική του αποκωδικοποιητή. Η πολυπλοκότητα των διασυνδέσεων αντιμετωπίζεται με τη σχεδίαση τέτοιων κωδικών που να περιέχουν κάποια κανονικότητα που να οδηγεί σε απλούστερα κυκλώματα διασυνδέσεων. Η μνήμη που απαιτείται μειώνεται κατά 75% με τη χρήση ενός αλγόριθμου αποκωδικοποίησης που χρησιμοποιεί λιγότερα μηνύματα. Η αρχιτεκτονική που προτείνεται με βάση τα παραπάνω είναι ένας επεκτάσιμος και δυναμικός τρόπος για την αποθήκευση και δρομολόγηση των μηνυμάτων και μία πλήρης αρχιτεκτονική αποκωδικοποιητή. Για το κύκλωμα της 11
μνήμης, χρησιμοποιείται μία επεκτάσιμη αρχιτεκτονική και δίκτυα μεταφοράς μηνυμάτων. 2.3 Προσφάτως προταθείσες αρχιτεκτονικές αποκωδικοποίησης A Low-Power Termination Criterion for Iterative LDPC Code Decoders Στην εργασία αυτή [6] προτείνεται μία αρχιτεκτονική η οποία να ανιχνεύει το φαινόμενο των «κύκλων» στον αποκωδικοποιητή, του φαινομένου αυτού δηλαδή κατά το οποίο ο αποκωδικοποιητής επαναλαμβάνει τις ίδιες τιμές στα soft bits σε κυκλική ακολουθία. Αυτό έχει ως αποτέλεσμα την άσκοπη κατανάλωση ενέργειας. Στην αρχιτεκτονική χρησιμοποιείται επιπρόσθετο τμήμα το οποίο τερματίζει τον αποκωδικοποιητή όταν ανιχνευτεί κύκλος. Για την ανίχνευση των κύκλων χρειάζεται να υπάρχουν αποθηκευμένες οι προηγούμενες τιμές των soft words για σύγκριση με τη τρέχουσα soft word. Για την αποθήκευση αυτή χρησιμοποιείται μνήμη CAM (Content Addressable Memory), η οποία απαιτεί μόνο μία προσπέλαση για να βρεθεί η όμοια soft-word, αν υπάρχει, σε αντίθεση με τη μνήμη RAM που θα χρειαζόταν πολλαπλές προσπελάσεις. Χρησιμοποιώντας τη μνήμη CAM περιορίζεται ο αριθμός των προσπελάσεων σε μία, αλλά δε μειώνεται το μέγεθος της απαιτούμενης μνήμης. Design and analysis of LDPC decoders for software defined radio Στην εργασία αυτή [7] προτείνεται μία επεκτάσιμη αρχιτεκτονική αποκωδικοποίησης που υποστηρίζει διάφορες τιμές για το μέγεθος code rate και για το μέγεθος του block. Η αρχιτεκτονική βασίζεται σε προγραμματιζόμενο επεξεργαστή. Χρησιμοποιούνται τρεις τεχνικές για να αυξηθεί ο ρυθμός παραγωγής δεδομένων: επιτάχυνση στο data path, προσθήκη στοιχείων μνήμης και χρήση κάποιων assembly εντολών. Studies on Practical Low Complexity Decoding of LDPC Codes Στην εργασία αυτή [8] μελετάται ένας μικρής πολυπλοκότητας τρόπος υλοποίησης του αποκωδικοποιητή. Ερευνώνται οι αλγόριθμοι Weighted Bit Flipping 12
(WBF) οι οποίοι είναι αλγόριθμοι αποκωδικοποίησης με χαμηλή πολυπλοκότητα αφού χρησιμοποιούν απλές λογικές πράξεις. Έχουν όμως σημαντική μείωση στην απόδοση. Παρουσιάζεται μία βελτιστοποιημένη προσέγγιση αποκωδικοποίησης, η 2-bit soft decoding. Σε αυτήν κάθε μήνυμα αναπαριστάται με δύο bits: ένα για το πρόσημο και ένα για το απόλυτο μέγεθος. Η προτεινόμενη προσέγγιση έχει συγκρίσιμη πολυπλοκότητα με τους αλγόριθμους WBF αλλά σημαντικά καλύτερη απόδοση. Reconfigurable FPGA implementation of product accumulate codes Η αρχιτεκτονική αυτή [9] είναι μία σειριακή αρχιτεκτονική βασισμένη σε μνήμη και μονάδες pipeline. Χρησιμοποιείται μια δομή pipeline με τρία επίπεδα για να αυξήσει το ρυθμό παραγωγής δεδομένων χωρίς να αυξηθεί σημαντικά η καθυστέρηση. Η προτεινόμενη αρχιτεκτονική, υλοποιημένη σε FPGA, επιτυγχάνει να υπολογίζει σε ένα κύκλο ρολογιού μία πλήρη επανάληψη του αλγόριθμου αποκωδικοποίησης για ένα κωδικοποιημένο bit. Ο ρυθμός παραγωγής δεδομένων εξαρτάται μόνο από των αριθμό των επαναλήψεων και όχι από το μέγεθος του block ενώ η καθυστέρηση είναι γραμμική με το μέγεθος του block. Area-efficient FPGA-based architecture for fully-parallel stochastic LDPC decoding Στην εργασία αυτή [10] παρουσιάζεται μία αρχιτεκτονική αποκωδικοποίησης βασισμένη στη στοχαστική αποκωδικοποίηση η οποία είναι μία εναλλακτική μέθοδος για υλοποιήσεις αποκωδικοποιητών μικρής πολυπλοκότητας. Στη στοχαστική αποκωδικοποίηση οι πιθανότητες αναπαριστώνται από σειρές στοχαστικών bits. Η αναπαράσταση αυτή οδηγεί σε μικρής πολυπλοκότητας κυκλώματα υπολογισμού των πράξεων του πολλαπλασιασμού και της διαίρεσης. Η βασισμένη στην στοχαστική αποκωδικοποίηση αρχιτεκτονική που προτείνεται είναι μία πλήρως παράλληλη αρχιτεκτονική υλοποιημένη σε FPGA. Χρησιμοποιούνται τεχνικές που μειώνουν την τυχαιότητα που υπάρχει στα στοχαστικά κυκλώματα. Τα αρχιτεκτονικά δομικά στοιχεία των FPGA είναι κατάλληλα για υλοποίηση του στοχαστικού αποκωδικοποιητή με τρόπο που να είναι αποδοτικός ως προς το εμβαδό που καταλαμβάνει. 13
ΚΕΦΑΛΑΙΟ 3 Αρχιτεκτονική ομαδοποιημένων υπολογισμών 3.1. Η βασική αρχιτεκτονική ομαδοποιημένων υπολογισμών Οι διάφορες υλοποιήσεις της αρχιτεκτονικής αυτές συνίστανται στο διαμοιρασμό σε ομάδες των υπολογισμών του αλγόριθμου αποκωδικοποίησης και την υλοποίηση κάθε ομάδας σε διαφορετικά ζεύγη επεξεργαστών όπως παρουσιάζεται στο σχήμα 3.1. Ο επεξεργαστής Q_CPU υπολογίζει μηνύματα από bit node σε check node (μηνύματα Q) ενώ ο επεξεργαστής R_CPU μηνύματα από check node σε bit node (μηνύματα R). Τα μηνύματα Q και R μεταδίδονται στο δικατευθυντήριο δίαυλο τη στιγμή που υπολογίζονται. R Q - CPU R - CPU Q σχήμα 3.1 Τα μηνύματα Q υπολογίζονται στο πρώτο μέρος του αλγόριθμου αποκωδικοποίησης και μεταδίδονται στον άλλο επεξεργαστή όπου στο δεύτερο μέρος υπολογίζονται τα μηνύματα R. Όταν υπάρχει μόνο ένα τέτοιο ζεύγος επεξεργαστών, η μετάδοση των μηνυμάτων γίνεται χωρίς προβλήματα. Για να αυξηθεί η ταχύτητα, μπορούν να χρησιμοποιηθούν περισσότερα από ένα τέτοια ζεύγοι επεξεργαστών και οι υπολογισμοί να γίνονται παράλληλα (σχήμα 3.2). Τότε όμως θα χρειαστεί να υπάρξει επικοινωνία μεταξύ των ζευγών επεξεργαστών με εξωτερικό δίαυλο για τη μετάδοση μηνυμάτων. Αυτό θα έχει ως αποτέλεσμα να αυξηθεί ο χρόνος εκτέλεσης καθώς και η πολυπλοκότητα σε υλικό της υλοποίησης. 14
Q - CPU R - CPU Q - CPU R - CPU Q - CPU R - CPU Q - CPU R - CPU σχήμα 3.2 Πρέπει λοιπόν η υλοποίηση του αλγόριθμου στα ζεύγη επεξεργαστών να γίνει έτσι ώστε να μειωθεί η ποσότητα των δεδομένων που χρειάζεται να μεταδοθούν στον εξωτερικό δίαυλο. Αυτό επιτυγχάνεται με τη μεθοδολογία που παρουσιάζεται στην επόμενη παράγραφο, τη μεθοδολογία δηλαδή με την οποία γίνεται η εύρεση του τρόπου που θα γίνει ο διαμοιρασμός των υπολογισμών. 3.2 Η μεθοδολογία συστηματικού σχεδιασμού H ομαδοποίηση των υπολογισμών μπορεί να γίνει έτσι ώστε στην φάση των υπολογισμών των R να είναι διαθέσιμα όλα τα Q που είναι αναγκαία. Αυτό γίνεται αν σε κάθε ομάδα τοποθετηθούν οι υπολογισμοί ανά γραμμή του parity-check πίνακα. Για τον υπολογισμό όμως των Q κάποια R θα λείπουν, δηλαδή θα είναι υπολογισμένα στην άλλη ομάδα. Πρέπει να μοιρασθούν έτσι οι υπολογισμοί ώστε τα μηνύματα R που λείπουν να είναι τα ελάχιστα δυνατά. Ο τρόπος ομαδοποίησης βάσει του προηγουμένου μπορεί να περιγραφεί αναλυτικότερα με το παράδειγμα ενός απλού κώδικα LDPC. Έστω ότι χρησιμοποιείται ο κώδικας με parity check πίνακα τον εξής: 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 Οι σχέσεις που υπολογίζουν τα μηνύματα Q παράγονται από κάθε στήλη του πίνακα H ως εξής: 1 η στήλη: Q(1,1)=l(1)+R(2,1) Q(1,2)=l(1)+R(1,1) 15
2 η στήλη: Q(2,1)=l(2)+R(2,2) Q(2,2)=l(2)+R(1,2) κοκ Οι σχέσεις που υπολογίζουν τα μηνύματα R παράγονται αντίστοιχα από κάθε γραμμή του πίνακα H ως εξής: 1 η γραμμή: R(1,1)=-0.5*log(tanh((-0.5*log(tanh(abs(Q(2,1))/2))-0.5*log(tanh(abs(Q(3,1))/2)))/2))*signR(1,1) R(1,2)=-0.5*log(tanh((-0.5*log(tanh(abs(Q(1,1))/2))-0.5*log(tanh(abs(Q(3,1))/2)))/2))*signR(1,2) R(1,3)=-0.5*log(tanh((-0.5*log(tanh(abs(Q(1,1))/2))-0.5*log(tanh(abs(Q(2,1))/2)))/2))*signR(1,3) 2 η γραμμή: R(2,1)=-0.5*log(tanh((-0.5*log(tanh(abs(Q(2,2))/2))-0.5*log(tanh(abs(Q(4,2))/2)))/2))*signR(2,1) R(2,2)=-0.5*log(tanh((-0.5*log(tanh(abs(Q(1,2))/2))-0.5*log(tanh(abs(Q(4,2))/2)))/2))*signR(2,2) R(2,4)=-0.5*log(tanh((-0.5*log(tanh(abs(Q(1,2))/2))-0.5*log(tanh(abs(Q(2,2))/2)))/2))*signR(2,4) κοκ Τα μηνύματα Q που χρησιμοποιούνται στους υπολογισμούς κάθε γραμμής για τον υπολογισμό των μηνυμάτων R δεν χρησιμοποιούνται στους υπολογισμούς καμίας άλλης γραμμής. Άρα τοποθετώντας τους υπολογισμούς των R κάθε γραμμής στην ίδια ομάδα, υπάρχουν διαθέσιμα τα Q που χρειάζονται και δεν χρειάζεται επικοινωνία μεταξύ των ομάδων για τη μεταφορά μηνυμάτων Q. Όταν χρειαστεί να υπολογιστούν τα μηνύματα Q όμως, κάποια μηνύματα R θα λείπουν (θα είναι υπολογισμένα σε άλλη ομάδα). Στο παράδειγμα του κώδικα που χρησιμοποιείται, αν ομαδοποιήσουμε τους υπολογισμούς βάζοντας αυτούς των 3 πρώτων γραμμών στη μία ομάδα και των τριών τελευταίων σε δεύτερη ομάδα (σχήμα 3.3) τα μηνύματα R που θα λείπουν θα είναι: το R(4,5) που χρειάζεται για τον υπολογισμό του Q(5,3) και το R(3,5) που χρειάζεται για τον υπολογισμό του Q(5,4) 1 1 1 0 0 0 0 0 0 1 η ομάδα: 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 2 η ομάδα: 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 σχήμα 3.3 16
Στο σχήμα 3.3, στις γραμμές 3 και 4, φαίνονται (με πλαίσιο) στη στήλη 5 οι θέσεις του πίνακα που δημιουργούν τις παραπάνω ελλείψεις των μηνυμάτων R. Οι ελλείψεις αυτές δημιουργούνται όταν υπάρχουν στοιχεία του πίνακα με τιμή 1 που να ανήκουν στην ίδια στήλη αλλά σε γραμμές διαφορετικών ομάδων. Πρέπει δηλαδή να ελαχιστοποιηθούν οι περιπτώσεις αυτές για να μειωθεί το πλήθος των R που λείπουν από την μία στην άλλη ομάδα. Στην περίπτωση του πίνακα που χρησιμοποιείται εδώ ως παράδειγμα, η ομαδοποίηση είναι εύκολη. Για κώδικες όμως που χρησιμοποιούνται στην πράξη και που οι διαστάσεις τους είναι τάξεις μεγέθους μεγαλύτερες, χρειάζεται ένας συστηματικός τρόπος για να γίνεται η ομαδοποίηση αυτή. Ένας τέτοιος συστηματικός τρόπος αναπτύχθηκε, στα πλαίσια της διπλωματικής εργασίας, με τη μορφή ενός αλγόριθμου που χρησιμοποιεί ένα γράφημα με κόμβους τις γραμμές του parity check πίνακα. Οι ακμές του γραφήματος έχουν βάρος ίσο με το άθροισμα των στηλών με τιμή 1 και στις δύο γραμμές των γραμμών του πίνακα στις οποίες αντιστοιχούν οι κόμβοι που είναι στα δύο άκρα της ακμής. Για παράδειγμα για δύο γραμμές που αναπαρίστανται με τους κόμβους v1 και v2 και έχουν τις τιμές 11010 και 11100 η ακμή v 1,2 θα έχει την τιμή 2, αφού στις στήλες 1 και 2 υπάρχει τιμή 1 στις δύο γραμμές και όχι στις υπόλοιπες στήλες. Σύμφωνα με αυτά το γράφημα που αντιστοιχεί στον πίνακα του παραδείγματος παρουσιάζεται στο σχήμα 3.4. 2 1 2 1 1 6 3 2 1 1 1 5 4 σχήμα 3.4 17
Για να επιλεγούν οι δύο ομάδες, αυτό που πρέπει να γίνει είναι να βρεθεί η τομή αυτή που χωρίζει το γράφημα σε δυο ίσα μέρη και που το άθροισμα των ακμών που περιέχονται σε αυτή να είναι το ελάχιστο. Αυτό γίνεται ξεκινώντας από το πλήρες γράφημα με όλους τους κόμβους σε μία ομάδα και επιλέγοντας κάθε φορά τον κόμβο που η απομάκρυνση του από τους υπόλοιπους θα προκαλέσει την απώλεια των ακμών με το λιγότερο συνολικό βάρος. Αυτό γίνεται για τους μισούς κόμβους διαδοχικά και στο τέλος υπάρχουν δύο ομάδες με τις επιθυμητές ιδιότητες. 3.3. Υλοποίηση χωρίς απώλεια όρων του αλγόριθμου αποκωδικοποίησης Στην περίπτωση αυτή δεν υπάρχει επίπτωση στην απόδοση του αλγόριθμου ως προς το ρυθμό σφάλματος. Μεταξύ των ζευγών επεξεργαστών υπάρχουν εξωτερικοί δίαυλοι στους οποίους μεταδίδονται τα μηνύματα που παράγονται σε κάποιο ζεύγος αλλά χρειάζονται σε κάποιο άλλο. Για να μην υπάρξει απώλεια μηνυμάτων μεταξύ των επεξεργαστών, θα πρέπει κάθε ένας από τους επεξεργαστές Q να ενώνεται με όλους τους επεξεργαστές R και κάθε επεξεργαστής R με όλους τους Q. Για να γίνει αυτό υπάρχουν δύο τρόποι: α) Ξεχωριστοί δίαυλοι μεταξύ των επεξεργαστών για κάθε σύνδεση. Αυτός ο τρόπος οδηγεί σε υλοποίηση η οποία δεν εισάγει καθυστέρηση λόγω της μεταφοράς μηνυμάτων στους εξωτερικούς διαύλους. Η συνολική καθυστέρηση για N ζεύγη επεξεργαστών θα είναι η αρχική του ενός ζεύγους διαιρούμενη με N, αφού οι υπολογισμοί εκτελούνται παράλληλα σε N επεξεργαστές. Μεγάλο μειονέκτημα είναι η ότι το πλήθος των αναγκαίων διαύλων αυξάνεται ανάλογα του N 2 : για 2 ζεύγη απαιτούνται 4 δίαυλοι, για 3 απαιτούνται 9, για 4 απαιτούνται 16 κ.ο.κ. Να σημειωθεί ότι στην περίπτωση της σύνδεσης όλων των ζευγών μεταξύ τους δεν έχει νόημα η βελτιστοποίηση της παραγράφου 3.2, αφού δεν μεταβάλλεται ούτε η πολυπλοκότητα σε υλικό αλλά ούτε και η συνολική καθυστέρηση με όποιο τρόπο και να υλοποιηθούν οι υπολογισμοί στους επεξεργαστές. β) Χρήση των ήδη υπαρχόντων διαύλων μεταξύ του κάθε ζεύγους και σύνδεση πάνω σε αυτών των διαύλων που υλοποιούν την επικοινωνία μεταξύ των ζευγών. Σε αυτήν την περίπτωση πρέπει να υπάρχει μία μονάδα εξωτερικά η οποία, κατά τη διάρκεια μετάδοσης των R αποθηκεύει τα δεδομένα που χρειάζεται κάποια 18
άλλη ομάδα. Στη συνέχεια, όταν τελειώσει η μετάδοση των δεδομένων στους τοπικούς διαύλους, μεταδίδει τα αποθηκευμένα δεδομένα. Με αυτό τον τρόπο οι διασυνδέσεις είναι απλούστερες. Η μετάδοση όμως των μηνυμάτων μεταξύ των ζευγών θα γίνεται μετά από αυτή μεταξύ των τοπικών επεξεργαστών εφόσον χρησιμοποιούνται οι ίδιοι δίαυλοι. Το αποτέλεσμα θα είναι να υπεισέρχεται καθυστέρηση. Σε αυτήν την περίπτωση έχει νόημα η βελτιστοποίηση της παραγράφου 3.2. αφού όσο λιγότερα είναι τα μηνύματα που χρειάζεται να μεταδοθούν μεταξύ των ζευγών επεξεργαστών, τόσο μικρότερη θα είναι η καθυστέρηση. Η συνολική καθυστέρηση δίνεται από τη σχέση: T N = T 1 /N + T R Ο όρος T R αντιστοιχεί στο χρόνο που χρειάζεται για να μεταδοθούν τα μηνύματα R μεταξύ των ζευγών επεξεργαστών και στο χρόνο που χρειάζεται για να υπολογισθούν τα μηνύματα Q που τα χρειάζονται. Όσο καλύτερα αποτελέσματα επιτυγχάνονται με τη μέθοδο συστηματικού σχεδιασμού, τόσο μειώνεται αυτός ο όρος. Στο σχήμα 3.5 α και β παρουσιάζονται αντίστοιχα οι δύο τρόποι σύνδεσης για την περίπτωση των δύο ομάδων ζευγών. Q - CPU R - CPU Q - CPU R - CPU (α) EXT BUS CONTROL Q - CPU R - CPU Q - CPU R - CPU σχήμα 3.5 (β) Η λειτουργία του της μονάδας ext_bus_control παρουσιάζεται με περισσότερη λεπτομέρεια στο σχήμα 3.6, για την περίπτωση των δύο ομάδων. Η μονάδα έχει δύο 19
διαύλους οι οποίοι είναι και είσοδοι και έξοδοι ανάλογα με τη χρονική στιγμή. Στο χρόνο που μεταδίδονται τα μηνύματα R (σχήμα Α) λειτουργούν ως είσοδοι ταυτόχρονα και διαβάζουν μόνο τα μηνύματα αυτά που ενδιαφέρουν το άλλο τμήμα. Μόλις τελειώσει η μετάδοση των R λειτουργούν ως έξοδοι (σχήμα Β) πάλι ταυτόχρονα. ext_bus_control FIFO memory FIFO memory A B FIFO memory FIFO memory FIFO memory FIFO memory σχήμα 3.6 Στις υλοποιήσεις με πολλές ομάδες οι μονάδες ext_bus_control έχουν πιο πολύπλοκη υλοποίηση αλλά την ίδια αρχή λειτουργίας. 3.4. Υλοποίηση με απώλεια όρων του αλγόριθμου αποκωδικοποίησης Οι αρχιτεκτονικές της παραγράφου μπορούν να υλοποιηθούν και χωρίς να υπάρχει πλήρης ή και καθόλου διασύνδεση μεταξύ των ζευγών επεξεργαστών. Σε αυτή την περίπτωση ο χρόνος εκτέλεσης του αλγόριθμου αποκωδικοποίησης καθώς και η πολυπλοκότητα του υλικού θα μειώνονται αλλά θα μειώνεται αναπόφευκτα και η απόδοση με αύξηση του ρυθμού σφαλμάτων. Προφανώς η βελτιστοποίηση της παραγράφου 3.2 οδηγεί στην ελάχιστη αρνητική επίδραση στην απόδοση αφού με αυτή μειώνονται οι όροι που λείπουν μεταξύ των ομάδων. Υλοποίηση χωρίς διασυνδέσεις μεταξύ των ομάδων Μία περίπτωση είναι να μην υπάρχει καθόλου διασύνδεση μεταξύ των ομάδων. Τότε η συνολική καθυστέρηση για Ν ζεύγη επεξεργαστών θα είναι T N = T 1 /N αφού δε θα υπάρχει καθυστέρηση για μετάδοση μηνυμάτων μεταξύ των ζευγών. Φυσικό επακόλουθο της κατάργησης των διασυνδέσεων θα είναι βέβαια η αύξηση του BER αφού κάποιοι όροι στους υπολογισμούς του αλγόριθμου αποκωδικοποίησης 20
θα λείπουν. Στο σχήμα 3.7 παρουσιάζονται ενδεικτικά οι καμπύλες του BER για ένα κώδικα με parity check πίνακα 102 γραμμών, 204 στηλών, βάρους γραμμής 6, στήλης 3 και για δύο ομάδες χωρίς διασυνδέσεις μεταξύ τους. Στο σχήμα 3.7.α για δύο επαναλήψεις του αλγόριθμου αποκωδικοποίησης και στο σχήμα 3.7.β για τέσσερις. Και στις δύο περιπτώσεις, με διακεκομμένη γραμμή παρουσιάζεται η απόδοση με απώλειες μηνυμάτων (χωρίς διασυνδέσεις μεταξύ των ομάδων) και με συνεχόμενη χωρίς απώλειες. Στο κεφάλαιο 5 παρουσιάζονται καμπύλες BER για διάφορους κώδικες και διάφορες τιμές του πλήθους ομάδων. 10 0 10-1 10-2 BER (2 iter) 10-3 10-4 10-5 0 1 2 3 4 5 6 7 SNR (db) (α) 10 0 10-1 10-2 BER (4 iter) 10-3 10-4 10-5 0 1 2 3 4 5 6 7 SNR (db) σχήμα 3.7 (β) 21
Υλοποίηση με χρονικά καταμεριζόμενο δίαυλο μεταξύ των ομάδων Στην περίπτωση αυτή, εκτός από τους τοπικούς διαύλους που ενώνουν κάθε ζεύγος επεξεργαστών, μεταξύ των ομάδων υπάρχει ένας δίαυλος ο οποίος ενώνει όλους τους επεξεργαστές. Σε αυτό το δίαυλο σε κάθε επανάληψη μεταδίδει ένας διαφορετικός επεξεργαστής R προς τους επεξεργαστές Q. Υπάρχει δηλαδή χρονικός καταμερισμός του διαύλου μεταξύ των επεξεργαστών R. Q CPU1 R CPU1 Q CPU2 R CPU2 Q CPU3 R CPU3 Q CPU4 R CPU4 σχήμα 3.8 Στο σχήμα 3.8 παρουσιάζεται η μορφή μιας αρχιτεκτονικής τεσσάρων ομάδων με ένα χρονικά καταμεριζόμενο δίαυλο (με το πιο έντονο χρώμα). Υλοποίηση με μειωμένες διασυνδέσεις μεταξύ των ομάδων Άλλη περίπτωση είναι να υπάρχει μειωμένη διασύνδεση μεταξύ των ζευγών επεξεργαστών. Στην περίπτωση αυτή, αντί για όλες τις συνδέσεις χρησιμοποιούνται λιγότερες αυτές με τα περισσότερα μηνύματα προς μετάδοση. Με αυτό τον τρόπο η πολυπλοκότητα σε υλικό είναι μικρότερη από ότι αυτή με πλήρες συνδέσεις και μεγαλύτερη από αυτή με καθόλου συνδέσεις. Η απόδοση του BER βρίσκεται και αυτή κάπου ανάμεσα. Υπάρχουν πολλές διαφορετικές υλοποιήσεις της αρχιτεκτονικής με μειωμένες διασυνδέσεις οι οποίες εξαρτώνται κάθε φορά από τον κώδικα και το ανεκτό επίπεδο λαθών. Για κάποιους κώδικες μπορεί η ομαδοποίηση να δίνει πολύ καλά αποτελέσματα, δηλαδή ομάδες με λίγα απαιτούμενα μηνύματα μεταξύ τους, και να 22
είναι εφικτή η κατάργηση των διασυνδέσεων με μικρή επίπτωση στην απόδοση. Η σε κάποια άλλη περίπτωση μπορεί να είναι ανεκτή η σχετικά μεγάλη μείωση της απόδοσης και να καταργούνται διασυνδέσεις ακόμα και μεταξύ ομάδων με πολλά μηνύματα μεταξύ τους. 23
ΚΕΦΑΛΑΙΟ 4 Αρχιτεκτονική πολλών διαύλων 4.1. Χρονοπρογραμματισμός σε αρχιτεκτονική πολλών διαύλων Παράδειγμα της αρχιτεκτονικής με χρήση πολλών διαύλων παρουσιάζεται στο σχήμα 4.1. R Q R Q R Q σχήμα 4.1 Οι δίαυλοι ανάμεσα στους επεξεργαστές είναι κοινοί δίαυλοι στους οποίους δίνει έξοδο ένας επεξεργαστής κάθε φορά. Είτε μεταδίδει (σε κάθε δίαυλο) ένας επεξεργαστής Q και διαβάζουν όλοι οι επεξεργαστές R είτε ένας επεξεργαστής R και διαβάζουν όλοι οι επεξεργαστές Q. Για την ανάλυση, θεωρείται ότι κάθε μεταφορά μηνύματος σε δίαυλο διαρκεί ένα κύκλο ρολογιού και ότι κάθε επεξεργαστής έχει τη δυνατότητα υπολογισμού ενός αποτελέσματος σε κάθε κύκλο (έστω και μετά από pipeline). Επίσης κάθε επεξεργαστής μπορεί να διαβάζει από όλους τους διαύλους ταυτόχρονα. 24
Σε μία τέτοια αρχιτεκτονική πρέπει να αυξηθεί το πλήθος των επεξεργαστών για να υπολογίζονται όλα τα μηνύματα που μπορούν να υπολογιστούν σε κάθε χρονική στιγμή. Αυτό συμβαίνει διότι αυξάνεται ο ρυθμός μεταφοράς των μηνυμάτων μεταξύ των επεξεργαστών λόγω της αύξησης του αριθμού των διαύλων. Αποδεικνύεται, με έλεγχο σε πολλούς κώδικες για διάφορες τιμές του πλήθους των διαύλων, ότι το πλήθος των επεξεργαστών που απαιτείται έτσι ώστε να υπολογίζονται όλα τα μηνύματα που μπορούν να υπολογιστούν και να μη συσσωρεύονται δεδομένα εισόδου στους επεξεργαστές, είναι ίσο με δύο φορές το πλήθος των διαύλων. Μισοί επεξεργαστές χρησιμοποιούνται για τον υπολογισμό μηνυμάτων Q και μισοί για τον υπολογισμό μηνυμάτων R. Δηλαδή για πλήθος b διαύλων, απαιτούνται b επεξεργαστές Q και b επεξεργαστές R. Λεπτομερέστερη εξήγηση μπορεί να γίνει με το παράδειγμα ενός απλού κώδικα που παρουσιάζεται στη συνέχεια. Αν με n και m συμβολίζονται τα βάρη της γραμμής και της στήλης αντίστοιχα του parity check πίνακα, τότε κάθε μήνυμα R χρησιμοποιείται για τον υπολογισμό m- 1 μηνυμάτων Q και κάθε μήνυμα Q για τον υπολογισμό n-1 μηνυμάτων R. Ή αλλιώς κάθε μήνυμα Q εξαρτάται από m-1 μηνύματα R και κάθε μήνυμα R από n-1 μηνύματα Q. Για παράδειγμα για τον κώδικα LDPC με τον παρακάτω parity check πίνακα που έχει βάρος γραμμής n=4 και βάρος στήλης m=3: 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 Οι εξαρτήσεις των μηνυμάτων Q για τις δύο πρώτες στήλες θα είναι: Q1,1 εξαρτάται από τα R3,1 R10,1 Q1,3 R1,1 R10,1 Q1,10 R1,1 R3,1 Q2,3 R7,2 R10,2 Q2,7 R3,2 R10,2 Q2,10 R3,2 R7,2. κ.ο.κ. 25
Ενώ οι εξαρτήσεις των μηνυμάτων R για τις δύο πρώτες γραμμές θα είναι: R1,1 εξαρτάται από τα Q8,1 Q14,1 Q16,1 R1,8 Q1,1 Q14,1 Q16,1 R1,14 Q1,1 Q8,1 Q16,1 R1,16 Q1,1 Q8,1 Q4,1 R2,9 Q10,2 Q11,2 Q12,2 R2,10 Q9,2 Q11,2 Q12,2 R2,11 Q9,2 Q10,2 Q12,2 R2,12 Q9,2 Q10,2 Q11,2 κ.ο.κ. Για να υπολογισθεί ένα μήνυμα, έστω Q, θα πρέπει να έχουν μεταδοθεί στους διαύλους το μηνύματα R από τα οποία εξαρτάται. Οι επεξεργαστές σε κάποιες χρονικές στιγμές δεν υπολογίζουν μηνύματα γιατί δεν έχουν συμπληρωθεί τα απαιτούμενα μηνύματα για υπολογισμό κάποιου μηνύματος. Με κατάλληλη μετατόπιση των υπολογισμών επιτυγχάνεται 100% χρησιμοποίηση των επεξεργαστών και χρήση αριθμού επεξεργαστών (για καθένα από τα δύο είδη) ίση με το πλήθος των διαύλων. Μία θεωρητική εξήγηση του γιατί χρειάζονται επεξεργαστές κάθε είδους ίσοι σε πλήθος με τον αριθμό των διαύλων, μπορεί να δοθεί αν ληφθεί υπόψη ότι n μηνύματα Q χρησιμοποιούνται στους υπολογισμούς κάθε γραμμής για τον υπολογισμό n μηνυμάτων R και δεν χρησιμοποιούνται στους υπολογισμούς καμίας άλλης γραμμής για τον υπολογισμό άλλων μηνυμάτων R. Αντίστοιχα, m μηνύματα R χρησιμοποιούνται στους υπολογισμούς κάθε στήλης για τον υπολογισμό m μηνυμάτων Q και δεν χρησιμοποιούνται στους υπολογισμούς καμίας άλλης στήλης για υπολογισμό άλλων μηνυμάτων Q. Στην περίπτωση του υπολογισμού των μηνυμάτων R (τα ίδια ισχύουν και για την περίπτωση του υπολογισμού των μηνυμάτων Q), αν b ο αριθμός των διαύλων, n μηνύματα Q μεταδίδονται σε n/b κύκλους, που σημαίνει ότι και n μηνύματα R μπορούν να υπολογισθούν στο ίδιο χρονικό διάστημα. Άρα, αφού n μηνύματα R πρέπει να υπολογισθούν σε n/b κύκλους και κάθε επεξεργαστής R υπολογίζει ένα μήνυμα R σε κάθε κύκλο, θα χρειαστούν b επεξεργαστές. Στη συνέχεια παρουσιάζεται η διαδικασία της μεταφοράς των υπολογισμών για διάφορες τιμές του πλήθους των διαύλων για τον απλό κώδικα LDPC. 26
Χρήση ενός διαύλου: Εάν χρησιμοποιηθεί μόνο ένας δίαυλος για την επικοινωνία μεταξύ των επεξεργαστών τότε μόνο ένα μήνυμα θα μεταφέρεται σε κάθε κύκλο ρολογιού. Στο παρακάτω πίνακα παρουσιάζονται, για το πρώτο μέρος του αλγόριθμου (υπολογισμοί των μηνυμάτων Q), τα μηνύματα R που μεταφέρονται και τα μηνύματα Q που είναι έτοιμα για υπολογισμό σε κάθε κύκλο: δίαυλος1 έτοιμα για υπολογισμό T1 R3,1 T2 R10,1 Q1,1 T3 R1,1 Q1,3 Q1,10 T4 R3,2 T5 R7,2 Q2,10 T6 R10,2 Q2,3 Q2,7 κ.ο.κ. Με την κατάλληλη μεταφορά των υπολογισμών που πλεονάζουν σε επόμενους κύκλους στους οποίους ο επεξεργαστής δεν χρησιμοποιείται το απαιτούμενο πλήθος των επεξεργαστών γίνεται ίσο με ένα: δίαυλος1 επεξ1 T1 R3,1 T2 R10,1 Q1,1 T3 R1,1 Q1,3 T4 R3,2 Q1,10 T5 R7,2 Q2,10 T6 R10,2 Q2,3 Τ7 Q2,7 κ.ο.κ. Για το δεύτερο μέρος του αλγόριθμου (υπολογισμός μηνυμάτων R), οι αντίστοιχοι πίνακες θα είναι: δίαυλος1 έτοιμα για υπολογισμό Tn Q8,1 Tn+1 Q14,1 Tn+2 Q16,1 R1,1 Tn+3 Q1,1 R1,8 R1,14 R1,16 Tn+4 Q9,2 Tn+5 Q10,2 Tn+6 Q11,2 R2,12 Tn+7 Q12,2 R2,9 R2,10 R2,11 κ.ο.κ. 27
Και με μεταφορά των υπολογισμών: δίαυλος1 επεξ1 Tn Q8,1 Tn+1 Q14,1 Tn+2 Q16,1 R1,1 Tn+3 Q1,1 R1,8 Tn+4 Q9,2 R1,14 Tn+5 Q10,2 R1,16 Tn+6 Q11,2 R2,12 Tn+7 Q12,2 R2,9 Tn+8 R2,10 Tn+9 R2,11 κ.ο.κ. Χρήση δύο διαύλων: Για τον υπολογισμό των μηνυμάτων Q πριν τη μεταφορά των υπολογισμών: δίαυλ1 δίαυλ2 έτοιμα για υπολογισμό T1 R3,1 R10,1 Q1,1 T2 R1,1 R3,2 Q1,3 Q1,10 T3 R7,2 R10,2 Q2,3 Q2,7 Q2,10 T4 R8,3 R9,3 Q3,11 T5 R11,3 R3,4 Q3,8 Q3,9 T6 R6,4 R9,4 Q4,3 Q4,6 Q4,9 κ.ο.κ. Μετά τη μεταφορά των υπολογισμών: δίαυλ1 δίαυλ2 επεξ1 επεξ2 T1 R3,1 R10,1 Q1,1 T2 R1,1 R3,2 Q1,3 Q1,10 T3 R7,2 R10,2 Q2,3 Q2,7 T4 R8,3 R9,3 Q3,11 Q2,10 T5 R11,3 R3,4 Q3,8 Q3,9 T6 R6,4 R9,4 Q4,3 Q4,6 T7 Q4,9 κ.ο.κ. Για τον υπολογισμό τον μηνυμάτων R πριν θα είναι: δίαυλ1 δίαυλ2 έτοιμα για υπολογισμό Tn Q8,1 Q14,1 Tn+1 Q16,1 Q1,1 R1,1 R1,8 R1,14 R1,16 Tn+2 Q9,2 Q10,2 Tn+3 Q11,2 Q12,2 R2,9 R2,10 R2,11 R2,12 Tn+4 Q2,3 Q4,3 Tn+5 Q13,3 Q1,3 R3,1 R3,2 R3,4 R3,13 Tn+6 Q7,4 Q9,4 Tn+7 Q13,4 Q14,4 R4,7 R4,9 R4,13 R4,14 κ.ο.κ. 28
Και μετά: Χρήση τριών διαύλων: δίαυλ1 δίαυλ2 επεξ1 επεξ2 Tn Q8,1 Q14,1 Tn+1 Q16,1 Q1,1 R1,1 R1,8 Tn+2 Q9,2 Q10,2 R1,14 R1,16 Tn+3 Q11,2 Q12,2 R2,9 R2,10 Tn+4 Q2,3 Q4,3 R2,11 R2,12 Tn+5 Q13,3 Q1,3 R3,1 R3,2 Tn+6 Q7,4 Q9,4 R3,4 R3,13 Tn+7 Q13,4 Q14,4 R4,7 R4,9 Tn+8 R4,13 R4,14 κ.ο.κ. Με χρήση τριών διαύλων, για τον υπολογισμό των Q δεν χρειάζεται καμία μεταφορά υπολογισμού. Αυτό συμβαίνει γενικότερα σε όλους τους κώδικες όταν το πλήθος των διαύλων είναι ακέραιο πολλαπλάσιο του βάρους της γραμμής ή στήλης μειούμενου κατά ένα: δίαυλ1 δίαυλ2 δίαυλ3 έτοιμα για υπολογισμό T1 R3,1 R10,1 R1,1 Q1,1 Q1,3 Q1,10 T2 R3,2 R7,2 R10,2 Q2,3 Q2,7 Q2,10 T3 R8,3 R9,3 R11,3 Q3,8 Q3,9 Q3,11 T4 R3,4 R6,4 R9,4 Q4,3 Q4,6 Q4,9 T5 R6,5 R8,5 R10,5 Q5,6 Q5,8 Q5,10 T6 R5,6 R7,6 R8,6 Q6,5 Q6,7 Q6,8 κ.ο.κ. Για τον υπολογισμό των R θα είναι πριν τη μεταφορά υπολογισμών: δίαυλ1 δίαυλ2 δίαυλ3 έτοιμα για υπολογισμό Tn Q8,1 Q14,1 Q16,1 R1,1 Tn+1 Q1,1 Q9,2 Q10,2 R1,8 R1,14 R1,16 Tn+2 Q11,2 Q12,2 Q2,3 R2,9 R2,10 R2,11 R2,12 Tn+3 Q4,3 Q13,3 Q1,3 R3,1 R3,2 R3,4 R3,13 Tn+4 Q7,4 Q9,4 Q13,4 R4,14 Tn+5 Q14,4 Q6,5 Q11,5 R4,7 R4,9 R4,13 Tn+6 Q13,5 Q16,5 Q4,6 R5,6 R5,11 R5,13 R5,16 Tn+7 Q5,6 Q9,6 Q15,6 R6,4 R6,5 R6,9 R6,15 κ.ο.κ. 29
Και μετά: δίαυλ1 δίαυλ2 δίαυλ3 επεξ1 επεξ2 επεξ3 Tn Q8,1 Q14,1 Q16,1 R1,1 Tn+1 Q1,1 Q9,2 Q10,2 R1,8 R1,14 R1,16 Tn+2 Q11,2 Q12,2 Q2,3 R2,9 R2,10 R2,11 Tn+3 Q4,3 Q13,3 Q1,3 R3,1 R3,2 R3,4 Tn+4 Q7,4 Q9,4 Q13,4 R4,14 R2,12 R3,13 Tn+5 Q14,4 Q6,5 Q11,5 R4,7 R4,9 R4,13 Tn+6 Q13,5 Q16,5 Q4,6 R5,6 R5,11 R5,13 Tn+7 Q5,6 Q9,6 Q15,6 R6,4 R6,5 R6,9 Tn+8 R5,16 R6,15 κ.ο.κ. 4.2. Η εσωτερική αρχιτεκτονική των επεξεργαστών Στο εσωτερικό κάθε επεξεργαστή υπάρχουν τρία βασικά τμήματα: οι καταχωρητές εισόδου, η μονάδα υπολογισμού και η μνήμη (σχήμα 4.2). Στους καταχωρητές αποθηκεύονται τα μηνύματα που αποστέλλονται από τους άλλους επεξεργαστές μέσω των εξωτερικών διαύλων μέχρι να προωθηθούν στη μονάδα υπολογισμού. Στη μονάδα υπολογισμού υπολογίζονται τα νέα μηνύματα τα οποία στην συνέχεια αποθηκεύονται στη μνήμη. Στη συνέχεια, μέσω των εξωτερικών διαύλων στέλνονται από τη μνήμη στους άλλους επεξεργαστές. ΕΞΩΤΕΡΙΚΟΙ ΙΑΥΛΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΕΙΣΟ ΟΥ ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΜΝΗΜΗ σχήμα 4.2 Αυτές οι λειτουργίες συμβαίνουν κατά τη διάρκεια και των δύο φάσεων του αλγόριθμου αποκωδικοποίησης. Στη πρώτη φάση (υπολογισμός των μηνυμάτων Q) οι επεξεργαστές R μεταδίδουν από τη μνήμη τους τα αποθηκευμένα μηνύματα R τα οποία αποθηκεύονται στους καταχωρητές εισόδου των επεξεργαστών Q. Η αποθήκευση στους καταχωρητές εισόδου φυσικά γίνεται μόνο για αυτά τα μηνύματα 30
R που χρειάζονται για τα μηνύματα Q που υπολογίζονται σε κάθε επεξεργαστή Q. Στη συνέχεια σε κάθε επεξεργαστή Q υπολογίζονται τα μηνύματα που μπορούν να υπολογιστούν όταν τα μηνύματα R στους καταχωρητές είναι τα απαιτούμενα. Κάθε μήνυμα Q που υπολογίζεται αποθηκεύεται στη μνήμη του επεξεργαστή. Στη δεύτερη φάση του αλγόριθμου συμβαίνουν οι ίδιες λειτουργίες με τους επεξεργαστές Q και R να αλλάζουν ρόλους. Οι δύο φάσεις της λειτουργίας, καθώς και ποια κομμάτια των επεξεργαστών Q και R χρησιμοποιούνται στις δύο φάσεις του αλγόριθμου παρουσιάζονται στο σχήμα 4.3 α και β αντίστοιχα. ΕΞΩΤΕΡΙΚΟΙ ΙΑΥΛΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΕΙΣΟ ΟΥ ΚΑΤΑΧΩΡΗΤΕΣ ΕΙΣΟ ΟΥ ΜΝΗΜΗ ΜΝΗΜΗ ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΕΠΕΞΕΡΓΑΣΤΗΣ Q ΕΠΕΞΕΡΓΑΣΤΗΣ R (α) ΕΞΩΤΕΡΙΚΟΙ ΙΑΥΛΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΕΙΣΟ ΟΥ ΚΑΤΑΧΩΡΗΤΕΣ ΕΙΣΟ ΟΥ ΜΝΗΜΗ ΜΝΗΜΗ ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΕΠΕΞΕΡΓΑΣΤΗΣ Q ΕΠΕΞΕΡΓΑΣΤΗΣ R (β) σχήμα 4.3 4.3. Η απόδοση συναρτήσει του πλήθους των διαύλων Το μεγαλύτερη συνεισφορά στην πολυπλοκότητα σε υλικό της αρχιτεκτονικής έχουν οι εξωτερικοί δίαυλοι, η μονάδα υπολογισμού και η μνήμη των επεξεργαστών. Οι καταχωρητές εισόδου δεν αποτελούν μεγάλο παράγοντα επιβάρυνσης καθώς πρόκειται για λίγους καταχωρητές που αποθηκεύουν προσωρινά τα μηνύματα. Για παράδειγμα στις περιπτώσεις που παρουσιάζονται στην παράγραφο 4.1, χρειάζονται 4 καταχωρητές στους επεξεργαστές Q και 6 καταχωρητές στους επεξεργαστές R. Να σημειωθεί ότι η συμπεριφορά ως προς τον χρονοπρογραμματισμό των υπολογισμών 31
εξαρτάται μόνο από τα βάρη γραμμής και στήλης και είναι ίδια για μικρούς ή μεγάλους κώδικες με ίδια βάρη. Το πλήθος των καταχωρητών επομένως θα είναι ίδιο για όλους τους κώδικες οσοδήποτε μεγάλους με βάρη γραμμής ίσο με 4 και στήλης ίσο με 3, τιμές που χρησιμοποιούνται συχνά σε πραγματικούς κώδικες μεγέθους χιλιάδων γραμμών και στηλών. Για μεγαλύτερα βάρη (που ούτως ή άλλως έχουν μικρές τιμές στους LDPC κώδικες) το πλήθος των απαιτούμενων καταχωρητών θα είναι ελαφρώς αυξημένο. Η ταχύτητα εκτέλεσης του αλγόριθμου προφανώς αυξάνεται όσο αυξάνεται και το πλήθος των διαύλων που χρησιμοποιούνται. Ο χρόνος εκτέλεσης του αλγορίθμου με n διαύλους είναι ίσος με το χρόνο εκτέλεσης με ένα δίαυλο διαιρούμενο με n. Αυτό ισχύει γιατί, όπως αναφέρθηκε και στη παράγραφο 4.2, με n διαύλους παράγονται σε κάθε χρονική στιγμή n αποτελέσματα. Για να ισχύει βέβαια αυτή η αύξηση της ταχύτητας θα πρέπει να αυξάνεται και το πλήθος των επεξεργαστών με τον τρόπο που έχει αναφερθεί στη παράγραφο 4.1. Η αύξηση των διαύλων και των επεξεργαστών είναι ένας παράγοντας αύξησης της πολυπλοκότητας σε υλικό. Παράλληλα, όσο αυξάνονται οι δίαυλοι, θα μειώνεται και η απαιτούμενη μνήμη κάθε επεξεργαστή αφού κάθε επεξεργαστής θα υπολογίζει και θα αποθηκεύει λιγότερα μηνύματα. Η συνολική όμως απαιτούμενη μνήμη όλων των επεξεργαστών θα παραμένει η ίδια αφού το πλήθος των συνολικών μηνυμάτων δεν αλλάζει. Επίσης δεν επηρεάζεται με την αύξηση των διαύλων το μέγεθος της μονάδας υπολογισμού ή το πλήθος των απαιτούμενων καταχωρητών. Τελικά, συνυπολογίζοντας τα παραπάνω, με την αύξηση των διαύλων υπάρχει αύξηση στην πολυπλοκότητα σε υλικό λόγω της αύξησης του πλήθους των διαύλων και λόγω της αύξησης του πλήθους των επεξεργαστών. Εξαιρώντας τη μνήμη, το μέγεθος κάθε επεξεργαστή είναι σταθερό. Στο σχήμα 4.4 παρουσιάζεται (α) το διάγραμμα ενός επεξεργαστή και (β) το διάγραμμα τεσσάρων επεξεργαστών που έχουν προκύψει με διαίρεση των υπολογισμών σε τέσσερα μέρη, με κάθε επεξεργαστή να έχει το ¼ της αρχικής μνήμης. 32
ΚΑΤΑΧΩΡΗΤΕΣ ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΜΝΗΜΗ (α) ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΤΑΧΩΡΗΤΕΣ ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ Μ Ν Η Μ Η ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ Μ Ν Η Μ Η ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ Μ Ν Η Μ Η ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ Μ Ν Η Μ Η σχήμα 4.4 (β) Στα πλαίσια της διπλωματικής, κατασκευάστηκε ένα μοντέλο της πολυπλοκότητας σε υλικό συναρτήσει των διαύλων και επεξεργαστών που χρησιμοποιούνται. Στο μοντέλο θεωρήθηκε ότι οι επεξεργαστές και οι δίαυλοι βρίσκονται σε ένα επίπεδο. Στη πραγματικότητα βέβαια στη τεχνολογία κατασκευής ολοκληρωμένων κυκλωμάτων χρησιμοποιούνται πολλά επίπεδα, αλλά η ανάλυση είναι έγκυρη ανεξαρτήτου του πλήθους των επιπέδων που χρησιμοποιούνται σε κάθε συγκεκριμένη τεχνολογία υλοποίησης και δίνει ένα μέτρο της πολυπλοκότητας. Επίσης για τους σκοπούς του μοντέλου έχει υποτεθεί μία συγκεκριμένη γεωμετρία και τοπολογία των κυκλωμάτων από τις πολλές εναλλακτικές δυνατότητες που υπάρχουν. Για διαφορετική γεωμετρία ή τοπολογία μπορεί να προκύψουν διαφορετικά αποτελέσματα. Στο σχήμα 4.5 παρουσιάζεται η τοπολογία και η γεωμετρία που έχουν χρησιμοποιηθεί για τη μοντελοποίηση των επεξεργαστών και των διαύλων. 33
ΕΠΕΞ Q ΕΠΕΞ R ΕΠΕΞ Q ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΜΝΗΜΗ ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΜΝΗΜΗ ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΜΝΗΜΗ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΤΑΧΩΡΗΤΕΣ ΙΑΥΛΟΣ 1 ΙΑΥΛΟΣ 2... ΙΑΥΛΟΣ ν ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΤΑΧΩΡΗΤΕΣ ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΜΝΗΜΗ ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΜΝΗΜΗ ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΜΝΗΜΗ ΕΠΕΞ R ΕΠΕΞ Q ΕΠΕΞ R σχήμα 4.5 Οι επεξεργαστές τοποθετούνται σε δύο σειρές και ανάμεσά τους οι δίαυλοι. Οι επεξεργαστές και η μνήμη τους (του ενός ζεύγους επεξεργαστών) θεωρούνται ότι έχουν παραλληλόγραμμο σχήμα. Οι επεξεργαστές R είναι μεγαλύτεροι από τους επεξεργαστές Q γιατί τα μηνύματα R εξαρτώνται από περισσότερα μηνύματα Q από ότι τα Q από R. Τα δύο είδη επεξεργαστών τοποθετούνται εναλλάξ σε κάθε σειρά έτσι ώστε το μήκος των διαύλων να είναι το ελάχιστο. Δίπλα στους δίαυλους τοποθετούνται οι καταχωρητές και η μνήμη διότι επικοινωνούν με αυτούς κατευθείαν σε αντίθεση με τη μονάδα υπολογισμού. 34
λμ λε α ε λ ε ΜΟΝΑ Α ΥΠΟΛΟΓΙΣΜΟΥ ΜΝΗΜΗ α μ λ μ ΚΑΤΑΧΩΡΗΤΕΣ λδ ΙΑΥΛΟΣ σχήμα 4.6 Έστω λ μ και α μ λ μ τα μήκη των πλευρών της μνήμης του επεξεργαστή στη περίπτωση του ενός ζεύγους επεξεργαστών, λ εq και α εq λ εq τα μήκη των πλευρών των Q επεξεργαστών, λ εr και α εr λ εr τα μήκη των πλευρών των R επεξεργαστών και λ δ το πάχος του διαύλου, όπως παρουσιάζεται στο σχήμα 4.6. Τότε, αν n το πλήθος των διαύλων, το εμβαδό που θα καταλαμβάνουν οι n επεξεργαστές Q θα είναι n α εq λ 2 εq ενώ για τους n επεξεργαστές R θα είναι n α εr λ 2 εr. Η μνήμη θα καταλαμβάνει εμβαδό ίσο με 2 α μ λ 2 μ. (η μνήμη των επεξεργαστών Q και R είναι ίση γιατί τα μηνύματα Q και R έχουν ίδιο πλήθος). Οι δίαυλοι θα καταλαμβάνουν εμβαδό ίσο με n λ δ (η μία διάσταση) επί (n (λ εq +λ εr )/2)+ λ μ (η άλλη διάσταση). Άρα τελικά θα ισχύει για το συνολικό εμβαδό: E = n α εq λ 2 εq + n α εr λ 2 εr + 2 α μ λ 2 μ + n λ δ ((n (λ εq +λ εr )/2)+λ μ ) E = (λ δ (λ εq +λ εr )/2) n 2 + (α εq λ 2 εq+α εr λ 2 εr+λ δ λ μ ) n + 2 α μ λ 2 μ (Συνάρτηση δηλαδή του n 2.) Τελικά συνοψίζοντας, για την απόδοση της αρχιτεκτονικής συναρτήσει του πλήθους των διαύλων, ισχύουν τα εξής: Εμβαδό: Συνάρτηση του n 2 Χρόνος εκτέλεσης: Διαιρείται με n. Μνήμη: Διαιρείται με n σε κάθε επεξεργαστή, αλλά συνολικά σταθερή. 35
4.4 Συνδυασμός ομαδοποιημένων υπολογισμών πολλών διαύλων H αρχιτεκτονική των πολλών διαύλων μπορεί να συνδυασθεί με αυτή των ομαδοποιημένων υπολογισμών (κεφάλαιο 3). Η γενική ιδέα είναι να χρησιμοποιείται η αρχιτεκτονική ομαδοποιημένων υπολογισμών αρχικά και στη συνέχεια αντί για ζεύγη επεξεργαστών με ένα δίαυλο να χρησιμοποιούνται ομάδες επεξεργαστών με πολλούς διαύλους. Ένα γενικό σχηματικό διάγραμμα μιας τέτοιας αρχιτεκτονικής παρουσιάζεται στο σχήμα 4.7 για δύο ομάδες και τρεις διαύλους σε κάθε ομάδα επεξεργαστών. External bus control R R Q Q R R Q Q R R Q Q Σχήμα 4.7 Η μονάδα external bus control θα υπάρχει στην περίπτωση που υπάρχει επικοινωνία μεταξύ των ομάδων. Αν επιλεγεί υλοποίηση χωρίς διασυνδέσεις, τότε κάθε ομάδα θα λειτουργεί ανεξάρτητα. Σχετικά με την επιλογή των ομάδων και τη παρουσία ή όχι διασυνδέσεων ισχύει ότι έχει αναφερθεί στο κεφάλαιο 3. Η μονάδα external bus control θα έχει ανάλογη λειτουργία με αυτήν που αναφέρθηκε στο κεφάλαιο 3. Τώρα όμως θα υπάρχουν πολλοί παράλληλοι δίαυλοι στους οποίους θα γίνονται οι ίδιες λειτουργίες. Στο σχήμα 4.8 παρουσιάζεται η μορφή της μονάδας που αντιστοιχεί στην αρχιτεκτονική του σχήματος 4.7 για τρεις διαύλους. Σε κάθε δίαυλο γίνεται ξεχωριστά η διαδικασία αποθήκευσης και μετάδοσης των μηνυμάτων όπως γίνεται και στη περίπτωση του ενός διαύλου. 36