УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне...

138
ДЕРЖАВНИЙ УНІВЕРСИТЕТ ТЕЛЕКОМУНІКАЦІЙ На правах рукопису Яскевич Владислав Олександрович УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ ОБЧИСЛЮВАЛЬНОГО ПРОЦЕСУ В БАГАТОЯДЕРНИХ МІКРОПРОЦЕСОРАХ ЦИФРОВОЇ ОБРОБКИ СИГНАЛІВ 05.13.06 «Інформаційні технології» Дисертація на здобуття наукового ступеня кандидата технічних наук Науковий керівник: Онищенко Вікторія Валеріївна, кандидат фізико-математичних наук, доцент Київ – 2016

Transcript of УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне...

Page 1: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

ДЕРЖАВНИЙ УНІВЕРСИТЕТ ТЕЛЕКОМУНІКАЦІЙ

На правах рукопису

Яскевич Владислав Олександрович

УДК 004.272.3

МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ

ОБЧИСЛЮВАЛЬНОГО ПРОЦЕСУ В БАГАТОЯДЕРНИХ

МІКРОПРОЦЕСОРАХ ЦИФРОВОЇ ОБРОБКИ СИГНАЛІВ

05.13.06 «Інформаційні технології»

Дисертація на здобуття наукового ступеня

кандидата технічних наук

Науковий керівник:

Онищенко Вікторія Валеріївна,

кандидат фізико-математичних

наук, доцент

Київ – 2016

Page 2: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

2

ЗМІСТ

ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ ........................................................ 4

ВСТУП ........................................................................................................ 5

РОЗДІЛ 1. АНАЛІЗ ОСНОВНИХ ЗАДАЧ ЦИФРОВОЇ ОБРОБКИ

СИГНАЛІВ ............................................................................................... 11

1.1. Цифрова обробка сигналів ........................................................ 11

1.2. Обчислення коефіцієнтів ЦФ .................................................... 13

1.3. Апаратна реалізація методів множення в обчислювальних

системах ..................................................................................... 19

1.4. Розпаралелювання потоку команд у мультиядерних

мікропроцесорах. ...................................................................... 27

1.5. Постановка наукового завдання ................................................ 34

Висновки до розділу 1 ...................................................................... 35

РОЗДІЛ 2. РОЗРОБКА МАТЕМАТИЧНИХ МОДЕЛЕЙ

ЗАВАНТАЖЕННЯ ЯДЕР МУЛЬТИЯДЕРНОГО

МІКРОПРОЦЕСОРА ............................................................................... 37

2.1. Математичні моделі завантаження ядер багатоядерних

мікропроцесорів ........................................................................ 37

2.2. Математичні моделі взаємодії мультиядерних

мікропроцесорів з пам'яттю ...................................................... 45

2.3. Математична модель взаємодії з пам'яттю системи

мультиядерні мікропроцесор-співпроцесор. ........................... 62

Висновки до розділу 2 ...................................................................... 73

РОЗДІЛ 3. МЕТОДИ ПРИСКОРЕНОГО МНОЖЕННЯ ........................ 74

3.1. Дослідження основних алгоритмів і структур блоків

виконання операцій множення ................................................. 74

Page 3: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

3

3.2. Розробка алгоритму множення по формулі .............................. 83

3.3. Оптимізація табличних методів множення за обсягом

пам’яті ........................................................................................ 88

Висновки до розділу 3 ...................................................................... 91

РОЗДІЛ 4. РОЗРОБКА НЕТРАДИЦІЙНОГО ЛОГІЧНОГО

БАЗИСУ .................................................................................................... 92

4.1. Мультиплексор як логічний елемент ........................................ 92

4.2. Нетрадиційні логічні базиси ...................................................... 96

4.3. Алгебра М-базису ...................................................................... 99

4.4. Операції над мультиплексорами ............................................. 105

4.5. Інверсний М-базис (M-базис).................................................. 109

4.6. Структурна схема спеціалізованого суматора ........................ 114

Висновки до розділу 4 .................................................................... 119

ВИСНОВКИ ........................................................................................... 120

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ............................................... 123

ДОДАТОК А ........................................................................................... 133

ДОДАТОК Б ........................................................................................... 134

Page 4: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

4

ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ

ARM Advanced RISC Machine, поліпшена RISC машина

AVX Advanced Vector Extensions, розширення системи команд

x86 для мікропроцесорів

CISC Complex Instruction Set Computer, комп’ютер зі складним

набором команд

DSP Digital Signal Processor, цифровой сигнальный процессор

FMA Fused Multiply-Add, множення-додавання з однократним

округленням

MAC multiply–accumulate operation, поєднане множення-

додавання

MMX Multimedia Extensions, мультимедійні розширення

RISC Reduced Instruction Set Computing, комп’ютер зі

скороченим набором команд

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

АЦП аналого-цифровий перетворювач

АЦП аналого-цифровий перетворювач

АЧХ амплітудно-частотна характеристика

ЗП запам’ятовуючий пристрій

ЛФ логічна функція

МП мікропроцесор

ПЛІС програмована логічна інтегральна схема

ПП первинний перетворювач

СМО система масового обслуговування

ЦОС цифрова обробка сигналів

ЦФ цифровий фільтр

Page 5: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

5

ВСТУП

Актуальність роботи. Останнім часом з'являється все більше задач, що

вимагають реалізації алгоритмів цифрової обробки сигналів (ЦОС) в режимі

реального часу. Ці завдання часто містять декілька алгоритмів ЦОС і є

ключовими компонентами в багатьох системах: дротового і бездротового

зв'язку, мультимедіа, обробки багатовимірних сигналів, деяких наукових

розрахунках. З ростом числа додатків, що використовують ЦОС, складності

алгоритмів обробки, збільшуються і вимоги до пристроїв ЦОС в плані

підвищення швидкодії. Подальше підвищення продуктивності в даний час

пов'язують з використанням паралельних обчислень.

Поява багатоядерних мікропроцесорів є технічним втіленням

паралелізму. Багатоядерні мікропроцесори можуть використовувати всі види

паралелізму – паралелізм на рівні завдань, паралелізм на рівні команд,

паралелізм на рівні даних.

Розвиток мікроелектронних технологій сприяв появі цілого ряду нових

проектів паралельних процесорів для цифрової обробки сигналів. Ця проблема

знайшла і знаходить в даний час підтримку і увагу до неї світового наукового

і технічного співтовариства.

Досягнуті в цій області успіхи пов'язані з іменами таких вчених, як

К.А. Валієв, Г.Я. Гуськов, В.Б. Бетелін, В.Г. Немудров, В.А. Шахнов,

В.П. Корячко, А.Л. Стемпковський, В.Н. Філатов, Г.Я. Красніков,

Я.Я. Петрічковіч, J.L. Aravena, M. Chen, J. Fortes, H. Kung, S. Kung, S. Li,

R.W. Linderman, D. Moldovan.

Однак на практиці збільшення числа ядер не дає бажаного приросту

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

можна визначити, як відношення продуктивності системи на реальних

додатках до її пікової продуктивності, падає з ростом числа ядер. Це пов'язано

не тільки зі складнощами, що виникають при оптимізації програмного

забезпечення під многоядерную архітектуру, що виражаються в неповному

завантаженні всіх обчислювальних ресурсів системи, а й з неефективністю

Page 6: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

6

власне апаратної частини системи, що приводить до частих простоїв

обчислювальних ядер при обміні даними в системі.

Використання мультиядерних мікропроцесорів породжує ряд проблем:

необхідність балансування завантаження потоків команд; наявність даних, які

необхідно розділити між потоками команд; недостатня кількість об’єктів

синхронізації. Даний перелік не вичерпується зазначеними проблемами.

Таким чином, на сьогоднішній день актуальним науковим завданням є

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

мікропроцесорів для отримання різних числових показників, що

характеризують ефективність їх роботи.

Зв’язок роботи з науковими програмами, планами, темами.

Дисертаційна робота виконана відповідно з поточними та

перспективними планами наукової роботи Державного університету

телекомунікацій за тематикою подальшого розвитку засобів інформаційних

технологій та телекомунікаційних систем. Дослідження тісно пов’язано з

розробкою науково-дослідних робіт, в яких автор приймав особисту участь, а

саме: «Розподілені обчислювані системи на базі телекомунікаційних мереж»

(Державний реєстраційний номер 0115U002978, ДУТ, Київ, 2015–2017 р.). В

даній роботі автором розроблено математичні моделі завантаження ядер

мультиядерного мікропроцесора; «Розробка моделі багатоспутникової

низькоорбітальної системи дистанційного зондування Землі подвійного

призначення» (Державний реєстраційний номер № 0114U000389, ДУТ, Київ,

2014 р.). В даній роботі запропоновано використання комбінаційного методу

прискореного множення; «Управління системами зі складною (дробовою та

дискретно-неперервною) динамікою в інфокомунікаціях» (Державний

реєстраційний номер 0115U002977, ДУТ, Київ, 2015–2017 р.). В даній роботі

автором запропоновано використання мультиплексорного логічного базису

для побудови складних логічних схем.

Page 7: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

7

Мета та завдання дослідження.

Метою даної роботи є підвищення продуктивності пристроїв цифрової

обробки сигналів шляхом покращення процесу розпаралелювання

обчислювального процесу по ядрах мікропроцесора.

Для досягнення поставленої мети в дисертаційній роботі вирішуються

такі наукові завдання:

1. Аналіз основних задач цифрової обробки сигналів, та якість

розпаралелювання потоку команд у мультиядерних мікропроцесорах.

2. Розробка математичної моделі завантаження ядер мультиядерного

мікропроцесора.

3. Розробка математичної моделі взаємодії мультиядерного

мікропроцесора з пам'яттю.

4. Розробка математичної моделі взаємодії з пам'яттю системи

мультиядерний мікропроцесор-співпроцесор.

5. Визначення шляхів поліпшення якості розпаралелювання потоку

команд по ядрах мікропроцесора.

6. Удосконалення табличних методів множення з мінімізацією обсягу

пам'яті

7. Обґрунтування використання мультиплексорного логічного базису

для побудови складних функціональних вузлів.

Об’єктом досліджень є процес розпаралелювання потоку команд по

ядрах мікропроцесора.

Предметом дослідження є мультиядерні процесори цифрової обробки

сигналів.

Методи дослідження. В роботі використані: теорія систем масового

обслуговування, теорія програмування, теорія графів, теорія паралельних

обчислювальних систем, при розробці математичних моделей завантаження

ядер мультиядерного мікропроцесора, теорія і алгоритми цифрової обробки

сигналів, теорія і методи проектування інтегральних схем, для удосконалення

методів множення з мінімізацією обсягу пам’яті в мультиядерних процесорах.

Page 8: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

8

Наукова новизна одержаних результатів полягає в тому, що в

дисертаційній роботі:

1. Вперше розроблено математичні моделі завантаження ядер

мультиядерного мікропроцесора, які базуються на використанні теорії

масового обслуговування, що дозволяє аналізувати ймовірності завантаження

ядер мікропроцесора для різних варіантів роботи та обрати оптимальні

параметри обчислювальної системи.

2. Удосконалені методи прискореного множення, які відрізняються від

існуючих комбінацією табличних, матричних та класичних методів, що

дозволяє зменшити виконання довгої за часом операції множення, та

збільшити продуктивність пристроїв цифрової обробки сигналів.

3. Отримала подальший розвиток методика використання

мультиплексорного логічного базису для побудови складних функціональних

вузлів обчислювальних схем, яка відрізняється від існуючих використанням

логічних функцій трьох змінних (f53 та f202), що дозволяє реалізувати складні

схеми суматорів в пристроях прискореного множення.

Практичне значення отриманих результатів.

Розроблені математичні моделі завантаження ядер мікропроцесора

дозволяють провести аналіз ймовірності завантаження ядер мультиядерних

процесорів для різних варіантів роботи та обрати оптимальні параметри

обчислювальної системи. Удосконалені табличні методи множення

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

виконуються за меншу кількість тактів, ніж класичні методи множення.

Запропоновано та схематично реалізовано у мультиплексорному логічному

базисі спеціалізований суматор для блоку прискореного множення, що

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

апаратурні та енергетичні витрати.

Результати роботи застосовані в Інституті проблем реєстрації інформації

НАНУ (акт від 26.04.2016), в ТОВ «СИТЕС-сек’юрити» (акт від 18.02.2015).

Реалізовані в багатоканальних засобах радіочастотного контролю та

Page 9: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

9

радіочастотного моніторингу в Державному підприємстві «Український

державний центр радіочастот» (акт від 15.01.2016). Також методика

використання мультиплексорного логічного базису для побудови складних

функціональних вузлів обчислювальних схем впроваджена в навчальний

процес Військового інституту телекомунікацій та інформатизації (акт від

04.05.2016) та в навчальний процес Державного університету телекомунікацій

(акт від 15.01.2016).

Наукова і технічна новизна та оригінальність підтверджена авторським

свідоцтвом на винахід та свідоцтвом з авторського права на комп’ютерну

програму.

Обґрунтованість і достовірність наукових положень, висновків і

рекомендацій, досягаються коректним використанням методів досліджень та

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

досліджень та моделюванням на ЕОМ, забезпечена використанням сучасних

теорій та комплексним характером досліджень, узгодженістю отриманих

результатів з даними інших авторів, обговоренням висунутих наукових

положень та зроблених висновків на багатьох міжнародних науково-технічних

конференціях. Отримані експериментальні результати знаходяться в якісній та

кількісній відповідності до висунутих теоретичних положень.

Особистий внесок здобувача. Усі наукові результати, опубліковані в

[1–18], отримані автором особисто. У роботах, опублікованих у співавторстві,

автору належить: в [1] запропонував два методи прискореного множення, що

дає можливість покращити параметри розпаралелювання потоку команд; в [4]

запропоновано використання в логічного базису на мультиплексорах; в [5]

розроблено аналітичне обґрунтування використання мультиплексорного

логічного базису для проектування складних функціональних вузлів

обчислювальних схем, що дозволяє реалізувати схеми складних суматорів.

Основні наукові положення та висновки, які складають суть дисертації,

автор сформулював особисто.

Page 10: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

10

Апробація результатів дисертації. Основні результати роботи, а так

само результати, відносяться до тематики положень, винесених на захист,

доповідалися на десяти науково-технічних конференціях:

IV Міжнародна науково-методична конференції «Сучасні тенденції

розвитку вищої освіти, трансформація навчального процесу у технологію

навчання»; IV Міжнародна науково-технічній конференції «Сучасні

інформаційно-комунікаційні технології» COMINFO’2008-Livadia;

V Міжнародна науково-методична конференція «Сучасні тенденції розвитку

вищої освіти, трансформація навчального процесу у технологію навчання»;

V Міжнародна науково-технічна конференція «Сучасні інформаційно-

комунікаційні технології» COMINFO’2009-Livadia; VІІ Міжнародна науково-

технічна конференція «Сучасні інформаційно-комунікаційні технології»

COMINFO’2011-Livadia; VІІІ Міжнародна науково-технічна конференція

«Сучасні інформаційно-комунікаційні технології» COMINFO’2012-Livadia;

ІІ Міжнародна науково-технічної конференція «Проблемы Информатизации»;

І Міжнародна науково-технічна Інтернет-конференція «Актуальні проблеми

розвитку науки і техніки»; ІІ Українська конференція молодих науковців

«Інформаційні технології – 2015».

Публікації. За темою дисертаційної роботи опубліковано 18 наукових

праць, серед яких: 5 наукових статей [1–5] у фахових виданнях, 10 публікацій

[6–15] у матеріалах доповідей наукових конференцій, 1 рішення про видачу

патента на корисну модель [16], 1 авторське свідоцтво на винахід [17],

1 свідоцтво про авторське право на комп’ютерну програму [18].

Структура дисертації. Робота складається зі вступу, чотирьох розділів,

висновків, списку використаних джерел та додатків. Загальний обсяг роботи

складає 138 сторінок друкарського тексту, який у тому числі містить

122 сторінки основного тексту, який супроводжується 50 рисунками та

20 таблицями, 10 сторінок списку використаних джерел, який містить

109 найменувань, та 6 сторінок додатків.

Page 11: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

11

РОЗДІЛ 1

АНАЛІЗ ОСНОВНИХ ЗАДАЧ ЦИФРОВОЇ ОБРОБКИ СИГНАЛІВ

Останнім часом з'являється все більше завдань, що вимагають реалізації

алгоритмів цифрової обробки сигналів (ЦОС) в режимі реального часу. Ці

завдання часто містять кілька алгоритмів ЦОС [19] і є ключовими

компонентами в багатьох системах: дротового і бездротового зв'язку,

мультимедіа, обробки багатовимірних сигналів, деяких наукових розрахунках.

З ростом числа додатків, що використовують ЦОС, складності алгоритмів

обробки, збільшуються і вимоги до пристроїв ЦОС в плані підвищення

швидкодії. Подальше підвищення продуктивності в даний час пов'язують з

використанням паралельних обчислень [20, 21]. Поява багатоядерних

мікропроцесорів є технічним втіленням паралелізму [22]. Багатоядерні

процесори можуть використовувати всі види паралелізму – паралелізм на рівні

завдань, паралелізм на рівні команд, паралелізм на рівні даних.

1.1. Цифрова обробка сигналів

Цифрова обробка сигналів традиційно містить у собі створення засобів

чисельного перетворення виміряної в дискретні моменти часу процесу зміни

деякої неперервної фізичної величини, з метою отримання з неї корисної

інформації про іншу фізичну величину, що міститься у виміряному сигналі

[23, 24, 25, 26].

Загальна схема утворення вимірювального сигналу й процесу його

перетворення з метою одержання необхідної інформації про величину, яка

повинна бути виміряна, представлена на рис. 1.1.

Фізична величина, що є корисною, рідко має таку фізичну норму, що

може бути безпосередньо виміряна. Зв’язок між цими двома величинами

позначено введенням ланки, що названа первинним перетворювачем (ПП).

Звичайно, закон перетворення відомий заздалегідь, інакше відновити

інформаційну складову надалі було б неможливо. ПП вносить залежність

Page 12: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

12

сигналу, що вимірюється, від деяких інших фізичних величин. Внаслідок

цього вихідна величина містить, крім корисної інформаційної складової, інші

шкідливі складові, що спотворюють корисну інформацію. І хоча залежність

виходу ПП від цих інших величин також відома, однак внаслідок

неконтрольованої можливої зміни останніх згодом важко спрогнозувати їх

вплив на спотворення корисної складової. Внесену ПП шкідливу складову

називають шумом ПП. В свою чергу, створена в такий спосіб безпосередньо

вимірювана величина, виміряється деяким вимірником. Реальний вимірник

будь-якої конструкції вносить власні спотворення у вимірювану величину й

додаткові залежності від інших фізичних величин, що не є об’єктом виміру. Ці

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

сигнал (вимірювана величина), який надалі перетворюється різними

пристроями.

Первинний

перетворювач

Вимірювач

Дискретний

перетворювач

Фільтр

Корисний сигнал

Корисний сигнал

Шум ПП

Шум Вимірювача

Шум дискретизації

Вимірювана

величина

Виміряна

величина

Масив

вимірювань

Рис. 1.1. Загальна схема процесу цифрової обробки сигналу

Page 13: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

13

Для здійснення ЦОС вимірювана величина повинна бути перетворена в

дискретну форму за допомогою спеціального пристрою – аналогово-

цифрового перетворювача (АЦП). АЦП також вносить вчасні спотворення у

вихідний сигнал, однак ними зневажають, тому що в більшості випадків ці

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

Для того, щоб на основі наявного дискретизованого сигналу одержати

корисний сигнал, потрібно розрахувати та створити пристрій або програму для

комп’ютера, що здійснювали би такі перетворення вхідного дискретного в часі

сигналу, щоб на його виході спотворення, внесені шумами ПП і вимірника були

мінімізовані. Такі пристрої та програми називають цифровими фільтрами (ЦФ).

У загальному випадку створення ЦФ є складною задачею, тому вона

вирішується тільки для деяких найпоширеніших на практиці випадків – для

лінійних систем ЦОС.

Процес створення розрахунку фільтра включає:

• на основі апріорної інформації про моделі ПП і вимірника та про

характеристики шумів, а також про завдання, яке має вирішувати фільтр,

вибирається деякий тип фільтра з кількох відомих з розробленою теорією

проектування;

• на основі конкретних числових даних розраховуються числові

характеристики обраного типу ЦФ;

• перевіряється ефективність виконання розробленим фільтром

поставленого перед ним завдання; для цього треба зімітувати на комп’ютері

дискретний сигнал, що містить корисну складову з накладеними на нього

передбаченими шумами ПП і вимірника, пропустити його через отриманий

ЦФ та порівняти сигнал на вході з відомою корисною його складовою; різниця

між ними буде характеризувати похибки виміру на виході ЦФ.

1.2. Обчислення коефіцієнтів ЦФ

Будь-який ЦФ [27, 28] в часовому просторі описується різницевим

рівнянням (1.1):

Page 14: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

14

1

0 1

N M

i j

i j

V kT b u kT iT a V kT jT

, (1.1)

де u kT – відліки вхідних сигналів;

V kT – відліки вихідних сигналів;

,i jb a – постійні коефіцієнти рівняння;

,N M – постійні цілі числа, які характеризують порядок ЦФ.

У такому вигляді різницеве рівняння характеризує рекурсивний ЦФ.

Якщо всі коефіцієнти 0ja , то рівняння описує нерекурсивний ЦФ [29, 30,

31]. Відповідно рівняння (1.1) структурна схема ЦФ в загальному випадку

виглядає так (рис. 1.2). Алгоритм роботи ЦФ полягає в тому, що для кожного

дискретного моменту часу kT необхідно одночасно виконати N M множень

та 1N M додавань.

Рис. 1.2. Структурна схема ЦФ

Існує кілька методів розрахунку коефіцієнтів рівняння (1.1). Для

прикладу приводиться алгоритм розрахунку коефіцієнтів нерекурсивного ЦФ

5-го порядку з асиметричними коефіцієнтами.

Page 15: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

15

Для даного випадку різницеве рівняння має вигляд:

4

0n

n

V kT b U kT nT

, (1.2)

де за умовою b0 = b4, b1 = b3, b2. (1.3)

Передатна функція

4

0

Z n

nn

W b Z

, (1.4)

після підстановки 2

exp ,Z jcoT V

у вираз (1.4) та переносу

початку координат (рис. 1.3) перетворюється в частотну характеристику

2 2

1 01 1

2 2

01 0

exp 2 exp 2

exp 2 cos 2 ,

l ll l

l ll l

A V l b b jl V b jl V

b b jl V C l V

(1.5)

де С0 = b0; Cl = 2bl. (1.6)

Коефіцієнти Сl знаходяться по рівнянням, які можна одержати із виразу

критерію мінімуму квадрата різниці між ідеальною та реальною АЧХ

(рис. 1.4).

0 1 2 3 4

b0 = b4

b1 = b3

b2

b3 = b1

b4 = b0

n

– 2 – 1 0 1 2

b–2

b-1

b0

B1

B2

l

Рис. 1.3. Перенос початку координат

Page 16: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

16

V

Ідеальна АЧХ

Реальна АЧХ

А

1

0

wp0 wp1 wz0 wz1

0,5

Рис. 1.4. Ідеальна та реальна АЧХ

1 1

0 0

2 2

1 11 0 minwp wZ

p zwp wZ

G C q A V C dV q A V C dV , (1.7)

де qp, qZ — вагові коефіцієнти складових критерію;

0 1wp wp — діапазон частот, де АЧХ = 1;

0 1wz wz — діапазон частот, де АЧХ = 0.

1 0 1 2cos 2 cos 4 .A VC C C V C V

У даному випадку АЧХ відповідає фільтру низьких частот: перший

діапазон пропускає частоти, другий задержує.

Згідно методиці методу найменших квадратів, щоб коефіцієнти Сl

мінімізували критерій G (с), необхідно часткові похідні критерію по С0, С1, С2

прирівняти нулю:

0

0G c

C

;

1

0G c

C

;

2

0G c

C

.

Page 17: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

17

Отримуємо похідні:

1, 0 0 1,1 1 1, 2 2 0

2, 0 0 2,1 1 2, 2 2 1

3, 0 0 3,1 1 3, 2 2 2

,

,

,

D C D C D C E

D C D C D C E

D C D C D C E

(1.8)

де

1

0

1

0

, cos 2 cos 2

cos 2 cos 2 ;

wp

m i p

wp

wz

z

wz

D q i V m V dV

q i V m V dV

1

0

cos 2 .

wp

m p p

wp

E q q m V dV

Рішення системи (2.8) в матричному вигляді дає результат:

1C D E (1.9)

Приклад.

Знайти коефіцієнти нерекурсивного ЦФ 7-го порядку для таких

діапазонів частот:

0 1

0 1

полоса пропускання 0; 0,2,

полоса затримування 0,35; 0,5.

wp wp

wz wz

Вагові коефіцієнти виберемо

для полоси пропускання 2,

для полоси затримування 10.

qp

qz

Допоміжні коефіцієнти

7 1 / 2 3;

; 0, 1, 2, 3.

K

i m

Page 18: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

18

Відповідно методу найменших квадратів отримуємо рівняння:

3

1

0

0,2 0,5

2 2

0 0,35

0,2 0,5

,

0 0,35

0,2

0

cos 2 ,

2 [1 , ] 10 [ , ] ,

, , cos 2 cos 2 ,

2 , , 10 , , ,

2 cos 2 .

i

i

m i

m

A w c c j w

G c A w c dw A w c dw

f i m w j w m w

D f i m w dw f i m w dw

E m w dw

A (wt, C)

0,50,40,30,20,10

– 1

– 0,5

0

0,5

1

1,5

wt

Рис. 1.5. Амплітудно-частотна характеристика ЦФ

Після підстановки числових даних отримуємо:

1,9 0,985 0,85 0,226

0,985 1,375 0,606 0,27

0,85 0,606 0,795 0,333

0,226 0,27 0,333 0,897

D

.

Page 19: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

19

0,4 0,527

0,303 0,606; ;

0,094 0,04

0,062 0,134

E C

Коефіцієнти ЦФ знаходяться по величинам Сі:

0,067

0,02

0,303

0,527

0,303

0,02

0,067

B

АЧХ фільтру приведена на рис 1.5.

1.3. Апаратна реалізація методів множення в обчислювальних

системах

Як витікає з попереднього підрозділу, програмна реалізація основного

виразу цифрового фільтру показує, що серед всіх алгоритмічних дій переважає

у відсотковому відношенні дія множення з одночасним додаванням для

отримання часткових сум:

1 1 ,i is s bu

2 2 .j is s a v

Тому для прискорення реалізації виразу ЦФ необхідно в першу чергу

прискорити цю відносно складну математичну операцію, що в свою чергу

потребує прискорення операцій множення та додавання.

Реалізація операції множення апаратними методами є нетривіальним

завданням при розробці високопродуктивних обчислювачів. Апаратна

реалізація методів множення є більш кращою у порівнянні з мікропрограмного

Page 20: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

20

та програмною у зв'язку з тим, що дана операція часто зустрічається в процесах

обробки сигналів, наприклад фільтрації, перетворень Фур’є [32, 33], і

швидкість її виконання може стати критичною для тривалості всього процесу

розрахунку. Розглянемо існуючі методи множення, а також засоби їх апаратної

підтримки, реалізовані в різних технологічних рішеннях.

Коротка історія

У 50-ті роки в ЕОМ першого і другого поколінь використовувалися

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

У них числа представлялися в двійковому несиметричному коді (0, + 1) і

розглядалися як неподільне ціле, для яких всі найважливіші характеристики

жодним чином не пов'язані з формою подання чисел. Швидкодія створених на

їх основі пристроїв досягало 10 тисяч операцій в секунду, що не відповідало

зростаючим вимогам до обчислювальних систем.

У середині 60-х років в СРСР і США з'явилися окремі роботи, які

розвивали нове уявлення числа у вигляді композиції цифр, що базуються на

ітераційних процесах отримання вірних цифр результату, в тому числі і

старшими розрядами вперед. У роботах Волдера Д. і Меджита Д. був

реалізований метод «цифра за цифрою» з поданням чисел в коді (+ 1, –1).

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

У статтях Лиждвой Г.Л., Шилейко А.В. розглядається використання теорії

комплексних чисел, що зачіпає питання аналізу похибок при схемній

реалізації методу "цифра за цифрою" в коді (0, + 1). X. Маркс продовжив

подальший розвиток цього методу в дослідженнях в симетричному коді (–1, 0,

+1), які також знайшли відображення в роботах A.M. Шаумана,

А.А. Маханова. Паралельно створювалася апаратна підтримка методів,

зокрема з'явилися матричні схеми виконання арифметичних операцій.

З 70-х і початку 80-х років спостерігався бурхливий прогрес у

виробництві обчислювальної техніки внаслідок вдосконалення технології

виробництва та елементної бази. Також розвивалося математичне

забезпечення. Широке застосування, поряд з наведеними методами, отримав

Page 21: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

21

спосіб «Чвертьквадратичного множення», заснований на використанні

табличних даних, що зберігаються в запам’ятовуючому пристрою (ЗП). Так,

наприклад, фірма IBM пропонувала програмні модулі, засновані на

використанні таблиць для застосування на верстатах з ЧПК. В цей же час

розвивався спосіб «Додавання часткових добутків», описані в роботах Бута.

Починаючи з 90-х років, підвищення ступеня інтеграції надвеликих

інтегральних схем (НВІС) дозволило застосовувати матричні і табличні схеми

в апаратних реалізаціях методів множення з можливістю паралельного та

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

кількості вентилів на кристалі, гостріше постає проблема синхронізації і

затримок елементів, внаслідок чого активно розвивається напрямок

асинхронних і пристроїв, які самосинхронізуються. Формалізація методів

паралельної обробки інформації була розроблена ще в 50-х роках

А.А. Марковим [34]. На їх основі були запропоновані Ачасовой С.М. і

Бандман О.Л. швидкісні паралельні суматори [35].

Апаратна підтримка методів множення в універсальних процесорах

Створення мікропроцесора зазвичай приписують компанії Intel, яка 15

листопада 1971 року представила 4 бітний процесор 4004, який був частиною

мікрокомп’ютера MCS-4 та працював на частоті 108 кГц. Арифметико-

логічний пристрій (АЛП) був розрахований на операцію множення чисел з

фіксованою точкою розрядності 4 біти, за кілька тактів зсуву і складання.

Операція множення чисел із плаваючою точкою і подвоєною розрядністю

мала реалізовуватися програмно, наслідком чого була низька продуктивність

процесора при інтенсивних арифметичних обчисленнях.

У квітні 1972 року компанія Intel випустила процесор 8008, який

працював на частоті 200 кГц. Він містив 3500 транзисторів і вироблявся за 10-

мікронною технологією. Шина даних була 8-розрядної, що дозволяло

адресувати 16 Кбайт пам'яті. Цей процесор призначався для використання в

терміналах і програмованих калькуляторах.

Page 22: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

22

У червні 1978 року Intel випустила процесор 8086, який містив набір

команд під кодовою назвою х86. Цей же набір команд досі підтримується в

найсучасніших процесорах Соге i7 і АМО Phenom11. Процесор 8086 був

повністю 16-розрядним. Він містив 29 тис. транзисторів і працював на частоті

5 МГц. Завдяки 20-розрядної шини адреси він міг адресувати 1 Мбайт пам'яті.

Операція множення виконувалася, як суміш операцій зсуву та додавання, для

8 бітних чисел за 70–77 тактів, для 16 бітних за 118–133 тактів [36].

Істотні зміни в блоці АЛП були реалізовані в 32 бітному процесорі Intel

80386, який мав 32 розрядну шину даних, адресну шину та внутрішні регістри.

За рахунок конвеєризації вибірки і дешифрування команд даний процесор

забезпечив велике завантаження АЛП. Оптимізована схема помножувача

дозволила виконувати операції множення над 32 бітними цілими числами за

9–38 тактів, залежно від довжини значущих бітів множника [37].

Розвиток засобів мультимедіа, а також необхідність підвищення

продуктивності виконання операцій множення двох чисел, множення масивів

на число та інших матричних операцій, призвела до того, що в нових

поколіннях процесорів фірми Intel були вбудовані додаткові блоки

помножувачів, що дозволяють, поряд з введенням розширеного набору

інструкцій ММХ, виконувати паралельно до 2 операцій множення, за рахунок

застосування суперскалярної архітектури з двома конвеєрами [38].

Процесори Intel Pentium III працюють на тактових частотах від 450 МГц

до 1.2 ГГц, обладнані вдосконаленим набором мультимедійних команд

потокової обробки ММХ2. У Pentium III використовуються 3 незалежних

конвеєра із збільшеною кількістю ступенів, які дозволяють виконувати

одночасно до 3 операцій множення над 32 бітними операндами. Така

технологія привела до значного збільшення тактової частоти при використанні

аналогічного технологічного процесу 0,18 мікрон. Тим часом і в цих

процесорах число тактів для множення 32 бітних чисел дорівнює 9–38, і 3–19

для множення 16 бітних чисел, що свідчить про застосування однієї з

модернізованих схем на основі алгоритму зсуву-додавання в якості реалізації

Page 23: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

23

методу множення. В моделях процесорів Pentium 4, з тактовою частотою від

1.4 ГГц, час виконання математичних операцій зменшено за рахунок роботи

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

ступенів конвеєризації та прогнозування переходів.

В процесорах Intel Core четвертого покоління, відомих під кодовим

найменуванням Haswell з'явилися додаткові набори інструкцій: AVX2, FMA3

і BMI.

Набір інструкцій AVX2 (Advanced Vector Extensions) є розширенням

набору інструкцій AVX, який присутній в мікроархітектурі Sandy Bridge.

Взагалі, набір інструкцій AVX є логічним продовженням наборів інструкцій

SSE, SSE2, SSE3 і SSE4. Для обробки даних в інструкціях AVX

використовується 16 векторних регістрів розрядністю по 256 біт, завдяки чому

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

чотирьох 64-розрядних чисел з використанням AVX-команди можливо всього

за один такт, в той час як без AVX-інструкції для цього буде потрібно чотири

такту.

Новий набір інструкцій FMA3 (Fused Multiply Add) призначений для

проведення операцій суміщеного множення і додавання над трьома

операндами.

Використання операцій FMA3 дозволяє більш ефективно реалізувати

операції ділення, добування квадратного кореня, множення векторів і матриць

і т.д. Набір FMA3 включає 36 інструкцій з плаваючою точкою для виконання

256-бітних обчислень і 60 інструкцій для 128-бітних векторів.[39]

У процесорах, побудованих на основі RISC архітектури, також

вирішується завдання апаратної підтримки методів множення. Розробками в

цій області займаються фірми Hitachi, Motorola, SPARC та інші.

У сучасних процесорах ARM (Advanced RISC Machines)

використовуються різні модифікації помножувача Бута (Booth), що забезпечує

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

процесора ARM7 обробляє за один такт 8 біт операнда, при цьому

Page 24: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

24

перемножування двох 32 бітних чисел займає чотири такту і один додатковий

такт на завантаження регістрів. Архітектура даного процесора містить засоби

раннього завершення. У деяких додатках обробки сигналів та ряді інших

довжина слова даних становить 12 або 16 біт, так що два старших байти 32-

розрядного машинного слова можуть ігноруватися, при цьому множення двох

16-розрядних слів здійснюється за два такти.

У процесорах StrongARM використовується 12-розрядний помножувач

Бута, який дозволяє виконувати множення за один машинний такт. Дані

процесори мають паралельну організацію виконавчого конвеєра, що

призводить до додаткової економії машинних тактів за рахунок того, що

множення проводиться в одній частині конвеєра, в той час як завантаження

регістрів – в інший [40].

Суттєвим є той факт, що в мікропроцесорах ARM результат операції

множення доступний для подальшого використання відразу ж після її

завершення. При цьому в інших RISC-процесорах, наприклад SH-3 компанії

Hitachi, результат множення виявляється доступний тільки після закінчення

одного додаткового такту.

Засоби апаратної підтримки алгоритмів множення в першу чергу

призначені для отримання максимальної швидкодії при виконанні цієї операції

в пристроях, що визначає перспективність розвитку пристроїв у напрямку

розпаралелювання підзадач множення, конвеєрізації ступенів процесу

обчислення.

Апаратна підтримка методів множення в процесорах цифрової

обробки сигналів

В даний час традиційною елементною базою для реалізації апаратної

підтримки операції множення служать спеціалізовані функціональні

мікросхеми або однокристальні цифрові процесори обробки сигналів DSP

(Digital Signal Processor), що дозволяють обробляти цифрові потоки даних в

реальному часі з гарантованою затримкою отримання результату обчислень.

Page 25: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

25

Більшість цифрових сигнальних процесорів мають у своєму складі

апаратний помножувач, що дозволяє виконувати множення як мінімум двох

чисел за один командний такт. До складу набору команд сигнальних

процесорів також включаються такі операції, як множення з накопиченням

MAC (С = АВ + С) з вказаним в команді числом виконань в циклі і з правилом

зміни індексів використовуваних елементів масивів А і В), інверсія біт-адреси,

різноманітні бітові операції, апаратна підтримка програмних циклів, кільцевих

буферів.

Сигнальні процесори працюють на порівняно низьких тактових

частотах, це обумовлено реалізацією однотактного множення, а також

застосуванням команд, які використовують в якості операндів вміст комірок

пам'яті. Подібна спеціалізація не дозволяє збільшувати продуктивність за

рахунок швидкого виконання коротких команд, як це робиться в

універсальних процесорах.

Типові DSP операції вимагають виконання безлічі простих додавань і

множень. Ці операції вимагають: провести вибірку двох операндів, виконати

додавання множення (зазвичай обидві операції), зберегти результат або

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

сигнальних процесорів: більш дешеві мікропроцесори для обробки даних у

формі з фіксованою точкою і дорожчі мікропроцесори, що апаратно

підтримують операції над даними у форматі з плаваючою крапкою.

Апаратна реалізація методів методів множення в ПЛІС

Для реалізації специфічних алгоритмів обробки інформації

застосовуються програмовані логічні інтегральні схеми (ПЛІС). Вони

дозволяють отримувати високопродуктивні пристрої з можливістю

реконфігурації використовуваних схем при зміні обчислювального

навантаження, процесів обробки та математичного забезпечення без їх заміни.

З появою елементної бази швидкодіючих і мають високий ступінь

інтеграції програмованих логічних інтегральних схем стало можливим

реалізовувати операції множення у вигляді макромодулей для ПЛІС AMD,

Page 26: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

26

Altera, Xilinx [41]. ПЛІС Xilinx ХС4000Е дозволяють розробляти помножувачі

з швидкодією більше 200 МГц. і розташовувати понад 100 модулів

помножувачів на одному кристалі [42].

При роботі з операндами невеликої розрядності (4 і менше) найбільш

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

паралельний помножувач у вигляді масиву однорозрядних суматорів,

пов'язаних локальними сполуками, при цьому загальне число суматорів

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

паралельний помножувач 4 × 4 вимагає для своєї реалізації 12 суматорів. При

цьому подальшому нарощуванні розрядності операндів матриця

однорозрядних суматорів значно збільшується.

Для зменшення апаратних витрат можна використовувати алгоритму

Бута. Застосування даного алгоритму дозволяє зменшити кількість суматорів,

необхідних для реалізації операції множення, шляхом введення попереднього

аналізу пар бітів множників, з подальшим формуванням скороченого списку

зрушень і складань, які можуть бути виконані на суматорах зі змінною

розрядністю. Така структура обчислень дозволяє успішно буферизувати

кожну стадію і виконувати конвеєрну обробку даних з мінімальними

затримками в обчисленні кожній стадії конвеєра.

В архітектурі ПЛІС ХС4000Е мультиплексування одного розряду і

наступна функція підсумовування реалізується в одному конфігурованому

логічному блоці (КЛБ), використовуючи по одному функціональному

генератору для кожної дії. При такому близькому розташуванні елементів

функціональної схеми досягається виграш в значному скороченні довжини

з'єднань, що збільшує продуктивність схеми. Логіка прискореного

перенесення між сусідніми розрядами суматорів також вносить істотний

внесок у загальне збільшення продуктивності.

За рахунок регулярності такої структури побудови швидкодію пристроїв

можна різко підвищити шляхом введення конвеєризації кожного ступеня. При

цьому розділяються конвеєрними регістрами як суматори, так і

Page 27: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

27

мультиплексори, що призводить до збільшення швидкодії, особливо при

обробці операндів великої розрядності.

Згортка розрядів однакових ваг часткових добутків здійснюється з

використанням дерева Уолша, яке являє собою матрицю однорозрядних

суматорів з діагональним поширенням перенесення, але реалізації подібного

рішення вимагає значних апаратних витрат. При конвеєризації матриці на

кожній стадії підсумовування забезпечується максимально досяжну

швидкодію, оскільки однорозрядні суматори кожному ступені безпосередньо

пов'язані з тригерами регістрів конвеєра. Тим часом в даному випадку

одночасно зі зростанням продуктивності різко зростає обсяг задіяної логіки

ПЛІС, особливо для розрядностей операндів більше 12 біт [43].

На основі комбінації алгоритму Бута і Чапмена на ПЛІС Xilinx

спроектовані макромодулі помножувачів з різною розрядністю і способом

тактування. При реалізації помножувачів широко використовуються всі

характерні особливості серії ХС4000Е: логіка прискореного перенесення,

взаємне відносне орієнтування макросів (за допомогою атрибуту RLOC), а

також примусове обмеження затримок поширення сигналів по кристалу

(Timespec).

Дані інженерні рішення дозволили отримати високу швидкодію

реалізованої структури при компактному топологічному розміщенні модуля

помножувача на кристалі. Швидкодія модуля і його топологія залишаються

гарантовано незмінними при будь-якому типу логіки, навколишнього

макросу [44].

1.4. Розпаралелювання потоку команд у мультиядерних

мікропроцесорах

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

з появою мультиядерних мікропроцесорів. Одним із головних завдань під час

розпаралелювання на кінцевому етапі є розподіл потоку команд довільної

програми по ядрам мікропроцесора [1].

Page 28: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

28

Якість процесу розподілу команд для мікропроцесора з n ядрами можна

оцінити такими параметрами як коефіцієнт розпаралелювання і коефіцієнт

простою кожного ядра.

Коефіцієнт розпаралелювання ядра:

( ) ir

mk i

M , (1.10)

де M – загальне число команд в програмі,

im – число команд, які виконуються i-м ядром.

Коефіцієнт простою ядра:

( )p

p

t ik

T , (1.11)

де T – загальний час виконання програми,

( )pt i – час простою i-го ядра.

В ідеальному випадку коефіцієнт розпаралелювання i-го ядра повинен

мати значення близьке до

1

( )rk in

. (1.12)

Реально значення коефіцієнтів знаходяться в межах

0 ( ) 1rk i . (1.13)

Близькість коефіцієнта до одиниці характеризує більшу залежність

кожної команди від попередніх, що ускладнює процес розпаралелювання.

Близькість коефіцієнта до нуля свідчить, що ядро практично працює вхолосту.

Для коефіцієнта простою ідеальним значенням є значення близьке до

нуля.

Якщо не вживати жодних заходів, зазначені параметри приймають

значення відмінні від ідеальних. Здебільшого можна припустити, що для

отримання значень параметрів близьких до оптимальних є створення на етапі

проектування алгоритмів, які піддаються розпаралелюванню.

Page 29: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

29

Особливості розпаралелення потоку команд покажемо на конкретних

прикладах різного призначення [45, 46].

Приклад 1. Формування масиву натурального ряду чисел.

Алгоритм розв’язку задачі ( 0, 1, 2, )iU i i N

.model tiny

.data

i db ?

N equ 10

U db N dup (?)

.code

.startup

mov i, 0

mov si, 0

m: mov al, i

mov U[si], al

inc i

inc si

cmp i, N

jna m

.exit

End

Розпаралелювання виконаємо для двоядерного МП.

Ядро 1 Ядро 2

mov i, 0

mov al, i

mov U[si],al inc si

jna m

mov si , 0

-

inc i

cmp i, N

-

Page 30: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

30

Пропуски в колонці для ядра 2 означають, що в цей момент часу ядро

знаходиться в режимі простою внаслідок очікування завершення попередньої

команди ядра 1.

Розрахунок коефіцієнтів дає такі результати

5(1) 0,625

8rk ,

3(2) 0,375

8rk .

Приклад 2. Введення цілих чисел з клавіатури.

Асемблерна програма в розпаралеленому вигляді наведена далі:

Ядро 1 Ядро 2

mov d,0

int 21h

je exit

cmp al,‘-’

jl minus

cmp al, ‘0’

jl read

cmp al, ‘9’

ig read

jmp number

minus: mov al, al

int 21h

read: mov ah, 8

int 21h

cmp al, 0dh

je exit

cmp al, ‘0’

jl read

cmp al, ‘9’

ig read

number: mov bl, al

sub al, ‘0’

mov cx,ax

mov ax, 10

mov al

je read

add ax, cx

js read

mov dl, bl

int 21h

jmp read

mov d, 0

cmp al, 0dh

-

-

-

-

-

-

-

- mov ah,2

mov sign,1

-

-

-

-

-

-

-

- mov ah,0

-

-

-

-

-

-

-

mov ah,2

-

-

Page 31: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

31

Ядро 1 Ядро 2

exit: cmp sign, 1

jnl em

neg d

ex: lea ds, spc

int 21h

-

-

-

mov ah,9

-

Коефіцієнти загрузки ядер мають такі значення:

(1) 0,8rk , (2) 0,2rk .

Приклад 3. Розпаралелити основний вираз цифрової фільтрації

1

0 1

N M

i j

i j

V kT b u kT iT a V kT jT

.

Асемблерна програма в розпаралеленому вигляді наведена далі:

Ядро 1 Ядро 2

mov bx,1

m3: mov s1,0

mov si,0

m1: mov al,b[si]

push bx

sub bx,si

imul u[bx]

pop bx

mov p1,ax

inc si

cmp si,N

jl m1

mov ax,p1

sub ax,dx

mov v[bx],ax

inc bx

jmp m3

-

mov s2,0

mov di,1

m2: mov al,a[di]

push bx

sub bx,di

imul v[bx]

pop bx

mov p2,ax

inc di

cmp di,M

jl m2

mov dx,p2

-

-

-

-

Коефіцієнти загрузки ядер мають такі значення:

(1) 0,6rk , (2) 0,4rk .

Аналіз наведених прикладів показує:

Page 32: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

32

1. Розпаралелення потоку команд по ядрам виявляється складним. В

першу чергу на процес впливає залежність поточної команди від попередньої.

Наприклад, в першому прикладі другу та третю команди розпаралелити

неможливо, тому що команда mov U[si],al повинна чекати завершення

попередньої команди mov al, i.

Залежність підтверджується тим, що операнд al входить як складова в

обидві команди. Таку залежність вважають явною. Але є випадки і приховані

залежності, коли по виду команди не можна її виявити.

У фрагменті програми другого прикладу

add ax, cx

js read

mov dl, bl

int 21h

команди розпаралелити неможливо, хоча по виду операндів цього не видно.

Прихована залежність операндів виявляється в тому, що команди умовного

переходу чекають появи значень прапорців, які визначаються в результаті

арифметичних або логічних операцій. Команда переривань «int 21h» також

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

2. На процес розпаралелення також впливає тривалість виконання

команд. Розглянемо такий фрагмент команд

Ядро 1 Ядро 2

mov al, const –

mov cl, al imul d

mov b, ax –

Часова діаграма виконання даного фрагменту команд має вигляд

(рис. 1.5)

ядро 1 mov al,

const

mov cl, al простой ядра

1

mov b, ax

ядро 2 простой ядра 2 imul d простой ядра 2

Рис. 1.5. Часова діаграма виконання фрагмента програми

Page 33: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

33

Внаслідок того, що кожна команда має свою тривалість виконання,

виникає ситуація, коли одне ядро змушене чекати завершення команди

другого ядра. Це призводить до появи вимушеного простою. Особливо часто

така ситуація виникає при виконанні операцій множення та ділення,

тривалість виконання яких значно перевищує тривалість виконання інших

команд.

3. Процес розпаралелення значно ускладнюється при використанні

мультиядерних МП, коли кількість ядер n > 2. Складність полягає в тому, що

змінюється залежність команд. Команда ядра 2 може залежати від команди

ядра 1, команда ядра 3 – від команд ядер 1, 2. В загальному випадку необхідно

враховувати залежність команд ядер 1, 2, …, n – 1.

4. Також впливають на якість розпаралелення конфлікти, що виникають

при одночасному зверненні ядер до загальної оперативної пам’яті. В цьому

випадку виникає черга, а це призводить до затримок у виконанні деяких

команд. В конфліктних ситуаціях можливі такі випадки:

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

інформації;

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

інформації в пам’ять.

Перший випадок вважається простішим за другий, тому що під час

запису в пам’ять інформація змінюється, а при зчитуванні замість «нової»

інформації використовується «стара». Для усунення подібних конфліктів

також потрібен час, що веде до певних затримок у виконанні потоків команд в

ядрах мікропроцесора.

5. Програми загального порядку розпаралелюються слабо, а програми

цифрової обробки добре піддаються розпаралеленню. Це якраз і демонструє

третій приклад. Тому доцільно при реалізації алгоритмів ЦОС

використовувати мультипроцесорні системи або мультиядерні

мікропроцесори.

Page 34: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

34

1.5. Постановка наукового завдання

Зростаючі вимоги до часу вирішення реальних завдань обробки сигналів

визначили на сучасному етапі розвитку науки і техніки використання для цих

цілей обчислювальних супертехнологій.

При цьому можливості підвищення продуктивності одноядерних

процесорів тільки за рахунок збільшення тактової частоти при зменшенні

технологічних норм були практично вичерпані в силу фундаментальних

фізичних обмежень, пов'язаних з необхідністю розсіювання дедалі більшою

споживаної потужності з одиниці площі кристала.

Іншою сучасною тенденцією розвитку електроніки є створення систем

на кристалі – готових пристроїв, реалізованих на одній інтегральній схемі, що

містять як обчислювальні ядра загального призначення і спеціалізовані

обчислювальні блоки, так і набір периферійних контролерів, а також

універсалізація таких систем, що дозволяє розширити спектр їх застосування.

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

систем домагаються нарощуванням числа обчислювальних ядер, що

розміщуються на одному кристалі. Однак на практиці збільшення числа ядер

не дає бажаного приросту продуктивності, в результаті чого ефективність

многоядерних систем, яку можна визначити як відношення продуктивності

системи на реальних додатках до її пікової продуктивності, падає з ростом

числа ядер.

Тому, для оптимального використання мультиядерності в процесорах

цифрової обробки сигналів в дисертаційній роботі сформульована мета

роботи, яка полягає в підвищенні продуктивності пристроїв цифрової

обробки сигналів шляхом покращення процесу розпаралелювання

обчислювального процесу по ядрах мікропроцесора.

За результатами аналізу наукових джерел, наукових методів для

вирішення поставленої мети сформульовано актуальне наукове завдання,

сутність якого полягає в створенні математичної моделі функціонування

багатоядерних мікропроцесорів.

Page 35: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

35

Сформульоване наукове завдання дозволить отримати різні числові

показники, що характеризують ефективність роботи обчислювальної системи

на базі мультиядерних мікропроцесорів.

Для вирішення сформульованого актуального наукового завдання і

досягнення мети дисертаційних досліджень необхідно поставити та вирішити

такі часткові завдання дослідження:

аналіз основних задач цифрової обробки сигналів, та якість

розпаралелювання потоку команд у мультиядерних мікропроцесорах;

розробка математичної моделі завантаження ядер мультиядерного

мікропроцесора;

розробка математичної моделі взаємодії мультиядерного

мікропроцесора з пам'яттю;

розробка математичної моделі взаємодії з пам'яттю системи

мультиядерний мікропроцесор-співпроцесор;

визначення шляхів поліпшення якості розпаралелювання потоку

команд по ядрах мікропроцесора;

удосконалення табличних методів множення з мінімізацією обсягу

пам'яті;

обґрунтування використання мультиплексорного логічного базису

для побудови складних функціональних вузлів.

Вирішенню поставленого наукового завдання та часткових наукових

завдань і присвячена дана дисертаційна робота.

Висновки до розділу 1

Аналіз типових задач ЦОС показує, що серед всіх алгоритмічних дій

переважає у відсотковому відношенні дія множення з одночасним додаванням

для отримання часткових сум. Порівняльний аналіз існуючих пристроїв

множення приводить до таких результатів: швидкодіючими пристроями є

матричні помножувачі, а пристроями з низьким рівнем продуктивності є

Page 36: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

36

послідовні помножувачі із зсувом і накопиченням результату. В існуючих

персональних комп'ютерах застосовуються неефективні методи множення

представляють собою модифікацію послідовних форм виконання операції

множення.

Аналіз розподілу потоку команд довільної програми по ядрам

мікропроцесора показав, що програми загального порядку розпаралелюються

слабо, а програми цифрової обробки добре піддаються розпаралеленню. Тому

доцільно при реалізації алгоритмів ЦОС використовувати мультиядерні

мікропроцесори.

Проведені дослідження існуючих методів підвищення продуктивності

пристроїв ЦОС, дозволили виявити протиріччя між необхідністю

використання мультиядерних мікропроцесорів в пристроях ЦОС та

складністю розпаралелювання обчислювального процесу по ядрах

мікропроцесора.

Для вирішення зазначеного протиріччя в дисертаційній роботі

сформульовано мету роботи, що полягає в підвищенні продуктивності

пристроїв цифрової обробки сигналів шляхом покращення процесу

розпаралелювання обчислювального процесу по ядрах мікропроцесора. Для

досягнення поставленої мети сформульовано актуальне наукове завдання,

сутність якого полягає в створенні математичної моделі функціонування

багатоядерних мікропроцесорів для отримання різних числових показників,

що характеризують ефективність їх роботи.

Page 37: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

37

РОЗДІЛ 2

РОЗРОБКА МАТЕМАТИЧНИХ МОДЕЛЕЙ ЗАВАНТАЖЕННЯ ЯДЕР

МУЛЬТИЯДЕРНОГО МІКРОПРОЦЕСОРА

Сучасні тенденції розвитку процесорів взагалі, і процесорів ЦОС

зокрема полягають в використанні мультиядерності. Використання

мультиядерних мікропроцесорів породжує ряд проблем: необхідність

балансування завантаження потоків команд; наявність даних, які необхідно

розділити між потоками команд; недостатня кількість об’єктів синхронізації.

Перелічені проблеми явно виражені, але не всі. Щоб виявити їх

необхідно мати математичну модель функціонування мультиядерного

мікропроцесора. Модель важлива тому, що може дати відповідь на питання: в

якому напрямку продовжувати дослідження, який оптимальний склад по

кількості ядер повинен мати мікропроцесор, як реалізувати (програмно або

апаратно) процес розпаралелювання, які операції необхідно вдосконалити в

першу чергу для поліпшення мікропроцесорних систем.

2.1. Математичні моделі завантаження ядер багатоядерних

мікропроцесорів

Процес функціонування системи програма – мікропроцесор може бути

представлена так: на вході мікропроцесора формується черга команд, які

обов'язково потрібно виконати [2]. Команди представляють собою заявки на

обслуговування, а ядра мікропроцесора – обслуговуючі прилади. Вибір

чергової команди проводиться за наявності вільного ядра. Якщо всі ядра

зайняті, заявка стає в чергу. Така система являє собою систему масового

обслуговування з очікуванням і рівно імовірним розподілом команд за

вільними ядрами. Передбачається, що потік команд найпростіший, їх

інтенсивність позначимо через λ. Таке припущення може мати місце,

враховуючи, що довжина команд сучасних МП змінна (від одного до двох

байт). Ядра МП виступають в якості обслуговуючих приладів. Час

Page 38: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

38

обслуговування однієї вимоги ядром є випадкова величина, яка

підпорядкована показовому закону

( ) 1 tF t e ,

де μ – параметр (інтенсивність розподілу)

Система може перебувати в наступних станах (рис. 3.1):

a0 – ядра МП вільні, заявок в черзі немає;

a1 – одне ядро зайнято, заявок в черзі немає;

ai – i ядер зайнято, заявок в черзі немає (i = 1, 2, … m);

am – всі m ядер зайняті, заявок в черзі немає;

am+j – всі m ядер зайняті, j заявок знаходяться в черзі (j = 1, 2, … R), де R

– кількість міст в черзі.

λ a0 a1

μ a2 am

λ

λ

λ

mμ am+R

λ λ

mμ mμ

Рис. 2.1 Граф станів і переходів СМО

Така СМО описується системою диференціальних рівнянь [47, 48, 49],

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

0 1p p ,

0 2 1 12p p p p ,

1 1( 1)i i i ip i p i p p , (2.1)

1 1m m m mp m p m p p ,

1m R m Rp m p .

Page 39: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

39

Для знаходження ймовірностей pi систему рівнянь (2.1) необхідно

доповнити умовою нормування

0

1m R

i

i

p

. (2.2)

Розв'язання системи рівнянь. З першого рівняння маємо:

1 0p p

.

З другого рівняння отримуємо:

2 1 0

2 2p p p

02 2

p

2

022p

; (2.3)

аналогічно отримуємо:

0!

i

i ip p

i

, 2, 3, ..., .i m

0!

m j

m j j m jp p

m m

, 1, 2, ...,j R .

Тепер можна отримати значення для 0p

0

0 1

1! !

i m jm R

i j m ji j

pi m m

,

0

0 1

1.

! !

i m jm R

i j m ji j

p

i m m

(2.4)

Звідки маємо:

0 1

!.

! !

i

i

i i m jm R

i j m ji j

ip

i m m

, 1, 2, ...,i m . (2.5)

Page 40: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

40

0 1

!

! !

m j

j m j

m j i m jm R

i j m ji j

m mp

i m m

, 1, 2, ...,j R . (2.6)

Маючи значення ймовірностей перебування СМО в кожному

конкретному стані, можна обчислити всі цікаві для користувача параметри

[50], основні з яких:

1. ймовірність того, що зайнято i ядер – ip ;

2. ймовірність того, що всі ядра завантажені – 0p ;

3. середня довжина черги 1

R

i

i m

L p

.

На рис. 2.2. наведені графіки залежностей ймовірностей завантаження

ядер від стану інтенсивності

( , ), ; 0, 1, ..., 10;ip f i i

за умови: 4, 6.m R

Рис. 2.2. Залежність ймовірностей від значень , i

Значення залежностей отримані за допомогою спеціальної програми і

наведені в табл. 2.1.

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0 2 4 6 8 10 12

pi

i

α=2

α=1

α=0.5

α=0.33

Page 41: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

41

Таблиця 2.1

Залежність ймовірностей завантаження ядер

ip

2 1 0,5 0,33

0 0,1306 0,3673 0,6065 0,7165

1 0,2612 0,3673 0,3032 0,2388

2 0,2612 0,1836 0,0758 0,0398

3 0,1741 0,0612 0,0126 0,0034

4 0,0870 0,0153 0,0015 0,00037

5 0,043 0,0038 0,0002 0

6 0,021 0,00095 0,000025 0

7 0,010 0,00024 0 0

8 0,0054 0,00006 0 0

9 0,0027 0,000015 0 0

10 0,0013 0 0 0

Отримані дані дозволяють зробити деякі висновки, але розглянута

модель СМО вимагає уточнень.

У моделі передбачається, що вхідна послідовність заявок (команд

програми) є незалежною один від одного. Реально кожна команда може

залежати від попередньої, що не дозволяє їх виконати одночасно. Таку

залежність можна врахувати за допомогою коефіцієнта розпаралелювання

1 ( 1, 2, ..., ).ik i m

З урахуванням коефіцієнтів ik СМО описується наступною системою

рівнянь:

0 1 0p p ,

0 2 1 12 ( ) 0p p k p ,

1 1 1 1( 1) ( ) 0i i i ik p i p i k p , 1, 2, ...,i m ,

2 1( ) 0j j ip m p m p , 1, ...,j m m r .

Розв'язок може бути отримано за методикою, описаною вище.

Page 42: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

42

1 0p p

, 2

2 1 02p k p

,

1

0

1

i i

i iis

p k p

, 1, 2, ...,i m ,

1

10

!

m

m i

sm i m i i

p pm m

, 1, 2, ...,i R .

З урахуванням рівняння нормування 0

1m R

i

i

p

отримаємо

11

1

10

1 11

1!

i

i m iim Rs

ii m i ii is

p km m

.

Для прикладу наведені дані (табл. 2.2, 2.3, 2.4), отримані за допомогою

програми, для системи з параметрами:

4, 6m R ,

при 0,5, 0,25,ik k ,

2, 1, 0,5, 0,33, 0,25

Таблиця 2.2

Залежність ймовірностей завантаження ядер при 0,5k

ip 2 1 0,5 0,33 0,25

0 0,225 0,4352 0,6371 0,7338 0,7897

1 0,450 0,4352 0,3189 0,2446 0,1974

2 0,225 0,1088 0,0398 0,0204 0,0123

3 0,075 0,0181 0,00332 0,0011 0,00051

4 0,0187 0,0022 0,00021 0,000047 0,000016

5 0,009375 0,0005 0,000026 0,000004 0,000001

6 0,004688 0,0001 0,000003 0 0

7 0,002344 0,000035 0 0 0

8 0,001172 0,0000009 0 0 0

9 0,000586 0,000002 0 0 0

10 0,000293 0,000001 0 0 0

Page 43: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

43

Таблиця 2.3

Залежність ймовірностей завантаження ядер при 0,33k

ip 2 1 0,5 0,33 0,25

0 0,2608 0,4577 0,6478 0,7394 0,7933

1 0,5217 0,4577 0,3239 0,2465 0,1983

2 0,1721 0,0755 0,02672 0,01356 0,0082

3 0,0379 0,0083 0,00147 0,00049 0,00023

4 0,00625 0,00068 0,00006 0,000014 0,000005

5 0,00312 0,00017 0,000008 0,000001 0

6 0,00156 0,00004 0,000001 0 0

7 0,00078 0,00001 0 0 0

8 0,00039 0,000003 0 0 0

9 0,00019 0,00001 0 0 0

10 0,000098 0 0 0 0

Таблиця 2.4

Залежність ймовірностей завантаження ядер при 0,25k

ip 2 1 0,5 0,33 0,25

0 0,2781 0,4681 0,6525 0,7421 0,7949

1 0,5560 0,4681 0,3262 0,2473 0,1987

2 0,1390 0,0585 0,0204 0,0103 0,0062

3 0,0232 0,0049 0,00085 0,00028 0,00013

4 0,0029 0,0003 0,000027 0,000006 0,000002

5 0,00145 0,000076 0,000003 0 0

6 0,00072 0,000019 0 0 0

7 0,00036 0,000005 0 0 0

8 0,000186 0,000001 0 0 0

9 0,000091 0 0 0 0

10 0,000045 0 0 0 0

Ті ж результати наведені у вигляді графіків (рис. 3.3)

Page 44: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

44

Рис. 3.3. Залежність ймовірностей від коефіцієнта k

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

0 2 4 6 8

pi

i

k=0,5

α=2

α=1

α=0,5

α=0,33

α=0,25

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

0 2 4 6 8

pi

i

k=0,33

α=2

α=1

α=0,5

α=0,33

α=0,25

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

0 2 4 6 8

pi

i

k=0,25

α=2

α=1

α=0,5

α=0,33

α=0,25

Page 45: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

45

Результати моделювання показали:

при переважанні інтенсивності обслуговування над інтенсивністю

запитів основне навантаження падає на одне, рідше два ядра мікропроцесора,

інші ядра працюють вхолосту;

при посиленні залежності поточної команди від однієї або декількох

попередніх, навантаження на перше ядро ще більше зростає;

для послаблення залежності команд необхідно на етапі проектування

створювати алгоритми, що добре піддаються розпаралеленю або

організовувати розпаралелювання на рівні завдань.

2.2. Математичні моделі взаємодії мультиядерних мікропроцесорів

з пам'яттю

У процесі функціонування – виконання програми – мікропроцесор

змушений звертатися до пам'яті [51, 52]. При наявності у мікропроцесора

декількох ядер можуть виникати конфлікти при одночасному зверненні.

Особливий вид конфлікту – коли одне ядро звертається для читання

інформації з пам'яті, а інше ядро звертається для запису. У цьому випадку

необхідно так організовувати процес, щоб запис відбувалася раніше читання,

інакше можливе невірне виконання програми.

Розглянемо спочатку випадок взаємодії мультиядерного мікропроцесора

з одним блоком пам'яті. При наявності m ядер і одного блоку пам'яті процес

функціонування можна представити замкнутою СМО з очікуванням [3]. Потік

запитів на обслуговування будемо вважати найпростішим з параметром ,

інтенсивність обслуговування запиту з боку пам'яті підпорядковується

експоненціальному закону розподілу з параметром . Розглянута система

може перебувати в наступних станах (рис.2.4):

0,0a – всі ядра вільні, запитів на обслуговування немає;

1,0a – одне ядро вимагає обслуговування, черги немає;

Page 46: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

46

1,ia – одне ядро обслуговується, у черзі i ядер;

1, 1ma – одне ядро обслуговується, інші в черзі.

mν a0,0 a1,0

μ a1,1 a1,i

2μ 3μ (i + 1)μ a1,m-1

(m - 1)ν (m - 2)ν

Рис. 2.4. Граф СМО з одним блоком пам’яті

Дані СМО описується наступною системою рівнянь:

1,0 0.0 0p m p ,

1,1 0.0 1,02 ( 1) 0p m p m p ,

1, 2 1, 1( 1) ( 1) 0i i ip m i p m p , 2, 3, ..., 1i m .

Рішення знаходиться за відомою схемою:

1,0 0,0p m p

,

1

0

1, 0,0

( )

(1 )!

i

i

j

i

m j

p pi

,

0

1, 1 0,0

( )

!

i

m

j

m

m j

p pm

.

Імовірність 0,0p знаходиться, якщо використовувати рівняння

нормування

0,0 1,

1

1m

i

i

p p

.

Page 47: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

47

тоді

1

11

0

0,0

0

( )

1( 1)!

i

im

j

i

m j

pi

.

1

0

1, 11

0 0

1( )

(1 )!

11 ( )

(1 )!

ii

j

i iim

i j

m ji

p

m ji

.

Наведені нижче дані (табл. 2.5, 2.6, 2.7) демонструють результати

розрахунків.

Таблиця 2.5

Значення ймовірностей для т = 4

р

2 1 0,5 0,33 0,25

р0,0 0,012 0,063 0,198 0,316 0,410

р1,0 0,099 0,250 0,395 0,422 0,410

р1,1 0,296 0,375 0,296 0,211 0,154

р1,2 0,395 0,250 0,098 0,047 0,026

р1,3 0,197 0,063 0,012 0,094 0,002

Таблиця 2.6

Значення ймовірностей для т = 6

р

2 1 0,5 0,33 0,25

р0,0 0,014 0,016 0,088 0,178 0,262

р1,0 0,016 0,094 0,263 0,356 0,393

р1,1 0,082 0,234 0,329 0,297 0,246

р1,2 0,219 0,312 0,219 0,132 0,082

р1,3 0,329 0,234 0,082 0,33 0,015

р1,4 0,263 0,094 0,016 0,004 0,002

р1,5 0,087 0,016 0,001 0 0

Page 48: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

48

Таблиця 2.7

Значення ймовірностей для т = 8

Р

2 1 0,5 0,33 0,25

р0,0 0,0002 0,004 0,039 0,100 0,168

р1,0 0,002 0,031 0,156 0,267 0,336

р1,1 0,017 0,110 0,273 0,311 0,294

р1,2 0,068 0,219 0,279 0,208 0,147

р1,3 0,170 0,273 0,170 0,096 0,046

р1,4 0,273 0,219 0,068 0,023 0,009

р1,5 0,273 0,110 0,017 0,004 0,001

р1,6 0,156 0,032 0,002 0,0004 0

р1,7 0,039 0,004 0,0002 0 0

Ймовірності перебування системи в тому чи іншому стані залежать від

співвідношення інтенсивностей

. Імовірність виникнення черги звернення

до пам'яті з боку ядер мікропроцесора (табл. 2.8) збільшується при 1 . Цей факт

демонструють графіки (рис. 1.5), отримані на підставі наведених табл. 2.5, 2.6, 2.7

(1,

1

m

i

i

p p

).

Таблиця 2.8

Ймовірності виникнення черги

р

0,25 0,33 0,5 1,0 1,5 2,0

т = 4 0,181 0,262 0,407 0,688 0,821 0,889

т = 6 0,345 0,466 0,649 0,891 0,959 0,982

т = 8 0,497 0,633 0,805 0,965 0,991 0,997

Page 49: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

49

Рис. 1.5 Залежності ймовірностей появи черги

Збільшення кількості ядер пам'яті стає «вузьким» місцем в системі. Тому

доцільно використовувати декілька ідентичних блоків пам'яті, що дозволить

зменшити чергу при зверненні до пам'яті.

Розглянемо модель взаємодії т-ядерного мікропроцесора з пам'яттю, що

складається з n однакових блоків.

Кожне ядро у випадкові моменти часу потребує обслуговування з боку

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

параметром . Інтенсивність обслуговування звернення, зі свого боку

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

параметром . Кожен новий запит, що надійшов, направляється в будь-який з

п каналів (блоків пам'яті) з імовірністю 1

n , безвідносно до того – зайнятий

блок чи ні. Якщо новий запит, що надійшов в i-й блок застане його вільним,

він приймається на обслуговування. А якщо запит, що надійшов застане блок

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

вважається найпростішою: першим прийшов – першим обслужений.

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

0 0,5 1 1,5 2 2,5

pi

α=ν/μ

m=4

m=6

m=8

Page 50: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

50

Розглянута СМО може перебувати в таких станах:

0,0a – всі блоки вільні, запитів на обслуговування від ядер немає;

1,0a – один блок зайнятий обслуговуванням, черги немає;

,k la – k блоків зайняті обслуговуванням, l запитів знаходиться в черзі;

,0na – n блоків зайнято, черги немає.

Граф станів даної СМО представлений на рис. 2.6.

mν a0,0 a1,0

μ a1,l a1,m-2 a1,m-1

μ

a2,0 a2,l a2,m-2

m-1n ν

1n ν

ak,l

am,0

mν 1n ν

Рис. 2.6. Граф СМО для загального випадку: число ядер т, число блоків

пам'яті п, кількість обслуговуваних ядер k, число ядер в черзі l

Page 51: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

51

Для складання рівнянь пошуку ймовірностей перебування системи в

тому чи іншому стані введемо позначення:

,k lp – ймовірність, що система знаходиться в стані ,k la ;

( 1, 1),( 1, 1)k l k l – ймовірність переходів між станами (рис.2.7).

ak,l ak,l+1

π(k, l+1),(k, l)

ak+1,l

ak-1,l

ak,l-1π(k, l),(k, l+1)

π(k, l),(k, l-1)

π(k, l-1),(k, l)

π(k, l),(k-1, l) π(k-1, l),(k, l)

π(k+1, l),(k, l) π(k, l),(k+1, l)

Рис. 2.7. Фрагмент графа переходів СМО з відповідними ймовірностями

Кількість станів при кількості ядер в процесорі т і число блоків пам'яті

п дорівнює

1

0

1 ( )n

i

C m i

.

Особливості розглянутої СМО полягають в наступному:

число блоків пам'яті завжди n m , так як мати їх більше, ніж число

ядер, недоцільно;

Page 52: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

52

система, перебуваючи в станах 0,0a та 1,la не може перейти в стани

0,la , тому що такі стани відсутні з наступної причини, якщо всі блоки вільні,

то чергу до них не має фізичного сенсу;

також не мають сенсу стани з від'ємною чергою.

Перше рівняння може бути отримано звичайним способом (рис. 2.8):

1,0 0,0 0p m p .

a0,0 a1,0μ

a1,1μ

(m-1)ν(1- )

a2,0

(m-1)ν 1n

1n

Рис. 2.8. Фрагмент графа початкових станів СМО в загальному випадку

Перше рівняння виходить з таких міркувань:

Якщо система знаходиться в стані 1,0a , то на неї впливають потоки:

потік запитів ( 1)m , який з вірогідністю 1

2 прагне перевести

систему в стан 1,1a і з імовірністю 1 1

112

n

n

у стан 2,0a ;

потік звільнень блоків пам'яті, який прагне перевести систему в

стан 0,0a з інтенсивністю . Тоді

0,0 1,0 1,1 2,0

1 1( 1) ( 1) 1 2 0m p m m p p p

n n

.

Page 53: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

53

Після нескладних перетворень одержуємо:

0,0 1,0 1,1 2,0( 1) 2 0m p m p p p .

У загальному випадку, коли система знаходиться в стані ,k la , на неї

діють такі потоки:

потік запитів ( )m- k - l , який з імовірністю 1

kn прагне перевести в

стан , 1k la і з імовірністю 1k

n

у стан 1,k la ;

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

перевести систему в стан 1,k la з ймовірністю ( , ), ( 1, )k l k l . Ця подія полягає в тому, що

звільнився блок пам'яті, у якого не було черги [53], тобто в результаті звільнення

одного з обслуговуючих блоків пам'яті черга не зміниться. З імовірністю

( , ), ( 1, )1 k l k l система повинна перейти в стан , 1k la з інтенсивністю k .

Доведемо, що ймовірність ,k l того, що після обслуговування однієї із k

заявок, що знаходяться в даній системі, довжина черги l не зміниться, не

залежить від розподілу заявок в черзі і дорівнює ,

1l

k l

k

k

.

Якщо позначити ймовірність ,k lp того, що після надходження ( k l )

запитів до т блоків є черга, а до ( k m ) блоків черга відсутня, то для неї

можна записати наступне відношення

( ) ( 1) ( )

, , 1 , 1

1m m m

k l k l k l

k m mp p p

k k

.

Припустимо, що цьому співвідношенню задовольняє вираз

( )( )

,

!

( )!

mm l

k l l

kp

k k s

,

де ( )m

l – числа Стірлінга другого роду [54].

( )

1

1( 1)

!

mm m i l

l

i

mi

im

,

Page 54: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

54

які задовольняють рекурентному співвідношенню

( ) ( 1) ( )

1 1

m m m

l l lm

.

Підставив виведені значення ( 1)

, 1

m

k lp

та ( )

, 1

m

k lp отримаємо

( 1) ( )( ) 1 1, 1

1 ! !

( 1)! ( )!

m mm l l

k l l l

k m k m kp

k k k m k k k m

!

( )l

k

k k m

( 1)( )1

1

!( 1)

( )! ( 1)

mml

ll

kk m m

k k m k m

( 1) ( ) ( )

1 1

! !

( )! ( )!

m m m

l l ll l

k km

k k m k k m

.

Ймовірність , 1k l того, що після обслуговування одного із запитів,

кількість запитів, які перебувають у чергах зміниться, дорівнює

( )( )

, 1 ,

1 1

1 ( 1)!

( )!

ml lm l

k l k l lm m

kp m

k k k m

,

а ймовірність ,k l того, що черга не зміниться, дорівнює

( )

,

1

( 1)!1

( )!

mll

k l lm

km

k k m

.

Для визначення ,k l попередньо доведемо наступне співвідношення

( )

1

( 1) ( 1)!( )!

mll l l

m

k k k mk m

,

за допомогою розкладання

( )

1

( )l

l m

l s

m

k k

,

де !

( ) ( 1)( 2)...( 1)( )!

s

kk k k k k m

k m

,

можна записати

( )( )

1 1

! ( 1)!( 1)

( 1)!

ml ll l m l

l

m m

k kk k

k m k m

.

Page 55: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

55

Помножимо чисельник і знаменник другого числа в правій частині

отриманого виразу на ( 1k )

( ) ( )

1 1

! ( 1)!( )( 1)

( 1)! ( 1)!

m ml ll l l l

m m

k k k mk k

k k m

( )

1

! ( 1)!( )

( )! ( )!

lm

l

m

k k k m

k m k m

( ) ( )

1 1

( 1)! ( ) ( 1)!( )! ( )!

m ml ll l

m m

k k k m k mk m k m

.

Отриманий вираз скоротимо на величину і зробивши перетворення

отримаємо

( ) ( )

1 1

1 ( 1)! ( 1)! 11

( )! ( )!

l ll m ml ll l

l l lm m

k k k k km

k k k k m k k m k

.

Підставив отриманий вираз у вираз для черги отримаємо

,

1l

k l

k

k

.

Що і треба було довести.

Тоді ймовірності всіх переходів (рис. 2.7) будуть такими:

( , ), ( 1, )

1l

k l k l

k

k

;

( , ), ( , 1)

11

l

k l k l

k

k

;

( , ), ( , 1)k l k l

k

n ;

( , ), ( 1, ) 1k l k l

k

n .

Решта ймовірності отримуємо аналогічно. Тепер можна скласти

рівняння для стану загального випадку ,k la :

, 1 1,

1( 1) ( 1)

1

l

k l k l

km k l k p k p

n k

Page 56: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

56

1

1, , 1

1 1( 1) 1 1 1

l

k l k l

km k l k p k p

n k

,

1 1 1 1( ) 1 ( ) 1 0

l l

k l

k km k l k k k m k l k p

n k k n

Останнє рівняння системи має вигляд:

,0 1,0

10m mm p p

n .

Система рівнянь має бути доповнена умовою нормування:

,

0 0

1n m k

k l

k l

p

.

Система має рішення, але в загальному вигляді точне аналітичне

рішення знайти не вдалося. Тому чисельні значення ймовірностей ,k lp

знаходились за допомогою програми розв’язання системи лінійних рівнянь

порядку С методом Гаусса (додаток А).

Як приклад розглянемо систему, що складається з 4-ядерного

мікропроцесора і двох блоків пам'яті при різних значеннях відносин ν/μ. На

рис.2.9 наведено граф цієї СМО.

4ν a0,0 a1,0

μ a1,1

μ

3.5ν 2.5ν a1,2

μ a1,3

μ

0.5ν

a2,0 a2,1μ

2ν ν a2,2

μ

2μ 0.5μ 0.25μ

3.5ν 2.5ν 0.5ν

Рис. 2.9. Граф СМО при т = 4 та п = 2

Система лінійних рівнянь може бути отримана на основі графа:

0,0 1,04 0p p

,

0,0 2,0 1,1 1,04 2 1 3 0p p p p

,

Page 57: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

57

1,0 2,1 2,03,5 2 0p p p

,

1,0 1,2 2,1 1,10,5 1 2 0p p p p

,

2,0 2,2 1,1 2,10,5 2 0,5 0p p p p

,

1,1 2,2 1,3 1,20,5 1 0p p p p

,

2,1 1,2 2,20,5 0,5 0p p p

,

1,2 1,30,5 0p p

.

Рівняння нормування

3 2

0,0 1,0 2,

0 0

1j

j j

p p p

.

Для введення даних необхідно представити рівняння в матричному

впорядкованому вигляді:

0,0 1,0 2,0 1,1 2,1 1,2 2,2 1,3

0,0

1,0

2,0

1,1

2,1

1,2

1,3

4 1 0 0 0 0 0 0 0

4 1 3 2 1 0 0 0 0 0

0 3,5 2 0 1 0 0 0 0

1 0 1,5 0 1 2 1 1 0 0 0

0 0 0,5 2 0 0,5 0 0

0 0 0 0 1 0,5 1 0

0 0 0 0 0 0

p p p p p p p p

p

p

p

p A E

p

p

p

,5 0 1 0

1 1 1 1 1 1 1 1 0

Page 58: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

58

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

рівняння для 2,2p ), а замість нього використовується рівняння нормування.

При значенні 2

, матриця А має вигляд:

8 1 0 0 0 0 0 0

8 7 2 1 0 0 0 0

0 3 4 0 1 0 0 0

0 3 0 5 1 1 0 0

0 0 2 2 3 0 0,5 0

0 0 0 2 0 3 0,5 1

0 0 0 0 0 1 0 1

1 1 1 1 1 1 1 1

A

Розв'язок отриманий такий:

р0,0 = 0,05 р1,0 = 0,036

р2,0 = 0,066 р1,1 = 0,086

р2,1 = 0,155 р1,2 = 0,166

р2,2 = 0,321 р1,3 = 0,166

Запишемо матрицю А при значенні 1

:

4 1 0 0 0 0 0 0

4 4 2 1 0 0 0 0

0 1,5 3 0 1 0 0 0

0 1,5 0 3 1 1 0 0

0 0 1 1 2,5 0 0,5 0

0 0 0 1 0 2 0,5 1

0 0 0 0 0 0,5 0 1

1 1 1 1 1 1 1 1

A

Розв'язок має вигляд:

р0,0 = 0,033 р1,0 = 0,133

р2,0 = 0,115 р1,1 = 0,170

р2,1 = 0,145 р1,2 = 0,165

р2,2 = 0,155 р1,3 = 0,033

Page 59: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

59

Отримаємо розв’язок при 0,5

:

2 1 0 0 0 0 0 0

3 2,5 2 1 0 0 0 0

0 0,75 2,5 0 1 0 0 0

0 0,75 0 2 1 1 0 0

0 0 0,5 0,5 2,25 0 0,5 0

0 0 0 0,5 0 1,5 0,5 1

0 0 0 0 0 0,25 0 1

1 1 1 1 1 1 1 1

A

Розв'язок має вигляд:

р0,0 = 0,146 р1,0 = 0,291

р2,0 = 0,120 р1,1 = 0,198

р2,1 = 0,080 р1,2 = 0,097

р2,2 = 0,044 р1,3 = 0,024

При значенні 0,25

розв’язок буде таким:

1 1 0 0 0 0 0 0

1 1,75 2 1 0 0 0 0

0 0,37 2,25 0 1 0 0 0

0 0,37 0 1,5 1 1 0 0

0 0 0,25 0,25 2,13 0 0,5 0

0 0 0 0,25 0 1,13 0,5 1

0 0 0 0 0 0,13 0 1

1 1 1 1 1 1 1 1

A

р0,0 = 0,336 р1,0 = 0,336

р2,0 = 0,072 р1,1 = 0,131

р2,1 = 0,025 р1,2 = 0,034

р2,2 = 0,003 р1,3 = 0,004

Наведений нижче графік демонструє динаміку зміни ймовірностей для

системи з параметрами т = 4 і п = 2 (рис. 2.10).

Page 60: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

60

Рис. 2.10. Ймовірності перебування СМО в різних станах при т = 4, п = 2

0

0,1

0,2

0,3

0,4

0 0,5 1 1,5 2 2,5

p0,0

0

0,1

0,2

0,3

0,4

0 0,5 1 1,5 2 2,5

p1,0

0

0,05

0,1

0,15

0 0,5 1 1,5 2 2,5

p2,0

0

0,05

0,1

0,15

0,2

0,25

0 0,5 1 1,5 2 2,5

p1,1

Page 61: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

61

Рис. 2.10. Ймовірності перебування СМО в різних станах при т = 4, п = 2

0

0,05

0,1

0,15

0,2

0 0,5 1 1,5 2 2,5

p2,1

0

0,05

0,1

0,15

0,2

0 0,5 1 1,5 2 2,5

p1,2

0

0,1

0,2

0,3

0,4

0 0,5 1 1,5 2 2,5

p2,2

0

0,05

0,1

0,15

0,2

0 0,5 1 1,5 2 2,5

p1,3

Page 62: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

62

Введення додаткових блоків пам'яті покращує числові характеристики

системи. На рис. 2.11 показані порівняльні характеристики систем для числа

ядер мікропроцесора т = 4 і блоків пам'яті п = 1 і п = 2. Наведені залежності

підтверджують цей факт.

Розрахунки показали, що використання другого блоку пам'яті зменшує

чергу ядер мікропроцесора до пам'яті.

Рис. 2.11. Ймовірності появи черги до пам'яті

при різних значеннях т, п,

2.3. Математична модель взаємодії з пам'яттю системи

мультиядерні мікропроцесор-співпроцесор

До складу сучасних мікропроцесорів (як одноядерних, так і

мультиядерних) вбудовується співпроцесор, призначений в основному для

виконання математичних дій з дійсними числами великої розрядності [55, 56,

57]. Використання співпроцесора можна вважати введенням в систему

процесора, що виконує відмінні від звичайного мікропроцесора функції. Таких

співпроцесорів може бути декілька і всі вони можуть відрізнятися за своїми

функціями (наприклад, процесор вводу-виводу, співпроцесор розгалужень та

ін.). Таким чином можна говорити про обчислювальну систему з різнорідними

процесорами.

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

0 0,5 1 1,5 2 2,5

pi

α

m=4, n=1

m=4, n=2

Page 63: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

63

Розглянемо найпростіший випадок, коли система складається з одного

т-ядерного мікропроцесора і одного співпроцесора, що обслуговуються

одним блоком пам'яті.

Представимо процес функціонування такої обчислювальної системи –

СМО з очікуванням. Мікропроцесор формує потік запитів з параметром , а

співпроцесор – з параметром . Інтенсивність обслуговування блоком пам'яті

підпорядковується експоненціальним законом розподілу з параметром .

Якщо новий запит, що надійшов в блок пам'яті, застає його вільним, він

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

пам’яті зайнятим, він стає в чергу і чекає свого обслуговування.

СМО може перебувати в наступних станах:

0,0a – блок пам'яті вільний, запитів на обслуговування немає;

1,0a – надійшов запит від мікропроцесора (одного з ядер), черги на

обслуговування немає;

0,1a – надійшов запит від співпроцесора, черги немає;

,0ia – надійшов запит від i ядер мікропроцесора, в черзі на

обслуговування i – 1 ядро;

,1ia – надійшов запит від i ядер мікропроцесора і запит від

співпроцесора, в черзі i елементів (i – 1ядер і співпроцесор);

,0ma – надійшли запити від т ядер, т – 1 ядро стоїть у черзі на

обслуговування, співпроцесор запит не здійснює;

,1ma – надійшли запити від всіх елементів системи, обслуговується один

елемент, в черзі перебуває т елементів системи.

Граф станів наведений на рис. 2.12

Page 64: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

64

mν a0,0 a1,0μ

ai,0 a1,m-2

a1,1 ai,1 am,1a0,1

μ

μ

λ

(m-1)ν

2μ iμ iμ mμ

(m-i)ν ν

μ λ μ λ μ λ

ν

(m-i)ν (m-1)ν

2μ iμ

Рис. 2.12. Граф станів СМО

Система лінійних рівнянь даної СМО має вигляд, припускаючи, що

інтенсивності обслуговування з боку блоку пам'яті як ядер мікропроцесора так

і співпроцесора однакові:

0,0 1,0 0,1( ) ( )m p p p ,

0,1 0,0 1,1( ) 0m p p p ,

,0 1,0 1,0 ,1( ) ( 1) ( 1) 0i i i im i i p m i p i p p ,

,1 1,0 1,1 1,1( ) ( 1) ( 1) 0i i im i i p p m i p i p ,

,0 1,0 ,1( ) 0m m mm p p p ,

,1 ,0 1,1( ) 0m m mm p p p .

Система має розв'язок, якщо додати до неї рівняння нормування

1

,

0 0

1m

i j

i j

p

.

У загальному випадку кількість рівнянь в системі

2( 1)C m .

Аналітичний розв'язок отриманої системи рівнянь отримати не вдалося,

тому використовуємо метод Гаусса.

Page 65: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

65

Для прикладу досліджуємо СМО за умови, що в системі є 2-ядерний

мікропроцесор і співпроцесор, а інтенсивність потоку заявок від

мікропроцесора , від співпроцесора , інтенсивність обслуговування з боку

блоку пам'яті .

Граф такої СМО наведений на рис.2.13

2ν a0,0 a1,0μ

a1,1a0,1

μ

μ

λ μ λ

ν a2,02μ

a2,1

ν

μ λ

Рис. 2.13 Граф СМО при наявності 2-ядерного мікропроцесора і

співпроцесора.

Система рівнянь для знаходження ймовірностей перебування СМО в

станах ,i ja , где i = 0,1:

0,0 1,0 0,1(2 ) ( ) 0p p p ,

1,0 0,0 2,0 1,1( ) 2 2 0p p p p ,

0,1 0,0 1,1( 2 ) 0p p p ,

2,0 1,0 2,1(2 ) 0p p p ,

1,1 0,1 1,0 2,1( 2 ) 2 2 0p p p p ,

2,1 2,0 1,13 0p p p .

Рівняння нормування

2 1

,

0 0

1i j

i j

p

.

Page 66: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

66

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

матричного вигляду. При цьому виключимо п'яте рівняння (можна виключити

будь-яке, виключили більш складне, ніж інші) і замість нього включили

рівняння нормування.

0,0 1,0 2,0 0,1 1,1 2,1

0,0

1,0

2,0

0,1

2,1

2 1 0 1 0 0 0

2 1 2 0 1 0 0

0 0 1 2 1 0 0

0 2 0 0 1 0

0 0 0 0 3 0

1 1 1 1 1 1 1

p p p p p p

p

p

p

p

p

Отримаємо числові значення ймовірностей при різних значеннях

відносин

та

(табл. 2.9), використовуючи програму gauss.pas (додаток А)

Таблиця 2.9

Таблиця значень ймовірностей

р0,0 р1,0 р2,0 р0,1 р1,1 р2,1

1,0

0,25 0,207 0,406 0,187 0,059 0,125 0,016

0,5 0,186 0,390 0,187 0,075 0,131 0,031

1,0 0,138 0,263 0,099 0,151 0,316 0,033

1,5 0,114 0,215 0,072 0,184 0,380 0,036

2,0 0,097 0,182 0,055 0,206 0,424 0,036

0,25

1,0

0,325 0,160 0,015 0,328 0,0167 0,005

0,5 0,232 0,225 0,042 0,239 0,246 0,014

1,0 0,138 0,263 0,099 0,191 0,316 0,033

1,5 0,092 0,261 0,147 0,109 0,342 0,049

2,0 0,066 0,248 0,186 0,084 0,345 0,062

0,25 0,25 0,515 0,256 0,029 0,131 0,067 0,002

0,5 0,5 0,304 0,298 0,064 0,138 0,164 0,011

Page 67: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

67

р0,0 р1,0 р2,0 р0,1 р1,1 р2,1

1,0 1,0 0,138 0,263 0,099 0,151 0,316 0,033

1,5 1,5 0,077 0,215 0,108 0,132 0,414 0,054

2,0 2,0 0,049 0,178 0,107 0,116 0,480 0,071

Результати розрахунків у вигляді графіків наведені на рис. 2.14.

Рис. 2.14. Ймовірності при різних значеннях відносин

та

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0 0,5 1 1,5 2 2,5 λ/μ

ядра

сопроцессор

0

0,1

0,2

0,3

0,4

0,5

0,6

0 0,5 1 1,5 2 2,5ν/µ

ядра

сопроцессор

Page 68: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

68

Рис. 2.14. Ймовірності при різних значеннях відносин

та

Розглянемо вплив інтенсивності обслуговування співпроцесора.

Необхідність такого дослідження випливає з того, що сучасний співпроцесор

оперує в основному з 32, 64, 80-розрядними операндами [58, 59].

Тому інтенсивність обслуговування з боку пам'яті ядер мікропроцесора

і співпроцесора різні. Досліджуємо модель СМО (рис. 2.15), що складається з

2-х ядерного мікропроцесора, співпроцесора і одного блоку пам'яті.

Інтенсивності запитів до пам'яті:

– інтенсивність з боку ядер;

– інтенсивність з боку співпроцесора.

Інтенсивність обслуговування з боку пам'яті:

– інтенсивність обслуговування ядер;

– інтенсивність обслуговування співпроцесора.

2ν a0,0 a1,0μ

a1,1a0,1

η

μ

λ η λ

ν a2,02μ

a2,1

ν

η λ

Рис. 2.15 Граф СМО

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0 0,5 1 1,5 2 2,5 ν/µ=λ/µ

ядра

сопроцессор

Page 69: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

69

Запишемо рівняння

0,0 1,0 0,1(2 ) 0p p p ,

0,1 0,0 1,1(2 ) 0p p p ,

1,0 0,0 2,0 1,1( ) 2 2 0p p p p ,

1,1 1,0 0,1 2,1( ) 2 0p p p p ,

2,0 1,0 2,1(2 ) 0p p p ,

2,1 2,0 1,1(2 ) 0p p p .

Перетворимо до виду зручному для вирішення за допомогою програми

gauss.pas (додаток А). Для цього розділимо всі рівняння на , виключимо

четверте рівняння і замінимо його рівнянням нормування

2 1

,

0 0

1i j

i j

p

.

У матричному вигляді рівняння будуть виглядати так

0,0 1,0 2,0 0,1 1,1 2,1

2 1 0 0 0 0

0 0 2 1 0 0

2 1 2 0 0 0

0 2 0 0 0

0 0 0 2 0

1 1 1 1 1 1 1

p p p p p p

B E

Числові значення ймовірностей станів СМО для різних значень відносин

наведені в таблиці 2.10.

Page 70: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

70

Таблиця 2.10

Таблиця значень ймовірностей станів СМО

р0,0 р1,0 р2,0 р0,1 р1,1 р2,1

0,25 0,035 0,050 0,035 0,215 0,450 0,215

0,5 0,060 0,083 0,060 0,190 0,417 0,190

1,0 0,094 0,125 0,094 0,156 0,375 0,156

1,5 0,117 0,150 0,117 0,133 0,350 0,133

2,0 0,129 0,143 0,129 0,121 0,357 0,121

Графічні залежності наведені на рис. 2.16. кожна окрема залежність, а

також деякі спільні (наприклад, 0,1 0,2p p і 0,1 1,1 2,1p p p ) характеризують

особливості досліджуваної системи.

Наприклад, із зростанням інтенсивності обслуговування з боку пам'яті

ймовірність черги (в тому числі і з боку співпроцесора) зменшується.

Самі прийнятні імовірнісні співвідношення мають місце, коли

інтенсивності узгоджені, тобто приблизно рівні. З цього випливає, що це

можна досягти, якщо всі команди по тривалості виконання будуть однаковими

(тобто довгі операції типу множення і ділення матимуть тимчасові

характеристики такі як і типові короткі – додавання і віднімання).

Рис. 2.16. Ймовірність станів СМО

0

0,02

0,04

0,06

0,08

0,1

0,12

0,14

0 0,5 1 1,5 2

р0,0

Page 71: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

71

Рис. 2.16. Ймовірність станів СМО

0

0,05

0,1

0,15

0,2

0 0,5 1 1,5 2

р1,0

0

0,02

0,04

0,06

0,08

0,1

0,12

0,14

0 0,5 1 1,5 2

р2,0

0

0,05

0,1

0,15

0,2

0,25

0 0,5 1 1,5 2

р0,1

0

0,1

0,2

0,3

0,4

0,5

0 0,5 1 1,5 2

р1,1

Page 72: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

72

Рис. 2.16. Ймовірність станів СМО

0

0,05

0,1

0,15

0,2

0,25

0 0,5 1 1,5 2

р2,1

0

0,05

0,1

0,15

0,2

0,25

0,3

0 0,5 1 1,5 2

р1,0+р2,0

0

0,2

0,4

0,6

0,8

1

0 0,5 1 1,5 2

р0,1+р1,1+р2,1

Page 73: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

73

Висновки до розділу 2

В розділі запропоновані, реалізовані та досліджені математичні моделі

завантаження ядер мультиядерного мікропроцесора на основі системи

масового обслуговування.

Розроблена та досліджена математична модель взаємодії

мультиядерного мікропроцесора з пам'яттю.

Розроблена та досліджена математична модель взаємодії з пам'яттю

системи мультиядерний мікропроцесор-співпроцесор.

Результати моделювання показали:

при переважанні інтенсивності обслуговування над інтенсивністю

запитів основне навантаження падає на одне, рідше два ядра мікропроцесора,

інші ядра працюють вхолосту;

при посиленні залежності поточної команди від однієї або декількох

попередніх, навантаження на перше ядро ще більше зростає;

для послаблення залежності команд необхідно на етапі проектування

створювати алгоритми, що добре піддаються розпаралеленю або

організовувати розпаралелювання на рівні завдань.

Самі прийнятні імовірнісні співвідношення мають місце, коли

інтенсивності узгоджені, тобто приблизно рівні. З цього випливає, що це

можна досягти, якщо всі команди по тривалості виконання будуть однаковими

(тобто довгі операції типу множення і ділення матимуть тимчасові

характеристики такі як і типові короткі – додавання і віднімання).

Page 74: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

74

РОЗДІЛ 3

МЕТОДИ ПРИСКОРЕНОГО МНОЖЕННЯ

Одним з ключових блоків практично будь-який обчислювальної системи є

арифметико-логічний пристрій. Виконувані ним елементарні операції, такі як

додавання, віднімання, множення і ділення, лежать в основі інших операцій більш

високого рівня, від швидкості виконання найпростіших арифметичних операцій

істотно залежить продуктивність всього обчислювального пристрою [60].

Скорочення часу виконання команд множення і ділення – реальний

спосіб поліпшення параметрів розпаралелювання. В даному розділі

розглянуто основні алгоритми виконання прискореного множення, та

запропоновано методи прискорення операції множення.

3.1. Дослідження основних алгоритмів і структур блоків виконання

операцій множення

Під час розробки обчислювальних пристроїв і програм для комп’ютерів

операція множення зустрічається також часто, як і операція додавання. Однак

час виконання операції множення перевищує час додавання. Тому швидкодія

арифметико-логічного пристрою (АЛП) в основному визначається швидкістю

виконання операції множення, а під час проектування особливу увагу

приділяють прискоренню цієї операції.

Дерево Уоллеса – ефективна апаратна реалізація цифрової схеми

множення двох чисел, розроблена австралійським ученим Крісом Уоллесом в

1964 р. [61]. Отримання результату відбувається в 3 етапи. Перший етап

полягає в знаходженні добутків кожного біта з усіма іншими. Результати

мають різні ваги залежно від позиції біт, що помножуються (тобто, вага

дорівнює 2n + m, де m і n – позиції розрядів). На другому етапі часткові добутки

проходять через кілька рівнів суматорів, завдяки чому число часткових

добутків скорочується до двох. Скорочення відбувається наступним чином.

Сигнали однієї ваги розбиваються по трійках і подаються на повні суматори.

Page 75: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

75

Сигнал суми має таку ж вагу, що і сигнали, які додаються. Коли залишається

тільки пара сигналів однієї ваги, їх підключають до півсуматора. Якщо

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

третьому етапі знаходиться остаточний результат подачі часткових добутків,

що залишились на повно-розрядний суматор. Перевага дерева Уоллеса

полягає в тому, що кількість логічних рівнів на другому етапі становить O(log

(n)), а затримка сигналу на кожному рівні дорівнює O(1). Глибина логічних

вентилів на третьому етапі становить O(log (n)). У підсумку загальна затримка

множення дорівнює O(log (n)), тобто ненабагато повільніше додавання (однак

при цьому потрібно значно більше апаратних витрат).

Помножувач Дадда – апаратний помножувач, запропонований Луїджі

Даддом в 1965 р [62]. Схема схожа зі схемою помножувача Уоллеса, однак,

має трохи більшу швидкодію (для всіх розмірів операндів) і вимагає дещо

більше апаратних витрат (для всіх розмірів операндів, крім самих маленьких).

Детальне порівняння цих помножувачів приведено в роботі [63].

У статті [64] представлена одна з можливих схем побудови матричного

помножувача. В алгоритмі Бо-Вулі часткові добутки приводяться до такого

виду, який забезпечує максимальну регулярність масиву, що робить його

зручним для реалізації на мікросхемах. У процесі множення часткові добутки,

які мають знак "мінус", переміщаються до останнього рівня підсумовування.

Віднімання часткових добутків замінюється додаванням їх інвертованих

значень. Можна вважати недоліком схеми те, що в останньому рядку матриці

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

Одним з класичних варіантів прискорення множення є алгоритм Бута.

Алгоритм призначений для множення двох двійкових чисел в додатковому

коді. Був запропонований Ендрю Дональдом Бутом в 1951 р. [65] під час

проведення досліджень в області кристалографії в коледжі імені Дж. Бірбека в

Блумсбері (Лондон). Бут використовував для обчислень настільні

калькулятори, які виконували операцію зсуву швидше додавання, і створив

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

Page 76: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

76

В роботі [66] запропонований високопродуктивний алгоритм множення

двох бітових масивів. Завдання множення паралельних масивів тут зводиться

до питання складання двох масивів, де кожен біт часткового добутку є

результатом застосування функції логічного «І» до бітів множників і всі

часткові добутки при цьому додатні.

Що стосується прискорення операції ділення, то існує не надто багато

варіантів для її здійснення. У ряді випадків ефекту можна досягти

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

Також прискорення ділення може бути досягнуто шляхом більш досконалої

апаратної реалізації операції. При поєднанні обох цих підходів зазвичай

досягаються найкращі результати. Нижче розглянуті найпоширеніші в даний

час методи прискорення ділення.

Алгоритм ділення SRT був названий так на честь його творців (Sweeney,

Robertson, Tocher), які розробили його [67, 68, 69] незалежно один від одного

приблизно в один і той же час. Він являє собою модифікацію ділення без

відновлення залишку, де на кожній ітерації крім зсуву часткового залишку

виконується також віднімання або додавання дільника. В алгоритмі SRT

частковий залишок також зсувається на кожній ітерації, однак додавання чи

віднімання, залежно від отриманого часткового залишку, на окремих ітераціях

може не виконуватися, що позитивно впливає на швидкодію пристрою

ділення. Алгоритм орієнтований на виконання операцій над мантисами чисел

з плаваючою комою, спирається на той факт, що мантиси в таких числах

нормалізовані. Був вперше реалізований в 91 моделі електронних

обчислювальних машин IBM360. Активно застосовується в даний час в блоках

обробки чисел з плаваючою комою в мікропроцесорах фірми Intel.

Високою швидкодією, завдяки відсутності ланцюгів поширення

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

виконання арифметичних операцій, володіють алгоритми додавання,

множення і ділення чисел в числовій системі залишків (ЧСЗ). ЧСЗ була

відкрита в третьому столітті китайським вченим Сунь Цзи. У п'ятдесятих

Page 77: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

77

роках двадцятого століття ЧСЗ була знову відкрита вченими, для

використання в області швидких арифметичних та відмовостійких обчислень.

Три властивості ЧСЗ роблять її добре придатною для даної мети. По-перше, це

відсутність схем поширення переносу під час додавання і добутку, що

обмежує швидкодію. По-друге, помилка в якому-небудь розряді не впливає на

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

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

нетривалим. Це пояснюється тим, що, реалізація ділення, обчислення

квадратного кореня та порівняння в ЧСЗ є складною, як і перетворення з виду

ЧСЗ у традиційний вигляд. Незважаючи на це, в останні роки виникла нова

хвиля інтересу. Виникла головним чином тому, що величезна частка

обчислень сьогодні має місце у вбудованих процесорах, наприклад, в

мобільних пристроях, для яких важливо швидкодія і низьке споживання

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

стає неможливим. Тому використання відмовостійких обчислень є все більш

важливим. У будь-якому випадку, алгоритми ЧСЗ добре підходять для

багатьох областей, таких як цифрова обробка сигналів, телекомунікації,

комп'ютерна безпека, обробка зображень та звуку, в яких критичними є

арифметичні операції додавання і добутку.

Реалізація схеми для виконання операцій додавання і віднімання в ЧСЗ

описана в роботі [70]. Метод ґрунтується на наступній властивості, набір

залишків по модулю m формує кінцеву групу з додавання і віднімання (також

по модулю m). Запропонована структура суматора/віднімача відрізняється

високою систематичністю і, отже, добре підходить для інтегрального

виконання.

Ефективність реалізації суматорів архітектури ЧСЗ обговорюється в

роботі [71]. Автори аналізують три підходи (використання двійкового

суматора, табличних значень, гібридний підхід) з погляду займаної площі і

швидкодії. Також у статті запропоновано дві процедури побудови схем. Вони

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

Page 78: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

78

Складність реалізації залежить від форми і розмірів модулів, але, в цілому,

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

швидкодії та займаної площі для малих модулів (до 5 біт). Гібридний підхід і

підхід з використанням двійкового суматора дає кращу продуктивність для

модулів великих розмірів.

Новий метод обчислення точного добутку двох цілих чисел по модулю

m і відповідна схема множення запропонована в роботі [72]. Така схема може

бути реалізована за допомогою декількох двійкових помножувачів на

інтегральних схемах (ІС). При цьому може бути отримано час відгуку 150–

200 нс при виконанні модульного добутку з модулями до 32767. Також у

роботі представлено порівняння постійних запам'ятовуючих пристроїв (ПЗП)-

структур. Авторами була виконана асимптотична оцінка модульного

помножувача у відповідності з теорією складності ІС, і було з'ясовано, що

схема є оптимальною. Наведена схема може бути використана для реалізації

помножувача в арифметичних обчислювачах, що використовують ЧСЗ. У

статті отримана оцінка складності модульного помножувача і, виявилося, що

схема має меншу складність за різними показниками в порівнянні з

помножувачами на основі ПЗУ.

Побудові суматорів за модулем 2n–1 присвячена робота [73]. Автор

пропонує дві процедури побудови таких суматорів. У першій

використовується однорівневий алгоритм додавання з одночасним

перенесенням, у другій – дворівневий.

Ще один варіант реалізації суматорів ЧСЗ на основі двійкового суматора

описаний у статті [74]. Запропоновані суматори мають два цикли додавання і

підтримують будь-який тип модулів. Автором наведена техніка вибору

правильної суми на одному з двох циклів додавання і обґрунтована її

коректність. Також описані три підходи для реалізації суматорів ЧСЗ на ІС і

дані графіки продуктивності залежно від займаної площі і швидкодії.

Використання одного двійкового суматора дозволяє на 30% скоротити

Page 79: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

79

займану схемою площу, проте, схема з двома суматорами володіє значно

кращою швидкодією.

В роботі [75] представлена методологія побудови помножувача в ЧСЗ на

основі додавання. У запропонованому підході завдяки врахуванню комбінацій

вхідних біт, що не зустрічається, досягається скорочення кількості повних

однорозрядних суматорів, необхідних для побудови помножувача. Зокрема,

визначаються пари і трійки вхідних бітів, що містять біти, які неможливо

одночасно асоціювати з коректною вхідною комбінацією. У роботі показано,

що конкретні пари або трійки можуть бути подані на логічний елемент «АБО»

замість одноразрядного суматора, за рахунок чого знижується складність

суматора. Порівняння продуктивності та апаратної складності запропонованої

схеми з попередніми відомими аналогами говорить про те, що представлений

суматор є більш ефективним за даними показниками. Фактично, в окремих

випадках можна досягти покращення за критерієм «займана площа /

швидкодія» на 80%.

В роботі [76] відзначається, що розробка швидкодіючого і компактного

модульного суматора є важливим завданням. Запропонована нова архітектура

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

суматорів в модульних суматорах, відрізняється високою продуктивністю.

Реалізація на ІС і порівняльний аналіз показують, що апаратні витрати і

затримки поширення сигналу в запропонованій схемі значно менше, ніж у

відомих схемах. Також у роботі представлений новий суматор по модулю

(2n+1). Порівняння з подібними суматорами показує, що вказаний суматор

займає меншу площу і має більшу швидкодію.

Автори статті [77] пропонують техніку обчислення добутку по модулю

2N–1 двох N-бітних цілих чисел з їх k-бітної байтної декомпозиції. Вибір модуля

2N–1 пояснюється тим, що множення, яке виконується в цьому базисі, може

бути реконструйовано з циклічної згортки послідовностей k-бітових байт

вихідних чисел. Показано, що циклічна згортка може бути обчислена тільки з

використанням операцій додавання і піднесення в квадрат. Так як для

Page 80: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

80

піднесення в квадрат потрібний тільки один операнд, то може бути досягнуто

значне зменшення кількості біт, що зберігаються у ПЗП, якщо будуть

використовуватися таблиці готових значень.

Модульне множення – дуже важлива арифметична операція в

обчислювальних системах реального часу, відзначається в роботі [78]. При

реалізації таких помножувачів схеми із застосуванням ПЗП найбільш

ефективні для невеликих значень модулів. Реалізація з використанням

арифметичних компонентів є більш придатною при середніх і великих

значеннях модулів, тому із зростанням модуля розмір ПЗП збільшується

експоненціально. У роботі представлений новий модульний помножувач,

ефективно працюючий з середніми і великими розмірами модулів. Схема

даного помножувача, що працює з двома n-бітними числами, представленими

в нотації ЧСЗ, складається з: (n · n) і ((n – 1 – k) · k) двійкових помножувачів,

де (k < n), трьох n-бітних суматорів і комбінаторної схеми малих розмірів.

Використання даної схеми помножувача дозволяє значно скоротити час

затримки сигналу при отриманні результату і апаратні ресурси в порівнянні з

аналогічними схемами. Відзначається, що схема відмінно підходить для

реалізації в ІС.

В роботі [79] представлені два нових підходи до побудови швидких

помножувачів в ЧСЗ над полем Галуа GF(p), де p – просте число. Перший

підхід використовує ізоморфне відображення з адитивної групи з модулем

(p – 1) над полем GF(p) в суму наборів субмодулярних адитивних груп.

Субмодулярні групи обрані з метою мінімізації апаратних витрат і збільшення

швидкодії. Даний підхід не порушує властивостей полів Галуа. Другий підхід

використовує симетричну арифметику ЧСЗ для виконання операції множення.

У ньому використовується псевдо-примітивний елемент як генератора для

елементів мультиплікативної групи в полі GF(p), в результаті чого

скорочується кількість необхідної для реалізації пам'яті на 50%, а розмірність

апаратних суматорів – на 1 біт. Наголошується, що суматори, побудовані

Page 81: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

81

згідно із запропонованими підходам – швидше і компактніше суматорів,

описаних раніше.

Нова архітектура для реалізації в ІС додавання і множення по модулю

(2N – 1) і (2N + 1) запропонована в роботі [80]. Запропонована архітектура

дозволяє реалізувати високоефективні комбінаторні і конвеєрні схеми

модульної арифметики. Автором показано, що паралельна префіксна

архітектура суматора добре підходить для реалізації швидких суматорів з

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

схеми модульних помножувачів поліпшуються з точки зору швидкодії та

регулярності. Це дозволяє використовувати звичайні техніки прискорення

множення, такі як дерево Уоллеса і алгоритм Бута, отримуючи при цьому

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

високопродуктивний помножувач-суматор для блочного алгоритму

шифрування IDEA. Також, в роботі проведено якісне і кількісне (на основі

технології стандартних комірок) порівняння запропонованих схем з

існуючими рішеннями і звичайними цілочисельними суматорами і

помножувачами.

Табличні методи множення

При виконанні операції множення з використанням таблиць в якості

адреси результату служать числа-співмножники [81].

Принцип отримання результату добутку двох чисел-співмножників

(рис. 3.1.) такий: числа об’єднуються в одне число-адресу, по якому із таблиці

витягається результат операції множення.

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

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

обсягу для багатобайтних чисел. Обсяг пам’яті таблиць залежить від

розрядності чисел. Цей факт для цілих чисел різного формату демонструє

табл. 3.1.

Page 82: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

82

Рис. 3.1. Табличне множення

Таблиця 3.1

Обсяг постійної пам’яті при табличному множенні

Формат

цілих

чисел

тетрада Байт Слово Подвійне

число

Розрядність 4 8 16 32

Обсяг

постійної

пам’яті

28=256

216=64 кб

232=4 гб

264

При використанні таблиць меншого обсягу потрібно виконувати певну

кількість операцій додавань часткових сум та їх зрушень на відповідну

кількість розрядів. Наприклад, при множенні чисел формату Слово і більше

необхідно мати постійну пам’ять практично такого обсягу як і оперативна

пам’ять, що явно невигідно.

Page 83: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

83

3.2. Розробка алгоритму множення по формулі

Аналіз розглянутих алгоритмів множення показав, що:

• класичні методи множення найбільш тривалі;

• прискорені методи покращують час виконання операції, але

несуттєво;

• табличні методи є найбільш швидкими, але потребують надто

великий обсяг табличної пам’яті.

Очевидно, що існують компромісні методи, які дають прийнятний час

виконання при порівняно невеликому обсязі табличної пам’яті. Зрозуміло, що

все залежить від вимог до обчислювача. Якщо не ставляться жорсткі вимоги

до обсягу табличної пам’яті, то можна використати чисто табличний метод

множення. В іншому випадку, якщо вимоги до швидкості обчислювача дещо

послаблені, можна використати комбіновані методи. Одним з таких методів є

метод з використанням відомої математичної формули:

2 21

[( ) ( ) ]4

R a b a b a b . (3.1)

Метод множення в цьому випадку потребує значно менше табличної

пам’яті, так як використовується таблиця квадратів чисел, але додається кілька

тактів для виконання операцій додавання, віднімання та зсуву (ділення на 4

можна замінити зсувом вправо на 2 розряди).

Оцінимо виграш в обсязі табличної пам’яті при використанні того чи

іншого методу множення.

Обсяг табличної пам’яті при множенні цілих чисел різного порядку

демонструє табл. 3.2:

Таблиця 3.2

Обсяг пам’яті, що використовується

Метод

Формат

Тетрада Байт Слово Подвійне

слово

Табличний 28 216 232 264

Формульний 25 29 217 233

Page 84: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

84

В загальному випадку обсяг пам’яті при використанні табличного методу

дорівнює 22n, де n – кількість розрядів співмножників. А при використанні

формульного методу обсяг пам’яті дорівнює 2n+1. Отже виграш в обсязі

табличної пам’яті дорівнює:

2

1

1

22

2

nn

n

(3.2)

Відповідно арифметичного виразу 3.1 блок-схема алгоритму множення

може мати вигляд як на рис. 3.2 а.

Блок 1 для введення значень співмножників;

Блоки 2, 3 отримують відповідно суму та різницю співмножників;

Блоки 4, 5 по таблиці знаходять квадрати суми та різниці;

Блоки 6, 7 отримують кінцевий результат добутку співмножників спочатку

різницю квадратів, потім зсув результату на 2 розряди вправо.

Приведений алгоритм можна дещо вдосконалити так, щоб зменшити

кількість додаткових тактів при отриманні кінцевого результату.

Шляхи вдосконалення алгоритму:

• суму та різницю співмножників можна отримати одночасно за рахунок

ускладнення суматора;

• вибір коду подання двійкових чисел під час виконання операції

віднімання (обернений чи доповняльний);

• бажано зсув на 2 розряди виконати за 1 такт.

Різниця чисел отримується заміною операції віднімання операцією

додавання. Складність суматора залежить від вибору типу коду: оберненого

чи доповняльного [82].

Обернений код.

Правило додавання двох двійкових чисел в обернених кодах

формулюється так:

Для того, щоб при додаванні обернених кодів двох чисел отримати

обернений код суми, необхідно виконати додавання всіх розрядів чисел у

відповідності із загальними правилами додавання двійкових чисел, якщо

Page 85: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

85

виникає одиниця переходу із розряду знаку, то її потрібно циклічно перенести

в молодший розряд і скласти із отриманим раніше результатом.

а) б)

Рис. 3.2. Блок-схема алгоритму множення

Початок

Вивід

D

S2 = a - b

S1 = a + b

D = ¼ d

K1 = S1 2

K2 = S2 2

d = K1 – K2

Ввод

a,b

кінець

Заміна

місцями

Зсув D

Обчислення

S1, S2

Обчислення

K1, K2

Обчислення D

Початок

кінець

Вивід

D

Ввод

a,b

a<b

Page 86: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

86

Проаналізуємо, в яких випадках виникає циклічний перенос при

додаванні чисел з різними знаками.

Випадок 1: перше число більше другого, тобто a > b.

Нехай числа мають значення (формат – байт):

A = 25(10) = 19(16) = 00011001(2)

B = –8(10) = –8(16) = 10001000(2)

Додавання виконуємо в обернених кодах:

0 0 0 1 1 0 0 1

1 1 1 1 0 1 1 1

1 0 0 0 1 0 0 0 0

1

0 0 0 1 0 0 0 1

Результат отриманий в прямому коді, при додаванні виник циклічний

перенос.

Випадок 2: перше число менше другого, a < b.

Нехай числа мають значення

A = 8(10) = 00001000(2)

B = –25(10) = 10011001(2)

Виконаємо додавання в обернених кодах:

0 0 0 0 1 0 0 0

1 1 1 0 0 1 1 0

1 1 1 0 1 1 1 0

Результат отриманий в оберненому коді, при додаванні циклічний

перенос не виник. Щоб одержати прямий код числа, необхідно тільки змінити

всі розряди, крім знакових, на протилежні:

10010001(2) = –11(16) = –17(10)

Доповняльний код.

Виконаємо ті ж самі дії, з використанням доповняльного коду (при тих

же значеннях чисел).

Випадок 1: a > b

Page 87: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

87

0 0 0 1 1 0 0 1

1 1 1 1 1 0 0 0

1 0 0 0 1 0 0 0 1

0 0 0 1 0 0 0 1

одиниця переносу відкидається

Випадок 2: a < b

0 0 0 0 1 0 0 0

1 1 1 0 0 1 1 1

1 1 1 0 1 1 1 1

1 1 1 0 1 1 1 1

В першому випадку результат отримуємо відразу, при цьому відкидаємо

одиницю переносу.

У другому ж випадку результат отримується в доповняльному коді.

Перехід в прямий код в цьому випадку складніший: при переході потрібно

спочатку отримати обернений код, а потім додати в молодший розряд

одиницю по правилам двійкової арифметики.

Отже, враховуючи те, що обернений код в цифрових схемам з пам’яттю

отримується легко (для цього результат знімається з інверсних виходів

тригерів), обираємо для здійснення операцій обернений код та випадок, коли

a < b, – тобто значення першого співмножника менше другого. Це означає, що

при загрузці співмножників у випадку a > b, їх потрібно переставити місцями.

Тоді початковий вираз 3.1 перетворюється в такий:

2

21( ) ( )

4R a b a b a b

. (3.2)

Лінії над змінною b та над арифметичними виразами означають

використання оберненого коду.

Ділення на 4 можна здійснити зсувом результату на 2 розряди вправо за

один такт.

Покращена блок-схема алгоритму приведена на рис. 3.2 б. Блок-схема

також враховує можливість одночасного обчислення величин S1 та S2, K1 та

K2. На рис. 3.3 представлена схема помножувача.

Page 88: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

88

Рис. 3.3. Помножувач чисел за формулою

3.3. Оптимізація табличних методів множення за обсягом пам’яті

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

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

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

потрібно виконувати певну кількість операцій додавань часткових сум та їх

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

формату Байт і більше необхідно мати постійну пам’ять практично такого обсягу

як і оперативна пам’ять, що явно невигідно. Очевидно, що можна обійтись і

малою пам’яттю – таблицею множення тетрад. При виконанні операції доцільно

використати особливий спосіб множення в стовпчик (табл. 3.3).

Таблиця 3.3

Множення чисел в різних системах

10-а система 16-а система 2-а система

89

×

67

63

56

54

48

5963

(а)

59

×

43

1B

0F

24

14

174B

(б)

0101 1001

×

0100 0011

0001 1011

0000 1111

+ 0010 0100

00010100

00010111 01001011

(в)

Page 89: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

89

Приведений спосіб дає змогу користуватися тільки таблицею множення

однорозрядних чисел для десяткових та шістнадцяткових чисел і таблицею

множення тетрад для двійкових чисел. Ще одною особливістю являється

необхідність одночасного додавання 4-х чисел.

Кількість додавань часткових сум можна зменшити за рахунок

використання суматора спеціальної структури, при якій додаються одночасно

кількість двійкових цифр три і більше.

Як видно з таблиці 3.3 для множення двох чисел формату БАЙТ,

необхідно отримати результати множення тетрад першого байту на тетради

другого і скласти їх з відповідним зсувом вліво.

Загальна схема множення для чисел будь-якої розрядності представлена

на рис. 3.4.

a2 a1

b2 b1

a1 b1

a2 b1

a1 b2

a2 b2

a1 b1 + a2 b1 + a1 b2 + a2 b2

S1 = a1 b1

S2 = a2 b1

S3 = a1 b2

S4 = a2 b2

S = S1 + S2 + S3 + S4

множник 1

множник 2

Рис. 3.4. Множення чисел розрядності n (n-парне)

Відповідно розробленого алгоритму табличного множення структурна

схема повинна складатися з таких елементів:

регістрів операндів-співмножників. Регістри мають розрядність

8 (байт) і складаються кожен із двох тетрад a2a1 та b2b1 відповідно;

Page 90: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

90

постійного запам’ятовуючого пристрою обсягом 16 x 16 = 256

байтів. Адресація байтів – це природня нумерація тетрад, які

помножуються. Вміст байту постійної пам'яті являє собою добуток

тетрад, що складають адресу:

4-х регістрів адрес часткових добутків. Адреси – це всі комбінації

тетрад двох співмножників: a1·b1, a2·b1, a1·b2, a2·b2.

4-х регістрів часткових добутків, які необхідно скласти із

відповідним зсувом для отримання кінцевого результату – добутку A·B;

Спеціалізованого суматора розрядності 16 (формат СЛОВО).

Особливістю структури суматора є одночасне додавання трьох двійкових

цифр.

Час виконання операції множення розглянутого помножувача можна

порівняти з часом виконання самої короткої операції, наприклад операції

додавання. Пояснюється це так:

в регістри A та B числа заносяться без затримок при дешифрації

команди множення MUL;

в регістри адрес часткових добутків значення тетрад заносяться

також без затримок – автоматично, тобто одночасно з появою значень

співмножників;

якщо в якості постійної пам'яті використати 4-х портову пам'ять,

то всі часткові добутки зчитуються за один такт;

вибір суматора комбінаційного типу дозволяє отримати результат

за один такт;

ще один такт часу витрачається на запис результату із суматора в

регістр результату. В мікропроцесорах фірми Intel результат записується а

акумулятор, тобто в регістр загального призначення AX.

В структурній схемі помножувача побудова спеціалізованого суматора

являється проблемою. Це зв’язано з тим, що використання традиційного

логічного базису (булівського, Шефера та Пірса) практично неможливе, тому

Page 91: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

91

що логічні функції мають кількість змінних 5 або 6. Тому виникає необхідність

використати нетрадиційний логічний базис, а саме мультиплексорний [5].

Висновки до розділу 3

В розділі запропоновано методи прискорення операції множення з

використанням табличної пам'яті меншого об'єму, які відрізняються від

існуючих комбінацією табличних, матричних та класичних методів, що

дозволяє зменшити виконання довгої за часом операції множення, та

збільшити продуктивність пристроїв цифрової обробки сигналів.

Удосконалені табличні методи множення використовують менший обсяг

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

тактів, ніж класичні методи множення.

Перший запропонований метод прискореного множення використовує

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

табличної пам’яті 12n . Розроблений алгоритм даного прискореного методу

множення та запропонована структурна схема помножувача.

Другий метод заснований на використанні табличній пам'яті об'ємом 2n/2

при множенні чисел розрядності n. При такому обсязі табличної пам'яті,

кількість підсумовування часткових добутків і зсувів буде мінімальним.

Page 92: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

92

РОЗДІЛ 4

РОЗРОБКА НЕТРАДИЦІЙНОГО ЛОГІЧНОГО БАЗИСУ

Реалізація багатьох схем операцій множення потребує проектування

доволі складних схем. Відомі методи побудови цифрових пристроїв в багатьох

випадках не задовольняють сучасним вимогам. Це пов’язано з тим, що з

ростом складності логічних виразів, кількість можливих варіантів швидко

зростає. При цьому в загальному випадку не існує алгоритму

цілеспрямованого отримувати оптимальні по складності схеми, крім повного

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

пошуку більш логічно потужніших елементів, ніж існуючи. Одним із таких

елементів являється мультиплексор. В [83, 5] була зроблена спроба

використати мультиплексори як елементи для побудови деяких цифрових

схем, але без теоретичного обґрунтування. В даному розділі цей недолік

вдалось в деякий мірі усунути.

4.1. Мультиплексор як логічний елемент

Технічну реалізацію будь-якої логічної функції (ЛФ) можна представити

у вигляді пристрою у якого одна зі змінних служить сигналом управління для

комутації двох ЛФ (рис. 4.1).

M

F0(x1, x2, …, xi-1, xi+1, …, xn )

F1(x1, x2, …, xi-1, xi+1, …, xn )

xi

F(x1, x2, …, xi , …, xn )

Рис. 4.1. Технічна реалізація ЛФ

Page 93: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

93

При значенні змінної xi = 0 на вихід комутується функція F0(x1, x2, …, xi–

1, xi+1, …, xn), а при значенні xi = 1 – F0(x1, x2, …, xi–1, xi+1, …, xn). У комутуючих

ЛФ кількість змінних менше, тому що змінна xi відсутня. Це видно з

наступного прикладу. В табл. 4.1 приведена ЛФ трьох змінних

Таблиця 4.1

Логічна функція 3 змінних

R G B F(R, G, B)

0 0 0 1

F0(G, B) 0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 0

F1(G, B) 1 0 1 1

1 1 0 1

1 1 1 0

При виборі змінної R в якості сигналу управління отримаємо дві

комутаційні функції F0(G, B) та F1(G, B) з відповідними таблицями

функціонування (табл. 4.2)

Таблиця 4.2

Таблиця функціонування ЛФ

G B F0(G, B) F1(G, B)

0 0 1 0

0 1 1 1

1 0 1 1

1 1 0 0

Функція F0(G, B) = G | B являється функцією Шеффера, а функція

F1(G, B)= G B – сумою по модулю 2. Якщо в якості змінної управління

вибрати змінну G, то отримаємо такі комутаційні функції (табл. 4.3)

Таблиця 4.3

Таблиця функціонування ЛФ

R B F0(R, B) F1(R, B)

0 0 1 1

0 1 1 0

1 0 0 1

1 1 1 0

Page 94: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

94

В даному випадку функція F0(R, B) = R B є функцією імплікації, а

F1(R, B) = B – інверсією змінної B.

При виборі змінної B в якості змінної управління, отримаємо такі

комутаційні функції:

F0(R, G) = G R

F1(R, G) = G .

Пристрій, який сигналом управління комутує дві функції, являється

двохканальним мультиплексором. Якщо продовжити подібну процедуру до

функцій F0(G, B) та F1(G, B), то отримаємо таку структурну схему (рис. 4.2)

M1

B

1

M0

B

1

M0

B

1

M1

B

0

M

G

M

G

M

R

F(R, G, B)

Рис. 4.2. Структурна схема ЛФ

Page 95: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

95

Таким чином, складні ЛФ можуть бути представлені багатоярусною

деревоподібною структурою, в якій основним елементом є елементарний

мультиплексом. Це свідчить про те, що елементарний мультиплексом може

служити логічним елементом. Крім того, вибором певних змінних в якості

сигналів управління в деяких випадках можна одержати комутаційні функції

меншої складності. Відомо, що існують багатоканальні мультиплексори.

Покажемо на раніше приведеному прикладі, що такі мультиплексори також

можна використовувати в якості логічних елементів. При використанні 4-х

канального мультиплексора структурна схема буде мати вигляд (рис. 4.3)

M1

R

0

M

G

F(R, G, B)

B

1

Рис. 4.3. Структурна схема ЛФ

При використанні 8-ми канального мультиплексора схема буде такою

(рис. 4.4)

M

F(R, G, B)

R G B

1

1

1

0

0

1

0

1

Рис. 4.4. Структурна схема ЛФ

Page 96: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

96

4.2. Нетрадиційні логічні базиси

Всі відомі базиси базувались на властивостях ЛФ 2-х змінних, які

вивчені досконально. Табл. 4.4 демонструє ці властивості. [84-91]

Таблиця 4.4

Властивості ЛФ 2-х змінних

x1 x2 f0(x1, x2) f1(x1, x2) f6(x1, x2) f8(x1, x2) f15(x1, x2)

0 0 0 0 0 1 1

0 1 0 0 1 0 1

1 0 0 0 1 0 1

1 1 0 1 0 0 1

назва ЛФ константа

нуль кон’юнкція

сума по

модулю 2

операція

пірса

константа

одиниці

позначення

Влас

тиво

сті

фу

нкц

ій

0 1 2x x 1 2x x 1 2x x 1

збереження

нуля + + +

збереження

одиниці + +

само-

подвійність

монотонність + + +

лінійність + + +

Як відомо під логічним базисом розуміється функціональна повнота

певної сукупності логічних функцій [92].

В [93] стверджується, що в базис повинні входити:

хоч би одна функція, що не зберігає нуль;

хоч би одна функція, що не зберігає одиницю;

хоч би одна нелінійна функція;

хоч би одна немонотонна функція;

хоч би одна несамоподвійна функція;

На сьогоднішній день відомі такі базиси, які побудовані на ЛФ 2-х

змінних:

1. Булівський базис з функціями 1 1 2( , )f x x – кон’юнкція, 7 1 2( , )f x x –

диз’юнкція та інверсії 10 1 2( , )f x x , 12 1 2( , )f x x . Більшість цифрових схем

побудовані з використанням законів та тотожностей булівської алгебри.

Page 97: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

97

Історично цей базис був розроблений першим. Алгебра цього базису легка і

зрозуміла, тому що нагадує закони звичайної алгебри. Крім того, закони

розповсюджуються для ЛФ n змінних.

2. Базис Шеффера, до складу якого входить одна функція 14 1 2( , )f x x .

3. Базис Пірса, до складу якого теж входить одна функція 8 1 2( , )f x x .

Ці два базиса на сьогоднішній день являються найбільш

використовуваними. Цьому сприяють наступні фактори:

базис складається з одної функції;

використання для перетворення виразів булівської алгебри;

наявність інвертора в структурі схемних елементів.

4. Базис Жегалкіна на базі функцій 6 1 2( , )f x x – сума по модулю 2,

1 1 2( , )f x x – кон’юнкції та 15 1 2( , )f x x – константи 1.

5. Базис заборони на базі функцій 2 1 2( , )f x x або 4 1 2( , )f x x та 15 1 2( , )f x x –

константи 1.

6. Базис імплікації на базі функцій 11 1 2( , )f x x або 13 1 2( , )f x x та константи 0.

7. Базис рівнозначності на базі функцій 9 1 2( , )f x x – рівнозначності,

7 1 2( , )f x x – диз’юнкції та константи 0.

Для пошуку нових базисів, необхідно звернути увагу до функцій 3-х і

більше змінних.

Далі приведемо деякі ЛФ 3-х змінних, які мають такі властивості, що їх

можна використовувати для утворення як відомих так і нетрадиційних базисів.

1. Функція 23 1 2 3( , , )f x x x відома як мажорітарна операція

1 2 3 1 2 1 3 2 3# #x x x x x x x x x . При технічній реалізації мажоритарний логічний

елемент завжди має непарне число входів. Для утворення мажоритарного

логічного базису необхідно до функції 23 1 2 3( , , )f x x x додати константи 0 та 1, а

також інвертор. Докажемо це опосередковано, шляхом реалізації функцій

булівського базису:

Page 98: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

98

23 1 2 7 1 2 1 2( , , 1) ( , )f x x f x x x x ,

23 1 2 1 1 2 1 2( , , 0) ( , )f x x f x x x x .

Вочевидь, що для функціональної повноти необхідна операція інверсії.

2. Функція 142 1 2 3( , , )f x x x може бути інтерпретована як комутатор

функцій двох змінних:

перша функція 8 2 3 2 3( , )f x x x x операція Пірса;

друга функція 14 2 3 2 3( , ) |f x x x x операція Шеффера.

3. Аналогічно може бути подана і функція 232 1 2 3( , , )f x x x . Це комутатор

функцій у зворотному порядку до функції 142 1 2 3( , , )f x x x :

перша функція 14 2 3 2 3( , ) |f x x x x операція Шеффера;

друга функція 8 2 3 2 3( , )f x x x x операція Пірса.

Звичайно в якості сигналу комутації в даному випадку виступає змінна x1.

4. Функція 53 1 2 3( , , )f x x x являється комутатором змінних x2 та x3:

2 1

53 1 2 3 1 2 1 3

3 1

, при 0( , , )

, при 1

x xf x x x x x x x

x x

Графічно елемент може бути зображений так:

M

x1

x2

x3

53 1 2 3( , , )f x x x

Рис. 4.5. Логічний елемент функції 53 1 2 3( , , )f x x x

В такому зображенні елемент представляє елементарний 2-х канальний

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

0 та 1, або тільки інверсію. Доказ цього факту виконаємо опосередковано:

Page 99: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

99

M

x1

x2

1

1 2x x

M

x1

0

x2

1 2x x

M

x

1

0

x

Рис. 4.6. Логічний базис

5. Функція 202 1 2 3( , , )f x x x являється інверсною до функції 53 1 2 3( , , )f x x x .

Тому вимоги щодо створення базису залишаються такими же, як і в

попередньому випадку. Рис.3 демонструє доказ функціональної повноти

базису:

M

x1

0

1 2x x2x

M

x1

1 1 2x x

2x

M

x

1

0 x

Рис. 4.7. Логічний базис

Такий підхід до опису функцій 3-х змінних дозволяє отримати певну

кількість логічних базисів, кожен з яких вимагає розробки відповідної алгебри.

4.3. Алгебра М-базису

Використання мультиплексорів в якості елементної бази для побудови

цифрових структурних схем базується на візуальному аналізі заданих таблиць

функціонування. Різноманітні перетворення схем здійснюються на основі

індивідуального досвіду дослідника. Пропонується ввести формальні операції

в М-базисі, які дозволять здійснювати перетворення структурних схем з метою

їх мінімізації. Внаслідок того, що елементарний мультиплексор виконує

операцію комутації двох каналів залежно від значення змінної управління,

будь-яку логічну функцію можливо подати у вигляді деревоподібної

Page 100: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

100

структури (рис. 4.2). Кількість ярусів такої структури залежить від числа

змінних ЛФ: скільки змінних – стільки і ярусів. Перевага ярусної структури

полягає в тому, що всі бінарні ЛФ мають однакову структуру. Це означає, що

при технічній реалізації можна обійтись однотипними мікросхемами. Але чим

більше змінних, тим більше ярусів. Зменшити кількість ярусів дозволить

введення деяких формальних операцій над мультиплексорами.

Операції комутації (селекції) елементарного мультиплексора можна

зобразити так:

2

0 1( , )ixM f f ,

де 2 – кількість каналів, що комутує мультиплексом;

xi – змінна управління;

f0, f1 – канальні функції мультиплексора.

В подальшому для елементарного мультиплексора кількість каналів

можна не вказувати.

Наприклад, для реалізації диз’юнкції 2-х змінних вираз буде мати вигляд:

11 2 2( , 1)xx x M x ;

Відповідно для кон’юнкції та інверсії вирази будуть такими:

11 2 2(0, )xx x M x ,

(1, 0)xx M .

Для мажоритарної ЛФ трьох змінних вираз буде мати вигляд:

1 2 223 1 2 3 1 2 3 3 3( , , ) # # [ (0, ), ( , 1)]x x xF x x x x x x M M x M x .

Розглянемо властивості мультиплексорної алгебри, які дозволяють

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

Якщо вираз має вигляд ( , )ixM f f то його значення дорівнює f:

( , )ixM f f f .

Це означає, що мультиплексом можна вилучити і замість його залишити

лінію з функцією f. З цього виразу виникають часткові випадки:

Page 101: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

101

(0, 0) 0ixM ,

(1, 1) 1ixM ,

(0, 1)ix iM x ,

(1, 0)ix iM x .

Перший вираз означає, що при будь-якому значенні змінної xi на виході

мультиплексора буде завжди нульове значення.

Аналогічне тлумачення можна дати і другому виразу – на виході завжди

буде значення 1.

Третій вираз означає, що при нульовому значенні xi на виході

мультиплексора також буде значення 0, а при одиничному змінної xi –

значення 1. Тобто вихід повторює значення змінної xi.

Четвертий вираз означає, що є можливість замінити мультиплексор

інверсним сигналом змінної xi.

Приклад 1. Побудувати структурну схему в М-базисі для функції,

таблиця функціонування якої приведена (табл. 4.5), а потім її мінімізувати.

Таблиця 4.5

Таблиця функціонування ЛФ

x1 x2 x3 x4 F(x1, x2, x3, x4)

0 0 0 0 0

0 0 0 1 0

0 0 1 0 0

0 0 1 1 1

0 1 0 0 0

0 1 0 1 1

0 1 1 0 1

0 1 1 1 1

1 0 0 0 0

1 0 0 1 1

1 0 1 0 1

1 0 1 1 0

1 1 0 0 1

1 1 0 1 0

1 1 1 0 0

1 1 1 1 1

Page 102: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

102

Запишемо вираз для ЛФ в М-базисі:

11 2 3 4 0 2 3 4 1 2 3 4( , , , ) [ ( , , ), ( , , )]xF x x x x M F x x x F x x x ;

20 2 3 4 00 3 4 01 3 4( , , ) [ ( , ), ( , )]xF x x x M F x x F x x ;

21 2 3 4 10 3 4 11 3 4( , , ) [ ( , ), ( , )]xF x x x M F x x F x x ;

300 3 4 000 4 001 4( , ) [ ( ), ( )]xF x x M F x F x ;

301 3 4 010 4 011 4( , ) [ ( ), ( )]xF x x M F x F x ;

310 3 4 100 4 101 4( , ) [ ( ), ( )]xF x x M F x F x ;

311 3 4 110 4 111 4( , ) [ ( ), ( )]xF x x M F x F x ;

4000 4( ) (0, 0)xF x M ;

4001 4( ) (0, 1)xF x M ;

4010 4( ) (0, 1)xF x M ;

4011 4( ) (1, 1)xF x M ;

4100 4( ) (0, 1)xF x M ;

4101 4( ) (1, 0)xF x M ;

4110 4( ) (1, 0)xF x M ;

4111 4( ) (0, 1)xF x M .

Приведеним виразам відповідає структурна схема (рис. 4.8).

Згідно розглянутих властивостей М-базиса маємо:

000 4( ) 0F x ; 001 4 4( )F x x ; 010 4 4( )F x x ; 011 4( ) 1F x ;

100 4 4( )F x x ; 101 4 4( )F x x ; 110 4 4( )F x x ; 111 4 4( )F x x ;

300 3 4 4( , ) (0, )xF x x M x ; 301 3 4 4( , ) ( , 1)xF x x M x ;

310 3 4 4 4( , ) ( , )xF x x M x x ; 311 3 4 4 4( , ) ( , )xF x x M x x ;

2 3 30 2 3 4 4 4( , , ) [ (0, ), ( , 1)]x x xF x x x M M x M x ;

2 3 31 2 3 4 4 4 4 4( , , ) [ ( , ), ( , )]x x xF x x x M M x x M x x ;

Page 103: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

103

1 2 3 3 2 3 3

1 2 3 4

4 4 4 4 4 4

( , , , )

[ [ (0, ), ( , 1)], [ ( , ), ( , )]].x x x x x x x

F x x x x

M M M x M x M M x x M x x

M0

x4

0

M0

x4

1M

x2

F000(x4)

F001(x4)

0

x4

M

x3

M0

x4

1

M1

x4

1

F010(x4)

F011(x4)

x4

1

M

x3

M0

x4

1

M1

x4

0M

x2

F100(x4)

F101(x4)

x4 M

x3

M1

x4

0

M0

x4

1

F110(x4)

F111(x4)

x4

M

x3

M

x1

F00(x3, x4)

F01(x3, x4)

F10(x3, x4)

F11(x3, x4)

F0(x2, x3, x4)

F1(x2, x3, x4)

F(x1, x2, x3, x4)

4x

4x

Рис. 4.8. Структурна схема ЛФ

Page 104: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

104

Після вилучення деяких мультиплексорів, структурна схема прийме вид:

M0

x3

M

x3

1M

x2

0

x4

M

x2

M

x3

M

x3

x4

1

M

x2

M1

0

F00(x3, x4)

F01(x3, x4)

F0(x2, x3, x4)

F10(x3, x4)

F11(x3, x4)

F1(x2, x3, x4)

Рис. 4.9. Мінімізована структурна схема ЛФ

Як видно з розглянутого прикладу, схема стала більш простою, кількість

елементарних мультиплексорів скоротилась майже вдвічі. Можна показати,

що будь-які ЛФ 4-х змінних, будуть мати схему не складніше від приведеної.

Це виходить з того, що входами третього ярусу (де сигнал управління змінна

3x ) можуть бути тільки такі: 0, 1, 4x , 4x . Потребує додаткового

мультиплексора тільки вхід з інверсією змінної 4x , а решта – є тривіальними і

не потребують технічної реалізації. В реальних цифрових схемах, як правило,

змінні зустрічаються разом зі своєю інверсією. Тому можна вважати, що для

реалізації ЛФ n змінних, достатньо n – 1 ярусів елементарних

мультиплексорів.

Page 105: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

105

4.4. Операції над мультиплексорами

Кількість каналів у мультиплексорів може бути різною, але завжди це

число кратне 2n , де n – кількість змінних управління в мультиплексорі. Це

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

перетворення. У результаті цього перетворення можна отримати схеми

складені з мультиплексорів різної канальності.

Операція з’єднання може бути застосована до мультиплексорів однієї

гілки деревоподібної структури. До однієї гілки належать сусідні

мультиплексові, які реалізують частково ЛФ. Кількість таких мультиплексорів

2 1k , де k – кількість ярусів у гілці.

На рис. 2 мультиплексори з номерами 2, 4, 5 утворюють одну гілку, що

реалізує функцію 0 2 3 4( , , )F x x x . Другу гілку утворюють мультиплексори з

номерами 3, 6, 7. Третю гілку утворюють мультиплексори 1, 2, 3.

Загальне правило операції об’єднання трьох двохканальних

мультиплексорів можна сформулювати наступним чином.

Два мультиплексора зі змінною управління jx виходи яких являються

входами мультиплексора зі сигналом управління ix , еквівалентні 4-х

канальному мультиплексору з парою сигналів управління i jx x . Входами 4-х

канального мультиплексора являються входи 2-х канальних мультиплексорів

у тій же послідовності (рис. 4.10).

M

xj

M

M

xi

F

xj

f0

f1

f2

f3

M

F

f0

f1

f2

f3

xi xj

Рис. 4.10. Правило об’єднання мультиплексорів

Page 106: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

106

Такому об’єднанню відповідає вираз:

0 1 2 3 0 1 2, 3[ ( , ), ( , )] ( , , )i j j i jx x x x xM M f f M f f M f f f f .

Для прикладу виконаємо операцію об’єднання для двох гілок схеми,

приведеної на рис. 4.8:

1 20 2 3 4 4 4( , , ) (0, , , 1);x xF x x x M x x

1 21 2 3 4 4 4 4 4( , , ) ( , , , )x xF x x x M x x x x .

В результаті перетворення схема має вигляд (рис. 4.11)

M0

1

x2 x3

M

x2 x3

M

Mx1

1

0

x4

F0(x2, x3, x4)

F1(x2, x3, x4)

F(x1, x2, x3, x4)

1

2

3

4

Рис. 4.11. Структурна схема ЛФ

Для доказу еквівалентності порівняємо вихідні сигнали обох схем при

подачі на вхід певної комбінації, наприклад

1 2 3 41, 0, 1, 0.x x x x

При 1 1x на вихід мультиплексора 1 проходить сигнал гілки 1 2 3 4( , , )F x x x .

Далі, при комбінації 2 0x та 3 1x на вихід мультиплексора 3 проходить сигнал

Page 107: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

107

другого каналу, а це сигнал з виходу мультиплексора 4. При 4 0x на виході

цього мультиплексора буде сигнал 4 1x , тобто (1, 0, 1, 0) 1F , що співпадає зі

значенням заданої функції (табл. 4.1). Таке ж значення функції буде при подачі

цієї комбінації вхідних сигналів на вхід схеми, зображеної на рис. 4.9.

Не важко зрозуміти, що повний збіг вихідних сигналів буде для всіх

можливих комбінацій вхідних сигналів.

Операцію з’єднання можна здійснити і для трьох мультиплексорів різної

канальності, що розташовані на одній гілці деревоподібної структури. При

цьому число каналів мультиплексора після об’єднання дорівнює добутку

числа каналів двох ярусів. Покажемо процес об’єднання для схеми рис. 4.11.

Кількість каналів першого ярусу (мультиплексор 1) дорівнює 2,

кількість каналів другого ярусу (мультиплексори 2, 3) – 4. При об’єднанні

отримуємо 8-ми канальний мультиплексор. Сигнали управління кінцевого

мультиплексора отримуються шляхом запису на схемі в такий послідовності:

до сигналу 1x додаються сигнали 2x , 3x . Вхідні сигнали записуються в тій же

послідовності, що й на схемі рис. 4.9. Отже кінцева схема має вигляд

(рис. 4.12), аналітичний вираз для приведеної функції буде таким:

1 2 3

8

1 2 3 4 4 4 4 4 4 4( , , , ) (0, , , 1, , , , )x x xF x x x x M x x x x x x .

M

x1 x2 x3

0

1 F(x1, x2, x3, x4)

M1

0

x4

Рис. 4.12. Структурна схема ЛФ

Page 108: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

108

Можлива також і обернена операція, яку назвемо операцією розділення

мультиплексорів. Ця операція не потребує детального опису. Покажемо

придатність операції розділення на прикладі схеми, приведеної на рис. 4.12

Розділення 8-ми канального мультиплексора виконаємо за наступних

умов: для першого ярусу використаємо 4-х канальний мультиплексор, для

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

на рис. 4.13

M0

x3

M

x3

1

M

x3

M

x3

M1

0

F00(x3, x4)

F01(x3, x4)

F11(x3, x4)x4

M

F10(x3, x4)

x1 x2

F(x1, x2, x3, x4)

Рис. 4.13. Структурна схема ЛФ

Аналітичний вираз для приведеної функції буде таким:

1 2 3 3 3 3

4

1 2 3 4 4 4 4 4 4 4( , , , ) ( (0, ), ( , 1), ( , ), ( , )]x x x x x xF x x x x M M x M x M x x M x x .

Як видно з приведених схем, існує взаємна однозначність між

аналітичним записом та структурною схемою для будь-якої ЛФ.

Page 109: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

109

В деяких випадках можна спростити схему, яка побудована на

багатоканальних мультиплексорах. Наприклад, для 4-х канального

мультиплексора справедливі такі вирази:

1 2(0, 0, 0, 0) 0x xM ,

1 2(1, 1, 1, 1) 1x xM ,

1 2 3(0, 1, 0, 1)x xM x ,

1 2 3(1, 0, 1, 0)x xM x .

Аналогічні вирази можна отримати і для 8-ми канального

мультиплексора:

1 2 3(0, 0, 0, 0, 0, 0, 0, 0) 0x x xM ,

1 2 3(1, 1, 1, 1, 1, 1, 1, 1) 1x x xM ,

1 2 3 4(0, 1, 0, 1, 0, 1, 0, 1)x x xM x ,

1 2 3 4(1, 0, 1, 0, 1, 0, 1, 0)x x xM x ,

1 2 3 3(0, 0, 1, 1, 0, 0, 1, 1)x x xM x ,

1 2 3 3(1, 1, 0, 0, 1, 1, 0, 0)x x xM x .

4.5. Інверсний М-базис (M-базис)

Основним недоліком М-базису являється той факт, що елементи

пам’яті – тригери мають складну структуру внаслідок необхідності мати

інвертор. Це пояснює рис. 4.14, на якому приводяться структурні схеми

елементів Шеффера та Пірса.

M

M

x1

f14=x1 | x2

x2

1

0

1 M

M

x1

f8=x1 ¯ x2

x2

1

0

0

Рис. 4.14. Елементи Шеффера та Пірса

Page 110: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

110

Якщо використати ЛФ 202 1 2 3( , , )F x x x в якості основної функції нового

базису (разом з константами 0, 1), то можна отримати структурні схеми всіх

типів тригерів без додаткових інверторів [94, 95, 96].

Повноту інверсного М-базису – його позначимо як M -базис покажем

опосередковано. Для цього покажемо, як реалізуються логічні функції

Шеффера та Пірса з двома змінними (рис. 4.15)

M

x1

1

x2

114 1 2 1 2 2( , ) | (0, )xf x x x x M x M

x1

1

x218 1 2 1 2 2( , ) ( , 1)xf x x x x M x

Рис. 4.15. Елементи Шеффера та Пірса

Структурні схеми асинхронних RS-тригерів приведені на рис. 4.16: на

рис. 4.16 а – аналог RS-тригера з прямими входами, а на рис. 4.16 б – аналог

RS- тригера з інверсними входами.

M

R

1

S M

1

Q

Q

M

R

0

MQ

QS

0

Рис. 4.16. Структурні схеми асинхронних RS-тригерів

Page 111: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

111

На рис. 4.17 приведені схеми синхронних тригерів RS- та D-типу

відповідно:

M

R

0

M

S

0

M

M0

0

C

Q

Q

M0

M

D

0

M

M0

0

Q

Q

C

Рис. 4.17. Структурні схеми синхронних тригерів

Page 112: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

112

Для усунення ефекту «генерації» на практиці використовуються

двохступеневі тригери та тригери з динамічним управлінням. На рис. 4.18

приведений синхронний двохступеневий RS-тригер:

M

R

0

M

S

0

M

M0

0

C

M0

M0

M

M0

0

Q

Q

M0

1

Рис. 4.18. Структурна схема синхронного двохступеневого RS-тригера

Приведені схеми тригерів допускають різні варіанти структур. Це

можливо тому що, виконуються співвідношення:

22 1(0, ) (0, )ix xM x M x ,

22 1( , 1) ( , 1)ix xM x M x .

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

означає, що вхідні сигнали в схемах диз’юнкції та кон’юнкції рівноцінні та їх

можна міняти місцями (тобто виконується комутативний закон). Наприклад,

тригер D-типу може мати вигляд (рис. 4.19):

Page 113: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

113

M0

M0

M

M0

0

D

Q

Q

C

Рис. 4.19. Структурна схема D-тригера

Тригер JK-типу використовує в базисі Шеффера схеми з трьома входами

(рис. 4.20)

&

&

& & &

& & &

1

J

C

K

Q

Q

Рис. 4.20. Структурна схема JK-тригера

Покажемо як реалізується 3-х входовий елемент Шеффера в

мультиплексорному базисі, таблиця істинності приведена в табл. 4.6.

Page 114: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

114

Таблиця 4.6

Таблиця істинності ЛФ

x1 x2 x3 F(x1, x2, x3) = x1 | x2 | x3

0 0 0 1

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 1

1 0 1 1

1 1 0 1

1 1 1 0

Побудуємо схему в мультиплексорному базисі згідно таблиці істиності

(табл. 4.6):

1 2 3 1 2 3[1, ,(1, (1, 0))] (0, 0, 0, )x x x x xM M M M x .

M0

0

0

x1 x2

3x

F(x1, x2, x3) = x1 | x2 | x3

Рис. 4.22. Реалізація функції Шеффера

4.6. Структурна схема спеціалізованого суматора

Особливості реалізації суматора

Для швидкого помножувача потрібен спеціалізований суматор, який

повинен виконувати одночасне додавання 3-х двійкових чисел. Пропонується

також при синтезі структури спеціалізованого суматора використати логічний

М-базис.

Початковими даними для синтезу суматора являється таблиця

функціонування (таблиця істинності), скласти яку не дуже складно. Спочатку

Page 115: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

115

покажемо принцип використання М-базису для синтезу звичайного

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

приведена в табл. 4.7.

Таблиця 4.7

Таблиця істинності суматора

Pi–1 ai bi Si pi

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0 0

1 0

1 0

0 1

1 0

0 1

0 1

1 1

Звичайний суматор служить для отримання:

суми двох двійкових цифр Si з врахуванням можливого переносу рі – 1

з попереднього розряду;

переносу рі в наступний розряд.

Згідно розглянутого раніше способу розкладання функцій Si та рі в М-

базисі маємо:

.1,1при

,0,1при

,1,0при

,0,0при

1

1

1

1

iii

iii

iii

iii

i

apb

apb

apb

apb

S (4.1)

.1,1при0

,0,1при

,1,0при

,0,0при0

1

1

1

1

ii

iii

iii

ii

i

ap

apb

apb

ap

p (4.2)

Використання 4-канального мультиплексора визначає структурну схему

суматора (рис. 4.23).

Page 116: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

116

Рі – 1 аі Рі – 1 аі

Ві

Рі 1

1

0 М 4

М 4

Рисунок 4.23 Структурна схема суматора

Синтез спеціалізованого суматора

Щоб отримати структурну схему спеціалізованого суматора (СС), який

виконує додавання 3-х двійкових цифр, необхідно скласти таблицю його

функціонування. При цьому необхідно враховувати його особливості:

при отриманні суми Si враховуються переноси з двох попередніх

розрядів: (і – 1)-го та (і – 2)-го;

при виконанні операції визначаються переноси в наступні (і + 1)-й та

(і + 2)-й розряди (4.3).

Рі+2

Рі+1 Рі–1

Рі–2

+ 121121

121121

121121

......

......

......

cccccccc

bbbbbbbb

aaaaaaaa

iiiiinn

iiiiinn

iiiiinn

(4.3)

12112112 ...... SSSSSSSSSS iiiiinnnn

Згідно методики реалізації ЛФ в М-базисі безпосередньо з табл. 4.6

отримуємо:

Page 117: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

117

,111,100,010,001при

,110,101,011,000при

12

12

1

1

iiі

iiі

iapp

app

V

VS (4.4)

де

.111,100,010,001при

,110,101,011,000при

1

01

iii

iii

dcb

dcbV

Виразу (4.4) відповідає структурна схема, яка приведена на рис. 4.24а.

По аналогії знаходимо вирази для ЛФ переносів рі+1 та рі+2.

,111прич

,110,101,011прич

,100,010,001прич

000,прич

122

121

122

121

1

iiі

iiі

iiі

iiі

i

app

app

app

app

p (4.5)

де

.111,110,101,011при

,100,010,001,000при

1

0ч1

iii

iii

dcb

dcb

.110,101,100,111,010,001при

,111,000при

1

0ч2

iii

iii

dcb

dcb

Приведеним виразам відповідає структурна схема рис. 4.24б.

Знаходимо вираз для ЛФ переносу pi–2

,111при

,110,101,011при

,100,010,001при

,000при0

1–2–3

1–2–2

1–2–1

1–2–

2

iii

iii

iii

iii

i

aPPW

aPPW

aPPW

aPP

P

(4.6)

де

,1111

,110...,,011,010,001,000при01

iii

iii

dcbпри

dcbW

,111,110,101,011при1

,100,011,010,001,000при02

iii

iii

dcb

dcbW

.111...,,011,010,001при1

,000при03

iii

iii

dcb

dcbW

На рис. 4.24в приведена структурна схема, яка відповідає виразу (4.6).

Page 118: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

118

М4

М4

&

1

&

1

M8

M8

M8

S

p

p

а

б

в

01

10

b

c

b

c

b

c

b

c

b c

10

01

p p a

0

0

0

0

Рисунок 4.24 Структурна схема спеціалізованого суматора

Page 119: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

119

Таким чином, однорозрядний суматор для додавання 3-х двійкових

цифр, складається з 3-х восьмиканальних та 2-х чотирьохканальних

мультиплексорів і двоходових схем: кон’юнктора, диз’юнктора, елемента

Шеффера, елемента Пірса. При синтезі цієї схеми класичним способом

виникли б значні складності за рахунок використання діаграм Вейча великого

розміру. Схема спеціалізованого суматора побудована в булівському базисі

буде містити на 70% більше елементів.

Висновки до розділу 4

В розділі доводиться, що мультиплексор є ще одним універсальним

логічним елементом (поряд з елементами Шеффера та Пірса). Використання

мультиплексорів в багатьох випадках спрощує процес проектування та

побудови складних цифрових схем. Багатоканальність мультиплексорів тільки

поліпшує зручність та гнучкість цього процесу.

Розроблена алгебра мультиплексорного базису. Запропоновані та

дослідженні формальні операції в М-базисі, які дозволять здійснювати

перетворення структурних схем з метою їх мінімізації.

Запропоновано та досліджено використання ЛФ трьох змінних 202f в

якості інверсного мультиплексорного базису, що дозволяє уникнути недоліків

мультиплексорного базису, пов’язаних з необхідністю використання

інверторів.

Запропоновано та схемотехнічно реалізовано в універсальному

мультиплексорному логічному базисі спеціалізований суматор для

одночасного складання трьох двійкових цифр, що порівняно з використанням

стандартного логічного базису значно зменшує апаратурні та енергетичні

витрати.

Page 120: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

120

ВИСНОВКИ

В результаті дисертаційних досліджень, вирішено актуальне наукове

завдання щодо створення математичних моделей функціонування

багатоядерних мікропроцесорів для отримання різних числових показників,

що характеризують ефективність їх роботи. Дане наукове завдання має

важливе значення для вирішення актуальної науково-технічної задачі

підвищення продуктивності пристроїв цифрової обробки сигналів на основі

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

рішень в нашій країні та за кордоном робить результати досліджень

пріоритетними.

В дисертації одержані такі основні результати:

1. Аналіз типових задач цифрової обробки сигналів показує, що серед

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

одночасним додаванням для отримання часткових сум. Порівняльний аналіз

існуючих пристроїв множення приводить до наступних результатів:

швидкодіючими пристроями є матричні помножувачі, а пристроями з низьким

рівнем продуктивності є послідовні помножувачі із зсувом і накопиченням

результату. В існуючих обчислювальних системах застосовуються

неефективні методи множення представляють собою модифікацію

послідовних форм виконання операції множення. У зв’язку з цим

пропонується використовувати мультиядерні мікропроцесори в якості

процесорів цифрової обробки сигналів. Введені критерії оцінювання якості

розпаралелювання команд по ядрах мультиядерного мікропроцесора.

2. Вперше запропоновано, реалізовано та досліджено математичні

моделі завантаження ядер мультиядерного мікропроцесора на основі системи

масового обслуговування, що дозволяє аналізувати ймовірності завантаження

ядер мікропроцесора для різних варіантів роботи, та обрати оптимальні

параметри обчислювальної системи.

3. Удосконалені методи прискореного множення, які відрізняються від

існуючих комбінацією табличних, матричних та класичних методів, що

Page 121: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

121

дозволяє зменшити виконання довгої за часом операції множення, та

збільшити продуктивність пристроїв цифрової обробки сигналів.

4. Отримала подальший розвиток методика використання

мультиплексорного логічного базису для побудови складних функціональних

вузлів обчислювальних схем, яка відрізняється від існуючих використанням

логічних функцій трьох змінних (f53 та f202), що дозволяє реалізувати складні

схеми суматорів в пристроях прискореного множення.

5. Запропоновано та схемотехнічно реалізовано в універсальному

мультиплексорному логічному базисі спеціалізований суматор для

одночасного складання трьох двійкових цифр, що порівняно з використанням

стандартного логічного базису значно зменшує апаратурні та енергетичні

витрати.

6. Одержані результати математичного моделювання процесу

розпаралелювання потоку команд по ядрах мікропроцесора підтверджують

покращення якості розпаралелювання на 8–10% за рахунок впровадження

прискореного методу множення.

7. Результати досліджень впроваджені в Інституті проблем реєстрації

інформації НАНУ (акт від 26.04.2016), в ТОВ «СИТЕС-сек’юрити» (акт від

18.02.2015). Реалізовані в багатоканальних засобах радіочастотного контролю

та радіочастотного моніторингу в Державному підприємстві «Український

державний центр радіочастот» (акт від 15.01.2016). Також методика

використання мультиплексорного логічного базису для побудови складних

функціональних вузлів обчислювальних схем впроваджена в навчальний

процес Військового інституту телекомунікацій та інформатизації (акт від

04.05.2016) та в навчальний процес Державного університету телекомунікацій

(акт від 15.01.2016).

8. Мета дослідження щодо підвищення продуктивності пристроїв

цифрової обробки сигналів шляхом покращення процесу розпаралелювання

обчислювального процесу по ядрах мікропроцесора досягнута та всі часткові

завдання вирішені повністю. Наукові результати є внеском у розвиток

Page 122: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

122

теоретичних і прикладних основ створення інформаційних технологій з метою

дослідження, розроблення інструментальних засобів для побудови

спеціалізованих комп’ютерних систем на базі мультиядерних процесорів.

9. Перспективними шляхами подальших досліджень у зазначеному

напрямку може бути широке коло питань щодо розробки нових та

удосконалення існуючих моделей та методів підвищення продуктивності

пристроїв цифрової обробки сигналів шляхом покращення процесу

розпаралелювання обчислювального процесу по ядрах мікропроцесора.

Page 123: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

123

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

1. Дробик О. В. Распараллеливание потока команд в мультиядерных

микропроцессорах / О. В. Дробик, Л. П. Лобанов, В. О. Яскевич //

Системи управління, навігації та зв’язку, 2013. – № 3 (27). – С. 102 – 104.

2. Яскевич В. О. Математические модели загрузки ядер многоядерных

микропроцессов / В. О. Яскевич // Системи управління, навігації та

зв’язку, 2012. – № 4 (24). – С. 73 – 76.

3. Яскевич В. О. Математические модели взаимодействия мультиядерных

микропроцессоров с памятью / В. О. Яскевич // Системи управління,

навігації та зв’язку, 2013. – № 4 (28). – С. 127 – 133.

4. Лобанов Л. П. Функциональные построения в EMS-базисе / Л. П. Лобанов,

В. О. Яскевич // Вісник ДУІКТ, 2007. – № 2. – Том 5. – С. 185 – 188.

5. Дробик О. В. Побудова цифрових схем на мультиплексорах /

О. В. Дробик, Л. П. Лобанов, В. О. Яскевич // Комп’ютерно-інтегровані

технології: освіта, наука, виробництво. – Луцьк, 2012. – № 8. – С. 16 – 21.

6. Яскевич В. О. Распараллеливание потока команд в мультиядерных

микропроцессорах / О. В. Дробик, Л. П. Лобанов, В. О. Яскевич // Науково-

технічна конференція "Сучасні інформаційно-комунікаційні технології"

(COMINFO’2012). Збірник тез. – К.: ДУІКТ, 2012. – С. 118 – 119.

7. Яскевич В. О. Мультиядерні мікропроцесори в пристроях цифрової

обробки сигналів / В. О. Яскевич // Проблеми інформатизації: Матеріали

другої міжнародної науково-технічної конференції. – К.: ДУТ, 2015. – С. 64.

8. Яскевич В. О. Об одной модели функционирования мультиядерных

микропроцессоров / Л. П. Лобанов, В. О. Яскевич // Науково-технічна

конференція «Сучасні інформаційно-комунікаційні технології»

(COMINFO’2009). Збірник тез. – К.: ДУІКТ, 2009. – С. 118 – 119.

9. Яскевич В. О. Математичні моделі взаємодії багатоядерних

мікропроцесорів з пам'яттю / Л. П. Лобанов, В. О. Яскевич // Проблеми

Page 124: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

124

Інформатизації: Матеріали третьої міжнародної науково-технічної

конференції. – К.: ДУТ, 2015. – С. 69 – 70.

10. Яскевич В. О. Використання мультиядерних мікропроцесорів у

пристроях цифрової обробки сигналів / В. О. Яскевич // Інформаційні

технології – 2015. Зб. тез ІІ Української конференції молодих науковців,

28-29 трав. 2015 р. – К.: Київ. ун-т ім. Б. Грінченка, 2015. – С. 190 – 191.

11. Яскевич В. О. Алгоритмы и схемы реализации ускоренного выполнения

операций умножения и деления / Л. П. Лобанов, В. О. Яскевич // Науково-

технічна конференція "Сучасні інформаційно-комунікаційні технології"

(COMINFO’2010). Збірник тез. – К.: ДУІКТ, 2010. – С. 153 – 154.

12. Яскевич В. О. Алгоритми прискореного методу множення / В. О. Яскевич

// Актуальні проблеми розвитку науки і техніки: Матеріали першої

міжнародної науково-технічної конференції. Збірник тез. – К.: ДУТ,

2015. – С. 42 – 44.

13. Яскевич В. О. Досвід впровадження в учбовий процес нетрадиційних

технологій проектування цифрових схем / Л. П. Лобанов, В. О. Яскевич

// IV Міжнародна науково-методична конференція «Сучасні тенденції

розвитку вищої освіти, трансформація навчального процесу у технологію

навчання», 25-26 жовтня 2007 року: Матеріали конференції. – К.: ДУІКТ,

2007. – С. 232 – 323.

14. Яскевич В. О. Операції над мультиплексорами / Л. П. Лобанов,

В. О. Яскевич // Науково-технічна конференція «Сучасні інформаційно-

комунікаційні технології» (COMINFO’2008). Збірник тез. – К.: ДУІКТ,

2008. – С. 118 – 119.

15. Яскевич В. О. Нетрадиційні логічні базиси / Л. П. Лобанов, В. О. Яскевич

// Науково-технічна конференція «Сучасні інформаційно-комунікаційні

технології» (COMINFO’2011). Збірник тез. – К.: ДУІКТ, 2011. – С. 118 – 119.

16. Решение о выдаче патента на полезную модель по заявке

№ 2012134724/08(055571). Устройство для моделирования системы

массового обслуживания. / И. Ф. Попова, О. В. Привалова,

Page 125: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

125

С. В. Привалов, А. Д. Шаров, Т. Н. Орех, В. О. Яскевич;

заявл. 15.08.2012; опубл. 10.10.2012, бюл. № 28.

17. Патент на полезную модель № 133633. Устройство для моделирования

систем массового обслуживания. / Е. Г. Тимофеева, Л. Я. Силкина,

Т. Н. Орех, Л. П. Лобанов, В. О. Яскевич; заявл. 3.06.2013; опубл.

20.10.2013, бюл. № 29.

18. Свідоцтво про реєстрацію авторського права на твір № 64214.

Комп’ютерна програма «Мінімізація логічної функції за допомогою

діаграм Вейча» / Є. С. Тихонов, В. О. Яскевич, Ю. В. Яскевич;

заявл. 26.02.2016; бюл. № 39.

19. Constantinides G. A. Synthesis and Optimization of DSP Algorithms /

G. A. Constantinides, P. Y .K. Cheung, W. Luk. – Kluwer Academic

Publishers, USA, 2004. – 162 p.

20. International Technology Roadmap for Semiconductors, 2011 Edition.

[Електроний ресурс] // – Режим доступу: http://www.itrs.net/Links

/2011TTRS/Home2011.htm (05.09.2014).

21. Tian C. Speculative Parallelization of Sequential Loops on Multicores /

С. Tian, M. Feng, V. Nagarajan, R. Gupta. // Int J Parallel Prog. – 2009. –

P. 508 – 535

22. Asanovic К. A View of the Parallel Computing Landscape / К. Asanovic,

R. Bodik, J. Demmel et al. – Communications of the ACM, Vol. 52, no. 10,

Oct. – 2009.

23. Smith S. W. The Scientist and Engineer's Guide to Digital Signal Processing /

S. W. Smith. – California Technical Publishing, San Diego, USA, 1997. – 640 p.

24. Лайонс Р. Цифровая обработка сигналов: Второе издание. / Р. Лайонс;

пер. с англ. – М.: ООО «Бином-Пресс», 2007. – 656 с.

25. Оппенгейм, А. Цифровая обработка сигналов Текст. / А. Оппенгейм,

Р. Шафер. – Издание 2-е исправленное. М.: Техносфера, 2007. – 856 с.

Page 126: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

126

26. Куприянов М. С. Цифровая обработка сигналов: процессоры, алгоритмы,

средства проектирования / М. С. Куприянов, Б. Д. Матюшкин. – СПб:

Политехника. 1999. – 592 с.

27. Williams С. S. Designing Digital Filters / С. S. Williams. – Prentice-Hall,

Englewood Cliffs, New Jersey, 1986. – p. 400.

28. Rabiner L. R. Theory and Application o f Digital Signal Processing /

L. R. Rabiner, B. Gold. – Prentice-Hall, Englewood Cliffs, New Jersey,

1975. – p. 216.

29. Shynk J. J. Adaptive IIR Filtering / J. J. Shynk // IEEE ASSP Magazine. –

April 1989. – P. 4 – 21.

30. Laundrie A. Adaptive Filters Enable Systems to Track Variations / A. Laundrie

// Microwaves & RF. – September 1989. – P. 28 – 40.

31. Bullock S. R. High Frequency Adaptive Filter / S. R. Bullock // Microwave

Journal. – September 1990. – P. 104 – 135.

32. Rodriguez J. J. An Improved FFT Digit-Reversal Algorithm / J. J. Rodriguez

// IEEE Trans, on Acoust. Speech, and Signal Proc, Vol. ASSP-37. – No. 8,

August 1989. – P. 35 – 58.

33. Land A. Bit Reverser Scrambles Data for FFT / A. Land // EDN. – March 2,

1995.

34. Марков А. А. Теория алгорифмов / А. А. Марков, P. M. Нагорный. – М.:

Наука, 1984. – 432 с.

35. Ачасова С. М. Корректность параллельных вычислительных процессов /

С. М. Ачасова, О. Л. Бандман. – Новосибирск: Наука, 1990. – 252 с.

36. Джордейн Р. Справочник программиста персональных компьютеров типа

IBM PC, XN и AT / Р. Джордейн. – М: Финансы и статистика, 1992. – 543 с.

37. Смит Б. Э. Архитектура и программирование микропроцессора Intel

80386. / Б. Э. Смит, М. Т. Джонсон. – М: ТОО «Кондор», 1992. – 334 с.

38. Симэн Г. Вейвлеты на программируемом кремнии / Г. Симэн. //

Компьютерра, 1998. – №9. – С. 17 – 23.

Page 127: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

127

39. Пахомов С. Процессор Haswell [Електроний ресурс] // – Режим доступу:

http://compress.ru/article.aspx?id=23845#01 (10.09.2014).

40. Волш Д. Технология программных модемов / Д. Волш // ComputerWeek,

1997. – №32. – С. 12-15.

41. Villasenor J. Configurable Computing / J. Villasenor, W. Mangione-Smith

// Scientific American. – June 1997.

42. Цифровая обработка сигналов на ПЛИС Xilinx: Каталог продукции. Scan

Engineering Telecom (код DSP-CAT-9906).1999.

43. CORE Solutions Products Catalog. Xilinx Inc. 1999.

44. Балашов Ю. С. Библиотеки цифровых макромодулей для средств

проектирования ПЛИС / Ю. С. Балашов, В. Г. Мистюков,

В. Д. Капитанов. – Воронеж. Xilinx Inc. 1999. – С. 26.

45. Аббель П. Ассемблер. Язык и программирование для IBM PC /

П. Аббель; пер. с англ. – К.: Век+, М.: ЭНТРОП, К.: НТИ, 2003. – 739 с.

46. Пирогов В. Ю. Ассемблер для Windows / В. Ю. Пирогов. – М.: Издатель

Молгачева С. В., 2002. – 552 с.

47. Розенберг В. Я. Что такое теория массового обслуживания /

В. Я. Розенберг, А. И. Прохоров. – М.: Сов. радио, 1965. – 255 с.

48. Фомин Г. П. Математические методы и модели в коммерческой

деятельности / Г. П. Фомин. – М.: Финансы и статистика, 2005. – 616 с.

49. Овчаров, Л. А. Прикладные задачи теории массового обслуживания /

Л. А. Овчаров. – М.: Машиностроение, 1969. – 324 c.

50. Вентцель Е. С. Теория случайных процессов и ее инженерные

приложения / Е. С. Вентцель, Л. А. Овчаров. – М.: Наука, 1991. – 383 c.

51. Таненбаум, Э. Архитектура компьютера / Э. Таненбаум. – 4-е изд. – СПб.:

Питер, 2005. – 699 с.

52. Корнеев В. В. Современные микропроцессоры / В. В. Корнеев, А. В. Киселев

– 3-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2003. – 448 с.

53. Зелтиньш В. Ф. Оценка производительности многопроцессорных

вычислительных систем при конфликтах в общей памяти / Лобанов Л. П.,

Page 128: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

128

Терехов В. А., Тимофеев В. С. // Автоматика и вычислительная техника.

Рига: № 2, 1986. – С. 74 – 80.

54. Knuth D. E. The Art of Computer Programming, Vol. 1: Fundamental

Algorithms / D. E. Knuth. – 3rd ed. Reading, MA: Addison-Wesley, 1997. –

672 p.

55. Мюллер С. Модернизация и ремонт ПК / С. Мюллер. – 19-е изд.; пер. с

англ. – М.: ООО «И.Д. Вильямс», 2011. – 1072 с.

56. Григорьев В. Л. Архитектура и программирование арифметического

сопроцессора / В. Л. Григорьев. – М.: Энергоатомиздат, 1991. – 208 с.

57. Юров, В. И. Assembler, 2-е издание / В.И. Юров. – СПб.: Питер, 2007. –

с. 447 – 509.

58. IEEE Standard for Binary Floating-Point Arithmetic (IEEE Std. 754-1985)

// IEEE Computer Society, 1985.

59. IEEE Standard for Floating-Point Arithmetic (IEEE Std. 754-2008) // IEEE

Computer Society, 2008.

60. Гук. М. Ю. Аппаратные средства IBM PC / М. Ю. Гук // Энциклопедия. –

2-е изд. – СПб.: Питер, 2004. – 923 с.

61. Wallace, C. S. A suggestion for a fast multiplier / C. S. Wallace

// IEEE Transactions on Electronic Computer. – Washington, DC, USA,

1964. – Vol. EC-13. – № 1. – P. 14 – 17.

62. Dadda, L. Some schemes for parallel multipliers / L. Dadda

// Alta Frequenza. – Grenoble, 1965. – P. 349 – 356.

63. Townsend W. J. A Comparison of Dadda and Wallace Multiplier Delays /

W. J. Townsend, E. E. Swartzlander, J. A. Abraham // SPIE Advanced Signal

Processing Algorithms, Architectures, and Implementations XIII. Austin,

2003.

64. Arvind V. K. A multiple processor data flow machine that supports generalized

procedures / V. K. Arvind // ISCA '81 Proceedings of the 8th annual

symposium on Computer Architecture. – California, 1965. – P. 291 – 302.

Page 129: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

129

65. Booth, A. D. A signed binary multiplication technique / A. D. Booth // The

Quarterly Journal of Mechanics and Applied Mathematics. – 1950. – Vol. 4. –

№ 2. – P. 236 – 240.

66. Baugh C. R. A Two's Complement Parallel Array Multiplication Algorithm /

C. R. Baugh, B. A. Wooley // IEEE Transactions on computer. – Washington,

DC, USA, 1973. – Vol. C. 22. – № 12. – P. 1045 – 1047.

67. Calder B. Fast & Accurate Instruction Fetch and Branch Prediction / B. Calder,

D. Grunwald // Proceedings the 21st Annual International Symposium on

computer Architecture. – Washington, DC, USA, 1994. – P. 2 – 11.

68. Hwang K. Advanced Computer Architecture: Parallelism, Scalability,

Programmablility / K. Hwang. – New York: McGraw-Hill Education, 1993.

69. Lovett T. Implementation and Performance of a CC-NUMA System /

T. Lovett, R. Clapp // Proceedings of the 23th Annual International

Symposium on Computer Architecture. – Philadelphia, 1996.

70. Banerji A. Novel Implementation Method for Addition and Subtraction in

Residue Number Systems / Banerji K. Dilip // IEEE Transactions on

computer. – Washington, DC, USA, 1974. – Vol. C-23. – № 1. – P. 106 – 109.

71. Bayoumi M. A. AVLS Iimplementation of residue adders / M. A. Bayoumi,

G. Jullien, W. C. Miller // IEEE Transactions on Circuits and Systems. –

Washington, DC, USA, 1987. – Vol. 34. – № 3. – P. 284 – 288.

72. Alia, G. A VLSI modulo m multiplier / G. Alia, E. Martinelli // IEEE

Transactions on Computers. – Washington, DC, USA, 1992. – Vol. 40. –

№ 7. – P. 873 – 878.

73. Efstathiou C. Area-time efficient modulo 2n-1 adder design / C. Efstathiou,

D. Nikolos, J. Kalamatianos // IEEE Transactions on Circuits and Systems II:

Analog and Digital Signal Processing. – Washington, DC, USA, 1994. –

Vol. 41. – № 7. – P. 463 – 467.

74. Dugdale M. VLSI implementation of residue adders based on binary adders /

M. Dugdale // IEEE Transactions on Circuits and Systems II: Analog and

Page 130: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

130

Digital Signal Processing. – Washington, DC, USA, 1992. – Vol. 39. – № 5. –

P. 325 – 329.

75. Paliouras V. A Low-Complexity RNS Multiplier / V. Paliouras, K. Karagianni,

T. Stouraitis // IEEE Workshop on Signal Processing Systems. – Washington,

DC, USA, 2000. – P. 487 – 496.

76. Hiasat A. A. High-speed and reduced-area modular adder structures for RNS /

A.A. Hiasat // IEEE Transactions on computer. – Washington, DC, USA,

2002. – Vol. 51. – № 1. – P. 84 – 89.

77. Skavantzos A. New multipliers modulo 2N-1 / A. Skavantzos, P. B. Rao

// IEEE Transactions on Computers. – Washington, DC, USA, 1992. –

Vol.41. – № 8. – P. 957 – 961.

78. Hiasat A. A. New efficient structure for a modular multiplier for RNS /

A. A. Hiasat // IEEE Transactions on computer. – Washington, DC, USA,

2000. – Vol. 49. – № 2. – P. 170 – 174.

79. Radhakrishnan D. Novel approaches to the design of VLSI RNS multipliers /

D. Radhakrishnan, Y. Yuan // IEEE Transactions on Circuits and Systems II:

Analog and Digital Signal Processing. – Washington, DC, USA, 1992. –

Vol. 39. – № 1. – P. 52 – 57.

80. Zimmermann, R. Efficient VLSI implementation of modulo 2N±1 addition

and multiplication / R. Zimmermann // 14th IEEE Symposium on Computer

Arithmetic. – Washington, DC, USA, 1999. – P. 158 – 167.

81. Самофалов К. Г. Прикладная теория цифровых автоматов /

К. Г. Самофалов, А. М. Романкевич, В. Н. Валуйский, [и др.]. – К.: Вища

школа, 1987. – 375 с.

82. Кнут Д. Э. Искусство программирования, том 2. Получисленные алгоритмы

/ Д. Э. Кнут. – 3-е изд.; – М.: Издательский дом «Вильямс», 2001. – 832 с.

83. Потемкин Н. С. Функциональные узлы цифровой автоматики /

Н. С. Потемкин. – М.: Энергоатомиздат, 1988. – с. 96 – 102.

84. Петров В. П. Проектирование цифровых систем контроля и управления /

В. П. Петров. – М.: Машиностроение, 1967. – 460 с.

Page 131: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

131

85. Пухальский Г. И. Логическое проектирование цифровых устройств

радиотехнических систем / Г. И. Пухальский. – Л.: Ленинградский

университет, 1976. – 230 с.

86. Расчет элементов импульсных и цифровых систем радиотехнических

устройств / Васильева В. П., Гришин Ю. П., Зюбенко В. Д. и др.;

под ред. Ю. М. Назаринова. – М.: Высшая школа, 1976. – 320 с.

87. Микропроцессоры и микропроцессорные компоненты интегральных

микросхем: Справочник в 2 т. / Н. Н. Аверьянов, А. И. Березенко,

Ю. И. Борщенко и др. ; Под ред. В.А. Шахнова. – М.: Радио и Связь,

1988. – Т. 1. – 368 с.

88. Шило В. Л. Популярные цифровые микросхемы: Справочник /

В. Л. Шило. – Челябинск: Металлургия, 1988. – 352 с.

89. Зельдин Е. А. Цифровые интегральные микросхемы в информационно-

измерительной аппаратуре / Е. А. Зельдин. – Л.: Энергоатомиздат, 1986. –

280 с.

90. Соломатин Н. М. Логические элементы ЭВМ. / Н. М. Соломатин. – М.:

Высш. шк., 1987. – 144 с.

91. Белоусов А. И., Ткачев С. Б. Дискретная математика. – М.: МГТУ, 2006. –

744 с.

92. Гольденберг Л. М. Цифровые устройства и микропроцессорные системы.

Задачи и управления: Учеб. пособие для вузов / Л. М. Гольденберг,

В. А. Малев, Г. Б. Малько. – М.: Радио и связь, 1992. – 226 с.

93. Самофалов К. Г. Цифровые ЭВМ: Теория и проектирование /

К. Г. Самофалов, В. И. Корнейчук, В. П. Тарасенко; под общ. ред.

К. Г. Самофалова. – 3-е изд., перераб. и доп. – К.: Вища шк., 1989. – 424 с.

94. Микушин А. В. Цифровые устройства и микропроцессоры /

А. В. Микушин, А. М. Сажнев, В. И. Сединин. – СПб, БХВ-Петербург,

2010. – 832 с.

95. Угрюмов Е. П. Цифровая схемотехника / Е. П. Угрюмов. – СПб.: БХВ-

Петербург, 2004. – 528 с.

Page 132: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

132

96. Шило В. Л. Популярные цифровые микросхемы / В. Л. Шило. – М.: Радио

и связь, 1987. – 352 с.

97. Вирт Н. Алгоритмы и структуры данных / Н. Вирт. – М.: Мир, 1989. – 360 с.

98. Вирт Н. Систематическое программирование. Введение / Н. Вирт. – М.:

Мир, 1977. – 183 с.

99. Бентли Дж. Жемчужины программирования / Дж. Бентли. – 2-е изд. –

Питер, 2002. – 272 с.

100. Robertson L. A. Simple Program Design: A Step-by-Step Approach / L. A.

Robertson. – 5th Edition. – Nelson Thompson Learning, Australia, 2007. – 368 p.

101. Kernigan B. The Practice of Programming Reading / B. Kernigan, R. Paik. –

Ma., Addison-Wesley, 1999. – 288 p.

102. Шилдт Г. Самоучитель C++ / Г. Шилдт; пер. с англ. – 3-е изд. – СПб.:

2013. – 688 с.

103. Липпман С. Б. Язык программирования C++. Вводный курс /

С. Б. Липпман, Ж. Лажойе. – СПб.: Невский Диалект, 2001. – 1104 с.

104. Глинський Я. М. С++ і С++ Builder / Я. М. Глинський, В. Є. Анохін,

В. А. Ряжська. – Львів: Деол, СПД Глинський, 2003. – 192 с.

105. Абрамов С. А. Задачи по программированию / С. А. Абрамов,

Г. Г. Гнездилова, Е. Н. Капустина, М. И. Селюн. – М.: Наука. Гл. ред.

физ.-мат. лит., 1988. − 224 с.

106. Златопольский Д. М. Сборник задач по программированию /

Д. М. Златопольский. – 2-е изд. – СПб.: БХВ Петербург, 2007. – 239 с.

107. Программирование для Microsoft .Net / Пер. с агнл. – М. Издательско-

торговый дом «Русская редакция», 2003. – 704 с.

108. Бентли Дж. Жемчужины программирования / Дж. Бентли; пер. с англ.,

2-е изд. – СПб.: Питер, 2006. – 272 с.

109. Мейер Б. Методы программирования: В 2-х томах / Б. Мейер, К. Бодуэн;

пер. с франц. Ю. А. Первина; под ред. А. П. Ершова. – Т. 2. – М.: Мир,

1982. – 368 с.

Page 133: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

133

ДОДАТОК А

Текст програми для розв’язання системи лінійних рівнянь порядку

С методом Гаусса

Program Gaus;

uses crt;

type mas1=array[1..20] of real;

mas2=array[1..20,1..20] of real;

var i,j,k:integer;

t:real; X:mas2; B,z:mas1;

procedure gauss(n:integer; e:real; var

A:mas2; var s,y:mas1);

var i,j,j1,j2:integer;

t1:real; r:mas1;

AA,E1,A1:mas2;

label M10,M11;

begin

for i:=1 to n do for j:=1 to n do

A1[i,j]:=A[i,j];

for i:=1 to n do for j:=1 to n do

if i=j then AA[i,j]:=1 else AA[i,j]:=0;

for i:=1 to n do

begin

T1:=0;

for j:=i to n do if abs(A[j,i])>T1 then

begin

T1:=abs(A[j,i]);

j2:=j;

end;

if T1<E then goto M10;

if j2=i then { =/ }

begin

for j:=i to n do

begin

T1:=A[i,j];

A[i,j]:=A[j2,j];

A[j2,j]:=T1;

end;

for j:=1 to n do

begin

T1:=AA[i,j];

AA[i,j]:=AA[j2,j];

AA[j2,j]:=T1;

end;

end;

for j1:=1 to n do

AA[i,j1]:=AA[i,j1]/A[i,i];

for j1:=n downto 1 do

A[i,j1]:=A[i,j1]/A[i,i];

for j:=1 to n do if i<>j then

begin

for j1:=1 to n do

AA[j,j1]:=AA[j,j1]-AA[i,j1]*A[j,i];

for j1:=n downto i do

A[j,j1]:=A[j,j1]-A[i,j1]*A[j,i];

end;

end;

goto M11;

M10: writeln('T1=',T1:3:3);

M11: for j:=1 to n do

begin

y[j]:=0;

for j1:=1 to n do

y[j]:=y[j]+AA[j,j1]*s[j1];

end;

for i:=1 to n do

begin

T1:=0;

for j:=1 to n do T1:=

T1+A1[i,j]*y[j];

r[i]:=T1-s[i];

end;

end;

begin

writeln;

write('t='); readln(t);

write('k='); readln(k);

for i:=1 to k do for j:=1 to k do

begin

write('X(',i:2,',',j:2,')=');

readln(x[i,j]);

end;

writeln;

for i:=1 to k do

begin

write('b(',i:2,')=');

readln(b[i]);

end;

Gauss(k,t,x,b,z);

writeln;

for i:=1 to k do writeln('

z(',i:2,')=',z[i]:3:3);

readln;

end.

Page 134: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

134

ДОДАТОК Б

Page 135: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

135

Page 136: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

136

Page 137: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

137

Page 138: УДК 004.272.3 МОДЕЛІ ТА МЕТОДИ РОЗПАРАЛЕЛЮВАННЯ · 6 власне апаратної частини системи, що приводить до частих

138