WO2009141992A1 - 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器 - Google Patents

通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器 Download PDF

Info

Publication number
WO2009141992A1
WO2009141992A1 PCT/JP2009/002178 JP2009002178W WO2009141992A1 WO 2009141992 A1 WO2009141992 A1 WO 2009141992A1 JP 2009002178 W JP2009002178 W JP 2009002178W WO 2009141992 A1 WO2009141992 A1 WO 2009141992A1
Authority
WO
WIPO (PCT)
Prior art keywords
interrupt
packet
management table
data
control method
Prior art date
Application number
PCT/JP2009/002178
Other languages
English (en)
French (fr)
Inventor
辻敦宏
海老名明弘
金子洋平
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to JP2010512937A priority Critical patent/JP5205454B2/ja
Priority to US12/992,996 priority patent/US8438323B2/en
Publication of WO2009141992A1 publication Critical patent/WO2009141992A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Definitions

  • the present invention relates to a communication processing apparatus that receives and processes data such as a packet and a communication processing method thereof, and more particularly, to a communication processing apparatus that performs packet interrupt control in IP (Internet Protocol) communication and the communication processing method thereof. .
  • IP Internet Protocol
  • FIG. 17 is a block diagram showing a configuration of a general communication device that performs interrupt control.
  • the communication device 2000 includes various components such as a communication processing device 2201, a main memory 2102, and a CPU (Control Processing Unit) 2103 as shown in FIG. These components are connected via a system bus 2202, and operations of these components are controlled by software operating on the CPU 2103.
  • a communication processing device 2201 a main memory 2102
  • a CPU (Control Processing Unit) 2103 as shown in FIG.
  • These components are connected via a system bus 2202, and operations of these components are controlled by software operating on the CPU 2103.
  • the communication processing device 2201 provided in such a communication device 2000 has an interrupt function.
  • the interrupt function is realized by transmitting a signal (interrupt signal) from the communication processing device 2201 to the CPU 2103.
  • This interrupt function immediately notifies the CPU 2103 of the occurrence of various events in the communication processing device 2201 and enables the corresponding processing by software to be performed quickly.
  • the events include, for example, reception of communication data (packets), completion of packet transmission, occurrence of an abnormal state, and the like.
  • the first method is to send an interrupt signal every time a packet is received.
  • an interrupt signal is processed until a packet that is not managed by the communication processing device 2201 by being processed by software does not exist inside the communication processing device 2201.
  • an interrupt is generated for the software (the software temporarily stops the interrupt and continues the processing). .
  • a method of delaying a predetermined time from receiving a packet in the communication processing device 2201 delaying an interrupt signal (Interrupt). Delayed interrupts are useful as a method for reducing the amount of software processing associated with interrupt processing when an event that frequently receives short-length packets occurs.
  • the state of the communication processing device 2201 is periodically monitored and controlled using a timer function of an OS (Operating System) that is basic software. Therefore, it has also been proposed not to use the interrupt function for reception.
  • OS Operating System
  • the timer function by this software has poor accuracy (on the order of several tens of msec), and the timer function itself increases the amount of software processing, so it is not always preferable for a CPU for home appliances with low CPU processing capability. Absent. Since the reception of the packet is an event that occurs from the outside, in order to confirm the reception of the packet in the communication processing device 2201 by the timer function, it is necessary to always enable the timer function, and an unnecessary software processing load Increase.
  • a plurality of packets received by the communication processing device 2201 include packets belonging to various application programs (hereinafter simply referred to as applications).
  • applications packets belonging to various application programs
  • packets belonging to applications using different session protocols such as HTTP, FTP, or SMTP / POP3 (mail function) may be mixed.
  • HTTP TransmissionTransControl Protocol
  • SMTP Simple Streaming Protocol
  • POP3 mail function
  • HTTP HyperText Transfer Protocol
  • HTTP TransmissionTransControl Protocol
  • the throughput as the transfer performance is affected by the processing delay between the transfer terminals, so that the ACK reception as the reception response is processed early. Is preferred.
  • the received packet is classified and managed in the communication processing device 2201 to facilitate processing in software.
  • Communication devices have been proposed (see, for example, Patent Document 1).
  • an individual packet classification Ring is used for a transfer management identifier (Descriptor) used for managing and controlling a received packet by a transfer control unit (details of the transfer control unit will be described later). Is used.
  • the communication device disclosed in Patent Document 1 does not perform general-purpose hierarchical processing such as a TCP / IP stack on the received packet transferred to the main memory, and assumes that each application directly handles the Ring. The purpose is to reduce the number of times the packet is copied on the main memory.
  • FIG. 18 is a block diagram describing the communication device 2000 of Patent Document 1 for comparison with the present invention.
  • the communication processing device 2201 of the communication device 2000 of Patent Literature 1 includes a transfer control unit 2304, a transmission data holding unit 2105, a MAC unit 2106, a sorting unit 2107, a sorting table 2108, a received data holding unit 2109, a setting unit 2310, and an interrupt.
  • a control unit 2311 is provided.
  • the transfer control unit 2304 manages and controls the transfer of packet data to and from the main memory 2102, and transfers the data of the transmission packet to the transmission data holding unit 2105. Further, the transfer control unit 2304 transfers the received packet data from the received data holding unit 2109 to the main memory 2102 as the reception process.
  • the transmission data holding unit 2105 transfers the data of the transmission packet transferred from the transfer control unit 2304 to the MAC unit 2106.
  • the MAC unit 2106 performs transmission processing according to a predetermined MAC (Media Access Control) standard on the transmission packet data transferred from the transmission data holding unit 2105 and performs reception processing according to a predetermined MAC standard.
  • the received packet data is transferred to the distribution unit 2107.
  • the external block connected from the MAC unit 2106 is an I / F (interface) connected to the network of the communication device 2000 depending on the physical layer.
  • the sorting unit 2107 classifies the received packet data transferred from the MAC unit 2106 with reference to the sorting table 2108 and transfers the data to the received data holding unit 2109 together with the classification information.
  • the reception data holding unit 2109 holds the received packet data transferred from the distribution unit 2107 in association with the classification information.
  • the transfer control unit 2304 transfers the received packet data held in the received data holding unit 2109 to the main memory 2102 based on the associated classification information.
  • the transfer control unit 2304 notifies the interrupt control unit 2311 that the data of the received packet has been transferred to the main memory 2102, and the interrupt control unit 2311 notifies the CPU 2103 of an interrupt signal by the notification from the transfer control unit 2304.
  • the setting unit 2310 receives a setting change request for the distribution table 2108 from the CPU 2103 and changes the distribution table 2108.
  • Patent Document 2 a communication device that performs interrupt control on a received packet by a method according to the type of the received packet has been proposed (see, for example, Patent Document 2).
  • the communication device of Patent Document 2 analyzes the type of the received packet, determines whether the received packet is a real-time packet, and transfers it to the buffer. When the communication device determines that the packet is a real-time packet, it immediately sends an interrupt signal to the CPU. When it determines that the packet is not a real-time packet, the communication device waits for a certain time after receiving the received packet, or stores it in the buffer. After a certain amount of data is accumulated, an interrupt signal is sent to the CPU. That is, the communication device disclosed in Patent Document 2 switches the interrupt control method for the received packet according to the type of the received packet.
  • the conventional communication equipment has the following five situations.
  • A The communication device of Patent Document 1 cannot perform interrupt control that satisfies different requirements for each classification of received packets.
  • B Depending on the software processing method, there is a risk that delayed interrupt does not lead to a reduction in the amount of interrupt processing.
  • C When the reception process is managed only by the timer function possessed by the OS, it is necessary to operate the timer function even when no packet is received, so that the amount of unnecessary software processing is increased.
  • D When the timer function of the OS is used, its accuracy is rough (on the order of several tens of msec), and the timer function itself increases the amount of software processing.
  • the timer accuracy is required to be several hundred ⁇ sec or less in Ethernet (registered trademark) communication having a capacity of 100 Mbps, for example. Also, the reception control by the timer function delays the processing even for the communication having immediacy.
  • the interrupt control method is predetermined according to the type of the received packet.
  • the present invention has been made in view of such a problem, and includes a communication processing device capable of appropriately performing an interrupt according to application processing while suppressing a software reception processing load, and the communication processing device.
  • An object is to provide communication equipment.
  • a communication processing apparatus of the present invention is a communication processing apparatus that receives a packet, transfers data of the packet to a memory, and outputs an interrupt signal to a processing unit that processes the data.
  • a receiving unit that receives a packet, a sorting unit that classifies the packet into one of a plurality of classification types according to the type of packet received by the receiving unit, and the receiving unit A transfer control unit that transfers data of packets received and classified by the distribution unit to the memory, an interrupt management table indicating the classification type and an interrupt control method related to the timing of outputting an interrupt signal are stored. And a packet classified by the distribution unit by referring to the interrupt management table.
  • the interrupt control method associated with the type or classification type of the received packet is applied to the packet, and the interrupt signal is output to the processing unit (for example, CPU) by the interrupt control method. Is done. Therefore, if an interrupt control method appropriate for receiving and processing a packet of that classification type is registered in the interrupt management table for the classification type of the packet, it is immediately necessary for the reception processing of that packet. Thus, it is possible to prevent an interrupt signal from being output at an unnecessarily high transmission frequency for the packet while satisfying the requirements such as the characteristics. That is, it is possible to appropriately reduce the reception processing burden of software that attempts to process the packet data transferred to the memory in the processing unit.
  • the immediate interrupt method may be used as an interrupt control method for packets with high immediacy, or reception processing may be performed to some extent with low immediacy.
  • reception processing may be performed to some extent with low immediacy.
  • the application program is used for communication that the application program intends to execute.
  • a packet classification type and an interrupt control method that satisfies requirements for processing using the packet can be registered in the interrupt management table. That is, the interrupt management table is rewritable and is changed at the time of initialization or operation of the communication processing apparatus, so that flexible operation can be performed for changing the application program to be started.
  • the interrupt control method defined in the interrupt management table can be dynamically changed, it can be easily applied to communication devices in which a plurality of application programs operate or stop. As a result, it is possible to appropriately perform an interrupt according to the processing of the application program while suppressing the software reception processing load, and to appropriately perform the reception processing.
  • the setting unit responds to an instruction from the application program according to the classification type and the packet.
  • the interrupt management table may be updated by associating it with an interrupt control method and adding it to the interrupt management table.
  • the setting unit acquires communication path information for specifying a communication path established by the application program as an instruction from the application program, and sets a classification type and an interrupt control method according to the communication path information. It may be registered in the interrupt management table.
  • the setting unit registers the first classification type and the first interrupt control method in association with the interrupt management table, and registers the second classification type and the second interrupt control method in association with each other,
  • the interrupt control unit uses the first interrupt control method associated with the first classification type in the interrupt management table.
  • the interrupt management table associates the classification signal with the second classification type. An interrupt signal may be output to the processing unit by the second interrupt control method.
  • an interrupt signal can be output with an appropriate interrupt control method for each. Therefore, it is possible to appropriately suppress the transmission frequency of the interrupt signal as compared with a case where an interrupt control method that immediately outputs an interrupt signal for any type of packet is used.
  • the immediate interrupt method is used as an interrupt control method for packets with high immediacy, or reception processing is performed to some extent with low immediacy.
  • the classification identifier (Ring identifier) used when classifying the packet in the sorting unit is used as the classification type, and the descriptor used by the transfer control unit for transferring the packet data to and from the memory is classified for each classification identifier. Since the interrupt control can be performed in the same classification as that used in the transfer control, the software for controlling the communication processing device easily associates the interrupt control with the packet classification. And an increase in processing load such as determining classification again by software can be suppressed.
  • the setting unit registers only one or a plurality of combinations of a classification type and an interrupt control method associated with the classification type in the interrupt management table, and the interrupt control unit stores the combination in the interrupt management table.
  • an interrupt control method associated with a classification type of a packet classified by the distribution unit in the interrupt management table may be output by another different interrupt control method that is determined in advance.
  • the interrupt control unit has one delay control method that outputs an interrupt signal when a predetermined time elapses after packet data is transferred to the memory in the interrupt management table. If only the packet data is registered, an interrupt signal is output by an immediate interrupt method in which an interrupt signal is output immediately after the packet data is transferred to the memory.
  • an interrupt control method in which a timer interrupt method and a delayed interrupt method for outputting an interrupt signal every predetermined period are registered as an interrupt control method
  • a packet of a classification type corresponding to the delayed interrupt method It is possible to cause the software to execute the processing for the packet of the classification type corresponding to the timer interruption method in preference to the processing for the packet, and as a result, it is possible to cause the software to appropriately process the data of each packet.
  • the setting unit outputs an interrupt signal immediately after packet data is transferred to the memory, and an interrupt signal when a predetermined time elapses after the packet data is transferred to the memory.
  • Delay interrupt method for outputting the interrupt signal when a predetermined time elapses after the packet data is transferred to the memory and when the predetermined time elapses after the immediately preceding interrupt signal is output
  • One or a plurality of methods may be registered in the interrupt management table as the interrupt control method from among the delayed interrupt method with interval limitation to be performed and the timer interrupt method for outputting an interrupt signal at predetermined intervals. Good.
  • timer interrupt method has a higher timer time accuracy than the timer function controlled by the OS (several hundreds of microseconds or less), it is possible to receive HD (High Definition) image data that is transmitted in large quantities. It can be performed appropriately on a regular basis, and it is possible to improve the accuracy of measures against DoS (Denial of Service) attacks.
  • the interrupt control unit outputs an interrupt signal, it is not necessary for the OS to perform control as a timer function, so that a timer function with a small amount of software processing can be provided.
  • the interrupt frequency can be limited to a predetermined interval, and it becomes further easy to suppress the processing load by software.
  • reception amount limitation pps limitation, bps limitation
  • an interrupt signal can be output by an appropriate interrupt control method.
  • the transfer control unit further notifies the interrupt control unit of packet related information regarding the packet classified by the distribution unit, and the interrupt control unit receives the notification of the packet related information from the transfer control unit.
  • the interrupt management table an interrupt control method associated with the packet classification type and another interrupt control method according to the packet related information are specified, and the interrupt signal is transmitted by the other interrupt control method. It may be output.
  • the received data length and specific information of a specific protocol are notified to the interrupt control unit as packet related information.
  • the interrupt control method is specified according to such packet-related information, for example, it can be changed to an interrupt control method that counters a DoS attack or the like. That is, the DoS attack countermeasure can be facilitated.
  • the original application program processing without reducing the amount of software processing by switching the interrupt control method. It becomes possible.
  • the communication processing apparatus control method of the present invention is a communication method for receiving a packet, transferring data of the packet to a memory, and outputting an interrupt signal to a processing unit for processing the data.
  • a method for controlling a processing device wherein the communication processing device holds an interrupt management table, receives a packet, transfers data of the packet to a memory, and sets the type of packet received in the interrupt management table.
  • communication for establishing a communication path via the communication processing device and specifying the communication path By transmitting the route information to the communication processing device, the packet corresponding to the communication route information is sent to the communication processing device. Bets type and interrupt control method by registered in the interrupt management table, and updates the interrupt management table.
  • the packet type corresponding to the communication path established by the application program and the interrupt control method are registered in the interrupt management table, so that an interrupt signal corresponding to the processing of the application program is output to the communication control device. Can be appropriately executed.
  • the interrupt signal may be output as a reception interrupt factor due to packet data being transferred to the memory, or a timer interrupt factor due to the elapse of a predetermined period.
  • the interrupt signal is further acquired, it is determined whether the acquired interrupt signal is output by the reception interrupt factor or the timer interrupt factor, and the reception interrupt is determined.
  • the data transferred to the memory is processed by the first reception processing method.
  • the second reception processing method is different from the first reception processing method.
  • Data transferred to the memory may be processed by a reception processing method.
  • the reception processing method for the data transferred to the memory is changed to the first reception processing method and the second reception method depending on whether the cause of the output of the interrupt signal is a reception interrupt factor or a timer interrupt factor. Since switching is performed depending on the processing method, appropriate reception processing can be performed for each of these factors.
  • a timer interrupt method for outputting an interrupt signal every predetermined period is registered as the interrupt control method, and the data transferred to the memory by the second reception processing method is registered.
  • a packet for which an interrupt signal is output due to a timer interrupt factor such as a packet for a stream, such as a packet for which a wide bandwidth should be guaranteed at the time of reception, and a packet for downloading a large amount of data.
  • packets that need to be received and processed in large quantities There are packets that need to be received and processed in large quantities.
  • all the packet data transferred to the memory should be processed with a single interrupt for the stream packets, and for the mass data download packets, The amount of data that can be processed with a single interrupt should be limited so that the current packet is properly processed. Therefore, in the present invention, it is determined whether or not the processing is to be restricted.
  • the interrupt management table includes an immediate interrupt method for outputting an interrupt signal immediately after packet data is transferred to the memory, and a predetermined time after the packet data is transferred to the memory. And a delay interrupt method for outputting an interrupt signal to the memory, respectively, and when the data transferred to the memory by the first reception processing method is processed, the processing unit Based on the type of the group of packets, it is determined whether a group of packet data transferred to the group is subject to an immediate interrupt method or a delayed interrupt method. If it is determined that the data of all the packets in the group is processed, the delay interrupt method is processed. And when the determination is that, among the data of all packets in the group, may be processed by the data number following packets predetermined.
  • a packet to be processed immediately such as a packet for ACK (ACKnowledgement) processing of TCP
  • a packet at the time of reception such as a packet for web browsing
  • Some packets do not require width guarantees.
  • the packet data transferred to the memory should be all processed with one interrupt, and for the web browsing packet, the ACK processing
  • the amount of data processed with a single interrupt should be limited so that packets of processing are processed properly. Therefore, in the present invention, it is determined whether a group of packet data transferred to the memory is subject to the immediate interrupt method or the delayed interrupt method, and is determined to be subject to the immediate interrupt method.
  • a delay interrupt method for outputting an interrupt signal when a predetermined time elapses after packet data is transferred to the memory is registered as the interrupt control method.
  • the delay transferred to the memory Out of all packet data subject to the interrupt method it is determined in advance. It may process data only up to the number of packets.
  • a delayed interrupt method and another interrupt control method for example, a timer interrupt method
  • all packets targeted for the delayed interrupt method transferred to the memory are stored.
  • the packet data of a predetermined number or less is processed, so the packet data subject to the delayed interrupt method is not disturbed so as not to interfere with the processing of the packet data subject to the timer interrupt method. Can be processed.
  • the data of all packets transferred to the memory are processed. Can be improved.
  • the present invention can be realized not only as such a communication processing device and a control method for the communication processing device, but also as a communication device including the communication processing device and controlling the communication processing device by the control method, It can also be realized as a method of communication processing by the communication processing device and a program for controlling the communication processing device, and can also be realized as a storage medium for storing the program or an integrated circuit.
  • An object of the present invention is to provide a communication processing device capable of appropriately performing an interrupt according to application processing while suppressing a software reception processing load, and a communication device including the communication processing device.
  • FIG. 1 is a block diagram showing a configuration of a communication device and a communication processing apparatus according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating a format example of a received packet handled by the distribution unit according to the embodiment of the present invention.
  • FIG. 3 is a diagram showing an example of a sorting table according to the embodiment of the present invention.
  • FIG. 4 is a diagram showing an example of the interrupt management table according to the embodiment of the present invention.
  • FIG. 5 is a diagram showing another example of the interrupt management table according to the embodiment of the present invention.
  • FIG. 6A is a diagram showing an immediate interrupt timing according to the embodiment of the present invention.
  • FIG. 6B is a diagram showing the timing of the delayed interrupt according to the embodiment of the present invention.
  • FIG. 6C is a diagram showing the timing of the delay interrupt with interval restriction according to the embodiment of the present invention.
  • FIG. 7 is a flowchart showing an example of table update processing by the application and setting unit according to the embodiment of the present invention.
  • FIG. 8 is a flowchart showing interrupt control processing which is the overall operation of the interrupt control unit according to the embodiment of the present invention.
  • FIG. 9 is a flowchart showing details of the interrupt control setting performed in the interrupt control process in the interrupt control unit according to the embodiment of the present invention.
  • FIG. 10 is a flowchart showing details of the interrupt transmission control performed in the interrupt control process in the interrupt control unit according to the embodiment of the present invention.
  • FIG. 11 is a flowchart showing details of timer interrupt control performed by interrupt transmission control in the interrupt control unit according to the embodiment of the present invention.
  • FIG. 12 is a flowchart showing details of the delayed interrupt control performed in the interrupt transmission control in the interrupt control unit according to the embodiment of the present invention.
  • FIG. 13 is a flowchart showing details of the delay interrupt control with interval restriction performed in the interrupt transmission control in the interrupt control unit according to the embodiment of the present invention.
  • FIG. 14 is a flowchart showing an interrupt handler reception process in software for controlling the communication processing apparatus according to the embodiment of the present invention.
  • FIG. 15 is a flowchart showing timer interrupt processing that is performed in the reception processing of the interrupt handler in the software that controls the communication processing device according to the embodiment of the present invention.
  • FIG. 16 is a flowchart showing a reception interrupt process performed in the reception process of the interrupt handler in the software that controls the communication processing apparatus according to the embodiment of the present invention.
  • FIG. 17 is a block diagram illustrating an example of a configuration of a communication device including a communication processing device.
  • FIG. 18 is a block diagram illustrating a configuration example of a conventional communication processing apparatus.
  • FIG. 1 is a block diagram showing a configuration of a communication device and a communication processing apparatus according to an embodiment of the present invention.
  • the communication device 100 in the present embodiment includes a communication processing device 101, a main memory 102, and a CPU 103.
  • the system bus connected to each of the above components of the communication device 100 is omitted for convenience of explanation, but is not related to the essence of the present invention.
  • only one main memory 102 and one CPU 103 are shown, but there may be a plurality of physical or logical numbers, and the number thereof is irrelevant to the essence of the present invention.
  • the communication processing apparatus 101 includes a transfer control unit 104, a transmission data holding unit 105, a MAC unit 106, a distribution unit 107, a second storage unit 108m, a reception data holding unit 109, a setting unit 110, an interrupt control unit 111, and a first storage. Part 112m.
  • the transfer control unit 104 manages and controls the transfer of packet data to and from the main memory 102 and transfers the data of the transmission packet to the transmission data holding unit 105. Furthermore, the transfer control unit 104 transfers the received packet data from the received data holding unit 109 to the main memory 102 as the reception process.
  • the transmission data holding unit 105 transfers the data of the transmission packet transferred from the transfer control unit 104 to the MAC unit 106.
  • the MAC unit 106 transmits the transmission packet data transferred from the transmission data holding unit 105 by a transmission process according to a predetermined MAC standard, and receives the packet by a reception process according to a predetermined MAC standard, and distributes the packet 107 The data of the received packet is transferred to.
  • the external block connected from the MAC unit 106 is an I / F (interface) connected to the network of the communication device 100 depending on the physical layer.
  • the distribution unit 107 classifies the received packet data transferred from the MAC unit 106 with reference to the distribution table 108 stored in the second storage unit 108m, and transfers it to the received data holding unit 109 together with the classification identifier.
  • the reception data holding unit 109 holds the received packet data transferred from the distribution unit 107 in association with the classification identifier.
  • the classification identifier indicates a classification result by the sorting unit 107 and is a classification type assigned to the data according to the content of the data of the received packet.
  • the details of the distribution unit 107 and the distribution table 108 are not related to the essence of the present invention, but are useful for understanding the classification identifiers in the interrupt management table 112, so the details will be described below.
  • FIG. 2 is a diagram illustrating a format example of a received packet handled by the distribution unit 107.
  • FIG. 2 shows a format example when Ethernet (registered trademark) is used as the MAC, IP is used as the network layer, and TCP is used as the transport layer.
  • Ethernet registered trademark
  • IP IP
  • TCP transport layer
  • the MAC, network layer, transport layer, and the like are used as the format of the received packet handled by the distribution unit 107, but a format different from these may be used.
  • the data of the received packet includes a MAC header 401, an IP header 402, a TCP header 403, and payload data 404.
  • information used for classifying the received packet for example, the destination MAC address 401a or the transmission source MAC address 401b included in the MAC header 401, the IP version (Ver) 402a included in the IP header, or the transport protocol is used.
  • a number 402 (protocol) or a source port number 403a or a destination port number 403b included in the TCP header 403 may be used. Some of these may be used and others may be arbitrary, or all may be used.
  • other information included in the data of the received packet may be used for classification.
  • Protocol 402b indicates TCP (0x06) and the source port number 403a is 80
  • the received packet is a received packet from the HTTP server.
  • the application that handles the received packet can be specified by the destination port number 403b, and it can be uniquely specified in the communication device 100 that receives whether or not the received packet is used for video communication.
  • FIG. 3 is a diagram illustrating an example of the sorting table 108.
  • the distribution table 108 indicates classification parameters that are information used for classification of received packets and classification identifiers associated with the classification parameters.
  • the classification parameter includes a transport protocol (Protocol), a destination IP address, a source port number, and a destination port number.
  • the transport protocol may be the transport protocol number described above.
  • the distribution table 108 is associated with the classification parameter “Protocol: TCP, destination IP address: 192.168.3.4, transmission source port number: 80, destination port number: 10001”, and the classification identifier “1”. And a classification identifier “2” in association with the classification parameter “Protocol: TCP, destination IP address: 192.168.1.8, transmission source port number: 10001 and destination port number: 10002”.
  • the distribution table 108 indicates a classification identifier “Default” for classification parameters other than those specifically listed.
  • the distribution unit 107 searches the distribution table 108 for the classification parameter indicated in the data of the received packet, and if the classification parameter exists in the distribution table 108, the classification identifier associated with the classification parameter is set to the received packet.
  • the received data is output to the received data holding unit 109. Further, if the classification parameter is not in the distribution table 108 as a result of the search, the distribution unit 107 outputs the classification identifier “Default” together with the data of the received packet to the reception data holding unit 109.
  • a definition (classification parameter) for classifying the received packet is registered in association with the classification identifier.
  • classification identifiers may be virtually associated with each other in order to distinguish each entry of the definition.
  • the transfer control unit 104 transfers the received packet data held in the received data holding unit 109 to the main memory 102 based on the classification identifier associated with the data. At this time, the transfer control unit 104 notifies the interrupt control unit 111 that the data of the received packet has been transferred to the main memory 102 together with the classification identifier.
  • the interrupt control unit 111 searches the interrupt management table 112 stored in the first storage unit 112m for the classification identifier notified from the transfer control unit 104, and is defined in the traffic type associated with the classification identifier. An interrupt control method is specified, and interrupt control is performed by that method. As a result, the interrupt control unit 111 transmits an interrupt signal to the CPU 103 at a necessary timing.
  • FIG. 4 is a diagram illustrating an example of the interrupt management table 112.
  • the interrupt management table 112 indicates a classification identifier and a traffic type associated with the classification identifier.
  • the interrupt management table 112 is registered in association with the classification identifier and the traffic type.
  • the classification identifier in the interrupt management table 112 is common to the classification identifier in the distribution table 108.
  • the interrupt management table 112 indicates the traffic type “stream” in association with the classification identifier “1”, and indicates the traffic type “immediate” in association with the classification identifier “2”.
  • the traffic type is a reception form of the received packet, and is, for example, “non-priority”, “immediate”, “stream”, or “download”.
  • the traffic type “non-priority” is a normal reception form that does not require bandwidth guarantee, and the traffic type “immediate” requires immediate processing such as TCP-ACK processing useful for improving TCP throughput.
  • the traffic type “stream” is a reception form of video data that requires a guarantee of bandwidth
  • the traffic type “download” is a range that does not hinder communication by the traffic type “immediate” and “stream”. This is a reception mode that requires the maximum reception performance.
  • the interrupt control unit 111 searches the interrupt management table 112 for the classification identifier (for example, classification identifier “1”) notified from the transfer control unit 104, and the traffic type (for example, “ Stream "). Furthermore, the interrupt control unit 111 specifies an interrupt control method defined for the traffic type.
  • classification identifier for example, classification identifier “1”
  • traffic type for example, “ Stream "
  • the interrupt control method “delayed interrupt” or “delayed interrupt with interval restriction” is defined, and for the traffic type “immediate”, the interrupt control method “immediate interrupt” is defined.
  • the type “stream” defines an interrupt control method “timer interrupt”
  • the traffic type “download” defines an interrupt control method “timer interrupt with processing amount (bandwidth) limitation”.
  • the traffic type “non-priority” is subdivided, the interrupt control method “delayed interrupt” is defined for the traffic type “non-priority A”, and the interrupt control method “interval-limited delay interrupt” is defined for the traffic type “non-priority B”. May be defined.
  • “Immediate interrupt” is an interrupt control method in which an interrupt signal is output immediately after packet data is transferred to the main memory 102.
  • the “delayed interrupt” is an interrupt control method that outputs an interrupt signal when a predetermined time has elapsed after the packet data is transferred to the main memory 102.
  • “Delayed interrupt with limited interval” is an interrupt that occurs when a predetermined time elapses after the packet data is transferred to the main memory 102 and when the predetermined time elapses after the immediately preceding interrupt signal is output. This is an interrupt control method for outputting a signal.
  • “Timer interrupt” is an interrupt control method that outputs an interrupt signal every predetermined period.
  • “Timer interrupt with limited processing amount (bandwidth)” is the same timing as “Timer interrupt”. In this interrupt control method, an interrupt signal is output, but the amount of data processed in accordance with the interrupt signal is limited.
  • a traffic type is registered in the interrupt management table 112 in association with the classification identifier, and one traffic type is defined as one interrupt control method. Therefore, the interrupt management table 112 according to the present embodiment indirectly indicates the interrupt control method associated with the classification identifier via the traffic type. Therefore, an interrupt control method may be registered in the interrupt management table 112 in association with the classification identifier instead of the traffic type.
  • the communication processing apparatus 101 holds the interrupt management table 112 and the distribution table 108 independently. However, instead of these two tables, the communication processing apparatus 101 includes information included in these tables. One table may be held.
  • FIG. 5 is a diagram showing another example of the interrupt management table 112.
  • the interrupt management table 112 indicates a classification identifier, a classification parameter corresponding to the classification identifier, and a traffic type associated with the classification identifier and the classification parameter.
  • the communication processing apparatus 101 When the communication processing apparatus 101 holds the interrupt management table 112 shown in FIG. 5, the communication processing apparatus 101 does not include the second storage unit 108 m but includes the first storage unit 112 m that stores the interrupt management table 112. Furthermore, in this case, the distribution unit 107 classifies the received packet data by referring to the interrupt management table 112 instead of referring to the distribution table 108.
  • the communication management apparatus 101 may hold the interrupt management table 112 shown in FIG.
  • the classification identifier may be omitted from the interrupt management table 112 shown in FIG. That is, the interrupt management table 112 shows the classification parameter and the traffic type associated with the classification parameter.
  • the distribution unit 107 transfers the received packet data together with its classification parameter to the received data holding unit 109, and the transfer control unit 104
  • the interrupt control unit 111 is notified of the completion of the transfer of the received packet data to the main memory 102 together with the classification parameter. Then, the interrupt control unit 111 searches the interrupt management table 112 for the traffic type associated with the classification parameter, and specifies the interrupt control method defined for the traffic type.
  • the interrupt control method used includes at least one of the following. (1) Immediate interrupt (2) Delayed interrupt (no interval limit) (3) Delayed interrupt with interval limitation (4) Timer interrupt (with or without processing amount limitation)
  • the timer interrupt does not necessarily have to be specified in the interrupt management table 112, but may be simply specified as a definition of “no interrupt is generated in response to reception”.
  • Timer interrupt is a function implemented by the interrupt control unit 111 in the communication processing apparatus 101, and is an interrupt control method for transmitting an interrupt signal to the CPU 103 at a predetermined period (timer time). That is, when the interrupt control unit 111 has a timer function and applies “timer interrupt” as an interrupt control method, the timer time set by the CPU 103 via the setting unit 110 or a predetermined predetermined timer time is used. Based on the above, a periodic interrupt signal is transmitted.
  • the interrupt control unit 111 can accept ON / OFF of the timer interrupt via the setting unit 110 according to the designation from the CPU 103, and can activate or stop the transmission of the periodic interrupt signal.
  • This timer interrupt can be transmitted with a period of accuracy according to the operation clock of the interrupt control unit 111.
  • the period of the operation clock does not necessarily have to be the minimum unit.
  • an interrupt process implemented by a software driver for an interrupt is driven at a shift of about several tens of ⁇ sec at most.
  • Multiple timer interrupts may be implemented, but only one timer interrupt is implemented, the time unit (timer time) is reduced, and the software is controlled to have multiple timers virtually by software. Is possible.
  • FIG. 6A is a diagram showing the timing of the interrupt control method “immediate interrupt”.
  • Immediate interrupt is an interrupt control method in which the interrupt control unit 111 immediately transmits an interrupt signal after transfer is completed (reception event occurs) in the transfer control unit 104 of the communication processing apparatus 101.
  • “immediately” is described for convenience of explanation, and it is within a sufficiently permissible range that a deviation of several clocks in units of actual hardware operation clock is generated, and the deviation is limited. is not.
  • FIG. 6B is a diagram showing the timing of the interrupt control method “delayed interrupt (no interval limitation)”.
  • a delay interrupt is generated by the interrupt control unit 111 when a predetermined period (delay time t) elapses after the transfer is completed after the transfer is completed (reception event occurs) in the transfer control unit 104 of the communication processing apparatus 101.
  • This is an interrupt control method for transmitting an interrupt signal.
  • the delay time t described above may be registered in an entry defined by the corresponding classification identifier “Default” in the interrupt management table 112, or may be specified in advance by the setting unit 110 in the interrupt control unit 111. Alternatively, it may be held in advance by the interrupt control unit 111. If a new reception event occurs after the reception event occurs and before the interrupt signal corresponding to the reception event generation, the software determines that the new reception event has occurred. If it is not excluded from the control, an interrupt signal is transmitted with a delay of the delay time t from the occurrence of the new reception event.
  • the accuracy of the delay time t of the interrupt does not limit the deviation of several hardware operation clocks as described in the case of the immediate interrupt. Also, individually registering the above-described delay time t in the entry of the interrupt management table 112 is not recommended because of complicated implementation.
  • FIG. 6C is a diagram showing the timing of the interrupt control method “delayed interrupt with interval restriction”.
  • the delay interrupt with a limited interval is interrupt controlled when a predetermined period (delay time t) has elapsed from the completion of the transfer after the transfer is completed (occurrence of a reception event) in the transfer control unit 104 of the communication processing apparatus 101.
  • This is a control method in which the unit 111 transmits an interrupt signal.
  • the difference from a delay interrupt without interval restriction is that it is guaranteed that the time interval between the interrupt signal and the next interrupt signal is equal to or greater than the delay time t. That is, after a reception event occurs, a new reception event occurs before the interrupt signal corresponding to the reception event is generated, and the software detects that the new reception event has occurred and is not managed by the transfer control unit 104 of the communication processing device 101.
  • the interrupt control unit 111 transmits a new interrupt signal with a delay time t from the previous interrupt signal transmission. For example, as shown in FIG. 6C, when a new reception event b occurs after the occurrence of the reception event a and before the generation of the interrupt signal a corresponding to the occurrence of the reception event a, the interrupt control unit 111 sets the previous interrupt. A new interrupt signal b is transmitted with a delay time t from the transmission of the signal a.
  • This interrupt control method requires software implementation to limit pps (Packet Per Sec: number of packets processed per unit time) and bps (Bit Per Sec: received data amount processed per unit time). It becomes easy and it is also possible to suppress the transmission of unnecessary interrupt signals.
  • the setting unit 110 updates the interrupt management table 112 and the distribution table 108. That is, when the application is started by the CPU 103, the setting unit 110 updates the interrupt management table 112 and the distribution table 108 according to the communication path established by the application.
  • FIG. 7 is a flowchart illustrating an example of table update processing by the application and setting unit 110.
  • the application establishes a communication path (step S100). For example, the application opens a socket or performs a bind.
  • the setting unit 110 acquires communication path information from the application that has established the communication path in this way (step S102).
  • the communication path information is a classification parameter of the distribution table 108 shown in FIG. 3, and includes Protocol, destination IP address, source port number, destination port number, and the like.
  • the setting unit 110 assigns a classification identifier to the acquired communication path information, and registers the communication path information as a classification parameter in the distribution table 108 together with the classification identifier. Further, the setting unit 110 identifies a traffic type suitable for the acquired communication path information, and registers the identified traffic type in the interrupt management table 112 in association with the classification identifier assigned to the communication path information (step S104). ).
  • the application program establishes a communication path, if the classification identifier and interrupt control method corresponding to the communication path are not registered in the interrupt management table 112, the classification identifier and the communication path corresponding to the communication path are determined in step S104. An interrupt control method is added to the interrupt management table 112.
  • the application program establishes a communication path via the communication processing apparatus 101 and transmits the communication path information to the communication processing apparatus 101, so that the communication path information is transmitted to the setting unit 110 of the communication processing apparatus 101.
  • the classification identifier and the interrupt control method corresponding to are registered in the interrupt management table 112, and the interrupt management table 112 is updated.
  • the setting unit 110 may receive a timer interrupt ON / OFF request from the interrupt control unit 111 from the CPU 103, and cause the interrupt control unit 111 to execute or stop the timer interrupt in response to the request.
  • FIGS. An example of an algorithm for realizing the interrupt control method will be described with reference to FIGS.
  • FIGS. In this description, there is a portion described as sequential execution from the viewpoint of ease of explanation even in a hardware implementation where parallel processing is possible, but the parallel processing is not limited. Further, in the following description, a form in which all the above-described interrupt control methods are implemented is described, but the explanation is omitted because it can be easily analogized even when some of them are not implemented.
  • FIG. 8 is a flowchart showing an interrupt control process that is an overall operation of the interrupt control unit 111.
  • the interrupt control unit 111 executes the interrupt transmission control (step S200) and the interrupt control setting (step S202) in parallel or one of the processes, and then performs the interrupt control process. It is determined whether or not to end (step S204). If the interrupt control unit 111 determines that it should not end (No in step S204), it repeatedly executes the processes in steps S200 and S202, and determines that it should end (Yes in step S204). Ends the interrupt control process.
  • FIG. 9 is a flowchart showing details of the interrupt control setting described as step S202 in FIG.
  • the interrupt control unit 111 When performing interrupt control setting, the interrupt control unit 111 first determines whether or not there is a reception completion notification from the transfer control unit 104 (step S210). If the interrupt control unit 111 determines that there is no notification (No in step S210), the interrupt control setting ends. On the other hand, when the interrupt control unit 111 determines that there is a notification (Yes in step S210), the interrupt control unit 111 searches the interrupt management table 112 for the traffic type associated with the classification identifier obtained from the transfer control unit 104. Then, the interrupt control unit 111 finds out the corresponding traffic type, and specifies the interrupt control method defined in the traffic type (step S212).
  • the interrupt control unit 111 determines whether or not the interrupt control method specified in step S212 is an immediate interrupt (step S214). If the interrupt control unit 111 determines that the interrupt is an immediate interrupt (Yes in step S214), it sets a reception interrupt as an interrupt factor and transmits an interrupt signal (step S216), and ends the interrupt control setting. On the other hand, when the interrupt control unit 111 determines in step S214 that the interrupt control method is not an immediate interrupt (No in step S214), the interrupt control unit 111 further determines whether or not the interrupt control method is a delayed interrupt (no interval limitation). (Step S218).
  • the interrupt control unit 111 determines that it is a delayed interrupt (Yes in step S218), it sets “delayed interrupt” for the occurrence of a reception event (step S220), and ends the interrupt control setting.
  • the interrupt control unit 111 determines in step S218 that the interrupt control method is not a delay interrupt (No in step S218), the interrupt control unit 111 further determines whether or not the interrupt control method is a delay interrupt with a limited interval (step S218). S222).
  • step S222 If the interrupt control unit 111 determines that the delay interrupt has a limited interval (Yes in step S222), the interrupt control unit 111 sets “delayed interrupt with a limited interval” for the occurrence of the received event (step S224), Finish the setting. On the other hand, if the interrupt control unit 111 determines in step S222 that the interrupt control method is not a delay interrupt with a limited interval (No in step S222), the interrupt control setting ends without performing the setting in step S224. As a result, reception completion data is treated as a timer interrupt target.
  • FIG. 10 is a flowchart showing details of the interrupt transmission control described as step S200 in FIG.
  • the interrupt control unit 111 When performing interrupt transmission control, the interrupt control unit 111 first determines whether interrupt control is valid (step S240). For example, the interrupt control unit 111 determines that the interrupt control is valid if the interrupt management table 112 is stored in the first storage unit 112m. Alternatively, the interrupt control unit 111 refers to the interrupt management table 112 and determines that the interrupt control is valid if the classification identifier and the traffic type of the classification identifier are registered in the interrupt management table 112.
  • step S240 determines that the interrupt control is valid (Yes in step S240), the timer interrupt control (step S242), the delay interrupt control (step S244), and the delay interrupt control with interval restriction (step S240). One of S246) is executed, and the interrupt transmission control is terminated. If it is determined in step S240 that the interrupt control is not valid (No in step S240), the interrupt control unit 111 ends the interrupt transmission control without performing any of the processes in steps S242, S244, and S246.
  • FIG. 11 is a flowchart showing the detailed processing of the timer interrupt control described as step S242 in FIG.
  • the interrupt control unit 111 first determines whether or not the timer interrupt is ON when performing the timer interrupt control (step S260). For example, the interrupt control unit 111 refers to the interrupt management table 112 and determines whether or not the timer interrupt is ON by determining whether or not the traffic type “stream” or “download” is registered therein. To do. That is, the interrupt control unit 111 determines that the timer interrupt is ON if the traffic type “stream” or “download” is registered.
  • the interrupt control unit 111 when determining that the timer interrupt is ON (Yes in step S260), the interrupt control unit 111 further determines whether or not the timer interrupt transmission condition has expired (step S262).
  • the expiration of the timer interrupt transmission condition means that a predetermined timer time has elapsed since the previous timer interrupt transmission condition expired.
  • the interrupt control unit 111 sets a timer interrupt as an interrupt factor and transmits an interrupt signal (step S264). At this time, the interrupt control unit 111 sets the elapsed time for determining whether or not the timer interrupt transmission condition has expired to 0, or sets the time until the next timer interrupt transmission condition to the initial value. Then, the interrupt control unit 111 updates the above-described elapsed time or the above-described time until the next expiration (step S266).
  • step S260 when it is determined in step S260 that the timer interrupt is not ON (No in step S260), the interrupt control unit 111 ends the timer interrupt control. Further, when it is determined in step S262 that the timer interrupt transmission condition has not expired (No in step S262), the interrupt control unit 111 updates the above-described elapsed time and the like without transmitting an interrupt signal (step S266). ).
  • FIG. 12 is a flowchart showing details of the delayed interrupt control described as step S244 in FIG.
  • the interrupt control unit 111 first determines whether or not a delay interrupt is being performed when performing the delay interrupt control (step S280). That is, the interrupt control unit 111 determines whether or not “delayed interrupt” is set for the occurrence of the reception event by the processing of the interrupt control setting step S220 illustrated in FIG.
  • the interrupt control unit 111 determines whether a delay interrupt is being performed (Yes in step S280)
  • the interrupt control unit 111 further determines whether the delay interrupt transmission condition has expired (step S282).
  • the expiration of the delayed interrupt transmission condition means that a predetermined delay time has elapsed since the occurrence of the reception event to be interrupted.
  • the interrupt control unit 111 sets a reception interrupt as an interrupt factor and transmits an interrupt signal (step S284).
  • the interrupt control unit 111 determines whether the delayed interrupt transmission condition has expired without transmitting an interrupt signal. The elapsed time for this or the time until the next delay interrupt transmission condition expires is updated (step S286). The elapsed time and the like are updated for the occurrence of a reception event that is the target of all delayed interrupts. If the interrupt control unit 111 determines in step S280 that the delay interrupt is not being performed (No in step S280), the interrupt control unit 111 ends the delay interrupt control.
  • the interrupt control unit 111 transmits an interrupt signal in step S284.
  • the interrupt control unit 111 applies the delay interrupt transmission condition that expires next to the next reception event occurrence.
  • the interrupt control unit 111 determines in step S280 that the delay interrupt is not in progress.
  • the interrupt control unit 111 does not need to generate a delay interrupt as a result of analysis of the descriptor managed by the transfer control unit 104. Is detected, and it is determined in step S280 that the delay interruption is not in progress.
  • FIG. 13 is a flowchart showing details of the delay interrupt control with interval limitation described as step S246 in FIG.
  • the interrupt control unit 111 first determines whether or not a delay interrupt with an interval limit is in progress when performing delay interrupt control with an interval limit (step S300). In other words, the interrupt control unit 111 determines whether “delayed interrupt with interval restriction” is set for the occurrence of the reception event by the processing of the interrupt control setting step S224 shown in FIG.
  • the interrupt control unit 111 determines whether or not the interval restriction has expired (step S302).
  • the expiration of the interval restriction means that if a predetermined delay time has elapsed since the occurrence of the reception event to be interrupted and an interrupt signal has been issued by the previous interval-limited delay interrupt, Means that the above delay time has elapsed. If the interrupt control unit 111 determines that the interval limit has expired (Yes in step S302), the interrupt control unit 111 sets a reception interrupt as an interrupt factor and transmits an interrupt signal (step S304).
  • step S302 when the interrupt control unit 111 determines that the interval limit has not expired (No in step S302), the elapsed time for determining whether or not the interval limit has expired without transmitting an interrupt signal. Alternatively, the time until the next interval limit expires is updated (step S306). If the interrupt control unit 111 determines in step S300 that the delay interrupt with limited interval is not in progress (No in step S300), the interrupt control unit 111 ends the delay interrupt with limited interval.
  • the interrupt control unit 111 sets the elapsed time to 0 or the time until the next interval limit expires to an initial value.
  • the interrupt control unit 111 generates delay interrupts with interval restrictions as a result of analysis of the descriptor managed by the transfer control unit 104. It is detected that it is not necessary, and it is determined in step S300 that a delay interrupt with interval restriction is not in progress.
  • FIG. 14 is a flowchart showing interrupt handler reception processing in software executed by the CPU 103.
  • the software determines whether a timer interrupt is set as the interrupt factor of the interrupt signal (step S400). If the software determines that the timer interrupt is set (Yes in step S400), the software performs timer interrupt processing (step S402). Details of the timer interrupt processing will be described later with reference to FIG. On the other hand, when the software determines that the timer interrupt is not set (No in step S400) or when the timer interrupt process in step S402 is completed, whether or not a reception interrupt is set as an interrupt factor of the interrupt signal. Is determined (step S404).
  • step S406 when the software determines that the reception interrupt is set (Yes in step S404), the software performs a reception interrupt process (step S406). Details of the reception interrupt process will be described later with reference to FIG. On the other hand, when the software determines that the reception interrupt is not set (step S406), or when the reception interrupt processing at step S406 is completed, the software performs processing for another interrupt factor (step S408), The reception process ends.
  • FIG. 15 is a flowchart showing details of the timer interrupt process in step S402 in FIG.
  • the software first initializes the classification identifier to be processed to the top (for example, 1) (step S420). Next, the software determines whether or not the data corresponding to the processing target classification identifier (initial value is classification identifier 1) (hereinafter referred to as classification target) is a timer interrupt target (step S422).
  • classification target the data corresponding to the processing target classification identifier 1
  • the classification target can be identified by the management number, so that the determination of step S422 by software can be easily realized.
  • the software determines whether the classification target is a timer interrupt target (Yes in step S422), the software further determines whether the classification target is a bandwidth limit target (a timer interrupt target with a processing amount limit). (Step S424).
  • the software determines that the classification target is a bandwidth restriction target (Yes in step S424), the software sets a maximum of N received packets corresponding to the above-described classification target transferred from the communication processing apparatus 101 to the main memory 102. Receives received packets.
  • N is a predetermined value, and may be unique in the communication device 100 or the system including the communication device 100, or may be a value different for each classification identifier.
  • the software determines that the classification target is not the bandwidth restriction target (No in step S424), the software receives and processes all received packets corresponding to the above-described classification target transferred from the communication processing apparatus 101 to the main memory 102. (Step S428).
  • the software performs the above-described processing on all classification identifiers. It is determined whether or not (step S430). If the software determines that the process has been performed (Yes in step S430), the timer interrupt process is terminated. On the other hand, if the software determines that no processing is performed (No in step S430), the software increments the classification identifier (for example, advances 1) (step S432), and repeatedly executes the processing from step S422.
  • FIG. 16 is a flowchart showing details of the reception interrupt process in step S406 in FIG.
  • the software first determines whether or not the reception mode includes only non-priority packets (step S440).
  • the reception mode of only non-priority packets is a mode in which any one of the following conditions is satisfied.
  • the traffic type “stream” is registered in the interrupt management table 112. In other words, the classification identifier of the data processed by the timer interrupt is registered in the interrupt management table 112. During the period, the transfer control unit 104 did not receive the data.
  • step S440 determines in step S440 that the reception mode is only for non-priority packets (Yes in step S440), the software processes all received packets transferred from the communication processing apparatus 101 to the main memory 102 (step S442). The reception interrupt process is terminated.
  • the software determines in step S440 that it is not a reception mode for only non-priority packets (No in step S440)
  • the software initializes the classification identifier to be processed to the top (for example, 1) (step S444).
  • the software determines whether the classification target (data corresponding to the classification identifier 1 at the time of initialization) is an immediate interruption target (step S446).
  • the classification identifier can be identified by the management number, so that the determination of step S446 by software can be easily realized.
  • step S446 If the software determines that the classification target is an immediate interrupt target (Yes in step S446), the software corresponds to the above-described classification target transferred from the communication processing device 101 to the main memory 102, that is, corresponds to an immediate interrupt target. All received packets to be received are processed (step S448). On the other hand, when the software determines that the classification target is not an immediate interrupt target (No in step S446), the maximum M of all received packets processed by the delay interrupt or the delay interrupt with interval restriction, that is, the maximum M Received packets are received (step S450).
  • M is a predetermined value, and may be unique in the communication device 100 or the system including the communication device 100, or may be a value different for each classification identifier. The value may be the same or different.
  • step S452 the software determines whether or not the above-described process has been performed on all classification identifiers. If the software determines that the process has been performed (Yes in step S452), the reception interrupt process is terminated. On the other hand, if the software determines that the process is not being performed (No in step S452), the classification identifier is incremented (for example, advanced by 1) (step S454), and the process from step S446 is repeatedly executed.
  • the communication processing apparatus 101 depending on the classification parameter of the received packet, (1) Immediate interrupt (2) Delayed interrupt (3) Delayed interrupt with limited interval (4) Realizing timer interrupt Furthermore, the communication processing device 101 classifies the received packet processed by the timer interrupt by classifying it into a bandwidth restriction target and other than that, (1) Immediate communication (2) Non-priority processed communication (3) Non-prioritized communication pps restriction (4) Bandwidth restriction target communication (5) Video reception In addition, since the reception rate is automatically controlled by the limitation of the reception rate in the decoder, the communication for processing the reception packet without limitation is realized.
  • the transfer control unit 104 notifies the interrupt control unit 111 of the occurrence of the received event and the classification identifier corresponding to the occurrence of the received event. Information that is not defined may also be notified. This information is packet related information regarding the received packet classified by the distribution unit 107.
  • the interrupt control unit 111 specifies another interrupt control method according to the interrupt control method associated with the classification identifier of the received packet in the interrupt management table 112 and the above-described packet related information, An interrupt signal can be transmitted by the interrupt control method. As a result, an interrupt signal can be transmitted by a more appropriate interrupt control method for the occurrence of a reception event.
  • countermeasures against a DoS (Denial of Service) attack can be made by forcibly applying a delay interrupt with a limited interval to a received packet whose packet length is shorter than a predetermined length or a TCP SYN packet.
  • the transfer control unit 104 detects that all descriptors managed for each classification identifier have been processed by software, the transfer control unit 104 notifies the interrupt control unit 111. As a result, unnecessary interrupts can be suppressed. Note that the interrupt control unit 111 may search for the Descriptor and perform the same processing.
  • the setting unit 110 registers only one or a plurality of combinations of the classification identifier and the traffic type (interrupt control method) associated with the classification identifier in the interrupt management table 112.
  • the interrupt control unit 111 When one or more combinations registered in the management table 112 are predetermined combinations, the interrupt management table 112 differs from the interrupt control method associated with the classification identifier of the received packet.
  • An interrupt signal may be output by another predetermined interrupt control method. For example, when only one delayed interrupt is registered as an interrupt control method in the interrupt management table 112, the interrupt control unit 111 may output an interrupt signal by an immediate interrupt method. Thereby, it is possible to improve the throughput of the reception processing of the packet subject to the delay interrupt.
  • the transfer control unit 104 may specify an interrupt control method with a descriptor used by the transfer control unit 104 in order to transfer packet data to and from the main memory 102. In this case, it is possible to change the interrupt control for each packet.
  • the communication processing apparatus 101 in the above embodiment may be mounted as a single LSI, or may be mounted as a semiconductor IP core and may be mounted in a SoC (System On Chip) or the like. That is, each functional block in the block diagram (such as FIG. 1) is typically realized as an LSI which is an integrated circuit. These may be individually made into one chip, or may be made into one chip so as to include a part or all of them. (For example, the functional blocks other than the memory may be integrated into one chip.) Although the LSI is used here, it may be referred to as an IC, a system LSI, a super LSI, or an ultra LSI depending on the degree of integration.
  • SoC System On Chip
  • the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • integrated circuit technology comes out to replace LSI's as a result of the advancement of semiconductor technology or a derivative other technology, it is naturally also possible to carry out function block integration using this technology. Biotechnology can be applied.
  • the means for storing the data to be encoded or decoded may be configured separately without being integrated into one chip.
  • the communication processing apparatus 101 in the above embodiment includes the transfer control unit 104 that uses DMA (Direct Memory Access) using Descriptor that enables higher transfer efficiency.
  • DMA Direct Memory Access
  • the present invention can be realized not only when DMA using Descriptor is used, but also when transferring by program I / O each time a packet is received without using DMA. If you are an expert in your industry, you can easily guess.
  • a communication processing device, a communication processing method, and a communication device equipped with the communication processing device according to the present invention can realize an appropriate communication function in a device having a relatively low processing resource such as a home appliance. This is useful when a communication whose bandwidth significantly affects the quality of an application is performed in combination with other communications.
  • a television receiver, a recorder, a recording / playback device, a set top box, or an IP (Internet) Protocol can be applied to communication devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

 通信処理装置(101)は、パケットを受信するMAC部(106)と、受信されるパケットを分類する振り分け部(107)と、分類されたパケットのデータをメインメモリ(102)に転送する転送制御部(104)と、割り込み管理テーブル(112)を記憶している第1記憶部(112m)と、割り込み管理テーブル(112)を参照することにより、振り分け部(107)で分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で割り込み信号をCPU(103)に出力する割り込み制御部(111)と、CPU(103)で起動するアプリケーションプログラムからの指示に応じて、割り込み管理テーブル(112)に分類種別および割り込み制御方法を登録することにより、その割り込み管理テーブル(112)を更新する設定部(110)とを備える。

Description

通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器
 本発明は、例えばパケットなどのデータを受信して処理する通信処理装置およびその通信処理方法に関し、特に、IP(Internet Protocol)通信などにおけるパケットの割り込み制御を行なう通信処理装置およびその通信処理方法に関する。
 従来、IP通信などにおいて割り込み制御を行なう通信機器が提供されている。
 図17は、割り込み制御を行なう一般的な通信機器の構成を示すブロック図である。
 一般的に、通信機器2000は、図17に示すように、通信処理装置2201、メインメモリ2102、およびCPU(Control Processing Unit)2103などの各構成要素を具備している。これらの構成要素は、システムバス2202を介して接続され、これらの構成要素の動作は、CPU2103上で動作するソフトウェアによって制御される。
 このような通信機器2000に具備される通信処理装置2201が割り込み機能を持つことは一般的である。割り込み機能は、通信処理装置2201からCPU2103に対する信号(割り込み信号)の発信によって実現される。この割り込み機能は、通信処理装置2201における様々な事象の発生を、即時にCPU2103に通知し、ソフトウェアによる対応する処理を迅速に行なうことを可能とする。その事象としては、例えば、通信データ(パケット)の受信や、パケットの送信完了、異常状態の発生などが含まれる。
 従来、パケットの受信に対する割り込み信号の発信方法には幾つかの方法がある。一つ目の方法は、一回のパケット受信毎に割り込み信号を発信する方法である。二つ目の方法は、通信処理装置2201でパケットを受信した後、ソフトウェアにより処理されることで通信処理装置2201の管理外となるパケットが、通信処理装置2201の内部に存在しなくなるまで割り込み信号を発信する方法などがある。二つ目の方法では、通信処理装置2201の管理下となる受信パケットが存在する限り、ソフトウェアに対して割り込みが発生することとなる(ソフトウェアは一時的に割り込みを停止して処理を継続する)。さらには、三つ目の方法として、National Semiconductor(登録商標)社のDP83816に見られるように、通信処理装置2201におけるパケットの受信から、所定の時間だけ遅延させて割り込み信号を発信する方法(遅延割り込み)もある。遅延割り込みは、長さの短いパケットを頻繁に受信するような事象が発生した場合において、割り込み処理に伴うソフトウェア処理量を軽減する方法として有用である。一方、このような割り込み処理に伴うソフトウェア処理量を軽減するために、基本ソフトウェアであるOS(Operating System)が持つタイマ機能を用いて、定期的に通信処理装置2201の状態を監視して制御することで、割り込み機能を受信用に用いないことも提案されている。しかしながら、このソフトウェアによるタイマ機能は、その精度が荒く(数十msecオーダ)、また、そのタイマ機能自体がソフトウェア処理量を増大させるため、CPUの処理能力が低い家電向けのCPUなどでは、必ずしも好ましくない。また、パケットの受信は、外部から発生する事象のため、タイマ機能により通信処理装置2201におけるパケットの受信を確認するためには、常にタイマ機能を有効にしておく必要があり、不要なソフトウェア処理負荷の増大を招く。
 また、通信処理装置2201で受信される複数のパケットには、様々なアプリケーションプログラム(以下、単にアプリケーションという)に属するパケットが混在することが一般的である。特に、汎用的なIP通信を用いる場合、HTTP、FTP、またはSMTP/POP3(メール機能)などの異なるセションプロトコルを用いるアプリケーションに属するパケットが混在することがある。また、同じHTTPを用いるアプリケーションの中でも、Webブラウジングから映像のストリーミングまで様々な処理を行なうアプリケーションがあるため、その受信パケットの量や即時性において、様々な要件が混在することがある。また、トランスポート層としてTCP(Transmission Control Protocol)を用いる場合、その転送性能となるスループットは、転送端末間における処理遅延に影響されるため、受信応答となるACK受信は、早期に処理されることが好ましい。
 このように、一つの通信処理装置2201で扱う受信パケットに対して、様々な要件が混在することから、通信処理装置2201の中で受信パケットを分類して管理し、ソフトウェアにおける処理を容易とする通信機器が提案されている(例えば、特許文献1参照)。
 上記特許文献1の通信機器においては、受信パケットを転送制御部(転送制御部の詳細については後述する)が管理および制御するために用いる転送管理識別子(Descriptor)に対して、パケット分類個別のRingを用いる。この特許文献1の通信機器は、メインメモリに転送された受信パケットに対して、TCP/IPスタックなどの汎用的な階層処理を行なわず、直接各アプリケーションが上記Ringを扱うことを前提に、受信したパケットのメインメモリ上でのコピー回数を軽減することを目的としている。
 図18は、上記特許文献1の通信機器2000を本発明と比較するために記述したブロック図である。上記特許文献1の通信機器2000の通信処理装置2201は、転送制御部2304、送信データ保持部2105、MAC部2106、振り分け部2107、振り分けテーブル2108、受信データ保持部2109、設定部2310、および割り込み制御部2311を具備する。
 転送制御部2304は、その送信処理として、メインメモリ2102との間のパケットのデータの転送を管理および制御して送信パケットのデータを送信データ保持部2105に転送する。さらに、転送制御部2304は、その受信処理として、受信パケットのデータを受信データ保持部2109からメインメモリ2102に転送する。送信データ保持部2105は、転送制御部2304から転送された送信パケットのデータをMAC部2106に転送する。MAC部2106は、送信データ保持部2105から転送された送信パケットのデータに対して、所定のMAC(Media Access Control)規格に準ずる送信処理を行なうとともに、所定のMAC規格に準ずる受信処理を行なって振り分け部2107に受信パケットのデータを転送する。なお、MAC部2106から接続される外部ブロックは、物理層に依存し、通信機器2000のネットワークと接続されるI/F(インターフェース)である。
 振り分け部2107は、MAC部2106から転送された受信パケットのデータを、振り分けテーブル2108を参照して分類し、受信データ保持部2109に分類情報とともに転送する。受信データ保持部2109は、振り分け部2107から転送された受信パケットのデータと分類情報を関連付けて保持する。転送制御部2304は、その受信処理として、受信データ保持部2109に保持された受信パケットのデータを、関連付けられた分類情報に基づいてメインメモリ2102に転送する。この時、転送制御部2304は、受信パケットのデータをメインメモリ2102へ転送完了したことを割り込み制御部2311に通知し、割り込み制御部2311は、転送制御部2304からの通知により、CPU2103に割り込み信号を発信する。また、設定部2310は、CPU2103からの振り分けテーブル2108に対する設定変更要求を受け付け、振り分けテーブル2108の変更を行なう。
 また、受信パケットの種別に応じた方法でその受信パケットに対する割り込み制御を行なう通信機器も提案されている(例えば、特許文献2参照)。特許文献2の通信機器は、受信パケットの種別を解析し、その受信パケットがリアルタイムパケットか否かを判別してバッファに転送する。そして、通信機器は、リアルタイムパケットであると判別したときには、割り込み信号を即時にCPUに発信し、リアルタイムパケットでないと判別したときには、受信パケットを受信してから一定時間経過した後、または、バッファに一定量のデータが蓄積された後に、割り込み信号をCPUに発信する。つまり、上記特許文献2の通信機器は、受信パケットの種別に応じて、その受信パケットに対する割り込み制御方法を切り替えている。
特許第2723970号公報 特開2008-59577号公報
 しかしながら、上記特許文献1および特許文献2の通信機器を含む従来の通信機器では、ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができないという問題がある。
 つまり、従来の通信機器では、以下5点の状況がある。
(a)特許文献1の通信機器では、受信パケットの分類それぞれに対して、異なる要件を満たす割り込み制御を行なうことができない。
(b)遅延割り込みはソフトウェアの処理方法によっては割り込み処理量の低減に繋がらないリスクが存在する。
(c)OSが持つタイマ機能のみにより受信処理を管理する場合、まったくパケットの受信が発生しなくてもタイマ機能を動作させる必要があるため、不要なソフトウェア処理量を増大させる。
(d)OSが持つタイマ機能を用いる場合、その精度が荒く(数十msecオーダ)、また、そのタイマ機能自体がソフトウェア処理量を増大させる。タイマ精度としては、例えば100Mbpsの能力を持つEthernet(登録商標)の通信においては、数百μsec以下であることが求められる。また、タイマ機能による受信制御は、即時性を有する通信に対しても、その処理を遅延させることとなる。
(e)特許文献2の通信機器では、割り込み制御方法が受信パケットの種別に応じて予め定められている。
 その結果、家電にネット機能を搭載する場合などに用いられる家電向けのCPUなど、比較的処理能力の低いCPUを用いる場合において、以下の4点の課題がある。
(1)パケットの受信ごとに即時に割り込み信号を発信する割り込み制御方法では、単位時間あたりの大量のパケットの受信による割り込み処理のためにソフトウェア処理量が増大し、その結果、CPU負荷の増大により、通信機器本来のアプリケーションの実行に支障を招くリスクが増大する。
(2)OSが持つタイマ機能を用いる受信制御方法では、精度の高い(数百μsec以下)タイマを実現することは困難である。
(3)タイマ機能による受信制御方法では、即時性を有する通信に対して、処理が遅延され、その結果、スループットの低下を招くリスクが増大する。
(4)受信パケットの種別に応じて割り込み制御方法を切り替えても、受信パケットの種別のそれぞれに対して割り込み制御方法が固定されているため、アプリケーションの処理(映像データの受信再生など)に求められる要件に応じた割り込みを適宜行なうことができない。
 そこで、本発明は、かかる問題に鑑みてなされたものであって、ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができる通信処理装置およびその通信処理装置を備えた通信機器を提供することを目的とする。
 上記目的を達成するために、本発明の通信処理装置は、パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置であって、パケットを受信する受信部と、前記受信部で受信されるパケットの種類に応じて、複数の分類種別のうちの何れか1つの分類種別に前記パケットを分類する振り分け部と、前記受信部によって受信されて前記振り分け部によって分類されたパケットのデータを前記メモリに転送する転送制御部と、分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを記憶している記憶部と、前記割り込み管理テーブルを参照することにより、前記振り分け部によって分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力する割り込み制御部と、前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する設定部とを備える。
 これにより、割り込み管理テーブルにおいて、受信されるパケットの種類または分類種別に関連付けられた割り込み制御方法が、そのパケットに対して適用され、その割り込み制御方法で割り込み信号が処理ユニット(例えばCPU)に出力される。したがって、パケットの分類種別に対して、その分類種別のパケットを受信処理するために適切とされる割り込み制御方法を割り込み管理テーブルに登録しておけば、そのパケットの受信処理に必要とされる即時性などの要件を満たしつつ、そのパケットに対して必要以上の発信頻度で割り込み信号を出力することを防ぐことができる。つまり、処理ユニットにおいてメモリに転送されたパケットのデータを処理しようとするソフトウェアの受信処理負担を適切に抑えることができる。例えば、パケットの分類種別ごとに異なる割り込み制御方法を用いることができるため、即時性の高いパケットに対する割り込み制御方法として即時割り込み方法を用いたり、即時性が低く、ある程度まとめて受信処理をすればよいパケットに対する割り込み制御方法としてタイマ割り込み方法を用いたりすることにより、パケットの分類種別ごとに最適な受信制御が実現される。
 さらに、処理ユニットで起動するアプリケーションプログラムからの指示に応じて、分類種別と割り込み制御方法とが関連付けられて割り込み管理テーブルに登録されるため、アプリケーションプログラムは、自らが実行しようとする通信に用いられるパケットの分類種別と、そのパケットを用いた処理に求められる要件を満たすような割り込み制御方法とを割り込み管理テーブルに登録することができる。つまり、割り込み管理テーブルは書き換え可能であり、通信処理装置の初期化時あるいは動作中に変更されるため、起動するアプリケーションプログラムの変更などに柔軟な運用が可能となる。言い換えれば、割り込み管理テーブルに定義される割り込み制御方法を動的に変更できるため、複数のアプリケーションプログラムが動作または停止するような通信機器に対して容易に適用可能となる。その結果、ソフトウェアの受信処理負荷を抑えつつアプリケーションプログラムの処理に応じた割り込みを適宜行なうことができ、適切に受信処理を行なうことができる。
 また、前記設定部は、前記割り込み管理テーブルに示されていない分類種別のパケットが前記受信部によって受信される場合、前記アプリケーションプログラムからの指示に応じて、前記分類種別と、前記パケットに応じた割り込み制御方法とを関連付けて前記割り込み管理テーブルに追加することにより、当該割り込み管理テーブルを更新してもよい。
 これにより、新たな通信路が確立されるときに、その通信路に応じたパケットの分類種別と割り込み制御方法とが割り込み管理テーブルに登録されていなくても、そのアプリケーションプログラムの指示に応じてそれらが登録されるため、新たな通信路を含む複数の通信路のそれぞれに対して適切な割り込み制御を行なうことができる。
 また、前記設定部は、前記アプリケーションプログラムからの指示として、当該アプリケーションプログラムによって確立された通信路を特定するための通信路情報を取得し、前記通信路情報に応じた分類種別および割り込み制御方法を前記割り込み管理テーブルに登録してもよい。
 これにより、通信路情報に応じた割り込み制御方法が割り込み管理テーブルに登録されるため、その通信路に応じたより適切な割り込み制御方法を登録することができる。
 また、前記設定部は、前記割り込み管理テーブルに、第1の分類種別および第1の割り込み制御方法を関連付けて登録するとともに、第2の分類種別および第2の割り込み制御方法を関連付けて登録し、前記割り込み制御部は、前記振り分け部によって分類されるパケットの分類種別が第1の分類種別である場合には、前記割り込み管理テーブルにおいて当該第1の分類種別に関連付けられた第1の割り込み制御方法で、割り込み信号を前記処理ユニットに出力し、前記振り分け部によって分類されるパケットの分類種別が第2の分類種別である場合には、前記割り込み管理テーブルにおいて当該第2の分類種別に関連付けられた第2の割り込み制御方法で、割り込み信号を前記処理ユニットに出力してもよい。
 これにより、即時性に対して互いに異なる要件を有する第1の分類種別のパケットと第2の分類種別のパケットとが混在する環境でも、それぞれに適切な割り込み制御方法で割り込み信号を出力することができるため、何れの分類種別のパケットに対しても即時に割り込み信号を出力する割り込み制御方法が用いられる場合と比べて、割り込み信号の発信頻度を適切に抑制することができる。また、パケットの分類種別ごとに異なる割り込み制御方法を用いることができるため、即時性の高いパケットに対する割り込み制御方法として即時割り込み方法を用いたり、即時性が低く、ある程度まとめて受信処理をすればよいパケットに対する割り込み制御方法としてタイマ割り込み方法を用いたりすることにより、パケットの分類種別ごとに最適な受信制御が実現される。
 ここで例えば、振り分け部においてパケットを分類する際に用いられる分類識別子(Ring識別子)を分類種別に用い、メモリとの間でパケットのデータを転送するために転送制御部が用いるDescriptorが分類識別子ごとに独立して管理されている場合には、転送制御において用いられる分類と同じ分類で割り込み制御を行なうことができるため、通信処理装置を制御するソフトウェアは容易に割り込み制御とパケットの分類とを関連付けて制御することができ、ソフトウェアにより再度分類を判定するなどの処理負荷の増大を抑制することができる。
 また、前記設定部は、分類種別と当該分類種別に関連付けられた割り込み制御方法との組み合わせを1つまたは複数個だけ、前記割り込み管理テーブルに登録し、前記割り込み制御部は、前記割り込み管理テーブルに登録されている1つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、前記割り込み管理テーブルにおいて、前記振り分け部によって分類されるパケットの分類種別に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力してもよい。例えば、前記割り込み制御部は、前記割り込み管理テーブルに、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として1つだけ登録されている場合には、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法で割り込み信号を出力する。
 例えば、割り込み管理テーブルに割り込み制御方法として、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法と遅延割り込み方法とが登録されている場合には、遅延割り込み方法に対応する分類種別のパケットに対する処理よりも、タイマ割り込み方法に対応する分類種別のパケットに対する処理を優先させてソフトウェアに実行させることができ、その結果、それぞれのパケットのデータの処理をソフトウェアに適切に実行させることができる。しかし、割り込み管理テーブルに割り込み制御方法として遅延割り込み方法だけが登録されている場合にまで、割り込み信号の出力を遅延させる必要はない。そこで、本発明では、割り込み管理テーブルに割り込み制御方法として遅延割り込み方法だけが登録されている場合には、遅延割り込み方法ではなく即時割り込み方法で割り込み信号が出力されるため、通信状況に応じて、遅延割り込み方法でも受信処理可能な分類種別のパケットに対するスループットを向上することができる。
 また、前記設定部は、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから前記予め定められた時間経過したときに割り込み信号を出力する間隔制限付き遅延割り込み方法、および、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法の中から、1つまたは複数の方法を前記割り込み制御方法として前記割り込み管理テーブルに登録してもよい。
 これにより、割り込み信号の発信頻度を抑制しつつ、即時性を有する通信に対するパケットの処理を遅延することなく処理することが可能となる。また、タイマ割り込み方法では、OSにより制御されるタイマ機能と比較してタイマ時間の精度が高いため(数百μsec以下)、大量に送信されるHD(High Definition)画質の映像データの受信処理でも定期的に適切に行なうことができ、DoS(Denial of Service)攻撃対策の精度を高めることが可能となる。さらに、割り込み制御部が割り込み信号を出力することで、OSがタイマ機能として制御を行なう必要がないため、ソフトウェア処理量の少ないタイマ機能を提供することができる。また、即時性が必要とされず、ある程度まとめて受信処理をすればよいパケットに対しては、割り込み信号の発信頻度を抑えて、ソフトウェアの受信処理負担を軽減することができる。また、間隔制限付き遅延割り込み方法では、割り込み頻度を所定の間隔に制限することが可能となり、ソフトウェアによる処理負荷を抑制することがさらに容易になる。なお、間隔制限付き遅延割り込み方法による1回の割り込みに対する受信処理量を制限してもよく、この場合には、受信量制限(pps制限、bps制限)を容易に行なうことができる。また、即時割り込み方法では、間隔制限付き遅延割り込み方法のように即時性を犠牲にすることなく、即時性の高い処理が要求されるパケットに対して適切に受信処理を行なうことができる。また、即時割り込み方法、遅延割り込み方法、間隔制限付き遅延割り込み方法、およびタイマ割り込み方法が割り込み管理テーブルに登録されれば、多種多様な分類種別のパケットが同時期に受信されても、それらのパケットに適切な割り込み制御方法で割り込み信号を出力することができる。
 また、前記転送制御部は、さらに、前記振り分け部によって分類されたパケットに関するパケット関連情報を前記割り込み制御部に通知し、前記割り込み制御部は、前記転送制御部から前記パケット関連情報の通知を受けたときには、前記割り込み管理テーブルにおいて前記パケットの分類種別に関連付けられている割り込み制御方法と前記パケット関連情報とに応じた他の割り込み制御方法を特定し、前記他の割り込み制御方法で前記割り込み信号を出力してもよい。
 例えば、受信データ長や、特定のプロトコルの特定の情報などがパケット関連情報として割り込み制御部に通知される。これにより、そのようなパケット関連情報に応じて割り込み制御方法が特定されるため、例えば、DoS攻撃などに対抗する割り込み制御方法に変更することができる。つまり、DoS攻撃対策を容易とすることができる。例えば、DoS攻撃に対して、受信したパケットを一律に廃棄するのではなく、割り込み制御方法を切り替えることでソフトウェア処理量を低減しながら、本来のアプリケーションプログラムの処理に支障が出ないように制御することが可能となる。
 また、上記目的を達成するために、本発明の通信処理装置の制御方法は、パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置を制御する方法であって、前記通信処理装置は、割り込み管理テーブルを保持し、パケットを受信して当該パケットのデータをメモリに転送し、前記割り込み管理テーブルにおいて受信されるパケットの種別に関連付けられている割り込み制御方法で、前記パケットに対する割り込み信号を出力し、前記通信処理装置を制御する方法では、前記通信処理装置を介した通信路を確立し、前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に対応するパケットの種別および割り込み制御方法を前記割り込み管理テーブルに登録させて、当該割り込み管理テーブルを更新させる。
 これにより、例えばアプリケーションプログラムによって確立される通信路に対応するパケットの種別および割り込み制御方法が割り込み管理テーブルに登録されるため、通信制御装置に対して、アプリケーションプログラムの処理に応じた割り込み信号の出力を適宜実行させることができる。
 また、前記割り込み信号が出力される要因には、パケットのデータが前記メモリに転送されたことを要因とする受信割り込み要因、または、予め定められた期間が経過したことを要因とするタイマ割り込み要因があり、前記通信処理装置の制御方法では、さらに、前記割り込み信号を取得し、取得した割り込み信号が前記受信割り込み要因によって出力されたか、前記タイマ割り込み要因によって出力されたかを判定し、前記受信割り込み要因によって出力されたと判定したときには、第1の受信処理方法により前記メモリに転送されたデータを処理し、前記タイマ割り込み要因によって出力されたと判定したときには、第1の受信処理方法と異なる第2の受信処理方法により前記メモリに転送されたデータを処理してもよい。
 これにより、割り込み信号が出力される要因が受信割り込み要因であるか、タイマ割り込み要因であるかに応じて、メモリに転送されたデータに対する受信処理方法が第1の受信処理方法と第2の受信処理方法とで切り替えられるため、それらの要因ごとに適切な受信処理を行なうことができる。
 また、前記割り込み管理テーブルには、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法が前記割り込み制御方法として登録されてあり、前記第2の受信処理方法により前記メモリに転送されたデータを処理するときには、前記メモリに転送された前記タイマ割り込み方法の対象とされるパケットのデータの一群に対する処理が制限されるべきか否かを判定し、制限されるべきでないと判定したときには、前記一群の全てのパケットのデータを処理し、制限されるべきと判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。
 例えば、タイマ割り込み要因で割り込み信号が出力されるようなパケットでも、ストリームのパケットのように、受信時に広い帯域幅が保障されるべきパケットと、大量データダウンロードのパケットのように、そのような保障を必要としないが大量に受信されて処理されるべきパケットとがある。このようなパケットが混在するような場合には、ストリームのパケットについては、メモリに転送されたパケットのデータが1回の割り込みで全て処理されるべきであり、大量データダウンロードのパケットについては、ストリームのパケットが適切に処理されるように、1回の割り込みで処理されるデータ量が制限されるべきである。そこで、本発明では、処理が制限されるべきか否かが判定され、制限されるべきでないと判定されたときには、全てのパケットのデータが処理され、制限されるべきと判定されたときには、所定数以下のパケットのデータだけが処理される。したがって、本発明では、映像ストリーム受信などの受信帯域幅がアプリケーションの品質に極めて重大な影響を与える場合のパケットの受信に対して、他のパケットの受信の混在時にも安定した受信帯域幅を確保することができる。
 また、前記割り込み管理テーブルには、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法と、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法とが、それぞれ前記割り込み制御方法として登録されてあり、前記第1の受信処理方法により前記メモリに転送されたデータを処理するときには、前記処理ユニットが、前記メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかを前記一群のパケットの種別に基づいて判定し、即時割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータを処理し、遅延割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。
 例えば、受信割り込み要因で割り込み信号が出力されるようなパケットでも、TCPのACK(ACKnowledgement)処理のパケットように、即時に処理されるべきパケットと、ウェブブラウズのパケットのように、受信時の帯域幅の保障を必要としないパケットとがある。このようなパケットが混在するような場合には、ACK処理のパケットについては、メモリに転送されたパケットのデータが1回の割り込みで全て処理されるべきであり、ウェブブラウズのパケットについては、ACK処理のパケットが適切に処理されるように、1回の割り込みで処理されるデータ量が制限されるべきである。そこで、本発明では、メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかが判定され、即時割り込み方法の対象とされると判定されたときには、全てのパケットのデータが処理され、遅延割り込み方法の対象とされると判定されたときには、所定数以下のパケットのデータだけが処理される。したがって、本発明では、ACK処理のパケットなどの即時性が求められるパケットの受信に対して、他のパケットの受信の混在時にも確実に即時性を確保することができる。
 また、前記割り込み管理テーブルには、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として登録されてあり、前記第1の受信処理方法により前記メモリに転送されたデータを処理するときには、前記割り込み管理テーブルに割り込み制御方法として前記遅延割り込み方法のみが登録されているか否かを判定し、前記遅延割り込み方法のみが登録されていると判定したときには、前記メモリに転送された全てのパケットのデータを処理し、前記遅延割り込み方法以外の割り込み制御方法も登録されていると判定したときには、前記メモリに転送された前記遅延割り込み方法の対象とされる全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理してもよい。
 これにより、割り込み管理テーブルに、遅延割り込み方法と他の割り込み制御方法(例えばタイマ割り込み方法)とが登録されている場合には、メモリに転送された遅延割り込み方法の対象とされる全てのパケットのデータのうち、所定数以下のパケットのデータだけが処理されるため、タイマ割り込み方法の対象とされるパケットのデータに対する処理の妨げとならないように、遅延割り込み方法の対象とされるパケットのデータを処理することができる。また、割り込み管理テーブルに、遅延割り込み方法だけが登録されている場合には、メモリに転送された全てのパケットのデータが処理されるため、遅延割り込み方法の対象とされるパケットの受信処理のスループットを向上することができる。
 なお、本発明は、このような通信処理装置や、通信処理装置の制御方法として実現することができるだけでなく、その通信処理装置を備えて上記制御方法によりその通信処理装置を制御する通信機器、その通信処理装置が通信処理する方法、通信処理装置を制御するためのプログラムとしても実現することができ、そのプログラムを格納する記憶媒体や、集積回路としても実現することができる。
 ソフトウェアの受信処理負荷を抑えつつアプリケーションの処理に応じた割り込みを適宜行なうことができる通信処理装置およびその通信処理装置を備えた通信機器を提供することを目的とする。
 (本願の技術的背景に関する情報)
 2008年5月19日に出願された出願番号2008-130285の日本出願の明細書、図面および特許請求の範囲における開示は、その全体を、参照用として、本願に取り込む。
図1は、本発明の実施の形態に係る通信機器および通信処理装置の構成を示すブロック図である。 図2は、本発明の実施の形態に係る振り分け部で扱う受信パケットのフォーマット例を示す図である。 図3は、本発明の実施の形態に係る振り分けテーブルの一例を示す図である。 図4は、本発明の実施の形態に係る割り込み管理テーブルの一例を示す図である。 図5は、本発明の実施の形態に係る割り込み管理テーブルの他の例を示す図である。 図6Aは、本発明の実施の形態に係る即時割り込みのタイミングを示す図である。 図6Bは、本発明の実施の形態に係る遅延割り込みのタイミングを示す図である。 図6Cは、本発明の実施の形態に係る間隔制限付き遅延割り込みのタイミングを示す図である。 図7は、本発明の実施の形態に係るアプリケーションおよび設定部によるテーブル更新処理の一例を示すフローチャートである。 図8は、本発明の実施の形態に係る割り込み制御部の全体的な動作である割り込み制御処理を示すフローチャートである。 図9は、本発明の実施の形態に係る割り込み制御部における割り込み制御処理で実施される割り込み制御設定の詳細を示すフローチャートである。 図10は、本発明の実施の形態に係る割り込み制御部における割り込み制御処理で実施される割り込み発信制御の詳細を示すフローチャートである。 図11は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施されるタイマ割り込み制御の詳細を示すフローチャートである。 図12は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施される遅延割り込み制御の詳細を示すフローチャートである。 図13は、本発明の実施の形態に係る割り込み制御部における割り込み発信制御で実施される間隔制限付き遅延割り込み制御の詳細を示すフローチャートである。 図14は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理を示すフローチャートである。 図15は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理で実施されるタイマ割り込み処理を示すフローチャートである。 図16は、本発明の実施の形態に係る通信処理装置を制御するソフトウェアにおける割り込みハンドラの受信処理で実施される受信割り込み処理を示すフローチャートである。 図17は、通信処理装置を具備する通信機器の構成の例を示すブロック図である。 図18は、従来の通信処理装置の一構成例を示すブロック図である。
 以下、本発明の実施の形態について、図面を参照しながら説明する。
 図1は、本発明の実施の形態に係る通信機器および通信処理装置の構成を示すブロック図である。
 本実施の形態における通信機器100は、通信処理装置101と、メインメモリ102と、CPU103とを備える。なお、図1では、通信機器100の上記各構成要素に接続するシステムバスは説明の便宜上省略してあるが、本発明の本質とは無関係である。また、図1において、メインメモリ102およびCPU103はそれぞれ1つのみ記載されているが、物理的あるいは論理的に複数存在していてもよく、それらの数は本発明の本質とは無関係である。
 通信処理装置101は、転送制御部104、送信データ保持部105、MAC部106、振り分け部107、第2記憶部108m、受信データ保持部109、設定部110、割り込み制御部111、および第1記憶部112mを具備する。
 転送制御部104は、その送信処理として、メインメモリ102との間のパケットのデータの転送を管理および制御して送信パケットのデータを送信データ保持部105に転送する。さらに、転送制御部104は、その受信処理として、受信パケットのデータを受信データ保持部109からメインメモリ102に転送する。
 送信データ保持部105は、転送制御部104から転送された送信パケットのデータをMAC部106に転送する。MAC部106は、送信データ保持部105から転送された送信パケットのデータを、所定のMAC規格に準ずる送信処理により送信するとともに、所定のMAC規格に準ずる受信処理によりパケットを受信して振り分け部107に受信パケットのデータを転送する。なお、MAC部106から接続される外部ブロックは、物理層に依存し、通信機器100のネットワークと接続されるI/F(インターフェース)である。
 振り分け部107は、第2記憶部108mに記憶されている振り分けテーブル108を参照して、MAC部106から転送された受信パケットのデータを分類し、受信データ保持部109に分類識別子とともに転送する。受信データ保持部109は、振り分け部107から転送された受信パケットのデータと分類識別子を関連付けて保持する。なお、分類識別子は、振り分け部107による分類結果を示し、受信パケットのデータの内容に応じてそのデータに割り当てられる分類種別である。
 振り分け部107および振り分けテーブル108の詳細は、本発明の本質とは関係ないが、割り込み管理テーブル112における分類識別子を理解するために有用であるため、以下、それらの詳細について説明する。
 図2は、振り分け部107で扱う受信パケットのフォーマット例を示す図である。具体的には、図2は、MACとしてEthernet(登録商標)、ネットワーク層としてIP、トランスポート層としてTCPを使用した場合のフォーマット例を示す。なお、本実施の形態では、振り分け部107で扱う受信パケットのフォーマットとして、MAC、ネットワーク層、およびトランスポート層などを用いるが、これらと異なるものを用いてもよい。
 例えば、受信パケットのデータは、MACヘッダ401、IPヘッダ402、TCPヘッダ403およびペイロードデータ404を含む。この場合、受信パケットを分類するために用いられる情報としては、例えば、MACヘッダ401に含まれる宛先MACアドレス401aもしくは送信元MACアドレス401b、IPヘッダに含まれるIP Version(Ver)402aもしくはトランスポートプロトコル番号(Protocol)402b、または、TCPヘッダ403に含まれる送信元ポート番号403aもしくは宛先ポート番号403bなどが挙げられる。これらの一部を用いて他を任意としてもよいし、すべてを用いてもよい。さらに、受信パケットのデータに含まれる他の情報を分類に用いてもよい。例えば、Protocol402bがTCP(0x06)を示し、送信元ポート番号403aが80番である場合、受信パケットがHTTPサーバからの受信パケットであると特定できる。さらに、宛先ポート番号403bにより、その受信パケットを扱うアプリケーションが特定でき、その受信パケットが映像通信に用いられるものか否かが受信する通信機器100内では一意に特定可能となる。
 図3は、振り分けテーブル108の一例を示す図である。
 例えば、振り分けテーブル108は、受信パケットの分類に用いられる情報である分類パラメータと、その分類パラメータに対して関連付けられた分類識別子とを示す。この例では、分類パラメータは、トランスポートプロトコル(Protocol)、宛先IPアドレス、送信元ポート番号、および宛先ポート番号からなる。なお、トランスポートプロトコルは、上述のトランスポートプロトコル番号であってもよい。
 具体的には、振り分けテーブル108は、分類パラメータ「Protocol:TCP、宛先IPアドレス:192.168.3.4、送信元ポート番号:80、宛先ポート番号:10001」に関連付けて分類識別子「1」を示し、分類パラメータ「Protocol:TCP、宛先IPアドレス:192.168.1.8、送信元ポート番号:10001、宛先ポート番号:10002」に関連付けて分類識別子「2」を示す。また、振り分けテーブル108は、具体的に挙げられた分類パラメータ以外の分類パラメータに対しては、分類識別子「Default」を示す。
 したがって、振り分け部107は、受信パケットのデータに示される分類パラメータを振り分けテーブル108から検索し、その分類パラメータが振り分けテーブル108にあれば、その分類パラメータに関連付けられている分類識別子を、その受信パケットのデータとともに受信データ保持部109に出力する。また、振り分け部107は、検索の結果、その分類パラメータが振り分けテーブル108になければ、分類識別子「Default」をその受信パケットのデータとともに受信データ保持部109に出力する。
 このように、振り分けテーブル108には、受信パケットを分類するための定義(分類パラメータ)が分類識別子に関連付けて登録されている。なお、その定義のエントリ一つ一つを区別するために、便宜上、仮想的に分類識別子を関連付けておいてもよい。
 転送制御部104は、その受信処理として、受信データ保持部109に保持された受信パケットのデータを、そのデータに関連付けられた分類識別子に基づいてメインメモリ102に転送する。この時、転送制御部104は、受信パケットのデータをメインメモリ102へ転送完了したことを、その分類識別子とともに割り込み制御部111に通知する。
 割り込み制御部111は、転送制御部104から通知された分類識別子を、第1記憶部112mに記憶されている割り込み管理テーブル112から検索し、その分類識別子に関連付けられているトラヒック種別に定義されている割り込み制御方法を特定し、その方法で割り込み制御を行なう。その結果、割り込み制御部111はCPU103に必要なタイミングで割り込み信号を発信する。
 図4は、割り込み管理テーブル112の一例を示す図である。
 例えば、割り込み管理テーブル112は、分類識別子と、その分類識別子に関連付けられたトラヒック種別とを示す。言い換えれば、割り込み管理テーブル112には、分類識別子とトラヒック種別と関連付けて登録されている。また、割り込み管理テーブル112における分類識別子は振り分けテーブル108の分類識別子と共通している。
 具体的には、割り込み管理テーブル112は、分類識別子「1」に関連付けてトラヒック種別「ストリーム」を示し、分類識別子「2」に関連付けてトラヒック種別「即時」を示す。ここでトラヒック種別とは、受信パケットの受信形態であって、例えば「非優先」、「即時」、「ストリーム」および「ダウンロード」の何れかである。トラヒック種別「非優先」は、帯域幅の保障を必要としない通常の受信形態であり、トラヒック種別「即時」は、TCPのスループット向上に有用なTCP-ACK処理などの即時処理が必要とされる受信形態であり、トラヒック種別「ストリーム」は、帯域幅の保障を必要とする映像データの受信形態であり、トラヒック種別「ダウンロード」は、トラヒック種別「即時」および「ストリーム」による通信を妨げない範囲で最大限の受信性能を要求する受信形態である。
 つまり、割り込み制御部111は、この割り込み管理テーブル112から、転送制御部104から通知された分類識別子(例えば分類識別子「1」)を検索し、その分類識別子に関連付けられているトラヒック種別(例えば「ストリーム」)を特定する。さらに、割り込み制御部111は、そのトラヒック種別に定義されている割り込み制御方法を特定する。
 例えば、トラヒック種別「非優先」には、割り込み制御方法「遅延割り込み」または「間隔制限付き遅延割り込み」が定義され、トラヒック種別「即時」には、割り込み制御方法「即時割り込み」が定義され、トラヒック種別「ストリーム」には、割り込み制御方法「タイマ割り込み」が定義され、トラヒック種別「ダウンロード」には、割り込み制御方法「処理量(帯域幅)制限付きタイマ割り込み」が定義されている。なお、トラヒック種別「非優先」を細分化して、トラヒック種別「非優先A」に割り込み制御方法「遅延割り込み」が定義され、トラヒック種別「非優先B」に割り込み制御方法「間隔制限付き遅延割り込み」が定義されていてもよい。
 「即時割り込み」は、パケットのデータがメインメモリ102に転送された直後に割り込み信号を出力する割り込み制御方法である。「遅延割り込み」は、パケットのデータがメインメモリ102に転送されてから予め定められた時間経過したときに割り込み信号を出力する割り込み制御方法である。「間隔制限付き遅延割り込み」は、パケットのデータがメインメモリ102に転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから上記予め定められた時間経過したときに割り込み信号を出力する割り込み制御方法である。また、「タイマ割り込み」は、予め定められた期間ごとに割り込み信号を出力する割り込み制御方法であり、「処理量(帯域幅)制限付きタイマ割り込み」は、上記「タイマ割り込み」と同様のタイミングで割り込み信号を出力するが、その割り込み信号に応じて処理されるデータ量が制限されている割り込み制御方法である。
 なお、本実施の形態では、割り込み管理テーブル112には、分類識別子に関連付けてトラヒック種別が登録され、1つのトラヒック種別は1つの割り込み制御方法に定義づけされている。したがって、本実施の形態における割り込み管理テーブル112は、分類識別子に関連付けられた割り込み制御方法を、トラヒック種別を介して間接的に示している。したがって、割り込み管理テーブル112には、トラヒック種別の代わりに、割り込み制御方法が分類識別子に関連付けて登録されていてもよい。
 また、本実施の形態では、通信処理装置101は、割り込み管理テーブル112および振り分けテーブル108をそれぞれ独立に保持しているが、これら2つのテーブルの代わりに、これらのテーブルに含まれる情報を含む1つのテーブルを保持していてもよい。
 図5は、割り込み管理テーブル112の他の例を示す図である。
 この割り込み管理テーブル112は、分類識別子と、その分類識別子に対応する分類パラメータと、その分類識別子および分類パラメータに関連付けられたトラヒック種別とを示す。
 通信処理装置101は、図5に示す割り込み管理テーブル112を保持する場合には、第2記憶部108mを備えず、その割り込み管理テーブル112を記憶している第1記憶部112mを備えている。さらに、この場合、振り分け部107は、振り分けテーブル108を参照する代わりに、割り込み管理テーブル112を参照することにより受信パケットのデータを分類する。
 なお、通信処理装置101が割り込み管理テーブル112および振り分けテーブル108をそれぞれ独立に保持する場合でも、図5に示す割り込み管理テーブル112を保持していてもよい。また、この場合には、図5に示す割り込み管理テーブル112のうち分類識別子が省かれていてもよい。つまり、割り込み管理テーブル112は、分類パラメータと、その分類パラメータに関連付けられたトラヒック種別とを示す。このような割り込み管理テーブル112が第1記憶部112mに記憶されている場合には、振り分け部107は、受信パケットのデータをその分類パラメータと共に受信データ保持部109に転送し、転送制御部104は、受信パケットのデータをメインメモリ102へ転送完了したことを、その分類パラメータとともに割り込み制御部111に通知する。そして、割り込み制御部111は、その分類パラメータに関連付けられたトラヒック種別を割り込み管理テーブル112から検索し、そのトラヒック種別に定義付けされた割り込み制御方法を特定する。
 ここで、割り込み制御部111で用いられる割り込み制御方法について、その詳細を以下に説明する。
 使用される割り込み制御方法は、少なくとも以下のうち一つを含む。
 (1)即時割り込み
 (2)遅延割り込み(間隔制限なし)
 (3)間隔制限付き遅延割り込み
 (4)タイマ割り込み(処理量制限付き、または処理量制限なし)
 なお、上記割り込み制御方法のうち、タイマ割り込みに関しては、必ずしも割り込み管理テーブル112で指定される必要はなく、単に、「受信に応じた割り込みは発生させない」という定義として指定してもよい。
 タイマ割り込みは、通信処理装置101内の割り込み制御部111で実装される機能であり、予め定められた周期(タイマ時間)に割り込み信号をCPU103に発信する割り込み制御方法である。つまり、割り込み制御部111は、タイマ機能を具備し、割り込み制御方法として「タイマ割り込み」を適用する場合、CPU103より設定部110経由で設定されたタイマ時間、あるいは、予め決められた所定のタイマ時間に基づき、周期的な割り込み信号を発信する。ここで、割り込み制御部111は、CPU103からの指定により設定部110経由でタイマ割り込みのON/OFFを受け付け、周期的な割り込み信号の発信を作動あるいは停止することもできる。
 このタイマ割り込みでは、割り込み制御部111の動作クロックに応じた精度の周期で発信が可能である。ただし、必ずしもその動作クロックの周期を最小単位とする必要はない。一般的に、割り込みに対するソフトウェアのドライバで実装された割り込み処理が駆動されるのは、高々数十μsec程度のずれである。これにより、OSにより実装されるタイマ機能より精度が高く、ソフトウェア処理量を低減したタイマ機能の実現が可能である。なお、タイマ割り込みは複数実装されてもよいが、タイマ割り込みを1つだけ実装してその時間単位(タイマ時間)を小さくし、ソフトウェアにより仮想的に複数のタイマを持つように制御することで代替可能である。
 具体的に、即時割り込み、遅延割り込み、および間隔制限付き遅延割り込みのタイミングについて、図6A~図6Cを用いて説明する。
 図6Aは、割り込み制御方法「即時割り込み」のタイミングを示す図である。
 即時割り込みは、通信処理装置101の転送制御部104において転送が完了(受信事象発生)した後、即時に割り込み制御部111が割り込み信号を発信する割り込み制御方法である。ここで、「即時」と記述したのは、説明の便宜上であり、実際のハードウェアの動作クロックの単位で数クロックのずれが発生することは十分許容できる範囲であり、そのずれを制限するものではない。
 図6Bは、割り込み制御方法「遅延割り込み(間隔制限なし)」のタイミングを示す図である。
 遅延割り込みは、通信処理装置101の転送制御部104において転送が完了(受信事象発生)した後、その転送完了時から予め定められた期間(遅延時間t)経過したときに、割り込み制御部111が割り込み信号を発信する割り込み制御方法である。上述の遅延時間tは、割り込み管理テーブル112の該当する分類識別子「Default」で定義されるエントリに登録されていてもよく、あるいは、割り込み制御部111に設定部110から予め指定されていてもよく、あるいは、割り込み制御部111によって予め保有されていてもよい。仮に、受信事象発生後、その受信事象発生に対応する割り込み信号の発信までに、新たな受信事象が発生した場合には、ソフトウェアがその新たな受信事象発生を通信処理装置101の転送制御部104の管理外としなければ、その新たな受信事象発生から前述の遅延時間tだけ遅延して割り込み信号が発信される。
 なお、割り込みの遅延時間tの精度については、即時割り込みで記載した通り、ハードウェアの動作クロックの数クロックのずれを制限するものではない。また、上述の遅延時間tを、割り込み管理テーブル112のエントリに個別に登録しておくことは、実装が複雑となるため、推奨はされない。
 図6Cは、割り込み制御方法「間隔制限付き遅延割り込み」のタイミングを示す図である。
 間隔制限付き遅延割り込みは、通信処理装置101の転送制御部104において転送が完了(受信事象発生)した後、その転送完了時から予め定められた期間(遅延時間t)経過したときに、割り込み制御部111が割り込み信号を発信する制御方法である。間隔制限なしの遅延割り込みと異なる点は、割り込み信号と次の割り込み信号との時間間隔が遅延時間t以上になることが保障されていることである。つまり、受信事象発生後、その受信事象発生に対応する割り込み信号の発信までに、新たな受信事象が発生し、ソフトウェアがその新たな受信事象発生を通信処理装置101の転送制御部104の管理外としなかった場合、割り込み制御部111は先の割り込み信号の発信から遅延時間tだけ間隔を空けて新たな割り込み信号を発信する。例えば、図6Cに示すように、受信事象aの発生後、その受信事象aの発生に対応する割り込み信号aの発信までに新たな受信事象bが発生した場合、割り込み制御部111は先の割り込み信号aの発信から遅延時間tだけ間隔を開けて新たな割り込み信号bを発信する。
 この割り込み制御方法は、pps(Packet Per Sec:単位時間あたりに処理されるパケット数)制限や、bps(Bit Per Sec:単位時間あたりに処理される受信データ量)制限を行なうのにソフトウェア実装が容易となり、不要な割り込み信号の発信を抑制することも可能となる。
 設定部110は、割り込み管理テーブル112および振り分けテーブル108を更新する。つまり、設定部110は、CPU103によってアプリケーションが起動すると、そのアプリケーションによって確立される通信路に応じて割り込み管理テーブル112および振り分けテーブル108を更新する。
 図7は、アプリケーションおよび設定部110によるテーブル更新処理の一例を示すフローチャートである。
 まず、アプリケーションは通信路を確立する(ステップS100)。例えば、アプリケーションはソケットをオープンしたりbindを行なったりする。設定部110は、このように通信路を確立したアプリケーションから通信路情報を取得する(ステップS102)。通信路情報は、図3に示す振り分けテーブル108の分類パラメータであって、Protocol、宛先IPアドレス、送信元ポート番号および宛先ポート番号などを含む。
 次に、設定部110は、その取得した通信路情報に分類識別子を割り当て、その通信路情報を分類パラメータとして分類識別子とともに振り分けテーブル108に登録する。さらに、設定部110は、その取得した通信路情報に適したトラヒック種別を特定し、特定したトラヒック種別を、その通信路情報に割り当てた分類識別子に関連付けて割り込み管理テーブル112に登録する(ステップS104)。なお、アプリケーションプログラムが通信路を確立したときに、その通信路に対応する分類識別子および割り込み制御方法が割り込み管理テーブル112に登録されていなければ、ステップS104で、その通信路に対応する分類識別子および割り込み制御方法が割り込み管理テーブル112に追加されることになる。
 このように、アプリケーションプログラムは、通信処理装置101を介した通信路を確立し、通信路情報を通信処理装置101に送信することにより、通信処理装置101の設定部110に対して、通信路情報に対応する分類識別子および割り込み制御方法を割り込み管理テーブル112に登録させて、その割り込み管理テーブル112を更新させる。
 また、設定部110は、割り込み制御部111によるタイマ割り込みのON/OFFの要求をCPU103から受け付け、その要求に応じて割り込み制御部111にタイマ割り込みを実行させたり停止させたりしてもよい。
 また、割り込み管理テーブル112および振り分けテーブル108に登録される通信路情報として、予め決められた共通の通信路情報を保有する複数の通信路に対して適用可能な設定を登録することも可能である。これにより、例えばサーバのよく知られたポート番号として同一の値を持つ通信路に対して、共通の登録情報を参照することが可能となり、割り込み管理テーブル112および振り分けテーブル108の登録総数を抑制することが可能となる。
 次に、割り込み制御方法を実現するためのアルゴリズムの例を図8から図13を用いて説明する。なお、この説明においては、ハードウェアの実装において、並列処理できるところにおいても、説明の容易性から逐次実行として記述している部分もあるが、並列処理を制限するものではない。また、以下の説明では、上述の割り込み制御方法すべてを実装した形態について説明しているが、それらの一部が実装されない場合においても、容易に類推できるため説明を割愛する。
 図8は、割り込み制御部111の全体的な動作である割り込み制御処理を示すフローチャートである。割り込み制御部111は、割り込み制御処理を実行するときには、割り込み発信制御(ステップS200)と割り込み制御設定(ステップS202)とを並列に、または何れか一方の処理を実行し、その後、割り込み制御処理を終了すべきか否かを判別する(ステップS204)。ここで、割り込み制御部111は、終了すべきでないと判別すると(ステップS204のNo)、ステップS200,S202の処理を繰り返して実行し、終了すべきであると判別すると(ステップS204のYes)、割り込み制御処理を終了する。
 図9は、図8におけるステップS202として記載された割り込み制御設定の詳細を示すフローチャートである。
 割り込み制御部111は、割り込み制御設定を行なうときには、まず、転送制御部104からの受信完了の通知の有無を判定する(ステップS210)。ここで、割り込み制御部111は、通知がないと判定すると(ステップS210のNo)、割り込み制御設定を終了する。一方、割り込み制御部111は、通知があったと判定すると(ステップS210のYes)、転送制御部104から得た分類識別子に関連付けられているトラヒック種別を割り込み管理テーブル112から検索する。そして、割り込み制御部111は、該当するトラヒック種別を見つけ出し、そのトラヒック種別に定義されている割り込み制御方法を特定する(ステップS212)。
 次に、割り込み制御部111は、ステップS212で特定した割り込み制御方法が即時割り込みであるか否かを判定する(ステップS214)。ここで、割り込み制御部111は、即時割り込みであると判定すると(ステップS214のYes)、割り込み要因に受信割り込みを設定して割り込み信号を発信し(ステップS216)、割り込み制御設定を終了する。一方、割り込み制御部111は、ステップS214で割り込み制御方法が即時割り込みでないと判定すると(ステップS214のNo)、さらに、その割り込み制御方法が遅延割り込み(間隔制限なし)であるか否かを判定する(ステップS218)。
 ここで、割り込み制御部111は、遅延割り込みであると判定すると(ステップS218のYes)、受信事象発生に対して「遅延割り込み中」を設定し(ステップS220)、割り込み制御設定を終了する。一方、割り込み制御部111は、ステップS218で割り込み制御方法が遅延割り込みでないと判定すると(ステップS218のNo)、さらに、その割り込み制御方法が間隔制限付き遅延割り込みであるか否かを判定する(ステップS222)。
 ここで、割り込み制御部111は、間隔制限付き遅延割り込みであると判定すると(ステップS222のYes)、受信事象発生に対して「間隔制限付き遅延割り込み中」を設定し(ステップS224)、割り込み制御設定を終了する。一方、割り込み制御部111は、ステップS222で割り込み制御方法が間隔制限付き遅延割り込みでないと判定すると(ステップS222のNo)、ステップS224の設定を行なうことなく割り込み制御設定を終了する。その結果、受信完了のデータはタイマ割り込みの対象として扱われる。
 図10は、図8におけるステップS200として記載された割り込み発信制御の詳細を示すフローチャートである。
 割り込み制御部111は、割り込み発信制御を行なうときには、まず、割り込み制御が有効か否かを判定する(ステップS240)。例えば、割り込み制御部111は、割り込み管理テーブル112が第1記憶部112mに記憶されていれば、割り込み制御が有効であると判定する。あるいは、割り込み制御部111は、割り込み管理テーブル112を参照して、その割り込み管理テーブル112に分類識別子およびその分類識別子のトラヒック種別が登録されていれば、割り込み制御が有効であると判定する。
 ここで、割り込み制御部111は、割り込み制御が有効であると判定すると(ステップS240のYes)、タイマ割り込み制御(ステップS242)、遅延割り込み制御(ステップS244)、および間隔制限付き遅延割り込み制御(ステップS246)の何れかを実行し、割り込み発信制御を終了する。また、割り込み制御部111は、ステップS240で割り込み制御が有効でないと判定したときには(ステップS240のNo)、上記ステップS242,S244,S246の何れの処理を行なうことなく、割り込み発信制御を終了する。
 図11は、図10におけるステップS242として記載されたタイマ割り込み制御の詳細な処理を示すフローチャートである。
 割り込み制御部111は、タイマ割り込み制御を行なうときには、まず、タイマ割り込みがONか否かを判定する(ステップS260)。例えば、割り込み制御部111は、割り込み管理テーブル112を参照して、そこにトラヒック種別「ストリーム」または「ダウンロード」が登録されているか否かを判別することにより、タイマ割り込みがONか否かを判定する。つまり、割り込み制御部111は、トラヒック種別「ストリーム」または「ダウンロード」が登録されていれば、タイマ割り込みがONであると判定する。
 ここで、割り込み制御部111は、タイマ割り込みがONであると判定すると(ステップS260のYes)、さらに、タイマ割り込み発信条件が満了したか否かを判定する(ステップS262)。ここで、タイマ割り込み発信条件の満了とは、前回のタイマ割り込み発信条件が満了してから、所定のタイマ時間だけ経過したことを意味する。割り込み制御部111は、タイマ割り込み発信条件が満了したと判定すると(ステップS262のYes)、割り込み要因にタイマ割り込みを設定して割り込み信号を発信する(ステップS264)。このとき、割り込み制御部111は、タイマ割り込みの発信条件が満了しているか否かを判定するための経過時間を0、あるいは次回のタイマ割り込み発信条件の満了までの時間を初期値に設定する。そして、割り込み制御部111は、上述の経過時間、あるいは上述の次回満了までの時間を更新する(ステップS266)。
 一方、割り込み制御部111は、ステップS260でタイマ割り込みがONでないと判定したときには(ステップS260のNo)、タイマ割り込み制御を終了する。また、割り込み制御部111は、ステップS262でタイマ割り込み発信条件が満了していないと判定したときには(ステップS262のNo)、割り込み信号を発信することなく、上述の経過時間などを更新する(ステップS266)。
 図12は、図10におけるステップS244として記載された遅延割り込み制御の詳細を示すフローチャートである。
 割り込み制御部111は、遅延割り込み制御を行なうときには、まず、遅延割り込み中か否かを判定する(ステップS280)。つまり、割り込み制御部111は、図9に示す割り込み制御設定のステップS220の処理によって、受信事象発生に「遅延割り込み中」が設定されているか否かを判定する。
 ここで、割り込み制御部111は、遅延割り込み中であると判定すると(ステップS280のYes)、さらに、遅延割り込み発信条件が満了したか否かを判定する(ステップS282)。ここで、遅延割り込み発信条件の満了とは、割り込みの対象となる受信事象の発生から所定の遅延時間だけ経過したことを意味する。割り込み制御部111は、遅延割り込み発信条件が満了したと判定すると(ステップS282のYes)、割り込み要因に受信割り込みを設定して割り込み信号を発信する(ステップS284)。
 一方、割り込み制御部111は、遅延割り込み発信条件が満了していないと判定したときには(ステップS282のNo)、割り込み信号を発信することなく、遅延割り込み発信条件が満了しているか否かを判定するための経過時間、あるいは次回の遅延割り込み発信条件の満了までの時間を更新する(ステップS286)。この経過時間などの更新は、すべての遅延割り込みの対象とされる受信事象発生に対して行なわれる。また、割り込み制御部111は、ステップS280で遅延割り込み中でないと判定したときには(ステップS280のNo)、遅延割り込み制御を終了する。
 ここで、割り込み制御部111は、ステップS284において割り込み信号を発信した場合、次の受信事象発生に対して、次に満了する遅延割り込みの発信条件を適用する。次に遅延割り込みの対象となる受信事象発生がなければ、割り込み制御部111は、ステップS280で遅延割り込み中でないと判定する。また、遅延割り込みの対象となる受信事象発生が全てソフトウェアで処理された場合にも、割り込み制御部111は、転送制御部104が管理するDescriptorの解析の結果、遅延割り込みを発生させる必要がないことを検知し、ステップS280で遅延割り込み中でないと判定する。
 図13は、図10におけるステップS246として記載された間隔制限付き遅延割り込み制御の詳細を示すフローチャートである。
 割り込み制御部111は、間隔制限付き遅延割り込み制御を行なうときには、まず、間隔制限付き遅延割り込み中か否かを判定する(ステップS300)。つまり、割り込み制御部111は、図9に示す割り込み制御設定のステップS224の処理によって、受信事象発生に「間隔制限付き遅延割り込み中」が設定されているか否かを判定する。
 ここで、割り込み制御部111は、間隔制限付き遅延割り込み中であると判定すると(ステップS300のYes)、さらに、間隔制限が満了したか否かを判定する(ステップS302)。ここで、間隔制限の満了とは、割り込みの対象となる受信事象の発生から所定の遅延時間が経過し、且つ、前回の間隔制限付き遅延割り込みによる割り込み信号の発信がある場合には、その発信から上記遅延時間だけ経過したことを意味する。割り込み制御部111は、間隔制限が満了したと判定すると(ステップS302のYes)、割り込み要因に受信割り込みを設定して割り込み信号を発信する(ステップS304)。
 一方、割り込み制御部111は、間隔制限が満了していないと判定したときには(ステップS302のNo)、割り込み信号を発信することなく、間隔制限が満了しているか否かを判定するための経過時間、あるいは次回の間隔制限の満了までの時間を更新する(ステップS306)。また、割り込み制御部111は、ステップS300で間隔制限付き遅延割り込み中でないと判定したときには(ステップS300のNo)、間隔制限付き遅延割り込み制御を終了する。
 ここで、割り込み制御部111は、ステップS304において割り込み信号を発信した場合、経過時間を0、あるいは次回の間隔制限の満了までの時間を初期値に設定する。また、間隔制限付き遅延割り込みの対象となる受信事象発生が全てソフトウェアで処理された場合、割り込み制御部111は、転送制御部104が管理するDescriptorの解析の結果、間隔制限付き遅延割り込みを発生させる必要がないことを検知し、ステップS300で間隔制限付き遅延割り込み中でないと判定する。
 なお、上記説明において、即時割り込み、遅延割り込み、間隔制限付き遅延割り込みの割り込み要因を「受信割り込み」として統一して扱う例を示したが、これらが別々であっても構わない。
 ここで、上述で実現される通信処理装置101を用いた通信機器100を実現するために、ソフトウェアで実装する制御アルゴリズムの例を、図14から図16を用いて説明する。ただし、一般的なドライバソフトウェアの処理については、本発明の本質とは関係がないため割愛し、割り込み処理の説明に限定する。また、以下の説明において、判定の順序や処理の順序が必ずしも記述の通りでなくてもよい場合もあるが、同業の専門家であれば容易に類推できるため、その記述は割愛する。
 図14は、CPU103で実行されるソフトウェアにおける割り込みハンドラの受信処理を示すフローチャートである。
 ソフトウェアは、割り込み信号の割り込み要因にタイマ割り込みが設定されているか否かを判定する(ステップS400)。ここで、ソフトウェアは、タイマ割り込みが設定されていると判定すると(ステップS400のYes)、タイマ割り込み処理を行なう(ステップS402)。なお、タイマ割り込み処理の詳細については、図15を用いて後述する。一方、ソフトウェアは、タイマ割り込みが設定されていないと判定すると(ステップS400のNo)、または、ステップS402のタイマ割り込み処理が完了すると、さらに、割り込み信号の割り込み要因に受信割り込みが設定されているか否かを判定する(ステップS404)。
 ここで、ソフトウェアは、受信割り込みが設定されていると判定すると(ステップS404のYes)、受信割り込み処理を行なう(ステップS406)。なお、受信割り込み処理の詳細については、図16を用いて後述する。一方、ソフトウェアは、受信割り込みが設定されていないと判定すると(ステップS406)、または、ステップS406の受信割り込み処理が完了すると、他の割り込み要因に対する処理を行ない(ステップS408)、ソフトウェアにおける割り込みハンドラの受信処理を終了する。
 図15は、図14におけるステップS402のタイマ割り込み処理の詳細を示すフローチャートである。
 ソフトウェアは、タイマ割り込み処理では、まず、処理対象とする分類識別子を先頭(例えば1)に初期化する(ステップS420)。次に、ソフトウェアは、処理対象の分類識別子(初期値は分類識別子1)に対応するデータ(以降、分類対象という)がタイマ割り込み対象であるか否かを判定する(ステップS422)。なお、転送制御部104が管理するDescriptorが分類識別子ごとに独立して管理されている場合、その管理番号で分類識別子を識別可能であるため、ソフトウェアによるステップS422の判定の実現が容易となる。
 ここで、ソフトウェアは、分類対象がタイマ割り込み対象であると判定すると(ステップS422のYes)、さらに、分類対象が帯域幅制限対象(処理量制限付きタイマ割り込みの対象)であるか否かを判定する(ステップS424)。ソフトウェアは、分類対象が帯域幅制限対象であると判定すると(ステップS424のYes)、通信処理装置101からメインメモリ102に転送された上述の分類対象に該当する受信パケットのうち、最大N個の受信パケットを受信処理する。ここで、N個とは、予め決められた値であり、通信機器100または通信機器100を含むシステムで一意であってもよいし、分類識別子毎に異なる値であってもよい。
 一方、ソフトウェアは、分類対象が帯域幅制限対象でないと判定すると(ステップS424のNo)、通信処理装置101からメインメモリ102に転送された上述の分類対象に該当する全ての受信パケットを受信処理する(ステップS428)。また、ソフトウェアは、ステップS426,S428の受信処理完了後、または、ステップS422で分類対象がタイマ割り込み対象でないと判定したときには(ステップS422のNo)、すべての分類識別子に対して上述の処理を行なったか否かを判定する(ステップS430)。ここで、ソフトウェアは、処理を行なったと判定すると(ステップS430のYes)、タイマ割り込み処理を終了する。一方、ソフトウェアは、処理を行なっていないと判定すると(ステップS430のNo)、分類識別子をインクリメントして(例えば1進める)(ステップS432)、ステップS422からの処理を繰り返し実行する。
 図16は、図14におけるステップS406の受信割り込み処理の詳細を示すフローチャートである。
 ソフトウェアは、受信割り込み処理では、まず、非優先パケットのみの受信モードであるか否かを判定する(ステップS440)。ここで、非優先パケットのみの受信モードとは、以下のいずれかの条件を満たす場合のモードである。
(1)トラヒック種別「非優先」だけが割り込み管理テーブル112に登録されている。つまり、遅延割り込みあるいは間隔制限付き遅延割り込みで処理されるデータの分類識別子(例えば、「Default」)以外の分類識別子が割り込み管理テーブル112に登録されていない。
(2)トラヒック種別「ストリーム」が割り込み管理テーブル112に登録されている、言い換えれば、タイマ割り込みにより処理されるデータの分類識別子が割り込み管理テーブル112に登録されているが、予め決められた所定の期間、そのデータの受信が転送制御部104において行なわれなかった。
 ソフトウェアは、ステップS440で非優先パケットのみの受信モードであると判定すると(ステップS440のYes)、通信処理装置101からメインメモリ102に転送された全ての受信パケットを受信処理し(ステップS442)、受信割り込み処理を終了する。一方、ソフトウェアは、ステップS440で非優先パケットのみの受信モードでないと判定すると(ステップS440のNo)、処理対象とする分類識別子を先頭(例えば1)に初期化する(ステップS444)。次に、ソフトウェアは、分類対象(初期化時では、分類識別子1に対応するデータ)が即時割り込み対象であるか否かを判定する(ステップS446)。なお、転送制御部104が管理するDescriptorが分類識別子ごとに独立して管理されている場合、その管理番号で分類識別子を識別可能であるため、ソフトウェアによるステップS446の判定の実現が容易となる。
 ここで、ソフトウェアは、分類対象が即時割り込み対象であると判定すると(ステップS446のYes)、通信処理装置101からメインメモリ102に転送された上述の分類対象に該当する、すなわち即時割り込み対象に該当する全ての受信パケットを受信処理する(ステップS448)。一方、ソフトウェアは、分類対象が即時割り込み対象でないと判定すると(ステップS446のNo)、遅延割り込みあるいは間隔制限付き遅延割り込みで処理される全ての受信パケット、すなわち全ての非優先パケットのうち、最大M個の受信パケットを受信処理する(ステップS450)。ここで、M個とは、予め決められた値であり、通信機器100または通信機器100を含むシステムで一意であってもよいし、分類識別子毎に異なる値であってもよく、前述のN個と同一であっても異なる値でもよい。
 次に、ソフトウェアは、ステップS448,S450の受信処理完了後、すべての分類識別子に対して上述の処理を行なったか否かを判定する(ステップS452)。ここで、ソフトウェアは、処理を行なったと判定すると(ステップS452のYes)、受信割り込み処理を終了する。一方、ソフトウェアは、処理を行なっていないと判定すると(ステップS452のNo)、分類識別子をインクリメントして(例えば1進める)(ステップS454)、ステップS446からの処理を繰り返し実行する。
 以上のように、本実施の形態における通信処理装置101は、受信パケットの分類パラメータに応じて、
 (1)即時割り込み
 (2)遅延割り込み
 (3)間隔制限付き遅延割り込み
 (4)タイマ割り込み
を実現する。さらに、通信処理装置101は、タイマ割り込みで処理される分類の受信パケットに対し、帯域幅制限対象とそれ以外に分類して処理することで、
 (1)即時性の高い通信
 (2)非優先的に処理される通信
 (3)非優先的に処理される通信のpps制限
 (4)帯域幅制限対象となる通信
 (5)映像受信のように、デコーダにおける受信レートの制限により、受信レートが自動的に制御されるため、受信パケットを無制限に処理すべき通信を実現する。
 以上、本発明に係る通信処理装置および通信機器について、上記実施の形態を用いて説明したが、本発明はこれらに限定されるものではない。
 例えば、上記実施の形態では、転送制御部104は、受信事象発生と、その受信事象発生に対応する分類識別子とを割り込み制御部111に通知したが、受信パケット長など、割り込み管理テーブル112で分類定義されていない情報も合わせて通知してもよい。この情報は、振り分け部107によって分類された受信パケットに関するパケット関連情報である。この場合には、割り込み制御部111は、割り込み管理テーブル112において受信パケットの分類識別子に関連付けられている割り込み制御方法と上述のパケット関連情報とに応じた他の割り込み制御方法を特定し、他の割り込み制御方法で割り込み信号を発信することができる。その結果、受信事象発生に対してより適切な割り込み制御方法で割り込み信号を発信することができる。例えば、パケット長が所定の長さより短い受信パケットや、TCPのSYNパケットに対して、強制的に間隔制限付き遅延割り込みを適用するなどにより、DoS(Denial of Service)攻撃への対策が可能となる。また、転送制御部104は、分類識別子毎に管理されるDescriptorが全てソフトウェアで処理されたことを検知した場合、割り込み制御部111に通知する。これによって、不要な割り込みを抑制することが可能となる。なお、割り込み制御部111がDescriptorを検索して同様の処理を行なってもよい。
 また、設定部110は、分類識別子とその分類識別子に関連付けられたトラヒック種別(割り込み制御方法)との組み合わせを1つまたは複数個だけ、割り込み管理テーブル112に登録し、割り込み制御部111は、割り込み管理テーブル112に登録されている1つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、割り込み管理テーブル112において、受信パケットの分類識別子に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力してもよい。例えば、割り込み制御部111は、割り込み管理テーブル112に遅延割り込みが割り込み制御方法として1つだけ登録されている場合には、即時割り込み方法で割り込み信号を出力してもよい。これにより、遅延割り込みの対象となるパケットの受信処理のスループットを向上することができる。
 また、転送制御部104は、メインメモリ102との間でパケットのデータを転送するため、転送制御部104が用いるDescriptorで割り込み制御方法を指定してもよい。この場合、パケット毎の割り込み制御の変更が可能となる。
 また、上記実施の形態における通信処理装置101は、単体のLSIとして実装されてもよいし、半導体IPコアとして実装され、SoC(System On Chip)などに内蔵実装されてもよい。つまり、ブロック図(図1など)の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。(例えばメモリ以外の機能ブロックが1チップ化されていても良い。)ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサ を利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。 また、各機能ブロックのうち、符号化または復号化の対象となるデータを格納する手段だけ1チップ化せずに別構成としても良い。
 また、上記実施の形態における通信処理装置101は、より転送効率を高くすることを可能とするDescriptorを用いたDMA(Direct Memory Access)を利用する転送制御部104を備えた。しかし、本発明は、Descriptorを用いたDMAを使用した場合だけに実現できるものではなく、DMAを用いずに、パケットの受信の都度、プログラムI/Oによる転送を行なう場合においても実現できることは、同業の専門家であれば、容易に類推可能である。
 また、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 本発明にかかる通信処理装置、通信処理方法、およびその通信処理装置を搭載した通信機器は、家電などの比較的低い処理資源を有する装置において適切な通信機能を実現することができ、特に、通信帯域幅がアプリケーションの品質に重大な影響を与える通信を、他の通信と混在して行なう場合に有用であって、例えば、テレビ受像機、レコーダ、録画再生装置、セットトップボックス、またはIP(Internet Protocol)通信装置などに適用することができる。
 100  通信機器
 101  通信処理装置
 102  メインメモリ
 103  CPU
 104  転送制御部
 105  送信データ保持部
 106  MAC部
 107  振り分け部
 108  振り分けテーブル
 108m 第2記憶部
 109  受信データ保持部
 110  設定部
 111  割り込み制御部
 112  割り込み管理テーブル
 112m 第1記憶部

Claims (18)

  1.  パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置であって、
     パケットを受信する受信部と、
     前記受信部で受信されるパケットの種類に応じて、複数の分類種別のうちの何れか1つの分類種別に前記パケットを分類する振り分け部と、
     前記受信部によって受信されて前記振り分け部によって分類されたパケットのデータを前記メモリに転送する転送制御部と、
     分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを記憶している記憶部と、
     前記割り込み管理テーブルを参照することにより、前記振り分け部によって分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力する割り込み制御部と、
     前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する設定部と
     を備える通信処理装置。
  2.  前記設定部は、
     前記割り込み管理テーブルに示されていない分類種別のパケットが前記受信部によって受信される場合、前記アプリケーションプログラムからの指示に応じて、前記分類種別と、前記パケットに応じた割り込み制御方法とを関連付けて前記割り込み管理テーブルに追加することにより、当該割り込み管理テーブルを更新する
     請求項1記載の通信処理装置。
  3.  前記設定部は、
     前記アプリケーションプログラムからの指示として、当該アプリケーションプログラムによって確立された通信路を特定するための通信路情報を取得し、前記通信路情報に応じた分類種別および割り込み制御方法を前記割り込み管理テーブルに登録する、
     請求項1記載の通信処理装置。
  4.  前記設定部は、
     前記割り込み管理テーブルに、第1の分類種別および第1の割り込み制御方法を関連付けて登録するとともに、第2の分類種別および第2の割り込み制御方法を関連付けて登録し、
     前記割り込み制御部は、
     前記振り分け部によって分類されるパケットの分類種別が第1の分類種別である場合には、前記割り込み管理テーブルにおいて当該第1の分類種別に関連付けられた第1の割り込み制御方法で、割り込み信号を前記処理ユニットに出力し、
     前記振り分け部によって分類されるパケットの分類種別が第2の分類種別である場合には、前記割り込み管理テーブルにおいて当該第2の分類種別に関連付けられた第2の割り込み制御方法で、割り込み信号を前記処理ユニットに出力する、
     請求項1記載の通信処理装置。
  5.  前記設定部は、
     分類種別と当該分類種別に関連付けられた割り込み制御方法との組み合わせを1つまたは複数個だけ、前記割り込み管理テーブルに登録し、
     前記割り込み制御部は、
     前記割り込み管理テーブルに登録されている1つまたは複数個の組み合わせが、予め定められた組み合わせである場合には、前記割り込み管理テーブルにおいて、前記振り分け部によって分類されるパケットの分類種別に関連付けられている割り込み制御方法と異なる、予め定められた他の割り込み制御方法で割り込み信号を出力する、
     請求項1記載の通信処理装置。
  6.  前記割り込み制御部は、
     前記割り込み管理テーブルに、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として1つだけ登録されている場合には、パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法で割り込み信号を出力する、
     請求項5記載の通信処理装置。
  7.  前記設定部は、
     パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法、パケットのデータが前記メモリに転送されてから予め定められた時間経過し、且つ直前の割り込み信号が出力されてから前記予め定められた時間経過したときに割り込み信号を出力する間隔制限付き遅延割り込み方法、および、予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法の中から、1つまたは複数の方法を前記割り込み制御方法として前記割り込み管理テーブルに登録する、
     請求項1記載の通信処理装置。
  8.  前記転送制御部は、さらに、
     前記振り分け部によって分類されたパケットに関するパケット関連情報を前記割り込み制御部に通知し、
     前記割り込み制御部は、
     前記転送制御部から前記パケット関連情報の通知を受けたときには、前記割り込み管理テーブルにおいて前記パケットの分類種別に関連付けられている割り込み制御方法と前記パケット関連情報とに応じた他の割り込み制御方法を特定し、前記他の割り込み制御方法で前記割り込み信号を出力する、
     請求項1記載の通信処理装置。
  9.  前記設定部は、
     前記分類種別を、当該分類種別を識別するための分類識別子として前記割り込み管理テーブルに登録し、前記割り込み制御方法を、当該割り込み制御方法に一意に定義付けされたトラヒック種別として前記割り込み管理テーブルに登録する、
     請求項1記載の通信処理装置。
  10.  パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理方法であって、
     パケットを受信し、
     受信されるパケットの種類に応じて、複数の分類種別のうちの何れか1つの分類種別に前記パケットを分類し、
     受信されて分類されたパケットのデータを前記メモリに転送し、
     分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを参照することにより、受信されて分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力し、
     前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する、
     通信処理方法。
  11.  パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置を制御する方法であって、
     前記通信処理装置は、割り込み管理テーブルを保持し、パケットを受信して当該パケットのデータをメモリに転送し、前記割り込み管理テーブルにおいて受信されるパケットの種別に関連付けられている割り込み制御方法で、前記パケットに対する割り込み信号を出力し、
     前記通信処理装置を制御する方法では、
     前記通信処理装置を介した通信路を確立し、
     前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に対応するパケットの種別および割り込み制御方法を前記割り込み管理テーブルに登録させて、当該割り込み管理テーブルを更新させる、
     通信処理装置の制御方法。
  12.  前記割り込み信号が出力される要因には、パケットのデータが前記メモリに転送されたことを要因とする受信割り込み要因、または、予め定められた期間が経過したことを要因とするタイマ割り込み要因があり、
     前記通信処理装置の制御方法では、さらに、
     前記割り込み信号を取得し、取得した割り込み信号が前記受信割り込み要因によって出力されたか、前記タイマ割り込み要因によって出力されたかを判定し、
     前記受信割り込み要因によって出力されたと判定したときには、第1の受信処理方法により前記メモリに転送されたデータを処理し、
     前記タイマ割り込み要因によって出力されたと判定したときには、第1の受信処理方法と異なる第2の受信処理方法により前記メモリに転送されたデータを処理する、
     請求項11記載の通信処理装置の制御方法。
  13.  前記割り込み管理テーブルには、
     予め定められた期間ごとに割り込み信号を出力するタイマ割り込み方法が前記割り込み制御方法として登録されてあり、
     前記第2の受信処理方法により前記メモリに転送されたデータを処理するときには、
     前記メモリに転送された前記タイマ割り込み方法の対象とされるパケットのデータの一群に対する処理が制限されるべきか否かを判定し、
     制限されるべきでないと判定したときには、前記一群の全てのパケットのデータを処理し、
     制限されるべきと判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理する、
     請求項12記載の通信処理装置の制御方法。
  14.  前記割り込み管理テーブルには、
     パケットのデータが前記メモリに転送された直後に割り込み信号を出力する即時割り込み方法と、パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法とが、それぞれ前記割り込み制御方法として登録されてあり、
     前記第1の受信処理方法により前記メモリに転送されたデータを処理するときには、
     前記処理ユニットが、前記メモリに転送されたパケットのデータの一群が即時割り込み方法の対象とされるか、遅延割り込み方法の対象とされるかを前記一群のパケットの種別に基づいて判定し、
     即時割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータを処理し、
     遅延割り込み方法の対象とされると判定したときには、前記一群の全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理する、
     請求項12記載の通信処理装置の制御方法。
  15.  前記割り込み管理テーブルには、
     パケットのデータが前記メモリに転送されてから予め定められた時間経過したときに割り込み信号を出力する遅延割り込み方法が前記割り込み制御方法として登録されてあり、
     前記第1の受信処理方法により前記メモリに転送されたデータを処理するときには、
     前記割り込み管理テーブルに割り込み制御方法として前記遅延割り込み方法のみが登録されているか否かを判定し、
     前記遅延割り込み方法のみが登録されていると判定したときには、前記メモリに転送された全てのパケットのデータを処理し、
     前記遅延割り込み方法以外の割り込み制御方法も登録されていると判定したときには、前記メモリに転送された前記遅延割り込み方法の対象とされる全てのパケットのデータのうち、予め定められた数以下のパケットのデータだけを処理する、
     請求項12記載の通信処理装置の制御方法。
  16.  パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置を制御するためのプログラムであって、
     前記通信処理装置は、割り込み管理テーブルを保持し、パケットを受信して当該パケットのデータをメモリに転送し、前記割り込み管理テーブルにおいて受信される前記パケットの種別に関連付けられている割り込み制御方法で、前記パケットに対する割り込み信号を出力し、
     前記プログラムは、
     前記通信処理装置を介した通信路を確立し、
     前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して、前記通信路情報に対応するパケットの種別および割り込み制御方法を前記割り込み管理テーブルに登録させて、当該割り込み管理テーブルを更新させる、
     ことをコンピュータからなる前記処理ユニットに実行させるプログラム。
  17.  パケットを受信して当該パケットのデータをメモリへ転送し、前記データを処理する処理ユニットに割り込み信号を出力する通信処理装置と、前記処理ユニットとを有する通信機器であって、
     前記通信処理装置は、
     パケットを受信する受信部と、
     前記受信部で受信されるパケットの種類に応じて、複数の分類種別のうちの何れか1つの分類種別に前記パケットを分類する振り分け部と、
     前記受信部によって受信されて前記振り分け部によって分類されたパケットのデータを前記メモリに転送する転送制御部と、
     分類種別と、割り込み信号を出力するタイミングに関する割り込み制御方法とを関連付けて示す割り込み管理テーブルを記憶している記憶部と、
     前記割り込み管理テーブルを参照することにより、前記振り分け部によって分類されるパケットの分類種別に関連付けられた割り込み制御方法を特定し、特定した割り込み制御方法で前記割り込み信号を前記処理ユニットに出力する割り込み制御部と、
     前記処理ユニットで起動するアプリケーションプログラムからの指示に応じて、前記割り込み管理テーブルに分類種別および割り込み制御方法を登録することにより、当該割り込み管理テーブルを更新する設定部とを備え、
     前記処理ユニットは、
     前記アプリケーションプログラムを起動し、前記アプリケーションプログラムによって、前記通信処理装置を介した通信路を確立し、前記通信路を特定するための通信路情報を前記通信処理装置に送信することにより、前記通信処理装置に対して前記指示を行なう、
     通信機器。
  18.  請求項17記載の通信機器を備えたテレビ受像機、レコーダ、録画再生装置、セットトップボックス、またはIP(Internet Protocol)通信装置。
PCT/JP2009/002178 2008-05-19 2009-05-18 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器 WO2009141992A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010512937A JP5205454B2 (ja) 2008-05-19 2009-05-18 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器
US12/992,996 US8438323B2 (en) 2008-05-19 2009-05-18 Communication processing apparatus, communication processing method, control method and communication device of communication processing apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008130285 2008-05-19
JP2008-130285 2008-05-19

Publications (1)

Publication Number Publication Date
WO2009141992A1 true WO2009141992A1 (ja) 2009-11-26

Family

ID=41339932

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/002178 WO2009141992A1 (ja) 2008-05-19 2009-05-18 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器

Country Status (3)

Country Link
US (1) US8438323B2 (ja)
JP (1) JP5205454B2 (ja)
WO (1) WO2009141992A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012015630A (ja) * 2010-06-29 2012-01-19 Fujitsu Ltd 半導体装置、パケット受信方法、およびパケット送信方法
JP2020198607A (ja) * 2019-06-03 2020-12-10 オープン スタック, インコーポレイテッド タイマ割り込みサービスルーチンを利用したパケット送信装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009141992A1 (ja) * 2008-05-19 2009-11-26 パナソニック株式会社 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器
US10904144B2 (en) * 2012-12-27 2021-01-26 Sitting Man, Llc Methods, systems, and computer program products for associating a name with a network path
JP6527399B2 (ja) * 2015-06-23 2019-06-05 本田技研工業株式会社 ネットワークを用いた通信システム
JP2017059897A (ja) * 2015-09-14 2017-03-23 株式会社東芝 分類器、通信装置、及び通信方法
TWI633432B (zh) * 2016-12-29 2018-08-21 宏碁股份有限公司 檔案統計方法
CN111400210B (zh) * 2020-03-10 2022-05-06 苏州盛科通信股份有限公司 一种集中式MACsec包处理芯片的中断处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11150564A (ja) * 1997-11-17 1999-06-02 Hitachi Ltd 多重符号化画像音声データの受信装置
JP2003152789A (ja) * 2001-11-14 2003-05-23 Nippon Telegr & Teleph Corp <Ntt> ストリーム中継制御方法、ストリーム中継制御プログラム及びそのプログラムを記録した媒体、並びにストリーム中継制御装置
JP2006041686A (ja) * 2004-07-23 2006-02-09 Fujitsu I-Network Systems Ltd パケット交換機
JP2008059577A (ja) * 2006-08-03 2008-03-13 Matsushita Electric Ind Co Ltd ネットワークチップ及びネットワーク送受信装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2723970B2 (ja) 1989-05-26 1998-03-09 株式会社日立製作所 データ転送制御装置
JP3404322B2 (ja) 1999-05-25 2003-05-06 株式会社エルミックシステム 割込処理方法、os支援システム、情報処理装置、記録媒体
JP2002217971A (ja) 2001-01-18 2002-08-02 Fujitsu Ltd パケット伝送装置及びパケット伝送方法
JP5058991B2 (ja) 2005-06-29 2012-10-24 コンプメディクス リミテッド 導電ブリッジを備えるセンサ・アセンブリ
US7872992B2 (en) * 2005-12-09 2011-01-18 Panasonic Corporation Network system and relay device
US20080031279A1 (en) * 2006-08-03 2008-02-07 Takeshi Hatakeyama Network chip and network transmission/reception device
WO2009141992A1 (ja) * 2008-05-19 2009-11-26 パナソニック株式会社 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器
US20100106874A1 (en) * 2008-10-28 2010-04-29 Charles Dominguez Packet Filter Optimization For Network Interfaces

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11150564A (ja) * 1997-11-17 1999-06-02 Hitachi Ltd 多重符号化画像音声データの受信装置
JP2003152789A (ja) * 2001-11-14 2003-05-23 Nippon Telegr & Teleph Corp <Ntt> ストリーム中継制御方法、ストリーム中継制御プログラム及びそのプログラムを記録した媒体、並びにストリーム中継制御装置
JP2006041686A (ja) * 2004-07-23 2006-02-09 Fujitsu I-Network Systems Ltd パケット交換機
JP2008059577A (ja) * 2006-08-03 2008-03-13 Matsushita Electric Ind Co Ltd ネットワークチップ及びネットワーク送受信装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012015630A (ja) * 2010-06-29 2012-01-19 Fujitsu Ltd 半導体装置、パケット受信方法、およびパケット送信方法
JP2020198607A (ja) * 2019-06-03 2020-12-10 オープン スタック, インコーポレイテッド タイマ割り込みサービスルーチンを利用したパケット送信装置

Also Published As

Publication number Publication date
US20110078353A1 (en) 2011-03-31
JPWO2009141992A1 (ja) 2011-09-29
US8438323B2 (en) 2013-05-07
JP5205454B2 (ja) 2013-06-05

Similar Documents

Publication Publication Date Title
JP5205454B2 (ja) 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器
US7554909B2 (en) Dynamic service management for multicore processors
US7633869B1 (en) Automatic network traffic characterization
EP2959645B1 (en) Dynamic optimization of tcp connections
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
US20170214774A1 (en) Communication traffic processing architectures and methods
JPWO2003017577A1 (ja) 伝送装置および伝送方法
US20150222550A1 (en) Method and system for supporting packet prioritization at a data network
EP1280301A2 (en) Flow based congestion control
WO2014105650A1 (en) Communication traffic processing architectures and methods
US9125089B2 (en) Method and apparatus for packet aggregation in a network controller
CN104052684A (zh) 动态适配计算机网络中的最大传输单元大小的方法和系统
US10855606B2 (en) Information processing apparatus and information processing system
US20050254447A1 (en) Domestic multimedia transmission method and system
JP2013034164A (ja) 中継装置、中継方法
US20190124006A1 (en) Latency correction between transport layer host and deterministic interface circuit
US7969977B2 (en) Processing apparatus and method for processing IP packets
CN111669665B (zh) 媒体流的实时推送方法及服务器
US10887237B2 (en) Advanced load balancing based on bandwidth estimation
US7558288B2 (en) Layer-based multiple data processing apparatus and method
KR101491699B1 (ko) 소프트웨어 정의 네트워킹에서 제어 장치 및 그 동작 방법
US11876698B2 (en) High-speed hardware-based traffic analyzer integration with speed test control application
Madden Challenges Using the Linux Network Stack for Real-Time Communication
WO2022059162A1 (ja) 無線通信システム、無線通信方法及びアクセスポイント装置
JP6568571B2 (ja) データ転送装置、データ転送方法および通信装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09750354

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010512937

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 12992996

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09750354

Country of ref document: EP

Kind code of ref document: A1