এনকোডার ও ডিকোডার: গঠন ও কার্যপদ্ধতি
এইচএসসি আইসিটি অধ্যায় ৩: এনকোডার ও ডিকোডার এর গঠন, কার্যপ্রণালী, সত্যক সারণি এবং লজিক ডায়াগ্রাম। ৮-টু-৩ এনকোডার এবং ৩-টু-৮ ডিকোডার এর বিস্তারিত ব্যাখ্যা।
এনকোডার ও ডিকোডার: গঠন ও কার্যপদ্ধতি
- এনকোডার ও ডিকোডার: গঠন ও কার্যপদ্ধতি
- তুমি 'A' চাপলে কম্পিউটার কী বোঝে?
- এনকোডার (Encoder) কী?
- ৪-টু-২ এনকোডার: সত্যক সারণি
- ৪-টু-২ এনকোডার: আউটপুট সমীকরণ ও লজিক সার্কিট
- ৮-টু-৩ এনকোডার: সত্যক সারণি
- ৮-টু-৩ এনকোডার: আউটপুট সমীকরণ ও লজিক সার্কিট
- ডিকোডার (Decoder)
- ডিকোডার (Decoder) কী?
- ২-টু-৪ ডিকোডার: সত্যক সারণি
- ২-টু-৪ ডিকোডার: আউটপুট সমীকরণ ও লজিক সার্কিট
- ৩-টু-৮ ডিকোডার: সত্যক সারণি
- ৩-টু-৮ ডিকোডার: আউটপুট সমীকরণ ও লজিক সার্কিট
- এনকোডার ও ডিকোডার: পার্থক্য
- এনকোডারের বাস্তব প্রয়োগ
- ডিকোডারের বাস্তব প্রয়োগ
- নিজেকে যাচাই করো! 🧠
- আজকের লেকচার: সারাংশ
- বাড়ির কাজ
এনকোডার ও ডিকোডার: গঠন ও কার্যপদ্ধতি (Encoder & Decoder)
কম্পিউটার বা ডিজিটাল ডিভাইসগুলো আমাদের দৈনন্দিন জীবনের অবিচ্ছেদ্য অংশ। কিন্তু সমস্যা হলো, আমরা যে ভাষায় কথা বলি বা লিখি (যেমন: বাংলা, ইংরেজি, দশমিক সংখ্যা), কম্পিউটার তা বোঝে না। কম্পিউটার কেবল বোঝে '০' এবং '১' বা বাইনারি সংকেত। তাহলে আমাদের দেওয়া কমান্ড বা ডেটা কম্পিউটার কীভাবে প্রসেস করে? আবার কম্পিউটারের প্রসেস করা ফলাফল আমরা কীভাবে বুঝতে পারি? এই যোগাযোগ সমস্যার সমাধান করে এনকোডার ও ডিকোডার। এরা মূলত ডিজিটাল দুনিয়ার 'দোভাষী' বা Translator হিসেবে কাজ করে।
এনকোডার (Encoder): মানুষের ভাষা যান্ত্রিক ভাষায় রূপান্তর
এনকোডার হলো একটি সমবায় লজিক সার্কিট (Combinational Logic Circuit) যা মানুষের বোধগম্য ভাষাকে কম্পিউটারের বোধগম্য যান্ত্রিক ভাষায় রূপান্তর করে। সহজ কথায়, আমরা যখন কিবোর্ডে কোনো বাটন প্রেস করি, তখন এনকোডার সেই সিগন্যালটিকে বাইনারি কোডে (0, 1) পরিণত করে সিপিইউ-তে পাঠায়।
সংজ্ঞা (Definition): এনকোডার এমন একটি লজিক বর্তনী যা মানুষের ব্যবহৃত বিভিন্ন বর্ণ, অংক বা চিহ্নকে (আলফানিউমেরিক বা ডেসিমেল) কম্পিউটারের গ্রহণযোগ্য কোডে (যেমন: বাইনারি, ASCII, BCD) রূপান্তর করে।
এনকোডারের গঠন ও ইনপুট-আউটপুট সম্পর্ক
এনকোডারের ইনপুট ও আউটপুট লাইনের মধ্যে একটি সুনির্দিষ্ট গাণিতিক সম্পর্ক রয়েছে। এটিই পরীক্ষায় এনকোডার চেনার প্রধান উপায়।
$$এনকোডারের\ ইনপুট = 2^n$$
$$এনকোডারের\ আউটপুট = n$$
এখানে $n$ হলো আউটপুট বিট সংখ্যা।
অর্থাৎ, ইনপুট লাইনের সংখ্যা যদি $2^n$ হয়, তবে আউটপুট লাইনের সংখ্যা হবে $n$ টি।
- যদি ইনপুট ৪টি ($2^2$) হয়, তবে আউটপুট হবে ২টি। (একে 4-to-2 Encoder বলে)
- যদি ইনপুট ৮টি ($2^3$) হয়, তবে আউটপুট হবে ৩টি। (একে 8-to-3 Encoder বলে)
- যদি ইনপুট ১৬টি ($2^4$) হয়, তবে আউটপুট হবে ৪টি।
গুরুত্বপূর্ণ বৈশিষ্ট্য:
- এনকোডারের যেকোনো মুহূর্তে কেবল একটি ইনপুট লাইন '1' বা 'High' হতে পারে, বাকি সব ইনপুট লাইন '0' বা 'Low' থাকে।
- এটি মূলত OR গেট (OR Gate) দিয়ে তৈরি হয়।
৮-টু-৩ এনকোডার (Octal to Binary Encoder)
পরীক্ষায় সবচেয়ে বেশি আসা এনকোডারটি হলো ৮-টু-৩ এনকোডার। যেহেতু অক্টাল সংখ্যা পদ্ধতিতে ৮টি অংক (০-৭) থাকে এবং একে ৩ বিট বাইনারি দিয়ে প্রকাশ করা যায়, তাই একে অক্টাল টু বাইনারি এনকোডারও বলা হয়।
সত্যক সারণি (Truth Table) তৈরি
ধরি, আমাদের ৮টি ইনপুট লাইন হলো $D_0, D_1, D_2, ..., D_7$ এবং ৩টি আউটপুট লাইন হলো $X, Y, Z$।
| ইনপুট ($D_0 - D_7$) | আউটপুট ($X, Y, Z$) | ব্যাখ্যা |
|---|---|---|
| $D_0 = 1$ | 0 0 0 | অক্টাল ০ এর বাইনারি |
| $D_1 = 1$ | 0 0 1 | অক্টাল ১ এর বাইনারি |
| $D_2 = 1$ | 0 1 0 | অক্টাল ২ এর বাইনারি |
| $D_3 = 1$ | 0 1 1 | অক্টাল ৩ এর বাইনারি |
| $D_4 = 1$ | 1 0 0 | অক্টাল ৪ এর বাইনারি |
| $D_5 = 1$ | 1 0 1 | অক্টাল ৫ এর বাইনারি |
| $D_6 = 1$ | 1 1 0 | অক্টাল ৬ এর বাইনারি |
| $D_7 = 1$ | 1 1 1 | অক্টাল ৭ এর বাইনারি |
লজিক ফাংশন বা সমীকরণ নির্ণয়
সত্যক সারণি থেকে আমরা দেখতে পাই, আউটপুট $X$ এর মান ১ হয় যখন $D_4, D_5, D_6$ অথবা $D_7$ এর যেকোনো একটি ইনপুট ১ হয়। সুতরাং:
$$X = D_4 + D_5 + D_6 + D_7$$
$$Y = D_2 + D_3 + D_6 + D_7$$
$$Z = D_1 + D_3 + D_5 + D_7$$
পরীক্ষার টিপস (Exam Tip): সার্কিট ডায়াগ্রাম আঁকার সময় ৩টি OR গেট আঁকবে। প্রথম OR গেটের আউটপুট হবে $X$, দ্বিতীয়টির $Y$ এবং তৃতীয়টির $Z$। ইনপুট লাইনগুলো সমীকরণ অনুযায়ী গেটগুলোতে সংযোগ দিবে। $D_0$ লাইনটি সাধারণত কোনো গেটের সাথে যুক্ত হয় না, কারণ $000$ আউটপুটের জন্য সব ইনপুট ০ থাকলেই চলে।
প্রায়োরিটি এনকোডার (Priority Encoder) কী?
সাধারণ এনকোডারের একটি সীমাবদ্ধতা হলো, যদি একসাথে একাধিক ইনপুট ১ হয়ে যায়, তবে আউটপুট ভুল আসতে পারে। এই সমস্যা সমাধানে প্রায়োরিটি এনকোডার ব্যবহার করা হয়, যা একাধিক ইনপুট সক্রিয় থাকলেও সর্বোচ্চ মানের ইনপুটটিকে অগ্রাধিকার দিয়ে সঠিক কোড তৈরি করে।
ডিকোডার (Decoder): যান্ত্রিক ভাষা মানুষের ভাষায় রূপান্তর
ডিকোডার হলো এনকোডারের ঠিক বিপরীত কাজ করা একটি লজিক সার্কিট। সিপিইউ যখন প্রসেসিং শেষ করে ফলাফল দেয়, তা থাকে বাইনারি ফরম্যাটে। ডিকোডার সেই দুর্বোধ্য বাইনারি কোডকে মানুষের বোধগম্য ভাষায় বা নির্দিষ্ট কোনো ফরম্যাটে (যেমন: দশমিক সংখ্যা, ডিসপ্লে সিগন্যাল) রূপান্তর করে।
সংজ্ঞা (Definition): ডিকোডার এমন একটি লজিক বর্তনী যা কম্পিউটারের যান্ত্রিক ভাষাকে (বাইনারি কোড) মানুষের বোধগম্য ভাষায় বা অন্য কোনো নির্দিষ্ট ফরম্যাটে রূপান্তর করে।
ডিকোডারের গঠন ও ইনপুট-আউটপুট সম্পর্ক
ডিকোডারের সম্পর্কটি এনকোডারের উল্টো।
$$ডিকোডারের\ ইনপুট = n$$
$$ডিকোডারের\ আউটপুট = 2^n$$
- যদি ইনপুট ২টিতে ($n=2$) হয়, তবে আউটপুট হবে ৪টি ($2^2$)। (2-to-4 Decoder)
- যদি ইনপুট ৩টিতে ($n=3$) হয়, তবে আউটপুট হবে ৮টি ($2^3$)। (3-to-8 Decoder)
গুরুত্বপূর্ণ পার্থক্য: এনকোডারে আমরা যোগের লজিক বা OR অপারেশন ব্যবহার করি। কিন্তু ডিকোডারে নির্দিষ্ট ইনপুট কম্বিনেশন শনাক্ত করার জন্য গুণের লজিক বা AND অপারেশন ব্যবহার করা হয়। ডিকোডারের প্রতিটি আউটপুট একটি মিনটার্ম (Minterm) নির্দেশ করে।
৩-টু-৮ ডিকোডার (Binary to Octal Decoder)
এটি ৩টি বাইনারি ইনপুট গ্রহণ করে এবং ৮টি আউটপুট লাইনের মধ্যে যেকোনো একটিকে সক্রিয় করে।
লজিক ফাংশন বা সমীকরণ
ধরি, ইনপুট $A, B, C$ এবং আউটপুট $D_0$ থেকে $D_7$।
প্রতিটি আউটপুট কেবল একটি নির্দিষ্ট ইনপুট কম্বিনেশনের জন্য ১ হবে। যেমন:
- $D_0$ বা প্রথম আউটপুট লাইনটি ১ হবে যখন ইনপুট $000$ (অর্থাৎ $A'B'C'$)।
- $D_5$ লাইনটি ১ হবে যখন ইনপুট $101$ (অর্থাৎ $AB'C$)।
- $D_7$ লাইনটি ১ হবে যখন ইনপুট $111$ (অর্থাৎ $ABC$)।
সুতরাং, ডিকোডারের লজিক সার্কিটটি মূলত ৮টি AND গেট এবং ৩টি NOT গেট (ইনপুটকে ইনভার্ট করার জন্য) দিয়ে তৈরি হয়।
উদাহরণ (Example): যদি ইনপুট লাইনে $101$ দেওয়া হয়, তবে ডিকোডারের ৩য় ও ৮ম আউটপুট লাইন ০ থাকবে, শুধুমাত্র ৬ষ্ঠ লাইনটি ($D_5$) জ্বলে উঠবে বা ১ হবে। এটিই নির্দেশ করে যে বাইনারি ১০১ এর মান অক্টাল বা ডেসিমেলে ৫।
এনকোডার ও ডিকোডারের তুলনা (পার্থক্য)
পরীক্ষায় 'পার্থক্য লিখ' বা 'তুলনামূলক আলোচনা' প্রশ্নের জন্য এই টেবিলটি খুবই গুরুত্বপূর্ণ।
| বৈশিষ্ট্য | এনকোডার (Encoder) | ডিকোডার (Decoder) |
|---|---|---|
| কাজ | মানুষের ভাষাকে যান্ত্রিক ভাষায় (বাইনারি) রূপান্তর করে। | যান্ত্রিক ভাষাকে (বাইনারি) মানুষের ভাষায় রূপান্তর করে। |
| ইনপুট-আউটপুট | ইনপুট $2^n$ টি, আউটপুট $n$ টি। | ইনপুট $n$ টি, আউটপুট $2^n$ টি। |
| লজিক গেট | প্রধানত OR গেট দিয়ে তৈরি। | প্রধানত AND এবং NOT গেট দিয়ে তৈরি। |
| জটিলতা | এর গঠন তুলনামূলক সহজ। | এর গঠন এনকোডারের চেয়ে কিছুটা জটিল। |
| ব্যবহার | কিবোর্ড, মাউস, টেলিফোন বাটন ইত্যাদিতে। | মনিটর, প্রিন্টার, মেমোরি চিপ সিলেক্ট করতে। |
ব্যবহারিক প্রয়োগ (Applications)
-
এনকোডার:
- আলফানিউমেরিক কোডিং: কম্পিউটার কিবোর্ডে যখন আমরা কোনো ‘A’ বা ‘B’ চাপি, তখন এনকোডার সেটিকে ASCII কোডে রূপান্তর করে সিপিইউতে পাঠায়।
- পজিশনাল কন্ট্রোল: রোবোটিক্স বা রাডারে যান্ত্রিক অবস্থানকে ডিজিটাল সিগন্যালে রূপান্তর করতে। -
ডিকোডার:
- ডিসপ্লে ইউনিট: ক্যালকুলেটর বা ডিজিটাল ঘড়ির পর্দায় যে সংখ্যা দেখি, তা সেভেন সেগমেন্ট ডিসপ্লে (Seven Segment Display) ডিকোডারের মাধ্যমে দেখানো হয়।
- মেমোরি অ্যাড্রেসিং: কম্পিউটারের মেমোরির নির্দিষ্ট লোকেশন বা অ্যাড্রেস খুঁজে বের করতে ডিকোডার ব্যবহৃত হয়।
সৃজনশীল প্রশ্ন সমাধান টিপস (Exam Corner)
পরীক্ষার হলে উদ্দীপক (Stem) দেখে এনকোডার বা ডিকোডার চিনতে ভুল করা যাবে না।
কীভাবে চিনবে?
ব্লক ডায়াগ্রামের দিকে তাকাও:
- যদি বাম পাশে (ইনপুট) অনেকগুলো লাইন থাকে এবং ডান পাশে (আউটপুট) কম লাইন থাকে $\rightarrow$ তবে এটি এনকোডার।
- যদি বাম পাশে (ইনপুট) কম লাইন থাকে এবং ডান পাশে (আউটপুট) অনেকগুলো লাইন থাকে $\rightarrow$ তবে এটি ডিকোডার।
- তীর চিহ্নের দিক খেয়াল করবে। মানুষের কাছ থেকে মেশিনের দিকে গেলে এনকোডার, মেশিনের কাছ থেকে মানুষের দিকে আসলে ডিকোডার।
সংক্ষিপ্ত সারাংশ (Quick Revision)
একনজরে মনে রাখার বিষয়:
- এনকোডার: $2^n \to n$ | ইনপুট বেশি, আউটপুট কম | OR গেট নির্ভর | উদাহরণ: কিবোর্ড।
- ডিকোডার: $n \to 2^n$ | ইনপুট কম, আউটপুট বেশি | AND গেট নির্ভর | উদাহরণ: মনিটর।
- ৮-টু-৩ এনকোডারকে 'অক্টাল টু বাইনারি' কনভার্টার বলা হয়।
- ৩-টু-৮ ডিকোডারকে 'বাইনারি টু অক্টাল' কনভার্টার বলা হয়।
পরিভাষা (Glossary)
| শব্দ | ব্যাখ্যা |
|---|---|
| এনকোডার | যান্ত্রিক ভাষায় রূপান্তরকারী বর্তনী। |
| ডিকোডার | মানুষের ভাষায় রূপান্তরকারী বর্তনী। |
| মিনটার্ম (Minterm) | বুলিয়ান অ্যালজেব্রায় AND অপারেশনের মাধ্যমে প্রাপ্ত গুণফল, যা ডিকোডারে ব্যবহৃত হয়। |
| ASCII | American Standard Code for Information Interchange; কিবোর্ডের বর্ণকে কোড করার পদ্ধতি। |
| সেভেন সেগমেন্ট | ৭টি আলাদা বাতি বা LED দিয়ে সংখ্যা প্রদর্শনের ডিসপ্লে। |
