Unit and method for switching data packets, a data processing apparatus comprising such a unit and a network comprising them

The invention concerns a data packet switching unit (26) associated with a node (20) in a network (10) and having several input/output ports for the packets.The unit is wherein it has:

According to a first aspect, the present invention concerns a unit for switching data packets associated with a communication node of a network, said switching unit having several input/output ports for the data packets.

There is known, from the document EP 0 405 990, a network of computers which have several communication nodes consisting of computers and at least one switching unit which effects the switching of data packets through said network.

The switching unit has 32 input/outputs consisting of physical ports, all identical, which are adapted each to support a point to point connection and thus make it possible to transfer data packets from one communication node in the network to another communication node in this same network.

The switching unit has notably an input for receiving data packets coming from a communication node, referred to as the source, and a plurality of outputs identifying several other communication nodes, referred to as destinations.

This switching unit connects, internally, the above mentioned input to one of the outputs of said switching unit.

This output is determined selectively according to the indication of the destination node placed in the identification data constituting the header of the data packet which was received at said input.

The switching of the data packet in the switching unit of the network of computers is effected by reading the header of said data packet, even before the entire packet is received in said switching unit, which makes it possible not to have to store the data packet.

Thus the waiting time between the reception of the data packet at the switching node and its exit is reduced.

This switching unit is associated with a communication node.

Certain physical ports of the switching unit are connected to a serial/parallel adapter external to said switching unit and which, itself, supports an internal connection to the communication node with which the switching unit is associated.

Before such a switching unit is brought into service, provision may be made for associating some of the physical ports with each other and, for example, for connecting one or more ports to one or more serial/parallel adapters each supporting an internal connection to the communication node.

Thus, when a data packet is received by one of the physical ports of the switching unit, for example the port bearing the number31, and the port connected to a serial/parallel adapter of the internal node, for which this data packet is intended, for example the port bearing the number20, is occupied by other data packets issuing from other external ports, said data packet is switched to another port connected to a serial/parallel adapter of the internal node, for example the port bearing the number19, provided however that the association between the ports19and20was programmed before said switching unit was brought into service.

If this association of ports was not programmed, the data will remain in wait and block the external port31.

This constitutes a drawback if one of the other communication nodes in the network wishes, during this time, to transmit a data packet at the port31of this switching unit.

Likewise, if one of the other communication nodes in the network wishes to transmit a data packet at one of the other ports of this switching unit, for example the port which bears the number15, and this packet is also intended for the port20, then the data packet will block the port15as long as access to the port20is not released.

It should be noted that the data packets transmitted over the network encounter, on their path, different communication nodes each having a switching unit.

The data packets contain so-called identification data which, in particular, identify the different switching units placed on the path of said packets as well as the numbers of the ports, referred to as destination ports, of these switching units through which the packets must emerge in order to join another distant switching unit.

The identification data generally constitute what is referred to as the header of the data packet.

Other data known as user data are placed after the header and are followed by an end of packet mark placed last in said packet.

A switching unit can thus switch data packets coming from a switching unit associated with a network node, referred to as the source node, and received at one of its input/output ports, to another of its input/output ports which supports a point to point connection with another switching unit of a node in this same network, referred to as the destination node.

The switching of the data packet in a switching unit in the network is effected by reading the header of said data packet received at one of its input/output ports and by modifying this header before transferring it, internally, to the destination port.

In ATM networks, where ATM means “Asynchronous Transfer Mode”, a table contained in the switching unit changes part of the header by comparing the initial value or values of certain fields in this header with values entered in the table and replaces these initial values with other values which will be read and understood by the network switching units.

Moreover, from the document EP 0 405 990, a network of computers is known which has several communication nodes consisting of computers and at least one switching unit which switches the data packets through said network.

In this switching unit, the ports are all adapted each to support a point to point connection and thus make it possible to transfer data packets from one communication node (a computer) in the network to another node (computer) in the same network.

However, some of these ports are connected to a serial/parallel adapter external to the switching unit which, itself, supports an internal connection to the communication node with which the switching unit is associated.

In this switching unit, when a data packet arrives, its header makes it possible to determine the destination port of the packet.

The packet header contains several bytes of data, one byte being necessary for coding the destination port of each switching unit encountered by the packet.

When the destination point has been identified, the byte which coded this destination port is eliminated and is therefore not transmitted to the following switching unit.

However, the switching method of the aforementioned prior art does not make it possible to adapt effectively to certain cases and notably to the case where the switching units have a sufficiently small number of ports for each port to be able to be coded in a number of bits less than the granularity of the network.

In fact, the granularity of the network being defined as the minimum number of bits recognised by the network, it serves no useful purpose to code each destination port in a number of bits less than the granularity given that the step of eliminating the destination port identification data can be implemented only on a number of bits at least equal to the granularity of the network.

The granularity of the network is for example equal to one byte.

Thus the corresponding bandwidth for a data packet is small.

There is consequently a need to find a new switching method which makes it possible, in particular, to adapt easily to the aforementioned case.

According to a first aspect, the present invention aims to resolve at least one of the above-mentioned problems by proposing a unit for switching data packets associated with a communication node in a network, said switching unit having several input/output ports for the data packets, wherein said switching unit has:amongst said input/output ports, a number k of ports said to be of a first type and at least one port said to be of a second type which differs from a port of the first type in that it is adapted to support an internal connection to said communication node with which the switching unit is associated,a number n of so-called intermediate ports disposed between the ports of the first and second types,at least one storage means associated with each of said n intermediate ports,means of transferring a data packet between at least one of the ports of the first and second types referred to as the input port and at least one of the ports of the first and second types for which said packet is intended and referred to as the destination port, said transfer means using at least one of the n intermediate ports and said at least one associated storage means.

When a data packet intended for the communication node with which the switching unit is associated is presented at a port of the first type thereof, said packet is transferred to said at least one port of the second type, passing through one of the intermediate ports of said switching unit and said at least one associated storage means.

If, at the moment when this data packet is in the course of transfer between the port of the first type and the intermediate port, a second data packet, also intended for the communication node, is received at another port of the first type of the switching unit, then said switching unit transfers the second packet to a second intermediate port and said at least one storage means which is associated with it.

This makes it possible to receive simultaneously several data packets intended for the communication node.

During this time, the first packet can finish being transferred to said at least one port of the second type and the storage means associated with the second intermediate port stores, at least partially, the second packet received by said second intermediate port.

The storage means associated with the intermediate ports are sized so as to be able to absorb all or part of a data packet should the transfer of a packet take more time than expected.

However, usually, the data packets are received in a fashion which is sufficiently offset in time for the transfer of the first packet to be already well advanced when the second packet presents itself at a port of the first type.

Thus the storage means have in general only part of the data packet to absorb rather than the whole thereof.

The structure with several ports of different types and with several intermediate ports and associated storage means therefore makes it possible to switch several data packets intended for the communication node with which the switching unit is associated and which are received offset in time, or even at the same time, by said switching unit, without blocking the ports of the first type thereof.

This structure therefore makes it possible to reduce the latency in the switching unit and thereby in the network.

Conversely, data packets issuing from the communication nodes with which the switching unit according to the invention is associated and intended for other communication nodes in the network, can be transferred from said at least one port of the second type to ports of the first type.

In this case, the structure with several ports of different types and with several intermediate ports and associated storage means makes it possible to transfer a packet to a first port of the first type, whilst a second data packet is stored at least partially in a storage means before also being transferred to a second port of the first type, thereby avoiding blocking said at least one port of the second type and making the switching unit congested.

Access to the network is thereby improved.

It should be noted that the second port of the first type can be the same as the first port of the first type.

According to a particular characteristic, the switching unit has means of selecting the intermediate ports.

More particularly, these selection means take into account the occupation of the storage means associated with said intermediate ports.

Thus, as soon as a storage means is free, it can be selected and used for storing a data packet therein, at least partially.

According to another particular characteristic, the selection means also take into account a priority level allocated to the intermediate ports.

Thus the priority data packets will be allocated to an intermediate port reserved for this type of data packet.

According to a particular characteristic, the number n is chosen so that said at least one port of the second type is associated with at least two intermediate ports.

According to another particular characteristic, each of said at least two intermediate ports associated with a port of the second type bears the same address as said port of the second type.

Thus the number of bits necessary for coding the address of said at least one internal port is reduced.

In addition, the switching unit has no need to compare addresses of internal ports with each other if it has only one internal port.

Where the switching unit has several ports of the second type, having at least two intermediate ports per port of the second type makes it possible, in spite of everything, to simplify the structure of said switching unit since two intermediate ports bear the same address.

According to another characteristic, the reception means of each intermediate port include at least one storage means.

According to yet another characteristic, the sending means of each intermediate port have at least one storage means.

According to one characteristic, at least one storage means is associated with each of the ports of the first type, which makes it possible to store a data packet therein whilst the switching unit reads the data identifying the port thereof for which said data packet is intended.

Correlatively, the invention relates to a method of switching data packets in a switching unit associated with a communication node in a network and which has several input/output ports for the data packets, said method including the following steps:receiving a data packet at a port,transferring said data packet to at least one so-called destination port, wherein, amongst the input/output ports, a number k of ports are said to be of a first type and at least one port said to be of a second type and differs from a port of the first type in that it is adapted to support an internal connection to said communication node with which the switching unit is associated, said method including steps of:selecting a so-called intermediate port amongst a number n of intermediate ports which are disposed between the ports of the first and second types and which have at least one storage means associated with each of them,transferring said data packet via said selected intermediate port and its associated storage means to said at least one destination port.

It should be noted that the switching of data packets using an intermediate port takes place between a port of the first type and said at least one port of the second type or from said at least one port of the second type to itself.

According to a characteristic, said at least one port of the second type is associated with at least two intermediate ports which bear the same address as it.

According to a characteristic, the step of selecting an intermediate port and its associated storage means is performed according to the occupation of the storage means associated with the n intermediate ports.

According to a characteristic, the step of selecting an intermediate port and its associated storage means is performed according to the different priority levels allocated to the n intermediate ports.

According to a characteristic, each intermediate port is associated in a predetermined manner with a port of the first type.

The invention also relates to a data processing apparatus, wherein it has a switching unit as briefly disclosed above.

The data processing apparatus is, for example, chosen among the following: a printer, a server, a computer, a facsimile machine, a scanner, a video tape recorder, a set-top box, a television receiver, a camcorder, a digital camera, a digital photographic apparatus.

According to a second aspect which can be combined with the first aspect, the present invention thus aims at resolving at least one of the above-mentioned problems by proposing a method of switching data packets in a switching unit associated with a communication node in a network, said switching unit having several input/output ports for the data packets, said method including the following steps;receiving a data packet containing so-called identification data which identify at least one output port of said switching unit and for which said data packet is intended,processing said identification data,transferring said packet to said at least one output port, wherein, amongst the input/output ports, some are said to be of a first type and at least one port is said to be of a second type and differs from a port of the first type in that it is adapted to support an internal connection to said communication node with which the switching unit is associated, said method including the following steps:determining the type of port for which the data packet is intended,processing the identification data in a different manner according to the type of port determined.

The invention makes provision, instead of routinely deleting the identification data identifying the destination port or ports for the data packet, for effecting a processing of those data which differ depending on whether the destination port or ports are ports of the first or second type.

It should be noted that the processing does not necessarily correspond to a deletion of the data as in the prior art.

This method makes it possible to apply, to the identification data for a data packet which is transferred to a destination port, the most advantageous processing as a function of the type of destination port.

Using this method, it is therefore possible to easily adapt to different cases by choosing the processing of the identification data for a data packet which is appropriate to the destination port for said packet.

Thus, in the aforementioned case where the switching units have a sufficiently small number of ports for each port to be able to be coded in a number of bits less than the granularity of the network, each destination port is coded in the identification data of a packet solely in the necessary number of bits.

The method according to the invention then makes it possible to adapt to this case by carrying out a modification of said identification data for the packet when the latter is destined for a port of the first type and, on the other hand, when the destination port is a port of the second type, then the identification data or the data packets are deleted.

The modification of these data being independent of the number of bits concerned, the granularity of the network is of little importance.

The modification of the data is advantageous in this case since it is no longer necessary to code each port in a larger number of bits than necessary.

The corresponding bandwidth of the data packets in which each destination port is coded solely in the necessary number of bits is thus considerably improved.

In general terms, the step of modifying the data makes it possible for the modified data then to be read and understood by one or more other switching units for which the packet is intended.

The deletion of the identification data solely in the case where the destination port is a port of the second type advantageously simplifies the processing in the communication node since these data are no longer useful for the node and it is not therefore necessary to effect a processing thereof in a processor or a processing unit of said node.

It is also possible to effect these data processings adapted more generally, independently of the number of bits necessary for coding each destination port and the granularity of the network.

It is also possible to envisage on the one hand a deletion of the identification data for a data packet in the case of transfer of said packet to a port of the first type and on the other hand a modification of the identification data in the case of transfer to a port of the second type.

According to one characteristic, the method according to the invention also includes a step of determining said at least one output port for which the data packet is intended.

According to one characteristic, the identification data are in the form of a succession of bits and each of the 2mports of the switching unit is coded in at least m bits in said identification data, the step of determining said at least one output port for which the data packet is intended consisting of seeking the first m non-nil consecutive bits amongst said identification data.

It should be noted that this coding is independent of the distribution of the ports between ports of the first type and those of the second type.

According to another characteristic, the method according to the invention includes a step of determining the type of switching referred to as broadcast switching or simple unicast switching applied to the data packet under consideration.

Correlatively, the invention relates to a data packet switching unit associated with a communication node in a network, said switching unit having:several input/output ports for the data packets,means of receiving a data packet including so-called identification data which identify at least one output port of said switching unit and for which said data packet is intended,means of processing said identification data,means of transferring said data packet to said at least one output port, wherein said switching unit has:amongst said input/output ports, ports said to be of the first type and at least one port said to be of the second type which differs from a port of the first type in that it is adapted to support an internal connection to said communication node with which the switching unit is associated,means of determining the type of port for which the data packet is intended,means of processing the identification data which are adapted to process said data in a different manner according to the type of port determined.

According to one characteristic, the means of processing the identification data in a different manner according to the type of port determined are adapted either to delete said identification data or to modify them.

According to one characteristic, the switching unit has means of determining said at least one output port for which the data packet is intended.

According to a characteristic, the network is in accordance with the standard IEEE 1355.

The invention relates to a communication network, wherein it includes at least one switching unit as briefly disclosed above.

The invention also relates to an information storage means which can be read by a computer or a processor containing programming instructions for a programmable processing device, wherein it enables the programmable processing device to be configured as a switching unit as disclosed above.

The invention also relates to an information storage means which can be read by a computer or a processor containing programming instructions adapted to cause a programmable processing device to operate, wherein it makes it possible to implement a switching method as disclosed above.

The invention relates to a signal containing instructions which can be used by a computer and are adapted to configure a programmable processing device as a switching unit as disclosed above.

The invention relates to a signal containing instructions which can be used by a computer and are adapted to cause a programmable processing device to operate in order to implement a switching method as disclosed above.

The invention further relates to a computer program product loadable into a programmable device, comprising software code portions for performing the steps of the switching method as disclosed above when said product is run on a programmable device.

The advantages and characteristics peculiar to the switching method, to the data processing apparatus having a switching unit, to the communication network including a switching unit, to the information storage means, to the signal and to the computer program product being the same as those disclosed above concerning the switching unit according to the second aspect of the invention, they are not repeated here.

According to a third aspect, the present invention envisages a packet transferring apparatus associated with a communication node in a network that has several types of ports to transfer data packet, said transferring apparatus comprising:determining means of determining the type of port for which the data packet received from one of said ports is intended, based on identification data of said received data packet; andtransferring means of transferring said received data packet to one port of a first type that is linked to the network or, using intermediate means, to one port of a second type that is linked to a communication node according to the results of said determining means.

According to a characteristic, the intermediate means comprises storage means being prepared to handle a plurality of packets data concurrently.

According to a fourth aspect, the present invention also envisages a packet transferring apparatus according in a network that has several types of ports to transfer packet comprising at least identification data representing addresses of the path of the packet through the network, the identification data representing the path of the packet are made by at least a fixed size group of identification data, the transferring apparatus comprising:determining means of determining the type of port for which the packet received from one port is intended based on a part of the group of identification data;modifying means of modifying the part of the group of identification data in the packet;transferring means of transferring the modified packet to one port according to the result of determining means.

According to a fifth aspect, the present invention concerns a packet transferring method in a transferring apparatus associated with a communication node in a network that has several types of ports to transfer data packet, the method comprising the following steps of:determining the type of port for which the data packet received from one of said ports is intended, based on identification data of said received data packet; andtransferring said received packet to one port of a first type that is linked to the network or, using an intermediate unit, to one port of a second type that is linked to a communication node according to the result of said determining step.

According to a characteristic, the intermediate unit comprises a memory.

According to a sixth aspect, the present invention further concerns a packet transferring method associated with a communication node in a network that has several types of ports to transfer packet comprising at least identification data representing addresses of the path of the packet through such network, the identification data representing the path of the packet are made by at least a fixed size group of identification data, the method comprising the following steps of:determining the type of port for which the packet received from one port is intended based on a part of the group of identification data;modifying the part of the group of identification data in the packet;transferring the modified packet to one port according to the result of said determining step.

The invention concerns a memory medium for storing a program to be executed in a packet transferring apparatus associated with a communication node in a network that has several types of ports to transfer data packet, said program comprising:code for determining the type of port for which the data packet received from one of said ports is intended, based on identification data of said received data packet; andcode for transferring said received packet to one port of a first type that is linked to the network or, using an intermediate unit, to one port of a second type that is linked to a communication node according to the result of the determination.

The invention also concerns a memory medium for storing a program to be executed in a packet transferring apparatus associated with a communication node in a network that has several types of ports to transfer packet comprising at least identification data representing addresses of the path of the packet through such network, the identification data representing the path of the packet are made by at least a fixed size group of identification data, the program comprising:code for determining the type of port for which the packet received form one port is intended based on a part of the group of identification data;code for modifying the part of the group of identification data in the packet;code for transferring the modified packet to one port according to the result of the determination.

The invention further concerns a program stored in a memory medium in a packet transferring apparatus associated with a communication node in a network that has several types of ports to transfer data packet, comprising:code for determining the type of port for which the data packet received from one of said ports is intended, based on identification data of said received data packet; andcode for transferring said received packet to one port of a first type that is linked to the network or, using an intermediate unit, to one port of a second type that is linked to a communication node according to the result of the determination.

The invention relates to program stored in a memory medium in a packet transferring apparatus associated with a communication node in a network that has several types of ports to transfer packet comprising at least identification data representing addresses of the path of the packet through such network, the identification data representing the path of the packet are made by at least a fixed size group of identification data, comprising:code for determining the type of port for which the packet received from one port is intended based on a part of the group of identification data;code for modifying the part of the group of identification data in the packet;code for transferring the modified packet to one port according to the result of determination.

The invention relates to packet transferring apparatus associated with a communication node in a network that has several types of ports to transfer data packet, said transferring apparatus comprising:a processor for determining the type of port for which the data packet received from one of said ports is intended, based on identification data of said received data packet;and transferring means for transferring said received data packet to one port of a first type that is linked to the network or, using intermediate means, to one port of a second type that is linked to a communication node according to the results of said determining means.

The invention relates to packet transferring apparatus in a network that has several types of ports to transfer packet comprising at least identification data representing addresses of the path of the packet through the network, the identification data representing the path of the packet are made by at least a fixed size group of identification data, the transferring apparatus comprising:a processor for determining the type of port for which the data packet received from one port is intended based on a part of the group of identification data;and for modifying the part of the group of identification data in the packet;transferring means of transferring the modified packet to one port according to the result of determining means.

As depicted in FIG.1and marked by the general reference denoted10, a packet switching network according to the invention has several switching nodes12,14,16,18,20connected together by the point to point connections marked by the reference denoted22.

These switching nodes are for example data processing apparatus which can each take the form of a printer, a server, a computer, a facsimile machine, a scanner, a video tape recorder, a decoder known as a “set top box”, a television receiver, a camcorder, a digital camera or a digital photographic apparatus.

The nodes are capable of receiving, sending and transmitting data to the other nodes in the network.

In such a network the data are conveyed over connections22in the form of packets depicted schematically in FIG.2and consisting of useful data, identification data forming the packet header and indicating notably the destination of said packet and the path taken by it through the network, and an end of packet mark.

It should be noted that the packet identification data indicating notably the destination of said packet and the path taken by it through the network are not necessarily placed in the header, but can, on the contrary, be placed at another point such as, for example, at the end of the packet.

Several data packets form a message and the last packet of the message carries an end of message mark rather than an end of packet mark.

The switched network implements for example IEEE 1355, and the aforementioned data comply with the communication protocol defined by this standard. This standard enables the network to benefit from a reliable protocol using routing at source, flow control at the links and packets of variable size.

As depicted inFIG. 3a, the data processing apparatus20ofFIG. 1, which is for example a digital photographic apparatus, has an element referenced24which effects the interface between a switching unit26and the network and which is referred to as a network adapter.

Such an element is for example sold by the company Four Links for Technical Help under the reference C112.

In this figure the connections22are represented by two buses: one denoted “data” and referenced22aand the other denoted “strobe” and referenced22b. This coding, referred to as “data-strobe”, is described in the document EP 0 458 648.

As depicted inFIG. 3a, the switching unit26, according to a first embodiment of the invention, is connected to the network adapter24by means of a bus B.

The data processing apparatus constituting the node20and which is depicted inFIG. 3ahas a logic control unit denoted30which is connected to the switching unit26by means of a bus C, which will be referred to again below.

As depicted in more detail inFIG. 3b, the logic control unit30contains a header register block30a, a selection block30b, a means30cof reading and writing data in the switching unit26and a PCI bus request block30d.

The data processing apparatus20also has a data processing unit34, for example a processor, and a memory36, connected together by means of a bus37.

The logic control unit30is connected to the data processing unit34by means of a bus, for example of the PCI type, denoted38, and a bus39.

As depicted inFIG. 3a, the switching unit26has a number k of ports of a first type with k=3 in this example. A port of a first type is defined by the fact that it is adapted to exchange data packets with the network, either directly by means of a point to point connection22, or indirectly by means of a point to point connection and a network adapter24. These ports are also referred to as external ports and are represented inFIG. 3aby blocks referenced40,50and60.

It should be noted that the network adapter24converts the data packets coming from the network in a serial format into a parallel format and that the ports of the first type convey data packets in parallel form.

However, the invention also applies to switching units whose ports of the first type convey data serially, as described in the document EP 0 405 990.

The switching unit26also has a number n of ports referred to as intermediate ports. These intermediate ports are four in number in the example depicted in FIG.3and are indicated by the blocks referenced70,80,90and100.

Each port of the first type has on the one hand means of receiving and sending a data packet which has been transmitted by the point to point connection22associated with said ports of the first type and which is intended either for a port of the first type or for a port of the second type and, in addition, means of sending a data packet intended for the point to point connection22associated with this same port. It should be noted that the data packets received or sent over a point to point connection22are respectively transmitted by means of the network adapter24and bus B.

As depicted inFIG. 3a, the receiving and sending means of the ports of the first type denoted40,50,60are respectively referenced41,51,61.

The sending means of these ports of the first type denoted40,50and60are for their part referenced respectively45,55,65.

The receiving and sending means41of the port of the first type40are depicted in more detail in FIG.4.

Thus these receiving and sending means41include means42of reading and processing identification data corresponding to the header of a data packet as depicted in FIG.2. These identification data serve to identify the port of the switching unit for which this data packet is intended. It should be noted that these identification data are not necessarily placed in the header of the packet but can be placed at another place therein, such as for example at the end of the packet. In such a case, it is of course necessary to provide storage means associated with the ports of the first type in order to receive therein the entire data packet.

The identification data processing means are adapted, according to the circumstances, either to eliminate said data, or to modify these data according to the nature of the destination port. This point will be returned to subsequently in more detail.

The receiving and sending means41also include a queue denoted43, which corresponds in fact to a storage means of small size and can for example take the form of a “FIFO” or “first in, first out” memory. This queue denoted43has the storage capacity of a word or a double word and its function is to store the header modified before the transfer to the destination port.

The queue43is on the one hand connected to the reading and processing means42and on the other hand to a tri-state buffer43. This tri-state buffer enables the output of the queue43to be put at high impedance so that the data issuing from said buffer do not interfere with the data on the bus to which the receiving and sending means41are connected. This bus is depicted by the letter A inFIGS. 3 and 4.

The means42of reading and processing the identification data inFIG. 4are connected to the communication bus denoted B, which can also be seen inFIG. 3a. This communication bus B serves the three ports of the first type40,50and60.

FIG. 5adepicts in more detail the sending means45of the port of the first type40inFIG. 3a. This figure depicts an occupation marker denoted46which communicates with the internal communication bus denoted A, and a data flow control unit denoted47which is put in communication with the communication bus denoted B.

The function of the occupation marker46is to indicate to other elements of the switching unit26that the sending means45are in the process of sending a data packet, and that they are therefore not available for other tasks. The function of the data flow control unit47is to control the sending of data over the bus B, that is to say to allow them to be sent only if the network adapter is available to receive them. For example, if this adapter has storage means and these storage means are not full, then the sending of the data can be enabled by the unit47.

The switching unit26has means of transferring the data packet between the ports of the first type and the intermediate ports.

These transfer means have a bus-type architecture, depicted in the figures by the communication bus denoted A.

It should be noted here that, in an architecture of the bus type, all the ports of the first type and intermediate ports are connected together by a single bus, the bus A, and therefore only one communication can take place at a given time t.

It should be noted that the speed of the communication bus A can be optimised so as to permit rapid transfer of the data, thereby avoiding unwanted waiting time between the moment when the packets are received by ports of the first type and the moments when these packets are transferred to the intermediate ports, destined for the internal node.

More precisely, when data packets are received simultaneously by ports of the first type at a certain frequency, the operating frequency of the internal bus A can be such that it allows the transfer of data from all the ports of the first type to intermediate ports by interleaving said data over time, so as to process only one packet at a time.

For this it is necessary for the operating frequency of the bus to be appreciably greater than that of the links22.

The data flow entering the switching unit26is therefore easily absorbed.

FIG. 5bdepicts the timing diagrams of different signals Clk, Hre and Hwr.

The signals Hre and Hwr are depicted inFIGS. 4,6,7and8.

The figures between parentheses indicate the number of the port concerned, the numbers having been allocated from1to7respectively for the ports70,80,90,100,40,50and60.

Returning toFIG. 5b, the signal Clk is a clock signal, the signals Hre (5) and Hwr (1) represent the data reading signals in the port5, that is to say the port of the first type40, and of writing in the intermediate port1, that is to say the port of the first type70.

The signals Hre (2) and Hwr (7) for their part are applied to the transfer of data from the intermediate port80to the external port60.

The signals Hwr (6) and Hwr (4) concern the transfer of data from the port of the first type50to the intermediate port100.

These timing diagrams illustrate the fact that the bus-type architecture of the switching unit enables the data to be multiplexed within them by interleaving them rather than transferring a single data packet at a time.

Returning toFIG. 3a, each intermediate port70,80,90,100has on the one hand means of receiving and sending a data packet coming from the node itself and intended either for a port of the first type or a port of the second type denoted C, which will be described later, and on the other hand means of receiving and sending a data packet coming from a port of the first type and intending for the port of the second type.

The means of receiving and sending a data packet coming from the port of the second type are respectively referenced71,81,91and101inFIG. 3a. The means of receiving and sending a data packet coming from a port of the first type are respectively referenced76,86,96and106.

FIG. 6depicts in more detail the receiving and sending means71of the intermediate port70ofFIG. 3a.

These means71include means73of reading and means of processing identification data identifying the destination port of the data packet under consideration.

In a similar fashion to that which was described with reference toFIG. 4for a port of the first type, the receiving and sending means71have a queue74and a tri-state buffer75. The queue74is in communication with on the one hand the reading and processing means73and on the other hand the buffer75which communicates data over the communication bus A.

The functions of the elements74and75are the same as those of the elements43and44of FIG.4.

In addition, the receiving means71also include a storage means72which is for example of the “FIFO” type, that is to say of the “first in first out” type. The storage means72is of a size which enables it to store an entire data packet if required. For example, the size of the storage means is32bytes.

The storage means72ofFIG. 6is in communication with the reading and processing means73, and with the queue74.

This storage means also communicates with a communication bus denoted C and depicted on the right-hand side of FIG.6and inFIG. 3a.

FIG. 7depicts in more detail the receiving and sending means of the intermediate port70ofFIG. 3a.

The receiving and sending means76include a storage means77which is for example of the “FIFO” type and similar to that depicted inFIG. 6by the reference72. The size of this storage means also enables it to store, if necessary, an entire data packet.

This storage means77is in communication with the communication bus denoted C and with the internal communication bus A.

These receiving and sending means76also have an occupation marker78which is in communication with the communication bus denoted A.

The function of the occupation marker78is to indicate to the different elements of the switching unit26that the receiving and sending means76are in the process of sending a data packet and therefore are temporarily unavailable for sending another data packet.

As depicted inFIG. 3aand mentioned above, the switching unit26also has at least one port of the second type, also referred to as an internal port. Such a port is defined by the fact that it is adapted to support an internal connection to the communication node20with which the switching unit26is associated.

As depicted in this figure, the switching unit has a single port of a second type which is denoted C in this figure. In the example embodiment depicted inFIG. 3a, the four intermediate ports70,80,90and100are associated with a single port of the second type and bear the same address as this port.

This advantageously makes it possible not to have to code, in the header of the data packets, the number of these intermediate ports.

The result is thus a saving in bandwidth at the switching unit.

Seen from the outside, the switching unit26does not have intermediate ports and only the numbers of the ports of the first type and of the port of the second type are to be coded in the header of a data packet.

The port of the second type denoted C is a communication bus formed by a set of signals including notably a bidirectional parallel data communication bus.

The port of the second type C connects the intermediate ports70,80,90,100to the logic control unit30.

Thus the port of the second type C conveys data in parallel form, which has the advantage of being able to dialogue easily with the data processing unit34.

It should be noted that it would also have been possible to provide two ports of the second type which would each have been connected to two intermediate ports. This case would have the advantage of being able to connect, for example, two separate buses to the switch and therefore to achieve for example two processors or two processing means.

In general terms, it is also possible to increase the number of ports of the first type and of the second type but, in this case, it is also necessary to increase accordingly the number n of intermediate ports in a proportion of at least two intermediate ports for one port of the second type, notably in order to avoid congestion problems within the switching unit26.

It should be noted that the intermediate ports are arranged between the ports of the first type and the port of the second type.

In the example embodiment depicted inFIG. 3a, the number n of intermediate ports is strictly greater than the number k of ports of the first type. This has the advantage of being able to transfer a data packet received at one of the ports of the first type to an intermediate port whilst the other three intermediate ports are occupied by three packets received previously.

Thus the ports of the first type are rapidly available for receiving other data packets.

It must be emphasised that the ports of the first type40,50and60and the port of the second type operate in duplex bidirectional mode, that is to say they can transmit data packets simultaneously and in both directions.

As depicted inFIG. 3a, the switching unit26also has a module120for managing switching of data packets which is connected to the communication bus denoted A.

The management module120is depicted in more detail in FIG.8.

Thus, in this figure, the management module has an input/output table122, a unit for partitioning the communication bus A, a writing and reading means denoted126and a unit for selecting the intermediate ports127.

FIG. 9adepicts the input/output table122ofFIG. 8on initialisation. This table establishes a match between the number of the port at which a data packet arrives in the switching unit26and the number of the port for which said packet is intended. On initialisation, no output port is allocated to the different input ports represented by the ports40,50,60,70,80,90and100.

However, where a data packet is transferred from a port of the first type to a port of a second type, the destination port indicated in this table corresponds to the intermediate port through which the packet will pass before joining the port of the second type.

This table gives, at a given moment, the switchings which have been performed in the switching unit26. Thus, as depicted inFIG. 9b, the port of the first type40is switched to the port of the first type50, the other input ports not having any output port allocated.

Later in the description more details will be given about the use of this table and the functions of the various other units of the management module120.

FIG. 10depicts a view of the switching unit26ofFIG. 2awithout the elements surrounding it. This figure indicates the different interface signals on the one hand between the switching unit26and the network adapter24and which are conveyed by the bus4, and on the other hand between the switching unit26and the inside of the data processing apparatus or node20and which are conveyed by the port of the second type or bus C.

Thus the interface signals conveyed by the communication bus denoted B are defined as follows:The signal Datar(17:0) is a signal representing data received by the bus coming from the bus denoted B inFIG. 3a. These data are coded in18bits.The signal Datat(17:0) is a signal representing the data sent by one of the ports of the first type40,50and60. It should be noted thatFIG. 11shows the structure of the Datar(17:0) or Datat(17:0) data. In this figure, the 18 bits are decomposed into two distinct bytes each formed by 9 bits, bits0to8and then bits9to17. This is due to the fact that the data are coded in the form of bytes on the links22. Bit0or bit9represent the first bit transmitted in the byte and bit8or bit17code the end of packet mark or end of message mark in association with bit0or bit1.The signal WrLink(3:1) is a single for writing the data sent by one of the ports of the first type over the point to point connection22. This signal, as will be seen later, is active at the low state.The signal RdLink(3:1) is a signal for reading the data coming from the point to point connection22and which are received by one of the ports of the first type. As will be seen later, this signal is active at the low state.

FIG. 10also depicts the interface signals between the switching unit26and the inside of the data processing apparatus or node with which said switching unit is associated. These interface signals are conveyed by the port of the second type or bus C and which is connected to the different intermediate ports70,80,90,100.

The interface signals are defined as follows:The signal AlmostFull(4:1) comes, as depicted inFIG. 6, from the storage means72and indicates that said storage means is almost full. This signal, active at the low state, is equal to 0 when the capacity of the storage means is equal to the maximum capacity thereof minus two double words.The signal Full(4:1), as depicted inFIG. 6, comes from the storage means72and indicates that said means is full. This signal, active at the low state, is equal to0when the storage means72of the receiving means71depicted inFIG. 6is full.The signal AlmostEmpty(4:1), as depicted inFIG. 7, comes from the storage means77of the receiving and sending means76of the intermediate port70. This signal indicates the moment when the storage means77is almost full. This signal, active at the low state, is equal to 0 when the storage means77contains no more than two double words.The signal Empty(4:1), as depicted inFIG. 7, comes from the storage means77. This signal, active at the low state, is equal to 0 when the storage means77is empty.The signal Rd(4:1) is a signal for reading the storage means77, as depicted in FIG.7. This signal is active at the low state.The signal Wr(4:1) is a signal for writing in the storage means72depicted in FIG.6. This signal is also active at the low state.The signal Br(3:1) indicates the numbers of the ports of the first type for which the broadcast data packet coming from within the node is intended. This signal, active at the low state, indicates to the switching unit26to which port of the first type the broadcast packets must be sent. For example, when the signal Br(3:1) is equal to “010”, then the broadcast packets will be sent to the ports40and60of the switching unit.The signal EOP(1:0) is, as depicted inFIGS. 6 and 7, a signal respectively ending up at the storage means (72) and coming from the storage means77. This signal makes it possible to detect an end of packet or end message mark either when a data packet is received by an intermediate port or when this packet is sent by said intermediate port. Thus, for example, when the signal EOP(0:1) is equal to “00”, this means that said signal is not used, when the signal EOP(1:0) is equal to “01” this means that an end of message is concerned. When the signal EOP(1:0) is equal to “10”, it is a case of an end of packet, and when the signal EOP(1:0) is equal to “11”, this means the signal is not valid.The signal Reset or reset to zero signal is active at the low state.The signal Clk is a signal coming from the clock of the node in question, but which is not depicted in the figures. This signal serves to sequence the operations performed in the switching unit26. It should be noted that the frequency of the clock is for example equal to 33 MHz.The signal Data(31:0), as depicted inFIGS. 6 and 7, is a signal which respectively ends up at the storage means72and comes from the storage means77, depending on whether the data are entering the switching unit or leaving it. This signal contains 32 bits.The different signals conveyed by the internal bus denoted A of the switching unit26are as follows:The signal D(17:0), as depicted inFIGS. 6 and 7, represents either of the data which are transmitted over the communication bus A by the receiving and sending means71of the intermediate port70, or which are received from said communication bus A by the receiving and sending means76of the intermediate port70. As mentioned above, the data transmitted by the receiving and sending means71of the intermediate port70over the internal communication bus A are transmitted by means of the buffer75depicted in FIG.6. The data which for their part are received from the internal communication bus A by the receiving and sending means76of the intermediate port70are more particularly received in the storage means denoted77in FIG.7. The data of the signal D(17:0) are coded in 18 bits.The signal Busy(7:1) is a signal representing the occupation of the ports of the first type and the intermediate ports. As depicted inFIGS. 5 and 7, this signal Busy(7:1) is respectively generated by the occupation markers46and78of the ports40and70of these figures. As depicted inFIG. 8, the signal Busy(7:1) generated by the occupation markers for the intermediate ports and the ports of the first type is transmitted by means of the internal communication bus A to the management module of the switching unit120. More particularly this signal Busy(7:1) is injected into the input/output table122inFIG. 8, and into the blocks124and127.The signal Start(7:1), depicted inFIG. 8, is generated by the partitioning block of the bus A denoted124and is intended either for the occupation marker46for the port of the first type40inFIG. 5, or for the occupation marker78for the intermediate port70in FIG.7. This signal Start(7:1) indicates to the destination port of the data packet that it is going to receive data. The destination port of the data then responds by activating the signal Busy(7:1) mentioned previously.The signal Busreq(7:1) is a signal corresponding to a request to transfer data over the internal communication bus A. As depicted inFIGS. 4 and 6, the signal Busreq(7:1) is generated by the reading and processing means of the port of the first type40or of the intermediate port70depending on the case envisaged. This signal Busreq(7:1) is then sent over the internal communication bus A to the partitioning block of the bus124of the management module120depicted inFIG. 8, and the selection unit127.The signal Portno(7:1) is valid when the signal Busreq(7:1) is activated. This signal Portno(7:1) indicates the destination port of the data packet in which said data are to be written. As depicted inFIGS. 4 and 6, the signal Portno(7:1) is either generated by the reading and processing means of the port of the first type40ofFIG. 4, or by the reading and processing means73of the intermediate port70of FIG.6. This signal is transmitted over the internal communication bus A and is intended for the input/output table122of the management module120depicted inFIG. 8, and for the selection unit127.The signal HRE(7:1) is a reading signal for the buffer and the queue of the receiving means of the port of the first type40and of the intermediate port70, as depicted inFIGS. 4 and 6. This signal, depicted inFIG. 8, is generated by the writing and reading means126of the management module120and is transmitted over the internal communication bus A to the receiving means41and71respectively of the port of the first type40and of the intermediate port70.The signal HWE(7:1) is a writing signal generated by the writing and reading means126of the management module120, transmitted over the internal communication bus A and intended, as depicted inFIG. 7, for the storage means77of the sending means76of the intermediate port70.The clock signal Clk is also conveyed over the internal communication bus A.The signal IntEmpty(1), as depicted inFIG. 6, comes from the storage means72and supplies an indication on the degree of occupation of the latter. This signal, active at the low state, is equal to 0 when the storage means72is empty. This signal is sent over the writing and reading means126of the management module120of FIG.8.The signal IntFull(1), as depicted inFIG. 7, comes from the storage means77and supplies an indication on the degree of occupation of the latter. This signal, active at the low state, is equal to 0 when the storage means77is full. This signal is sent over the selection unit127of the management module120, and over the writing and reading means126(FIG.8).

A description will now be given of the data packet switching method according to the invention.

FIG. 12depicts an algorithm which is used by the reading and processing means42of the receiving and sending means41of the port of the first type40ofFIG. 3a.

The algorithm will be detailed further inFIG. 25, which corresponds to a second embodiment of the invention.

When a data packet is received by the port of the first type40of the switching unit26, in accordance with step S1of the algorithm depicted inFIG. 12, during a step S2of this same algorithm, it is checked whether it is a case of a new data packet.

In the negative, a new reception of a new data packet is awaited.

In the affirmative, step S2is followed by a step S3, during which a reading of the first word of the header of the data packet in question is effected.

The signal RdLink(3:1) for reading the data coming from the point to point connection22is generated by the reading and processing means42of the receiving and sending means41of FIG.4.

Simultaneously, the signal Datar(17:0) representing the data is conveyed by the communication bus B as far as the reading and processing means42.

The simultaneity of the signals is also illustrated on the timing diagrams in FIG.13.

The following steps will depend on the nature of the port for which the data packet is intended.

Step S4makes it possible to determine the type of port and the number of the port for which a data packet arriving at the port of the first type40is intended.

More precisely, according to step S4, the algorithm examines whether the destination port is a port of the first type. In the affirmative, step S4is followed by step S5, during which the identification data of the data packet which represent the header thereof will be modified.

In order to illustrate the modification which will be made, it is necessary to refer toFIGS. 14aand14b, which represent an example of a header.

In the embodiment depicted inFIG. 3a, the number of ports of the first type and ports of the second type is equal to four, which makes it possible to code the number of each port in the header ofFIG. 14ain two bits.

In this figure, only the first four bits of the header byte are depicted.

Thus, for example, a data packet received by the port of the first type40, which corresponds to the port of the switching unit26seen from the outside, has, as depicted inFIG. 14a, a header in which the first two bits are “11”.

During step S5, a search is made for the first two non-nil bits of the header which correspond to the number of the coded destination port of the data packet.

The ports of the first type50and60being respectively the second and third ports of the switching unit26seen from the outside, the presence of the first two non-nil bits at “11” means that the data packet whose header is depicted inFIG. 14ais intended for the port of the first type50. The modification to the header made during step S5of the algorithm depicted inFIG. 12consists of replacing the first two bits of the header which were used for coding the destination port with two zeros, as depicted inFIG. 14b.

The data packet which will be sent by the port of the first type50will have the header depicted inFIG. 14b. The following two bits of the header denoted “01” correspond for their part to the coding of the destination port number of the next switching unit which the data packet under consideration will encounter.

Step S5corresponds to a step of processing the header of a data packet and, more particularly, to a step of modifying this header adapted to the fact that the previous step S4determined that the destination port is a port of the first type (40,50or60).

When the switching unit has a smaller number of ports of the first and second types, for example around ten, and the header of the data packet is processed by modifying it when said packet is intended for a port of the first type, then the size of the data serving to identify the ports of the switching units which the data packets under consideration will pass through will be optimised. If the necessary number of bits for coding each destination port is lower than the granularity of the network, then the size of the unit of the header will be able to be reduced compared with the case where the data identifying a destination port of a switching unit is eliminated routinely, whatever the type of destination port.

This advantageously makes it possible to increase the bandwidth for the data packet under consideration.

Thus, for example, a data packet having to pass through five switching units in which each has three ports of the first type and one port of the second type requires one byte for coding all the destination ports through which it must pass. Each port requires only two bits for its identification in the header.

If the number of switching units encountered on the path of the packet is greater than five, it is of course possible to add a second byte for coding the destination ports of the additional switching units.

In addition, the size of the data serving to identify the destination ports of the different switching units which the data packet will encounter on its path will thereby be reduced.

However, this advantage can be used to make it possible, for an equal data size, to identify an additional switching unit in the packet.

Step S5is followed by a step S6during which the new modified header of the data packet is written in the queue43depicted in FIG.4.

Step S6is then followed by a step S7during which the reading and processing means42depicted inFIG. 4activate the signal Busreq indicating a request to transfer data over the bus A and give to the signal Portno the number of the port of the first type50for which the data are intended.

As depicted inFIG. 15, the timing diagrams of the signals Busreq and Portno show that these are activated simultaneously in time.

After step S7ofFIG. 12, the algorithm ofFIG. 16is passed to, which depicts the different steps performed during the management of the switchings in the switching unit26. This algorithm is implemented in the switching management module120depicted inFIGS. 3 and 8.

As depicted inFIG. 8, the signal Busreq is sent to the partitioning block124of the bus and to the selection block127, and the signal Portno is sent for its part for the input/output table122, and to this block127.

In accordance with step G1of the algorithm ofFIG. 16, the management module120carries out an analysis of the bus requests by examining the signal Busreq which it has just received.

In accordance with step G2of the algorithm ofFIG. 16, the management module checks whether the destination port of the first type50is not already occupied by another transfer. To check on this latter point, the management module examines whether the occupation marker of the sending means55of the port of the first type50has generated a signal Busy intended for the input/output table122and the partitioning block of the bus124. If such is not the case, updating of the table122can then be enabled. This updating is more particularly depicted inFIG. 9a. The updating consists of entering in the table the value of the destination port decoded in the header, this value being written opposite the receiving port requesting access to this destination port.

Thus, after the updating, it is clear, inFIG. 9b, that the port of the first type40is an input port for the data packet under consideration and that the number of the destination port of this packet is the port of the first type denoted50.

During a step G3, the management module allocates the bus for the transfer of data requested to the port of the first type40.

Following step G4, the management module120then activates the signal Start for the destination port of the first type50. This signal is more particularly intended for the occupation marker for the sending means55of this port.

In accordance with step G5, the destination port50, or more particularly its occupation marker, activates the signal Busy of this port and the signal Start is also deactivated. The succession of signals Start and Busy is depicted in the timing diagrams in FIG.15.

In accordance with step G6of the algorithm ofFIG. 16, the management module120then activates the writing and reading means126, depicted inFIG. 8, which generates the signal Hre(7:1) making it possible to read the memories43and44of the receiving means41of the port of the first type40(FIG.4).

As depicted inFIG. 4, the data represented by the signal Datar(17:1) are first of all transmitted to the reading and processing means42and then successively sent to the queue43and to the buffer44before being transferred over the internal communication bus A.

During step G7(FIG. 16) the management module writes, in the destination port of the first type50, data which have just been read in the port of the first type40.

These data are communicated to the communication bus denoted B inFIG. 3aand are then transmitted by means of this same bus and the network adapter24over a point to point connection22.

Step G7is then followed by step G8during which a test is carried out to determine whether an end of packet mark is detected.

In the negative, the management module120reawaits reception of a new step G1.

In the affirmative, step G8is followed by step G9, during which the occupation marker of the destination port of the first type50deactivates its signal Busy. This is also illustrated in the timing diagrams inFIG. 15with regard to the signals Busy and D17or D8.

As depicted inFIG. 8, the deactivation of the signal Busy which is transmitted to the internal communication bus A is received in the input/output table122of the management module120and in the partitioning block124of the bus, and step G9is followed by step G10during which said input/output table is updated. This updating consists of replacing the value of the destination port (port50) which was occupied by a value “-” whose meaning indicates that said destination port is no longer occupied.

Returning toFIG. 12, after having examined, during step S4, whether the destination port is a port of the first type, if it turns out that said destination port is not in fact a port of the first type, then step S4is followed by step S9.

In such a case, step S9is followed by step S10during which the identification data indicating the destination port of the second type C of the switching unit and which are represented by the header of the data packet are eliminated. This elimination of the data is advantageous in so far as the data packet which will be transmitted will have fewer data, thereby avoiding processing of unnecessary data by the processing unit34.

Step S10is then followed by step S7, depicted in the algorithm inFIG. 12, during which the reading and processing means42for the data packets request a transfer of data over the internal communication bus A by activating the signal Busreq and giving to the signal Portno the number of the destination port requested (FIG.4), that is to say the port of the second type denoted C inFIG. 3a.

These signals Busreq and Portno are sent over the internal communication bus A (FIG. 4) and are then transmitted respectively to the partitioning block of the bus124and to the selection unit127of the management module120, for the signal Busreq, to the input/output table122and to the selection unit127of this same module for the signal Portno, as indicated in FIG.8.

Step S7ofFIG. 12is then followed by step G1of the algorithm depicted in FIG.17and implemented by the management module120of FIG.8. This algorithm, which will be described below, differs from the one depicted inFIG. 16by an additional step denoted G′1.

Thus, in accordance with step G1, an analysis of the bus request is made by the partitioning block of the bus124as soon as the signal Busreq is received.

Step G1is followed by a step G′1during which the selection block127of the bus effects a selection of intermediate ports70,80,90and100and of their associated storage means.

This selection is for example made according to the occupation of the storage means which are associated with each of these intermediate ports. The information on the occupation of these storage means is supplied by the signal IntFull coming, for example, from the storage means77of the intermediate port.

Let it be assumed that one of the occupation markers of one of the sending means of the different aforementioned intermediate ports activates its signal Busy, which means that the sending means is in the process of receiving a packet. The latter will then be sent over the internal communication bus A to the input/output table122of the management module120, and to the partitioning block of the bus124, as depicted in FIG.8. The management module will then deduce therefrom that this intermediate port is already occupied by the sending of a data packet intended for the port of the second type C.

When the signal Busy is activated, the signal IntFull can be activated, in which case the storage means is full, or deactivated, in which case the storage means is partially filled.

There exists another case in which the signal Busy has just been deactivated following the detection of an end of packet or where the storage means has just been filled. In this case, the signal IntFull will be useful to the selection block127of the module120in order to select an unoccupied intermediate port.

If amongst the four intermediate ports only one of them has activated its signal Busy, then the management module will have a choice between the other three intermediate ports which have not activated their signal Busy nor their signal IntFull. The selection can then for example be made according to the different priority levels which will previously have been allocated to the intermediate ports. Thus the data packet can more particularly be intended for one of the intermediate ports which will have priority.

Assuming that the intermediate port70has not activated its signal Busy, nor its signal IntFull, said intermediate port is selected by the block127.

The selection block127(FIG. 8) then updates the input/output table122(step G2) by means of the “update” bus, selecting the intermediate port70opposite the port of the first type40(FIG. 9c).

The block127advises, by means of the “request” bus, the partitioning block of the bus124of the number of the intermediate port selected.

The partitioning block of the bus124then allocates the internal communication bus A for the transfer of data from the port of the first type40to the intermediate port70(step G3).

It should be noted that, in the case where there are as many ports of the first type as intermediate ports and each port of the first type is associated in a predetermined manner with an intermediate port, then the selection step G′1of the algorithm consists of seeking, in the input/output table122, the intermediate port corresponding to the port of the first type at which the data packet was received.

However, this selection takes place only where the signals Busy and IntFull of the intermediate port in question are not activated.

In accordance with step G4and as depicted inFIG. 8, the partitioning block of the bus124activates the signal Start of the occupation marker78of the receiving and sending means76depicted in FIG.7.

In accordance with step G5, the intermediate port70activates its signal Busy (FIG. 7) and the signal Start is then deactivated. This signal Busy is then transmitted over the internal communication bus A and sent to the input/output table122and to the partitioning block of the bus124of the management module120, as depicted in FIG.8.

The signals Start and Busy follow each other over time as depicted in the timing diagrams in FIG.15.

The management module120activates the writing and reading means126depicted in FIG.8and generates a signal HRE(7:1) intended to read the memories43and44of the receiving and sending means41of the port of the first type40(step G6).

The writing and reading means126also generates the signal HWE(7:1) intended to write, in the storage means77of the receiving and sending means76of the intermediate port70, the data which will be read from the port of the first type40.

In accordance with step G6, the data represented by the signal Datar(17:1) inFIG. 4are successively transmitted through the reading and processing means42, queue43and buffer44before being sent over the internal communication bus A (FIG.4).

The data which are transmitted over the internal communication bus A are represented by the signal D(17:0), are sent (FIG. 7) into the storage means77of the intermediate port70and are written therein in accordance with step G7of the algorithm of FIG.17.

Step G7is followed by step G8during which it is detected whether an end of packet mark has presented itself.

If not, the management module120then awaits a new step of reading the input port G6.

On the other hand, when an end of packet mark is detected, then step G8is followed by step G9, during which the occupation marker78of the intermediate port70deactivates its signal Busy. This information is transmitted over the internal communication bus A and is sent to the input/output table122of the management module120, to the bus partitioning block and to the selection block127. The deactivation of the signal Busy and the detection of the end of packet mark are illustrated in the timing diagrams in FIG.15.

Step G9is followed by step G10, during which the input/output table122of the management module120depicted inFIG. 8is updated, the port of the first type40no longer having any output port allocated.

As a general rule, the storage means77serves to store a part of the data packet transmitted by the internal communication bus A coming from the port of the first type40. The data generally merely pass through this storage means in order to be transmitted immediately to the communication bus C (port of the second type).

If the logic control unit30depicted inFIG. 3awishes to receive a data packet, then it verifies the signal Empty and reads only if the signal Empty is not activated. The logic control unit can also use the signal AlmostEmpty if it does not wish to read when the storage means contains fewer data than the threshold fixed by said signal. This threshold corresponds for example to four words of 32 bits. The unit30also verifies whether a signal EOP has been sent by an intermediate port. The logic control unit30analyses the previously mentioned signals by means of the selection block30b(FIG. 3b). If an end of packet is detected, the unit30then sends, by virtue of the reading and writing means33, a signal Rd(1) which is transmitted by the port of the second type C (communication bus), as far as the storage means77(FIG.7), in order to allow reading of the data contained in said storage means.

The data represented by the signal Data (31:0) inFIG. 7are then transmitted over the communication bus C in order to reach the logic control unit30, where the header of the packet is written in the register30aofFIG. 3b.

The block30dof the logic control unit30then sends, to the data processing unit34, a request for transferring the data over the PCI bus.

These data are transmitted to the data processing unit34by means of the buses38and39ofFIG. 3a.

When the data have been transferred to the data processing unit34, they are then stored in the memory36shown inFIG. 3a.

As shown inFIG. 7, the signal EOP(1:0), indicating the end of the packet of data which have just been transmitted, is also sent over the communication bus C (port of the second type) and to the logic control unit30, before being transmitted to the data processing unit34.

FIG. 18illustrates the change over time in the different aforementioned signals, namely Rd, Data(31:0) and EOP(1:0).

Thus it is clear that the signal Rd is activated at the low state and thus makes it possible to read the data represented by the signal Data(31:0).

It should however be noted that, when the logic control unit30is in the process of receiving a first packet of data from one of the intermediate ports of the switching unit26, then the second packet of data which was, as seen previously, sent from the port of the first type40to the intermediate port70, cannot be immediately transferred over the communication bus C.

This is because this communication bus is already being used for transferring the first data packet coming from another intermediate port.

In this case, the second data packet transferred to the intermediate port70is stored in its entirety in the storage means77of FIG.7. Instead of transferring one data packet at a time (this may prove useful when a packet has priority) it is also possible to multiplex the data on the bus C, that is to say to transfer for example 32 bits from a first storage means, and then 32 bits from another, or one block of one and one block of the other, this being managed by the logic controller30.

Such a multiplexing has already been shown inFIG. 5b.

As a general rule, the time required by the data transferred from the port of the first type40to the intermediate port70in order to pass through said storage means77is sufficient to allow the release of the communication bus C, which can then also be used for transferring other data packets.

The case where a data packet is sent from the port of the second type C to a port of the first type will now be dealt with.

When the data processing unit34ofFIG. 3awishes to send a data packet contained in the memory36, this means writes the header byte of said data packet in the logic control unit30at a particular address in the header register block30a(FIG. 3b), this byte including the coded number of the destination port of the switching unit26, that is to say one of the ports of the first type denoted40,50or60.

The logic control unit30then performs a step of selecting an intermediate port by means of the selection block30bofFIG. 3b, for example according to the occupation of the storage means associated with the receiving and sending means of said intermediate port.

To do this, the block30bof the logic control unit analyses the signals generated by the storage means of the receiving and sending means of the different intermediate ports. The signals analysed are the signals AlmostFull(1) and Full(1) (FIG. 6) which are sent by these storage means, transmitted over the communication bus C (port of the first type). These signals indicate to the logic control unit30the state of filling of the different storage means.

When one of the storage means, for example the storage means72of the intermediate port70(FIG.6), has sent no signal AlmostFull(1) or Full(1), then the logic control unit30selects it by means of the block30bofFIG. 3b. When the processing unit34is ready to send the data, the control unit30generates the signal Wr(1) by virtue of the reading and writing means30cofFIG. 3band transmits it to the storage means72of the intermediate port70(FIG.6).

This signal will make it possible to write, in the storage means, the data sent by the logic control unit30.

These data are represented by the signal Data(31:0).

When the end of the packet presents itself, the signal EOP(1:0) is also sent to the storage means72(FIG.6).

The change in the signals Wr, Data(31:0) and EOP(1:0) is illustrated in the timing diagrams in FIG.19.

It should be noted that the function of the storage means used in the receiving and sending means of the various intermediate ports, for example the storage means72depicted inFIG. 6, is to prevent interruption of the flow of data circulating in the switching unit and the processing of said data by the management module120.

The algorithm ofFIG. 12is also implemented in the reading and processing means73of the receiving and sending means71of the intermediate port70.

In accordance with the algorithm ofFIG. 12, the reading and processing means73implement a reception step (S1) and then examine, during step S2, whether the data received correspond to a new packet.

It is a case of a new packet if an end of packet mark was received previously in the same storage means.

If it is not a case of a new packet, then the reading and processing means73await a new reception step (S1).

In the case concerned here, a new packet has been received in the storage means72and step S2of the algorithm ofFIG. 12is then followed by step S3, during which the reading and processing means73read the first word of the header of the data packet under consideration.

The reading step is represented inFIG. 6by an arrow “reading” starting from the reading and processing means73and ending at the storage means72.

As depicted inFIG. 6, the first two bytes of the signal Data(31:0) indicated by the signal D(17:0) are transmitted from the storage means72to the reading and processing means73by means of the connection referenced1.

Step S3is followed by step S4, during which it is examined whether the destination port of the data packet under consideration is a port of the first type.

In the affirmative, step S4is followed by step S5, during which the two header bits of the data packet under consideration which were used to code the port of the first type for which said packet is intended are replaced by zeros, in a similar fashion to the depiction inFIG. 14b.

The header byte thus modified by the reading and processing means73is then transmitted to the queue74by means of the connection referenced0in FIG.6. The operation of writing this header byte in the queue74is represented inFIG. 6by the arrow starting from the reading and processing means73and ending at said queue74(step S6).

Step S6is followed by step S7depicted in the algorithm inFIG. 12, during which the reading and processing means73of the intermediate port70effect a request to transfer data over the internal communication bus A by activating the signal Busreq(1) and giving to the signal Portno the number of the port of the first type for which the data packet is intended (FIG.6).

These signals Busreq and Portno depicted inFIG. 16are transmitted over the internal communication bus A and sent respectively to the partitioning block of the bus124of the management module120in FIG.8and to the input/output table122in this same figure.

Step S7of the algorithm inFIG. 12is followed by step G1of the algorithm ofFIG. 16implemented by the management module120and during which said module analyses the bus request on reception of the signal Busreq.

In the case concerned here, namely the transfer of a data packet from the intermediate port70to the port of the first type40, the management module120examines, during a step G2, whether the occupation marker42of the port of the first type (FIG. 5a) has sent a signal Busy (5) indicating that said port is occupied in sending or receiving.

If no signal Busy is sent by the occupation marker46by means of the internal communication bus A to the input/output table122ofFIG. 8, then, in accordance with the previously mentioned step G2, the management module120updates the input/output table122by establishing a match between the number of the intermediate port70and that of the destination port40(FIG. 9d).

During the following step G3, the management module120allocates the internal communication bus A for the transfer of the data packet from the intermediate port70to the port of the first type40.

In accordance with step G4of the algorithm ofFIG. 16, the management module120activates the signal Start of the port of the first type40which has been selected. As depicted inFIG. 8, the signal Start is sent by the partitioning block of the bus124, transmitted by means of the internal communication bus A to the occupation marker46of the port of the first type40depicted inFIG. 5a.

The occupation marker46then activates, at the following clock signal (FIG.15), the signal Busy which is transmitted by the internal communication bus A to the input/output table122of the management module120, in accordance with step G5.

At the following clock signal (FIG. 15) the signal Start is deactivated.

The management module120then, in accordance with step G6, reads the data at the intermediate port70after having verified that the signal IntEmpty is not activated. This reading is effected by the sending of a signal HRE(7:1) sent, as depicted byFIG. 8, by the writing and reading means126of said management module, and intended for the tri-state buffer75and the queue74of the receiving and sending means71depicted in FIG.6.

The data represented by the signal D(17:0) inFIG. 6are then transmitted from the queue74to the buffer75and to the internal communication bus A.

As depicted inFIG. 5a, the data flow control unit47sends a signal WrLink(1) over the communication bus B in order to indicate to the latter that data will be transferred over said bus.

The flow control unit47consists of sending data to the network adapter only when the latter can receive them, that is to say, for example, when the storage means internal to this adapter are not full.

The management module120then executes step G7of the algorithm ofFIG. 16enabling writing of the data represented by the signal Datat(17:0) ofFIG. 5aof the internal communication bus A over the communication bus B.

As depicted inFIG. 20, the signal Datat(17:0) is transmitted when the signal WrLink is activated at the low state.

When the transfer of the data packet from the intermediate port70to the port of the first type40has been effected, and when the end of packet mark has been detected in accordance with step G8of the algorithm ofFIG. 17, then the occupation marker46of the port of the first type40deactivates its signal Busy (Step G9) and the latter is transmitted by the internal communication bus A on the one hand to the input/output table122and on the other hand to the partitioning block of the bus124of the management module120(FIG.8).

The input/output table122is then updated in accordance with step G10of the algorithm ofFIG. 17, and the management module120then awaits a new step G1of bus request analysis.

Returning toFIG. 16, if an end of packet mark has not been detected during step G8, then the management module120awaits a new step of reading G6of the input port.

When the data packet has been transferred over the communication bus B (FIG. 5a), it is then transmitted to the network adapter24and to a point to point connection22.

According to a variant, not shown in the Figures, additional storage means are associated permanently with the ports of the first type40,50and60ofFIGS. 3aand10.

This advantageously makes it possible to begin to store the data packets arriving from the network in these storage means whilst waiting for the header of these packets to be analysed in the switching unit26, and more particularly in the reading and processing means of the ports of the first type concerned.

According to another variant, not shown in the figures, additional storage means associated with the ports of the type40,50and60are also provided for sending data packets over the network.

This has the advantage of being able to store a few data before sending them over the network if the latter is heavily loaded.

FIG. 21depicts a variant embodiment of the receiving and sending means71of the intermediate port70depicted in FIG.6.

This variant applies to the case according to which the switching unit has the same number of intermediate ports as ports of the first type. This variant of the switching unit26is not depicted in the Figures but corresponds to the case where the intermediate ports are solely the ports70,80and90, the intermediate port100being omitted.

Firstly, the switching of a data packet from the port of the second type C to a port of the first type40,50or60is dealt with.

Thus, when the number n of intermediate ports is equal to the number k of ports of the first type and provision is made for each intermediate port to be associated with a port of the first type in a predetermined fashion, then the logic control unit30, knowing this association, selects the intermediate port corresponding to the port of the first type for which said packet is intended and transfers the data packet directly to said selected intermediate port.

Naturally, as previously described with reference toFIG. 6, the logic control unit verifies that the storage means of the intermediate port concerned are empty by analysing any signals AlmostFull(1) and Full(1).

Because of this association, the header of the data packet which is to be transferred in the switching unit26does not make provision for coding the number of the port of the first type for which it is intended.

This represents a saving in processing time in the switching unit and a simplification of the logic of the switching unit.

It is also possible, instead of reducing the size of the identification data of the data packet to be switched, to add, in said data, the address of a destination port of an additional switching unit.

InFIG. 21, the elements which have not been modified compared to those ofFIG. 6have been repeated and keep the same references.

FIG. 22depicts the algorithm implemented in the receiving and sending means of FIG.21and illustrates the cases of transfer from the port of the second type either to a port of the first type, or the port of the second type itself (test). The steps identical to those of the algorithm ofFIG. 12keep the same references.

When the storage means72of the receiving and sending means130of the variant of the intermediate port70is available, then the data is transferred by the logic control unit30into said storage means.

InFIG. 21, means referenced132replace the reading and processing means73for the header of a data packet of FIG.6. The algorithm ofFIG. 22is implemented by the means132.

These means132determine, after reception of the data packet (step S1), whether the storage means72is empty or whether an end of packet presents itself (step S2).

Step S2is followed by the step of reading the first word of the header (step S3), which takes place as indicated above with reference toFIG. 6. Astep34of determining the type of port for which the packet is intended is then performed.

The attached port is determined by examining whether or not the header has solely zeros.

If the header does not have solely zeros, then the destination port is of the first type and the means132know that the packet is intended for the intermediate port70which is associated, for example, with the port of the first type40.

In accordance with step S6, the means132write the header of the packet in the queue74.

If on the other hand the header contains only zeros, this means that the data packet is intended for the port of the second type C (step S9).

Step S9is followed by step S10, during which the header is eliminated.

The means132then send a bus transfer request by activating the signal Busreq(1) and giving to the signal Portno the number of the port of the first type with which the intermediate port under consideration is associated (step S7).

The procedures of analysing the request for transfer over the communication bus A and of transfer of the data packet are processed as indicated by the algorithm inFIG. 16, which has already been described with reference to the previous figures.

This variant is particularly advantageous in so far as it does not make it necessary to effect the sequencing of the header of the data packet, since the port of the first type for which the packet is intended is not coded in the identification data of said packet, as mentioned previously.

This simplification in fact makes it possible to routinely transfer the data present in the storage means72of the intermediate port under consideration to the port of the first type associated therewith.

The transfer of the data packet from the intermediate port whose reception means130are depicted inFIG. 21will not be described here since it exactly repeats the description already given with reference to the preceding figures.

When, still in this same variant, a data packet received at one of the ports of the first type50,60,70is intended for the port of the second type C, transfer takes place in a similar fashion to that which is described in the case where there are more intermediate ports than ports of the first type.

However, when intermediate ports are considered to be free, following the absence of activated signals Busy and IntFull, then the block127selects, in the input/output table122, the intermediate port which is associated with the port of the first type under consideration.

If this intermediate port is one of those which is free, then the block127advises the block124of the number of said intermediate port.

This table shows, on initialisation, that the association between ports is provided for.

However, this can be modified at any time by the processing means34and by the logic control unit30.

FIG. 23illustrates a variant embodiment of the switching unit according to the invention which replaces the switching unit26ofFIG. 3a.

According to this variant embodiment, the switching unit140has three ports of the first type142,144,146and four intermediate ports148,150,152and154. Each of these ports has the same structure as that depicted in the previously mentionedFIGS. 4to7.

In a similar fashion to that previously described, the ports of the first type inFIG. 23are also in communication with the communication bus B ofFIG. 3a. In addition, the intermediate ports inFIG. 23are in communication with the port of the second type denoted C inFIG. 3a.

The switching unit140also has a module170which is disposed between the ports of the first type and the intermediate ports. This module fulfils notably the functions of the management module120depicted in the previously describedFIGS. 3 and 8.

In addition, the switching unit140has means of transferring data packets between the ports of the first type142,144and146and the intermediate ports148,150,152,154which have an architecture of the multibus type.

The architecture of the multibus type is formed on the one hand by different buses which are represented by the letters D, E, F, G, H, J and K between the different ports under consideration and the module170and, on the other hand, by the module170which makes it possible to simultaneously connect together the ports D, C, F to three of the four buses G, H, J, K.

These transfer means have an architecture of the multibus type (known by the term “crossbar”).

In the case of a core of a switching unit of the multibus type, it is possible to transfer data simultaneously from several ports, for example of the first type, to several other ports, for example intermediate. Naturally, in such a case, a destination port which is, for example, an intermediate port, can receive a data packet from only one port at a time.

By comparison, with the architecture of the bus type presented inFIG. 3a, it must be emphasised that, in order to achieve the performance achieved by the switching unit21, the speed of the internal switching bus A depicted inFIG. 3amust be increased compared with the speed of the bus used in the switching unit of FIG.23.

As depicted inFIG. 23, the signals Busreq, Portno, Start, Busy, Hre and Hwe are transmitted between each port and the module170.

In addition the different data transmitted between the different ports and the modules170are represented by the signals D1(17:0) to D7(17;0).

It should be noted that the advantage mentioned above with reference to the case where the number of intermediate ports is equal to the number of ports to the first type and where an association is provided for between each port of the first type and an intermediate port is kept when the switching unit under consideration has, as depicted inFIG. 23, an architecture of the multibus type.

All the other characteristics and advantages set out above with reference to a switching unit having an architecture of the bus type remain the same, in so far as they quite obviously do not concern the bus-type architecture.

As depicted inFIG. 24, according to a second embodiment of the invention, a data processing apparatus220, which is for example a digital photographic apparatus, has an element referenced224which provides the interface between a switching unit226and the network10(FIG. 1) and which is referred to as the network adapter.

The apparatus220can be substituted for the apparatus20of FIG.1.

For this second embodiment of the invention, only the most significant figures have been depicted.

Such an element224is for example sold by the company Four Links for Technical Help under the reference C112.

In this figure, in a similar fashion to the connection22ofFIG. 3a, the connections are represented by two buses: one denoted “Data” and referenced222aand the other denoted “Strobe” and referenced222b. This coding, referred to as “Data-Strobe”, is described in the document EP 0 458 648.

As depicted inFIG. 24, the switching unit226, according to a second embodiment of the invention, is connected to the network adapter224by means of a bus denoted228.

The data processing apparatus denoted220also has a logic control unit230which is in accordance with the more detailed representation in FIG.3bof the first embodiment, with the exception however of the selection block appearing in this figure and which is not necessary in the embodiment under consideration.

The logic control unit230is connected to the switching unit226by means of a bidirectional parallel data communication bus232.

The data processing apparatus220also includes a data processing unit234, for example a processor, and a memory236, both connected together by means of a bus237.

The logic control unit230is connected to the data processing unit234by means of a bus, for example of the PCI type, denoted238, and a bus239.

As depicted inFIG. 24, the switching unit226has three ports of a first type in this example embodiment.

A port of a first type is defined by the fact that it is adapted to exchange data packets with the network, either directly by means of a point to point connection222, or indirectly by means of a point to point connection and the network adapter224.

These ports are also referred to as external ports and are depicted in this figure by blocks referenced240,250and260.

As depicted inFIG. 24, the switching unit226also has a port of a second type formed by a block denoted270and the bus232.

Such a port is defined by the fact that it is adapted to support an internal connection to the communication node220, with which the switching unit226is associated.

The port of the second type, also referred to as an internal port, communicates with the logic control unit230by means of the bus232.

This port conveys data in a parallel form, which has the advantage of being able to dialogue easily with the data processing unit234.

The switching unit226has means of transferring data packets between the ports of the first type denoted240,250,260and the port of the second type270,232.

These transfer means have an architecture of the bus type and are formed by the internal communication bus denoted290in FIG.24.

It can also be envisaged producing these transfer means by an architecture of the multibus type similar to that depicted inFIG. 23of the first embodiment.

It must be emphasised that the aforementioned ports of the first type and the port of the second type270,232operate in duplex bidirectional mode, that is to say they can transmit the data packets simultaneously and in both directions.

As depicted inFIG. 24, the switching unit226also has a module300for managing the switching of the data packets which is connected to the internal communication bus290.

The switching unit226is depicted inFIG. 25without the elements ofFIG. 24but with different interface signals.

More precisely,FIG. 25indicates the different interface signals, on the one hand between the switching unit226and the network adapter224and which are conveyed by the bus228, and on the other hand between the switching unit226and the inside of the data processing apparatus or node220and which are conveyed by the bus232.

These interface signals are identical to those described with reference to the first embodiment of the invention.

The management module300ofFIG. 25is depicted in more detail in FIG.26.

Thus, in this figure, the management module has, in a manner identical to the depiction inFIG. 8, an input/output table302, a partitioning block304for the internal communication bus290and a writing and reading means denoted306.

Returning toFIG. 24, each port of the first type240,250,260has on the one hand means of receiving and sending a data packet which has been transmitted by the point to point connection222associated with said ports in the first type and which is intended for a port of the first or second type, and on the other hand means of receiving and sending a data packet intended for the point to point connection222associated with this same port.

It should be noted that the data packets coming from or intended for a point to point connection222are respectively transmitted by means of the network adapter224and bus228.

As depicted inFIG. 24, the means of receiving and sending a data packet transmitted by a connection222are respectively referenced241,251,261.

The means of receiving and sending a data packet intended for a connection222are for their part referenced respectively245,255,265.

The receiving and sending means241of the port of the first type240are identical to the receiving and sending means251and261of the respective ports of the first type250and260and are identical to the detailed depiction inFIG. 4of the first embodiment.

The receiving and sending means245of the port of the first type240are identical to the receiving and sending means255and265of the respective ports of the first type250and260and are identical to the detailed representation inFIG. 5acorresponding to the first embodiment.

As depicted inFIGS. 24 and 25, the port of the second type270,232also has on the one hand means of receiving and sending a data packet coming from the node itself and intended for a port of the first type and on the other hand means of receiving and sending a data packet coming from a port of the first type and intended for said port of the second type.

The means of receiving and sending a data packet coming from the port of the second type are referenced271.

The means of receiving and sending a data packet coming from a port of the first type are referenced276.

The detailed representation inFIG. 6of the receiving and sending means71of the intermediate port70ofFIG. 3a(first embodiment) is the same for the means denoted271in FIG.24.

The detailed representation inFIG. 7of the receiving and sending means76of the intermediate ports70ofFIG. 3a(first embodiment) is the same for the receiving and sending means denoted276in FIG.24.

Everything which has been described for the first embodiment of the invention concerning the transfer of data packets and the intervention of the management module in this transfer between one of the ports of the first type and an intermediate port and between the port of the second type and an intermediate port remains valid for this second embodiment since a transfer between a port of the first or second type and an intermediate port can be assimilated to a transfer between port of the first type and port of the second type.

The interface signals depicted inFIGS. 25 and 26of the second embodiment are the same as for the first embodiment and are used in the same way.

However, all the particularities of the first embodiment which are related to the presence of intermediate ports in the switching unit and to the selection of these intermediate ports when data packets are transferred are of course not repeated in this second embodiment, in which the switching unit does not have any intermediate ports.

FIG. 27depicts a detailed algorithm of the different steps implemented in the receiving and sending means241,251,261of the ports of the first type and in the receiving and sending means271of the port of the second type and, more particularly, in their header reading and processing means.

These reading and processing means have not been depicted since they are identical to those depicted inFIGS. 4 and 6of the first embodiment, namely respectively the reading and processing means of the header42(FIG. 4) and the reading and processing means of the header73(FIG.6).

This algorithm will now be described assuming that a data packet is received (step T1) by a port of the first or second type of the switching unit226.

After reception of this data packet, during a step T2, it is examined whether it is a case of a new data packet.

If it is not a new data packet, a further reception of a new data packet is awaited.

If it is a new data packet, step T2is followed by a step T3during which a first word of the header of the data packet under consideration is read.

It should be noted that, in this example, it is considered that a header is coded in one or two words (step T24), a word being able to be depicted by a byte.

Thus each destination port of a switching unit which the data packet is to encounter on its path is coded in two bits.

It should however be noted that such a coding of the identification data (header) enables the data packet to pass through five switching units counting the source switching unit and the destination switching unit.

As depicted inFIG. 27, step T3is followed by a step T4which specifies the modes of reading the first word or byte of the header.

Step T4makes provision for reading the bits denoted6and7in the header byte and is followed by a step T5during which a test is carried out on the value of these bits.

Where bits5and7take respectively the values1and1, then step T5is followed by a step T6.

The coding of such a header is depicted inFIG. 28aand means that the data packet under consideration must be switched according to a so-called broadcast switching type, said data packet then being sent to all the ports of the switching unit under consideration.

It should be noted that bits1to5of the header depicted inFIG. 28aare of course all at0since the data packet is routinely sent to all the ports of the switching unit.

Coding of the destination ports is therefore not necessary.

If it is not a case of switching by data packet broadcast, then it is a case of a so-called single sending switching also known as “unicast switching” and whose form of header is represented inFIG. 28b.

Step T5is then followed by step T7, during which bits0and1of the header under consideration are read.

The following step T8checks the value of these bits.

If it turns out that bits0and1are not both equal to 0, then step T8is followed by step T9during which the identification data which were used for coding the destination part of this data packet are processed and the data packet under consideration is then transferred to the destination port of the first type coded by bits0and1.

More particularly, this processing of the data consists of modifying them by replacing the value of bits0and1by zeros.

On the other hand, if bits0and1are both equal to 0, then step T8is followed by a step T10during which bits2and3of the header byte under consideration are read.

If it turns out that bits2and3are not both equal to the pair 00, then step T11is followed by a step T12.

During this step T12, the identification data of the destination port of this data packet are modified before sending the latter to said destination port of the first type of the switching unit.

More particularly, this processing consists of replacing the value of bits2and3with zeros.

If the test step T11on the other hand shows that bits2and3are both equal to 0, then said step is followed by a step T13during which bits4and5of the header byte under consideration are read.

The means of reading and processing of the header of the receiving and sending means of the port under consideration then carry out a test on the value of bits4and5of the header byte under consideration.

If it turns out that these bits are different from the pair 00, then step T14is followed by a step T15during which the identification data identifying the destination port of the data packet under consideration (represented by bits4and5) are then modified before said data packet is sent to said destination port of the first type of the switching unit.

More particularly, these bits4and5are replaced by zeros.

It should be noted that the steps of processing the identification data of the previous steps T9, T12and T15correspond in fact to a modification of said data and not to an elimination thereof.

If it turns out that bits4and5are equal to the pair 00, then step T14is followed by a step T16, during which bits6and7of the header byte under consideration are read. The purpose of this step is to determine the size of the identification data (header) of the data packet under consideration.

According to the value of bits6and7, the method according to the invention makes it possible to determine whether the header consists, for example, of one or two words or bytes (step T17).

If it turns out that bits6and7are both equal to 0 (“unicast switching”), this means that the data packet is intended for the port of the second type270.

Step T18is then followed by step T19, during which a processing of said identification data of the data packet under consideration is effected.

More particularly, this processing consists of eliminating the identification data (header) of the data packet under consideration.

The reading and processing means of the port under consideration can then perform a step T20.

During this step the aforementioned means request the transfer of the data packet received on the internal bus290by activating the signal Busreq and giving to the signal Portno the number of the destination port requested, namely, in the case which has just been described, the port270,232.

This request is then transferred over the communication bus290to the management module200, which then executes the algorithm depicted in FIG.16and more particularly step G1of this algorithm.

The description of this algorithm will not be repeated in the remainder of the description, since it is the same as for the first embodiment of the invention.

If bits6and7are different from the pair 00, then step T18is followed by a step T21during which it is checked whether bits6and7are equal to the pair 01.

In the affirmative, step T21is followed by a step T22during which the identification data corresponding to the first word of the header are deleted.

Step T22is followed by a step T23during which the reading and processing means of the port of the first type under consideration read the following word (second word of the header), and step T23is followed by step T7.

If bits6and7are not equal to the pair 01 then it is a case of an incorrect header.

Returning to step T17, if the identification data do not correspond to one word but to two words, then step T17is followed by a step T24.

Each word is for example represented in one byte.

FIG. 28cdepicts the coding of a data packet header in two bytes.

The reading and processing means of the port under consideration then perform a step T25during which it is examined whether bits6and7of the second byte are different from the pair 00.

In the affirmative, step T25is followed by a step T26during which the identification data corresponding to the second word of the header are processed by replacing the value of bits6and7with zeros.

It should be noted that the adapted processing consists here of modifying the header.

Step T26is then followed by a step T27during which the reading and processing means of the port under consideration write the second word of the header in the queue of the receiving and sending means of said port under consideration.

The data packet is intended for a port of the first type.

More precisely, the queue is for example the queue43of the receiving and sending means41which are depicted inFIG. 4of the first embodiment and which correspond to the port of the first type40(FIG. 3a).

Step T27is then followed by the previously described step T20for the request of transfer data over the internal communication bus290. The signal Busreq is activated and the signal Portno is allocated the number of the output port requested.

If the step T25shows, on the other hand, that bits6and7are both equal to 0, then it is followed by step T29and this means that the data packet is intended for the port of the second type.

In accordance with the following step T29, the identification data are then processed according to the results of steps T25and T28, and more precisely the identification data of the second header word are then deleted.

As shown byFIG. 27, step T29is then followed by step T20, which has already been described above.

FIG. 29illustrates the mechanism used for programming the switching unit26or140when the latter is, for example, produced by means of a programmable circuit of the family Altera or Xilinx.

As depicted in this figure, the programming of the switching unit26or140is for example effected by means of a downloading cable denoted180connected to a computer182by means of its serial or parallel port, depending on the type of technology used for producing the switching unit.

Use will for example be made of the JTAG technology, meaning “Joint Test Action Group”, for the downloading of the programming instructions in the form of data.

The programming of the switching unit26or140can also be carried out by loading the programming instructions in the form of data in a configuration memory184(FIG. 29) dedicated to this type of component and of the RAM or ROM or PROM type.

In such a case, on powering up, the data representing the programming instructions for the switching unit are downloaded into it in accordance with a protocol peculiar to the manufacturer of the programmable circuit in question.

The programming of the switching unit can also be effected by means of an input signal denoted186containing the programming instructions, and which is sent through a communication network (not shown) such as the Internet, and which is connected to a network adapter itself connected to the programmable switching unit.

Thus, whatever the programming mode used, the switching unit26or140according to the invention is programmed so as to function in accordance with the input programming instructions.