Καταχωρητές (Shift Registers)
Οι καταχωρητές είναι ομάδες Φλιπ-Φλοπ που αποθηκεύουν και μεταφέρουν δεδομένα. Όταν έχουν δυνατότητα ολίσθησης ονομάζονται ολισθητές (shift registers) — αποτελούν τον σκελετό κάθε σύγχρονου επεξεργαστή.
Τι είναι ο καταχωρητής;
Ο καταχωρητής είναι ένα ακολουθιακό λογικό κύκλωμα κατασκευασμένο από N Φλιπ-Φλοπ σε σειρά, που μπορεί να αποθηκεύσει N bits. Οι καταχωρητές με δυνατότητα ολίσθησης ονομάζονται ολισθητές, ενώ αυτοί χωρίς ολίσθηση λέγονται στατικοί καταχωρητές.
Σε CPUs (αποθηκεύουν τα ενδιάμεσα αποτελέσματα), σε διαύλους επικοινωνίας (μετατροπή σειριακό↔παράλληλο), σε καθυστερητές σήματος, και ως οδηγοί για 7-segment displays.
Οι 4 Βασικοί Τύποι Καταχωρητών
Ταξινομούνται με βάση το πώς μπαίνουν και βγαίνουν τα δεδομένα: σε σειρά (serial) ή παράλληλα (parallel).
SISO
Serial In - Serial Out
Bits μπαίνουν ένα-ένα και βγαίνουν ένα-ένα. Λειτουργεί ως καθυστερητής σήματος.
SIPO
Serial In - Parallel Out
Bits μπαίνουν σειριακά, διαβάζονται όλα μαζί. Σειριακό → Παράλληλο.
PISO
Parallel In - Serial Out
Bits φορτώνονται μαζί, βγαίνουν ένα-ένα. Παράλληλο → Σειριακό.
PIPO
Parallel In - Parallel Out
Όλα μαζί μέσα, όλα μαζί έξω. Στατικός καταχωρητής (αποθήκευση).
Διαδραστικό: Shift Register Visualizer
Δες πώς λειτουργούν οι 4 τύποι
Επίλεξε τύπο καταχωρητή. Για SISO/SIPO, πάτα την σειριακή είσοδο (Data In = 0/1) και μετά παλμό ρολογιού. Για PISO/PIPO, πάτα τα bits παράλληλα και μετά LOAD ή CLOCK.
Καταχωρητής (FF₀ → FF₃)
Κυκλικός Απαριθμητής (Ring Counter)
Ο Ring Counter είναι ένας κυκλικός ολισθητής με μόνο ένα 1 και τα υπόλοιπα bits 0. Το 1 περιφέρεται από FF σε FF σε κάθε παλμό ρολογιού.
Παράδειγμα 4-bit Ring Counter:
| Παλμός | Q₀ | Q₁ | Q₂ | Q₃ |
|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 |
| 2 | 0 | 1 | 0 | 0 |
| 3 | 0 | 0 | 1 | 0 |
| 4 | 0 | 0 | 0 | 1 |
| 5 | 1 | 0 | 0 | 0 |
Όπου N = αριθμός FF. Για 4 FF, η συχνότητα κάθε εξόδου είναι fCLK/4.
Απαριθμητής Johnson
Ο Johnson Counter (ή twisted ring counter) είναι κυκλικός ολισθητής όπου η συμπληρωματική έξοδος του τελευταίου FF τροφοδοτείται στην είσοδο του πρώτου. Παράγει διπλάσιες καταστάσεις από τον Ring Counter.
Παράδειγμα 4-bit Johnson Counter (8 καταστάσεις):
| Παλμός | Q₀ | Q₁ | Q₂ | Q₃ |
|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 |
| 2 | 1 | 1 | 0 | 0 |
| 3 | 1 | 1 | 1 | 0 |
| 4 | 1 | 1 | 1 | 1 |
| 5 | 0 | 1 | 1 | 1 |
| 6 | 0 | 0 | 1 | 1 |
| 7 | 0 | 0 | 0 | 1 |
| 8 | 0 | 0 | 0 | 0 |
Διαδραστικό: Ring vs Johnson
Δες την ακολουθία να εξελίσσεται
Επίλεξε Ring ή Johnson και πάτα Auto. Παρατήρησε τη διαφορά: ο Ring έχει N καταστάσεις, ο Johnson έχει 2N.
Καταχωρητής
Χρονικό διάγραμμα
Πολλαπλασιασμός / Διαίρεση με Ολίσθηση
Μια εξαιρετική ιδιότητα του δυαδικού συστήματος: η ολίσθηση των bits ισοδυναμεί με πολλαπλασιασμό ή διαίρεση επί 2.
Shift Left × 2
Π.χ. 0011 (3) → 0110 (6)
Κάθε ολίσθηση αριστερά διπλασιάζει τον αριθμό.
Shift Right ÷ 2
Π.χ. 1000 (8) → 0100 (4)
Κάθε ολίσθηση δεξιά υποδιπλασιάζει τον αριθμό.
Η ολίσθηση είναι πολύ πιο γρήγορη από κανονικό πολλαπλασιασμό σε υλικό. Γι' αυτό οι επεξεργαστές χρησιμοποιούν shift operations για να βελτιστοποιούν αριθμητικές πράξεις δυνάμεων του 2.
Διαδραστικό: Shift = Πολλαπλασιασμός/Διαίρεση
Δες πώς αλλάζει η δεκαδική τιμή
Πάτα τα bits για να φτιάξεις έναν αριθμό. Μετά πάτα Shift Left (×2) ή Shift Right (÷2) και δες πώς αλλάζει η τιμή.
Φτιάξε αριθμό:
Τυπικές Εφαρμογές
- Στοιχεία μνήμης: Αποθήκευση πληροφοριών (κάθε καταχωρητής CPU)
- Κυκλικοί απαριθμητές: Παραγωγή ωρολογιακών παλμών σε συγκεκριμένη μορφή και διαίρεση συχνότητας
- Κυκλώματα χρονικής καθυστέρησης: Καθυστέρηση μεταφοράς δεδομένων για συγχρονισμό
- Μετατροπή σειριακό ↔ παράλληλο: Τα κυκλώματα UART χρησιμοποιούν καταχωρητές για επικοινωνία
- Αριθμητικές πράξεις: Πολλαπλασιασμός και διαίρεση δυνάμεων του 2 με ολίσθηση