Cortex-M serisi ve Cortex-R serisi arasındaki fark nedir?


25

İlginç! Net bir makale bulmak için aradım, ancak bunun için net bir yazı bulamadım. Ayrıca bu bağlantıyı buldum: ARM Cortex-R ve bu bağlantı: Cortex-R Serisi, ancak tam olarak net değil. wiki sayfasında şunu yazdı:

Çekirdekler gerçek zamanlı sağlam kullanım için tasarlanmıştır

ve Cortex-R'nin sayfasında yazdı:

ARM Cortex®-R gerçek zamanlı işlemciler, güvenilirlik, yüksek kullanılabilirlik, hata toleransı, bakım kolaylığı ve gerçek zamanlı yanıtların gerekli olduğu gömülü sistemler için yüksek performanslı bilgi işlem çözümleri sunar.

ve bunlar:

  1. Yüksek performans: Yüksek işlem frekansı ile birlikte hızlı işlem
  2. Gerçek zamanlı: İşleme tüm durumlarda zor gerçek zamanlı kısıtlamaları karşılar
  3. Güvenli: Yüksek hata direncine sahip güvenilir, güvenilir sistemler
  4. Uygun maliyetli: Performans, güç ve alan için optimum özellikler

Numara biri için: Cortex-M için Örneğin, geçenlerde NXP 200Mhz saat hızına sahip ve Cortex-R için, bu görebilirsiniz NXP_LPC4XXX serisini yaptı: TMS570LS ARM Cortex ™-R4 Microcontrollers o 180Mhz çünkü, bu komik saat hızı

İki numara için: Açık.

Üç numara için: Açık değil! bu cümlenin anlamı nedir? Cortex-M güvenli değil mi?

Beş numara için: Bence bu sadece bir iddia!

Bu seriye (Cortex-R) göre çalışma deneyimi kim var? Bu konudaki fikriniz nedir? Cortex-M serisi ve Cortex-R serisi arasındaki derin ve tam fark nedir?


Bu mermi noktaları, herhangi bir veri sayfasının üstündeki mermi noktaları gibi, her zaman pazarlama malzemesinden biraz daha fazla düşünülmelidir.
Scott Seidman

3
re: nokta 1: Cortex-R'nin (bazı) işlemler için daha az saat devri alması tamamen mümkündür, bu nedenle performans sadece saat hızı tarafından belirlenemeyebilir. Ayrıntılı verileri incelemeniz gerekir - veya her iki sistemi de kıyaslarsanız ...
Brian Drummond

@BrianDrummond Katılmıyorum
Roh

5
@Roh Cortex-R, göreceli olarak bazı karmaşık talimatlar (örneğin, vardiya ve op) içeren ve bireysel talimatları öngören "klasik" ARM komut setini kullanabilir; Cortex-M, talimatları belirlemek için If-Then komutunu kullanan yalnızca Thumb2 tabanlı bir IS sağlar. Ek olarak, nispeten basit mikro mimarilerle sınırlı olsa bile, performans saat hızıyla orantılı değildir.
Paul A. Clayton

Yanıtlar:


17

Komik, her ikisini de işte kullanıyorum :)

Cortex-M3 (biz STM32 kullanıyoruz) çoğu karmaşık gömülü uygulama için yeterince hızlı ve büyük (flash depolama) olan genel amaçlı bir MCU'dur.

Bununla birlikte, R4 tamamen farklı bir canavardır - en azından kullandığım Texas Instruments sürümü: RM42, TMS570'e benzer. RM42, yedeklilik için "kilit adımda" çalışan iki çekirdekli bir Cortex-R4'tür; bu, bir çekirdeğin diğerinin önünde 2 komut olduğu ve bazı hata kontrol ve düzeltmeleri için kullanıldığı anlamına gelir. Ayrıca, çekirdeklerden biri radyasyon / gürültü direncini arttırmak için (fiziksel olarak) yansıtılır / çevrilir ve 90 derece döndürülür :)

RM42, STM32'den (100MHz'e karşı 72MHz'e göre) daha yüksek bir saat hızında çalışır ve biraz farklı bir komut setine sahiptir ve bazı komutları M3'ten daha hızlı gerçekleştirir (örneğin, bölme talimatları, R4'te bir döngüde uygulanır; M3).

HW zamanlayıcıları Cortex-M3'e kıyasla çok hassas. Genellikle M3'teki kaymayı düzeltmek için statik bir kaymaya ihtiyacımız vardır - öyle değil R4 :)

Cortex-M3'ü genel amaçlı bir MCU olarak adlandırdığım yerde, Cortex-R4'ü karmaşık bir gerçek zamanlı / güvenlik MCU'su olarak adlandırırdım. Yanılmıyorsam, RM42 SIL3 uyumludur ...

IMO, gerçek zamanlı / güvenlik özelliklerini kullanmayı planlamıyor olsanız bile R4, karmaşıklıkta büyük bir adımdır.

Karmaşıklık farkına gerçekten güzel bir örnek: SPI çevre biriminin, STM32'de 9 kontrol ve durum yazmacı varken, RM42'nin 42 değeri var. Bu, tüm çevre birimlerinde böyle. :)

DÜZENLE:

Buna değer, benim kullanımımda, aynı görevleri yaparken Cortex-R4 @ 100MHz genellikle Cortex-M3 @ 72MHz'den% 50-100 daha hızlıdır. Belki R4'ün veri ve talimat önbellekleri olduğundan?

Başka bir karşılaştırmada, main()şu anda kullandığım güvenlik özelliklerinin alt kümesiyle çağrıya ulaşmadan önce sıfırlama sırasında birkaç 1000 satır C ve ASM kodu çalıştırılır : D ve çevresel başlatma veya herhangi bir şey değil, sadece başlatma ve kendi kendine test (CPU, RAM, Flaş ECC vb.).

Bu sayfa daha fazla ayrıntıya sahip


Örneğin, R4 bir ABS-fren sistemini veya endüstriyel bir makineyi kontrol ederken M3 güvenlik veya görev açısından kritik olmayan bir şeyi kontrol eder
Morten Jensen

Harika cevap, ama yorum yapmak için sadece bir şey. Texas'ın tüm R4 cihazlarında önbellek bulunmuyor, sıkıca bağlanmış RAM kullanımı, temelde hızlı olduğu düşünülen bir RAM, çekirdeğe çok yakın. Onların önbelleğe sistemlerinin bu tür için iyi değildir olmasından kaynaklanmaktadır (onlar böyle gerçek zamanlı size anlatılan özelliğini .. ya da bir şey olması çok deterministik sisteme ihtiyacımız) Kabul edildi bile
Morcillo

@morcillo, yorumunuz için teşekkürler. Tüm R4'lerin bu diyagramda ARM ve arm.com/assets/images/Cortex-R4-chip-diagram-LG.png'dan veri + komut önbellekleri olduğuna inanmaya yönlendirildim - ne yapılacağını biliyor musunuz? Varsaydım D cacheve I cacheVeri ve Öğretim önbelleği için kısaltmalardaydım.
Morten Jensen

Sana gerçeği söylemek için bilmiyorum. Bildiğim tek şey, TEXAS INSTRUMENTS TARAFINDAN YAPILAN korteks R4 cihazlarının size söylediklerime benzer bir nedenle önbellekleri olmadığıdır. Bunu uzun zaman önce biraz okudum. Belki bunu değiştirdiler veya belki 2 farklı canavarı karıştırıyorum, ama hatırladığım kadarıyla R4 cihazlarında önbellek yok (HALcogen önbellek başlatma üretmiyor). Tamamen yanlış olabilirim ... lütfen bilmeme izin verin .. yeni bir şeyler öğrenmek her zaman iyidir :)
morcillo

3

ARM Cortex-R ailesi (v7-R)

  • Gerçek zamanlı uygulamalar için olağanüstü performans.
  • Düşük güç ve iyi kesme davranışı ihtiyacının olağanüstü performans ve mevcut platformlarla güçlü uyumluluk ile dengelendiği derinlemesine gömülü gerçek zamanlı uygulamalar için işlemciler geliştirilmiştir.
  • ARM Cortex®-R gerçek zamanlı işlemciler, güvenilirlik, yüksek kullanılabilirlik, hata toleransı, bakım kolaylığı ve gerçek zamanlı yanıtların gerekli olduğu gömülü sistemler için yüksek performanslı bilgi işlem çözümleri sunar.

ARM Cortex-M ailesi (v7-M)

  • Belirleyici mikrodenetleyici uygulamaları için maliyete duyarlı çözümler.
  • Öncelikle hızlı, yüksek düzeyde deterministik, kesinti yönetimi ihtiyacının son derece düşük kapı sayısı ve mümkün olan en düşük güç tüketimi arzusu ile birleştiği mikrodenetleyici alanı için geliştirilmiştir.
  • ARM Cortex ™ -M işlemci ailesi, geliştiricilerin yarının gömülü uygulamalarının ihtiyaçlarını karşılaması için tasarlanmış, enerji tasarruflu, kullanımı kolay işlemciler için yukarı doğru uyumlu bir ürün serisidir. Bu talepler arasında daha düşük maliyetle daha fazla özellik sunma, bağlantıyı artırma, daha iyi kod kullanımı ve iyileştirilmiş enerji verimliliği sayılabilir.

Diğer bir ayrım, Cortex-M'nin yalnızca Thumb2 tabanlı bir komut setini desteklediği ve Cortex-R'nin de temel / klasik sabit uzunlukta (32-bit) komut setini kullanabileceği görülüyor. -R ve -A, Mimari Referans El Kitabını (v7 için) paylaşırken, M'nin ayrı bir ARManual'ı olmasına rağmen, bir önemi olabilir.
Paul A. Clayton,

2

Burada iyi bir makale var .

Cortex-R ve cortex-M serisi farklı gereksinimler ve farklı uygulamalar için hedeflenmiştir. Her ikisinin de sığabileceği uygulamalar olabileceğinden, onları ayıran parametreleri ve özellikleri bilmek önemlidir. Bu makale böyle bir senaryo için hedeflenmiştir ve Tasarımcıların seçiminde yardımcı olur. Nihai amaç, Tasarımcıların veya Geliştiricilerin ARM Mimarileri'ni anlamalarına yardımcı olmaktır.


Bu ilginç makaleye bir link vermek iyi olsa da, en azından cevabınızdaki makaleyi özetlemeye çalışmalısınız.
AndrejaKo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.