Skip to content

Commit

Permalink
Add clarifying non-normative comments about [m]time (#1833)
Browse files Browse the repository at this point in the history
Text contributed by @gfavor
  • Loading branch information
aswaterman authored Jan 29, 2025
1 parent 4fe1cf8 commit 13b89fc
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions src/counters.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,22 @@ As with other architectural mandates, it suffices to appear "as if"
harts are synchronized to within one tick of the real-time clock, i.e.,
software is unable to observe that there is a greater delta between the
real-time clock values observed on two harts.
If, for example, the real-time clock increments at a frequency of 1 GHz, then
all harts must appear to be synchronized to within 1 nsec.
But it is also acceptable for this example implementation to only update the
real-time clock at, say, a frequency of 100 MHz with increments of 10 ticks.
As long as software cannot observe this seeming violation of the above
synchronization requirement, and software always observes time across harts to
be monotonically nondecreasing, then this implementation is compliant.
A platform spec may then, for example, specify an apparent real-time clock
tick frequency (e.g. 1 GHz) and also a minimum update frequency (e.g. 100 MHz)
at which updated time values are guaranteed to be observable by software.
Software may read time more frequently, but it should only observe
monotonically nondecreasing values and it should observe a new value at least
once every 10 ns (corresponding to the 100 MHz update frequency in this
example).
====
The RDINSTRET pseudoinstruction reads the low XLEN bits of the
`instret` CSR, which counts the number of instructions retired by this
Expand Down

0 comments on commit 13b89fc

Please sign in to comment.