Claims
- 1. An apparatus comprising:
a semiconductor substrate; N processing units fabricated on the substrate, where n>1; first internal data memory fabricated on said substrate, said data memory for storing information accessible to said n processing units; a dispatcher operatively coupled to the n processing units for receiving and transmitting to one of the n processing units an input information unit; a classifier coupled to the dispatcher, said classifier fabricated on the substrate and including a comparison unit for determining a data format for an input information unit and for generating and storing in the internal data memory output indicators for the input information unit output indicators indicating the data format of the input information unit and a starting address for the input information unit, indicators and the starting address which are available to the one of the n processing units during its processing the input information unit and used in the processing of the input information unit; and a completion unit carried on the semiconductor substrate and operatively connected to the n processing units for receiving the information unit processed by the one of the n processing units.
- 2. An apparatus of the type described in claim 1 wherein the comparison unit includes a test for a virtual local area network field contained in the input information data and the generated output indicators include an indicator for identifying the presence of the virtual local area network field in the input information unit.
- 3. The apparatus of claim 1 wherein the classifier includes a plurality of hardware devices formed in the substrate, which plurality of hardware devices determine the data format of an input information unit.
- 4. An apparatus of the type described in claim 1 wherein the output indicators include indicators identifying the type of input information unit and its layer 2 encapsulation technique.
- 5. An apparatus of the type described in claim 1 wherein the indicators include a default code entry point.
- 6. An apparatus of the type described in claim 1 wherein the classifier includes a system for determining a code entry point based on the type of input information unit and its encapsulation technique as determined by the classifier.
- 7. An apparatus of the type described in claim 1 wherein the classifier includes a system for determining a default code entry point and a code entry point based on the type of input information unit.
- 8. An apparatus of the type described in claim 7 wherein the apparatus further includes a selector for selecting from the default code entry point and the code entry point based on the type of input information unit.
- 9. An apparatus of the type set forth in claim 8 further including a system for identifying whether virtual local area network information is included in the input information unit.
- 10. A method of processing an input information unit on a single substrate comprising the steps of:
receiving the input information unit at a dispatcher on the substrate; sending the input information unit from the dispatcher to one of a plurality of processors on the substrate for processing; reading selected bits from the input information unit while the information unit is being sent from the dispatcher to the one of the plurality of processors; testing the read bits from the input information unit against known indicators identifying predetermined types of input information units to identify on the substrate the type and protocol of the input information unit or that the input information unit does not meet any predetermined identifying type of input information unit; based on the results of the testing of bits from the input information unit, storing indicators of the type of input information unit and other information about that input information unit on the substrate; and using at the one of a plurality of processing units the stored indicators and the other stored information about the input information unit in the processing of the input information unit.
- 11. A method including the steps of claim 10 wherein the step of generating the indicators and storing the indicators occurs while the input information unit is being sent to one of the plurality of processors so that, when the one of the plurality of processors processes the input information unit, the indicators and the other information have been determined and stored and the one of the plurality of processors uses the indicators and other information about the input information unit in processing that input information unit.
- 12. A method including the steps of claim 10 and further including the step of generating a starting address for the further processing of the input information unit based on the content of the input information unit and the step of using the stored indicators at the one of the plurality of processing units includes using the starting address.
- 13. A method including the steps of claim 10 wherein the step of reading and testing is accomplished in hardware, whereby the process is accomplished in fewer processing cycles than if the reading and testing was accomplished by executing a series of stored instructions.
- 14. (canceled)
- 15. (canceled)
- 16. A method of identifying an input frame and providing indicators relating to that frame for further processing of the frame on a single substrate, the steps of the method comprising:
determining on the substrate from the input frame a type of encapsulation and a protocol type by comparing a section of the input frame with a predetermined content indicative of a type of encapsulation and a protocol type; generating and storing on the substrate with respect to each input frame indicators of the type of encapsulation and the protocol type for that input frame; determining and storing on the substrate the location of a level 3 header for the input frame; and determining and storing on the substrate a beginning point for further processing of the input frame, based on the determined type of protocol and encapsulation method, whereby said location and beginning point may be used in further processing of the input frame.
- 17. A method of determining the characteristics of an input frame including the steps of claim 16 wherein the step of determining a beginning point for further processing includes the step of determining a default code entry point from the input frame, then using the input frame protocol and encapsulation method to determine if a stored control entry point has been stored for that combination of encapsulation and protocol, using the stored control entry point for the starting point for further processing if one exists and otherwise using the default code entry point as the starting point for further processing.
- 18. A single-substrate device for receiving from a network and processing data packets of varying formats comprising:
a plurality of processors carried on the single substrate, each operating independent of the other, for processing a data packets and providing an output data packet which is based on the input data packet; a dispatch unit carried on the single substrate and connected to the processors for receiving a data packet from the network and assigning the packet to one of the plurality of independent processors; a classification device carried on the single substrate and connected to the dispatch unit for receiving the packet and determining its protocol and encapsulation technique as well as a starting address for further processing of the frame by the processing units, the classification device including:
logic to determine the encapsulation technique based on a portion of the frame logic to determine the presence of a virtual local area network information in the frame; and an output for each frame including the type of encapsulation and the starting address for further processing.
- 19. An apparatus of the type described in claim 18 wherein the classifier is embodied in hardware without a stored program.
- 20. (canceled)
- 21. An apparatus of the type described in claim 18 wherein the starting address is determined by generating a default starting address from the frame and using that default address as the starting address for processing the frame unless a different starting address is stored for the encapsulation method and protocol determine by the classification system.
- 22. A single-substrate apparatus for analyzing a frame of information having a variable protocol and encapsulation and for providing a starting location for processing that frame and a pointer to the initial instruction for processing that frame, the apparatus comprising:
a comparator on the substrate for looking at predetermined bytes of the frame and determining if those bytes indicate a length or a protocol; logic on the substrate for determining the protocol and encapsulation system for the frame; using the protocol and encapsulation system on the substrate to determine a starting location for processing the frame and a pointer to the initial instruction for processing the frame.
CROSS REFERENCE TO RELATED PATENTS
[0001] The present invention is related to the following documents, all of which are assigned to the assignee of the present invention and which are specifically incorporated herein by reference:
[0002] Patent application Ser. No. 09/384,691, filed Aug. 27, 1999 by Brian Bass et al., entitled “Network Processor Processing Complex and Methods”, sometimes referred to herein as the Network Processing Unit Patent or NPU Patent.
[0003] U.S. Pat. No. 5,724,348 entitled “Efficient Hardware/Software Interface for a Data Switch” issued Mar. 3, 1998, which patent is sometimes referred to as the Interface Patent.
[0004] Patent application Ser. No. 09/330,968 filed Jun. 11, 1999 and entitled “High Speed Parallel/Serial Link for Data Communications”, sometimes referred to as the Link Patent.
[0005] Various patents and applications assigned to IBM for its multiprotocol switching services, sometimes referred to as “MSS”, some of which include Cedric Alexander as an inventor, and are sometimes referred to as the MSS Patents.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09479027 |
Jan 2000 |
US |
Child |
10870730 |
Jun 2004 |
US |