FPU (Floating Point Unit), যা Math Co-Processor নামেও পরিচিত, হলো CPU-র একটি অংশ যা বিশেষভাবে ভাসমান বিন্দুর (floating point) গাণিতিক অপারেশন পরিচালনা করার জন্য ডিজাইন করা। FPU Instructions ব্যবহার করে এই অপারেশনগুলো কার্যকর করা হয় এবং Register Stack ফ্লোটিং পয়েন্ট ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।
FPU Instructions:
FPU নির্দেশনাগুলি ভাসমান বিন্দুর গাণিতিক অপারেশন যেমন যোগ, বিয়োগ, গুণ, ভাগ, এবং অন্যান্য গণিতের জটিল অপারেশন করতে ব্যবহৃত হয়।
প্রধান FPU Instructions:
- FLD: স্ট্যাকের শীর্ষে একটি ভাসমান বিন্দু মান লোড করে।
- FST: স্ট্যাকের শীর্ষের মান একটি মেমোরি লোকেশনে বা অন্য রেজিস্টারে সংরক্ষণ করে।
- FADD: স্ট্যাকের শীর্ষের দুটি ভাসমান বিন্দু মান যোগ করে।
- FSUB: স্ট্যাকের শীর্ষের দুটি ভাসমান বিন্দু মান বিয়োগ করে।
- FMUL: স্ট্যাকের শীর্ষের দুটি ভাসমান বিন্দু মান গুণ করে।
- FDIV: স্ট্যাকের শীর্ষের দুটি ভাসমান বিন্দু মান ভাগ করে।
- FSQRT: স্ট্যাকের শীর্ষের মানের বর্গমূল বের করে।
- FCOS, FSIN: কসম এবং সাইন ফাংশনের জন্য ব্যবহৃত।
উদাহরণ:
FLD ST(1) ; ST(1) এর মান স্ট্যাকের শীর্ষে লোড করা
FADD ST(0), ST(2) ; ST(0) এবং ST(2) যোগফল ST(0) এ সংরক্ষণ করা
FSTP [result] ; ST(0) এর মান মেমোরিতে result অ্যাড্রেসে সংরক্ষণ এবং ST(0) থেকে POPFPU Register Stack:
FPU Register Stack হলো একটি স্ট্যাকভিত্তিক রেজিস্টার ব্যবস্থা যা আটটি ৮০-বিট রেজিস্টার ধারণ করে। এগুলি সাধারণত ST(0) থেকে ST(7) নামে পরিচিত। স্ট্যাকের টপকে ST(0) হিসাবে ধরা হয় এবং বাকি রেজিস্টারগুলি ক্রমানুসারে ST(1), ST(2) ইত্যাদি হিসাবে পরিচিত।
FPU Register Stack বৈশিষ্ট্য:
- LIFO (Last-In-First-Out) পদ্ধতিতে কাজ করে।
- স্ট্যাকের প্রতিটি রেজিস্টার ৮০-বিট দৈর্ঘ্যের ভাসমান বিন্দুর সংখ্যা ধারণ করতে পারে।
- রেজিস্টার স্ট্যাকের সাহায্যে গাণিতিক অপারেশন সহজে কার্যকর করা যায়।
FPU Register Stack ব্যবহার:
FLD ST(0) ; ST(0) কে আবার স্ট্যাকে পুশ করা (ডুপ্লিকেট করা)
FMUL ST(0), ST(1) ; ST(0) এবং ST(1) গুণফল ST(0) এ সংরক্ষণ
FSTP [result] ; ST(0) এর মান মেমোরিতে result অ্যাড্রেসে সংরক্ষণ এবং ST(0) থেকে POPFPU Instructions এবং Register Stack এর ব্যবহার এবং সুবিধা
প্রয়োজনীয়তা:
- গাণিতিক হিসাব-নিকাশ, যেমন গ্রাফিক্স প্রসেসিং, বৈজ্ঞানিক গণনা, এবং ইঞ্জিনিয়ারিং অ্যাপ্লিকেশনগুলিতে ফ্লোটিং পয়েন্ট অপারেশন দ্রুত এবং নির্ভুলভাবে সম্পন্ন করতে FPU ব্যবহৃত হয়।
সুবিধা:
- দ্রুত গাণিতিক অপারেশন: FPU ব্যবহার করলে ভাসমান বিন্দুর গাণিতিক অপারেশনগুলো দ্রুত কার্যকর হয়।
- প্রিসিশন: FPU রেজিস্টার স্ট্যাক ৮০-বিট দৈর্ঘ্যের জন্য অতিরিক্ত প্রিসিশন প্রদান করে, যা CPU-র সাধারণ রেজিস্টারের চেয়ে বেশি।
- স্ট্যাকভিত্তিক অপারেশন: স্ট্যাকভিত্তিক অপারেশনগুলো কার্যপ্রণালী সহজ করে এবং কম নির্দেশনায় জটিল গাণিতিক অপারেশন সম্পন্ন করা যায়।
সারসংক্ষেপ
FPU Instructions ব্যবহার করে ভাসমান বিন্দুর গাণিতিক অপারেশন কার্যকর করা হয় এবং FPU Register Stack ৮০-বিট দৈর্ঘ্যের রেজিস্টার ব্যবহার করে ডেটা সংরক্ষণ করে। FPU নির্দেশনাগুলি গাণিতিক অপারেশন যেমন যোগ, বিয়োগ, গুণ, ভাগ, এবং অন্যান্য জটিল গাণিতিক ফাংশন দ্রুত এবং নির্ভুলভাবে সম্পন্ন করে। Register Stack একটি LIFO পদ্ধতিতে কাজ করে এবং ফ্লোটিং পয়েন্ট অপারেশন পরিচালনায় প্রোগ্রামের কার্যক্ষমতা বৃদ্ধি করে।
Read more