معالج RCA CDP 1802 والمعروف أيضاً بـ COSMAC (كمبيوتر المصفوفة المتآلفة المتماثلة التكميلية) وهو معالج دقيق CMOS (µP) 8 بت أنتجته شركة RCA في أوائل عام 1976.[1] ويتم تصنيعه حاليا بواسطة شركة انترسيل كمعالج دقيق عالية الثقة. ويختلف هيكل معالج 1802 عن معظم المعالجات الدقيقة 8 بت الأخرى.
في 1970 و1971 قام جوزيف ويسبكر نظام كمبيوتر جديد بهيكل 8 بت،[2] وأصدرت شركة RCA عمل ويسبكر باسم COSMAC 1801R و1801 Uفي أوائل عام 1975 باستخدام عمليتها CMOS (باسم COSMOS اختصار سيليكون تكميلية/ أشباه موصلات أكسيد فلزي Complementary Silicon/Metal-oxide Semiconductor). وفي 1976 قام فريقي بقيادة جيري هرزوج بتكامل الرقيقتين في رقاقة واحدة، وهي رقاقة 1802.[1][3][4]
يتمتع RCA 1802 بتصميم CMOS ثابت مع عدم وجود الحد الأدنى من التردد على مدار الساعة بحيث يمكن تشغيله بسعة منخفضة جدا وبطاقة منخفضة أيضا. فلديه ناقل متوازي 8 بت وناقل بيانات ثنائي الاتجاه وناقل عنوان مضاعف (أي بايت نظام عالي لعنوان 16 بت وبايت نظام منخفض للعنوان الذي يتناوب في استخدام خطو ناقل العنوان المادي 8 بت عن طريق الوصول إلى خطوط الناقل في دورات مختلفة على مدار الساعة).
و RCA 1802 بها بت واحدة، منفذ مخرجات قابل للبرمجة أربعة دبابيس مخرجات يتم اختبارها مباشرة بواسطة تعليمات الفرع. ونموذج I/O مرن وقابل للبرمجة وبه ساعة أحادية المرحلة مع جهاز تذبذب سريعة على رقية رقاقة. وجموعة سجلة تتكون من ستة عشر سجلات 16 بت. ويمكن وضع وعداد البرنامج (PC) في أي من هذه الأماكن الأمر الذي يوفر طريقا سهلا لتنفيذ عدادات برامج أو مؤشرات أو سجلات.
بالإضافة إلى تقنية CMOS المعيارية أصبح 1802 أيضاً متوفرا ومصنوع بتقنية عملية أشباه موصلات من السليكون على الياقوت Silicon on Sapphire، الأمر الذي يعطيه درجة من المقاومة الإشعاع وتفرغ كهربي (ESD)، وإلى جانب قدراته البالغة في خفض الطاقة فإن هذا يجعل الرقاقة مناسبة تماما في تطبيقات الفضاء (وأيضاً في الوقت الذي تم فيه إنتاج معالج 1802 توافر عدد قليل من المعالجات الدقيقة الإشعاعية في الأسواق).
استخدمت المركبة الفضائية جاليليو معالجات 1802.[5] كما زُعم على نحو غير صحيح غالبا أن المعالج 1802 استخدم في المركبات الفضائية الأولي فيكينج Viking وفوياجر Voyager لكنه لم يكن متوفر في وقت تصميم هذا المركبات الفضائية، وتصف المصادر الرئيسية أجهزة كميوتر فيكينج Viking وفوياجر Voyager على أن لها هيكل يختلف تماما عن المعالج 1802 وليست قائمة على معالج دقيق. واستخدم معالج 1802 بشكل واسع في الأقمار الصناعية التي تدور في مدار الأرض بشك أساسي في كمبيوترها الرئيسي لكن منذ التسعينات حيث انتشر استخدام جهاز كمبيوتر نظم الاتصالات عن بعد التحكم في الطائرات قليلة التعقيد.[6]
اُستخدم معالج 1802 أيضاً في ACAL، نظام قائم على معالج دقيق لتحديد الغازات في الحرب الكيماوية. وقد تم تصميم ACAL بواسطة وسائل Oldelft / DelftK، شركة هولندية متخصصة في أعمال الدفاع والعسكرية. وقد حصل ACAL فقط على مرحلة النموذج الأولي ولم تحقق إنتاج أبدا.
من بين التطبيقات التجارية نظام التحكم في دخول بناء رئيسي MIL، صُنع في أستراليا، وتم وسُوق في أوروبا في الثمانينات. كان الكثير من المعالجات الدقيقة تقوم على معالج 1802 ومن بينها COMX-35 وCOSMAC ELF (1976 وCOSMAC VIP وNetronics ELF II وQUEST SuperELF وFinnish Telmac 1800 وOscom Nano وYugoslave Peccom 32 و64 بالإضافة إلى لوحة مفاتيح RCA Sudio II video game console (واحدة من أول لوح المفاتيح المستخدمة في الرسومات النقطية) أول لغة عالية المستوى كانت متوفرة لدى معالج 1802 كانت فورث Forth من إنتاج شركة فورث Forth في 1976.
من الخصائص الهامة في معالج 1802 هي ملف السجلات والذي يتكون من 16 ملف كل ملف 16 بت. ويمكنك اختيار أي من هذه السجلات الستة عشر على أن يكون حاسب البرنامج من خلال استخدام تعيمات SEX. للسجل R0 استخدام خاص في الاحتفاظ بعنوان الذاكر لجهاز التحكم المثبت DMA.
للمعالج خمسة خطوت I/O خاصة، ويجود مخرج Q واحد يمكن ضبطه باستخدام تعليما SEQ وإعادة ضبطة باستخدام REQ. ويوجد ثلاثة مدخلات خارجية: EF1 وEF2 وEF3 وEF4 ويوجد 8 تعليمات فرعية مخصصة للتفريع المشروط حسب حالة خطوت المدخلات هذه. خطوط EF وQ مُبالغ في استخدامهم بصورة نموذجية في أجهزة الكمبيوتر الهواة القائمة على RCA معالج 1802 بسبب المعالجة المناسبة للخطوط. وهي نموذجية بالنسبة لخط Q لتوجيه واجهة حالة كاسيت CASSETTE وLED وواجهة RS-232 والسماعات. وهذا يعني أن المستخدم يمكنه بالفعل سماع بيانات الكاسيت أو RS-232 التي يتم نقلها.
لا يحتوي المعالج على مكالمة فرعية فورية وتعليمات RET على الرغم من إمكانية محاكاتهما. وملف السجلات يجعل من الممكن بعض آليات العودة والمكالمة الفرعية المهمة على الرغم من أنها مناسبة للبرامج الصغيرة بصورة أفضل من التشفير بغرض عام. كما يمكن إجراء المكالمات الفرعية المستخدمة بصفة عامة بسرعة عن طريق الاحتفاظ بعناوينها في أحد السجلات الستة عشر؛ ويمكن استخدام تعليمات SEP لاتصال مكالمة فرعية يوجهها أحد سجلات البت الستة عشر وتعليمات SEP أخرى للإعادة إلى المتصل (SEP اختصار Set Program Counter، وتحدد أي السجلات الستة عشر سيتم استخدامها لعداد البرنامج من هذه النقطة فصاعدا). وقبل أن تعود المكالمة الفرعية تقفز إلى الموقع الذي يسبق نقطة إدخالها حتى يتم توجه السجل بعد إعادة التعليمات التحكم للمتصل إلى القيمة الصحيحة للمرة القادمة. والاختلاف الكبر في هذا البرنامج هو تلقي مكالمتين فرعيتين أو أكثر في رنة واحدة فيتم اتصالهما بترتيب جولة روبين. ففي أجهزة كمبيوتر الهواة الأولى كانت الخدع الشبيهة بذلك تستخدم بصورة عامة في اختراق أفقي لإعادة برمجة عنوان خط الفحص لتكرار كل خط فحص أربع مرات لجهاز التحكم في الفيديو. ولم تكن المكالمات الفرعية مشكلة لأن كافة تعليمات المكالمات CALL مفهرسة (بعض المعالجات لها مكالمات مباشرة فقط)
نظرا لأن ناقل العنوان 16 بت وناقل البيانات 8 بت وسجلات الغرض العام الستة عشر جميعها عرضها 16 بت، لكن المتراكم accumulator (ما يُسمى بسجل البيانات أو D-register) هو الوحيد الذي اتساعه 8 بت. ولذلك فإن المتراكم يميل إلى أن يكون عنق زجاجة. وتحويل محتويات أحد السجلات إلى سجل آخر يشمل أربعة تعليمات (أحدهم Get وآخر Put على HI بايت للسجل، وزوج مشابه بالنسبة لـ LO بايت: GHI R1 وPHI R2 وGLO R1 وPLO R2). وبشكل مشابه فإن تحميل ثابت جديد في أحد السجلات (مثل عنوان جديد لقفزة فرعية أو عنوان متغير بيانات) يشمل أيضاً أربعة تعليمات (اثنان بتحميل مباشرة، تعليمات LDI، وواحد لكل نصف ثابت، وكل واحد يعقبه أمر PUT للسجل، PHI وPLO).
نموذجا المعالجة، السجل غير المباشر Indirect register والسجل غير المباشر بزيادة غير تلقائية Indirect register with auto-increment فعالان إلى حد ما للقيام بعمليات 8 بت على البيانات الموجودة في المتراكم. وهناك نماذج معالجة أخرى وهكذا فإن نموذج المعالجة المباشرة direct addressing يحتاج إلى محاكاته باستخدام الأربعة تعليمات المذكورة آنفا لتحميل العنوان في شريط السجل؛ ثم يعقبها تعليمات لاختيار هذا السجل كسجل فهرس؛ ثم يعقبها أخيرا العملية المقصودة على متغير البيانات الذي يُشير إليه العنوان.
يحتوي معالج CDP 1802 على جهاز تحكم ثابت DMA، وبه خطان طلب DMA لعمليات مدخلات ومخرجات DMA، ويُستخدم R0 كمؤشر عنوان DMA. كما يقدم جهاز تحكم DMA أيضاً «نموذج تحميل» خاص يسمح بتحميل الذاكرة تكون مدخلات المعالج، CLEAR وWAIT، نشطة. الأمر الذي يسمح بتحميل البرنامج دون الحاجة إلى برنامج تحميل تمهيدي قائم على ROM. وقد استخدم هذا جهاز الكمبيوتر الدقيق COSMAC E1F وملحقاته لتحميل البرنامج من مفاتيح التبديل أو لوحة مفاتيح عشرية.
كفاءة دورة الساعة ضعيفة بالمقارنة بمعظم المعالجات الدقيقة 8 بت. فثمان دورات ساعة تمثل دائرة آلة، ومعظم التعليمات تستغرق في تنفيذها دورتان آلة (16 دورة ساعة)، والتعليمات المتبقية تستغرق ثلاث دورات آلة (24 دورة ساعة). وبالمقارنة نجد أن MOS Technology 6502 يستغقر من 2 إلى 7 دورات ساعة لتنفيذ أمرا واحدا، وIntel 8080 يستغرق من4 إلى 8 دورات ساعة.
في المعالجات الدقيقة الأولى كانت رقاقة جهاز التحكم في عرض الفيديو Video Display Controller للرسومات المصاحبة، CDP1861 لصيغة الفيديو NTSC، (تختلف CDP1864 بالنسبة لـ PAL، تستخدم جهاز التحكم DMA الثابت لعرض الرسومات النقطية. رقاقة 1861 يمكنها عرض 64 بيكسل بصورة أفقيا و128 بيكسل رأسيا، وعلى الرغم من أن ذلك يتم عن طريق إعادة تحميل سجل R0 إلا أن الدقة قد تقل إلى 46 × 64 أو 64 × 32 لاستخدام مساحة أقل من الذاكرة أو لعرض بيكسلات مربعة. ونظراً لان إطار الحاجز مشابه في من حيث الحجم للذاكرة فإنه من المعتاد أن عرض بياناتك أو برنامجك على الشاشة سيسمح لك بمشاهدة «فكر» الكمبيوتر (أي معالجة بياناته).
البرامج التي تتصرف بجنون وتقوم بشكل عارض بالكتابة فوق بعضها البعض يمكن أن تكون رائعة، فعلى الرغمن من أن النسخة الأسرع لمعالج 1802 يمكن أن تعمل عن د سرعة 5 ميجا هرتز (عند 5 فولت، تبدو أسرع من عند 10 فولت)، إلا أنها عادة ما تعمل عند سرعة 3.58 ميجا هرتز/2 للتناسب مع متطلبات رقائق 1861 التي تعطي سرعة تزيد زيادة طفيفة عن 100,000 أمر في الثانية.
هذا الكود يقتطف اختبار ALU OPS، فهو روتين تشخيصي:
.. TEST ALU OPS 0000 90 GHI 0 .. SET UP R6 0001 B6 PHI 6 0002 F829 LDI DOIT.. FOR INPUT OF OPCODE 0004 A6 PLO 6 0005 E0 SEX 0 .. (X=0 ALREADY) 0006 6400 OUT 4,00.. ANNOUNCE US READY 0008 E6 SEX 6 .. NOW X=6 0009 3F09 BN4 * .. WAIT FOR IT 000B 6C INP 4 .. OK, GET IT 000C 64 OUT 4 .. AND ECHO TO DISPLAY 000D 370D B4 * .. WAIT FOR RELEASE 000F F860 LDI #60 .. NOW GET READY FOR 0011 A6 PLO 6 .. FIRST OPERAND 0012 E0 SEX 0 .. SAY SO 0013 6401 OUT 4,01 0015 3F15 BN4 * 0017 E6 SEX 6 .. TAKE IT IN AND ECHO 0018 6C INP 4 .. (TO 0060) 0019 64 OUT 4 .. (ALSO INCREMENT R6) 001A 371A B4 * 001C E0 SEX 0 .. DITTO SECOND OPERAND 001D 6402 OUT 4,02 001F E6 SEX 6 0020 3F20 LOOP: BN4 * .. WAIT FOR IT 0022 6C INP 4 .. GET IT (NOTE: X=6) 0023 64 OUT 4 .. ECHO IT 0024 3724 B4 * .. WAIT FOR RELEASE 0026 26 DEC 6 .. BACK UP R6 TO 0060 0027 26 DEC 6 0028 46 LDA 6 .. GET 1ST OPERAND TO D 0029 C4 DOIT: NOP .. DO OPERATION 002A C4 NOP .. (SPARE) 002B 26 DEC 6 .. BACK TO 0060 002C 56 STR 6 .. OUTPUT RESULT 002D 64 OUT 4 .. (X=6 STILL) 002E 7A REQ .. TURN OFF Q 002F CA0020 LBNZ LOOP.. THEN IF ZERO, 0032 7B SEQ .. TURN IT ON AGAIN 0033 3020 BR LOOP .. REPEAT IN ANY CASE
Minor parts of this article were originally based on material from the قاموس الحوسبة المجاني على الانترنت، which is licensed under the GFDL.