From: Tim McCaffrey on
In article <slrnhvu86e.1ho.rivie(a)stench.no.domain>,
rivie(a)ridgenet.net says...
>
>On 2010-05-27, FredK <fred.nospam(a)dec.com> wrote:
>> The DEC PDP-11 was a single processor minicomputer from the 70's
(there was
>> a dual CPU 11/74 IIRC). On these systems it was not feasible from
a
>> cost/complexity viewpoint to implement "IO channel" processors.
Just as it
>> wasn't reasonable for those systems/CPUs that ultimately resulted
in the
>> x86.
>
>http://en.wikipedia.org/wiki/Intel_8089

The 8089 was a crippled in such a way that it couldn't be used to
control more than one device (it was really two controllers in the
package, so two devices), and you couldn't put subroutines in ROM,
because they didn't use a stack for calls (they used a CDC 6600 like
return jump). It was also expensive.

- Tim

From: Noob on
yoxoman wrote:

> It seems that polling is the "dirty" way of using a device, whereas
> interrupt is the prefered one, but that one implies some context
> switching delays.
>
> Are there still devices today on which polling is used (I think of
> keyboard and mouse, but I'm not sure) ? Are the both techniques used on
> some devices ? Does it depend on the OS ?

There are situations where polling makes sense.

Consider a high-throughput NIC constantly interrupting the CPU.

Keywords: interrupt mitigation, interrupt coalescing

cf. also http://en.wikipedia.org/wiki/New_API
From: Philip Koopman on
Andy 'Krazy' Glew <ag-news(a)patten-glew.net> wrote:
> think it was ECN - something that might be paraphrased as:
><<
>
>Automotive engineers are tired of having too many microprocessors.
....
>Worse, all of the little processors allocated to specific tasks have to be sized so that they can handle the worst case
>workload.
>
>It's much more efficient to have fewer, larger processors - since the worst case workload for the separate tasks seldom
>happens all at the same time. So that instead of having N*WorstCaseNeed, you have 1 processor of size N*AverageNeed +
>M-sum of worst cases, where M is the largest number of worst cases that will ever happen together.
>
> >>
>
>Truly, this isn't me, except paraphrasing.
>
>Now, magazines like ECN are often just shilling for whoever wrote the article. But obviously some embedded processor
>vendor for automotive felt that an argument like the above was compelling.

Yes, the auto companies want to do this. They are coming to terms that
they have to be software system integrators and having fewer big CPUs
helps with that as well with reducing mechanical component count
(components = cost).

But it is not going to be easy:
- You still have to handle the worst case of possible concurrently
active worst caes, even if it is unlikely
(often down to 10^^-9 per hour unlikely if it is safety critical)
- You have to make sure tasks developed by different vendors can't
interfere, and real time performance matters a lot.

Sizing to the average doesn't usually cut it if you care about real time
and safety. At least with current methods. (I realize Andy you were
just quoting the article, so this criticism is directed at the author
you are paraphrasing and not at you.)

Cheers,
-- Phil Koopman

Phil Koopman -- koopman(a)cmu.edu -- http://www.ece.cmu.edu/~koopman
Author of: Better Embedded System Software, Drumnadrochit Press 2010
From: Rick Jones on
Noob <root(a)127.0.0.1> wrote:
> There are situations where polling makes sense.

> Consider a high-throughput NIC constantly interrupting the CPU.

> Keywords: interrupt mitigation, interrupt coalescing

I would not equate interrupt coalescing with polling, merely with
being "smarter" about when to generate an interrupt. Alas, some NICs
and their drivers don't do coalescing in what I would consider a
"smart" way and so affect unloaded latency at the same time.

rick jones
--
a wide gulf separates "what if" from "if only"
these opinions are mine, all mine; HP might not want them anyway... :)
feel free to post, OR email to rick.jones2 in hp.com but NOT BOTH...
From: EricP on
Rick Jones wrote:
> Noob <root(a)127.0.0.1> wrote:
>> There are situations where polling makes sense.
>
>> Consider a high-throughput NIC constantly interrupting the CPU.
>
>> Keywords: interrupt mitigation, interrupt coalescing
>
> I would not equate interrupt coalescing with polling, merely with
> being "smarter" about when to generate an interrupt. Alas, some NICs
> and their drivers don't do coalescing in what I would consider a
> "smart" way and so affect unloaded latency at the same time.
>
> rick jones

For example, this investigation by DEC/ATT in 1995 used the first interrupt
to trigger the OS. Then under high load it would switch to polling.

They also changed the order that TCP/IP packets were processed
because using the order delivered is not necessarily the most optimal.
For example, if packets had to be tossed due to buffer shortages,
shut off interupts, free the packets that have the least investment
in them so the host can receive more packets and make progress on others.

Eliminating Receive Livelock in an Interrupt-driven Kernel
http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-95-8.html

Eric