Dave Engvall wrote:

>It is amazing how many DEC users, etc come crawling out of the woodwork.
>All of them with great stories about how things used to be.
>
>With all this architectural experience there ought to be some  
>strongly held opinions on a processor chip that would do a
>good job on real-time applications such as emc and still be  
>affordable. I really believe that someplace along the path Intel
>is going to make the Px unusable for real time.  We as a group are  
>going to need to be able to migrate to some other chip-set.
>
>Yes, I know I've been smoking the wrong stuff ... or maybe the right  
>stuff.
>
>Ideas??
>  
>
Well ...

I agree - mainstream CPUs are heading further from responsiveness and 
determinism and closer to throughput and "streaming".  Realtime 
interrupt latencies for audio and video (the applications most users 
interact with which actually need some level of realtime response) are 
in the several millisecond range, and that can be extended with 
buffering.  Additionally, off-loading the work onto a specific processor 
(the sound chip or GPU) reduces the CPU load.  So the path most hardware 
vendors take is to make special-purpos chips with large buffers, and 
don't worry about realtime.

Then there's us.  We need hard deadlines for interrupt service routines, 
reasonable determinism as to how long our functions will take to 
execute, and very fast turnaround time from our hardware helpers (like 
Mesa, USC, etc.).  Even with sub-microsecond interrupt latency, USB 
would still be useless for many classes of machine, simply because it 
has 2ms (theoretical) minimum turnaround time for feedback/command 
data.  As for determinism, it's nearly impossible to predict how long a 
function will take to execute on a modern processor.  You can calculate 
min/max times (assuming you can eliminate paging/swap from the equation, 
which you can for RT code), and you have to do some statistical 
combination of the min/max for the various functions you need (in a HAL 
thread, for example).  I believe there are CPU instructions that allow 
you to lock data in the CPU cache, which should improve both latency and 
determinism.  I don't know how to figure out what parts of data should 
be held in cache, or what to do if something goes wrong (I don't know if 
we could tell that anything had been locked in cache in the event of a 
crash, for instance).

To put it plainly, I agree - unless some CPU and/or chipset vendor takes 
the kind of RT we need seriously, things are going to get bad in the 
next 5-10 years (if not sooner).

Of course, this ignores the role of software in the whole mess.  
Supposedly, non-RT code can't prevent RT code from running.  I've had 
experiences which appear to support this assertion, and others that seem 
to contradict it.  On the plus side:  I've had a machine lock up badly 
enough that it wouldn't respond to pings, keyboard lights wouldn't 
toggle, etc.  The HAL code kept running quite nicely though, in fact 
ending up with much more consistent timing with the kernel crashed than 
it had with the kernel alive (as verified by an external scope).  On the 
minus side:  I found on one machine that going from ext3 to ext2 
eliminated a latency spike that occured about every 5 seconds.  
(Actually, I guess both examples are on the minus side regarding non-RT 
code affecting RT latency, since both cases showed an improvement in 
latency numbers once non-RT (but still kernel) code was stopped or 
disabled (or crashed)).

I have had delusions about designing a PC-style motherboard with 
RT/latency as the priorities rather than benchmarks and video 
throughput, but that's a big (BIG) task.

Points to ponder anyway.
- Steve


------------------------------------------------------------------------------
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to