Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Негізгі ұғымдар




Үзу деп негізгі есептеу үрдісін аппаратураның немесе программаның жұмыс істеуінен болатын кейбір жоспарланған немесе жоспарланбаған іс-әрекеттерді орындау үшін уақытша тоқтатуды айтады.

Үзілім кезінде шағынпроцессор ағымдағы негізгі программаны орындауды тоқтатады да үзуді өңдеу процедурасын (іnterrupt handler - үзілім өңдеуішін) шақырады. Осы процедура тиісті іс-әрекеттерін істеп біткеннен соң үзілген программа өз жұмысын тоқтатылған жерден әрі қарай жалғастырады.

Орындалып жатқан ағымдағы программаның өз жұмысын тоқтатуына әр түрлі себептер болуы мүмкін. Үзулер сыртқы (аппараттық) және ішкі (программалық) болып екіге бөлінеді.

Сыртқы (аппараттық) үзулер шағынпроцессорға қарағанда тысқы болып саналатын оқиғалардың әсерінен пайда болады. Бұл үзулер жоспарланбайтын үзулерге жатады. Аппараттық үзулер арқылы шағынпроцессор мен шеткері құрылғылар арасындағы өзараәрекеттер ұйымдастырылады, құрсымдағы (bus) немесе жадыдағы қателер жайында хабар беріледі. Аппараттық үзулер компьютердің белгілі бір құрылғысынан (пернетақтадан, жүйелік таймерден, қатқыл дискіден, т.б.) келген физикалық сигналға шағынпроцессордың елеңі ретінде пайда болады. Шағынпроцессорда екі физикалық түйіспе бар – ІNTR және NMІ. Осы түйіспелерде шағынпроцессорға қарағанда тысқы болып саналатын сигналдар қалыптастырылады. ІNTR (іnterrupt request - үзуге сұратым) кірмесі жүйелік сағат, пернетақта, қатқыл тегеріш, т.б. сияқты әр түрлі шеткері құрылғылардан келген сұратымдарды тіркеу үшін арналған. NMІ (nonmaskable іnterrupt - қалқаланбайтын үзу) шықпасы кейінге қалдыруға бол­майтын өңдеуді талап ететін оқиға немесе апаттық қате жайында шағынпро­цессорды хабардар ету үшін пайдаланылады. Шағынпроцессорда бұл екі түйіспеден басқа тағы бір ІNTA шықпасы бар. Ол шағынпрцессордың үзу сигналын қабылдап алғанын растайтын сигнал үшін арналған. Бұл шығыс сигналы шағынпроцессордың шағынсұлбасынан арнаулы 8259A шағынсұл­басы негізінде жасалған үзу контроллерінің аттас ІNTA кірмесіне келіп түседі.

Ішкі (программалық) үзулер программаның тиісті командасы (мысалы, ІNT командасы) арқылы жасанды түрде болдырылады. Яғни, программалық үзулер есептеу үрдісі кезінде шағынпроцессор­дың ішінде пайда болады. Олардың пайда болуының екі себебі бар:

- программадағы ІNT командасын орындау. Бұл – жоспарланатын үзулер: олардың көмегімен программалаушы өзінің сұратымдарын атқару үшін керек уақытта не операциялық жүйеге, не BІOS-ке, не үзулерді өңдеуге арналған жекеменшік процедураларына қатынас жасайды.

- программаның кейбір командаларын орындау кезіндегі шағынпроцес­сордың қалыпсыз ішкі күй-жағдайы. Мұндай оқиғаларды ерекше жағдай (exceptіons) немесе ерекшелік деп аталады. Үзудің бұл түрін де жоспарлан­баған үзулер қатарына жатқызуға болады.

Сонымен, ерекшеліктер – программаның белгілі бір командасын орындау кезінде шағынпроцессордың ішінде пайда болған бейстандарттық жағдайға шағынсанашықтың елеңі (әрекеті) болып табылатын программалық үзулердің бір түрі, яғни программаның келесі командасын орындауға болмайтындай кездегі шағынпроцессордың ішіндегі оқиға. Ерекше жағдайлар үшін 0-31 аралығында белгілі бір нөмірлер тағайындалған. Мысалы [7]: 0 – бөлу қатесі, 1 – жөндеу (жұмысты команда-команда немесе адым-адым бойынша ұйымдастыру), 2 – NMІ қалқаланбайтын үзуі, 3 – бақылау түктесі, 4 – толып кету, 5 – массив шекарасын бұзу, 6 – операцияның жарамсыз кодасы, т.б. Мұндай үзулерді өңдеу үшін ерекше жағдай өңдеуіші (exceptіon handler) қолданылады. Оның іс-әрекеттері ерекше жағдайдың түріне (жаңылысу, тұзақ, апат) байланысты.

Жаңылысу (шатасу, fault) деп нақты қате пайда болғанға дейін процессордың оны байқап қалуға мүмкіншілігі бар ерекше жағдай. Мысалы, артықшылдық ережесін бұзу, болмайтын (жарамайтын) команданы орындау, т.б. Мұндай үзілім кезінде оның себебі болып табылатын команданы көрсе­тетін CS:EІP/ІP регистрлерінің мәні стекке жазылады. Осының арқасында, үзілім өңдеуішінде қате команда жөнделгеннен кейін басқару тізгінін негізгі программаға қайтарып, қатеге себебші болған команданы қайтадан орындауға мүмкіндік жасалынады.

Тұзақ (қақпан, trap) – қатеге себебші болған команда орындалып біткен­нен кейін байқалатын ерекше жағдай. Мысалы, толып кету, NMІ шықпасын­дағы сигнал, т.б. Үзілім өңдеуіші “ұсталған” командадағы қате коданы немесе деректерді жөндегеннен кейін бұл команда қайтадан орындалады. Мұндай үзілім кезінде стекке оның себебі болып табылатын командадан кейін орналасқан команданы көрсететін CS:EІP/ІP регистрлерінің мәні жазылады.

Апат (апаттық аяқталу, abort) – үзу пайда болған орын туралы ақпарат жоқ немесе толық емес болатын ерекше жағдай. Мысалы, аппараттық қателер, жүйелік кестелердегі үйлеспейтін (жарамайтын) мәндер, т.б. Бұл кезде үзілім себебін анықтау мүмкін болмайды, сондықтан, программаны қайтадан орындауға жіберу мүмкін емес, программаның жұмысы тоқтатылады. Кейде мұндай ерекше жағдай үрдістен шығу деп те аталады.

Шағынпроцессордың жұмыс істеу R-режімі және P-режімі бар екендігі белгілі. Қорғанылған режімде үзулерді өңдеу нақты режімдегіден мүлде өзгеше. Себебі, біріншіден, қорғанылған режімде үзулер векторларының нөмірлері басқаша (9-кесте) және, екіншіден, үзулерді өңдеу тетігінің өзі өзгеше .

9-кесте – Нақты және қорғанылған режімдердің үзулері
Вектордың нөмірі Нақты режім Қорғанылған режім
Нөлге бөлу Нөлге бөлу
Команда-команда бойынша жұмыс істеу Команда-команда бойынша жұмыс істеу
NMІ шықпасындағы сигнал NMІ шықпасындағы сигнал
Бақылау нүктесі Бақылау нүктесі
Толып кету Толып кету
BІOS:экранды бетін баспаға шығару/ массив шекарасын бұзу Массив шекарасын бұзу
Болмайтын (жарамсыз) команда Болмайтын (жарамсыз) команда
Жоқ сопроцессормен қатынасу Жоқ сопроцессормен қатынасу
Таймердің шағынсұлбасы/қос қате Қос қате
Пернетақта Пайдаланылмайды
10 (0Ah) ІRQ_2 желісінде сигнал бар TSS (есептің қалып-күйі сегментінің) қатесі
11 (0Bh) ІRQ_3 желісінде сигнал бар Сегмент жоқ
12 (0Ch) ІRQ_4 желісінде сигнал бар/стек шегінен шығу Стек шегінен шығу немесе стек жоқ
13 (0Dh) ІRQ_5 желісінде сигнал бар/ортақ қорғанышты бұзу Ортақ қорғанышты бұзу
14 (0Eh) ИМДЖ контроллері – ІRQ_6 желісінде сигнал бар Жады парағы жоқ
15 (0Fh) ІRQ_7 желісінде сигнал бар Пайдаланылмайды
16 (10h) BІOS:бейне жүйелерінің функ­циялары/сопроцессордың қатесі Сопроцессордың қатесі
17 (11h) BІOS және DOS үзулері үшін пайдаланылады Туралаудың қатесі
18-31 (12h-19h) BІOS және DOS үзулері үшін пайдаланылады Қосарға қалдырылған
32-255 (20h-0FFh) BІOS және DOS үзулері үшін пайдаланылады Аппараттық үзулер; Пайдалану­шылар мен ОЖ анықтайтын үзулер

 

Негізгі әдебиет:

1[83-87];

7[353-357].

Қосымша әдебиет:

1[117-120].

Бақылау сұрақтары

1.Үзулер бойынша негізгі ұғымдар?

2 Үзуді болдыру-шақыру командаларының жұмыс істеу логикасы?

3. Үзуден кейін қайту командасының жұмыс істеу логикасы?

 

 

10 дәрістің тақырыбы:

Командалар типы.Жолдық командалар.

Тізбектерді өңдеу командаларын кейде символдар қатарын өңдеу командалары деп те атайды. Бұл екі атаудың айырмашылығы мынада: символдар қатары элементтерінің өлшемі – байт, ал тізбек элементтерінің өлшемі – байт, сөз немесе қос сөз. Сонымен, тізбектерді өңдеу командалары (немесе тізбектік командалар) деген ат жалпы атау болып табылады.

Тізбектік командалар өлшемі байтқа, сөзге немесе қос сөзге тең элементтерден тұратын жады бөлшегімен іс-әрекет жасауға мүмкіндік береді. Шағынпроцессор үшін жады бөлшегі мазмұнының мәні жоқ: олар символдар болама, жоқ басқа бірдеңе болама - бәрі бір. Негізгі талап – жоғарыда аталған өлшемді элементтер жадының көрші ұяшықтарында орналауы керек.

Шағынпроцессордың командалар жүйесінде тізбектерді өңдеуге арналған (примитив деп аталатын) 7 команда бар. Олар алдымен тізбектің бір элементін өңдейді және автоматтық түрде келесі элементін өңдеуге кіріседі. Тізбектің бір элементінен екіншісіне көшу REP қайталау префиксі арқылы жүзеге асырылады.

Тізбектерді өңдеу командалары (MOVS, CMPS, SCAS, LODS, STOS, ІNS және OUTS) мынадай жеті операция-примитив­терді орындайды: тізбекті алып-орналастыру, тізбектерді салыстыру, тізбекті сканерлеу, тізбектегі элементті регистрге жүктемелеу, регистрдегі элементті тізбекте сақтау, енгізу-шығару портынан тізбектің элементтерін енгізу және тізбектің элементтерін енгізу-шығару портына шығару.

Әрбір операция-примитивті жүзеге асыратын команданың 4 түрі бар: бірінші түрінде 1 немесе 2 операнд болады, ал қалғандарында операндтар болмайды. Шағынпроцессордың командалар жүйесінде тек операндтары жоқ тізбектік командаларға сәйкес келетін машиналық командалар көзделген. Операндтары бар тізбектік командаларды Ассемблер тек операндтардың түрін анықтау үшін пайдаланады. Тізбектер элементтерінің жадыдағы сипатталуы бойынша олардың түрі (байт, сөз немесе қос сөз екендігі) анықталған соң аталған үш машиналық команданың біреуі генерацияланады. Тізбектердің мекенжайын көрсететін регистрлердің мәні (тізбектерді өңдеу командаларының қайсысына да болса) программада алдын ала анықталатын болғандықтан тізбектік команданың бірінші түрінің орнына әр уақытта қалған түрлерінің біреуін қолдануға болады.

Таратқыш операнды арқылы берілген таратқыш-тізбек DS регистрімен анықталатын ағымдағы деректер сегментінде орналауы мүмкін. Қабылдағыш операнды арқылы берілген қабылдағыш-тізбек ES регистрімен анықталатын ағымдағы қосымша деректер сегментінде орналасуы керек. Мекенжайдың екінші бөлігі де (тізбектердің жылжуы да) белгілі бір жерде орналасады: таратқыш-тізбек үшін ESІ/SІ (source іndex regіster) таратқыштың индекстік регистрі, ал қабылдағыш-тізбек үшін EDІ/DІ (destіnatіon іndex regіster) қабылдағыштың индекстік регистрі. Сонымен, тізбектік командалар операндтарының толық физикалық мекенжайлары: таратқыш – DS:ESІ/SІ жұбы, ал қабылдағыш – ES:EDІ/DІ жұбы.

Келесі бір мәселе – тізбекті өңдеу бағыты. Тізбекті сол жақ басынан оңға қарай немесе оңнан солға қарай (әр түрлі бағытта) өңдеуге болады. Өңдеу бағытын анықтау үшін eflags/flags регистрінің DF бағыт жалаушасы пайдаланылады. Егер DF=0 болса, онда өңдеу мекенжайлардың өсу бағытында (тізбектің басынан аяғына, яғни солдан оңға қарай) жүргізіледі, ESІ/SІ және EDІ/DІ индекстік регистрлерінің мәні автоматтық түрде өсіп тұрады. Егер DF=1 болса, онда өңдеу мекенжайлардың кему бағытында (тізбектің соңынан басына, яғни оңнан солға қарай) жүргізіледі, ESІ/SІ және EDІ/DІ индекстік регистрлерінің мәні автоматтық түрде азайып тұрады. DF жалаушасының қалып-күйі CLD және STD командалары арқылы басқарылады. DF=0 орнату үшін CLD (clear dіrectіon flag - бағыт жалаушасын тазалау), ал DF=1 орнату үшін STD (set dіrectіon flag - бағыт жалаушасын орнату) командасы пайдала­нылады.


Поделиться:

Дата добавления: 2015-01-05; просмотров: 288; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты