Καταχωρητής ολίσθησης

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

Στα ψηφιακά κυκλώματα, ένας καταχωρητής ολίσθησης είναι μία αλληλουχία από δισταθείς πολυδονητές (flip-flop) που μοιράζονται το ίδιο ρολόι χρονισμού. Η έξοδος του κάθε δισταθούς πολυδονητή συνδέεται στην είσοδο του επόμενου στην ακολουθία αυτή. Το κύκλωμα που προκύπτει, μετατοπίζει κατά μία θέση, σε κάθε παλμό ρολογιού, την ακολουθία από μπιτ (binary digits ή δυαδικά ψηφία,bits) που αποθηκεύτηκε αρχικά στους αντίστοιχους δισταθείς πολυδονητές της αλυσίδας αυτής.[1][2][3][4]

Κατηγορίες[Επεξεργασία | επεξεργασία κώδικα]

Είσοδοι-Έξοδοι[Επεξεργασία | επεξεργασία κώδικα]

Οι πλέον συνήθεις υλοποιήσεις ,σε σχέση με τις εισόδους και τις εξόδους δεδομένων είναι οι αυτές που έχουν :

  • Σειριακή Είσοδο-Σειριακή Έξοδο (ΣΕΣΕ) (Αγγλ. Serial In-Serial Out (SISO))
  • Σειριακή Είσοδο-Παράλληλη Έξοδο (ΣΕΠΕ) (Αγγλ. Serial In-Parallel Out (SIPO))
  • Παράλληλη Είσοδο-Παράλληλη Έξοδο (ΠΕΠΕ) (Αγγλ. Parallel In-Parallel Out (PIPO))
  • Παράλληλη Είσοδο-Σειριακή  Έξοδο (ΠΕΣΕ) (Αγγλ. Parallel In-Serial Out 'PISO))[5][4][2]

Στα ψηφιακά κυκλώματα λέμε ότι λειτουργούν σειριακά, όταν σε κάθε παλμό ρολογιού το κύκλωμα επεξεργάζεται ένα μόνο μπιτ .Όταν τα κυκλώματα λειτουργούν παράλληλα, τότε σε κάθε παλμό ρολογιού επεξεργάζονται και διαχειρίζονται ταυτόχρονα ομάδες από μπιτ.[1][3]

Κατεύθυνση Ολίσθησης[Επεξεργασία | επεξεργασία κώδικα]

Υπάρχουν, μονόδρομοι και αμφίδρομoι καταχωρητές ολίσθησης. Οι μονόδρομοι επιτρέπουν τη μετατόπιση των δυαδικών ψηφίων μόνο προς μία κατεύθυνση, ενώ οι αμφίδρομοι καταχωρητές επιτρέπουν την ολίσθηση επιλεκτικά σε μία από τις δύο κατευθύνσεις. Έτσι στους αμφίδρομους καταχωρητές έχουμε τη δυνατότητα επιλογής ολίσθησης των δυαδικών ψηφίων από αριστερά προς τα δεξιά ή από δεξιά προς τα αριστερά.[2][3][4][5][1]Η σειριακή είσοδος του καταχωρητή μπορεί να συνδεθεί με την τελευταία έξοδο του για την υλοποίηση ενός καταχωρητή κυκλικής ολίσθησης όπου το τελευταίο δυαδικό ψηφίο θα ξαναεισαχθεί ως πρώτο.[4][2][5]

Λειτουργία[Επεξεργασία | επεξεργασία κώδικα]

Ένας απλός και τυπικός εκπρόσωπος των καταχωρητών ολίσθησης είναι αυτός που υλοποιείται από δισταθείς πολυδονητές (flip-flop) τύπου D. Την περίπτωση ενός καταχωρητή ολίσθησης Σειριακής εισόδου - Παράλληλης εξόδου (ΣΕΠΕ ή SIPO) βλέπουμε στην εικόνα που ακολουθεί. Στην προσομοίωση λειτουργίας του 4-bit καταχωρητή ολίσθησης,όπως φαίνεται ακολούθως ,το μπιτ εισόδου ολισθαίνει προς τα δεξιά κατά μία θέση σε κάθε παλμό του ρολογιού χρονισμού.[5][4][3]

Τα δεδομένα εισόδου περνούν από την κάθε έισοδο 'D' του κάθε δισταθούς πολυδονητή, στην έξοδό του 'Q', κατά την άνοδο (από 0 σε 1),ή την κάθοδο (από 1 σε 0) του παλμού, του ρολογιού χρονισμού . Αυτό γίνεται για να μην αλλάζει η έξοδος 'Q' ,αν τύχει και αλλάξει η είσοδος 'D' ,ενώ το ρολόι βρίσκεται στην κατάσταση '1' .Αυτό εξασφαλίζει στο κύκλωμα, ότι δεν θα υπάρχουν πολλαπλές καιταυτόχρονα ανεπιθύμητες αλλαγές κατάστασης στην έξοδο σε ένα παλμό ρολογιού.Η διέγερση κατά την άνοδο του παλμού ονομάζεται 'διέγερση θετικής ακμής' ενώ κατά την κάθοδο 'διέγερση αρνητικής ακμής'.[3][6][7][8]

4 bit ΣΕΠΕ (SIPO) καταχωρητής ολίσθησης με δισταθή πολυδονητή (flip-flop) τύπου D

Χρήσεις[Επεξεργασία | επεξεργασία κώδικα]

Επειδή η βασική ιδιότητα ενός δισταθούς πολυδονητή είναι η αποθήκευση ενός δυαδικού ψηφίου, έτσι και στους καταχωρητές ολίσθησης οι οποίοι αποτελούνται από δισταθείς πολυδονητές, μία βασική τους χρήση τους είναι ως προσωρινός αποθηκευτικός χώρος της Κεντρικής Μονάδας Επεξεργασίας (Κ.Μ.Ε ή C.P.U) για την εκτέλεση πράξεων.[3][4]

Πολλαπλοί αμφίδρομοι καταχωρητές ολίσθησης μπορούν να συνδεθούν παράλληλα για την υλοποίηση της λειτουργίας του σωρού (stack) σε επίπεδο υλικού.

Γενικά, η υλοποίηση σειριακών κυκλωμάτων, είναι ευκολότερη γιατί χρειάζονται λιγότερα κυκλώματα αλλά μειονεκτούν στην ταχύτητα[1] . Όμως οι επεξεργαστές και τα κυκλώματα των ψηφιακών υπολογιστών επεξεργάζονται ομάδες δυαδικών ψηφίων, οπότε χρησιμοποιούμε τους καταχωρητές ολίσθησης για τη μετατροπή, των δυαδικών ψηφίων από σειριακά σε παράλληλα και το αντίστροφο.Οι καταχωρητές ολίσθησης, υλοποιούν την κατάλληλη διεπαφή υλικού για μετατροπή των bits σε bytes και αντίστροφα.[9][6][10][11]

Οι ΣΕΠΕ (SIPO) καταχωρητές ολίσθησης χρησιμοποιούνται συνήθως στους ακροδέκτες εξόδου των μικροεπεξεργαστών ή των μικροελεγκτών όπου χρειαζόμαστε περισσότερους ακροδέκτες (pins) γενικής χρήσεως από όσους μπορούμε να έχουμε. Αντίστοιχα οι ΠΕΣΕ (PISO) καταχωρητές ολίσθησης χρησιμοποιούνται ευρέως για να παρέχουν αυξημένες δυαδικές εισόδους στον επεξεργαστή ή στο μικροελεγκτή.[12][13][14]

Από τους πρώτους ψηφιακούς υπολογιστές οι καταχωρητές ολίσθησης χρησιμοποιήθηκαν ήδη και για την επεξεργασία των δεδομένων, όπως για την άθροιση δύο αριθμών, όπου οι προς άθροιση αριθμοί από τους καταχωρητές ολίσθησης επεξεργάζονταν στην Αριθμητική και Λογική Μονάδα και το αποτέλεσμα επέστρεφε στην είσοδο του ενός καταχωρητή, ο οποίος είχε και ένα δυαδικό ψηφίο περισσότερο, για την περίπτωση που από το άθροισμα θα προέκυπτε κρατούμενο.[1][3][5]

Στις σύγχρονες γλώσσες προγραμματισμού υπάρχουν εντολές που ολισθαίνουν το αριθμητικό περιεχόμενο ενός καταχωρητή κατά μία θέση δεξιά ή αριστερά, επιτυγχάνοντας έτσι τη διαίρεση διά δύο ή τον πολλαπλασιασμό επί δύο αντίστοιχα του αριθμού αυτού.[15][16]

Πηγές[Επεξεργασία | επεξεργασία κώδικα]

  1. 1,0 1,1 1,2 1,3 1,4 «Καταχωρητές». Ανακτήθηκε στις 31 Ιανουαρίου 2016. [νεκρός σύνδεσμος]
  2. 2,0 2,1 2,2 2,3 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ. «Καταχωρητές» (PDF). Ανακτήθηκε στις 31 Ιανουαρίου 2016. [νεκρός σύνδεσμος]
  3. 3,0 3,1 3,2 3,3 3,4 3,5 3,6 Καβουσιανός. «Καταχωρητές και Μετρητές» (PDF). Ανακτήθηκε στις 31 Ιανουαρίου 2016. 
  4. 4,0 4,1 4,2 4,3 4,4 4,5 «ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 8 ΣΤΟΙΧΕΙΑ ΜΝΗΜΗΣ – ΚΑΤΑΧΩΡΗΤΕΣ». Ανακτήθηκε στις 31 Ιανουαρίου 2016. [νεκρός σύνδεσμος]
  5. 5,0 5,1 5,2 5,3 5,4 Σκόδρας (2009). «ΚΑΤΑΧΩΡΗΤΕΣ» (PDF). Ελληνικό Ανοικτό Πανεπιστήμιο. Ανακτήθηκε στις 31 Ιανουαρίου 2016. 
  6. 6,0 6,1 «74VHC164 — 8-Bit Serial-In, Parallel-Out Shift Register» (PDF). www.fairchildsemi.com. ©1993 Fairchild Semiconductor Corporation 74VHC164 Rev. 1.4.0. Φεβρουαρίου 2008. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 11 Μαρτίου 2017. Ανακτήθηκε στις 31 Ιανουαρίου 2016. 
  7. Καγιάφας. «Κεφάλαιο 9 Flip Flop» (PDF). Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 20 Οκτωβρίου 2016. Ανακτήθηκε στις 1 Φεβρουαρίου 2016. 
  8. Αλεξίου. «6η ενότητα:Σύγχρονα ακολουθιακά κυκλώματα» (PDF). Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 2 Φεβρουαρίου 2023. Ανακτήθηκε στις 1 Φεβρουαρίου 2016. 
  9. «Serial-in, Parallel-out Shift Register : Shift Registers - Electronics Textbook». www.allaboutcircuits.com. Ανακτήθηκε στις 31 Ιανουαρίου 2016. 
  10. «74HC595; 74HCT595 8-bit serial-in, serial or parallel-out shift register with output latches; 3-state» (PDF). NXP semiconductors. 26 Ιανουαρίου 2015. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 8 Φεβρουαρίου 2016. Ανακτήθηκε στις 31 Ιανουαρίου 2016. 
  11. «74LV165A 8-bit parallel-in/serial-out shift register» (PDF). NXP semiconductors. 28 Μαρτίου 2014. Αρχειοθετήθηκε από το πρωτότυπο (PDF) στις 22 Νοεμβρίου 2015. Ανακτήθηκε στις 31 Ιανουαρίου 2016. 
  12. «8051-compliant Asynchronous Microcontroller Core Design, Fabrication, and testing for extreme enviroment». PRO QUEST LLC. 2008. Ανακτήθηκε στις 31 Ιανουαρίου 2016. [νεκρός σύνδεσμος]
  13. «AT89LP216» (PDF). ATMEL. 2008. Ανακτήθηκε στις 31 Ιανουαρίου 2016. 
  14. «AN2591 Application note Microcontroller input / output expander» (PDF). ST Microelectronics. Αύγουστος 2007. Ανακτήθηκε στις 31 Ιανουαρίου 2016. 
  15. «Πράξεις δυαδικών αριθμών» (PDF). Ανακτήθηκε στις 31 Ιανουαρίου 2016. [νεκρός σύνδεσμος]
  16. «ΛΟΓΙΚΗ/ΑΡΙΘΜΗΤΙΚΗ ΟΛΙΣΘΗΣΗ» (PDF). Ανακτήθηκε στις 31 Ιανουαρίου 2016. [νεκρός σύνδεσμος]

Εξωτερικοί σύνδεσμοι[Επεξεργασία | επεξεργασία κώδικα]