# MMX

আর্কিটেকচার রেফারেন্স: Feex

MMX হলো একটি প্রাথমিক x86 প্যাকড-ইন্টিজার ইন্সট্রাকশন এক্সটেনশন যা 64-বিট রেজিস্টার ব্যবহার করে, যা x87 ফ্লোটিং-পয়েন্ট রেজিস্টার ফাইলের সাথে আর্কিটেকচারাল স্টোরেজ শেয়ার করে। কোড মিশ্রিত করার সময় এই শেয়ার্ড স্টেটটি গুরুত্বপূর্ণ।

## আপনার যা জানা প্রয়োজন

MMX হলো একটি প্রাথমিক x86 প্যাকড-ইন্টিজার ইন্সট্রাকশন এক্সটেনশন যা 64-বিট রেজিস্টার ব্যবহার করে, যা x87 ফ্লোটিং-পয়েন্ট রেজিস্টার ফাইলের সাথে আর্কিটেকচারাল স্টোরেজ শেয়ার করে। কোড মিশ্রিত করার সময় এই শেয়ার্ড স্টেটটি গুরুত্বপূর্ণ।

## এটি যেভাবে কাজ করে

MMX অপারেশনগুলো একটি 64-বিট রেজিস্টারকে প্যাকড ইন্টিজার এলিমেন্ট হিসেবে বিবেচনা করে। MMX রেজিস্টারের নামগুলো একটি স্বাধীন আধুনিক ভেক্টর স্টেট প্রদানের পরিবর্তে x87 রেজিস্টার স্টোরেজের সাথে অ্যালিয়াস তৈরি করে। EMMS MMX ব্যবহারের পরে x87 ট্যাগ স্টেটকে খালি হিসেবে চিহ্নিত করে যাতে পরবর্তী x87 কোড ফ্লোটিং-পয়েন্ট স্ট্যাকটি সঠিকভাবে ব্যবহার করতে পারে।

## যেখানে এটি কার্যকর

লেগ্যাসি মাল্টিমিডিয়া সফটওয়্যার স্যাচুরেটেড বাইট পাটিগণিতের জন্য MMX ব্যবহার করতে পারে। নতুন কোড সাধারণত MMX/x87 স্টেট মিথস্ক্রিয়া এড়িয়ে এর পরিবর্তে XMM বা আরও প্রশস্ত ভেক্টর সুবিধা ব্যবহার করে। বিদ্যমান বাইনারিতে অনেক নতুন প্রসেসরেও MMX থাকতে পারে।

## সাপোর্ট এবং সক্ষমতা কীভাবে পরীক্ষা করবেন

CPUID.01H:EDX বিট 23 MMX এনামারেট করে। লেগ্যাসি কোড ডিবাগ করার জন্য, প্রকৃত নির্দেশনা ক্রম এবং এর EMMS/স্টেট পরিচালনা উভয়ই পরীক্ষা করুন। একটি সক্ষমতা ফ্ল্যাগ কোনো রুটিন কলিং কনভেনশন সঠিকভাবে অনুসরণ করে কিনা তা প্রতিষ্ঠা করতে পারে না।

একটি SIMD ফিচার নির্দেশনা বর্ণনা করে, অতিরিক্ত কোর নয়। নির্দেশনার ধরন উপাদান প্রস্থ, সাইনডনেস, রাউন্ডিং, অ্যালাইনমেন্ট এবং কোন লেনগুলো ইন্টারঅ্যাক্ট করে তা নির্ধারণ করে। সফটওয়্যারকে অবশ্যই ABI-এর রেজিস্টার স্টেট সংরক্ষণ করতে হবে এবং একটি সমর্থিত এক্সিকিউশন পরিবেশ ব্যবহার করতে হবে।

## এই বৈশিষ্ট্যটি যা নিশ্চিত করে না

MMX হলো ইন্টিজার SIMD, এটি 64-বিট সাধারণ উদ্দেশ্যের এক্সিকিউশন বা x86-64 সমর্থন নয়। এটি SSE বা পরবর্তী এক্সটেনশনগুলোকে বোঝায় না। MMX এবং x87 মিশ্রিত করার সময় পরিচ্ছন্নতার অভাব সঠিকতা সংক্রান্ত সমস্যা সৃষ্টি করতে পারে যা CPU নির্দেশনাগুলো সমর্থন করে কিনা তার সাথে সম্পর্কিত নয়।

## বাস্তবে সামঞ্জস্য এবং কর্মক্ষমতা

SSE পরিবারের পরবর্তী নামগুলোর আলাদা ফিচার বিট রয়েছে। একটি মোতায়েনকৃত বাইনারির জন্য, লাইব্রেরি এবং স্টার্টআপ কোড সহ সম্পূর্ণ ন্যূনতম ফিচার সেট পরীক্ষা করুন। নির্বাচন ধাপের আগে কোনো অসমর্থিত নির্দেশনা না চললেই কেবল একটি ফলব্যাক কার্যকর হয়।

## একটি ব্যবহারিক যাচাইকরণ চেকলিস্ট

1. সংশ্লিষ্ট সুনির্দিষ্ট প্রসেসর বা প্ল্যাটফর্ম মডেল এবং অ্যাপ্লিকেশন, OS ও রানটাইম সংস্করণগুলি রেকর্ড করুন। প্রকৃত ত্রুটি বা প্রয়োজনীয়তার সঠিক শব্দচয়ন সংরক্ষণ করুন।
2. সেই নির্দিষ্ট মডেলের জন্য প্রস্তুতকারকের রেফারেন্স পরীক্ষা করুন, তারপর প্রোগ্রামটি যে পরিবেশে চলে সেখানে কার্যকর সক্ষমতা এবং সক্রিয় অবস্থা পর্যবেক্ষণ করুন।
3. নির্বাচিত বাইনারি বা ব্যাকএন্ডের প্রতিটি প্রয়োজনীয়তা তুলনা করুন। একই নামের কোনো বৈশিষ্ট্য, উপনাম বা বিস্তৃত প্রযুক্তির লেবেলই যথেষ্ট নয়।
4. অ্যাপ্লিকেশনটি কাঙ্ক্ষিত বাস্তবায়ন নির্বাচন করেছে কিনা তা নিশ্চিত করুন। প্রয়োজনীয়তা পূরণ না হলে এর নথিভুক্ত ডায়াগনস্টিকস এবং একটি সমর্থিত ফলব্যাক ব্যবহার করুন।
5. একবারে একটি সমর্থিত পরিবর্তন করুন এবং একই কাজের চাপ পুনরাবৃত্তি করুন। মূল কনফিগারেশন এবং পুনরুদ্ধারের পথ উপলব্ধ রাখুন।

## যদি বৈশিষ্ট্যটি তালিকাভুক্ত থাকে কিন্তু সফটওয়্যার এটি ব্যবহার করতে না পারে

নির্দিষ্ট ব্যর্থ উপাদানটি দিয়ে শুরু করুন। একটি হার্ডওয়্যার ডাটাবেস সংরক্ষিত সক্ষমতা বর্ণনা করে; অপারেটিং সিস্টেম বা হাইপারভাইজর একটি ভিন্ন কার্যকর পরিবেশ প্রকাশ করতে পারে। একটি অবৈধ-নির্দেশনা (illegal-instruction) ত্রুটির ক্ষেত্রেও প্রকৃত ত্রুটিপূর্ণ নির্দেশনা এবং বাইনারি বিল্ড তদন্ত করা প্রয়োজন, কারণ ডেটা ক্ষতি বা সম্পর্কহীন কোনো অসমর্থিত নির্দেশনাও একই রকম লক্ষণ তৈরি করতে পারে।

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

## সম্পর্কিত বৈশিষ্ট্য এবং দরকারী পার্থক্যসমূহ

[SSE2](https://feex.it/wiki/l/bn/hardware/system/sse2/) · [FXSR](https://feex.it/wiki/l/bn/hardware/system/fxsr/) · [64-bit (x86-64)](https://feex.it/wiki/l/bn/hardware/system/x86-64/)

## এই ব্যাখ্যার উৎস এবং পরিধি

[Intel 64 and IA-32 Architectures Software Developer's Manual](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html) · [x86-64 psABI: প্রসেসর আর্কিটেকচার এবং মাইক্রোআর্কিটেকচার স্তর](https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex)

এই রেফারেন্সগুলি আর্কিটেকচারাল আচরণ এবং সফটওয়্যার প্রয়োজনীয়তা স্থাপন করে। এগুলি একটি লিঙ্কযুক্ত হার্ডওয়্যার মডেল পৃষ্ঠার প্রতিটি বৈশিষ্ট্যের মান স্বাধীনভাবে যাচাই করে না। মডেল সাপোর্টের জন্য, সেই পৃষ্ঠার প্রস্তুতকারকের প্রমাণ ব্যবহার করুন এবং কার্যকর সিস্টেম কনফিগারেশন পরীক্ষা করুন। এই নিবন্ধটি কোনো বেঞ্চমার্ক, সার্টিফিকেশন বা স্বাধীন পর্যালোচনার তারিখ সরবরাহ করে না।

## সম্পর্কিত

এই সত্তাগুলো এই নিবন্ধের সাথে যুক্ত। প্রতিটি লিঙ্কে ধরন দেখানো হয়েছে।

[SSE2: আর্কিটেকচার রেফারেন্স](https://feex.it/wiki/l/bn/hardware/system/sse2/)[FXSR: আর্কিটেকচার রেফারেন্স](https://feex.it/wiki/l/bn/hardware/system/fxsr/)[64-bit (x86-64): আর্কিটেকচার রেফারেন্স](https://feex.it/wiki/l/bn/hardware/system/x86-64/)

## উৎস এবং যাচাইকরণ

সম্পাদকীয় মালিকানা: Feex। কোনো স্বাধীন পর্যালোচনার তারিখ রেকর্ড করা নেই। [আমরা কীভাবে গবেষণা করি](https://feex.it/wiki/research/).

- [Intel 64 and IA-32 Architectures Software Developer's Manual ](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)· ভলিউম 1 এবং 2 নামযুক্ত নির্দেশিকা পরিবার এবং CPUID বর্ণনা করে; ভলিউম 3 স্টেট, পেজিং, VMX এবং সুরক্ষা নিয়ন্ত্রণ বর্ণনা করে। আর্কিটেকচার ডকুমেন্টেশন কোনো নির্দিষ্ট মডেলের জন্য সাপোর্ট নিশ্চিত করে না।
- [x86-64 psABI: প্রসেসর আর্কিটেকচার এবং মাইক্রোআর্কিটেকচার স্তর ](https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex)· মেশিন ইন্টারফেস, প্রসেসর আর্কিটেকচার: বেসলাইন এবং ক্রমবর্ধমান v2/v3/v4 ফিচার টেবিল, OS-স্টেট যাচাই এবং ডিপ্লয়মেন্ট সুপারিশ।

## এই নিবন্ধটি কি দরকারী ছিল?

একটি হ্যাঁ বা না-ই যথেষ্ট। আপনি চাইলে একটি কারণ বেছে নিন, বা একটি ছোট মন্তব্য যোগ করুন।

একনজরে তথ্য

এই পৃষ্ঠার সংক্ষিপ্ত পরিচয়। স্পেসিফিকেশন, উৎস এবং সম্পূর্ণ বিবরণ নিবন্ধে রয়েছে।

---

Source: [Canonical Feex Wiki page](https://feex.it/wiki/l/bn/hardware/system/mmx/)

[Developer guide](https://feex.it/wiki/developers/) | [API policy](https://feex.it/developers/api-policy/) | [Agent guidance](https://feex.it/wiki/llms.txt)
