WO2004036865A1 - 通信装置及びその応用 - Google Patents
通信装置及びその応用 Download PDFInfo
- Publication number
- WO2004036865A1 WO2004036865A1 PCT/JP2003/012166 JP0312166W WO2004036865A1 WO 2004036865 A1 WO2004036865 A1 WO 2004036865A1 JP 0312166 W JP0312166 W JP 0312166W WO 2004036865 A1 WO2004036865 A1 WO 2004036865A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- packet
- unit
- bucket
- data
- processing
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/165—Combined use of TCP and UDP protocols; selection criteria therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Definitions
- the present invention relates to a communication technology, and in particular, a technology for efficiently processing packets, a technology for efficiently processing data communication using a plurality of communication protocols, and calculating a checksum of a bucket transmitted and received via a network.
- a communication technology and in particular, a technology for efficiently processing packets, a technology for efficiently processing data communication using a plurality of communication protocols, and calculating a checksum of a bucket transmitted and received via a network.
- Internet telephone devices that packetize data obtained by encoding call voice signals and transmit / receive them via a network such as the Internet are receiving attention. It can be used as a video telephone device by sending video images simultaneously with the call voice, and is expected to be a next-generation telephone device that replaces the conventional telephone device.
- TCP / IP is used as a communication protocol for packet communication.
- TCP Transmission Control Protocol I Internet Protocol Power is used for IJ.
- TCP is a communication protocol that places importance on accuracy, such as transmitting and receiving data after establishing a connection between devices.
- the processing is complicated, and there is a time constraint such that the next packet cannot be sent until the other party confirms that the packet has been received. .
- UDP / IP User Datagram
- a network interface device when a network interface device receives a packet, it filters packets addressed to a MAC (Media Access Control) address other than its own device, performs an error check using a CRC (Cyclic Redundancy Check), and then performs all Is sent to the CPU for processing.
- MAC Media Access Control
- CRC Cyclic Redundancy Check
- the method of processing all buckets by software using a CPU has problems such as poor processing efficiency, low speed, and high power consumption.
- the protocol processing is rate-limiting, and the real-time performance may be impaired.
- the CPU is always executing protocol processing during a call, it is difficult to execute other applications in parallel.
- a device equipped with a high-performance CPU such as a personal computer
- there is no problem even if the CPU performs all packet processing because it has sufficient capacity to handle it.
- a relatively low-performance CPU must be installed in order to realize a smaller device, lower cost, and lower power consumption. The issue is how to reduce the processing load on the CPU. Increasing the CPU capacity to increase processing speeds results in increased cost, power consumption, heat generation, etc., and a compromise must be found at the expense of either.
- Some devices that require high speed such as network routers, implement all protocol processing in hardware.
- the method of processing both communication protocols using hardware enables high-speed protocol processing, but the TCP processing that requires complicated processing is also implemented by hardware, which increases the circuit size and costs. There is a problem in terms of power consumption and heat generation.
- TCP and UDP data is packetized and transmitted and received. To check the reliability of the received data, a check sum is given to each bucket.
- the checksum is the one's complement of all the data in the packet. Is stored in the header of the packet. Before transmitting the packet, the transmitting side adds all the data of the packet to calculate a checksum, stores it in the header, and transmits it.
- the receiving side receives the packet, it adds up all the data in the packet and checks whether the result matches the checksum value stored in the header. If they match, it determines that the packet has been successfully received. If they do not match, it determines that the data in the received packet contains an error and discards the packet.
- the transmitting side In the case of TCP, the amount of data that can be transmitted at one time varies depending on the network conditions, the buffer conditions on the receiving side, and the like, and is determined immediately before transmission. Therefore, the transmitting side generally calculates the checksum by reading the data of the packet after the size of the packet to be transmitted next is determined. Then, the checksum is stored in the header of the packet, and after transmitting the header information, the data is read again and transmitted.
- Japanese Patent Application Laid-Open No. 2001-26859 discloses a method for generating a TCP bucket.
- the data to be transmitted by TCP is stored in the TX buffer at once, and when the size of the packet to be transmitted next is determined, the data of that size is read from the TX buffer, the checksum is calculated, and the data is calculated. Store in temporary buffer. Then, after transmitting the header including the checksum, the data is read from the temporary buffer and transmitted.
- data read from the TX buffer for calculating the checksum and data read from the temporary buffer for data transmission are performed in parallel in a pipeline manner. Can improve overhead.
- the present invention has been made in view of such a problem, and an object of the present invention is to provide a technique for efficiently performing packet processing accompanying data communication.
- the communication device includes a receiving unit that receives a packet transmitted via a network, and a transmission unit that transmits the received packet according to a first communication method that requires that a connection be established between the devices prior to data transmission / reception.
- a dedicated circuit for processing the bucket is a dedicated circuit for processing the bucket.
- the communication device includes a receiving unit that receives a bucket transmitted via a network, and, when the received packet is a bucket transmitted by a first communication method for confirming the arrival of a transmission bucket, the packet is transmitted to the receiving unit.
- the general-purpose circuit may be CPU, DSP, or the like.
- the first communication scheme may be, for example, TCP.
- the second communication method may be, for example, UDP.
- the communication device further includes a transmitting unit that transmits a bucket via a network, and when the packet to be transmitted is transmitted by the first communication method, the packet is processed by the general-purpose circuit, and the packet to be transmitted is transmitted.
- the bucket may be processed by the dedicated circuit.
- the communication device may further include a detection unit that detects a communication method in which the received packet is transmitted.
- the detection unit may detect the communication method by referring to the header of the packet.
- This detection unit may also be configured by a dedicated circuit.
- the detection unit has detected a packet transmitted by the first communication method. At this time, the detection unit may send the packet directly to the dedicated circuit without passing through the general-purpose circuit. High-speed processing is realized by performing processing using a dedicated circuit without going through software processing. Also, the processing load on general-purpose circuits such as a CPU can be reduced.
- the communication device may further include a security processing unit that encrypts or decrypts data forming the packet.
- This security processing unit may also be composed of a dedicated circuit.
- the communication device includes a receiving unit that receives a bucket sent via a network, and, when the received bucket is a fragmented packet, sends the packet to a general-purpose circuit to process the packet by software.
- a first determining unit that, when the received bucket is an unfragmented packet, sends the bucket to a first dedicated circuit for processing by the hardware.
- IP packets with options and fragmented IP packets require complicated processing, so if these IP packets are also processed by a dedicated circuit, the circuit scale will increase and consumption will increase. This leads to increased power and costs. For this reason, special IP packets that require more complex processing than ordinary IP packets while processing ordinary IP packets at high speed with dedicated circuits are processed by software using general-purpose circuits such as CPUs. The circuit scale can be reduced, and the power consumption and cost can be reduced.
- the packet processed by the first dedicated circuit is a packet transmitted by a first communication method that requires a connection to be established between devices before transmitting and receiving data
- a packet is sent to the general-purpose circuit
- the bucket processed by the first special-purpose circuit is a bucket sent by the second communication method that does not require the establishment of a connection between devices
- the packet is sent to the hardware.
- the information processing apparatus may further include a second determination unit that sends the data to a second dedicated circuit for processing by the hardware. After the IP processing of the normal IP packet is performed by the IP processing circuit, it is determined whether the bucket is UDP or TCP, and only the UDP packet is processed by the UDP processing circuit.
- the CP bucket may be processed by software using a general-purpose circuit such as a CPU.
- the communication device includes: a determination unit configured to determine whether a packet received via the network is a packet including data requiring real-time processing; a buffer that temporarily holds the packet; A control unit that controls storage of the packet in the buffer, wherein the control unit is configured to, when a free space of the buffer falls below a predetermined threshold, include a packet including data that requires the real-time processing. While storing in the buffer is prohibited while storing buckets that do not include data requiring real-time processing in the buffer.
- the packet received via the network is a packet sent by the first communication method that requires a connection to be established between the devices prior to data transmission / reception, or a connection between the devices.
- a determination unit that determines whether the packet is transmitted by the second communication method that does not require establishment of a packet, a buffer that temporarily holds the packet, and a control that controls storage of the packet in the buffer.
- a control unit wherein when the free space of the buffer falls below a predetermined threshold, the control unit permits storage of the packet sent by the second communication scheme in the buffer, The storage of the packet transmitted by the first communication method in the buffer is prohibited.
- a UDP bucket When transmitting and receiving a voice signal of a telephone device or a video signal of a video telephone device by UDP, a UDP bucket is selectively taken in with priority over a TCP bucket, so that the UDP bucket is discarded and data such as a voice signal of the telephone is transmitted. Data can be reduced.
- the communication device includes: a determination unit that determines a type of a bucket received via a network; a buffer that temporarily stores the bucket; a control unit that controls storage of the bucket in the buffer; The control unit holds a plurality of threshold values for determining whether or not packet storage in the buffer is permitted according to a bucket type, and the bucket type in which the free space of the buffer falls below a threshold value. Is prohibited from being stored in the buffer.
- the threshold value for buckets that require real-time processing and the buckets with high importance may be set lower than the threshold values for other packets. As a result, when the free space in the buffer becomes small, real-time packets and packets with high importance can be preferentially captured, and the possibility of discarding packets can be suppressed.
- Still another embodiment of the present invention relates to a telephone device.
- the telephone device includes an input unit for inputting voice, a communication unit for transmitting voice input from the input unit to another device and receiving voice from another device, and outputting a voice received from another device.
- An output unit that receives a packet transmitted via a network; a detection unit that detects a communication method of the received packet; and a data transmission and reception method.
- a general-purpose circuit for processing the packet by software and the communication method requires that a connection be established between devices.
- a dedicated circuit for processing the packet when the second communication method is not used, and the voice is transmitted and received by the second communication method.
- the output unit may be a speaker, and the input unit may be a microphone.
- the video telephone includes an input unit for inputting an image and a voice, a communication unit for transmitting the image and the voice input by the input unit to another device, and receiving an image and a voice from the other device, An output unit that outputs images and sounds received from the device, wherein the communication unit receives a bucket transmitted via a network, and a detection unit detects a communication scheme of the received bucket.
- the communication method is the first communication method that requires establishing a connection between devices prior to data transmission / reception, a general-purpose circuit for processing the bucket by software; and When the second communication method does not require the establishment of a connection between devices, the bucket is processed. And a dedicated circuit for transmitting and receiving the image and the sound by the second communication method.
- the imaging device includes: an imaging unit that captures an image; and a communication unit that transmits an image captured by the imaging unit to another device and receives an image from another device.
- the communication unit includes a network.
- a receiving unit that receives a bucket transmitted via a network, a detecting unit that detects a communication scheme of the received bucket, and the communication scheme requires that a connection be established between the devices prior to data transmission / reception.
- a dedicated circuit for processing a packet wherein the image is transmitted and received by the second communication method.
- Yet another embodiment of the present invention relates to a communication method.
- the method includes the steps of: when a packet is received, detecting a communication scheme of the packet; and transmitting bucket data to a circuit to process the bucket according to the communication scheme.
- the detecting step by analyzing a packet header, it is determined whether the packet is a bucket according to the first communication method which needs to establish a connection between devices prior to data transmission / reception, or a connection between devices. Detecting whether the packet is a bucket according to a second communication method that does not require establishment, and transmitting the data, transmitting the packet according to the first communication method to a general-purpose circuit for software processing, The bucket according to the communication method may be sent to a dedicated circuit for processing the packet.
- the step of detecting detects whether the packet is a fragmented packet or a non-fragmented packet by analyzing a header of the packet, and the step of transmitting the data includes: May be sent to a general-purpose circuit for software processing, and the unfragmented packet may be sent to a dedicated circuit for processing the packet.
- Data that does not require real-time properties may be transmitted and received by the first communication method, while stream data that requires real-time properties may be transmitted and received by the second communication method.
- Data that requires real-time processing is data that is subject to time constraints.
- Data that does not require real-time means data that is not subject to time restrictions.
- the stream data may be, for example, call audio data, video data, and the like.
- Yet another embodiment of the present invention relates to a communication method.
- This method includes the steps of: when a packet is received, detecting the type of the packet; and determining whether to permit or not to store the bucket in a buffer for temporarily storing the bucket based on conditions set for each type. Determining, storing the packet in the buffer when storage is permitted, and discarding the packet when storage is not permitted.
- the packet processing device includes: a buffer that temporarily holds a small bucket obtained via a network; and a write control unit that controls storage of the packet in the buffer. Destination address information of the packet header information is discarded and stored in the reception buffer.
- the destination MAC address stored in the MAC header of the packet is unnecessary for the subsequent bucket processing after the bucket is received, and by discarding this, the buffer use efficiency can be improved. it can.
- the write control unit may store, instead of the destination address information, management information including transmission type information indicating whether the packet was transmitted by broadcast, multicast, or broadcast.
- the management information may further include bucket type information indicating a type of the packet, and address information indicating a storage position of a next bucket.
- the write control unit may store the management information in one word, shape subsequent data in units of code, and store the shaped data in the buffer.
- the MAC header is a 32-bit code, 3.5 bits, and is odd size, so if it is stored in the buffer as it is, all subsequent data will be shifted by half a word. Therefore, by discarding the 1.5-word destination MAC address and storing it in the buffer, subsequent data can be aligned in units of code. At this time, even if management information necessary for packet processing is added for one word, Good. This makes handling both hardware and software easier.
- Still another embodiment of the present invention also relates to a packet processing device.
- the packet processing device includes: a buffer that temporarily holds a packet acquired via a network; and a read control unit that controls reading of the packet from the buffer. Independent registers are assigned to enable random access, while the data portion of the bucket is read out via an access port register.
- an independent register is allocated so that the header information can be easily accessed.
- the data portion only needs to be copied to the transfer destination once the transfer destination is determined, so the access port register allows access without management of the pointer.
- the read control unit may set a position at which the access port register starts reading according to a type of a packet to be read. For example, the read start position is automatically set at the start position of the MAC data in the MAC packet and at the start position of the IP data in the IP packet. As a result, the processing load of the CPU can be further reduced.
- a header analysis unit that discards unnecessary packets by analyzing the header information before storing the bucket in the buffer; and calculates a checksum before storing the bucket in the buffer. And a checksum calculation unit that verifies whether or not the check sum value matches the checksum value stored in. As a result, the CPU can perform processing on the assumption that the packet held in the buffer is a valid packet.
- Still another embodiment of the present invention relates to a telephone device.
- the telephone device includes an input unit for inputting voice, a communication unit for transmitting voice input from the input unit to another device and receiving voice from another device, and outputting a voice received from another device.
- An output unit that receives a packet transmitted via a network; and a packet processing unit that processes the received packet.
- a buffer that temporarily stores the packet; and a write control unit that controls storage of the packet in the buffer, wherein the write control unit is configured to control the header information of the packet.
- the destination address information is discarded and stored in the reception buffer.
- the telephone device includes an input unit for inputting voice, a communication unit for transmitting voice input from the input unit to another device and receiving voice from another device, and outputting a voice received from another device.
- An output unit that receives a packet sent via a network; and a packet processing unit that processes the received packet.
- the packet processing unit includes: A buffer for temporarily holding a packet; and a read control unit for controlling reading of the bucket from the buffer, wherein an independent register is assigned to each of the header portions of the packet to enable random access.
- the data portion of the bucket is configured to be read through an access port register.
- Yet another embodiment of the present invention relates to a packet processing method.
- the packet when a packet is received, the packet is temporarily stored in a buffer, and prior to the storing, the destination address information in the packet header information is discarded. And b.
- Still another preferred embodiment according to the present invention relates to a checksum calculation method.
- this method in order to provide a checksum to a data block whose data length is determined at a predetermined timing, prior to the timing, the data unit including the data block is provided for each predetermined length of the data unit. The accumulated value of the checksum from the top is calculated and stored in the storage device.
- the data block may be, for example, a payload in TCP.
- the data length of the CP packet is determined immediately before transmission, but by storing the cumulative value of the checksum for each predetermined length in advance, when the data length is determined, the cumulative value before and after the data block is stored. By using the value, the checksum of the packet can be calculated in a short time.
- the accumulated value before and after the data block may be read from the storage device to calculate a checksum of the data block.
- the accumulated value of the checksum up to the data immediately before the data block and the accumulated value of the checksum up to the last data of the data block are read out from the storage device, and the difference between them is calculated. It may be a checksum.
- Still another preferred embodiment according to the present invention relates also to a checksum calculation method.
- the data unit including the data block is divided into a predetermined length, The checksum value is calculated for each part and stored in the storage device.
- the data length of the data block may be limited to be an integral multiple of the predetermined length.
- the communication device includes: an input unit that receives an input of a data unit; a calculation unit that calculates an accumulated value of a checksum from the beginning of the data unit; and an accumulation unit that calculates the accumulated value for each predetermined length of the data unit. And a holding unit for holding.
- the data unit is divided into a plurality of data blocks, and an output unit that sends the data block via a network, a size control unit that controls the size of a data block that is sent next, and A second calculating unit that reads the accumulated value before and after the data block from the holding unit and calculates a check sum of the data block.
- the holding unit holds, for each predetermined length, the accumulated value of the checksum from the beginning of the data unit.
- a checksum of the entire data cut may be held.
- the communication method in which the size of the data block to be transmitted is not predetermined may be, for example, TCP, and the communication method in which the size of the data block to be transmitted is predetermined may be, for example, UDP.
- FIG. 1 is a diagram illustrating an overall configuration of an Internet telephone device as an example of a communication device according to the first embodiment.
- FIG. 2 is a flowchart illustrating a procedure of the communication method according to the first embodiment.
- FIG. 3 is a diagram illustrating an overall configuration of a video telephone device as an example of a communication device according to the second embodiment.
- FIG. 4 is a diagram illustrating the overall configuration of a digital camera as an example of the communication device according to the third embodiment.
- FIG. 5 is a diagram illustrating an overall configuration of a video telephone device as an example of a communication device according to the fourth embodiment.
- FIG. 6 is a diagram illustrating an overall configuration of a digital camera as an example of a communication device according to the fifth embodiment.
- FIG. 7 is a diagram illustrating an overall configuration of an Internet telephone device as an example of a communication device according to a sixth embodiment.
- FIG. 8 is a diagram showing the bucket receiving unit of the Internet telephone device according to the sixth embodiment. It is a figure showing an internal configuration.
- FIG. 9 is a flowchart showing a bucket receiving procedure according to the sixth embodiment.
- FIG. 10 is a diagram showing an internal configuration of an IP determining unit of the Internet telephone device according to the sixth embodiment.
- FIG. 11 is a flowchart illustrating a packet processing procedure according to the sixth embodiment.
- FIG. 12 is a diagram showing the overall configuration of an Internet telephone device as an example of the communication device according to the seventh embodiment.
- FIG. 13 is a diagram showing the internal configuration of the protocol engine according to the seventh embodiment.
- FIG. 14 is a diagram showing internal data of the host table according to the seventh embodiment.
- FIG. 15 is a diagram illustrating the internal configuration of the write control unit and the read control unit according to the seventh embodiment.
- FIG. 16 is a diagram showing a manner in which bucket data is shaped by the write control unit.
- FIG. 17 is a diagram illustrating an overall configuration of an Internet telephone device as an example of a communication device according to the eighth embodiment.
- FIG. 18 is a diagram showing the internal configuration of the TCP ZUDP processing unit in FIG.
- FIG. 19 is a diagram illustrating an example of internal data in the data storage unit and the checksum storage unit.
- FIG. 20 is a flowchart showing the procedure of the checksum calculation method according to the eighth embodiment.
- FIG. 1 is an Internet as an example of a communication device according to the first embodiment of the present invention. 1 shows the overall configuration of a portable telephone device 100.
- the Internet telephone device 100 is a device for making a call with another Internet telephone device 100 via the Internet 20.
- the Internet telephone device 100 is mainly composed of a CPU 110 as a general-purpose circuit for executing software processing, a memory 120 used as a program area or a park area, and a bucket via the Internet 20.
- Network interface section 130 for transmitting and receiving signals, microphone 150 for inputting audio signals, speaker 160 for outputting audio signals, codec processing section 140 for performing compression encoding and decoding of audio signals, communication It has a protocol processing unit 170 that performs various processes according to the protocol, and a path 102 that electrically connects these components.
- audio signals are transmitted and received using UDP as a communication protocol of a transport layer.
- UDP is a communication method that does not require connection establishment and can send out packets one after another, so protocol processing is easy and high-speed communication is possible. Suitable for real-time communication.
- the processing of the packet sent by UDP is performed by the protocol processing unit 170, which is a dedicated circuit, thereby further improving the processing speed, and Real-time transmission and reception of
- the packets transmitted and received by the Internet telephone device 100 are processed by the software using the CPU 110.
- the software processing by general-purpose circuits is not provided, and the increase in circuit scale is suppressed, and the increase in cost, power consumption, and heat generation is minimized. it can.
- the circuit area and the power consumption are about 13 as compared with the case where both TCP and UDP are processed by a dedicated circuit.
- the bucket received by the network interface unit 130 is sent to the IP processing unit 178 of the protocol processing unit 170.
- the IP processing unit 1778 determines whether the packet is addressed to the IP address assigned to the bucket Only the packet destined for the device is sent to the protocol detector 176.
- the protocol detector 176 detects the protocol type by referring to the P ROT indicating the protocol type in the IP header attached to the packet, or by referring to the TCP header or the UDP header. If the packet is a packet sent by TCP, the data of the packet is sent on bus 102 and processed by software by CPU 110. If the packet is a UDP packet, the data of the packet is sent to the UDP processing unit 174, and processed by a circuit provided exclusively for processing the UDP data.
- the 110? Processing unit 174 is a dedicated circuit for processing a UDP packet, receives a UDP packet, analyzes its header, and performs necessary processing.
- the security processing unit 172 performs processing such as decryption of the encryption when security measures such as encryption processing are applied to the data.
- the decoded data is sent to codec processing section 140.
- the codec processing section 140 decodes the communication voice signal that has been compression-encoded and outputs the decoded signal to the speaker 160.
- real-time performance is more important than accuracy, and call voice data that needs to be constantly processed during a call is transmitted and received by UDP. While hardware processing is performed by the processing unit 174, data for which accuracy is more important than real-time processing is transmitted and received by the TCP, and software processing is performed by the CPU 110. This makes it possible to process call voice data at a high speed while suppressing the increase in circuit complexity, circuit size, cost, power consumption, and heat generation. These advantages become more pronounced when a large amount of data needs to be processed simultaneously, such as when talking with multiple parties at the same time or transmitting images with the voice of the call.
- the type of the bucket is detected by the protocol detecting unit 176, and the subject of the bucket processing can be selected quickly and appropriately. Furthermore, the processing load on the CPU 110 can be reduced, lowering costs and power consumption can be achieved, and the CPU 110 has more available power, allowing other applications to be executed during a call. It can also provide new services.
- the operation when a packet is received has been described above. Next, the operation when the audio signal input from the microphone 150 is converted into a bucket and transmitted will be described.
- the audio signal input from microphone 150 is sent to codec processing section 140, where it is encoded.
- the encoded signal is, if necessary, encrypted by the security processing unit 172, sent to the UDP processing unit 174, attached with a UDP header, and packetized. This UDP packet is sent to the Internet 20 via the network interface unit 130.
- FIG. 2 is a flowchart illustrating a procedure of a communication method according to the present embodiment.
- the network interface unit 130 receives the packet (S100)
- the IP processing unit 178 performs processing, and then the protocol detection unit 176 detects whether the packet is a UDP packet or a TCP packet (S102). If it is a UDP packet
- the packet processing is performed by the UDP processing unit 174, which is a dedicated circuit for processing UDP packets (S302). If the packet is a TCP packet (N in S102), the packet processing is performed by the CPU 110, which is a general-purpose circuit (S106). After that, necessary processing is performed according to the type of data.
- the telephone device has been described as an example, but the technology of the present embodiment is applicable to all communication devices that transmit and receive stream data, such as a computer and a mobile phone.
- Circuits having the functions of the IP processing unit 178, the protocol detection unit 176, and the UDP processing unit 174 may be mounted on one semiconductor substrate. Further, circuits such as a security processing unit 172, a codec processing unit 140, and a CPU 110 may be mounted. As a result, the size, weight, and speed of the communication device can be reduced.
- data communication using a plurality of communication protocols can be efficiently processed.
- high-speed, real-time communication can be realized with a relatively simple circuit configuration.
- FIG. 3 shows an overall configuration of a video telephone 200 as an example of a communication device according to the second embodiment.
- the video telephone device 200 according to the present embodiment is the same as the video telephone device 200 shown in FIG.
- an image input unit 180 as an example of an input unit and a display device 190 as an example of an output unit are provided.
- Other configurations are the same as in the first embodiment.
- the same components are denoted by the same reference numerals.
- image data is also transmitted and received by UDP.
- the image input unit 180 inputs an image to be transmitted to the other party together with the call voice.
- the image input unit 180 may input an image from an external camera, a video playback device, or the like, or may capture an image by itself as an imaging device.
- the input image is sent directly to the codec processing unit 140 and encoded, shaped into a UDP packet by the UDP processing unit 174, and sent to the Internet 20 by the network interface unit 130. Sent out.
- the display device 190 displays the image received from the other party together with the call voice.
- the image data included in the UDP bucket received by the network interface unit 130 is processed by the 110 processing unit 174, the security processing unit 172, and the codec processing unit 140, and the codec processing unit 14 Image data is sent directly from 0 to the display device 190 and displayed.
- FIG. 4 shows an overall configuration of a digital camera 300 as an example of a communication device according to the third embodiment.
- the digital camera 300 of the present embodiment has a telephone communication function.
- a display device 190 In addition to the configuration of the Internet telephone device 100 of the first embodiment shown in FIG. And a display device 190.
- Other configurations are the same as those in the first embodiment.
- the same components are denoted by the same reference numerals.
- the imaging unit 1822 includes an imaging device such as a CCD and a configuration for controlling the imaging device, and captures a still image or a moving image.
- the captured image is directly transmitted to the codec processing unit 140 and encoded, shaped into a UDP packet by the UDP processing unit 174, and transmitted to the Internet 20 by the network interface unit 130. You.
- the display device 190 displays the image received from the other party together with the call voice.
- the image data included in the UDP bucket received by the network interface unit 130 includes a UDP processing unit 174, a security processing unit 172, and a codec processing unit 154.
- the image data is directly transmitted to the codec processing unit 140 and the display device 190 for display.
- FIG. 5 shows an overall configuration of a video telephone 200 as an example of a communication device according to the fourth embodiment.
- the video telephone 200 of the present embodiment is different from the video telephone 200 of the second embodiment shown in FIG. 3 in that an image input unit 180 and a display 190 Instead of being directly connected to the processing unit 140, it is connected to the bus 102.
- Other configurations are the same as those in FIG. 3, and the same configurations are denoted by the same reference numerals.
- the image input by the image input unit 180 is stored in the memory 120, read out as appropriate, and encoded by the codec processing unit 140.
- the encoded image data is shaped into a UDP bucket by the UDP processing unit 174 and sent to the Internet 20 by the network interface unit 130.
- the image data included in the UDP packet received by the network interface unit 130 is processed by the UDP processing unit 174, the security processing unit 172, and the codec processing unit 140, and the bus 10 It is sent to the display device 190 via 2 and displayed.
- FIG. 6 shows an overall configuration of a digital camera 300 as an example of a communication device according to the fifth embodiment.
- the digital camera 300 of the present embodiment is different from the digital camera 300 of the third embodiment shown in FIG. It is not connected directly to 40, but to path 102.
- Other configurations are the same as those in FIG. 4, and similar configurations are denoted by the same reference numerals.
- the image captured by the imaging unit 1822 is held in the memory 120, read out as appropriate, and encoded by the codec processing unit 140.
- the encoded image data is shaped into a UDP bucket by the UDP processing unit 174 and sent to the Internet 20 by the network interface unit 130.
- the image data included in the UDP bucket received by the network interface unit 130 is sent to the UDP processing unit 1 74, processed by the security processing section 172 and the codec processing section 140, sent to the display device 190 via the bus 102, and displayed.
- FIG. 7 shows an overall configuration of an Internet telephone device 100 as an example of a communication device according to the sixth embodiment.
- the Internet telephone device 100 of the present embodiment has an IP discriminating unit 186 and a packet receiving unit 1 in addition to the configuration of the Internet telephone device 100 of the first embodiment shown in FIG. 92, and a UDP discriminator 184 in place of the protocol detector 176.
- Other configurations are the same as those in FIG. 1, and the same components are denoted by the same reference numerals.
- the processing speed is improved by processing UDP packets including voice signals by dedicated hardware, thereby improving the processing speed and improving the voice communication performance.
- this embodiment proposes a technology for further improving real-time performance.
- the bucket receiving unit 192 stores a packet containing data that requires real-time properties in the receive buffer 193 in preference to a bucket that does not require real-time properties.
- a predetermined threshold storage in the reception buffer 193 is prohibited, and only packets that require real-time characteristics can be stored. As a result, it is possible to suppress the possibility that the reception of a bucket that requires real-time processing is delayed or the bucket is discarded and data is lost.
- the IP discriminating unit 186 discriminates a special packet requiring complicated processing from among the IP packets, and sends the bucket 1 to the CPU 110 for processing by software, while a normal IP bucket is used. Is sent to the IP processing unit 178 to be processed by hardware. This makes it possible to process normal IP packets at high speed by dedicated hardware while avoiding an increase in hardware scale, complexity, and power consumption of the IP processing unit 178. Details of each technology will be described later with reference to the drawings.
- FIG. 8 shows the internal configuration of the bucket receiving section 192.
- the control unit 1 95 It includes an address management section 196, a write position management section 197, and a buffer saturation detection section 198.
- the reception buffer 193 of the present embodiment is configured by a FIFO (First In First Out) memory, and the read position management unit 196 is a register for holding a read address of the reception buffer 193.
- the write position management unit 197 is a register for holding the write address of the reception buffer 193.
- the buffer saturation detector 198 holds a plurality of thresholds for determining whether or not writing to the reception buffer 193 is permitted.
- the threshold value is set according to the packet type. When the free space of the reception buffer 193 falls below the threshold value for a certain bucket type, the bucket of that type is written to the reception buffer 193. And discard the received packet.
- the threshold value for determining whether to permit a packet that requires real-time processing is set to It is set lower than the threshold value for judging permission for buckets that do not require a password. For example, if the threshold value for a bucket that requires real-time processing is 0 and the threshold value for a packet that does not require real-time processing is 50% of the buffer size, buffer saturation detection If the free space of the buffer 1993 falls below 50%, packets that do not require real-time processing are judged to be saturated and the writing is prohibited, while packets that do not require real-time processing are prohibited. Determines that there is free space and permits writing.
- both the packets that require real-time processing and the buckets that do not require real-time processing can be stored in the reception buffer 1993. If it falls below 0%, only buckets that require real-time processing will be stored.
- the packet determination unit 194 determines whether the received packet is a TCP packet or a UDP packet. If the received packet is a TCP packet, the packet determination unit 194 determines whether the received packet is a packet that does not require real-time processing. If the bucket is a UDP bucket, a determination is made as to whether the bucket requires real-time processing. The bucket discriminator 194 stores the packet permitted to be stored in the reception buffer 193, and discards the packet rejected to be stored.
- TCP for example, when a data file is transferred by FTP (File Transfer Protocol), a large number of packets may be received at one time. You may not be able to receive. Since UDP packets including audio signals need to be played back in real time, UDP packets are given priority to use the receive buffer 193, thereby minimizing data loss due to packet discarding. . Since UDP does not perform retransmission control, once a packet is discarded, it cannot be obtained again. However, TCP performs retransmission control, so it is possible to compensate for missing data by retransmission.
- FTP File Transfer Protocol
- Buckets requiring real-time processing can be preferentially received by one receive buffer 193, so the hardware size is reduced and power consumption is reduced compared to the case where two receive buffers 193 are provided. be able to.
- a threshold value may be set based on not only the presence / absence of the real-time property but also other viewpoints, and the priority of storage in the reception buffer 193 may be determined. For example, the threshold value of a packet that is high in importance and that does not allow data loss may be set lower than the threshold values of other buckets, and may be preferentially captured. Packet discriminator 1 94 holds the threshold, and buffer saturation detector The remaining amount of the reception buffer 193 may be obtained from the 198 to determine whether writing to the reception buffer 193 is permitted.
- FIG. 9 is a flowchart showing a procedure for receiving a bucket according to the present embodiment.
- the bucket discriminating unit 194 discriminates whether or not the packet includes data that requires real-time processing (S202). If the packet is a real-time packet (Y in S202), it is determined whether or not the packet can be stored in the reception buffer 1993 using the threshold set for the real-time packet (S202). 204). If the packet is not a real-time packet (3 ⁇ 2 ⁇ 2), it is determined whether the packet can be stored in the receive buffer 1993 using the threshold set for the non-real-time packet. (S206). If the storage of the received bucket in the reception buffer 193 is permitted ( ⁇ of 208), the packet is stored in the reception buffer 193 (S210), and the storage is permitted. If not (N in S208), the packet is discarded (S212).
- FIG. 10 shows the internal configuration of the IP discriminating unit 186.
- the IP determining unit 186 as an example of the first determining unit includes an IP header detecting unit 187, an IP header determining unit 188, and a bucket output switching unit 189.
- the IP header detector 187 detects the IP header of the bucket acquired from the bucket receiver 192 and sends it to the IP header determiner 188.
- the IP header determination unit 188 refers to the IP header and the like, determines whether the packet is a normal IP packet, or whether it is a special IP packet requiring complicated processing, and outputs the determination result as a bucket. Notify the switching unit 18 9.
- Special IP packets may be, for example, IP packets with options, fragmented IP packets, etc.
- the packet output switching unit 189 switches the output destination of the IP bucket acquired by the IP header detection unit 187 based on the judgment result of the IP header judgment unit 188.
- the packet output switching unit 189 outputs an ordinary IP packet to the IP processing unit 178 as an example of a first dedicated circuit in order to process the normal IP packet by hardware, and outputs a special IP bucket requiring complicated processing.
- CPU 110 as an example of a general-purpose circuit via a bus interface for processing by software Output to
- Fragmented IP buckets require more complex processing than normal IP processing, such as managing bucket order and processing when missing or duplicated.
- an IP bucket with options requires processing according to the options attached. If such exceptional processing is to be realized by hardware, the circuit scale will increase, resulting in an increase in cost and power consumption. Therefore, cost / power consumption is reduced by providing only hardware that can process only normal IP packets.
- the bucket processed by the IP processing unit 178 is sent to a UDP determination unit 184 as an example of a second determination unit.
- the UDP discriminator 184 discriminates whether the received packet is a TCP packet or a UDP packet.
- the UDP packet is processed by hardware by the UDP processor 174 as an example of the second dedicated circuit, while the TCP
- the bucket is subjected to software processing by the CPU 110 as an example of a general-purpose circuit.
- the UDP discriminator 184 has the same function as the protocol detector 176 in the first embodiment. However, in the present embodiment, the type of the transport layer communication method in the communication protocol is different. This name is used to clearly indicate the discrimination.
- the type of the IP bucket can be detected by the IP discriminating unit 186, and the processing subject of the bucket can be selected quickly and appropriately.
- ordinary IP buckets including data that requires real-time processing such as call voice are processed at high speed by the IP processing unit 178, which is a dedicated circuit.
- the IP processing unit 178 which is a dedicated circuit.
- FIG. 11 is a flowchart illustrating a packet processing procedure according to the present embodiment.
- the IP discriminating unit 186 discriminates whether or not the packet is a normal IP bucket (S302). If the packet is a normal IP bucket (Y in S302), the IP packet processing is performed by the IP processing unit 178 which is a dedicated circuit (S304). Fragmented I If the packet is a special IP packet that requires complicated processing such as a P packet (N in S302), it is sent to the general-purpose circuit CPU110, where the packet processing is performed by software (S310). .
- the 110 judging unit 184 judges whether the packet processed by the IP processing unit 178 is a UDP packet (S306).
- the packet is a UDP packet (3306)
- a UDP bucket process is performed by the UDP processing unit 174, which is a dedicated circuit.
- the packet is a TCP packet (N in S306)
- the packet is sent to the CPU 110, which is a general-purpose circuit, and bucket processing is performed by software (S310).
- data communication using a plurality of communication protocols can be efficiently processed.
- high-speed, real-time communication can be realized with a relatively simple circuit configuration.
- FIG. 12 shows an overall configuration of an Internet telephone device 100 as an example of a communication device according to a seventh embodiment of the present invention.
- the Internet telephone device 100 is a device for making a call with another Internet telephone device 100 via the Internet 20.
- the Internet telephone device 100 is mainly composed of a CPU 110 as a general-purpose circuit for executing software processing, a memory 120 used as a program area or a work area, and a network for transmitting and receiving a bucket via the Internet 20.
- Interface section 130 microphone 150 for inputting audio signals, speaker 160 for outputting audio signals, codec processing section 140 for performing compression encoding and decoding of audio signals, encryption processing of communication data or
- the security processing unit 172 that performs decryption processing, etc.
- the UDP processing unit 174 that is a dedicated circuit for processing UDP buckets, the protocol engine 50 that performs various processing according to the communication protocol, and the configuration of these components are electrically connected.
- a bus 102 is provided for connection to a computer.
- the Internet telephone device 100 of the present embodiment is configured by dedicated hardware before transferring a packet to the CPU 110, instead of leaving the processing of the received bucket to only the CPU 110.
- Protocol engine 50 header analysis, Since processing such as error checking and data alignment is performed, there is no need for the CPU 110 to perform useless bucket processing, and the processing load is greatly reduced.
- the Internet telephone device 100 of the present embodiment transmits and receives voice signals using UDP.
- UDP is a communication method that can send out buckets one after another without establishing a connection, so that protocol processing is simple and high-speed communication is possible. Suitable for real-time communication.
- the processing of UDP packets is performed by the UDP processing unit 174, which is a dedicated circuit, thereby further improving the processing speed and real-time transmission and reception of call voice. To achieve.
- the packets transmitted and received by the Internet telephone device 100 are processed by software using the CPU 110.
- dedicated circuits are not provided and software processing is performed by general-purpose circuits, thereby suppressing an increase in circuit size and minimizing increases in cost, power consumption, and heat generation. be able to.
- the circuit area and the power consumption are only about one-third as compared with the case where both TCP and UDP are processed by the dedicated circuit.
- cooperative processing is performed by dedicated hardware and general-purpose software, thereby satisfying the trade-off demands of faster processing and reduced circuit scale.
- the bucket received by the network interface unit 130 is sent to the protocol engine 50.
- the protocol engine 50 determines whether the packet is addressed to the IP address assigned to the own device, passes only the packet addressed to the own device, and discards other packets. In addition, the protocol type is detected by referring to the header information attached to the packet. If the packet is a packet transmitted by TCP, the data of the packet is transmitted to the bus 102 and the CPU 1 10 Software processing. If the packet is a UDP packet, the packet data is sent to the UDP processing unit 174, and processed by a circuit provided exclusively for the processing of the UDP packet.
- Processing unit 174 is a dedicated circuit for processing a UDP packet, Receives a DP packet, analyzes its header, and performs necessary processing.
- the security processing unit 172 performs processing such as decryption of encryption when security measures such as encryption processing have been applied to data.
- the decoded data is sent to the codec processing unit 140.
- the codec processing section 140 decodes the communication voice signal which has been compression-encoded, and outputs it to the speaker 160.
- UDP Data is sent and received by UDP, and hardware processing is performed by the UDP processing unit 174, which is a dedicated circuit. Perform wear processing. As a result, it becomes possible to process call voice data at high speed while suppressing an increase in circuit complexity, circuit size, cost, power consumption, heat generation, and the like. These advantages become more pronounced when a large amount of data needs to be processed simultaneously, such as when talking with multiple parties at the same time or transmitting images with the voice of the call.
- the type of the packet can be detected by the protocol engine 50, and the processing entity of the packet can be selected quickly and appropriately.
- the processing load on the CPU 110 can be reduced, cost and power consumption can be reduced, and the CPU 110 has more available power, allowing other applications to be executed during a call. New services can also be provided.
- the operation when the packet is received has been described above. Next, the operation when the audio signal input from the microphone 150 is bucketed and transmitted will be described.
- the audio signal input from the microphone 150 is sent to the codec processing unit 140 and encoded.
- the encoded signal is, if necessary, encrypted by the security processing unit 172 and then sent to the UDP processing unit 174, where it is attached with a UDP header and packetized.
- This UDP packet is provided with header information such as a checksum value by the protocol engine 50 and transmitted to the Internet 20 via the network interface 130.
- FIG. 13 shows the internal configuration of the protocol engine 50. 1? Control unit 202 Network interface 1 30 ARP addressed to its own IP address
- ARP Address Resolution Protocol
- MAC address Address Resolution Protocol
- ARP packets are also processed by software using the CPU 110.
- the ARP control unit 202 automatically responds without passing through the CPU 110, thereby reducing the burden on the CPU 110. Can be greatly reduced, and task switches due to interrupts can be reduced.
- the header analysis unit 210 analyzes the header information of the bucket, discards unnecessary packets, and performs processing for passing only necessary packets. For example, only buckets addressed to the IP address of the own device are passed, and buckets addressed to other IP addresses are discarded.
- packets of a communication method other than the IP may be discarded.
- a specific packet may be detected and sent to a dedicated circuit that processes the packet.
- the header analyzing unit 210 detects the UDP packet by analyzing the header information, and detects the UDP packet.
- the UDP bucket is directly transferred to the UDP processing unit 174 without passing through the CPU 110. At this time, it is possible to discard the header information and send only the data part. As a result, only packets requiring software processing can be processed by the CPU 110, so that the processing load on the CPU 110 can be reduced. Further, by processing the packet by using dedicated hardware as needed, the processing speed can be increased.
- the checksum calculator 212 calculates the checksum of the packet and verifies whether or not the checksum matches the checksum value stored in the header. If there is a match, the packet is passed. If not, the packet is discarded. Conventionally, the CPU 110 verifies the checksum. However, as in the present embodiment, the checksum is verified by a dedicated circuit before being sent to the CPU 110, so that the CPU 110 can verify the checksum. To avoid processing unnecessary buckets and reduce the processing load of CPU1 Can be reduced.
- the write control unit 220 stores the bucket that has passed through the header analysis unit 210 in the reception buffer 230. Packets for which an error has been detected by the checksum calculator 2 12 are discarded without being stored in the receive buffer 230, but while the checksum calculator 2 12 calculates the checksum, the receive buffer 2 It is more efficient to write to receive buffer 230 in parallel than to wait for writing to 30. Therefore, the write control unit 220 writes the bucket that has passed through the header analysis unit 210 into the reception buffer 230 without waiting for the result of verification by the checksum calculation unit 212, and checks If an error is detected by the verification by the sum calculation unit 211, the written packet is erased and the write pointer is restored.
- the read control unit 240 controls reading of the reception bucket stored in the reception buffer 230. Details of the configuration and operation of the write control unit 220, the reception buffer 230, and the read control unit 240 will be described in detail with reference to FIG.
- the checksum generator 280 calculates the checksum of the transmission packet. Since the packet size of a UDP packet is determined at the time it is entered into the transmission queue, the checksum of the data section is calculated and held in advance by the checksum generation section 280, and the header synthesis section 2 transmits the packet when the packet is transmitted. 5 Checksum value is set in the header by 0. Since the packet size of a TCP packet is determined at the time of packet transmission, it is not possible to calculate the checksum value of the data section in advance, but calculate and store the checksum accumulated value for each predetermined interval. This simplifies the checksum calculation process when transmitting a packet. If the bucket size of the TCP bucket is limited to an integral multiple of the section for calculating the cumulative checksum value, the checksum value for the data section can be obtained by simply subtracting the cumulative checksum value before and after the section for the data section.
- the first transmission buffer 270 stores a transmission bucket of which transmission destination MAC address is unresolved.
- the second transmission buffer 272 stores transmission packets of which transmission destination MAC address is known among transmission packets.
- the ARP interface 260 does not know the MAC address of the transmission destination stored in the first transmission buffer 270.
- ARP packets are generated and broadcast to the network in order to resolve the MAC address of such packets. Since the bucket cannot be transmitted until the response of the ARP packet returns, the first transmission buffer 270 is provided separately from the bucket queue that does not require address resolution, and the second transmission buffer 272 is maintained during that time. Sends a transmission bucket that does not require address resolution during standby.
- the resolved MAC address is set, the packet in the first transmission buffer 270 is transmitted, and then the ARP packet is transmitted for the waiting packet. Then, the packet in the second transmission buffer 272 is transmitted again until a response is returned.
- the entire transmission waiting time can be reduced, and packets can be transmitted efficiently. Even if the destination MAC address is an unresolved packet, if it is put into the first transmission buffer 270, the packet is sent out while automatically resolving the MAC address.
- the processing on the 10 side is simplified, and the processing load can be reduced.
- the header synthesizing unit 250 sends the transmission-waiting transmission packet held in the first transmission buffer 270 or the second transmission buffer 272 through the network interface unit 130 so as to transmit the transmission packet via the network interface unit 130. Generate data information.
- the header synthesizing unit 250 automatically generates parameters that do not change frequently and parameters that can be easily estimated, and generates header information. For example, the identifier of the IP header is automatically incremented and set in the header by the header synthesizing unit 250 even if the CPU 110 does not specify the identifier. For CPU 110, only the destination and the bucket size need to be specified other than the data. As a result, buffer management of the CPU 110 can be simplified, and the processing load can be reduced.
- the host table 204 holds the MAC address and the IP address of another device in association with each other.
- FIG. 14 shows an example of internal data of the host table 204.
- the host table 204 has a host ID column 205, a MAC address column 206, and an IP address column 207.
- the contents of the host table 204 may be registered in advance with information of a host device with which the CPU 110 may frequently communicate, or may be registered by the CPU 110 during communication. .
- Unknown MAC address Even in the case of the host device, first, only the IP address is stored, the ARP bucket is transmitted through the ARP interface 260, and the MAC address is registered when the response is obtained.
- the CPU 110 may use any one of the host ID, the MAC address, and the IP address when specifying the destination of the packet.
- the header synthesizing unit 250 can refer to the host table 204 to acquire information necessary for generating a header.
- the host interface unit 290 controls the input and output of data and instructions between the components of the protocol control engine 50 and the CPU 110.
- FIG. 15 shows an internal configuration of the write control unit 220 and the read control unit 240.
- the write control unit 220 includes a management information generation unit 222, a data exchange unit 222, a write address generation unit 226, a delay circuit 228, and a selector 229.
- the bucket that has passed the packet filtering by the header analysis unit 210 is shaped by the management information generation unit 222 and the data exchange unit 224, and stored in the reception buffer 230. The manner in which the packet data is shaped will be described later with reference to FIG.
- the write address generation unit 226 manages the write pointer of the reception buffer 230.
- the read control section 240 includes a read address generation section 242 and a selector 244.
- FIG. 16 shows how the packet data is shaped by the write control unit 220.
- the leading MAC header occupies 14 bytes, but a 32-bit word is 3.5 words and odd, so the subsequent data is shifted by 16 bits. Become. If the data is stored in the reception buffer 230 as it is, it is inconvenient to access the data. Therefore, in the present embodiment, the MAC header has three words. After shaping the data, store it in the receive buffer 230. In other words, the MAC header can be reduced by 16 bits.
- the destination MA C address is the same as the own device's MA C address, and is unnecessary since the bucket has already been received. Since the MAC address is 48 bits, discarding it leaves 32 bits more room.
- Some applications need information on whether this packet was sent by unicast, multicast, or broadcast, so this is stored as a flag instead of the destination MAC address. Since 2 bits are enough for this flag, there is still room for 30 bits. Therefore, a flag indicating the packet type and address information indicating the storage position of the next bucket are stored as management information. As described above, the MAC header fits in three words, so that subsequent data can be aligned in word units and access is facilitated. Referring back to FIG. 15, the procedure for writing and reading the received bucket will be described. The management information generation unit 222 generates the management information described above.
- management information for example, transmission type information indicating whether this packet was transmitted by unicast, manocast, or broadcast, this packet is a TCP packet or a UDP bucket ⁇ a fragmented IP packet or an IP packet with an option
- this packet is a TCP packet or a UDP bucket ⁇ a fragmented IP packet or an IP packet with an option
- bucket type information indicating whether the packet is a special IP bucket requiring complicated processing, etc., and address information indicating the storage location of the next bucket may be generated.
- the address information of the next bucket is stored, the address information of the next packet is obtained from the write address generation unit 226 after the storage of the data of the own bucket is completed. Writing to 230 is performed after the bucket data storage is completed.
- the data exchange unit 224 exchanges the upper 16 bits and lower 16 bits of the received packet data in order to arrange the data excluding the MAC address in a 32-bit word. By shifting the upper 16 bits of the output of the data exchange unit 2 24 by 1 clock with the delay circuit 2 28 and combining them, the data that has been shifted by 16 bits can be aligned. .
- the formatted data is The data is stored in the reception buffer 230 via the rectifier 229.
- the write address generation unit 222 moves the pointer to the head of the write position, but since the management information of the first word is stored last, the pointer is incremented, and the destination MA of the MAC header is incremented.
- the 2 bytes excluding the C address, the 5 words of the IP header, and the IP data are written one after another while incrementing the pointer.
- the next write start position is notified to the management information generating section 222, and the pointer is returned to the head of the write position to write the management information.
- the header information including the management information is allocated to an independent register so that the CPU 110 can randomly and repeatedly access the register.
- the bucket stored in the reception buffer 230 has already been validated by the header analysis unit 210 and the checksum calculation unit 212, so that the CPU 110 directly converts the bucket into header information. Enables you to determine which applications should access and pass data.
- the data part is read from one access port register. That is, in the first read to the access port register, the first data in the data portion is read, and thereafter, the data is read one after another by successively accessing the same register. Once the data transfer destination is determined, the only thing left is to copy the data, so there is no need to enable random access. Therefore, by employing the access port method, the processing load can be reduced more easily than in the memory map method which requires pointer management. It can also be used in combination with hardware that does not have CPU 110.
- the read address of the receive buffer consists of an upper address and a lower address.
- the CPU 110 specifies both the upper address and the lower address.
- For the upper address specify which header of which packet should be accessed in the read address generator 242, and the read address generator 242 automatically generates the upper address and moves the pointer. .
- For the lower address the lower address output by the CPU 110 is used as it is as the lower address of the receive buffer, and Make 1 10 freely readable.
- the CPU 110 accesses the data portion of the bucket, the CPU 110 must specify to the read address generation unit 242 which packet data to access.
- the read address generation unit 242 automatically generates an upper address and a lower address, moves the pointer, and reads data one after another.
- the telephone device has been described as an example, but the technology of the present embodiment is applicable to all communication devices that transmit and receive stream data, such as a computer and a mobile phone.
- a circuit having the function of the protocol engine 50 may be mounted on one semiconductor substrate. Further, circuits such as a security processing unit 172, a codec processing unit 140, and a CPU 110 may be mounted. As a result, the size, weight, and speed of the communication device can be reduced.
- the present embodiment it is possible to provide a technique for efficiently performing bucket processing accompanying data communication. Also, according to the present embodiment, it is possible to provide a technology that reduces the processing load on the CPU in packet processing and realizes high-speed, real-time communication.
- FIG. 17 shows the overall configuration of an Internet telephone device 100 as an example of a communication device according to the eighth embodiment of the present invention.
- the Internet telephone device 100 is a device for making a call with another Internet telephone device 100 via the Internet 20.
- the Internet telephone device 100 mainly transmits and receives buckets via a CPU 110, which is a general-purpose circuit for executing software processing, a memory 120 used as a program area or a work area, and the Internet 20.
- Network interface section 130 microphone 150 for inputting audio signals, speaker 160 for outputting audio signals, codec processing section 140 for performing compression encoding and decoding of audio signals, communication by IP IP processing unit 1 78 that performs various processes for communication, TCP / UDP processing unit 400 that performs various processes for communication using TCP or UDP, and bus 10 that electrically connects these components 2 is provided.
- a checksum is prepared for each predetermined length in advance.
- the accumulated value of is calculated and stored.
- the size of the TCP packet is determined, the accumulated value is used to calculate the checksum of the packet.
- the time required to calculate the checksum can be significantly reduced as compared with the conventional method of reading the data after the transmission size is determined and calculating the checksum. This point will be described in detail in FIG.
- the bucket received by the network interface unit 130 is sent to the IP processing unit 178.
- the IP processing unit 178 determines whether the packet is addressed to the IP address assigned to the own device, and sends only the packet addressed to the own device to the TC P / UDP processing unit 400. send.
- the TCPZUDP processing unit 400 determines whether a packet is a TCP packet or a UDP packet from header information and the like, and performs necessary processing on each packet. If the received packet is a voice signal, the data is sent to codec processing section 140.
- the codec processing unit 140 decodes the communication voice signal that has been compression-encoded, and outputs the decoded signal to the speaker 160.
- the audio signal input from microphone 150 is sent to codec processing section 140, where it is encoded.
- the encoded signal is, if necessary, encrypted by a security processing unit (not shown), sent to a TCP / UDP processing unit 400, and bucketed.
- the generated TCP or UDP bucket is sent to the Internet 20 via the network interface unit 130.
- the functions of the IP processing unit 178, the TCPZUDP processing unit 400, and the codec processing unit 140 are implemented by hardware such as the CPU 110 and the memory 120. Although it can be realized and can be realized by software with a protocol processing function or a codec processing function in software, this figure shows the functional blocks realized by their cooperation. Therefore, these functional blocks can be realized in various ways by a combination of hardware and software. These configurations may be realized by a dedicated circuit. In this figure, the IP processing unit 178, the TC? / 110 processing unit 400, and the codec processing unit 140 each have a bus 10
- each circuit may be connected by a dedicated bus.
- FIG. 18 shows a configuration for realizing a characteristic packet generation function in the present embodiment, among the internal configuration of the TCP / UDP processing unit 400 in FIG.
- the TCP / UDP processing unit 400 includes a data input unit 410 that receives input of transmission data prepared by the CPU 110 or the like, a checksum calculation unit 420 that calculates an accumulated value of transmission data checksums, and holds transmission data.
- Data storage unit 430 checksum storage unit 432 that stores the accumulated value of the checksum for each section of transmission data of a predetermined length, data size storage that stores the size of untransmitted data remaining in data storage unit 430 Unit 434, a transmission size control unit 440 that controls the transmission size of the TCP bucket, a header generation unit 450 as an example of a second calculation unit that generates header information of TCP and UDP packets, and outputs a TCP and UDP bucket Includes bucket output unit 460.
- the transmission data input from the CPU 110 or the like via the data input unit 410 is stored in the data storage unit 430 and sent to the checksum calculation unit 420.
- the checksum calculating section 420 calculates the cumulative value of the checksum from the beginning of the input data, outputs the calculated cumulative value for each predetermined length, and stores it in the checksum storage section 432.
- the checksum is calculated by sequentially adding together the data grouped for each 16 bits (one word).
- the addition refers to one's complement addition, and the addition result does not fit in 16 bits. If one digit overflows without adding, 1 is added to the addition result.
- the checksum storage section 432 stores the cumulative value of the checksum every 64 words. For example, the checksum accumulated value of the 6th and 4th word from the beginning of the transmission data is 3 210 in hexadecimal, and the checksum accumulated value of the 1st and 8th words from the beginning is 5 3 3 in hexadecimal. 2
- the transmission size control unit 440 determines the size of the TCP packet to be transmitted next in consideration of the status of the buffer on the receiving side and the status of the network such as the loss of a bucket. At this time, the size of the TCP bucket is limited to an integral multiple of the unit length of the section in which the checksum accumulated value is recorded. That is, in the present embodiment, the size of the TCP packet is limited to an integer multiple of 641. The reason will be described later.
- the header generation unit 450 determines the data section to be transmitted based on the size of the TCP bucket.
- the last checksum accumulated value of the section immediately before the section and the checksum accumulated value of the last section of the section are read from the checksum storage section 432. Then, a difference between them is calculated to obtain a checksum value of the section.
- the header generation unit 450 stores this checksum value in the header information and outputs it along with other header information.
- the packet output unit 460 reads out the data of the transmission size from the data storage unit 430 and outputs it.
- the transmission size control unit 440 sets the size of the next transmission TCP packet to a size that is an integral multiple of the unit length of the section in which the cumulative checksum value is recorded and that does not exceed the size of the packet that can be transmitted. And Here, it is the maximum multiple of 64 which does not exceed 144, that is, 128 words.
- Next data to be transmitted 4 3 0 b and The checksum value of 4 3 0 c is the last checksum of the section 7 6
- the size of the transmitted data is subtracted from the value of the untransmitted data size stored in the data size storage section 4 3 4. If the data size of the TCP bucket determined by the transmission size control unit 44 is larger than the size of the untransmitted data, the data size stored in the data size storage unit 4 34
- the header-generation section 450 obtains the checksum value of the transmission packet by subtracting the last checksum value of the data section transmitted immediately before from the checksum cumulative value of the entire data.
- the checksum cumulative value is calculated and held for each predetermined length in advance, and the checksum of the bucket is calculated using the cumulative value, so that the time required for calculating the checksum is greatly reduced.
- the size of the unit section for recording the accumulated checksum value may be designed in consideration of the performance of the transmitting and receiving devices and the performance of the network. It is inevitable that communication on the network involves some degree of uncertainty, and it is inefficient to communicate in a bucket of an unnecessarily small size. There is no problem even if it is limited to an integer multiple of 4 words.
- the capacity of the checksum storage unit 4 32 is smaller than that for storing the checksum accumulation value for all data.
- the above method can be implemented by software, but to achieve higher speed If this method is applied when the processing for TCP and UDP is realized by dedicated hardware, the overhead of memory access will be improved, and the processing speed can be more effectively contributed to.
- Data input from the CPU 110 or the like via the data input unit 410 is stored in the data storage unit 430 and sent to the checksum calculation unit 420.
- the header generation unit 450 reads the checksum value of the UDP bucket to be transmitted next from the checksum storage unit 432, stores it in the header information, and outputs it together with other header information. After outputting the header information obtained from the header generation unit 450, the packet output unit 460 reads and outputs the data from the data storage unit 430.
- FIG. 20 is a flowchart showing the procedure of the checksum calculation method according to the present embodiment.
- the checksum calculation unit 420 calculates the accumulated value of the checksum from the beginning of the input data and determines the predetermined value. The calculated accumulated value is output for each length and stored in the checksum storage unit 432 (S402).
- the header generation unit 450 determines a data section to be transmitted based on the size, and Checksum accumulated value up to the previous data and the last data in the section The checksum accumulated values up to and are read from the checksum storage unit 432 (S 406). Then, the difference is calculated, and the checksum value of the section is obtained (S408).
- the packet output unit 460 transmits the header information including the check sum acquired from the header generation unit 450 (S410), and further reads out data of the transmission size from the data storage unit 430 and transmits the data (S412). If transmission data remains (1 ⁇ of 3414), the process returns to S404 and repeats the procedure of generating and transmitting a packet. When all the data has been transmitted (341-4 ⁇ ), the processing ends.
- the embodiment has been described by taking an Internet telephone device as an example, the technology of the present embodiment is applicable to all communication devices that transmit and receive data, such as a computer, a mobile phone, a digital camera, and a video device.
- the technique of embedding the checksum accumulated value from the top of a series of data strings in multiple places can be used not only for communication but also for all devices that record data.
- a circuit and a memory for realizing the TCPZUDP processing unit 400 may be mounted on one semiconductor substrate. Further, circuits such as an IP processing unit 178, a codec processing unit 140, a CPU 110, and a security processing unit may be mounted. As a result, the size, weight, and speed of the communication device can be reduced.
- the telephone device has been mainly described as an example, but the technology described in the embodiment is applicable to all communication devices that transmit and receive stream data, such as computers and mobile phones. Industrial applicability.
- the present invention is applicable to communication devices, telephone devices, packet processing devices, and the like.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2003266582A AU2003266582A1 (en) | 2002-09-30 | 2003-09-24 | Communication device and application thereof |
KR1020047014902A KR100753734B1 (ko) | 2002-09-30 | 2003-09-24 | 통신 장치 및 그 응용 |
CN038124793A CN1656767B (zh) | 2002-09-30 | 2003-09-24 | 通信装置及其应用 |
US11/003,982 US7843968B2 (en) | 2002-09-30 | 2004-12-06 | Communication apparatus and applications thereof |
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002-287870 | 2002-09-30 | ||
JP2002287870 | 2002-09-30 | ||
JP2002315085A JP3524914B1 (ja) | 2002-10-29 | 2002-10-29 | チェックサム算出方法、チェックサム記録方法、およびその方法を利用可能な通信装置 |
JP2002-315085 | 2002-10-29 | ||
JP2003005101A JP3557202B2 (ja) | 2002-09-30 | 2003-01-10 | 通信装置、通信方法、およびその方法を利用可能な電話装置、ビデオ電話装置、撮像装置 |
JP2003-005100 | 2003-01-10 | ||
JP2003005100A JP3557201B2 (ja) | 2003-01-10 | 2003-01-10 | パケット処理装置、パケット処理方法、およびその方法を利用可能な電話装置 |
JP2003-005101 | 2003-01-10 |
Related Child Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10528977 A-371-Of-International | 2003-09-22 | ||
US11/003,982 Continuation US7843968B2 (en) | 2002-09-30 | 2004-12-06 | Communication apparatus and applications thereof |
US11/978,429 Continuation US7653295B2 (en) | 2002-09-30 | 2007-10-29 | Collapsible lens barrel and optical instrument using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2004036865A1 true WO2004036865A1 (ja) | 2004-04-29 |
Family
ID=32110946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2003/012166 WO2004036865A1 (ja) | 2002-09-30 | 2003-09-24 | 通信装置及びその応用 |
Country Status (4)
Country | Link |
---|---|
KR (3) | KR100790673B1 (ja) |
CN (1) | CN1656767B (ja) |
AU (1) | AU2003266582A1 (ja) |
WO (1) | WO2004036865A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401805A (zh) * | 2007-03-29 | 2013-11-20 | 威盛电子股份有限公司 | 网络装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001339462A (ja) * | 2000-05-29 | 2001-12-07 | Toshiba Corp | 通信プロトコル処理方法および通信プロトコル処理装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU769419B2 (en) * | 1999-08-04 | 2004-01-29 | Telefonaktiebolaget Lm Ericsson (Publ) | An IP based telephone system |
FR2797543B1 (fr) * | 1999-08-12 | 2004-04-09 | Cit Alcatel | Procede pour faire communiquer un utilisateur avec au moins une base de donnees |
-
2003
- 2003-09-24 KR KR1020077006527A patent/KR100790673B1/ko not_active IP Right Cessation
- 2003-09-24 WO PCT/JP2003/012166 patent/WO2004036865A1/ja active Application Filing
- 2003-09-24 AU AU2003266582A patent/AU2003266582A1/en not_active Abandoned
- 2003-09-24 KR KR1020077018565A patent/KR100899923B1/ko not_active IP Right Cessation
- 2003-09-24 CN CN038124793A patent/CN1656767B/zh not_active Expired - Fee Related
- 2003-09-24 KR KR1020047014902A patent/KR100753734B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001339462A (ja) * | 2000-05-29 | 2001-12-07 | Toshiba Corp | 通信プロトコル処理方法および通信プロトコル処理装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20070045338A (ko) | 2007-05-02 |
KR100790673B1 (ko) | 2008-01-02 |
AU2003266582A1 (en) | 2004-05-04 |
KR20070091232A (ko) | 2007-09-07 |
CN1656767A (zh) | 2005-08-17 |
KR100753734B1 (ko) | 2007-08-31 |
CN1656767B (zh) | 2010-05-05 |
KR20040091769A (ko) | 2004-10-28 |
KR100899923B1 (ko) | 2009-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7843968B2 (en) | Communication apparatus and applications thereof | |
US9118649B2 (en) | Method and system for an electronic device with integrated security module | |
US8799741B2 (en) | Method of transmitting ethernet frame in network bridge and the bridge | |
US20080310411A1 (en) | Communication apparatus and integrated circuit for communication | |
WO2022126315A1 (zh) | 数据传输方法和数据传输设备 | |
JP3524914B1 (ja) | チェックサム算出方法、チェックサム記録方法、およびその方法を利用可能な通信装置 | |
JP3796251B2 (ja) | 通信装置 | |
JP3557202B2 (ja) | 通信装置、通信方法、およびその方法を利用可能な電話装置、ビデオ電話装置、撮像装置 | |
JP3557201B2 (ja) | パケット処理装置、パケット処理方法、およびその方法を利用可能な電話装置 | |
WO2004036865A1 (ja) | 通信装置及びその応用 | |
KR20140070896A (ko) | 비디오 스트리밍 방법 및 그 전자 장치 | |
JP2013051565A (ja) | 通信端末装置、通信制御方法、及び通信制御プログラム | |
JP4514487B2 (ja) | パケット処理装置 | |
CN114666776A (zh) | 数据发送方法、装置、设备和可读存储介质 | |
JP2005269134A (ja) | 構内交換機 | |
JP2007195240A (ja) | パケット処理装置、通信装置 | |
JP2004236351A (ja) | 通信方法、通信装置 | |
KR100502270B1 (ko) | 패킷 통신장치 | |
JP2004173332A (ja) | 通信装置 | |
JP2005123985A (ja) | 通信装置及び通信方法 | |
JP2005167458A (ja) | 音声画像伝送方法 | |
JP2012049883A (ja) | 通信装置およびパケット処理方法 | |
KR100283173B1 (ko) | 보코더의 지터 처리 버퍼링 방법 | |
JP2005341107A (ja) | パケット送受信装置 | |
JP4201719B2 (ja) | 通信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 1020047014902 Country of ref document: KR |
|
WWP | Wipo information: published in national office |
Ref document number: 1020047014902 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 20038124793 Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 11003982 Country of ref document: US |
|
122 | Ep: pct application non-entry in european phase |