Концепция за прекъсване
Прекъсването се отнася до временно прекъсване на изпълняваната програма от процесора поради външни/вътрешни произволни събития или събития, предварително организирани от програмата, когато процесорът изпълнява програмата нормално. Отидете на програма, която обслужва външни/вътрешни събития или предварително уговорени събития. След като услугата приключи, върнете се, за да продължите изпълнението на временно прекъснатата програма.
Например, когато потребителят използва клавиатурата, сигнал за прекъсване се изпраща всеки път, когато се натисне клавиш, за да уведоми процесора, че е настъпило събитие „въвеждане от клавиатурата“, и от процесора се изисква да прочете стойността на ключа на ключа и процесорът временно спира това, което е под ръка. Програмата се прехвърля към програмата за четене, която обработва стойността на ключа. След като операцията по четене приключи, процесорът се връща към оригиналната програма, за да продължи да работи.
Може да се види, че възникването на прекъсване се дължи на причина. Събитието, което е причинило прекъсването, е източникът на прекъсване. Има различни източници на прекъсване, така че има много видове прекъсвания. Централният процесор трябва да дава различни решения на изискванията на различни източници на прекъсване, когато обработва прекъсващи събития, което изисква манипулатор на прекъсване (програма за обслужване на прекъсване), за да го разреши.
От логиката на програмата, същността на прекъсването е прехвърлянето на програмата. Прекъсванията осигуряват механизъм за бързо прехвърляне на работната среда на програмата. Програмният сегмент, който се обслужва от процесора, се нарича програма за обработка (обслужване) на прекъсване, а програмата, която временно се прекъсва, се нарича основна програма (или извикваща програма). Прехвърлянето на програмата се инициира от вътрешно събитие или външно събитие на микропроцесора и процесът на прекъсване включва две прехвърляния, първо основната програма се прехвърля към програмата за обработка на прекъсване (обслужване), а след това към основната програма след обработка на прекъсване (сервизна) програма се обработва. Трансфер. Механизмът за превключване на трансфера на програмата, причинен от източника на прекъсване, се използва за бърза промяна на пътя на изпълнение на програмата, което е много ефективно за обработка в реално време на някои неочаквани събития.
Получаване на номер на прекъсване
Номерът на прекъсване е кодът, присвоен на всеки източник на прекъсване от системата за идентифициране и обработка. Номерът на прекъсването играе много важна роля в процеса на обработка на прекъсването. В системата за прекъсване, която приема векторния режим на прекъсване, процесорът трябва да го използва, за да намери входния адрес на рутинната услуга за прекъсване и да реализира прехвърлянето на програмата. За да се намери входният адрес на рутинната услуга за прекъсване в таблицата на вектора на прекъсването, може да се получи указател от номера на прекъсването (n) × 4, който сочи към вектора на прекъсване (тоест входния адрес на услугата за прекъсване рутина) се съхранява в векторната таблица на прекъсванията и този адрес се взема от нея (CS: IP), заредете регистъра на кодовия сегмент CS и регистъра на указателя на инструкции IP и след това прехвърлете към рутинната услуга за прекъсване.
Методът за CPU да получи броя на прекъсванията от различни типове източници на прекъсвания в системата е различен. Номерът на прекъсването на маскираното прекъсване се получава от контролера на прекъсването по време на цикъла на реакция на прекъсване. Номерът на прекъсване (нула) на мекото прекъсване INT nH се дава директно от инструкцията за прекъсване. Номерът на прекъсването на немаскируемото прекъсване NMI и някои специални прекъсвания вътре в процесора са предварително зададени от системата, като например номерът на прекъсване на NMI е 02H, номерът на прекъсване на незаконния делител е 0H и т.н.
Използване на номер на прекъсване
Има много устройства, които трябва да бъдат свързани към компютъра, като звукови карти, принтери, модеми и т.н. Тези устройства могат да обменят данни с процесора чрез заявки за прекъсване. Когато дадено устройство се нуждае от процесора, за да обработи неговите данни, то може да изпрати сигнал за искане за прекъсване до процесора, за да накара процесора да спре изпълняваната работа и след това да обработи заявката за операция на устройството и след това да се върне към първоначалната работа след обработката е завършена. Когато дадено устройство изпрати заявка за прекъсване към процесора, то казва на процесора кое периферно устройство се нуждае от услуга чрез IRQ стойността, така че всяко устройство заема IRQ стойност.
Във всяка компютърна система чип за контролер на прекъсвания 8259 или 8259A (сега този чип е предимно интегриран в други чипове) контролира контрола на прекъсванията на всеки хардуер в системата. Има 16 групи IRQ. Като изключим групата IRQ, използвани като мостове, всъщност има само 15 групи IRQ, които могат да бъдат извикани от хардуера, и тези IRQ имат собствена конфигурация по подразбиране.
Когато използвате IRQ стойности, трябва да разберете един принцип, а именно, IRQ стойност може да се използва само от едно устройство, например: Обикновено мишката използва IRQ4 (COMl), в този момент IRQ4 вече не може да се използва от други хардуерни устройства Нагоре. Различните версии на операционната система имат различни настройки за IRQ, така че при инсталиране на нов хардуер системата често не може автоматично да открие правилния IRQ, който да присвои на извикания хардуер, което ще доведе до това хардуерно устройство или оригиналния стар хардуер да не работи правилно. Всъщност това е така, защото системата автоматично присвоява IRQ на хардуера на друг хардуер, който е същият като този IRQ, така че възникват конфликти и хардуерът не може да работи нормално. Като цяло, ако срещнете тази ситуация, можете да я разрешите, като ръчно коригирате конфигурацията на IRQ на новия и стария хардуер.