প্রোগ্রাম কাউন্টার (PC), ইনস্ট্রাকশন রেজিস্টার (IR), এবং স্ট্যাক পয়েন্টার (SP)
প্রোগ্রাম কাউন্টার (PC), ইনস্ট্রাকশন রেজিস্টার (IR), এবং স্ট্যাক পয়েন্টার (SP) সিপিইউ এর গুরুত্বপূর্ণ রেজিস্টার যা কম্পিউটার প্রোগ্রামের কার্যকরী প্রক্রিয়া পরিচালনা করতে সহায়ক। এই রেজিস্টারগুলো কম্পিউটার সিস্টেমের ইনস্ট্রাকশন ফেচিং, এক্সিকিউশন এবং স্ট্যাক ম্যানেজমেন্টের ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে।
১. প্রোগ্রাম কাউন্টার (PC)
প্রোগ্রাম কাউন্টার (PC) হল একটি রেজিস্টার যা বর্তমান অথবা পরবর্তী ইনস্ট্রাকশনের মেমোরি অ্যাড্রেস ধারণ করে। প্রোগ্রাম কাউন্টার সিপিইউ কে নির্দেশ দেয় যে পরবর্তী কোন ইনস্ট্রাকশনটি এক্সিকিউট হবে। প্রোগ্রাম কাউন্টার নিজে প্রতি ইনস্ট্রাকশনের পরের অ্যাড্রেসে ইঙ্ক্রিমেন্ট হয়, তবে ব্রাঞ্চিং বা জাম্প ইনস্ট্রাকশন থাকলে এটি পরিবর্তিত হয়।
বৈশিষ্ট্য:
- স্বয়ংক্রিয় বৃদ্ধি: সাধারণত একে একে ইনস্ট্রাকশন প্রসেস করার জন্য PC এর মান স্বয়ংক্রিয়ভাবে ১ বাড়ে।
- ব্রাঞ্চিং: প্রোগ্রামে যখন জাম্প (branch) করা হয়, তখন PC নতুন ঠিকানায় রিডাইরেক্ট হয়, যা সঠিক ইনস্ট্রাকশন ফলো করার জন্য।
- অ্যাড্রেস ট্র্যাকিং: এটি সঠিক ইনস্ট্রাকশন ঠিকানা ফলো করতে সহায়ক।
উদাহরণ:
- যদি একটি ইনস্ট্রাকশন "ADD" চলমান থাকে, তবে প্রোগ্রাম কাউন্টার পরবর্তী ইনস্ট্রাকশনের অ্যাড্রেস নির্দেশ করবে (যেমন ৪ বা ৮)।
২. ইনস্ট্রাকশন রেজিস্টার (IR)
ইনস্ট্রাকশন রেজিস্টার (IR) হল সেই রেজিস্টার যা সিপিইউ দ্বারা ফেচ করা বর্তমান ইনস্ট্রাকশন ধারণ করে। যখন প্রোগ্রাম কাউন্টার থেকে একটি ইনস্ট্রাকশন মেমোরি থেকে রিড হয়, তখন সেই ইনস্ট্রাকশন IR তে সংরক্ষিত হয়। এরপর সিপিইউ IR থেকে ইনস্ট্রাকশনটি ডিকোড করে এবং কার্যকরী প্রক্রিয়া শুরু করে।
বৈশিষ্ট্য:
- ইনস্ট্রাকশন ধারণ: IR সিপিইউ কে যে ইনস্ট্রাকশনটি এক্সিকিউট করতে হবে তা ধারণ করে।
- ডিকোডিং: সিপিইউ ইনস্ট্রাকশন রেজিস্টার থেকে ইনস্ট্রাকশনটি রিড করে এবং প্রক্রিয়া করে। ইনস্ট্রাকশন ডিকোডিং এর মাধ্যমে সিপিইউ জানে যে কি অপারেশন করতে হবে (যেমন যোগ, বিয়োগ ইত্যাদি)।
- প্রক্রিয়াকরণ: ইনস্ট্রাকশন এক্সিকিউট হওয়ার আগে এটি IR তে থাকে।
উদাহরণ:
- যদি ইনস্ট্রাকশন "ADD R1, R2" IR তে পড়ে, সিপিইউ এটা ডিকোড করে এবং R1 এবং R2 এর মান যোগ করতে শুরু করে।
৩. স্ট্যাক পয়েন্টার (SP)
স্ট্যাক পয়েন্টার (SP) হল একটি রেজিস্টার যা স্ট্যাক ডাটা স্ট্রাকচারের শীর্ষের অবস্থান নির্দেশ করে। স্ট্যাক একটি লাস্ট ইন ফার্স্ট আউট (LIFO) ডাটা স্ট্রাকচার যেখানে সর্বশেষ পুশ করা ডাটা প্রথমে পপ (নির্গত) হয়। স্ট্যাক পয়েন্টার স্ট্যাকের শীর্ষের অবস্থান ট্র্যাক করে এবং ফাংশন কল বা রিটার্নের জন্য ব্যবহার হয়।
বৈশিষ্ট্য:
- স্ট্যাক পরিচালনা: SP স্ট্যাকের শীর্ষ অবস্থান ট্র্যাক করে এবং ডাটা পুশ বা পপ করার সময় এটি পরিবর্তিত হয়।
- ফাংশন কল: ফাংশন কলের সময় স্ট্যাক পয়েন্টারে রিটার্ন অ্যাড্রেস পুশ করা হয় এবং ফাংশন শেষে রিটার্ন অ্যাড্রেস পপ হয়।
- মেমোরি ব্যবস্থাপনা: এটি স্ট্যাকের মধ্যে স্থানীয় ভেরিয়েবল এবং রিটার্ন অ্যাড্রেস সংরক্ষণে ব্যবহৃত হয়।
উদাহরণ:
- যদি একটি ফাংশন কল করা হয়, স্ট্যাক পয়েন্টার ফাংশনের রিটার্ন অ্যাড্রেস এবং স্থানীয় ভেরিয়েবলগুলির জন্য মেমোরি বরাদ্দ করতে সাহায্য করে। ফাংশন শেষে, এটি সেই অ্যাড্রেস এবং ডাটাগুলি পপ করে।
সারসংক্ষেপ
| রেজিস্টার | কাজ | বৈশিষ্ট্য |
|---|---|---|
| প্রোগ্রাম কাউন্টার (PC) | পরবর্তী ইনস্ট্রাকশনের অ্যাড্রেস নির্দেশ করে | সিকোয়েন্সিয়াল কার্যক্রম, অ্যাড্রেস ট্র্যাকিং |
| ইনস্ট্রাকশন রেজিস্টার (IR) | বর্তমান ইনস্ট্রাকশন ধারণ করে | ইনস্ট্রাকশন ডিকোডিং এবং প্রক্রিয়াকরণ |
| স্ট্যাক পয়েন্টার (SP) | স্ট্যাকের শীর্ষে অবস্থান নির্দেশ করে | স্ট্যাক পরিচালনা, ফাংশন কল এবং রিটার্ন |
এই তিনটি রেজিস্টার সিপিইউ এর কার্যক্রম এবং ইনস্ট্রাকশন প্রসেসিং সঠিকভাবে পরিচালনা করার জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে।