یک (به اختصار ، که گاهی نیز خوانده می‌شود) بخشی از یک سیستم است که به‌طور خاص برای انجام عملیات ریاضی بر روی طراحی شده‌است. نمونه‌هایی از این عملیات عبارتند از: جمع، تفریق، ضرب، تقسیم، جذر و . بعضی از سیستم‌ها (مخصوصا نسخه‌های قدیمی تر، معماری مبتنی بر ) نیز می‌توانند فراوانی مانند محاسبات نمایی یا را انجام دهند، اگرچه در اکثر پردازنده‌های پیشرفته این اعمال با استفاده از روال‌های کتابخانه نرم‌افزاری انجام می‌شود.
 در بیشتر طراحی‌های چند منظوره، یک یا چند FPU (واحد ممیز شناور) ممکن است به عنوان واحد اجرایی در (سی پی یو) جای گرفته باشند؛ با این حال بسیاری از از پشتوانهٔ سخت‌افزاری برای عملیات ممیز شناور (fp) برخوردار نیستند (در حالیکه آنها را به‌طور معمول به صورت استاندارد، حداقل ۳۲ بیتی می‌کنند).
 هنگامی که یک CPU (هستهٔ پردازندهٔ مرکزی) برنامه ای را اجرا می‌کند که نیاز به عملیات نقطه شناور دارد، سه راه برای انجام آن وجود دارد:
 
 
 از لحاظ تاریخی، سیستم‌ها ممیز شناور را از طریق یک کمک پردازنده به جای یک واحد یکپارچه اجرا می‌کنند (اما در حال حاضر علاوه بر CPU، به عنوان مثال GPUها (واحد پردازش گرافیکی) - که کمک پردازنده هستند و همیشه در CPU ساخته نمی‌شوند- برخلاف نسل‌های اولشان، به عنوان یک قاعده در FPUها هستند). این می‌تواند یک مدار یکپارچه، یک مدار کل یا یک کابینه باشد. از آنجا که ابزار محاسبه ممیز شناور ارائه نشده‌است، محاسبات ممیز شناور در نرم‌افزار انجام می‌شود که زمان پردازنده بیشتری را می‌گیرد اما از هزینه سخت‌افزاری اضافی اجتناب می‌کند. برای یک معماری کامپیوتری خاص، دستورالعمل‌های واحد ممیز شناور ممکن است توسط یک کتابخانه از توابع نرم‌افزار شبیه‌سازی شوند؛ این ممکن است به ماشین یکسان اجازه دهد که در سیستم‌های دارای سخت‌افزار ممیز شناور یا بدون آن اجرا شود. شبیه‌سازی را می‌توان در هر یک از سطوح مختلف انجام داد: در CPU (واحد پردازش مرکزی) به عنوان (که یک عمل معمولی نیست)، به عنوان یک ، یا در . هنگامی که فقط قابلیت‌های عدد صحیح در دسترس است، معمولاً روش‌های شبیه‌سازی ممیز شناور CORDID استفاده می‌شوند.
 در بیشتر معماری‌های کامپیوتری پیشرفته، عملیات‌های ممیز شناور از عملیات‌های عدد صحیح جدا می‌شود. این قسمت به‌طور قابل توجهی با معماری متفاوت است؛ بعضی‌ها، مانند دارای ثابت ممیز شناور اختصاصی اند در حالی که بعضی از آنها مستقل از برنامه‌های عمل می‌کنند.
 دستورالعمل CORDIC معمولاً به خوبی در کمک پردازنده‌های ۸۰۸۷ ،۸۰۲۸۷، ۸۰۳۸۷ تا ۸۰۴۸۶ و در ۶۸۸۸۱ و ۶۸۸۸۲ برای برخی از دستورالعمل‌های ممیز شناور، به عنوان یک راه برای کاهش تعداد دریچه (و پیچیدگی) از زیر سیستم FPU پیاده‌سازی شده‌است.
 عملیات‌های ممیز شناور اغلب خطی هستند. در معماری‌های پیشین (صفتی برای یک نوع معماری ریز پردازنده که آن را قادر می‌سازد تا چند دستورالعمل را در یک چرخه (سیکل) ساعت انجام دهد) بدون اجرای عمومی ، عملیات نقطه شناور گاهی به صورت جداگانه از عملیات عدد صحیح به صورت خطی انجام می‌شود.
 از اوایل دهه ۱۹۹۰، بسیاری از ریزکمک پردازنده‌های دسکتاپ و سرورها دارای بیش از یک FPU (واحد ممیز شناور) هستند.
 یک معماری پیمانه ای از معماری بولدوزر، از FPU خاصی به نام FlexFPU استفاده می‌کند، که آن FPU از چندنخی استفاده می‌کند. هر هسته فیزیکی، در هر دو ماژول (پیمانه)، در مقایسه با (فراریسمانی) اینتل، که آنجا دو رشته مجازی همزمان، منابع یک هسته فیزیکی واحد را به اشتراک می‌گذارند، یک رشته‌است.
 برخی از سخت‌افزارهای ممیز شناور، تنها از ساده‌ترین عملیات‌ها - جمع، تفریق و ضرب - پشتیبانی می‌کنند اما حتی پیچیده‌ترین سخت‌افزار ممیز شناور هم تعداد محدودی عملیات را پشتیبانی می‌کند. به عنوان مثال، هیچ‌یک از آنها از محاسبه‌های دلخواه دقیق به‌طور مستقیم پشتیبانی نمی‌کنند.
 هنگامی که یک CPU (هسته پردازنده مرکزی) برنامه ای را اجرا می‌کند که نیاز به عملیات ممیز شناوری دارد که به‌طور مستقیم توسط سخت‌افزار پشتیبانی نمی‌شود، از یک سری عملیات‌های ساده شناور استفاده می‌کند. در سیستم‌های بدون سخت‌افزار شناور نقطه ای، CPU آن را با استفاده از یک سری عملیات ساده‌تر محاسباتی نقطه ثابت که در عددی اجرا می‌شود، کند.
 نرم‌افزاری که رشته‌های ضروری دستورهای لازم برای عملیات نقطه شناور را لیست می‌کند معمولاً در یک نقطه شناور وجود دارد.
 در بعضی موارد، ممکن است واحدها ممیز شناور تخصصی باشند و بین عملیات‌های ممیز شناور ساده‌تر (خصوصاً جمع و ضرب) و عملیات‌های پیچیده‌تر مانند تقسیم، تقسیم شوند. در برخی موارد، ممکن است تنها عملیات ساده در سخت‌افزار یا انجام شود، در حالی که عملیات پیچیده‌تر به عنوان نرم‌افزار اجرا می‌شود.
 در برخی از طراحی‌های جدید، قابلیت FPU با واحدها برای انجام محاسبه‌های است؛ یک مثال در این مورد، تقویت کردن دستورهای x87 است که با دستورهای تنظیم شده در معماری که در پردازنده‌های جدیدتر اینتل و AMD استفاده شده‌است، می‌باشد.
 در دهه ۱۹۸۰، رایج بود که FPUهای موجود در / سازگار کاملاً از جدا باشد و معمولاً به عنوان یک افزودنی اختیاری فروخته می‌شد و تنها در صورتی که نیاز به افزایش سرعت یا توانا ساختن برنامه‌های سنگین ریاضیاتی بود خریداری می‌شد.
 IBM PC , XT و اکثر دستگاه‌های سازگار مبتنی بر ۸۰۸۸ یا ۸۰۸۶ دارای یک سوکت برای کمک پردازنده اختیاری ۸۰۸۷ بودند. AT و سیستم‌های مبتنی بر به‌طور کلی برای ۸۰۲۸۷ و ماشین‌های مبتنی بر / نیز به ترتیب برای ۸۰۳۸۷ و 80387SX سوکت دار شده بودند اگر چه نسخه‌های جدیدتر برای ۸۰۲۸۷ سوکت دار شده بودند ولی از آنجایی که ۸۰۳۸۷ هنوز وجود نداشت سایر کمپانی‌ها کمک پردازنده‌ها را برای سری‌های Intel x86 تولید کردند که شامل CYRIX , WEITEK می‌شد.
 کمک پردازنده‌ها برای خانوادهٔ موتورولا ۶۸۰۰۰، ۶۸۸۸۱ و ۶۸۸۸۲ موجود بودند. آنها در رایانه‌های بر مبنای MOTOROLA 68020/68030 مانند سری‌های SUN 3 (خورشید ۳) مرسوم بودند و همچنین به‌طور گسترده به نسخه‌های نهایی و پیشرفتهٔ مکینتاش اپل و سری‌های COMMODORE AMIGA اضافه شده بوند اما بر خلاف سیستم‌های سازگار با IBM PC سوکت‌ها برای اضافه کردن کمک پردازنده‌ها در نسخه‌های سطح پایین چندان رایج نبود.
 همچنین دستگاه‌های جانبی ریزپردازندهٔ FPU برای دستگاه‌های واحد (MCUs به / μCs) / تک کامپیوتر (SBCها)، وجود دارد که برای فراهم کردن قابلیت محاسبهٔ ممیز شناور سودمند هستند. این افزودنیهای FPUها مستقل از پردازنده و میزبان هستند، که نیازهای برنامه‌نویسی خود ( ، و غیره) را پردازش می‌کنند و اغلب با یکپارچه و توسعه یافتهٔ خود (IDEها) ارائه می‌شوند.
{"title": "واحد ممیز شناور", "link": "https://fa.wikipedia.org//w/index.php?title=%D9%88%D8%A7%D8%AD%D8%AF_%D9%85%D9%85%DB%8C%D8%B2_%D8%B4%D9%86%D8%A7%D9%88%D8%B1&oldid=34507797", "language": "fa"}