Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Executing No-op instructions query.

1 view
Skip to first unread message

Gavin Crate

unread,
Oct 14, 2009, 3:47:57 AM10/14/09
to
I am currently working on a change to the existing T414 emulator to
hopefully allow the Minix OS to run fully. In the process of this
investigation it has raised an interesting question which I need help
with.


Assume the following Transputer setup:

a). The current low priority process has just executed an ‘in’
instruction from linkIn0. The LinkIn0 channel is not ready (i.e. the
process will be deschedule);
No processes exist on the high priority queue;
No processes exist on the low priority queue;
The timer queue is empty;

Since there is nothing to execute, what does the instruction pointer
(Iptr) point too?

Does the processor execute No-op instructions (i.e. pfix 0 - #20)
until the process which was descheduled after the ‘in’ instruction is
rescheduled?

Thoughts please?

Gavin

Mike B.

unread,
Oct 14, 2009, 5:25:13 AM10/14/09
to
> Since there is nothing to execute, what does the instruction pointer
> (Iptr) point too?

The value of the Iptr is meaningless but I think to the instruction
after the 'in' instruction. Wptr should be NotProcess.p and the
Priority should be PRI_LOW. IIRC described so in the "Compiler Writers
Guide".

> Does the processor execute No-op instructions (i.e. pfix 0 - #20)
> until the process which was descheduled after the ‘in’ instruction is
> rescheduled?

No. That doesnt’t makes sense. I think the processor will poll in a
micro-code loop. Partially described in "System for executing,
scheduling, and selectively linking time dependent processes based
upon scheduling time thereof".

-Mike

Mike B.

unread,
Oct 14, 2009, 2:37:54 PM10/14/09
to
> IIRC described so in the "A compiler writer's guide".

Page 77, 9.3.1 Information available after booting an analysed
transputer
* The value that Wdesc had when the processor halted is available in
Breg. This will be (NotProcess.p BITOR 1) if the processor was not
active.

The unsuitable words "if the processor was not active" means an empty
active set (6.3.2) and no current process.

-Mike

Gavin Crate

unread,
Oct 15, 2009, 3:48:02 AM10/15/09
to

Thanks Mike for digging the above information out to answer my query.

In return, here's one for you. Use the /z option on all Inmos toolset
commands and it will display all the hidden options. (i.e. oc /za
gives assembler output). Enjoy.

Gavin

0 new messages