Phasing

Phasing staggers the time at which SAC scans your blocks. This is particularly important for large databases because it can dramatically improve performance. Even for small databases, phasing blocks results in more efficient use of CPU time.

For example, if you have 3 unphased blocks with a 5-second scan time, SAC processes all 3 blocks at the same time. The following figure shows the CPU usage when SAC processes these blocks simultaneously.

Processing Blocks Without Phasing

By phasing these blocks, you specify when SAC processes each block. For example, if you specify a 1-second phase for the first block, SAC scans the block as the following figure shows:

Phasing for Block 1

If you specify a 2-second phase for Block 2, and a 3-second phase for Block 3, you can avoid processing the blocks simultaneously and evenly distribute the block processing and the CPU work load, as the following figure shows.

Phasing Block Scan Times for Multiple Blocks

Phasing Second and Subsecond Blocks

Normally, when you specify a phase for a block with a second or subsecond scan time, SAC offsets the block's initial scan by the phase time when iFIX starts or when the database is reloaded. However, SAC ignores the phase when:

  • A Program or an Event Action block places the phased block on scan.
  • An operator or script places the block on scan.
  • An EDA program places the block on scan.

 

See Also