[Tremor] Notes on Implementing Tremor on an ARM7TDMI CPU

Timmy Brolin timmy at home.se
Sun Dec 7 02:40:21 PST 2008


>>> I am at a loss to undetstand why Segher thinks a 40MHz ARM should be
>>> fast enough to play back an Ogg Vorbis file.
>>>       
>> http://lists.xiph.org/pipermail/tremor/2003-January/000303.html
>>
>> That was an estimation, as should be obvious.  Your 55MHz device with
>> slow memory can almost do it, so it was a pretty good estimation if I
>> say so myself :-)
>>     
> Well, it turns out you are right. I wouldn't call it "slow memory", but
> when I chose this processor to be honest I didn't notice that flash
> didn't run at full speed. 
I would not call it slow memory either. There is nothing unusual about
the flash memory not running at full speed.
There are no flash memories which are faster than approximately 30MHz. I
am told that it is a inherent limitation of flash technology.
Semiconducator manufacturers use various tricks to improve the
performance. The most common it to use page-mode addressing. Accesses
within the same page are single cycle, but an access to a new page
requires several wait states.
Your processor seems to have only 4 byte pages, and some logic which
will stat reading the next "page" while the last thumb instruction in
the previous page is executed.

>>> 2) Use _LOW_PRECISION_. I don't want to lose audio quality but I need to
>>> get this to run in real time!
>>>       
>> Try it out and see how bad it really is.
>>     
> I meant __ of course. I tried it and it got slower.
>   
I think LOW_ACCURACY is primarily meant to reduce memory usage. Not
increase performance.
If I remember correctly, it will significantly reduce the size of
several tables. That could of course allow you to fit more of the
critical tables in fast RAM instead of flash, which in turn may affect
performance as well.

Timmy Brolin


More information about the Tremor mailing list