Das Time-of-Day-Register (TODR) ist ein 64 Bit breites Register mit folgenden Eigenschaften:
Es wird im Bereich [Bit 63, Bit 12] pro Mikrosekunde um den Wert 1 erhöht und realisiert damit eine Uhr.
Es kann durch den privilegierten Befehl Set Clock (SCK) geändert werden.
Es kann durch den nichtprivilegierten Befehl Store Clock (STCK) gelesen werden.
Durch die Breite der Uhr im TODR ist auch die Größe der darstellbaren Zeitspanne begrenzt. BS2000 erweitert die Zeitdarstellung im TODR kompatibel durch so genannte Epochen, siehe Abschnitt „TODR-Epochen".
Während des ersten BS2000-IPL wird das TODR initialisiert. In der Standard-Epoche ist dies gleichbedeutend mit dem Wert „Anzahl Mikrosekunden seit 1.1.1900 00:00:00“. Für andere Epochen muss das TODR gemäß der Epoche interpretiert werden, um einen korrekten Zeitwert zu erhalten, siehe Abschnitt „TODR-Epochen".
Auf SU /390 wird diese Initialisierung bei jedem weiteren IPL wiederholt.
Auf SU x86 findet diese Initialisierung nur einmalig statt. Sollte auf SU x86 eine erneute Initialisierung des TODR notwendig sein, muss dazu im Native-Betrieb die Server Unit neu gestartet werden, während unter VM2000 die VM neu erzeugt werden muss (z.B. mit /DELETE-VM und /CREATE-VM).
Virtuelles TODR auf SU /390 unter VM2000
Die VM2000-Firmware erlaubt, für jede VM ein eigenes virtuelles TODR zu führen.
Das HW-TODR der SU /390 steht nur dem Hypervisor zur Verfügung. Alle TODRs takten gleich. Zum HW-Kontext einer VM gehört ein VM-spezifischer Korrekturwert des virtuellen TODR gegenüber dem HW-TODR.
Der Hypervisor initialisiert bei SU /390 das HW-TODR mit dem Wert
„Monitorzeit – 24 Stunden“.
Emuliertes TODR auf SU x86
Auf SU x86 werden Set Clock und Store Clock von der Firmware emuliert. Das emulierte TODR taktet unabhängig von der Zeit des Trägersystems.
Alle VM2000-Gastsysteme haben ein eigenes virtuelles TODR.