কেবল 'বুলিয়ান নান্দ' ব্যবহার করে সমস্ত বুলিয়ান লজিক কীভাবে তৈরি করা যায় তার অনুরূপ 'বিটওয়াইস নান্ড' ব্যবহার করে সমস্ত বিটওয়াইজ অপারেটরগুলির সংজ্ঞা দেওয়া সম্ভব?


9

Nand একটি 'সর্বজনীন' লজিক গেট হিসাবে পরিচিত, কারণ এটি আপনাকে অন্য সমস্ত বুলিয়ান লজিক গেটগুলি সংজ্ঞায়িত করতে দেয়:

not(x) = nand(x,x)
and(x, y) = not(nand(x, y))
or(x, y) = nand(not(x), not(y))
nor(x, y) = not(or(x, y))
xor(x, y) = nand(nand(a, nand(a, b)), nand(b, nand(a, b)))

এটি ন্যানড-লজিক হিসাবে পরিচিত এবং এটি আধুনিক কম্পিউটারগুলিতে সাধারণত ব্যবহৃত হয় কারণ একটি ট্রানজিস্টরকে ন্যানড-গেটের মতো আচরণ করা যেতে পারে।

আমি ভাবছি কি বিটওয়াইজ অপারেশনগুলির সাথে একই রকম কিছু করা সম্ভব। পারে এমন একটি উদাহরণ , bitwise নন্দ (bnand) সংজ্ঞায়িত করার জন্য ব্যবহৃত হতে bnot, bor, band, bnor, bxor? একটি সার্বজনীন বিটওয়াইজ অপারেশন আছে?

উত্তর:


13

একটি হার্ডওয়্যার স্তরে বিটওয়াইজ এবং লজিকাল মধ্যে কোনও পার্থক্য নেই। তাই হ্যাঁ. একটি লজিকাল অপারেশন একটি বিট উপর মাত্র একটি বিটওয়াস অপারেশন।


2

বেশিরভাগ আধুনিক মাইক্রোপ্রসেসরগুলিতে বিটওয়াইজ অপারেশনগুলি স্থানীয়ভাবে প্রয়োগ করা হয়, যাতে ন্যানড অপারেশন করার কোনও সুবিধা নেই।

উদাহরণস্বরূপ x86 নির্দেশিকাতে রয়েছে: এবং , ওআর , এক্সওর , নয় । আমি জানি যতগুলি জানা যায় এগুলি সমস্তই একটি এক চক্রের মধ্যে সম্পাদিত হয়, যাতে বেশ কয়েকটি ন্যাণ্ড অপারেশন দিয়ে তাদের প্রতিস্থাপন করে কোনও লাভ না হয়। এছাড়া রয়েছে ANDN যার জন্য একটি সমতুল্য ((NOT x) AND y)করে একটি চালাক অপ্টিমাইজেশান কম্পাইলার দ্বারা উত্পন্ন করা যেতে পারে একটি চক্র লাভ।

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


আমি আজকাল সিপিইউগুলিতে বুলিয়ান অপারেটরগুলি কীভাবে প্রয়োগ করা হয় তা সত্যই নিশ্চিত নই, তবে এটি 4-ইন-1 ম্যাক্স ব্যবহার করতে 4 টি ইনপুট হিসাবে "সত্য টেবিলে" খাওয়ানো মোটামুটি সাধারণ ছিল, তারপরে দুটি বিট ব্যবহার করুন আউটপুট জন্য নির্বাচক হিসাবে কাজ। আপনাকে একটি একক সার্কিট দেয় যা সমস্ত 16 টি দ্বি-অপারেন্ড বুলিয়ান ফাংশনগুলির জন্য ব্যবহার করা যেতে পারে।
ভ্যাটাইন

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

আরআইএসসি সময়মতো অর্থহীন হয়ে গেছে। এটি যখন উদ্ভূত হয়েছিল, সাধারণ জটিল নির্দেশাবলী 10 বা তার মতো একাধিক ক্লক চক্র নিয়েছিল। এবং এটি ওআর / ওআর / না সম্পর্কে ছিল না, এগুলি ইতিমধ্যে দ্রুত এবং যেকোন সিপিইউয়ের জন্য "সহজ" এবং অপরিহার্য হিসাবে বিবেচিত ছিল যাতে তারা অবশ্যই কোনও আরআইএসসি প্রসেসর দ্বারা বাদ না পড়তে পারে। আজ, জটিল নির্দেশাবলী কম পরে একটি ঘড়ি চক্র নেয় (পাইপলাইং এবং মাল্টি-থ্রেডিং / মাল্টি-কোরের কারণে
মার্টিন ম্যাট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.