InvestorsHub Logo
icon url

Cassandra

09/18/03 5:57 PM

#46397 RE: Sentinel #46377

Sentinel:

I have to chuckle at your post. Sometimes a self-deprecating communication can be fun. I think most could tell from the content of #msg-769451 (which you reposted) that I was not as ignorant as I pretended to be. Prior to asking for advice, I had done a series of reasonable investigations as to why my Word program was freezing up. In the end, I was able to fix the problem myself taking hints from lostcowboy and others.

Now back to the patent for NFFS, AKA MicroOS. If one understands basic computer terms like RAM, cache, BIOS, etc., it is not all that hard to study the patent for the Norris Flash File System (now referred to as MicroOS). It actually takes more patience than specific technological expertise.

The basic claims made are not all that complicated. According to the patent, NFFS is:

A method of memory management for a primary memory created from a non-volatile, long-term storage medium, in particular flash memory, which enables direct manipulation of data segments stored therein. The data segments of a single file are typically not stored contiguously in relation to the order in which they are stored and subsequently recalled, yet the method enables recall in the logical order in which the data segments were created. This method is particularly useful for flash memory which has the characteristic of not being able to overwrite data in memory without first erasing previously recorded data. The method comprises the minimum steps of dividing the primary memory into equal size blocks, each block being the smallest amount of data which can be read from or written to memory in a single read or write operation. A cache memory the size of at least one of the read/write blocks is then coupled to the primary memory and provides temporary storage space for data being written to and read from primary memory.

Although the VERY detailed specific patented algorithm is tedious to read, the abstract above and the background below spell out in plain English what NFFS/MOS does.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention pertains to a system for memory management in a non-volatile, long-term storage medium. More particularly, this system organizes flash memory such that data storage and retrieval is optimized so as to decrease system overhead and thereby increase data throughput, system stability and fault tolerance.

2. Prior Art

Efficient organization of data stored in long-term storage media is becoming increasingly important because of the substantial benefits which they provide over short-term counterparts. That is to say, long-term storage media typically provide the benefit of substantially non-volatile retention of data. Reliable data retrieval is becoming increasingly crucial in our information society because information management is now an indispensable tool of successful business. However, implementation of a system which can provide reliable data retrieval typically comes at a price of reduced performance and convenience. For example, long-term data storage media are usually slower, more difficult to work with, consume more energy, and are relatively bulky in comparison to short-term storage media.

Typical long-term storage media include but are not limited to flash memory, hard disks, floppy disks, tape and CD-ROMs. The main distinguishing feature of this media is that withdrawal of applied power does not result in a loss of the data stored therein. In contrast, short-term storage media include random access memory (RAM) which loses memory upon removal of applied power.

Despite the drawback of losing data stored in RAM when power is withdrawn, the benefits of RAM are substantial and not dismissed without consequences. For example, RAM is faster, has no moving parts, and RAM does not need to erase data stored at a particular address within RAM before new data can be written to that same address. Nevertheless, the challenge of providing virtually uninterruptable power to RAM also comes with a hardware penalty of redundant power systems. Furthermore, RAM is difficult and expensive to use, and not always possible because of size and power considerations.

A quick comparison of the benefits listed above for RAM versus the benefits of long-term storage media shows that a user had to be satisfied with a data storage system such as a hard disk, floppy disk, tape backup or CD-ROM that is not as fast as RAM, draws significantly greater amounts of power, is bulkier and thus less convenient, but is relatively much more reliable. Most of the drawbacks can be blamed on all the media requiring moving mechanical components. In contrast, RAM is very convenient, fast and draws substantially less power, yet cannot be relied upon not to lose data without the considerable expense and bulk of redundant power systems.

The long-term storage medium which conspicuously differs from those mentioned is flash memory. Using the same criteria for comparison as above, data can be read from flash memory at a speed closer to RAM, draws power at a rate far below that of RAM, and the media has no mechanical component to power, but flash memory must first erase data from a particular address before new data may be written to the same physical address. Flash memory is also of a comparable size to RAM because they are both manufactured on computer chips as integrated circuits (IC).

Therefore, it would be advantageous to be able to replace RAM with a long-term storage medium when the substantial benefits of non-volatile data retention are required. When examining the characteristics of the long-term storage media above, it is apparent that the storage medium most similar to RAM because of size, power requirements, and speed is flash memory. Yet there remains the issue of flash memory requiring erasure of data before the memory space occupied by that data is reusable. Therefore, it would be advantageous to have a method of managing flash memory which would compensate for the erasure requirement. It would be a further advantage if this method minimized system overhead while increasing throughput of data storage and retrieval. It would also be an advantage if this same method could be applied to the other long-term storage media.

Before discussing the present invention, it is helpful to look at existing methods of memory management which are commonly referred to as operating system file structures. The Microsoft DOS operating system, hereinafter referred to as DOS, allocates long-term memory space through the use of a file allocation table (FAT) associated with the particular memory. When a hard disk drive is first used, it is divided into sectors each of a fixed size and residing at a fixed place on the drive media. Each sector is then given a number. The FAT is a method for the DOS operating system to determine which sectors on a disk are used for a file. The FAT is essentially a map showing the location of files in the sectors by providing to the operating system the information needed to access data, such as the sector number of a file and possibly the length of the data in that file. The DOS system then typically saves the FAT on the disk at a dedicated location where data is not permitted to overwrite it. Thus the allocation of sectors in the FAT is the manner by which the operating system determines how much memory space is available.

A prior art method of file management designed specifically for flash memory is explained in U.S. Pat. No. 5,404,485 issued to Ban. Ban, however, still takes the more conventional and disadvantageous approach of manipulating data stored in flash memory by first reading the data out to a large RAM, manipulating the data in RAM, erasing the flash memory where the data was originally stored, and then writing the data from RAM back to a contiguous block of flash memory. Ban also disadvantageously creates a file structure similar to DOS which maps the location of stored data.

The method of Ban creates several severe overhead burdens on the system which substantially hurt system performance. More specifically, Ban uses a virtual memory mapping system similar to the DOS FAT, the virtual memory map converting virtual addresses to physical addresses. Using this method of indirection, Ban attempts to facilitate use of flash memory as RAM. The problem with this approach is that Ban creates the need for this indirection because data manipulation takes place outside of flash memory. Ban mistakenly teaches that the time wasted copying blocks of data from flash memory to RAM for manipulation then back into flash memory is unavoidable.

A further significant drawback to Ban is the lack of fault tolerance in a system that utilizes a virtual map stored partially in RAM. The system is inherently unstable because any loss of power to RAM destroys the map which must then be reconstructed before the system can read or write data to flash memory.

Another drawback of Ban is that the RAM requirement grows as flash memory grows. This is the consequence of using a virtual map whose size is dependent upon the total amount of RAM available, and is thus a ratio of the larger flash memory media in order to reflect a scaled version of what is stored in physical addresses.

Ban essentially teaches that it is necessary to follow the method already used in the conventional DOS operating system which also relies on long-term storage in conjunction with significant RAM resources. That is to say, the access to and structure of storage media is changed as little as possible so that the operating system does not have to be significantly altered to utilize flash memory.

While the objective of making a system see flash memory as RAM with its accompanying benefits of non-volatility is desirable, the approach taken by Ban fails to take full advantage of flash memory by continuing to rely heavily on RAM resources. This system then suffers from lack of fault tolerance which not only jeopardizes reliability, but slows down the entire system by requiring large data transfers between RAM and flash memory.

Accordingly, the challenge is to use a non-volatile, long-term storage medium such as flash memory which can take advantage of increased fault tolerance to power interruption, significantly reduced RAM resources, and reduced system overhead caused by data transfers between RAM and the storage medium, while overcoming the erasure drawbacks unique to flash memory.