DIO/QIO Flash Speed
Posted: Sun Jun 12, 2016 6:01 am
Have you ever wondered what sort of difference the flash modes DIO or QIO make?
There's an issue opened about using the extra GPIO9/10 pins by using the DIO flash mode and I wondered if that might make the ESP much slower, so gave it a try with a little test sketch.
The options are using a flash mode of DIO or QIO, a flash speed of 40MHz or 80MHz, and a CPU speed of 80MHz or 160MHz. The results of those reading 160K from flash give:
Time ....Mode ..Flash ......CPU
(ms) ..................Speed .Speed
100 dio 40MHz 80MHz
86 qio 40MHz 80MHz
84 dio 80MHz 80MHz
78 qio 80MHz 80MHz
68 dio 40MHz 160MHz
55 qio 40MHz 160MHz
53 dio 80MHz 160MHz
46 qio 80MHz 160MHz
What does that show? Probably that most of the time with most use cases the flash mode doesn't really matter if you need an extra GPIO. But if you're running something like a webserver with pages in flash it might be worth using QIO mode and 80MHz flash speed and 160MHz CPU speed.
Any other comments?
There's an issue opened about using the extra GPIO9/10 pins by using the DIO flash mode and I wondered if that might make the ESP much slower, so gave it a try with a little test sketch.
The options are using a flash mode of DIO or QIO, a flash speed of 40MHz or 80MHz, and a CPU speed of 80MHz or 160MHz. The results of those reading 160K from flash give:
Time ....Mode ..Flash ......CPU
(ms) ..................Speed .Speed
100 dio 40MHz 80MHz
86 qio 40MHz 80MHz
84 dio 80MHz 80MHz
78 qio 80MHz 80MHz
68 dio 40MHz 160MHz
55 qio 40MHz 160MHz
53 dio 80MHz 160MHz
46 qio 80MHz 160MHz
What does that show? Probably that most of the time with most use cases the flash mode doesn't really matter if you need an extra GPIO. But if you're running something like a webserver with pages in flash it might be worth using QIO mode and 80MHz flash speed and 160MHz CPU speed.
Any other comments?