Cortex-MシリーズとCortex-Rシリーズの実際の違いは何ですか?


25

それは面白いです!明確な記事を検索しましたが、これに関する明確な記事が見つかりませんでした。また、このリンク:ARM Cortex-Rとこのリンク:Cortex-Rシリーズを見つけましたが、明確ではありません。wikiページに書いた:

コアは、堅牢なリアルタイム使用を目的としています

そして、Cortex-Rのページに書いた:

ARMCortex®-Rリアルタイムプロセッサは、信頼性、高可用性、フォールトトレランス、保守性、およびリアルタイム応答が必要な組み込みシステム向けの高性能コンピューティングソリューションを提供します。

そしてこれら:

  1. 高性能:高速クロック周波数と組み合わせた高速処理
  2. リアルタイム:処理は、あらゆる場面で厳しいリアルタイム制約を満たします
  3. 安全:高いエラー耐性を備えた信頼性の高い信頼性の高いシステム
  4. 費用対効果:パフォーマンス、電力、面積に最適な機能

ナンバーワン:たとえば、Cortex-Mの場合、最近NXPは200MhzクロックレートのNXP_LPC4XXXシリーズを作成し、Cortex-Rの場合、これを見ることができます:TMS570LS ARM Cortex™-R4 Microcontrollers、180Mhzクロックレート。

2番目の場合:明らかです。

3番目の場合:明確ではありません!この文はどういう意味ですか?は、Cortex-Mが安全/信頼できないことを意味しますか?

5番目の場合:まあ、それは単なる主張だと思います!

このシリーズ(Cortex-R)で働く経験は誰にありますか?それについてあなたはどう思いますか?Cortex-MシリーズとCortex-Rシリーズの深く正確な違いは何ですか?


これらの箇条書きは、データシートの上部にある箇条書きのように、常にマーケティング資料にすぎないと見なすべきです。
スコットサイドマン

3
re:ポイント1:Cortex-Rの(一部の)操作のクロックサイクルが少なくなる可能性が完全にあるため、クロックレートによってパフォーマンスが単純に決まるわけではありません。...またはベンチマーク両方のシステム-あなたは詳細なデータを研究する必要があるだろう
ブライアン・ドラモンド

私は同意しない@BrianDrummond

5
@Roh Cortex-Rは、いくつかの比較的複雑な命令(shiftやopなど)を含み、個々の命令を述語とする「古典的な」ARM命令セットを使用できます。Cortex-Mは、If-Then命令を使用して命令を述語化するThumb2ベースのISのみを提供します。さらに、比較的単純なマイクロアーキテクチャに制限されている場合でも、パフォーマンスはクロックレートに比例しません。
ポールA.クレイトン

回答:


17

おかしい、私は仕事で両方を使用します:)

Cortex-M3(私たちはSTM32を使用)は、ほとんどの複雑な組み込みアプリケーションに十分な高速で大きな(フラッシュストレージ)汎用MCUです。

ただし、R4は完全に別の獣です-少なくとも私が使用しているTexas Instrumentsバージョン:TMS570と同様のRM42。RM42は、冗長性のために「ロックステップ」で実行される2つのコアを持つCortex-R4です。つまり、1つのコアが2命令先にあり、エラーチェックと修正に使用されます。また、コアの1つは(物理的に)ミラーリング/フリップされ、放射/ノイズ耐性を向上させるために90度回転します:)

RM42はSTM32よりも高いクロック速度で動作し(100MHz対72MHz)、わずかに異なる命令セットを持ち、M3よりも高速な命令の一部を実行します(たとえば、R4で除算命令が1サイクルで実行され、オンになっていないM3)。

HWタイマーは、Cortex-M3と比較して非常に正確です。通常、M3のドリフトを修正するには静的オフセットが必要です-R4ではそうではありません:)

Cortex-M3を汎用MCUと呼ぶ場合、Cortex-R4を複雑なリアルタイム/安全MCUと呼びます。間違っていない場合、RM42はSIL3に準拠しています...

IMO the R4は、リアルタイム/安全機能を実際に使用する予定がない場合でも、複雑さが大幅に向上します。

複雑さの違いの実に良い例:SPIペリフェラルにはSTM32に9個の制御およびステータスレジスタがあり、RM42には42個あります。すべてのペリフェラルでこのようになります:)

編集:

価値があることですが、まったく同じタスクを実行する場合、私のユースケースでは、Cortex-R4 @ 100MHzはCortex-M3 @ 72MHzよりも通常50〜100%高速です。R4にデータキャッシュと命令キャッシュがあるためでしょうか?

別の比較として、main()現在使用している安全機能のサブセットで呼び出しに到達する前に、リセット時に数千行のCおよびASMコードが実行されます。周辺機器の初期化などではなく、起動とセルフテスト(CPU、RAM、フラッシュECCなど)。

このページには詳細があります


たとえば、R4はABSブレーキシステムまたは産業機械を制御しますが、M3は安全またはミッションクリティカルではないものを制御します
モーテンジェンセン

すばらしい答えですが、コメントすることは1つだけです。テキサスのすべてのR4デバイスにはキャッシュがありません。密結合RAMを使用します。これは基本的に高速であるため、コアに非常に近いRAMです。キャッシュはこのタイプのシステムには適していません(あなたが説明したリアルタイム機能を備えた非常に決定的なシステムが必要であるなどの理由で)
。-morcillo

@morcillo、コメントありがとう。ARMの次の図から、すべてのR4にデータ+命令キャッシュがあると信じ込まされました。arm.com / assets / images / Cortex - R4 - chip - diagram - LG.png-どうすればよいかわかりますか?私はデータキャッシュと命令キャッシュの略語であるD cacheと仮定してI cacheいました。
モーテンジェンセン

実を言うと、私にはわかりません。私が知っている唯一のことは、テキサス・インスツルメンツ製の皮質R4デバイスには、私があなたに言ったのと同様の理由でキャッシュがないことです。ずいぶん前に読みました。多分彼らはそれを変更したか、2つの異なるモンスターを混同しているかもしれませんが、R4デバイスにはキャッシュがないことを覚えています(HALcogenはキャッシュ初期化を生成しません)。私は完全に間違っているかもしれません...私に知らせてください..常に何か新しいことを学ぶのは良いことです:)
morcillo

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がありますが、いくつかの意味があるかもしれません。
ポールA.クレイトン

2

ここで良い記事を持っています

Cortex-Rおよびcortex-Mシリーズは、さまざまな要件とさまざまなアプリケーションを対象としています。両方が適合するアプリケーションが存在する可能性があるため、それらを分離するパラメーターと機能を知ることが重要です。このペーパーは、このようなシナリオを対象としており、デザイナーの選択に役立ちます。最終目標は、設計者または開発者がARMのアーキテクチャを理解できるようにすることです。


その興味深い記事へのリンクがあるのは良いことですが、少なくとも回答の中でその記事を要約してみるべきです。
AndrejaKo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.