mmus are a performance hack; they make your memory-protected code run faster than if you use a jit compiler that inserts memory bounds checks. but suppose running code that way costs you a factor of 10× in performance. so maybe your 30-dhrystone-mips processor (https://www.lcsc.com/product-detail/Microcontrollers-MCU-MPU..., say, or https://www.lcsc.com/product-detail/Microcontrollers-MCU-MPU... for 2×) performs roughly like a 3 dhrystone mips processor. if we believe https://netlib.org/performance/html/dhrystone.data.col0.html that's roughly the performance of a sun 3/160, an amiga 2000, or a 40 megahertz amd clone 80386 pc (though much slower than an intel 386)
that's much faster than many multiuser machines i've used
the promise of java (and oberon) was that such large runtime overhead would be unnecessary with better static checking, and j2me and oberon seem to have largely borne that out
the bigger issue is i think that cheap microcontrollers don't have much ram or off-chip bandwidth. if you want a megabyte on-chip, you end up with things like https://www.digikey.com/en/products/detail/stmicroelectronic... (a 480-megahertz cortex-m7 with 128 kibibytes of flash and a mebibyte of ram for usd11.27), https://www.digikey.com/en/products/detail/infineon-technolo... (a dual-core 150-megahertz cortex-m0+ with 2 mebibytes of flash and a mebibyte of ram for usd12.92), https://www.digikey.com/en/products/detail/nxp-usa-inc/MIMXR... (a 600-megahertz cortex-m7 using external program memory and a mebibyte of ram for usd14.48), or https://www.digikey.com/en/products/detail/renesas-electroni... (a 240-megahertz renesas rx72n with 4 mebibytes of flash and a mebibyte of ram for usd20.85)
i'm pretty sure none of these have mmus either but i forget the rx architecture
a whole esp32 module like https://www.lcsc.com/product-detail/Development-Boards-Kits_... is cheaper and has more ram though. that one has 8 megs of psram and costs usd4.93
mmus are a performance hack; they make your memory-protected code run faster than if you use a jit compiler that inserts memory bounds checks. but suppose running code that way costs you a factor of 10× in performance. so maybe your 30-dhrystone-mips processor (https://www.lcsc.com/product-detail/Microcontrollers-MCU-MPU..., say, or https://www.lcsc.com/product-detail/Microcontrollers-MCU-MPU... for 2×) performs roughly like a 3 dhrystone mips processor. if we believe https://netlib.org/performance/html/dhrystone.data.col0.html that's roughly the performance of a sun 3/160, an amiga 2000, or a 40 megahertz amd clone 80386 pc (though much slower than an intel 386)
that's much faster than many multiuser machines i've used
the promise of java (and oberon) was that such large runtime overhead would be unnecessary with better static checking, and j2me and oberon seem to have largely borne that out
the bigger issue is i think that cheap microcontrollers don't have much ram or off-chip bandwidth. if you want a megabyte on-chip, you end up with things like https://www.digikey.com/en/products/detail/stmicroelectronic... (a 480-megahertz cortex-m7 with 128 kibibytes of flash and a mebibyte of ram for usd11.27), https://www.digikey.com/en/products/detail/infineon-technolo... (a dual-core 150-megahertz cortex-m0+ with 2 mebibytes of flash and a mebibyte of ram for usd12.92), https://www.digikey.com/en/products/detail/nxp-usa-inc/MIMXR... (a 600-megahertz cortex-m7 using external program memory and a mebibyte of ram for usd14.48), or https://www.digikey.com/en/products/detail/renesas-electroni... (a 240-megahertz renesas rx72n with 4 mebibytes of flash and a mebibyte of ram for usd20.85)
i'm pretty sure none of these have mmus either but i forget the rx architecture
a whole esp32 module like https://www.lcsc.com/product-detail/Development-Boards-Kits_... is cheaper and has more ram though. that one has 8 megs of psram and costs usd4.93