Rekursiv
ریکورسیو ایک کمپیوٹر پروسیسر تھا جسے ڈیوڈ ایم ہارلینڈ نے 1980 کی دہائی کے وسط میں ہائی فائی مینوفیکچرر لن پروڈکٹس کے ایک ڈویژن میں ڈیزائن کیا تھا۔ یہ ان چند کمپیوٹر آرکیٹیکچرز میں سے ایک تھا جس کا مقصد آبجیکٹ پر مبنی تصورات کو براہ راست ہارڈ ویئر میں نافذ کرنا تھا، جو کہ اعلی سطحی زبان کے کمپیوٹر فن تعمیر کی ایک شکل ہے۔ ریکورسیو بٹس، نبلز، بائٹس اور الفاظ کے بجائے براہ راست اشیاء پر کام کرتا تھا۔ ورچوئل میموری کو مستقل آبجیکٹ اسٹور کے طور پر استعمال کیا جاتا تھا اور غیر معمولی طور پر، پروسیسر انسٹرکشن سیٹ ریکرشن کی حمایت کرتا تھا (اسی وجہ سے یہ نام)۔ جب تک پروجیکٹ نے اپنا پہلا نفاذ انجام دیا تھا، سن ایس پی اے آر سی اور انٹیل 486 جیسے نئے پروسیسرز نے اس کی کارکردگی کو پیچھے چھوڑ دیا تھا، اور 1988 میں ترقی کو ترک کر دیا گیا تھا۔ ریکورسیو پروجیکٹ اسکاٹ لینڈ کے شہر گلاسگو میں لن کی فیکٹریوں میں اسمبلی لائن کنٹرول کو بہتر بنانے کی کوشش کے طور پر شروع ہوا۔ ان کی لائنیں وی اے ایکس-11 سسٹمز کے ایک سوٹ کا استعمال کرتے ہوئے خودکار تھیں، لیکن ان میں اس لچک کے ساتھ پروگرام کرنا سست اور بہت مشکل تھا جو لن کے بانی آئور ٹیفین برن نے چاہا تھا۔ 1980 کی دہائی کے اوائل تک، ٹیفین برن کو یقین ہو گیا تھا کہ آبجیکٹ پر مبنی پروگرامنگ ان مسائل کا حل پیش کرے گی۔ 1981 میں، ٹیفین برن نے ALGOL سے کچھ نحو ادھار لیتے ہوئے، VAX سسٹمز کے لیے سمال ٹاک زبان کا ایک ورژن لکھنے کے لیے متعدد پروگرامرز کی خدمات حاصل کیں۔ لنگو کے نام سے جانا جانے والا یہ نظام کام کرتا تھا لیکن وی اے ایکس پلیٹ فارم پر بہت آہستہ چلتا تھا۔ ٹیفین برن نے یہ نتیجہ اخذ کیا کہ کارکردگی کے مسئلے کا حل وی اے ایکس پر زبان کو بہتر بنانا نہیں تھا بلکہ اس کے بجائے ایک مکمل طور پر نیا سی پی یو تیار کرنا تھا جو خاص طور پر آبجیکٹ پروگرام چلانے کے لیے وقف تھا۔ 1984 میں، ٹیفین برن نے یونیورسٹی آف اسٹراتھکلائڈ کے پروفیسر ڈیوڈ ہارلینڈ کی ہدایت پر مکمل ملکیت والی ذیلی کمپنی لن اسمارٹ کمپیوٹنگ تشکیل دی اور ریکورسیو پروجیکٹ کا آغاز ہوا۔ اس نظام کا پہلا ورژن 1988 میں سامنے آیا۔ پروٹو ٹائپ وی ایم ای بس بورڈ کی ایک چھوٹی سی تعداد، جسے ہیڈز کہا جاتا ہے، ان چار چپس کے علاوہ 80 ایم بی ریم پر مشتمل تھی۔ ان کا مقصد میزبان نظام جیسے سن-3 ورک سٹیشن میں نصب کرنا تھا۔ اگرچہ ریکورسیو کبھی بھی مکمل طور پر تیار نہیں ہوا تھا اور اسے تجارتی کامیابی نہیں ملی تھی، لیکن برطانیہ میں تعلیمی تحقیقی منصوبوں میں کئی ہیڈز بورڈ استعمال کیے گئے تھے۔ ریکورسیو کمپیوٹر کی آخری معروف کاپی گلاسگو میں فورتھ اور کلائڈ کینال کے نچلے حصے میں ختم ہوئی۔ یونیورسٹی آف اسٹراتھکلائڈ کے ایک محقق کی ایک پوسٹ کے مطابق، جب ریکورسیو سسٹم تیار کیا جا رہا تھا، اس وقت سن ایس پی اے آر سی سسٹم کے لیے لنگو زبان کا ایک نیا ورژن لکھا گیا تھا جو تقریبا اسی وقت ابھرا تھا۔ یہ ریکورسیو ہارڈ ویئر سے دوگنا تیز چلا، جس سے کوشش بے معنی ہو گئی۔ اس کے کچھ عرصے بعد کمپنی بند ہو گئی۔ تفصیل بنیادی تصورات ریکورسیو پلیٹ فارم کا بنیادی تصور ایک ہارڈ ویئر کی مدد سے مستقل آبجیکٹ اسٹور فراہم کرنا تھا، جو آپریٹنگ سسٹم یا صارف کے پروگرام کی مداخلت کے بغیر مسلسل اور پوشیدہ طور پر میموری کی حالت کو ڈسک پر لکھتا تھا۔ ایک جائزہ لینے والے نے اسے "مستقل اشیاء بنانے اور ان کے انتظام کے لیے ایک آبجیکٹ ڈیٹا بیس انجن" کے طور پر بیان کیا۔ پیچیدہ پروگرام چلاتے ہوئے اس طرح کے نظام کو معقول کارکردگی کے ساتھ کام کرنے کے لیے، ریکورسیو کو اس طرح ڈیزائن کیا گیا تھا کہ وہ پروگرامر کو اپنی زبان کے لیے وقف کردہ اپنا انسٹرکشن سیٹ آرکیٹیکچر (آئی ایس اے) لکھنے کی اجازت دے۔ مائیکرو کوڈ انسٹرکشن سیٹ کو جامد رام میں محفوظ کیا گیا تھا۔ کوئی ڈیفالٹ آئی ایس اے نہیں تھا، حالانکہ لن نے سی پروگرامنگ زبان میں پروگرام چلانے کے لیے ایک فراہم کیا تھا۔ میموری ہینڈلنگ سسٹم نے اس پر چلنے والے پروگراموں کو میموری ایڈریس کا ینالاگ فراہم نہیں کیا، اس کے بجائے، اشیاء کو 40 بٹ شناخت کنندہ دیا گیا جسے آبجیکٹ چپ نے ہیش کیا اور فزیکل میموری کے پوائنٹر کے طور پر استعمال کیا۔ آبجیکٹ نے ایک ورچوئل میموری سسٹم کو لاگو کرتے ہوئے مستقل اسٹوریج کے لیے ہارڈ ڈسک پر آبجیکٹ میموری کی نقشہ سازی کو بھی سنبھالا۔ کچرا اکٹھا کرنے کو سنبھالنے کے لیے، آبجیکٹ نے فراہم کردہ متحرک رام (مین میموری) کو دو حصوں میں تقسیم کیا، جس میں سے ایک کو نئے آبجیکٹ کی تخلیق کے لیے استعمال کیا گیا اور دوسرے کو غیر استعمال شدہ چھوڑ دیا گیا۔ جب کسی نئے آبجیکٹ کو استعمال شدہ حصے میں مفت سے زیادہ میموری کی ضرورت ہوتی ہے، تو آبجیکٹ نے سسٹم کو روک دیا، کسی بھی آبجیکٹ کو درست پوائنٹر کے ساتھ میموری کے غیر استعمال شدہ نصف حصے میں کاپی کیا، اور پھر سابقہ غیر استعمال شدہ نصف کو فعال حصہ بنانے کے لیے تبدیل کر دیا۔ انتہائی میموری محدود صورتوں میں، آبجیکٹ پہلے کچھ اشیاء کو ڈسک پر پھینکنے کی کوشش کرے گا، اور اگر وہ کافی جگہ خالی کرنے میں ناکام رہا تو میموری کے دونوں حصوں کا استعمال کرے گا۔ آبجیکٹ جامع ڈھانچے ہوتے ہیں جن کے اندر متعدد اقدار ہوتی ہیں، جن کو زیادہ تر نظاموں میں اقدار رکھنے والے میموری مقامات کے لیے اشارے کے ایک سلسلے کے طور پر لاگو کیا جاتا ہے۔ ریکورسیو میں، پتے کو 40 بٹ آبجیکٹ آئی ڈیز سے تبدیل کیا جاتا ہے جو آبجیکٹ کے ذریعہ مختص کردہ میموری کے ایک حصے کی طرف اشارہ کرتے ہیں۔ 40 بٹ پوائنٹر کا سب سے اہم بٹ (ایم ایس بی) 1 پر سیٹ کیا گیا تھا اگر قیمت آبجیکٹ شناخت کنندہ تھی، یا 0 اگر یہ غیر ٹائپ شدہ بائنری قیمت تھی۔ بعد میں بڑے غیر فارمیٹڈ ڈیٹا کو اسٹور کرنے کے لیے استعمال کیا جاتا تھا، جیسے ڈیجیٹل امیج کے لیے ڈیٹا، اور اسے صرف اشیاء کے اندر استعمال کیا جا سکتا تھا۔ مکمل آبجیکٹ کے معاملے میں، مختصر فیلڈز کو پوائنٹر کے اندر ہی ویلیوز کے طور پر اسٹور کرنے کے لیے مزید آسانیاں دستیاب تھیں۔ دوسرے ایم ایس بی کو بھی 0 پر سیٹ کرکے اس کی نشاندہی کی گئی۔ اس صورت میں، مندرجہ ذیل پانچ بٹس نے ایک قسم کی نشاندہی کی، جس کی وضاحت پروگرام کے آئی ایس اے نے کی ہے، جو "انٹیجر" یا "سٹرنگ فریگمنٹ" ہو سکتا ہے۔ اس "کمپیکٹ آبجیکٹ" کی اصل قیمت پوائنٹر کے نچلے 32 بٹس میں رکھی گئی تھی۔ اس نے اس طرح کی سادہ اقدار کو فزیکل لوکیشن پر پوائنٹر کی پیروی کرنے کی ضرورت کے بغیر فوری طور پر پروسیسر کو پیش کرنے کی اجازت دی، جس سے میموری کی بچت ہوئی اور کارکردگی بہتر ہوئی۔ چونکہ 40 بٹ پوائنٹر کے اوپری دو بٹس کو اسٹیٹس فلیگ کے لیے استعمال کیا گیا تھا، اوبیجیکٹ کل 238 اشیاء کی شناخت کر سکتا تھا۔ چونکہ اشیاء کو مسلسل کچرا اکٹھا کیا جا رہا تھا، ان میں سے بہت سی اقدار غیر موجود اشیاء کی طرف اشارہ کر سکتی ہیں، جس کا مطلب ہے کہ نظام عملی استعمال میں شناخت کاروں سے باہر ہو سکتا ہے۔ اس سے نمٹنے کے لیے، پورے سسٹم کی تصویر کو وقتا فوقتا ڈسک پر لکھا جاتا تھا، اس دوران تمام پوائنٹرز کو مسلسل ہونے کے لیے دوبارہ نمبر دیا جاتا تھا۔ مائیکرو کوڈ پروسیسر کا انسٹرکشن سیٹ جامد رام کے ایک مخصوص علاقے میں محفوظ کیا گیا تھا جسے "کنٹرول اسٹور" کہا جاتا ہے۔ اس تک رسائی ایک وقف شدہ 16 بٹ بس کے ذریعے حاصل کی گئی تھی، جو ہر ایک 128 بٹس کے 16,384 الفاظ کے طور پر ترتیب دی گئی تھی۔ ایس آر اے ایم کا ایک علیحدہ "کنٹرول اسٹور میپ" سیکشن مائیکرو کوڈڈ معمولات میں انٹری پوائنٹس کی ایک نمبر شدہ ٹیبل رکھتا ہے، جو 2,048 اداروں میں سے کسی ایک پر 10 بٹ اوپی کوڈ کی نقشہ سازی کرتا ہے۔ روایتی پروسیسر میں، نقشہ عام طور پر اوپی کوڈ ڈیکوڈر میں ہارڈ وائرڈ منطق میں لاگو کیا جاتا ہے۔ اوپی کوڈز اشیاء کے حصے ہو سکتے ہیں اور اسی طرح ذخیرہ کیے جا سکتے ہیں جس طرح کوئی دوسرا ڈیٹا اوبیجیکٹ استعمال کر رہا ہو۔ کارکردگی کی وجوہات کی بناء پر، ایک علیحدہ میموری بینک جسے این اے ایم (اور این اے ایم اے آر جی) کے نام سے جانا جاتا ہے، نے 10 بٹ اوپی کوڈ اور 30 بٹ دلائل کو محفوظ کرنے والے 524,288 40 بٹ الفاظ کو محفوظ کیا۔ این اے ایم اپنی بس کے ذریعے براہ راست پروسیسر سے منسلک ہوتا ہے، جس سے یہ جدید آرکیٹیکچرز میں کیش کی طرح کام کرتا ہے۔ عملی طور پر، پروگرامنگ زبان کا ڈویلپر پہلے اپنی مطلوبہ اسمبلر زبان کا خاکہ پیش کرے گا، جو 2,048 ہدایات کے ساتھ زبان کا بنیادی نحو ہوگا۔ عام طور پر استعمال ہونے والے معمولات، جیسے کہ سی میں ایس ٹی ڈی ایل آئی بی میں پائے جاتے ہیں، پھر اس اسمبلر زبان کا استعمال کرتے ہوئے کوڈ کیے جائیں گے اور این اے ایم پر لکھے جائیں گے۔ تخروپن سے پتہ چلتا ہے کہ اس انداز کا استعمال کرتے ہوئے لکھے گئے Lisp معمولات علامتی Lisp مشین سے تقریبا 20 گنا زیادہ تیزی سے چلتے ہیں۔ کمپنی نے سمال ٹاک اور پرولاگ کے لیے اسی طرح کے مائیکرو کوڈ سسٹم بھی تیار کیے، بعد میں پرولاگ کے پیچیدہ اتحاد کے عمل کو ایک ہی اوپی کوڈ میں کم کر دیا۔ فزیکل پیکیجنگ ریکورسیو پروسیسر چار گیٹ-صف چپس پر مشتمل تھا جن کا نام نیومیرک (32 بٹ اے ایل یو)، لاجک (انسٹرکشن سیکوینسر)، اوبیجیکٹ (آبجیکٹ پر مبنی میموری مینجمنٹ یونٹ) اور کلاک (پروسیسر کلاک اور سپورٹ منطق) تھا۔ اصل ورژن 10 میگاہرٹز پر کلاک کیے گئے تھے۔ لن نے ریکورسیو چپ سیٹ کو دکانداروں کو فروخت کرنے کے ساتھ ساتھ اس کا استعمال کرتے ہوئے اپنا ورک سٹیشن تیار کرنے کا ارادہ کیا۔ ابتدائی طور پر، واحد پروڈکٹ "ہیڈز"، "ہارڈ ویئر ایکسلریٹر فار ڈائنامک ایکسپرٹ سسٹمز" تھا، جو ایک وی ایم ایبس کارڈ پر مشتمل تھا جسے سن-3 یا سن-4 ورک سٹیشن میں پلگ کیا جا سکتا تھا۔ ایچ اے ڈی ای ایس میں چار اہم چپس، 45 نینو سیکنڈ (22 میگاہرٹز) ایس آر اے ایم کے 2 ایم بی اور 100 این ایس (10 میگاہرٹز) ڈی آر اے ایم کے 5 ایم بی شامل تھے۔ ڈسک تک رسائی کو بنیادی سورج نظام پر چلنے والے ایک پروگرام کے ذریعے سنبھالا گیا، جس نے کارکردگی کو نمایاں طور پر متاثر کیا۔ مزید پڑھنا جم آسٹن کمپیوٹر میوزیم ریکورسیو پیج سی پی یو شیک: عجیب و غریب اور جدید چپس سنٹرل پروسیسنگ یونٹ ہائی لیول لینگویج کمپیوٹر فن تعمیر