Initial device detection is performed by USB hubs. When a device is connected to a downstream port of a hub, it changes the data line level which is detected by the hub, stored, and signaled to the host. The host then communicates with the hub to perform further initialisation of the device. Once that is finished, the host can communicate directly with the device.
When switching a PC on it works the same way. Once the hub is powered, it will enable power on the USB lines which will let attached devices power up and register at the hub. The host then queries the hub for attached devices and start further initialisation.
At power up the initial setup is not performed by the operating ystem but by the BIOS (e.g. to allow changing BIOS options using USB keyboards and mice).
The operating system will later upon starting communicate with all hubs sending a reset commands to trigger re-initialisation for every device already connected.
Such reset can be done anytime (re-scan USB devices).
There is no specific timestamp register. It is up to the software controlling the host (BIOS and operating system) to store times of events.
See also
USB.org - Documents[
^] and
USB in a NutShell - Chapter 1 - Introduction[
^] .