Query regarding descheduling point Instructions.

Query regarding descheduling point Instructions.

Post by Gavin.Crat » Thu, 28 May 2009 16:34:35


According to the Inmos/SGS Transputer data sheet there are the
following descheduling point instructions:

input message, output message, output byte, output word, timer alt
wait, timer input, stop on error, alt wait, jump, loop end, end
process and start process.

In the older versions of the data sheets, against the instructions it
also once included a D (indicating descheduling point instruction)
against start process. This was removed in later updates, however it
remained in the descheduling point instructions list - over sight I
think since I don't think start process should be in the descheduling
point instructions?? (This I believe is inline with the wording in the
compiler writers guide).

However, I think that stop process should also be included on this
list. Thoughts please

Gavin
 
 
 

Query regarding descheduling point Instructions.

Post by Mike B » Fri, 29 May 2009 18:49:35

Maybe my wording isn exactly the INMOS wording but makes some things
easier:

CUR=current process

Descheduling is the transfer of the CUR (ACTIVE SET) to the INACTIVE
SET.

Timeslicing is the replacing of the CUR with another process of the
ACTIVE SET. The replaced process is still part of the ACTIVE SET.

Timeslicing occurs only if the CUR is a low priority process at
curtain instructions (j, lend) and after the second timeslicing tick.
It obvious that timeslicing is also a descheduling operation but
Il keep these two things disjoined.

The following instructions MAY result in a descheduling operation
(omitting the timeslicing instructions):
in
out
outword
outbyte
tin
taltwt
altwt
stoperr
stopp
endp

The register stack (Areg, Breg, may be modified after descheduling
and timeslicing instructions. It is also documented to occur after
startp and runp which is implausible.

In response to your message:

I think you are right: start process should NOT be in the list of
descheduling point instructions but stop process should be.

-Mike

 
 
 

Query regarding descheduling point Instructions.

Post by Mike B » Sat, 30 May 2009 14:47:05

> According to the Inmos/SGS Transputer data sheet there are the

Table 4.5 (Descheduling point instructions) in Chapter 4 (IMS T805
engineering data) on Page 60 in The Transputer Databook (Second
Edition 1989, 72-TRN-203-01) says:

input message, output message, output byte, output word
timer alt wait, timer input, stop on error, alt wait
jump, loop end, end process and stop process.

The same for the
IMS T801 on Page 140
IMS T800 on Page 201
IMS T425 on Page 273
...

Also The Transputer Databook (First Edition 1989, 72-TRN-203-00) and
the Transputer Instruction Set: A compiler writer's guide - 1988 (72-
TRN-119-05, ISBN-10 0-13-929100-8) in Appendix D (Page 118) confirms
this.

Only The Transputer Databook (Third Edition 1992, 72-TRN-203-02) on
Page 48 misleadingly lists the "start process" instead of "stop
process".

-Mike
 
 
 

Query regarding descheduling point Instructions.

Post by Gavin.Crat » Sun, 31 May 2009 01:41:56

Nice one Mike.

So taking for example to the T805, with reference to Table 4.18 in
Chapter 4 (IMS T805
engineering data) on Page 65 in The Transputer Databook (Second
Edition 1989, 72-TRN-203-01) :

The table corection should be to remove the D against start process
and add a missing D against stop process. All the other instruction
tables for the T805 are correct.

Gavin
 
 
 

Query regarding descheduling point Instructions.

Post by Mike B » Tue, 02 Jun 2009 02:29:29

> All the other instruction tables for the T805 are correct.

Courageous statement ;-)

I think ...

Table 4.15
timer input (time past)
timer alt wait (time past)
Table 4.16
alt wait (channel ready)
Table 4.17
loop end (exit)
Table 4.19
stop on error (no error)

... aren't descheduling points. For a Transputer there is no reason to
do this in such a situations. Also in, out, outword, outbyte aren't
descheduling points in case of internal communication and when the
channel is ready. This is only another type of the move instruction.

But such things are sometimes beyond a data book and more for a
"emulator writer book".

-Mike
 
 
 

Query regarding descheduling point Instructions.

Post by Mike B » Fri, 05 Jun 2009 04:10:56

> Table 4.17

Patent number: 4989133 (System for executing, scheduling, and
selectively linking time dependent ...) say that loop end is always a
timeslicing point, even on exit.
Most likely this applies also for the real transputer.

-Mike