ПРОЦЕСОРНІ ПРИСТРОЮ ДІЛЕННЯ ДВІЙКОВИХ ЧИСЕЛ
Операційний автомат. Алгоритм і апаратний склад ОА
Вважаємо, що в операції ділення задіяні 8-розрядний ділене і 4-розрядний дільник
. На рис. 4.35 проілюстровано алгоритм розподілу двійкового числа А = 0010 00112 на число S = 01112 (35: 7 = 5) з використанням чотирьох регістрів і суматора. Регістри RG i і RG 2 призначені для зберігання і зсуву поточного значення діленого
, регістр RG 3 - зберігання додаткового коду -B1 від'ємного значення дільника. Зсувний регістр RG fi служить для накопичення розрядів C j приватного. У початковому стані RG i і RG 2 завантажені діленим A, RG3 - додатковим кодом -B11 = 1001 (-7), a RG fi - нулями (див. Рис. 4.35).
На пана м кроці алгоритму виконується операція додавання
де C4 j - перенесення в четвертий розряд; S 3 , S 2j S i , S 0 f - сума, або Г'-й залишок.
Результат складання C4 у53 S 0. на виході суматора можна контролювати двома способами:
- • за значенням переносу C4. в четвертий розряд, якщо C4 г = 0, то
, в іншому випадку
;
- • за значенням третього розряду S 3j суми, якщо S 3j = 1, то
в іншому випадку
Як умова X1, контролюючого результат складання, приймаємо сигнал C4 перенесення.
Дії на г-му кроці алгоритму операції ділення двійкових чисел визначається значенням X 1 (див. Рис. 4.37).
1. Якщо X1 (. = 0, то значення старших розрядів діленого ', отже, розряд приватного Ci = 0.
Значення C j = X ij = O записується в зсувний (накопичувальний) регістр RG i. Виконується логічний зсув вліво на один розряд (в сторону старших розрядів) вмісту регістрів RG i і RG 2, при цьому
Мал. 4.35. Ілюстрація принципу поділу двійкових чисел з використанням чотирьох регістрів
молодший розряд в RG 2 заміщається нулем. На наступному (г + 1) -му кроці алгоритму приймається
При X u = 0 сума на виході суматора не використовується. В RG 1 зберігається
2. ЕсліXli = 1, то значення старших розрядів діленого ', отже, розряд приватного C j - 1.
В цьому випадку сума заноситься в RG v значення приватного C j = X lj = 1 записується в RG 2. Потім виконується операція логічного зсуву вліво на один розряд (в сторону старших розрядів)
вмісту
RG 1 і RG 2. Таким чином, на наступному (г + 1) -му кроці алгоритму приймається
Як видно з рис. 4.35, для отримання чотирьох значущих розрядів приватного необхідно виконати п'ять кроків, або циклів (г = 1, ..., 5), тому для автоматичної фіксації завершення операції ділення скористаємося двійковим віднімається лічильником з підключеним до його виходів логічним елементом ЗІЛи-НЕ. Якщо в початковому стані в лічильник записати число п = 510 = Ю12іпо завершенні кожного циклу зменшувати його вміст на одиницю, то після п'яти циклів він виявиться порожнім (0002) і на виході ЗІЛи-НЕ з'явиться одиничний сигнал, який приймемо в якості другої умови Х 2 .
Структура ОА для поділу двійкових чисел зображена на рис. 4.36 Що Їх при ділення микрооперации у- наведені в табл. 4.15.
Таблиця 4.15
|
призначення |
|
|
|
Завантаження регістра RG i старшими розрядами ділене Лс = 0010 (3510) |
|
Завантаження регістра RG 2 молодшими розрядами ділене Лм = 0011 (3510) |
|
|
Завантаження регістра RG 3 делителем -В в додатковому коді -В л = 1001 (-710) |
|
|
Завантаження регістра RG 4 нулями, або скидання |
|
|
Завантаження лічильника числом циклів п = 5 (01012) |
|
|
|
Завантаження суми S, S 2 S. S " . в регістр RG t (при X,,. = 1) '' |
|
Завантаження перенесення С4 = X ,, в регістр RG 3 (при X, i = 1) |
|
|
|
Завантаження перенесення С4 = X, в регістр RG 3 (при X, f = 0) |
|
Зрушення вмісту регістрів RG V RG 2 на один розряд вліво (при X , _ t = 0 і 1) |
|
|
Зменшення вмісту лічильника СТ на одиницю (прих, л = 0і 1) |
|
|
Перенесення С4 в четвертий розряд на виході суматора |
|
|
Контроль вмісту лічильника СТ (Х2 = 1 при СТ = 0) |
В результаті об'єднання микроопераций, виконуваних на одному часовому інтервалі, формуємо такі мікрокоманд:
Мал. 4.36. Структурна схема операційного автомата для поділу двійкових чисел
де F1 - мікрокоманда початкової установки ОА; F2 - мікрокоманда, виконувана за умови X1. = 0; F3 - мікрокоманда, виконувана за умови X1. = 1;
У OA формуються такі ознаки (див. Табл. 4.20):
• X1. - результат порівняння поточного діленого
з дільником В. При
формується логічне умова X1. = 0, при
-Xli = 1;
• X2. - поточний стан лічильника. При X2 (= 1 лічильник порожній, операція ділення завершена.
Логічна схема OA приведена на рис. 4.37. Розглянемо особливості використовуваних апаратних засобів.
Кожен з наведених на рис. 4.37 регістрів RG v RG 2 і RG i має:
- • чотири входи
для паралельної завантаження даних і чотири виходи
';
- • вхід D для послідовного запису одного біта даних і зсуву вмісту регістра;
- • керуючі входи Fh С, причому режиму паралельної завантаження відповідає комбінація F = I1C = O, режиму послідовного запису і зсуву - F = О, C = 1.
Суматор SM виконує функції порівняння значень чотирьох старших розрядів поточного діленого з подільником В на г-му кроці алгоритму і формування умови X1 .. Для фіксації результату порівняння прийнятий сигнал C4 {перенесення в четвертий розряд на його виході. На входи суматора подаються поточне значення діленого
. і додатковий код
від'ємного значення дільника, а з виходів знімаються сума 53 t S 2 t S Q. і сигнал логічного умови Х г
Двійковий віднімає лічильник СТ з включеним на його виході елементом ЗІЛи-НЕ забезпечує фіксацію закінчення операції ділення в вигляді логічного умови Х 2 = 1. Лічильник має:
- • входи D 2 , D v D q для паралельної завантаження числа циклів 510 = 1012;
- • вхід V, який ініціює паралельну завантаження даних при V = 1;
- • тактовий вхід Т для зменшення вмісту на одиницю по завершенні кожного циклу.
Мал. 4.37. Логічна схема операційного автомата для поділу двійкових чисел
Для управління операційним автоматом слід:
- • вихід Q3 регістра RG 2 підключити до послідовного входу D регістра RG V а вхід D регістра RG 4 - до виходу С4 суматора, що дозволить реалізувати зсувні операції пари RG 2 -RG X в сторону старших розрядів на кожному кроці алгоритму;
- • використовувати чотири логічних елемента 2І-АБО (див. Рис. 4.37). В цьому випадку при Y x = 1 на входи даних RG X будуть надходити старші розряди А 3 А 2 А Х А 0 ділимо, при С4 = 1 - сигнали S 3 S 2 S { S 0 з виходу суматора.
Керуючі сигнали, необхідні для виконання мікрокоманд, наведені в табл. 4.16. Схема логіки управління ОА, побудована на підставі цієї таблиці з використанням карт Карно (рис. 4.38), зображена на рис. 4.37.
Таблиця 4.16
Мікрокоманд і умова Х х |
сигнали управління |
||||||||||
RG 1 |
RG 2 |
RG 4 |
CT |
||||||||
|
|
|
|
V |
З |
V |
C |
V |
C |
V |
T |
0 |
0 |
1 |
|
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
Мал. 4.38. Карти Карно для опису логіки управління операційним автоматом
Операцію поділу можна реалізувати за двома алгоритмами. Розглянемо їх особливості.
Алгоритм 1. Після завантаження регістрів і лічильника (мікрокоманда У,) перевіряється умова X, (значення перенесення З 4 на виході суматора):
- • якщо X, = 1, то виконується мікрокоманда У3 (RG t завантажується сумою S 3 j52 gS u S 0 ra RG l - перенесенням C 4 = 1), після чого мікрокоманда У2 (послідовна завантаження перенесення С4 = X, в RG 3> зсув вмісту RG., RG 2 і зменшення на одиницю вмісту лічильника). Потім перевіряється умова Х2 (лічильник СТ). При Х2 = 0 починається новий цикл, при Х2 = 1 операція завершується;
- • якщо X, = 0, то мікрокоманда У3 пропускається.
Алгоритм 2. Після завантаження регістрів і лічильника (мікрокоманда У,) перевіряється логічне умова Х2 (вміст лічильника СТ):
- • при Х2 = 0 перевіряється ХГ Якщо Х4 = 1, то виконується мікрокоманда У3, після чого мікрокоманда У2 і цикл завершується. Якщо Xj = 0, то мікрокоманда У3 пропускається;
- • при Х2 = 1 операція завершується.
Наведені на рис. 4.39 граф-схеми обох алгоритмів поділу не відрізняються від аналогічних граф-схем операції множення. Оскільки реалізація керуючих
Мал. 4.39. Граф-схеми алгоритмів операції ділення двійкових чисел
автоматів повністю визначається граф-схемою алгоритму (хоча і неоднозначно), всі розглянуті в параграфі 4.4 технічні рішення можуть бути використані для управління розглянутим вище операційним автоматом.