Page 1 of 1

Performance benchmark compared to Cortex M4 series

Posted: Wed Mar 21, 2018 7:44 am
by taral.shah
Hello all.
ESP8266 and ESP32 are very nice chipsets with wide open source support and tools. I was just comparing ESP32 which is having Xtensa dual-core (or single-core) 32-bit LX6 microprocessor, operating at 160 or 240 MHz. We are thinking to migrate our product to ESP32.
So I wanted to know how it stands in terms of performance when it is compared to other ARM Cortex-M4 series microcontrollers?
Searching internet was not that much helpful, because Tensilica xtensa lx6 is not widely adopted yet.
Can any member or official Espressif developer here, give me this useful information?

Thanks in advance for your precious time efforts.

Re: Performance benchmark compared to Cortex M4 series

Posted: Tue Feb 26, 2019 3:53 pm
by johnsmith
Funny, I was looking for the same thing, and found:
http://www.eventiotic.com/eventiotic/fi ... d6bb4b.pdf
As I've understood, Extensa LX6 (esp32 CPU) is aprox. on par with Cortex M4, but below M7 :cry:

Also interesting read: https://nullcon.net/website/archives/pd ... final).pdf

Re: Performance benchmark compared to Cortex M4 series

Posted: Wed Feb 27, 2019 2:21 pm
by Deouss
From what I see in that pdf - Xtensa is a beast)
"Hello World" 6 Asm instructions vs 9 ARM !! :)
I think ARMs are fairly old tech.

Re: Performance benchmark compared to Cortex M4 series

Posted: Thu Feb 28, 2019 9:34 am
by luisonoff
I did a very similar comparison in terms of performance and energy consumption with info and tests gathered from the internet a while ago... can't find my notes on that.

If I remember correctly, the "only" good things about Xtensa and ESP32 were the price, the higher clock and dual core, and of course wifi. With drawback of poor support in terms of compilers and compatible tools, and much worse in terms of energy efficiency.

For example, the new Arm Cortex-M33 has a much better performance ratio per mA or per MHz. I'm telling from memory but I recall that in theory single core M33 at 120MHz was equivalent in performance to dual core ESP32 at 240MHz, while consuming much less.
Or the Cortex M7 from ST consuming 100mA (1.4x vs ESP32 which consumes aprox 70mA) and giving 5x more performance than ESP32.

I believe the "poor" performance of ESP32 has to do with access to external flash/ram, and cache stuff, etc.

I really wish Espressif left Xtensa apart and used ARM or RiscV for future chips.
Please somebody correct me if I am mistaken in my conclusions.

Re: Performance benchmark compared to Cortex M4 series

Posted: Thu Feb 28, 2019 10:09 am
by ESP_Sprite
FWIW, for new chips we're certainly not married to using Xtensa, so you may see a different architectures show up eventually. We're certainly also looking into making chips on the more-powerful side of things.

Re: Performance benchmark compared to Cortex M4 series

Posted: Sat Mar 02, 2019 11:07 pm
by rudi ;-)
ESP_Sprite wrote:
Thu Feb 28, 2019 10:09 am
FWIW, for new chips we're certainly not married to using Xtensa, so you may see a different architectures show up eventually. We're certainly also looking into making chips on the more-powerful side of things.
finally, public is spoken about it :)
;-)

Re: Performance benchmark compared to Cortex M4 series

Posted: Sat Dec 10, 2022 4:28 am
by StridingDragon
The biggest performance bottleneck of the ESP32 is its slow SPIRAM—80Mhz at the most. It turns any memory-intensive application into molasses. Even DMA transfers are completely bottlenecked by it. Further, what little of the 240MHz memory on-chip memory there is, is way too little for any serious application and to make matters worse, it is bifurcated so you cannot even allocate decent-sized chunks of it.

The ESP32 does not need a better processor, really. The Xtensa is actually quite a beast. What it needs is a faster SPI bus.

…and a few more GPIO pins so you don't lose JTag as soon as you add a few components.

Re: Performance benchmark compared to Cortex M4 series

Posted: Sun Dec 11, 2022 1:45 am
by ESP_Sprite
You may want to look at the ESP32-S3 then. It supports octal DDR PSRAM, which is 4x as fast as the quad SDR PSRAM that is in the ESP32, and rather than using JTAG and serial pins for flashing and debugging, it has a built-in USB-serial-JTAG converter; you only need two pins and you can connect those directly to an USB port of your computer to debug/flash the system. Oh, and it's got those 'few more GPIOs' you want on top of that as well.