Patent ID: 8843699

Claim:
A method of writing write data in flash memory, the method comprising: receiving the write data, logical page addresses for the write data, and a write request related to the write data from a host; determining a writing pattern of the write data; and selectively allocating one of a first block and a second block to a log block in accordance with the determined writing pattern, wherein the first block is a single-level cell (SLC) block, and the second block is a multi-level cell (MLC) block, wherein determining the writing pattern of the write data comprises at least one of determining whether the write data has a random-writing pattern by detecting whether the logical page addresses for the write data are discontinuous, and determining whether the write data has a sequential-writing pattern by detecting whether the logical page addresses for the write data are continuous, and upon determining that the write data has the random-writing pattern, allocating the first block to the log block, and upon determining that the write data has the sequential-writing pattern, allocating the second block to the log block.