Vraag:
Wat is echt het verschil tussen de Cortex-M-serie en de Cortex-R-serie?
Roh
2013-10-04 22:25:20 UTC
view on stackexchange narkive permalink

Het is interessant! Ik zocht naar een duidelijk artikel vinden, maar ik kon hier geen duidelijk artikel voor vinden. Ik vond ook deze link: ARM Cortex-R en deze link: Cortex-R-serie, maar ze zijn niet precies duidelijk. in de wikipagina schreef:

De cores zijn bedoeld voor robuust real-time gebruik

en in de Cortex-R's pagina schreef:

De ARM Cortex®-R real-time processors bieden high-performance computeroplossingen voor embedded systemen waar betrouwbaarheid, hoge beschikbaarheid, fouttolerantie, onderhoudbaarheid en real-time reacties vereist zijn.

en deze:

  1. Hoge prestaties: snelle verwerking gecombineerd met een hoge klokfrequentie
  2. Real-time: verwerking voldoet aan harde real-time beperkingen op alloccasions
  3. Veilig: betrouwbare, betrouwbare systemen met hoge foutbestendigheid
  4. Kostenbesparend: eigenschappen voor optimale prestaties, kracht en oppervlakte

Voor nummer één: bijvoorbeeld voor de Cortex-M, onlangs heeft de NXP de NXP_LPC4XXX-serie gemaakt die een kloksnelheid van 200 MHz heeft en voor de Cortex-R kun je dit zien: TMS570LS ARM Cortex ™ -R4 Microcontrollers, het is grappig omdat het 180 MHz heeft kloksnelheid.

Voor nummer twee: Het is duidelijk.

Voor nummer drie: het is niet duidelijk! wat betekent deze zin? betekent dat de Cortex-M niet veilig / betrouwbaar is?

Voor nummer vijf: Nou, ik denk dat het gewoon een claim is!

Wie heeft de ervaring om aan deze serie ( Cortex-R)? Wat is jouw mening hierover en wat is het diepe en precies verschil tussen de Cortex-M-serie en de Cortex-R-serie?

Deze opsommingstekens moeten, net als de opsommingstekens bovenaan een gegevensblad, altijd worden beschouwd als niet meer dan marketingmateriaal.
re: punt 1: het is heel goed mogelijk dat de Cortex-R minder klokcycli nodig heeft voor (sommige) bewerkingen, dus de prestaties worden mogelijk niet simpelweg bepaald door de kloksnelheid. U zou gedetailleerde gegevens moeten bestuderen - of beide systemen moeten benchmarken ...
@BrianDrummond Ik ben het er niet mee eens
@Roh Cortex-R kan de "klassieke" ARM-instructieset gebruiken die enkele relatief complexe instructies bevat (bijv. Shift en op) en individuele instructies prediceert; Cortex-M biedt alleen een op Thumb2 gebaseerde IS die een If-Then-instructie gebruikt om instructies te prediceren. Bovendien zijn de prestaties, zelfs wanneer ze beperkt zijn tot relatief eenvoudige microarchitecturen, niet evenredig met de kloksnelheid.
Drie antwoorden:
Morten Jensen
2013-11-07 03:46:09 UTC
view on stackexchange narkive permalink

Grappig, ik gebruik beide op het werk :)

De Cortex-M3 (we gebruiken STM32s) is een MCU voor algemeen gebruik die snel en groot genoeg is (flash-opslag) voor de meeste complexe embedded applicaties.

De R4 is echter een heel ander beest - tenminste de Texas Instruments-versie die ik gebruik: de RM42, vergelijkbaar met de TMS570. De RM42 is een Cortex-R4 met twee cores die in "lock-step" draaien voor redundantie, wat betekent dat de ene core 2 instructies voor is op de andere en wordt gebruikt voor enige foutcontrole en correctie. Ook is een van de kernen (fysiek) gespiegeld / omgedraaid en 90 graden gedraaid om de bestendigheid tegen straling / ruis te verbeteren :)

De RM42 draait op een hogere kloksnelheid dan de STM32 (100 MHz versus 72 MHz) en heeft een iets andere instructieset en voert sommige instructies sneller uit dan de M3 (bijv. instructies voor delen worden in één cyclus uitgevoerd op de R4, niet zeker of ze dat wel doen op M3).

HW-timers zijn ZEER nauwkeurig in vergelijking met Cortex -M3. Meestal hebben we een statische offset nodig om te corrigeren voor drift op de M3's - niet zo met de R4 :)

Waar ik een Cortex-M3 een MCU voor algemeen gebruik zou noemen, zou ik de Cortex-R4 noemen een complexe real-time / veiligheid MCU. Als ik me niet vergis, is de RM42 SIL3-compatibel ...

IMO de R4 is een grote stap voorwaarts in complexiteit, zelfs als je niet van plan bent om de real-time / veiligheidsfuncties daadwerkelijk te gebruiken.

Een heel mooi voorbeeld van het verschil in complexiteit: het SPI-randapparaat heeft 9 controle- en statusregisters op de STM32, terwijl de RM42 er 42 heeft. Zo is het met alle randapparatuur :)

EDIT:

Voor wat het waard is, in mijn gevallen is de Cortex-R4 @ 100MHz meestal 50-100% sneller dan de Cortex-M3 @ 72MHz bij het uitvoeren van exact dezelfde taken. Misschien omdat de R4 gegevens- en instructiecaches heeft?

Nog een vergelijking, een paar 1000 regels C- en ASM-code worden uitgevoerd bij het resetten voordat de oproep naar main () wordt bereikt met de subset van de veiligheidsfuncties die ik momenteel gebruik: D en niet perifere initialisatie of zoiets, gewoon opstarten en zelftest (CPU, RAM, Flash ECC enz.).

Deze pagina bevat meer details

Bijv. de R4 zou een ABS-remsysteem of een industriële machine besturen, terwijl de M3 iets zou besturen dat niet zo veiligheids- of missiekritisch is
Goed antwoord, maar slechts één ding om op te merken.Alle R4-apparaten van Texas hebben geen cache, het gebruik van nauw gekoppelde RAM, wat in feite een RAM is die, behalve dat het snel is, heel dicht bij de kernen is.Ik denk dat ze dat hebben gedaan vanwege het feit dat caches niet goed zijn voor dit soort systemen (ze hebben een zeer deterministisch systeem nodig om de realtime functie te hebben die je hebt beschreven ... of iets dergelijks)
@morcillo bedankt voor je reactie.Ik werd ertoe gebracht te geloven dat alle R4's data + instructiecaches hadden door dit diagram van ARM: http://www.arm.com/assets/images/Cortex-R4-chip-diagram-LG.png - weet je wat je moet makenvan het?Ik nam aan dat `D cache` en` I cache` afkortingen waren voor Data en Instructie cache.
Eerlijk gezegd weet ik het niet.Het enige dat ik weet, is dat de cortex R4-apparaten GEMAAKT DOOR TEXAS INSTRUMENTS geen cache hebben om een reden die lijkt op degene die ik je vertelde.Ik heb het lang geleden ergens anders gelezen.Misschien hebben ze dat veranderd of misschien meng ik 2 verschillende monsters, maar voor zover ik me herinner, hebben de R4-apparaten geen cache (HALcogen genereert geen cache-initialisatie).Ik kan het helemaal mis hebben ... laat het me alsjeblieft weten ... altijd goed om iets nieuws te leren :)
Giovani Mendes
2013-10-07 22:17:11 UTC
view on stackexchange narkive permalink

ARM Cortex-R-familie (v7-R)

  • Uitzonderlijke prestaties voor real-time applicaties.
  • Processors zijn ontwikkeld voor diep ingebedde real-time applicaties waar dat nodig is voor laag stroomverbruik en goed interruptgedrag worden in evenwicht gehouden met uitzonderlijke prestaties en sterke compatibiliteit met bestaande platforms.
  • ARM Cortex®-R real-time processors bieden hoogwaardige computeroplossingen voor embedded systemen waar betrouwbaarheid, hoge beschikbaarheid, fouttolerantie, onderhoudbaarheid en real-time reacties zijn vereist.

ARM Cortex-M-familie (v7-M)

  • Kostengevoelige oplossingen voor deterministische microcontrollerapplicaties.
  • Zijn primair ontwikkeld voor het microcontroller-domein waar de behoefte aan snel, zeer deterministisch, interruptbeheer is gekoppeld aan de wens voor een extreem laag aantal poorten en het laagst mogelijke stroomverbruik.
  • ARM Cortex ™ -M processorfamilie is een opwaarts compatibele reeks energiezuinige, gebruiksvriendelijke processors des ontwikkeld om ontwikkelaars te helpen voldoen aan de behoeften van de embedded applicaties van morgen. Die eisen omvatten het leveren van meer functies tegen lagere kosten, meer connectiviteit, beter hergebruik van code en verbeterde energie-efficiëntie.
Een ander onderscheid lijkt te zijn dat Cortex-M alleen een op Thumb2 gebaseerde instructieset ondersteunt, terwijl Cortex-R ook de standaard / klassieke instructieset met vaste lengte (32-bits) kan gebruiken. Dat -R en -A een architecturale referentiehandleiding delen (voor v7), terwijl M een aparte AR-handleiding heeft, kan enige betekenis hebben.
Butzke
2013-10-05 00:05:35 UTC
view on stackexchange narkive permalink

Plaats een goed artikel over hier.

Cortex-R- en cortex-M-series zijn bedoeld voor verschillende vereisten en voor verschillende toepassingen. Het is belangrijk om de parameters en kenmerken te kennen die ze van elkaar scheiden, aangezien er toepassingen kunnen zijn waarin ze allebei passen. Dit artikel is bedoeld voor een dergelijk scenario en helpt de ontwerpers bij de selectie. Het uiteindelijke doel is om de ontwerpers of ontwikkelaars te helpen de architecturen van ARM te begrijpen.

Hoewel het goed is om een ​​link naar dat interessante artikel te hebben, moet je in ieder geval proberen het artikel in je antwoord samen te vatten.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...