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

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

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

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

 

 

О.Т. Шанаев

ЦИФРЛЫҚ ЖҮЙЕЛЕР. МОДЕЛЬДЕУ

Оқу құралы

 

 

Алматы 2013

ӘОЖ 681.3.06

ББК 32.973.202 Я73

Ш22 Цифрлық жүйелер. Модельдеу;

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

 

ISBN 978-601-7327-44-6

 

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

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

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

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

 

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

 

ББК 32.973.202 Я73

 

ПІКІР БЕРУШІЛЕР: 

ҚазҰТУ, физ-мат. ғыл. докт., профессор Т. Тусеев

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

        

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

 

ISBN 978-601-7327-44-6

 

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

Кіріспе

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

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

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

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

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

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

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

Оқу құралының бесінші тарауы микропроцессорлық жүйелердің жалпы құрылым принциптерінің іс жүзінде жүзеге асырылу мүмкіндігін суреттеу мақсатында бағдарламалы 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)

де Морган заңы

Заңдылықтар

X0 = X

X0 = 0

X1 = 1

X1 = X

XX = X

XX = X

X = 1

X = 0

X1X1X0 = X1

X1(X1X0) = X1

X1X0 = X1X0

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-суретте бұрын қарастырылған қарапайым функцияларды жүзеге асырушы сәйкесті логикалық элементтердің шартты сызба белгілемелері келтірілген.

 

NOT

OR

AND

NOR

NAND

XOR

XNOR

2.1 сурет

Логикалық элементтердің тезәрекеттілігі олардың бір жағдайынан екінші жағдайына ауысу жылдамдығымен анықталады. 2.2-суретте ЕМЕС (NOT) элементі арқылы өзгермелі сигналдардың өту нәтижесі көрсетілген.

2.2 сурет

Бұнда шығыс сигналының өзгерісінің кіріс сигналының өзгерісінен нақтылы уақытқа кідіретіндігі айқын көрініп тұр. Біздің Electronics Workbench модельдеу жүйесінде жүргізген өлшеміміз бойынша ондағы ЕМЕС элементіндегі сигнал кідірісі 10 ns шамасында болады. Әрине, статикалық (яғни белгілі уақыт аралығында тиянақты мәнін сақтайтын) сигналдармен істейтін құрылғылардың жұмысына бұндай кідірістің байқарлықтай әсері болмайды. Бірақ кейбір жағдайларда (мысалы, тізбектеме құрылғыларда) бұндай кідірістің құрылғының жұмысына байқарлықтай әсер етуі мүмкін. Кідіріс әрекетін суреттеу мақсатында екі ЕМЕС элементінің кірістеріне қатар берілген екі сигналдың осы элементтер арқылы алынған логикалық қосындысын қарастыралық (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            Қиыстырма құрылғылар

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

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

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

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

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

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

Құрылғыны құру тәртібінің бастапқы үш кезеңі бұрын (1.4-тарауда) қарастырылған болатын, сондықтан сонда (1.7-кестедегі деректер негізінде) алынған өрнек негізінде негізгі элементтер жинағының элементтері (ЕМЕС, НЕМЕСЕ, ЖӘНЕ) арқылы құрылғының сұлбасын құрамыз (2.6, a-суретті қараңыз).

 

a

b

2.6 сурет

Көптеген жағдайда құрылғының сұлбасын ЖӘНЕ-ЕМЕС элементтері-нің негізінде құру қажет болады. Бұндай жағдайда өрнек де Морган заңын пайдалану арқылы түрлендіріледі (4-кезең):

2.6, b-суретте құрылғының осы өрнек арқылы құрылған сұлбасы келті-рілген.

2.3            Цифрлық жүйелердің қалыпты қиыстырма құрылғылары

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

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

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

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

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

 

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

;

;

;

.

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

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

          

   a

b

c

2.7 сурет

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

2.8 сурет

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

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

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

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

 

2.2 к е с т е

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

 

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

;

;

.

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

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

          

   a

b

c

2.9 сурет

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

.

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

2.10 сурет

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

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

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

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

 

a

b

2.11 сурет

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

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

2.3 к е с т е

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

 

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

a

b

2.12 сурет

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

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

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

a

b

2.13 сурет

2.3.5     Қосуыштар.

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

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

2.4 к е с т е

A

B

S

C

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

 

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

.

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

a

b

2.14 сурет

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

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

a

b

c

2.15 сурет

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

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

2.4.1     Триггерлер.

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

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

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

a

b

2.16 сурет

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

2.5 к е с т е

 

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

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

2.6 к е с т е

R

S

Q

Q’

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

0

0

Q0

Q0

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

0

1

1

0

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

1

0

0

1

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

1

1

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

 

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

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

a

b

2.17 сурет

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

2.7 к е с т е

 

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 берілмеуі керек, сондықтан бұл жағдай триггердің тыйым салынған режимі болады.

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

2.8 к е с т е

R

S

Q

Q’

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

0

0

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

0

1

1

0

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

1

0

0

1

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

1

1

Q0

Q0

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

 

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

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

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

 

a

b

2.18 сурет

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

2.9 к е с т е

С

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-триггердің шартты сызба белгілемесі 2.18, b-суретте келтірілген.

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

a

b

2.19 сурет

2.10 к е с т е

С

D

Q

Q’

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

0

x

Q0

Q0

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

1

0

0

1

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

1

1

0

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

 

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

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

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

 

a

b

2.20 сурет

2.11 к е с т е

С

D

Q

Q’

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

0

0

1

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

1

1

0

Жазу режимі

 

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

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

2.12 к е с т е

С

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-триггердің қосылым тәртібі 2.21-суретте келтірілген.

 

a

b

2.21 сурет

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

 

a

b

2.22 сурет

2.4.2     Регистрлер.

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

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

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

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

2.23 сурет

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

-       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’ – тазарту сигналының шықпасы.

2.4.3     Санауыштар.

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

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

 

a

b

2.24 сурет

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.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) арқылы жүзеге асырылады. Олар, негізінде, үлкен цифрлық жүйелердің (мысалы, есептеу машиналарының) құрамындағы, кэш-жадыларда пайдаланылады.

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

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

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

2.25 сурет

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

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

2.26 сурет

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

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

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

2.27 сурет

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

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

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

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

2.28 сурет

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

2.29 сурет

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

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

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

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

a

b

2.30 сурет

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.1 сурет

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

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

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

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

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

IP (Instruction Pointer) –  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).

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

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

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

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

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

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

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

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

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

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

3.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 – МП-дың ішкі синхроимпульстер генераторының жұмысын қамтамасыз етуші кварцты резонатордың немесе одан басқа жиілік тиянақтаушы тізбектердің қосылатын шықпалары. МП-дың ішкі сұлбаларының жұмысын сәйкестіруші синхроимпульстер (CLK) шығару үшін генератор импульстері санау триггеріне жіберіледі де, ол қарсы фазалы екі импульстер тізбесін (Ф1 және Ф2) қалыптастырады. Олардың жиілігі (яғни микропроцессордың жұмыс жиілігі) генератор жиілігінен 2 есе төмен болады. ALE сигналы Ф1 тізбесінен бірінші тактіде бөліп алынған біреуі ретінде қалытастырылады;

 () – МП-ды бастапқы жағдайына қайтару кірісі. Бұл сигнал қорек көзі қосылған кезде өздігінен қалыптасады, оның кез келген уақытта оператордың командасы арқылы да түсуі мүмкін. Оның әрекетімен 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 сигналдарының жолдары үшінші жағдайға ауыстырылады.

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

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

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

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

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

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

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

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

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

3.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 командасының орындалғанынан кейін аккумуляторда биттерінің мағынасы 3.4-кестеде келтірілген сөз қалыптасады:

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

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

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

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

 

3.4 к е с т е

7

6

5

4

3

2

1

0

SID

I7,5

I6,5

I5,5

IE

M7,5

M6,5

M5,5

 

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

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

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

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

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

1

2

3

4

5

6

7

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

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

 

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

1

2

3

4

5

6

7

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

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)

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) символдарымен бейнеленген. Бұл символдардың орнына командағы қатысты регистрлер мен регистр жұптарының 2.2-кестеде келтірілген адресін қою арқылы нақтылы команданың коды алынады. Шартты ауыстыру командаларының кодындағы шарттардың коды C (Condition) символдарымен белгіленген, олардың түрлері мен белгілемелері 3.6-кестеде келтірілген.

3.6 К е с т е

ССС

Мнемокод (cond)

Шарттар

000

NZ

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

001

Z

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

010

NC

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

011

C

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

100

PO

Тақтық

101

PE

Жұптық

110

P

Плюс

111

M

Минус

 

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

3.7 к е с т е

S

Z

0

AC

0

P

1

C

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

{Белгі:}

Мнемокод

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

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

4.1 сурет

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

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

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

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

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

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

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

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

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

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

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

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

4.2 сурет

-        бағыттаманы 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           ;Direct Loading

         sta 00D0H            ;Direct Writing

         nop

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

         ;Serial Writing-1

         mvi C,07h             ;Data Counter

         lxi D,00D0h          ;Initial Address

         mvi A,00h            ;Cleaning

T0     adi 13h                 ;Expansion Step

         inx D                    ;Address Increment

         stax D                   ;Indirect Writing

         dcr C                    ;Monitoring of the Data Counter

         jnz T0                   ;Continue

         xchg                     ;Exchange

         nop

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

         ;Serial Writing-2

         mvi C,08h             ;Data Counter

T1     adi 09h                 ;Expansion Step

         inx H                    ;Address Increment

         mov M,A              ;Indirect Writing

         dcr C                    ;Monitoring of the Data Counter

         jnz T1                   ;Continue

         nop

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

         ;Data Access and Writing

         lxi D,00EFh          ;Initial Address

         mvi C,08h             ;Data Counter

T2     mov A,M              ;Indirect Loading

         stax D                   ;Indirect Writing

         dcx H                            ;Address Decrement

         dcx D                            ;Address Decrement

         dcr C                    ;Monitoring of the Data Counter

         jnz T2                   ;Continue

         nop

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

         ;Data Access, Conversion and Writing

         mvi C,07h             ;Data Counter

T3     mov A,M              ;Indirect Loading

         rlc;                       Left Shift

         xchg                     ;Exchange

         mov M,A              ;Indirect Writing

         dcx H                            ;Address Decrement

         dcx D                            ;Address Decrement

         xchg                     ;Exchange

         dcr C                    ;Monitoring of the Data Counter

         jnz T3                   ;Continue

         nop

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

         ;Single Access and Writing

         lda 00D0h             ;Direct Loading

         sta 00E0h              ;Direct Writing

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

         hlt                         ;Ending

 

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

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

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

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

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

4.3 сурет

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

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

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

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

 

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

 

         ;Single-Byte Arithmetic

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

         ;Data Array (arithmetical progression)

         lxi H,00E0h           ;Initial Address

         mvi C,0Ah            ;Data Quantity

         mvi A,00h             ;Cleaning

         mov M,C              ;Writing in the Memory

SD     inx H                    ;Address Increment

         adi 15h                 ;Increment Step of the Linear Series

         mov M,A              ;Writing in the Memory

         dcr C                    ;Monitoring of the Data Counter

         jnz SD                  ;Continue

         nop

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

         ;Cumulative Summation

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

         ;a1-first operand, n-quantity, d-step,

         lxi H,00E0h           ;Initial Address

         mvi A,00h             ;Cleaning

         mov B,A               ;Cleaning

         mov C,M              ;Installation of the Data Counter

C1     inx H                    ;Address Increment

         add M                  ;Addition

         jnc C2                  ;Carry Monitoring

         inr B                     ;Carry Accumulation

C2     dcr C                    ;Monitoring of the Data Counter

         jnz C1                   ;Continue

         nop

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

         ;Retention of Result

         inx H

         mov M,A              ;Low Byte

         inx H

         mov M,B              ;High Byte

         nop

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

         ;Series Subtraction

         lxi H,00E0h           ;Initial Address

         mov C,M              ;Installation of the Data Counter

S1     inx H                    ;Address Increment

         sub M                            ;Subtraction

         jnc S2                            ;Borrow Monitoring

         dcr B                    ;Borrow Subtraction

S2     dcr C                    ;Monitoring of the Data Counter

         jnz S1                            ;Continue

         nop

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

         ;Alternative of the Single-Byte Summation

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

         ;Data

         in 01h                   ; Initial Operand

         mov E,A

         in 01h                   ;Data Quantity

         mov C,A

         in 02h                   ;Step

         mov D,A

         lxi H,0000h

         nop

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

         ;Cumulative Summation-A

A1     mov A,E

         add D

         mov E,A               ; Active Operand

         mov A,L

         add E

         jnc A2                  ;Carry Monitoring

         inr H                     ;Carry Accumulation

A2     mov L,A

         dcr C                    ;Monitoring of the Data Counter

         jnz A1

         mov A,L

         out 03H                ; Result (Low Byte)

         mov A,H

         out 04H                ; Result (High Byte)

 

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

         hlt                         ;Ending

 

4.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 блогында).

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

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

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

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

 

         ;Double-Byte Arithmetic

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

         ;Data Array (arithmetical progression)

         lxi H,00E0h           ;initial address

         mvi C,0Ah            ;data quantity

         mov M,C

         mvi A,00h             ;low byte

         mvi B,12h             ;high byte

DD    adi 15h                 ;step of the low byte=15H

         inr B                     ;step of the high byte=01H

         inx H

         mov M,A              ;saving of the low byte

         inx H

         mov M,B              ;saving of the high byte

         dcr C                    ;monitoring of the data counter

         jnz DD                  ;continue

         nop

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

         ;Cumulative Summation

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

         ;a1-first operand,n-quantity,d-step

         lxi H,00E0h           ;initial address

         lxi D,0000h           ;temporary repository for the result

         mov B,M              ;installation of the data counter

         mov C,B               ;doublet of the data counter

CS     mov A,E

         inx H

         add M                  ;low byte

         mov E,A

         mov A,D

         inx H

         adc M                            ;high byte

         mov D,A

         dcr B                    ;monitoring of the data counter

         jnz CS                  ;continue

         nop

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

         ;Addition with Direct Addressing

         mov A,E

         adi 3Dh                 ;low byte

         mov E,A

         mov A,D

         aci 5Ah                 ;high byte

         mov D,A

         nop

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

         ;Retention of the Result

         inx H

         mov M,E              ;low byte

         inx H

         mov M,D              ;high byte

         nop

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

         ;Series Subtraction

         lxi H,00E0h

S0     mov A,E

         inx H

         sub M                            ;low byte

         mov E,A

         mov A,D

         inx H

         sbb M                            ;high byte

         mov D,A

         dcr C                    ;monitoring of the data counter

         jnz S0                            ;continue

         nop

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

         ;Subtraction with Direct Addressing

         mov A,E

         sui 3Dh                 ;low byte

         mov E,A

         mov A,D

         inx H

         sbi 5Ah                 ;high byte

         mov D,A

         nop

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

         ;Alternative of the Double-Byte Summation

         lda 00E0h

         mov C,A              ;data counter

         lxi SP,00E1h         ;initial address

         lxi H,0000h           ;Double-Byte Accumulator

AS     pop D                            ;Pulling

         dad D                            ;Double-Byte Summation

         dcr C                    ;monitoring of the data counter

         jnz AS                  ;continue

         lxi B,5A3Dh

         dad B

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

         hlt

 

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

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

 

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

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

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

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

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

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

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

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

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

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

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

 

M:     ;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

 

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

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

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

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

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

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

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

4.4 сурет

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

 

 

         ;Stack...Sum=a1*a2+a3*a4+sum(ai,n,d)

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

         ;Preset

lxi SP,0FFh

         mvi B,0A0h

nop

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

         ;Mul1=a1*a2

         in 01h                   ;first multiplier

         mov E,A

         in 02h                   ;second multiplier

         call Mul

         push H

         call Per

         nop

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

         ;Mul2=a3*a4

         in 01h                   ;first multiplier

         mov E,A

         in 02h                   ;second multiplier

         call Mul

         push H

         call Per

         nop

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

         ;Sum(ai,n,d)

         in 01h                   ;quantity - n

         mov C,A

         in 02h                   ;step - d

         mov D,A

         in 01h                   ;initial operand - a1

         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    ;Multiplication (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   ;Cumulative Summation (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    ;Displaying on the Periphery

         ;and Writing on the Memory (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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5.1   сурет

5.2 сурет

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

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

5.3 сурет

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

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

-       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) кезекті команданың орындалуын қамтамасыз етуші кеңістіктік және уақыттық басқару сигналдарын қалыптастырады.

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

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

5.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 кезінде деректің нақтылы разрядындағы бірлік битті табуға арналған биттік операция жүзеге асырылады. Бұл биттік операцияның орындалуы үшін аккумуляторға қажетті разрядында ғана бір тұрған санауыш енгізілу керек. Суреттелген биттік операция сыртқы құрылғыдан келетін сұраныс сигналын немесе іс жүзіндегі қолданба жүйелердегі құптау сигналын тануды елестетеді.

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

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

5.1 к е с т е

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

торлар

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

 

5.2 К е с т е

Мнемо-ника

Код

Операциялар

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

 

 

 

 

5.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 адресті ұяшықтарындағы деректердің ішінен, үшінші биті мәніндегі санды (біздің жағдайда – 2-ұяшықта орналастырылған D санын) табу жұмысын жүзеге асырады.

 

Адрес

Команда

Код

Адрес

Дерек

Адрес

Дерек

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 Цифрлық құрылғылардың математикалық негіздері 5

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

1.1.1 Ондық сандардың түрлендірілімі. 6

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

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

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

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

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

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

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

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

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

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

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

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

2.3 Цифрлық жүйелердің қалыпты қиыстырма құрылғылары   17

2.3.1 Шифраторлар. 17

2.3.2 Дешифраторлар. 20

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

2.3.4 Демультиплексорлар  23

2.3.5 Қосуыштар. 23

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

2.4.1 Триггерлер. 25

2.4.2 Регистрлер. 31

2.4.3 Санауыштар. 32

2.5 Жады құрылғылары   33

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

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

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

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

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

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

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

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

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

3.2.4 Үзіліс жүйесі 49

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

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

3.4 Сілтеу тәсілдері 55

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

4.1 Дерек таратылымдары   57

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

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

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

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

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

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

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

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

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

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

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