Borna66
03-15-2009, 07:51 PM
معماري Superscalar و ويژگي MMX
تكنيك هاي Pipelining و معماري Superscalar از تكنيك هاي پيشرفته سخت افزاري هستند كه در ریزپردازنده هاي پنتيوم مورد استفاده قرار گرفتند. تا قبل از پنتيوم از معماري Superscalar استفاده نشده بود. در ریزپردازنده پنتيوم نيز همانند 80486 از Pipelining پنج مرحله اي استفاده مي شود. اين مراحل عبارتند از:
1) پيش واكشي (prefetch) دستورالعمل
2) رمز گشايي دستور العمل (Instruction decoding) براي توليد سيگنال كنترلي لازم
3) توليد آدرس (Address Generation) و قرار دادن آن بر روي گذرگاه آدرس
4) اجراي دستورالعمل (Execution)
5) پس نويسي (Write back) براي باز گرداندن نتيجه حاصل شده در مرحله ي اجرا
بدين ترتيب هنگامي كه يك دستورالعمل در حال وارد شدن به CPU است، دستور ديگر مي تواند رمز گشايي شود و دستوري ديگر نیز مي تواند در حال اجرا باشد و بدين ترتيب سرعت كار CPU افزايش مي يابد. براي درك بهتر Pipelining، مثال ساده زير را در نظر بگيريد.
يك مغازه خشكشويي را در نظر بگيريد. در اين مغازه بايد بخشي براي تحويل گرفتن لباس هاي چرك، بخشي براي شستشوي لباس، بخشي براي اتو كشي لباس و بخشي براي تحويل لباس هاي اتو كشيده به مشتري وجود داشته باشد. استفاده از Pipelining در اين اتوشويي بدين معناست كه براي هر يك از اين بخش ها، مسئولان متفاوتي وجود داشته باشد كه همزمان با هم كار كنند. بدين ترتيب در حالي كه مسئول تحويل گرفتن لباس چرك، لباس شماره 1 را از مشتري دريافت مي كند، مسئول شستشوي لباس در حال شستن لباس شماره 2 خواهد بود و پس از اينكه كارش تمام شد، لباس شماره 1 را از مسئول دريافت لباس چرك، دريافت مي كند و لباس شماره 2 را به مسئول اتو كشي مي دهد تا آن را اتو كند در همين حین مسئول اتو كشي، در حال اتو كشي لباس شماره 3 خواهد بود و مسئول تحويل لباس نيز در حال تحويل لباس شماره 4 خواهد بود و بدين ترتيب در هر لحظه هر چهار نفر مشغول كار هستند. حال آنكه اگر فقط يك نفر قرار بود تمام اين كارها را انجام بدهد، مسلماً به وقت بيشتري نياز داشت. بايد تمام كارهاي لباس شماره 1 را انجام مي داد و پس از آن به سراغ لباس شماره 2 ميرفت و الي آخر. بنابر اين زمان لازم براي تحويل لباس حدوداً چهار برابر مي شد.
Pipelining در ساختار CPU نيز دقيقاً به همين معناست. يعني در حاليكه يك بخش دستوري را دريافت مي كند (معادل بخش دريافت لباس چرك) بخش بعدی دستور ديگر را رمز گشايي مي نمايد (معادل بخش شستشوي لباس) و بخش ديگر دستوري ديگر را اجرا مي كند (معادل بخش اتو كشي لباس). حال اگر در مغازه اتو شويي براي هر يك از بخش ها دو نفر مسئول وجود داشته باشد مسلماً باز هم فرآيند خشك شويي لباس سريعتر انجام خواهد شد. ساختار Superscalar دقيقاً به همين معناست، يعني دو مدخل براي دستورالعمل ها وجود دارد و هم زمان دو دستور در هر مرحله Pipelining اجرا مي شود. بدين ترتيب كارايي CPU تقريباً 2 برابر مي شود . توضیحات بیشتر این اصطلاحات در سایر مقالات سایت میکرورایانه آمده است. از ويژگي هاي جديد ریزپردازنده هاي پنتيوم استفاده از دستور العمل هاي MMX است. اگر چه با آمدن ریزپردازنده پنتيوم كارآيي ریزپردازنده ها به طور قابل ملاحظه اي افزايش يافت، اما هنوز برخي از برنامه هاي كاربردي، به خصوص برنامه هاي چند رسانه اي و برنامه هايي كه به قابليت گرافيكي بالايي نياز داشتند، نمي توانستند با سرعت كافي اجرا شوند. براي حل اين مشكل، اينتل ریزپردازنده هاي پنتيوم MMX را به بازار عرضه كرد كه همزمان عملكرد سريع تر براي داده هاي چند رسانه اي را فراهم مي كرد.
MMX مخفف Multimedia Extension است و همانطور كه از نام آن پيداست، براي افزايش قابلييت هاي چند رسانه اي ریزپردازنده پنتيوم به آن افزوده شده است. براي دستورات MMX نيز از Pipelining استفاده شد و بدين ترتيب كارايي CPU به طور قابل ملاحظه اي در كاربرد هاي چند رسانه اي افزايش يافت. دستورالعمل هاي MMX اين قابليت را براي ریزپردازنده فراهم مي آورد تا عملياتي را كه پنتيوم هاي قديمي در چند مرحله انجام مي دادند، در يك مرحله انجام دهند. در واقع در اين ریزپردازنده ها تكنيك سخت افزاري ديگری كه اصطلاحاً (Single Instruction Multiple Data) یا SIMD ناميده مي شود به كار رفت. اين روش به ریزپردازنده امكان مي دهد كه يك دستور واحد را براي چندين داده مختلف به كار ببرد. البته بر خلاف تكنيك هاي Pipelining و Superscalar كه در واقع از ديد كاربر پنهان هستند، استفاده از امكانات MMX، نيازمند اين است كه برنامه نويس ها برنامه هاي خود را با دستور العمل هاي جديد MMX بنويسند.
البته حتي به هنگام اجراي يك نرم افزار كه از دستورات MMX استفاده نمي كند، نيز چنانچه از ریزپردازنده هاي MMX استفاده شود، كارايي آن نسبت به يك پنتيوم قديمي بيشتر خواهد بود، زيرا در ریزپردازنده پنتيوم MMX، ميزان حافظه Cache دو برابر شده است. همچنين Pipelining ریزپردازنده پنتيوم MMX نيز نسبت به پردازنده هاي پنتيوم اوليه داراي كيفيت بهتري است و اين دو عامل در مجموع باعث كارايي بهتر ریزپردازنده پنتيوم MMX مي باشد.
گردآورنده و نویسنده : بهار یاوری
تدوین و آماده سازی : همکاران سایت میکرو رایانه
كد - لینک:
میکرو رایانه وب سایت مقالات آموزش کامپیوتر اینترنت (http://www.microrayaneh.com)
تكنيك هاي Pipelining و معماري Superscalar از تكنيك هاي پيشرفته سخت افزاري هستند كه در ریزپردازنده هاي پنتيوم مورد استفاده قرار گرفتند. تا قبل از پنتيوم از معماري Superscalar استفاده نشده بود. در ریزپردازنده پنتيوم نيز همانند 80486 از Pipelining پنج مرحله اي استفاده مي شود. اين مراحل عبارتند از:
1) پيش واكشي (prefetch) دستورالعمل
2) رمز گشايي دستور العمل (Instruction decoding) براي توليد سيگنال كنترلي لازم
3) توليد آدرس (Address Generation) و قرار دادن آن بر روي گذرگاه آدرس
4) اجراي دستورالعمل (Execution)
5) پس نويسي (Write back) براي باز گرداندن نتيجه حاصل شده در مرحله ي اجرا
بدين ترتيب هنگامي كه يك دستورالعمل در حال وارد شدن به CPU است، دستور ديگر مي تواند رمز گشايي شود و دستوري ديگر نیز مي تواند در حال اجرا باشد و بدين ترتيب سرعت كار CPU افزايش مي يابد. براي درك بهتر Pipelining، مثال ساده زير را در نظر بگيريد.
يك مغازه خشكشويي را در نظر بگيريد. در اين مغازه بايد بخشي براي تحويل گرفتن لباس هاي چرك، بخشي براي شستشوي لباس، بخشي براي اتو كشي لباس و بخشي براي تحويل لباس هاي اتو كشيده به مشتري وجود داشته باشد. استفاده از Pipelining در اين اتوشويي بدين معناست كه براي هر يك از اين بخش ها، مسئولان متفاوتي وجود داشته باشد كه همزمان با هم كار كنند. بدين ترتيب در حالي كه مسئول تحويل گرفتن لباس چرك، لباس شماره 1 را از مشتري دريافت مي كند، مسئول شستشوي لباس در حال شستن لباس شماره 2 خواهد بود و پس از اينكه كارش تمام شد، لباس شماره 1 را از مسئول دريافت لباس چرك، دريافت مي كند و لباس شماره 2 را به مسئول اتو كشي مي دهد تا آن را اتو كند در همين حین مسئول اتو كشي، در حال اتو كشي لباس شماره 3 خواهد بود و مسئول تحويل لباس نيز در حال تحويل لباس شماره 4 خواهد بود و بدين ترتيب در هر لحظه هر چهار نفر مشغول كار هستند. حال آنكه اگر فقط يك نفر قرار بود تمام اين كارها را انجام بدهد، مسلماً به وقت بيشتري نياز داشت. بايد تمام كارهاي لباس شماره 1 را انجام مي داد و پس از آن به سراغ لباس شماره 2 ميرفت و الي آخر. بنابر اين زمان لازم براي تحويل لباس حدوداً چهار برابر مي شد.
Pipelining در ساختار CPU نيز دقيقاً به همين معناست. يعني در حاليكه يك بخش دستوري را دريافت مي كند (معادل بخش دريافت لباس چرك) بخش بعدی دستور ديگر را رمز گشايي مي نمايد (معادل بخش شستشوي لباس) و بخش ديگر دستوري ديگر را اجرا مي كند (معادل بخش اتو كشي لباس). حال اگر در مغازه اتو شويي براي هر يك از بخش ها دو نفر مسئول وجود داشته باشد مسلماً باز هم فرآيند خشك شويي لباس سريعتر انجام خواهد شد. ساختار Superscalar دقيقاً به همين معناست، يعني دو مدخل براي دستورالعمل ها وجود دارد و هم زمان دو دستور در هر مرحله Pipelining اجرا مي شود. بدين ترتيب كارايي CPU تقريباً 2 برابر مي شود . توضیحات بیشتر این اصطلاحات در سایر مقالات سایت میکرورایانه آمده است. از ويژگي هاي جديد ریزپردازنده هاي پنتيوم استفاده از دستور العمل هاي MMX است. اگر چه با آمدن ریزپردازنده پنتيوم كارآيي ریزپردازنده ها به طور قابل ملاحظه اي افزايش يافت، اما هنوز برخي از برنامه هاي كاربردي، به خصوص برنامه هاي چند رسانه اي و برنامه هايي كه به قابليت گرافيكي بالايي نياز داشتند، نمي توانستند با سرعت كافي اجرا شوند. براي حل اين مشكل، اينتل ریزپردازنده هاي پنتيوم MMX را به بازار عرضه كرد كه همزمان عملكرد سريع تر براي داده هاي چند رسانه اي را فراهم مي كرد.
MMX مخفف Multimedia Extension است و همانطور كه از نام آن پيداست، براي افزايش قابلييت هاي چند رسانه اي ریزپردازنده پنتيوم به آن افزوده شده است. براي دستورات MMX نيز از Pipelining استفاده شد و بدين ترتيب كارايي CPU به طور قابل ملاحظه اي در كاربرد هاي چند رسانه اي افزايش يافت. دستورالعمل هاي MMX اين قابليت را براي ریزپردازنده فراهم مي آورد تا عملياتي را كه پنتيوم هاي قديمي در چند مرحله انجام مي دادند، در يك مرحله انجام دهند. در واقع در اين ریزپردازنده ها تكنيك سخت افزاري ديگری كه اصطلاحاً (Single Instruction Multiple Data) یا SIMD ناميده مي شود به كار رفت. اين روش به ریزپردازنده امكان مي دهد كه يك دستور واحد را براي چندين داده مختلف به كار ببرد. البته بر خلاف تكنيك هاي Pipelining و Superscalar كه در واقع از ديد كاربر پنهان هستند، استفاده از امكانات MMX، نيازمند اين است كه برنامه نويس ها برنامه هاي خود را با دستور العمل هاي جديد MMX بنويسند.
البته حتي به هنگام اجراي يك نرم افزار كه از دستورات MMX استفاده نمي كند، نيز چنانچه از ریزپردازنده هاي MMX استفاده شود، كارايي آن نسبت به يك پنتيوم قديمي بيشتر خواهد بود، زيرا در ریزپردازنده پنتيوم MMX، ميزان حافظه Cache دو برابر شده است. همچنين Pipelining ریزپردازنده پنتيوم MMX نيز نسبت به پردازنده هاي پنتيوم اوليه داراي كيفيت بهتري است و اين دو عامل در مجموع باعث كارايي بهتر ریزپردازنده پنتيوم MMX مي باشد.
گردآورنده و نویسنده : بهار یاوری
تدوین و آماده سازی : همکاران سایت میکرو رایانه
كد - لینک:
میکرو رایانه وب سایت مقالات آموزش کامپیوتر اینترنت (http://www.microrayaneh.com)