Claims
- 1. A memory management method comprising the steps of:
assigning pointers to free memory locations; linking said pointers to one another creating a linked list of free memory locations having a beginning and an end; assigning a free head pointer to a memory location indicating said beginning of free memory locations; assigning a free tail pointer to a memory location indicating said end of free memory locations; assigning an initial data pointer to said memory location assigned to said free head pointer; assigning an end of data pointer to a last data memory location; assigning said free head pointer to a next memory location linked to said last data memory location assigned to said end of data pointer, wherein said next memory location indicates said beginning of free memory locations.
- 2. The method as recited in claim 1 wherein when data to be saved is only large enough to occupy one memory location said end of data pointer is assigned to said memory location assigned to said initial data pointer.
- 3. The method as recited in claim 1 wherein when data to be saved is larger than one memory location the method comprises the steps of:
assigning a sufficient number of memory locations linked to said memory location assigned to said initial data pointer.
- 4. The method as recited in claim 1 further comprising the steps of:
linking said memory location assigned to said free tail pointer to said memory location assigned to said initial data pointer when said data is to be indicated as free memory; and assigning said free tail pointer to said last data memory location assigned to said end of data pointer.
- 5. A memory management method comprising the steps of:
assigning pointers to free memory locations; linking said pointers to one another creating a linked list of free memory locations having a beginning and an end; assigning a free head pointer to a memory location indicating said beginning of free memory locations; assigning a free tail pointer to a memory location indicating said end of free memory locations; linking said memory location assigned to said free tail pointer to said memory location assigned to an initial data pointer when memory locations occupied by data is to be indicated as free memory; and assigning said free tail pointer to said last data memory location assigned to said end of data pointer.
- 6. The method as recited in claim 5 further comprising the steps of:
assigning an initial data pointer to said memory location assigned to said free head pointer; assigning an end of data pointer to a last data memory location; assigning said free head pointer to a next memory location linked to said last data memory location assigned to said end of data pointer, wherein said next memory location indicates said beginning of free memory locations.
- 7. The method as recited in claim 6 wherein when data to be saved is only large enough to occupy one memory location said end of data pointer is assigned to said memory location assigned to said initial data pointer.
- 8. The method as recited in claim 6 wherein when data to be saved is larger than one memory location the method comprises the steps of:
assigning a sufficient number of memory locations linked to said memory location assigned to said initial data pointer.
- 9. A memory management system comprising:
a pointer assignor that assigns pointers to free memory locations; a linker that links said pointers to one another thereby creating a linked list of free memory locations having a beginning and an end; a free head pointer assignor that assigns a free head pointer to a memory location indicating said beginning of said linked list of free memory locations; a free tail pointer assignor that assigns a free tail pointer to a memory location indicating said end of said linked list of free memory locations; an initial data pointer assignor that assigns an initial data pointer to said memory location assigned to said free head pointer; and an end of data pointer assignor that assigns an end of data pointer to a last data memory location; wherein said free head pointer assignor assigns said free head pointer to a next memory location linked to said last data memory location assigned to said end of data pointer, wherein said next memory location indicates said beginning of free memory locations.
- 10. The system as recited in claim 9 wherein when data to be saved is only large enough to occupy one memory location said end of data pointer assignor assigns said end of data pointer to said memory location assigned to said initial data pointer.
- 11. The system as recited in claim 9 wherein when data to be saved is larger than one memory location the system further comprises:
a data assignor that assigns a sufficient number of memory locations linked to said memory location assigned to said initial data pointer.
- 12. The system as recited in claim 9 wherein said linker links said memory location assigned to said free tail pointer to said memory location assigned to said initial data pointer when said data is to be indicated as free memory; and
said assignor assigns said free tail pointer to said last data memory location assigned to said end of data pointer.
- 13. A memory management system comprising:
a pointer assignor that assigns pointers to free memory locations; a linker that links said pointers to one another thereby creating a linked list of free memory locations having a beginning and an end; a free head pointer assignor that assigns a free head pointer to a memory location indicating said beginning of said linked list of free memory locations; and a free tail pointer assignor that assigns a free tail pointer to a memory location indicating said end of said linked list of free memory locations; wherein said linker links said memory location assigned to said free tail pointer to said memory location assigned to an initial data pointer when memory locations occupied by data is to be indicated as free memory; and said free tail pointer assignor assigns said free tail pointer to said last data memory location assigned to said end of data pointer.
- 14. The system as recited in claim 13 further comprising:
an initial data pointer assignor that assigns an initial data pointer to said memory location assigned to said free head pointer; and an end of data pointer assignor that assigns an end of data pointer to a last data memory location; wherein said free head pointer assignor assigns said free head pointer to a next memory location linked to said last data memory location assigned to said end of data pointer, wherein said next memory location indicates said beginning of free memory locations.
- 15. The system as recited in claim 14 wherein when data to be saved is only large enough to occupy one memory location said end of data pointer assignor assigns said end of data pointer to said memory location assigned to said initial data pointer.
- 16. The system as recited in claim 14 wherein when data to be saved is larger than one memory location, a data assignor assigns a sufficient number of memory locations linked to said memory location assigned to said initial data pointer.
- 17. A memory management system comprising:
a pointer assignor means for assigning pointers to free memory locations; a linker means for linking said pointers to one another thereby creating a linked list of free memory locations having a beginning and an end; a free head pointer assignor means for assigning a free head pointer to a memory location indicating said beginning of said linked list of free memory locations; a free tail pointer assignor means for assigning a free tail pointer to a memory location indicating said end of said linked list of free memory locations; an initial data pointer assignor means for assigning an initial data pointer to said memory location assigned to said free head pointer; and an end of data pointer assignor means for assigning an end of data pointer to a last data memory location; wherein said free head pointer assignor means assigns said free head pointer to a next memory location linked to said last data memory location assigned to said end of data pointer, wherein said next memory location indicates said beginning of free memory locations.
- 18. The system as recited in claim 17 wherein when data to be saved is only large enough to occupy one memory location said end of data pointer assignor means assigns said end of data pointer to said memory location assigned to said initial data pointer.
- 19. The system as recited in claim 17 wherein when data to be saved is larger than one memory location the system further comprises:
a data assignor means for assigning a sufficient number of memory locations linked to said memory location assigned to said initial data pointer.
- 20. The system as recited in claim 17 wherein said linker means links said memory location assigned to said free tail pointer to said memory location assigned to said initial data pointer when said data is to be indicated as free memory; and
said assignor means assigns said free tail pointer to said last data memory location assigned to said end of data pointer.
- 21. A memory management system comprising:
a pointer assignor means for assigning pointers to free memory locations; a linker means for linking said pointers to one another thereby creating a linked list of free memory locations having a beginning and an end; a free head pointer assignor means for assigning a free head pointer to a memory location indicating said beginning of said linked list of free memory locations; and a free tail pointer assignor means for assigning a free tail pointer to a memory location indicating said end of said linked list of free memory locations; wherein said linker means links said memory location assigned to said free tail pointer to said memory location assigned to an initial data pointer when memory locations occupied by data is to be indicated as free memory; and said free tail pointer assignor means assigns said free tail pointer to said last data memory location assigned to said end of data pointer.
- 22. The system as recited in claim 21 further comprising:
an initial data pointer assignor means for assigning an initial data pointer to said memory location assigned to said free head pointer; and an end of data pointer assignor means for assigning an end of data pointer to a last data memory location; wherein said free head pointer assignor means assigns said free head pointer to a next memory location linked to said last data memory location assigned to said end of data pointer, wherein said next memory location indicates said beginning of free memory locations.
- 23. The system as recited in claim 21 wherein when data to be saved is only large enough to occupy one memory location said end of data pointer assignor means assigns said end of data pointer to said memory location assigned to said initial data pointer.
- 24. The system as recited in claim 21 wherein when data to be saved is larger than one memory location, a data assignor means assigns a sufficient number of memory locations linked to said memory location assigned to said initial data pointer.
- 25. A memory management device comprising:
a pointer assignor that assigns pointers to free memory locations of a memory, said pointer assignor in communication with said memory; a linker that links said pointers to one another thereby creating a linked list of free memory locations having a beginning and an end, said linker in communication with said memory; a free head pointer assignor that assigns a free head pointer to a memory location indicating said beginning of said linked list of free memory locations, said free head pointer assignor in communication with said memory; a free tail pointer assignor that assigns a free tail pointer to a memory location indicating said end of said linked list of free memory locations, said free tail pointer assignor in communication with said memory; an initial data packet pointer assignor that assigns an initial data packet pointer to said memory location assigned to said free head pointer, said initial data packet pointer assignor in communication with said memory; and an end of data packet pointer assignor that assigns an end of data packet pointer to a last data memory location in said memory, said end of data packet pointer assignor in communication with said memory; wherein said free head pointer assignor assigns said free head pointer to a next memory location linked to said last data packet memory location assigned to said end of data packet pointer, wherein said next memory location indicates said beginning of free memory locations.
- 26. The device as recited in claim 25 wherein when a single data packet is to be saved said end of data packet pointer assignor assigns said end of data packet pointer to said memory location assigned to said initial data packet pointer.
- 27. The device as recited in claim 25 wherein the device further comprises:
a data packet assignor that assigns a sufficient number of memory locations linked to said memory location assigned to said initial data packet pointer, said data packet assignor in communication with said memory.
- 28. The device as recited in claim 25 wherein said linker links said memory location assigned to said free tail pointer to said memory location assigned to said initial data packet pointer when said data packet is to be indicated as free memory; and
said assignor assigns said free tail pointer to said last data packet memory location assigned to said end of data packet pointer.
- 29. A memory management device comprising:
a pointer assignor that assigns pointers to free memory locations of a memory, said pointer assignor in communication with said memory; a linker that links said pointers to one another thereby creating a linked list of free memory locations having a beginning and an end, said linker in communication with said memory; a free head pointer assignor that assigns a free head pointer to a memory location indicating said beginning of said linked list of free memory locations, said free head pointer assignor in communication with said memory; and a free tail pointer assignor that assigns a free tail pointer to a memory location indicating said end of said linked list of free memory locations, said free tail pointer assignor in communication with said memory; wherein said linker links said memory location assigned to said free tail pointer to said memory location assigned to an initial data pointer when memory locations occupied by data is to be indicated as free memory; and said free tail pointer assignor assigns said free tail pointer to said last data memory location assigned to said end of data pointer.
- 30. The device as recited in claim 29 further comprising:
an initial data packet pointer assignor that assigns an initial data packet pointer to said memory location assigned to said free head pointer, said initial data packet pointer assignor in communication with said memory; and an end of data packet pointer assignor that assigns an end of data packet pointer to a last data packet memory location, said end of data packet pointer assignor in communication with said memory; wherein said free head pointer assignor assigns said free head pointer to a next memory location linked to said last data packet memory location assigned to said end of data packet pointer, wherein said next memory location indicates said beginning of free memory locations.
- 31. The device as recited in claim 29 wherein when a single data packet is to be saved said end of data packet pointer assignor assigns said end of data packet pointer to said memory location assigned to said initial data packet pointer.
- 32. The device as recited in claim 29 wherein when more than one data packet is to be saved, a data packet assignor assigns a sufficient number of memory locations linked to said memory location assigned to said initial data packet pointer, said data packet assignor in communication with said memory.
REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional Patent Application Ser. No. 60/237,764 filed on Oct. 3, 2000 and U.S. Provisional Patent Application Ser. No. 60/242,701 filed on Oct. 25, 2000. The contents of both of the provisional applications identified above are hereby incorporated by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60237764 |
Oct 2000 |
US |
|
60242701 |
Oct 2000 |
US |