Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 00:10 22 May 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Armmite - STM32H7: Performance Updates

Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8610
Posted: 02:29pm 31 Jul 2018
Copy link to clipboard 
Print this post

I was embarrassed that the Armmite performed so badly in the recent thread looking at SD card read/write performance so I have re-written the SDcard driver and also done some other performance tuning and am starting to see some very good results. Of course the Basic syntax is absolutely standard and all test programs are identical. The updated code will be posted on the main Armmite thread but is you want a fast Micromite then ......

I/O tests


loop read file write file mid$() val() total
Dell i5 3.4GHz 266 7047 2891 1906 1391 13516
Cel Quad 2GHz 844 19219 8203 6125 4157 38579
MM+ @ 100MHz 16257 565035 365102 143456 84823 1174760
MM+ @ 120MHz 13532 491706 325843 119408 70604 1021110
MMX @ 200MHz 6477 202206 189466 64282 33824 496432
MMX @ 252MHz 5109 170491 189127 51147 26971 442913
STM32H7 @ 400MHz 1054 149246 158817 26728 14282 350141


Simple Basic lines-per-second benchmark


MM+ @100MHz 33046
MMX @ 252MHz 106609
STM32H7 @ 400MHz 202429


Grainbench (see this thread)


Micromite, MX170/40MHz 1181
Micromite, MX170/48MHz 1417
Micromite, MX470/100MHz 2055
MMX @ 252MHz 4862
STM32H7 @ 400MHz 9996


Basic speed test benchmark (see this thread)

ABC 800 single precision 0.9 1.8 6.0 5.9 6.3 11.6 19.6 2.9
ABC 800 double precision 1.2 2.2 10.0 10.6 11.0 17.8 26.4 14.4
IBM PC 1.5 5.2 12.1 12.6 13.6 23.5 37.4 3.5
Apple III 1.7 7.2 13.5 14.5 16.0 27.0 42.5 7.5
VIC-20 1.4 8.3 15.5 17.1 18.3 27.2 42.7 9.9
ZX81 in "fast mode" 4.5 6.9 16.4 15.8 18.6 49.7 68.5 22.9

Maximite 0.016 0.144 0.196 0.205 0.354 0.512 0.721 0.310

Maximite with line Nos 0.016 0.131 0.193 0.194 0.245 0.393 0.582 0.241
Maximite without line Nos 0.016 0.111 0.173 0.173 0.192 0.336 0.525 0.220
MicroMite 40MHz 0.028 0.18 0.285 0.289 0.644 0.892 1.346 0.376
MicroMite 48MHz 0.023 0.15 0.237 0.24 0.536 0.744 1.121 0.313

st429 180Mhz 0.012 0.073 0.117 0.125 0.207 0.315 0.497 0.162
st407 168Mhz 0.010 0.067 0.104 0.111 0.195 0.290 0.443 0.146

MX470 120MHz MMBasic 0.013 0.082 0.135 0.135 0.265 0.380 0.597 0.174

st7 200Mhz 0.005 0.041 0.06 0.065 0.11 0.161 0.254 0.103

Micromite EXTREME 252MHz 0.006 0.042 0.065 0.072 0.125 0.185 0.267 0.12

STM32H7 @ 400MHz 0.002 0.02 0.034 0.037 0.062 0.086 0.129 0.059


Solar Eclipse Example Calculation (see this thread)


MM+ @100MHz 168.3 seconds
MMX @ 252MHz 96.5 seconds
STM32H7 @ 400MHz 56.9 seconds





Edited by matherp 2018-08-02
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 5923
Posted: 05:26am 03 Aug 2018
Copy link to clipboard 
Print this post

I did the test with a Sandisk Extreme SDcard.
Big improvement on the 'write big file' test.

loop read file write file mid$() val() total
Dell i5 3.4GHz 266 7047 2891 1906 1391 13516
Cel Quad 2GHz 844 19219 8203 6125 4157 38579
MM+ @ 100MHz 16257 565035 365102 143456 84823 1174760
MM+ @ 120MHz 13532 491706 325843 119408 70604 1021110
MMX @ 200MHz 6477 202206 189466 64282 33824 496432
MMX @ 252MHz 5109 170491 189127 51147 26971 442913
STM32H7 @ 400MHz 1054 149246 158817 26728 14282 350141
STM32H7 EXTcard 1102 113453 89173 26557 14242 244532


Jim
VK7JH
MMedit   MMBasic Help
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 5923
Posted: 06:18am 04 Aug 2018
Copy link to clipboard 
Print this post

Thought I would do a bit of playing again today and test some other cards.
I had a few full size CD cards.
A 256MB one failed to read formatted as FAT or FAT32.
A 128MB Amicroe branded card formatted in FAT worked so I did a speed test.

Nearly fell of my char when the result came out.
The ancient 128MB card beat the fancy new Sandisk Extreme card.
Probably due to the FAT vs FAT32.

loop read file write file mid$() val() total

Sandisk 32GB Extreme 1102 113453 89173 26557 14242 244532
Amicroe 128MB 1101 134085 63454 26552 14242 239438


JimEdited by TassyJim 2018-08-05
VK7JH
MMedit   MMBasic Help
 
Paul_L
Guru

Joined: 03/03/2016
Location: United States
Posts: 769
Posted: 08:37pm 04 Aug 2018
Copy link to clipboard 
Print this post

Hi Jim,

In the previous thread Geoff posted an explanation of SD card performance as follows:

  Quote  An SD card can be driven in a number of modes. 4-bit mode uses 4 signal lines and is used in computers, cameras, etc but last time I looked the protocol was propriety and you had to pay to use it.

SPI mode is free to use and that is what the Micromite Plus uses. In this mode the speed is limited by the speed of the SPI bus so there is no point in buying a fast card.


You seem to have found widely varying performance in SD cards. I wonder why there is a seeming variance between your observations and Geoff's analysis.

I'm glad somebody is finding this weird benchmark program that I wrote useful. It just seemed obvious to me that I had to give the I/O functions a real workout.

Paul in NY
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024