Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Shift register
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Uses== [[File:DOV-1X - Toshiba TC4015BP on printed circuit board-9788.jpg|thumb|[[Toshiba]] TC4015BP dual SIPO shift register|135x135px]] === Serial and parallel conversion === {{See also|SerDes}} One of the most common uses of a shift register is to convert between serial and parallel interfaces. === Delay === Serial-in serial-out shift registers can be used as simple delay circuits.<ref>{{Cite patent|number=US4530107A|title=Shift register delay circuit|gdate=1985-07-16|invent1=Williams|inventor1-first=Marshall|url=https://patents.google.com/patent/US4530107A/en}}</ref> === Stack === Several bidirectional shift registers can also be connected in parallel for a hardware implementation of a [[stack (data structure)|stack]]. === More I/O pins === Shift registers are commonly attached to [[microcontrollers]] when more [[general-purpose input/output]] pins are required than are available, sometimes over a [[Serial Peripheral Interface#Daisy chain configuration|Serial Peripheral Interface in daisy chain configuration]], which allows any number of binary devices to be accessed using only two to four pins, though more slowly than parallel I/O. For more outputs, SIPO shift registers are used. The parallel outputs of the shift register and the desired state for all those devices can be sent out of the microcontroller using a single serial connection. For more inputs, PISO shift registers are used. Each binary input (such as a [[Push-button|button]] or more complicated circuitry) is attached to a parallel input of the shift register, then the data is sent back serially to the microcontroller. === Pulse extenders === Shift registers can also be used as pulse extenders. Compared to [[monostable multivibrator]]s, the timing does not depend on component values, but it requires an external clock, and the timing accuracy is limited by the granularity of this clock. An example of such a pulse extender is the [[Ronja Twister]], wherein five [[List_of_7400-series_integrated_circuits#74x100_–_74x199|74164 shift registers]] create the core of the timing logic this way ([http://ronja.twibright.com/schematics/twister.png schematic]). === Data processing === In early computers, shift registers were used to handle data processing: two numbers to be added were stored in two shift registers and clocked out into an [[Arithmetic logic unit|arithmetic and logic unit (ALU)]] with the result being fed back to the input of one of the shift registers (the accumulator), which was one bit longer, since binary addition can only result in an answer that has the same size or is one bit longer. === Bitshift operations === {{Main articles|Bitshifts}} Many computer languages include [[bitwise operations]] to "shift right" and "shift left" the data in a register, effectively dividing by two or multiplying by two for each place shifted. === Shift register memory === Very large [[Shift register#Serial-in serial-out (SISO)|serial-in serial-out]] shift registers (thousands of bits in size) were used in a similar manner to the earlier [[delay-line memory]] in some devices built in the early 1970s. Shift registers don't need many pins or address decoding logic, so was much cheaper than [[random-access memory]] back then.<ref>{{Cite web |last=Shirriff |first=Ken |date=2014 |title=Inside the Intel 1405: die photos of a shift register memory from 1970 |url=http://www.righto.com/2014/12/inside-intel-1405-die-photos-of-shift.html |url-status=live |archive-url=https://web.archive.org/web/20230728203329/https://www.righto.com/2014/12/inside-intel-1405-die-photos-of-shift.html |archive-date=2023-07-28 |access-date=2023-08-06 |website=Ken Shirriff's blog}}</ref> Such ''shift register memory'' was sometimes called ''circulating memory''. [[Datapoint 3300]], for example, stored its [[Computer terminal|terminal]] display of 25 rows of [[Characters per line|72 columns]] of 6-bit upper-case characters using 54 200-bit shift registers (arranged in 6 tracks of 9 packs), providing storage for 1800 characters. The shift register design meant that scrolling the terminal display could be accomplished by simply pausing the display output to skip one line of characters.<ref>{{cite web|url=http://bitsavers.org/pdf/datapoint/3300/70116_3300termMaint_Dec76.pdf|website=bitsavers.org|title=DataPoint 3300 Maintenance Manual|publisher=Datapoint Corporation|date=December 1976}}</ref> A similar design was used for the [[Apple I]]'s terminal.<ref>{{Cite web |last=Shirriff |first=Ken |title=Inside the Apple-1's shift-register memory |url=http://www.righto.com/2022/04/inside-apple-1s-shift-register-memory.html |url-status=live |archive-url=https://web.archive.org/web/20230606065258/http://www.righto.com/2022/04/inside-apple-1s-shift-register-memory.html |archive-date=2023-06-06 |access-date=2023-08-04 |website=Ken Shirriff's blog}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)