Арифметикалық-логикалық құрылғы (ALU, Arithmetic-Logic Unit) арифметикалық және логикалық операциялардың орындалуын жүзеге асырады. Оның құрамында сәйкесті операциялардың орындалуын жүзеге асырушы бөліктемелер (sum, not, and, or, xor) және операндтар мен орындалған операцияның нәтижесін уақытша сақтауға арналған буферлік регистрлер болады.
Команда дешифраторы (DC_16) кезекті команданың кодына сәйкесті орындаушы микробағдарламасын іске қосады, яғни осы команданың орындалуына қатысты құрылғыларға жіберілетін басқару сигналдарының қалыптастырылу жолын анықтайды.
Таймер (CLK) командалардың орындалуына қатысты құрылғыларға жіберілетін басқару сигналдарының уақыттық таралымын анықтайды.
Қиыстырмалы микробағдарламалық құрылғы (Combi, Combinational Circuit) кезекті команданың орындалуын қамтамасыз етуші кеңістіктік және уақыттық басқару сигналдарын қалыптастырады.
Енгізу құрылғысы мен жады жүйесінің негізі ретінде бұрын қарастырылған сәйкесті құрылымдар пайдаланылады.
Жадыны басқару жүйесі (MCon, Memory Control) жады блоктарының (команда кодтарының немесе деректердің) біреуін және енгізу құрылғысынан құрылғысынан немесе микропроцессордан түсетін басқару сигналдарына байланысты олардың жұмыс режимінің (ввода, записи, считывания) таңдалуын қамтамасыз етеді.
Жүйе бірнеше режимде істей алады, олар режим таңдау блогындағы (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 микропроцессорының командалары мен олардың сипаттамалары 1.1 кестеде, ал жүйенің жұмыс режимдерінің қойылу тәртібі 1.2 кестеде келтірілген.
1.1 К е с т е – MP4M микропроцессорының командалары
Мн-ка
Код
Операциялар
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
Т а б л и ц а 6.2 – MP4M микропроцессорының жұмыс режимдерінің қойылуы
Кілт, инд-р
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
6.3 Жұмыс тапсырмасы 6.3.1 Ауыстыру командаларының іс-әрекетімен таныс:
EWB5PRO бағдарламасын ашып, MP4M.ewb файлын таңда. Жүйенің (6.1 суретті қара) негізгі және ішкі блоктарын ашып және жүйе жөніндегі мәліметтерді оқу арқылы олардың құрылымымен, құралым бөліктемелерімен және жұмыс принциптерімен таныс;
EWB5PRO бағдарламасын түймесімен жандандырып, жадыға жазылған информацияны жоғалтып алмас үшін, оны жұмыс аяғына дейін сөндірме MP4M.ewb файлын таңда;
M және P түймелерін M=1 және P=1 жағдайына қою арқылы жүйені бағдарлама енгізу режиміне дайындап, жадыға келесі бағдарламаның команда кодтарын енгіз;
Адрес
Команда
Код
Адрес
Командалар
Код
0
LD B
0
5
POP
E
1
LD A
4
6
ST
5
2
LD SP
3
7
PUSH
D
3
LD C
1
8
PUSH
D
4
POP
E
9
HLT
F
M және P түймелерін M=1 және P=1 жағдайына қою арқылы жүйені бағдарлама енгізу режиміне дайындап, жадыға келесі бағдарламаның команда кодтарын енгіз;
жады түрін P түймесімен ауыстыра отырып, жадыға енгізілген ақпараттың (бағдарлама мен деректердің) дұрыстығын Space түймесін қысқа уақытқа басу арқылы тексер;
алдымен P түймесін P=1 жағдайына қойып, сосын M түймесін M=0 жағдайына ауыстыру арқылы бағдарламаны іске қос. Көрсеткіштердің жағдайын бақылай отырып, бағдарлама жұмысын тексер. Қажетті жағдайда бағдарлама жұмысын түймесімен тоқтата тұруға немесе M түймесін екі рет басу арқылы бағдарлама жұмысын қайта бастауға болады;
бағдарлама жұмысы тоқтатылғаннан кейін жүйені енгізу жүйесіне ауыстырып, дерек жадысын тексер. Ондағы өзгерістердің себебін анықта;
бұрынғы деректерді қалпына келтіріп және деректер жадысының адресі F ұяшығынағы деректі өзгертіп, бағдарламаны қайтадан іске қос та, оның жұмысын тексер.
6.3.2 Арифметикалық және логикалық командалардың іс-әрекетімен таныс:
жүйені бағдарлама енгізу режиміне дайындап (M=1, P=1), жадыға келесі бағдарламаның команда кодтарын енгіз;
Адрес
Командалар
Кодтар
Адрес
Командалар
Кодтар
0
LD B
0
7
ADS
8
1
LD C
1
8
ACS
9
2
LD A
4
9
ACS
9
3
INR
6
A
AND
A
4
INR
6
B
OR
B
5
ADS
8
C
XOR
C
6
ADS
8
D
HLT
F
жүйені дерек енгізу режиміне ауыстырып (M=1, P=0), жадыға нақтылы бір мәннен басталған сандар тізбесі түріндегі деректер енгіз де, оларды жұмыс дәптеріне жазып ал;
енгізілген бағдарламаны іске қос (P=1, затем M=0). Көрсеткіштердің жағдайын бақылай отырып, бағдарлама жұмысын тексер. Қажетті жағдайда бағдарлама жұмысын түймесімен тоқтат;
бағдарлама жұмысы тоқтатылғаннан кейін Space түймесін қысқа уақытқа басу арқылы A1 регистріндегі санды анықта (оны бағдарламаның жұмыс барысында да тексеруге болады). Ондағы нәтижені түсіндір. Оған қиындық туса, онда M түймесін екі рет басу арқылы бағдарламаны қайтадан іске қосып, қосу операцияларының кезінде туатын тасымалдарды ұқыпты бақыла;
жүйені бағдарлама енгізу режиміне ауыстырып, S түймесін S=1жағдайына ауыстыр, нәтижесінде қосу бағдарламасы алу бағдарламасына айналады, яғни ADC және ACS командаларының орындалуы кезінде алу операциялары (тасымалды және тасымалсыз) орындалады;
бағдарламаны іске қос (P=1, затем M=0). Көрсеткіштердің жағдайын бақылай отырып, бағдарлама жұмысын тексер. Қажетті жағдайда бағдарламаны іске қайта қос;
арифметикалық операциялардың қосымша кодта орындалатынын ескере отырып, алу бағдарламасындағы барлық алу операцияларын қолмен есепте де, оны жүйеде алынған нәтижелермен салыстыр.
6.3.3 Айналымды бағдарламалық құрылымдардың ұйымдастырылу принциптерін игер:
жүйені бағдарлама енгізу режиміне дайындап, жадыға N санның (бұл жағдайда N=5) қосындысын анықтауға арналған келесі бағдарламаның команда кодтары мен деректерді енгіз;
Адрес
Командалар
Кодтар
Адрес
Деректер
Адрес
Деректер
0
LD B
0
0
6
…
…
1
LD C
1
1
8
7
5
2
ADS
8
2
D
8
2
3
LD IP
2
3
A
…
…
4
HLT
F
4
9
5
B
F
7
енгізілген бағдарламаны P=1, S=0, I=1 жағдайында іске қос. Бағдарлама тоқтатылғаннан кейін нәтижені кіші тетрадасы аккумуляторда (A регистрінде) болады, ал A1 регистріндегі үлкен тетрадасын Space түймесін тез басу арқылы анықтауға болады;
1…5 адресті ұяшықтардағы сандардың қосындысын қолмен есептеу арқылы анықтап, оны жүйеде алынған нәтижемен салыстыр;
жүйені енгізу режиміне ауыстырып, жадыға 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 көрсеткіші жанады да, бағдарлама жұмысын тоқтатады;
жүйені енгізу режиміне ауыстырып, адресі 2 ұяшыққа 3 енгізіп, бағдарламаны қайта іске қос. Бұл жағдайда бағдарлама адресі 1…5 арасындағы барлық санды тексеріп, оның ішінен қажетті санды таба алмай, жұмысын тоқтатады.