Fact-checked by Grok 2 weeks ago

Time Stamp Counter

The Time Stamp Counter (TSC) is a 64-bit embedded in x86 processors that increments once per processor clock cycle, serving as a high-resolution mechanism for measuring elapsed CPU cycles since the last reset. Introduced by in the processor in 1993, the TSC is accessible via the RDTSC (Read Time-Stamp Counter) , which provides low-latency reads typically in the range of tens to hundreds of cycles, making it suitable for precise and . Subsequent enhancements have addressed early limitations of the TSC, such as variability in clock frequency due to power management features like or . Starting with processors like 's Nehalem architecture (e.g., Core i7 in 2008), the invariant TSC was introduced, ensuring the counter maintains a constant rate independent of CPU , C-states (idle modes), or T-states (throttling), while remaining synchronized across cores and sockets when sourced from the same clock. This invariance is achieved through dedicated hardware like the Always Running Timer (ART) on modern CPUs, which derives the TSC from a stable crystal clock frequency. The TSC's primary applications include micro-benchmarking, latency measurements, and tasks where sub-microsecond precision is required, often outperforming software timers like gettimeofday() in overhead. However, its per-core nature can lead to desynchronization in multi-processor systems if threads migrate between CPUs, and it may halt or drift in virtualized environments without proper host support. To mitigate these issues, operating systems like and Windows provide abstractions such as QueryPerformanceCounter, which may calibrate or fallback to invariant TSC when available. Calibration is recommended to account for frequency offsets, which are limited to ±50 parts per million () in compliant implementations.

Introduction

Definition and Purpose

The Time Stamp Counter (TSC) is a 64-bit in x86 that serves as a high-resolution of clock . It monotonically increments by one for each clock , operating at the core frequency, and initializes to zero upon or hardware reset, but remains unaffected by software-initiated resets like . This design provides a consistent, cycle-accurate timestamp that begins counting from processor initialization. Introduced with the Pentium processor in 1993, the TSC was developed as a dedicated hardware feature to facilitate cycle-accurate and precise timing in software applications. Its primary purpose is to enable accurate measurement of execution time in terms of CPU cycles, supporting tasks such as performance analysis, timing, and synchronization between software events without dependence on external timers or interrupts. By capturing elapsed cycles directly from the processor , the TSC allows developers to profile code efficiency and debug timing-sensitive operations with minimal overhead. Key advantages of the TSC include its low-latency access through a dedicated single instruction, achieving near-instantaneous reads without involving I/O ports or activity. On modern processors operating at GHz frequencies, it delivers sub-nanosecond — for instance, at 3 GHz, each increment corresponds to approximately 0.333 nanoseconds—making it suitable for fine-grained timing in . Additionally, its independence from external clocks ensures reliability in isolated core operations, though synchronization across multi-core systems requires careful consideration.

Historical Development

The Time Stamp Counter (TSC) debuted in Intel's , introduced on March 22, 1993, as a 64-bit register designed to provide precise internal timing by counting CPU cycles since reset, addressing the limitations of earlier x86 timing mechanisms that lacked high-resolution cycle-level accuracy. This feature was accessible via the RDTSC instruction, initially documented in Appendix H of the Pentium processor manuals, enabling software developers to measure execution times with nanosecond-level granularity on the original 60-66 MHz models. Early implementations of the TSC faced significant challenges, particularly in multi-processor and emerging multi-core systems before the , where counters across processors were not synchronized, leading to discrepancies when threads migrated between cores. Additionally, the TSC rate varied with CPU in power-saving modes, such as those introduced with dynamic clock throttling, causing inconsistent ticking and unreliable timing for applications sensitive to . These issues limited the TSC's utility in (SMP) environments until architectural mitigations were developed. The Pentium Pro processor was released in November 1995. A major milestone came with the Nehalem microarchitecture in 2008, which introduced the constant-rate TSC, ensuring the counter incremented at a fixed rate tied to the processor's nominal frequency, independent of turbo boosting or power-saving frequency adjustments. AMD introduced invariant TSC support with its Family 10h processors (Barcelona) in 2007, guaranteeing consistent ticking across all power management states, including P-states and C-states, to resolve frequency scaling inconsistencies observed in prior K8 architectures. The full realization of 64-bit TSC access occurred in the early 2000s through AMD64 (introduced 2003) and Intel 64 (EM64T, 2004), extending the register's readability into 64-bit modes for larger address spaces and long-running timestamps without overflow concerns in extended precision applications. More recently, AMD added SecureTSC in processors supporting Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP), starting with the EPYC 7003 series in 2021 and refined through 2024, providing a trusted, tamper-resistant timing source for virtual machines by protecting TSC reads from hypervisor interference.

Technical Operation

Mechanism and Access Methods

The Time Stamp Counter (TSC) is a 64-bit that serves as a high-resolution counter for processor clock cycles. It increments by 1 for every processor clock cycle, providing a monotonic count that reflects the passage of time at the CPU's nominal frequency. Upon reading the TSC, the returned value represents the cumulative number of cycles elapsed since the last . The TSC resets to 0 during power-on or a CPU , such as a or , but does not reset under normal operating conditions like power state transitions or software events. The primary method to access the TSC is the RDTSC (Read Time-Stamp Counter) instruction, an x86 encoded as 0F 31. This instruction loads the 64-bit TSC value into the : register pair in 32-bit mode or the RDX:RAX pair in 64-bit mode, with the upper 32 bits placed in /RDX and the lower 32 bits in /RAX; in 64-bit mode, the high-order 32 bits of RAX and RDX are cleared to zero. On modern processors, RDTSC is non-privileged and executable in user mode (ring 3), as the default setting of CR4.TSD (Time Stamp Disable bit) is 0, allowing access at all privilege levels unless explicitly restricted by the operating system. An enhanced access method is the RDTSCP (Read Time-Stamp Counter and Processor ID) instruction, introduced in the AMD64 architecture in 2003 and later adopted by Intel starting with the Nehalem microarchitecture in 2008. Encoded as opcode 0F 01 F9, RDTSCP reads the 64-bit TSC into EDX:EAX or RDX:RAX in the same manner as RDTSC, while additionally loading a 32-bit auxiliary value—typically a processor ID or topology identifier from the IA32_TSC_AUX MSR (address C000_0103h)—into ECX. Unlike RDTSC, which is non-serializing and may execute out of order, RDTSCP includes a serializing prefix that ensures all prior instructions complete before the TSC read and delays subsequent instructions until the operation finishes, improving reliability for timing in multi-threaded or out-of-order execution environments. Like RDTSC, it is non-privileged in user mode on modern processors. To derive elapsed time from TSC readings, the basic calculation accounts for the counter's cycle-based increment. Let TSC_{start} be the value read at the beginning of an interval and TSC_{end} the value at the end; the difference TSC_{end} - TSC_{start} yields the number of clock cycles elapsed, assuming no (which occurs after approximately $2^{64} cycles, or approximately 146 years at 4 GHz). Dividing by the processor's clock frequency f (in Hz) converts cycles to seconds: \Delta t = \frac{TSC_{end} - TSC_{start}}{f} This derivation relies on the TSC's constant increment rate matching the CPU clock, enabling straightforward timing estimates for code execution or events, though frequency must be calibrated (e.g., via CPUID or OS queries) as it may vary with scaling.

Properties and Reliability

The Time Stamp Counter (TSC) exhibits several key properties that ensure its utility as a high-resolution timing mechanism in modern processors. On supported hardware, the TSC operates as an invariant TSC, maintaining a constant increment rate independent of processor power states, including all ACPI P-states (performance states), C-states (idle states), and T-states (throttling states). This behavior was introduced in Intel's Nehalem microarchitecture (2008) and AMD's Family 10h processors (2007), allowing the TSC to serve reliably as a wall-clock timer without adjustments for frequency scaling during power management transitions. Additionally, the TSC is non-stopping on processors supporting invariant mode, continuing to increment during processor halts (e.g., via the HLT instruction) and deep C-states, provided the system remains powered and not in full shutdown. This non-stop characteristic enhances reliability for timing applications that require uninterrupted counting, though older processors (pre-2008) may halt the TSC in deep sleep states like S3 or during stop-grant periods. In multi-core and multi-socket systems, TSC synchronization ensures consistent values across logical processors. Early multi-core designs featured per-core TSCs that could drift due to independent initialization, but modern implementations provide hardware synchronization: Intel processors since the Nehalem microarchitecture (2008) provide hardware support for synchronizing TSC values across all cores within a package and across packages in multi-socket systems, assuming appropriate platform and BIOS configuration, while AMD has offered synchronized TSCs across cores since Family 10h, with full multi-socket coherence in subsequent families. Software may still perform calibration using instructions like RDTSCP for ordering in unsynchronized scenarios. Reliability can be compromised in virtualized environments, where TSC desynchronization occurs during virtual machine (VM) migrations between hosts with differing TSC frequencies, offsets, or hardware capabilities. For instance, live migration in hypervisors like KVM or VMware may introduce skew if the source and target hosts lack matching invariant TSC support, necessitating VMM (virtual machine monitor) adjustments via TSC scaling or offsets to maintain consistency. In Intel VT-x and AMD-V environments, the hypervisor can virtualize TSC reads to mitigate this, but mismatches in physical host configurations often lead to timing inaccuracies post-migration. Software detects these properties using instructions. For both and , leaf 0x80000007 (with =0x80000007) returns bit 8 set to indicate invariant TSC support; bits in EBX/EDX may also report non-stop behavior and nominal frequency details. additionally provides leaf 0x15 (=0x15) for TSC/core crystal clock information, where EBX and yield the ratio of TSC frequency to the base crystal clock (e.g., 100 MHz or 133 MHz), enabling precise frequency computation as (EBX / ) × crystal frequency. These leaves allow OS and applications to query hardware guarantees before relying on the TSC. The TSC has inherent limitations affecting its long-term reliability. It is not directly adjustable by unprivileged software; modifications require privileged access via the WRMSR instruction to the IA32_TSC_ADJUST MSR (address 0x3B), which applies an to future reads without altering the itself—this is typically used by hypervisors or OS kernels for . As a -bit (264 maximum value), the TSC overflows after approximately 146 years of continuous operation at 4 GHz, though practical systems rarely encounter this due to resets and shorter uptime; the overflow period scales inversely with frequency (e.g., ~585 years at 1 GHz).

Implementations

In x86 Processors

The Time Stamp Counter (TSC) in processors was introduced with the family in 1993 as a 64-bit that increments once per processor clock cycle, accessible via the RDTSC instruction. This feature enabled high-resolution timing for performance measurement, with initial support indicated by the TSC bit (bit 4) in the EDX of function 1. Enhancements to TSC reliability began with the Nehalem microarchitecture in 2008, introducing a constant TSC that maintains a fixed rate across all ACPI P-states (performance states), C-states (idle states), and T-states (throttling states), independent of dynamic frequency scaling. Further improvements arrived in the Haswell microarchitecture in 2013, where the TSC became always running, derived from the Always Running Timer (ART) hardware that ensures continuous incrementing even during deep power-saving modes like C6. In multi-socket configurations, TSCs are per-core but synchronized at the package level upon reset, with the IA32_TSC_AUX MSR (address C000_0103H) providing a 32-bit processor ID value when read via the RDTSCP instruction to facilitate accurate synchronization for deadline-based scheduling. AMD introduced the TSC in its K5 processor family in 1996, featuring a 64-bit counter incremented per clock cycle and accessible via RDTSC or RDMSR (ECX=10H) in real or , with privilege controls via CR4.TSD. Full integration with 64-bit addressing and operations became standard in the processors launched in 2003, aligning the TSC with 64 architecture extensions for extended virtual and physical address spaces. The invariant TSC variant, which ticks at a constant rate unaffected by power management states, was added starting with Family 10h processors (e.g., ) in 2007, ensuring synchronization across cores and support for reliable timing in multi-core environments. Recent advancements include the SecureTSC feature in processors (introduced in 2022) integrated with Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP), which secures TSC access in confidential virtual machines by storing scaled and offset values (GUEST_TSC_SCALE and GUEST_TSC_OFFSET) in encrypted VM save areas to prevent manipulation. This enables VM attestation through verifiable timing and co-location detection by allowing guests to observe consistent, hypervisor-independent TSC behavior without of RDTSC/RDTSCP instructions. Key differences between implementations include Intel's emphasis on nonstop TSC operation for systems, where the counter persists through all low-power states to minimize variations, contrasted with AMD's focus on security, such as TSC scaling in guest environments via dedicated MSRs like GUEST_TSC_FREQ (C001_0134H) for frequency reporting in isolated . Software detects TSC variants using CPUID functions; for example, leaf 6 (thermal and power management) in EAX bit 2 indicates support for the Always Running APIC Timer (ARAT), which correlates with ART-based always-running TSC on platforms, while leaf 80000007H in EDX bit 8 signals invariant TSC availability on both and processors. As of 2025, TSC support is universal across all processors from and , with and always-running variants standard in production ; TSC frequencies now exceed 6 GHz in high-end desktop and server models, matching or approaching maximum turbo boost rates for precise cycle-accurate timing.

In Other Architectures

In architectures, the Performance Monitors Cycle Counter (PMCCNTR_EL0) provides a 64-bit count of processor clock , accessible via the MRS instruction when the Performance Monitoring Unit (PMU) is enabled. This counter is part of the ARMv8-A architecture and supports performance profiling at various exception levels, though access from user mode (EL0) requires enabling the PMU through privileged configuration registers like PMCR_EL0. Complementing this, the Timer's physical counter register (CNTPCT_EL0) offers a system-wide 64-bit , introduced in ARMv8 around 2011, which increments based on the system counter frequency queryable via CNTFRQ_EL0. These mechanisms enable cycle-accurate timing in ARM-based systems, with the Timer particularly suited for virtualized environments due to its secure and non-secure variants. RISC-V processors implement timestamp counters through Control and Status Registers (CSRs), with the cycle CSR providing a per-hart count of clock cycles since , accessed via the rdcycle pseudo-instruction as defined in the RV64I set from the early . The time CSR, read via the rdtime pseudo-instruction, typically interfaces with the Core-Local Interruptor (CLINT) to deliver wall-clock from a shared mtime register, supporting multi-hart synchronization in multiprocessor setups. These counters are 64-bit in RV64 configurations and modular, extensible through ratified specifications like the Zicntr extension (version 2.0, 2021), which standardizes counter behavior and invariance across implementations without requiring additional privilege for unprivileged reads in compatible environments. Other architectures, such as PowerPC, feature the Time Base register (TB), a 64-bit counter that increments with the processor clock and is accessible via dedicated instructions like mftb for timing applications in and contexts. Key differences from x86 implementations include ARM's reliance on exception-level privileges for certain counter accesses and RISC-V's extension-based , such as enhancements for physical (Smepmp, ratified 2021) that indirectly support secure multi-processor timing by refining machine-mode controls. As of 2025, timestamp mechanisms dominate mobile and embedded systems due to their integration in billions of devices, while counters see growing adoption in and data centers, driven by customizable cores from vendors like and Alibaba, with projections for 25% market penetration in by mid-decade.

Applications

Performance Measurement

The Time Stamp Counter (TSC) serves as a primary for cycle-accurate in x86 processors, enabling developers to assess the execution time of code segments in terms of CPU cycles rather than wall-clock time. By invoking the RDTSC before and after a computational task, the difference in TSC values provides a direct count of elapsed cycles, which can be used to compute metrics such as instructions per cycle () or latency. This approach is particularly valuable for micro-benchmarks and low-level optimization, where understanding cycle throughput helps identify bottlenecks in algorithms or assembly routines. A typical for TSC-based involves enclosing the target function within paired RDTSC reads, often serialized with or MFENCE instructions to ensure ordering and minimize effects. The raw cycle delta is then adjusted for overhead—calibrated separately by timing a known empty —and divided by the number of iterations and the processor's TSC to yield cycles per execution. The TSC itself is calibrated using leaf 15H, which provides nominal core crystal clock information, or through a calibration timed against a coarser OS like gettimeofday for verification. This method yields precise , such as determining that a simple consumes approximately 1 cycle on modern cores under optimal conditions. TSC measurements integrate into profiling tools and libraries for broader analysis. Intel VTune Profiler leverages TSC-derived cycle counts alongside performance monitoring unit (PMU) events to attribute hotspots and compute IPC in user-space applications. On Linux, the perf tool supports TSC access through custom events or RDPMC for cycle sampling, facilitating kernel and user-mode profiling without manual RDTSC insertion. Custom micro-benchmarks, often implemented in C or assembly, routinely employ inline RDTSC for ad-hoc testing of library functions. Unlike OS APIs such as gettimeofday, which incur syscall overhead (typically 100-1000 cycles), TSC reads execute in 10-20 cycles, enabling sub-nanosecond effective resolution at GHz frequencies. Despite these strengths, TSC-based profiling has limitations, particularly in multi-core environments where asynchronous TSC increments across cores can lead to discrepancies unless synchronized via barriers like barriers or invariant TSC verification through CPUID. To account for overhead in cycle calculations, the effective execution cycles are derived as: \text{Execution cycles} = (\text{TSC}_\text{after} - \text{TSC}_\text{before}) - \text{overhead} Here, \text{overhead} represents the calibrated cost of the RDTSC pair and any serialization instructions, typically measured by repeating an empty loop N times and dividing the total delta by N. For IPC, this value is normalized against the instruction count from disassembly or PMU retired-instructions event. This derivation ensures accuracy within 1-2 cycles for short code paths on invariant TSC-enabled processors.

Operating System Integration

In Linux, the Time Stamp Counter (TSC) serves as the preferred clocksource for high-resolution timing when it is invariant and reliable, with support added in the clocksource framework starting from kernel version 2.6.14 for supported hardware. The kernel utilizes functions such as those in the vDSO (virtual dynamic shared object) to enable fast user-space access to TSC-based time readings, including for the CLOCK_MONOTONIC clock, which provides a monotonically increasing time suitable for measuring intervals without system time adjustments. If the TSC proves unreliable—due to factors like hardware inconsistencies—the kernel automatically falls back to alternative clocksources, such as the High Precision Event Timer (HPET), to maintain system stability. In Windows, the QueryPerformanceCounter (QPC) API commonly maps to the TSC on modern x86 hardware for acquiring high-resolution timestamps, offering sub-microsecond precision for performance measurements and event timing within the same system. This integration leverages the TSC's efficiency while abstracting hardware details from applications. In virtualized environments, Windows employs paravirtualized timers, such as those in , to emulate a consistent TSC view for operating systems, ensuring accurate timing despite variations. Operating systems like perform TSC synchronization checks across multiple CPUs during boot to verify consistency, setting flags such as tsc_reliable if the TSC remains stable and synchronous. If desynchronization is detected across CPUs, the disables TSC as the clocksource to ensure consistent timekeeping in multi-core setups, preserving accurate timekeeping in multi-core setups. TSC integration faces challenges from CPU , particularly in laptops where dynamic voltage and frequency scaling (DVFS) can alter the TSC rate unless an invariant TSC is present. In scenarios, such as KVM, TSC passthrough may introduce discrepancies between host and guest clocks, addressed through techniques like TSC scaling via Model-Specific Registers (MSRs) that apply multipliers to adjust the perceived TSC frequency for guests. As of 2025, the TSC remains dominant in real-time configurations, including the patchset, where it supports low-jitter scheduling by providing predictable, high-resolution interrupts essential for deterministic task execution in and applications. Similarly, in , TSC-backed timers underpin low-jitter scheduling mechanisms, enabling precise thread prioritization and reduced latency in performance-critical workloads.

Security Considerations

Use in Side-Channel Attacks

The Time Stamp Counter (TSC) has been exploited in side-channel attacks due to its high-resolution timing capabilities, enabling attackers to measure minute differences in execution times that reveal activities in shared hardware environments. In particular, attackers read the TSC using s like RDTSC to capture s between operations, such as the time to access a line, which varies based on whether it resides in (, ~4 cycles) or main (miss, ~200+ cycles). This allows inference of behavior without direct access to shared data. For instance, the Flush+Reload technique flushes a target line using the CLFLUSH , then measures the reload time via TSC reads; a short indicates the accessed the line, reloading it into the . Notable attacks leveraging TSC include cache-timing variants of and Meltdown, disclosed in 2018, where transiently loads secret data into the , and TSC-based probes detect access patterns to leak arbitrary kernel memory or cross-process secrets. Prime+Probe attacks, which do not require mappings, prime a cache set with attacker data, allow victim execution, then probe eviction times using TSC measurements to infer which sets the victim accessed, enabling key recovery from cryptographic implementations like . In virtualized cloud settings, pre-2015 TSC desynchronization (before invariant TSC mandates) allowed co-location detection by measuring TSC offsets across VMs on the same host via synchronized reads, facilitating targeted side-channel follow-ups like cache attacks. Exploitation relies on TSC's sub-nanosecond granularity—typically 1 (~0.33 at 3 GHz)—to distinguish timings under 10 , even in noisy environments, with statistical aggregation improving signal-to-noise ratios for reliable inference. Cross-core attacks exploit unsynchronized TSCs in multi-socket systems, where per-core counters drift, allowing remote timing of victim activity without core migration. These techniques have leaked and ECDSA private keys from GnuPG by monitoring via traces. Recent developments (2024–2025) include TSC-based cache side-channels in containerized systems, such as syncfs-induced timing leaks across containers using TSC for synchronization. These attacks impact multi-tenancy by enabling co-location exploitation and secret exfiltration, such as page table entries in Meltdown or cryptographic material in shared accelerators.

Mitigation Techniques

mitigations for Time Stamp Counter (TSC)-enabled threats primarily focus on enhancing the reliability and of TSC reads to minimize exploitable timing variations. Modern x86 processors incorporate TSC and non-stop TSC features, which ensure the counter increments at a constant rate irrespective of CPU , power management states, or core migrations, thereby reducing variability that attackers could leverage for precise side-channel measurements. These properties, introduced in processors since Nehalem (2008) and widely adopted in architectures, limit the information leakage from TSC discrepancies across execution contexts. In virtualized environments, vendor-specific enhancements further bolster security. AMD's SecureTSC, available in processors with Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP) support since 2022, secures TSC reads for guests by emulating RDTSC and RDTSCP instructions without interception, using a secure save area to prevent tampering and poisoning unreliable reads to thwart co-location detection attacks. Similarly, Intel's TSC_AUX (MSR), readable atomically with the TSC via RDTSCP, enables virtualized scaling by providing auxiliary metadata, such as identifiers, to maintain consistent timing across host-guest boundaries in VT-x environments. Software strategies complement hardware by restricting or obfuscating TSC access. Operating systems like can set the Time Stamp Disable (TSD) bit in the CR4 to block RDTSC execution in (CPL > 0), confining TSC usage to privileges and preventing untrusted applications from directly querying high-resolution timings for side-channel exploitation. Noise injection into software timers adds to timing measurements, diluting potential signals from TSC-based attacks, while constant-time algorithms ensure execution paths avoid data-dependent timings, eliminating variations that TSC could otherwise expose. For virtualization-specific threats, paravirtualized clocks address TSC desynchronization. In KVM, the pvclock protocol shares a dedicated page between host and guest, allowing the guest kernel to compute accurate timestamps by combining host-provided clock offsets with local TSC reads, thus preserving monotonicity without relying solely on raw TSC. Hypervisors employ TSC offsetting—adding a constant value to the guest-visible TSC via VMX or SVM extensions—to ensure seamless continuity during virtual machine migrations or pauses, maintaining the illusion of an uninterrupted counter. In non-x86 architectures, and introduce hardware fences to serialize timing operations; 's proposed FENCE.TIME extension enforces ordering between memory accesses and time reads, blocking speculative timing channels in cache-eviction attacks, while 's data synchronization barriers (DSB) achieve similar serialization for cycle-accurate reads. Evaluation of these techniques often leverages features like Intel's (TSX), where transactions are aborted on detection of that could leak timing data via microarchitectural buffers, as mitigated in microcode updates for vulnerabilities like TSX Asynchronous Abort (TAA). These combined approaches significantly raise the bar for TSC-based attacks, with empirical studies showing reduced leakage precision by orders of magnitude in virtualized setups.

References

  1. [1]
    CPU Cycle Counter - Intel
    This is a high-resolution counter inside the CPU which counts CPU cycles. This counter is called Timer Stamp Counter (TSC) on x86/Intel®64 architectures.
  2. [2]
    Acquiring high-resolution time stamps - Win32 apps | Microsoft Learn
    Apr 18, 2023 · TSCs are high-resolution per-processor hardware counters that can be accessed with very low latency and overhead (in the order of 10s or 100s of ...
  3. [3]
    [PDF] System Programming Guide - Intel
    NOTE: The Intel 64 and IA-32 Architectures Software Developer's Manual ... TSC-Deadline Mode ...<|control11|><|separator|>
  4. [4]
    Invariant TSC support - Intel Community
    Dec 21, 2011 · The invariant TSC means that the TSC continues at a fixed rate regardless of the C-state or frequency of the processor (as long as the processor ...TSC Synchronization Across Cores - Intel CommunityP-State invariant TSC on Nehalem platforms with multi-packagesMore results from community.intel.com
  5. [5]
    [PDF] Volume 3 (3A, 3B, 3C & 3D): System Programming Guide - Intel
    This is Volume 3 of the Intel 64 and IA-32 manual, a System Programming Guide, part of a four-volume set.
  6. [6]
    [PDF] Pentium Processor User Manual Vol. 3 (1995) - DOS Days
    Aug 19, 1992 · In 1971,. Intel introduced the 4004, the first microprocessor. Containing 2300 transistors, this first commercially available computer-on-a ...
  7. [7]
  8. [8]
  9. [9]
    Pitfalls of TSC usage - Oliver Yang
    Sep 9, 2015 · The invariant TSC will run at a constant rate in all ACPI P-, C-, and T-states. This is the architectural behavior moving forward. Invariant TSC ...
  10. [10]
    [PDF] Multi-processor and Frequency Scaling - The Linux Kernel Archives
    cpufreq driver correcting the kernel TSC cal- ibration whenever the frequency changes. This issue may impact other code that uses the TSC register directly.
  11. [11]
    [PDF] Temporal accuracy and modern high performance processors - DRUM
    The idea was to make the RDTSC instruction execute exactly at a multiple of 31 to 33 clock cycles ahead of the target TSC value by delaying the entry to the ...
  12. [12]
    [PDF] First the Tick, Now the Tock: Intel® Microarchitecture (Nehalem)
    This new, scalable, shared memory architecture integrates a memory controller into each microprocessor and connects processors and other components with a new ...
  13. [13]
    [PDF] BIOS and Kernel Developer's Guide (BKDG) For AMD Family 10h ...
    Apr 22, 2010 · ... and MONITOR instructions. • Misaligned SSE mode. • Power management state invariant time stamp counter (TSC). • Number of extended LVT ...
  14. [14]
    [PDF] Intel 64 and IA-32 Architectures Software Developer's Manual
    NOTE: The Intel® 64 and IA-32 Architectures Software Developer's Manual consists of nine volumes: Basic Architecture, Order Number 253665; Instruction Set ...Missing: TSC | Show results with:TSC
  15. [15]
    [PDF] AMD64 Architecture Programmer's Manual, Volume 2
    ... AMD64 Architecture. Programmer's Manual. Volume 2: System Programming. Publication No. Revision. Date. 24593. 3.38. November 2021 ... Secure Memory Encryption ...
  16. [16]
    None
    Below is a merged and comprehensive summary of the RDTSCP instruction based on all provided segments. To retain all details efficiently, I’ll use a structured table format in CSV style for key information, followed by a narrative summary that consolidates additional details and notes. This approach ensures maximum density and clarity while preserving all mentioned information.
  17. [17]
    [PDF] Intel® 64 and IA-32 Architectures Software Developer's Manual
    NOTE: The Intel® 64 and IA-32 Architectures Software Developer's Manual consists of five volumes: Basic Architecture, Order Number 253665;. Instruction Set ...Missing: AMD | Show results with:AMD
  18. [18]
    [PDF] Intel® 64 and IA-32 Architectures Software Developer's Manual
    NOTE: The Intel® 64 and IA-32 Architectures Software Developer's Manual consists of ten volumes: Basic Architecture, Order Number 253665; Instruction Set ...
  19. [19]
    [PDF] AMD-K5 - Bitsavers.org
    The AMD-K5 processor's 64-bit time stamp counter (TSC) increments on each proces- sor clock. In Real or Protected mode, the counter can be read with the RDMSR.Missing: introduction | Show results with:introduction
  20. [20]
    [PDF] AMD Athlon 64 Processor Product Data Sheet
    AMD64 Technology. –. AMD64 technology instruction set extensions. –. 64-bit integer registers, 48-bit virtual addresses, 40- bit physical addresses. –. Eight ...Missing: TSC | Show results with:TSC
  21. [21]
    [PDF] BIOS and Kernel Developer's Guide (BKDG) For AMD Family 10h ...
    Jan 11, 2013 · Page 1. 31116 Rev 3.62 - January 11, 2013. AMD Family 10h Processor BKDG ... invariant time stamp counter (TSC). • Number of extended LVT ...
  22. [22]
    [PDF] Secure TSC for AMD SEV-SNP guests - Linux Plumbers Conference
    Nov 15, 2023 · • SecureTSC guest v5 patches. • “Secure TSC” section in AMD64 Architecture Programmer's Manual · Volume 2: System Programming. • “TSC Info ...
  23. [23]
    [PDF] Open-Source Register Reference For AMD Family 17h Processors ...
    Jul 3, 2018 · AMD Virtualization is a trademark of Advanced Micro Devices, Incorporated. MMX is a trademark of Intel Corporation. PCI Express is a registered ...
  24. [24]
    Intel® 64 and IA-32 Architectures Software Developer Manuals
    Oct 29, 2025 · Overview. These manuals describe the architecture and programming environment of the Intel® 64 and IA-32 architectures.Missing: TSC | Show results with:TSC
  25. [25]
    [PDF] Intel® 64 and IA-32 Architectures Software Developer's Manual
    NOTE: The Intel® 64 and IA-32 Architectures Software Developer's Manual consists of nine volumes: Basic Architecture, Order Number 253665; Instruction Set ...
  26. [26]
    Custom Data Collection for Performance Analysis (NEW) - Intel
    When you collect performance data with VTune Profiler, you can configure a custom data collector to interact with the collected data.
  27. [27]
    Linux perf Examples - Brendan Gregg
    Examples of using the Linux perf command, aka perf_events, for performance analysis and debugging. perf is a profiler and tracer.
  28. [28]
    How to change the clock source in the system - Red Hat Customer ...
    Aug 7, 2024 · Checking the current clock source: One can easily perform this task through searching in /var/log/dmesg file for "time".Missing: vclock_read_tsc | Show results with:vclock_read_tsc
  29. [29]
    [PATCH RESEND] Prevent unexpected TSC to HPET clocksource ...
    Jun 4, 2025 · > > > > This manifests in the kernel log as: > > clocksource ... > > This fix successfully prevents HPET fallback on Eviden 12 socket ...
  30. [30]
    Timers | Microsoft Learn
    May 26, 2021 · The partition reference time enlightenment uses a virtual TSC value, an offset and a multiplier to enable a guest partition to compute the ...Missing: mapping | Show results with:mapping<|separator|>
  31. [31]
    CPU Isolation – Nohz_full troubleshooting: broken TSC/clocksource
    Dec 14, 2022 · We are going to explore CPU isolation troubleshooting, starting with a strong focus on a common issue met by nohz_full users on x86.Missing: integration vclock_read_tsc
  32. [32]
    3.3. TSC Timer Synchronization on Opteron CPUs | Tuning Guide
    Red Hat Enterprise Linux for Real Time provides a method to prevent this skew by forcing all processors to simultaneously change to the same frequency.
  33. [33]
    KVM timekeeping and TSC virtualization
    This patch set implements full TSC virtualization, with both trapping and passthrough modes, and intelligent mode switching.Missing: laptops | Show results with:laptops
  34. [34]
    [PDF] Timestamp-Counter Scaling (TSC scaling) for Virtualization
    This paper describes an Intel® Virtualization Technology (Intel® VT) enhancement for future Intel processors. This feature, referred to as timestamp-counter ...
  35. [35]
    Real-Time Scheduling on Linux — ECI documentation
    Setting Low-latency Interrupt Software Handling¶. PREEMPT_RT enforces fundamental software design rules to reach full-preemptive and low-latency scheduling ...
  36. [36]
    [PDF] FLUSH+RELOAD: A High Resolution, Low Noise, L3 Cache Side ...
    In this paper we describe the FLUSH+RELOAD tech- nique and how we use it to extract GnuPG private keys across multiple processor cores and ...
  37. [37]
    [PDF] Exploiting Speculative Execution - Spectre Attacks
    This paper describes practical attacks that combine methodology from side channel attacks, fault attacks, and return-oriented programming that can read.
  38. [38]
    [PDF] DNS FLaRE: A Flush-Reload Attack on DNS Forwarders - USENIX
    Aug 13, 2025 · In this paper, we present DNS FLaRE, a DNS cache-based timing side-channel attack that allows an attacker to accu- rately infer the times at ...
  39. [39]
    [PDF] Side Channel Attacks on the CPU On-Chip Ring Interconnect Are ...
    Abstract. We introduce the first microarchitectural side channel at- tacks that leverage contention on the CPU ring interconnect.
  40. [40]
    [PDF] Inter-Core Interference Mitigation in a Mixed Criticality System
    Aug 4, 2020 · solution in newer processors is an enhancement called the invariant TSC. The invariant TSC runs at a constant rate, regardless of changes in ...
  41. [41]
    AMD Secure TSC Support Might Finally Be Ready For Landing In ...
    Jan 9, 2025 · Secure TSC is a feature with SEV-SNP-enabled EPYC server processors for allowing VMs/guests to securely use the RDTSC and RDTSCP instructions ...
  42. [42]
    [PDF] Intel® 64 and IA-32 Architectures Software Developer's Manual
    Enhanced Intel SpeedStep® Technology was introduced in the Pentium M processor. ... time-stamp counter and processor ID;. Set IA32_MCi_STATUS to all 0s;. Execute ...
  43. [43]
    Intel® Xeon® Processor Scalable Family Technical Overview
    Jan 12, 2022 · Time Stamp Counter (TSC) Enhancement for Virtualization. The Intel Xeon processor Scalable family introduces a new TSC scaling feature to ...
  44. [44]
    TSC - OSDev Wiki
    The Timestamp Counter is a 64-bit internal register which is present in all Intel processors after the Pentium. It stores the number of cycles executed by the ...Introduction · Relation with the APIC TimerMissing: architecture | Show results with:architecture
  45. [45]
    Timekeeping Virtualization for X86-Based Architectures
    The TSC or time stamp counter is relatively simple in theory; it counts instruction cycles issued by the processor, which can be used as a measure of time.
  46. [46]
    Time-stamp counter disabling oddities in the Linux kernel - cr0 blog
    May 28, 2009 · Most operating systems will not set CR4.TSD on any thread, so programmers are free to use RDTSC in their Ring3 code. The problem is that the TSC ...
  47. [47]
    KVM pvclock - Richard WM Jones - WordPress.com
    Oct 15, 2010 · KVM pvclock lets guests read the host's wall clock time. It's really very simple: the guest sets aside a page of its RAM and asks the host to write time into ...
  48. [48]
    SchedGuard++: Protecting against Schedule Leaks Using Linux ...
    This article presents “SchedGuard++”: a temporal protection framework for Linux-based real-time systems that protects against posterior schedule-based attacks ...Missing: TSC | Show results with:TSC
  49. [49]
    [RISC-V][tech-timing-fences] Fence.time draft extension feedback ...
    Feb 24, 2025 · Building on previous answers. Your example is an EVICT+TIME cache side-channel attack, which must be prevented by FENCE.TIME.
  50. [50]
    [PDF] Exploring speculation barriers for RISC-V selective speculation - HAL
    May 9, 2025 · We examine three aspects: the semantics of speculation fences (ranging from broad to selective constraints), the placement of fences in programs ...
  51. [51]
    TAA - TSX Asynchronous Abort - The Linux Kernel documentation
    TAA is a hardware vulnerability that allows unprivileged speculative access to data which is available in various CPU internal buffers by using asynchronous ...
  52. [52]
    [PDF] Not So Secure TSC - Daniel Gruss
    Dec 2, 2024 · We exploit the new SecureTSC feature supported on recent AMD processors with SEV-SNP. SecureTSC is intended to provide a trusted timing source ...