In a nonvolatile semiconductor memory, for example, a NAND flash memory, data transfer between a sense amplifier and a cache memory is performed while reading/writing. The data transfer is performed by, for example, the bus precharge method by which charging/discharging of a data bus commonly connected to the sense amplifier and the cache memory is used. This method is excellent in that the circuit area needed for data transfer can be reduced.
However, the bus precharge method is inefficient from the viewpoint of reducing power consumption because charging/discharging of the data bus is repeated.
In a multi-valued memory in which 2 bits or more are made to be stored in a memory cell, it is necessary to commonly connect data latches, in addition to the sense amplifier and the cache memory, to the data bus to perform data transfer therebetween. In this case, the data bus becomes longer, increasing the parasitic capacitance of the data bus. Moreover, all the parasitic capacitance of the data bus needs to be charged regardless of the position of the output side/input side of data.