Abstract: A reliable file system method and system are provided. The reliable file system substantially ensures that an on-media state of a file system is maintained while another working-media state of the file system is modified. At a transaction point, issued by a computer system associated with the file system, the working-media state of the file system is written completely to non-volatile storage associated with the file system. Once the write process is complete, the on-media state of the file system is updated.
Abstract: A reliable file system method and system are provided. The reliable file system substantially ensures that an on-media state of a file system is maintained while another working-media state of the file system is modified. At a transaction point, issued by a computer system associated with the file system, the working-media state of the file system is written completely to non-volatile storage associated with the file system. Once the write process is complete, the on-media state of the file system is updated.
Abstract: A method, system and computer-readable medium for managing bad areas in flash memory. The flash memory is initialized by formatting the flash memory into a spare area and a data area with the spare area and the data area including a plurality of spare blocks and data blocks, respectively. In addition, spare blocks are grouped together forming a chunk. A working chunk map is created for storing format information and re-mapping information. The working chunk map includes a BBM header and a plurality of BBM entries that correspond to the spare blocks in each chunk. The working chunk map is written to one of the plurality of spare blocks in a chunk, designated as a copy chunk map. The working chunk map is also written to another one of the plurality of spare blocks in a chunk, designated as an original chunk map.
Abstract: A method and apparatus are provided for operating a flash memory (24) as a client memory, wherein the flash memory comprises a partition (28) of physical data storage locations. The partition is divided into a plurality of units (30). Each unit is organized into a plurality of allocations (60) where each allocation includes a plurality of blocks (58) of physical data storage locations. The partition is organized into a plurality of regions (46) which define a client address space such that each region represents a portion of the client address space. Interfacing the client address space with the physical address space requires maintaining an allocation list (56) for each unit that includes an allocation (68) entry describing each allocation in the unit. Each allocation entry includes a first field (70) storing a client start address for the allocation in the client address space and a second field (72) storing an allocation length indicating the number of blocks of data in that allocation.