In the present invention, a storage area setting unit sets (2M + L) storage areas (where M > L ≥ 1, and L is an integer) in a storage device in order to store M pieces of data from M data sources (where M ≥ 2, and M is an integer). A data designating unit designates L pieces of data from the M pieces of data on the M data sources as data to be written. In the (2M + L) storage areas, a write destination designating unit designates storage areas into which the L pieces of data are written from among storage areas excluding: a storage area from which data is read while writing the L pieces of data; a storage area into which the data from each data source was last written; and a storage area from which the data from each data source was last read. A write unit writes the L pieces of data into the designated storage areas.