Инструкции. Управляващо Устройство, Аритметико-Логическо Устройство, Kод на операцията, Оперативна памет.
Инструкциите или т.нар команди съответстват на операциите на Асемблер или машинен език. До тях /инструкциите/ се свеждат програмите писани на езици от високо ниво посредством транслатори и компилатори. Инструкциите се представят като поредица от битове и могат да бъдат с фиксирана или променлива дължина.
Инструкцията има следния формат:
КОП | A1 | A2 | A3 |,
където КОП е двоичният код на операцията, а А1, А2, А3 са операнди.
Операциите биват няколко вида:
Data transfer – прехвърляне на данни от едно място на друго. Операциите могат да са
- RR регистър – регистър
- RX регистър – адресация – памет
- RS регистър – памет
- SI памет – непосредствен операнд
- SS памет – памет
- S едноадресна операция
Logical – булеви операции – AND, OR, NOT.
Conversion – операции, променящи формата на данните /пр. от 2-ични в 16-ични/.
I/O - инструкции за вход изход.
System Control – привилегировани инструкции, когато централния процесор е в привилегирован режим /пр. когато се чете или пише в контролните регистри/.
Transfer Control – последователността на инструкциите.
Формат на командите
В процесора има cache памет състояща се от 16 регистъра от по 32 разряда.
RR – формат /регистър – регистър/
| КОП | R1| R2|
R1, R2 регистри, адресират се в 16-чна броина с-ма. Адресният регистър е 32 разреден, резултатът от операцията се записва на първия адрес.
Операциите регистър – регистър са най-бързи.
RX – формат /работи с паметта на машината/
| KOП | R1 | X2 | B2 | D2|
R1 поле на общ регистър, А2 е адрес на 2-я операнд, от D2 взема записаното число
А2 = (Х2) + (В2) + D2. Събира се съдържанието на R1 и A2 /този адрес се намира в опративната памет/ и съдържанието се записва в R1.
SI – инструкция с непосредствен операнд /Storage immediate/
| КОП | I | B1 | D1 | I - нашият операнд
А1 = (В1) + D1
A1 → b
b – операндът, чийто адрес е в А1
SS – при формата Storage – Storage и 2-та операнда са в паметта
| КОП | L1 | L2 | B1 | D1 | B2 | D2|
А1 = (В1) + D1
А2 = (В2) + D2
L1, L2 показват дължината на операндите – мах дължина 2^n
A1 → а, A2 → b - намираме а и b в паметта в зависимост от дължината на L1
S– едноадресна команда
| КОП | B1 | D 1 |
Естествния ред на изпълнение на инструкциите е последователния – по принципа на Фон Нойман. Това се променя ако има циклична операция, проверка на условие, или ако тази промяна е зададена в специален операнд на инструкцията. Това е възможно защото инструкциите имат един операнд указваш адреса на следващата инструкция.
Операндите могат да бъдат от следние типове – адреси, числа, символи, логически данни и специализирани типове данни или структури данни.
Инструкциите се изпълняват по следния начин
- извлича се команда от ОП
- дешифрира се КОП
- извлича се операнда
- изпълняват се поредната операция
- запазва се резултата
- преминава се към следващата инструкция
Адресация
В инструкциите има 2 адреса за операнди, 1 за резултат, 1 за следващата инструкция и КОП. Общо са максимално 4 но най-често се срещат по 2-3.
брой адреси | символно | интерпретация |
3 | OP, A, B, C | A ← B OP C |
2 | OP, A, B | A ← A OP B |
1 | OP, A | AC ← AC OP A |
0 | OP | T ← T OP (T-1) |
Техники за адресация:
Вид | Алгоритъм | Преимущества | Недостатъци |
непосредствен | Оperand = A | няма обръщение към паметта | ограничени стойности |
директен | ДА = А | простота | ограничено адресно пространство |
индиректен | ДА = (А) | голямо адресно пространство | много обръщения към паметта |
регистър | ДА = R | няма обръщение към паметта | ограничено адресно пространство |
регистър индиректен? | ДА = (R) | голямо адресно пространство | обръщения към паметта |
изместване | ДА = А + (R) | гъвкавост | сложност |
стек | ДА = тоp of stack | няма обръщение към паметта | ограничена приложимост |
T – top of stack
3-адресни инструкции – SUB, ADD, MPY, DIV
2-адресни инструкции – МOVE, SUB, MPY, ADD, DIV
1-адресни инструкции – LOAD, STORE, SUB, ADD, DIV, MPY
По-малко адреси за инструкцииапо примитивни инструкцииапо-опростен процесор.Повече адресиаповече време за изпълнениеапо-сложни програми.
А – адрес на операнда, ДА – действителен адрес на операнда, (Х) – съдържание на адреса Х.
Проектиране на множество инструкции:
- колко и какви операции ще има
- типове данни, върху които ще се изпълняват операциите
- формат – дължина в битове, брои адреси, размер на полетата
- регистри - колко на брой и за какво ще се използват
- начин на адресиране
Адресна машина - схема
P1, P2 – регистри, ИР – информационен регистър, СМ – суматор
ВР – входен регистър, Из Р – изходен регистър, Бр И – брояч на инструкциите
D – дешифратор, АР – адресен регистър
Коментари: