PDA

نسخه کامل مشاهده نسخه کامل : سوال - وقفه یا IRQ



madadnoki
04-09-2010, 08:40
سلام ! کسی درمورد IRQ چیزی میدونه؟؟؟؟؟؟؟؟؟؟؟:13:

ebicross
06-09-2010, 14:15
منابع سیستمی به 4گروه IRQها، آدرسهای ورودی/خروجی،آدرسهای حافظه و کانالهای DMA تقسیم می شوند.تمامی این 4منبع سیستم به خطوط مشخصی از یک گذرگاه برد سیستم وابسته اند. بعضی از این خطوط به IRQها، بعضی به آدرسها (هم آدرسهای حافظه و هم آدرسهای ورودی/خروجی) و بعضی دیگر به کانالهای DMA اختصاص دارند.

IRQ چیست؟

خطوط در خواست وقفه (IRQ) خطوط سخت افزاری هستند كه وسایلی مثل درگاه های I/O ، صفحه كليد، ديسك درايوها و كارت شبكه می توانند وقفه يا درخواست خود را برای سرويس گرفتن از ميكروپروسسور کامپيوتر از طريق آن ارسال كنند.

خطوط در خواست وقفه جزء سخت افزار كامپيوتر هستند و با اولويتهاي متفاوت درجه بندي شده اند تا ميكروپروسسور كامپيوتر بتواند تشخيص دهد كدام وقفه مهم تر و دارای اولويت بندی است. وقتی كارت شبكه يك درخواست به كامپيوتر می فرستد از يك وقفه استفاده می كند. يعنی يك سيگنال الكترونيكی به CPU كامپيوتر فرستاده می شود. هر دستگاه كامپيوتر بايد از يك خط درخواست وقفه (IRQ) جداگانه استفاده کند. خط وقفه به هنگام پيكر بندی دستگاه مشخص می شود. در اغلب مواقع IRQ 3 يا IRQ 5 براي كارت شبكه مورد استفاده قرار می گیرد. استفاده از وقفه 5 در صورت وجود توصيه می شود،كه در اكثر سيستم ها به صورت پيش فرض براي كارت شبكه انتخاب می گردد.
زمانیکه یک دستگاه سخت افزاری برای انجام بعضی کارهای خود به CPU نیاز پیدا می کند (مثل حالتی که صفحه کلید برای تشخیص کلید فشرده شده به CPU احتیاج دارد) باید راهی را برای آشکار کردن این خواسته به CPU پیدا کند.همچنین CPU باید بداند که چه کاری برای دستگاه سخت افزاری باید انجام دهد. این نوع وقفه دادن به CPU، وقفه سخت افزاری نام دارد و دستگاه سخت افزاری با افزایش ولتاژ خط معینی از گذرگاه که به آن متصل شده، این وقفه را درخواست می کند.
این خطوط شماره گذاری شده اند و هر کدام از آنها به یک شماره درخواست وقفه یا IRQ اشاره می کند. وجود ولتاژ روی این خط به ریزپردازنده اطلاع می دهد که یک دستگاه سخت افزاری درخواستی مبنی بر پردازش داده دارد. برای اطلاع از اينكه كدام يك از IRQ ها آزاد هستند، از يك برنامه تشخيص مانند MSD و يا Noliags استفاده می شود.
در مادربرد های قدیمی، 8خط IRQ توسط یک ریزتراشه شرکت Intel که تراشه کنترل کننده وقفه (تراشه 8259اینتل) نام داشت، کنترل می شد.این تراشه مستقیما با ریزپردازنده در ارتباط بود و هنگامی که یک خط IRQ فعال می شد، به ریزپردازنده اطلاع می داد.در این حالت ریزپردازنده نمی توانست تشخیص دهد که کدام IRQ فعال شده است، چون مدیریت خطوط درخواست وقفه با کنترل کننده وقفه 8259 بود. اگر در یک لحظه بیش از یک IRQ فعال می شد، کنترل کننده وقفه، خطوط درخواست وقفه ای که کمترین مقدار را داشت برای پردازش انتخاب می کرد.مثلا اگر کاربر یک کلید از Keyboard را فشار دهد و همزمان ماوسی که روی COM1 نصب است حرکت دهد، چون صفحه کلید از IRQ1 و ماوس از IRQ4 استفاده می کند، فرایند فشرده شدن کلید قبل از حرکت ماوس پردازش می شود.
معمولا CPU با فرمانهای داده شده توسط کاربر، دستورات را تک تک اجرا می کند.این کار بطور معمول هنگام انجام عملیاتی مثل محاسبات،sortکردن داده ها و... صورت می گیرد.
اولین روشی که سیستم با استفاده از آن می تواند به ورودی دریافتی از کاربر پاسخ دهد، اینست که مرتبا چک کند که آیا ورودی از کاربر دریافت شده یا نه. به این روش Pooling می گویند.مشکلی که در این روش وجود دارد، اتلاف زمان است، چون در واقع سیکل هایی از سیستم صرف کارهای دیگر شود،هدر می رود. با استفاده از IRQ لازم نیست CPU عمل Pooling را برای پورت های I/O انجام دهد،در نتیجه سرعت سیستم بالا می رود.
اصولا وظیفه IRQ هشداردادن به ریزپردازنده است وبا یک بار درخواست وقفه کار آن تمام می شود.اما آدرس های حافظه تا وقتی که به دستگاه سرویس داده می شود، مورد استفاده قرار می گیرد.
تعداد وقفه هایی كه در سیستم مورد استفاده قرار می گیرند 256 عدد است كه از صفر تا 255 شماره گذاری می شوند.هر وقفه دارای زير برنامه ای مربوط به خود است كه می توان به آن وقفه پاسخ داد . آدرس زير برنامه های پاسخگویی به وقفه ها در جدولی به نام جدول بردار وقفه قرار دارد.وقتی وقفه ای اتفاق می افتد آدرس زير برنامه ای كه بايد به وقفه پاسخ دهد ، از جدول بردار وقفه پيدا شده،اجرای آن آغاز می شود . آدرس شروع هر زير برنامه پاسخگویی به وقفه ، بر اساس آدرس ناحيه و تفاوت مكان در آن ناحيه محاسبه می شود (يعنی آدرس شروع زير برنامه پاسخگویی وقفه ، 32 بيتی است) چون 256 وقفه ممكن است وجود داشته باشد،لذا ميزان حافظه ای كه برای جدول بردار وقفه در نظر گرفته می شود برابر با (1024 = 4*256 ) بايت است.برای پيدا كردن آدرس زير برنامه مربوط به يك وقفه ، شماره آن وقفه در 4 ضرب می شود نتيجه حاصل محلی از جدول بردار وقفه است كه آدرس زير برنامه پاسخگویی به آن وقفه را مشخص می كند.
در کامپیوتر به اجزای مختلف یک شماره مخصوص IRQ اختصاص می یابد و وقتی یکی از خطوط IRQ فعال شود، با استفاده از تنظیمات قبلی، کامپیوتر می تواند تشخیص دهد که کدام وسیله به آن Interrupt داده است. مثلا پرینتر به بعد از انجام عملیات خود، یک وقفه به سیستم ارسال می کند.این سیگنال موقتا در عملکرد کامپیوتر وقفه ایجاد می کند تا وقتی که کامپیوتر تصمیم بگیرد که چه پردازشی باید انجام دهد.
از آنجا که دو وسیله مختلف، نمیتواند بطور مشترک از یک خط IRQاستفاده کنند، بنابراین باید به هر جزء، یک شماره IRQ اختصاص داده شود. دستگاه سخت افزاری و یا نرم افزار با استفاده از وقفه ها می توانند با فرستادن یک سیگنال به CPU ارتباط را آغاز کنند.
قبل از ظهور ویژگی Plug & Play کاربر مجبور بود هنگام اضافه کردن یک وسیله جدید، مقادیر IRQ را بطور دستی تنظیم کند. باپیدایش Plug & Play این کار به صورت اتوماتیک انجام می شود.


تعویض شماره IRQ با استفاده از جامپر:

اکثر کارتهای افزودنی از این ویژگی و یا پیکربندی نرم افزاری برای پیکربندی خود استفاده می کنند. تقریبا همه کارتهای PCI و ISA این خاصیت را دارند.گاهی اوقات با کارتهایی مواجه می شویم که برای کنترل تنظیمات خود از جامپر استفاده می کنند.
کارتهای ISA نمی توانند بطور مشترک از خطوط IRQ استفاده کنند.

تعویض شماره IRQ به صورت نرم افزاری:
کارت هایی که از این روش استفاده می کنند، حد واسط بین کارتهای با جامپر و کارتهای PnP هستند. در این روش، بدون برداشتن درپوش کیس و کارت، می توان پیکربندی آنرا تغییر داد، ولی این کارتها بخوبی کارتهای PnP نیستند.
برای تست اینگونه کارتها، ابتدا کارت را در اسلات قرار داده و پس از آن برنامه پیکربندی را از نرم افزار مربوطه اجرا می کند. پس از نصب و اجرا،تنظیمات مربوط به IRQ کارت می تواند تنظیم شود.

*وقتی دو وسیله روی یک Bus قرار گرفته باشند، و این گذرگاه از نوع PCI,EISAباشد، این دو وسیله می توانند از یک IRQ استفاده کنند.







انواع IRQ :



تایمر سیستم IRQ 0à


کنترلر صفحه کلیدIRQ 1à


کنترلر اینتراپت ثانویه که بصورت Cascade استفاده شده استIRQ 2à


IRQ 3à COM1


IRQ 4à COM2


صدا/IRQ 5à LPT2


کنترلر فلاپی IRQ 6à


IRQ 7à LPT 1


IRQ 8à Real Time Clock


قابل استفاده توسط کاربرIRQ 9/10/11 à


ماوسIRQ 12à PS/2,


کمک پردازنده ریاضیIRQ 13à


کنترلر هارد دیسک اولیه IRQ 14à


کنترلر هارد دیسک ثانویهIRQ 15à


منبع: J.Kh

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید