Buffer registers are a type of registers used to store a binary word. These can be constructed using a series of flip-flops as each flip-flop can store a single bit. This means that in order to store an n-bit binary word one should design an array of n flip-flops. Figure 1 shows a 4 bit synchronous buffer register formed by cascading four positive edge triggered D flip-flops. Here the entire input data word B1B2B3B4 is loaded onto the register at a single clock tick. This means that at every leading edge of the clock the values of flip-flop outputs follow their input bits i.e. Q1 = B1, Q2 = B2, Q3 = B3 and Q4 = B4 as shown by Figure 2.
Buffer registers offer no means of control over the inputs which in turn leads to uncontrolled outputs. In order to overcome this drawback one can resort to controlled buffer registers as shown by Figure 3.
In this design, tri-state switches are used to control the operation of loading and/or retrieval of the data to/from the buffer register. Here one has to pull the or control line (blue line) low in order to store the data into the register, while control line (red line) should be made low to read the data.