Method and system for file system management using a flash-erasable, programmable, read-only memory
Microsoft Corp.This patent was asserted by Microsoft Corp. against TomTom
Summary / Description
| Summary / Description | General Electric, Salem Virginia, shipped a product called DMC, (Distributed Micro Controller) from 1980-1990 as part of their control systems. Application software in the form of Relay Ladder Logic (and ASM86 modules) was developed under VAX/VMS, using in house programming tools, and downloaded to target DMCs, where it was stored in EEPROM memory. By 1992 DMCs were obsolete and replaced by GE's next generation platform. GE has exceptionally long support for spare parts etc. so it should be possible to obtain more information/documentation from them. HMHA is a generic memory board that can be populated with RAM or EEPROM memory chips. The board populated with EEPROM chips I believe has a designation of EEPA perhaps with a DS3800 prefix. I could also probably locate schematic drawings of this board at one of my client's sites. I would also be willing to make a statement about my knowledge of this item. Hope this is relevant. Rick rjafrate@gmail.com |
Basic Information
| Type of Prior Art | Source Code |
| Name/Title | |
| Publication Date | January 1, 1981 |
| Author | Gary Kraterfield |
| URL | |
| System Type | Firmware |
| Printed Materials (Documentation, Manual, Training Guide, Literature, et cetera) | No |
| Online Source Code Repository | No |
| Online project documentation | No |
| Storage Media (Floppy disk, CD-ROM, Tape, et cetera) | No |
| Other | Yes |
| How to Locate the Evidence (e.g. Location of the System Documentation -- Product Manual, User Guide, or Training Guide) | General Electric Salem Virginia |
| URL for Software Repository | |
| URL for Product Description | |
| Licensing Model | Proprietary or Closed Source |
| Programming Language | ASM86 |
Notes / To Do
| Notes | Contact General Electric (drive Systems) in Salem Virginia for more information and documentation. Gary Kraterfield, Doug Fowley, and Ernie Lin are the engineers most knowledgeable about this subject. Dennis King is an engineer who has worked closely w |
Excerpt
General Electric, Salem Virginia, shipped a product called DMC, (Distributed Micro Controller) from 1980-1990 as part of their control systems. Application software in the form of Relay Ladder Logic (and ASM86 modules) was developed under VAX/VMS, using in house programming tools, and downloaded to target DMCs, where it was stored in EEPROM memory. By 1992 DMCs were obsolete and replaced by GE's next generation platform.
GE has exceptionally long support for spare parts etc. so it should be possible to obtain more information/documentation from them. HMHA is a generic memory board that can be populated with RAM or EEPROM memory chips. The board populated with EEPROM chips I believe has a designation of EEPA perhaps with a DS3800 prefix.
I work at General Electric from 1980-1988 and designed control systems consisting of multiple DMCs. I believe that the DMC product did all of the allocation, deallocation, erasure, and copying of dat described below and is most relevant. I am not sure how relevant the "file allocation table" part is though? An intel hex file is generated by a linker program and contains data and the corresponding memory addresses. The target DMC memory is allocated into different regions wherfe each region contains a different type of data (i.e. RLD code in one region, ASM library in another, etc). On a conceptual level each of these regions could be considered a file and the whole considered a file system. However it is not a generic file system as would be found in DOS or Linux.
Hope this is relevant.
RickJ
rjafrate@gmail.com
Relevance
Claims
Initialization routine
The manager for a computer memory of Claim 1 further comprising:
an initialization routine, each block having header information, the initialization routine for gathering information from the headers and from the allocation tables and storing the gathered information in a memory cache.
Relevance
On initilization DMC checks all memory regions for valid data (i.e. check sum) and loads appliocation program into RAM from EEPROM.
On initilization DMC checks all memory regions for valid data (i.e. check sum) and loads appliocation program into RAM from EEPROM.
Claim Chart
All
Storing and identifying data regions
A method of addressing a data region in a computer memory device, the memory divided into blocks, each block having a physical block number, the method comprising the steps of:
storing an allocation table in each block, the allocation table having entries that indicate an offset of a data region within the block and that have an entry index;
storing a logical block number in each block;
identifying a data region by logical block number and allocation table entry index; and
generating an address to the identified data region based on the logical block number and the allocation table entry index.
Relevance
1. This kind of thing has been done since the beginning of time. In C language one creates a structure (definition of a collection of data or block of memory) and then creates an array of structures or memory blocks. individual structures or memory blocks are accessed via index number. Why is this not obvious?
2. DMC has a method of storing data in EEPROM in different regions and of minimizing the number of erase-write cycles and writ time. I do not know the exact algorithm but it's hard to imagine accomplishing this without using an index to keep track of and access memory blocks.
1. This kind of thing has been done since the beginning of time. In C language one creates a structure (definition of a collection of data or block of memory) and then creates an array of structures or memory blocks. individual structures or memory blocks are accessed via index number. Why is this not obvious?
2. DMC has a method of storing data in EEPROM in different regions and of minimizing the number of erase-write cycles and writ time. I do not know the exact algorithm but it's hard to imagine accomplishing this without using an index to keep track of and access memory blocks.
Claim Chart
All
Levelng block erasures
A method of leveling block erasures in a block-erasable, programmable, read-only memory, the method comprising the steps of:
identifying a first block that has been erased;
identifying a second block that has been erased a fewer number of times than the first block; and
swapping the data in the first block with the data in the second block.
Relevance
DMC optimizes/minimizes number of erase-write cycles but I do not know if it tries to do this or not?
DMC optimizes/minimizes number of erase-write cycles but I do not know if it tries to do this or not?
Claim Chart
None
Storing file location in memory cache
The method of Claim 10, each block having header information, further comprising the steps of:
gathering information from the headers and from the allocation tables; and
storing the gathered information in a memory cache.
Relevance
DMC file system is narrowly defined rather than general purpose. I believe some of it's methods may be relevant but not all. Consult with GE for more info.
DMC file system is narrowly defined rather than general purpose. I believe some of it's methods may be relevant but not all. Consult with GE for more info.
Claim Chart
Some
Memory block reclamation
The manager for a computer memory of Claim 1 further comprising:
a data area deallocation routine for setting an allocation table entry that is in the allocated state to a deallocated state; and
a block reclamation routine for reclaiming data areas corresponding to allocation table entries that are in that deallocated state.
Relevance
If changes are made to the DMC application that results in deletion of data then the corresponding memory locations are reclaimed and available for future additions. When a DMC-Save operation is performed the changes are written to EEPROM memory.
DMC minimizes the number of erasures writing only the memory blocks that have changed.
If changes are made to the DMC application that results in deletion of data then the corresponding memory locations are reclaimed and available for future additions. When a DMC-Save operation is performed the changes are written to EEPROM memory.
DMC minimizes the number of erasures writing only the memory blocks that have changed.
Claim Chart
All
Copying allocated data regions into continguous memory
The method of Claim 4 wherein the allocated data regions are copied into contiguous memory locations in the spare block.
Relevance
DMC copies data from EEPROM to RAM on initialization. RAM memory regions must be contigious but is not necessary in EEPROM. Not sure what algorithm but DMC does optimize use of EEPROM.
DMC copies data from EEPROM to RAM on initialization. RAM memory regions must be contigious but is not necessary in EEPROM. Not sure what algorithm but DMC does optimize use of EEPROM.
Claim Chart
Some
Block-erasable, programmable ROM
The method of Claim 6 or 7 wherein the computer memory device is a block-erasable, programmable, read-only memory.
Relevance
DMC uses EEPROM devices and 6, 7 above.
DMC uses EEPROM devices and 6, 7 above.
Claim Chart
All
Reclaiming deallocated space
The method of Claim 10, further comprising the steps of:
setting an allocation table entry that is in the allocated state to a deallocated state; and
reclaiming data areas corresponding to allocation table entries that are in that deallocated state.
Relevance
DMC file system is narrowly defined rather than general purpose. I believe some of it's methods may be relevant but not all. Consult with GE for more info.
DMC file system is narrowly defined rather than general purpose. I believe some of it's methods may be relevant but not all. Consult with GE for more info.
Claim Chart
All
Memory manager with file allocation table
A manager for a computer memory comprising:
a block allocation routine, the memory divided into blocks of memory locations, each block having an allocation table and a data region divided into data areas, each allocation table having entries corresponding to region data areas, the block allocation routine for selecting a block in which to store data;
a data area allocation routine for selecting a data area within the data region for the selected block in which to store data, for selecting an allocation table entry to correspond to the selected data area, and for setting the selected allocation table entry to correspond to the selected data area and to an allocated state; and
a storage routine for storing data in the selected data area.
Relevance
DMC has a method of managing EEPROM memory similar in function/concept to what is described above. I believe it differs in detail/implementation because it is designed for a narrowly defined file set rather than generic file set.
DMC has a method of managing EEPROM memory similar in function/concept to what is described above. I believe it differs in detail/implementation because it is designed for a narrowly defined file set rather than generic file set.
Claim Chart
Some
Reclaiming deallocated space
A method of reclaiming deallocated space in a block-eraseable, programmable, read-only memory, the memory having blocks, the method comprising the steps of:
identifying data regions as deallocated or allocated in a block to be reclaimed;
erasing a spare block; and
copying allocated data regions from the block to be reclaimed to the spare block whereby a memory area corresponding to the deallocated data region is reclaimed for allocation.
Relevance
DMC uses an algorithm to minimize the number of erase-write cycles to preserve the life of the EEPROM device. This is more important in EEPROM devices than in FLASH devices since EEPROMs have much shorter life cycles.
DMC uses an algorithm to minimize the number of erase-write cycles to preserve the life of the EEPROM device. This is more important in EEPROM devices than in FLASH devices since EEPROMs have much shorter life cycles.
Claim Chart
All
Generating data region addresses
The method of Claim 6 wherein the step of generating an address includes the steps of:
determining the physical block number from the logical block number, each block having a corresponding start address;
retrieving the offset from the allocation table entry in the determined physical block number that is indexed by the allocation table entry index; and
adding the retrieved offset to the start address of the block with the determined physical block number to generate the address of the identified data region.
Relevance
1. How is different than #6? An structure array containing physical block number and offset addresse is described where the array index is the logical block number.
2. DMC variable table has a region for each data type. Each data type has a logical address that maps to a physical address. I believe this is done by combining an offset with the physical starting address.
1. How is different than #6? An structure array containing physical block number and offset addresse is described where the array index is the logical block number.
2. DMC variable table has a region for each data type. Each data type has a logical address that maps to a physical address. I believe this is done by combining an offset with the physical starting address.
Claim Chart
All
Memory manager with file allocation table
A method of managing memory in a block-erasable, programmable, read-only memory, the memory being divided into blocks of memory locations, each block having an allocation table and a data region divided into data areas, each allocation table having entries corresponding to region data areas, the method comprising the steps of:
selecting a block in which to store data;
selecting a data area within the data region for the selected block in which to store data;
selecting an allocation table entry to correspond to the selected data area;
setting the selected allocation table entry to correspond to the selected data area and to an allocated state; and
storing data in the selected data area.
Relevance
DMC file system is narrowly defined rather than general purpose. I believe some of it's methods may be relevant but not all. Consult with GE for more info.
DMC file system is narrowly defined rather than general purpose. I believe some of it's methods may be relevant but not all. Consult with GE for more info.
Claim Chart
Some
Memory manager with file allocation table
A method of managing memory in a block-erasable, programmable, read-only memory, the memory being divided into blocks of memory locations, each block have a table and a data region divided into data areas, each table having entries corresponding to the data areas, the method comprising the steps of:
selecting a block in which to store data;
selecting a data area within the data region for the selected block in which to store data;
selecting a table entry to correspond to the selected data area;
setting the selected table entry to correspond to the selected data area and to indicate that the data area contains data; and
storing data in the selected data area.
Relevance
DMC file system is narrowly defined rather than general purpose. I believe some of it's methods may be relevant but not all. Consult with GE for more info.
DMC file system is narrowly defined rather than general purpose. I believe some of it's methods may be relevant but not all. Consult with GE for more info.
Claim Chart
Some


