QUADSPI and performance

To store all that graphics used in the games, I added an external flash memory, MX25L512 which has 64 Mb and a QUADSPI interface. I knew that an external flash would be slower to read from than using the internal flash but I was not sure how much slower it would be. I did a quick test: using DMA2D I draw one bitmap stored in the internal flash and one bitmap stored in the external flash. The bitmaps are identical (I copy the bitmap stored in the internal flash to the external memory).

As you can see from the result, the bitmap stored in the external flash takes around 0.122 ms to be copied while the one stored in the internal flash takes 12 us.

The top image are drawn from the external flash and the lower from internal flash

This is slightly disappointing, I understand it will be slower but I was hoping that the factor was not as high as 10 times. There are few more tricks I can do to speed up the external flash like activating DTR mode (that is the data is shifted out both on the falling clock edge and the trailing one) which would allow for higher speed and I will also double check the QUADSPI settings so I make sure to use the highest possible clock frequence.

Hopefully I can squeeze out some more performance when reading from QUADSPI.