Patent ID: 6189081
Filing Date: 2001-02-13
Classification: G06F,Y02D

Abstract:
A non-volatile semiconductor storage comprising:at least one internal electrically programmable and erasable memory comprised of storage blocks which can be written and erased independently of each other, each of said storage blocks including one or more storage units;temporary memory means for temporarily storing data to be written into said storage units and data read out from said storage units;an information storage area indicating the status of data stored in each of said storage units;control means for controlling a reading and writing of information in said information storage area;said control means comprising:means for recognizing a writing command when said writing command is supplied from an external device external to the non-volatile semiconductor storage;means for fetching into said temporary memory means, data to be written, supplied from said external device;means for calculating the size of said data to be written;means for comparing the size of said data to be written, with the size of said blocks and the size of said storage units, and calculating the required number of said blocks and said storage units, required for storing said data;means for searching said information in said information storage area, to find available empty writable blocks and groups of writable storage units;means for allocating, of said data to be written, data of the size corresponding to a natural number times the size of said block, to said found empty writable blocks, said means comparing a data remainder obtained by subtracting said natural number times the size of said block from said data to be written, with the size of said groups of found storage units, and allocating said data remainder to one of said groups of found storage units, said one group of found storage units being, of said groups of found storage units, closest in size to said data remainder and being equal to or larger in size to said data remainder;means for reading, after the above mentioned allocation is completed, said data to be written stored in said temporary memory means, to write said data to be written to said allocated blocks and storage units; andmeans for updating the information in said information storage area, corresponding to said allocated blocks and storage units to which said data to be written has been written.