Файл: Мельник А. Архітектура комп\'ютера.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.12.2021

Просмотров: 6856

Скачиваний: 22

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

227

які можуть бути рівні 0,1 або +1, -1. У першому випадку говорять про ітераційний про­цес із знакопостійними приростами, в другому - із знакозмінними. На другому етапі, на підставі знайдених на першому етапі значень, визначається величина елементарної функції шляхом додавання або множення констант. Одночасне виконання двох описа­них етапів методу "цифра за цифрою" називають методом Волдера, а послідовне - ме­тодом Меджіта. Відміна методів Волдера і Меджіта, що полягає у величинах ітераційних кроків, значеннях констант і послідовності виконання етапів, істотним чином впливає на точність, швидкодію і структуру операційного пристрою. Детальний аналіз показав, що метод Меджіта має вищу точність, ніж метод Волдера, проте швидкодія його реалі­зації нижча.

З урахуванням отриманих Вальтером результатів по уніфікації методу і шляхом об'єднання одержаних для різних функцій алгоритмів, єдиний обчислювальний алго­ритм "цифра за цифрою" в двійковій позиційній системі числення можна представити в наступному вигляді:

Тут ]h[ - ціла частина від h; [p] - модуль р; fi- двійкові оператори, що приймають значення +1 або -1 залежно від знаку Yiабо Zi, і - номер ітерації, причому, ітерації 3, 12,... к, ..., 3(к-1),... повторюються двічі. Параметр р визначає тип обчислюваних функ­цій: р = 0 - лінійні, р = 1 - тригонометричні, р= -1 - гіперболічні; R - параметр, що ви­значає від чого залежить значення fi: якщо R = 0, то f = sign Zi., якщо R= 1, то fi = signYi; C. - константи. В табл. 6.10 представлені функціональні можливості розглянутого алго­ритму при різних значеннях параметрів р, R і різних початкових умовах Х0, Y0, Z0. Тут Кт і Кг - коефіцієнти деформації відповідно тригонометричного і гіперболічного векторів, рівні: Кт= (П (1+2-2(і+1)))1/2 ; Кг = (П (1-2 -2(і-1)!))1/2, де знаком П позначено добуток чисел, взятих в дужки, при і = 0, 1, 2 .., n-1.

Таблиця 6.10





228

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

6.5.3. Табличний метод обчислення елементарних функцій

Ідея цього методу доволі проста: формується таблиця з наперед обчисленими зна­ченнями функції для всіх значень аргументу. Тоді, коли виникає необхідність обчислен­ня якоїсь функції, відбувається звертання до таблиці і зчитування з неї результату. Та­блиця може мати, наприклад, наступний вигляд (табл. 6.11):

Таблиця 6.11



Аргумент

Значення

0000 0001

1001 0111

0000 0010

0011 0100



1111 1111

0011 1011

Часто застосовують комбінований підхід, коли деякі функції обчислюються таблич­но, а інші - за допомогою розкладу в ряд чи ітераційних формул уже з використанням функцій, що обчислюються таблично.

6.5.4. Таблично-алгоритмічний метод обчислення елементарних функцій

Застосування табличного методу вимагає великої за розміром таблиці при обробці аргументів з великою розрядністю, що ускладнює зберігання значень функції та їх по­шук в таблиці. Тому бажано стиснути інформацію, а потім відновити її з мінімальними втратами точності. Вирішення цієї задачі можливе шляхом застосування таблично-ал­горитмічного методу обчислення елементарних функцій. Для таблично-алгоритмічно­го методу характерна наявність арифметичних операцій, необхідних для обчислення поправки, яка додається до знайденого по таблиці значення, що залежить від старшої частини аргументу. Чим вищі вимоги до точності, тим більше арифметичних операцій необхідно виконати. При обчисленні поправки використовуються як загальний, так і частковий підходи. Загальний підхід застосовується для широкого класу функцій, а принципи використання часткового підходу ґрунтуються на застосуванні відомих то­тожностей для кожної конкретної елементарної функції. При загальному підході вико­ристовується співвідношення:

f(X) = f(Xs + Xn-s) = f(Xs) + Ф( Xn-s, Xs),

де Xs - число, утворене s старшими розрядами аргументу X, Xn-s - число, утворене (n-s) молодшими розрядами аргументу X, Ф(Xn-s, Xs) - поправка.

Як видно, при загальному підході поправка залежить як від молодшої, так і від стар­шої частини аргументу. При частковому підході поправка в основному залежить тільки від молодшої частини аргументу. Обидва підходи передбачають використання таблич-но-апроксимаційного і таблично-ітераційного методів обчислень.

Це, зокрема, метод, що ґрунтується на представленні функції у виді суперпозиції двох підфункцій, де поправка задається у вигляді усередненого значення шуканої функції на кінцях підінтервалів, на які розбивається область визначення функції. Однак застосуван-


229

ня цього методу доцільне лише в комп'ютерах, де вимоги до точності невисокі. Можли­вості варіювання обчислювальною складністю та об'ємом таблиць надають методи ку-сочно-лінійної і кусочно-поліноміальної апроксимації, а також методи, що ґрунтуються на розбивці аргументу X на складові X і X , утворені відповідно його старшими та молод­шими розрядами, і розкладанні функції в ряд Тейлора та використанні схеми Горнера.

6.6. Операції перетворення даних

6.6.1. Перетворення даних із формату з фіксованою у формат з рухомою комою та навпаки

Для перетворення даних із формату з фіксованою у формат з рухомою комою та на­впаки спочатку мають бути визначені параметри форматів представлення даних, напри­клад, це перетворення даних із формату з одинарною точністю за стандартом ІЕЕЕ-754 до 32-розрядного формату з фіксованою комою.

При перетворенні даних із формату з фіксованою у формат з рухомою комою потріб­но привести мантису до прийнятого в форматі з рухомою комою діапазону (за стандар­том ІЕЕЕ-754 зробити її нормалізованою), та забезпечити обчислення порядку з тим, щоб не змінилося значення числа. Потрібно відзначити, що будь-яке число в форматі з фік­сованою комою може бути представлено в форматі з рухомою комою. При цьому, якщо розрядність цього числа менша або рівна розрядності мантиси, воно буде представлено точно, якщо ж більша - наближено, оскільки частина молодших розрядів буде втрачена.

При перетворенні даних із формату з рухомою у формат з фіксованою комою по­трібно привести мантису до прийнятого в форматі з фіксованою комою діапазону при зведенні порядку до нульового значення з тим, щоб не змінилося значення числа.

Розглянемо кілька прикладів.

Нехай потрібно перетворити ціле число X = 7910 = 10011112, яке представлене в двій­ковій формі в доповняльному 16-розрядному коді, як показано на рис. 6.24, у формат з рухомою комою розрядністю п=16 = m+k, де к=6 - розрядність порядку, а m=10 - роз­рядність мантиси.

Значення порядку числа визначається з виразу Еx= Px+D, (D = 2k-1 = 32). Тут Рx=n-1 - початкове значення порядку, рівне розрядності числа з фіксованою комою без враху­вання знакового розряду, D - зміщення порядку. Тобто початкове значення експоненти рівне Е = 32+15 = 1011112 . Послідовність перетворення даних із формату з фіксованою у формат з рухомою комою показана в табл. 6.12.

Таблиця 6.12



Номер такту

Мантиса

Експонента

0

0,000000001001111

101111

1

0,000000010011110

101110


230



2

0,000000100111100

101101

3

0,000001001111000

101100

4

0,000010011110000

101011

5

0,000100111100000

101010

6

0,001001111000000

101001

7

0,010011110000000

101000

8

0,100111100000000

100111

Таким чином, елементи числа з рухомою комою визначені. Його значення в заданих межах представлено на рис. 6.25.





Для перевірки правильності результату перетворимо показане на рис. 6.25 число в десяткове:

Нехай потрібно перетворити число Х=-3276810 = -10000000000000002 в формат з ру­хомою комою в тій самій розрядній сітці n= 16 = m+k, де к=6 - розрядність порядку, а m=10 - розрядність мантиси.

Двійковий еквівалент перетворюваного числа в 16-розрядній сітці з фіксованою ко­мою в доповняльному коді має вигляд, показаний на рис. 6.26.

Значення порядку числа визначається з виразу Ех = Рх+D (D = 2k-1 = 32). Тобто по­чаткове значення експоненти рівне Е = 32+15 = 1011112 . Як видно з рис. 6.26, тут до­статньо зсунути перетворюване число на один розряд праворуч, і, тим самим, отримати нормалізовану мантису, залишивши на місці знаковий розряд, та додати до початкового значення порядку одиницю. Тобто при від'ємному значенні мантиса зсувається право­руч, а до порядку добавляється одиниця. Таким чином, елементи числа з рухомою комою визначені. Його значення в заданих межах представлено на рис. 6.27.

Для перевірки вірності результату перетворимо показане на рис. 6.27 число в десят­
кове:
v

X = -0,1.248-32 = - 1000000000 000000,0 (2) = - 32768 (10).


231

6.6.2. Перетворення даних з двійково-десяткового коду в двійковий та навпаки

Як ми вже бачили в попередньому розділі, двійково-десяткова система числення - це система, у якій кожну десяткову цифру від 0 до 9 подають 4-розрядним (або більшої роз-рядності) двійковим еквівалентом. Для виконання перетворення можуть бути викорис­тані відповідні таблиці. Розглянемо приклади.

Нехай потрібно перетворити десяткове число 3691 в двійково-десятковий код.

При перетворенні кожну цифру десяткового числа перетворюють на його двійковий 4-розрядний еквівалент.



Десяткове число

3

6

9

1

Двійково-десяткове число

0011

0110

1001

0001

Отже, 369110 = 0011 0110 1001 00012- 10.

Нехай потрібно перетворити двійково-десяткове число 10000000011100102-10 на де­сятковий еквівалент.

Кожна тетрада двійково-десяткового числа перетворюється на десятковий еквівалент:



Двійково-десяткове число

1000

0000

0111

0010

Десяткове число

8

0

7

2

Отже, 1000 0000 0111 00102_10 = 807210.

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

6.7. Операції реорганізації масивів і визначення їх параметрів

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

Характеристикою масиву є його розмір - загальна кількість елементів у масиві. Інша характеристика масиву - його розмірність, оскільки масиви можуть бути як одновимір-ні, так і багатовимірні, а також розміри в кожному з вимірів.

Над масивами можуть виконуватись наступні операції: сортування, пошук макси­муму або мінімуму, вибір заданого масиву, зсув елементів масиву, стиск масиву, визна­чення параметрів масиву.

Алгоритм сортування - це алгоритм для впорядкування елементів масиву. До алго­ритмів сортування належать такі: сортування за методом бульбашки, сортування мето­дом вставок, сортування злиттям, цифрове сортування, порозрядне сортування, двій­кове дерево сортування, блокове сортування, сортування методом вибору, сортування методом Шелла та інші.


232

Розглянемо основні принципи виконання декількох вищеназваних алгоритмів сор­тування. Завдання сортування полягає в здійсненні перестановки елементів масиву та­ким чином, щоб впорядкувати їх по зростанню чи спаданню їх значень.

При виконанні сортування за методом бульбашки максимальні елементи ніби буль­башки спливають до початку масиву.

При сортуванні вставкою впорядкування елементів масиву здійснюється шляхом порівняння елемента масиву з усіма іншими та його розміщення відповідно до його зна­чення.

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

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

Завдання пошуку максимуму або мінімуму вирішується шляхом розбиття масиву на підмасиви, аж до масиву із двох елементів, та рекурсивного вибору з них більшого або меншого. На рис. 6.28 приведено приклад послідовності дій при знаходженні максимуму або мінімуму для масиву із 8 чисел.

Задачі зсуву елементів масиву по заданій координаті, транспонування масиву та ви­значення параметрів масиву, а також операція стиску (розширення) масиву по заданій координаті, вирішуються шляхом роботи з адресами його елементів у пам'яті.

6.8. Операції обробки символів та рядків символів

Є два типи операцій над символами - аналіз, тобто визначення значення символу, і перетворення, тобто зміна значення кодів символів. До основних операцій над символа­ми належать наступні:

Ідентифікація. Ця операція дозволяє визначити відповідність (невідповідність) значення коду аналізованого символу X коду заданого символу С. Ідентифікація символу X виконується шляхом перевірки збігу коду символу X з кодом символу С, розміщених в основній пам'яті або регістрах, і вказаних відповідними адресами. Результатом операції