WO2011006398A1 - 一种数据交换方法及数据交换结构 - Google Patents

一种数据交换方法及数据交换结构 Download PDF

Info

Publication number
WO2011006398A1
WO2011006398A1 PCT/CN2010/073246 CN2010073246W WO2011006398A1 WO 2011006398 A1 WO2011006398 A1 WO 2011006398A1 CN 2010073246 W CN2010073246 W CN 2010073246W WO 2011006398 A1 WO2011006398 A1 WO 2011006398A1
Authority
WO
WIPO (PCT)
Prior art keywords
output port
port
output
input port
data channel
Prior art date
Application number
PCT/CN2010/073246
Other languages
English (en)
French (fr)
Inventor
陈武茂
臧大军
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP10799396.6A priority Critical patent/EP2442499B1/en
Publication of WO2011006398A1 publication Critical patent/WO2011006398A1/zh
Priority to US13/348,106 priority patent/US8750323B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3045Virtual queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures
    • H04L49/508Head of Line Blocking Avoidance

Definitions

  • a data exchange method and a data exchange structure The present application claims to be filed on July 14, 2009 in the Chinese Patent Office, the application number is 200910108752. 9.
  • the Chinese patent application entitled “A Data Exchange Method and Data Exchange Structure” Priority is hereby incorporated by reference in its entirety.
  • the present invention relates to the field of communications, and in particular, to a data exchange method and a data exchange structure. Background technique
  • variable length switching technique is a packet switching technique that directly processes variable length packets in a data exchange structure without cutting variable length packets into cells for transmission.
  • the characteristics of the variable length switching technology are: On the data channel of the data exchange structure, when an input port starts to exchange one packet to the output port, the data channel of the input port to the output port remains unblocked until the entire variable length packet is transmitted. The channel is released to the output port.
  • variable-length switching usually when the variable-length packet arrives at the input port, it does not take a true physical cutting packet, but logically cuts the packet into fixed-length cells. For fixed-length cells back-to-back transmission, the packets received during transmission and arriving at the output port are still intact, thus avoiding the operation of the recombined cells.
  • variable length switching technology requires a reasonable data exchange structure and a reasonable data exchange method.
  • the data exchange structures commonly used in the prior art are:
  • Arbi ter Cros sbar switch fabric (Arbi terXB, arbitrated crossbar structure with buffer).
  • an NXN switch structure in which the number of input ports and the number of output ports are both N.
  • Arbi terXB uses a space division structure, uses a centralized arbiter to determine the connection status of each intersection, and determines which output port data channel should be used for each input port data channel in the switching network. Connection, the function of transferring data from the switch network portal to the switch network exit.
  • the problem with this architecture is that the switching capacity is limited by the complexity of the centralized arbitrator. Centralized arbitration needs to determine the connection status of each intersection based on the transmission request of all input ports and the transmission status of all output ports. The computational complexity is proportional to the square of the number of ports. When the number of ports to be supported is huge, such Centralized arbiter is difficult to implement.
  • CICQ exchange structure (Combined Input and Crossbar Queued, joint input crosspoint queuing, also known as buffer crossbar switch fabric).
  • an NXN switch structure in which the number of input ports and the number of output ports are both N.
  • the CICQ exchange structure (Bufedered Crossbar) has a FIFO (Firs t-In-Firs t-Out) cache at each intersection.
  • N 2 the square of N, N is a natural number greater than or equal to 2, the same below
  • FIF0 the same below
  • each output port schedules N FIFO output port buffers with a simple output port scheduler.
  • Each FIFO output port buffer sends backpressure information to the corresponding input port according to the queue depth, and each input port can decide whether to send data to the FIFO output port buffer according to the back pressure information.
  • N X N switch structure With the number of input ports and the number of output ports being N.
  • Each vertical column of CICQ (corresponding to an output port data channel) has a total of N crosspoint buffers, which are replaced by k FIFO buffers whose number is determined independently of the number of input ports (k is a natural number greater than or equal to 1).
  • This structure is similar to Arbi terXB in that it uses a centralized arbiter to handle scheduling requests for individual line cards. Compared to the traditional Arbi terXB, its arbitration algorithm is simpler: the traditional Arbi terXB Each output port can only receive data from one input port at a time. The average pass rate of one iteration is only about 60%. It takes three to four iterations to achieve a higher pass rate. In the new structure, each output port can receive at the same time. k input port data. 7°/ ⁇ The pass rate of an iteration reaches 99. 7 ° /. .
  • each output port can receive k entries of data at the same time, the collision collision probability between each input port is greatly reduced, so each input port does not have to maintain strict reception synchronization for the low probability of collision. Thereby, it is advantageous to realize variable length exchange.
  • An object of the present invention is to provide a data exchange method and a data exchange structure, which can improve variable length switching performance while saving cache resources of a data exchange structure.
  • an embodiment of the present invention provides a data exchange method, where the method is based on a data exchange structure, where the data exchange structure includes an input port, an output port, and a switch chip, where the input port and the output port are respectively Connected to the switch chip;
  • the input port includes a switch interface controller FIC;
  • the output port includes an output port scheduler, the output port scheduler corresponds to the output port;
  • the switch chip includes an input port data channel And an output port data channel, the input port data channel and the output port data channel are connected vertically and horizontally through a cross point, the input port data channel corresponding to the input port, the output port data channel and the output
  • the switch chip further includes an output port buffer, the output port buffer is corresponding to the output port, and the output port scheduler is configured to perform data scheduling on the output port buffer corresponding to the output port;
  • Data exchange methods include: The output port scheduler acquires empty or non-empty status information of the virtual output queue of the input port, available status information of the input port data channel busy
  • the input port data channel corresponding to the input port is idle, and the output port buffer corresponding to the output port has a free output port buffer.
  • the output port scheduler selects one of the input ports, and sends scheduling request information to the FIC of the input port, where the scheduling request information includes scheduling the non-empty virtual output queue into the idle output port.
  • the FIC of the selected input port After receiving the scheduling request information sent by the output port scheduler, the FIC of the selected input port selects a scheduling request in response to an output port scheduler, and points the selected input port to the virtual port of the output port. An output queue is sent to the output port cache;
  • the output port scheduler continues to input the port data channel idle to the input port corresponding to the non-empty virtual output queue of the output port.
  • the FIC of the other input port sends scheduling request information; the output port scheduler schedules the virtual output queue received by the output port buffer out of the switching chip.
  • the present invention also provides a data exchange structure, including an input port, an output port, and a switch chip, wherein the input port and the output port are respectively connected to the switch chip;
  • the input port includes a switch interface controller FIC;
  • the output port An output port scheduler, where the output port scheduler corresponds to the output port;
  • the switch chip includes an input port data channel and an output port data channel, and the input port data channel and the output port data channel pass through an intersection a vertical and horizontal connection, the input port data channel corresponding to the input port, the output port data channel corresponding to the output port;
  • the switch chip further comprising an output port buffer, the output port buffer and the output Corresponding to the port, the output port scheduler is responsible for performing data scheduling on the output port buffer corresponding to the output port;
  • the output port scheduler is configured to acquire an empty or non-virtual output queue of the input port Empty status information, available status information of the input port data channel busy or idle, available status information of the output port buffer busy or idle;
  • the output port scheduler is further configured to: when there is a non-empty virtual output queue pointing to the output port, the input port data channel corresponding to the input port is idle, and the output port is corresponding to Selecting one of the input ports when there is a free output port buffer in the output port buffer, and transmitting scheduling request information to the FIC of the input port, the scheduling request information including scheduling the non-empty virtual output queue into the Idle output port buffer;
  • the FIC of the selected input port is configured to receive scheduling request information sent by the output port scheduler, and select a scheduling request in response to an output port scheduler, and point the selected input port to the output port a virtual output queue is sent to the output port buffer; the output port scheduler is further configured to: when the scheduling request information is not selected by the FIC of the selected input port, continue to be non-empty to the output port.
  • the FIC of the other input port whose input port data channel is idle in the input port corresponding to the virtual output queue sends scheduling request information;
  • the output port scheduler is further configured to schedule the virtual output queue received by the output port buffer out of the switch chip.
  • FIG. 1 is a schematic view of an existing Arbi ter Crossbar exchange structure
  • FIG. 3 is a schematic diagram of a conventional exchange structure combining the advantages of CICQ and Arbi ter XB;
  • FIG. 4 is a schematic diagram of a data exchange structure according to Embodiment 1 of the present invention; 5 is a schematic flowchart of a data exchange method according to Embodiment 1 of the present invention;
  • FIG. 6 is a schematic diagram of an application scenario of a data exchange method according to Embodiment 2 of the present invention; Schematic diagram of a data exchange method.
  • Embodiment 1 is a diagrammatic representation of Embodiment 1:
  • the data exchange structure includes an input port, an output port, and a switch chip.
  • the input port and the output port are respectively connected to the switch chip.
  • Each input port includes a switch interface controller FIC, that is, input port 1 to input port n correspond to FIC 1 to FIC n respectively.
  • Each port includes an input buffer 401 for storing the virtual output queues VOQ (Virtual Output Queue) 0
  • each output port includes an output port scheduler 402, the scheduler and the output port corresponding to the output port.
  • the switch chip is coupled to an output port scheduler 402, which may also be integrated on a switch chip.
  • the switch chip includes an input port data channel and an output port data channel, the input port data channel and the output port data channel are connected vertically and horizontally through a cross point, and the input port data channel corresponds to the input port.
  • the output port data channel corresponds to the output port.
  • the switch chip further includes an output port buffer 403, which may be a FIFO output port buffer, and the output port buffer may be placed at each output port, so as to implement an arbitration scheduling operation for exchanging data into on-chip processing, so that The integration of the chip is higher.
  • the FIFO output port buffer is placed in the switch chip.
  • Each of the output ports corresponds to N FIFO output port buffers, and N is a natural number greater than or equal to 1.
  • the value of N in the embodiment is 4.
  • Each output port scheduler is responsible for scheduling the four FIFO output port buffers on the output port.
  • the input port data channel is represented by a horizontal line; the output port data channel is represented by a vertical line.
  • For each input port its input port data channel is represented by a horizontal line; for each output port, The output port data channel is represented by 4 horizontal lines, corresponding to 4 FIFO output port buffers respectively, that is, each output port data channel corresponds to one FI F0 output port buffer.
  • the data exchange structure is an ⁇ ⁇ ⁇ structure, that is, the number of input ports and output ports are both n. There are a total of n cross-point buffers on each output port data channel of the conventional CICQ switch fabric.
  • n 2 caches are required.
  • the number of caches is only 4n.
  • the output port scheduler is configured to obtain empty or non-empty state information of the virtual output queue of the input port, available state information of the input port data channel being busy or idle, and an available state of the output port buffer being busy or idle.
  • the output port scheduler is further configured to: when there is a non-empty virtual output queue pointing to the output port, the input port data channel corresponding to the input port is idle, and the output port is corresponding to Selecting one of the input ports when there is a free output port buffer in the output port buffer, and transmitting scheduling request information to the FIC of the input port, the scheduling request information including scheduling the non-empty virtual output queue into the Idle output port buffer;
  • the FIC of the selected input port is configured to receive scheduling request information sent by the output port scheduler, and select a scheduling request in response to an output port scheduler, and point the selected input port to the output port a virtual output queue is sent to the output port buffer; the output port scheduler is further configured to: when the scheduling request information is not selected by the FIC of the selected input port, continue to be non-empty to the output port.
  • the FIC of the other input port whose input port data channel is idle in the input port corresponding to the virtual output queue sends scheduling request information;
  • the output port scheduler is further configured to schedule the virtual output queue received by the output port buffer out of the switch chip.
  • An application scenario of a data exchange method provided by this embodiment is based on a data exchange structure as shown in FIG. 4. As shown in FIG. 5, the data exchange method provided in this embodiment includes:
  • Step 501 The output port scheduler obtains status information (empty or non-empty) of the input port virtual output queue V0Q.
  • step 501 the input port adopts V0Q technology, and the queues pointing to the same output port in each input port are arranged in the same virtual queue, and the V0Q state in each input port pointing to the corresponding output port can be represented by one bit (bi t ) bit.
  • n (n is a natural number greater than or equal to 1) output port has n bi t bits. That is, the status information table of the virtual output queue V0Q can be maintained by n bi t bits.
  • status information (empty or non-empty) of the virtual output queue V0Q may be sent by the FIC of the input port to the output port scheduler.
  • the output port scheduler receives status information of the virtual output queue V0Q, and updates the status information table of the virtual output queue V0Q in real time. If an input port does not have a variable length packet pointing to an output port, the status information of the virtual output queue pointing to the output port of the input port is empty. On the other hand, if an input port has a variable length packet pointing to an output port, the status information of the virtual output queue pointing to the output port in the input port is non-empty.
  • Step 502 The output port scheduler obtains available status information (busy or idle) of the input port data channel.
  • step 502 the specific determination method of the available state of the input port data channel is as follows:
  • the length of the packet is included in the header of each packet sent by the FIC of the input port to the switch chip. If the packet header appears on the input port data channel, the input port data channel is set to Busy.
  • Step 503 The output port scheduler obtains available status information (busy or idle) of the FIFO output port buffer.
  • step 503 the specific determination method of the available state of the FIFO output port buffer is as follows:
  • the available status information of the FIFO output port buffer is set to busy (busy);
  • next packet of the input port data channel connected to the output port data channel corresponding to the FIFO output port buffer is not buffered to the FIFO output port; or the next packet of the input port data channel is to the FI F0 output port buffer , and the packet transmission ends; and the FIFO output port buffer is not full.
  • each output port scheduler For each output port scheduler, four FIFO output port buffers are respectively scheduled, corresponding to four output port data channels, so that four bi t bits can be used to mark the available state of the FIFO output port buffer.
  • Step 504 If there is a non-empty virtual output queue V0Q pointing to the output port, and the input port data channel corresponding to the input port is idle, and the output port corresponding to the output port exists in the buffer
  • the idle FIFO output port buffer the output port scheduler selects one of the input ports, and sends scheduling request information to the FIC of the selected input port, where the scheduling request information includes the non-empty virtual output queue V0Q Scheduled into the free FIFO output port buffer.
  • step 504 there may be multiple input ports having virtual output queues pointing to an output port, and there are multiple instances where the input port data channels are idle.
  • the output port scheduler selects one of the input ports for the FIFO output port buffer, and sends scheduling request information to the FIC corresponding to the selected input port.
  • Different methods can be used to select the input port.
  • the weighted round robin (WRR scheduling method) is used in this embodiment, that is, the weight of the virtual output queue V0Q according to different input ports.
  • the size is polled and scheduled, and the FIC that sends the virtual port of the virtual output queue V0Q with a large weight to the output port preferentially selects the scheduling request information.
  • the weight setting may adopt various schemes.
  • the embodiment sets the weight according to the traffic volume of the data service corresponding to the input port virtual output queue V0Q.
  • the output port scheduler may simultaneously select multiple idle FI F0 output port buffers, and input ports to input ports corresponding to the non-empty virtual output queue V0Q of the output port corresponding to the output port scheduler.
  • the FIC of one port whose data channel is idle transmits scheduling request information. It is also possible to allocate 4 time slices to the 4 FIFO output port buffers that each output port scheduler is responsible for, and each time slice serves a FIFO output port buffer.
  • Step 505 After receiving the scheduling request information sent by the output port scheduler, the FIC of the selected input port selects a scheduling request in response to an output port scheduler, and points the selected input port to the corresponding output port.
  • the virtual output queue V0Q is sent to the FIFO output port buffer.
  • the FIC of the selected input port may select a plurality of different methods for selecting scheduling request information from different output port schedulers.
  • this embodiment adopts a simple polling method (Round Robin, referred to as an RR scheduling method) without weights.
  • the FIC of the selected input port sorts the output port scheduler number of each dispatch request, and equally allocates time slices, and responds to the scheduling request information of the output port scheduler in the numbered order. If multiple output port schedulers simultaneously send scheduling request information to an FIC, the scheduling request information may be combined and sent to the FIC of the selected input port.
  • Step 506 If the scheduling request information sent by the output port scheduler is not selected by the FIC of the selected input port, the output port scheduler continues to correspond to the non-empty virtual output queue V0Q pointing to the output port.
  • the FIC of the other input port of the input port in which the input port data channel is idle transmits scheduling request information.
  • the scheduling request information is not selected by the FIC of the selected input port, and includes: (1) if the FIFO output port buffer does not receive any data packet within a specified time or (2) receives a data packet within a specified time, but the destination FIFO output port buffer of the data packet is not the FIFO output Port cache.
  • the FIFO output port buffer is released, and the FIFO output port buffer available status information is set to idle.
  • Step 507 If the scheduling request information sent by the output port scheduler is selected by the FIC of the selected input port, that is, the FI F0 output port buffer receives the data packet within a specified time, and the data packet is The destination output port is an output port corresponding to the FI F0 output port buffer, and the FI F0 output port buffer receives a non-empty virtual output queue V0Q sent by the input port to the output port; during the sending, the input The data channel corresponding to the port data channel and the FIFO output port buffer is always connected; after the transfer is completed, the connection is released.
  • the output port scheduler continuously checks the packet header information sent on the input port data channel. If one of the following two situations occurs, the connection is released:
  • the predetermined time is a timeout count value, and the specific value may be set according to the response time of the FIC of the input port to the scheduling request information of the output port scheduler.
  • the specified time can also be used to sense faults in time. If an input port is selected by an output port buffer, and the FIC corresponding to the input port fails, if the FIC of the input port is unplugged and the data packet cannot be sent, the input port buffer waiting time exceeds the requirement. After the time, the scheduling request for the input port can be automatically abandoned, and the input port of the other input port data channel is selected.
  • Step 508 The output port scheduler buffers the virtual output queue received by the FIFO output port.
  • the VOQ dispatches the switch chip to complete the data exchange.
  • the data exchange structure includes an input port, an output port, and a switch chip.
  • the input port and the output port are respectively connected to the switch chip.
  • Each input port includes a switch interface controller FIC, that is, input port 1 to input port n correspond to FIC 1 to FIC n respectively.
  • Each port includes an input buffer 401 for storing the virtual output queues VOQ (Virtua l Output Queue) 0
  • each output port includes an output port scheduler 402, the scheduler and the output port corresponding to the output port.
  • the switch chip is coupled to an output port scheduler 402, which may also be integrated on a switch chip.
  • the switch chip includes an input port data channel and an output port data channel, the input port data channel and the output port data channel are connected vertically and horizontally through a cross point, and the input port data channel corresponds to the input port.
  • the output port data channel corresponds to the output port.
  • the switch chip further includes an output port buffer 403, which may be a FIFO output port buffer, and the output port buffer may be placed at each output port, so as to implement an arbitration scheduling operation for exchanging data into on-chip processing, so that The integration of the chip is higher.
  • the FIFO output port buffer is placed in the switch chip.
  • Each of the output ports corresponds to N FIFO output port buffers, and N is a natural number greater than or equal to 1.
  • the value of N in the embodiment is 4.
  • Each output port scheduler is responsible for scheduling the four FIFO output port buffers on the output port.
  • the input port data channel is represented by a horizontal line; the output port data channel is represented by a vertical line.
  • one horizontal line indicates its input port data channel; for one output port, four horizontal lines indicate its output port data channel, corresponding to four FIFO output port buffers, that is, each output port
  • the data channel corresponds to a FIFO output port buffer.
  • the data exchange structure is an ⁇ ⁇ ⁇ structure, that is, the number of input ports and output ports is ⁇ . There are a total of n intersection points on each output port data channel of the traditional CICQ switch fabric.
  • n X n structure similar to that described in this embodiment, a total of n 2 caches are required. In this embodiment, there are only four FIFO output port buffers on each output port data channel. Thus, when the switch fabric is an n X n structure, the number of caches is only 4n.
  • the structure can save cache resources.
  • the data exchange method provided in this embodiment can be used for large-scale variable length switching at the same time, and breaks through the switching performance bottleneck of centralized arbitration.
  • an output sub-port exists at each output port, and the output sub-port can be scheduled.
  • the output sub-port can be scheduled.
  • the output port scheduler corresponding to the output port n maintains 4 output sub-ports leaky bucket counters, and calculates the sent traffic of the four output sub-ports respectively.
  • the data exchange method provided in this embodiment includes:
  • Step 701 The output port scheduler selects an output subport.
  • the output port scheduler may select a plurality of methods for selecting the output sub-port.
  • a weight polling scheduling method may be used.
  • the weight setting may adopt various schemes.
  • the embodiment sets the weight according to the traffic volume of the data service corresponding to the output sub-port.
  • Step 702 The output port scheduler obtains status information (empty or non-empty) of the input port virtual output queue V0Q.
  • step 702 the input port adopts V0Q technology, and the queues pointing to the same output sub-port in each input port are arranged in the same virtual queue, and the V0Q state in each input port pointing to the corresponding output sub-port can be represented by a bi t bit.
  • m a natural number greater than or equal to 1
  • output subports have m bi t bits. That is, the status information table of the virtual output queue V0Q pointing to an output sub-port can be maintained by m bi t bits.
  • step 702 the FIC of the input port sends status information (empty or non-empty) to the output port scheduler to the virtual output queue V0Q of the output subport.
  • the output port scheduler receives status information of the virtual output queue V0Q, and updates the status information table of the virtual output queue V0Q in real time. If the status information of the virtual output queue that points to an output sub-port in an input port is empty, it indicates that the input port has no variable-length packet pointing to the output sub-port. On the other hand, if the status information of the virtual output queue of an input port that is directed to an output sub-port is non-empty, it indicates that the input port has a variable length packet pointing to the output sub-port.
  • Step 703 The output port scheduler obtains available status information (busy or idle) of the input port data channel.
  • step 703 the specific determination method of the available state of the input port data channel is as follows: length information. If the packet header appears on the input port data channel, set this input port data channel to Busy.
  • Step 704 The output port scheduler obtains available status information (busy or idle) of the FIFO output port buffer.
  • step 704 the specific determination method of the available state of the FIFO output port buffer is as follows:
  • the FIFO output port buffer sends a scheduling request message through the corresponding output port scheduler, the FIFO output port buffer is set to busy (busy);
  • each output port scheduler For each output port scheduler, four FIFO output port buffers are respectively scheduled, corresponding to four output port data channels, so that four bi t bits can be used to mark the available state of the FIFO output port buffer.
  • Step 705 If there is a non-empty virtual output queue V0Q pointing to the output sub-port, the input port data channel corresponding to the input port is idle, and the output port where the output sub-port is located corresponds to There is an idle FIFO output port buffer in the FIFO output port buffer, and the output port scheduler selects one of the input ports, and sends scheduling request information to the FIC of the input port, where the scheduling request information includes The non-empty virtual output queue V0Q is scheduled into the free FIFO output port buffer.
  • step 705 there may be multiple input ports having virtual output queues pointing to an output sub-port, and a plurality of data channels of the input ports are idle.
  • the output port scheduler can choose from a variety of different methods for the input port.
  • the weighted round robin (WRR scheduling method) is used in this embodiment, that is, the polling scheduling is performed according to the weight of the virtual output queue V0Q of different input ports, and the output is preferentially pointed to the output.
  • the FIC of the input port of the port whose virtual output queue V0Q has a large weight transmits scheduling request information.
  • the weight setting may adopt various schemes.
  • the embodiment sets its weight according to the traffic volume of the data service corresponding to the input port.
  • Step 706 After receiving the scheduling request information sent by the output port scheduler, the FIC of the selected input port selects a scheduling request in response to an output port scheduler, and points the selected input port to the corresponding output sub-port.
  • the virtual output queue V0Q is sent to the FIFO output port buffer.
  • the FIC of the selected input port is scheduled from a different output port.
  • the selection of scheduling request information sent by the device can take a variety of different methods.
  • this embodiment adopts a simple polling method (Round Robin, referred to as an RR scheduling method) without weights.
  • the FIC of the selected input port sorts the output port scheduler number of each dispatch request, and allocates time slices equally, and responds to the scheduling request information of the output port scheduler according to the numbered order. If a plurality of output port schedulers simultaneously send scheduling request information to an FIC, the scheduling request information may be combined and sent to the FIC of the selected input port.
  • Step 707 If the scheduling request information is not selected by the FIC of the selected input port, the output port scheduler continues to input to an input port corresponding to the non-empty virtual output queue V0Q of the output sub-port.
  • the FIC of the other input port whose port data channel is idle transmits scheduling request information.
  • the scheduling request information is not selected by the FIC of the selected input port, and includes:
  • the FIFO output port buffer is released, and the FIFO output port buffer available status information is set to idle.
  • Step 708 If the scheduling request information is selected by the FIC of the selected input port, that is, the FI F0 output port buffer receives the data packet within a specified time, and the destination output sub-port of the data packet is Said output sub-port, wherein said FIFO output port buffer receives a non-empty virtual output queue V0Q directed to said output sub-port; during transmission, said input port data channel and said FIFO output port buffer corresponding data channel are always Keep connected; after the transfer is complete, the connection is released.
  • the output port scheduler corresponding to the FIFO output port buffer continuously checks the packet header information sent on the input port data channel, and if one of the following two situations occurs, the connection is released: 1. The next packet of the input port data channel connected to the data channel corresponding to the FIFO output port buffer is not cached to the FI F0 output port.
  • the predetermined time is a timeout count, and the specific value may be set according to the response time of the FIC of the input port to the scheduling request information sent by the output port scheduler.
  • the specified time can also be used to prevent malfunctions. If an output port has an input port selected, and the FIC corresponding to the input port is faulty, if the FIC of the selected input port is unplugged and cannot send a data packet, the input port buffer wait time exceeds After the specified time, the scheduling request for the input port should be automatically abandoned, and the input port of the other input port data channel idle is selected.
  • Step 709 The output port scheduler dispatches the virtual output queue V0Q received in the F I F0 output port buffer into the output sub-port to complete data exchange.
  • step 709 it is assumed that the output port scheduler selects an output subport and an input port data channel for service when serving an output port buffer. Then, when the next output port buffer is serviced, the output sub-port can still be selected, but it is not necessary to select the input port data channel that has been selected. According to this scheme, the efficiency of the switching network can be improved.
  • the steps 702, 703 and 704 have no sequential execution order, as long as they are executed before step 705.

Description

一种数据交换方法及数据交换结构 本申请要求于 2009 年 7 月 14 日提交中国专利局、 申请号为 200910108752. 9、 发明名称为 "一种数据交换方法及数据交换结构" 的中 国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域 本发明涉及通信领域, 尤其涉及一种数据交换方法及数据交换结构。 背景技术
变长交换技术是在数据交换结构中直接处理变长分组, 而不将变长分 组切割为信元再来传输的分组交换技术。 变长交换技术的特点是: 在数据 交换结构的数据通道上, 当某个输入端口开始交换一个分组到输出端口时, 输入端口到输出端口的数据通道一直保持畅通, 直到整个变长分组被传送 到输出端口才释放该通道。 为了提高变长交换的效率, 解决分组切割和重 组带来的缺陷, 通常在变长分组到达输入端口时, 并不采取真正的物理上 的切割分组, 而是逻辑地切割分组为定长信元, 对定长信元背靠背传输, 因此在传输的过程中以及到达输出端口处收到的分组仍然是完整的, 从而 避免了重组信元的操作。
变长交换技术的实现需要合理的数据交换结构以及合理的数据交换方 法。 现有技术中常用的数据交换结构有:
一、 Arbi ter Cros sbar交换结构 (Arbi terXB, 带缓存的仲裁交叉开关 结构)。
如图 1所示的是一种输入端口个数和输出端口个数均为 N的 N X N交换结 构。 Arbi terXB 采用空分结构, 使用集中式仲裁器确定各个交叉点的连接 状态, 确定交换网内每条输入端口数据通道应该和哪条输出端口数据通道 连接, 实现将数据从交换网入口传送到交换网出口的功能。 此架构的问题 在于: 交换容量受限于集中式仲裁器的复杂度。 集中式仲裁需要根据所有 输入端口的发送请求和所有输出端口的发送状态来确定每个交叉点的连接 状态, 计算复杂度与端口数量的平方成正比, 当需要支持的端口数量巨大 时, 这样的集中式仲裁器很难实现。
二、 CICQ交换结构(Combined Input and Crossbar Queued, 联合输入 交叉点排队, 也称为缓冲交叉开关交换结构)。
如图 2所示的是一种输入端口个数和输出端口个数均为 N的 N X N交换 结构。 CICQ交换结构(Buf f ered Crossbar , 交叉点带缓存) 在每个交叉点 都有一个 FIFO ( Firs t- In- Firs t- Out,先入先出 )缓存。 总共有 N2 ( N的平 方, N为大于或等于 2的自然数, 下同)个 FIF0。 它无需集中式仲裁器, 每个输出端口用简单的输出端口调度器调度 N个 FIFO输出端口缓存。 每个 FIFO输出端口缓存根据队列深度向相应输入端口发送反压信息, 每个输入 端口可以根据反压信息决定是否向此 FIFO输出端口缓存发送数据。
该数据交换结构的问题在于, 尽管避免了集中式仲裁器的缺陷, 但由 于 CICQ的每个交叉点都有缓存, 实现 N X N交换结构总共需要 N2个缓存, 在输入端口和输出端口数较多时对片内 RAM ( Random Access Memory,随机 存取存储器)容量资源的需求会激增, 实现代价过高。
三、 一种结合了 CICQ和 Arbi ter XB优点的交换结构。
如图 3所示的是一种输入端口个数和输出端口个数均为 N的 N X N交换 结构。 CICQ的每一竖列 (对应一条输出端口数据通道)共有 N个交叉点缓 存, 这里用数量确定、 与输入端口数量无关的 k个 FIFO缓存代替(k为大 于或等于 1的自然数)。 所述 k个 FIFO缓存动态共享给 N个交叉点。 一般 情况下, 取 k=4。
该结构与 Arbi terXB类似, 使用集中式仲裁器, 处理各个线卡的调度 请求。 相对于传统 Arbi terXB, 它的仲裁算法较简单: 传统 Arbi terXB 的 每个输出端口一次只能接收一个输入端口的数据, 一次迭代的通过率平均 只有 60%左右, 要达到较高通过率需要迭代 3- 4次; 新的结构中, 每个输出 端口可以同时接收 k个输入端口的数据。 可以计算出当 k=4 时, 一次迭代 的通过率达到 99. 7°/。。
同时, 由于每个输出端口可以同时接收 k个入口的数据, 各个输入端 口之间碰撞冲突概率大大降低, 因此各个输入端口不必为了 P争低冲突概率 而保持严格的接收同步。 从而, 有利于实现变长交换。
该结构虽然节省了缓存资源的使用, 但仍然使用了集中式仲裁器, 变 长交换性能的提高仍然受到一定的限制。
综上, 现有数据交换结构的问题在于: 难以在节省缓存资源的同时, 提高变长交换性能。 发明内容 本发明实施例的目的在于提供一种数据交换方法及数据交换结构, 在 节省数据交换结构的缓存资源的同时, 提高变长交换性能。
为解决上述技术问题, 本发明实施例提供了一种数据交换方法, 该方 法基于一种数据交换结构, 所述数据交换结构包括输入端口、 输出端口和 交换芯片, 所述输入端口、 输出端口分别与所述交换芯片相连; 所述输入 端口包括交换接口控制器 FIC; 所述输出端口包括输出端口调度器, 所述输 出端口调度器与所述输出端口对应; 所述交换芯片包括输入端口数据通道 和输出端口数据通道, 所述输入端口数据通道和所述输出端口数据通道通 过交叉点纵横连接, 所述输入端口数据通道与所述输入端口——对应, 所 述输出端口数据通道与所述输出端口对应; 所述交换芯片还包括输出端口 缓存, 所述输出端口缓存与所述输出端口对应, 所述输出端口调度器负责 对所述输出端口对应的所述输出端口缓存进行数据调度; 所述数据交换方 法包括: 所述输出端口调度器获取所述输入端口的虚拟输出队列的空或非空的 状态信息、 所述输入端口数据通道忙碌或空闲的可用状态信息、 所述输出 端口缓存忙碌或空闲的可用状态信息;
若所述输入端口中存在指向所述输出端口的非空虚拟输出队列, 同时, 所述输入端口所对应的输入端口数据通道空闲, 且所述输出端口对应的输 出端口缓存中存在空闲输出端口缓存, 则所述输出端口调度器选择所述输 入端口的一个, 并向该输入端口的 FIC发送调度请求信息, 所述调度请求信 息包括将所述非空虚拟输出队列调度入所述空闲的输出端口缓存;
所述选择的输入端口的 FIC接收到所述输出端口调度器发送的调度请 求信息后, 选择响应一个输出端口调度器的调度请求, 并将所述选择的输 入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存;
若所述调度请求信息未被所述选择的输入端口的 FIC选中, 则所述输出 端口调度器继续向指向所述输出端口的非空虚拟输出队列所对应的输入端 口中输入端口数据通道空闲的另一个输入端口的 FIC发送调度请求信息; 所述输出端口调度器将所述输出端口缓存接收的虚拟输出队列调度出 交换芯片。
本发明还提供一种数据交换结构, 包括输入端口、 输出端口和交换芯 片, 所述输入端口、 输出端口分别与所述交换芯片相连; 所述输入端口包 括交换接口控制器 FIC; 所述输出端口包括输出端口调度器, 所述输出端口 调度器与所述输出端口对应; 所述交换芯片包括输入端口数据通道和输出 端口数据通道, 所述输入端口数据通道和所述输出端口数据通道通过交叉 点纵横连接, 所述输入端口数据通道与所述输入端口——对应, 所述输出 端口数据通道与所述输出端口对应; 所述交换芯片还包括输出端口缓存, 所述输出端口缓存与所述输出端口对应, 所述输出端口调度器负责对所述 输出端口对应的所述输出端口缓存进行数据调度;
所述输出端口调度器用于获取所述输入端口的虚拟输出队列的空或非 空的状态信息、 所述输入端口数据通道忙碌或空闲的可用状态信息、 所述 输出端口缓存忙碌或空闲的可用状态信息;
所述输出端口调度器还用于: 当所述输入端口中存在指向所述输出端 口的非空虚拟输出队列, 同时, 所述输入端口所对应的输入端口数据通道 空闲, 且所述输出端口对应的输出端口缓存中存在空闲输出端口缓存时, 选择所述输入端口的一个, 并向该输入端口的 FIC发送调度请求信息, 所述 调度请求信息包括将所述非空虚拟输出队列调度入所述空闲的输出端口缓 存;
所述选择的输入端口的 FIC用于接收所述输出端口调度器发送的调度 请求信息, 并选择响应一个输出端口调度器的调度请求, 并将所述选择的 输入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存; 所述输出端口调度器还用于: 当所述调度请求信息未被所述选择的输 入端口的 F I C选中时, 继续向指向所述输出端口的非空虚拟输出队列所对应 的输入端口中输入端口数据通道空闲的另一个输入端口的 FIC发送调度请 求信息;
所述输出端口调度器还用于将所述输出端口缓存接收的虚拟输出队列 调度出交换芯片。
本实施例提供的数据交换方法和数据交换结构, 通过各输出端口调度 器的分布式调度, 取代现有技术的集中式仲裁, 在节省缓存资源的同时, 提高了交换性能。 附图说明 图 1是现有 Arbi ter Crossbar交换结构示意图;
图 2是现有 CICQ交换结构示意图;
图 3是现有的一种结合了 CICQ和 Arbi ter XB优点的交换结构示意图; 图 4是本发明实施例一提供的一种数据交换结构示意图; 图 5是本发明实施例一提供的一种数据交换方法的流程示意图; 图 6是本发明实施例二提供的一种数据交换方法的应用场景示意图; 图 7是本发明实施例二提供的一种数据交换方法的流程示意图。
具体实施方式 以下结合附图对本发明实施例进行伴细描述。
实施例一:
如图 4 所示, 本实施例提供一种数据交换结构。 所述数据交换结构包 括输入端口、 输出端口和交换芯片。 输入端口、 输出端口分别与交换芯片 相连。每个输入端口包括一个交换接口控制器 FIC, 即输入端口 1至输入端 口 n分别对应 FIC 1至 FIC n。 每个输入端口包括缓存 401, 用于存放虚拟 输出队列 VOQ ( Virtual Output Queue )0 每个输出端口包括输出端口调度 器 402, 所述输出端口调度器与所述输出端口对应。 所述交换芯片与输出端 口调度器 402相连接, 该输出端口调度器 402也可以集成在交换芯片上。 所述交换芯片包括输入端口数据通道和输出端口数据通道, 所述输入端口 数据通道和所述输出端口数据通道通过交叉点纵横连接, 所述输入端口数 据通道与所述输入端口——对应, 所述输出端口数据通道与所述输出端口 对应。 所述交换芯片还包括输出端口缓存 403, 该处可以是 FIFO输出端口 缓存, 所述输出端口缓存可放置在各输出端口处, 为实现将交换数据的仲 裁调度工作转换为片内处理, 以使芯片的集成度更高一些, 本实施例将该 FIFO输出端口缓存置于交换芯片内。每个输出端口对应 N个 FIFO输出端口 缓存, N为大于或等于 1的自然数, 优选地, 本实施例中取 N的值为 4。 各 输出端口调度器负责调度所在输出端口的 4个 FIFO输出端口缓存。图 4中, 输入端口数据通道用横线表示; 输出端口数据通道则用竖线表示。 对于每 个输入端口, 用 1条横线表示其输入端口数据通道; 对于每个输出端口, 用 4条横线表示其输出端口数据通道, 分别对应 4个 FIFO输出端口缓存, 即每条输出端口数据通道对应一个 F I F0输出端口缓存。 该数据交换结构为 η χ η结构, 即输入端口与输出端口的个数均 n。 传统的 CICQ交换结构的每 一输出端口数据通道上共有 n个交叉点缓存, 若是类似本实施例所述的 n X n结构,则共需要 n2个缓存。 本实施例每一输出端口数据通道上仅有 4个 FIFO输出端口缓存。 如此, 当交换结构为 η χ η结构时, 缓存个数仅为 4n。
所述输出端口调度器用于获取所述输入端口的虚拟输出队列的空或非 空的状态信息、 所述输入端口数据通道忙碌或空闲的可用状态信息、 所述 输出端口缓存忙碌或空闲的可用状态信息;
所述输出端口调度器还用于: 当所述输入端口中存在指向所述输出端 口的非空虚拟输出队列, 同时, 所述输入端口所对应的输入端口数据通道 空闲, 且所述输出端口对应的输出端口缓存中存在空闲输出端口缓存时, 选择所述输入端口的一个, 并向该输入端口的 FIC发送调度请求信息, 所述 调度请求信息包括将所述非空虚拟输出队列调度入所述空闲的输出端口缓 存;
所述选择的输入端口的 FIC用于接收所述输出端口调度器发送的调度 请求信息, 并选择响应一个输出端口调度器的调度请求, 并将所述选择的 输入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存; 所述输出端口调度器还用于: 当所述调度请求信息未被所述选择的输 入端口的 F I C选中时, 继续向指向所述输出端口的非空虚拟输出队列所对应 的输入端口中输入端口数据通道空闲的另一个输入端口的 FIC发送调度请 求信息;
所述输出端口调度器还用于将所述输出端口缓存接收的虚拟输出队列 调度出交换芯片。
该结构相对于现有技术, 可以节省缓存资源, 可以用于端口数量巨大 的大规模变长交换, 突破集中式仲裁的交换性能瓶颈。 本实施例提供的一种数据交换方法的应用场景基于如图 4所示的数据 交换结构。 如图 5所示, 本实施例提供的数据交换方法, 包括:
步骤 501: 输出端口调度器获取输入端口虚拟输出队列 V0Q的状态信息 (空或非空) 。
在步骤 501中, 输入端口采用 V0Q技术, 每个输入端口内指向同一输出 端口的队列排列成同一虚拟队列, 每个输入端口内指向相应输出端口的 V0Q 状态可用一个比特(bi t )位来表示, n个(n为大于或等于 1的自然数)输 出端口则有 n个 bi t位。 即虚拟输出队列 V0Q的状态信息表可用 n个 bi t位来维 护。
在步骤 501中, 可以由输入端口的 FIC向输出端口调度器发送虚拟输出 队列 V0Q的状态信息(空或者非空) 。 所述输出端口调度器接收所述虚拟输 出队列 V0Q的状态信息, 实时更新虚拟输出队列 V0Q的状态信息表。 若某输 入端口无指向某输出端口的变长分组, 则所述某输入端口中指向所述某输 出端口的虚拟输出队列的状态信息为空。 反之, 若某输入端口存在指向某 输出端口的变长分组, 则所述某输入端口中指向所述某输出端口的虚拟输 出队列的状态信息为非空。
步骤 502: 输出端口调度器获取输入端口数据通道的可用状态信息(忙 碌或空闲) 。
在步骤 502中, 输入端口数据通道的可用状态的具体判断方法如下:
1.输入端口的 FIC发往交换芯片的每个数据包的包头中带有数据包的 长度信息。 若数据包头出现在所述输入端口数据通道上, 则将所述输入端 口数据通道置为 Busy (忙碌)。
2. 每条输入端口数据通道上设置计数器, 对当前数据包传输的字节数 进行统计: 若所述数据包的包长与已传输的字节数的差值小于某个预设值, 则将此输入端口数据通道标为 Ready (空闲)。 所述预设值的设置根据输入 端口的 FIC和输出端口调度器的交互时间来设定。 如将预设值设定为在一 个交互时间单元内可能传输的数据包的字节数。
步骤 503: 输出端口调度器获取 FIFO输出端口缓存的可用状态信息(忙 碌或空闲) 。
在步骤 503中, FIFO输出端口缓存的可用状态的具体判断方法如下:
1. 若 FIFO输出端口缓存通过对应的输出端口调度器发出调度请求信 息, 将该 FIFO输出端口缓存的可用状态信息置为 busy (忙碌);
2. 若满足下列条件, 则将此 FIFO输出端口缓存的可用状态信息置为 ready (空闲):
与 FIFO输出端口缓存对应的输出端口数据通道相连的输入端口数 据通道的下一个数据包不是到本 FIFO输出端口缓存; 或所述输入端口 数据通道的下一个数据包是到本 F I F0输出端口缓存, 且数据包传输结 束; 且此 FIFO输出端口缓存未满。
对于每个输出端口调度器, 分别调度 4个 FIFO输出端口缓存, 对应 4条 输出端口数据通道, 故可用 4个 bi t位来标志 FIFO输出端口缓存的可用状态。
步骤 504: 若所述输入端口中存在指向所述输出端口的非空虚拟输出队 列 V0Q, 并且, 所述输入端口所对应的输入端口数据通道空闲, 且所述输出 端口对应的输出端口缓存中存在空闲 FIFO输出端口缓存, 则所述输出端口 调度器选择所述输入端口的一个, 并向该选择的输入端口的 FIC发送调度请 求信息, 所述调度请求信息包括将所述非空虚拟输出队列 V0Q调度入所述空 闲的 FIFO输出端口缓存。
在步骤 504中, 可能存在多个输入端口都有指向某个输出端口的虚拟输 出队列, 且又有多个所述输入端口数据通道空闲的情形。 此时, 所述输出 端口调度器为 FIFO输出端口缓存选择所述输入端口中的一个, 并向被选中 的输入端口对应的 FIC发送调度请求信息。 对所述输入端口的选择可采用不 同的方法。 优选地, 本实施例采用带权重的轮询调度方法(Weighted Round Robin,简称 WRR调度方法) , 即根据不同输入端口虚拟输出队列 V0Q的权重 大小进行轮询调度, 优先选择指向该输出端口的虚拟输出队列 V0Q权重较大 的输入端口的 FIC发送调度请求信息。 权重设置可采用多种方案, 优选地, 本实施例根据输入端口虚拟输出队列 V0Q对应的数据业务的流量多少来设 置其权重。
步骤 504中, 所述输出端口调度器可以同时选择多个空闲的 F I F0输出端 口缓存, 向指向所述输出端口调度器对应的输出端口的非空虚拟输出队列 V0Q所对应的输入端口中输入端口数据通道空闲的一个端口的 FIC发送调度 请求信息。 也可以给每个输出端口调度器所负责调度的 4个 FIFO输出端口缓 存分配 4个时间片, 每个时间片服务一个 FIFO输出端口缓存。
步骤 505: 所述选择的输入端口的 FIC接收到所述输出端口调度器发送 的调度请求信息后, 选择响应一个输出端口调度器的调度请求, 并将所述 选择的输入端口内指向相应输出端口的虚拟输出队列 V0Q发往所述 FIFO输 出端口缓存。
在步骤 505中, 所述选择的输入端口的 FIC对来自不同的输出端口调度 器发来的调度请求信息的选择可采用多种不同的方法。 优选地, 本实施例 采用不带权重的简单轮询方法(Round Robin, 简称 RR调度方法) 。 例如, 所述选择的输入端口的 FIC对每个发来调度请求的输出端口调度器编号排 序, 并均衡分配时间片, 按所述编号顺序响应所述输出端口调度器的调度 请求信息。 若有多个输出端口调度器同时向一个 FIC发送调度请求信息, 可 将调度请求信息合并后发送给所述选择的输入端口的 FIC。
步骤 506: 若所述输出端口调度器发送的调度请求信息未被所述选择的 输入端口的 F I C选中, 则所述输出端口调度器继续向指向所述输出端口的非 空虚拟输出队列 V0Q所对应的输入端口中输入端口数据通道空闲的另一个 输入端口的 FIC发送调度请求信息。
在步骤 506中, 所述调度请求信息未被所述选择的输入端口的 FIC选中, 包括: ( 1 )若所述 FIFO输出端口缓存在规定的时间内未接收到任何数据包或 ( 2 )在规定时间内接收到数据包, 但所述数据包的目的 FIFO输出端口 缓存不是所述 FIFO输出端口缓存。
若满足上述条件(1 )或 (2 ) , 则所述 FIFO输出端口缓存释放, 设置 FIFO输出端口缓存可用状态信息为空闲。
步骤 507: 若所述输出端口调度器发送的调度请求信息被所述选择的输 入端口的 F I C选中, 即所述 F I F0输出端口缓存在规定的时间内接收到数据 包, 且所述数据包的目的输出端口是所述 F I F0输出端口缓存对应的输出端 口, 则所述 F I F0输出端口缓存接收输入端口发送的指向所述输出端口的非 空虚拟输出队列 V0Q; 在发送过程中, 所述输入端口数据通道和所述 FIFO输 出端口缓存对应的数据通道始终保持连接; 传送完成后, 所述连接释放。
在步骤 507中的所述连接释放的规则具体如下:
输出端口调度器不断检查输入端口数据通道上发来的数据包头信息, 若发生如下两种情形之一, 则所述连接释放:
1. 与 FIFO输出端口缓存对应的输出端口数据通道相连的输入端口数 据通道的下一个数据包不是到所述 FIFO输出端口缓存。
2. 与 FIFO输出端口缓存对应的输出端口数据通道相连的输入端口数 据通道的下一个数据包是到所述 FIFO输出端口缓存, 且数据包传输结束。
在步骤 506, 507中, 所述的规定时间是一个超时计数值, 其具体数值 可以根据输入端口的 FIC对输出端口调度器的调度请求信息的响应时间来 设定。 所述的规定时间还可用于及时感知故障。 如某输出端口缓存已选中 了某输入端口, 而所述输入端口对应的 FIC发生了故障, 如所述输入端口的 F I C被拔出而无法发送数据包, 则输入端口缓存等待时间超过所述规定时间 后可以自动放弃对所述输入端口的调度请求, 选择其它输入端口数据通道 空闲的输入端口。
步骤 508: 输出端口调度器将 FIFO输出端口缓存接收的虚拟输出队列 VOQ调度出交换芯片, 完成数据交换。
所述步骤 501, 502与 503无先后执行顺序, 只要在步骤 504前执行即可。 实施例二:
本实施例提供的一种数据交换方法的应用场景基于如图 4 所示的数据 交换结构。 所述数据交换结构包括输入端口、 输出端口和交换芯片。 输入 端口、 输出端口分别与交换芯片相连。 每个输入端口包括一个交换接口控 制器 FIC, 即输入端口 1至输入端口 n分别对应 FIC 1至 FIC n。 每个输入 端口包括缓存 401, 用于存放虚拟输出队列 VOQ ( Virtua l Output Queue )0 每个输出端口包括输出端口调度器 402,所述输出端口调度器与所述输出端 口对应。 所述交换芯片与输出端口调度器 402相连接, 该输出端口调度器 402也可以集成在交换芯片上。所述交换芯片包括输入端口数据通道和输出 端口数据通道, 所述输入端口数据通道和所述输出端口数据通道通过交叉 点纵横连接, 所述输入端口数据通道与所述输入端口——对应, 所述输出 端口数据通道与所述输出端口对应。 所述交换芯片还包括输出端口缓存 403, 该处可以是 FIFO输出端口缓存, 所述输出端口缓存可放置在各输出 端口处, 为实现将交换数据的仲裁调度工作转换为片内处理, 以使芯片的 集成度更高一些, 本实施例将该 FIFO输出端口缓存置于交换芯片内。 每个 输出端口对应 N个 FIFO输出端口缓存, N为大于或等于 1的自然数,优选地, 本实施例中取 N的值为 4。各输出端口调度器负责调度所在输出端口的 4个 FIFO输出端口缓存。 图 4中, 输入端口数据通道用横线表示; 输出端口数 据通道则用竖线表示。 对于 1个输入端口, 用 1条横线表示其输入端口数 据通道; 对于 1个输出端口, 用 4条横线表示其输出端口数据通道, 分别 对应 4个 FIFO输出端口缓存, 即每条输出端口数据通道对应一个 FIFO输 出端口缓存。 该数据交换结构为 η χ η结构, 即输入端口与输出端口的个数 均 η。 传统的 CICQ交换结构的每一输出端口数据通道上共有 η个交叉点缓 存, 若是类似本实施例所述的 n X n结构,则共需要 n2个缓存。 本实施例每 一输出端口数据通道上仅有 4个 FIFO输出端口缓存。 如此, 当交换结构为 n X n结构时, 缓存个数仅为 4n。
该结构相对于现有技术, 可以节省缓存资源, 同时通过本实施例提供 的数据交换方法, 可以同时用于大规模的变长交换, 突破集中式仲裁的交 换性能瓶颈。
如图 6所示, 本实施例中, 每个输出端口处存在输出子端口, 可以对输 出子端口进行调度。 优选地, 本实施例中每个输出端口处存在 4个输出子端 口 SP1,SP2,SP3,SP4。 输出端口 n对应的输出端口调度器 n维护 4个输出子端 口漏桶计数器, 分别计算 4个输出子端口的已发送流量。
如图 7所示, 本实施例提供的数据交换方法包括:
步骤 701 : 输出端口调度器选择一个输出子端口。
在步骤 701中, 若所述输出子端口的漏桶计数器溢出, 则所述输出子端 口不参与调度。 所述输出端口调度器对所述输出子端口的选择可采用多种 方法, 优选地, 可使用权重轮询调度方法。 权重设置可采用多种方案, 优 选地, 本实施例根据所述输出子端口对应的数据业务的流量多少来设置其 权重。
步骤 702: 输出端口调度器获取输入端口虚拟输出队列 V0Q的状态信息 (空或非空) 。
在步骤 702中, 输入端口采用 V0Q技术, 每个输入端口内指向同一输出 子端口的队列排列成同一虚拟队列, 每个输入端口内指向相应输出子端口 的 V0Q状态可用一个 bi t位来表示, m个(m为大于或等于 1的自然数)输出子 端口则有 m个 bi t位。 即指向一个输出子端口的虚拟输出队列 V0Q的状态信息 表可用 m个 bi t位来维护。 若有 n个输出端口 (n为大于或等于 1的自然数) , 每个 n个端口中有 m个输出子端口, 则需 n X m个 bi t位来维护虚拟输出队列 V0Q的状态信息表。 在步骤 702中, 输入端口的 FIC向输出端口调度器发送指向输出子端口 的虚拟输出队列 V0Q的状态信息(空或者非空)。 所述输出端口调度器接收 虚拟输出队列 V0Q的状态信息, 实时更新虚拟输出队列 V0Q的状态信息表。 若某输入端口中指向某输出子端口的虚拟输出队列的状态信息为空, 则表 明所述某输入端口无指向所述某输出子端口的变长分组。 反之, 若某输入 端口中指向某输出子端口的虚拟输出队列的状态信息为非空, 则表明所述 某输入端口存在指向所述某输出子端口的变长分组。
步骤 703: 输出端口调度器获取输入端口数据通道的可用状态信息(忙 碌或空闲) 。
在步骤 703中, 所述输入端口数据通道的可用状态的具体判断方法如 下: 长度信息。 若数据包头出现在输入端口数据通道上, 则将此输入端口数据 通道置为 Busy (忙碌)。
2. 每条输入端口数据通道上设置计数器, 对当前数据包传输的字节数 进行统计: 若所述数据包的包长与已传输的字节数的差值小于某个预设值, 则将此输入端口数据通道置为 Ready (空闲)。 所述预设值的设置根据输入 端口的 FIC和输出端口调度器的交互时间来设定, 即在一个交互时间单元 内可能传输的数据包的字节数。
步骤 704: 输出端口调度器获取 FIFO输出端口缓存的可用状态信息(忙 碌或空闲) 。
在步骤 704中, 所述 FIFO输出端口缓存的可用状态的具体判断方法如 下:
1. 若 FIFO输出端口缓存通过对应的输出端口调度器发出调度请求信 息, 将该 FIFO输出端口缓存置为 busy (忙碌);
2. 若满足下列条件, 则将此 FIFO输出端口缓存置为 ready (空闲): a)与 FIFO输出端口缓存对应的输出端口数据通道相连的输入端口数 据通道的下一个数据包不是到本 FIFO输出端口缓存; 或所述输入端 口数据通道的下一个数据包是到本 F I F0输出端口缓存, 且数据包传 输结束;
b)且此 F I F0输出端口缓存未满。
对于每个输出端口调度器, 分别调度 4个 FIFO输出端口缓存, 对应 4条 输出端口数据通道, 故可用 4个 bi t位来标志 FIFO输出端口缓存的可用状态。
步骤 705: 若所述输入端口中存在指向所述输出子端口的非空虚拟输出 队列 V0Q, 同时, 所述输入端口所对应的输入端口数据通道空闲, 且所述输 出子端口所在的输出端口对应的 FIFO输出端口缓存中存在空闲的 FIFO输出 端口缓存, 则所述输出端口调度器选择所述输入端口的一个, 并向该输入 端口的 F I C发送调度请求信息, 所述调度请求信息包括将所述非空虚拟输出 队列 V0Q调度入所述空闲的 FIFO输出端口缓存。
在步骤 705中, 可能存在多个输入端口都有指向某个输出子端口的虚拟 输出队列, 且又有多个所述输入端口的数据通道空闲。 此时, 输出端口调 度器对输入端口的选择可采用多种不同的方法。 优选地, 本实施例采用带 权重的轮询调度方法(Weighted Round Robin,简称 WRR调度方法) , 即才艮 据不同输入端口虚拟输出队列 V0Q的权重大小进行轮询调度, 优先选择指向 该输出子端口的虚拟输出队列 V0Q权重较大的输入端口的 FIC发送调度请求 信息。 权重设置可采用多种方案, 优选地, 本实施例根据所述输入端口对 应的数据业务的流量多少来设置其权重。
步骤 706: 所述选择的输入端口的 FIC接收到所述输出端口调度器发送 的调度请求信息后, 选择响应一个输出端口调度器的调度请求, 将所述选 择的输入端口内指向相应输出子端口的虚拟输出队列 V0Q发往所述 FIFO输 出端口缓存。
在步骤 706中, 所述选择的输入端口的 FIC对来自不同的输出端口调度 器发来的调度请求信息的选择可采用多种不同的方法。 优选地, 本实施例 采用不带权重的简单轮询方法(Round Robin, 简称 RR调度方法) 。 例如, 所述选择的输入端口的 FIC对每个发来调度请求的输出端口调度器编号排 序, 并均衡分配时间片, 按所述编号顺序响应输出端口调度器的调度请求 信息。 若有多个输出端口调度器同时向一个 FIC发送调度请求信息, 可将调 度请求信息合并后发送给所述选择的输入端口的 FIC。
步骤 707: 若所述调度请求信息未被所述选择的输入端口的 FIC选中, 则所述输出端口调度器继续向指向所述输出子端口的非空虚拟输出队列 V0Q所对应的输入端口中输入端口数据通道空闲的另一个输入端口的 FIC发 送调度请求信息。
在步骤 707中, 所述调度请求信息未被所述选择的输入端口的 FIC选中, 包括:
( 1 )若所述 FIFO输出端口缓存在规定的时间内未接收到任何数据包或 ( 2 )在规定时间内接收到数据包, 但所述数据包的目的 FIFO输出端口 缓存不是所述 FIFO输出端口缓存。
若满足上述条件(1 )或 (2 ) , 则所述 FIFO输出端口缓存释放, 设置 FIFO输出端口缓存可用状态信息为空闲。
步骤 708: 若所述调度请求信息被所述选择的输入端口的 FIC选中, 即 所述 F I F0输出端口缓存在规定的时间内接收到数据包, 且所述数据包的目 的输出子端口是所述输出子端口, 则所述 FIFO输出端口缓存接收指向所述 输出子端口的非空虚拟输出队列 V0Q; 在发送过程中, 所述输入端口数据通 道和所述 FIFO输出端口缓存对应的数据通道始终保持连接; 传送完成后, 所述连接释放。
在步骤 708中的所述连接释放的规则具体如下:
所述 FIFO输出端口缓存对应的输出端口调度器不断检查输入端口数据 通道上发来的数据包头信息, 若发生如下两种情形之一, 则所述连接释放: 1. 与 FIFO输出端口缓存对应的数据通道相连的输入端口数据通道的 下一个数据包不是到所述 F I F0输出端口缓存。
2. 与 FIFO输出端口缓存对应的数据通道相连的输入端口数据通道的 下一个数据包是到所述 FIFO输出端口缓存, 且数据包传输结束。
在步骤 707, 708中, 所述的规定时间是一个超时计数, 其具体数值可 以根据输入端口的 FIC对输出端口调度器发送的调度请求信息的响应时间 来设定。 所述的规定时间还可用于防止故障。 如某输出端口缓存已选中了 某输入端口, 而所述输入端口对应的 FIC发生了故障, 如所述选择的输入端 口的 FIC被拔出而无法发送数据包, 则输入端口缓存等待时间超过所述规定 时间后应该自动放弃对所述输入端口的调度请求, 选择其它输入端口数据 通道空闲的输入端口。
步骤 709: 输出端口调度器将 F I F0输出端口缓存内接收的虚拟输出队列 V0Q调度入输出子端口, 完成数据交换。
在步骤 709 中, 假设所述输出端口调度器在服务某输出端口缓存时, 选中了某个输出子端口和某输入端口数据通道进行服务。 那么当服务下一 输出端口缓存时, 仍然可以选择这个输出子端口, 但不需选择已经选过的 输入端口数据通道。 依此方案, 可提高交换网效率。
所述步骤 702, 703与 704无先后执行顺序, 只要在步骤 705前执行即可。 通过上述两个实施例的介绍, 可知本发明实施例提供的数据交换结构 和数据交换方法通过分布式调度, 省去了传统数据交换结构中的集中式仲 裁器, 在节省交叉点缓存资源的同时, 提高了数据交换结构的交换性能。
本领域普通技术人员可以理解: 实现上述方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成, 前述的程序可以存储于一计算机 可读取存储介质中, 该程序在执行时, 执行包括上述方法实施例的步骤; 而前述的存储介质包括: R0M、 RAM, 磁碟或者光盘等种可以存储程序代码的 介质。 以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局 限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可 轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发 明的保护范围应该以权利要求的保护范围为准。

Claims

权 利 要 求 书
1、 一种数据交换方法, 其特征在于, 该方法基于一种数据交换结构, 所述数据交换结构包括输入端口、 输出端口和交换芯片, 所述输入端口、 输出端口分别与所述交换芯片相连; 所述输入端口包括交换接口控制器
FIC; 所述输出端口包括输出端口调度器, 所述输出端口调度器与所述输出 端口对应; 所述交换芯片包括输入端口数据通道和输出端口数据通道, 所 述输入端口数据通道和所述输出端口数据通道通过交叉点纵横连接, 所述 输入端口数据通道与所述输入端口——对应, 所述输出端口数据通道与所 述输出端口对应; 所述交换芯片还包括输出端口缓存, 所述输出端口缓存 与所述输出端口对应, 所述输出端口调度器负责对所述输出端口对应的所 述输出端口缓存进行数据调度; 所述数据交换方法包括:
所述输出端口调度器获取所述输入端口的虚拟输出队列的空或非空的 状态信息、 所述输入端口数据通道忙碌或空闲的可用状态信息、 所述输出 端口缓存忙碌或空闲的可用状态信息;
若所述输入端口中存在指向所述输出端口的非空虚拟输出队列, 同时, 所述输入端口所对应的输入端口数据通道空闲, 且所述输出端口对应的输 出端口缓存中存在空闲输出端口缓存, 则所述输出端口调度器选择所述输 入端口的一个, 并向该输入端口的 FIC发送调度请求信息, 所述调度请求信 息包括将所述非空虚拟输出队列调度入所述空闲的输出端口缓存;
所述选择的输入端口的 FIC接收到所述输出端口调度器发送的调度请 求信息后, 选择响应一个输出端口调度器的调度请求, 并将所述选择的输 入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存;
所述输出端口调度器将所述输出端口缓存接收的虚拟输出队列调度出 交换芯片。
2、 根据权利要求 1所述的方法, 其特征在于: 若所述调度请求信息未被所述选择的输入端口的 FIC选中, 则所述输出 端口调度器继续向指向所述输出端口的非空虚拟输出队列所对应的输入端 口中输入端口数据通道空闲的另一个输入端口的 FIC发送调度请求信息。
3、 根据权利要求 1所述的方法, 其特征在于:
所述虚拟输出队列空或非空的状态信息由所述输入端口的 FIC发送给 所述输出端口调度器。
4、 根据权利要求 1所述的方法, 其特征在于: 所述输入端口数据通道 的可用状态包括忙碌和空闲, 所述输入端口数据通道的可用状态的判断, 包括:
( 1 )所述输入端口的 FIC发往交换芯片的每个数据包的包头中带有数 据包的长度信息, 若所述数据包头出现在所述输入端口数据通道上, 则将 所述输入端口数据通道置为忙碌;
( 2 )所述输入端口数据通道上设置有计数器, 对数据包传输的字节数 进行统计: 若所述数据包的包长与已传输的字节数的差值小于预设值, 则 将所述输入端口数据通道置为空闲,所述预设值的设置根据输入端口的 FIC 和输出端口调度器的交互时间来设定。
5、 根据权利要求 1所述的方法, 其特征在于: 所述输出端口缓存的可 用状态包括忙碌和空闲, 所述输出端口缓存的可用状态的判断, 包括:
( 1 ) 若所述输出端口缓存通过所述输出端口调度器发出调度请求信 息, 则将所述输出端口缓存置为忙碌;
( 2 ) 若满足下列条件, 则将所述输出端口缓存置为空闲:
与所述输出端口缓存对应的输出端口数据通道相连的输入端口 数据通道的下一个数据包不是到所述输出端口缓存; 或
所述输入端口数据通道的下一个数据包是到所述输出端口缓 存, 且所述数据包传输结束; 且所述输出端口缓存未满。
6、 根据权利要求 2所述的方法, 所述调度请求信息未被所述选择的输 入端口的 FIC选中, 包括:
( 1 )若所述输出端口缓存在规定时间内未接收到任何数据包; 或
( 2 )在规定时间内接收到数据包, 但所述数据包的目的输出端口缓存 不是所述输出端口缓存;
所述规定时间根据所述选择的输入端口的 FIC对所述输出端口缓存的 调度请求信息的响应时间来设定。
7、 根据权利要求 1所述的方法, 其特征在于, 还包括: 若所述调度请 求信息被所述选择的输入端口的 F I C选中, 则所述输出端口缓存接收指向所 述输出端口的非空虚拟输出队列; 在发送过程中, 所述输入端口数据通道 和所述输出端口缓存对应的数据通道始终保持连接; 传送完成后, 所述连 接释放。
8、 根据权利要求 7所述的方法, 其特征在于: 所述传送完成后, 所述 连接释放具体包括:
所述输出端口调度器不断检查所述输入端口数据通道上发来的数据包 头信息, 若发生如下两种情形之一, 则所述连接释放:
( 1 ) 与所述输出端口缓存对应的输出端口数据通道相连的输入端口 数据通道的下一个数据包不是到所述输出端口缓存;
( 2 ) 与所述输出端口缓存对应的输出端口数据通道相连的输入端口 数据通道的下一个数据包是到所述输出端口缓存, 且所述数据包传输结束。
9、 根据权利要求 1所述的方法, 其特征在于: 所述输出端口调度器对 所述指向该输出端口的非空虚拟输出队列所对应的输入端口中输入端口数 据通道空闲的输入端口的选择采用带权重的轮询调度方法。
10、 根据权利要求 1所述的方法, 其特征在于: 所述选择的输入端口的 FIC对来自不同的输出端口调度器发来的调度请求信息的选择采用简单轮 询调度方法。
11、 根据权利要求 1所述的方法, 其特征在于, 所述数据交换结构的输 出端口包括输出子端口, 所述数据交换方法还包括: 所述输出端口调度器 将输出端口缓存内接收的虚拟输出队列调度出交换芯片时, 对输出子端口 进行调度。
12、 根据权利要求 11所述的方法, 其特征在于, 所述对输出子端口进 行调度, 具体包括:
为每个输出子端口设置漏桶计数器, 由所述输出端口调度器分别计算 所述输出子端口的已发送流量;
在所述输入端口中建立指向所述输出子端口的虚拟输出队列, 针对 n 个输入端口、 m个输出子端口,所述输出端口调度器用 n*m个 bi t位来维护 所述虚拟输出队列的状态信息, m、 n为大于或等于 1的自然数;
输出端口调度器优先选择一个输出子端口;
所述输出端口调度器获取所述输入端口的虚拟输出队列的空或非空的 状态信息, 所述输入端口数据通道的忙碌或空闲的可用状态信息、 所述输 出端口缓存忙碌或空闲的可用状态信息;
若所述输入端口中存在指向所述输出子端口的非空虚拟输出队列, 同 时, 所述输入端口所对应的输入端口数据通道空闲, 且所述输出子端口所 在的输出端口对应的输出端口缓存中存在空闲输出端口缓存, 则所述输出 端口调度器选择所述输入端口的一个, 并向该输入端口的 FIC发送调度请求 信息, 所述调度请求信息包括将所述非空虚拟输出队列调度入所述空闲的 输出端口缓存;
所述选择的输入端口的 FIC接收到所述输出端口调度器发送的调度请 求信息后, 选择响应一个输出端口调度器的调度请求, 并将所述选择的输 入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存;
若所述调度请求信息未被所述选择的输入端口的 FIC选中, 则所述输出 端口调度器继续向指向所述输出子端口的非空虚拟输出队列所对应的输入 端口中输入端口数据通道空闲的另一个输入端口的 FIC发送调度请求信息; 所述输出端口调度器将所述输出端口缓存接收的虚拟输出队列调度入 所述输出子端口。
13、 根据权利要求 12所述的方法, 其特征在于, 所述输出端口调度器 优先选择一个输出子端口, 包括: 采用带权重的轮询调度方法选择所述输 出子端口。
14、 一种数据交换结构, 包括输入端口、 输出端口和交换芯片, 所述 输入端口、 输出端口分别与所述交换芯片相连; 所述输入端口包括交换接 口控制器 FIC; 所述输出端口包括输出端口调度器, 所述输出端口调度器与 所述输出端口对应; 所述交换芯片包括输入端口数据通道和输出端口数据 通道, 所述输入端口数据通道和所述输出端口数据通道通过交叉点纵横连 接, 所述输入端口数据通道与所述输入端口——对应, 所述输出端口数据 通道与所述输出端口对应; 所述交换芯片还包括输出端口缓存, 所述输出 端口缓存与所述输出端口对应, 所述输出端口调度器负责对所述输出端口 对应的所述输出端口缓存进行数据调度; 其中:
所述输出端口调度器用于获取所述输入端口的虚拟输出队列的空或非 空的状态信息、 所述输入端口数据通道忙碌或空闲的可用状态信息、 所述 输出端口缓存忙碌或空闲的可用状态信息;
所述输出端口调度器还用于: 当所述输入端口中存在指向所述输出端 口的非空虚拟输出队列, 同时, 所述输入端口所对应的输入端口数据通道 空闲, 且所述输出端口对应的输出端口缓存中存在空闲输出端口缓存时, 选择所述输入端口的一个, 并向该输入端口的 FIC发送调度请求信息, 所述 调度请求信息包括将所述非空虚拟输出队列调度入所述空闲的输出端口缓 存;
所述选择的输入端口的 FIC用于接收所述输出端口调度器发送的调度 请求信息, 并选择响应一个输出端口调度器的调度请求, 并将所述选择的 输入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存; 所述输出端口调度器还用于将所述输出端口缓存接收的虚拟输出队列 调度出交换芯片。
15、 根据权利要求 14所述的数据交换结构, 其特征在于, 所述输出端 口调度器还用于: 当所述调度请求信息未被所述选择的输入端口的 FIC选中 时, 继续向指向所述输出端口的非空虚拟输出队列所对应的输入端口中输 入端口数据通道空闲的另一个输入端口的 FIC发送调度请求信息;
16、 根据权利要求 14或 15所述的数据交换结构, 其特征在于, 所述输 出端口包括输出子端口, 所述输出端口调度器还用于当输出端口缓存内接 收的虚拟输出队列被调度出交换芯片时, 对输出子端口进行调度。
PCT/CN2010/073246 2009-07-14 2010-05-26 一种数据交换方法及数据交换结构 WO2011006398A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP10799396.6A EP2442499B1 (en) 2009-07-14 2010-05-26 Data exchange method and data exchange structure
US13/348,106 US8750323B2 (en) 2009-07-14 2012-01-11 Method for switching data and structure for switching data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2009101087529A CN101958824B (zh) 2009-07-14 2009-07-14 一种数据交换方法及数据交换结构
CN200910108752.9 2009-07-14

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/348,106 Continuation US8750323B2 (en) 2009-07-14 2012-01-11 Method for switching data and structure for switching data

Publications (1)

Publication Number Publication Date
WO2011006398A1 true WO2011006398A1 (zh) 2011-01-20

Family

ID=43448923

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2010/073246 WO2011006398A1 (zh) 2009-07-14 2010-05-26 一种数据交换方法及数据交换结构

Country Status (4)

Country Link
US (1) US8750323B2 (zh)
EP (1) EP2442499B1 (zh)
CN (1) CN101958824B (zh)
WO (1) WO2011006398A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9882920B2 (en) 2012-06-05 2018-01-30 Empire Technology Development Llc Cross-user correlation for detecting server-side multi-target intrusion

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012126416A2 (zh) * 2012-05-07 2012-09-27 华为技术有限公司 线路处理板和交换网系统
CN103001893B (zh) * 2012-12-12 2016-01-27 华为技术有限公司 多路径透传方法和交换芯片
CN104717160A (zh) * 2013-12-17 2015-06-17 华为技术有限公司 交换机及调度算法
US9648148B2 (en) * 2013-12-24 2017-05-09 Intel Corporation Method, apparatus, and system for QoS within high performance fabrics
KR20150115240A (ko) * 2014-04-03 2015-10-14 한국전자통신연구원 패킷 스위치 시스템 및 이의 트래픽 제어방법
CN105700940B (zh) * 2014-11-25 2019-05-31 深圳市中兴微电子技术有限公司 一种调度器及调度器的动态复用方法
CN106453142B (zh) * 2016-09-20 2019-06-11 盛科网络(苏州)有限公司 降低wrr调度周期抖动的方法及系统
CN107171973B (zh) * 2017-05-04 2020-06-09 内蒙古农业大学 一种基于邻端口调度信息的两级交换结构实现方法
US10721187B1 (en) 2017-05-18 2020-07-21 Juniper Networks, Inc. Emulating output queued behavior in a virtual output queue switch
CN112491748B (zh) * 2020-11-20 2022-05-27 中国电子科技集团公司第五十四研究所 一种基于信用的支持数据包交换的比例公平调度方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1411211A (zh) * 2002-04-17 2003-04-16 华为技术有限公司 以太网交换芯片输出队列管理调度方法和装置
CN1452351A (zh) * 2002-04-17 2003-10-29 华为技术有限公司 以太网交换芯片传输数据过程中缓存的管理和分配方法
US20090175287A1 (en) * 2001-02-16 2009-07-09 Nec Corporation Packet switch

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1382165A2 (en) * 2001-04-13 2004-01-21 MOTOROLA INC., A Corporation of the state of Delaware Manipulating data streams in data stream processors
US7362751B2 (en) * 2001-10-03 2008-04-22 Topside Research, Llc Variable length switch fabric
US7292594B2 (en) * 2002-06-10 2007-11-06 Lsi Corporation Weighted fair share scheduler for large input-buffered high-speed cross-point packet/cell switches
AU2003253708A1 (en) * 2002-06-27 2004-01-19 Tellabs Operations, Inc. Apparatus and method to switch packets using a switch fabric with memory
US7852866B2 (en) * 2006-12-29 2010-12-14 Polytechnic Institute of New York Universiity Low complexity scheduling algorithm for a buffered crossbar switch with 100% throughput
WO2010045732A1 (en) * 2008-10-20 2010-04-29 Tadeusz Szymanski Crossbar switch and recursive scheduling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090175287A1 (en) * 2001-02-16 2009-07-09 Nec Corporation Packet switch
CN1411211A (zh) * 2002-04-17 2003-04-16 华为技术有限公司 以太网交换芯片输出队列管理调度方法和装置
CN1452351A (zh) * 2002-04-17 2003-10-29 华为技术有限公司 以太网交换芯片传输数据过程中缓存的管理和分配方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2442499A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9882920B2 (en) 2012-06-05 2018-01-30 Empire Technology Development Llc Cross-user correlation for detecting server-side multi-target intrusion

Also Published As

Publication number Publication date
CN101958824A (zh) 2011-01-26
CN101958824B (zh) 2012-06-27
EP2442499A1 (en) 2012-04-18
EP2442499A4 (en) 2012-05-30
US20120106564A1 (en) 2012-05-03
US8750323B2 (en) 2014-06-10
EP2442499B1 (en) 2014-07-09

Similar Documents

Publication Publication Date Title
WO2011006398A1 (zh) 一种数据交换方法及数据交换结构
EP0981878B1 (en) Fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch
US6160812A (en) Method and apparatus for supplying requests to a scheduler in an input buffered multiport switch
US10764208B2 (en) Distributed switch architecture
US7023841B2 (en) Three-stage switch fabric with buffered crossbar devices
US7161906B2 (en) Three-stage switch fabric with input device features
US9800513B2 (en) Mapped FIFO buffering
CA2247447C (en) Efficient output-request packet switch and method
EP1810466B1 (en) Directional and priority based flow control between nodes
JPH04230144A (ja) 非同期式転送モードスイッチ
CN101695051A (zh) 一种用于缓冲Crossbar的队列长度均衡调度方法
WO2008092404A1 (fr) Procédé et appareil de réalisation de contrôle de flux sur la base d'une file d'attente de sortie
US7203202B2 (en) Arbitration using dual round robin matching with exhaustive service of winning virtual output queue
JP2004526391A (ja) 分散型共有メモリパケットスイッチ
CN114531488A (zh) 一种面向以太网交换器的高效缓存管理系统
JP3820272B2 (ja) 交換装置
JP4568364B2 (ja) 相互接続ファブリックにおいてユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする方法、装置、及びコンピュータ・プログラム(相互接続ファブリックにおいてユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする方法及び装置)
Tobajas et al. Round-trip delay effect on iterative request-grant-accept scheduling algorithms for virtual output queue switches
US20050213925A1 (en) Fiber channel switching system
KR20060032103A (ko) 크로스포인트 버퍼 스위치의 출력 스케줄링 방법
JP2004533189A (ja) パケットスイッチング素子の複数のスイッチカードに亘り、複数の仮想出力キューからステータス情報を配信するパケットスイッチング装置
CN103155587B (zh) 用于在网络中传送数据分组的方法和系统
LEE A Multiple Slot Cell Scheduling Algorithm for Multicast Switching Systems

Legal Events

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

Ref document number: 10799396

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010799396

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE