next up previous contents
Next: The peripheral programs on Up: The software layout Previous: The low level programs   Contents

The high level programs

There are three high level processes that run on the correlator host computer which are responsible for the real time processing of the data as well as correlator control.

  1. The acquisition center, the `acq' program.
    This program has three major responsibilities.
    1. It acquires the data from the data collector, and looks for the STA cycle markers described above.
    2. It still maintains the data in three separate streams, but marks each data block in each stream with a sequence number. The sequence number is derived from the time noted as the beginning of STA cycle for that block. This basically synchronizes the three streams.
    3. The program places the data (in three separate circular buffers), and also considerable book keeping information in a common memory resource (shared memory). This shared memory can be accessed by other programs for further real time processing. Note that more than one program can simultaneously read the shared memory, but only one program, viz. `acq' can write to the shared memory.

  2. The correlator configurator, the `corr_config/fstop' program.
    This program is has two main functions
    1. To initialize the embedded correlator controller cards and prepares them for the specified observation mode.
    2. To periodically set the model values (delay, fringe stop, FSTC). The delay value is transmitted to the Delay section of the correlator and the fringe stop and FSTC to the FFT section.

    The current model values have to be down loaded to the embedded systems at a time and in a manner such that the normal workings of those systems are not affected. Further the protocol should be such that higher level program must know in advance at what instant of time these new values will be made effective by the low level software. For this purpose, two basic norms are followed.

    1. The model values are down loaded at times which are not close to the beginning of a new STA cycle. At the start of an STA cycle the embedded systems have several time critical tasks to perform.
    2. The embedded systems are initialized with a STA cycle sequence number. This sequence number is incremented by all the embedded systems at the start of new STA cycle, so that all the embedded systems are properly synchronized. When model values are down loaded, the configurator also passes the STA sequence number at which these values are to be effected. The activity across all the components of correlator are hence synchronized. The protocol takes into account the fact that erroneous conditions which require corrective action could arise.

  3. The acquisition manager, the `acqhost / acq30' program.
    This program (which is the the central program) receives interactive commands on one side (i.e. over the network) and on the other side (i.e. the correlator host computer and the correlator's embedded systems) controls all activities much like a band master. It is the responsibility of this program to continuously ensure the logical coherence of the observation.

    When `acq30' is started, it scans a set of files (that could also be specified via user commands) that describe the correlator hardware configuration. These files contain information such as what are the coordinates of the antennas, which antenna is connected to which samplers, which samplers is connected to which FFT pipeline, and which FFT pipelines are connected to which MAC chips. From this information `acq30' builds a complete mapping of all the connectivities in the correlator. `acq30' reads the data from the shared memory created by `acq'. Recall that in this shared memory one has 'raw' data, i.e. the data is organized into three streams (one per rack) and in each stream the ordering depends on the ordering of the MAC chips in that rack. `acq30' merges these three streams into one stream using the sequence number information planted in each data block by `acq' (see above). Further it also notes the common IST arrival time of the data corresponding to a given STA sequence. It was originally intended that the merging of the three streams of data into one stream would be effected by the embedded software of the correlator, but this was not realized. Once the data has been merged into one stream, `acq30' uses its knowledge of the correlator connectivity, to determine which piece of the data corresponds to which antennas, and which samplers, and which FFT pipelines. The `acq30' program however has no way of determining whether the specific antennas whose data is being read are all pointing to the specified source or not. `acq30' simply trusts that when a scan is started (see below) the antennas are pointing at the specified source. Given the source position and the antenna co-ordinates, `acq30' computes the appropriate delay, fringe stop and FSTC values. The calculation of such quantities for a given point of time is referred to as `model calculation', and the values as `model parameters' or `model values'. For as long as a given scan continues, `acq30' computes the model parameters periodically and sends them to the appropriate program (corr_config/fstop) to be set. From its mapping of antennas to samplers to FFT pipelines, `acq30' can determining which delay value to send to which delay control card etc.

    `acq30' also converts the data format from the `MAC format' described above (i.e. 4 bytes for each complex word) to the IEEE standard floating point format. The Long Term Accumulation (LTA) is also performed by this program. The observer specifies the number of STA cycles for which the data should be further summed before recording. This summation is carried out at the same point as the conversion to IEEE floating point format. After performing LTA `acq30' sends the resulting data on the network to a separate program `collect' which runs on another computer (the `Data Recording Host' in Figure 26.2). `collect' makes this data available to other monitoring and recording programs.

    `acq30' accepts (and passes on to down stream programs) several user commands, of which the four major ones are:

    1. Init:Initiate an observation session. During initialization time parameters which will remain constant during the observation session (eg. the bandwidth, the polarization mode, the number of channels to record, which antennas to record etc.) have to be specified.
    2. StartScan: Start a scan on a specified source. Required parameters include source position, observing frequency, observer's name etc.
    3. StopScan: This indicates the end of the present scan. At this stage one can start a new scan on the same or different source using the `StartScan' command.
    4. End Close the observation session. On receiving this command `acq30' informs all other dependent programs to shut down and then shuts itself down.


next up previous contents
Next: The peripheral programs on Up: The software layout Previous: The low level programs   Contents
NCRA-TIFR