อะไรคือความแตกต่างระหว่างซีรี่ส์ Cortex-M และซีรี่ส์ Cortex-R


25

มันน่าสนใจ! ฉันค้นหาบทความที่ชัดเจน แต่ฉันไม่พบบทความที่ชัดเจนเกี่ยวกับเรื่องนี้ นอกจากนี้ฉันยังพบลิงค์นี้: ARM Cortex-Rและลิงค์นี้: Cortex-R ซีรี่ส์แต่มันไม่ชัดเจนอย่างแน่นอน ในหน้า wiki เขียนว่า:

แกนมีไว้สำหรับการใช้งานแบบเรียลไทม์ที่มีประสิทธิภาพ

และในหน้าของ Cortex-R เขียนว่า:

โปรเซสเซอร์ ARM Cortex®-R แบบเรียลไทม์นำเสนอโซลูชั่นการประมวลผลประสิทธิภาพสูงสำหรับระบบฝังตัวที่ต้องการความน่าเชื่อถือความพร้อมใช้งานสูงการยอมรับข้อบกพร่องการบำรุงรักษาและการตอบสนองแบบเรียลไทม์

และเหล่านี้:

  1. ประสิทธิภาพสูง: การประมวลผลที่รวดเร็วรวมกับความถี่สัญญาณนาฬิกาสูง
  2. เรียลไทม์: การประมวลผลตรงตามข้อ จำกัด แบบเรียลไทม์ในทุกโอกาส
  3. ปลอดภัย: ระบบที่ไว้วางใจได้และเชื่อถือได้พร้อมความต้านทานข้อผิดพลาดสูง
  4. ประหยัดค่าใช้จ่าย: ฟีเจอร์เพื่อประสิทธิภาพพลังงานและพื้นที่

สำหรับอันดับหนึ่ง: ตัวอย่างเช่น Cortex-M เมื่อเร็ว ๆ นี้ NXP ได้สร้างซีรี่ส์ NXP_LPC4XXX ที่มีอัตรานาฬิกา 200Mhz และสำหรับ Cortex-R คุณสามารถเห็นสิ่งนี้: ARM Cortex ™ -R4 Microcontrollers TMS570LSมันตลกเพราะมันมี 180Mhz อัตรานาฬิกา

สำหรับหมายเลขสอง: ชัดเจน

สำหรับหมายเลขสาม: ยังไม่ชัดเจน! ประโยคนี้หมายถึงอะไร Cortex-M ปลอดภัยหรือไม่เชื่อถือได้?

สำหรับข้อห้า: ดีฉันคิดว่ามันเป็นแค่การเรียกร้อง!

ใครมีประสบการณ์ในการทำงานกับซีรี่ส์นี้ (Cortex-R) คุณมีความคิดเห็นเกี่ยวกับเรื่องนี้อย่างไร? อะไรคือความแตกต่างอย่างลึกซึ้งระหว่างซีรีย์ Cortex-M และซีรีส์ Cortex-R?


หัวข้อย่อยเหล่านี้เช่นเดียวกับสัญลักษณ์หัวข้อด้านบนของแผ่นข้อมูลใด ๆ ควรได้รับการพิจารณาให้ดีกว่าสื่อการตลาดเล็กน้อย
Scott Seidman

3
Re: จุดที่ 1: เป็นไปได้ทั้งหมดที่ Cortex-R ใช้วงจรนาฬิกาน้อยลงสำหรับการดำเนินการ (บางส่วน) ดังนั้นประสิทธิภาพอาจไม่ได้ถูกกำหนดโดยอัตรานาฬิกา คุณจะต้องศึกษาข้อมูลโดยละเอียด - หรือเปรียบเทียบทั้งสองระบบ ...
Brian Drummond

@BrianDrummond ฉันไม่เห็นด้วย
Roh

5
@Roh Cortex-R สามารถใช้ชุดคำสั่ง ARM "classic" ซึ่งมีคำแนะนำที่ค่อนข้างซับซ้อน (เช่น shift และ op) และเพรดิเคตคำสั่งเฉพาะบุคคล Cortex-M จัดทำเฉพาะ IS ที่ใช้ Thumb2 ซึ่งใช้คำสั่ง If-Then เพื่อบอกคำสั่ง นอกจากนี้แม้ว่าประสิทธิภาพการทำงานของไมโครอาร์คิเทคเจอร์ที่เรียบง่ายนั้นค่อนข้าง จำกัด ไม่ได้สัดส่วนกับอัตรานาฬิกา
Paul A. Clayton

คำตอบ:


17

ตลกฉันใช้ทั้งที่ทำงาน :)

Cortex-M3 (เราใช้ STM32s) เป็น MCU อเนกประสงค์ที่รวดเร็วและใหญ่พอสำหรับการใช้งานที่ซับซ้อน

อย่างไรก็ตาม R4 นั้นเป็นสัตว์ร้ายที่ต่างออกไปโดยสิ้นเชิง - อย่างน้อยรุ่น Texas Instruments ที่ฉันใช้: RM42 คล้ายกับ TMS570 RM42 เป็น Cortex-R4 ที่มีสองคอร์ทำงานอยู่ใน "ขั้นตอนการล็อค" เพื่อความซ้ำซ้อนซึ่งหมายความว่าหนึ่งคอร์คือ 2 คำแนะนำข้างหน้าของอีกส่วนหนึ่งและใช้สำหรับการตรวจสอบและแก้ไขข้อผิดพลาดบางอย่าง นอกจากนี้หนึ่งในแกนกลางก็คือกระจก (พลิก) / พลิกและ 90 องศาเพื่อปรับปรุงความยืดหยุ่นของรังสี / เสียง :)

RM42 ทำงานที่ความเร็วสัญญาณนาฬิกาสูงกว่า STM32 (100MHz เทียบกับ 72MHz) และมีชุดคำสั่งที่แตกต่างกันเล็กน้อยและดำเนินการบางคำสั่งได้เร็วกว่า M3 (เช่นคำแนะนำการใช้งานใน R4 รอบเดียวไม่แน่ใจว่าพวกเขาทำอะไร M3)

ตัวจับเวลา HW นั้นแม่นยำมากเมื่อเทียบกับ Cortex-M3 โดยปกติแล้วเราต้องการอ็อฟเซ็ตสแตติกเพื่อแก้ไขการดริฟท์บน M3s แต่ไม่ใช่ด้วย R4 :)

ที่ซึ่งฉันเรียก Cortex-M3 เป็นจุดประสงค์ทั่วไปของ MCU ฉันจะเรียก Cortex-R4 MCU แบบเรียลไทม์ / ความปลอดภัยที่ซับซ้อน หากฉันไม่เข้าใจผิด RM42 นั้นสอดคล้องกับ SIL3 ...

IMO R4 นั้นมีความซับซ้อนยิ่งขึ้นแม้ว่าคุณจะไม่ได้วางแผนที่จะใช้คุณสมบัติเรียลไทม์ / ความปลอดภัย

ตัวอย่างที่ดีของความแตกต่างของความซับซ้อน: อุปกรณ์ต่อพ่วง SPI มีการควบคุมและลงทะเบียนสถานะ 9 รายการบน STM32 ในขณะที่ 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 คู่กันอย่างแน่นหนาซึ่งโดยทั่วไปแล้วเป็นแรมที่ใกล้เคียงกับความรวดเร็วนั้นอยู่ใกล้กับแกน ฉันคิดว่าพวกเขาทำเช่นนั้นเนื่องจากความจริงที่ว่าแคชไม่ดีสำหรับระบบประเภทนี้ (พวกเขาต้องการระบบที่กำหนดได้อย่างดีเพื่อให้มีคุณสมบัติแบบเรียลไทม์ที่คุณอธิบาย .. หรืออะไรทำนองนั้น)
morcillo

@ morcillo ขอบคุณสำหรับความคิดเห็นของคุณ ฉันถูกชักนำให้เชื่อว่า R4s ทั้งหมดมีข้อมูล + คำสั่งแคชโดยไดอะแกรมนี้จาก ARM: arm.com/assets/images/Cortex-R4-chip-diagram-LG.png ARM - คุณรู้ว่าจะทำอย่างไร ฉันถูกสมมติD cacheและI cacheเป็นตัวย่อสำหรับข้อมูลและแคชการเรียนการสอน
มอร์เทนเซ่น

เพื่อบอกความจริงกับคุณฉันไม่รู้ สิ่งเดียวที่ฉันรู้คือว่าอุปกรณ์ R4 ของคอร์เท็กซ์ที่ทำโดยเครื่องมือเท็กซัสไม่มีแคชด้วยเหตุผลคล้ายกับที่ฉันบอกคุณ ฉันอ่านมันเมื่อนานมาแล้ว บางทีพวกเขาอาจเปลี่ยนแปลงหรือฉันกำลังผสมอสุรกายที่แตกต่างกัน 2 ตัว แต่เท่าที่ฉันจำได้ว่าอุปกรณ์ R4 ไม่มีแคช (HALcogen ไม่สร้างการเริ่มต้นแคช) ฉันอาจจะผิดอย่างสมบูรณ์ ... ถ้าฉันได้โปรดแจ้งให้ฉันทราบ .. ดีเสมอที่จะเรียนรู้สิ่งใหม่ :)
morcillo

3

ตระกูล ARM Cortex-R (v7-R)

  • ประสิทธิภาพที่ยอดเยี่ยมสำหรับแอปพลิเคชันแบบเรียลไทม์
  • โปรเซสเซอร์ได้รับการพัฒนาสำหรับแอพพลิเคชั่นเรียลไทม์แบบฝังลึกที่ความต้องการพลังงานต่ำและพฤติกรรมการขัดจังหวะที่ดีนั้นมีความสมดุลกับประสิทธิภาพที่ยอดเยี่ยมและความเข้ากันได้ดีกับแพลตฟอร์มที่มีอยู่
  • โปรเซสเซอร์ ARM Cortex®-R แบบเรียลไทม์นำเสนอโซลูชันการประมวลผลประสิทธิภาพสูงสำหรับระบบฝังตัวที่ต้องการความน่าเชื่อถือความพร้อมใช้งานสูงการยอมรับข้อบกพร่องการบำรุงรักษาและการตอบสนองตามเวลาจริง

ตระกูล ARM Cortex-M (v7-M)

  • โซลูชันที่มีความอ่อนไหวด้านต้นทุนสำหรับการใช้งานไมโครคอนโทรลเลอร์ที่กำหนดไว้ล่วงหน้า
  • ได้รับการพัฒนาสำหรับโดเมนไมโครคอนโทรลเลอร์เป็นหลักซึ่งความต้องการการจัดการขัดจังหวะที่รวดเร็วและมีความแน่นอนสูงควบคู่ไปกับความต้องการในการนับเกตต่ำมากและการใช้พลังงานต่ำสุดที่เป็นไปได้
  • ตระกูลโปรเซสเซอร์ ARM Cortex ™ -M เป็นโปรเซสเซอร์ที่รองรับพลังงานอย่างมีประสิทธิภาพและใช้งานง่ายซึ่งได้รับการออกแบบมาเพื่อช่วยให้นักพัฒนาสามารถตอบสนองความต้องการของแอพพลิเคชั่นในอนาคต ความต้องการเหล่านั้นรวมถึงการมอบคุณสมบัติที่มากขึ้นในราคาที่ต่ำกว่าการเชื่อมต่อที่เพิ่มขึ้นการใช้รหัสซ้ำได้ดีขึ้นและเพิ่มประสิทธิภาพการใช้พลังงาน

ความแตกต่างอีกอย่างก็คือ Cortex-M รองรับชุดคำสั่งแบบ Thumb2-based เท่านั้นในขณะที่ Cortex-R สามารถใช้ชุดคำสั่งพื้นฐาน / คลาสสิกความยาวคงที่ (32 บิต) ได้เช่นกัน นั่น -R และ -A แบ่งปันคู่มืออ้างอิงสถาปัตยกรรม (สำหรับ v7) ในขณะที่ M มี ARManual แยกต่างหากอาจมีความสำคัญบางอย่าง
Paul A. Clayton

2

มีบทความที่ดีเกี่ยวกับที่นี่

Cortex-R และ cortex-M ซีรีย์มีเป้าหมายสำหรับความต้องการที่แตกต่างกันและสำหรับการใช้งานที่แตกต่างกัน สิ่งสำคัญคือต้องรู้พารามิเตอร์และคุณสมบัติที่แยกพวกเขาเนื่องจากอาจมีแอพพลิเคชั่นที่ทั้งคู่สามารถเข้ากันได้บทความนี้มีเป้าหมายสำหรับสถานการณ์ดังกล่าวและช่วยให้นักออกแบบในการเลือก วัตถุประสงค์สุดท้ายคือการช่วยให้นักออกแบบหรือนักพัฒนามีความเข้าใจในสถาปัตยกรรมของ ARM


แม้ว่าจะมีลิงก์ไปยังบทความที่น่าสนใจ แต่อย่างน้อยคุณควรพยายามสรุปบทความในคำตอบของคุณ
AndrejaKo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.