কেন্দ্রীয় প্রক্রিয়াজাতকরণ ইউনিট

কেন্দ্রীয় প্রক্রিয়াজাতকরণ ইউনিট (সিপিইউ) হল একটি কম্পিউটারের মধ্যাবস্থিত একটি যন্ত্রাংশ যা প্রোগ্রামের দেয়া নির্দেশনা পালন করে। বিশেষভাবে দেয়া এসব নির্দেশনা পালন করতে গিয়ে এটি বিভিন্ন গাণিতিক, যৌক্তিক কার্যাবলি, নিয়ন্ত্রণ ও ইনপুট আউটপুট কার্যাদি সম্পন্ন করে। ১৯৬০ দশকের শুরুর দিকে এই নামে যন্ত্রটিকে ডাকা শুরু হয়।

বছরের পর বছর নানাভাবে উন্নীত, পরিমার্জিত বিভিন্ন সংস্করণ করার ফলে এতে নকশা, আকৃতিগত এবং বাস্তবায়নে বৈপ্লবিক পরিবর্তন এসেছে কিন্তু এর মূল কাজের ধরন একই রকম রয়ে গেছে। সিপিইউ'র প্রধান উপাদানগুলোর মধ্যে আছে এএলইউ (গাণিতিক যুক্তি অংশ), সিইউ (নিয়ন্ত্রণ অংশ)। এএলইউ গাণিতিক এবং যুক্তিমুলক কাজগুলো সম্পাদন করে আর সিইউ স্মৃতি থেকে নির্দেশনা নেয়, নির্দেশনাগুলোর সংকেত উদ্ধার করে সেগুলোকে সম্পাদন করে এবং প্রয়োজন মতো এএলইউ থেকে সেবা ব্যবহার করে।

বর্তমানের আধুনিক সিপিইউগুলো মাইক্রোপ্রসেসরে তৈরী মানে একটি মাত্র সমন্বিত চিপে এদের অবস্থান। কিছু কিছু কম্পিউটারে দেখা যায় একের অধিক সিপিইউ রয়েছে একটি মাত্র চিপে, যার মানে এগুলো বহুমাত্রিক প্রক্রিয়াজাতকরণ করতে সক্ষম। তাই এগুলোকে বহু-উৎস বিশিষ্ট প্রক্রিয়াজাতকরণ ইউনিট বলে। সমস্ত সমন্বিত চিপে সিপিইউ'র পাশাপাশি মেমোরি, পেরিফেরাল ডিভাইসগুলো এবং অন্যান্য কম্পিউটারের উপাদানগুলো থাকতে পারে। এরূপ যন্ত্রাংশগুলোকে বিভিন্নভাবে ডাকা হয় যেমন মাইক্রোকন্ট্রোলার বা সিস্টেম অন এ চিপ।

ইতিহাস

বিভিন্ন কাজ সম্পাদনের জন্য প্রত্যেক সময় এনিয়াকের মত কম্পিউটারগুলোর তার পরিবর্তন করতে হত যার ফলে একে স্থির প্রোগ্রামের কম্পিউটার বলে ডাকা হত। যেহেতু সিপিইউ শব্দটি প্রোগ্রাম নির্বাহ করার সাথে জড়িত সেহেতু সত্যিকারের সিপিইউ বলা যায় এমন যন্ত্রাংশ এসেছে সংরক্ষিত প্রোগ্রাম কম্পিউটারের অগ্রগতির সময়।

সংরক্ষিত প্রোগ্রাম কম্পিউটারের ধারণা এনিয়াকের নকশা করার সময়ও জে. প্রেসপার একার্ট এবং জন উইলিয়াম মছলির ছিল কিন্তু এনিয়াক তাড়াতাড়ি শেষ করার জন্য এই ধারনাটা বাদ দেয় হয়। ১৯৪৫ সালের ৩০শে জুন এনিয়াক তৈরির পূর্বে গণিতবিদ জন ভন নিউম্যান তার নিবন্ধ "ফার্ষ্ট ড্রাফট অব এ রিপোর্ট অন দ্যা এডভ্যাক" প্রকাশ করেন। এটি ছিল সংরক্ষিত প্রোগ্রাম কম্পিউটারের সারসংক্ষেপ যার কাজ ১৯৪৯ সালের আগস্টে শেষ হয়। এডভাকের নকশা করা হয় এমনভাবে যাতে এটি বিভিন্ন নির্দিষ্ট নির্দেশনা বা কার্যাবলি সম্পাদন করতে পারে। লক্ষনীয়ভাবে, এই প্রোগ্রামটি উচ্চ গতি সম্পন্ন কম্পিউটার স্মৃতিতে সংরক্ষণ হত তারের অদল বদলের পরিবর্তে। এর ফলে এনিয়াকে নতুন কাজ করতে গেলে যে তারের অদল বদল করা হত তার লাঘব হয়। আর নিউম্যানের তৈরী করা প্রোগ্রামের ক্ষেত্রে শুধু স্মৃতিতে থাকা প্রোগ্রামের পরিবর্তন করেই নতুন কাজ সম্পন্ন করা যেত। কিন্তু সংরক্ষিত প্রোগ্রাম কম্পিউটার হিসেবে এডভাককেই প্রথম বলা যাবে না, ম্যানচেষ্টার স্মল-স্কেল এক্সপেরিমেন্টাল মেশিন, একটি ছোট পরীক্ষামূলক সংস্করণ, ১৯৪৮ সালের ২১শে জুন প্রথম এধরনের প্রোগ্রাম চালায় এবং ম্যানচেষ্টার মার্ক ১ ১৯৪৯ সালের ১৬-১৭ই জুন রাতে প্রথম প্রোগ্রাম চালায়।

প্রথমদিকের সিপিইউগুলো প্রয়োজন অনুসারে নকশা করা হত, কখনো বড় কম্পিউটার অনুযায়ী, কখনো শুধু একটি কম্পিউটারে কাজে লাগবে এমন হিসেবে। কিন্তু এর ব্যবহার কমে যায় যখন একই প্রসেসর দিয়ে অনেক কাজ করা যেত। সমন্বিত সার্কিট ট্রান্জিষ্টরে ব্যবহারের জন্য পৃথকভাবে মেইনফ্রেম এবং মিনিকম্পিউটারের যুগে এই নির্দিষ্ট মানের প্রসেসর জনপ্রিয় হয়ে উঠে। সমন্বিত সার্কিটের কারণেই জটিল নকশার সিপিইউ তৈরি করা সহজ হয়ে ওঠে। সেইসাথে যন্ত্রাংশ দিন দিন ছোট হতে থাকে এবং আরও জটিল নকশার সিপিইউ তৈরি সম্ভব হয়। বর্তমানের আধুনিক ঘরানার জীবনযাপনে ডিজিটাল যন্ত্রাংশগুলো আগের কম্পিউটারের সীমাবদ্ধ ব্যবহার পেছনে ফেলে এসেছে। বাচ্চাদের খেলনা, ফোন থেকে শুরু করে অটোমোবাইলে অত্যাধুনিক মাইক্রোপ্রসেসরগুলো পাওয়া যায়।

ভন নিউম্যানকে তার এডভাক নকশায় সংরক্ষিত প্রোগ্রাম কম্পিউটারের জন্য স্মরণ করা হয়। কিন্তু আরও কয়েকজন আছেন যারা একই ধারণা প্রয়োগ করেছিলেন। যেমন কনার্ড জিইউজ। হার্ভাড মার্ক ১ এর যিনি নকশা প্রনয়নকারী, যা এডভাকেরও আগে তৈরী হয়। এতেও একই সংরক্ষিত প্রোগ্রামের নকশা ব্যবহার করা হয় কিন্তু এতে পাঞ্চড পেপার টেপ ব্যবহার করা হয়, বৈদ্যুতিক স্মৃতির বদলে। মূল পার্থক্য হল হার্ভাড মার্কে স্টোরেজ এবং সিপিইউ'র নির্দেশনা ও ডেটা ব্যবস্থাপনা পৃথকভাবে হয়। কিন্তু ভন নিউম্যানের এডভাকে দুটোই ব্যবহার করা হয় একই স্মৃতিতে। বর্তমানের নকশা করা সিপিইউগুলো ভন নিউম্যানের করা নকশা অনুসরণ করে। হার্ভাডের নকশা করাগুলোও দেখা যায় যেমন এটমেল এভিআর মাইক্রোকন্ট্রোলারগুলো হার্ভাডের নকশা করা।

রিলে এবং ভ্যাকুয়াম টিউবগুলো ব্যবহার করা হত সুইচিংয়ের উপাদান হিসেবে, একটি কম্পিউটারের হাজার বা দশ হাজারের মত সুইচিং লাগত। সুইচের দ্রুততার উপর নির্ভর করত সিস্টেমের দ্রুততা। টিউব দিয়ে চালানো কম্পিউটার যেমন এডভাক গড়ে আট ঘণ্টার মত অচল থাকত যেখানে রিলে দিয়ে চালানো কম্পিউটার যেমন হার্ভাড মার্ক ১ খুব কমই অচল থাকত তবে সেগুলো ধীরগতির ছিল। কিন্তু শেষে টিউব ভিত্তিক কম্পিউটারই মুখ্য হয়ে উঠে। বর্তমান মাইক্রোপ্রসেসরের তুলনায় সেগুলোর ক্লক হার ছিল খুবই কম। সে সময় ১০০ কিলোহার্টজ থেকে ৪ মেগাহার্টজ গতি ছিল খুবই সাধারণ, বেশি গতি নির্ভর করত সুইচিং ডিভাইসের উপর, যেগুলো দিয়ে কম্পিউটারটি বানানো হত।

ট্রানজিষ্টর এবং সমন্বিত সার্কিট সিপিইউ

সিপিইউতে ব্যবহৃত যন্ত্রাংশের বিকল্প এবং প্রযুক্তিগত উদ্ভবের কারণে সিপিইউ'র নকশা দিন দিন জটিল হতে থাকে। এতে করে আরও ছোট এবং নির্ভরযোগ্য বৈদ্যুতিক যন্ত্রাংশ তৈরী সহজ হয়। প্রথম এধরনের অগ্রগতি দেখা যায় ট্রানজিষ্টরের উদ্ভবের পর। ১৯৫০-১৯৬০ দশকে ট্রানজিষ্টর দিয়ে বানানো সিপিইউ আগের মত বড়, অনির্ভরযোগ্য এবং ভঙ্গুর হত না। এই সুবিধার কারণে আরও জটিল এবং নির্ভরযোগ্য সিপিইউ তৈরী করা শুরু হয় যেগুলোতে এক বা একাধিক আলাদা আলাদা উপাদান থাকত।

এই সময়ে, একটি উৎপাদন পদ্ধতি আবিষ্কার করা হয় যাতে আন্তঃসংযোগের মাধ্যমে ট্রানজিষ্টরগুলো ছোট জায়গায় বসানো হত। একটি সমন্বিত সার্কিটে, সেমিকন্ডাক্টর নির্ভর চিপে, বড় পরিমানের ট্রানজিষ্টর বসিয়ে উৎপাদন করা হত। প্রথমে খুব সাধারণ বিশেষত্বহীন ডিজিটাল সার্কিটগুলো সমন্বিত সার্কিটে বসানো হত যেমন নর গেট। এই বিশেষত্বের কারণে সমন্বিত সার্কিটগুলোকে ছোট-মাপের অঙ্গিভূতকরন যন্ত্রাংশ (SSI) বলে ডাকা হত। পুরো একটা এসএসআই সমন্বিত সার্কিট সংবলিত সিপিইউ তৈরী করতে হাজার হাজার স্বতন্ত্র চিপের প্রয়োজন হত। কিন্তু তবুও তা খুব কম জায়গা এবং শক্তি খরচ করত আগের পৃথক ট্রানজিষ্টর নকশাগুলোর থেকে। সময়ের সাথে সাথে মাইক্রো বৈদ্যুতিক প্রযুক্তি উন্নয়ন হতে লাগল, সেই সাথে একটি সিপিইউ তৈরী করতে ট্রানজিষ্টরের ব্যবহার বাড়তে লাগল এতে করে স্বতন্ত্র সমন্বিত সার্কিটের ব্যবহার কমে গেল। মধ্যম আকারের এবং বড় আকারের সমন্বিত সার্কিটে ট্রানজিষ্টরের ব্যবহার শত থেকে হাজারে বেড়ে দাড়াল।

১৯৬৪ সালে আইবিএম সিস্টেম/৩৬০ কম্পিউটার নকশা আনল যা ব্যবহার করা হয়েছিল বেশ কিছু কম্পিউটারে ধারাবাহিকভাবে। এগুলো কিছু প্রোগ্রাম চালাতে পারত ভিন্ন ভিন্ন গতি ও দ্রুততায়। এটি গুরুত্বপূর্ণ ছিল এই কারণে যে তখন এক কম্পিউটার অন্যটির সাথে মিলতো না এমনকি একই প্রতিষ্ঠানের হলেও। এই সুবিধা অব্যাহত রাখার জন্য আইবিএম মাইক্রোপ্রোগ্রাম (প্রায়শই "মাইক্রোকোড হিসেবে ডাকা হয়) ধারনাটি ব্যবহার শুরু করে। এটি বর্তমানেও আধুনিক সিপিইউগুলোতে বহুলাংশে দেখা যায়। সিস্টেম/৩৬০ কম্পিউটার নকশাটি এত জনপ্রিয় হয় যে এটি মেইনফ্রেম কম্পিউটারের বাজারও কয়েক দশকের জন্য দখল করে বসে। একই বছরে (১৯৬৪ সালে), ডিজিটাল ইকুইপমেন্ট কর্পোরেশন বাজারে আনে একই ধারনায় প্রভাবিত একটি কম্পিউটার যা বিজ্ঞান ও গবেষণাকারীদের লক্ষ্য করে বানানো হয় এর নাম পিডিপি-৮। একই প্রতিষ্ঠান পরে জনপ্রিয় এই ধারার পিডিপি-১১ ছাড়ে যখন বড় মাপের সমন্বিত সার্কিট সত্যিকার অর্থে প্রায়োগিক হয়ে উঠে। এর আগে এটি এসএসআই সমন্বিত সার্কিট দিয়ে বানানো হত। এই ধারার আগের মডেলগুলোর তুলনায় পিডিপি-১১ তে চারটি বড় মাপের সমন্বিত সার্কিট ব্যবহার করা হয়।

ট্রানজিষ্টর দিয়ে বানানো কম্পিউটারগুলোর বেশ কিছু সুবিধা রয়েছে। এর যেমন নির্ভরযোগ্যতা, কম শক্তি খরচ সুবিধা আছে তেমনি আছে দ্রুততা কারণ ট্রানজিষ্টরগুলো কম সময়ে সুইচিং করতে পারত টিউব এবং রিলের তুলনায়। এই সময়েই সিপিইউর ক্লক গতি দশ মেগাহার্টজের মত পাওয়া যেত। পৃথক ট্রানজিষ্টর এবং সমন্বিত সার্কিটের সিপিইউ'র অত্যধিক ব্যবহারের সাথে সাথে একক নির্দেশ বহু ডেটা বা এসআইএমডি ভেক্টর প্রসেসরগুলোর উত্থান দেখা যায়। এই সকল পরিক্ষামূলক নকশাগুলোই পরবর্তীতে সুপারকম্পিউটারগুলোর যুগের উন্মোচন করে, যেমনটা ক্রে ইনকর্পোরেটস তৈরী করেছিল।

মাইক্রোপ্রসেসর

১৯৭০ দশকে ফেডেরিকো ফ্যেগিনের নকশা করা পদ্ধতি সিপিইউগুলোর নকশা এবং প্রয়োগিক ব্যবহারে পূর্ন পরিবর্তন আনে। প্রথম বাণিজ্যিকভাবে পাওয়া মাইক্রোপ্রসেসরের (ইন্টেল ৪০০৪) সময় থেকে (১৯৭০) এবং প্রথম ব্যাপকভাবে ব্যবহৃত মাইক্রোপ্রসেসর (ইন্টেল ৮০৮০) সময় থেকে (১৯৭৪) এই প্রকারের সিপিইউগুলো ব্যবহার সম্পূর্নভাবে প্রচলন শুরু হয়, আগের প্রসেসরগুলোর পরিবর্তে। মেইনফ্রেম এবং মিনিকম্পিউটার উৎপাদনকারী প্রতিষ্ঠানগুলো সেই সময় নিজস্ব সমন্বিত সার্কিট উন্নয়নকারী প্রোগ্রাম চালু করে যাতে তাদের পুরনো কম্পিউটারগুলোর নকশা নতুন রূপে রূপান্তর করে। তারা নির্দেশনার সাথে খাপ খায় এমন মাইক্রোপ্রসেসর তৈরি করে যেগুলো পুরনো হার্ডওয়্যার ও সফটওয়্যারের সাথে সাথে নতুনগুলোতেও খাপ খায়। বর্তমানের ব্যক্তিগত কম্পিউটারের অগ্রগতি ও সাফল্যের জন্য সিপিইউ বলতে মাইক্রোপ্রসেসরকেই আমরা বুঝে থাকি। এখন কয়েকটি সিপিইউ একটি মাত্র প্রক্রিয়াজাতকরণ চিপে থাকতে পারে।

আগের প্রজন্মের সিপিইউগুলো এক বা তার অধিক সার্কিট বোর্ডে পৃথক উপাদান এবং অগণিত ছোট সমন্বিত সার্কিটে বসিয়ে বানানো হত। অন্যদিকে মাইক্রোপ্রসেসরগুলোতে সিপিইউগুলো উৎপাদন করা হয় কম সংখ্যক সমন্বিত সার্কিট দিয়ে, সাধারণত মাত্র একটি। একটি মাত্র ডাইয়ে তৈরি সিপিইউ ছোট এবং সংখ্যায় কম হওয়ায় দ্রুত সুইচ করতে পারে। এই কারণেই সিপিইউগুলোর ক্লক রেট ১০ মেগাহার্টজ থেকে কয়েক গিগাহার্টজে যেতে সক্ষম হয়। একইসাথে, ছোট ছোট ট্রানজিষ্টরের ব্যবহারিক ক্ষমতা বৃদ্ধি পাওয়ায় একটি মাত্র সিপিইউতে জটিলতর ও সংখ্যায় অধিক হারে তা ব্যবহার করা হয়। এই ব্যাপক প্রবণতাকে মুর নীতি হিসেবে আখ্যায়িত করা হয়, যা ন্যায়সঙ্গতভাবে সিপিইউর বৃদ্ধি ও জটিলতর হওয়ার পূর্বাভাষ দেওয়ায় প্রমাণিত হয়েছে।

সিপিইউ'র জটিলতা, আকৃতি, নির্মানবিদ্যা এবং সাধারণ আকারে যেসব পরিবর্তন হয়েছে তা নকশা আর কার্যপ্রনালীতে আসেনি। এখনকার প্রায় সব সিপিইউকে ভন নিউম্যানের সংরক্ষণ প্রোগ্রাম যন্ত্র বলা যায়। উপরে যে মুর নীতির কথা বলা হয়েছে তা সত্য হওয়ার পাশাপাশি এখন সমন্বিত সার্কিটের সীমাবদ্ধতার কথাও ভাবা হচ্ছে। বৈদ্যুতিক গেটগুলোর সুক্ষ সংক্ষিপ্তকরনের ফলে ইলেক্ট্রোমাইগ্রেশন এবং সাবথ্রেসহোল্ড লিকেজগুলো গুরুত্বপূর্ণ হয়ে উঠছে। এই সব সমস্যার পাশাপাশি আরও অনেক সমস্যা ও সীমাবদ্ধতার কারণে বিজ্ঞানিদের কাছে এখন কোয়ান্টাম কম্পিউটার পদ্ধতির গণনা গবেষণার বিষয়বস্তু হয়ে উঠেছে। একই সাথে অন্যান্য পদ্ধতি যেমন সামন্তরিকরনের মাধ্যমে ভন নিউম্যানের মডেলকে সম্প্রসারনের কথা ভাবা হচ্ছে।

ক্রীয়াপদ্ধতি

সিপিইউ যে আকারেরই হোক না কেন তাদের কাজ হল নির্দেশিত নির্দেশনাগুলো নির্বাহ করা যাকে প্রোগ্রাম বলা হয়। নির্দেশনাগুলো কম্পিউটারের স্মৃতিতে রাখা হয়। তিন ধাপে প্রায় প্রত্যেকটি সিপিইউ কাজ করে সেগুলো হল নির্দেশনা আনায়ন, নির্দেশনার অর্থোদ্ধার এবং নির্বাহ করা।

কোন নির্দেশনা নির্বাহ করার পর,পরবর্তী নির্দেশনার ক্ষেত্রে একই প্রক্রিয়া পুনরায় হয়, সাধারণত পরবর্তী নির্দেশনা আনায়ন করার মধ্য দিয়ে এটা শুরু হয়। যদি কোন জাম্প নির্দেশনা নির্বাহ করা হয়, প্রোগ্রাম কাউন্টার পরিবর্তন করা হয় যাতে এটি নির্দেশনার ঠিকানা বহন করে (যেখানে জাম্প করতে হবে) এবং প্রোগ্রামটি নির্বাহ চালিয়ে যেতে থাকে। জটিল নকশার সিপিইউগুলোতে একাধিক নির্দেশনা আনায়ন, অর্থোদ্ধার ও নির্বাহ করা হয় একই সাথে। বনর্নার এই অংশে "ক্লাসিক আরআইএসসি পাইপলাইন" কি তাকে বুঝানো হচ্ছে, যেটা কিনা অনেক বৈদ্যুতিক যন্ত্রাংশে খুবই সাধারণ মানের সিপিইউতে ব্যবহৃত হয় (প্রায়শই এক মাইক্রোকন্টোলার হিসেবে অভিহিত করা হয়)। এটিতে সিপিইউ ক্যাশ থাকে না।

কিছু নির্দেশনা নিজের কাজের জন্য প্রোগ্রাম কাউন্টার ব্যবহার করে সরাসরি ফলাফলের ডেটা উৎপাদন না করে, এধরনের নির্দেশনাগুলোকে সাধারণত "জাম্প" বলা হয় এবং প্রোগ্রামকে সহজতর করে লুপ, শর্তারোপিত নির্বাহ এবং কার্য সাধনের উপস্থিতির মত আচরণ করে। কিছু প্রসেসরে, অন্যান্য নির্দেশনাগুলো বিটসের অবস্থা পরিবর্তন করে "ফ্ল্যাগস" রেজিষ্টারে। এই ফ্ল্যাগগুলো দিয়ে প্রোগ্রামের আচরণ পরিবর্তন করা যায়।

নির্দেশনা আনায়ন
প্রথম ধাপেটিতে স্মৃতি থেকে প্রোগ্রামের নির্দেশনা উদ্ধারের কাজ হয়। নির্দেশনাটি কোথায় থাকে তার ঠিকানা প্রোগ্রাম স্মৃতিতে থাকে আর সেটি প্রোগ্রাম কাউন্টার দিয়ে নির্নয় করা হয়। প্রোগ্রাম কাউন্টারে একটি সংখ্যা জমা থাকে যেটি ঠিকানাকে চিহ্নিত করে আর এভাবেই পরবর্তী নির্দেশনা কোথা থেকে আনতে হবে তা বোঝা যায়। নির্দেশনা আনার পরে প্রোগ্রাম কাউন্টার বর্ধন করা হয় তাদের নির্দেশনার দৈর্ঘ্য দিয়ে, যাতে করে এটি পরবর্তী নির্দেশনাকে একের পর এক সাজাতে পারে। প্রায়শই, যে নির্দেশনা আনায়ন করতে হবে তা থাকে কম গতি সম্পন্ন স্মৃতিতে, যাতে সিপিইউ স্থির হয়ে অপেক্ষা করতে পারে নির্দেশনার ফেরত আসার জন্য। এই সমস্যাকে বর্তমানের প্রসেসরগুলোতে ক্যাশ এবং পাইপলাইন নকশার মাধ্যমে সমাধান করা হয়।

নির্দেশনার অর্থোদ্ধার
যে নির্দেশনাটি সিপিইউ নিয়ে আসে সেটি থেকে সিপিইউ বুঝতে পারে তাকে কি করতে হবে। এই ধাপে, নির্দেশনাটিকে ভেঙ্গে বিভিন্ন অংশে ভাগ করে গুরুত্ব অনুসারে সিপিইউ'র বিভিন্ন জায়গায় বণ্টন করা হয়। কীভাবে সংখ্যার নির্দেশনাগুলো রূপান্তর করা হবে তা নির্ভর করে সিপিইউ'র নির্দেশনার সেট নকশার (আইএসএ) মাধ্যমে। নির্দেশনার মধ্যে একটি সংখ্যার দল থাকে যেগুলো নির্দেশ করে কি ধরনের ক্রীয়াকলাপ করা হবে। একে অপকোড বলে। বাকি সংখ্যাগুলো সাধারণত নির্দেশনার জন্য কি তথ্য লাগবে তা প্রকাশ করে। যেমন যোগ করার জন্য অপারেন্ড দেয়া। অপারেন্ডগুলো হয় ধ্রুবক মান দিবে নাহলে কোন জায়গার মান দিবে (কোন স্মৃতির ঠিকানা বা রেজিষ্টারের ঠিকানা)।

কিছু সিপিইউ নকশায় নির্দেশনা অর্থোদ্ধারকারীকে হার্ডওয়্যারড হিসেবে স্থাপন করে মানে সার্কিট অপরিবর্তনীয়। অন্যান্য ক্ষেত্রে, একটি মাইক্রোপ্রোগ্রাম ব্যবহার করা হয় নির্দেশনা ভাষান্তর করে সিপিইউ'র বাহ্যিক সংকেতে পরিবর্তন করতে যা বহুমাত্রিক ক্লক পালসের সাথে ক্রমান্বয়ে ব্যবহার করা হয়। আবার কিছু ক্ষেত্রে, যে স্মৃতিতে মাইক্রোপ্রোগ্রামটি থাকে তা পুনলিখন সম্ভব, যার ফলে সিপিইউ কীভাবে নির্দেশনাগুলো অর্থোদ্ধার করবে তা পরিবর্তন করা যায়।

নির্বাহ 
নির্দেশনা আনায়ন ও অর্থোদ্ধারের পর সেগুলো নির্বাহ করা হয়। সিপিইউ নকশার উপর ভিত্তি করে এটি হয় একটি মাত্র ক্রিয়া হয় বা ক্রিয়ার ক্রমান্বয় হয়ে থাকে। প্রতিটি ক্রিয়ার ক্ষেত্রে, সিপিইউ'র বিভিন্ন অংশ যেগুলো একে অপরের সাথে যুক্ত একসাথে কাজ করে বা আলাদা আলাদা প্রয়োজন অনুসারে কর্ম সাধন করে আর এতে করে ক্রিয়াটি শেষ হয়। সাধারণত ক্লক পালসের উত্তরে। প্রায় সব সময়ই ফলাফলগুলো অভ্যন্তরীন সিপিইউ রেজিষ্টারে লিখা হয় দ্রুত প্রবেশের জন্য পরবর্তী নির্দেশনা দ্বারা। অন্যান্য ক্ষেত্রে ফলাফলগুলো কম গতি সম্পন্ন প্রধান স্মৃতিতে লিখা হয় যেগুলো কম দামি এবং উচ্চ ধারণ ক্ষমতা সম্পন্ন।

উদাহরণসরূপ, যদি একটি যোগকরার নির্দেশনা পাওয়া যায়, গাণিতিক যুক্তি অংশের ইনপুটগুলো কয়েক জোড়া অপারেন্ড উৎসের সাথে সংযুক্ত হয়। গাণিতিক যুক্তি অংশ যোগের কাজটি করে যাতে করে এর প্রদত্ত অপারেন্ড ইনপুট আউটপুট হিসেবে দেখা যায়। এবং গাণিতিক যুক্তির আউটপুট ভান্ডারের (রেজিষ্টার বা স্মৃতি) সাথে যুক্ত থাকে যা গণনাকার্যটির আউটপুট গ্রহণ করে। যখন ক্লক পালস হয়, গননাকার্যটি স্টোরেজে পাঠানো হয় আর যদি গণনা কার্যের ফলাফল বেশি বড় হয় তবে তাতে গাণীতিক ওভারফ্লো এর একটি চিহ্ন দেয়া হয়।

নকশা এবং বাস্তবায়ন
সিপিইউ নকশায় নির্দেশনা সমষ্টি থাকে, এতে সাধারণ ক্রিয়ার তালিকা থাকে। এ ক্রিয়াগুলো হতে পারে দুই সংখ্যার যোগ, বিয়োগ, সংখ্যার তুলনা অথবা প্রোগ্রামের বিভিন্ন অংশে লাফিয়ে চলা। প্রত্যেকটি সাধারণ ক্রিয়াকে প্রতিনিধিত্ব করে বিশেষ একটি বিটের ক্রম। ঐ বিশেষ ক্রিয়ার জন্য ক্রমকে অপকোড বলে। একটি কম্পিউটার প্রোগ্রামে নির্দেশনা নির্বাহ করার জন্য, সিপিইউ অপকোডের পাশাপাশি যুক্তি ব্যবহার করে ঐ নির্দেশনার জন্য। সুতরাং একটি কম্পিউটার প্রোগ্রাম হল নির্দেশনার ক্রম এবং প্রত্যেকটি নির্দেশনার ক্রমে একটি অপকোড এবং যুক্তি থাকে।

প্রত্যেকটি নির্দেশনার গাণিতিক ক্রিয়াগুলো প্রক্রিয়াজাতকরণ করা হয় গাণিতিক যুক্তি অংশে। যা সিপিইউ'র একটি উপভাগ। গাণিতিক যুক্তি অংশ ব্যবহার করা ছাড়াও সিপিইউ স্মৃতি থেকে নির্দেশনা পড়া, যুক্তিমূলক ডেটা স্মৃতি থেকে পড় এবং ফলাফল স্মৃতিতে লিখার পেছনে রয়েছে সিপিইউ'র ভূমিকা।

অনেক সিপিইউ নকশায় নির্দেশনার সমষ্টি ক্রিয়া (যা স্মৃতি থেকে স্থানান্তর করা হবে) এবং গাণিতিক কাজগুলো স্পষ্টতই ভাগ করে দেয়া থাকে। এই ক্ষেত্রে স্মৃতি থেকে স্থানান্তরিত ডেটা রেজিষ্টারে জমা হয় অন্যদিকে গাণিতিক ক্রিয়াটি রেজিষ্টারের ডেটার উপর কাজ করে এবং কাজ শেষে তা নতুন রেজিষ্টারে লিখে, যার মান স্মৃতিতে নিয়ে যেতে অন্য আরেকটি ক্রিয়া সংগঠিত হয়।

নিয়ন্ত্রণ অংশ
নিয়ন্ত্রণ অংশের সার্কিট বৈদ্যুতিক সংকেত ব্যবহার করে কম্পিউটার সিস্টেমকে নির্দেশনা দেয় যাতে করে এটি সংরক্ষিত প্রোগ্রামের নির্দেশনা বহন করতে পারে। নিয়ন্ত্রণ অংশ প্রোগ্রামের নির্দেশনা নির্বাহ করে না, বরং সিস্টেমের অন্যান্য অংশগুলোকে নির্বাহ করার জন্য নির্দেশনা দেয়। নিয়ন্ত্রণ অংশকে অবশ্যই গাণিতিক/যুক্তিমূলক অংশ এবং স্মৃতি উভয়ের সাথে যোগাযোগ করতে হয়।

গাণিতিক যুক্তি অংশ

গাণিতিক যুক্তি অংশ একটি ডিজিটাল সার্কিট যা পূর্ণসংখ্যার গণনা এবং বিট অনুসারে যুক্তি ক্রিয়া চালায়। এখানে প্রদত্ত ইনপুটগুলো হল: শব্দের ডেটা যেগুলো পরিচালনা করা হবে অপারেন্ডে, আগের ক্রিয়া থেকে অবস্থান তথ্য এবং নিয়ন্ত্রণ অংশ থেকে একটি কোড যা নির্দেশ করবে কোন ক্রিয়াটি চালাতে হবে। যে ক্রিয়াটি নির্বাহ হবে তার উপর নির্ভর করে অপারেন্ডগুলো অভ্যন্তরীন সিপিইউ রেজিষ্টার বা বহিস্ত স্মৃতি থেকে আসে অথবা গাণিতিক যুক্তি তাৎক্ষনিকভাবে তা তৈরী করে নেয়।

যখন সব ইনপুট সংকেতগুলো স্থাপিত এবং সঞ্চারিত হয় গাণিতিক যুক্তির মধ্য দিয়ে
গাণিতিক যুক্তির আউটপুটে কার্য নির্বাহের ফলাফল দেখায়। শব্দের ডেটা হয়ত রেজিষ্টার বা স্মৃতিতে জমা হয়, অবস্থান তথ্য যা সাধারণত বিশেষ অভ্যন্তরীন সিপিইউ রেজিষ্টারে (যা এই উদ্দেশ্যে খালি রাখা হয়) জমা হয়।

পূর্ণসংখ্যা রেন্জ
প্রত্যেকটি সিপিইউ সংখ্যাবিষয়ক মানগুলোকে প্রকাশ করে বিশেষভাবে। উদাহরণসরূপ, প্রথম দিকের কিছু ডিজিটাল কম্পিউটার সংখ্যাকে দশমিক সংখ্যায় প্রকাশ করত অন্যগুলো লক্ষনীয়ভাবে টারনারি সংখ্যায় (৩ মূল) প্রকাশ করত। বর্তমানে প্রায় সব আধুনিক সিপিইউগুলো সংখ্যাকে বাইনারিতে প্রকাশ করে, প্রত্যেকটি ডিজিটের সাথে দুই-মানের বাস্তব পরিমাণ যেমন "উচ্চ" অথবা "নিম্ন" ভোল্টেজ থাকে।

সংখ্যার প্রকাশের সাথে সাথে পূর্নসংখ্যার আকার এবং যথার্থতা জড়িত। বাইনারির সিপিইউ ক্ষেত্রে এটি পরিমাপ করা হয় বিটের সংখ্যা দিয়ে যা সিপিইউ প্রক্রিয়াজাত করতে পারে একটি ক্রিয়াতেই, যাকে সাধারণত ডাকা হয় "শব্দের আকার", "বিটের প্রশস্ততা", "পূর্নসংখ্যার শুদ্ধতা" অথবা "পূর্নসংখ্যার আকার" নামে। একটি সিপিইউ'র পূর্নসংখ্যার আকার নির্ধারন করে পূর্নসংখ্যার রেন্জের মানগুলোতে যার উপর এটি সরাসরি ক্রিয়াশীল থাকে। উদাহরণ হিসেবে একটি ৮ বিটের সিপিইউ নিজের উদ্দেশ্য সাধনের জন্য সরাসরি পূর্নসংখ্যার পরিচালনা করতে পারে আট বিট দিয়ে এবং তা প্রকাশ করে। তাতে এর পৃথক পূর্ণসংখ্যার মানের রেঞ্জ থাকে ২৫৬ টি।

পূর্নসংখ্যার রেঞ্জ সিপিইউর স্মৃতির সরাসরি অবস্থান চেনার সংখ্যাকে প্রভাবিত করতে পারে। উদাহরণসরূপ, যদি একটি বাইনারি সিপিইউ ৩২ বিট ব্যবহার করে স্মৃতির অবস্থান চিহ্নিত করাকে প্রকাশ করে তখন তা সরাসরিই তা করতে পারে। বাস্তবায়নের পথে এই সীমাবদ্ধতা এবং আরও অনেক কারণে কিছু সিপিইউ এমন পদ্ধতি অবলম্বন করে যাতে বাড়তি স্মৃতির অবস্থান চেনা যায় যেমন ব্যাংক সুইচিং।

বড় আকারের শব্দ নিয়ে যেসব সিপিইউ তাদের বেশি সার্কিটের প্রয়োজন হয় ফলত, এগুলো বড় আকারের হয়, খরচ বেশি হয় এবং বেশি শক্তি খরচ করে, তাপও বেশি উৎপাদিত হয়। যার ফলে, ছোট ৪ বা ৮ বিটের মাইক্রোকন্ট্রোলারগুলো সাধারণত বর্তমানে প্রয়োগ করা হয় বেশি। তবুও ১৬, ৩২, ৬৪ এমনকি ১২৮ বিটেরও পাওয়া যায়। যখন উচ্চ কার্য সম্পাদনের প্রয়োজন হয় তখন এইসব সমস্যা সহজেই মেনে নেওয়া যায়।

এই উচ্চ ও নিম্ন বিটের সমস্যা কাটিয়ে উঠতে সিপিইউগুলো নকশা করা হয় ভিন্ন ভিন্ন বিটের প্রশস্ততায় যন্ত্রাংশের বিভিন্ন ভাগে। উদাহরণসরূপ, আইবিএম সিস্টেম/৩৭০ যে সিপিইউ ব্যবহার করত তা ছিল ৩২ বিটের কিন্তু এটি ১২৮ বিটের সুক্ষ শুদ্ধতা ব্যবাহার করত এর ফ্লোটিং পয়েন্টের অংশের ভিতরে যাতে করে অধিকতর নির্ভুলতা এবং রেন্জ সুবিধা ফ্লোটিং পয়েন্ট সংখ্যায় পাওয়া যায়। পরবর্তীতে অনেক সিপিইউ নকশায় একই ধরনের বিটের মিশ্রণ দেখা যায়। বিশেষত যখন প্রসেসরটি ব্যবহার করা হত সাধারণ উদ্দেশ্যে যেখানে পূর্নসংখ্যা ও ফ্লোটিং পয়েন্টের সক্ষমতার আবশ্যকিয় ভারসাম্য প্রয়োজন হত।

ঘড়ি হার

বেশির ভাগ সিপিইউই সমসঙ্কালিক সার্কিট, যার মানে হল এগুলো একটি ঘড়ির সংকেত নেয় তাদের ক্রিয়ার ধাপের সাথে মিলে চলতে। ঘড়ির সংকেত উৎপাদিত হয় একটি বহিস্ত উচ্চ ফ্রিকোয়েন্সির দিক পরিবর্তনকারি সার্কিট দিয়ে যা সংগতিপূর্ন সংখ্যার পালস তৈরি করে প্রতি সেকেন্ডে এক পর্যাবৃত্ত স্কয়ার তরঙ্গের রূপ দিয়ে। ঘড়ির স্পন্দনের ফ্রিকোয়েন্সি নির্ভর করে সিপিইউর নির্দেশনা নির্বাহ করার হারের উপর। পরিনতিতে, যত দ্রুতগতির ঘড়ি হয়, তা তত দ্রুত সিপিইউ'র নির্দেশনা নির্বাহ করতে পারে প্রতি সেকেন্ডে।

সামন্তরিকিকরন

নির্দেশনা ধাপে সামন্তরিকিকরন

থ্রেড ধাপে সামন্তরিকিকরন

ডেটা সামন্তরিকিকরন
কম দেখা যায় কিন্তু গুরুত্বপূর্ণ সিপিইউ'র উদাহরণ হল ডেটা সামন্তরিকিকরন। পূর্বে যেসব প্রসেসরের কথা আলোচনা করা হয়েছে তাদের সবগুলোই স্কালার যন্ত্রাংশের কোন না কোন ধরন।

কার্য সম্পাদনের গতি
সিপিইউ'র কার্য সম্পাদন গতি নির্ভর করে অন্যান্য আরও উপাদানের উপর, ক্লক রেট এবং ক্লক প্রতি নির্দেশনা (আইপিসি) দুটো মিলিয়ে প্রতি সেকেন্ডের নির্দেশনা (আইপিএস) হিসেব করে সিপিইউর কার্য সম্পাদন গতি হিসেব করা হয়। অনেকের প্রতিবেদন অনুযায়ী আইপিএস মানগুলো "সর্ব্বোচ" কার্যনির্বাহির হার প্রতিনিধিত্ব করে যখন কৃত্রিম নির্দেশনার ক্রম দেয়া হয়। যেখানে সত্যিকারের কাজের সময় এপ্লিকেশন ও নির্দেশনার সংমিশ্রন দেখা যায়, যেগুলোর কিছু বেশি সময় নেয় অন্যগুলোর তুলনায়। স্মৃতি ক্রমাধিকারতন্ত্রও প্রসেসরের কার্য সম্পাদনে বড় ভূমিকা রাখে, যা এমআইপিএস গনণার সময় ধরা হয় না। এই সমস্ত সমস্যার কারণে, বিভিন্ন মান পরিমাপক পরীক্ষা, যাকে "বেঞ্চমার্ক" বলে, করা হয়। যেমন এসপিইসিআইএনটি যা সত্যিকারের কার্য সম্পাদন মাপার চেষ্টা করে সাধারণত ব্যবহার হয় এমন এ্যাপ্লিকশনগুলো দিয়ে।

বহু শক্তির আধার বা কোর বিশিষ্ট প্রসেসরগুলোর কারণে প্রক্রিয়াজাতকরণের গতি বেড়েছে, যেখানে দুই বা তার বেশি আলাদা আলাদা প্রসেসর একটি সমন্বিত সার্কিটে বসানো হয়। সেদিক থেকে একটি কোরের প্রসেসরের চেয়ে দুটি কোরের প্রসেসর দ্বিগুন শক্তিশালী। কিন্তু প্রায়োগিকভাবে, সফটওয়্যারের এলগরিদমের অসামঞ্জস্যতা ও প্রয়োগের ফলে কার্য সম্পাদন বেড়েছে খুব কম হারে প্রায় ৫০%। প্রসেসরে কোর বাড়ালে তার কাজের বোঝা নেয়ার ক্ষমতা বৃদ্ধি পায়। এর মানে দাড়াল প্রসেসর একই সাথে বিভিন্ন কাজ সম্পাদন করতে পারে যা আগে প্রসেসরের উপর বোঝা হয়ে দাড়াত। এই কোরগুলোকে এভাবে ধরা যেতে পারে, একটি প্রক্রিয়াজাতকরণ স্থাপনার একেকটি ফ্লোর, প্রত্যেকটি ফ্লোরের কাজ আলাদা। কখনো কখনো সন্নিহিত কোর হিসেবে একই কাজ সমাধান করবে যদি একটি কোর তা সম্পাদন করতে না পারে।

আরও দেখুন

নোট

সূত্রসমূহ

বহিঃসংযোগ

 25 Microchips that shook the world  – an article by the Institute of Electrical and Electronics Engineers.

 
ডিজিটাল ইলেকট্রনিক্স