ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
“Алматы энергетика және байланыс университеті”
коммерциялық емес акционерлік қоғамы

О.Т. Шанаев
ЦИФРЛЫҚ ҚҰРЫЛҒЫЛАРДЫҢ СХЕМОТЕХНИКАСЫ
Оқу құралы

Алматы 2013

ӘОЖ 681.3.06

ББК 32.844Я73

Цифрлық құрылғылардың схемотехникасы;

Оқу құралы / Шанаев О.Т. Алматы: АЭжБУ, 2013. – 92 б.

ISBN 978-601-7327-90-3

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

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

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

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

 

Без. 56, кесте 29, әдеб. көрсеткіші 12 атау.

 

 

ББК 32.844Я73

 

ПІКІР БЕРУШІЛЕР:  ҚазҰТУ, физ-мат. ғыл. д-р., профессор Т. Тусеев,

Абай ат. ҚазҰПУ, тех. ғыл. канд., профессор Ш.И.Хамраев,

АЭжБУ, физ-мат. ғыл. д-р., профессор С.Б. Бимурзаев

 

Алматы энергетика және байланыс университетінің Ғылыми кеңесі басуға ұсынды (10.01.2012 ж. № 3хаттама).

 

ISBN 978-601-7327-90-3

 

© “Алматы энергетика және байланыс университеті” КЕАҚ, 2013 ж.

 

Кіріспе

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Берілген оқу құралы автордың көпжылдық педагогикалық қызметінің негізінде құрастырылды және ол 5В070400 – Есептеу техникасы және бағдарламалық қамтамасыз ету мамандығында оқитын студенттерге арналған.

1 Цифрлық техниканың арифметикалық және логикалық негіздері

1.1 Екілік кодтар

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

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

Ондық санау жүйесінде сан жазуға он символ (0 … 9) пайдаланылады (бұл жүйенің ондық санау жүйесі деп аталуы да осыған байланысты). Бұл символдардың сандағы тұрған орнына байланысты құны (салмағы) белгіленеді: ол санау жүйесі негізінің сәйкесті разряд нөмірінің мәніндегі дәрежесі арқылы анықталады. Сонымен, санның ең кіші разрядындағы (нөлінші разрядтағы) символдың құны бір (100), келесі разрядтың (бірінші разрядтың) құны он (101), одан әрі жүз (102), мың (103) және с.с. өзгере береді. Разряд құны, мәніне сәйкесті, бірлік, ондық, жүздік, мыңдық деп және с.с. аталады, ал сан разрядында тұрған символ сәйкесті разряд құнының сан құрамына қанша рет кіретіндігін көрсетеді. Келесі мысал арқылы айтылғанды түсіндірейік:

.

Сонымен, келтірілген санның құрамында 7 бірлік, 5 жүздік, 3 мыңдық бар, ал ондық жоқ (0).

Екілік санау жүйесінде сан жазуға екі символ (0 және 1) пайдаланылады. Разряд құны екінің (яғни санау жүйесі негізінің) сәйкесті разряд нөмірінің мәніндегі дәрежесі арқылы анықталады. Сонымен, санның ең кіші разрядындағы (нөлінші разрядтағы) символдың құны бір (20), келесі разрядтың (бірінші разрядтың) құны екі (21), одан әрі төрт (22), сегіз (23) және с.с. өзгере береді. Разряд құны бірлік, екілік, төрттік, сегіздік деп және с.с. аталады, ал екілік код разрядында тұрған символ сәйкесті разряд құнының сан құрамына қанша рет кіретіндігін, дәлірек айтқанда, бар-жоқтығын көрсетеді. Айтылғанды келесі мысал суреттейді:

.

Код құрамындағы символдардың 0 және 1 мәнінде ғана болуына байланысты, олар разрядқа сәйкесті құндық мәннің код құрамында бар-жоқтығын көрсетеді. Мысалы, келтірілген мысалдағы кодтың құрамында бірлік, екілік және сегіздік бар (1), ал төрттік жоқ (0).

1.1.1 Ондық сандардың екілік кодтары.

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

7510 = 10010112.

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

Айтылған тәсілдің кемістіктерінен құтылу мақсатында автор ондық санның екілік кодын анықтауға іс жүзінде пайдаланып жүрген өз тәсілдерін ұсынады және оның біріншісін суреттеуге алдыңғы мысалда алынған 75 саны пайдаланылады:

-      алдымен алынған ондық санның құрамына кіретін екінің ең жоғарғы дәрежесіндегі санның екілік коды жазылады (6410 = 26 = 10000002, бұл санды сөз ыңғайлылығы үшін бірінші қадам коды деп аталық);

-      келесі қадамда түрлендірілетін саннан анықталған бірінші қадам коды алып тасталады да (75 – 64 = 11), қалған санның құрамына кіретін екінің ең жоғарғы дәрежесіндегі сан анықталады (810 = 23 = 10002, бұл санды екінші қадам коды деп аталық);

-      осы тәртіппен жалғастыра отырып, ақырында өзімізге жатталымды кішігірім санның кодына жетеміз (11 – 8 = 3, 310 = 112);

-      алынған бірнеше қадам кодтарын қосу арқылы қажетті код шығарылады:

.

Сонымен, қосу тәсілі деп аталатын бұл тәсілдің әр қадамында анықталатын кодтардың жазылымы да (1 және бірнеше нөл), олардың ақырында өзара қосылуы да оңай орындалатын операциялар болғандықтан бұл тәсіл арқылы ондық санның екілік кодын анықтау қиын болмайтындығы сөзсіз. Бірақ кейбір жағдайда бұл тәсілді одан әрі жеңілдету мүмкіндігі туады. Мысалы, 1000 санының кодын шығару үшін алдыңғы тәсілді пайдалану алты қадамға созылады (512 + 256 + 128 + 64 + 32 + 8). Алынған сан 512-ден гөрі 1024-ке (210) жуық, сондықтан бұл жерде қажетті кодты шығару үшін 1024 санының кодынан 24-тің кодын алу жеңіл болар еді деген ой туады. Бірақ 1024-тің 10000000000 түріндегі екілік кодынан 24 санының 11000 кодын алу тасымал арқылы жүзеге асырылатындықтан бұл оңай операция емес. 1024-тен 1 кемітілген 1023 санының коды 1111111111 болады және одан 23 санының 10111 кодын алу қиын еместігін осы мысалдың келесі суреттемесінен көреміз:

.

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

-      алдымен алынған ондық саннан аздап жоғары болатын екінің нақтылы дәрежесі арқылы сипатталатын саннан 1 кемітілген санның коды алынады (ол қатар жазылған бірнеше 1 арқылы жазылады және ондағы 1-дің саны дәреже мәніне тең болады):

-      бастапқы сан мен алынған кодтың ондық мәнінің айырымы анықталып, келесі қадамда екі тәсілдің ыңғайлысын пайдалану арқылы осы санның коды анықталады;

-      ақырында бірінші қадам кодынан екінші қадам коды алынып, қажетті код шығарылады.

Кейбір жағдайда ондық санға сәйкесті қажетті код айтылған екі тәсілді кезектеп пайдалану арқылы алынады.

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

1101100012 = 28 + 27 + 25 + 24 + 20 = 256 + 128 + 32 + 16 + 1 = 43310.

Цифрлық құрылғылардың жұмысы екілік сандарға негізделген, бірақ пайдаланушыға мұндай сандармен жұмыс істеу (мысалы, Ассемблер тілінде бағдарлама құру кезінде) оңай жұмыс емес, сондықтан бұндай жағдайда пайдаланушының жұмысын жеңілдету үшін екілік кодтар оналтылық санау жүйесінде көрсетіледі. Жүйенің аталымына сәйкесті бұл жүйеде сан жазуға (немесе көрсетуге) он алты символ пайдаланылады, олар – 1 … 9, A, B, C, D, E, F.

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

-      алдымен ондық санның екілік коды анықталады;

-      алынған кодтағы символдар кіші разрядынан бастап төрт-төрттен топтарға біріктіріледі;

-      әрбір топтың кодына сәйкесті 16-лық символын қою арқылы түрлендірілетін ондық санның 16-лық жазылымы шығарылады.

Айтылғанды келесі мысал арқылы түсіну қиын емес:

.

1.1.2 Екілік сандармен арифметикалық операциялар.

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

.

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

.

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

1.2 Логикалық функциялар

1.2.1    Негізгі функциялар.

Цифрлық (логикалық) құрылғылардың кірістері мен шығыстарындағы кернеу мәндері логикалық 0 немесе логикалық 1 деп аталатын екі түрлі деңгейде болады. Логикалық құрылғылардың бұл ерекшелігі оларды жобалау үшін немесе осындай дайын құрылғылардың жұмысын талдау үшін логика алгебрасының (немесе Буль алгебрасының) қағидаларын пайдалануға мүмкіндік береді.

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

ЕМЕС функциясы – аргументіне қарсы мәнді шығаратын, бір аргументті функция (1.1 кестені қараңыз), сондықтан бұл функция инверсия (inversion - терістеу) деп те аталады. Оның аргументі Х деп белгіленген болса, онда бұл функция Y= өрнегімен суреттеледі.

1.1 к е с т е

Х

0

1

1

0

 

 

 

Көп аргументті НЕМЕСЕ функциясы – аргументтерінің барлығы да 0 кезінде ғана 0 шығаратын, ал қалған жағдайда (яғни аргументтерінің кем дегенде біреуінің мәні 1 болғанда) 1 шығаратын, бірнеше аргументті функция (1.2 кестені қараңыз). Бұл функция дизъюнкция (disjunction) немесе логикалық қосу (logical addition) деп те атала береді. Оның логикалық өрнегі Х1Х0 түрінде суреттеледі.

1.2 к е с т е

Х1

Х0

Х1Х0

0

0

0

0

1

1

1

0

1

1

1

1

 

 

 

 

 

Көп аргументті ЖӘНЕ функциясы – аргументтерінің барлығы да 1 кезінде ғана 1 шығаратын, ал қалған жағдайда (яғни аргументтерінің кем дегенде біреуінің мәні 0 болғанда) 0 шығаратын бірнеше аргументті функция (1.3 кестені қараңыз). Бұл функция конъюнкция (conjunction) немесе логикалық көбейту (logical multiplication) деп те атала береді. Сәйкесті логикалық өрнек Х1Х0 (немесе Х1Х0) түрінде суреттеледі.

1.3 к е с т е

Х1

Х0

Х1Х0

0

0

0

0

1

0

1

0

0

1

1

1

 

 

 

 

 

 

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

1.2.2    Әмбебап функциялар.

Қарастырылған үш функциядан басқа әмбебап функциялар деп аталатын екі функция бар, олар: НЕМЕСЕ-ЕМЕС және ЖӘНЕ-ЕМЕС функциялары. НЕМЕСЕ-ЕМЕС функциясы Пирс функциясы деп, ал ЖӘНЕ-ЕМЕС фукциясы Шеффер функциясы деп те атала береді. Олардың сәйкесті логикалық өрнектері  және  түрінде суреттеледі, ал атқарар қызметі 1.4-кестеде келтірілген.

1.4 к е с т е

Х1

Х0

0

0

1

1

0

1

0

1

1

0

0

1

1

1

0

0

 

 

 

 

 

 

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

1.2.3    Теңдік және теңсіздік функциялары.

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

1.5 к е с т е

Х1

Х0

0

0

0

1

0

1

1

0

1

0

1

0

1

1

0

1

 

 

 

 

 

1.3 Логика алгебрасының заңдары мен заңдылықтары

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

1.6 к е с т е

Заңдар

Коммутативтік (commutativity) немесе алмастырылым заңы

Х1˅Х0 = Х0˅Х1

Х1Х0 = Х0Х1

Ассоциативтік (associativity) немесе біріктірілім заңы

Х2˅ (Х1˅Х0) = (Х2˅Х1) ˅Х0

Х2 (Х1Х0) = (Х2Х1)Х0

Дистрибутивтік (distributivity) немесе таратылым заңы

Х2Х1˅Х1Х0 = Х1(Х2˅Х0)

(Х2˅Х1)(Х1˅Х0) = Х1˅(Х2Х0)

Закон де Моргана

Заңдылықтар

X˅0 = X

X˄0 = 0

X˅1 = 1

X˄1 = X

X˅X = X

X˄X = X

X˅ = 1

X˄ = 0

X1˅X1X0 = X1

X1(X1˅X0) = X1

X1˅X0 = X1˅X0

X1(˅X0) = X1X0

 

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

1.4 Күрделі функциялар

1.4.1    Күрделі функциялардың көрсетілім түрлері.

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

Кесте түрінде сүреттелген функцияның (1.7 кестені қараңыз) логикалық өрнегін жазудың екі түрлі жолы (тәсілі) бар:

-      көбейтінділердің қосылымы түрінде, яғни алдымен ЖӘНЕ функцияларын пайдаланып, сосын олардың нәтижесін НЕМЕСЕ функциясымен біріктіру арқылы жазу;

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

1.7 к е с т е

X2

X1

X0

Y

0

0

0

0

0

0

1

1

0

1

0

0

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

0

1

1

1

1

 

Бірінші тәсіл келесі тәртіппен жүзеге асырылады:

-      функцияның (Y) 1 мәнін қабылдайтын аргумент жинақтарының логикалық көбейтінділері жазылады;

-      алдыңғы айтылған логикалық көбейтінділерді жазу кезінде 1 мәніндегі аргументтер тура түрінде алынады да, 0 мәніндегі аргументтер теріс түрінде алынады (бұндай жазылымдар конъюнктивті термдер деп аталады);

-      жазылған конъюнктивті термдер логикалық қосу функциясы арқылы біріктіріледі.

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

.

(1.1)

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

-      функцияның 0 мәнін қабылдайтын аргумент жинақтарының логикалық қосындылары жазылады;

-      логикалық қосындыларды жазу кезінде 0 мәніндегі аргументтер тура түрінде алынады да, 1 мәніндегі аргументтер теріс түрінде алынады (бұндай жазылымдар диъюнктивті термдер деп аталады);

-      жазылған диъюнктивті термдер логикалық көбейту функциясы арқылы біріктіріледі.

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

.

(1.2)

1.4.2    Логикалық функцияларды қарапайым түрге келтіру.

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

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

(1.1) өрнегінің түрлендірілімі:

(1.2) өрнегінің түрлендірілімі:

Логикалық функцияны Карно картасы арқылы минимизациялауды суреттелік. Карно картасы – логикалық өрнектерді минимизациялауға ыңғайландырылған, функцияның кестелі суреттелімінің ерекше түрі. Жоғарыда алынған мысалдағы функцияға құрылған Карно картасы 1.1-суретте келтірілген.

 

 

X1

X2

0

6

1

7

1

5

1

4

0

2

1

3

1

1

0

0

 

X0

1.1 сурет

Карно картасында көрші термдер бірден көзге түседі: келтірілген картаның 1-, 3-, 5-, 7-ұяшықтарындағы бірліктердің өзара бірігіп, нәтижесінде одан X0 ғана қалатындығы және 4-ұяшықтағы бірліктің тек қана 5-ұяшықтағы бірлікпен бірігетіндігі көрініп тұр.

Төрт аргументті функцияға арналған Карно картасының түрі 1.2-суретте келтірілген.

 

 

X2

 

X3

12

13

9

8

14

15

11

10

X1

 

6

7

3

2

4

5

1

0

 

 

X0

 

1.2 сурет

Кесте түрінде берілген функцияны минимизациялауды жүзеге асыруға арналған  тағы бір тәсілді (дәлірек айтқанда, аспапты) суреттелік. Цифрлық құрылғыларды модельдеуге арналған бағдарламаларда (мысалы, Electronics Workbench модельдеу жүйесінде) кесте түрінде берілген функцияның толық және минимизацияланған түріндегі өрнектерін (оларға қоса сәйкесті құрылғының сұлбасын да) шығарып бере алатын арнайы түрлендіргіш (Logic Converter) орналастырылған. 1.3-суретте осы аспаптың сыртқы түрі және кесте түрінде берілген функцияның осы аспап арқылы минимизациялануы келтірілген.

1.3 сурет

2 Цифрлық жүйелердің құрылым негіздері

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

2.1 Логикалық элементтер

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

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

X1

X0

NOT

OR

AND

NOR

NAND

XOR

XNOR

0

0

1

0

0

1

1

0

1

0

1

0

1

0

0

1

1

0

1

0

1

1

0

0

1

1

0

1

1

0

1

1

0

0

0

1

2.1 сурет

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

Логикалық элементтер, олардың жағдайының өзгеріс жылдамдығын сипаттаушы, нақтылы тезәрекеттілігімен сипатталады. 2.2-суретте ЕМЕС (NOT) элементі арқылы өзгермелі сигналдардың өту нәтижесі көрсетілген. Бұнда шығыс сигналының өзгерісінің кіріс сигналының өзгерісінен нақтылы уақытқа кідіретіндігі айқын көрініп тұр. Біздің Electronics Workbench модельдеу жүйесінде жүргізген өлшеміміз бойынша ондағы ЕМЕС элементіндегі сигнал кідірісі 10 ns шамасында болады. Әрине, статикалық (яғни белгілі уақыт аралығында тиянақты мәнін сақтайтын) сигналдармен істейтін құрылғылардың жұмысына бұндай кідірістің байқарлықтай әсері болмайды. Бірақ кейбір жағдайларда (мысалы, тізбектеме құрылғыларда) бұндай кідірістің құрылғының жұмысына байқарлықтай әсер етуі мүмкін, демек оны ескеру керек.

2.2 сурет

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

2.3 сурет

Идеалды жағдайда (яғни ЕМЕС элементтерінде ешқандай кідірістің болмауы кезінде) екі элементтің шығыстарындағы сигнал (OUT1 және OUT2) бірдей болар еді (2.4, a суретті қараңыз). Бұл диаграмма статикалық сигналдарды бақылауға арналған Electronics Workbench модельдеу жүйесіндегі Logic Analyzer аталымды арнайы аспап арқылы алынған.

 

a

b

2.4 сурет

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

Элементтегі сигнал кідірісін ұтымды пайдалануға да болады. Мысалы, түймежинамның жеке түймесі арқылы өте қысқа (ұзақтығы 10 ns шамасындағы) жазу сигналын алу үшін 2.5-суретте көрсетілген екі элемент арқылы құрылған сұлбаны пайдалануға болады.

a

b

2.5 сурет

2.2 Цифрлық құрылғылардың шығыс буындары

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

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

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

Үш жағдайлы элементтердің (3S) шығысын логикалық 0 және 1 жағдайына қоса, оның шығыс буынының шығыс транзисторларының жабық жағдайын қамтамасыз етуші арнайы басқару сигналымен (ОЕ, Output Enable) үшінші (жоғарыкедергілі) жағдайға қоюға болады. Цифрлық құрылғыларда үш жағдайлы буферлік элементтер арқылы сигналдардың әртүрлі бағытта таралуын қамтамасыз етуге пайдаланылады (2.6 суретті қараңыз). Үш жағдайлы элементтердің шығыстарын параллель қосу үшін кез келген мезетте олардың біреуі ғана жандандырылған жағдайда болуын қамтамасыз ету керек. Осындай үш жағдайлы элементтерді қолдану арқылы магистралды-модулді микропроцессорлық және с.с. жүйелер құруға мүмкіндік туады.

2.6 сурет

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

Осындай бірнеше элементтің шығыстарын, оларды ортақ Ucc - R тізбегіне жалғау арқылы, параллель қосуға болады. Бұл кезде элементтердің (3S элементтеріндегі сияқты олардың біреуі ғана жандандырылған жағдайда, ал қалғандары жабық жағдайда болуын қамтамасыз ету арқылы) ортақ жолға кезек-кезек жұмыс істеуіне мүмкіндік туады. Шығыстары қосылған элементтердің барлығының да жандандырылған жағдайда болуына рұқсат беру арқылы, құрылымды логика деп аталатын, қосымша логикалық операция орындалуына мүмкіндік туады.

3 Қиыстырма құрылғылар

3.1 Қиыстырма құрылғыларды құру тәртібі

Қиыстырма құрылғыларды құру келесі тәртіппен жүргізіледі:

-      құрылғының сөз-сөйлем түріндегі түсіндірмесінің негізінде оның ақиқаттық кестесі құрылады;

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

-      қажетті жағдайда алынған логикалық өрнек минимизацияланады;

-      алынған өрнек құрылғыны құруға бағдарланған түпнегіздік жинаққа (core set) сай түрлендіріледі;

-      ақырғы алынған өрнек негізінде түпнегіздік жинақтың элементтері арқылы құрылғының сұлбасы құрылады.

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

3.1 к е с т е

X2

X1

X0

Y

 

X2

X1

X0

Y

0

0

0

0

 

1

0

0

1

0

0

1

1

 

1

0

1

1

0

1

0

0

 

1

1

0

0

0

1

1

1

 

1

1

1

1

 

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

Берілген құрылғының ЕМЕС, ЖӘНЕ, НЕМЕСЕ элементтерінің негізінде құрылған сұлбасы 3.1, a суретте, ал ЖӘНЕ-ЕМЕС элементтерінің негізінде құрылған сұлбасы 3.1, b суретте көрсетілген.

a

b

3.1 сурет

Electronics Workbench бағдарламасының құрамындағы арнайы түрлендіргіш (Logic Converter) қиыстырма құрылғының сұлбасын құру кезеңдерін жүзеге асыруға мүмкіндік береді (3.2 суретті қараңыз).

3.2 сурет

3.2 Қалыпты қиыстырма құрылғылар

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

3.2.1    Шифраторлар.

Шифратор (Coder) – сигналға сәйкесті код қалыптастырушы құрылғы. Мысал ретінде сегіз кірісті (X7 … X0) шифратордың сұлбасын құру жолын қарастыралық. Кіріс саны сегіз болғандықтан, ол үшразрядты код (C2 … C0, CODE) қалыптастыру керек және кодтың қалыптасқанын жеке сигнал (O, OUT) арқылы құптауы керек (бұл сигнал қалыптасқан кодты қажетті жады буферіне жазып алуға пайдаланылады). Үлкен құрылымның құрамындағы жеке қызмет буындары, әдетте, кезекпен  істейді, бұл олардың іске қосу кірісіне сәйкесті деңгейлі сигнал жіберілуі арқылы жүзеге асырылады. Осындай іске қосу кірісі (I, IN) біздің құрастыратын шифраторда да ескерілгені дұрыс. Тағы бір ескеретін мәселе: қалыпты қызмет буындарының іске қосу кірісі мен құптау шығысындағы сигналдың жандандыру деңгейі төменгі (0) мәнінде алынады. Шифратордың ақпараттық кірістеріне түсетін сигналдардың да жандандыру деңгейі төменгі (0) мәнінде болғаны бұндай құрылғыны іс жүзінде құруға ыңғайлы болады.

Шифратордың келтірілген түсіндірме суреттемесі оның ақиқаттық кестесін құруға толық мәлімет береді, келтірілген түсіндірме мәліметтерінің негізінде сол кестені құрамыз (3.2 кестені қараңыз).

 

 

 

2.1 к е с т е

I

Xi

C2

C1

C0

O

0

0

0

0

0

0

1

0

0

1

0

2

0

1

0

0

3

0

1

1

0

4

1

0

0

0

5

1

0

1

0

6

1

1

0

0

7

1

1

1

0

1

*

0

0

0

1

 

Кесте деректерінің негізінде жазылған шифратор шығыстарының логикалық өрнектері:

;

;

;

.

Бұл өрнектер, алдымен, НЕМЕСЕ функциялары арқылы жазылып, сосын де Морган заңын пайдалану арқылы ЖӘНЕ-ЕМЕС функциясымен суреттелген түріне түрлендірілді; оған тағы бір себеп – ЖӘНЕ-ЕМЕС элементтерінің олардың ішкі құрылымына байланысты тезәрекеттілігі басқа элементтермен салыстырғанда жоғары болады. 3.3, a-суретте шифратордың жазылған өрнектер негізінде құрылған сұлбасы келтірілген.

Шифратор сұлбада шартты сызба белгілемесімен (3.3, b-суретті қараңыз) көрсетіледі, ал 3.3, с-суретте Electronics Workbench бағдарламасының мүмкіндігін пайдалану арқылы жүзеге асырылған алдыңғы жиналған сұлбаның біріктірілген жеке блок (Subcircuit) түріндегі суреттемесі келтірілген (оның сәйкесті шықпалары олардың келтірілген құрылым сұлбасындағы орналастырылым бағытына сай шығарылған).

     

   a

       b

       c

3.3 сурет

Құрылған шифратордың айта кететін бір кемшілігі бар, оған екі сигнал қатар жіберілген жағдайда оның шығарған коды шым-шытырық бірдеңеге айналып кетеді. Осындай жағдайды болдырмас үшін шифратордың өндірісте шығарылатын микросұлбалары (мысалы, 74148 микросұлбасы), әдетте, мәртебелі түрде құрылады. Яғни олар түскен бірнеше сигналдың белгіленген мәртебесі жоғарғысының кодын шығарады да, қалғандарына көңіл бөлмейді.

3.4 сурет

 

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

3.2.2    Дешифраторлар.

Дешифратор (Decoder) – кірістеріне түскен екілік кодқа сәйкесті шығысында сигнал қалыптастырушы құрылғы. Мысал ретінде төрт теріс шығысты (Q3 … Q0) дешифратордың сұлбасын құру жолын қарастыралық. Шығыс саны төртеу болғандықтан, оның кірісіне түсетін код екіразрядты (A1A0) болады. Дешифратордың іске қосу кірісіндегі (E, Enable) сигналдың жандандыру деңгейін төменгі (0) мәнінде алалық.

Дешифратордың келтірілген түсіндірме суреттемесінің негізінде оның ақиқаттық кестесін (3.3 кестені қараңыз) құрамыз.

 

3.3 к е с т е

E

A1

A0

Q3

Q2

Q1

Q0

0

0

0

1

1

1

0

0

1

1

1

0

1

1

0

1

0

1

1

1

1

0

1

1

1

1

*

*

1

1

1

1

 

Кесте деректерінің негізінде жазылған дешифратор шығыстарының логикалық өрнектері:

;

;

.

3.5, a-суретте дешифратордың жазылған өрнектер негізінде құрылған сұлбасы келтірілген.

Дешифратор сұлбада шартты сызба белгілемесімен (3.5, b-суретті қараңыз) көрсетіледі, ал 3.5, c-суретте оның Electronics Workbench бағдарламасында жиналған сұлбасының біріктірілген жеке блок түріндегі суреттемесі келтірілген.

        

   a

   b

        c

3.5 сурет

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

.

Алынған өрнектен берілген құрылғының қызметін теріс шығысты дешифратор негізінде жүзеге асыру үшін оның сәйкесті шығыстарына бескірісті ЖӘНЕ-ЕМЕС элементін жалғау жеткілікті екендігі көрініп тұр (3.6 суретті қараңыз).

3.6 сурет

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

3.2.3    Мультиплексорлар.

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

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

 

a

b

3.7 сурет

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

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

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

 

3.4 к е с т е

X2

X1

X0

Y

0

0

0

1

0

0

1

0

0

1

0

0

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

0

1

1

1

0

 

a

b

3.8 сурет

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

3.2.4    Демультиплексорлар.

Демультиплексор (Demultiplexer) – дерек кірісіндегі сигналды сілтеу коды арқылы анықталған шығысына жіберетін құрылғы. Демультиплексордың дешифратор арқылы құрылған сұлбасы мен оның сәйкесті шартты сызба белгілемесі 3.5-суретте келтірілген.

a

b

3.5 сурет

3.2.5    Қосу құрылғылары.

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

Екі бірразрядты санды қосу кезінде олардың қосынды нәтижесі (S, Sum) мен келесі разрядқа жіберілетін тасымал (C, Carry) шығарылу керек, демек оның жұмысын 3.5-кестемен суреттеуге болады. 

3.5 к е с т е

A

B

S

C

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

 

Кесте деректері негізінде жазылған құрылғы шығыстарының логикалық өрнектері:

.

Осы өрнектердің негізінде құрылған қосуыштың сұлбасы мен оның сәйкесті біріктірмесі 3.10, a-суретте келтірілген.

 

 

 

a

b

3.10 сурет

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

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

 

a

b

c

3.11 сурет

4 Тізбектеме құрылғылар

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

4.1 Триггерлер

Триггерлер – екі тиянақты жағдайы бар бірразрядты екілік сан сақтауға арналған құрылғылар. Оның тиянақты жағдайларының біреуі лог.1-ге, екіншісі лог.0-ге сәйкес келеді. Әдетте, триггерлік құрылымның қарама-қарсы деңгейлі (тура және теріс деп аталатын) екі шығысы болады, триггердің жағдайы оның тура шығысындағы сигнал деңгейімен анықталады.

Ақпараттың енгізілу (жазылу) тәртібіне байланысты триггерлер асинхронды және синхронды болып бөлінеді.

4.1.1    Асинхронды RS-триггерлер.

Асинхронды триггерлердің жаңа жағдайға ауысуы тікелей олардың кірісіне берілетін ақпараттық сигналдардың өзгерісімен ғана анықталады. Оларды НЕМЕСЕ-ЕМЕС немесе ЖӘНЕ-ЕМЕС элементтерінің негізінде құруға болады. Асинхронды триггердің НЕМЕСЕ-ЕМЕС элементтерінің негізінде құрылған сұлбасы 4.1, a-суретте келтірілген.

a

b

4.1 сурет

Бұл құрылымның жұмысын 4.1-кестедегі жазылым ретімен талқылау арқылы қарастырамыз.

4.1 к е с т е

 

R

S

Q

Q’

1

0

0

?

?

2

1

0

1

3

0

1

1

4

1

1

0

5

0

1

0

6

1

1

0

0

7

0

0

???

???

 

Кестенің бірінші жолында – R = 0, S = 0; екі элементтің де бір кірісінде 0 тұр, ал олардың кері байланыстық кірістерінде қарастырылым басында қандай сигнал тұрғаны белгісіз, демек құрылым шығыстарындағы (Q және Q’) сигнал деңгейлері де белгісіз.

Кестенің екінші жолында – R = 1, S = 0; жоғарғы элементтің бір кірісінде лог.1 тұрғандықтан, бұл элементтің жұмыс логикасына сәйкесті, оның шығысында (Q) лог.0 деңгейлі сигнал туады да, ол кері байланыс жолы арқылы төменгі элементтің екінші кірісіне түседі, нәтижесінде оның шығысында (Q’) лог.1 деңгейлі сигнал туады; сонымен, бұл жағдайда триггер лог.0 жағдайына келтіріледі (яғни оған 0 жазылады).

Кестенің үшінші жолында – R = 0, S = 0; жоғарғы элементтің R кірісіндегі сигнал деңгейі өзгергенмен, оның екінші кірісінде (құрылымның Q’ шығысына жалғанған) лог.1 деңгейі тұрғандықтан, бұл элементтің шығысындағы сигнал деңгейі алдыңғы лог.0 деңгейінде қалады, демек триггердің жағдайы өзгермейді.

Кестенің төртінші жолында – R = 0, S = 1; төменгі элементтің бір кірісінде лог.1 тұрғандықтан, оның шығысында (Q’) лог.0 деңгейлі сигнал туады да, ол кері байланыс жолы арқылы жоғарғы элементтің екінші кірісіне түседі, нәтижесінде оның шығысында (Q) лог.1 деңгейлі сигнал туады; сонымен, бұл жағдайда триггер лог.1 жағдайына келтіріледі (яғни, оған 1 жазылады).

Кестенің бесінші жолында – R = 0, S = 0; төменгі элементтің S кірісіндегі сигнал деңгейі өзгергенмен, оның құрылымның Q шығысына жалғанған кірісінде лог.1 деңгейі тұрғандықтан, бұл элементтің шығысындағы сигнал деңгейі алдыңғы лог.1 деңгейінде қалады, демек триггердің алдыңғы жағдайы сақталады.

Құрылымның қарастырылған жағдайларынан келесі қорытынды шығаруға болады: R = 1, S = 0 берілу жағдайы триггердің 0 жазу режиміне, R = 0, S = 1 жағдайы триггердің 1 жазу режиміне, ал R = 0, S = 0 жағдайы триггердің жазылған санды сақтау режиміне сәйкес келеді.

Триггердің кірістеріне R = 1, S = 1 берілген кезде (алтыншы жол) екі элементтің де шығыстарында лог.0 деңгейлі сигнал туады да, триггер сақтау режиміне ауыстырылғанда (жетінші жол), триггердің қай жағдайға тиянақталатындығы – кездейсоқ оқиға. Демек бұндай жағдайды тудырмас үшін, қарастырылған триггердің кірістеріне R = 1, S = 1 берілмеуі керек, сондықтан бұл жағдай триггердің тыйым салынған режимі деп аталады.

Сонымен, қарастырылған триггердің жұмыс режимдерін 4.2-кесте түрінде суреттеуге болады.

4.2 к е с т е

R

S

Q

Q’

Жұмыс режимдері

0

0

Q0

Q0

Сақтау режимі

0

1

1

0

‘1’ жазу режимі

1

0

0

1

‘0’ жазу режимі

1

1

Тыйым салынған режим

 

Қарастырылған триггердің жазу режимдері сәйкесті ақпараттық сигналдардың (S – Set, R – Reset) бірлік деңгейімен жүзеге асырылатын-дығына байланысты бұндай триггер тура кірісті триггер деп аталады. Оның шартты сызба белгілемесі 4.1, b-суретте келтірілген.

ЖӘНЕ-ЕМЕС элементтерінің негізінде құрылған асинхронды триггердің сұлбасы 4.2, a-суретте келтірілген.

a

b

4.2 сурет

Бұл құрылымның жұмысын 4.3-кестедегі жазылым ретімен қарастырамыз.

4.3 к е с т е

 

R

S

Q

Q’

1

1

1

?

?

2

0

0

1

3

1

0

1

4

0

1

0

5

1

1

0

6

0

0

1

1

7

1

1

???

???

 

Кестенің бірінші жолында – R = 1, S = 1; екі элементтің де бір кірісінде 1 тұр, ал олардың кері байланыстық кірістерінде қарастырылым басында қандай сигнал тұрғаны белгісіз, демек құрылым шығыстарындағы (Q және Q’)  сигнал деңгейлері де белгісіз.

Кестенің екінші жолында – R = 0, S = 1; төменгі элементтің бір кірісінде лог.0 тұрғандықтан, бұл элементтің жұмыс логикасына сәйкесті, оның шығысында (Q’) лог.1 деңгейлі сигнал туады да, ол кері байланыс жолы арқылы жоғарғы элементтің екінші кірісіне түседі, нәтижесінде оның шығысында (Q) лог.0 деңгейлі сигнал туады; сонымен, бұл жағдайда триггер лог.0 жағдайына келтіріледі (яғни оған 0 жазылады).

Кестенің үшінші жолында – R = 1, S = 1; төменгі элементтің R кірісіндегі сигнал деңгейі өзгергенмен, оның құрылымның Q шығысына жалғанған кірісінде лог.0 деңгейі тұрғандықтан, бұл элементтің шығысындағы сигнал деңгейі алдыңғы лог.1 деңгейінде қалады, демек триггердің жағдайы өзгермейді.

Кестенің төртінші жолында – R = 1, S = 0; жоғарғы элементтің бір кірісінде лог.0 тұрғандықтан, оның шығысында (Q) лог.1 деңгейлі сигнал туады да, ол кері байланыс жолы арқылы төменгі элементтің екінші кірісіне түседі, нәтижесінде оның шығысында (Q’) лог.0 деңгейлі сигнал туады; сонымен, бұл жағдайда триггер лог.1 жағдайына келтіріледі (яғни, оған 1 жазылады).

Кестенің бесінші жолында – R = 1, S = 1; жоғарғы элементтің S кірісіндегі сигнал деңгейі өзгергенмен, оның құрылымның Q’ шығысына жалғанған кірісінде лог.0 деңгейі тұрғандықтан, бұл элементтің шығысындағы сигнал деңгейі алдыңғы лог.1 деңгейінде қалады, демек триггердің алдыңғы жағдайы сақталады.

Құрылымның қарастырылған жағдайларынан келесі қорытынды шығаруға болады: R = 0, S = 1 берілу жағдайы триггердің 0 жазу режиміне, R = 1, S = 0 жағдайы триггердің 1 жазу режиміне, ал R = 1, S = 1 жағдайы триггердің жазылған санды сақтау режиміне сәйкес келеді.

Триггердің кірістеріне R = 0, S = 0 берілген кезде (кестенің алтыншы жолы) екі элементтің де шығыстарында лог.1 деңгейлі сигнал туады да, триггер сақтау режиміне ауыстырылғанда (кестенің жетінші жолы), триггердің қай жағдайға тиянақталатындығы кездейсоқ оқиға. Демек бұндай жағдайды тудырмас үшін, қарастырылған триггердің кірістеріне R = 0, S = 0 берілмеуі керек, сондықтан бұл жағдай триггердің тыйым салынған режимі болады.

Сонымен, қарастырылған триггердің жұмыс режимдерін 4.4-кесте түрінде суреттеуге болады.

4.4 к е с т е

R

S

Q

Q’

Жұмыс режимдері

0

0

Тыйым салынған режим

0

1

1

0

‘0’ жазу режимі

1

0

0

1

‘1’ жазу режимі

1

1

Q0

Q0

Сақтау режимі

 

Қарастырылған триггердің жазу режимдері сәйкесті ақпараттық сигналдардың (S – Set, R – Reset) нөлдік деңгейімен жүзеге асырылатын-дығына байланысты бұндай триггер теріс кірісті триггер деп аталады. Оның шартты сызба белгілемесі 4.2, b-суретте келтірілген.

4.1.2    Синхронды триггерлер.

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

Статикалы басқарылымды (яғни деңгей арқылы басқарылатын) RS-триггердің сұлбасын теріс кірісті асинхронды RS-триггерге екі ЖӘНЕ-ЕМЕС элементінен тұратын басқару сұлбасын қосу арқылы жүзеге асыруға болады (4.3, a-суретті қара).

 

a

b

4.3 сурет

Бұл триггердің жұмыс режимдері 4.5-кестеде суреттелген.

4.5 к е с т е

С

R

S

Q

Q’

Жұмыс режимдері

0

x

x

Q0

Q0

Сақтау режимі

1

0

0

Сақтау режимі

0

1

1

0

 ‘1’ жазу режимі

1

0

0

1

‘0’ жазу режимі

1

1

Q0

Q0

Тыйым салынған режим

 

C = 0 кезінде триггер сақтау режимінде болады. Триггердің R мен S кірістеріндегі сигнал деңгейлеріне сәйкесті жағдайға ауысуы С = 1 кезінде жүзеге асырылады. Синхронды RS-триггердің шартты сызба белгілемесі 4.3, b-суретте келтірілген.

Статикалы басқарылымды D-триггердің (Delay – кідіріс) сұлбасы мен шартты сызба белгілемесі 4.4-суретте келтірілген, ал оның жұмыс режимдері 4.6-кестеде суреттелген.

a

b

4.4 сурет

 

 

 

4.6 к е с т е

С

D

Q

Q’

Жұмыс режимдері

0

x

Q0

Q0

Сақтау режимі

1

0

0

1

‘0’ жазу режимі

1

1

0

 ‘1’ жазу режимі

 

Бұдан әрі динамикалы басқарылатын триггерлердің үш түрін қарастырамыз, олар – D-триггер, JK-триггер және T-триггер.

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

Динамикалы басқарылымды D-триггердің шартты сызба белгілемесі 4.5, a-суретте келтірілген, ал оның жұмыс режимдері 4.7-кестеде суреттелген.

 

a

b

4.5 сурет

4.7 к е с т е

С

D

Q

Q’

Жұмыс режимдері

0

0

1

Сақтау режимі

1

1

0

Жазу режимі

 

Бұл триггердің жағдайының ақпараттық сигналдың мәніне (D) сәйкесті ауысуы басқару сигналының тура ауытқу (0-ден 1-ге) мезетінде жүзеге асырылады. Оның шартты сызба белгілемесінде басқару сигналының ауытқу бағыты сәйкесті бағыттама түрінде бейнеленеді.

JK-триггердің төрт түрлі жұмыс режимі бар (4.8-кестені қараңыз): оның үш режимі (‘0’ жазу, ‘1’ жазу, сақтау) RS-триггердегі сияқты, ал төртінші режим санау режимі деп аталады, бұл режимде триггер кезекті жағдайынан қарсы жағдайға ауысады. JK-триггердің келтірілген жұмыс кестесінде және оның шартты сызба белгілемесінде (4.5, b-суретті қараңыз) оның жағдайын ауыстыруы басқару сигналының теріс ауытқу (1-ден 0-ге) мезетінде жүзеге асырылатындығы сәйкесті бағыттау белгілерімен суреттеледі.

 

 

 

 

4.8 к е с т е

С

J

K

Q

Q’

Жұмыс режимдері

0

0

Q0

Q0

Сақтау режимі

0

1

0

1

‘0’ жазу режимі

1

0

1

0

 ‘1’ жазу режимі

1

1

Q0

Q0

Санау режимі

 

T-триггер – санау режимінде істейтін триггер. T-триггердің қызметін жүзеге асыру үшін D-триггер мен JK-триггердің қосылым тәртібі 4..6-суретте келтірілген.

 

a

b

4.6 сурет

Микросұлба түрінде D-триггерлер мен JK-триггерлер шығарылады. Бұл микросұлбаларда ақпараттық және басқару сигналдарын енгізу шықпаларымен қатар, бастапқы қойылым сигналдарының (R, S) шықпалары орналастырылады (4..7 суретті қараңыз). Бұл кірістерге берілетін асинхронды сигналдардың мәртебесі басқа  сигналдарға қарағанда жоғары болады.

 

a

b

4.7 сурет

4.2 Регистрлер

Регистр – көпразрядты екілік сан сақтауға арналған құрылғы. Олар триггерлердің (мысалы D-триггерлердің) негізінде құрылады. Әрине, регистр құрамындағы триггерлердің саны регистрдің разряд санымен анықталады.  Регистрге санның енгізілу тәртібіне байланысты олардың тізбекті және параллель регистр деп аталатын түрлері болады.

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

Параллель регистрдің триггерлерінің ақпараттық кірістеріне сөз разрядтарының мәндері қатар беріліп, олар регистрге жалғыз тактілік сигнал арқылы енгізіледі.

Екі түрлі енгізу тәсілі қамтылған әмбебап регистрлер де болады. Осындай әмбебап регистрдің мысалы ретінде 74194 аталымды төртразрядты регистрдің сызба белгілемесі келтірілген (4.8 суретті қараңыз).

Оның шықпаларының (яғни, оларға берілетін сигналдардың) қызметі:

-      VCC, GND – қорек көзі мен жердің қосылатын шықпалары;

-      A, B, C, D – ақпаратты параллель енгізу шықпалары;

-      QA, QB, QC, QD – регистрдің шығыстары;

-      SR – солға ығыстыру кезіндегі ақпарат енгізу шықпасы;

-      SL – оңға ығыстыру кезіндегі ақпарат енгізу шықпасы;

-      S1, S0 – регистрдің жұмыс режимдерін анықтаушы сигналдардың шықпалары: S1 = 0, S0 = 0 – сақтау режимі; S1 = 0, S0 = 1 – солға ығыстыру режимі; S1 = 1, S0 = 0 – оңға ығыстыру режимі; S1 = 1, S0 = 1 – параллель енгізу режимі;

-      CLK – тактілік сигналдың шықпасы;

-      CLR’ – тазарту сигналының шықпасы.

4.8 сурет

4.3 Санауыштар

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

Қарапайым санауыштың мысалы ретінде Electronics Workbench бағдарламасының элементтер қорындағы 7493 аталымды төртразрядты санауыш микросұлбасының белгілемесі көрсетілген (4.9, a-суретті қараңыз).

 

a

b

4.9 сурет

Оның құрамында бірразрядты және үшразрядты санауыштар орналастырылған. Бұл микросұлбаның шықпаларының  қызметі:

-      VCC, GND – қорек көзі мен жердің қосылатын шықпалары;

-      CKA, QA – бірразрядты санауыштың кірісі мен шығысы;

-      CKB, QB, QC, QD – үшразрядты санауыштың кірісі мен шығыстары;

-      R01, R02 – санауыштарды тазарту сигналының шықпасы.

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

Әмбебап санауыштың мысалы ретінде Electronics Workbench бағдарламасының элементтер қорындағы 74169 аталымды төртразрядты санауыштың сызба белгілемесі көрсетілген (4.9, b-суретті қараңыз).

Бұл микросұлбаның шықпаларының  қызметі:

-      VCC, GND – қорек көзі мен жердің қосылатын шықпалары;

-      A, B, C, D – ақпараттың параллель енгізілу кірістері;

-      LOAD’ – ақпаратты параллель енгізу сигналының кірісі;

-      QA, QB, QC, QD – санауыштың шығыстары;

-      D/U’ – санау бағытын анықтаушы сигнал шықпасы;

-      ENP’, ENT’ – санауышты іске қосу сигналдарының кірістері;

-      CLK – тактілік сигналдың кірісі;

-      RCO’ – санау шегіне жету сигналы.

5 Жады құрылғылары

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

5.1 Жады құрылғыларының сипаттамалары

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

-      ақпараттық сыйымдылығы – сақталатын ақпараттың ең жоғарғы көлемі. Ол бит, байт немесе бірнеше байттан тұратын, сөз санымен сипатталады. Бұл параметр, көбінесе сақталатын сөз санының олардың разряд санына көбейтіндісі түрінде сипатталады;

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

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

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

Жадылық құрылғылардың жұмысы келесі сигналдармен басқарылады:

-      A (Address) – адрес, оның разрядтылығы (n) жады құрылымының ұяшық санымен (N) анықталады. Жады құрылымының ұяшық саны, әдетте, екінің тұтас мәнді дәрежесімен сипатталады. Адрес разрядтылығы жадының ұяшық санына n =log2N қатынасымен байланысты;

-      CS (Chip Select) немесе CE (Chip Enable) – микросұлбаны таңдау немесе іске қосу сигналы;

-      R/W (Read/Write) – сәйкесті операцияны орындату сигналы;

-      DI (Data Input) және DO (Data Output) – кіріс және шығыс деректерінің сигналдары жүретін желілер. Кейбір жады құрылымдарында олар біріктірілген түрінде пайдаланылады.

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

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

Сілтеу арқылы шығарылымды жады құрылғылары өз кезегінде  RAM (Random Access Memory) және ROM (Read Only Memory) түрлеріне бөлінеді. RAM түрлі жады құрылғыларда кезекті бағдарламаның орындалуы кезіндегі алмасуға қатысты кез келген уақытта өзгеретін деректер сақталады. Олардың құрамындағы жады элементтері қорек көзіне тәуелді болады.

RAM түрлі ЖҚ-лар құрамындағы жады элементтерінің түріне қарай статикалық (SRAM) және динамикалық (DRAM) болып бөлінеді. Оның біріншісінде жады элементтері ретінде триггерлер пайдаланылады, сондықтан олардың тезәрекеттілігі жоғары болады, ал екіншісінде деректер МТШ-құрылымның элементтері арқылы құрылған конденсаторлардың зарядтары түрінде сақталады. Конденсаторлардың өздігінен зарядсыздануы деректерді жояды, сондықтан олардың қайта-қайта (әрбір миллисекунд сайын) қалпына келтіріліп отырылуы керек. Бірақ динамикалық жады элементтерінің орналастырылым тығыздығы статикалық құрылыммен салыстырғанда бірнеше есе асып түседі.

Динамикалы RAM түріндегі жады құрылымдарының ақпараттық сыйымдылығы жоғары болады және арзанға түседі, сондықтан есептеу машиналарының негізгі жадысы ретінде пайдаланылады. Статикалы RAM түріндегі жады құрылымдары динамикалы құрылымдармен салыстырғанда бірнеше есе қымбатқа түседі (жады элементтерінің күрделілігінен) және олардың ақпараттық сыйымдылығы да сонша есе кем болады. Олардың артықшылығы тезәрекеттілігінде,  осыған байланысты қолданылым аймағы – кэш-жадысының сұлбалары.

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

ROM түрлі ЖҚ-лар бағдарлану тәсіліне (және орнына) байланысты бірнеше түрде шығарылады, олар: ROM(M), PROM, EPROM және EEPROM.

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

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

EPROM (Electrically Programmable ROM) және EEPROM (Electrically Erasable Programmable ROM) түріндегі құрылымдардағы ақпаратты өшіріп, одан кейін оларды қайтадан бағдарлауға болады. EPROM құрылымдарындағы ақпарат ультракүлгін сәулесімен, ал EEPROM құрылымдарындағы ақпарат электр сигналдарымен өшіріледі. Оларды бағдарлау зертханалық жағдайда арнайы бағдарлаушы құрылғылар арқылы жүзеге асырылады.

Тізбекті шығарылымды жады құрылымдарында жазылған деректер кезек құрады. Кезектегі сөздердің оқылуы олардың жазылым тәртібімен немесе керісінше тәртіппен жүзеге асырылады. Сөздердің тура шығарылым тәртібі FIFO (First In – First Out) буферлері мен файлды және циклді ЖҚ-ларда қолданылады. Сөздердің кері тәртіппен оқылуы LIFO (Last In – First Out) буферлері ретінде істейтін стек түріндегі ЖҚ-ларда қолданылады.

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

5.2 RAM түріндегі жады құрылғыларының құрылымдары

Статикалы RAM түрлі жады құрылғылары 2D, 3D және 2DM құрылымымен құрылады.

2D құрылымында n-разрядты m-разрядты жады ұяшықтары (ЖҰ) дешифратордың сәйкесті шығыстарына қосылады, яғни олар бір жол бойында орналастырылады (суретте – вертикаль бойында), сондықтан бұндай құрылым, көбіне, сызықты құрылым деп аталады (5.1 суретті қараңыз).

5.1 сурет

Адрес кодының дешифраторы (DC), рұқсат сигналы CS (Chip Select) берілген кезде, шығыс жолдарының біреуін жандандырып, таңдалған жолдағы ұяшыққа, демек онда сақтаулы сөзге қол жеткізеді. Матрица бағаналарының сәйкесті элементтері вертикаль жолға, яғни ішкі дерек жолына (разряд жолына, оқу/жазу жолына) жалғанған. Бағана элементтерінде сөздердің аттас биттері сақталған. Сөздің жіберілім бағыты R/W (Read/Write) сигналының әрекетіне байланысты оқу/жазу күшейткіштерімен анықталады.

3D құрылымы (матрицалы құрылым) қоскоординаталы талғам арқылы адрес дешифраторын жеңілдетуге мүмкіндік береді (5.2 суретті қараңыз).

Бұнда n разрядты адрес коды екіге бөлінеді де, олардың әрбіреуі жеке ажыратылады. Жандандырылған жолдардың қиылысындағы жады элементі (немесе ұяшығы) таңдалады. Бұндай қиылыстар саны 2n/2 х 2n/2 = 2n. Екі дешифратордың шығыстарының толық саны 2n/2 + 2n/2 = 2n/2+1 болады, ал бұл 2D құрылымдағы дешифратордың шығыс санынан (2n) санынан едәуір кем.

Үлкен құрылымдардың (мысалы, компьютерлердің) жады жүйелерін ұйымдастыруға арналған 2DM (модификацияланған 2D) құрылымында 2D және 3D құрылымдарының екеуінің де артықшылық жақтары қамтылған  – адрес ажыратылуы жеңілдетілген және екікоординаталы талғанымды жады элементтерінің қажеттігі жоқ.

 

5.2 сурет

2DM құрылымының жады элементтерінің матрицасы (5.3 суретті қараңыз) 2D құрылымының сипатындай: дешифратордың жандандырылған шығысы толық бір жолды таңдайды. Бірақ 2D құрылымынан ерекше, бұнда жол ұзындығы сақталушы сөздердің разряд санындай емес, одан бірнеше есе асып түседі. Жолдардың біреуін таңдауға адрес кодының An–1... Ak бөлігі пайдаланылады. Адрестің қалған разрядтары (от Ak–1... A0) таңдалған жолдағы көптеген сөздердің қажеттісін мультиплексор арқылы бөліп шығаруға пайдаланылады. Жол ұзындығы – m2k, бұндағы m – сақталушы сөздердің разряд саны. Ұзақтығы 2k жолдың әрбір “кесіндісінен” 2k мультиплексор бір бит таңдайды. Мультиплексорлардың шығыстарында шығыс сөзі қалыптасады. Үш жағдайлы басқарылымды буферлердің ОЕ кірістеріне түсетін CS сигналының рұқсатымен шығыс сөзі сыртқы желіге жіберіледі.

5.3 сурет

5.3 ROM түріндегі жады құрылғыларының элементтері

ROM (Read Only Memory) түрлі жадылық құрылғылардың  кейбіреуіндегі ақпарат (ROM(M) және PROM түрлі ЖҚ-да) ешқашан өзгермейді, ал кейбіреуінде (EPROM және EEPROM түрлі ЖҚ-да) өзгертіледі, бірақ ол құрылғының жұмыс режимінде емес, арнайы режимде жүзеге асырылады.

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

Диодты ROM(M) матрицасында (5.4 суретті қараңыз) горизонталь жолдар – сөз талғам жолдары, ал вертикаль жолдар – оқылым жолдары. Оқылатын сөз диодтардың координат торының түйіндеріндегі орналасысымымен анықталады. Диодтың тұрған кезінде таңдалған горизонталь жолдың жоғары мәнді потенциалы сәйкесті вертикаль жолға жіберіледі де сөздің осы разрядында логикалық бір сигналы шығады. Диодтың жоқ кезінде, вертикаль жол резистор арқылы жерге жалғанғандықтан, осы жолдың потенциалы нөлге жуық болады. Көрсетілген матрицадағы талғам жолы Т0 жандандырылғанда 11010001 сөзі оқылады (нөмірі нөл ұяшықта осы сөз сақталған). Т1 жолы жандандырылғанда 10101011 сөзі оқылады (ол нөмірі 1 ұяшықта сақталған). Талғам жолдары – адрес дешифраторының шығыстары, әрбір адрес қиыстырымы дешифратордың сәйкесті шығысын жандандырады да, сілтенген ұяшықтағы сөз оқылады.

5.4 сурет

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

5.5 сурет

ROM(M) түрлі ЖҚ-лардың жады элементтері өте аз орын алады, демек сәйкесті микросұлбалардың жиналым деңгейі жоғары болады. Бірақ жиналымды технологиялық тәсілмен бағдарлауға арналған маскаларды жобалау мен жасауға кететін қаражат аса жоғары болады. Бұндай қаражат олардың кең қолданылатын жағдайында ғана ақталады. Бұдан олардың қолданылым аймағы да анықталады, олар – тұтынушылардың көпшілігіне қажетті, стандартты ақпарат сақтау. Мысалы, маскалы бағдарламалы жады құрылғыларында алфавит (орысша және латынша) символдарының, қалыпты функциялардың (синустың, квадраттық функциялардың және т.б.) кестелері, стандартты бағдарламалар және с.с. кең қолданылымды ақпараттың “тігілімдері[1]” болады.

PROM (Programmable ROM) түрлі жадылық құрылғылардың  микросұлбалары арнайы жалғамаларды жою немесе оларды құру арқылы бағдарланады. Микросұлбаның бастапқы дайындалымында барлық жалғамалар болады (немесе ешқандай жалғама болмайды). Бағдарлаудан кейін олардың қажеттілері ғана қалады (немесе құрылады).

Жойылымды жалғамалы ЖҚ-лардың бастапқы микросұлбасында барлық жалғама орналастырылған (яғни жады матрицасының барлық қиылысында лог.1 тұрады). Бағдарлау кезінде олардың кейбірі амплитудасы мен ұзақтығы жеткілікті мөлшердегі ток импульстарымен еріту арқылы жойылады (яғни жады матрицасының сәйкесті қиылыстарына лог.0 жазылады). Ерітілме жалғамалар диодтардың немесе транзисторлардың электродтарына қосылады (5.6, a-суретті қараңыз).

a

b

5.6 сурет

Құрылымды жалғамалы ЖҚ-лардың бастапқы микросұлбасының құрамындағы жады матрицасының барлық қиылысында қарсы қосылымды диод түріндегі құрылым орналастырылған (5.6, b-суретті қараңыз). Қосдиодты құрылымның бастапқы жағдайдағы кедергісі жоғары болады да, бұл қиылыстардың ажыратылған жағдайына, яғни онда лог.0 сақталған элемент тұрғанына сәйкес келеді. Нақтылы қиылыстарды лог.1 жағдайына келтіру үшін, яғни онда бір жазу үшін, бұндағы диодтарға жоғары мәнді кернеу беру арқылы кері бағытта қосылған диод тесіліп, бұл қиылыс тұйықталады да, онда ток жүргізуші жалғама туады.

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

Қазіргі заманғы қайта бағдарламалы ЖҚ-лардың жады элементтері ретінде жұмысы қалқыма жаппаның тудырылуына негізделген МНТШ-транзисторлар (Металл, Нитрид, Тотық, Шалаөткізгіш) мен ЗТИМТШ-транзисторлар (Зарядтардың Тасқынды Инжекциясына МТШ-транзистор) қолданылады [1].

6 Цифрлық құрылғылардың моделдері

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

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

6.1 Динамикалы дерек көзі

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

 

                                                          6.1 сурет                        

Дерек көзінің ең қарапайым (жеңіл және тезірек құрылатын) түрін санауыш негізінде құруға болады, бұндай құрылғыны динамикалық дерек көзі деп атадық. 6.2 суретте келтірілген сұлбадағы дерек көзі Data, жиілігі 1 Гц генератордан істеуші төртразрядты санауыштың 7493 микросұлбасының негізнде құрылған. Оның индикаторларында 0 – 15 арасындағы сандардың коды 1 секунд сайын (генератордың қойылған жиілігіне сәйкесті) тізбелі түрде шығарылып тұрады. Қажетті санның коды шығуын күтіп, оны кіріс деректерінің қабылдағышына жазып алу ғана қалады.

 

6.2 сурет

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

Таңдалған қабылдағышқа дерек жазу C түймесін басу арқылы жүзеге асырылады. Бұл кезде XNOR элементінің негізінде құрылған t блогы (6.4 суретті қара) строб сигнал қалыптастырады да, оның тура ауытқымасымен регистрге дерек енгізу жүзеге асырылады.

 

6.3 сурет

 

6.4 сурет

6.2 Қосу құрылғысы

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

6.5 сурет

Қарастылушы құрылғының екі жұмыс режимі бар, олар D ауыстырғышының жағдайымен қойылады: бастапқы деректер енгізу режимі (D = 1) және дайындалған деректердің қосылуын жүзеге асыру режимі (D = 0). Кіріс регистрлеріне деректер енгізу және қосылым нәтижесі мен тасымалды сақтау жалғыз C түймесімен жүзеге асырылады. Строб сигналдарын сәйкесті блоктарға бағыттау сұлбаның сәйкесті бөліктерінде орналастырылған AND элементтерімен жүзеге асырылады. Қосуыш сұлбасы бірразрядты қосуыштар негізінде құрылған (6.6 суретті қараңыз).

 

6.6 сурет

Құрылғы сұлбасын жетілдіру мақсатында оған аздаған жаңарту енгізелік. Қосылым нәтижесін (және тасымалды) жазудың құрылғыны жазу режиміне ауыстыру арқылы, яғни D түймесінің 1 жағдайынан 0 жағдайына ауыстырылуы арқылы жүзеге асырылғаны ыңғайлы болар еді деген ой туады. Сәйкесті жазу стробын Res блогы арқылы қалыптастыруға болады (6.7 суретті қараңыз).

 

 

6.7 сурет

Құрылғының жаңартылған сұлбасы 6.8 суретте келтірілген.

 6.8 сурет

6.3 Алу-қосу құрылғысы

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

Келтірілген құрылғыда орындалатын операция S түймесінің жағдайымен анықталады: S = 0 кезінде – қосу, ал S = 1 кезінде – алу.

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

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

 6.9 сурет

a

b

 

6.10 сурет

6.4 Тізбелі қосу құрылғысы

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

 

6.11 сурет

 

Тізбелі қосу құрылғысының сұлбасының құрамында бірразрядты қосуышпен қатар қосылғыштардың (екі RgS) және қосындының (RgR) ығыстыру регистрлері мен разрядаралық тасымал сақтауға арналған триггер орналастырылған (6.12 суретті қараңыз).

Бастапқы деректердің сәйкесті RG регистрлерінен RgS регистрлеріне қайта жазылуы екі NOT элементі арқылы тудырылатын 20 ns шамасындағы кідіріспен жүзеге асырылады. RgS регистрлерінің жұмыс режимдері (жазу, сақтау, ығыстыру) бұл регистрлердің S0 және S1 кірістеріне жалғанған қиыстырма сұлбалар арқылы R және D ауыстырғыштарының жағдайына сәйкесті қойылады. Құрылғының жұмыс режимін қосу режиміне ауыстырған кезде нәтиже регистрі RgR мен тасымал триггері тазартылады.

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

 

6.12 сурет

 

 

6.5 Автоматты режимдегі тізбелі қосу құрылғысы

Алдыңғы тараудағы қосу құрылғысында разрядтар бойынша қосу C түймесін басу арқылы қалыптастырылатын, төрт тактілік сигналмен жүзеге асырылатынды. Әрине, бұл операциялардың автоматты режимде орындалуы, яғни құрылғыны қосу режиміне ауыстыру кезінде (D ауыстырғышын 1 жағдайынан 0 жағдайына өзгерту арқылы) осы тактілік сигналдарды қалыптастырушы автоматтың іске қосылғаны ыңғайлы болар еді. 6.13 суретте тізбелі қосуыштың сәйкесті жаңартылған сұлбасы келтірілген.

Құрылғы құрамына енгізілген, 7493 санауыщ микросұлбасының негізінде құрылған auto блогы (6.14 суретті қараңыз), келесі қызметтер атқарады: деректер дайындау режимінде жазу стробтарын RgS блоктарына (оларға RG блоктарындағы деректердің қайта жазылуын жүзеге асыру үшін) жібереді; қосу режиміне ауыстырылу мезетінде қалыптастырылатын сигнал (ол бұрын нәтиже регистрі RgR мен тасымал триггерін тазартуға ғана пайдаланылғанды) auto блогының құрамындағы триггерді нөлдік жағдайға қояды да, генератор импульстерінің санауышқа өтуіне мүмкіндік береді. Сосын төрт тактілік сигнал (стробтар) қалыптастырылады да, одан кейін санауыш жұмысы тоқтатылады (төртінші строб қалыптасқаннан кейін аздаған кідіріспен).

6.13 сурет

6.14 сурет

7 Микропроцессорлар және микропроцессорлық жүйелер

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

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

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

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

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

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

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

Жүйе магистралінің құрамына негізгі үш ақпараттық желі кіреді: олар – адрес желісі АВ (Address Bus), дерек желісі DB (Data Bus) және басқарым желісі СВ (Control Bus).

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

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

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

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

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

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

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

7.2 Intel 8085 микропроцессоры

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

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

7.2.1    Микропроцессордың құрылымы.

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

Микропроцессордың құрама блоктарын қарастыралық.

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

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

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

7.1 сурет

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) –  16-разрядты команда санауышы. Онда кезекті орындалатын команданың адресі тұрады. Бастапқы қойылым кезінде ол нөл мәнін қабылдайды, демек бастапқы қойылым бағдарламасының бірінші командасы нолінші ұяшықта болады. Команда ұзындығы 1...3 байт болады. Жадыдан кезекті байт шығарылғаннан кейін PC мәні ұлғайтылады, команда бірбайтты болса, онда келесі команданың адресі, ал өзгеше жағдайда кезекті команданың келесі байтының адресі шығады. Команданың екінші және үшінші байттары W және Z регистрлеріне түседі.

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

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

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

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

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

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

Үш жағдайлы адрес/дерек буфері (A/DB) уақыт бойынша кезектесіп, адрестің кіші байтын немесе дерек байтын жібереді.

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

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).

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

7.2.2    Микропроцессордың шықпалары мен сигналдары.

A15-8 – жады адресінің үлкен байтын немесе сыртқы құрылғының толық адресін шығаруға арналған үш жағдайлы шығыс жолдары. HOLD, HALT және RESET режимдерінде олардың шықпалары үшінші (жоғары кедергілі) жағдайға ауысады;

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

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

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

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

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

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

S1, S0 сигналдарымен бірге IO/М сигналы машина циклінің түрін анықтайды. Ахуал сигналдары мен ,  және  сигналдарының әртүрлі машина цикліне байланысты мәндері 7.1-кестеде келтірілген.

7.1 к е с т е

МЦ

Ахуал сигналдары

Басқару сигналдары

IO/M

S1

S0

OF

0

1

1

0

1

1

MR

0

1

0

0

1

1

MW

0

0

1

1

0

1

IOR

1

1

0

0

1

1

IOW

1

0

1

1

0

1

INA

1

1

1

1

1

0

BI

3S

x

x

1

1

1

HALT

3S

0

0

3S

3S

1

 

Кестеде 3S арқылы үшінші (жоғары кедергілі) жағдай белгіленген.

 

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

 () – МП-ды бастапқы жағдайына қайтару кірісі. Бұл сигнал қорек көзі қосылған кезде өздігінен қалыптасады, оның кез келген уақытта оператордың командасы арқылы да түсуі мүмкін. Оның әрекетімен PC және IR регистрлері, үзіліс рұқсаты мен желі ұсталымының құпталым триггерлері және т.б. тазартылады;

CLK – микропроцессорлық жүйеге жіберілетін синхроимпульстер шығысы. Бұл импульстердің фазасы Ф2 импульстерінің фазасындай, ал жиілігі микропроцессордың x1 және x2 шықпаларындағы жиіліктен екі есе кем болады;

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

INTR (Interrupt Request) – векторлық үзіліс сұранысының кірісі. Бағдарлама арқылы үзіліске рұқсат берілген жағдайда, бұл сигнал  стробын тудырады. Бұл сұранысқа сәйкес шақырылатын қосалқы бағдарламаның адресін сыртқы құрылғы жібереді. Тазартылым кезінде сұраныс сигналы қабылданбайды (үзіліске тыйым салынған);

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

RST 5,5; RST 6,5; RST 7,5 – RSTn (n = 5,5; 6,5; 7,5) түріндегі радиалды үзіліс сұранысының кірістері. Бұл сұраныстарға сәйкесті қызмет атқаратын қосалқы бағдарламалардың бастапқы адресі – 8n. Кіріс мәртебелері бекітілген, ең жоғарғы мәртебе RST 7,5 кірісінде. Бұл сұраныс тобының мәртебесі INTR сұранысының мәртебесінен жоғары болады. Бұл сұраныстардың әрбіреуіне және бір-біріне тәуелсіз тыйым салуға болады;

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

SID, SOD (Serial Input Data, Serial Output Data) – деректерді тізбекті жіберу кірісі мен шығысы. RIM командасымен кіріс биті аккумулятордың жоғарғы разрядына енгізіледі, SIM командасымен шығыс биті осы разрядтан шығарылады;

HOLD – желіні иелену сұранысы. Оны сыртқы құрылғы қалыптастырады;

HLDA (Hold Acknowledge) – желінің иеленілуін құптау сигналы. Ол HOLD сигналына жауап ретінде кезекті машина циклінің аяғында қалыптастырылады да, МП-дың жүйе желісінен ажыратылғандығын құптайды. Бұл кезде желілер мен басқарушы , , IO/M және ALE сигналдарының жолдары үшінші жағдайға ауыстырылады.

7.2.3    Микропроцессор жұмысының ұйымдастырылуы.

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

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

7.2 к е с т е

Регистрлер

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

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 тактілері болады, кейде такт саны одан көбірек болуы мүмкін, бірақ оқу мен жазуға үш такт ғана қажет.

7.2.4    Үзіліс жүйесі.

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

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

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

Микропроцессордың үзілістерге байланысты кірістері: 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 үзілісі өзге үзілістерді жібергізбейді, бірақ бұрынғы түскен сұраныстың рұқсаттық жағдайын сақтайды.

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

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

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

SIM командасының орындалуынан бұрын аккумуляторда басқару сөзі қалыптастырылады (7.3-кестені қараңыз).

7.3 к е с т е

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 деректерін микропроцессордың сәйкесті шығысына жіберетін сигнал;

R7,5 сәйкесті RST7,5 кірісін тазартады (осы кірістегі сигналдың динамикалы басқарылымды триггерге қабылданатындығын еске түсіреміз);

MSE (Mask Set Enable) – 2...0 биттерінің әрекетін жандандырушы сигнал;

М7,5...М5,5 биттерінің бірлік мәні оларға сәйкесті RST7,5...RST5,5 сұраныстарын жасырады, яғни оларға тыйым салады.

 

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

 

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

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

 

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

 

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

SID – тізбекті енгізілетін деректер;

I7,5; I6,5; I5,5 – RST7.5, RST6.5 және RST5.5 шықпаларындағы логикалық деңгейлер;

IE – үзіліске рұқсат сигналы;

М7,5...М 5,5 – маскалардың логикалық деңгейлері.

7.4 к е с т е

7

6

5

4

3

2

1

0

SID

I7,5

I6,5

I5,5

IE

M7,5

M6,5

M5,5

 

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

7.3 Intel 8085 микропроцессорының командалар жүйесі

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

7.5 к е с т е

Мнемокод

Код

Тулар

Байт

Такт

Цикл

Түсініктеме

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

DCX rp

00PP1011

1

6

1

rp ← (rp) – 1

7.5 к е с т е (жалғасы)

1

2

3

4

5

6

7

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)

 

7.5 к е с т е (соңы)

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) кодтары операндтардың адресінің көрсетілуі қажет жағдайда, сегізразрядты екілік сан түрінде, өзге жағдайларда 16-лық сан түрінде берілген. Регистрлердің жалпылама адрестерінің разрядтары дерек көзі үшін S (Data Source) символдарымен, деректің жеткізілетін жері D (Data Destination) символдарымен, регистр жұптары P (Pair) символдарымен бейнеленген. Бұл символдардың орнына командағы қатысты регистрлер мен регистр жұптарының нақтылы команданың коды алынады. Шартты ауыстыру командаларының кодындағы шарттардың коды C (Condition) символдарымен белгіленген, олардың түрлері мен белгілемелері 7.6-кестеде келтірілген.

7.6 К е с т е

ССС

Мнемокод (cond)

Шарттар

000

NZ

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

001

Z

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

010

NC

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

011

C

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

100

PO

Тақтық

101

PE

Жұптық

110

P

Плюс

111

M

Минус

 

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

7.7 к е с т е

S

Z

0

AC

0

P

1

C

 

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

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

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

7.4 Сілтеу тәсілдері

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

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

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

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

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

Суреттелген сілтеу тәсілдерінен күрделірек келетін сілтеу тәсілдері де (индексті сілтеу, қатынасты сілтеу және т.б.) бар, бірақ олар Intel 8085 микропроцессоры сияқты қарапайым микропроцессорларда пайдаланылмайды.

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

8 Микропроцессорлық жүйелерді бағдарлау

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

Ассемблер тіліндегі бағдарлама нақтылы тәртіппен жазылады (8.1 суретті қараңыз).

 

{Белгі:}

Мнемокод

{Операнд(тар)}

; {Түсініктеме}

8.1 сурет

Көрнекі жақшаларда болуы да, болмауы да мүмкін элементтер келтірілген. Белгі, мнемокод және операндтар бос орын арқылы ажыратылады.

Белгі – команданың символды адресі. Белгілер ауыстыру арқылы баратын командаларда ғана қойылады. Ауыстыру немесе қосалқы бағдарламаларды шақыру командаларында белгі аталымы операнд ретінде пайдаланылады.

Мнемокод – команданың ассемблер тіліндегі жазылымы. Мнемокод ретінде команда қызметінің ағылшын тіліндегі мағынасының қысқартылымы пайдаланылады: ADD (ADDition), SUB (SUBtraction), XCHG (eXCHanGe).

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

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

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

Құрылған бағдарламалардың жұмысқа жарамдылығын, яғни оларда орфографиялық және іскерлік қателіктердің жоқтығын сәйкесті бағдарламалы симулятор (8085 Simulator IDE) арқылы тексеруге болады. Ол үшін, әрине, сіз компьютеріңізге осы симуляторды орнатып, оны ұсынылып отырған бағдарламаларды зерттеуге толыққанды пайдаланғаныңыз дұрыс.

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

8.1 Дерек таратылымдары

Бұл тарауда ұсынылған бағдарлама әртүрлі (мөлшері мен сілтеу тәсіліне қарай) дерек тарату командаларының орындалуы кезіндегі іс-әрекеттермен таныстыруға арналған. Бірнеше блок түрінде құрылған, бұл бағдарламада (Transfers) процессор мен жады арасындағы дерек таратылымдары жүзеге асырылады. Бірінші блокта (Single Writing) жадыға жеке дерек жіберілімі тура сілтемелі команда арқылы жүзеге асырылады. Екінші блокта (Serial Writing-1) деректер массивінің (арифметикалық прогрессия мүшелері түріндегі) жадыға жанама сілтеу командасымен жіберілуі жүзеге асырылады. Деректер массивін жіберудің одан ұтымдырақ тәсілі келесі блокта (Single Writing-2) келтірілген. Келесі үш блокта (Data Access, Data Access and Conversion, Single Writing) жадының бір бөлігіндегі деректердің оның екінші бөлігіне жіберілуі алдыңғы блокта пайдаланылған командалар сияқты командалармен (кері тәртіппен) жүзеге асырылады.

8.1 сурет

Симулятормен жұмыс істеу келесі тәртіппен жүзеге асырылады:

-      симулятор бағдарламасын  әлпеттемесімен ашыңыз да, ашылған симулятор терезесінде (8.1 суретті қараңыз) Tools/Assembler таңдап, кезекті Assembler терезесінде File/New таңдаңыз;

-      бағыттаманы Tab түймесімен ығыстырып, төмендегі бағдарламаның бірінші командасын енгізіңіз де, Enter түймесін басыңыз. Осы сияқты бағдарламаның келесі командаларын да енгізіңіз. Белгілер жол басында жазылады.

-      енгізілген бағдарламаны Transfers (Жіберілімдер) аталымымен сақтаңыз (File/Save As). Нәтижесінде asm кеңейтілімді файл құрылады. Сосын, Assembler терезесінде Tools/Assemble&Load таңдаңыз. Нәтижесінде hex, lst, obj кеңейтілімді файлдар құрылады;

-      симулятордың негізгі терезесінде Tools/Breakpoints Manager таңдап, әрбір блоктан кейін, яғни NOP командасы тұрған жолдарға (6.2 суретті қараңыз), тексерім нүктелерін қойыңыз;

-      симулятордың негізгі терезесінде модельдеу жылдамдығын (мысалы, Rate/Normal) таңдап, симуляторды іске қосыңыз (Simulation/Start);

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

-      модельдеу жылдамдығын (мысалы, Rate/...) таңдау арқылы симулятор жұмысын жалғастырыңыз.

Бағдарлама мәтіні төменде келтірілген:

 

;Transfers

;=================

;Single Writing

          mvi A,0FH

          sta 00D0H

;-----------------------------

;Serial Writing-1

          mvi C,07h

          lxi D,00D0h

          mvi A,00h

T0      adi 13h

          inx D

          stax D

          dcr C

          jnz T0

          xchg

;-----------------------------

;Serial Writing-2

          mvi C,08h

T1      adi 09h

          inx H

          mov M,A

          dcr C

          jnz T1

;-----------------------------

;Data Access and Writing

          lxi D,00EFh

          mvi C,08h

T2      mov A,M

          stax D

          dcx H

          dcx D

          dcr C

          jnz T2

;-----------------------------

;Conversion and Writing

          mvi C,07h

T3      mov A,M

          rlc

          xchg

          mov M,A

          dcx H

          dcx D

          xchg

          dcr C

          jnz T3

;-----------------------------

;Single Access

;and Writing

          lda 00D0h

          sta 00E0h

;-----------------------------

          hlt

 

8.2 Бірбайтты арифметика

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

Бағдарламаның Data Array блогында, арифметикалық прогрессия мүшелері түріндегі деректер қалыптастырылып, олардың жадыда сақталуы жүзеге асырылады. Cumulative Summation блогында бағдарламаның алдыңғы блогында жадыға жазылған арифметикалық прогрессия мүшелерінің тізбекті қосылуы жүзеге асырылады. Алынған нәтиженің (B және A регистрлеріндегі) ақиқаттығына, арифметикалық прогрессия мүшелерінің қосындысын  формуласы арқылы есептеп, көз жеткізуге болады. Retention of Result блогында алынған қосынды нәтижесі жадыда сақталады.

8.2 сурет

Series Subtraction блогында алдында алынған қосындыдан арифметикалық прогрессия мүшелерінің мәндері тізбелеп алынады, нәтижесінде B және A регистрлері тазартылу керек.

Екі қосалқы блок түрінде (Data и Cumulative Summation-A) құрылған Alternative of the Single-Byte Summation блогында арифметикалық прогрессия мүшелерінің мәнін қалыптастыруға қажетті деректер перифериялық енгізу/шығару құрылғысы (Peripheral Devices) арқылы енгізіледі (8.2 суретті қараңыз):

-      арифметикалық прогрессия мүшелерінің мәнін қалыптастыруға қажетті бастапқы сан (Initial Operand);

-      арифметикалық прогрессия мүшелерінің саны (Data Quantity);

-      арифметикалық прогрессия мүшелерінің өсірілім қадамы (Step).

Қосынды нәтижесі де енгізу/шығару құрылғысы арқылы көрсетіледі.

 

Бағдарлама мәтіні төменде келтірілген:

 

;Single-Byte Arithmetic

;=================

;Data

          lxi H,00E0h

          mvi C,0Ah

          mvi A,00h

          mov M,C

SD     inx H

          adi 15h

          mov M,A

          dcr C

          jnz SD

;-----------------------------

;Cumulative Summation

;Sum=((2a1+(n-1)d)/2)n

;a1-first operand,

;n-quantity, d-step,

          lxi H,00E0h

          mvi A,00h

          mov B,A

          mov C,M

C1     inx H

          add M

          jnc C2

          inr B

C2     dcr C

          jnz C1

;-----------------------------

;Retention of Result

          inx H

          mov M,A

          inx H

          mov M,B

;-----------------------------

;Series Subtraction

          lxi H,00E0h

          mov C,M

S1      inx H

          sub M         

          jnc S2         

          dcr B

S2      dcr C

          jnz S1

          nop

;=================

;Alternative Summation

;=================

          ;Data

          in 01h         

          mov E,A

          in 01h         

          mov C,A

          in 02h         

          mov D,A

          lxi H,0000h

;-----------------------------

;Cumulative

;Summation-A

A1     mov A,E

          add D

          mov E,A

          mov A,L

          add E

          jnc A2

          inr H

A2     mov L,A

          dcr C

          jnz A1

          mov A,L

          out 03H

          mov A,H

          out 04H

;-----------------------------

          hlt

8.3 Екібайтты арифметика

Келесі бағдарлама (Double -Byte Arithmetic) екібайтты арифметикалық операциялардың орындалуының регистрлі сілтемелі (add, adc, sub, sbb) және тіке сілтемелі (adi, aci, sui, sbi) командалармен жүзеге асырылуы кезіндегі іс-әрекеттермен таныстыруға арналған.

Бағдарламаның Data Array блогында арифметикалық прогрессия мүшелері түріндегі екібайтты деректер қалыптастырылып, олардың жадыда сақталуы жүзеге асырылады. Cumulative Summation блогында бағдарламаның алдыңғы блогында жадыға жазылған арифметикалық прогрессия мүшелерінің тізбекті қосылуы жүзеге асырылады. Алынған нәтиженің (H және L регистрлеріндегі) ақиқаттығына, арифметикалық прогрессия мүшелерінің қосындысын  формуласы арқылы есептеп, көз жеткізуге болады. Addition with Direct Addressing блогында тіке сілтемелі командалар арқылы жеке қосу операциясы жүргізіледі. Сосын, алынған қосынды нәтижесі жадыда сақталады (Retention of Result блогында).

Бұл бағдарламаның мәтіні төменде келтірілген:

 

;Double-Byte Arithmetic

;=================

          ;Data Array

          lxi H,00E0h

          mvi C,0Ah

          mov M,C

          mvi A,00h

          mvi B,12h

DD    adi 15h

          inr B

          inx H

          mov M,A

          inx H

          mov M,B

          dcr C

          jnz DD

;-----------------------------

;Cumulative Summation

          lxi H,00E0h

          lxi D,0000h

          mov B,M

          mov C,B

CS     mov A,E

          inx H

          add M

          mov E,A

          mov A,D

          inx H

          adc M         

          mov D,A

          dcr B

          jnz CS

;-----------------------------

; Direct Summation

          mov A,E

          adi 3Dh

          mov E,A

          mov A,D

          aci 5Ah

          mov D,A

;-----------------------------

;Retention of the Result

          inx H

          mov M,E

          inx H

          mov M,D

;-----------------------------

;Series Subtraction

          lxi H,00E0h

S0      mov A,E

          inx H

          sub M         

          mov E,A

          mov A,D

          inx H

          sbb M         

          mov D,A

          dcr C

          jnz S0         

;-----------------------------

; Direct Subtraction

          mov A,E

          sui 3Dh

          mov E,A

          mov A,D

          inx H

          sbi 5Ah

          mov D,A

;=================

;Alternative Summation

          lda 00E0h

          mov C,A

          lxi SP,00E1h

          lxi H,0000h

AS     pop D         

          dad D

          dcr C

          jnz AS

          lxi B,5A3Dh

          dad B

;-----------------------------

          hlt

Series Subtraction және Subtraction with Direct Addressing блоктарында жадыдағы сандардың мәндері мен тікелей сандарға тізбелі алу операциялары жүргізіледі, нәтижесінде B және A регистрлері тазартылу керек.

Alternative of the Double-Byte Summation блогында екібайтты сандарды тізбелі қосу операцияларын орындаудың өзгеше варианты (стектік pop командасымен және екібайтты dad командасымен) жүзеге асырылады.

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

8.4 Көбейту бағдарламасы

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

 

          7291

        х

          3054

--------------------

        29164   4

      36455     5

                     0

  21873         3

--------------------

 22266714

 

          7291

        х

          3054

           ------------------

        21873         3

                           0

            36455     5

              29164   4

           --------------------

        22266714

 

  00007291

х

          3054

   ------------------

  00000000

  00000000    ←

  00021873      3

   ------------------

  00021873

  00218730    ←

  02187300    ←

  00036455      5

   ------------------

  02223755

   ------------------

  22237550    ←

  00029164      4

   ------------------

  22266714

 

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

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

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

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

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

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

-      әрбір жеке көбейту алдында осы мезетке дейін жиналған нәтиже (HL жұбындағы) солға ығыстырылады;

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

-      А регистрінен шығарылған көбейткіштің кезекті разрядының мәні бір болғанда, HL жұбына DE жұбы қосылады;

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

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

Бағдарламада (Multiplication) қарастырылған көбейту алгоритмінің жүзеге асырылуы келтірілген:

 

          ;Multiplication

;================

          ;Data

          in 01H

          mov E,A

          mvi D,00h

          in 02h

          lxi H,0000h

          mvi C,08h

;---------------------------

          ;Implementation

M1:    dad H

          rlc

          jnc M2

          dad D

M2:    dcr C

          jnz M1

          mov A,L

          out 03H

          mov A,H

          out 04H

;---------------------------

          hlt

8.5 Қосалқы бағдарламалармен жұмыс ұйымдастырылуы

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

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

Қосалқы бағдарламалардың құрылымымен және стекпен жұмыс ұйымдастырылу тәртібін түсіну үшін, y = a1*a2 + a3*a4 +  өрнегі бойынша есептеу бағдарламасын (Stack) қарастырамыз.

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

Mul1, Mul2 и Sum(ai,n,d) блоктарында көбейту және қосу операцияларын орындауға қажетті деректер енгізіледі де, одан кейін сәйкесті қосалқы бағдарламалар шақырылады. Кезекті көбейту және қосу нәтижелерінің жадыда сақталуы мен олардың периферия құрылғысына шығарылуы қосалқы Per бағдарламасында жүзеге асырылады. Ақырғы нәтиже, яғни алдыңғы кезеңде алынған жеке нәтижелердің қосындысы Total Sum блогында анықталады.

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

8.3 сурет

Sum=a1*a2+a3*a4+sum(ai,n,d) өрнегі бойынша есептеу бағдарламасының мәтіні төменде келтірілген:

;Sum=a1*a2+a3*a4+sum

;================

          ;Preset

lxi SP,0FFh

          mvi B,0A0h

nop

;----------------------------

          ;Mul1=a1*a2

          in 01h         

          mov E,A

          in 02h         

          call Mul

          push H

          call Per

          nop

;----------------------------

          ;Mul2=a3*a4

          in 01h         

          mov E,A

          in 02h         

          call Mul

          push H

          call Per

          nop

;----------------------------

          ;Sum(ai,n,d)

          in 01h         

          mov C,A

          in 02h         

          mov D,A

          in 01h         

          mov D,A

          lxi H,0000h

          call Sum

          call Per

          nop

;----------------------------

          ;Total Sum

          pop D

          dad D

          pop D

          dad D

          call Per

;----------------------------

          hlt

;================

Mul    ;subroutine

          mvi D,00h

          lxi H,0000h

          mvi C,08h

M1     dad H

          rlc

          jnc M2

          dad D

M2     dcr C

          jnz M1

          ret

;================

Sum   ;subroutine

CS3   mov A,E

          add D

          mov E,A

          mov A,L

          add E

          jnc CS4

          inr H

CS4   mov L,A

          dcr C

          jnz CS3

          ret

;================

Per     ;subroutine

          mov C,B

          mvi B,00h

          mov A,L

          out 03h

          stax B

          inr C

          mov A,H

          out 04h

          stax B

          inr C

          mov B,C

          ret

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

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

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

Осы тараудағы материал микропроцессорлық жүйенің жалпылама құрылым принциптерін жүзеге асыру мүмкіндіктерін, ерекше командалар жүйесімен қамтылған, осындай жүйенің моделін Electronics Workbench модельдеу жүйесінде [2] құру арқылы қарастыруға арналған.

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

9.1 MP4M моделінің құрылымы

Құрамына микропроцессор (MP4M), дерек енгізу құрылғысы (In), жады жүйесі (Mem) және жүйенің жұмыс режимін таңдау блогы енгізілген, 4-разрядты микропроцессорлық жүйенің моделі 9.1 суретте келтірілген.

 9.1 сурет

Микропроцессор құрамына келесі блоктар кіреді (9.2 суретті қараңыз):

-      арнайы қызметтік регистрлер жинағы (RGs, Registers);

-      арифметикалық-логикалық құрылғы (ALU, Arithmetic-Logic Unit);

-      команда регистрі (BUF, Buffer Register);

-      команда дешифраторы (DC_16, Decoder 16-bit);

-      таймер (CLK, Clock);

-      микробағдарламалық құрылғы (Combi, Combinational Circuit.

9.2 сурет

9.2 MP4M моделінің қызмет буындары

Әрбіреуі нақтылы қызмет атқаруға арналған регистрлер жинағының (RGs) құрамына келесі регистрлер кіреді (9.3 суретті қараңыз):

9.3 сурет

-      A регистрі аккумулятор (Accumulator) қызметін атқарады, онда арифметикалық және логикалық операцияларға қатысты операндтардың біреуі немесе операциялардың орындалу нәтижесі сақталады. Аккумуляторға дерек жадыдан (LD A командасы) немесе ALU-дан (кезекті арифметикалық немесе логикалық операция орындалғаннан кейін) енгізіледі;

-      A1 регистрі айналымды қосылымдардың ұйымдастырылуы кезінде туатын тасылымдарды жинауға арналған. Ол бағдарламаның іске қосылуы кезінде және аккумуляторға (A регистріне) LD A командасымен дерек енгізілуі кезінде тазартылады. Ондағы дерек Space түймесін қысқа уақытқа басу арқылы аккумулятор көрсеткіштеріне шығарылады;

-      B регистрі жады мен микропроцессордың ішкі регистрлері арасындағы дерек таратылымы командаларының (LD C, LD IP, LD SP, LD A командалары) адрес регистрінің қызметін атқарады. LD C, LD SP, LD A командалары орындалғаннан кейін B регистрінің құрамы бірге ұлғайтылады. Бұл регистрге дерек LD B командасымен жүзеге асырылады да, оған адрестік регистр ретінде C регистрі пайдаланылады. B регистрі бағдарламаның іске қосылымында тазартылады;

-      C регистрі арифметикалық және логикалық операцияларға қатысты екінші операндтың адрес регистрінің қызметін атқарады. Сәйкесті командалар орындалғаннан кейін С регистріндегі сан ұлғайтылады, бірақ оның бағытын (B регистрінен ерекше) өзгертуге болады, ол I түймесі арқылы қойылады және оның жағдайы (I) - Dcr/Inr көрсеткішінде көрсетіледі: I=0 кезінде – тура бағытта (Increment), ал I=1 кезінде – теріс бағытта (Decrement). Ондағы санды өзгермеген түрінде де қалдыруға болады, бұндай жағдай туралы жүйенің жұмыс режимдерін суреттеу кезінде айтылады. Бұл регистрге дерек LD C командасымен жүзеге асырылады. Бағдарламаның іске қосылуы кезінде бұл регистр 1111 жағдайына қойылады (XOR элементтері арқылы). Кез келген бағдарламаның құрамында дерек тарату командаларының болатындығынан, бағдарламаның бірінші командасы B регистріне дерек енгізу командасы (LD B) болу керек. C регистрінің сұлбасындағы  төрткірісті OR элементі регистрдің нөлдік жағдайын анықтауға арналған, ол арқылы айналымды операциялардың ұйымдастырылуы кезінде шартты ауысу жүзеге асырылады;

-      SP регистрі стек көрсеткішінің (Stack Pointer) қызметін атқарады, яғни PUSH және POP командалуы кезінде адрес регистрінің рөлінде болады:  ондағы адрес PUSH командасының орындалар алдында кемітіледі (Predecrement) және POP командасы орындалғаннан кейін ұлғайтылады (Postincrement). Бұл регистрге дерек енгізу LD SP командасымен жүзеге асырылады. Бағдарламаның іске қосылуы кезінде бұл регистр 1111 жағдайына қойылады;

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

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

Арифметикалық-логикалық құрылғы (ALU, Arithmetic-Logic Unit) арифметикалық және логикалық операциялардың орындалуын жүзеге асырады. Оның құрамында сәйкесті операциялардың орындалуын жүзеге асырушы бөліктемелер (sum, not, and, or, xor) және операндтар мен орындалған операцияның нәтижесін уақытша сақтауға арналған буферлік регистрлер болады.

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

Таймер (CLK) командалардың орындалуына қатысты құрылғыларға жіберілетін басқару сигналдарының уақыттық таралымын анықтайды.

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

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

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

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

9.3 MP4M моделінің жұмыс режимдері мен командалар жүйесі

Жүйе бірнеше режимде істей алады, олар режим таңдау блогындағы (Regime) түймелердің жағдайымен анықталады. Олардың жағдайы сәйкесті көрсеткіштерде суреттеледі. Осы режимдерді суреттелік.

 Енгізу құрылғысынан жады жүйесіне ақпарат енгізу M=1 кезінде жүргізіледі. Егер бұл кезде P=1 болса, онда ақпарат – бағдарлама жадысына (бағдарлама коды F тоқтату командасымен аяқталу керек), ал P=0 кезінде дерек жадысына енгізіледі. Жады құрамын тексеру Space түймесін қысқа уақытқа басып, жады ұяшығының адресін өзгерту арқылы жүргізіледі. P түймесінің жағдайы өзгертілгенде жады адресі тазартылады.

Бағдарламаны іске қосу M түймесін M=0 жағдайына ауыстыру арқылы жүзеге асырылады. Егер бұл кезде P=1 болса, онда арифметикалық және логикалық командалардың орындалуы кезінде C регистрінің жағдайы өзгертіледі (I мәніне сәйкесті), ал P=0 кезінде оның жағдайы өзгермеген жағдайда қалады.

S=0 кезінде ADS және ACS командалары арқылы – қосу операциялары, ал  S=1 – алу операциялары орындалады.

V=0 кезінде AND командасы арқылы екі операнд арасында – қалыпты логикалық көбейту операциясы, ал V=1 кезінде деректің нақтылы разрядындағы бірлік битті табуға арналған биттік операция жүзеге асырылады. Бұл биттік операцияның орындалуы үшін аккумуляторға қажетті разрядында ғана бір тұрған санауыш енгізілу керек. Суреттелген биттік операция сыртқы құрылғыдан келетін сұраныс сигналын немесе іс жүзіндегі қолданба жүйелердегі құптау сигналын тануды елестетеді.

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

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

9.1 к е с т е

Мнемо-ника

Код

Операциялар

Hex

V=0

P

S

V=1; I=1

LD B

0

B←[(C)];  C←(C)+1

 

 

 

LD C

1

C←[(B)];  B←(B)+1

 

 

 

LD IP

2

IP←[(B)]

 

 

 

LD SP

3

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

 

 

 

LD A

4

A←[(B)];  B←(B)+1

 

 

 

ST

5

[(B)]←(A);B←(B)+1

 

 

 

INR

6

A←(A)+1

 

 

 

NOT

7

A←

 

 

 

ADS

8

A←(A)±[(C)]; TC

P=1: C←var(I)

P=0: C = invar

S=1: SUB (–)

S=0:ADD,ADC (+)

Zc = 0:       IP←IP+1

ACS

9

A←(A)±[(C)±TC; TC

 

 

 

AND

A

A←(A)۸[(C)]

 

 

Zc۸Za=0:  IP←IP+1

OR

B

A←(A)۷[(C)]

 

 

 

XOR

C

A←(A)[(C)]

 

 

 

PUSH

D

SP←(SP)–1; (SP)]←(A)

 

 

 

POP

E

A←(SP)]; SP←(SP)+1

 

 

 

HLT

F

IP = invar

 

 

 

 

 

 

 

 

9.2 к е с т е

Кілттер мен индика-

торлар

M/R = 1

M/R → 0: Running: A,B,IP ← 0; C,SP ← F

P=1:   C←var(I);               P=0:     C = invar

S = 0

P/D = 1:

MemPr←IN

P/D = 0:

MemD←IN

Addition         (+)

A ← (A) + [(C)]

S = 1

Subtraction     (–)

A ← (A) – [(C)]

I = 1

PostDecrement  C←(C) –1

C←(C)–1; (C)=0: Zc ← 0

I = 0

PostIncrement   C←(C) +1

C ← (C) + 1

V = 0

Logical Operation

A ← (A) {۸ / ۷ / } [(C)]

V = 1

Verifying of Byte

(A)=0010…bi = 1: Za ← 0

 

9.4 MP4M моделінің жұмысын ұйымдастыру мысалдары

Модельдің қызмет мүмкіндіктерін сипаттау мақсатында оның жұмысын ұйымдастырушы екі бағдарламаның суреттемесін келтірелік. Төменде келтірілген бағдарлама қарастырылушы модельдің жады жүйесінде (келтірілген бағдарламада – 1-5 ұяшықтарда) орналастырылған деректердің қосындысын есептеу жұмысын атқарады.

 

Адрес

Команда

Код

Адрес

Дерек

Адрес

Дерек

0

LD B

0

0

1

LD C

1

1

A

7

5

2

ADS

8

2

B

8

2

3

LD IP

2

3

C

4

HLT

F

4

D

 

 

 

 

 

5

E

F

7

 

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

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

 

Адрес

Команда

Код

Адрес

Дерек

Адрес

Дерек

0

LD B

0

0

6

1

LD C

1

1

8

7

5

2

LD A

4

2

D

8

4

3

AND

A

3

A

9

3

4

LD IP

2

4

9

5

HLT

F

5

B

F

7

 

Қажетті сан табылғанда, бағдарлама оны Bit индикаторын жыпылықтану арқылы хабарлайды да, жұмысын бітіреді, ал табылған сан (D саны) A1 регистрінің индикаторларында көрсетіледі.

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

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


 

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

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

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

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

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

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

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

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

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

9.    Шанаев О.Т. Electronic Workbench моделдеу жүйесі / қазақ және орыс тілдерінде. – Алматы: 2003.

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

11.           Шанаев О.Т.  Микропроцессорлық  жүйелер:  Оқу  құралы / Алматы: АЭжБИ, 2009.

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

 


Мазмұны

Кіріспе  3

1 Цифрлық техниканың арифметикалық және логикалық негіздері 6

1.1 Екілік кодтар  6

1.1.1 Ондық сандардың екілік кодтары. 7

1.1.2 Екілік сандармен арифметикалық операциялар. 9

1.2 Логикалық функциялар  10

1.2.1 Негізгі функциялар. 10

1.2.2 Әмбебап функциялар. 11

1.2.3 Теңдік және теңсіздік функциялары. 11

1.3 Логика алгебрасының заңдары мен заңдылықтары   12

1.4 Күрделі функциялар  12

1.4.1 Күрделі функциялардың көрсетілім түрлері. 12

1.4.2 Логикалық функцияларды қарапайым түрге келтіру. 14

2 Цифрлық жүйелердің құрылым негіздері 16

2.1 Логикалық элементтер  16

2.2 Цифрлық құрылғылардың шығыс буындары   18

3 Қиыстырма құрылғылар  19

3.1 Қиыстырма құрылғыларды құру тәртібі 19

3.2 Қалыпты қиыстырма құрылғылар  21

3.2.1 Шифраторлар. 21

3.2.2 Дешифраторлар. 24

3.2.3 Мультиплексорлар. 26

3.2.4 Демультиплексорлар. 27

3.2.5 Қосу құрылғылары. 28

4 Тізбектеме құрылғылар  29

4.1 Триггерлер  30

4.1.1 Асинхронды RS-триггерлер. 30

4.1.2 Синхронды триггерлер. 33

4.2 Регистрлер    36

4.3 Санауыштар  38

5 Жады құрылғылары   39

5.1 Жады құрылғыларының сипаттамалары   39

5.2 RAM түріндегі жады құрылғыларының құрылымдары   41

5.3 ROM түріндегі жады құрылғыларының элементтері 43

6 Цифрлық құрылғылардың моделдері 46

6.1 Динамикалы дерек көзі 46

6.2 Қосу құрылғысы   49

6.3 Алу-қосу құрылғысы   51

6.4 Тізбелі қосу құрылғысы   52

6.5 Автоматты режимдегі тізбелі қосу құрылғысы   54

7 Микропроцессорлар және микропроцессорлық жүйелер  55

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

7.2 Intel 8085 микропроцессоры   57

7.2.1 Микропроцессордың құрылымы. 57

7.2.2 Микропроцессордың шықпалары мен сигналдары. 60

7.2.3 Микропроцессор жұмысының ұйымдастырылуы. 62

7.2.4 Үзіліс жүйесі. 64

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

7.3 Intel 8085 микропроцессорының командалар жүйесі 66

7.4 Сілтеу тәсілдері 70

8 Микропроцессорлық жүйелерді бағдарлау  71

8.1 Дерек таратылымдары   72

8.2 Бірбайтты арифметика  74

8.3 Екібайтты арифметика  75

8.4 Көбейту бағдарламасы   77

8.5 Қосалқы бағдарламалармен жұмыс ұйымдастырылуы   79

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

9.1 MP4M моделінің құрылымы   82

9.2 MP4M моделінің қызмет буындары   83

9.3 MP4M моделінің жұмыс режимдері мен командалар жүйесі 85

9.4 MP4M моделінің жұмысын ұйымдастыру мысалдары   87

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

 

Орынғали Төлегенович Шанаев
ЦИФРЛЫҚ ҚҰРЫЛҒЫЛАРДЫҢ СХЕМОТЕХНИКАСЫ
Оқу құралы

 

Редактор  Б.С. Қасымжанова

2013 ж. жинақ жоспар, реті 25

____.__________._____ терілуге берілді
Пішімі 60х84 1/16
№2 типографиялық қағаз
Оқу-баспа таб. 5,8. Таралымы 100 дана. Тапсырыс___ .  Бағасы 580 т.
Басуға ____________ қол қойылды

“Алматы энергетика және байланыс университеті”
коммерциялық емес акционерлік қоғамының
көшірме-көбейткіш бюросы
050013, Алматы, Байтұрсынұлы көшесі, 126

[1] “Тігілім” деген термин тұрақты жадының құрамын суреттеуге пайдаланылатын, қалыптасқан дәстүрлі ұғым.