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