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... |
Citations|
| US4685057 | Jun 6, 1983 | Aug 4, 1987 | Data General Corporation | Memory mapping system | | US5200959 | Oct 17, 1989 | Apr 6, 1993 | SunDisk Corporation | Device and method for defect handling in semi-conductor memory | | US5263160 | Jan 31, 1991 | Nov 16, 1993 | Digital Equipment Corporation | Augmented doubly-linked list search and management method for a system having data stored in a list of data elements in memory | | US5337275 | Nov 1, 1993 | Aug 9, 1994 | Intel Corporation | Method for releasing space in flash EEPROM memory array to allow the storage of compressed data | | US5341330 | Nov 1, 1993 | Aug 23, 1994 | Intel Corporation | Method for writing to a flash memory array during erase suspend intervals | | US5357475 | Oct 30, 1992 | Oct 18, 1994 | Intel Corporation | Method for detaching sectors in a flash EEPROM memory array | | US5404485 | Mar 8, 1993 | Apr 4, 1995 | M-Systems Flash Disk Pioneers Ltd. | Flash file system | | US5437020 | Oct 3, 1992 | Jul 25, 1995 | Intel Corporation | Method and circuitry for detecting lost sectors of data in a solid state memory disk | | US5448577 | Oct 30, 1992 | Sep 5, 1995 | Intel Corporation | Method for reliably storing non-data fields in a flash EEPROM memory array | | US5454103 | Feb 1, 1993 | Sep 26, 1995 | LSC, Inc. | Method and apparatus for file storage allocation for secondary storage using large and small file blocks | | US5551020 | Mar 28, 1994 | Aug 27, 1996 | Flextech Systems, Inc. | System for the compacting and logical linking of data blocks in files to optimize available physical storage | | US5581736 | Jul 18, 1994 | Dec 3, 1996 | Microsoft Corporation | Method and system for dynamically sharing RAM between virtual memory and disk cache | | US5586291 | Dec 23, 1994 | Dec 17, 1996 | EMC Corporation | Disk controller with volatile and non-volatile cache memories | | US5602987 | Dec 29, 1993 | Feb 11, 1997 | SanDisk Corporation | Flash EEprom system |
Referenced by|
| US5978810 | Feb 3, 1998 | Nov 2, 1999 | International Business Machines Corporation | Data management system and method for storing a long record in a set of shorter keyed records | | US6044346 | Mar 9, 1998 | Mar 28, 2000 | Lucent Technologies Inc. | System and method for operating a digital voice recognition processor with flash memory storage | | US6212097 | Mar 23, 2000 | Apr 3, 2001 | Sony Corporation | Nonvolatile memory | | US6247024 | Sep 25, 1998 | Jun 12, 2001 | International Business Machines Corporation | Method and system for performing deferred file removal in a file system | | US6262915 | Mar 2, 2000 | Jul 17, 2001 | Sony Corporation | Nonvolatile memory and nonvolitile memory reproducing apparatus | | US6272503 | May 30, 1997 | Aug 7, 2001 | Oracle Corporation | Tablespace-relative database pointers | | US6272587 | May 12, 1999 | Aug 7, 2001 | Cummins Engine Company, Inc. | Method and apparatus for transfer of data between cache and flash memory in an internal combustion engine control system | | US6304883 | Jul 29, 1997 | Oct 16, 2001 | Samsung Electronics Co., Ltd. | Technique for managing files in telephone switching system | | US6404676 | Feb 13, 2001 | Jun 11, 2002 | Sony Corporation | Nonvolatile memory and nonvolatile memory reproducing apparatus | | US6502204 | Apr 19, 2001 | Dec 31, 2002 | Hitachi, Ltd. | Library system storing removable storage media | | US6535949 | Apr 19, 1999 | Mar 18, 2003 | Research In Motion Limited | Portable electronic device having a log-structured file system in flash memory | | US6549901 | Sep 29, 2000 | Apr 15, 2003 | Oracle Corporation | Using transportable tablespaces for hosting data of multiple users | | US6587915 | Sep 28, 2000 | Jul 1, 2003 | Samsung Electronics Co., Ltd. | Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same | | US6594674 | Jun 27, 2000 | Jul 15, 2003 | Microsoft Corporation | System and method for creating multiple files from a single source file | | US6633724 | Feb 25, 1999 | Oct 14, 2003 | Hitachi, Ltd. | Realtime data recording method | | US6675180 | Jun 4, 2001 | Jan 6, 2004 | Matsushita Electric Industrial Co., Ltd. | Data updating apparatus that performs quick restoration processing | | US6760535 | Mar 27, 2000 | Jul 6, 2004 | ATI International SRL | Method and apparatus for cache management for a digital VCR archive | | US6789095 | Mar 25, 2002 | Sep 7, 2004 | Sony Corporation | File management method, program therefore, recording medium containing the program, and file management apparatus for performing the method | | US6804671 | Jan 28, 2003 | Oct 12, 2004 | Oracle International Corporation | Pluggable tablespaces for database systems | | US6804685 | May 17, 2001 | Oct 12, 2004 | STMicroelectronics S.r.l. | Voice message managing method, in particular for a voice data recording/playing/editing electronic device | | US6823449 | Mar 9, 2001 | Nov 23, 2004 | Sun Microsystems, Inc. | Directory structure-based reading of configuration ROM | | US6910082 | Nov 18, 1999 | Jun 21, 2005 | International Business Machines Corporation | Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server | | US6934700 | Oct 18, 1999 | Aug 23, 2005 | Koninklijke Philips Electronics N.V. | File systems supported data sharing | | US6950918 | Apr 30, 2002 | Sep 27, 2005 | Lexar Media, Inc. | File management of one-time-programmable nonvolatile memory devices | | US6957295 | Jan 18, 2002 | Oct 18, 2005 | Lexar Media, Inc. | File management of one-time-programmable nonvolatile memory devices | | US6973519 | Jun 3, 2003 | Dec 6, 2005 | Lexar Media, Inc. | Card identification compatibility | | US6978342 | Jul 21, 2000 | Dec 20, 2005 | Lexar Media, Inc. | Moving sectors within a block of information in a flash memory mass storage architecture | | US6985584 | Mar 27, 2000 | Jan 10, 2006 | Sony Corporation | Non-volatile record medium, recording method, and recording apparatus | | US7000064 | Sep 27, 2002 | Feb 14, 2006 | Lexar Media, Inc. | Data handling system | | US7102671 | Feb 8, 2000 | Sep 5, 2006 | Lexar Media, Inc. | Enhanced compact flash memory card | | US7111140 | Apr 26, 2004 | Sep 19, 2006 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices | | US7133599 | Aug 20, 2003 | Nov 7, 2006 | Hitachi, Ltd. | Realtime data recording method | | US7138295 | Dec 18, 2003 | Nov 21, 2006 | Elm Technology Corporation | Method of information processing using three dimensional integrated circuits | | US7167944 | Jun 4, 2003 | Jan 23, 2007 | Lexar Media, Inc. | Block management for mass storage | | US7185208 | Sep 27, 2002 | Feb 27, 2007 | Lexar Media, Inc. | Data processing | | US7193239 | Jul 3, 2003 | Mar 20, 2007 | Elm Technology Corporation | Three dimensional structure integrated circuit | | US7193916 | Jun 16, 2004 | Mar 20, 2007 | Sony Corporation | Apparatus and method for determining erasability of data | | US7215580 | Jun 14, 2004 | May 8, 2007 | Lexar Media, Inc. | Non-volatile memory control | | US7231643 | Feb 21, 2003 | Jun 12, 2007 | Lexar Media, Inc. | Image rescue system including direct communication between an application program and a device driver | | US7240065 | May 27, 2004 | Jul 3, 2007 | Oracle International Corporation | Providing mappings between logical time values and real time values | | US7242924 | Aug 29, 2003 | Jul 10, 2007 | Broadcom Corp. | Methods of recording voice signals in a mobile set | | US7251660 | Jun 10, 2004 | Jul 31, 2007 | Oracle International Corporation | Providing mappings between logical time values and real time values in a multinode system | | US7254724 | Sep 27, 2002 | Aug 7, 2007 | Lexar Media, Inc. | Power management system | | US7257666 | Mar 1, 2004 | Aug 14, 2007 | Fujitsu Limited | Method of writing, erasing, and controlling memory for memory device | | US7263591 | Feb 6, 2006 | Aug 28, 2007 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices | | US7275686 | Dec 14, 2004 | Oct 2, 2007 | Lexar Media, Inc. | Electronic equipment point-of-sale activation to avoid theft | | US7340581 | Sep 27, 2002 | Mar 4, 2008 | Lexar Media, Inc. | Method of writing data to non-volatile memory | | US7370166 | Apr 29, 2005 | May 6, 2008 | Lexar Media, Inc. | Secure portable storage device | | US7385835 | Dec 18, 2003 | Jun 10, 2008 | Elm Technology Corporation | Membrane 3D IC fabrication | | US7403852 | Oct 20, 2003 | Jul 22, 2008 | Mitsubishi Denki Kabushiki Kaisha | Data architecture of map data, data architecture of update instruction data, map information processing apparatus, and map information providing apparatus | | US7424593 | Apr 13, 2006 | Sep 9, 2008 | Micron Technology, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices | | US7441090 | Aug 10, 2005 | Oct 21, 2008 | Lexar Media, Inc. | System and method for updating data sectors in a non-volatile memory using logical block addressing | | US7464306 | Aug 27, 2004 | Dec 9, 2008 | Lexar Media, Inc. | Status of overall health of nonvolatile memory | | US7474004 | Dec 18, 2003 | Jan 6, 2009 | Elm Technology Corporation | Three dimensional structure memory | | US7479694 | Dec 19, 2003 | Jan 20, 2009 | Elm Technology Corporation | Membrane 3D IC fabrication | | US7485571 | Sep 19, 2003 | Feb 3, 2009 | Elm Technology Corporation | Method of making an integrated circuit | | US7504732 | Aug 19, 2002 | Mar 17, 2009 | Elm Technology Corporation | Three dimensional structure memory | | US7523249 | Jun 24, 2005 | Apr 21, 2009 | Lexar Media, Inc. | Direct logical block addressing flash memory mass storage architecture | | US7549013 | Apr 13, 2006 | Jun 16, 2009 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices | | US7571173 | Oct 15, 2004 | Aug 4, 2009 | Oracle International Corporation | Cross-platform transportable database | | US7571275 | Aug 31, 2005 | Aug 4, 2009 | Hamilton Sundstrand Corporation | Flash real-time operating system for small embedded applications | | US7594063 | Nov 19, 2004 | Sep 22, 2009 | Lexar Media, Inc. | Storage capacity status | | US7600085 | May 23, 2005 | Oct 6, 2009 | Sony Corporation | Apparatus and method for determining erasability of data | | US7610314 | Oct 7, 2005 | Oct 27, 2009 | Oracle International Corporation | Online tablespace recovery for export | | US7615837 | Jan 24, 2005 | Nov 10, 2009 | Taiwan Semiconductor Manufacturing Company | Lithography device for semiconductor circuit pattern generation | | US7634494 | May 3, 2005 | Dec 15, 2009 | Intel Corporation | Flash memory directory virtualization | | US7670893 | Nov 3, 2003 | Mar 2, 2010 | Taiwan Semiconductor Manufacturing Co., Ltd. | Membrane IC fabrication | | US7681057 | Aug 7, 2007 | Mar 16, 2010 | Lexar Media, Inc. | Power management of non-volatile memory systems | | US7705466 | Sep 26, 2003 | Apr 27, 2010 | Elm Technology Corporation | Three dimensional multi layer memory and control logic integrated circuit structure | | US7725628 | Apr 19, 2005 | May 25, 2010 | Lexar Media, Inc. | Direct secondary device interface by a host | | US7734862 | Jan 11, 2007 | Jun 8, 2010 | Lexar Media, Inc. | Block management for mass storage | | US7743290 | Nov 24, 2008 | Jun 22, 2010 | Lexar Media, Inc. | Status of overall health of nonvolatile memory | | US7763948 | Oct 22, 2004 | Jul 27, 2010 | Taiwan Semiconductor Manufacturing Co., Ltd. | Flexible and elastic dielectric integrated circuit | | US7774576 | Apr 20, 2009 | Aug 10, 2010 | Lexar Media, Inc. | Direct logical block addressing flash memory mass storage architecture | | US7814360 | Jan 25, 2007 | Oct 12, 2010 | Oralce International Corporation | Synchronizing cluster time to a master node with a faster clock | | US7865659 | May 5, 2008 | Jan 4, 2011 | Micron Technology, Inc. | Removable storage device | | US7873684 | Nov 21, 2003 | Jan 18, 2011 | Oracle International Corporation | Automatic and dynamic provisioning of databases | | US7877540 | Dec 13, 2005 | Jan 25, 2011 | SanDisk Corporation | Logically-addressed file storage methods | | US7903463 | Apr 16, 2009 | Mar 8, 2011 | Micron Technology, Inc. | Increased NAND flash memory read throughput | | US7908426 | Oct 1, 2008 | Mar 15, 2011 | Lexar Media, Inc. | Moving sectors within a block of information in a flash memory mass storage architecture | | US7911012 | Jan 18, 2008 | Mar 22, 2011 | Taiwan Semiconductor Manufacturing Co., Ltd. | Flexible and elastic dielectric integrated circuit | | US7917709 | Dec 15, 2009 | Mar 29, 2011 | Lexar Media, Inc. | Memory system for data storage and retrieval | | US7944762 | May 8, 2007 | May 17, 2011 | Micron Technology, Inc. | Non-volatile memory control | | US7949822 | Sep 8, 2009 | May 24, 2011 | Micron Technology, Inc. | Storage capacity status | | US8019932 | May 4, 2010 | Sep 13, 2011 | Micron Technology, Inc. | Block management for mass storage | | US8032694 | Jul 27, 2010 | Oct 4, 2011 | Micron Technology, Inc. | Direct logical block addressing flash memory mass storage architecture | | US8035233 | Mar 3, 2003 | Oct 11, 2011 | Elm Technology Corporation | Adjacent substantially flexible substrates having integrated circuits that are bonded together by non-polymeric layer | | US8078797 | May 22, 2009 | Dec 13, 2011 | Micron Technology, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices | | US8080442 | Jun 21, 2008 | Dec 20, 2011 | Elm Technology Corporation | Vertical system integration | | US8090404 | Dec 15, 2009 | Jan 3, 2012 | Broadcom Corporation | Methods of recording voice signals in a mobile set | | US8090886 | Apr 22, 2010 | Jan 3, 2012 | Micron Technology, Inc. | Direct secondary device interface by a host | | US8116890 | Oct 25, 2006 | Feb 14, 2012 | MPMAN.COM, Inc. | Portable sound reproducing system and method | | US8135925 | Mar 28, 2011 | Mar 13, 2012 | Micron Technology, Inc. | Methods of operating a memory system | | US8151041 | Dec 15, 2010 | Apr 3, 2012 | Micron Technology, Inc. | Removable storage device | | US8161085 | Oct 14, 2010 | Apr 17, 2012 | Oracle International Corporation | Automatic and dynamic provisioning of databases | | US8166488 | Jan 16, 2007 | Apr 24, 2012 | Micron Technology, Inc. | Methods of directly accessing a mass storage data device | | US8169856 | Oct 24, 2008 | May 1, 2012 | Oracle International Corporation | Time synchronization in cluster systems | | US8170700 | Apr 26, 2006 | May 1, 2012 | Mpman.com, Inc. | Portable sound reproducing system and method | | US8171203 | Dec 19, 2003 | May 1, 2012 | Micron Technology, Inc. | Faster write operations to nonvolatile memory using FSInfo sector manipulation | | US8174892 | Mar 7, 2011 | May 8, 2012 | Round Rock Research, LLC | Increased NAND flash memory read throughput | | US8175727 | Dec 29, 2006 | May 8, 2012 | Mpman.com, Inc. | Portable sound reproducing system and method | | US8208322 | May 16, 2011 | Jun 26, 2012 | Micron Technology, Inc. | Non-volatile memory control | | US8214064 | Dec 29, 2006 | Jul 3, 2012 | LG Electronics Inc. | Portable sound reproducing system and method | | US8225042 | May 5, 2009 | Jul 17, 2012 | Micron Technology, Inc. | Method and apparatus for preventing foreground erase operations in electrically writable memory devices |
Claims1. A method of memory management for a primary memory created from a non-volatile, long-term storage medium, said method enabling direct manipulation of contiguous and non-contiguous discrete data segments stored therein by a file system, and comprising the steps of: - (a) creating the primary memory from a non-volatile, long-term storage medium, wherein the primary memory comprises a plurality of blocks in which the data segments are to be stored;
- (b) coupling a cache memory to the primary memory, said cache memory providing temporary and volatile storage for at least one of the data segments;
- (c) writing a new data segment from the cache memory to the primary memory by linking said new data segment to a sequentially previous logical data segment by the following steps:
- (1) receiving the new data segment in the cache memory;
- (2) moving the new data segment from the cache memory to a next available space within primary memory such that the new data segment is stored in primary memory in non-used memory space;
- (3) identifying the previous logical data segment in primary memory;
- (4) creating a logical link between the previous logical data segment and the new data segment such that the logical link provides a path for sequentially accessing the data segments within the primary memory; and
- (5) creating additional serial and logical links as subsequent new data segments are written to primary memory, said logical links providing the path for serially accessing the data segments regardless of contiguity of the data segments relative to each other within the primary memory.
2. The method of claim 1 wherein the method comprises the additional step of reading at least one data segment from primary memory by following the steps of: - (a) moving backwards or forwards from a current data segment to other serially and logically linked data segments within the primary memory along a path of serial and logical links;
- (b) identifying the at least one data segment when it is the current data segment; and
- (c) retrieving the current data segment from the primary memory by reading said data segment into the cache memory.
3. The method as defined in claim 2 wherein the method comprises the additional step of creating a current file pointer, said current file pointer being a physical address stored in a memory corresponding to a location of a file in the primary memory, and wherein the file system accesses files stored in the primary memory by retrieving data beginning at the physical address stored in the current file pointer. 4. The method as defined in claim 3 wherein the step of moving forwards to other serially and logically linked data segments from a current data segment comprises the additional steps of: - (a) locating a next data segment address pointer stored in the current data segment which stores an address of the next data segment which is logically linked to the current data segment;
- (b) retrieving the address from the next data segment address pointer; and
- (c) storing the address in the current file pointer.
5. The method as defined in claim 4 wherein the step of moving backwards to other serially and logically linked data segments from a current data segment comprises the additional steps of creating a history of movement by the current file pointer along the linked data segments: - (a) creating a memory stack for storing address pointers in memory, said stack following a last in, first out process for pushing on and popping off address pointers from the stack;
- (b) pushing an address pointer of a root directory onto the stack when the file system is initialized; and
- (c) sequentially pushing subsequent address pointers onto the stack from the current file pointer as the current file pointer moves down a logical link to a last data segment from which the file system needs to backtrack.
6. The method as defined in claim 5 wherein the step of moving backwards to other serially and logically linked data segments from a current data segment comprises the additional steps of: - (a) sequentially popping a top address pointer from the stack, said top address being an address pointer to a preceding data segment;
- (b) storing the popped top address pointer to the current file pointer; and
- (c) repeating steps (a) and (b) until the current address pointer contains the address of a desired data segment.
7. The method as defined in claim 2 wherein the file system includes application program instructions which execute functions of the file system which are compatible with DOS compliant computer devices. 8. The method as defined in claim 7 wherein the file system includes BIOS function calls which are specific to memory type such that application program instructions are implemented in context of the memory technology. 9. The method as defined in claim 2 wherein the method of memory management includes the step of creating logical blocks which overlay a physical memory structure of primary memory, said logical blocks comprising at least one erase block. 10. The method as defined in claim 9 wherein the step of creating logical blocks which overlay the physical memory structure further includes the step of creating logical memory block maps within each logical block, said memory block map indicating whether the at least one erase block is nonfunctional. 11. The method as defined in claim 10 wherein the step of creating logical memory blocks maps includes the step of creating a logical block control map, said map including a physical address of the physical memory over which the logical block corresponds, an address of a next available memory equal size block in which data may be stored, and a nonfunctional block map. 12. The method as defined in claim 1 wherein the step of creating the primary memory from a non-volatile, long-term storage medium comprises the more specific step of selecting flash memory as the primary memory. 13. The method as defined in claim 12 wherein the step of creating the primary memory from flash memory comprises the more specific step of selecting NAND technology flash memory as primary memory. 14. The method as defined in claim 1 wherein the step of coupling the cache memory to the primary memory comprises the more specific step of coupling a random access memory to the primary memory. 15. The method as defined in claim 1, wherein the step of creating a logical link between the previous logical data segment and the new data segment comprises the steps of: - (a) appending a header to new data segments when writing the new data segments to primary memory by moving the new data segment from the cache memory to the next available contiguous memory space within primary memory; and
- (b) including in the header at least one address pointer so as to logically link the header to other data segments.
16. The method as defined in claim 15 wherein the step of appending a header to the new data segments comprises the more specific step of selecting a header from the group consisting of a device, volume, directory, file, data, and tree header. 17. The method as defined in claim 11 wherein the step of appending a header to the new data segments comprises the more specific step of selecting a header-like data structure from the group consisting of a tree node, a segment index entry, and a secondary segment index entry. 18. The method as defined in claim 15 wherein the step of appending a header to the new data segments so as to create the logical link to the other data segments comprises the more specific steps of including within the header an identification field wherein unique identification data is stored such that no headers in the primary memory have the same identification data. 19. The method as described in claim 15 wherein the method of memory management for a primary memory comprises the additional step of reserving a fixed amount of primary memory for an edit history which provides a record of all modifications to at least one file stored in primary memory. 20. The method as described in claim 19 wherein the method of memory management which reserves the fixed amount of primary memory for an edit history comprises the more specific step of creating a playback tree structure, said playback tree structure providing temporary storage space in the work memory for a copy of sequentially related data segments comprising the at least one file stored in primary memory. 21. The method as defined in claim 20 wherein the step of creating a playback structure in temporary storage space comprises the steps of: - (a) creating a first tree header including a first tree node address pointer and a next tree node address pointer, said first tree header corresponding to a directory in which the current file pointer resides;
- (b) creating at least one tree node including a next tree node address pointer, a branch node pointer, a data address pointer and a data size field, said at least one tree node corresponding to a file whose address is contained within the current file pointer.
22. The method as defined in claim 20 wherein the step of creating a playback structure in temporary storage space which provides seamless playback of data stored in a file of primary memory includes the ability to logically insert new data in an existing data segment by the steps of: - (a) creating a second tree node which enables retrieval of a portion of the existing data segment which is designated as pre-insertion data;
- (b) creating a third tree node which enables retrieval of data from a new data header, said new data header containing the new data to be logically inserted, and said new data being seamlessly retrievable after retrieval of the pre-existing data; and
- (c) creating a fourth tree node which enables seamless retrieval of a portion of the existing data segment which is designated as post-insertion data after retrieval of the new data.
23. The method as defined in claim 20 wherein the step of creating a playback structure in temporary storage space which provides seamless playback of data stored in a file stored in primary memory includes the ability to logically delete a portion of data from an existing data segment without physically deleting said portion, and comprising the steps of: - (a) creating a second tree node which enables retrieval of a portion of the existing data segment which is designated as pre-erasure data; and
- (b) creating a third tree node which enables seamless retrieval of a portion of the existing data segment which is designated as post-erasure data after retrieval of the pre-erasure data.
24. The method as defined in claim 23 wherein the method comprises the additional step of creating a new data header which records location information about the portion of data being logically deleted from the existing data segment. 25. The method as defined in claim 20 wherein the method of memory management comprises the more specific steps of separating the work memory from a user memory in primary memory, said work memory being dedicated to storing the playback tree structures. |