- •Лабораторна робота 8
- •1 Основні теоретичні відомості
- •1.1 Особливостi множення чисел, якi задано у додатковому кодi
- •1.2 Передумови необхiдностi введення корекцій у попередній результат множення чисел, якi задано у додатковому коді
- •1.3 Визначення корекцій, що вводяться до добутку при різних сполученнях знаків співмножників
- •1.4 Спосіб множення співмножників, оснований на спiвставленні двох суміжних цифр множника
- •2 Контрольні питання
- •Вимоги до оформлення, захисту та оцінювання лабораторних робіт
- •Зразок оформлення титульного аркуша
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ |
|||
ХЕРСОНСЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ |
|||
Кафедра інформацiйних технологій |
|||
|
|||
|
|
||
|
|||
|
МЕТОДИЧНІ РЕКОМЕНДАЦІЇ |
|
|
|
та контрольні завдання до виконання лабораторних робіт |
|
|
|
з дисципліни „Комп’ютерна арифметика” |
|
|
|
для студентів другого курсу |
|
|
|
для напряму підготовки 6.050102 “Комп’ютерна інженерія” |
|
|
|
за професійним спрямуванням “Комп’ютерні системи та мережі” |
|
|
|
галузі знань 0501 “Інформатика та обчислювальна техніка” |
|
|
|
факультету кібернетики та системної інженерії |
|
|
|
|||
Частина 8 (лабораторна робота 8) |
|||
|
|||
Херсон – 2016 р. |
|||
Методичні рекомендації та контрольні завдання до виконання лабораторних робіт з дисципліни „Комп'ютерна арифметика” для студентів другого курсу напряму підготовки 6.050102 “Комп’ютерна інженерія” (за професійним спрямуванням “Комп’ютерні системи та мережі”) галузі знань 0501 “Інформатика та обчислювальна техніка”. Частина 8 (лабораторна робота 8). |
|
|
|
Укладач: Веселовська Г.В., доцент кафедри інформаційних технологій ХНТУ, к.т.н., доцент, кількість сторінок 16. |
|
|
|
Рецензент: Гучек П.Й., доцент кафедри інформаційних технологій ХНТУ, к.т.н., доцент. |
|
|
|
|
Затверджено |
|
на засіданні кафедри інформаційних технологій ХНТУ, |
|
протокол № 1 від 30.08.2016 р. |
|
Завідувач кафедри інформаційних технологій ХНТУ, д.т.н., професор, заслужений діяч науки і техніки України |
|
____________________ В.Є.Ходаков |
|
|
Відповідальний за випуск В.Є.Ходаков, завідувач кафедри інформаційних технологій ХНТУ, д.т.н., професор, заслужений діяч науки і техніки України. |
|
Лабораторна робота 8
Тема: Виконання алгебрачної операцiї множення чисел у сучасних комп`ютерах. Частина 2. Множення чисел, якi задано у додатковому кодi; методи введення корекцiї до добутку чисел, якi задано у додатковому кодi.
Мета роботи: опанувати на практиці наступні питання, пов`язані з виконанням алгебрачної операцiї множення чисел, заданих у додатковому кодi: особливостi множення; передумови необхiдностi введення корекцій у попередній результат множення; визначення корекцій, що вводяться до добутку при різних сполученнях знаків співмножників; спосіб множення співмножників, оснований на спiвставленні двох суміжних цифр множника.
Основні знання й уміння: знати основні відомості про множення чисел, якi задано у додатковому кодi, у комп`ютернiй арифметицi; умiти виконувати основні етапи множення чисел, якi задано у додатковому кодi.
1 Основні теоретичні відомості
1.1 Особливостi множення чисел, якi задано у додатковому кодi
Операцію множення найпростіше виконувати в прямих кодах чисел.
Застосування інверсних кодів дозволяє істотно спростити операцію алгебраїчного додавання, що застосовується набагато частiше за множення.
У цiлому, числа бажано зберігати у запам’ятовуючих пристроях (ЗП) і виконувати над ними додавання та множення в інверсному коді.
Співмножники мають бути заданіу прямому коді (для додатних співмножників) або в інверсному коді (для від`ємних співмножників). Добуток необхідно отримати у такому ж форматi: у прямому коді, якщо добуток є додатним; в інверсному коді, якщо добуток є від’ємним.
Для усунення циклічних переносів, раціонально використовувати додатковий код.
1.2 Передумови необхiдностi введення корекцій у попередній результат множення чисел, якi задано у додатковому коді
При множенні чисел у додатковому коді, так само, як і при алгебраїчному додаванні, потрібне введення корекцій у попередній результат, які вносяться, виходячи з наведених далi об`єктивних передумов.
Якщо число А є від’ємним, то значущі цифри його додаткового коду утворюють величину |[A]д| = 1 – |A|.
Тому, при перемножуванні модулів кодів операндів, у залежності від сполучення знаків співмножників, можуть виникнути наведенi нижче чотири випадки та, вiдповiдно, чотири рiзних типи корекцiй.
1.3 Визначення корекцій, що вводяться до добутку при різних сполученнях знаків співмножників
Випадок 1. A > 0, B > 0.
Даний випадок є тривіальним, для нього одразу можна отримати істинне значення додатного добутку: [A]д[B]д = [AB]д = AB.
Випадок 2. А > 0, В < 0.
Результат множення є псевдодобутком |[A]д||[B]д| = |A|*(1 – |B|) = = |А| – |А||В|. Правильний добуток у додатковому коді повинен дорівнювати |[AB]д| = 1 – |A|*|B|. Тому потрібна корекція псевдорезультату на величину доповнення модулю множеного до одиниці = 1 – |А|.
Випадок 3. А < 0, В > 0.
Після безпосереднього застосування алгоритму множення, отримуємо псевдорезультат |[A]д||[B]д| = (1 – |A|)*|B| = |B| – |А||В|. Правильний результат у додатковому коді дорівнює |[AB]д| = 1 – |A|*|B|. Тому потрібна корекція псевдорезультату на величину доповнення множника до одиниці = 1 – |В|.
Випадок 4. А < 0, В < 0.
Після безпосереднього застосування алгоритму множення, отримуємо псевдорезультат |[A]д||[B]д| = (1 – |A|)*(1 – |B|) = (1 – |A| – |B| + |A||B|). Зазначений псевдорезультат вимагає корекції на величину = |А| + |B|, оскiльки зайва одиниця розміщується в знаковому розряді та може бути просто замінена знаком добутку.
Таким чином, складність корекції результату при множенні чисел у додаткових кодах обумовлено тим, що виправлення вимагає не тільки знак, а й цифрова частина добутку.
Корекцію результату при множенні чисел у додаткових кодах можна робити наступними двома способами: 1) у процесі формування результату; 2) одразу по закінченні процесу формування результату.
Корекцiю результату множення в процесi його формування застосовують частіше, оскiльки вона не вимагає додаткових тактів роботи арифметичного пристрою (АП), якi призводять до зниження швидкостi обчислень та ускладнення схеми управлiння множенням.
Окрім того, при зсувах, як правило, губляться один чи обидва спів-множники, а повторне звертання за ними до запам`ятовуючого пристрою є небажаним, оскiльки призводить до зниження швидкодії роботи комп`ютеру.
Iз урахуванням вище викладеного, корекцію псевдорезультату для від’ємного множника можна виконати при множенні множеного А на знакову одиницю множника В, розглядаючи її як від’ємну.
Тобто, замість додавання А, в даному циклі множення потрібно виконати віднімання А (додавання [-А]д).
Оскiльки в даному циклі додається 2 – |А| замість 1 – | A |, то відразу формується і правильна знакова цифра результату: в силу вхідного сполучення знаків, він повинен бути від’ємним і, отже, представленим у додатковому коді.
Таким чином, описаний прийом забезпечує корекцію як величини результату, так і його знаку.
Розглянемо приклад.
Виконаємо множення чисел A = 0,1011 та B = –0,1101.
Для зазначених чисел: [–A]дм = 11,0101; [B]дм = 11,0011.
Обчислення набудуть наступного вигляду:
11,0011 --------- 11,0101 00,00000 00,000000 00,0001011 00,00001011 --------------- 11,01110001 |
-A*20 +0 +0 +A*2-3 +A*2-4 |
У пiдсумку, отримуємо правильний результат зі знаком.
У випадку від’ємного множеного та додатного множника, потрібна корекція результату на величину -В, уведення якої залежить від схеми множення.
Для будь-якої схеми множення, є справедливим наступне:
Отже, при додатному множнику, процес множення виконується так само, як у прямих кодах, але множене передається до суматору зі знаком у модифікованому додатковому коді. Залежно від схеми множення, виконуються модифіковані зсуви або множеного, або вмісту суматору.
Розглянемо приклад. Виконаємо множення чисел A = –0,1011 та B = 0,1101. Для зазначених чисел: [A]дм = 11,0101; [B]дм = 00,1101. Обчислення набудуть наведеного нижче вигляду.
Для першої схеми, виконується модифiкований зсув суми часткових добуткiв, а для четвертої схеми – множеного.
Четверта схема множення |
Перша схема множення
|
|||
00,1101 --------- 00,0000 11,10101 11,110101 00,0000000 11,11110101 --------------- 11,01110001 |
-0*A*20 +A*2-1 +A*2-2 +0 +A*2-4 |
+A +0 + +A
+A |
11,0101 00,1101 --------------- 11,0101 11,10101 11,110101 11,0101 --------------- 11,001001 11,1001001 11,0101 --------------- 10,1110001 11,01110001 |
Зсув Зсув
Зсув
Зсув |
Я
кщо
обидва співмножники є від’ємними, то
корекція +|А|+|B| може бути отримана
об'єднанням розглянутих способів
уведення корекцій |А| і |В|, у
пiдсумку
чого вийде правильний результат зі
своїм знаком.
Розглянемо приклад. Виконаємо множення чисел A = –0,1011 та B = –0,1101. Для зазначених чисел: [A]дм = 11,0101; [B]дм = 11,0011. Обчислення набудуть наведеного нижче вигляду.
11,0101 11,0011 --------- 00,1011 00,00000 00,000000 11,1110101 11,11110101 ----------------- 00,10001111 |
–A*20 +0 +0 +A*2-3 +A*2-4
|
Я кщо співмножники представлено в оберненому коді, то методи корекції псевдомноження ускладнюються. Тому простіше буде здiйснити наступнi дiї: позбутися від’ємних співмножників завдяки використанню інверсних передач; за необхідності, перетворити результат на обернений код.

00,1011
11,0101