APPROXIMATE STATE CONTROL MECHANISM

Abstract: A data packet switching system having a central controller and a number of peripheral controllers each incorporating at least one queue for storing packets of information received from a peripheral data packet source. Each queue in each peripheral controller includes a queue size detection logic adapted to communicate to the central controller the approximate state of the size of the corresponding queue. The scale for the approximate state being arranged to be empty, nearly empty, active, busy, very busy, nearly full and full.

Description: Title:- Approximate State Control Mechanism The present invention relates to data handling systems and is more particularly concerned with the handling of data packets by peripheral controllers acting under the control of a central controller. An example of such a system would be a data switching fabric (such as that described in International Patent Application PCT/GB99/03748), in which the peripheral controllers deal with the transmission and reception of packets of data, storing the packets in queues prior to their passage through the switching fabric. The central controller uses information about the size of the queues to influence how it creates connections within the switch fabric, generally aiming to keep the queue sizes as small as possible. In such a system, there could be a very large number of queues to keep track of, since there could be separate queues for each source/destination pair and also separate queues for different priority levels of packets. Keeping a copy of the exact size of each of these queues within the central controller might not be possible due to space limitations in the implementation of the central controller. It is an object of the present invention to address the above issues. According to the invention there is provided a data packet switching system having a central controller and a plurality of peripheral controllers each including at least one queue store for storing packets of information received from a peripheral data packet source connected to the peripheral controller characterised in that associated with each queue in each peripheral controller is a queue size detection logic arrangement adapted to communicate to the central controller an approximate state of the size of the corresponding queue. In the case of the data switching fabric described above, it is not actually necessary for the central controller to know the exact size of the queues in the peripheral controllers; an approximate scale along the lines of "Empty", "Nearly Empty", "Active", "Busy", "Very Busy", "Nearly Full" and "Full" could be sufficient to base scheduling and arbitration decisions on. Representing this limited number of states in digital logic requires significantly less space in the central controller than representing the exact, precise size of the queues. The mapping between the exact and approximate queue sizes is performed in the peripheral controllers, each of which has a much smaller number of queues to manage and, therefore, the size of the logic required to hold the state and mapping information is less of an issue there. The invention will be more readily understood from the following description of one embodiment which should be read in conjunction with the accompanying drawings. Of the drawings: - Fig. 1 shows the interconnection between peripheral controllers and the central controller for a data handling system according to one embodiment of the invention Fig. 2 shows in block schematic form the queue state control logic in a peripheral controller whereas Fig. 3 shows in schematic form the approximate state control logic in the central controller. Fig. 1 shows the interconnection between the peripheral controllers PEl to PEN and the central controller CC. Typically the peripheral controllers PEl to PEN equate to the ingress and corresponding egress routers of co-pending International Patent Application PCT/GB99/03748, whereas the central controller CC equates to the switch controller. In operation the peripheral controllers assemble the incoming packets of information into virtual output queues which are also priority segregated. The central controller requires to know the levels (number of packets stored in each queue) of the queue so that the scheduling and arbitration function can be performed efficiently in allocating the switch fabric connections. Contained within each peripheral controller is a queue state control logic consisting of a precise state counter PS 1 together with an approximate state logic AS 1 State increment/decrement logic SIDL1 and packet control logic CL1. The precise state counter PS and the approximate state logic AS are shown in schematic form in Fig. 2. Figure 2 shows the queue state control logic PS in a peripheral controller for a single queue. The queue state control logic consists of a register PR which holds the precise queue size of the associated queue. The precise state register PR feeds the increment/decrement logic and the approximate state control logic AS. The state of the precise queue register PR at each switching clock cycle defines the actual state of the associated input queue in the corresponding peripheral controller. The queue state control logic operates such that the precise count held in the register PR is incremented by one through the incrementer INC as each packet arrives at the peripheral controller, indicated by an instruction on lead PI, and is decremented through the decrementer DEC by one as each packet departs from the peripheral controller, indicated by an instruction on PO. The multiplexors MUXI and MUXD operate by passing the output of the incrementer INC and the decrementer DEC respectively when the instructions PI and PO are present or the output from the queue state register PR directly when these instructions PI and PO are absent. The precise count PC is also applied to the approximate state machine AS which is arranged to detect seven thresholds of Empty E (i.e. count = 0), Nearly Empty NE (i.e. count >0), Active A (i.e. count > threshold 1), Busy B (i.e. count > threshold 2), Very Busy VB (i.e. count > threshold 3), Nearly Full NF (i.e. count > threshold 4) and Full F (i.e. count =maximum). As each threshold is traversed an increment CCI or decrement CCD instruction is sent to the central controller CC which, as is shown in Fig. 3, replicates in its approximate state logic CCASL the approximate state conditions created in the corresponding peripheral controller queue state control logic of Empty E, Nearly Empty NE, Active A, Busy B, Very Busy VB, Nearly Full NF and Full F. The two main advantages of this system are: 1. The amount of information needed to be held centrally is significantly reduced, enabling the creation of larger systems than would otherwise be possible, and 2. The lack of "actual" queue sizes in the central controller provides a further degree of scalability. The same central controller could be used for systems designed using peripheral controllers that handled queue sizes up to 100 packets and for systems whose peripheral controllers handled queues of millions of packets. Since it is the peripheral controllers that define the mapping between the precise and approximate states, the central controller does not need to be changed to implement larger or smaller maximum queue sizes. The invention typically finds application in the egress control unit of a data switching system of the type disclosed in International Patent Application PCT/GB99/03748. The approximate state control mechanism described above is a slight generalisation of a specific implementation. In practice there are sixteen "approximate states", which represent "precise states" ranging from 0 to 1024 packets of information in the queues. It is a requirement of the design of the practical implementation that the central controller does not attempt to create connections for packets that do not exist. Such a situation could be possible due to the time delay inherent in the approximate state control mechanism described above. For instance, when the central controller CC creates a connection for the last packet in a queue, there is a delay from the time when the peripheral controller such as PEl sends that packet (reducing the size of its queue to zero) to when the central controller CC discovers that the queue size for that peripheral controller PEl has gone down, i.e. when the CCD instruction reaches the central controller CC. During this time, the central controller CC might create another connection based on the erroneous assumption that the queue was not empty; the peripheral controller PEl would then be told to send a packet it did not have. The way this problem is circumvented is to split the approximate states into two ranges, namely "exact" and "fuzzy". In the "exact" range, which is at the low queue size end of the scale, there is a one for one mapping between the precise and approximate queue states, e.g. an approximate state of three means that there are exactly three packets in that queue. In the "fuzzy" range, a single "approximate" state represents a range of different "precise" states as already described. The advantage of doing this is that the central controller CC can now keep track itself of the precise state of the peripheral controllers at the low queue size end of the range (the area that matters); when it creates a connection, it can decrement the approximate state directly itself without having to wait to be told to do so by the peripheral controller. Under these circumstances, the central controller CC does not create connections for non-existent packets. Furthermore, in the "exact" range, there is no need for the peripheral controller to even send the CCD instructions as the central controller CC will already have decremented its copy of the approximate state. This reduces the bandwidth required on the interface between the peripheral controller PE1-PEN and central controller CC. A further alternative embodiment can be envisaged. Instead of sending CC 1 and CCD instructions from the peripheral controller to the central controller when the state changes, the actual state can be sent. This requires very little, if any, extra bandwidth on the interface between the two and makes recovery from errors on the interface much simpler. In the first embodiment, if there is an error on the interface causing the CCI or CCD instruction to become corrupted (and this error is detected), that instruction must either be re-sent or a resynchronisation must take place (the actual state is sent). Another error during this error recovery procedure would mean yet another resend etc. If the error is not detected, the central CC and peripheral controllers PE1-PEN will be out of step with each other. In the further alternative embodiment, the actual approximate state is sent whenever there is a change in state. If an error occurs on the interface, a simple resend is all that is required. If a further error occurs, only a single resend is still necessary to restore the status quo. Furthermore, if the error is not detected, it will be corrected anyway next time the state changes at the peripheral controller such as PEl as it will send the correct new state to the central controller CC as the update message.

Claims: Claims 1 A data packet handling system having a central controller and a plurality of peripheral controllers each including at least one queue for storing packets of information received from a peripheral data packet source connected to the peripheral controller characterised in that associated with each queue in each peripheral controller is a queue size detection logic adapted to communicate to the central controller the approximate state of the size of the corresponding queue. 2 A data packet handling system as claimed in claim 1 in which the queue size detection logic detects a plurality of queue size thresholds and signals to the central controller when a threshold is traversed. 3 A data packet handling system as claimed in claim 2 in which the central controller includes for each queue in each of the peripheral controllers a corresponding queue size detection arrangement responsive to the threshold traversing signals from the corresponding peripheral controller queue size detection logic. 4 A data packet handling system as claimed in any one of the preceding claims in which the approximate state thresholds are empty, nearly empty, active, busy, very busy, nearly full and full. 5 A data packet handling system as claimed in claim 4 in which the queue size detection logic in a peripheral controller is driven from a register in the peripheral controller which stores the actual size of the corresponding queue which is incremented upon the arrival of a packet into the queue and is decrement upon the departure of a packet from the queue. 6 A data packet handling system as claimed in claim 5 in which the empty and nearly empty thresholds specify actual queue conditions. A data packet handling system as claimed in any preceding claim and in which the actual approximate state is sent from the peripheral controller whenever a threshold as traversed. A data packet handling system substantially as described and shown in the accompanying drawings.

Inventors: HOWARTH PAUL, JOHNSON IAN DAVID, HOWARTH, PAUL, JOHNSON, IAN, DAVID
Applicants: HOWARTH PAUL, JOHNSON IAN DAVID, POWER X LIMITED, HOWARTH, PAUL, JOHNSON, IAN, DAVID
Application year: 1999
Main classification: H04L12
IPC codes: H04L12