In order to responsibly read and write to magnetic tape, several constraints on the signal to be written must be followed. The first is that two adjacent flux reversals must be separated by a certain distance on the media. The second is that there must be a flux reversal often enough to keep the reader's clock in phase with the written signal; that is, the signal must be self-clocking and most importantly to keep the playback output high enough as this is proportional to the density of flux transitions. Prior to  bpi tapes,  bpi tapes satisfied these constraints using a technique called phase encoding (PE), which was only 50% efficient. For  bpi GCR tapes, a (0, 2) RLL code is used, or more specifically a  (0, 2) block code. This code requires five bits to be written for every four bits of data. The code is structured so that no more than two zero bits (which are represented by lack of a flux reversal) can occur in a row, either within a code or between codes, no matter what the data was. This RLL code is applied independently to the data going to each of the nine tracks.