![]() |
Forum Index : Microcontroller and PC projects : Armmite - STM32H7: Performance Updates
Author | Message | ||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10025 |
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 |
||||
TassyJim![]() Guru ![]() Joined: 07/08/2011 Location: AustraliaPosts: 6213 |
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 |
||||
TassyJim![]() Guru ![]() Joined: 07/08/2011 Location: AustraliaPosts: 6213 |
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 Jim VK7JH MMedit |
||||
Paul_L Guru ![]() Joined: 03/03/2016 Location: United StatesPosts: 769 |
Hi Jim, In the previous thread Geoff posted an explanation of SD card performance as follows: 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 |
||||
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |