ما هو معالج RISC V: الهندسة المعمارية والعمل وتطبيقاته

جرب أداة القضاء على المشاكل





RISC V عبارة عن هندسة معمارية لمجموعة التعليمات طورتها جامعة كاليفورنيا ، بيركلي. كان الدافع وراء مفهوم RISC هو حقيقة أن معظم تعليمات المعالج لم يتم استخدامها من قبل معظم برامج الكمبيوتر. لذلك ، تم استخدام منطق فك التشفير غير الضروري في تصميمات معالجات ، تستهلك المزيد من الطاقة وكذلك المنطقة. لتقصير مجموعة التعليمات ولزيادة الاستثمار في موارد التسجيل ، فإن معالج RISC V تم تنفيذه.


لاحظ العديد من عمالقة التكنولوجيا والشركات الناشئة هذه التكنولوجيا لأنها مفتوحة المصدر تمامًا ومجانية. تتوفر معظم أنواع المعالجات باتفاقية ترخيص ، ولكن مع هذا النوع من المعالجات ؛ يمكن لأي شخص أن يصمم تصميماته الجديدة للمعالج. لذلك تتناول هذه المقالة نظرة عامة على عمل معالج RISC V وتطبيقاته.



ما هو معالج RISC V؟

في معالج RISC V ، يشير المصطلح RISC إلى 'كمبيوتر مجموعة التعليمات المخفضة' الذي ينفذ القليل من تعليمات الكمبيوتر بينما 'V' تعني الجيل الخامس. إنه ISA الأجهزة مفتوحة المصدر (بنية مجموعة التعليمات) على أساس المبدأ الراسخ لـ مخاطرة .

بالمقارنة مع تصميمات ISA الأخرى ، يتوفر ISA بترخيص مفتوح المصدر. لذلك ، أعلن عدد من شركات التصنيع عن تقديم أجهزة RISC-V مع أنظمة تشغيل مفتوحة المصدر ، كما زودتها.



هذه بنية جديدة ومتاحة في تراخيص مفتوحة وغير مقيدة ومجانية. يتمتع هذا المعالج بدعم واسع من صناعات الرقائق والأجهزة. لذلك فهي مصممة بشكل أساسي لتكون قابلة للتوسيع بحرية وقابلة للتخصيص للاستخدام في العديد من التطبيقات.

تاريخ RISC V

اخترع البروفيسور ديفيد باترسون RISC حوالي عام 1980 في جامعة كاليفورنيا ، بيركلي. قدم البروفيسور ديفيد مع البروفيسور جون هينيسي جهودهم في كتابين هما 'تنظيم وتصميم الكمبيوتر' و 'هندسة الكمبيوتر في جامعة ستانفورد. لذلك ، حصلوا على ACM A.M. جائزة تورينج عام 2017.

من عام 1980 إلى عام 2010 ، بدأ بحث تطوير الجيل الخامس من RISC وتم تحديده أخيرًا على أنه RISC-V والذي تم إعلانه على أنه خطر خمسة.

هندسة RISC V والعمل

تظهر بنية RV12 RISC V أدناه. يعد RV12 قابلاً للتهيئة بدرجة كبيرة باستخدام وحدة المعالجة المركزية RISC المتوافقة مع RISC أحادية النواة و RV64I والتي يتم استخدامها في الحقول المضمنة. RV12 هو أيضًا من عائلة وحدة المعالجة المركزية 32 أو 64 بت اعتمادًا على مجموعة تعليمات RISC-V القياسية الصناعية.

ينفذ RV12 ببساطة بنية هارفارد للوصول المتزامن إلى التعليمات بالإضافة إلى ذاكرة البيانات. يتضمن أيضًا خط أنابيب من 6 مراحل يساعد في تحسين التداخلات بين التنفيذ ووصول الذاكرة لتحسين الكفاءة. تتضمن هذه البنية بشكل أساسي توقع الفرع ، وذاكرة التخزين المؤقت للبيانات ، ووحدة التصحيح ، وذاكرة التخزين المؤقت للتعليمات ، ووحدات المضاعف أو الأقسام الاختيارية.

  هندسة معالج RISC
هندسة معالج RISC

تشمل الميزات الرئيسية لـ RV12 RISC V ما يلي.

  • إنها مجموعة تعليمات قياسية للصناعة.
  • معلمة مع بيانات 32 أو 64 بت.
  • لديها مقاطعات دقيقة وسريعة.
  • تسمح التعليمات المخصصة بإضافة مسرعات أجهزة خاصة.
  • تنفيذ دورة واحدة.
  • خط أنابيب من ست مراحل مع مطوي أمثل.
  • دعم مع حماية الذاكرة.
  • مخابئ اختيارية أو ذات معلمات.
  • معلمة للغاية.
  • يمكن للمستخدمين تحديد بيانات 32/64 بت ووحدة توقع الفروع.
  • يمكن للمستخدمين تحديد مخابئ التعليمات / البيانات.
  • يمكن للمستخدم تحديد هيكل وحجم وبنية ذاكرة التخزين المؤقت.
  • مقسم الأجهزة أو دعم المضاعف من خلال زمن الوصول المحدد من قبل المستخدم.
  • تتميز بنية الحافلة بالمرونة التي تدعم عظم الترقوة و AHB.
  • هذا التصميم يحسن القوة والحجم.
  • التصميم محدد تمامًا والذي يوفر الأداء أو مقايضات القوة.
  • تصميم ببوابة CLK لتقليل الطاقة.
  • دعم البرامج حسب معيار الصناعة.
  • محاكاة معمارية.
  • يستخدم Eclipse IDE لنظام التشغيل Linux / Windows.

خط أنابيب التنفيذ RISC V

وهي تشمل خمس مراحل مثل IF (جلب التعليمات) ، والمعرف (فك شفرة التعليمات) ، و EX (تنفيذ) ، و MEM (الوصول إلى الذاكرة) ، و WB (تسجيل إعادة الكتابة).

إحضار التعليمات

جلب التعليمات أو مرحلة IF ، تتم قراءة تعليمة واحدة من عداد البرنامج (PC) وذاكرة التعليمات التي يتم تحديثها إلى التعليمات التالية.

تعليمات ما قبل فك

بمجرد السماح بدعم RVC ، ستقوم مرحلة ما قبل فك الشفرة بالتعليمات بفك تشفير تعليمة مضغوطة 16 بت إلى تعليمات 32 بت أصلية.

تعليمات فك

في مرحلة فك التعليمات (ID) ، يُسمح بملف التسجيل ويتم تحديد ضوابط التجاوز.

نفذ - اعدم

في مرحلة التنفيذ ، يتم حساب النتيجة لتعليمات ALU و DIV و MUL والذاكرة المسموح بها لتعليمات Store أو Load ويتم قياس الفروع والقفزات مقابل النتائج المتوقعة.

ذاكرة

في مرحلة الذاكرة هذه ، يتم الوصول إلى الذاكرة عبر خط الأنابيب. يضمن تضمين هذه المرحلة الأداء العالي لخط الأنابيب.

رد على الرسالة

في هذه المرحلة ، يتم كتابة نتيجة مرحلة التنفيذ في ملف التسجيل.

توقع الفرع

يشتمل هذا المعالج على وحدة توقع فرعي أو وحدة BPU تُستخدم لتخزين البيانات السابقة لتوجيه معالج RISC V في تقرير ما إذا كان قد تم أخذ فرع معين أم لا. يتم تحديث بيانات التوقع هذه بمجرد تنفيذ الفرع.

تتضمن هذه الوحدة معايير مختلفة تحدد سلوكها. على سبيل المثال ، يتم استخدام HAS_BPU لتحديد ما إذا كان الفرع يتوقع وجود وحدة ما أم لا ، وسيحدد BPU_GLOBAL_BITS عدد البتات السابقة التي يجب استخدامها وسيحدد BPU_LOCAL_BITS عدد LSB لعداد البرنامج الذي يجب استخدامه. سيؤدي الجمع بين BPU_LOCAL_BITS و BPU_GLOBAL_BITS إلى إنشاء متجه يستخدم بشكل أساسي لمعالجة جدول التنبؤ الفروع.

ذاكرة التخزين المؤقت للبيانات

يستخدم هذا بشكل أساسي لتسريع الوصول إلى ذاكرة البيانات عن طريق التخزين المؤقت لمواقع الذاكرة التي تم الوصول إليها حديثًا. هذا قادر على التعامل مع وصول نصف الكلمات والبايت والكلمة عندما يكون XLEN = 32 إذا كانوا على حدودهم الخاصة. كما أنه قادر على التعامل مع عمليات الوصول نصف كلمة ، والبايت ، والكلمة ، وكلمات مزدوجة عندما تكون XLEN = 64 إذا كانت ضمن حدودها الخاصة.

خلال عملية فقدان ذاكرة التخزين المؤقت ، يمكن إعادة كتابة كتلة كاملة إلى الذاكرة ، لذلك إذا لزم الأمر ، يمكن تحميل كتلة جديدة في ذاكرة التخزين المؤقت. تم تعطيل ذاكرة التخزين المؤقت للبيانات عن طريق تعيين DCACHE_SIZE إلى صفر. بعد ذلك ، يتم الوصول إلى مواقع الذاكرة مباشرة من خلال ملف واجهة البيانات .

تعليمات مخبأ

يستخدم هذا بشكل أساسي لتسريع عملية جلب التعليمات عن طريق التخزين المؤقت للتعليمات التي تم جلبها حديثًا. يتم استخدام ذاكرة التخزين المؤقت هذه لجلب طرد واحد لكل دورة على أي حدود 16 بت ولكن ليس عبر حدود الكتلة. خلال خطأ ذاكرة التخزين المؤقت ، يمكن تحميل كتلة كاملة من ذاكرة التعليمات. يمكن تكوين ذاكرة التخزين المؤقت هذه بناءً على احتياجات المستخدم. يمكن تكوين حجم ذاكرة التخزين المؤقت وخوارزمية الاستبدال وطول الكتلة.

سيتم تعطيل دورة التعليمات عن طريق ضبط ICACHE_SIZE على الصفر. بعد ذلك ، يتم جلب الطرود مباشرة من الذاكرة عبر ملف واجهة التعليمات.

وحدة التصحيح

ستسمح وحدة التصحيح لمحيط التصحيح بالتوقف وفحص وحدة المعالجة المركزية. الميزات الرئيسية لهذا هي تتبع الفروع ، تتبع خطوة واحدة حتى 8- نقاط توقف الأجهزة.

تسجيل ملف

تم تصميم هذا مع 32 موقع تسجيل من X0 إلى X31 حيث يكون X9 Register صفرًا دائمًا. يتضمن ملف السجل 1- منفذ كتابة و 2-منفذ قراءة.

واجهة شكلي

هذه واجهة خارجية حيث يدعم هذا المعالج واجهات ناقل خارجية مختلفة.

كيف يعمل RISC V؟

RISC-V هي بنية مجموعة تعليمات متجذرة ضمن مبادئ RISC (كمبيوتر مجموعة التعليمات المخفضة). هذا المعالج فريد جدًا وثوري أيضًا لأنه ISA مجاني وشائع ومفتوح المصدر حيث يمكن تطوير الأجهزة ، ويمكن نقل البرنامج ويمكن تصميم المعالجات لدعمه.

الفرق B / W RISC V مقابل MIPS

يتضمن الاختلاف بين RISC V و MIPS ما يلي.

RISC V

MIPS

يشير المصطلح RISC V إلى كمبيوتر مجموعة التعليمات المخفضة حيث يمثل 'V' الجيل الخامس. يشير مصطلح 'MIPS' إلى 'مليون تعليمات في الثانية'.
يسمح RISC-V ببساطة لمصنعي الأجهزة الأصغر بتصميم الأجهزة دون دفع. يسمح MIPS للشركة المصنعة بقياس سرعة المعالج من خلال الدفع لأنه ليس مجانيًا.
كفاءة MIPS ميت. RISC-V ليس ميتًا بشكل فعال.
يوفر هذا المعالج تعليمات فرع لمقارنة سجلين. يعتمد MIPS على تعليمات المقارنة التي تحدد موقع السجل بـ 1 أو 0 بناءً على ما إذا كان التباين صحيحًا.
مخطط ترميز ISA ثابت ومتغير في RISC V. تم إصلاح مخطط ترميز ISA في MIPS
حجم مجموعة التعليمات هو 16 بت أو 32 بت أو 64 بت أو 128 بت. حجم مجموعة التعليمات هو 32 بت أو 64 بت.
يحتوي على 32 سجل للأغراض العامة ونقطة عائمة لديها 31 للأغراض العامة وسجلات النقطة العائمة.
لديها 26 عملية نقطة عائمة مفردة ومزدوجة الدقة. لديها 15 عملية فاصلة عائمة بدقة مفردة ومزدوجة.

الفرق B / W RISC V مقابل ARM

يشمل الاختلاف بين RISC V Vs ARM ما يلي.

RISC V

ذراع

RISC-V مفتوح المصدر ، لذا لا يتطلب أي ترخيص. ARM هو مصدر مغلق ، لذا فهو يحتاج إلى ترخيص.
إنها منصة معالج جديدة ، لذلك يوجد دعم صغير جدًا لبيئات البرامج والبرمجة. لدى ARM مجتمع كبير جدًا عبر الإنترنت ، والذي يدعم المكتبات والهياكل لمساعدة المصممين المستهدفين في العديد من المنصات مثل المعالجات الدقيقة والميكروكونترولر وأيضًا الخوادم.
تستخدم رقائق RISC V 1 واط من الطاقة. تستخدم الرقائق القائمة على ARM أقل من 4 واط من الطاقة.
يحتوي على نظام ترميز ISA ثابت ومتغير. لديها نظام ترميز ثابت ISA.
يتراوح حجم مجموعة تعليمات RISC V من 16 بت إلى 128 بت. يتراوح حجم التعليمات الخاصة به من 16 بت إلى 64 بت.
وهو يشتمل على 32 مسجلاً للأغراض العامة ونقطة عائمة. يتضمن 31 سجل للأغراض العامة وسجلات النقطة العائمة.
لديها 26 عملية فاصلة عائمة دقيقة. لديها 33 عملية فاصلة عائمة دقيقة.
لديها 26 عمليات فاصلة عائمة بدقة مضاعفة. لديها 29 عمليات فاصلة عائمة بدقة مضاعفة.

كود RISC V Verilog

يتم عرض رمز فيريلوج لذاكرة التعليمات لـ RISC أدناه.

// كود فيريلوج لمعالج RISC
// كود فيريلوج لذاكرة التعليمات

وحدة Instruction_Memory (
المدخلات [15: 0] كمبيوتر ،
إخراج [15: 0] تعليمات
) ؛

reg [`col - 1: 0] memory [` row_i - 1: 0] ؛
سلك [3: 0] rom_addr = كمبيوتر [4: 1] ؛
مبدئي
يبدأ
$ readmemb ('./ test / test.prog' ، الذاكرة ، 0،14) ؛
نهاية
تعيين التعليمات = الذاكرة [rom_addr] ؛

الوحدة النهائية

كود Verilog لمعالج RISC V 16 بت:

الوحدة النمطية Risc_16_bit (
إدخال clk
) ؛

wire jump، bne، beq، mem_read، mem_write، alu_src، reg_dst، mem_to_reg، reg_write؛
سلك [1: 0] alu_op ؛
رمز التشغيل السلكي [3: 0] ؛

// داتاباث

Datapath_Unit DU
(
.clk (clk) ،
.اقفز اقفز)،
.frog (ضفدع) ،
.mem_read (mem_read) ،
.mem_write (mem_write) ،
.alu_src (alu_src) ،
.reg_dst (reg_dst) ،
.mem_to_reg (mem_to_reg) ،
.reg_write (reg_write) ،
.bne (bne) ،
.alu_op (alu_op) ،
.opcode (كود التشغيل)
) ؛

// وحدة التحكم
Control_Unit control
(
.opcode (كود التشغيل) ،
.reg_dst (reg_dst) ،
.mem_to_reg (mem_to_reg) ،
.alu_op (alu_op) ،
.اقفز اقفز)،
.bne (bne) ،
.frog (ضفدع) ،
.mem_read (mem_read) ،
.mem_write (mem_write) ،
.alu_src (alu_src) ،
.reg_write (reg_write)
) ؛
الوحدة النهائية

مجموعات التعليمات

تمت مناقشة مجموعات تعليمات RISC V أدناه.

عمليات حسابية

العمليات الحسابية RISC V مذكورة أدناه.

ذاكري يكتب تعليمات وصف
إضافة rd ، rs1 ، rs2

ر

يضيف rdß rs1 + rs2
SUB rd، rs1، rs2

ر

طرح او خصم rdß rs1 - rs2
ADDI rd ، rs1 ، imm12

أنا

أضف فوري rdß rs1 + imm12
SLT rd، rs1، rs2

ر

تعيين أقل من rdß rs1 -
SLTI rd ، rs1 ، imm12

أنا

تعيين أقل من الفوري rdß rs1 -
SLTU rd ، rs1 ، rs2

ر

تعيين أقل من غير موقعة rdß rs1 -
SLTIU rd ، rs1 ، imm12

أنا

تعيين أقل من فوري بدون توقيع rdß rs1 -
LUI rd ، imm20

في

تحميل علوي فوري rdß imm20 << 12
AUIP rd ، imm20

في

أضف الجزء العلوي الفوري لجهاز الكمبيوتر rdß PC + imm20 << 12

العمليات المنطقية

العمليات المنطقية RISC V مذكورة أدناه.

ذاكري يكتب تعليمات وصف
و rd ، rs1 ، rs2

ر

و rdß rs1 و rs2
أو rd ، rs1 ، rs2

ر

أو rdß rs1 | روبية 2
XOR rd، rs1، rs2

ر

مجانا rdß rs1 ^ rs2
ANDI rd، rs1، imm12

أنا

وفوري rdß rs1 & imm2
ORI rd، rs1، imm12

أنا

أو فوري rdß rs1 | imm12
OXRI rd، rs1، imm12

أنا

XOR فوري rdß rs1 ^ rs2
SLL rd، rs1، rs2

ر

التحول إلى اليسار منطقي rdß rs1 << rs2
SRL rd، rs1، rs2

ر

التحول لليمين منطقي rdß rs1 >> rs2
RAS rd ، rs1 ، rs2

ر

تحويل الحساب الصحيح rdß rs1 >> rs2
SLLI rd، rs1، shamt

أنا

التحول إلى اليسار المنطقي الفوري rdß rs1 << shamt
SRLI rd، rs1، shamt

أنا

التحول الصحيح المنطقي الفوري rdß rs1 >> shamt
SRAI rd، rs1، shamt

أنا

التحول الحسابي الصحيح فوري rdß rs1 >> shamt

عمليات التحميل / التخزين

عمليات التحميل / التخزين RISC V مذكورة أدناه.

ذاكري يكتب تعليمات وصف
LD rd، imm12 (rs1)

أنا

تحميل كلمة مزدوجة rdß mem [rs1 + imm12]
LW rd ، imm12 (rs1)

أنا

كلمة تحميل rdß mem [rs1 + imm12]
LH rd ، imm12 (rs1)

أنا

تحميل في منتصف الطريق rdß mem [rs1 + imm12]
LB rd ، imm12 (rs1)

أنا

بايت تحميل rdß mem [rs1 + imm12]
LWU rd ، imm12 (rs1)

أنا

تحميل كلمة غير موقعة rdß mem [rs1 + imm12]
LHU rd ، imm12 (rs1)

أنا

تحميل نصف كلمة بدون توقيع rdß mem [rs1 + imm12]
LBU rd ، imm12 (rs1)

أنا

بايت تحميل غير موقعة rdß mem [rs1 + imm12]
SD rs2 ، imm12 (rs1)

س

تخزين الكلمات المزدوجة rs2 إلى mem [rs1 + imm12]
SW rs2 ، imm12 (rs1)

س

كلمة مخزن rs2 (31: 0) إلى mem [rs1 + imm12]
SH rs2 ، imm12 (rs1)

س

يخزن في منتصف الطريق rs2 (15: 0) إلى mem [rs1 + imm12]
SB rs2 ، imm12 (rs1)

س

تخزين البايت rs2 (15: 0) إلى mem [rs1 + imm12]
SRAI rd، rs1، shamt

أنا

التحول الحسابي الصحيح فوري rs2 (7: 0) إلى mem [rs1 + imm12]

عمليات الفروع

العمليات المتفرعة RISC V مذكورة أدناه.

ذاكري يكتب تعليمات وصف
BEQ rs1، rs2، imm12

SB

فرع يساوي إذا كان rs1 == rs2

الكمبيوتر الشخصي PC + imm12

BNE rs1 ، rs2 ، imm12

SB

فرع لا يساوي إذا كان rs1! = rs2

الكمبيوتر الشخصي PC + imm12

BGE rs1 و rs2 و imm12

SB

الفرع أكبر من أو يساوي إذا كانت rs1> = rs2

الكمبيوتر الشخصي PC + imm12

BGEU rs1 ، rs2 ، imm12

SB

الفرع أكبر من أو يساوي غير موقع إذا كانت rs1> = rs2

الكمبيوتر الشخصي PC + imm12

BLT rs1، rs2، imm12

SB

فرع أقل من إذا كان rs1 الكمبيوتر الشخصي PC + imm12

BLTU rs1، rs2، imm12

SB

فرع أقل من غير موقع إذا كان rs1 PC ß PC + imm12 << 1

JAL rd ، imm20

UJ

القفز والارتباط rdßPC + 4
PCß PC + imm20
JALR rd ، imm12 (rs1)

أنا

القفز وربط التسجيل rdßPC + 4
PCß rs1 + imm12

مزايا

ال مزايا RISC معالج V تشمل ما يلي.

  • باستخدام RISCV ، يمكننا توفير وقت التطوير وتطوير البرامج والتحقق وما إلى ذلك.
  • يحتوي هذا المعالج على العديد من المزايا مثل البساطة ، والانفتاح ، والنمطية ، والتصميم النظيف ، وقابلية التوسع.
  • هذا مدعوم من قبل العديد من مجمعي اللغات مثل GCC (GNU Compiler Collection) ، وهو مترجم للبرامج المجانية ومن خلال نظام تشغيل Linux .
  • يمكن للشركات استخدام هذا مجانًا نظرًا لعدم وجود إتاوات أو رسوم ترخيص أو قيود متصلة.
  • لا يتضمن معالج RISC-V أي ميزات جديدة أو مبتكرة لأنه يتبع المبادئ الراسخة لـ RISC.
  • على غرار العديد من ISAs الأخرى ، تحدد مواصفات المعالج هذه ببساطة مستويات مختلفة من مجموعة التعليمات. لذلك يحتوي هذا على متغيرات 32 و 64 بت بالإضافة إلى امتدادات لتقديم الدعم لتعليمات النقطة العائمة.
  • هذه مجانية ، بسيطة ، معيارية ، مستقرة ، إلخ.

سلبيات

ال عيوب معالج RISC V. تشمل ما يلي.

  • كثيرًا ما يستخدم المترجمون والمبرمجون التعليمات المعقدة.
  • قد يتغير o / p الخاص بـ RISC بناءً على الكود عندما تعتمد التعليمات اللاحقة داخل حلقة على التعليمات السابقة للتنفيذ.
  • تحتاج هذه المعالجات إلى حفظ مجموعة متنوعة من التعليمات بسرعة ، الأمر الذي يتطلب مجموعة ذاكرة تخزين مؤقت كبيرة للاستجابة للتعليمات في الوقت المناسب.
  • تعتمد الميزات والقدرات والفوائد الكاملة لـ RISC بشكل أساسي على البنية.

التطبيقات

ال تطبيقات RISC V المعالج تشمل ما يلي.

  • يستخدم RISC-V في الأنظمة المضمنة والذكاء الاصطناعي والتعلم الآلي.
  • تُستخدم هذه المعالجات في تطبيقات النظام المضمنة عالية الأداء.
  • هذا المعالج مناسب للاستخدام في بعض المجالات المحددة مثل الحوسبة المتطورة والذكاء الاصطناعي وتطبيقات التخزين.
  • يعد RISC-V مهمًا لأنه يسمح لمصنعي الأجهزة الأصغر بتصميم الأجهزة دون دفع.
  • يسمح هذا المعالج للباحثين والمطورين ببساطة بالتصميم والبحث باستخدام بنية ISA أو مجموعة التعليمات المتاحة مجانًا.
  • تتراوح تطبيقات RISC V من ميكروكنترولر صغيرة مدمجة إلى أجهزة كمبيوتر سطح المكتب وأجهزة الكمبيوتر العملاقة بما في ذلك معالجات المتجهات.

وهكذا ، هذا هو نظرة عامة على معالج RISC V - الهندسة المعمارية ، والعمل مع التطبيقات. إليك سؤال لك ، ما هو معالج CISC؟