Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Shift register
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
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>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Shift register
(section)
Add topic