I feel like this article is missing some important context. The Cortex M series is an embedded microcontroller without a memory management unit (MMU). This means that it does not run standard Linux, which is why the Android Wear devices do not use a Cortex M. Android Wear is a heavyweight platform that uses hundreds of megabytes of RAM and requires the horsepower and services of a full CPU. Even a custom designed SoC for Android Wear would use a Cortex A-series part for this reason.
There also already is a higher performing option between the M4 and the A7 as well - the Cortex A5, which offers the best performance per watt in the current ARM lineup. I am sure there will be higher performing Cortex M series parts in the future, but usually applications with greater horsepower needs also require more memory, and can take better advantage of a higher performance Cortex A-series core. Once you have more DRAM at your disposal, you also don't need integrated flash (a common feature of Cortex M parts).
As a microcontroller platform, there are substantially more Cortex M devices out there than Cortex A devices. Your smartphone might have one or two just providing auxiliary functions. Chances are you have several other electronic devices that have a Cortex M or three inside powering basic functions, especially now with Cortex M0 intruding on the 8-bit microcontrollers' turf (think AVR and 8051). And of course the Internet of Things is largely made up of Cortex M parts.
Why do you assert that the Cortex A5 has a higher performance per watt than Cortex A7?
The higher performing option between the A4 and A7 is called Cortex R7. Not to mention that widely expected next generation Cortex R series processor that should be released soon.
I expect that much of the internet of things market will be addressed by the Cortex R series and future X86 compatible micro-architectures released under the "Quark" brand.
When do you foresee an M processor (M5 maybe?) sporting a memory management unit that can run standard Linux?
Cortex M3 is used in the Arduino Due.., Cortex M0+ is used in the recently announced Arduino Zero. These are Atmel chips that use ARM ip. Texas Instruments is using the Cortex M4 in it's TivaC series of microcontrollers they've developed.
Although you can't run a proper OS on these chips, there are alternatives realtime operatirn gsystems like FreeRTOS, NilRTOS, and ChibiOS/RT to give you real time multithreaded capability in a tiny memory foot print.
There are versions of the Wiring/Processing IDE available for the Arduino (Arduino) and TI platforms (Energia) that hide allot of the ugliness for beginning programmers. However, folks can use higher end tools like Texas Instrument's Code Composer or Atmel Studio. Additionally, there are CodeBlocks, Eclipse, XCode, Visual Studio (in fact Atmel Studio is based off of VS) plugins so that you can use your favorite IDE.
Furthermore, folks are developing very nice C++ event driven OO frameworks (like Cosa) that extend the use/flexibility of these minimalist platforms and overcome the shortcomings of existing libraries/infrastructure. (note: the Cosa example I listed is AVR only at the moment, but hopefully he will add classes and device drivers for some of the ARM stuff)
Even without the OS, we can do things like use GSM modems, LCD screens in graphics modes, GPS, WiFi, serve up web pages, post to twitter (seriously) all from tiny devices using these basic ARM processors.
(note: I'm a big user of Arduino DUE (cortex m3), but have been seduced by TIs TivaC because of built in Ethernet and EEProm... yes the Cortex m3 has built-in Ethernet, but the Italians (Arduino folks) didn't implement it on the DUE.
There are some microcontroller type development board that use A series ARM processors... Both the Arduino TRE and BeagleBone Black use the TI Sitara series microprocessor/microcontroller.... When you step up to this class... you gain Linux. There's also a hybrid board offered by Arduino called the YUN, but it's an oddball that uses an AVR processor for I/O, but takes advantage of excess processing capability of the included WiFi adapter to run a scaled down Linux...
Somewhat off-topic question - do you know of a set of free tools to program an Arduino Due that is more advanced than the Arduino IDE? I'm looking for a toolchain that allows for more complex applications so that I can explore the capabilities of the Cortex M3.
Great article! I love these little Cortex M cpu's. They are quite a bit faster than your typical ATMega or something, which can be kinda handy for some things. I am working on a few different designs that will use Cortex M3's as the MCU!
It's amazing to see a 32 bit processor in a 1.6x2.0 mm package with 20 'pins', both from a technology and a marketing standpoint. For typical microcontroller applications it will compete with some brutal competition where price is key. I wonder how many they will sell? A better question is 'how many engineers are willing to pay $0.10 more to go from 8 or 16 to 32 bits?' I don't mean this in a skeptical way, more just curiosity.
"32-bit microcontrollers accounted for over 34% of the market in 2013; the segment is further expected to dominate global market revenue over the next six years." (from https://www.linkedin.com/today/post/article/201406...
Arm can exploit the fact that the instruction set scales all the way from ultra low power m0 all the way up to very capable embedded controllers m4. Add to the fact that they can exploit economies of scale in that the core is used across socs from various vendors just like the A series. The pricing on some of these socs is very agressive.
I wonder how these extreme low power chips compare to ancient x86 processors like the 486DX performance wise... Would they be somewhere in the same league?
We’ve updated our terms. By continuing to use the site and/or by logging into your account, you agree to the Site’s updated Terms of Use and Privacy Policy.
14 Comments
Back to Article
bmastenbrook - Monday, August 18, 2014 - link
I feel like this article is missing some important context. The Cortex M series is an embedded microcontroller without a memory management unit (MMU). This means that it does not run standard Linux, which is why the Android Wear devices do not use a Cortex M. Android Wear is a heavyweight platform that uses hundreds of megabytes of RAM and requires the horsepower and services of a full CPU. Even a custom designed SoC for Android Wear would use a Cortex A-series part for this reason.There also already is a higher performing option between the M4 and the A7 as well - the Cortex A5, which offers the best performance per watt in the current ARM lineup. I am sure there will be higher performing Cortex M series parts in the future, but usually applications with greater horsepower needs also require more memory, and can take better advantage of a higher performance Cortex A-series core. Once you have more DRAM at your disposal, you also don't need integrated flash (a common feature of Cortex M parts).
As a microcontroller platform, there are substantially more Cortex M devices out there than Cortex A devices. Your smartphone might have one or two just providing auxiliary functions. Chances are you have several other electronic devices that have a Cortex M or three inside powering basic functions, especially now with Cortex M0 intruding on the 8-bit microcontrollers' turf (think AVR and 8051). And of course the Internet of Things is largely made up of Cortex M parts.
1008anan - Thursday, August 21, 2014 - link
bmastenbrook - Monday, August 18, 2014 - linkWhy do you assert that the Cortex A5 has a higher performance per watt than Cortex A7?
The higher performing option between the A4 and A7 is called Cortex R7. Not to mention that widely expected next generation Cortex R series processor that should be released soon.
I expect that much of the internet of things market will be addressed by the Cortex R series and future X86 compatible micro-architectures released under the "Quark" brand.
When do you foresee an M processor (M5 maybe?) sporting a memory management unit that can run standard Linux?
HardwareDufus - Friday, August 22, 2014 - link
Cortex M3 is used in the Arduino Due.., Cortex M0+ is used in the recently announced Arduino Zero. These are Atmel chips that use ARM ip. Texas Instruments is using the Cortex M4 in it's TivaC series of microcontrollers they've developed.Although you can't run a proper OS on these chips, there are alternatives realtime operatirn gsystems like FreeRTOS, NilRTOS, and ChibiOS/RT to give you real time multithreaded capability in a tiny memory foot print.
There are versions of the Wiring/Processing IDE available for the Arduino (Arduino) and TI platforms (Energia) that hide allot of the ugliness for beginning programmers. However, folks can use higher end tools like Texas Instrument's Code Composer or Atmel Studio. Additionally, there are CodeBlocks, Eclipse, XCode, Visual Studio (in fact Atmel Studio is based off of VS) plugins so that you can use your favorite IDE.
Furthermore, folks are developing very nice C++ event driven OO frameworks (like Cosa) that extend the use/flexibility of these minimalist platforms and overcome the shortcomings of existing libraries/infrastructure. (note: the Cosa example I listed is AVR only at the moment, but hopefully he will add classes and device drivers for some of the ARM stuff)
Even without the OS, we can do things like use GSM modems, LCD screens in graphics modes, GPS, WiFi, serve up web pages, post to twitter (seriously) all from tiny devices using these basic ARM processors.
(note: I'm a big user of Arduino DUE (cortex m3), but have been seduced by TIs TivaC because of built in Ethernet and EEProm... yes the Cortex m3 has built-in Ethernet, but the Italians (Arduino folks) didn't implement it on the DUE.
There are some microcontroller type development board that use A series ARM processors... Both the Arduino TRE and BeagleBone Black use the TI Sitara series microprocessor/microcontroller.... When you step up to this class... you gain Linux.
There's also a hybrid board offered by Arduino called the YUN, but it's an oddball that uses an AVR processor for I/O, but takes advantage of excess processing capability of the included WiFi adapter to run a scaled down Linux...
Anyway, this stuff is fun to get into.... Have a look at Texas Instruments here: http://www.ti.com/lsds/ti/microcontrollers_16-bit_...
or Arudino here: http://www.arduino.com
bminor13 - Monday, August 25, 2014 - link
Somewhat off-topic question - do you know of a set of free tools to program an Arduino Due that is more advanced than the Arduino IDE? I'm looking for a toolchain that allows for more complex applications so that I can explore the capabilities of the Cortex M3.extide - Monday, August 18, 2014 - link
Great article! I love these little Cortex M cpu's. They are quite a bit faster than your typical ATMega or something, which can be kinda handy for some things. I am working on a few different designs that will use Cortex M3's as the MCU!PICman - Monday, August 18, 2014 - link
It's amazing to see a 32 bit processor in a 1.6x2.0 mm package with 20 'pins', both from a technology and a marketing standpoint. For typical microcontroller applications it will compete with some brutal competition where price is key. I wonder how many they will sell? A better question is 'how many engineers are willing to pay $0.10 more to go from 8 or 16 to 32 bits?' I don't mean this in a skeptical way, more just curiosity.ET - Tuesday, August 19, 2014 - link
"32-bit microcontrollers accounted for over 34% of the market in 2013; the segment is further expected to dominate global market revenue over the next six years." (from https://www.linkedin.com/today/post/article/201406...tuxfool - Tuesday, August 19, 2014 - link
Arm can exploit the fact that the instruction set scales all the way from ultra low power m0 all the way up to very capable embedded controllers m4. Add to the fact that they can exploit economies of scale in that the core is used across socs from various vendors just like the A series. The pricing on some of these socs is very agressive.Slaanesh - Tuesday, August 19, 2014 - link
I wonder how these extreme low power chips compare to ancient x86 processors like the 486DX performance wise... Would they be somewhere in the same league?Kvaern - Wednesday, August 20, 2014 - link
http://www.netlib.org/performance/html/dhrystone.d...Enjoy.
jospoortvliet - Thursday, August 21, 2014 - link
So clock for clock very similar to the 486? Not that bad 😎bernstein - Thursday, August 21, 2014 - link
just remember that an 486DX has a MMU whereas Cortex-M do not. So if you want to an OS like Windows/DOS/Linux you need a Cortex-A part.Govttopnews - Friday, April 19, 2019 - link
Nice information keep it up. sharing is caring thank you. from <a href="https://governmenttopnews.com/railway-rrb-jobs-not... Top News</a>Govttopnews - Friday, April 19, 2019 - link
Nice information Thank Youhttps://governmenttopnews.com/railway-rrb-jobs-not...