ESP8266 Sans RF

Anything not related to STM32
User avatar
martinayotte
Posts: 1179
Joined: Mon Apr 27, 2015 1:45 pm

Re: ESP8622 Sans RF

Post by martinayotte » Fri Apr 22, 2016 3:57 pm

Yes ! Those results are similar with the ones I got.
The really small gain in the IRAM is probably a gain from the first iteration where the non-IRAM is bring into cache, all other iterations becomes identical, since both versions are already inside the IRAM.

User avatar
mrburnette
Posts: 1785
Joined: Mon Apr 27, 2015 12:50 pm
Location: Greater Atlanta
Contact:

Re: ESP8622 Sans RF

Post by mrburnette » Fri Apr 22, 2016 10:06 pm

martinayotte wrote:Yes ! Those results are similar with the ones I got.
The really small gain in the IRAM is probably a gain from the first iteration where the non-IRAM is bring into cache, all other iterations becomes identical, since both versions are already inside the IRAM.
Thank you for the confirmation of similar results. While aware of the cache memory construction in the uC, I had not (obviously from my failed 1st attempt) previously used it. The overall small performance gain leads me to believe that the vast majority of Arduino users need not worry about such implementations.

Ray

rajdarge
Posts: 56
Joined: Thu Oct 29, 2015 10:27 am

Re: ESP8622 Sans RF

Post by rajdarge » Wed Apr 27, 2016 11:38 pm

RogerClark wrote:Lol...

I think the quality of the EPS8266 posting here, are far better than on esp8266.com ;-)

I think virtually all of us use the ESP8266 as well as the STM32.

I designed a PCB that has a Maple mini, ESP-12 as well as a ILI9341 and an nRF905, which I use for various projects ( though it was originally designed just as a display)
Where can I buy the breadboard kit to make, please?
pretty please.....

gbulmer
Posts: 67
Joined: Wed Sep 23, 2015 12:04 am
Location: UK

Re: ESP8622 Sans RF

Post by gbulmer » Thu Apr 28, 2016 6:58 pm

I apologise for harking back to this a week late.

I have no issue with the basic idea of trying to compare STM32F with non-RF ESP8266 using ports of the same program.

However, I am concerned there may be some young, impressionable, folks reading the site, who may misunderstand ...
mrburnette wrote: <...>

.... With RISC hardware, the system clock determines the MIPS (excepting cores with look-ahead and branch determination and cpu pre-cache.) But for most ARM inexpensive uC's, the max clock is the determining factor; THEREFORE, 80MHz is faster than 72MHz... faster by 80/72 = 11.11%
Nowadays, RISC is merely an acronym for a philosophy or approach to designing Instruction Set Architectures (ISAs).

It is absolutely not true that one 80MHz RISC CPU is faster than a different 72MHz RISC CPU, even for "ARM inexpensive" CPUs.

I could not find an ARM, or ARM Licensee, presentation on the web which states the relative performance of ARM Cortex-M CPUs. I have been to presentations where they do show those figures, without needing an NDA, so I believe the numbers are in the public domain.

However, this Wikipedia List of ARM microarchitectures is likely correct or ARM, would have changed it, and the section of interest appears to have been stable for more than 6 months.

It says:
Cortex-M0 0.84 DMIPS/MHz
Cortex-M3 1.25 DMIPS/MHz
So an ARM Cortex-M3 could run 20% more slowly than an ARM Cortex-M0, and still beat it easily. These are both in-order, 3-stage pipeline CPUs. So it seems like a reasonable point of comparison.

Further, the ESP8266 does not have an ARM CPU, ESP8266 uses a Cadence Tensilica Xtensa LX106. So clock-speed is unlikely to provide enough CPU-performance information.

The wikipedia Tenselica Xtensa article says "This 32-bit architecture features a compact 16- and 24-bit instruction set ... The base instruction set has 80 RISC instructions and includes a 32-bit ALU, up to 64 general-purpose 32-bit registers". So, on-paper, comparable to an STM32F103's ARM Cortex-M3; i.e. I wouldn't expect either of them to be obviously superior, and hence make comparison a moot point.

Summary: clock-speed isn't enough, and the architectures aren't different enough to guess which is better.

That Wikipedia ESP8266 article also confirms "External QSPI flash".

A quick web-search turned up this Microchip device which runs at 80MHz, and hence provide "320 Mbit/s sustained data rate" (40MB/s). Mouser lists it at under £1 GBP 10-off, so it seem like a plausible cost to be on an ESP8266 module. So that seems like the sort of part-spec one might mate with an 80MHz CPU. Assuming the Wikipedia page is correct, and the instructions are, at least, two bytes, then an 80MHz QSPI flash could support 20MIPS continuous. So that would look like 3 wait states if the CPU were executing directly from QSPI flash

An STM32F103 has only two wait states at 72MHz for Flash, and it has two 8-byte pre-fetch buffers, so it should execute instructions significantly faster than a comparable 80MHz CPU executing only from QSPI.

Finally that Wikipedia ESP8266 article says 64 KiB of instruction RAM, 96 KiB of data RAM.

However, I couldn't see any explanation of how code gets placed into instruction RAM. So performance might change quite dramatically as program size increases, depending on the mechanism used to place code into instruction RAM. So, a very small benchmark might fit into the ESP8266's on-board instruction RAM and make the ESP8266 appear much better than it would be for realistic-size applications. On the other hand, it may have a very smart mechanism for caching code into instructions RAM and the performance may be very good for large programs which follow the usual 80/20 rule-of-thumb.

Summary: IMHO, a good comparison might be something more representative of application code-size than something as compact as the primes code.
Last edited by gbulmer on Sat Apr 30, 2016 9:45 pm, edited 1 time in total.

User avatar
RogerClark
Posts: 6096
Joined: Mon Apr 27, 2015 10:36 am
Location: Melbourne, Australia
Contact:

Re: ESP8622 Sans RF

Post by RogerClark » Thu Apr 28, 2016 9:22 pm

@gbulmer

Thanks for your excellent post.

I totally agree, and have previously posted bits of similar information.

If the ESP8266 didn't have wifi, people would dismiss it as an "also ran" in terms of its processing power and lack of normal peripherals found on normal MCUs.

But it has gained traction, and the production volumes allow its cost to be low.

Also it would not any where near as popular if Iggr had not done the Arduino port.
(I find the Open Source, non Arduino toolchain is a nightmare to install, and only seems to work on 32 bit linuxes)

User avatar
mrburnette
Posts: 1785
Joined: Mon Apr 27, 2015 12:50 pm
Location: Greater Atlanta
Contact:

Re: ESP8622 Sans RF

Post by mrburnette » Thu Apr 28, 2016 9:29 pm

gbulmer wrote:I apologise for harking back to this a week late.

I have no issue with the basic idea of trying to compare STM32F with non-RF ESP8266 using ports of the same program. However, I am concerned there may be some young, impressionable, folks reading the site, who may misunderstand ...
<...>
The iRAM experiment on the ESP8266 was a test suggested by another. It ran faster than the convential ESP8266 under Arduino - but still slower than thd STM32F103 test.

To all you Impressionable codets:
  • I have a STM black box called a Maple Mini
  • I have a second black box called a NodeMCU
One version of a prime number test ran faster on the 72MHz Maple Mini than on the ESP8266-based NodeMCU at 160MHz ... even when the ESP auto had its turbo-charger engaged.

Honestly, I was just playing around with 2 production cars using the same gasoline. One consistently beat the other in the quarter-mile.


Ray

simonf
Posts: 180
Joined: Sun Jul 26, 2015 4:03 pm

Re: ESP8622 Sans RF

Post by simonf » Sat May 07, 2016 2:04 am

I thought my dyslexia had developed into dyscalculia then I realised it should be "ESP8266 Sans RF" a typo.

User avatar
martinayotte
Posts: 1179
Joined: Mon Apr 27, 2015 1:45 pm

Re: ESP8622 Sans RF

Post by martinayotte » Sat May 07, 2016 1:17 pm

What do you mean ? "Sans" is the french word for "Without" ...

User avatar
WereCatf
Posts: 167
Joined: Sat Apr 16, 2016 5:30 pm

Re: ESP8622 Sans RF

Post by WereCatf » Sat May 07, 2016 2:22 pm

martinayotte wrote:What do you mean ? "Sans" is the french word for "Without" ...
He is talking about the misspelling of ESP8266 -- look at the title, it says "ESP8622," not "ESP8266"

User avatar
martinayotte
Posts: 1179
Joined: Mon Apr 27, 2015 1:45 pm

Re: ESP8622 Sans RF

Post by martinayotte » Sat May 07, 2016 2:25 pm

I'm dyslexic too :D

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest