مؤتمر الأطراف الثامن

معالج COP8 من شركة ناشيونال سيميكوندكتور هو معالج دقيق ذو نواة CISC ثمانية بت . يُعد COP8 تطويرًا لعائلة معالجات COP400 السابقة ذات الأربعة بت. أهم ميزات COP8 هي:

يتميز معالج COP8 بزمن دورة تعليمات أساسي يساوي عُشر تردد الساعة؛  حيث ينتج عن تردد ساعة أقصى يبلغ 10 ميجاهرتز  معدل تنفيذ تعليمات أقصى يبلغ 1 ميجاهرتز. (  تُستخدم ساعة 10 ميجاهرتز مباشرةً بواسطة بعض وحدات المؤقت الطرفية). يبلغ الحد الأقصى لمعدل تنفيذ التعليمات دورة واحدة لكل بايت، وتعمل معظم التعليمات ذات البايت الواحد في دورة تعليمات واحدة. بينما تستغرق بعض التعليمات، وخاصة تعليمات التفرع، دورة أو دورتين إضافيتين. تتضمن بعض الطرازات مُضاعِف تردد الساعة، وعلى الرغم من أنها لا تزال تقبل  تردد ساعة إدخال أقصى يبلغ 10 ميجاهرتز، إلا أنها تُضاعفه داخليًا إلى  تردد ساعة رئيسي يبلغ 20 ميجاهرتز، مما ينتج عنه  معدل تنفيذ تعليمات يبلغ 2 ميجاهرتز. [ 1 ] : 7,32

الشريحة عبارة عن تصميم منطقي ثابت يمكنه تحمل تردد ساعة بطيء للغاية؛ [ 1 ] : 10 تتضمن معظم الطرازات شريحة ثانية مذبذب بلوري كوارتز بتردد 32768 هرتز يمكن استخدامه لساعة وحدة المعالجة المركزية بينما يتم تعطيل الساعة عالية السرعة لتوفير الطاقة.

السجلات وخريطة الذاكرة

يستخدم معالج COP8 مساحات منفصلة للتعليمات والبيانات ( معمارية هارفارد ). [ 2 ] : 2-1 [ 3 ] : 2-4 مساحة عناوين التعليمات 15 بت (  بحد أقصى 32 كيلوبايت)، بينما عناوين البيانات 8 بت (بحد أقصى 256 بايت، قابلة للتوسيع عبر تبديل البنوك).

لتمكين اكتشاف أخطاء البرمجيات، تُقرأ جميع عناوين التعليمات غير الصالحة على أنها أصفار، وهي تعليمات اعتراض. أما عناوين ذاكرة الوصول العشوائي غير الصالحة الموجودة أعلى المكدس فتُقرأ على أنها جميعها آحاد، وهو ما يُعد عنوانًا غير صالح.

تحتوي وحدة المعالجة المركزية على مُجمِّع 8 بت وعداد برنامج 15 بت . كما يتم ربط 16 سجلاً إضافياً 8 بت (R0–R15) وكلمة حالة برنامج 8 بت بالذاكرة. توجد تعليمات خاصة للوصول إليها، ولكن يمكن أيضاً استخدام تعليمات الوصول العامة إلى ذاكرة الوصول العشوائي (RAM).

تنقسم خريطة الذاكرة إلى نصف ذاكرة وصول عشوائي (RAM) ونصف سجلات تحكم على النحو التالي:

مساحة عناوين بيانات COP8
العناوينيستخدم
0x00–6Fذاكرة الوصول العشوائي للأغراض العامة، تُستخدم للمكدس
0x70–7Fغير مستخدم، يُقرأ على أنه جميع القيم 1 (0xFF) لاصطياد حالات تجاوز سعة المكدس
0x80–8Fغير مستخدم، يقرأ غير محدد
0x90–BFسجلات تحكم طرفية إضافية
0xC0–CFسجلات التحكم الطرفية.
0xD0–DFمنافذ الإدخال/الإخراج للأغراض العامة L و G و I و C و D
0xE0–E8محجوز
0xE9مسجل إزاحة الأسلاك الدقيقة
0xEA–EDيسجل المؤقت 1
0xEEسجل CNTRL، بتات التحكم لـ Microwire والمؤقت 1
0xEFPSW، كلمة حالة برنامج وحدة المعالجة المركزية
0xF0–FBR0–R11، ذاكرة الوصول العشوائي الموجودة على الشريحة مُعينة كسجلات
0xFCR12، المعروف أيضًا باسم X، سجل المؤشر غير المباشر الثانوي
0xFDR13، المعروف أيضًا باسم SP، سجل مؤشر المكدس
0xFER14، المعروف أيضًا باسم B، سجل المؤشر غير المباشر الأساسي
0xFFR15، المعروف أيضًا باسم S، سجل امتداد مقطع البيانات

إذا لم تكن ذاكرة الوصول العشوائي (RAM) مُقسّمة إلى بنوك، فإن المسجل R15 (S) يُعدّ مسجلاً عامًا عاديًا. أما إذا كانت مُقسّمة إلى بنوك، فإن النصف السفلي من مساحة عناوين البيانات (العناوين من 0x00 إلى 7F) يُوجّه إلى بنك RAM مُحدّد بواسطة S. وتكون المسجلات ذات الأغراض الخاصة في النصف العلوي من مساحة عناوين البيانات مرئية دائمًا. ويمكن استخدام مسجلات البيانات عند العنوان 0xF لنسخ البيانات بين البنوك.

تتوفر جميع وحدات الذاكرة العشوائية (RAM) البالغ عددها 128 بايتًا في جميع البنوك الأخرى غير البنك 0. ويكون المكدس (الذي يُعنون عبر مؤشر المكدس) دائمًا في البنك 0، بغض النظر عن كيفية ضبط سجل S.

عمليات نقل التحكم

بالإضافة إلى التعليمات JMPLذات 3 بايت JSRLالتي يمكنها الوصول إلى كامل مساحة العناوين، توجد إصدارات ثنائية البايت من هذه التعليمات، ويمكنها القفز ضمن صفحة بحجم 4 كيلوبايت. تحدد هذه التعليمات البتات الـ 12 الأدنى، بينما تُحفظ البتات الـ 3 الأعلى من عداد البرنامج (PC). (هذه التعليمات مُخصصة بشكل أساسي للطرازات التي تصل سعة ذاكرة القراءة فقط (ROM) فيها إلى 4 كيلوبايت). أما بالنسبة للتفرعات قصيرة المدى، فهناك 63 تعليمة أحادية البايت، JMPتُنفذ تفرعات نسبية لعداد البرنامج من PC-32 إلى PC+31. هذه عملية جمع 15 بت، ولا تُطبق عليها أي متطلبات لحدود الصفحة.JSRJP

هناك أيضًا تعليمات القفز غير المباشر وتعليمات تحميل المُراكم غير المباشر التي تستخدم محتويات المُراكم كأقل 8 بتات من العنوان؛ ويتم الاحتفاظ بأعلى 7 بتات من عداد البرنامج الحالي.

لا توجد تفرعات شرطية بحد ذاتها ، ولا يوفر المعالج علامات حالة ZCVN التقليدية ، على الرغم من أن كلمة حالة البرنامج تحتوي على علامات الحمل ونصف الحمل للعمليات الحسابية متعددة البايتات. بدلاً من ذلك، توجد عدة تعليمات للمقارنة والتجاوز. على سبيل المثال، IFEQتقارن هذه التعليمات مُعامليها، وتتجاوز التعليمات التالية إذا كانا غير متساويين. يمكن تجاوز أي تعليمة؛ فالأمر لا يقتصر على التفرعات.

RETSKيُعدّ تعليمة الإرجاع والتخطي امتدادًا مثيرًا للاهتمام لهذه الآلية ، حيث تسمح لأي روتين فرعي بتخطي التعليمة التي تلي الاستدعاء بشكل مشروط. وهذا يوفر طريقة مختصرة للغاية لإرجاع قيمة منطقية من روتين فرعي.

من الميزات الفريدة الأخرى لبنية COP8 IFBNEتعليمةٌ تُسمى تعليمة البايت الواحد. تقارن هذه التعليمة، التي تتكون من بايت واحد، البتات الأربعة الدنيا من سجل B (مؤشر الذاكرة) بثابت فوري مكون من 4 بتات، ويمكن استخدامها للتكرار حتى يصل B إلى نهاية مخزن مؤقت صغير (يصل حجمه إلى 16 بايت). توجد أيضًا LD B,#imm4تعليمة أخرى من بايت واحد.

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

تُدرج معاملات COP8 بترتيب الوجهة ثم المصدر. تحتوي معظم التعليمات على المُراكم A كأحد المعاملات. يُختار المعامل الآخر عادةً من بين قيمة فورية 8 بت، أو عنوان RAM 8 بت، أو [B]عنوان RAM الذي يُحدده السجل B. تدعم تعليمات التبادل مع المُراكم ( LDCOP8 XوCOP8) أيضًا عنونة RAM بواسطة السجل X ( [X]) ومتغيرات ما بعد الزيادة/النقصان ( [B+]، [B−]، [X+]، [X−]).

تعتبر المعالجة غير المباشرة عبر B سريعة بشكل خاص، ويمكن القيام بها في نفس الدورة التي يتم فيها تنفيذ التعليمات؛ حتى X A,[B]أنها تعليمات دورة واحدة.

من ناحية أخرى، لا يُشفّر عنونة ذاكرة الوصول العشوائي المطلقة إلا لخمس تعليمات فقط: و ، و ، و ، و . تُعدّ الأخيرة بادئة رمز عملية "عنونة مباشرة" يمكن إضافتها إلى أي تعليمة تحتوي على مُعامل، وتُغيّر المُعامل إلى موقع الذاكرة المُحدد. (تتخطى تعليمات التخطي المشروط البادئة والتعليمة التالية معًا). لم يُوثّق استخدام مع تعليمات ، و ، لأن التعليمات المُخصصة أكثر كفاءة.LD A,addr8X A,addr8IFEQ addr8,#imm8LD addr8,#imm8DIR addr8[B]DIRLD A,[B]X A,[B]LD [B],#imm8

تُستدعى جميع تعليمات "النقل" LD(تحميل) حتى لو كانت الوجهة عنوان ذاكرة . ومن اللافت للنظر أنه لا توجد تعليمات تستخدم المُراكم كمصدر؛ إذ يجب تنفيذ عمليات التخزين باستخدام التعليمة التي تُبدّل المُراكم مع مُعامل الذاكرة، حيث يتم تخزين A وتحميل محتويات الذاكرة السابقة. LD addr8,#imm8LDX

توجد تعليمات لجلب البيانات من الجداول في ذاكرة القراءة فقط (ROM). تجمع هذه التعليمات بين أعلى 7 بتات من عداد البرنامج (PCU) مع المُراكم، ثم تجلب بايتًا من ذلك العنوان، وتضعه في المُراكم ( LAIDالتعليمات) أو في أدنى 8 بتات من عداد البرنامج (PCL) ( JIDالتعليمات). ولأن التعليمات التالية التي سيتم تنفيذها يجب أن تكون في نفس صفحة ذاكرة القراءة فقط (ROM) التي يبلغ حجمها 256 بايتًا مثل الجدول نفسه، فإن جدولًا مكونًا من 256 مدخلًا غير ممكن.

مجموعة تعليمات عائلة COP8 [ 2 ] [ 4 ] [ 3 ] [ 5 ]
رمز العمليةالمعاملاتذاكريدوراتوصف
76543210ب2ب3
00000000مقدمة7مقاطعة البرمجيات (دفع PC، PC ← 0x00ff)
000إزاحةJP + disp53PC ← PC + الإزاحة ; قفزة من 1 إلى 31 بايت للأمام (الإزاحة ≠ 0)
0010عاليقليلJMP addr123PC[11:0] ← العنوان . تم الاحتفاظ بأعلى 3 بتات من PC.
0011عاليقليلJSR addr125الانتقال إلى الروتين الفرعي: ادفع عداد البرنامج، ثم تابع كـ JMP.
0100كIFBNE # imm41تخطَّ التعليمات التالية إذا كان (B & 15) = k .
0101كLD B,# imm41B ← 15 − k (ممتد إلى الصفر)
01100رمز العمليةتعليمات متنوعة
01100000كANDSZ A,# imm8 [ a ]2تخطَّ إذا كانت A & k = 0 (=IFBIT # bit ,A)
01100001العنوانJSRB addr8 [ b ]5اضغط على زر PC، ثم انتقل إلى روتين ROM الخاص بالتمهيد عند العنوان [ 1 ]
0110001(محجوز لذاكرة القراءة فقط للتمهيد) [ ب ] [ 1 ]
01100100CLR A1أ ← ٠
01100101تبديل أ1A ← A<<4 | A>>4؛ تبديل أجزاء الخبز
01100110ديكور أ1يتم تصحيح الفاصلة العشرية بعد عملية الجمع العشري المشفر ثنائياً (BCD).
01100111ادفع أ [ أ ]3[SP] ← A، SP ← SP−1
011شركة opcقليلعمليات البت على [B] [ c ]
01101قليلRBIT # بت ، [ب] [ ج ]1إعادة ضبط (مسح إلى 0) بت معين من ذاكرة الوصول العشوائي
01110قليلIFBIT # بت ، [ب] [ ج ]1اختبر بتة ذاكرة الوصول العشوائي المحددة، وتخطى الاختبار إذا كانت قيمتها صفرًا.
01111قليلSBIT # بت ، [ب] [ ج ]1قم بتعيين (إلى 1) بت معين من ذاكرة الوصول العشوائي
100م0رمز العمليةك؟العمليات الثنائية، A ← A معامل العملية
10000رمز العمليةOP A,[B] [ c ]1أ ← أ أوب [ب]
10010رمز العمليةكOP A,# imm82أ ← أ أوب ك
100م0000ك؟ADC A، المعاملC,A ← A + المعامل + C؛ الجمع مع الحمل
100م0001ك؟SUBC A، المعاملC,A ← A + ~ المعامل + C (A − المعامل − ~C)
100م0010ك؟IFEQ A، المعاملتخطَّ إذا كان A ≠ المعامل
100م0011ك؟IFGT A، المعاملتجاوز إذا كان A ≤ المعامل
100م0100ك؟أضف A، المعاملA ← A + المعامل (الحمل دون تغيير!)
100م0101ك؟و أ، المعاملA ← A & المعامل
100م0110ك؟XOR A، المعاملالمعامل A ← A ^
100م0111ك؟أو أ، المعاملA ← A | المعامل
10001رمز العمليةتعليمات بدون معاملات
10001000مؤسسة التمويل الدولية1تخطَّ هذه المنطقة إذا كانت خالية من السيارات.
10001001IFNC1تخطَّ هذه الخطوة إذا كانت مجموعة الحمل
10001010شركة أ1A ← A + 1 (الحمل دون تغيير)
10001011ديسمبر أ1A ← A − 1 (يبقى الحمل دون تغيير)
10001100POP A [ a ]3SP ← SP+1، A ← [SP]
10001101ريتسك5افتح الكمبيوتر، وتخطى تعليمة واحدة
10001110متقاعد5ارتفاع مستوى Pop PC، انخفاض مستوى Pop PC
10001111ريتي5قم بالعودة إلى وضع التفعيل للمقاطعات
10011رمز العمليةكتعليمات مع معامل فوري
10011000كLD A,# imm82أ ← ك
10011001كIFNE A,# imm8 [ a ]2تجاوز إذا كانت A = k
10011010كLD [B+],# imm83[B] ← k ، B ← B + 1
10011011كLD [B−],# imm83[B] ← k ، B ← B − 1
10011100العنوانXA، العنوان 83A ↔ [ addr ], exchange
10011101العنوانLD A، العنوان 83أ ← [ العنوان ]
10011110كLD [B],# imm82[ب] ← ك
10011111كLD B,# imm8 [ a ]2B ← k (=LD R14,# k ، دورة واحدة أسرع)
101رمز العملية0جتعليمات متنوعة
10100000RC1C ← 0؛ إعادة ضبط الحمل إلى 0
10100001SC1C ← 1؛ اضبط الحمل على 1
10100100وضع3A ← ROM[PCU:A]؛ التحميل من ROM
10100101جيد3PCL ← ROM[PCU:A]؛ الانتقال عبر جدول ROM
10101000RLC A [ a ]1C,A ← A,C؛ تدوير لليسار عبر الحمل (=ADC A,A)
10101001العنوانكIFEQ addr8 ,# imm8 [ a ]3تخطَّ إذا كان [ العنوان ] ≠ k
10101100عاليقليلJMPL addr154عنوان الكمبيوتر الشخصي ←
10101101عاليقليلJSRL addr155اضغط على الكمبيوتر، الكمبيوتر ← العنوان
10110000RRC A1A,C ← C,A؛ استدر إلى اليمين عبر الحمل
10110001(محجوز)
10110100رؤية [ أ ]5PC ← ROM[ جدول المتجهات ]؛ تحديد مقاطعة المتجهات
10110101RPND [ أ ]1إعادة ضبط علامة المقاطعة المعلقة
10111000برنامج العمل الوطني1لا توجد عملية
10111001IFNE A,[B] [ a ] ​​[ c ]1تخطَّ إذا كانت A = [B]
10111100العنوانكLD addr8 ,# imm83[ العنوان ] ← ك
10111101العنوانDIR addr83قم بتغيير معامل التعليمات التالية من [B] إلى [ addr ]
101Rل=1±عمليات التحميل/التبادل
10100010XA، [B+]2أ ↔ [ب]، ب ← ب+1
10100011XA,[B−]2أ ↔ [ب]، ب ← ب−1
10100110XA،[B]1أ ↔ [ب]
10101010LD A,[B+]2أ ← [ب]، ب ← ب+1
10101011LD A,[B−]2أ ← [ب]، ب ← ب−1
10101110LD A,[B]1أ ← [ب]
10110010XA,[X+]3A ↔ [X]، X ← X+1
10110011XA,[X−]3A ↔ [X]، X ← X−1
10110110XA,[X]3أ ↔ [X]
10111010LD A,[X+]3أ ← [س]، س ← س+1
10111011LD A,[X−]3A ← [X]، X ← X−1
10111110LD A,[X]3أ ← [X]
101111(محجوز)
1100يسجلسجل DRSZ3السجلالسجل - 1، تخطى إذا كانت النتيجة صفرًا
1101يسجلكسجل LD ، # imm83registerk (=LD 0xf0+ register ,# k , one byte shorter)
111إزاحةJP − disp53PC ← PC − 32 + الإزاحة ; قفزة من 1 إلى 32 بايت للخلف
76543210ب2ب3ذاكريدوراتوصف
  1. 1 2 3 4 5 6 7 8 9 10 فقط على "عائلة الميزات" (COP888/COP8SA)؛ غير موجود على "العائلة الأساسية" (COP800).
  2. 1 2 فقط على طرازات "عائلة الفلاش" (COP8TA/COP8C) المزودة بذاكرة قراءة فقط للتمهيد للبرمجة داخل النظام .
  3. 1 2 3 4 5 6 يمكن تغيير المعامل من[B]عنوان مطلق 8 بت معDIR بادئة (+2 بايت، +3 دورات).

الاستخدامات البارزة

مراجع

  1. 1 2 3 4 "وحدة تحكم دقيقة COMOS فلاشية 8 بت COP8SBR9/COP8SCR9/COP8SDR9 مزودة بذاكرة 32 كيلوبايت، وذاكرة EEPROM افتراضية، ووحدة حماية من انخفاض الجهد" (ملف PDF) (ورقة بيانات). ناشيونال سيميكوندكتور . أبريل 2002. تاريخ الاسترجاع: 6 يناير 2021 .
  2. دليل المستخدم لعائلة COP8 الأساسية ( ملف PDF) . المراجعة 002. شركة ناشيونال سيميكوندكتور . يونيو 1996. رقم المنشور 620895-002 . تاريخ الاسترجاع 2021-01-02 .
  3. 1 2 أليف، عبدول (يوليو 1996). "مقارنة بين COP878x وعائلة COP8SAx7 المحسّنة - اعتبارات الأجهزة/البرمجيات" (ملف PDF) . ناشيونال سيميكوندكتور . مذكرة تطبيقية رقم 1043.
  4. دليل مستخدم عائلة ميزات COP8 . المراجعة 005. شركة ناشيونال سيميكوندكتور . مارس 1999. رقم المنشور 620897-005. تم استخراجها من صورة ISO المضغوطة 530094-003_COP8_Tools_Docs_Aug1999.zip ، وتم استرجاعها في 2020-01-07.
  5. "دليل المصمم COP8SAx" (ملف PDF) . شركة ناشيونال سيميكوندكتور . يناير 1997. رقم المنشور 620894-001.
  6. ليبراتوري، ديفيد (11 مايو 2006). تحديث تصميم صمام القنبلة الإلكترونية FMU-139C/B (ملف PDF) . المؤتمر السنوي الخمسون للصمامات التابع للرابطة الوطنية لصناعة الصمامات . تم الاطلاع عليه بتاريخ 7 نوفمبر 2024 .
  7. دينيس، مارك؛ هانراهان، بوب؛ براكمان، كريس (نوفمبر 1991). مذكرة التطبيق 761 - التفجير الإلكتروني (ملف PDF) . شركة تكساس إنسترومنتس . تم الاطلاع عليه بتاريخ 7 نوفمبر 2024 .