HP OpenVMS Systems

ask the wizard
Content starts here

OpenVMS system time, Alpha cycle counters?

» close window

The Question is:

 
How can I compare two UTC times?
 
(If I convert to internal time, and the times
I want to compare are across a daylight savings
time change, then will I get the correct
answer?)
 
Is the only option to use $NUMUTC and compare
the individual fields?
 
Also, on a related topic, what is the clock
resolution of the most recent EV6 based alphas?
Is VMS/Alpha still running w/ 10ms 'ticks' or
does it now vary according to Alpha clock speed,
as documented in various places.  If it varies
(and would then probably be less than 10ms,
then are there any plans to increase the
precision available from $NUMxxx since they
only go down to 10ms.
 
many thanks in advance,
/tom
 
 


The Answer is :

 
  As stated, comparing the results of a pair of sys$numutc system service
  calls would seem a reasonable approach.
 
  Alpha ticks occur at 1000 per second or more frequently -- this is a
  requirement of the Alpha Architecture.
 
  The retrieved system time and the ASCII format time operates with
  centisecond resolution on both OpenVMS VAX and OpenVMS Alpha.  There are
  no plans to alter the 64-bit time format or the standard text format time,
  due to the adverse effects this would have on existing software.
 
  The Alpha Architecture requires that Alpha systems implement process and
  system cycle counters, which can be useful in certain environments.
  (rpcc, rscc)  You will need to consult the Architecture manual for the
  format and use of the counter.
 
  An example of reading the process cycle counter (from C) follows:
 
#include [c_asm.h]
unsigned long cycles;
 
cycles = asm("rpcc %v0;"
             "sll  %v0, 32, %t1;"
             "addq %v0, %t1, %v0;"
             "srl  %v0, 32, %v0");
 
  Replace [ and ] with the equivilent angle brackets.
 

answer written or last revised on ( 19-JUL-1999 )

» close window