Skip to content

LCD-7: 64-byte data cache lines and a 32 KB instruction cache for LVGL - #17

Merged
bdbarnett merged 1 commit into
mainfrom
lcd7-cache
Sep 25, 2026
Merged

bdbarnett merged 1 commit into
mainfrom
lcd7-cache

Conversation

@bdbarnett

@bdbarnett bdbarnett commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Follow-up to #15. Measured with a Spotify remote UI on the panel, no playback: full-screen redraw 176 → 146 ms with 64-byte data cache lines alone (no memory cost), then 117 ms with a 32 KB instruction cache as well. A list row went 66 → 44 ms, and a panel switch 176 → 146 ms. The instruction cache costs 16 KB of internal RAM: DMA-capable free goes from 64 to 48 KB (minimum 45 KB), measured via the audio app's debug endpoint. A 64 KB data cache got rows to 30 ms but left ~13 KB, too little for Wi-Fi to be safe, so it isn't included.

Measured with spotapi's remote: full-screen redraw 176 -> 117 ms, a list row
66 -> 44 ms, panel switch 176 -> 146 ms; DMA-capable RAM free 64 -> 48 KB.
@bdbarnett
bdbarnett merged commit 5ec39ee into main Sep 25, 2026
@bdbarnett
bdbarnett deleted the lcd7-cache branch September 25, 2026 20:44
bdbarnett added a commit that referenced this pull request Sep 25, 2026
On top of #17's 64-byte lines and 32 KB instruction cache. Measured with
the board decoding and streaming audio while the LVGL UI runs: full redraw
205 -> 147 ms, panel switch 88 -> 59 ms, 30 list rows built 780 -> 399 ms
and laid out 608 -> 335 ms. The same layout is ~216x faster on a desktop:
the board is memory-bound and the data cache is the lever. Internal RAM
free goes 54 -> 23 KB; a 30-minute soak of real use (about 25 track skips
and picks, Wi-Fi streaming, the USB host running) kept a minimum of 17 KB
with no allocation failures, Wi-Fi drops or audio stalls.

The fragment's header no longer names the applications it was measured
with; it describes them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant