Арифметико-логічний пристрій

АЛП забезпечує виконання арифметико-логічних операцій над 16-розрядними даними. До складу АЛП входять:

· шістнадцять 16-розрядних регістрів загального призначення (РЗП) R0, R1, …, R15;

· 16-розрядний регістр Q (РгQ).

 
Для адресації РЗП R0, R1, …, R15 у структурі мікрокоманди передбачено два 4-розрядні поля A та B. Протягом одного циклу можна звернутися одночасно до двох регістрів, номери яких встановлені на шинах A і B, виконати мікрооперацію над даними, що зберігаються в вибраних регістрах, і записати результат, зсунувши його вліво або вправо на один розряд (якщо це необхідно), в регістр, номер якого встановлено на шині B.


АЛП
 

 
 


Рис. 4. Структура блока обробки даних


Крім полів A, B мікрокоманди для адресації регістрів R0, R1, …, R15 використовують 4-розрядні коди, записані в RA, RB (рис. 4).

Управління мікроопераціями здійснюють за допомогою 9-розрядного поля АЛП_МІ, молодша тріада якого задає операнди, які беруть участь у мікрооперації в даному такті, середня – виконувану мікрооперацію, а старша – приймач результату (рис. 6).

До складу АЛП входить операційний автомат (ОА), який забезпечує виконання арифметичних та логічних операцій (рис. 7). На вхід R ОА може надходити слово з одного з регістрів R0, R1, …, R15, який адресується шиною A; 16-розрядна нульова константа; слово з входу D, який з‘єднано з локальною шиною (табл. 1). На вхід S ОА може надходити слово з одного з РЗП, адресованого шиною A або B; слово з регістра Q; 16-розрядна нульова константа.

Наприклад, якщо у поточному машинному такті розряди 2,1,0 мікроінструкції для АЛП дорівнюють 101, то на вхід R ОА надходить слово з входу D, а на вхід S – слово з РЗП, адреса якого встановлена на шині A АЛП. У мнемонічній формі це записують як val, Rx, де val (скорочення від value) - значення, що в даному машинному циклі перебуває на локальній шині (bus_d), або константа, що знаходиться в полі D мікрокоманди. Під час запису операндів у вигляді мнемонічних позначень на місці val записують безпосередню константу або мнемоніку BUS_D (bus_d).

Розряди 5,4,3 мікроінструкції АЛП_МІ задають мікрооперацію, виконувану у поточному такті (табл. 2). Наприклад, якщо ці розряди містять 010, то в ОА виконуватиметься мікрооперація віднімання: R-S-1+CI, де R(S) позначає 16-розрядне слово, яке надходить на вхід R(S) ОА, а CI –вхідний перенос, який надходить від СУСЗ. Зрозуміло, що замість R та S буде підставлено одну з 8 пар операндів з табл. 1 (залежно від значення розрядів 2,1,0 мікроінструкції).

Розряди 8,7,6 мікроінструкції АЛП_МІ показують куди записати результат поточної мікрооперації (табл. 3). Приймачем результату з виходу F ОА може бути один з РЗП або регістр Q. При цьому під час запису результату в РЗП або регістр Q можливий зсув інформації вліво (2F) або вправо (F/2) на один розряд. Крім того, одночасно результат можна видавати на вихідну шину даних Y (крім одного випадку, коли на шину Y надходить слово з регістра РЗП, адресованого шиною A), з‘єднану з ЛШ. Видачу результату на шину Y дозволено, якщо поле OEY мікрокоманди містить 0, і заборонено, якщо OEY=1.

Слід зазначити, що серед регістрів загального призначення приймачем інформації може бути тільки регістр, який адресується кодом, встановленим на шині B (полем B мікрокоманди), а під час запису результату зі зсувом вліво (вправо) регістр, адресований шиною B, та регістр Q можуть утворювати регістрову пару.


Рис. 5. Операційна частина процесора


                 

розряди поля

АЛП_МІ:

Рис. 6. Структура поля АЛП_МІ мікрокоманди

{A, D, 0} {A, B, Q, 0}

 
 


Рис. 7. Операційний автомат АЛП

Таблиця 1


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: