System to limit memory access when calculating network data checksums
First Claim
1. A method, including steps ofdetermining a set of zones within a block of data;
- calculating a zone checksum value for each zone within said set of zones;
recording said zone checksum value for each zone in association with said block of data;
determining a block portion checksum value for a portion of said block in response to at least one of said zone checksum values for each zone; and
sending said block and a result of said steps of determining to a Network Interface Card (NIC).
2 Assignments
0 Petitions
Accused Products
Abstract
The invention provides a method and process for transmitting data without using additional CPU cycles and memory accesses to calculate checksums. The transmitting device obtains data from an internal or external data source and stores that data in memory. The data is then divided into zones and checksums are calculated for each zone. The checksums are recorded on a checksum array. A data pointer containing an address for the data stored in memory, a description of the data and an address for the checksum array is transferred through data transfer protocol to network and transmission layers. The network and transmission layers are then able to access and send the data without having to either copy the data through data transfer protocol to network and transfer layers or read all of the data to calculate the checksums. This method and process uses fewer CPU cycles and memory accesses to transmit data and is, therefore, more efficient than the prior art.
-
Citations
21 Claims
-
1. A method, including steps of
determining a set of zones within a block of data; -
calculating a zone checksum value for each zone within said set of zones;
recording said zone checksum value for each zone in association with said block of data;
determining a block portion checksum value for a portion of said block in response to at least one of said zone checksum values for each zone; and
sending said block and a result of said steps of determining to a Network Interface Card (NIC). - View Dependent Claims (2, 3, 4, 5, 6, 7)
combining said partial zone checksum value with at least one zone checksum value for said set of zones within said block of data.
-
-
3. A method as in claim 1, wherein said steps of determining a block portion checksum value include determining at least one said zone for which to compute a partial zone checksum value;
-
determining said partial zone checksum value in response to a selected portion of said zone; and
combining said partial zone checksum value with at least one zone checksum value for said set of zones within said block of data.
-
-
4. A method as in claim 1, including steps of receiving said block of data from a storage medium.
-
5. A method as in claim 1, including steps of sending said block of data and a result of said step of determining a block portion checksum value to an external device.
-
6. A method as in claim 1, including steps of sending a pointer to said block of data and said associated checksum values for each zone from a first software element to a second software element.
-
7. A method as in claim 6, wherein said first software element and said second software element are associated with differing layers in a data transfer protocol.
-
8. Apparatus including
memory including a block of data, said block of data being separable into a set of zones; -
memory including a zone checksum value for each said zone;
memory including an association of said zone checksum value with each said zone; and
memory including a block portion checksum value for a portion of said block, said checksum value for a portion of said block including a combination of at least one of said zone checksum values; and
a Network Interface Card (NIC) that receives said block of data and said combination of said zone checksum values from said memory. - View Dependent Claims (9)
memory including a partial zone checksum value for at least one said zone; - and
memory including a combination of said partial zone checksum value with said zone checksum value for at least one said zone.
-
-
10. A method, including steps of
defining a partial block of data from a block of data; -
determining a set of zones within said block of data;
calculating a zone checksum value for each zone within said set of zones;
recording each said zone checksum value for each said zone in an array;
associating said array with said block;
combining the checksums within the array; and
sending said block and a result of said steps of combining to a Network Interface Card (NIC). - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
calculating a partial zone checksum value for any partial zones contained in said partial block; - and
associating said partial zone checksum with said checksum array.
-
-
13. A method as in claim 10, including steps of receiving said partial block from an external device.
-
14. A method as in claim 13, wherein said external device is a Network Interface Card (NIC).
-
15. A method as in claim 13, wherein said external device is a storage medium.
-
16. A method as in claim 13, including steps of sending a pointer to said partial block and said checksum array from a first software element to a second software element.
-
17. A method as in claim 10, including steps of sending a pointer to said partial block and said checksum array from a first software element to a second software element.
-
18. A method as in claim 17, wherein said first software element and said second software element are associated with differing layers in a data transfer protocol.
-
19. An apparatus including
memory including a block of data, said block being separable into a set of zones; -
said memory including a zone checksum value for each said zone;
said memory including an association of said zone checksum values with each said zone;
memory including a combination of each said zone checksum values; and
a Network Interface Card (NIC) that receives said block of data and said combination of said zone checksum values from said memory. - View Dependent Claims (20, 21)
memory including a partial zone checksum value for at least one said zones; - and
memory including a combination of said partial zone checksum value with said zone checksum value for at least one said zone.
-
-
21. Apparatus as in claim 19, wherein
said memory includes at least one said partial zone for which to compute a partial zone checksum value; -
said memory includes said partial zone checksum value associated with a selected portion of said partial zone; and
said memory includes a combination of said partial zone checksum value with said zone checksum value for at least one said zone.
-
Specification