واضح آرشیو وب فارسی:سایت ریسک: floating point unit پردازنده roxana 18 22 مهر 1388, 05:30سلام fpu یا واحد ممیز شناور در پردازنده چطور کار میکنه و کامپیوتر اعداد اعشاری را چطور تشخیص میده ؟:?: the_king 22 مهر 1388, 13:08سلام fpu یا واحد ممیز شناور در پردازنده چطور کار میکنه و کامپیوتر اعداد اعشاری را چطور تشخیص میده ؟:?: در پردازنده های قدیمی واحد کمک پردازنده ریاضی مسئول محاسبات اعشاری بود که در پردازنده های نسل های جدید با پردازنده اصلی ترکیب شد، با این وجود همچنان شیوه ارتباط برقرار کردن میان پردازنده و واحد ممیز شناور به همان شیوه قدیمی است. برای محاسبات اعشاری یک پشته (Stack) ویژه وجود داره و یکسری فرامین خاص محاسبات اعشاری که از این پشته استفاده می کنند. پردازنده با این فرامین زبان ماشین می تواند مقداری را در پشته قرار دهد و یا از آن بخواند. پشته ویژه محاسبات اعشاری از خانه های 80 بیتی تشکیل شده که 63 بیت اش برای مانتیس (Mantissa) و 16 بیت اش برای توان (Exponent) و یک بیت هم برای علامت عدد (مثبت یا منفی) بکار می رود. توان یک عدد می تواند خودش منفی یا مثبت باشد. به کمک چنین حافظه ای، می تواند اعداد بسیار بزرگ و بسیار کوچکی را با دقتی در حدود 19 رقم نشان داد. البته دقت ارقام مربوط به مانتیس است، وگرنه به کمک 16 بیت توان، می توان اعدادی که هزاران رقم طول دارند را هم ذخیره کرد، اما نه به این مفهوم که تمامی آن ارقام دقیقا همانگونه که هستند ذخیره شوند، بلکه حدود 19 رقم شان دقیقا ذخیره شده و بقیه ارقام تنها با یک دقت تخمینی ذخیره می شوند. چون خود پردازنده توانایی بکارگیری اعداد اعشاری را ندارد، در اغلب موارد اعداد اعشاری را در یک مضرب صحیح همانند 10000 ضرب می کند و بصورت یک عدد صحیح بدون اعشار بکار می برد. هنگام نمایش مقدار چنین عددی، چند رقم پایینی آنرا بعد از نقطه اعشاری نمایش می دهند. به عنوان مثال اگر بخواهند حاصل (Sin(pi / 4 را بدست آورند (0.7071) ، عدد pi را با یک فرمان خاص FLDPI در پشته مخصوص محاسبات اعشاری قرار می دهند. سپس مقدار عددی 4 را هم در این پشته قرار می دهند و با فرمان FDIV روی این دو مقدار درون پشته عمل تقسیم را انجام می دهند تا مقدار pi / 4 حاصل شود. در ادامه با فرمان FSIN حاصل sin این مقدار را محاسبه می کنند. برای آنکه پردازنده بتواند بسادگی یک عدد اعشاری را نمایش دهد، می توان آن عدد اعشاری را در یک مضرب همانند 10000 ضرب کرد. پس مقدار 10000 را هم در پشته قرار داده و با فرمان FMUL در حاصل sin ضرب می کنند. حاصل عدد حاصل را بصورت یک عدد صحیح به پردازنده منتقل می کنند که مقدارش 7071 خواهد بود و با توجه به مضرب 10000 مورد استفاده بصورت 0.7071 نمایش خواهد یافت.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 440]