EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

ARM Cortex Mx vs the rest of the gang

Started by Klaus Kragelund May 30, 2017
On 31/05/17 05:57, rickman wrote:
> Tim Wescott wrote on 5/30/2017 11:07 PM: >> On Tue, 30 May 2017 14:32:42 +0000, Uwe Bonnes wrote: >> >>> klaus.kragelund@gmail.com wrote: >>> >>>> What I meant to say was that maybe ARM Cortex has potentially faster >>> releases of new devices and a more rapid platform for launching new >>> devices >>> >>> In my opinion, most work for a new uC must be done with the peripherals. >>> The Cortex M core is the same with different manufactureres, but the >>> peripherals are not... >> >> Yup. You could probably toss any core in the middle, and the work would >> still be to talk to the stuff attached to it. > > I think there is some loss of understanding of the question. ARM and > every other embedded CPU company is constantly working to improve their > CPUs to provide the maximum performance available from present > technology as best suits the applications of their customers. This is > not the same as designing new SoCs which vary in the memory size or > peripherals on chip. There is a TON of work that goes into optimizing > CPU designs which is a *MUCH* bigger effort than designing some > peripherals. Often the same peripherals used on the old family are used > on the new family. The only real task is the interconnection. > > You are very much trivializing the effort that goes into optimizing a > CPU architecture. That is why ARM has such a wide range of CPU > performance traded off against CPU size and power consumption. They > have taken the time and effort to provide good solutions at many points. >
I believe you are talking about the total effort for /designing/ the chip, while Tim was talking about the effort in /using/ the chip. It is not at all clear (to me, anyway) what the OP was talking about.
David Brown wrote on 5/31/2017 6:08 AM:
> On 31/05/17 05:57, rickman wrote: >> Tim Wescott wrote on 5/30/2017 11:07 PM: >>> On Tue, 30 May 2017 14:32:42 +0000, Uwe Bonnes wrote: >>> >>>> klaus.kragelund@gmail.com wrote: >>>> >>>>> What I meant to say was that maybe ARM Cortex has potentially faster >>>> releases of new devices and a more rapid platform for launching new >>>> devices >>>> >>>> In my opinion, most work for a new uC must be done with the peripherals. >>>> The Cortex M core is the same with different manufactureres, but the >>>> peripherals are not... >>> >>> Yup. You could probably toss any core in the middle, and the work would >>> still be to talk to the stuff attached to it. >> >> I think there is some loss of understanding of the question. ARM and >> every other embedded CPU company is constantly working to improve their >> CPUs to provide the maximum performance available from present >> technology as best suits the applications of their customers. This is >> not the same as designing new SoCs which vary in the memory size or >> peripherals on chip. There is a TON of work that goes into optimizing >> CPU designs which is a *MUCH* bigger effort than designing some >> peripherals. Often the same peripherals used on the old family are used >> on the new family. The only real task is the interconnection. >> >> You are very much trivializing the effort that goes into optimizing a >> CPU architecture. That is why ARM has such a wide range of CPU >> performance traded off against CPU size and power consumption. They >> have taken the time and effort to provide good solutions at many points. >> > > I believe you are talking about the total effort for /designing/ the > chip, while Tim was talking about the effort in /using/ the chip. It is > not at all clear (to me, anyway) what the OP was talking about.
Exactly my point, except CPU, not "chip". Tim's comment is tangential to the OPs question. -- Rick C
On Wed, 31 May 2017 12:08:52 +0200, David Brown wrote:

> On 31/05/17 05:57, rickman wrote: >> Tim Wescott wrote on 5/30/2017 11:07 PM: >>> On Tue, 30 May 2017 14:32:42 +0000, Uwe Bonnes wrote: >>> >>>> klaus.kragelund@gmail.com wrote: >>>> >>>>> What I meant to say was that maybe ARM Cortex has potentially faster >>>> releases of new devices and a more rapid platform for launching new >>>> devices >>>> >>>> In my opinion, most work for a new uC must be done with the >>>> peripherals. >>>> The Cortex M core is the same with different manufactureres, but the >>>> peripherals are not... >>> >>> Yup. You could probably toss any core in the middle, and the work >>> would still be to talk to the stuff attached to it. >> >> I think there is some loss of understanding of the question. ARM and >> every other embedded CPU company is constantly working to improve their >> CPUs to provide the maximum performance available from present >> technology as best suits the applications of their customers. This is >> not the same as designing new SoCs which vary in the memory size or >> peripherals on chip. There is a TON of work that goes into optimizing >> CPU designs which is a *MUCH* bigger effort than designing some >> peripherals. Often the same peripherals used on the old family are >> used on the new family. The only real task is the interconnection. >> >> You are very much trivializing the effort that goes into optimizing a >> CPU architecture. That is why ARM has such a wide range of CPU >> performance traded off against CPU size and power consumption. They >> have taken the time and effort to provide good solutions at many >> points. >> >> > I believe you are talking about the total effort for /designing/ the > chip, while Tim was talking about the effort in /using/ the chip. It is > not at all clear (to me, anyway) what the OP was talking about.
Yes, that's what Tim was talking about. Tim buys chips. Tim does not build chips. So as long as Tim is not reading about chip designers in Malaysia getting beaten with sticks because their pipelining techniques don't line up with orthodox Islam, Tim doesn't care about the details. peripherals core .-------------. .--------------. | | | | | this part | | here | | needs my |=========| be | | attention | | dragons | | | | | '-------------' '--------------' -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
On Wed, 31 May 2017 09:11:17 -0400, rickman wrote:

> David Brown wrote on 5/31/2017 6:08 AM: >> On 31/05/17 05:57, rickman wrote: >>> Tim Wescott wrote on 5/30/2017 11:07 PM: >>>> On Tue, 30 May 2017 14:32:42 +0000, Uwe Bonnes wrote: >>>> >>>>> klaus.kragelund@gmail.com wrote: >>>>> >>>>>> What I meant to say was that maybe ARM Cortex has potentially >>>>>> faster >>>>> releases of new devices and a more rapid platform for launching >>>>> new devices >>>>> >>>>> In my opinion, most work for a new uC must be done with the >>>>> peripherals. >>>>> The Cortex M core is the same with different manufactureres, but the >>>>> peripherals are not... >>>> >>>> Yup. You could probably toss any core in the middle, and the work >>>> would still be to talk to the stuff attached to it. >>> >>> I think there is some loss of understanding of the question. ARM and >>> every other embedded CPU company is constantly working to improve >>> their CPUs to provide the maximum performance available from present >>> technology as best suits the applications of their customers. This is >>> not the same as designing new SoCs which vary in the memory size or >>> peripherals on chip. There is a TON of work that goes into optimizing >>> CPU designs which is a *MUCH* bigger effort than designing some >>> peripherals. Often the same peripherals used on the old family are >>> used on the new family. The only real task is the interconnection. >>> >>> You are very much trivializing the effort that goes into optimizing a >>> CPU architecture. That is why ARM has such a wide range of CPU >>> performance traded off against CPU size and power consumption. They >>> have taken the time and effort to provide good solutions at many >>> points. >>> >>> >> I believe you are talking about the total effort for /designing/ the >> chip, while Tim was talking about the effort in /using/ the chip. It >> is not at all clear (to me, anyway) what the OP was talking about. > > Exactly my point, except CPU, not "chip". Tim's comment is tangential > to the OPs question.
I dunno. It sounded like Kraus wants to buy chips, not build cores. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Tim Wescott wrote on 6/1/2017 4:17 PM:
> On Wed, 31 May 2017 09:11:17 -0400, rickman wrote: > >> David Brown wrote on 5/31/2017 6:08 AM: >>> On 31/05/17 05:57, rickman wrote: >>>> Tim Wescott wrote on 5/30/2017 11:07 PM: >>>>> On Tue, 30 May 2017 14:32:42 +0000, Uwe Bonnes wrote: >>>>> >>>>>> klaus.kragelund@gmail.com wrote: >>>>>> >>>>>>> What I meant to say was that maybe ARM Cortex has potentially >>>>>>> faster >>>>>> releases of new devices and a more rapid platform for launching >>>>>> new devices >>>>>> >>>>>> In my opinion, most work for a new uC must be done with the >>>>>> peripherals. >>>>>> The Cortex M core is the same with different manufactureres, but the >>>>>> peripherals are not... >>>>> >>>>> Yup. You could probably toss any core in the middle, and the work >>>>> would still be to talk to the stuff attached to it. >>>> >>>> I think there is some loss of understanding of the question. ARM and >>>> every other embedded CPU company is constantly working to improve >>>> their CPUs to provide the maximum performance available from present >>>> technology as best suits the applications of their customers. This is >>>> not the same as designing new SoCs which vary in the memory size or >>>> peripherals on chip. There is a TON of work that goes into optimizing >>>> CPU designs which is a *MUCH* bigger effort than designing some >>>> peripherals. Often the same peripherals used on the old family are >>>> used on the new family. The only real task is the interconnection. >>>> >>>> You are very much trivializing the effort that goes into optimizing a >>>> CPU architecture. That is why ARM has such a wide range of CPU >>>> performance traded off against CPU size and power consumption. They >>>> have taken the time and effort to provide good solutions at many >>>> points. >>>> >>>> >>> I believe you are talking about the total effort for /designing/ the >>> chip, while Tim was talking about the effort in /using/ the chip. It >>> is not at all clear (to me, anyway) what the OP was talking about. >> >> Exactly my point, except CPU, not "chip". Tim's comment is tangential >> to the OPs question. > > I dunno. It sounded like Kraus wants to buy chips, not build cores.
That's right. You don't know. -- Rick C
Tim Wescott wrote on 6/1/2017 4:17 PM:
> On Wed, 31 May 2017 09:11:17 -0400, rickman wrote: > >> David Brown wrote on 5/31/2017 6:08 AM: >>> On 31/05/17 05:57, rickman wrote: >>>> Tim Wescott wrote on 5/30/2017 11:07 PM: >>>>> On Tue, 30 May 2017 14:32:42 +0000, Uwe Bonnes wrote: >>>>> >>>>>> klaus.kragelund@gmail.com wrote: >>>>>> >>>>>>> What I meant to say was that maybe ARM Cortex has potentially >>>>>>> faster >>>>>> releases of new devices and a more rapid platform for launching >>>>>> new devices >>>>>> >>>>>> In my opinion, most work for a new uC must be done with the >>>>>> peripherals. >>>>>> The Cortex M core is the same with different manufactureres, but the >>>>>> peripherals are not... >>>>> >>>>> Yup. You could probably toss any core in the middle, and the work >>>>> would still be to talk to the stuff attached to it. >>>> >>>> I think there is some loss of understanding of the question. ARM and >>>> every other embedded CPU company is constantly working to improve >>>> their CPUs to provide the maximum performance available from present >>>> technology as best suits the applications of their customers. This is >>>> not the same as designing new SoCs which vary in the memory size or >>>> peripherals on chip. There is a TON of work that goes into optimizing >>>> CPU designs which is a *MUCH* bigger effort than designing some >>>> peripherals. Often the same peripherals used on the old family are >>>> used on the new family. The only real task is the interconnection. >>>> >>>> You are very much trivializing the effort that goes into optimizing a >>>> CPU architecture. That is why ARM has such a wide range of CPU >>>> performance traded off against CPU size and power consumption. They >>>> have taken the time and effort to provide good solutions at many >>>> points. >>>> >>>> >>> I believe you are talking about the total effort for /designing/ the >>> chip, while Tim was talking about the effort in /using/ the chip. It >>> is not at all clear (to me, anyway) what the OP was talking about. >> >> Exactly my point, except CPU, not "chip". Tim's comment is tangential >> to the OPs question. > > I dunno. It sounded like Kraus wants to buy chips, not build cores.
Chips with ancient cores aren't very interesting except to CPU archeologists. -- Rick C
If I understand the OP correctly, he is "considering going the Cortex-M route" presumably weighing his options against some other embedded CPU family.

If this is the question here, then Cortex-M is a very compelling choice sourced by more silicon vendors than any other CPU in the industry. They all compete for our sockets, so the unit prices are very competitive, development boards are dirt cheap (possibly subsidized?), and vendors provide the whole "ecosystems" of software to differentiate their particular Cortex-M MCUs.

Also, investment in Cortex-M development tools and training will most likely pay off better than in any other CPU, now and in the foreseeable future.

In summary, I don't see a compelling reason to choose any other CPU at the moment. This does not mean that Cortex-M is the "best" CPU from the technical point of view. For example, the FPU integration in the Cortex-M4F/M7 is horrible. But this is not the issue here. The issue is whether any other CPU family can offer more benefits overall.

Miro Samek
https://state-machine.com
On Wednesday, June 7, 2017 at 9:58:56 PM UTC+2, StateMachineCOM wrote:
> If I understand the OP correctly, he is "considering going the Cortex-M route" presumably weighing his options against some other embedded CPU family. > > If this is the question here, then Cortex-M is a very compelling choice sourced by more silicon vendors than any other CPU in the industry. They all compete for our sockets, so the unit prices are very competitive, development boards are dirt cheap (possibly subsidized?), and vendors provide the whole "ecosystems" of software to differentiate their particular Cortex-M MCUs. > > Also, investment in Cortex-M development tools and training will most likely pay off better than in any other CPU, now and in the foreseeable future. > > In summary, I don't see a compelling reason to choose any other CPU at the moment. This does not mean that Cortex-M is the "best" CPU from the technical point of view. For example, the FPU integration in the Cortex-M4F/M7 is horrible. But this is not the issue here. The issue is whether any other CPU family can offer more benefits overall. >
You are spot on, I was just not so clear in the original post I am looking for arguments pro/con for Cortex M0 versus Renesas RX130 Which device is the clever choice, primarily crystal ball prediction of offered cost and features Cheers Klaus
Il giorno mercoledì 7 giugno 2017 21:58:56 UTC+2, StateMachineCOM ha scritto:

>technical point of view. For example, the FPU integration in the Cortex->M4F/M7 is horrible.
can you explain a little bit more about that? Thanks Bye Jack
I said that "... the FPU integration in the Cortex-M4F/M7 is horrible", because it adds tons of overhead and a lot of headache for the system-level software.

The problem is that the ARM Vector Floating-Point (VFP) coprocessor comes with a big context of 32 32-bit registers (S0-S31). These registers need to be saved and restored as part of every context switch, just like the CPU registers. ARM has come up with some hardware optimizations called "lazy stacking and context switching" (see ARM AppNote 298 at http://infocenter.arm.com/help/topic/com.arm.doc.dai0298a/DAI0298A_cortex_m4f_lazy_stacking_and_context_switching.pdf ). But as you will see in the AppNote, the scheme is quite involved and still requires much more stack RAM than a context switch without the VFP. The overhead of the ARM VFP in a multitasking system is so big, in fact, that often it outweighs the benefits of having hardware FPU in the first place. Often, a better solution would be to use the FPU in one task only, and forbid to use it anywhere else. In this case, preserving the FPU context would be unnecessary. (But it is difficult to reliably forbid using FPU in other parts of the same code, so it opens the door for race conditions around the FPU if the rule is violated.)

Anyway, does it have to be that hard? Apparently not. For example the Renesas RX CPU comes also with single precision FPU, which is much better integrated with the CPU and does not have its own register context. Compared to the ARM VFP it is a pleasure to work with.

Miro Samek
state-machine.com

 





The 2024 Embedded Online Conference