CSG 65CE02

المعالج CSG 65CE02 هو معالج دقيق 8/16 بت تم تطويره بواسطة مجموعة كومودور لأشباه الموصلات في عام 1988. [ 1 ] وهو عضو في عائلة MOS Technology 6502 ، تم تطويره من CMOS WDC 65C02 الذي أصدره مركز التصميم الغربي في عام 1983.

على غرار معالج 65C02، صُمم معالج 65CE02  بتقنية CMOS بدقة 2 ميكرومتر بدلاً من تقنية NMOS  بدقة 8 ميكرومتر المستخدمة في معالج 6502 الأصلي ، مما جعل الشريحة أصغر حجماً (وبالتالي أقل تكلفة) وأقل استهلاكاً للطاقة. إضافةً إلى التغييرات التي أُجريت على معالج 65C02، تضمن معالج 65CE02 تحسينات على مسار المعالجة ، مما سمح بإكمال تعليمات البايت الواحد في دورة واحدة، بدلاً من دورتين كحد أدنى في معالج 6502 (ومعظم إصداراته). كما أزال تأخيرات دورة واحدة عند عبور حدود الصفحات . وقد حسّنت هذه التغييرات الأداء بنسبة تصل إلى 25% عند نفس سرعة الساعة.

تضمنت التغييرات الأخرى إضافة سجل فهرس ثالث ، Z، بالإضافة إلى إضافة وتعديل عدد من التعليمات لاستخدام هذا السجل. أصبح بالإمكان الآن نقل الصفحة الصفرية، وهي أول 256 بايت من الذاكرة التي كانت تُستخدم كسجلات وهمية، إلى أي صفحة في الذاكرة الرئيسية باستخدام السجل B (صفحة الأساس). تم توسيع سجل المكدس من 8 إلى 16 بت باستخدام سجل صفحة مماثل، SPH (مؤشر المكدس العالي)، مما يسمح بنقل المكدس من الصفحة الأولى وتوسيعه إلى أحجام أكبر.

كانت شريحة 65CE02 أساس نظام CSG 4510 المتكامل على شريحة ، والذي طُوّر لجهاز كومودور 65 الذي لم يُطرح في الأسواق . استُخدمت شريحة 65CE02 لاحقًا في بطاقة منفذ التسلسل A2232 لجهاز أميغا . ويبدو أنها لم تُستخدم لأي غرض آخر.

وصف

مخطط توصيل دبابيس CSG 65CE02

خلفية

صُمم المعالج 6502 الأصلي في حقبة ما قبل الحواسيب الصغيرة ، حين كانت المعالجات الدقيقة تُستخدم كأساس لأنظمة أبسط مثل المحطات الذكية والآلات الحاسبة المكتبية والعديد من أنظمة التحكم الصناعية المختلفة . في تلك الحقبة، كانت أجهزة الذاكرة تعتمد عمومًا على ذاكرة الوصول العشوائي الثابتة (SRAM )، التي كانت باهظة الثمن وذات كثافة تخزين منخفضة . لهذين السببين، لم تكن القدرة على التعامل مع كميات كبيرة من الذاكرة (بالنسبة لتلك الحقبة) ضرورية، ولذا احتوت العديد من المعالجات على أوضاع تشغيل تعمل مع أجزاء صغيرة من مساحة عناوين أكبر لتحقيق أداء أعلى. كان هذا هو الحال في المعالج 6502، الذي استخدم صفحة الذاكرة الأولى ، أو "الصفحة الصفرية"، لتوفير وصول أسرع، والصفحة الثانية، "الصفحة الأولى"، لتخزين مكدس بحجم 256 بايت .

بحلول أواخر سبعينيات القرن العشرين، تفكك فريق شركة MOS Technology الأصلي الذي صمم شريحة 6502. انتقل بيل مينش إلى أريزونا وأسس مركز التصميم الغربي (WDC) لتقديم خدمات تصميم تعتمد على شريحة 6502. في عام 1981 تقريبًا، بدأت الشركات الرئيسية المرخصة لتصميم 6502، وهي روكويل سيميكوندكتور ، وجي تي إي، وسيجنيتكس ، جهودًا لإعادة تصميم الشريحة بالتعاون مع مينش، مما أدى إلى إنتاج شريحة WDC 65C02 . كانت هذه الشريحة في الأساس تطبيقًا بتقنية CMOS لشريحة NMOS 6502 الأصلية، وتستهلك طاقة أقل بعشر إلى عشرين مرة، ولكنها تضمنت أيضًا عددًا من التعليمات الجديدة لتحسين كثافة التعليمات البرمجية في بعض التطبيقات. شملت هذه التعليمات الجديدة INA/DEAزيادة وإنقاص قيمة المُراكم ، STZوكتابة صفر في موقع ذاكرة، بالإضافة إلى قفزة باستخدام عنوان نسبيBRA أحادي البايت على غرار التفرع . كما قام المعالج 65C02 بإصلاح عدد من العيوب الطفيفة (وخلل واحد على الأقل) في تصميم المعالج 6502 الأصلي.

مع طرح معالج 65C02، لم تعد افتراضات التصميم الأصلية صالحة؛ إذ أصبحت العديد من الأجهزة التي تعتمد على هذه المعالجات مزودة بذاكرة وصول عشوائي ديناميكية (RAM) بسعة 64 كيلوبايت، وهي السعة القصوى التي يمكن لمعالج 6502 الوصول إليها، وذلك باستخدام ذاكرة  الوصول العشوائي الديناميكية الأقل تكلفة والأكثر كثافة . مع ذلك، بقيت مزايا سرعة وضع العنونة الصفرية قائمة، ولكن ضمن مساحة ذاكرة أكبر بكثير. وبالمثل، أصبح مكدس الاستدعاءات أحادي الصفحة صغيرًا جدًا ضمن الذاكرة الإجمالية، ولم يكن من السهل تشغيل لغات البرمجة عالية المستوى التي تستخدم مساحة المكدس بشكل كبير على معالج 6502. وقد احتفظ معالج 65C02، الذي صُمم أساسًا ليكون نسخة منخفضة الطاقة من معالج 6502، بهذه العيوب.

ميزات جديدة

يُعدّ 65CE02 نسخةً مُحسّنةً من 65C02، حيث يُوسّع نموذج الذاكرة ليجعله أكثر ملاءمةً للأنظمة ذات سعة الذاكرة الرئيسية الكبيرة. ولتحقيق ذلك، يُضيف الميزات الجديدة التالية:

  • يُضيف المعالج 65CE02 سجلًا B ثماني البتات، يُسمى Base Page، يُستخدم لإزاحة الصفحة الصفرية إلى أي موقع في الذاكرة. يُضبط B على الصفر عند التشغيل أو إعادة الضبط، لذا يعمل المعالج 65CE02 في البداية تمامًا مثل المعالج 6502. إذا تم وضع قيمة في السجل B باستخدام TAB(نقل A إلى B)، تنتقل الصفحة الصفرية إلى الموقع الجديد. من أهم استخدامات هذه الميزة السماح للبرامج الصغيرة التي يمكن أن تتسع ضمن 256 بايت من الصفحة باستخدام عنونة الصفحة الصفرية (المعروفة الآن باسم عنونة الصفحة الأساسية)، مما يُصغّر حجم الكود لأن العناوين لم تعد تحتوي على بايت ثانٍ، وهذا بدوره يُسرّع تنفيذ الكود لأن البايت الثاني لا يحتاج إلى جلبه من الذاكرة. [ 1 ]
  • يقوم المعالج 65CE02 أيضًا بتوسيع نطاق المكدس من 256 بايت الأصلية للصفحة الأولى إلى كامل مساحة العناوين، نظريًا. ويتم ذلك بإضافة سجل 8 بت آخر، SPH، لمؤشر المكدس العالي. يعمل هذا عادةً مثل المعالج B، حيث يُزيح عنوان قاعدة المكدس من الصفحة الأولى إلى أي صفحة مُحددة. ويستمر في العمل كما كان من قبل، بحد أقصى لحجم صفحة واحدة، أي 256 بايت. ومثل المعالج B، عند بدء التشغيل أو إعادة الضبط، يتم ضبط قيمة SPH على 01 ليعمل تمامًا مثل المعالج 65C02. [ 1 ]
عند ضبط بت "توسيع المكدس" الجديد في سجل الحالةCLE/SEE ، باستخدام التعليمات الجديدة، يصبح مؤشر المكدس قيمة حقيقية مكونة من 16 بت. تُضاف القيمة الموجودة في SPH إلى القيمة الموجودة في SP الأصلي، والمعروفة الآن باسم SPL (مؤشر المكدس المنخفض)، لإنتاج مؤشر مكون من 16 بت إلى أسفل المكدس. يسمح هذا للمكدس بالنمو إلى حجم أكبر بكثير من حجمه الأصلي البالغ 256 بايت، والذي كان صغيرًا جدًا بالنسبة للغات البرمجة عالية المستوى. [ 1 ]
هذا يعني وجود نوعين من المكدسات: مكدس بحجم 256 بايت يمكن أن يكون في أي مكان، أو مكدس بحجم 16 بت يمتد عبر الذاكرة. ورغم أن النوع الثاني أكثر مرونة، إلا أن استخدامه يتطلب عمليتي نقل بيانات بحجم 8 بت لتهيئة المكدس ذي الـ 16 بت، مما يستلزم تعليمة إضافية. ولا تتأثر سرعة عمليات الدفع والسحب اللاحقة بحجم مؤشر المكدس. [ 1 ]
  • يُضيف المعالج 65CE02 أيضًا سجل فهرسة جديدًا ، Z. يُضبط هذا السجل على الصفر عند بدء التشغيل أو إعادة الضبط، مما يعني أن تعليمة تخزين Z في الذاكرة STZتعمل تمامًا كما في المعالج 65C02، حيث تعني نفس التعليمة تخزين الصفر في الذاكرة، مع إعادة استخدام نمط العنونة غير المفهرسة في المعالج 65C02 لنمط العنونة المفهرسة غير المباشرة للسجل Z. يسمح هذا بتشغيل كود المعالج 65C02 دون تعديل على المعالج 65CE02. أُضيفت أو عُدّلت عدد من التعليمات الأخرى للسماح بالوصول إلى السجل Z. من بين هذه التعليمات: تحميل القيمة من الذاكرة، ونقل القيمة من وإلى المُراكم، ودفع وسحب Z إلى المكدس، والزيادة والنقصان، ومقارنة القيمة في Z بقيمة في الذاكرة. [ 1 ]LDA($10)LDA($10),ZLDZTZA/TAZPHZ/PLZINZ/DEZCPZ
  • أضاف المعالج 65C02 تعليمة BRA"التفرع دائمًا" (Branch Always)، وهي تعليمة JMPتستخدم عنوانًا نسبيًا من 8 بتات على نمط التفرع بدلًا من عنوان مطلق من 16 بتًا. ولأسباب غير معروفة، غيّر المعالج 65CE02 الاختصار إلى " التفرع BRUبلا شروط" (Branch Unconditionally). كما أضافوا BSRتعليمة "التفرع إلى روتين فرعي" (Branch to SubRoutine)، التي تستخدم نفس نمط العنونة النسبية المستخدم في تعليمة JSR"القفز إلى روتين فرعي" (Jump to SubRoutine). [ 1 ]
  • بالإضافة إلى ذلك، أضافت وحدة المعالجة المركزية (CE) عنونة 16 بت، أو ما يُعرف بـ "العنونة النسبية للكلمة"، إلى جميع تعليمات التفرع الموجودة. سابقًا، كانت التفرعات تقتصر على التحرك للخلف 128 موقعًا أو للأمام 127 موقعًا، بناءً على قيمة 8 بت مُوقّعة، تُسمى "العنوان النسبي". في معالج 65CE02، أصبح بالإمكان الوصول إلى المواقع -32768 أو +32767، وذلك بإضافة قيمة 16 بت بعد التفرع. سابقًا، لتنفيذ "تفرع طويل"، كان على المستخدم عادةً استخدام قيمة JMP16 بت للوصول إلى الهدف، ثم التفرع عبر تلك البايتات الثلاثة عندما لا يرغب في ذلك. على سبيل المثال، إذا أراد المستخدم التفرع إلى العنوان $1234 إذا كان المُراكم يساوي صفرًا، فإنه كان يستخدم قيمة CMP #$00/BNE +3/JMP $123416 بت، مما يعني تخطي البايتات الثلاثة إذا لم يكن المُراكم يساوي صفرًا. في معالج 65CE02، يمكن اختصار ذلك إلى ما يشبه 1234 ، مما يجعل الكود أكثر وضوحًا، ويُزيل بايتين من التعليمات، ويُلغي الحاجة إلى دورات المعالجة الضائعة لجلب وتنفيذ التفرع. ومع ذلك، ولأنها لا تزال تستخدم العنونة النسبية، يجب على المبرمج أو المجمع حساب العنوان النسبي من التسمية عند التحويل إلى لغة الآلة. [ 1 ]JMP addrCMP #$00/BEQ $0123
  • ومن الإضافات الأخرى للنظام عدد من تعليمات "الكلمة" التي تُجري عمليات على بيانات 16 بت. وشمل ذلك INW/DEWزيادة قيمة في الذاكرة وإنقاصها، ASW/ROWوإجراء إزاحة حسابية (يسار) للكلمة أو تدوير (يسار) للكلمة. [ 1 ]
  • تتضمن التغييرات الطفيفة الأخرى إضافة تعليمة ASRلإجراء إزاحة حسابية (موقّعة) إلى اليمين (كان معالج 6502 يدعم فقط الإزاحة المنطقية، أو غير الموقّعة)، NEG Aوتعليمة أخرى تُجري عملية نفي باستخدام المتمم الثنائي على المُراكم، RTNوتعليمة ثالثة تُعدّ شكلاً مُعدّلاً من تعليمة RTS(العودة من روتين فرعي) حيث تعود إلى عنوان مُزاح في المكدس بدلاً من أعلى المكدس، مما يُغني عن الحاجة إلى POPحذف أي بيانات أضافها الروتين أثناء تشغيله. كما أضاف النظام نمط عنونة جديدًا يستخدم عنوانًا أساسيًا في المكدس كأساس للعنونة غير المباشرة. [ 1 ]
  • وأخيرًا، أُضيفت تعليمة جديدة بحجم أربعة بايتات AUGللتوسع المستقبلي. ورغم أن ورقة البيانات لا توضح الغرض النهائي منها، إلا أنها تبدو وكأنها عنصر نائب يهدف إلى السماح بتمرير التعليمات إلى وحدات المعالجة المساعدة، مثل وحدة إدارة الذاكرة . [ 1 ]

تحسينات خطوط الأنابيب

من أبرز خصائص معالج 6502 الأصلي أن التعليمات المكونة من بايت واحد، مثل INXتعليمة `t`، كانت تستغرق دورتين لإتمامها. وقد سمح هذا بتبسيط نظام خط الأنابيب ؛ حيث كان يتم جلب البايت التالي من الذاكرة أثناء فك تشفير العملية، مما يعني أنه يتم جلب البايت التالي بغض النظر عن أي شيء. بالنسبة لمعظم التعليمات، كان هذا البايت جزءًا (أو كاملًا) من مُعامل، والذي يمكن بعد ذلك إدخاله مباشرةً في التعليمة التي تم فك تشفيرها. [ 2 ]

إذا كانت التعليمات تتطلب بايتًا واحدًا فقط، فإن المعالج يقرأ البايت التالي أثناء فك تشفير البايت الأول. في هذه الحالة، كان البايت التالي هو التعليمات التالية، ولكن لم يكن لديه طريقة لإعادته إلى المرحلة الأولى من خط الأنابيب لفك تشفيره. بدلًا من ذلك، يتم تجاهل التعليمات التي تم جلبها وإعادة قراءتها لإدخالها إلى وحدة فك التشفير. هذا يهدر دورة معالجة. على الرغم من أن هذا أدى إلى إبطاء عدد من التعليمات، فقد تم الاحتفاظ بهذه "الميزة" في معالج 65C02، مع أن المصادر المتاحة لم توضح ما إذا كان ذلك للحفاظ على بساطة خط الأنابيب أو توقيت الدورة. [ 2 ]

لم يكن الحفاظ على توافق الدورة شرطًا أساسيًا لمعالج 65CE02، وقد جعلت عمليات التصنيع الجديدة الدوائر الإضافية في خط الأنابيب غير ذات أهمية، لذا أُعيد ترتيب خط الأنابيب لمعالجة تعليمات البايت الواحد في دورة واحدة. [ 2 ] تسمح هذه التحسينات لمعالج 65CE02 بتنفيذ التعليمات البرمجية أسرع بنسبة تصل إلى 25% من طرازات 65xx السابقة. [ 1 ]

يُعالج تحسينٌ إضافي مشكلةً تتعلق بتعليمات العنونة التي تجمع قيمًا لإنتاج عنوان نهائي. ومن الأمثلة على ذلك "العنوان غير المباشر المفهرس"، حيث تُضاف القيمة الموجودة في أحد سجلات الفهرسة إلى عنوان أساسي، ثم تُطبَّق التعليمة على العنوان الناتج. في معالج 6502 الأصلي، إذا تجاوز مجموع القيمتين حد الصفحة الحالي البالغ 256 بايت، كانت هناك حاجة إلى دورة إضافية لإنتاج قيمة العنوان النهائي. وقد أزال معالج 65CE02 هذا القيد، مما حسّن أداء هذه الأوضاع شائعة الاستخدام. [ 1 ]

التفاصيل الجسدية

يتم تصنيعه باستخدام تقنية CMOS  بدقة 2 ميكرومتر ، مما يسمح بتشغيله باستهلاك طاقة أقل مقارنةً بإصدارات NMOS و HMOS السابقة من عائلة 65xx. وهو مُغلف في حزمة DIP ذات 40 طرفًا متوافقة مع شريحة 6502. [ 3 ]

CSG 4510

CSG 4510

يُعدّ المعالج 4510 نسخةً مُدمجةً من المعالج 65CE02، وهو نظام مُدمج في حزمة واحدة (SiP)، ويحتوي على وحدتي تحكم في منافذ الإدخال/الإخراج من نوع 6526 CIA ووحدة إدارة ذاكرة مُخصصة لتوسيع نطاق العناوين إلى 20 بت (1 ميجابايت). وهو مُغلّف في غلاف PLCC ذي 84 طرفًا . [ 4 ]

استُخدم المعالج 4510 في جهاز الكمبيوتر المنزلي كومودور 65 الذي لم يُطرح في الأسواق [ 5 ] وفي النسخة المُخفّضة التكلفة من جهاز كومودور CDTV الذي لم يُطرح في الأسواق أيضاً. [ 5 ] [ 6 ]

التطبيقات

استُخدمت شريحة 65CE02 في بطاقة منفذ التسلسل Commodore A2232 الخاصة بجهاز كمبيوتر Amiga . [ 7 ] [ 8 ]

انظر أيضاً

مراجع

للمزيد من القراءة