يونيكور

يونيكور هي بنية مجموعة تعليمات حاسوبية صممها مركز أبحاث وتطوير المعالجات الدقيقة (MPRC) التابع لجامعة بكين في جمهورية الصين الشعبية . يُطلق على الحاسوب المبني على هذه البنية اسم يونيتي-863 . [ 1 ] وحدة المعالجة المركزية مدمجة في نظام متكامل على شريحة (SoC) كامل الوظائف لإنشاء نظام شبيه بالحاسوب الشخصي. [ 2 ]

المعالج مشابه جدًا لبنية ARM ، ولكنه يستخدم مجموعة تعليمات مختلفة. [ 3 ]

كان مدعومًا من قبل نواة لينكس بدءًا من الإصدار 2.6.39؛ [ 4 ] أُزيل الدعم في نواة لينكس الإصدار 5.9 لأنه وفقًا لأحد المطورين "لم يبدُ أن أحدًا يُجري عليه الصيانة، وكان الكود متخلفًا عن بقية كود النواة ومتطلبات المُصرّف". [ 5 ]

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

تتشابه التعليمات تقريبًا مع تنسيقات ARM القياسية، باستثناء إزالة التنفيذ المشروط، وإعادة تخصيص البتات لتوسيع جميع مُحدِّدات السجلات إلى 5 بتات. [ 6 ] [ 7 ] وبالمثل، فإن تنسيق القيمة الفورية هو 9 بتات مُدارة بمقدار 5 بتات (بدلاً من 8 بتات مُدارة بمقدار 4 بتات)، وأحجام إزاحة التحميل/التخزين هي 14 بتًا للبايت/الكلمة و10 بتات للبايت المُوقَّع أو نصف الكلمة. يتم توفير عمليات النقل المشروطة عن طريق ترميز الشرط في حقل سجل المصدر الثاني Rn (غير المستخدم بواسطة ARM) لتعليمات MOV وMVN.

نظرة عامة على مجموعة تعليمات Unicore32 [ 8 ]
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
وصف
000رمز العمليةSممرضة مسجلةالطريقيحول0ش0غرفةعملية وحدة الحساب والمنطق، Rd = Rn op Rm shift #shift
000رمز العمليةSممرضة مسجلةالطريقروبية0ش1غرفةعملية وحدة الحساب والمنطق، Rd = Rn op Rm shift Rs
001رمز العمليةSممرضة مسجلةالطريقيحولimm9عملية وحدة الحساب والمنطق، Rd = Rn op #imm9 ROTL #shift
010Pيوبدبليولممرضة مسجلةالطريقيحول0ش0غرفةقم بتحميل/تخزين Rd لمعالجة Rn ± Rm shift #shift
011Pيوبدبليولممرضة مسجلةالطريقإزاحة 14تحميل/تخزين Rd للعنوان Rn ± الإزاحة 14
100PيوSدبليولممرضة مسجلةصورة نقطية عالية00حصورة نقطية منخفضةتحميل/تخزين سجلات متعددة
101الحالةلإزاحة 24قم بالتفرع (والربط) إذا كان الشرط صحيحًا
110تعليمات المعالج المساعد (FPU)
11111111رقم المصيدةمقاطعة البرمجيات
000000أSممرضة مسجلةالطريقروبية1001غرفةاضرب، Rd = Rm * Rs (+ Rn)
0001000ل1111111111000001001غرفةالفرع والصرافة (BX، BLX)
010Pيو0دبليولممرضة مسجلةالطريق000001Sح1غرفةتحميل/تخزين Rd إلى العنوان Rn ± Rm (16 بت)
010Pيو1دبليولممرضة مسجلةالطريقimm_hi1Sح1imm_loتحميل/تخزين Rd إلى العنوان Rn ± #imm10 (16 بت)

تتطابق معاني بتات العلامات المختلفة (مثل S=1 التي تُمكّن من ضبط رموز الحالة) مع مجموعة تعليمات ARM. لا تستطيع تعليمة التحميل/التخزين المتعددة الوصول إلا إلى نصف مجموعة السجلات، وذلك بحسب بت H. إذا كان H=0، فإن البتات الستة عشر تُشير إلى R0–R15؛ وإذا كان H=1، فإنها تُشير إلى R16–R31.

مراجع

  1. "مقدمة إلى MPRC" . مركز أبحاث وتطوير المعالجات الدقيقة، جامعة بكين.
  2. ^ شو تشنغ. شياويين وانغ؛ جونلين لو؛ جيانغفانغ يي؛ دونغ تونغ؛ شيويتاو جوان؛ فنغ ليو؛ شيانهوا ليو؛ تشون يانغ؛ يي فنغ (مارس 2010)، “التقدم البحثي لوحدات المعالجة المركزية UniCore وPKUnity SoCs” (PDF) ، مجلة علوم الكمبيوتر والتكنولوجيا ، 25 (2): 200–213 ، دوى : 10.1007 / s11390-010-9317-1 ، S2CID 7083916 ، تم استرجاعه 11/07/2012 
  3. بيرغمان، آرند (9 يوليو 2012). "ردًا على: [ الرقعة 00/36 ] منفذ نواة لينكس AArch64" . قائمة بريدية لنواة لينكس . تم الاطلاع بتاريخ 11 يوليو 2012. مثال آخر مثير للاهتمام هو unicore32، الذي يشترك فعليًا في قدر أكبر من التعليمات البرمجية مع arch/arm مقارنةً بـ arch/aarch64 المقترح. أعتقد أن قاعدة تعليمات unicore32 ستستفيد من دمجها مرة أخرى في arch/arm كمجموعة تعليمات ثالثة، لكن تكلفة الصيانة الإضافية لجميع العاملين على ARM تجعل ذلك غير واقعي.
  4. "تم إغلاق نافذة الدمج - الإصدار 2.6.39-rc1 متاح الآن" . لينوس تورفالدز .
  5. "إزالة دعم unicore32" . مايك رابوبورت.
  6. هسو-هونغ تشيانغ؛ هوانغ-جيا تشنغ؛ يوان-شين هوان (25-02-2012)، "مضاعفة عدد المسجلات في معالجات ARM" (ملف PDF) ، ورشة العمل السادسة عشرة حول التفاعل بين المترجمات وهياكل الحاسوب (INTERACT) ، الصفحات 1-8 ، doi : 10.1109/INTERACT.2012.6339620 ، ISBN  978-1-4673-2613-1، S2CID 6832041 
  7. شفرة المصدر لمحاكي معالج Unicore . توجد تنسيقات التعليمات في decode.c، والتفكيك في interpret.c، والمحاكاة في instEx.c.
  8. شفرة المصدر لمحاكي QEMU Unicore32