ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ

 Алматы энергетика және байланыс институты

коммерциялық емес акционерлік қоғамы

  

 

О.Т. Шанаев

МИКРОПРОЦЕССОРЛЫҚ ЖҮЙЕЛЕР

 Оқу құралы

 

Алматы 2009

Оқу құралында жеке микропроцесорлар мен микропроцессорлық жинам микросхемаларының негізіндегі дәстүрлі микропроцессорлық жүйелердің құрама бөліктері, олардың құрылым принциптері және жүйе жұмысының ұйымдастырылу тәртібі қарастырылады. Микропроцессорлардың негізгі құрылым принциптері мен жұмыс тәртібін түсіндіру ыңғайлылығы үшін нақтылы Intel 8085 микропроцессоры алынып, оның ішкі құрама блоктары мен оның іс-әрекетін басқарушы бағдарламаларының құрылу негіздері қарастырылады.

Оқу құралында берілген материалдарды оқып, игеру арқылы студенттердің микропроцессорлық жүйелердің құрылым принциптері және олардың жұмыс тәртібі жөніндегі білімі қалыптастырылып, олардың оқу барысының келесі кезеңдерінде оқылатын арнайы пәндерді игеруіне немесе өздік жұмыс арқылы білім деңгейін көтеруіне қажетті түпнегіз қаланады.

 

Кіріспе

Микропроцессорлық жүйе (МПЖ) – есептеу, бақылау-өлшеу және басқару жұмыстарын атқаруға арналған, микропроцессор негізіндегі электрондық құрылымдардың жалпылама аталымы. Олардың кіріс және шығыс сигналдары ретінде аналогты сигналдар, жеке цифрлық сигналдар, цифрлық кодтар, цифрлық кодтардың тізбелері пайдаланалуы мүмкін. Микропроцессорлық жүйелерде информацияның өңделуі және сақталуы цифрлық түрде жүргізілетіндіктен, оларға түсетін аналогты кіріс сигналдары аналогты-цифрлы түрлендіргіштер (АЦТ) арқылы таңдалым кодтарының тізбесіне түрлендіріледі, ал олардан өңдеу нәтижесі ретінде шығарылатын аналогты шығыс сигналдары таңдалым кодтарының тізбесінен цифрлы-аналогты түрлендіргіштер (ЦАТ) арқылы қалыптастырылады.

Дәстүрлі цифрлық жүйелердегі информацияның өңделу және сақталу алгоритмдері жүйенің схемақұралысымен ғана анықталады, яғни өзге алгоритмге көшу үшін, оны жүйе құрамындағы электрондық буындардың өзара байланыстарын өзгерту арқылы немесе осы буындарды олардың қойылған мәселеге жарамды түріне ауыстыру арқылы ғана жүзеге асыруға болады немесе жүйенің құрылымын толықтай өзгертуге тура келеді. Әрине, бұндай түрлендірімдердің жүйе жұмысының барысында жүргізілуі мүмкін емес, ол үшін жүйені қайтадан құру керек болады. Тап осы себептен дәстүрлі цифрлық жүйе көбіне “тастай логикалы” жүйе деп аталады.

Кез келген “тастай логикалы” жүйе – алдын ала белгілі жеке бір мәселені (немесе бірнеше жуық мәселелерді) шешуге арналған арнайы жүйе. Оның күмәнсіз артықшылықтары бар.

Біріншіден, арнайы жүйенің құрамында артық элемент болмайды, оның әрбір элементі міндетті түрде толыққанды жұмыс атқарады (әрине, жүйенің дұрыс жобаланғандығында).

Екіншіден, арнайы жүйеде информацияны өңдеу алгоритмінің орындалу жылдамдығы оның құрамындағы логикалық элементтердің тезәрекеттілігімен және олардың нақтылы байланыстарымен ғана анықталатындықтан, бұндай құрылымдар аса жоғары тезәрекеттілікті қамтамасыз ете алады.

“Тастай логикалы” жүйенің басты кемістігі – әрбір жаңа мәселені шешу үшін оны қайта құру қажеттігінде. Ал бұл – ұзаққа созылатын және қосымша қаражат талап ететін жұмыс.

Бұл кемістіктен құтылу үшін, кез келген мәселеге жеңіл икемделетін жүйе құру керек, яғни, оның шешілетін мәселеге байланысты (құрылымды өзгертпестен) жұмыс алгоритмін (жүйенің жұмыс бағдарламасын) ауыстыру мүмкіншілігі болу керек. Бұндай “икемді логикалы” жүйе әмбебап немесе бағдарламалы жүйеге айналады, микропроцессорлық жүйе тап осындай жүйеге жатады.

Әмбебаптылыққа жету ұтылысқа да әкеледі. Аса күрделі мәселені шешу үшін (қарапайым мәселелермен салыстырғанда) көбірек құрал қажет болады. Сондықтан, әмбебап жүйенің құрамы ең күрделі мәселенің шешілу мүмкіндігін қамтамасыз ету керек. Әрине, қарапайым мәселенің шешілуі кезінде бұндай жүйенің бар мүмкіншілігі толыққанды пайдаланылмайды. Сонымен қатар, әмбаптылық жүйенің (оның құрылымының күрделенуіне байланысты) тезәрекеттілігін де төмендетеді.

Сонымен, келесі қорытындыға келуге болады: “тастай логикалы” жүйелер, аса жоғары тезәрекеттілікті қажет қылатын, өңделу алгоритмдері қарапайым түрдегі, жеке мәселелерге ыңғайлы келеді. Ал әмбебап, бағдарламалы жүйелер, онша тезәрекеттілікті қажет қылмайтын, шешетін мәселелері жиі өзгеріп отыратын және олардың шешілуі күрделі алгоритмдермен  жүзеге асырылатын жағдайларға  ыңғайлы келеді.

Бірақ соңғы кезде шығарылған әмбебап (микропроцессорлық) жүйелердің тезәрекеттілігі аса (бірнеше дәрежеге) көтерілді және бұндай жүйелерге арналған микросхемалардың шығарылым көлемінің ұлғаюы олардың құнының төмендеуіне әкелді. Оның нәтижесінде “тастай логикалы” жүйелердің қолданылым аймағы тарыла түсті. Бұған қоса, қазіргі заманда ішкі құрылымын бағдарламалы тәсілмен өзгерту арқылы жеке мәселелерді шешуге тез икемделетін микросхемалардың шығарылым технологиясы аса қарқынды дамып келе жатыр. Олар “тастай логикалы” жүйелердің тезәрекеттілігі мен бағдарламалы жүйелердің икемділігін біріктіреді. “Бағдарламалы құрылымдарға” қатысты мәселелер бұл оқу құралында қарастырылмайды.

Оқу құралының бірінші бөлімінде микропроцессорлық жүйелердің құрылым принциптері және олардың құрама бөліктері туралы жалпы түсініктер берілген.

Оқу құралының екінші бөлімінде, жалпы түрде микропроцессорлық жүйе (МПЖ) деп аталатын, есептеу, бақылау-өлшеу және басқару жүйелерінің құрамындағы басты құрылғысы саналатын, микропроцессорлардың құрылымы мен олардың іс-әрекеттерінің ұйымдастырылу тәртібін тиянақты таныстыру мақсатында қарапайым Intel 8085 микропроцессорының ішкі құрылымы мен оның микропроцессорлық жүйенің құрамында қолданылу принциптері және олардың жұмысын басқарушы бағдарламалардың Ассемблер тілінде құрастырылу жолдары қарастырылады.

Оқу құралының үшінші бөлімінде микропроцессорлық жүйенің құрама бөліктері біріктірілген жеке кристалды микроконтроллерлердің құрылым принциптері мен олардың құрамына енгізілетін ерекше буындар қарастырылады.

Оқу құралы автордың өндіріс және педагогика саласындағы көпжылдық тәжірибесінің негізінде жазылды.

 

1 Микропроцессорлық жүйелер

1.1 Микропроцессорлық жүйелер жөніндегі жалпы түсініктер

Микропроцессорлық жүйелер (МПЖ) – есептеу, өлшеу-бақылау, басқару жүйелерінде және тұрмыстық техникада кеңінен қолданылатын, микропроцессорлар негізіндегі күрделі электрондық құрылымдардың жалпылама аталымы. Микропроцессорлық жүйелерді құрып, олармен жұмыс істеуді үйрену үшін оларға байланысты басты ұғымдарды түсініп, олардың жалпы құрылым принциптерін, оларды аппаратты және бағдарламалы жобалау тәсілдері мен жаңа заманғы жетілдірім жолдарын толық игеру керек болады.

Микропроцессорлық жүйенің негізін қалаушы және оның жұмысын жүзеге асырушы басты бөлігі – микропроцессор (МП). Микропроцессор жүйеде информацияның өңделуін және оның жан-жақты жіберілімін бағдарлама арқылы басқарады. Қойылған мәселенің орындалу тәртібі сәйкесті бағдарламаға, яғни алынған микропроцессорға тән (яғни, оның командалар жүйесіне кіретін) командалар тізбесінің орындалуы арқылы жүзеге асырылады.

Микропроцессорлық жүйенің құрамына микропроцессормен қатар жады құрылымдары және информацияны енгізу/шығару құрылғылары (сыртқы құрылғылар) кіреді. Микропроцессорлық жүйелердің бастапқы даму барысында олар, микропроцессорлық жинам түрінде біріктірілген, бірге қолдануға жарамды (яғни, архитектурасы мен электрлік параметрлері бойынша сәйкестірілген) микросхемалар негізінде құрылды.

Микропроцессорлық жүйелердің (МПЖ) құрылым негізіне үш принцип алынған:

-       модулдік;

-       магистралдік;

-       микробағдарламалы басқару.

Модулдік принцип жүйенің, қызметі жағынан толықтай бітірілген, жеке блоктар негізінде құрылатындығын сипаттайды. Әрбір модулдің, оны іске қосатын, рұқсат кірісі болады;  ондағы сигнал деңгейі модулдің үшінші (жоғары кедергілі) жағдайын, яғни оның жүйе желісіне қосылу/қосылмауын басқарады.

Магистралдік принцип МПЖ-нің қызмет блоктарының арасындағы байланыс сипатын анықтайды; жүйенің барлық блогы өзара жүйелік магистраль (жүйе желісі) арқылы жалғанады және сол арқылы информация алмасады.

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

Қазіргі заманда микропроцессорлық жүйелер, негізінде (80% шамасында), олардың қажетті қызмет бөліктері технологиялық тәсілмен құрамына енгізілген, микроконтроллерлерді пайдалану арқылы құрылады. Микропроцесорлар мен микропроцессорлық жинам микросхемаларының негізіндегі дәстүрлі микропроцессорлық жүйелер (олардың құрылу және реттелу процесінің күрделілігіне байланысты) қазіргі заманда сирек шығарылады. Микропроцессорлық жүйелердің бұл түрі, негізінде, өндірісте шығарылатын қалыпты микроконтроллерлердің қойылған талапқа сай сипаттамаларды қамтамасыз ете алмайтын жағдайында ғана құрылады.

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

1.1.1 Микропроцессорлық жүйенің орталық процессоры

Кез келген микропроцессорлық жүйенің орталық буыны – микропроцессор (Microprocessor), яғни жүйедегі информация өңделуі мен оның жан-жақты жіберілуі түгелдей осы микропроцессордың басқаруымен жүзеге асырылады. Микропроцессорлық жүйенің өзге буындары қосалқы қызметтер атқарады, олар: информацияны сақтау (оның ішінде басқару информациясын да, яғни жұмыс бағдарламасын да), сыртқы құрылғылармен байланыс, пайдаланушымен байланыс және т.б. Сонымен, процессор арифметикалық (қосу, алу және т.б.), және логикалық (ығыстыру, салыстыру, кодтарды жасыру және т.б.) функциялардың орындалуын,  кодтардың уақытша сақталуын (оның ішкі регистрлерінде), кодтардың микропроцессорлық жүйенің құрама буындары арасында жіберілуін және т.б. жұмыстарды жүзеге асырады. Процессор орындайтын, бұндай қарапайым операциялардың саны жүздеген болуы мүмкін.

Процессор операцияларды тізбелеп (яғни, бірінен соң бірін, кезектеп), орындайды. Әрине, кейбір операцияларды параллель орындайтын процессорлар да бар, қатар істеуші бірнеше процессордан құрылған көппроцессорлы жүйелер де кездеседі, бірақ олар ерекше жағдайлар. Бір жағынан қарастырғанда, операциялардың тізбелі орындалуы информация өңделуінің кез келген күрделі алгоритмін жалғыз процессор арқылы жүзеге асыруға мүмкіндік береді. Бірақ, екінші жағынан, операциялардың тізбелі орындалуы жүйенің жұмыс алгоритмінің орындалу ұзақтығын оның күрделілігіне тәуелді қылады, яғни күрделі алгоритмдер қарапайым алгоритмдерге қарағанда баяуырақ орындалады. Өңделуші информация ағымын микропроцессорлық жүйенің жалғыз буыны – микропроцессор арқылы өткізу керек болғандықтан, оның тезәрекеттілігі онша жоғары болмайды. Дәстүрлі цифрлық жүйеде информация ағымының параллель орындалуын ұйымдастыру қиын емес, бірақ ол үшін схеманы күрделендіруге тура келеді.

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

Процессордың орындай алатын командалары оның командалар жүйесін құрады. Процессордың командалар жүйесінің құрылымы мен көлемі оның тезәрекеттілігін, икемділігін, пайдаланылу ыңғайлылығын анықтайды. Командалар жүйесі, микропроцессордың түріне байланысты, жеке мәселелерді ғана шешуге икемделген (арнайы процессорларда) немесе алуан түрлі мәселелерді шешуге (әмбебап процессорларда) бағытталған болуы мүмкін. Команда кодтарының разряд саны әртүрлі болуы мүмкін (бір байттан бірнеше байтқа дейін). Командалардың орындалу ұзақтығы әртүрлі, сондықтан командалар жинамы түріндегі жеке бағдарламаның түгелдей орындалу ұзақтығы бағдарламадағы командалар санына ғана емес, онда қандай командалардың пайдаланылғандығына да тәуелді болады.

Командалардың орындалуын қамтамасыз ету үшін процессордың құрамына келесі буындар енгізілген, олар: жалпы қызмет регистрлерінің жинағы, арифметикалық-логикалық құрылғы (АЛҚ, ALU – Arithmetic Logic Unit), арнайы регистрлер, мультиплексорлар, буферлер және т.б. қызмет буындары. Микропроцессор буындарының жұмысы процессордың жалпы сыртқы тактілік сигналдары арқылы сәйкестіріледі.

Микропроцессорлық жүйені құрушының процессордың ішкі құрылымы жөнінде, оның нақтылы кіріс сигналдарына және басқару кодтарына жауап ретінде қандай операция орындайтыны және қандай шығыс сигналдарын шығаратындығы туралы толық түсінігі болу керек. Олармен қатар, ол міндетті түрде, процессордың командалар жүйесін, оның жұмыс режимдерін және процессордың сыртқы әлеммен байланыс тәртібін (яғни, дерек алмастыру хаттамасын) білу керек.

1.1.2 Микропроцессорлық жүйенің байланыс жүйесі

Дәстүрлі байланыс құрылымында жүйе құрамындағы әрбір құрылғы өзінің сигналдары мен кодтарын өзге құрылғыларға тәуелсіз, жеке байланыс жолдары арқылы жібереді. Бұл жағдайда жүйедегі байланыс жолының саны да, ондағы дерек алмастыру хаттамасы да (шешілетін мәселеге байланысты) әртүрлі болады.

Микропроцессорлық жүйелердің құрамындағы әртүрлі құрылғылардың арасындағы дерек алмастырылу хаттамаларының әмбебаптылығы мен қарапайымдылығын қамтамасыз ету үшін желілік байланыс жүйесі деп аталатын құрылым қолданылады.

Желілік байланысты жүйелерде құрылғылар арасындағы сигналдардың  барлығы да бір жолдармен, бірақ әртүрлі уақыт мезеттерінде жіберіледі (ол кезектелімді жіберілім деп аталады). Жіберілімнің екі бағытта да жүзеге асырылуы мүмкін (ол екібағытты жіберілім деп аталады). Нәтижесінде байланыыс жолдарының саны қысқарады және дерек алмастырылу тәртіптері (хаттамалары) қарапайымдалады. Сигналдардың немесе кодтардың жіберілетін жолдарының тобы желі (Bus) деп аталады.

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

Желілік байланысты жүйелер, негізінде, үш жағдайлы (3S, 3-state) шығысты микросхемалар арқылы құрылады. Ол микросхемалардың сәйкесті шығыстарын біріктіріп, кезектелімді немесе қосбағытты жолдар алуға мүмкіндік береді.

3S шығысты микросхемалардың қолданылымы кезінде жолға қосылған бір микросхеманың ғана шығыстары жандандырылып, ал өзгелерінің шығыстары үшінші (жоғарыкедергілі) жағдайында болуы қамтамасыз етілу керек.

Қалыпты микропроцессорлық жүйенің құрамына кіретін негізгі құрылғылар (1.1-сурет):

-       жүйеде информацияның өңделуін және оның жан-жақты жіберілімін жүзеге асыратын орталық процессор (ОП);

-       жүйенің жұмыс бағдарламаларын сақтауға арналған тұрақты жады (ROM – Read Only Memory);

-       жүйе жұмысына қажетті деректерді сақтауға арналған қызмет жадысы (RAM – Random Access Memory);

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

1.1 Сурет

Микропроцессорлық жүйенің  құрамындағы құрылғылардың барлығы ортақ жүйе желісі арқылы біріктілген (ол жүйе магистралі немесе байланыс арнасы деп те аталады). Жүйе магистраліне негізгі үш информациалық желі кіреді, олар:

-       адрес желісі АВ (Address Bus);

-       дерек желісі DB (Data Bus);

-       басқарым желісі СВ (Control Bus).

Дерек желісі – жүйе модулдерінің арасында дерек алмастырылуын қамтамасыз етуші, негізгі желі. Дерек желісі, оның деректерді екі бағытта да жіберуін қамтамасыз етуі керек болғандықтан, ол әрқашан екібағытты болады.

Адрес желісі – жадыға (немесе сыртқы құрылғыларға) нақтылы бағытталған байланысымды қамтамасыз етуші желі.

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

Басқару желісінің жолдарындағы сигналдар кезекті цикл түрін анықтайды және оның әртүрлі кезеңдеріне сәйкесті уақыт мезеттерін бекітеді. Онымен қатар, басқару сигналдары процессордың (немесе магистралдың өзге қожасының, бастаушының, master) жұмысын жадының немесе енгізу/шығару құрылғыларының (орындаушы құрылғының, slave) жұмысымен келістіреді.

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

Микропроцессорлық жүйенің  құрамындағы құрылғылардың барлығы да жүйе магистралына қосылған және олардың өзара информация алмасуы да осы магистраль арқылы жүзеге асырылады.

Енгізу/шығару құрылғыларын немесе сыртқы құрылғыларды (ЕШҚ немесе СҚ) жүйе магистралына қосу үшін олардың сигналдары нақтылы стандарттарға сәйкес келу керек, ол сәйкесті енгізу/шығару интерфейстері арқылы жүзеге асырылады.

1.1.3 Микропроцессорлық жүйенің жұмыс режимдері

Микропроцессорлық жүйені, жоғарыда айтылғандай, кез келген жұмысқа икемдеуге болады. Бұндай икемділік жүйенің орталық буыны –микропроцессор жұмысының сәйкесті бағдарлама (software) арқылы орындалуымен анықталады.  Микропроцессорлық жүйенің аппараттық құрылымы (hardware) шешілетін мәселеге байланысты өзгертілмейді. Қойылған мақсатқа сәйкесті бағдарлама құрып, оны жүйе жадысына енгізу арқылы, микропроцессорды, жүйенің аппаратық мүмкіндігі жететін, кез келген мәселені шешуге бағыттауға болады. Бұның үстіне, микропроцессорлық жүйенің байланыстарының желілік ұйымдастырылуы оның аппараттық модулдерін жаңартуға, мысалы, жүйе жадысын бұрынғысынан көлемдірек немесе тезәрекеттілеу түрлеріне ауыстыруға, оған жаңа енгізу/шығару құрылғыларын қосуға, тіпті микропроцессордың өзін де одан қуаттырақ түріне ауыстыруға мүмкіндік береді.

Микропроцессорлық жүйенің шешілетін мәселеге икемделуіне оның жұмыс режимін (яғни, жүйелік магистраль арқылы дерек алмастырылу режимін) таңдау мүмкіндігі де көмектеседі.

Кез келген микропроцессорлық жүйеде оның магистралі арқылы информация алмастырылуы негізгі үш түрлі режимде жүзеге асырылады, олар:

-       бағдарламалы-басқарылымды алмастыру;

-       үзілістер арқылы алмастыру (Interrupts);

-       жадыға тура шығу арқылы алмастыру (ЖТШ, DMADirect Memory Access).

Олардың ішіндегі негізгісі біріншісі, онсыз қалған алмастыру режимдері орындалмайды. Бұл режимде процессор жүйелік магистралдың жеке қожасы (Master) болады, яғни жүйе құрамындағы құрылғылар арасында информация алмастырылуы, орындалушы бағдарламаның анықтаған тәртібі бойынша, процессордың басқаруымен ғана жүзеге асырылады. Процессор жадыдан команда кодтарын оқиды (таңдап шығарады), сосын оларды орындап (яғни, жадыдан немесе енгізу/шығару құрылғысынан алынған деректерді осы командаларға сәйкесті өңдеп), өңдеу нәтижелерін жадыға жазады немесе енгізу/шығару құрылғысына жібереді.

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

-       сыртқы оқиғаның туғанын бағдарламалық тәсілмен бақылап отыру арқылы (ту тексеру тәсілі немесе Polling);

-       оқиғаның туғаны туралы сыртқы құрылғының жіберген үзіліс сұранысы арқылы (IRQ – Interrupt ReQuest).

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

Жадыға тура шығу режимінде (DMA – Direct Memory Access) қызмет қажет қылған сыртқы құрылғы процессорға сәйкесті сұраныс жібереді, оған жауап ретінде микропроцессор кезекті команданың орындалуын бітіргеннен кейін жүйе желісінен ажырап, сұраныс жіберген құрылғының жұмысына рұқсат береді. Жадыға тура шығу арқылы, негізінде, енгізу/шығару құрылғысы мен жады арасындағы информация жіберілуі жүзеге асырылады. Жадыға тура шығу арқылы дерек жіберілімін процессор емес, арнайы контроллер (ЖТШ контроллері) басқарады. Магистралді сұрап алған құрылғының жұмысы біткеннен кейін, магистраль босатылып, процессордың қарауына беріледі де, ол уақытша тоқтатылған негізгі бағдарламаның жұмысын жалғастырады.

1.1.4 Микропроцессорлық жүйенің архитектуралары

Осы кезеңге дейін біз микропроцессорлық жүйенің бір түрін, атап айтқанда ортақ желілі архитектурамен (ол Принстон немесе фон-Нейман архитектурасы деп аталады) құрылған түрін қарастырдық. Бұндай құрылымда  деректер мен командалар бір жадыда сақталады және олар жалғыз ортақ желі арқылы жіберіледі (1.2-сурет).

1. 2 Сурет

Микропроцессорлық жүйе архитектурасының бұдан басқа түрі де бар, ол – жеке желілі архитектура (ол Гарвард архитектурасы деп аталады). Бұндай құрылымда  деректер мен командалар олардың өздеріне арналған дербес жадыларда сақталады және олар әрбіреуіне сәйкесті дербес желілері арқылы жіберіледі (1.3-сурет).

1.3 Сурет

Ортақ желілі (фон-Нейман) архитектура екі желіге қатар жұмыс істеуді және олар арқылы дерек жіберілуін қатар бақылауды қажет қылмайды. Деректер мен командалардың жалғыз жадыда сақталуы жадыны олардың көлеміне байланысты бөлуге мүмкіндік береді. Мысалы, кейбір жағдайда күрделі және үлкен көлемді бағдарлама керек болып, ал деректер онша көп болмауы мүмкін. Басқа жағдайда, керісінше,  бағдарлама қарапайым, ал деректер үлкен көлемді болуы мүмкін. Жады аймағын осы жағдайларға байланысты бөлу ешқандай қиындық тудырмайды, әйтеуір – деректер мен командалар жүйе жадысына сыйса болды. Әдетте, осындай архитектуралы жүйелердің жадысы үлкен мөлшерлі болады (ондаған және жүздеген мегабайт). Ортақ желілі архитектура көбірек таралған, мысалы, дербес компьютерлерде осы архитектура қолданылады.

Ортақ желілі архитектурада жадыдан командалардың таңдалуы мен деректердің жадыдан немесе енгізу/шығару құрылғысынан қабылдануы немесе оларға жіберілуі жалғыз желі арқылы жүзеге асырылатындықтан, олар кезектеп жіберіледі, ал бұның жүйе жұмысында кідіріс тудыратындығы сөзсіз. Қазіргі заманғы процессорларда конвейерлік технологиялар мен кэш-жадыны пайдалану және тактілік жиілікті көтеру арқылы командалардың орындалу уақыты қысқартылып, жүйенің жұмыс жылдамдығы едәуір көтерілген. Бірақ, жүйенің тезәрекеттілігін одан әрі көтеру деректер мен командалардың жіберілімін қатарластыру арқылы ғана, яғни екіжелілі архитектураға ауысу арқылы жүзеге асырылады.

Екіжелілі (Гарвард) архитектурада әрбір желідегі жіберілімдер бір-біріне тәуелсіз және уақыт бойынша параллель түрде жүзеге асырылады. Бұған сәйкесті, желілердің құрылымын (адрес коды мен дерек кодтарының разряд санын, информация алмастырылуының тәртібі мен жылдамдығын және т.б.) әрбір желінің шешетін мәселесіне байланысты ыңғайлап таңдауға болады. Сонымен, екіжелілі архитектура микропопроцессорлық жүйенің жұмысын тездетеді.

Екіжелілі архитектураның қолданылатын негізгі аймағы – үлкен көлемді жадыны қажет қылмайтын, онша күрделі емес жұмыстарға арналған, бірақ аса жоғары тезәрекеттілікті қажет қылатын, жекекристалды микроконтроллерлер.

1.1.5 Микропроцессорлық жүйелердің түрлері

Микропроцессорлық техниканың қазіргі заманғы қолданылым аймағы ұшан байтақ, оларға қойылатын талап та алуан түрлі. Сондықтан, микропроцессорлық жүйелердің, қуаты, әмбебаптылығы, тезәрекеттілігі және құрылым ерекшеліктерімен ажыратылатын, бірнеше түрлері қалыптасқан. Олардың негізгі түрлері:

-       микропроцесорлар мен микропроцессорлық жинам микросхемаларының негізіндегі дәстүрлі микропроцессорлық жүйелер;

-       микроконтроллерлер – құрамына жүйе буындарының барлығы немесе көпшілігі енгізіліп, жеке микросхема түрінде орындалған, микропроцессорлық жүйенің ең таралған түрі;

-       контроллерлер – жеке модулдер түрінде орындалған, микропроцес-сорлық басқару жүйелері;

-       микрокомпьютерлер – сыртқы құрылғылармен ұштастырылу мүмкіндіктері аса дамытылған, қуаты жағынан көтеріңкі келетін, микропроцессорлық жүйелер;

-       компьютерлер (оның ішінде, дербес түрлері де) – аса қуатты және әмбебаптылығы жоғары дәрежедегі микропроцессорлық жүйелер.

Микропроцесорлар мен микропроцессорлық жинам микросхемаларының негізінде құрылатын дәстүрлі микропроцессорлық жүйелер өндірісте шығарылатын қалыпты микроконтроллерлердің қойылған талапқа сай сипаттамаларды қамтамасыз ете алмайтын жағдайда пайдаланылады. Мысалы, олардың құрамына қажетті сыртқы құрылғылардың сәйкесті интерфейстік құрылғыларын орналастыру арқылы олардың жұмыс мүмкіндігін кеңейтуге болады.

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

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

Микрокомпьютерлер, контроллерлерден ерекше, ашық құрылыммен құрылады, яғни олардың жүйелік желісіне бірнеше қосалқы құрылғыны қосу мүмкіндігі болады. Микрокомпьютерлердің пайдаланушымен байланыс мүмкіншілігі де (видеомонитор, түймежинам) кеңейтілген. Микроком-пьютерлерді түр-түрлі мәселелерді шешуге пайдалануға болады, бірақ әрбір мәселеге байланысты оларды қайтадан ыңғайлау керек болады, бұл оған жаңа бағдарлама енгізу арқылы жүзеге асырылады.

Компьютерлер және олардың аса таралған түрі – дербес компьютерлер – микропроцессорлық жүйелердің әмбебаптылығы жағынан ең жоғарғы түрі. Оларды жетілдіру және оларға жаңа құрылғылар қосу мүмкіншіліктері алдын ала ескерілген. Сыртқы құрылғылар оларға бірнеше порттар арқылы қосылады. Компьютерлердің қолданылым аймағы ұшан байтақ, олар:  математикалық есептемелер, дерек қорларымен жұмыс атқару, күрделі электрондық жүйелердің жұмысын басқару, компьютерлік ойындар, құжаттар дайындау және т.б. Әрине, басқару жұмысына арналған микропроцессорлық жүйелерді дербес компьютерлер негізінде де құруға болады. Бұл жағдайда дербес компьютер бағдарланған жұмысына сәйкесті қосалқы ұштастыру құрылғыларымен қамтылу керек.

1.2 Информация ауыстырылымының ұйымдастырылуы

1.2.1 Информация ауыстырылымының циклдері

Микропроцессорлық жүйелерді құрушының оларды құрар алдында білуі керек басты мәселе – ол бұндай жүйелердің желілері арқылы информация ауыстырылымының ұйымдастырылу принциптері. Онсыз жүйенің аппаратық бөлігін құру мүмкін емес, ал аппараттық бөлігінсіз, әрине, ешқандай бағдарлама жұмыс істемейді.

Микропроцессорлық жүйелердегі  информация ауыстырылымы бірнеше ауыстыру циклдерінде жүзеге асырылады. Информация ауыстыру циклі ретінде желі арқылы жүргізілетін қарапайым ауыстыру операциясының орындалуына қажетті уақыт аралығы алынады. Информация ауыстыру циклінің нақтылы мысалы ретінде дерек кодтарының процессордан жадыға немесе олардың енгізу/шығару құрылғысынан процессорға жіберілуін келтіруге болады.

Информация ауыстыру циклдері негізгі екі түрге бөлінеді:

-       жазу (шығару) циклі, бұл циклде процессор жадыға немесе сыртқы құрылғыға информация жазады (шығарады);

-       оқу (енгізу) циклі, бұл циклде процессор жадыдағы немесе сыртқы құрылғыдағы информацияны оқиды (енгізеді).

Әрбір циклде информация ауыстырылуына қатысты құрылғылар тиянақты қойылған тәртіппен (информация ауыстырылымының қабылданған хаттамасы бойынша) бір-біріне информациялық және басқару сигналдарын жібереді.

Ауыстыру циклінің ұзақтығы тұрақты да, айнымалы да мөлшерде болуы мүмкін, бірақ ол әрқашан жүйенің тактілік сигналының бірнеше периодына созылады, яғни процессордың информацияны оқу немесе жазу жиілігі идеалды жағдайда да жүйенің тактілік жиілігінен бірнеше есе кем болады.

Команда кодтарының жүйе жадысынан таңдалуы да  оқу циклінің тәртібімен жүзеге асырылады. Сондықтан, біржелілі архитектуралы құрылымның жүйе магистралында команда таңдау циклдері мен дерек жіберу (оқу және жазу) циклдері кезектеседі, бірақ ауыстырылым хаттамалары деректердің немесе командалардың жіберілетіндігіне тәуелсіз, өзгермеген түрінде қалады. Екіжелілі архитектуралы құрылымда команда таңдау циклдері мен дерек жазу немесе оқу циклдері сәйкесті желілерге бөлініп, олар уақыт бойынша қатар жүргізіледі.

1.2.2 Микропроцессорлық жүйенің желілері

Микропроцессорлық жүйенің құрамы мен оның әртүрлі желілерінің қызметін толығырақ қарастыралық.

Бұрын айтылғандай, микропроцессорлық жүйенің жүйе магистралының (жүйе желісінің) құрамына үш түрлі информациялық желі кіреді, олар: адрестік желі, дерек желісі және басқару желісі.

Дерек желісі – жүйе модулдерінің арасында дерек ауыстырылуы жүзеге асырылатын, негізгі желі. Оның разрядының (байланыс жолдарының) саны информация ауыстырылымының жылдамдығы мен тиімділігін және микропроцессордың командалар жүйесіндегі команда санын анықтайды.

Дерек желісі, оның деректерді екі бағытта да жіберуін қамтамасыз етуі керек болғандықтан, әрқашан екібағытты болады. Бұл желінің жолдарына қосылатын құрылғылардың шығыс каскады үш жағдайлы (3S) болу керек.

Қалыпты дерек желілері 8, 16, 32 немесе 64 разрядты болады. Жеке ауыстыру циклінде 64-разрядты желі арқылы 8 байт, ал 8-разрядты желі арқылы бір ғана байт жіберуге болатындығы түсінікті. Дерек желісінің разряд саны бүкіл магистралдың разряд санын анықтайды. Мысалы, 32-разрядты жүйе магистралы туралы сөз болғанда, оның дерек желісінің 32-разрядты екенін түсінуге болады.

Адрес желісі микропроцессорлық жүйенің күрделілігінің ең жоғарғы мөлшерін, яғни оның жады көлемінің ең жоғарғы мәнін, демек, бағдарлама мен сақталатын деректердің максималды көлемін анықтайды. Адрес желісінің қамтамасыз ететін адрес саны – 2N, бұндағы N – адрес желісінің разряд саны. Мысалы, Intel 8085 микропроцессорының 16-разрядты адрес желісі 216 = 65 536 ұяшыққа шығуға мүмкіндік береді.

Магистралдың байланыс жолдарының толық санын кеміту үшін көбіне адрес желісі мен дерек желісін кезектестіру тәсілі қолданылады, яғни байланыс жолдары арқылы әртүрлі уақыт мезетінде адрес пен дерек кезектеп жіберіледі (цикл басында – адрес, цикл аяғында – дерек). Осы мезеттерді бекіту (стробтау) басқару желісіндегі арнайы сигналдармен жүзеге асырылады. Кезектесімді адрес/дерек желісі арқылы ауыстыру жылдамдығының кемірек, демек, ондағы ауыстыру циклінің ұзағырақ болатындығы түсінікті. Сонымен, адрес желісі мен дерек желісінің түріне байланысты магистралдар кезектесімді және кезектесімсіз түрлеріне бөлінеді.

Басқару желісінің жолдарындағы сигналдар (басқару сигналдары) процессордың (немесе магистралдың өзге қожасының, бастаушының, master) кезекті жұмысын жадының немесе енгізу/шығару құрылғыларының (орындаушы құрылғының, slave) жұмысымен келістіреді. Басқару сигналдары арқылы үзіліс немесе ЖТШ сұраныстарына байланысты жұмыстар да жүргізіледі.

Процессордың ауыстыру процесін цикл шегінің қай кезінде бітіретіндігіне, яғни оның ауыстыру стробын қай мезетте алып тастайтындығына байланысты, екі түрлі жағдай бар:

Синхронды ауыстырылымда процессор дерек ауыстырылуын нақтылы қойылған ұсталым уақытынан (tұст) кейін, яғни орындаушы-құрылғыға санаспай-ақ бітіреді;

Асинхронды ауыстырылымда процессор дерек ауыстырылуын орындаушы-құрылғы операцияның орындалғандығын арнайы сигнал арқылы құптағасын (handshake – қол қысу) ғана бітіреді.

Сонымен, микропроцессорлық жүйелерде пайдаланылатын ауыстырылым тәртібіне байланысты, олардың магистралдары синхронды және асинхронды болып ажыратылады.

1.2.3 Информация ауыстырылымының ұйымдастырылуы

1.2.3.1 Бағдарламалы ауыстырым

Микропроцессорлық жүйенің магистралдары арқылы бағдарламалы дерек ауыстырылымның екі түрлі жағдайын қарастыралық. Бірінші жағдай – микрокомпьютерлер мен контроллерлерде қолданылатын, асинхронды, кезектесімді Q-bus магистралы арқылы жүргізілетін ауыстырылым. Екінші жағдай – дербес комьютерлерде қолданылатын, синхронды, кезектесімсіз ISA (Industrial Standard Architecture) магистралы арқылы жүргізілетін ауыстырылым.

1.2.3.1.1 Асинхронды Q-bus магистралы арқылы дерек ауыстырылымы

Асинхронды, кезектесімді Q-bus магистралі арқылы бағдарламалы басқарылымды дерек жіберілімінің ұйымдастырылуы келесі тәртіппен жүзеге асырылады.

Адрес/дерек (AD) желісінде жіберім циклінің басында (адрес фазасында) процессор (бастаушы) желіге адрес кодын қояды және онымен қатар теріс строб сигналын SYNC’ қояды. Жазу циклінің де, оқу циклінің де адрес фазасы бірдей болады.

Оқу циклінің дерек фазасында (1.4-сурет) процессор дерек оқылымының теріс строб сигналын DIN’ қояды. Оған жауап ретінде орындаушы құрылғы желіге өзінің дерек кодын (оқылатын дерек) қояды да, дерек жіберу операциясының орындалғандығын RPLY’ сигналымен құптайды.

1.4 Сурет

Процессор, RPLY’ сигналын қабылдағаннан кейін, DIN’ сигналын алып тастайды. Оған жауап ретінде орындаушы құрылғы құптаушы RPLY’ сигналын алып тастайды. Бұдан кейін процессор SYNC’ сигналын алып тастайды да, жіберім процесін бітіреді.

Жазу циклінің дерек фазасында (1.5-сурет) процессор AD желісіне жазылатын дерек кодын қойып, онымен қатар дерек жазылымының теріс строб сигналын DOUT қояды. Оған жауап ретінде орындаушы құрылғы деректі қабылдайды да, дерек қабылдау операциясының орындалғандығын RPLY’ сигналымен құптайды. Процессор  мен орындаушы құрылғының келесі әрекеттері оқу цикліндегі әрекеттер тәрізді.

Қарастырылған магистралда адрес синхронды жіберіледі (оның қабылданғандығын орындаушының құптамасынсыз), ал деректер, оның жіберілгендігін немесе қабылданғандығын міндетті түрде құптау арқылы, асинхронды жіберіледі.

 1.5 Сурет

1.2.3.1.2 Синхронды ISA магистралы арқылы дерек ауыстырылымы

Синхронды, кезектесімсіз ISA магистралі арқылы бағдарламалы басқарылымды дерек жіберілімінің ұйымдастырылуы келесі тәртіппен жүзеге асырылады.

Оқу және жазу циклдерінің екеуі де процессордың (бастаушының) адрес желісіне (SA) адрес кодын қоюынан басталады да, онда ол жіберілім процесінің аяғына дейін қалады. Оқу және жазу циклдеріне бірдей, адрес циклі дерек жіберілімі стробының (IOR’ немесе IOW’) маңдай басымен аяқталады. Адрес фазасында өз адресін таныған орындаушы құрылғы дерек жіберіліміне дайындық жағдайына ауысады.

Оқу циклінің дерек фазасында (1.6-сурет) процессор енгізу/шығару құрылғысынан (ЕШҚ) дерек оқылымының теріс строб сигналын (IOR’) қояды. Оған жауап ретінде орындаушы құрылғы дерек желісіне (SD) өзінің дерек кодын (оқылатын дерек) қояды. Нақтылы қойылған уақыттан кейін процессор IOR’ стробын, сосын SA желісінен адрес кодын алып тастайды.

1.6 Сурет

ISA магистралы арқылы жазу циклінің дерек фазасында (1.7-сурет) процессор дерек желісіне (SD) жазылатын дерек кодын қойып, онымен қатар ЕШҚ-ға дерек жазылымының теріс строб сигналын IOW қояды. Оған жауап ретінде орындаушы құрылғы SD желісінен оған жазылатын дерек кодын қабылдайды. Процессор  мен орындаушы құрылғының келесі әрекеттері оқу цикліндегі әрекеттер тәрізді.

1.7 Сурет

Қарастырылған жағдай негізгі, синхронды ауысуға ғана қатысты. ISA магистралында асинхронды алмастыруды жүзеге асыру мүмкіндігі де бар. Ол үшін арнаның (магистралдың) дайындық сигналы  I/O CH RDY қолданылады.

Қарастырылған жағдайлар осы магистралдар арқылы информация ауыстырылуының басты принциптерін ғана суреттейді.

1.2.3.2 Үзілістер арқылы ауыстырым

Үзіліс режиміндегі ауыстыру циклдері де, бағдарламалы ауыстыру циклдеріндегі сияқты тәртіппен жүргізіледі, бірақ олардың өздеріне тән ерекшеліктері де бар.

Микропроцессорлық жүйелердегі үзілістердің негізгі екі түрі болады:

-       магистраль арқылы оқу циклінің жүргізілуін қажет қылатын, векторлық үзілістер;

-       магистраль арқылы ешқандай ауыстыру циклін қажет қылмайтын, радиалды  үзілістер.

Микропроцессорлық жүйедегі үзілістердің көптігіне байланысты, процессорға нақтылы үзілістің номері  (үзіліс векторының адресі) туралы мәлімет керек. Бұл мәліметті процессорға үзіліс түрлеріне сәйкесті екі жолмен жіберуге болады.

1.2.3.2.1 Q-bus магистралындағы үзіліс

Векторлық үзілісте үзіліс номерінің кодын процессорға үзіліс сұраған енгізу/шығару құрылғысының өзі жібереді. Оны қабылдау үшін процессор магистраль арқылы оқу циклін жүргізеді де, дерек желісі арқылы үзіліс номерінің кодын алады. Адрес желісі бұл циклде пайдаланылмайды, үзіліс сұраған құрылғы белгілі болғандықтан, информация ауыстыру үшін процессор үзіліс сұраған енгізу/шығару құрылғысының тап өзіне байланысады. Бұл жағдайда барлық енгізу/шығару құрылғыларының үзіліс сұранысына магистралдың бір-ақ жолы жеткілікті. Мысалы, Q-bus магистралындағы үзілістер тап осылай ұйымдастырылған.  Осы Q-bus магистралындағы үзілістерге байланысты сигналдардың таралым схемасы 1.8-суретте көрсетілген.

1.8 Сурет

Q-bus магистралындағы үзіліс сұрау/беру циклінің уақыттық диаграммасы 1.9-суретте келтірілген. Үзіліс сұранысы -VIRQ сигналымен жіберіледі. Үзіліс сұраушы құрылғылардың арасында талас-тартыс тудырмас үшін, олардың шығыс каскадтары OC түрлі болу керек. Үзіліс сұранысын қабылдап, (кезекті команданы орындағаннан кейін) процессор IAKO сигналымен үзіліс береді және дерек оқу сигналын (–DIN) қояды. IAKO сигналы тізбелеп, үзіліс сұраушы құрылғылардың барлығынан өтеді. Үзіліс сұраған құрылғы бұл сигналды өзінен әрі жібермейді. Үзіліс сұранысын екі құрылғы қатар жіберген болса, онда үзіліс олардың процессорға жуығырақ тұрғанына беріледі. Талас-тартыс тудырмаудың бұндай механизмі тізбелік мәртебе (Daisy Chain) деп аталады. Үзіліс сұраған құрылғы IAKO сигналын қабылдағаннан кейін, өзінің -VIRQ сұранысын алып тастау керек.

1.9 Сурет

Бұдан кейін процессор үзіліс номерін адрессіз оқу циклін жүргізеді. Қабылданған -DIN және IAKO сигналдарына жауап ретінде үзіліс алған құрылғы адрес/дерек желісіне (AD) үзіліс номерінің кодын (үзіліс векторының адресін) қойып, оны -RPLY сигналымен құптауы керек. Процессор үзіліс номерінің кодын қабылдап, одан кейін -DIN және IAKO сигналдарын алып тастау арқылы адрессіз оқу циклін бітіреді.

1.2.3.2.2 ISA магистралындағы үзіліс

Радиалды үзілісте қанша үзіліс сұраушы құрылғы болса, магистралда үзіліс сұранысының сонша жолы болады, яғни үзіліс қажет қылған әрбір құрылғы сұранысын өзінің жеке жолымен жібереді. Процессор үзіліс номерін сұраныс келген жол номеріне қарап біледі, яғни бұнда ешқандай оқу циклі қажет болмайды. Радиалды үзілістер пайдаланылған жағдайда жүйеге, үзіліс сұраныстарын реттеу жұмысын атқаратын, үзіліс контроллері қосылады. Мысалы, ISA магистралындағы үзілістер тап осы тәртіппен ұйымдас-тырылған. Осы ISA магистралындағы үзілістерге қатысты құрылғылардың байланыс құрылымы 1.10-суретте көрсетілген.

1.10 Сурет

Процессор үзіліс контроллерімен магистраль арқылы да (оның жұмыс режимін қоюға), магистралдан тыс та (үзіліс сұраныстарының жұмысын атқару кезінде) байланысады. Үзіліс сұраушы құрылғының әрбіреуінің сұраныс сигналының жеке жолы IRQ болады. Бұл жағдайда ешқандай талас-тартыс тумайтындықтан, құрылғылардың шығыс каскадтары 2S түрлі болады. Үзіліс сұранысының түсу мезеті IRQ сигналының алғы, тура ауытқуымен анықталады. Бірнеше сұраныстың қатар түсуі кезінде, олардың жұмыс тәртібін үзіліс контроллері анықтайды.

1.2.3.3 ЖТШ режиміндегі ауыстырым

Жадыға тура шығу (ЖТШ) режиміндегі ауыстыру циклдері бағдарламалы ауыстыру және үзіліс беру циклдерінің тәртібімен орындалады.

ЖТШ режиміндегі ауыстыруды бастар алдында, ЖТШ қажет қылған құрылғы микропроцессорға сұраныс жіберу керек. ЖТШ сұранысын жіберу және оның берілу тәртібі үзіліс сұранысын жіберу және оның берілу тәртібіне ұқсас келеді. Екі жағдайда да, қызмет қажет қылған құрылғы процессорға сұраныс сигналын жібереді. Бірақ ЖТШ жағдайында процессор өзін магистралдан ажыратып, міндетті түрде сұраушы құрылғыға арнайы сигналдар арқылы ЖТШ береді. Ал радиалды үзіліс сұраныстарына процессордың үзіліс бермеуі де мүмкін.

1.2.3.3.1 Q-bus магистралындағы ЖТШ режимі

Q-bus магистралындағы ЖТШ сұранысы мен оның берілуі үзіліс жағдайындағы сияқты (1.11-сурет). ЖТШ сұранысының -DMR сигналын, ЖТШ қажет қылған құрылғылардың барлығы магистралдың бір жолымен жібереді. Құрылғылардың шығыс каскадтары OC түрлі болу керек. ЖТШ сұранысын (яғни, -DMR сигналын) қабылдап, процессор DMGO сигналымен ЖТШ берілу сигналын жібереді. Бұл сигнал барлық құрылғыдан тізбелеп өтеді де, нәтижесінде сұраныс жіберген құрылғылардың процессорға жуықтау орналасқаны (Daisy Chain мәртебесімен) ЖТШ алады. Сосын ЖТШ алған құрылғы магистраль арқылы, бағдарламалы ауыстырудағы сияқты, ауыстыру циклдерін жүргізеді. ЖТШ циклдерінде информация жадыдан оқылып, енгізу/шығару құрылғысына жазылады, немесе, керісінше – енгізу/шығару құрылғысынан  оқылып, жадыға жіберіледі.

1.11 Сурет

1.2.3.3.2 ISA магистралындағы ЖТШ режимі

ISA магистралындағы ЖТШ сұранысының жіберілуі мен оның берілуі радиалды үзілістердің ұйымдастырылуын еске түсіреді (1.12-сурет). Дәл сондағыдай, жүйеде, сұраныс сигналдары (DRQ) жиналатын және рұқсат сигналдары (-DACK) таралатын, ЖТШ контроллері болады. Әрбір ЖТШ арнасына (DRQ және –DACK сигналдарының жұбына) ЖТШ сұраушы бір ғана құрылғы қосылады. Олардың шығыс каскадтары – 2S түрлі. ЖТШ қажет қылған құрылғы сұраныс сигналын (DRQ) жібереді де, жауапқа ЖТШ сигналын (-DACK) алады. Бұдан кейін ЖТШ контроллері магистраль арқылы енгізу/шығару құрылғылары мен жады арасында ауыстыру циклдерін жүргізеді.

1.12 Сурет

ISA магистралындағы ЖТШ циклдерінің уақыттық диаграммасы 1.13-суретте көрсетілген. ISA магистралында жеке түрдегі жадыға жазу (-MEMW) және енгізу/шығару құрылғыларына жазу (-IOW) стробтары мен жадыдан оқу (-MEMR) және енгізу/шығару құрылғыларынан оқу (-IOR) стробтары пайдаланылады. Бұл ЖТШ режимінің дербес алмастыру циклінде информацияны жадыдан оқып, оны енгізу/шығару құрылғысына жазуға немесе информацияны енгізу/шығару құрылғыларынан оқып, оны жадыға жазуға мүмкіндік береді. Бұл кезде адрес желісіне жады адресі қойылады да, ал енгізу/шығару құрылғысы жалғыз AEN сигналымен табылады. ЖТШ режиміндегі алмастыру цикліне алдын ала ЖТШ сұраған және оны алған құрылғы ғана қатысады, сондықтан құрылғылар арасында адреске байланысты ешқандай талас-тартыс тумайды.

1.13 Сурет

1.3 Микропроцессорлық жүйенің негізгі буындары

1.3.1 Процессор

Микропроцессорлық жүйенің құрамына міндетті түрде енгізілетін негізгі буындарына процессор, жады, енгізу/шығару құрылғылары жатады.

Процессор (1.14-сурет), микропроцессорлық жүйенің негізін қалаушы, яғни оның жұмысын басқарушы, басты буыны. Ол, әдетте, жеке микросхема түрінде (микропроцессор) немесе микросхеманың (мысалы, микроконтроллердің) құрама бөлігі ретінде шығарылады. Процессор микросхемасының сәйкесті желі топтарына біріктірілген үш түрлі шықпалары болады, олар: адрес желісі, дерек желісі және басқару желісі. Кейде, микросхеманың шықпа санын кеміту үшін, кейбір сигналдар мен желілер кезектестіріледі.

1.14 Сурет

Процессордың басты сипаттамалары – оның дерек, адрес және басқару желілерінің разряд саны. Дерек желісінің разряд саны жүйенің жұмыс жылдамдығын анықтайды. Адрес желісінің разряд саны жүйенің дерек жеткізу күрделілігін анықтайды. Басқару жолдарының саны ауыстыру режимдерінің түр-түрлігін және процессордың, оған сәйкесті, өзге құрылғылармен байланыс тиімділігін анықтайды.

Процессордың негізгі үш желісінің сигналдық шықпаларынан басқа, сыртқы тактілік сигналдар (CLK) генераторын қосуға арналған бір (немесе екі) шықпасы болады. Процессордың тактілік жиілігі жоғары болған сайын, ол тезірек істейді, яғни командаларды тезірек орындайды. Дегенмен, процессордың тезәрекеттілігі тактілік жиілігімен ғана анықталмайды, оған оның құрылым ерекшеліктері де әсер етеді. Қазіргі заманғы процессорлар командалардың көпшілігін бір тактіде орындайды және олардың бірнеше команданы қатар орындау мүмкіншілігі де бар. Процессордың тактілік жиілігі оның магистраль арқылы ауыстыру жиілігін емес, ол микропроцессордың ішкі тезәрекеттілігін ғана сипаттайды.

Кез келген процессорда болатын тағы бір маңызды сигнал – бастапқы тазарту сигналы RESET. Қорек көзінің қосылғанында немесе ахаулық жағдайда бұл сигналдың берілуі арқылы процессор бастапқы қойылым бағдарламасын орындауға кіріседі. Бұл сигнал – радиалды үзілістің ерекше бір түрі. Кейде процессор микросхемасының, ерекше жағдайларға байланысты жұмыс атқаруға арналған (мысалы, сыртқы таймер арқылы үзіліске), тағы бір-екі радиалды үзіліс кірісі болады. Қазіргі заманғы процессорлар, әдетте, бір қорек көзінен (+5В немесе +3,3В) жұмыс істейді.

Процессорды магистралға қосу үшін буферлік микросхемалар пайдаланылады. Олар жүйе магистралы мен процессор желілерінің ауыстыру хаттамаларын келістіру қызметін атқарады. Кейде микропроцессорлық жүйеде бірнеше магистраль (жүйелік және жергілікті) пайдаланылуы мүмкін, бұндай жағдайда бұл магистралдардың әрбіреуінің өзінің жеке буферлік буыны болады. Бұндай құрылым, мысалы, дербес компьютерлерде қолданылады.

Қорек көзі қосылғаннан кейін процессор бастапқы қойылым бағдарламасының бастама адресіне көшіп, осы бағдарламаны орындай бастайды. Бұл бағдарлама тұрақты жадыға жазылған. Бастапқы қойылым бағдарламасын бітіргеннен кейін процессор тұрақты жадыда немесе қызмет жадысында орналасқан негізгі бағдарламаны (командаларын кезектеп шығару арқылы) орындай бастайды. Процессордың бұл бағдарламаға байланысты жұмысын сыртқы үзілістер мен ЖТШ сұраныстары ғана ауыстырады. Жадыдағы команда кодын процессор магистраль арқылы жүргізілетін команда таңдау циклімен шығарады. Қажетті жағдайда процессор деректерді жадыға немесе енгізу/шығару құрылғыларына жазу циклдері арқылы жазады немесе оларды жадыдан немесе енгізу/шығару құрылғыларынан оқу циклдері арқылы оқиды.

Сонымен, кез келген процессордың негізгі қызметтері:

-       орындалушы команданы таңдау (оқу);

-       жадыдан немесе енгізу/шығару құрылғысынан дерек енгізу (оқу);

-       жадыға немесе енгізу/шығару құрылғысына дерек шығару (жазу);

-       деректерді (операндтарды) өңдеу, яғни оларға арифметикалық және логикалық операциялар жүргізу;

-       жадыға сілтеу, яғни дерек ауыстыруға қатысты жады адресін беру;

-       үзіліс және жадыға тура шығу жұмыстарын жүзеге асыру.

Микропроцессордың қарапайым түріндегі құрылымы 1.15-суретте келтірілген. Микропроцессордың негізгі буындарының қызметін суреттелік.

1.15 Сурет

Команда таңдалымын басқару схемасы жадыдан командалардың оқылу және олардың ажыратылу (танылу) қызметін атқарады. Алғашқы микропроцессорларда (мысалы, Intel 8085 микропроцессорында) алдыңғы команданың орындалуы мен келесі команданың шығарылуын қатар жүргізу мүмкіндігі болмаған.  16-разрядты микропроцессорлардан бастап, олардың құрамына, (мысалы, Intel 8086 микропроцессорында)  бір команда орындалып жатқанда, бірнеше келесі командаларды шығаруға мүмкіндік беретін, конвейер (кезек тізбе) аталымды құрылым енгізілді. Бұнда екі процесс қатар жүргізіліп, процессор жұмысы тездетіледі. Конвейер – процессордың кішігірім ішкі жадысы, оған кез келген мүмкіндік туғанында (сыртқы желінің босағанында) орындалып жатқан командадан кейінгі бірнеше команда жазылады. Бұл командалар конвейерден, оған жазылған бағытымен оқылады (FIFO, First In – First Out). Егер бағдарламаның орындалу тәртібіне байланысты, кезекті командадан кейін одан алшақ орналасқан командаға ауысу керек болса, онда, конвейерді тазартуға тура келеді.

Конвейер идеясының әрі қарай дамытылуы процессордың ішіне кэш-жады орналастырылуына әкелді. Кэш-жадының көлемі үлкен болған сайын, ауысу командасында оның тазартылу ықтималдығы кеми түседі. Процессордың ішкі жадысындағы командалармен жұмыс, сыртқы жадыдағы командалармен жұмыспен салыстырғанда, тезірек жүргізілетіндігі түсінікті. Кэш-жадыда кезекті орындалып жатқан командаға қажетті деректерді де сақтауға болады, бұл да процессор жұмысын тездетеді. Қазіргі заманғы процессорларда команда таңдалымын одан әрі тездету үшін команда таңдалымы мен оның ажыратылымы (танылымы) қатарластырылады, бірнеше команда қатар ажыратылады, қатар істеуші бірнеше конвейер пайдаланылады, ауысу командаларын алдын ала болжау және т.б. тәсілдер қолданылады.

Арифметикалық-логикалық құрылғы (АЛҚ, ALU) информацияның командаға сәйкесті өңделуін жүзеге асырады. Өңдеу мысалдарына арифметикалық операциялар (қосу, алу және т.б.) мен логикалық операцияларды (“ЖӘНЕ”, “НЕМЕСЕ”, “Екілік қосу”, “Ығыстыру” және т.б.) келтіруге болады. Операцияның қандай кодтарға жүргізілетіндігі және нәтиженің қайда жіберілетіндігі орындалушы команданың операциялық кодымен анықталады. Егер команда жұмысы деректі бір жерден екінші жерге жіберумен ғана шектелетін болса, онда АЛҚ бұл жұмыстың орындалуына қатыспайды.

АЛҚ-ның тезәрекеттілігі процессордың тезәрекеттілігін анықтайды. Бұнда, АЛҚ жұмысын реттеуші тактілік сигналдың жиілігі ғана емес, команданың орындалуына қажетті такт саны да маңызды. Процессор өнімділігін көтеру үшін микропроцессор құрушылар команданың орындалу уақытын бір тактіге жеткізуге және АЛҚ-ның жоғарырақ жиілікте істеуін қамтамасыз етуге тырысады. Бұл мәселенің шешілуінің бір жолы – АЛҚ арқылы орындалатын командалардың санын азайту, командалар жинамы кемітілген процессорлар (RISC-процессорлар) құру. Процессор өнімділігін көтерудің басқа жолы – қатар істеуші бірнеше АЛҚ пайдалану.

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

Процессордың ішкі регистрлері – әртүрлі кодтарды (деректерді, адрестерді, қызмет кодтарын) уақытша сақтауға арналған, тезәрекетті жадылық ұяшықтар. Олардағы кодтармен жүргізілетін операциялар өте тез орындалады, сондықтан, микропроцессордың ішкі регистрлерінің көбірек болғаны ыңғайлы болады. Бұған қоса, процессордың тезәрекеттілігіне регистрлердің разряд саны да әсер етеді. Процессордың разряд саны оның ішкі регистрлерінің разряд саны мен АЛҚ разрядының саны арқылы анықталады, ол сыртқы желінің (магистралдың) разряд санымен бірдей болмауы да мүмкін.

Микропроцессордың ішкі регистрлерінің қызметіне байланысты екі түрлі тағұлұм қалыптасқан. Intel фирмасының ұстаған бірінші тағұлұмында, әрбір регистрге нақтылы қызмет белгіленеді. Бір жағынан, ол процессордың ұйымдастырылымын жеңілдетеді және командалардың орындалу уақытын қысқартады, екінші жағынан – процессордың икемділігін төмендетеді және бағдарлама жұмысын баяулатады. Мысалы, кейбір арифметикалық операциялар мен енгізу/шығару құрылғылармен жүргізілетін ауыстырылымдар арнайы регистр – аккумулятор арқылы жүзеге асырылады да, нәтижесінде кейбір қызметтердің орындалуы кезінде регистрлер арасында бірнеше қосымша жіберілім қажет болуы мүмкін. DEC фирмасының 16-разрядты Т-11 процессорларында қолданылған екінші тағұлұмда регистрлердің барлығының (немесе барлығына жуығының) хақы бірдей етіп қойылады. Бұл жағдайда икемділік жоғары дәрежеде болады, бірақ процессордың құрылымы күрделенеді. Аралық шешім де бар, мысалы, Motorola фирмасының MC68000 процессорындағы регистрлердің бір жартысы деректер үшін, ал екінші жартысы адрестер үшін пайдаланылады да, әрбір топтағы регистрлер – өзара алмастырылымды болады.

Белгілер регистрінің (ахуал регистрі) қызметі ерекше, онда сақталған информация дерек те емес, адрес те емес, ол – процессордың ахуал сөзі (PSW – Processor Status Word). Бұл сөздің әрбір биті (ту) алдыңғы орындалған команданың нәтижесі жөнінде мәлімет ұстайды. Мысалы, оның нолдік биті нәтиженің ноль болған кезінде қойылады да, өзге жағдайда тазартылады. Бұл биттер (тулар) шартты ауысу командаларында (мысалы, нолдік нәтиже жағдайындағы ауысу командасында) пайдаланылады. Кейбір микропроцессордың осындай регистрінде белгі туларымен қатар кейбір командалардың орындалу режимін анықтаушы, басқару тулары да қойылады.

Үзілістерді басқару схемасы процессорға түскен үзіліс сұраныстарына байланысты жұмыс атқарады: үзіліс сұранысына қажетті бағдарламаның бастапқы адресін (үзіліс векторының адресін) анықтайды, негізгі бағдарламаның кезекті командасы орындалып біткеннен кейін процессор регистрлерінің кезекті жағдайын жадыда (стекте) сақтап, үзіліс бағдарламасына ауысуды қамтамасыз етеді. Үзіліс бағдарламасының орындалып біткенінен кейін процессор, жадыдан (стектен) ішкі регистрлердің мәндерін қалпына келтіру арқылы, үзілген негізгі бағдарламаға қайтады. Стек туралы толығырақ келесі тарауда айтылады.

Жадыға тура шығуды (ЖТШ) басқару схемасы процессорды сыртқы желілерден ажыратып және оның жұмысын уақытша тоқтатып, ЖТШ сұраған құрылғыға қажетті жұмысын атқаруына мүмкіндік береді.

Процессордың жалпы басқару құрылғысы процессор буындарының өзара әрекеттесуін ұйымдастырады, деректердің қажетті бағытта жіберілуін қамтамасыз етеді, процессор жұмысын сыртқы сигналдармен сәйкестіреді және информацияның енгізілуі мен шығарылуын жүзеге асырады.

Сонымен, процессордың жұмыс барысында  команда таңдау схемасы команда кодтарын тізбелеп жадыдан шығарып,  олардың танылымын қамтамасыз етеді. Командалардың АЛҚ арқылы орындалуы кезінде өңделетін деректердің оның кірістеріне жадыдан немесе ішкі регистрлерден жіберілуі мүмкін. Ішкі регистрлерде жадыда орналасқан деректердің адрестік кодтары да сақталады. АЛҚ-да өңдеу арқылы алынған нәтиже  ішкі регистрге немесе жадыға жазылады және оның мәніне байланысты белгілер регистрінде сәйкесті тулар көтеріледі. Деректер көзі де, олардың қабылдағышы да команда кодының құрамында көрсетіледі. Қажетті жағдайда информация жадыдан (немесе енізу/шығару құрылғысынан) ішкі регистрге немесе ішкі регистрден жадыға (немесе енізу/шығару құрылғысына) жазылады.

Микропроцессордың ішкі регистрлеріне жүктелетін міндетті қызметтер бар, олар:

-       кезекті орындалатын команданың адресін анықтау (команда санауышының немесе команда көрсеткішінің қызметі);

-       стектің кезекті адресін анықтау (стек көрсеткішінің қызметі).

Бұл қызметтер әртүрлі процессордың бір немесе екі ішкі регистріне жүктеледі. Бұл көрсеткіштердің мәні де ерекше өзгереді. Команда көрсеткішінің (санауышының) мәні былай өзгереді. Жүйе жұмысының басында (қорек көзі қосылғанда) оған бастапқы қойылым бағдарламасының бастама адресі енгізіледі. Сосын жадыдан әрбір команда шығарылғаннан кейін команда көрсеткішінің мәні өздігінен бірге (немесе команда пішіміне және процессордың түріне байланысты – екіге) өсіріледі (Increment). Жады адрестерінің тізбелеп қалыптастырылуы ауыcтыру командасына байланысты бұзылған жағдайда команда көрсеткішіне жадының жаңа адресі жазылады да, бұдан әрі адрес тағы да тізбелеп қалыптастырылады. Команда көрсеткішінің мәні қосалқы бағдарламаның шақырылуы және одан қайтып келу кезінде немесе үзіліс бағдарламасына ауысу және одан қайтып келу кезінде де осылай өзгертіледі. Стек көрсеткішінің қызметі келесі тарауда қарастырылады.

1.3.2 Жады

Микропроцессорлық жүйенің жадысы деректер мен командалардың уақытша немесе тұрақты сақталуын қамтамасыз етеді. Жады көлемі жүйенің орындайтын алгоритмдерінің күрделілік шегін анықтайды. Жады модулдері жады микросхемаларының (тұрақты немесе өзгетілімді) негізінде құрылады. Микропроцессорлық жүйелердің құрамына қазіргі заманда, қайта бағдарлауға аса ыңғайлы келетін, флэш-жады (flash memory) кеңінен енгізіліп жатыр.

Информация жады ұяшықтарында сақталады, олардың разряд саны процессордың дерек желісінің разряд санына тең болады. Жады ұяшығының саны адрес желісінің разряд санымен 2N түрінде анықталады, бұндағы N – адрес желісінің разряд саны. Көбіне жады көлемі (жады ұяшығының разряд санына тәуелсіз) байтпен өлшенеді. Мысалы, 16-разрядты 65 536 ұяшығы бар жадының көлемі 128 Кбайт деп айтылады. Жады ұяшықтарының жинамы, әдетте, жүйенің жады кеңістігін құрады.

Жады модулін жүйе магистралына қосу үшін, құрамына адрес дешифраторы (селекторы), магистралдың басқару сигналдарын өңдеу схемасы және дерек буферлері кіретін, ұштастыру блоктары пайдаланылады (1.16-сурет).

Қызмет жадысы жүйе магистралымен оқу және жазу циклдерінде, ал тұрақты жады оқу циклінде ғана байланысады. Жүйе құрамында, әдетте, бірнеше жады модулі болады, олардың әрбіреуі жады кеңістігінің өзіне бөлінген жеке аймағында жұмыс істейді. Нақтылы жады модуліне жады кеңістігінің қай аймағы бөлінгендігін адрес селекторы анықтайды. Басқару схемасы қажетті мезетте жады жұмысының рұқсат сигналдарын (CS) және жазу/оқу сигналдарын (W/R) шығарады. Дерек буферлері деректердің жадыдан магистралға немесе магистралдан жадыға жіберілуін қамтамасыз етеді.

1.16 Сурет

Микропроцессорлық жүйенің жады кеңістігінің бірнеше аймағы, әдетте, ерекше қызметтер орындауға бөлінеді.

Бастапқы қойылым бағдарламасының жадысы әрқашан тұрақты жады немесе флэш-жады түрінде құрылады. Процессор қорек көзінің қосылғанынан кейін немесе ол RESET сигналымен тазартылғаннан кейін жұмысын тап осы аймақтан бастайды.

Стекке арналған жады немесе стек (Stack) – қызмет жадысының, деректерді LIFO (Last In – First Out) режимінде сақтауға арналған, бір бөлігі.

Стекке дерек (код) жазу үшін, алдымен стек көрсеткішін бірге (немесе 16-разрядты сөздердің жадыда жұп мәнді адрестер бойынша орналастылуында – екіге) кеміту (Decrement) керек, сосын ол осы стек көрсеткіші арқылы анықталған жады ұяшығына жазылады. Стектен оқу кезінде дерек стек көрсеткішінің анықтаған ұяшығынан оқылады да, одан кейін стек көрсеткішінің мәні бірге (немесе екіге) өсіріледі (Increment). Айтылған әрекеттерге байланысты соңғы жазылған деректің бірінші оқылатынын, ал бірінші жазылған деректің ең соңынан оқылатынын көреміз. Сондықтан бұндай жады LIFO (Last In – First Out) түрлі жады деп аталады.

Процессордың командалар жүйесінде стекпен информация алмастыруға арналған арнайы командалар бар, олар – стекке жазу командасы PUSH және стектен оқу командасы  POP. Стекте процессордың ішкі регистрлерінің мәнімен қатар белгілер регистрінің мәнін де (процессордың ахуал сөзін, PSW) сақтауға болады. Бұл, мысалы, қосалқы бағдарламадан қайтқан кезде оның шақырылар алдындағы орындалған команда нәтижесінің белгілерін тексеруге мүмкіндік береді. Деректердің негізгі бағдарлама мен қосалқы бағдарламалар арасында жіберілуін ыңғайлау үшін, оларды стекке орналастыруға болады.

Жадының келесі арнайы аймағы – үзіліс векторларының кестесі.

Кез келген үзіліске байланысты өңдеу қызметі үзіліс векторларының кестесіндегі деректер негізінде жүзеге асырылады. Бұл кестеде, қарапайым жағдайда, сәйкесті үзілістер қызметінің бағдарламаларының бастама адрестері тұрады, тап солар векторлар деп аталады. Әдетте үзіліс векторларының кестесі жады кеңістігінің басында орналастырылады. Әрбір вектордың адресі сәйкесті үзілістің номерін сипаттайды.

Аппаратты үзілістерде үзіліс номерін сұраныс қойған құрылғы жібереді (векторлық үзілістерде) немесе ол үзіліс сұранысының жолымен анықталады (радиалды үзілістерде). Процессор, үзіліс сұранысын қабылдап, кезекті команданың орындалуын бітіреді де, жадыдағы үзіліс векторларының кестесінің аймағына, оның ішінде үзіліс сұранысының номеріне сәйкесті жолға шығады. Сосын процессор осы жолды (үзіліс векторының кодын) оқып, осы вектор көрсеткен жады адресіне ауысады. Жадының осы адресінен бастап сұраныс номеріне сәйкесті үзіліс жұмысына байланысты бағдарлама орналасу керек. Үзіліс бағдарламасының соңында міндетті түрде үзілістен шығу командасы орналастырылу керек, процессор осы команданы орындау арқылы уақытша тоқтатылған негізгі бағдарламаға қайтады. Процессордың параметрлері үзіліс бағдарламасының орындалуы кезінде стекте сақталады.

Бағдарламалы үзілістердің де жұмысы үзіліс векторларының кестесі арқылы жүзеге асырылады, бірақ үзіліс номері үзіліс шақырған команданың құрамында болады.

Күрделірек жағдайларда үзіліс векторларының кестесінде үзіліс бағдарламасының бастама адресі емес, үзіліс дескрипторлары (Descriptors) орналасуы мүмкін. Дескрипторлардың өңделуінің ақырғы нәтижесі бәрібір үзіліс бағдарламасының бастама адресі болады.

Микропроцессорлық жүйенің жадысының тағы бір арнайы аймағы – ол жүйе желісіне қосылған құрылғылардың жадысы. Ол арқылы процессор енгізу/шығару құрылғыларының немесе жүйе желісіне қосылған басқа құрылғылардың ішкі жадысына, өзінің жүйелік жадысына сияқты байланысуға мүмкіндік алады.

Жады кеңістігінің қалған бөліктерінде деректерді де, бағдарламаларды да орналастыруға болады (әрине, біржелілі архитектурада). Жады кеңістігін ешқандай шекарасыз тұтас түрінде пайдалануға болады. Кейде жады кеңістігі, мөлшері нақтылы қойылған, сегменттерге бөлінеді. Сегмент басының адресін бағдарламалы өзгертуге болады. Екі жолдың да артықшылықтары да, кемістістіктері де бар. Мысалы, сегменттерге бөлу бағдарлама немесе деректер аймағын қорғауға мүмкіндік береді, бірақ сегмент шекаралары үлкен көлемді бағдарламалар мен дерек массивтерінің орналастырылуын қиындатуы мүмкін.

Енді жады адрестері мен енгізу/шығару құрылғыларының адрестерін бөлу мәселесіне тоқталық. Бұл мәселе екі түрлі жолмен шешіледі:

-       жүйенің жалпы адрестік кеңістігінің бір бөлігін арнайы енгізу/шығару құрылғыларына бөлу арқылы;

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

Бірінші жолдың ыңғайлылығы онда процессордың енгізу/шығару құрылғыларына байланысуы үшін жадымен әрекеттесу командаларын пайдалану мүмкіндігінде. Бірақ бұл жағдайда жалпы адрестік кеңістіктің бір бөлігінің енгізу/шығару құрылғыларына бөлінгендігінен, жадының өзіне тиісті адрестік кеңістігі кемиді.

Екінші жолдың артықшылығы – онда жадыға микропроцессорлық жүйенің бүкіл адрестік кеңістігі толықтай беріледі. Енгізу/шығару құрылғыларымен байланыс үшін арнайы командалар және магистраль арқылы алмастырымдарға арнайы стробтар қолданылады. Бірақ бұл енгізу/шығару құрылғыларымен байланыс мүмкіндіктерін, жадымен байланыс мүмкіндіктеріне қарағанда, шектейді.

1.3.3 Енгізу/шығару құрылғылары

Енгізу/шығару құрылғыларының магистралмен информация ауысуы жадымен ауысу тәртібімен жүргізіледі. Бірақ жүйенің жады модулдері магистралмен және процессормен ғана информация ауыстырады, ал енгізу/шығару құрылғылары олармен қатар өзге сыртқы (цифрлық немесе аналогты) құрылғылармен де әрекеттеседі. Көбіне енгізу/шығару құрылғылары ұштастыру құрылғылары, контроллерлер, кеңейту карталары, интерфейстік модулдер деп те атала береді.

Енгізу/шығару құрылғыларының қарапайым түрлерінде дерек кодтарын сыртқы құрылғыға жіберу немесе одан қабылдау параллель түрінде жүзеге асырылады. Бұндай енгізу/шығару құрылғылары көбіне параллель енгізу/шығару порттары деп аталады. Олардың әмбебаптылығына, яғни көптеген сыртқы құрылғылармен ұшастырылу мүмкіндігіне байланысты, олар қалыпты құрылғы ретінде микропроцессорлық жүйенің құрамына енгізіледі. Параллель порттар, әдетте, микроконтроллерлердің құрамында да болады. Тап осы параллель порттары арқылы микроконтроллер сыртқы әлеммен байланысады.

Кіріс порты (енгізу порты) қарапайым жағдайда, процессордың сыртқы құрылғыға жіберген информациясы жазылатын, регистр түрінде болады. Шығыс порты (шығару порты), әдетте, процессордың сыртқы құрылғыдан жіберілген информацияны оқитын, бірбағытты буфер түрінде құрылады. Тап осындай порттардың құрылымы 1.17-суретте көрсетілген. Порттың екібағытты да (кірістік/шығыстық) болуы мүмкін. Бұл жағдайда информацияны процессордың сыртқы құрылғыға жазуы  немесе одан информация оқуы жүйенің адрестік кеңістігіндегі бір ғана адрес арқылы жүзеге асырылады. Бұл кезде сыртқы құрылғымен байланыс жолдарын разрядтары бойынша біріктіріп, қосбағытты жолдар құруға болады.

1.17 Сурет

Магистраль жағынан байланыс кезінде адрес селекторы қажетті енгізу/шығару құрылғысына берілген адресті таныйды. Басқару схемасы магистралдық ауыстыру стробтарына жауап ретінде ішкі ауыстыру стробтарын шығарады. Кірістік дерек буфері дерек желісінің осы құрылғымен электрлік келістірілуін қамтамасыз етеді. Деректер дерек желісінен регистрге С сигналымен жазылып, одан сыртқы құрылғыға жіберіледі. Шығыстық дерек буфері кіріс деректерін сыртқы құрылғыдан магистралдың дерек желісіне порттан оқу циклінде жібереді.

Күрделірек енгізу/шығару құрылғыларының (ұштастыру құрылғыларының)  құрамында ішкі буферлік қызмет жадысы болады. Оларда, сыртқы құрылғымен алмастыру қызметтерін атқаратын, арнайы микроконтроллер де болуы мүмкін.

Әрбір енгізу/шығару құрылғысына микропроцессорлық жүйенің адрестік кеңістігінде жеке адрес белгіленеді.

Енгізу/шығару құрылғылары бағдарламалы ауыстырумен қатар үзіліс арқылы ауыстыруды да жүргізе алады. Бұл жағдайда олар сыртқы құрылғыдан түскен үзіліс сұранысының сигналын магистралға қажетті үзіліс сұранысының сигналына (немесе векторлық үзілісте – сигналдар тізбесіне) айналдырады. Егер ЖТШ режимін пайдалану қажет болса, онда енгізу/шығару құрылғысы магистралға ЖТШ сұранысының сигналын қойып, магистралға сәйкесті ЖТШ циклдерінің жұмысын қамтамасыз ету керек.

Микропроцессорлық жүйенің құрамында, әдетте, енгізу/шығару құрылғыларының үш түрлі арнайы топтары ажыратылады:

-       пайдаланушы интерфейсінің құрылғылары (пайдаланушының информация енгізуіне және оған арналған информацияның шығарылуына);

-       ұзақ уақытқа сақталатын информацияны енгізу/шығару құрылғылары;

-       таймерлік құрылғылар.

Пайдаланушы интерфейсінің енгізу құрылғыларына түймежинам, тумблерлер, жеке түймелердің, жүгіртпектің контроллерлері және т.б. жатады.   Пайдаланушы интерфейсінің шығару құрылғыларына жарықдиод-ты көрсеткіштердің, сұйықкристалды, плазмалық және электронды-сәулелі мониторлардың контроллерлері және т.б. жатады. Қарапайым жағдайларда бұндай құралдардың контроллерлерінің болмауы да мүмкін, ал күрделі микропропроцессорлық жүйелерде олар міндетті түрде болады. Сыртқы құрылғының ролін бұл жағдайда адам атқарады.

Ұзақ уақытқа сақталатын информацияны енгізу/шығару құрылғылары (интерфейстері) микропроцессорлық жүйенің сыртқы жадылармен жұмысын қамтамасыз етеді. Бұндай құрылғылар микропроцессорлық жүйенің орындалушы бағдарламалар сақталуы мен дерек массивтерінің жиналуына қатысты мүмкіншілігін ұлғайтады. Қарапайым контроллерлерде бұл құрылғылар болмайды.

Таймерлік құрылғылар микропроцессорлық жүйенің уақытқа байланысты (уақыт аралығын ұстау, импульстерді санау және т.б.) жұмыстарын қамтамасыз етеді. Таймер негізін тактілік генератор және көпразрядты екілік санауыштар қалайды. Процессор таймерге тактілік жиіліктің бөліну коэффициентін, саналатын импульстер санын жазады, таймер санауыштарының жұмыс режимдерін қояды және санауыштардың шығыс кодтарын оқиды. Әрине, бұл жұмыстардың бәрін бағдарламалы жолмен де орындауға болады, сондықтан микропроцессорлық жүйенің құрамында кейде таймерлер болмайды. Бірақ жүйеге таймердің енгізілуі күрделірек мәселелерді шешуге және тиімді бағдарламалар құруға мүмкіндік береді.

Енгізу/шығару құрылғыларының тағы бір маңызды түрі – информациялық (жалпы және жергілікті) желілерге қосу құрылғылары. Олардың маңызы күннен күнге өсіп келе жатыр, сондықтан олар кейде қарапайым контроллерлердің құрамына да енгізіледі.

Кейбір жағдайларда енгізу/шығару құрылғыларының сыртқы құрылғылармен ұштастырылуы аналогты сигналдар арқылы жүзеге  асырылады. Сондықтан кейбір микроконтроллерлердің құрамына ішкі цифрлы-аналогты түрлендіргіштер (DAC, Digital to Analog Converter) мен цифрлы-аналогты түрлендіргіштер (ADC, Analog to Digital Converter)  енгізіледі.

1.4 Процессор қызметінің ұйымдастырылымы

1.4.1 Ассемблер тілі

Процессордың негізгі қызметі – қойылған мақсатқа сәйкесті құрылған бағдарлама командаларын орындау және сыртқы оқиғаларға байланысты әрекет жасау.

Микропроцессорлық жүйенің бағдарламасын құру – бұндай жүйенің құрылу барысының аса маңызды кезеңі. Көлемі жағынан ықшамды келетін және тез істеуші бағдарламалар мен қосалқы бағдарламалар, әдетте, Ассемблер тілінде құрылады. Ассемблер тілі – машина тіліндегі цифрлық кодтардың, яғни процессор командаларының екілік кодтарының символды жазылымдары арқылы бағдарлама құру тәсілі. Әрине, микропроцессорлық жүйенің жұмыс бағдарламаларын жоғары деңгейлі тілдер арқылы (мысалы, Паскаль және Си тілдерінде) құруға арналған арнайы бағдарламалық қоршалымдар да бар. Бірақ процессордың командалар жүйесін және Ассемблер тілін білу және олардың негізінде микропроцессорлық жүйенің (микроконтроллерден бастап дербес компьютерге дейін) жұмыс бағдарламасын немесе оның кейбір аса маңызды бөліктерін құру бұл бағдарламалардың тиімділігін аса көтереді. Осы тарауда процессорлардың көпшілігіне тән командалардың негізгі түрлерін және олардың қолданылым ерекшеліктерін қарастырамыз.

Процессордың жадыдан таңдайтын (оқитын) әрбір командасы процессордың жақын арадағы бірнеше тактісіндегі жұмыс алгоритмін анықтайды. Команда коды процессордың кандай операция және оны қандай операндтармен (яғни, дерек кодтарымен) орындау керектігі, оларды қайдан алатындығы және нәтижені қайда жіберетіндігі туралы мәлімет береді. Команда коды бірден бірнеше байтка дейінгі орын алуы мүмкін, ол туралы процессор команданың бірінші оқылған байтынан (немесе сөзінен) біледі. Процессорда команда коды ажыратылып (танылып), оның жеке буындарында орындалатын командаға сәйкесті микрооперациялар жинамына түрлендіріледі.

1.4.2 Операндтарға сілтеу тәсілдері

Процессор командаларының көпшілік бөлігі дерек кодтарымен (операндтармен) жұмыс істейді. Кейбір командаларға кіріс операндтары (бір немесе екі) керек, басқалары шығыс операндын ғана қалыптастырады. Бұл операндтардың (кірістік және шығыстық) процессордың ішкі регистрлерінде (ең ыңғайлы және тез жүргізілетін жағдай) немесе жүйе жадысында (ең таралған жағдай) орналастырылуы мүмкін. Олардың енгізу/шығару (ең сирек жағдай) құрылғыларында да орналастырылуы мүмкін. Операндтың тұрған орнын анықтау (яғни, оған сілтеу) команда кодымен жүзеге асырылады.

Әртүрлі процессордағы сілтеу тәсілдерінің саны 4...16 арасында болады. Қазіргі заманғы микропроцессорларда пайдаланылатын қалыпты сілтеу тәсілдерін қарастыралық.

Тікелей сілтеу тәсілінде тұрақты (константа) түріндегі операнд (кірістік) жадыда тікелей команда кодынан  кейін орналастырылады.

Тура сілтеу тәсілінде операнд (кірістік немесе шығыстық) жадыдағы команда кодынан кейін орналастырылған адрес коды бойынша табылады.

Регистрлік сілтеу тәсілінде операнд (кірістік немесе шығыстық) процессордың ішкі регистрінде болады. Регистр номері (адресі) команда кодымен анықталады.

Жанама сілтеу тәсілінде процессордың ішкі регистрінде операнд орналастырылған жады адресі тұрады.

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

Автодекременттік (өздік кемітілім) сілтеу тәсілі автоинкременттік тәсілге ұқсас, тек қана бұнда регистр мәні команда орындалар алдында бірге немесе екіге кемітіледі. Бұл тәсіл де деректер массивін өңдеуге ыңғайлы келеді. Автоинкременттік және автодекременттік сілтеу тәсілдерін біріктіріп пайдалану стек түріндегі жады ұйымдастыруға мүмкіндік береді.

Қарастырылған сілтеу тәсілдерінен басқа кейбір процессорларда (мысалы, Intel 8086 процессорында) индекстік сілтеу тәсілдері пайдаланылады. Бұларда операнд адресін есептеу үшін регистр мәніне берілген константаны (индексті) қосу керек болады. Бұл константаның мәні жадыда команда кодынан кейін орналастырылады.

Әртүрлі сілтеу тәсілдерін пайдалану микропроцессорлық жүйенің жұмыс бағдарламаларының көлемі мен олардың орындалу уақытын қысқартуға мүмкіндік береді.

Команданың орындалу уақыты ондағы сілтеу тәсілімен анықталады. Сілтеу тәсілдерінің ең тезі – магистраль арқылы жүргізілетін ешқандай қосымша цикл қажет қылмайтын, регистрлік сілтеу. Егер сілтеу тәсілі жадыға байланысуды қажет қылатын болса, онда команданың орындалу уақыты, әрине, ұзарады. Процессордың ішкі регистрлерінің саны көп болған сайын, регистрлік сілтеу тәсілін жиі және еркін пайдалануға мүмкіндік ұлғаяды да, нәтижесінде жүйе тезірек істейді.

1.4.3 Жады сегменттері

Қазіргі заманның көптеген микропроцессорлық жүйелерінде жады сегменттерге бөлінеді. Мысалы, Intel 8086 процессоры негізінде құрылған микропроцессорлық жүйеде жады үздіксіз кеңістік түрінде қарастылмай, ол нақтылы мөлшерлі (64 Кбайттан), жады кеңістігіндегі орны бағдарламалы өзгертілетін, сегменттерге бөлінеді. Сегмент жадының тек қана 16-байтты шекарасында, яғни  16-ға бөлінетін адрестен басталады.

Жады адрестерінің кодтарын сақтауға жеке регистрлер емес, регистр жұптары пайдаланылады:

-       сегмент регистрі сегмент басының адресін (сегменттің жадыдағы орнын) анықтайды;

-       көрсеткіш регистрі (ығыстырым регистрі) жұмыс адресінің сегмент ішіндегі орнын анықтайды.

Бұл жағдайда, сыртқы адрес желісіне қойылатын, іс жүзіндегі 20-разрядты жады адресі, 1.18-суретте көрсетілген тәртіппен, яғни ығыстырым мен 4 битке ығыстырылған сегмент адресін қосу арқылы құрылады.

1.18 Сурет

Бұл тәсілмен процессордың 16-разрядты ішкі регистрлері арқылы көлемі 1 Mбайт жадыға сілтеуге пайдаланылатын 20-разрядты адрес шығарылады. Motorola фирмасының MC68000 процессорының ішкі  регистрлері 32-разрядты, сондықтан онда жадыны сегменттерге бөлу мәселесі тумайды.

Жадының сегменттерге бөлінуінің бұдан күрделірек тәсілдері де бар. Мысалы, Intel 80286 процессорының қорғалған режимінде жады адресі 1.19-суретке сәйкесті есептеледі. Бұл жағдайда сегмент регистрінде сегменттің базалық (бастама) адресі емес, сегмент дескрипторлары сақталатын, жады адрестерін анықтаушы, селекторлардың кодтары сақталады. Жадының дескрипторлар сақталатын аймағы дескрипторлар кестесі деп аталады.

1.19 Сурет

Әрбір сегмент дескрипторында сегменттің базалық адресі, сегмент мөлшері (1...64 Кбайт) және оның атрибуттары сақталады. Сегменттің базалық адресінің разряд саны 24 бит, сондықтан ол көлемі 16 Мбайт жадыға сілтеуге мүмкіндік береді. Сонымен, жады адресін есептеуші қосуышқа, алдыңғы жағдайдағыдай, сегмент регистрінің мәні емес, дескрипторлар кестесіндегі сегменттің базалық адресі беріледі.

Сегменттерге бөлу жадыға сілтеудің бұдан да күрделірек тәсілі Intel фирмасының 80386 процессорында және одан кейінгі моделдерінде пайдаланылған. Бұл тәсіл 1.20-суретте көрсетілген.

1.20 Сурет

Жады адресі үш кезеңмен есептеледі. Алдымен үш бөліктемені – базаны, индексті және нақтылы масштабқа көбейтілген, ығыстырымды (Base, Index, Displacement) – қосу арқылы 32-разрядты әрекеттік адрес есептеледі. Оның бөліктемелерінің мағынасы:

-       ығыстырым – командаға енгізілген 8-, 16- немесе 32-разрядты сан;

-       база процессордың базалық регистрінің мәні. Ол массивтің басын көрсетуге пайдаланылады;

-       индекс процессордың индекстік регистрінің мәні. Ол массив элементтерінің біреуін таңдауға пайдаланылады;

-       масштаб – команда кодында көрсетілген көбейткіш (оның мәні 1, 2, 4 немесе 8 болуы мүмкін). Қосу операциясының алдында индекс осы мәнге көбейтіледі. Ол массив элементінің мөлшерін көрсетуге пайдаланылады.

Бұдан кейін арнайы сегменттеу блогы, сегмент регистріндегі базалық адрес пен есептелген әрекеттік адресті қосу арқылы, 32-разрядты сызықты адресті есептейді. Ақырында, парақтап сілтеу блогының түрлендіруімен сызықты адресті 4 Кбайттан парақталған жұмыс адрестеріне айналдыруы арқылы 32-битті жады адресі құрылады.

Жадыны сегменттеу оның бір немесе бірнеше сегментін деректерге және бір немесе бірнеше сегментін бағдарламаға бөлуге мүмкіндік береді. Бір сегменттен екінші сегментке ауысу үшін сегмент регистрінің мәнін өзгерту жеткілікті.

1.4.4 Байттарды және сөздерді сілтеу

Көптеген 16- немесе 32-разрядты процессорлардың тұтас сөздермен (16-разрядты немесе 32-разрядты) қатар, жеке байттарға сілтеу мүмкіндіктері де бар. Әрбір байтқа дербес адрес бөлінеді. Мысалы, 16-разрядты процессордың жадыдағы барлық сөзі (16-разрядты) жұп мәнді адреспен сілтенеді, ал бұл сөздерге кіретін байттары жұп мәнді адреспен де, тақ мәнді адреспен де сілтенуі мүмкін.

Магистраль арқылы жүргізілетін байттық және сөздік ауыстыру циклдерін ажырату үшін басқару желісінде байттық ауыстырудың арнайы сигналы ескерілген. Процессордың командалар жүйесінде байттармен жұмыс істеуге арналған командалар енгізіледі немесе байттық сілтеу тәсілдері ескеріледі.

1.5 Процессордың ішкі регистрлері

Бұл тарауда процессордың ішкі регистрлері, олардың түрлері мен қызмет ерекшеліктері қарастырылады.

Бұрын айтылғандай, процессордың ішкі регистрлері – қызмет информациялары мен деректерді уақытша сақтауға арналған, кішігірім көлемді, тезәрекетті жады. Олардың саны қарапайым процессорларда (мысалы, Intel 8085 микропроцессорында) 6...8, ал күрделі процессорларда ондаған болуы мүмкін. Бұл регистрлердің әмбебап және арнама түрлері болады. Арнама регистрлер – команда санауышы, ахуал регистрі (PSW), стек көрсеткіші. Процессордың қалған регистрлерінің әмбебап та, арнама да болуы мүмкін.

Мысалы, DEC фирмасының 16-разрядты Т-11 процессорында 8 жалпы қызмет  регистрлері (ЖҚР) мен бір ахуал регистрі болады. Барлық регистр – 16 разрядты. Жалпы қызмет регистрлерінің біреуі – команда санауышына, екіншісі стек көрсеткішіне бөлінеді. Жалпы қызмет регистрлерінің қалғаны – өзара алмастырылымды, яғни әмбебап регистрлер, оларда дерек, адрес, индекс және т.б. сақтауға болады. Бұл микропроцессордың адрестік кеңістігі – 64 Кбайт (жады адресі – 16-разрядты).

Motorola фирмасының 16-разрядты MC68000 процессорында 19 регистр бар, олар: 16-разрядты ахуал регистрі, 32-разрядты команда санауышы, тоғыз 32-разрядты адрес регистрі және сегіз 32-разрядты дерек регистрі. Екі адрес регистрі стек көрсеткішіне бөлінген. Оның адрестік кеңістігі – 16 Мбайт (сыртқы адрестік желі – 24-разрядты). Сегіз дерек регистрі мен қалған сегіз адрес регистрі – өзара алмастырылымды.

Дербес компьютерлерде пайдаланылатын 16-разрядты Intel 8086 процессоры ерекше құрылған. Бұл процессордың әрбір регистрі ерекше қызметке арналған, олар бір-бірін сирек жағдайда ғана алмастыра алады. Бұл процессордың ерекшеліктеріне толығырақ тоқталық.

8086 процессорында  16-разрядты 14 регистр бар. Олардың төртеуі (AX, BX, CX, DX) – дерек регистрлері, олардың операнд және операция нәтижелерін сақтауымен қатар, әрбіреуіне тән арнайы қызметтері де бар, олар:

-       AX регистрі – көбейту, бөлу, енгізу/шығару құрылғыларымен ауысу (енгізу және шығару командалары);

-       BX регистрі – адрес есептелімдеріндегі базалық регистр;

-       CX регистрі – цикл санауышы;

-       DX регистрі – енгізу/шығару адресін анықтау.

Дерек регистрлерінің екі байтының жеке пайдаланылу мүмкіндігі бар (мысалы, AX регистрінің кіші байты – AL, ал үлкен байты – AH деп белгіленеді).

Процессордың келесі төрт регистрі – сегменттік регистрлер, олардың әрбіреуі жұмыс сегменттерінің біреуінің орнын анықтайды:

-       CS регистрі (Code Segment) кезекті мезетте орындалып жатқан командалардың сегментіне сәйкес келеді;

-       DS регистрі (Data Segment) процессордың істеп жатқан дерек сегментіне сәйкес келеді;

-       ES регистрі (Extra Segment) қосымша дерек сегментіне сәйкес келеді;

-       SS регистрі (Stack Segment) стек сегментіне сәйкес келеді.

Процессордың келесі бес регистрі (SP Stack Pointer, BP Base Pointer, SI Source Index, DI Destination Index, IP Instruction Pointer) көрсеткіш қызметін атқарады (яғни, сегмент шегіндегі ығыстырымды анықтайды). Мысалы, процессордың команда санауышы – CS және IP регистрлерінің жұбымен, ал стек көрсеткіші – SP және SS регистрлерінің жұбымен құрылады. SI, DI регистрлері жол операцияларында, яғни жадының бірнеше ұяшығын бір командамен тізбелеп өңдеу кезінде пайдаланылады.

Соңғы регистр FLAGS процессордың ахуал регистрі (PSW). Оның 16 разрядының тоғызы (1.21-сурет): CF (Carry Flag) арифметикалық операциялардағы тасымал туы, PF (Parity Flag) – нәтиженің жұптық туы, AF (Auxiliary Flag) – қосымша тасымал туы, ZF (Zero Flag) – нолдік нәтиже туы, SF (Sign Flag) – таңба туы (нәтижені жоғарғы разрядымен бірдей), TF (Trap Flag) – қадамды режим туы (процессор жұмысын реттеу кезінде пайдаланылады), IF (Interrupt-enable Flag) аппаратты үзіліс рұқсатының туы, DF (Direction Flag) – жол операцияларындағы бағыт туы, OF (Overflow Flag) – асып түсу туы.

1.21 Сурет

Ахуал регистрінің биттері алдыңғы команданың орындалу нәтижесіне байланысты қойылады немесе тазартылады және олардың мәндері процессордың қызмет бағытын ауыстыру командаларында пайдаланылады. Ахуал регистрінің биттерін процессордың арнайы командаларымен де қоюға және тазартуға болады (процессордың командалар жүйесі келесі тарауда қарастырылады).

Көптеген процессорда аккумулятор (яғни, жинақтауыш) деп аталатын арнайы регистр болады. Бұндай жағдайда аккумулятор барлық операцияға қатысады және енгізу/шығару құрылғыларымен әрекет тек сол арқылы жүргізіледі. Кейде орындалған операцияның нәтижесі де оған орналастырылады (бұндай жағдайда процессордың аккумуляторлық архитектурасы туралы сөз көтеріледі). Мысалы, 8086 процессорының дерек регистрі АХ міндетті түрде көбейту және бөлу командаларына қатысатындықтан және енгізу/шығару құрылғыларымен дерек алмасу тек сол арқылы жүргізілетіндіктен, оны аккумулятор деп санауға болады. Аккумулятор түріндегі арнайы регистрдің болуы процессор құрылымын қарапайымдайды және процессор ішіндегі код жіберілімдерін тездетеді, бірақ кейбір жағдайда (информация ағынының түгелдей аккумулятор арқылы өтуінің қажеттігінен) жүйе жұмысы баяуланады. Процессордың бірнеше регистрінің толықтай алмастырылымды жағдайында бұндай мәселе тумайды.

1.6 Процессордың командалар жүйесі

Процессордың командалар жүйесіндегі командаларды негізгі төрт топқа бөлуге болады:

-       дерек тарату командалары;

-       арифметикалық командалар;

-       логикалық командалар;

-       ауысу командалары.

Дерек тарату командалары арқылы операндтар дерек көзінен (Source) дерек қабылдағышына (Destination) жіберіледі (дәлірек айтқанда, көшіріледі). Дерек көзі мен қабылдағышы ретінде процессордың ішкі регистрлері, жады ұяшықтары немесе енгізу/шығару құрылғылары пайдаланылуы мүмкін. АЛҚ бұл командаларда пайдаланылмайды.

Арифметикалық командалар қосу, алу, көбейту, бөлу, бірге өсіру (increment), бірге кеміту (decrement) және т.б. операцияларын орындайды. Олар бір немесе екі кіріс операндының негізінде орындалған операцияға сәйкесті шығыс операндын қалыптастырады.

Логикалық командалар операндтарға разрядтары бойынша логикалық операциялар жүргізеді, олар: ЖӘНЕ, НЕМЕСЕ, екілік қосу, тазарту, терістеу, әртүрлі ығыстырылымдар (оңға, солға, арифметикалық ығыстырылым, айналымды ығыстырылым).

Ауыстыру командалары бағдарлама командаларының тізбелі орындалу тәртібін өзгертуге қолданылады. Олар арқылы қосалқы бағдарламаларға шығу және олардан қайту, әртүрлі бағдарламалы айналымдар,бағдарламаның тарамдалуы, және т.б. ұйымдастырылады. Ауыстыру командалары әрқашан команда санауышының мәнін өзгертеді. Ауыстырулардың шартты да, шартсыз да болуы мүмкін. Бұл командалар информация өңделуінің күрделі алгоритмдерін құруға мүмкіндік береді.

Орындалған команданың нәтижесіне сәйкесті ахуал регистрінің (PSW) биттері қойылады немесе тазартылады. Командалардың барлығы бірдей PSW туларын өзгерте бермейді. PSW туларының өзгертілуі нақтылы процессордың ерекшеліктерімен анықталады.

Әртүрлі процессордың командаларының ерекшеліктері болады және олардың саны да әртүрлі. Мысалы, Intel 8085 процессорында – 245 команда, Intel 8086 процессорында –  133 команда, ал МС68000 процессорында небәрі – 61 команда болады. Қазіргі заманғы қуатты процессорлардың командалары жүздеп саналады. Бұнымен қатар командалар жинамы қысқартылған процессорлар да (RISC-процессорлар) болады. Бұл процессорлардың командалар санының қысқартылуының арқасында, олардың тиімділігі мен орындалу жылдамдығы көтеріледі.

Келтірілген команда топтарының ерекшеліктерін толығырақ қарастыралық.

1.6.1 Дерек тарату командалары

Дерек тарату командалары келесі жұмыстарды атқарады:

-       жады ұяшығының мәнін процессордың ішкі регистрлеріне енгізу (жазу);

-       процессордың ішкі регистрлерінің мәнін жадыға сақтау;

-       жадының бір аймағының мәндерін екінші аймаққа көшіру;

-       енгізу/шығару құрылғыларына жазу және олардан оқу.

Кейбір процессорда (мысалы, Т-11) бұл жұмыстар жалғыз MOV командасымен (байттық жіберілімдерге –  MOVB), бірақ әртүрлі сілтеу тәсілі арқылы, орындалады. Басқа процессорларда MOV командасымен қатар бұл жұмыстарды орындауға арналған тағы бірнеше команда болады. Мысалы, регистрлерге енгізу үшін арнайы енгізу командалары пайдаланылады, олардың аталымдары (жазылым белгілемелері) LOAD сөзінің негізінде құрылады. Стекте сақтау және одан шығару PUSH және POP командаларымен жүзеге асырылады.  Бұл командалар жіберілімді автоинкрементті және автодекрементті сілтеу арқылы орындайды.

Кейде командалар жүйесіне (мысалы, 8086 процессорында) деректерді жол бойынша (немесе тізбелеп) жіберуге арналған арнайы команда MOVS енгізіледі. Бұл командалар жалғыз сөз немесе байт емес, саны берілген біреше сөз немесе байт (MOVSB) жібереді, яғни магистраль арқылы бірнеше ауыстыру циклін жүргізеді. Бұл кезде жұмысқа қатысты жады адресі әрбір байланыстан кейін бірге немесе екіге өзгертіліп отырылады, яғни автоинкрементті немесе автодекрементті сілтеу қолданылады.

Кейбір процессорларда (мысалы, 8085 және 8086 процессорларында) енгізу/шығару құрылғыларымен жұмыс істеуге арнайы командалар (IN және OUT) пайдаланылады. Одан қуаттырақ процессорларда (80286 процессорынан бастап) жол бойынша (тізбелеп) енгізу командалары (INS және OUTS) қосылған. Бұл командалар дерек массивін (жолды) түгелдей жадыдан енгізу/шығару құрылғысына (OUTS) немесе енгізу/шығару құрылғысынан жадыға (INS) жіберуге мүмкіндік береді. Жады адресі әрбір байланыстан кейін өсіріліп немесе кемітіліп отырылады (MOVS командасындағы сияқты).

Дерек тарату командаларына деректерді өзара алмастыру командалары да жатады, олардың аталымдары (жазылым белгілемелері) Exchange сөзінің негізінде құрылады.  Дерек алмастыру операцияларының ішкі регистрлердің арасында, бір регистрдің екі жартысының арасында (SWAP) немесе регистр мен жады арасында жүргізілуінің ескерілуі мүмкін.

1.6.2 Арифметикалық командалар

Арифметикалық командалар операнд кодтарын екілік немесе екілік-ондық сандардың коды ретінде қарастырады. Бұл командаларды негізгі бес топқа бөлуге болады:

-       бекітімді үтірлі операциялардың (қосу, алу, көбейту, бөлу) командалары;

-       қалқыма үтірлі операциялардың (қосу, алу, көбейту, бөлу) командалары;

-       тазарту командалары;

-       инкремент және декремент командалары;

-       салыстыру командалары.

Бекітімді үтірлі операциялардың командалары процессор регистрлерінің мәндерін немесе жады кодтарын  қалыпты екілік код ретінде пайдаланады. Қосу командасы (ADD) екі кодтың қосындысын есептейді. Алу командасы (SUB) екі кодтың айырымын есептейді. Көбейту командасы (MUL) екі кодтың көбейтілімін есептейді (нәтиженің разряд саны көбейткіштердің разряд санынан екі есе үлкен болады). Бөлу командасы (DIV) бір кодтың екіншісіне бөліндісін есептейді. Бұл командалар таңбалы сандармен де, таңбасыз сандармен де орындалады.

Қалқыма үтірлі (нүктелі) операциялардың командалары сандардың дәреже және мантисса арқылы көрсетілген түрін пайдаланады (әдетте, бұл сандар жадының қатар тұрған екі ұяшығында болады). Қазіргі заманғы қуатты процессорлардағы қалқыма үтірлі командалар жинамы төрт арифметикалық әрекетпен ғана шектелмейді, оларда көптеген күрделірек командалар да болады, мысалы: тригонометриялық функцияларды, логарифмдік функцияларды және, дыбыс пен бейнекөріністерді өңдеуге қажетті, күрделі функцияларды есептеу командалары.

Тазарту командалары (CLR) регистрге немесе жады ұяшығына ноль кодын жазуға арналған. Бұл командалардың орындайтын әрекетін, әрине, ноль кодын жіберу командаларымен де жүзеге асыруға болады, бірақ арнайы тазарту командалары жіберу командаларына қарағанда тезірек орындалады.

Инкремент (бірге өсіру, INC) және декремент (бірге кеміту, DEC) командалары – аса ыңғайлы командалар. Оларды, әрине, бір қосу немесе бір алу командаларымен ауыстыруға болар еді, бірақ инкремент және декремент командалары қосу және алу командаларына қарағанда тезірек орындалады.

Салыстыру командасы (CMP) екі кіріс операндын салыстыруға арналған. Бұнда екі операндтың айырымы есептеледі, бірақ шығыс операнды қалыптастырылмайды, тек қана процессордың ахуал регистрінің (PSW) биттері есептеу нәтижесіне байланысты өзгертіледі. Салыстыру командасынан кейінгі команда (әдетте, ол ауыстыру командасы) процессордың ахуал регистрінің биттерінің мәндеріне байланысты іс-әрекет жүргізеді. Кейбір процессорларда (мысалы, 8086 процессорында) жадыда орналасқан екі операндтар тізбесін тізбелеп салыстыру мүмкіндігі ескерілген.

1.6.3 Логикалық командалар

Логикалық командалар операндтарға (биттері бойынша) логикалық операциялар жүргізеді, яғни олар операнд кодтарын тұтас сан түрінде емес, жеке биттердің жинамы түрінде қарастырады. Логикалық командалар арқылы орындалатын негізгі операциялар:

-       ЖӘНЕ, НЕМЕСЕ, екілік қосу;

-       логикалық, арифметикалық және айналымды ығыстырымдар;

-       бит мәндерін және операндты тексеру;

-       процессордың ахуал регистрінің (PSW) биттерін (туларын) қою және тазарту.

Логикалық командалар операндтардың барлық битіне қалыпты логикалық операциялар жүргізумен қатар, олардан ерекше операцияларды орындауға мүмкіндік береді. Мысалы, ЖӘНЕ (AND) операциясы операндтың көрсетілген биттерін тазартуға пайдаланылады (бұл кезде операндтардың біреуі ретінде, тазартылуы қажет биттері нолге қойылған, жасырма (маска) пайдаланылады). НЕМЕСЕ  (OR) операциясы операндтың көрсетілген биттерін бірге қоюға пайдаланылады (бұл кезде операндтардың біреуі ретінде, қажетті биттері бірге қойылған, жасырма пайдаланылады). “Екілік қосу” (XOR) операциясы операндтың көрсетілген биттерін терістеуге пайдаланылады (бұл кезде операндтардың біреуі ретінде, терістелетін биттері бірге қойылған, жасырма пайдаланылады).

Ығыстыру командалары операнд кодын биттері бойынша оңға (кіші разрядтарына қарай) немесе солға (үлкен разрядтарына қарай) ығыстыруға мүмкіндік береді. Ығыстыру түрі (логикалық, арифметикалық немесе айналымды) үлкен битінің (оңға ығысу кезінде) немесе кіші битінің (солға ығысу кезінде) жаңа мәні қандай болатындығын және үлкен битінің (солға ығысу кезінде) немесе кіші битінің (оңға ығысу кезінде) бұрынғы мәнінің қайда сақталатынын анықтайды. Мысалы, логикалық оңға ығыстырылымда операнд кодының үлкен разрядында ноль қойылады, ал оның кіші разряды тасымал туы ретінде процессордың ахуал регистріне жазылады. Ал арифметикалық оңға ығыстырылымда үлкен разрядының мәні бұрынғы қалпында (ноль немесе бір түрінде) қалдырылады, кіші разряды тасымал туы ретінде жазылады.

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

Мысал ретінде 1.22-суретте оңға ығыстыру командаларының орындайтын әрекеттері көрсетілген.

1.22 Сурет

Бит мәндерін және операндты түгелдей тексеру командалары процессордың ахуал регистрінің таңдалған биттерін немесе операнд биттерін түгелдей бірге қоюға немесе тазартуға арналған. Бұл командалар шығыс операндын қалыптастырмайды. Операндты тексеру командасы (TST) операнд кодының түгелдей нолге теңдігін және оның таңбасын (үлкен битінің мәнін) тексереді, оған бір ғана кіріс операнды қажет. Битті тексеру командасы (BIT) жеке биттерді ғана тексереді, оларды таңдау үшін екінші операнд ретінде жасырма коды пайдаланылады. Жасырма кодының тексерілетін биттерге сәйкесті разрядтарында бір болу керек.

Процессордың ахуал регистрінің биттерін (туларын) қою және тазарту командалары кез келген туды бірге қоюға немесе тазартуға мүмкіндік береді. Әрбір туға екі команда сәйкес келеді: біреуі оны бірге қояды, ал екіншісі оны тазартады. Мысалы, тасымал туына C (Carry) CLC (тазарту) және SEC немесе STC (бірге қою) командалары сәйкес келеді.

1.6.4 Ауыстыру командалары

Ауыстыру командалары бағдарламалардың түр-түрлі айналымдарын, тарамдалымдарын, қосалқы бағдарламалардың шақырылуын және т.б. ұйымдастыруға арналған, яғни олар бағдарламаның тізбелі орындалу тәртібін өзгертуге пайдаланылады. Бұл командалар команда санауышына жаңа мәнді жазып, процессордың келесі командаға емес, бағдарлама жадысындағы кез келген басқа командаға ауыстырылуына әкеледі. Ауыстыру командаларының кейбіреуі болашақта,  бағдарламаның кері қарай, ауысқан нүктесіне қайтарылуын ескереді, ал кейбіреуінде бұндай жағдай ескерілмейді. Қайтарылу ескерілген жағдайда процессордың кезекті параметрлері стекте сақталады, керісінше жағдайда олар ешқайда сақталмайды.

Қайтарылымсыз ауыстыру командалары екі топқа бөлінеді:

-       шартсыз ауыстыру командалары;

-       шартты ауыстыру командалары.

Бұл командалардың жазылым белгілемелерінде Branch (тарамдалу) және Jump (секіру) сөздері пайдаланылады.

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

Шартты ауыстыру командалары ауыстыруды берілген шарттардың орындалуында ғана жүзеге асырады. Бұндай шарттар ретінде, әдетте, процессордың ахуал регистріндегі (PSW) ту мәндері алынады, яғни ауыстыру шарттары алдыңғы операцияның, ту мәндерін өзгерткен, нәтижесіне байланысты қойылады. Бұндай шарттардың саны 4...16 арасында болуы мүмкін. Шартты ауыстыру командаларының мысалдары:

-       ноль кезіндегі ауыстыру;

-       ноль емес кезіндегі ауыстыру;

-       асып түсу кезіндегі ауыстыру;

-       асып түсудің жоқ кезіндегі ауыстыру;

-       нолден жоғары кездегі ауыстыру;

-       нолден жоғары емес кезіндегі ауыстыру.

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

Ауыстыру шарттарын тексеру үшін, ерекше жағдайларда шартты ауыстыру командасының (немесе бірнеше шартты ауыстыру командаларының) алдына қойылған, арнайы салыстыру командасы (CMP) қолданылады. Бірақ, тулардың кез келген командамен (мысалы, дерек тарату, арифметикалық немесе логикалық командаларымен) қойылуы да мүмкін. Ауыстыру командаларының өздері туларды өзгертпейді, бұл бірнеше ауыстыру командаларын бірінен соң бірін қоюға мүмкіндік береді.

Бірнеше шартты және шартсыз ауыстыру командаларының біріктіріліп пайдаланылуы процессорға кез келген күрделілікті, тарамдалған алгоритмдерді орындауға мүмкіндік береді. Мысал ретінде 1.23-суретте бағдарламаның екі және үш бұтаға тарамдалып, одан кейін қайта қосылуы көрсетілген.

1.23 Сурет

Қайтарылымды ауыстыру командалары қосалқы бағдарламаларға ауыстыру үшін қолданылады, бұл командалар қосалқы бағдарламаларды шақыру командалары (CALL) деп те аталады. Қосалқы бағдарламаларды пайдалану негізгі бағдарламаны қарапайымдылауға мүмкіндік береді.

Қайтарылымды ауыстыру командаларына қажетті жалғыз операнд жаңа адресті немесе кезекті адреске қосылатын ығыстырылымды көрсетеді. Команда санауышының кезекті мәні ауыстыру алдында стекте сақталады.

Негізгі бағдарламаның қосалқы бағдарламаны шақырған жеріне (ауыстыру нүктесіне) қайтып келу үшін арнайы қайтару командасы (RET немесе RTS) пайдаланылады. Бұл командалар стекте бұрынғы сақталған адресті команда санауышына жазады.

Қайтарылымды ауыстыру командаларының ішінде үзіліс командалары (INT) ерекше орын алады. Бұл командалар кіріс операнды ретінде үзіліс номерін (вектор адресін) талап етеді. Бұндай ауыстырулар аппаратты үзілістер сияқты жүзеге асырылады, яғни оларға байланысты қызмет атқару үшін процессор үзіліс векторларының кестесіне шығып, одан үзіліс номері арқылы ауыстырылатын жады адресін алады. Үзіліс шақыру адресі мен процессордың ахуал регистрінің (PSW) жағдайы стекте сақталады.

Үзіліс командалары көптеген жағдайда қайтарылымды ауыстыру командаларынан ыңғайлырақ келеді. Үзіліс векторларының кестесін бір рет құрып алып, сосын қажетті кезде оған байланысуға болады.

Үзіліс командасымен шақырылған қосалқы бағдарламадан қайту үшін үзілістен қайту командалары (IRET немесе RTI) пайдаланылады. Бұл командалар үзіліс алдында стекте сақталған команда санауышының және процессордың ахуал регистрінің (PSW) бұрынғы жағдайын қалпына келтіреді.

 

2 Intel 8085 микропроцессоры негізіндегі микропроцессорлық жүйе

Микропроцессорлық жүйелердің құрылым принциптері мен жұмыс тәртібін түсіну үшін олардың қарапайым процессор негізіндегі нақтылы бір түрін қарастыру ыңғайлы келеді. Осындай үлгі ретінде оқу құралының осы бөлімінде қарапайым Intel 8085 микропроцессоры негізінде құрылған сегізразрядты микропроцессорлық жүйе алынды. Осы күнге дейін өз маңыздылығын жоймаған, өндірісте әлі де шығарылатын, Intel 8085 микропроцессорының қолданылым аймағы – әрине, компьютерлер емес, оларда қазіргі заманда одан қуаттырақ және өнімділеу микропроцессорлар қолданылады. Intel 8085 сияқты микропроцессорлар, негізінде, олардың мүмкіншілігі жететін, басқару жүйелерінде пайдаланылады.

2.1 Intel 8085 микропроцессорының құрылымы

Intel 8085 микропроцессорының құрылымы 2.1-суретте көрсетілген. Микропроцессордың құрама блоктарының арасындағы информация алмастырылуы оның ішкі сегізразрядты дерек желісі арқылы жүзеге асырылады.

2.1 Сурет

Микропроцессордың ішкі құрама блоктары:

-       AC (Accumulator) – операцияға қатысты операндтардың біреуін және операция нәтижесін сақтауға арналған регистр-аккумулятор;

-       TR (Temporary Register) – екінші операндты уақытша сақтауға арналған регистр;

-       ALU (Arithmetic-Logic Unit) – кірістеріне берілген екі операндқа жүргізілетін операциялардың орындалуын жүзеге асыратын, арифметикалық-логикалық құрылғы. Операцияға қатысты операндтардың біреуі уақытша регистрде (TR), ал екіншісі аккумуляторда сақталады, операция нәтижесі де аккумуляторға түседі. ALU қосу, алу, ығыстыру, сөздерді салыстыру операцияларын және логикалық операцияларды (инверсия, конъюнкция, дизъюнкция, екілік қосу) ғана орындайды. Олардан күрделірек операциялар (көбейту, бөлу және т.б.) қосалқы бағдарламалар арқылы орындалады. ALU құрамында екілік сандарды екілік-ондық кодқа айналдыру схемасы (DA, Decimal Adjust) болады;

-       RF (Register Flags) – орындалған арифметикалық және логикалық операциялардың нәтижелерінің белгі биттерін көрсететін, ту регистрі. Intel 8085 микропроцессорында бес түрлі белгі пайдаланылады: Z (Zero) – нолдік белгісі, С (Carry) – тасымал белгісі, AC (Auxiliary Carry) – қосалқы тасымал белгісі, S (Sign) – терістік белгісі, P (Parity) – жұптық белгісі. Нолдік белгі операция нәтижесінің ноль болғандығын, тасымал белгісі ең үлкен разрядтан  шығарылатын тасымалды (яғни, жетінші разрядтан; разряд номерінің нолден басталатынын еске түсіріңіз), қосалқы тасымал белгісі үшінші разрядтан шығарылатын (яғни, сегізразрядты сөздің тетрадаларының арасындағы) тасымалды (ол екілік-ондық кодтарға операциялар жүргізуге қажет), терістік белгісі нәтиже таңбасын, жұптық белгісі нәтижедегі бірлік санының жұптығын сипаттайды. Бұл белгілер информацияның өңделу процесін басқару үшін пайдаланылады;

-       В, С, D, E, H, L – сегізразрядты жалпы қызмет регистрлері (ЖҚР), олар мультиплексор/демультиплексор (MUX/DMUX) арқылы ішкі дерек желісіне байланысқан. Олардың әрбіреуін жеке түрінде де,   В-С, D-E, H-L түрінде қос-қостап (олар В, D, Н жұптары деп аталады), 16-разрядты регистр ретінде де пайдалануға болады. H-L жұбы, әдетте, регистрлік жанама сілтеуге қажетті адресті сақтауға пайдаланылады;

-       W және Z – уақытша регистрлер, олар жадыдан команданың шығарылуы кезінде деректерді уақытша сақтауға арналған;

-       SP (Stack Pointer) – 16-разрядты стек көрсеткіші. Стек сөз жинағын сілтеусіз сақтауға ыңғайланған жады құрылымы. Стектің негізгі қызметі – үзіліс бағдарламалары мен қосалқы бағдарламалардың жұмысын қамтамасыз ету. Стектің түбі мен төбесі болады. Стекпен жүргізілетін операциялар – Push (сөз кіргізу) және Pop (сөз шығару). Стек ретінде қызмет жадысының нақтылы аймағы бөлінеді де, оның түбі стек көрсеткішінде (SP) стек түбі ретінде белгіленеді. Стекпен жұмыс кезінде стек көрсеткішінде соңғы жазылған ұяшықтың адресі (стектің төбесі) тұрады. Push және Pop командаларының орындалуы кезінде SP мәні кеміп немесе өсіп отырады. Жадының байтты ұйымдастырылымында және стекке регистр жұбындағы дерек енгізілу кезінде үлкен байт SP-1 адресі бойынша, ал кіші байт SP-2 адресі бойынша сақталады да, SP мәні екіге кемиді. Оқу кезінде стектің жоғарғы екі ұяшығындағы дерек сәйкесті регистрлерге орналастырылады да, SP мәні екіге ұлғаяды. Сонымен, стек жұмысы LIFO (Last In – First Out) тәртібімен жүргізіледі, яғни стекке соңғы жазылған сөз бірінші шығарылады;

-       IP (Instruction Pointer) немесе PC (Program Counter) –  16-разрядты команда көрсеткіші (бағдарлама санауышы). Онда кезекті орындалатын команданың адресі тұрады. Бастапқы қойылым кезінде ол ноль мәнін қабылдайды, демек, бастапқы қойылым бағдарламасының бірінші командасы нолінші ұяшықта болады. Команда ұзындығы 1...3 байт болады. Жадыдан кезекті байт шығарылғаннан кейін PC мәні ұлғайтылады, команда бірбайтты болса, онда келесі команданың адресі, ал өзгеше жағдайда кезекті команданың келесі байтының адресі шығады. Команданың екінші және үшінші байттары W және Z регистрлеріне түседі;

-       INC/DEC (Increment/Decrement) схемасы. Ол арқылы жіберілген сөздер бірге ұлғайтылып немесе кемітіліп отырылады;

-       IR (Instruction Register) – команда регистрі. Ол жадыдан команданың бірінші байтын, яғни командадаға сәйкесті операция кодын қабылдайды;

-       DC – команда дешифраторы. Ол команда регистріндегі (IR) команда кодына сәйкесті операцияның машина циклдерін жүзеге асыруға қажетті сигналдар тудырады;

-       Synchronising and Control блогы команда дешифраторы мен машина циклдерінің шифраторының жағдайы негізінде ахуал сигналдары мен микропроцессорлық жүйені сыртқы құрылғылармен байланыстыратын, сыртқы желіні басқару сигналдарын тудырады;

-       AB (Address Buffer) – үш жағдайлы адрес буфері. Ол арқылы МП мен жады немесе СҚ арасындағы информация алмасуы кезінде жадының қажетті ұяшығының екібайтты адресінің үлкен байты немесе сыртқы құрылғының адресі адрес желісінің A15-8 жолдарына жіберіледі;

-       A/DB (Address/Data Buffer) – үш жағдайлы адрес/дерек буфері. Ол арқылы уақыт бойынша кезектеп, жады ұяшығының адресінің кіші байты немесе дерек байты жіберіледі;

-       Interrupt Control және Sequential I/O Control – үзілістерді басқару және тізбекті енгізілім/шығарылымды басқару блоктары. Олардың қызметі алда қарастырылады.

2.2 Микропроцессордың басқару сигналдары

Intel 8085 микропроцессорының шықпаларындағы сигналдар келесі қызметтер атқарады:

-       A15-8 – жады адресінің үлкен байтын немесе сыртқы құрылғының толық адресін шығаруға арналған үш жағдайлы шығыс жолдары;

-       AD7-0 – машина циклінің бірінші тактісінде жады адресінің кіші байтын немесе сыртқы құрылғының толық адресін шығаруға арналған үш жағдайлы кезектелімді жолдар;

-       ALE – машина циклінің бірінші тактісінде жіберілген жады адресінің кіші байтын сыртқы адрес регистріне енгізуге арналған рұқсат стробы;

-       ,  – сілтенген жады ұяшығына немесе сыртқы құрылғыға жіберілетін оқу және жазу стробтары;

-       READY – жадының немесе сыртқы құрылғының МП-мен информация алмасуға дайын екендігін көрсететін, кіріс сигналы;

-       S1, S0 –  МП-дің сыртқы құрылғыға жіберетін ахуал сигналдары;

-       IO/М – жадыны немесе сыртқы құрылғыны таңдау сигналы;

-       x1, x2 – МП-дың ішкі синхроимпульстер генераторының жұмысын қамтамасыз етуші кварцты резонатордың немесе одан басқа жиілік тиянақтаушы тізбектердің қосылатын шықпалары;

-        () – МП-ды бастапқы жағдайына қайтару кірісі;

-       CLK – микропроцессорлық жүйеге жіберілетін синхроимпульстер шығысы;

-       RESET – тактілік CLK импульстеріне байланыстырылған, жүйенің сыртқы модулдерін тазарту сигналы;

-       INTR (Interrupt Request) – векторлық үзіліс сұранысының кірісі;

-        (Interrupt Acknowledge) – кезекті команда циклі біткеннен кейін жіберілетін, векторлық үзілісті құптау стробы;

-       RST n (n = 5,5; 6,5; 7,5) түріндегі радиалды үзіліс сұраныстарының кірістері;

-       TRAP – мәртебесі ең жоғарғы дәрежедегі, тиым салынбайтын үзіліс сұранысының кірісі;

-       SID, SOD (Serial Input Data, Serial Output Data) – деректерді тізбекті жіберу кірісі мен шығысы;

-       HOLD – желіні иелену сұранысы;

-       HLDA (Hold Acknowledge) – желінің иеленілуін құптау сигналы.

2.3 Микропроцессордың жұмыс тәртібі

МП командаларының қалыпты жүргізілімінде, олар жадыдан жазылым бағытымен, HLT немесе RET командасына жеткенше, бір-бірден шығарылып, орындалады. Жеке команданың шығарылуы мен орындалуы команда циклін (КЦ) құрады. Команда циклі бір немесе бірнеше машина циклінен (МЦ) тұрады. МП мен жады немесе СҚ арасында байт жіберуге арналған әрбір байланыс машина циклін қажет қылады. Өз кезегінде машина циклі бірнеше тактіге бөлінеді және такт саны машина циклінің түріне тәуелді болады.

Intel 8085 микропроцессорының келесі түрдегі машина циклдері бар:

1. Команда таңдалымы (OF, Opcode Fetch).

2. Жадыдан оқу (MR, Memory Read).

3. Жадыға жазу (MW, Memory Write).

4. Сыртқы құрылғыдан оқу (IOR, Input-Output Read).

5 Сыртқы құрылғыға жазу (IOW, Input-Output Write).

6. Үзілісті құптау (INA, Interrupt Acknowledge).

7. Желіні босату (BI, Bus Idle).

8. Тоқтатылым (HALT).

Әрбір машина циклінің басында цикл түрін сипаттаушы, ахуал сигналдары (S1, S0) тудырылады. Олар сыртқы құрылғыға жіберілетін қосалқы басқару сигналдарын қалыптастыруға пайдаланылады.

Команда циклі КЦ команда таңдалымынан басталады (Opcode Fetch, OF). Бірінші машина циклі Ml әрқашан OF, онда МП команданың бірінші байтын алады. Одан кейін, команданың бірбайтты, екібайтты немесе үшбайтты болуына байланысты бір немесе екі MR (Memory Read) түрлі машина циклінің болуы мүмкін.

Команданың бірінші байтында (b1) операция коды, сілтеу тәсілі жөніндегі мәліметтер, ал егер команда бірбайтты болса, онда операндтың адресі де болады. Бұндағы адрес қысқа адресті “регистр-регистр” түріндегі операцияларға ғана байланысты болады. Жалпы қызметтік 8 регистрді сілтеуге үшразрядты, ал регистр жұптарын сілтеуге екіразрядты адрес жеткілікті. Команданың екінші байтында (b2) операндқа қатысты жады ұяшығының адресінің кіші бөлігі  немесе сыртқы құрылғының адресі немесе операндтың тікелей өзі болады (соңғылар команданың екібайттылық жағдайында). Команданың үшінші байтында (b3) операнд адресінің үлкен бөлігі немесе тікелей берілетін деректің екінші байты (регистрлер жұбына енгізу кезінде) болады. Intel 8085 микропроцессорының регистрлері мен регистр жұптарының адрестері 2.1-кестеде берілген.

2.1 К е с т е

Регистрлер

Регистр жұптары

B

C

D

E

H

L

M

A

B

D

H

SP

000

001

010

011

100

101

110

111

00

01

10

11

 

Команданың таңдалып, айқындалғанынан кейін, оны орындауға қосымша машина циклдерінің (бірден беске дейін) қажет болуы мүмкін.

Машина циклі, төменде қарастырылатын қалыпты әрекеттер жүргізілетін, тактілерден тұрады. Әртүрлі машина цикліндегі такт саны –3…6, бірақ олардың көпшілігі үш тактіден тұрады. Команда циклінде 4...18 такт болуы мүмкін.

Әртүрлі машина циклін жүзеге асырушы сигналдарды МП (команданың бірінші байтындағы информация негізінде) тудырады.

Айтылғанды мысал арқылы суреттелік. Аккумулятордағы деректі жады ұяшығына тура сілтеумен (яғни, адрестің командада көрсетілуі арқылы) жіберуші STA D3D2 (Store Accumulator Direct) командасының орындалуын қарастыралық. Команда – үшбайтты, оның МП-ға жіберілуі үшін үш машина циклі керек, оның біріншісінде b1 байты команда регистріне (IR) жіберіліп, келесілерінде b2 және b3 байттары уақытша регистрлерге (W және Z) жіберіледі. Бүкіл команда қабылданғаннан кейін МП аккумулятордағы дерек байтын, адресі МП-ға түскен, жады ұяшығына жіберу жұмысын жүзеге асырады. Сонымен, команда циклі OF-MR-MR-MW тәртібімен жүргізілетін төрт машина циклінен құрылады.

Әрбір машина циклі, тактілік импульстердің аттас ауытқымаларының аралығымен анықталатын, тактілерге (жағдайларға) бөлінеді.

Машина циклінің тактілерінде орындалатын қалыпты әрекеттер:

T1 – жадының немесе СҚ-ның адресі AD7-0 және A15-8 желілеріне қойылып, AD7-0 биттерін бекітуге ALE сигналы тудырылады. IO/M, S1 және S0 жолдарында цикл түрін анықтаушы информация қойылады. HALT туы тексеріледі.

Т2 – Ready және Hold кірістері тексеріледі. Егер осы машина циклі команда таңдалымының бір бөлігі болса, онда бағдарлама санауышы бірге ұлғайтылады. BI (освобождения шин) циклінен басқа машина циклдерінде басқару стробтарының (,  немесе ) біреуі бірлік жағдайынан жандандырылған нолдік жағдайына ауыстырылады.

TW (Wait) – жадының немесе СҚ-ның дерек алмасуға дайын еместігінде (READY жолында төменгі деңгейлі кернеу тұрғанда) туады. Адрес, дерек және басқару жолдарының жағдайы такт аяғындағы қалпында қалады. READY сигналы әрбір күту тактісінде тексеріледі.

Т3 – команда немесе  дерек байты микропроцессорға немесе одан жіберіледі. Жандандырылған басқару стробының деңгейі бірлік деңгейіне өзгертіледі.

Т4 – команда регистріндегі код айқындалады.

Т5,6 – кейбір командалардың бітірілуіне қажет кезінде пайдаланылады. Бұл кезде жүйе желілері пайдаланылмайды.

Машина циклінде әрқашан Т1....Т3 тактілері болады, кейде такт саны одан көбірек болуы мүмкін, бірақ оқу мен жазуға үш такт ғана қажет.

2.4 Үзіліс жүйесі

Микропроцессорлық жүйенің жұмысы кезінде оның ішінде немесе сыртында, кезексіз әрекет қажет қылатын, уақиғалар тууы мүмкін. Бұндай әрекет негізгі бағдарламаны үзіп, үзіліс сұранысының жұмысын орындауға ауысу арқылы жүзеге асырылады. Жүйе ішіндегі сұраныстар оның жұмыс ахауынан, разряд торының асып кетуінде, нолге бөлу кезінде және сыртқы құрылғылардың қызмет талабынан туады. Сыртқы сұраныстардың басқарылым объектілерінің қауіптілік жағдайында, қорек көздерінің ахаулығында және т.б. жағдайларда түсуі мүмкін.

Баяу істейтін сыртқы құрылғылардың сұраныстары бойынша үзілістер, микропроцессор уақытын олардың информация ауысуға дайын кезінде ғана алуына мүмкіндік беріп, бұндай ұйымдастырылым нәтижесінде жалпы жүйенің жұмыс тиімділігі көтеріледі. Сыртқы құрылғыға микропроцессор қажет болғанда, ол үзіліс сұранысының триггерін бірлік жағдайға қояды да, бұл үзіліс сигналын микропроцессордың қабылдап, сәйкесті өңдегенінше, триггер осы жағдайында қалады. Қабылданған үзіліс сұранысына жауап ретінде микропроцессорлық жүйеде кезекті команданың орындалуы бітіріледі, микропроцессор жағдайы еске сақталады, үзіліс қызметінің қосалқы бағдарламасы орындалады, сосын жүйенің басқарылуы негізгі бағдарламаның кезекті командасына қайтарылады.

Intel 8085 микропроцессорының бес үзіліс кірісі болады. Үзіліс, оған рұқсаттың қойылған жағдайында, CALL командасының әрекетімен басталады: команда көрсеткішінің (IP) жағдайы стекке жіберіледі, ал оның өзіне орындалатын қосалқы бағдарламаның адресі енгізіледі де, үзіліс сұранысына қажетті жұмыс орындалады.

Микропроцессордың үзілістерге байланысты кірістері: TRAP; RST 5,5; RST 6,5; RST 7,5; INTR. Үзіліс жүйесінің ұйымдастырылымында сұраныстарды жасыру мәселелері шешіліп, олардың мәртебелік деңгейлері анықталады.

Жасыру дегеніміз – сәйкесті кірістің әрекетіне тиым салу. Үзіліс сұраныстарының кірістерінің жасырылымды немесе жасырылмайтын (яғни, әрқашан қабылдайтын жағдайында) болуы мүмкін.

TRAP кірісі – жасырылмайтын кіріс және оның мәртебесі ең жоғарғы деңгейде болады. Бұл кіріске микропроцессорлық жүйедегі, кезексіз әрекет қажет қылатын, маңызды оқиғалардың (мысалы, қорек көзінің ахауының) хабарлау сигналдары беріледі. TRAP үзілісіне сайланысты қызметтің қосалқы бағдарламасының бастапқы адресі жадының бекітілген (24Н адресі бойынша) ұяшығында орналастырылған.

RSTn (n = 5,5; 6,5; 7,5) кірістерінің белгілемесі Restart сөзінен алынған. Бұл кірістердің үзілістері – жасырылмалы, яғни оларға EI (Enable Interrupt) және DI (Disable Interrupt) командалары арқылы олардың бәріне бірдей рұқсат беруге немесе тиым салуға болады. Микропроцессордың бастапқы тазартылымы бұл сұраныстардың барлығына да тиым салады, оларға бұдан әрі рұқсат беру үшін EI командасын беру керек. RSTn сұраныстарына жеке тиым салу мүмкіндігі де бар, ол арнайы SIM (Set Interrupt Mask) командасымен аккумулятордың А0...А2 биттерінің алдын ала енгізілген мәндеріне сәйкесті қойылады. RSTn кірістерінің мәртебелері RST 7,5; RST 6,5; RST 5,5 тәртібінде бекітілген. RSTn үзілістерінің қызметінің қосалқы бағдарламаларының бастапқы адрестері n мәнімен анықталады, сәйкесті бағдарламаның жұмысы бағдарлама санауышына 8n мәнін (002СН, 0034Н немесе ООЗСН) енгізуден басталады.

RST 7,5 кірісі – динамикалық кіріс, ол сигналдың тура ауытқуына әрекет қылады, яғни сұраныс сигналы динамикалы кірісті триггерге енгізіледі де, оның алып тасталғанында, бұл үзіліс сұранысының қызметі орындалғанша немесе SIM немесе RESET командаларына түскенше сонда сақталады. RST 6,5 және RST 5,5 кірістері – статикалық кірістер, олар сигнал деңгейіне әрекет қылады, демек, олар сұраныс сигналы жойылсымен, алып тасталады.

INTR (Interrupt) кірісіне түсетін сұраныстың үзіліс векторы МП-ға сырттан жіберілу керек. Бұл кіріске, көптеген жағдайда, үзілістер контроллері қосылады, ол бірнеше сыртқы құрылғылардың сұраныстарын қабылдап, олардың мәртебелік, жасырым мәселелерін шешіп, МП-ға жіберілетін жалғыз INTR сигналы мен сұранысқа сәйкесті үзіліс векторын қалыптастырады. Бұл жағдайда да RSTn командасы орындалады, бірақ n мәні үзіліс көзіне тәуелді болады. Үзілістерге рұқсаттың қойылған жағдайында INTR сұранысының түсуіне жауап ретінде, микропроцессор  сигналымен үзіліс берілгендігін хабарлайды. Бұл сигнал буферлік күшейткіштердің шығыстық рұқсат кірістеріне түседі.

Үзілістің өңделуі кезінде, EI командасы орындалғанша, TRAP үзілісінен басқа үзілістерге тиым салынады. Жасырылмайтын TRAP үзілісі өзге үзілістерді жібергізбейді, бірақ бұрынғы түскен сұраныстың рұқсаттық жағдайын сақтайды.

2.5 Тізбекті енгізу/шығару жүйесі

Intel 8085 микропроцессорының тізбекті деректерді жіберуге арналған екі кірісі бар: SOD және SID (Serial Output Data және Serial Input Data).

SOD шықпасы SIM командасымен басқарылады, ал SID шықпасындағы сигнал RIM командасымен оқылады. Бұл командалар бұрын RSTn үзілістерінің жасырылымын қою және тазарту командалары ретінде таныстырылғанды, олар тізбекті енгізу/шығаруды басқаруға да пайдаланылады.

SIM командасының орындалуынан бұрын аккумуляторда, биттері 2.2-кестедегі мағынада түсінілетін, сөз қалыптастырылады:

2.2 К е с т е

7

6

5

4

3

2

1

0

SOD

SOE

x

R7,5

MSE

M7,5

M6,5

M5,5

 

Бұндағы SOD – деректердің тізбекті шығысы, SOE (Serial Input Enable) – бірлік мәнінде тізбекті SOD деректерін микропроцессордың сәйкесті шығысына жіберетін сигнал, 5-бит пайдаланылмайды, R 7,5 сәйкесті RST 7,5 кірісін тазартады (осы кірістегі сигналдың динамикалы басқарылымды триггерге қабылданатындығын еске түсіреміз), MSE (Mask Set Enable) – 2...0 биттерінің әрекетін жандандырушы сигнал, М 7,5...М 5,5 биттерінің бірлік мәні оларға сәйкесті RST 7,5...RST 5,5 сұраныстарын жасырады, яғни оларға тиым салады.

Мысалы, SOD = 1, RST 6,5 кірісіне рұқсат берілуі, RST 7,5 триггерінің тазартылуы және RST 7,5 мен RST 5,5 кірістерінің жасырылуы екі командамен жүзеге асырылады:

 

MVI А, b2            ; аккумулятор биттерін қою

SIM                      ; жасырым биттерін және SOD битін өзгерту

MVI А, b2 командасы аккумуляторға b2 байтын жібереді, яғни аккумуляторға тіке сілтеу арқылы дерек жіберу операциясын (A) ← (b2) орындайды. Бұл жағдайдағы b2 байтының түрі: 11x11101.

Тізбекті деректерді SID шықпасы арқылы енгізу үшін RIM командасы пайдаланылады. RIM командасының орындалғанынан кейін аккумуляторда, биттерінің мағынасы 2.3-кестеде келтірілген, сөз қалыптасады:

2.3 К е с т е

7

6

5

4

3

2

1

0

SID

I7,5

I6,5

I5,5

IE

M7,5

M6,5

M5,5

 

Бұндағы SID – тізбекті енгізілетін деректер; I 7,5; I 6,5; I 5,5 – RST7.5; RST6.5 және RST5.5 шықпаларындағы логикалық деңгейлер, IE – үзіліске рұқсат сигналы, М 7,5...М 5,5 – маскалардың логикалық деңгейлері.

I 7,5... I 5,5 биттері сәйкесті логикалық деңгейлерді RIM командасының орындалуы кезінде қалыптастырады. IE биті EI және DI командаларының қайсысының соңғы орындалғандығын көрсетеді, оған бұл кезде үзіліс режимінің болуы да (оның IE триггерін тазартып, басқа үзілістерге тиым салатындығына байланысты) әсер етеді. М 7.5...М 5,5 биттері үзіліс маскаларының кезекті жағдайларын суреттейді.

2.6 Командалар жүйесі

Intel 8085 микропроцессорының командалары 2.4-кестеде келтірілген. Кестенің бірінші бағанасында командалардың мнемокодтары (жазылым түрі) берілген. Онда регистрлер r арқылы, регистр жұптары rp арқылы, жанама сілтеумен  байланысатын жады ұяшығы М арқылы, команданың үшінші және екінші байттары b3b2 арқылы, сыртқы құрылғының адресі port арқылы берілген.

2.4 К е с т е

Мнемокод

Код

Тулар

Байт саны

Такт саны

Цикл саны

Түсініктеме

1

2

3

4

5

6

7

Жіберім командалары

MOV r1, r2

01DDDSSS

1

4

1

r1 ← (r2)

MOV M, r

01110SSS

1

7

2

[(HL)] ← (r)

MOV r, M

01DDD110

1

7

2

(r) ← [(HL)]

MVI r, b2

00 DDD110

2

7

2

r1 ← b2

MVI M, b2

36

2

10

3

[(HL)] ← b2

LXI rpb3b2

00PP0001

3

10

3

rp ← b3b2

LDA b3b2

3A

3

13

4

A ← b3b2

STA b3b2

32

3

13

4

b3b2 ← (A)

LHLD b3b2

2A

3

16

5

HL ← b3b2

SHLD b3b2

22

3

16

5

b3b2 ← (HL)

LDAX rp

00PP0010

1

7

2

A ← [(rp)]

STAX rp

00PP1010

1

7

2

[(rp)] ← (A)

XCHG

EB

1

4

1

(HL) ↔ (rp)

Арифметикалық және логикалық операциялардың командалары

ADD r

10000SSS

+

1

4

1

A ← (A) + (r)

ADD M

86

+

1

7

2

A ← (A) + [(HL)]

ADI b2

C6

+

2

7

2

A ← (A) + b2

ADC r

10001SSS

+

1

4

1

A ← (A) + (r) + (TC)

ADC M

8E

+

1

7

2

A ← (A) + [(HL)] + (TC)

ACI b2

CE

+

2

7

2

A ← (A) + b2 + (TC)

SUB r

10010SSS

+

1

4

1

A ← (A) – (r)

SUB M

96

+

1

7

2

A ← (A) – [(HL)]

SUI b2

D6

+

1

7

2

A ← (A) – b2

SBB r

10011SSS

+

1

4

1

A ← (A) – (r) – (TC)

SBB M

9E

+

1

7

2

A ← (A) – [(HL)] – (TC)

SBI b2

DE

+

2

7

2

A ← (A) – b2 – (TC)

INR r

00DDD100

(+)

1

4

1

r ← (r) + 1

INR M

34

(+)

1

10

3

[(HL)] ← [(HL)] + 1

DCR r

00DDD101

(+)

1

4

1

r ← (r) – 1

DCR M

35

(+)

1

10

3

[(HL)] ← [(HL)] – 1

INX rp

00PP0011

1

6

1

rp ← (rp) + 1

2.4 К е с т е (жалғасы)

1

2

3

4

5

6

7

DCX rp

00PP1011

1

6

1

rp ← (rp) – 1

DAD rp

00PP1001

1

10

3

[(HL)] ← [(HL)] + (rp)

DAA

27

+

1

4

1

A ← (A)2-10

ANA r

10100SSS

+

1

4

1

A ← (A) ۸ (r)

ANA M

A6

+

1

4

1

A ← (A) ۸ [(HL)]

ANI b2

E6

+

2

7

2

A ← (A) ۸ b2

XRA r

10101SSS

+

1

4

1

A ← (A)  (r)

XRA M

AE

+

1

7

2

A ← (A)  [(HL)]

XRI b2

EE

+

2

7

2

A ← (A)  b2

ORA r

10110SSS

+

1

7

2

A ← (A) ۷ (r)

ORA M

B6

+

1

7

2

A ← (A) ۷ [(HL)]

ORI b2

F6

+

2

7

2

A ← (A) ۷ b2

CMP r

10111SSS

+

1

4

1

 (A) – (r)

CMP M

BE

+

1

4

1

 (A) – [(HL)]

CPI b2

FE

+

2

7

2

 (A) – b2

CMA

2F

1

4

1

 A ←  

STC

37

C

1

4

1

 TC ← 1

CMC

3F

C

1

4

1

 TC

RLC

07

C

1

4

1

 A7-1 ← (A6-0), A0 ← (TC), TC←A7

RRC

0F

C

1

4

1

 A6-0 ← (A7-1), A7 ← (TC), TC←A0

RAL

17

C

1

4

1

 A7-1 ← (A6-0), A0 ← (A7), TC←A7

RAR

1F

C

1

4

1

 A6-0 ← (A7-1), A7 ← (A0), TC←A0

Басқару командалары

JMP b3b2

C3

3

10

3

PC ← b3b2

Jcond b3b2

11CCCC01

3

10

3

Cond = 1: PC ← b3b2

CALL b3b2

CD

3

18

5

SP ← (PC), PC ← b3b2

Ccond b3b2

11CCC100

3

2/5

9/18

Cond = 1:

SP ← (PC), PC ← b3b2

RET

C9

3

10

3

PC ← [(SP)]

Rcond

11CCC100

3

17/11

5/3

Cond = 1: PC ← [(SP)]

RST n

111nnn111

1

11

3

PC ← 8n

SPHL

E9

1

6

1

SP ← (HL)

Арнайы командалар

PUSH rp

11PP0101

1

11

3

SP ← (SP) – 2;

 [(SP)];[(SP) + 1]← (rp)

PUSH PSW

F5

1

11

3

SP ← (SP) – 2;

[(SP)],[(SP) + 1]←(A),(F)

2.4 К е с т е (жалғасы)

1

2

3

4

5

6

7

POP rp

11PP0001

1

10

3

rp ← [(SP)],[(SP) + 1],

SP ← (SP) + 2

POP PSW

F1

1

10

3

F,A ← [(SP)],[(SP) + 1];

SP ← (SP) + 2

XTHL

E3

1

18

5

(HL) ↔ [(SP)],[(SP) + 1]

PCHL

F9

1

5

1

PC ← (HL)

IN port

DB

2

10

3

A ← (port)

OUT port

D3

2

10

3

port ← (A)

EI

FB

1

4

1

Үзіліске рұқсат

ВI

F3

1

4

1

Үзіліске тиым салу

HLT

76

1

7

2

Тоқтатылым

NOP

00

1

4

1

Операция жоқ

RIM

20

1

4

1

Үзіліс жасырымын оқу

SIM

30

1

4

1

Үзіліс жасырымын жазу

 

Екінші бағанадағы команданың бірінші байтының (b1) кодтары, операндтардың адресінің көрсетілуі қажет жағдайда, сегізразрядты екілік сан түрінде, өзге жағдайларда оналтылық сан түрінде берілген. Регистрлердің жалпылама адрестерінің разрядтары дерек көзі үшін S (Data Source) символдарымен, деректің жеткізілетін жері D (Data Destination) символдарымен, регистр жұптары P (Pair) символдарымен бейнеленген. Бұл символдардың орнына командағы қатысты регистрлер мен регистр жұптарының 2.1-кестеде келтірілген адресін қою арқылы нақтылы команданың коды алынады. Шартты ауыстыру командаларының кодындағы шарттардың коды C (Condition) символдарымен белгіленген, олардың түрлері мен белгілемелері 2.5-кестеде келтірілген.

2.5 К е с т е

ССС

Мнемокод (cond)

Шарттар

000

NZ

Нолге тең болмау

001

Z

Нолге тең болу

010

NC

Тасымалдың тумауы

011

C

Тасымалдың тууы

100

PO

Тақтық

101

PE

Жұптық

110

P

Плюс

111

M

Минус

 

Операцияның орындалу белгілері ту регистрінде (2.6-кесте) қалыптасады.

2.6 К е с т е

S

Z

0

AC

0

P

1

C

 

RST командасының кодындағы nnn әріптерімен белгіленген үш разрядтың мәнін үзіліс жүйесі қояды немесе оны бағдарлаушы көрсетеді.

Салыстыру операцияларында операндтарға алу операциясы жүргізіліп, оның нәтижесіне байланысты Z және S белгілері қойылады (бірақ, нәтиже ешқайда сақталмайды).

Үшінші бағанадағы “–” символы команданың орындалуында ешқандай ту көтерілмейтіндігін, “+” символы барлық белгінің қойылатындығын, “(+)” символы тасымал белгісінен басқа белгілердің қойылатындығын, “С” символы тасымал белгісінің ғана қойылатындығын білдіреді.

2.7 Операндтарға сілтеу тәсілдері

Intel 8085 микропроцессорында сілтеу адрестерін қалыптастыру төрт түрлі тәсілмен жүзеге асырылады, олар – тура сілтеу, регистрлік сілтеу, жанама сілтеу және тіке сілтеу тәсілдері.

Тура сілтеу тәсілінде адрес коды орындалушы команданың құрамында болады. Бұл тәсіл – ыңғайлы тәсіл, бірақ үлкен көлемді жадының адрес разрядтарының саны да үлкен болатындықтан, ол команданы ұзартады. Мысалы, 216 ұяшықтан тұратын жады оналтыразрядты адреспен сілтенеді. Сондықтан, бұндай командалар үшбайтты болады. Сыртқы құрылғылар сегізразрядты адреспен сілтенеді де, бұндай командалар екібайтты болады.

Регистрлік сілтеу тәсілінде операнд микропроцессордың ішкі регистрлерінің біреуінде болады. Intel 8085 микропроцессорының ішкі регистрлерінің саны сегізден аспайтындықтан оларға сілтеуге үшразрядты адрес жеткілікті болады, сондықтан бұндай командалар бірбайтты болады.

Жанама сілтеу тәсілінде командада орындалатын операцияға қатысты операндтың адресі тұрған регистр көрсетіледі. Бұндай командалар да, тура сілтемді командалар сияқты, ықшамды келеді, бірақ олардың орындалуы үшін бұл регистрге (жанама сілтеу регистріне) қажетті адрестің алдын ала енгізілуі керек. Жанама сілтеу регистрі ретінде Intel 8085 микропроцессорында H және L регистрлері (HL жұбы) пайдаланылады. Жанама сілтеу тәсілі тізбе түрінде берілген деректерді өңдеуге аса ыңғайлы келеді, бұл кезде адрес бір рет қойылады да, кезекті адрес оның алдыңғы мәнін бірге өзгерту арқылы алынады.

Тіке сілтеу тәсілінде операцияға қатысты операнд тікелей команда құрамында беріледі. Бұндай командалар екібайтты (сыртқы құрылғымен байланысқа) немесе үшбайтты (жадымен байланысқа) болады.


3 Микроконтроллерлер

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

Микропроцессорлық жүйелердің аса дамытылған түрлерінің (мысалы, компьютерлердің) әмбебаптылығын қамтамасыз ету мақсатында, олардың құрамына аса үлкен көлемді және тезәрекетті жады модулдері мен оның түр-түрлі сыртқы құрылғылармен байланысын  қамтамасыз ету қызметін атқаратын, интерфейстік құрылғылар кіргізіледі.

Микроконтроллерлер алдын ала белгілі, күрделілігі жағынан қарапайым алгоритмдерді жүзеге асырады, демек, олардың жұмыс бағдарламалары мен өңделуші деректерді орналастыруға кішігірім көлемді жады модулдері жеткілікті. Олардың байланысатын сыртқы құрылғылары-ның түрі де онша көп болмайды. Сондықтан, микропроцессорлық жүйелердің жеке буындарының құзметін атқаратын құрылымдардың микроконтроллерлердің құрамына жинама технологиялық тәсілдермен енгізіліп, олардың жеке кристалл түрінде жасалуына мүмкіндік туады.

3.1 Микроконтроллерлердің түрлері

Қазіргі заманда, құрамына параллель және тізбекті ешгізу/шығару порттары, таймерлер, аналогты-цифрлы и цифрлы-аналогты түрлендіргіштер, енді-импульстік модуляторлар және т.б. құрылғылардың интерфейстік және перифериялық схемалары енгізілген және сиымдылығы ондаған Кбайт бағдарлама жадысы мен кішігірім көлемді дерек жадысы орналастырылған, 8-, 16- және 32-разрядты микроконтроллерлер шығарылады.

16- және 32-разрядты микроконтроллерлердің шығарылуына қарамас-тан, 8-разрядты микроконтроллерлер өз маңыздылығын әзірге жойған жоқ. Бұны микроконтроллерлердің негізгі қолданылым аймағындағы жұмыстарында, яғни технологиялық процестерді, тұрмыс техникаларының жұмысын басқару алгоритмдерінде, процессордың разряд санына тәуелсіз, логикалық операциялардың басым келуімен түсінуге болады.

8-разрядты микроконтроллердің кең таралуына оларды шығаратын Motorola, Microchip, Intel, Zilog, Atmel және т.б. белгілі фирмалардың бұйымдарының түрлерінің кеңейтіле түсуі де әсер етеді.

Олардың ішіндегі аса кең таралғаны – Intel фирмасының шығаратын 8-разрядты MCS-51/151/251 мен 16-разрядты MCS-96/196/296 микроконтроллерлерінің жинамы және олардың қызметтік тәріздемесі саналатын, Atmel фирмасының флэш-жадылы АТ89 микроконтроллерлерінің жинамы. Қазіргі заманда микроконтроллерлердің қолданылым аймағының жартысына жуығын тап солар алып тұр.

3.2 Микроконтроллердің құрылым принциптері

Қазіргі заманғы 8-разрядты микроконтроллерлердің құрылым ерекшеліктері бар, олардың негізгілері:

-       модулдік ұйымдастырылым – микроконтроллерлер жеке процессорлық өзек (орталық процессор) негізінде, бағдарлама жадысының көлемі мен түрі, дерек жадысының көлемі, перифериялық модулдерінің жинамы жағынан және сәйкестіру жиілігіне қарай айырмашылықтарымен ажыратылатын алуан түрлі   микроконтроллер жинамдары түрінде құрылады;

-       жабық архитектуралы құралым – микроконтроллер шықпаларының ішінде адрес және дерек жолдары болмайды, яғни оның дерек өңдеуі ішкі буындарымен толықтай бітірілетіндей етіп құрылады да, оған сыртқы құрылғыларды қосылу мүмкіншілігі ескерілмейді;

-       қалыпты перифериялық қызмет модулдерін (таймерлер, оқиға процессорлары, тізбекті интерфейс контроллерлері, аналогты-цифрлы түрлендіргіштер және т.б.) пайдалану – әртүрлі шығарушылардың жұмыс алгоритмдерінде аздаған ерекшеліктері болатын микроконтроллерлерінің ауыстырылу, ұштастырылу мүмкіншіліктерін ұлғайтады;

-       микроконтроллердің жұмыс бастамасында арнайы қызмет регистрлері арқылы қойылатын, перифериялық модулдерінің жұмыс режимдерін кеңейту – олармен жұмыс ыңғайлылығын асыра түседі.

Модулдік құрылым принципінде жеке жинамдағы барлық микроконтроллер өзгертілмейтін бір процессорлық өзек негізінде құрылады, жинам микроконтроллерлерінің жеке түрлерінің ерекшеліктері оның өзгертілімді қызмет блогында ғана болады. Модульді микроконтроллердің құрылымы 3.1-суретте келтірілген.

3.1 Сурет

Микроконтроллердің процессорлық өзегінің құрамындағы модулдер:

-       орталық процессор;

-       микроконтроллердің ішкі магистралі (МКІМ), оның құрамына адрес, дерек және басқару желілері кіреді;

-       микроконтроллердің сәйкестіру схемасы;

-       микроконтроллердің басқару схемасы.

Микроконтроллердің өзгермелі блогының құрамына кіретін модулдер:

-       бағдарлама жадысы (БЖ);

-       деректер жадысы (ДЖ);

-       енгізу/шығару порттары;

-       таймер;

-       тактілік генератор (ТГ).

Үзіліс өңдеу модулдері қарапайым микроконтроллерлерде оның процессорлық өзегінің құрамына кіреді, ал күрделірек микроконтроллер-лерде ол мүмкіншілігі ұлғайтылған жеке модуль түрінде қосылады. Микроконтроллердің өзгермелі блогының құрамына кернеу компараторы, аналогты-цифрлы түрлендіргіштер және т.б. косымша модулдер кіруі мүмкін. Әрбір модуль микроконтроллердің ішкі магистралінің хаттамасына сәйкестіріліп құрылады.

3.2.1. Микроконтроллердің процессорлық өзегі

3.2.1.1 Микроконтроллердің процессорлық өзегінің құрылымы

Микроконтроллердің процессорлық өзегінің жұмыс мүмкіндігін суреттеуші негізгі сипаттамалары:

-       аралық деректерді сақтаушы регистрлер жинамы;

-       процессордың командалар жүйесі;

-       жады кеңістігіндегі операндтарға сілтеу тәсілдері;

-       команда таңдалымы мен оның орындалуының ұйымдастырылуы.

Командалар жүйесі мен операндтарға сілтеу тәсілдеріне байланысты қазіргі заманғы 8-разрядты микроконтроллерлердің процессорлық өзегі екітүрлі принциптің біреуімен құрылады:

-       командалардың толық жүйесін жүзеге асырушы, CISC-архитектуралы процессорлар (Complicated Instruction Set Computer);

-       командалардың қысқартылған жүйесін жүзеге асырушы, RISC-архитектуралы процессорлар (Reduced Instruction Set Computer).

CISC-процессорларда командалардың сілтеу мүмкіншілігі ұлғайтылған үлкен жинамы орындалады да, бұл жүйе құрушының қажетті операция орындауға аса ыңғайлы команданы таңдауына мүмкіндік береді. CISC-архитектуралы 8-разрядты микроконтроллерлердегі командалар бірбайтты, екібайтты және үшбайтты болуы мүмкін. Орындалатын команданың таңдалуы байт бойынша микроконтроллердің бірнеше жұмыс циклінде жүзеге асырылады. Команданың орындалу уақыты 1...12 цикл құрады. CISC-архитектуралы микроконтроллерлерге Intel фирмасының MCS-51 өзекті микроконтроллері, Motorola фирмасының НС05, НС08 және НС11 жинамдары және т.б. жатады.

RISC-архитектуралы процессорлардағы командалар саны өте аз мөлшерге дейін қысқартылған. Оларда күрделірек операциялардың орындалуын оның командаларының қиыстырмасы арқылы жүзеге асыруға тура келеді. RISC-архитектуралы процессорлардың командаларының барлығының да ұзындығы бірдей (мысалы, 12, 14 немесе 16 бит) болады, олардың жадыдан таңдалуы мен орындалуы сәйкестіру сигналының бір тактісінде жүзеге асырылады. RISC-процессордың командалар жүйесі процессордың барлық регистрін тең хақты пайдалана алады. Бұл кейбір операциялардың орындалуына қосымша икемділік береді. RISC-процессорлы микроконтроллерлерге Atmel фирмасының AVR микроконтроллері, Microchip фирмасының PIC16 және PIC17 микроконтроллерлері және т.б. жатады.

Бастапқы көз салымда, RISC-процессорлы микроконтроллерлердің жұмыс өнімділігі (ішкі магистралінің тактілік жиілігі бірдей жағдайда) CISC-архитектуралы микроконтроллерлермен салыстырғанда жоғары болатын сияқты. Бірақ, іс жүзінде бұл мәселе оңай шешіле қоймайды.

Біріншіден, микроконтроллердің өнімділігін әртүрлі командалар жүйесіндегі (RISC және CISC) командалардың орындалу уақытымен бағалау онша дұрыс емес. Әдетте, микропроцессор мен микроконтроллердің өнімділігі бір секундта орындалатын “регистр-регистр” жіберілім операцияларының санымен бағаланады. CISC-процессорлы микроконтроллердегі “регистр-регистр” операциясының орындалу уақыты –  1...3 цикл, бұл жағынан ол RISC-процессорлы микроконтроллерден кем түсетін сияқты. Бірақ, RISC-процессорында команданың қол астына түсетін регистрлер шектелген. Мысалы, PIC16 микроконтроллерінің командалар жүйесінде операция нәтижесінің оған қатысты екі регистрдің біреуіне ғана –  операнд көзі ретіндегі регистрге (f) немесе жұмыс регистріне (W) –  жіберілуі ескерілген. Сонымен, операция бір регистр дерегін екінші регистрге (операнд көзі де емес, жұмыс регистрі де емес) жіберу үшін екі команда пайдалану қажет болады. Бұндай қажеттілік, мысалы, процессордың жалпы қызмет регистрлерінің біреуінің мәнін микроконтроллердің енгізу/шығару порттарының біреуіне жіберілу кезінде туады, ал CISC-процессорының командалар жүйесінде бұндай қызметті тікелей атқаратын командалар бар. Демек, күрделірек командалар жүйесі кейде операцияның тиімді орындалуына мүмкіндік береді.

Екіншіден, микроконтроллердің өнімділігін “регистр-регистр” жіберілімінің жылдамдығы арқылы бағалау нақтылы жүзеге асырылатын басқару алгоритмінің ерекшеліктерін ескермейді. Мысалы, тезәрекетті басқару жүйелерін құру барысында негізгі көңілді әртүрлі таратылым теңдеулерін жүзеге асыру кезінде жүргізілетін көбейту және бөлу операцияларына аудару керек. Ал тұрмыс техникасын қашықтан басқару құрылғысын құру барысында түймежинамды тексеру және тізбекті басқарылым кодының жіберілімін тудыру кезінде логикалық операциялардың орындалу уақытын бағалау керек болады. Сондықтан, тезәрекеттіліктің қажетті жағдайында, басқару алгоритмінде пайдаланылған нақтылы операциялардың өнімділігін бағалау керек.

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

Командалардың таңдалу және орындалу барысының ұйымдастырылу тұрғысынан қазіргі заманғы 8-разрядты микроконтроллерлерде, бүрын айтылған, фон-Нейман немесе Гарвард архитектураларының біреуі қолданылады.

Бағдарлама мен дерек Фон-Нейман архитектурасында оларға ортақ жадыда сақталады  (3.2-сурет), ал Гарвард архитектурасында олар өздеріне арналған жеке жады модулдерінде сақталады  (3.3-сурет).

3.2 Сурет

3.3 Сурет

3.2.1.2 Микроконтроллердің сәйкестіру схемасы

Микроконтроллердің сәйкестіру схемасы орталық процессордың команда циклдарын орындауға және ішкі магистраль арқылы дерек алмасуға қажетті сәйкестіру сигналдарының қалыптастырылуын қамтамасыз етеді. Орталық процессордың құрылымына байланысты команда циклі бірден 4...6 сәйкестіру тактісіне дейінгі уақыт алады. Сәйкестіру схемасы микроконтроллер таймерлерінің жұмысына қажетті уақыт белгілерін де қалыптастырады. Сәйкестіру схемасының құрамына, сәйкестіру сигналдарының қажетті тізбелерін қалыптастырушы, жиілік бөлгіштері кіреді.

3.2.2. Микроконтроллердің жады жүйесі

Микроконтроллерде үш түрлі жады пайдаланылады. Бағдарлама жадысы – бағдарлама коды (командалар) мен тұрақтыларды (константаларды) сақтауға арналған тұрақты жады. Оның құрамы бағдарлама жұмысының барысында өзгермейді. Дерек жадысы – бағдарламаның орындалу барысында деректерді сақтауға арналған өзгермелі қызмет жадысы. Микроконтроллер регистрлері – микроконтроллердің құрамындағы регистрлер мен перифериялық құрылғыларды басқаруға арналған регистрлер (арнайы қызмет регистрлері).

3.2.2.1 Бағдарлама жадысы

Бағдарлама жадысының негізгі қасиеті – оның энергияға тәуелсіздігі, яғни бағдарламаның қорек көзінің ажыратылған жағдайында да сақталуы. Пайдаланушы тұрғысынан қарастырғанда, бағдарлама жадысының бірнеше түрлері ажыратылады, олар:

-       ROM(M) түріндегі жады жинам технологиясымен өндірісте шығарылу кезінде арнайы жасырмалар арқылы бағдарланады да, одан кейін ондағы информация ешқашан өзгертілмейді. Бұндай жады ондағы информацияның сенімді сақталуын қамтамасыз етеді, бірақ пайдаланушының, қажетті жағдайда, оларды өзгертуге мүмкіншілігі болмайды. Сондықтан, олар аса кең пайдаланылатын микроконтроллерлерде ғана қолданылады;

-       PROM (Programmable ROM) түріндегі жадыны пайдаланушының өзі бағдарлайды (яғни, оған қажетті информацияны енгізеді), одан кейін бұл құрылым ROM(M) сияқты тұрақты жады ретінде пайдаланылады;

-       EPROM (Electrically Programmable ROM) түріндегі жадыдағы информацияны ультракүлгін сәулесімен өшіріп, одан кейін оларды қайтадан электрлік тәсілмен бағдарлауға болады. Информацияның өшірілуін қамтамасыз ететін ультракүлгін сәуленің өткізілуі үшін, бұндай жады енгізілген микроконтроллерлерде кварцтан жасалған арнайы терезе орналастырылады, ал бұл – қымбатқа түсетін нәрсе. Сондықтан, бұндай жадылы микроконтроллерлер қазіргі заманда сирек шығарылады;

-       OTPROM (One-Time Programmable ROM) – бір рет бағдарламалы, EPROM түріндегі жадының терезесіз шығарылған түрі. Бұндай жады соңғы кезде көбіне ROM(M) түріндегі жадының орнына пайдаланылады.

-       EEPROM (Electrically Erasable Programmable ROM) түріндегі жадыны бірнеше рет толықтай электрлік тәсілмен қайтадан бағдарлауға болады. Бұндай жадының қолданылуы микроконтроллерлерді орналастырылған орнынан алмай, бағдарлауға мүмкіндік береді. Бұл тәсіл микроконтроллер бағдарламасын байт (ұяшықтары) бойынша өшіріп/жазып, реттеуге және жетілдіруге аса ыңғайлы келеді. Айтылған артықшылықтарына қарамай, бұндай жады микроконтроллерлердің бағдарламасын сақтауға сирек пайдаланылады. Бұның себептері: біріншіден, EEPROM жадының көлемі шектелген. Екіншіден, EEPROM түрлі жадымен қатар, қазіргі заманда көптеген параметрлері жоғарырақ, Flash-ROM түрлі жады шығарыла басталды;

Flash-ROM – қызметі жағынан EEPROM жадысына ұқсас келеді, негізгі айырмашылығы – информацияның өшірілу тәсілінде. EEPROM жадысында әрбір ұяшықтағы информацияны жеке өшіруге болады, ал Flash-жадыда информация тұтас блоктармен ғана өшіріледі, яғни Flash-жадының жеке ұяшығындағы информацияны өзгерту үшін, ол тұрған блокты түгелдей қайта бағдарлау керек болады. Flash-ROM жадыларының ажырату схемаларының жетілдірілуі нәтижесінде, олар қолданылымы жағынан OTPROM жадыларымен, тіпті ROM(M) жадыларымен де таласатындай жағдайға жетті.

3.2.2.2 Дерек жадысы

Микроконтроллердің дерек жадысы, әдетте, статикалық жады негізінде құрылады, яғни ондағы информация қорек көзінің ажыратылған жағдайында жойылып кетеді. Көптеген микроконтроллердің “қорек кернеуінің төменгі шегі” (UDDMIN) және “информацияның сақталу кернеуі” (USTANDBY) деп аталатын параметрлері болады. Қорек көзінің кернеуінің UDDMIN деңгейінен төмендеп, бірақ USTANDBY деңгейінен жоғары кезінде микроконтроллер бағдарламасының  жұмысы тоқтатылады, бірақ дерек жадысындағы информация сақталады. Кернеудің қайта қалпына келтірілген жағдайында микроконтроллерді тазартып, бағдарламаның орындалуын жалғастыруға болады. Сақталу кернеуінің мәні, әдетте, 1 В шамасында, демек, қажетті жағдайда микроконтроллерді қосалқы қорек көзінен қоректенуге ауыстырып, бұл режимде деректерді сақтауға мүмкіндік болады.

Микроконтроллердің дерек жадысы онша үлкен болмайды, оның көлемі, әдетте,  ондаған және жүздеген байт құрады. Оны микроконтроллердің бағдарламасын құру кезінде ескеру керек. Мысалы, микроконтроллерді бағдарлау кезінде тұрақты шамаларды, мүмкіндігінше, айнымалы түрінде сақтамай, бағдарлама жадысына енгізген дұрыс болады. Микроконтроллерлердің қолданым бағдарламаларында дерек массивтерін пайдаланбауға тырысу керек.

3.2.2.3 Микроконтроллер регистрлері

Микроконтроллер құрамында, оның жұмыс мүмкіншіліктерінің жүзеге асырылуын басқаруға пайдалынылатын регистрлер жинамы болады. Оларға, әдетте, процессордың ішкі регистрлері (аккумулятор, ахуал регистрі, индекстік регистрлер), басқару регистрлері (үзілістерді, таймерді басқару регистрлері), деректердің енгізілу/шығарылуын қамтамасыз етуші регистрлер (порттардың дерек регистрлері, параллель, тізбекті немесе аналогты енгізу/шығаруды басқару регистрлері) жатады. Бұл регистрлерге байланыс әртүрлі тәсілмен жүзеге асырылуы мүмкін.

RISC-процессорлы микроконтроллердің барлық регистрі (көбіне, аккумулятор да) нақтылы берілген адреспен орналастырылады. Бұл процессордың жұмыс икемділігін көтере түседі.

Кейбір микроконтроллерлердің регистрлері мен дерек жадысы бір адрестік кеңістікте орналастырылады. Өзге микроконтроллерде енгізу/шығару құрылғыларының адрестік кеңістігі жалпы жады кеңістігінен бөлінген. Жеке енгізу/шығару кеңістігі Гарвард архитектурасымен құрылған процессорларға енгізу/шығару регистріне байланыс кезінде жадыдан команданы оқуға мүмкіндік береді.

3.2.2.4 Микроконтроллер стегі

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

Фон-Нейман архитектурасында тұтас жады аймағы стекті жүзеге асыруға да пайдаланылады. Бұл кезде, жадының бірнеше түріне қатар байланысу мүмкіндігінің болмауынан, микроконтроллердің жұмыс жылдамдығы кемиді. Мысалы, қосалқы бағдарламаның шақырылуы кезінде келесі команда стекке бағдарлама санауышының мәнінің орналастырылғанынан кейін шығарылады.

Гарвард архитектурасында стек операциялары жадының оған бөлінген арнайы аймағында жүргізіледі, демек, бұнда қосалқы бағдарламаның шақырылуы кезінде бірнеше әрекет қатар жүргізіледі.

Микроконтроллердің екі архитектурасында да дерек сақтауға арналған жады сиымдылығының шектелгендігін есте ұстау керек. Егер процессорда жеке стек болса және оған жазылған деректердің көлемі оның сиымдылығынан асып кетсе, онда стек көрсеткішінің мәні айналымды өзгеріске түсіп, ол стектің бұрын жазылған ұяшығына сілтей бастайды. Демек, аса көп қосалқы бағдарлама шақырылған жағдайда олардан қайту адресі шатысады. Микроконтроллердің ортақ жадысының дерек орналастырылуына және стекке  пайдаланылу жағдайында, стектің асып кетуінен оған жазылатын информация дерек аймағына шығып кетеді немесе ол тұрақты жады аймағына жазылуға тырысады.  

3.2.2.5 Сыртқы жады

Микроконтроллерлердің жабық архитектуралы қалыптамасына қарамай, кейбір жағдайда оларға қосымша сыртқы жады (бағдарлама жадысын да, дерек жадысын да) қосу қажеттігі туады.

Микроконтроллердің сыртқы жады қосуға арналған аппараттық мүмкіндіктері болған жағдайда, ол, әрине, қалыпты тәсілмен жүргізіледі. Ал, бұндай мүмкіндік болмаған жағдайда, сыртқы жады қосуға енгізу/шығару порттары пайдаланылады да, оған байланысу бағдарламалы жолмен жүзеге асырылады.  Бұл тәсіл айтылған мақсатқа күрделі интерфейстерді қолданбай-ақ, қарапайым енгізу/шығару құрылғыларын пайдалануға мүмкіндік береді, бірақ жүйенің сыртқы құрылғыларға байланысы кезінде, оның тезәрекеттілігі кемитінін ескеру керек.

3.2.3. Микроконтроллердің сыртқы құрылғылармен байланысы

Микроконтроллердің перифериялық құрылғылармен байланысы оның құрамындағы енгізу/шығару порттары, таймерлер мен оқиға процессорлары және үзілістер модулі арқылы ұйымдастырылады.

3.2.3.1. Енгізу/шығару порттары

Кез келген микроконтроллердің, көпразрядты (көбіне 8-разрядты) параллель енгізу/шығару порттарына біріктірілген, бірнеше енгізу/шығару жолдары болады. Микроконтроллер жадысында әрбір енгізу/шығару портына жеке дерек регистрінің адресі сәйкес келеді. Порттың енгізу/шығару портының дерек регистріне байланысу дерек жадысына байланыс командасымен жүзеге асырылады. Бұнымен қатар, көптеген микроконтроллердің порттарының жеке разрядтарын тексеруге немесе оларды биттік процессор командаларымен бірге қоюға болады.

Атқарылатын қызметтеріне байланысты параллель порттардың келесі түрлері ажыратылады:

-       тек қана информация енгізуге немесе шығаруға арналған бірбағытты порттар;

-       жіберілім бағыты (енгізу немесе шығару) микроконтроллер жұмысының басталымында қойылатын, екібағытты порттар;

-       әртүрлі қызметті порттар (кезектелімді порттар). Бұл порттардың жеке жолдары микроконтроллердің құрамына енгізілген перифериялық құрылғыларымен (таймерлер, АЦТ, тізбекті интерфейс контроллерлері сияқты) бірге пайдаланылады;

-       кіріс/шығыс буферлерінің схемақұралысы бағдарламалы басқарылатын порттар.

Порттар микроконтроллер мен (жалпы жағдайда асинхронды істейтін) басқарылым объектілерінің қызметін уақыт бойынша келістіруші құрылғылар ретінде қызмет атқарады. Микроконтроллер мен сыртқы құрылғылар арасында параллель енгізу/шығару порттары арқылы информация алмастыру алгоритмдерінің үш түрі ажыратылады:

-       бағдарламалы енгізу/шығару режимі;

-       жауаптамалы енгізу/шығару режимі;

-       толықтай құптамалы енгізу/шығару режимі.

Қазіргі заманғы микроконтроллерлерде, әдетте, дерек және басқару триггерлеріне жеке байланыс қамтамасыз етілген, бұл әрбір жолды бір-біріне тәуелсіз енгізу немесе шығару режимінде пайдалануға мүмкіндік береді. Микроконтроллердің екібағытты енгізу/шығару портының  жұмыс тәртібін оның 3.4-суретте келтірілген жеке бір жолының қалыпты схемасынан түсінуге болады.

3.4 Сурет

Басқару триггері деректің сыртқы шықпаға жіберілуіне рұқсат береді. Дерек енгізілуі кезінде дерек триггеріндегі емес, сыртқы шықпадағы сигнал мәні оқылатынына ерекше көңіл бөлу керек. Сыртқы шықпаға басқа құрылғылардың шығыстары қосылған жағдайда, олар онда өздерінің шығыс сигналдарының деңгейін қояды да, күтілген дерек триггерінің мәнінің орнына тап сол деңгей оқылады.

3.2.3.2. Таймерлер және оқиға процессорлары

Микроконтроллер арқылы жүзеге асырылатын көптеген басқару мәселелері іс жүзіндегі уақытқа байланыстырылуды қажет қылады. Бұндай жағдайда жүйенің басқарылушы объектісінің жағдайы туралы мәлімет алу, қажетті есептемелер жүргізу және объект жағдайының талапқа сай өзгертілуіне жеткілікті уақыт аралығында басқару әрекеттерін тудыру қабілеті болу керек.

Іс жүзіндегі басқару қызметтерінің қалыптастырылуын орталық процессорға ғана жүктеу тиімді болмайды. Сондықтан, қазіргі заманғы көптеген микроконтроллерлерде іс жүзіндегі уақытқа байланысты қызмет таймер (таймерлер) пайдалану арқылы жүзеге асырылады.

Таймер модулдері сәйкесті сыртқы сезгіштерінен тексерілімді оқиғаның туған мезеті туралы  информация қабылдау және уақытқа байланған басқару әрекеттерін қалыптастыру қызметтерін атқарады.

8-разрядты микроконтроллердің таймер модулі басқару схемасымен біріктірілген 8- немесе 16-разрядты санауыш түрінде құрылған. Микро-контроллердің схемақұралысында таймердің сыртқы оқиғаларды санау режимінде пайдаланылу мүмкіндігі ескерілген, сондықтан ол көбіне таймер/санауыш деп аталады. Микроконтроллер құрамындағы қалыпты 16-разрядты таймер/санауыштың құрылымы 3.5-суретте келтірілген.

3.5 Сурет

Микроконтроллер жадысында 16-разрядты санауыш екі регистрмен суреттеледі: TH – санауыштың үлкен байты, ал TL – кіші байты. Оларға оқу үшін де, жазу үшін де байланысуға болады және олардың санау бағыты – тек қана тура, яғни әрбір кіріс импульсі түскен кезде санауыш мәні бірге өсіріледі. Бастапқы қойылымына байланысты, санауыш келесі кіріс сигналдарының біреуін пайдалана алады:

-       басқарылымды жиілік бөлгішінің шығысындағы импульстер тізбесін (fBUS);

-       микроконтроллердің TOCKI кірісіне түсетін сыртқы оқиғалардың сигналдарын.

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

Қарастырылған “дәстүрлі” таймер/санауыш модулі қарапайым микроконтроллерлердің әртүрлі моделдерінде кеңінен қолданылады. Оны уақыт интервалдарын өлшеуге және импульстер тізбесін қалыптастыру үшін пайдалануға болады. “Дәстүрлі” таймер/санауыштың келесі кемістіктері бар:

-       таймердің іске қосылуы мен тоқтатылу командаларының орындалуына уақыт кететініне байланысты, өлшенетін уақыт интервалдарының төменгі мөлшерінің (бірнеше мс) шектелуі;

-       толық санау коэффициентінің периодынан өзгеше келетін, уақыт интервалдарын қалыптастыру күрделілігі. Толық санау коэффициентінің периоды – (Kбөл/fBUS) · 216;

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

Олардың біріншісі MCS-51 (Intel) микроконтроллерлер жинамындағы таймер/санауыштың жетілдірілген модулінде жойылтқан. Санау кірісінің қосымша логикасы тактілік импульстердің санауыш кірісіне, кіріс жолдарының біреуіндегі сигнал деңгейі “1” болған кезде түсуіне мүмкіндік береді. Бұл жағдайда таймердің іске қосылуы мен тоқтатылуы аппараттық тәсілмен жүзеге асырылатындықтан, уақыт интервалдарының өлшену дәлдігі көтеріледі. Жетілдірілген таймерде, оның асып кету мезетінде оған кез келген кодтың қайта енгізілуі де жүзеге асырылады. Бұл толық санау коэффициентінің периодынан өзгеше келетін, уақыт интервалдарын қалыптастыруға мүмкіндік береді.

Бұл жетілдірімдер “дәстүрлі” таймердің басты кемістігін (оның жұмысының бірарналылығын) жоймайды. Микроконтроллерлердің іс жүзіндегі уақыт бойынша істеу жүйесін жетілдіру қазіргі заманда келесі бағыттарда жүргізіліп жатыр:

-       таймер/санауыш модулдерінің санын ұлғайту. Бұл жол MCS-51 құрылымды микроконтроллерлер шығарушы фирмалардың және Mitsubishi мен Hitachi компанияларының микроконтроллерлеріне тән;

-       таймер/санауыш модулінің құрылымын, кіріс ұсталымы (input capture – IC) және шығыс салыстырымы (output compare – OC) түріндегі қосымша аппараттық құралымдар енгізу арқылы өзгерту. Бұл жол, мысалы, Motorola компаниясының микроконтроллерлерінде пайдаланылады.

Кіріс ұсталымы арнасының жұмыс приципін оның 3.6-суретте келтірілген құрылым схемасы арқылы түсінуге болады.

Оқиға детекторының схемасы микроконтроллердің бір кірісіндегі кернеу деңгейін “бақылап” отырады. Көбіне ол үшін енгізу/шығару портының бір жолы алынады. Бұл жолдағы логикалық сигналдың деңгейі 0-ден 1-ге және керісінше өзгеруі жазу стробын тудырып, таймер санауышының кезекті жағдайы 16-разрядты кіріс ұсталымы регистріне жазылады. Суреттелген әрекет микропроцессорлық техникада ұсталым оқиғасы деп аталады. Оқиға ретінде қабылданатын, кірістегі сигналдың келесі түрлерінің біреуінің таңдалу мүмкіншілігі ескерілген:

-       сигналдың тура (алғы) ауытқымасы;

-       сигналдың кері (артқы) ауытқымасы;

-       сигналдың логикалық деңгейінің кез келген өзгерісі.

Ұсталым оқиғасының түрін таңдау таймердің жандандырылым барысында қойылады және оны бағдарламаның орындалу барысында бірнеше рет өзгертуге болады. Әрбір ұсталым оқиғасы ұсталым триггерінің бірге қойылуына әкеледі де, оның шығысында ICF туы (белгісі) көтеріледі. Кіріс ұсталымы триггерінің жағдайын бағдарламалы оқу арқылы (ұсталым оқиғасына байланысты үзіліске рұқсат қойылған жағдайда) үзіліс сұранысы INT IC қалыптастырылады.

3.6 Сурет

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

Шығыс салыстырымы арнасының құрылымы 3.7-суретте көрсетілген. Цифрлық компаратор санауыштың кезекті кодын 16-разрядты шығыстық салыстырым регистрінде жазылған кодпен үздіксіз салыстырып отырады. Кодтардың теңескен мезетінде микроконтроллердің Pxj шығысында логикалық сигналдың берілген деңгейі қойылады. Әдетте, шығыстық салыстырым оқиғасының туу мезетінде Pxj шығысындағы сигналдың келесі өзгерістерінің біреуі ескеріледі:

-       жоғарғы логикалық деңгейдің қойылуы;

-       төменгі логикалық деңгейдің қойылуы;

-       шығыс сигналын терістелуі.

3.7 Сурет

Салыстырым оқиғасының тууы кезінде шығыс салыстырымының триггері бірге қойылып, оған сәйкесті шығыс салыстырымының туы OCF көтеріледі. Кіріс ұсталымы режиміндегі сияқты шығыс салыстырымы триггерінің жағдайын бағдарламалы оқу арқылы (салыстырым оқиғасына байланысты үзіліске рұқсат қойылған жағдайда) үзіліс сұранысы INT OC қалыптастырылады.

Шығыс салыстырымы режимі, негізінде, берілген ұзақтықтағы уақыт интервалдарын қалыптастыруға арналған. Қалыптасқан уақыт интервалының ұзақтығы, шығыс салыстырымы регистріне тізбектеп енгізілетін кодтардың айырымымен ғана анықталады. Салыстырым арнасының регистріне кодтың жаңа мәнін жазуға қажетті уақыт қалыптасатын уақыт интервалының ұзақтығының ең кіші мөлшерін шектейді.

Жетілдірілген таймер модулдері микроконтроллердің әртүрлі құбылмаларында пайдаланылады. Бұл кездегі оның кірістік ұсталым және шығыстық салыстырым арналарының саны әртүрлі болуы мүмкін. Мысалы, Motorola фирмасының HC05 жинамының микроконтроллерлерінде қалыпты шешім ретінде 1IC+1OC немесе 2IC+2OC модулдері алынған, ал микроконтроллер құрамындағы таймер модулі – біреу ғана. Кейбір модулдердің арналарын кіріс ұсталымына немесе шығыс салыстырымына бастама қойылым арқылы еркін қоюға болады. Жетілдірілген таймер модулінің санауышының бағдарламалы тоқтатылым қызметінің болмауы мүмкін. Бұл кезде санауыш жағдайын микроконтроллер жұмысының бір мезетімен сәйкестіруге болмайды да, санауыш еркін санауыш (free counter) ретінде сипатталады.

Жетілдірілген таймердің аппараттық құралдары іс жүзіндегі уақытқа байланысты көптеген басқару мәселелерін шешуге мүмкіндік береді. Бірақ, басқару алгоритмдерінің күрделілігінің өсуіне байланысты жетілдірілген таймердің келесі шектеулері көзге түсе бастайды:

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

-       арнаның нақтылы анықталған құралымы (немесе ұсталым, немесе салыстырым) көбіне шешілуші мәселенің талаптарына сай келмейді;

-       енді-импульсті модуляциялау (ЕИМ) тәсілімен сигнал қалыптастыру бағдарламалы көмек қажет қылады, ал бұл шығыс сигналының ең жоғарғы жиілігін шектейді.

Сондықтан, микроконтроллерлердің іс жүзіндегі уақытқа байланысты жүйе модулдері әрі қарай дамытылуда.

3.2.3.3. Микроконтроллердің үзілістер модулі

Микроконтроллерлерде үзілістер өңделуі микропроцессорлық жүйелердегі  үзілістер өңделуінің жалпы принциптеріне сәйкесті жүргізіледі. Үзіліс модулдері үзіліс сұраныстарын қабылдап, олардың сәйкесті қосалқы бағдарламаларына ауысуды ұйымдастырады. Үзіліс сұраныстары сыртқы құрылғылардан да, микроконтроллердің ішкі модулдерінен де түсуі мүмкін. Сыртқы құрылғылардың сұраныстарын қабылдауға, көбіне, микроконтроллердің параллель енгізу/шығару порттарының (кезектеме қызмет атқаратын) шықпалары пайдаланылады.

Ішкі үзіліс сұраныстары келесі оқиғаларға байланысты тууы мүмкін:

-       таймер/санауыштардың асып түсуі;

-       таймер/санауыштардың кіріс ұсталымының және шығыс салыстырымының арналарынан сигнал түсуі;

-       EEPROM жадысының дайын болуы;

-       микроконтроллердің қосымша модулдерінен үзіліс сигналдарының (мысалы, тізбекті порттардың біреуі арқылы информация жіберілуінің немесе қабылдануының біткендігі туралы сигналдардың және т.б) түсуі.

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

Бірнеше үзіліс сұранысының қатар түскен жағдайындағы мәртебе мәселесінің шешілу тәртібіне байланысты микроконтроллердің үзілістер жүйесінің бірнеше құралым түрі болады, олардың негізгілері:

-       бірдеңгейлі мәртебелі жүйе;

-       бекітілген мәртебелі көпдеңгейлі жүйе;

-       бағдарламалы мәртебелі көпдеңгейлі жүйе.

3.2.3.4. Микроконтроллердің қосымша модулдері

Жоғарыда суреттелген модулдер микроконтроллерлердің түпнегіздік жинамын құрады және олар қазіргі заманғы кез келген микроконтроллердің құрамына кіреді. Көптеген жағдайда микроконтроллер құрамына, ішкі құрамы мен жұмыс мүмкіншіліктері нақтылы шешілетін мәселеге байланысты анықталған, қосымша модулдер енгізілуі  қажет болады. Бұндай қосымша модулдердің жиі пайдаланылатын түрлері:

-       тізбекті енгізу/шығару модулдері;

-       аналогты енгізу/шығару модулдері.

3.2.3.4.1 Тізбекті енгізу/шығару модулдері

Соңғы кезде 8-разрядты микроконтроллерлердің құрамына тізбекті енгізу/шығару контроллерінің модулінің енгізілуі қалыпты құбылысқа айналды. Енгізу/шығару контроллерінің модулі арқылы шешілетін мәселелерді негізгі үш топқа бөлуге болады:

-       қажетті  құралымға орналастырылған микроконтроллердің жоғары деңгейлі басқару жүйесімен (мысалы, дербес компьютермен) байланыс. Бұл үшін көбіне RS-232C және RS-485 интерфейстері пайдаланылады;

-       микроконтроллерге сыртқы құрылғы ретінде саналатын перифериялық микросхемалармен және тізбекті шығысты физикалық шамалардың сезгіштерімен байланыс. Бұл үшін I2C, SPI интерфейстері және ерекше түрдегі алмасу хаттамалары пайдаланылады;

-       мультимикроконтроллерлік жүйелердегі жергілікті желімен байланыс интерфейсі. Микроконтроллер саны беске дейінгі жүйелерде, әдетте, I2C, RS-232C және RS-485 интерфейстерінің негізіндегі, ерекше хаттамалы, желілер пайдаланылады. Күрделірек жүйелерде қазіргі заманда CAN хаттамасы кең пайдаланыла бастады.

Тізбекті байланыс интерфейстерінің  келтірілген түрлерінің информация алмастырылуын ұйымдастыру тұрғысынан қарастырғандағы өзара айырмашылықтары, олардың  дерек жіберу режимінде (синхронды немесе асинхронды), кадр пішімінде (информация байтының жіберіліміндегі бит саны) және сигналдардың уақыттық диаграммаларында (сигнал деңгейлері және ауыстыру кезіндегі ауытқу мезеттері) болады.

Қазіргі заманда 8-разрядты микроконтроллердің құрамына тізбекті алмастыру контроллерінің әртүрлі режимдерін жүзеге асыру үшін, негізінде, UART (Universal Asynchronous Receiver and Transmitter) немесе SCI (Serial Communication Interface) модулдері орналастырылады.

UART модулдері асинхронды жұмыс режимінде – RS-232C, RS-422А, RS-485 хаттамаларын, синхронды режимде – ерекше синхронды алмастыру хаттамаларын және кейбір моделдерінде – SPI хаттамасын жүзеге асыруға мүмкіндік береді. Motorola фирмасының микроконтроллерлеріне RS-232C, RS-422A, RS-485 интерфейстерінде асинхронды жіберілім режимін ғана жүзеге асыра алатын SCI модулі және SPI стандартындағы синхронды интерфейс контроллерінің модулі орналастырылады.

Микроконтроллер негізіндегі жергілікті жүйе интерфейстерінің (I2C және CAN) хаттамаларының жұмыс логикасы күрделірек келеді. Сондықтан, CAN интерфейсінің контроллерлері әрқашан жеке-бөлек модуль түрінде құрылады. Басқарушы да (master), қостаушы да (slave) ретінде істей алатын I2C интерфейсі де арнайы модуль түрінде (мысалы, Philips фирмасының 89С52 микроконтроллеріндегі тізбекті порт модулі) құрылады.

Соңғы кезде құрамына CAN контроллерлерінің модулдері және перифериялық құрылғылардың әмбебап тізбекті интерфейстерінің модулдері USB (Universal Serial Bus) орналастырылған микроконтроллерлер көптеп шығарылып жатыр. Бұл интерфейстердің алмастыру хаттамалары өте күрделі келеді, олармен танысу үшін арнайы әдебиеттерді оқу керек.

3.2.3.4.2 Аналогты енгізу/шығару модулдері

Аналогты сигналдардың қабылдануы мен қалыптастырылуының керек болуы микроконтроллер құрамына аналогты енгізу/шығару модулдерінің орналастырылу қажеттігін тудырады.

Микроконтроллерге енгізілген аналогты енгізу құрылғысының қарапайым түріне кернеу компараторы жатады. Компаратор аналогты кіріс кернеуін шектік кернеуімен (VREF) салыстырып, кіріс кернеуінің шектік кернеуінен жоғары кезінде, шығысында  логикалық “1” деңгейін қояды. Компараторлар оның кіріс кернеуінің нақтылы мәнін (мысалы, термостаттағы) бақылап отыруға пайдалануға аса ыңғайлы келеді. Сыртқы сызықты өзгерісті кернеу генераторымен қиыстырылған компаратор микроконтроллерде интегралдаушы аналогты-цифрлық түрлендіргіштің  (АЦТ) жүзеге асырылуына мүмкіндік береді.

Аналогты сигналдармен жұмыс істеуге микроконтроллерге орналастырылған АЦТ-нің мүмкіншілігі жоғарырақ болады. Олар, көбіне, сыртқы сезгіштерден түскен аналогты сигналдарды екілік кодқа түрлендіруші, көпарналы АЦТ модулі түрінде жүзеге асырылады. Қалыпты АЦТ модулінің құрылым схемасы 3.8-суретте келтірілген.

Көпарналы аналогты коммутатор (К) кірістік аналогты сигнал көздерінің (PTx0...PTx7) біреуін АЦТ кірісіне қосады. Түрлендірілетін сигнал көзінің таңдалуы коммутатордың қажетті арнасының  номерін АЦТ-нің басқару регистрінің сәйкесті разрядына жазу арқылы жүзеге асырылады. 

3.8 Сурет

АЦТ модулінің екі  шықпасы шектік кернеуді (Uшек) беруге пайдаланылады: Uшек кернеуінің жоғарғы шегі – VREFH, оның төменгі шегі –  VREFL. VREFH және VREFL кірістеріндегі потенциалдар айырымы Uшек кернеуін құрады. АЦТ-нің ажырату қабілеті – Uшек/2n, бұндағы n – нәтиже сөзінің екілік разрядтарының саны. Шектік кернеудің ең жоғарғы мәні, әдетте, микроконтроллердің қоректену кернеуімен анықталады. Егер өлшенетін кернеу Uөлш > VREFH болса, онда түрлендіру нәтижесі FF кодымен бейнеленеді, 00 коды Uөлш < VREFL кернеуіне сәйкес келеді. Ең жоғарғы дәлдікке жету үшін Uшек кернеуінің ең жоғарғы мәнін алу керек.

Аналогты-цифрлық түрлендіргіштің өзі, әдетте, тізбекті жуықтау тәсілі бойынша құрылады. 8-разрядты микроконтроллерлердің іс жүзіндегі моделдерінің басым көпшілігінде 8-разрядты АЦТ орналастырылған. Электрлік қозғалтқыштардың жиілік түрлендіргіштерін басқару микроконтроллерлерінің АЦТ модулдерінің ажырату қабілеті 10-разрядты болады. Оның нәтижесінің екі кіші разряды, тізбекті жуықтау регистріне қатысы жоқ, қосымша сиымдылықты бөлгіш арқылы алынады.

Түрлендіру тактісінің ұзақтығын сәйкестіру генераторы қояды: оның бір циклі tADC генератордың екі тактісіне тең. Сыртқы генератор жиілігінің АЦТ модуліне ыңғайсыз жағдайында тактілік сигналдардың оған бағдарламалы жиілік бөлгіші (fBUS) арқылы жіберілуі ескерілген.

Түрлендіру циклінің аяқталу мезеті дайындық триггерін бірге қою арқылы белгіленеді де, (АЦТ модулінен үзіліске рұқсат қойылған жағдайда) үзіліс сұранысы тудырылады. Әдетте, нәтиже регистрінің оқылуы дайындық триггерін тазартады.

АЦТ модулдерінің көпшілігінің бағдарламалы іске қосылу режимі ғана болады: режим регистрінің биттерінің біреуінің бірге қойылуы кезекті өлшеу процесін бастайды. АЦТ модулдерінің әмбебап түрлерінде өздігінен қосылу режимі де болады, бұнда әрбір түрлендіру циклі аяқталғаннан кейін бірден келесі цикл басталады. Әрбір циклдің өлшенім деректері бағдарламалы тәсілмен оқылады.

Микроконтроллер құрамына цифрлы-аналогты түрлендіргіштер сирек енгізіледі. Микроконтроллердің көпшілігінде цифрлы-аналогты түрлен-діргіштердің (ЦАТ) қызметі, негізінде, бағдарламалы таймер модулінің ЕИМ режимінде пайдаланылуы арқылы жүзеге асырылады. Микроконтроллер шықпаларының біреуінде реттелімді ұзақтықты импульстер тізбесі қалыптастырылады. Алынған сигнал операциялық күшейткіш негізіндегі төменгі жиілік фильтрі арқылы жазықтандырылады. Бұндай ЦАТ-тің ажырату мүмкіншілігі ЕИМ режиміндегі толтырым коэффициентінің реттелу үзбелілігімен анықталады.

 

Әдебиеттер тізімі

1.     Токхейм Р. Основы цифровой электроники: Пер. с. англ. – М.: Мир, 1988.

2.     Токхейм Р. Микропроцессоры. Курс и упражнеия: Пер. с. англ. – М.: Мир, 1988.

3.     Уэйкерли Дж. Ф. Проектирование цифровых устройств: Пер. с. англ. – М.: Постмаркет, 2002.

4.     Опадчий Ю. Ф., Глудкин О. П., Гуров А. И. Аналоговая и цифровая электроника / Под ред. О.П. Глудкина. – М.: Радио и связь, 2003.

5.     Хамахер К. И др. Организация ЭВМ. Пер. с. англ. – СПб.: Питер, 2003.

6.     Угрюмов Е. П. Цифровая схемотехника. – СПб.: БХВ-Петербург, 2004.

7.     Бойко В.И. и др. Схемотехника электронных устройств. Цифровые устройства. – СПб.: БХВ-Петербург, 2004.

8.     Бойко В.И. и др. Схемотехника электронных устройств. Микропроцессоры и микроконтроллеры. – СПб.: БХВ-Петербург, 2004.

9.     Сугано Т. Дж., Уидмер Н. С. Цифровые системы. Теория и практика: Пер. с англ. – М.: Издательский дом “Вильямс”, 2004.

10. Бураханова З.М., Шанаев О.Т. Аналогты және цифрлы электрондық құрылғылар / Оқу құралы. – Алматы: АЭИ, 1992.

11. Бураханова З.М., Шанаев О.Т. Электрондық тізбектер / Оқу құралы. – Алматы: АЭИ, 1996.

12. Бураханова З.М. Дербес ЭЕМ арқылы схемақұралыстық моделдеу / Оқу құралы. – Алматы: АЭжБИ, 1999.

13. Шанаев У.Т. Основы цифровой техники / Учебное пособие. – Алматы: АГУ, 1999.

14. Шанаев О.Т. Цифрлық құрылғылар және микропроцессорлар. Зертханалық жұмыстарға арналған әдістемелік  нұсқаулар. – Алматы: АИЭС, 2008.

15. Шанаев О.Т. Цифрлық құрылғылар және микропроцессорлар. Курстық жұмыстарды орындауға арналған әдістемелік  нұсқаулар. – Алматы: АИЭС, 2008.

16. Шанаев О.Т. Микропроцессорлық жүйелердің құрылғылары. Зертханалық жұмыстарды орындауға арналған әдістемелік  нұсқаулар. – Алматы: АИЭС, 2009.

17. Шанаев О.Т. Система моделирования Electronic Workbench / казақ және орыс тілдерінде. – Алматы: АИЭС, 2003.

18. Шанаев О.Т. Цифрлық құрылғылар және микропроцессорлар: Оқу құралы / Алматы: АЭжБИ, 2009.


МАЗМҰНЫ

Кіріспе. 3

1 Микропроцессорлық жүйелер. 5

1.1 Микропроцессорлық жүйелер жөніндегі жалпы түсініктер. 5

1.1.1 Микропроцессорлық жүйенің орталық процессоры.. 6

1.1.2 Микропроцессорлық жүйенің байланыс жүйесі 7

1.1.3 Микропроцессорлық жүйенің жұмыс режимдері 9

1.1.4 Микропроцессорлық жүйенің архитектуралары.. 11

1.1.5 Микропроцессорлық жүйелердің түрлері 12

1.2 Информация ауыстырылымының ұйымдастырылуы.. 13

1.2.1 Информация ауыстырылымының циклдері 13

1.2.2 Микропроцессорлық жүйенің желілері 14

1.2.3 Информация ауыстырылымының ұйымдастырылуы.. 15

1.2.3.1 Бағдарламалы ауыстырым. 15

1.2.3.1.1 Асинхронды Q-bus магистралы арқылы дерек ауыстырылымы.. 16

1.2.3.1.2 Синхронды ISA магистралы арқылы дерек ауыстырылымы.. 17

1.2.3.2 Үзілістер арқылы ауыстырым. 18

1.2.3.2.1 Q-bus магистралындағы үзіліс. 18

1.2.3.2.2 ISA магистралындағы үзіліс. 19

1.2.3.3 ЖТШ режиміндегі ауыстырым. 20

1.2.3.3.1 Q-bus магистралындағы ЖТШ режимі 20

1.2.3.3.2 ISA магистралындағы ЖТШ режимі 21

1.3 Микропроцессорлық жүйенің негізгі буындары.. 22

1.3.1 Процессор. 22

1.3.2 Жады.. 27

1.3.3 Енгізу/шығару құрылғылары.. 30

1.4 Процессор қызметінің ұйымдастырылымы.. 32

1.4.1 Ассемблер тілі 32

1.4.2 Операндтарға сілтеу тәсілдері 33

1.4.3 Жады сегменттері 34

1.4.4 Байттарды және сөздерді сілтеу. 36

1.5 Процессордың ішкі регистрлері 37

1.6 Процессордың командалар жүйесі 39

1.6.1 Дерек тарату командалары.. 40

1.6.2 Арифметикалық командалар. 41

1.6.3 Логикалық командалар. 42

1.6.4 Ауыстыру командалары.. 43

2 Intel 8085 микропроцессоры негізіндегі микропроцессорлық жүйе. 45

2.1 Intel 8085 микропроцессорының құрылымы.. 45

2.2 Микропроцессордың басқару сигналдары.. 48

2.3 Микропроцессордың жұмыс тәртібі 49

2.4 Үзіліс жүйесі 51

2.5 Тізбекті енгізу/шығару жүйесі 52

2.6 Командалар жүйесі 54

2.7 Операндтарға сілтеу тәсілдері 57

3 Микроконтроллерлер. 58

3.1 Микроконтроллерлердің түрлері 58

3.2 Микроконтроллердің құрылым принциптері 59

3.2.1. Микроконтроллердің процессорлық өзегі 60

3.2.1.1 Микроконтроллердің процессорлық өзегінің құрылымы.. 60

3.2.1.2 Микроконтроллердің сәйкестіру схемасы.. 62

3.2.2. Микроконтроллердің жады жүйесі 63

3.2.2.1 Бағдарлама жадысы.. 63

3.2.2.2 Дерек жадысы.. 64

3.2.2.3 Микроконтроллер регистрлері 64

3.2.2.4 Микроконтроллер стегі 65

3.2.2.5 Сыртқы жады.. 65

3.2.3. Микроконтроллердің сыртқы құрылғылармен байланысы.. 66

3.2.3.1. Енгізу/шығару порттары.. 66

3.2.3.2. Таймерлер және оқиға процессорлары.. 67

3.2.3.3. Микроконтроллердің үзілістер модулі 72

3.2.3.4. Микроконтроллердің қосымша модулдері 73

3.2.3.4.1 Тізбекті енгізу/шығару модулдері 73

3.2.3.4.2 Аналогты енгізу/шығару модулдері 74

Әдебиеттер тізімі 77