System Monitoring and Communication Profile
The SMAC includes a time-keeping circuit that is used for synchronizing time across the entire payload. The timekeeping process has two components: receipt of the time value for the next epoch, and synchronization to a timing pulse.
The receipt of time value occurs over the network. The time value is stored in holding registers until the synchronization pulse is received. Upon being triggered by the synchronization pulse, the time being stored in the holding registers becomes the current time. This time should be delivered to the processing logic as well, either through the network or via discrete lines indicating the current time.
The timing pulse may either be a discrete signal when high accuracy is desired, or may come in the form of a network message. In particular, SpaceWire has a high-priority timecode character that works well for this purpose. Network-based synchronization will incur additional jitter between nodes and should only be used when a small amount of timing jitter would not adversely affect the system or its mission. Application requirements will dictate the timing implementation for the system based on the required timing accuracy.
More information on time synchronization is included in the Communication Specification.