VME in CMS

Printable (html)
Printable  (pdf)
1 Introduction
2 VME64x in CMS
3 VMEBridges
    3.1 CAEN
    3.2 SBS
        3.2.1 Drivers
        3.2.2 Old Drivers (SLC3)
        3.2.3 Measurements

Performance Measurements

The VME Hardware was a optical VME bridge from SBS (Model620) and a RAMix139 VME memory (32Mb). The PC was a PIII 800 MHz PC running Linux with a 2.4.x kernel. The measurements have been carried out with
  • SBS driver and user library version v2p3p0

All measurements used the HAL library(version ver-03-05-test-04).

Performance for single accesses

This test was made running the "PerformanceTester" application contained in the HAL examples. It has been run one time with the dummy BusAdapter and one time with the BusAdapter for the VME Bridge. This allows to subtract the overhead due to the HAL library itself.

Results using the VMEDummyBusAdapter


===============================================================================
ATTENTION ==> the measured time values do not measure the process time but
              the total time elapsed during the measurement (laboratory-time)
              So, in order to get meaningfull measurements,  be sure not to  
              have other active processes on your machine.
===============================================================================


(TimeoutException) Timeout during polling the item "rwFlagMask"
      1000ms have passed wheras the timeout has been set to 1000ms
      3680000 polls have been carried out
      (HardwareDevice::pollItem)

read                      r/w-item with full mask : 2.57833us
read           r/w-item with full mask and offset : 2.95839us
write                     r/w-item with full mask : 2.99179us
write          r/w-item with full mask and offset : 3.42508us
read                        r-item with full mask : 2.53569us
read             r-item with full mask and offset : 2.91862us
write                       w-item with full mask : 2.66218us
write             w-item with full mask and offset: 3.07601us
unmaskedRead              r/w-item with full mask : 2.66056us
unmaskedRead   r/w-item with full mask and offset : 2.90977us
unmaskedWrite             r/w-item with full mask : 2.65765us
unmaskedWrite  r/w-item with full mask and offset : 2.92356us
setBit                    r/w-item with 1bit mask : 3.26963us
setBit         r/w-item with 1bit mask and offset : 3.71627us
resetBit                  r/w-item with 1bit mask : 3.26833us
resetBit       r/w-item with 1bit mask and offset : 3.69591us
setBit                      w-item with 1bit mask : 2.95803us
setBit           w-item with 1bit mask and offset : 3.35657us
resetBit                    w-item with 1bit mask : 2.85544us
resetBit         w-item with 1bit mask and offset : 3.37863us
===============================================================================

Results using the SBS620LinuxPCIBusAdapter

Remarks:
  • The items which need significant more time involve two VME accesses. (This is documented in the HAL documentation).
  • In principle the SBS allows to map the VME Devices of the crate into memory. In this case single accesses can be performed much faster. However this technique has significant disadvantages for the software design. It is much harder to write a VMEBusAdapter for the HAL using memory mapping which works for an arbitrary crate configuration. Since there was no urgent need to improve the performance for single word VME accesses, such a busadapter has not been written.

===============================================================================
ATTENTION ==> the measured time values do not measure the process time but
              the total time elapsed during the measurement (laboratory-time)
              So, in order to get meaningfull measurements,  be sure not to  
              have other active processes on your machine.
===============================================================================



read                      r/w-item with full mask : 18.6139us
read           r/w-item with full mask and offset : 19.0851us
write                     r/w-item with full mask : 33.4937us
write          r/w-item with full mask and offset : 34.2225us
read                        r-item with full mask : 18.7048us
read             r-item with full mask and offset : 19.2273us
write                       w-item with full mask : 18.5893us
write             w-item with full mask and offset: 18.9426us
unmaskedRead              r/w-item with full mask : 19.1327us
unmaskedRead   r/w-item with full mask and offset : 19.5662us
unmaskedWrite             r/w-item with full mask : 18.4104us
unmaskedWrite  r/w-item with full mask and offset : 19.0731us
setBit                    r/w-item with 1bit mask : 34.2165us
setBit         r/w-item with 1bit mask and offset : 34.5748us
resetBit                  r/w-item with 1bit mask : 33.7547us
resetBit       r/w-item with 1bit mask and offset : 34.6076us
setBit                      w-item with 1bit mask : 18.9606us
setBit           w-item with 1bit mask and offset : 19.556us
resetBit                    w-item with 1bit mask : 18.6855us
resetBit         w-item with 1bit mask and offset : 19.2885us
===============================================================================

Performance for Block Transfers

Measurement conditions:
  • The measurements exclusively measure the block transfer performance of the VME bridge.
  • Data blocks have been transferred for different sizes from the host via the VME bridge to the memory module and vice versa. The data has been generated with a random generator.
  • The size of the data blocks has been varied from 256 bytes to 32Mb. Altogether 12 blocksizes where chosen. The data read back was always verified against the data previously written. No data error has been observed.
  • The measurement at each data point was repeated 100 times. The mean values of the resulting transfer rates are summarized in the colored plot below.
  • Additional plots have been produced, in order to show the distribution of the data throughput for the 100 measurements taken for at each block-size.

Results

Read and write performance as a function of the block size.

Read / Write Block Transfer of optical SBS bridge with HAL


Distribution of read throughput for fixed block sizes (100 Measurements).

Read Block Transfer performance distribution for fixed blocksize of optical SBS bridge with HAL
Read Block Transfer performance distribution for fixed blocksize of optical SBS bridge with HAL


Distribution of write throughput for fixed block sizes (100 Measurements).

Write Block Transfer performance distribution for fixed blocksize of optical SBS bridge with HAL
Write Block Transfer performance distribution for fixed blocksize of optical SBS bridge with HAL

last changed: 2012-10-02 comments to: Christoph Schwick