Patent ID: 7116578

Claim:
A nonvolatile storage device comprising: a controller; a buffer memory, wherein said buffer memory comprises a plurality of banks; a nonvolatile memory, wherein an amount of data storable into said nonvolatile memory at one time is equal to an amount of data that can be stored in a plurality of said banks of said buffer memory, wherein said controller performs control operations to receive data from outside of said nonvolatile storage device via a data terminal, to store received data to said banks of said buffer memory, and to transfer received data from said banks of said buffer memory to said nonvolatile memory, wherein said controller also detects whether received data has been transferred from each bank of said buffer memory to said nonvolatile memory, performs control operations to select, for storing further received data, one of said banks of said buffer memory that is not storing received data yet to be transferred to said nonvolatile memory, and performs control operations to issue a program command to said nonvolatile memory when said controller controls transfer of the amount of data to said nonvolatile memory, and wherein said controller further provides a signal, as status information, to the outside of said nonvolatile storage device when said controller detects that all of said banks of said buffer memory are storing received data yet to be transferred to said nonvolatile memory; a status register including a status flag used for providing a state indication which indicates whether a transfer of data from said buffer memory to said nonvolatile memory has been completed, wherein said status flag is set by said controller, and said controller is capable of outputting said state indication as said status information, wherein said status flag includes a plurality of bits respectively corresponding to said plurality of banks of said buffer memory, and each of said bits indicates whether transferring of data from the corresponding bank of said buffer memory to said nonvolatile memory has been completed; a first register containing information which indicates whether each of said banks of said buffer memory is storing received data; and a second register containing information which indicates whether received data stored in each of said banks of said buffer memory has been transferred to said nonvolatile memory, wherein said controller judges whether each of said banks of said buffer memory stores received data yet to be transferred to said nonvolatile memory, based on information contained in said first register and information contained in said second register, for setting each of said bits of said status flag.