System for determining plurality of data transformations to be performed upon single set of data during single transfer by examining communication data structure
Abstract
A method and apparatus are disclosed for providing an inline data service within a data processing system coupled to a communications network. The data processing system includes a host memory. According to the present invention, the apparatus comprises an adapter memory for temporarily storing data communicated between the data processing system and the communications network and a memory access controller, which controls transfers of data between the adapter memory and the host memory. The apparatus further includes means for selectively performing a data transformation on data transferred between the adapter memory and the host memory, wherein the data transformation is performed during a transfer of the data such that data communication latency is reduced. In a second preferred embodiment of the present invention, a multibus data processing system has a processor and a first memory coupled to a first bus and a second memory coupled to a second bus. A bridge adapter, including means for transferring data from the first memory to the second memory and means for selectively performing a data transformation, is coupled between the first and second buses. During transfers of data from the first memory to the second memory, the bridge adapter selectively performs data transformations on the data, such that data processing latency is reduced.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. An apparatus for providing an inline data service within a data processing system coupled to a communications network, said data processing system including a host memory, said apparatus comprising: an adapter memory for temporarily storing data communicated between said data processing system and said communications network; a memory access controller that controls transfers of data between said adapter memory and said host memory, said memory access controller including: means for determining a plurality of data transformations to be performed upon a single set of data during a single transfer of said single set of data between said adapter memory and said host memory wherein said means for determining a plurality of data transformations to be performed upon said single set of data includes means for examining a communication data structure that specifies said plurality of data transformations, wherein a storage location of said communication data structure is indicated by information within said single set of data; and means for selectively performing said plurality of data transformations on said single set of data during a single transfer of said single set of data between said adapter memory and said host memory such that data communication latency is reduced.
2. The apparatus for providing an inline data service of claim 1, said single set of data including a plurality of packets, said apparatus further comprising: means for determining during said single transfer of said single set of data whether a particular packet of data transferred between said adapter memory and said host memory includes an error; and means for indicating that a communication error has occurred in response to a determination that said particular packet of data includes an error.
3. The apparatus for providing an inline data service within a data processing system of claim 2, wherein said means for determining whether a particular packet of data includes an error comprises means for calculating a sum based upon said particular packet of data to determine whether said single set of data includes an error.
4. The apparatus for providing an inline data service within a data processing system of claim 1, said plurality of data transformations comprising at least one of encryption and decryption.
5. The apparatus for providing an inline data service within a data processing system of claim 1, said plurality of data transformations comprising alteration of only particular control characters within said single set of data according to a predetermined rule.
6. The apparatus for providing an inline data service within a data processing system of claim 4, said plurality of data transformations further comprising at least one of compression and decompression.
7. A method for providing an inline data service within a data processing system coupled to a communications network, said data processing system having a host memory, a communications adapter and an adapter memory, said method comprising: determining a plurality of data transformations to be performed upon said single set of data during a single transfer of said single set of data between said adapter memory and said host memory wherein said step of determining a plurality of data transformations to be performed upon said single set of data includes the step of examining a communication data structure that specifies said plurality of data transformations, wherein a storage location of said communication data structure is indicated by information within said single set of data; performing a single transfer of said single set of data between said adapter memory and said host memory; and selectively performing said plurality of data transformations upon said single set of data during said single transfer of said single set of data between said adapter memory and said host memory, such that data communication latency is reduced.
8. The method for providing an inline data service of claim 7, said single set of data being communicated between said adapter memory and said main memory in packets of information, wherein said step of determining a plurality of data transformations to be performed upon said single set of data comprises the step of determining a data transformation to be performed upon a particular packet of information utilizing information within said particular packet of information.
9. The method for providing an inline data service of claim 8, said particular packet of information comprising a packet header and packet data, wherein said step of determining a plurality of data transformations to be performed comprises the step of examining said communication data structure within said host memory that specifies a data transformation to be performed upon said packet data, wherein said location of said communication data structure within said host memory being indicated by information within said packet header.
10. The method for providing an inline data service of claim 8, wherein packets of information are communicated between said communications network and said data processing system utilizing a communications protocol that subdivides each packet of information into a plurality of discrete cells of information, wherein said step of determining a plurality of data transformations to be performed comprises the step of examining a communications data structure within said host memory that specifies a data transformation to be performed upon said particular packet of information, a location of said communication data structure being indicated by information within one of a plurality of cells comprising said particular packet of information.
11. The method for providing an inline data service of claim 7, said method further comprising: subsequent to performance of said data transformation and during said transfer of said single set of data, determining whether said particular packet of information includes an error; in response to a determination that said particular packet of information does not include an error, indicating that said data is accessible; and in response to a determination that said particular packet of information includes an error, indicating that a communication error has occurred.
12. The method for providing an inline data service of claim 11, wherein said step of determining whether said particular packet of information includes an error comprises the step of calculating a sum based upon said packet of information.
13. The method for providing an inline data service of claim 7, wherein said step of selectively performing said plurality of data transformations comprises the step of performing at least one of encryption and decryption on said single set of data.
14. The method for providing an inline data service of claim 7, wherein said step of selectively performing said plurality of data transformations comprises the step of altering only particular control characters within said single set of data according to a predetermined rule.
15. The method for providing an inline data service of claim 13, wherein said step of selectively performing said plurality of data transformations comprises the step of performing at least one of compression and decompression on said single set of data.
16. An apparatus for providing an inline data service within a data processing system, said data processing system having a processor and a first memory coupled to a first bus and a second memory coupled to a second bus, wherein said first and said second buses are coupled by said apparatus, said apparatus comprising: means for transferring a single set of data received from said first memory to said second memory; means for determining a plurality of data transformations to be performed upon said single set of data during a single transfer, wherein said means for determining said plurality of data transformations to be performed upon said single set of data includes means for examining a communication data structure that specifies said plurality of data transformations, wherein a storage location of said communication data structure is indicated by information within said single set of data; and means for selectively performing said plurality of data transformations on said single set of data during said single transfer of said single set of data between said first and said second memories such that data processing latency is reduced.
17. The apparatus for providing an inline data service of claim 16, said apparatus further comprising means for calculating a sum based upon said single set of data to determine whether said single set of data includes an error.
18. The apparatus for providing an inline data service of claim 16, wherein said plurality of data transformations comprise at least one of encryption and decryption.
19. The apparatus for providing an inline data service of claim 16, wherein said plurality of data transformations comprise altering only particular control characters within said data according to a predetermined rule.
20. The apparatus for providing an inline data service of claim 18, wherein said plurality of data transformations comprise at least one of compression and decompression.
21. A method for providing an inline data service within a data processing system, said data processing system having a processor and a first memory coupled to a first bus and a second memory coupled to a second bus, wherein said first and said second buses are coupled by an adapter, said method comprising the steps of: determining a plurality of data transformations to be performed upon a single set of data during a single transfer, wherein said step of determining said plurality of data transformations to be performed upon said single set of data includes the step of examining a communication data structure that specifies said plurality of data transformations, wherein a storage location of said communication data structure is indicated by information within said single set of data; performing said single transfer of said single set of data from said first memory to said second memory utilizing said adapter; and during said single transfer, selectively performing said plurality of data transformations within said adapter on said single set of data transferred between said first and said second memories, such that data processing latency is reduced.
22. The method for providing an inline data service of claim 21, said method further comprising the step of calculating a sum based upon said single set of data to determine whether said single set of data includes an error.
23. The method for providing an inline data service of claim 21, wherein said step of selectively performing a plurality of data transformations comprises the step of performing at least one of encryption and decryption.
24. The method for providing an inline data service of claim 21, wherein said step of performing a plurality of data transformations comprises the step of altering only particular control characters within said single set of data according to a predetermined rule.
25. The method for providing an inline data service of claim 23, wherein said step of performing a plurality of data transformations comprises the step of performing at least one of compression and decompression.
26. The apparatus for providing an inline data service of claim 1, said single set of data being communicated between said communications network and said data processing system utilizing packets of information, wherein said means for selectively performing a plurality of data transformation performs a plurality of data transformations on a single packet of information.
27. The apparatus for providing an inline data service of claim 1, said single set of data being communicated between said communications network and said data processing system utilizing packets of information, wherein said means for determining which of said plurality of data transformations are to be performed comprises means for determining which of said plurality of data transformations are to be performed on a packet-by-packet basis.
28. The apparatus for providing an inline data service of claim 27, each packet of information including a packet header and packet data, wherein said means for determining which of said plurality of data transformations are to be performed comprises means for determining that a selected data transformation is to be performed upon packet data within a particular packet of information by examining said communications data structure located utilizing information within a packet header of said particular packet of information.
29. The apparatus for providing an inline data service of claim 27, wherein said communications network employs a communications protocol that subdivides each packet of information into a plurality of discrete cells of information, wherein said means for determining which of said plurality of data transformations are to be performed comprises means for determining a selected data transformation to be performed upon a particular packet of information by examining a communications data structure located utilizing information within one of a plurality of cells comprising said particular packet of information.
30. The method for providing an inline data service of claim 8, wherein said step of determining which of a plurality of data transformations are to be performed upon said single set of data comprises the step of determining a plurality of data transformations to be performed upon said particular packet of information.
31. The method for performing an inline data service of claim 7, wherein said step of transferring said single set of data between said adapter memory and said host memory comprises the step of transferring said single set of data from said adapter memory to said host memory.
32. The method for performing an inline data service of claim 7, wherein said step of transferring said single set of data between said adapter memory and said host memory comprises the step of transferring said single set of data to said adapter memory from said host memory.
33. The apparatus of claim 27, said single set of data including one or more packets of data including a particular packet, wherein said means for determining said plurality of data transformations performed upon said single set of data during said single transfer comprises means for determining which of said plurality of data transformations are to be performed upon said particular packet in response to information contained within said particular packet.
34. The method of claim 33, said single set of data including one or more packets of data including a particular packet, wherein said step of determining said plurality of data transformations to be performed upon said single set of data comprises the step of determining which of said plurality of data transformations are to be performed upon said particular packet in response to information contained within said particular packet.
35. The apparatus of claim 1, and further comprising at least one control block in said host memory accessible to said memory access controller and associated with said single transfer of said single set of data, said control block indicating how source and destination addresses for said single transfer are to be calculated.
36. The apparatus of claim 4, and further comprising at least one control block in said host memory accessible to said memory access controller and associated with said single transfer of said single set of data, said control block indicating at least one of an encryption key and an encryption seed.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.