Rekursiv
1980-এর দশকের মাঝামাঝি সময়ে হাই-ফাই প্রস্তুতকারক লিন প্রোডাক্টসের একটি বিভাগে ডেভিড এম হারল্যান্ড দ্বারা ডিজাইন করা একটি কম্পিউটার প্রসেসর ছিল রেকুরসিভ। উচ্চ-স্তরের ভাষা কম্পিউটার স্থাপত্যের একটি রূপ, হার্ডওয়্যারে সরাসরি অবজেক্ট-ওরিয়েন্টেড ধারণাগুলি বাস্তবায়নের উদ্দেশ্যে এটি কয়েকটি কম্পিউটার স্থাপত্যের মধ্যে একটি ছিল। রিকুরসিভ বিট, নিবল, বাইট এবং শব্দের পরিবর্তে সরাসরি বস্তুর উপর কাজ করত। ভার্চ্যুয়াল মেমোরি একটি স্থায়ী অবজেক্ট স্টোর হিসাবে ব্যবহৃত হত এবং অস্বাভাবিকভাবে, প্রসেসর নির্দেশ সেট পুনরাবৃত্তি সমর্থন করে (তাই নামটি)। প্রকল্পটি প্রথম বাস্তবায়নের সময়, সান এস. পি. এ. আর. সি এবং ইন্টেল 486-এর মতো নতুন প্রসেসরগুলি তার কার্যকারিতা অতিক্রম করেছিল এবং 1988 সালে উন্নয়নটি পরিত্যক্ত হয়েছিল। রিকুরসিভ প্রকল্পটি স্কটল্যান্ডের গ্লাসগোতে লিনের কারখানায় অ্যাসেম্বলি লাইন নিয়ন্ত্রণের উন্নতির প্রচেষ্টা হিসাবে শুরু হয়েছিল। তাদের লাইনগুলি ভিএএক্স-11 সিস্টেমের একটি স্যুট ব্যবহার করে স্বয়ংক্রিয় করা হয়েছিল, তবে এগুলি ধীর এবং লিনের প্রতিষ্ঠাতা আইভর টিফেনব্রুন যে নমনীয়তা চেয়েছিলেন তার সাথে প্রোগ্রাম করা খুব কঠিন ছিল। 1980-এর দশকের গোড়ার দিকে, টিফেনব্রুন নিশ্চিত হয়ে গিয়েছিলেন যে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এই সমস্যাগুলির সমাধান দেবে। 1981 সালে, টিফেনব্রুন ভিএএক্স সিস্টেমের জন্য স্মলটক ভাষার একটি সংস্করণ লেখার জন্য বেশ কয়েকজন প্রোগ্রামারকে নিয়োগ করেছিলেন, এএলজিওএল থেকে কিছু বাক্য গঠন ধার করেছিলেন। লিঙ্গো নামে পরিচিত, সিস্টেমটি কাজ করেছিল কিন্তু ভিএএক্স প্ল্যাটফর্মে খুব ধীরে চলেছিল। টিফেনব্রুন উপসংহারে পৌঁছেছেন যে কর্মক্ষমতা সমস্যার সমাধান ভিএএক্স-এ ভাষার উন্নতি করা নয়, বরং বিশেষভাবে অবজেক্ট প্রোগ্রাম চালানোর জন্য নিবেদিত একটি সম্পূর্ণ নতুন সিপিইউ তৈরি করা। 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 টি নির্দেশাবলী সহ ভাষার অন্তর্নিহিত বাক্য গঠন হবে। সাধারণভাবে ব্যবহৃত রুটিনগুলি, যেমন সি-তে এস. টি. ডি. এল. বি-তে পাওয়া যায়, তারপর সেই অ্যাসেম্বলার ভাষা ব্যবহার করে কোড করা হবে এবং এনএএম-এ লেখা হবে। সিমুলেশনগুলি পরামর্শ দেয় যে এই শৈলী ব্যবহার করে লেখা লিস্প রুটিনগুলি সিম্বলিক্স লিস্প মেশিনের তুলনায় প্রায় 20 গুণ দ্রুত পরিচালিত হয়। কোম্পানিটি স্মলটক এবং প্রোলগের জন্য অনুরূপ মাইক্রোকোড সিস্টেমও তৈরি করেছিল, যা পরে প্রোলগের জটিল একীকরণ ক্রিয়াকলাপকে একক অপকোডে হ্রাস করে। ফিজিক্যাল প্যাকেজিং রিকার্সিভ প্রসেসরে চারটি গেট-অ্যারে চিপ ছিল যার নাম ছিল নিউমেরিক (32-বিট এ. এল. ইউ), লজিক (ইন্সট্রাকশন সিকোয়েন্সার), ওবজেকট (অবজেক্ট-ওরিয়েন্টেড মেমরি ম্যানেজমেন্ট ইউনিট) এবং ক্লক (প্রসেসর ক্লক এবং সাপোর্ট লজিক)। মূল সংস্করণগুলি 10 মেগাহার্টজে ক্লক করা হয়েছিল। লিন বিক্রেতাদের কাছে রিকুরসিভ চিপ সেট বিক্রি করার পাশাপাশি এটি ব্যবহার করে তাদের নিজস্ব ওয়ার্কস্টেশন তৈরি করতে চেয়েছিলেন। প্রাথমিকভাবে, একমাত্র পণ্য ছিল "হ্যাডস", "হার্ডওয়্যার অ্যাক্সিলারেটর ফর ডায়নামিক এক্সপার্ট সিস্টেমস", যার মধ্যে একটি ভিএমইবাস কার্ড ছিল যা সান-3 বা সান-4 ওয়ার্কস্টেশনে প্লাগ করা যেতে পারে। এইচ. এ. ডি. ই. এস-এ চারটি প্রধান চিপ অন্তর্ভুক্ত ছিল, 45 ন্যানোসেকেন্ড (22 মেগাহার্টজ) এস. আর. এ. এম-এর 2 এম. বি এবং 100 এনএস (10 মেগাহার্টজ) ডি. আর. এ. এম-এর 5 এম. বি। ডিস্ক অ্যাক্সেস অন্তর্নিহিত সান সিস্টেমে চলমান একটি প্রোগ্রাম দ্বারা পরিচালিত হয়েছিল, যা কর্মক্ষমতাকে উল্লেখযোগ্যভাবে বাধাগ্রস্ত করেছিল। জিম অস্টিন কম্পিউটার মিউজিয়াম রিকার্সিভ পৃষ্ঠা দ্য সিপিইউ শ্যাকঃ উইয়ার্ড অ্যান্ড ইনোভেটিভ চিপস সেন্ট্রাল প্রসেসিং ইউনিট হাই-লেভেল ল্যাঙ্গুয়েজ কম্পিউটার আর্কিটেকচার