Home
        Domino: Mark5B control software
         Contents
1.  time scheduled on the pro   cessor  For the main thread and spooler this usually is not a big prob   lem  small hick ups can be handled  On the other hand  iserver does  need to run every ae of a second at least once  as it needs to catch  every Begin Of Correlator Frame interrupt     As said there is no such guarantee  certainly when the data stream  needs to be decompressed as discussed in the previous section this  may become a problems  Yet during testing this has not been a prob   lem     Possible solutions would be to run Domino on a realtime kernel and  prioritize the iserver thread or to use a buffer to be able to handle  small hick ups     As hinted in Section 2  a scan for Domino is what at JIVE is considered  a  sub job  This means that every scan needs a new configuration of  Domino  Luckily scans that were recorded continuously on the disk  can be joined to be presented as one scan to Domino  However when  there is a jump in time in the data recorded on disk  a reconfiguration  is required  Such a reconfiguration would require about five seconds     This means that when a gap is as small as  say  ten seconds  we might  not be able to reconfigure quick enough for Domino to be ready at the  next scan   s start time     A possible solution would be to make a new subjob when such a sit   uation is about to happen  This would take quite some time  usually  more than two minutes  but then again  these situations do not occur  often  If this solution takes too much ope
2. Domino  Mark5B control software    Bob Eldering  Software Engineer JIVE    July 29th  2009    Contents   1 Introduction  2 Modules   3 Changes    4 Future work    1 Introduction    In the current correlator system  Mark5As play data to their Station  Units  SUs   The SUs apply the model to the data stream and forward  the data in Correlator Frames to the correlator  The Mark5B will re   place these two machine     Domino is the program responsible for driving the Mark5B in output  mode  The output mode has two sub modes     pure    VSI and SU emu   lation mode  As we want to replace the SU  we will  for now  only use  Domino in SU emulation mode     See the Mark5B user manual at http    www haystack mit edu tech   vlbi mark5 docs Mark 205B 20users 20manual pdf for details on  the operation and capabilities of the Mark5B  In this document we will  focus on the code of Domino and the changes that have been made to  make it work with the JIVE correlator system     2 Modules    Domino is composed of a number of modules     domino  the main module  it will call several initialize modules to  initialize both the StreamStor and the IO board  After initializing   it will go in an infinite loop calling handlers for several events  The  header file defines a few global utility functions and a big struct  which contains the global state     configurer  the code in this module is mainly responsible for prepar   ing the hardware components for a job  or scan in Domino termi   nology   It 
3. domino     These modules are running in three separate threads  The main thread  runs from the domino module  which simply calls sequencer   periodic_services and message_handler  The two helper threads that  are spawned run iserver and spooler     3 Changes    Domino has been written at Haystack  to make it work with the JIVE  correlator control system in general and eVLBI in particular  we had to  make some changes     e Domino assumed a UDP packet size equal to a Mark5B data frame   Transferring data with fixed packet sizes is detrimental for the  data stream  As what actually will happen is that the packets sent  to the network layer will be divided into smaller packets which fit  in the transfer used for that particular connection  This means  more header overhead than strictly required  An even more im   portant disadvantage is when those smaller packets are recon   structed to the original packets  As the transfer protocol used is  UDP  if any of the smaller packets is lost  the whole original packet  is lost  So splitting up packets will cause more data to be lost     This is one of the reasons most data sources we use do not comply  to the assumption that packets have the size of a data frame     So we have changed the software such that it does not require  data packets to be sized equal to data frames  Having this equality  did have the advantage that you can enforce the data header to  be at a fixed point in the data packet  The header is needed to  determine the 
4. mapping from the packet sequence number to the  time represented by the data samples  Therefore we now have to  search the data for this header  The burden on the processor to do    this is limited since we only have to find one header to establish  the mapping  The process of finding this header is executed before  any data is actually streamed to the IO board     Haystack and JIVE use the same correlator and SUs  However  they are controlled differently and the software on these machines  has grown apart over the years     The Correlator Frames that are made by the SUs contain a quadratic  model that should be applied by correlator  An error in the han   dling of this model was found at Haystack  The fix required changes  in both the Correlator Frame header and the correlator software   The details are described in http   www  haystack mit edu geo   mark4 memos 291 pdf     That document also briefly mentions that the Haystack correlator  runs at two Correlator Frames per second  Since the JIVE corre   lator runs at a much higher Correlator Frame rate  the problems  described are negligible for the JIVE correlator system  Therefore  these changes were not made to the JIVE system     However  Domino did have these changes as it was developed as  a replacement for the SUs at the Haystack correlator  This means  that the whole package module has been replaced by the corre   sponding code from the SU control software     As said the Mark5B is designed to replace the Mark5A disk 
5. play  back unit and the SU  Before the Mark5A was put into place  the  SU used to get its data from a tape play back unit  The system  of recording and playing back from tapes caused the data arriving  at the SU to be not quite 100  reliable  Therefore the SU has  been designed to be fault tolerant when it comes to its input data  stream     As disk play back is a lot more reliable  the Mark5B IO board has  been designed with a 100  reliable data stream in mind  Any  header that is not as expected will cause the job to be aborted     Unfortunately  an UDP data stream is not 100  reliable  any  packet may be lost  The Mark5B does support headers to be re   placed by a byte stream of pre determined invalid byte codes  so  we can replace packets lost with invalid marked bytes  According  to specification  if any byte in the header is marked invalid  the  whole of the data frame will be considered invalid  However  test   ing showed that when only half of the header is marked invalid   this will cause the IO board to throw a header error and the job to  be aborted  And even if none of the bytes are marked invalid  UDP  does not guarantee that the value of bytes are as the data source  has sent them     Since some data loss or corruption is bound to happen during  an eVLBI experiment  we have to check and repair those headers   This means that we have to keep track of what the headers should  look like and check all headers against these expected values  Any    time the check fail
6. rational time  it might be pos   sible to change Domino such that it can actually handle gaps in one  configuration     
7. s  we replace the complete header with bytes  marked as invalid     Another related problem is that the first header of the configured  job has to be a header with valid data  With disk based play back   you can just search for the first valid header in your data and  then configure the Mark5B to start play back from there  With  eVLBI this is not possible of course  Therefore we will compute  this header ourselves and insert it into the data stream  This does  mean that one data frame that might contain invalid data will be  considered valid unconditionally     Data rates collected by the Mark5B still have to be powers of two  Mbps  Quite a few stations have a 1Gbps connections to JIVE  The  power of two restriction would force them to send at a maximum  data rate of 512Mbps  wasting almost half of the connection   s ca   pacity    To fully utilize all connections we have developed an algorithm  that will compress a data packet by throwing away certain bit   streams  Bits from the bitstreams we want to keep  that occupy  the bytes at the end of a packet will be moved to the bit posi   tions in the beginning of the packet corresponding to bitstreams  we want to throw away  At the receiving side these packets need to  be decompressed  which means restoring the bits to their original  positions in the packet  This feature has been added to Domino     4 Future work    As said in Section 2  Domino has three threads  However none of these  threads are in any way guaranteed to have
8. will configure the StreamStor  the IO board and setup  sockets when realtime play back is used     iserver  handles ROT clock messages and hardware interrupts   These hardware interrupt include       ROT clock ticks to start the internal ROT clock      Correlator Frame interrupts  iserver will prepare a Correlator  Frame and update the internal ROT clock when these inter   rupts arrive       Phase Calibration interrupts will make iserver update the global  Phase Calibrator accumulator tables     package  creates the Correlator Frame headers  See the next sec   tion for more information     periodic_services  keeps track of state of the Mark5B and reports  to whichever program has signed itself up for periodic state mes   sages     e sequencer  the control architecture of domino is focused around  a state machine for each command  Sequencer is the module that  runs these state machines     For the realtime command it writes data from the software buffer  to the StreamStor     spooler  this module   s task is to collect data from the socket and  write it in the appropriate place in the software buffer  As men   tioned  sequencer will forward the data from this buffer to the  StreamStor     message_handler  this module will receive message from the cor   relator control system and set the state machine such that se   quencer will handle it from there  See http   www  jive nl    jive_cc sin sinl6 pdf for details on how messages are sent  between the correlator control system and 
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
IRWIN 10506544  EDGE® 800 - Tramsoft    ROタイプ ふたの開閉操作説明書  高速 - オリンパス  PCI-1710U Series User Manual  Sony VPCL135FX/B Quick Start Manual  取扱説明書  取扱説明書 - LIXIL  Basis  - Praxis EDV    Copyright © All rights reserved. 
   Failed to retrieve file