Patent ID: 8356136

Claim:
A non-volatile memory block management method, applicable to a non-volatile memory storage system, wherein the non-volatile memory storage system comprises a plurality of hardware channels and a plurality of non-volatile memory chips; each of the hardware channels is coupled to one or more of the non-volatile memory chips; each of the non-volatile memory chips comprises a plurality of physical blocks, each of the physical blocks comprises a plurality of physical pages; the non-volatile memory storage system comprises a plurality of physical block sets; each of the physical block sets comprises a plurality of physical blocks; each of the physical blocks in the same physical block set belongs to different ones of the non-volatile memory chips; the non-volatile memory block management method comprises: (a) when data is written into a logical block in a logical space for a first time, allocating a free first physical block set among the physical block sets for storing the data; (b) when the first physical block set is full and more data is to be written into the logical block, allocating a free second physical block set among the physical block sets for storing the data and storing a first pointer into a spare area of each of the physical pages of the second physical block set, wherein the first pointer points to the first physical block set; and (c) when the second physical block set is full and more data is to be written into the logical block, allocating a free third physical block set among the physical block sets for storing the data, selecting one of the first physical block set and the second physical block set according to a predetermined criterion, copying valid data in the selected physical block set to the third physical block set, erasing and collecting the selected physical block set, and storing a second pointer into a spare area of each of the physical pages of the third physical block set, wherein the second pointer points to the unselected one of the first physical block set and the second physical block set.