The Time of Day Register (TODR) is a 64-bit register with the following properties:
It is increased by the value 1 every microsecond in the range [bit 63, bit 12] and therefore functions as a clock.
It can be modified by the privileged Set Clock (SCK) instruction.
It can be read by the non-privileged Store Clock (STCK) instruction.
The width of the clock in the TODR also limits the size of the time span which can be displayed. BS2000 extends the time display in the TODR compatibly using the so-called epoch, see the section "TODR epoch".
The TODR is initialized during the first BS2000 IPL. With the default epoch 00, this has the same meaning as the value ”number of microseconds since 1900-01-01 00:00:00”. For other epoch designations, the TODR must be interpreted in accordance with the epoch in order to obtain a correct time value, see the section "TODR epoch".
On SU /390 Server Units, this initialization is repeated during each additional IPL.
On SU x86 Server Units, this initialization takes place only once. If a re-initialization of the TODR is necessary on SU x86, the Server Unit must be restarted in native mode, while under VM2000 the VM must be recreated (for example with /DELETE-VM and /CREATE-VM).
Virtual TODR on SU /390 under VM2000
The VM2000 firmware enables a separate virtual TODR to be maintained for each VM. The hardware TODR of the SU /390 is available only to the Hypervisor. All TODRs are clocked identically. The hardware context of a VM includes a VM-specific correction value of the virtual TODR relative to the hardware TODR.
On SU /390 the Hypervisor initializes the hardware TODR with the value “monitor time – 24 hours”.
Emulated TODR on SU x86
On SU x86, Set Clock and Store Clock are emulated by the firmware. The emulated TODR is clocked independently of the carrier system time. All VM2000 guest systems have their own virtual TODR.