Patent ID: 8607016

Claim:
A method for storing non-sequential data received from a host in a memory system, the host having a logical address space, the host further storing a File Allocation Table (FAT) or directory, and the memory system having a controller and a non-volatile memory array, the controller having another logical address space and the non-volatile memory array having a physical address space, the method comprising: the controller obtaining information specifying a plurality of allocated clusters in the logical address space of the host and a plurality of free clusters in the logical address space of the host for storing data at the host and that have been deallocated by the host, wherein the information is obtained from the FAT or directory stored by the host, and wherein the obtained information specifies a sequence of clusters in the logical address space of the host, the clusters in the sequence indicated as free clusters or allocated clusters in the logical address space of the host; the controller receiving a first set of non-sequential data having an address range from the host, the address range associated with the sequence of clusters in the logical address space of the host included in the obtained information; the controller determining, based on the obtained information from the FAT or directory that the address range of the non-sequential data is not being written by the host into a first available free cluster that is positioned after a sequence of one or more allocated clusters in the sequence of clusters in the logical address space of the host, which are positioned after the last cluster from the allocated clusters into which data was last stored by the host; and in response to the determination that the non-sequential data is not being written by the host into the first available free cluster in the logical address space of the host, the controller storing the non-sequential data in a chaotic update block formed from conversion of an open sequential update block.