WO2022102088A1 - ネットワークカードおよびバッファ制御方法 - Google Patents

ネットワークカードおよびバッファ制御方法 Download PDF

Info

Publication number
WO2022102088A1
WO2022102088A1 PCT/JP2020/042457 JP2020042457W WO2022102088A1 WO 2022102088 A1 WO2022102088 A1 WO 2022102088A1 JP 2020042457 W JP2020042457 W JP 2020042457W WO 2022102088 A1 WO2022102088 A1 WO 2022102088A1
Authority
WO
WIPO (PCT)
Prior art keywords
buffer
packet
buffers
priority
control circuit
Prior art date
Application number
PCT/JP2020/042457
Other languages
English (en)
French (fr)
Inventor
勇輝 有川
顕至 田仲
猛 伊藤
勉 竹谷
健 坂本
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US18/251,325 priority Critical patent/US20230421510A1/en
Priority to PCT/JP2020/042457 priority patent/WO2022102088A1/ja
Priority to JP2022561811A priority patent/JP7464144B2/ja
Publication of WO2022102088A1 publication Critical patent/WO2022102088A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3808Network interface controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Definitions

  • the present invention relates to a buffer control technique for executing arithmetic processing on a packet when forwarding and controlling the packet based on the priority control of the communication network.
  • Non-Patent Document 1 Although attempts have been made to update the existing information processing infrastructure, it is a fact that modern computers cannot fully cope with the rapidly increasing data. He points out that "post-Moore technology” that goes beyond Moore's law must be established in order to achieve further evolution in the future.
  • Non-Patent Document 2 discloses a technique called flow-centric computing.
  • Flow-centric computing has introduced a new concept of moving data to a place where computing functions exist and processing it, instead of the conventional idea of computing where data is processed.
  • Flow-centric computing not only is a wideband communication network required for data movement required, but data movement cannot be performed efficiently unless the communication network is controlled efficiently at the same time. there is a possibility.
  • the present invention is for solving such a problem, and an object of the present invention is to provide a buffer control technique capable of fusing priority control of a communication network and allocation control of arithmetic processing for a packet.
  • the network card includes a plurality of physical ports configured to receive and transmit packets via a transmission path, and a first received by the plurality of physical ports.
  • a plurality of buffers configured to temporarily store the packets of the above, and a plurality of arithmetic processing circuits configured to perform predetermined arithmetic processing on the second packet read from the plurality of buffers.
  • a buffer control circuit configured to store the first packet in any of the plurality of buffers and control allocation of the second packet to the arithmetic processing circuit and reading from the buffer.
  • the plurality of buffers are composed of buffers having different physical performance including memory access speed or storage capacity, and the buffer control circuit is based on the header information of the first packet.
  • the priority or service quality of the packet is specified, and the first packet is stored in the plurality of buffers based on the obtained priority or service quality and the physical performance of the plurality of buffers. It is configured to select a buffer.
  • the buffer control method temporarily stores a plurality of physical ports configured to receive and transmit packets via a transmission path and a first packet received by the plurality of physical ports.
  • Physical performance including memory access speed or storage capacity, configured to perform predetermined arithmetic processing on a plurality of buffers configured to do so and a second packet read from the plurality of buffers.
  • the first packet is stored in one of the plurality of arithmetic processing circuits and the plurality of buffers, and the allocation of the second packet to the arithmetic processing circuit and the reading from the buffer are controlled.
  • a buffer control method used in a network card including a buffer control circuit configured as described above, wherein the buffer control circuit has a priority or priority of the first packet based on the header information of the first packet.
  • the priority control of the communication network and the allocation control of the arithmetic processing for the packet can be fused, and as a result, the arithmetic processing can be efficiently executed for the packet.
  • FIG. 1 is a block diagram showing a configuration of a network card according to the first embodiment.
  • FIG. 2 is a block diagram showing a configuration of a buffer control circuit according to the first embodiment.
  • FIG. 3 is a flowchart showing the operation of the buffer control method of the network card according to the first embodiment.
  • FIG. 4 is a block diagram showing a configuration of the buffer control circuit according to the second embodiment.
  • FIG. 5 is a flowchart showing the operation of the buffer control method of the network card according to the second embodiment.
  • FIG. 6 is a block diagram showing a configuration of the buffer control circuit according to the third embodiment.
  • FIG. 7 is an explanatory diagram showing an example of a buffer selection reference.
  • FIG. 8 is a graph showing an example of buffer selection operation.
  • FIG. 9 is a flowchart showing the operation of the buffer control method of the network card according to the third embodiment.
  • FIG. 10 is a block diagram showing a configuration of a conventional network card.
  • FIG. 1 is a block diagram showing a configuration of a network card according to the first embodiment.
  • FIG. 2 is a block diagram showing a configuration of a buffer control circuit according to the first embodiment.
  • Network card This network interface card (NIC) is also called a network adapter, and is an expansion device for connecting a device such as a computer to a transmission line.
  • the network card 10 includes, but is not limited to, a card type used in a form of being inserted into an expansion slot provided on the back surface and side surface of the housing of the device, and further inside the housing.
  • it may be mounted as a circuit in a device housing, for example, on a board on which a control circuit 15 such as a CPU is mounted, or may be connected to an interface for peripheral devices such as a USB (Universal Serial Bus) port.
  • USB Universal Serial Bus
  • the network card 10 has P (P is an integer of 1 or more) physical ports (# 1 to # P) 11 and N (N is) as a main circuit unit. It includes an arithmetic processing circuit 12 (# 1 to #N) (# 1 to #N) of (2 or more integers), a buffer control circuit 14, a buffer 13 of M (M is an integer of 2 or more), and a control circuit 15.
  • the network card 10 temporarily stores a packet (first packet) such as a data packet received by the physical port 11 via the transmission path L in the buffer 13 by the buffer control circuit, and from the buffer 13.
  • the arithmetic processing circuit 12 executes predetermined arithmetic processing on the sequentially read packets (second packet), and the obtained arithmetic processing result is stored in the packet and transmitted from the physical port 11.
  • the buffer control circuit extracts the header information of each packet, and based on this header information, one or more of the buffers 13 having different physical performances are selected as the packet storage destination. It is configured in.
  • the physical ports 11 are input / output interfaces with an external device, an external network, and an externally connected device (both not shown), and are optical or electric input from the outside via the transmission line L. It has a function of receiving a packet by a signal and a function of outputting a packet for transmitting an arithmetic processing result obtained by the network card 10 to the outside via a transmission line L by an optical or electric signal. ..
  • the physical port 11 is composed of an arbitrary input / output interface such as an Ethernet (Ethernet: registered trademark) port, an InfiniBand port, and an I / O serial interface such as PCI Express. , Not only the input / output interface that can be obtained by general market technology, but also the interface that is uniquely determined may be configured.
  • the arithmetic processing circuit 12 (# 1 to # N) has a function of performing predetermined arithmetic processing (calculation or processing) on the data included in the packet read from the buffer 13, and the obtained arithmetic processing result (calculation result or operation result). It has a function to output the processing result).
  • the output from the arithmetic processing circuit 12 is stored in a packet by the buffer control circuit 14, and then output from the physical port 11 to the above-mentioned external device, external network, and external connection device via the transmission line L.
  • the arithmetic processing circuit 12 may be realized by software operating on a CPU (Central processing Unit) or GPU (Graphics Processing Unit), and may be realized by an LSI formed in an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit). (Large Scale Integration) It may be realized by hardware such as a circuit. Further, the arithmetic processing circuit 12 may be realized on the same physical device as any or all of the physical port 11, the buffer 13, the buffer control circuit 14, and the control circuit 15. Further, each of the arithmetic processing circuits 12 may be configured by different types of devices or dedicated circuits that provide different types of functions, or may be configured by the same processor and used for general purposes like a general-purpose processor. It may be configured so that it can be done.
  • the buffer 13 is configured to temporarily store a packet input from the arithmetic processing circuit 12.
  • These buffers 13 include buffers 13 having different physical performances such as data write / read speed and storage capacity.
  • a buffer (hereinafter referred to as an on-chip buffer) composed of an on-chip memory provided inside a device responsible for communication protocol processing, for example, an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).
  • FPGA Field Programmable Gate Array
  • ASIC Application Specific Integrated Circuit
  • the storage capacity is relatively small, the memory access speed, that is, the speed of reading and writing data is relatively high.
  • Such an on-chip memory is suitable for storing service data that requires low-latency processing, high-priority data, and service data that requires a small storage capacity.
  • a buffer consisting of onboard memory (hereinafter, also referred to as an onboard buffer) provided outside the device responsible for communication protocol processing and provided on the same printed circuit board as the device has a memory access speed, that is, data reading / writing. Has the characteristic of being relatively slow. Further, it is known that the on-board memory consumes a relatively large amount of power due to memory access. However, the onboard memory analyzes data with a large storage capacity and processing delay, and services that require a relatively large storage capacity, such as high-definition moving images, using a large-scale neural network. In this case, it is suitable for storing data when the time required for the subsequent calculation is longer than the memory access speed and the processing delay associated with the memory access can be ignored.
  • the buffer control circuit 14 extracts header information from the packet header of the packet input from the physical port 11, selects the buffer 13 for storing the packet based on the extracted header information, and selects the selected buffer 13. Is configured to store the packet in. As shown in FIG. 2, it includes a header extraction circuit 14A, a buffer selection circuit 14B, and M buffer input / output circuits 14C.
  • the header extraction circuit 14A is configured to analyze and extract the header information stored in the packet header of the packet input from the physical port 11. Specifically, information that specifies the priority of the packet, the user ID, and the content of the operation to be performed on the packet is extracted as header information from a predetermined field of the packet.
  • the buffer input / output circuit 14C outputs a packet input from the physical port 11 to one or more buffers 13 selected by the buffer selection circuit 14B, and one or more selected by the buffer selection circuit 14B. It is configured to read the stored packet from the buffer 13 of.
  • the buffer selection circuit 14B selects one or more buffers 13 for storing packets input from the physical port 11 based on the header information extracted by the header extraction circuit 14A, and the buffer input / output circuit 14C is used in the selected buffer 13.
  • the packet is stored via the above, the buffer 13 is selected in order from the highest priority, the packet is read from the selected buffer 13 via the buffer input / output circuit 14C, and the arithmetic processing circuit 12 corresponding to the packet is reached. It is configured to output.
  • the buffer control circuit 14 selects the buffer 13 for storing the packet according to the priority of the packet input from the physical port 11. For example, the higher the packet priority, the faster the memory access speed (for example, on-chip buffer or internal buffer) is selected. Also, the lower the packet priority, the slower the memory access speed is selected (for example, an onboard buffer or an external buffer). If there are three levels of priority, such as high, medium, and low, and there are two buffers 13, select a buffer with a relatively high memory access speed for only high priority packets, and memory access for medium and low priority packets. Select a buffer with a relatively slow speed. In this case, the criteria for distributing the high-speed buffer and the low-speed buffer may be set in advance.
  • the buffer control circuit 14 uses the user ID of the packet, the physical port 11 into which the packet is input, and the content of the calculation to be performed on the packet as information for selecting the buffer 13. Select the buffer 13 for storing the packet according to the above. For example, when controlling the service quality for each user ID, the buffer to which the user ID that should guarantee the low latency service quality is assigned, that is, the higher the service quality of the packet, the faster the memory access speed is selected. .. Further, for a packet in which the content of the operation to be performed on the packet is a process that requires a relatively long processing time, the processing time of the memory access is negligible with respect to the total processing time. Therefore, the lower the quality of service of such packets, the slower the memory access speed of the buffer selected.
  • the buffer control circuit 14 confirms the operating status of the arithmetic processing circuit 12 in the subsequent stage, and among the packets stored in the buffer 13, the type of arithmetic to be performed on the packet.
  • the buffer control circuit 14 selects the buffer 13 having different physical performance according to the nature of the packet (data) to be stored, specifically, the priority of the packet or the quality of service. do.
  • FIG. 10 is a block diagram showing the configuration of a conventional network card.
  • the conventional network card 50 includes a buffer for storing input packets as an onboard memory or an on-chip memory, but the packet storage destination is fixed or specified by the user in advance. ..
  • the network card 10 of the present invention includes a plurality of buffers 13 having different physical properties, and the buffer control circuit 14 determines the priority or service quality of the packet specified from the header information of the input packet. Based on this, the difference is that the storage destination of the packet is selected and the storage destination is dynamically switched.
  • packets with high priority or quality of service are stored in the buffer 13 having a relatively high memory access speed, and packets with low priority or quality of service are stored in a buffer with a relatively low memory access speed. Stored. Therefore, it is possible to shorten the processing time of the packet having high priority or service quality, and the processing of the packet having low priority or service quality is performed in the time when the load of the arithmetic processing circuit 12 is light. It is possible to level the overall load.
  • an on-chip memory can be used in combination with the on-board memory as the buffer 13.
  • the on-chip memory consumes relatively little memory access, the overall power consumption can be reduced as compared with the case where only the onboard memory is used as the buffer 13.
  • the on-chip memory has a relatively high memory access speed, the overall processing time can be shortened.
  • the onboard memory can be used together with the on-chip memory as the buffer 13.
  • the onboard memory has a relatively large storage capacity
  • data having a relatively large size such as a high-definition image or a neural network model having a large data size is compared with the case where only the on-chip memory is used as the buffer 13. It can be applied to applications and services that handle. Further, when only the on-chip memory is used, if the storage capacity of the on-chip memory is increased, the area of the chip is also increased, the yield in the manufacturing process is deteriorated, and the leakage power is increased.
  • the onboard memory is used together, the storage capacity of the on-chip memory can be reduced, the area of the chip can be reduced, the yield in the manufacturing process can be improved, and the leakage power can be suppressed. be able to. Further, by using the onboard memory and the on-chip memory together, it is possible to operate both in parallel, so that it is possible to suppress the conflict of memory access.
  • FIG. 3 is a flowchart showing the operation of the buffer control method of the network card according to the first embodiment.
  • the physical port 11 receives a packet from an external device, an external network, or an externally connected device via the transmission line L (step S100).
  • the buffer control circuit extracts header information from the packet input from the physical port 11 (step S101) (first step), and based on the obtained header information, the buffer 13 contains the packet.
  • the buffer 13 to be the storage destination is selected (step S102) (second step).
  • the buffer control circuit selects, for example, the buffer 13 for storing the packet according to the priority of the packet input from the physical port 11. For example, for high-priority packets, select a buffer (on-chip buffer or internal buffer) with a relatively high memory access speed. For low priority packets, select a buffer (onboard buffer or external buffer) with a relatively low memory access speed. If there are three levels of priority, such as high, medium, and low, and there are two buffers 13 with different physical performance, select a buffer with a relatively high memory access speed for only high-priority packets. However, for medium / low priority packets, select a buffer with a relatively low memory access speed. In this case, the criteria for distributing the high-speed buffer and the low-speed buffer are set in advance.
  • the buffer control circuit 14 uses the packet as information for selecting the buffer 13 according to the user ID of the packet, the physical port 11 into which the packet is input, and the content of the calculation to be performed on the packet. Select the buffer to store. For example, when the service quality is controlled for each user ID, the packet to which the user ID that should guarantee the low delay service quality is assigned is stored in the buffer having a relatively high memory access speed. Further, for the processing that requires a relatively long processing time, the content of the operation to be performed on the packet is at a level where the processing time of the memory access can be ignored with respect to the total processing time, so that the memory access speeds are compared. Store in a high-speed buffer.
  • the buffer 13 selected by the arithmetic processing circuit 12 temporarily stores the packet input from the arithmetic processing circuit 12 (step S103).
  • These buffers 13 include buffers 13 having different physical performances such as data write / read speed and storage capacity.
  • a buffer (hereinafter referred to as an on-chip buffer) composed of an on-chip memory provided inside a device responsible for communication protocol processing, for example, an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).
  • the storage capacity is relatively small, the memory access speed, that is, the speed of reading and writing data is relatively high.
  • Such an on-chip memory is suitable for storing service data that requires low-latency processing, high-priority data, and service data that requires a small storage capacity.
  • a buffer consisting of onboard memory (hereinafter, also referred to as an onboard buffer) provided outside the device responsible for communication protocol processing and provided on the same printed circuit board as the device has a memory access speed, that is, data reading / writing. Has the characteristic of being relatively slow. Further, it is known that the on-board memory consumes a relatively large amount of power due to memory access. However, the onboard memory analyzes data with a large storage capacity and processing delay, and services that require a relatively large storage capacity, such as high-definition moving images, using a large-scale neural network. In this case, it is suitable for storing data when the time required for the subsequent calculation is longer than the memory access speed and the processing delay associated with the memory access can be ignored.
  • the buffer control circuit 14 confirms whether or not the packet can be allocated based on the operating status of each arithmetic processing circuit 12.
  • the buffer control circuit 14 determines whether or not the packet can be allocated based on the operating status of each arithmetic processing circuit 12.
  • the type of operation that can be assigned by the arithmetic processing circuit 12 that can be assigned matches the type of operation that should be performed on the packet among the packets stored in each buffer 13, the buffer control circuit 14 ,
  • the packet is assigned to the arithmetic processing circuit 12, and the packet is read from the buffer 13 and output to the arithmetic processing circuit 12 (step S104).
  • the arithmetic processing circuit 12 performs a predetermined arithmetic processing on the packet read from the buffer 13 by the buffer control circuit 14, and outputs the obtained arithmetic processing result (step S105).
  • the buffer control circuit 14 stores the arithmetic processing result output from the arithmetic processing circuit 12 in a packet, transmits it as an optical or electric signal from the physical port 11 (step S106), and ends a series of packet arithmetic processing.
  • the buffer 13 is composed of buffers having different physical performances including the memory access speed or the storage capacity
  • the buffer control circuit 14 is the packet received by the physical port 11. Based on the packet priority or service quality specified from the header information and the physical performance of the buffer 13, the buffer 13 to be the storage destination of the packet is selected from the buffer 13.
  • packets with high priority or quality of service are stored in the buffer 13 having a relatively high memory access speed, and packets with low priority or quality of service are stored in a buffer with a relatively low memory access speed. Stored. Therefore, the processing time of the packet with high priority or service quality can be shortened, and the processing of the packet with low priority or service quality is performed during the time when the load of the arithmetic processing circuit 12 is light, so that the entire system can be processed. The load can be leveled.
  • the on-chip memory having a small memory access power consumption can be utilized as compared with the case where only the onboard memory is used as the buffer 13, the power consumption can be reduced. Further, since the on-chip memory having a high memory access speed can be utilized, the processing time can be shortened. Further, by using the onboard memory and the on-chip memory together, it is possible to operate both in parallel, so that it is possible to suppress the conflict of memory access.
  • on-board memory with a large storage capacity can be utilized, so relatively large data such as high-definition images with large data size and neural network models are handled. It can be applied to applications and services.
  • the storage capacity of the on-chip memory is increased, the area of the chip is also increased, the yield in the manufacturing process is deteriorated, the leakage power is increased, and the storage capacity of the on-chip memory is reduced. Therefore, the area of the chip can be reduced, the yield in the manufacturing process can be improved, and the leakage power can be suppressed.
  • the onboard memory and the on-chip memory together it is possible to operate both in parallel, so that it is possible to suppress the conflict of memory access.
  • the storage destination buffer 13 is selected according to the packet priority, the on-chip memory capable of high-speed memory access can be selected as the storage destination of the highest priority packet, and the processing time can be reduced. can.
  • an onboard memory having a large storage capacity can be selected as a storage destination for packets having a low priority.
  • packets with high priority can be preferentially stored in the on-chip memory having a small storage capacity, so that the service quality can be improved without increasing the amount of on-chip memory.
  • the storage destination buffer 13 is selected according to the service content of the packet, the on-chip memory capable of high-speed memory access can be preferentially selected as the storage destination of the packet of the service requiring low delay. , It is possible to suppress an increase in processing time.
  • an onboard buffer with a large storage capacity can be selected as a storage destination for packets of services with relatively loose delay requests. As a result, even in a situation where traffic is congested, deterioration of service quality can be suppressed, and service quality can be improved without increasing the storage capacity of the on-chip memory.
  • FIG. 4 is a block diagram showing a configuration of the buffer control circuit according to the second embodiment.
  • the buffer control circuit 14 includes a monitor circuit 14D instead of the header extraction circuit 14A.
  • the monitor circuit 14D has the entire network card 10 such as the buffer storage amount in the entire buffer 13 and the traffic amount (data traffic amount) in the entire physical port 11. It is configured to monitor the packet processing status in the above and determine whether or not the obtained packet monitoring information exceeds a preset threshold value. Further, the buffer control circuit 14 (buffer selection circuit 14B) is configured to select a packet storage destination based on the threshold value determination result in the monitor circuit 14D.
  • the buffer control circuit 14 when the buffer storage amount of the buffer 13 is used as the packet processing status and the monitor circuit 14D determines that the buffer storage amount does not exceed the threshold value, the buffer control circuit 14 has a buffer with a relatively high memory access speed ( Select the on-chip buffer or internal buffer) as the packet storage destination. When the monitor circuit 14D determines that the buffer storage amount exceeds the threshold value, the buffer control circuit 14 has a buffer with a relatively low memory access speed but a large storage capacity (onboard buffer or external buffer). Buffer) is selected as the packet storage destination.
  • the storage destination when selecting the packet storage destination, is based on the packet processing status of the entire network card 10, such as the buffer storage amount in the entire buffer 13 and the traffic amount in the physical port 11 as a whole. Is shown as an example of dynamically changing, but is not limited to this.
  • the packet storage destination may be selected based on the packet processing status of each physical port 11.
  • the monitor circuit 14D may monitor the buffer storage amount and the traffic amount for each physical port 11, perform threshold processing at each threshold value, and preempt the storage destination according to the obtained comparison result.
  • the packet storage destination may be selected based on both the packet processing status of the entire network card 10 and the packet processing status of each physical port 11.
  • FIG. 5 is a flowchart showing the operation of the buffer control method of the network card according to the second embodiment.
  • the operation shown in FIG. 5 is different from that of FIG. 3 described above in that steps S200 and S201 are provided instead of steps S101 and S102.
  • the other steps in FIG. 5 are the same as those in FIG. 3, and the description thereof is omitted here.
  • step S100 after the physical port 11 receives the packet via the transmission line L, the buffer control circuit determines the buffer accumulation amount in the entire buffer 13 and the traffic in the entire physical port 11. The packet processing status such as the amount is monitored (monitored), and the obtained packet monitoring information is acquired (step S200). Next, the buffer control circuit compares the obtained packet monitoring information with a preset threshold value, and selects the buffer 13 to store the packet from each buffer 13 based on the obtained comparison result. (Step S201), the process proceeds to step S103 described above.
  • the buffer control circuit selects the buffer 13 having a relatively high memory access speed as the storage destination. Further, when the threshold value of the buffer storage amount is exceeded, the buffer control circuit selects the buffer 13 having a relatively low memory access speed but a large storage capacity.
  • the buffer storage amount and the traffic amount of the entire network card 10 are used as the packet monitoring information, but the buffer storage amount and the traffic amount for each physical port 11 may be used.
  • the buffer storage amount and the traffic amount for each physical port 11 may be monitored as packet monitoring information and compared with each threshold value, and the obtained comparison result may be used for selecting the storage destination buffer.
  • the network card 10 of the present embodiment is obtained by monitoring the packet processing status of the entire network card 10 such as the buffer accumulation amount in the buffer 13 as a whole and the packet traffic amount in the physical port 11 as a whole.
  • a monitor circuit 14D that compares the packet monitoring information with a preset threshold value is provided, and the buffer control circuit is configured to select a packet storage destination based on the comparison result obtained by the monitor circuit 14D. Is.
  • the buffer storage amount is used as the packet monitoring information
  • the storage capacity is increased when the buffer storage amount is large while preferentially using the on-chip memory having a small storage capacity as the storage destination buffer 13.
  • the traffic amount when the traffic amount is used as the packet monitoring information, when the traffic amount is large, the onboard memory having a large storage capacity can be used as the 13 buffers of the storage destination, and the packet loss and the buffer overflow can be suppressed. can do.
  • the amount of traffic when the amount of traffic is small, an on-chip memory capable of high-speed memory access can be used, so that it is possible to suppress an increase in processing time. Further, by suppressing packet loss, it is possible to suppress the occurrence of unnecessary traffic such as retransmission, so that the network load can be reduced. Along with this, the quality of service can be improved.
  • FIG. 6 is a block diagram showing a configuration of the buffer control circuit according to the third embodiment.
  • the buffer control circuit 14 includes both the header extraction circuit 14A and the monitor circuit 14D.
  • the header extraction circuit 14A analyzes and extracts the header information stored in the packet header of the packet input from the physical port 11. It is configured in. Specifically, information that specifies the priority of the packet, the user ID, and the content of the operation to be performed on the packet is extracted as header information from a predetermined field of the packet.
  • the monitor circuit 14D monitors the packet processing status of the entire network card 10, such as the buffer accumulation amount of the entire buffer 13 and the traffic amount of the entire physical port 11, and the obtained packet monitoring information is set in advance. It is configured to determine whether or not the threshold is exceeded. Further, the buffer control circuit 14 (buffer selection circuit 14B) is configured to select a packet storage destination based on the threshold value determination result in the monitor circuit 14D.
  • FIG. 7 is an explanatory diagram showing an example of a buffer selection reference.
  • FIG. 8 is a graph showing an example of buffer selection operation (buffer storage amount), and an example of using the buffer storage amount as buffer processing information is shown.
  • the packet priority is set in three stages such as high, medium, and low, and the buffer 13 is provided with two buffers H and L having different physical performances.
  • the packet monitoring information the buffer accumulated amount in the entire buffer 13 and the traffic amount in the entire physical port 11 are used.
  • the buffer control circuit 14 when the buffer storage amount does not exceed the threshold value, the buffer control circuit 14 has memory access as a storage destination of high / medium priority packets based on the selection criterion A in FIG. A buffer H (on-chip buffer) having a relatively high speed is selected, and a buffer L having a relatively low memory access speed is selected as a storage destination of low priority packets.
  • the buffer control circuit 14 selects the buffer H having a relatively high memory access speed as the storage destination of the high priority packet based on the selection criterion B in FIG. , Select the buffer L, which has a relatively low memory access speed, as the storage destination for medium / low priority packets.
  • the buffer control circuit 14 selects the buffer H having a relatively high memory access speed as the storage destination of the high / medium priority packets based on the selection criterion A in FIG. Then, as the storage destination of the low priority packet, the buffer L having a relatively low memory access speed is selected. On the other hand, when the threshold of the traffic amount is exceeded, the buffer control circuit 14 selects the buffer H having a relatively high memory access speed as the storage destination of the high priority packet based on the selection criterion B in FIG. Select the buffer L, which has a relatively low memory access speed, as the storage destination of the medium / low priority packets.
  • the storage destination when the packet storage destination is selected according to the packet priority, the storage destination is dynamically changed according to the buffer storage amount and the traffic amount, but the packet priority is not always obtained. It is not necessary to select the storage destination according to the degree. For example, when the packet storage destination is selected based on the packet processing content, the buffer storage amount and the traffic amount may be monitored for each processing content and each threshold value and threshold processing may be performed. Further, when the packet storage destination is selected based on the user ID, the buffer storage amount and the traffic amount may be monitored for each user ID and the threshold value and the threshold value processing may be performed. Further, when the packet storage destination is selected based on the physical port 11, the buffer storage amount and the traffic amount may be monitored for each physical port 11 and the threshold value and the threshold value processing may be performed.
  • FIG. 9 is a flowchart showing the operation of the network card according to the third embodiment.
  • the operation shown in FIG. 9 is different from that of FIG. 3 described above in that steps S300 and S301 are provided instead of step S102.
  • the other steps in FIG. 9 are the same as those in FIG. 3, and the description thereof is omitted here.
  • the buffer control circuit should extract header information from the packet input from the physical port 11 and apply the information indicating the priority of the packet, the user ID, and the packet. Acquire information that specifies the content of arithmetic processing.
  • the buffer control circuit monitors (monitors) the packet processing status such as the buffer accumulated amount in the entire buffer 13 and the traffic amount in the entire physical port 11, and acquires the obtained packet monitoring information (step S300). .. Next, the buffer control circuit compares the obtained packet monitoring information with a preset threshold value, and based on the obtained comparison result and the header information, a buffer for accumulating packets from each of the buffers 13. 13 is selected (step S301), and the process proceeds to step S103 described above.
  • the buffer control circuit 14 is set in three stages such as high, medium, and low as the priority of the packet, and the two buffers H, which have different physical performances as the buffer 13. Assuming a configuration in which L is provided, when the buffer storage amount does not exceed the threshold value, the buffer control circuit 14 performs memory access as a storage destination of high / medium priority packets based on the selection criterion A in FIG. A buffer H (on-chip buffer) having a relatively high speed is selected, and a buffer L having a relatively low memory access speed is selected as a storage destination of low priority packets.
  • the buffer control circuit 14 selects the buffer H having a relatively high memory access speed as the storage destination of the high priority packet based on the selection criterion B in FIG. , Select the buffer L, which has a relatively low memory access speed, as the storage destination for medium / low priority packets.
  • the buffer control circuit 14 selects the buffer H having a relatively high memory access speed as the storage destination of the high / medium priority packets based on the selection criterion A in FIG. 7. Then, as the storage destination of the low priority packet, the buffer L having a relatively low memory access speed is selected. On the other hand, when the threshold of the traffic amount is exceeded, the buffer control circuit 14 selects the buffer H having a relatively high memory access speed as the storage destination of the high priority packet based on the selection criterion B in FIG. 7. Select the buffer L, which has a relatively low memory access speed, as the storage destination of the medium / low priority packets.
  • the buffer storage amount and the traffic amount of the entire network card 10 are used as the packet monitoring information, but the buffer storage amount and the traffic amount for each physical port 11 may be used.
  • the buffer storage amount and the traffic amount for each physical port 11 may be monitored as packet monitoring information and compared with each threshold value, and the obtained comparison result may be used for selecting the storage destination buffer 13.
  • the buffer control circuit 14 has the packet processing status of the entire network card 10 such as the buffer accumulation amount in the buffer 13 as a whole and the packet traffic amount in the physical port 11 as a whole. And select the packet storage destination based on the comparison result of comparing the obtained packet monitoring information with the preset threshold and the packet priority or service quality specified from the packet header information. It is configured to do so.
  • the storage destination buffer 13 is selected according to the packet priority, the on-chip memory capable of high-speed memory access can be preferentially selected as the storage destination of the highest priority packet, and the processing time is reduced. can do.
  • an onboard memory having a large storage capacity can be selected as a storage destination for packets having a low priority.
  • packets with high priority can be preferentially stored in the on-chip memory having a small storage capacity, so that the service quality can be improved without increasing the amount of on-chip memory.
  • the storage destination buffer 13 is selected according to the service content of the packet, the on-chip memory capable of high-speed memory access can be preferentially selected as the storage destination of the packet of the service requiring low delay. , It is possible to suppress an increase in processing time.
  • an onboard buffer with a large storage capacity can be selected as a storage destination for packets of services with relatively loose delay requests. As a result, even in a situation where traffic is congested, deterioration of service quality can be suppressed, and service quality can be improved without increasing the storage capacity of the on-chip memory.
  • the on-chip memory having a small storage capacity is preferentially used as the packet storage destination buffer, but when the buffer storage amount becomes large, the storage capacity is large. It can be stored in the board memory. Therefore, the buffer overflow can be suppressed, and the retransmission due to the buffer overflow can be avoided. In addition, it is possible to suppress an increase in processing time, such as applying back pressure due to buffer overflow, and accordingly, it is possible to improve service quality.
  • a traffic amount when a traffic amount is used as packet monitoring information, if the traffic amount is large, an onboard memory having a large storage capacity can be used as a buffer for storing packets, and packet loss and buffer overflow can be suppressed. Can be done.
  • an on-chip memory capable of high-speed memory access can be used, so that it is possible to suppress an increase in processing time. Further, by suppressing packet loss, it is possible to suppress the occurrence of unnecessary traffic such as retransmission, so that the network load can be reduced. Along with this, the quality of service can be improved.
  • the selection criteria for selecting on-chip memory or on-board memory as the storage destination can be changed according to the amount of traffic. Therefore, when the amount of traffic is large, the on-chip memory can be selected as the storage destination of the highest priority packet, so that an increase in processing time can be suppressed and a deterioration in service quality can be suppressed. On the other hand, when the traffic amount is small, the on-chip memory can be selected as the storage destination of the highest priority and high priority packets, so that the processing time of the high priority packets can be shortened and the power consumption can be reduced.
  • 10 network card, 11 ... physical port, 12 ... arithmetic processing circuit, 13 ... buffer 13 ... buffer control circuit, 14A ... header extraction circuit, 14B ... buffer selection circuit, 14C ... buffer input / output circuit, 14D ... monitor circuit, L ... Transmission line.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本発明のネットワークカード(10)は、バッファ(13)を、メモリアクセス速度または記憶容量を含む物理的性能が異なるバッファから構成し、バッファ制御回路(14)が、物理ポート(11)が受信したパケットのヘッダ情報から特定した、パケットの優先度またはサービス品質と、バッファ(13)の物理的性能とに基づいて、バッファ13のうちからパケットの蓄積先となるバッファ(13)を選択する。これにより、通信ネットワークの優先制御とパケットに対する演算処理の割り当て制御とを融合することができ、結果として、パケットに対して演算処理を効率よく実行することが可能となる。

Description

ネットワークカードおよびバッファ制御方法
 本発明は、通信ネットワークの優先制御に基づいてパケットを転送制御する際、当該パケットに対して演算処理を実行するためのバッファ制御技術に関する。
 機械学習や人工知能(AI)やIoT(Internet of Things)など多くの分野で技術革新が進み、様々な情報やデータを活用することで、サービスの高度化・付加価値の提供が盛んに行われている。このような処理では、大量の計算をする必要があり、そのための情報処理基盤が必須である。
 例えば、非特許文献1では、既存の情報処理基盤をアップデートしようとする試みが展開されてはいるものの、急速に増えていくデータに対して現代のコンピュータが対応しきれていないのも事実であり、今後さらなる進化を遂げていくためには、ムーアの法則を越える「ポストムーア技術」が確立されなければいけないと指摘している。
 ポストムーア技術として、例えば、非特許文献2では、フローセントリックコンピューティングという技術が開示されている。フローセントリックコンピューティングでは、データのある場所で処理を行うというこれまでのコンピューティングの考えではなく、計算機能が存在する場所にデータを移動して処理を行うという新たな概念を導入した。
 このようなフローセントリックコンピューティングを実現するためには、データ移動に必要な広帯域な通信ネットワークが必要となるだけでなく、同時に効率よく通信ネットワークを制御しないと、データの移動を効率よく実施できない可能性がある。
特開2012-44511号公報
「NTT Technology Report for Smart World 2020」,日本電信電話株式会社,28 May 2020,[2020年10月19日検索],インターネット,<https://www.rd.ntt/_assets/pdf/techreport/NTT_TRFSW_2020_EN_W.pdf> R. Takano and T. Kudoh, "Flow-centric computing leveraged by photonic circuit switching for the post-moore era", Tenth IEEE/ACM International Symposium on Networks-on-Chip (NOCS), Nara, 2016, pp. 1-3, [2020年10月19日検索],インターネット,<https://ieeexplore.ieee.org/abstract/document/7579339>
 一般に、データを効率よく移動させるためには、データを一時的に保持するバッファやメモリをどのように構成するかがシステム全体の処理性能に影響する。メモリアクセス速度や消費電力が異なるバッファが存在する場合、バッファの内部状態を見て、その切替を行う技術が知られている(例えば、特許文献1)。このような従来技術によれば、メモリアクセス速度が速く、消費電力の小さいバッファを優先的に用いることができる。
 一方、通信ネットワークを介したフローセントリックコンピューティングでは、処理内容や優先度がデータごとに異なる。このため、通信ネットワークの優先制御に加えて、データごとの処理内容や優先度を考慮して、データに対する演算処理を割り当てる必要がある。したがって、従来技術には、通信ネットワークの優先制御とパケットに対する演算処理の割り当て制御とを融合するためのバッファ制御技術については開示されていない。
 本発明はこのような課題を解決するためのものであり、通信ネットワークの優先制御とパケットに対する演算処理の割り当て制御とを融合できるバッファ制御技術を提供することを目的としている。
 このような目的を達成するために、本発明にかかるネットワークカードは、伝送路を介してパケットを受信および送信するように構成された複数の物理ポートと、前記複数の物理ポートが受信した第1のパケットを一時的に蓄積するように構成された複数のバッファと、前記複数のバッファから読み出された第2のパケットに対して所定の演算処理を行うように構成された複数の演算処理回路と、前記複数のバッファのいずれかに前記第1のパケットを格納し、前記第2のパケットに関する、前記演算処理回路への割り当ておよび前記バッファからの読み出しを制御するように構成されたバッファ制御回路とを備え、前記複数のバッファは、メモリアクセス速度または記憶容量を含む物理的性能が異なるバッファからなり、前記バッファ制御回路は、前記第1のパケットのヘッダ情報に基づいて、前記第1のパケットの優先度またはサービス品質を特定し、得られた優先度またはサービス品質と、前記複数のバッファの物理的性能とに基づいて、前記複数のバッファのうちから前記第1のパケットの蓄積先となるバッファを選択するように構成したものである。
 また、本発明にかかるバッファ制御方法は、伝送路を介してパケットを受信および送信するように構成された複数の物理ポートと、前記複数の物理ポートが受信した第1のパケットを一時的に蓄積するように構成された複数のバッファと、前記複数のバッファから読み出された第2のパケットに対して所定の演算処理を行うように構成された、メモリアクセス速度または記憶容量を含む物理的性能が異なる、複数の演算処理回路と、前記複数のバッファのいずれかに前記第1のパケットを格納し、前記第2のパケットに関する、前記演算処理回路への割り当ておよび前記バッファからの読み出しを制御するように構成されたバッファ制御回路とを備えるネットワークカードで用いられるバッファ制御方法であって、前記バッファ制御回路が、前記第1のパケットのヘッダ情報に基づいて、前記第1のパケットの優先度またはサービス品質を特定する第1のステップと、前記バッファ制御回路が、得られた優先度またはサービス品質と、前記複数のバッファの物理的性能とに基づいて、前記複数のバッファのうちから前記第1のパケットの蓄積先となるバッファを選択する第2のステップとを備えている。
 本発明によれば、通信ネットワークの優先制御とパケットに対する演算処理の割り当て制御とを融合することができ、結果として、パケットに対して演算処理を効率よく実行することが可能となる。
図1は、第1の実施の形態にかかるネットワークカードの構成を示すブロック図である。 図2は、第1の実施の形態にかかるバッファ制御回路の構成を示すブロック図である。 図3は、第1の実施の形態にかかるネットワークカードのバッファ制御方法の動作を示すフローチャートである。 図4は、第2の実施の形態にかかるバッファ制御回路の構成を示すブロック図である。 図5は、第2の実施の形態にかかるネットワークカードのバッファ制御方法の動作を示すフローチャートである。 図6は、第3の実施の形態にかかるバッファ制御回路の構成を示すブロック図である。 図7は、バッファ選択基準例を示す説明図である。 図8は、バッファ選択動作例を示すグラフである。 図9は、第3の実施の形態にかかるネットワークカードのバッファ制御方法の動作を示すフローチャートである。 図10は、従来のネットワークカードの構成を示すブロック図である。
 次に、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
 まず、図1および図2を参照して、本発明の第1の実施の形態にかかるネットワークカード10の構成について説明する。図1は、第1の実施の形態にかかるネットワークカードの構成を示すブロック図である。図2は、第1の実施の形態にかかるバッファ制御回路の構成を示すブロック図である。
[ネットワークカード]
 このネットワークカード(Network Interface Card:NIC)は、ネットワークアダプタとも呼ばれ、コンピュータなどの機器を伝送路に接続するための拡張装置である。ネットワークカード10は、機器の筐体背面や側面、さらには筐体内部に用意された拡張スロットに挿入する形態で使用されるカード型のものがあるが、これに限定されるものではない。例えば、機器の筐体内、例えばCPUなどの制御回路15が搭載された基板に回路として実装される形態や、USB(Universal Serial Bus)ポートなどの周辺機器用のインターフェースに接続される形態もある。
 図1に示すように、本実施の形態にかかるネットワークカード10は、主な回路部として、P(Pは1以上の整数)個の物理ポート(#1~#P)11、N(Nは2以上の整数)個の演算処理回路12(#1~#N)、バッファ制御回路14、M(Mは2以上の整数)個のバッファ13、および、制御回路15を備えている。
 このネットワークカード10は、全体として、物理ポート11が伝送路Lを介して受信したデータパケットなどのパケット(第1のパケット)を、バッファ制御回路でバッファ13に一時的に格納し、バッファ13から順次読み出したパケット(第2のパケット)に対して、演算処理回路12で所定の演算処理を実行し、得られた演算処理結果をパケットに格納して物理ポート11から送信するように構成されている。
 この際、バッファ制御回路で、各パケットのヘッダ情報を抽出し、このヘッダ情報に基づいて、物理的性能が異なるバッファ13のうちからいずれか1つまたは複数を、パケットの蓄積先として選択するように構成されている。
[物理ポート]
 物理ポート11(#1~#P)は、外部装置、外部ネットワーク、外部接続デバイス(ともに図示せず)との入出力インターフェースであって、伝送路Lを介して外部から入力される光または電気信号により、パケットを受信する機能と、当該ネットワークカード10で得られた演算処理結果を送信するためのパケットを、光または電気信号により、伝送路Lを介して外部へ出力する機能と、を有する。具体的には、物理ポート11は、イーサネット(Ethernet:登録商標)のポートや、インフィニバンド(InfiniBand)のポート、PCI ExpressなどのI/Oシリアルインターフェースなど、任意の入出力インターフェースから構成されるが、一般的な市中技術で入手できる入出力インターフェースのみならず、独自に定めたインターフェースで構成してもよい。
[演算処理回路]
 演算処理回路12(#1~#N)は、バッファ13から読み出したパケットに含まれるデータに対して所定の演算処理(演算または処理)を行う機能と、得られた演算処理結果(演算結果また処理結果)を出力する機能と、を有する。演算処理回路12からの出力は、バッファ制御回路14でパケットに格納された後、物理ポート11から伝送路Lを介して、前述の外部装置、外部ネットワーク、外部接続デバイスへ出力される。
 演算処理回路12は、CPU(Central processing Unit)やGPU(Graphics Processing Unit)上で動作するソフトウェアで実現してもよく、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)に形成したLSI(Large Scale Integration)回路などのハードウェアで実現してもよい。また、演算処理回路12は、物理ポート11、バッファ13、バッファ制御回路14、制御回路15のいずれかまたは全部と同一の物理デバイス上で実現してもよい。また、演算処理回路12のそれぞれは、異なる種類のデバイスや、異なる種類の機能を提供する専用回路で構成してもよく、同一のプロセッサで構成し、汎用プロセッサのように汎用的に用いることができるように構成してもよい。
[バッファ]
 バッファ13は、演算処理回路12から入力されるパケットを一時的に格納するように構成されている。これらバッファ13には、データの書き込み・読み出し速度と記憶容量などの物理的性能が異なるものが含まれている。
 例えば、ネットワークカード10において、通信プロトコル処理を担うデバイス、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)の内部に備えるようなオンチップメモリからなるバッファ(以下、オンチップバッファということもある)は、比較的記憶容量は小さいが、メモリアクセス速度、つまりデータを読み書きする速度は比較的高速である特徴を有している。このようなオンチップメモリは、低遅延な処理が求められるサービスのデータや、優先度の高いデータ、記憶容量が少なく済むサービスのデータ、を格納するのに適している。
 一方、通信プロトコル処理を担うデバイスの外部に備え、当該デバイスと同じプリント基板上に備えられるオンボードメモリからなるバッファ(以下、オンボードバッファということもある)は、メモリアクセス速度、つまりデータの読み書きの速度は比較的低速である特徴を有している。また、オンボードメモリは、メモリアクセスに伴う消費電力が比較的大きいことが知られている。ただし、オンボードメモリは、記憶容量が大きく、処理遅延が許容されるデータや、比較的記憶容量を確保する必要があるサービス、例えば、高精細動画像を大規模なニューラルネットワークを用いて解析する際に、メモリアクセス速度に比べて、後段の演算に要する時間が長く、メモリアクセスに伴う処理遅延を無視できる場合において、データを格納するのに適している。
[パケット制御回路]
 バッファ制御回路14は、全体として、物理ポート11から入力されたパケットのパケットヘッダからヘッダ情報を抽出し、抽出したヘッダ情報に基づいて、当該パケットを格納するバッファ13を選択し、選択したバッファ13に当該パケットを格納するように構成されている。
 図2に示すように、ヘッダ抽出回路14A、バッファ選択回路14B、および、M個のバッファ入出力回路14Cを備えている。
[ヘッダ抽出回路]
 ヘッダ抽出回路14Aは、物理ポート11から入力されたパケットについて、当該パケットのパケットヘッダに格納されているヘッダ情報を解析して抽出するように構成されている。具体的には、当該パケットの優先度やユーザID、当該パケットに対して施すべき演算の内容を特定する情報を、当該パケットの所定フィールドからヘッダ情報として抽出する。
[バッファ入出力回路]
 バッファ入出力回路14Cは、バッファ選択回路14Bで選択された1つまたは複数のバッファ13に対して、物理ポート11から入力されたパケットを出力し、バッファ選択回路14Bで選択された1つまたは複数のバッファ13から、格納されているパケットを読み出すように構成されている。
[バッファ選択回路]
 バッファ選択回路14Bは、ヘッダ抽出回路14Aで抽出したヘッダ情報に基づいて、物理ポート11から入力されたパケットを格納するバッファ13を1つまたは複数選択し、選択したバッファ13にバッファ入出力回路14Cを介して当該パケットを格納し、優先度の高いほうから順にバッファ13を選択し、選択したバッファ13からバッファ入出力回路14Cを介してパケットを読み出して、当該パケットに対応する演算処理回路12へ出力するように構成されている。
 バッファ制御回路14(バッファ選択回路14B)は、物理ポート11から入力されたパケットの優先度に応じて、当該パケットを格納するバッファ13を選択する。例えば、パケットの優先度が高いほど、メモリアクセス速度が高速なバッファ(例えば、オンチップバッファや内部バッファ)を選択する。また、パケットの優先度が低いほど、メモリアクセス速度が低速なバッファ(例えば、オンボードバッファや外付けバッファ)を選択する。なお、優先度が高・中・低のように3段階あり、バッファ13が2つの場合、高優先パケットのみをメモリアクセス速度が比較的高速なバッファを選択し、中・低優先パケットはメモリアクセス速度が比較的低速なバッファを選択すればよい。この場合の高速バッファと低速バッファの振り分ける基準は予め設定しておけばよい。
 また、バッファ制御回路14(バッファ選択回路14B)は、バッファ13を選択するための情報として、当該パケットのユーザIDや当該パケットが入力された物理ポート11、当該パケットに対して施すべき演算の内容に応じて、当該パケットを格納するバッファ13を選択する。例えば、ユーザIDごとにサービス品質を制御する場合、低遅延なサービス品質を担保すべきユーザIDが割り当てられたパケットほど、すなわちパケットのサービス品質が高いほど、メモリアクセス速度が高速なバッファを選択する。また、当該パケットに対して施すべき演算の内容が、比較的処理時間を要する処理であるパケットについては、全体の処理時間に対してメモリアクセスの処理時間が無視できるレベルとなる。このため、このようなパケットのサービス品質が低いほど、メモリアクセス速度が低速なバッファを選択する。
 また、バッファ制御回路14(バッファ選択回路14B)は、後段の演算処理回路12の稼働状況を確認するとともに、バッファ13に格納されているパケットのうち、当該パケットに対して施すべき演算の種類と、割り当て可能な演算処理回路12が対応できる演算の種類とが一致する場合、当該パケットを当該演算処理回路12へ割り当てるとともに、当該パケットをバッファ13から読み出す。
 このように、バッファ制御回路14(バッファ選択回路14B)は、物理的性能が異なるバッファ13を、格納するパケット(データ)の性質、具体的には、パケットの優先度またはサービス品質に応じて選択する。
 図10は、従来のネットワークカードの構成を示すブロック図である。図10に示すように、従来のネットワークカード50は、オンボードメモリまたはオンチップメモリとして、入力パケットを蓄積するバッファを備えるが、パケットの蓄積先は固定であったり、予めユーザが指定したりする。これに対して、本発明のネットワークカード10は、物理的性質の異なる複数のバッファ13を備え、バッファ制御回路14が、入力されたパケットのヘッダ情報から特定した当該パケットの優先度またはサービス品質に基づいて、当該パケットの蓄積先を選択するとともに蓄積先を動的に切り替えるように構成した点が異なる。
 これにより、優先度またはサービス品質が高いパケットは、バッファ13のうちメモリアクセス速度が比較的高速なバッファへ格納され、優先度またはサービス品質が低いパケットは、メモリアクセス速度が比較的低速なバッファへ格納される。したがって、優先度またはサービス品質が高いパケットの処理時間を短縮することが可能であるとともに、優先度またはサービス品質が低いパケットの処理は演算処理回路12の負荷が軽い時間に実施することで、システム全体の負荷を平準化することが可能となる。
 また、本発明のネットワークカード10では、バッファ13としてオンボードメモリに加えてオンチップメモリを併用することができる。この際、オンチップメモリは、メモリアクセスの消費電力が比較的小さいため、バッファ13としてオンボードメモリのみを用いる場合と比較して、全体の消費電力を削減することができる。また、オンチップメモリは、メモリアクセス速度が比較的速いため、全体の処理時間を短縮することができる。また、オンボードメモリとオンチップメモリを併用することで、両者を並列動作させることも可能となるため、メモリアクセスの競合を抑制することができる。
 一方、本発明のネットワークカード10では、バッファ13としてオンチップメモリに加えてオンボードメモリを併用することができる。この際、オンボードメモリは、記憶容量が比較的大きいため、バッファ13としてオンチップメモリのみを用いる場合と比較して、データサイズの大きな高精細画像やニューラルネットワークモデルなど、比較的サイズの大きなデータを扱うアプリケーションやサービスへ適用することができる。また、オンチップメモリのみを用いる場合、オンチップメモリの記憶容量を大きくすると、当該チップの面積も大きくなり、製造過程における歩留まりが悪化したり、リーク電力が増加したり、する。これに対して、オンボードメモリを併用すれば、オンチップメモリの記憶容量を削減することができ、当該チップの面積を縮小でき、製造過程における歩留まりが改良することができ、リーク電力を抑制することができる。また、オンボードメモリとオンチップメモリを併用することで、両者を並列動作させることも可能となるため、メモリアクセスの競合を抑制することができる。
[第1の実施の形態の動作]
次に、図3を参照して、第1の実施の形態にかかるネットワークカード10の動作について説明する。図3は、第1の実施の形態にかかるネットワークカードのバッファ制御方法の動作を示すフローチャートである。
 図3に示すように、まず、物理ポート11は、外部装置または外部ネットワーク、外部接続デバイスから伝送路Lを介してパケットを受信する(ステップS100)。
 続いて、バッファ制御回路は、物理ポート11から入力されたパケットからヘッダ情報を抽出し(ステップS101)(第1のステップ)、得られたヘッダ情報に基づいて、バッファ13のうちから当該パケットの蓄積先となるバッファ13を選択する(ステップS102)(第2のステップ)。
 この際、バッファ制御回路は、例えば、物理ポート11から入力されたパケットの優先度に応じて、当該パケットを格納するバッファ13を選択する。例えば、優先度の高いパケットについては、メモリアクセス速度が比較的高速なバッファ(オンチップバッファや内部バッファ)を選択する。また、優先度の低いパケットについては、メモリアクセス速度が比較的低速なバッファ(オンボードバッファや外付けバッファ)を選択する。なお、優先度が高・中・低のように3段階あり、バッファ13として物理的性能が異なる2つのバッファが2つある場合、高優先パケットのみをメモリアクセス速度が比較的高速なバッファを選択し、中・低優先パケットはメモリアクセス速度が比較的低速なバッファを選択する。この場合の高速バッファと低速バッファの振り分ける基準は予め設定する。
 また、バッファ制御回路14は、バッファ13を選択するための情報として、当該パケットのユーザIDや当該パケットが入力された物理ポート11、当該パケットに対して施すべき演算の内容に応じて、当該パケットを格納するバッファを選択する。例えば、ユーザIDごとにサービス品質を制御する場合、低遅延なサービス品質を担保すべきユーザIDが割り当てられたパケットについては、メモリアクセス速度が比較的高速なバッファへ格納する。また、当該パケットに対して施すべき演算の内容が、比較的処理時間を要する処理については、全体の処理時間に対してメモリアクセスの処理時間が無視できるレベルとなることから、メモリアクセス速度が比較的高速なバッファへ格納する。
 次に、バッファ13のうち、演算処理回路12で選択されたバッファ13は、演算処理回路12から入力されたパケットを一時的に格納する(ステップS103)。これらバッファ13には、データの書き込み・読み出し速度と記憶容量などの物理的性能が異なるものが含まれている。
 例えば、ネットワークカード10において、通信プロトコル処理を担うデバイス、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)の内部に備えるようなオンチップメモリからなるバッファ(以下、オンチップバッファということもある)は、比較的記憶容量は小さいが、メモリアクセス速度、つまりデータを読み書きする速度は比較的高速である特徴を有している。このようなオンチップメモリは、低遅延な処理が求められるサービスのデータや、優先度の高いデータ、記憶容量が少なく済むサービスのデータ、を格納するのに適している。
 一方、通信プロトコル処理を担うデバイスの外部に備え、当該デバイスと同じプリント基板上に備えられるオンボードメモリからなるバッファ(以下、オンボードバッファということもある)は、メモリアクセス速度、つまりデータの読み書きの速度は比較的低速である特徴を有している。また、オンボードメモリは、メモリアクセスに伴う消費電力が比較的大きいことが知られている。ただし、オンボードメモリは、記憶容量が大きく、処理遅延が許容されるデータや、比較的記憶容量を確保する必要があるサービス、例えば、高精細動画像を大規模なニューラルネットワークを用いて解析する際に、メモリアクセス速度に比べて、後段の演算に要する時間が長く、メモリアクセスに伴う処理遅延を無視できる場合において、データを格納するのに適している。
 この後、バッファ制御回路14は、各演算処理回路12の稼働状況に基づいてパケットの割り当て可否を確認する。ここで、割り当て可能な演算処理回路12が対応できる演算の種類が、各バッファ13に格納されているパケットのうち、当該パケットに対して施すべき演算の種類と一致する場合、バッファ制御回路14は、当該パケットを当該演算処理回路12へ割り当てるとともに、当該パケットをバッファ13から読み出して、当該演算処理回路12へ出力する(ステップS104)。
 次に、演算処理回路12は、バッファ制御回路14によりバッファ13から読み出されたパケットに対して所定の演算処理を行い、得られた演算処理結果を出力する(ステップS105)。
 バッファ制御回路14は、演算処理回路12から出力された演算処理結果をパケットに格納して、物理ポート11から光または電気信号として送信し(ステップS106)、一連のパケット演算処理を終了する。
[第1の実施の形態の効果]
 このように、本実施の形態のネットワークカード10は、バッファ13を、メモリアクセス速度または記憶容量を含む物理的性能が異なるバッファから構成し、バッファ制御回路14が、物理ポート11が受信したパケットのヘッダ情報から特定した、パケットの優先度またはサービス品質と、バッファ13の物理的性能とに基づいて、バッファ13のうちからパケットの蓄積先となるバッファ13を選択するように構成したものである。
 これにより、優先度またはサービス品質が高いパケットは、バッファ13のうちメモリアクセス速度が比較的高速なバッファへ格納され、優先度またはサービス品質が低いパケットは、メモリアクセス速度が比較的低速なバッファへ格納される。したがって、優先度またはサービス品質が高いパケットの処理時間を短縮することができるとともに、優先度またはサービス品質が低いパケットの処理は演算処理回路12の負荷が軽い時間に実施することで、システム全体の負荷を平準化することができる。
 また、バッファ13としてオンボードメモリのみを用いる場合と比較して、メモリアクセスの消費電力が小さなオンチップメモリを活用することができるため、消費電力を削減することができる。また、メモリアクセス速度が速いオンチップメモリを活用することができるため、処理時間を短縮することができる。また、オンボードメモリとオンチップメモリを併用することで、両者を並列動作させることも可能となるため、メモリアクセスの競合を抑制することができる。
 一方、オンチップメモリのみを用いる場合と比較して、記憶容量が大きなオンボードメモリを活用することができるため、データサイズの大きな高精細画像やニューラルネットワークモデルなど、比較的サイズの大きなデータを扱うアプリケーションやサービスへ適用することができる。また、オンチップメモリの記憶容量を大きくすると、当該チップの面積も大きくなり、製造過程における歩留まりが悪化したり、リーク電力が増加したり、するのに対し、オンチップメモリの記憶容量を小さくすることが可能となるため、当該チップの面積を縮小でき、製造過程における歩留まりが改良されたり、リーク電力を抑制させたりすることができる。また、オンボードメモリとオンチップメモリを併用することで、両者を並列動作させることも可能となるため、メモリアクセスの競合を抑制することができる。
 また、パケットの優先度に応じて蓄積先のバッファ13が選択されるため、最高優先のパケットの蓄積先として、高速なメモリアクセスが可能なオンチップメモリを選択でき、処理時間を低減することができる。また、優先度の低いパケットの蓄積先として、記憶容量の大きいオンボードメモリを選択できる。これにより、優先度の高いパケットを、記憶容量の小さなオンチップメモリに優先的に蓄積することができるため、オンチップメモリ量を増やすことなく、サービス品質を改善することができる。
 また、パケットのサービス内容に応じて蓄積先のバッファ13が選択されるため、低遅延が要求されるサービスのパケットの蓄積先として、高速なメモリアクセスが可能なオンチップメモリを優先的に選択でき、処理時間の増大を抑制することができる。また、比較的遅延要求が緩いサービスのパケットの蓄積先として、記憶容量の大きいオンボードバッファを選択できる。これにより、トラヒックが混雑している状況においても、サービス品質の低下を抑制でき、オンチップメモリの記憶容量を増やすことなく、サービス品質を改善することができる。
[第2の実施の形態]
 次に、図4を参照して、本発明の第2の実施の形態にかかるネットワークカード10について説明する。図4は、第2の実施の形態にかかるバッファ制御回路の構成を示すブロック図である。
 第1の実施の形態との違いは、バッファ制御回路14が、ヘッダ抽出回路14Aに代えてモニタ回路14Dを備えている点である。
 すなわち、図4に示すように、本実施の形態において、モニタ回路14Dは、バッファ13全体でのバッファ蓄積量や、物理ポート11全体でのトラヒック量(データトラヒック量)などの、ネットワークカード10全体でのパケット処理状況を監視し、得られたパケット監視情報が予め設定されている閾値を超えているか否かを判定するように構成されている。
 また、バッファ制御回路14(バッファ選択回路14B)は、モニタ回路14Dでの閾値判定結果に基づき、パケットの蓄積先を選択するように構成されている。
 例えば、パケット処理状況としてバッファ13のバッファ蓄積量を用い、モニタ回路14Dでバッファ蓄積量が閾値を超えていないと判定された場合、バッファ制御回路14は、メモリアクセス速度が比較的高速なバッファ(オンチップバッファや内部バッファ)をパケットの蓄積先として選択する。また、モニタ回路14Dでバッファ蓄積量の閾値を超えていると判定された場合、バッファ制御回路14は、メモリアクセス速度が比較的低速ではあるが、記憶容量が大きなバッファ(オンボードバッファや外付けバッファ)をパケットの蓄積先として選択する。
 なお、上記の例では、パケットの蓄積先を選択する場合、バッファ13全体でのバッファ蓄積量や、物理ポート11全体でのトラヒック量など、ネットワークカード10全体のパケット処理状況に基づいて、蓄積先を動的に変更する例を示したが、これに限定されるものではない。例えば、物理ポート11ごとのパケット処理状況に基づいてパケットの蓄積先を選択することもある。この際、モニタ回路14Dで、物理ポート11ごとにバッファ蓄積量やトラヒック量をモニタして、それぞれの閾値で閾値処理し、得られた比較結果に応じて蓄積先を先駆してもよい。さらには、ネットワークカード10全体のパケット処理状況と物理ポート11ごとのパケット処理状況の両方に基づいて、パケットの蓄積先を選択してもよい。
[第2の実施の形態の動作]
 次に、図5を参照して、第2の実施の形態にかかるネットワークカードの動作について説明する。図5は、第2の実施の形態にかかるネットワークカードのバッファ制御方法の動作を示すフローチャートである。
 図5に示す動作は、前述した図3と比較して、ステップS101,S102に代えて、ステップS200,S201が設けられている点が異なる。図5におけるその他のステップについては、図3と同様であり、ここでの説明は省略する。
 図5に示すように、ステップS100において、物理ポート11が、伝送路Lを介してパケットを受信した後、バッファ制御回路は、バッファ13全体でのバッファ蓄積量や、物理ポート11全体でのトラヒック量などのパケット処理状況を監視(モニタ)し、得られたパケット監視情報を取得する(ステップS200)。
 次に、バッファ制御回路は、得られたパケット監視情報を予め設定されている閾値と比較し、得られた比較結果に基づいて、各バッファ13のうちからパケットを蓄積すべきバッファ13を選択し(ステップS201)、前述したステップS103へ移行する。
 例えば、パケット監視情報としてバッファ蓄積量を監視する場合、バッファ蓄積量が閾値を超えていない場合は、バッファ制御回路は、蓄積先としてメモリアクセス速度が比較的高速なバッファ13を選択する。また、バッファ蓄積量の閾値を超えている場合、バッファ制御回路は、メモリアクセス速度が比較的低速ではあるが、記憶容量が大きなバッファ13を選択する。
 なお、上記の例では、パケット監視情報としてネットワークカード10全体のバッファ蓄積量やトラヒック量を用いる例を示したが、物理ポート11ごとのバッファ蓄積量やトラヒック量を用いてもよい。例えば、物理ポート11ごとにバッファ蓄積量やトラヒック量を、パケット監視情報として監視してそれぞれの閾値と比較し、得られた比較結果を蓄積先バッファの選択に用いることもある。
[第2の実施の形態の効果]
 このように、本実施の形態のネットワークカード10は、バッファ13全体でのバッファ蓄積量や、物理ポート11全体でのパケットのトラヒック量など、ネットワークカード10全体のパケット処理状況を監視し、得られたパケット監視情報を予め設定されている閾値と比較するモニタ回路14Dを備え、バッファ制御回路が、モニタ回路14Dで得られた比較結果に基づいて、パケットの蓄積先を選択するように構成したものである。
 これにより、例えば、パケット監視情報としてバッファ蓄積量を用いた場合、蓄積先のバッファ13として、記憶容量の小さいオンチップメモリを優先的に使いつつも、バッファ蓄積量が多くなった場合、記憶容量の大きいオンボードメモリへ蓄積することができる。このため、バッファ溢れを抑制することができ、バッファ溢れによる再送を回避することができる。また、バッファ溢れに伴うバックプレッシャをかけるなど、処理時間の増大を抑制することができ、これに伴い、サービス品質を改善することができる。
 また、例えば、パケット監視情報としてトラヒック量を用いた場合、トラヒック量が多い場合には、蓄積先の13バッファとして、記憶容量の大きなオンボードメモリを使うことができ、パケットロスやバッファ溢れを抑制することができる。一方、トラヒック量が少ない場合には、高速なメモリアクセスができるオンチップメモリを使えるようになるため、処理時間が増大することを抑制することができる。また、パケットロスを抑制することで、再送などの不要なトラヒックの発生を抑制できるので、ネットワーク負荷を軽減することができる。また、これに伴い、サービス品質を改善することができる。
 [第3の実施の形態]
 次に、図6を参照して、本発明の第3の実施の形態にかかるネットワークカードの構成について説明する。図6は、第3の実施の形態にかかるバッファ制御回路の構成を示すブロック図である。
 第1、第2の実施の形態との違いは、バッファ制御回路14が、ヘッダ抽出回路14Aとモニタ回路14Dの両方を備えている点である。
 すなわち、図6に示すように、本実施の形態において、ヘッダ抽出回路14Aは、物理ポート11から入力されたパケットについて、当該パケットのパケットヘッダに格納されているヘッダ情報を解析して抽出するように構成されている。具体的には、当該パケットの優先度やユーザID、当該パケットに対して施すべき演算の内容を特定する情報を、当該パケットの所定フィールドからヘッダ情報として抽出する。
 また、モニタ回路14Dは、バッファ13全体でのバッファ蓄積量や、物理ポート11全体でのトラヒック量などの、ネットワークカード10全体でのパケット処理状況を監視し、得られたパケット監視情報が予め設定されている閾値を超えているか否かを判定するように構成されている。
 また、バッファ制御回路14(バッファ選択回路14B)は、モニタ回路14Dでの閾値判定結果に基づき、パケットの蓄積先を選択するように構成されている。
 ここで、バッファ制御回路14でのバッファ選択例について説明する。図7は、バッファ選択基準例を示す説明図である。図8は、バッファ選択動作例(バッファ蓄積量)を示すグラフであり、バッファ処理情報としてバッファ蓄積量を用いた例が示されている。例えば、図7に示すように、パケットの優先度として高・中・低のように3段階設定されており、バッファ13として物理的性能が異なる2つのバッファH,Lが設けられている構成を想定する。パケット監視情報として、バッファ13全体でのバッファ蓄積量と、物理ポート11全体でのトラヒック量とが用いられる。
 この構成において、図8に示すように、バッファ蓄積量が閾値を超えていない場合、バッファ制御回路14は、図7の選択基準Aに基づいて、高・中優先パケットの蓄積先として、メモリアクセス速度が比較的高速なバッファH(オンチップバッファ)を選択し、低優先パケットの蓄積先として、メモリアクセス速度が比較的低速なバッファLを選択する。一方、バッファ蓄積量の閾値を超えている場合、バッファ制御回路14は、図7の選択基準Bに基づいて、高優先パケットの蓄積先として、メモリアクセス速度が比較的高速なバッファHを選択し、中・低優先パケットの蓄積先として、メモリアクセス速度が比較的低速なバッファLを選択する。
 また、トラヒック量が閾値を超えていない場合、バッファ制御回路14は、図8の選択基準Aに基づいて、高・中優先パケットの蓄積先として、メモリアクセス速度が比較的高速なバッファHを選択し、低優先パケットの蓄積先として、メモリアクセス速度が比較的低速なバッファLを選択する。一方、トラヒック量の閾値を超えている場合、バッファ制御回路14は、図8の選択基準Bに基づいて、高優先パケットの蓄積先として、メモリアクセス速度が比較的高速なバッファHを選択し、中・低優先パケットの蓄積先として、メモリアクセス速度が比較的低速なバッファLを選択する。
 なお、上記の例ではパケットの優先度に応じてパケットの蓄積先を選択する場合、その蓄積先をバッファ蓄積量やトラヒック量に応じて動的に変更する例を示したが、必ずしもパケットの優先度に応じて蓄積先を選択しなくともよい。例えば、パケットの処理内容に基づいてパケットの蓄積先を選択する場合は、処理内容ごとにバッファ蓄積量やトラヒック量をモニタしてそれぞれの閾値と閾値処理することもある。また、ユーザIDに基づきパケットの蓄積先を選択する場合は、ユーザIDごとにバッファ蓄積量やトラヒック量をモニタしてそれぞれの閾値と閾値処理することもある。また、物理ポート11に基づきパケットの蓄積先を選択する場合は、物理ポート11ごとにバッファ蓄積量やトラヒック量をモニタしてそれぞれの閾値と閾値処理することもある。
[第3の実施の形態の動作]
 次に、図9を参照して、第3の実施の形態にかかるネットワークカードのバッファ制御方法の動作について説明する。図9は、第3の実施の形態にかかるネットワークカードの動作を示すフローチャートである。
 図9に示す動作は、前述した図3と比較して、ステップS102に代えて、ステップS300,S301が設けられている点が異なる。図9におけるその他のステップについては、図3と同様であり、ここでの説明は省略する。
 図9に示すように、ステップS101において、バッファ制御回路は、物理ポート11から入力されたパケットからヘッダ情報を抽出し、当該パケットの優先度を示す情報やユーザID、当該パケットに対して施すべき演算処理の内容を特定する情報などを取得する。
 また、バッファ制御回路は、バッファ13全体でのバッファ蓄積量や、物理ポート11全体でのトラヒック量などのパケット処理状況を監視(モニタ)し、得られたパケット監視情報を取得する(ステップS300)。
 次に、バッファ制御回路は、得られたパケット監視情報を予め設定されている閾値と比較し、得られた比較結果とヘッダ情報とに基づいて、各バッファ13のうちからパケットを蓄積すべきバッファ13を選択し(ステップS301)、前述したステップS103へ移行する。
 この際、バッファ制御回路14は、図7に示したように、パケットの優先度として高・中・低のように3段階設定されており、バッファ13として物理的性能が異なる2つのバッファH,Lが設けられている構成を想定すると、バッファ蓄積量が閾値を超えていない場合、バッファ制御回路14は、図7の選択基準Aに基づいて、高・中優先パケットの蓄積先として、メモリアクセス速度が比較的高速なバッファH(オンチップバッファ)を選択し、低優先パケットの蓄積先として、メモリアクセス速度が比較的低速なバッファLを選択する。一方、バッファ蓄積量の閾値を超えている場合、バッファ制御回路14は、図7の選択基準Bに基づいて、高優先パケットの蓄積先として、メモリアクセス速度が比較的高速なバッファHを選択し、中・低優先パケットの蓄積先として、メモリアクセス速度が比較的低速なバッファLを選択する。
 また、トラヒック量が閾値を超えていない場合、バッファ制御回路14は、図7の選択基準Aに基づいて、高・中優先パケットの蓄積先として、メモリアクセス速度が比較的高速なバッファHを選択し、低優先パケットの蓄積先として、メモリアクセス速度が比較的低速なバッファLを選択する。一方、トラヒック量の閾値を超えている場合、バッファ制御回路14は、図7の選択基準Bに基づいて、高優先パケットの蓄積先として、メモリアクセス速度が比較的高速なバッファHを選択し、中・低優先パケットの蓄積先として、メモリアクセス速度が比較的低速なバッファLを選択する。
 なお、上記の例では、パケット監視情報としてネットワークカード10全体のバッファ蓄積量やトラヒック量を用いる例を示したが、物理ポート11ごとのバッファ蓄積量やトラヒック量を用いてもよい。例えば、物理ポート11ごとにバッファ蓄積量やトラヒック量を、パケット監視情報として監視してそれぞれの閾値と比較し、得られた比較結果を蓄積先のバッファ13の選択に用いることもある。
[第3の実施の形態の効果]
 このように、本実施の形態のネットワークカード10は、バッファ制御回路14が、バッファ13全体でのバッファ蓄積量や、物理ポート11全体でのパケットのトラヒック量など、ネットワークカード10全体のパケット処理状況を監視し、得られたパケット監視情報を予め設定されている閾値と比較した比較結果と、パケットのヘッダ情報から特定した、パケットの優先度またはサービス品質とに基づいて、パケットの蓄積先を選択するように構成したものである。
 これにより、バッファ蓄積量やトラヒック量などのパケット監視情報と、パケットの優先度またはサービス品質との組み合わせごとに、物理的性能の異なるバッファ13を選択することができる。このため、ネットワークカード10全体のパケット処理状況に応じて、優先度またはサービス品質が異なるパケットを、最適なバッファ13に蓄積することができる。したがって、通信ネットワークの優先制御とパケットに対する演算処理の割り当て制御とを融合することができ、結果として、パケットに対して演算処理を効率よく実行することが可能となる。
 また、パケットの優先度に応じて蓄積先のバッファ13が選択されるため、最高優先のパケットの蓄積先として、高速なメモリアクセスが可能なオンチップメモリを優先的に選択でき、処理時間を低減することができる。また、優先度の低いパケットの蓄積先として、記憶容量の大きいオンボードメモリを選択できる。これにより、優先度の高いパケットを、記憶容量の小さなオンチップメモリに優先的に蓄積することができるため、オンチップメモリ量を増やすことなく、サービス品質を改善することができる。
 また、パケットのサービス内容に応じて蓄積先のバッファ13が選択されるため、低遅延が要求されるサービスのパケットの蓄積先として、高速なメモリアクセスが可能なオンチップメモリを優先的に選択でき、処理時間の増大を抑制することができる。また、比較的遅延要求が緩いサービスのパケットの蓄積先として、記憶容量の大きいオンボードバッファを選択できる。これにより、トラヒックが混雑している状況においても、サービス品質の低下を抑制でき、オンチップメモリの記憶容量を増やすことなく、サービス品質を改善することができる。
 また、パケット監視情報としてバッファ蓄積量を用いた場合、パケットの蓄積先バッファとして、記憶容量の小さいオンチップメモリを優先的に使いつつも、バッファ蓄積量が多くなった場合、記憶容量の大きいオンボードメモリへ蓄積することができる。このため、バッファ溢れを抑制することができ、バッファ溢れによる再送を回避することができる。また、バッファ溢れに伴うバックプレッシャをかけるなど、処理時間の増大を抑制することができ、これに伴い、サービス品質を改善することができる。
 また、パケット監視情報としてトラヒック量を用いた場合、トラヒック量が多い場合には、パケットの蓄積先バッファとして、記憶容量の大きなオンボードメモリを使うことができ、パケットロスやバッファ溢れを抑制することができる。一方、トラヒック量が少ない場合には、高速なメモリアクセスができるオンチップメモリを使えるようになるため、処理時間が増大することを抑制することができる。また、パケットロスを抑制することで、再送などの不要なトラヒックの発生を抑制できるので、ネットワーク負荷を軽減することができる。また、これに伴い、サービス品質を改善することができる。
 また、トラヒック量に応じて、蓄積先としてオンチップメモリまたはオンボードメモリを選択する選択基準を変更することができる。したがって、トラヒック量が多い場合には、最高優先パケットの蓄積先としてオンチップメモリを選択できるため、処理時間の増大を抑制でき、サービス品質の低下を抑制することができる。一方、トラヒック量が少ない場合には、最高優先および高優先パケットの蓄積先としてオンチップメモリを選択できるため、高優先パケットの処理時間を短縮しつつ、消費電力を削減することができる。
[実施の形態の拡張]
 以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
 10…ネットワークカード、11…物理ポート、12…演算処理回路、13…バッファ13…バッファ制御回路、14A…ヘッダ抽出回路、14B…バッファ選択回路、14C…バッファ入出力回路、14D…モニタ回路、L…伝送路。

Claims (6)

  1.  伝送路を介してパケットを受信および送信するように構成された複数の物理ポートと、
     前記複数の物理ポートが受信した第1のパケットを一時的に蓄積するように構成された複数のバッファと、
     前記複数のバッファから読み出された第2のパケットに対して所定の演算処理を行うように構成された複数の演算処理回路と、
     前記複数のバッファのいずれかに前記第1のパケットを格納し、前記第2のパケットに関する、前記演算処理回路への割り当ておよび前記バッファからの読み出しを制御するように構成されたバッファ制御回路とを備え、
     前記複数のバッファは、メモリアクセス速度または記憶容量を含む物理的性能が異なるバッファからなり、
     前記バッファ制御回路は、前記第1のパケットのヘッダ情報に基づいて、前記第1のパケットの優先度またはサービス品質を特定し、得られた優先度またはサービス品質と、前記複数のバッファの物理的性能とに基づいて、前記複数のバッファのうちから前記第1のパケットの蓄積先となるバッファを選択する
     ことを特徴とするネットワークカード。
  2.  請求項1に記載のネットワークカードにおいて、
     前記バッファ制御回路は、前記第1のパケットの優先度またはサービス品質が高いほど、前記複数のバッファのうちからメモリアクセス速度が高速なバッファを選択することを特徴とするネットワークカード。
  3.  請求項1または請求項2に記載のネットワークカードにおいて、
     前記バッファ制御回路は、前記第1のパケットの優先度またはサービス品質が低いほど、前記複数のバッファのうちから記憶容量が大きいバッファを選択することを特徴とするネットワークカード。
  4.  請求項1~請求項3のいずれかに記載のネットワークカードにおいて、
     前記バッファ制御回路は、前記複数のバッファのバッファ蓄積量または前記複数の物理ポートのトラヒック量を監視し、得られたパケット監視情報に基づいて前記複数のバッファのうちから前記第1のパケットの蓄積先となるバッファを選択することを特徴とするネットワークカード。
  5.  請求項1~請求項3のいずれかに記載のネットワークカードにおいて、
     前記バッファ制御回路は、前記複数のバッファのバッファ蓄積量または前記複数の物理ポートのトラヒック量を監視し、得られたパケット監視情報と前記第1のパケットの優先度またはサービス品質とに基づいて前記複数のバッファのうちから前記第1のパケットの蓄積先となるバッファを選択することを特徴とするネットワークカード。
  6.  伝送路を介してパケットを受信および送信するように構成された複数の物理ポートと、前記複数の物理ポートが受信した第1のパケットを一時的に蓄積するように構成された、メモリアクセス速度または記憶容量を含む物理的性能が異なる、複数のバッファと、前記複数のバッファから読み出された第2のパケットに対して所定の演算処理を行うように構成された複数の演算処理回路と、前記複数のバッファのいずれかに前記第1のパケットを格納し、前記第2のパケットに関する、前記演算処理回路への割り当ておよび前記バッファからの読み出しを制御するように構成されたバッファ制御回路とを備えるネットワークカードで用いられるバッファ制御方法であって、
     前記バッファ制御回路が、前記第1のパケットのヘッダ情報に基づいて、前記第1のパケットの優先度またはサービス品質を特定する第1のステップと、
     前記バッファ制御回路が、得られた優先度またはサービス品質と、前記複数のバッファの物理的性能とに基づいて、前記複数のバッファのうちから前記第1のパケットの蓄積先となるバッファを選択する第2のステップと
     を備えることを特徴とするバッファ制御方法。
PCT/JP2020/042457 2020-11-13 2020-11-13 ネットワークカードおよびバッファ制御方法 WO2022102088A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US18/251,325 US20230421510A1 (en) 2020-11-13 2020-11-13 Network card and buffer control method
PCT/JP2020/042457 WO2022102088A1 (ja) 2020-11-13 2020-11-13 ネットワークカードおよびバッファ制御方法
JP2022561811A JP7464144B2 (ja) 2020-11-13 2020-11-13 ネットワークカードおよびバッファ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/042457 WO2022102088A1 (ja) 2020-11-13 2020-11-13 ネットワークカードおよびバッファ制御方法

Publications (1)

Publication Number Publication Date
WO2022102088A1 true WO2022102088A1 (ja) 2022-05-19

Family

ID=81601830

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/042457 WO2022102088A1 (ja) 2020-11-13 2020-11-13 ネットワークカードおよびバッファ制御方法

Country Status (3)

Country Link
US (1) US20230421510A1 (ja)
JP (1) JP7464144B2 (ja)
WO (1) WO2022102088A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013109707A (ja) * 2011-11-24 2013-06-06 Toshiba Corp 情報処理装置、及びプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013109707A (ja) * 2011-11-24 2013-06-06 Toshiba Corp 情報処理装置、及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ARIKAWA, YUKI: "C-12-44 A Study on delay control scheme in a low- power frame search engine", 2015 PROCEEDINGS OF THE 2015 IEICE GENERAL CONFERENCE; MARCH 10-13, 2015, vol. 2, 24 February 2015 (2015-02-24) - 13 March 2015 (2015-03-13), JP, pages 105, XP009537315 *

Also Published As

Publication number Publication date
US20230421510A1 (en) 2023-12-28
JP7464144B2 (ja) 2024-04-09
JPWO2022102088A1 (ja) 2022-05-19

Similar Documents

Publication Publication Date Title
RU2584449C2 (ru) Система управления связью, коммутационный узел и способ управления связью
US6877048B2 (en) Dynamic memory allocation between inbound and outbound buffers in a protocol handler
JP4150336B2 (ja) 共有属性に基づいて圧縮キューペアから複数の仮想キューペアを作成する構成
JP5054818B2 (ja) インターフェース装置、通信システム、不揮発性記憶装置、通信モード切換方法および集積回路
KR101725755B1 (ko) 적응형 라우팅을 이용하여 자원 활용도를 제어하기 위한 메커니즘
US7307998B1 (en) Computer system and network interface supporting dynamically optimized receive buffer queues
US7606151B2 (en) Power reduction in switch architectures
KR20070089556A (ko) Dma 데이터 전송 장치 및 dma 데이터 전송 방법
EP3364625B1 (en) Device, system and method for adaptive payload compression in a network fabric
US11165705B2 (en) Data transmission method, device, and computer storage medium
US20180181421A1 (en) Transferring packets between virtual machines via a direct memory access device
WO2004019165A2 (en) Method and system for tcp/ip using generic buffers for non-posting tcp applications
JP6021132B2 (ja) 連続データをパケットにより無線通信する送信装置、受信装置、通信装置、プログラム、送信方法、及び、受信方法
US9699118B2 (en) System for flexible dynamic reassignment of throughput
CN114513472A (zh) 网络拥塞控制方法及装置
WO2022102088A1 (ja) ネットワークカードおよびバッファ制御方法
US9590925B2 (en) Packet processing apparatus, packet processing method, and non-transitory computer-readable storage medium
US20120300623A1 (en) Load balance control unit, load balance control method and storage medium
CN106372013A (zh) 远程内存访问方法、装置和系统
US11405330B2 (en) System and method for bandwidth optimization with support for multiple links
US11063883B2 (en) End point multiplexing for efficient layer 4 switching
CN111371692B (zh) 基于tcp协议的窗口控制方法、装置和电子设备
JP2007325178A (ja) パケット処理システム、パケット処理方法、およびプログラム
WO2022102086A1 (ja) ネットワークカードおよびパケット処理方法
US20170295237A1 (en) Parallel processing apparatus and communication control method

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2022561811

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 18251325

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20961616

Country of ref document: EP

Kind code of ref document: A1