Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AK.doc
Скачиваний:
28
Добавлен:
17.03.2016
Размер:
3.6 Mб
Скачать

1.7.8. Схемні методи прискореного множення

1. Метод множення, який використовує суматор з розірваними ланцюгами розповсюдження переносу

В даному схемному блоці множення сума часткових творів представляється у вигляді двох складових: порозрядної суми і перенесення в наступний розряд. Т УМН = n (Т 2 + Т СДВ)

У звичайних методах множення час множення пропорційно кількості розрядів множника і дорівнює сумі часу складання і часу зсуву. У свою чергу, час складання дорівнює сумі часу поширення перенесення і часу складання.

В даній схемі замість одного Рг Z - 2 регістри: для часткових сум і для переносу. Ця інформація враховується на наступному кроці множення. Після множення потрібно виконати об'єднувальне додавання, склавши результати двох регістрів; при цьому ланцюзі поширення перенесення потрібно замкнути.

БО містить 2 накопичуючих суматора (НС), 2 СПК. Кожен НС - це комбінаційний суматор і запам'ятовувальний регістр. Один з суматорів має 1,5 n розрядів, 2 й - 2 n розрядів. СПК1 управляється n/2 розрядами множника, СПК2 - n  молодшими розрядами множника. Загальне число циклів множення: n/2. Після операції треба виконати 1 об'єднувальне додавання. Вихід НС2 подається на НС1, тому НС1 має 2n розрядів. Найшвидшими є схеми матричних і табличних помножувачів.

1.7.9. Особливості виконання множення чисел з плаваючою крапкою

Z = XY = q kx m x * q ky m y = q kx + ky m x m y

1. Скласти порядки

2. Перемножити мантиси одним з розглянутих методів

3. Визначити порядок результату, якщо мантиса m z - нормалізоване число, то порядок результату буде дорівнює сумі порядків співмножників. Якщо m z - денормалізована вправо, то її нормалізують, зрушуючи відповідне число раз вліво, а із суми порядків віднімають стільки одиниць, скільки лівих зрушень для цього буде потрібно.

Округлення при множенні

Операція множення відноситься до таких, які виконуються в обчислювальних машинах не точно, а наближено. Це пов'язано з тим, що результат операції представлений подвоєним числом розрядів. Після виконання операції його округляють до n основних розрядів і тільки при виконанні операцій з підвищеною точністю використовують ще й додаткові розряди. Округлення може виконуватися одним із таких п'яти варіантів:

1. Шляхом відкидання n молодших розрядів результату. Будь-який результат представляється з недоліком. Часто ненульові результати представляються як машинні нулі.

2. Шляхом фіксації 1 в молодшому залишається розряді. Результат може бути представлений з надлишком. Ніколи не отримаємо машинний нуль.

3. Шляхом додавання 1 в старший відкидаємо розряд

4. Шляхом фіксації випадкової 1 в молодшому залишається розряд

5.Шляхом додавання   випадкової 1 в старший відкидаємо розряд

4 й і 5 й варіанти вимагають введення генератора випадкових чисел (схема / програма).

1.8. Реалізація двійкового ділення в процесорі

1.8.1. Реалізація ділення чисел з фіксованою крапкою в прямому коді

Процес отримання цифри частки завжди починається зі старших розрядів.

1. Ділення із зсувом залишків вліво з подвоєнням залишків. Дільник нерухомий. В якості початкового залишку приймається ділене .

2. Ділення із зсувом дільника вправо. Залишки нерухомі.

Обидва варіанти можуть виконуватися в двох модифікаціях - з відновленням залишків і без.

Ділення із зсувом залишків вліво, з відновленням залишків.

При виконанні ділення за варіантом 1 включаються наступні цикли:

    • зсув чергового залишку та отримання розрядів частки вліво на 1 розряд

    • складання зсунутого залишку із зворотним або додатковим кодом дільника, визначення чергової цифри частки. Чергова цифра частки визначається шляхом аналізу знакового розряду нового залишку, якщо залишок більше нуля, то цифра частки береться рівною 1, якщо залишок менше 1, то цифра дорівнює 0.

    • відновлення залишку. Якщо отриманий залишок менше 0, то треба відновити попередній додатній залишок. Для цього до від’ємного залишку слід додати дільник, потім повернутися до першого кроку.  

Розглянемо приклад виконання операції діленя двійкових чисел в прямому коді по першому варіанту без відновлення остачі.

Ділене x=9/16

Дільник y=11/16

-y[додатков]=1,0101

Частка Z=13/16

В якості першого залишку беремо x, |x|<|y|

Структурна схема ділення за варіантом 1

БД, який працює за варіантом 1, містить 3 регістри: РгХ - залишків, Рг Y - дільника, Рг Z - приватного; комбінаційний суматор, мультиплексор. В РгХ, Рг Z організовані ланцюги лівого зсуву на 1 розряд. Можливе використання косої передачі в РгХ на 1 розряд вліво.

Х повинен бути менше Y.

Ділення по 2 варіанту виконується шляхом зсуву дільника вправо, тобто шляхом зменшення дільника на кожному кроці в 2 рази. Блок поділу, що працює по 2 варіанту повинен містити 3 регістри: Х - для запису залишків, Y - дільника, Z - частки. В Рг Z повинні бути організовані ланцюги лівого зсуву на 1 розряд, в Рг Y - правого зсуву. В цьому   блоці поділу і Рг Y,   і РгХ, і комбінаційний суматор повинні мати подвійну кількість розрядів. Блок розподілу по 2 варіанту вимагає більших апаратних витрат, ніж по 1 варіанту.

Методи ділення без відновлення залишків

Відновлення залишків є нерегулярною операцією, її не можна передбачити,   вона може виникнути на будь-якому кроці, тому її доводитися чекати завжди. У зв'язку з цьому в комп’терах використовують методи без відновлення залишків.

Нехай на i циклі залишок виявився менше нуля, при цьому i цифра частки дорівнює нулю. Треба виконати відновлення залишків.

r i <0 r i = 2 (r i + y) - y = 2 r i + y

Якщо при діленні на i вийшов r i <0, необхідно зсунути його вліво і додати до нього дільник. Цей метод полягає в тому, що при r i> 0 ми після його зсуву віднімаємо y, а при r i <0 - додаємо. При діленні по 2 варіанту відновлення залишків можна уникнути: якщо r i <0, то треба зсунути на 1 розряд вправо дільник, який потім буде додаватися до цього від’ємного залишку.

Двійкове ділення в додатковому коді.

При діленні в ДК знаковий розряд діленого і дільника бере участь в розподілі нарівні з цифровими.   Якщо знаки чергового залишку і дільника збігаються,   то в молодший розряд частки записується 1, після чого залишок і частка зрушують на 1 розряд вліво і до збільшеного залишку додають дільник із зворотним знаком. Якщо знаки не збігаються, в молодший розряд частки записується 0, залишок і частка зсуваються на 1 розряд вліво, після чого до зрушеного залишку додається дільник зі своїм знаком. Отримання цифр частки виконується протягом 2,5 машинних циклів, потім виконується корекція результату, яка реалізується шляхом додавання   1 в знаковий розряд частки та (n +1)-й розряд частки, який потім відкидається. Коригуюча одиниця в знаковому розряді дозволяє отримати правильний знаковий розряд. З метою збереження правильних знаків розподіл здійснюється з використанням модифікованого ДК.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]