Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Деректер құрылымы
жалпы түсінік
Data structure
the general concept
Үзіліс векторлық кестесі (IVT) – үзіліс векторларының кестесінде үзіліс сұранымдары тізімін үзіліс өңдеушілер тізімімен байланыстыратын деректер құрылымы. Үзіліс векторлық кестесінің әрбір жазбасы, үзіліс векторы деп аталады, ол үзіліс өңдеушінің (ISR деп те аталады) мекенжайы болып табылады. Бұл түсінік процессор архитектураларында кеңінен қолданылса да, IVT архитектураға қатысты әртүрлі тәсілдермен жүзеге асырылуы мүмкін. Мысалы, диспетчерлік кесте – үзіліс векторлық кестесін жүзеге асырудың бір жолы.
An interrupt vector table (IVT) is a data structure that associates a list of interrupt handlers with a list of interrupt requests in a table of interrupt vectors. Each entry of the interrupt vector table, called an interrupt vector, is the address of an interrupt handler (also known as ISR). While the concept is common across processor architectures, IVTs may be implemented in architecture specific fashions. For example, a dispatch table is one method of implementing an interrupt vector table.
Өмірбаян
Көптеген процессорларда үзіліс векторлық кесте болады, оның ішінде Intel, AMD, Infineon, Microchip Atmel, NXP, ARM сияқты чиптер де бар.
Most processors have an interrupt vector table, including chips from Intel, AMD, Infineon, Microchip Atmel, NXP, ARM etc.
"Ескірген"
"Алдын ала анықталған" әдіс бағдарламалық тіркеуішті (ПК) тікелей үзіліс векторлық кестесіндегі бір жазбаның мекенжайымен жүктейді. Секіру кестесінің өзінде орындалатын код болады. Теориялық тұрғыдан алғанда, өте қысқа үзіліс қызметі толығымен үзіліс векторлық кестесінде сақталуы мүмкін, бірақ практикада әрбір жазбадағы код – сол үзіліс үшін толық үзіліс қызметтік бағдарламасына (ISR) секіретін бір секіру командасы болып табылады. Intel 8080, Atmel AVR және барлық 8051 және Microchip микроконтроллерлері алдын ала анықталған әдісті пайдаланады.
The "predefined" method loads the program counter (PC) directly with the address of some entry inside the interrupt vector table. The jump table itself contains executable code. While in principle an extremely short interrupt handler could be stored entirely inside the interrupt vector table, in practice the code at each entry is a single jump instruction that jumps to the full interrupt service routine (ISR) for that interrupt. The Intel 8080, Atmel AVR and all 8051 and Microchip microcontrollers use the predefined approach.
"Қалпына келтіру"
"Алып келу" әдісі ПК-ны тікелей емес жолмен жүктейді, үзіліс векторлық кестесіндегі бір жазбаның мекенжайын пайдаланып сол кестеден мекенжайды алады, содан кейін ПК-ны осы мекенжаймен жүктейді. IVT-ның әрбір жазбасы үзіліс қызметтік бағдарламасының мекенжайы болып табылады. Барлық Motorola/Freescale микроконтроллерлері "алып келу" әдісін қолданады.
The "fetch" method loads the PC indirectly, using the address of some entry inside the interrupt vector table to pull an address out of that table, and then loading the PC with that address. Each and every entry of the IVT is the address of an interrupt service routine. All Motorola/Freescale microcontrollers use the fetch method.
"Қосуды растау"
"Үзіліс растау" әдісі үшін сыртқы құрылғы CPU-ға үзіліс өңдеушінің нөмірін жібереді. Үзіліс растау әдісі Intel Pentium және көптеген ескі микропроцессорлармен қолданылады. CPU үзіліс алған кезде, үзіліс векторы кестесінен үзіліс өңдеушіні тауып, басқаруды оған жүктейді.
For the "interrupt acknowledge" method, the external device gives the CPU an interrupt handler number. The interrupt acknowledge method is used by the Intel Pentium and many older microprocessors. When the CPU is affected by an interrupt, it looks up the interrupt handler in the interrupt vector table, and transfers control to it.