Claims
- 1. A buffer management system comprising:a buffer; and a buffer table divided into a plurality of entries, wherein each entry represents a sector of the buffer operable to store a data block and combines with one or more entries to define a segment representing a block of sectors for temporarily storing a data file in the buffer, wherein each sector is accessed based on an access sequence collectively defined by next sector instructions singularly assigned to each entry in the segment.
- 2. The system of claim 1, wherein the segment is a circularly linked list of entries such that a next sector instruction of an entry representing a last sector of the block of sectors provides instructions to access an initial sector previously accessed during the transfer of the data file.
- 3. A method comprising steps of:(a) creating a buffer table divided into a plurality of entries, wherein each entry represents a buffer sector operable to store one data block; (b) combining one or more entries into a segment representing a block of buffer sectors for storing a data file in a buffer; and (c) assigning each entry of the segment a next sector instruction, wherein the next sector instructions assigned to the entries of the segment collectively define an access sequence in which the buffer sectors of the block of buffer sectors are to be accessed for storage of data blocks to and retrieval of data blocks from the block of buffer sectors.
- 4. The method of claim 3 wherein the data file is transferred from a data storage device to the buffer, the method further comprising steps of:(e) storing the data file in the block of buffer sectors for a temporary period of time; (f) removing the data file from the buffer one data block at a time as directed by the access sequence; and (g) transferring the data file to a host computer.
- 5. The method of claim 4, wherein the creating step (a) comprises a step of:(a)(i) creating a free list of entries representing buffer sectors readily available for storage of subsequent data blocks transferred to the buffer.
- 6. The method of claim 5, wherein to removing step (f) comprises steps of:(f)(i) removing a first data block of the data file from a first buffer sector; (f)(ii) walking to a subsequent buffer sector as directed by the next sector instruction assigned to an entry representing the first buffer sector; (f)(iii) removing a subsequent data block of the data file from the subsequent buffer sector; and (f)(iv) repeating the walking (f)(ii) and the removing (f)(iii) steps until the next sector instruction assigned to an entry representing the subsequent buffer sector references the entry representing the first buffer sector.
- 7. The method of claim 6, wherein the creating step (a) further comprises a step of:(a)(ii) mending an entry representing each buffer sector from which a data block is removed into the free list of entries such that the buffer sectors from which the data blocks are removed become immediately available for storage.
- 8. The method of claim 7, wherein the storing step (e) comprises a step of:comparing each data block of the data file to be stored in the block of buffer sectors to each data block currently stored in the block of buffer sectors to determine if a redundancy exists between the data blocks to be stored in the block of the buffer sectors and the data blocks currently stored in the block of buffer sectors.
- 9. The method of claim 8, wherein the comparing step comprises a step of:mending an entry representing each buffer sector where a redundancy exists into the free list of entries such that the buffer sectors where a redundancy exists become immediately available for storage.
- 10. The method of claim 3, further comprising a step (d) of transferring the data file between the buffer and a data storage device by walking through the block of buffer sectors as directed by the access sequence, wherein the transferring step (d)arbitrarily selects a beginning buffer sector of the block of buffer sectors to which a first data block of the data file is to be transferred.
- 11. The method of claim 10, wherein the transferring step (d)moves the data file from the buffer to the data storage device.
- 12. The method of claim 10, wherein the transferring step (d) comprises a step of:walking through the block of buffer sectors with an address pointer coupled to a next pointer, wherein the next pointer communicates the next sector instructions to the address pointer such that the address pointer is walked through the block of buffer sectors as directed by the access sequence.
- 13. The method of claim 3, wherein the access sequence defines a circularly linked list of entries.
RELATED APPLICATIONS
This application is a continuation of U.S. patent application Ser. No. 09/696,861, file date Oct. 26, 2000 which issued on Dec. 11, 2001 as U.S. Pat. No. 6,330,640, which claims priority of U.S. provisional application Serial No. 60/171,779, filed Dec. 22, 1999.
US Referenced Citations (14)
Number |
Name |
Date |
Kind |
4412285 |
Neches et al. |
Oct 1983 |
A |
4428064 |
Hempy et al. |
Jan 1984 |
A |
H513 |
Dunne et al. |
Aug 1988 |
H |
4910667 |
Tanaka et al. |
Mar 1990 |
A |
5034914 |
Osterlund |
Jul 1991 |
A |
5179530 |
Genusov et al. |
Jan 1993 |
A |
5276662 |
Shaver, Jr. et al. |
Jan 1994 |
A |
5481296 |
Cragun et al. |
Jan 1996 |
A |
5594926 |
Chang et al. |
Jan 1997 |
A |
5636188 |
Funahashi |
Jun 1997 |
A |
5689653 |
Karp et al. |
Nov 1997 |
A |
5721543 |
Johnson et al. |
Feb 1998 |
A |
5765193 |
Rosich et al. |
Jun 1998 |
A |
6378051 |
Henson et al. |
Apr 2002 |
B1 |
Foreign Referenced Citations (2)
Number |
Date |
Country |
0 473 314 |
Mar 1992 |
EP |
0 528 273 |
Feb 1993 |
EP |
Provisional Applications (1)
|
Number |
Date |
Country |
|
60/171779 |
Dec 1999 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09/696861 |
Oct 2000 |
US |
Child |
10/014057 |
|
US |