As applied to digital circuits, a shift register is a series of flip-flops based on sequential clock timing. The flip-flops facilitate moving data from input to output using sequential logic. A clock, in the form of a repeating wave in a square pattern, is used to synchronize how data travels through shift registers, creating a short delay in the transmission of a digital signal. Most often, shift registers of varying lengths are used to convert parallel data to serial, but may also be used for data flow in microprocessors or to covert analog data to digital and vice versa.
Shift registers are high-speed circuits. Primarily, a shift register moves bits of data either left or right along a circuit, depending on the circuit's specific structure. In its simplest form, a shift register takes data in at the first stage and shifts bits one stage left or right as the clock signals the need for a data advance. Registers are identified by the number of temporary storage slots available after each stage between input and output. Temporary storage slots allow a shift register to delay data signals until the clock signals appropriate data advance. An 8-bit register, for example, has eight stages and thus eight temporary storage slots for bits in a data string.
Structurally, there are five basic types of shift registers. Serial-in/serial-out and universal parallel-in/parallel-out shift registers facilitate the input and output of data in serial form or parallel form respectively, with no conversions required. Parallel-in/serial-out refers to shift registers that process parallel data transmission inputs and convert such transmissions to output in serial form. Serial-in/parallel-out shift registers are nearly identical to parallel-in/serial-out, with the exception of input data in serial form converted to parallel form output.
A ring counter is a type of shift register structure that features recirculating or repeating data patterns. When a shift register completes the processing of a data string and feeds the last stage back to the initial data input stage, a circular pattern results. Ring counters are used when a specific function is required on a set repeating pattern. For example, an LED display set to repeat chosen displays might use a ring counter structure for the shift register so that output repeats at a predetermined clock pulse.
During the early days of computers, a shift register with several hundred stages was used for computer memory. Use of shift registers replaced mercury delay lines, speeding up data processing and allowing for smaller computer components and peripherals. Today, shift registers as primary computer memory are considered antiquated. Circuit boards, however, still feature shift registers to reduce the amount of wiring needed, especially in display drivers, digital to analog converters, and serial data memory.