Ένας χρονοπρογραμματιστής που χειρίζεται πολλαπλές κλάσεις ομάδων ροών, για να είναι χρήσιμος στην πράξη, πρέπει να είναι απλός στη λειτουργία και συνεπώς αποδοτικός και ταχύς στην υλοποίηση. Συγκεκριμένα στον ATLAS I ο διαθέσιμος χρόνος για ολοκλήρωση μιας απόφασης χρονοπρογραμματισμού είναι πολύ μικρός και ο μηχανισμός πρέπει να είναι υλοποιημένος σε hardware.
Κάτω από αυτό το πρίζμα το σχήμα 3.27 απεικονίζει τη διάταξη του δίκαιου, δυναμικού χρονοπρογραμματιστή που χρησιμοποιήθηκε στο υποσύστημα διαχείρισης πολλαπλών ουρών. Ένα βασικό χαρακτηριστικό που εκμεταλλεύεται είναι η εγγενής ιδιότητα διαχωρισμού της πληροφορίας που συμβαίνει κατά το ψάξιμο της CLL. Το αποτέλεσμα του ψαξίματος υποδηλώνει σε ποια συγχωνευόμενη ομάδα ροών πρέπει να εφαρμοστεί ένας μηχανισμός για επιβολή δίκαιης εξυπηρέτησης.
Figure 3.27: Η υλοποίηση του δυναμικού δίκαιου χρονοπρογραμματιστή
Όπως φαίνεται στο σχήμα χρησιμοποιούνται δύο αποκωδικοποιητές προτεραιότητας,
όμοιοι με αυτόν που περιγράφτηκε στην παράγραφο 3.2.3.
Λειτουργούν παράλληλα στον ίδιο κύκλο ρολογιού και σε κάθε κύκλο, αλλά ο
καθένας με διαφορετικά διανύσματα εισόδου. Ο πρώτος δέχεται ένα
διάνυσμα εισόδου που αποτελείται κατευθείαν από τα αποτελέσματα του
ψαξίματος στην CLL. Ο δεύτερος εξετάζει μία πιθανή συγχωνευόμενη ομάδα ροών
που ξεχωρίζει αν γίνουν ``and'' οι γραμμές ταιριάσματος με τα περιεχόμενα
της μάσκας που αποθηκεύει όλες τις εικονικές λίστες. Αν όντως υπήρχε μία
συγχωνευόμενη ομάδα ροών (υποδεικνύεται από το σήμα matchL)
και πρέπει να εξυπηρετηθεί κάποιο μέλος της από την εικονική λίστα,
τα αποτελέσματα του πρώτου αποκωδικοποιητή προτεραιότητας αγνοούνται.
Έτσι επιλέγεται το πρώτο από πάνω μέλος της λίστας από τον ``ενεργό'' PE
ενώ ταυτόχρονα καθαρίζεται η καταχώρησή του από τη μάσκα. Με αυτόν τον
τρόπο ένα επόμενο ταίριασμα της ίδιας κλάσης θα παράγει το επόμενο
μέλος στη σειρά. Αν όμως δεν βρέθηκε καμιά εικονική λίστα (το matchL είναι
ένα), το οποίο δείχνει είτε ότι μία ατομική, ανεξάρτητη ομάδα ροής
ταίριασε, είτε ότι συνέβει ένα πολλαπλό ταίριασμα πρώτη φορά για αυτή
τη συγχωνευόμενη ομάδα ροών, είτε δεν υπήρχε καν ταίριασμα,
τότε λαμβάνονται υπόψη τα αποτελέσματα του πρώτου αποκωδικοποιητή προτεραιότητας.
Εξυπηρετείται η πρώτη από πάνω ομάδα ροής, ενώ παράλληλα εάν βρέθηκε μία
νέα κλάση ( ), καταργάφεται στη μάσκα.
Στο σχήμα φαίνεται ασκίαστο το επιπλέον κύκλωμα ανά bit που απαιτείται για αυτούς
τους ελέγχους.
Όπως απεικονίζεται στο σχήμα η μάσκα υλοποιείται από μια αλυσίδα 255 SR-flip-flops. Αρχικά βεβαίως πρέπει να μηδενιστούν. Επίσης, οι είσοδοι S-R σε κάθε flip-flop δεν μπορεί ποτέ να είναι 1 ταυτόχρονα τη στιγμή που ανέρχεται το σήμα του ρολογιού. Επιπλέον, αν και οι λογικές πύλες που φαίνονται στο σχήμα υπήρχαν στη βιβλιοθήκη του πακέτου σχεδίασης, υλοποιήθηκαν ξανά σε full-custom, λόγω περιορισμών στο κατακόρυφο ύψος και ανομοιομορφίας λόγω ανάμιξης κομματιών full-custom με κομμάτια semi-custom διαφορετικών προδιαγραφών.