0

تعریف رایانه

 
golami1223
golami1223
کاربر برنزی
تاریخ عضویت : آبان 1389 
تعداد پست ها : 683
محل سکونت : بوشهر

عملکرد ریزپردازنده‌ها
سه شنبه 16 آذر 1389  7:36 AM

عملکرد ریزپردازنده‌ها

کارکرد بنیادی بیشتر ریزپردازنده‌ها علیرغم شکل فیزیکی که دارند، اجرای ترتیبی برنامه‌های ذخیره شده را موجب می‌شود. بحث در این مقوله نتیجه پیروی از قانون رایج نیومن را به همراه خواهد داشت. برنامه توسط یک سری از اعداد که در بخشی از حافظه ذخیره شده‌اند نمایش داده می‌شود.چهار مرحله که تقریباً تمامی ریزپردازنده‌هایی که از [ قانون فون نیومن] در ساختارشان استفاده می‌کنند از آن پیروی می‌کنند عبارت‌اند از : فراخوانی، رمزگشایی، اجرا، بازگشت برای نوشتن مجدد.

 

بلوک دیاگرامی که نمایشگرچگونگی رمز گشایی یک MIPS32 است.

مرحله اول، فراخوانی، شامل فراخوانی یک دستورالعمل (که به وسیله یک عدد و یا ترتیبی از اعداد نمایش داده می‌شود) از حافظه برنامه می‌باشد. یک محل در حافظه برنامه توسط شمارنده برنامه(PC) مشخص می‌شود که در آن عددی که ذخیره می‌شود جایگاه جاری برنامه را مشخص می‌کند.به عبارت دیگر شمارنده برنامه از مسیرهای پردازنده در برنامه جاری نگهداری می‌کند. بعد از اینکه یک دستورالعمل فراخوانی شد شمارنده برنامه توسط طول کلمه دستورالعمل در واحد حافظه افزایش می‌یابد. گاهی اوقات برای اینکه یک دستورالعمل فراخوانی شود بایستی از حافظه کند بازخوانی شود. که این عمل باعث می‌شود ریزپردازنده همچنان منتظر بازگشت دستورالعمل بماند. این موضوع به طور گسترده‌ای در پردازنده‌های مدرن با ذخیره سازی و معماری مخفی سازی در حافظه‌های جانبی مورد توجه قرار گرفت. دستورالعملی که پردازنده از حافظه بازخوانی می‌کند باید معین شده باشد که چه عملی را CPU می خواهد که انجام دهد. در مرحله رمزگشایی، دستورالعمل به بخش‌هایی که قابل فهم برای قسمت‌های پردازنده هستند تفکیک می‌شود. روشی که در آن مقادیر دستورالعمل شمارشی ترجمه می‌شود توسط معماری مجموعه دستورالعمل‌ها (ISA) تعریف می‌شود. اغلب یک گروه از اعداد در یک دستورالعمل که شناسنده نامیده می‌شوند بیانگر این هستند که کدام فرایند باید انجام گیرد. قسمت باقیمانده اعداد معمولاً اطلاعات مورد نیاز برای دستور را در بر دارند، مانند عملوندهای یک عملیات اضافی که در واقع چنین عملوندهایی ممکن است به عنوان یک مقدار ثابت داده شوند(مقدار بیواسطه)، یا اینکه به عنوان یک محل برای مکان یابی یک مقدار، یک ثبات و یا آدرس حافظه که به وسیله گروهی از مدهای آدرس دهی تعیین می‌گردد داده شوند. در طرحهای قدیمی سهم پردازنده‌ها یی که در رمزگشایی دستورالعملها نقش داشتند از واحد سخت‌افزاری غیر قابل تغییر برخوردار بودند. اگرچه در بیشتر پردازنده‌ها و ISA‌های انتزاعی و پیچیده اغلب یک ریز برنامه دیگر جهت ترجمه دستورالعمل به صورت ترکیب سیگنالهای مختلف برای CPU ‌ها وجود دارد. این ریز برنامه گاهی قابلیت دوباره نویسی را دارد، بنابر این آنها می‌توانند برای تغییر نحوه رمز گشایی دستورالعملها حتی پش از آنکه CPU ها تولید شدند اصلاحاتی را مجدداً انجام دهند.

بلوک دياگرام يک پردازنده ساده

بعد از مراحل فراخوانی و رمزگشایی مرحله اجرای دستور انجام می‌گیرد. در طول این مرحله قسمت‌های مختلفی از پردازنده با هم مرتبط هستند و می‌توانند یک عملکرد مطلوب ایجاد کنند. برای مثال اگر یک عملکرد اضافی درخواست شود واحد محاسبه و منطق (ALU)با یک سری از ورودی‌ها و خروجی‌ها مرتبط خواهد شد. ورودی‌ها اعداد مورد نیاز برای افزوده شدن را فراهم می‌کنند و خروجیها شامل جمع نهایی اعداد می‌باشند. ALU شامل مجموعه‌ای از مدارهاست تا بتواند عملیاتهای ساده محاسباتی و منطقی را روی ورودی‌ها انجام دهد. اگر فرایند اضافی نتیجه بزرگی برای کارکرد پردازنده ایجاد کند یک پرچم سر ریز محاسباتی در ثبات پرچمها ایجاد می‌شود.

مرحله پایانی یعنی بازگشت به مکان اولیه و آمادگی برای نوشتن مجدد پس از مرحله اجرا در قسمتی از حافظه به وجود می‌آید. گاهی اوقات نتایج محاسبات در ثباتهای پردازنده‌های خارجی نوشته می‌شوند که اینکار برای دسترسی سریع به وسیله دستورهایی که بعداً به برنامه داده می‌شود انجام می‌گیرند. در حالت دیگر ممکن است نتایج با سرعت کمتری نوشته شوند اما در حجم بزرگ‌تر و ارزش کمتر، که این نتایج در حافظه اصلی ذخیره خواهند شد. برخی از دستورات شمارنده برنامه که قابل تغییر هستند نسبت به آن دسته از اطلاعاتی که مستقیما نتایج را تولید می‌کنند ترجیح داده می‌شوند. در اصل همگی این موارد خیزش نامیده می‌شوند و رفتارهایی شبیه حرکت در یک لوپ، زمان اجرای برنامه (در طول استفاده از خیزش‌های شرطی) و همچنین روند توابع در برنامه‌ها را تسهیل می‌دهند. تعداد بسیاری از دستورات وضعیت یک رقم در ثبات پرچمها را تغییر می‌دهند. این پرچمها می‌توانند برای تأثیر گذاری در چگونگی عملکرد یک برنامه مورد استفاده قرار گیرند. برای مثال یک نوع از دستورات مقایسه‌ای به مقایسه یک عدد و مقدار موجود در ثبات پرچمها رسیدگی می‌کند. این پرچم ممکن است بعداً با یک دستورالعمل جهشی برای مشخص کردن روند برنامه مورد استفاده قرار بگیرد.

بعد از اجرای دستورالعمل و نوشتن مجدد روی اطلاعات منتجه فرآیند به طور کامل تکرار می‌شود و با دستور بعدی چرخه به طور معمول مقدار بعدی را از ترتیب شمارشی فراخوانی می‌کند، که این عمل به دلیل روند افزایشی مقدار شمارنده برنامه می‌باشد. در پردازنده‌های خیلی پیچیده تر نسبت به آنچه توضیح داده شد چندین دستورالعمل قابل فراخوانی، رمز گشایی و اجرا به صورت هم‌زمان می‌باشند. این امر به طور کلی بیان می‌دارد که چه مباحثی به روش زمانبندی کلاسیک RISC مربوط می‌شود، که در حقیقت این فرایند در پردازنده‌های معمولی که در بسیاری از دستگاه‌های الکترونیکی مورد استفاده قرار می‌گیرند متداول است. (ریز کنترل کننده یا میکرو کنترولر)

تشکرات از این پست
دسترسی سریع به انجمن ها