Patent US6009542A successfully refreshed from Google Patents.
← Back to Patent Explorer
US6009542A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for preventing transfer of data to corrupt addresses

Assignee: Maxtor Corp
•
Filing: 1998-03-31
•
Granted: 1999-12-28
•
Expires: 2018-03-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method of data transfer in a data processing system having at least one source buffer and at least one destination buffer. The source buffer includes a plurality of data blocks, each data block having an address and being for storage of data including an identifier uniquely identifying that data block. The destination buffer includes a plurality of data blocks corresponding to the data blocks of the source buffer, each destination block having an address and being for storage of data. Each source block identifier is a function of a corresponding destination block address. Transferring data from the source buffer to the destination buffer includes: (a) obtaining the address of a data block in the destination buffer to transfer data into; (b) obtaining the address of a corresponding data block in the source buffer to transfer data from; and (c) checking the integrity of said addresses before data transfer, including: (i) retrieving the source block identifier in the source block via the source block address; (ii) generating an expected identifier value for the source block from the address of the destination block via said function relation between the source block identifier and the destination block address; (iii) comparing the expected identifier value with the retrieved identifier value; and (iv) if there is a mismatch, signaling an error condition representing corruption of one or more of the source block and the destination block addresses.

Inventors

  • 👤 Justin J. Koller
  • 👤 Nick Horgan
  • 👤 Bruce Buch
  • 👤 Diana Langer
  • 👤 Timothy Proch

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 18:34
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/0614; G06F3/0619; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F3/0628; G06F3/0638; G06F3/064; G06F3/0655; G06F3/0656; G06F3/0668; G06F3/0671; G06F3/0673; G06F3/0674

Claims Analysis

Total Claims: 38
Claim 1
Independent Claim 237 words
In a data processing system having at least one source buffer and at least one destination buffer, the source buffer including a plurality of data blocks, each data block having an address and being for storage of data including an identifier uniquely identifying that data block, the destination buffer including a plurality of data blocks corresponding to the data blocks of the source buffer, each destination block having an address and being for storage of data, each source block identifier being a function of a corresponding destination block address, a method of data transfer from the source buffer to the destination buffer, comprising the steps of: (a) obtaining the address of a data block in the destination buffer to transfer data into; (b) obtaining the address of a corresponding data block in the source buffer to transfer data from; and (c) checking the integrity of said addresses before data transfer, including the steps of: (i) retrieving the source block identifier in the source block via the source block address; (ii) generating an expected identifier value for the source block from the address of the destination block via said function relation between the source block identifier and the destination block address; (iii) comparing the expected identifier value with the retrieved identifier value; and (iv) if there is a mismatch, signaling an error condition representing corruption of one or more of the source block and the destination block addresses.
Claim 2
Dependent Claim 237 words
In a data processing system having at least one source buffer and at least one destination buffer, the source buffer including a plurality of data blocks, each data block having an address and being for storage of data including an identifier uniquely identifying that data block, the destination buffer including a plurality of data blocks corresponding to the data blocks of the source buffer, each destination block having an address and being for storage of data, each source block identifier being a function of a corresponding destination block address, a method of data transfer from the source buffer to the destination buffer, comprising the steps of: (a) obtaining the address of a data block in the destination buffer to transfer data into; (b) obtaining the address of a corresponding data block in the source buffer to transfer data from; and (c) checking the integrity of said addresses before data transfer, including the steps of: (i) retrieving the source block identifier in the source block via the source block address; (ii) generating an expected identifier value for the source block from the address of the destination block via said function relation between the source block identifier and the destination block address; (iii) comparing the expected identifier value with the retrieved identifier value; and (iv) if there is a mismatch, signaling an error condition representing corruption of one or more of the source block and the destination block addresses.
Claim 3
Dependent Claim 40 words
The method of claim 1, further comprising transferring data from a plurality of source blocks into a plurality of corresponding destination blocks in sequence, including repeating steps (a) through (c) for a plurality of destination blocks and corresponding source blocks.
Claim 4
Dependent Claim 44 words
The method of claim 1, further comprising the steps of maintaining a source buffer list including a plurality of entries each including an address corresponding to a source block, wherein step (b) includes accessing a buffer list entry to obtain the source block address.
Claim 5
Dependent Claim 33 words
The method of claim 3, wherein accessing the buffer list entry includes using a buffer list index into the buffer list, the index being proportional to the address of the corresponding destination block.
Claim 6
Dependent Claim 30 words
The method of claim 4, wherein the address for each destination block is a combination of a base and an offset, the offset being proportional to said buffer list index.
Claim 7
Dependent Claim 25 words
The method of claim 5, wherein the identifier in each source block is the sum of the base and offset for a corresponding destination block.
Claim 8
Dependent Claim 43 words
The method of claim 1, wherein the address for each destination block is a combination of a base and an offset, the identifier in each source block being the sum of the base and offset for the address of a corresponding destination block.
Claim 9
Dependent Claim 28 words
The method of claim 7, wherein the step of generating the expected identifier value comprises summing the base and offset for the address of the corresponding destination block.
Claim 10
Dependent Claim 39 words
The method of claim 1, further comprising the step of: if there is a match between the retrieved identifier and the expected identifier value, transferring the data including the identifier stored in the source block to the destination block.
Claim 11
Dependent Claim 47 words
The method of claim 1, wherein the data processing system comprises a computer system including at least one host connected to at least one storage device through a data buffer system, the data buffer system including the source buffer, and the storage device including the destination buffer.
Claim 12
Dependent Claim 47 words
The method of claim 1, wherein the data processing system comprises a computer system including at least one host connected to at least one storage device through a data buffer system, the data buffer system including the destination buffer, and the storage device including the source buffer.
Claim 13
Dependent Claim 271 words
In a data processing system having at least one source buffer and at least one destination buffer, the source buffer including a plurality of data blocks, each data block having an address and being for storage of data including an identifier uniquely identifying that data block, the destination buffer including a plurality of data blocks corresponding to the data blocks of the source buffer, each destination block having an address and being for storage of data, a method of data transfer from the source buffer to the destination buffer, comprising the steps of: (a) for at least one source data block in the source buffer: (i) generating an identifier uniquely identifying that source data block, the identifier being a function of the address of a destination data block corresponding to that source data block, and (ii) storing data including said identifier in the source data block; (b) obtaining the address of a destination data block to transfer data into; (c) obtaining the address of a source data block to transfer data from; and (d) checking the integrity of said addresses before data transfer, including the steps of: (i) retrieving the identifier in the source data block via the source data block address; (ii) generating an expected identifier value for the source data block from the address of the destination data block via said function relation between the identifier and the destination data block address; (iii) comparing the expected identifier value with the retrieved identifier value; and (iv) if there is a mismatch, signaling an error condition representing corruption of one or more of the source block and the destination block addresses.
Claim 14
Dependent Claim 271 words
In a data processing system having at least one source buffer and at least one destination buffer, the source buffer including a plurality of data blocks, each data block having an address and being for storage of data including an identifier uniquely identifying that data block, the destination buffer including a plurality of data blocks corresponding to the data blocks of the source buffer, each destination block having an address and being for storage of data, a method of data transfer from the source buffer to the destination buffer, comprising the steps of: (a) for at least one source data block in the source buffer: (i) generating an identifier uniquely identifying that source data block, the identifier being a function of the address of a destination data block corresponding to that source data block, and (ii) storing data including said identifier in the source data block; (b) obtaining the address of a destination data block to transfer data into; (c) obtaining the address of a source data block to transfer data from; and (d) checking the integrity of said addresses before data transfer, including the steps of: (i) retrieving the identifier in the source data block via the source data block address; (ii) generating an expected identifier value for the source data block from the address of the destination data block via said function relation between the identifier and the destination data block address; (iii) comparing the expected identifier value with the retrieved identifier value; and (iv) if there is a mismatch, signaling an error condition representing corruption of one or more of the source block and the destination block addresses.
Claim 15
Dependent Claim 42 words
The method of claim 12, further comprising transferring data from a plurality of source blocks into a plurality of corresponding destination blocks in sequence, including repeating steps (a) through (d) for a plurality of source data blocks and corresponding destination data blocks.
Claim 16
Dependent Claim 44 words
The method of claim 12, further comprising the steps of maintaining a source buffer list including a plurality of entries each including an address corresponding to a source block, wherein step (c) includes accessing a buffer list entry to obtain the source block address.
Claim 17
Dependent Claim 33 words
The method of claim 14, wherein accessing the buffer list entry includes using a buffer list index into the buffer list, the index being proportional to the address of the corresponding destination block.
Claim 18
Dependent Claim 30 words
The method of claim 15, wherein the address for each destination block is a combination of a base and an offset, the offset being proportional to said buffer list index.
Claim 19
Dependent Claim 25 words
The method of claim 16, wherein the identifier in each source block is the sum of the base and offset for a corresponding destination block.
Claim 20
Dependent Claim 43 words
The method of claim 12, wherein the address for each destination block is a combination of a base and an offset, the identifier in each source block being the sum of the base and offset for the address of a corresponding destination block.
Claim 21
Dependent Claim 28 words
The method of claim 18, wherein the step of generating the expected identifier value comprises summing the base and offset for the address of the corresponding destination block.
Claim 22
Dependent Claim 39 words
The method of claim 12, further comprising the step of: if there is a match between the retrieved identifier and the expected identifier value, transferring the data including the identifier stored in the source block to the destination block.
Claim 23
Dependent Claim 47 words
The method of claim 12, wherein the data processing system comprises a computer system including at least one host connected to at least one storage device through a data buffer system, the data buffer system including the source buffer, and the storage device including the destination buffer.
Claim 24
Dependent Claim 47 words
The method of claim 12, wherein the data processing system comprises a computer system including at least one host connected to at least one storage device through a data buffer system, the data buffer system including the destination buffer, and the storage device including the source buffer.
Claim 25
Dependent Claim 233 words
A controller for managing transfer of data from a source buffer to a destination buffer, the source buffer including a plurality of data blocks, each data block having an address and being for storage of data including an identifier uniquely identifying that data block, the destination buffer including a plurality of data blocks corresponding to the data blocks of the source buffer, each destination block having an address and being for storage of data, each source block identifier being a function of a corresponding destination block address, the controller comprising a logic circuit configured by program instructions to perform the steps of: (a) obtaining the address of a data block in the destination buffer to transfer data into; (b) obtaining the address of a corresponding data block in the source buffer to transfer data from; and (c) checking the integrity of said addresses before data transfer, including the steps of: (i) retrieving the source block identifier in the source block via the source block address; (ii) generating an expected identifier value for the source block from the address of the destination block via said function relation between the source block identifier and the destination block address; (iii) comparing the expected identifier value with the retrieved identifier value; and (iv) if there is a mismatch, signaling an error condition representing corruption of one or more of the source block and the destination block addresses.
Claim 26
Dependent Claim 233 words
A controller for managing transfer of data from a source buffer to a destination buffer, the source buffer including a plurality of data blocks, each data block having an address and being for storage of data including an identifier uniquely identifying that data block, the destination buffer including a plurality of data blocks corresponding to the data blocks of the source buffer, each destination block having an address and being for storage of data, each source block identifier being a function of a corresponding destination block address, the controller comprising a logic circuit configured by program instructions to perform the steps of: (a) obtaining the address of a data block in the destination buffer to transfer data into; (b) obtaining the address of a corresponding data block in the source buffer to transfer data from; and (c) checking the integrity of said addresses before data transfer, including the steps of: (i) retrieving the source block identifier in the source block via the source block address; (ii) generating an expected identifier value for the source block from the address of the destination block via said function relation between the source block identifier and the destination block address; (iii) comparing the expected identifier value with the retrieved identifier value; and (iv) if there is a mismatch, signaling an error condition representing corruption of one or more of the source block and the destination block addresses.
Claim 27
Dependent Claim 49 words
The controller of claim 23, wherein the logic circuit program instructions further include program instructions for transferring data from a plurality of source blocks into a plurality of corresponding destination blocks in sequence, including repeating steps (a) through (c) for a plurality of destination blocks and corresponding source blocks.
Claim 28
Dependent Claim 55 words
The controller of claim 23, wherein the controller further comprises a source buffer list including a plurality of entries each including an address corresponding to a source block, and wherein the logic circuit program instructions for performing step (b) further include program instructions for accessing a buffer list entry to obtain the source block address.
Claim 29
Dependent Claim 43 words
The controller of claim 25, wherein the logic circuit program instructions for accessing the buffer list entry further include program instructions for using a buffer list index into the buffer list, the index being proportional to the address of the corresponding destination block.
Claim 30
Dependent Claim 30 words
The controller of claim 26, wherein the address for each destination block is a combination of a base and an offset, the offset being proportional to said buffer list index.
Claim 31
Dependent Claim 25 words
The controller of claim 27, wherein the identifier in each source block is the sum of the base and offset for a corresponding destination block.
Claim 32
Dependent Claim 43 words
The controller of claim 23, wherein the address for each destination block is a combination of a base and an offset, the identifier in each source block being the sum of the base and offset for the address of a corresponding destination block.
Claim 33
Dependent Claim 33 words
The controller of claim 29, wherein the logic circuit program instructions for generating the expected identifier comprise program instructions for summing the base and offset for the address of the corresponding destination block.
Claim 34
Dependent Claim 49 words
The controller of claim 23, wherein the logic circuit program instructions further include program instructions for performing the step of: if there is a match between the retrieved identifier and the expected identifier value, transferring the data including the identifier stored in the source block to the destination block.
Claim 35
Dependent Claim 14 words
The controller of claim 23, wherein the destination buffer resides in a storage device.
Claim 36
Dependent Claim 25 words
The controller of claim 32 wherein the storage device comprises a disk drive disk, and wherein the destination buffer resides on the disk drive disk.
Claim 37
Dependent Claim 14 words
The controller of claim 23 wherein the source buffer resides in a storage device.
Claim 38
Dependent Claim 25 words
The controller of claim 34 wherein the storage device comprises a disk drive disk, and wherein the source buffer resides on the disk drive disk.

References Cited (Backward Citations)

US4903194A Cited
US5444722A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-12-27 2003-06-28 2003-12-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-12-27 2007-06-28 2007-12-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-12-27 2011-06-28 2011-12-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag