Communication control device, information processing device, communication control method, information processing method, and program
The communication device and method address bandwidth inefficiencies in TSN by using clock-cycle-based transmission control to manage gate states, ensuring real-time performance and efficient bandwidth utilization.
Patent Information
- Application Number
- JP2021195485
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-12-01
- Publication Date
- 2025-08-04
- Estimated Expiration
- 2041-12-01
AI Technical Summary
Existing communication technologies utilizing the TSN standard struggle with ineffective utilization of bandwidth, leading to potential delays and inefficiencies in real-time communication due to the need to consider previous gate states and the lack of effective frame transmission control.
A communication device and method that includes a transmission control unit to manage message transmission based on generated transmission control information, using gate control information with entries defined in clock cycles, ensuring timely and efficient utilization of bandwidth by controlling the opening and closing of gates for message queues.
Enhances bandwidth utilization and ensures real-time performance by effectively managing message transmission through precise control of gate states, allowing for efficient handling of both express and preemptable frames.
Smart Images

Figure 0007717591000001 
Figure 0007717591000002 
Figure 0007717591000003
Abstract
Description
Technical Field
[0001] Embodiments of the present invention relate to a communication control device, a communication control method, an information processing device, an information processing method, and a program.
Background Art
[0002] Communication devices that execute real-time communication via a network compliant with the TSN (Time-Sensitive Networking) standard or the like are known. In TSN, the transmission of messages from each of a plurality of queues is controlled according to a gate control list in which the opening and closing of a plurality of gates corresponding to each of the plurality of queues (that is, whether or not to transmit the messages stored in the queue) are set in time units.
[0003] However, in the above-mentioned TSN standard or the like, there are cases where the bandwidth cannot be effectively utilized.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Non-Patent Documents
[0005]
Non-Patent Document 1
Non-Patent Document 2
Summary of the Invention
Problems to be Solved by the Invention
[0006] Therefore, the problem to be solved by the present invention is to provide a communication control device, an information processing device, a communication control method, an information processing method, and a program capable of effectively utilizing the bandwidth.
Means for Solving the Problems
[0007] The communication control device according to the embodiment includes a transmission control unit and a communication unit. The transmission control unit controls the transmission of messages stored in the queue based on transmission control information generated based on gate control information in which gates corresponding to each of a plurality of queues are set. Open and Close The communication unit transmits the message according to the control of the transmission control unit. The transmission control information indicates the timing at which an event regarding the transmission of the message occurs next at the time of controlling the transmission of the message. includes a plurality of entries. Each of the plurality of entries as the closing of the gate includes information and a period assigned to the entry The period is represented by the number of clock cycles based on the operation clock of the transmission control unit.
Brief Description of Drawings
[0008]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23
Figure 24
Figure 25
Figure 26
Figure 27
Figure 28
Figure 29
Figure 30
Figure 31
Figure 32
Figure 33
Figure 34
Figure 35
Figure 36
Figure 37
Figure 38
Figure 39
Figure 40
Figure 41
Figure 42
Figure 43
Figure 44
Figure 45
Figure 46
Figure 47
Figure 48
Figure 49
Figure 50
Figure 51
Figure 52
Embodiments for Carrying Out the Invention
[0009] Hereinafter, each embodiment will be described with reference to the drawings. (First Embodiment) First, the first embodiment will be described. The communication device in this embodiment is a device configured to execute real-time communication of messages via a network. Hereinafter, an example using TSN (Time-Sensitive Networking) as the real communication standard will be described, but the standard applicable to this embodiment is not limited to TSN.
[0010] By the way, in IEEE 802.1Qbv of TSN, for each of a plurality of queues, whether a frame (an example of a message) stored in the queue can be transmitted is determined using a gate control list (gate control information) in which the opening and closing of a gate corresponding to each queue are set in time units. This gate control list includes entries for each time unit. When the open state of the gate corresponding to a queue continues (is continuous) over a plurality of entries (time units) in each of the plurality of queues, frames stored in the queue can be transmitted until the gate is finally closed.
[0011] However, when implementing the operation of IEEE 802.1Qbv defined in this way, it is necessary to determine whether a frame can be transmitted while reading the state of the previous gate (that is, control the transmission of the frame). In such a configuration, there is no guarantee that the processing can be completed within a certain time, and real-time performance cannot be given to the processing. Also, if the state of the previous gate is not considered in order to give real-time performance to the processing, the given bandwidth cannot be effectively utilized. Furthermore, in order to effectively utilize the bandwidth less than one frame until the gate is closed, it is required to use in combination the frame interrupt function defined in IEEE 802.1Qbu.
[0012] Therefore, in the present embodiment, in view of the above circumstances, a communication device capable of more effectively utilizing a bandwidth will be described.
[0013] FIG. 1 shows an example of the hardware configuration of the communication device in the present embodiment. As shown in FIG. 1, the communication device 100 includes a memory 1, a host processor 2, a storage 3, a network interface controller 4, a storage controller 5, and the like.
[0014] The memory 1 is connected to the host processor 2 via a memory controller in the host processor 2. The memory 1 is realized by, for example, DRAM (Dynamic Random Access Memory) or the like.
[0015] The host processor 2 is connected to the storage controller 5 using a bus such as PCI Express (registered trademark). Similarly, the host processor 2 is connected to the network interface controller 4 using a bus such as PCI Express.
[0016] The host processor 2 functions as an information processing device that expands an image of an execution program stored in the storage 3 into the memory 1 and executes processing while reading instructions and data on the memory 1. The processing executed by the host processor 2 is executed by one or more cores provided in the host processor 2. Although the memory 1 and the host processor 2 are separately described in FIG. 1, the host processor 2 may be configured integrally with the memory 1.
[0017] The storage 3 is realized by, for example, an HDD (Hard Disk Drive) and an SSD (Solid State Drive) or the like. The storage 3 is connected to the storage controller 5 according to standards such as SATA, SAS, and U.2 (SFF-8639). Further, the storage 3 and the storage controller 5 may be configured integrally.
[0018] The network interface controller 4 functions as a communication control device that connects the host processor 2 to the network 200.
[0019] The network 200 is, for example, Ethernet (registered trademark). Specifically, the network 200 is a network that conforms to the standards defined in IEEE 802.1. The standards defined in IEEE 802.1 are, for example, the above-mentioned TSN standard and AVB (Audio Video Bridging) standard, etc. Also, the type of the network 200 may be arbitrary. Specifically, the network 200 is, for example, an office network, a network inside a data center, an in-vehicle network, a factory internal network, a network of a mobile base station, and a network of core facilities, etc.
[0020] The network interface controller 4 and the storage controller 5 are realized by a processor such as an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), or a CPU (Central Processing Unit), etc. Also, the network interface controller 4 and the storage controller 5 may be realized by combining two or three of ASIC, FPGA, and the processor. Also, the network interface controller 4 and the storage controller 5 may incorporate a memory different from the above-mentioned memory 1 inside. Also, the network interface controller 4 and the storage controller 5 may be implemented as separate chips from the host processor 2, or may be implemented on the same chip as the host processor 2 as a SoC (System-on-a-Chip).
[0021] FIG. 2 is a block diagram showing an example of the functional configuration of the communication device 100 in the present embodiment. In FIG. 2, the functional configurations of the host processor (information processing device) and the network interface controller 4 (communication control device) mainly provided in the communication device 100 will be described.
[0022] As shown in FIG. 2, the host processor 2 includes a gate control list storage unit 201, a synchronization control unit 202, a frame generation unit 203, a transmission control information generation unit 204, a setting unit 205, and a detection unit 206.
[0023] The gate control list storage unit 201 stores a gate control list used for the above-described transmission control (control of transmission timing) of the frame. The gate control list (Gate Control List) is information used to execute the control of Enhancements for scheduled traffic defined in IEEE 802.1Q.
[0024] The gate control list stored in the gate control list storage unit 201 may be stored in advance in the storage 3 or the like, or may be received (acquired) via the network 200 by CNC (Centralized Network Configuration) defined in IEEE 802.1Qcc, for example.
[0025] FIG. 3 shows an example of the gate control list. The gate control list shown in FIG. 3 includes six entries from T00 to T05. Each entry includes the gate state of the queue corresponding to each of the eight traffic classes and a time interval. TC0 to TC7 mean traffic classes. For example, TC7 represents the seventh traffic class.
[0026] The gate states of each traffic class are represented by "o" and "C". "o" means that the gate is open. "C" means that the gate is closed. The gate state indicates whether transmission in the queue of the traffic class (transmission of the frames stored in the queue) is permitted or not.
[0027] The time interval represents the time for which an entry continues. For example, in the example of FIG. 3, a time interval of 128 μs is set for the entry of T00. This indicates that the entry of T00 continues for 128 μs. In order from T00, the set gate state is maintained for each time interval of the time interval, and as time elapses for T01, T02, ···, the gate state of the gate of each traffic class is switched. When the last entry (T05 in the example of FIG. 3) ends, it means that the gate control for one cycle is completed. Regarding the start timing of the next cycle, the process may be repeated by returning to the first entry (T00 in the example of FIG. 3) immediately after the last entry ends. Also, based on the time information managed by the time management unit 404, the start timing of the next cycle may be determined. Note that before the gate control for one cycle is completely finished, the next cycle may be forcibly started based on the time information.
[0028] Also, each entry further includes an operation. In the example shown in FIG. 3, SetGateStates is set in common for each entry, and the SetGateStates represents setting "o" or "C" as the gate state for a plurality of queues (queues of the ports that the network interface controller 4 has).
[0029] Although not shown in FIG. 3, the gate control list also sets (stores) the time (base time) at which gate control starts. The base time is included in the transmission control information described later and transmitted to the network interface controller 4. The base time is represented by, for example, year, month, day, hour, minute, and second, but may be represented in other formats as long as it can identify the timing to start gate control. Further, although not shown in FIG. 3, the gate control list may include the time (cycle time) for one cycle of gate control. For example, the total value of the time intervals of all entries (T00 to T05 in the example of FIG. 3) included in the gate control list may be set (stored) as the cycle time. The cycle time is displayed in microseconds or the like, for example, in the same way as the time interval, but may be represented in other formats as long as it can identify the time for one cycle.
[0030] The synchronization control unit 202 performs time synchronization with other communication devices via the network 200. For example, the synchronization control unit 202 performs time synchronization by a time synchronization protocol such as IEEE 1588 or IEEE 802.1AS via the network 200, and corrects the time information managed by the network interface controller 4 (time management unit 404 described later).
[0031] The frame generation unit 203 generates a frame (transmission frame) transmitted via the network interface controller 4. Here, a frame refers to the smallest unit of data exchanged in the data link layer. The frame generation unit 203 generates, for example, the data included in the transmission frame and the headers and footers of the protocols corresponding to the upper layers of Ethernet. The frame generation unit 203 is realized by, for example, a transmission application, a protocol stack, and a device driver operating on the host processor 2.
[0032] The frame generation unit 203 sets the traffic class in the transmission frame according to the characteristics of the information to be transmitted and the like. When eight traffic classes are used, for example, values from TC0 to TC7 are used as the identification information of the traffic class.
[0033] In addition, although only one frame generation unit 203 is shown in FIG. 2, the host processor 2 may be configured to include a plurality of frame generation units 203.
[0034] The transmission control information generation unit 204 generates transmission control information from the gate control list stored in the gate control list storage unit 201. The transmission control information generation unit 204 reads the gate control list from the gate control list storage unit 201 and generates transmission control information, for example, at the time of initialization and when a change in link speed or operation speed information is detected by the detection unit 206 described later. Although the details of the process of generating the transmission control information will be described later, the transmission control information generated by the transmission control information generation unit 204 is information indicating the timing at which the next event related to the transmission of the frame occurs at the time of controlling the transmission of the frame. Specifically, the transmission control information (each entry) includes period information indicating the period assigned to the entry and transmission enable information indicating the data amount (hereinafter referred to as the transmissible amount) or time of the frames that can be transmitted until the next gate is closed at the start time of the period (that is, the timing of gate switching).
[0035] The setting unit 205 transmits the transmission control information generated by the transmission control information generation unit 204 to the network interface controller 4.
[0036] The detection unit 206 detects a change in the link speed of the network interface controller 4. The detection unit 206 receives, for example, a notification from the network interface controller 4 and detects a change in the link speed. The link speed represents the speed of communication via the network 200 by the network interface controller 4. Further, the detection unit 206 receives, for example, a notification from the network interface controller 4 and also detects a change in the operating speed information including at least one of the clock information and the bit width information. The clock information represents the clock frequency or the clock cycle (clock period) for performing frame transmission control (processing) in the network interface controller 4. In this embodiment, the clock frequency or the clock cycle (clock period) for performing frame transmission control refers to the clock frequency on the data transfer path between the transmission control unit 409 and the communication unit 401 and the clock frequency of the communication unit 401. The bit width information represents the bit width of the bus when the network interface controller 4 (communication unit 401) transmits a frame, the bit width of the bus provided between the transmission control unit 411 and the communication processing unit 413, or the bit width of the bus provided between the communication processing unit 413 and the communication unit 401. That is, although not shown, the change in the operating speed information notified by the network interface controller 4 to the detection unit 206 may be based on the clock information or the bit width information other than the communication unit 401.
[0037] Note that the gate control list storage unit 201 described above is realized, for example, by the memory 1 configured integrally with the host processor 2, but may be realized by a memory other than the memory 1.
[0038] Further, each of the above-described units 202 to 206 is implemented by, for example, one or more processors. Specifically, each of the units 202 to 206 may be implemented by causing a processor such as a CPU (Central Processing Unit) to execute a program, that is, by software. Note that each of the units 202 to 206 may be implemented by hardware such as a dedicated IC (Integrated Circuit), or may be implemented by a combination of software and hardware. When a plurality of processors are used to implement each of the units 202 to 206, each processor may be used to implement one of the units 202 to 206, or may be used to implement two or more of the units 202 to 206.
[0039] Also, as shown in FIG. 2, the network interface controller 4 includes a communication unit 401, a received frame storage unit 402, a transmitted frame storage unit 403, a time management unit 404, a data transfer unit 405, a queue attribute information storage unit 406, a communication process determination unit 407, a reception unit 408, a transmission control information storage unit 409, a transmission control information management unit 410, a transmission control unit 411, a transmission permission determination unit 412, a communication process unit 413, and a notification unit 414.
[0040] The communication unit 401 includes functions referred to as a MAC (Media Access Controller) and a PHY, and performs processes necessary for transmitting and receiving frames according to the protocols of the data link layer and the physical layer in the network 200. Specifically, the communication unit 401 performs the processes of the data link layer and the physical layer of Ethernet defined by IEEE 802.3.
[0041] The received frame storage unit 402 stores the received frames received by the communication unit 401. The received frame storage unit 402 stores the data of the received frames and the lengths of the frames in order by using queues (FIFOs) prepared for each traffic class as a set. Note that the data of the frames may include time stamp information at the time of reception.
[0042] The transmission frame storage unit 403 stores the transmission frames generated by the frame generation unit 203 included in the host processor 2. The transmission frame storage unit 403 stores the data of the transmission frames and the lengths of the frames in order, using queues (FIFOs) prepared for each traffic class, in sets.
[0043] The time management unit 404 manages, for example, the time (time information indicating the time) within the network interface controller 4.
[0044] When the synchronization control unit 202 performs time synchronization, the communication unit 401 uses the time information provided from the time management unit 404 to acquire the timestamp from the received frame and attach the timestamp to the transmitted frame.
[0045] The data transfer unit 405 transfers data to and from the memory 1 (host processor 2). The data transfer unit 405 transfers frames by DMA (Direct Memory Access), for example, between the received frame storage unit 402 and the memory 1 and between the memory 1 and the transmission frame storage unit 403.
[0046] When a frame is received, the data transfer unit 405 reads the transfer destination address from the received descriptor, and writes the data of the received frame read from the corresponding queue in the received frame storage unit 402 into the area of the memory 1 designated by the transfer destination address. Then, the data transfer unit 405 writes the length and status of the received descriptor.
[0047] On the other hand, when a frame is transmitted, the data transfer unit 405 reads the transfer source address and length from the transmission descriptor, reads the data of the length specified by the length from the area of the memory 1 designated by the transfer source address, and writes the data of the frame into the corresponding queue in the transmission frame storage unit 403. Then, the data transfer unit 405 writes the status of the transmission descriptor.
[0048] Transmission and reception of frames according to the time synchronization protocol are also executed via the data transfer unit 405. The synchronization control unit 202 calculates, for example, the time offset with respect to the master connected via the network 200 from the time stamps of each frame, and corrects the time information of the time management unit 404.
[0049] Here, FIG. 4 shows a configuration example of a reception descriptor. As shown in FIG. 4, the reception descriptor is a ring buffer and is managed using two variables, Head and Tail. As shown in FIG. 4, the descriptors from Head to Tail - 1 indicate the descriptors owned by the HW (hardware), that is, the network interface controller 4. Also, the descriptors from Tail to Head - 1 indicate the descriptors owned by the SW (software), that is, the software (frame generation unit 203 and synchronization control unit 202) operating on the host processor 2. The values of Head and Tail are notified between the network interface controller 4 and the host processor 2 using a register interface and an interrupt signal.
[0050] Each entry (each descriptor) of the reception descriptor (reception descriptor ring) includes a destination address, a length, and a status. The destination address indicates the start address indicating the start position of the storage area of the data storage unit (for example, memory 1) that stores the data of the frame to be received. The length indicates the length of the frame to be received. The status stores information indicating the state of the reception process.
[0051] FIG. 5 shows a configuration example of a transmission descriptor. Although detailed description is omitted, the transmission descriptor is a ring buffer and is managed using two variables, Head and Tail, in the same manner as the above-described reception descriptor.
[0052] Each entry (each descriptor) of the transmission descriptor (transmission descriptor ring) includes a source address, a length, and a status. The source address indicates the start address indicating the start position of the storage area of the data storage unit (for example, memory 1) where the data of the frame to be transmitted is stored. The length indicates the length of the frame to be transmitted. The status stores information indicating the state of the transmission process.
[0053] The above status includes, for example, an error bit and a DONE bit. The error bit indicates the presence or absence of a transfer error. The DONE bit indicates that the processing has been completed by the network interface controller 4. When the DONE bit of the reception descriptor is 1, it indicates that the reception process has been completed. When the DONE bit of the transmission descriptor is 1, it indicates that the transmission process has been completed. The network interface controller 4 writes 1 to each bit (error bit and DONE bit). Then, after the frame generation unit 203 or the synchronization control unit 202 checks each bit, it clears each bit by writing 0 to each bit.
[0054] Here, the network interface controller 4 in the present embodiment performs transmission and reception processing of a non - splittable frame (a frame for high - priority that requires low - latency transmission) called an express frame defined by, for example, IEEE 802.3br in express Media Access Control (eMAC), and performs transmission and reception of a splittable frame (a frame for low - priority that does not require low - latency transmission) called a preemptable frame in preemptable Media Access Control (pMAC), and is assumed to have the frame interrupt function defined in the above - mentioned IEEE 802.1Qbu.
[0055] Note that the queues in which the above-described express frames (i.e., non - splittable frames) and preemptable frames (i.e., splittable frames) are stored are predefined, and which frames are stored in each of the plurality of queues is stored (set) in the queue attribute information storage unit 406 as attribute information indicating the attributes of the queue.
[0056] FIG. 6 shows an example of the attribute information stored in the queue attribute information storage unit 406. As shown in FIG. 6, the attribute information is stored in the queue attribute information storage unit 406 in the form of, for example, a frame preemption status table, and includes the association between traffic classes and frame preemption states. Note that the frame preemption state takes two types of values: express (frame) and preemptable (frame).
[0057] According to the attribute information shown in FIG. 6, it is shown that frames in the queues of traffic classes TC1 to TC7 are transmitted as express frames, and frames in the queue of traffic class TC0 are transmitted as preemptable frames.
[0058] The communication processing determination unit 407 refers to the attribute information (frame preemption status table) stored in the above - described queue attribute information storage unit 406, discriminates whether the frames stored in each of the plurality of queues are to be transmitted as express frames or preemptable frames, and determines the communication processing for the frames.
[0059] The reception unit 408 receives the input of the transmission control information transmitted by the setting unit 205 of the host processor 2. The reception unit 408 may be able to set the transmission control information by a predefined register. The setting unit 205 may notify the head address and length of the transmission control information stored in the memory 1 in a predefined format by a register, and the reception unit 408 may access the memory 1 to read the transmission control information.
[0060] The transmission control information received by the reception unit 408 is stored in the transmission control information storage unit 409.
[0061] The transmission control information management unit 410 determines the timing to read (load) a new entry from among a plurality of entries included in the transmission control information stored in the transmission control information storage unit 409, based on the time information (global clock synchronized across the entire network) managed by the time management unit 404 and the local clock (for example, a 156.25 MHz clock signal supplied from a 10 Gbps MAC) inside the network interface controller 4. Specifically, the transmission control information management unit 410 determines, for example, the timing to read the first entry of the gate control list (which is the start timing of the transmission control note and corresponds to the timing when CycleStart of IEEE 802.1Qbv becomes valid), based on the above-described global clock, base time, and cycle time. Also, for the timing to read the second and subsequent entries (the i-th entry) (which corresponds to the timing when ExitTimer of IEEE 802.1Qbv becomes 0), it is determined based on the above-described local clock and the time interval (the time for which the entry continues) of the (i - 1)-th entry.
[0062] Also, the transmission control information management unit 410 manages the read entry and updates, for example, the transmittable information (the transmittable amount indicated thereby) included in the entry based on the progress of the local clock.
[0063] The transmittable information included in the entry managed by the transmission control information management unit 410 is provided to the transmission permission determination unit 412. Note that the transmittable information provided from the transmission control information management unit 408 to the transmission permission determination unit 410 is the number of frame transmittable bits or the frame transmittable time, as will be described later.
[0064] The transmission control unit 411 controls the transmission start timing (transmission timing) of a frame to be transmitted, which is selected from among the frames stored in a plurality of queues, by cooperating with the transmission permission determination unit 412. The communication unit 401 described above transmits a frame in accordance with the control of the transmission control unit 411. Note that the transmission control unit 411 includes a first transmission control unit 411a that controls the transmission of the above-described express frames and a second transmission control unit 411b that controls the transmission of preemptable frames.
[0065] The transmission permission determination unit 412 performs a determination as to whether it is possible to transmit a frame stored at the head of a plurality of queues (the head frame of the queue) in accordance with Enhancements for scheduled traffic (hereinafter referred to as guard band determination). The guard band determination in the present embodiment is performed based on the transmission enable information provided from the transmission control information management unit 410 as described above and the transmission cost when each head frame of the plurality of queues is transmitted by the communication unit 401.
[0066] The communication processing unit 413 includes a first communication processing unit 413a and a second communication processing unit 413b. The first communication processing unit 413a executes the processing of eMAC defined by IEEE 802.3br. Specifically, the first communication processing unit 413a executes the transmission and reception processing of the above-described express frames. On the other hand, the second communication processing unit 413b executes the processing of pMAC defined by IEEE 802.3br. Specifically, the second communication processing unit 413b executes the transmission and reception processing of the above-described preemptable frames.
[0067] Here, when the communication processing determination unit 407 determines that the frame to be transmitted is an express frame, the communication processing determination unit 407 determines to process and transmit the frame to be transmitted by the first communication processing unit 413a. In this case, the transmission of the frame to be transmitted is controlled by the first transmission control unit 411a, and the frame is passed from the first transmission control unit 411a to the first communication processing unit 413a. On the other hand, when the communication processing determination unit 407 determines that the frame to be transmitted is a preemptable frame, the communication processing determination unit 407 determines to process and transmit the frame to be transmitted by the second communication processing unit 413b. In this case, the transmission of the frame to be transmitted is controlled by the second transmission control unit 411b, and the frame is passed from the second transmission control unit 411b to the second communication processing unit 413b. The communication unit 401 transmits the frame processed by the first communication processing unit 413a and the frame processed by the second communication processing unit 413b.
[0068] Note that in this embodiment, the communication unit 401 operates to prioritize the transmission of the frame processed by the first communication processing unit 413a over the frame processed by the second communication processing unit 413b. Specifically, for example, while a frame processed by the second communication processing unit 413b is being transmitted, if a transmission request from the first communication processing unit 413a occurs, the transmission of the frame processed by the second communication processing unit 413b is stopped (that is, the frame is split), and the frame processed by the first communication processing unit 413a is transmitted. When the transmission request from the first communication processing unit 413a disappears, the transmission of the frame processed by the second communication processing unit 413b that has been stopped is resumed.
[0069] That is, in this embodiment, during the transmission process of a preemptable frame, when the transmission process of an express frame occurs, the transmission process of the preemptable frame can be interrupted and the transmission process of the express frame can be interrupted.
[0070] Although the transmission (processing) of frames has been described above, when an express frame is received by the communication unit 401, the express frame is passed from the communication unit 401 to the first communication processing unit 413a. Also, when a preemptable frame is received by the communication unit 401, the preemptable frame is passed from the communication unit 401 to the second communication processing unit 413b. The received frame storage unit 402 stores the frames processed by the first communication processing unit 413a and the second communication processing unit 413b. Note that, as described above, since the preemptable frame is a dividable frame, when the divided frames arrive, the second communication processing unit 413b executes a process of concatenating the divided frames to generate the original single frame.
[0071] The notification unit 414 acquires the link speed and operation speed information of the communication unit 401 and notifies the host processor 2 (detection unit 206). This notification may use an interrupt or may cause the detection unit 206 to perform a polling operation.
[0072] Note that the above-described received frame storage unit 402, transmission frame storage unit 403, queue attribute information storage unit 406, and transmission control information storage unit 409 are realized by, for example, SRAM (Static Random Access Memory).
[0073] Also, in the present embodiment, it is assumed that the above-described units 401, 404, 405, 407, 408, and 410 to 414 are realized by hardware such as a dedicated IC. However, the units 401, 404, 405, 407, 408, and 410 to 414 may be realized by causing one or more processors to execute a program, that is, by software, or may be realized by a combination of software and hardware. Also, when a plurality of processors are used to realize the units 401, 404, 405, 407, 408, and 410 to 414, each processor may be used to realize two or more of the units 401, 404, 405, 407, 408, and 410 to 414.
[0074] Next, with reference to FIGS. 7 and 8, an overview of the operations of frame reception processing and frame transmission processing will be described.
[0075] FIG. 7 is a diagram showing an overview of the operation of frame reception processing. The communication unit 401 classifies the received frame into a traffic class using the presence or absence of a VLAN (Virtual Local Area Network) tag of the received frame and, if there is a VLAN tag, its PCP (Priority Code Point) value. The received frame is sequentially stored in the corresponding queue of the received frame storage unit 402 via the communication processing unit 413 (the first communication processing unit 413a and the second communication processing unit 413b). Thereafter, the received frame is stored at the memory address of memory 1 set in the corresponding receive descriptor of the data transfer unit 405 and passed to the synchronization control unit 202 and the like.
[0076] FIG. 8 is a diagram showing an overview of the operation of frame transmission processing. The frame transmission processing starts from the frame generation unit 203 or the synchronization control unit 202. The frame generation unit 203 and the synchronization control unit 202 generate the payload data of the frame and attach the headers and (if necessary) footers of each protocol to generate a frame (transmission frame). The frame generation unit 203 and the synchronization control unit 202 select which traffic class to use for transmitting the frame according to the characteristics of the application and the like. The transmission descriptors of the data transfer unit 405 are prepared, for example, for each traffic class. The frame instructed to be transferred using the transmission descriptor is read from memory 1 and transferred to the corresponding traffic class queue of the transmission frame storage unit 403. Thereafter, the transmission control unit 411 (the first transmission control unit 411a and the second transmission control unit 411b) selects the frame to be transmitted and transmits the frame via the communication processing unit 413 (the first communication processing unit 413a and the second communication processing unit 413b) and the communication unit 401.
[0077] Next, with reference to the flowchart of FIG. 9, the transmission control information generation process will be described. The transmission control information generation process is executed, for example, when a gate control list is set and when the detection unit 206 detects a change in the link speed or operation speed information.
[0078] The transmission control information generation unit 204 reads the gate control list from the gate control list storage unit 201 (step S1). Here, for example, it is assumed that the gate control list shown in FIG. 3 is read.
[0079] The transmission control information generation unit 204 calculates the time during which "o" in the gate control list continues (continuous open time) for each traffic class (step S2).
[0080] FIG. 10 shows an example of the continuous open time calculated in step S2. For example, for the entry T02 of traffic class TC7, "o" continues from T02 to T03 and becomes "C" at T04. Since the time intervals of T02 and T03 are 512 μs and 128 μs, respectively, "o" continues for 512 + 128 = 640 μs from the start of T02. Similarly, in the case of T03, since it becomes "C" at T04, "o" continues for 128 μs. Note that when the gate control list reaches the last entry, it returns to the first (the top entry). In the case of T05, since "o" continues from T05 to T00, "o" continues for 512 + 128 = 640 μs. In the case of always being "o" like traffic class TC0, "o" continues as long as the gate control list does not change, so the continuous open time is infinite (∞).
[0081] Returning to FIG. 9 again, the transmission control information generation unit 204 generates transmission control information using the continuous open time calculated in step S2 (step S3).
[0082] The transmission control information generated in step S3 will be described below. FIGS. 11 to 18 are diagrams for specifically explaining the transmission control information generated by the transmission control information generation unit 204.
[0083] The transmission control information shown in FIG. 11 includes, as transmissible information, the time during which frames can be transmitted in the queue of each traffic class at the timing of gate switching (hereinafter referred to as the frame transmissible time). Also, in the example shown in FIG. 11, the time corresponds to period information and is expressed as a relative value (relative time) from the start time of the gate control list. Further, the transmission control information includes information on the base time and cycle time set in the gate control list.
[0084] Note that FIG. 11 shows an example of transmission control information including the frame transmissible time of all traffic classes at the timing of gate switching. In contrast, FIG. 12 shows an example of transmission control information including only the frame transmissible time when a new opening occurs. In the example shown in FIG. 12, the entry in the fourth row may be deleted.
[0085] Incidentally, when the link speed is obtained, for example, the frame transmission available time can be converted into the amount of data of the frame that can be transmitted within that time (that is, the number of bits of the frame transmission available). FIGS. 13 and 14 show examples of transmission control information including the number of bits of the frame transmission available converted from the frame transmission available time shown in FIGS. 11 and 12 when the link speed is 1 Gbps as transmission available information. For example, when the link speed is 1 Gbps, the number of bits that can be transmitted in 128 μs is obtained as 1,000,000,000×(128 / 1,000,000)=128,000 bits. Expressing the transmission available information in terms of the number of bits of the frame transmission available can reduce the calculation amount when using the number of bits of the frame transmission available on the network interface controller 4 side. Further, the relative value (period information) from the head may be expressed in terms of the number of bits instead of time. FIGS. 15 and 16 show examples of transmission control information that adopts the number of bits instead of time. Note that when the transmission available information is not expressed in terms of the number of bits of the frame transmission available, for example, since it is not necessary to detect the link speed, the process of detecting the link speed in the detection unit 206 described above may be omitted.
[0086] In the above-described FIGS. 13 to 16, examples in which the transmission available information (transmission available amount) is expressed in terms of the number of bits are shown, but the transmission available information may be expressed in terms of the number of bytes.
[0087] Furthermore, as shown in FIG. 17, the period information included in the transmission control information may be the number of clock cycles (that is, the number of clock cycles based on the local clock) of the network interface controller 4 (for example, the transmission control unit 411) that represents the value of the time interval included in the gate control list. Also, the value of the time interval may be expressed in time in the same manner as the gate control list.
[0088] The number of clock cycles representing the above-mentioned time interval value indicates how many clock operations, for example, of the transmission control unit 411 or the like, the time interval of each entry corresponds to. For example, when the transmission control unit 411 operates at 156.25 MHz, 1 clock cycle is 1 / 156.25 = 6.4 ns. For example, a time interval of 128 μs is 128 μs / 6.4 ns = 20000 in terms of clock cycles.
[0089] In FIG. 17, transmission control information including the transmissible information (number of frame transmissible bits) of all traffic classes at the timing of gate switching is shown. However, it may be transmission control information including only the transmissible information in the case of newly opening as shown in FIG. 18, for example.
[0090] Note that the transmission control information including the number of clock cycles as period information as described above is generated based on clock information or the like representing the clock frequency or clock cycle (clock period) at which, for example, the network interface controller 4 (such as the transmission control unit 411) performs processing. This clock information may be acquired by the notification unit 414 as operation speed information as described above and notified from the notification unit 414 to the host processor 2 (detection unit 206).
[0091] Here, specific examples of the transmission control information have been described with reference to FIGS. 11 to 18. However, the transmission control information in the present embodiment includes the timing at which an event related to the transmission of a frame occurs. Here, an event includes a switch of an entry and a closure of a gate. As the timing at which an event occurs, it includes the base time, cycle time, and time interval (period information of each entry), which are the timing information (entry switch information) of the entry switch (including cycle start), and the transmissible information including the transmissible amount or transmissible time corresponding to the queue of each traffic class, which is the timing information at which the gate closes. Returning to FIG. 9 again, the setting unit 205 causes the transmission control information generated in step S3 to be stored in the transmission control information storage unit 409 included in the network interface controller 4 (step S4).
[0092] When the transmission control information is stored in the transmission control information storage unit 409 in step S4, for example, the transmission control unit 411 enables the transmission control (gate control) of the frame based on the transmission control information (step S5).
[0093] When the process of FIG. 9 is executed as described above, for example, as shown in FIG. 19, the transmission control information including a plurality of entries is stored in the transmission control information storage unit 409, and the transmission control information management unit 410 uses the time (i.e., the global clock), the local clock, the base time, and the cycle time managed by the time management unit 404 to identify and read out the currently valid entry (hereinafter referred to as the current entry) from the plurality of entries. The current entry read out by the transmission control information management unit 410 is temporarily stored in the storage unit (temporary storage unit) 410a in the transmission control information management unit 410.
[0094] Note that the current entry stored in the storage unit 410a includes the period information (time interval represented by the number of clock cycles) and the transmission enable information (number of frame transmissible bits) for each traffic class as shown in FIGS. 17 and 18 described above.
[0095] Furthermore, the transmission control information management unit 410 includes a fixed cache unit 410b and a variable cache unit 410c. The fixed cache unit 410b holds the first entry (period information and transmittable information). The variable cache unit 410c holds the entry next to the current entry (period information and transmittable information). By providing such a fixed cache unit 410b and a variable cache unit 410c, even when the transmission control information management unit 410 cannot immediately read an entry from the transmission control information storage unit 409, for example, the current entry can be appropriately switched at the entry switching timing. Note that the fixed cache unit 410b fixedly holds the first entry, while the variable cache unit 410c operates to hold the entry next to the current entry each time the current entry stored in the storage unit 410a is switched.
[0096] Here, the transmission control information management unit 410 has been described as having a fixed cache unit 410b and a variable cache unit 410c. However, the transmission control information management unit 410 may have one cache unit, and the cache unit may be configured to have a storage area corresponding to the fixed cache unit 410b and a storage area corresponding to the variable cache unit 410c.
[0097] As described with reference to FIG. 19, when the current entry is stored in the storage unit 410a in the transmission control information management unit 410, the transmission permission determination unit 412 acquires the transmission enable information (number of frame transmissible bits) included in the current entry, and also acquires the frames stored at the head of each of the plurality of queues prepared in the transmission frame storage unit 403, and executes the guard band determination described above. As shown in FIG. 20, it is assumed that the transmission permission determination unit 412 includes a plurality of determination units (hereinafter referred to as traffic class determination units) 412a corresponding to a plurality of traffic classes. According to this, the guard band determination is executed for each traffic class. Specifically, for example, the determination unit 412a for traffic class TC7 executes the guard band determination using the transmission enable information for traffic class TC7 read from the storage unit 410a in the transmission control information management unit 410 and the frame information acquired from the queue for traffic class TC7. Although traffic class TC7 has been described here, the same applies to other traffic classes (the determination units 412a).
[0098] Hereinafter, the operation of the network interface controller 4 (communication control device) according to the present embodiment will be described. In the following description, it is assumed that the transmission control information storage unit 409 stores the transmission control information shown in FIG. 17, for example.
[0099] First, with reference to the flowchart of FIG. 21, an example of the processing procedure of the transmission control information management unit 410 will be described. The processing shown in FIG. 21 is executed for each clock cycle based on the local clock (operation clock of the transmission control unit 411 etc.) in the network interface controller 4. Also, regarding the first entry of the transmission control information here, it will be described as being held in the fixed cache unit 410b of the transmission control information management unit 410 from the transmission control information storage unit 409.
[0100] The transmission control information management unit 410 refers to the time information managed by the time management unit 404 (that is, the time information provided by the time management unit 404), and determines whether the current time is the gate control cycle start time (that is, the start time of the first process) (step S11). Note that the process of step S11 corresponds to the process of determining whether the cycle start signal in IEEE 802.Qbv is active, and is determined using the cycle time, base time included in the transmission control information, and the time information provided by the time management unit 404.
[0101] When it is determined that the current time is the gate control cycle start time (YES in step S11), the transmission control information management unit 410 reads the first entry of the transmission control information from the fixed cache unit 410b possessed by the transmission control information management unit 410 (step S12). When the process of step S12 is executed, the entry read in step S12 is stored in the storage unit 410a in the transmission control information management unit 410 as the above-described current entry.
[0102] On the other hand, when it is determined that the current time is not the gate control cycle start time (NO in step S11), the transmission control information management unit 410 determines whether the current clock cycle is the clock cycle for performing the process (that is, the clock cycle corresponding to the preset number of process unit clock cycles) (step S13). For example, if the number of process unit clock cycles is 1, it means that the process is executed every clock cycle. Also, for example, when the number of process unit clock cycles is 5 (that is, the process is performed once every 5 clock cycles), the 4 clock cycles following the clock cycle in which the process is performed are not processed, and it means that the process is executed in the next clock cycle.
[0103] When it is determined that the current clock cycle is the clock cycle for performing processing (YES in step S13), the transmission control information management unit 410 determines whether the period information (the value of the time interval represented by the number of clock cycles) included in the current entry stored in the storage unit 410a is 0 (step S14).
[0104] When it is determined that the period information is not 0 (NO in step S14), the transmission control information management unit 410 determines whether the period information included in the current entry stored in the storage unit 410a is less than or equal to a specified value (step S15). The specified value in step S15 is set in consideration of the time required to read an entry from the transmission control information storage unit 409.
[0105] When it is determined that the period information is less than or equal to the specified value (YES in step S15), the transmission control information management unit 410 starts reading the next entry of the current entry from the transmission control information storage unit 409 (step S16). When the reading of the next entry of the current entry is completed by executing the process of step S16, the next entry is held in the variable cache unit 410c that the transmission control information management unit 410 has.
[0106] Note that when it is determined that the period information is not less than or equal to the specified value (NO in step S15), the process of step S16 is not executed.
[0107] Next, the transmission control information management unit 410 updates the period information included in the current entry stored in the storage unit 410a (step S17). Note that in step S17, a process of subtracting the number of clock cycles of the above-described processing unit from the period information (the number of clock cycles) is executed.
[0108] Also, the transmission control information management unit 410 updates the transmission available information (e.g., the number of frame transmissible bits or the frame transmissible time) for each traffic class included in the current entry stored in the storage unit 410a (step S18). When the transmission available information is the number of frame transmissible bits, in step S18, a process of subtracting a predetermined value such as the amount of data transmissible during the number of processing unit clock cycles from the transmission available information (the number of frame transmissible bits indicated thereby) for each traffic class is executed. When transmitting a frame externally, the amount of data transmissible per clock cycle needs to be consistent with the data transfer rate of the MAC. Also, although not shown, when performing only internal data transfer, the amount of data transmissible per clock cycle needs to be consistent with the data transfer rate of the internal module connected to the output portion of the transmission control unit 411 (i.e., the module that does not directly communicate with the external network to which the communication unit 401 is connected). For example, when one clock cycle is 6.4 ns (when the operating frequency is 156.25 MHz) when transmitting a frame externally, in order to achieve 10 Gbps, 64 bits of data are transferred per clock cycle. In this case, assuming that the number of processing unit clock cycles is 5, in step S18, 64 bits × 5 = 320 bits are subtracted from the transmission available information (the number of frame transmissible bits) for each traffic class. On the other hand, when the transmission available information is the frame transmissible time, in step S18, a process of subtracting a value corresponding to the actually elapsed time from the transmission available information (the frame transmissible time indicated thereby) may be executed.
[0109] On the other hand, when it is determined that the period information is 0 (YES in step S14), since it means that the period assigned to the current entry stored in the storage unit 410a has ended, the transmission control information management unit 410 determines whether the next entry is held in the variable cache unit 410c that the transmission control information management unit 410 has (step S19).
[0110] When it is determined that the next entry is held in the variable cache unit 410c (YES in step S19), the transmission control information management unit 410 reads the next entry from the variable cache unit 410c (step S20). The next entry read in step S20 is stored in the storage unit 410a as the current entry.
[0111] When the above-described step S12 is executed, the transmission control information management unit 410 outputs the current entry stored in the storage unit 410a as valid transmission control information (step S21). That is, it outputs the transmitable information updated to the latest state (for example, the number of frame transmitable bits or the frame transmitable time). When it is determined in step S13 that the current clock cycle is not the clock cycle for performing the process (NO in step S13), when the process of step S18 is executed, and when the process of step S20 is executed, the process of step S21 is similarly executed.
[0112] On the other hand, when it is determined in step S19 that the next entry is not held in the variable cache unit 410c (NO in step S19), "invalid" indicating that the current entry stored in the storage unit 410a is invalid is output (step S22). In the present embodiment, "invalid" means that the transmission control information (entry) has not been updated to the latest state. That is, "invalid" means that the transmitable information (for example, the number of frame transmitable bits or the frame transmitable time) has not been updated to the latest state.
[0113] In FIG. 21, although it has been described that the process of step S21 is executed when it is determined in step S13 that the current clock cycle is not the clock cycle for performing the process, the process of step S22 may be executed when the current clock cycle is not the clock cycle for performing the process. Further, the value calculated as the transmission control information may be a value obtained by subtracting the number of clock cycles of the processing unit in advance.
[0114] By executing the process shown in FIG. 21 described above, the transmission control information management unit 410 can appropriately switch the entry according to the operation clock of the transmission control unit 411 etc., and always manage the period information included in the entry and the transmission enable information of each traffic class in the latest state.
[0115] Here, for example, when the operating frequency of the network interface controller 4 (for example, the transmission control unit 411) does not match the bus width transmitted on the network 200 (that is, the amount of data that can be transmitted per clock cycle by the communication unit 401), the value subtracted from the transmission enable information of each traffic class in step S18 (hereinafter referred to as the subtraction value) may be changed. In this case, the host processor 2 may notify the transmission control information management unit 410 of information regarding the subtraction value to be changed (subtraction value information). For example, when changing the subtraction value at a predetermined clock cycle period, the subtraction value information may be information including, for example, the first subtraction value and its repetition count, and the second subtraction value and its repetition count. The subtraction value information may be information in other formats as long as it can specify the subtraction value for each position of the clock cycle within the period of a predetermined clock cycle (operation clock).
[0116] Here, although the transmission control information shown in FIG. 17 is described as being stored in the transmission control information storage unit 409, for example, in the case where the transmission control information shown in FIG. 10 (that is, the transmission enable information is expressed in time) is stored in the transmission control information storage unit 409, assuming a clock operation frequency of 156.25 MHz, for example, 6.4 ns may be subtracted from the transmission enable information (frame transmission enable time) for each clock cycle. Further, when managing the period (information) assigned to each entry as shown in the transmission control information of FIG. 10 in terms of time (relative time from the head of the gate control list), it may be determined whether to read a new entry based on the time information managed by the time management unit 404. Also, the time interval in each entry may be held as it is in time format for determination.
[0117] Next, the transmission control of the frame in this embodiment will be described. In the frame transmission control in this embodiment, when the transmission control (gate control) based on the transmission control information is enabled in step S5 shown in FIG. 9 described above, the following guard band determination process and frame selection process are executed in parallel for each clock cycle. Note that, although it is assumed that the local clock inside the network interface controller 4 (for example, a 156.25 MHz clock signal supplied from a 10 Gbps MAC) is used as the synchronization clock signal serving as the reference for executing these processes, other clock signals may be used.
[0118] Hereinafter, the above-described guard band determination process and frame selection process will be described. Here, it is assumed that the store-and-forward method is adopted in the network interface controller 4 (transmission frame storage unit 403).
[0119] First, with reference to the flowchart of FIG. 22, an example of the processing procedure of the guard band determination process will be described. The guard band determination process is executed by the transmission permission determination unit 412. Further, as described above, the transmission permission determination unit 412 includes a plurality of determination units 412a corresponding to a plurality of traffic classes, and the guard band determination process is executed by each of the plurality of determination units 412a.
[0120] Here, the guard band determination process executed by one of the plurality of determination units 412a (hereinafter referred to as the target determination unit) 412a will be described. Also, the queue of the traffic class corresponding to the target determination unit 412a is conveniently referred to as the target queue.
[0121] In this case, the target determination unit 412a determines whether there is a frame in a state where it can be transmitted to the target queue (step S31). As described above, when the store-and-forward method is adopted in the network interface controller 4 (transmission frame storage unit 403), the above-mentioned "there is a frame in a state where it can be transmitted to the target queue" means that there is a frame in which all data is stored in the target queue (that is, a frame in which all data constituting the frame is complete is stored in the target queue). In other words, a frame in a transmissible state means a frame with a determined data amount.
[0122] When it is determined that there is a frame in a state where it can be transmitted to the target queue (YES in step S31), the target determination unit 412a determines whether the transmission control information is valid (that is, whether a current entry is output as valid transmission control information from the transmission control information management unit 410) (step S32). That is, the target determination unit 412a determines whether the transmissible information updated to the latest state is output from the transmission control information management unit 410.
[0123] When it is determined that the transmission control information is valid (YES in step S32), the target determination unit 412a acquires the transmissible information of the traffic class corresponding to the target determination unit 412a included in the current entry output from the transmission control information management unit 410 (step S33).
[0124] Next, the target determination unit 412a acquires the data amount (frame length) of the frame stored at the head of the target queue (hereinafter referred to as the target frame) (step S34).
[0125] When the process of step S34 is executed, the target determination unit 412a performs a guard band determination based on the transmissible information (frame transmissible bit number or frame transmissible time) acquired in step S33 and the total communication cost (transmission cost) when the target frame is transmitted by the communication unit 401 (step S35).
[0126] As the total communication cost used in the guard band determination in step S35, for example, the total value of the data amount of the target frame acquired in step S34 and the communication overhead that will occur when the communication unit 401 actually transmits the target frame can be used. Note that the communication overhead includes, for example, the data amount added inside the communication unit 401 when transmitting the target frame (for example, a frame checksum sequence such as 32-bit CRC) and the media-dependent overhead. Note that FIG. 23 shows an example of the media-dependent overhead. The media-dependent overhead includes, for example, the inter-frame gap (IFG), and the size of the preamble and SFD (Start Frame Delimiter) of the next frame.
[0127] Also, the total communication cost can be expressed in units of time. For example, based on the above-mentioned total value (data amount) and the link speed (the data amount that can be transmitted per unit time), the total communication cost can be converted into units of time. Specifically, for example, when the total communication cost (data amount) is 1000 bits and the link speed is 10 Gbps, the total communication cost (time) is 1000 bits / 10 Gbps = 100 ns. The total communication cost expressed in such units of time is used in the guard band determination when the transmissible information is the frame transmissible time as described above.
[0128] When the process of step S35 is executed, the target determination unit 412a determines whether the target frame satisfies the conditions for guard band determination (step S36). When the transmissible information acquired in step S33 is the number of frame transmissible bits, the condition for guard band determination is, for example, "the transmissible information (number of frame transmissible bits) ≥ the total communication cost (data volume) when the target frame is transmitted by the communication unit 401". On the other hand, when the transmissible information acquired in step S33 is the frame transmissible time, the condition for guard band determination is, for example, "the transmissible information (frame transmissible time) ≥ the total communication cost (time) when the target frame is transmitted by the communication unit 401". That is, the condition for guard band determination is "transmissible information ≥ transmission cost".
[0129] When it is determined that the target frame satisfies the conditions for guard band determination (YES in step S36), the target determination unit 412a notifies the transmission control unit 411 that the target frame (that is, the frame stored at the head of the target queue) is transmissible (step S37). Specifically, in step S37, transmission enable information indicating that the target frame is transmissible is passed from the target determination unit 412a to the transmission control unit 411.
[0130] On the other hand, when it is determined that the target frame does not satisfy the conditions for guard band determination (NO in step S36), the target determination unit 412a notifies the transmission control unit 411 that the target frame is not transmissible (that is, non-transmissible) (step S38). Specifically, in step S38, transmission enable information indicating that the target frame is not transmissible is passed from the target determination unit 412a to the transmission control unit 411.
[0131] When it is determined in step S31 described above that there is no transmissible frame in the target queue (NO in step S31) or when it is determined in step S32 that the transmission control information is invalid (NO in step S32), the process of step S38 is executed.
[0132] Since the above guard band determination process is executed by a plurality of determination units 412a corresponding to a plurality of traffic classes, when the guard band determination process is executed, the transmission permission of the queue stored at the head of the queue for each traffic class is notified from the transmission permission determination unit 412 (a plurality of determination units 412a) to the transmission control unit 411.
[0133] Note that the above transmission permission of the queue (transmission permission information) is passed to the first transmission control unit 411a when an express frame is stored in the queue, and is passed to the second transmission control unit 411b when a preemptable frame is stored in the queue. In this case, the determination unit 412a corresponding to each traffic class can grasp the transmission control unit to which the transmission permission information should be passed based on the setting (determination) by the communication process determination unit 407.
[0134] Hereinafter, with reference to the flowchart of FIG. 24, an example of the processing procedure of the communication process determination unit 407 will be described. Note that the communication process determination unit 407 determines the communication process for the frames stored in the queues of each traffic class. Here, the queue storing the frames for which the communication process is determined is referred to as a target queue.
[0135] First, the communication process determination unit 407 refers to the attribute information (frame preemption status table) stored in the queue attribute information storage unit 406 (step S41).
[0136] Next, the communication process determination unit 407 determines whether the frame preemption state associated with the traffic class of the above target queue is express (frame) (step S42).
[0137] When it is determined that the frame preemption state is express (YES in step S42), the communication process determination unit 407 determines to process the frame stored in the target queue by the first communication processing unit 413a, and sets the output destination of the frame to the first transmission control unit 411a (step S43).
[0138] In addition, when the process of step S43 is executed, the determination unit 412a corresponding to the traffic class of the target queue can operate to pass (output) the above-described transmission permission information to the first transmission control unit 411a.
[0139] On the other hand, when it is determined that the frame preemption state is not express (that is, preemptable) (NO in step S42), the communication process determination unit 407 determines to process the frame stored in the target queue by the first communication processing unit 413a, and sets the output destination of the frame to the second transmission control unit 411b (step S44).
[0140] When the process of step S44 is executed, the determination unit 412a corresponding to the traffic class of the target queue can operate to pass (output) the above-described transmission permission information to the second transmission control unit 411b.
[0141] Here, the case of determining the communication process of the frame stored in one queue (target queue) has been described. However, the process shown in FIG. 24 described above is executed for each of a plurality of queues (a plurality of traffic classes).
[0142] Next, with reference to the flowchart of FIG. 25, an example of the processing procedure of the frame selection process will be described. The frame selection process is executed by each of the first transmission control unit 411a and the second transmission control unit 411b. Here, the description will be made assuming that the first transmission control unit 411a executes the frame selection process.
[0143] First, the first transmission control unit 411a determines whether the first transmission control unit 411a is in a busy state (step S51). Note that the busy state means a state in which the first transmission control unit 411a is transferring a frame to the communication unit 401 (first communication processing unit 413a).
[0144] If it is determined that the first transmission control unit 411a is not in the busy state (that is, in the idle state where no frame is being transferred) (NO in step S51), the first transmission control unit 411a determines whether it is possible to start transferring a new frame, for example, based on a notification from the communication unit 401 (step S52).
[0145] If it is determined that it is possible to start transferring a new frame (YES in step S52), the first transmission control unit 411a acquires the transmission permission information passed from the transmission permission determination unit 412 (plurality of determination units 412a) by executing the above-described guard band determination process (step S53). According to the transmission permission information acquired in step S53, the first transmission control unit 411a can grasp whether each of the frames stored at the head of the queue for storing express frames among the queues of a plurality of traffic classes is transmittable.
[0146] Next, the first transmission control unit 411a selects a frame to actually start transferring from the first transmission control unit 411a to the first communication processing unit 413a from among the transmittable frames (step S54). Note that the process of step S54 may be executed according to an arbitrary selection algorithm. For example, when "Strict Priority" is used as the selection algorithm, the frame with the highest priority (express frame) among the transmittable frames is selected. Hereinafter, the frame selected in step S54 is referred to as the transfer start frame.
[0147] When the process of step S54 is executed, the first transmission control unit 411a starts transferring the transfer start frame (step S55).
[0148] When the process of step S55 is executed, the first transmission control unit 411a transitions to the busy state (step S56). Note that the busy state of the first transmission control unit 411a is released at the timing when the transfer of the transfer start frame is completed. The transmission control unit 411 automatically transitions to the idle state when the busy state is released.
[0149] On the other hand, when it is determined in step S51 that the first transmission control unit 411a is in the busy state (YES in step S51) and when it is determined in step S52 that it is not possible to start the transfer of a new frame (NO in step S52), the process shown in FIG. 25 ends.
[0150] According to the above-described frame selection process, the transfer start frame is selected based on the result of the guard band determination by the transmission permission determination unit 412 (that is, the transmission timing of the frame is determined), and the transfer of the transfer start frame can be started.
[0151] In the present embodiment, the above-described guard band determination process and frame selection process are executed in combination for each clock cycle, thereby realizing the transmission control of the frame.
[0152] Note that the flowchart of FIG. 26 shows the overall process flow of the frame transmission control realized by the combination of the above-described guard band determination process and frame selection process.
[0153] First, in the frame transmission control, it is determined whether the frame transmission control (gate control) based on the transmission control information is effective (step S61). In step S61, when the process shown in FIG. 9 above (the process of step S5) is being executed, it is determined that the frame transmission control based on the transmission control information is effective.
[0154] When it is determined that the transmission control of a frame based on the transmission control information is effective (YES in step S61), the processes of steps S62 and S63 corresponding to the processes of steps S51 and S52 shown in FIG. 25 are executed.
[0155] When it is determined in step S63 that it is possible to start the transfer of a new frame (YES in step S63), the processes of steps S64 to S67 corresponding to the processes of steps S31 to S34 shown in FIG. 22 are executed.
[0156] Next, it is determined whether or not the conditions for the guard band determination are satisfied (step S68). Note that the process of step S68 corresponds to the processes of steps S35 and S36 shown in FIG. 22.
[0157] When it is determined in step S68 that the conditions for the guard band determination are satisfied (YES in step S68), the processes of steps S69 and S70 corresponding to the processes of steps S54 and S55 shown in FIG. 25 are executed. Note that if, for example, the first transmission control unit 411a starts the transfer of a frame in step S70, the first transmission control unit 411a transitions to the busy state. The same applies when the second transmission control unit 411b starts the transfer of a frame.
[0158] Note that if, for example, it is determined in step S62 that the first transmission control unit 411a is in the busy state (YES in step S62), the transmission control of the frame by the first transmission control unit 411a ends. On the other hand, if, for example, it is determined in step S62 that the second transmission control unit 411b is in the busy state (YES in step S62), the frame transmission control by the second transmission control unit 411b ends.
[0159] That is, the transmission control of frames in the present embodiment is independently performed by each of the first transmission control unit 411a and the second transmission control unit 411b. In the first transmission control unit 411a, transmission control is performed on the frames (or queues) set to express, and in the second transmission control unit 411b, transmission control is performed on the frames (or queues) set to preemptable.
[0160] If it is determined in step S63 that it is not possible to start transferring a new frame (NO in step S63), if it is determined in step S64 that there is no frame in a transmittable state in all queues (NO in step S64), if it is determined in step S65 that the transmission control information is not valid (NO in step S65), and if it is determined in step S68 that there is not even one frame that satisfies the guard band determination condition (NO in step S68), the transmission control of the frame ends.
[0161] As described above, when it is determined in step S61 that the transmission control of the frame based on the transmission control information is valid, the transmission control of the frame based on the transmission control information is performed.
[0162] On the other hand, in the example shown in FIG. 26, when it is determined in step S61 that the transmission control of the frame based on the transmission control information is not valid (NO in step S61), for example, the transmission control of the frame without using the transmission control information is performed.
[0163] Specifically, the processes of steps S71 to S73 corresponding to the processes of steps S62 to S64 described above are executed, and the processes of steps S74 and S75 corresponding to the processes of steps S69 and S70 are executed.
[0164] Here, it has been described that the processes of steps S71 to S75 are executed when the transmission control of the frame based on the transmission control information is not valid. However, when the transmission control is not valid, the processes of steps S71 to S75 may not be executed, and the configuration may be such that the transmission control of the frame ends.
[0165] The transmission control (a series of processes) of the frame described in FIG. 26 above is premised on being completed within one clock cycle, and is suitable when the above-described guard band determination process and frame selection process are realized by hardware implementation.
[0166] On the other hand, in the present embodiment, transmission control of a frame in which a series of processes are not necessarily completed within one clock cycle may be performed. Since the frame transmission control in this case is generally the same as the process shown in FIG. 26, a detailed description thereof is omitted here, but such frame transmission control is suitable when the above-described guard band determination process and frame selection process are realized by software implementation. Note that the transmission control of a frame that is not completed within one clock cycle may be realized by hardware implementation.
[0167] By the way, here, the frame transmission control in the case where the store-and-forward method is adopted in the network interface controller 4 (transmission frame storage unit 403) has been described, but the frame transmission control (guard band determination) cannot be applied to the cut-through method that starts transmitting the frame before receiving the frame is completed.
[0168] Therefore, the guard band determination process in the case where the cut-through method is adopted in the network interface controller 4 (transmission frame storage unit 403) will be described. In the following description, for convenience, the guard band determination process shown in FIG. 22 above is referred to as the first guard band determination process, and the guard band determination process executed when the cut-through method is adopted is referred to as the second guard band determination process.
[0169] First, with reference to the flowchart of FIG. 27, an example of the processing procedure of the second guard band determination process will be described. Here, mainly the parts different from the above-described first guard band determination process will be described.
[0170] The target determination unit 412a determines whether there is a frame in a state where it can be transmitted to the target queue (step S81). As described above, when the cut-through method is adopted in the network interface controller 4 (transmission frame storage unit 403), different from the above-described first guard band determination process (that is, step S31 shown in FIG. 22), "there is a frame in a state where it can be transmitted to the target queue" means that a frame whose leading data is ready is stored in the target queue, and it is not necessary that a frame in which all data constituting the frame is complete is stored in the target queue (that is, it is not necessary that the data amount is determined).
[0171] When it is determined that there is a frame in a state where it can be transmitted to the target queue (YES in step S81), the processes of steps S82 and S83 corresponding to the processes of steps S32 and S33 shown in FIG. 22 described above are executed.
[0172] Here, in the above-described first guard band determination process, the data amount of the frame (target frame) stored at the head of the target queue is acquired. However, in the second guard band determination process, all data of the target frame is not complete in the target queue, and the data amount of the target frame cannot be acquired. Therefore, the target determination unit 412a acquires the upper limit value of the data amount (frame length) of the frame stored in the target queue (step S84). In step S84, for example, the value of queueMaxSDU (maximum data unit defined for each queue) of the target queue can be acquired as the upper limit value of the data amount of the frame. Also, the MTU (Maximum Transmission Unit), which is the maximum transmission unit in the communication unit 401, may be used as the upper limit value of the data amount of the frame.
[0173] When the process of step S84 is executed, the target determination unit 412a performs guard band determination using the upper limit value of the data amount of the frame acquired in step S84 instead of the data amount of the target frame in the first guard band determination process (step S85). In other words, in step S85, guard band determination is executed based on the upper limit value of the total communication cost when the target frame is transmitted by the communication unit 401. Note that since it is the same as the guard band determination in the first guard band determination process except for using the upper limit value of the data amount of the frame instead of the data amount of the target frame, the detailed description of step S85 is omitted here.
[0174] When the process of step S85 is executed, the processes of steps S86 to S88 corresponding to the processes of steps S36 to S38 shown in FIG. 22 are executed.
[0175] In the above-described second guard band determination process, by using the upper limit value of the data amount of the frame, it is possible to appropriately execute guard band determination even when the cut-through method is adopted.
[0176] As described above, in this embodiment, when the store-and-forward method is adopted, frame transmission control is realized by a combination of the first guard band determination process and the frame selection process, and when the cut-through method is adopted, frame transmission control is realized by a combination of the second guard band determination process and the frame selection process.
[0177] In other words, the transmission control of frames that combines the first guard band determination process and the frame selection process is suitable for a communication system in which the data amount (frame length) of the frame is determined at the time of determining whether the frame can be transmitted (at the timing when the first transmission control unit 411a and the second transmission control unit 411b are in the busy state in the frame selection process). On the other hand, the transmission control of frames that combines the second guard band determination process and the frame selection process is suitable for a communication system in which the data amount of the frame is not determined at the time of determining whether the frame can be transmitted.
[0178] In the present embodiment, the second guard band determination process has been described as a process executed when the cut-through method is adopted. However, the second guard band determination process may also be executed when the store-and-forward method is adopted.
[0179] As described above, the network interface controller 4 (communication control device) according to the present embodiment includes a transmission control unit 411 that controls the transmission of messages stored in the queue based on transmission control information generated based on a gate control list (gate control information) in which the opening and closing of gates corresponding to each of a plurality of queues are set, and a communication unit 401 that transmits frames (messages) according to the control of the transmission control unit. In the present embodiment, the transmission control information indicates the timing at which the next event related to the transmission of the frame occurs at the time of controlling the transmission of the frame.
[0180] Specifically, the transmission control information in the present embodiment includes a plurality of entries, and each of the plurality of entries includes a period (period information indicating the period) assigned to the entry, and the period is represented by the number of clock cycles based on the operation clock of the transmission control unit 411.
[0181] Also, the transmission control information in the present embodiment includes transmission enable information indicating the time until the gate corresponding to each of a plurality of queues closes or the amount of data of frames that can be transmitted until the gate closes as the timing at which the above-described event occurs, and the transmission control unit 411 controls the transmission of frames by opening and closing the gate based on the transmission enable information. That is, in the present embodiment, the "timing at which an event occurs" is a concept including the timing at which the gates corresponding to each of the plurality of queues close.
[0182] Also, in the present embodiment, the transmission control information management unit 410 has a storage unit 410a (temporary storage unit) that temporarily stores the transmission control information (current entry), and the transmission control unit 411 controls the transmission of frames by opening and closing the gate based on the transmission control information stored in the storage unit 410a.
[0183] Also, in the present embodiment, for example, by updating the transmission enable amount (that is, the timing at which the event indicated by the transmission control information occurs) indicated by the transmission enable information included in the transmission control information for each operation clock of the transmission control unit 411, the transmission control information (current entry) is managed in the latest state, and appropriate frame transmission control (that is, guard band determination) based on the transmission control information can be performed.
[0184] Note that the above-described transmission control information is generated by the host processor 2 (information processing device) connected to the network 200 via the network interface controller 4.
[0185] In the present embodiment, with the above-described configuration, while simplifying the hardware configuration or software processing, it is possible to accurately operate according to the gate control list and effectively utilize the given bandwidth. Also, in the present embodiment, processing can be performed based on a fixed number of information, and real-time performance for completing the processing within a fixed time determined for the processing can be provided.
[0186] Furthermore, in the present embodiment, a communication processing unit 413 including a first communication processing unit 413a that transmits a non - splittable frame (express frame) via the communication unit 401 and a second communication processing unit 413b that transmits a splittable frame (preemptable frame) via the communication unit 401, and a communication processing determination unit 407 that determines communication processing for the frames stored in the queues based on the attribute information indicating the attributes of each of the plurality of queues (that is, whether to transmit the frame by the first communication processing unit 413a or the second communication processing unit 413b) are provided. With this configuration, it is possible to realize a mechanism for effectively utilizing the bandwidth by combining the frame interruption function defined in IEEE 802.1Qbu.
[0187] Here, in the present embodiment, as shown in FIG. 2, it has been described that the transmission control information is generated by the transmission control information generation unit 204 included in the host processor 2 and the transmission control information is stored in the transmission control information storage unit 409 included in the network interface controller 4. However, the transmission control information may be dynamically generated (calculated) on the network interface controller 4 side.
[0188] FIG. 28 is a block diagram showing an example of the functional configuration of the communication device 100 when the transmission control information is generated on the network interface controller 4 side (hereinafter referred to as a modification example of the present embodiment). In FIG. 28, the same parts as those in FIG. 2 are denoted by the same reference numerals, and the detailed description thereof is omitted.
[0189] As shown in FIG. 28, the network interface controller 4 includes a gate control list storage unit 415 and a transmission control information generation unit 416.
[0190] In a modification of this embodiment, the host processor 2 does not include the transmission control information generation unit 204, and the reception unit 408 provided in the network interface controller 4 receives the gate control list stored in the gate control list storage unit 201 via the setting unit 205 provided in the host processor 2. The gate control list received by the reception unit 408 in this way is stored in the gate control list storage unit 415.
[0191] The transmission control information generation unit 416 reads one or more entries from the gate control list storage unit 415 based on the global clock and the local clock, calculates the transmissible amount (e.g., the number of frame transmissible bits) indicated by the transmissible information of each traffic class (corresponding queue), and generates transmission control information including the period information (e.g., the number of clock cycles representing the value of the time interval) and the transmissible information.
[0192] Since the transmission control information management unit 410 switches entries according to the global clock and the local clock (progress) as described above, in order for the transmission control information generation unit 416 to smoothly perform such entry switching, the transmission control information generation unit 416 operates to calculate in advance the transmissible amount indicated by the transmissible information included in the next entry of the current entry stored in the storage unit 410a in the transmission control information management unit 410. For example, when the calculation of the transmissible amount (i.e., the generation of the transmission control information) by the transmission control information generation unit 416 is not in time, the transmission control information management unit 410 may output "invalid" to the transmission permission determination unit 412. Note that "invalid" means that the transmission control information (transmissible information) has not been updated to the latest state as described above.
[0193] The transmission control information generation unit 416 shall calculate in advance the transmissible amount indicated by the transmissible information included in the first (top) entry before the gate control becomes effective, and hold the entry. Also, for the second and subsequent entries, the once-calculated transmissible amount (transmissible information) may be cached and the cached transmissible amount may be reused for subsequent times.
[0194] Note that the frame transmission control itself in the modification example of this embodiment is as described in the above-described embodiment, so the detailed description thereof is omitted here.
[0195] (Second Embodiment) Next, the second embodiment will be described. In this embodiment, the description of the same parts as those in the above-described first embodiment is omitted, and the parts different from the first embodiment will be mainly described. Note that the hardware configuration of the communication device in this embodiment is the same as that in the above-described first embodiment, so it will be described with reference to FIG. 1 as appropriate.
[0196] FIG. 29 is a block diagram showing an example of the functional configuration of the communication device 100 in this embodiment. In FIG. 29, the same parts as those in FIG. 2 described above are denoted by the same reference numerals, and the detailed description thereof is omitted.
[0197] As shown in FIG. 29, the network interface controller 4 in this embodiment is different from the network interface controller 4 shown in FIG. 2 described above in that it includes a splittable frame transmission suppression unit 417.
[0198] Similar to the first embodiment described above, in this embodiment, non - splittable frames (express frames) processed by the first communication processing unit 413a and splittable frames (preemptable frames) processed by the second communication processing unit 413b are transmitted via the communication unit 401. However, the splittable frame transmission suppression unit 417 controls the communication unit 401 to suppress the transmission of preemptable frames from the second communication processing unit 413b (that is, the transmission of splittable frames by the second communication processing unit 413b) based on the transmission control information.
[0199] Here, FIG. 30 shows an example of the gate control list in this embodiment. Here, mainly the differences from the gate control list shown in FIG. 3 described in the first embodiment above will be explained.
[0200] As shown in FIG. 30, in the gate control list in this embodiment, Set - And - Hold - MAC is set as the operation of entry T02, and Set - And - Release - MAC is set as the operation of entry T03.
[0201] In addition to the operation of SetGateStates described above, Set - And - Hold - MAC represents stopping (HOLD) the transmission of preemptable frames from the communication unit 401 during the time interval (period) assigned to the entry where the Set - And - Hold - MAC is set.
[0202] In addition to the operation of SetGateStates described above, Set - And - Release - MAC represents resuming (RELEASE) the transmission of preemptable frames from the communication unit 401 during the time interval (period) assigned to the entry where the Set - And - Release - MAC is set.
[0203] That is, according to the gate control list shown in FIG. 30, transmission of preemptable frames is suppressed during the time interval assigned to entry T02, and it is shown that preemptable frames are transmitted during the time intervals assigned to other entries. Note that the above-described operations of stopping and restarting the transmission of preemptable frames can be realized by issuing HOLD and RELEASE to the MAC of the communication unit 401.
[0204] FIG. 31 shows an example of transmission control information generated from the gate control list shown in FIG. 30 described above in this embodiment. Here, the differences from the transmission control information shown in FIG. 17 described in the first embodiment will mainly be described.
[0205] The transmission control information (each entry) in this embodiment includes split transmission control information in addition to the period information and transmittable information described in the first embodiment above.
[0206] That is, the transmission control information in this embodiment includes the timing at which an event related to frame transmission occurs. Here, an event includes entry switching, gate closing, and issuing HOLD / RELEASE to the communication unit 401. The timing at which an event occurs includes the base time, which is the timing information (entry switching information) of entry switching (including cycle start), the cycle time, and the time interval (period information of each entry), the transmittable information including the transmittable amount or transmittable time corresponding to the queue of each traffic class, which is the timing information at which the gate closes, and the split transmission control information including the split transmission control remainder, which is the timing information of HOLD / RELEASE in each entry. The split transmission control information includes the initial state (HOLD or RELEASE) at the start of the period assigned to each entry of the transmission control information, and the split transmission control remainder (timer value) indicating the switching timing of the state. The split transmission control remainder corresponds to information indicating the timing to stop or resume the transmission of a preemptable frame (a splittable frame), that is, the remainder until the stop / resumption of the transmission of the preemptable frame, as the timing when an event related to the transmission of the next frame occurs. Note that in the example shown in FIG. 31, the split transmission control remainder is represented by the number of clock cycles.
[0207] Next, the general operation of the transmission control information generation unit 204 when generating the transmission control information (split transmission control information) shown in FIG. 31 from the gate control list shown in FIG. 30 described above will be briefly described.
[0208] First, the transmission control information generation unit 204 sets the initial state of the suppression state of split transmission at the start stage of each entry of the gate control list. In the gate control list shown in FIG. 30, since Set-And-Hold-MAC is set in entry T02, the transmission of the preemptable frame is stopped at the start stage of entry T02. In this case, "Hold" is set in the initial state of the split transmission control information included in the entry corresponding to entry T02 among the plurality of entries of the transmission control information.
[0209] Also, in the gate control list shown in FIG. 30, since Set-And-Release-MAC is set in entry T03, the stop (suppression) of the transmission of the preemptable frame in entry T02 is released at the start stage of entry T03. In this case, "Release" is set in the initial state of the split transmission control information included in the entry corresponding to entry T03 among the plurality of entries of the transmission control information.
[0210] Furthermore, in the gate control list shown in FIG. 30, the gate states of the gates of each traffic class are switched after entry T03, such as entries T04, T05, T00, T01, ···, but the transmission of preemptable frames is not stopped until entry T02. In this case, in the initial state of the split transmission control information included in the entries corresponding to entries T00, T01, T04, and T05 among the plurality of entries of the transmission control information, "Release" is set in the same manner as entry T03.
[0211] Next, the transmission control information generation unit 204 sets the split transmission control remainder (remainder until the stop / resumption of the transmission of splittable frames) of the split transmission control information included in the transmission control information.
[0212] Here, since there is a time lag between issuing HOLD and RELEASE to the MAC of the communication unit 401 and actually stopping and resuming the transmission of preemptable frames, in order to start the operations of HOLD and RELEASE at the start of the period assigned to the entry where Set-And-Hold-MAC and Set-And-Release-MAC are set, it is necessary to set (specify) the time lag in advance. For the control of such operations, two values are used: holdAdvance, which is the maximum time from issuing HOLD to the MAC until the MAC stops the transmission of preemptable frames, and releaseAdvance, which is the maximum time from issuing RELEASE to the MAC until the MAC is ready to resume the transmission of preemptable frames. In this embodiment, the value of holdAdvance is, for example, 32 ns, and the value of releaseAdvance is, for example, 6.4 ns. When the transmission control unit 411 etc. is operating at 156.25 MHz, 32 ns corresponds to 5 clock cycles, and 6.4 ns corresponds to 1 clock cycle.
[0213] The split transmission control remainder of the split transmission control information is set based on the above-described holdAdvance and releaseAdvance.
[0214] Specifically, when there is an entry in the gate control list where Set-And-Hold-MAC (operation) is set, identify the entry to which a time interval corresponding to the time before the holdAdvance value is assigned from the Set-And-Hold-MAC. If the entry thus identified is the entry immediately before the entry where Set-And-Hold-MAC is set, the value of holdAdvance (number of clock cycles) is set as the split transmission control remainder of the split transmission control information included in the entry of the transmission control information corresponding to the entry. In the example shown in FIG. 31, 5 clock cycles are set as the split transmission control remainder of the split transmission control information included in the entry of the transmission control information corresponding to the entry immediately before the entry where Set-And-Hold-MAC is set.
[0215] If the value of holdAdvance is greater than the value of the time interval assigned to the entry immediately before the entry where Set-And-Hold-MAC is set, the total value of the time intervals assigned to the entries existing between the entry where Set-And-Hold-MAC is set and the entry identified as described above may be subtracted from the value of holdAdvance, and the result may be set as the split transmission control remainder.
[0216] On one hand, if there is an entry in the gate control list where Set-And-Release-MAC (operation) is set, identify the entry to which a time interval (period) corresponding to the time before the value of releaseAdvance from the Set-And-Release-MAC is assigned. If the entry thus identified is the entry immediately before the entry where Set-And-Release-MAC is set, the value of releaseAdvance (number of clock cycles) is set as the remaining split transmission control information in the split transmission control information included in the entry of the transmission control information corresponding to the said entry. In the example shown in FIG. 31, 1 clock cycle is set as the remaining split transmission control information in the split transmission control information included in the entry of the transmission control information corresponding to the entry immediately before the entry where Set-And-Release-MAC is set.
[0217] In addition, if the value of releaseAdvance is greater than the value of the time interval assigned to the entry immediately before the entry where Set-And-Release-MAC is set, the total value of the time intervals assigned to the entries existing between the entry where Set-And-Release-MAC is set and the entry identified as above may be subtracted from the value of releaseAdvance, and the result may be set as the remaining split transmission control information.
[0218] In addition, if HOLD or RELEASE processing is required before the beginning of the gate control list, in order to issue HOLD or RELEASE in the previous cycle, entries may be identified by tracing back to the end of the gate control list and the remaining split transmission control information may be set. Also, in the first execution, HOLD / RELEASE may be issued before the base time. The above operation may be performed according to the progress of the local clock, or may be performed according to the progress of the global clock of the time management unit 404.
[0219] As the remaining split transmission control other than that set as described above (i.e., the remaining split transmission control of other entries), 0 indicating that split transmission control (i.e., issuance of HOLD and RELEASE) is not performed is set.
[0220] The transmission control information generated by the transmission control information generation unit 204 as described above is stored in the transmission control information storage unit 409. In this case, as shown in FIG. 32, the transmission control information management unit 410 can read out the current entry corresponding to the time (i.e., local clock) managed by the time management unit 404 from among a plurality of entries of the transmission control information stored in the transmission control information storage unit 409. Since it is the same as the first embodiment described above except that the split transmission control information (initial state and remaining split transmission control) is included in the current entry (i.e., each entry of the transmission control information) read by the transmission control information management unit 410, a detailed description of FIG. 32 is omitted here.
[0221] In addition, when the current entry is stored in the storage unit 410a in the transmission control information management unit 410 as shown in FIG. 32, similar to the first embodiment described above, the transmission permission determination unit 412 (a plurality of determination units 412a included therein) acquires the transmission enable information (number of frame transmission enable bits) included in the current entry, and acquires the frames stored at the head of each of the plurality of queues prepared in the transmission frame storage unit 403, and executes guard band determination.
[0222] Furthermore, the split transmission control information included in the current entry stored in the storage unit 410a in the transmission control information management unit 410 is passed to the splittable frame transmission suppression unit 417 as shown in FIG. 33. The splittable frame transmission suppression unit 417 includes a split transmission suppression determination unit 417a, and executes a process of suppressing the transmission of preemptable frames (splittable frames) based on the split transmission control information passed from the transmission control information management unit 410. In FIG. 33, for convenience, the fixed cache unit 410b and the variable cache unit 410c included in the transmission control information management unit 410 are omitted.
[0223] Hereinafter, with reference to the flowchart of FIG. 34, an example of the processing procedure of the divisible frame transmission suppression unit 417 will be described. Note that the processing shown in FIG. 34 is executed for each clock cycle based on the local clock (the operation clock of the transmission control unit 411, etc.) in the network interface controller 4.
[0224] The division transmission suppression determination unit 417a included in the divisible frame transmission suppression unit 417 reads out the division transmission control information included in the current entry stored in the storage unit 410a in the transmission control information management unit 410 from the storage unit 410a (step S91).
[0225] Next, the division transmission suppression determination unit 417a determines whether the division transmission control remainder (that is, the division transmission control remainder of the current entry) included in the division transmission control information read in step S91 is 0 (step S92).
[0226] If it is determined that the division transmission control remainder of the current entry is 0 (YES in step S92), the processing shown in FIG. 34 ends. That is, the fact that the division transmission control remainder of the current entry is 0 means that no processing (that is, division transmission control) is performed by the divisible frame transmission suppression unit 417 in the current entry.
[0227] On the other hand, if it is determined that the division transmission control remainder of the current entry is not 0 (NO in step S92), the division transmission suppression determination unit 417a determines whether the division transmission control remainder (time clock number) matches the period information (time clock number) included in the current entry stored in the storage unit 410a in the transmission control information management unit 410 (step S93).
[0228] As described in the first embodiment above, the transmission control information management unit 410 updates so as to subtract the period information according to the clock cycle. Therefore, the fact that the division transmission control remainder of the current entry matches the period information means that it is the timing to issue HOLD or RELEASE considering the above-mentioned time lag.
[0229] When it is determined that the remaining split transmission control of the current entry matches the period information (step S93), the split transmission suppression determination unit 417a determines whether the initial state (that is, the initial state of the current entry) included in the split transmission control information read in step S91 is Release (step S94).
[0230] When it is determined that the initial state of the current entry is Release (YES in step S94), the splittable frame transmission suppression unit 417 issues HOLD to the communication unit 401 (step S95). By executing the process of step S95, the transmission of the preemptable frame can be stopped (suppressed) at the timing when the period assigned to the entry of the gate control list (the entry of the transmission control information corresponding thereto) in which Set-And-Hold-MAC is set after the value of holdAdvance has elapsed starts.
[0231] On the other hand, when it is determined that the initial state of the current entry is not Release (that is, Hold) (NO in step S94), the splittable frame transmission suppression unit 417 issues RELEASE to the communication unit 401 (step S96). By executing the process of step S96, the transmission of the preemptable frame can be resumed at the timing when the period assigned to the entry of the gate control list (the entry of the transmission control information corresponding thereto) in which Set-And-Release-MAC is set after the value of releaseAdvance has elapsed starts.
[0232] Note that when it is determined that the remaining split transmission control of the current entry does not match the period information (NO in step S93), since it is not the timing to issue HOLD or RELEASE, the process shown in FIG. 34 ends.
[0233] According to the process shown in FIG. 34 described above, HOLD and RELEASE can be issued at an appropriate timing considering the values of holdAdvance and releaseAdvance. Note that the process shown in FIG. 34 is assumed to be executed for each port of the communication unit 401.
[0234] By the way, in this embodiment, the split transmission control remainder (number of clock cycles) of the split transmission control information included in the transmission control information is a fixed value, and it has been described that HOLD or RELEASE is issued when the split transmission control remainder matches the period information that is subtracted according to the clock cycle. However, a configuration in which the split transmission control remainder is subtracted according to the clock cycle (hereinafter referred to as a modification example of this embodiment) may also be used.
[0235] FIG. 35 shows an example of the transmission control information generated from the gate control list shown in FIG. 30 described above in the modification example of this embodiment. Here, the differences from the transmission control information shown in FIG. 31 described above will be mainly described.
[0236] As the split transmission control remainder of the split transmission control information included in the transmission control information shown in FIG. 31, for example, a fixed value based on the value of holdAdvance or releaseAdvance is set. However, as the split transmission control remainder in the modification example of this embodiment, a variable value based on the value of holdAdvance or releaseAdvance is set.
[0237] Specifically, when there is an entry in the gate control list with Set-And-Hold-MAC set, identify the entry to which a time interval (period) corresponding to the time before the holdAdvance value from the Set-And-Hold-MAC is assigned. If the entry thus identified is the entry immediately before the entry with Set-And-Hold-MAC set, as the remaining split transmission control information of the split transmission control information included in the entry of the transmission control information corresponding to the entry, the result of subtracting the holdAdvance value from the time interval (the number of clock cycles representing the value) assigned to the entry is set. In the example shown in FIG. 35, as the remaining split transmission control information of the split transmission control information included in the entry of the transmission control information corresponding to the entry immediately before the entry with Set-And-Hold-MAC set, 19,995 clock cycles obtained by subtracting 5 clock cycles from 20,000 clock cycles of the time interval are set.
[0238] In addition, when the value of holdAdvance is larger than the value of the time interval assigned to the entry immediately before the entry with Set-And-Hold-MAC set, the value obtained by subtracting the total value of the time intervals assigned to the entries existing between the entry with Set-And-Hold-MAC set and the entry identified as described above from the holdAdvance value is subtracted from the interval (the number of clock cycles representing the value) assigned to the identified entry, and the result may be set as the remaining split transmission control information.
[0239] On one hand, when there is an entry in the gate control list where Set-And-Release-MAC is set, identify the entry to which a time interval (period) corresponding to the time before the value of releaseAdvance from the Set-And-Release-MAC is assigned. If the entry thus identified is the entry immediately before the entry where Set-And-Release-MAC is set, as the remaining split transmission control information in the entry of the transmission control information corresponding to the entry, the result of subtracting the value of releaseAdvance from the time interval (the number of clock cycles representing the value) assigned to the entry is set. In the example shown in FIG. 35, as the remaining split transmission control information in the entry of the transmission control information corresponding to the entry immediately before the entry where Set-And-Release-MAC is set, 79999 clock cycles obtained by subtracting 1 clock cycle from 80000 clock cycles of the time interval are set.
[0240] In addition, when the value of releaseAdvance is greater than the value of the time interval assigned to the entry immediately before the entry where Set-And-Release-MAC is set, the value obtained by subtracting the total value of the time intervals assigned to the entries existing between the entry where Set-And-Release-MAC is set and the entry identified as described above from the value of releaseAdvance is subtracted from the interval (the number of clock cycles representing the value) assigned to the identified entry, and the result may be set as the remaining split transmission control.
[0241] As the remaining split transmission control information other than that set as described above (that is, the remaining split transmission control information of other entries), for example, the maximum value of the time interval (4294967295 clock cycles) is set so that split transmission control (that is, issuance of HOLD and RELEASE) is not performed.
[0242] Note that in the modification of this embodiment, since the remaining split transmission control set as described above needs to be decreased according to the clock cycle, the transmission control information management unit 410 executes the process shown in FIG. 36. Compared with FIG. 21 described above, FIG. 36 has the process of step S23 added after the process of step S18. In step S23, the transmission control information management unit 410 updates the split transmission control information included in the current entry stored in the storage unit 410a. Specifically, in step S23, a process of subtracting the number of processing unit clock cycles from the remaining split transmission control included in the split transmission control information is executed.
[0243] Furthermore, in the modification of this embodiment, the process of the splittable frame transmission suppression unit 417 is also different from the process shown in FIG. 34 described above.
[0244] Hereinafter, with reference to the flowchart of FIG. 37, an example of the processing procedure of the splittable frame transmission suppression unit 417 in the modification of this embodiment will be described.
[0245] First, the process of step S101 corresponding to the process of step S91 shown in FIG. 34 described above is executed.
[0246] Next, the split transmission suppression determination unit 417a included in the splittable frame transmission suppression unit 417 determines whether or not the remaining split transmission control (that is, the remaining split transmission control of the current entry) included in the split transmission control information read in step S101 is 0 (step S102).
[0247] If it is determined that the remaining split transmission control of the current entry is not 0 (NO in step S102), the process shown in FIG. 37 ends. That is, the fact that the remaining split transmission control of the current entry is not 0 means that no process (that is, split transmission control) is performed in the splittable frame transmission suppression unit 417 in the current entry.
[0248] On the other hand, in the modification of the present embodiment, the fact that the remaining split transmission control of the current entry is 0 means that it is the timing to issue HOLD or RELEASE considering the above-mentioned time lag.
[0249] Therefore, when it is determined that the remaining split transmission control of the current entry is 0 (YES in step S102), the processes of steps S103 to S105 corresponding to the processes of steps S94 to S96 shown in FIG. 34 above are executed.
[0250] In the modification of the present embodiment, the transmission control information management unit 410 executes the process shown in FIG. 36, and the splittable frame transmission suppression unit 417 executes the process shown in FIG. 37, so that HOLD and RELEASE can be issued at appropriate timings based on the remaining split transmission control that varies according to the clock cycle.
[0251] As described above, according to the present embodiment and the modification of the present embodiment, while efficiently transmitting best effort traffic by the second communication processing unit 413b, in the time interval (period) assigned to a predetermined entry, the transmission of preemptable frames from the second communication processing unit 413b is suppressed, so that the transmission of express frames from the first communication processing unit 413a (that is, the communication of the first communication processing unit 413a) that is not affected by the transmission of the preemptable frames can be realized.
[0252] Note that in the present embodiment and the modification of the present embodiment, the split transmission control information (the timing indicated thereby) has been described as being represented by the time (number of clock cycles) until the transmission of the preemptable frame (splittable frame) is stopped or resumed. However, the split transmission control information may be represented by, for example, the data amount of frames that can be transmitted (number of bits that can be transmitted in a frame) until the transmission of the preemptable frame is stopped or resumed.
[0253] This embodiment and its modifications may further include a buffer unit 418 and a data transfer state management unit 419 provided between the transmission control unit 411 and the communication processing unit 413, as shown in FIG. 38, for example. According to such a configuration, it is possible to realize frame transmission control considering the transfer state of frames (express frames and preemptable frames) from the transmission control unit 411 to the communication processing unit 413 via the buffer unit 418.
[0254] (Third Embodiment) Next, the third embodiment will be described. In this embodiment, descriptions of parts similar to those in the first and second embodiments described above are omitted, and parts different from the first and second embodiments will be mainly described. Note that since the hardware configuration of the communication device in this embodiment is the same as that in the first embodiment described above, it will be described with reference to FIG. 1 as appropriate.
[0255] FIG. 39 is a block diagram showing an example of the functional configuration of the communication device 100 in this embodiment. In FIG. 39, parts similar to those in FIGS. 2 and 29 described above are denoted by the same reference numerals, and detailed descriptions thereof are omitted.
[0256] As shown in FIG. 39, the host processor 2 in this embodiment is different from the host processor 2 shown in FIGS. 2 and 29 described above in that it does not include a setting unit 205 and includes a transmission control information storage unit 207. Further, the network interface controller 4 in this embodiment is different from the network interface controller 4 shown in FIGS. 2 and 29 described above in that it does not include a reception unit 408 and a transmission control information storage unit 409 and includes a cache unit 420 (temporary storage unit).
[0257] In this embodiment, the transmission control information storage unit 207 stores the transmission control information generated by the transmission control information generation unit 204.
[0258] The transmission control information management unit 410 directly acquires transmission control information from the transmission control information storage unit 207 without going through the setting unit 205 and the reception unit 408 described in the first embodiment above. The transmission control information management unit 410 acquires transmission control information from the transmission control information storage unit 207 by, for example, DMA.
[0259] The cache unit 420 is a storage medium (temporary storage unit) that temporarily stores at least a part of the transmission control information. The cache unit 420 can be configured by, for example, a storage medium that can be accessed faster than the transmission control information storage unit 207. Note that a configuration without the cache unit 420 may also be possible.
[0260] The transmission control information management unit 410, for example, periodically reads out the transmission control information from the transmission control information storage unit 207 in advance and stores it in the cache unit 420. Thereby, even when the memory of the network interface controller 4 is small and it is not possible to store all of the transmission control information (entries included therein), it is possible to cope with the situation.
[0261] In order to prevent the depletion of the transmission control information required for transmission control, the cache unit 420 may be configured to include a plurality of storage areas (cache areas). FIG. 40 is a diagram showing a configuration example of the cache areas in the cache unit 420. The transmission control information storage unit 207 may be configured by, for example, a large-capacity memory such as DRAM in addition to SRAM. On the other hand, the cache unit 420 is configured by a memory such as SRAM that has a smaller capacity than the transmission control information storage unit 207 but can be read out at high speed with a fixed delay.
[0262] As shown in FIG. 40, the cache unit 420 includes a fixed (static) cache area (fixed storage unit) and a variable (dynamic) cache area (variable storage unit).
[0263] The fixed cache area stores predetermined transmission control information among the transmission control information stored in the transmission control information storage unit 207. The predetermined transmission control information is, for example, a certain number of transmission control information starting from the head. The variable cache area stores a certain number of transmission control information among the transmission control information other than the transmission control information stored in the fixed cache area, and stores the transmission control information that varies according to the transmission control.
[0264] In the example shown in FIG. 40, the cache unit 420 stores m entries in the fixed cache area and n entries in the variable cache area. The head area (from entry 0 to m - 1) of the transmission control information storage unit 207 is written into the fixed cache area, and a part of the other areas (from entry k to k + n - 1) is written into the variable cache area. k is the offset from the head of the transmission control information. Among the variable cache area, the areas where the reading by the transmission control information management unit 410 is completed are overwritten and reused.
[0265] The number of entries m in the fixed cache area and the number of entries n in the variable cache area may be any specified values, and may be determined by, for example, the capacity of the SRAM or the like to be used. By m and n, it is possible to change the ratio between the fixed cache area and the variable cache area. For example, m = n may be set to a 1:1 ratio, or 2m = n may be set to a 1:2 ratio.
[0266] The flowchart of FIG. 41 shows an example of the processing procedure of the initialization process of the cache unit 420. The initialization process is executed, for example, triggered by the update of the gate control list by the user's setting or the setting via the network.
[0267] The transmission control information management unit 410 writes the transmission control information into the fixed cache area from the beginning (step S111). When the transmission control information management unit 410 has finished writing all of it into the fixed cache area, it then writes from the continuation into the variable cache area (step S112). Specifically, if the fixed cache area can cache m entries, then the entries from the (m + 1)-th onwards are written into the variable cache area.
[0268] When the number of entries that can be cached in the variable cache area is n, the initialization process is completed when the writing of the n entries into the variable cache area is finished. Note that the transmission control information management unit 410 manages the position where the writing is completed.
[0269] After that, the transmission control information management unit 410 reads out the transmission control information stored in the fixed cache area or the variable cache area and uses it for transmission control. When the reading of the transmission control information stored in the variable cache area is completed, the transmission control information management unit 410 updates the transmission control information stored in the variable cache area.
[0270] The transmission control information management unit 410 updates, for example, from the entry next to the last writing position in the variable cache area to the entry before the reading position from which the transmission control information management unit 410 reads the entry.
[0271] A specific example of the update process of the transmission control information will be described with reference to FIGS. 42 to 49. To simplify the explanation, the number of entries n in the variable cache area is set to 10. Also, as shown in FIG. 42, the number of the transmission control information (a plurality of entries) stored in the transmission control information storage unit 207 is m + 20 (from the 0-th to the (m + 19)-th). Note that although entries of the transmission control information are stored in the fixed cache area and the variable cache area, in the following explanation, for convenience, it is described as if the transmission control information is stored in the fixed cache area and the variable cache area.
[0272] FIG. 43 is a diagram showing the state of the cache unit 420 after the initialization process shown in FIG. 41. In this state, the transmission control information of the 0th to (m-1)th in the transmission control information storage unit 207 is stored in the entries 0 to (m-1) of the fixed cache area, and the transmission control information of the mth to (m+9)th in the transmission control information storage unit 207 is stored in the entries m to (m+9) of the variable cache area. The last write position at this time is m+9. Since the variable cache area operates as a circular buffer, the position after m+9 is m. When the transmission control becomes effective, the transmission control information management unit 410 reads the transmission control information of entry 0 corresponding to the current read position 0 and performs transmission control.
[0273] FIG. 44 is a diagram showing the state where time has passed and the read position of the transmission control information management unit 410 has become m+3. In this state, the transmission control information of entries m to (m+2) corresponding to the entries from the entry next to the last write position to the entry before the read position will not be referenced immediately in the future. This is because the transmission control information is read and used in order from the head as time passes. Therefore, the transmission control information management unit 410 updates these entries.
[0274] FIG. 45 is a diagram showing the state after updating these entries. The transmission control information management unit 410 reads the number of pieces of transmission control information corresponding to the rewritable area of the variable cache area from the position of the transmission control information last written in the transmission control information storage unit 207, and writes it to the variable cache area. In the example shown in FIG. 45, the transmission control information management unit 410 writes the transmission control information of the (m+10)th to (m+12)th to entries m to (m+2).
[0275] FIG. 46 is a diagram showing the state after time has passed in the same way and the entries of m+3 to m+8 have been updated. That is, when the read position reaches m+9 as time passes, the entries of m+3 to m+8 are updated. Since the variable cache area is a circular buffer (ring buffer) as described above, the entry after m+9 is m.
[0276] When the read position circulates and becomes m, the transmission control information management unit 410 updates the entry m + 9 corresponding to the position next to the last write position. FIG. 47 is a diagram showing the state after the entry of m + 9 is updated.
[0277] In this way, the variable cache area can store while updating the transmission control information to be referred to next.
[0278] Note that the transmission control (gate control) operates by the clock (local clock) that controls the operation of the transmission control information management unit 410 and the clock (global clock) of the time management unit 404. In this embodiment, by storing a certain number of transmission control information from the beginning in the fixed cache area, even when the operation of returning the gate control list to the first entry is performed by the signal (CycleStart signal) generated based on the time of the time management unit 404 called CycleStart, the transmission control information does not run out (underflow), and the transmission control can be performed.
[0279] FIG. 48 is a diagram showing the state where the read position returns to the head by the CycleStart signal from the state shown in FIG. 47. As shown in FIG. 48, the read position returns to 0 which is the head of the fixed cache area, and the last write position moves to m - 1. After that, the transmission control information management unit 410 writes the transmission control information to the variable cache area in the same manner as the initialization process.
[0280] FIG. 49 is a diagram showing the state after the transmission control information is written to the variable cache area in this way. By such processing, even when the read position moves to the variable cache area thereafter, the transmission control information can be kept stored in the cache unit 420.
[0281] Figures 39 and 40 show a configuration with one cache unit 420, but a plurality of cache units may be provided. Figure 50 is a block diagram showing an example of the functional configuration of the communication device 100 (host processor 2 and network interface controller 4) configured to include two cache units 420-1 and 420-2.
[0282] In transmission control (gate control), when switching the gate control list, the time when the gate control list becomes effective is specified at the same time. When switching to a new gate control list, it is desirable that the transmission control information management unit 410 perform transmission control using the old gate control list until immediately before the switch, and perform transmission control using the new gate control list immediately after the switch.
[0283] If the two cache units 420-1 and 420-2 are configured to store the transmission control information generated from the gate control lists before and after the switch respectively, and switch the cache unit to be used, it becomes possible to switch the transmission control information more accurately at the specified time. The transmission control information management unit 410, for example, stores the new transmission control information in advance in the cache unit that is not currently in use among the cache units 420-1 and 420-2 before the switch, and switches the cache unit to be read at the switching timing (specified time). As a result, it becomes possible to switch instantaneously to transmission control using the new transmission control information while performing transmission control using the old transmission control information until immediately before.
[0284] In the present embodiment, the transmission control information storage unit 207 has been described as being realized by a memory in the host processor 2. However, the transmission control information storage unit 207 may be realized by a memory (DRAM) in the network interface controller 4. Further, although the transmission control information management unit 410 has been described as reading the transmission control information from the transmission control information storage unit 207 and storing it in the cache unit 420, the storage method in the cache unit 420 is not limited to this. For example, the transmission control information management unit 410 or another control unit may instruct the DMA controller to read the transmission control information from the transmission control information storage unit 207 and store it in the cache unit 420.
[0285] In the present embodiment, the cache unit 420 has been described as being provided outside the transmission control information management unit 410. However, it is also possible to use registers (fixed registers and variable registers) inside the transmission control information management unit 410 as the cache unit.
[0286] Also, since the transmission control of the frame in the present embodiment is the same as that in the first embodiment described above, a detailed description thereof is omitted here.
[0287] In the present embodiment, as described above, in the configuration in which the network interface controller 4 includes a cache unit, the same effects as those in the first embodiment can be achieved.
[0288] Here, the configuration in which the network interface controller 4 in the first embodiment mainly includes a cache unit has been mainly described. However, the present embodiment may be a configuration combined with the second embodiment described above (that is, a configuration in which the network interface controller 4 in the second embodiment includes a cache unit).
[0289] (Fourth Embodiment) Next, the fourth embodiment will be described. In this embodiment, descriptions of the same parts as those in the above-described first and second embodiments will be omitted, and mainly the parts different from the first and second embodiments will be described. Note that since the hardware configuration of the communication device in this embodiment is the same as that in the first embodiment described above, it will be described with reference to FIG. 1 as appropriate.
[0290] FIG. 51 is a block diagram showing an example of the functional configuration of the communication device 100 in this embodiment. In FIG. 51, the same parts as those in FIGS. 2 and 29 described above are denoted by the same reference numerals, and detailed descriptions thereof are omitted.
[0291] As shown in FIG. 51, the host processor 2 in this embodiment is different from the host processor 2 shown in FIGS. 2 and 29 described above in that it does not include a transmission control information generation unit 204 and a detection unit 206. Further, the network interface controller 4 in this embodiment is different from the network interface controller 4 shown in FIGS. 2 and 29 described above in that it includes a processor 4a.
[0292] In this embodiment, the setting unit 205 transmits the gate control list stored in the gate control list storage unit 201 to the network interface controller 4.
[0293] The processor 4a includes a reception unit 4a-1, a transmission control information generation unit 4a-2, a transmission control information storage unit 4a-3, and a detection unit 4a-4.
[0294] The reception unit 4a-1 receives the input of the gate control list transmitted by the setting unit 205 of the host processor 2. The reception unit 4a-1 may receive the gate control list from a device other than the host processor 2 via, for example, the network 200.
[0295] The transmission control information generation unit 4a-2 generates transmission control information from the gate control list received by the reception unit 4a-1.
[0296] The transmission control information storage unit 4a-3 stores the transmission control information generated by the transmission control information generation unit 4a-2.
[0297] The detection unit 4a-4 detects changes in the link speed and operating speed information via the internal bus of the network interface controller 4. When the detection unit 4a-4 detects a change in the link speed or operating speed information, it instructs the transmission control information generation unit 4a-2 to regenerate the transmission control information.
[0298] Note that the transmission control of the frame in this embodiment is the same as that in the first embodiment described above, so the detailed description thereof is omitted here.
[0299] In this embodiment, as described above, in the configuration where the network interface controller 4 includes a processor, the same effects as those in the first embodiment can be achieved.
[0300] Here, the configuration in which the network interface controller 4 in the first embodiment includes a processor has been mainly described. However, this embodiment may be a configuration combined with the second embodiment described above (that is, a configuration in which the network interface controller 4 in the second embodiment includes a processor).
[0301] (Fourth Embodiment) In each of the above-described embodiments, the case where there is one network interface controller and one port has been described. However, each of these embodiments may be configured to include a plurality of network interface controllers and a plurality of ports corresponding to each of the plurality of network interface controllers. In this case, the transmission control information is set (generated) for each port.
[0302] Also, in each of the above-described embodiments, the frame generation unit 203 has been described as being realized by the host processor 2. However, the frame generation unit 203 may be realized by hardware such as an FPGA and an ASIC. In that case, the DMA function of the data transfer unit 405 may be omitted, and data (frames) may be directly exchanged through a stream interface.
[0303] According to at least one of the above-described embodiments, there is provided a communication control device, an information processing device, a communication control method, an information processing method, and a program capable of effectively utilizing a bandwidth.
[0304] Also, in at least one of the above-described embodiments, while simplifying the hardware configuration or software processing, it is possible to accurately operate according to the gate control list and effectively utilize the given bandwidth. Further, it is possible to give real-time performance (completing the processing within a defined time) to the transmission control processing.
[0305] In the description of the operations of the above-described embodiments, an example in which processing is performed for each operation clock cycle, that is, an example in which processing is executed for each cycle, has been mainly described. However, this does not prevent processing from being performed for each predetermined number of clock cycles. For example, processing may be performed for every 5 clock cycles. In this case, in the process of subtracting a predetermined amount of transmission control information (the transmittable amount indicated by the transmittable information), subtraction may be performed according to the number of clock cycles for which the processing is performed.
[0306] Also, in the description of the operations of the above-described embodiments, the update processing in step S18 and step S23 has been described by taking the execution in clock cycle units as an example. However, when the processing is performed by software, the elapsed time from the previous iteration (repetitive processing) may be detected, and subtraction corresponding thereto may be performed.
[0307] Furthermore, in each of the above-described embodiments, it has been described that the subtraction value of the transmission amount indicated by the link speed and the transmittable information used to generate the transmission control information is determined based on the data transfer rate of the MAC (communication unit 401) (that is, the amount of transmitted data per clock cycle). However, the present embodiment may be applied when communication is performed inside a predetermined device. In this case, it may be used based on the data transfer rate between the components that perform communication inside the predetermined device. That is, when performing internal data transfer, it may be used based on the data transfer rate between the components that perform communication inside the predetermined device. Although not shown, for example, assuming that the bus width of the transmission control unit 411 is 256 bits and the bus width of the component is 64 bits, 256 bits may be used as the reference for the data transfer rate, or 64 bits may be used. In any case, it is important that the generation process of the transmission control information and the subtraction process of the transmittable amount are consistent (that is, based on a common data transfer rate).
[0308] Also, in each of the above-described embodiments, when generating transmission control information, an example of calculating the amount of data until the next gate closes in each traffic class has been described. However, the time required to transmit the sum of queueMaxSDU, frame checksum sequence, and media-dependent overhead defined in each traffic class (hereinafter, the maximum frame transmission possible time) is calculated from the current link speed, and the amount of data that can be transmitted until the point in time (calculation target end point) obtained by adding the maximum frame transmission possible time from the start of the next entry (the end of the current entry) is calculated. In this case, in each traffic class, if the gate closes from the start of the current entry to the calculation target end point, the amount of data that can be transmitted up to that point is calculated as the transmissible amount. If the gate does not close, the amount of data that can be transmitted until the calculation target end point is set as the transmissible amount. Note that the maximum frame transmission possible time may be calculated using the value of MTU instead of queueMaxSDU. Also, for example, the transmissible amount may be calculated with the end of the current entry as the calculation target end point. Also, the transmissible amount may be calculated with the end of the entry n entries ahead from the current entry as the calculation target end point.
[0309] Note that in each of the above-described embodiments, the communication unit 401 has been described as being connected to an external network, but this may be an internal communication unit (that is, an internal module) that performs internal connections. In this case, the communication unit 401 may not have functions such as MAC and PHY and may simply perform bus connections internally.
[0310] (System configuration example) FIG. 52 is a diagram showing a configuration example of a system using the communication device 100 in each of the above-described embodiments. FIG. 52 shows an example of controlling the on-site robot arms 602a, 602b and the belt conveyor 601 from the edge server 700 via the 5G (5th Generation) / local 5G system 500 in a factory or a plant.
[0311] The 5G / Local 5G system 500 includes a 5G Core Network 505, a Central Unit 504, a Distributed Unit 503, a Remote Unit 502, and User Equipment 501. The 5G / Local 5G system 500 performs 5G communication as defined by the specifications of the 3GPP (3rd Generation Partnership Project).
[0312] The communication device 100 in each embodiment can be implemented, for example, in the edge server 700 and the 5G core network 505. Thereby, the real-time performance of communication between the edge server 700 and the 5G core network 505 can be improved.
[0313] Also, the communication device 100 in each embodiment may be used for communication between each part within the 5G / Local 5G system 500. That is, in order to perform communication between the remote unit 502, the distributed unit 503, the central unit 504, and the 5G core network 505, the communication device 100 in each embodiment may be implemented in at least a part of the remote unit 502, the distributed unit 503, the central unit 504, and the 5G core network 505.
[0314] The communication device 100 in each embodiment may be used for communication between at least one of the belt conveyor 601 and the robot arms 602a, 602b and the user equipment 501, or for communication between the belt conveyor 601 and the robot arms 602a, 602b.
[0315] The system to which the communication device 100 in each embodiment is applicable is not limited to this, and any system may be used. For example, it can also be applied to industrial network systems in factories or plants that do not use 5G / Local 5G, internal network systems in automobiles and aircraft, and the like.
[0316] The program executed by the communication device 100 (information processing device and communication control device) in each embodiment is provided by being pre-installed in the storage 3 and a ROM (Read-Only Memory) not shown in the figure. When the communication device 100 is realized by an FPGA, for example, data (configuration data) for setting the configuration of the FPGA corresponds to the program.
[0317] The program executed by the communication device 100 in each embodiment may be configured to be recorded on a computer-readable storage medium such as a CD-ROM (Compact Disk Read Only Memory), a flexible disk (FD), a CD-R (Compact Disk Recordable), a DVD (Digital Versatile Disk), etc. in an installable format or an executable format file, and provided as a computer program product.
[0318] Furthermore, the program executed by the communication device 100 in each embodiment may be configured to be stored on a computer connected to a network such as the Internet, and provided by being downloaded via the network. Also, the program executed by the communication device 100 in this embodiment may be configured to be provided or distributed via a network such as the Internet.
[0319] The program executed by the communication device 100 in each embodiment can cause a computer to function as each part of the communication device 100. This program can be read from a computer-readable storage medium onto the main memory device and executed by a computer (processor).
[0320] Although some embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the gist of the invention. These embodiments and their modifications are included in the scope and gist of the invention, as well as in the invention described in the claims and the equivalent scope thereof.
Explanation of Signs
[0321] 1... Memory, 2... Host Processor (Information Processing Device), 3... Storage, 4... Network Interface Controller (Communication Control Device), 4a... Processor, 4a-1... Reception Unit, 4a-2... Transmission Control Information Generation Unit, 4a-3... Transmission Control Information Storage Unit, 4a-4... Detection Unit, 5... Storage Controller, 100... Communication Device, 201... Gate Control List Storage Unit, 202... Synchronization Control Unit, 203... Frame Generation Unit, 204... Transmission Control Information Generation Unit, 205... Setting Unit, 206... Detection Unit, 401... Communication Unit, 402... Received Frame Storage Unit, 403... Transmitted Frame Storage Unit, 404... Time Management Unit, 405... Data Transfer Unit, 406... Queue Attribute Information Storage Unit, 407... Communication Processing Decision Unit, 408... Reception Unit, 409... Transmission Control Information Storage Unit, 410... Transmission Control Information Management Unit, 410a... Storage Unit (Temporary Storage Unit), 411... Transmission Control Unit, 411a... First Transmission Control Unit, 411b... Second Transmission Control Unit, 412... Transmission Permission Determination Unit, 413... Communication Processing Unit, 413a... First Communication Processing Unit, 413b... Second Communication Processing Unit, 414... Notification Unit, 415... Gate Control List Storage Unit, 416... Transmission Control Information Generation Unit, 417... Divisible Frame Transmission Suppression Unit, 418... Buffer Unit, 419... Data Transfer State Management Unit, 420, 420-1, 420-2... Cache Unit.
Claims
1. A transmission control unit that controls the transmission of messages stored in the queue based on transmission control information generated based on gate control information in which opening and closing of gates corresponding to each of a plurality of queues are set; A communication unit that transmits the message according to the control of the transmission control unit Comprising The transmission control information includes a plurality of entries, Each of the plurality of entries includes information indicating the timing at which the gate closes as the next event related to the transmission of the message at the time of controlling the transmission of the message, and a period assigned to the entry, The period is represented by the number of clock cycles based on the operation clock of the transmission control unit Communication control device.
2. Further comprising a temporary storage unit that temporarily stores the transmission control information, The transmission control unit controls the transmission of the message based on the transmission control information stored in the temporary storage unit The communication control device according to claim 1.
3. The transmission control information includes transmissible information indicating the transmissible time or the data amount of transmissible messages corresponding to each of the plurality of queues as the timing at which the event occurs, The transmission control unit controls the transmission of the message by opening and closing the gate based on the transmissible information The communication control device according to claim 1 or 2.
4. A first communication processing unit that transmits a non-divisible message via the communication unit; A second communication processing unit that transmits a divisible message via the communication unit; A communication processing determination unit that determines whether to transmit the message stored in the queue by the first communication processing unit or the second communication processing unit based on attribute information indicating the attribute of each of the plurality of queues The communication control device according to any one of claims 1 to 3, further comprising.
5. Further comprising a split transmission suppression unit, The transmission control information includes split transmission control information indicating the time until the transmission of the divisible message is stopped or restarted or the data amount of transmissible messages until the transmission of the message is stopped or restarted as the timing at which the event occurs, The split transmission suppression unit suppresses the transmission of the divisible message from the second communication processing unit based on the split transmission control information The communication control device according to claim 4.
6. The communication control device according to any one of claims 1 to 5, further comprising a transmission control information management unit that updates, for each operation clock of the transmission control unit, the timing at which the event indicated by the transmission control information occurs.
7. Comprising a transmission control information generation unit that generates transmission control information based on gate control information in which opening and closing of gates corresponding to each of a plurality of queues are set, The transmission control information includes a plurality of entries, Each of the plurality of entries includes information indicating the timing at which the gate closes as the next event related to the transmission of the message at the time of controlling the transmission of the message stored in each of the plurality of queues, and a period assigned to the entry, The period is represented by the number of clock cycles based on the operation clock of the transmission control unit that controls the transmission of the message Information processing apparatus.
8. The information processing apparatus according to claim 7, wherein the transmission control information includes transmission enable information indicating the time until the gate corresponding to each of the plurality of queues closes or the data amount of the message that can be transmitted until the gate closes as the timing at which the event occurs.
9. The information processing apparatus according to claim 7 or 8, wherein the transmission control information includes split transmission control information indicating the time until the transmission of a splittable message is stopped or resumed or the data amount of the message that can be transmitted until the transmission of the message is stopped or resumed as the timing at which the event occurs.
10. The information processing apparatus according to any one of claims 7 to 9, wherein the timing at which the event indicated by the transmission control information occurs is updated for each operation clock of the transmission control unit that controls the transmission of the message.
11. Based on transmission control information generated based on gate control information in which opening and closing of gates corresponding to each of a plurality of queues are set, controlling the transmission of the message stored in the queue; and Transmitting the message according to the control Comprising The transmission control information includes a plurality of entries, Each of the plurality of entries includes information indicating the timing at which the gate closes as the next event related to the transmission of the message at the time of controlling the transmission of the message, and a period assigned to the entry, The period is represented by the number of clock cycles based on the operation clock of a transmission control unit that controls the transmission of the message. Communication control method.
12. Comprising a step of generating transmission control information based on gate control information in which opening and closing of gates corresponding to respective ones of a plurality of queues are set, The transmission control information includes a plurality of entries, Each of the plurality of entries includes information indicating a timing at which the gate closes as an event related to transmission of the message next at a time of controlling transmission of the message stored in each of the plurality of queues, and a period assigned to the entry, The period is represented by the number of clock cycles based on the operation clock of a transmission control unit that controls the transmission of the message. Information processing method.
13. Causing a computer to control transmission of a message stored in the queue based on transmission control information generated based on gate control information in which opening and closing of gates corresponding to respective ones of a plurality of queues are set, and transmit the message according to the control, wherein the transmission control information includes a plurality of entries, each of the plurality of entries includes information indicating a timing at which the gate closes as an event related to transmission of the message next at a time of controlling transmission of the message, and a period assigned to the entry, The period is represented by the number of clock cycles based on the operation clock of a transmission control unit that controls the transmission of the message. Program.
14. Causing a computer to execute a step of generating transmission control information based on gate control information in which opening and closing of gates corresponding to respective ones of a plurality of queues are set, the transmission control information includes a plurality of entries, each of the plurality of entries includes information indicating a timing at which the gate closes as an event related to transmission of the message next at a time of controlling transmission of the message stored in each of the plurality of queues, and a period assigned to the entry, The period is represented by the number of clock cycles based on the operation clock of a transmission control unit that controls the transmission of the message. Program.
Citation Information
Patent Citations
Packet processing device and packet processing method
JP2018125597A
Transfer device, transfer method, and program
JP2019054350A
Information processing unit, information processing method, and program
JP2019096930A
Time sensitive networking control circuitry
US10511455B1