Volume 2, Part 1: System State and Programming Model
2:33
A sequence of reads of the ITC is guaranteed to return ever-increasing values (except
for the case of the counter wrapping back to 0) corresponding to the program order of
the reads. Applications can directly sample the ITC for time-based calculations.
A 64-bit overflow condition can occur without notification. The ITC can be read at any
privilege level if PSR.si is zero. The timer can be secured from non-privileged access by
setting PSR.si to one. When secured, a read of the ITC by non-privileged code results in
a Privileged Register fault. Writes to the ITC can only be performed at privilege level 0;
otherwise, a Privileged Register fault is raised.
The IA-32 Time Stamp Counter (TSC) is similar to ITC. The ITC can be read by the
IA-32
rdtsc
(read time stamp counter) instruction. System software can secure the ITC
from non-privileged IA-32 access by setting either PSR.si or CFLG.tsd to 1. When
secured, an IA-32 read of the ITC at any privilege level other than the most privileged
raises an IA_32_Exception(GPfault).
When the value in the ITC is equal to the value in the ITM an Interval Timer Interrupt is
raised. Once the interruption is taken by the processor and serviced by software, the
ITC may not necessarily be equal to the ITM. The ITM is accessible only at privilege
level 0; otherwise, a Privileged Operation fault is raised.
The interval counter can be written, for initialization purposes, by privileged code. The
ITC is not architecturally guaranteed to be synchronized with any other processor’s
interval time counter in an multiprocessor system, nor is it synchronized with the wall
clock. Software must calibrate interval timer ticks to wall clock time and periodically
adjust for drift. In a multiprocessor system, a processor's ITC is not architecturally
guaranteed to be clocked synchronously with the ITC's on other processors, and may
not be clocked at the same nominal clock rate as ITC's on other processors. The
platform firmware provides information on the clocking of processors in a
multiprocessor system.
Modification of the ITC or ITM is not necessarily serialized with respect to instruction
execution. Software can issue a data serialization operation to ensure the ITC or ITM
updates and possible side effects are observed by a given point in program execution.
Software must accept a level of sampling error when reading the interval timer due to
various machine stall conditions, interruptions, bus contention effects, etc. Please see
the processor-specific documentation for further information on the level of sampling
error of the Itanium processor.
3.3.4.3
Resource Utilization Counter (RUC – AR45)
The Resource Utilization Counter (RUC) is a 64-bit counter that counts up at a fixed
relationship to the input clock to the processor, when the processor is active. Processors
may be inactive due to hardware multi-threading. Virtual processors may be inactive
when not scheduled to run by the VMM. (See
Section 11.7, “PAL Virtualization Support”
for details on virtual processors.)
The RUC is clocked such that, in a given time interval, the difference in the RUC values
for all of the logical or virtual processors on a given physical processor add up to
approximately the difference seen in the ITC on that physical processor for that same
interval.
Summary of Contents for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS VOLUME 3 REV 2.3
Page 1: ......
Page 11: ...x Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 13: ...1 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 33: ...1 22 Volume 1 Part 1 Introduction to the Intel Itanium Architecture ...
Page 57: ...1 46 Volume 1 Part 1 Execution Environment ...
Page 147: ...1 136 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 149: ...1 138 Volume 1 Part 2 About the Optimization Guide ...
Page 191: ...1 180 Volume 1 Part 2 Predication Control Flow and Instruction Stream ...
Page 230: ......
Page 248: ...236 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 250: ...2 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 264: ...2 16 Volume 2 Part 1 Intel Itanium System Environment ...
Page 380: ...2 132 Volume 2 Part 1 Interruptions ...
Page 398: ...2 150 Volume 2 Part 1 Register Stack Engine ...
Page 486: ...2 238 Volume 2 Part 1 IA 32 Interruption Vector Descriptions ...
Page 750: ...2 502 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 754: ...2 506 Volume 2 Part 2 About the System Programmer s Guide ...
Page 796: ...2 548 Volume 2 Part 2 Interruptions and Serialization ...
Page 808: ...2 560 Volume 2 Part 2 Context Management ...
Page 842: ...2 594 Volume 2 Part 2 Floating point System Software ...
Page 850: ...2 602 Volume 2 Part 2 IA 32 Application Support ...
Page 862: ...2 614 Volume 2 Part 2 External Interrupt Architecture ...
Page 870: ...2 622 Volume 2 Part 2 Performance Monitoring Support ...
Page 891: ......
Page 1099: ...3 200 Volume 3 Instruction Reference padd Interruptions Illegal Operation fault ...
Page 1295: ...3 396 Volume 3 Resource and Dependency Semantics ...
Page 1296: ......
Page 1302: ...402 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 1494: ...4 192 Volume 4 Base IA 32 Instruction Reference FWAIT Wait See entry for WAIT ...
Page 1647: ...Volume 4 Base IA 32 Instruction Reference 4 345 ROL ROR Rotate See entry for RCL RCR ROL ROR ...
Page 1884: ...4 582 Volume 4 IA 32 SSE Instruction Reference ...
Page 1885: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index ...
Page 1886: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 1898: ...INDEX Index 12 Index for Volumes 1 2 3 and 4 ...