180 likes | 372 Views
Distributed Interrupts for Real-Time Control in SpaceWire-Based On-Board Systems. Yuriy Sheynin, Sergey Gorbachev St. Petersburg State University of Aerospace Instrumentation Institute of High-Performance Computer and Network Technologies sheynin@aanet.ru.
E N D
Distributed Interrupts for Real-Time Control in SpaceWire-Based On-Board Systems Yuriy Sheynin, Sergey GorbachevSt. Petersburg State University of Aerospace Instrumentation Institute of High-Performance Computer and Network Technologies sheynin@aanet.ru 2006 MAPLD International Conference Washington, D.C. September 25, 2006
Towards integral interconnection infrastructure for onboard systems Modern satellite and spacecraft distributed on-board systems have several (3-5) separate interconnections for different types of information and signals: • sensor busesfor data streams from sensors and instruments • command busesfor commands from controlunits to instruments and spacecraft equipment • telemetry bussesfor telemetry data • data busesfor data exchange between computing modules in the course of data and signal processing • time synchronization busesfor on-board clock synchronization • sideband signalsfor hard real-time signaling and control Next generation modular spacecraft avionics should move towards integral interconnection infrastructure SpaceWire is a candidate technology for such integral on-board interconnections
Time codes distribution is a SpaceWire advantage • The time codes distribution is a SpaceWire feature to substitute sideband signals for distributed systems clock synchronization. It is a clear advantage of the SpaceWire over other interconnection standards • Other signals, besides the time codes, are needed also to be distributed in SpaceWire-based interconnections • It is important to have them at the low protocol layer, in order to get high priority distribution, minimum latencies, to traverse blocked by data links, etc.It is ensured for time codes. Should be ensured for other signals also.
Sideband signals into SpaceWire core interconnection • Distributed on-board real-time systems need some signals (e.g., interrupts) distribution. • Sideband signal lines are used in previous generation on-board architectures • The trend in modern interconnections exclude sideband signals, include transfer of events, interrupts, etc. in the core interconnection itself, in its protocols;PCI Express is a good example • The SpaceWire also needs adequate means for substitution of sideband signals by its core interconnection means for signal distribution
The questions : • How many different signals? • What should be a mechanism for them? • How it correlates with the current and future SpaceWire standard releases? • To be aware: how it correlates with existing already SpaceWire implementations.
Distributed Interrupts mechanism in SpaceWire Proposal for next SpaceWire standard release: • Up to 64 different signals • Fits in the current SpaceWire character coding format • Leaves a space in the character coding format for further extension • Different, to the time-codes, mechanism for signal distribution:The reason: to have compact implementations for a mechanism that can support dozens of different signals running simultaneously in an interconnection • Do not violate fixed part of the SpaceWire standard,do not cause conflicts with existing SpaceWire standard compliant implementations
0 1 1 0 1 0 0 1 T2 I2 E2 I2 T3 I3 I3 E3 I4 I4 E4 T4 E5 I5 I5 T5 P P P P P 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 P 1 0 0 Distributed Interrupts and Signals “Time-codes”extensions – Usage of Control Flags(bits T6 and T7 of Time codes) a) ESC+L-char NULL=ESC+FCT b) ESC + N-Char T6 T7 Time-code 1 0 T0 T1 Interrupt-code I0 I1 1 0 Poll-code 1 0 I0 I1 Extension-code(reserved) 1 0 E0 E1
INTR_INsignal Link controller SpaceWire link 64-bit interrupt source register (ISR) Poll_OUT signal Interrupt in Master node Poll code 15h Interrupt 15h request Host Interrupt Code 15h Interrupt 15h reset 0000…0…000 21st bit 1
Poll_INsignal Link controller SpaceWire link 64-bit interrupt source register (ISR) 0000…0…000 INTR_OUT signal 21st bit Interrupt code in Targetnode Poll 15h request Interrupt code 15 h Host Poll Code 15h Interrupt 15h 1
INTR_IN signal INTR_IN signal Interrupt Code 15h Link controller j Link controller k 64-bit interrupt source register (ISR) INTR_INsignal SpaceWire link SpaceWire link SpaceWire link Link controller i Interrupt Code 15h 0000…0…000 INTR_OUT signal 21st bit Interrupt codein a Router node (‘0’ in ISR) Interrupt code 15 h Interrupt 15h Interrupt 15h 1
INTR_IN signal INTR_IN signal Link controller k Link controller j 64-bit interrupt source register (ISR) INTR_INsignal SpaceWire link SpaceWire link SpaceWire link Link controller i 0000…1…000 INTR_OUT signal 21st bit( 15h ) Interrupt codeprocessing in a Router node(‘1’ in ISR) Interrupt code 15 h
Link controller j SpaceWirelink Poll_IN signal Poll Code 15h 64-bit interrupt source register (ISR) Poll_INsignal SpaceWirelink Link controller i Link controller k SpaceWirelink Poll_IN signal Poll Code 15h 0000…0…000 Poll_OUT signal 21st bit Poll codeprocessing in a Router node (‘1’ in ISR) Poll code 15 h Poll 15h Poll 15h 1
Poll_IN signal Poll_IN signal Poll Code 15h Link controller j Link controller k 64-bit interrupt source register (ISR) Poll_INsignal SpaceWire link SpaceWire link SpaceWire link Link controller i Poll Code 15h 0000…0…000 Poll_OUT signal 21st bit Poll codein a Router node (‘0’) Poll code 15 h Poll 15h Poll 15h
I=60h I=60h Router 2 Node 82 Master Node 60 Slave Interrupt-code: interrupt request. IRQ vector I=60h Router 1 Router 3 Node 64 Slave Node 74 Master • Poll-code: polling interrupt source status. • Packet: sending interrupt request source status.
Interrupt/Poll codes do not cause conflicts with existing SpaceWire standard compliant implementations Interrupt/Poll codes are in conflict with Multi-Time codes So,… To have an interoperability • Modes of operation, set in the Configuration: either Interrupt/Poll codes, or Multi-Time codes.(also PCI <-> PCI-X compatibility is an example of the approach) • Not include in the SpaceWire standard neither Interrupt/Poll codes, nor Multi-Time codes.Treat them both as Logical (virtual) Sideband signals • NASA Multi-Time codes • RFSA Interrupt/Poll codes • Tunneling of “alternative” through the both type routers To study carefully both Interrupt/Poll codes and Multi-Time codes specifications. Investigate particular level of their interoperability /non-interoperability.
Interrupt/Poll codes in SpaceWire. Conclusion • Former sideband signals, like interrupts, are integrated into SpaceWire interconnections • Up to 64 different signals can be distributed in an interconnection simultaneously • Interrupt/Poll codes are specified at the Symbol level. They have high priority for transmission and switching (next to Time codes) • Interrupt/Poll codes are distributed regardless of data transmission, cutting into data symbols flow at any link – idle, busy, blocked for data • Interrupt/Poll codes ensure low latency distribution. Latency boundaries can be estimated for a SpaceWire interconnection topology • Interrupt/Poll codes do not cause conflicts with existing SpaceWire standard and compliant with it implementations • Interrupt/Poll codes are implemented in our ASIC and FPGA SpaceWire implementation