Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions doc/1.4/language.md
Original file line number Diff line number Diff line change
Expand Up @@ -3653,6 +3653,14 @@ object with an event-method that performs the specified call, and posting
that event at the given time, with associated data corresponding to the
provided arguments.

In Simics, the `after` event is posted on the clock or CPU associated with the
device. This is not necessarily the same as the currently executing CPU. This
means that a significant number of CPU instructions might be executed before
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consistency: CPU vs. processor? We should pick one term and stick with it. I've been using "processor." The Simics API docs aren't consistent about this, by the by, they use "CPU", "processor", and "executor" interchangeably.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To me it seems that most uses of "processor" relate to the aspect defined by processor_info_v2, i.e. a thing that can interpret memory contents as instructions; this makes some inspection and debugging facilities interesting. Whereas "clock" or "queue" is a term specifically related to driving the simulation and interacting with the scheduler. IIRC, I have only encountered "executor" as an internal term related to scheduling.

The term CPU seems more popular, e.g. src/cpu and conf.cpu0, and my intent here was to sloppily say CPU instead of clock because it's easier to relate to.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fixed the inconsistency by changing processor->CPU in some places, but accidentally pushed this to #413 instead. If you object to those changes, then please keep the discussion on this thread and I'll move patches where they belong. If you don't, then I'll just merge.

the method is called, even if the delay is short. In the case when you just
want a minimal delay to make things happen in the right order, it is often
better to use an [Immediate After Statement](#immediate-after-statements)
rather than providing an explicit delay of 0 or 1 cycle.

#### Hook-Bound After Statements
<pre>
after <em>hookref</em>[-> (<em>msg1</em>, ... <em>msgN</em>)]: <em>method</em>(<em>e1</em>, ... <em>eM</em>);
Expand Down