অ্যারিথমেটিক লজিক ইউনিট (Arithmetic Logic Unit - ALU)
অ্যারিথমেটিক লজিক ইউনিট (ALU) হল একটি ডিজিটাল সার্কিট যা কম্পিউটার প্রসেসরের একটি গুরুত্বপূর্ণ অংশ এবং এতে অ্যারিথমেটিক (গাণিতিক) এবং লজিক্যাল (যুক্তি ভিত্তিক) কার্যক্রম সম্পাদনের ক্ষমতা থাকে। ALU-তে সাধারণত গাণিতিক কাজ যেমন যোগ, বিয়োগ, গুন, ভাগ এবং লজিক্যাল কাজ যেমন AND, OR, NOT, XOR ইত্যাদি অপারেশন সম্পন্ন করা হয়। এটি কম্পিউটার সিস্টেমে প্রসেসিং ক্ষমতার মূল অংশ।
ALU এর ভূমিকা
ALU কম্পিউটারের কেন্দ্রীয় প্রক্রিয়াকরণ ইউনিট (CPU) এর একটি অংশ, যা কম্পিউটারের বিভিন্ন গাণিতিক ও লজিক্যাল অপারেশন সম্পাদনের জন্য ব্যবহার করা হয়। এটি ইনপুট ডেটার ওপর নির্দিষ্ট নিয়ম অনুযায়ী কাজ করে এবং আউটপুট প্রদান করে। ALU থেকে প্রাপ্ত আউটপুটটি CPU-তে আরও প্রক্রিয়াকরণের জন্য পাঠানো হয় বা মেমরিতে সংরক্ষণ করা হয়।
ALU এর প্রধান কার্যক্রম
ALU সাধারণত দুই ধরনের কার্যক্রম পরিচালনা করে:
অ্যারিথমেটিক অপারেশন:
- যোগ (Addition): দুই বা ততোধিক ডেটার যোগফল প্রদান করে।
- বিয়োগ (Subtraction): এক ডেটা থেকে আরেক ডেটা বিয়োগ করে।
- গুণ (Multiplication): দুই ডেটার গুণফল প্রদান করে।
- ভাগ (Division): এক ডেটাকে আরেক ডেটা দিয়ে ভাগ করে।
- ইনক্রিমেন্ট (Increment): একটি ডেটার মান এক ইউনিট বৃদ্ধি করে।
- ডিক্রিমেন্ট (Decrement): একটি ডেটার মান এক ইউনিট কমিয়ে দেয়।
লজিক্যাল অপারেশন:
- AND: দুই ডেটার প্রতি বিটের জন্য AND অপারেশন করে।
- OR: দুই ডেটার প্রতি বিটের জন্য OR অপারেশন করে।
- NOT: একক ডেটার বিপরীত মান প্রদান করে।
- XOR: দুই ডেটার প্রতি বিটের জন্য XOR অপারেশন করে।
- শিফটিং অপারেশন: ডেটাকে নির্দিষ্ট বিট সংখ্যা অনুযায়ী ডানে বা বামে শিফট করে।
ALU এর গঠন
ALU মূলত কয়েকটি লজিক্যাল সার্কিট নিয়ে গঠিত, যা ভিন্ন ভিন্ন কার্যক্রম পরিচালনা করে। এর প্রধান অংশগুলো হলো:
- অ্যাডার ও সাবট্রাক্টর সার্কিট: যোগ এবং বিয়োগের জন্য ব্যবহৃত হয়।
- লজিক্যাল গেট: AND, OR, NOT, XOR অপারেশন সম্পাদনের জন্য বিভিন্ন লজিক্যাল গেট থাকে।
- শিফট রেজিস্টার: ডেটাকে ডান বা বামে শিফট করার জন্য।
- মাল্টিপ্লেক্সার: বিভিন্ন অপারেশন থেকে আউটপুট নির্বাচন করার জন্য।
ALU এর ব্যবহার
ALU প্রধানত CPU-এর মধ্যেই থাকে, এবং এর মাধ্যমে কম্পিউটার বিভিন্ন ধরনের ডেটা প্রসেসিংয়ের কাজ সম্পন্ন করে। ALU বিভিন্ন ধরনের সিস্টেমে ব্যবহার করা হয়, যেমন:
- সাধারণ গাণিতিক প্রক্রিয়াকরণ: কম্পিউটারের যে কোনো গাণিতিক কাজ যেমন যোগ, বিয়োগ, গুণ, ভাগের জন্য ALU ব্যবহৃত হয়।
- লজিক্যাল ডেটা প্রসেসিং: কম্পিউটার যখন শর্ত যাচাই করে, যেমন if-else কন্ডিশন, তখন ALU লজিক্যাল অপারেশন পরিচালনা করে।
- ডেটা ম্যানিপুলেশন: ডেটার শিফটিং বা বিট পর্যায়ে ম্যানিপুলেশন করার জন্য ALU ব্যবহৃত হয়।
- সিমুলেশন ও মডেলিং: বিভিন্ন সিমুলেশন ও মডেলিংয়ের ক্ষেত্রে ALU জটিল গাণিতিক হিসাব সম্পাদনে গুরুত্বপূর্ণ ভূমিকা পালন করে।
উদাহরণ:
যখন একটি প্রোগ্রামে "5 + 3" যোগফল নির্ধারণ করার প্রয়োজন হয়, তখন ALU এই কাজটি সম্পাদন করে আউটপুট হিসেবে "8" প্রদান করে।
ALU (Arithmetic Logic Unit) এর ধারণা এবং উপাদানসমূহ
ALU (Arithmetic Logic Unit) হলো একটি গুরুত্বপূর্ণ ডিজিটাল সার্কিট যা কম্পিউটারের প্রসেসরে অবস্থিত এবং গাণিতিক (Arithmetic) ও লজিক্যাল (Logical) কাজ সম্পন্ন করে। ALU একটি মাইক্রোপ্রসেসরের কেন্দ্রবিন্দু হিসেবে কাজ করে, কারণ এটি ডেটা প্রক্রিয়াকরণের জন্য প্রয়োজনীয় সকল প্রাথমিক অপারেশন সম্পাদন করে। কম্পিউটারের সিপিইউ (Central Processing Unit) গাণিতিক এবং লজিক্যাল কাজের জন্য ALU-এর উপর নির্ভর করে।
ALU এর ধারণা
ALU মূলত গাণিতিক যেমন, যোগ (addition), বিয়োগ (subtraction), গুণ (multiplication), ভাগ (division) এবং লজিক্যাল অপারেশন যেমন, AND, OR, NOT, XOR প্রভৃতি সম্পাদন করতে সক্ষম। ALU নির্দিষ্ট নিয়ন্ত্রণ সিগন্যালের উপর ভিত্তি করে নির্ধারিত কাজ সম্পন্ন করে। এটি ইনপুট হিসেবে বাইনারি ডেটা গ্রহণ করে এবং আউটপুট হিসেবে প্রয়োজনীয় গাণিতিক বা লজিক্যাল ফলাফল প্রদান করে।
ALU এর উপাদানসমূহ
ALU মূলত কিছু মৌলিক উপাদান নিয়ে গঠিত, যা একসাথে কাজ করে বিভিন্ন ধরণের অপারেশন সম্পন্ন করে। এই উপাদানসমূহ হলো:
১. অ্যাডার (Adder)
- অ্যাডার একটি গাণিতিক সার্কিট যা যোগ প্রক্রিয়া সম্পন্ন করে।
- হাফ অ্যাডার ও ফুল অ্যাডার দুটি জনপ্রিয় ধরণের অ্যাডার সার্কিট।
- যোগ করার জন্য অ্যাডার সার্কিট ব্যবহৃত হয়, যেখানে দুটি সংখ্যা যোগ করলে ক্যারি আউটপুটও উৎপন্ন হয়।
২. সাবট্র্যাক্টর (Subtractor)
- সাবট্র্যাক্টর একটি সার্কিট যা বিয়োগ প্রক্রিয়া সম্পন্ন করে।
- এটি দুটি সংখ্যার মধ্যে বিয়োগ করে আউটপুট প্রদান করে এবং প্রয়োজনে ঋণাত্মক বা বোরো (borrow) আউটপুট দেয়।
৩. লজিকাল অপারেটর (Logical Operators)
- ALU তে সাধারণত AND, OR, NOT, XOR প্রভৃতি লজিক্যাল গেট ব্যবহৃত হয়। এগুলো লজিক্যাল কাজের জন্য ব্যবহৃত হয়।
- উদাহরণস্বরূপ, দুটি বাইনারি সংখ্যার মধ্যে AND অপারেশন করলে নির্দিষ্ট স্থানগুলোতে AND ফলাফল পাওয়া যায়।
৪. শিফট রেজিস্টার (Shift Register)
- শিফট রেজিস্টারগুলো বিট স্থানান্তরের জন্য ব্যবহৃত হয়। যেমন, ডেটা ডান বা বাম দিকে সরানো (Shift) করা।
- এটি বিট ম্যানিপুলেশন অপারেশনের জন্য গুরুত্বপূর্ণ।
৫. মাল্টিপ্লায়ার (Multiplier)
- মাল্টিপ্লায়ার সার্কিট দুটি সংখ্যার গুণ সম্পন্ন করে।
- এই ধরনের সার্কিট সাধারণত বড় প্রসেসরে ব্যবহৃত হয়, কারণ এটি জটিল এবং শক্তি সাশ্রয়ী।
৬. ডিভাইডার (Divider)
- ডিভাইডার সার্কিট দুটি সংখ্যার ভাগ সম্পন্ন করে।
- এটি সাধারণত ALU-এর একটি ঐচ্ছিক অংশ, কারণ গুণ এবং ভাগ প্রক্রিয়া বেশি শক্তিশালী ALU-এর জন্য সংরক্ষিত।
৭. কন্ডিশনাল লজিক ইউনিট (Conditional Logic Unit)
- কন্ডিশনাল লজিক ইউনিট বিভিন্ন শর্ত পূরণ করতে সাহায্য করে, যেমন সমান কিনা (Equal), বড় বা ছোট কিনা (Greater or Less) ইত্যাদি।
- এটি নির্ধারণ করে কোন অপারেশন পরবর্তী ধাপে যাওয়া উচিত।
৮. স্ট্যাটাস রেজিস্টার বা ফ্ল্যাগ রেজিস্টার (Status Register or Flag Register)
- এটি ALU-এর স্ট্যাটাস বা অবস্থা ধারণ করে, যেমন ক্যারি (Carry), জিরো (Zero), সাইন (Sign) এবং ওভারফ্লো (Overflow) ফ্ল্যাগ।
- প্রতিটি অপারেশনের শেষে ALU এই ফ্ল্যাগগুলো আপডেট করে, যা পরবর্তী অপারেশনে প্রভাব ফেলে।
৯. মাল্টিপ্লেক্সার (Multiplexer)
- মাল্টিপ্লেক্সার ALU-এর মধ্যে কোন কাজ সম্পন্ন হবে তা নির্বাচিত করতে সাহায্য করে।
- এটি বিভিন্ন অপারেশন থেকে একটিকে বেছে নেয় এবং সেই অনুযায়ী অপারেশন পরিচালনা করে।
ALU এর কাজের প্রক্রিয়া
ALU বিভিন্ন নিয়ন্ত্রণ সিগন্যালের মাধ্যমে নির্দিষ্ট কাজ সম্পন্ন করে। এই নিয়ন্ত্রণ সিগন্যালগুলো বাইনারি কোড আকারে আসে এবং ALU কে জানায় কোন অপারেশনটি করতে হবে। উদাহরণস্বরূপ, একটি যোগফল তৈরি করতে অ্যাডার সক্রিয় হয় এবং অন্যান্য অংশ নিষ্ক্রিয় থাকে।
ALU এর ব্যবহার
১. কেন্দ্রীয় প্রসেসিং ইউনিট (CPU): CPU-র মূল অংশ হিসেবে ALU গাণিতিক এবং লজিক্যাল কাজ সম্পন্ন করে। ২. ডিজিটাল সিগন্যাল প্রসেসর (DSP): ডেটা প্রক্রিয়াকরণের জন্য গাণিতিক অপারেশনে ALU ব্যবহার করা হয়। ৩. কন্ট্রোল সিস্টেম: বিভিন্ন ডিভাইস নিয়ন্ত্রণে লজিক্যাল অপারেশনের জন্য ALU ব্যবহৃত হয়।
সারসংক্ষেপ
ALU একটি মাইক্রোপ্রসেসরের অত্যন্ত গুরুত্বপূর্ণ উপাদান, যা গাণিতিক এবং লজিক্যাল কাজ সম্পন্ন করে। অ্যাডার, সাবট্র্যাক্টর, লজিক্যাল অপারেটর, শিফট রেজিস্টার, মাল্টিপ্লায়ার, ডিভাইডার, স্ট্যাটাস রেজিস্টার, এবং মাল্টিপ্লেক্সার ALU-এর প্রধান উপাদানসমূহ। এই উপাদানগুলো সমন্বিতভাবে ALU-কে সকল প্রাথমিক গাণিতিক এবং লজিক্যাল কাজ সম্পাদন করতে সহায়তা করে।
কম্পিউটার সিস্টেমে অ্যারিথমেটিক অপারেশন (Arithmetic Operation) এবং লজিক্যাল অপারেশন (Logical Operation) দুটিই গুরুত্বপূর্ণ ভূমিকা পালন করে। অঙ্কমেটিক অপারেশন হল গাণিতিক ক্রিয়াকলাপ যা সংখ্যার উপর কাজ করে, আর লজিক্যাল অপারেশন হল শর্ত ও বিট স্তরের ক্রিয়াকলাপ যা যুক্তি (logic) অনুসারে সিদ্ধান্ত গ্রহণে সহায়তা করে।
অ্যারিথমেটিক অপারেশন (Arithmetic Operation)
অ্যারিথমেটিক অপারেশন সাধারণ গাণিতিক ক্রিয়াকলাপ যা মূলত সংখ্যা, ডেটা এবং ভেরিয়েবলের উপর ভিত্তি করে কাজ করে। এসব অপারেশনে যোগ, বিয়োগ, গুণ, ভাগ, ইনক্রিমেন্ট, ডিক্রিমেন্ট ইত্যাদি অন্তর্ভুক্ত থাকে।
প্রধান অ্যারিথমেটিক অপারেশনগুলো হল:
- যোগ (Addition): দুই বা ততোধিক সংখ্যার যোগফল নির্ধারণে ব্যবহৃত হয়। উদাহরণ: 5+3=85 + 3 = 85+3=8
- বিয়োগ (Subtraction): এক সংখ্যা থেকে আরেক সংখ্যা বিয়োগ করতে ব্যবহৃত হয়। উদাহরণ: 5−3=25 - 3 = 25−3=2
- গুণ (Multiplication): দুই সংখ্যার গুণফল নির্ধারণে ব্যবহৃত হয়। উদাহরণ: 5×3=155 \times 3 = 155×3=15
- ভাগ (Division): এক সংখ্যাকে অন্য সংখ্যায় ভাগ করতে ব্যবহৃত হয়। উদাহরণ: 6/3=26 / 3 = 26/3=2
- মডুলাস (Modulus): দুটি সংখ্যার ভাগশেষ নির্ণয় করে। উদাহরণ: 7%3=17 \% 3 = 17%3=1
- ইনক্রিমেন্ট (Increment): একটি সংখ্যার মান ১ ইউনিট বৃদ্ধি করতে ব্যবহৃত হয়। উদাহরণ: x=x+1x = x + 1x=x+1
- ডিক্রিমেন্ট (Decrement): একটি সংখ্যার মান ১ ইউনিট কমাতে ব্যবহৃত হয়। উদাহরণ: x=x−1x = x - 1x=x−1
লজিক্যাল অপারেশন (Logical Operation)
লজিক্যাল অপারেশন মূলত বিট স্তরে কাজ করে এবং শর্ত ও সিদ্ধান্ত গ্রহণে ব্যবহৃত হয়। এতে সাধারণত AND, OR, NOT, XOR ইত্যাদি অপারেশন অন্তর্ভুক্ত থাকে, যা প্রতিটি বিটের উপর কার্যকর হয় এবং ফলাফল প্রদান করে।
প্রধান লজিক্যাল অপারেশনগুলো হল:
AND অপারেশন: দুই বিটের মধ্যে উভয় বিট ১ হলে আউটপুট ১ হয়, অন্যথায় ০ হয়।
উদাহরণ: 1 AND 1=11 \text{ AND } 1 = 11 AND 1=1; 1 AND 0=01 \text{ AND } 0 = 01 AND 0=0
OR অপারেশন: দুই বিটের মধ্যে যেকোনো একটি বিট ১ হলে আউটপুট ১ হয়, উভয় বিট ০ হলে আউটপুট ০ হয়।
উদাহরণ: 1 OR 0=11 \text{ OR } 0 = 11 OR 0=1; 0 OR 0=00 \text{ OR } 0 = 00 OR 0=0
NOT অপারেশন: একটি বিটের বিপরীত মান প্রদান করে। অর্থাৎ, বিট ১ হলে ০ হয়, আর ০ হলে ১ হয়।
উদাহরণ: NOT 1=0 \text{NOT } 1 = 0NOT 1=0; NOT 0=1 \text{NOT } 0 = 1NOT 0=1
XOR অপারেশন: দুই বিটের মধ্যে যেকোনো একটি বিট ১ হলে আউটপুট ১ হয়, উভয় বিট ১ বা ০ হলে আউটপুট ০ হয়।
উদাহরণ: 1 XOR 0=11 \text{ XOR } 0 = 11 XOR 0=1; 1 XOR 1=01 \text{ XOR } 1 = 01 XOR 1=0
NAND অপারেশন: AND অপারেশনের বিপরীত, অর্থাৎ উভয় বিট ১ হলে আউটপুট ০ হয় এবং অন্যথায় আউটপুট ১ হয়।
উদাহরণ: 1 NAND 1=01 \text{ NAND } 1 = 01 NAND 1=0; 1 NAND 0=11 \text{ NAND } 0 = 11 NAND 0=1
NOR অপারেশন: OR অপারেশনের বিপরীত, অর্থাৎ উভয় বিট ০ হলে আউটপুট ১ হয় এবং অন্যথায় ০ হয়।
উদাহরণ: 0 NOR 0=10 \text{ NOR } 0 = 10 NOR 0=1; 1 NOR 0=01 \text{ NOR } 0 = 01 NOR 0=0
অ্যারিথমেটিক এবং লজিক্যাল অপারেশনের ব্যবহার
- ডেটা প্রসেসিং: গাণিতিক অপারেশনের মাধ্যমে বিভিন্ন ডেটা প্রসেসিং কার্যক্রম যেমন যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি সম্পন্ন করা হয়।
- শর্ত যাচাই: প্রোগ্রামে শর্ত অনুযায়ী কার্যক্রম সম্পন্ন করার জন্য লজিক্যাল অপারেশন ব্যবহার করা হয়। যেমন:
ifশর্তে AND, OR, NOT ইত্যাদি অপারেশন ব্যবহৃত হয়। - ডিজিটাল ইলেকট্রনিক্স: ডিজিটাল সার্কিটে অঙ্কমেটিক এবং লজিক্যাল অপারেশন ব্যবহার করে বিভিন্ন লজিক গেটের মাধ্যমে ডেটা ম্যানিপুলেশন করা হয়।
- ক্লাসিফিকেশন ও ফিল্টারিং: প্রোগ্রামিংয়ে ডেটা ফিল্টারিং এবং ক্লাসিফিকেশন করার জন্য লজিক্যাল অপারেশন ব্যবহার করা হয়।
উদাহরণ:
একটি প্রোগ্রামে if (A > B && C == D) শর্তটি যাচাই করার জন্য AND অপারেশন এবং সমানতার জন্য লজিক্যাল অপারেশন ব্যবহার করা হয়। অন্যদিকে, একটি ক্যালকুলেটরে 5 + 3 - 2 * 4 হিসাবটি সম্পন্ন করতে অ্যারিথমেটিক অপারেশন ব্যবহৃত হয়।
ALU (Arithmetic Logic Unit) এর ডিজাইন এবং কার্যপ্রণালী
ALU হলো একটি ডিজিটাল সার্কিট যা কম্পিউটারের প্রসেসরে গাণিতিক এবং লজিক্যাল কাজ সম্পন্ন করে। ALU এর ডিজাইন ও কার্যপ্রণালী এমনভাবে তৈরি করা হয় যাতে এটি কার্যকরভাবে নির্ধারিত অপারেশন সম্পন্ন করতে পারে। আসুন ALU এর ডিজাইন এবং কার্যপ্রণালী বিস্তারিতভাবে দেখি।
ALU এর ডিজাইন
ALU ডিজাইনের সময় বিভিন্ন লজিক গেট এবং ফ্লিপ-ফ্লপ ব্যবহার করে নির্দিষ্ট অপারেশন সম্পন্ন করার জন্য সার্কিট তৈরি করা হয়। ALU-এর প্রতিটি অংশ আলাদা আলাদা ফাংশন সম্পন্ন করতে সক্ষম, যেমন যোগ-বিয়োগ বা AND-OR অপারেশন।
ALU ডিজাইনের প্রধান উপাদানসমূহ
১. অ্যাডার/সাবট্র্যাক্টর ইউনিট:
- ALU-তে অ্যাডার এবং সাবট্র্যাক্টর ইউনিট একসাথে ডিজাইন করা হয়, যাতে এটি যোগ এবং বিয়োগ উভয় কাজ সম্পন্ন করতে পারে।
- ডিজাইনে একটি পূর্ণ অ্যাডার (Full Adder) ব্যবহার করা হয়, যা দুটি সংখ্যা যোগ করে ক্যারি আউটপুট উৎপন্ন করে। সাবট্র্যাকশন সম্পন্ন করার জন্য একটি ইনপুটকে কমপ্লিমেন্টে রূপান্তর করে বিয়োগ অপারেশন করা হয়।
২. লজিকাল অপারেশন ইউনিট:
- ALU-এর লজিক্যাল অপারেশন ইউনিট বিভিন্ন লজিক্যাল অপারেশন, যেমন AND, OR, NOT, XOR সম্পন্ন করে।
- প্রতিটি অপারেশনের জন্য আলাদা গেট ব্যবহার করে একাধিক অপারেশন সম্পন্ন করা হয় এবং একটি মাল্টিপ্লেক্সার ব্যবহার করে কোন অপারেশনটি প্রয়োজন হবে তা নির্বাচন করা হয়।
শিফটিং ইউনিট:
- ALU-তে শিফট অপারেশন সম্পন্ন করার জন্য শিফট রেজিস্টার ব্যবহার করা হয়। এটি ডেটা ডান বা বাম দিকে স্থানান্তর করতে পারে।
- শিফটিং অপারেশনের জন্য প্রয়োজনীয় বিট সরানোর প্রক্রিয়া ALU-তে ইনপুট আকারে দেওয়া হয় এবং আউটপুটে নির্ধারিত সংখ্যক বিট স্থানান্তরিত হয়।
কন্ডিশনাল লজিক ইউনিট:
- এই ইউনিটটি তুলনা অপারেশনের জন্য ব্যবহৃত হয়, যেমন দুটি ইনপুট সমান কিনা বা বড় বা ছোট কিনা তা নির্ধারণ।
- কন্ডিশনাল অপারেশন যেমন
A == B,A > B,A < Bইত্যাদি নির্ধারণ করতে AND, OR, NOT গেট ব্যবহার করে ফলাফল তৈরি করা হয়।
স্ট্যাটাস বা ফ্ল্যাগ রেজিস্টার:
- ALU-তে একটি ফ্ল্যাগ রেজিস্টার থাকে, যা অপারেশনের পরিণতি সম্পর্কে তথ্য ধারণ করে। সাধারণ ফ্ল্যাগগুলোর মধ্যে রয়েছে ক্যারি (Carry), জিরো (Zero), সাইন (Sign), এবং ওভারফ্লো (Overflow)।
- প্রতিটি অপারেশনের শেষে এই ফ্ল্যাগগুলো আপডেট করা হয়, যা পরবর্তী অপারেশন বা কন্ডিশন চেকের জন্য সহায়ক।
মাল্টিপ্লেক্সার (Multiplexer):
- ALU-তে মাল্টিপ্লেক্সার ব্যবহৃত হয় বিভিন্ন অপারেশন নির্বাচন করতে, যেমন অ্যাডিশন, সাবট্রাকশন, লজিক্যাল অপারেশন, শিফটিং ইত্যাদি।
- নিয়ন্ত্রণ সিগন্যালের মাধ্যমে মাল্টিপ্লেক্সার ALU-এর নির্দিষ্ট ফাংশন নির্বাচন করে এবং সেই অনুযায়ী আউটপুট প্রদান করে।
ALU এর কার্যপ্রণালী
ALU-এর কার্যপ্রণালীটি মূলত নিয়ন্ত্রণ সিগন্যালের উপর ভিত্তি করে কাজ করে। প্রতিটি কাজ একটি নির্দিষ্ট নিয়ন্ত্রণ কোড বা সিগন্যাল দ্বারা ALU-তে নির্দেশিত হয়। ALU একটি নির্দিষ্ট নিয়ন্ত্রণ কোড পেলে সেই অনুযায়ী কাজ সম্পন্ন করে।
ALU-এর কাজ করার ধাপসমূহ
১. নিয়ন্ত্রণ সিগন্যাল পাওয়া:
- CPU বা নিয়ন্ত্রণ ইউনিট থেকে ALU-তে একটি নিয়ন্ত্রণ সিগন্যাল পাঠানো হয়, যা নির্দেশ করে কোন অপারেশনটি সম্পন্ন করতে হবে (যেমন, ADD, SUB, AND, OR)।
২. ইনপুট ফিড করা:
- ALU দুটি ইনপুট গ্রহণ করে, যা সাধারণত A এবং B নামে পরিচিত। এই ইনপুটগুলোর উপর নির্দিষ্ট অপারেশন সম্পন্ন করা হয়।
অপারেশন নির্বাচন:
- নিয়ন্ত্রণ সিগন্যালের মাধ্যমে মাল্টিপ্লেক্সার নির্দিষ্ট অপারেশনটি নির্বাচন করে এবং সেই অনুযায়ী ALU-এর ফাংশন কাজ শুরু করে।
- উদাহরণস্বরূপ, ADD সিগন্যাল পেলে অ্যাডার ইউনিট কাজ করবে এবং INCREMENT সিগন্যাল পেলে শিফটিং ইউনিট কাজ করবে।
অপারেশন সম্পন্ন করা:
- ইনপুট ও নিয়ন্ত্রণ সিগন্যালের ভিত্তিতে ALU নির্দিষ্ট অপারেশন সম্পন্ন করে।
- গাণিতিক অপারেশনে ক্যারি বা বোরো প্রয়োজন হলে তা ফ্ল্যাগ রেজিস্টারে সংরক্ষিত হয়।
আউটপুট প্রাপ্তি ও ফ্ল্যাগ আপডেট:
- অপারেশন সম্পন্ন হলে ALU আউটপুট প্রদান করে এবং ফলাফলের উপর ভিত্তি করে ফ্ল্যাগ রেজিস্টার আপডেট করা হয়।
- উদাহরণস্বরূপ, অপারেশনের ফলাফল শূন্য হলে জিরো ফ্ল্যাগ
১হয় এবং ক্যারি থাকলে ক্যারি ফ্ল্যাগ১হয়।
ALU ডিজাইনের উদাহরণ
ধরা যাক, একটি ৪-বিট ALU ডিজাইন করা হয়েছে যা নিম্নলিখিত অপারেশনগুলো সম্পন্ন করতে পারে:
- ADD (যোগ)
- SUB (বিয়োগ)
- AND (লজিক্যাল AND)
- OR (লজিক্যাল OR)
- NOT (ইনভার্সন)
- SHIFT LEFT (বাম দিকে শিফট)
- SHIFT RIGHT (ডান দিকে শিফট)
এক্ষেত্রে, প্রতিটি অপারেশন সম্পন্ন করতে ৪-বিট ইনপুট এবং নিয়ন্ত্রণ কোড প্রয়োজন হবে। নির্দিষ্ট নিয়ন্ত্রণ কোড দিলে ALU সেই অনুযায়ী কাজ সম্পন্ন করবে।
সারসংক্ষেপ
ALU ডিজাইনে অ্যাডার/সাবট্র্যাক্টর ইউনিট, লজিক্যাল অপারেটর ইউনিট, শিফট রেজিস্টার, মাল্টিপ্লেক্সার এবং ফ্ল্যাগ রেজিস্টার ব্যবহার করা হয়। এর কার্যপ্রণালীতে নিয়ন্ত্রণ সিগন্যাল, ইনপুট ফিডিং, অপারেশন নির্বাচন, আউটপুট প্রদান, এবং ফ্ল্যাগ আপডেট অন্তর্ভুক্ত থাকে। এই উপাদানগুলো ALU-কে কার্যকরভাবে নির্দিষ্ট অপারেশন সম্পন্ন করতে সাহায্য করে, যা ডিজিটাল কম্পিউটিং সিস্টেমে অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে।
Read more