Edge triggered flip flop with data input (top) and clock input (bottom). Data is only stored in the flip flop at the moment the clock signal goes high. If the clock signal remains high the data will not be stored again until the clock signal goes low and high again, protecting the data from unintended writing (for example when storing the output of an arithmetic gate array back in a register which holds one of the operands)