Κεφάλαιο 05

Καταχωρητές (Shift Registers)

Οι καταχωρητές είναι ομάδες Φλιπ-Φλοπ που αποθηκεύουν και μεταφέρουν δεδομένα. Όταν έχουν δυνατότητα ολίσθησης ονομάζονται ολισθητές (shift registers) — αποτελούν τον σκελετό κάθε σύγχρονου επεξεργαστή.

01

Τι είναι ο καταχωρητής;

Ο καταχωρητής είναι ένα ακολουθιακό λογικό κύκλωμα κατασκευασμένο από N Φλιπ-Φλοπ σε σειρά, που μπορεί να αποθηκεύσει N bits. Οι καταχωρητές με δυνατότητα ολίσθησης ονομάζονται ολισθητές, ενώ αυτοί χωρίς ολίσθηση λέγονται στατικοί καταχωρητές.

💡 Πού τους συναντάμε;

Σε CPUs (αποθηκεύουν τα ενδιάμεσα αποτελέσματα), σε διαύλους επικοινωνίας (μετατροπή σειριακό↔παράλληλο), σε καθυστερητές σήματος, και ως οδηγοί για 7-segment displays.

02

Οι 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

Ολίσθηση bits!

Δες πώς λειτουργούν οι 4 τύποι

Επίλεξε τύπο καταχωρητή. Για SISO/SIPO, πάτα την σειριακή είσοδο (Data In = 0/1) και μετά παλμό ρολογιού. Για PISO/PIPO, πάτα τα bits παράλληλα και μετά LOAD ή CLOCK.

Data In:

Καταχωρητής (FF₀ → FF₃)

Έξοδος: 0000
Παλμοί: 0
03

Κυκλικός Απαριθμητής (Ring Counter)

Ο Ring Counter είναι ένας κυκλικός ολισθητής με μόνο ένα 1 και τα υπόλοιπα bits 0. Το 1 περιφέρεται από FF σε FF σε κάθε παλμό ρολογιού.

Παράδειγμα 4-bit Ring Counter:

ΠαλμόςQ₀Q₁Q₂Q₃
11000
20100
30010
40001
51000
fQ = fCLK / N

Όπου N = αριθμός FF. Για 4 FF, η συχνότητα κάθε εξόδου είναι fCLK/4.

04

Απαριθμητής Johnson

Ο Johnson Counter (ή twisted ring counter) είναι κυκλικός ολισθητής όπου η συμπληρωματική έξοδος του τελευταίου FF τροφοδοτείται στην είσοδο του πρώτου. Παράγει διπλάσιες καταστάσεις από τον Ring Counter.

Παράδειγμα 4-bit Johnson Counter (8 καταστάσεις):

ΠαλμόςQ₀Q₁Q₂Q₃
11000
21100
31110
41111
50111
60011
70001
80000
fQ = fCLK / 2N
🎮

Διαδραστικό: Ring vs Johnson

Σύγκρινε τους δύο

Δες την ακολουθία να εξελίσσεται

Επίλεξε Ring ή Johnson και πάτα Auto. Παρατήρησε τη διαφορά: ο Ring έχει N καταστάσεις, ο Johnson έχει 2N.

4
Διαφορετικές καταστάσεις
4
f_Q / f_CLK
1/4
Παλμοί
0

Καταχωρητής

Χρονικό διάγραμμα

05

Πολλαπλασιασμός / Διαίρεση με Ολίσθηση

Μια εξαιρετική ιδιότητα του δυαδικού συστήματος: η ολίσθηση των 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) και δες πώς αλλάζει η τιμή.

Φτιάξε αριθμό:

Δυαδικός
00000110
Δεκαδικός
6
Δεκαεξαδικός
0x06
Ιστορικό:
06

Τυπικές Εφαρμογές

  1. Στοιχεία μνήμης: Αποθήκευση πληροφοριών (κάθε καταχωρητής CPU)
  2. Κυκλικοί απαριθμητές: Παραγωγή ωρολογιακών παλμών σε συγκεκριμένη μορφή και διαίρεση συχνότητας
  3. Κυκλώματα χρονικής καθυστέρησης: Καθυστέρηση μεταφοράς δεδομένων για συγχρονισμό
  4. Μετατροπή σειριακό ↔ παράλληλο: Τα κυκλώματα UART χρησιμοποιούν καταχωρητές για επικοινωνία
  5. Αριθμητικές πράξεις: Πολλαπλασιασμός και διαίρεση δυνάμεων του 2 με ολίσθηση
07

📄 Διαφάνειες & Σημειώσεις

📚 Οι διαφάνειες και χειρόγραφες σημειώσεις είναι διαθέσιμες στην τάξη από την/τον εκπαιδευτικό σου.