For a predetermined period from the start of a read operation, an electric
current is fed to bit lines connected with memory cells so that
ferroelectric capacitors of the memory cells are charged. The voltage
change of the bit lines are different according to the logic values of
data stored in the ferroelectric capacitors. Therefore, the logic value
stored in the memory cells can be detected as a time difference. Even if
the voltage change of the bit lines is small, the time difference can be
reliably generated. Even in case the residual dielectric polarization
value of the ferroelectric capacitor is low, therefore, the data can be
reliably read from the memory cells. In short, the read margin of data
can be better improved than in the case where the logic value of data is
detected with a voltage difference.