FS#8987 - use 128KB IRAM for PP5022/PP5024

Attached to Project: Rockbox
Opened by Andree Buschmann (Buschel) - Monday, 12 May 2008, 11:10 GMT
Last edited by Andree Buschmann (Buschel) - Wednesday, 14 May 2008, 20:30 GMT
Task Type Patches
Category Operating System/Drivers
Status Closed
Assigned To No-one
Operating System PortalPlayer-based
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


This patch enabled the additional 32KB IRAM for PP5022 and PP5024 processors. This is kind of a first approach and uses 64KB for core and 64KB for plugin/codec.

An additional patch for the musepack decoder takes advantage of this additional IRAM and is sped up by ~6.6%.

EDIT_1: Exchanged the iram-patch (removed the mpc-related changes).
EDIT_2: Exchanged the mpc-patch (removed iram-unrelated changed).
This task depends upon

Closed by  Andree Buschmann (Buschel)
Wednesday, 14 May 2008, 20:30 GMT
Reason for closing:  Accepted
Additional comments about closing:  Committed with r17506 and 17507.
Comment by MichaelGiacomelli (saratoga) - Monday, 12 May 2008, 14:26 GMT
I would really prefer to give the entire extra 32KB of IRAM to codecs. They can use it a lot more then core.
Comment by Andree Buschmann (Buschel) - Monday, 12 May 2008, 14:48 GMT
saratoga: v2 give 80KB of IRAM to plugin/codec, core's IRAM is untouched.
Comment by Jens Arnold (amiconn) - Tuesday, 13 May 2008, 23:59 GMT
I tried the patch on X5 (Coldfire MCF5250, also having 128KB or IRAM). It sped up decoding of my test track from 482% realtime to 615% realtime (~27% speedup)!

I've attached the modified patch, which also corrects the checks for PP5022 and PP5024. Those macros don't work like the CPU_* group macros. They are always defined, which would cause v1 to break on any other CPU than PP5022/PP5024. You're supposed to check CONFIG_CPU.

Regarding IRAM distribution - I'd prefer to keep even distribution between core and codecs/plugins, like it's already done in SVN for MCF5250. While IRAM might be quite useful for codecs, it might also be quite useful in the core (e.g. for better DSP code), and there are often also some target specific tasks in the core which profit from extra IRAM.
Comment by MichaelGiacomelli (saratoga) - Wednesday, 14 May 2008, 16:14 GMT
I don't see any point in 64/64k on PP. We're only using about 2/3 of the available IRAM as it is, and theres no indication that theres some compelling feature coming that would require as much or more IRAM as we currently use for the entire core. 48K is arguably too much already, and should be reduced in order to save battery life decoding . . .

I won't argue too much for Coldfire though, since I don't have any of those targets.
Comment by Andree Buschmann (Buschel) - Wednesday, 14 May 2008, 19:54 GMT
iram_v02 patch submitted with r17506, mpc_v02-patch submitted with r17507.