Cortex-M系列和Cortex-R系列之间的真正区别是什么?


25

这真有趣!我搜索了一篇清晰的文章,但找不到与此相关的清晰文章。我也找到了此链接:ARM Cortex-R和此链接:Cortex-R系列,但它们并不十分清楚。在Wiki页面中写道:

这些内核旨在用于强大的实时使用

并在Cortex-R的页面中写道:

ARMCortex®-R实时处理器为需要可靠性,高可用性,容错,可维护性和实时响应的嵌入式系统提供了高性能计算解决方案。

还有这些:

  1. 高性能:快速处理和高时钟频率
  2. 实时:处理在任何情况下都满足严格的实时约束
  3. 安全:可靠,可靠的系统,具有较高的抗错误性
  4. 经济高效:具有性能,功率和面积最佳的功能

例如:Cortex-M,最近恩智浦制造了NXP_LPC4XXX系列,时钟频率为200Mhz,Cortex-R,您可以看到:TMS570LS ARM Cortex™-R4微控制器,很有趣,因为它具有180Mhz时钟频率。

第二点:很明显。

对于第三点:还不清楚!这句话是什么意思?意味着Cortex-M不是安全/可靠的吗?

对于第五点:恩,我认为这只是一个要求!

谁有这个系列(Cortex-R)的工作经验?您对此有何看法?Cortex-M系列和Cortex-R系列之间的深刻而又确切的区别是什么?


这些项目要点,就像任何数据表顶部的项目要点一样,应始终被视为营销材料。
Scott Seidman

3
关于:要点1:Cortex-R完全有可能为(某些)操作花费更少的时钟周期,因此性能可能不仅仅由时钟速率决定。您需要研究详细的数据-或对两个系统进行基准测试……
Brian Drummond

@BrianDrummond我不同意
Roh

5
@Roh Cortex-R可以使用“经典” ARM指令集,其中包括一些相对复杂的指令(例如shift和op)并断言单个指令;Cortex-M仅提供基于Thumb2的IS,该IS使用If-Then指令来断言指令。此外,即使限于相对简单的微体系结构,性能也不与时钟速率成正比。
Paul A. Clayton

Answers:


17

有趣的是,我在工作中都使用:)

Cortex-M3(我们使用STM32s)是一种通用型MCU,对于大多数复杂的嵌入式应用而言,它足够快且体积大(闪存)。

但是,R4完全是另一种野兽-至少我使用的德州仪器版本:RM42,与TMS570类似。RM42是Cortex-R4,其中两个内核以“锁步”方式运行以实现冗余,这意味着一个内核比另一个内核领先2条指令,并用于一些错误检查和纠正。另外,其中一个纤芯被(物理地)镜像/翻转并旋转了90度,以提高辐射/噪声的弹性:)

RM42的时钟频率高于STM32(100MHz与72MHz),指令集略有不同,并且某些指令的执行速度比M3快(例如,除法指令在R4上以一个周期执行,不确定它们是否在M4上执行)。 M3)。

与Cortex-M3相比,硬件计时器非常精确。通常,我们需要一个静态偏移量来校正M3上的漂移-R4则不是:)

在我将Cortex-M3称为通用MCU的地方,我将Cortex-R4称为复杂的实时/安全MCU。如果我没记错的话,RM42符合SIL3标准...

即使您不打算实际使用实时/安全功能,IMO R4的复杂性也大大提高了。

复杂度差异的一个很好的例子:SPI外设在STM32上有9个控制和状态寄存器,而RM42有42个。所有外设都这样:)

编辑:

就其价值而言,在我的用例中,执行完全相同的任务时,Cortex-R4 @ 100MHz通常比Cortex-M3 @ 72MHz快50-100%。也许是因为R4具有数据和指令缓存?

另一个比较,在重置之前我执行了几千行C和ASM代码,然后才调用main()我目前使用的安全功能的子集:D,而不是外围设备初始化或其他任何东西,而只是启动和自检(CPU,RAM, Flash ECC等)。

此页面有更多详细信息


例如,R4可以控制ABS制动系统或工业机器,而M3可以控制安全性或任务关键性不高的东西
Morten Jensen

好的答案,但只有一件事要评论。德州的所有R4设备都没有高速缓存,而是使用紧密耦合的RAM,该RAM本质上是非常快的,实际上与内核接近。我认为他们这样做的原因是,缓存对此类系统
不利

@morcillo感谢您的评论。通过ARM提供的这张图,我被认为所有R4都具有数据+指令缓存:arm.com/assets/images/Cortex-R4-chip-diagram-LG.png-您知道由它构成吗?我是假设D cache,并I cache分别对数据和指令缓存的缩写。
Morten Jensen

告诉你真相,我不知道。我唯一知道的是,由于与我告诉过的原因类似的原因,TEXAS INSTRUMENTS制造的cortex R4设备没有缓存。我很久以前就读过它。也许他们改变了它,或者也许我混合了2种不同的怪物,但是据我所记得,R4设备没有缓存(HALcogen不会生成缓存初始化)。我可能完全错了...如果我愿意,请让我知道..总是很
乐于

3

ARM Cortex-R系列(v7-R)

  • 实时应用程序的出色性能。
  • 处理器是为深度嵌入式实时应用开发的,在这些应用中,低功耗和良好的中断行为需求与出色的性能以及与现有平台的强大兼容性之间取得了平衡。
  • ARMCortex®-R实时处理器为需要可靠性,高可用性,容错,可维护性和实时响应的嵌入式系统提供了高性能计算解决方案。

ARM Cortex-M系列(v7-M)

  • 适用于确定性微控制器应用的成本敏感型解决方案。
  • 主要针对微控制器领域而开发的,在微控制器领域中,对快速,高度确定性的中断管理的需求与对极低的门数和尽可能低的功耗的需求相结合。
  • ARM Cortex™-M处理器系列是向上兼容的高能效,易于使用的处理器,旨在帮助开发人员满足未来嵌入式应用程序的需求。这些需求包括提供更多功能,降低成本,增加连接性,更好的代码重用性以及提高能效。

另一个区别似乎是Cortex-M仅支持基于Thumb2的指令集,而Cortex-R也可以使用基本/经典固定长度(32位)指令集。-R和-A共享《体系结构参考手册》(适用于v7),而M具有单独的ARManual,则可能具有一定的意义。
保罗·克莱顿

2

关于这儿有一篇好文章。

Cortex-R和cortex-M系列针对不同的要求和不同的应用。重要的是要知道将它们分开的参数和功能,因为可能存在两者都适合的应用程序。本文针对这种情况,并帮助设计人员进行选择。最终目的是帮助设计人员或开发人员了解ARM体系结构。


链接到该有趣的文章很好,但您至少应尝试在答案中总结该文章。
AndrejaKo 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.