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

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Μετάβαση σε: πλοήγηση, αναζήτηση

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

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

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

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

  • Σειριακή Είσοδο-Σειριακή Έξοδο (ΣΕΣΕ ή SISO)
  • Σειριακή Είσοδο-Παράλληλη Έξοδο (ΣΕΠΕ ή SIPO)
  • Παράλληλη Είσοδο-Παράλληλη Έξοδο (ΠΕΠΕ ή PIPO)
  • Παράλληλη Είσοδο-Σειριακή  Έξοδο (ΠΕΣΕ ή PISO)[5][4][2]

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

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

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

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

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

Τα δεδομένα εισόδου περνούν από την κάθε έισοδο 'D' του καθενός flip-flop, στην έξοδό του '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 «Καταχωρητές». https://www.okoutris.gr/%CE%98%CE%AD%CE%BC%CE%B1%CF%84%CE%B1%20-%20%CE%A3%CE%B7%CE%BC%CE%B5%CE%B9%CF%8E%CF%83%CE%B5%CE%B9%CF%82/%CE%9A%CE%B1%CF%84%CE%B5%CF%8D%CE%B8%CF%85%CE%BD%CF%83%CE%B7%CF%82/%CE%97%CE%BB%CE%B5%CE%BA%CF%84%CF%81%CE%BF%CE%BD%CE%B9%CE%BA%CE%AE%20%CE%BA%CE%B1%CE%B9%20%CE%A4%CE%B7%CE%BB%CE%B5%CF%80%CE%B9%CE%BA%CE%BF%CE%B9%CE%BD%CF%89%CE%BD%CE%AF%CE%B5%CF%82/%CE%A8%CE%B7%CF%86%CE%B9%CE%B1%CE%BA%CE%AC%20%CE%A3%CF%85%CF%83%CF%84%CE%AE%CE%BC%CE%B1%CF%84%CE%B1/%CE%9D%CE%B9%CE%BA%CE%BF%CE%BB%CE%B1%CE%AF%CE%B4%CE%B7%CF%82%20PPT/kef_6.ppt. Ανακτήθηκε στις 31/1/2016. 
  2. 2,0 2,1 2,2 2,3 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ. «Καταχωρητές». http://elnsite.teilam.gr/ebooks/digital_design/slides/course%2012%20%5BCompatibility%20Mode%5D.pdf. Ανακτήθηκε στις 31/1/2016. 
  3. 3,0 3,1 3,2 3,3 3,4 3,5 3,6 Καβουσιανός. «Καταχωρητές και Μετρητές». http://www.cs.uoi.gr/~kabousia/pdf/LogicDesignI/Th4_RegistersCounters.pdf. Ανακτήθηκε στις 31/1/2016. 
  4. 4,0 4,1 4,2 4,3 4,4 4,5 «ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 8 ΣΤΟΙΧΕΙΑ ΜΝΗΜΗΣ – ΚΑΤΑΧΩΡΗΤΕΣ». http://meleththrio.teicm.gr/xmlui/bitstream/handle/123456789/29/Digital_circuits_lab8.pdf;jsessionid=9F2E59E2D5F8FB16A34D758BB4B69C38?sequence=8. Ανακτήθηκε στις 31/1/2016. 
  5. 5,0 5,1 5,2 5,3 5,4 Σκόδρας (2009). «ΚΑΤΑΧΩΡΗΤΕΣ». Ελληνικό Ανοικτό Πανεπιστήμιο. http://dsmc2.eap.gr/files/pdf/eOSS190110/OSS2-Part4of4.pdf. Ανακτήθηκε στις 31/1/2016. 
  6. 6,0 6,1 «74VHC164 — 8-Bit Serial-In, Parallel-Out Shift Register». www.fairchildsemi.com. ©1993 Fairchild Semiconductor Corporation 74VHC164 Rev. 1.4.0. February 2008. https://www.fairchildsemi.com/datasheets/74/74VHC164.pdf. Ανακτήθηκε στις 31/1/2016. 
  7. Καγιάφας. «Κεφάλαιο 9 Flip Flop». http://www.lib.ntua.gr/gr/el_sources/ebooks/kagiafas/CHAPTER9.pdf. Ανακτήθηκε στις 1/2/2016. 
  8. Αλεξίου. «6η ενότητα:Σύγχρονα ακολουθιακά κυκλώματα». https://www.ceid.upatras.gr/webpages/faculty/alexiou/dig_design/notes/6_Sygxrova_AkolouQiaka.pdf. Ανακτήθηκε στις 1/2/2016. 
  9. «Serial-in, Parallel-out Shift Register : Shift Registers - Electronics Textbook». www.allaboutcircuits.com. http://www.allaboutcircuits.com/textbook/digital/chpt-12/serial-in-parallel-out-shift-register/. Ανακτήθηκε στις 2016-01-31. 
  10. [https://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf «74HC595; 74HCT595 8-bit serial-in, serial or para llel-out shift register with output latches; 3-state»]. NXP semiconductors. 26 January 2015 - Rev. 7. https://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf. Ανακτήθηκε στις 31/1/2016. 
  11. «74LV165A 8-bit parallel-in/serial-out shift register». NXP semiconductors. 28 March 2014 - rev.4. http://www.nxp.com/documents/data_sheet/74LV165A.pdf. Ανακτήθηκε στις 31/1/2016. 
  12. «8051-compliant Asynchronous Microcontroller Core Design, Fabrication, and testing for extreme enviroment». PRO QUEST LLC. 2008. https://books.google.gr/books?id=vmucq8Ki8sgC&pg=PA43&lpg=PA43&dq=PISO+SIPO+in+8051&source=bl&ots=x5yJXdIens&sig=MzDSddSpDJ_-qydpdKoisKKYvto&hl=el&sa=X&ved=0ahUKEwiyrenbmtXKAhWKBywKHYUUDJUQ6AEIJjAA#v=onepage&q=PISO%20SIPO%20in%208051&f=false. Ανακτήθηκε στις 31/1/2016. 
  13. «AT89LP216». ATMEL. 2008. http://www.atmel.com/Images/doc3621.pdf. Ανακτήθηκε στις 31/1/2016. 
  14. «AN2591 Application note Microcontroller input / output expander». ST Microelectronics. August 2007. http://www.st.com/web/en/resource/technical/document/application_note/CD00165404.pdf. Ανακτήθηκε στις 31/1/2016. 
  15. «Πράξεις δυαδικών αριθμών». https://eclass.teiath.gr/modules/document/file.php/EE131/%CE%98%CE%95%CE%A9%CE%A1%CE%99%CE%91/03.%CE%A0%CF%81%CE%AC%CE%BE%CE%B5%CE%B9%CF%82.%CE%94%CF%85%CE%B1%CE%B4%CE%B9%CE%BA%CF%8E%CE%BD.%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CF%8E%CE%BD.pdf. Ανακτήθηκε στις 31/1/2016. 
  16. «ΛΟΓΙΚΗ/ΑΡΙΘΜΗΤΙΚΗ ΟΛΙΣΘΗΣΗ». http://aetos.it.teithe.gr/~dima/Labs/Assembly/Slides/LAB_8_2.pdf. Ανακτήθηκε στις 31/1/2016. 

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