شماره وقفه irq برای چه مواردی استفاده می شود. وقفه های سیستم ، پردازنده را بارگیری می کند

تعارض وضعیتی است که در آن چندین شیء به طور همزمان سعی می کنند به منبعی دسترسی داشته باشند که فقط برای یکی از آنها در نظر گرفته شده است. تضاد وقفه زمانی رخ می دهد که چندین دستگاه از خط وقفه یکسانی برای ارسال سیگنال درخواست استفاده می کنند و مکانیزمی برای رسیدگی به درخواست های همزمان وجود ندارد. اگر راننده ، کنترل را دریافت می کند ، با دستگاهی که درخواست را ارسال کرده است کار نمی کند ، یا خرابی رخ می دهد ، یا یکی از دستگاه ها به سادگی کار نمی کند.

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

گذرگاه PCI محلی با در نظر گرفتن اشتراک وقفه طراحی شده است. هر دستگاه PCI باید به طور صحیح در خط وقفه مشابه با سایر دستگاه های PCI کار کند. این به روش زیر انجام می شود: واقعیت وجود یک سیگنال در خط وقفه توسط لبه تعیین نمی شود ، یعنی تغییر در سطح ولتاژ ، اما به دلیل وجود یک ولتاژ خاص. چندین دستگاه می توانند ولتاژ خط را به طور همزمان تغییر دهند و در صف سرویس قرار گیرند.

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

برنج. Win2000 Device Manager IRQ Map - IO PIC Intel 440BX Chipset

برنج. Win2000 IRQ MAP - IO APIC - از طریق چیپست KT266a

در نتیجه ، شرایطی ممکن است وجود داشته باشد که کامپیوتر شروع به یخ زدن مکرر می کند ، از انجام هرگونه عملکرد خودداری می کند ، یا حتی به سادگی به اصطلاح می افتد. صفحه آبیمرگ".

Apic (کنترل کننده وقفه قابل برنامه ریزی پیشرفته)

همانطور که در بالا نشان داده شد ، خط وقفه یک منبع بسیار کمیاب برای رایانه است. با این حال ، با توسعه صنعت رایانه ، تعداد دستگاه های مختلف خارجی در رایانه دائما در حال افزایش است. به عنوان مثال ، یک مادربرد می تواند دارای 5-6 اسلات PCI ، شکاف AGP ، کنترلر IDE داخلی ، کنترلر SCSI داخلی ، آداپتور داخلی 1/2 پورت داخلی و غیره باشد و همه این دستگاه ها نیاز به وقفه دارند. 16 خط IRQ به تدریج فاقد آن بود.

APICاین یک کنترل کننده وقفه است که به شما امکان می دهد به جای 16 از 24 وقفه سخت افزاری استفاده کنید. محدودیت 16 وقفه سخت افزاری ، بدون تغییر از 1982 ، مانع از نصب دستگاه های اضافی در رایانه شخصی می شود. در پایان سال 2001 ، اولین مادربردهای دارای APIC ظاهر شدند.

برنج. وقفه سیستم در محیط چند پردازنده

توضیحات قبلی مربوط به PIC هایی بود که برای سیستم های تک پردازنده طراحی شده بودند. اگر سیستم شامل دو یا چند پردازنده باشد ، این روش دیگر مجاز نیست و به PIC های پیچیده تری نیاز است.

همه چيز پردازنده های مدرن x86 شامل APIC محلی است. هر APIC محلی دارای رجیسترهای 32 بیتی ، یک ساعت داخلی ، یک تایمر محلی و دو خط IRQ اضافی ، LINT0 و LINT1 است که برای وقفه های APIC محلی ذخیره شده است. همه APIC های محلی به یک APIC I / O خارجی متصل هستند.

APIC I / O شامل مجموعه ای از 24 خط IRQ ، یک جدول مسیریابی وقفه 24 ورودی ، ثبت کننده های قابل برنامه ریزی و یک بلوک پیام برای ارسال و دریافت پیام در گذرگاه APIC است. بر خلاف پین های IRQ 8259A ، اولویت وقفه به شماره پین ​​گره نمی خورد.

هر ورودی در جدول مسیریابی وقفه را می توان به صورت جداگانه برنامه ریزی کرد تا بردار وقفه و اولویت آن ، پردازنده ای که وقفه را کنترل می کند و نحوه انتخاب این پردازنده نمایش داده شود. اطلاعات موجود در جدول مسیریابی وقفه برای تبدیل هر سیگنال خارجی به پیامی خطاب به یک یا چند APIC محلی در گذرگاه APIC استفاده می شود.

توزیع استاتیک

سیگنال IRQ به APIC های محلی ارائه شده در ورودی جدول تغییر مسیر IRQ مناسب تحویل داده می شود. وقفه به یک CPU خاص ، چند CPU یا همه CPU تحویل داده می شود.

تخصیص پویا

سیگنال IRQ به APIC محلی پردازنده تحویل داده می شود ، که این فرایند را با کمترین اولویت اجرا می کند.

هر APIC محلی دارای یک ثبت اولویت شغلی قابل برنامه ریزی است که برای محاسبه اولویت فرآیند فعلی استفاده می شود. اینتل انتظار دارد که این رجیستر توسط هسته سیستم عامل در هر سوئیچ پردازش اصلاح شود.

سیستم چند APIC علاوه بر توقف وقفه ها در بین پردازنده ها ، به CPU اجازه می دهد تا وقفه های بین پردازنده را ایجاد کند. هنگامی که یک پردازنده می خواهد وقفه ای را به پردازنده دیگر ارسال کند ، بردار وقفه و شناسه APIC محلی مورد نظر را در ثبت فرمان وقفه (ICR) APIC محلی خود ذخیره می کند. سپس پیام از طریق گذرگاه APIC به APIC محلی مورد نظر ارسال می شود ، که وقفه مناسب را به CPU آن می دهد.

بسیاری از سیستم های تک پردازنده در حال حاضر دارای تراشه APIC ورودی / خروجی هستند که می تواند به دو صورت پیکربندی شود:

1. به عنوان یک PIC استاندارد 8259A متصل به CPU. APIC محلی غیرفعال است و دو خط LINT0 و LINT1 به عنوان پین INTR و NMI پیکربندی شده اند.

2. به عنوان یک APIC استاندارد I / O خارجی. APIC محلی فعال است و همه وقفه های خارجی از طریق APIC I / O دریافت می شوند.

  • علیوا النا ویکتوروونا، دانشجو
  • دانشگاه فنی هوانوردی دولتی اوفا
  • کنترل کننده تداخل
  • کنترل کننده
  • تداخل های سخت افزاری
  • وقفه

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

  • اتوماسیون جریان اسناد در انبار یک شرکت تولیدی
  • فراخوانی ها ، فناوری ها ، ویژگی ها ، کاربرد و کارایی
  • توسعه مدل سیستم اطلاعاتی بخش حقوقی برای پشتیبانی و انعقاد قرارداد شرکت

معرفی

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

مکانیسم وقفه در سطح سخت افزار پشتیبانی می شود. بسته به منبع ، وقفه ها به موارد زیر تقسیم می شوند:

  • سخت افزار- به عنوان واکنش ریزپردازنده به سیگنال فیزیکی برخی از دستگاهها (صفحه کلید ، ساعت سیستم ، صفحه کلید ، هارد دیسک و غیره) بوجود می آید ، این وقفه ها در زمان وقوع ناهمزمان هستند ، به عنوان مثال در زمانهای تصادفی رخ می دهد ؛
  • برنامه ای- به طور مصنوعی با کمک فرمان مربوطه از برنامه (int) فراخوانی می شوند ، برای انجام برخی از اقدامات سیستم عامل در نظر گرفته شده اند ، همزمان هستند.
  • استثناها- واکنش ریزپردازنده به یک وضعیت غیر استاندارد است که در حین اجرای یک دستور برنامه خاص در داخل ریزپردازنده بوجود آمده است (تقسیم بر صفر ، وقفه با پرچم TF (ردیابی)).

قطع سخت افزار سیستم

سیستم وقفه مجموعه ای از نرم افزار و سخت افزار است که مکانیسم وقفه را پیاده سازی می کند.

سخت افزار سیستم وقفه شامل موارد زیر است:

  • خروجی های ریزپردازنده - سیگنال هایی روی آنها ایجاد می شود که به ریزپردازنده اطلاع می دهند که دستگاه خارجی "درخواست توجه می کند" (INTR) یا پردازش فوری برخی از رویدادها یا خطاهای فاجعه بار (NMI) مورد نیاز است.
  • INTR - پین برای سیگنال ورودی درخواست وقفه ،
  • NMI - پین برای سیگنال ورودی وقفه بدون ماسک
  • INTA - خروجی برای سیگنال خروجی تأیید دریافت سیگنال وقفه توسط ریزپردازنده (این سیگنال به ورودی با همان نام میکروسیستم کنترل کننده 8259A تغذیه می شود ؛
  • 8259A کنترل کننده وقفه قابل برنامه ریزی (برای رفع سیگنال های وقفه از هشت دستگاه مختلف خارجی طراحی شده است ؛ این دستگاه به شکل یک میکرو مدار ساخته شده است ؛ معمولاً از دو میکرو مدار متصل به سریال استفاده می شود ، بنابراین شماره منابع احتمالیوقفه های خارجی تا 15 بعلاوه یک وقفه بدون ماسک ؛ این است که شماره بردار وقفه را تشکیل می دهد و گذرگاه داده آن را صادر می کند) ؛
  • دستگاه های خارجی (تایمر ، صفحه کلید ، دیسک های مغناطیسیو غیره.)

دست زدن به کار

وقفه باعث ایجاد یک سری رویدادها می شود که در سخت افزار و نرم افزار... در شکل 1 دنباله ای معمولی از این رویدادها را نشان می دهد.

هنگامی که دستگاه ورودی / خروجی به پایان رسید ، موارد زیر رخ می دهد:

  • دستگاه سیگنال وقفه را به پردازنده ارسال می کند.
  • قبل از پاسخ به وقفه ، پردازنده باید اجرای دستور فعلی را تکمیل کند (شکل 1 را ببینید).
  • پردازنده وجود وقفه را بررسی می کند ، آن را تشخیص می دهد و دستگاهی را که این وقفه را ارسال کرده است ارسال می کند و سیگنال دریافت موفقیت آمیز را اعلام می کند. این سیگنال به دستگاه اجازه می دهد تا سیگنال وقفه خود را پاک کند.
شکل 1. زمانبندی برنامه: ورودی / خروجی آهسته

اکنون پردازنده باید آماده انتقال کنترل به کنترل کننده وقفه شود. ابتدا باید همه را ذخیره کنید اطلاعات مهم، به طوری که بعداً می توانید به محل برنامه فعلی که در آن متوقف شده بود ، بازگردید. حداقل اطلاعات مورد نیاز عبارت برنامه و آدرس دستور اجرا شده بعدی است که در شمارنده برنامه قرار دارد. این داده ها به پشته کنترل سیستم منتقل می شوند.

شکل 2. مدیریت یک وقفه ساده

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

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

محتویات شمارنده برنامه و کلمه وضعیت برنامه در حال قطع شدن از قبل در پشته سیستم ذخیره شده است. با این حال ، این همه اطلاعات مربوط به وضعیت برنامه اجرایی نیست. به عنوان مثال ، شما باید محتویات رجیسترهای پردازنده را ذخیره کنید ، زیرا ممکن است این رجیسترها توسط کنترل کننده وقفه مورد نیاز باشند. بنابراین ، لازم است تمام اطلاعات مربوط به وضعیت برنامه ذخیره شود. به طور معمول ، یک کنترل کننده وقفه با نوشتن محتویات همه ثبات ها روی پشته شروع می کند. سایر اطلاعاتی که باید حفظ شوند در فصل 3 ، "توصیف و کنترل فرایندها" مورد بحث قرار گرفته است. در شکل یک مثال ساده نشان داده می شود که در آن برنامه کاربر پس از اجرای فرمان از سلول N قطع می شود. محتویات همه ثباتها و همچنین آدرس دستور بعدی (N + 1) ، در کل ، کلمات M را تشکیل می دهند روی پشته هل داد سپس نشانگر پشته به روز می شود تا به قسمت بالای پشته اشاره کند. شمارنده برنامه نیز به روز می شود تا شروع روال وقفه را نشان دهد.

کنترل کننده وقفه اکنون می تواند کار خود را شروع کند. مدیریت وقفه شامل بررسی اطلاعات وضعیت مربوط به عملیات ورودی و خروجی یا سایر رویدادهایی است که باعث وقفه شده است. این ممکن است شامل ارسال دستورالعمل های اضافی یا پیام های اعلان به دستگاه های ورودی / خروجی باشد.

پس از اتمام پردازش وقفه ، مقادیر ذخیره شده قبلی از پشته خارج می شوند ، که مجدداً در رجیسترها قرار می گیرند ، بنابراین وضعیت قبل از وقفه را از سر می گیرند.

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

با توجه به این که وقفه یک روال فرعی از برنامه نیست ، حفظ تمام اطلاعات حالت برنامه قطع شده برای بازیابی کامل مهم است. با این حال ، وقفه می تواند در هر زمان و هر کجا در برنامه کاربر رخ دهد. این رویداد غیرقابل پیش بینی است.

کنترل کننده وقفه

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

همانطور که در بالا ذکر شد ، وقفه ها دارای اولویت خاصی هستند ، که به کنترل کننده های وقفه اجازه می دهد در زمان معینی یک دستگاه را بر دستگاه دیگر ترجیح دهند. در یک رایانه مدرن ، حداکثر 16 دستگاه خارجی و دستگاه های جانبیایجاد وقفه این دستگاهها عبارتند از:
–IRQ 0 ، تایمر سیستم ؛ –IRQ 1 ، صفحه کلید ؛ –IRQ 2 ، برای پرس و جو از دستگاه های متصل به آبشار استفاده می شود. –IRQ 8 ، ساعت زمان واقعی ؛ –IRQ 9 ، محفوظ است ؛ –IRQ 10 ، محفوظ است ؛ –IRQ 11 ، محفوظ است ؛ –IRQ 12 ، ps / 2 - موس ؛ –IRQ 13 ، هم پردازنده ؛ –IRQ 14 ، کنترل کننده هارد دیسک ؛ –IRQ 15 ، محفوظ است ؛ –IRQ 3 ، پورت COM2 ، COM4 ؛ –IRQ 4 ، پورت COM1 ، COM3 ؛ –IRQ 5 ، پورت LPT2 ؛ –IRQ 6 ، کنترل کننده درایو فلاپی ؛ –IRQ 7 ، درگاه LPT1 ، چاپگر.

در اینجا سیگنالها به ترتیب اولویت نزولی فهرست شده اند. می بینید که پس از IRQ 2 و به دنبال آن IRQ 8. واقعیت این است که در یک زمان کنترل کننده وقفه شامل دو میکرو مدار بود که یکی به دیگری متصل بود. این میکرو مدار دوم به خط IRQ 2 متصل شده و آبشار را تشکیل می دهد. این خطوط IRQ8 - IRQ 15 را ارائه می دهد. و سپس خطوط اولین میکرو مدار دنبال می شود.

عملکرد کنترل کننده را قطع کنید

کنترل کننده های وقفهبر اساس تراشه در نظر گرفته می شود اینتل 8259A ، که در رایانه های بسیار قدیمی با پردازنده های سری 386 استفاده می شد. این رایانه ها معمولاً دارای 2 تراشه 8259A در آبشار بودند ، یعنی یکی به دیگری. یکی از ریز مدارهایی که از طریق خط درخواست وقفه مستقیماً به پردازنده متصل می شوند ، master یا master است. بقیه ، که از طریق پین های مشابه به استاد متصل شده اند ، برده نامیده می شوند.


شکل 3. نمودار اتصال کنترل کننده های وقفه و تعامل آنها با پردازنده مرکزی

شکل 3 نمودار اتصال کنترل کننده های وقفه و تعامل آنها با پردازنده مرکزی را نشان می دهد. سیگنال های وقفه از دستگاه های جانبی یا کنترل کننده های برده به ورودی های IR0 - IR7 کنترلر اصلی ارسال می شود. منطق داخلی کنترلر اصلی ، درخواست های ورودی را از نظر اولویت پردازش می کند. اگر اولویت درخواست دستگاه کافی باشد ، در خروجی INT کنترلر سیگنالی تولید می شود که به ورودی INTR پردازنده تغذیه می شود. در غیر این صورت ، درخواست مسدود می شود.

اگر پردازنده اجازه وقفه بدهد ، پس از اتمام اجرای دستور فعلی ، توالی سیگنالها را در خط INTA ایجاد می کند که باعث می شود کنترل کننده برده در برابر درخواستهای وقفه ورودی جدید ، و علاوه بر این ، اطلاعاتی از رجیسترهای داخلی کنترل کننده مصون باشد. از رجیسترهای داخلی کنترل کننده به خط داده خروجی داده می شود که توسط آن پردازنده نوع وقفه را تشخیص می دهد.

پردازنده اجازه وقفه را از طریق کنترلر گذرگاه به کنترل کننده وقفه منتقل می کند. سیگنال RD برای کنترل کننده وقفه در نظر گرفته شده است تا محتویات رجیسترهای داخلی را روی گذرگاه داده قرار دهد. برعکس ، در سیگنال WR ، کنترل کننده وقفه ، داده ها را از گذرگاه با همان نام دریافت می کند و آنها را در رجیسترهای داخلی می نویسد. بر این اساس ، این بر نحوه عملکرد کنترل کننده وقفه تأثیر می گذارد.

ورودی CS به گذرگاه آدرس متصل است و این سیگنال برای شناسایی کنترل کننده وقفه خاص استفاده می شود. ورودی A0 به پورت کنترل وقفه در فضای ورودی / خروجی اشاره می کند.

ورودی های IR0 - IR7 برای دریافت درخواست های وقفه از دستگاه های جانبی و کنترل کننده های برده طراحی شده اند.

خروجی CAS0 - CAS2 برای شناسایی یک کنترل کننده برده خاص طراحی شده است.

مقاله به وقفه های سخت افزاری و دستگاه ، عملکردها ، عملکرد کنترل کننده وقفه. این کنترلروقفه ها در اولین رایانه های سازگار با رایانه ظاهر شدند. از آن زمان ، هر دو پردازنده و خود کامپیوتر تغییرات زیادی کرده اند ، اگرچه برخی نکات باقی مانده است. بنابراین ، برای روشن تر شدن و سازماندهی کنترل کننده وقفه 8295A در نظر گرفته شد.

نمودار بالا سیگنال هایی را نشان می دهد که نه تنها به کنترل کننده های برنده و اصلی ، بلکه به سایر برده ها نیز می رسد. با این حال ، رایانه یا لپ تاپ شما همانطور که در بالا گفته شد دارای 2 کنترل کننده وقفه است: master و slave. اما شما می توانید خود را ایجاد کنید سیستم های کامپیوتریبنابراین تا 64 کنترل کننده وقفه برده استفاده می شود.

در رایانه های مدرن برای مدت طولانی توقف عملکردهای کنترل کنندهاین microcircuts 8259A نیست که انجام می شود ، بلکه پل جنوبی است. با این حال ، برای همه برنامه ها و دستگاه ها ، همه چیز یکسان است. علاوه بر این ، کنترل کننده وقفه قابل برنامه ریزی است و باید به رجیسترها و پورت های داخلی همانند کنترلر 8259A دسترسی داشت.

نتیجه

در این مقاله ، وقفه ها ، یعنی دست زدن به وقفه های سخت افزاری و اصل دست زدن به وقفه ها در نظر گرفته شده است. همچنین کنترل کننده های وقفه و اصل عملکرد آنها در نظر گرفته شده است.

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

کنترل کننده وقفهطراحی شده برای پردازش و داوری درخواست های سرویس ورودی به پردازنده مرکزی از دستگاه های جانبی. وقفه ها دارای اولویت خاصی هستند ، که اجازه می دهد کنترل کننده وقفهدر یک زمان معین ، یک دستگاه را بر دستگاه دیگر ترجیح دهید. در یک رایانه مدرن ، حداکثر 16 دستگاه خارجی و محیطی وجود دارد که وقفه ایجاد می کنند.

کتابشناسی - فهرست کتب

  1. سخنرانی. قطع می کند. پست الکترونیک منبع http://hromatron.narod.ru/_lekcii/prerivania_lekcia_g2013.htm
  2. وقفه سیستم | وقفه سخت افزاری | مدیریت وقفه http://life-prog.ru/view_os.php؟id=16
  3. کنترل کننده وقفه پست الکترونیک منبع http://sdelaycomputersam.ru/Controller_irq.php ،
  4. قطع می کند. کنترل کننده وقفه دستگاه ، عملکردها ، کار. پست الکترونیک منبع http://sdelaycomputersam.ru/Controller_irq.php
  5. ساختار و راه اندازی E-source کنترل کننده وقفه Intel 8259A https://dev64.wordpress.com/2012/05/30/8259-programming/
خوب است که پس از مونتاژ یا مدرن سازی برنامه ریزی شده ، رایانه راه اندازی شده و برای اولین بار به طور پایدار و بدون اشکال کار می کند. در صورت بروز مشکلات غیرمنتظره بسیار بدتر است - راه اندازی مجدد خودکار و یخ زدن ، خرابی برنامه ، عدم کارکرد یا "نامرئی بودن" دستگاه ها و غیره. اولین دلیلی که معمولاً در این مورد به ذهن می رسد یک درگیری وقفه است. آیا ماهیت این پدیده را به خوبی می شناسیم ، آیا آمادگی کافی برای مبارزه با آن را داریم؟

IRQ چیست؟
وقفه ها مکانیسم اصلی واکنش سیستم به رویدادهای نوظهور هستند. وقفه های سخت افزاری که معمولاً IRQ نامیده می شوند (InterQuest ReQuest) ، هستند سیگنال های فیزیکی، که به کمک آن کنترل کننده دستگاه نیاز پردازش برخی درخواست ها را به پردازنده اطلاع می دهد. به طور معمول ، طرح دست زدن به وقفه به شرح زیر است:
1) پردازنده یک سیگنال وقفه و شماره آن را دریافت می کند.
2) از یک جدول ویژه برای یافتن آدرس برنامه مسئول پردازش وقفه با شماره داده شده استفاده می شود - کنترل کننده وقفه ؛
3) پردازنده تعلیق می کند شغل فعلیو به اجرای کنترل کننده می رود (در حالت کلی ، این نوعی راننده است) ؛
4) راننده به دستگاه دسترسی پیدا می کند و علت وقفه را بررسی می کند.
5) اقدامات درخواست شده راه اندازی می شوند - راه اندازی اولیه ، پیکربندی دستگاه ، تبادل داده و غیره.
6) راننده خارج می شود و پردازنده به کار قطع شده باز می گردد.
بدیهی است ، برای عملکرد صحیح مکانیزم وقفه ، دو شرط باید رعایت شود: اولاً ، سیگنال درخواست باید به پردازنده برسد و ثانیاً ، راننده هندلر باید به این سیگنال به درستی پاسخ دهد. در صورت درگیری ، شرط دوم برآورده نمی شود: سیگنال وقفه می رسد ، اما واکنش به آن نادرست است ، در نتیجه ما (در بهترین حالت) یک دستگاه غیرفعال داریم.

تعارض
می توان گفت که تعارض وضعیتی است که در آن چندین شیء به طور همزمان سعی می کنند به منبعی دسترسی داشته باشند که فقط برای یکی از آنها در نظر گرفته شده است. نزاع وقفه زمانی رخ می دهد که چندین دستگاه از خط وقفه یکسان برای ارسال سیگنال درخواست استفاده می کنند و هیچ مکانیزمی برای رسیدگی به درخواست های همزمان وجود ندارد. اگر راننده ، کنترل را دریافت می کند ، با دستگاهی که درخواست را ارسال کرده است کار نمی کند ، یا خرابی رخ می دهد ، یا یکی از دستگاه ها به سادگی کار نمی کند.
این سال پیش می آید: آیا چندین دستگاه می توانند از خط وقفه یکسان استفاده کنند ، یا در اصل غیرممکن است؟ پس از همه ، اگر راننده بتواند تعیین کند که دقیقاً درخواست از چه کسی آمده است ، آنگاه به سیگنالهای دستگاه "خود" پاسخ می دهد ، بدون توجه به سایر موارد. اما این باید به نحوی از قبل تعیین شود ، در غیر این صورت درگیری اجتناب ناپذیر است.
گذرگاه PCI محلی با در نظر گرفتن اشتراک وقفه طراحی شده است. هر دستگاه PCI باید به طور صحیح در خط وقفه مشابه با سایر دستگاه های PCI کار کند. این به روش زیر انجام می شود: واقعیت وجود یک سیگنال در خط وقفه توسط لبه تعیین نمی شود ، یعنی تغییر در سطح ولتاژ ، اما به دلیل وجود یک ولتاژ خاص. چندین دستگاه می توانند ولتاژ خط را به طور همزمان تغییر دهند و در صف سرویس قرار گیرند.
بنابراین ، به اشتراک گذاشتن IRQ یکسان در بین چندین دستگاه PCI تعریفی نیست. با این حال ، گاهی اوقات مشکلاتی بوجود می آید. اول ، همه دستگاههای PCI به طور صحیح در خط وقفه یکسان با دیگران کار نمی کنند. ثانیاً ، گاهی اوقات درایورها خطاهایی دارند که به دلیل آنها نمی توانند منبع سیگنال را به درستی تعیین کنند و با سایر درایورها تداخل ایجاد می کنند. ثالثاً ، همه دستگاهها روی گذرگاه PCI کار نمی کنند. به عنوان مثال ، دستگاه های ISA ، که شامل ، برای مثال ، کنترل کننده های پورت COM / LPT هستند ، نمی توانند وقفه ها را با دیگران به اشتراک بگذارند. برای روشن شدن نحوه اجتناب یا حل و فصل تعارضات ، باید نحوه مدیریت IRQ ها را درک کنید.

وقفه های سخت افزاری در رایانه شخصی
همانطور که می دانید، کامپیوترهای شخصیبا کامپیوتر IBM شروع شد معماری آن شامل هشت خط قطع سخت افزاری (IRQ) بود که توسط کنترلر خاصی کنترل می شدند. به هریک از آنها تعدادی اختصاص داده شد که اولویت وقفه و آدرس کنترل کننده آن (به اصطلاح بردار وقفه) را تعیین می کرد. معماری جدید ، IBM PC AT ، هشت خط وقفه دیگر را ارائه کرد که برای آنها از کنترلر دوم استفاده شده بود که به یکی از خطوط وقفه کنترلر اول متصل شده بود. متأسفانه ، این معماری آخرین مورد پس از آن بود که IBM توانایی مدیریت توسعه پلتفرمی را که ایجاد کرده بود از دست داد ، بنابراین همه رایانه های مدرن هنوز فقط شانزده وقفه دارند که یکی از آنها توسط کنترلر دوم استفاده می شود.
کامپیوتر IBM PC AT فقط یک گذرگاه داشت که دستگاه ها می توانستند با پردازنده و حافظه ارتباط برقرار کنند - ISA. بیشتر خطوط وقفه به دستگاههای استاندارد ISA اختصاص داده شد ، بقیه برای آینده محفوظ بود. با آمدن این آینده ، مشخص شد که جدید است اتوبوس جهانی PCI فقط چهار وقفه رایگان دریافت کرد. بنابراین ، مکانیسم هوشمندی برای به اشتراک گذاری وقفه ها (IRQ Sharing) و تعریف پویای اعداد (IRQ Steering یا Mapping) ابداع شد.
ماهیت مکانیسم کنترل وقفه دستگاه PCI به شرح زیر است. به طور کلی ، چهار خط وقفه فیزیکی PCI به نام PIRQ0 ، PIRQ1 ، PIRQ2 و PIRQ3 وجود دارد. آنها به کنترل کننده وقفه متصل می شوند. به نظر می رسد که هر دستگاه PCI دارای چهار کانکتور به نام های INT A ، INT B ، INT C و INT D. می باشد. شما می توانید خطوط را به هر ترتیب به کانکتورها وصل کنید. به عنوان مثال ، برای اولین شکاف PCI ، می توانید سیم کشی زیر را انجام دهید: PIRQ0 - INT A ، PIRQ1 - INT B ، PIRQ2 - INT C ، PIRQ3 - INT D. و در مورد دوم - به روشی متفاوت: PIRQ0 - INT B ، PIRQ1 - INT C ، PIRQ2 - INT D ، PIRQ3 - INT A. معمولاً دستگاه فقط به یک خط وقفه متصل به INT A نیاز دارد. هنگامی که در شکاف اول نصب می شود ، دستگاه از خط PIRQ0 استفاده می کند ، و در شکاف دوم ، خط PIRQ1 روی همان پین قرار می گیرد. بنابراین ، دستگاه هایی که دارای شکاف های مختلف هستند از خطوط وقفه فیزیکی متفاوتی استفاده خواهند کرد. درگیری سخت افزاری بین آنها برطرف می شود.
گذرگاه AGP ، در واقع یک اصلاح PCI تخصصی است ، همچنین از یکی از خطوط PIRQ - معمولاً PIRQ0 استفاده می کند.
برای سیستم های مدرن ، چهار خط کافی نیست ، بنابراین چیپست های جدید اغلب از هشت خط PIRQ استفاده می کنند که به صورت یکسان در ترکیب های مختلف به اسلات PCI و دستگاه های پردازنده متصل می شوند.
خطوط PIRQ به کنترل کننده وقفه متصل می شوند. به آنها ، مانند خطوط دیگر ، شماره های منطقی IRQ اختصاص داده می شود. اگر چندین دستگاه در یک خط فیزیکی یکسان (و این مجاز است) وجود داشته باشد ، همه آنها شماره IRQ یکسانی خواهند داشت. اگر دستگاه ها روی خطوط فیزیکی متفاوتی قرار دارند ، می توانند شماره IRQ یکسانی دریافت کنند. رانندگان معمولی به آنها اجازه می دهند آزادانه بدون افت عملکرد کار کنند ، زیرا گذرگاه PCI هنوز فقط توسط یک دستگاه قابل ضبط است. نکته اصلی این است که تشخیص دهیم سیگنال از کدام دستگاه آمده است.
شماره های خط PIRQ به لطف مکانیسم بدنام Plug & Play به طور خودکار تعیین می شوند. اما دستگاه های Plug & Play ISA نیز وجود دارد. آنها همچنین می توانند به طور خودکار شماره IRQ را بدست آورند. اما خط وقفه آنها منحصراً به آنها تعلق دارد و اگر یکی از خطوط PIRQ همین تعداد را بدست آورد ، درگیری نامحلول بوجود می آید.
بنابراین ما متوجه شدیم که دستگاه های PCI باید عاری از مسائل درگیری IRQ باشند. البته اگر آنها به درستی کار کنند ، و این همیشه صادق نیست. علاوه بر این ، رانندگان باید از مکانیزم اشتراک گذاری وقفه پشتیبانی کنند. دستگاه های ISA نمی دانند چگونه خطوط وقفه را به اشتراک بگذارند و بنابراین محرک های درگیری هستند. بنابراین ، مشکل حذف درگیری ها به تخصیص صحیح اعداد برمی گردد (منبع مشکلات دستگاه های ISA و درایورهای "کج" هستند) یا به تفکیک در خطوط مختلف فیزیکی (کنترل کننده های "کج" PCI).
بیایید نگاه کنیم که چگونه اعداد در سیستم تخصیص داده شده اند و چگونه می توانیم بر این فرایند تأثیر بگذاریم.

قطع نقشه
همانطور که گفتم ، اکثر شماره های IRQ قبلاً توسط دستگاه های استاندارد اشغال شده اند ، یا بهتر است بگوییم ، به خطوط وقفه خود اختصاص داده شده اند. بیایید ترتیب را مرور کنیم:
0 - تایمر سیستم (شماره همیشه مشغول است) ؛
1 - صفحه کلید (شماره همیشه مشغول است) ؛
2 - کنترل کننده وقفه دوم (همیشه مشغول است) ؛
3 - پورت COM2 (می توان آن را غیرفعال کرد و شماره را می توان آزاد کرد) ؛
4 - پورت COM1 (می توان آن را غیرفعال کرد و شماره را می توان آزاد کرد) ؛
5 - پورت LPT2 (معمولاً شماره رایگان است) ؛
6 - کنترل کننده فلاپی دیسک (می توان آن را غیرفعال و شماره را آزاد کرد) ؛
7 - پورت LPT1 (اگر در حالت EPP یا ECP نیست ، پس شماره رایگان است) ؛
8 - ساعت واقعی (همیشه مشغول) ؛
9 - رایگان ؛
10 - رایگان ؛
11 - رایگان ؛
12 - موس PS / 2 (در صورت وجود چنین ماوس رایگان است) ؛
13 - پردازنده (همیشه مشغول است) ؛
14 و 15 - کنترل کننده دیسکهای سخت(می توان آن را غیرفعال کرد و شماره خالی شد).
در یک سیستم معمولی ، شماره های 5 ، 7 ، 9-11 در دسترس است ، یعنی پنج از پانزده. علاوه بر این ، می توانید با خیال راحت پورت های COM2 و LPT1 را غیرفعال کنید و تعداد شماره های رایگان را به هفت افزایش دهید. رایگان به این معنا نیست که آنها مشغول نیستند ، فقط این است که امکان جابجایی رایگان بین آنها وجود دارد.
هر سیستمی دارای سه دستگاه استاندارد PCI است - ACPI ، کنترل کننده های USB و یک کارت ویدیو ، که هر کدام یک عدد خواهند داشت. یک دستگاه پیچیده (به عنوان مثال ، کارت صدا) ممکن است به چندین خط نیاز داشته باشد - INT A ، INT B و غیره. برای اجزای آنها ، که با یکدیگر (پس از همه ، خطوط فیزیکی مختلف) در تضاد نیستند ، اما با سایر دستگاهها - به راحتی.
می توانید نحوه توزیع اعداد وقفه را از چند طریق دریابید. در ابتدای راه اندازی کامپیوتر ، یک جدول پیکربندی متن ظاهر می شود. درست بعد از آن لیستی از دستگاه های PCI با شماره IRQ اختصاص داده شده وجود دارد (به تصویر صفحه مراجعه کنید). روش دیگر در ویندوز 9x کار می کند. یک نماد "System" در کنترل پنل و برگه "Devices" در اپلت نامیده شده وجود دارد. ما ویژگی های دستگاه "رایانه" را انتخاب می کنیم و همه دستگاه ها در آنجا فهرست می شوند و IRQ آنها را نشان می دهد (به تصویر صفحه مراجعه کنید).
در ویندوز 2000 ، ما به مدیریت وقفه دسترسی نداریم ، بنابراین برای مشاهده لیست IRQ ، باید از ابزار استاندارد اطلاعات (کنترل پنل / ابزارهای اداری / مدیریت کامپیوتر / اطلاعات سیستم / منابع سخت افزار) استفاده کنیم.

تخصیص BIOS IRQ
در سیستم ، شماره های IRQ دو بار بین خطوط فیزیکی تخصیص داده می شود. اولین بار این کار را BIOS سیستم هنگام بوت سیستم انجام می دهد. به هر دستگاه Plug & Play (همه PCI ، ISA مدرن ، دستگاههای یکپارچه) ، یا بهتر است خط وقفه آن ، از ده شماره ممکن ، یک عدد اختصاص داده شود. اگر اعداد کافی وجود نداشته باشد ، چندین خط یک خط مشترک به دست می آورند. اگر این خطوط PIRQ هستند ، اشکالی ندارد - در حضور درایورهای معمولی و پشتیبانی سیستم عامل (برای اطلاعات بیشتر در این مورد به زیر مراجعه کنید) ، همه چیز کار می کند. و اگر چندین دستگاه ISA یا دستگاه های PCI و ISA یکسان باشند ، درگیری به سادگی اجتناب ناپذیر است ، و سپس باید در فرایند توزیع مداخله کرد.
اول از همه ، شما باید همه دستگاههای ISA بلااستفاده را غیرفعال کنید (در سیستمهای بدون شکاف ISA ، آنها نیز وجود دارند) - پورت های COM1 ، COM2 و درایو فلاپی. همچنین می توانید حالت های EPP و ECP درگاه LPT را غیرفعال کنید ، سپس وقفه IRQ7 در دسترس قرار می گیرد.
V تنظیمات بایوسما به بخش "پیکربندی PCI / PNP" نیاز داریم. دو روش اساسی برای تأثیرگذاری بر تخصیص شماره های IRQ وجود دارد: مسدود کردن یک شماره خاص و اختصاص مستقیم شماره خط PIRQ.
اولین روش برای همه BIOS ها موجود است: لیست موارد "IRQ x used by:" (در BIOS جدیددر زیر منوی "منابع IRQ" پنهان شده است). وقفه هایی که باید منحصراً به دستگاه های ISA اختصاص داده شوند باید روی "ISA قدیمی" تنظیم شوند. بنابراین ، هنگام اختصاص شماره به دستگاه های PCI ، این وقفه ها حذف می شوند. اگر یک دستگاه ISA در یک وقفه با دستگاه PCI ادامه یابد ، این کار باید انجام شود ، زیرا هر دو کار نمی کنند. سپس شماره این IRQ را پیدا کرده و آن را در BIOS Setup مسدود می کنیم. دستگاه PCI به شماره جدید IRQ ، اما دستگاه ISA باقی می ماند. تعارض حل شد.
دومین راه راحت تر برای کنترل اعداد IRQ ، واگذاری مستقیم است. در همان زیرمنوی BIOS Setup ، ممکن است مواردی از شکل "Slot X use IRQ" (نام های دیگر: "PIRQx از IRQ استفاده می کند" ، "PCI Slot x priority" ، "INT Pin x IRQ") وجود داشته باشد.
با کمک آنها می توان به هر یک از چهار خط PIRQ یک شماره اختصاص داد. به هر حال ، در جایزه جدید BIOS 6.00 می توانید دقیقاً ببینید کدام دستگاه ها (از جمله دستگاههای داخلی) از این یا آن خط استفاده می کنند. فقط نگاه کن سمت راستصفحه BIOS Setup: عکس نشان می دهد که چگونه مکان نما را روی آیتم "Slot 1/5 use IRQ no" قرار داده ام ، و کتیبه "Display Contr." در سمت راست ظاهر شده است. یعنی اولین خط PIRQ توسط کارت گرافیک استفاده می شود. اگر اکنون شماره خاصی را به جای "خودکار" قرار دهم ، کارت ویدیو به این وقفه تغییر می کند.

تخصیص اعداد IRQ ابزارهای ویندوز
بار دوم اعداد وقفه اختصاص داده می شود سیستم عامل... همانطور که در آزمایشات من نشان داده شده است ، Windows "98 شروع به تداخل با اقدامات انجام شده توسط BIOS می کند" اهم فقط در موارد شدید. اگر یک BIOS معمولی دارید ، تکنیک های شرح داده شده در اینجا مورد نیاز نیست.
لازم به ذکر است که عملکرد صحیح مکانیزم های اشتراک گذاری IRQ و تخصیص پویا مستلزم آن است که ویندوز چیپست را تشخیص دهد. مادربردو IRQ Miniport را بارگیری کرد. نسخه جدیدتر ویندوز ، چیپست های بیشتری از مینی بند مخصوص خود (PCIIMP.PCI) پشتیبانی می کند. با این حال ، همیشه بهتر است آن را ایمن بازی کرده و جدیدترین درایورهای چیپست را نصب کنید.
در ویندوز 98 ، سیستم تخصیص IRQ با استفاده از مدیر دستگاه استاندارد کنترل می شود. در لیست ابزار سیستمشما باید گذرگاه PCI را پیدا کنید. یک برگه ویژه در ویژگی های آن وجود دارد (به تصویر صفحه مراجعه کنید). اگر همه چیز به درستی پیکربندی شده باشد ، مینی پورت در آنجا ذکر می شود ("با موفقیت بارگذاری شد") و کنترل گذرگاه PCI(فرمان) فعال می شود. بنابراین ، ویندوز "98 دارای وسیله ای برای کنترل توزیع اعداد وقفه بین خطوط فیزیکی است. اما از آنجا که BIOS اغلب با این امر به خوبی کنار می آید ، این مکانیزم دخیل نیست.
اما گاهی اوقات به سادگی ضروری است. همانطور که قبلاً گفتم ، دستگاه های PCI اگر از وقفه منطقی یکسانی استفاده می کنند ، نباید دچار تضاد شوند. مورد دیگر دستگاه های ISA است که شامل پورت های COM و LPT نیز می باشد. اگر دستگاه غیر Plug & Play است ، BIOS ممکن است با دادن وقفه ای که در آن مشغول است به دستگاه PCI متوجه آن نشود. سپس باید وقفه را رزرو کنید. این کار در اعزام کننده انجام می شود دستگاه های ویندوز"98: دستگاه" رایانه "را انتخاب کنید ، ویژگی های آن را فراخوانی کنید ، به برگه دوم بروید. سپس همه چیز روشن است.
علاوه بر افزونگی ، می توانید مستقیماً شماره وقفه را برای دستگاه تنظیم کنید. برای انجام این کار ، باید برگه "منابع" را در ویژگی های آن پیدا کنید ، غیرفعال کنید تنظیم خودکارو سعی کنید شماره وقفه اختصاص داده شده را تغییر دهید.
متأسفانه ، این همیشه کار نمی کند.
ویندوز 2000 یک سیستم ویژه است. اگر تو داری کامپیوتر مدرنسپس احتمالاً از رابط پیکربندی ACPI پشتیبانی می کند. در این حالت ، ویندوز 2000 اقدامات BIOS را به کلی نادیده می گیرد و همه دستگاه های PCI را در یک وقفه منطقی "آویزان" می کند. به طور کلی این کار خوب انجام می شود (وقتی ISA وجود ندارد) ، اما گاهی اوقات مشکلاتی رخ می دهد. برای اینکه بتوانید شماره های وقفه را تغییر دهید ، یا باید هسته HAL را تغییر دهید ، یا Windows 2000 را با ACPI غیرفعال در BIOS مجدداً نصب کنید. جایگزینی هسته به شرح زیر انجام می شود: در مدیر دستگاه ، "Computer" / "Computer with ACPI" را انتخاب کنید ، درایور را به " کامپیوتر استاندارد"، راه اندازی مجدد کنید. اگر این کار نکرد ، باید دوباره Windows 2000 را دوباره نصب کنید.
امیدوارم اطلاعات فوق در مبارزه با اشکالات سخت افزاری به شما کمک کند. و به خاطر داشته باشید: اکثر مشکلاتی که بوجود می آیند مربوط به آن است سطح پایین سواد کامپیوترمیزبان کامپیوتر بنابراین ، شما همیشه باید برای آموزش خود تلاش کنید ، در این صورت مشکلات کمتری وجود خواهد داشت ، و آنهایی که بوجود می آیند حل نشدنی به نظر نمی رسند.

احتمالاً رایج ترین تعارض وقفه (IRQ) با درگاه سریال یکپارچه COM2 موجود در مدرن مرتبط است مادربردها، و یک مودم داخلی (منظور یک مودم PC داخلی کامل است ، نه یک مودم نرم افزاری ، که WinModem نیز نامیده می شود). واقعیت این است که یک مودم داخلی کامل از قبل از یک پورت خاص پشتیبانی می کند. به طور پیش فرض ، این پورت به COM2 اختصاص داده می شود ، همچنین سیستم معمولاً پورت سریال دوم را فعال می کند. بنابراین ، سیستم دارای دو پورت یکسان با استفاده از منابع یکسان (وقفه و آدرس پورت ورودی / خروجی) است.

راه حل این مشکل بسیار ساده است: وارد BIOS System Setup شوید و درگاه COM2 داخلی را غیرفعال کنید. علاوه بر این ، ممکن است پورت COM1 را که به ندرت مورد استفاده قرار می گیرد غیرفعال کنید. غیرفعال کردن پورتهای COMx استفاده نشده یکی از موارد زیر است راههای بهترانتشار وقفه (IRQ) برای سایر دستگاه ها

یکی دیگر از درگیری های رایج با پورت های سریال است. در جدول استاندارد نقشه برداری وقفه ، ممکن است متوجه شده باشید که IRQ3 به COM2 و IRQ4 به COM1 اختصاص داده شده است. مشکل زمانی بوجود می آید که پورت های COM3 و / یا COM4 اضافی به سیستم اضافه شده و وقفه های رایگان به صورت دستی به آنها اختصاص داده نشود (به طور پیش فرض از IRQ3 و IRQ4 یکسانی استفاده می کنند).

عوارض اضافی با این واقعیت ایجاد می شود که برخی از کارت های پورت اجازه نمی دهند وقفه هایی غیر از IRQ3 و IRQ4 انتخاب شوند. در نتیجه ، اختصاص IRQ3 به COM4 و IRQ4 به COM3 منجر به تضاد با COM1 و COM2 می شود که از این وقفه ها نیز استفاده می کند: دو پورت نمی توانند به طور همزمان از یک کانال کنترل وقفه استفاده کنند. در حین کار در DOS ، این مجاز بود ، زیرا فقط یک کار را می توان در آن انجام داد ، اما در Windows و OS / 2 این امر کاملاً غیرممکن است. برای استفاده از بیش از دو پورت COM موازی در رایانه ، به یک برد چند پورت نیاز است ، که علاوه بر وقفه های شماره 3 و 4 ، امکان استفاده از وقفه های اضافی را نیز فراهم می کند. به اشتراک گذاری وقفه ها در اصل برای دستگاه هایی که معمولاً همزمان (یا مداوم) کار نمی کنند ، قابل قبول است. پورت ها در این دسته دستگاه ها قرار نمی گیرند. می توانید از وقفه برای اسکنر و مودم با هم استفاده کنید ، اما در این حالت ، اگر از آنها به طور همزمان استفاده شود ، درگیری ایجاد می شود. خوشبختانه اکثر دستگاه هایی که قبلاً از پورت استفاده می کردند (مانند موش ها ، چاپگرهای لیبل و مودم های خارجی) در حال حاضر به پورت های USB متصل شوید ، بنابراین در نیاز به پشتیبانی از چند پورت مشکلاتی وجود دارد. کاربران مدرنکامپیوترها نباید ظاهر شوند

اگر هنوز نیاز به استفاده از چند پورت سریال دارید ، بهترین راه حلخرید یک برد چند قسمتی است که یا توانایی تنظیم وقفه های بدون تعارض را فراهم می کند ، یا شامل پردازنده خود است که به شما امکان می دهد یک وقفه سیستم بین چندین پورت توزیع شود. برخی از کارت های چند قسمتی قدیمی دارای رابط ISA بودند ، اما امروزه با کارت های PCI جایگزین شده اند که مزایای عملکردی را نیز ارائه می دهند.

اگر برخی از دستگاه های ذکر شده در جدول مفقود شده است (به عنوان مثال ، پورت ماوس داخلی (IRQ12) یا دومین پورت موازی (IRQ5)) ، وقفه های آنها را می توان در نظر گرفت. به عنوان مثال ، دومین درگاه موازی بسیار نادر است ، بنابراین وقفه IRQ5 اختصاص داده شده بیشتر برای کارت آداپتور صدا استفاده می شود. به همین ترتیب ، وقفه IRQ15 برای کنترل کننده دوم IDE استفاده می شود. اگر هیچ دستگاه دیسک متصل به کانال IDE ثانویه در سیستم وجود ندارد ، می توانید این کنترلر را در BIOS غیرفعال کنید ، در نتیجه وقفه دیگری را برای سایر دستگاه ها آزاد کنید.

لازم به ذکر است که ساده ترین راه برای بررسی تنظیمات وقفه در Windows Device Manager است. در Windows 95b برنامه HWDIAG و در Windows 98 و بالاتر وجود دارد نسخه های بعدی- اطلاعات سیستم کنسول این ابزارها به شما امکان می دهند گزارش مفصلی در مورد استفاده از منابع در سیستم و همچنین دریافت کنید درایورهای نصب شدهدستگاه ها و ورودی های رجیستری ویندوز برای هر دستگاه. V سیستم های ویندوزبرای XP و Vista ، اطلاعات سیستم توسط برنامه Msinfo32 ارائه می شود.

برای اطمینان از بالاترین تعداد وقفه های مشترک در یک سیستم مدرن بدون اتصال ISA ، هنگام کار با BIOS سیستم ، این مراحل را دنبال کنید.

  1. هر پورت بلا استفاده در بایوس سیستم را غیرفعال کنید. به عنوان مثال ، اگر به جای سریال و پورت موازی استفاده می شود پورت های USB، آنها را غیرفعال کنید در نتیجه ، حداکثر سه وقفه می تواند آزاد شود.
  2. وقفه IRQ منتشر شده در مرحله 1 را در لیست وقفه های موجود برای دستگاه های PCI / PnP مشخص کنید. بسته به نسخه BIOSپارامترهای مربوطه در بخش PnP / PCI Resource Exclusion یا PnP / PCI Configuration موجود است.
  3. گزینه Reset Configuration Data را فعال کنید تا جداول مسیریابی IRQ در حافظه CMOS پاک شوند.
  4. تغییرات را ذخیره کرده و از برنامه راه اندازی BIOS خارج شوید.

خوب است که پس از مونتاژ یا مدرن سازی برنامه ریزی شده ، رایانه راه اندازی شده و برای اولین بار به طور پایدار و بدون اشکال کار می کند. در صورت بروز مشکلات غیرمنتظره بسیار بدتر است - راه اندازی مجدد خودکار و یخ زدن ، خرابی برنامه ، عدم کارکرد یا "نامرئی بودن" دستگاه ها و غیره. اولین دلیلی که معمولاً در این مورد به ذهن می رسد یک درگیری وقفه است. آیا ماهیت این پدیده را به خوبی می شناسیم ، آیا آمادگی کافی برای مبارزه با آن را داریم؟

IRQ چیست؟


وقفه ها مکانیسم اصلی واکنش سیستم به رویدادهای نوظهور هستند. وقفه های سخت افزاری که معمولاً IRQ (Interrupt ReQuest) نامیده می شوند ، سیگنال های فیزیکی هستند که توسط کنترل کننده دستگاه برای اطلاع پردازنده برای پردازش برخی درخواست ها استفاده می شود. به طور معمول ، طرح دست زدن به وقفه به شرح زیر است:
1) پردازنده یک سیگنال وقفه و شماره آن را دریافت می کند.
2) از یک جدول ویژه برای یافتن آدرس برنامه مسئول پردازش وقفه با شماره داده شده استفاده می شود - کنترل کننده وقفه ؛
3) پردازنده کار فعلی را متوقف می کند و به اجرای کنترل کننده می رود (در حالت کلی ، این نوعی راننده است) ؛
4) راننده به دستگاه دسترسی پیدا می کند و علت وقفه را بررسی می کند.
5) اقدامات درخواست شده راه اندازی می شوند - راه اندازی اولیه ، پیکربندی دستگاه ، تبادل داده و غیره.
6) راننده خارج می شود و پردازنده به کار قطع شده باز می گردد.
بدیهی است ، برای عملکرد صحیح مکانیزم وقفه ، دو شرط باید رعایت شود: اولاً ، سیگنال درخواست باید به پردازنده برسد و ثانیاً ، راننده هندلر باید به این سیگنال به درستی پاسخ دهد. در صورت درگیری ، شرط دوم برآورده نمی شود: سیگنال وقفه می رسد ، اما واکنش به آن نادرست است ، در نتیجه ما (در بهترین حالت) یک دستگاه غیرفعال داریم.

تعارض

می توان گفت که تعارض وضعیتی است که در آن چندین شیء به طور همزمان سعی می کنند به منبعی دسترسی داشته باشند که فقط برای یکی از آنها در نظر گرفته شده است. نزاع وقفه زمانی رخ می دهد که چندین دستگاه از خط وقفه یکسان برای ارسال سیگنال درخواست استفاده می کنند و هیچ مکانیزمی برای رسیدگی به درخواست های همزمان وجود ندارد. اگر راننده ، کنترل را دریافت می کند ، با دستگاهی که درخواست را ارسال کرده است کار نمی کند ، یا خرابی رخ می دهد ، یا یکی از دستگاه ها به سادگی کار نمی کند.
این سال پیش می آید: آیا چندین دستگاه می توانند از خط وقفه یکسان استفاده کنند ، یا در اصل غیرممکن است؟ پس از همه ، اگر راننده بتواند تعیین کند که دقیقاً درخواست از چه کسی آمده است ، آنگاه به سیگنالهای دستگاه "خود" پاسخ می دهد ، بدون توجه به سایر موارد. اما این باید به نحوی از قبل تعیین شود ، در غیر این صورت درگیری اجتناب ناپذیر است.
گذرگاه PCI محلی با در نظر گرفتن اشتراک وقفه طراحی شده است. هر دستگاه PCI باید به طور صحیح در خط وقفه مشابه با سایر دستگاه های PCI کار کند. این به روش زیر انجام می شود: واقعیت وجود یک سیگنال در خط وقفه توسط لبه تعیین نمی شود ، یعنی تغییر در سطح ولتاژ ، اما به دلیل وجود یک ولتاژ خاص. چندین دستگاه می توانند ولتاژ خط را به طور همزمان تغییر دهند و در صف سرویس قرار گیرند.
بنابراین ، به اشتراک گذاری IRQ یکسان در بین چندین دستگاه PCI تعریفی نیست. با این حال ، گاهی اوقات مشکلاتی بوجود می آید. اول ، همه دستگاههای PCI به طور صحیح در خط وقفه یکسان با دیگران کار نمی کنند. ثانیاً ، گاهی اوقات درایورها خطاهایی دارند که به دلیل آنها نمی توانند منبع سیگنال را به درستی تعیین کنند و با سایر درایورها تداخل ایجاد می کنند. ثالثاً ، همه دستگاهها روی گذرگاه PCI کار نمی کنند. به عنوان مثال ، دستگاه های ISA ، که شامل ، برای مثال ، کنترل کننده های پورت COM / LPT هستند ، نمی توانند وقفه ها را با دیگران به اشتراک بگذارند. برای روشن شدن نحوه اجتناب یا حل و فصل تعارضات ، باید نحوه مدیریت IRQ ها را درک کنید.

وقفه های سخت افزاری در رایانه شخصی


همانطور که می دانید ، رایانه های شخصی با رایانه IBM شروع به کار کردند. معماری آن شامل هشت خط قطع سخت افزاری (IRQ) بود که توسط کنترلر خاصی کنترل می شدند. به هر یک از آنها تعدادی اختصاص داده شد که اولویت وقفه و آدرس کنترل کننده آن (به اصطلاح بردار وقفه) را تعیین می کرد. معماری جدید ، IBM PC AT ، هشت خط وقفه دیگر را ارائه کرد که برای آنها از کنترلر دوم استفاده شده بود که به یکی از خطوط وقفه کنترلر اول متصل شده بود. متأسفانه ، این معماری آخرین مورد پس از آن بود که IBM توانایی مدیریت توسعه پلتفرمی را که ایجاد کرده بود از دست داد ، بنابراین همه رایانه های مدرن هنوز فقط شانزده وقفه دارند که یکی از آنها توسط کنترلر دوم استفاده می شود.
کامپیوتر IBM PC AT فقط یک گذرگاه داشت که دستگاه ها می توانستند با پردازنده و حافظه ارتباط برقرار کنند - ISA. بیشتر خطوط وقفه به دستگاههای استاندارد ISA اختصاص داده شد ، بقیه برای آینده محفوظ بود. با آمدن آن آینده ، مشخص شد که گذرگاه جدید PCI جهانی تنها چهار وقفه رایگان دریافت کرده است. بنابراین ، مکانیسم هوشمندی برای به اشتراک گذاری وقفه ها (IRQ Sharing) و تعریف پویای اعداد (IRQ Steering یا Mapping) ابداع شد.
ماهیت مکانیسم کنترل وقفه دستگاه PCI به شرح زیر است. به طور کلی ، چهار خط وقفه فیزیکی PCI به نام PIRQ0 ، PIRQ1 ، PIRQ2 و PIRQ3 وجود دارد. آنها به کنترل کننده وقفه متصل می شوند. به نظر می رسد که هر دستگاه PCI دارای چهار کانکتور به نام های INT A ، INT B ، INT C و INT D. است. شما می توانید خطوط را به هر ترتیب به کانکتورها وصل کنید. به عنوان مثال ، برای اولین شکاف PCI ، می توانید سیم کشی زیر را انجام دهید: PIRQ0 - INT A ، PIRQ1 - INT B ، PIRQ2 - INT C ، PIRQ3 - INT D. و در مورد دوم - به روشی متفاوت: PIRQ0 - INT B ، PIRQ1 - INT C ، PIRQ2 - INT D ، PIRQ3 - INT A. معمولاً دستگاه فقط به یک خط وقفه متصل به INT A نیاز دارد. هنگامی که در شکاف اول نصب می شود ، دستگاه از خط PIRQ0 استفاده می کند و شکاف دوم دارای خط PIRQ1 در همان پین. بنابراین ، دستگاه هایی که دارای شکاف های مختلف هستند از خطوط وقفه فیزیکی متفاوتی استفاده خواهند کرد. درگیری سخت افزاری بین آنها برطرف می شود.
گذرگاه AGP ، در واقع یک اصلاح PCI تخصصی است ، همچنین از یکی از خطوط PIRQ - معمولاً PIRQ0 استفاده می کند.
برای سیستم های مدرن ، چهار خط کافی نیست ، بنابراین چیپست های جدید اغلب از هشت خط PIRQ استفاده می کنند که به صورت یکسان در ترکیب های مختلف به اسلات PCI و دستگاه های تعبیه شده در برد متصل می شوند.
خطوط PIRQ به کنترل کننده وقفه متصل می شوند. به آنها ، مانند خطوط دیگر ، شماره های منطقی IRQ اختصاص داده می شود. اگر چندین دستگاه در یک خط فیزیکی یکسان (و این مجاز است) وجود داشته باشد ، همه آنها شماره IRQ یکسانی خواهند داشت. اگر دستگاه ها روی خطوط فیزیکی متفاوتی قرار دارند ، می توانند شماره IRQ یکسانی دریافت کنند. رانندگان معمولی به آنها اجازه می دهند آزادانه بدون افت عملکرد کار کنند ، زیرا گذرگاه PCI هنوز فقط توسط یک دستگاه قابل ضبط است. نکته اصلی این است که تشخیص دهیم سیگنال از کدام دستگاه آمده است.
شماره های خط PIRQ به لطف مکانیسم بدنام Plug & Play به طور خودکار تعیین می شوند. اما دستگاه های Plug & Play ISA نیز وجود دارد. آنها همچنین می توانند به طور خودکار شماره IRQ را بدست آورند. اما خط وقفه آنها منحصراً به آنها تعلق دارد و اگر یکی از خطوط PIRQ همین تعداد را بدست آورد ، درگیری نامحلول بوجود می آید.
بنابراین ما متوجه شدیم که دستگاه های PCI باید عاری از مسائل درگیری IRQ باشند. البته اگر آنها به درستی کار کنند ، و این همیشه صادق نیست. علاوه بر این ، رانندگان باید از اشتراک گذاری وقفه پشتیبانی کنند. دستگاه های ISA نمی دانند چگونه خطوط وقفه را به اشتراک بگذارند و بنابراین محرک های درگیری هستند. بنابراین ، مشکل حذف درگیری ها به تخصیص صحیح اعداد برمی گردد (منبع مشکلات دستگاه های ISA و درایورهای "کج" هستند) یا به تفکیک در خطوط مختلف فیزیکی (کنترل کننده های "کج" PCI).
بیایید نگاه کنیم که چگونه اعداد در سیستم تخصیص داده شده اند و چگونه می توانیم بر این فرایند تأثیر بگذاریم.

قطع نقشه

همانطور که گفتم ، اکثر شماره های IRQ قبلاً توسط دستگاه های استاندارد اشغال شده اند ، یا بهتر است بگوییم ، به خطوط وقفه خود اختصاص داده شده اند. بیایید ترتیب را مرور کنیم:
0 - تایمر سیستم (شماره همیشه مشغول است) ؛
1 - صفحه کلید (شماره همیشه مشغول است) ؛
2 - کنترل کننده وقفه دوم (همیشه مشغول است) ؛
3 - پورت COM2 (می توان آن را غیرفعال کرد و شماره را می توان آزاد کرد) ؛
4 - پورت COM1 (می توان آن را غیرفعال کرد و شماره را می توان آزاد کرد) ؛
5 - پورت LPT2 (معمولاً شماره رایگان است) ؛
6 - کنترل کننده فلاپی دیسک (می توان آن را غیرفعال و شماره را آزاد کرد) ؛
7 - پورت LPT1 (اگر در حالت EPP یا ECP نیست ، پس شماره رایگان است) ؛
8 - ساعت واقعی (همیشه مشغول) ؛
9 - رایگان ؛
10 - رایگان ؛
11 - رایگان ؛
12 - موس PS / 2 (در صورت وجود چنین ماوس رایگان است) ؛
13 - پردازنده (همیشه مشغول است) ؛
14 و 15 - کنترل کننده هارد دیسک (می توان آن را غیرفعال کرد و شماره آن آزاد شد).
در یک سیستم معمولی ، شماره های 5 ، 7 ، 9-11 در دسترس است ، یعنی پنج از پانزده. علاوه بر این ، می توانید با خیال راحت پورت های COM2 و LPT1 را غیرفعال کنید و تعداد شماره های رایگان را به هفت افزایش دهید. رایگان به این معنا نیست که آنها مشغول نیستند ، فقط این است که امکان جابجایی رایگان بین آنها وجود دارد.
هر سیستمی دارای سه دستگاه استاندارد PCI است - ACPI ، کنترل کننده های USB و یک کارت ویدیو ، که هر کدام یک عدد خواهند داشت. یک دستگاه پیچیده (به عنوان مثال ، کارت صدا) ممکن است به چندین خط نیاز داشته باشد - INT A ، INT B و غیره. برای اجزای آنها ، که با یکدیگر (پس از همه ، خطوط فیزیکی مختلف) در تضاد نیستند ، اما با سایر دستگاهها - به راحتی.
می توانید نحوه توزیع اعداد وقفه را از چند طریق دریابید. در ابتدای راه اندازی کامپیوتر ، یک جدول پیکربندی متن ظاهر می شود. درست بعد از آن لیستی از دستگاه های PCI با شماره IRQ اختصاص داده شده وجود دارد (به تصویر صفحه مراجعه کنید). روش دیگر در ویندوز 9x کار می کند. یک نماد "System" در کنترل پنل و برگه "Devices" در اپلت نامیده شده وجود دارد. ما ویژگی های دستگاه "رایانه" را انتخاب می کنیم و همه دستگاه ها در آنجا فهرست می شوند و IRQ آنها را نشان می دهد (به تصویر صفحه مراجعه کنید).
در ویندوز 2000 ، ما به مدیریت وقفه دسترسی نداریم ، بنابراین برای مشاهده لیست IRQ ، باید از ابزار استاندارد اطلاعات (کنترل پنل / ابزارهای اداری / مدیریت کامپیوتر / اطلاعات سیستم / منابع سخت افزار) استفاده کنیم.

تخصیص BIOS IRQ

در سیستم ، شماره های IRQ دو بار بین خطوط فیزیکی تخصیص داده می شود. اولین بار این کار را BIOS سیستم هنگام بوت سیستم انجام می دهد. به هر دستگاه Plug & Play (همه PCI ، ISA مدرن ، دستگاههای یکپارچه) ، یا بهتر است خط وقفه آن ، از ده شماره ممکن ، یک عدد اختصاص داده شود. اگر اعداد کافی وجود نداشته باشد ، چندین خط یک خط مشترک به دست می آورند. اگر این خطوط PIRQ هستند ، اشکالی ندارد - در حضور درایورهای معمولی و پشتیبانی سیستم عامل (برای اطلاعات بیشتر در این مورد به زیر مراجعه کنید) ، همه چیز کار می کند. و اگر چندین دستگاه ISA یا دستگاه های PCI و ISA یکسان باشند ، درگیری به سادگی اجتناب ناپذیر است ، و سپس باید در فرایند توزیع مداخله کرد.
اول از همه ، شما باید همه دستگاههای ISA بلااستفاده را غیرفعال کنید (در سیستمهای بدون شکاف ISA ، آنها نیز وجود دارند) - پورت های COM1 ، COM2 و درایو فلاپی. همچنین می توانید حالت های EPP و ECP درگاه LPT را غیرفعال کنید ، سپس وقفه IRQ7 در دسترس قرار می گیرد.
در BIOS Setup ، ما به بخش "پیکربندی PCI / PNP" نیاز داریم. دو روش اساسی برای تأثیرگذاری بر تخصیص شماره های IRQ وجود دارد: مسدود کردن یک شماره خاص و اختصاص مستقیم شماره خط PIRQ.
اولین روش برای همه BIOS ها موجود است: لیستی از موارد "IRQ x used by:" را بیابید (در BIOS جدید در زیرمنوی "منابع IRQ" پنهان شده است). وقفه هایی که باید منحصراً به دستگاه های ISA اختصاص داده شوند باید روی "ISA قدیمی" تنظیم شوند. بنابراین ، هنگام اختصاص شماره به دستگاه های PCI ، این وقفه ها حذف می شوند. اگر یک دستگاه ISA در یک وقفه با دستگاه PCI همچنان ادامه داشت ، این کار باید انجام شود ، به همین دلیل هر دو کار نمی کنند. سپس شماره این IRQ را پیدا کرده و آن را در BIOS Setup مسدود می کنیم. دستگاه PCI به شماره IRQ جدید منتقل می شود ، اما دستگاه ISA باقی می ماند. تعارض حل شد.
دومین راه راحت تر برای کنترل اعداد IRQ ، واگذاری مستقیم است. در همان زیرمنوی BIOS Setup ، ممکن است مواردی از شکل "Slot X use IRQ" (نام های دیگر: "PIRQx از IRQ استفاده می کند" ، "PCI Slot x priority" ، "INT Pin x IRQ") وجود داشته باشد.
با کمک آنها می توان به هر یک از چهار خط PIRQ یک شماره اختصاص داد. به هر حال ، در جایزه جدید BIOS 6.00 می توانید دقیقاً ببینید کدام دستگاه ها (از جمله دستگاههای داخلی) از این یا آن خط استفاده می کنند. کافی است به سمت راست صفحه BIOS Setup نگاهی بیندازید: عکس نشان می دهد که چگونه مکان نما را روی آیتم "Slot 1/5 use IRQ no." و کلمات "Display Contr." در سمت راست ظاهر شد نشان می دهد. یعنی اولین خط PIRQ توسط کارت گرافیک استفاده می شود. اگر اکنون شماره خاصی را به جای "خودکار" قرار دهم ، کارت ویدیو به این وقفه تغییر می کند.

اختصاص IRQ با استفاده از ویندوز

بار دوم اعداد وقفه توسط سیستم عامل اختصاص داده می شود. همانطور که در آزمایشات من نشان داده شده است ، Windows "98 شروع به تداخل با اقدامات انجام شده توسط BIOS می کند" اهم فقط در موارد شدید. اگر یک BIOS معمولی دارید ، تکنیک های شرح داده شده در اینجا مورد نیاز نیست.
لازم به ذکر است که برای به درستی کارکردن مکانیزم های اشتراک گذاری IRQ و تخصیص پویا ، ویندوز باید چیپست مادربرد را تشخیص دهد و IRQ Miniport را بارگیری کند. نسخه جدیدتر ویندوز ، چیپست های بیشتری از مینی بند مخصوص خود (PCIIMP.PCI) پشتیبانی می کند. با این حال ، همیشه بهتر است آن را ایمن بازی کرده و جدیدترین درایورهای چیپست را نصب کنید.
در ویندوز 98 ، سیستم تخصیص IRQ توسط مدیر دستگاه استاندارد کنترل می شود. گذرگاه PCI را در لیست دستگاه های سیستم پیدا کنید. یک برگه ویژه در ویژگی های آن وجود دارد (به تصویر صفحه مراجعه کنید). اگر همه چیز به درستی پیکربندی شده باشد ، یک مینی پورت در آنجا ذکر می شود ("با موفقیت بارگذاری شد") ، و مدیریت گذرگاه PCI (فرمان) فعال می شود. بنابراین ، ویندوز "98 دارای وسایلی برای کنترل تخصیص شماره های وقفه بین خطوط فیزیکی است. اما از آنجا که BIOS نیز به خوبی با این امر کنار می آید ، این مکانیزم دخیل نیست.
اما گاهی اوقات به سادگی ضروری است. همانطور که قبلاً گفتم ، دستگاه های PCI اگر از وقفه منطقی یکسانی استفاده می کنند ، نباید دچار تضاد شوند. مورد دیگر دستگاه های ISA است که شامل پورت های COM و LPT نیز می باشد. اگر دستگاه غیر Plug & Play است ، BIOS ممکن است با دادن وقفه ای که در آن مشغول است به دستگاه PCI متوجه آن نشود. سپس باید وقفه را رزرو کنید. این کار در مدیر دستگاه Windows 98 انجام می شود: دستگاه رایانه را انتخاب کنید ، با ویژگی های آن تماس بگیرید ، به برگه دوم بروید.
علاوه بر افزونگی ، می توانید مستقیماً شماره وقفه را برای دستگاه تنظیم کنید. برای انجام این کار ، باید برگه "منابع" را در ویژگی های آن پیدا کنید ، پیکربندی خودکار را غیرفعال کنید و سعی کنید شماره وقفه اختصاص داده شده را تغییر دهید.
متأسفانه ، این همیشه کار نمی کند.
ویندوز 2000 یک سیستم ویژه است. اگر رایانه ای مدرن دارید ، احتمالاً از رابط پیکربندی ACPI پشتیبانی می کند. در این حالت ، ویندوز 2000 اقدامات BIOS را به کلی نادیده می گیرد و همه دستگاه های PCI را در یک وقفه منطقی "آویزان" می کند. به طور کلی این کار خوب انجام می شود (وقتی ISA وجود ندارد) ، اما گاهی اوقات مشکلاتی رخ می دهد. برای اینکه بتوانید شماره های وقفه را تغییر دهید ، یا باید هسته HAL را تغییر دهید ، یا Windows 2000 را با ACPI غیرفعال در BIOS مجدداً نصب کنید. جایگزینی هسته به شرح زیر انجام می شود: در مدیر دستگاه ، "Computer" / "Computer with ACPI" را انتخاب کنید ، درایور را به "Standard computer" تغییر دهید ، راه اندازی مجدد کنید. اگر این کار نکرد ، باید دوباره Windows 2000 را دوباره نصب کنید.
امیدوارم اطلاعات فوق در مبارزه با اشکالات سخت افزاری به شما کمک کند. و به خاطر داشته باشید: بیشتر مشکلاتی که بوجود می آید مربوط به سطح پایین سواد رایانه ای صاحب رایانه است. بنابراین ، شما همیشه باید برای آموزش خود تلاش کنید ، در این صورت مشکلات کمتری وجود خواهد داشت ، و آنهایی که بوجود می آیند حل نشدنی به نظر نمی رسند.