A SpaceWire router enables more sophisticated architectures to be implemented when required. A basic router-based architecture is illustrated in Figure 8.

Basic Router-Based Architecture

Figure 8 Basic Router-Based Architecture

The SpaceWire router interconnects all of the SpaceWire units. It is then possible for any unit to send data or receive data from another unit. The two instruments can send data to the memory unit, the processor unit can read data from the memory unit for checking or processing, and the processor can control the two instruments and memory unit.

The advantages of this type of architecture are:

  • Versatile architecture
  • All units can talk to one another through router
  • Control and data can be sent over network
  • Control flow is generally opposite direction to data flow

The disadvantages are:

  • Have to be aware of potential blocking in router – need to consider traffic on network
  • Router is potential single point failure
  • Additional power consumption of router

The possible blocking of a router can occur if, for example, the two instruments both decide to send data to the memory unit at the same time. Since the router only has one link to the memory unit, only one instrument can send a packet down this link at a time. If the packet from instrument 1 gets there first it will be sent, but the packet from instrument 2 will be blocked until the packet from instrument 1 has been sent. If the packet from instrument 1 is large then instrument 2 may have to wait for a long time. This is illustrated in Figure 9.

Blocking in a Router

Figure 9 Blocking in a Router

Instrument 1 is sending a packet (shown in green) to the memory unit. Instrument 2 also wants to send a packet (blue) to the memory unit, but since the link from the router to the memory unit is already being used this packet is blocked within the router. Only when the packet from instrument 1 has finished being sent, will the packet from instrument 2 be able to proceed on its way to the memory unit. This characteristic of a SpaceWire network is known as “blocking” and is an important characteristic to understand.

There are several ways to avoid this situation. If the required total data rate from the two instruments is larger than can be provided by a single SpaceWire link then a second link is required between the router and memory, possibly using group adaptive routing, which will provide graceful degradation in the event of a failure of one link. If the total data rate from the two instruments is less than the data rate of a single SpaceWire link then the router can act as a concentrator permitting a packet from say instrument 1 first, followed by a packet from instrument 2. In this case the amount of data buffering in the instruments will depend upon the size of the packets being sent. Hence, it makes sense to use short packets rather than long ones to reduce the amount of buffer memory required. Another alternative is for the memory (or processor) to control when an instrument is allowed to send data. For example, the memory could request data from instrument 1 and once this has been received it could request data from instrument 2. There are many possibilities: SpaceWire is flexible enough to support the requirements of different types of mission.

It should be noted that since the router uses wormhole routing and does not support packet buffering in the router, the speed of all the SpaceWire links attached to a router should normally all be set to the same rate.

Typical applications for this type of architecture include payload data-handling systems with more than one instrument or multiple possible destinations for data from an instrument. The potential single point failure of the router can be avoided by including a second router connected to all the units.

Figure 10 shows a prime and redundant pair of routers which have been included in prime and redundant data handling units together with the mass memory and processing units. This provides router redundancy while reducing the lengths (and hence mass) of the SpaceWire links.

Router in Data-Handling Unit

Figure 10 Router in Data-Handling Unit

The advantages of this type of architecture are:

  • Supports multiplexing of several instruments
  • Supports prime/redundant instruments
  • No single point failures
  • Lower mass penalty of links since several links embedded in data-handling units

The disadvantages are:

  • Have to be aware of potential blocking in router – need to consider traffic on network
  • Additional power consumption of router.

This type of architecture is ideal when a redundant data handling system is required.