Executing No-op instructions query.

Executing No-op instructions query.

Post by Gavin Crat » Thu, 15 Oct 2009 16:47:57


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 n 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 ninstruction is
rescheduled?

Thoughts please?

Gavin
 
 
 

Executing No-op instructions query.

Post by Mike B » Thu, 15 Oct 2009 18:25:13

> Since there is nothing to execute, what does the instruction pointer

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".


No. That doesnt 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

 
 
 

Executing No-op instructions query.

Post by Mike B » Fri, 16 Oct 2009 03:37:54

> 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
 
 
 

Executing No-op instructions query.

Post by Gavin Crat » Fri, 16 Oct 2009 16:48:02


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