Переривання (англ. interrupt) — сигнал, що повідомляє процесор або мікроконтролер про настання якої-небудь події, яка потребує невідкладної уваги щодо її обробки. При цьому виконання поточної послідовності команд може призупинитися (у випадку однопроцесорної системи), а керування передається обробнику переривання, який реагує на подію та обслуговує її, після чого повертає керування в перерваний код.
Класифікація
Залежно від джерела виникнення сигналу переривання поділяються на:
- Асинхронні або зовнішні (апаратні) — події, які створені зовнішніми джерелами (наприклад, периферійними пристроями) та можуть відбутися в довільний момент: сигнал від таймера, мережевої карти або дискового накопичувача, натискання клавіш клавіатури, рух миші;
- Синхронні або внутрішні — виняткові ситуації у самому процесорі як результат порушення якихось умов при виконанні машинного коду: ділення на нуль або переповнення, звернення до неприпустимих адрес або неприпустимий код операції;
- Програмні (частковий випадок внутрішнього переривання) — ініціюються виконанням спеціальної інструкції в коді програми. Програмні переривання, як правило використовуються для звернення до функцій вбудованого програмного забезпечення (firmware), драйверів й операційної системи.
Термін «пастка» (англ. trap) іноді використовується як синонім терміну «переривання» чи «внутрішнє переривання». Як правило, термінологія встановлюється в документації виробника конкретної архітектури процесора.
Обробка переривання
При виникненні переривання процесор зберігає в стеку вмісту лічильника команд і завантажує в нього адресу відповідного вектора переривання, в якому, як правило, міститься команда безумовного переходу до підпрограми обробки переривання. Останньою командою підпрограми-обробника переривань має бути команда повернення з переривання, яка забезпечує повернення в основну програму шляхом відновлення значення заздалегідь збереженого лічильника команд.
Обробка переривань відбувається відповідно до загальних принципів обробки переривань у мікропроцесорній техніці. Модуль переривань приймає запити переривання й організовує перехід до виконання визначеної програми. Запити переривання можуть надходити як від зовнішніх, так і від внутрішніх джерел (наприклад, у мікроконтролерах або системах на чипі). Для приймання запитів від зовнішніх джерел використовуються виводи портів вводу/виводу, для яких ця функція є альтернативною. Джерелами запитів зовнішніх переривань також можуть бути будь-які зміни зовнішніх сигналів на деяких спеціально виділених лініях портів вводу/виводу.
Якщо переривання відбувається під час виконання команди, що триває декілька циклів, перед викликом переривання завершується виконання цієї команди. Після виходу з переривання мікропроцесор завжди виконує ще одну команду, перш ніж перейти до якого-небудь іншого відкладеного переривання:239.
Маскування
Залежно від можливості заборони зовнішні переривання поділяються на:
- ті, що можна маскувати — переривання, які можна забороняти установкою відповідних бітів у регістрі маскування переривань (в x86-процесорах — скиданням IF у регістрі стану FLAGS або EFLAGS);
- ті, що не можна маскувати (англ. Non maskable interrupt, NMI) — обробляються завжди, незалежно від заборон на інші переривання. Наприклад, таке переривання може бути викликане збоєм в мікросхемі пам'яті.
Обробники переривань зазвичай пишуться таким чином, щоб час їх обробки був якомога меншим, оскільки під час їх роботи можуть не оброблятися інші переривання, а якщо їх буде багато (особливо від одного джерела), то вони можуть губитися.
Пріоритезація переривань
До закінчення обробки переривання зазвичай встановлюється заборона на обробку цього типу переривання, щоб процесор не входив до циклу обробки одного переривання.
Класифікація пріоритетів
Пріоритезація означає, що всі джерела переривань діляться на класи й кожному класу призначається свій рівень пріоритету запиту на переривання. Пріоритети можуть обслуговуватися як відносні і абсолютні.
Відносне обслуговування переривань означає, що якщо під час обробки переривання надходить пріоритетніше переривання, то це переривання буде оброблено тільки після завершення поточної процедури обробки переривання. Абсолютне обслуговування переривань означає, що коли під час обробки переривання надходить пріоритетніше переривання, то поточна процедура обробки переривання витісняється, і процесор починає виконувати обробку тільки-но отриманого більш пріоритетного переривання. Після завершення цієї процедури процесор повертається до виконання витісненої процедури обробки переривання (якщо не з'явилося нових). Проте, різні операційні системи мають різну філософію обробки переривань і даний процес може значно модифікуватися (для отримання оптимальної продуктивності) у залежності від навантаження на систему, користувацьких звичок, версії компонентів системи, апаратного обладнання тощо.
Перехоплення переривання — заміна обробника переривання на свій власний.
Таблиця переривань
Вектор переривання — закріплений за пристроєм номер, який ідентифікує відповідний обробник переривань. Вектори переривань об'єднуються в таблицю векторів переривань, що містить адреси обробників переривань. Розташування таблиці залежить від типу та режиму роботи процесора чи мікроконтролера.
Вектором переривання є адреса процедури обробки переривання:230.
Вектори переривань від різних джерел об'єднані в структуру, що називається таблицею векторів переривань:231.
Програмне переривання
Програмне переривання — синхронне переривання, яке може здійснити програма за допомогою спеціальної інструкції.
Архітектура x86
У процесорах архітектури x86 для явного виклику синхронного переривання є інструкція Int
, аргументом якої є номер переривання (від 0 до 255). В IBM PC-сумісних комп'ютерах до початку завантаження ОС обробку переривань здійснюють підпрограми BIOS. Будь-який вектор переривання може бути перехоплений кодом BIOS карт розширень (наприклад, мережевих або відеокарт), операційною системою, і навіть звичайними (прикладними) програмами, які постійно знаходяться в пам'яті під час роботи інших програм (т. зв. резидентні програми). На відміну від , в захищеному режимі x86-процесорів звичайні програми не можуть обслуговувати переривання: ця функція доступна тільки системному коду (операційній системі).
MS-DOS використовує для взаємодії зі своїми модулями і прикладними програмами переривання з номерами від 20h до 3Fh (числа дані в шістнадцятковій системі числення, як це прийнято при програмуванні мовою асемблера x86). Наприклад, доступ до основної множини функцій MS-DOS здійснюється виконанням інструкції Int 21h
(при цьому номер функції та її аргументи передаються в регістрах). Цей розподіл номерів переривань не закріплений апаратно та інші програми можуть встановлювати свої обробники переривань замість або поверх вже наявних обробників, встановлених MS-DOS або іншими програмами, що, як правило, використовується для зміни функціоналу або розширення списку системних функцій. Також, цією можливістю користуються віруси.
Інші архітектури
У процесорах інших архітектур термін «програмне переривання» може бути синонімом поняттю системний виклик. Наприклад, інструкція SVC
(англ. Supervisor Call) у архітектурі (IBM System/360) викликає зазначену функцію у супервізорі операційної системи. Аналогічну за мнемонікою і призначенням команду SVC
мають також процесори архітектури ARM.
Див. також
Примітки
- Погорелый С. Д., Слободанюк Т. Ф. Программное обеспечение микропроцессорных систем: Справочник. — (рос.).
- Левчук, О. М. (2016). Мікроконтролерні та робототехнічні системи.
- Евстифеев А. В. Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL. — 2. — Москва : Издательский дом «Додэка–XXI», 2005. — 560 с. з джерела 2 грудня 2021
Література
- Лисенков М. О. Обчислювальні та мікропроцесорні засоби в електронних апаратах. Навч. посібник для студентів усіх форм навчання спеціальностей: 7.091001, 7.091002, 7.091003, 7.091004 вищих навчальних закдадів. — Харків: ХНУРЕ, 2002. — 132 с.
- Смирнова Н. В., Смирнов В. В. Метод организации параллельного выполнения задач в микроконтроллерах с малым объемом памяти программ //Збірник наукових праць Кіровоградського національного технічного університету. Техніка в сільськогосподарському виробництві, галузеве машинобудування, автоматизація. — 2015. — №. 28. — С. 317—321. Режим доступа: http://www.irbis-nbuv.gov.ua/cgi-bin/irbis_nbuv/cgiirbis_64.exe?C21COM=2&I21DBN=UJRN&P21DBN=UJRN&IMAGE_FILE_DOWNLOAD=1&Image_file_name=PDF/znpkntu_2015_28_52.pdf
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Ця стаття потребує додаткових для поліпшення її . (лютий 2018) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Pererivannya angl interrupt signal sho povidomlyaye procesor abo mikrokontroler pro nastannya yakoyi nebud podiyi yaka potrebuye nevidkladnoyi uvagi shodo yiyi obrobki Pri comu vikonannya potochnoyi poslidovnosti komand mozhe prizupinitisya u vipadku odnoprocesornoyi sistemi a keruvannya peredayetsya obrobniku pererivannya yakij reaguye na podiyu ta obslugovuye yiyi pislya chogo povertaye keruvannya v perervanij kod KlasifikaciyaZalezhno vid dzherela viniknennya signalu pererivannya podilyayutsya na Asinhronni abo zovnishni aparatni podiyi yaki stvoreni zovnishnimi dzherelami napriklad periferijnimi pristroyami ta mozhut vidbutisya v dovilnij moment signal vid tajmera merezhevoyi karti abo diskovogo nakopichuvacha natiskannya klavish klaviaturi ruh mishi Sinhronni abo vnutrishni vinyatkovi situaciyi u samomu procesori yak rezultat porushennya yakihos umov pri vikonanni mashinnogo kodu dilennya na nul abo perepovnennya zvernennya do nepripustimih adres abo nepripustimij kod operaciyi Programni chastkovij vipadok vnutrishnogo pererivannya iniciyuyutsya vikonannyam specialnoyi instrukciyi v kodi programi Programni pererivannya yak pravilo vikoristovuyutsya dlya zvernennya do funkcij vbudovanogo programnogo zabezpechennya firmware drajveriv j operacijnoyi sistemi Termin pastka angl trap inodi vikoristovuyetsya yak sinonim terminu pererivannya chi vnutrishnye pererivannya Yak pravilo terminologiya vstanovlyuyetsya v dokumentaciyi virobnika konkretnoyi arhitekturi procesora Obrobka pererivannyaPri viniknenni pererivannya procesor zberigaye v steku vmistu lichilnika komand i zavantazhuye v nogo adresu vidpovidnogo vektora pererivannya v yakomu yak pravilo mistitsya komanda bezumovnogo perehodu do pidprogrami obrobki pererivannya Ostannoyu komandoyu pidprogrami obrobnika pererivan maye buti komanda povernennya z pererivannya yaka zabezpechuye povernennya v osnovnu programu shlyahom vidnovlennya znachennya zazdalegid zberezhenogo lichilnika komand Obrobka pererivan vidbuvayetsya vidpovidno do zagalnih principiv obrobki pererivan u mikroprocesornij tehnici Modul pererivan prijmaye zapiti pererivannya j organizovuye perehid do vikonannya viznachenoyi programi Zapiti pererivannya mozhut nadhoditi yak vid zovnishnih tak i vid vnutrishnih dzherel napriklad u mikrokontrolerah abo sistemah na chipi Dlya prijmannya zapitiv vid zovnishnih dzherel vikoristovuyutsya vivodi portiv vvodu vivodu dlya yakih cya funkciya ye alternativnoyu Dzherelami zapitiv zovnishnih pererivan takozh mozhut buti bud yaki zmini zovnishnih signaliv na deyakih specialno vidilenih liniyah portiv vvodu vivodu Yaksho pererivannya vidbuvayetsya pid chas vikonannya komandi sho trivaye dekilka cikliv pered viklikom pererivannya zavershuyetsya vikonannya ciyeyi komandi Pislya vihodu z pererivannya mikroprocesor zavzhdi vikonuye she odnu komandu persh nizh perejti do yakogo nebud inshogo vidkladenogo pererivannya 239 MaskuvannyaZalezhno vid mozhlivosti zaboroni zovnishni pererivannya podilyayutsya na ti sho mozhna maskuvati pererivannya yaki mozhna zaboronyati ustanovkoyu vidpovidnih bitiv u registri maskuvannya pererivan v x86 procesorah skidannyam IF u registri stanu FLAGS abo EFLAGS ti sho ne mozhna maskuvati angl Non maskable interrupt NMI obroblyayutsya zavzhdi nezalezhno vid zaboron na inshi pererivannya Napriklad take pererivannya mozhe buti viklikane zboyem v mikroshemi pam yati Obrobniki pererivan zazvichaj pishutsya takim chinom shob chas yih obrobki buv yakomoga menshim oskilki pid chas yih roboti mozhut ne obroblyatisya inshi pererivannya a yaksho yih bude bagato osoblivo vid odnogo dzherela to voni mozhut gubitisya Prioritezaciya pererivanDo zakinchennya obrobki pererivannya zazvichaj vstanovlyuyetsya zaborona na obrobku cogo tipu pererivannya shob procesor ne vhodiv do ciklu obrobki odnogo pererivannya Klasifikaciya prioritetiv Prioritezaciya oznachaye sho vsi dzherela pererivan dilyatsya na klasi j kozhnomu klasu priznachayetsya svij riven prioritetu zapitu na pererivannya Prioriteti mozhut obslugovuvatisya yak vidnosni i absolyutni Vidnosne obslugovuvannya pererivan oznachaye sho yaksho pid chas obrobki pererivannya nadhodit prioritetnishe pererivannya to ce pererivannya bude obrobleno tilki pislya zavershennya potochnoyi proceduri obrobki pererivannya Absolyutne obslugovuvannya pererivan oznachaye sho koli pid chas obrobki pererivannya nadhodit prioritetnishe pererivannya to potochna procedura obrobki pererivannya vitisnyayetsya i procesor pochinaye vikonuvati obrobku tilki no otrimanogo bilsh prioritetnogo pererivannya Pislya zavershennya ciyeyi proceduri procesor povertayetsya do vikonannya vitisnenoyi proceduri obrobki pererivannya yaksho ne z yavilosya novih Prote rizni operacijni sistemi mayut riznu filosofiyu obrobki pererivan i danij proces mozhe znachno modifikuvatisya dlya otrimannya optimalnoyi produktivnosti u zalezhnosti vid navantazhennya na sistemu koristuvackih zvichok versiyi komponentiv sistemi aparatnogo obladnannya tosho Perehoplennya pererivannya zamina obrobnika pererivannya na svij vlasnij Tablicya pererivanDokladnishe Tablicya vektoriv pererivan Vektor pererivannya zakriplenij za pristroyem nomer yakij identifikuye vidpovidnij obrobnik pererivan Vektori pererivan ob yednuyutsya v tablicyu vektoriv pererivan sho mistit adresi obrobnikiv pererivan Roztashuvannya tablici zalezhit vid tipu ta rezhimu roboti procesora chi mikrokontrolera Vektorom pererivannya ye adresa proceduri obrobki pererivannya 230 Vektori pererivan vid riznih dzherel ob yednani v strukturu sho nazivayetsya tabliceyu vektoriv pererivan 231 Programne pererivannyaProgramne pererivannya sinhronne pererivannya yake mozhe zdijsniti programa za dopomogoyu specialnoyi instrukciyi Arhitektura x86 U procesorah arhitekturi x86 dlya yavnogo vikliku sinhronnogo pererivannya ye instrukciya Int argumentom yakoyi ye nomer pererivannya vid 0 do 255 V IBM PC sumisnih komp yuterah do pochatku zavantazhennya OS obrobku pererivan zdijsnyuyut pidprogrami BIOS Bud yakij vektor pererivannya mozhe buti perehoplenij kodom BIOS kart rozshiren napriklad merezhevih abo videokart operacijnoyu sistemoyu i navit zvichajnimi prikladnimi programami yaki postijno znahodyatsya v pam yati pid chas roboti inshih program t zv rezidentni programi Na vidminu vid v zahishenomu rezhimi x86 procesoriv zvichajni programi ne mozhut obslugovuvati pererivannya cya funkciya dostupna tilki sistemnomu kodu operacijnij sistemi MS DOS vikoristovuye dlya vzayemodiyi zi svoyimi modulyami i prikladnimi programami pererivannya z nomerami vid 20h do 3Fh chisla dani v shistnadcyatkovij sistemi chislennya yak ce prijnyato pri programuvanni movoyu asemblera x86 Napriklad dostup do osnovnoyi mnozhini funkcij MS DOS zdijsnyuyetsya vikonannyam instrukciyi Int 21h pri comu nomer funkciyi ta yiyi argumenti peredayutsya v registrah Cej rozpodil nomeriv pererivan ne zakriplenij aparatno ta inshi programi mozhut vstanovlyuvati svoyi obrobniki pererivan zamist abo poverh vzhe nayavnih obrobnikiv vstanovlenih MS DOS abo inshimi programami sho yak pravilo vikoristovuyetsya dlya zmini funkcionalu abo rozshirennya spisku sistemnih funkcij Takozh ciyeyu mozhlivistyu koristuyutsya virusi Inshi arhitekturi U procesorah inshih arhitektur termin programne pererivannya mozhe buti sinonimom ponyattyu sistemnij viklik Napriklad instrukciya SVC angl Supervisor Call u arhitekturi IBM System 360 viklikaye zaznachenu funkciyu u supervizori operacijnoyi sistemi Analogichnu za mnemonikoyu i priznachennyam komandu SVC mayut takozh procesori arhitekturi ARM Div takozhKontroler pererivan DPC Procesor ta mikroprocesor Kontroler komp yuterna tehnika PrimitkiPogorelyj S D Slobodanyuk T F Programmnoe obespechenie mikroprocessornyh sistem Spravochnik ISBN 5 335 00169 0 ros Levchuk O M 2016 Mikrokontrolerni ta robototehnichni sistemi Evstifeev A V Mikrokontrollery AVR semejstv Tiny i Mega firmy ATMEL 2 Moskva Izdatelskij dom Dodeka XXI 2005 560 s z dzherela 2 grudnya 2021LiteraturaLisenkov M O Obchislyuvalni ta mikroprocesorni zasobi v elektronnih aparatah Navch posibnik dlya studentiv usih form navchannya specialnostej 7 091001 7 091002 7 091003 7 091004 vishih navchalnih zakdadiv Harkiv HNURE 2002 132 s Smirnova N V Smirnov V V Metod organizacii parallelnogo vypolneniya zadach v mikrokontrollerah s malym obemom pamyati programm Zbirnik naukovih prac Kirovogradskogo nacionalnogo tehnichnogo universitetu Tehnika v silskogospodarskomu virobnictvi galuzeve mashinobuduvannya avtomatizaciya 2015 28 S 317 321 Rezhim dostupa http www irbis nbuv gov ua cgi bin irbis nbuv cgiirbis 64 exe C21COM 2 amp I21DBN UJRN amp P21DBN UJRN amp IMAGE FILE DOWNLOAD 1 amp Image file name PDF znpkntu 2015 28 52 pdf Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno lyutij 2018