যেভাবে কাজ করে মাইক্রোপ্রসেসর..!
কম্পিউটার যে কাজ করে থাকে তার পেছনে সবচেয়ে বড় ভূমিকা যার সেটি হলো প্রসেসর। প্রসসরের ভূমিকার কারণেই একটি কম্পিউটার আরেকটি কম্পিউটারের চাইতে বেশি গতিসম্পন্ন। বিগত অল্প সময়ের ভেতরে প্রসেসর দুনিয়ায় যে পরিমাণ উন্নতি হয়েছে তা এক কথায় অবিশ্বাস্য। নিত্য নতুন প্রজন্মের প্রসেসর এখন জায়গা করে নিচ্ছে কম্পিউটারে ইতিহাসে। খুব অল্প সময়ের ভেতরে গিগাহার্জ মাইলফলকগুলো পার হয়ে সামনে এগিয়ে যাচ্ছে ইন্টেল, এএমডি। প্রসেসরের গতির ক্ষেত্রে ১ গিগাহার্জ এক সময়ে বিশাল এক অর্জন মনে হলেও এখন ৩ গিগাহার্জের প্রসেসরের কাছে সেই সাফল্য ইতিহাস মাত্র। নতুন প্রজন্মের প্রসেসর বলতে এখন বোঝা হয় ইন্টেল থেকে পেন্টিয়াম ফোর এবং এএমডি থেকে এথলন এক্সপি। গতির প্রতিযোগিতায় এই দুই প্রতিদ্বন্দ্বী সামনে এগিয়ে চলছে বিপুল বেগে। জেনে নেয়া যাক প্রসেসরের অন্তর্নিহিত প্রযুক্তি।
কম্পিউটার যে কাজ করে থাকে তার পেছনে সবচেয়ে বড় ভূমিকা যার সেটি হল প্রসেসর। যে কোনো মাইক্রোপ্রসেসর একটি নির্ধারিত মেশিন ইন্সট্রাকশনের সেট ব্যবহার করে অত্যন্ত সূক্ষ্মও স্পর্শকাতর অপারেশন করে থাকে। ইন্সট্রাকশনের ভিত্তিতে, মাইক্রোপ্রসেসরের কাজকে তিনভাগে ভাগ করা হয়।
১. ALU (Artimetic Logic Unit) ব্যবহার করে মাইক্রোপ্রসেসর যোগ-বিয়োগ-গুণ-ভাগের মতো গাণিতিক অপারেশনগুলো সম্পাদন করে। আধুনিক মাইক্রোপ্রসেসরে স্বয়ংক্রিয় Floating point processor থাকে যার মাধ্যমে অত্যন্ত জটিল ও দীর্ঘ দশমিক সংখ্যার অপারেশনগুলো সম্পন্ন হয়।
২. মাইক্রোপ্রসেসরের এক মেমোরি লোকেশন থেকে অন্য লোকেশনে ডাটা সরানোর কাজ করে থাকে।
৩. মাইক্রোপ্রসেসর সিদ্ধান্ত গ্রহণ করতে পারে। এবং এই সিদ্ধান্তের ভিত্তিতে পরবর্তী ইন্সট্রাকশন সম্পন্ন করে।
এবারে আসুন, পাশের ডায়াগ্রাম থেকে মাইক্রোপ্রসেসরের নিম্নলিখিত অংশসমূহকে ব্যাখ্যা করার চেষ্টা করি।
৮.১৬ অথবা ৩২ বিট প্রশস্ত Address bus মেমোরিতে Address পাঠানোর কাজ করে থাকে।
৮.১৬ এবং ৩২ বিট প্রশস্ত Data bus মেমোরি ডাটা পাঠায় এবং মেমোরি থেকে ডাটা গ্রহণ করে।
RD (Read) এবং WR (Write) লাইন মেমোরিতে Address নির্ধারন করার অথবা Address কৃত লোকেশন জানিয়ে দেওয়ার নির্দেশ দেয়।
Clock লাইন প্রসেসরকে clock পালস প্রদান করে।
Reset লাইন প্রোগ্রাম কাউন্টারকে শূন্যতে Reset করে এবং পুনরায় যথারীতি ইন্সট্রাকশনসমূহ সম্পাদন করে।
Address bus এবং Data bus উভয়কে ৮বিট প্রশস্ত বলে ধরে নেয়া যাক। তাহলে একটি অত্যন্ত সরল মাইক্রোপ্রসেসরে অংশগুলোকে হয়তো এভাবে ব্যাখ্যা করা যেতে পারে।
রেজিস্টার A, B, C ফ্লিপফ্লপ দ্বারা তৈরি কতগুলো অত্যন্ত সাধারণ ল্যাচ।
Address ল্যাচ রেজিস্টার A, B, C –এর অনুরূপ কাজ করে।
প্রোগ্রাম কাউন্টার এমন এক ধরনের ল্যাচ যা নিজেই নিজের কাউন্টারের মান ১ বাড়াতে পারে কিংবা কাউন্টারের মান ‘০’ তে Reset করতে পারে।
ALU একটি সাধারণ ৮বিট Address –এর মতো কেবল ৮ বিট সংখ্যা যোগ-বিয়োগ-গুণ-ভাগ করতে পারে।
টেস্ট রেজিস্টার একটি ব্যতিক্রমী ল্যাচ যা ALU কর্তৃক তুলনাকৃত বিভিন্ন মান ধারণ করে। ALU সাধারণত দুটি সংখ্যা তুলনা করে বং সংখ্যাদ্বয় সমান, কিংবা একটি অপরটির চেয়ে বড় বা ছোট কি-না তা নির্ধারণ করে। টেস্ট রেজিস্টার Adder অপারেশনের শেষ ধাপে উৎপন্ন Carry বিটও ধারণ করে। টেস্ট রেজিস্টার ফ্লিপফ্লপে এই মানগুলো জমা করে এবং ইন্সট্রাকশন ডিকোডার এই মানগুলো ব্যবহার করে সিদ্ধান্ত গ্রহণ করে।
উপরের ছবিতে ৬টি বক্সকে (3-State) নামে চিহ্নিত করা হয়েছে। এই বক্সগুলো ট্রাই-টেস্ট বাফার। একটি ট্রাই স্টেট বাফার ‘এক’ অথবা ‘শূন্য’ প্রবাহিত করতে পারে অথবা প্রয়োজনে এটি আউটপুট থেকে সংযোগ বিচ্ছিন্ন করতে পারে। একটি ট্রাই স্টেট বাফার অনেকগুলো আউটপুট একটি তারের সাথে সংযোগের ব্যবস্থা করে। কিন্তু শুধুমাত্র একটি সংযোগেই ‘এক অথবা ‘শূন্য’ প্রবাহিত হয়।
ইন্সট্রাকশন রেজিস্টার এবং ইন্সট্রাকশন ডিকোডার মাইক্রোপ্রসেসরের সমস্ত অংশকে নিয়ন্ত্রণ করে।
ইন্সট্রাকশন ডিকোডার বেশ কিছু কন্ট্রোল লাইন রয়েছে। নিচে কন্ট্রোল লাইনগুলোর কাজের সংক্ষিপ্ত পরিচয় দেওয়া হলো-
প্রোগ্রাম কাউন্টারের মান ‘১’ বৃদ্ধি করার নির্দেশ দেয়।
প্রোগ্রাম কাউন্টারের মান ‘শূন্য’-তে স্থির করার নির্দেশ দেয়।
ছয়টি ট্রাই স্টেট বাফারের যে কোনো একটিকে সক্রিয় করে।
ALU কে পরবর্তী অপারেশনের নির্দেশ দেয়।
RD লাইনকে সক্রিয় করে।
WR লাইনকে সক্রিয় করে।
মাইক্রোপ্রসেসর ইন্সট্রাকশন সেট
অসম্ভব রকমের সাধারণ একটি মাইক্রোপ্রসেসরেরও বিশাল ইন্সট্রাকশন সেট থাকতে পারে। ইন্সট্রাকশনগুলো কতগুলো বিট প্যাটার্ন আকারে প্রয়োগ করা হয়। যখন এটি ইন্সট্রাকশন মাইক্রোপ্রসেসরের ইন্সট্রাকশন রেজিস্টারে লোড হয়, তখন এক একটি ইন্সট্রাকশনের বিট প্যাটার্ন এক এক ধরনের অর্থ বহন করে। বিভিন্ন বিট প্যাটার্নের এই ইন্সট্রাকশনগুলোকে বিভিন্ন ধরনের শব্দ দ্বারা প্রকাশ করা হয়। নিচে কিছু উল্লেখযোগ্য এবং অত্যন্ত সহজ ইন্সট্রাকশনকে শব্দাকারে উপস্থাপন করা হলো-
LOADA mem মেমোরি এড্রেসের মানকে A রেজিস্টারে লোড করে।
LOADA mem মেমোরি এড্রেসের মানকে B রেজিস্টারে লোড করে।
ConB Con-B রেজিস্টারে একটি ধ্রুব সংখ্যা লোড করে।
SAVEC mem-B রেজিস্টারে মানকে মেমোরি লোকেশনে সেভ করে।
SAVEC mem-C রেজিস্টারের মানকে মেমোরি লোকেশনে সেভ করে।
ADD রেজিস্টার A ও B –এর মানদ্বয়কে যোগ করে যোগফল C রেজিস্টারে রাখে।
MUL রেজিস্টার A ও B –এর মানদ্বয় তুলনা করে এবং যোগফল রেজিস্টার C –তে রাখে।
Jump addr একটি এড্রেসে জাম করে।
Stop এক্সিবিউশন বন্ধ করে।
ইতিহাস
জানেন কি আজকের পারসোনাল কম্পিউটারের পূর্বপুরুষ, অর্থাৎ আইবিএম পার্সোনাল কম্পিউটার প্রথম কত প্রসেসর স্পিডের ছিলো?
প্রথম আইবিএম পিসিটির স্পিড ছিলো ৪.৭৭ মেগাহার্জ। এটিতে ইন্টেলের ৮০৮৮ মাইক্রোপ্রসেসর ব্যবহার করা হয়। ১৬ কিলোবাইটের মেমোরি, ১৬০ কিলোবাইটের ফ্লপি আর সাদাকালো একটি মনিটর, এই ছিলো সেই কম্পিউটারের সব কিছু। দামের কথা যদি বলা হয় তবে মাথা ঘুরে যাবে। মার্কিন ডলারে ১৯৮১ সালে পার্সোনাল পিসির দাম ছিলো ১৫৬৫ ডলার, যার আজকের মূল্য হতো ৪০০০ ডলারের সমপরিমাণ। টাকায় হিসেব করলে প্রথম আইবিএম পিসির দাম আজকের টাকায় দুই লাখ ষাট হাজার টাকা।
পরিভাষা
ক্লক স্পিড
অন্য আরেকটি নাম ক্লক রেট। এটি হলো মাইক্রোপ্রসেসরের ইন্সট্রাকশন বা নির্দেশমালা এক্সিকিউট করার গতি। প্রতিটি কম্পিউটারের ভেতরে একোটি ইন্টারনাল ক্লক থাকে যেটি বিভিন্ন ইন্সট্রাকশন এক্সিকিউট করে থাকে এবং বিভিন্ন কম্পোনেন্টের ভেতরে সিঙ্গোনাইজেশন ঘটায়। ক্লক স্পিডকে সাধারণত মেগাহার্জ বা গিগাহার্জে প্রকাশ করা হয়। এক মেগাহার্জ অর্থ প্রতি সেকেন্ডে ১ মিলিয়ন সাইকেল। সিপিইউর মতো কম্পিউটারের এক্সপ্যানশন বাসগুলোরও নিজস্ব ক্লক স্পিড আছে।
ফ্লিপ–ফ্লপ
ফ্লিপ-ফ্লপ হলো এক ধরনের স্মৃতি বর্তনী এটি ০ অথবা ১ এই দুটি লজিক্যাল অবস্থার যে কোনো একটিকে সংরক্ষণ করতে পারে। সেজন্য এটি দু স্থায়ী বা বাইস্টেবল নামে পরিচিত। ট্রানজিস্টর অথবা ইলেক্ট্রনিক্স টিউব দিয়ে এটি তৈরি করা সম্ভব।
ল্যাচ
এটি একটি প্রাথমিক ফ্লিপ-ফ্লপ সার্কিট এই বর্তনীর নির্গমণ মুখের দুটি অবস্থাকে সেট এবং রিসেট বলা হয়। ল্যাচ একটি ইংরেজি শব্দ। এর অর্থ হলো দরজার হুড়কো। দরজা বন্ধ করে হুড়কো লাগালে দরজা বন্ধ অবস্থায় থাকে। আবার হুড়কো খুলে দরজা খোলা অবস্থায় রাখা সম্ভব। তেমনি ল্যাচ বর্তনীর সেট অবস্থায় ১ এবং রিসেট অবস্থায় ০ যুক্তি সংরক্ষণ করে। তাই এ বর্তনী ল্যাচ নামে পরিচিত।
বেঞ্চমার্ক
বেঞ্চমার্ক বলতে কম্পিউটারের হার্ডওয়্যার (বা সফটওয়্যার) পারফরমেন্স তুলনা করার জন্য কিছু বিশেষ টেস্ট বা পরীক্ষাকে বোঝায়। এক্ষেত্রে হতে পারে প্রসেসর বেঞ্চমার্কিং যাতে কিছু নির্দিষ্ট ইন্সট্রাকশন বা নির্দেশমালা প্রসেসরের উপরে চালানো হয় এবং তা কত দ্রুত সম্পাদন হয় তা দেখা হয়। এই ফলাফল কিছু স্ট্যান্ডার্ড প্রসেসরের ফলাফলের সাথে তুলনা করে গ্রাফ বা অনুরূপ কোনোভাবে বেঞ্চমার্ক রেজাল্ট করা দেওয়া হয়।