[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: waking up processes on external input

When I was at IMNOS, and this must have been before 1990, we did a benchmark with the T800 running its standard floating-point benchmark program and set "communications events" to happen every so often. Actually they were timer "interrupts" that did nothing, but exactly the same mechanism was used for both the internal channel and the external link communication.

I forget the exact figures, but what I remember fits with Barry's under one microsecond. I think that when there were 500,000 (half a million) interrupts per second, the floating point performance reduced to about 50% of the performance with no interrupts. Like any benchmark, this is unreal, because an interupt would have to do something, but most processors at the time got nowhere near an order of magnitude or two of this.

Paul Walker
(Also 4Links)

Barry Cook wrote:

It was part of the hardware.

The low-latency from data delivery to use was a key to the Transputer's high performance in multi-processor configurations. Without it modern multiprocessors can't do as well - unless you restrict the applications you run on them

Input could be a data communication or an 'event'.

If the process to be put on the queue was a high priority process then the time from hardware signal to process running was below 1us.

Event inputs, equivalent to interrupts on traditional processors, causing sub-microsecond 'interrupt handler' process activation was somewhat faster than interrupt response times of other processors, even of today's Gigahertz-clock-rate CPU's!


Dr Barry M. Cook, BSc, PhD, CEng, MBCS, CITP, MIEEE
4Links Limited,
The Mansion,
Bletchley Park,
MK3 6ZP,
----- Original Message ----- From: "Richard Tonge" <rtonge90@xxxxxxxxxxx>
To: <occam-com@xxxxxxxxxx>
Sent: Sunday, September 24, 2006 8:23 AM
Subject: waking up processes on external input

My current understanding is that on the transputer, processes were not members of the process queue when they were waiting for input from the external links. This would mean that whenever input arrived, some mechanism would have to add to the queue any process waiting on the link.

Was this mechanism was part of the hardware, or was it done with a software interrupt handler?


Richard Tonge
Ageia Technologies inc.