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

Query regarding descheduling point Instructions.

0 views
Skip to first unread message

Gavin...@ultracontrols.aero

unread,
May 27, 2009, 3:34:35 AM5/27/09
to
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

Mike B.

unread,
May 28, 2009, 5:49:35 AM5/28/09
to
Maybe my wording isn’t 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’s obvious that timeslicing is also a descheduling operation but
I’ll 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

Mike B.

unread,
May 29, 2009, 1:47:05 AM5/29/09
to
> 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.

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

Gavin...@ultracontrols.aero

unread,
May 29, 2009, 12:41:56 PM5/29/09
to
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

Mike B.

unread,
May 31, 2009, 1:29:29 PM5/31/09
to
> 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

Mike B.

unread,
Jun 3, 2009, 3:10:56 PM6/3/09
to
> Table 4.17
>   loop end (exit)

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

0 new messages