next up previous contents
Next: The high level programs Up: The software layout Previous: The software layout   Contents

The low level programs

There are three low level components of the package that establish communications with correlator.
  1. The data collector.
    As stated above each MAC racks passes data over a separate channel, therefore, this low level software, the data collector, accepts the data from three channels. Each MAC rack is composed of $11 \times 16$ MAC chips each of which gives out 256 complex numbers per STA cycle. Each complex number is coded in 32 bits, i.e. two 16 bit real numbers. Each MAC chip has two buffers; one is used for accumulating the incoming data over a STA cycle, and another is used for transmitting data accumulated during the previous STA cycle. Therefore, one MAC rack outputs $11\times 16 \times 256 \times 4~~ {\rm bytes} = 176$ KB of data per STA cycle. One of the bits of the 16 bit word is reserved to indicate the beginning of a fresh STA cycle.

    We use a custom made PCI bus based interface card to input this data. The interface card has four ports, one of which is unused. These ports are 16 bits wide data ports with separate control lines. Three of the ports are configured to accept the data on an independent external clock. The interface card has total 64/128 KB total memory, which is equally distributed among the 4 ports. Three ports are configured for streaming mode operation, where the 16/32 KB memory for a port is divided into two halves, such that when one half is full, an interrupt is generated for the host computer's CPU for transferring this data into the memory of the computer. While this transfer continues from one half of the data, the external data continues to fill the other half of the memory for each port. This process continues endlessly.

    The user level software programs are expected to process the data at this rate on the average. This low level program receives the data from all the three channels and stores them in separate local buffers. For every block of data corresponding to the half of port memory (8 KB/16 KB, depending on the port memory size), the PC time is noted. This time corresponds to the end of the block of data just arrived, and can also be thought of as the time corresponding to the beginning of the next data block. This time will be used for time stamping of data by the next level software referred to as `acq' in Figure 26.3.

    The low level program makes no effort to look inside the data buffers and synchronize three streams into one logical stream.

    The data collector stores a good fraction of a second's worth of data in three separate circular buffers. Hence it is highly unlikely that the higher level program `acq' (even if it is temporarily busy elsewhere) will be unable to drain out this data before the buffers overflow.

  2. GPS and STA interrupt server.
    The GPS minute pulse, and the STA clock edge are used to generate interrupts to the host processor. When an interrupt occurs, the interrupt server program notes down the PC time and maintains a list of last few such times. On request from the higher level programs, the interrupt server simply supplies this list (for the GPS or STA interrupts, as requested). For both STA and GPS the time interval between two successive interrupts should in normal circumstances be a fixed constant, and therefore, the interrupt server can optionally be requested to build statistics on time intervals at which the interrupted occurred and attempt to interpolate over temporary glitches. Note that as discussed further below the PC time noted by the interrupt server could in principle be wrong for a variety of reasons. These errors need to be recognized and corrected for by the higher level programs.
  3. Multi link communication server.
    This low level program communicates with the correlator through a home made custom communication protocol. It is primarily used for configuring the correlator. A higher level correlator configurator program sends and receives data through this low level program.


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