On Saturday 19 March 2016 14:40:42 Philipp Burch wrote:

> Hi Gene!
>
> On 19.03.2016 19:24, Gene Heskett wrote:
> > [...]
> >
> > In 1978 I needed to generate an academy countdown leader, 9.9 to 1.9
> > seconds until 1st video, on an RCA 1802 processor, which has built
> > in dma.  This thing ran at the smoking clock speed of 1.79 Mhz, but
> > a full processor cycle was 8 clocks. Said another way its speed was
> > 223,750 instructions per second.  And I was able to do it on 6 DMA
> > cycles per vertical field, using previously composed data,
> > generating characters big enough they could be read on a 5" monitor
> > from 20' away by operators with reasonably good eyesight.
> >
> > It worked without a hitch even at that slow a machine cycle because
> > any time a DMARQ went down, the next machine cycle serviced it. 
> > With more "modern" cpu's, that is not always the case. Some treat
> > dma as needing a full context dump to the stack first.  Both RCA and
> > TI got it right the first time, but TI did have to reload the
> > program counter pointer which took a machine cycle. RCA did not as
> > with 16 ea 16 bit registers, they just assigned one of them to be
> > the dma access pointer.
> >
> > IMO you can smell time wasting stacking of the processor state and
> > its recovery when the dma had been serviced 500 yards upwind of a
> > dry lot operation on a below zero February morning.  For those of
> > you not raised on a farm, I'll just say its legendary and you'll
> > never forget it.
> >
> > Modern disclaimer: I have no clue what sort of priority is given DMA
> > by todays crop of CPU's.  Sure they've gotten faster, but are they
> > better?
>
> It's a bit off-topic, but anyways: DMA controllers in recent
> microcontrollers can be quite complex beasts, far from a simple
> incrementing pointer for copy operations. Some use dynamic descriptors
> in memory, which hold the DMA configuration. One of the config options
> in each descriptor holds the address of the next descriptor. With
> this, you can generate "any number" of such descriptors and then start
> the DMA with the address of the first and it will (optionally looping
> forever) copy N words from here to there, then M words from foo to
> bar, followed by K words, etc. without any CPU intervention at all.
> Usually it is also possible to trigger the DMA using a hardware timer,
> so you could get away without any interrupt for this transfers at all.
> But of course the DMA controller has to access the bus as well, so if
> the CPU is doing some heavy memory access on its own, the DMA may be
> slowed down quite much.
>
> Oh, and there may easily exist multiple DMA controllers in a single
> microcontroller which can be running at the same time. Each of the
> controllers may then also contain dozens of streams. So, yes, I think
> that DMA is given quite some priority in todays microcontrollers.
>
> Cheers,
> Philipp

The RCA version simply transfered bytes in ascending order from memory as 
the dma pointer register was incremented per byte, until DMARQ went back 
high, telling the cpu that this service request ahd been fullfilled.  

Should a logic fault have ocurred that prevented it from going back high 
have occurred, it would have sat there copying memory to that i/o port 
address at nominally 250kb a second till the rapture as the register 
would have looped.  It was up to the programmer and the hardware builder 
to make sure that didn't happen, but since I was a committee of one, 
that was easy to enforce. :)  Nobody else had a clue what the heck I was 
doing, and perhaps didn't even understand why I was doing it.  Shrug...

What I was doing was saving a dub cycle and its quality loss in the aired 
product, and divorcing their quite varigated reaction times from the 
products timing, which made a huge diff in the video quality aired, and 
in the timing consistency.  Nielson book points +2 in the next book. I 
don't have to tell you how important those 2 points were to the sales 
dept. Depending on how its handled, and the market size, $200 in market 
205 to 2+ million a month difference in market #1.  The stations I have 
been affilated with were in the 180 to 160 range.

Cheers, Gene Heskett
-- 
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to